diff --git a/.github/workflows/build-tarball.yml b/.github/workflows/build-tarball.yml
index 5fae318569f7d0..c5911684070fba 100644
--- a/.github/workflows/build-tarball.yml
+++ b/.github/workflows/build-tarball.yml
@@ -86,7 +86,7 @@ jobs:
- name: Environment Information
run: npx envinfo
- name: Download tarball
- uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1
+ uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
with:
name: tarballs
path: tarballs
diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
index da80832102026e..191cfc5e5dfddc 100644
--- a/.github/workflows/codeql.yml
+++ b/.github/workflows/codeql.yml
@@ -27,15 +27,15 @@ jobs:
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
- uses: github/codeql-action/init@6bb031afdd8eb862ea3fc1848194185e076637e5 # v3.28.11
+ uses: github/codeql-action/init@ff0a06e83cb2de871e5a09832bc6a81e7276941f # v3.28.18
with:
languages: ${{ matrix.language }}
config-file: ./.github/codeql-config.yml
- name: Autobuild
- uses: github/codeql-action/autobuild@6bb031afdd8eb862ea3fc1848194185e076637e5 # v3.28.11
+ uses: github/codeql-action/autobuild@ff0a06e83cb2de871e5a09832bc6a81e7276941f # v3.28.18
- name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@6bb031afdd8eb862ea3fc1848194185e076637e5 # v3.28.11
+ uses: github/codeql-action/analyze@ff0a06e83cb2de871e5a09832bc6a81e7276941f # v3.28.18
with:
category: /language:${{matrix.language}}
diff --git a/.github/workflows/coverage-linux-without-intl.yml b/.github/workflows/coverage-linux-without-intl.yml
index 9cefdcff8754d5..c30ae78e303e07 100644
--- a/.github/workflows/coverage-linux-without-intl.yml
+++ b/.github/workflows/coverage-linux-without-intl.yml
@@ -79,6 +79,6 @@ jobs:
- name: Clean tmp
run: rm -rf coverage/tmp && rm -rf out
- name: Upload
- uses: codecov/codecov-action@0565863a31f2c772f9f0395002a31e3f06189574 # v5.4.0
+ uses: codecov/codecov-action@18283e04ce6e62d37312384ff67231eb8fd56d24 # v5.4.3
with:
directory: ./coverage
diff --git a/.github/workflows/coverage-linux.yml b/.github/workflows/coverage-linux.yml
index bab1d81ed06c71..6d5afb489762e4 100644
--- a/.github/workflows/coverage-linux.yml
+++ b/.github/workflows/coverage-linux.yml
@@ -79,6 +79,6 @@ jobs:
- name: Clean tmp
run: rm -rf coverage/tmp && rm -rf out
- name: Upload
- uses: codecov/codecov-action@0565863a31f2c772f9f0395002a31e3f06189574 # v5.4.0
+ uses: codecov/codecov-action@18283e04ce6e62d37312384ff67231eb8fd56d24 # v5.4.3
with:
directory: ./coverage
diff --git a/.github/workflows/coverage-windows.yml b/.github/workflows/coverage-windows.yml
index d014e5e2ed4afa..0e68565e962741 100644
--- a/.github/workflows/coverage-windows.yml
+++ b/.github/workflows/coverage-windows.yml
@@ -71,6 +71,6 @@ jobs:
- name: Clean tmp
run: npx rimraf ./coverage/tmp
- name: Upload
- uses: codecov/codecov-action@0565863a31f2c772f9f0395002a31e3f06189574 # v5.4.0
+ uses: codecov/codecov-action@18283e04ce6e62d37312384ff67231eb8fd56d24 # v5.4.3
with:
directory: ./coverage
diff --git a/.github/workflows/notify-on-push.yml b/.github/workflows/notify-on-push.yml
index 2b85784d56898b..bdda058f104795 100644
--- a/.github/workflows/notify-on-push.yml
+++ b/.github/workflows/notify-on-push.yml
@@ -14,7 +14,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Slack Notification
- uses: rtCamp/action-slack-notify@c33737706dea87cd7784c687dadc9adf1be59990 # 2.3.2
+ uses: rtCamp/action-slack-notify@e31e87e03dd19038e411e38ae27cbad084a90661 # 2.3.3
env:
SLACK_COLOR: '#DE512A'
SLACK_ICON: https://github.com/nodejs.png?size=48
@@ -57,7 +57,7 @@ jobs:
GH_TOKEN: ${{ github.token }}
- name: Slack Notification
if: ${{ env.INVALID_COMMIT_MESSAGE }}
- uses: rtCamp/action-slack-notify@c33737706dea87cd7784c687dadc9adf1be59990 # 2.3.2
+ uses: rtCamp/action-slack-notify@e31e87e03dd19038e411e38ae27cbad084a90661 # 2.3.3
env:
SLACK_COLOR: '#DE512A'
SLACK_ICON: https://github.com/nodejs.png?size=48
diff --git a/.github/workflows/notify-on-review-wanted.yml b/.github/workflows/notify-on-review-wanted.yml
index b4e3490f31f3d6..96eee3096d8b69 100644
--- a/.github/workflows/notify-on-review-wanted.yml
+++ b/.github/workflows/notify-on-review-wanted.yml
@@ -33,7 +33,7 @@ jobs:
fi
- name: Slack Notification
- uses: rtCamp/action-slack-notify@c33737706dea87cd7784c687dadc9adf1be59990 # 2.3.2
+ uses: rtCamp/action-slack-notify@e31e87e03dd19038e411e38ae27cbad084a90661 # 2.3.3
env:
MSG_MINIMAL: actions url
SLACK_COLOR: '#3d85c6'
diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml
index 82bbdcfe4551bc..574703f4b0227b 100644
--- a/.github/workflows/scorecard.yml
+++ b/.github/workflows/scorecard.yml
@@ -33,7 +33,7 @@ jobs:
steps:
- name: Harden Runner
- uses: step-security/harden-runner@4d991eb9b905ef189e4c376166672c3f2f230481 # v2.11.0
+ uses: step-security/harden-runner@0634a2670c59f64b4a01f0f96f84700a4088b9f0 # v2.12.0
with:
egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs
@@ -43,7 +43,7 @@ jobs:
persist-credentials: false
- name: Run analysis
- uses: ossf/scorecard-action@f49aabe0b5af0936a0987cfb85d86b75731b0186 # v2.4.1
+ uses: ossf/scorecard-action@05b42c624433fc40578a4040d5cf5e36ddca8cde # v2.4.2
with:
results_file: results.sarif
results_format: sarif
@@ -73,6 +73,6 @@ jobs:
# Upload the results to GitHub's code scanning dashboard.
- name: Upload to code-scanning
- uses: github/codeql-action/upload-sarif@1b549b9259bda1cb5ddde3b41741a82a2d15a841 # v3.28.13
+ uses: github/codeql-action/upload-sarif@ff0a06e83cb2de871e5a09832bc6a81e7276941f # v3.28.18
with:
sarif_file: results.sarif
diff --git a/BUILDING.md b/BUILDING.md
index 78f83873cc1f5b..4c46468139f7da 100644
--- a/BUILDING.md
+++ b/BUILDING.md
@@ -122,6 +122,7 @@ platforms. This is true regardless of entries in the table below.
| SmartOS | x64 | >= 18 | Tier 2 | |
| AIX | ppc64be >=power8 | >= 7.2 TL04 | Tier 2 | |
| FreeBSD | x64 | >= 13.2 | Experimental | |
+| OpenHarmony | arm64 | >= 5.0 | Experimental | |
diff --git a/CHANGELOG.md b/CHANGELOG.md
index bb1b85cf163c9d..260b3cda612e96 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -40,7 +40,8 @@ release.
-24.1.0
+24.2.0
+24.1.0
24.0.2
24.0.1
24.0.0
diff --git a/README.md b/README.md
index 93964e275e7a10..0a7ff9bb1978b7 100644
--- a/README.md
+++ b/README.md
@@ -180,6 +180,8 @@ For information about the governance of the Node.js project, see
**Matteo Collina** <> (he/him)
* [mhdawson](https://github.com/mhdawson) -
**Michael Dawson** <> (he/him)
+* [panva](https://github.com/panva) -
+ **Filip Skokan** <> (he/him)
* [RafaelGSS](https://github.com/RafaelGSS) -
**Rafael Gonzaga** <> (he/him)
* [RaisinTen](https://github.com/RaisinTen) -
@@ -401,14 +403,12 @@ For information about the governance of the Node.js project, see
**Xuguang Mei** <> (he/him)
* [mhdawson](https://github.com/mhdawson) -
**Michael Dawson** <> (he/him)
-* [mildsunrise](https://github.com/mildsunrise) -
- **Alba Mendez** <> (she/her)
* [MoLow](https://github.com/MoLow) -
**Moshe Atlow** <> (he/him)
* [MrJithil](https://github.com/MrJithil) -
**Jithil P Ponnan** <> (he/him)
* [panva](https://github.com/panva) -
- **Filip Skokan** <> (he/him)
+ **Filip Skokan** <> (he/him) - [Support me](https://github.com/sponsors/panva)
* [pimterry](https://github.com/pimterry) -
**Tim Perry** <> (he/him)
* [pmarchini](https://github.com/pmarchini) -
@@ -611,6 +611,8 @@ For information about the governance of the Node.js project, see
**Mikeal Rogers** <>
* [miladfarca](https://github.com/miladfarca) -
**Milad Fa** <> (he/him)
+* [mildsunrise](https://github.com/mildsunrise) -
+ **Alba Mendez** <> (she/her)
* [misterdjules](https://github.com/misterdjules) -
**Julien Gilli** <>
* [mmarchini](https://github.com/mmarchini) -
diff --git a/benchmark/fs/bench-cpSync.js b/benchmark/fs/bench-cpSync.js
index 5ee11689e47a8e..fa6350384c69dd 100644
--- a/benchmark/fs/bench-cpSync.js
+++ b/benchmark/fs/bench-cpSync.js
@@ -4,20 +4,53 @@ const common = require('../common');
const fs = require('fs');
const path = require('path');
const tmpdir = require('../../test/common/tmpdir');
-tmpdir.refresh();
const bench = common.createBenchmark(main, {
n: [1, 100, 10_000],
+ dereference: ['true', 'false'],
+ force: ['true', 'false'],
});
-function main({ n }) {
+function prepareTestDirectory() {
+ const testDir = tmpdir.resolve(`test-cp-${process.pid}`);
+ fs.mkdirSync(testDir, { recursive: true });
+
+ fs.writeFileSync(path.join(testDir, 'source.txt'), 'test content');
+
+ fs.symlinkSync(
+ path.join(testDir, 'source.txt'),
+ path.join(testDir, 'link.txt'),
+ );
+
+ return testDir;
+}
+
+function main({ n, dereference, force }) {
tmpdir.refresh();
- const options = { recursive: true };
- const src = path.join(__dirname, '../../test/fixtures/copy');
+
+ const src = prepareTestDirectory();
const dest = tmpdir.resolve(`${process.pid}/subdir/cp-bench-${process.pid}`);
+
+ const options = {
+ recursive: true,
+ dereference: dereference === 'true',
+ force: force === 'true',
+ };
+
+ if (options.force) {
+ fs.cpSync(src, dest, { recursive: true });
+ }
+
bench.start();
for (let i = 0; i < n; i++) {
- fs.cpSync(src, dest, options);
+ if (options.force) {
+ fs.cpSync(src, dest, options);
+ } else {
+ const uniqueDest = tmpdir.resolve(
+ `${process.pid}/subdir/cp-bench-${process.pid}-${i}`,
+ );
+ fs.cpSync(src, uniqueDest, options);
+ }
}
bench.end(n);
}
diff --git a/benchmark/fs/bench-glob.js b/benchmark/fs/bench-glob.js
index 02ecf929269054..74612701e2182a 100644
--- a/benchmark/fs/bench-glob.js
+++ b/benchmark/fs/bench-glob.js
@@ -1,7 +1,11 @@
'use strict';
const common = require('../common');
-const fs = require('fs');
+const {
+ glob,
+ globSync,
+ promises: { glob: globAsync },
+} = require('fs');
const path = require('path');
const assert = require('node:assert');
@@ -11,7 +15,7 @@ const configs = {
n: [1e3],
dir: ['lib'],
pattern: ['**/*', '*.js', '**/**.js'],
- mode: ['async', 'sync'],
+ mode: ['sync', 'promise', 'callback'],
recursive: ['true', 'false'],
};
@@ -20,15 +24,33 @@ const bench = common.createBenchmark(main, configs);
async function main(config) {
const fullPath = path.resolve(benchmarkDirectory, config.dir);
const { pattern, recursive, mode } = config;
+ const options = { cwd: fullPath, recursive };
+ const callback = (resolve, reject) => {
+ glob(pattern, options, (err, matches) => {
+ if (err) {
+ reject(err);
+ } else {
+ resolve(matches);
+ }
+ });
+ };
let noDead;
bench.start();
for (let i = 0; i < config.n; i++) {
- if (mode === 'async') {
- noDead = await fs.promises.glob(pattern, { cwd: fullPath, recursive });
- } else {
- noDead = fs.globSync(pattern, { cwd: fullPath, recursive });
+ switch (mode) {
+ case 'sync':
+ noDead = globSync(pattern, options);
+ break;
+ case 'promise':
+ noDead = await globAsync(pattern, options);
+ break;
+ case 'callback':
+ noDead = await new Promise(callback);
+ break;
+ default:
+ throw new Error(`Unknown mode: ${mode}`);
}
}
diff --git a/benchmark/path/join-posix.js b/benchmark/path/join-posix.js
index 2e7836650af455..fe4ea4b4a4724a 100644
--- a/benchmark/path/join-posix.js
+++ b/benchmark/path/join-posix.js
@@ -16,8 +16,8 @@ function main({ n, paths }) {
bench.start();
for (let i = 0; i < n; i++) {
- if (i % 3 === 0) {
- copy[1] = `${orig}${i}`;
+ if (i % 5 === 0) {
+ copy[1] = `${orig}/${i}`;
posix.join(...copy);
} else {
posix.join(...args);
diff --git a/benchmark/path/join-win32.js b/benchmark/path/join-win32.js
index 3ad1c0c7ba2a61..41899dd9240842 100644
--- a/benchmark/path/join-win32.js
+++ b/benchmark/path/join-win32.js
@@ -16,8 +16,8 @@ function main({ n, paths }) {
bench.start();
for (let i = 0; i < n; i++) {
- if (i % 3 === 0) {
- copy[1] = `${orig}${i}`;
+ if (i % 5 === 0) {
+ copy[1] = `${orig}\\${i}`;
win32.join(...copy);
} else {
win32.join(...args);
diff --git a/benchmark/path/normalize-posix.js b/benchmark/path/normalize-posix.js
index 3e90bfc21aec46..4318ee0b147eda 100644
--- a/benchmark/path/normalize-posix.js
+++ b/benchmark/path/normalize-posix.js
@@ -17,7 +17,7 @@ const bench = common.createBenchmark(main, {
function main({ n, path }) {
bench.start();
for (let i = 0; i < n; i++) {
- posix.normalize(i % 3 === 0 ? `${path}${i}` : path);
+ posix.normalize(i % 5 === 0 ? `${path}/${i}` : path);
}
bench.end(n);
}
diff --git a/benchmark/path/normalize-win32.js b/benchmark/path/normalize-win32.js
index 33af7953ff547d..289b385d3f65a8 100644
--- a/benchmark/path/normalize-win32.js
+++ b/benchmark/path/normalize-win32.js
@@ -17,7 +17,7 @@ const bench = common.createBenchmark(main, {
function main({ n, path }) {
bench.start();
for (let i = 0; i < n; i++) {
- win32.normalize(i % 3 === 0 ? `${path}${i}` : path);
+ win32.normalize(i % 5 === 0 ? `${path}\\${i}` : path);
}
bench.end(n);
}
diff --git a/benchmark/path/resolve-posix.js b/benchmark/path/resolve-posix.js
index 4881947fe46b6d..edc3593bb7f4d9 100644
--- a/benchmark/path/resolve-posix.js
+++ b/benchmark/path/resolve-posix.js
@@ -4,23 +4,26 @@ const { posix } = require('path');
const bench = common.createBenchmark(main, {
paths: [
+ 'empty',
'',
+ '.',
['', ''].join('|'),
['foo/bar', '/tmp/file/', '..', 'a/../subfile'].join('|'),
['a/b/c/', '../../..'].join('|'),
+ ['/a/b/c/', 'abc'].join('|'),
],
n: [1e5],
});
function main({ n, paths }) {
- const args = paths.split('|');
+ const args = paths === 'empty' ? [] : paths.split('|');
const copy = [...args];
- const orig = copy[0];
+ const orig = copy[0] ?? '';
bench.start();
for (let i = 0; i < n; i++) {
- if (i % 3 === 0) {
- copy[0] = `${orig}${i}`;
+ if (i % 5 === 0) {
+ copy[0] = `${orig}/${i}`;
posix.resolve(...copy);
} else {
posix.resolve(...args);
diff --git a/benchmark/path/resolve-win32.js b/benchmark/path/resolve-win32.js
index 822b98c2b86c52..a28f2f43e25314 100644
--- a/benchmark/path/resolve-win32.js
+++ b/benchmark/path/resolve-win32.js
@@ -4,7 +4,9 @@ const { win32 } = require('path');
const bench = common.createBenchmark(main, {
paths: [
+ 'empty',
'',
+ '.',
['', ''].join('|'),
['c:/ignore', 'd:\\a/b\\c/d', '\\e.exe'].join('|'),
['c:/blah\\blah', 'd:/games', 'c:../a'].join('|'),
@@ -13,14 +15,14 @@ const bench = common.createBenchmark(main, {
});
function main({ n, paths }) {
- const args = paths.split('|');
+ const args = paths === 'empty' ? [] : paths.split('|');
const copy = [...args];
- const orig = copy[0];
+ const orig = copy[0] ?? '';
bench.start();
for (let i = 0; i < n; i++) {
- if (i % 3 === 0) {
- copy[0] = `${orig}${i}`;
+ if (i % 5 === 0) {
+ copy[0] = `${orig}\\${i}`;
win32.resolve(...copy);
} else {
win32.resolve(...args);
diff --git a/common.gypi b/common.gypi
index 162faabcefc3bc..96ec81cd81c912 100644
--- a/common.gypi
+++ b/common.gypi
@@ -38,7 +38,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.16',
+ 'v8_embedder_string': '-node.17',
##### V8 defaults for Node.js #####
@@ -82,6 +82,7 @@
'v8_enable_direct_local%': 0,
'v8_enable_map_packing%': 0,
'v8_enable_pointer_compression_shared_cage%': 0,
+ 'v8_enable_external_code_space%': 0,
'v8_enable_sandbox%': 0,
'v8_enable_v8_checks%': 0,
'v8_enable_zone_compression%': 0,
@@ -115,12 +116,13 @@
['target_arch in "arm ia32 mips mipsel"', {
'v8_enable_pointer_compression': 0,
'v8_enable_31bit_smis_on_64bit_arch': 0,
+ 'v8_enable_external_code_space': 0,
'v8_enable_sandbox': 0
}],
['target_arch in "ppc64 s390x"', {
'v8_enable_backtrace': 1,
}],
- ['OS=="linux"', {
+ ['OS=="linux" or OS=="openharmony"', {
'node_section_ordering_info%': ''
}],
['OS == "zos"', {
@@ -202,7 +204,7 @@
'LLVM_LTO': 'YES',
},
}],
- ['OS=="linux"', {
+ ['OS=="linux" or OS=="openharmony"', {
'conditions': [
['node_section_ordering_info!=""', {
'cflags': [
@@ -230,7 +232,7 @@
# frames otherwise, even with --call-graph dwarf.
'cflags': [ '-fno-omit-frame-pointer' ],
}],
- ['OS=="linux"', {
+ ['OS=="linux" or OS=="openharmony"', {
'conditions': [
['enable_pgo_generate=="true"', {
'cflags': ['<(pgo_generate)'],
@@ -458,6 +460,9 @@
['v8_enable_sandbox == 1', {
'defines': ['V8_ENABLE_SANDBOX',],
}],
+ ['v8_enable_external_code_space == 1', {
+ 'defines': ['V8_EXTERNAL_CODE_SPACE',],
+ }],
['v8_deprecation_warnings == 1', {
'defines': ['V8_DEPRECATION_WARNINGS',],
}],
@@ -498,11 +503,11 @@
'NOMINMAX',
],
}],
- [ 'OS in "linux freebsd openbsd solaris aix os400"', {
+ [ 'OS in "linux freebsd openbsd solaris aix os400 openharmony"', {
'cflags': [ '-pthread' ],
'ldflags': [ '-pthread' ],
}],
- [ 'OS in "linux freebsd openbsd solaris android aix os400 cloudabi"', {
+ [ 'OS in "linux freebsd openbsd solaris android aix os400 cloudabi openharmony"', {
'cflags': [ '-Wall', '-Wextra', '-Wno-unused-parameter', ],
'cflags_cc': [
'-fno-rtti',
diff --git a/configure.py b/configure.py
index 83f700af4f86b7..a648c21ffe11ed 100755
--- a/configure.py
+++ b/configure.py
@@ -45,7 +45,7 @@
parser = argparse.ArgumentParser()
valid_os = ('win', 'mac', 'solaris', 'freebsd', 'openbsd', 'linux',
- 'android', 'aix', 'cloudabi', 'os400', 'ios')
+ 'android', 'aix', 'cloudabi', 'os400', 'ios', 'openharmony')
valid_arch = ('arm', 'arm64', 'ia32', 'mips', 'mipsel', 'mips64el',
'ppc64', 'x64', 'x86', 'x86_64', 's390x', 'riscv64', 'loong64')
valid_arm_float_abi = ('soft', 'softfp', 'hard')
@@ -277,7 +277,7 @@
shared_optgroup.add_argument('--shared-http-parser-libname',
action='store',
dest='shared_http_parser_libname',
- default='http_parser',
+ default='llhttp',
help='alternative lib name to link to [default: %(default)s]')
shared_optgroup.add_argument('--shared-http-parser-libpath',
@@ -1718,7 +1718,15 @@ def configure_v8(o, configs):
o['variables']['v8_enable_maglev'] = B(not options.v8_disable_maglev and
o['variables']['target_arch'] in maglev_enabled_architectures)
o['variables']['v8_enable_pointer_compression'] = 1 if options.enable_pointer_compression else 0
- o['variables']['v8_enable_sandbox'] = 1 if options.enable_pointer_compression else 0
+ # Using the sandbox requires always allocating array buffer backing stores in the sandbox.
+ # We currently have many backing stores tied to pointers from C++ land that are not
+ # even necessarily dynamic (e.g. in static storage) for fast communication between JS and C++.
+ # Until we manage to get rid of all those, v8_enable_sandbox cannot be used.
+ # Note that enabling pointer compression without enabling sandbox is unsupported by V8,
+ # so this can be broken at any time.
+ o['variables']['v8_enable_sandbox'] = 0
+ o['variables']['v8_enable_pointer_compression_shared_cage'] = 1 if options.enable_pointer_compression else 0
+ o['variables']['v8_enable_external_code_space'] = 1 if options.enable_pointer_compression else 0
o['variables']['v8_enable_31bit_smis_on_64bit_arch'] = 1 if options.enable_pointer_compression else 0
o['variables']['v8_enable_extensible_ro_snapshot'] = 0
o['variables']['v8_trace_maps'] = 1 if options.trace_maps else 0
@@ -2265,7 +2273,7 @@ def make_bin_override():
configure_node_cctest_sources(output)
configure_napi(output)
configure_library('zlib', output)
-configure_library('http_parser', output)
+configure_library('http_parser', output, pkgname='libllhttp')
configure_library('libuv', output)
configure_library('ada', output)
configure_library('simdjson', output)
diff --git a/deps/ada/ada.cpp b/deps/ada/ada.cpp
index f6704596ced611..d4f228ebfc3f06 100644
--- a/deps/ada/ada.cpp
+++ b/deps/ada/ada.cpp
@@ -1,4 +1,4 @@
-/* auto-generated on 2025-04-24 20:04:09 -0400. Do not edit! */
+/* auto-generated on 2025-04-28 12:16:36 -0400. Do not edit! */
/* begin file src/ada.cpp */
#include "ada.h"
/* begin file src/checkers.cpp */
@@ -56,8 +56,8 @@ ada_really_inline constexpr bool is_ipv4(std::string_view view) noexcept {
}
// We have 0x followed by some characters, we need to check that they are
// hexadecimals.
- return std::all_of(view.begin() + 2, view.end(),
- ada::unicode::is_lowercase_hex);
+ view.remove_prefix(2);
+ return std::ranges::all_of(view, ada::unicode::is_lowercase_hex);
}
// for use with path_signature, we include all characters that need percent
@@ -10421,6 +10421,8 @@ ADA_POP_DISABLE_WARNINGS
#include
#endif
+#include
+
namespace ada::unicode {
constexpr bool is_tabs_or_newline(char c) noexcept {
@@ -10461,8 +10463,7 @@ ada_really_inline bool has_tabs_or_newline(
std::string_view user_input) noexcept {
// first check for short strings in which case we do it naively.
if (user_input.size() < 16) { // slow path
- return std::any_of(user_input.begin(), user_input.end(),
- is_tabs_or_newline);
+ return std::ranges::any_of(user_input, is_tabs_or_newline);
}
// fast path for long strings (expected to be common)
size_t i = 0;
@@ -10500,8 +10501,7 @@ ada_really_inline bool has_tabs_or_newline(
std::string_view user_input) noexcept {
// first check for short strings in which case we do it naively.
if (user_input.size() < 16) { // slow path
- return std::any_of(user_input.begin(), user_input.end(),
- is_tabs_or_newline);
+ return std::ranges::any_of(user_input, is_tabs_or_newline);
}
// fast path for long strings (expected to be common)
size_t i = 0;
@@ -10832,10 +10832,9 @@ bool percent_encode(const std::string_view input, const uint8_t character_set[],
std::string& out) {
ada_log("percent_encode ", input, " to output string while ",
append ? "appending" : "overwriting");
- auto pointer =
- std::find_if(input.begin(), input.end(), [character_set](const char c) {
- return character_sets::bit_at(character_set, c);
- });
+ auto pointer = std::ranges::find_if(input, [character_set](const char c) {
+ return character_sets::bit_at(character_set, c);
+ });
ada_log("percent_encode done checking, moved to ",
std::distance(input.begin(), pointer));
@@ -11850,6 +11849,7 @@ ada_warn_unused std::string to_string(ada::state state) {
#include
#include
+#include
#include
#include
@@ -11857,8 +11857,7 @@ namespace ada {
bool url::parse_opaque_host(std::string_view input) {
ada_log("parse_opaque_host ", input, " [", input.size(), " bytes]");
- if (std::ranges::any_of(input.begin(), input.end(),
- ada::unicode::is_forbidden_host_code_point)) {
+ if (std::ranges::any_of(input, ada::unicode::is_forbidden_host_code_point)) {
return is_valid = false;
}
@@ -12725,6 +12724,7 @@ bool url::set_href(const std::string_view input) {
/* begin file src/parser.cpp */
#include
+#include
namespace ada::parser {
@@ -13344,7 +13344,7 @@ result_type parse_url_impl(std::string_view user_input,
// to optimize it.
if (view.ends_with(' ')) {
std::string modified_view =
- std::string(view.begin(), view.end() - 1) + "%20";
+ std::string(view.substr(0, view.size() - 1)) + "%20";
url.update_base_pathname(unicode::percent_encode(
modified_view, character_sets::C0_CONTROL_PERCENT_ENCODE));
} else {
@@ -13694,6 +13694,7 @@ namespace ada {
/* end file src/url_components.cpp */
/* begin file src/url_aggregator.cpp */
+#include
#include
#include
@@ -13913,7 +13914,7 @@ bool url_aggregator::set_protocol(const std::string_view input) {
if (pointer != view.end() && *pointer == ':') {
return parse_scheme_with_colon(
- std::string_view(view.data(), pointer - view.begin() + 1));
+ view.substr(0, pointer - view.begin() + 1));
}
return false;
}
@@ -14175,8 +14176,8 @@ ada_really_inline bool url_aggregator::parse_host(std::string_view input) {
ada_log("parse_host to_ascii succeeded ", *host, " [", host->size(),
" bytes]");
- if (std::any_of(host.value().begin(), host.value().end(),
- ada::unicode::is_forbidden_domain_code_point)) {
+ if (std::ranges::any_of(host.value(),
+ ada::unicode::is_forbidden_domain_code_point)) {
return is_valid = false;
}
@@ -14868,8 +14869,7 @@ bool url_aggregator::parse_opaque_host(std::string_view input) {
ada_log("parse_opaque_host ", input, " [", input.size(), " bytes]");
ADA_ASSERT_TRUE(validate());
ADA_ASSERT_TRUE(!helpers::overlaps(input, buffer));
- if (std::any_of(input.begin(), input.end(),
- ada::unicode::is_forbidden_host_code_point)) {
+ if (std::ranges::any_of(input, ada::unicode::is_forbidden_host_code_point)) {
return is_valid = false;
}
diff --git a/deps/ada/ada.h b/deps/ada/ada.h
index 071a54e9fad38d..d1a61501de0815 100644
--- a/deps/ada/ada.h
+++ b/deps/ada/ada.h
@@ -1,4 +1,4 @@
-/* auto-generated on 2025-04-24 20:04:09 -0400. Do not edit! */
+/* auto-generated on 2025-04-28 12:16:36 -0400. Do not edit! */
/* begin file include/ada.h */
/**
* @file ada.h
@@ -4115,7 +4115,6 @@ void swap(expected &lhs,
#endif
/* end file include/ada/expected.h */
-#if ADA_INCLUDE_URL_PATTERN
/* begin file include/ada/url_pattern_regex.h */
/**
* @file url_search_params.h
@@ -4131,6 +4130,7 @@ void swap(expected &lhs,
#include
#endif // ADA_USE_UNSAFE_STD_REGEX_PROVIDER
+#if ADA_INCLUDE_URL_PATTERN
namespace ada::url_pattern_regex {
template
@@ -4175,7 +4175,7 @@ class std_regex_provider final {
#endif // ADA_USE_UNSAFE_STD_REGEX_PROVIDER
} // namespace ada::url_pattern_regex
-
+#endif // ADA_INCLUDE_URL_PATTERN
#endif // ADA_URL_PATTERN_REGEX_H
/* end file include/ada/url_pattern_regex.h */
/* begin file include/ada/url_pattern_init.h */
@@ -4209,6 +4209,7 @@ enum class errors : uint8_t { type_error };
#include
#endif // ADA_TESTING
+#if ADA_INCLUDE_URL_PATTERN
namespace ada {
// Important: C++20 allows us to use concept rather than `using` or `typedef
@@ -4312,10 +4313,9 @@ struct url_pattern_init {
std::optional base_url{};
};
} // namespace ada
-
+#endif // ADA_INCLUDE_URL_PATTERN
#endif // ADA_URL_PATTERN_INIT_H
/* end file include/ada/url_pattern_init.h */
-#endif // ADA_INCLUDE_URL_PATTERN
/**
* @private
@@ -4378,7 +4378,6 @@ tl::expected, errors> parse_url_pattern_impl(
#ifndef ADA_PARSER_INL_H
#define ADA_PARSER_INL_H
-#if ADA_INCLUDE_URL_PATTERN
/* begin file include/ada/url_pattern.h */
/**
* @file url_pattern.h
@@ -5014,9 +5013,6 @@ inline std::ostream &operator<<(std::ostream &out, const ada::url &u);
#endif // ADA_URL_H
/* end file include/ada/url.h */
-#if ADA_INCLUDE_URL_PATTERN
-#endif // ADA_INCLUDE_URL_PATTERN
-
namespace ada {
template
@@ -5088,6 +5084,7 @@ std::string href_from_file(std::string_view path);
#include
#endif // ADA_TESTING
+#if ADA_INCLUDE_URL_PATTERN
namespace ada {
enum class url_pattern_part_type : uint8_t {
@@ -5420,9 +5417,8 @@ class url_pattern {
*/
bool ignore_case_ = false;
};
-
} // namespace ada
-
+#endif // ADA_INCLUDE_URL_PATTERN
#endif
/* end file include/ada/url_pattern.h */
/* begin file include/ada/url_pattern_helpers.h */
@@ -5438,6 +5434,7 @@ class url_pattern {
#include
#include
+#if ADA_INCLUDE_URL_PATTERN
namespace ada {
enum class errors : uint8_t;
}
@@ -5769,10 +5766,9 @@ std::string generate_segment_wildcard_regexp(
url_pattern_compile_component_options options);
} // namespace ada::url_pattern_helpers
-
+#endif // ADA_INCLUDE_URL_PATTERN
#endif
/* end file include/ada/url_pattern_helpers.h */
-#endif // ADA_INCLUDE_URL_PATTERN
#include
#include
@@ -8915,7 +8911,6 @@ url_search_params_entries_iter::next() {
#endif // ADA_URL_SEARCH_PARAMS_INL_H
/* end file include/ada/url_search_params-inl.h */
-#if ADA_INCLUDE_URL_PATTERN
/* begin file include/ada/url_pattern-inl.h */
/**
* @file url_pattern-inl.h
@@ -8929,6 +8924,7 @@ url_search_params_entries_iter::next() {
#include
#include
+#if ADA_INCLUDE_URL_PATTERN
namespace ada {
inline bool url_pattern_init::operator==(const url_pattern_init& other) const {
@@ -9397,7 +9393,7 @@ result> url_pattern::match(
}
} // namespace ada
-
+#endif // ADA_INCLUDE_URL_PATTERN
#endif
/* end file include/ada/url_pattern-inl.h */
/* begin file include/ada/url_pattern_helpers-inl.h */
@@ -9412,6 +9408,7 @@ result> url_pattern::match(
#include
+#if ADA_INCLUDE_URL_PATTERN
namespace ada::url_pattern_helpers {
#ifdef ADA_TESTING
inline std::string to_string(token_type type) {
@@ -10488,10 +10485,9 @@ constructor_string_parser::parse(std::string_view input) {
}
} // namespace ada::url_pattern_helpers
-
+#endif // ADA_INCLUDE_URL_PATTERN
#endif
/* end file include/ada/url_pattern_helpers-inl.h */
-#endif // ADA_INCLUDE_URL_PATTERN
// Public API
/* begin file include/ada/ada_version.h */
@@ -10502,14 +10498,14 @@ constructor_string_parser::parse(std::string_view input) {
#ifndef ADA_ADA_VERSION_H
#define ADA_ADA_VERSION_H
-#define ADA_VERSION "3.2.3"
+#define ADA_VERSION "3.2.4"
namespace ada {
enum {
ADA_VERSION_MAJOR = 3,
ADA_VERSION_MINOR = 2,
- ADA_VERSION_REVISION = 3,
+ ADA_VERSION_REVISION = 4,
};
} // namespace ada
@@ -10523,8 +10519,6 @@ enum {
#ifndef ADA_IMPLEMENTATION_INL_H
#define ADA_IMPLEMENTATION_INL_H
-#if ADA_INCLUDE_URL_PATTERN
-#endif // ADA_INCLUDE_URL_PATTERN
#include
diff --git a/deps/cares/cares.gyp b/deps/cares/cares.gyp
index c34ad7370ca45a..fee055c079f013 100644
--- a/deps/cares/cares.gyp
+++ b/deps/cares/cares.gyp
@@ -248,6 +248,10 @@
'-lnsl'
]
}
+ }],
+ [ 'OS=="openharmony"', {
+ 'include_dirs': [ 'config/openharmony' ],
+ 'sources': [ 'config/openharmony/ares_config.h' ],
}]
]
}
diff --git a/deps/cares/config/openharmony/ares_config.h b/deps/cares/config/openharmony/ares_config.h
new file mode 100644
index 00000000000000..ec9f81d40e6a1e
--- /dev/null
+++ b/deps/cares/config/openharmony/ares_config.h
@@ -0,0 +1,573 @@
+/* src/lib/ares_config.h. Generated from ares_config.h.in by configure. */
+/* src/lib/ares_config.h.in. Generated from configure.ac by autoheader. */
+
+/* a suitable file/device to read random data from */
+#define CARES_RANDOM_FILE "/dev/urandom"
+
+/* Set to 1 if non-pubilc shared library symbols are hidden */
+#define CARES_SYMBOL_HIDING 1
+
+/* Threading enabled */
+#define CARES_THREADS 1
+
+/* the signed version of size_t */
+#define CARES_TYPEOF_ARES_SSIZE_T ssize_t
+
+/* Use resolver library to configure cares */
+/* #undef CARES_USE_LIBRESOLV */
+
+/* if a /etc/inet dir is being used */
+/* #undef ETC_INET */
+
+/* gethostname() arg2 type */
+#define GETHOSTNAME_TYPE_ARG2 size_t
+
+/* getnameinfo() arg1 type */
+#define GETNAMEINFO_TYPE_ARG1 struct sockaddr *
+
+/* getnameinfo() arg2 type */
+#define GETNAMEINFO_TYPE_ARG2 socklen_t
+
+/* getnameinfo() arg4 and 6 type */
+#define GETNAMEINFO_TYPE_ARG46 socklen_t
+
+/* getnameinfo() arg7 type */
+#define GETNAMEINFO_TYPE_ARG7 int
+
+/* number of arguments for getservbyname_r() */
+/* #undef GETSERVBYNAME_R_ARGS */
+
+/* number of arguments for getservbyport_r() */
+#define GETSERVBYPORT_R_ARGS 6
+
+/* Define to 1 if you have AF_INET6 */
+#define HAVE_AF_INET6 1
+
+/* Define to 1 if you have `arc4random_buf` */
+/* #undef HAVE_ARC4RANDOM_BUF */
+
+/* Define to 1 if you have the header file. */
+#define HAVE_ARPA_INET_H 1
+
+/* Define to 1 if you have the header file. */
+#define HAVE_ARPA_NAMESER_COMPAT_H 1
+
+/* Define to 1 if you have the header file. */
+#define HAVE_ARPA_NAMESER_H 1
+
+/* Define to 1 if you have the header file. */
+#define HAVE_ASSERT_H 1
+
+/* Define to 1 if you have the header file. */
+/* #undef HAVE_AVAILABILITYMACROS_H */
+
+/* Define to 1 if you have `clock_gettime` */
+#define HAVE_CLOCK_GETTIME 1
+
+/* clock_gettime() with CLOCK_MONOTONIC support */
+#define HAVE_CLOCK_GETTIME_MONOTONIC 1
+
+/* Define to 1 if you have `closesocket` */
+/* #undef HAVE_CLOSESOCKET */
+
+/* Define to 1 if you have `CloseSocket` */
+/* #undef HAVE_CLOSESOCKET_CAMEL */
+
+/* Define to 1 if you have `connect` */
+#define HAVE_CONNECT 1
+
+/* Define to 1 if you have `ConvertInterfaceIndexToLuid` */
+/* #undef HAVE_CONVERTINTERFACEINDEXTOLUID */
+
+/* Define to 1 if you have `ConvertInterfaceLuidToNameA` */
+/* #undef HAVE_CONVERTINTERFACELUIDTONAMEA */
+
+/* define if the compiler supports basic C++14 syntax */
+#define HAVE_CXX14 1
+
+/* Define to 1 if you have the header file. */
+#define HAVE_DLFCN_H 1
+
+/* Define to 1 if you have `epoll_{create1,ctl,wait}` */
+#define HAVE_EPOLL 1
+
+/* Define to 1 if you have the header file. */
+#define HAVE_ERRNO_H 1
+
+/* Define to 1 if you have `fcntl` */
+#define HAVE_FCNTL 1
+
+/* Define to 1 if you have the header file. */
+#define HAVE_FCNTL_H 1
+
+/* fcntl() with O_NONBLOCK support */
+#define HAVE_FCNTL_O_NONBLOCK 1
+
+/* Define to 1 if you have `getenv` */
+#define HAVE_GETENV 1
+
+/* Define to 1 if you have `gethostname` */
+#define HAVE_GETHOSTNAME 1
+
+/* Define to 1 if you have `getifaddrs` */
+#define HAVE_GETIFADDRS 1
+
+/* Define to 1 if you have `getnameinfo` */
+#define HAVE_GETNAMEINFO 1
+
+/* Define to 1 if you have `getrandom` */
+#define HAVE_GETRANDOM 1
+
+/* Define to 1 if you have `getservbyport_r` */
+/* #undef HAVE_GETSERVBYPORT_R 1 */
+
+/* Define to 1 if you have `gettimeofday` */
+#define HAVE_GETTIMEOFDAY 1
+
+/* Define to 1 if you have the header file. */
+#define HAVE_IFADDRS_H 1
+
+/* Define to 1 if you have `if_indextoname` */
+#define HAVE_IF_INDEXTONAME 1
+
+/* Define to 1 if you have `if_nametoindex` */
+#define HAVE_IF_NAMETOINDEX 1
+
+/* Define to 1 if you have `inet_net_pton` */
+#define HAVE_INET_NET_PTON 1
+
+/* Define to 1 if you have `inet_ntop` */
+#define HAVE_INET_NTOP 1
+
+/* Define to 1 if you have `inet_pton` */
+#define HAVE_INET_PTON 1
+
+/* Define to 1 if you have the header file. */
+#define HAVE_INTTYPES_H 1
+
+/* Define to 1 if you have `ioctl` */
+#define HAVE_IOCTL 1
+
+/* Define to 1 if you have `ioctlsocket` */
+/* #undef HAVE_IOCTLSOCKET */
+
+/* Define to 1 if you have `IoctlSocket` */
+/* #undef HAVE_IOCTLSOCKET_CAMEL */
+
+/* ioctlsocket() with FIONBIO support */
+/* #undef HAVE_IOCTLSOCKET_FIONBIO */
+
+/* ioctl() with FIONBIO support */
+#define HAVE_IOCTL_FIONBIO 1
+
+/* Define to 1 if you have the header file. */
+/* #undef HAVE_IPHLPAPI_H */
+
+/* Define to 1 if you have `kqueue` */
+/* #undef HAVE_KQUEUE */
+
+/* Define to 1 if you have the header file. */
+#define HAVE_LIMITS_H 1
+
+/* Define to 1 if the compiler supports the 'long long' data type. */
+#define HAVE_LONGLONG 1
+
+/* Define to 1 if you have the header file. */
+#define HAVE_MALLOC_H 1
+
+/* Define to 1 if you have the header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define to 1 if you have the header file. */
+/* #undef HAVE_MINIX_CONFIG_H */
+
+/* Define to 1 if you have the header file. */
+/* #undef HAVE_MSWSOCK_H */
+
+/* Define to 1 if you have the header file. */
+#define HAVE_NETDB_H 1
+
+/* Define to 1 if you have the header file. */
+#define HAVE_NETINET_IN_H 1
+
+/* Define to 1 if you have the header file. */
+#define HAVE_NETINET_TCP_H 1
+
+/* Define to 1 if you have the header file. */
+/* #undef HAVE_NETIOAPI_H */
+
+/* Define to 1 if you have the header file. */
+#define HAVE_NET_IF_H 1
+
+/* Define to 1 if you have the header file. */
+/* #undef HAVE_NTDEF_H */
+
+/* Define to 1 if you have the header file. */
+/* #undef HAVE_NTSTATUS_H */
+
+/* Define to 1 if you have PF_INET6 */
+#define HAVE_PF_INET6 1
+
+/* Define to 1 if you have `pipe` */
+#define HAVE_PIPE 1
+
+/* Define to 1 if you have `pipe2` */
+#define HAVE_PIPE2 1
+
+/* Define to 1 if you have `poll` */
+#define HAVE_POLL 1
+
+/* Define to 1 if you have the header file. */
+#define HAVE_POLL_H 1
+
+/* Define to 1 if you have the header file. */
+#define HAVE_PTHREAD_H 1
+
+/* Define to 1 if you have the header file. */
+/* #undef HAVE_PTHREAD_NP_H */
+
+/* Have PTHREAD_PRIO_INHERIT. */
+#define HAVE_PTHREAD_PRIO_INHERIT 1
+
+/* Define to 1 if you have `recv` */
+#define HAVE_RECV 1
+
+/* Define to 1 if you have `recvfrom` */
+#define HAVE_RECVFROM 1
+
+/* Define to 1 if you have `send` */
+#define HAVE_SEND 1
+
+/* Define to 1 if you have `setsockopt` */
+#define HAVE_SETSOCKOPT 1
+
+/* setsockopt() with SO_NONBLOCK support */
+/* #undef HAVE_SETSOCKOPT_SO_NONBLOCK */
+
+/* Define to 1 if you have `socket` */
+#define HAVE_SOCKET 1
+
+/* Define to 1 if you have the header file. */
+/* #undef HAVE_SOCKET_H */
+
+/* socklen_t */
+#define HAVE_SOCKLEN_T /**/
+
+/* Define to 1 if you have `stat` */
+#define HAVE_STAT 1
+
+/* Define to 1 if you have the header file. */
+#define HAVE_STDBOOL_H 1
+
+/* Define to 1 if you have the header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the header file. */
+#define HAVE_STDIO_H 1
+
+/* Define to 1 if you have the header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have `strcasecmp` */
+#define HAVE_STRCASECMP 1
+
+/* Define to 1 if you have `strdup` */
+#define HAVE_STRDUP 1
+
+/* Define to 1 if you have `stricmp` */
+/* #undef HAVE_STRICMP */
+
+/* Define to 1 if you have the header file. */
+#define HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have `strncasecmp` */
+#define HAVE_STRNCASECMP 1
+
+/* Define to 1 if you have `strncmpi` */
+/* #undef HAVE_STRNCMPI */
+
+/* Define to 1 if you have `strnicmp` */
+/* #undef HAVE_STRNICMP */
+
+/* Define to 1 if the system has the type `struct addrinfo'. */
+#define HAVE_STRUCT_ADDRINFO 1
+
+/* Define to 1 if `ai_flags' is a member of `struct addrinfo'. */
+#define HAVE_STRUCT_ADDRINFO_AI_FLAGS 1
+
+/* Define to 1 if the system has the type `struct in6_addr'. */
+#define HAVE_STRUCT_IN6_ADDR 1
+
+/* Define to 1 if the system has the type `struct sockaddr_in6'. */
+#define HAVE_STRUCT_SOCKADDR_IN6 1
+
+/* Define to 1 if `sin6_scope_id' is a member of `struct sockaddr_in6'. */
+#define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+
+/* Define to 1 if the system has the type `struct sockaddr_storage'. */
+#define HAVE_STRUCT_SOCKADDR_STORAGE 1
+
+/* Define to 1 if the system has the type `struct timeval'. */
+#define HAVE_STRUCT_TIMEVAL 1
+
+/* Define to 1 if you have the header file. */
+#define HAVE_SYS_EPOLL_H 1
+
+/* Define to 1 if you have the header file. */
+/* #undef HAVE_SYS_EVENT_H */
+
+/* Define to 1 if you have the header file. */
+/* #undef HAVE_SYS_FILIO_H */
+
+/* Define to 1 if you have the header file. */
+#define HAVE_SYS_IOCTL_H 1
+
+/* Define to 1 if you have the header file. */
+#define HAVE_SYS_PARAM_H 1
+
+/* Define to 1 if you have the header file. */
+#define HAVE_SYS_RANDOM_H 1
+
+/* Define to 1 if you have the header file. */
+#define HAVE_SYS_SELECT_H 1
+
+/* Define to 1 if you have the header file. */
+#define HAVE_SYS_SOCKET_H 1
+
+/* Define to 1 if you have the header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the header file. */
+#define HAVE_SYS_TIME_H 1
+
+/* Define to 1 if you have the header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the header file. */
+#define HAVE_SYS_UIO_H 1
+
+/* Define to 1 if you have the header file. */
+#define HAVE_TIME_H 1
+
+/* Define to 1 if you have the header file. */
+#define HAVE_UNISTD_H 1
+
+/* Whether user namespaces are available */
+#define HAVE_USER_NAMESPACE 1
+
+/* Whether UTS namespaces are available */
+#define HAVE_UTS_NAMESPACE 1
+
+/* Define to 1 if you have the header file. */
+#define HAVE_WCHAR_H 1
+
+/* Define to 1 if you have the header file. */
+/* #undef HAVE_WINDOWS_H */
+
+/* Define to 1 if you have the header file. */
+/* #undef HAVE_WINSOCK2_H */
+
+/* Define to 1 if you have the header file. */
+/* #undef HAVE_WINTERNL_H */
+
+/* Define to 1 if you have `writev` */
+#define HAVE_WRITEV 1
+
+/* Define to 1 if you have the header file. */
+/* #undef HAVE_WS2IPDEF_H */
+
+/* Define to 1 if you have the header file. */
+/* #undef HAVE_WS2TCPIP_H */
+
+/* Define to 1 if you have `__system_property_get` */
+/* #undef HAVE___SYSTEM_PROPERTY_GET */
+
+/* Define to the sub-directory where libtool stores uninstalled libraries. */
+#define LT_OBJDIR ".libs/"
+
+/* Name of package */
+#define PACKAGE "c-ares"
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "c-ares mailing list: http://lists.haxx.se/listinfo/c-ares"
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "c-ares"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "c-ares 1.26.0"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "c-ares"
+
+/* Define to the home page for this package. */
+#define PACKAGE_URL ""
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "1.26.0"
+
+/* Define to necessary symbol if this constant uses a non-standard name on
+ your system. */
+/* #undef PTHREAD_CREATE_JOINABLE */
+
+/* recvfrom() arg5 qualifier */
+#define RECVFROM_QUAL_ARG5
+
+/* recvfrom() arg1 type */
+#define RECVFROM_TYPE_ARG1 int
+
+/* recvfrom() arg2 type */
+#define RECVFROM_TYPE_ARG2 void *
+
+/* recvfrom() arg3 type */
+#define RECVFROM_TYPE_ARG3 size_t
+
+/* recvfrom() arg4 type */
+#define RECVFROM_TYPE_ARG4 int
+
+/* recvfrom() arg5 type */
+#define RECVFROM_TYPE_ARG5 struct sockaddr *
+
+/* recvfrom() return value */
+#define RECVFROM_TYPE_RETV ssize_t
+
+/* recv() arg1 type */
+#define RECV_TYPE_ARG1 int
+
+/* recv() arg2 type */
+#define RECV_TYPE_ARG2 void *
+
+/* recv() arg3 type */
+#define RECV_TYPE_ARG3 size_t
+
+/* recv() arg4 type */
+#define RECV_TYPE_ARG4 int
+
+/* recv() return value */
+#define RECV_TYPE_RETV ssize_t
+
+/* send() arg2 qualifier */
+#define SEND_QUAL_ARG2
+
+/* send() arg1 type */
+#define SEND_TYPE_ARG1 int
+
+/* send() arg2 type */
+#define SEND_TYPE_ARG2 void *
+
+/* send() arg3 type */
+#define SEND_TYPE_ARG3 size_t
+
+/* send() arg4 type */
+#define SEND_TYPE_ARG4 int
+
+/* send() return value */
+#define SEND_TYPE_RETV ssize_t
+
+/* 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. */
+#define STDC_HEADERS 1
+
+/* Enable extensions on AIX 3, Interix. */
+#ifndef _ALL_SOURCE
+# define _ALL_SOURCE 1
+#endif
+/* Enable general extensions on macOS. */
+#ifndef _DARWIN_C_SOURCE
+# define _DARWIN_C_SOURCE 1
+#endif
+/* Enable general extensions on Solaris. */
+#ifndef __EXTENSIONS__
+# define __EXTENSIONS__ 1
+#endif
+/* Enable GNU extensions on systems that have them. */
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
+/* Enable X/Open compliant socket functions that do not require linking
+ with -lxnet on HP-UX 11.11. */
+#ifndef _HPUX_ALT_XOPEN_SOCKET_API
+# define _HPUX_ALT_XOPEN_SOCKET_API 1
+#endif
+/* Identify the host operating system as Minix.
+ This macro does not affect the system headers' behavior.
+ A future release of Autoconf may stop defining this macro. */
+#ifndef _MINIX
+/* # undef _MINIX */
+#endif
+/* Enable general extensions on NetBSD.
+ Enable NetBSD compatibility extensions on Minix. */
+#ifndef _NETBSD_SOURCE
+# define _NETBSD_SOURCE 1
+#endif
+/* Enable OpenBSD compatibility extensions on NetBSD.
+ Oddly enough, this does nothing on OpenBSD. */
+#ifndef _OPENBSD_SOURCE
+# define _OPENBSD_SOURCE 1
+#endif
+/* Define to 1 if needed for POSIX-compatible behavior. */
+#ifndef _POSIX_SOURCE
+/* # undef _POSIX_SOURCE */
+#endif
+/* Define to 2 if needed for POSIX-compatible behavior. */
+#ifndef _POSIX_1_SOURCE
+/* # undef _POSIX_1_SOURCE */
+#endif
+/* Enable POSIX-compatible threading on Solaris. */
+#ifndef _POSIX_PTHREAD_SEMANTICS
+# define _POSIX_PTHREAD_SEMANTICS 1
+#endif
+/* Enable extensions specified by ISO/IEC TS 18661-5:2014. */
+#ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__
+# define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1
+#endif
+/* Enable extensions specified by ISO/IEC TS 18661-1:2014. */
+#ifndef __STDC_WANT_IEC_60559_BFP_EXT__
+# define __STDC_WANT_IEC_60559_BFP_EXT__ 1
+#endif
+/* Enable extensions specified by ISO/IEC TS 18661-2:2015. */
+#ifndef __STDC_WANT_IEC_60559_DFP_EXT__
+# define __STDC_WANT_IEC_60559_DFP_EXT__ 1
+#endif
+/* Enable extensions specified by ISO/IEC TS 18661-4:2015. */
+#ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__
+# define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1
+#endif
+/* Enable extensions specified by ISO/IEC TS 18661-3:2015. */
+#ifndef __STDC_WANT_IEC_60559_TYPES_EXT__
+# define __STDC_WANT_IEC_60559_TYPES_EXT__ 1
+#endif
+/* Enable extensions specified by ISO/IEC TR 24731-2:2010. */
+#ifndef __STDC_WANT_LIB_EXT2__
+# define __STDC_WANT_LIB_EXT2__ 1
+#endif
+/* Enable extensions specified by ISO/IEC 24747:2009. */
+#ifndef __STDC_WANT_MATH_SPEC_FUNCS__
+# define __STDC_WANT_MATH_SPEC_FUNCS__ 1
+#endif
+/* Enable extensions on HP NonStop. */
+#ifndef _TANDEM_SOURCE
+# define _TANDEM_SOURCE 1
+#endif
+/* Enable X/Open extensions. Define to 500 only if necessary
+ to make mbstate_t available. */
+#ifndef _XOPEN_SOURCE
+/* # undef _XOPEN_SOURCE */
+#endif
+
+
+/* Version number of package */
+#define VERSION "1.26.0"
+
+/* 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 `unsigned int' if does not define. */
+/* #undef size_t */
diff --git a/deps/corepack/CHANGELOG.md b/deps/corepack/CHANGELOG.md
index ad0bba51c6b83f..e4f0b185a73616 100644
--- a/deps/corepack/CHANGELOG.md
+++ b/deps/corepack/CHANGELOG.md
@@ -1,5 +1,18 @@
# Changelog
+## [0.33.0](https://github.com/nodejs/corepack/compare/v0.32.0...v0.33.0) (2025-06-02)
+
+
+### Features
+
+* Adds guard to avoid stepping on Yarn's feet ([#714](https://github.com/nodejs/corepack/issues/714)) ([5fc3691](https://github.com/nodejs/corepack/commit/5fc3691354eb5bdeca17a9495b234584353f0151))
+* update package manager versions ([#671](https://github.com/nodejs/corepack/issues/671)) ([b45b3a3](https://github.com/nodejs/corepack/commit/b45b3a3244bacfbaf65188ae8c04209a1e98307d))
+
+
+### Bug Fixes
+
+* debug text typo ([#698](https://github.com/nodejs/corepack/issues/698)) ([0b94797](https://github.com/nodejs/corepack/commit/0b94797f96e30e46e466873fe7d437d0471cd92c))
+
## [0.32.0](https://github.com/nodejs/corepack/compare/v0.31.0...v0.32.0) (2025-02-28)
diff --git a/deps/corepack/README.md b/deps/corepack/README.md
index 67d396d5ca9642..079746ee796366 100644
--- a/deps/corepack/README.md
+++ b/deps/corepack/README.md
@@ -286,8 +286,8 @@ same major line. Should you need to upgrade to a new major, use an explicit
package manager, and to not update the Last Known Good version when it
downloads a new version of the same major line.
-- `COREPACK_ENABLE_AUTO_PIN` can be set to `0` to prevent Corepack from
- updating the `packageManager` field when it detects that the local package
+- `COREPACK_ENABLE_AUTO_PIN` can be set to `1` to instruct Corepack to
+ update the `packageManager` field when it detects that the local package
doesn't list it. In general we recommend to always list a `packageManager`
field (which you can easily set through `corepack use [name]@[version]`), as
it ensures that your project installs are always deterministic.
diff --git a/deps/corepack/dist/lib/corepack.cjs b/deps/corepack/dist/lib/corepack.cjs
index 7a098cbe250aab..c6854077d0fa6b 100644
--- a/deps/corepack/dist/lib/corepack.cjs
+++ b/deps/corepack/dist/lib/corepack.cjs
@@ -21683,7 +21683,7 @@ function String2(descriptor, ...args) {
}
// package.json
-var version = "0.32.0";
+var version = "0.33.0";
// sources/Engine.ts
var import_fs9 = __toESM(require("fs"));
@@ -21697,7 +21697,7 @@ var import_valid4 = __toESM(require_valid2());
var config_default = {
definitions: {
npm: {
- default: "11.1.0+sha1.dba08f7d0f5301ebedaf968b4f74b2282f97a750",
+ default: "11.4.1+sha1.80350af543069991de20657ebcd07d9624cfad06",
fetchLatestFrom: {
type: "npm",
package: "npm"
@@ -21734,7 +21734,7 @@ var config_default = {
}
},
pnpm: {
- default: "10.5.2+sha1.ca68c0441df195b7e2992f1d1cb12fb731f82d78",
+ default: "10.11.0+sha1.4048eeefd564ff1ab248fac3e2854d38245fe2f1",
fetchLatestFrom: {
type: "npm",
package: "pnpm"
@@ -21798,7 +21798,7 @@ var config_default = {
package: "yarn"
},
transparent: {
- default: "4.6.0+sha224.acd0786f07ffc6c933940eb65fc1d627131ddf5455bddcc295dc90fd",
+ default: "4.9.1+sha224.4285002185abb91fe2b781f27fd1e078086c37a7b095f6ea4ee25971",
commands: [
[
"yarn",
@@ -22105,6 +22105,10 @@ async function getProxyAgent(input) {
}
// sources/corepackUtils.ts
+var YARN_SWITCH_REGEX = /[/\\]switch[/\\]bin[/\\]/;
+function isYarnSwitchPath(p) {
+ return YARN_SWITCH_REGEX.test(p);
+}
function getRegistryFromPackageManagerSpec(spec) {
return process.env.COREPACK_NPM_REGISTRY ? spec.npmRegistry ?? spec.registry : spec.registry;
}
@@ -22896,7 +22900,7 @@ var Engine = class {
case `NoSpec`: {
if (typeof locator.reference === `function`)
fallbackDescriptor.range = await locator.reference();
- if (import_process3.default.env.COREPACK_ENABLE_AUTO_PIN !== `0`) {
+ if (import_process3.default.env.COREPACK_ENABLE_AUTO_PIN === `1`) {
const resolved = await this.resolveDescriptor(fallbackDescriptor, { allowTags: true });
if (resolved === null)
throw new UsageError(`Failed to successfully resolve '${fallbackDescriptor.range}' to a valid ${fallbackDescriptor.name} release`);
@@ -22906,7 +22910,7 @@ var Engine = class {
console.error();
await setLocalPackageManager(import_path9.default.dirname(result.target), installSpec);
}
- log(`Falling back to ${fallbackDescriptor.name}@${fallbackDescriptor.range} in the absence of "packageManage" field in ${result.target}`);
+ log(`Falling back to ${fallbackDescriptor.name}@${fallbackDescriptor.range} in the absence of "packageManager" field in ${result.target}`);
return fallbackDescriptor;
}
case `Found`: {
@@ -23070,6 +23074,10 @@ var DisableCommand = class extends Command {
async removePosixLink(installDirectory, binName) {
const file = import_path10.default.join(installDirectory, binName);
try {
+ if (binName.includes(`yarn`) && isYarnSwitchPath(await import_fs11.default.promises.realpath(file))) {
+ console.warn(`${binName} is already installed in ${file} and points to a Yarn Switch install - skipping`);
+ return;
+ }
await import_fs11.default.promises.unlink(file);
} catch (err) {
if (err.code !== `ENOENT`) {
@@ -23147,6 +23155,10 @@ var EnableCommand = class extends Command {
const symlink = import_path11.default.relative(installDirectory, import_path11.default.join(distFolder, `${binName}.js`));
if (import_fs12.default.existsSync(file)) {
const currentSymlink = await import_fs12.default.promises.readlink(file);
+ if (binName.includes(`yarn`) && isYarnSwitchPath(await import_fs12.default.promises.realpath(file))) {
+ console.warn(`${binName} is already installed in ${file} and points to a Yarn Switch install - skipping`);
+ return;
+ }
if (currentSymlink !== symlink) {
await import_fs12.default.promises.unlink(file);
} else {
diff --git a/deps/corepack/package.json b/deps/corepack/package.json
index 75f5725328a605..7bf3d9e6604a50 100644
--- a/deps/corepack/package.json
+++ b/deps/corepack/package.json
@@ -1,6 +1,6 @@
{
"name": "corepack",
- "version": "0.32.0",
+ "version": "0.33.0",
"homepage": "https://github.com/nodejs/corepack#readme",
"bugs": {
"url": "https://github.com/nodejs/corepack/issues"
@@ -16,21 +16,21 @@
"./package.json": "./package.json"
},
"license": "MIT",
- "packageManager": "yarn@4.6.0+sha512.5383cc12567a95f1d668fbe762dfe0075c595b4bfff433be478dbbe24e05251a8e8c3eb992a986667c1d53b6c3a9c85b8398c35a960587fbd9fa3a0915406728",
+ "packageManager": "yarn@4.9.0+sha224.dce6c5df199861784bd9b0eecb2a228df97e3f18a02b1bb75ff98383",
"devDependencies": {
"@types/debug": "^4.1.5",
"@types/node": "^20.4.6",
"@types/proxy-from-env": "^1",
"@types/semver": "^7.1.0",
"@types/which": "^3.0.0",
- "@yarnpkg/eslint-config": "^2.0.0",
+ "@yarnpkg/eslint-config": "^3.0.0",
"@yarnpkg/fslib": "^3.0.0-rc.48",
"@zkochan/cmd-shim": "^6.0.0",
"better-sqlite3": "^11.7.2",
"clipanion": "patch:clipanion@npm%3A3.2.1#~/.yarn/patches/clipanion-npm-3.2.1-fc9187f56c.patch",
"debug": "^4.1.1",
"esbuild": "^0.25.0",
- "eslint": "^8.57.0",
+ "eslint": "^9.22.0",
"proxy-from-env": "^1.1.0",
"semver": "^7.6.3",
"supports-color": "^10.0.0",
diff --git a/deps/googletest/include/gtest/gtest-printers.h b/deps/googletest/include/gtest/gtest-printers.h
index 198a7693493a33..048c32db2e7c2e 100644
--- a/deps/googletest/include/gtest/gtest-printers.h
+++ b/deps/googletest/include/gtest/gtest-printers.h
@@ -104,15 +104,19 @@
#ifndef GOOGLETEST_INCLUDE_GTEST_GTEST_PRINTERS_H_
#define GOOGLETEST_INCLUDE_GTEST_GTEST_PRINTERS_H_
+#include
#include
#include
+#include
#include // NOLINT
#include
#include
+#include
#include
#include
#include
#include
+#include
#include
#ifdef GTEST_HAS_ABSL
@@ -245,8 +249,8 @@ struct StreamPrinter {
// ADL (possibly involving implicit conversions).
// (Use SFINAE via return type, because it seems GCC < 12 doesn't handle name
// lookup properly when we do it in the template parameter list.)
- static auto PrintValue(const T& value,
- ::std::ostream* os) -> decltype((void)(*os << value)) {
+ static auto PrintValue(const T& value, ::std::ostream* os)
+ -> decltype((void)(*os << value)) {
// Call streaming operator found by ADL, possibly with implicit conversions
// of the arguments.
*os << value;
@@ -521,11 +525,15 @@ GTEST_API_ void PrintTo(wchar_t wc, ::std::ostream* os);
GTEST_API_ void PrintTo(char32_t c, ::std::ostream* os);
inline void PrintTo(char16_t c, ::std::ostream* os) {
- PrintTo(ImplicitCast_(c), os);
+ // TODO(b/418738869): Incorrect for values not representing valid codepoints.
+ // Also see https://github.com/google/googletest/issues/4762.
+ PrintTo(static_cast(c), os);
}
#ifdef __cpp_lib_char8_t
inline void PrintTo(char8_t c, ::std::ostream* os) {
- PrintTo(ImplicitCast_(c), os);
+ // TODO(b/418738869): Incorrect for values not representing valid codepoints.
+ // Also see https://github.com/google/googletest/issues/4762.
+ PrintTo(static_cast(c), os);
}
#endif
@@ -695,44 +703,63 @@ void PrintRawArrayTo(const T a[], size_t count, ::std::ostream* os) {
}
}
-// Overloads for ::std::string.
-GTEST_API_ void PrintStringTo(const ::std::string& s, ::std::ostream* os);
+// Overloads for ::std::string and ::std::string_view
+GTEST_API_ void PrintStringTo(::std::string_view s, ::std::ostream* os);
inline void PrintTo(const ::std::string& s, ::std::ostream* os) {
PrintStringTo(s, os);
}
+inline void PrintTo(::std::string_view s, ::std::ostream* os) {
+ PrintStringTo(s, os);
+}
-// Overloads for ::std::u8string
+// Overloads for ::std::u8string and ::std::u8string_view
#ifdef __cpp_lib_char8_t
-GTEST_API_ void PrintU8StringTo(const ::std::u8string& s, ::std::ostream* os);
+GTEST_API_ void PrintU8StringTo(::std::u8string_view s, ::std::ostream* os);
inline void PrintTo(const ::std::u8string& s, ::std::ostream* os) {
PrintU8StringTo(s, os);
}
+inline void PrintTo(::std::u8string_view s, ::std::ostream* os) {
+ PrintU8StringTo(s, os);
+}
#endif
-// Overloads for ::std::u16string
-GTEST_API_ void PrintU16StringTo(const ::std::u16string& s, ::std::ostream* os);
+// Overloads for ::std::u16string and ::std::u16string_view
+GTEST_API_ void PrintU16StringTo(::std::u16string_view s, ::std::ostream* os);
inline void PrintTo(const ::std::u16string& s, ::std::ostream* os) {
PrintU16StringTo(s, os);
}
+inline void PrintTo(::std::u16string_view s, ::std::ostream* os) {
+ PrintU16StringTo(s, os);
+}
-// Overloads for ::std::u32string
-GTEST_API_ void PrintU32StringTo(const ::std::u32string& s, ::std::ostream* os);
+// Overloads for ::std::u32string and ::std::u32string_view
+GTEST_API_ void PrintU32StringTo(::std::u32string_view s, ::std::ostream* os);
inline void PrintTo(const ::std::u32string& s, ::std::ostream* os) {
PrintU32StringTo(s, os);
}
+inline void PrintTo(::std::u32string_view s, ::std::ostream* os) {
+ PrintU32StringTo(s, os);
+}
-// Overloads for ::std::wstring.
+// Overloads for ::std::wstring and ::std::wstring_view
#if GTEST_HAS_STD_WSTRING
-GTEST_API_ void PrintWideStringTo(const ::std::wstring& s, ::std::ostream* os);
+GTEST_API_ void PrintWideStringTo(::std::wstring_view s, ::std::ostream* os);
inline void PrintTo(const ::std::wstring& s, ::std::ostream* os) {
PrintWideStringTo(s, os);
}
+inline void PrintTo(::std::wstring_view s, ::std::ostream* os) {
+ PrintWideStringTo(s, os);
+}
#endif // GTEST_HAS_STD_WSTRING
#if GTEST_INTERNAL_HAS_STRING_VIEW
-// Overload for internal::StringView.
+// Overload for internal::StringView. Needed for build configurations where
+// internal::StringView is an alias for absl::string_view, but absl::string_view
+// is a distinct type from std::string_view.
+template , int> = 0>
inline void PrintTo(internal::StringView sp, ::std::ostream* os) {
- PrintTo(::std::string(sp), os);
+ PrintStringTo(sp, os);
}
#endif // GTEST_INTERNAL_HAS_STRING_VIEW
@@ -890,14 +917,11 @@ class UniversalPrinter {
template
class UniversalPrinter : public UniversalPrinter {};
-#if GTEST_INTERNAL_HAS_ANY
-
-// Printer for std::any / absl::any
-
+// Printer for std::any
template <>
-class UniversalPrinter {
+class UniversalPrinter {
public:
- static void Print(const Any& value, ::std::ostream* os) {
+ static void Print(const std::any& value, ::std::ostream* os) {
if (value.has_value()) {
*os << "value of type " << GetTypeName(value);
} else {
@@ -906,7 +930,7 @@ class UniversalPrinter {
}
private:
- static std::string GetTypeName(const Any& value) {
+ static std::string GetTypeName(const std::any& value) {
#if GTEST_HAS_RTTI
return internal::GetTypeName(value.type());
#else
@@ -916,16 +940,11 @@ class UniversalPrinter {
}
};
-#endif // GTEST_INTERNAL_HAS_ANY
-
-#if GTEST_INTERNAL_HAS_OPTIONAL
-
-// Printer for std::optional / absl::optional
-
+// Printer for std::optional
template
-class UniversalPrinter> {
+class UniversalPrinter> {
public:
- static void Print(const Optional& value, ::std::ostream* os) {
+ static void Print(const std::optional& value, ::std::ostream* os) {
*os << '(';
if (!value) {
*os << "nullopt";
@@ -937,29 +956,18 @@ class UniversalPrinter> {
};
template <>
-class UniversalPrinter {
+class UniversalPrinter {
public:
- static void Print(decltype(Nullopt()), ::std::ostream* os) {
- *os << "(nullopt)";
- }
+ static void Print(std::nullopt_t, ::std::ostream* os) { *os << "(nullopt)"; }
};
-#endif // GTEST_INTERNAL_HAS_OPTIONAL
-
-#if GTEST_INTERNAL_HAS_VARIANT
-
-// Printer for std::variant / absl::variant
-
+// Printer for std::variant
template
-class UniversalPrinter> {
+class UniversalPrinter> {
public:
- static void Print(const Variant& value, ::std::ostream* os) {
+ static void Print(const std::variant& value, ::std::ostream* os) {
*os << '(';
-#ifdef GTEST_HAS_ABSL
- absl::visit(Visitor{os, value.index()}, value);
-#else
std::visit(Visitor{os, value.index()}, value);
-#endif // GTEST_HAS_ABSL
*os << ')';
}
@@ -976,8 +984,6 @@ class UniversalPrinter> {
};
};
-#endif // GTEST_INTERNAL_HAS_VARIANT
-
// UniversalPrintArray(begin, len, os) prints an array of 'len'
// elements, starting at address 'begin'.
template
diff --git a/deps/googletest/include/gtest/gtest.h b/deps/googletest/include/gtest/gtest.h
index 7be0caaf515cf8..cbe680c1adb266 100644
--- a/deps/googletest/include/gtest/gtest.h
+++ b/deps/googletest/include/gtest/gtest.h
@@ -1693,7 +1693,7 @@ class WithParamInterface {
// The current parameter value. Is also available in the test fixture's
// constructor.
- static const ParamType& GetParam() {
+ [[nodiscard]] static const ParamType& GetParam() {
GTEST_CHECK_(parameter_ != nullptr)
<< "GetParam() can only be called inside a value-parameterized test "
<< "-- did you intend to write TEST_P instead of TEST_F?";
diff --git a/deps/googletest/include/gtest/internal/gtest-internal.h b/deps/googletest/include/gtest/internal/gtest-internal.h
index dcab397e92320a..808d89be91439a 100644
--- a/deps/googletest/include/gtest/internal/gtest-internal.h
+++ b/deps/googletest/include/gtest/internal/gtest-internal.h
@@ -290,17 +290,17 @@ class FloatingPoint {
// around may change its bits, although the new value is guaranteed
// to be also a NAN. Therefore, don't expect this constructor to
// preserve the bits in x when x is a NAN.
- explicit FloatingPoint(const RawType& x) { u_.value_ = x; }
+ explicit FloatingPoint(RawType x) { memcpy(&bits_, &x, sizeof(x)); }
// Static methods
// Reinterprets a bit pattern as a floating-point number.
//
// This function is needed to test the AlmostEquals() method.
- static RawType ReinterpretBits(const Bits bits) {
- FloatingPoint fp(0);
- fp.u_.bits_ = bits;
- return fp.u_.value_;
+ static RawType ReinterpretBits(Bits bits) {
+ RawType fp;
+ memcpy(&fp, &bits, sizeof(fp));
+ return fp;
}
// Returns the floating-point number that represent positive infinity.
@@ -309,16 +309,16 @@ class FloatingPoint {
// Non-static methods
// Returns the bits that represents this number.
- const Bits& bits() const { return u_.bits_; }
+ const Bits& bits() const { return bits_; }
// Returns the exponent bits of this number.
- Bits exponent_bits() const { return kExponentBitMask & u_.bits_; }
+ Bits exponent_bits() const { return kExponentBitMask & bits_; }
// Returns the fraction bits of this number.
- Bits fraction_bits() const { return kFractionBitMask & u_.bits_; }
+ Bits fraction_bits() const { return kFractionBitMask & bits_; }
// Returns the sign bit of this number.
- Bits sign_bit() const { return kSignBitMask & u_.bits_; }
+ Bits sign_bit() const { return kSignBitMask & bits_; }
// Returns true if and only if this is NAN (not a number).
bool is_nan() const {
@@ -332,23 +332,16 @@ class FloatingPoint {
//
// - returns false if either number is (or both are) NAN.
// - treats really large numbers as almost equal to infinity.
- // - thinks +0.0 and -0.0 are 0 DLP's apart.
+ // - thinks +0.0 and -0.0 are 0 ULP's apart.
bool AlmostEquals(const FloatingPoint& rhs) const {
// The IEEE standard says that any comparison operation involving
// a NAN must return false.
if (is_nan() || rhs.is_nan()) return false;
- return DistanceBetweenSignAndMagnitudeNumbers(u_.bits_, rhs.u_.bits_) <=
- kMaxUlps;
+ return DistanceBetweenSignAndMagnitudeNumbers(bits_, rhs.bits_) <= kMaxUlps;
}
private:
- // The data type used to store the actual floating-point number.
- union FloatingPointUnion {
- RawType value_; // The raw floating-point number.
- Bits bits_; // The bits that represent the number.
- };
-
// Converts an integer from the sign-and-magnitude representation to
// the biased representation. More precisely, let N be 2 to the
// power of (kBitCount - 1), an integer x is represented by the
@@ -364,7 +357,7 @@ class FloatingPoint {
//
// Read https://en.wikipedia.org/wiki/Signed_number_representations
// for more details on signed number representations.
- static Bits SignAndMagnitudeToBiased(const Bits& sam) {
+ static Bits SignAndMagnitudeToBiased(Bits sam) {
if (kSignBitMask & sam) {
// sam represents a negative number.
return ~sam + 1;
@@ -376,14 +369,13 @@ class FloatingPoint {
// Given two numbers in the sign-and-magnitude representation,
// returns the distance between them as an unsigned number.
- static Bits DistanceBetweenSignAndMagnitudeNumbers(const Bits& sam1,
- const Bits& sam2) {
+ static Bits DistanceBetweenSignAndMagnitudeNumbers(Bits sam1, Bits sam2) {
const Bits biased1 = SignAndMagnitudeToBiased(sam1);
const Bits biased2 = SignAndMagnitudeToBiased(sam2);
return (biased1 >= biased2) ? (biased1 - biased2) : (biased2 - biased1);
}
- FloatingPointUnion u_;
+ Bits bits_; // The bits that represent the number.
};
// Typedefs the instances of the FloatingPoint template class that we
diff --git a/deps/googletest/include/gtest/internal/gtest-port.h b/deps/googletest/include/gtest/internal/gtest-port.h
index 4cfc16c03e9d38..06a5a8e6f31935 100644
--- a/deps/googletest/include/gtest/internal/gtest-port.h
+++ b/deps/googletest/include/gtest/internal/gtest-port.h
@@ -198,21 +198,8 @@
// suppressed (constant conditional).
// GTEST_INTENTIONAL_CONST_COND_POP_ - finish code section where MSVC C4127
// is suppressed.
-// GTEST_INTERNAL_HAS_ANY - for enabling UniversalPrinter or
-// UniversalPrinter specializations.
-// Always defined to 0 or 1.
-// GTEST_INTERNAL_HAS_OPTIONAL - for enabling UniversalPrinter
-// or
-// UniversalPrinter
-// specializations. Always defined to 0 or 1.
// GTEST_INTERNAL_HAS_STD_SPAN - for enabling UniversalPrinter
// specializations. Always defined to 0 or 1
-// GTEST_INTERNAL_HAS_STRING_VIEW - for enabling Matcher or
-// Matcher
-// specializations. Always defined to 0 or 1.
-// GTEST_INTERNAL_HAS_VARIANT - for enabling UniversalPrinter or
-// UniversalPrinter
-// specializations. Always defined to 0 or 1.
// GTEST_USE_OWN_FLAGFILE_FLAG_ - Always defined to 0 or 1.
// GTEST_HAS_CXXABI_H_ - Always defined to 0 or 1.
// GTEST_CAN_STREAM_RESULTS_ - Always defined to 0 or 1.
@@ -282,10 +269,14 @@
// Detect C++ feature test macros as gracefully as possible.
// MSVC >= 19.15, Clang >= 3.4.1, and GCC >= 4.1.2 support feature test macros.
-#if GTEST_INTERNAL_CPLUSPLUS_LANG >= 202002L && \
- (!defined(__has_include) || GTEST_INTERNAL_HAS_INCLUDE())
-#include // C++20 and later
-#elif (!defined(__has_include) || GTEST_INTERNAL_HAS_INCLUDE())
+//
+// GCC15 warns that is deprecated in C++17 and suggests using
+// instead, even though is not available in C++17 mode prior
+// to GCC9.
+#if GTEST_INTERNAL_CPLUSPLUS_LANG >= 202002L || \
+ GTEST_INTERNAL_HAS_INCLUDE()
+#include // C++20 or support.
+#else
#include // Pre-C++20
#endif
@@ -2331,73 +2322,6 @@ const char* StringFromGTestEnv(const char* flag, const char* default_val);
} // namespace internal
} // namespace testing
-#ifdef GTEST_HAS_ABSL
-// Always use absl::any for UniversalPrinter<> specializations if googletest
-// is built with absl support.
-#define GTEST_INTERNAL_HAS_ANY 1
-#include "absl/types/any.h"
-namespace testing {
-namespace internal {
-using Any = ::absl::any;
-} // namespace internal
-} // namespace testing
-#else
-#if defined(__cpp_lib_any) || (GTEST_INTERNAL_HAS_INCLUDE() && \
- GTEST_INTERNAL_CPLUSPLUS_LANG >= 201703L && \
- (!defined(_MSC_VER) || GTEST_HAS_RTTI))
-// Otherwise for C++17 and higher use std::any for UniversalPrinter<>
-// specializations.
-#define GTEST_INTERNAL_HAS_ANY 1
-#include
-namespace testing {
-namespace internal {
-using Any = ::std::any;
-} // namespace internal
-} // namespace testing
-// The case where absl is configured NOT to alias std::any is not
-// supported.
-#endif // __cpp_lib_any
-#endif // GTEST_HAS_ABSL
-
-#ifndef GTEST_INTERNAL_HAS_ANY
-#define GTEST_INTERNAL_HAS_ANY 0
-#endif
-
-#ifdef GTEST_HAS_ABSL
-// Always use absl::optional for UniversalPrinter<> specializations if
-// googletest is built with absl support.
-#define GTEST_INTERNAL_HAS_OPTIONAL 1
-#include "absl/types/optional.h"
-namespace testing {
-namespace internal {
-template
-using Optional = ::absl::optional;
-inline ::absl::nullopt_t Nullopt() { return ::absl::nullopt; }
-} // namespace internal
-} // namespace testing
-#else
-#if defined(__cpp_lib_optional) || (GTEST_INTERNAL_HAS_INCLUDE() && \
- GTEST_INTERNAL_CPLUSPLUS_LANG >= 201703L)
-// Otherwise for C++17 and higher use std::optional for UniversalPrinter<>
-// specializations.
-#define GTEST_INTERNAL_HAS_OPTIONAL 1
-#include
-namespace testing {
-namespace internal {
-template
-using Optional = ::std::optional;
-inline ::std::nullopt_t Nullopt() { return ::std::nullopt; }
-} // namespace internal
-} // namespace testing
-// The case where absl is configured NOT to alias std::optional is not
-// supported.
-#endif // __cpp_lib_optional
-#endif // GTEST_HAS_ABSL
-
-#ifndef GTEST_INTERNAL_HAS_OPTIONAL
-#define GTEST_INTERNAL_HAS_OPTIONAL 0
-#endif
-
#if defined(__cpp_lib_span) || (GTEST_INTERNAL_HAS_INCLUDE() && \
GTEST_INTERNAL_CPLUSPLUS_LANG >= 202002L)
#define GTEST_INTERNAL_HAS_STD_SPAN 1
@@ -2439,38 +2363,6 @@ using StringView = ::std::string_view;
#define GTEST_INTERNAL_HAS_STRING_VIEW 0
#endif
-#ifdef GTEST_HAS_ABSL
-// Always use absl::variant for UniversalPrinter<> specializations if googletest
-// is built with absl support.
-#define GTEST_INTERNAL_HAS_VARIANT 1
-#include "absl/types/variant.h"
-namespace testing {
-namespace internal {
-template
-using Variant = ::absl::variant;
-} // namespace internal
-} // namespace testing
-#else
-#if defined(__cpp_lib_variant) || (GTEST_INTERNAL_HAS_INCLUDE() && \
- GTEST_INTERNAL_CPLUSPLUS_LANG >= 201703L)
-// Otherwise for C++17 and higher use std::variant for UniversalPrinter<>
-// specializations.
-#define GTEST_INTERNAL_HAS_VARIANT 1
-#include
-namespace testing {
-namespace internal {
-template
-using Variant = ::std::variant;
-} // namespace internal
-} // namespace testing
-// The case where absl is configured NOT to alias std::variant is not supported.
-#endif // __cpp_lib_variant
-#endif // GTEST_HAS_ABSL
-
-#ifndef GTEST_INTERNAL_HAS_VARIANT
-#define GTEST_INTERNAL_HAS_VARIANT 0
-#endif
-
#if (defined(__cpp_lib_three_way_comparison) || \
(GTEST_INTERNAL_HAS_INCLUDE() && \
GTEST_INTERNAL_CPLUSPLUS_LANG >= 201907L))
diff --git a/deps/googletest/src/gtest-printers.cc b/deps/googletest/src/gtest-printers.cc
index e3acecba8e4dec..f65573077861b4 100644
--- a/deps/googletest/src/gtest-printers.cc
+++ b/deps/googletest/src/gtest-printers.cc
@@ -50,7 +50,7 @@
#include
#include
#include // NOLINT
-#include
+#include
#include
#include "gtest/internal/gtest-port.h"
@@ -333,14 +333,14 @@ void PrintTo(__int128_t v, ::std::ostream* os) {
// Prints the given array of characters to the ostream. CharType must be either
// char, char8_t, char16_t, char32_t, or wchar_t.
-// The array starts at begin, the length is len, it may include '\0' characters
-// and may not be NUL-terminated.
+// The array starts at begin (which may be nullptr) and contains len characters.
+// The array may include '\0' characters and may not be NUL-terminated.
template
GTEST_ATTRIBUTE_NO_SANITIZE_MEMORY_ GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_
GTEST_ATTRIBUTE_NO_SANITIZE_HWADDRESS_
GTEST_ATTRIBUTE_NO_SANITIZE_THREAD_ static CharFormat
PrintCharsAsStringTo(const CharType* begin, size_t len, ostream* os) {
- const char* const quote_prefix = GetCharWidthPrefix(*begin);
+ const char* const quote_prefix = GetCharWidthPrefix(CharType());
*os << quote_prefix << "\"";
bool is_previous_hex = false;
CharFormat print_format = kAsIs;
@@ -516,13 +516,13 @@ bool IsValidUTF8(const char* str, size_t length) {
void ConditionalPrintAsText(const char* str, size_t length, ostream* os) {
if (!ContainsUnprintableControlCodes(str, length) &&
IsValidUTF8(str, length)) {
- *os << "\n As Text: \"" << str << "\"";
+ *os << "\n As Text: \"" << ::std::string_view(str, length) << "\"";
}
}
} // anonymous namespace
-void PrintStringTo(const ::std::string& s, ostream* os) {
+void PrintStringTo(::std::string_view s, ostream* os) {
if (PrintCharsAsStringTo(s.data(), s.size(), os) == kHexEscape) {
if (GTEST_FLAG_GET(print_utf8)) {
ConditionalPrintAsText(s.data(), s.size(), os);
@@ -531,21 +531,21 @@ void PrintStringTo(const ::std::string& s, ostream* os) {
}
#ifdef __cpp_lib_char8_t
-void PrintU8StringTo(const ::std::u8string& s, ostream* os) {
+void PrintU8StringTo(::std::u8string_view s, ostream* os) {
PrintCharsAsStringTo(s.data(), s.size(), os);
}
#endif
-void PrintU16StringTo(const ::std::u16string& s, ostream* os) {
+void PrintU16StringTo(::std::u16string_view s, ostream* os) {
PrintCharsAsStringTo(s.data(), s.size(), os);
}
-void PrintU32StringTo(const ::std::u32string& s, ostream* os) {
+void PrintU32StringTo(::std::u32string_view s, ostream* os) {
PrintCharsAsStringTo(s.data(), s.size(), os);
}
#if GTEST_HAS_STD_WSTRING
-void PrintWideStringTo(const ::std::wstring& s, ostream* os) {
+void PrintWideStringTo(::std::wstring_view s, ostream* os) {
PrintCharsAsStringTo(s.data(), s.size(), os);
}
#endif // GTEST_HAS_STD_WSTRING
diff --git a/deps/googletest/src/gtest.cc b/deps/googletest/src/gtest.cc
index 09af15179f1f9f..6be9300e09d1d4 100644
--- a/deps/googletest/src/gtest.cc
+++ b/deps/googletest/src/gtest.cc
@@ -1488,17 +1488,17 @@ class Hunk {
// Print a unified diff header for one hunk.
// The format is
// "@@ -, +, @@"
- // where the left/right parts are omitted if unnecessary.
+ // where the left/right lengths are omitted if unnecessary.
void PrintHeader(std::ostream* ss) const {
- *ss << "@@ ";
- if (removes_) {
- *ss << "-" << left_start_ << "," << (removes_ + common_);
+ size_t left_length = removes_ + common_;
+ size_t right_length = adds_ + common_;
+ *ss << "@@ " << "-" << left_start_;
+ if (left_length != 1) {
+ *ss << "," << left_length;
}
- if (removes_ && adds_) {
- *ss << " ";
- }
- if (adds_) {
- *ss << "+" << right_start_ << "," << (adds_ + common_);
+ *ss << " " << "+" << right_start_;
+ if (right_length != 1) {
+ *ss << "," << right_length;
}
*ss << " @@\n";
}
diff --git a/deps/nghttp2/lib/includes/nghttp2/nghttp2.h b/deps/nghttp2/lib/includes/nghttp2/nghttp2.h
index 2ef49b8d68f4ed..3d91af55109cc8 100644
--- a/deps/nghttp2/lib/includes/nghttp2/nghttp2.h
+++ b/deps/nghttp2/lib/includes/nghttp2/nghttp2.h
@@ -3133,14 +3133,12 @@ nghttp2_option_set_max_deflate_dynamic_table_size(nghttp2_option *option,
/**
* @function
*
- * This option prevents the library from retaining closed streams to
- * maintain the priority tree. If this option is set to nonzero,
- * applications can discard closed stream completely to save memory.
+ * .. warning::
*
- * If
- * :enum:`nghttp2_settings_id.NGHTTP2_SETTINGS_NO_RFC7540_PRIORITIES`
- * of value of 1 is submitted via `nghttp2_submit_settings()`, any
- * closed streams are not retained regardless of this option.
+ * Deprecated. Closed streams are not retained anymore.
+ *
+ * This function works as before, but it does not take any effect
+ * against :type:`nghttp2_session`.
*/
NGHTTP2_EXTERN void nghttp2_option_set_no_closed_streams(nghttp2_option *option,
int val);
@@ -3170,16 +3168,11 @@ NGHTTP2_EXTERN void nghttp2_option_set_max_settings(nghttp2_option *option,
/**
* @function
*
- * This option, if set to nonzero, allows server to fallback to
- * :rfc:`7540` priorities if SETTINGS_NO_RFC7540_PRIORITIES was not
- * received from client, and server submitted
- * :enum:`nghttp2_settings_id.NGHTTP2_SETTINGS_NO_RFC7540_PRIORITIES`
- * = 1 via `nghttp2_submit_settings()`. Most of the advanced
- * functionality for RFC 7540 priorities are still disabled. This
- * fallback only enables the minimal feature set of RFC 7540
- * priorities to deal with priority signaling from client.
+ * .. warning::
+ * Deprecated. :rfc:`7540` priorities have been removed.
*
- * Client session ignores this option.
+ * This function works as before, but it does not take any effect
+ * against :type:`nghttp2_session`.
*/
NGHTTP2_EXTERN void
nghttp2_option_set_server_fallback_rfc7540_priorities(nghttp2_option *option,
@@ -4179,39 +4172,9 @@ NGHTTP2_EXTERN int nghttp2_session_consume_stream(nghttp2_session *session,
*
* Deprecated. :rfc:`7540` priorities are deprecated by
* :rfc:`9113`. Consider migrating to :rfc:`9218` extensible
- * prioritization scheme. In the future release after the end of
- * 2024, this function will always return 0 without doing anything.
- *
- * Changes priority of existing stream denoted by |stream_id|. The
- * new priority specification is |pri_spec|.
- *
- * The priority is changed silently and instantly, and no PRIORITY
- * frame will be sent to notify the peer of this change. This
- * function may be useful for server to change the priority of pushed
- * stream.
- *
- * If |session| is initialized as server, and ``pri_spec->stream_id``
- * points to the idle stream, the idle stream is created if it does
- * not exist. The created idle stream will depend on root stream
- * (stream 0) with weight 16.
- *
- * Otherwise, if stream denoted by ``pri_spec->stream_id`` is not
- * found, we use default priority instead of given |pri_spec|. That
- * is make stream depend on root stream with weight 16.
- *
- * If
- * :enum:`nghttp2_settings_id.NGHTTP2_SETTINGS_NO_RFC7540_PRIORITIES`
- * of value of 1 is submitted via `nghttp2_submit_settings()`, this
- * function does nothing and returns 0.
- *
- * This function returns 0 if it succeeds, or one of the following
- * negative error codes:
+ * prioritization scheme.
*
- * :enum:`nghttp2_error.NGHTTP2_ERR_NOMEM`
- * Out of memory.
- * :enum:`nghttp2_error.NGHTTP2_ERR_INVALID_ARGUMENT`
- * Attempted to depend on itself; or no stream exist for the given
- * |stream_id|; or |stream_id| is 0
+ * This function is noop. It always returns 0.
*/
NGHTTP2_EXTERN int
nghttp2_session_change_stream_priority(nghttp2_session *session,
@@ -4225,51 +4188,9 @@ nghttp2_session_change_stream_priority(nghttp2_session *session,
*
* Deprecated. :rfc:`7540` priorities are deprecated by
* :rfc:`9113`. Consider migrating to :rfc:`9218` extensible
- * prioritization scheme. In the future release after the end of
- * 2024, this function will always return 0 without doing anything.
- *
- * Creates idle stream with the given |stream_id|, and priority
- * |pri_spec|.
- *
- * The stream creation is done without sending PRIORITY frame, which
- * means that peer does not know about the existence of this idle
- * stream in the local endpoint.
- *
- * RFC 7540 does not disallow the use of creation of idle stream with
- * odd or even stream ID regardless of client or server. So this
- * function can create odd or even stream ID regardless of client or
- * server. But probably it is a bit safer to use the stream ID the
- * local endpoint can initiate (in other words, use odd stream ID for
- * client, and even stream ID for server), to avoid potential
- * collision from peer's instruction. Also we can use
- * `nghttp2_session_set_next_stream_id()` to avoid to open created
- * idle streams accidentally if we follow this recommendation.
- *
- * If |session| is initialized as server, and ``pri_spec->stream_id``
- * points to the idle stream, the idle stream is created if it does
- * not exist. The created idle stream will depend on root stream
- * (stream 0) with weight 16.
- *
- * Otherwise, if stream denoted by ``pri_spec->stream_id`` is not
- * found, we use default priority instead of given |pri_spec|. That
- * is make stream depend on root stream with weight 16.
- *
- * If
- * :enum:`nghttp2_settings_id.NGHTTP2_SETTINGS_NO_RFC7540_PRIORITIES`
- * of value of 1 is submitted via `nghttp2_submit_settings()`, this
- * function does nothing and returns 0.
- *
- * This function returns 0 if it succeeds, or one of the following
- * negative error codes:
+ * prioritization scheme.
*
- * :enum:`nghttp2_error.NGHTTP2_ERR_NOMEM`
- * Out of memory.
- * :enum:`nghttp2_error.NGHTTP2_ERR_INVALID_ARGUMENT`
- * Attempted to depend on itself; or stream denoted by |stream_id|
- * already exists; or |stream_id| cannot be used to create idle
- * stream (in other words, local endpoint has already opened
- * stream ID greater than or equal to the given stream ID; or
- * |stream_id| is 0
+ * This function is noop. It always returns 0.
*/
NGHTTP2_EXTERN int
nghttp2_session_create_idle_stream(nghttp2_session *session, int32_t stream_id,
@@ -4505,23 +4426,7 @@ nghttp2_priority_spec_check_default(const nghttp2_priority_spec *pri_spec);
*
* Submits HEADERS frame and optionally one or more DATA frames.
*
- * The |pri_spec| is a deprecated priority specification of this
- * request. ``NULL`` means the default priority (see
- * `nghttp2_priority_spec_default_init()`). To specify the priority,
- * use `nghttp2_priority_spec_init()`. If |pri_spec| is not ``NULL``,
- * this function will copy its data members.
- *
- * The ``pri_spec->weight`` must be in [:macro:`NGHTTP2_MIN_WEIGHT`,
- * :macro:`NGHTTP2_MAX_WEIGHT`], inclusive. If ``pri_spec->weight``
- * is strictly less than :macro:`NGHTTP2_MIN_WEIGHT`, it becomes
- * :macro:`NGHTTP2_MIN_WEIGHT`. If it is strictly greater than
- * :macro:`NGHTTP2_MAX_WEIGHT`, it becomes
- * :macro:`NGHTTP2_MAX_WEIGHT`.
- *
- * If
- * :enum:`nghttp2_settings_id.NGHTTP2_SETTINGS_NO_RFC7540_PRIORITIES`
- * of value of 1 is received by a remote endpoint, |pri_spec| is
- * ignored, and treated as if ``NULL`` is specified.
+ * The |pri_spec| is ignored.
*
* The |nva| is an array of name/value pair :type:`nghttp2_nv` with
* |nvlen| elements. The application is responsible to include
@@ -4564,9 +4469,6 @@ nghttp2_priority_spec_check_default(const nghttp2_priority_spec *pri_spec);
* :enum:`nghttp2_error.NGHTTP2_ERR_STREAM_ID_NOT_AVAILABLE`
* No stream ID is available because maximum stream ID was
* reached.
- * :enum:`nghttp2_error.NGHTTP2_ERR_INVALID_ARGUMENT`
- * Trying to depend on itself (new stream ID equals
- * ``pri_spec->stream_id``).
* :enum:`nghttp2_error.NGHTTP2_ERR_PROTO`
* The |session| is server session.
*
@@ -4594,25 +4496,7 @@ NGHTTP2_EXTERN int32_t nghttp2_submit_request(
*
* Submits HEADERS frame and optionally one or more DATA frames.
*
- * The |pri_spec| is a deprecated priority specification of this
- * request. ``NULL`` means the default priority (see
- * `nghttp2_priority_spec_default_init()`). To specify the priority,
- * use `nghttp2_priority_spec_init()`. If |pri_spec| is not ``NULL``,
- * this function will copy its data members. In the future release
- * after the end of 2024, this function will ignore |pri_spec| and
- * behave as if ``NULL`` is given.
- *
- * The ``pri_spec->weight`` must be in [:macro:`NGHTTP2_MIN_WEIGHT`,
- * :macro:`NGHTTP2_MAX_WEIGHT`], inclusive. If ``pri_spec->weight``
- * is strictly less than :macro:`NGHTTP2_MIN_WEIGHT`, it becomes
- * :macro:`NGHTTP2_MIN_WEIGHT`. If it is strictly greater than
- * :macro:`NGHTTP2_MAX_WEIGHT`, it becomes
- * :macro:`NGHTTP2_MAX_WEIGHT`.
- *
- * If
- * :enum:`nghttp2_settings_id.NGHTTP2_SETTINGS_NO_RFC7540_PRIORITIES`
- * of value of 1 is received by a remote endpoint, |pri_spec| is
- * ignored, and treated as if ``NULL`` is specified.
+ * The |pri_spec| is ignored.
*
* The |nva| is an array of name/value pair :type:`nghttp2_nv` with
* |nvlen| elements. The application is responsible to include
@@ -4655,9 +4539,6 @@ NGHTTP2_EXTERN int32_t nghttp2_submit_request(
* :enum:`nghttp2_error.NGHTTP2_ERR_STREAM_ID_NOT_AVAILABLE`
* No stream ID is available because maximum stream ID was
* reached.
- * :enum:`nghttp2_error.NGHTTP2_ERR_INVALID_ARGUMENT`
- * Trying to depend on itself (new stream ID equals
- * ``pri_spec->stream_id``).
* :enum:`nghttp2_error.NGHTTP2_ERR_PROTO`
* The |session| is server session.
*
@@ -4899,24 +4780,7 @@ NGHTTP2_EXTERN int nghttp2_submit_trailer(nghttp2_session *session,
* assigned stream ID will be returned. Otherwise, specify stream ID
* in |stream_id|.
*
- * The |pri_spec| is a deprecated priority specification of this
- * request. ``NULL`` means the default priority (see
- * `nghttp2_priority_spec_default_init()`). To specify the priority,
- * use `nghttp2_priority_spec_init()`. If |pri_spec| is not ``NULL``,
- * this function will copy its data members. In the future release
- * after the end of 2024, this function will ignore |pri_spec| and
- * behave as if ``NULL`` is given.
- *
- * The ``pri_spec->weight`` must be in [:macro:`NGHTTP2_MIN_WEIGHT`,
- * :macro:`NGHTTP2_MAX_WEIGHT`], inclusive. If ``pri_spec->weight``
- * is strictly less than :macro:`NGHTTP2_MIN_WEIGHT`, it becomes
- * :macro:`NGHTTP2_MIN_WEIGHT`. If it is strictly greater than
- * :macro:`NGHTTP2_MAX_WEIGHT`, it becomes :macro:`NGHTTP2_MAX_WEIGHT`.
- *
- * If
- * :enum:`nghttp2_settings_id.NGHTTP2_SETTINGS_NO_RFC7540_PRIORITIES`
- * of value of 1 is received by a remote endpoint, |pri_spec| is
- * ignored, and treated as if ``NULL`` is specified.
+ * The |pri_spec| is ignored.
*
* The |nva| is an array of name/value pair :type:`nghttp2_nv` with
* |nvlen| elements. The application is responsible to include
@@ -4956,8 +4820,7 @@ NGHTTP2_EXTERN int nghttp2_submit_trailer(nghttp2_session *session,
* No stream ID is available because maximum stream ID was
* reached.
* :enum:`nghttp2_error.NGHTTP2_ERR_INVALID_ARGUMENT`
- * The |stream_id| is 0; or trying to depend on itself (stream ID
- * equals ``pri_spec->stream_id``).
+ * The |stream_id| is 0.
* :enum:`nghttp2_error.NGHTTP2_ERR_DATA_EXIST`
* DATA or HEADERS has been already submitted and not fully
* processed yet. This happens if stream denoted by |stream_id|
@@ -5083,40 +4946,9 @@ NGHTTP2_EXTERN int nghttp2_submit_data2(nghttp2_session *session, uint8_t flags,
*
* Deprecated. :rfc:`7540` priorities are deprecated by
* :rfc:`9113`. Consider migrating to :rfc:`9218` extensible
- * prioritization scheme. In the future release after the end of
- * 2024, this function will always return 0 without doing anything.
- *
- * Submits PRIORITY frame to change the priority of stream |stream_id|
- * to the priority specification |pri_spec|.
- *
- * The |flags| is currently ignored and should be
- * :enum:`nghttp2_flag.NGHTTP2_FLAG_NONE`.
- *
- * The |pri_spec| is a deprecated priority specification of this
- * request. ``NULL`` is not allowed for this function. To specify the
- * priority, use `nghttp2_priority_spec_init()`. This function will
- * copy its data members.
- *
- * The ``pri_spec->weight`` must be in [:macro:`NGHTTP2_MIN_WEIGHT`,
- * :macro:`NGHTTP2_MAX_WEIGHT`], inclusive. If ``pri_spec->weight``
- * is strictly less than :macro:`NGHTTP2_MIN_WEIGHT`, it becomes
- * :macro:`NGHTTP2_MIN_WEIGHT`. If it is strictly greater than
- * :macro:`NGHTTP2_MAX_WEIGHT`, it becomes
- * :macro:`NGHTTP2_MAX_WEIGHT`.
- *
- * If
- * :enum:`nghttp2_settings_id.NGHTTP2_SETTINGS_NO_RFC7540_PRIORITIES`
- * of value of 1 is received by a remote endpoint, this function does
- * nothing and returns 0.
- *
- * This function returns 0 if it succeeds, or one of the following
- * negative error codes:
+ * prioritization scheme.
*
- * :enum:`nghttp2_error.NGHTTP2_ERR_NOMEM`
- * Out of memory.
- * :enum:`nghttp2_error.NGHTTP2_ERR_INVALID_ARGUMENT`
- * The |stream_id| is 0; or the |pri_spec| is NULL; or trying to
- * depend on itself.
+ * This function is noop. It always returns 0.
*/
NGHTTP2_EXTERN int
nghttp2_submit_priority(nghttp2_session *session, uint8_t flags,
@@ -6885,11 +6717,9 @@ nghttp2_session_get_root_stream(nghttp2_session *session);
*
* Deprecated. :rfc:`7540` priorities are deprecated by
* :rfc:`9113`. Consider migrating to :rfc:`9218` extensible
- * prioritization scheme. In the future release after the end of
- * 2024, this function will always return NULL.
+ * prioritization scheme.
*
- * Returns the parent stream of |stream| in dependency tree. Returns
- * NULL if there is no such stream.
+ * This function always returns NULL.
*/
NGHTTP2_EXTERN nghttp2_stream *
nghttp2_stream_get_parent(nghttp2_stream *stream);
@@ -6903,11 +6733,9 @@ NGHTTP2_EXTERN int32_t nghttp2_stream_get_stream_id(nghttp2_stream *stream);
*
* Deprecated. :rfc:`7540` priorities are deprecated by
* :rfc:`9113`. Consider migrating to :rfc:`9218` extensible
- * prioritization scheme. In the future release after the end of
- * 2024, this function will always return NULL.
+ * prioritization scheme.
*
- * Returns the next sibling stream of |stream| in dependency tree.
- * Returns NULL if there is no such stream.
+ * This function always returns NULL.
*/
NGHTTP2_EXTERN nghttp2_stream *
nghttp2_stream_get_next_sibling(nghttp2_stream *stream);
@@ -6919,11 +6747,9 @@ nghttp2_stream_get_next_sibling(nghttp2_stream *stream);
*
* Deprecated. :rfc:`7540` priorities are deprecated by
* :rfc:`9113`. Consider migrating to :rfc:`9218` extensible
- * prioritization scheme. In the future release after the end of
- * 2024, this function will always return NULL.
+ * prioritization scheme.
*
- * Returns the previous sibling stream of |stream| in dependency tree.
- * Returns NULL if there is no such stream.
+ * This function always returns NULL.
*/
NGHTTP2_EXTERN nghttp2_stream *
nghttp2_stream_get_previous_sibling(nghttp2_stream *stream);
@@ -6935,11 +6761,9 @@ nghttp2_stream_get_previous_sibling(nghttp2_stream *stream);
*
* Deprecated. :rfc:`7540` priorities are deprecated by
* :rfc:`9113`. Consider migrating to :rfc:`9218` extensible
- * prioritization scheme. In the future release after the end of
- * 2024, this function will always return NULL.
+ * prioritization scheme.
*
- * Returns the first child stream of |stream| in dependency tree.
- * Returns NULL if there is no such stream.
+ * This function always returns NULL.
*/
NGHTTP2_EXTERN nghttp2_stream *
nghttp2_stream_get_first_child(nghttp2_stream *stream);
@@ -6951,11 +6775,9 @@ nghttp2_stream_get_first_child(nghttp2_stream *stream);
*
* Deprecated. :rfc:`7540` priorities are deprecated by
* :rfc:`9113`. Consider migrating to :rfc:`9218` extensible
- * prioritization scheme. In the future release after the end of
- * 2024, this function will always return
- * :macro:`NGHTTP2_DEFAULT_WEIGHT`.
+ * prioritization scheme.
*
- * Returns dependency weight to the parent stream of |stream|.
+ * This function always returns :macro:`NGHTTP2_DEFAULT_WEIGHT`.
*/
NGHTTP2_EXTERN int32_t nghttp2_stream_get_weight(nghttp2_stream *stream);
@@ -6966,10 +6788,9 @@ NGHTTP2_EXTERN int32_t nghttp2_stream_get_weight(nghttp2_stream *stream);
*
* Deprecated. :rfc:`7540` priorities are deprecated by
* :rfc:`9113`. Consider migrating to :rfc:`9218` extensible
- * prioritization scheme. In the future release after the end of
- * 2024, this function will always return 0.
+ * prioritization scheme.
*
- * Returns the sum of the weight for |stream|'s children.
+ * This function always returns 0.
*/
NGHTTP2_EXTERN int32_t
nghttp2_stream_get_sum_dependency_weight(nghttp2_stream *stream);
diff --git a/deps/nghttp2/lib/includes/nghttp2/nghttp2ver.h b/deps/nghttp2/lib/includes/nghttp2/nghttp2ver.h
index 827c99896846e3..1302eb57bc58d8 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.64.0"
+#define NGHTTP2_VERSION "1.65.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 0x014000
+#define NGHTTP2_VERSION_NUM 0x014100
#endif /* NGHTTP2VER_H */
diff --git a/deps/nghttp2/lib/nghttp2_hd.c b/deps/nghttp2/lib/nghttp2_hd.c
index 55fc2cc6bfea3d..ad85eed1e13e7b 100644
--- a/deps/nghttp2/lib/nghttp2_hd.c
+++ b/deps/nghttp2/lib/nghttp2_hd.c
@@ -594,8 +594,19 @@ static void hd_map_remove(nghttp2_hd_map *map, nghttp2_hd_entry *ent) {
static int hd_ringbuf_init(nghttp2_hd_ringbuf *ringbuf, size_t bufsize,
nghttp2_mem *mem) {
size_t size;
+ const size_t max_size = SIZE_MAX / sizeof(nghttp2_hd_entry *);
+
+ if (bufsize > max_size) {
+ return NGHTTP2_ERR_NOMEM;
+ }
+
for (size = 1; size < bufsize; size <<= 1)
;
+
+ if (size > max_size) {
+ return NGHTTP2_ERR_NOMEM;
+ }
+
ringbuf->buffer = nghttp2_mem_malloc(mem, sizeof(nghttp2_hd_entry *) * size);
if (ringbuf->buffer == NULL) {
return NGHTTP2_ERR_NOMEM;
diff --git a/deps/nghttp2/lib/nghttp2_http.c b/deps/nghttp2/lib/nghttp2_http.c
index f222fe5e3fbe3c..60a0b01e66c1c8 100644
--- a/deps/nghttp2/lib/nghttp2_http.c
+++ b/deps/nghttp2/lib/nghttp2_http.c
@@ -207,7 +207,6 @@ static int http_request_on_header(nghttp2_stream *stream, nghttp2_hd_nv *nv,
if (!trailer &&
/* Do not parse the header field in PUSH_PROMISE. */
(stream->stream_id & 1) &&
- (stream->flags & NGHTTP2_STREAM_FLAG_NO_RFC7540_PRIORITIES) &&
!(stream->http_flags & NGHTTP2_HTTP_FLAG_BAD_PRIORITY)) {
nghttp2_extpri_from_uint8(&extpri, stream->http_extpri);
if (nghttp2_http_parse_priority(&extpri, nv->value->base,
@@ -660,17 +659,17 @@ void nghttp2_http_record_request_method(nghttp2_stream *stream,
int nghttp2_http_parse_priority(nghttp2_extpri *dest, const uint8_t *value,
size_t valuelen) {
nghttp2_extpri pri = *dest;
- sf_parser sfp;
- sf_vec key;
- sf_value val;
+ sfparse_parser sfp;
+ sfparse_vec key;
+ sfparse_value val;
int rv;
- sf_parser_init(&sfp, value, valuelen);
+ sfparse_parser_init(&sfp, value, valuelen);
for (;;) {
- rv = sf_parser_dict(&sfp, &key, &val);
+ rv = sfparse_parser_dict(&sfp, &key, &val);
if (rv != 0) {
- if (rv == SF_ERR_EOF) {
+ if (rv == SFPARSE_ERR_EOF) {
break;
}
@@ -683,7 +682,7 @@ int nghttp2_http_parse_priority(nghttp2_extpri *dest, const uint8_t *value,
switch (key.base[0]) {
case 'i':
- if (val.type != SF_TYPE_BOOLEAN) {
+ if (val.type != SFPARSE_TYPE_BOOLEAN) {
return NGHTTP2_ERR_INVALID_ARGUMENT;
}
@@ -691,7 +690,7 @@ int nghttp2_http_parse_priority(nghttp2_extpri *dest, const uint8_t *value,
break;
case 'u':
- if (val.type != SF_TYPE_INTEGER ||
+ if (val.type != SFPARSE_TYPE_INTEGER ||
val.integer < NGHTTP2_EXTPRI_URGENCY_HIGH ||
NGHTTP2_EXTPRI_URGENCY_LOW < val.integer) {
return NGHTTP2_ERR_INVALID_ARGUMENT;
diff --git a/deps/nghttp2/lib/nghttp2_session.c b/deps/nghttp2/lib/nghttp2_session.c
index df33a89efdc1d3..f5bda333f83d15 100644
--- a/deps/nghttp2/lib/nghttp2_session.c
+++ b/deps/nghttp2/lib/nghttp2_session.c
@@ -41,6 +41,8 @@
#include "nghttp2_debug.h"
#include "nghttp2_submit.h"
+nghttp2_stream root;
+
/*
* Returns non-zero if the number of outgoing opened streams is larger
* than or equal to
@@ -146,11 +148,6 @@ static int session_detect_idle_stream(nghttp2_session *session,
return 0;
}
-static int session_no_rfc7540_pri_no_fallback(nghttp2_session *session) {
- return session->pending_no_rfc7540_priorities == 1 &&
- !session->fallback_rfc7540_priorities;
-}
-
static int check_ext_type_set(const uint8_t *ext_types, uint8_t type) {
return (ext_types[type / 8] & (1 << (type & 0x7))) > 0;
}
@@ -458,10 +455,6 @@ static int session_new(nghttp2_session **session_ptr,
/* next_stream_id is initialized in either
nghttp2_session_client_new2 or nghttp2_session_server_new2 */
- nghttp2_stream_init(&(*session_ptr)->root, 0, NGHTTP2_STREAM_FLAG_NONE,
- NGHTTP2_STREAM_IDLE, NGHTTP2_DEFAULT_WEIGHT, 0, 0, NULL,
- mem);
-
(*session_ptr)->remote_window_size = NGHTTP2_INITIAL_CONNECTION_WINDOW_SIZE;
(*session_ptr)->recv_window_size = 0;
(*session_ptr)->consumed_size = 0;
@@ -548,11 +541,6 @@ static int session_new(nghttp2_session **session_ptr,
max_deflate_dynamic_table_size = option->max_deflate_dynamic_table_size;
}
- if ((option->opt_set_mask & NGHTTP2_OPT_NO_CLOSED_STREAMS) &&
- option->no_closed_streams) {
- (*session_ptr)->opt_flags |= NGHTTP2_OPTMASK_NO_CLOSED_STREAMS;
- }
-
if (option->opt_set_mask & NGHTTP2_OPT_MAX_OUTBOUND_ACK) {
(*session_ptr)->max_outbound_ack = option->max_outbound_ack;
}
@@ -562,13 +550,6 @@ static int session_new(nghttp2_session **session_ptr,
(*session_ptr)->max_settings = option->max_settings;
}
- if ((option->opt_set_mask &
- NGHTTP2_OPT_SERVER_FALLBACK_RFC7540_PRIORITIES) &&
- option->server_fallback_rfc7540_priorities) {
- (*session_ptr)->opt_flags |=
- NGHTTP2_OPTMASK_SERVER_FALLBACK_RFC7540_PRIORITIES;
- }
-
if ((option->opt_set_mask &
NGHTTP2_OPT_NO_RFC9113_LEADING_AND_TRAILING_WS_VALIDATION) &&
option->no_rfc9113_leading_and_trailing_ws_validation) {
@@ -810,7 +791,6 @@ void nghttp2_session_del(nghttp2_session *session) {
for (i = 0; i < NGHTTP2_EXTPRI_URGENCY_LEVELS; ++i) {
nghttp2_pq_free(&session->sched[i].ob_data);
}
- nghttp2_stream_free(&session->root);
/* Have to free streams first, so that we can check
stream->item->queued */
@@ -829,82 +809,6 @@ void nghttp2_session_del(nghttp2_session *session) {
nghttp2_mem_free(mem, session);
}
-int nghttp2_session_reprioritize_stream(
- nghttp2_session *session, nghttp2_stream *stream,
- const nghttp2_priority_spec *pri_spec_in) {
- int rv;
- nghttp2_stream *dep_stream = NULL;
- nghttp2_priority_spec pri_spec_default;
- const nghttp2_priority_spec *pri_spec = pri_spec_in;
-
- assert((!session->server && session->pending_no_rfc7540_priorities != 1) ||
- (session->server && !session_no_rfc7540_pri_no_fallback(session)));
- assert(pri_spec->stream_id != stream->stream_id);
-
- if (!nghttp2_stream_in_dep_tree(stream)) {
- return 0;
- }
-
- if (pri_spec->stream_id != 0) {
- dep_stream = nghttp2_session_get_stream_raw(session, pri_spec->stream_id);
-
- if (!dep_stream &&
- session_detect_idle_stream(session, pri_spec->stream_id)) {
- nghttp2_priority_spec_default_init(&pri_spec_default);
-
- dep_stream = nghttp2_session_open_stream(
- session, pri_spec->stream_id, NGHTTP2_FLAG_NONE, &pri_spec_default,
- NGHTTP2_STREAM_IDLE, NULL);
-
- if (dep_stream == NULL) {
- return NGHTTP2_ERR_NOMEM;
- }
- } else if (!dep_stream || !nghttp2_stream_in_dep_tree(dep_stream)) {
- nghttp2_priority_spec_default_init(&pri_spec_default);
- pri_spec = &pri_spec_default;
- }
- }
-
- if (pri_spec->stream_id == 0) {
- dep_stream = &session->root;
- } else if (nghttp2_stream_dep_find_ancestor(dep_stream, stream)) {
- DEBUGF("stream: cycle detected, dep_stream(%p)=%d stream(%p)=%d\n",
- dep_stream, dep_stream->stream_id, stream, stream->stream_id);
-
- nghttp2_stream_dep_remove_subtree(dep_stream);
- rv = nghttp2_stream_dep_add_subtree(stream->dep_prev, dep_stream);
- if (rv != 0) {
- return rv;
- }
- }
-
- assert(dep_stream);
-
- if (dep_stream == stream->dep_prev && !pri_spec->exclusive) {
- /* This is minor optimization when just weight is changed. */
- nghttp2_stream_change_weight(stream, pri_spec->weight);
-
- return 0;
- }
-
- nghttp2_stream_dep_remove_subtree(stream);
-
- /* We have to update weight after removing stream from tree */
- stream->weight = pri_spec->weight;
-
- if (pri_spec->exclusive) {
- rv = nghttp2_stream_dep_insert_subtree(dep_stream, stream);
- } else {
- rv = nghttp2_stream_dep_add_subtree(dep_stream, stream);
- }
-
- if (rv != 0) {
- return rv;
- }
-
- return 0;
-}
-
static uint64_t pq_get_first_cycle(nghttp2_pq *pq) {
nghttp2_stream *stream;
@@ -923,7 +827,6 @@ static int session_ob_data_push(nghttp2_session *session,
int inc;
nghttp2_pq *pq;
- assert(stream->flags & NGHTTP2_STREAM_FLAG_NO_RFC7540_PRIORITIES);
assert(stream->queued == 0);
urgency = nghttp2_extpri_uint8_urgency(stream->extpri);
@@ -952,7 +855,6 @@ static void session_ob_data_remove(nghttp2_session *session,
nghttp2_stream *stream) {
uint32_t urgency;
- assert(stream->flags & NGHTTP2_STREAM_FLAG_NO_RFC7540_PRIORITIES);
assert(stream->queued == 1);
urgency = nghttp2_extpri_uint8_urgency(stream->extpri);
@@ -969,14 +871,7 @@ static int session_attach_stream_item(nghttp2_session *session,
nghttp2_outbound_item *item) {
int rv;
- rv = nghttp2_stream_attach_item(stream, item);
- if (rv != 0) {
- return rv;
- }
-
- if (!(stream->flags & NGHTTP2_STREAM_FLAG_NO_RFC7540_PRIORITIES)) {
- return 0;
- }
+ nghttp2_stream_attach_item(stream, item);
rv = session_ob_data_push(session, stream);
if (rv != 0) {
@@ -992,8 +887,7 @@ static void session_detach_stream_item(nghttp2_session *session,
nghttp2_stream *stream) {
nghttp2_stream_detach_item(stream);
- if (!(stream->flags & NGHTTP2_STREAM_FLAG_NO_RFC7540_PRIORITIES) ||
- !stream->queued) {
+ if (!stream->queued) {
return;
}
@@ -1004,8 +898,7 @@ static void session_defer_stream_item(nghttp2_session *session,
nghttp2_stream *stream, uint8_t flags) {
nghttp2_stream_defer_item(stream, flags);
- if (!(stream->flags & NGHTTP2_STREAM_FLAG_NO_RFC7540_PRIORITIES) ||
- !stream->queued) {
+ if (!stream->queued) {
return;
}
@@ -1015,15 +908,9 @@ static void session_defer_stream_item(nghttp2_session *session,
static int session_resume_deferred_stream_item(nghttp2_session *session,
nghttp2_stream *stream,
uint8_t flags) {
- int rv;
-
- rv = nghttp2_stream_resume_deferred_item(stream, flags);
- if (rv != 0) {
- return rv;
- }
+ nghttp2_stream_resume_deferred_item(stream, flags);
- if (!(stream->flags & NGHTTP2_STREAM_FLAG_NO_RFC7540_PRIORITIES) ||
- (stream->flags & NGHTTP2_STREAM_FLAG_DEFERRED_ALL)) {
+ if (stream->flags & NGHTTP2_STREAM_FLAG_DEFERRED_ALL) {
return 0;
}
@@ -1168,7 +1055,6 @@ int nghttp2_session_add_item(nghttp2_session *session,
return 0;
case NGHTTP2_PUSH_PROMISE: {
nghttp2_headers_aux_data *aux_data;
- nghttp2_priority_spec pri_spec;
aux_data = &item->aux_data.headers;
@@ -1176,20 +1062,13 @@ int nghttp2_session_add_item(nghttp2_session *session,
return NGHTTP2_ERR_STREAM_CLOSED;
}
- nghttp2_priority_spec_init(&pri_spec, stream->stream_id,
- NGHTTP2_DEFAULT_WEIGHT, 0);
-
if (!nghttp2_session_open_stream(
session, frame->push_promise.promised_stream_id,
- NGHTTP2_STREAM_FLAG_NONE, &pri_spec, NGHTTP2_STREAM_RESERVED,
+ NGHTTP2_STREAM_FLAG_NONE, NGHTTP2_STREAM_RESERVED,
aux_data->stream_user_data)) {
return NGHTTP2_ERR_NOMEM;
}
- /* We don't have to call nghttp2_session_adjust_closed_stream()
- here, since stream->stream_id is local stream_id, and it does
- not affect closed stream count. */
-
nghttp2_outbound_queue_push(&session->ob_reg, item);
item->queued = 1;
@@ -1290,15 +1169,11 @@ int nghttp2_session_add_rst_stream(nghttp2_session *session, int32_t stream_id,
nghttp2_stream *nghttp2_session_open_stream(nghttp2_session *session,
int32_t stream_id, uint8_t flags,
- nghttp2_priority_spec *pri_spec_in,
nghttp2_stream_state initial_state,
void *stream_user_data) {
int rv;
nghttp2_stream *stream;
- nghttp2_stream *dep_stream = NULL;
int stream_alloc = 0;
- nghttp2_priority_spec pri_spec_default;
- nghttp2_priority_spec *pri_spec = pri_spec_in;
nghttp2_mem *mem;
mem = &session->mem;
@@ -1311,23 +1186,9 @@ nghttp2_stream *nghttp2_session_open_stream(nghttp2_session *session,
if (stream) {
assert(stream->state == NGHTTP2_STREAM_IDLE);
- assert((stream->flags & NGHTTP2_STREAM_FLAG_NO_RFC7540_PRIORITIES) ||
- nghttp2_stream_in_dep_tree(stream));
-
- nghttp2_session_detach_idle_stream(session, stream);
-
- if (nghttp2_stream_in_dep_tree(stream)) {
- assert(!(stream->flags & NGHTTP2_STREAM_FLAG_NO_RFC7540_PRIORITIES));
-
- rv = nghttp2_stream_dep_remove(stream);
- if (rv != 0) {
- return NULL;
- }
+ assert(initial_state != NGHTTP2_STREAM_IDLE);
- if (session_no_rfc7540_pri_no_fallback(session)) {
- stream->flags |= NGHTTP2_STREAM_FLAG_NO_RFC7540_PRIORITIES;
- }
- }
+ --session->num_idle_streams;
} else {
stream = nghttp2_mem_malloc(mem, sizeof(nghttp2_stream));
if (stream == NULL) {
@@ -1337,69 +1198,16 @@ nghttp2_stream *nghttp2_session_open_stream(nghttp2_session *session,
stream_alloc = 1;
}
- if (session_no_rfc7540_pri_no_fallback(session) ||
- session->remote_settings.no_rfc7540_priorities == 1) {
- /* For client which has not received server
- SETTINGS_NO_RFC7540_PRIORITIES = 1, send a priority signal
- opportunistically. */
- if (session->server ||
- session->remote_settings.no_rfc7540_priorities == 1) {
- nghttp2_priority_spec_default_init(&pri_spec_default);
- pri_spec = &pri_spec_default;
- }
-
- if (session->pending_no_rfc7540_priorities == 1) {
- flags |= NGHTTP2_STREAM_FLAG_NO_RFC7540_PRIORITIES;
- }
- } else if (pri_spec->stream_id != 0) {
- dep_stream = nghttp2_session_get_stream_raw(session, pri_spec->stream_id);
-
- if (!dep_stream &&
- session_detect_idle_stream(session, pri_spec->stream_id)) {
- /* Depends on idle stream, which does not exist in memory.
- Assign default priority for it. */
- nghttp2_priority_spec_default_init(&pri_spec_default);
-
- dep_stream = nghttp2_session_open_stream(
- session, pri_spec->stream_id, NGHTTP2_FLAG_NONE, &pri_spec_default,
- NGHTTP2_STREAM_IDLE, NULL);
-
- if (dep_stream == NULL) {
- if (stream_alloc) {
- nghttp2_mem_free(mem, stream);
- }
-
- return NULL;
- }
- } else if (!dep_stream || !nghttp2_stream_in_dep_tree(dep_stream)) {
- /* If dep_stream is not part of dependency tree, stream will get
- default priority. This handles the case when
- pri_spec->stream_id == stream_id. This happens because we
- don't check pri_spec->stream_id against new stream ID in
- nghttp2_submit_request. This also handles the case when idle
- stream created by PRIORITY frame was opened. Somehow we
- first remove the idle stream from dependency tree. This is
- done to simplify code base, but ideally we should retain old
- dependency. But I'm not sure this adds values. */
- nghttp2_priority_spec_default_init(&pri_spec_default);
- pri_spec = &pri_spec_default;
- }
- }
-
if (initial_state == NGHTTP2_STREAM_RESERVED) {
flags |= NGHTTP2_STREAM_FLAG_PUSH;
}
if (stream_alloc) {
nghttp2_stream_init(stream, stream_id, flags, initial_state,
- pri_spec->weight,
(int32_t)session->remote_settings.initial_window_size,
(int32_t)session->local_settings.initial_window_size,
- stream_user_data, mem);
-
- if (session_no_rfc7540_pri_no_fallback(session)) {
- stream->seq = session->stream_seq++;
- }
+ stream_user_data);
+ stream->seq = session->stream_seq++;
rv = nghttp2_map_insert(&session->streams, stream_id, stream);
if (rv != 0) {
@@ -1410,7 +1218,6 @@ nghttp2_stream *nghttp2_session_open_stream(nghttp2_session *session,
} else {
stream->flags = flags;
stream->state = initial_state;
- stream->weight = pri_spec->weight;
stream->stream_user_data = stream_user_data;
}
@@ -1428,9 +1235,7 @@ nghttp2_stream *nghttp2_session_open_stream(nghttp2_session *session,
limit. That is one of the DOS vector. */
break;
case NGHTTP2_STREAM_IDLE:
- /* Idle stream does not count toward the concurrent streams limit.
- This is used as anchor node in dependency tree. */
- nghttp2_session_keep_idle_stream(session, stream);
+ ++session->num_idle_streams;
break;
default:
if (nghttp2_session_is_my_stream_id(session, stream_id)) {
@@ -1440,31 +1245,11 @@ nghttp2_stream *nghttp2_session_open_stream(nghttp2_session *session,
}
}
- if (stream->flags & NGHTTP2_STREAM_FLAG_NO_RFC7540_PRIORITIES) {
- return stream;
- }
-
- if (pri_spec->stream_id == 0) {
- dep_stream = &session->root;
- }
-
- assert(dep_stream);
-
- if (pri_spec->exclusive) {
- rv = nghttp2_stream_dep_insert(dep_stream, stream);
- if (rv != 0) {
- return NULL;
- }
- } else {
- nghttp2_stream_dep_add(dep_stream, stream);
- }
-
return stream;
}
int nghttp2_session_close_stream(nghttp2_session *session, int32_t stream_id,
uint32_t error_code) {
- int rv;
nghttp2_stream *stream;
nghttp2_mem *mem;
int is_my_stream_id;
@@ -1528,207 +1313,26 @@ int nghttp2_session_close_stream(nghttp2_session *session, int32_t stream_id,
/* Closes both directions just in case they are not closed yet */
stream->flags |= NGHTTP2_STREAM_FLAG_CLOSED;
- if (session->pending_no_rfc7540_priorities == 1) {
- return nghttp2_session_destroy_stream(session, stream);
- }
-
- if ((session->opt_flags & NGHTTP2_OPTMASK_NO_CLOSED_STREAMS) == 0 &&
- session->server && !is_my_stream_id &&
- nghttp2_stream_in_dep_tree(stream)) {
- /* On server side, retain stream at most MAX_CONCURRENT_STREAMS
- combined with the current active incoming streams to make
- dependency tree work better. */
- nghttp2_session_keep_closed_stream(session, stream);
- } else {
- rv = nghttp2_session_destroy_stream(session, stream);
- if (rv != 0) {
- return rv;
- }
- }
+ nghttp2_session_destroy_stream(session, stream);
return 0;
}
-int nghttp2_session_destroy_stream(nghttp2_session *session,
- nghttp2_stream *stream) {
+void nghttp2_session_destroy_stream(nghttp2_session *session,
+ nghttp2_stream *stream) {
nghttp2_mem *mem;
- int rv;
DEBUGF("stream: destroy closed stream(%p)=%d\n", stream, stream->stream_id);
mem = &session->mem;
- if (nghttp2_stream_in_dep_tree(stream)) {
- rv = nghttp2_stream_dep_remove(stream);
- if (rv != 0) {
- return rv;
- }
- }
-
- if (stream->queued &&
- (stream->flags & NGHTTP2_STREAM_FLAG_NO_RFC7540_PRIORITIES)) {
+ if (stream->queued) {
session_ob_data_remove(session, stream);
}
nghttp2_map_remove(&session->streams, stream->stream_id);
nghttp2_stream_free(stream);
nghttp2_mem_free(mem, stream);
-
- return 0;
-}
-
-void nghttp2_session_keep_closed_stream(nghttp2_session *session,
- nghttp2_stream *stream) {
- DEBUGF("stream: keep closed stream(%p)=%d, state=%d\n", stream,
- stream->stream_id, stream->state);
-
- if (session->closed_stream_tail) {
- session->closed_stream_tail->closed_next = stream;
- stream->closed_prev = session->closed_stream_tail;
- } else {
- session->closed_stream_head = stream;
- }
- session->closed_stream_tail = stream;
-
- ++session->num_closed_streams;
-}
-
-void nghttp2_session_keep_idle_stream(nghttp2_session *session,
- nghttp2_stream *stream) {
- DEBUGF("stream: keep idle stream(%p)=%d, state=%d\n", stream,
- stream->stream_id, stream->state);
-
- if (session->idle_stream_tail) {
- session->idle_stream_tail->closed_next = stream;
- stream->closed_prev = session->idle_stream_tail;
- } else {
- session->idle_stream_head = stream;
- }
- session->idle_stream_tail = stream;
-
- ++session->num_idle_streams;
-}
-
-void nghttp2_session_detach_idle_stream(nghttp2_session *session,
- nghttp2_stream *stream) {
- nghttp2_stream *prev_stream, *next_stream;
-
- DEBUGF("stream: detach idle stream(%p)=%d, state=%d\n", stream,
- stream->stream_id, stream->state);
-
- prev_stream = stream->closed_prev;
- next_stream = stream->closed_next;
-
- if (prev_stream) {
- prev_stream->closed_next = next_stream;
- } else {
- session->idle_stream_head = next_stream;
- }
-
- if (next_stream) {
- next_stream->closed_prev = prev_stream;
- } else {
- session->idle_stream_tail = prev_stream;
- }
-
- stream->closed_prev = NULL;
- stream->closed_next = NULL;
-
- --session->num_idle_streams;
-}
-
-int nghttp2_session_adjust_closed_stream(nghttp2_session *session) {
- size_t num_stream_max;
- int rv;
-
- if (session->local_settings.max_concurrent_streams ==
- NGHTTP2_DEFAULT_MAX_CONCURRENT_STREAMS) {
- num_stream_max = session->pending_local_max_concurrent_stream;
- } else {
- num_stream_max = session->local_settings.max_concurrent_streams;
- }
-
- DEBUGF("stream: adjusting kept closed streams num_closed_streams=%zu, "
- "num_incoming_streams=%zu, max_concurrent_streams=%zu\n",
- session->num_closed_streams, session->num_incoming_streams,
- num_stream_max);
-
- while (session->num_closed_streams > 0 &&
- session->num_closed_streams + session->num_incoming_streams >
- num_stream_max) {
- nghttp2_stream *head_stream;
- nghttp2_stream *next;
-
- head_stream = session->closed_stream_head;
-
- assert(head_stream);
-
- next = head_stream->closed_next;
-
- rv = nghttp2_session_destroy_stream(session, head_stream);
- if (rv != 0) {
- return rv;
- }
-
- /* head_stream is now freed */
-
- session->closed_stream_head = next;
-
- if (session->closed_stream_head) {
- session->closed_stream_head->closed_prev = NULL;
- } else {
- session->closed_stream_tail = NULL;
- }
-
- --session->num_closed_streams;
- }
-
- return 0;
-}
-
-int nghttp2_session_adjust_idle_stream(nghttp2_session *session) {
- size_t max;
- int rv;
-
- /* Make minimum number of idle streams 16, and maximum 100, which
- are arbitrary chosen numbers. */
- max = nghttp2_min_uint32(
- 100,
- nghttp2_max_uint32(
- 16, nghttp2_min_uint32(session->local_settings.max_concurrent_streams,
- session->pending_local_max_concurrent_stream)));
-
- DEBUGF("stream: adjusting kept idle streams num_idle_streams=%zu, max=%zu\n",
- session->num_idle_streams, max);
-
- while (session->num_idle_streams > max) {
- nghttp2_stream *head;
- nghttp2_stream *next;
-
- head = session->idle_stream_head;
- assert(head);
-
- next = head->closed_next;
-
- rv = nghttp2_session_destroy_stream(session, head);
- if (rv != 0) {
- return rv;
- }
-
- /* head is now destroyed */
-
- session->idle_stream_head = next;
-
- if (session->idle_stream_head) {
- session->idle_stream_head->closed_prev = NULL;
- } else {
- session->idle_stream_tail = NULL;
- }
-
- --session->num_idle_streams;
- }
-
- return 0;
}
/*
@@ -2411,16 +2015,12 @@ static int session_prep_frame(nghttp2_session *session,
stream = nghttp2_session_open_stream(
session, frame->hd.stream_id, NGHTTP2_STREAM_FLAG_NONE,
- &frame->headers.pri_spec, NGHTTP2_STREAM_INITIAL,
- aux_data->stream_user_data);
+ NGHTTP2_STREAM_INITIAL, aux_data->stream_user_data);
if (stream == NULL) {
return NGHTTP2_ERR_NOMEM;
}
- /* We don't call nghttp2_session_adjust_closed_stream() here,
- since we don't keep closed stream in client side */
-
rv = session_predicate_request_headers_send(session, item);
if (rv != 0) {
return rv;
@@ -2662,8 +2262,6 @@ static int session_prep_frame(nghttp2_session *session,
nghttp2_outbound_item *
nghttp2_session_get_next_ob_item(nghttp2_session *session) {
- nghttp2_outbound_item *item;
-
if (nghttp2_outbound_queue_top(&session->ob_urgent)) {
return nghttp2_outbound_queue_top(&session->ob_urgent);
}
@@ -2679,11 +2277,6 @@ nghttp2_session_get_next_ob_item(nghttp2_session *session) {
}
if (session->remote_window_size > 0) {
- item = nghttp2_stream_next_outbound_item(&session->root);
- if (item) {
- return item;
- }
-
return session_sched_get_next_outbound_item(session);
}
@@ -2718,11 +2311,6 @@ nghttp2_session_pop_next_ob_item(nghttp2_session *session) {
}
if (session->remote_window_size > 0) {
- item = nghttp2_stream_next_outbound_item(&session->root);
- if (item) {
- return item;
- }
-
return session_sched_get_next_outbound_item(session);
}
@@ -2781,7 +2369,6 @@ static int find_stream_on_goaway_func(void *entry, void *ptr) {
nghttp2_session_close_stream() inside nghttp2_map_each().
Reuse closed_next member.. bad choice? */
assert(stream->closed_next == NULL);
- assert(stream->closed_prev == NULL);
if (arg->head) {
stream->closed_next = arg->head;
@@ -2837,11 +2424,6 @@ static void session_reschedule_stream(nghttp2_session *session,
nghttp2_stream *stream) {
stream->last_writelen = stream->item->frame.hd.length;
- if (!(stream->flags & NGHTTP2_STREAM_FLAG_NO_RFC7540_PRIORITIES)) {
- nghttp2_stream_reschedule(stream);
- return;
- }
-
if (!session->server) {
return;
}
@@ -3020,37 +2602,6 @@ static int session_after_frame_sent1(nghttp2_session *session) {
}
}
case NGHTTP2_PRIORITY:
- if (session->server || session->pending_no_rfc7540_priorities == 1) {
- return 0;
- }
-
- stream = nghttp2_session_get_stream_raw(session, frame->hd.stream_id);
-
- if (!stream) {
- if (!session_detect_idle_stream(session, frame->hd.stream_id)) {
- return 0;
- }
-
- stream = nghttp2_session_open_stream(
- session, frame->hd.stream_id, NGHTTP2_FLAG_NONE,
- &frame->priority.pri_spec, NGHTTP2_STREAM_IDLE, NULL);
- if (!stream) {
- return NGHTTP2_ERR_NOMEM;
- }
- } else {
- rv = nghttp2_session_reprioritize_stream(session, stream,
- &frame->priority.pri_spec);
- if (nghttp2_is_fatal(rv)) {
- return rv;
- }
- }
-
- rv = nghttp2_session_adjust_idle_stream(session);
-
- if (nghttp2_is_fatal(rv)) {
- return rv;
- }
-
return 0;
case NGHTTP2_RST_STREAM:
rv = nghttp2_session_close_stream(session, frame->hd.stream_id,
@@ -3239,14 +2790,6 @@ static nghttp2_ssize nghttp2_session_mem_send_internal(nghttp2_session *session,
aob = &session->aob;
framebufs = &aob->framebufs;
- /* We may have idle streams more than we expect (e.g.,
- nghttp2_session_change_stream_priority() or
- nghttp2_session_create_idle_stream()). Adjust them here. */
- rv = nghttp2_session_adjust_idle_stream(session);
- if (nghttp2_is_fatal(rv)) {
- return rv;
- }
-
for (;;) {
switch (aob->state) {
case NGHTTP2_OB_POP_ITEM: {
@@ -4064,7 +3607,6 @@ static int session_end_stream_headers_received(nghttp2_session *session,
if (session->server && session_enforce_http_messaging(session) &&
frame->headers.cat == NGHTTP2_HCAT_REQUEST &&
- (stream->flags & NGHTTP2_STREAM_FLAG_NO_RFC7540_PRIORITIES) &&
!(stream->flags & NGHTTP2_STREAM_FLAG_IGNORE_CLIENT_PRIORITIES) &&
(stream->http_flags & NGHTTP2_HTTP_FLAG_PRIORITY)) {
rv = session_update_stream_priority(session, stream, stream->http_extpri);
@@ -4253,18 +3795,13 @@ int nghttp2_session_on_request_headers_received(nghttp2_session *session,
NGHTTP2_ERR_REFUSED_STREAM);
}
- stream = nghttp2_session_open_stream(
- session, frame->hd.stream_id, NGHTTP2_STREAM_FLAG_NONE,
- &frame->headers.pri_spec, NGHTTP2_STREAM_OPENING, NULL);
+ stream = nghttp2_session_open_stream(session, frame->hd.stream_id,
+ NGHTTP2_STREAM_FLAG_NONE,
+ NGHTTP2_STREAM_OPENING, NULL);
if (!stream) {
return NGHTTP2_ERR_NOMEM;
}
- rv = nghttp2_session_adjust_closed_stream(session);
- if (nghttp2_is_fatal(rv)) {
- return rv;
- }
-
session->last_proc_stream_id = session->last_recv_stream_id;
rv = session_call_on_begin_headers(session, frame);
@@ -4425,77 +3962,6 @@ static int session_process_headers_frame(nghttp2_session *session) {
return nghttp2_session_on_headers_received(session, frame, stream);
}
-int nghttp2_session_on_priority_received(nghttp2_session *session,
- nghttp2_frame *frame) {
- int rv;
- nghttp2_stream *stream;
-
- assert(!session_no_rfc7540_pri_no_fallback(session));
-
- if (frame->hd.stream_id == 0) {
- return session_handle_invalid_connection(session, frame, NGHTTP2_ERR_PROTO,
- "PRIORITY: stream_id == 0");
- }
-
- if (frame->priority.pri_spec.stream_id == frame->hd.stream_id) {
- return nghttp2_session_terminate_session_with_reason(
- session, NGHTTP2_PROTOCOL_ERROR, "depend on itself");
- }
-
- if (!session->server) {
- /* Re-prioritization works only in server */
- return session_call_on_frame_received(session, frame);
- }
-
- stream = nghttp2_session_get_stream_raw(session, frame->hd.stream_id);
-
- if (!stream) {
- /* PRIORITY against idle stream can create anchor node in
- dependency tree. */
- if (!session_detect_idle_stream(session, frame->hd.stream_id)) {
- return 0;
- }
-
- stream = nghttp2_session_open_stream(
- session, frame->hd.stream_id, NGHTTP2_STREAM_FLAG_NONE,
- &frame->priority.pri_spec, NGHTTP2_STREAM_IDLE, NULL);
-
- if (stream == NULL) {
- return NGHTTP2_ERR_NOMEM;
- }
-
- rv = nghttp2_session_adjust_idle_stream(session);
- if (nghttp2_is_fatal(rv)) {
- return rv;
- }
- } else {
- rv = nghttp2_session_reprioritize_stream(session, stream,
- &frame->priority.pri_spec);
-
- if (nghttp2_is_fatal(rv)) {
- return rv;
- }
-
- rv = nghttp2_session_adjust_idle_stream(session);
- if (nghttp2_is_fatal(rv)) {
- return rv;
- }
- }
-
- return session_call_on_frame_received(session, frame);
-}
-
-static int session_process_priority_frame(nghttp2_session *session) {
- nghttp2_inbound_frame *iframe = &session->iframe;
- nghttp2_frame *frame = &iframe->frame;
-
- assert(!session_no_rfc7540_pri_no_fallback(session));
-
- nghttp2_frame_unpack_priority_payload(&frame->priority, iframe->sbuf.pos);
-
- return nghttp2_session_on_priority_received(session, frame);
-}
-
static int session_update_stream_reset_ratelim(nghttp2_session *session) {
if (!session->server || (session->goaway_flags & NGHTTP2_GOAWAY_SUBMITTED)) {
return 0;
@@ -4934,12 +4400,6 @@ int nghttp2_session_on_settings_received(nghttp2_session *session,
if (session->remote_settings.no_rfc7540_priorities == UINT32_MAX) {
session->remote_settings.no_rfc7540_priorities = 0;
-
- if (session->server && session->pending_no_rfc7540_priorities &&
- (session->opt_flags &
- NGHTTP2_OPTMASK_SERVER_FALLBACK_RFC7540_PRIORITIES)) {
- session->fallback_rfc7540_priorities = 1;
- }
}
if (!noack && !session_is_closing(session)) {
@@ -5000,7 +4460,6 @@ int nghttp2_session_on_push_promise_received(nghttp2_session *session,
int rv;
nghttp2_stream *stream;
nghttp2_stream *promised_stream;
- nghttp2_priority_spec pri_spec;
if (frame->hd.stream_id == 0) {
return session_inflate_handle_invalid_connection(
@@ -5058,20 +4517,14 @@ int nghttp2_session_on_push_promise_received(nghttp2_session *session,
session, frame, NGHTTP2_ERR_STREAM_CLOSED, "PUSH_PROMISE: stream closed");
}
- nghttp2_priority_spec_init(&pri_spec, stream->stream_id,
- NGHTTP2_DEFAULT_WEIGHT, 0);
-
promised_stream = nghttp2_session_open_stream(
session, frame->push_promise.promised_stream_id, NGHTTP2_STREAM_FLAG_NONE,
- &pri_spec, NGHTTP2_STREAM_RESERVED, NULL);
+ NGHTTP2_STREAM_RESERVED, NULL);
if (!promised_stream) {
return NGHTTP2_ERR_NOMEM;
}
- /* We don't call nghttp2_session_adjust_closed_stream(), since we
- don't keep closed stream in client side */
-
session->last_proc_stream_id = session->last_recv_stream_id;
rv = session_call_on_begin_headers(session, frame);
if (rv != 0) {
@@ -5292,7 +4745,6 @@ int nghttp2_session_on_priority_update_received(nghttp2_session *session,
nghttp2_frame *frame) {
nghttp2_ext_priority_update *priority_update;
nghttp2_stream *stream;
- nghttp2_priority_spec pri_spec;
nghttp2_extpri extpri;
int rv;
@@ -5330,10 +4782,9 @@ int nghttp2_session_on_priority_update_received(nghttp2_session *session,
"PRIORITY_UPDATE: max concurrent streams exceeded");
}
- nghttp2_priority_spec_default_init(&pri_spec);
- stream = nghttp2_session_open_stream(session, priority_update->stream_id,
- NGHTTP2_FLAG_NONE, &pri_spec,
- NGHTTP2_STREAM_IDLE, NULL);
+ stream =
+ nghttp2_session_open_stream(session, priority_update->stream_id,
+ NGHTTP2_FLAG_NONE, NGHTTP2_STREAM_IDLE, NULL);
if (!stream) {
return NGHTTP2_ERR_NOMEM;
}
@@ -5869,14 +5320,6 @@ nghttp2_ssize nghttp2_session_mem_recv2(nghttp2_session *session,
mem = &session->mem;
- /* We may have idle streams more than we expect (e.g.,
- nghttp2_session_change_stream_priority() or
- nghttp2_session_create_idle_stream()). Adjust them here. */
- rv = nghttp2_session_adjust_idle_stream(session);
- if (nghttp2_is_fatal(rv)) {
- return rv;
- }
-
if (!nghttp2_session_want_read(session)) {
return (nghttp2_ssize)inlen;
}
@@ -6392,8 +5835,7 @@ nghttp2_ssize nghttp2_session_mem_recv2(nghttp2_session *session,
break;
}
- if (!session_no_rfc7540_pri_no_fallback(session) ||
- iframe->payloadleft > sizeof(iframe->raw_sbuf)) {
+ if (iframe->payloadleft > sizeof(iframe->raw_sbuf)) {
busy = 1;
iframe->state = NGHTTP2_IB_IGN_PAYLOAD;
break;
@@ -6510,18 +5952,6 @@ nghttp2_ssize nghttp2_session_mem_recv2(nghttp2_session *session,
break;
case NGHTTP2_PRIORITY:
- if (!session_no_rfc7540_pri_no_fallback(session) &&
- session->remote_settings.no_rfc7540_priorities != 1) {
- rv = session_process_priority_frame(session);
- if (nghttp2_is_fatal(rv)) {
- return rv;
- }
-
- if (iframe->state == NGHTTP2_IB_IGN_ALL) {
- return (nghttp2_ssize)inlen;
- }
- }
-
session_inbound_frame_reset(session);
break;
@@ -7404,9 +6834,7 @@ int nghttp2_session_want_write(nghttp2_session *session) {
*/
return session->aob.item || nghttp2_outbound_queue_top(&session->ob_urgent) ||
nghttp2_outbound_queue_top(&session->ob_reg) ||
- ((!nghttp2_pq_empty(&session->root.obq) ||
- !session_sched_empty(session)) &&
- session->remote_window_size > 0) ||
+ (!session_sched_empty(session) && session->remote_window_size > 0) ||
(nghttp2_outbound_queue_top(&session->ob_syn) &&
!session_is_outgoing_concurrent_streams_max(session));
}
@@ -8046,7 +7474,6 @@ static int nghttp2_session_upgrade_internal(nghttp2_session *session,
nghttp2_settings_entry *iv;
size_t niv;
int rv;
- nghttp2_priority_spec pri_spec;
nghttp2_mem *mem;
mem = &session->mem;
@@ -8083,18 +7510,13 @@ static int nghttp2_session_upgrade_internal(nghttp2_session *session,
return rv;
}
- nghttp2_priority_spec_default_init(&pri_spec);
-
stream = nghttp2_session_open_stream(
- session, 1, NGHTTP2_STREAM_FLAG_NONE, &pri_spec, NGHTTP2_STREAM_OPENING,
+ session, 1, NGHTTP2_STREAM_FLAG_NONE, NGHTTP2_STREAM_OPENING,
session->server ? NULL : stream_user_data);
if (stream == NULL) {
return NGHTTP2_ERR_NOMEM;
}
- /* We don't call nghttp2_session_adjust_closed_stream(), since this
- should be the first stream open. */
-
if (session->server) {
nghttp2_stream_shutdown(stream, NGHTTP2_SHUT_RD);
session->last_recv_stream_id = 1;
@@ -8293,14 +7715,16 @@ int32_t nghttp2_session_get_last_proc_stream_id(nghttp2_session *session) {
nghttp2_stream *nghttp2_session_find_stream(nghttp2_session *session,
int32_t stream_id) {
if (stream_id == 0) {
- return &session->root;
+ return &root;
}
return nghttp2_session_get_stream_raw(session, stream_id);
}
nghttp2_stream *nghttp2_session_get_root_stream(nghttp2_session *session) {
- return &session->root;
+ (void)session;
+
+ return &root;
}
int nghttp2_session_check_server_session(nghttp2_session *session) {
@@ -8310,75 +7734,20 @@ int nghttp2_session_check_server_session(nghttp2_session *session) {
int nghttp2_session_change_stream_priority(
nghttp2_session *session, int32_t stream_id,
const nghttp2_priority_spec *pri_spec) {
- int rv;
- nghttp2_stream *stream;
- nghttp2_priority_spec pri_spec_copy;
-
- if (session->pending_no_rfc7540_priorities == 1) {
- return 0;
- }
-
- if (stream_id == 0 || stream_id == pri_spec->stream_id) {
- return NGHTTP2_ERR_INVALID_ARGUMENT;
- }
-
- stream = nghttp2_session_get_stream_raw(session, stream_id);
- if (!stream) {
- return NGHTTP2_ERR_INVALID_ARGUMENT;
- }
-
- pri_spec_copy = *pri_spec;
- nghttp2_priority_spec_normalize_weight(&pri_spec_copy);
-
- rv = nghttp2_session_reprioritize_stream(session, stream, &pri_spec_copy);
+ (void)session;
+ (void)stream_id;
+ (void)pri_spec;
- if (nghttp2_is_fatal(rv)) {
- return rv;
- }
-
- /* We don't intentionally call nghttp2_session_adjust_idle_stream()
- so that idle stream created by this function, and existing ones
- are kept for application. We will adjust number of idle stream
- in nghttp2_session_mem_send2 or nghttp2_session_mem_recv2 is
- called. */
return 0;
}
int nghttp2_session_create_idle_stream(nghttp2_session *session,
int32_t stream_id,
const nghttp2_priority_spec *pri_spec) {
- nghttp2_stream *stream;
- nghttp2_priority_spec pri_spec_copy;
-
- if (session->pending_no_rfc7540_priorities == 1) {
- return 0;
- }
-
- if (stream_id == 0 || stream_id == pri_spec->stream_id ||
- !session_detect_idle_stream(session, stream_id)) {
- return NGHTTP2_ERR_INVALID_ARGUMENT;
- }
-
- stream = nghttp2_session_get_stream_raw(session, stream_id);
- if (stream) {
- return NGHTTP2_ERR_INVALID_ARGUMENT;
- }
-
- pri_spec_copy = *pri_spec;
- nghttp2_priority_spec_normalize_weight(&pri_spec_copy);
-
- stream =
- nghttp2_session_open_stream(session, stream_id, NGHTTP2_STREAM_FLAG_NONE,
- &pri_spec_copy, NGHTTP2_STREAM_IDLE, NULL);
- if (!stream) {
- return NGHTTP2_ERR_NOMEM;
- }
+ (void)session;
+ (void)stream_id;
+ (void)pri_spec;
- /* We don't intentionally call nghttp2_session_adjust_idle_stream()
- so that idle stream created by this function, and existing ones
- are kept for application. We will adjust number of idle stream
- in nghttp2_session_mem_send2 or nghttp2_session_mem_recv2 is
- called. */
return 0;
}
diff --git a/deps/nghttp2/lib/nghttp2_session.h b/deps/nghttp2/lib/nghttp2_session.h
index ef8f7b27d67261..6a54d35fcab7fa 100644
--- a/deps/nghttp2/lib/nghttp2_session.h
+++ b/deps/nghttp2/lib/nghttp2_session.h
@@ -45,6 +45,8 @@
preface handling. */
extern int nghttp2_enable_strict_preface;
+extern nghttp2_stream root;
+
/*
* Option flags.
*/
@@ -53,8 +55,6 @@ typedef enum {
NGHTTP2_OPTMASK_NO_RECV_CLIENT_MAGIC = 1 << 1,
NGHTTP2_OPTMASK_NO_HTTP_MESSAGING = 1 << 2,
NGHTTP2_OPTMASK_NO_AUTO_PING_ACK = 1 << 3,
- NGHTTP2_OPTMASK_NO_CLOSED_STREAMS = 1 << 4,
- NGHTTP2_OPTMASK_SERVER_FALLBACK_RFC7540_PRIORITIES = 1 << 5,
NGHTTP2_OPTMASK_NO_RFC9113_LEADING_AND_TRAILING_WS_VALIDATION = 1 << 6,
} nghttp2_optmask;
@@ -89,10 +89,6 @@ typedef struct {
/* The default maximum number of incoming reserved streams */
#define NGHTTP2_MAX_INCOMING_RESERVED_STREAMS 200
-/* Even if we have less SETTINGS_MAX_CONCURRENT_STREAMS than this
- number, we keep NGHTTP2_MIN_IDLE_STREAMS streams in idle state */
-#define NGHTTP2_MIN_IDLE_STREAMS 16
-
/* The maximum number of items in outbound queue, which is considered
as flooding caused by peer. All frames are not considered here.
We only consider PING + ACK and SETTINGS + ACK. This is because
@@ -205,8 +201,6 @@ typedef struct nghttp2_inflight_settings nghttp2_inflight_settings;
struct nghttp2_session {
nghttp2_map /* */ streams;
- /* root of dependency tree*/
- nghttp2_stream root;
/* Queue for outbound urgent frames (PING and SETTINGS) */
nghttp2_outbound_queue ob_urgent;
/* Queue for non-DATA frames */
@@ -229,20 +223,6 @@ struct nghttp2_session {
/* Memory allocator */
nghttp2_mem mem;
void *user_data;
- /* Points to the latest incoming closed stream. NULL if there is no
- closed stream. Only used when session is initialized as
- server. */
- nghttp2_stream *closed_stream_head;
- /* Points to the oldest incoming closed stream. NULL if there is no
- closed stream. Only used when session is initialized as
- server. */
- nghttp2_stream *closed_stream_tail;
- /* Points to the latest idle stream. NULL if there is no idle
- stream. Only used when session is initialized as server .*/
- nghttp2_stream *idle_stream_head;
- /* Points to the oldest idle stream. NULL if there is no idle
- stream. Only used when session is initialized as erver. */
- nghttp2_stream *idle_stream_tail;
/* Queue of In-flight SETTINGS values. SETTINGS bearing ACK is not
considered as in-flight. */
nghttp2_inflight_settings *inflight_settings_head;
@@ -276,10 +256,9 @@ struct nghttp2_session {
|closed_stream_head|. The current implementation only keeps
incoming streams and session is initialized as server. */
size_t num_closed_streams;
- /* The number of idle streams kept in |streams| hash. The idle
- streams can be accessed through doubly linked list
- |idle_stream_head|. The current implementation only keeps idle
- streams if session is initialized as server. */
+ /* The number of idle streams kept in |streams| hash. The current
+ implementation only keeps idle streams if session is initialized
+ as server. */
size_t num_idle_streams;
/* The number of bytes allocated for nvbuf */
size_t nvbuflen;
@@ -362,8 +341,6 @@ struct nghttp2_session {
/* Unacked local SETTINGS_NO_RFC7540_PRIORITIES value, which is
effective before it is acknowledged. */
uint8_t pending_no_rfc7540_priorities;
- /* Turn on fallback to RFC 7540 priorities; for server use only. */
- uint8_t fallback_rfc7540_priorities;
/* Nonzero if the session is server side. */
uint8_t server;
/* Flags indicating GOAWAY is sent and/or received. The flags are
@@ -527,15 +504,9 @@ int nghttp2_session_add_settings(nghttp2_session *session, uint8_t flags,
*
* This function returns a pointer to created new stream object, or
* NULL.
- *
- * This function adjusts neither the number of closed streams or idle
- * streams. The caller should manually call
- * nghttp2_session_adjust_closed_stream() or
- * nghttp2_session_adjust_idle_stream() respectively.
*/
nghttp2_stream *nghttp2_session_open_stream(nghttp2_session *session,
int32_t stream_id, uint8_t flags,
- nghttp2_priority_spec *pri_spec,
nghttp2_stream_state initial_state,
void *stream_user_data);
@@ -544,11 +515,6 @@ nghttp2_stream *nghttp2_session_open_stream(nghttp2_session *session,
* is indicated by the |error_code|. When closing the stream,
* on_stream_close_callback will be called.
*
- * If the session is initialized as server and |stream| is incoming
- * stream, stream is just marked closed and this function calls
- * nghttp2_session_keep_closed_stream() with |stream|. Otherwise,
- * |stream| will be deleted from memory.
- *
* This function returns 0 if it succeeds, or one the following
* negative error codes:
*
@@ -565,63 +531,9 @@ int nghttp2_session_close_stream(nghttp2_session *session, int32_t stream_id,
/*
* Deletes |stream| from memory. After this function returns, stream
* cannot be accessed.
- *
- * This function returns 0 if it succeeds, or one the following
- * negative error codes:
- *
- * NGHTTP2_ERR_NOMEM
- * Out of memory
*/
-int nghttp2_session_destroy_stream(nghttp2_session *session,
- nghttp2_stream *stream);
-
-/*
- * Tries to keep incoming closed stream |stream|. Due to the
- * limitation of maximum number of streams in memory, |stream| is not
- * closed and just deleted from memory (see
- * nghttp2_session_destroy_stream).
- */
-void nghttp2_session_keep_closed_stream(nghttp2_session *session,
- nghttp2_stream *stream);
-
-/*
- * Appends |stream| to linked list |session->idle_stream_head|. We
- * apply fixed limit for list size. To fit into that limit, one or
- * more oldest streams are removed from list as necessary.
- */
-void nghttp2_session_keep_idle_stream(nghttp2_session *session,
- nghttp2_stream *stream);
-
-/*
- * Detaches |stream| from idle streams linked list.
- */
-void nghttp2_session_detach_idle_stream(nghttp2_session *session,
- nghttp2_stream *stream);
-
-/*
- * Deletes closed stream to ensure that number of incoming streams
- * including active and closed is in the maximum number of allowed
- * stream.
- *
- * This function returns 0 if it succeeds, or one the following
- * negative error codes:
- *
- * NGHTTP2_ERR_NOMEM
- * Out of memory
- */
-int nghttp2_session_adjust_closed_stream(nghttp2_session *session);
-
-/*
- * Deletes idle stream to ensure that number of idle streams is in
- * certain limit.
- *
- * This function returns 0 if it succeeds, or one the following
- * negative error codes:
- *
- * NGHTTP2_ERR_NOMEM
- * Out of memory
- */
-int nghttp2_session_adjust_idle_stream(nghttp2_session *session);
+void nghttp2_session_destroy_stream(nghttp2_session *session,
+ nghttp2_stream *stream);
/*
* If further receptions and transmissions over the stream |stream_id|
@@ -915,24 +827,6 @@ int nghttp2_session_update_local_settings(nghttp2_session *session,
nghttp2_settings_entry *iv,
size_t niv);
-/*
- * Re-prioritize |stream|. The new priority specification is
- * |pri_spec|. Caller must ensure that stream->hd.stream_id !=
- * pri_spec->stream_id.
- *
- * This function does not adjust the number of idle streams. The
- * caller should call nghttp2_session_adjust_idle_stream() later.
- *
- * This function returns 0 if it succeeds, or one of the following
- * negative error codes:
- *
- * NGHTTP2_ERR_NOMEM
- * Out of memory
- */
-int nghttp2_session_reprioritize_stream(nghttp2_session *session,
- nghttp2_stream *stream,
- const nghttp2_priority_spec *pri_spec);
-
/*
* Terminates current |session| with the |error_code|. The |reason|
* is NULL-terminated debug string.
diff --git a/deps/nghttp2/lib/nghttp2_stream.c b/deps/nghttp2/lib/nghttp2_stream.c
index f2362447903755..afbd7c2d9e0a77 100644
--- a/deps/nghttp2/lib/nghttp2_stream.c
+++ b/deps/nghttp2/lib/nghttp2_stream.c
@@ -25,45 +25,17 @@
#include "nghttp2_stream.h"
#include
-#include
#include "nghttp2_session.h"
#include "nghttp2_helper.h"
#include "nghttp2_debug.h"
#include "nghttp2_frame.h"
-/* Maximum distance between any two stream's cycle in the same
- 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
- NGHTTP2_MAX_CYCLE_DISTANCE, A and B are in the same scale, in other
- words, B is really greater than or equal to A. Otherwise, A is a
- result of overflow, and it is actually A > B if we consider that
- fact. */
-#define NGHTTP2_MAX_CYCLE_DISTANCE \
- ((uint64_t)NGHTTP2_MAX_FRAME_SIZE_MAX * 256 + 255)
-
-static int stream_less(const void *lhsx, const void *rhsx) {
- const nghttp2_stream *lhs, *rhs;
-
- lhs = nghttp2_struct_of(lhsx, nghttp2_stream, pq_entry);
- rhs = nghttp2_struct_of(rhsx, nghttp2_stream, pq_entry);
-
- if (lhs->cycle == rhs->cycle) {
- return lhs->seq < rhs->seq;
- }
-
- return rhs->cycle - lhs->cycle <= NGHTTP2_MAX_CYCLE_DISTANCE;
-}
-
void nghttp2_stream_init(nghttp2_stream *stream, int32_t stream_id,
uint8_t flags, nghttp2_stream_state initial_state,
- int32_t weight, int32_t remote_initial_window_size,
+ int32_t remote_initial_window_size,
int32_t local_initial_window_size,
- void *stream_user_data, nghttp2_mem *mem) {
- nghttp2_pq_init(&stream->obq, stream_less, mem);
-
+ void *stream_user_data) {
stream->stream_id = stream_id;
stream->flags = flags;
stream->state = initial_state;
@@ -77,428 +49,36 @@ void nghttp2_stream_init(nghttp2_stream *stream, int32_t stream_id,
stream->recv_reduction = 0;
stream->window_update_queued = 0;
- stream->dep_prev = NULL;
- stream->dep_next = NULL;
- stream->sib_prev = NULL;
- stream->sib_next = NULL;
-
- stream->closed_prev = NULL;
stream->closed_next = NULL;
- stream->weight = weight;
- stream->sum_dep_weight = 0;
-
stream->http_flags = NGHTTP2_HTTP_FLAG_NONE;
stream->content_length = -1;
stream->recv_content_length = 0;
stream->status_code = -1;
stream->queued = 0;
- stream->descendant_last_cycle = 0;
stream->cycle = 0;
stream->pending_penalty = 0;
- stream->descendant_next_seq = 0;
stream->seq = 0;
stream->last_writelen = 0;
stream->extpri = stream->http_extpri = NGHTTP2_EXTPRI_DEFAULT_URGENCY;
}
-void nghttp2_stream_free(nghttp2_stream *stream) {
- nghttp2_pq_free(&stream->obq);
- /* We don't free stream->item. If it is assigned to aob, then
- active_outbound_item_reset() will delete it. Otherwise,
- nghttp2_stream_close() or session_del() will delete it. */
-}
+void nghttp2_stream_free(nghttp2_stream *stream) { (void)stream; }
void nghttp2_stream_shutdown(nghttp2_stream *stream, nghttp2_shut_flag flag) {
stream->shut_flags = (uint8_t)(stream->shut_flags | flag);
}
-/*
- * Returns nonzero if |stream| is active. This function does not take
- * into account its descendants.
- */
-static int stream_active(nghttp2_stream *stream) {
- return stream->item &&
- (stream->flags & NGHTTP2_STREAM_FLAG_DEFERRED_ALL) == 0;
-}
-
-/*
- * Returns nonzero if |stream| or one of its descendants is active
- */
-static int stream_subtree_active(nghttp2_stream *stream) {
- return stream_active(stream) || !nghttp2_pq_empty(&stream->obq);
-}
-
-/*
- * Returns next cycle for |stream|.
- */
-static void stream_next_cycle(nghttp2_stream *stream, uint64_t last_cycle) {
- uint64_t penalty;
-
- penalty = (uint64_t)stream->last_writelen * NGHTTP2_MAX_WEIGHT +
- stream->pending_penalty;
-
- stream->cycle = last_cycle + penalty / (uint32_t)stream->weight;
- stream->pending_penalty = (uint32_t)(penalty % (uint32_t)stream->weight);
-}
-
-static int stream_obq_push(nghttp2_stream *dep_stream, nghttp2_stream *stream) {
- int rv;
-
- for (; dep_stream && !stream->queued;
- stream = dep_stream, dep_stream = dep_stream->dep_prev) {
- stream_next_cycle(stream, dep_stream->descendant_last_cycle);
- stream->seq = dep_stream->descendant_next_seq++;
-
- DEBUGF("stream: stream=%d obq push cycle=%lu\n", stream->stream_id,
- stream->cycle);
-
- DEBUGF("stream: push stream %d to stream %d\n", stream->stream_id,
- dep_stream->stream_id);
-
- rv = nghttp2_pq_push(&dep_stream->obq, &stream->pq_entry);
- if (rv != 0) {
- return rv;
- }
- stream->queued = 1;
- }
-
- return 0;
-}
-
-/*
- * Removes |stream| from parent's obq. If removal of |stream| makes
- * parent's obq empty, and parent is not active, then parent is also
- * removed. This process is repeated recursively.
- */
-static void stream_obq_remove(nghttp2_stream *stream) {
- nghttp2_stream *dep_stream;
-
- dep_stream = stream->dep_prev;
-
- if (!stream->queued) {
- return;
- }
-
- for (; dep_stream; stream = dep_stream, dep_stream = dep_stream->dep_prev) {
- DEBUGF("stream: remove stream %d from stream %d\n", stream->stream_id,
- dep_stream->stream_id);
-
- nghttp2_pq_remove(&dep_stream->obq, &stream->pq_entry);
-
- assert(stream->queued);
-
- stream->queued = 0;
- stream->cycle = 0;
- stream->pending_penalty = 0;
- stream->descendant_last_cycle = 0;
- stream->last_writelen = 0;
-
- if (stream_subtree_active(dep_stream)) {
- return;
- }
- }
-}
-
-/*
- * Moves |stream| from |src|'s obq to |dest|'s obq. Removal from
- * |src|'s obq is just done calling nghttp2_pq_remove(), so it does
- * not recursively remove |src| and ancestors, like
- * stream_obq_remove().
- */
-static int stream_obq_move(nghttp2_stream *dest, nghttp2_stream *src,
- nghttp2_stream *stream) {
- if (!stream->queued) {
- return 0;
- }
-
- DEBUGF("stream: remove stream %d from stream %d (move)\n", stream->stream_id,
- src->stream_id);
-
- nghttp2_pq_remove(&src->obq, &stream->pq_entry);
- stream->queued = 0;
-
- return stream_obq_push(dest, stream);
-}
-
-void nghttp2_stream_reschedule(nghttp2_stream *stream) {
- nghttp2_stream *dep_stream;
-
- assert(stream->queued);
-
- dep_stream = stream->dep_prev;
-
- for (; dep_stream; stream = dep_stream, dep_stream = dep_stream->dep_prev) {
- nghttp2_pq_remove(&dep_stream->obq, &stream->pq_entry);
-
- stream_next_cycle(stream, dep_stream->descendant_last_cycle);
- stream->seq = dep_stream->descendant_next_seq++;
-
- nghttp2_pq_push(&dep_stream->obq, &stream->pq_entry);
-
- DEBUGF("stream: stream=%d obq resched cycle=%lu\n", stream->stream_id,
- stream->cycle);
-
- dep_stream->last_writelen = stream->last_writelen;
- }
-}
-
-void nghttp2_stream_change_weight(nghttp2_stream *stream, int32_t weight) {
- nghttp2_stream *dep_stream;
- uint64_t last_cycle;
- int32_t old_weight;
- uint64_t wlen_penalty;
-
- if (stream->weight == weight) {
- return;
- }
-
- old_weight = stream->weight;
- stream->weight = weight;
-
- dep_stream = stream->dep_prev;
-
- if (!dep_stream) {
- return;
- }
-
- dep_stream->sum_dep_weight += weight - old_weight;
-
- if (!stream->queued) {
- return;
- }
-
- nghttp2_pq_remove(&dep_stream->obq, &stream->pq_entry);
-
- wlen_penalty = (uint64_t)stream->last_writelen * NGHTTP2_MAX_WEIGHT;
-
- /* Compute old stream->pending_penalty we used to calculate
- stream->cycle */
- stream->pending_penalty =
- (uint32_t)((stream->pending_penalty + (uint32_t)old_weight -
- (wlen_penalty % (uint32_t)old_weight)) %
- (uint32_t)old_weight);
-
- last_cycle = stream->cycle -
- (wlen_penalty + stream->pending_penalty) / (uint32_t)old_weight;
-
- /* Now we have old stream->pending_penalty and new stream->weight in
- place */
- stream_next_cycle(stream, last_cycle);
-
- if (dep_stream->descendant_last_cycle - stream->cycle <=
- NGHTTP2_MAX_CYCLE_DISTANCE) {
- stream->cycle = dep_stream->descendant_last_cycle;
- }
-
- /* Continue to use same stream->seq */
-
- nghttp2_pq_push(&dep_stream->obq, &stream->pq_entry);
-
- DEBUGF("stream: stream=%d obq resched cycle=%lu\n", stream->stream_id,
- stream->cycle);
-}
-
-static nghttp2_stream *stream_last_sib(nghttp2_stream *stream) {
- for (; stream->sib_next; stream = stream->sib_next)
- ;
-
- return stream;
-}
-
-int32_t nghttp2_stream_dep_distributed_weight(nghttp2_stream *stream,
- int32_t weight) {
- weight = stream->weight * weight / stream->sum_dep_weight;
-
- return nghttp2_max_int32(1, weight);
-}
-
-#ifdef STREAM_DEP_DEBUG
-
-static void ensure_inactive(nghttp2_stream *stream) {
- nghttp2_stream *si;
-
- if (stream->queued) {
- fprintf(stderr, "stream(%p)=%d, stream->queued = 1; want 0\n", stream,
- stream->stream_id);
- assert(0);
- }
-
- if (stream_active(stream)) {
- fprintf(stderr, "stream(%p)=%d, stream_active(stream) = 1; want 0\n",
- stream, stream->stream_id);
- assert(0);
- }
-
- if (!nghttp2_pq_empty(&stream->obq)) {
- fprintf(stderr, "stream(%p)=%d, nghttp2_pq_size() = %zu; want 0\n", stream,
- stream->stream_id, nghttp2_pq_size(&stream->obq));
- assert(0);
- }
-
- for (si = stream->dep_next; si; si = si->sib_next) {
- ensure_inactive(si);
- }
-}
-
-static void check_queued(nghttp2_stream *stream) {
- nghttp2_stream *si;
- int queued;
-
- if (stream->queued) {
- if (!stream_subtree_active(stream)) {
- fprintf(stderr,
- "stream(%p)=%d, stream->queued == 1, but "
- "stream_active() == %d and nghttp2_pq_size(&stream->obq) = %zu\n",
- stream, stream->stream_id, stream_active(stream),
- nghttp2_pq_size(&stream->obq));
- assert(0);
- }
- if (!stream_active(stream)) {
- queued = 0;
- for (si = stream->dep_next; si; si = si->sib_next) {
- if (si->queued) {
- ++queued;
- }
- }
- if (queued == 0) {
- fprintf(stderr,
- "stream(%p)=%d, stream->queued == 1, and "
- "!stream_active(), but no descendants is queued\n",
- stream, stream->stream_id);
- assert(0);
- }
- }
-
- for (si = stream->dep_next; si; si = si->sib_next) {
- check_queued(si);
- }
- } else {
- if (stream_active(stream) || !nghttp2_pq_empty(&stream->obq)) {
- fprintf(stderr,
- "stream(%p) = %d, stream->queued == 0, but "
- "stream_active(stream) == %d and "
- "nghttp2_pq_size(&stream->obq) = %zu\n",
- stream, stream->stream_id, stream_active(stream),
- nghttp2_pq_size(&stream->obq));
- assert(0);
- }
- for (si = stream->dep_next; si; si = si->sib_next) {
- ensure_inactive(si);
- }
- }
-}
-
-static void check_sum_dep(nghttp2_stream *stream) {
- nghttp2_stream *si;
- int32_t n = 0;
- for (si = stream->dep_next; si; si = si->sib_next) {
- n += si->weight;
- }
- if (n != stream->sum_dep_weight) {
- fprintf(stderr, "stream(%p)=%d, sum_dep_weight = %d; want %d\n", stream,
- stream->stream_id, n, stream->sum_dep_weight);
- assert(0);
- }
- for (si = stream->dep_next; si; si = si->sib_next) {
- check_sum_dep(si);
- }
-}
-
-static void check_dep_prev(nghttp2_stream *stream) {
- nghttp2_stream *si;
- for (si = stream->dep_next; si; si = si->sib_next) {
- if (si->dep_prev != stream) {
- fprintf(stderr, "si->dep_prev = %p; want %p\n", si->dep_prev, stream);
- assert(0);
- }
- check_dep_prev(si);
- }
-}
-
-#endif /* STREAM_DEP_DEBUG */
-
-#ifdef STREAM_DEP_DEBUG
-static void validate_tree(nghttp2_stream *stream) {
- nghttp2_stream *si;
-
- if (!stream) {
- return;
- }
-
- for (; stream->dep_prev; stream = stream->dep_prev)
- ;
-
- assert(stream->stream_id == 0);
- assert(!stream->queued);
-
- fprintf(stderr, "checking...\n");
- if (nghttp2_pq_empty(&stream->obq)) {
- fprintf(stderr, "root obq empty\n");
- for (si = stream->dep_next; si; si = si->sib_next) {
- ensure_inactive(si);
- }
- } else {
- for (si = stream->dep_next; si; si = si->sib_next) {
- check_queued(si);
- }
- }
-
- check_sum_dep(stream);
- check_dep_prev(stream);
-}
-#else /* !STREAM_DEP_DEBUG */
-static void validate_tree(nghttp2_stream *stream) { (void)stream; }
-#endif /* !STREAM_DEP_DEBUG*/
-
-static int stream_update_dep_on_attach_item(nghttp2_stream *stream) {
- int rv;
-
- rv = stream_obq_push(stream->dep_prev, stream);
- if (rv != 0) {
- return rv;
- }
-
- validate_tree(stream);
- return 0;
-}
-
-static void stream_update_dep_on_detach_item(nghttp2_stream *stream) {
- if (nghttp2_pq_empty(&stream->obq)) {
- stream_obq_remove(stream);
- }
-
- validate_tree(stream);
-}
-
-int nghttp2_stream_attach_item(nghttp2_stream *stream,
- nghttp2_outbound_item *item) {
- int rv;
-
+void nghttp2_stream_attach_item(nghttp2_stream *stream,
+ nghttp2_outbound_item *item) {
assert((stream->flags & NGHTTP2_STREAM_FLAG_DEFERRED_ALL) == 0);
assert(stream->item == NULL);
DEBUGF("stream: stream=%d attach item=%p\n", stream->stream_id, item);
stream->item = item;
-
- if (stream->flags & NGHTTP2_STREAM_FLAG_NO_RFC7540_PRIORITIES) {
- return 0;
- }
-
- rv = stream_update_dep_on_attach_item(stream);
- if (rv != 0) {
- /* This may relave stream->queued == 1, but stream->item == NULL.
- But only consequence of this error is fatal one, and session
- destruction. In that execution path, these inconsistency does
- not matter. */
- stream->item = NULL;
- return rv;
- }
-
- return 0;
}
void nghttp2_stream_detach_item(nghttp2_stream *stream) {
@@ -506,12 +86,6 @@ void nghttp2_stream_detach_item(nghttp2_stream *stream) {
stream->item = NULL;
stream->flags = (uint8_t)(stream->flags & ~NGHTTP2_STREAM_FLAG_DEFERRED_ALL);
-
- if (stream->flags & NGHTTP2_STREAM_FLAG_NO_RFC7540_PRIORITIES) {
- return;
- }
-
- stream_update_dep_on_detach_item(stream);
}
void nghttp2_stream_defer_item(nghttp2_stream *stream, uint8_t flags) {
@@ -521,31 +95,16 @@ void nghttp2_stream_defer_item(nghttp2_stream *stream, uint8_t flags) {
stream->item, flags);
stream->flags |= flags;
-
- if (stream->flags & NGHTTP2_STREAM_FLAG_NO_RFC7540_PRIORITIES) {
- return;
- }
-
- stream_update_dep_on_detach_item(stream);
}
-int nghttp2_stream_resume_deferred_item(nghttp2_stream *stream, uint8_t flags) {
+void nghttp2_stream_resume_deferred_item(nghttp2_stream *stream,
+ uint8_t flags) {
assert(stream->item);
DEBUGF("stream: stream=%d resume item=%p flags=%02x\n", stream->stream_id,
stream->item, flags);
stream->flags = (uint8_t)(stream->flags & ~flags);
-
- if (stream->flags & NGHTTP2_STREAM_FLAG_DEFERRED_ALL) {
- return 0;
- }
-
- if (stream->flags & NGHTTP2_STREAM_FLAG_NO_RFC7540_PRIORITIES) {
- return 0;
- }
-
- return stream_update_dep_on_attach_item(stream);
}
int nghttp2_stream_check_deferred_item(nghttp2_stream *stream) {
@@ -591,373 +150,11 @@ void nghttp2_stream_promise_fulfilled(nghttp2_stream *stream) {
stream->flags = (uint8_t)(stream->flags & ~NGHTTP2_STREAM_FLAG_PUSH);
}
-int nghttp2_stream_dep_find_ancestor(nghttp2_stream *stream,
- nghttp2_stream *target) {
- for (; stream; stream = stream->dep_prev) {
- if (stream == target) {
- return 1;
- }
- }
- return 0;
-}
-
-int nghttp2_stream_dep_insert(nghttp2_stream *dep_stream,
- nghttp2_stream *stream) {
- nghttp2_stream *si;
- int rv;
-
- DEBUGF("stream: dep_insert dep_stream(%p)=%d, stream(%p)=%d\n", dep_stream,
- dep_stream->stream_id, stream, stream->stream_id);
-
- stream->sum_dep_weight = dep_stream->sum_dep_weight;
- dep_stream->sum_dep_weight = stream->weight;
-
- if (dep_stream->dep_next) {
- for (si = dep_stream->dep_next; si; si = si->sib_next) {
- si->dep_prev = stream;
- if (si->queued) {
- rv = stream_obq_move(stream, dep_stream, si);
- if (rv != 0) {
- return rv;
- }
- }
- }
-
- if (stream_subtree_active(stream)) {
- rv = stream_obq_push(dep_stream, stream);
- if (rv != 0) {
- return rv;
- }
- }
-
- stream->dep_next = dep_stream->dep_next;
- }
-
- dep_stream->dep_next = stream;
- stream->dep_prev = dep_stream;
-
- validate_tree(stream);
-
- return 0;
-}
-
-static void set_dep_prev(nghttp2_stream *stream, nghttp2_stream *dep) {
- for (; stream; stream = stream->sib_next) {
- stream->dep_prev = dep;
- }
-}
-
-static void link_dep(nghttp2_stream *dep_stream, nghttp2_stream *stream) {
- dep_stream->dep_next = stream;
- if (stream) {
- stream->dep_prev = dep_stream;
- }
-}
-
-static void link_sib(nghttp2_stream *a, nghttp2_stream *b) {
- a->sib_next = b;
- if (b) {
- b->sib_prev = a;
- }
-}
-
-static void insert_link_dep(nghttp2_stream *dep_stream,
- nghttp2_stream *stream) {
- nghttp2_stream *sib_next;
-
- assert(stream->sib_prev == NULL);
-
- sib_next = dep_stream->dep_next;
-
- link_sib(stream, sib_next);
-
- link_dep(dep_stream, stream);
-}
-
-static void unlink_sib(nghttp2_stream *stream) {
- nghttp2_stream *prev, *next, *dep_next;
-
- prev = stream->sib_prev;
- dep_next = stream->dep_next;
-
- assert(prev);
-
- if (dep_next) {
- /*
- * prev--stream(--sib_next--...)
- * |
- * dep_next
- */
-
- link_sib(prev, dep_next);
-
- set_dep_prev(dep_next, stream->dep_prev);
-
- if (stream->sib_next) {
- link_sib(stream_last_sib(dep_next), stream->sib_next);
- }
- } else {
- /*
- * prev--stream(--sib_next--...)
- */
- next = stream->sib_next;
-
- prev->sib_next = next;
-
- if (next) {
- next->sib_prev = prev;
- }
- }
-}
-
-static void unlink_dep(nghttp2_stream *stream) {
- nghttp2_stream *prev, *next, *dep_next;
-
- prev = stream->dep_prev;
- dep_next = stream->dep_next;
-
- assert(prev);
-
- if (dep_next) {
- /*
- * prev
- * |
- * stream(--sib_next--...)
- * |
- * dep_next
- */
- link_dep(prev, dep_next);
-
- set_dep_prev(dep_next, stream->dep_prev);
-
- if (stream->sib_next) {
- link_sib(stream_last_sib(dep_next), stream->sib_next);
- }
-
- } else if (stream->sib_next) {
- /*
- * prev
- * |
- * stream--sib_next
- */
- next = stream->sib_next;
-
- next->sib_prev = NULL;
-
- link_dep(prev, next);
- } else {
- prev->dep_next = NULL;
- }
-}
-
-void nghttp2_stream_dep_add(nghttp2_stream *dep_stream,
- nghttp2_stream *stream) {
- DEBUGF("stream: dep_add dep_stream(%p)=%d, stream(%p)=%d\n", dep_stream,
- dep_stream->stream_id, stream, stream->stream_id);
-
- dep_stream->sum_dep_weight += stream->weight;
-
- if (dep_stream->dep_next == NULL) {
- link_dep(dep_stream, stream);
- } else {
- insert_link_dep(dep_stream, stream);
- }
-
- validate_tree(stream);
-}
-
-int nghttp2_stream_dep_remove(nghttp2_stream *stream) {
- nghttp2_stream *dep_prev, *si;
- int32_t sum_dep_weight_delta;
- int rv;
-
- DEBUGF("stream: dep_remove stream(%p)=%d\n", stream, stream->stream_id);
-
- /* Distribute weight of |stream| to direct descendants */
- sum_dep_weight_delta = -stream->weight;
-
- for (si = stream->dep_next; si; si = si->sib_next) {
- si->weight = nghttp2_stream_dep_distributed_weight(stream, si->weight);
-
- sum_dep_weight_delta += si->weight;
-
- if (si->queued) {
- rv = stream_obq_move(stream->dep_prev, stream, si);
- if (rv != 0) {
- return rv;
- }
- }
- }
-
- assert(stream->dep_prev);
-
- dep_prev = stream->dep_prev;
-
- dep_prev->sum_dep_weight += sum_dep_weight_delta;
-
- if (stream->queued) {
- stream_obq_remove(stream);
- }
-
- if (stream->sib_prev) {
- unlink_sib(stream);
- } else {
- unlink_dep(stream);
- }
-
- stream->sum_dep_weight = 0;
-
- stream->dep_prev = NULL;
- stream->dep_next = NULL;
- stream->sib_prev = NULL;
- stream->sib_next = NULL;
-
- validate_tree(dep_prev);
-
- return 0;
-}
-
-int nghttp2_stream_dep_insert_subtree(nghttp2_stream *dep_stream,
- nghttp2_stream *stream) {
- nghttp2_stream *last_sib;
- nghttp2_stream *dep_next;
- nghttp2_stream *si;
- int rv;
-
- DEBUGF("stream: dep_insert_subtree dep_stream(%p)=%d stream(%p)=%d\n",
- dep_stream, dep_stream->stream_id, stream, stream->stream_id);
-
- stream->sum_dep_weight += dep_stream->sum_dep_weight;
- dep_stream->sum_dep_weight = stream->weight;
-
- if (dep_stream->dep_next) {
- dep_next = dep_stream->dep_next;
-
- link_dep(dep_stream, stream);
-
- if (stream->dep_next) {
- last_sib = stream_last_sib(stream->dep_next);
-
- link_sib(last_sib, dep_next);
- } else {
- link_dep(stream, dep_next);
- }
-
- for (si = dep_next; si; si = si->sib_next) {
- si->dep_prev = stream;
- if (si->queued) {
- rv = stream_obq_move(stream, dep_stream, si);
- if (rv != 0) {
- return rv;
- }
- }
- }
- } else {
- link_dep(dep_stream, stream);
- }
-
- if (stream_subtree_active(stream)) {
- rv = stream_obq_push(dep_stream, stream);
- if (rv != 0) {
- return rv;
- }
- }
-
- validate_tree(dep_stream);
-
- return 0;
-}
-
-int nghttp2_stream_dep_add_subtree(nghttp2_stream *dep_stream,
- nghttp2_stream *stream) {
- int rv;
-
- DEBUGF("stream: dep_add_subtree dep_stream(%p)=%d stream(%p)=%d\n",
- dep_stream, dep_stream->stream_id, stream, stream->stream_id);
-
- dep_stream->sum_dep_weight += stream->weight;
-
- if (dep_stream->dep_next) {
- insert_link_dep(dep_stream, stream);
- } else {
- link_dep(dep_stream, stream);
- }
-
- if (stream_subtree_active(stream)) {
- rv = stream_obq_push(dep_stream, stream);
- if (rv != 0) {
- return rv;
- }
- }
-
- validate_tree(dep_stream);
-
- return 0;
-}
-
-void nghttp2_stream_dep_remove_subtree(nghttp2_stream *stream) {
- nghttp2_stream *next, *dep_prev;
-
- DEBUGF("stream: dep_remove_subtree stream(%p)=%d\n", stream,
- stream->stream_id);
-
- assert(stream->dep_prev);
-
- dep_prev = stream->dep_prev;
-
- if (stream->sib_prev) {
- link_sib(stream->sib_prev, stream->sib_next);
- } else {
- next = stream->sib_next;
-
- link_dep(dep_prev, next);
-
- if (next) {
- next->sib_prev = NULL;
- }
- }
-
- dep_prev->sum_dep_weight -= stream->weight;
-
- if (stream->queued) {
- stream_obq_remove(stream);
- }
-
- validate_tree(dep_prev);
-
- stream->sib_prev = NULL;
- stream->sib_next = NULL;
- stream->dep_prev = NULL;
-}
-
-int nghttp2_stream_in_dep_tree(nghttp2_stream *stream) {
- return stream->dep_prev || stream->dep_next || stream->sib_prev ||
- stream->sib_next;
-}
-
-nghttp2_outbound_item *
-nghttp2_stream_next_outbound_item(nghttp2_stream *stream) {
- nghttp2_pq_entry *ent;
- nghttp2_stream *si;
-
- for (;;) {
- if (stream_active(stream)) {
- /* Update ascendant's descendant_last_cycle here, so that we can
- assure that new stream is scheduled based on it. */
- for (si = stream; si->dep_prev; si = si->dep_prev) {
- si->dep_prev->descendant_last_cycle = si->cycle;
- }
- return stream->item;
- }
- ent = nghttp2_pq_top(&stream->obq);
- if (!ent) {
- return NULL;
- }
- stream = nghttp2_struct_of(ent, nghttp2_stream, pq_entry);
+nghttp2_stream_proto_state nghttp2_stream_get_state(nghttp2_stream *stream) {
+ if (stream == &root) {
+ return NGHTTP2_STREAM_STATE_IDLE;
}
-}
-nghttp2_stream_proto_state nghttp2_stream_get_state(nghttp2_stream *stream) {
if (stream->flags & NGHTTP2_STREAM_FLAG_CLOSED) {
return NGHTTP2_STREAM_STATE_CLOSED;
}
@@ -988,27 +185,39 @@ nghttp2_stream_proto_state nghttp2_stream_get_state(nghttp2_stream *stream) {
}
nghttp2_stream *nghttp2_stream_get_parent(nghttp2_stream *stream) {
- return stream->dep_prev;
+ (void)stream;
+
+ return NULL;
}
nghttp2_stream *nghttp2_stream_get_next_sibling(nghttp2_stream *stream) {
- return stream->sib_next;
+ (void)stream;
+
+ return NULL;
}
nghttp2_stream *nghttp2_stream_get_previous_sibling(nghttp2_stream *stream) {
- return stream->sib_prev;
+ (void)stream;
+
+ return NULL;
}
nghttp2_stream *nghttp2_stream_get_first_child(nghttp2_stream *stream) {
- return stream->dep_next;
+ (void)stream;
+
+ return NULL;
}
int32_t nghttp2_stream_get_weight(nghttp2_stream *stream) {
- return stream->weight;
+ (void)stream;
+
+ return NGHTTP2_DEFAULT_WEIGHT;
}
int32_t nghttp2_stream_get_sum_dependency_weight(nghttp2_stream *stream) {
- return stream->sum_dep_weight;
+ (void)stream;
+
+ return 0;
}
int32_t nghttp2_stream_get_stream_id(nghttp2_stream *stream) {
diff --git a/deps/nghttp2/lib/nghttp2_stream.h b/deps/nghttp2/lib/nghttp2_stream.h
index 28add165469d94..e73cd283b1dca4 100644
--- a/deps/nghttp2/lib/nghttp2_stream.h
+++ b/deps/nghttp2/lib/nghttp2_stream.h
@@ -91,9 +91,6 @@ typedef enum {
/* bitwise OR of NGHTTP2_STREAM_FLAG_DEFERRED_FLOW_CONTROL and
NGHTTP2_STREAM_FLAG_DEFERRED_USER. */
NGHTTP2_STREAM_FLAG_DEFERRED_ALL = 0x0c,
- /* Indicates that this stream is not subject to RFC7540
- priorities scheme. */
- NGHTTP2_STREAM_FLAG_NO_RFC7540_PRIORITIES = 0x10,
/* Ignore client RFC 9218 priority signal. */
NGHTTP2_STREAM_FLAG_IGNORE_CLIENT_PRIORITIES = 0x20,
/* Indicates that RFC 9113 leading and trailing white spaces
@@ -146,39 +143,18 @@ typedef enum {
} nghttp2_http_flag;
struct nghttp2_stream {
- /* Entry for dep_prev->obq */
+ nghttp2_stream_state state;
nghttp2_pq_entry pq_entry;
- /* Priority Queue storing direct descendant (nghttp2_stream). Only
- streams which itself has some data to send, or has a descendant
- which has some data to sent. */
- nghttp2_pq obq;
/* Content-Length of request/response body. -1 if unknown. */
int64_t content_length;
/* Received body so far */
int64_t recv_content_length;
- /* Base last_cycle for direct descendent streams. */
- uint64_t descendant_last_cycle;
/* Next scheduled time to sent item */
uint64_t cycle;
- /* Next seq used for direct descendant streams */
- uint64_t descendant_next_seq;
/* Secondary key for prioritization to break a tie for cycle. This
value is monotonically increased for single parent stream. */
uint64_t seq;
- /* pointers to form dependency tree. If multiple streams depend on
- a stream, only one stream (left most) has non-NULL dep_prev which
- points to the stream it depends on. The remaining streams are
- linked using sib_prev and sib_next. The stream which has
- non-NULL dep_prev always NULL sib_prev. The right most stream
- has NULL sib_next. If this stream is a root of dependency tree,
- dep_prev and sib_prev are NULL. */
- nghttp2_stream *dep_prev, *dep_next;
- nghttp2_stream *sib_prev, *sib_next;
- /* When stream is kept after closure, it may be kept in doubly
- linked list pointed by nghttp2_session closed_stream_head.
- closed_next points to the next stream object if it is the element
- of the list. */
- nghttp2_stream *closed_prev, *closed_next;
+ nghttp2_stream *closed_next;
/* The arbitrary data provided by user for this stream. */
void *stream_user_data;
/* Item to send */
@@ -205,13 +181,8 @@ struct nghttp2_stream {
NGHTTP2_INITIAL_WINDOW_SIZE and could be increased/decreased by
submitting WINDOW_UPDATE. See nghttp2_submit_window_update(). */
int32_t local_window_size;
- /* weight of this stream */
- int32_t weight;
/* This is unpaid penalty (offset) when calculating cycle. */
uint32_t pending_penalty;
- /* sum of weight of direct descendants */
- int32_t sum_dep_weight;
- nghttp2_stream_state state;
/* status code from remote server */
int16_t status_code;
/* Bitwise OR of zero or more nghttp2_http_flag values */
@@ -239,9 +210,9 @@ struct nghttp2_stream {
void nghttp2_stream_init(nghttp2_stream *stream, int32_t stream_id,
uint8_t flags, nghttp2_stream_state initial_state,
- int32_t weight, int32_t remote_initial_window_size,
+ int32_t remote_initial_window_size,
int32_t local_initial_window_size,
- void *stream_user_data, nghttp2_mem *mem);
+ void *stream_user_data);
void nghttp2_stream_free(nghttp2_stream *stream);
@@ -267,14 +238,8 @@ void nghttp2_stream_defer_item(nghttp2_stream *stream, uint8_t flags);
* NGHTTP2_STREAM_FLAG_DEFERRED_FLOW_CONTROL and given masks are
* cleared if they are set. So even if this function is called, if
* one of flag is still set, data does not become active.
- *
- * This function returns 0 if it succeeds, or one of the following
- * negative error codes:
- *
- * NGHTTP2_ERR_NOMEM
- * Out of memory
*/
-int nghttp2_stream_resume_deferred_item(nghttp2_stream *stream, uint8_t flags);
+void nghttp2_stream_resume_deferred_item(nghttp2_stream *stream, uint8_t flags);
/*
* Returns nonzero if item is deferred by whatever reason.
@@ -317,57 +282,11 @@ int nghttp2_stream_update_local_initial_window_size(
*/
void nghttp2_stream_promise_fulfilled(nghttp2_stream *stream);
-/*
- * Returns nonzero if |target| is an ancestor of |stream|.
- */
-int nghttp2_stream_dep_find_ancestor(nghttp2_stream *stream,
- nghttp2_stream *target);
-
-/*
- * Computes distributed weight of a stream of the |weight| under the
- * |stream| if |stream| is removed from a dependency tree.
- */
-int32_t nghttp2_stream_dep_distributed_weight(nghttp2_stream *stream,
- int32_t weight);
-
-/*
- * Makes the |stream| depend on the |dep_stream|. This dependency is
- * exclusive. All existing direct descendants of |dep_stream| become
- * the descendants of the |stream|. This function assumes
- * |stream->item| is NULL.
- *
- * This function returns 0 if it succeeds, or one of the following
- * negative error codes:
- *
- * NGHTTP2_ERR_NOMEM
- * Out of memory
- */
-int nghttp2_stream_dep_insert(nghttp2_stream *dep_stream,
- nghttp2_stream *stream);
-
-/*
- * Makes the |stream| depend on the |dep_stream|. This dependency is
- * not exclusive. This function assumes |stream->item| is NULL.
- */
-void nghttp2_stream_dep_add(nghttp2_stream *dep_stream, nghttp2_stream *stream);
-
-/*
- * Removes the |stream| from the current dependency tree. This
- * function assumes |stream->item| is NULL.
- */
-int nghttp2_stream_dep_remove(nghttp2_stream *stream);
-
/*
* Attaches |item| to |stream|.
- *
- * This function returns 0 if it succeeds, or one of the following
- * negative error codes:
- *
- * NGHTTP2_ERR_NOMEM
- * Out of memory
*/
-int nghttp2_stream_attach_item(nghttp2_stream *stream,
- nghttp2_outbound_item *item);
+void nghttp2_stream_attach_item(nghttp2_stream *stream,
+ nghttp2_outbound_item *item);
/*
* Detaches |stream->item|. This function does not free
@@ -375,66 +294,4 @@ int nghttp2_stream_attach_item(nghttp2_stream *stream,
*/
void nghttp2_stream_detach_item(nghttp2_stream *stream);
-/*
- * Makes the |stream| depend on the |dep_stream|. This dependency is
- * exclusive.
- *
- * This function returns 0 if it succeeds, or one of the following
- * negative error codes:
- *
- * NGHTTP2_ERR_NOMEM
- * Out of memory
- */
-int nghttp2_stream_dep_insert_subtree(nghttp2_stream *dep_stream,
- nghttp2_stream *stream);
-
-/*
- * Makes the |stream| depend on the |dep_stream|. This dependency is
- * not exclusive.
- *
- * This function returns 0 if it succeeds, or one of the following
- * negative error codes:
- *
- * NGHTTP2_ERR_NOMEM
- * Out of memory
- */
-int nghttp2_stream_dep_add_subtree(nghttp2_stream *dep_stream,
- nghttp2_stream *stream);
-
-/*
- * Removes subtree whose root stream is |stream|. The
- * effective_weight of streams in removed subtree is not updated.
- *
- * This function returns 0 if it succeeds, or one of the following
- * negative error codes:
- *
- * NGHTTP2_ERR_NOMEM
- * Out of memory
- */
-void nghttp2_stream_dep_remove_subtree(nghttp2_stream *stream);
-
-/*
- * Returns nonzero if |stream| is in any dependency tree.
- */
-int nghttp2_stream_in_dep_tree(nghttp2_stream *stream);
-
-/*
- * Schedules transmission of |stream|'s item, assuming stream->item is
- * attached, and stream->last_writelen was updated.
- */
-void nghttp2_stream_reschedule(nghttp2_stream *stream);
-
-/*
- * Changes |stream|'s weight to |weight|. If |stream| is queued, it
- * will be rescheduled based on new weight.
- */
-void nghttp2_stream_change_weight(nghttp2_stream *stream, int32_t weight);
-
-/*
- * Returns a stream which has highest priority, updating
- * descendant_last_cycle of selected stream's ancestors.
- */
-nghttp2_outbound_item *
-nghttp2_stream_next_outbound_item(nghttp2_stream *stream);
-
#endif /* NGHTTP2_STREAM */
diff --git a/deps/nghttp2/lib/nghttp2_submit.c b/deps/nghttp2/lib/nghttp2_submit.c
index 81c1ab7046bc33..d481aebde221fd 100644
--- a/deps/nghttp2/lib/nghttp2_submit.c
+++ b/deps/nghttp2/lib/nghttp2_submit.c
@@ -32,42 +32,12 @@
#include "nghttp2_helper.h"
#include "nghttp2_priority_spec.h"
-/*
- * Detects the dependency error, that is stream attempted to depend on
- * itself. If |stream_id| is -1, we use session->next_stream_id as
- * stream ID.
- *
- * This function returns 0 if it succeeds, or one of the following
- * error codes:
- *
- * NGHTTP2_ERR_INVALID_ARGUMENT
- * Stream attempted to depend on itself.
- */
-static int detect_self_dependency(nghttp2_session *session, int32_t stream_id,
- const nghttp2_priority_spec *pri_spec) {
- assert(pri_spec);
-
- if (stream_id == -1) {
- if ((int32_t)session->next_stream_id == pri_spec->stream_id) {
- return NGHTTP2_ERR_INVALID_ARGUMENT;
- }
- return 0;
- }
-
- if (stream_id == pri_spec->stream_id) {
- return NGHTTP2_ERR_INVALID_ARGUMENT;
- }
-
- return 0;
-}
-
/* This function takes ownership of |nva_copy|. Regardless of the
return value, the caller must not free |nva_copy| after this
function returns. */
static int32_t submit_headers_shared(nghttp2_session *session, uint8_t flags,
- int32_t stream_id,
- const nghttp2_priority_spec *pri_spec,
- nghttp2_nv *nva_copy, size_t nvlen,
+ int32_t stream_id, nghttp2_nv *nva_copy,
+ size_t nvlen,
const nghttp2_data_provider_wrap *dpw,
void *stream_user_data) {
int rv;
@@ -114,8 +84,8 @@ static int32_t submit_headers_shared(nghttp2_session *session, uint8_t flags,
frame = &item->frame;
- nghttp2_frame_headers_init(&frame->headers, flags_copy, stream_id, hcat,
- pri_spec, nva_copy, nvlen);
+ nghttp2_frame_headers_init(&frame->headers, flags_copy, stream_id, hcat, NULL,
+ nva_copy, nvlen);
rv = nghttp2_session_add_item(session, item);
@@ -141,31 +111,22 @@ static int32_t submit_headers_shared(nghttp2_session *session, uint8_t flags,
static int32_t submit_headers_shared_nva(nghttp2_session *session,
uint8_t flags, int32_t stream_id,
- const nghttp2_priority_spec *pri_spec,
const nghttp2_nv *nva, size_t nvlen,
const nghttp2_data_provider_wrap *dpw,
void *stream_user_data) {
int rv;
nghttp2_nv *nva_copy;
- nghttp2_priority_spec copy_pri_spec;
nghttp2_mem *mem;
mem = &session->mem;
- if (pri_spec) {
- copy_pri_spec = *pri_spec;
- nghttp2_priority_spec_normalize_weight(©_pri_spec);
- } else {
- nghttp2_priority_spec_default_init(©_pri_spec);
- }
-
rv = nghttp2_nv_array_copy(&nva_copy, nva, nvlen, mem);
if (rv < 0) {
return rv;
}
- return submit_headers_shared(session, flags, stream_id, ©_pri_spec,
- nva_copy, nvlen, dpw, stream_user_data);
+ return submit_headers_shared(session, flags, stream_id, nva_copy, nvlen, dpw,
+ stream_user_data);
}
int nghttp2_submit_trailer(nghttp2_session *session, int32_t stream_id,
@@ -174,8 +135,8 @@ int nghttp2_submit_trailer(nghttp2_session *session, int32_t stream_id,
return NGHTTP2_ERR_INVALID_ARGUMENT;
}
- return (int)submit_headers_shared_nva(
- session, NGHTTP2_FLAG_END_STREAM, stream_id, NULL, nva, nvlen, NULL, NULL);
+ return (int)submit_headers_shared_nva(session, NGHTTP2_FLAG_END_STREAM,
+ stream_id, nva, nvlen, NULL, NULL);
}
int32_t nghttp2_submit_headers(nghttp2_session *session, uint8_t flags,
@@ -183,7 +144,7 @@ int32_t nghttp2_submit_headers(nghttp2_session *session, uint8_t flags,
const nghttp2_priority_spec *pri_spec,
const nghttp2_nv *nva, size_t nvlen,
void *stream_user_data) {
- int rv;
+ (void)pri_spec;
if (stream_id == -1) {
if (session->server) {
@@ -195,20 +156,8 @@ int32_t nghttp2_submit_headers(nghttp2_session *session, uint8_t flags,
flags &= NGHTTP2_FLAG_END_STREAM;
- if (pri_spec && !nghttp2_priority_spec_check_default(pri_spec) &&
- session->remote_settings.no_rfc7540_priorities != 1) {
- rv = detect_self_dependency(session, stream_id, pri_spec);
- if (rv != 0) {
- return rv;
- }
-
- flags |= NGHTTP2_FLAG_PRIORITY;
- } else {
- pri_spec = NULL;
- }
-
- return submit_headers_shared_nva(session, flags, stream_id, pri_spec, nva,
- nvlen, NULL, stream_user_data);
+ return submit_headers_shared_nva(session, flags, stream_id, nva, nvlen, NULL,
+ stream_user_data);
}
int nghttp2_submit_ping(nghttp2_session *session, uint8_t flags,
@@ -220,51 +169,10 @@ int nghttp2_submit_ping(nghttp2_session *session, uint8_t flags,
int nghttp2_submit_priority(nghttp2_session *session, uint8_t flags,
int32_t stream_id,
const nghttp2_priority_spec *pri_spec) {
- int rv;
- nghttp2_outbound_item *item;
- nghttp2_frame *frame;
- nghttp2_priority_spec copy_pri_spec;
- nghttp2_mem *mem;
+ (void)session;
(void)flags;
-
- mem = &session->mem;
-
- if (session->remote_settings.no_rfc7540_priorities == 1) {
- return 0;
- }
-
- if (stream_id == 0 || pri_spec == NULL) {
- return NGHTTP2_ERR_INVALID_ARGUMENT;
- }
-
- if (stream_id == pri_spec->stream_id) {
- return NGHTTP2_ERR_INVALID_ARGUMENT;
- }
-
- copy_pri_spec = *pri_spec;
-
- nghttp2_priority_spec_normalize_weight(©_pri_spec);
-
- item = nghttp2_mem_malloc(mem, sizeof(nghttp2_outbound_item));
-
- if (item == NULL) {
- return NGHTTP2_ERR_NOMEM;
- }
-
- nghttp2_outbound_item_init(item);
-
- frame = &item->frame;
-
- nghttp2_frame_priority_init(&frame->priority, stream_id, ©_pri_spec);
-
- rv = nghttp2_session_add_item(session, item);
-
- if (rv != 0) {
- nghttp2_frame_priority_free(&frame->priority);
- nghttp2_mem_free(mem, item);
-
- return rv;
- }
+ (void)stream_id;
+ (void)pri_spec;
return 0;
}
@@ -738,46 +646,29 @@ int nghttp2_submit_priority_update(nghttp2_session *session, uint8_t flags,
return rv;
}
-static uint8_t set_request_flags(const nghttp2_priority_spec *pri_spec,
- const nghttp2_data_provider_wrap *dpw) {
+static uint8_t set_request_flags(const nghttp2_data_provider_wrap *dpw) {
uint8_t flags = NGHTTP2_FLAG_NONE;
if (dpw == NULL || dpw->data_prd.read_callback == NULL) {
flags |= NGHTTP2_FLAG_END_STREAM;
}
- if (pri_spec) {
- flags |= NGHTTP2_FLAG_PRIORITY;
- }
-
return flags;
}
static int32_t submit_request_shared(nghttp2_session *session,
- const nghttp2_priority_spec *pri_spec,
const nghttp2_nv *nva, size_t nvlen,
const nghttp2_data_provider_wrap *dpw,
void *stream_user_data) {
uint8_t flags;
- int rv;
if (session->server) {
return NGHTTP2_ERR_PROTO;
}
- if (pri_spec && !nghttp2_priority_spec_check_default(pri_spec) &&
- session->remote_settings.no_rfc7540_priorities != 1) {
- rv = detect_self_dependency(session, -1, pri_spec);
- if (rv != 0) {
- return rv;
- }
- } else {
- pri_spec = NULL;
- }
-
- flags = set_request_flags(pri_spec, dpw);
+ flags = set_request_flags(dpw);
- return submit_headers_shared_nva(session, flags, -1, pri_spec, nva, nvlen,
- dpw, stream_user_data);
+ return submit_headers_shared_nva(session, flags, -1, nva, nvlen, dpw,
+ stream_user_data);
}
int32_t nghttp2_submit_request(nghttp2_session *session,
@@ -786,8 +677,9 @@ int32_t nghttp2_submit_request(nghttp2_session *session,
const nghttp2_data_provider *data_prd,
void *stream_user_data) {
nghttp2_data_provider_wrap dpw;
+ (void)pri_spec;
- return submit_request_shared(session, pri_spec, nva, nvlen,
+ return submit_request_shared(session, nva, nvlen,
nghttp2_data_provider_wrap_v1(&dpw, data_prd),
stream_user_data);
}
@@ -798,8 +690,9 @@ int32_t nghttp2_submit_request2(nghttp2_session *session,
const nghttp2_data_provider2 *data_prd,
void *stream_user_data) {
nghttp2_data_provider_wrap dpw;
+ (void)pri_spec;
- return submit_request_shared(session, pri_spec, nva, nvlen,
+ return submit_request_shared(session, nva, nvlen,
nghttp2_data_provider_wrap_v2(&dpw, data_prd),
stream_user_data);
}
@@ -826,8 +719,8 @@ static int submit_response_shared(nghttp2_session *session, int32_t stream_id,
}
flags = set_response_flags(dpw);
- return submit_headers_shared_nva(session, flags, stream_id, NULL, nva, nvlen,
- dpw, NULL);
+ return submit_headers_shared_nva(session, flags, stream_id, nva, nvlen, dpw,
+ NULL);
}
int nghttp2_submit_response(nghttp2_session *session, int32_t stream_id,
diff --git a/deps/nghttp2/lib/sfparse.c b/deps/nghttp2/lib/sfparse.c
index b5e94cc281533b..cee089d3944d18 100644
--- a/deps/nghttp2/lib/sfparse.c
+++ b/deps/nghttp2/lib/sfparse.c
@@ -30,38 +30,46 @@
#include
#include
-#define SF_STATE_DICT 0x08u
-#define SF_STATE_LIST 0x10u
-#define SF_STATE_ITEM 0x18u
+#ifdef __AVX2__
+# include
+#endif /* __AVX2__ */
-#define SF_STATE_INNER_LIST 0x04u
+#define SFPARSE_STATE_DICT 0x08u
+#define SFPARSE_STATE_LIST 0x10u
+#define SFPARSE_STATE_ITEM 0x18u
-#define SF_STATE_BEFORE 0x00u
-#define SF_STATE_BEFORE_PARAMS 0x01u
-#define SF_STATE_PARAMS 0x02u
-#define SF_STATE_AFTER 0x03u
+#define SFPARSE_STATE_INNER_LIST 0x04u
-#define SF_STATE_OP_MASK 0x03u
+#define SFPARSE_STATE_BEFORE 0x00u
+#define SFPARSE_STATE_BEFORE_PARAMS 0x01u
+#define SFPARSE_STATE_PARAMS 0x02u
+#define SFPARSE_STATE_AFTER 0x03u
-#define SF_SET_STATE_AFTER(NAME) (SF_STATE_##NAME | SF_STATE_AFTER)
-#define SF_SET_STATE_BEFORE_PARAMS(NAME) \
- (SF_STATE_##NAME | SF_STATE_BEFORE_PARAMS)
-#define SF_SET_STATE_INNER_LIST_BEFORE(NAME) \
- (SF_STATE_##NAME | SF_STATE_INNER_LIST | SF_STATE_BEFORE)
+#define SFPARSE_STATE_OP_MASK 0x03u
-#define SF_STATE_DICT_AFTER SF_SET_STATE_AFTER(DICT)
-#define SF_STATE_DICT_BEFORE_PARAMS SF_SET_STATE_BEFORE_PARAMS(DICT)
-#define SF_STATE_DICT_INNER_LIST_BEFORE SF_SET_STATE_INNER_LIST_BEFORE(DICT)
+#define SFPARSE_SET_STATE_AFTER(NAME) \
+ (SFPARSE_STATE_##NAME | SFPARSE_STATE_AFTER)
+#define SFPARSE_SET_STATE_BEFORE_PARAMS(NAME) \
+ (SFPARSE_STATE_##NAME | SFPARSE_STATE_BEFORE_PARAMS)
+#define SFPARSE_SET_STATE_INNER_LIST_BEFORE(NAME) \
+ (SFPARSE_STATE_##NAME | SFPARSE_STATE_INNER_LIST | SFPARSE_STATE_BEFORE)
-#define SF_STATE_LIST_AFTER SF_SET_STATE_AFTER(LIST)
-#define SF_STATE_LIST_BEFORE_PARAMS SF_SET_STATE_BEFORE_PARAMS(LIST)
-#define SF_STATE_LIST_INNER_LIST_BEFORE SF_SET_STATE_INNER_LIST_BEFORE(LIST)
+#define SFPARSE_STATE_DICT_AFTER SFPARSE_SET_STATE_AFTER(DICT)
+#define SFPARSE_STATE_DICT_BEFORE_PARAMS SFPARSE_SET_STATE_BEFORE_PARAMS(DICT)
+#define SFPARSE_STATE_DICT_INNER_LIST_BEFORE \
+ SFPARSE_SET_STATE_INNER_LIST_BEFORE(DICT)
-#define SF_STATE_ITEM_AFTER SF_SET_STATE_AFTER(ITEM)
-#define SF_STATE_ITEM_BEFORE_PARAMS SF_SET_STATE_BEFORE_PARAMS(ITEM)
-#define SF_STATE_ITEM_INNER_LIST_BEFORE SF_SET_STATE_INNER_LIST_BEFORE(ITEM)
+#define SFPARSE_STATE_LIST_AFTER SFPARSE_SET_STATE_AFTER(LIST)
+#define SFPARSE_STATE_LIST_BEFORE_PARAMS SFPARSE_SET_STATE_BEFORE_PARAMS(LIST)
+#define SFPARSE_STATE_LIST_INNER_LIST_BEFORE \
+ SFPARSE_SET_STATE_INNER_LIST_BEFORE(LIST)
-#define SF_STATE_INITIAL 0x00u
+#define SFPARSE_STATE_ITEM_AFTER SFPARSE_SET_STATE_AFTER(ITEM)
+#define SFPARSE_STATE_ITEM_BEFORE_PARAMS SFPARSE_SET_STATE_BEFORE_PARAMS(ITEM)
+#define SFPARSE_STATE_ITEM_INNER_LIST_BEFORE \
+ SFPARSE_SET_STATE_INNER_LIST_BEFORE(ITEM)
+
+#define SFPARSE_STATE_INITIAL 0x00u
#define DIGIT_CASES \
case '0': \
@@ -135,6 +143,70 @@
UCALPHA_CASES: \
LCALPHA_CASES
+#define TOKEN_CASES \
+ case '!': \
+ case '#': \
+ case '$': \
+ case '%': \
+ case '&': \
+ case '\'': \
+ case '*': \
+ case '+': \
+ case '-': \
+ case '.': \
+ case '/': \
+ DIGIT_CASES: \
+ case ':': \
+ UCALPHA_CASES: \
+ case '^': \
+ case '_': \
+ case '`': \
+ LCALPHA_CASES: \
+ case '|': \
+ case '~'
+
+#define LCHEXALPHA_CASES \
+ case 'a': \
+ case 'b': \
+ case 'c': \
+ case 'd': \
+ case 'e': \
+ case 'f'
+
+#define X00_1F_CASES \
+ case 0x00: \
+ case 0x01: \
+ case 0x02: \
+ case 0x03: \
+ case 0x04: \
+ case 0x05: \
+ case 0x06: \
+ case 0x07: \
+ case 0x08: \
+ case 0x09: \
+ case 0x0a: \
+ case 0x0b: \
+ case 0x0c: \
+ case 0x0d: \
+ case 0x0e: \
+ case 0x0f: \
+ case 0x10: \
+ case 0x11: \
+ case 0x12: \
+ case 0x13: \
+ case 0x14: \
+ case 0x15: \
+ case 0x16: \
+ case 0x17: \
+ case 0x18: \
+ case 0x19: \
+ case 0x1a: \
+ case 0x1b: \
+ case 0x1c: \
+ case 0x1d: \
+ case 0x1e: \
+ case 0x1f
+
#define X20_21_CASES \
case ' ': \
case '!'
@@ -175,6 +247,137 @@
case '}': \
case '~'
+#define X7F_FF_CASES \
+ case 0x7f: \
+ case 0x80: \
+ case 0x81: \
+ case 0x82: \
+ case 0x83: \
+ case 0x84: \
+ case 0x85: \
+ case 0x86: \
+ case 0x87: \
+ case 0x88: \
+ case 0x89: \
+ case 0x8a: \
+ case 0x8b: \
+ case 0x8c: \
+ case 0x8d: \
+ case 0x8e: \
+ case 0x8f: \
+ case 0x90: \
+ case 0x91: \
+ case 0x92: \
+ case 0x93: \
+ case 0x94: \
+ case 0x95: \
+ case 0x96: \
+ case 0x97: \
+ case 0x98: \
+ case 0x99: \
+ case 0x9a: \
+ case 0x9b: \
+ case 0x9c: \
+ case 0x9d: \
+ case 0x9e: \
+ case 0x9f: \
+ case 0xa0: \
+ case 0xa1: \
+ case 0xa2: \
+ case 0xa3: \
+ case 0xa4: \
+ case 0xa5: \
+ case 0xa6: \
+ case 0xa7: \
+ case 0xa8: \
+ case 0xa9: \
+ case 0xaa: \
+ case 0xab: \
+ case 0xac: \
+ case 0xad: \
+ case 0xae: \
+ case 0xaf: \
+ case 0xb0: \
+ case 0xb1: \
+ case 0xb2: \
+ case 0xb3: \
+ case 0xb4: \
+ case 0xb5: \
+ case 0xb6: \
+ case 0xb7: \
+ case 0xb8: \
+ case 0xb9: \
+ case 0xba: \
+ case 0xbb: \
+ case 0xbc: \
+ case 0xbd: \
+ case 0xbe: \
+ case 0xbf: \
+ case 0xc0: \
+ case 0xc1: \
+ case 0xc2: \
+ case 0xc3: \
+ case 0xc4: \
+ case 0xc5: \
+ case 0xc6: \
+ case 0xc7: \
+ case 0xc8: \
+ case 0xc9: \
+ case 0xca: \
+ case 0xcb: \
+ case 0xcc: \
+ case 0xcd: \
+ case 0xce: \
+ case 0xcf: \
+ case 0xd0: \
+ case 0xd1: \
+ case 0xd2: \
+ case 0xd3: \
+ case 0xd4: \
+ case 0xd5: \
+ case 0xd6: \
+ case 0xd7: \
+ case 0xd8: \
+ case 0xd9: \
+ case 0xda: \
+ case 0xdb: \
+ case 0xdc: \
+ case 0xdd: \
+ case 0xde: \
+ case 0xdf: \
+ case 0xe0: \
+ case 0xe1: \
+ case 0xe2: \
+ case 0xe3: \
+ case 0xe4: \
+ case 0xe5: \
+ case 0xe6: \
+ case 0xe7: \
+ case 0xe8: \
+ case 0xe9: \
+ case 0xea: \
+ case 0xeb: \
+ case 0xec: \
+ case 0xed: \
+ case 0xee: \
+ case 0xef: \
+ case 0xf0: \
+ case 0xf1: \
+ case 0xf2: \
+ case 0xf3: \
+ case 0xf4: \
+ case 0xf5: \
+ case 0xf6: \
+ case 0xf7: \
+ case 0xf8: \
+ case 0xf9: \
+ case 0xfa: \
+ case 0xfb: \
+ case 0xfc: \
+ case 0xfd: \
+ case 0xfe: \
+ case 0xff
+
static int is_ws(uint8_t c) {
switch (c) {
case ' ':
@@ -185,40 +388,108 @@ static int is_ws(uint8_t c) {
}
}
-static int parser_eof(sf_parser *sfp) { return sfp->pos == sfp->end; }
+#ifdef __AVX2__
+# ifdef _MSC_VER
+# include
+
+static int ctz(unsigned int v) {
+ unsigned long n;
+
+ /* Assume that v is not 0. */
+ _BitScanForward(&n, v);
+
+ return (int)n;
+}
+# else /* !_MSC_VER */
+# define ctz __builtin_ctz
+# endif /* !_MSC_VER */
+#endif /* __AVX2__ */
+
+static int parser_eof(sfparse_parser *sfp) { return sfp->pos == sfp->end; }
-static void parser_discard_ows(sf_parser *sfp) {
+static void parser_discard_ows(sfparse_parser *sfp) {
for (; !parser_eof(sfp) && is_ws(*sfp->pos); ++sfp->pos)
;
}
-static void parser_discard_sp(sf_parser *sfp) {
+static void parser_discard_sp(sfparse_parser *sfp) {
for (; !parser_eof(sfp) && *sfp->pos == ' '; ++sfp->pos)
;
}
-static void parser_set_op_state(sf_parser *sfp, uint32_t op) {
- sfp->state &= ~SF_STATE_OP_MASK;
+static void parser_set_op_state(sfparse_parser *sfp, uint32_t op) {
+ sfp->state &= ~SFPARSE_STATE_OP_MASK;
sfp->state |= op;
}
-static void parser_unset_inner_list_state(sf_parser *sfp) {
- sfp->state &= ~SF_STATE_INNER_LIST;
+static void parser_unset_inner_list_state(sfparse_parser *sfp) {
+ sfp->state &= ~SFPARSE_STATE_INNER_LIST;
}
-static int parser_key(sf_parser *sfp, sf_vec *dest) {
+#ifdef __AVX2__
+static const uint8_t *find_char_key(const uint8_t *first, const uint8_t *last) {
+ const __m256i us = _mm256_set1_epi8('_');
+ const __m256i ds = _mm256_set1_epi8('-');
+ const __m256i dot = _mm256_set1_epi8('.');
+ const __m256i ast = _mm256_set1_epi8('*');
+ const __m256i r0l = _mm256_set1_epi8('0' - 1);
+ const __m256i r0r = _mm256_set1_epi8('9' + 1);
+ const __m256i r1l = _mm256_set1_epi8('a' - 1);
+ const __m256i r1r = _mm256_set1_epi8('z' + 1);
+ __m256i s, x;
+ uint32_t m;
+
+ for (; first != last; first += 32) {
+ s = _mm256_loadu_si256((void *)first);
+
+ x = _mm256_cmpeq_epi8(s, us);
+ x = _mm256_or_si256(_mm256_cmpeq_epi8(s, ds), x);
+ x = _mm256_or_si256(_mm256_cmpeq_epi8(s, dot), x);
+ x = _mm256_or_si256(_mm256_cmpeq_epi8(s, ast), x);
+ x = _mm256_or_si256(
+ _mm256_and_si256(_mm256_cmpgt_epi8(s, r0l), _mm256_cmpgt_epi8(r0r, s)),
+ x);
+ x = _mm256_or_si256(
+ _mm256_and_si256(_mm256_cmpgt_epi8(s, r1l), _mm256_cmpgt_epi8(r1r, s)),
+ x);
+
+ m = ~(uint32_t)_mm256_movemask_epi8(x);
+ if (m) {
+ return first + ctz(m);
+ }
+ }
+
+ return last;
+}
+#endif /* __AVX2__ */
+
+static int parser_key(sfparse_parser *sfp, sfparse_vec *dest) {
const uint8_t *base;
+#ifdef __AVX2__
+ const uint8_t *last;
+#endif /* __AVX2__ */
switch (*sfp->pos) {
case '*':
LCALPHA_CASES:
break;
default:
- return SF_ERR_PARSE_ERROR;
+ return SFPARSE_ERR_PARSE;
}
base = sfp->pos++;
+#ifdef __AVX2__
+ if (sfp->end - sfp->pos >= 32) {
+ last = sfp->pos + ((sfp->end - sfp->pos) & ~0x1fu);
+
+ sfp->pos = find_char_key(sfp->pos, last);
+ if (sfp->pos != last) {
+ goto fin;
+ }
+ }
+#endif /* __AVX2__ */
+
for (; !parser_eof(sfp); ++sfp->pos) {
switch (*sfp->pos) {
case '_':
@@ -233,6 +504,9 @@ static int parser_key(sf_parser *sfp, sf_vec *dest) {
break;
}
+#ifdef __AVX2__
+fin:
+#endif /* __AVX2__ */
if (dest) {
dest->base = (uint8_t *)base;
dest->len = (size_t)(sfp->pos - dest->base);
@@ -241,7 +515,7 @@ static int parser_key(sf_parser *sfp, sf_vec *dest) {
return 0;
}
-static int parser_number(sf_parser *sfp, sf_value *dest) {
+static int parser_number(sfparse_parser *sfp, sfparse_value *dest) {
int sign = 1;
int64_t value = 0;
size_t len = 0;
@@ -250,7 +524,7 @@ static int parser_number(sf_parser *sfp, sf_value *dest) {
if (*sfp->pos == '-') {
++sfp->pos;
if (parser_eof(sfp)) {
- return SF_ERR_PARSE_ERROR;
+ return SFPARSE_ERR_PARSE;
}
sign = -1;
@@ -262,7 +536,7 @@ static int parser_number(sf_parser *sfp, sf_value *dest) {
switch (*sfp->pos) {
DIGIT_CASES:
if (++len > 15) {
- return SF_ERR_PARSE_ERROR;
+ return SFPARSE_ERR_PARSE;
}
value *= 10;
@@ -275,13 +549,13 @@ static int parser_number(sf_parser *sfp, sf_value *dest) {
}
if (len == 0) {
- return SF_ERR_PARSE_ERROR;
+ return SFPARSE_ERR_PARSE;
}
if (parser_eof(sfp) || *sfp->pos != '.') {
if (dest) {
- dest->type = SF_TYPE_INTEGER;
- dest->flags = SF_VALUE_FLAG_NONE;
+ dest->type = SFPARSE_TYPE_INTEGER;
+ dest->flags = SFPARSE_VALUE_FLAG_NONE;
dest->integer = value * sign;
}
@@ -291,7 +565,7 @@ static int parser_number(sf_parser *sfp, sf_value *dest) {
/* decimal */
if (len > 12) {
- return SF_ERR_PARSE_ERROR;
+ return SFPARSE_ERR_PARSE;
}
fpos = len;
@@ -302,7 +576,7 @@ static int parser_number(sf_parser *sfp, sf_value *dest) {
switch (*sfp->pos) {
DIGIT_CASES:
if (++len > 15) {
- return SF_ERR_PARSE_ERROR;
+ return SFPARSE_ERR_PARSE;
}
value *= 10;
@@ -315,12 +589,12 @@ static int parser_number(sf_parser *sfp, sf_value *dest) {
}
if (fpos == len || len - fpos > 3) {
- return SF_ERR_PARSE_ERROR;
+ return SFPARSE_ERR_PARSE;
}
if (dest) {
- dest->type = SF_TYPE_DECIMAL;
- dest->flags = SF_VALUE_FLAG_NONE;
+ dest->type = SFPARSE_TYPE_DECIMAL;
+ dest->flags = SFPARSE_VALUE_FLAG_NONE;
dest->decimal.numer = value * sign;
switch (len - fpos) {
@@ -342,9 +616,9 @@ static int parser_number(sf_parser *sfp, sf_value *dest) {
return 0;
}
-static int parser_date(sf_parser *sfp, sf_value *dest) {
+static int parser_date(sfparse_parser *sfp, sfparse_value *dest) {
int rv;
- sf_value val;
+ sfparse_value val;
/* The first byte has already been validated by the caller. */
assert('@' == *sfp->pos);
@@ -352,7 +626,7 @@ static int parser_date(sf_parser *sfp, sf_value *dest) {
++sfp->pos;
if (parser_eof(sfp)) {
- return SF_ERR_PARSE_ERROR;
+ return SFPARSE_ERR_PARSE;
}
rv = parser_number(sfp, &val);
@@ -360,27 +634,93 @@ static int parser_date(sf_parser *sfp, sf_value *dest) {
return rv;
}
- if (val.type != SF_TYPE_INTEGER) {
- return SF_ERR_PARSE_ERROR;
+ if (val.type != SFPARSE_TYPE_INTEGER) {
+ return SFPARSE_ERR_PARSE;
}
if (dest) {
*dest = val;
- dest->type = SF_TYPE_DATE;
+ dest->type = SFPARSE_TYPE_DATE;
}
return 0;
}
-static int parser_string(sf_parser *sfp, sf_value *dest) {
+#ifdef __AVX2__
+static const uint8_t *find_char_string(const uint8_t *first,
+ const uint8_t *last) {
+ const __m256i bs = _mm256_set1_epi8('\\');
+ const __m256i dq = _mm256_set1_epi8('"');
+ const __m256i del = _mm256_set1_epi8(0x7f);
+ const __m256i sp = _mm256_set1_epi8(' ');
+ __m256i s, x;
+ uint32_t m;
+
+ for (; first != last; first += 32) {
+ s = _mm256_loadu_si256((void *)first);
+
+ x = _mm256_cmpgt_epi8(sp, s);
+ x = _mm256_or_si256(_mm256_cmpeq_epi8(s, bs), x);
+ x = _mm256_or_si256(_mm256_cmpeq_epi8(s, dq), x);
+ x = _mm256_or_si256(_mm256_cmpeq_epi8(s, del), x);
+
+ m = (uint32_t)_mm256_movemask_epi8(x);
+ if (m) {
+ return first + ctz(m);
+ }
+ }
+
+ return last;
+}
+#endif /* __AVX2__ */
+
+static int parser_string(sfparse_parser *sfp, sfparse_value *dest) {
const uint8_t *base;
- uint32_t flags = SF_VALUE_FLAG_NONE;
+#ifdef __AVX2__
+ const uint8_t *last;
+#endif /* __AVX2__ */
+ uint32_t flags = SFPARSE_VALUE_FLAG_NONE;
/* The first byte has already been validated by the caller. */
assert('"' == *sfp->pos);
base = ++sfp->pos;
+#ifdef __AVX2__
+ for (; sfp->end - sfp->pos >= 32; ++sfp->pos) {
+ last = sfp->pos + ((sfp->end - sfp->pos) & ~0x1fu);
+
+ sfp->pos = find_char_string(sfp->pos, last);
+ if (sfp->pos == last) {
+ break;
+ }
+
+ switch (*sfp->pos) {
+ case '\\':
+ ++sfp->pos;
+ if (parser_eof(sfp)) {
+ return SFPARSE_ERR_PARSE;
+ }
+
+ switch (*sfp->pos) {
+ case '"':
+ case '\\':
+ flags = SFPARSE_VALUE_FLAG_ESCAPED_STRING;
+
+ break;
+ default:
+ return SFPARSE_ERR_PARSE;
+ }
+
+ break;
+ case '"':
+ goto fin;
+ default:
+ return SFPARSE_ERR_PARSE;
+ }
+ }
+#endif /* __AVX2__ */
+
for (; !parser_eof(sfp); ++sfp->pos) {
switch (*sfp->pos) {
X20_21_CASES:
@@ -390,75 +730,131 @@ static int parser_string(sf_parser *sfp, sf_value *dest) {
case '\\':
++sfp->pos;
if (parser_eof(sfp)) {
- return SF_ERR_PARSE_ERROR;
+ return SFPARSE_ERR_PARSE;
}
switch (*sfp->pos) {
case '"':
case '\\':
- flags = SF_VALUE_FLAG_ESCAPED_STRING;
+ flags = SFPARSE_VALUE_FLAG_ESCAPED_STRING;
break;
default:
- return SF_ERR_PARSE_ERROR;
+ return SFPARSE_ERR_PARSE;
}
break;
case '"':
- if (dest) {
- dest->type = SF_TYPE_STRING;
- dest->flags = flags;
- dest->vec.len = (size_t)(sfp->pos - base);
- dest->vec.base = dest->vec.len == 0 ? NULL : (uint8_t *)base;
- }
+ goto fin;
+ default:
+ return SFPARSE_ERR_PARSE;
+ }
+ }
- ++sfp->pos;
+ return SFPARSE_ERR_PARSE;
- return 0;
- default:
- return SF_ERR_PARSE_ERROR;
+fin:
+ if (dest) {
+ dest->type = SFPARSE_TYPE_STRING;
+ dest->flags = flags;
+ dest->vec.len = (size_t)(sfp->pos - base);
+ dest->vec.base = dest->vec.len == 0 ? NULL : (uint8_t *)base;
+ }
+
+ ++sfp->pos;
+
+ return 0;
+}
+
+#ifdef __AVX2__
+static const uint8_t *find_char_token(const uint8_t *first,
+ const uint8_t *last) {
+ /* r0: !..:, excluding "(),
+ r1: A..Z
+ r2: ^..~, excluding {} */
+ const __m256i r0l = _mm256_set1_epi8('!' - 1);
+ const __m256i r0r = _mm256_set1_epi8(':' + 1);
+ const __m256i dq = _mm256_set1_epi8('"');
+ const __m256i prl = _mm256_set1_epi8('(');
+ const __m256i prr = _mm256_set1_epi8(')');
+ const __m256i comma = _mm256_set1_epi8(',');
+ const __m256i r1l = _mm256_set1_epi8('A' - 1);
+ const __m256i r1r = _mm256_set1_epi8('Z' + 1);
+ const __m256i r2l = _mm256_set1_epi8('^' - 1);
+ const __m256i r2r = _mm256_set1_epi8('~' + 1);
+ const __m256i cbl = _mm256_set1_epi8('{');
+ const __m256i cbr = _mm256_set1_epi8('}');
+ __m256i s, x;
+ uint32_t m;
+
+ for (; first != last; first += 32) {
+ s = _mm256_loadu_si256((void *)first);
+
+ x = _mm256_andnot_si256(
+ _mm256_cmpeq_epi8(s, comma),
+ _mm256_andnot_si256(
+ _mm256_cmpeq_epi8(s, prr),
+ _mm256_andnot_si256(
+ _mm256_cmpeq_epi8(s, prl),
+ _mm256_andnot_si256(_mm256_cmpeq_epi8(s, dq),
+ _mm256_and_si256(_mm256_cmpgt_epi8(s, r0l),
+ _mm256_cmpgt_epi8(r0r, s))))));
+ x = _mm256_or_si256(
+ _mm256_and_si256(_mm256_cmpgt_epi8(s, r1l), _mm256_cmpgt_epi8(r1r, s)),
+ x);
+ x = _mm256_or_si256(
+ _mm256_andnot_si256(
+ _mm256_cmpeq_epi8(s, cbr),
+ _mm256_andnot_si256(_mm256_cmpeq_epi8(s, cbl),
+ _mm256_and_si256(_mm256_cmpgt_epi8(s, r2l),
+ _mm256_cmpgt_epi8(r2r, s)))),
+ x);
+
+ m = ~(uint32_t)_mm256_movemask_epi8(x);
+ if (m) {
+ return first + ctz(m);
}
}
- return SF_ERR_PARSE_ERROR;
+ return last;
}
+#endif /* __AVX2__ */
-static int parser_token(sf_parser *sfp, sf_value *dest) {
+static int parser_token(sfparse_parser *sfp, sfparse_value *dest) {
const uint8_t *base;
+#ifdef __AVX2__
+ const uint8_t *last;
+#endif /* __AVX2__ */
/* The first byte has already been validated by the caller. */
base = sfp->pos++;
+#ifdef __AVX2__
+ if (sfp->end - sfp->pos >= 32) {
+ last = sfp->pos + ((sfp->end - sfp->pos) & ~0x1fu);
+
+ sfp->pos = find_char_token(sfp->pos, last);
+ if (sfp->pos != last) {
+ goto fin;
+ }
+ }
+#endif /* __AVX2__ */
+
for (; !parser_eof(sfp); ++sfp->pos) {
switch (*sfp->pos) {
- case '!':
- case '#':
- case '$':
- case '%':
- case '&':
- case '\'':
- case '*':
- case '+':
- case '-':
- case '.':
- case '^':
- case '_':
- case '`':
- case '|':
- case '~':
- case ':':
- case '/':
- DIGIT_CASES:
- ALPHA_CASES:
+ TOKEN_CASES:
continue;
}
break;
}
+#ifdef __AVX2__
+fin:
+#endif /* __AVX2__ */
if (dest) {
- dest->type = SF_TYPE_TOKEN;
- dest->flags = SF_VALUE_FLAG_NONE;
+ dest->type = SFPARSE_TYPE_TOKEN;
+ dest->flags = SFPARSE_VALUE_FLAG_NONE;
dest->vec.base = (uint8_t *)base;
dest->vec.len = (size_t)(sfp->pos - base);
}
@@ -466,14 +862,63 @@ static int parser_token(sf_parser *sfp, sf_value *dest) {
return 0;
}
-static int parser_byteseq(sf_parser *sfp, sf_value *dest) {
+#ifdef __AVX2__
+static const uint8_t *find_char_byteseq(const uint8_t *first,
+ const uint8_t *last) {
+ const __m256i pls = _mm256_set1_epi8('+');
+ const __m256i fs = _mm256_set1_epi8('/');
+ const __m256i r0l = _mm256_set1_epi8('0' - 1);
+ const __m256i r0r = _mm256_set1_epi8('9' + 1);
+ const __m256i r1l = _mm256_set1_epi8('A' - 1);
+ const __m256i r1r = _mm256_set1_epi8('Z' + 1);
+ const __m256i r2l = _mm256_set1_epi8('a' - 1);
+ const __m256i r2r = _mm256_set1_epi8('z' + 1);
+ __m256i s, x;
+ uint32_t m;
+
+ for (; first != last; first += 32) {
+ s = _mm256_loadu_si256((void *)first);
+
+ x = _mm256_cmpeq_epi8(s, pls);
+ x = _mm256_or_si256(_mm256_cmpeq_epi8(s, fs), x);
+ x = _mm256_or_si256(
+ _mm256_and_si256(_mm256_cmpgt_epi8(s, r0l), _mm256_cmpgt_epi8(r0r, s)),
+ x);
+ x = _mm256_or_si256(
+ _mm256_and_si256(_mm256_cmpgt_epi8(s, r1l), _mm256_cmpgt_epi8(r1r, s)),
+ x);
+ x = _mm256_or_si256(
+ _mm256_and_si256(_mm256_cmpgt_epi8(s, r2l), _mm256_cmpgt_epi8(r2r, s)),
+ x);
+
+ m = ~(uint32_t)_mm256_movemask_epi8(x);
+ if (m) {
+ return first + ctz(m);
+ }
+ }
+
+ return last;
+}
+#endif /* __AVX2__ */
+
+static int parser_byteseq(sfparse_parser *sfp, sfparse_value *dest) {
const uint8_t *base;
+#ifdef __AVX2__
+ const uint8_t *last;
+#endif /* __AVX2__ */
/* The first byte has already been validated by the caller. */
assert(':' == *sfp->pos);
base = ++sfp->pos;
+#ifdef __AVX2__
+ if (sfp->end - sfp->pos >= 32) {
+ last = sfp->pos + ((sfp->end - sfp->pos) & ~0x1fu);
+ sfp->pos = find_char_byteseq(sfp->pos, last);
+ }
+#endif /* __AVX2__ */
+
for (; !parser_eof(sfp); ++sfp->pos) {
switch (*sfp->pos) {
case '+':
@@ -485,75 +930,47 @@ static int parser_byteseq(sf_parser *sfp, sf_value *dest) {
switch ((sfp->pos - base) & 0x3) {
case 0:
case 1:
- return SF_ERR_PARSE_ERROR;
+ return SFPARSE_ERR_PARSE;
case 2:
- switch (*(sfp->pos - 1)) {
- case 'A':
- case 'Q':
- case 'g':
- case 'w':
- break;
- default:
- return SF_ERR_PARSE_ERROR;
- }
-
++sfp->pos;
- if (parser_eof(sfp) || *sfp->pos != '=') {
- return SF_ERR_PARSE_ERROR;
+ if (parser_eof(sfp)) {
+ return SFPARSE_ERR_PARSE;
+ }
+
+ if (*sfp->pos == '=') {
+ ++sfp->pos;
}
break;
case 3:
- switch (*(sfp->pos - 1)) {
- case 'A':
- case 'E':
- case 'I':
- case 'M':
- case 'Q':
- case 'U':
- case 'Y':
- case 'c':
- case 'g':
- case 'k':
- case 'o':
- case 's':
- case 'w':
- case '0':
- case '4':
- case '8':
- break;
- default:
- return SF_ERR_PARSE_ERROR;
- }
+ ++sfp->pos;
break;
}
- ++sfp->pos;
-
if (parser_eof(sfp) || *sfp->pos != ':') {
- return SF_ERR_PARSE_ERROR;
+ return SFPARSE_ERR_PARSE;
}
goto fin;
case ':':
- if ((sfp->pos - base) & 0x3) {
- return SF_ERR_PARSE_ERROR;
+ if (((sfp->pos - base) & 0x3) == 1) {
+ return SFPARSE_ERR_PARSE;
}
goto fin;
default:
- return SF_ERR_PARSE_ERROR;
+ return SFPARSE_ERR_PARSE;
}
}
- return SF_ERR_PARSE_ERROR;
+ return SFPARSE_ERR_PARSE;
fin:
if (dest) {
- dest->type = SF_TYPE_BYTESEQ;
- dest->flags = SF_VALUE_FLAG_NONE;
+ dest->type = SFPARSE_TYPE_BYTESEQ;
+ dest->flags = SFPARSE_VALUE_FLAG_NONE;
dest->vec.len = (size_t)(sfp->pos - base);
dest->vec.base = dest->vec.len == 0 ? NULL : (uint8_t *)base;
}
@@ -563,7 +980,7 @@ static int parser_byteseq(sf_parser *sfp, sf_value *dest) {
return 0;
}
-static int parser_boolean(sf_parser *sfp, sf_value *dest) {
+static int parser_boolean(sfparse_parser *sfp, sfparse_value *dest) {
int b;
/* The first byte has already been validated by the caller. */
@@ -572,7 +989,7 @@ static int parser_boolean(sf_parser *sfp, sf_value *dest) {
++sfp->pos;
if (parser_eof(sfp)) {
- return SF_ERR_PARSE_ERROR;
+ return SFPARSE_ERR_PARSE;
}
switch (*sfp->pos) {
@@ -585,21 +1002,184 @@ static int parser_boolean(sf_parser *sfp, sf_value *dest) {
break;
default:
- return SF_ERR_PARSE_ERROR;
+ return SFPARSE_ERR_PARSE;
}
++sfp->pos;
if (dest) {
- dest->type = SF_TYPE_BOOLEAN;
- dest->flags = SF_VALUE_FLAG_NONE;
+ dest->type = SFPARSE_TYPE_BOOLEAN;
+ dest->flags = SFPARSE_VALUE_FLAG_NONE;
dest->boolean = b;
}
return 0;
}
-static int parser_bare_item(sf_parser *sfp, sf_value *dest) {
+static int pctdecode(uint8_t *pc, const uint8_t **ppos) {
+ uint8_t c, b = **ppos;
+
+ switch (b) {
+ DIGIT_CASES:
+ c = (uint8_t)((b - '0') << 4);
+
+ break;
+ LCHEXALPHA_CASES:
+ c = (uint8_t)((b - 'a' + 10) << 4);
+
+ break;
+ default:
+ return -1;
+ }
+
+ b = *++*ppos;
+
+ switch (b) {
+ DIGIT_CASES:
+ c |= (uint8_t)(b - '0');
+
+ break;
+ LCHEXALPHA_CASES:
+ c |= (uint8_t)(b - 'a' + 10);
+
+ break;
+ default:
+ return -1;
+ }
+
+ *pc = c;
+ ++*ppos;
+
+ return 0;
+}
+
+/* Start of utf8 dfa */
+/* Copyright (c) 2008-2010 Bjoern Hoehrmann
+ * See http://bjoern.hoehrmann.de/utf-8/decoder/dfa/ for details.
+ *
+ * Copyright (c) 2008-2009 Bjoern Hoehrmann
+ *
+ * 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.
+ */
+#define UTF8_ACCEPT 0
+#define UTF8_REJECT 12
+
+/* clang-format off */
+static const uint8_t utf8d[] = {
+ /*
+ * The first part of the table maps bytes to character classes that
+ * to reduce the size of the transition table and create bitmasks.
+ */
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,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, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,
+ 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
+ 8,8,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,
+ 10,3,3,3,3,3,3,3,3,3,3,3,3,4,3,3, 11,6,6,6,5,8,8,8,8,8,8,8,8,8,8,8,
+
+ /*
+ * The second part is a transition table that maps a combination
+ * of a state of the automaton and a character class to a state.
+ */
+ 0,12,24,36,60,96,84,12,12,12,48,72, 12,12,12,12,12,12,12,12,12,12,12,12,
+ 12, 0,12,12,12,12,12, 0,12, 0,12,12, 12,24,12,12,12,12,12,24,12,24,12,12,
+ 12,12,12,12,12,12,12,24,12,12,12,12, 12,24,12,12,12,12,12,12,12,24,12,12,
+ 12,12,12,12,12,12,12,36,12,36,12,12, 12,36,12,12,12,12,12,36,12,36,12,12,
+ 12,36,12,12,12,12,12,12,12,12,12,12,
+};
+/* clang-format on */
+
+static void utf8_decode(uint32_t *state, uint8_t byte) {
+ *state = utf8d[256 + *state + utf8d[byte]];
+}
+
+/* End of utf8 dfa */
+
+static int parser_dispstring(sfparse_parser *sfp, sfparse_value *dest) {
+ const uint8_t *base;
+ uint8_t c;
+ uint32_t utf8state = UTF8_ACCEPT;
+
+ assert('%' == *sfp->pos);
+
+ ++sfp->pos;
+
+ if (parser_eof(sfp) || *sfp->pos != '"') {
+ return SFPARSE_ERR_PARSE;
+ }
+
+ base = ++sfp->pos;
+
+ for (; !parser_eof(sfp);) {
+ switch (*sfp->pos) {
+ X00_1F_CASES:
+ X7F_FF_CASES:
+ return SFPARSE_ERR_PARSE;
+ case '%':
+ ++sfp->pos;
+
+ if (sfp->pos + 2 > sfp->end) {
+ return SFPARSE_ERR_PARSE;
+ }
+
+ if (pctdecode(&c, &sfp->pos) != 0) {
+ return SFPARSE_ERR_PARSE;
+ }
+
+ utf8_decode(&utf8state, c);
+ if (utf8state == UTF8_REJECT) {
+ return SFPARSE_ERR_PARSE;
+ }
+
+ break;
+ case '"':
+ if (utf8state != UTF8_ACCEPT) {
+ return SFPARSE_ERR_PARSE;
+ }
+
+ if (dest) {
+ dest->type = SFPARSE_TYPE_DISPSTRING;
+ dest->flags = SFPARSE_VALUE_FLAG_NONE;
+ dest->vec.len = (size_t)(sfp->pos - base);
+ dest->vec.base = dest->vec.len == 0 ? NULL : (uint8_t *)base;
+ }
+
+ ++sfp->pos;
+
+ return 0;
+ default:
+ if (utf8state != UTF8_ACCEPT) {
+ return SFPARSE_ERR_PARSE;
+ }
+
+ ++sfp->pos;
+ }
+ }
+
+ return SFPARSE_ERR_PARSE;
+}
+
+static int parser_bare_item(sfparse_parser *sfp, sfparse_value *dest) {
switch (*sfp->pos) {
case '"':
return parser_string(sfp, dest);
@@ -615,29 +1195,32 @@ static int parser_bare_item(sf_parser *sfp, sf_value *dest) {
case '*':
ALPHA_CASES:
return parser_token(sfp, dest);
+ case '%':
+ return parser_dispstring(sfp, dest);
default:
- return SF_ERR_PARSE_ERROR;
+ return SFPARSE_ERR_PARSE;
}
}
-static int parser_skip_inner_list(sf_parser *sfp);
+static int parser_skip_inner_list(sfparse_parser *sfp);
-int sf_parser_param(sf_parser *sfp, sf_vec *dest_key, sf_value *dest_value) {
+int sfparse_parser_param(sfparse_parser *sfp, sfparse_vec *dest_key,
+ sfparse_value *dest_value) {
int rv;
- switch (sfp->state & SF_STATE_OP_MASK) {
- case SF_STATE_BEFORE:
+ switch (sfp->state & SFPARSE_STATE_OP_MASK) {
+ case SFPARSE_STATE_BEFORE:
rv = parser_skip_inner_list(sfp);
if (rv != 0) {
return rv;
}
/* fall through */
- case SF_STATE_BEFORE_PARAMS:
- parser_set_op_state(sfp, SF_STATE_PARAMS);
+ case SFPARSE_STATE_BEFORE_PARAMS:
+ parser_set_op_state(sfp, SFPARSE_STATE_PARAMS);
break;
- case SF_STATE_PARAMS:
+ case SFPARSE_STATE_PARAMS:
break;
default:
assert(0);
@@ -645,16 +1228,16 @@ int sf_parser_param(sf_parser *sfp, sf_vec *dest_key, sf_value *dest_value) {
}
if (parser_eof(sfp) || *sfp->pos != ';') {
- parser_set_op_state(sfp, SF_STATE_AFTER);
+ parser_set_op_state(sfp, SFPARSE_STATE_AFTER);
- return SF_ERR_EOF;
+ return SFPARSE_ERR_EOF;
}
++sfp->pos;
parser_discard_sp(sfp);
if (parser_eof(sfp)) {
- return SF_ERR_PARSE_ERROR;
+ return SFPARSE_ERR_PARSE;
}
rv = parser_key(sfp, dest_key);
@@ -664,8 +1247,8 @@ int sf_parser_param(sf_parser *sfp, sf_vec *dest_key, sf_value *dest_value) {
if (parser_eof(sfp) || *sfp->pos != '=') {
if (dest_value) {
- dest_value->type = SF_TYPE_BOOLEAN;
- dest_value->flags = SF_VALUE_FLAG_NONE;
+ dest_value->type = SFPARSE_TYPE_BOOLEAN;
+ dest_value->flags = SFPARSE_VALUE_FLAG_NONE;
dest_value->boolean = 1;
}
@@ -675,23 +1258,23 @@ int sf_parser_param(sf_parser *sfp, sf_vec *dest_key, sf_value *dest_value) {
++sfp->pos;
if (parser_eof(sfp)) {
- return SF_ERR_PARSE_ERROR;
+ return SFPARSE_ERR_PARSE;
}
return parser_bare_item(sfp, dest_value);
}
-static int parser_skip_params(sf_parser *sfp) {
+static int parser_skip_params(sfparse_parser *sfp) {
int rv;
for (;;) {
- rv = sf_parser_param(sfp, NULL, NULL);
+ rv = sfparse_parser_param(sfp, NULL, NULL);
switch (rv) {
case 0:
break;
- case SF_ERR_EOF:
+ case SFPARSE_ERR_EOF:
return 0;
- case SF_ERR_PARSE_ERROR:
+ case SFPARSE_ERR_PARSE:
return rv;
default:
assert(0);
@@ -700,45 +1283,45 @@ static int parser_skip_params(sf_parser *sfp) {
}
}
-int sf_parser_inner_list(sf_parser *sfp, sf_value *dest) {
+int sfparse_parser_inner_list(sfparse_parser *sfp, sfparse_value *dest) {
int rv;
- switch (sfp->state & SF_STATE_OP_MASK) {
- case SF_STATE_BEFORE:
+ switch (sfp->state & SFPARSE_STATE_OP_MASK) {
+ case SFPARSE_STATE_BEFORE:
parser_discard_sp(sfp);
if (parser_eof(sfp)) {
- return SF_ERR_PARSE_ERROR;
+ return SFPARSE_ERR_PARSE;
}
break;
- case SF_STATE_BEFORE_PARAMS:
+ case SFPARSE_STATE_BEFORE_PARAMS:
rv = parser_skip_params(sfp);
if (rv != 0) {
return rv;
}
- /* Technically, we are entering SF_STATE_AFTER, but we will set
+ /* Technically, we are entering SFPARSE_STATE_AFTER, but we will set
another state without reading the state. */
- /* parser_set_op_state(sfp, SF_STATE_AFTER); */
+ /* parser_set_op_state(sfp, SFPARSE_STATE_AFTER); */
/* fall through */
- case SF_STATE_AFTER:
+ case SFPARSE_STATE_AFTER:
if (parser_eof(sfp)) {
- return SF_ERR_PARSE_ERROR;
+ return SFPARSE_ERR_PARSE;
}
switch (*sfp->pos) {
case ' ':
parser_discard_sp(sfp);
if (parser_eof(sfp)) {
- return SF_ERR_PARSE_ERROR;
+ return SFPARSE_ERR_PARSE;
}
break;
case ')':
break;
default:
- return SF_ERR_PARSE_ERROR;
+ return SFPARSE_ERR_PARSE;
}
break;
@@ -751,9 +1334,9 @@ int sf_parser_inner_list(sf_parser *sfp, sf_value *dest) {
++sfp->pos;
parser_unset_inner_list_state(sfp);
- parser_set_op_state(sfp, SF_STATE_BEFORE_PARAMS);
+ parser_set_op_state(sfp, SFPARSE_STATE_BEFORE_PARAMS);
- return SF_ERR_EOF;
+ return SFPARSE_ERR_EOF;
}
rv = parser_bare_item(sfp, dest);
@@ -761,22 +1344,22 @@ int sf_parser_inner_list(sf_parser *sfp, sf_value *dest) {
return rv;
}
- parser_set_op_state(sfp, SF_STATE_BEFORE_PARAMS);
+ parser_set_op_state(sfp, SFPARSE_STATE_BEFORE_PARAMS);
return 0;
}
-static int parser_skip_inner_list(sf_parser *sfp) {
+static int parser_skip_inner_list(sfparse_parser *sfp) {
int rv;
for (;;) {
- rv = sf_parser_inner_list(sfp, NULL);
+ rv = sfparse_parser_inner_list(sfp, NULL);
switch (rv) {
case 0:
break;
- case SF_ERR_EOF:
+ case SFPARSE_ERR_EOF:
return 0;
- case SF_ERR_PARSE_ERROR:
+ case SFPARSE_ERR_PARSE:
return rv;
default:
assert(0);
@@ -785,39 +1368,39 @@ static int parser_skip_inner_list(sf_parser *sfp) {
}
}
-static int parser_next_key_or_item(sf_parser *sfp) {
+static int parser_next_key_or_item(sfparse_parser *sfp) {
parser_discard_ows(sfp);
if (parser_eof(sfp)) {
- return SF_ERR_EOF;
+ return SFPARSE_ERR_EOF;
}
if (*sfp->pos != ',') {
- return SF_ERR_PARSE_ERROR;
+ return SFPARSE_ERR_PARSE;
}
++sfp->pos;
parser_discard_ows(sfp);
if (parser_eof(sfp)) {
- return SF_ERR_PARSE_ERROR;
+ return SFPARSE_ERR_PARSE;
}
return 0;
}
-static int parser_dict_value(sf_parser *sfp, sf_value *dest) {
+static int parser_dict_value(sfparse_parser *sfp, sfparse_value *dest) {
int rv;
if (parser_eof(sfp) || *(sfp->pos) != '=') {
/* Boolean true */
if (dest) {
- dest->type = SF_TYPE_BOOLEAN;
- dest->flags = SF_VALUE_FLAG_NONE;
+ dest->type = SFPARSE_TYPE_BOOLEAN;
+ dest->flags = SFPARSE_VALUE_FLAG_NONE;
dest->boolean = 1;
}
- sfp->state = SF_STATE_DICT_BEFORE_PARAMS;
+ sfp->state = SFPARSE_STATE_DICT_BEFORE_PARAMS;
return 0;
}
@@ -825,18 +1408,18 @@ static int parser_dict_value(sf_parser *sfp, sf_value *dest) {
++sfp->pos;
if (parser_eof(sfp)) {
- return SF_ERR_PARSE_ERROR;
+ return SFPARSE_ERR_PARSE;
}
if (*sfp->pos == '(') {
if (dest) {
- dest->type = SF_TYPE_INNER_LIST;
- dest->flags = SF_VALUE_FLAG_NONE;
+ dest->type = SFPARSE_TYPE_INNER_LIST;
+ dest->flags = SFPARSE_VALUE_FLAG_NONE;
}
++sfp->pos;
- sfp->state = SF_STATE_DICT_INNER_LIST_BEFORE;
+ sfp->state = SFPARSE_STATE_DICT_INNER_LIST_BEFORE;
return 0;
}
@@ -846,41 +1429,42 @@ static int parser_dict_value(sf_parser *sfp, sf_value *dest) {
return rv;
}
- sfp->state = SF_STATE_DICT_BEFORE_PARAMS;
+ sfp->state = SFPARSE_STATE_DICT_BEFORE_PARAMS;
return 0;
}
-int sf_parser_dict(sf_parser *sfp, sf_vec *dest_key, sf_value *dest_value) {
+int sfparse_parser_dict(sfparse_parser *sfp, sfparse_vec *dest_key,
+ sfparse_value *dest_value) {
int rv;
switch (sfp->state) {
- case SF_STATE_DICT_INNER_LIST_BEFORE:
+ case SFPARSE_STATE_DICT_INNER_LIST_BEFORE:
rv = parser_skip_inner_list(sfp);
if (rv != 0) {
return rv;
}
/* fall through */
- case SF_STATE_DICT_BEFORE_PARAMS:
+ case SFPARSE_STATE_DICT_BEFORE_PARAMS:
rv = parser_skip_params(sfp);
if (rv != 0) {
return rv;
}
/* fall through */
- case SF_STATE_DICT_AFTER:
+ case SFPARSE_STATE_DICT_AFTER:
rv = parser_next_key_or_item(sfp);
if (rv != 0) {
return rv;
}
break;
- case SF_STATE_INITIAL:
+ case SFPARSE_STATE_INITIAL:
parser_discard_sp(sfp);
if (parser_eof(sfp)) {
- return SF_ERR_EOF;
+ return SFPARSE_ERR_EOF;
}
break;
@@ -897,36 +1481,36 @@ int sf_parser_dict(sf_parser *sfp, sf_vec *dest_key, sf_value *dest_value) {
return parser_dict_value(sfp, dest_value);
}
-int sf_parser_list(sf_parser *sfp, sf_value *dest) {
+int sfparse_parser_list(sfparse_parser *sfp, sfparse_value *dest) {
int rv;
switch (sfp->state) {
- case SF_STATE_LIST_INNER_LIST_BEFORE:
+ case SFPARSE_STATE_LIST_INNER_LIST_BEFORE:
rv = parser_skip_inner_list(sfp);
if (rv != 0) {
return rv;
}
/* fall through */
- case SF_STATE_LIST_BEFORE_PARAMS:
+ case SFPARSE_STATE_LIST_BEFORE_PARAMS:
rv = parser_skip_params(sfp);
if (rv != 0) {
return rv;
}
/* fall through */
- case SF_STATE_LIST_AFTER:
+ case SFPARSE_STATE_LIST_AFTER:
rv = parser_next_key_or_item(sfp);
if (rv != 0) {
return rv;
}
break;
- case SF_STATE_INITIAL:
+ case SFPARSE_STATE_INITIAL:
parser_discard_sp(sfp);
if (parser_eof(sfp)) {
- return SF_ERR_EOF;
+ return SFPARSE_ERR_EOF;
}
break;
@@ -937,13 +1521,13 @@ int sf_parser_list(sf_parser *sfp, sf_value *dest) {
if (*sfp->pos == '(') {
if (dest) {
- dest->type = SF_TYPE_INNER_LIST;
- dest->flags = SF_VALUE_FLAG_NONE;
+ dest->type = SFPARSE_TYPE_INNER_LIST;
+ dest->flags = SFPARSE_VALUE_FLAG_NONE;
}
++sfp->pos;
- sfp->state = SF_STATE_LIST_INNER_LIST_BEFORE;
+ sfp->state = SFPARSE_STATE_LIST_INNER_LIST_BEFORE;
return 0;
}
@@ -953,45 +1537,45 @@ int sf_parser_list(sf_parser *sfp, sf_value *dest) {
return rv;
}
- sfp->state = SF_STATE_LIST_BEFORE_PARAMS;
+ sfp->state = SFPARSE_STATE_LIST_BEFORE_PARAMS;
return 0;
}
-int sf_parser_item(sf_parser *sfp, sf_value *dest) {
+int sfparse_parser_item(sfparse_parser *sfp, sfparse_value *dest) {
int rv;
switch (sfp->state) {
- case SF_STATE_INITIAL:
+ case SFPARSE_STATE_INITIAL:
parser_discard_sp(sfp);
if (parser_eof(sfp)) {
- return SF_ERR_PARSE_ERROR;
+ return SFPARSE_ERR_PARSE;
}
break;
- case SF_STATE_ITEM_INNER_LIST_BEFORE:
+ case SFPARSE_STATE_ITEM_INNER_LIST_BEFORE:
rv = parser_skip_inner_list(sfp);
if (rv != 0) {
return rv;
}
/* fall through */
- case SF_STATE_ITEM_BEFORE_PARAMS:
+ case SFPARSE_STATE_ITEM_BEFORE_PARAMS:
rv = parser_skip_params(sfp);
if (rv != 0) {
return rv;
}
/* fall through */
- case SF_STATE_ITEM_AFTER:
+ case SFPARSE_STATE_ITEM_AFTER:
parser_discard_sp(sfp);
if (!parser_eof(sfp)) {
- return SF_ERR_PARSE_ERROR;
+ return SFPARSE_ERR_PARSE;
}
- return SF_ERR_EOF;
+ return SFPARSE_ERR_EOF;
default:
assert(0);
abort();
@@ -999,13 +1583,13 @@ int sf_parser_item(sf_parser *sfp, sf_value *dest) {
if (*sfp->pos == '(') {
if (dest) {
- dest->type = SF_TYPE_INNER_LIST;
- dest->flags = SF_VALUE_FLAG_NONE;
+ dest->type = SFPARSE_TYPE_INNER_LIST;
+ dest->flags = SFPARSE_VALUE_FLAG_NONE;
}
++sfp->pos;
- sfp->state = SF_STATE_ITEM_INNER_LIST_BEFORE;
+ sfp->state = SFPARSE_STATE_ITEM_INNER_LIST_BEFORE;
return 0;
}
@@ -1015,12 +1599,13 @@ int sf_parser_item(sf_parser *sfp, sf_value *dest) {
return rv;
}
- sfp->state = SF_STATE_ITEM_BEFORE_PARAMS;
+ sfp->state = SFPARSE_STATE_ITEM_BEFORE_PARAMS;
return 0;
}
-void sf_parser_init(sf_parser *sfp, const uint8_t *data, size_t datalen) {
+void sfparse_parser_init(sfparse_parser *sfp, const uint8_t *data,
+ size_t datalen) {
if (datalen == 0) {
sfp->pos = sfp->end = NULL;
} else {
@@ -1028,16 +1613,16 @@ void sf_parser_init(sf_parser *sfp, const uint8_t *data, size_t datalen) {
sfp->end = data + datalen;
}
- sfp->state = SF_STATE_INITIAL;
+ sfp->state = SFPARSE_STATE_INITIAL;
}
-void sf_unescape(sf_vec *dest, const sf_vec *src) {
+void sfparse_unescape(sfparse_vec *dest, const sfparse_vec *src) {
const uint8_t *p, *q;
uint8_t *o;
size_t len, slen;
if (src->len == 0) {
- *dest = *src;
+ dest->len = 0;
return;
}
@@ -1049,16 +1634,12 @@ void sf_unescape(sf_vec *dest, const sf_vec *src) {
for (;;) {
q = memchr(p, '\\', len);
if (q == NULL) {
- if (len == src->len) {
- *dest = *src;
-
- return;
- }
-
memcpy(o, p, len);
o += len;
- break;
+ dest->len = (size_t)(o - dest->base);
+
+ return;
}
slen = (size_t)(q - p);
@@ -1069,11 +1650,9 @@ void sf_unescape(sf_vec *dest, const sf_vec *src) {
*o++ = *p++;
len -= slen + 2;
}
-
- dest->len = (size_t)(o - dest->base);
}
-void sf_base64decode(sf_vec *dest, const sf_vec *src) {
+void sfparse_base64decode(sfparse_vec *dest, const sfparse_vec *src) {
static const int index_tbl[] = {
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
@@ -1092,20 +1671,22 @@ void sf_base64decode(sf_vec *dest, const sf_vec *src) {
uint8_t *o;
const uint8_t *p, *end;
uint32_t n;
- size_t i;
+ size_t i, left;
int idx;
- assert((src->len & 0x3) == 0);
-
if (src->len == 0) {
- *dest = *src;
+ dest->len = 0;
return;
}
o = dest->base;
p = src->base;
- end = src->base + src->len;
+ left = src->len & 0x3;
+ if (left == 0 && src->base[src->len - 1] == '=') {
+ left = 4;
+ }
+ end = src->base + src->len - left;
for (; p != end;) {
n = 0;
@@ -1113,33 +1694,94 @@ void sf_base64decode(sf_vec *dest, const sf_vec *src) {
for (i = 1; i <= 4; ++i, ++p) {
idx = index_tbl[*p];
- if (idx == -1) {
- assert(i > 2);
+ assert(idx != -1);
- if (i == 3) {
- assert(*p == '=' && *(p + 1) == '=' && p + 2 == end);
+ n += (uint32_t)(idx << (24 - i * 6));
+ }
- *o++ = (uint8_t)(n >> 16);
+ *o++ = (uint8_t)(n >> 16);
+ *o++ = (n >> 8) & 0xffu;
+ *o++ = n & 0xffu;
+ }
- goto fin;
- }
+ switch (left) {
+ case 0:
+ goto fin;
+ case 1:
+ assert(0);
+ abort();
+ case 3:
+ if (src->base[src->len - 1] == '=') {
+ left = 2;
+ }
- assert(*p == '=' && p + 1 == end);
+ break;
+ case 4:
+ assert('=' == src->base[src->len - 1]);
- *o++ = (uint8_t)(n >> 16);
- *o++ = (n >> 8) & 0xffu;
+ if (src->base[src->len - 2] == '=') {
+ left = 2;
+ } else {
+ left = 3;
+ }
- goto fin;
- }
+ break;
+ }
- n += (uint32_t)(idx << (24 - i * 6));
- }
+ switch (left) {
+ case 2:
+ *o = (uint8_t)(index_tbl[*p++] << 2);
+ *o++ |= (uint8_t)(index_tbl[*p++] >> 4);
- *o++ = (uint8_t)(n >> 16);
+ break;
+ case 3:
+ n = (uint32_t)(index_tbl[*p++] << 10);
+ n += (uint32_t)(index_tbl[*p++] << 4);
+ n += (uint32_t)(index_tbl[*p++] >> 2);
*o++ = (n >> 8) & 0xffu;
*o++ = n & 0xffu;
+
+ break;
}
fin:
dest->len = (size_t)(o - dest->base);
}
+
+void sfparse_pctdecode(sfparse_vec *dest, const sfparse_vec *src) {
+ const uint8_t *p, *q;
+ uint8_t *o;
+ size_t len, slen;
+
+ if (src->len == 0) {
+ dest->len = 0;
+
+ return;
+ }
+
+ o = dest->base;
+ p = src->base;
+ len = src->len;
+
+ for (;;) {
+ q = memchr(p, '%', len);
+ if (q == NULL) {
+ memcpy(o, p, len);
+ o += len;
+
+ dest->len = (size_t)(o - dest->base);
+
+ return;
+ }
+
+ slen = (size_t)(q - p);
+ memcpy(o, p, slen);
+ o += slen;
+
+ p = q + 1;
+
+ pctdecode(o++, &p);
+
+ len -= slen + 3;
+ }
+}
diff --git a/deps/nghttp2/lib/sfparse.h b/deps/nghttp2/lib/sfparse.h
index 1474db1429acea..9341221a099438 100644
--- a/deps/nghttp2/lib/sfparse.h
+++ b/deps/nghttp2/lib/sfparse.h
@@ -31,86 +31,90 @@
libcurl) */
#if (defined(_WIN32) || defined(__WIN32__)) && !defined(WIN32)
# define WIN32
-#endif
+#endif /* (defined(_WIN32) || defined(__WIN32__)) && !defined(WIN32) */
#ifdef __cplusplus
extern "C" {
-#endif
+#endif /* defined(__cplusplus) */
#if defined(_MSC_VER) && (_MSC_VER < 1800)
/* MSVC < 2013 does not have inttypes.h because it is not C99
compliant. See compiler macros and version number in
https://sourceforge.net/p/predef/wiki/Compilers/ */
# include
-#else /* !defined(_MSC_VER) || (_MSC_VER >= 1800) */
+#else /* !(defined(_MSC_VER) && (_MSC_VER < 1800)) */
# include
-#endif /* !defined(_MSC_VER) || (_MSC_VER >= 1800) */
+#endif /* !(defined(_MSC_VER) && (_MSC_VER < 1800)) */
#include
#include
/**
* @enum
*
- * :type:`sf_type` defines value type.
+ * :type:`sfparse_type` defines value type.
*/
-typedef enum sf_type {
+typedef enum sfparse_type {
/**
- * :enum:`SF_TYPE_BOOLEAN` indicates boolean type.
+ * :enum:`SFPARSE_TYPE_BOOLEAN` indicates boolean type.
*/
- SF_TYPE_BOOLEAN,
+ SFPARSE_TYPE_BOOLEAN,
/**
- * :enum:`SF_TYPE_INTEGER` indicates integer type.
+ * :enum:`SFPARSE_TYPE_INTEGER` indicates integer type.
*/
- SF_TYPE_INTEGER,
+ SFPARSE_TYPE_INTEGER,
/**
- * :enum:`SF_TYPE_DECIMAL` indicates decimal type.
+ * :enum:`SFPARSE_TYPE_DECIMAL` indicates decimal type.
*/
- SF_TYPE_DECIMAL,
+ SFPARSE_TYPE_DECIMAL,
/**
- * :enum:`SF_TYPE_STRING` indicates string type.
+ * :enum:`SFPARSE_TYPE_STRING` indicates string type.
*/
- SF_TYPE_STRING,
+ SFPARSE_TYPE_STRING,
/**
- * :enum:`SF_TYPE_TOKEN` indicates token type.
+ * :enum:`SFPARSE_TYPE_TOKEN` indicates token type.
*/
- SF_TYPE_TOKEN,
+ SFPARSE_TYPE_TOKEN,
/**
- * :enum:`SF_TYPE_BYTESEQ` indicates byte sequence type.
+ * :enum:`SFPARSE_TYPE_BYTESEQ` indicates byte sequence type.
*/
- SF_TYPE_BYTESEQ,
+ SFPARSE_TYPE_BYTESEQ,
/**
- * :enum:`SF_TYPE_INNER_LIST` indicates inner list type.
+ * :enum:`SFPARSE_TYPE_INNER_LIST` indicates inner list type.
*/
- SF_TYPE_INNER_LIST,
+ SFPARSE_TYPE_INNER_LIST,
/**
- * :enum:`SF_TYPE_DATE` indicates date type.
+ * :enum:`SFPARSE_TYPE_DATE` indicates date type.
*/
- SF_TYPE_DATE
-} sf_type;
+ SFPARSE_TYPE_DATE,
+ /**
+ * :enum:`SFPARSE_TYPE_DISPSTRING` indicates display string type.
+ */
+ SFPARSE_TYPE_DISPSTRING
+} sfparse_type;
/**
* @macro
*
- * :macro:`SF_ERR_PARSE_ERROR` indicates fatal parse error has
+ * :macro:`SFPARSE_ERR_PARSE` indicates fatal parse error has
* occurred, and it is not possible to continue the processing.
*/
-#define SF_ERR_PARSE_ERROR -1
+#define SFPARSE_ERR_PARSE -1
/**
* @macro
*
- * :macro:`SF_ERR_EOF` indicates that there is nothing left to read.
- * The context of this error varies depending on the function that
- * returns this error code.
+ * :macro:`SFPARSE_ERR_EOF` indicates that there is nothing left to
+ * read. The context of this error varies depending on the function
+ * that returns this error code.
*/
-#define SF_ERR_EOF -2
+#define SFPARSE_ERR_EOF -2
/**
* @struct
*
- * :type:`sf_vec` stores sequence of bytes.
+ * :type:`sfparse_vec` stores sequence of bytes.
*/
-typedef struct sf_vec {
+typedef struct sfparse_vec {
/**
* :member:`base` points to the beginning of the sequence of bytes.
*/
@@ -119,29 +123,29 @@ typedef struct sf_vec {
* :member:`len` is the number of bytes contained in this sequence.
*/
size_t len;
-} sf_vec;
+} sfparse_vec;
/**
* @macro
*
- * :macro:`SF_VALUE_FLAG_NONE` indicates no flag set.
+ * :macro:`SFPARSE_VALUE_FLAG_NONE` indicates no flag set.
*/
-#define SF_VALUE_FLAG_NONE 0x0u
+#define SFPARSE_VALUE_FLAG_NONE 0x0u
/**
* @macro
*
- * :macro:`SF_VALUE_FLAG_ESCAPED_STRING` indicates that a string
+ * :macro:`SFPARSE_VALUE_FLAG_ESCAPED_STRING` indicates that a string
* contains escaped character(s).
*/
-#define SF_VALUE_FLAG_ESCAPED_STRING 0x1u
+#define SFPARSE_VALUE_FLAG_ESCAPED_STRING 0x1u
/**
* @struct
*
- * :type:`sf_decimal` contains decimal value.
+ * :type:`sfparse_decimal` contains decimal value.
*/
-typedef struct sf_decimal {
+typedef struct sfparse_decimal {
/**
* :member:`numer` contains numerator of the decimal value.
*/
@@ -150,260 +154,289 @@ typedef struct sf_decimal {
* :member:`denom` contains denominator of the decimal value.
*/
int64_t denom;
-} sf_decimal;
+} sfparse_decimal;
/**
* @struct
*
- * :type:`sf_value` stores a Structured Field item. For Inner List,
- * only type is set to :enum:`sf_type.SF_TYPE_INNER_LIST`. In order
- * to read the items contained in an inner list, call
- * `sf_parser_inner_list`.
+ * :type:`sfparse_value` stores a Structured Field item. For Inner
+ * List, only type is set to
+ * :enum:`sfparse_type.SFPARSE_TYPE_INNER_LIST`. In order to read the
+ * items contained in an inner list, call `sfparse_parser_inner_list`.
*/
-typedef struct sf_value {
+typedef struct sfparse_value {
/**
* :member:`type` is the type of the value contained in this
* particular object.
*/
- sf_type type;
+ sfparse_type type;
/**
* :member:`flags` is bitwise OR of one or more of
- * :macro:`SF_VALUE_FLAG_* `.
+ * :macro:`SFPARSE_VALUE_FLAG_* `.
*/
uint32_t flags;
/**
* @anonunion_start
*
- * @sf_value_value
+ * @sfparse_value_value
*/
union {
/**
* :member:`boolean` contains boolean value if :member:`type` ==
- * :enum:`sf_type.SF_TYPE_BOOLEAN`. 1 indicates true, and 0
- * indicates false.
+ * :enum:`sfparse_type.SFPARSE_TYPE_BOOLEAN`. 1 indicates true,
+ * and 0 indicates false.
*/
int boolean;
/**
* :member:`integer` contains integer value if :member:`type` is
- * either :enum:`sf_type.SF_TYPE_INTEGER` or
- * :enum:`sf_type.SF_TYPE_DATE`.
+ * either :enum:`sfparse_type.SFPARSE_TYPE_INTEGER` or
+ * :enum:`sfparse_type.SFPARSE_TYPE_DATE`.
*/
int64_t integer;
/**
* :member:`decimal` contains decimal value if :member:`type` ==
- * :enum:`sf_type.SF_TYPE_DECIMAL`.
+ * :enum:`sfparse_type.SFPARSE_TYPE_DECIMAL`.
*/
- sf_decimal decimal;
+ sfparse_decimal decimal;
/**
* :member:`vec` contains sequence of bytes if :member:`type` is
- * either :enum:`sf_type.SF_TYPE_STRING`,
- * :enum:`sf_type.SF_TYPE_TOKEN`, or
- * :enum:`sf_type.SF_TYPE_BYTESEQ`.
+ * either :enum:`sfparse_type.SFPARSE_TYPE_STRING`,
+ * :enum:`sfparse_type.SFPARSE_TYPE_TOKEN`,
+ * :enum:`sfparse_type.SFPARSE_TYPE_BYTESEQ`, or
+ * :enum:`sfparse_type.SFPARSE_TYPE_DISPSTRING`.
*
- * For :enum:`sf_type.SF_TYPE_STRING`, this field contains one or
- * more escaped characters if :member:`flags` has
- * :macro:`SF_VALUE_FLAG_ESCAPED_STRING` set. To unescape the
- * string, use `sf_unescape`.
+ * For :enum:`sfparse_type.SFPARSE_TYPE_STRING`, this field
+ * contains one or more escaped characters if :member:`flags` has
+ * :macro:`SFPARSE_VALUE_FLAG_ESCAPED_STRING` set. To unescape
+ * the string, use `sfparse_unescape`.
*
- * For :enum:`sf_type.SF_TYPE_BYTESEQ`, this field contains base64
- * encoded string. To decode this byte string, use
- * `sf_base64decode`.
+ * For :enum:`sfparse_type.SFPARSE_TYPE_BYTESEQ`, this field
+ * contains base64 encoded string. To decode this byte string,
+ * use `sfparse_base64decode`.
*
- * If :member:`vec.len ` == 0, :member:`vec.base
- * ` is guaranteed to be NULL.
+ * For :enum:`sfparse_type.SFPARSE_TYPE_DISPSTRING`, this field
+ * may contain percent-encoded UTF-8 byte sequences. To decode
+ * it, use `sfparse_pctdecode`.
+ *
+ * If :member:`vec.len ` == 0, :member:`vec.base
+ * ` is guaranteed to be NULL.
*/
- sf_vec vec;
+ sfparse_vec vec;
/**
* @anonunion_end
*/
};
-} sf_value;
+} sfparse_value;
/**
* @struct
*
- * :type:`sf_parser` is the Structured Field Values parser. Use
- * `sf_parser_init` to initialize it.
+ * :type:`sfparse_parser` is the Structured Field Values parser. Use
+ * `sfparse_parser_init` to initialize it.
*/
-typedef struct sf_parser {
+typedef struct sfparse_parser {
/* all fields are private */
const uint8_t *pos;
const uint8_t *end;
uint32_t state;
-} sf_parser;
+} sfparse_parser;
/**
* @function
*
- * `sf_parser_init` initializes |sfp| with the given buffer pointed by
- * |data| of length |datalen|.
+ * `sfparse_parser_init` initializes |sfp| with the given data encoded
+ * in Structured Field Values pointed by |data| of length |datalen|.
*/
-void sf_parser_init(sf_parser *sfp, const uint8_t *data, size_t datalen);
+void sfparse_parser_init(sfparse_parser *sfp, const uint8_t *data,
+ size_t datalen);
/**
* @function
*
- * `sf_parser_param` reads a parameter. If this function returns 0,
- * it stores parameter key and value in |dest_key| and |dest_value|
+ * `sfparse_parser_param` reads a parameter. If this function returns
+ * 0, it stores parameter key and value in |dest_key| and |dest_value|
* respectively, if they are not NULL.
*
* This function does no effort to find duplicated keys. Same key may
* be reported more than once.
*
* Caller should keep calling this function until it returns negative
- * error code. If it returns :macro:`SF_ERR_EOF`, all parameters have
- * read, and caller can continue to read rest of the values. If it
- * returns :macro:`SF_ERR_PARSE_ERROR`, it encountered fatal error
+ * error code. If it returns :macro:`SFPARSE_ERR_EOF`, all parameters
+ * have read, and caller can continue to read rest of the values. If
+ * it returns :macro:`SFPARSE_ERR_PARSE`, it encountered fatal error
* while parsing field value.
*/
-int sf_parser_param(sf_parser *sfp, sf_vec *dest_key, sf_value *dest_value);
+int sfparse_parser_param(sfparse_parser *sfp, sfparse_vec *dest_key,
+ sfparse_value *dest_value);
/**
* @function
*
- * `sf_parser_dict` reads the next dictionary key and value pair. If
- * this function returns 0, it stores the key and value in |dest_key|
- * and |dest_value| respectively, if they are not NULL.
+ * `sfparse_parser_dict` reads the next dictionary key and value pair.
+ * If this function returns 0, it stores the key and value in
+ * |dest_key| and |dest_value| respectively, if they are not NULL.
*
* Caller can optionally read parameters attached to the pair by
- * calling `sf_parser_param`.
+ * calling `sfparse_parser_param`.
*
* This function does no effort to find duplicated keys. Same key may
* be reported more than once.
*
* Caller should keep calling this function until it returns negative
- * error code. If it returns :macro:`SF_ERR_EOF`, all key and value
- * pairs have been read, and there is nothing left to read.
+ * error code. If it returns :macro:`SFPARSE_ERR_EOF`, all key and
+ * value pairs have been read, and there is nothing left to read.
*
* This function returns 0 if it succeeds, or one of the following
* negative error codes:
*
- * :macro:`SF_ERR_EOF`
+ * :macro:`SFPARSE_ERR_EOF`
* All values in the dictionary have read.
- * :macro:`SF_ERR_PARSE_ERROR`
+ * :macro:`SFPARSE_ERR_PARSE`
* It encountered fatal error while parsing field value.
*/
-int sf_parser_dict(sf_parser *sfp, sf_vec *dest_key, sf_value *dest_value);
+int sfparse_parser_dict(sfparse_parser *sfp, sfparse_vec *dest_key,
+ sfparse_value *dest_value);
/**
* @function
*
- * `sf_parser_list` reads the next list item. If this function
+ * `sfparse_parser_list` reads the next list item. If this function
* returns 0, it stores the item in |dest| if it is not NULL.
*
* Caller can optionally read parameters attached to the item by
- * calling `sf_parser_param`.
+ * calling `sfparse_parser_param`.
*
* Caller should keep calling this function until it returns negative
- * error code. If it returns :macro:`SF_ERR_EOF`, all values in the
- * list have been read, and there is nothing left to read.
+ * error code. If it returns :macro:`SFPARSE_ERR_EOF`, all values in
+ * the list have been read, and there is nothing left to read.
*
* This function returns 0 if it succeeds, or one of the following
* negative error codes:
*
- * :macro:`SF_ERR_EOF`
+ * :macro:`SFPARSE_ERR_EOF`
* All values in the list have read.
- * :macro:`SF_ERR_PARSE_ERROR`
+ * :macro:`SFPARSE_ERR_PARSE`
* It encountered fatal error while parsing field value.
*/
-int sf_parser_list(sf_parser *sfp, sf_value *dest);
+int sfparse_parser_list(sfparse_parser *sfp, sfparse_value *dest);
/**
* @function
*
- * `sf_parser_item` reads a single item. If this function returns 0,
- * it stores the item in |dest| if it is not NULL.
+ * `sfparse_parser_item` reads a single item. If this function
+ * returns 0, it stores the item in |dest| if it is not NULL.
*
* This function is only used for the field value that consists of a
* single item.
*
* Caller can optionally read parameters attached to the item by
- * calling `sf_parser_param`.
+ * calling `sfparse_parser_param`.
*
* Caller should call this function again to make sure that there is
* nothing left to read. If this 2nd function call returns
- * :macro:`SF_ERR_EOF`, all data have been processed successfully.
+ * :macro:`SFPARSE_ERR_EOF`, all data have been processed
+ * successfully.
*
* This function returns 0 if it succeeds, or one of the following
* negative error codes:
*
- * :macro:`SF_ERR_EOF`
+ * :macro:`SFPARSE_ERR_EOF`
* There is nothing left to read.
- * :macro:`SF_ERR_PARSE_ERROR`
+ * :macro:`SFPARSE_ERR_PARSE`
* It encountered fatal error while parsing field value.
*/
-int sf_parser_item(sf_parser *sfp, sf_value *dest);
+int sfparse_parser_item(sfparse_parser *sfp, sfparse_value *dest);
/**
* @function
*
- * `sf_parser_inner_list` reads the next inner list item. If this
- * function returns 0, it stores the item in |dest| if it is not NULL.
+ * `sfparse_parser_inner_list` reads the next inner list item. If
+ * this function returns 0, it stores the item in |dest| if it is not
+ * NULL.
*
* Caller can optionally read parameters attached to the item by
- * calling `sf_parser_param`.
+ * calling `sfparse_parser_param`.
*
* Caller should keep calling this function until it returns negative
- * error code. If it returns :macro:`SF_ERR_EOF`, all values in this
- * inner list have been read, and caller can optionally read
+ * error code. If it returns :macro:`SFPARSE_ERR_EOF`, all values in
+ * this inner list have been read, and caller can optionally read
* parameters attached to this inner list by calling
- * `sf_parser_param`. Then caller can continue to read rest of the
- * values.
+ * `sfparse_parser_param`. Then caller can continue to read rest of
+ * the values.
*
* This function returns 0 if it succeeds, or one of the following
* negative error codes:
*
- * :macro:`SF_ERR_EOF`
+ * :macro:`SFPARSE_ERR_EOF`
* All values in the inner list have read.
- * :macro:`SF_ERR_PARSE_ERROR`
+ * :macro:`SFPARSE_ERR_PARSE`
* It encountered fatal error while parsing field value.
*/
-int sf_parser_inner_list(sf_parser *sfp, sf_value *dest);
+int sfparse_parser_inner_list(sfparse_parser *sfp, sfparse_value *dest);
/**
* @function
*
- * `sf_unescape` copies |src| to |dest| by removing escapes (``\``).
- * |src| should be the pointer to :member:`sf_value.vec` of type
- * :enum:`sf_type.SF_TYPE_STRING` produced by either `sf_parser_dict`,
- * `sf_parser_list`, `sf_parser_inner_list`, `sf_parser_item`, or
- * `sf_parser_param`, otherwise the behavior is undefined.
+ * `sfparse_unescape` copies |src| to |dest| by removing escapes
+ * (``\``). |src| should be the pointer to
+ * :member:`sfparse_value.vec` of type
+ * :enum:`sfparse_type.SFPARSE_TYPE_STRING` produced by either
+ * `sfparse_parser_dict`, `sfparse_parser_list`,
+ * `sfparse_parser_inner_list`, `sfparse_parser_item`, or
+ * `sfparse_parser_param`, otherwise the behavior is undefined.
*
- * :member:`dest->base ` must point to the buffer that
- * has sufficient space to store the unescaped string.
- *
- * If there is no escape character in |src|, |*src| is assigned to
- * |*dest|. This includes the case that :member:`src->len
- * ` == 0.
+ * :member:`dest->base ` must point to the buffer
+ * that has sufficient space to store the unescaped string. The
+ * memory areas pointed by :member:`dest->base ` and
+ * :member:`src->base ` must not overlap.
*
* This function sets the length of unescaped string to
- * :member:`dest->len `.
+ * :member:`dest->len `.
*/
-void sf_unescape(sf_vec *dest, const sf_vec *src);
+void sfparse_unescape(sfparse_vec *dest, const sfparse_vec *src);
/**
* @function
*
- * `sf_base64decode` decodes Base64 encoded string |src| and writes
- * the result into |dest|. |src| should be the pointer to
- * :member:`sf_value.vec` of type :enum:`sf_type.SF_TYPE_BYTESEQ`
- * produced by either `sf_parser_dict`, `sf_parser_list`,
- * `sf_parser_inner_list`, `sf_parser_item`, or `sf_parser_param`,
- * otherwise the behavior is undefined.
+ * `sfparse_base64decode` decodes Base64 encoded string |src| and
+ * writes the result into |dest|. |src| should be the pointer to
+ * :member:`sfparse_value.vec` of type
+ * :enum:`sfparse_type.SFPARSE_TYPE_BYTESEQ` produced by either
+ * `sfparse_parser_dict`, `sfparse_parser_list`,
+ * `sfparse_parser_inner_list`, `sfparse_parser_item`, or
+ * `sfparse_parser_param`, otherwise the behavior is undefined.
+ *
+ * :member:`dest->base ` must point to the buffer
+ * that has sufficient space to store the decoded byte string.
*
- * :member:`dest->base ` must point to the buffer that
- * has sufficient space to store the decoded byte string.
+ * This function sets the length of decoded byte string to
+ * :member:`dest->len `.
+ */
+void sfparse_base64decode(sfparse_vec *dest, const sfparse_vec *src);
+
+/**
+ * @function
+ *
+ * `sfparse_pctdecode` decodes percent-encoded string |src| and writes
+ * the result into |dest|. |src| should be the pointer to
+ * :member:`sfparse_value.vec` of type
+ * :enum:`sfparse_type.SFPARSE_TYPE_DISPSTRING` produced by either
+ * `sfparse_parser_dict`, `sfparse_parser_list`,
+ * `sfparse_parser_inner_list`, `sfparse_parser_item`, or
+ * `sfparse_parser_param`, otherwise the behavior is undefined.
*
- * If :member:`src->len ` == 0, |*src| is assigned to
- * |*dest|.
+ * :member:`dest->base ` must point to the buffer
+ * that has sufficient space to store the decoded byte string. The
+ * memory areas pointed by :member:`dest->base ` and
+ * :member:`src->base ` must not overlap.
*
* This function sets the length of decoded byte string to
- * :member:`dest->len `.
+ * :member:`dest->len `.
*/
-void sf_base64decode(sf_vec *dest, const sf_vec *src);
+void sfparse_pctdecode(sfparse_vec *dest, const sfparse_vec *src);
#ifdef __cplusplus
}
-#endif
+#endif /* defined(__cplusplus) */
-#endif /* SFPARSE_H */
+#endif /* !defined(SFPARSE_H) */
diff --git a/deps/openssl/.gitignore b/deps/openssl/.gitignore
index ef7d3ad4caba66..104bfb441d9a1f 100644
--- a/deps/openssl/.gitignore
+++ b/deps/openssl/.gitignore
@@ -1,5 +1,9 @@
openssl/demos
-openssl/doc
+openssl/doc/*
+!openssl/doc/man1
+openssl/doc/man1/*
+!openssl/doc/man1/build.info
+!openssl/doc/build.info
openssl/fuzz/corpora
openssl/makefile.in
openssl/Makefile.in
diff --git a/deps/openssl/config/Dockerfile b/deps/openssl/config/Dockerfile
index 5133a88b0d33e2..9929a9315ead91 100644
--- a/deps/openssl/config/Dockerfile
+++ b/deps/openssl/config/Dockerfile
@@ -1,4 +1,4 @@
-FROM ubuntu:20.04
+FROM ubuntu:22.04
VOLUME /node
diff --git a/deps/openssl/openssl-cl_asm.gypi b/deps/openssl/openssl-cl_asm.gypi
index cd10355c171228..2e58f0dcb094a0 100644
--- a/deps/openssl/openssl-cl_asm.gypi
+++ b/deps/openssl/openssl-cl_asm.gypi
@@ -8,7 +8,7 @@
'includes': ['config/archs/linux64-s390x/asm/openssl-cl.gypi'],
}, 'target_arch=="arm" and OS=="linux"', {
'includes': ['config/archs/linux-armv4/asm/openssl-cl.gypi'],
- }, 'target_arch=="arm64" and OS=="linux"', {
+ }, 'target_arch=="arm64" and OS in "linux openharmony"', {
'includes': ['config/archs/linux-aarch64/asm/openssl-cl.gypi'],
}, 'target_arch=="ia32" and OS=="freebsd"', {
'includes': ['config/archs/BSD-x86/asm/openssl-cl.gypi'],
diff --git a/deps/openssl/openssl-cl_asm_avx2.gypi b/deps/openssl/openssl-cl_asm_avx2.gypi
index 50b5a9c375bd8d..03056a832d0322 100644
--- a/deps/openssl/openssl-cl_asm_avx2.gypi
+++ b/deps/openssl/openssl-cl_asm_avx2.gypi
@@ -8,7 +8,7 @@
'includes': ['config/archs/linux64-s390x/asm_avx2/openssl-cl.gypi'],
}, 'target_arch=="arm" and OS=="linux"', {
'includes': ['config/archs/linux-armv4/asm_avx2/openssl-cl.gypi'],
- }, 'target_arch=="arm64" and OS=="linux"', {
+ }, 'target_arch=="arm64" and OS in "linux openharmony"', {
'includes': ['config/archs/linux-aarch64/asm_avx2/openssl-cl.gypi'],
}, 'target_arch=="ia32" and OS=="freebsd"', {
'includes': ['config/archs/BSD-x86/asm_avx2/openssl-cl.gypi'],
diff --git a/deps/openssl/openssl-cl_no_asm.gypi b/deps/openssl/openssl-cl_no_asm.gypi
index 0964fb36739b3a..c838da5cf9ea85 100644
--- a/deps/openssl/openssl-cl_no_asm.gypi
+++ b/deps/openssl/openssl-cl_no_asm.gypi
@@ -8,7 +8,7 @@
'includes': ['config/archs/linux64-s390x/no-asm/openssl-cl.gypi'],
}, 'target_arch=="arm" and OS in ("linux", "android")', {
'includes': ['config/archs/linux-armv4/no-asm/openssl-cl.gypi'],
- }, 'target_arch=="arm64" and OS in ("linux", "android")', {
+ }, 'target_arch=="arm64" and OS in ("linux", "android", "openharmony")', {
'includes': ['config/archs/linux-aarch64/no-asm/openssl-cl.gypi'],
}, 'target_arch=="arm64" and OS=="win"', {
'includes': ['config/archs/VC-WIN64-ARM/no-asm/openssl-cl.gypi'],
diff --git a/deps/openssl/openssl-cli.gypi b/deps/openssl/openssl-cli.gypi
index b4c278b4fe8f9f..ae74be9a2b17d2 100644
--- a/deps/openssl/openssl-cli.gypi
+++ b/deps/openssl/openssl-cli.gypi
@@ -14,7 +14,7 @@
'link_settings': {
'libraries': ['<@(openssl_cli_libraries_win)'],
},
- }, 'OS in "linux android"', {
+ }, 'OS in "linux android openharmony"', {
'link_settings': {
'libraries': [
'-ldl',
diff --git a/deps/openssl/openssl-fips_asm.gypi b/deps/openssl/openssl-fips_asm.gypi
index 631df9eb893288..633aae4b386759 100644
--- a/deps/openssl/openssl-fips_asm.gypi
+++ b/deps/openssl/openssl-fips_asm.gypi
@@ -8,7 +8,7 @@
'includes': ['config/archs/linux64-s390x/asm/openssl-fips.gypi'],
}, 'target_arch=="arm" and OS=="linux"', {
'includes': ['config/archs/linux-armv4/asm/openssl-fips.gypi'],
- }, 'target_arch=="arm64" and OS=="linux"', {
+ }, 'target_arch=="arm64" and OS in "linux openharmony"', {
'includes': ['config/archs/linux-aarch64/asm/openssl-fips.gypi'],
}, 'target_arch=="arm64" and OS=="mac"', {
'includes': ['config/archs/darwin64-arm64-cc/asm/openssl-fips.gypi'],
diff --git a/deps/openssl/openssl-fips_asm_avx2.gypi b/deps/openssl/openssl-fips_asm_avx2.gypi
index 4d63cacf29d040..74cc78c42a7b15 100644
--- a/deps/openssl/openssl-fips_asm_avx2.gypi
+++ b/deps/openssl/openssl-fips_asm_avx2.gypi
@@ -8,7 +8,7 @@
'includes': ['config/archs/linux64-s390x/asm_avx2/openssl-fips.gypi'],
}, 'target_arch=="arm" and OS=="linux"', {
'includes': ['config/archs/linux-armv4/asm_avx2/openssl-fips.gypi'],
- }, 'target_arch=="arm64" and OS=="linux"', {
+ }, 'target_arch=="arm64" and OS in "linux openharmony"', {
'includes': ['config/archs/linux-aarch64/asm_avx2/openssl-fips.gypi'],
}, 'target_arch=="ia32" and OS=="freebsd"', {
'includes': ['config/archs/BSD-x86/asm_avx2/openssl-fips.gypi'],
diff --git a/deps/openssl/openssl-fips_no_asm.gypi b/deps/openssl/openssl-fips_no_asm.gypi
index 7fdfd772abbce8..ab8074cf4397a5 100644
--- a/deps/openssl/openssl-fips_no_asm.gypi
+++ b/deps/openssl/openssl-fips_no_asm.gypi
@@ -9,7 +9,7 @@
'includes': ['config/archs/linux64-s390x/no-asm/openssl-fips.gypi'],
}, 'target_arch=="arm" and OS in ("linux", "android")', {
'includes': ['config/archs/linux-armv4/no-asm/openssl-fips.gypi'],
- }, 'target_arch=="arm64" and OS in ("linux", "android")', {
+ }, 'target_arch=="arm64" and OS in ("linux", "android", "openharmony")', {
'includes': ['config/archs/linux-aarch64/no-asm/openssl-fips.gypi'],
}, 'target_arch=="ia32" and OS=="freebsd"', {
'includes': ['config/archs/BSD-x86/no-asm/openssl-fips.gypi'],
diff --git a/deps/openssl/openssl/doc/build.info b/deps/openssl/openssl/doc/build.info
new file mode 100644
index 00000000000000..0279e2390a3242
--- /dev/null
+++ b/deps/openssl/openssl/doc/build.info
@@ -0,0 +1,4902 @@
+SUBDIRS = man1
+
+DEPEND[html/man1/CA.pl.html]=man1/CA.pl.pod
+GENERATE[html/man1/CA.pl.html]=man1/CA.pl.pod
+DEPEND[man/man1/CA.pl.1]=man1/CA.pl.pod
+GENERATE[man/man1/CA.pl.1]=man1/CA.pl.pod
+DEPEND[html/man1/openssl-asn1parse.html]=man1/openssl-asn1parse.pod
+GENERATE[html/man1/openssl-asn1parse.html]=man1/openssl-asn1parse.pod
+DEPEND[man/man1/openssl-asn1parse.1]=man1/openssl-asn1parse.pod
+GENERATE[man/man1/openssl-asn1parse.1]=man1/openssl-asn1parse.pod
+DEPEND[man1/openssl-asn1parse.pod]{pod}=man1/openssl-asn1parse.pod.in
+GENERATE[man1/openssl-asn1parse.pod]=man1/openssl-asn1parse.pod.in
+DEPEND[html/man1/openssl-ca.html]=man1/openssl-ca.pod
+GENERATE[html/man1/openssl-ca.html]=man1/openssl-ca.pod
+DEPEND[man/man1/openssl-ca.1]=man1/openssl-ca.pod
+GENERATE[man/man1/openssl-ca.1]=man1/openssl-ca.pod
+DEPEND[man1/openssl-ca.pod]{pod}=man1/openssl-ca.pod.in
+GENERATE[man1/openssl-ca.pod]=man1/openssl-ca.pod.in
+DEPEND[html/man1/openssl-ciphers.html]=man1/openssl-ciphers.pod
+GENERATE[html/man1/openssl-ciphers.html]=man1/openssl-ciphers.pod
+DEPEND[man/man1/openssl-ciphers.1]=man1/openssl-ciphers.pod
+GENERATE[man/man1/openssl-ciphers.1]=man1/openssl-ciphers.pod
+DEPEND[man1/openssl-ciphers.pod]{pod}=man1/openssl-ciphers.pod.in
+GENERATE[man1/openssl-ciphers.pod]=man1/openssl-ciphers.pod.in
+DEPEND[html/man1/openssl-cmds.html]=man1/openssl-cmds.pod
+GENERATE[html/man1/openssl-cmds.html]=man1/openssl-cmds.pod
+DEPEND[man/man1/openssl-cmds.1]=man1/openssl-cmds.pod
+GENERATE[man/man1/openssl-cmds.1]=man1/openssl-cmds.pod
+DEPEND[man1/openssl-cmds.pod]{pod}=man1/openssl-cmds.pod.in
+GENERATE[man1/openssl-cmds.pod]=man1/openssl-cmds.pod.in
+DEPEND[html/man1/openssl-cmp.html]=man1/openssl-cmp.pod
+GENERATE[html/man1/openssl-cmp.html]=man1/openssl-cmp.pod
+DEPEND[man/man1/openssl-cmp.1]=man1/openssl-cmp.pod
+GENERATE[man/man1/openssl-cmp.1]=man1/openssl-cmp.pod
+DEPEND[man1/openssl-cmp.pod]{pod}=man1/openssl-cmp.pod.in
+GENERATE[man1/openssl-cmp.pod]=man1/openssl-cmp.pod.in
+DEPEND[html/man1/openssl-cms.html]=man1/openssl-cms.pod
+GENERATE[html/man1/openssl-cms.html]=man1/openssl-cms.pod
+DEPEND[man/man1/openssl-cms.1]=man1/openssl-cms.pod
+GENERATE[man/man1/openssl-cms.1]=man1/openssl-cms.pod
+DEPEND[man1/openssl-cms.pod]{pod}=man1/openssl-cms.pod.in
+GENERATE[man1/openssl-cms.pod]=man1/openssl-cms.pod.in
+DEPEND[html/man1/openssl-crl.html]=man1/openssl-crl.pod
+GENERATE[html/man1/openssl-crl.html]=man1/openssl-crl.pod
+DEPEND[man/man1/openssl-crl.1]=man1/openssl-crl.pod
+GENERATE[man/man1/openssl-crl.1]=man1/openssl-crl.pod
+DEPEND[man1/openssl-crl.pod]{pod}=man1/openssl-crl.pod.in
+GENERATE[man1/openssl-crl.pod]=man1/openssl-crl.pod.in
+DEPEND[html/man1/openssl-crl2pkcs7.html]=man1/openssl-crl2pkcs7.pod
+GENERATE[html/man1/openssl-crl2pkcs7.html]=man1/openssl-crl2pkcs7.pod
+DEPEND[man/man1/openssl-crl2pkcs7.1]=man1/openssl-crl2pkcs7.pod
+GENERATE[man/man1/openssl-crl2pkcs7.1]=man1/openssl-crl2pkcs7.pod
+DEPEND[man1/openssl-crl2pkcs7.pod]{pod}=man1/openssl-crl2pkcs7.pod.in
+GENERATE[man1/openssl-crl2pkcs7.pod]=man1/openssl-crl2pkcs7.pod.in
+DEPEND[html/man1/openssl-dgst.html]=man1/openssl-dgst.pod
+GENERATE[html/man1/openssl-dgst.html]=man1/openssl-dgst.pod
+DEPEND[man/man1/openssl-dgst.1]=man1/openssl-dgst.pod
+GENERATE[man/man1/openssl-dgst.1]=man1/openssl-dgst.pod
+DEPEND[man1/openssl-dgst.pod]{pod}=man1/openssl-dgst.pod.in
+GENERATE[man1/openssl-dgst.pod]=man1/openssl-dgst.pod.in
+DEPEND[html/man1/openssl-dhparam.html]=man1/openssl-dhparam.pod
+GENERATE[html/man1/openssl-dhparam.html]=man1/openssl-dhparam.pod
+DEPEND[man/man1/openssl-dhparam.1]=man1/openssl-dhparam.pod
+GENERATE[man/man1/openssl-dhparam.1]=man1/openssl-dhparam.pod
+DEPEND[man1/openssl-dhparam.pod]{pod}=man1/openssl-dhparam.pod.in
+GENERATE[man1/openssl-dhparam.pod]=man1/openssl-dhparam.pod.in
+DEPEND[html/man1/openssl-dsa.html]=man1/openssl-dsa.pod
+GENERATE[html/man1/openssl-dsa.html]=man1/openssl-dsa.pod
+DEPEND[man/man1/openssl-dsa.1]=man1/openssl-dsa.pod
+GENERATE[man/man1/openssl-dsa.1]=man1/openssl-dsa.pod
+DEPEND[man1/openssl-dsa.pod]{pod}=man1/openssl-dsa.pod.in
+GENERATE[man1/openssl-dsa.pod]=man1/openssl-dsa.pod.in
+DEPEND[html/man1/openssl-dsaparam.html]=man1/openssl-dsaparam.pod
+GENERATE[html/man1/openssl-dsaparam.html]=man1/openssl-dsaparam.pod
+DEPEND[man/man1/openssl-dsaparam.1]=man1/openssl-dsaparam.pod
+GENERATE[man/man1/openssl-dsaparam.1]=man1/openssl-dsaparam.pod
+DEPEND[man1/openssl-dsaparam.pod]{pod}=man1/openssl-dsaparam.pod.in
+GENERATE[man1/openssl-dsaparam.pod]=man1/openssl-dsaparam.pod.in
+DEPEND[html/man1/openssl-ec.html]=man1/openssl-ec.pod
+GENERATE[html/man1/openssl-ec.html]=man1/openssl-ec.pod
+DEPEND[man/man1/openssl-ec.1]=man1/openssl-ec.pod
+GENERATE[man/man1/openssl-ec.1]=man1/openssl-ec.pod
+DEPEND[man1/openssl-ec.pod]{pod}=man1/openssl-ec.pod.in
+GENERATE[man1/openssl-ec.pod]=man1/openssl-ec.pod.in
+DEPEND[html/man1/openssl-ecparam.html]=man1/openssl-ecparam.pod
+GENERATE[html/man1/openssl-ecparam.html]=man1/openssl-ecparam.pod
+DEPEND[man/man1/openssl-ecparam.1]=man1/openssl-ecparam.pod
+GENERATE[man/man1/openssl-ecparam.1]=man1/openssl-ecparam.pod
+DEPEND[man1/openssl-ecparam.pod]{pod}=man1/openssl-ecparam.pod.in
+GENERATE[man1/openssl-ecparam.pod]=man1/openssl-ecparam.pod.in
+DEPEND[html/man1/openssl-enc.html]=man1/openssl-enc.pod
+GENERATE[html/man1/openssl-enc.html]=man1/openssl-enc.pod
+DEPEND[man/man1/openssl-enc.1]=man1/openssl-enc.pod
+GENERATE[man/man1/openssl-enc.1]=man1/openssl-enc.pod
+DEPEND[man1/openssl-enc.pod]{pod}=man1/openssl-enc.pod.in
+GENERATE[man1/openssl-enc.pod]=man1/openssl-enc.pod.in
+DEPEND[html/man1/openssl-engine.html]=man1/openssl-engine.pod
+GENERATE[html/man1/openssl-engine.html]=man1/openssl-engine.pod
+DEPEND[man/man1/openssl-engine.1]=man1/openssl-engine.pod
+GENERATE[man/man1/openssl-engine.1]=man1/openssl-engine.pod
+DEPEND[man1/openssl-engine.pod]{pod}=man1/openssl-engine.pod.in
+GENERATE[man1/openssl-engine.pod]=man1/openssl-engine.pod.in
+DEPEND[html/man1/openssl-errstr.html]=man1/openssl-errstr.pod
+GENERATE[html/man1/openssl-errstr.html]=man1/openssl-errstr.pod
+DEPEND[man/man1/openssl-errstr.1]=man1/openssl-errstr.pod
+GENERATE[man/man1/openssl-errstr.1]=man1/openssl-errstr.pod
+DEPEND[man1/openssl-errstr.pod]{pod}=man1/openssl-errstr.pod.in
+GENERATE[man1/openssl-errstr.pod]=man1/openssl-errstr.pod.in
+DEPEND[html/man1/openssl-fipsinstall.html]=man1/openssl-fipsinstall.pod
+GENERATE[html/man1/openssl-fipsinstall.html]=man1/openssl-fipsinstall.pod
+DEPEND[man/man1/openssl-fipsinstall.1]=man1/openssl-fipsinstall.pod
+GENERATE[man/man1/openssl-fipsinstall.1]=man1/openssl-fipsinstall.pod
+DEPEND[man1/openssl-fipsinstall.pod]{pod}=man1/openssl-fipsinstall.pod.in
+GENERATE[man1/openssl-fipsinstall.pod]=man1/openssl-fipsinstall.pod.in
+DEPEND[html/man1/openssl-format-options.html]=man1/openssl-format-options.pod
+GENERATE[html/man1/openssl-format-options.html]=man1/openssl-format-options.pod
+DEPEND[man/man1/openssl-format-options.1]=man1/openssl-format-options.pod
+GENERATE[man/man1/openssl-format-options.1]=man1/openssl-format-options.pod
+DEPEND[html/man1/openssl-gendsa.html]=man1/openssl-gendsa.pod
+GENERATE[html/man1/openssl-gendsa.html]=man1/openssl-gendsa.pod
+DEPEND[man/man1/openssl-gendsa.1]=man1/openssl-gendsa.pod
+GENERATE[man/man1/openssl-gendsa.1]=man1/openssl-gendsa.pod
+DEPEND[man1/openssl-gendsa.pod]{pod}=man1/openssl-gendsa.pod.in
+GENERATE[man1/openssl-gendsa.pod]=man1/openssl-gendsa.pod.in
+DEPEND[html/man1/openssl-genpkey.html]=man1/openssl-genpkey.pod
+GENERATE[html/man1/openssl-genpkey.html]=man1/openssl-genpkey.pod
+DEPEND[man/man1/openssl-genpkey.1]=man1/openssl-genpkey.pod
+GENERATE[man/man1/openssl-genpkey.1]=man1/openssl-genpkey.pod
+DEPEND[man1/openssl-genpkey.pod]{pod}=man1/openssl-genpkey.pod.in
+GENERATE[man1/openssl-genpkey.pod]=man1/openssl-genpkey.pod.in
+DEPEND[html/man1/openssl-genrsa.html]=man1/openssl-genrsa.pod
+GENERATE[html/man1/openssl-genrsa.html]=man1/openssl-genrsa.pod
+DEPEND[man/man1/openssl-genrsa.1]=man1/openssl-genrsa.pod
+GENERATE[man/man1/openssl-genrsa.1]=man1/openssl-genrsa.pod
+DEPEND[man1/openssl-genrsa.pod]{pod}=man1/openssl-genrsa.pod.in
+GENERATE[man1/openssl-genrsa.pod]=man1/openssl-genrsa.pod.in
+DEPEND[html/man1/openssl-info.html]=man1/openssl-info.pod
+GENERATE[html/man1/openssl-info.html]=man1/openssl-info.pod
+DEPEND[man/man1/openssl-info.1]=man1/openssl-info.pod
+GENERATE[man/man1/openssl-info.1]=man1/openssl-info.pod
+DEPEND[man1/openssl-info.pod]{pod}=man1/openssl-info.pod.in
+GENERATE[man1/openssl-info.pod]=man1/openssl-info.pod.in
+DEPEND[html/man1/openssl-kdf.html]=man1/openssl-kdf.pod
+GENERATE[html/man1/openssl-kdf.html]=man1/openssl-kdf.pod
+DEPEND[man/man1/openssl-kdf.1]=man1/openssl-kdf.pod
+GENERATE[man/man1/openssl-kdf.1]=man1/openssl-kdf.pod
+DEPEND[man1/openssl-kdf.pod]{pod}=man1/openssl-kdf.pod.in
+GENERATE[man1/openssl-kdf.pod]=man1/openssl-kdf.pod.in
+DEPEND[html/man1/openssl-list.html]=man1/openssl-list.pod
+GENERATE[html/man1/openssl-list.html]=man1/openssl-list.pod
+DEPEND[man/man1/openssl-list.1]=man1/openssl-list.pod
+GENERATE[man/man1/openssl-list.1]=man1/openssl-list.pod
+DEPEND[man1/openssl-list.pod]{pod}=man1/openssl-list.pod.in
+GENERATE[man1/openssl-list.pod]=man1/openssl-list.pod.in
+DEPEND[html/man1/openssl-mac.html]=man1/openssl-mac.pod
+GENERATE[html/man1/openssl-mac.html]=man1/openssl-mac.pod
+DEPEND[man/man1/openssl-mac.1]=man1/openssl-mac.pod
+GENERATE[man/man1/openssl-mac.1]=man1/openssl-mac.pod
+DEPEND[man1/openssl-mac.pod]{pod}=man1/openssl-mac.pod.in
+GENERATE[man1/openssl-mac.pod]=man1/openssl-mac.pod.in
+DEPEND[html/man1/openssl-namedisplay-options.html]=man1/openssl-namedisplay-options.pod
+GENERATE[html/man1/openssl-namedisplay-options.html]=man1/openssl-namedisplay-options.pod
+DEPEND[man/man1/openssl-namedisplay-options.1]=man1/openssl-namedisplay-options.pod
+GENERATE[man/man1/openssl-namedisplay-options.1]=man1/openssl-namedisplay-options.pod
+DEPEND[html/man1/openssl-nseq.html]=man1/openssl-nseq.pod
+GENERATE[html/man1/openssl-nseq.html]=man1/openssl-nseq.pod
+DEPEND[man/man1/openssl-nseq.1]=man1/openssl-nseq.pod
+GENERATE[man/man1/openssl-nseq.1]=man1/openssl-nseq.pod
+DEPEND[man1/openssl-nseq.pod]{pod}=man1/openssl-nseq.pod.in
+GENERATE[man1/openssl-nseq.pod]=man1/openssl-nseq.pod.in
+DEPEND[html/man1/openssl-ocsp.html]=man1/openssl-ocsp.pod
+GENERATE[html/man1/openssl-ocsp.html]=man1/openssl-ocsp.pod
+DEPEND[man/man1/openssl-ocsp.1]=man1/openssl-ocsp.pod
+GENERATE[man/man1/openssl-ocsp.1]=man1/openssl-ocsp.pod
+DEPEND[man1/openssl-ocsp.pod]{pod}=man1/openssl-ocsp.pod.in
+GENERATE[man1/openssl-ocsp.pod]=man1/openssl-ocsp.pod.in
+DEPEND[html/man1/openssl-passphrase-options.html]=man1/openssl-passphrase-options.pod
+GENERATE[html/man1/openssl-passphrase-options.html]=man1/openssl-passphrase-options.pod
+DEPEND[man/man1/openssl-passphrase-options.1]=man1/openssl-passphrase-options.pod
+GENERATE[man/man1/openssl-passphrase-options.1]=man1/openssl-passphrase-options.pod
+DEPEND[html/man1/openssl-passwd.html]=man1/openssl-passwd.pod
+GENERATE[html/man1/openssl-passwd.html]=man1/openssl-passwd.pod
+DEPEND[man/man1/openssl-passwd.1]=man1/openssl-passwd.pod
+GENERATE[man/man1/openssl-passwd.1]=man1/openssl-passwd.pod
+DEPEND[man1/openssl-passwd.pod]{pod}=man1/openssl-passwd.pod.in
+GENERATE[man1/openssl-passwd.pod]=man1/openssl-passwd.pod.in
+DEPEND[html/man1/openssl-pkcs12.html]=man1/openssl-pkcs12.pod
+GENERATE[html/man1/openssl-pkcs12.html]=man1/openssl-pkcs12.pod
+DEPEND[man/man1/openssl-pkcs12.1]=man1/openssl-pkcs12.pod
+GENERATE[man/man1/openssl-pkcs12.1]=man1/openssl-pkcs12.pod
+DEPEND[man1/openssl-pkcs12.pod]{pod}=man1/openssl-pkcs12.pod.in
+GENERATE[man1/openssl-pkcs12.pod]=man1/openssl-pkcs12.pod.in
+DEPEND[html/man1/openssl-pkcs7.html]=man1/openssl-pkcs7.pod
+GENERATE[html/man1/openssl-pkcs7.html]=man1/openssl-pkcs7.pod
+DEPEND[man/man1/openssl-pkcs7.1]=man1/openssl-pkcs7.pod
+GENERATE[man/man1/openssl-pkcs7.1]=man1/openssl-pkcs7.pod
+DEPEND[man1/openssl-pkcs7.pod]{pod}=man1/openssl-pkcs7.pod.in
+GENERATE[man1/openssl-pkcs7.pod]=man1/openssl-pkcs7.pod.in
+DEPEND[html/man1/openssl-pkcs8.html]=man1/openssl-pkcs8.pod
+GENERATE[html/man1/openssl-pkcs8.html]=man1/openssl-pkcs8.pod
+DEPEND[man/man1/openssl-pkcs8.1]=man1/openssl-pkcs8.pod
+GENERATE[man/man1/openssl-pkcs8.1]=man1/openssl-pkcs8.pod
+DEPEND[man1/openssl-pkcs8.pod]{pod}=man1/openssl-pkcs8.pod.in
+GENERATE[man1/openssl-pkcs8.pod]=man1/openssl-pkcs8.pod.in
+DEPEND[html/man1/openssl-pkey.html]=man1/openssl-pkey.pod
+GENERATE[html/man1/openssl-pkey.html]=man1/openssl-pkey.pod
+DEPEND[man/man1/openssl-pkey.1]=man1/openssl-pkey.pod
+GENERATE[man/man1/openssl-pkey.1]=man1/openssl-pkey.pod
+DEPEND[man1/openssl-pkey.pod]{pod}=man1/openssl-pkey.pod.in
+GENERATE[man1/openssl-pkey.pod]=man1/openssl-pkey.pod.in
+DEPEND[html/man1/openssl-pkeyparam.html]=man1/openssl-pkeyparam.pod
+GENERATE[html/man1/openssl-pkeyparam.html]=man1/openssl-pkeyparam.pod
+DEPEND[man/man1/openssl-pkeyparam.1]=man1/openssl-pkeyparam.pod
+GENERATE[man/man1/openssl-pkeyparam.1]=man1/openssl-pkeyparam.pod
+DEPEND[man1/openssl-pkeyparam.pod]{pod}=man1/openssl-pkeyparam.pod.in
+GENERATE[man1/openssl-pkeyparam.pod]=man1/openssl-pkeyparam.pod.in
+DEPEND[html/man1/openssl-pkeyutl.html]=man1/openssl-pkeyutl.pod
+GENERATE[html/man1/openssl-pkeyutl.html]=man1/openssl-pkeyutl.pod
+DEPEND[man/man1/openssl-pkeyutl.1]=man1/openssl-pkeyutl.pod
+GENERATE[man/man1/openssl-pkeyutl.1]=man1/openssl-pkeyutl.pod
+DEPEND[man1/openssl-pkeyutl.pod]{pod}=man1/openssl-pkeyutl.pod.in
+GENERATE[man1/openssl-pkeyutl.pod]=man1/openssl-pkeyutl.pod.in
+DEPEND[html/man1/openssl-prime.html]=man1/openssl-prime.pod
+GENERATE[html/man1/openssl-prime.html]=man1/openssl-prime.pod
+DEPEND[man/man1/openssl-prime.1]=man1/openssl-prime.pod
+GENERATE[man/man1/openssl-prime.1]=man1/openssl-prime.pod
+DEPEND[man1/openssl-prime.pod]{pod}=man1/openssl-prime.pod.in
+GENERATE[man1/openssl-prime.pod]=man1/openssl-prime.pod.in
+DEPEND[html/man1/openssl-rand.html]=man1/openssl-rand.pod
+GENERATE[html/man1/openssl-rand.html]=man1/openssl-rand.pod
+DEPEND[man/man1/openssl-rand.1]=man1/openssl-rand.pod
+GENERATE[man/man1/openssl-rand.1]=man1/openssl-rand.pod
+DEPEND[man1/openssl-rand.pod]{pod}=man1/openssl-rand.pod.in
+GENERATE[man1/openssl-rand.pod]=man1/openssl-rand.pod.in
+DEPEND[html/man1/openssl-rehash.html]=man1/openssl-rehash.pod
+GENERATE[html/man1/openssl-rehash.html]=man1/openssl-rehash.pod
+DEPEND[man/man1/openssl-rehash.1]=man1/openssl-rehash.pod
+GENERATE[man/man1/openssl-rehash.1]=man1/openssl-rehash.pod
+DEPEND[man1/openssl-rehash.pod]{pod}=man1/openssl-rehash.pod.in
+GENERATE[man1/openssl-rehash.pod]=man1/openssl-rehash.pod.in
+DEPEND[html/man1/openssl-req.html]=man1/openssl-req.pod
+GENERATE[html/man1/openssl-req.html]=man1/openssl-req.pod
+DEPEND[man/man1/openssl-req.1]=man1/openssl-req.pod
+GENERATE[man/man1/openssl-req.1]=man1/openssl-req.pod
+DEPEND[man1/openssl-req.pod]{pod}=man1/openssl-req.pod.in
+GENERATE[man1/openssl-req.pod]=man1/openssl-req.pod.in
+DEPEND[html/man1/openssl-rsa.html]=man1/openssl-rsa.pod
+GENERATE[html/man1/openssl-rsa.html]=man1/openssl-rsa.pod
+DEPEND[man/man1/openssl-rsa.1]=man1/openssl-rsa.pod
+GENERATE[man/man1/openssl-rsa.1]=man1/openssl-rsa.pod
+DEPEND[man1/openssl-rsa.pod]{pod}=man1/openssl-rsa.pod.in
+GENERATE[man1/openssl-rsa.pod]=man1/openssl-rsa.pod.in
+DEPEND[html/man1/openssl-rsautl.html]=man1/openssl-rsautl.pod
+GENERATE[html/man1/openssl-rsautl.html]=man1/openssl-rsautl.pod
+DEPEND[man/man1/openssl-rsautl.1]=man1/openssl-rsautl.pod
+GENERATE[man/man1/openssl-rsautl.1]=man1/openssl-rsautl.pod
+DEPEND[man1/openssl-rsautl.pod]{pod}=man1/openssl-rsautl.pod.in
+GENERATE[man1/openssl-rsautl.pod]=man1/openssl-rsautl.pod.in
+DEPEND[html/man1/openssl-s_client.html]=man1/openssl-s_client.pod
+GENERATE[html/man1/openssl-s_client.html]=man1/openssl-s_client.pod
+DEPEND[man/man1/openssl-s_client.1]=man1/openssl-s_client.pod
+GENERATE[man/man1/openssl-s_client.1]=man1/openssl-s_client.pod
+DEPEND[man1/openssl-s_client.pod]{pod}=man1/openssl-s_client.pod.in
+GENERATE[man1/openssl-s_client.pod]=man1/openssl-s_client.pod.in
+DEPEND[html/man1/openssl-s_server.html]=man1/openssl-s_server.pod
+GENERATE[html/man1/openssl-s_server.html]=man1/openssl-s_server.pod
+DEPEND[man/man1/openssl-s_server.1]=man1/openssl-s_server.pod
+GENERATE[man/man1/openssl-s_server.1]=man1/openssl-s_server.pod
+DEPEND[man1/openssl-s_server.pod]{pod}=man1/openssl-s_server.pod.in
+GENERATE[man1/openssl-s_server.pod]=man1/openssl-s_server.pod.in
+DEPEND[html/man1/openssl-s_time.html]=man1/openssl-s_time.pod
+GENERATE[html/man1/openssl-s_time.html]=man1/openssl-s_time.pod
+DEPEND[man/man1/openssl-s_time.1]=man1/openssl-s_time.pod
+GENERATE[man/man1/openssl-s_time.1]=man1/openssl-s_time.pod
+DEPEND[man1/openssl-s_time.pod]{pod}=man1/openssl-s_time.pod.in
+GENERATE[man1/openssl-s_time.pod]=man1/openssl-s_time.pod.in
+DEPEND[html/man1/openssl-sess_id.html]=man1/openssl-sess_id.pod
+GENERATE[html/man1/openssl-sess_id.html]=man1/openssl-sess_id.pod
+DEPEND[man/man1/openssl-sess_id.1]=man1/openssl-sess_id.pod
+GENERATE[man/man1/openssl-sess_id.1]=man1/openssl-sess_id.pod
+DEPEND[man1/openssl-sess_id.pod]{pod}=man1/openssl-sess_id.pod.in
+GENERATE[man1/openssl-sess_id.pod]=man1/openssl-sess_id.pod.in
+DEPEND[html/man1/openssl-smime.html]=man1/openssl-smime.pod
+GENERATE[html/man1/openssl-smime.html]=man1/openssl-smime.pod
+DEPEND[man/man1/openssl-smime.1]=man1/openssl-smime.pod
+GENERATE[man/man1/openssl-smime.1]=man1/openssl-smime.pod
+DEPEND[man1/openssl-smime.pod]{pod}=man1/openssl-smime.pod.in
+GENERATE[man1/openssl-smime.pod]=man1/openssl-smime.pod.in
+DEPEND[html/man1/openssl-speed.html]=man1/openssl-speed.pod
+GENERATE[html/man1/openssl-speed.html]=man1/openssl-speed.pod
+DEPEND[man/man1/openssl-speed.1]=man1/openssl-speed.pod
+GENERATE[man/man1/openssl-speed.1]=man1/openssl-speed.pod
+DEPEND[man1/openssl-speed.pod]{pod}=man1/openssl-speed.pod.in
+GENERATE[man1/openssl-speed.pod]=man1/openssl-speed.pod.in
+DEPEND[html/man1/openssl-spkac.html]=man1/openssl-spkac.pod
+GENERATE[html/man1/openssl-spkac.html]=man1/openssl-spkac.pod
+DEPEND[man/man1/openssl-spkac.1]=man1/openssl-spkac.pod
+GENERATE[man/man1/openssl-spkac.1]=man1/openssl-spkac.pod
+DEPEND[man1/openssl-spkac.pod]{pod}=man1/openssl-spkac.pod.in
+GENERATE[man1/openssl-spkac.pod]=man1/openssl-spkac.pod.in
+DEPEND[html/man1/openssl-srp.html]=man1/openssl-srp.pod
+GENERATE[html/man1/openssl-srp.html]=man1/openssl-srp.pod
+DEPEND[man/man1/openssl-srp.1]=man1/openssl-srp.pod
+GENERATE[man/man1/openssl-srp.1]=man1/openssl-srp.pod
+DEPEND[man1/openssl-srp.pod]{pod}=man1/openssl-srp.pod.in
+GENERATE[man1/openssl-srp.pod]=man1/openssl-srp.pod.in
+DEPEND[html/man1/openssl-storeutl.html]=man1/openssl-storeutl.pod
+GENERATE[html/man1/openssl-storeutl.html]=man1/openssl-storeutl.pod
+DEPEND[man/man1/openssl-storeutl.1]=man1/openssl-storeutl.pod
+GENERATE[man/man1/openssl-storeutl.1]=man1/openssl-storeutl.pod
+DEPEND[man1/openssl-storeutl.pod]{pod}=man1/openssl-storeutl.pod.in
+GENERATE[man1/openssl-storeutl.pod]=man1/openssl-storeutl.pod.in
+DEPEND[html/man1/openssl-ts.html]=man1/openssl-ts.pod
+GENERATE[html/man1/openssl-ts.html]=man1/openssl-ts.pod
+DEPEND[man/man1/openssl-ts.1]=man1/openssl-ts.pod
+GENERATE[man/man1/openssl-ts.1]=man1/openssl-ts.pod
+DEPEND[man1/openssl-ts.pod]{pod}=man1/openssl-ts.pod.in
+GENERATE[man1/openssl-ts.pod]=man1/openssl-ts.pod.in
+DEPEND[html/man1/openssl-verification-options.html]=man1/openssl-verification-options.pod
+GENERATE[html/man1/openssl-verification-options.html]=man1/openssl-verification-options.pod
+DEPEND[man/man1/openssl-verification-options.1]=man1/openssl-verification-options.pod
+GENERATE[man/man1/openssl-verification-options.1]=man1/openssl-verification-options.pod
+DEPEND[html/man1/openssl-verify.html]=man1/openssl-verify.pod
+GENERATE[html/man1/openssl-verify.html]=man1/openssl-verify.pod
+DEPEND[man/man1/openssl-verify.1]=man1/openssl-verify.pod
+GENERATE[man/man1/openssl-verify.1]=man1/openssl-verify.pod
+DEPEND[man1/openssl-verify.pod]{pod}=man1/openssl-verify.pod.in
+GENERATE[man1/openssl-verify.pod]=man1/openssl-verify.pod.in
+DEPEND[html/man1/openssl-version.html]=man1/openssl-version.pod
+GENERATE[html/man1/openssl-version.html]=man1/openssl-version.pod
+DEPEND[man/man1/openssl-version.1]=man1/openssl-version.pod
+GENERATE[man/man1/openssl-version.1]=man1/openssl-version.pod
+DEPEND[man1/openssl-version.pod]{pod}=man1/openssl-version.pod.in
+GENERATE[man1/openssl-version.pod]=man1/openssl-version.pod.in
+DEPEND[html/man1/openssl-x509.html]=man1/openssl-x509.pod
+GENERATE[html/man1/openssl-x509.html]=man1/openssl-x509.pod
+DEPEND[man/man1/openssl-x509.1]=man1/openssl-x509.pod
+GENERATE[man/man1/openssl-x509.1]=man1/openssl-x509.pod
+DEPEND[man1/openssl-x509.pod]{pod}=man1/openssl-x509.pod.in
+GENERATE[man1/openssl-x509.pod]=man1/openssl-x509.pod.in
+DEPEND[html/man1/openssl.html]=man1/openssl.pod
+GENERATE[html/man1/openssl.html]=man1/openssl.pod
+DEPEND[man/man1/openssl.1]=man1/openssl.pod
+GENERATE[man/man1/openssl.1]=man1/openssl.pod
+DEPEND[html/man1/tsget.html]=man1/tsget.pod
+GENERATE[html/man1/tsget.html]=man1/tsget.pod
+DEPEND[man/man1/tsget.1]=man1/tsget.pod
+GENERATE[man/man1/tsget.1]=man1/tsget.pod
+IMAGEDOCS[man1]=
+HTMLDOCS[man1]=html/man1/CA.pl.html \
+html/man1/openssl-asn1parse.html \
+html/man1/openssl-ca.html \
+html/man1/openssl-ciphers.html \
+html/man1/openssl-cmds.html \
+html/man1/openssl-cmp.html \
+html/man1/openssl-cms.html \
+html/man1/openssl-crl.html \
+html/man1/openssl-crl2pkcs7.html \
+html/man1/openssl-dgst.html \
+html/man1/openssl-dhparam.html \
+html/man1/openssl-dsa.html \
+html/man1/openssl-dsaparam.html \
+html/man1/openssl-ec.html \
+html/man1/openssl-ecparam.html \
+html/man1/openssl-enc.html \
+html/man1/openssl-engine.html \
+html/man1/openssl-errstr.html \
+html/man1/openssl-fipsinstall.html \
+html/man1/openssl-format-options.html \
+html/man1/openssl-gendsa.html \
+html/man1/openssl-genpkey.html \
+html/man1/openssl-genrsa.html \
+html/man1/openssl-info.html \
+html/man1/openssl-kdf.html \
+html/man1/openssl-list.html \
+html/man1/openssl-mac.html \
+html/man1/openssl-namedisplay-options.html \
+html/man1/openssl-nseq.html \
+html/man1/openssl-ocsp.html \
+html/man1/openssl-passphrase-options.html \
+html/man1/openssl-passwd.html \
+html/man1/openssl-pkcs12.html \
+html/man1/openssl-pkcs7.html \
+html/man1/openssl-pkcs8.html \
+html/man1/openssl-pkey.html \
+html/man1/openssl-pkeyparam.html \
+html/man1/openssl-pkeyutl.html \
+html/man1/openssl-prime.html \
+html/man1/openssl-rand.html \
+html/man1/openssl-rehash.html \
+html/man1/openssl-req.html \
+html/man1/openssl-rsa.html \
+html/man1/openssl-rsautl.html \
+html/man1/openssl-s_client.html \
+html/man1/openssl-s_server.html \
+html/man1/openssl-s_time.html \
+html/man1/openssl-sess_id.html \
+html/man1/openssl-smime.html \
+html/man1/openssl-speed.html \
+html/man1/openssl-spkac.html \
+html/man1/openssl-srp.html \
+html/man1/openssl-storeutl.html \
+html/man1/openssl-ts.html \
+html/man1/openssl-verification-options.html \
+html/man1/openssl-verify.html \
+html/man1/openssl-version.html \
+html/man1/openssl-x509.html \
+html/man1/openssl.html \
+html/man1/tsget.html
+MANDOCS[man1]=man/man1/CA.pl.1 \
+man/man1/openssl-asn1parse.1 \
+man/man1/openssl-ca.1 \
+man/man1/openssl-ciphers.1 \
+man/man1/openssl-cmds.1 \
+man/man1/openssl-cmp.1 \
+man/man1/openssl-cms.1 \
+man/man1/openssl-crl.1 \
+man/man1/openssl-crl2pkcs7.1 \
+man/man1/openssl-dgst.1 \
+man/man1/openssl-dhparam.1 \
+man/man1/openssl-dsa.1 \
+man/man1/openssl-dsaparam.1 \
+man/man1/openssl-ec.1 \
+man/man1/openssl-ecparam.1 \
+man/man1/openssl-enc.1 \
+man/man1/openssl-engine.1 \
+man/man1/openssl-errstr.1 \
+man/man1/openssl-fipsinstall.1 \
+man/man1/openssl-format-options.1 \
+man/man1/openssl-gendsa.1 \
+man/man1/openssl-genpkey.1 \
+man/man1/openssl-genrsa.1 \
+man/man1/openssl-info.1 \
+man/man1/openssl-kdf.1 \
+man/man1/openssl-list.1 \
+man/man1/openssl-mac.1 \
+man/man1/openssl-namedisplay-options.1 \
+man/man1/openssl-nseq.1 \
+man/man1/openssl-ocsp.1 \
+man/man1/openssl-passphrase-options.1 \
+man/man1/openssl-passwd.1 \
+man/man1/openssl-pkcs12.1 \
+man/man1/openssl-pkcs7.1 \
+man/man1/openssl-pkcs8.1 \
+man/man1/openssl-pkey.1 \
+man/man1/openssl-pkeyparam.1 \
+man/man1/openssl-pkeyutl.1 \
+man/man1/openssl-prime.1 \
+man/man1/openssl-rand.1 \
+man/man1/openssl-rehash.1 \
+man/man1/openssl-req.1 \
+man/man1/openssl-rsa.1 \
+man/man1/openssl-rsautl.1 \
+man/man1/openssl-s_client.1 \
+man/man1/openssl-s_server.1 \
+man/man1/openssl-s_time.1 \
+man/man1/openssl-sess_id.1 \
+man/man1/openssl-smime.1 \
+man/man1/openssl-speed.1 \
+man/man1/openssl-spkac.1 \
+man/man1/openssl-srp.1 \
+man/man1/openssl-storeutl.1 \
+man/man1/openssl-ts.1 \
+man/man1/openssl-verification-options.1 \
+man/man1/openssl-verify.1 \
+man/man1/openssl-version.1 \
+man/man1/openssl-x509.1 \
+man/man1/openssl.1 \
+man/man1/tsget.1
+DEPEND[html/man3/ADMISSIONS.html]=man3/ADMISSIONS.pod
+GENERATE[html/man3/ADMISSIONS.html]=man3/ADMISSIONS.pod
+DEPEND[man/man3/ADMISSIONS.3]=man3/ADMISSIONS.pod
+GENERATE[man/man3/ADMISSIONS.3]=man3/ADMISSIONS.pod
+DEPEND[html/man3/ASN1_EXTERN_FUNCS.html]=man3/ASN1_EXTERN_FUNCS.pod
+GENERATE[html/man3/ASN1_EXTERN_FUNCS.html]=man3/ASN1_EXTERN_FUNCS.pod
+DEPEND[man/man3/ASN1_EXTERN_FUNCS.3]=man3/ASN1_EXTERN_FUNCS.pod
+GENERATE[man/man3/ASN1_EXTERN_FUNCS.3]=man3/ASN1_EXTERN_FUNCS.pod
+DEPEND[html/man3/ASN1_INTEGER_get_int64.html]=man3/ASN1_INTEGER_get_int64.pod
+GENERATE[html/man3/ASN1_INTEGER_get_int64.html]=man3/ASN1_INTEGER_get_int64.pod
+DEPEND[man/man3/ASN1_INTEGER_get_int64.3]=man3/ASN1_INTEGER_get_int64.pod
+GENERATE[man/man3/ASN1_INTEGER_get_int64.3]=man3/ASN1_INTEGER_get_int64.pod
+DEPEND[html/man3/ASN1_INTEGER_new.html]=man3/ASN1_INTEGER_new.pod
+GENERATE[html/man3/ASN1_INTEGER_new.html]=man3/ASN1_INTEGER_new.pod
+DEPEND[man/man3/ASN1_INTEGER_new.3]=man3/ASN1_INTEGER_new.pod
+GENERATE[man/man3/ASN1_INTEGER_new.3]=man3/ASN1_INTEGER_new.pod
+DEPEND[html/man3/ASN1_ITEM_lookup.html]=man3/ASN1_ITEM_lookup.pod
+GENERATE[html/man3/ASN1_ITEM_lookup.html]=man3/ASN1_ITEM_lookup.pod
+DEPEND[man/man3/ASN1_ITEM_lookup.3]=man3/ASN1_ITEM_lookup.pod
+GENERATE[man/man3/ASN1_ITEM_lookup.3]=man3/ASN1_ITEM_lookup.pod
+DEPEND[html/man3/ASN1_OBJECT_new.html]=man3/ASN1_OBJECT_new.pod
+GENERATE[html/man3/ASN1_OBJECT_new.html]=man3/ASN1_OBJECT_new.pod
+DEPEND[man/man3/ASN1_OBJECT_new.3]=man3/ASN1_OBJECT_new.pod
+GENERATE[man/man3/ASN1_OBJECT_new.3]=man3/ASN1_OBJECT_new.pod
+DEPEND[html/man3/ASN1_STRING_TABLE_add.html]=man3/ASN1_STRING_TABLE_add.pod
+GENERATE[html/man3/ASN1_STRING_TABLE_add.html]=man3/ASN1_STRING_TABLE_add.pod
+DEPEND[man/man3/ASN1_STRING_TABLE_add.3]=man3/ASN1_STRING_TABLE_add.pod
+GENERATE[man/man3/ASN1_STRING_TABLE_add.3]=man3/ASN1_STRING_TABLE_add.pod
+DEPEND[html/man3/ASN1_STRING_length.html]=man3/ASN1_STRING_length.pod
+GENERATE[html/man3/ASN1_STRING_length.html]=man3/ASN1_STRING_length.pod
+DEPEND[man/man3/ASN1_STRING_length.3]=man3/ASN1_STRING_length.pod
+GENERATE[man/man3/ASN1_STRING_length.3]=man3/ASN1_STRING_length.pod
+DEPEND[html/man3/ASN1_STRING_new.html]=man3/ASN1_STRING_new.pod
+GENERATE[html/man3/ASN1_STRING_new.html]=man3/ASN1_STRING_new.pod
+DEPEND[man/man3/ASN1_STRING_new.3]=man3/ASN1_STRING_new.pod
+GENERATE[man/man3/ASN1_STRING_new.3]=man3/ASN1_STRING_new.pod
+DEPEND[html/man3/ASN1_STRING_print_ex.html]=man3/ASN1_STRING_print_ex.pod
+GENERATE[html/man3/ASN1_STRING_print_ex.html]=man3/ASN1_STRING_print_ex.pod
+DEPEND[man/man3/ASN1_STRING_print_ex.3]=man3/ASN1_STRING_print_ex.pod
+GENERATE[man/man3/ASN1_STRING_print_ex.3]=man3/ASN1_STRING_print_ex.pod
+DEPEND[html/man3/ASN1_TIME_set.html]=man3/ASN1_TIME_set.pod
+GENERATE[html/man3/ASN1_TIME_set.html]=man3/ASN1_TIME_set.pod
+DEPEND[man/man3/ASN1_TIME_set.3]=man3/ASN1_TIME_set.pod
+GENERATE[man/man3/ASN1_TIME_set.3]=man3/ASN1_TIME_set.pod
+DEPEND[html/man3/ASN1_TYPE_get.html]=man3/ASN1_TYPE_get.pod
+GENERATE[html/man3/ASN1_TYPE_get.html]=man3/ASN1_TYPE_get.pod
+DEPEND[man/man3/ASN1_TYPE_get.3]=man3/ASN1_TYPE_get.pod
+GENERATE[man/man3/ASN1_TYPE_get.3]=man3/ASN1_TYPE_get.pod
+DEPEND[html/man3/ASN1_aux_cb.html]=man3/ASN1_aux_cb.pod
+GENERATE[html/man3/ASN1_aux_cb.html]=man3/ASN1_aux_cb.pod
+DEPEND[man/man3/ASN1_aux_cb.3]=man3/ASN1_aux_cb.pod
+GENERATE[man/man3/ASN1_aux_cb.3]=man3/ASN1_aux_cb.pod
+DEPEND[html/man3/ASN1_generate_nconf.html]=man3/ASN1_generate_nconf.pod
+GENERATE[html/man3/ASN1_generate_nconf.html]=man3/ASN1_generate_nconf.pod
+DEPEND[man/man3/ASN1_generate_nconf.3]=man3/ASN1_generate_nconf.pod
+GENERATE[man/man3/ASN1_generate_nconf.3]=man3/ASN1_generate_nconf.pod
+DEPEND[html/man3/ASN1_item_d2i_bio.html]=man3/ASN1_item_d2i_bio.pod
+GENERATE[html/man3/ASN1_item_d2i_bio.html]=man3/ASN1_item_d2i_bio.pod
+DEPEND[man/man3/ASN1_item_d2i_bio.3]=man3/ASN1_item_d2i_bio.pod
+GENERATE[man/man3/ASN1_item_d2i_bio.3]=man3/ASN1_item_d2i_bio.pod
+DEPEND[html/man3/ASN1_item_new.html]=man3/ASN1_item_new.pod
+GENERATE[html/man3/ASN1_item_new.html]=man3/ASN1_item_new.pod
+DEPEND[man/man3/ASN1_item_new.3]=man3/ASN1_item_new.pod
+GENERATE[man/man3/ASN1_item_new.3]=man3/ASN1_item_new.pod
+DEPEND[html/man3/ASN1_item_sign.html]=man3/ASN1_item_sign.pod
+GENERATE[html/man3/ASN1_item_sign.html]=man3/ASN1_item_sign.pod
+DEPEND[man/man3/ASN1_item_sign.3]=man3/ASN1_item_sign.pod
+GENERATE[man/man3/ASN1_item_sign.3]=man3/ASN1_item_sign.pod
+DEPEND[html/man3/ASYNC_WAIT_CTX_new.html]=man3/ASYNC_WAIT_CTX_new.pod
+GENERATE[html/man3/ASYNC_WAIT_CTX_new.html]=man3/ASYNC_WAIT_CTX_new.pod
+DEPEND[man/man3/ASYNC_WAIT_CTX_new.3]=man3/ASYNC_WAIT_CTX_new.pod
+GENERATE[man/man3/ASYNC_WAIT_CTX_new.3]=man3/ASYNC_WAIT_CTX_new.pod
+DEPEND[html/man3/ASYNC_start_job.html]=man3/ASYNC_start_job.pod
+GENERATE[html/man3/ASYNC_start_job.html]=man3/ASYNC_start_job.pod
+DEPEND[man/man3/ASYNC_start_job.3]=man3/ASYNC_start_job.pod
+GENERATE[man/man3/ASYNC_start_job.3]=man3/ASYNC_start_job.pod
+DEPEND[html/man3/BF_encrypt.html]=man3/BF_encrypt.pod
+GENERATE[html/man3/BF_encrypt.html]=man3/BF_encrypt.pod
+DEPEND[man/man3/BF_encrypt.3]=man3/BF_encrypt.pod
+GENERATE[man/man3/BF_encrypt.3]=man3/BF_encrypt.pod
+DEPEND[html/man3/BIO_ADDR.html]=man3/BIO_ADDR.pod
+GENERATE[html/man3/BIO_ADDR.html]=man3/BIO_ADDR.pod
+DEPEND[man/man3/BIO_ADDR.3]=man3/BIO_ADDR.pod
+GENERATE[man/man3/BIO_ADDR.3]=man3/BIO_ADDR.pod
+DEPEND[html/man3/BIO_ADDRINFO.html]=man3/BIO_ADDRINFO.pod
+GENERATE[html/man3/BIO_ADDRINFO.html]=man3/BIO_ADDRINFO.pod
+DEPEND[man/man3/BIO_ADDRINFO.3]=man3/BIO_ADDRINFO.pod
+GENERATE[man/man3/BIO_ADDRINFO.3]=man3/BIO_ADDRINFO.pod
+DEPEND[html/man3/BIO_connect.html]=man3/BIO_connect.pod
+GENERATE[html/man3/BIO_connect.html]=man3/BIO_connect.pod
+DEPEND[man/man3/BIO_connect.3]=man3/BIO_connect.pod
+GENERATE[man/man3/BIO_connect.3]=man3/BIO_connect.pod
+DEPEND[html/man3/BIO_ctrl.html]=man3/BIO_ctrl.pod
+GENERATE[html/man3/BIO_ctrl.html]=man3/BIO_ctrl.pod
+DEPEND[man/man3/BIO_ctrl.3]=man3/BIO_ctrl.pod
+GENERATE[man/man3/BIO_ctrl.3]=man3/BIO_ctrl.pod
+DEPEND[html/man3/BIO_f_base64.html]=man3/BIO_f_base64.pod
+GENERATE[html/man3/BIO_f_base64.html]=man3/BIO_f_base64.pod
+DEPEND[man/man3/BIO_f_base64.3]=man3/BIO_f_base64.pod
+GENERATE[man/man3/BIO_f_base64.3]=man3/BIO_f_base64.pod
+DEPEND[html/man3/BIO_f_buffer.html]=man3/BIO_f_buffer.pod
+GENERATE[html/man3/BIO_f_buffer.html]=man3/BIO_f_buffer.pod
+DEPEND[man/man3/BIO_f_buffer.3]=man3/BIO_f_buffer.pod
+GENERATE[man/man3/BIO_f_buffer.3]=man3/BIO_f_buffer.pod
+DEPEND[html/man3/BIO_f_cipher.html]=man3/BIO_f_cipher.pod
+GENERATE[html/man3/BIO_f_cipher.html]=man3/BIO_f_cipher.pod
+DEPEND[man/man3/BIO_f_cipher.3]=man3/BIO_f_cipher.pod
+GENERATE[man/man3/BIO_f_cipher.3]=man3/BIO_f_cipher.pod
+DEPEND[html/man3/BIO_f_md.html]=man3/BIO_f_md.pod
+GENERATE[html/man3/BIO_f_md.html]=man3/BIO_f_md.pod
+DEPEND[man/man3/BIO_f_md.3]=man3/BIO_f_md.pod
+GENERATE[man/man3/BIO_f_md.3]=man3/BIO_f_md.pod
+DEPEND[html/man3/BIO_f_null.html]=man3/BIO_f_null.pod
+GENERATE[html/man3/BIO_f_null.html]=man3/BIO_f_null.pod
+DEPEND[man/man3/BIO_f_null.3]=man3/BIO_f_null.pod
+GENERATE[man/man3/BIO_f_null.3]=man3/BIO_f_null.pod
+DEPEND[html/man3/BIO_f_prefix.html]=man3/BIO_f_prefix.pod
+GENERATE[html/man3/BIO_f_prefix.html]=man3/BIO_f_prefix.pod
+DEPEND[man/man3/BIO_f_prefix.3]=man3/BIO_f_prefix.pod
+GENERATE[man/man3/BIO_f_prefix.3]=man3/BIO_f_prefix.pod
+DEPEND[html/man3/BIO_f_readbuffer.html]=man3/BIO_f_readbuffer.pod
+GENERATE[html/man3/BIO_f_readbuffer.html]=man3/BIO_f_readbuffer.pod
+DEPEND[man/man3/BIO_f_readbuffer.3]=man3/BIO_f_readbuffer.pod
+GENERATE[man/man3/BIO_f_readbuffer.3]=man3/BIO_f_readbuffer.pod
+DEPEND[html/man3/BIO_f_ssl.html]=man3/BIO_f_ssl.pod
+GENERATE[html/man3/BIO_f_ssl.html]=man3/BIO_f_ssl.pod
+DEPEND[man/man3/BIO_f_ssl.3]=man3/BIO_f_ssl.pod
+GENERATE[man/man3/BIO_f_ssl.3]=man3/BIO_f_ssl.pod
+DEPEND[html/man3/BIO_find_type.html]=man3/BIO_find_type.pod
+GENERATE[html/man3/BIO_find_type.html]=man3/BIO_find_type.pod
+DEPEND[man/man3/BIO_find_type.3]=man3/BIO_find_type.pod
+GENERATE[man/man3/BIO_find_type.3]=man3/BIO_find_type.pod
+DEPEND[html/man3/BIO_get_data.html]=man3/BIO_get_data.pod
+GENERATE[html/man3/BIO_get_data.html]=man3/BIO_get_data.pod
+DEPEND[man/man3/BIO_get_data.3]=man3/BIO_get_data.pod
+GENERATE[man/man3/BIO_get_data.3]=man3/BIO_get_data.pod
+DEPEND[html/man3/BIO_get_ex_new_index.html]=man3/BIO_get_ex_new_index.pod
+GENERATE[html/man3/BIO_get_ex_new_index.html]=man3/BIO_get_ex_new_index.pod
+DEPEND[man/man3/BIO_get_ex_new_index.3]=man3/BIO_get_ex_new_index.pod
+GENERATE[man/man3/BIO_get_ex_new_index.3]=man3/BIO_get_ex_new_index.pod
+DEPEND[html/man3/BIO_meth_new.html]=man3/BIO_meth_new.pod
+GENERATE[html/man3/BIO_meth_new.html]=man3/BIO_meth_new.pod
+DEPEND[man/man3/BIO_meth_new.3]=man3/BIO_meth_new.pod
+GENERATE[man/man3/BIO_meth_new.3]=man3/BIO_meth_new.pod
+DEPEND[html/man3/BIO_new.html]=man3/BIO_new.pod
+GENERATE[html/man3/BIO_new.html]=man3/BIO_new.pod
+DEPEND[man/man3/BIO_new.3]=man3/BIO_new.pod
+GENERATE[man/man3/BIO_new.3]=man3/BIO_new.pod
+DEPEND[html/man3/BIO_new_CMS.html]=man3/BIO_new_CMS.pod
+GENERATE[html/man3/BIO_new_CMS.html]=man3/BIO_new_CMS.pod
+DEPEND[man/man3/BIO_new_CMS.3]=man3/BIO_new_CMS.pod
+GENERATE[man/man3/BIO_new_CMS.3]=man3/BIO_new_CMS.pod
+DEPEND[html/man3/BIO_parse_hostserv.html]=man3/BIO_parse_hostserv.pod
+GENERATE[html/man3/BIO_parse_hostserv.html]=man3/BIO_parse_hostserv.pod
+DEPEND[man/man3/BIO_parse_hostserv.3]=man3/BIO_parse_hostserv.pod
+GENERATE[man/man3/BIO_parse_hostserv.3]=man3/BIO_parse_hostserv.pod
+DEPEND[html/man3/BIO_printf.html]=man3/BIO_printf.pod
+GENERATE[html/man3/BIO_printf.html]=man3/BIO_printf.pod
+DEPEND[man/man3/BIO_printf.3]=man3/BIO_printf.pod
+GENERATE[man/man3/BIO_printf.3]=man3/BIO_printf.pod
+DEPEND[html/man3/BIO_push.html]=man3/BIO_push.pod
+GENERATE[html/man3/BIO_push.html]=man3/BIO_push.pod
+DEPEND[man/man3/BIO_push.3]=man3/BIO_push.pod
+GENERATE[man/man3/BIO_push.3]=man3/BIO_push.pod
+DEPEND[html/man3/BIO_read.html]=man3/BIO_read.pod
+GENERATE[html/man3/BIO_read.html]=man3/BIO_read.pod
+DEPEND[man/man3/BIO_read.3]=man3/BIO_read.pod
+GENERATE[man/man3/BIO_read.3]=man3/BIO_read.pod
+DEPEND[html/man3/BIO_s_accept.html]=man3/BIO_s_accept.pod
+GENERATE[html/man3/BIO_s_accept.html]=man3/BIO_s_accept.pod
+DEPEND[man/man3/BIO_s_accept.3]=man3/BIO_s_accept.pod
+GENERATE[man/man3/BIO_s_accept.3]=man3/BIO_s_accept.pod
+DEPEND[html/man3/BIO_s_bio.html]=man3/BIO_s_bio.pod
+GENERATE[html/man3/BIO_s_bio.html]=man3/BIO_s_bio.pod
+DEPEND[man/man3/BIO_s_bio.3]=man3/BIO_s_bio.pod
+GENERATE[man/man3/BIO_s_bio.3]=man3/BIO_s_bio.pod
+DEPEND[html/man3/BIO_s_connect.html]=man3/BIO_s_connect.pod
+GENERATE[html/man3/BIO_s_connect.html]=man3/BIO_s_connect.pod
+DEPEND[man/man3/BIO_s_connect.3]=man3/BIO_s_connect.pod
+GENERATE[man/man3/BIO_s_connect.3]=man3/BIO_s_connect.pod
+DEPEND[html/man3/BIO_s_core.html]=man3/BIO_s_core.pod
+GENERATE[html/man3/BIO_s_core.html]=man3/BIO_s_core.pod
+DEPEND[man/man3/BIO_s_core.3]=man3/BIO_s_core.pod
+GENERATE[man/man3/BIO_s_core.3]=man3/BIO_s_core.pod
+DEPEND[html/man3/BIO_s_datagram.html]=man3/BIO_s_datagram.pod
+GENERATE[html/man3/BIO_s_datagram.html]=man3/BIO_s_datagram.pod
+DEPEND[man/man3/BIO_s_datagram.3]=man3/BIO_s_datagram.pod
+GENERATE[man/man3/BIO_s_datagram.3]=man3/BIO_s_datagram.pod
+DEPEND[html/man3/BIO_s_fd.html]=man3/BIO_s_fd.pod
+GENERATE[html/man3/BIO_s_fd.html]=man3/BIO_s_fd.pod
+DEPEND[man/man3/BIO_s_fd.3]=man3/BIO_s_fd.pod
+GENERATE[man/man3/BIO_s_fd.3]=man3/BIO_s_fd.pod
+DEPEND[html/man3/BIO_s_file.html]=man3/BIO_s_file.pod
+GENERATE[html/man3/BIO_s_file.html]=man3/BIO_s_file.pod
+DEPEND[man/man3/BIO_s_file.3]=man3/BIO_s_file.pod
+GENERATE[man/man3/BIO_s_file.3]=man3/BIO_s_file.pod
+DEPEND[html/man3/BIO_s_mem.html]=man3/BIO_s_mem.pod
+GENERATE[html/man3/BIO_s_mem.html]=man3/BIO_s_mem.pod
+DEPEND[man/man3/BIO_s_mem.3]=man3/BIO_s_mem.pod
+GENERATE[man/man3/BIO_s_mem.3]=man3/BIO_s_mem.pod
+DEPEND[html/man3/BIO_s_null.html]=man3/BIO_s_null.pod
+GENERATE[html/man3/BIO_s_null.html]=man3/BIO_s_null.pod
+DEPEND[man/man3/BIO_s_null.3]=man3/BIO_s_null.pod
+GENERATE[man/man3/BIO_s_null.3]=man3/BIO_s_null.pod
+DEPEND[html/man3/BIO_s_socket.html]=man3/BIO_s_socket.pod
+GENERATE[html/man3/BIO_s_socket.html]=man3/BIO_s_socket.pod
+DEPEND[man/man3/BIO_s_socket.3]=man3/BIO_s_socket.pod
+GENERATE[man/man3/BIO_s_socket.3]=man3/BIO_s_socket.pod
+DEPEND[html/man3/BIO_set_callback.html]=man3/BIO_set_callback.pod
+GENERATE[html/man3/BIO_set_callback.html]=man3/BIO_set_callback.pod
+DEPEND[man/man3/BIO_set_callback.3]=man3/BIO_set_callback.pod
+GENERATE[man/man3/BIO_set_callback.3]=man3/BIO_set_callback.pod
+DEPEND[html/man3/BIO_should_retry.html]=man3/BIO_should_retry.pod
+GENERATE[html/man3/BIO_should_retry.html]=man3/BIO_should_retry.pod
+DEPEND[man/man3/BIO_should_retry.3]=man3/BIO_should_retry.pod
+GENERATE[man/man3/BIO_should_retry.3]=man3/BIO_should_retry.pod
+DEPEND[html/man3/BIO_socket_wait.html]=man3/BIO_socket_wait.pod
+GENERATE[html/man3/BIO_socket_wait.html]=man3/BIO_socket_wait.pod
+DEPEND[man/man3/BIO_socket_wait.3]=man3/BIO_socket_wait.pod
+GENERATE[man/man3/BIO_socket_wait.3]=man3/BIO_socket_wait.pod
+DEPEND[html/man3/BN_BLINDING_new.html]=man3/BN_BLINDING_new.pod
+GENERATE[html/man3/BN_BLINDING_new.html]=man3/BN_BLINDING_new.pod
+DEPEND[man/man3/BN_BLINDING_new.3]=man3/BN_BLINDING_new.pod
+GENERATE[man/man3/BN_BLINDING_new.3]=man3/BN_BLINDING_new.pod
+DEPEND[html/man3/BN_CTX_new.html]=man3/BN_CTX_new.pod
+GENERATE[html/man3/BN_CTX_new.html]=man3/BN_CTX_new.pod
+DEPEND[man/man3/BN_CTX_new.3]=man3/BN_CTX_new.pod
+GENERATE[man/man3/BN_CTX_new.3]=man3/BN_CTX_new.pod
+DEPEND[html/man3/BN_CTX_start.html]=man3/BN_CTX_start.pod
+GENERATE[html/man3/BN_CTX_start.html]=man3/BN_CTX_start.pod
+DEPEND[man/man3/BN_CTX_start.3]=man3/BN_CTX_start.pod
+GENERATE[man/man3/BN_CTX_start.3]=man3/BN_CTX_start.pod
+DEPEND[html/man3/BN_add.html]=man3/BN_add.pod
+GENERATE[html/man3/BN_add.html]=man3/BN_add.pod
+DEPEND[man/man3/BN_add.3]=man3/BN_add.pod
+GENERATE[man/man3/BN_add.3]=man3/BN_add.pod
+DEPEND[html/man3/BN_add_word.html]=man3/BN_add_word.pod
+GENERATE[html/man3/BN_add_word.html]=man3/BN_add_word.pod
+DEPEND[man/man3/BN_add_word.3]=man3/BN_add_word.pod
+GENERATE[man/man3/BN_add_word.3]=man3/BN_add_word.pod
+DEPEND[html/man3/BN_bn2bin.html]=man3/BN_bn2bin.pod
+GENERATE[html/man3/BN_bn2bin.html]=man3/BN_bn2bin.pod
+DEPEND[man/man3/BN_bn2bin.3]=man3/BN_bn2bin.pod
+GENERATE[man/man3/BN_bn2bin.3]=man3/BN_bn2bin.pod
+DEPEND[html/man3/BN_cmp.html]=man3/BN_cmp.pod
+GENERATE[html/man3/BN_cmp.html]=man3/BN_cmp.pod
+DEPEND[man/man3/BN_cmp.3]=man3/BN_cmp.pod
+GENERATE[man/man3/BN_cmp.3]=man3/BN_cmp.pod
+DEPEND[html/man3/BN_copy.html]=man3/BN_copy.pod
+GENERATE[html/man3/BN_copy.html]=man3/BN_copy.pod
+DEPEND[man/man3/BN_copy.3]=man3/BN_copy.pod
+GENERATE[man/man3/BN_copy.3]=man3/BN_copy.pod
+DEPEND[html/man3/BN_generate_prime.html]=man3/BN_generate_prime.pod
+GENERATE[html/man3/BN_generate_prime.html]=man3/BN_generate_prime.pod
+DEPEND[man/man3/BN_generate_prime.3]=man3/BN_generate_prime.pod
+GENERATE[man/man3/BN_generate_prime.3]=man3/BN_generate_prime.pod
+DEPEND[html/man3/BN_mod_exp_mont.html]=man3/BN_mod_exp_mont.pod
+GENERATE[html/man3/BN_mod_exp_mont.html]=man3/BN_mod_exp_mont.pod
+DEPEND[man/man3/BN_mod_exp_mont.3]=man3/BN_mod_exp_mont.pod
+GENERATE[man/man3/BN_mod_exp_mont.3]=man3/BN_mod_exp_mont.pod
+DEPEND[html/man3/BN_mod_inverse.html]=man3/BN_mod_inverse.pod
+GENERATE[html/man3/BN_mod_inverse.html]=man3/BN_mod_inverse.pod
+DEPEND[man/man3/BN_mod_inverse.3]=man3/BN_mod_inverse.pod
+GENERATE[man/man3/BN_mod_inverse.3]=man3/BN_mod_inverse.pod
+DEPEND[html/man3/BN_mod_mul_montgomery.html]=man3/BN_mod_mul_montgomery.pod
+GENERATE[html/man3/BN_mod_mul_montgomery.html]=man3/BN_mod_mul_montgomery.pod
+DEPEND[man/man3/BN_mod_mul_montgomery.3]=man3/BN_mod_mul_montgomery.pod
+GENERATE[man/man3/BN_mod_mul_montgomery.3]=man3/BN_mod_mul_montgomery.pod
+DEPEND[html/man3/BN_mod_mul_reciprocal.html]=man3/BN_mod_mul_reciprocal.pod
+GENERATE[html/man3/BN_mod_mul_reciprocal.html]=man3/BN_mod_mul_reciprocal.pod
+DEPEND[man/man3/BN_mod_mul_reciprocal.3]=man3/BN_mod_mul_reciprocal.pod
+GENERATE[man/man3/BN_mod_mul_reciprocal.3]=man3/BN_mod_mul_reciprocal.pod
+DEPEND[html/man3/BN_new.html]=man3/BN_new.pod
+GENERATE[html/man3/BN_new.html]=man3/BN_new.pod
+DEPEND[man/man3/BN_new.3]=man3/BN_new.pod
+GENERATE[man/man3/BN_new.3]=man3/BN_new.pod
+DEPEND[html/man3/BN_num_bytes.html]=man3/BN_num_bytes.pod
+GENERATE[html/man3/BN_num_bytes.html]=man3/BN_num_bytes.pod
+DEPEND[man/man3/BN_num_bytes.3]=man3/BN_num_bytes.pod
+GENERATE[man/man3/BN_num_bytes.3]=man3/BN_num_bytes.pod
+DEPEND[html/man3/BN_rand.html]=man3/BN_rand.pod
+GENERATE[html/man3/BN_rand.html]=man3/BN_rand.pod
+DEPEND[man/man3/BN_rand.3]=man3/BN_rand.pod
+GENERATE[man/man3/BN_rand.3]=man3/BN_rand.pod
+DEPEND[html/man3/BN_security_bits.html]=man3/BN_security_bits.pod
+GENERATE[html/man3/BN_security_bits.html]=man3/BN_security_bits.pod
+DEPEND[man/man3/BN_security_bits.3]=man3/BN_security_bits.pod
+GENERATE[man/man3/BN_security_bits.3]=man3/BN_security_bits.pod
+DEPEND[html/man3/BN_set_bit.html]=man3/BN_set_bit.pod
+GENERATE[html/man3/BN_set_bit.html]=man3/BN_set_bit.pod
+DEPEND[man/man3/BN_set_bit.3]=man3/BN_set_bit.pod
+GENERATE[man/man3/BN_set_bit.3]=man3/BN_set_bit.pod
+DEPEND[html/man3/BN_swap.html]=man3/BN_swap.pod
+GENERATE[html/man3/BN_swap.html]=man3/BN_swap.pod
+DEPEND[man/man3/BN_swap.3]=man3/BN_swap.pod
+GENERATE[man/man3/BN_swap.3]=man3/BN_swap.pod
+DEPEND[html/man3/BN_zero.html]=man3/BN_zero.pod
+GENERATE[html/man3/BN_zero.html]=man3/BN_zero.pod
+DEPEND[man/man3/BN_zero.3]=man3/BN_zero.pod
+GENERATE[man/man3/BN_zero.3]=man3/BN_zero.pod
+DEPEND[html/man3/BUF_MEM_new.html]=man3/BUF_MEM_new.pod
+GENERATE[html/man3/BUF_MEM_new.html]=man3/BUF_MEM_new.pod
+DEPEND[man/man3/BUF_MEM_new.3]=man3/BUF_MEM_new.pod
+GENERATE[man/man3/BUF_MEM_new.3]=man3/BUF_MEM_new.pod
+DEPEND[html/man3/CMS_EncryptedData_decrypt.html]=man3/CMS_EncryptedData_decrypt.pod
+GENERATE[html/man3/CMS_EncryptedData_decrypt.html]=man3/CMS_EncryptedData_decrypt.pod
+DEPEND[man/man3/CMS_EncryptedData_decrypt.3]=man3/CMS_EncryptedData_decrypt.pod
+GENERATE[man/man3/CMS_EncryptedData_decrypt.3]=man3/CMS_EncryptedData_decrypt.pod
+DEPEND[html/man3/CMS_EncryptedData_encrypt.html]=man3/CMS_EncryptedData_encrypt.pod
+GENERATE[html/man3/CMS_EncryptedData_encrypt.html]=man3/CMS_EncryptedData_encrypt.pod
+DEPEND[man/man3/CMS_EncryptedData_encrypt.3]=man3/CMS_EncryptedData_encrypt.pod
+GENERATE[man/man3/CMS_EncryptedData_encrypt.3]=man3/CMS_EncryptedData_encrypt.pod
+DEPEND[html/man3/CMS_EnvelopedData_create.html]=man3/CMS_EnvelopedData_create.pod
+GENERATE[html/man3/CMS_EnvelopedData_create.html]=man3/CMS_EnvelopedData_create.pod
+DEPEND[man/man3/CMS_EnvelopedData_create.3]=man3/CMS_EnvelopedData_create.pod
+GENERATE[man/man3/CMS_EnvelopedData_create.3]=man3/CMS_EnvelopedData_create.pod
+DEPEND[html/man3/CMS_add0_cert.html]=man3/CMS_add0_cert.pod
+GENERATE[html/man3/CMS_add0_cert.html]=man3/CMS_add0_cert.pod
+DEPEND[man/man3/CMS_add0_cert.3]=man3/CMS_add0_cert.pod
+GENERATE[man/man3/CMS_add0_cert.3]=man3/CMS_add0_cert.pod
+DEPEND[html/man3/CMS_add1_recipient_cert.html]=man3/CMS_add1_recipient_cert.pod
+GENERATE[html/man3/CMS_add1_recipient_cert.html]=man3/CMS_add1_recipient_cert.pod
+DEPEND[man/man3/CMS_add1_recipient_cert.3]=man3/CMS_add1_recipient_cert.pod
+GENERATE[man/man3/CMS_add1_recipient_cert.3]=man3/CMS_add1_recipient_cert.pod
+DEPEND[html/man3/CMS_add1_signer.html]=man3/CMS_add1_signer.pod
+GENERATE[html/man3/CMS_add1_signer.html]=man3/CMS_add1_signer.pod
+DEPEND[man/man3/CMS_add1_signer.3]=man3/CMS_add1_signer.pod
+GENERATE[man/man3/CMS_add1_signer.3]=man3/CMS_add1_signer.pod
+DEPEND[html/man3/CMS_compress.html]=man3/CMS_compress.pod
+GENERATE[html/man3/CMS_compress.html]=man3/CMS_compress.pod
+DEPEND[man/man3/CMS_compress.3]=man3/CMS_compress.pod
+GENERATE[man/man3/CMS_compress.3]=man3/CMS_compress.pod
+DEPEND[html/man3/CMS_data_create.html]=man3/CMS_data_create.pod
+GENERATE[html/man3/CMS_data_create.html]=man3/CMS_data_create.pod
+DEPEND[man/man3/CMS_data_create.3]=man3/CMS_data_create.pod
+GENERATE[man/man3/CMS_data_create.3]=man3/CMS_data_create.pod
+DEPEND[html/man3/CMS_decrypt.html]=man3/CMS_decrypt.pod
+GENERATE[html/man3/CMS_decrypt.html]=man3/CMS_decrypt.pod
+DEPEND[man/man3/CMS_decrypt.3]=man3/CMS_decrypt.pod
+GENERATE[man/man3/CMS_decrypt.3]=man3/CMS_decrypt.pod
+DEPEND[html/man3/CMS_digest_create.html]=man3/CMS_digest_create.pod
+GENERATE[html/man3/CMS_digest_create.html]=man3/CMS_digest_create.pod
+DEPEND[man/man3/CMS_digest_create.3]=man3/CMS_digest_create.pod
+GENERATE[man/man3/CMS_digest_create.3]=man3/CMS_digest_create.pod
+DEPEND[html/man3/CMS_encrypt.html]=man3/CMS_encrypt.pod
+GENERATE[html/man3/CMS_encrypt.html]=man3/CMS_encrypt.pod
+DEPEND[man/man3/CMS_encrypt.3]=man3/CMS_encrypt.pod
+GENERATE[man/man3/CMS_encrypt.3]=man3/CMS_encrypt.pod
+DEPEND[html/man3/CMS_final.html]=man3/CMS_final.pod
+GENERATE[html/man3/CMS_final.html]=man3/CMS_final.pod
+DEPEND[man/man3/CMS_final.3]=man3/CMS_final.pod
+GENERATE[man/man3/CMS_final.3]=man3/CMS_final.pod
+DEPEND[html/man3/CMS_get0_RecipientInfos.html]=man3/CMS_get0_RecipientInfos.pod
+GENERATE[html/man3/CMS_get0_RecipientInfos.html]=man3/CMS_get0_RecipientInfos.pod
+DEPEND[man/man3/CMS_get0_RecipientInfos.3]=man3/CMS_get0_RecipientInfos.pod
+GENERATE[man/man3/CMS_get0_RecipientInfos.3]=man3/CMS_get0_RecipientInfos.pod
+DEPEND[html/man3/CMS_get0_SignerInfos.html]=man3/CMS_get0_SignerInfos.pod
+GENERATE[html/man3/CMS_get0_SignerInfos.html]=man3/CMS_get0_SignerInfos.pod
+DEPEND[man/man3/CMS_get0_SignerInfos.3]=man3/CMS_get0_SignerInfos.pod
+GENERATE[man/man3/CMS_get0_SignerInfos.3]=man3/CMS_get0_SignerInfos.pod
+DEPEND[html/man3/CMS_get0_type.html]=man3/CMS_get0_type.pod
+GENERATE[html/man3/CMS_get0_type.html]=man3/CMS_get0_type.pod
+DEPEND[man/man3/CMS_get0_type.3]=man3/CMS_get0_type.pod
+GENERATE[man/man3/CMS_get0_type.3]=man3/CMS_get0_type.pod
+DEPEND[html/man3/CMS_get1_ReceiptRequest.html]=man3/CMS_get1_ReceiptRequest.pod
+GENERATE[html/man3/CMS_get1_ReceiptRequest.html]=man3/CMS_get1_ReceiptRequest.pod
+DEPEND[man/man3/CMS_get1_ReceiptRequest.3]=man3/CMS_get1_ReceiptRequest.pod
+GENERATE[man/man3/CMS_get1_ReceiptRequest.3]=man3/CMS_get1_ReceiptRequest.pod
+DEPEND[html/man3/CMS_sign.html]=man3/CMS_sign.pod
+GENERATE[html/man3/CMS_sign.html]=man3/CMS_sign.pod
+DEPEND[man/man3/CMS_sign.3]=man3/CMS_sign.pod
+GENERATE[man/man3/CMS_sign.3]=man3/CMS_sign.pod
+DEPEND[html/man3/CMS_sign_receipt.html]=man3/CMS_sign_receipt.pod
+GENERATE[html/man3/CMS_sign_receipt.html]=man3/CMS_sign_receipt.pod
+DEPEND[man/man3/CMS_sign_receipt.3]=man3/CMS_sign_receipt.pod
+GENERATE[man/man3/CMS_sign_receipt.3]=man3/CMS_sign_receipt.pod
+DEPEND[html/man3/CMS_signed_get_attr.html]=man3/CMS_signed_get_attr.pod
+GENERATE[html/man3/CMS_signed_get_attr.html]=man3/CMS_signed_get_attr.pod
+DEPEND[man/man3/CMS_signed_get_attr.3]=man3/CMS_signed_get_attr.pod
+GENERATE[man/man3/CMS_signed_get_attr.3]=man3/CMS_signed_get_attr.pod
+DEPEND[html/man3/CMS_uncompress.html]=man3/CMS_uncompress.pod
+GENERATE[html/man3/CMS_uncompress.html]=man3/CMS_uncompress.pod
+DEPEND[man/man3/CMS_uncompress.3]=man3/CMS_uncompress.pod
+GENERATE[man/man3/CMS_uncompress.3]=man3/CMS_uncompress.pod
+DEPEND[html/man3/CMS_verify.html]=man3/CMS_verify.pod
+GENERATE[html/man3/CMS_verify.html]=man3/CMS_verify.pod
+DEPEND[man/man3/CMS_verify.3]=man3/CMS_verify.pod
+GENERATE[man/man3/CMS_verify.3]=man3/CMS_verify.pod
+DEPEND[html/man3/CMS_verify_receipt.html]=man3/CMS_verify_receipt.pod
+GENERATE[html/man3/CMS_verify_receipt.html]=man3/CMS_verify_receipt.pod
+DEPEND[man/man3/CMS_verify_receipt.3]=man3/CMS_verify_receipt.pod
+GENERATE[man/man3/CMS_verify_receipt.3]=man3/CMS_verify_receipt.pod
+DEPEND[html/man3/CONF_modules_free.html]=man3/CONF_modules_free.pod
+GENERATE[html/man3/CONF_modules_free.html]=man3/CONF_modules_free.pod
+DEPEND[man/man3/CONF_modules_free.3]=man3/CONF_modules_free.pod
+GENERATE[man/man3/CONF_modules_free.3]=man3/CONF_modules_free.pod
+DEPEND[html/man3/CONF_modules_load_file.html]=man3/CONF_modules_load_file.pod
+GENERATE[html/man3/CONF_modules_load_file.html]=man3/CONF_modules_load_file.pod
+DEPEND[man/man3/CONF_modules_load_file.3]=man3/CONF_modules_load_file.pod
+GENERATE[man/man3/CONF_modules_load_file.3]=man3/CONF_modules_load_file.pod
+DEPEND[html/man3/CRYPTO_THREAD_run_once.html]=man3/CRYPTO_THREAD_run_once.pod
+GENERATE[html/man3/CRYPTO_THREAD_run_once.html]=man3/CRYPTO_THREAD_run_once.pod
+DEPEND[man/man3/CRYPTO_THREAD_run_once.3]=man3/CRYPTO_THREAD_run_once.pod
+GENERATE[man/man3/CRYPTO_THREAD_run_once.3]=man3/CRYPTO_THREAD_run_once.pod
+DEPEND[html/man3/CRYPTO_get_ex_new_index.html]=man3/CRYPTO_get_ex_new_index.pod
+GENERATE[html/man3/CRYPTO_get_ex_new_index.html]=man3/CRYPTO_get_ex_new_index.pod
+DEPEND[man/man3/CRYPTO_get_ex_new_index.3]=man3/CRYPTO_get_ex_new_index.pod
+GENERATE[man/man3/CRYPTO_get_ex_new_index.3]=man3/CRYPTO_get_ex_new_index.pod
+DEPEND[html/man3/CRYPTO_memcmp.html]=man3/CRYPTO_memcmp.pod
+GENERATE[html/man3/CRYPTO_memcmp.html]=man3/CRYPTO_memcmp.pod
+DEPEND[man/man3/CRYPTO_memcmp.3]=man3/CRYPTO_memcmp.pod
+GENERATE[man/man3/CRYPTO_memcmp.3]=man3/CRYPTO_memcmp.pod
+DEPEND[html/man3/CTLOG_STORE_get0_log_by_id.html]=man3/CTLOG_STORE_get0_log_by_id.pod
+GENERATE[html/man3/CTLOG_STORE_get0_log_by_id.html]=man3/CTLOG_STORE_get0_log_by_id.pod
+DEPEND[man/man3/CTLOG_STORE_get0_log_by_id.3]=man3/CTLOG_STORE_get0_log_by_id.pod
+GENERATE[man/man3/CTLOG_STORE_get0_log_by_id.3]=man3/CTLOG_STORE_get0_log_by_id.pod
+DEPEND[html/man3/CTLOG_STORE_new.html]=man3/CTLOG_STORE_new.pod
+GENERATE[html/man3/CTLOG_STORE_new.html]=man3/CTLOG_STORE_new.pod
+DEPEND[man/man3/CTLOG_STORE_new.3]=man3/CTLOG_STORE_new.pod
+GENERATE[man/man3/CTLOG_STORE_new.3]=man3/CTLOG_STORE_new.pod
+DEPEND[html/man3/CTLOG_new.html]=man3/CTLOG_new.pod
+GENERATE[html/man3/CTLOG_new.html]=man3/CTLOG_new.pod
+DEPEND[man/man3/CTLOG_new.3]=man3/CTLOG_new.pod
+GENERATE[man/man3/CTLOG_new.3]=man3/CTLOG_new.pod
+DEPEND[html/man3/CT_POLICY_EVAL_CTX_new.html]=man3/CT_POLICY_EVAL_CTX_new.pod
+GENERATE[html/man3/CT_POLICY_EVAL_CTX_new.html]=man3/CT_POLICY_EVAL_CTX_new.pod
+DEPEND[man/man3/CT_POLICY_EVAL_CTX_new.3]=man3/CT_POLICY_EVAL_CTX_new.pod
+GENERATE[man/man3/CT_POLICY_EVAL_CTX_new.3]=man3/CT_POLICY_EVAL_CTX_new.pod
+DEPEND[html/man3/DEFINE_STACK_OF.html]=man3/DEFINE_STACK_OF.pod
+GENERATE[html/man3/DEFINE_STACK_OF.html]=man3/DEFINE_STACK_OF.pod
+DEPEND[man/man3/DEFINE_STACK_OF.3]=man3/DEFINE_STACK_OF.pod
+GENERATE[man/man3/DEFINE_STACK_OF.3]=man3/DEFINE_STACK_OF.pod
+DEPEND[html/man3/DES_random_key.html]=man3/DES_random_key.pod
+GENERATE[html/man3/DES_random_key.html]=man3/DES_random_key.pod
+DEPEND[man/man3/DES_random_key.3]=man3/DES_random_key.pod
+GENERATE[man/man3/DES_random_key.3]=man3/DES_random_key.pod
+DEPEND[html/man3/DH_generate_key.html]=man3/DH_generate_key.pod
+GENERATE[html/man3/DH_generate_key.html]=man3/DH_generate_key.pod
+DEPEND[man/man3/DH_generate_key.3]=man3/DH_generate_key.pod
+GENERATE[man/man3/DH_generate_key.3]=man3/DH_generate_key.pod
+DEPEND[html/man3/DH_generate_parameters.html]=man3/DH_generate_parameters.pod
+GENERATE[html/man3/DH_generate_parameters.html]=man3/DH_generate_parameters.pod
+DEPEND[man/man3/DH_generate_parameters.3]=man3/DH_generate_parameters.pod
+GENERATE[man/man3/DH_generate_parameters.3]=man3/DH_generate_parameters.pod
+DEPEND[html/man3/DH_get0_pqg.html]=man3/DH_get0_pqg.pod
+GENERATE[html/man3/DH_get0_pqg.html]=man3/DH_get0_pqg.pod
+DEPEND[man/man3/DH_get0_pqg.3]=man3/DH_get0_pqg.pod
+GENERATE[man/man3/DH_get0_pqg.3]=man3/DH_get0_pqg.pod
+DEPEND[html/man3/DH_get_1024_160.html]=man3/DH_get_1024_160.pod
+GENERATE[html/man3/DH_get_1024_160.html]=man3/DH_get_1024_160.pod
+DEPEND[man/man3/DH_get_1024_160.3]=man3/DH_get_1024_160.pod
+GENERATE[man/man3/DH_get_1024_160.3]=man3/DH_get_1024_160.pod
+DEPEND[html/man3/DH_meth_new.html]=man3/DH_meth_new.pod
+GENERATE[html/man3/DH_meth_new.html]=man3/DH_meth_new.pod
+DEPEND[man/man3/DH_meth_new.3]=man3/DH_meth_new.pod
+GENERATE[man/man3/DH_meth_new.3]=man3/DH_meth_new.pod
+DEPEND[html/man3/DH_new.html]=man3/DH_new.pod
+GENERATE[html/man3/DH_new.html]=man3/DH_new.pod
+DEPEND[man/man3/DH_new.3]=man3/DH_new.pod
+GENERATE[man/man3/DH_new.3]=man3/DH_new.pod
+DEPEND[html/man3/DH_new_by_nid.html]=man3/DH_new_by_nid.pod
+GENERATE[html/man3/DH_new_by_nid.html]=man3/DH_new_by_nid.pod
+DEPEND[man/man3/DH_new_by_nid.3]=man3/DH_new_by_nid.pod
+GENERATE[man/man3/DH_new_by_nid.3]=man3/DH_new_by_nid.pod
+DEPEND[html/man3/DH_set_method.html]=man3/DH_set_method.pod
+GENERATE[html/man3/DH_set_method.html]=man3/DH_set_method.pod
+DEPEND[man/man3/DH_set_method.3]=man3/DH_set_method.pod
+GENERATE[man/man3/DH_set_method.3]=man3/DH_set_method.pod
+DEPEND[html/man3/DH_size.html]=man3/DH_size.pod
+GENERATE[html/man3/DH_size.html]=man3/DH_size.pod
+DEPEND[man/man3/DH_size.3]=man3/DH_size.pod
+GENERATE[man/man3/DH_size.3]=man3/DH_size.pod
+DEPEND[html/man3/DSA_SIG_new.html]=man3/DSA_SIG_new.pod
+GENERATE[html/man3/DSA_SIG_new.html]=man3/DSA_SIG_new.pod
+DEPEND[man/man3/DSA_SIG_new.3]=man3/DSA_SIG_new.pod
+GENERATE[man/man3/DSA_SIG_new.3]=man3/DSA_SIG_new.pod
+DEPEND[html/man3/DSA_do_sign.html]=man3/DSA_do_sign.pod
+GENERATE[html/man3/DSA_do_sign.html]=man3/DSA_do_sign.pod
+DEPEND[man/man3/DSA_do_sign.3]=man3/DSA_do_sign.pod
+GENERATE[man/man3/DSA_do_sign.3]=man3/DSA_do_sign.pod
+DEPEND[html/man3/DSA_dup_DH.html]=man3/DSA_dup_DH.pod
+GENERATE[html/man3/DSA_dup_DH.html]=man3/DSA_dup_DH.pod
+DEPEND[man/man3/DSA_dup_DH.3]=man3/DSA_dup_DH.pod
+GENERATE[man/man3/DSA_dup_DH.3]=man3/DSA_dup_DH.pod
+DEPEND[html/man3/DSA_generate_key.html]=man3/DSA_generate_key.pod
+GENERATE[html/man3/DSA_generate_key.html]=man3/DSA_generate_key.pod
+DEPEND[man/man3/DSA_generate_key.3]=man3/DSA_generate_key.pod
+GENERATE[man/man3/DSA_generate_key.3]=man3/DSA_generate_key.pod
+DEPEND[html/man3/DSA_generate_parameters.html]=man3/DSA_generate_parameters.pod
+GENERATE[html/man3/DSA_generate_parameters.html]=man3/DSA_generate_parameters.pod
+DEPEND[man/man3/DSA_generate_parameters.3]=man3/DSA_generate_parameters.pod
+GENERATE[man/man3/DSA_generate_parameters.3]=man3/DSA_generate_parameters.pod
+DEPEND[html/man3/DSA_get0_pqg.html]=man3/DSA_get0_pqg.pod
+GENERATE[html/man3/DSA_get0_pqg.html]=man3/DSA_get0_pqg.pod
+DEPEND[man/man3/DSA_get0_pqg.3]=man3/DSA_get0_pqg.pod
+GENERATE[man/man3/DSA_get0_pqg.3]=man3/DSA_get0_pqg.pod
+DEPEND[html/man3/DSA_meth_new.html]=man3/DSA_meth_new.pod
+GENERATE[html/man3/DSA_meth_new.html]=man3/DSA_meth_new.pod
+DEPEND[man/man3/DSA_meth_new.3]=man3/DSA_meth_new.pod
+GENERATE[man/man3/DSA_meth_new.3]=man3/DSA_meth_new.pod
+DEPEND[html/man3/DSA_new.html]=man3/DSA_new.pod
+GENERATE[html/man3/DSA_new.html]=man3/DSA_new.pod
+DEPEND[man/man3/DSA_new.3]=man3/DSA_new.pod
+GENERATE[man/man3/DSA_new.3]=man3/DSA_new.pod
+DEPEND[html/man3/DSA_set_method.html]=man3/DSA_set_method.pod
+GENERATE[html/man3/DSA_set_method.html]=man3/DSA_set_method.pod
+DEPEND[man/man3/DSA_set_method.3]=man3/DSA_set_method.pod
+GENERATE[man/man3/DSA_set_method.3]=man3/DSA_set_method.pod
+DEPEND[html/man3/DSA_sign.html]=man3/DSA_sign.pod
+GENERATE[html/man3/DSA_sign.html]=man3/DSA_sign.pod
+DEPEND[man/man3/DSA_sign.3]=man3/DSA_sign.pod
+GENERATE[man/man3/DSA_sign.3]=man3/DSA_sign.pod
+DEPEND[html/man3/DSA_size.html]=man3/DSA_size.pod
+GENERATE[html/man3/DSA_size.html]=man3/DSA_size.pod
+DEPEND[man/man3/DSA_size.3]=man3/DSA_size.pod
+GENERATE[man/man3/DSA_size.3]=man3/DSA_size.pod
+DEPEND[html/man3/DTLS_get_data_mtu.html]=man3/DTLS_get_data_mtu.pod
+GENERATE[html/man3/DTLS_get_data_mtu.html]=man3/DTLS_get_data_mtu.pod
+DEPEND[man/man3/DTLS_get_data_mtu.3]=man3/DTLS_get_data_mtu.pod
+GENERATE[man/man3/DTLS_get_data_mtu.3]=man3/DTLS_get_data_mtu.pod
+DEPEND[html/man3/DTLS_set_timer_cb.html]=man3/DTLS_set_timer_cb.pod
+GENERATE[html/man3/DTLS_set_timer_cb.html]=man3/DTLS_set_timer_cb.pod
+DEPEND[man/man3/DTLS_set_timer_cb.3]=man3/DTLS_set_timer_cb.pod
+GENERATE[man/man3/DTLS_set_timer_cb.3]=man3/DTLS_set_timer_cb.pod
+DEPEND[html/man3/DTLSv1_listen.html]=man3/DTLSv1_listen.pod
+GENERATE[html/man3/DTLSv1_listen.html]=man3/DTLSv1_listen.pod
+DEPEND[man/man3/DTLSv1_listen.3]=man3/DTLSv1_listen.pod
+GENERATE[man/man3/DTLSv1_listen.3]=man3/DTLSv1_listen.pod
+DEPEND[html/man3/ECDSA_SIG_new.html]=man3/ECDSA_SIG_new.pod
+GENERATE[html/man3/ECDSA_SIG_new.html]=man3/ECDSA_SIG_new.pod
+DEPEND[man/man3/ECDSA_SIG_new.3]=man3/ECDSA_SIG_new.pod
+GENERATE[man/man3/ECDSA_SIG_new.3]=man3/ECDSA_SIG_new.pod
+DEPEND[html/man3/ECDSA_sign.html]=man3/ECDSA_sign.pod
+GENERATE[html/man3/ECDSA_sign.html]=man3/ECDSA_sign.pod
+DEPEND[man/man3/ECDSA_sign.3]=man3/ECDSA_sign.pod
+GENERATE[man/man3/ECDSA_sign.3]=man3/ECDSA_sign.pod
+DEPEND[html/man3/ECPKParameters_print.html]=man3/ECPKParameters_print.pod
+GENERATE[html/man3/ECPKParameters_print.html]=man3/ECPKParameters_print.pod
+DEPEND[man/man3/ECPKParameters_print.3]=man3/ECPKParameters_print.pod
+GENERATE[man/man3/ECPKParameters_print.3]=man3/ECPKParameters_print.pod
+DEPEND[html/man3/EC_GFp_simple_method.html]=man3/EC_GFp_simple_method.pod
+GENERATE[html/man3/EC_GFp_simple_method.html]=man3/EC_GFp_simple_method.pod
+DEPEND[man/man3/EC_GFp_simple_method.3]=man3/EC_GFp_simple_method.pod
+GENERATE[man/man3/EC_GFp_simple_method.3]=man3/EC_GFp_simple_method.pod
+DEPEND[html/man3/EC_GROUP_copy.html]=man3/EC_GROUP_copy.pod
+GENERATE[html/man3/EC_GROUP_copy.html]=man3/EC_GROUP_copy.pod
+DEPEND[man/man3/EC_GROUP_copy.3]=man3/EC_GROUP_copy.pod
+GENERATE[man/man3/EC_GROUP_copy.3]=man3/EC_GROUP_copy.pod
+DEPEND[html/man3/EC_GROUP_new.html]=man3/EC_GROUP_new.pod
+GENERATE[html/man3/EC_GROUP_new.html]=man3/EC_GROUP_new.pod
+DEPEND[man/man3/EC_GROUP_new.3]=man3/EC_GROUP_new.pod
+GENERATE[man/man3/EC_GROUP_new.3]=man3/EC_GROUP_new.pod
+DEPEND[html/man3/EC_KEY_get_enc_flags.html]=man3/EC_KEY_get_enc_flags.pod
+GENERATE[html/man3/EC_KEY_get_enc_flags.html]=man3/EC_KEY_get_enc_flags.pod
+DEPEND[man/man3/EC_KEY_get_enc_flags.3]=man3/EC_KEY_get_enc_flags.pod
+GENERATE[man/man3/EC_KEY_get_enc_flags.3]=man3/EC_KEY_get_enc_flags.pod
+DEPEND[html/man3/EC_KEY_new.html]=man3/EC_KEY_new.pod
+GENERATE[html/man3/EC_KEY_new.html]=man3/EC_KEY_new.pod
+DEPEND[man/man3/EC_KEY_new.3]=man3/EC_KEY_new.pod
+GENERATE[man/man3/EC_KEY_new.3]=man3/EC_KEY_new.pod
+DEPEND[html/man3/EC_POINT_add.html]=man3/EC_POINT_add.pod
+GENERATE[html/man3/EC_POINT_add.html]=man3/EC_POINT_add.pod
+DEPEND[man/man3/EC_POINT_add.3]=man3/EC_POINT_add.pod
+GENERATE[man/man3/EC_POINT_add.3]=man3/EC_POINT_add.pod
+DEPEND[html/man3/EC_POINT_new.html]=man3/EC_POINT_new.pod
+GENERATE[html/man3/EC_POINT_new.html]=man3/EC_POINT_new.pod
+DEPEND[man/man3/EC_POINT_new.3]=man3/EC_POINT_new.pod
+GENERATE[man/man3/EC_POINT_new.3]=man3/EC_POINT_new.pod
+DEPEND[html/man3/ENGINE_add.html]=man3/ENGINE_add.pod
+GENERATE[html/man3/ENGINE_add.html]=man3/ENGINE_add.pod
+DEPEND[man/man3/ENGINE_add.3]=man3/ENGINE_add.pod
+GENERATE[man/man3/ENGINE_add.3]=man3/ENGINE_add.pod
+DEPEND[html/man3/ERR_GET_LIB.html]=man3/ERR_GET_LIB.pod
+GENERATE[html/man3/ERR_GET_LIB.html]=man3/ERR_GET_LIB.pod
+DEPEND[man/man3/ERR_GET_LIB.3]=man3/ERR_GET_LIB.pod
+GENERATE[man/man3/ERR_GET_LIB.3]=man3/ERR_GET_LIB.pod
+DEPEND[html/man3/ERR_clear_error.html]=man3/ERR_clear_error.pod
+GENERATE[html/man3/ERR_clear_error.html]=man3/ERR_clear_error.pod
+DEPEND[man/man3/ERR_clear_error.3]=man3/ERR_clear_error.pod
+GENERATE[man/man3/ERR_clear_error.3]=man3/ERR_clear_error.pod
+DEPEND[html/man3/ERR_error_string.html]=man3/ERR_error_string.pod
+GENERATE[html/man3/ERR_error_string.html]=man3/ERR_error_string.pod
+DEPEND[man/man3/ERR_error_string.3]=man3/ERR_error_string.pod
+GENERATE[man/man3/ERR_error_string.3]=man3/ERR_error_string.pod
+DEPEND[html/man3/ERR_get_error.html]=man3/ERR_get_error.pod
+GENERATE[html/man3/ERR_get_error.html]=man3/ERR_get_error.pod
+DEPEND[man/man3/ERR_get_error.3]=man3/ERR_get_error.pod
+GENERATE[man/man3/ERR_get_error.3]=man3/ERR_get_error.pod
+DEPEND[html/man3/ERR_load_crypto_strings.html]=man3/ERR_load_crypto_strings.pod
+GENERATE[html/man3/ERR_load_crypto_strings.html]=man3/ERR_load_crypto_strings.pod
+DEPEND[man/man3/ERR_load_crypto_strings.3]=man3/ERR_load_crypto_strings.pod
+GENERATE[man/man3/ERR_load_crypto_strings.3]=man3/ERR_load_crypto_strings.pod
+DEPEND[html/man3/ERR_load_strings.html]=man3/ERR_load_strings.pod
+GENERATE[html/man3/ERR_load_strings.html]=man3/ERR_load_strings.pod
+DEPEND[man/man3/ERR_load_strings.3]=man3/ERR_load_strings.pod
+GENERATE[man/man3/ERR_load_strings.3]=man3/ERR_load_strings.pod
+DEPEND[html/man3/ERR_new.html]=man3/ERR_new.pod
+GENERATE[html/man3/ERR_new.html]=man3/ERR_new.pod
+DEPEND[man/man3/ERR_new.3]=man3/ERR_new.pod
+GENERATE[man/man3/ERR_new.3]=man3/ERR_new.pod
+DEPEND[html/man3/ERR_print_errors.html]=man3/ERR_print_errors.pod
+GENERATE[html/man3/ERR_print_errors.html]=man3/ERR_print_errors.pod
+DEPEND[man/man3/ERR_print_errors.3]=man3/ERR_print_errors.pod
+GENERATE[man/man3/ERR_print_errors.3]=man3/ERR_print_errors.pod
+DEPEND[html/man3/ERR_put_error.html]=man3/ERR_put_error.pod
+GENERATE[html/man3/ERR_put_error.html]=man3/ERR_put_error.pod
+DEPEND[man/man3/ERR_put_error.3]=man3/ERR_put_error.pod
+GENERATE[man/man3/ERR_put_error.3]=man3/ERR_put_error.pod
+DEPEND[html/man3/ERR_remove_state.html]=man3/ERR_remove_state.pod
+GENERATE[html/man3/ERR_remove_state.html]=man3/ERR_remove_state.pod
+DEPEND[man/man3/ERR_remove_state.3]=man3/ERR_remove_state.pod
+GENERATE[man/man3/ERR_remove_state.3]=man3/ERR_remove_state.pod
+DEPEND[html/man3/ERR_set_mark.html]=man3/ERR_set_mark.pod
+GENERATE[html/man3/ERR_set_mark.html]=man3/ERR_set_mark.pod
+DEPEND[man/man3/ERR_set_mark.3]=man3/ERR_set_mark.pod
+GENERATE[man/man3/ERR_set_mark.3]=man3/ERR_set_mark.pod
+DEPEND[html/man3/EVP_ASYM_CIPHER_free.html]=man3/EVP_ASYM_CIPHER_free.pod
+GENERATE[html/man3/EVP_ASYM_CIPHER_free.html]=man3/EVP_ASYM_CIPHER_free.pod
+DEPEND[man/man3/EVP_ASYM_CIPHER_free.3]=man3/EVP_ASYM_CIPHER_free.pod
+GENERATE[man/man3/EVP_ASYM_CIPHER_free.3]=man3/EVP_ASYM_CIPHER_free.pod
+DEPEND[html/man3/EVP_BytesToKey.html]=man3/EVP_BytesToKey.pod
+GENERATE[html/man3/EVP_BytesToKey.html]=man3/EVP_BytesToKey.pod
+DEPEND[man/man3/EVP_BytesToKey.3]=man3/EVP_BytesToKey.pod
+GENERATE[man/man3/EVP_BytesToKey.3]=man3/EVP_BytesToKey.pod
+DEPEND[html/man3/EVP_CIPHER_CTX_get_cipher_data.html]=man3/EVP_CIPHER_CTX_get_cipher_data.pod
+GENERATE[html/man3/EVP_CIPHER_CTX_get_cipher_data.html]=man3/EVP_CIPHER_CTX_get_cipher_data.pod
+DEPEND[man/man3/EVP_CIPHER_CTX_get_cipher_data.3]=man3/EVP_CIPHER_CTX_get_cipher_data.pod
+GENERATE[man/man3/EVP_CIPHER_CTX_get_cipher_data.3]=man3/EVP_CIPHER_CTX_get_cipher_data.pod
+DEPEND[html/man3/EVP_CIPHER_CTX_get_original_iv.html]=man3/EVP_CIPHER_CTX_get_original_iv.pod
+GENERATE[html/man3/EVP_CIPHER_CTX_get_original_iv.html]=man3/EVP_CIPHER_CTX_get_original_iv.pod
+DEPEND[man/man3/EVP_CIPHER_CTX_get_original_iv.3]=man3/EVP_CIPHER_CTX_get_original_iv.pod
+GENERATE[man/man3/EVP_CIPHER_CTX_get_original_iv.3]=man3/EVP_CIPHER_CTX_get_original_iv.pod
+DEPEND[html/man3/EVP_CIPHER_meth_new.html]=man3/EVP_CIPHER_meth_new.pod
+GENERATE[html/man3/EVP_CIPHER_meth_new.html]=man3/EVP_CIPHER_meth_new.pod
+DEPEND[man/man3/EVP_CIPHER_meth_new.3]=man3/EVP_CIPHER_meth_new.pod
+GENERATE[man/man3/EVP_CIPHER_meth_new.3]=man3/EVP_CIPHER_meth_new.pod
+DEPEND[html/man3/EVP_DigestInit.html]=man3/EVP_DigestInit.pod
+GENERATE[html/man3/EVP_DigestInit.html]=man3/EVP_DigestInit.pod
+DEPEND[man/man3/EVP_DigestInit.3]=man3/EVP_DigestInit.pod
+GENERATE[man/man3/EVP_DigestInit.3]=man3/EVP_DigestInit.pod
+DEPEND[html/man3/EVP_DigestSignInit.html]=man3/EVP_DigestSignInit.pod
+GENERATE[html/man3/EVP_DigestSignInit.html]=man3/EVP_DigestSignInit.pod
+DEPEND[man/man3/EVP_DigestSignInit.3]=man3/EVP_DigestSignInit.pod
+GENERATE[man/man3/EVP_DigestSignInit.3]=man3/EVP_DigestSignInit.pod
+DEPEND[html/man3/EVP_DigestVerifyInit.html]=man3/EVP_DigestVerifyInit.pod
+GENERATE[html/man3/EVP_DigestVerifyInit.html]=man3/EVP_DigestVerifyInit.pod
+DEPEND[man/man3/EVP_DigestVerifyInit.3]=man3/EVP_DigestVerifyInit.pod
+GENERATE[man/man3/EVP_DigestVerifyInit.3]=man3/EVP_DigestVerifyInit.pod
+DEPEND[html/man3/EVP_EncodeInit.html]=man3/EVP_EncodeInit.pod
+GENERATE[html/man3/EVP_EncodeInit.html]=man3/EVP_EncodeInit.pod
+DEPEND[man/man3/EVP_EncodeInit.3]=man3/EVP_EncodeInit.pod
+GENERATE[man/man3/EVP_EncodeInit.3]=man3/EVP_EncodeInit.pod
+DEPEND[html/man3/EVP_EncryptInit.html]=man3/EVP_EncryptInit.pod
+GENERATE[html/man3/EVP_EncryptInit.html]=man3/EVP_EncryptInit.pod
+DEPEND[man/man3/EVP_EncryptInit.3]=man3/EVP_EncryptInit.pod
+GENERATE[man/man3/EVP_EncryptInit.3]=man3/EVP_EncryptInit.pod
+DEPEND[html/man3/EVP_KDF.html]=man3/EVP_KDF.pod
+GENERATE[html/man3/EVP_KDF.html]=man3/EVP_KDF.pod
+DEPEND[man/man3/EVP_KDF.3]=man3/EVP_KDF.pod
+GENERATE[man/man3/EVP_KDF.3]=man3/EVP_KDF.pod
+DEPEND[html/man3/EVP_KEM_free.html]=man3/EVP_KEM_free.pod
+GENERATE[html/man3/EVP_KEM_free.html]=man3/EVP_KEM_free.pod
+DEPEND[man/man3/EVP_KEM_free.3]=man3/EVP_KEM_free.pod
+GENERATE[man/man3/EVP_KEM_free.3]=man3/EVP_KEM_free.pod
+DEPEND[html/man3/EVP_KEYEXCH_free.html]=man3/EVP_KEYEXCH_free.pod
+GENERATE[html/man3/EVP_KEYEXCH_free.html]=man3/EVP_KEYEXCH_free.pod
+DEPEND[man/man3/EVP_KEYEXCH_free.3]=man3/EVP_KEYEXCH_free.pod
+GENERATE[man/man3/EVP_KEYEXCH_free.3]=man3/EVP_KEYEXCH_free.pod
+DEPEND[html/man3/EVP_KEYMGMT.html]=man3/EVP_KEYMGMT.pod
+GENERATE[html/man3/EVP_KEYMGMT.html]=man3/EVP_KEYMGMT.pod
+DEPEND[man/man3/EVP_KEYMGMT.3]=man3/EVP_KEYMGMT.pod
+GENERATE[man/man3/EVP_KEYMGMT.3]=man3/EVP_KEYMGMT.pod
+DEPEND[html/man3/EVP_MAC.html]=man3/EVP_MAC.pod
+GENERATE[html/man3/EVP_MAC.html]=man3/EVP_MAC.pod
+DEPEND[man/man3/EVP_MAC.3]=man3/EVP_MAC.pod
+GENERATE[man/man3/EVP_MAC.3]=man3/EVP_MAC.pod
+DEPEND[html/man3/EVP_MD_meth_new.html]=man3/EVP_MD_meth_new.pod
+GENERATE[html/man3/EVP_MD_meth_new.html]=man3/EVP_MD_meth_new.pod
+DEPEND[man/man3/EVP_MD_meth_new.3]=man3/EVP_MD_meth_new.pod
+GENERATE[man/man3/EVP_MD_meth_new.3]=man3/EVP_MD_meth_new.pod
+DEPEND[html/man3/EVP_OpenInit.html]=man3/EVP_OpenInit.pod
+GENERATE[html/man3/EVP_OpenInit.html]=man3/EVP_OpenInit.pod
+DEPEND[man/man3/EVP_OpenInit.3]=man3/EVP_OpenInit.pod
+GENERATE[man/man3/EVP_OpenInit.3]=man3/EVP_OpenInit.pod
+DEPEND[html/man3/EVP_PBE_CipherInit.html]=man3/EVP_PBE_CipherInit.pod
+GENERATE[html/man3/EVP_PBE_CipherInit.html]=man3/EVP_PBE_CipherInit.pod
+DEPEND[man/man3/EVP_PBE_CipherInit.3]=man3/EVP_PBE_CipherInit.pod
+GENERATE[man/man3/EVP_PBE_CipherInit.3]=man3/EVP_PBE_CipherInit.pod
+DEPEND[html/man3/EVP_PKEY2PKCS8.html]=man3/EVP_PKEY2PKCS8.pod
+GENERATE[html/man3/EVP_PKEY2PKCS8.html]=man3/EVP_PKEY2PKCS8.pod
+DEPEND[man/man3/EVP_PKEY2PKCS8.3]=man3/EVP_PKEY2PKCS8.pod
+GENERATE[man/man3/EVP_PKEY2PKCS8.3]=man3/EVP_PKEY2PKCS8.pod
+DEPEND[html/man3/EVP_PKEY_ASN1_METHOD.html]=man3/EVP_PKEY_ASN1_METHOD.pod
+GENERATE[html/man3/EVP_PKEY_ASN1_METHOD.html]=man3/EVP_PKEY_ASN1_METHOD.pod
+DEPEND[man/man3/EVP_PKEY_ASN1_METHOD.3]=man3/EVP_PKEY_ASN1_METHOD.pod
+GENERATE[man/man3/EVP_PKEY_ASN1_METHOD.3]=man3/EVP_PKEY_ASN1_METHOD.pod
+DEPEND[html/man3/EVP_PKEY_CTX_ctrl.html]=man3/EVP_PKEY_CTX_ctrl.pod
+GENERATE[html/man3/EVP_PKEY_CTX_ctrl.html]=man3/EVP_PKEY_CTX_ctrl.pod
+DEPEND[man/man3/EVP_PKEY_CTX_ctrl.3]=man3/EVP_PKEY_CTX_ctrl.pod
+GENERATE[man/man3/EVP_PKEY_CTX_ctrl.3]=man3/EVP_PKEY_CTX_ctrl.pod
+DEPEND[html/man3/EVP_PKEY_CTX_get0_libctx.html]=man3/EVP_PKEY_CTX_get0_libctx.pod
+GENERATE[html/man3/EVP_PKEY_CTX_get0_libctx.html]=man3/EVP_PKEY_CTX_get0_libctx.pod
+DEPEND[man/man3/EVP_PKEY_CTX_get0_libctx.3]=man3/EVP_PKEY_CTX_get0_libctx.pod
+GENERATE[man/man3/EVP_PKEY_CTX_get0_libctx.3]=man3/EVP_PKEY_CTX_get0_libctx.pod
+DEPEND[html/man3/EVP_PKEY_CTX_get0_pkey.html]=man3/EVP_PKEY_CTX_get0_pkey.pod
+GENERATE[html/man3/EVP_PKEY_CTX_get0_pkey.html]=man3/EVP_PKEY_CTX_get0_pkey.pod
+DEPEND[man/man3/EVP_PKEY_CTX_get0_pkey.3]=man3/EVP_PKEY_CTX_get0_pkey.pod
+GENERATE[man/man3/EVP_PKEY_CTX_get0_pkey.3]=man3/EVP_PKEY_CTX_get0_pkey.pod
+DEPEND[html/man3/EVP_PKEY_CTX_new.html]=man3/EVP_PKEY_CTX_new.pod
+GENERATE[html/man3/EVP_PKEY_CTX_new.html]=man3/EVP_PKEY_CTX_new.pod
+DEPEND[man/man3/EVP_PKEY_CTX_new.3]=man3/EVP_PKEY_CTX_new.pod
+GENERATE[man/man3/EVP_PKEY_CTX_new.3]=man3/EVP_PKEY_CTX_new.pod
+DEPEND[html/man3/EVP_PKEY_CTX_set1_pbe_pass.html]=man3/EVP_PKEY_CTX_set1_pbe_pass.pod
+GENERATE[html/man3/EVP_PKEY_CTX_set1_pbe_pass.html]=man3/EVP_PKEY_CTX_set1_pbe_pass.pod
+DEPEND[man/man3/EVP_PKEY_CTX_set1_pbe_pass.3]=man3/EVP_PKEY_CTX_set1_pbe_pass.pod
+GENERATE[man/man3/EVP_PKEY_CTX_set1_pbe_pass.3]=man3/EVP_PKEY_CTX_set1_pbe_pass.pod
+DEPEND[html/man3/EVP_PKEY_CTX_set_hkdf_md.html]=man3/EVP_PKEY_CTX_set_hkdf_md.pod
+GENERATE[html/man3/EVP_PKEY_CTX_set_hkdf_md.html]=man3/EVP_PKEY_CTX_set_hkdf_md.pod
+DEPEND[man/man3/EVP_PKEY_CTX_set_hkdf_md.3]=man3/EVP_PKEY_CTX_set_hkdf_md.pod
+GENERATE[man/man3/EVP_PKEY_CTX_set_hkdf_md.3]=man3/EVP_PKEY_CTX_set_hkdf_md.pod
+DEPEND[html/man3/EVP_PKEY_CTX_set_params.html]=man3/EVP_PKEY_CTX_set_params.pod
+GENERATE[html/man3/EVP_PKEY_CTX_set_params.html]=man3/EVP_PKEY_CTX_set_params.pod
+DEPEND[man/man3/EVP_PKEY_CTX_set_params.3]=man3/EVP_PKEY_CTX_set_params.pod
+GENERATE[man/man3/EVP_PKEY_CTX_set_params.3]=man3/EVP_PKEY_CTX_set_params.pod
+DEPEND[html/man3/EVP_PKEY_CTX_set_rsa_pss_keygen_md.html]=man3/EVP_PKEY_CTX_set_rsa_pss_keygen_md.pod
+GENERATE[html/man3/EVP_PKEY_CTX_set_rsa_pss_keygen_md.html]=man3/EVP_PKEY_CTX_set_rsa_pss_keygen_md.pod
+DEPEND[man/man3/EVP_PKEY_CTX_set_rsa_pss_keygen_md.3]=man3/EVP_PKEY_CTX_set_rsa_pss_keygen_md.pod
+GENERATE[man/man3/EVP_PKEY_CTX_set_rsa_pss_keygen_md.3]=man3/EVP_PKEY_CTX_set_rsa_pss_keygen_md.pod
+DEPEND[html/man3/EVP_PKEY_CTX_set_scrypt_N.html]=man3/EVP_PKEY_CTX_set_scrypt_N.pod
+GENERATE[html/man3/EVP_PKEY_CTX_set_scrypt_N.html]=man3/EVP_PKEY_CTX_set_scrypt_N.pod
+DEPEND[man/man3/EVP_PKEY_CTX_set_scrypt_N.3]=man3/EVP_PKEY_CTX_set_scrypt_N.pod
+GENERATE[man/man3/EVP_PKEY_CTX_set_scrypt_N.3]=man3/EVP_PKEY_CTX_set_scrypt_N.pod
+DEPEND[html/man3/EVP_PKEY_CTX_set_tls1_prf_md.html]=man3/EVP_PKEY_CTX_set_tls1_prf_md.pod
+GENERATE[html/man3/EVP_PKEY_CTX_set_tls1_prf_md.html]=man3/EVP_PKEY_CTX_set_tls1_prf_md.pod
+DEPEND[man/man3/EVP_PKEY_CTX_set_tls1_prf_md.3]=man3/EVP_PKEY_CTX_set_tls1_prf_md.pod
+GENERATE[man/man3/EVP_PKEY_CTX_set_tls1_prf_md.3]=man3/EVP_PKEY_CTX_set_tls1_prf_md.pod
+DEPEND[html/man3/EVP_PKEY_asn1_get_count.html]=man3/EVP_PKEY_asn1_get_count.pod
+GENERATE[html/man3/EVP_PKEY_asn1_get_count.html]=man3/EVP_PKEY_asn1_get_count.pod
+DEPEND[man/man3/EVP_PKEY_asn1_get_count.3]=man3/EVP_PKEY_asn1_get_count.pod
+GENERATE[man/man3/EVP_PKEY_asn1_get_count.3]=man3/EVP_PKEY_asn1_get_count.pod
+DEPEND[html/man3/EVP_PKEY_check.html]=man3/EVP_PKEY_check.pod
+GENERATE[html/man3/EVP_PKEY_check.html]=man3/EVP_PKEY_check.pod
+DEPEND[man/man3/EVP_PKEY_check.3]=man3/EVP_PKEY_check.pod
+GENERATE[man/man3/EVP_PKEY_check.3]=man3/EVP_PKEY_check.pod
+DEPEND[html/man3/EVP_PKEY_copy_parameters.html]=man3/EVP_PKEY_copy_parameters.pod
+GENERATE[html/man3/EVP_PKEY_copy_parameters.html]=man3/EVP_PKEY_copy_parameters.pod
+DEPEND[man/man3/EVP_PKEY_copy_parameters.3]=man3/EVP_PKEY_copy_parameters.pod
+GENERATE[man/man3/EVP_PKEY_copy_parameters.3]=man3/EVP_PKEY_copy_parameters.pod
+DEPEND[html/man3/EVP_PKEY_decapsulate.html]=man3/EVP_PKEY_decapsulate.pod
+GENERATE[html/man3/EVP_PKEY_decapsulate.html]=man3/EVP_PKEY_decapsulate.pod
+DEPEND[man/man3/EVP_PKEY_decapsulate.3]=man3/EVP_PKEY_decapsulate.pod
+GENERATE[man/man3/EVP_PKEY_decapsulate.3]=man3/EVP_PKEY_decapsulate.pod
+DEPEND[html/man3/EVP_PKEY_decrypt.html]=man3/EVP_PKEY_decrypt.pod
+GENERATE[html/man3/EVP_PKEY_decrypt.html]=man3/EVP_PKEY_decrypt.pod
+DEPEND[man/man3/EVP_PKEY_decrypt.3]=man3/EVP_PKEY_decrypt.pod
+GENERATE[man/man3/EVP_PKEY_decrypt.3]=man3/EVP_PKEY_decrypt.pod
+DEPEND[html/man3/EVP_PKEY_derive.html]=man3/EVP_PKEY_derive.pod
+GENERATE[html/man3/EVP_PKEY_derive.html]=man3/EVP_PKEY_derive.pod
+DEPEND[man/man3/EVP_PKEY_derive.3]=man3/EVP_PKEY_derive.pod
+GENERATE[man/man3/EVP_PKEY_derive.3]=man3/EVP_PKEY_derive.pod
+DEPEND[html/man3/EVP_PKEY_digestsign_supports_digest.html]=man3/EVP_PKEY_digestsign_supports_digest.pod
+GENERATE[html/man3/EVP_PKEY_digestsign_supports_digest.html]=man3/EVP_PKEY_digestsign_supports_digest.pod
+DEPEND[man/man3/EVP_PKEY_digestsign_supports_digest.3]=man3/EVP_PKEY_digestsign_supports_digest.pod
+GENERATE[man/man3/EVP_PKEY_digestsign_supports_digest.3]=man3/EVP_PKEY_digestsign_supports_digest.pod
+DEPEND[html/man3/EVP_PKEY_encapsulate.html]=man3/EVP_PKEY_encapsulate.pod
+GENERATE[html/man3/EVP_PKEY_encapsulate.html]=man3/EVP_PKEY_encapsulate.pod
+DEPEND[man/man3/EVP_PKEY_encapsulate.3]=man3/EVP_PKEY_encapsulate.pod
+GENERATE[man/man3/EVP_PKEY_encapsulate.3]=man3/EVP_PKEY_encapsulate.pod
+DEPEND[html/man3/EVP_PKEY_encrypt.html]=man3/EVP_PKEY_encrypt.pod
+GENERATE[html/man3/EVP_PKEY_encrypt.html]=man3/EVP_PKEY_encrypt.pod
+DEPEND[man/man3/EVP_PKEY_encrypt.3]=man3/EVP_PKEY_encrypt.pod
+GENERATE[man/man3/EVP_PKEY_encrypt.3]=man3/EVP_PKEY_encrypt.pod
+DEPEND[html/man3/EVP_PKEY_fromdata.html]=man3/EVP_PKEY_fromdata.pod
+GENERATE[html/man3/EVP_PKEY_fromdata.html]=man3/EVP_PKEY_fromdata.pod
+DEPEND[man/man3/EVP_PKEY_fromdata.3]=man3/EVP_PKEY_fromdata.pod
+GENERATE[man/man3/EVP_PKEY_fromdata.3]=man3/EVP_PKEY_fromdata.pod
+DEPEND[html/man3/EVP_PKEY_get_attr.html]=man3/EVP_PKEY_get_attr.pod
+GENERATE[html/man3/EVP_PKEY_get_attr.html]=man3/EVP_PKEY_get_attr.pod
+DEPEND[man/man3/EVP_PKEY_get_attr.3]=man3/EVP_PKEY_get_attr.pod
+GENERATE[man/man3/EVP_PKEY_get_attr.3]=man3/EVP_PKEY_get_attr.pod
+DEPEND[html/man3/EVP_PKEY_get_default_digest_nid.html]=man3/EVP_PKEY_get_default_digest_nid.pod
+GENERATE[html/man3/EVP_PKEY_get_default_digest_nid.html]=man3/EVP_PKEY_get_default_digest_nid.pod
+DEPEND[man/man3/EVP_PKEY_get_default_digest_nid.3]=man3/EVP_PKEY_get_default_digest_nid.pod
+GENERATE[man/man3/EVP_PKEY_get_default_digest_nid.3]=man3/EVP_PKEY_get_default_digest_nid.pod
+DEPEND[html/man3/EVP_PKEY_get_field_type.html]=man3/EVP_PKEY_get_field_type.pod
+GENERATE[html/man3/EVP_PKEY_get_field_type.html]=man3/EVP_PKEY_get_field_type.pod
+DEPEND[man/man3/EVP_PKEY_get_field_type.3]=man3/EVP_PKEY_get_field_type.pod
+GENERATE[man/man3/EVP_PKEY_get_field_type.3]=man3/EVP_PKEY_get_field_type.pod
+DEPEND[html/man3/EVP_PKEY_get_group_name.html]=man3/EVP_PKEY_get_group_name.pod
+GENERATE[html/man3/EVP_PKEY_get_group_name.html]=man3/EVP_PKEY_get_group_name.pod
+DEPEND[man/man3/EVP_PKEY_get_group_name.3]=man3/EVP_PKEY_get_group_name.pod
+GENERATE[man/man3/EVP_PKEY_get_group_name.3]=man3/EVP_PKEY_get_group_name.pod
+DEPEND[html/man3/EVP_PKEY_get_size.html]=man3/EVP_PKEY_get_size.pod
+GENERATE[html/man3/EVP_PKEY_get_size.html]=man3/EVP_PKEY_get_size.pod
+DEPEND[man/man3/EVP_PKEY_get_size.3]=man3/EVP_PKEY_get_size.pod
+GENERATE[man/man3/EVP_PKEY_get_size.3]=man3/EVP_PKEY_get_size.pod
+DEPEND[html/man3/EVP_PKEY_gettable_params.html]=man3/EVP_PKEY_gettable_params.pod
+GENERATE[html/man3/EVP_PKEY_gettable_params.html]=man3/EVP_PKEY_gettable_params.pod
+DEPEND[man/man3/EVP_PKEY_gettable_params.3]=man3/EVP_PKEY_gettable_params.pod
+GENERATE[man/man3/EVP_PKEY_gettable_params.3]=man3/EVP_PKEY_gettable_params.pod
+DEPEND[html/man3/EVP_PKEY_is_a.html]=man3/EVP_PKEY_is_a.pod
+GENERATE[html/man3/EVP_PKEY_is_a.html]=man3/EVP_PKEY_is_a.pod
+DEPEND[man/man3/EVP_PKEY_is_a.3]=man3/EVP_PKEY_is_a.pod
+GENERATE[man/man3/EVP_PKEY_is_a.3]=man3/EVP_PKEY_is_a.pod
+DEPEND[html/man3/EVP_PKEY_keygen.html]=man3/EVP_PKEY_keygen.pod
+GENERATE[html/man3/EVP_PKEY_keygen.html]=man3/EVP_PKEY_keygen.pod
+DEPEND[man/man3/EVP_PKEY_keygen.3]=man3/EVP_PKEY_keygen.pod
+GENERATE[man/man3/EVP_PKEY_keygen.3]=man3/EVP_PKEY_keygen.pod
+DEPEND[html/man3/EVP_PKEY_meth_get_count.html]=man3/EVP_PKEY_meth_get_count.pod
+GENERATE[html/man3/EVP_PKEY_meth_get_count.html]=man3/EVP_PKEY_meth_get_count.pod
+DEPEND[man/man3/EVP_PKEY_meth_get_count.3]=man3/EVP_PKEY_meth_get_count.pod
+GENERATE[man/man3/EVP_PKEY_meth_get_count.3]=man3/EVP_PKEY_meth_get_count.pod
+DEPEND[html/man3/EVP_PKEY_meth_new.html]=man3/EVP_PKEY_meth_new.pod
+GENERATE[html/man3/EVP_PKEY_meth_new.html]=man3/EVP_PKEY_meth_new.pod
+DEPEND[man/man3/EVP_PKEY_meth_new.3]=man3/EVP_PKEY_meth_new.pod
+GENERATE[man/man3/EVP_PKEY_meth_new.3]=man3/EVP_PKEY_meth_new.pod
+DEPEND[html/man3/EVP_PKEY_new.html]=man3/EVP_PKEY_new.pod
+GENERATE[html/man3/EVP_PKEY_new.html]=man3/EVP_PKEY_new.pod
+DEPEND[man/man3/EVP_PKEY_new.3]=man3/EVP_PKEY_new.pod
+GENERATE[man/man3/EVP_PKEY_new.3]=man3/EVP_PKEY_new.pod
+DEPEND[html/man3/EVP_PKEY_print_private.html]=man3/EVP_PKEY_print_private.pod
+GENERATE[html/man3/EVP_PKEY_print_private.html]=man3/EVP_PKEY_print_private.pod
+DEPEND[man/man3/EVP_PKEY_print_private.3]=man3/EVP_PKEY_print_private.pod
+GENERATE[man/man3/EVP_PKEY_print_private.3]=man3/EVP_PKEY_print_private.pod
+DEPEND[html/man3/EVP_PKEY_set1_RSA.html]=man3/EVP_PKEY_set1_RSA.pod
+GENERATE[html/man3/EVP_PKEY_set1_RSA.html]=man3/EVP_PKEY_set1_RSA.pod
+DEPEND[man/man3/EVP_PKEY_set1_RSA.3]=man3/EVP_PKEY_set1_RSA.pod
+GENERATE[man/man3/EVP_PKEY_set1_RSA.3]=man3/EVP_PKEY_set1_RSA.pod
+DEPEND[html/man3/EVP_PKEY_set1_encoded_public_key.html]=man3/EVP_PKEY_set1_encoded_public_key.pod
+GENERATE[html/man3/EVP_PKEY_set1_encoded_public_key.html]=man3/EVP_PKEY_set1_encoded_public_key.pod
+DEPEND[man/man3/EVP_PKEY_set1_encoded_public_key.3]=man3/EVP_PKEY_set1_encoded_public_key.pod
+GENERATE[man/man3/EVP_PKEY_set1_encoded_public_key.3]=man3/EVP_PKEY_set1_encoded_public_key.pod
+DEPEND[html/man3/EVP_PKEY_set_type.html]=man3/EVP_PKEY_set_type.pod
+GENERATE[html/man3/EVP_PKEY_set_type.html]=man3/EVP_PKEY_set_type.pod
+DEPEND[man/man3/EVP_PKEY_set_type.3]=man3/EVP_PKEY_set_type.pod
+GENERATE[man/man3/EVP_PKEY_set_type.3]=man3/EVP_PKEY_set_type.pod
+DEPEND[html/man3/EVP_PKEY_settable_params.html]=man3/EVP_PKEY_settable_params.pod
+GENERATE[html/man3/EVP_PKEY_settable_params.html]=man3/EVP_PKEY_settable_params.pod
+DEPEND[man/man3/EVP_PKEY_settable_params.3]=man3/EVP_PKEY_settable_params.pod
+GENERATE[man/man3/EVP_PKEY_settable_params.3]=man3/EVP_PKEY_settable_params.pod
+DEPEND[html/man3/EVP_PKEY_sign.html]=man3/EVP_PKEY_sign.pod
+GENERATE[html/man3/EVP_PKEY_sign.html]=man3/EVP_PKEY_sign.pod
+DEPEND[man/man3/EVP_PKEY_sign.3]=man3/EVP_PKEY_sign.pod
+GENERATE[man/man3/EVP_PKEY_sign.3]=man3/EVP_PKEY_sign.pod
+DEPEND[html/man3/EVP_PKEY_todata.html]=man3/EVP_PKEY_todata.pod
+GENERATE[html/man3/EVP_PKEY_todata.html]=man3/EVP_PKEY_todata.pod
+DEPEND[man/man3/EVP_PKEY_todata.3]=man3/EVP_PKEY_todata.pod
+GENERATE[man/man3/EVP_PKEY_todata.3]=man3/EVP_PKEY_todata.pod
+DEPEND[html/man3/EVP_PKEY_verify.html]=man3/EVP_PKEY_verify.pod
+GENERATE[html/man3/EVP_PKEY_verify.html]=man3/EVP_PKEY_verify.pod
+DEPEND[man/man3/EVP_PKEY_verify.3]=man3/EVP_PKEY_verify.pod
+GENERATE[man/man3/EVP_PKEY_verify.3]=man3/EVP_PKEY_verify.pod
+DEPEND[html/man3/EVP_PKEY_verify_recover.html]=man3/EVP_PKEY_verify_recover.pod
+GENERATE[html/man3/EVP_PKEY_verify_recover.html]=man3/EVP_PKEY_verify_recover.pod
+DEPEND[man/man3/EVP_PKEY_verify_recover.3]=man3/EVP_PKEY_verify_recover.pod
+GENERATE[man/man3/EVP_PKEY_verify_recover.3]=man3/EVP_PKEY_verify_recover.pod
+DEPEND[html/man3/EVP_RAND.html]=man3/EVP_RAND.pod
+GENERATE[html/man3/EVP_RAND.html]=man3/EVP_RAND.pod
+DEPEND[man/man3/EVP_RAND.3]=man3/EVP_RAND.pod
+GENERATE[man/man3/EVP_RAND.3]=man3/EVP_RAND.pod
+DEPEND[html/man3/EVP_SIGNATURE.html]=man3/EVP_SIGNATURE.pod
+GENERATE[html/man3/EVP_SIGNATURE.html]=man3/EVP_SIGNATURE.pod
+DEPEND[man/man3/EVP_SIGNATURE.3]=man3/EVP_SIGNATURE.pod
+GENERATE[man/man3/EVP_SIGNATURE.3]=man3/EVP_SIGNATURE.pod
+DEPEND[html/man3/EVP_SealInit.html]=man3/EVP_SealInit.pod
+GENERATE[html/man3/EVP_SealInit.html]=man3/EVP_SealInit.pod
+DEPEND[man/man3/EVP_SealInit.3]=man3/EVP_SealInit.pod
+GENERATE[man/man3/EVP_SealInit.3]=man3/EVP_SealInit.pod
+DEPEND[html/man3/EVP_SignInit.html]=man3/EVP_SignInit.pod
+GENERATE[html/man3/EVP_SignInit.html]=man3/EVP_SignInit.pod
+DEPEND[man/man3/EVP_SignInit.3]=man3/EVP_SignInit.pod
+GENERATE[man/man3/EVP_SignInit.3]=man3/EVP_SignInit.pod
+DEPEND[html/man3/EVP_VerifyInit.html]=man3/EVP_VerifyInit.pod
+GENERATE[html/man3/EVP_VerifyInit.html]=man3/EVP_VerifyInit.pod
+DEPEND[man/man3/EVP_VerifyInit.3]=man3/EVP_VerifyInit.pod
+GENERATE[man/man3/EVP_VerifyInit.3]=man3/EVP_VerifyInit.pod
+DEPEND[html/man3/EVP_aes_128_gcm.html]=man3/EVP_aes_128_gcm.pod
+GENERATE[html/man3/EVP_aes_128_gcm.html]=man3/EVP_aes_128_gcm.pod
+DEPEND[man/man3/EVP_aes_128_gcm.3]=man3/EVP_aes_128_gcm.pod
+GENERATE[man/man3/EVP_aes_128_gcm.3]=man3/EVP_aes_128_gcm.pod
+DEPEND[html/man3/EVP_aria_128_gcm.html]=man3/EVP_aria_128_gcm.pod
+GENERATE[html/man3/EVP_aria_128_gcm.html]=man3/EVP_aria_128_gcm.pod
+DEPEND[man/man3/EVP_aria_128_gcm.3]=man3/EVP_aria_128_gcm.pod
+GENERATE[man/man3/EVP_aria_128_gcm.3]=man3/EVP_aria_128_gcm.pod
+DEPEND[html/man3/EVP_bf_cbc.html]=man3/EVP_bf_cbc.pod
+GENERATE[html/man3/EVP_bf_cbc.html]=man3/EVP_bf_cbc.pod
+DEPEND[man/man3/EVP_bf_cbc.3]=man3/EVP_bf_cbc.pod
+GENERATE[man/man3/EVP_bf_cbc.3]=man3/EVP_bf_cbc.pod
+DEPEND[html/man3/EVP_blake2b512.html]=man3/EVP_blake2b512.pod
+GENERATE[html/man3/EVP_blake2b512.html]=man3/EVP_blake2b512.pod
+DEPEND[man/man3/EVP_blake2b512.3]=man3/EVP_blake2b512.pod
+GENERATE[man/man3/EVP_blake2b512.3]=man3/EVP_blake2b512.pod
+DEPEND[html/man3/EVP_camellia_128_ecb.html]=man3/EVP_camellia_128_ecb.pod
+GENERATE[html/man3/EVP_camellia_128_ecb.html]=man3/EVP_camellia_128_ecb.pod
+DEPEND[man/man3/EVP_camellia_128_ecb.3]=man3/EVP_camellia_128_ecb.pod
+GENERATE[man/man3/EVP_camellia_128_ecb.3]=man3/EVP_camellia_128_ecb.pod
+DEPEND[html/man3/EVP_cast5_cbc.html]=man3/EVP_cast5_cbc.pod
+GENERATE[html/man3/EVP_cast5_cbc.html]=man3/EVP_cast5_cbc.pod
+DEPEND[man/man3/EVP_cast5_cbc.3]=man3/EVP_cast5_cbc.pod
+GENERATE[man/man3/EVP_cast5_cbc.3]=man3/EVP_cast5_cbc.pod
+DEPEND[html/man3/EVP_chacha20.html]=man3/EVP_chacha20.pod
+GENERATE[html/man3/EVP_chacha20.html]=man3/EVP_chacha20.pod
+DEPEND[man/man3/EVP_chacha20.3]=man3/EVP_chacha20.pod
+GENERATE[man/man3/EVP_chacha20.3]=man3/EVP_chacha20.pod
+DEPEND[html/man3/EVP_des_cbc.html]=man3/EVP_des_cbc.pod
+GENERATE[html/man3/EVP_des_cbc.html]=man3/EVP_des_cbc.pod
+DEPEND[man/man3/EVP_des_cbc.3]=man3/EVP_des_cbc.pod
+GENERATE[man/man3/EVP_des_cbc.3]=man3/EVP_des_cbc.pod
+DEPEND[html/man3/EVP_desx_cbc.html]=man3/EVP_desx_cbc.pod
+GENERATE[html/man3/EVP_desx_cbc.html]=man3/EVP_desx_cbc.pod
+DEPEND[man/man3/EVP_desx_cbc.3]=man3/EVP_desx_cbc.pod
+GENERATE[man/man3/EVP_desx_cbc.3]=man3/EVP_desx_cbc.pod
+DEPEND[html/man3/EVP_idea_cbc.html]=man3/EVP_idea_cbc.pod
+GENERATE[html/man3/EVP_idea_cbc.html]=man3/EVP_idea_cbc.pod
+DEPEND[man/man3/EVP_idea_cbc.3]=man3/EVP_idea_cbc.pod
+GENERATE[man/man3/EVP_idea_cbc.3]=man3/EVP_idea_cbc.pod
+DEPEND[html/man3/EVP_md2.html]=man3/EVP_md2.pod
+GENERATE[html/man3/EVP_md2.html]=man3/EVP_md2.pod
+DEPEND[man/man3/EVP_md2.3]=man3/EVP_md2.pod
+GENERATE[man/man3/EVP_md2.3]=man3/EVP_md2.pod
+DEPEND[html/man3/EVP_md4.html]=man3/EVP_md4.pod
+GENERATE[html/man3/EVP_md4.html]=man3/EVP_md4.pod
+DEPEND[man/man3/EVP_md4.3]=man3/EVP_md4.pod
+GENERATE[man/man3/EVP_md4.3]=man3/EVP_md4.pod
+DEPEND[html/man3/EVP_md5.html]=man3/EVP_md5.pod
+GENERATE[html/man3/EVP_md5.html]=man3/EVP_md5.pod
+DEPEND[man/man3/EVP_md5.3]=man3/EVP_md5.pod
+GENERATE[man/man3/EVP_md5.3]=man3/EVP_md5.pod
+DEPEND[html/man3/EVP_mdc2.html]=man3/EVP_mdc2.pod
+GENERATE[html/man3/EVP_mdc2.html]=man3/EVP_mdc2.pod
+DEPEND[man/man3/EVP_mdc2.3]=man3/EVP_mdc2.pod
+GENERATE[man/man3/EVP_mdc2.3]=man3/EVP_mdc2.pod
+DEPEND[html/man3/EVP_rc2_cbc.html]=man3/EVP_rc2_cbc.pod
+GENERATE[html/man3/EVP_rc2_cbc.html]=man3/EVP_rc2_cbc.pod
+DEPEND[man/man3/EVP_rc2_cbc.3]=man3/EVP_rc2_cbc.pod
+GENERATE[man/man3/EVP_rc2_cbc.3]=man3/EVP_rc2_cbc.pod
+DEPEND[html/man3/EVP_rc4.html]=man3/EVP_rc4.pod
+GENERATE[html/man3/EVP_rc4.html]=man3/EVP_rc4.pod
+DEPEND[man/man3/EVP_rc4.3]=man3/EVP_rc4.pod
+GENERATE[man/man3/EVP_rc4.3]=man3/EVP_rc4.pod
+DEPEND[html/man3/EVP_rc5_32_12_16_cbc.html]=man3/EVP_rc5_32_12_16_cbc.pod
+GENERATE[html/man3/EVP_rc5_32_12_16_cbc.html]=man3/EVP_rc5_32_12_16_cbc.pod
+DEPEND[man/man3/EVP_rc5_32_12_16_cbc.3]=man3/EVP_rc5_32_12_16_cbc.pod
+GENERATE[man/man3/EVP_rc5_32_12_16_cbc.3]=man3/EVP_rc5_32_12_16_cbc.pod
+DEPEND[html/man3/EVP_ripemd160.html]=man3/EVP_ripemd160.pod
+GENERATE[html/man3/EVP_ripemd160.html]=man3/EVP_ripemd160.pod
+DEPEND[man/man3/EVP_ripemd160.3]=man3/EVP_ripemd160.pod
+GENERATE[man/man3/EVP_ripemd160.3]=man3/EVP_ripemd160.pod
+DEPEND[html/man3/EVP_seed_cbc.html]=man3/EVP_seed_cbc.pod
+GENERATE[html/man3/EVP_seed_cbc.html]=man3/EVP_seed_cbc.pod
+DEPEND[man/man3/EVP_seed_cbc.3]=man3/EVP_seed_cbc.pod
+GENERATE[man/man3/EVP_seed_cbc.3]=man3/EVP_seed_cbc.pod
+DEPEND[html/man3/EVP_set_default_properties.html]=man3/EVP_set_default_properties.pod
+GENERATE[html/man3/EVP_set_default_properties.html]=man3/EVP_set_default_properties.pod
+DEPEND[man/man3/EVP_set_default_properties.3]=man3/EVP_set_default_properties.pod
+GENERATE[man/man3/EVP_set_default_properties.3]=man3/EVP_set_default_properties.pod
+DEPEND[html/man3/EVP_sha1.html]=man3/EVP_sha1.pod
+GENERATE[html/man3/EVP_sha1.html]=man3/EVP_sha1.pod
+DEPEND[man/man3/EVP_sha1.3]=man3/EVP_sha1.pod
+GENERATE[man/man3/EVP_sha1.3]=man3/EVP_sha1.pod
+DEPEND[html/man3/EVP_sha224.html]=man3/EVP_sha224.pod
+GENERATE[html/man3/EVP_sha224.html]=man3/EVP_sha224.pod
+DEPEND[man/man3/EVP_sha224.3]=man3/EVP_sha224.pod
+GENERATE[man/man3/EVP_sha224.3]=man3/EVP_sha224.pod
+DEPEND[html/man3/EVP_sha3_224.html]=man3/EVP_sha3_224.pod
+GENERATE[html/man3/EVP_sha3_224.html]=man3/EVP_sha3_224.pod
+DEPEND[man/man3/EVP_sha3_224.3]=man3/EVP_sha3_224.pod
+GENERATE[man/man3/EVP_sha3_224.3]=man3/EVP_sha3_224.pod
+DEPEND[html/man3/EVP_sm3.html]=man3/EVP_sm3.pod
+GENERATE[html/man3/EVP_sm3.html]=man3/EVP_sm3.pod
+DEPEND[man/man3/EVP_sm3.3]=man3/EVP_sm3.pod
+GENERATE[man/man3/EVP_sm3.3]=man3/EVP_sm3.pod
+DEPEND[html/man3/EVP_sm4_cbc.html]=man3/EVP_sm4_cbc.pod
+GENERATE[html/man3/EVP_sm4_cbc.html]=man3/EVP_sm4_cbc.pod
+DEPEND[man/man3/EVP_sm4_cbc.3]=man3/EVP_sm4_cbc.pod
+GENERATE[man/man3/EVP_sm4_cbc.3]=man3/EVP_sm4_cbc.pod
+DEPEND[html/man3/EVP_whirlpool.html]=man3/EVP_whirlpool.pod
+GENERATE[html/man3/EVP_whirlpool.html]=man3/EVP_whirlpool.pod
+DEPEND[man/man3/EVP_whirlpool.3]=man3/EVP_whirlpool.pod
+GENERATE[man/man3/EVP_whirlpool.3]=man3/EVP_whirlpool.pod
+DEPEND[html/man3/HMAC.html]=man3/HMAC.pod
+GENERATE[html/man3/HMAC.html]=man3/HMAC.pod
+DEPEND[man/man3/HMAC.3]=man3/HMAC.pod
+GENERATE[man/man3/HMAC.3]=man3/HMAC.pod
+DEPEND[html/man3/MD5.html]=man3/MD5.pod
+GENERATE[html/man3/MD5.html]=man3/MD5.pod
+DEPEND[man/man3/MD5.3]=man3/MD5.pod
+GENERATE[man/man3/MD5.3]=man3/MD5.pod
+DEPEND[html/man3/MDC2_Init.html]=man3/MDC2_Init.pod
+GENERATE[html/man3/MDC2_Init.html]=man3/MDC2_Init.pod
+DEPEND[man/man3/MDC2_Init.3]=man3/MDC2_Init.pod
+GENERATE[man/man3/MDC2_Init.3]=man3/MDC2_Init.pod
+DEPEND[html/man3/NCONF_new_ex.html]=man3/NCONF_new_ex.pod
+GENERATE[html/man3/NCONF_new_ex.html]=man3/NCONF_new_ex.pod
+DEPEND[man/man3/NCONF_new_ex.3]=man3/NCONF_new_ex.pod
+GENERATE[man/man3/NCONF_new_ex.3]=man3/NCONF_new_ex.pod
+DEPEND[html/man3/OBJ_nid2obj.html]=man3/OBJ_nid2obj.pod
+GENERATE[html/man3/OBJ_nid2obj.html]=man3/OBJ_nid2obj.pod
+DEPEND[man/man3/OBJ_nid2obj.3]=man3/OBJ_nid2obj.pod
+GENERATE[man/man3/OBJ_nid2obj.3]=man3/OBJ_nid2obj.pod
+DEPEND[html/man3/OCSP_REQUEST_new.html]=man3/OCSP_REQUEST_new.pod
+GENERATE[html/man3/OCSP_REQUEST_new.html]=man3/OCSP_REQUEST_new.pod
+DEPEND[man/man3/OCSP_REQUEST_new.3]=man3/OCSP_REQUEST_new.pod
+GENERATE[man/man3/OCSP_REQUEST_new.3]=man3/OCSP_REQUEST_new.pod
+DEPEND[html/man3/OCSP_cert_to_id.html]=man3/OCSP_cert_to_id.pod
+GENERATE[html/man3/OCSP_cert_to_id.html]=man3/OCSP_cert_to_id.pod
+DEPEND[man/man3/OCSP_cert_to_id.3]=man3/OCSP_cert_to_id.pod
+GENERATE[man/man3/OCSP_cert_to_id.3]=man3/OCSP_cert_to_id.pod
+DEPEND[html/man3/OCSP_request_add1_nonce.html]=man3/OCSP_request_add1_nonce.pod
+GENERATE[html/man3/OCSP_request_add1_nonce.html]=man3/OCSP_request_add1_nonce.pod
+DEPEND[man/man3/OCSP_request_add1_nonce.3]=man3/OCSP_request_add1_nonce.pod
+GENERATE[man/man3/OCSP_request_add1_nonce.3]=man3/OCSP_request_add1_nonce.pod
+DEPEND[html/man3/OCSP_resp_find_status.html]=man3/OCSP_resp_find_status.pod
+GENERATE[html/man3/OCSP_resp_find_status.html]=man3/OCSP_resp_find_status.pod
+DEPEND[man/man3/OCSP_resp_find_status.3]=man3/OCSP_resp_find_status.pod
+GENERATE[man/man3/OCSP_resp_find_status.3]=man3/OCSP_resp_find_status.pod
+DEPEND[html/man3/OCSP_response_status.html]=man3/OCSP_response_status.pod
+GENERATE[html/man3/OCSP_response_status.html]=man3/OCSP_response_status.pod
+DEPEND[man/man3/OCSP_response_status.3]=man3/OCSP_response_status.pod
+GENERATE[man/man3/OCSP_response_status.3]=man3/OCSP_response_status.pod
+DEPEND[html/man3/OCSP_sendreq_new.html]=man3/OCSP_sendreq_new.pod
+GENERATE[html/man3/OCSP_sendreq_new.html]=man3/OCSP_sendreq_new.pod
+DEPEND[man/man3/OCSP_sendreq_new.3]=man3/OCSP_sendreq_new.pod
+GENERATE[man/man3/OCSP_sendreq_new.3]=man3/OCSP_sendreq_new.pod
+DEPEND[html/man3/OPENSSL_Applink.html]=man3/OPENSSL_Applink.pod
+GENERATE[html/man3/OPENSSL_Applink.html]=man3/OPENSSL_Applink.pod
+DEPEND[man/man3/OPENSSL_Applink.3]=man3/OPENSSL_Applink.pod
+GENERATE[man/man3/OPENSSL_Applink.3]=man3/OPENSSL_Applink.pod
+DEPEND[html/man3/OPENSSL_FILE.html]=man3/OPENSSL_FILE.pod
+GENERATE[html/man3/OPENSSL_FILE.html]=man3/OPENSSL_FILE.pod
+DEPEND[man/man3/OPENSSL_FILE.3]=man3/OPENSSL_FILE.pod
+GENERATE[man/man3/OPENSSL_FILE.3]=man3/OPENSSL_FILE.pod
+DEPEND[html/man3/OPENSSL_LH_COMPFUNC.html]=man3/OPENSSL_LH_COMPFUNC.pod
+GENERATE[html/man3/OPENSSL_LH_COMPFUNC.html]=man3/OPENSSL_LH_COMPFUNC.pod
+DEPEND[man/man3/OPENSSL_LH_COMPFUNC.3]=man3/OPENSSL_LH_COMPFUNC.pod
+GENERATE[man/man3/OPENSSL_LH_COMPFUNC.3]=man3/OPENSSL_LH_COMPFUNC.pod
+DEPEND[html/man3/OPENSSL_LH_stats.html]=man3/OPENSSL_LH_stats.pod
+GENERATE[html/man3/OPENSSL_LH_stats.html]=man3/OPENSSL_LH_stats.pod
+DEPEND[man/man3/OPENSSL_LH_stats.3]=man3/OPENSSL_LH_stats.pod
+GENERATE[man/man3/OPENSSL_LH_stats.3]=man3/OPENSSL_LH_stats.pod
+DEPEND[html/man3/OPENSSL_config.html]=man3/OPENSSL_config.pod
+GENERATE[html/man3/OPENSSL_config.html]=man3/OPENSSL_config.pod
+DEPEND[man/man3/OPENSSL_config.3]=man3/OPENSSL_config.pod
+GENERATE[man/man3/OPENSSL_config.3]=man3/OPENSSL_config.pod
+DEPEND[html/man3/OPENSSL_fork_prepare.html]=man3/OPENSSL_fork_prepare.pod
+GENERATE[html/man3/OPENSSL_fork_prepare.html]=man3/OPENSSL_fork_prepare.pod
+DEPEND[man/man3/OPENSSL_fork_prepare.3]=man3/OPENSSL_fork_prepare.pod
+GENERATE[man/man3/OPENSSL_fork_prepare.3]=man3/OPENSSL_fork_prepare.pod
+DEPEND[html/man3/OPENSSL_gmtime.html]=man3/OPENSSL_gmtime.pod
+GENERATE[html/man3/OPENSSL_gmtime.html]=man3/OPENSSL_gmtime.pod
+DEPEND[man/man3/OPENSSL_gmtime.3]=man3/OPENSSL_gmtime.pod
+GENERATE[man/man3/OPENSSL_gmtime.3]=man3/OPENSSL_gmtime.pod
+DEPEND[html/man3/OPENSSL_hexchar2int.html]=man3/OPENSSL_hexchar2int.pod
+GENERATE[html/man3/OPENSSL_hexchar2int.html]=man3/OPENSSL_hexchar2int.pod
+DEPEND[man/man3/OPENSSL_hexchar2int.3]=man3/OPENSSL_hexchar2int.pod
+GENERATE[man/man3/OPENSSL_hexchar2int.3]=man3/OPENSSL_hexchar2int.pod
+DEPEND[html/man3/OPENSSL_ia32cap.html]=man3/OPENSSL_ia32cap.pod
+GENERATE[html/man3/OPENSSL_ia32cap.html]=man3/OPENSSL_ia32cap.pod
+DEPEND[man/man3/OPENSSL_ia32cap.3]=man3/OPENSSL_ia32cap.pod
+GENERATE[man/man3/OPENSSL_ia32cap.3]=man3/OPENSSL_ia32cap.pod
+DEPEND[html/man3/OPENSSL_init_crypto.html]=man3/OPENSSL_init_crypto.pod
+GENERATE[html/man3/OPENSSL_init_crypto.html]=man3/OPENSSL_init_crypto.pod
+DEPEND[man/man3/OPENSSL_init_crypto.3]=man3/OPENSSL_init_crypto.pod
+GENERATE[man/man3/OPENSSL_init_crypto.3]=man3/OPENSSL_init_crypto.pod
+DEPEND[html/man3/OPENSSL_init_ssl.html]=man3/OPENSSL_init_ssl.pod
+GENERATE[html/man3/OPENSSL_init_ssl.html]=man3/OPENSSL_init_ssl.pod
+DEPEND[man/man3/OPENSSL_init_ssl.3]=man3/OPENSSL_init_ssl.pod
+GENERATE[man/man3/OPENSSL_init_ssl.3]=man3/OPENSSL_init_ssl.pod
+DEPEND[html/man3/OPENSSL_instrument_bus.html]=man3/OPENSSL_instrument_bus.pod
+GENERATE[html/man3/OPENSSL_instrument_bus.html]=man3/OPENSSL_instrument_bus.pod
+DEPEND[man/man3/OPENSSL_instrument_bus.3]=man3/OPENSSL_instrument_bus.pod
+GENERATE[man/man3/OPENSSL_instrument_bus.3]=man3/OPENSSL_instrument_bus.pod
+DEPEND[html/man3/OPENSSL_load_builtin_modules.html]=man3/OPENSSL_load_builtin_modules.pod
+GENERATE[html/man3/OPENSSL_load_builtin_modules.html]=man3/OPENSSL_load_builtin_modules.pod
+DEPEND[man/man3/OPENSSL_load_builtin_modules.3]=man3/OPENSSL_load_builtin_modules.pod
+GENERATE[man/man3/OPENSSL_load_builtin_modules.3]=man3/OPENSSL_load_builtin_modules.pod
+DEPEND[html/man3/OPENSSL_malloc.html]=man3/OPENSSL_malloc.pod
+GENERATE[html/man3/OPENSSL_malloc.html]=man3/OPENSSL_malloc.pod
+DEPEND[man/man3/OPENSSL_malloc.3]=man3/OPENSSL_malloc.pod
+GENERATE[man/man3/OPENSSL_malloc.3]=man3/OPENSSL_malloc.pod
+DEPEND[html/man3/OPENSSL_s390xcap.html]=man3/OPENSSL_s390xcap.pod
+GENERATE[html/man3/OPENSSL_s390xcap.html]=man3/OPENSSL_s390xcap.pod
+DEPEND[man/man3/OPENSSL_s390xcap.3]=man3/OPENSSL_s390xcap.pod
+GENERATE[man/man3/OPENSSL_s390xcap.3]=man3/OPENSSL_s390xcap.pod
+DEPEND[html/man3/OPENSSL_secure_malloc.html]=man3/OPENSSL_secure_malloc.pod
+GENERATE[html/man3/OPENSSL_secure_malloc.html]=man3/OPENSSL_secure_malloc.pod
+DEPEND[man/man3/OPENSSL_secure_malloc.3]=man3/OPENSSL_secure_malloc.pod
+GENERATE[man/man3/OPENSSL_secure_malloc.3]=man3/OPENSSL_secure_malloc.pod
+DEPEND[html/man3/OPENSSL_strcasecmp.html]=man3/OPENSSL_strcasecmp.pod
+GENERATE[html/man3/OPENSSL_strcasecmp.html]=man3/OPENSSL_strcasecmp.pod
+DEPEND[man/man3/OPENSSL_strcasecmp.3]=man3/OPENSSL_strcasecmp.pod
+GENERATE[man/man3/OPENSSL_strcasecmp.3]=man3/OPENSSL_strcasecmp.pod
+DEPEND[html/man3/OSSL_ALGORITHM.html]=man3/OSSL_ALGORITHM.pod
+GENERATE[html/man3/OSSL_ALGORITHM.html]=man3/OSSL_ALGORITHM.pod
+DEPEND[man/man3/OSSL_ALGORITHM.3]=man3/OSSL_ALGORITHM.pod
+GENERATE[man/man3/OSSL_ALGORITHM.3]=man3/OSSL_ALGORITHM.pod
+DEPEND[html/man3/OSSL_CALLBACK.html]=man3/OSSL_CALLBACK.pod
+GENERATE[html/man3/OSSL_CALLBACK.html]=man3/OSSL_CALLBACK.pod
+DEPEND[man/man3/OSSL_CALLBACK.3]=man3/OSSL_CALLBACK.pod
+GENERATE[man/man3/OSSL_CALLBACK.3]=man3/OSSL_CALLBACK.pod
+DEPEND[html/man3/OSSL_CMP_CTX_new.html]=man3/OSSL_CMP_CTX_new.pod
+GENERATE[html/man3/OSSL_CMP_CTX_new.html]=man3/OSSL_CMP_CTX_new.pod
+DEPEND[man/man3/OSSL_CMP_CTX_new.3]=man3/OSSL_CMP_CTX_new.pod
+GENERATE[man/man3/OSSL_CMP_CTX_new.3]=man3/OSSL_CMP_CTX_new.pod
+DEPEND[html/man3/OSSL_CMP_HDR_get0_transactionID.html]=man3/OSSL_CMP_HDR_get0_transactionID.pod
+GENERATE[html/man3/OSSL_CMP_HDR_get0_transactionID.html]=man3/OSSL_CMP_HDR_get0_transactionID.pod
+DEPEND[man/man3/OSSL_CMP_HDR_get0_transactionID.3]=man3/OSSL_CMP_HDR_get0_transactionID.pod
+GENERATE[man/man3/OSSL_CMP_HDR_get0_transactionID.3]=man3/OSSL_CMP_HDR_get0_transactionID.pod
+DEPEND[html/man3/OSSL_CMP_ITAV_set0.html]=man3/OSSL_CMP_ITAV_set0.pod
+GENERATE[html/man3/OSSL_CMP_ITAV_set0.html]=man3/OSSL_CMP_ITAV_set0.pod
+DEPEND[man/man3/OSSL_CMP_ITAV_set0.3]=man3/OSSL_CMP_ITAV_set0.pod
+GENERATE[man/man3/OSSL_CMP_ITAV_set0.3]=man3/OSSL_CMP_ITAV_set0.pod
+DEPEND[html/man3/OSSL_CMP_MSG_get0_header.html]=man3/OSSL_CMP_MSG_get0_header.pod
+GENERATE[html/man3/OSSL_CMP_MSG_get0_header.html]=man3/OSSL_CMP_MSG_get0_header.pod
+DEPEND[man/man3/OSSL_CMP_MSG_get0_header.3]=man3/OSSL_CMP_MSG_get0_header.pod
+GENERATE[man/man3/OSSL_CMP_MSG_get0_header.3]=man3/OSSL_CMP_MSG_get0_header.pod
+DEPEND[html/man3/OSSL_CMP_MSG_http_perform.html]=man3/OSSL_CMP_MSG_http_perform.pod
+GENERATE[html/man3/OSSL_CMP_MSG_http_perform.html]=man3/OSSL_CMP_MSG_http_perform.pod
+DEPEND[man/man3/OSSL_CMP_MSG_http_perform.3]=man3/OSSL_CMP_MSG_http_perform.pod
+GENERATE[man/man3/OSSL_CMP_MSG_http_perform.3]=man3/OSSL_CMP_MSG_http_perform.pod
+DEPEND[html/man3/OSSL_CMP_SRV_CTX_new.html]=man3/OSSL_CMP_SRV_CTX_new.pod
+GENERATE[html/man3/OSSL_CMP_SRV_CTX_new.html]=man3/OSSL_CMP_SRV_CTX_new.pod
+DEPEND[man/man3/OSSL_CMP_SRV_CTX_new.3]=man3/OSSL_CMP_SRV_CTX_new.pod
+GENERATE[man/man3/OSSL_CMP_SRV_CTX_new.3]=man3/OSSL_CMP_SRV_CTX_new.pod
+DEPEND[html/man3/OSSL_CMP_STATUSINFO_new.html]=man3/OSSL_CMP_STATUSINFO_new.pod
+GENERATE[html/man3/OSSL_CMP_STATUSINFO_new.html]=man3/OSSL_CMP_STATUSINFO_new.pod
+DEPEND[man/man3/OSSL_CMP_STATUSINFO_new.3]=man3/OSSL_CMP_STATUSINFO_new.pod
+GENERATE[man/man3/OSSL_CMP_STATUSINFO_new.3]=man3/OSSL_CMP_STATUSINFO_new.pod
+DEPEND[html/man3/OSSL_CMP_exec_certreq.html]=man3/OSSL_CMP_exec_certreq.pod
+GENERATE[html/man3/OSSL_CMP_exec_certreq.html]=man3/OSSL_CMP_exec_certreq.pod
+DEPEND[man/man3/OSSL_CMP_exec_certreq.3]=man3/OSSL_CMP_exec_certreq.pod
+GENERATE[man/man3/OSSL_CMP_exec_certreq.3]=man3/OSSL_CMP_exec_certreq.pod
+DEPEND[html/man3/OSSL_CMP_log_open.html]=man3/OSSL_CMP_log_open.pod
+GENERATE[html/man3/OSSL_CMP_log_open.html]=man3/OSSL_CMP_log_open.pod
+DEPEND[man/man3/OSSL_CMP_log_open.3]=man3/OSSL_CMP_log_open.pod
+GENERATE[man/man3/OSSL_CMP_log_open.3]=man3/OSSL_CMP_log_open.pod
+DEPEND[html/man3/OSSL_CMP_validate_msg.html]=man3/OSSL_CMP_validate_msg.pod
+GENERATE[html/man3/OSSL_CMP_validate_msg.html]=man3/OSSL_CMP_validate_msg.pod
+DEPEND[man/man3/OSSL_CMP_validate_msg.3]=man3/OSSL_CMP_validate_msg.pod
+GENERATE[man/man3/OSSL_CMP_validate_msg.3]=man3/OSSL_CMP_validate_msg.pod
+DEPEND[html/man3/OSSL_CORE_MAKE_FUNC.html]=man3/OSSL_CORE_MAKE_FUNC.pod
+GENERATE[html/man3/OSSL_CORE_MAKE_FUNC.html]=man3/OSSL_CORE_MAKE_FUNC.pod
+DEPEND[man/man3/OSSL_CORE_MAKE_FUNC.3]=man3/OSSL_CORE_MAKE_FUNC.pod
+GENERATE[man/man3/OSSL_CORE_MAKE_FUNC.3]=man3/OSSL_CORE_MAKE_FUNC.pod
+DEPEND[html/man3/OSSL_CRMF_MSG_get0_tmpl.html]=man3/OSSL_CRMF_MSG_get0_tmpl.pod
+GENERATE[html/man3/OSSL_CRMF_MSG_get0_tmpl.html]=man3/OSSL_CRMF_MSG_get0_tmpl.pod
+DEPEND[man/man3/OSSL_CRMF_MSG_get0_tmpl.3]=man3/OSSL_CRMF_MSG_get0_tmpl.pod
+GENERATE[man/man3/OSSL_CRMF_MSG_get0_tmpl.3]=man3/OSSL_CRMF_MSG_get0_tmpl.pod
+DEPEND[html/man3/OSSL_CRMF_MSG_set0_validity.html]=man3/OSSL_CRMF_MSG_set0_validity.pod
+GENERATE[html/man3/OSSL_CRMF_MSG_set0_validity.html]=man3/OSSL_CRMF_MSG_set0_validity.pod
+DEPEND[man/man3/OSSL_CRMF_MSG_set0_validity.3]=man3/OSSL_CRMF_MSG_set0_validity.pod
+GENERATE[man/man3/OSSL_CRMF_MSG_set0_validity.3]=man3/OSSL_CRMF_MSG_set0_validity.pod
+DEPEND[html/man3/OSSL_CRMF_MSG_set1_regCtrl_regToken.html]=man3/OSSL_CRMF_MSG_set1_regCtrl_regToken.pod
+GENERATE[html/man3/OSSL_CRMF_MSG_set1_regCtrl_regToken.html]=man3/OSSL_CRMF_MSG_set1_regCtrl_regToken.pod
+DEPEND[man/man3/OSSL_CRMF_MSG_set1_regCtrl_regToken.3]=man3/OSSL_CRMF_MSG_set1_regCtrl_regToken.pod
+GENERATE[man/man3/OSSL_CRMF_MSG_set1_regCtrl_regToken.3]=man3/OSSL_CRMF_MSG_set1_regCtrl_regToken.pod
+DEPEND[html/man3/OSSL_CRMF_MSG_set1_regInfo_certReq.html]=man3/OSSL_CRMF_MSG_set1_regInfo_certReq.pod
+GENERATE[html/man3/OSSL_CRMF_MSG_set1_regInfo_certReq.html]=man3/OSSL_CRMF_MSG_set1_regInfo_certReq.pod
+DEPEND[man/man3/OSSL_CRMF_MSG_set1_regInfo_certReq.3]=man3/OSSL_CRMF_MSG_set1_regInfo_certReq.pod
+GENERATE[man/man3/OSSL_CRMF_MSG_set1_regInfo_certReq.3]=man3/OSSL_CRMF_MSG_set1_regInfo_certReq.pod
+DEPEND[html/man3/OSSL_CRMF_pbmp_new.html]=man3/OSSL_CRMF_pbmp_new.pod
+GENERATE[html/man3/OSSL_CRMF_pbmp_new.html]=man3/OSSL_CRMF_pbmp_new.pod
+DEPEND[man/man3/OSSL_CRMF_pbmp_new.3]=man3/OSSL_CRMF_pbmp_new.pod
+GENERATE[man/man3/OSSL_CRMF_pbmp_new.3]=man3/OSSL_CRMF_pbmp_new.pod
+DEPEND[html/man3/OSSL_DECODER.html]=man3/OSSL_DECODER.pod
+GENERATE[html/man3/OSSL_DECODER.html]=man3/OSSL_DECODER.pod
+DEPEND[man/man3/OSSL_DECODER.3]=man3/OSSL_DECODER.pod
+GENERATE[man/man3/OSSL_DECODER.3]=man3/OSSL_DECODER.pod
+DEPEND[html/man3/OSSL_DECODER_CTX.html]=man3/OSSL_DECODER_CTX.pod
+GENERATE[html/man3/OSSL_DECODER_CTX.html]=man3/OSSL_DECODER_CTX.pod
+DEPEND[man/man3/OSSL_DECODER_CTX.3]=man3/OSSL_DECODER_CTX.pod
+GENERATE[man/man3/OSSL_DECODER_CTX.3]=man3/OSSL_DECODER_CTX.pod
+DEPEND[html/man3/OSSL_DECODER_CTX_new_for_pkey.html]=man3/OSSL_DECODER_CTX_new_for_pkey.pod
+GENERATE[html/man3/OSSL_DECODER_CTX_new_for_pkey.html]=man3/OSSL_DECODER_CTX_new_for_pkey.pod
+DEPEND[man/man3/OSSL_DECODER_CTX_new_for_pkey.3]=man3/OSSL_DECODER_CTX_new_for_pkey.pod
+GENERATE[man/man3/OSSL_DECODER_CTX_new_for_pkey.3]=man3/OSSL_DECODER_CTX_new_for_pkey.pod
+DEPEND[html/man3/OSSL_DECODER_from_bio.html]=man3/OSSL_DECODER_from_bio.pod
+GENERATE[html/man3/OSSL_DECODER_from_bio.html]=man3/OSSL_DECODER_from_bio.pod
+DEPEND[man/man3/OSSL_DECODER_from_bio.3]=man3/OSSL_DECODER_from_bio.pod
+GENERATE[man/man3/OSSL_DECODER_from_bio.3]=man3/OSSL_DECODER_from_bio.pod
+DEPEND[html/man3/OSSL_DISPATCH.html]=man3/OSSL_DISPATCH.pod
+GENERATE[html/man3/OSSL_DISPATCH.html]=man3/OSSL_DISPATCH.pod
+DEPEND[man/man3/OSSL_DISPATCH.3]=man3/OSSL_DISPATCH.pod
+GENERATE[man/man3/OSSL_DISPATCH.3]=man3/OSSL_DISPATCH.pod
+DEPEND[html/man3/OSSL_ENCODER.html]=man3/OSSL_ENCODER.pod
+GENERATE[html/man3/OSSL_ENCODER.html]=man3/OSSL_ENCODER.pod
+DEPEND[man/man3/OSSL_ENCODER.3]=man3/OSSL_ENCODER.pod
+GENERATE[man/man3/OSSL_ENCODER.3]=man3/OSSL_ENCODER.pod
+DEPEND[html/man3/OSSL_ENCODER_CTX.html]=man3/OSSL_ENCODER_CTX.pod
+GENERATE[html/man3/OSSL_ENCODER_CTX.html]=man3/OSSL_ENCODER_CTX.pod
+DEPEND[man/man3/OSSL_ENCODER_CTX.3]=man3/OSSL_ENCODER_CTX.pod
+GENERATE[man/man3/OSSL_ENCODER_CTX.3]=man3/OSSL_ENCODER_CTX.pod
+DEPEND[html/man3/OSSL_ENCODER_CTX_new_for_pkey.html]=man3/OSSL_ENCODER_CTX_new_for_pkey.pod
+GENERATE[html/man3/OSSL_ENCODER_CTX_new_for_pkey.html]=man3/OSSL_ENCODER_CTX_new_for_pkey.pod
+DEPEND[man/man3/OSSL_ENCODER_CTX_new_for_pkey.3]=man3/OSSL_ENCODER_CTX_new_for_pkey.pod
+GENERATE[man/man3/OSSL_ENCODER_CTX_new_for_pkey.3]=man3/OSSL_ENCODER_CTX_new_for_pkey.pod
+DEPEND[html/man3/OSSL_ENCODER_to_bio.html]=man3/OSSL_ENCODER_to_bio.pod
+GENERATE[html/man3/OSSL_ENCODER_to_bio.html]=man3/OSSL_ENCODER_to_bio.pod
+DEPEND[man/man3/OSSL_ENCODER_to_bio.3]=man3/OSSL_ENCODER_to_bio.pod
+GENERATE[man/man3/OSSL_ENCODER_to_bio.3]=man3/OSSL_ENCODER_to_bio.pod
+DEPEND[html/man3/OSSL_ESS_check_signing_certs.html]=man3/OSSL_ESS_check_signing_certs.pod
+GENERATE[html/man3/OSSL_ESS_check_signing_certs.html]=man3/OSSL_ESS_check_signing_certs.pod
+DEPEND[man/man3/OSSL_ESS_check_signing_certs.3]=man3/OSSL_ESS_check_signing_certs.pod
+GENERATE[man/man3/OSSL_ESS_check_signing_certs.3]=man3/OSSL_ESS_check_signing_certs.pod
+DEPEND[html/man3/OSSL_HTTP_REQ_CTX.html]=man3/OSSL_HTTP_REQ_CTX.pod
+GENERATE[html/man3/OSSL_HTTP_REQ_CTX.html]=man3/OSSL_HTTP_REQ_CTX.pod
+DEPEND[man/man3/OSSL_HTTP_REQ_CTX.3]=man3/OSSL_HTTP_REQ_CTX.pod
+GENERATE[man/man3/OSSL_HTTP_REQ_CTX.3]=man3/OSSL_HTTP_REQ_CTX.pod
+DEPEND[html/man3/OSSL_HTTP_parse_url.html]=man3/OSSL_HTTP_parse_url.pod
+GENERATE[html/man3/OSSL_HTTP_parse_url.html]=man3/OSSL_HTTP_parse_url.pod
+DEPEND[man/man3/OSSL_HTTP_parse_url.3]=man3/OSSL_HTTP_parse_url.pod
+GENERATE[man/man3/OSSL_HTTP_parse_url.3]=man3/OSSL_HTTP_parse_url.pod
+DEPEND[html/man3/OSSL_HTTP_transfer.html]=man3/OSSL_HTTP_transfer.pod
+GENERATE[html/man3/OSSL_HTTP_transfer.html]=man3/OSSL_HTTP_transfer.pod
+DEPEND[man/man3/OSSL_HTTP_transfer.3]=man3/OSSL_HTTP_transfer.pod
+GENERATE[man/man3/OSSL_HTTP_transfer.3]=man3/OSSL_HTTP_transfer.pod
+DEPEND[html/man3/OSSL_ITEM.html]=man3/OSSL_ITEM.pod
+GENERATE[html/man3/OSSL_ITEM.html]=man3/OSSL_ITEM.pod
+DEPEND[man/man3/OSSL_ITEM.3]=man3/OSSL_ITEM.pod
+GENERATE[man/man3/OSSL_ITEM.3]=man3/OSSL_ITEM.pod
+DEPEND[html/man3/OSSL_LIB_CTX.html]=man3/OSSL_LIB_CTX.pod
+GENERATE[html/man3/OSSL_LIB_CTX.html]=man3/OSSL_LIB_CTX.pod
+DEPEND[man/man3/OSSL_LIB_CTX.3]=man3/OSSL_LIB_CTX.pod
+GENERATE[man/man3/OSSL_LIB_CTX.3]=man3/OSSL_LIB_CTX.pod
+DEPEND[html/man3/OSSL_PARAM.html]=man3/OSSL_PARAM.pod
+GENERATE[html/man3/OSSL_PARAM.html]=man3/OSSL_PARAM.pod
+DEPEND[man/man3/OSSL_PARAM.3]=man3/OSSL_PARAM.pod
+GENERATE[man/man3/OSSL_PARAM.3]=man3/OSSL_PARAM.pod
+DEPEND[html/man3/OSSL_PARAM_BLD.html]=man3/OSSL_PARAM_BLD.pod
+GENERATE[html/man3/OSSL_PARAM_BLD.html]=man3/OSSL_PARAM_BLD.pod
+DEPEND[man/man3/OSSL_PARAM_BLD.3]=man3/OSSL_PARAM_BLD.pod
+GENERATE[man/man3/OSSL_PARAM_BLD.3]=man3/OSSL_PARAM_BLD.pod
+DEPEND[html/man3/OSSL_PARAM_allocate_from_text.html]=man3/OSSL_PARAM_allocate_from_text.pod
+GENERATE[html/man3/OSSL_PARAM_allocate_from_text.html]=man3/OSSL_PARAM_allocate_from_text.pod
+DEPEND[man/man3/OSSL_PARAM_allocate_from_text.3]=man3/OSSL_PARAM_allocate_from_text.pod
+GENERATE[man/man3/OSSL_PARAM_allocate_from_text.3]=man3/OSSL_PARAM_allocate_from_text.pod
+DEPEND[html/man3/OSSL_PARAM_dup.html]=man3/OSSL_PARAM_dup.pod
+GENERATE[html/man3/OSSL_PARAM_dup.html]=man3/OSSL_PARAM_dup.pod
+DEPEND[man/man3/OSSL_PARAM_dup.3]=man3/OSSL_PARAM_dup.pod
+GENERATE[man/man3/OSSL_PARAM_dup.3]=man3/OSSL_PARAM_dup.pod
+DEPEND[html/man3/OSSL_PARAM_int.html]=man3/OSSL_PARAM_int.pod
+GENERATE[html/man3/OSSL_PARAM_int.html]=man3/OSSL_PARAM_int.pod
+DEPEND[man/man3/OSSL_PARAM_int.3]=man3/OSSL_PARAM_int.pod
+GENERATE[man/man3/OSSL_PARAM_int.3]=man3/OSSL_PARAM_int.pod
+DEPEND[html/man3/OSSL_PROVIDER.html]=man3/OSSL_PROVIDER.pod
+GENERATE[html/man3/OSSL_PROVIDER.html]=man3/OSSL_PROVIDER.pod
+DEPEND[man/man3/OSSL_PROVIDER.3]=man3/OSSL_PROVIDER.pod
+GENERATE[man/man3/OSSL_PROVIDER.3]=man3/OSSL_PROVIDER.pod
+DEPEND[html/man3/OSSL_SELF_TEST_new.html]=man3/OSSL_SELF_TEST_new.pod
+GENERATE[html/man3/OSSL_SELF_TEST_new.html]=man3/OSSL_SELF_TEST_new.pod
+DEPEND[man/man3/OSSL_SELF_TEST_new.3]=man3/OSSL_SELF_TEST_new.pod
+GENERATE[man/man3/OSSL_SELF_TEST_new.3]=man3/OSSL_SELF_TEST_new.pod
+DEPEND[html/man3/OSSL_SELF_TEST_set_callback.html]=man3/OSSL_SELF_TEST_set_callback.pod
+GENERATE[html/man3/OSSL_SELF_TEST_set_callback.html]=man3/OSSL_SELF_TEST_set_callback.pod
+DEPEND[man/man3/OSSL_SELF_TEST_set_callback.3]=man3/OSSL_SELF_TEST_set_callback.pod
+GENERATE[man/man3/OSSL_SELF_TEST_set_callback.3]=man3/OSSL_SELF_TEST_set_callback.pod
+DEPEND[html/man3/OSSL_STORE_INFO.html]=man3/OSSL_STORE_INFO.pod
+GENERATE[html/man3/OSSL_STORE_INFO.html]=man3/OSSL_STORE_INFO.pod
+DEPEND[man/man3/OSSL_STORE_INFO.3]=man3/OSSL_STORE_INFO.pod
+GENERATE[man/man3/OSSL_STORE_INFO.3]=man3/OSSL_STORE_INFO.pod
+DEPEND[html/man3/OSSL_STORE_LOADER.html]=man3/OSSL_STORE_LOADER.pod
+GENERATE[html/man3/OSSL_STORE_LOADER.html]=man3/OSSL_STORE_LOADER.pod
+DEPEND[man/man3/OSSL_STORE_LOADER.3]=man3/OSSL_STORE_LOADER.pod
+GENERATE[man/man3/OSSL_STORE_LOADER.3]=man3/OSSL_STORE_LOADER.pod
+DEPEND[html/man3/OSSL_STORE_SEARCH.html]=man3/OSSL_STORE_SEARCH.pod
+GENERATE[html/man3/OSSL_STORE_SEARCH.html]=man3/OSSL_STORE_SEARCH.pod
+DEPEND[man/man3/OSSL_STORE_SEARCH.3]=man3/OSSL_STORE_SEARCH.pod
+GENERATE[man/man3/OSSL_STORE_SEARCH.3]=man3/OSSL_STORE_SEARCH.pod
+DEPEND[html/man3/OSSL_STORE_attach.html]=man3/OSSL_STORE_attach.pod
+GENERATE[html/man3/OSSL_STORE_attach.html]=man3/OSSL_STORE_attach.pod
+DEPEND[man/man3/OSSL_STORE_attach.3]=man3/OSSL_STORE_attach.pod
+GENERATE[man/man3/OSSL_STORE_attach.3]=man3/OSSL_STORE_attach.pod
+DEPEND[html/man3/OSSL_STORE_expect.html]=man3/OSSL_STORE_expect.pod
+GENERATE[html/man3/OSSL_STORE_expect.html]=man3/OSSL_STORE_expect.pod
+DEPEND[man/man3/OSSL_STORE_expect.3]=man3/OSSL_STORE_expect.pod
+GENERATE[man/man3/OSSL_STORE_expect.3]=man3/OSSL_STORE_expect.pod
+DEPEND[html/man3/OSSL_STORE_open.html]=man3/OSSL_STORE_open.pod
+GENERATE[html/man3/OSSL_STORE_open.html]=man3/OSSL_STORE_open.pod
+DEPEND[man/man3/OSSL_STORE_open.3]=man3/OSSL_STORE_open.pod
+GENERATE[man/man3/OSSL_STORE_open.3]=man3/OSSL_STORE_open.pod
+DEPEND[html/man3/OSSL_trace_enabled.html]=man3/OSSL_trace_enabled.pod
+GENERATE[html/man3/OSSL_trace_enabled.html]=man3/OSSL_trace_enabled.pod
+DEPEND[man/man3/OSSL_trace_enabled.3]=man3/OSSL_trace_enabled.pod
+GENERATE[man/man3/OSSL_trace_enabled.3]=man3/OSSL_trace_enabled.pod
+DEPEND[html/man3/OSSL_trace_get_category_num.html]=man3/OSSL_trace_get_category_num.pod
+GENERATE[html/man3/OSSL_trace_get_category_num.html]=man3/OSSL_trace_get_category_num.pod
+DEPEND[man/man3/OSSL_trace_get_category_num.3]=man3/OSSL_trace_get_category_num.pod
+GENERATE[man/man3/OSSL_trace_get_category_num.3]=man3/OSSL_trace_get_category_num.pod
+DEPEND[html/man3/OSSL_trace_set_channel.html]=man3/OSSL_trace_set_channel.pod
+GENERATE[html/man3/OSSL_trace_set_channel.html]=man3/OSSL_trace_set_channel.pod
+DEPEND[man/man3/OSSL_trace_set_channel.3]=man3/OSSL_trace_set_channel.pod
+GENERATE[man/man3/OSSL_trace_set_channel.3]=man3/OSSL_trace_set_channel.pod
+DEPEND[html/man3/OpenSSL_add_all_algorithms.html]=man3/OpenSSL_add_all_algorithms.pod
+GENERATE[html/man3/OpenSSL_add_all_algorithms.html]=man3/OpenSSL_add_all_algorithms.pod
+DEPEND[man/man3/OpenSSL_add_all_algorithms.3]=man3/OpenSSL_add_all_algorithms.pod
+GENERATE[man/man3/OpenSSL_add_all_algorithms.3]=man3/OpenSSL_add_all_algorithms.pod
+DEPEND[html/man3/OpenSSL_version.html]=man3/OpenSSL_version.pod
+GENERATE[html/man3/OpenSSL_version.html]=man3/OpenSSL_version.pod
+DEPEND[man/man3/OpenSSL_version.3]=man3/OpenSSL_version.pod
+GENERATE[man/man3/OpenSSL_version.3]=man3/OpenSSL_version.pod
+DEPEND[html/man3/PEM_X509_INFO_read_bio_ex.html]=man3/PEM_X509_INFO_read_bio_ex.pod
+GENERATE[html/man3/PEM_X509_INFO_read_bio_ex.html]=man3/PEM_X509_INFO_read_bio_ex.pod
+DEPEND[man/man3/PEM_X509_INFO_read_bio_ex.3]=man3/PEM_X509_INFO_read_bio_ex.pod
+GENERATE[man/man3/PEM_X509_INFO_read_bio_ex.3]=man3/PEM_X509_INFO_read_bio_ex.pod
+DEPEND[html/man3/PEM_bytes_read_bio.html]=man3/PEM_bytes_read_bio.pod
+GENERATE[html/man3/PEM_bytes_read_bio.html]=man3/PEM_bytes_read_bio.pod
+DEPEND[man/man3/PEM_bytes_read_bio.3]=man3/PEM_bytes_read_bio.pod
+GENERATE[man/man3/PEM_bytes_read_bio.3]=man3/PEM_bytes_read_bio.pod
+DEPEND[html/man3/PEM_read.html]=man3/PEM_read.pod
+GENERATE[html/man3/PEM_read.html]=man3/PEM_read.pod
+DEPEND[man/man3/PEM_read.3]=man3/PEM_read.pod
+GENERATE[man/man3/PEM_read.3]=man3/PEM_read.pod
+DEPEND[html/man3/PEM_read_CMS.html]=man3/PEM_read_CMS.pod
+GENERATE[html/man3/PEM_read_CMS.html]=man3/PEM_read_CMS.pod
+DEPEND[man/man3/PEM_read_CMS.3]=man3/PEM_read_CMS.pod
+GENERATE[man/man3/PEM_read_CMS.3]=man3/PEM_read_CMS.pod
+DEPEND[html/man3/PEM_read_bio_PrivateKey.html]=man3/PEM_read_bio_PrivateKey.pod
+GENERATE[html/man3/PEM_read_bio_PrivateKey.html]=man3/PEM_read_bio_PrivateKey.pod
+DEPEND[man/man3/PEM_read_bio_PrivateKey.3]=man3/PEM_read_bio_PrivateKey.pod
+GENERATE[man/man3/PEM_read_bio_PrivateKey.3]=man3/PEM_read_bio_PrivateKey.pod
+DEPEND[html/man3/PEM_read_bio_ex.html]=man3/PEM_read_bio_ex.pod
+GENERATE[html/man3/PEM_read_bio_ex.html]=man3/PEM_read_bio_ex.pod
+DEPEND[man/man3/PEM_read_bio_ex.3]=man3/PEM_read_bio_ex.pod
+GENERATE[man/man3/PEM_read_bio_ex.3]=man3/PEM_read_bio_ex.pod
+DEPEND[html/man3/PEM_write_bio_CMS_stream.html]=man3/PEM_write_bio_CMS_stream.pod
+GENERATE[html/man3/PEM_write_bio_CMS_stream.html]=man3/PEM_write_bio_CMS_stream.pod
+DEPEND[man/man3/PEM_write_bio_CMS_stream.3]=man3/PEM_write_bio_CMS_stream.pod
+GENERATE[man/man3/PEM_write_bio_CMS_stream.3]=man3/PEM_write_bio_CMS_stream.pod
+DEPEND[html/man3/PEM_write_bio_PKCS7_stream.html]=man3/PEM_write_bio_PKCS7_stream.pod
+GENERATE[html/man3/PEM_write_bio_PKCS7_stream.html]=man3/PEM_write_bio_PKCS7_stream.pod
+DEPEND[man/man3/PEM_write_bio_PKCS7_stream.3]=man3/PEM_write_bio_PKCS7_stream.pod
+GENERATE[man/man3/PEM_write_bio_PKCS7_stream.3]=man3/PEM_write_bio_PKCS7_stream.pod
+DEPEND[html/man3/PKCS12_PBE_keyivgen.html]=man3/PKCS12_PBE_keyivgen.pod
+GENERATE[html/man3/PKCS12_PBE_keyivgen.html]=man3/PKCS12_PBE_keyivgen.pod
+DEPEND[man/man3/PKCS12_PBE_keyivgen.3]=man3/PKCS12_PBE_keyivgen.pod
+GENERATE[man/man3/PKCS12_PBE_keyivgen.3]=man3/PKCS12_PBE_keyivgen.pod
+DEPEND[html/man3/PKCS12_SAFEBAG_create_cert.html]=man3/PKCS12_SAFEBAG_create_cert.pod
+GENERATE[html/man3/PKCS12_SAFEBAG_create_cert.html]=man3/PKCS12_SAFEBAG_create_cert.pod
+DEPEND[man/man3/PKCS12_SAFEBAG_create_cert.3]=man3/PKCS12_SAFEBAG_create_cert.pod
+GENERATE[man/man3/PKCS12_SAFEBAG_create_cert.3]=man3/PKCS12_SAFEBAG_create_cert.pod
+DEPEND[html/man3/PKCS12_SAFEBAG_get0_attrs.html]=man3/PKCS12_SAFEBAG_get0_attrs.pod
+GENERATE[html/man3/PKCS12_SAFEBAG_get0_attrs.html]=man3/PKCS12_SAFEBAG_get0_attrs.pod
+DEPEND[man/man3/PKCS12_SAFEBAG_get0_attrs.3]=man3/PKCS12_SAFEBAG_get0_attrs.pod
+GENERATE[man/man3/PKCS12_SAFEBAG_get0_attrs.3]=man3/PKCS12_SAFEBAG_get0_attrs.pod
+DEPEND[html/man3/PKCS12_SAFEBAG_get1_cert.html]=man3/PKCS12_SAFEBAG_get1_cert.pod
+GENERATE[html/man3/PKCS12_SAFEBAG_get1_cert.html]=man3/PKCS12_SAFEBAG_get1_cert.pod
+DEPEND[man/man3/PKCS12_SAFEBAG_get1_cert.3]=man3/PKCS12_SAFEBAG_get1_cert.pod
+GENERATE[man/man3/PKCS12_SAFEBAG_get1_cert.3]=man3/PKCS12_SAFEBAG_get1_cert.pod
+DEPEND[html/man3/PKCS12_add1_attr_by_NID.html]=man3/PKCS12_add1_attr_by_NID.pod
+GENERATE[html/man3/PKCS12_add1_attr_by_NID.html]=man3/PKCS12_add1_attr_by_NID.pod
+DEPEND[man/man3/PKCS12_add1_attr_by_NID.3]=man3/PKCS12_add1_attr_by_NID.pod
+GENERATE[man/man3/PKCS12_add1_attr_by_NID.3]=man3/PKCS12_add1_attr_by_NID.pod
+DEPEND[html/man3/PKCS12_add_CSPName_asc.html]=man3/PKCS12_add_CSPName_asc.pod
+GENERATE[html/man3/PKCS12_add_CSPName_asc.html]=man3/PKCS12_add_CSPName_asc.pod
+DEPEND[man/man3/PKCS12_add_CSPName_asc.3]=man3/PKCS12_add_CSPName_asc.pod
+GENERATE[man/man3/PKCS12_add_CSPName_asc.3]=man3/PKCS12_add_CSPName_asc.pod
+DEPEND[html/man3/PKCS12_add_cert.html]=man3/PKCS12_add_cert.pod
+GENERATE[html/man3/PKCS12_add_cert.html]=man3/PKCS12_add_cert.pod
+DEPEND[man/man3/PKCS12_add_cert.3]=man3/PKCS12_add_cert.pod
+GENERATE[man/man3/PKCS12_add_cert.3]=man3/PKCS12_add_cert.pod
+DEPEND[html/man3/PKCS12_add_friendlyname_asc.html]=man3/PKCS12_add_friendlyname_asc.pod
+GENERATE[html/man3/PKCS12_add_friendlyname_asc.html]=man3/PKCS12_add_friendlyname_asc.pod
+DEPEND[man/man3/PKCS12_add_friendlyname_asc.3]=man3/PKCS12_add_friendlyname_asc.pod
+GENERATE[man/man3/PKCS12_add_friendlyname_asc.3]=man3/PKCS12_add_friendlyname_asc.pod
+DEPEND[html/man3/PKCS12_add_localkeyid.html]=man3/PKCS12_add_localkeyid.pod
+GENERATE[html/man3/PKCS12_add_localkeyid.html]=man3/PKCS12_add_localkeyid.pod
+DEPEND[man/man3/PKCS12_add_localkeyid.3]=man3/PKCS12_add_localkeyid.pod
+GENERATE[man/man3/PKCS12_add_localkeyid.3]=man3/PKCS12_add_localkeyid.pod
+DEPEND[html/man3/PKCS12_add_safe.html]=man3/PKCS12_add_safe.pod
+GENERATE[html/man3/PKCS12_add_safe.html]=man3/PKCS12_add_safe.pod
+DEPEND[man/man3/PKCS12_add_safe.3]=man3/PKCS12_add_safe.pod
+GENERATE[man/man3/PKCS12_add_safe.3]=man3/PKCS12_add_safe.pod
+DEPEND[html/man3/PKCS12_create.html]=man3/PKCS12_create.pod
+GENERATE[html/man3/PKCS12_create.html]=man3/PKCS12_create.pod
+DEPEND[man/man3/PKCS12_create.3]=man3/PKCS12_create.pod
+GENERATE[man/man3/PKCS12_create.3]=man3/PKCS12_create.pod
+DEPEND[html/man3/PKCS12_decrypt_skey.html]=man3/PKCS12_decrypt_skey.pod
+GENERATE[html/man3/PKCS12_decrypt_skey.html]=man3/PKCS12_decrypt_skey.pod
+DEPEND[man/man3/PKCS12_decrypt_skey.3]=man3/PKCS12_decrypt_skey.pod
+GENERATE[man/man3/PKCS12_decrypt_skey.3]=man3/PKCS12_decrypt_skey.pod
+DEPEND[html/man3/PKCS12_gen_mac.html]=man3/PKCS12_gen_mac.pod
+GENERATE[html/man3/PKCS12_gen_mac.html]=man3/PKCS12_gen_mac.pod
+DEPEND[man/man3/PKCS12_gen_mac.3]=man3/PKCS12_gen_mac.pod
+GENERATE[man/man3/PKCS12_gen_mac.3]=man3/PKCS12_gen_mac.pod
+DEPEND[html/man3/PKCS12_get_friendlyname.html]=man3/PKCS12_get_friendlyname.pod
+GENERATE[html/man3/PKCS12_get_friendlyname.html]=man3/PKCS12_get_friendlyname.pod
+DEPEND[man/man3/PKCS12_get_friendlyname.3]=man3/PKCS12_get_friendlyname.pod
+GENERATE[man/man3/PKCS12_get_friendlyname.3]=man3/PKCS12_get_friendlyname.pod
+DEPEND[html/man3/PKCS12_init.html]=man3/PKCS12_init.pod
+GENERATE[html/man3/PKCS12_init.html]=man3/PKCS12_init.pod
+DEPEND[man/man3/PKCS12_init.3]=man3/PKCS12_init.pod
+GENERATE[man/man3/PKCS12_init.3]=man3/PKCS12_init.pod
+DEPEND[html/man3/PKCS12_item_decrypt_d2i.html]=man3/PKCS12_item_decrypt_d2i.pod
+GENERATE[html/man3/PKCS12_item_decrypt_d2i.html]=man3/PKCS12_item_decrypt_d2i.pod
+DEPEND[man/man3/PKCS12_item_decrypt_d2i.3]=man3/PKCS12_item_decrypt_d2i.pod
+GENERATE[man/man3/PKCS12_item_decrypt_d2i.3]=man3/PKCS12_item_decrypt_d2i.pod
+DEPEND[html/man3/PKCS12_key_gen_utf8_ex.html]=man3/PKCS12_key_gen_utf8_ex.pod
+GENERATE[html/man3/PKCS12_key_gen_utf8_ex.html]=man3/PKCS12_key_gen_utf8_ex.pod
+DEPEND[man/man3/PKCS12_key_gen_utf8_ex.3]=man3/PKCS12_key_gen_utf8_ex.pod
+GENERATE[man/man3/PKCS12_key_gen_utf8_ex.3]=man3/PKCS12_key_gen_utf8_ex.pod
+DEPEND[html/man3/PKCS12_newpass.html]=man3/PKCS12_newpass.pod
+GENERATE[html/man3/PKCS12_newpass.html]=man3/PKCS12_newpass.pod
+DEPEND[man/man3/PKCS12_newpass.3]=man3/PKCS12_newpass.pod
+GENERATE[man/man3/PKCS12_newpass.3]=man3/PKCS12_newpass.pod
+DEPEND[html/man3/PKCS12_pack_p7encdata.html]=man3/PKCS12_pack_p7encdata.pod
+GENERATE[html/man3/PKCS12_pack_p7encdata.html]=man3/PKCS12_pack_p7encdata.pod
+DEPEND[man/man3/PKCS12_pack_p7encdata.3]=man3/PKCS12_pack_p7encdata.pod
+GENERATE[man/man3/PKCS12_pack_p7encdata.3]=man3/PKCS12_pack_p7encdata.pod
+DEPEND[html/man3/PKCS12_parse.html]=man3/PKCS12_parse.pod
+GENERATE[html/man3/PKCS12_parse.html]=man3/PKCS12_parse.pod
+DEPEND[man/man3/PKCS12_parse.3]=man3/PKCS12_parse.pod
+GENERATE[man/man3/PKCS12_parse.3]=man3/PKCS12_parse.pod
+DEPEND[html/man3/PKCS5_PBE_keyivgen.html]=man3/PKCS5_PBE_keyivgen.pod
+GENERATE[html/man3/PKCS5_PBE_keyivgen.html]=man3/PKCS5_PBE_keyivgen.pod
+DEPEND[man/man3/PKCS5_PBE_keyivgen.3]=man3/PKCS5_PBE_keyivgen.pod
+GENERATE[man/man3/PKCS5_PBE_keyivgen.3]=man3/PKCS5_PBE_keyivgen.pod
+DEPEND[html/man3/PKCS5_PBKDF2_HMAC.html]=man3/PKCS5_PBKDF2_HMAC.pod
+GENERATE[html/man3/PKCS5_PBKDF2_HMAC.html]=man3/PKCS5_PBKDF2_HMAC.pod
+DEPEND[man/man3/PKCS5_PBKDF2_HMAC.3]=man3/PKCS5_PBKDF2_HMAC.pod
+GENERATE[man/man3/PKCS5_PBKDF2_HMAC.3]=man3/PKCS5_PBKDF2_HMAC.pod
+DEPEND[html/man3/PKCS7_decrypt.html]=man3/PKCS7_decrypt.pod
+GENERATE[html/man3/PKCS7_decrypt.html]=man3/PKCS7_decrypt.pod
+DEPEND[man/man3/PKCS7_decrypt.3]=man3/PKCS7_decrypt.pod
+GENERATE[man/man3/PKCS7_decrypt.3]=man3/PKCS7_decrypt.pod
+DEPEND[html/man3/PKCS7_encrypt.html]=man3/PKCS7_encrypt.pod
+GENERATE[html/man3/PKCS7_encrypt.html]=man3/PKCS7_encrypt.pod
+DEPEND[man/man3/PKCS7_encrypt.3]=man3/PKCS7_encrypt.pod
+GENERATE[man/man3/PKCS7_encrypt.3]=man3/PKCS7_encrypt.pod
+DEPEND[html/man3/PKCS7_get_octet_string.html]=man3/PKCS7_get_octet_string.pod
+GENERATE[html/man3/PKCS7_get_octet_string.html]=man3/PKCS7_get_octet_string.pod
+DEPEND[man/man3/PKCS7_get_octet_string.3]=man3/PKCS7_get_octet_string.pod
+GENERATE[man/man3/PKCS7_get_octet_string.3]=man3/PKCS7_get_octet_string.pod
+DEPEND[html/man3/PKCS7_sign.html]=man3/PKCS7_sign.pod
+GENERATE[html/man3/PKCS7_sign.html]=man3/PKCS7_sign.pod
+DEPEND[man/man3/PKCS7_sign.3]=man3/PKCS7_sign.pod
+GENERATE[man/man3/PKCS7_sign.3]=man3/PKCS7_sign.pod
+DEPEND[html/man3/PKCS7_sign_add_signer.html]=man3/PKCS7_sign_add_signer.pod
+GENERATE[html/man3/PKCS7_sign_add_signer.html]=man3/PKCS7_sign_add_signer.pod
+DEPEND[man/man3/PKCS7_sign_add_signer.3]=man3/PKCS7_sign_add_signer.pod
+GENERATE[man/man3/PKCS7_sign_add_signer.3]=man3/PKCS7_sign_add_signer.pod
+DEPEND[html/man3/PKCS7_type_is_other.html]=man3/PKCS7_type_is_other.pod
+GENERATE[html/man3/PKCS7_type_is_other.html]=man3/PKCS7_type_is_other.pod
+DEPEND[man/man3/PKCS7_type_is_other.3]=man3/PKCS7_type_is_other.pod
+GENERATE[man/man3/PKCS7_type_is_other.3]=man3/PKCS7_type_is_other.pod
+DEPEND[html/man3/PKCS7_verify.html]=man3/PKCS7_verify.pod
+GENERATE[html/man3/PKCS7_verify.html]=man3/PKCS7_verify.pod
+DEPEND[man/man3/PKCS7_verify.3]=man3/PKCS7_verify.pod
+GENERATE[man/man3/PKCS7_verify.3]=man3/PKCS7_verify.pod
+DEPEND[html/man3/PKCS8_encrypt.html]=man3/PKCS8_encrypt.pod
+GENERATE[html/man3/PKCS8_encrypt.html]=man3/PKCS8_encrypt.pod
+DEPEND[man/man3/PKCS8_encrypt.3]=man3/PKCS8_encrypt.pod
+GENERATE[man/man3/PKCS8_encrypt.3]=man3/PKCS8_encrypt.pod
+DEPEND[html/man3/PKCS8_pkey_add1_attr.html]=man3/PKCS8_pkey_add1_attr.pod
+GENERATE[html/man3/PKCS8_pkey_add1_attr.html]=man3/PKCS8_pkey_add1_attr.pod
+DEPEND[man/man3/PKCS8_pkey_add1_attr.3]=man3/PKCS8_pkey_add1_attr.pod
+GENERATE[man/man3/PKCS8_pkey_add1_attr.3]=man3/PKCS8_pkey_add1_attr.pod
+DEPEND[html/man3/RAND_add.html]=man3/RAND_add.pod
+GENERATE[html/man3/RAND_add.html]=man3/RAND_add.pod
+DEPEND[man/man3/RAND_add.3]=man3/RAND_add.pod
+GENERATE[man/man3/RAND_add.3]=man3/RAND_add.pod
+DEPEND[html/man3/RAND_bytes.html]=man3/RAND_bytes.pod
+GENERATE[html/man3/RAND_bytes.html]=man3/RAND_bytes.pod
+DEPEND[man/man3/RAND_bytes.3]=man3/RAND_bytes.pod
+GENERATE[man/man3/RAND_bytes.3]=man3/RAND_bytes.pod
+DEPEND[html/man3/RAND_cleanup.html]=man3/RAND_cleanup.pod
+GENERATE[html/man3/RAND_cleanup.html]=man3/RAND_cleanup.pod
+DEPEND[man/man3/RAND_cleanup.3]=man3/RAND_cleanup.pod
+GENERATE[man/man3/RAND_cleanup.3]=man3/RAND_cleanup.pod
+DEPEND[html/man3/RAND_egd.html]=man3/RAND_egd.pod
+GENERATE[html/man3/RAND_egd.html]=man3/RAND_egd.pod
+DEPEND[man/man3/RAND_egd.3]=man3/RAND_egd.pod
+GENERATE[man/man3/RAND_egd.3]=man3/RAND_egd.pod
+DEPEND[html/man3/RAND_get0_primary.html]=man3/RAND_get0_primary.pod
+GENERATE[html/man3/RAND_get0_primary.html]=man3/RAND_get0_primary.pod
+DEPEND[man/man3/RAND_get0_primary.3]=man3/RAND_get0_primary.pod
+GENERATE[man/man3/RAND_get0_primary.3]=man3/RAND_get0_primary.pod
+DEPEND[html/man3/RAND_load_file.html]=man3/RAND_load_file.pod
+GENERATE[html/man3/RAND_load_file.html]=man3/RAND_load_file.pod
+DEPEND[man/man3/RAND_load_file.3]=man3/RAND_load_file.pod
+GENERATE[man/man3/RAND_load_file.3]=man3/RAND_load_file.pod
+DEPEND[html/man3/RAND_set_DRBG_type.html]=man3/RAND_set_DRBG_type.pod
+GENERATE[html/man3/RAND_set_DRBG_type.html]=man3/RAND_set_DRBG_type.pod
+DEPEND[man/man3/RAND_set_DRBG_type.3]=man3/RAND_set_DRBG_type.pod
+GENERATE[man/man3/RAND_set_DRBG_type.3]=man3/RAND_set_DRBG_type.pod
+DEPEND[html/man3/RAND_set_rand_method.html]=man3/RAND_set_rand_method.pod
+GENERATE[html/man3/RAND_set_rand_method.html]=man3/RAND_set_rand_method.pod
+DEPEND[man/man3/RAND_set_rand_method.3]=man3/RAND_set_rand_method.pod
+GENERATE[man/man3/RAND_set_rand_method.3]=man3/RAND_set_rand_method.pod
+DEPEND[html/man3/RC4_set_key.html]=man3/RC4_set_key.pod
+GENERATE[html/man3/RC4_set_key.html]=man3/RC4_set_key.pod
+DEPEND[man/man3/RC4_set_key.3]=man3/RC4_set_key.pod
+GENERATE[man/man3/RC4_set_key.3]=man3/RC4_set_key.pod
+DEPEND[html/man3/RIPEMD160_Init.html]=man3/RIPEMD160_Init.pod
+GENERATE[html/man3/RIPEMD160_Init.html]=man3/RIPEMD160_Init.pod
+DEPEND[man/man3/RIPEMD160_Init.3]=man3/RIPEMD160_Init.pod
+GENERATE[man/man3/RIPEMD160_Init.3]=man3/RIPEMD160_Init.pod
+DEPEND[html/man3/RSA_blinding_on.html]=man3/RSA_blinding_on.pod
+GENERATE[html/man3/RSA_blinding_on.html]=man3/RSA_blinding_on.pod
+DEPEND[man/man3/RSA_blinding_on.3]=man3/RSA_blinding_on.pod
+GENERATE[man/man3/RSA_blinding_on.3]=man3/RSA_blinding_on.pod
+DEPEND[html/man3/RSA_check_key.html]=man3/RSA_check_key.pod
+GENERATE[html/man3/RSA_check_key.html]=man3/RSA_check_key.pod
+DEPEND[man/man3/RSA_check_key.3]=man3/RSA_check_key.pod
+GENERATE[man/man3/RSA_check_key.3]=man3/RSA_check_key.pod
+DEPEND[html/man3/RSA_generate_key.html]=man3/RSA_generate_key.pod
+GENERATE[html/man3/RSA_generate_key.html]=man3/RSA_generate_key.pod
+DEPEND[man/man3/RSA_generate_key.3]=man3/RSA_generate_key.pod
+GENERATE[man/man3/RSA_generate_key.3]=man3/RSA_generate_key.pod
+DEPEND[html/man3/RSA_get0_key.html]=man3/RSA_get0_key.pod
+GENERATE[html/man3/RSA_get0_key.html]=man3/RSA_get0_key.pod
+DEPEND[man/man3/RSA_get0_key.3]=man3/RSA_get0_key.pod
+GENERATE[man/man3/RSA_get0_key.3]=man3/RSA_get0_key.pod
+DEPEND[html/man3/RSA_meth_new.html]=man3/RSA_meth_new.pod
+GENERATE[html/man3/RSA_meth_new.html]=man3/RSA_meth_new.pod
+DEPEND[man/man3/RSA_meth_new.3]=man3/RSA_meth_new.pod
+GENERATE[man/man3/RSA_meth_new.3]=man3/RSA_meth_new.pod
+DEPEND[html/man3/RSA_new.html]=man3/RSA_new.pod
+GENERATE[html/man3/RSA_new.html]=man3/RSA_new.pod
+DEPEND[man/man3/RSA_new.3]=man3/RSA_new.pod
+GENERATE[man/man3/RSA_new.3]=man3/RSA_new.pod
+DEPEND[html/man3/RSA_padding_add_PKCS1_type_1.html]=man3/RSA_padding_add_PKCS1_type_1.pod
+GENERATE[html/man3/RSA_padding_add_PKCS1_type_1.html]=man3/RSA_padding_add_PKCS1_type_1.pod
+DEPEND[man/man3/RSA_padding_add_PKCS1_type_1.3]=man3/RSA_padding_add_PKCS1_type_1.pod
+GENERATE[man/man3/RSA_padding_add_PKCS1_type_1.3]=man3/RSA_padding_add_PKCS1_type_1.pod
+DEPEND[html/man3/RSA_print.html]=man3/RSA_print.pod
+GENERATE[html/man3/RSA_print.html]=man3/RSA_print.pod
+DEPEND[man/man3/RSA_print.3]=man3/RSA_print.pod
+GENERATE[man/man3/RSA_print.3]=man3/RSA_print.pod
+DEPEND[html/man3/RSA_private_encrypt.html]=man3/RSA_private_encrypt.pod
+GENERATE[html/man3/RSA_private_encrypt.html]=man3/RSA_private_encrypt.pod
+DEPEND[man/man3/RSA_private_encrypt.3]=man3/RSA_private_encrypt.pod
+GENERATE[man/man3/RSA_private_encrypt.3]=man3/RSA_private_encrypt.pod
+DEPEND[html/man3/RSA_public_encrypt.html]=man3/RSA_public_encrypt.pod
+GENERATE[html/man3/RSA_public_encrypt.html]=man3/RSA_public_encrypt.pod
+DEPEND[man/man3/RSA_public_encrypt.3]=man3/RSA_public_encrypt.pod
+GENERATE[man/man3/RSA_public_encrypt.3]=man3/RSA_public_encrypt.pod
+DEPEND[html/man3/RSA_set_method.html]=man3/RSA_set_method.pod
+GENERATE[html/man3/RSA_set_method.html]=man3/RSA_set_method.pod
+DEPEND[man/man3/RSA_set_method.3]=man3/RSA_set_method.pod
+GENERATE[man/man3/RSA_set_method.3]=man3/RSA_set_method.pod
+DEPEND[html/man3/RSA_sign.html]=man3/RSA_sign.pod
+GENERATE[html/man3/RSA_sign.html]=man3/RSA_sign.pod
+DEPEND[man/man3/RSA_sign.3]=man3/RSA_sign.pod
+GENERATE[man/man3/RSA_sign.3]=man3/RSA_sign.pod
+DEPEND[html/man3/RSA_sign_ASN1_OCTET_STRING.html]=man3/RSA_sign_ASN1_OCTET_STRING.pod
+GENERATE[html/man3/RSA_sign_ASN1_OCTET_STRING.html]=man3/RSA_sign_ASN1_OCTET_STRING.pod
+DEPEND[man/man3/RSA_sign_ASN1_OCTET_STRING.3]=man3/RSA_sign_ASN1_OCTET_STRING.pod
+GENERATE[man/man3/RSA_sign_ASN1_OCTET_STRING.3]=man3/RSA_sign_ASN1_OCTET_STRING.pod
+DEPEND[html/man3/RSA_size.html]=man3/RSA_size.pod
+GENERATE[html/man3/RSA_size.html]=man3/RSA_size.pod
+DEPEND[man/man3/RSA_size.3]=man3/RSA_size.pod
+GENERATE[man/man3/RSA_size.3]=man3/RSA_size.pod
+DEPEND[html/man3/SCT_new.html]=man3/SCT_new.pod
+GENERATE[html/man3/SCT_new.html]=man3/SCT_new.pod
+DEPEND[man/man3/SCT_new.3]=man3/SCT_new.pod
+GENERATE[man/man3/SCT_new.3]=man3/SCT_new.pod
+DEPEND[html/man3/SCT_print.html]=man3/SCT_print.pod
+GENERATE[html/man3/SCT_print.html]=man3/SCT_print.pod
+DEPEND[man/man3/SCT_print.3]=man3/SCT_print.pod
+GENERATE[man/man3/SCT_print.3]=man3/SCT_print.pod
+DEPEND[html/man3/SCT_validate.html]=man3/SCT_validate.pod
+GENERATE[html/man3/SCT_validate.html]=man3/SCT_validate.pod
+DEPEND[man/man3/SCT_validate.3]=man3/SCT_validate.pod
+GENERATE[man/man3/SCT_validate.3]=man3/SCT_validate.pod
+DEPEND[html/man3/SHA256_Init.html]=man3/SHA256_Init.pod
+GENERATE[html/man3/SHA256_Init.html]=man3/SHA256_Init.pod
+DEPEND[man/man3/SHA256_Init.3]=man3/SHA256_Init.pod
+GENERATE[man/man3/SHA256_Init.3]=man3/SHA256_Init.pod
+DEPEND[html/man3/SMIME_read_ASN1.html]=man3/SMIME_read_ASN1.pod
+GENERATE[html/man3/SMIME_read_ASN1.html]=man3/SMIME_read_ASN1.pod
+DEPEND[man/man3/SMIME_read_ASN1.3]=man3/SMIME_read_ASN1.pod
+GENERATE[man/man3/SMIME_read_ASN1.3]=man3/SMIME_read_ASN1.pod
+DEPEND[html/man3/SMIME_read_CMS.html]=man3/SMIME_read_CMS.pod
+GENERATE[html/man3/SMIME_read_CMS.html]=man3/SMIME_read_CMS.pod
+DEPEND[man/man3/SMIME_read_CMS.3]=man3/SMIME_read_CMS.pod
+GENERATE[man/man3/SMIME_read_CMS.3]=man3/SMIME_read_CMS.pod
+DEPEND[html/man3/SMIME_read_PKCS7.html]=man3/SMIME_read_PKCS7.pod
+GENERATE[html/man3/SMIME_read_PKCS7.html]=man3/SMIME_read_PKCS7.pod
+DEPEND[man/man3/SMIME_read_PKCS7.3]=man3/SMIME_read_PKCS7.pod
+GENERATE[man/man3/SMIME_read_PKCS7.3]=man3/SMIME_read_PKCS7.pod
+DEPEND[html/man3/SMIME_write_ASN1.html]=man3/SMIME_write_ASN1.pod
+GENERATE[html/man3/SMIME_write_ASN1.html]=man3/SMIME_write_ASN1.pod
+DEPEND[man/man3/SMIME_write_ASN1.3]=man3/SMIME_write_ASN1.pod
+GENERATE[man/man3/SMIME_write_ASN1.3]=man3/SMIME_write_ASN1.pod
+DEPEND[html/man3/SMIME_write_CMS.html]=man3/SMIME_write_CMS.pod
+GENERATE[html/man3/SMIME_write_CMS.html]=man3/SMIME_write_CMS.pod
+DEPEND[man/man3/SMIME_write_CMS.3]=man3/SMIME_write_CMS.pod
+GENERATE[man/man3/SMIME_write_CMS.3]=man3/SMIME_write_CMS.pod
+DEPEND[html/man3/SMIME_write_PKCS7.html]=man3/SMIME_write_PKCS7.pod
+GENERATE[html/man3/SMIME_write_PKCS7.html]=man3/SMIME_write_PKCS7.pod
+DEPEND[man/man3/SMIME_write_PKCS7.3]=man3/SMIME_write_PKCS7.pod
+GENERATE[man/man3/SMIME_write_PKCS7.3]=man3/SMIME_write_PKCS7.pod
+DEPEND[html/man3/SRP_Calc_B.html]=man3/SRP_Calc_B.pod
+GENERATE[html/man3/SRP_Calc_B.html]=man3/SRP_Calc_B.pod
+DEPEND[man/man3/SRP_Calc_B.3]=man3/SRP_Calc_B.pod
+GENERATE[man/man3/SRP_Calc_B.3]=man3/SRP_Calc_B.pod
+DEPEND[html/man3/SRP_VBASE_new.html]=man3/SRP_VBASE_new.pod
+GENERATE[html/man3/SRP_VBASE_new.html]=man3/SRP_VBASE_new.pod
+DEPEND[man/man3/SRP_VBASE_new.3]=man3/SRP_VBASE_new.pod
+GENERATE[man/man3/SRP_VBASE_new.3]=man3/SRP_VBASE_new.pod
+DEPEND[html/man3/SRP_create_verifier.html]=man3/SRP_create_verifier.pod
+GENERATE[html/man3/SRP_create_verifier.html]=man3/SRP_create_verifier.pod
+DEPEND[man/man3/SRP_create_verifier.3]=man3/SRP_create_verifier.pod
+GENERATE[man/man3/SRP_create_verifier.3]=man3/SRP_create_verifier.pod
+DEPEND[html/man3/SRP_user_pwd_new.html]=man3/SRP_user_pwd_new.pod
+GENERATE[html/man3/SRP_user_pwd_new.html]=man3/SRP_user_pwd_new.pod
+DEPEND[man/man3/SRP_user_pwd_new.3]=man3/SRP_user_pwd_new.pod
+GENERATE[man/man3/SRP_user_pwd_new.3]=man3/SRP_user_pwd_new.pod
+DEPEND[html/man3/SSL_CIPHER_get_name.html]=man3/SSL_CIPHER_get_name.pod
+GENERATE[html/man3/SSL_CIPHER_get_name.html]=man3/SSL_CIPHER_get_name.pod
+DEPEND[man/man3/SSL_CIPHER_get_name.3]=man3/SSL_CIPHER_get_name.pod
+GENERATE[man/man3/SSL_CIPHER_get_name.3]=man3/SSL_CIPHER_get_name.pod
+DEPEND[html/man3/SSL_COMP_add_compression_method.html]=man3/SSL_COMP_add_compression_method.pod
+GENERATE[html/man3/SSL_COMP_add_compression_method.html]=man3/SSL_COMP_add_compression_method.pod
+DEPEND[man/man3/SSL_COMP_add_compression_method.3]=man3/SSL_COMP_add_compression_method.pod
+GENERATE[man/man3/SSL_COMP_add_compression_method.3]=man3/SSL_COMP_add_compression_method.pod
+DEPEND[html/man3/SSL_CONF_CTX_new.html]=man3/SSL_CONF_CTX_new.pod
+GENERATE[html/man3/SSL_CONF_CTX_new.html]=man3/SSL_CONF_CTX_new.pod
+DEPEND[man/man3/SSL_CONF_CTX_new.3]=man3/SSL_CONF_CTX_new.pod
+GENERATE[man/man3/SSL_CONF_CTX_new.3]=man3/SSL_CONF_CTX_new.pod
+DEPEND[html/man3/SSL_CONF_CTX_set1_prefix.html]=man3/SSL_CONF_CTX_set1_prefix.pod
+GENERATE[html/man3/SSL_CONF_CTX_set1_prefix.html]=man3/SSL_CONF_CTX_set1_prefix.pod
+DEPEND[man/man3/SSL_CONF_CTX_set1_prefix.3]=man3/SSL_CONF_CTX_set1_prefix.pod
+GENERATE[man/man3/SSL_CONF_CTX_set1_prefix.3]=man3/SSL_CONF_CTX_set1_prefix.pod
+DEPEND[html/man3/SSL_CONF_CTX_set_flags.html]=man3/SSL_CONF_CTX_set_flags.pod
+GENERATE[html/man3/SSL_CONF_CTX_set_flags.html]=man3/SSL_CONF_CTX_set_flags.pod
+DEPEND[man/man3/SSL_CONF_CTX_set_flags.3]=man3/SSL_CONF_CTX_set_flags.pod
+GENERATE[man/man3/SSL_CONF_CTX_set_flags.3]=man3/SSL_CONF_CTX_set_flags.pod
+DEPEND[html/man3/SSL_CONF_CTX_set_ssl_ctx.html]=man3/SSL_CONF_CTX_set_ssl_ctx.pod
+GENERATE[html/man3/SSL_CONF_CTX_set_ssl_ctx.html]=man3/SSL_CONF_CTX_set_ssl_ctx.pod
+DEPEND[man/man3/SSL_CONF_CTX_set_ssl_ctx.3]=man3/SSL_CONF_CTX_set_ssl_ctx.pod
+GENERATE[man/man3/SSL_CONF_CTX_set_ssl_ctx.3]=man3/SSL_CONF_CTX_set_ssl_ctx.pod
+DEPEND[html/man3/SSL_CONF_cmd.html]=man3/SSL_CONF_cmd.pod
+GENERATE[html/man3/SSL_CONF_cmd.html]=man3/SSL_CONF_cmd.pod
+DEPEND[man/man3/SSL_CONF_cmd.3]=man3/SSL_CONF_cmd.pod
+GENERATE[man/man3/SSL_CONF_cmd.3]=man3/SSL_CONF_cmd.pod
+DEPEND[html/man3/SSL_CONF_cmd_argv.html]=man3/SSL_CONF_cmd_argv.pod
+GENERATE[html/man3/SSL_CONF_cmd_argv.html]=man3/SSL_CONF_cmd_argv.pod
+DEPEND[man/man3/SSL_CONF_cmd_argv.3]=man3/SSL_CONF_cmd_argv.pod
+GENERATE[man/man3/SSL_CONF_cmd_argv.3]=man3/SSL_CONF_cmd_argv.pod
+DEPEND[html/man3/SSL_CTX_add1_chain_cert.html]=man3/SSL_CTX_add1_chain_cert.pod
+GENERATE[html/man3/SSL_CTX_add1_chain_cert.html]=man3/SSL_CTX_add1_chain_cert.pod
+DEPEND[man/man3/SSL_CTX_add1_chain_cert.3]=man3/SSL_CTX_add1_chain_cert.pod
+GENERATE[man/man3/SSL_CTX_add1_chain_cert.3]=man3/SSL_CTX_add1_chain_cert.pod
+DEPEND[html/man3/SSL_CTX_add_extra_chain_cert.html]=man3/SSL_CTX_add_extra_chain_cert.pod
+GENERATE[html/man3/SSL_CTX_add_extra_chain_cert.html]=man3/SSL_CTX_add_extra_chain_cert.pod
+DEPEND[man/man3/SSL_CTX_add_extra_chain_cert.3]=man3/SSL_CTX_add_extra_chain_cert.pod
+GENERATE[man/man3/SSL_CTX_add_extra_chain_cert.3]=man3/SSL_CTX_add_extra_chain_cert.pod
+DEPEND[html/man3/SSL_CTX_add_session.html]=man3/SSL_CTX_add_session.pod
+GENERATE[html/man3/SSL_CTX_add_session.html]=man3/SSL_CTX_add_session.pod
+DEPEND[man/man3/SSL_CTX_add_session.3]=man3/SSL_CTX_add_session.pod
+GENERATE[man/man3/SSL_CTX_add_session.3]=man3/SSL_CTX_add_session.pod
+DEPEND[html/man3/SSL_CTX_config.html]=man3/SSL_CTX_config.pod
+GENERATE[html/man3/SSL_CTX_config.html]=man3/SSL_CTX_config.pod
+DEPEND[man/man3/SSL_CTX_config.3]=man3/SSL_CTX_config.pod
+GENERATE[man/man3/SSL_CTX_config.3]=man3/SSL_CTX_config.pod
+DEPEND[html/man3/SSL_CTX_ctrl.html]=man3/SSL_CTX_ctrl.pod
+GENERATE[html/man3/SSL_CTX_ctrl.html]=man3/SSL_CTX_ctrl.pod
+DEPEND[man/man3/SSL_CTX_ctrl.3]=man3/SSL_CTX_ctrl.pod
+GENERATE[man/man3/SSL_CTX_ctrl.3]=man3/SSL_CTX_ctrl.pod
+DEPEND[html/man3/SSL_CTX_dane_enable.html]=man3/SSL_CTX_dane_enable.pod
+GENERATE[html/man3/SSL_CTX_dane_enable.html]=man3/SSL_CTX_dane_enable.pod
+DEPEND[man/man3/SSL_CTX_dane_enable.3]=man3/SSL_CTX_dane_enable.pod
+GENERATE[man/man3/SSL_CTX_dane_enable.3]=man3/SSL_CTX_dane_enable.pod
+DEPEND[html/man3/SSL_CTX_flush_sessions.html]=man3/SSL_CTX_flush_sessions.pod
+GENERATE[html/man3/SSL_CTX_flush_sessions.html]=man3/SSL_CTX_flush_sessions.pod
+DEPEND[man/man3/SSL_CTX_flush_sessions.3]=man3/SSL_CTX_flush_sessions.pod
+GENERATE[man/man3/SSL_CTX_flush_sessions.3]=man3/SSL_CTX_flush_sessions.pod
+DEPEND[html/man3/SSL_CTX_free.html]=man3/SSL_CTX_free.pod
+GENERATE[html/man3/SSL_CTX_free.html]=man3/SSL_CTX_free.pod
+DEPEND[man/man3/SSL_CTX_free.3]=man3/SSL_CTX_free.pod
+GENERATE[man/man3/SSL_CTX_free.3]=man3/SSL_CTX_free.pod
+DEPEND[html/man3/SSL_CTX_get0_param.html]=man3/SSL_CTX_get0_param.pod
+GENERATE[html/man3/SSL_CTX_get0_param.html]=man3/SSL_CTX_get0_param.pod
+DEPEND[man/man3/SSL_CTX_get0_param.3]=man3/SSL_CTX_get0_param.pod
+GENERATE[man/man3/SSL_CTX_get0_param.3]=man3/SSL_CTX_get0_param.pod
+DEPEND[html/man3/SSL_CTX_get_verify_mode.html]=man3/SSL_CTX_get_verify_mode.pod
+GENERATE[html/man3/SSL_CTX_get_verify_mode.html]=man3/SSL_CTX_get_verify_mode.pod
+DEPEND[man/man3/SSL_CTX_get_verify_mode.3]=man3/SSL_CTX_get_verify_mode.pod
+GENERATE[man/man3/SSL_CTX_get_verify_mode.3]=man3/SSL_CTX_get_verify_mode.pod
+DEPEND[html/man3/SSL_CTX_has_client_custom_ext.html]=man3/SSL_CTX_has_client_custom_ext.pod
+GENERATE[html/man3/SSL_CTX_has_client_custom_ext.html]=man3/SSL_CTX_has_client_custom_ext.pod
+DEPEND[man/man3/SSL_CTX_has_client_custom_ext.3]=man3/SSL_CTX_has_client_custom_ext.pod
+GENERATE[man/man3/SSL_CTX_has_client_custom_ext.3]=man3/SSL_CTX_has_client_custom_ext.pod
+DEPEND[html/man3/SSL_CTX_load_verify_locations.html]=man3/SSL_CTX_load_verify_locations.pod
+GENERATE[html/man3/SSL_CTX_load_verify_locations.html]=man3/SSL_CTX_load_verify_locations.pod
+DEPEND[man/man3/SSL_CTX_load_verify_locations.3]=man3/SSL_CTX_load_verify_locations.pod
+GENERATE[man/man3/SSL_CTX_load_verify_locations.3]=man3/SSL_CTX_load_verify_locations.pod
+DEPEND[html/man3/SSL_CTX_new.html]=man3/SSL_CTX_new.pod
+GENERATE[html/man3/SSL_CTX_new.html]=man3/SSL_CTX_new.pod
+DEPEND[man/man3/SSL_CTX_new.3]=man3/SSL_CTX_new.pod
+GENERATE[man/man3/SSL_CTX_new.3]=man3/SSL_CTX_new.pod
+DEPEND[html/man3/SSL_CTX_sess_number.html]=man3/SSL_CTX_sess_number.pod
+GENERATE[html/man3/SSL_CTX_sess_number.html]=man3/SSL_CTX_sess_number.pod
+DEPEND[man/man3/SSL_CTX_sess_number.3]=man3/SSL_CTX_sess_number.pod
+GENERATE[man/man3/SSL_CTX_sess_number.3]=man3/SSL_CTX_sess_number.pod
+DEPEND[html/man3/SSL_CTX_sess_set_cache_size.html]=man3/SSL_CTX_sess_set_cache_size.pod
+GENERATE[html/man3/SSL_CTX_sess_set_cache_size.html]=man3/SSL_CTX_sess_set_cache_size.pod
+DEPEND[man/man3/SSL_CTX_sess_set_cache_size.3]=man3/SSL_CTX_sess_set_cache_size.pod
+GENERATE[man/man3/SSL_CTX_sess_set_cache_size.3]=man3/SSL_CTX_sess_set_cache_size.pod
+DEPEND[html/man3/SSL_CTX_sess_set_get_cb.html]=man3/SSL_CTX_sess_set_get_cb.pod
+GENERATE[html/man3/SSL_CTX_sess_set_get_cb.html]=man3/SSL_CTX_sess_set_get_cb.pod
+DEPEND[man/man3/SSL_CTX_sess_set_get_cb.3]=man3/SSL_CTX_sess_set_get_cb.pod
+GENERATE[man/man3/SSL_CTX_sess_set_get_cb.3]=man3/SSL_CTX_sess_set_get_cb.pod
+DEPEND[html/man3/SSL_CTX_sessions.html]=man3/SSL_CTX_sessions.pod
+GENERATE[html/man3/SSL_CTX_sessions.html]=man3/SSL_CTX_sessions.pod
+DEPEND[man/man3/SSL_CTX_sessions.3]=man3/SSL_CTX_sessions.pod
+GENERATE[man/man3/SSL_CTX_sessions.3]=man3/SSL_CTX_sessions.pod
+DEPEND[html/man3/SSL_CTX_set0_CA_list.html]=man3/SSL_CTX_set0_CA_list.pod
+GENERATE[html/man3/SSL_CTX_set0_CA_list.html]=man3/SSL_CTX_set0_CA_list.pod
+DEPEND[man/man3/SSL_CTX_set0_CA_list.3]=man3/SSL_CTX_set0_CA_list.pod
+GENERATE[man/man3/SSL_CTX_set0_CA_list.3]=man3/SSL_CTX_set0_CA_list.pod
+DEPEND[html/man3/SSL_CTX_set1_curves.html]=man3/SSL_CTX_set1_curves.pod
+GENERATE[html/man3/SSL_CTX_set1_curves.html]=man3/SSL_CTX_set1_curves.pod
+DEPEND[man/man3/SSL_CTX_set1_curves.3]=man3/SSL_CTX_set1_curves.pod
+GENERATE[man/man3/SSL_CTX_set1_curves.3]=man3/SSL_CTX_set1_curves.pod
+DEPEND[html/man3/SSL_CTX_set1_sigalgs.html]=man3/SSL_CTX_set1_sigalgs.pod
+GENERATE[html/man3/SSL_CTX_set1_sigalgs.html]=man3/SSL_CTX_set1_sigalgs.pod
+DEPEND[man/man3/SSL_CTX_set1_sigalgs.3]=man3/SSL_CTX_set1_sigalgs.pod
+GENERATE[man/man3/SSL_CTX_set1_sigalgs.3]=man3/SSL_CTX_set1_sigalgs.pod
+DEPEND[html/man3/SSL_CTX_set1_verify_cert_store.html]=man3/SSL_CTX_set1_verify_cert_store.pod
+GENERATE[html/man3/SSL_CTX_set1_verify_cert_store.html]=man3/SSL_CTX_set1_verify_cert_store.pod
+DEPEND[man/man3/SSL_CTX_set1_verify_cert_store.3]=man3/SSL_CTX_set1_verify_cert_store.pod
+GENERATE[man/man3/SSL_CTX_set1_verify_cert_store.3]=man3/SSL_CTX_set1_verify_cert_store.pod
+DEPEND[html/man3/SSL_CTX_set_alpn_select_cb.html]=man3/SSL_CTX_set_alpn_select_cb.pod
+GENERATE[html/man3/SSL_CTX_set_alpn_select_cb.html]=man3/SSL_CTX_set_alpn_select_cb.pod
+DEPEND[man/man3/SSL_CTX_set_alpn_select_cb.3]=man3/SSL_CTX_set_alpn_select_cb.pod
+GENERATE[man/man3/SSL_CTX_set_alpn_select_cb.3]=man3/SSL_CTX_set_alpn_select_cb.pod
+DEPEND[html/man3/SSL_CTX_set_cert_cb.html]=man3/SSL_CTX_set_cert_cb.pod
+GENERATE[html/man3/SSL_CTX_set_cert_cb.html]=man3/SSL_CTX_set_cert_cb.pod
+DEPEND[man/man3/SSL_CTX_set_cert_cb.3]=man3/SSL_CTX_set_cert_cb.pod
+GENERATE[man/man3/SSL_CTX_set_cert_cb.3]=man3/SSL_CTX_set_cert_cb.pod
+DEPEND[html/man3/SSL_CTX_set_cert_store.html]=man3/SSL_CTX_set_cert_store.pod
+GENERATE[html/man3/SSL_CTX_set_cert_store.html]=man3/SSL_CTX_set_cert_store.pod
+DEPEND[man/man3/SSL_CTX_set_cert_store.3]=man3/SSL_CTX_set_cert_store.pod
+GENERATE[man/man3/SSL_CTX_set_cert_store.3]=man3/SSL_CTX_set_cert_store.pod
+DEPEND[html/man3/SSL_CTX_set_cert_verify_callback.html]=man3/SSL_CTX_set_cert_verify_callback.pod
+GENERATE[html/man3/SSL_CTX_set_cert_verify_callback.html]=man3/SSL_CTX_set_cert_verify_callback.pod
+DEPEND[man/man3/SSL_CTX_set_cert_verify_callback.3]=man3/SSL_CTX_set_cert_verify_callback.pod
+GENERATE[man/man3/SSL_CTX_set_cert_verify_callback.3]=man3/SSL_CTX_set_cert_verify_callback.pod
+DEPEND[html/man3/SSL_CTX_set_cipher_list.html]=man3/SSL_CTX_set_cipher_list.pod
+GENERATE[html/man3/SSL_CTX_set_cipher_list.html]=man3/SSL_CTX_set_cipher_list.pod
+DEPEND[man/man3/SSL_CTX_set_cipher_list.3]=man3/SSL_CTX_set_cipher_list.pod
+GENERATE[man/man3/SSL_CTX_set_cipher_list.3]=man3/SSL_CTX_set_cipher_list.pod
+DEPEND[html/man3/SSL_CTX_set_client_cert_cb.html]=man3/SSL_CTX_set_client_cert_cb.pod
+GENERATE[html/man3/SSL_CTX_set_client_cert_cb.html]=man3/SSL_CTX_set_client_cert_cb.pod
+DEPEND[man/man3/SSL_CTX_set_client_cert_cb.3]=man3/SSL_CTX_set_client_cert_cb.pod
+GENERATE[man/man3/SSL_CTX_set_client_cert_cb.3]=man3/SSL_CTX_set_client_cert_cb.pod
+DEPEND[html/man3/SSL_CTX_set_client_hello_cb.html]=man3/SSL_CTX_set_client_hello_cb.pod
+GENERATE[html/man3/SSL_CTX_set_client_hello_cb.html]=man3/SSL_CTX_set_client_hello_cb.pod
+DEPEND[man/man3/SSL_CTX_set_client_hello_cb.3]=man3/SSL_CTX_set_client_hello_cb.pod
+GENERATE[man/man3/SSL_CTX_set_client_hello_cb.3]=man3/SSL_CTX_set_client_hello_cb.pod
+DEPEND[html/man3/SSL_CTX_set_ct_validation_callback.html]=man3/SSL_CTX_set_ct_validation_callback.pod
+GENERATE[html/man3/SSL_CTX_set_ct_validation_callback.html]=man3/SSL_CTX_set_ct_validation_callback.pod
+DEPEND[man/man3/SSL_CTX_set_ct_validation_callback.3]=man3/SSL_CTX_set_ct_validation_callback.pod
+GENERATE[man/man3/SSL_CTX_set_ct_validation_callback.3]=man3/SSL_CTX_set_ct_validation_callback.pod
+DEPEND[html/man3/SSL_CTX_set_ctlog_list_file.html]=man3/SSL_CTX_set_ctlog_list_file.pod
+GENERATE[html/man3/SSL_CTX_set_ctlog_list_file.html]=man3/SSL_CTX_set_ctlog_list_file.pod
+DEPEND[man/man3/SSL_CTX_set_ctlog_list_file.3]=man3/SSL_CTX_set_ctlog_list_file.pod
+GENERATE[man/man3/SSL_CTX_set_ctlog_list_file.3]=man3/SSL_CTX_set_ctlog_list_file.pod
+DEPEND[html/man3/SSL_CTX_set_default_passwd_cb.html]=man3/SSL_CTX_set_default_passwd_cb.pod
+GENERATE[html/man3/SSL_CTX_set_default_passwd_cb.html]=man3/SSL_CTX_set_default_passwd_cb.pod
+DEPEND[man/man3/SSL_CTX_set_default_passwd_cb.3]=man3/SSL_CTX_set_default_passwd_cb.pod
+GENERATE[man/man3/SSL_CTX_set_default_passwd_cb.3]=man3/SSL_CTX_set_default_passwd_cb.pod
+DEPEND[html/man3/SSL_CTX_set_generate_session_id.html]=man3/SSL_CTX_set_generate_session_id.pod
+GENERATE[html/man3/SSL_CTX_set_generate_session_id.html]=man3/SSL_CTX_set_generate_session_id.pod
+DEPEND[man/man3/SSL_CTX_set_generate_session_id.3]=man3/SSL_CTX_set_generate_session_id.pod
+GENERATE[man/man3/SSL_CTX_set_generate_session_id.3]=man3/SSL_CTX_set_generate_session_id.pod
+DEPEND[html/man3/SSL_CTX_set_info_callback.html]=man3/SSL_CTX_set_info_callback.pod
+GENERATE[html/man3/SSL_CTX_set_info_callback.html]=man3/SSL_CTX_set_info_callback.pod
+DEPEND[man/man3/SSL_CTX_set_info_callback.3]=man3/SSL_CTX_set_info_callback.pod
+GENERATE[man/man3/SSL_CTX_set_info_callback.3]=man3/SSL_CTX_set_info_callback.pod
+DEPEND[html/man3/SSL_CTX_set_keylog_callback.html]=man3/SSL_CTX_set_keylog_callback.pod
+GENERATE[html/man3/SSL_CTX_set_keylog_callback.html]=man3/SSL_CTX_set_keylog_callback.pod
+DEPEND[man/man3/SSL_CTX_set_keylog_callback.3]=man3/SSL_CTX_set_keylog_callback.pod
+GENERATE[man/man3/SSL_CTX_set_keylog_callback.3]=man3/SSL_CTX_set_keylog_callback.pod
+DEPEND[html/man3/SSL_CTX_set_max_cert_list.html]=man3/SSL_CTX_set_max_cert_list.pod
+GENERATE[html/man3/SSL_CTX_set_max_cert_list.html]=man3/SSL_CTX_set_max_cert_list.pod
+DEPEND[man/man3/SSL_CTX_set_max_cert_list.3]=man3/SSL_CTX_set_max_cert_list.pod
+GENERATE[man/man3/SSL_CTX_set_max_cert_list.3]=man3/SSL_CTX_set_max_cert_list.pod
+DEPEND[html/man3/SSL_CTX_set_min_proto_version.html]=man3/SSL_CTX_set_min_proto_version.pod
+GENERATE[html/man3/SSL_CTX_set_min_proto_version.html]=man3/SSL_CTX_set_min_proto_version.pod
+DEPEND[man/man3/SSL_CTX_set_min_proto_version.3]=man3/SSL_CTX_set_min_proto_version.pod
+GENERATE[man/man3/SSL_CTX_set_min_proto_version.3]=man3/SSL_CTX_set_min_proto_version.pod
+DEPEND[html/man3/SSL_CTX_set_mode.html]=man3/SSL_CTX_set_mode.pod
+GENERATE[html/man3/SSL_CTX_set_mode.html]=man3/SSL_CTX_set_mode.pod
+DEPEND[man/man3/SSL_CTX_set_mode.3]=man3/SSL_CTX_set_mode.pod
+GENERATE[man/man3/SSL_CTX_set_mode.3]=man3/SSL_CTX_set_mode.pod
+DEPEND[html/man3/SSL_CTX_set_msg_callback.html]=man3/SSL_CTX_set_msg_callback.pod
+GENERATE[html/man3/SSL_CTX_set_msg_callback.html]=man3/SSL_CTX_set_msg_callback.pod
+DEPEND[man/man3/SSL_CTX_set_msg_callback.3]=man3/SSL_CTX_set_msg_callback.pod
+GENERATE[man/man3/SSL_CTX_set_msg_callback.3]=man3/SSL_CTX_set_msg_callback.pod
+DEPEND[html/man3/SSL_CTX_set_num_tickets.html]=man3/SSL_CTX_set_num_tickets.pod
+GENERATE[html/man3/SSL_CTX_set_num_tickets.html]=man3/SSL_CTX_set_num_tickets.pod
+DEPEND[man/man3/SSL_CTX_set_num_tickets.3]=man3/SSL_CTX_set_num_tickets.pod
+GENERATE[man/man3/SSL_CTX_set_num_tickets.3]=man3/SSL_CTX_set_num_tickets.pod
+DEPEND[html/man3/SSL_CTX_set_options.html]=man3/SSL_CTX_set_options.pod
+GENERATE[html/man3/SSL_CTX_set_options.html]=man3/SSL_CTX_set_options.pod
+DEPEND[man/man3/SSL_CTX_set_options.3]=man3/SSL_CTX_set_options.pod
+GENERATE[man/man3/SSL_CTX_set_options.3]=man3/SSL_CTX_set_options.pod
+DEPEND[html/man3/SSL_CTX_set_psk_client_callback.html]=man3/SSL_CTX_set_psk_client_callback.pod
+GENERATE[html/man3/SSL_CTX_set_psk_client_callback.html]=man3/SSL_CTX_set_psk_client_callback.pod
+DEPEND[man/man3/SSL_CTX_set_psk_client_callback.3]=man3/SSL_CTX_set_psk_client_callback.pod
+GENERATE[man/man3/SSL_CTX_set_psk_client_callback.3]=man3/SSL_CTX_set_psk_client_callback.pod
+DEPEND[html/man3/SSL_CTX_set_quiet_shutdown.html]=man3/SSL_CTX_set_quiet_shutdown.pod
+GENERATE[html/man3/SSL_CTX_set_quiet_shutdown.html]=man3/SSL_CTX_set_quiet_shutdown.pod
+DEPEND[man/man3/SSL_CTX_set_quiet_shutdown.3]=man3/SSL_CTX_set_quiet_shutdown.pod
+GENERATE[man/man3/SSL_CTX_set_quiet_shutdown.3]=man3/SSL_CTX_set_quiet_shutdown.pod
+DEPEND[html/man3/SSL_CTX_set_read_ahead.html]=man3/SSL_CTX_set_read_ahead.pod
+GENERATE[html/man3/SSL_CTX_set_read_ahead.html]=man3/SSL_CTX_set_read_ahead.pod
+DEPEND[man/man3/SSL_CTX_set_read_ahead.3]=man3/SSL_CTX_set_read_ahead.pod
+GENERATE[man/man3/SSL_CTX_set_read_ahead.3]=man3/SSL_CTX_set_read_ahead.pod
+DEPEND[html/man3/SSL_CTX_set_record_padding_callback.html]=man3/SSL_CTX_set_record_padding_callback.pod
+GENERATE[html/man3/SSL_CTX_set_record_padding_callback.html]=man3/SSL_CTX_set_record_padding_callback.pod
+DEPEND[man/man3/SSL_CTX_set_record_padding_callback.3]=man3/SSL_CTX_set_record_padding_callback.pod
+GENERATE[man/man3/SSL_CTX_set_record_padding_callback.3]=man3/SSL_CTX_set_record_padding_callback.pod
+DEPEND[html/man3/SSL_CTX_set_security_level.html]=man3/SSL_CTX_set_security_level.pod
+GENERATE[html/man3/SSL_CTX_set_security_level.html]=man3/SSL_CTX_set_security_level.pod
+DEPEND[man/man3/SSL_CTX_set_security_level.3]=man3/SSL_CTX_set_security_level.pod
+GENERATE[man/man3/SSL_CTX_set_security_level.3]=man3/SSL_CTX_set_security_level.pod
+DEPEND[html/man3/SSL_CTX_set_session_cache_mode.html]=man3/SSL_CTX_set_session_cache_mode.pod
+GENERATE[html/man3/SSL_CTX_set_session_cache_mode.html]=man3/SSL_CTX_set_session_cache_mode.pod
+DEPEND[man/man3/SSL_CTX_set_session_cache_mode.3]=man3/SSL_CTX_set_session_cache_mode.pod
+GENERATE[man/man3/SSL_CTX_set_session_cache_mode.3]=man3/SSL_CTX_set_session_cache_mode.pod
+DEPEND[html/man3/SSL_CTX_set_session_id_context.html]=man3/SSL_CTX_set_session_id_context.pod
+GENERATE[html/man3/SSL_CTX_set_session_id_context.html]=man3/SSL_CTX_set_session_id_context.pod
+DEPEND[man/man3/SSL_CTX_set_session_id_context.3]=man3/SSL_CTX_set_session_id_context.pod
+GENERATE[man/man3/SSL_CTX_set_session_id_context.3]=man3/SSL_CTX_set_session_id_context.pod
+DEPEND[html/man3/SSL_CTX_set_session_ticket_cb.html]=man3/SSL_CTX_set_session_ticket_cb.pod
+GENERATE[html/man3/SSL_CTX_set_session_ticket_cb.html]=man3/SSL_CTX_set_session_ticket_cb.pod
+DEPEND[man/man3/SSL_CTX_set_session_ticket_cb.3]=man3/SSL_CTX_set_session_ticket_cb.pod
+GENERATE[man/man3/SSL_CTX_set_session_ticket_cb.3]=man3/SSL_CTX_set_session_ticket_cb.pod
+DEPEND[html/man3/SSL_CTX_set_split_send_fragment.html]=man3/SSL_CTX_set_split_send_fragment.pod
+GENERATE[html/man3/SSL_CTX_set_split_send_fragment.html]=man3/SSL_CTX_set_split_send_fragment.pod
+DEPEND[man/man3/SSL_CTX_set_split_send_fragment.3]=man3/SSL_CTX_set_split_send_fragment.pod
+GENERATE[man/man3/SSL_CTX_set_split_send_fragment.3]=man3/SSL_CTX_set_split_send_fragment.pod
+DEPEND[html/man3/SSL_CTX_set_srp_password.html]=man3/SSL_CTX_set_srp_password.pod
+GENERATE[html/man3/SSL_CTX_set_srp_password.html]=man3/SSL_CTX_set_srp_password.pod
+DEPEND[man/man3/SSL_CTX_set_srp_password.3]=man3/SSL_CTX_set_srp_password.pod
+GENERATE[man/man3/SSL_CTX_set_srp_password.3]=man3/SSL_CTX_set_srp_password.pod
+DEPEND[html/man3/SSL_CTX_set_ssl_version.html]=man3/SSL_CTX_set_ssl_version.pod
+GENERATE[html/man3/SSL_CTX_set_ssl_version.html]=man3/SSL_CTX_set_ssl_version.pod
+DEPEND[man/man3/SSL_CTX_set_ssl_version.3]=man3/SSL_CTX_set_ssl_version.pod
+GENERATE[man/man3/SSL_CTX_set_ssl_version.3]=man3/SSL_CTX_set_ssl_version.pod
+DEPEND[html/man3/SSL_CTX_set_stateless_cookie_generate_cb.html]=man3/SSL_CTX_set_stateless_cookie_generate_cb.pod
+GENERATE[html/man3/SSL_CTX_set_stateless_cookie_generate_cb.html]=man3/SSL_CTX_set_stateless_cookie_generate_cb.pod
+DEPEND[man/man3/SSL_CTX_set_stateless_cookie_generate_cb.3]=man3/SSL_CTX_set_stateless_cookie_generate_cb.pod
+GENERATE[man/man3/SSL_CTX_set_stateless_cookie_generate_cb.3]=man3/SSL_CTX_set_stateless_cookie_generate_cb.pod
+DEPEND[html/man3/SSL_CTX_set_timeout.html]=man3/SSL_CTX_set_timeout.pod
+GENERATE[html/man3/SSL_CTX_set_timeout.html]=man3/SSL_CTX_set_timeout.pod
+DEPEND[man/man3/SSL_CTX_set_timeout.3]=man3/SSL_CTX_set_timeout.pod
+GENERATE[man/man3/SSL_CTX_set_timeout.3]=man3/SSL_CTX_set_timeout.pod
+DEPEND[html/man3/SSL_CTX_set_tlsext_servername_callback.html]=man3/SSL_CTX_set_tlsext_servername_callback.pod
+GENERATE[html/man3/SSL_CTX_set_tlsext_servername_callback.html]=man3/SSL_CTX_set_tlsext_servername_callback.pod
+DEPEND[man/man3/SSL_CTX_set_tlsext_servername_callback.3]=man3/SSL_CTX_set_tlsext_servername_callback.pod
+GENERATE[man/man3/SSL_CTX_set_tlsext_servername_callback.3]=man3/SSL_CTX_set_tlsext_servername_callback.pod
+DEPEND[html/man3/SSL_CTX_set_tlsext_status_cb.html]=man3/SSL_CTX_set_tlsext_status_cb.pod
+GENERATE[html/man3/SSL_CTX_set_tlsext_status_cb.html]=man3/SSL_CTX_set_tlsext_status_cb.pod
+DEPEND[man/man3/SSL_CTX_set_tlsext_status_cb.3]=man3/SSL_CTX_set_tlsext_status_cb.pod
+GENERATE[man/man3/SSL_CTX_set_tlsext_status_cb.3]=man3/SSL_CTX_set_tlsext_status_cb.pod
+DEPEND[html/man3/SSL_CTX_set_tlsext_ticket_key_cb.html]=man3/SSL_CTX_set_tlsext_ticket_key_cb.pod
+GENERATE[html/man3/SSL_CTX_set_tlsext_ticket_key_cb.html]=man3/SSL_CTX_set_tlsext_ticket_key_cb.pod
+DEPEND[man/man3/SSL_CTX_set_tlsext_ticket_key_cb.3]=man3/SSL_CTX_set_tlsext_ticket_key_cb.pod
+GENERATE[man/man3/SSL_CTX_set_tlsext_ticket_key_cb.3]=man3/SSL_CTX_set_tlsext_ticket_key_cb.pod
+DEPEND[html/man3/SSL_CTX_set_tlsext_use_srtp.html]=man3/SSL_CTX_set_tlsext_use_srtp.pod
+GENERATE[html/man3/SSL_CTX_set_tlsext_use_srtp.html]=man3/SSL_CTX_set_tlsext_use_srtp.pod
+DEPEND[man/man3/SSL_CTX_set_tlsext_use_srtp.3]=man3/SSL_CTX_set_tlsext_use_srtp.pod
+GENERATE[man/man3/SSL_CTX_set_tlsext_use_srtp.3]=man3/SSL_CTX_set_tlsext_use_srtp.pod
+DEPEND[html/man3/SSL_CTX_set_tmp_dh_callback.html]=man3/SSL_CTX_set_tmp_dh_callback.pod
+GENERATE[html/man3/SSL_CTX_set_tmp_dh_callback.html]=man3/SSL_CTX_set_tmp_dh_callback.pod
+DEPEND[man/man3/SSL_CTX_set_tmp_dh_callback.3]=man3/SSL_CTX_set_tmp_dh_callback.pod
+GENERATE[man/man3/SSL_CTX_set_tmp_dh_callback.3]=man3/SSL_CTX_set_tmp_dh_callback.pod
+DEPEND[html/man3/SSL_CTX_set_tmp_ecdh.html]=man3/SSL_CTX_set_tmp_ecdh.pod
+GENERATE[html/man3/SSL_CTX_set_tmp_ecdh.html]=man3/SSL_CTX_set_tmp_ecdh.pod
+DEPEND[man/man3/SSL_CTX_set_tmp_ecdh.3]=man3/SSL_CTX_set_tmp_ecdh.pod
+GENERATE[man/man3/SSL_CTX_set_tmp_ecdh.3]=man3/SSL_CTX_set_tmp_ecdh.pod
+DEPEND[html/man3/SSL_CTX_set_verify.html]=man3/SSL_CTX_set_verify.pod
+GENERATE[html/man3/SSL_CTX_set_verify.html]=man3/SSL_CTX_set_verify.pod
+DEPEND[man/man3/SSL_CTX_set_verify.3]=man3/SSL_CTX_set_verify.pod
+GENERATE[man/man3/SSL_CTX_set_verify.3]=man3/SSL_CTX_set_verify.pod
+DEPEND[html/man3/SSL_CTX_use_certificate.html]=man3/SSL_CTX_use_certificate.pod
+GENERATE[html/man3/SSL_CTX_use_certificate.html]=man3/SSL_CTX_use_certificate.pod
+DEPEND[man/man3/SSL_CTX_use_certificate.3]=man3/SSL_CTX_use_certificate.pod
+GENERATE[man/man3/SSL_CTX_use_certificate.3]=man3/SSL_CTX_use_certificate.pod
+DEPEND[html/man3/SSL_CTX_use_psk_identity_hint.html]=man3/SSL_CTX_use_psk_identity_hint.pod
+GENERATE[html/man3/SSL_CTX_use_psk_identity_hint.html]=man3/SSL_CTX_use_psk_identity_hint.pod
+DEPEND[man/man3/SSL_CTX_use_psk_identity_hint.3]=man3/SSL_CTX_use_psk_identity_hint.pod
+GENERATE[man/man3/SSL_CTX_use_psk_identity_hint.3]=man3/SSL_CTX_use_psk_identity_hint.pod
+DEPEND[html/man3/SSL_CTX_use_serverinfo.html]=man3/SSL_CTX_use_serverinfo.pod
+GENERATE[html/man3/SSL_CTX_use_serverinfo.html]=man3/SSL_CTX_use_serverinfo.pod
+DEPEND[man/man3/SSL_CTX_use_serverinfo.3]=man3/SSL_CTX_use_serverinfo.pod
+GENERATE[man/man3/SSL_CTX_use_serverinfo.3]=man3/SSL_CTX_use_serverinfo.pod
+DEPEND[html/man3/SSL_SESSION_free.html]=man3/SSL_SESSION_free.pod
+GENERATE[html/man3/SSL_SESSION_free.html]=man3/SSL_SESSION_free.pod
+DEPEND[man/man3/SSL_SESSION_free.3]=man3/SSL_SESSION_free.pod
+GENERATE[man/man3/SSL_SESSION_free.3]=man3/SSL_SESSION_free.pod
+DEPEND[html/man3/SSL_SESSION_get0_cipher.html]=man3/SSL_SESSION_get0_cipher.pod
+GENERATE[html/man3/SSL_SESSION_get0_cipher.html]=man3/SSL_SESSION_get0_cipher.pod
+DEPEND[man/man3/SSL_SESSION_get0_cipher.3]=man3/SSL_SESSION_get0_cipher.pod
+GENERATE[man/man3/SSL_SESSION_get0_cipher.3]=man3/SSL_SESSION_get0_cipher.pod
+DEPEND[html/man3/SSL_SESSION_get0_hostname.html]=man3/SSL_SESSION_get0_hostname.pod
+GENERATE[html/man3/SSL_SESSION_get0_hostname.html]=man3/SSL_SESSION_get0_hostname.pod
+DEPEND[man/man3/SSL_SESSION_get0_hostname.3]=man3/SSL_SESSION_get0_hostname.pod
+GENERATE[man/man3/SSL_SESSION_get0_hostname.3]=man3/SSL_SESSION_get0_hostname.pod
+DEPEND[html/man3/SSL_SESSION_get0_id_context.html]=man3/SSL_SESSION_get0_id_context.pod
+GENERATE[html/man3/SSL_SESSION_get0_id_context.html]=man3/SSL_SESSION_get0_id_context.pod
+DEPEND[man/man3/SSL_SESSION_get0_id_context.3]=man3/SSL_SESSION_get0_id_context.pod
+GENERATE[man/man3/SSL_SESSION_get0_id_context.3]=man3/SSL_SESSION_get0_id_context.pod
+DEPEND[html/man3/SSL_SESSION_get0_peer.html]=man3/SSL_SESSION_get0_peer.pod
+GENERATE[html/man3/SSL_SESSION_get0_peer.html]=man3/SSL_SESSION_get0_peer.pod
+DEPEND[man/man3/SSL_SESSION_get0_peer.3]=man3/SSL_SESSION_get0_peer.pod
+GENERATE[man/man3/SSL_SESSION_get0_peer.3]=man3/SSL_SESSION_get0_peer.pod
+DEPEND[html/man3/SSL_SESSION_get_compress_id.html]=man3/SSL_SESSION_get_compress_id.pod
+GENERATE[html/man3/SSL_SESSION_get_compress_id.html]=man3/SSL_SESSION_get_compress_id.pod
+DEPEND[man/man3/SSL_SESSION_get_compress_id.3]=man3/SSL_SESSION_get_compress_id.pod
+GENERATE[man/man3/SSL_SESSION_get_compress_id.3]=man3/SSL_SESSION_get_compress_id.pod
+DEPEND[html/man3/SSL_SESSION_get_protocol_version.html]=man3/SSL_SESSION_get_protocol_version.pod
+GENERATE[html/man3/SSL_SESSION_get_protocol_version.html]=man3/SSL_SESSION_get_protocol_version.pod
+DEPEND[man/man3/SSL_SESSION_get_protocol_version.3]=man3/SSL_SESSION_get_protocol_version.pod
+GENERATE[man/man3/SSL_SESSION_get_protocol_version.3]=man3/SSL_SESSION_get_protocol_version.pod
+DEPEND[html/man3/SSL_SESSION_get_time.html]=man3/SSL_SESSION_get_time.pod
+GENERATE[html/man3/SSL_SESSION_get_time.html]=man3/SSL_SESSION_get_time.pod
+DEPEND[man/man3/SSL_SESSION_get_time.3]=man3/SSL_SESSION_get_time.pod
+GENERATE[man/man3/SSL_SESSION_get_time.3]=man3/SSL_SESSION_get_time.pod
+DEPEND[html/man3/SSL_SESSION_has_ticket.html]=man3/SSL_SESSION_has_ticket.pod
+GENERATE[html/man3/SSL_SESSION_has_ticket.html]=man3/SSL_SESSION_has_ticket.pod
+DEPEND[man/man3/SSL_SESSION_has_ticket.3]=man3/SSL_SESSION_has_ticket.pod
+GENERATE[man/man3/SSL_SESSION_has_ticket.3]=man3/SSL_SESSION_has_ticket.pod
+DEPEND[html/man3/SSL_SESSION_is_resumable.html]=man3/SSL_SESSION_is_resumable.pod
+GENERATE[html/man3/SSL_SESSION_is_resumable.html]=man3/SSL_SESSION_is_resumable.pod
+DEPEND[man/man3/SSL_SESSION_is_resumable.3]=man3/SSL_SESSION_is_resumable.pod
+GENERATE[man/man3/SSL_SESSION_is_resumable.3]=man3/SSL_SESSION_is_resumable.pod
+DEPEND[html/man3/SSL_SESSION_print.html]=man3/SSL_SESSION_print.pod
+GENERATE[html/man3/SSL_SESSION_print.html]=man3/SSL_SESSION_print.pod
+DEPEND[man/man3/SSL_SESSION_print.3]=man3/SSL_SESSION_print.pod
+GENERATE[man/man3/SSL_SESSION_print.3]=man3/SSL_SESSION_print.pod
+DEPEND[html/man3/SSL_SESSION_set1_id.html]=man3/SSL_SESSION_set1_id.pod
+GENERATE[html/man3/SSL_SESSION_set1_id.html]=man3/SSL_SESSION_set1_id.pod
+DEPEND[man/man3/SSL_SESSION_set1_id.3]=man3/SSL_SESSION_set1_id.pod
+GENERATE[man/man3/SSL_SESSION_set1_id.3]=man3/SSL_SESSION_set1_id.pod
+DEPEND[html/man3/SSL_accept.html]=man3/SSL_accept.pod
+GENERATE[html/man3/SSL_accept.html]=man3/SSL_accept.pod
+DEPEND[man/man3/SSL_accept.3]=man3/SSL_accept.pod
+GENERATE[man/man3/SSL_accept.3]=man3/SSL_accept.pod
+DEPEND[html/man3/SSL_alert_type_string.html]=man3/SSL_alert_type_string.pod
+GENERATE[html/man3/SSL_alert_type_string.html]=man3/SSL_alert_type_string.pod
+DEPEND[man/man3/SSL_alert_type_string.3]=man3/SSL_alert_type_string.pod
+GENERATE[man/man3/SSL_alert_type_string.3]=man3/SSL_alert_type_string.pod
+DEPEND[html/man3/SSL_alloc_buffers.html]=man3/SSL_alloc_buffers.pod
+GENERATE[html/man3/SSL_alloc_buffers.html]=man3/SSL_alloc_buffers.pod
+DEPEND[man/man3/SSL_alloc_buffers.3]=man3/SSL_alloc_buffers.pod
+GENERATE[man/man3/SSL_alloc_buffers.3]=man3/SSL_alloc_buffers.pod
+DEPEND[html/man3/SSL_check_chain.html]=man3/SSL_check_chain.pod
+GENERATE[html/man3/SSL_check_chain.html]=man3/SSL_check_chain.pod
+DEPEND[man/man3/SSL_check_chain.3]=man3/SSL_check_chain.pod
+GENERATE[man/man3/SSL_check_chain.3]=man3/SSL_check_chain.pod
+DEPEND[html/man3/SSL_clear.html]=man3/SSL_clear.pod
+GENERATE[html/man3/SSL_clear.html]=man3/SSL_clear.pod
+DEPEND[man/man3/SSL_clear.3]=man3/SSL_clear.pod
+GENERATE[man/man3/SSL_clear.3]=man3/SSL_clear.pod
+DEPEND[html/man3/SSL_connect.html]=man3/SSL_connect.pod
+GENERATE[html/man3/SSL_connect.html]=man3/SSL_connect.pod
+DEPEND[man/man3/SSL_connect.3]=man3/SSL_connect.pod
+GENERATE[man/man3/SSL_connect.3]=man3/SSL_connect.pod
+DEPEND[html/man3/SSL_do_handshake.html]=man3/SSL_do_handshake.pod
+GENERATE[html/man3/SSL_do_handshake.html]=man3/SSL_do_handshake.pod
+DEPEND[man/man3/SSL_do_handshake.3]=man3/SSL_do_handshake.pod
+GENERATE[man/man3/SSL_do_handshake.3]=man3/SSL_do_handshake.pod
+DEPEND[html/man3/SSL_export_keying_material.html]=man3/SSL_export_keying_material.pod
+GENERATE[html/man3/SSL_export_keying_material.html]=man3/SSL_export_keying_material.pod
+DEPEND[man/man3/SSL_export_keying_material.3]=man3/SSL_export_keying_material.pod
+GENERATE[man/man3/SSL_export_keying_material.3]=man3/SSL_export_keying_material.pod
+DEPEND[html/man3/SSL_extension_supported.html]=man3/SSL_extension_supported.pod
+GENERATE[html/man3/SSL_extension_supported.html]=man3/SSL_extension_supported.pod
+DEPEND[man/man3/SSL_extension_supported.3]=man3/SSL_extension_supported.pod
+GENERATE[man/man3/SSL_extension_supported.3]=man3/SSL_extension_supported.pod
+DEPEND[html/man3/SSL_free.html]=man3/SSL_free.pod
+GENERATE[html/man3/SSL_free.html]=man3/SSL_free.pod
+DEPEND[man/man3/SSL_free.3]=man3/SSL_free.pod
+GENERATE[man/man3/SSL_free.3]=man3/SSL_free.pod
+DEPEND[html/man3/SSL_get0_peer_scts.html]=man3/SSL_get0_peer_scts.pod
+GENERATE[html/man3/SSL_get0_peer_scts.html]=man3/SSL_get0_peer_scts.pod
+DEPEND[man/man3/SSL_get0_peer_scts.3]=man3/SSL_get0_peer_scts.pod
+GENERATE[man/man3/SSL_get0_peer_scts.3]=man3/SSL_get0_peer_scts.pod
+DEPEND[html/man3/SSL_get_SSL_CTX.html]=man3/SSL_get_SSL_CTX.pod
+GENERATE[html/man3/SSL_get_SSL_CTX.html]=man3/SSL_get_SSL_CTX.pod
+DEPEND[man/man3/SSL_get_SSL_CTX.3]=man3/SSL_get_SSL_CTX.pod
+GENERATE[man/man3/SSL_get_SSL_CTX.3]=man3/SSL_get_SSL_CTX.pod
+DEPEND[html/man3/SSL_get_all_async_fds.html]=man3/SSL_get_all_async_fds.pod
+GENERATE[html/man3/SSL_get_all_async_fds.html]=man3/SSL_get_all_async_fds.pod
+DEPEND[man/man3/SSL_get_all_async_fds.3]=man3/SSL_get_all_async_fds.pod
+GENERATE[man/man3/SSL_get_all_async_fds.3]=man3/SSL_get_all_async_fds.pod
+DEPEND[html/man3/SSL_get_certificate.html]=man3/SSL_get_certificate.pod
+GENERATE[html/man3/SSL_get_certificate.html]=man3/SSL_get_certificate.pod
+DEPEND[man/man3/SSL_get_certificate.3]=man3/SSL_get_certificate.pod
+GENERATE[man/man3/SSL_get_certificate.3]=man3/SSL_get_certificate.pod
+DEPEND[html/man3/SSL_get_ciphers.html]=man3/SSL_get_ciphers.pod
+GENERATE[html/man3/SSL_get_ciphers.html]=man3/SSL_get_ciphers.pod
+DEPEND[man/man3/SSL_get_ciphers.3]=man3/SSL_get_ciphers.pod
+GENERATE[man/man3/SSL_get_ciphers.3]=man3/SSL_get_ciphers.pod
+DEPEND[html/man3/SSL_get_client_random.html]=man3/SSL_get_client_random.pod
+GENERATE[html/man3/SSL_get_client_random.html]=man3/SSL_get_client_random.pod
+DEPEND[man/man3/SSL_get_client_random.3]=man3/SSL_get_client_random.pod
+GENERATE[man/man3/SSL_get_client_random.3]=man3/SSL_get_client_random.pod
+DEPEND[html/man3/SSL_get_current_cipher.html]=man3/SSL_get_current_cipher.pod
+GENERATE[html/man3/SSL_get_current_cipher.html]=man3/SSL_get_current_cipher.pod
+DEPEND[man/man3/SSL_get_current_cipher.3]=man3/SSL_get_current_cipher.pod
+GENERATE[man/man3/SSL_get_current_cipher.3]=man3/SSL_get_current_cipher.pod
+DEPEND[html/man3/SSL_get_default_timeout.html]=man3/SSL_get_default_timeout.pod
+GENERATE[html/man3/SSL_get_default_timeout.html]=man3/SSL_get_default_timeout.pod
+DEPEND[man/man3/SSL_get_default_timeout.3]=man3/SSL_get_default_timeout.pod
+GENERATE[man/man3/SSL_get_default_timeout.3]=man3/SSL_get_default_timeout.pod
+DEPEND[html/man3/SSL_get_error.html]=man3/SSL_get_error.pod
+GENERATE[html/man3/SSL_get_error.html]=man3/SSL_get_error.pod
+DEPEND[man/man3/SSL_get_error.3]=man3/SSL_get_error.pod
+GENERATE[man/man3/SSL_get_error.3]=man3/SSL_get_error.pod
+DEPEND[html/man3/SSL_get_extms_support.html]=man3/SSL_get_extms_support.pod
+GENERATE[html/man3/SSL_get_extms_support.html]=man3/SSL_get_extms_support.pod
+DEPEND[man/man3/SSL_get_extms_support.3]=man3/SSL_get_extms_support.pod
+GENERATE[man/man3/SSL_get_extms_support.3]=man3/SSL_get_extms_support.pod
+DEPEND[html/man3/SSL_get_fd.html]=man3/SSL_get_fd.pod
+GENERATE[html/man3/SSL_get_fd.html]=man3/SSL_get_fd.pod
+DEPEND[man/man3/SSL_get_fd.3]=man3/SSL_get_fd.pod
+GENERATE[man/man3/SSL_get_fd.3]=man3/SSL_get_fd.pod
+DEPEND[html/man3/SSL_get_peer_cert_chain.html]=man3/SSL_get_peer_cert_chain.pod
+GENERATE[html/man3/SSL_get_peer_cert_chain.html]=man3/SSL_get_peer_cert_chain.pod
+DEPEND[man/man3/SSL_get_peer_cert_chain.3]=man3/SSL_get_peer_cert_chain.pod
+GENERATE[man/man3/SSL_get_peer_cert_chain.3]=man3/SSL_get_peer_cert_chain.pod
+DEPEND[html/man3/SSL_get_peer_certificate.html]=man3/SSL_get_peer_certificate.pod
+GENERATE[html/man3/SSL_get_peer_certificate.html]=man3/SSL_get_peer_certificate.pod
+DEPEND[man/man3/SSL_get_peer_certificate.3]=man3/SSL_get_peer_certificate.pod
+GENERATE[man/man3/SSL_get_peer_certificate.3]=man3/SSL_get_peer_certificate.pod
+DEPEND[html/man3/SSL_get_peer_signature_nid.html]=man3/SSL_get_peer_signature_nid.pod
+GENERATE[html/man3/SSL_get_peer_signature_nid.html]=man3/SSL_get_peer_signature_nid.pod
+DEPEND[man/man3/SSL_get_peer_signature_nid.3]=man3/SSL_get_peer_signature_nid.pod
+GENERATE[man/man3/SSL_get_peer_signature_nid.3]=man3/SSL_get_peer_signature_nid.pod
+DEPEND[html/man3/SSL_get_peer_tmp_key.html]=man3/SSL_get_peer_tmp_key.pod
+GENERATE[html/man3/SSL_get_peer_tmp_key.html]=man3/SSL_get_peer_tmp_key.pod
+DEPEND[man/man3/SSL_get_peer_tmp_key.3]=man3/SSL_get_peer_tmp_key.pod
+GENERATE[man/man3/SSL_get_peer_tmp_key.3]=man3/SSL_get_peer_tmp_key.pod
+DEPEND[html/man3/SSL_get_psk_identity.html]=man3/SSL_get_psk_identity.pod
+GENERATE[html/man3/SSL_get_psk_identity.html]=man3/SSL_get_psk_identity.pod
+DEPEND[man/man3/SSL_get_psk_identity.3]=man3/SSL_get_psk_identity.pod
+GENERATE[man/man3/SSL_get_psk_identity.3]=man3/SSL_get_psk_identity.pod
+DEPEND[html/man3/SSL_get_rbio.html]=man3/SSL_get_rbio.pod
+GENERATE[html/man3/SSL_get_rbio.html]=man3/SSL_get_rbio.pod
+DEPEND[man/man3/SSL_get_rbio.3]=man3/SSL_get_rbio.pod
+GENERATE[man/man3/SSL_get_rbio.3]=man3/SSL_get_rbio.pod
+DEPEND[html/man3/SSL_get_session.html]=man3/SSL_get_session.pod
+GENERATE[html/man3/SSL_get_session.html]=man3/SSL_get_session.pod
+DEPEND[man/man3/SSL_get_session.3]=man3/SSL_get_session.pod
+GENERATE[man/man3/SSL_get_session.3]=man3/SSL_get_session.pod
+DEPEND[html/man3/SSL_get_shared_sigalgs.html]=man3/SSL_get_shared_sigalgs.pod
+GENERATE[html/man3/SSL_get_shared_sigalgs.html]=man3/SSL_get_shared_sigalgs.pod
+DEPEND[man/man3/SSL_get_shared_sigalgs.3]=man3/SSL_get_shared_sigalgs.pod
+GENERATE[man/man3/SSL_get_shared_sigalgs.3]=man3/SSL_get_shared_sigalgs.pod
+DEPEND[html/man3/SSL_get_verify_result.html]=man3/SSL_get_verify_result.pod
+GENERATE[html/man3/SSL_get_verify_result.html]=man3/SSL_get_verify_result.pod
+DEPEND[man/man3/SSL_get_verify_result.3]=man3/SSL_get_verify_result.pod
+GENERATE[man/man3/SSL_get_verify_result.3]=man3/SSL_get_verify_result.pod
+DEPEND[html/man3/SSL_get_version.html]=man3/SSL_get_version.pod
+GENERATE[html/man3/SSL_get_version.html]=man3/SSL_get_version.pod
+DEPEND[man/man3/SSL_get_version.3]=man3/SSL_get_version.pod
+GENERATE[man/man3/SSL_get_version.3]=man3/SSL_get_version.pod
+DEPEND[html/man3/SSL_group_to_name.html]=man3/SSL_group_to_name.pod
+GENERATE[html/man3/SSL_group_to_name.html]=man3/SSL_group_to_name.pod
+DEPEND[man/man3/SSL_group_to_name.3]=man3/SSL_group_to_name.pod
+GENERATE[man/man3/SSL_group_to_name.3]=man3/SSL_group_to_name.pod
+DEPEND[html/man3/SSL_in_init.html]=man3/SSL_in_init.pod
+GENERATE[html/man3/SSL_in_init.html]=man3/SSL_in_init.pod
+DEPEND[man/man3/SSL_in_init.3]=man3/SSL_in_init.pod
+GENERATE[man/man3/SSL_in_init.3]=man3/SSL_in_init.pod
+DEPEND[html/man3/SSL_key_update.html]=man3/SSL_key_update.pod
+GENERATE[html/man3/SSL_key_update.html]=man3/SSL_key_update.pod
+DEPEND[man/man3/SSL_key_update.3]=man3/SSL_key_update.pod
+GENERATE[man/man3/SSL_key_update.3]=man3/SSL_key_update.pod
+DEPEND[html/man3/SSL_library_init.html]=man3/SSL_library_init.pod
+GENERATE[html/man3/SSL_library_init.html]=man3/SSL_library_init.pod
+DEPEND[man/man3/SSL_library_init.3]=man3/SSL_library_init.pod
+GENERATE[man/man3/SSL_library_init.3]=man3/SSL_library_init.pod
+DEPEND[html/man3/SSL_load_client_CA_file.html]=man3/SSL_load_client_CA_file.pod
+GENERATE[html/man3/SSL_load_client_CA_file.html]=man3/SSL_load_client_CA_file.pod
+DEPEND[man/man3/SSL_load_client_CA_file.3]=man3/SSL_load_client_CA_file.pod
+GENERATE[man/man3/SSL_load_client_CA_file.3]=man3/SSL_load_client_CA_file.pod
+DEPEND[html/man3/SSL_new.html]=man3/SSL_new.pod
+GENERATE[html/man3/SSL_new.html]=man3/SSL_new.pod
+DEPEND[man/man3/SSL_new.3]=man3/SSL_new.pod
+GENERATE[man/man3/SSL_new.3]=man3/SSL_new.pod
+DEPEND[html/man3/SSL_pending.html]=man3/SSL_pending.pod
+GENERATE[html/man3/SSL_pending.html]=man3/SSL_pending.pod
+DEPEND[man/man3/SSL_pending.3]=man3/SSL_pending.pod
+GENERATE[man/man3/SSL_pending.3]=man3/SSL_pending.pod
+DEPEND[html/man3/SSL_read.html]=man3/SSL_read.pod
+GENERATE[html/man3/SSL_read.html]=man3/SSL_read.pod
+DEPEND[man/man3/SSL_read.3]=man3/SSL_read.pod
+GENERATE[man/man3/SSL_read.3]=man3/SSL_read.pod
+DEPEND[html/man3/SSL_read_early_data.html]=man3/SSL_read_early_data.pod
+GENERATE[html/man3/SSL_read_early_data.html]=man3/SSL_read_early_data.pod
+DEPEND[man/man3/SSL_read_early_data.3]=man3/SSL_read_early_data.pod
+GENERATE[man/man3/SSL_read_early_data.3]=man3/SSL_read_early_data.pod
+DEPEND[html/man3/SSL_rstate_string.html]=man3/SSL_rstate_string.pod
+GENERATE[html/man3/SSL_rstate_string.html]=man3/SSL_rstate_string.pod
+DEPEND[man/man3/SSL_rstate_string.3]=man3/SSL_rstate_string.pod
+GENERATE[man/man3/SSL_rstate_string.3]=man3/SSL_rstate_string.pod
+DEPEND[html/man3/SSL_session_reused.html]=man3/SSL_session_reused.pod
+GENERATE[html/man3/SSL_session_reused.html]=man3/SSL_session_reused.pod
+DEPEND[man/man3/SSL_session_reused.3]=man3/SSL_session_reused.pod
+GENERATE[man/man3/SSL_session_reused.3]=man3/SSL_session_reused.pod
+DEPEND[html/man3/SSL_set1_host.html]=man3/SSL_set1_host.pod
+GENERATE[html/man3/SSL_set1_host.html]=man3/SSL_set1_host.pod
+DEPEND[man/man3/SSL_set1_host.3]=man3/SSL_set1_host.pod
+GENERATE[man/man3/SSL_set1_host.3]=man3/SSL_set1_host.pod
+DEPEND[html/man3/SSL_set_async_callback.html]=man3/SSL_set_async_callback.pod
+GENERATE[html/man3/SSL_set_async_callback.html]=man3/SSL_set_async_callback.pod
+DEPEND[man/man3/SSL_set_async_callback.3]=man3/SSL_set_async_callback.pod
+GENERATE[man/man3/SSL_set_async_callback.3]=man3/SSL_set_async_callback.pod
+DEPEND[html/man3/SSL_set_bio.html]=man3/SSL_set_bio.pod
+GENERATE[html/man3/SSL_set_bio.html]=man3/SSL_set_bio.pod
+DEPEND[man/man3/SSL_set_bio.3]=man3/SSL_set_bio.pod
+GENERATE[man/man3/SSL_set_bio.3]=man3/SSL_set_bio.pod
+DEPEND[html/man3/SSL_set_connect_state.html]=man3/SSL_set_connect_state.pod
+GENERATE[html/man3/SSL_set_connect_state.html]=man3/SSL_set_connect_state.pod
+DEPEND[man/man3/SSL_set_connect_state.3]=man3/SSL_set_connect_state.pod
+GENERATE[man/man3/SSL_set_connect_state.3]=man3/SSL_set_connect_state.pod
+DEPEND[html/man3/SSL_set_fd.html]=man3/SSL_set_fd.pod
+GENERATE[html/man3/SSL_set_fd.html]=man3/SSL_set_fd.pod
+DEPEND[man/man3/SSL_set_fd.3]=man3/SSL_set_fd.pod
+GENERATE[man/man3/SSL_set_fd.3]=man3/SSL_set_fd.pod
+DEPEND[html/man3/SSL_set_retry_verify.html]=man3/SSL_set_retry_verify.pod
+GENERATE[html/man3/SSL_set_retry_verify.html]=man3/SSL_set_retry_verify.pod
+DEPEND[man/man3/SSL_set_retry_verify.3]=man3/SSL_set_retry_verify.pod
+GENERATE[man/man3/SSL_set_retry_verify.3]=man3/SSL_set_retry_verify.pod
+DEPEND[html/man3/SSL_set_session.html]=man3/SSL_set_session.pod
+GENERATE[html/man3/SSL_set_session.html]=man3/SSL_set_session.pod
+DEPEND[man/man3/SSL_set_session.3]=man3/SSL_set_session.pod
+GENERATE[man/man3/SSL_set_session.3]=man3/SSL_set_session.pod
+DEPEND[html/man3/SSL_set_shutdown.html]=man3/SSL_set_shutdown.pod
+GENERATE[html/man3/SSL_set_shutdown.html]=man3/SSL_set_shutdown.pod
+DEPEND[man/man3/SSL_set_shutdown.3]=man3/SSL_set_shutdown.pod
+GENERATE[man/man3/SSL_set_shutdown.3]=man3/SSL_set_shutdown.pod
+DEPEND[html/man3/SSL_set_verify_result.html]=man3/SSL_set_verify_result.pod
+GENERATE[html/man3/SSL_set_verify_result.html]=man3/SSL_set_verify_result.pod
+DEPEND[man/man3/SSL_set_verify_result.3]=man3/SSL_set_verify_result.pod
+GENERATE[man/man3/SSL_set_verify_result.3]=man3/SSL_set_verify_result.pod
+DEPEND[html/man3/SSL_shutdown.html]=man3/SSL_shutdown.pod
+GENERATE[html/man3/SSL_shutdown.html]=man3/SSL_shutdown.pod
+DEPEND[man/man3/SSL_shutdown.3]=man3/SSL_shutdown.pod
+GENERATE[man/man3/SSL_shutdown.3]=man3/SSL_shutdown.pod
+DEPEND[html/man3/SSL_state_string.html]=man3/SSL_state_string.pod
+GENERATE[html/man3/SSL_state_string.html]=man3/SSL_state_string.pod
+DEPEND[man/man3/SSL_state_string.3]=man3/SSL_state_string.pod
+GENERATE[man/man3/SSL_state_string.3]=man3/SSL_state_string.pod
+DEPEND[html/man3/SSL_want.html]=man3/SSL_want.pod
+GENERATE[html/man3/SSL_want.html]=man3/SSL_want.pod
+DEPEND[man/man3/SSL_want.3]=man3/SSL_want.pod
+GENERATE[man/man3/SSL_want.3]=man3/SSL_want.pod
+DEPEND[html/man3/SSL_write.html]=man3/SSL_write.pod
+GENERATE[html/man3/SSL_write.html]=man3/SSL_write.pod
+DEPEND[man/man3/SSL_write.3]=man3/SSL_write.pod
+GENERATE[man/man3/SSL_write.3]=man3/SSL_write.pod
+DEPEND[html/man3/TS_RESP_CTX_new.html]=man3/TS_RESP_CTX_new.pod
+GENERATE[html/man3/TS_RESP_CTX_new.html]=man3/TS_RESP_CTX_new.pod
+DEPEND[man/man3/TS_RESP_CTX_new.3]=man3/TS_RESP_CTX_new.pod
+GENERATE[man/man3/TS_RESP_CTX_new.3]=man3/TS_RESP_CTX_new.pod
+DEPEND[html/man3/TS_VERIFY_CTX_set_certs.html]=man3/TS_VERIFY_CTX_set_certs.pod
+GENERATE[html/man3/TS_VERIFY_CTX_set_certs.html]=man3/TS_VERIFY_CTX_set_certs.pod
+DEPEND[man/man3/TS_VERIFY_CTX_set_certs.3]=man3/TS_VERIFY_CTX_set_certs.pod
+GENERATE[man/man3/TS_VERIFY_CTX_set_certs.3]=man3/TS_VERIFY_CTX_set_certs.pod
+DEPEND[html/man3/UI_STRING.html]=man3/UI_STRING.pod
+GENERATE[html/man3/UI_STRING.html]=man3/UI_STRING.pod
+DEPEND[man/man3/UI_STRING.3]=man3/UI_STRING.pod
+GENERATE[man/man3/UI_STRING.3]=man3/UI_STRING.pod
+DEPEND[html/man3/UI_UTIL_read_pw.html]=man3/UI_UTIL_read_pw.pod
+GENERATE[html/man3/UI_UTIL_read_pw.html]=man3/UI_UTIL_read_pw.pod
+DEPEND[man/man3/UI_UTIL_read_pw.3]=man3/UI_UTIL_read_pw.pod
+GENERATE[man/man3/UI_UTIL_read_pw.3]=man3/UI_UTIL_read_pw.pod
+DEPEND[html/man3/UI_create_method.html]=man3/UI_create_method.pod
+GENERATE[html/man3/UI_create_method.html]=man3/UI_create_method.pod
+DEPEND[man/man3/UI_create_method.3]=man3/UI_create_method.pod
+GENERATE[man/man3/UI_create_method.3]=man3/UI_create_method.pod
+DEPEND[html/man3/UI_new.html]=man3/UI_new.pod
+GENERATE[html/man3/UI_new.html]=man3/UI_new.pod
+DEPEND[man/man3/UI_new.3]=man3/UI_new.pod
+GENERATE[man/man3/UI_new.3]=man3/UI_new.pod
+DEPEND[html/man3/X509V3_get_d2i.html]=man3/X509V3_get_d2i.pod
+GENERATE[html/man3/X509V3_get_d2i.html]=man3/X509V3_get_d2i.pod
+DEPEND[man/man3/X509V3_get_d2i.3]=man3/X509V3_get_d2i.pod
+GENERATE[man/man3/X509V3_get_d2i.3]=man3/X509V3_get_d2i.pod
+DEPEND[html/man3/X509V3_set_ctx.html]=man3/X509V3_set_ctx.pod
+GENERATE[html/man3/X509V3_set_ctx.html]=man3/X509V3_set_ctx.pod
+DEPEND[man/man3/X509V3_set_ctx.3]=man3/X509V3_set_ctx.pod
+GENERATE[man/man3/X509V3_set_ctx.3]=man3/X509V3_set_ctx.pod
+DEPEND[html/man3/X509_ALGOR_dup.html]=man3/X509_ALGOR_dup.pod
+GENERATE[html/man3/X509_ALGOR_dup.html]=man3/X509_ALGOR_dup.pod
+DEPEND[man/man3/X509_ALGOR_dup.3]=man3/X509_ALGOR_dup.pod
+GENERATE[man/man3/X509_ALGOR_dup.3]=man3/X509_ALGOR_dup.pod
+DEPEND[html/man3/X509_ATTRIBUTE.html]=man3/X509_ATTRIBUTE.pod
+GENERATE[html/man3/X509_ATTRIBUTE.html]=man3/X509_ATTRIBUTE.pod
+DEPEND[man/man3/X509_ATTRIBUTE.3]=man3/X509_ATTRIBUTE.pod
+GENERATE[man/man3/X509_ATTRIBUTE.3]=man3/X509_ATTRIBUTE.pod
+DEPEND[html/man3/X509_CRL_get0_by_serial.html]=man3/X509_CRL_get0_by_serial.pod
+GENERATE[html/man3/X509_CRL_get0_by_serial.html]=man3/X509_CRL_get0_by_serial.pod
+DEPEND[man/man3/X509_CRL_get0_by_serial.3]=man3/X509_CRL_get0_by_serial.pod
+GENERATE[man/man3/X509_CRL_get0_by_serial.3]=man3/X509_CRL_get0_by_serial.pod
+DEPEND[html/man3/X509_EXTENSION_set_object.html]=man3/X509_EXTENSION_set_object.pod
+GENERATE[html/man3/X509_EXTENSION_set_object.html]=man3/X509_EXTENSION_set_object.pod
+DEPEND[man/man3/X509_EXTENSION_set_object.3]=man3/X509_EXTENSION_set_object.pod
+GENERATE[man/man3/X509_EXTENSION_set_object.3]=man3/X509_EXTENSION_set_object.pod
+DEPEND[html/man3/X509_LOOKUP.html]=man3/X509_LOOKUP.pod
+GENERATE[html/man3/X509_LOOKUP.html]=man3/X509_LOOKUP.pod
+DEPEND[man/man3/X509_LOOKUP.3]=man3/X509_LOOKUP.pod
+GENERATE[man/man3/X509_LOOKUP.3]=man3/X509_LOOKUP.pod
+DEPEND[html/man3/X509_LOOKUP_hash_dir.html]=man3/X509_LOOKUP_hash_dir.pod
+GENERATE[html/man3/X509_LOOKUP_hash_dir.html]=man3/X509_LOOKUP_hash_dir.pod
+DEPEND[man/man3/X509_LOOKUP_hash_dir.3]=man3/X509_LOOKUP_hash_dir.pod
+GENERATE[man/man3/X509_LOOKUP_hash_dir.3]=man3/X509_LOOKUP_hash_dir.pod
+DEPEND[html/man3/X509_LOOKUP_meth_new.html]=man3/X509_LOOKUP_meth_new.pod
+GENERATE[html/man3/X509_LOOKUP_meth_new.html]=man3/X509_LOOKUP_meth_new.pod
+DEPEND[man/man3/X509_LOOKUP_meth_new.3]=man3/X509_LOOKUP_meth_new.pod
+GENERATE[man/man3/X509_LOOKUP_meth_new.3]=man3/X509_LOOKUP_meth_new.pod
+DEPEND[html/man3/X509_NAME_ENTRY_get_object.html]=man3/X509_NAME_ENTRY_get_object.pod
+GENERATE[html/man3/X509_NAME_ENTRY_get_object.html]=man3/X509_NAME_ENTRY_get_object.pod
+DEPEND[man/man3/X509_NAME_ENTRY_get_object.3]=man3/X509_NAME_ENTRY_get_object.pod
+GENERATE[man/man3/X509_NAME_ENTRY_get_object.3]=man3/X509_NAME_ENTRY_get_object.pod
+DEPEND[html/man3/X509_NAME_add_entry_by_txt.html]=man3/X509_NAME_add_entry_by_txt.pod
+GENERATE[html/man3/X509_NAME_add_entry_by_txt.html]=man3/X509_NAME_add_entry_by_txt.pod
+DEPEND[man/man3/X509_NAME_add_entry_by_txt.3]=man3/X509_NAME_add_entry_by_txt.pod
+GENERATE[man/man3/X509_NAME_add_entry_by_txt.3]=man3/X509_NAME_add_entry_by_txt.pod
+DEPEND[html/man3/X509_NAME_get0_der.html]=man3/X509_NAME_get0_der.pod
+GENERATE[html/man3/X509_NAME_get0_der.html]=man3/X509_NAME_get0_der.pod
+DEPEND[man/man3/X509_NAME_get0_der.3]=man3/X509_NAME_get0_der.pod
+GENERATE[man/man3/X509_NAME_get0_der.3]=man3/X509_NAME_get0_der.pod
+DEPEND[html/man3/X509_NAME_get_index_by_NID.html]=man3/X509_NAME_get_index_by_NID.pod
+GENERATE[html/man3/X509_NAME_get_index_by_NID.html]=man3/X509_NAME_get_index_by_NID.pod
+DEPEND[man/man3/X509_NAME_get_index_by_NID.3]=man3/X509_NAME_get_index_by_NID.pod
+GENERATE[man/man3/X509_NAME_get_index_by_NID.3]=man3/X509_NAME_get_index_by_NID.pod
+DEPEND[html/man3/X509_NAME_print_ex.html]=man3/X509_NAME_print_ex.pod
+GENERATE[html/man3/X509_NAME_print_ex.html]=man3/X509_NAME_print_ex.pod
+DEPEND[man/man3/X509_NAME_print_ex.3]=man3/X509_NAME_print_ex.pod
+GENERATE[man/man3/X509_NAME_print_ex.3]=man3/X509_NAME_print_ex.pod
+DEPEND[html/man3/X509_PUBKEY_new.html]=man3/X509_PUBKEY_new.pod
+GENERATE[html/man3/X509_PUBKEY_new.html]=man3/X509_PUBKEY_new.pod
+DEPEND[man/man3/X509_PUBKEY_new.3]=man3/X509_PUBKEY_new.pod
+GENERATE[man/man3/X509_PUBKEY_new.3]=man3/X509_PUBKEY_new.pod
+DEPEND[html/man3/X509_REQ_get_attr.html]=man3/X509_REQ_get_attr.pod
+GENERATE[html/man3/X509_REQ_get_attr.html]=man3/X509_REQ_get_attr.pod
+DEPEND[man/man3/X509_REQ_get_attr.3]=man3/X509_REQ_get_attr.pod
+GENERATE[man/man3/X509_REQ_get_attr.3]=man3/X509_REQ_get_attr.pod
+DEPEND[html/man3/X509_REQ_get_extensions.html]=man3/X509_REQ_get_extensions.pod
+GENERATE[html/man3/X509_REQ_get_extensions.html]=man3/X509_REQ_get_extensions.pod
+DEPEND[man/man3/X509_REQ_get_extensions.3]=man3/X509_REQ_get_extensions.pod
+GENERATE[man/man3/X509_REQ_get_extensions.3]=man3/X509_REQ_get_extensions.pod
+DEPEND[html/man3/X509_SIG_get0.html]=man3/X509_SIG_get0.pod
+GENERATE[html/man3/X509_SIG_get0.html]=man3/X509_SIG_get0.pod
+DEPEND[man/man3/X509_SIG_get0.3]=man3/X509_SIG_get0.pod
+GENERATE[man/man3/X509_SIG_get0.3]=man3/X509_SIG_get0.pod
+DEPEND[html/man3/X509_STORE_CTX_get_error.html]=man3/X509_STORE_CTX_get_error.pod
+GENERATE[html/man3/X509_STORE_CTX_get_error.html]=man3/X509_STORE_CTX_get_error.pod
+DEPEND[man/man3/X509_STORE_CTX_get_error.3]=man3/X509_STORE_CTX_get_error.pod
+GENERATE[man/man3/X509_STORE_CTX_get_error.3]=man3/X509_STORE_CTX_get_error.pod
+DEPEND[html/man3/X509_STORE_CTX_new.html]=man3/X509_STORE_CTX_new.pod
+GENERATE[html/man3/X509_STORE_CTX_new.html]=man3/X509_STORE_CTX_new.pod
+DEPEND[man/man3/X509_STORE_CTX_new.3]=man3/X509_STORE_CTX_new.pod
+GENERATE[man/man3/X509_STORE_CTX_new.3]=man3/X509_STORE_CTX_new.pod
+DEPEND[html/man3/X509_STORE_CTX_set_verify_cb.html]=man3/X509_STORE_CTX_set_verify_cb.pod
+GENERATE[html/man3/X509_STORE_CTX_set_verify_cb.html]=man3/X509_STORE_CTX_set_verify_cb.pod
+DEPEND[man/man3/X509_STORE_CTX_set_verify_cb.3]=man3/X509_STORE_CTX_set_verify_cb.pod
+GENERATE[man/man3/X509_STORE_CTX_set_verify_cb.3]=man3/X509_STORE_CTX_set_verify_cb.pod
+DEPEND[html/man3/X509_STORE_add_cert.html]=man3/X509_STORE_add_cert.pod
+GENERATE[html/man3/X509_STORE_add_cert.html]=man3/X509_STORE_add_cert.pod
+DEPEND[man/man3/X509_STORE_add_cert.3]=man3/X509_STORE_add_cert.pod
+GENERATE[man/man3/X509_STORE_add_cert.3]=man3/X509_STORE_add_cert.pod
+DEPEND[html/man3/X509_STORE_get0_param.html]=man3/X509_STORE_get0_param.pod
+GENERATE[html/man3/X509_STORE_get0_param.html]=man3/X509_STORE_get0_param.pod
+DEPEND[man/man3/X509_STORE_get0_param.3]=man3/X509_STORE_get0_param.pod
+GENERATE[man/man3/X509_STORE_get0_param.3]=man3/X509_STORE_get0_param.pod
+DEPEND[html/man3/X509_STORE_new.html]=man3/X509_STORE_new.pod
+GENERATE[html/man3/X509_STORE_new.html]=man3/X509_STORE_new.pod
+DEPEND[man/man3/X509_STORE_new.3]=man3/X509_STORE_new.pod
+GENERATE[man/man3/X509_STORE_new.3]=man3/X509_STORE_new.pod
+DEPEND[html/man3/X509_STORE_set_verify_cb_func.html]=man3/X509_STORE_set_verify_cb_func.pod
+GENERATE[html/man3/X509_STORE_set_verify_cb_func.html]=man3/X509_STORE_set_verify_cb_func.pod
+DEPEND[man/man3/X509_STORE_set_verify_cb_func.3]=man3/X509_STORE_set_verify_cb_func.pod
+GENERATE[man/man3/X509_STORE_set_verify_cb_func.3]=man3/X509_STORE_set_verify_cb_func.pod
+DEPEND[html/man3/X509_VERIFY_PARAM_set_flags.html]=man3/X509_VERIFY_PARAM_set_flags.pod
+GENERATE[html/man3/X509_VERIFY_PARAM_set_flags.html]=man3/X509_VERIFY_PARAM_set_flags.pod
+DEPEND[man/man3/X509_VERIFY_PARAM_set_flags.3]=man3/X509_VERIFY_PARAM_set_flags.pod
+GENERATE[man/man3/X509_VERIFY_PARAM_set_flags.3]=man3/X509_VERIFY_PARAM_set_flags.pod
+DEPEND[html/man3/X509_add_cert.html]=man3/X509_add_cert.pod
+GENERATE[html/man3/X509_add_cert.html]=man3/X509_add_cert.pod
+DEPEND[man/man3/X509_add_cert.3]=man3/X509_add_cert.pod
+GENERATE[man/man3/X509_add_cert.3]=man3/X509_add_cert.pod
+DEPEND[html/man3/X509_check_ca.html]=man3/X509_check_ca.pod
+GENERATE[html/man3/X509_check_ca.html]=man3/X509_check_ca.pod
+DEPEND[man/man3/X509_check_ca.3]=man3/X509_check_ca.pod
+GENERATE[man/man3/X509_check_ca.3]=man3/X509_check_ca.pod
+DEPEND[html/man3/X509_check_host.html]=man3/X509_check_host.pod
+GENERATE[html/man3/X509_check_host.html]=man3/X509_check_host.pod
+DEPEND[man/man3/X509_check_host.3]=man3/X509_check_host.pod
+GENERATE[man/man3/X509_check_host.3]=man3/X509_check_host.pod
+DEPEND[html/man3/X509_check_issued.html]=man3/X509_check_issued.pod
+GENERATE[html/man3/X509_check_issued.html]=man3/X509_check_issued.pod
+DEPEND[man/man3/X509_check_issued.3]=man3/X509_check_issued.pod
+GENERATE[man/man3/X509_check_issued.3]=man3/X509_check_issued.pod
+DEPEND[html/man3/X509_check_private_key.html]=man3/X509_check_private_key.pod
+GENERATE[html/man3/X509_check_private_key.html]=man3/X509_check_private_key.pod
+DEPEND[man/man3/X509_check_private_key.3]=man3/X509_check_private_key.pod
+GENERATE[man/man3/X509_check_private_key.3]=man3/X509_check_private_key.pod
+DEPEND[html/man3/X509_check_purpose.html]=man3/X509_check_purpose.pod
+GENERATE[html/man3/X509_check_purpose.html]=man3/X509_check_purpose.pod
+DEPEND[man/man3/X509_check_purpose.3]=man3/X509_check_purpose.pod
+GENERATE[man/man3/X509_check_purpose.3]=man3/X509_check_purpose.pod
+DEPEND[html/man3/X509_cmp.html]=man3/X509_cmp.pod
+GENERATE[html/man3/X509_cmp.html]=man3/X509_cmp.pod
+DEPEND[man/man3/X509_cmp.3]=man3/X509_cmp.pod
+GENERATE[man/man3/X509_cmp.3]=man3/X509_cmp.pod
+DEPEND[html/man3/X509_cmp_time.html]=man3/X509_cmp_time.pod
+GENERATE[html/man3/X509_cmp_time.html]=man3/X509_cmp_time.pod
+DEPEND[man/man3/X509_cmp_time.3]=man3/X509_cmp_time.pod
+GENERATE[man/man3/X509_cmp_time.3]=man3/X509_cmp_time.pod
+DEPEND[html/man3/X509_digest.html]=man3/X509_digest.pod
+GENERATE[html/man3/X509_digest.html]=man3/X509_digest.pod
+DEPEND[man/man3/X509_digest.3]=man3/X509_digest.pod
+GENERATE[man/man3/X509_digest.3]=man3/X509_digest.pod
+DEPEND[html/man3/X509_dup.html]=man3/X509_dup.pod
+GENERATE[html/man3/X509_dup.html]=man3/X509_dup.pod
+DEPEND[man/man3/X509_dup.3]=man3/X509_dup.pod
+GENERATE[man/man3/X509_dup.3]=man3/X509_dup.pod
+DEPEND[html/man3/X509_get0_distinguishing_id.html]=man3/X509_get0_distinguishing_id.pod
+GENERATE[html/man3/X509_get0_distinguishing_id.html]=man3/X509_get0_distinguishing_id.pod
+DEPEND[man/man3/X509_get0_distinguishing_id.3]=man3/X509_get0_distinguishing_id.pod
+GENERATE[man/man3/X509_get0_distinguishing_id.3]=man3/X509_get0_distinguishing_id.pod
+DEPEND[html/man3/X509_get0_notBefore.html]=man3/X509_get0_notBefore.pod
+GENERATE[html/man3/X509_get0_notBefore.html]=man3/X509_get0_notBefore.pod
+DEPEND[man/man3/X509_get0_notBefore.3]=man3/X509_get0_notBefore.pod
+GENERATE[man/man3/X509_get0_notBefore.3]=man3/X509_get0_notBefore.pod
+DEPEND[html/man3/X509_get0_signature.html]=man3/X509_get0_signature.pod
+GENERATE[html/man3/X509_get0_signature.html]=man3/X509_get0_signature.pod
+DEPEND[man/man3/X509_get0_signature.3]=man3/X509_get0_signature.pod
+GENERATE[man/man3/X509_get0_signature.3]=man3/X509_get0_signature.pod
+DEPEND[html/man3/X509_get0_uids.html]=man3/X509_get0_uids.pod
+GENERATE[html/man3/X509_get0_uids.html]=man3/X509_get0_uids.pod
+DEPEND[man/man3/X509_get0_uids.3]=man3/X509_get0_uids.pod
+GENERATE[man/man3/X509_get0_uids.3]=man3/X509_get0_uids.pod
+DEPEND[html/man3/X509_get_extension_flags.html]=man3/X509_get_extension_flags.pod
+GENERATE[html/man3/X509_get_extension_flags.html]=man3/X509_get_extension_flags.pod
+DEPEND[man/man3/X509_get_extension_flags.3]=man3/X509_get_extension_flags.pod
+GENERATE[man/man3/X509_get_extension_flags.3]=man3/X509_get_extension_flags.pod
+DEPEND[html/man3/X509_get_pubkey.html]=man3/X509_get_pubkey.pod
+GENERATE[html/man3/X509_get_pubkey.html]=man3/X509_get_pubkey.pod
+DEPEND[man/man3/X509_get_pubkey.3]=man3/X509_get_pubkey.pod
+GENERATE[man/man3/X509_get_pubkey.3]=man3/X509_get_pubkey.pod
+DEPEND[html/man3/X509_get_serialNumber.html]=man3/X509_get_serialNumber.pod
+GENERATE[html/man3/X509_get_serialNumber.html]=man3/X509_get_serialNumber.pod
+DEPEND[man/man3/X509_get_serialNumber.3]=man3/X509_get_serialNumber.pod
+GENERATE[man/man3/X509_get_serialNumber.3]=man3/X509_get_serialNumber.pod
+DEPEND[html/man3/X509_get_subject_name.html]=man3/X509_get_subject_name.pod
+GENERATE[html/man3/X509_get_subject_name.html]=man3/X509_get_subject_name.pod
+DEPEND[man/man3/X509_get_subject_name.3]=man3/X509_get_subject_name.pod
+GENERATE[man/man3/X509_get_subject_name.3]=man3/X509_get_subject_name.pod
+DEPEND[html/man3/X509_get_version.html]=man3/X509_get_version.pod
+GENERATE[html/man3/X509_get_version.html]=man3/X509_get_version.pod
+DEPEND[man/man3/X509_get_version.3]=man3/X509_get_version.pod
+GENERATE[man/man3/X509_get_version.3]=man3/X509_get_version.pod
+DEPEND[html/man3/X509_load_http.html]=man3/X509_load_http.pod
+GENERATE[html/man3/X509_load_http.html]=man3/X509_load_http.pod
+DEPEND[man/man3/X509_load_http.3]=man3/X509_load_http.pod
+GENERATE[man/man3/X509_load_http.3]=man3/X509_load_http.pod
+DEPEND[html/man3/X509_new.html]=man3/X509_new.pod
+GENERATE[html/man3/X509_new.html]=man3/X509_new.pod
+DEPEND[man/man3/X509_new.3]=man3/X509_new.pod
+GENERATE[man/man3/X509_new.3]=man3/X509_new.pod
+DEPEND[html/man3/X509_sign.html]=man3/X509_sign.pod
+GENERATE[html/man3/X509_sign.html]=man3/X509_sign.pod
+DEPEND[man/man3/X509_sign.3]=man3/X509_sign.pod
+GENERATE[man/man3/X509_sign.3]=man3/X509_sign.pod
+DEPEND[html/man3/X509_verify.html]=man3/X509_verify.pod
+GENERATE[html/man3/X509_verify.html]=man3/X509_verify.pod
+DEPEND[man/man3/X509_verify.3]=man3/X509_verify.pod
+GENERATE[man/man3/X509_verify.3]=man3/X509_verify.pod
+DEPEND[html/man3/X509_verify_cert.html]=man3/X509_verify_cert.pod
+GENERATE[html/man3/X509_verify_cert.html]=man3/X509_verify_cert.pod
+DEPEND[man/man3/X509_verify_cert.3]=man3/X509_verify_cert.pod
+GENERATE[man/man3/X509_verify_cert.3]=man3/X509_verify_cert.pod
+DEPEND[html/man3/X509v3_get_ext_by_NID.html]=man3/X509v3_get_ext_by_NID.pod
+GENERATE[html/man3/X509v3_get_ext_by_NID.html]=man3/X509v3_get_ext_by_NID.pod
+DEPEND[man/man3/X509v3_get_ext_by_NID.3]=man3/X509v3_get_ext_by_NID.pod
+GENERATE[man/man3/X509v3_get_ext_by_NID.3]=man3/X509v3_get_ext_by_NID.pod
+DEPEND[html/man3/b2i_PVK_bio_ex.html]=man3/b2i_PVK_bio_ex.pod
+GENERATE[html/man3/b2i_PVK_bio_ex.html]=man3/b2i_PVK_bio_ex.pod
+DEPEND[man/man3/b2i_PVK_bio_ex.3]=man3/b2i_PVK_bio_ex.pod
+GENERATE[man/man3/b2i_PVK_bio_ex.3]=man3/b2i_PVK_bio_ex.pod
+DEPEND[html/man3/d2i_PKCS8PrivateKey_bio.html]=man3/d2i_PKCS8PrivateKey_bio.pod
+GENERATE[html/man3/d2i_PKCS8PrivateKey_bio.html]=man3/d2i_PKCS8PrivateKey_bio.pod
+DEPEND[man/man3/d2i_PKCS8PrivateKey_bio.3]=man3/d2i_PKCS8PrivateKey_bio.pod
+GENERATE[man/man3/d2i_PKCS8PrivateKey_bio.3]=man3/d2i_PKCS8PrivateKey_bio.pod
+DEPEND[html/man3/d2i_PrivateKey.html]=man3/d2i_PrivateKey.pod
+GENERATE[html/man3/d2i_PrivateKey.html]=man3/d2i_PrivateKey.pod
+DEPEND[man/man3/d2i_PrivateKey.3]=man3/d2i_PrivateKey.pod
+GENERATE[man/man3/d2i_PrivateKey.3]=man3/d2i_PrivateKey.pod
+DEPEND[html/man3/d2i_RSAPrivateKey.html]=man3/d2i_RSAPrivateKey.pod
+GENERATE[html/man3/d2i_RSAPrivateKey.html]=man3/d2i_RSAPrivateKey.pod
+DEPEND[man/man3/d2i_RSAPrivateKey.3]=man3/d2i_RSAPrivateKey.pod
+GENERATE[man/man3/d2i_RSAPrivateKey.3]=man3/d2i_RSAPrivateKey.pod
+DEPEND[html/man3/d2i_SSL_SESSION.html]=man3/d2i_SSL_SESSION.pod
+GENERATE[html/man3/d2i_SSL_SESSION.html]=man3/d2i_SSL_SESSION.pod
+DEPEND[man/man3/d2i_SSL_SESSION.3]=man3/d2i_SSL_SESSION.pod
+GENERATE[man/man3/d2i_SSL_SESSION.3]=man3/d2i_SSL_SESSION.pod
+DEPEND[html/man3/d2i_X509.html]=man3/d2i_X509.pod
+GENERATE[html/man3/d2i_X509.html]=man3/d2i_X509.pod
+DEPEND[man/man3/d2i_X509.3]=man3/d2i_X509.pod
+GENERATE[man/man3/d2i_X509.3]=man3/d2i_X509.pod
+DEPEND[html/man3/i2d_CMS_bio_stream.html]=man3/i2d_CMS_bio_stream.pod
+GENERATE[html/man3/i2d_CMS_bio_stream.html]=man3/i2d_CMS_bio_stream.pod
+DEPEND[man/man3/i2d_CMS_bio_stream.3]=man3/i2d_CMS_bio_stream.pod
+GENERATE[man/man3/i2d_CMS_bio_stream.3]=man3/i2d_CMS_bio_stream.pod
+DEPEND[html/man3/i2d_PKCS7_bio_stream.html]=man3/i2d_PKCS7_bio_stream.pod
+GENERATE[html/man3/i2d_PKCS7_bio_stream.html]=man3/i2d_PKCS7_bio_stream.pod
+DEPEND[man/man3/i2d_PKCS7_bio_stream.3]=man3/i2d_PKCS7_bio_stream.pod
+GENERATE[man/man3/i2d_PKCS7_bio_stream.3]=man3/i2d_PKCS7_bio_stream.pod
+DEPEND[html/man3/i2d_re_X509_tbs.html]=man3/i2d_re_X509_tbs.pod
+GENERATE[html/man3/i2d_re_X509_tbs.html]=man3/i2d_re_X509_tbs.pod
+DEPEND[man/man3/i2d_re_X509_tbs.3]=man3/i2d_re_X509_tbs.pod
+GENERATE[man/man3/i2d_re_X509_tbs.3]=man3/i2d_re_X509_tbs.pod
+DEPEND[html/man3/o2i_SCT_LIST.html]=man3/o2i_SCT_LIST.pod
+GENERATE[html/man3/o2i_SCT_LIST.html]=man3/o2i_SCT_LIST.pod
+DEPEND[man/man3/o2i_SCT_LIST.3]=man3/o2i_SCT_LIST.pod
+GENERATE[man/man3/o2i_SCT_LIST.3]=man3/o2i_SCT_LIST.pod
+DEPEND[html/man3/s2i_ASN1_IA5STRING.html]=man3/s2i_ASN1_IA5STRING.pod
+GENERATE[html/man3/s2i_ASN1_IA5STRING.html]=man3/s2i_ASN1_IA5STRING.pod
+DEPEND[man/man3/s2i_ASN1_IA5STRING.3]=man3/s2i_ASN1_IA5STRING.pod
+GENERATE[man/man3/s2i_ASN1_IA5STRING.3]=man3/s2i_ASN1_IA5STRING.pod
+IMAGEDOCS[man3]=
+HTMLDOCS[man3]=html/man3/ADMISSIONS.html \
+html/man3/ASN1_EXTERN_FUNCS.html \
+html/man3/ASN1_INTEGER_get_int64.html \
+html/man3/ASN1_INTEGER_new.html \
+html/man3/ASN1_ITEM_lookup.html \
+html/man3/ASN1_OBJECT_new.html \
+html/man3/ASN1_STRING_TABLE_add.html \
+html/man3/ASN1_STRING_length.html \
+html/man3/ASN1_STRING_new.html \
+html/man3/ASN1_STRING_print_ex.html \
+html/man3/ASN1_TIME_set.html \
+html/man3/ASN1_TYPE_get.html \
+html/man3/ASN1_aux_cb.html \
+html/man3/ASN1_generate_nconf.html \
+html/man3/ASN1_item_d2i_bio.html \
+html/man3/ASN1_item_new.html \
+html/man3/ASN1_item_sign.html \
+html/man3/ASYNC_WAIT_CTX_new.html \
+html/man3/ASYNC_start_job.html \
+html/man3/BF_encrypt.html \
+html/man3/BIO_ADDR.html \
+html/man3/BIO_ADDRINFO.html \
+html/man3/BIO_connect.html \
+html/man3/BIO_ctrl.html \
+html/man3/BIO_f_base64.html \
+html/man3/BIO_f_buffer.html \
+html/man3/BIO_f_cipher.html \
+html/man3/BIO_f_md.html \
+html/man3/BIO_f_null.html \
+html/man3/BIO_f_prefix.html \
+html/man3/BIO_f_readbuffer.html \
+html/man3/BIO_f_ssl.html \
+html/man3/BIO_find_type.html \
+html/man3/BIO_get_data.html \
+html/man3/BIO_get_ex_new_index.html \
+html/man3/BIO_meth_new.html \
+html/man3/BIO_new.html \
+html/man3/BIO_new_CMS.html \
+html/man3/BIO_parse_hostserv.html \
+html/man3/BIO_printf.html \
+html/man3/BIO_push.html \
+html/man3/BIO_read.html \
+html/man3/BIO_s_accept.html \
+html/man3/BIO_s_bio.html \
+html/man3/BIO_s_connect.html \
+html/man3/BIO_s_core.html \
+html/man3/BIO_s_datagram.html \
+html/man3/BIO_s_fd.html \
+html/man3/BIO_s_file.html \
+html/man3/BIO_s_mem.html \
+html/man3/BIO_s_null.html \
+html/man3/BIO_s_socket.html \
+html/man3/BIO_set_callback.html \
+html/man3/BIO_should_retry.html \
+html/man3/BIO_socket_wait.html \
+html/man3/BN_BLINDING_new.html \
+html/man3/BN_CTX_new.html \
+html/man3/BN_CTX_start.html \
+html/man3/BN_add.html \
+html/man3/BN_add_word.html \
+html/man3/BN_bn2bin.html \
+html/man3/BN_cmp.html \
+html/man3/BN_copy.html \
+html/man3/BN_generate_prime.html \
+html/man3/BN_mod_exp_mont.html \
+html/man3/BN_mod_inverse.html \
+html/man3/BN_mod_mul_montgomery.html \
+html/man3/BN_mod_mul_reciprocal.html \
+html/man3/BN_new.html \
+html/man3/BN_num_bytes.html \
+html/man3/BN_rand.html \
+html/man3/BN_security_bits.html \
+html/man3/BN_set_bit.html \
+html/man3/BN_swap.html \
+html/man3/BN_zero.html \
+html/man3/BUF_MEM_new.html \
+html/man3/CMS_EncryptedData_decrypt.html \
+html/man3/CMS_EncryptedData_encrypt.html \
+html/man3/CMS_EnvelopedData_create.html \
+html/man3/CMS_add0_cert.html \
+html/man3/CMS_add1_recipient_cert.html \
+html/man3/CMS_add1_signer.html \
+html/man3/CMS_compress.html \
+html/man3/CMS_data_create.html \
+html/man3/CMS_decrypt.html \
+html/man3/CMS_digest_create.html \
+html/man3/CMS_encrypt.html \
+html/man3/CMS_final.html \
+html/man3/CMS_get0_RecipientInfos.html \
+html/man3/CMS_get0_SignerInfos.html \
+html/man3/CMS_get0_type.html \
+html/man3/CMS_get1_ReceiptRequest.html \
+html/man3/CMS_sign.html \
+html/man3/CMS_sign_receipt.html \
+html/man3/CMS_signed_get_attr.html \
+html/man3/CMS_uncompress.html \
+html/man3/CMS_verify.html \
+html/man3/CMS_verify_receipt.html \
+html/man3/CONF_modules_free.html \
+html/man3/CONF_modules_load_file.html \
+html/man3/CRYPTO_THREAD_run_once.html \
+html/man3/CRYPTO_get_ex_new_index.html \
+html/man3/CRYPTO_memcmp.html \
+html/man3/CTLOG_STORE_get0_log_by_id.html \
+html/man3/CTLOG_STORE_new.html \
+html/man3/CTLOG_new.html \
+html/man3/CT_POLICY_EVAL_CTX_new.html \
+html/man3/DEFINE_STACK_OF.html \
+html/man3/DES_random_key.html \
+html/man3/DH_generate_key.html \
+html/man3/DH_generate_parameters.html \
+html/man3/DH_get0_pqg.html \
+html/man3/DH_get_1024_160.html \
+html/man3/DH_meth_new.html \
+html/man3/DH_new.html \
+html/man3/DH_new_by_nid.html \
+html/man3/DH_set_method.html \
+html/man3/DH_size.html \
+html/man3/DSA_SIG_new.html \
+html/man3/DSA_do_sign.html \
+html/man3/DSA_dup_DH.html \
+html/man3/DSA_generate_key.html \
+html/man3/DSA_generate_parameters.html \
+html/man3/DSA_get0_pqg.html \
+html/man3/DSA_meth_new.html \
+html/man3/DSA_new.html \
+html/man3/DSA_set_method.html \
+html/man3/DSA_sign.html \
+html/man3/DSA_size.html \
+html/man3/DTLS_get_data_mtu.html \
+html/man3/DTLS_set_timer_cb.html \
+html/man3/DTLSv1_listen.html \
+html/man3/ECDSA_SIG_new.html \
+html/man3/ECDSA_sign.html \
+html/man3/ECPKParameters_print.html \
+html/man3/EC_GFp_simple_method.html \
+html/man3/EC_GROUP_copy.html \
+html/man3/EC_GROUP_new.html \
+html/man3/EC_KEY_get_enc_flags.html \
+html/man3/EC_KEY_new.html \
+html/man3/EC_POINT_add.html \
+html/man3/EC_POINT_new.html \
+html/man3/ENGINE_add.html \
+html/man3/ERR_GET_LIB.html \
+html/man3/ERR_clear_error.html \
+html/man3/ERR_error_string.html \
+html/man3/ERR_get_error.html \
+html/man3/ERR_load_crypto_strings.html \
+html/man3/ERR_load_strings.html \
+html/man3/ERR_new.html \
+html/man3/ERR_print_errors.html \
+html/man3/ERR_put_error.html \
+html/man3/ERR_remove_state.html \
+html/man3/ERR_set_mark.html \
+html/man3/EVP_ASYM_CIPHER_free.html \
+html/man3/EVP_BytesToKey.html \
+html/man3/EVP_CIPHER_CTX_get_cipher_data.html \
+html/man3/EVP_CIPHER_CTX_get_original_iv.html \
+html/man3/EVP_CIPHER_meth_new.html \
+html/man3/EVP_DigestInit.html \
+html/man3/EVP_DigestSignInit.html \
+html/man3/EVP_DigestVerifyInit.html \
+html/man3/EVP_EncodeInit.html \
+html/man3/EVP_EncryptInit.html \
+html/man3/EVP_KDF.html \
+html/man3/EVP_KEM_free.html \
+html/man3/EVP_KEYEXCH_free.html \
+html/man3/EVP_KEYMGMT.html \
+html/man3/EVP_MAC.html \
+html/man3/EVP_MD_meth_new.html \
+html/man3/EVP_OpenInit.html \
+html/man3/EVP_PBE_CipherInit.html \
+html/man3/EVP_PKEY2PKCS8.html \
+html/man3/EVP_PKEY_ASN1_METHOD.html \
+html/man3/EVP_PKEY_CTX_ctrl.html \
+html/man3/EVP_PKEY_CTX_get0_libctx.html \
+html/man3/EVP_PKEY_CTX_get0_pkey.html \
+html/man3/EVP_PKEY_CTX_new.html \
+html/man3/EVP_PKEY_CTX_set1_pbe_pass.html \
+html/man3/EVP_PKEY_CTX_set_hkdf_md.html \
+html/man3/EVP_PKEY_CTX_set_params.html \
+html/man3/EVP_PKEY_CTX_set_rsa_pss_keygen_md.html \
+html/man3/EVP_PKEY_CTX_set_scrypt_N.html \
+html/man3/EVP_PKEY_CTX_set_tls1_prf_md.html \
+html/man3/EVP_PKEY_asn1_get_count.html \
+html/man3/EVP_PKEY_check.html \
+html/man3/EVP_PKEY_copy_parameters.html \
+html/man3/EVP_PKEY_decapsulate.html \
+html/man3/EVP_PKEY_decrypt.html \
+html/man3/EVP_PKEY_derive.html \
+html/man3/EVP_PKEY_digestsign_supports_digest.html \
+html/man3/EVP_PKEY_encapsulate.html \
+html/man3/EVP_PKEY_encrypt.html \
+html/man3/EVP_PKEY_fromdata.html \
+html/man3/EVP_PKEY_get_attr.html \
+html/man3/EVP_PKEY_get_default_digest_nid.html \
+html/man3/EVP_PKEY_get_field_type.html \
+html/man3/EVP_PKEY_get_group_name.html \
+html/man3/EVP_PKEY_get_size.html \
+html/man3/EVP_PKEY_gettable_params.html \
+html/man3/EVP_PKEY_is_a.html \
+html/man3/EVP_PKEY_keygen.html \
+html/man3/EVP_PKEY_meth_get_count.html \
+html/man3/EVP_PKEY_meth_new.html \
+html/man3/EVP_PKEY_new.html \
+html/man3/EVP_PKEY_print_private.html \
+html/man3/EVP_PKEY_set1_RSA.html \
+html/man3/EVP_PKEY_set1_encoded_public_key.html \
+html/man3/EVP_PKEY_set_type.html \
+html/man3/EVP_PKEY_settable_params.html \
+html/man3/EVP_PKEY_sign.html \
+html/man3/EVP_PKEY_todata.html \
+html/man3/EVP_PKEY_verify.html \
+html/man3/EVP_PKEY_verify_recover.html \
+html/man3/EVP_RAND.html \
+html/man3/EVP_SIGNATURE.html \
+html/man3/EVP_SealInit.html \
+html/man3/EVP_SignInit.html \
+html/man3/EVP_VerifyInit.html \
+html/man3/EVP_aes_128_gcm.html \
+html/man3/EVP_aria_128_gcm.html \
+html/man3/EVP_bf_cbc.html \
+html/man3/EVP_blake2b512.html \
+html/man3/EVP_camellia_128_ecb.html \
+html/man3/EVP_cast5_cbc.html \
+html/man3/EVP_chacha20.html \
+html/man3/EVP_des_cbc.html \
+html/man3/EVP_desx_cbc.html \
+html/man3/EVP_idea_cbc.html \
+html/man3/EVP_md2.html \
+html/man3/EVP_md4.html \
+html/man3/EVP_md5.html \
+html/man3/EVP_mdc2.html \
+html/man3/EVP_rc2_cbc.html \
+html/man3/EVP_rc4.html \
+html/man3/EVP_rc5_32_12_16_cbc.html \
+html/man3/EVP_ripemd160.html \
+html/man3/EVP_seed_cbc.html \
+html/man3/EVP_set_default_properties.html \
+html/man3/EVP_sha1.html \
+html/man3/EVP_sha224.html \
+html/man3/EVP_sha3_224.html \
+html/man3/EVP_sm3.html \
+html/man3/EVP_sm4_cbc.html \
+html/man3/EVP_whirlpool.html \
+html/man3/HMAC.html \
+html/man3/MD5.html \
+html/man3/MDC2_Init.html \
+html/man3/NCONF_new_ex.html \
+html/man3/OBJ_nid2obj.html \
+html/man3/OCSP_REQUEST_new.html \
+html/man3/OCSP_cert_to_id.html \
+html/man3/OCSP_request_add1_nonce.html \
+html/man3/OCSP_resp_find_status.html \
+html/man3/OCSP_response_status.html \
+html/man3/OCSP_sendreq_new.html \
+html/man3/OPENSSL_Applink.html \
+html/man3/OPENSSL_FILE.html \
+html/man3/OPENSSL_LH_COMPFUNC.html \
+html/man3/OPENSSL_LH_stats.html \
+html/man3/OPENSSL_config.html \
+html/man3/OPENSSL_fork_prepare.html \
+html/man3/OPENSSL_gmtime.html \
+html/man3/OPENSSL_hexchar2int.html \
+html/man3/OPENSSL_ia32cap.html \
+html/man3/OPENSSL_init_crypto.html \
+html/man3/OPENSSL_init_ssl.html \
+html/man3/OPENSSL_instrument_bus.html \
+html/man3/OPENSSL_load_builtin_modules.html \
+html/man3/OPENSSL_malloc.html \
+html/man3/OPENSSL_s390xcap.html \
+html/man3/OPENSSL_secure_malloc.html \
+html/man3/OPENSSL_strcasecmp.html \
+html/man3/OSSL_ALGORITHM.html \
+html/man3/OSSL_CALLBACK.html \
+html/man3/OSSL_CMP_CTX_new.html \
+html/man3/OSSL_CMP_HDR_get0_transactionID.html \
+html/man3/OSSL_CMP_ITAV_set0.html \
+html/man3/OSSL_CMP_MSG_get0_header.html \
+html/man3/OSSL_CMP_MSG_http_perform.html \
+html/man3/OSSL_CMP_SRV_CTX_new.html \
+html/man3/OSSL_CMP_STATUSINFO_new.html \
+html/man3/OSSL_CMP_exec_certreq.html \
+html/man3/OSSL_CMP_log_open.html \
+html/man3/OSSL_CMP_validate_msg.html \
+html/man3/OSSL_CORE_MAKE_FUNC.html \
+html/man3/OSSL_CRMF_MSG_get0_tmpl.html \
+html/man3/OSSL_CRMF_MSG_set0_validity.html \
+html/man3/OSSL_CRMF_MSG_set1_regCtrl_regToken.html \
+html/man3/OSSL_CRMF_MSG_set1_regInfo_certReq.html \
+html/man3/OSSL_CRMF_pbmp_new.html \
+html/man3/OSSL_DECODER.html \
+html/man3/OSSL_DECODER_CTX.html \
+html/man3/OSSL_DECODER_CTX_new_for_pkey.html \
+html/man3/OSSL_DECODER_from_bio.html \
+html/man3/OSSL_DISPATCH.html \
+html/man3/OSSL_ENCODER.html \
+html/man3/OSSL_ENCODER_CTX.html \
+html/man3/OSSL_ENCODER_CTX_new_for_pkey.html \
+html/man3/OSSL_ENCODER_to_bio.html \
+html/man3/OSSL_ESS_check_signing_certs.html \
+html/man3/OSSL_HTTP_REQ_CTX.html \
+html/man3/OSSL_HTTP_parse_url.html \
+html/man3/OSSL_HTTP_transfer.html \
+html/man3/OSSL_ITEM.html \
+html/man3/OSSL_LIB_CTX.html \
+html/man3/OSSL_PARAM.html \
+html/man3/OSSL_PARAM_BLD.html \
+html/man3/OSSL_PARAM_allocate_from_text.html \
+html/man3/OSSL_PARAM_dup.html \
+html/man3/OSSL_PARAM_int.html \
+html/man3/OSSL_PROVIDER.html \
+html/man3/OSSL_SELF_TEST_new.html \
+html/man3/OSSL_SELF_TEST_set_callback.html \
+html/man3/OSSL_STORE_INFO.html \
+html/man3/OSSL_STORE_LOADER.html \
+html/man3/OSSL_STORE_SEARCH.html \
+html/man3/OSSL_STORE_attach.html \
+html/man3/OSSL_STORE_expect.html \
+html/man3/OSSL_STORE_open.html \
+html/man3/OSSL_trace_enabled.html \
+html/man3/OSSL_trace_get_category_num.html \
+html/man3/OSSL_trace_set_channel.html \
+html/man3/OpenSSL_add_all_algorithms.html \
+html/man3/OpenSSL_version.html \
+html/man3/PEM_X509_INFO_read_bio_ex.html \
+html/man3/PEM_bytes_read_bio.html \
+html/man3/PEM_read.html \
+html/man3/PEM_read_CMS.html \
+html/man3/PEM_read_bio_PrivateKey.html \
+html/man3/PEM_read_bio_ex.html \
+html/man3/PEM_write_bio_CMS_stream.html \
+html/man3/PEM_write_bio_PKCS7_stream.html \
+html/man3/PKCS12_PBE_keyivgen.html \
+html/man3/PKCS12_SAFEBAG_create_cert.html \
+html/man3/PKCS12_SAFEBAG_get0_attrs.html \
+html/man3/PKCS12_SAFEBAG_get1_cert.html \
+html/man3/PKCS12_add1_attr_by_NID.html \
+html/man3/PKCS12_add_CSPName_asc.html \
+html/man3/PKCS12_add_cert.html \
+html/man3/PKCS12_add_friendlyname_asc.html \
+html/man3/PKCS12_add_localkeyid.html \
+html/man3/PKCS12_add_safe.html \
+html/man3/PKCS12_create.html \
+html/man3/PKCS12_decrypt_skey.html \
+html/man3/PKCS12_gen_mac.html \
+html/man3/PKCS12_get_friendlyname.html \
+html/man3/PKCS12_init.html \
+html/man3/PKCS12_item_decrypt_d2i.html \
+html/man3/PKCS12_key_gen_utf8_ex.html \
+html/man3/PKCS12_newpass.html \
+html/man3/PKCS12_pack_p7encdata.html \
+html/man3/PKCS12_parse.html \
+html/man3/PKCS5_PBE_keyivgen.html \
+html/man3/PKCS5_PBKDF2_HMAC.html \
+html/man3/PKCS7_decrypt.html \
+html/man3/PKCS7_encrypt.html \
+html/man3/PKCS7_get_octet_string.html \
+html/man3/PKCS7_sign.html \
+html/man3/PKCS7_sign_add_signer.html \
+html/man3/PKCS7_type_is_other.html \
+html/man3/PKCS7_verify.html \
+html/man3/PKCS8_encrypt.html \
+html/man3/PKCS8_pkey_add1_attr.html \
+html/man3/RAND_add.html \
+html/man3/RAND_bytes.html \
+html/man3/RAND_cleanup.html \
+html/man3/RAND_egd.html \
+html/man3/RAND_get0_primary.html \
+html/man3/RAND_load_file.html \
+html/man3/RAND_set_DRBG_type.html \
+html/man3/RAND_set_rand_method.html \
+html/man3/RC4_set_key.html \
+html/man3/RIPEMD160_Init.html \
+html/man3/RSA_blinding_on.html \
+html/man3/RSA_check_key.html \
+html/man3/RSA_generate_key.html \
+html/man3/RSA_get0_key.html \
+html/man3/RSA_meth_new.html \
+html/man3/RSA_new.html \
+html/man3/RSA_padding_add_PKCS1_type_1.html \
+html/man3/RSA_print.html \
+html/man3/RSA_private_encrypt.html \
+html/man3/RSA_public_encrypt.html \
+html/man3/RSA_set_method.html \
+html/man3/RSA_sign.html \
+html/man3/RSA_sign_ASN1_OCTET_STRING.html \
+html/man3/RSA_size.html \
+html/man3/SCT_new.html \
+html/man3/SCT_print.html \
+html/man3/SCT_validate.html \
+html/man3/SHA256_Init.html \
+html/man3/SMIME_read_ASN1.html \
+html/man3/SMIME_read_CMS.html \
+html/man3/SMIME_read_PKCS7.html \
+html/man3/SMIME_write_ASN1.html \
+html/man3/SMIME_write_CMS.html \
+html/man3/SMIME_write_PKCS7.html \
+html/man3/SRP_Calc_B.html \
+html/man3/SRP_VBASE_new.html \
+html/man3/SRP_create_verifier.html \
+html/man3/SRP_user_pwd_new.html \
+html/man3/SSL_CIPHER_get_name.html \
+html/man3/SSL_COMP_add_compression_method.html \
+html/man3/SSL_CONF_CTX_new.html \
+html/man3/SSL_CONF_CTX_set1_prefix.html \
+html/man3/SSL_CONF_CTX_set_flags.html \
+html/man3/SSL_CONF_CTX_set_ssl_ctx.html \
+html/man3/SSL_CONF_cmd.html \
+html/man3/SSL_CONF_cmd_argv.html \
+html/man3/SSL_CTX_add1_chain_cert.html \
+html/man3/SSL_CTX_add_extra_chain_cert.html \
+html/man3/SSL_CTX_add_session.html \
+html/man3/SSL_CTX_config.html \
+html/man3/SSL_CTX_ctrl.html \
+html/man3/SSL_CTX_dane_enable.html \
+html/man3/SSL_CTX_flush_sessions.html \
+html/man3/SSL_CTX_free.html \
+html/man3/SSL_CTX_get0_param.html \
+html/man3/SSL_CTX_get_verify_mode.html \
+html/man3/SSL_CTX_has_client_custom_ext.html \
+html/man3/SSL_CTX_load_verify_locations.html \
+html/man3/SSL_CTX_new.html \
+html/man3/SSL_CTX_sess_number.html \
+html/man3/SSL_CTX_sess_set_cache_size.html \
+html/man3/SSL_CTX_sess_set_get_cb.html \
+html/man3/SSL_CTX_sessions.html \
+html/man3/SSL_CTX_set0_CA_list.html \
+html/man3/SSL_CTX_set1_curves.html \
+html/man3/SSL_CTX_set1_sigalgs.html \
+html/man3/SSL_CTX_set1_verify_cert_store.html \
+html/man3/SSL_CTX_set_alpn_select_cb.html \
+html/man3/SSL_CTX_set_cert_cb.html \
+html/man3/SSL_CTX_set_cert_store.html \
+html/man3/SSL_CTX_set_cert_verify_callback.html \
+html/man3/SSL_CTX_set_cipher_list.html \
+html/man3/SSL_CTX_set_client_cert_cb.html \
+html/man3/SSL_CTX_set_client_hello_cb.html \
+html/man3/SSL_CTX_set_ct_validation_callback.html \
+html/man3/SSL_CTX_set_ctlog_list_file.html \
+html/man3/SSL_CTX_set_default_passwd_cb.html \
+html/man3/SSL_CTX_set_generate_session_id.html \
+html/man3/SSL_CTX_set_info_callback.html \
+html/man3/SSL_CTX_set_keylog_callback.html \
+html/man3/SSL_CTX_set_max_cert_list.html \
+html/man3/SSL_CTX_set_min_proto_version.html \
+html/man3/SSL_CTX_set_mode.html \
+html/man3/SSL_CTX_set_msg_callback.html \
+html/man3/SSL_CTX_set_num_tickets.html \
+html/man3/SSL_CTX_set_options.html \
+html/man3/SSL_CTX_set_psk_client_callback.html \
+html/man3/SSL_CTX_set_quiet_shutdown.html \
+html/man3/SSL_CTX_set_read_ahead.html \
+html/man3/SSL_CTX_set_record_padding_callback.html \
+html/man3/SSL_CTX_set_security_level.html \
+html/man3/SSL_CTX_set_session_cache_mode.html \
+html/man3/SSL_CTX_set_session_id_context.html \
+html/man3/SSL_CTX_set_session_ticket_cb.html \
+html/man3/SSL_CTX_set_split_send_fragment.html \
+html/man3/SSL_CTX_set_srp_password.html \
+html/man3/SSL_CTX_set_ssl_version.html \
+html/man3/SSL_CTX_set_stateless_cookie_generate_cb.html \
+html/man3/SSL_CTX_set_timeout.html \
+html/man3/SSL_CTX_set_tlsext_servername_callback.html \
+html/man3/SSL_CTX_set_tlsext_status_cb.html \
+html/man3/SSL_CTX_set_tlsext_ticket_key_cb.html \
+html/man3/SSL_CTX_set_tlsext_use_srtp.html \
+html/man3/SSL_CTX_set_tmp_dh_callback.html \
+html/man3/SSL_CTX_set_tmp_ecdh.html \
+html/man3/SSL_CTX_set_verify.html \
+html/man3/SSL_CTX_use_certificate.html \
+html/man3/SSL_CTX_use_psk_identity_hint.html \
+html/man3/SSL_CTX_use_serverinfo.html \
+html/man3/SSL_SESSION_free.html \
+html/man3/SSL_SESSION_get0_cipher.html \
+html/man3/SSL_SESSION_get0_hostname.html \
+html/man3/SSL_SESSION_get0_id_context.html \
+html/man3/SSL_SESSION_get0_peer.html \
+html/man3/SSL_SESSION_get_compress_id.html \
+html/man3/SSL_SESSION_get_protocol_version.html \
+html/man3/SSL_SESSION_get_time.html \
+html/man3/SSL_SESSION_has_ticket.html \
+html/man3/SSL_SESSION_is_resumable.html \
+html/man3/SSL_SESSION_print.html \
+html/man3/SSL_SESSION_set1_id.html \
+html/man3/SSL_accept.html \
+html/man3/SSL_alert_type_string.html \
+html/man3/SSL_alloc_buffers.html \
+html/man3/SSL_check_chain.html \
+html/man3/SSL_clear.html \
+html/man3/SSL_connect.html \
+html/man3/SSL_do_handshake.html \
+html/man3/SSL_export_keying_material.html \
+html/man3/SSL_extension_supported.html \
+html/man3/SSL_free.html \
+html/man3/SSL_get0_peer_scts.html \
+html/man3/SSL_get_SSL_CTX.html \
+html/man3/SSL_get_all_async_fds.html \
+html/man3/SSL_get_certificate.html \
+html/man3/SSL_get_ciphers.html \
+html/man3/SSL_get_client_random.html \
+html/man3/SSL_get_current_cipher.html \
+html/man3/SSL_get_default_timeout.html \
+html/man3/SSL_get_error.html \
+html/man3/SSL_get_extms_support.html \
+html/man3/SSL_get_fd.html \
+html/man3/SSL_get_peer_cert_chain.html \
+html/man3/SSL_get_peer_certificate.html \
+html/man3/SSL_get_peer_signature_nid.html \
+html/man3/SSL_get_peer_tmp_key.html \
+html/man3/SSL_get_psk_identity.html \
+html/man3/SSL_get_rbio.html \
+html/man3/SSL_get_session.html \
+html/man3/SSL_get_shared_sigalgs.html \
+html/man3/SSL_get_verify_result.html \
+html/man3/SSL_get_version.html \
+html/man3/SSL_group_to_name.html \
+html/man3/SSL_in_init.html \
+html/man3/SSL_key_update.html \
+html/man3/SSL_library_init.html \
+html/man3/SSL_load_client_CA_file.html \
+html/man3/SSL_new.html \
+html/man3/SSL_pending.html \
+html/man3/SSL_read.html \
+html/man3/SSL_read_early_data.html \
+html/man3/SSL_rstate_string.html \
+html/man3/SSL_session_reused.html \
+html/man3/SSL_set1_host.html \
+html/man3/SSL_set_async_callback.html \
+html/man3/SSL_set_bio.html \
+html/man3/SSL_set_connect_state.html \
+html/man3/SSL_set_fd.html \
+html/man3/SSL_set_retry_verify.html \
+html/man3/SSL_set_session.html \
+html/man3/SSL_set_shutdown.html \
+html/man3/SSL_set_verify_result.html \
+html/man3/SSL_shutdown.html \
+html/man3/SSL_state_string.html \
+html/man3/SSL_want.html \
+html/man3/SSL_write.html \
+html/man3/TS_RESP_CTX_new.html \
+html/man3/TS_VERIFY_CTX_set_certs.html \
+html/man3/UI_STRING.html \
+html/man3/UI_UTIL_read_pw.html \
+html/man3/UI_create_method.html \
+html/man3/UI_new.html \
+html/man3/X509V3_get_d2i.html \
+html/man3/X509V3_set_ctx.html \
+html/man3/X509_ALGOR_dup.html \
+html/man3/X509_ATTRIBUTE.html \
+html/man3/X509_CRL_get0_by_serial.html \
+html/man3/X509_EXTENSION_set_object.html \
+html/man3/X509_LOOKUP.html \
+html/man3/X509_LOOKUP_hash_dir.html \
+html/man3/X509_LOOKUP_meth_new.html \
+html/man3/X509_NAME_ENTRY_get_object.html \
+html/man3/X509_NAME_add_entry_by_txt.html \
+html/man3/X509_NAME_get0_der.html \
+html/man3/X509_NAME_get_index_by_NID.html \
+html/man3/X509_NAME_print_ex.html \
+html/man3/X509_PUBKEY_new.html \
+html/man3/X509_REQ_get_attr.html \
+html/man3/X509_REQ_get_extensions.html \
+html/man3/X509_SIG_get0.html \
+html/man3/X509_STORE_CTX_get_error.html \
+html/man3/X509_STORE_CTX_new.html \
+html/man3/X509_STORE_CTX_set_verify_cb.html \
+html/man3/X509_STORE_add_cert.html \
+html/man3/X509_STORE_get0_param.html \
+html/man3/X509_STORE_new.html \
+html/man3/X509_STORE_set_verify_cb_func.html \
+html/man3/X509_VERIFY_PARAM_set_flags.html \
+html/man3/X509_add_cert.html \
+html/man3/X509_check_ca.html \
+html/man3/X509_check_host.html \
+html/man3/X509_check_issued.html \
+html/man3/X509_check_private_key.html \
+html/man3/X509_check_purpose.html \
+html/man3/X509_cmp.html \
+html/man3/X509_cmp_time.html \
+html/man3/X509_digest.html \
+html/man3/X509_dup.html \
+html/man3/X509_get0_distinguishing_id.html \
+html/man3/X509_get0_notBefore.html \
+html/man3/X509_get0_signature.html \
+html/man3/X509_get0_uids.html \
+html/man3/X509_get_extension_flags.html \
+html/man3/X509_get_pubkey.html \
+html/man3/X509_get_serialNumber.html \
+html/man3/X509_get_subject_name.html \
+html/man3/X509_get_version.html \
+html/man3/X509_load_http.html \
+html/man3/X509_new.html \
+html/man3/X509_sign.html \
+html/man3/X509_verify.html \
+html/man3/X509_verify_cert.html \
+html/man3/X509v3_get_ext_by_NID.html \
+html/man3/b2i_PVK_bio_ex.html \
+html/man3/d2i_PKCS8PrivateKey_bio.html \
+html/man3/d2i_PrivateKey.html \
+html/man3/d2i_RSAPrivateKey.html \
+html/man3/d2i_SSL_SESSION.html \
+html/man3/d2i_X509.html \
+html/man3/i2d_CMS_bio_stream.html \
+html/man3/i2d_PKCS7_bio_stream.html \
+html/man3/i2d_re_X509_tbs.html \
+html/man3/o2i_SCT_LIST.html \
+html/man3/s2i_ASN1_IA5STRING.html
+MANDOCS[man3]=man/man3/ADMISSIONS.3 \
+man/man3/ASN1_EXTERN_FUNCS.3 \
+man/man3/ASN1_INTEGER_get_int64.3 \
+man/man3/ASN1_INTEGER_new.3 \
+man/man3/ASN1_ITEM_lookup.3 \
+man/man3/ASN1_OBJECT_new.3 \
+man/man3/ASN1_STRING_TABLE_add.3 \
+man/man3/ASN1_STRING_length.3 \
+man/man3/ASN1_STRING_new.3 \
+man/man3/ASN1_STRING_print_ex.3 \
+man/man3/ASN1_TIME_set.3 \
+man/man3/ASN1_TYPE_get.3 \
+man/man3/ASN1_aux_cb.3 \
+man/man3/ASN1_generate_nconf.3 \
+man/man3/ASN1_item_d2i_bio.3 \
+man/man3/ASN1_item_new.3 \
+man/man3/ASN1_item_sign.3 \
+man/man3/ASYNC_WAIT_CTX_new.3 \
+man/man3/ASYNC_start_job.3 \
+man/man3/BF_encrypt.3 \
+man/man3/BIO_ADDR.3 \
+man/man3/BIO_ADDRINFO.3 \
+man/man3/BIO_connect.3 \
+man/man3/BIO_ctrl.3 \
+man/man3/BIO_f_base64.3 \
+man/man3/BIO_f_buffer.3 \
+man/man3/BIO_f_cipher.3 \
+man/man3/BIO_f_md.3 \
+man/man3/BIO_f_null.3 \
+man/man3/BIO_f_prefix.3 \
+man/man3/BIO_f_readbuffer.3 \
+man/man3/BIO_f_ssl.3 \
+man/man3/BIO_find_type.3 \
+man/man3/BIO_get_data.3 \
+man/man3/BIO_get_ex_new_index.3 \
+man/man3/BIO_meth_new.3 \
+man/man3/BIO_new.3 \
+man/man3/BIO_new_CMS.3 \
+man/man3/BIO_parse_hostserv.3 \
+man/man3/BIO_printf.3 \
+man/man3/BIO_push.3 \
+man/man3/BIO_read.3 \
+man/man3/BIO_s_accept.3 \
+man/man3/BIO_s_bio.3 \
+man/man3/BIO_s_connect.3 \
+man/man3/BIO_s_core.3 \
+man/man3/BIO_s_datagram.3 \
+man/man3/BIO_s_fd.3 \
+man/man3/BIO_s_file.3 \
+man/man3/BIO_s_mem.3 \
+man/man3/BIO_s_null.3 \
+man/man3/BIO_s_socket.3 \
+man/man3/BIO_set_callback.3 \
+man/man3/BIO_should_retry.3 \
+man/man3/BIO_socket_wait.3 \
+man/man3/BN_BLINDING_new.3 \
+man/man3/BN_CTX_new.3 \
+man/man3/BN_CTX_start.3 \
+man/man3/BN_add.3 \
+man/man3/BN_add_word.3 \
+man/man3/BN_bn2bin.3 \
+man/man3/BN_cmp.3 \
+man/man3/BN_copy.3 \
+man/man3/BN_generate_prime.3 \
+man/man3/BN_mod_exp_mont.3 \
+man/man3/BN_mod_inverse.3 \
+man/man3/BN_mod_mul_montgomery.3 \
+man/man3/BN_mod_mul_reciprocal.3 \
+man/man3/BN_new.3 \
+man/man3/BN_num_bytes.3 \
+man/man3/BN_rand.3 \
+man/man3/BN_security_bits.3 \
+man/man3/BN_set_bit.3 \
+man/man3/BN_swap.3 \
+man/man3/BN_zero.3 \
+man/man3/BUF_MEM_new.3 \
+man/man3/CMS_EncryptedData_decrypt.3 \
+man/man3/CMS_EncryptedData_encrypt.3 \
+man/man3/CMS_EnvelopedData_create.3 \
+man/man3/CMS_add0_cert.3 \
+man/man3/CMS_add1_recipient_cert.3 \
+man/man3/CMS_add1_signer.3 \
+man/man3/CMS_compress.3 \
+man/man3/CMS_data_create.3 \
+man/man3/CMS_decrypt.3 \
+man/man3/CMS_digest_create.3 \
+man/man3/CMS_encrypt.3 \
+man/man3/CMS_final.3 \
+man/man3/CMS_get0_RecipientInfos.3 \
+man/man3/CMS_get0_SignerInfos.3 \
+man/man3/CMS_get0_type.3 \
+man/man3/CMS_get1_ReceiptRequest.3 \
+man/man3/CMS_sign.3 \
+man/man3/CMS_sign_receipt.3 \
+man/man3/CMS_signed_get_attr.3 \
+man/man3/CMS_uncompress.3 \
+man/man3/CMS_verify.3 \
+man/man3/CMS_verify_receipt.3 \
+man/man3/CONF_modules_free.3 \
+man/man3/CONF_modules_load_file.3 \
+man/man3/CRYPTO_THREAD_run_once.3 \
+man/man3/CRYPTO_get_ex_new_index.3 \
+man/man3/CRYPTO_memcmp.3 \
+man/man3/CTLOG_STORE_get0_log_by_id.3 \
+man/man3/CTLOG_STORE_new.3 \
+man/man3/CTLOG_new.3 \
+man/man3/CT_POLICY_EVAL_CTX_new.3 \
+man/man3/DEFINE_STACK_OF.3 \
+man/man3/DES_random_key.3 \
+man/man3/DH_generate_key.3 \
+man/man3/DH_generate_parameters.3 \
+man/man3/DH_get0_pqg.3 \
+man/man3/DH_get_1024_160.3 \
+man/man3/DH_meth_new.3 \
+man/man3/DH_new.3 \
+man/man3/DH_new_by_nid.3 \
+man/man3/DH_set_method.3 \
+man/man3/DH_size.3 \
+man/man3/DSA_SIG_new.3 \
+man/man3/DSA_do_sign.3 \
+man/man3/DSA_dup_DH.3 \
+man/man3/DSA_generate_key.3 \
+man/man3/DSA_generate_parameters.3 \
+man/man3/DSA_get0_pqg.3 \
+man/man3/DSA_meth_new.3 \
+man/man3/DSA_new.3 \
+man/man3/DSA_set_method.3 \
+man/man3/DSA_sign.3 \
+man/man3/DSA_size.3 \
+man/man3/DTLS_get_data_mtu.3 \
+man/man3/DTLS_set_timer_cb.3 \
+man/man3/DTLSv1_listen.3 \
+man/man3/ECDSA_SIG_new.3 \
+man/man3/ECDSA_sign.3 \
+man/man3/ECPKParameters_print.3 \
+man/man3/EC_GFp_simple_method.3 \
+man/man3/EC_GROUP_copy.3 \
+man/man3/EC_GROUP_new.3 \
+man/man3/EC_KEY_get_enc_flags.3 \
+man/man3/EC_KEY_new.3 \
+man/man3/EC_POINT_add.3 \
+man/man3/EC_POINT_new.3 \
+man/man3/ENGINE_add.3 \
+man/man3/ERR_GET_LIB.3 \
+man/man3/ERR_clear_error.3 \
+man/man3/ERR_error_string.3 \
+man/man3/ERR_get_error.3 \
+man/man3/ERR_load_crypto_strings.3 \
+man/man3/ERR_load_strings.3 \
+man/man3/ERR_new.3 \
+man/man3/ERR_print_errors.3 \
+man/man3/ERR_put_error.3 \
+man/man3/ERR_remove_state.3 \
+man/man3/ERR_set_mark.3 \
+man/man3/EVP_ASYM_CIPHER_free.3 \
+man/man3/EVP_BytesToKey.3 \
+man/man3/EVP_CIPHER_CTX_get_cipher_data.3 \
+man/man3/EVP_CIPHER_CTX_get_original_iv.3 \
+man/man3/EVP_CIPHER_meth_new.3 \
+man/man3/EVP_DigestInit.3 \
+man/man3/EVP_DigestSignInit.3 \
+man/man3/EVP_DigestVerifyInit.3 \
+man/man3/EVP_EncodeInit.3 \
+man/man3/EVP_EncryptInit.3 \
+man/man3/EVP_KDF.3 \
+man/man3/EVP_KEM_free.3 \
+man/man3/EVP_KEYEXCH_free.3 \
+man/man3/EVP_KEYMGMT.3 \
+man/man3/EVP_MAC.3 \
+man/man3/EVP_MD_meth_new.3 \
+man/man3/EVP_OpenInit.3 \
+man/man3/EVP_PBE_CipherInit.3 \
+man/man3/EVP_PKEY2PKCS8.3 \
+man/man3/EVP_PKEY_ASN1_METHOD.3 \
+man/man3/EVP_PKEY_CTX_ctrl.3 \
+man/man3/EVP_PKEY_CTX_get0_libctx.3 \
+man/man3/EVP_PKEY_CTX_get0_pkey.3 \
+man/man3/EVP_PKEY_CTX_new.3 \
+man/man3/EVP_PKEY_CTX_set1_pbe_pass.3 \
+man/man3/EVP_PKEY_CTX_set_hkdf_md.3 \
+man/man3/EVP_PKEY_CTX_set_params.3 \
+man/man3/EVP_PKEY_CTX_set_rsa_pss_keygen_md.3 \
+man/man3/EVP_PKEY_CTX_set_scrypt_N.3 \
+man/man3/EVP_PKEY_CTX_set_tls1_prf_md.3 \
+man/man3/EVP_PKEY_asn1_get_count.3 \
+man/man3/EVP_PKEY_check.3 \
+man/man3/EVP_PKEY_copy_parameters.3 \
+man/man3/EVP_PKEY_decapsulate.3 \
+man/man3/EVP_PKEY_decrypt.3 \
+man/man3/EVP_PKEY_derive.3 \
+man/man3/EVP_PKEY_digestsign_supports_digest.3 \
+man/man3/EVP_PKEY_encapsulate.3 \
+man/man3/EVP_PKEY_encrypt.3 \
+man/man3/EVP_PKEY_fromdata.3 \
+man/man3/EVP_PKEY_get_attr.3 \
+man/man3/EVP_PKEY_get_default_digest_nid.3 \
+man/man3/EVP_PKEY_get_field_type.3 \
+man/man3/EVP_PKEY_get_group_name.3 \
+man/man3/EVP_PKEY_get_size.3 \
+man/man3/EVP_PKEY_gettable_params.3 \
+man/man3/EVP_PKEY_is_a.3 \
+man/man3/EVP_PKEY_keygen.3 \
+man/man3/EVP_PKEY_meth_get_count.3 \
+man/man3/EVP_PKEY_meth_new.3 \
+man/man3/EVP_PKEY_new.3 \
+man/man3/EVP_PKEY_print_private.3 \
+man/man3/EVP_PKEY_set1_RSA.3 \
+man/man3/EVP_PKEY_set1_encoded_public_key.3 \
+man/man3/EVP_PKEY_set_type.3 \
+man/man3/EVP_PKEY_settable_params.3 \
+man/man3/EVP_PKEY_sign.3 \
+man/man3/EVP_PKEY_todata.3 \
+man/man3/EVP_PKEY_verify.3 \
+man/man3/EVP_PKEY_verify_recover.3 \
+man/man3/EVP_RAND.3 \
+man/man3/EVP_SIGNATURE.3 \
+man/man3/EVP_SealInit.3 \
+man/man3/EVP_SignInit.3 \
+man/man3/EVP_VerifyInit.3 \
+man/man3/EVP_aes_128_gcm.3 \
+man/man3/EVP_aria_128_gcm.3 \
+man/man3/EVP_bf_cbc.3 \
+man/man3/EVP_blake2b512.3 \
+man/man3/EVP_camellia_128_ecb.3 \
+man/man3/EVP_cast5_cbc.3 \
+man/man3/EVP_chacha20.3 \
+man/man3/EVP_des_cbc.3 \
+man/man3/EVP_desx_cbc.3 \
+man/man3/EVP_idea_cbc.3 \
+man/man3/EVP_md2.3 \
+man/man3/EVP_md4.3 \
+man/man3/EVP_md5.3 \
+man/man3/EVP_mdc2.3 \
+man/man3/EVP_rc2_cbc.3 \
+man/man3/EVP_rc4.3 \
+man/man3/EVP_rc5_32_12_16_cbc.3 \
+man/man3/EVP_ripemd160.3 \
+man/man3/EVP_seed_cbc.3 \
+man/man3/EVP_set_default_properties.3 \
+man/man3/EVP_sha1.3 \
+man/man3/EVP_sha224.3 \
+man/man3/EVP_sha3_224.3 \
+man/man3/EVP_sm3.3 \
+man/man3/EVP_sm4_cbc.3 \
+man/man3/EVP_whirlpool.3 \
+man/man3/HMAC.3 \
+man/man3/MD5.3 \
+man/man3/MDC2_Init.3 \
+man/man3/NCONF_new_ex.3 \
+man/man3/OBJ_nid2obj.3 \
+man/man3/OCSP_REQUEST_new.3 \
+man/man3/OCSP_cert_to_id.3 \
+man/man3/OCSP_request_add1_nonce.3 \
+man/man3/OCSP_resp_find_status.3 \
+man/man3/OCSP_response_status.3 \
+man/man3/OCSP_sendreq_new.3 \
+man/man3/OPENSSL_Applink.3 \
+man/man3/OPENSSL_FILE.3 \
+man/man3/OPENSSL_LH_COMPFUNC.3 \
+man/man3/OPENSSL_LH_stats.3 \
+man/man3/OPENSSL_config.3 \
+man/man3/OPENSSL_fork_prepare.3 \
+man/man3/OPENSSL_gmtime.3 \
+man/man3/OPENSSL_hexchar2int.3 \
+man/man3/OPENSSL_ia32cap.3 \
+man/man3/OPENSSL_init_crypto.3 \
+man/man3/OPENSSL_init_ssl.3 \
+man/man3/OPENSSL_instrument_bus.3 \
+man/man3/OPENSSL_load_builtin_modules.3 \
+man/man3/OPENSSL_malloc.3 \
+man/man3/OPENSSL_s390xcap.3 \
+man/man3/OPENSSL_secure_malloc.3 \
+man/man3/OPENSSL_strcasecmp.3 \
+man/man3/OSSL_ALGORITHM.3 \
+man/man3/OSSL_CALLBACK.3 \
+man/man3/OSSL_CMP_CTX_new.3 \
+man/man3/OSSL_CMP_HDR_get0_transactionID.3 \
+man/man3/OSSL_CMP_ITAV_set0.3 \
+man/man3/OSSL_CMP_MSG_get0_header.3 \
+man/man3/OSSL_CMP_MSG_http_perform.3 \
+man/man3/OSSL_CMP_SRV_CTX_new.3 \
+man/man3/OSSL_CMP_STATUSINFO_new.3 \
+man/man3/OSSL_CMP_exec_certreq.3 \
+man/man3/OSSL_CMP_log_open.3 \
+man/man3/OSSL_CMP_validate_msg.3 \
+man/man3/OSSL_CORE_MAKE_FUNC.3 \
+man/man3/OSSL_CRMF_MSG_get0_tmpl.3 \
+man/man3/OSSL_CRMF_MSG_set0_validity.3 \
+man/man3/OSSL_CRMF_MSG_set1_regCtrl_regToken.3 \
+man/man3/OSSL_CRMF_MSG_set1_regInfo_certReq.3 \
+man/man3/OSSL_CRMF_pbmp_new.3 \
+man/man3/OSSL_DECODER.3 \
+man/man3/OSSL_DECODER_CTX.3 \
+man/man3/OSSL_DECODER_CTX_new_for_pkey.3 \
+man/man3/OSSL_DECODER_from_bio.3 \
+man/man3/OSSL_DISPATCH.3 \
+man/man3/OSSL_ENCODER.3 \
+man/man3/OSSL_ENCODER_CTX.3 \
+man/man3/OSSL_ENCODER_CTX_new_for_pkey.3 \
+man/man3/OSSL_ENCODER_to_bio.3 \
+man/man3/OSSL_ESS_check_signing_certs.3 \
+man/man3/OSSL_HTTP_REQ_CTX.3 \
+man/man3/OSSL_HTTP_parse_url.3 \
+man/man3/OSSL_HTTP_transfer.3 \
+man/man3/OSSL_ITEM.3 \
+man/man3/OSSL_LIB_CTX.3 \
+man/man3/OSSL_PARAM.3 \
+man/man3/OSSL_PARAM_BLD.3 \
+man/man3/OSSL_PARAM_allocate_from_text.3 \
+man/man3/OSSL_PARAM_dup.3 \
+man/man3/OSSL_PARAM_int.3 \
+man/man3/OSSL_PROVIDER.3 \
+man/man3/OSSL_SELF_TEST_new.3 \
+man/man3/OSSL_SELF_TEST_set_callback.3 \
+man/man3/OSSL_STORE_INFO.3 \
+man/man3/OSSL_STORE_LOADER.3 \
+man/man3/OSSL_STORE_SEARCH.3 \
+man/man3/OSSL_STORE_attach.3 \
+man/man3/OSSL_STORE_expect.3 \
+man/man3/OSSL_STORE_open.3 \
+man/man3/OSSL_trace_enabled.3 \
+man/man3/OSSL_trace_get_category_num.3 \
+man/man3/OSSL_trace_set_channel.3 \
+man/man3/OpenSSL_add_all_algorithms.3 \
+man/man3/OpenSSL_version.3 \
+man/man3/PEM_X509_INFO_read_bio_ex.3 \
+man/man3/PEM_bytes_read_bio.3 \
+man/man3/PEM_read.3 \
+man/man3/PEM_read_CMS.3 \
+man/man3/PEM_read_bio_PrivateKey.3 \
+man/man3/PEM_read_bio_ex.3 \
+man/man3/PEM_write_bio_CMS_stream.3 \
+man/man3/PEM_write_bio_PKCS7_stream.3 \
+man/man3/PKCS12_PBE_keyivgen.3 \
+man/man3/PKCS12_SAFEBAG_create_cert.3 \
+man/man3/PKCS12_SAFEBAG_get0_attrs.3 \
+man/man3/PKCS12_SAFEBAG_get1_cert.3 \
+man/man3/PKCS12_add1_attr_by_NID.3 \
+man/man3/PKCS12_add_CSPName_asc.3 \
+man/man3/PKCS12_add_cert.3 \
+man/man3/PKCS12_add_friendlyname_asc.3 \
+man/man3/PKCS12_add_localkeyid.3 \
+man/man3/PKCS12_add_safe.3 \
+man/man3/PKCS12_create.3 \
+man/man3/PKCS12_decrypt_skey.3 \
+man/man3/PKCS12_gen_mac.3 \
+man/man3/PKCS12_get_friendlyname.3 \
+man/man3/PKCS12_init.3 \
+man/man3/PKCS12_item_decrypt_d2i.3 \
+man/man3/PKCS12_key_gen_utf8_ex.3 \
+man/man3/PKCS12_newpass.3 \
+man/man3/PKCS12_pack_p7encdata.3 \
+man/man3/PKCS12_parse.3 \
+man/man3/PKCS5_PBE_keyivgen.3 \
+man/man3/PKCS5_PBKDF2_HMAC.3 \
+man/man3/PKCS7_decrypt.3 \
+man/man3/PKCS7_encrypt.3 \
+man/man3/PKCS7_get_octet_string.3 \
+man/man3/PKCS7_sign.3 \
+man/man3/PKCS7_sign_add_signer.3 \
+man/man3/PKCS7_type_is_other.3 \
+man/man3/PKCS7_verify.3 \
+man/man3/PKCS8_encrypt.3 \
+man/man3/PKCS8_pkey_add1_attr.3 \
+man/man3/RAND_add.3 \
+man/man3/RAND_bytes.3 \
+man/man3/RAND_cleanup.3 \
+man/man3/RAND_egd.3 \
+man/man3/RAND_get0_primary.3 \
+man/man3/RAND_load_file.3 \
+man/man3/RAND_set_DRBG_type.3 \
+man/man3/RAND_set_rand_method.3 \
+man/man3/RC4_set_key.3 \
+man/man3/RIPEMD160_Init.3 \
+man/man3/RSA_blinding_on.3 \
+man/man3/RSA_check_key.3 \
+man/man3/RSA_generate_key.3 \
+man/man3/RSA_get0_key.3 \
+man/man3/RSA_meth_new.3 \
+man/man3/RSA_new.3 \
+man/man3/RSA_padding_add_PKCS1_type_1.3 \
+man/man3/RSA_print.3 \
+man/man3/RSA_private_encrypt.3 \
+man/man3/RSA_public_encrypt.3 \
+man/man3/RSA_set_method.3 \
+man/man3/RSA_sign.3 \
+man/man3/RSA_sign_ASN1_OCTET_STRING.3 \
+man/man3/RSA_size.3 \
+man/man3/SCT_new.3 \
+man/man3/SCT_print.3 \
+man/man3/SCT_validate.3 \
+man/man3/SHA256_Init.3 \
+man/man3/SMIME_read_ASN1.3 \
+man/man3/SMIME_read_CMS.3 \
+man/man3/SMIME_read_PKCS7.3 \
+man/man3/SMIME_write_ASN1.3 \
+man/man3/SMIME_write_CMS.3 \
+man/man3/SMIME_write_PKCS7.3 \
+man/man3/SRP_Calc_B.3 \
+man/man3/SRP_VBASE_new.3 \
+man/man3/SRP_create_verifier.3 \
+man/man3/SRP_user_pwd_new.3 \
+man/man3/SSL_CIPHER_get_name.3 \
+man/man3/SSL_COMP_add_compression_method.3 \
+man/man3/SSL_CONF_CTX_new.3 \
+man/man3/SSL_CONF_CTX_set1_prefix.3 \
+man/man3/SSL_CONF_CTX_set_flags.3 \
+man/man3/SSL_CONF_CTX_set_ssl_ctx.3 \
+man/man3/SSL_CONF_cmd.3 \
+man/man3/SSL_CONF_cmd_argv.3 \
+man/man3/SSL_CTX_add1_chain_cert.3 \
+man/man3/SSL_CTX_add_extra_chain_cert.3 \
+man/man3/SSL_CTX_add_session.3 \
+man/man3/SSL_CTX_config.3 \
+man/man3/SSL_CTX_ctrl.3 \
+man/man3/SSL_CTX_dane_enable.3 \
+man/man3/SSL_CTX_flush_sessions.3 \
+man/man3/SSL_CTX_free.3 \
+man/man3/SSL_CTX_get0_param.3 \
+man/man3/SSL_CTX_get_verify_mode.3 \
+man/man3/SSL_CTX_has_client_custom_ext.3 \
+man/man3/SSL_CTX_load_verify_locations.3 \
+man/man3/SSL_CTX_new.3 \
+man/man3/SSL_CTX_sess_number.3 \
+man/man3/SSL_CTX_sess_set_cache_size.3 \
+man/man3/SSL_CTX_sess_set_get_cb.3 \
+man/man3/SSL_CTX_sessions.3 \
+man/man3/SSL_CTX_set0_CA_list.3 \
+man/man3/SSL_CTX_set1_curves.3 \
+man/man3/SSL_CTX_set1_sigalgs.3 \
+man/man3/SSL_CTX_set1_verify_cert_store.3 \
+man/man3/SSL_CTX_set_alpn_select_cb.3 \
+man/man3/SSL_CTX_set_cert_cb.3 \
+man/man3/SSL_CTX_set_cert_store.3 \
+man/man3/SSL_CTX_set_cert_verify_callback.3 \
+man/man3/SSL_CTX_set_cipher_list.3 \
+man/man3/SSL_CTX_set_client_cert_cb.3 \
+man/man3/SSL_CTX_set_client_hello_cb.3 \
+man/man3/SSL_CTX_set_ct_validation_callback.3 \
+man/man3/SSL_CTX_set_ctlog_list_file.3 \
+man/man3/SSL_CTX_set_default_passwd_cb.3 \
+man/man3/SSL_CTX_set_generate_session_id.3 \
+man/man3/SSL_CTX_set_info_callback.3 \
+man/man3/SSL_CTX_set_keylog_callback.3 \
+man/man3/SSL_CTX_set_max_cert_list.3 \
+man/man3/SSL_CTX_set_min_proto_version.3 \
+man/man3/SSL_CTX_set_mode.3 \
+man/man3/SSL_CTX_set_msg_callback.3 \
+man/man3/SSL_CTX_set_num_tickets.3 \
+man/man3/SSL_CTX_set_options.3 \
+man/man3/SSL_CTX_set_psk_client_callback.3 \
+man/man3/SSL_CTX_set_quiet_shutdown.3 \
+man/man3/SSL_CTX_set_read_ahead.3 \
+man/man3/SSL_CTX_set_record_padding_callback.3 \
+man/man3/SSL_CTX_set_security_level.3 \
+man/man3/SSL_CTX_set_session_cache_mode.3 \
+man/man3/SSL_CTX_set_session_id_context.3 \
+man/man3/SSL_CTX_set_session_ticket_cb.3 \
+man/man3/SSL_CTX_set_split_send_fragment.3 \
+man/man3/SSL_CTX_set_srp_password.3 \
+man/man3/SSL_CTX_set_ssl_version.3 \
+man/man3/SSL_CTX_set_stateless_cookie_generate_cb.3 \
+man/man3/SSL_CTX_set_timeout.3 \
+man/man3/SSL_CTX_set_tlsext_servername_callback.3 \
+man/man3/SSL_CTX_set_tlsext_status_cb.3 \
+man/man3/SSL_CTX_set_tlsext_ticket_key_cb.3 \
+man/man3/SSL_CTX_set_tlsext_use_srtp.3 \
+man/man3/SSL_CTX_set_tmp_dh_callback.3 \
+man/man3/SSL_CTX_set_tmp_ecdh.3 \
+man/man3/SSL_CTX_set_verify.3 \
+man/man3/SSL_CTX_use_certificate.3 \
+man/man3/SSL_CTX_use_psk_identity_hint.3 \
+man/man3/SSL_CTX_use_serverinfo.3 \
+man/man3/SSL_SESSION_free.3 \
+man/man3/SSL_SESSION_get0_cipher.3 \
+man/man3/SSL_SESSION_get0_hostname.3 \
+man/man3/SSL_SESSION_get0_id_context.3 \
+man/man3/SSL_SESSION_get0_peer.3 \
+man/man3/SSL_SESSION_get_compress_id.3 \
+man/man3/SSL_SESSION_get_protocol_version.3 \
+man/man3/SSL_SESSION_get_time.3 \
+man/man3/SSL_SESSION_has_ticket.3 \
+man/man3/SSL_SESSION_is_resumable.3 \
+man/man3/SSL_SESSION_print.3 \
+man/man3/SSL_SESSION_set1_id.3 \
+man/man3/SSL_accept.3 \
+man/man3/SSL_alert_type_string.3 \
+man/man3/SSL_alloc_buffers.3 \
+man/man3/SSL_check_chain.3 \
+man/man3/SSL_clear.3 \
+man/man3/SSL_connect.3 \
+man/man3/SSL_do_handshake.3 \
+man/man3/SSL_export_keying_material.3 \
+man/man3/SSL_extension_supported.3 \
+man/man3/SSL_free.3 \
+man/man3/SSL_get0_peer_scts.3 \
+man/man3/SSL_get_SSL_CTX.3 \
+man/man3/SSL_get_all_async_fds.3 \
+man/man3/SSL_get_certificate.3 \
+man/man3/SSL_get_ciphers.3 \
+man/man3/SSL_get_client_random.3 \
+man/man3/SSL_get_current_cipher.3 \
+man/man3/SSL_get_default_timeout.3 \
+man/man3/SSL_get_error.3 \
+man/man3/SSL_get_extms_support.3 \
+man/man3/SSL_get_fd.3 \
+man/man3/SSL_get_peer_cert_chain.3 \
+man/man3/SSL_get_peer_certificate.3 \
+man/man3/SSL_get_peer_signature_nid.3 \
+man/man3/SSL_get_peer_tmp_key.3 \
+man/man3/SSL_get_psk_identity.3 \
+man/man3/SSL_get_rbio.3 \
+man/man3/SSL_get_session.3 \
+man/man3/SSL_get_shared_sigalgs.3 \
+man/man3/SSL_get_verify_result.3 \
+man/man3/SSL_get_version.3 \
+man/man3/SSL_group_to_name.3 \
+man/man3/SSL_in_init.3 \
+man/man3/SSL_key_update.3 \
+man/man3/SSL_library_init.3 \
+man/man3/SSL_load_client_CA_file.3 \
+man/man3/SSL_new.3 \
+man/man3/SSL_pending.3 \
+man/man3/SSL_read.3 \
+man/man3/SSL_read_early_data.3 \
+man/man3/SSL_rstate_string.3 \
+man/man3/SSL_session_reused.3 \
+man/man3/SSL_set1_host.3 \
+man/man3/SSL_set_async_callback.3 \
+man/man3/SSL_set_bio.3 \
+man/man3/SSL_set_connect_state.3 \
+man/man3/SSL_set_fd.3 \
+man/man3/SSL_set_retry_verify.3 \
+man/man3/SSL_set_session.3 \
+man/man3/SSL_set_shutdown.3 \
+man/man3/SSL_set_verify_result.3 \
+man/man3/SSL_shutdown.3 \
+man/man3/SSL_state_string.3 \
+man/man3/SSL_want.3 \
+man/man3/SSL_write.3 \
+man/man3/TS_RESP_CTX_new.3 \
+man/man3/TS_VERIFY_CTX_set_certs.3 \
+man/man3/UI_STRING.3 \
+man/man3/UI_UTIL_read_pw.3 \
+man/man3/UI_create_method.3 \
+man/man3/UI_new.3 \
+man/man3/X509V3_get_d2i.3 \
+man/man3/X509V3_set_ctx.3 \
+man/man3/X509_ALGOR_dup.3 \
+man/man3/X509_ATTRIBUTE.3 \
+man/man3/X509_CRL_get0_by_serial.3 \
+man/man3/X509_EXTENSION_set_object.3 \
+man/man3/X509_LOOKUP.3 \
+man/man3/X509_LOOKUP_hash_dir.3 \
+man/man3/X509_LOOKUP_meth_new.3 \
+man/man3/X509_NAME_ENTRY_get_object.3 \
+man/man3/X509_NAME_add_entry_by_txt.3 \
+man/man3/X509_NAME_get0_der.3 \
+man/man3/X509_NAME_get_index_by_NID.3 \
+man/man3/X509_NAME_print_ex.3 \
+man/man3/X509_PUBKEY_new.3 \
+man/man3/X509_REQ_get_attr.3 \
+man/man3/X509_REQ_get_extensions.3 \
+man/man3/X509_SIG_get0.3 \
+man/man3/X509_STORE_CTX_get_error.3 \
+man/man3/X509_STORE_CTX_new.3 \
+man/man3/X509_STORE_CTX_set_verify_cb.3 \
+man/man3/X509_STORE_add_cert.3 \
+man/man3/X509_STORE_get0_param.3 \
+man/man3/X509_STORE_new.3 \
+man/man3/X509_STORE_set_verify_cb_func.3 \
+man/man3/X509_VERIFY_PARAM_set_flags.3 \
+man/man3/X509_add_cert.3 \
+man/man3/X509_check_ca.3 \
+man/man3/X509_check_host.3 \
+man/man3/X509_check_issued.3 \
+man/man3/X509_check_private_key.3 \
+man/man3/X509_check_purpose.3 \
+man/man3/X509_cmp.3 \
+man/man3/X509_cmp_time.3 \
+man/man3/X509_digest.3 \
+man/man3/X509_dup.3 \
+man/man3/X509_get0_distinguishing_id.3 \
+man/man3/X509_get0_notBefore.3 \
+man/man3/X509_get0_signature.3 \
+man/man3/X509_get0_uids.3 \
+man/man3/X509_get_extension_flags.3 \
+man/man3/X509_get_pubkey.3 \
+man/man3/X509_get_serialNumber.3 \
+man/man3/X509_get_subject_name.3 \
+man/man3/X509_get_version.3 \
+man/man3/X509_load_http.3 \
+man/man3/X509_new.3 \
+man/man3/X509_sign.3 \
+man/man3/X509_verify.3 \
+man/man3/X509_verify_cert.3 \
+man/man3/X509v3_get_ext_by_NID.3 \
+man/man3/b2i_PVK_bio_ex.3 \
+man/man3/d2i_PKCS8PrivateKey_bio.3 \
+man/man3/d2i_PrivateKey.3 \
+man/man3/d2i_RSAPrivateKey.3 \
+man/man3/d2i_SSL_SESSION.3 \
+man/man3/d2i_X509.3 \
+man/man3/i2d_CMS_bio_stream.3 \
+man/man3/i2d_PKCS7_bio_stream.3 \
+man/man3/i2d_re_X509_tbs.3 \
+man/man3/o2i_SCT_LIST.3 \
+man/man3/s2i_ASN1_IA5STRING.3
+DEPEND[html/man5/config.html]=man5/config.pod
+GENERATE[html/man5/config.html]=man5/config.pod
+DEPEND[man/man5/config.5]=man5/config.pod
+GENERATE[man/man5/config.5]=man5/config.pod
+DEPEND[html/man5/fips_config.html]=man5/fips_config.pod
+GENERATE[html/man5/fips_config.html]=man5/fips_config.pod
+DEPEND[man/man5/fips_config.5]=man5/fips_config.pod
+GENERATE[man/man5/fips_config.5]=man5/fips_config.pod
+DEPEND[html/man5/x509v3_config.html]=man5/x509v3_config.pod
+GENERATE[html/man5/x509v3_config.html]=man5/x509v3_config.pod
+DEPEND[man/man5/x509v3_config.5]=man5/x509v3_config.pod
+GENERATE[man/man5/x509v3_config.5]=man5/x509v3_config.pod
+IMAGEDOCS[man5]=
+HTMLDOCS[man5]=html/man5/config.html \
+html/man5/fips_config.html \
+html/man5/x509v3_config.html
+MANDOCS[man5]=man/man5/config.5 \
+man/man5/fips_config.5 \
+man/man5/x509v3_config.5
+DEPEND[html/man7/EVP_ASYM_CIPHER-RSA.html]=man7/EVP_ASYM_CIPHER-RSA.pod
+GENERATE[html/man7/EVP_ASYM_CIPHER-RSA.html]=man7/EVP_ASYM_CIPHER-RSA.pod
+DEPEND[man/man7/EVP_ASYM_CIPHER-RSA.7]=man7/EVP_ASYM_CIPHER-RSA.pod
+GENERATE[man/man7/EVP_ASYM_CIPHER-RSA.7]=man7/EVP_ASYM_CIPHER-RSA.pod
+DEPEND[html/man7/EVP_ASYM_CIPHER-SM2.html]=man7/EVP_ASYM_CIPHER-SM2.pod
+GENERATE[html/man7/EVP_ASYM_CIPHER-SM2.html]=man7/EVP_ASYM_CIPHER-SM2.pod
+DEPEND[man/man7/EVP_ASYM_CIPHER-SM2.7]=man7/EVP_ASYM_CIPHER-SM2.pod
+GENERATE[man/man7/EVP_ASYM_CIPHER-SM2.7]=man7/EVP_ASYM_CIPHER-SM2.pod
+DEPEND[html/man7/EVP_CIPHER-AES.html]=man7/EVP_CIPHER-AES.pod
+GENERATE[html/man7/EVP_CIPHER-AES.html]=man7/EVP_CIPHER-AES.pod
+DEPEND[man/man7/EVP_CIPHER-AES.7]=man7/EVP_CIPHER-AES.pod
+GENERATE[man/man7/EVP_CIPHER-AES.7]=man7/EVP_CIPHER-AES.pod
+DEPEND[html/man7/EVP_CIPHER-ARIA.html]=man7/EVP_CIPHER-ARIA.pod
+GENERATE[html/man7/EVP_CIPHER-ARIA.html]=man7/EVP_CIPHER-ARIA.pod
+DEPEND[man/man7/EVP_CIPHER-ARIA.7]=man7/EVP_CIPHER-ARIA.pod
+GENERATE[man/man7/EVP_CIPHER-ARIA.7]=man7/EVP_CIPHER-ARIA.pod
+DEPEND[html/man7/EVP_CIPHER-BLOWFISH.html]=man7/EVP_CIPHER-BLOWFISH.pod
+GENERATE[html/man7/EVP_CIPHER-BLOWFISH.html]=man7/EVP_CIPHER-BLOWFISH.pod
+DEPEND[man/man7/EVP_CIPHER-BLOWFISH.7]=man7/EVP_CIPHER-BLOWFISH.pod
+GENERATE[man/man7/EVP_CIPHER-BLOWFISH.7]=man7/EVP_CIPHER-BLOWFISH.pod
+DEPEND[html/man7/EVP_CIPHER-CAMELLIA.html]=man7/EVP_CIPHER-CAMELLIA.pod
+GENERATE[html/man7/EVP_CIPHER-CAMELLIA.html]=man7/EVP_CIPHER-CAMELLIA.pod
+DEPEND[man/man7/EVP_CIPHER-CAMELLIA.7]=man7/EVP_CIPHER-CAMELLIA.pod
+GENERATE[man/man7/EVP_CIPHER-CAMELLIA.7]=man7/EVP_CIPHER-CAMELLIA.pod
+DEPEND[html/man7/EVP_CIPHER-CAST.html]=man7/EVP_CIPHER-CAST.pod
+GENERATE[html/man7/EVP_CIPHER-CAST.html]=man7/EVP_CIPHER-CAST.pod
+DEPEND[man/man7/EVP_CIPHER-CAST.7]=man7/EVP_CIPHER-CAST.pod
+GENERATE[man/man7/EVP_CIPHER-CAST.7]=man7/EVP_CIPHER-CAST.pod
+DEPEND[html/man7/EVP_CIPHER-CHACHA.html]=man7/EVP_CIPHER-CHACHA.pod
+GENERATE[html/man7/EVP_CIPHER-CHACHA.html]=man7/EVP_CIPHER-CHACHA.pod
+DEPEND[man/man7/EVP_CIPHER-CHACHA.7]=man7/EVP_CIPHER-CHACHA.pod
+GENERATE[man/man7/EVP_CIPHER-CHACHA.7]=man7/EVP_CIPHER-CHACHA.pod
+DEPEND[html/man7/EVP_CIPHER-DES.html]=man7/EVP_CIPHER-DES.pod
+GENERATE[html/man7/EVP_CIPHER-DES.html]=man7/EVP_CIPHER-DES.pod
+DEPEND[man/man7/EVP_CIPHER-DES.7]=man7/EVP_CIPHER-DES.pod
+GENERATE[man/man7/EVP_CIPHER-DES.7]=man7/EVP_CIPHER-DES.pod
+DEPEND[html/man7/EVP_CIPHER-IDEA.html]=man7/EVP_CIPHER-IDEA.pod
+GENERATE[html/man7/EVP_CIPHER-IDEA.html]=man7/EVP_CIPHER-IDEA.pod
+DEPEND[man/man7/EVP_CIPHER-IDEA.7]=man7/EVP_CIPHER-IDEA.pod
+GENERATE[man/man7/EVP_CIPHER-IDEA.7]=man7/EVP_CIPHER-IDEA.pod
+DEPEND[html/man7/EVP_CIPHER-NULL.html]=man7/EVP_CIPHER-NULL.pod
+GENERATE[html/man7/EVP_CIPHER-NULL.html]=man7/EVP_CIPHER-NULL.pod
+DEPEND[man/man7/EVP_CIPHER-NULL.7]=man7/EVP_CIPHER-NULL.pod
+GENERATE[man/man7/EVP_CIPHER-NULL.7]=man7/EVP_CIPHER-NULL.pod
+DEPEND[html/man7/EVP_CIPHER-RC2.html]=man7/EVP_CIPHER-RC2.pod
+GENERATE[html/man7/EVP_CIPHER-RC2.html]=man7/EVP_CIPHER-RC2.pod
+DEPEND[man/man7/EVP_CIPHER-RC2.7]=man7/EVP_CIPHER-RC2.pod
+GENERATE[man/man7/EVP_CIPHER-RC2.7]=man7/EVP_CIPHER-RC2.pod
+DEPEND[html/man7/EVP_CIPHER-RC4.html]=man7/EVP_CIPHER-RC4.pod
+GENERATE[html/man7/EVP_CIPHER-RC4.html]=man7/EVP_CIPHER-RC4.pod
+DEPEND[man/man7/EVP_CIPHER-RC4.7]=man7/EVP_CIPHER-RC4.pod
+GENERATE[man/man7/EVP_CIPHER-RC4.7]=man7/EVP_CIPHER-RC4.pod
+DEPEND[html/man7/EVP_CIPHER-RC5.html]=man7/EVP_CIPHER-RC5.pod
+GENERATE[html/man7/EVP_CIPHER-RC5.html]=man7/EVP_CIPHER-RC5.pod
+DEPEND[man/man7/EVP_CIPHER-RC5.7]=man7/EVP_CIPHER-RC5.pod
+GENERATE[man/man7/EVP_CIPHER-RC5.7]=man7/EVP_CIPHER-RC5.pod
+DEPEND[html/man7/EVP_CIPHER-SEED.html]=man7/EVP_CIPHER-SEED.pod
+GENERATE[html/man7/EVP_CIPHER-SEED.html]=man7/EVP_CIPHER-SEED.pod
+DEPEND[man/man7/EVP_CIPHER-SEED.7]=man7/EVP_CIPHER-SEED.pod
+GENERATE[man/man7/EVP_CIPHER-SEED.7]=man7/EVP_CIPHER-SEED.pod
+DEPEND[html/man7/EVP_CIPHER-SM4.html]=man7/EVP_CIPHER-SM4.pod
+GENERATE[html/man7/EVP_CIPHER-SM4.html]=man7/EVP_CIPHER-SM4.pod
+DEPEND[man/man7/EVP_CIPHER-SM4.7]=man7/EVP_CIPHER-SM4.pod
+GENERATE[man/man7/EVP_CIPHER-SM4.7]=man7/EVP_CIPHER-SM4.pod
+DEPEND[html/man7/EVP_KDF-HKDF.html]=man7/EVP_KDF-HKDF.pod
+GENERATE[html/man7/EVP_KDF-HKDF.html]=man7/EVP_KDF-HKDF.pod
+DEPEND[man/man7/EVP_KDF-HKDF.7]=man7/EVP_KDF-HKDF.pod
+GENERATE[man/man7/EVP_KDF-HKDF.7]=man7/EVP_KDF-HKDF.pod
+DEPEND[html/man7/EVP_KDF-KB.html]=man7/EVP_KDF-KB.pod
+GENERATE[html/man7/EVP_KDF-KB.html]=man7/EVP_KDF-KB.pod
+DEPEND[man/man7/EVP_KDF-KB.7]=man7/EVP_KDF-KB.pod
+GENERATE[man/man7/EVP_KDF-KB.7]=man7/EVP_KDF-KB.pod
+DEPEND[html/man7/EVP_KDF-KRB5KDF.html]=man7/EVP_KDF-KRB5KDF.pod
+GENERATE[html/man7/EVP_KDF-KRB5KDF.html]=man7/EVP_KDF-KRB5KDF.pod
+DEPEND[man/man7/EVP_KDF-KRB5KDF.7]=man7/EVP_KDF-KRB5KDF.pod
+GENERATE[man/man7/EVP_KDF-KRB5KDF.7]=man7/EVP_KDF-KRB5KDF.pod
+DEPEND[html/man7/EVP_KDF-PBKDF1.html]=man7/EVP_KDF-PBKDF1.pod
+GENERATE[html/man7/EVP_KDF-PBKDF1.html]=man7/EVP_KDF-PBKDF1.pod
+DEPEND[man/man7/EVP_KDF-PBKDF1.7]=man7/EVP_KDF-PBKDF1.pod
+GENERATE[man/man7/EVP_KDF-PBKDF1.7]=man7/EVP_KDF-PBKDF1.pod
+DEPEND[html/man7/EVP_KDF-PBKDF2.html]=man7/EVP_KDF-PBKDF2.pod
+GENERATE[html/man7/EVP_KDF-PBKDF2.html]=man7/EVP_KDF-PBKDF2.pod
+DEPEND[man/man7/EVP_KDF-PBKDF2.7]=man7/EVP_KDF-PBKDF2.pod
+GENERATE[man/man7/EVP_KDF-PBKDF2.7]=man7/EVP_KDF-PBKDF2.pod
+DEPEND[html/man7/EVP_KDF-PKCS12KDF.html]=man7/EVP_KDF-PKCS12KDF.pod
+GENERATE[html/man7/EVP_KDF-PKCS12KDF.html]=man7/EVP_KDF-PKCS12KDF.pod
+DEPEND[man/man7/EVP_KDF-PKCS12KDF.7]=man7/EVP_KDF-PKCS12KDF.pod
+GENERATE[man/man7/EVP_KDF-PKCS12KDF.7]=man7/EVP_KDF-PKCS12KDF.pod
+DEPEND[html/man7/EVP_KDF-SCRYPT.html]=man7/EVP_KDF-SCRYPT.pod
+GENERATE[html/man7/EVP_KDF-SCRYPT.html]=man7/EVP_KDF-SCRYPT.pod
+DEPEND[man/man7/EVP_KDF-SCRYPT.7]=man7/EVP_KDF-SCRYPT.pod
+GENERATE[man/man7/EVP_KDF-SCRYPT.7]=man7/EVP_KDF-SCRYPT.pod
+DEPEND[html/man7/EVP_KDF-SS.html]=man7/EVP_KDF-SS.pod
+GENERATE[html/man7/EVP_KDF-SS.html]=man7/EVP_KDF-SS.pod
+DEPEND[man/man7/EVP_KDF-SS.7]=man7/EVP_KDF-SS.pod
+GENERATE[man/man7/EVP_KDF-SS.7]=man7/EVP_KDF-SS.pod
+DEPEND[html/man7/EVP_KDF-SSHKDF.html]=man7/EVP_KDF-SSHKDF.pod
+GENERATE[html/man7/EVP_KDF-SSHKDF.html]=man7/EVP_KDF-SSHKDF.pod
+DEPEND[man/man7/EVP_KDF-SSHKDF.7]=man7/EVP_KDF-SSHKDF.pod
+GENERATE[man/man7/EVP_KDF-SSHKDF.7]=man7/EVP_KDF-SSHKDF.pod
+DEPEND[html/man7/EVP_KDF-TLS13_KDF.html]=man7/EVP_KDF-TLS13_KDF.pod
+GENERATE[html/man7/EVP_KDF-TLS13_KDF.html]=man7/EVP_KDF-TLS13_KDF.pod
+DEPEND[man/man7/EVP_KDF-TLS13_KDF.7]=man7/EVP_KDF-TLS13_KDF.pod
+GENERATE[man/man7/EVP_KDF-TLS13_KDF.7]=man7/EVP_KDF-TLS13_KDF.pod
+DEPEND[html/man7/EVP_KDF-TLS1_PRF.html]=man7/EVP_KDF-TLS1_PRF.pod
+GENERATE[html/man7/EVP_KDF-TLS1_PRF.html]=man7/EVP_KDF-TLS1_PRF.pod
+DEPEND[man/man7/EVP_KDF-TLS1_PRF.7]=man7/EVP_KDF-TLS1_PRF.pod
+GENERATE[man/man7/EVP_KDF-TLS1_PRF.7]=man7/EVP_KDF-TLS1_PRF.pod
+DEPEND[html/man7/EVP_KDF-X942-ASN1.html]=man7/EVP_KDF-X942-ASN1.pod
+GENERATE[html/man7/EVP_KDF-X942-ASN1.html]=man7/EVP_KDF-X942-ASN1.pod
+DEPEND[man/man7/EVP_KDF-X942-ASN1.7]=man7/EVP_KDF-X942-ASN1.pod
+GENERATE[man/man7/EVP_KDF-X942-ASN1.7]=man7/EVP_KDF-X942-ASN1.pod
+DEPEND[html/man7/EVP_KDF-X942-CONCAT.html]=man7/EVP_KDF-X942-CONCAT.pod
+GENERATE[html/man7/EVP_KDF-X942-CONCAT.html]=man7/EVP_KDF-X942-CONCAT.pod
+DEPEND[man/man7/EVP_KDF-X942-CONCAT.7]=man7/EVP_KDF-X942-CONCAT.pod
+GENERATE[man/man7/EVP_KDF-X942-CONCAT.7]=man7/EVP_KDF-X942-CONCAT.pod
+DEPEND[html/man7/EVP_KDF-X963.html]=man7/EVP_KDF-X963.pod
+GENERATE[html/man7/EVP_KDF-X963.html]=man7/EVP_KDF-X963.pod
+DEPEND[man/man7/EVP_KDF-X963.7]=man7/EVP_KDF-X963.pod
+GENERATE[man/man7/EVP_KDF-X963.7]=man7/EVP_KDF-X963.pod
+DEPEND[html/man7/EVP_KEM-RSA.html]=man7/EVP_KEM-RSA.pod
+GENERATE[html/man7/EVP_KEM-RSA.html]=man7/EVP_KEM-RSA.pod
+DEPEND[man/man7/EVP_KEM-RSA.7]=man7/EVP_KEM-RSA.pod
+GENERATE[man/man7/EVP_KEM-RSA.7]=man7/EVP_KEM-RSA.pod
+DEPEND[html/man7/EVP_KEYEXCH-DH.html]=man7/EVP_KEYEXCH-DH.pod
+GENERATE[html/man7/EVP_KEYEXCH-DH.html]=man7/EVP_KEYEXCH-DH.pod
+DEPEND[man/man7/EVP_KEYEXCH-DH.7]=man7/EVP_KEYEXCH-DH.pod
+GENERATE[man/man7/EVP_KEYEXCH-DH.7]=man7/EVP_KEYEXCH-DH.pod
+DEPEND[html/man7/EVP_KEYEXCH-ECDH.html]=man7/EVP_KEYEXCH-ECDH.pod
+GENERATE[html/man7/EVP_KEYEXCH-ECDH.html]=man7/EVP_KEYEXCH-ECDH.pod
+DEPEND[man/man7/EVP_KEYEXCH-ECDH.7]=man7/EVP_KEYEXCH-ECDH.pod
+GENERATE[man/man7/EVP_KEYEXCH-ECDH.7]=man7/EVP_KEYEXCH-ECDH.pod
+DEPEND[html/man7/EVP_KEYEXCH-X25519.html]=man7/EVP_KEYEXCH-X25519.pod
+GENERATE[html/man7/EVP_KEYEXCH-X25519.html]=man7/EVP_KEYEXCH-X25519.pod
+DEPEND[man/man7/EVP_KEYEXCH-X25519.7]=man7/EVP_KEYEXCH-X25519.pod
+GENERATE[man/man7/EVP_KEYEXCH-X25519.7]=man7/EVP_KEYEXCH-X25519.pod
+DEPEND[html/man7/EVP_MAC-BLAKE2.html]=man7/EVP_MAC-BLAKE2.pod
+GENERATE[html/man7/EVP_MAC-BLAKE2.html]=man7/EVP_MAC-BLAKE2.pod
+DEPEND[man/man7/EVP_MAC-BLAKE2.7]=man7/EVP_MAC-BLAKE2.pod
+GENERATE[man/man7/EVP_MAC-BLAKE2.7]=man7/EVP_MAC-BLAKE2.pod
+DEPEND[html/man7/EVP_MAC-CMAC.html]=man7/EVP_MAC-CMAC.pod
+GENERATE[html/man7/EVP_MAC-CMAC.html]=man7/EVP_MAC-CMAC.pod
+DEPEND[man/man7/EVP_MAC-CMAC.7]=man7/EVP_MAC-CMAC.pod
+GENERATE[man/man7/EVP_MAC-CMAC.7]=man7/EVP_MAC-CMAC.pod
+DEPEND[html/man7/EVP_MAC-GMAC.html]=man7/EVP_MAC-GMAC.pod
+GENERATE[html/man7/EVP_MAC-GMAC.html]=man7/EVP_MAC-GMAC.pod
+DEPEND[man/man7/EVP_MAC-GMAC.7]=man7/EVP_MAC-GMAC.pod
+GENERATE[man/man7/EVP_MAC-GMAC.7]=man7/EVP_MAC-GMAC.pod
+DEPEND[html/man7/EVP_MAC-HMAC.html]=man7/EVP_MAC-HMAC.pod
+GENERATE[html/man7/EVP_MAC-HMAC.html]=man7/EVP_MAC-HMAC.pod
+DEPEND[man/man7/EVP_MAC-HMAC.7]=man7/EVP_MAC-HMAC.pod
+GENERATE[man/man7/EVP_MAC-HMAC.7]=man7/EVP_MAC-HMAC.pod
+DEPEND[html/man7/EVP_MAC-KMAC.html]=man7/EVP_MAC-KMAC.pod
+GENERATE[html/man7/EVP_MAC-KMAC.html]=man7/EVP_MAC-KMAC.pod
+DEPEND[man/man7/EVP_MAC-KMAC.7]=man7/EVP_MAC-KMAC.pod
+GENERATE[man/man7/EVP_MAC-KMAC.7]=man7/EVP_MAC-KMAC.pod
+DEPEND[html/man7/EVP_MAC-Poly1305.html]=man7/EVP_MAC-Poly1305.pod
+GENERATE[html/man7/EVP_MAC-Poly1305.html]=man7/EVP_MAC-Poly1305.pod
+DEPEND[man/man7/EVP_MAC-Poly1305.7]=man7/EVP_MAC-Poly1305.pod
+GENERATE[man/man7/EVP_MAC-Poly1305.7]=man7/EVP_MAC-Poly1305.pod
+DEPEND[html/man7/EVP_MAC-Siphash.html]=man7/EVP_MAC-Siphash.pod
+GENERATE[html/man7/EVP_MAC-Siphash.html]=man7/EVP_MAC-Siphash.pod
+DEPEND[man/man7/EVP_MAC-Siphash.7]=man7/EVP_MAC-Siphash.pod
+GENERATE[man/man7/EVP_MAC-Siphash.7]=man7/EVP_MAC-Siphash.pod
+DEPEND[html/man7/EVP_MD-BLAKE2.html]=man7/EVP_MD-BLAKE2.pod
+GENERATE[html/man7/EVP_MD-BLAKE2.html]=man7/EVP_MD-BLAKE2.pod
+DEPEND[man/man7/EVP_MD-BLAKE2.7]=man7/EVP_MD-BLAKE2.pod
+GENERATE[man/man7/EVP_MD-BLAKE2.7]=man7/EVP_MD-BLAKE2.pod
+DEPEND[html/man7/EVP_MD-MD2.html]=man7/EVP_MD-MD2.pod
+GENERATE[html/man7/EVP_MD-MD2.html]=man7/EVP_MD-MD2.pod
+DEPEND[man/man7/EVP_MD-MD2.7]=man7/EVP_MD-MD2.pod
+GENERATE[man/man7/EVP_MD-MD2.7]=man7/EVP_MD-MD2.pod
+DEPEND[html/man7/EVP_MD-MD4.html]=man7/EVP_MD-MD4.pod
+GENERATE[html/man7/EVP_MD-MD4.html]=man7/EVP_MD-MD4.pod
+DEPEND[man/man7/EVP_MD-MD4.7]=man7/EVP_MD-MD4.pod
+GENERATE[man/man7/EVP_MD-MD4.7]=man7/EVP_MD-MD4.pod
+DEPEND[html/man7/EVP_MD-MD5-SHA1.html]=man7/EVP_MD-MD5-SHA1.pod
+GENERATE[html/man7/EVP_MD-MD5-SHA1.html]=man7/EVP_MD-MD5-SHA1.pod
+DEPEND[man/man7/EVP_MD-MD5-SHA1.7]=man7/EVP_MD-MD5-SHA1.pod
+GENERATE[man/man7/EVP_MD-MD5-SHA1.7]=man7/EVP_MD-MD5-SHA1.pod
+DEPEND[html/man7/EVP_MD-MD5.html]=man7/EVP_MD-MD5.pod
+GENERATE[html/man7/EVP_MD-MD5.html]=man7/EVP_MD-MD5.pod
+DEPEND[man/man7/EVP_MD-MD5.7]=man7/EVP_MD-MD5.pod
+GENERATE[man/man7/EVP_MD-MD5.7]=man7/EVP_MD-MD5.pod
+DEPEND[html/man7/EVP_MD-MDC2.html]=man7/EVP_MD-MDC2.pod
+GENERATE[html/man7/EVP_MD-MDC2.html]=man7/EVP_MD-MDC2.pod
+DEPEND[man/man7/EVP_MD-MDC2.7]=man7/EVP_MD-MDC2.pod
+GENERATE[man/man7/EVP_MD-MDC2.7]=man7/EVP_MD-MDC2.pod
+DEPEND[html/man7/EVP_MD-NULL.html]=man7/EVP_MD-NULL.pod
+GENERATE[html/man7/EVP_MD-NULL.html]=man7/EVP_MD-NULL.pod
+DEPEND[man/man7/EVP_MD-NULL.7]=man7/EVP_MD-NULL.pod
+GENERATE[man/man7/EVP_MD-NULL.7]=man7/EVP_MD-NULL.pod
+DEPEND[html/man7/EVP_MD-RIPEMD160.html]=man7/EVP_MD-RIPEMD160.pod
+GENERATE[html/man7/EVP_MD-RIPEMD160.html]=man7/EVP_MD-RIPEMD160.pod
+DEPEND[man/man7/EVP_MD-RIPEMD160.7]=man7/EVP_MD-RIPEMD160.pod
+GENERATE[man/man7/EVP_MD-RIPEMD160.7]=man7/EVP_MD-RIPEMD160.pod
+DEPEND[html/man7/EVP_MD-SHA1.html]=man7/EVP_MD-SHA1.pod
+GENERATE[html/man7/EVP_MD-SHA1.html]=man7/EVP_MD-SHA1.pod
+DEPEND[man/man7/EVP_MD-SHA1.7]=man7/EVP_MD-SHA1.pod
+GENERATE[man/man7/EVP_MD-SHA1.7]=man7/EVP_MD-SHA1.pod
+DEPEND[html/man7/EVP_MD-SHA2.html]=man7/EVP_MD-SHA2.pod
+GENERATE[html/man7/EVP_MD-SHA2.html]=man7/EVP_MD-SHA2.pod
+DEPEND[man/man7/EVP_MD-SHA2.7]=man7/EVP_MD-SHA2.pod
+GENERATE[man/man7/EVP_MD-SHA2.7]=man7/EVP_MD-SHA2.pod
+DEPEND[html/man7/EVP_MD-SHA3.html]=man7/EVP_MD-SHA3.pod
+GENERATE[html/man7/EVP_MD-SHA3.html]=man7/EVP_MD-SHA3.pod
+DEPEND[man/man7/EVP_MD-SHA3.7]=man7/EVP_MD-SHA3.pod
+GENERATE[man/man7/EVP_MD-SHA3.7]=man7/EVP_MD-SHA3.pod
+DEPEND[html/man7/EVP_MD-SHAKE.html]=man7/EVP_MD-SHAKE.pod
+GENERATE[html/man7/EVP_MD-SHAKE.html]=man7/EVP_MD-SHAKE.pod
+DEPEND[man/man7/EVP_MD-SHAKE.7]=man7/EVP_MD-SHAKE.pod
+GENERATE[man/man7/EVP_MD-SHAKE.7]=man7/EVP_MD-SHAKE.pod
+DEPEND[html/man7/EVP_MD-SM3.html]=man7/EVP_MD-SM3.pod
+GENERATE[html/man7/EVP_MD-SM3.html]=man7/EVP_MD-SM3.pod
+DEPEND[man/man7/EVP_MD-SM3.7]=man7/EVP_MD-SM3.pod
+GENERATE[man/man7/EVP_MD-SM3.7]=man7/EVP_MD-SM3.pod
+DEPEND[html/man7/EVP_MD-WHIRLPOOL.html]=man7/EVP_MD-WHIRLPOOL.pod
+GENERATE[html/man7/EVP_MD-WHIRLPOOL.html]=man7/EVP_MD-WHIRLPOOL.pod
+DEPEND[man/man7/EVP_MD-WHIRLPOOL.7]=man7/EVP_MD-WHIRLPOOL.pod
+GENERATE[man/man7/EVP_MD-WHIRLPOOL.7]=man7/EVP_MD-WHIRLPOOL.pod
+DEPEND[html/man7/EVP_MD-common.html]=man7/EVP_MD-common.pod
+GENERATE[html/man7/EVP_MD-common.html]=man7/EVP_MD-common.pod
+DEPEND[man/man7/EVP_MD-common.7]=man7/EVP_MD-common.pod
+GENERATE[man/man7/EVP_MD-common.7]=man7/EVP_MD-common.pod
+DEPEND[html/man7/EVP_PKEY-DH.html]=man7/EVP_PKEY-DH.pod
+GENERATE[html/man7/EVP_PKEY-DH.html]=man7/EVP_PKEY-DH.pod
+DEPEND[man/man7/EVP_PKEY-DH.7]=man7/EVP_PKEY-DH.pod
+GENERATE[man/man7/EVP_PKEY-DH.7]=man7/EVP_PKEY-DH.pod
+DEPEND[html/man7/EVP_PKEY-DSA.html]=man7/EVP_PKEY-DSA.pod
+GENERATE[html/man7/EVP_PKEY-DSA.html]=man7/EVP_PKEY-DSA.pod
+DEPEND[man/man7/EVP_PKEY-DSA.7]=man7/EVP_PKEY-DSA.pod
+GENERATE[man/man7/EVP_PKEY-DSA.7]=man7/EVP_PKEY-DSA.pod
+DEPEND[html/man7/EVP_PKEY-EC.html]=man7/EVP_PKEY-EC.pod
+GENERATE[html/man7/EVP_PKEY-EC.html]=man7/EVP_PKEY-EC.pod
+DEPEND[man/man7/EVP_PKEY-EC.7]=man7/EVP_PKEY-EC.pod
+GENERATE[man/man7/EVP_PKEY-EC.7]=man7/EVP_PKEY-EC.pod
+DEPEND[html/man7/EVP_PKEY-FFC.html]=man7/EVP_PKEY-FFC.pod
+GENERATE[html/man7/EVP_PKEY-FFC.html]=man7/EVP_PKEY-FFC.pod
+DEPEND[man/man7/EVP_PKEY-FFC.7]=man7/EVP_PKEY-FFC.pod
+GENERATE[man/man7/EVP_PKEY-FFC.7]=man7/EVP_PKEY-FFC.pod
+DEPEND[html/man7/EVP_PKEY-HMAC.html]=man7/EVP_PKEY-HMAC.pod
+GENERATE[html/man7/EVP_PKEY-HMAC.html]=man7/EVP_PKEY-HMAC.pod
+DEPEND[man/man7/EVP_PKEY-HMAC.7]=man7/EVP_PKEY-HMAC.pod
+GENERATE[man/man7/EVP_PKEY-HMAC.7]=man7/EVP_PKEY-HMAC.pod
+DEPEND[html/man7/EVP_PKEY-RSA.html]=man7/EVP_PKEY-RSA.pod
+GENERATE[html/man7/EVP_PKEY-RSA.html]=man7/EVP_PKEY-RSA.pod
+DEPEND[man/man7/EVP_PKEY-RSA.7]=man7/EVP_PKEY-RSA.pod
+GENERATE[man/man7/EVP_PKEY-RSA.7]=man7/EVP_PKEY-RSA.pod
+DEPEND[html/man7/EVP_PKEY-SM2.html]=man7/EVP_PKEY-SM2.pod
+GENERATE[html/man7/EVP_PKEY-SM2.html]=man7/EVP_PKEY-SM2.pod
+DEPEND[man/man7/EVP_PKEY-SM2.7]=man7/EVP_PKEY-SM2.pod
+GENERATE[man/man7/EVP_PKEY-SM2.7]=man7/EVP_PKEY-SM2.pod
+DEPEND[html/man7/EVP_PKEY-X25519.html]=man7/EVP_PKEY-X25519.pod
+GENERATE[html/man7/EVP_PKEY-X25519.html]=man7/EVP_PKEY-X25519.pod
+DEPEND[man/man7/EVP_PKEY-X25519.7]=man7/EVP_PKEY-X25519.pod
+GENERATE[man/man7/EVP_PKEY-X25519.7]=man7/EVP_PKEY-X25519.pod
+DEPEND[html/man7/EVP_RAND-CTR-DRBG.html]=man7/EVP_RAND-CTR-DRBG.pod
+GENERATE[html/man7/EVP_RAND-CTR-DRBG.html]=man7/EVP_RAND-CTR-DRBG.pod
+DEPEND[man/man7/EVP_RAND-CTR-DRBG.7]=man7/EVP_RAND-CTR-DRBG.pod
+GENERATE[man/man7/EVP_RAND-CTR-DRBG.7]=man7/EVP_RAND-CTR-DRBG.pod
+DEPEND[html/man7/EVP_RAND-HASH-DRBG.html]=man7/EVP_RAND-HASH-DRBG.pod
+GENERATE[html/man7/EVP_RAND-HASH-DRBG.html]=man7/EVP_RAND-HASH-DRBG.pod
+DEPEND[man/man7/EVP_RAND-HASH-DRBG.7]=man7/EVP_RAND-HASH-DRBG.pod
+GENERATE[man/man7/EVP_RAND-HASH-DRBG.7]=man7/EVP_RAND-HASH-DRBG.pod
+DEPEND[html/man7/EVP_RAND-HMAC-DRBG.html]=man7/EVP_RAND-HMAC-DRBG.pod
+GENERATE[html/man7/EVP_RAND-HMAC-DRBG.html]=man7/EVP_RAND-HMAC-DRBG.pod
+DEPEND[man/man7/EVP_RAND-HMAC-DRBG.7]=man7/EVP_RAND-HMAC-DRBG.pod
+GENERATE[man/man7/EVP_RAND-HMAC-DRBG.7]=man7/EVP_RAND-HMAC-DRBG.pod
+DEPEND[html/man7/EVP_RAND-SEED-SRC.html]=man7/EVP_RAND-SEED-SRC.pod
+GENERATE[html/man7/EVP_RAND-SEED-SRC.html]=man7/EVP_RAND-SEED-SRC.pod
+DEPEND[man/man7/EVP_RAND-SEED-SRC.7]=man7/EVP_RAND-SEED-SRC.pod
+GENERATE[man/man7/EVP_RAND-SEED-SRC.7]=man7/EVP_RAND-SEED-SRC.pod
+DEPEND[html/man7/EVP_RAND-TEST-RAND.html]=man7/EVP_RAND-TEST-RAND.pod
+GENERATE[html/man7/EVP_RAND-TEST-RAND.html]=man7/EVP_RAND-TEST-RAND.pod
+DEPEND[man/man7/EVP_RAND-TEST-RAND.7]=man7/EVP_RAND-TEST-RAND.pod
+GENERATE[man/man7/EVP_RAND-TEST-RAND.7]=man7/EVP_RAND-TEST-RAND.pod
+DEPEND[html/man7/EVP_RAND.html]=man7/EVP_RAND.pod
+GENERATE[html/man7/EVP_RAND.html]=man7/EVP_RAND.pod
+DEPEND[man/man7/EVP_RAND.7]=man7/EVP_RAND.pod
+GENERATE[man/man7/EVP_RAND.7]=man7/EVP_RAND.pod
+DEPEND[html/man7/EVP_SIGNATURE-DSA.html]=man7/EVP_SIGNATURE-DSA.pod
+GENERATE[html/man7/EVP_SIGNATURE-DSA.html]=man7/EVP_SIGNATURE-DSA.pod
+DEPEND[man/man7/EVP_SIGNATURE-DSA.7]=man7/EVP_SIGNATURE-DSA.pod
+GENERATE[man/man7/EVP_SIGNATURE-DSA.7]=man7/EVP_SIGNATURE-DSA.pod
+DEPEND[html/man7/EVP_SIGNATURE-ECDSA.html]=man7/EVP_SIGNATURE-ECDSA.pod
+GENERATE[html/man7/EVP_SIGNATURE-ECDSA.html]=man7/EVP_SIGNATURE-ECDSA.pod
+DEPEND[man/man7/EVP_SIGNATURE-ECDSA.7]=man7/EVP_SIGNATURE-ECDSA.pod
+GENERATE[man/man7/EVP_SIGNATURE-ECDSA.7]=man7/EVP_SIGNATURE-ECDSA.pod
+DEPEND[html/man7/EVP_SIGNATURE-ED25519.html]=man7/EVP_SIGNATURE-ED25519.pod
+GENERATE[html/man7/EVP_SIGNATURE-ED25519.html]=man7/EVP_SIGNATURE-ED25519.pod
+DEPEND[man/man7/EVP_SIGNATURE-ED25519.7]=man7/EVP_SIGNATURE-ED25519.pod
+GENERATE[man/man7/EVP_SIGNATURE-ED25519.7]=man7/EVP_SIGNATURE-ED25519.pod
+DEPEND[html/man7/EVP_SIGNATURE-HMAC.html]=man7/EVP_SIGNATURE-HMAC.pod
+GENERATE[html/man7/EVP_SIGNATURE-HMAC.html]=man7/EVP_SIGNATURE-HMAC.pod
+DEPEND[man/man7/EVP_SIGNATURE-HMAC.7]=man7/EVP_SIGNATURE-HMAC.pod
+GENERATE[man/man7/EVP_SIGNATURE-HMAC.7]=man7/EVP_SIGNATURE-HMAC.pod
+DEPEND[html/man7/EVP_SIGNATURE-RSA.html]=man7/EVP_SIGNATURE-RSA.pod
+GENERATE[html/man7/EVP_SIGNATURE-RSA.html]=man7/EVP_SIGNATURE-RSA.pod
+DEPEND[man/man7/EVP_SIGNATURE-RSA.7]=man7/EVP_SIGNATURE-RSA.pod
+GENERATE[man/man7/EVP_SIGNATURE-RSA.7]=man7/EVP_SIGNATURE-RSA.pod
+DEPEND[html/man7/OSSL_PROVIDER-FIPS.html]=man7/OSSL_PROVIDER-FIPS.pod
+GENERATE[html/man7/OSSL_PROVIDER-FIPS.html]=man7/OSSL_PROVIDER-FIPS.pod
+DEPEND[man/man7/OSSL_PROVIDER-FIPS.7]=man7/OSSL_PROVIDER-FIPS.pod
+GENERATE[man/man7/OSSL_PROVIDER-FIPS.7]=man7/OSSL_PROVIDER-FIPS.pod
+DEPEND[html/man7/OSSL_PROVIDER-base.html]=man7/OSSL_PROVIDER-base.pod
+GENERATE[html/man7/OSSL_PROVIDER-base.html]=man7/OSSL_PROVIDER-base.pod
+DEPEND[man/man7/OSSL_PROVIDER-base.7]=man7/OSSL_PROVIDER-base.pod
+GENERATE[man/man7/OSSL_PROVIDER-base.7]=man7/OSSL_PROVIDER-base.pod
+DEPEND[html/man7/OSSL_PROVIDER-default.html]=man7/OSSL_PROVIDER-default.pod
+GENERATE[html/man7/OSSL_PROVIDER-default.html]=man7/OSSL_PROVIDER-default.pod
+DEPEND[man/man7/OSSL_PROVIDER-default.7]=man7/OSSL_PROVIDER-default.pod
+GENERATE[man/man7/OSSL_PROVIDER-default.7]=man7/OSSL_PROVIDER-default.pod
+DEPEND[html/man7/OSSL_PROVIDER-legacy.html]=man7/OSSL_PROVIDER-legacy.pod
+GENERATE[html/man7/OSSL_PROVIDER-legacy.html]=man7/OSSL_PROVIDER-legacy.pod
+DEPEND[man/man7/OSSL_PROVIDER-legacy.7]=man7/OSSL_PROVIDER-legacy.pod
+GENERATE[man/man7/OSSL_PROVIDER-legacy.7]=man7/OSSL_PROVIDER-legacy.pod
+DEPEND[html/man7/OSSL_PROVIDER-null.html]=man7/OSSL_PROVIDER-null.pod
+GENERATE[html/man7/OSSL_PROVIDER-null.html]=man7/OSSL_PROVIDER-null.pod
+DEPEND[man/man7/OSSL_PROVIDER-null.7]=man7/OSSL_PROVIDER-null.pod
+GENERATE[man/man7/OSSL_PROVIDER-null.7]=man7/OSSL_PROVIDER-null.pod
+DEPEND[html/man7/RAND.html]=man7/RAND.pod
+GENERATE[html/man7/RAND.html]=man7/RAND.pod
+DEPEND[man/man7/RAND.7]=man7/RAND.pod
+GENERATE[man/man7/RAND.7]=man7/RAND.pod
+DEPEND[html/man7/RSA-PSS.html]=man7/RSA-PSS.pod
+GENERATE[html/man7/RSA-PSS.html]=man7/RSA-PSS.pod
+DEPEND[man/man7/RSA-PSS.7]=man7/RSA-PSS.pod
+GENERATE[man/man7/RSA-PSS.7]=man7/RSA-PSS.pod
+DEPEND[html/man7/X25519.html]=man7/X25519.pod
+GENERATE[html/man7/X25519.html]=man7/X25519.pod
+DEPEND[man/man7/X25519.7]=man7/X25519.pod
+GENERATE[man/man7/X25519.7]=man7/X25519.pod
+DEPEND[html/man7/bio.html]=man7/bio.pod
+GENERATE[html/man7/bio.html]=man7/bio.pod
+DEPEND[man/man7/bio.7]=man7/bio.pod
+GENERATE[man/man7/bio.7]=man7/bio.pod
+DEPEND[html/man7/crypto.html]=man7/crypto.pod
+GENERATE[html/man7/crypto.html]=man7/crypto.pod
+DEPEND[man/man7/crypto.7]=man7/crypto.pod
+GENERATE[man/man7/crypto.7]=man7/crypto.pod
+DEPEND[html/man7/ct.html]=man7/ct.pod
+GENERATE[html/man7/ct.html]=man7/ct.pod
+DEPEND[man/man7/ct.7]=man7/ct.pod
+GENERATE[man/man7/ct.7]=man7/ct.pod
+DEPEND[html/man7/des_modes.html]=man7/des_modes.pod
+GENERATE[html/man7/des_modes.html]=man7/des_modes.pod
+DEPEND[man/man7/des_modes.7]=man7/des_modes.pod
+GENERATE[man/man7/des_modes.7]=man7/des_modes.pod
+DEPEND[html/man7/evp.html]=man7/evp.pod
+GENERATE[html/man7/evp.html]=man7/evp.pod
+DEPEND[man/man7/evp.7]=man7/evp.pod
+GENERATE[man/man7/evp.7]=man7/evp.pod
+DEPEND[html/man7/fips_module.html]=man7/fips_module.pod
+GENERATE[html/man7/fips_module.html]=man7/fips_module.pod
+DEPEND[man/man7/fips_module.7]=man7/fips_module.pod
+GENERATE[man/man7/fips_module.7]=man7/fips_module.pod
+DEPEND[html/man7/life_cycle-cipher.html]=man7/life_cycle-cipher.pod
+GENERATE[html/man7/life_cycle-cipher.html]=man7/life_cycle-cipher.pod
+DEPEND[man/man7/life_cycle-cipher.7]=man7/life_cycle-cipher.pod
+GENERATE[man/man7/life_cycle-cipher.7]=man7/life_cycle-cipher.pod
+DEPEND[html/man7/life_cycle-digest.html]=man7/life_cycle-digest.pod
+GENERATE[html/man7/life_cycle-digest.html]=man7/life_cycle-digest.pod
+DEPEND[man/man7/life_cycle-digest.7]=man7/life_cycle-digest.pod
+GENERATE[man/man7/life_cycle-digest.7]=man7/life_cycle-digest.pod
+DEPEND[html/man7/life_cycle-kdf.html]=man7/life_cycle-kdf.pod
+GENERATE[html/man7/life_cycle-kdf.html]=man7/life_cycle-kdf.pod
+DEPEND[man/man7/life_cycle-kdf.7]=man7/life_cycle-kdf.pod
+GENERATE[man/man7/life_cycle-kdf.7]=man7/life_cycle-kdf.pod
+DEPEND[html/man7/life_cycle-mac.html]=man7/life_cycle-mac.pod
+GENERATE[html/man7/life_cycle-mac.html]=man7/life_cycle-mac.pod
+DEPEND[man/man7/life_cycle-mac.7]=man7/life_cycle-mac.pod
+GENERATE[man/man7/life_cycle-mac.7]=man7/life_cycle-mac.pod
+DEPEND[html/man7/life_cycle-pkey.html]=man7/life_cycle-pkey.pod
+GENERATE[html/man7/life_cycle-pkey.html]=man7/life_cycle-pkey.pod
+DEPEND[man/man7/life_cycle-pkey.7]=man7/life_cycle-pkey.pod
+GENERATE[man/man7/life_cycle-pkey.7]=man7/life_cycle-pkey.pod
+DEPEND[html/man7/life_cycle-rand.html]=man7/life_cycle-rand.pod
+GENERATE[html/man7/life_cycle-rand.html]=man7/life_cycle-rand.pod
+DEPEND[man/man7/life_cycle-rand.7]=man7/life_cycle-rand.pod
+GENERATE[man/man7/life_cycle-rand.7]=man7/life_cycle-rand.pod
+DEPEND[html/man7/migration_guide.html]=man7/migration_guide.pod
+GENERATE[html/man7/migration_guide.html]=man7/migration_guide.pod
+DEPEND[man/man7/migration_guide.7]=man7/migration_guide.pod
+GENERATE[man/man7/migration_guide.7]=man7/migration_guide.pod
+DEPEND[html/man7/openssl-core.h.html]=man7/openssl-core.h.pod
+GENERATE[html/man7/openssl-core.h.html]=man7/openssl-core.h.pod
+DEPEND[man/man7/openssl-core.h.7]=man7/openssl-core.h.pod
+GENERATE[man/man7/openssl-core.h.7]=man7/openssl-core.h.pod
+DEPEND[html/man7/openssl-core_dispatch.h.html]=man7/openssl-core_dispatch.h.pod
+GENERATE[html/man7/openssl-core_dispatch.h.html]=man7/openssl-core_dispatch.h.pod
+DEPEND[man/man7/openssl-core_dispatch.h.7]=man7/openssl-core_dispatch.h.pod
+GENERATE[man/man7/openssl-core_dispatch.h.7]=man7/openssl-core_dispatch.h.pod
+DEPEND[html/man7/openssl-core_names.h.html]=man7/openssl-core_names.h.pod
+GENERATE[html/man7/openssl-core_names.h.html]=man7/openssl-core_names.h.pod
+DEPEND[man/man7/openssl-core_names.h.7]=man7/openssl-core_names.h.pod
+GENERATE[man/man7/openssl-core_names.h.7]=man7/openssl-core_names.h.pod
+DEPEND[html/man7/openssl-env.html]=man7/openssl-env.pod
+GENERATE[html/man7/openssl-env.html]=man7/openssl-env.pod
+DEPEND[man/man7/openssl-env.7]=man7/openssl-env.pod
+GENERATE[man/man7/openssl-env.7]=man7/openssl-env.pod
+DEPEND[html/man7/openssl-glossary.html]=man7/openssl-glossary.pod
+GENERATE[html/man7/openssl-glossary.html]=man7/openssl-glossary.pod
+DEPEND[man/man7/openssl-glossary.7]=man7/openssl-glossary.pod
+GENERATE[man/man7/openssl-glossary.7]=man7/openssl-glossary.pod
+DEPEND[html/man7/openssl-threads.html]=man7/openssl-threads.pod
+GENERATE[html/man7/openssl-threads.html]=man7/openssl-threads.pod
+DEPEND[man/man7/openssl-threads.7]=man7/openssl-threads.pod
+GENERATE[man/man7/openssl-threads.7]=man7/openssl-threads.pod
+DEPEND[html/man7/openssl_user_macros.html]=man7/openssl_user_macros.pod
+GENERATE[html/man7/openssl_user_macros.html]=man7/openssl_user_macros.pod
+DEPEND[man/man7/openssl_user_macros.7]=man7/openssl_user_macros.pod
+GENERATE[man/man7/openssl_user_macros.7]=man7/openssl_user_macros.pod
+DEPEND[man7/openssl_user_macros.pod]{pod}=man7/openssl_user_macros.pod.in
+GENERATE[man7/openssl_user_macros.pod]=man7/openssl_user_macros.pod.in
+DEPEND[html/man7/ossl_store-file.html]=man7/ossl_store-file.pod
+GENERATE[html/man7/ossl_store-file.html]=man7/ossl_store-file.pod
+DEPEND[man/man7/ossl_store-file.7]=man7/ossl_store-file.pod
+GENERATE[man/man7/ossl_store-file.7]=man7/ossl_store-file.pod
+DEPEND[html/man7/ossl_store.html]=man7/ossl_store.pod
+GENERATE[html/man7/ossl_store.html]=man7/ossl_store.pod
+DEPEND[man/man7/ossl_store.7]=man7/ossl_store.pod
+GENERATE[man/man7/ossl_store.7]=man7/ossl_store.pod
+DEPEND[html/man7/passphrase-encoding.html]=man7/passphrase-encoding.pod
+GENERATE[html/man7/passphrase-encoding.html]=man7/passphrase-encoding.pod
+DEPEND[man/man7/passphrase-encoding.7]=man7/passphrase-encoding.pod
+GENERATE[man/man7/passphrase-encoding.7]=man7/passphrase-encoding.pod
+DEPEND[html/man7/property.html]=man7/property.pod
+GENERATE[html/man7/property.html]=man7/property.pod
+DEPEND[man/man7/property.7]=man7/property.pod
+GENERATE[man/man7/property.7]=man7/property.pod
+DEPEND[html/man7/provider-asym_cipher.html]=man7/provider-asym_cipher.pod
+GENERATE[html/man7/provider-asym_cipher.html]=man7/provider-asym_cipher.pod
+DEPEND[man/man7/provider-asym_cipher.7]=man7/provider-asym_cipher.pod
+GENERATE[man/man7/provider-asym_cipher.7]=man7/provider-asym_cipher.pod
+DEPEND[html/man7/provider-base.html]=man7/provider-base.pod
+GENERATE[html/man7/provider-base.html]=man7/provider-base.pod
+DEPEND[man/man7/provider-base.7]=man7/provider-base.pod
+GENERATE[man/man7/provider-base.7]=man7/provider-base.pod
+DEPEND[html/man7/provider-cipher.html]=man7/provider-cipher.pod
+GENERATE[html/man7/provider-cipher.html]=man7/provider-cipher.pod
+DEPEND[man/man7/provider-cipher.7]=man7/provider-cipher.pod
+GENERATE[man/man7/provider-cipher.7]=man7/provider-cipher.pod
+DEPEND[html/man7/provider-decoder.html]=man7/provider-decoder.pod
+GENERATE[html/man7/provider-decoder.html]=man7/provider-decoder.pod
+DEPEND[man/man7/provider-decoder.7]=man7/provider-decoder.pod
+GENERATE[man/man7/provider-decoder.7]=man7/provider-decoder.pod
+DEPEND[html/man7/provider-digest.html]=man7/provider-digest.pod
+GENERATE[html/man7/provider-digest.html]=man7/provider-digest.pod
+DEPEND[man/man7/provider-digest.7]=man7/provider-digest.pod
+GENERATE[man/man7/provider-digest.7]=man7/provider-digest.pod
+DEPEND[html/man7/provider-encoder.html]=man7/provider-encoder.pod
+GENERATE[html/man7/provider-encoder.html]=man7/provider-encoder.pod
+DEPEND[man/man7/provider-encoder.7]=man7/provider-encoder.pod
+GENERATE[man/man7/provider-encoder.7]=man7/provider-encoder.pod
+DEPEND[html/man7/provider-kdf.html]=man7/provider-kdf.pod
+GENERATE[html/man7/provider-kdf.html]=man7/provider-kdf.pod
+DEPEND[man/man7/provider-kdf.7]=man7/provider-kdf.pod
+GENERATE[man/man7/provider-kdf.7]=man7/provider-kdf.pod
+DEPEND[html/man7/provider-kem.html]=man7/provider-kem.pod
+GENERATE[html/man7/provider-kem.html]=man7/provider-kem.pod
+DEPEND[man/man7/provider-kem.7]=man7/provider-kem.pod
+GENERATE[man/man7/provider-kem.7]=man7/provider-kem.pod
+DEPEND[html/man7/provider-keyexch.html]=man7/provider-keyexch.pod
+GENERATE[html/man7/provider-keyexch.html]=man7/provider-keyexch.pod
+DEPEND[man/man7/provider-keyexch.7]=man7/provider-keyexch.pod
+GENERATE[man/man7/provider-keyexch.7]=man7/provider-keyexch.pod
+DEPEND[html/man7/provider-keymgmt.html]=man7/provider-keymgmt.pod
+GENERATE[html/man7/provider-keymgmt.html]=man7/provider-keymgmt.pod
+DEPEND[man/man7/provider-keymgmt.7]=man7/provider-keymgmt.pod
+GENERATE[man/man7/provider-keymgmt.7]=man7/provider-keymgmt.pod
+DEPEND[html/man7/provider-mac.html]=man7/provider-mac.pod
+GENERATE[html/man7/provider-mac.html]=man7/provider-mac.pod
+DEPEND[man/man7/provider-mac.7]=man7/provider-mac.pod
+GENERATE[man/man7/provider-mac.7]=man7/provider-mac.pod
+DEPEND[html/man7/provider-object.html]=man7/provider-object.pod
+GENERATE[html/man7/provider-object.html]=man7/provider-object.pod
+DEPEND[man/man7/provider-object.7]=man7/provider-object.pod
+GENERATE[man/man7/provider-object.7]=man7/provider-object.pod
+DEPEND[html/man7/provider-rand.html]=man7/provider-rand.pod
+GENERATE[html/man7/provider-rand.html]=man7/provider-rand.pod
+DEPEND[man/man7/provider-rand.7]=man7/provider-rand.pod
+GENERATE[man/man7/provider-rand.7]=man7/provider-rand.pod
+DEPEND[html/man7/provider-signature.html]=man7/provider-signature.pod
+GENERATE[html/man7/provider-signature.html]=man7/provider-signature.pod
+DEPEND[man/man7/provider-signature.7]=man7/provider-signature.pod
+GENERATE[man/man7/provider-signature.7]=man7/provider-signature.pod
+DEPEND[html/man7/provider-storemgmt.html]=man7/provider-storemgmt.pod
+GENERATE[html/man7/provider-storemgmt.html]=man7/provider-storemgmt.pod
+DEPEND[man/man7/provider-storemgmt.7]=man7/provider-storemgmt.pod
+GENERATE[man/man7/provider-storemgmt.7]=man7/provider-storemgmt.pod
+DEPEND[html/man7/provider.html]=man7/provider.pod
+GENERATE[html/man7/provider.html]=man7/provider.pod
+DEPEND[man/man7/provider.7]=man7/provider.pod
+GENERATE[man/man7/provider.7]=man7/provider.pod
+DEPEND[html/man7/proxy-certificates.html]=man7/proxy-certificates.pod
+GENERATE[html/man7/proxy-certificates.html]=man7/proxy-certificates.pod
+DEPEND[man/man7/proxy-certificates.7]=man7/proxy-certificates.pod
+GENERATE[man/man7/proxy-certificates.7]=man7/proxy-certificates.pod
+DEPEND[html/man7/ssl.html]=man7/ssl.pod
+GENERATE[html/man7/ssl.html]=man7/ssl.pod
+DEPEND[man/man7/ssl.7]=man7/ssl.pod
+GENERATE[man/man7/ssl.7]=man7/ssl.pod
+DEPEND[html/man7/x509.html]=man7/x509.pod
+GENERATE[html/man7/x509.html]=man7/x509.pod
+DEPEND[man/man7/x509.7]=man7/x509.pod
+GENERATE[man/man7/x509.7]=man7/x509.pod
+IMAGEDOCS[man7]=man7/img/cipher.png \
+man7/img/digest.png \
+man7/img/kdf.png \
+man7/img/mac.png \
+man7/img/pkey.png \
+man7/img/rand.png
+HTMLDOCS[man7]=html/man7/EVP_ASYM_CIPHER-RSA.html \
+html/man7/EVP_ASYM_CIPHER-SM2.html \
+html/man7/EVP_CIPHER-AES.html \
+html/man7/EVP_CIPHER-ARIA.html \
+html/man7/EVP_CIPHER-BLOWFISH.html \
+html/man7/EVP_CIPHER-CAMELLIA.html \
+html/man7/EVP_CIPHER-CAST.html \
+html/man7/EVP_CIPHER-CHACHA.html \
+html/man7/EVP_CIPHER-DES.html \
+html/man7/EVP_CIPHER-IDEA.html \
+html/man7/EVP_CIPHER-NULL.html \
+html/man7/EVP_CIPHER-RC2.html \
+html/man7/EVP_CIPHER-RC4.html \
+html/man7/EVP_CIPHER-RC5.html \
+html/man7/EVP_CIPHER-SEED.html \
+html/man7/EVP_CIPHER-SM4.html \
+html/man7/EVP_KDF-HKDF.html \
+html/man7/EVP_KDF-KB.html \
+html/man7/EVP_KDF-KRB5KDF.html \
+html/man7/EVP_KDF-PBKDF1.html \
+html/man7/EVP_KDF-PBKDF2.html \
+html/man7/EVP_KDF-PKCS12KDF.html \
+html/man7/EVP_KDF-SCRYPT.html \
+html/man7/EVP_KDF-SS.html \
+html/man7/EVP_KDF-SSHKDF.html \
+html/man7/EVP_KDF-TLS13_KDF.html \
+html/man7/EVP_KDF-TLS1_PRF.html \
+html/man7/EVP_KDF-X942-ASN1.html \
+html/man7/EVP_KDF-X942-CONCAT.html \
+html/man7/EVP_KDF-X963.html \
+html/man7/EVP_KEM-RSA.html \
+html/man7/EVP_KEYEXCH-DH.html \
+html/man7/EVP_KEYEXCH-ECDH.html \
+html/man7/EVP_KEYEXCH-X25519.html \
+html/man7/EVP_MAC-BLAKE2.html \
+html/man7/EVP_MAC-CMAC.html \
+html/man7/EVP_MAC-GMAC.html \
+html/man7/EVP_MAC-HMAC.html \
+html/man7/EVP_MAC-KMAC.html \
+html/man7/EVP_MAC-Poly1305.html \
+html/man7/EVP_MAC-Siphash.html \
+html/man7/EVP_MD-BLAKE2.html \
+html/man7/EVP_MD-MD2.html \
+html/man7/EVP_MD-MD4.html \
+html/man7/EVP_MD-MD5-SHA1.html \
+html/man7/EVP_MD-MD5.html \
+html/man7/EVP_MD-MDC2.html \
+html/man7/EVP_MD-NULL.html \
+html/man7/EVP_MD-RIPEMD160.html \
+html/man7/EVP_MD-SHA1.html \
+html/man7/EVP_MD-SHA2.html \
+html/man7/EVP_MD-SHA3.html \
+html/man7/EVP_MD-SHAKE.html \
+html/man7/EVP_MD-SM3.html \
+html/man7/EVP_MD-WHIRLPOOL.html \
+html/man7/EVP_MD-common.html \
+html/man7/EVP_PKEY-DH.html \
+html/man7/EVP_PKEY-DSA.html \
+html/man7/EVP_PKEY-EC.html \
+html/man7/EVP_PKEY-FFC.html \
+html/man7/EVP_PKEY-HMAC.html \
+html/man7/EVP_PKEY-RSA.html \
+html/man7/EVP_PKEY-SM2.html \
+html/man7/EVP_PKEY-X25519.html \
+html/man7/EVP_RAND-CTR-DRBG.html \
+html/man7/EVP_RAND-HASH-DRBG.html \
+html/man7/EVP_RAND-HMAC-DRBG.html \
+html/man7/EVP_RAND-SEED-SRC.html \
+html/man7/EVP_RAND-TEST-RAND.html \
+html/man7/EVP_RAND.html \
+html/man7/EVP_SIGNATURE-DSA.html \
+html/man7/EVP_SIGNATURE-ECDSA.html \
+html/man7/EVP_SIGNATURE-ED25519.html \
+html/man7/EVP_SIGNATURE-HMAC.html \
+html/man7/EVP_SIGNATURE-RSA.html \
+html/man7/OSSL_PROVIDER-FIPS.html \
+html/man7/OSSL_PROVIDER-base.html \
+html/man7/OSSL_PROVIDER-default.html \
+html/man7/OSSL_PROVIDER-legacy.html \
+html/man7/OSSL_PROVIDER-null.html \
+html/man7/RAND.html \
+html/man7/RSA-PSS.html \
+html/man7/X25519.html \
+html/man7/bio.html \
+html/man7/crypto.html \
+html/man7/ct.html \
+html/man7/des_modes.html \
+html/man7/evp.html \
+html/man7/fips_module.html \
+html/man7/life_cycle-cipher.html \
+html/man7/life_cycle-digest.html \
+html/man7/life_cycle-kdf.html \
+html/man7/life_cycle-mac.html \
+html/man7/life_cycle-pkey.html \
+html/man7/life_cycle-rand.html \
+html/man7/migration_guide.html \
+html/man7/openssl-core.h.html \
+html/man7/openssl-core_dispatch.h.html \
+html/man7/openssl-core_names.h.html \
+html/man7/openssl-env.html \
+html/man7/openssl-glossary.html \
+html/man7/openssl-threads.html \
+html/man7/openssl_user_macros.html \
+html/man7/ossl_store-file.html \
+html/man7/ossl_store.html \
+html/man7/passphrase-encoding.html \
+html/man7/property.html \
+html/man7/provider-asym_cipher.html \
+html/man7/provider-base.html \
+html/man7/provider-cipher.html \
+html/man7/provider-decoder.html \
+html/man7/provider-digest.html \
+html/man7/provider-encoder.html \
+html/man7/provider-kdf.html \
+html/man7/provider-kem.html \
+html/man7/provider-keyexch.html \
+html/man7/provider-keymgmt.html \
+html/man7/provider-mac.html \
+html/man7/provider-object.html \
+html/man7/provider-rand.html \
+html/man7/provider-signature.html \
+html/man7/provider-storemgmt.html \
+html/man7/provider.html \
+html/man7/proxy-certificates.html \
+html/man7/ssl.html \
+html/man7/x509.html
+MANDOCS[man7]=man/man7/EVP_ASYM_CIPHER-RSA.7 \
+man/man7/EVP_ASYM_CIPHER-SM2.7 \
+man/man7/EVP_CIPHER-AES.7 \
+man/man7/EVP_CIPHER-ARIA.7 \
+man/man7/EVP_CIPHER-BLOWFISH.7 \
+man/man7/EVP_CIPHER-CAMELLIA.7 \
+man/man7/EVP_CIPHER-CAST.7 \
+man/man7/EVP_CIPHER-CHACHA.7 \
+man/man7/EVP_CIPHER-DES.7 \
+man/man7/EVP_CIPHER-IDEA.7 \
+man/man7/EVP_CIPHER-NULL.7 \
+man/man7/EVP_CIPHER-RC2.7 \
+man/man7/EVP_CIPHER-RC4.7 \
+man/man7/EVP_CIPHER-RC5.7 \
+man/man7/EVP_CIPHER-SEED.7 \
+man/man7/EVP_CIPHER-SM4.7 \
+man/man7/EVP_KDF-HKDF.7 \
+man/man7/EVP_KDF-KB.7 \
+man/man7/EVP_KDF-KRB5KDF.7 \
+man/man7/EVP_KDF-PBKDF1.7 \
+man/man7/EVP_KDF-PBKDF2.7 \
+man/man7/EVP_KDF-PKCS12KDF.7 \
+man/man7/EVP_KDF-SCRYPT.7 \
+man/man7/EVP_KDF-SS.7 \
+man/man7/EVP_KDF-SSHKDF.7 \
+man/man7/EVP_KDF-TLS13_KDF.7 \
+man/man7/EVP_KDF-TLS1_PRF.7 \
+man/man7/EVP_KDF-X942-ASN1.7 \
+man/man7/EVP_KDF-X942-CONCAT.7 \
+man/man7/EVP_KDF-X963.7 \
+man/man7/EVP_KEM-RSA.7 \
+man/man7/EVP_KEYEXCH-DH.7 \
+man/man7/EVP_KEYEXCH-ECDH.7 \
+man/man7/EVP_KEYEXCH-X25519.7 \
+man/man7/EVP_MAC-BLAKE2.7 \
+man/man7/EVP_MAC-CMAC.7 \
+man/man7/EVP_MAC-GMAC.7 \
+man/man7/EVP_MAC-HMAC.7 \
+man/man7/EVP_MAC-KMAC.7 \
+man/man7/EVP_MAC-Poly1305.7 \
+man/man7/EVP_MAC-Siphash.7 \
+man/man7/EVP_MD-BLAKE2.7 \
+man/man7/EVP_MD-MD2.7 \
+man/man7/EVP_MD-MD4.7 \
+man/man7/EVP_MD-MD5-SHA1.7 \
+man/man7/EVP_MD-MD5.7 \
+man/man7/EVP_MD-MDC2.7 \
+man/man7/EVP_MD-NULL.7 \
+man/man7/EVP_MD-RIPEMD160.7 \
+man/man7/EVP_MD-SHA1.7 \
+man/man7/EVP_MD-SHA2.7 \
+man/man7/EVP_MD-SHA3.7 \
+man/man7/EVP_MD-SHAKE.7 \
+man/man7/EVP_MD-SM3.7 \
+man/man7/EVP_MD-WHIRLPOOL.7 \
+man/man7/EVP_MD-common.7 \
+man/man7/EVP_PKEY-DH.7 \
+man/man7/EVP_PKEY-DSA.7 \
+man/man7/EVP_PKEY-EC.7 \
+man/man7/EVP_PKEY-FFC.7 \
+man/man7/EVP_PKEY-HMAC.7 \
+man/man7/EVP_PKEY-RSA.7 \
+man/man7/EVP_PKEY-SM2.7 \
+man/man7/EVP_PKEY-X25519.7 \
+man/man7/EVP_RAND-CTR-DRBG.7 \
+man/man7/EVP_RAND-HASH-DRBG.7 \
+man/man7/EVP_RAND-HMAC-DRBG.7 \
+man/man7/EVP_RAND-SEED-SRC.7 \
+man/man7/EVP_RAND-TEST-RAND.7 \
+man/man7/EVP_RAND.7 \
+man/man7/EVP_SIGNATURE-DSA.7 \
+man/man7/EVP_SIGNATURE-ECDSA.7 \
+man/man7/EVP_SIGNATURE-ED25519.7 \
+man/man7/EVP_SIGNATURE-HMAC.7 \
+man/man7/EVP_SIGNATURE-RSA.7 \
+man/man7/OSSL_PROVIDER-FIPS.7 \
+man/man7/OSSL_PROVIDER-base.7 \
+man/man7/OSSL_PROVIDER-default.7 \
+man/man7/OSSL_PROVIDER-legacy.7 \
+man/man7/OSSL_PROVIDER-null.7 \
+man/man7/RAND.7 \
+man/man7/RSA-PSS.7 \
+man/man7/X25519.7 \
+man/man7/bio.7 \
+man/man7/crypto.7 \
+man/man7/ct.7 \
+man/man7/des_modes.7 \
+man/man7/evp.7 \
+man/man7/fips_module.7 \
+man/man7/life_cycle-cipher.7 \
+man/man7/life_cycle-digest.7 \
+man/man7/life_cycle-kdf.7 \
+man/man7/life_cycle-mac.7 \
+man/man7/life_cycle-pkey.7 \
+man/man7/life_cycle-rand.7 \
+man/man7/migration_guide.7 \
+man/man7/openssl-core.h.7 \
+man/man7/openssl-core_dispatch.h.7 \
+man/man7/openssl-core_names.h.7 \
+man/man7/openssl-env.7 \
+man/man7/openssl-glossary.7 \
+man/man7/openssl-threads.7 \
+man/man7/openssl_user_macros.7 \
+man/man7/ossl_store-file.7 \
+man/man7/ossl_store.7 \
+man/man7/passphrase-encoding.7 \
+man/man7/property.7 \
+man/man7/provider-asym_cipher.7 \
+man/man7/provider-base.7 \
+man/man7/provider-cipher.7 \
+man/man7/provider-decoder.7 \
+man/man7/provider-digest.7 \
+man/man7/provider-encoder.7 \
+man/man7/provider-kdf.7 \
+man/man7/provider-kem.7 \
+man/man7/provider-keyexch.7 \
+man/man7/provider-keymgmt.7 \
+man/man7/provider-mac.7 \
+man/man7/provider-object.7 \
+man/man7/provider-rand.7 \
+man/man7/provider-signature.7 \
+man/man7/provider-storemgmt.7 \
+man/man7/provider.7 \
+man/man7/proxy-certificates.7 \
+man/man7/ssl.7 \
+man/man7/x509.7
+
diff --git a/deps/openssl/openssl/doc/man1/build.info b/deps/openssl/openssl/doc/man1/build.info
new file mode 100644
index 00000000000000..b796fce42fdd90
--- /dev/null
+++ b/deps/openssl/openssl/doc/man1/build.info
@@ -0,0 +1,57 @@
+# All .pod.in files are detected by build.info in the parent directory, and
+# turned into appropriate DEPEND and GENERATE lines. All we need here are
+# the additional dependencies on ../perlvars.pm.
+
+DEPEND[openssl-asn1parse.pod]=../perlvars.pm
+DEPEND[openssl-ca.pod]=../perlvars.pm
+DEPEND[openssl-ciphers.pod]=../perlvars.pm
+DEPEND[openssl-cmds.pod]=../perlvars.pm
+DEPEND[openssl-cmp.pod]=../perlvars.pm
+DEPEND[openssl-cms.pod]=../perlvars.pm
+DEPEND[openssl-crl2pkcs7.pod]=../perlvars.pm
+DEPEND[openssl-crl.pod]=../perlvars.pm
+DEPEND[openssl-dgst.pod]=../perlvars.pm
+DEPEND[openssl-dhparam.pod]=../perlvars.pm
+DEPEND[openssl-dsaparam.pod]=../perlvars.pm
+DEPEND[openssl-dsa.pod]=../perlvars.pm
+DEPEND[openssl-ecparam.pod]=../perlvars.pm
+DEPEND[openssl-ec.pod]=../perlvars.pm
+DEPEND[openssl-enc.pod]=../perlvars.pm
+DEPEND[openssl-engine.pod]=../perlvars.pm
+DEPEND[openssl-errstr.pod]=../perlvars.pm
+DEPEND[openssl-fipsinstall.pod]=../perlvars.pm
+DEPEND[openssl-gendsa.pod]=../perlvars.pm
+DEPEND[openssl-genpkey.pod]=../perlvars.pm
+DEPEND[openssl-genrsa.pod]=../perlvars.pm
+DEPEND[openssl-info.pod]=../perlvars.pm
+DEPEND[openssl-kdf.pod]=../perlvars.pm
+DEPEND[openssl-list.pod]=../perlvars.pm
+DEPEND[openssl-mac.pod]=../perlvars.pm
+DEPEND[openssl-nseq.pod]=../perlvars.pm
+DEPEND[openssl-ocsp.pod]=../perlvars.pm
+DEPEND[openssl-passwd.pod]=../perlvars.pm
+DEPEND[openssl-pkcs12.pod]=../perlvars.pm
+DEPEND[openssl-pkcs7.pod]=../perlvars.pm
+DEPEND[openssl-pkcs8.pod]=../perlvars.pm
+DEPEND[openssl-pkeyparam.pod]=../perlvars.pm
+DEPEND[openssl-pkey.pod]=../perlvars.pm
+DEPEND[openssl-pkeyutl.pod]=../perlvars.pm
+DEPEND[openssl-prime.pod]=../perlvars.pm
+DEPEND[openssl-rand.pod]=../perlvars.pm
+DEPEND[openssl-rehash.pod]=../perlvars.pm
+DEPEND[openssl-req.pod]=../perlvars.pm
+DEPEND[openssl-rsa.pod]=../perlvars.pm
+DEPEND[openssl-rsautl.pod]=../perlvars.pm
+DEPEND[openssl-s_client.pod]=../perlvars.pm
+DEPEND[openssl-sess_id.pod]=../perlvars.pm
+DEPEND[openssl-smime.pod]=../perlvars.pm
+DEPEND[openssl-speed.pod]=../perlvars.pm
+DEPEND[openssl-spkac.pod]=../perlvars.pm
+DEPEND[openssl-srp.pod]=../perlvars.pm
+DEPEND[openssl-s_server.pod]=../perlvars.pm
+DEPEND[openssl-s_time.pod]=../perlvars.pm
+DEPEND[openssl-storeutl.pod]=../perlvars.pm
+DEPEND[openssl-ts.pod]=../perlvars.pm
+DEPEND[openssl-verify.pod]=../perlvars.pm
+DEPEND[openssl-version.pod]=../perlvars.pm
+DEPEND[openssl-x509.pod]=../perlvars.pm
diff --git a/deps/openssl/openssl_asm.gypi b/deps/openssl/openssl_asm.gypi
index dd7e636eb08893..51631c536bbbef 100644
--- a/deps/openssl/openssl_asm.gypi
+++ b/deps/openssl/openssl_asm.gypi
@@ -8,7 +8,7 @@
'includes': ['config/archs/linux64-s390x/asm/openssl.gypi'],
}, 'target_arch=="arm" and OS=="linux"', {
'includes': ['config/archs/linux-armv4/asm/openssl.gypi'],
- }, 'target_arch=="arm64" and OS=="linux"', {
+ }, 'target_arch=="arm64" and OS in "linux openharmony"', {
'includes': ['config/archs/linux-aarch64/asm/openssl.gypi'],
}, 'target_arch=="arm64" and OS=="mac"', {
'includes': ['config/archs/darwin64-arm64-cc/asm/openssl.gypi'],
diff --git a/deps/openssl/openssl_asm_avx2.gypi b/deps/openssl/openssl_asm_avx2.gypi
index 6a9c56d76a211a..a6e69b71524366 100644
--- a/deps/openssl/openssl_asm_avx2.gypi
+++ b/deps/openssl/openssl_asm_avx2.gypi
@@ -8,7 +8,7 @@
'includes': ['config/archs/linux64-s390x/asm_avx2/openssl.gypi'],
}, 'target_arch=="arm" and OS=="linux"', {
'includes': ['config/archs/linux-armv4/asm_avx2/openssl.gypi'],
- }, 'target_arch=="arm64" and OS=="linux"', {
+ }, 'target_arch=="arm64" and OS in ("linux", "openharmony")', {
'includes': ['config/archs/linux-aarch64/asm_avx2/openssl.gypi'],
}, 'target_arch=="ia32" and OS=="freebsd"', {
'includes': ['config/archs/BSD-x86/asm_avx2/openssl.gypi'],
diff --git a/deps/openssl/openssl_no_asm.gypi b/deps/openssl/openssl_no_asm.gypi
index 20663decabba23..8169f605d7d7f1 100644
--- a/deps/openssl/openssl_no_asm.gypi
+++ b/deps/openssl/openssl_no_asm.gypi
@@ -9,7 +9,7 @@
'includes': ['config/archs/linux64-s390x/no-asm/openssl.gypi'],
}, 'target_arch=="arm" and OS in ("linux", "android")', {
'includes': ['config/archs/linux-armv4/no-asm/openssl.gypi'],
- }, 'target_arch=="arm64" and OS in ("linux", "android")', {
+ }, 'target_arch=="arm64" and OS in ("linux", "android", "openharmony")', {
'includes': ['config/archs/linux-aarch64/no-asm/openssl.gypi'],
}, 'target_arch=="ia32" and OS=="freebsd"', {
'includes': ['config/archs/BSD-x86/no-asm/openssl.gypi'],
diff --git a/deps/simdjson/simdjson.cpp b/deps/simdjson/simdjson.cpp
index aaeca3fadde29b..d0f441b5a5401d 100644
--- a/deps/simdjson/simdjson.cpp
+++ b/deps/simdjson/simdjson.cpp
@@ -1,4 +1,4 @@
-/* auto-generated on 2025-02-14 16:11:36 -0500. Do not edit! */
+/* auto-generated on 2025-03-27 15:01:10 -0400. Do not edit! */
/* including simdjson.cpp: */
/* begin file simdjson.cpp */
#define SIMDJSON_SRC_SIMDJSON_CPP
@@ -776,22 +776,22 @@ inline namespace literals {
inline namespace string_view_literals {
-constexpr std::string_view operator "" _sv( const char* str, size_t len ) noexcept // (1)
+constexpr std::string_view operator ""_sv( const char* str, size_t len ) noexcept // (1)
{
return std::string_view{ str, len };
}
-constexpr std::u16string_view operator "" _sv( const char16_t* str, size_t len ) noexcept // (2)
+constexpr std::u16string_view operator ""_sv( const char16_t* str, size_t len ) noexcept // (2)
{
return std::u16string_view{ str, len };
}
-constexpr std::u32string_view operator "" _sv( const char32_t* str, size_t len ) noexcept // (3)
+constexpr std::u32string_view operator ""_sv( const char32_t* str, size_t len ) noexcept // (3)
{
return std::u32string_view{ str, len };
}
-constexpr std::wstring_view operator "" _sv( const wchar_t* str, size_t len ) noexcept // (4)
+constexpr std::wstring_view operator ""_sv( const wchar_t* str, size_t len ) noexcept // (4)
{
return std::wstring_view{ str, len };
}
@@ -2122,22 +2122,22 @@ nssv_inline_ns namespace string_view_literals {
#if nssv_CONFIG_STD_SV_OPERATOR && nssv_HAVE_STD_DEFINED_LITERALS
-nssv_constexpr nonstd::sv_lite::string_view operator "" sv( const char* str, size_t len ) nssv_noexcept // (1)
+nssv_constexpr nonstd::sv_lite::string_view operator ""sv( const char* str, size_t len ) nssv_noexcept // (1)
{
return nonstd::sv_lite::string_view{ str, len };
}
-nssv_constexpr nonstd::sv_lite::u16string_view operator "" sv( const char16_t* str, size_t len ) nssv_noexcept // (2)
+nssv_constexpr nonstd::sv_lite::u16string_view operator ""sv( const char16_t* str, size_t len ) nssv_noexcept // (2)
{
return nonstd::sv_lite::u16string_view{ str, len };
}
-nssv_constexpr nonstd::sv_lite::u32string_view operator "" sv( const char32_t* str, size_t len ) nssv_noexcept // (3)
+nssv_constexpr nonstd::sv_lite::u32string_view operator ""sv( const char32_t* str, size_t len ) nssv_noexcept // (3)
{
return nonstd::sv_lite::u32string_view{ str, len };
}
-nssv_constexpr nonstd::sv_lite::wstring_view operator "" sv( const wchar_t* str, size_t len ) nssv_noexcept // (4)
+nssv_constexpr nonstd::sv_lite::wstring_view operator ""sv( const wchar_t* str, size_t len ) nssv_noexcept // (4)
{
return nonstd::sv_lite::wstring_view{ str, len };
}
@@ -2146,22 +2146,22 @@ nssv_constexpr nonstd::sv_lite::wstring_view operator "" sv( const wchar_t* str,
#if nssv_CONFIG_USR_SV_OPERATOR
-nssv_constexpr nonstd::sv_lite::string_view operator "" _sv( const char* str, size_t len ) nssv_noexcept // (1)
+nssv_constexpr nonstd::sv_lite::string_view operator ""_sv( const char* str, size_t len ) nssv_noexcept // (1)
{
return nonstd::sv_lite::string_view{ str, len };
}
-nssv_constexpr nonstd::sv_lite::u16string_view operator "" _sv( const char16_t* str, size_t len ) nssv_noexcept // (2)
+nssv_constexpr nonstd::sv_lite::u16string_view operator ""_sv( const char16_t* str, size_t len ) nssv_noexcept // (2)
{
return nonstd::sv_lite::u16string_view{ str, len };
}
-nssv_constexpr nonstd::sv_lite::u32string_view operator "" _sv( const char32_t* str, size_t len ) nssv_noexcept // (3)
+nssv_constexpr nonstd::sv_lite::u32string_view operator ""_sv( const char32_t* str, size_t len ) nssv_noexcept // (3)
{
return nonstd::sv_lite::u32string_view{ str, len };
}
-nssv_constexpr nonstd::sv_lite::wstring_view operator "" _sv( const wchar_t* str, size_t len ) nssv_noexcept // (4)
+nssv_constexpr nonstd::sv_lite::wstring_view operator ""_sv( const wchar_t* str, size_t len ) nssv_noexcept // (4)
{
return nonstd::sv_lite::wstring_view{ str, len };
}
@@ -2431,7 +2431,7 @@ enum error_code {
SUCCESS = 0, ///< No error
CAPACITY, ///< This parser can't support a document that big
MEMALLOC, ///< Error allocating memory, most likely out of memory
- TAPE_ERROR, ///< Something went wrong, this is a generic error
+ TAPE_ERROR, ///< Something went wrong, this is a generic error. Fatal/unrecoverable error.
DEPTH_ERROR, ///< Your document exceeds the user-specified depth limitation
STRING_ERROR, ///< Problem while parsing a string
T_ATOM_ERROR, ///< Problem while parsing an atom starting with the letter 't'
@@ -2456,13 +2456,21 @@ enum error_code {
PARSER_IN_USE, ///< parser is already in use.
OUT_OF_ORDER_ITERATION, ///< tried to iterate an array or object out of order (checked when SIMDJSON_DEVELOPMENT_CHECKS=1)
INSUFFICIENT_PADDING, ///< The JSON doesn't have enough padding for simdjson to safely parse it.
- INCOMPLETE_ARRAY_OR_OBJECT, ///< The document ends early.
+ INCOMPLETE_ARRAY_OR_OBJECT, ///< The document ends early. Fatal/unrecoverable error.
SCALAR_DOCUMENT_AS_VALUE, ///< A scalar document is treated as a value.
OUT_OF_BOUNDS, ///< Attempted to access location outside of document.
TRAILING_CONTENT, ///< Unexpected trailing content in the JSON input
NUM_ERROR_CODES
};
+/**
+ * Some errors are fatal and invalidate the document. This function returns true if the
+ * error is fatal. It returns true for TAPE_ERROR and INCOMPLETE_ARRAY_OR_OBJECT.
+ * Once a fatal error is encountered, the on-demand document is no longer valid and
+ * processing should stop.
+ */
+ inline bool is_fatal(error_code error) noexcept;
+
/**
* It is the convention throughout the code that the macro SIMDJSON_DEVELOPMENT_CHECKS determines whether
* we check for OUT_OF_ORDER_ITERATION. The logic behind it is that these errors only occurs when the code
@@ -2765,14 +2773,30 @@ SIMDJSON_IMPL_CONCEPT(op_append, operator+=)
#undef SIMDJSON_IMPL_CONCEPT
} // namespace details
+
+template
+concept string_view_like = std::is_convertible_v &&
+ !std::is_convertible_v;
+
+template
+concept constructible_from_string_view = std::is_constructible_v
+ && !std::is_same_v
+ && std::is_default_constructible_v;
+
+template
+concept string_view_keyed_map = string_view_like
+ && requires(std::remove_cvref_t& m, typename M::key_type sv, typename M::mapped_type v) {
+ { m.emplace(sv, v) } -> std::same_as>;
+};
+
/// Check if T is a container that we can append to, including:
/// std::vector, std::deque, std::list, std::string, ...
template
concept appendable_containers =
- details::supports_emplace_back || details::supports_emplace ||
+ (details::supports_emplace_back || details::supports_emplace ||
details::supports_push_back || details::supports_push ||
details::supports_add || details::supports_append ||
- details::supports_insert;
+ details::supports_insert) && !string_view_keyed_map;
/// Insert into the container however possible
template
@@ -2840,6 +2864,8 @@ concept optional_type = requires(std::remove_cvref_t |