@aztec/bb.js 3.0.0-canary.a9708bd → 3.0.0-devnet.2-patch.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -79
- package/build/amd64-linux/bb +0 -0
- package/build/amd64-linux/nodejs_module.node +0 -0
- package/build/amd64-macos/bb +0 -0
- package/build/amd64-macos/nodejs_module.node +0 -0
- package/build/arm64-linux/bb +0 -0
- package/build/arm64-linux/nodejs_module.node +0 -0
- package/build/arm64-macos/bb +0 -0
- package/build/arm64-macos/nodejs_module.node +0 -0
- package/dest/browser/async_map/index.d.ts +1 -1
- package/dest/browser/async_map/index.js +1 -1
- package/dest/browser/barretenberg/backend.d.ts +32 -41
- package/dest/browser/barretenberg/backend.d.ts.map +1 -1
- package/dest/browser/barretenberg/backend.js +128 -108
- package/dest/browser/barretenberg/index.d.ts +47 -48
- package/dest/browser/barretenberg/index.d.ts.map +1 -1
- package/dest/browser/barretenberg/index.js +132 -90
- package/dest/browser/barretenberg/testing/bigint-buffer.d.ts +17 -0
- package/dest/browser/barretenberg/testing/bigint-buffer.d.ts.map +1 -0
- package/dest/browser/barretenberg/testing/bigint-buffer.js +37 -0
- package/dest/browser/barretenberg/testing/fields.d.ts +16 -0
- package/dest/browser/barretenberg/testing/fields.d.ts.map +1 -0
- package/dest/browser/barretenberg/testing/fields.js +47 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +2 -2
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.js +6 -7
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.js +1 -3
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.js +1 -7
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +5 -5
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +20 -11
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +16 -7
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.js +94 -26
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.js +1 -3
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js +1 -7
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +9 -8
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.js +4 -3
- package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts +1 -1
- package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg-threads.js +1 -1
- package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts +1 -1
- package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg.js +1 -1
- package/dest/browser/barretenberg_wasm/fetch_code/browser/index.d.ts +1 -1
- package/dest/browser/barretenberg_wasm/fetch_code/browser/index.js +1 -1
- package/dest/browser/barretenberg_wasm/fetch_code/index.d.ts +1 -1
- package/dest/browser/barretenberg_wasm/helpers/browser/index.d.ts +2 -2
- package/dest/browser/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -1
- package/dest/browser/barretenberg_wasm/helpers/browser/index.js +9 -2
- package/dest/browser/barretenberg_wasm/helpers/index.d.ts +1 -1
- package/dest/browser/barretenberg_wasm/index.d.ts +1 -1
- package/dest/browser/barretenberg_wasm/index.d.ts.map +1 -1
- package/dest/browser/barretenberg_wasm/index.js +2 -3
- package/dest/browser/bb_backends/browser/index.d.ts +11 -0
- package/dest/browser/bb_backends/browser/index.d.ts.map +1 -0
- package/dest/browser/bb_backends/browser/index.js +39 -0
- package/dest/browser/bb_backends/browser/platform.d.ts +4 -0
- package/dest/browser/bb_backends/browser/platform.d.ts.map +1 -0
- package/dest/browser/bb_backends/browser/platform.js +10 -0
- package/dest/browser/bb_backends/index.d.ts +50 -0
- package/dest/browser/bb_backends/index.d.ts.map +1 -0
- package/dest/browser/bb_backends/index.js +16 -0
- package/dest/browser/bb_backends/interface.d.ts +33 -0
- package/dest/browser/bb_backends/interface.d.ts.map +1 -0
- package/dest/browser/bb_backends/interface.js +2 -0
- package/dest/browser/bb_backends/wasm.d.ts +49 -0
- package/dest/browser/bb_backends/wasm.d.ts.map +1 -0
- package/dest/browser/bb_backends/wasm.js +85 -0
- package/dest/browser/bbapi_exception.d.ts +7 -0
- package/dest/browser/bbapi_exception.d.ts.map +1 -0
- package/dest/browser/bbapi_exception.js +14 -0
- package/dest/browser/bin/index.d.ts +3 -0
- package/dest/{node/bindgen → browser/bin}/index.d.ts.map +1 -1
- package/dest/browser/bin/index.js +11 -0
- package/dest/browser/cbind/generate.d.ts +1 -1
- package/dest/browser/cbind/generate.js +94 -7
- package/dest/browser/cbind/generated/api_types.d.ts +1629 -230
- package/dest/browser/cbind/generated/api_types.d.ts.map +1 -1
- package/dest/browser/cbind/generated/api_types.js +2349 -479
- package/dest/browser/cbind/generated/async.d.ts +53 -14
- package/dest/browser/cbind/generated/async.d.ts.map +1 -1
- package/dest/browser/cbind/generated/async.js +587 -72
- package/dest/browser/cbind/generated/curve_constants.d.ts +45 -0
- package/dest/browser/cbind/generated/curve_constants.d.ts.map +1 -0
- package/dest/browser/cbind/generated/curve_constants.js +45 -0
- package/dest/browser/cbind/generated/sync.d.ts +54 -15
- package/dest/browser/cbind/generated/sync.d.ts.map +1 -1
- package/dest/browser/cbind/generated/sync.js +549 -72
- package/dest/browser/cbind/schema_compiler.d.ts +3 -5
- package/dest/browser/cbind/schema_compiler.d.ts.map +1 -1
- package/dest/browser/cbind/schema_compiler.js +102 -185
- package/dest/browser/crs/browser/cached_net_crs.d.ts +1 -1
- package/dest/browser/crs/browser/cached_net_crs.d.ts.map +1 -1
- package/dest/browser/crs/browser/cached_net_crs.js +6 -1
- package/dest/browser/crs/browser/index.d.ts +1 -1
- package/dest/browser/crs/index.d.ts +1 -1
- package/dest/browser/crs/net_crs.d.ts +1 -16
- package/dest/browser/crs/net_crs.d.ts.map +1 -1
- package/dest/browser/crs/net_crs.js +6 -1
- package/dest/browser/index.d.ts +6 -3
- package/dest/browser/index.d.ts.map +1 -1
- package/dest/browser/index.js +6 -3
- package/dest/browser/proof/index.d.ts +1 -1
- package/dest/browser/proof/index.js +1 -1
- package/dest/browser/random/browser/index.d.ts +1 -1
- package/dest/browser/random/browser/index.d.ts.map +1 -1
- package/dest/browser/random/browser/index.js +1 -1
- package/dest/browser/random/index.d.ts +1 -1
- package/dest/browser/retry/index.d.ts +1 -1
- package/dest/browser/retry/index.js +1 -1
- package/dest/node/async_map/index.d.ts +1 -1
- package/dest/node/async_map/index.js +1 -1
- package/dest/node/barretenberg/__snapshots__/pedersen.test.js.snap +2 -2
- package/dest/node/barretenberg/__snapshots__/poseidon.test.js.snap +3 -3
- package/dest/node/barretenberg/backend.d.ts +32 -41
- package/dest/node/barretenberg/backend.d.ts.map +1 -1
- package/dest/node/barretenberg/backend.js +128 -108
- package/dest/node/barretenberg/blake2s.test.d.ts +1 -1
- package/dest/node/barretenberg/blake2s.test.js +21 -18
- package/dest/node/barretenberg/index.d.ts +47 -48
- package/dest/node/barretenberg/index.d.ts.map +1 -1
- package/dest/node/barretenberg/index.js +132 -90
- package/dest/node/barretenberg/pedersen.test.d.ts +1 -1
- package/dest/node/barretenberg/pedersen.test.js +25 -18
- package/dest/node/barretenberg/poseidon.bench.test.d.ts +2 -0
- package/dest/node/barretenberg/poseidon.bench.test.d.ts.map +1 -0
- package/dest/node/barretenberg/poseidon.bench.test.js +218 -0
- package/dest/node/barretenberg/poseidon.test.d.ts +1 -1
- package/dest/node/barretenberg/poseidon.test.js +16 -16
- package/dest/node/barretenberg/testing/bigint-buffer.d.ts +17 -0
- package/dest/node/barretenberg/testing/bigint-buffer.d.ts.map +1 -0
- package/dest/node/barretenberg/testing/bigint-buffer.js +37 -0
- package/dest/node/barretenberg/testing/fields.d.ts +16 -0
- package/dest/node/barretenberg/testing/fields.d.ts.map +1 -0
- package/dest/node/barretenberg/testing/fields.js +47 -0
- package/dest/node/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +2 -2
- package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.js +6 -7
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.js +1 -3
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.js +1 -7
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.js +1 -3
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.d.ts +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.js +1 -8
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +5 -5
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +20 -11
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +16 -7
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.js +94 -26
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.js +1 -3
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js +1 -7
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.js +1 -3
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.d.ts +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.js +1 -7
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +9 -8
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/index.js +4 -3
- package/dest/node/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts +1 -1
- package/dest/node/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts +1 -1
- package/dest/node/barretenberg_wasm/fetch_code/browser/index.d.ts +1 -1
- package/dest/node/barretenberg_wasm/fetch_code/browser/index.js +1 -1
- package/dest/node/barretenberg_wasm/fetch_code/index.d.ts +1 -1
- package/dest/node/barretenberg_wasm/fetch_code/node/index.d.ts +1 -1
- package/dest/node/barretenberg_wasm/fetch_code/node/index.js +1 -1
- package/dest/node/barretenberg_wasm/helpers/browser/index.d.ts +2 -2
- package/dest/node/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/helpers/browser/index.js +9 -2
- package/dest/node/barretenberg_wasm/helpers/index.d.ts +1 -1
- package/dest/node/barretenberg_wasm/helpers/node/index.d.ts +5 -6
- package/dest/node/barretenberg_wasm/helpers/node/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/helpers/node/index.js +14 -6
- package/dest/node/barretenberg_wasm/helpers/node/node_endpoint.d.ts +2 -2
- package/dest/node/barretenberg_wasm/helpers/node/node_endpoint.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/helpers/node/node_endpoint.js +1 -1
- package/dest/node/barretenberg_wasm/index.d.ts +1 -1
- package/dest/node/barretenberg_wasm/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/index.js +2 -3
- package/dest/node/barretenberg_wasm/index.test.d.ts +1 -1
- package/dest/node/barretenberg_wasm/index.test.js +11 -10
- package/dest/node/bb_backends/browser/index.d.ts +11 -0
- package/dest/node/bb_backends/browser/index.d.ts.map +1 -0
- package/dest/node/bb_backends/browser/index.js +39 -0
- package/dest/node/bb_backends/browser/platform.d.ts +4 -0
- package/dest/node/bb_backends/browser/platform.d.ts.map +1 -0
- package/dest/node/bb_backends/browser/platform.js +10 -0
- package/dest/node/bb_backends/index.d.ts +50 -0
- package/dest/node/bb_backends/index.d.ts.map +1 -0
- package/dest/node/bb_backends/index.js +16 -0
- package/dest/node/bb_backends/interface.d.ts +33 -0
- package/dest/node/bb_backends/interface.d.ts.map +1 -0
- package/dest/node/bb_backends/interface.js +2 -0
- package/dest/node/bb_backends/node/index.d.ts +11 -0
- package/dest/node/bb_backends/node/index.d.ts.map +1 -0
- package/dest/node/bb_backends/node/index.js +86 -0
- package/dest/node/bb_backends/node/native_pipe.d.ts +25 -0
- package/dest/node/bb_backends/node/native_pipe.d.ts.map +1 -0
- package/dest/node/bb_backends/node/native_pipe.js +114 -0
- package/dest/node/bb_backends/node/native_shm.d.ts +28 -0
- package/dest/node/bb_backends/node/native_shm.d.ts.map +1 -0
- package/dest/node/bb_backends/node/native_shm.js +172 -0
- package/dest/node/bb_backends/node/native_shm_async.d.ts +51 -0
- package/dest/node/bb_backends/node/native_shm_async.d.ts.map +1 -0
- package/dest/node/bb_backends/node/native_shm_async.js +232 -0
- package/dest/node/bb_backends/node/native_socket.d.ts +34 -0
- package/dest/node/bb_backends/node/native_socket.d.ts.map +1 -0
- package/dest/node/bb_backends/node/native_socket.js +281 -0
- package/dest/node/bb_backends/node/platform.d.ts +27 -0
- package/dest/node/bb_backends/node/platform.d.ts.map +1 -0
- package/dest/node/bb_backends/node/platform.js +129 -0
- package/dest/node/bb_backends/wasm.d.ts +49 -0
- package/dest/node/bb_backends/wasm.d.ts.map +1 -0
- package/dest/node/bb_backends/wasm.js +85 -0
- package/dest/node/bbapi/exception_handling.test.d.ts +2 -0
- package/dest/node/bbapi/exception_handling.test.d.ts.map +1 -0
- package/dest/node/bbapi/exception_handling.test.js +48 -0
- package/dest/node/bbapi_exception.d.ts +7 -0
- package/dest/node/bbapi_exception.d.ts.map +1 -0
- package/dest/node/bbapi_exception.js +14 -0
- package/dest/node/benchmark/index.d.ts +1 -1
- package/dest/node/benchmark/index.js +1 -1
- package/dest/node/benchmark/timer.d.ts +1 -1
- package/dest/node/benchmark/timer.d.ts.map +1 -1
- package/dest/node/benchmark/timer.js +2 -1
- package/dest/node/bin/index.d.ts +3 -0
- package/dest/node/bin/index.d.ts.map +1 -0
- package/dest/node/bin/index.js +11 -0
- package/dest/node/cbind/generate.d.ts +1 -1
- package/dest/node/cbind/generate.js +94 -7
- package/dest/node/cbind/generated/api_types.d.ts +1629 -230
- package/dest/node/cbind/generated/api_types.d.ts.map +1 -1
- package/dest/node/cbind/generated/api_types.js +2349 -479
- package/dest/node/cbind/generated/async.d.ts +53 -14
- package/dest/node/cbind/generated/async.d.ts.map +1 -1
- package/dest/node/cbind/generated/async.js +587 -72
- package/dest/node/cbind/generated/curve_constants.d.ts +45 -0
- package/dest/node/cbind/generated/curve_constants.d.ts.map +1 -0
- package/dest/node/cbind/generated/curve_constants.js +45 -0
- package/dest/node/cbind/generated/sync.d.ts +54 -15
- package/dest/node/cbind/generated/sync.d.ts.map +1 -1
- package/dest/node/cbind/generated/sync.js +549 -72
- package/dest/node/cbind/schema_compiler.d.ts +3 -5
- package/dest/node/cbind/schema_compiler.d.ts.map +1 -1
- package/dest/node/cbind/schema_compiler.js +102 -185
- package/dest/node/crs/browser/cached_net_crs.d.ts +1 -1
- package/dest/node/crs/browser/cached_net_crs.d.ts.map +1 -1
- package/dest/node/crs/browser/cached_net_crs.js +6 -1
- package/dest/node/crs/browser/index.d.ts +1 -1
- package/dest/node/crs/index.d.ts +1 -1
- package/dest/node/crs/net_crs.d.ts +1 -16
- package/dest/node/crs/net_crs.d.ts.map +1 -1
- package/dest/node/crs/net_crs.js +6 -1
- package/dest/node/crs/node/index.d.ts +1 -1
- package/dest/node/crs/node/index.d.ts.map +1 -1
- package/dest/node/crs/node/index.js +11 -6
- package/dest/node/index.d.ts +6 -3
- package/dest/node/index.d.ts.map +1 -1
- package/dest/node/index.js +6 -3
- package/dest/node/proof/index.d.ts +1 -1
- package/dest/node/proof/index.js +1 -1
- package/dest/node/random/browser/index.d.ts +1 -1
- package/dest/node/random/browser/index.d.ts.map +1 -1
- package/dest/node/random/browser/index.js +1 -1
- package/dest/node/random/index.d.ts +1 -1
- package/dest/node/random/node/index.d.ts +1 -1
- package/dest/node/random/node/index.js +1 -1
- package/dest/node/retry/index.d.ts +1 -1
- package/dest/node/retry/index.js +1 -1
- package/dest/node-cjs/async_map/index.d.ts +1 -1
- package/dest/node-cjs/async_map/index.js +1 -1
- package/dest/node-cjs/barretenberg/backend.d.ts +32 -41
- package/dest/node-cjs/barretenberg/backend.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg/backend.js +131 -111
- package/dest/node-cjs/barretenberg/blake2s.test.d.ts +1 -1
- package/dest/node-cjs/barretenberg/blake2s.test.js +22 -19
- package/dest/node-cjs/barretenberg/index.d.ts +47 -48
- package/dest/node-cjs/barretenberg/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg/index.js +136 -93
- package/dest/node-cjs/barretenberg/pedersen.test.d.ts +1 -1
- package/dest/node-cjs/barretenberg/pedersen.test.js +27 -20
- package/dest/node-cjs/barretenberg/poseidon.bench.test.d.ts +2 -0
- package/dest/node-cjs/barretenberg/poseidon.bench.test.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg/poseidon.bench.test.js +220 -0
- package/dest/node-cjs/barretenberg/poseidon.test.d.ts +1 -1
- package/dest/node-cjs/barretenberg/poseidon.test.js +16 -16
- package/dest/node-cjs/barretenberg/testing/bigint-buffer.d.ts +17 -0
- package/dest/node-cjs/barretenberg/testing/bigint-buffer.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg/testing/bigint-buffer.js +43 -0
- package/dest/node-cjs/barretenberg/testing/fields.d.ts +16 -0
- package/dest/node-cjs/barretenberg/testing/fields.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg/testing/fields.js +51 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +2 -2
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.js +8 -9
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.js +3 -5
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.js +1 -7
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.js +1 -3
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.js +1 -8
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +5 -5
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +20 -11
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +16 -7
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.js +94 -26
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.js +3 -5
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js +1 -7
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.js +1 -3
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.js +1 -7
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +9 -8
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.js +4 -3
- package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg-threads.js +1 -1
- package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg.js +1 -1
- package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/index.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/index.js +2 -2
- package/dest/node-cjs/barretenberg_wasm/fetch_code/index.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/fetch_code/node/index.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/fetch_code/node/index.js +2 -2
- package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.d.ts +2 -2
- package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.js +9 -2
- package/dest/node-cjs/barretenberg_wasm/helpers/index.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/helpers/node/index.d.ts +5 -6
- package/dest/node-cjs/barretenberg_wasm/helpers/node/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/helpers/node/index.js +15 -7
- package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.d.ts +2 -2
- package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.js +1 -1
- package/dest/node-cjs/barretenberg_wasm/index.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/index.js +2 -3
- package/dest/node-cjs/barretenberg_wasm/index.test.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/index.test.js +11 -10
- package/dest/node-cjs/bb_backends/browser/index.d.ts +11 -0
- package/dest/node-cjs/bb_backends/browser/index.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/browser/index.js +43 -0
- package/dest/node-cjs/bb_backends/browser/platform.d.ts +4 -0
- package/dest/node-cjs/bb_backends/browser/platform.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/browser/platform.js +15 -0
- package/dest/node-cjs/bb_backends/index.d.ts +50 -0
- package/dest/node-cjs/bb_backends/index.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/index.js +18 -0
- package/dest/node-cjs/bb_backends/interface.d.ts +33 -0
- package/dest/node-cjs/bb_backends/interface.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/interface.js +3 -0
- package/dest/node-cjs/bb_backends/node/index.d.ts +11 -0
- package/dest/node-cjs/bb_backends/node/index.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/node/index.js +90 -0
- package/dest/node-cjs/bb_backends/node/native_pipe.d.ts +25 -0
- package/dest/node-cjs/bb_backends/node/native_pipe.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/node/native_pipe.js +118 -0
- package/dest/node-cjs/bb_backends/node/native_shm.d.ts +28 -0
- package/dest/node-cjs/bb_backends/node/native_shm.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/node/native_shm.js +176 -0
- package/dest/node-cjs/bb_backends/node/native_shm_async.d.ts +51 -0
- package/dest/node-cjs/bb_backends/node/native_shm_async.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/node/native_shm_async.js +236 -0
- package/dest/node-cjs/bb_backends/node/native_socket.d.ts +34 -0
- package/dest/node-cjs/bb_backends/node/native_socket.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/node/native_socket.js +286 -0
- package/dest/node-cjs/bb_backends/node/platform.d.ts +27 -0
- package/dest/node-cjs/bb_backends/node/platform.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/node/platform.js +136 -0
- package/dest/node-cjs/bb_backends/wasm.d.ts +49 -0
- package/dest/node-cjs/bb_backends/wasm.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/wasm.js +90 -0
- package/dest/node-cjs/bbapi/exception_handling.test.d.ts +2 -0
- package/dest/node-cjs/bbapi/exception_handling.test.d.ts.map +1 -0
- package/dest/node-cjs/bbapi/exception_handling.test.js +50 -0
- package/dest/node-cjs/bbapi_exception.d.ts +7 -0
- package/dest/node-cjs/bbapi_exception.d.ts.map +1 -0
- package/dest/node-cjs/bbapi_exception.js +18 -0
- package/dest/node-cjs/benchmark/index.d.ts +1 -1
- package/dest/node-cjs/benchmark/index.js +2 -2
- package/dest/node-cjs/benchmark/timer.d.ts +1 -1
- package/dest/node-cjs/benchmark/timer.d.ts.map +1 -1
- package/dest/node-cjs/benchmark/timer.js +2 -1
- package/dest/node-cjs/bin/index.d.ts +3 -0
- package/dest/node-cjs/{bindgen → bin}/index.d.ts.map +1 -1
- package/dest/node-cjs/bin/index.js +13 -0
- package/dest/node-cjs/cbind/generate.d.ts +1 -1
- package/dest/node-cjs/cbind/generate.js +93 -6
- package/dest/node-cjs/cbind/generated/api_types.d.ts +1629 -230
- package/dest/node-cjs/cbind/generated/api_types.d.ts.map +1 -1
- package/dest/node-cjs/cbind/generated/api_types.js +2555 -519
- package/dest/node-cjs/cbind/generated/async.d.ts +53 -14
- package/dest/node-cjs/cbind/generated/async.d.ts.map +1 -1
- package/dest/node-cjs/cbind/generated/async.js +586 -71
- package/dest/node-cjs/cbind/generated/curve_constants.d.ts +45 -0
- package/dest/node-cjs/cbind/generated/curve_constants.d.ts.map +1 -0
- package/dest/node-cjs/cbind/generated/curve_constants.js +48 -0
- package/dest/node-cjs/cbind/generated/sync.d.ts +54 -15
- package/dest/node-cjs/cbind/generated/sync.d.ts.map +1 -1
- package/dest/node-cjs/cbind/generated/sync.js +548 -71
- package/dest/node-cjs/cbind/schema_compiler.d.ts +3 -5
- package/dest/node-cjs/cbind/schema_compiler.d.ts.map +1 -1
- package/dest/node-cjs/cbind/schema_compiler.js +102 -186
- package/dest/node-cjs/crs/browser/cached_net_crs.d.ts +1 -1
- package/dest/node-cjs/crs/browser/cached_net_crs.d.ts.map +1 -1
- package/dest/node-cjs/crs/browser/cached_net_crs.js +6 -1
- package/dest/node-cjs/crs/browser/index.d.ts +1 -1
- package/dest/node-cjs/crs/browser/index.js +2 -2
- package/dest/node-cjs/crs/index.d.ts +1 -1
- package/dest/node-cjs/crs/index.js +2 -2
- package/dest/node-cjs/crs/net_crs.d.ts +1 -16
- package/dest/node-cjs/crs/net_crs.d.ts.map +1 -1
- package/dest/node-cjs/crs/net_crs.js +6 -1
- package/dest/node-cjs/crs/node/index.d.ts +1 -1
- package/dest/node-cjs/crs/node/index.d.ts.map +1 -1
- package/dest/node-cjs/crs/node/index.js +11 -6
- package/dest/node-cjs/index.d.ts +6 -3
- package/dest/node-cjs/index.d.ts.map +1 -1
- package/dest/node-cjs/index.js +29 -12
- package/dest/node-cjs/proof/index.d.ts +1 -1
- package/dest/node-cjs/proof/index.js +1 -1
- package/dest/node-cjs/random/browser/index.d.ts +1 -1
- package/dest/node-cjs/random/browser/index.d.ts.map +1 -1
- package/dest/node-cjs/random/browser/index.js +1 -1
- package/dest/node-cjs/random/index.d.ts +1 -1
- package/dest/node-cjs/random/node/index.d.ts +1 -1
- package/dest/node-cjs/random/node/index.js +1 -1
- package/dest/node-cjs/retry/index.d.ts +1 -1
- package/dest/node-cjs/retry/index.js +1 -1
- package/package.json +12 -10
- package/src/barretenberg/__snapshots__/pedersen.test.ts.snap +2 -2
- package/src/barretenberg/__snapshots__/poseidon.test.ts.snap +3 -3
- package/src/barretenberg/backend.ts +165 -154
- package/src/barretenberg/blake2s.test.ts +20 -21
- package/src/barretenberg/index.ts +144 -130
- package/src/barretenberg/pedersen.test.ts +24 -17
- package/src/barretenberg/poseidon.bench.test.ts +271 -0
- package/src/barretenberg/poseidon.test.ts +15 -15
- package/src/barretenberg/testing/fields.ts +63 -0
- package/src/barretenberg_wasm/barretenberg_wasm_base/index.ts +4 -5
- package/src/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.ts +0 -2
- package/src/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.ts +0 -7
- package/src/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.ts +0 -2
- package/src/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.ts +0 -9
- package/src/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.ts +17 -9
- package/src/barretenberg_wasm/barretenberg_wasm_main/index.ts +104 -20
- package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.ts +0 -2
- package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.ts +0 -7
- package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.ts +0 -2
- package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.ts +0 -7
- package/src/barretenberg_wasm/barretenberg_wasm_thread/index.ts +3 -2
- package/src/barretenberg_wasm/helpers/browser/index.ts +8 -1
- package/src/barretenberg_wasm/helpers/node/index.ts +13 -6
- package/src/barretenberg_wasm/index.test.ts +12 -11
- package/src/barretenberg_wasm/index.ts +1 -2
- package/src/bb_backends/browser/index.ts +50 -0
- package/src/bb_backends/browser/platform.ts +11 -0
- package/src/bb_backends/index.ts +55 -0
- package/src/bb_backends/interface.ts +35 -0
- package/src/bb_backends/node/index.ts +107 -0
- package/src/bb_backends/node/native_pipe.ts +127 -0
- package/src/bb_backends/node/native_shm.ts +190 -0
- package/src/bb_backends/node/native_shm_async.ts +261 -0
- package/src/bb_backends/node/native_socket.ts +325 -0
- package/src/bb_backends/node/platform.ts +156 -0
- package/src/bb_backends/wasm.ts +102 -0
- package/src/bbapi/exception_handling.test.ts +54 -0
- package/src/bbapi_exception.ts +13 -0
- package/src/bin/index.ts +14 -0
- package/src/cbind/README.md +1 -1
- package/src/cbind/generate.ts +99 -6
- package/src/cbind/generated/api_types.ts +4241 -0
- package/src/cbind/generated/async.ts +717 -0
- package/src/cbind/generated/curve_constants.ts +53 -0
- package/src/cbind/generated/sync.ts +663 -0
- package/src/cbind/schema_compiler.ts +156 -244
- package/src/crs/node/index.ts +4 -5
- package/src/index.ts +33 -1
- package/dest/browser/barretenberg_api/index.d.ts +0 -109
- package/dest/browser/barretenberg_api/index.d.ts.map +0 -1
- package/dest/browser/barretenberg_api/index.js +0 -699
- package/dest/browser/bigint-array/index.d.ts +0 -17
- package/dest/browser/bigint-array/index.d.ts.map +0 -1
- package/dest/browser/bigint-array/index.js +0 -37
- package/dest/browser/cbind/generated/native.d.ts +0 -31
- package/dest/browser/cbind/generated/native.d.ts.map +0 -1
- package/dest/browser/cbind/generated/native.js +0 -234
- package/dest/browser/log/browser/index.d.ts +0 -6
- package/dest/browser/log/browser/index.d.ts.map +0 -1
- package/dest/browser/log/browser/index.js +0 -28
- package/dest/browser/log/index.d.ts +0 -2
- package/dest/browser/log/index.d.ts.map +0 -1
- package/dest/browser/log/index.js +0 -2
- package/dest/browser/log/types.d.ts +0 -6
- package/dest/browser/log/types.d.ts.map +0 -1
- package/dest/browser/log/types.js +0 -2
- package/dest/browser/serialize/buffer_reader.d.ts +0 -28
- package/dest/browser/serialize/buffer_reader.d.ts.map +0 -1
- package/dest/browser/serialize/buffer_reader.js +0 -66
- package/dest/browser/serialize/index.d.ts +0 -4
- package/dest/browser/serialize/index.d.ts.map +0 -1
- package/dest/browser/serialize/index.js +0 -4
- package/dest/browser/serialize/output_type.d.ts +0 -11
- package/dest/browser/serialize/output_type.d.ts.map +0 -1
- package/dest/browser/serialize/output_type.js +0 -44
- package/dest/browser/serialize/serialize.d.ts +0 -53
- package/dest/browser/serialize/serialize.d.ts.map +0 -1
- package/dest/browser/serialize/serialize.js +0 -139
- package/dest/browser/types/fields.d.ts +0 -43
- package/dest/browser/types/fields.d.ts.map +0 -1
- package/dest/browser/types/fields.js +0 -102
- package/dest/browser/types/fixed_size_buffer.d.ts +0 -26
- package/dest/browser/types/fixed_size_buffer.d.ts.map +0 -1
- package/dest/browser/types/fixed_size_buffer.js +0 -51
- package/dest/browser/types/index.d.ts +0 -6
- package/dest/browser/types/index.d.ts.map +0 -1
- package/dest/browser/types/index.js +0 -6
- package/dest/browser/types/point.d.ts +0 -16
- package/dest/browser/types/point.d.ts.map +0 -1
- package/dest/browser/types/point.js +0 -31
- package/dest/browser/types/ptr.d.ts +0 -13
- package/dest/browser/types/ptr.d.ts.map +0 -1
- package/dest/browser/types/ptr.js +0 -19
- package/dest/browser/types/raw_buffer.d.ts +0 -3
- package/dest/browser/types/raw_buffer.d.ts.map +0 -1
- package/dest/browser/types/raw_buffer.js +0 -5
- package/dest/node/barretenberg/common.test.d.ts +0 -2
- package/dest/node/barretenberg/common.test.d.ts.map +0 -1
- package/dest/node/barretenberg/common.test.js +0 -20
- package/dest/node/barretenberg_api/index.d.ts +0 -109
- package/dest/node/barretenberg_api/index.d.ts.map +0 -1
- package/dest/node/barretenberg_api/index.js +0 -699
- package/dest/node/bigint-array/index.d.ts +0 -17
- package/dest/node/bigint-array/index.d.ts.map +0 -1
- package/dest/node/bigint-array/index.js +0 -37
- package/dest/node/bindgen/function_declaration.d.ts +0 -11
- package/dest/node/bindgen/function_declaration.d.ts.map +0 -1
- package/dest/node/bindgen/function_declaration.js +0 -2
- package/dest/node/bindgen/index.d.ts +0 -2
- package/dest/node/bindgen/index.js +0 -15
- package/dest/node/bindgen/mappings.d.ts +0 -4
- package/dest/node/bindgen/mappings.d.ts.map +0 -1
- package/dest/node/bindgen/mappings.js +0 -64
- package/dest/node/bindgen/rust.d.ts +0 -2
- package/dest/node/bindgen/rust.d.ts.map +0 -1
- package/dest/node/bindgen/rust.js +0 -43
- package/dest/node/bindgen/to_camel_case.d.ts +0 -2
- package/dest/node/bindgen/to_camel_case.d.ts.map +0 -1
- package/dest/node/bindgen/to_camel_case.js +0 -11
- package/dest/node/bindgen/typescript.d.ts +0 -2
- package/dest/node/bindgen/typescript.d.ts.map +0 -1
- package/dest/node/bindgen/typescript.js +0 -100
- package/dest/node/cbind/generated/native.d.ts +0 -31
- package/dest/node/cbind/generated/native.d.ts.map +0 -1
- package/dest/node/cbind/generated/native.js +0 -234
- package/dest/node/log/browser/index.d.ts +0 -6
- package/dest/node/log/browser/index.d.ts.map +0 -1
- package/dest/node/log/browser/index.js +0 -28
- package/dest/node/log/index.d.ts +0 -2
- package/dest/node/log/index.d.ts.map +0 -1
- package/dest/node/log/index.js +0 -2
- package/dest/node/log/node/index.d.ts +0 -6
- package/dest/node/log/node/index.d.ts.map +0 -1
- package/dest/node/log/node/index.js +0 -40
- package/dest/node/log/types.d.ts +0 -6
- package/dest/node/log/types.d.ts.map +0 -1
- package/dest/node/log/types.js +0 -2
- package/dest/node/main.d.ts +0 -13
- package/dest/node/main.d.ts.map +0 -1
- package/dest/node/main.js +0 -459
- package/dest/node/serialize/buffer_reader.d.ts +0 -28
- package/dest/node/serialize/buffer_reader.d.ts.map +0 -1
- package/dest/node/serialize/buffer_reader.js +0 -66
- package/dest/node/serialize/index.d.ts +0 -4
- package/dest/node/serialize/index.d.ts.map +0 -1
- package/dest/node/serialize/index.js +0 -4
- package/dest/node/serialize/output_type.d.ts +0 -11
- package/dest/node/serialize/output_type.d.ts.map +0 -1
- package/dest/node/serialize/output_type.js +0 -44
- package/dest/node/serialize/serialize.d.ts +0 -53
- package/dest/node/serialize/serialize.d.ts.map +0 -1
- package/dest/node/serialize/serialize.js +0 -139
- package/dest/node/types/fields.d.ts +0 -43
- package/dest/node/types/fields.d.ts.map +0 -1
- package/dest/node/types/fields.js +0 -102
- package/dest/node/types/fixed_size_buffer.d.ts +0 -26
- package/dest/node/types/fixed_size_buffer.d.ts.map +0 -1
- package/dest/node/types/fixed_size_buffer.js +0 -51
- package/dest/node/types/index.d.ts +0 -6
- package/dest/node/types/index.d.ts.map +0 -1
- package/dest/node/types/index.js +0 -6
- package/dest/node/types/point.d.ts +0 -16
- package/dest/node/types/point.d.ts.map +0 -1
- package/dest/node/types/point.js +0 -31
- package/dest/node/types/ptr.d.ts +0 -13
- package/dest/node/types/ptr.d.ts.map +0 -1
- package/dest/node/types/ptr.js +0 -19
- package/dest/node/types/raw_buffer.d.ts +0 -3
- package/dest/node/types/raw_buffer.d.ts.map +0 -1
- package/dest/node/types/raw_buffer.js +0 -5
- package/dest/node-cjs/barretenberg/common.test.d.ts +0 -2
- package/dest/node-cjs/barretenberg/common.test.d.ts.map +0 -1
- package/dest/node-cjs/barretenberg/common.test.js +0 -22
- package/dest/node-cjs/barretenberg_api/index.d.ts +0 -109
- package/dest/node-cjs/barretenberg_api/index.d.ts.map +0 -1
- package/dest/node-cjs/barretenberg_api/index.js +0 -704
- package/dest/node-cjs/bigint-array/index.d.ts +0 -17
- package/dest/node-cjs/bigint-array/index.d.ts.map +0 -1
- package/dest/node-cjs/bigint-array/index.js +0 -43
- package/dest/node-cjs/bindgen/function_declaration.d.ts +0 -11
- package/dest/node-cjs/bindgen/function_declaration.d.ts.map +0 -1
- package/dest/node-cjs/bindgen/function_declaration.js +0 -3
- package/dest/node-cjs/bindgen/index.d.ts +0 -2
- package/dest/node-cjs/bindgen/index.js +0 -17
- package/dest/node-cjs/bindgen/mappings.d.ts +0 -4
- package/dest/node-cjs/bindgen/mappings.d.ts.map +0 -1
- package/dest/node-cjs/bindgen/mappings.js +0 -69
- package/dest/node-cjs/bindgen/rust.d.ts +0 -2
- package/dest/node-cjs/bindgen/rust.d.ts.map +0 -1
- package/dest/node-cjs/bindgen/rust.js +0 -47
- package/dest/node-cjs/bindgen/to_camel_case.d.ts +0 -2
- package/dest/node-cjs/bindgen/to_camel_case.d.ts.map +0 -1
- package/dest/node-cjs/bindgen/to_camel_case.js +0 -14
- package/dest/node-cjs/bindgen/typescript.d.ts +0 -2
- package/dest/node-cjs/bindgen/typescript.d.ts.map +0 -1
- package/dest/node-cjs/bindgen/typescript.js +0 -104
- package/dest/node-cjs/cbind/generated/native.d.ts +0 -31
- package/dest/node-cjs/cbind/generated/native.d.ts.map +0 -1
- package/dest/node-cjs/cbind/generated/native.js +0 -238
- package/dest/node-cjs/log/browser/index.d.ts +0 -6
- package/dest/node-cjs/log/browser/index.d.ts.map +0 -1
- package/dest/node-cjs/log/browser/index.js +0 -30
- package/dest/node-cjs/log/index.d.ts +0 -2
- package/dest/node-cjs/log/index.d.ts.map +0 -1
- package/dest/node-cjs/log/index.js +0 -8
- package/dest/node-cjs/log/node/index.d.ts +0 -6
- package/dest/node-cjs/log/node/index.d.ts.map +0 -1
- package/dest/node-cjs/log/node/index.js +0 -42
- package/dest/node-cjs/log/types.d.ts +0 -6
- package/dest/node-cjs/log/types.d.ts.map +0 -1
- package/dest/node-cjs/log/types.js +0 -3
- package/dest/node-cjs/main.d.ts +0 -13
- package/dest/node-cjs/main.d.ts.map +0 -1
- package/dest/node-cjs/main.js +0 -470
- package/dest/node-cjs/serialize/buffer_reader.d.ts +0 -28
- package/dest/node-cjs/serialize/buffer_reader.d.ts.map +0 -1
- package/dest/node-cjs/serialize/buffer_reader.js +0 -70
- package/dest/node-cjs/serialize/index.d.ts +0 -4
- package/dest/node-cjs/serialize/index.d.ts.map +0 -1
- package/dest/node-cjs/serialize/index.js +0 -7
- package/dest/node-cjs/serialize/output_type.d.ts +0 -11
- package/dest/node-cjs/serialize/output_type.d.ts.map +0 -1
- package/dest/node-cjs/serialize/output_type.js +0 -51
- package/dest/node-cjs/serialize/serialize.d.ts +0 -53
- package/dest/node-cjs/serialize/serialize.d.ts.map +0 -1
- package/dest/node-cjs/serialize/serialize.js +0 -160
- package/dest/node-cjs/types/fields.d.ts +0 -43
- package/dest/node-cjs/types/fields.d.ts.map +0 -1
- package/dest/node-cjs/types/fields.js +0 -107
- package/dest/node-cjs/types/fixed_size_buffer.d.ts +0 -26
- package/dest/node-cjs/types/fixed_size_buffer.d.ts.map +0 -1
- package/dest/node-cjs/types/fixed_size_buffer.js +0 -57
- package/dest/node-cjs/types/index.d.ts +0 -6
- package/dest/node-cjs/types/index.d.ts.map +0 -1
- package/dest/node-cjs/types/index.js +0 -9
- package/dest/node-cjs/types/point.d.ts +0 -16
- package/dest/node-cjs/types/point.d.ts.map +0 -1
- package/dest/node-cjs/types/point.js +0 -35
- package/dest/node-cjs/types/ptr.d.ts +0 -13
- package/dest/node-cjs/types/ptr.d.ts.map +0 -1
- package/dest/node-cjs/types/ptr.js +0 -23
- package/dest/node-cjs/types/raw_buffer.d.ts +0 -3
- package/dest/node-cjs/types/raw_buffer.d.ts.map +0 -1
- package/dest/node-cjs/types/raw_buffer.js +0 -9
- package/src/barretenberg/common.test.ts +0 -23
- package/src/barretenberg_api/index.ts +0 -1216
- package/src/bindgen/function_declaration.ts +0 -11
- package/src/bindgen/index.ts +0 -17
- package/src/bindgen/mappings.ts +0 -67
- package/src/bindgen/rust.ts +0 -52
- package/src/bindgen/to_camel_case.ts +0 -10
- package/src/bindgen/typescript.ts +0 -116
- package/src/log/browser/index.ts +0 -35
- package/src/log/index.ts +0 -1
- package/src/log/node/index.ts +0 -52
- package/src/log/types.ts +0 -6
- package/src/main.ts +0 -534
- package/src/serialize/buffer_reader.ts +0 -85
- package/src/serialize/index.ts +0 -3
- package/src/serialize/output_type.ts +0 -53
- package/src/serialize/serialize.ts +0 -157
- package/src/types/fields.ts +0 -126
- package/src/types/fixed_size_buffer.ts +0 -59
- package/src/types/index.ts +0 -5
- package/src/types/point.ts +0 -38
- package/src/types/ptr.ts +0 -20
- package/src/types/raw_buffer.ts +0 -3
- /package/src/{bigint-array/index.ts → barretenberg/testing/bigint-buffer.ts} +0 -0
|
@@ -1,6 +1,88 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// AUTOGENERATED FILE - DO NOT EDIT
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.toAesDecrypt = toAesDecrypt;
|
|
5
|
+
exports.fromAesDecrypt = fromAesDecrypt;
|
|
6
|
+
exports.toAesDecryptResponse = toAesDecryptResponse;
|
|
7
|
+
exports.fromAesDecryptResponse = fromAesDecryptResponse;
|
|
8
|
+
exports.toAesEncrypt = toAesEncrypt;
|
|
9
|
+
exports.fromAesEncrypt = fromAesEncrypt;
|
|
10
|
+
exports.toAesEncryptResponse = toAesEncryptResponse;
|
|
11
|
+
exports.fromAesEncryptResponse = fromAesEncryptResponse;
|
|
12
|
+
exports.toBlake2s = toBlake2s;
|
|
13
|
+
exports.fromBlake2s = fromBlake2s;
|
|
14
|
+
exports.toBlake2sResponse = toBlake2sResponse;
|
|
15
|
+
exports.fromBlake2sResponse = fromBlake2sResponse;
|
|
16
|
+
exports.toBlake2sToField = toBlake2sToField;
|
|
17
|
+
exports.fromBlake2sToField = fromBlake2sToField;
|
|
18
|
+
exports.toBlake2sToFieldResponse = toBlake2sToFieldResponse;
|
|
19
|
+
exports.fromBlake2sToFieldResponse = fromBlake2sToFieldResponse;
|
|
20
|
+
exports.toBn254FqSqrt = toBn254FqSqrt;
|
|
21
|
+
exports.fromBn254FqSqrt = fromBn254FqSqrt;
|
|
22
|
+
exports.toBn254FqSqrtResponse = toBn254FqSqrtResponse;
|
|
23
|
+
exports.fromBn254FqSqrtResponse = fromBn254FqSqrtResponse;
|
|
24
|
+
exports.toBn254FrSqrt = toBn254FrSqrt;
|
|
25
|
+
exports.fromBn254FrSqrt = fromBn254FrSqrt;
|
|
26
|
+
exports.toBn254FrSqrtResponse = toBn254FrSqrtResponse;
|
|
27
|
+
exports.fromBn254FrSqrtResponse = fromBn254FrSqrtResponse;
|
|
28
|
+
exports.toBn254G1FromCompressed = toBn254G1FromCompressed;
|
|
29
|
+
exports.fromBn254G1FromCompressed = fromBn254G1FromCompressed;
|
|
30
|
+
exports.toBn254G1FromCompressedResponse = toBn254G1FromCompressedResponse;
|
|
31
|
+
exports.fromBn254G1FromCompressedResponse = fromBn254G1FromCompressedResponse;
|
|
32
|
+
exports.toBn254G1IsOnCurve = toBn254G1IsOnCurve;
|
|
33
|
+
exports.fromBn254G1IsOnCurve = fromBn254G1IsOnCurve;
|
|
34
|
+
exports.toBn254G1IsOnCurveResponse = toBn254G1IsOnCurveResponse;
|
|
35
|
+
exports.fromBn254G1IsOnCurveResponse = fromBn254G1IsOnCurveResponse;
|
|
36
|
+
exports.toBn254G1Mul = toBn254G1Mul;
|
|
37
|
+
exports.fromBn254G1Mul = fromBn254G1Mul;
|
|
38
|
+
exports.toBn254G1MulResponse = toBn254G1MulResponse;
|
|
39
|
+
exports.fromBn254G1MulResponse = fromBn254G1MulResponse;
|
|
40
|
+
exports.toBn254G1Point = toBn254G1Point;
|
|
41
|
+
exports.fromBn254G1Point = fromBn254G1Point;
|
|
42
|
+
exports.toBn254G2Mul = toBn254G2Mul;
|
|
43
|
+
exports.fromBn254G2Mul = fromBn254G2Mul;
|
|
44
|
+
exports.toBn254G2MulResponse = toBn254G2MulResponse;
|
|
45
|
+
exports.fromBn254G2MulResponse = fromBn254G2MulResponse;
|
|
46
|
+
exports.toBn254G2Point = toBn254G2Point;
|
|
47
|
+
exports.fromBn254G2Point = fromBn254G2Point;
|
|
48
|
+
exports.toChonkAccumulate = toChonkAccumulate;
|
|
49
|
+
exports.fromChonkAccumulate = fromChonkAccumulate;
|
|
50
|
+
exports.toChonkAccumulateResponse = toChonkAccumulateResponse;
|
|
51
|
+
exports.fromChonkAccumulateResponse = fromChonkAccumulateResponse;
|
|
52
|
+
exports.toChonkCheckPrecomputedVk = toChonkCheckPrecomputedVk;
|
|
53
|
+
exports.fromChonkCheckPrecomputedVk = fromChonkCheckPrecomputedVk;
|
|
54
|
+
exports.toChonkCheckPrecomputedVkResponse = toChonkCheckPrecomputedVkResponse;
|
|
55
|
+
exports.fromChonkCheckPrecomputedVkResponse = fromChonkCheckPrecomputedVkResponse;
|
|
56
|
+
exports.toChonkComputeIvcVk = toChonkComputeIvcVk;
|
|
57
|
+
exports.fromChonkComputeIvcVk = fromChonkComputeIvcVk;
|
|
58
|
+
exports.toChonkComputeIvcVkResponse = toChonkComputeIvcVkResponse;
|
|
59
|
+
exports.fromChonkComputeIvcVkResponse = fromChonkComputeIvcVkResponse;
|
|
60
|
+
exports.toChonkComputeStandaloneVk = toChonkComputeStandaloneVk;
|
|
61
|
+
exports.fromChonkComputeStandaloneVk = fromChonkComputeStandaloneVk;
|
|
62
|
+
exports.toChonkComputeStandaloneVkResponse = toChonkComputeStandaloneVkResponse;
|
|
63
|
+
exports.fromChonkComputeStandaloneVkResponse = fromChonkComputeStandaloneVkResponse;
|
|
64
|
+
exports.toChonkLoad = toChonkLoad;
|
|
65
|
+
exports.fromChonkLoad = fromChonkLoad;
|
|
66
|
+
exports.toChonkLoadResponse = toChonkLoadResponse;
|
|
67
|
+
exports.fromChonkLoadResponse = fromChonkLoadResponse;
|
|
68
|
+
exports.toChonkProof = toChonkProof;
|
|
69
|
+
exports.fromChonkProof = fromChonkProof;
|
|
70
|
+
exports.toChonkProve = toChonkProve;
|
|
71
|
+
exports.fromChonkProve = fromChonkProve;
|
|
72
|
+
exports.toChonkProveResponse = toChonkProveResponse;
|
|
73
|
+
exports.fromChonkProveResponse = fromChonkProveResponse;
|
|
74
|
+
exports.toChonkStart = toChonkStart;
|
|
75
|
+
exports.fromChonkStart = fromChonkStart;
|
|
76
|
+
exports.toChonkStartResponse = toChonkStartResponse;
|
|
77
|
+
exports.fromChonkStartResponse = fromChonkStartResponse;
|
|
78
|
+
exports.toChonkStats = toChonkStats;
|
|
79
|
+
exports.fromChonkStats = fromChonkStats;
|
|
80
|
+
exports.toChonkStatsResponse = toChonkStatsResponse;
|
|
81
|
+
exports.fromChonkStatsResponse = fromChonkStatsResponse;
|
|
82
|
+
exports.toChonkVerify = toChonkVerify;
|
|
83
|
+
exports.fromChonkVerify = fromChonkVerify;
|
|
84
|
+
exports.toChonkVerifyResponse = toChonkVerifyResponse;
|
|
85
|
+
exports.fromChonkVerifyResponse = fromChonkVerifyResponse;
|
|
4
86
|
exports.toCircuitComputeVk = toCircuitComputeVk;
|
|
5
87
|
exports.fromCircuitComputeVk = fromCircuitComputeVk;
|
|
6
88
|
exports.toCircuitComputeVkResponse = toCircuitComputeVkResponse;
|
|
@@ -25,873 +107,2827 @@ exports.toCircuitWriteSolidityVerifier = toCircuitWriteSolidityVerifier;
|
|
|
25
107
|
exports.fromCircuitWriteSolidityVerifier = fromCircuitWriteSolidityVerifier;
|
|
26
108
|
exports.toCircuitWriteSolidityVerifierResponse = toCircuitWriteSolidityVerifierResponse;
|
|
27
109
|
exports.fromCircuitWriteSolidityVerifierResponse = fromCircuitWriteSolidityVerifierResponse;
|
|
28
|
-
exports.
|
|
29
|
-
exports.
|
|
30
|
-
exports.
|
|
31
|
-
exports.
|
|
32
|
-
exports.
|
|
33
|
-
exports.
|
|
34
|
-
exports.
|
|
35
|
-
exports.
|
|
36
|
-
exports.
|
|
37
|
-
exports.
|
|
38
|
-
exports.
|
|
39
|
-
exports.
|
|
40
|
-
exports.
|
|
41
|
-
exports.
|
|
42
|
-
exports.
|
|
43
|
-
exports.
|
|
44
|
-
exports.
|
|
45
|
-
exports.
|
|
46
|
-
exports.
|
|
47
|
-
exports.
|
|
48
|
-
exports.
|
|
49
|
-
exports.
|
|
50
|
-
exports.
|
|
51
|
-
exports.
|
|
52
|
-
exports.
|
|
53
|
-
exports.
|
|
54
|
-
exports.
|
|
55
|
-
exports.
|
|
56
|
-
exports.
|
|
57
|
-
exports.
|
|
58
|
-
exports.
|
|
59
|
-
exports.
|
|
60
|
-
exports.
|
|
61
|
-
exports.
|
|
62
|
-
exports.toClientIvcVerify = toClientIvcVerify;
|
|
63
|
-
exports.fromClientIvcVerify = fromClientIvcVerify;
|
|
64
|
-
exports.toClientIvcVerifyResponse = toClientIvcVerifyResponse;
|
|
65
|
-
exports.fromClientIvcVerifyResponse = fromClientIvcVerifyResponse;
|
|
66
|
-
exports.toECCVMProof = toECCVMProof;
|
|
67
|
-
exports.fromECCVMProof = fromECCVMProof;
|
|
110
|
+
exports.toEcdsaSecp256k1ComputePublicKey = toEcdsaSecp256k1ComputePublicKey;
|
|
111
|
+
exports.fromEcdsaSecp256k1ComputePublicKey = fromEcdsaSecp256k1ComputePublicKey;
|
|
112
|
+
exports.toEcdsaSecp256k1ComputePublicKeyResponse = toEcdsaSecp256k1ComputePublicKeyResponse;
|
|
113
|
+
exports.fromEcdsaSecp256k1ComputePublicKeyResponse = fromEcdsaSecp256k1ComputePublicKeyResponse;
|
|
114
|
+
exports.toEcdsaSecp256k1ConstructSignature = toEcdsaSecp256k1ConstructSignature;
|
|
115
|
+
exports.fromEcdsaSecp256k1ConstructSignature = fromEcdsaSecp256k1ConstructSignature;
|
|
116
|
+
exports.toEcdsaSecp256k1ConstructSignatureResponse = toEcdsaSecp256k1ConstructSignatureResponse;
|
|
117
|
+
exports.fromEcdsaSecp256k1ConstructSignatureResponse = fromEcdsaSecp256k1ConstructSignatureResponse;
|
|
118
|
+
exports.toEcdsaSecp256k1RecoverPublicKey = toEcdsaSecp256k1RecoverPublicKey;
|
|
119
|
+
exports.fromEcdsaSecp256k1RecoverPublicKey = fromEcdsaSecp256k1RecoverPublicKey;
|
|
120
|
+
exports.toEcdsaSecp256k1RecoverPublicKeyResponse = toEcdsaSecp256k1RecoverPublicKeyResponse;
|
|
121
|
+
exports.fromEcdsaSecp256k1RecoverPublicKeyResponse = fromEcdsaSecp256k1RecoverPublicKeyResponse;
|
|
122
|
+
exports.toEcdsaSecp256k1VerifySignature = toEcdsaSecp256k1VerifySignature;
|
|
123
|
+
exports.fromEcdsaSecp256k1VerifySignature = fromEcdsaSecp256k1VerifySignature;
|
|
124
|
+
exports.toEcdsaSecp256k1VerifySignatureResponse = toEcdsaSecp256k1VerifySignatureResponse;
|
|
125
|
+
exports.fromEcdsaSecp256k1VerifySignatureResponse = fromEcdsaSecp256k1VerifySignatureResponse;
|
|
126
|
+
exports.toEcdsaSecp256r1ComputePublicKey = toEcdsaSecp256r1ComputePublicKey;
|
|
127
|
+
exports.fromEcdsaSecp256r1ComputePublicKey = fromEcdsaSecp256r1ComputePublicKey;
|
|
128
|
+
exports.toEcdsaSecp256r1ComputePublicKeyResponse = toEcdsaSecp256r1ComputePublicKeyResponse;
|
|
129
|
+
exports.fromEcdsaSecp256r1ComputePublicKeyResponse = fromEcdsaSecp256r1ComputePublicKeyResponse;
|
|
130
|
+
exports.toEcdsaSecp256r1ConstructSignature = toEcdsaSecp256r1ConstructSignature;
|
|
131
|
+
exports.fromEcdsaSecp256r1ConstructSignature = fromEcdsaSecp256r1ConstructSignature;
|
|
132
|
+
exports.toEcdsaSecp256r1ConstructSignatureResponse = toEcdsaSecp256r1ConstructSignatureResponse;
|
|
133
|
+
exports.fromEcdsaSecp256r1ConstructSignatureResponse = fromEcdsaSecp256r1ConstructSignatureResponse;
|
|
134
|
+
exports.toEcdsaSecp256r1RecoverPublicKey = toEcdsaSecp256r1RecoverPublicKey;
|
|
135
|
+
exports.fromEcdsaSecp256r1RecoverPublicKey = fromEcdsaSecp256r1RecoverPublicKey;
|
|
136
|
+
exports.toEcdsaSecp256r1RecoverPublicKeyResponse = toEcdsaSecp256r1RecoverPublicKeyResponse;
|
|
137
|
+
exports.fromEcdsaSecp256r1RecoverPublicKeyResponse = fromEcdsaSecp256r1RecoverPublicKeyResponse;
|
|
138
|
+
exports.toEcdsaSecp256r1VerifySignature = toEcdsaSecp256r1VerifySignature;
|
|
139
|
+
exports.fromEcdsaSecp256r1VerifySignature = fromEcdsaSecp256r1VerifySignature;
|
|
140
|
+
exports.toEcdsaSecp256r1VerifySignatureResponse = toEcdsaSecp256r1VerifySignatureResponse;
|
|
141
|
+
exports.fromEcdsaSecp256r1VerifySignatureResponse = fromEcdsaSecp256r1VerifySignatureResponse;
|
|
142
|
+
exports.toErrorResponse = toErrorResponse;
|
|
143
|
+
exports.fromErrorResponse = fromErrorResponse;
|
|
68
144
|
exports.toGoblinProof = toGoblinProof;
|
|
69
145
|
exports.fromGoblinProof = fromGoblinProof;
|
|
146
|
+
exports.toGrumpkinAdd = toGrumpkinAdd;
|
|
147
|
+
exports.fromGrumpkinAdd = fromGrumpkinAdd;
|
|
148
|
+
exports.toGrumpkinAddResponse = toGrumpkinAddResponse;
|
|
149
|
+
exports.fromGrumpkinAddResponse = fromGrumpkinAddResponse;
|
|
150
|
+
exports.toGrumpkinBatchMul = toGrumpkinBatchMul;
|
|
151
|
+
exports.fromGrumpkinBatchMul = fromGrumpkinBatchMul;
|
|
152
|
+
exports.toGrumpkinBatchMulResponse = toGrumpkinBatchMulResponse;
|
|
153
|
+
exports.fromGrumpkinBatchMulResponse = fromGrumpkinBatchMulResponse;
|
|
154
|
+
exports.toGrumpkinGetRandomFr = toGrumpkinGetRandomFr;
|
|
155
|
+
exports.fromGrumpkinGetRandomFr = fromGrumpkinGetRandomFr;
|
|
156
|
+
exports.toGrumpkinGetRandomFrResponse = toGrumpkinGetRandomFrResponse;
|
|
157
|
+
exports.fromGrumpkinGetRandomFrResponse = fromGrumpkinGetRandomFrResponse;
|
|
158
|
+
exports.toGrumpkinMul = toGrumpkinMul;
|
|
159
|
+
exports.fromGrumpkinMul = fromGrumpkinMul;
|
|
160
|
+
exports.toGrumpkinMulResponse = toGrumpkinMulResponse;
|
|
161
|
+
exports.fromGrumpkinMulResponse = fromGrumpkinMulResponse;
|
|
162
|
+
exports.toGrumpkinPoint = toGrumpkinPoint;
|
|
163
|
+
exports.fromGrumpkinPoint = fromGrumpkinPoint;
|
|
164
|
+
exports.toGrumpkinReduce512 = toGrumpkinReduce512;
|
|
165
|
+
exports.fromGrumpkinReduce512 = fromGrumpkinReduce512;
|
|
166
|
+
exports.toGrumpkinReduce512Response = toGrumpkinReduce512Response;
|
|
167
|
+
exports.fromGrumpkinReduce512Response = fromGrumpkinReduce512Response;
|
|
168
|
+
exports.toMegaVkAsFields = toMegaVkAsFields;
|
|
169
|
+
exports.fromMegaVkAsFields = fromMegaVkAsFields;
|
|
170
|
+
exports.toMegaVkAsFieldsResponse = toMegaVkAsFieldsResponse;
|
|
171
|
+
exports.fromMegaVkAsFieldsResponse = fromMegaVkAsFieldsResponse;
|
|
172
|
+
exports.toPedersenCommit = toPedersenCommit;
|
|
173
|
+
exports.fromPedersenCommit = fromPedersenCommit;
|
|
174
|
+
exports.toPedersenCommitResponse = toPedersenCommitResponse;
|
|
175
|
+
exports.fromPedersenCommitResponse = fromPedersenCommitResponse;
|
|
176
|
+
exports.toPedersenHash = toPedersenHash;
|
|
177
|
+
exports.fromPedersenHash = fromPedersenHash;
|
|
178
|
+
exports.toPedersenHashBuffer = toPedersenHashBuffer;
|
|
179
|
+
exports.fromPedersenHashBuffer = fromPedersenHashBuffer;
|
|
180
|
+
exports.toPedersenHashBufferResponse = toPedersenHashBufferResponse;
|
|
181
|
+
exports.fromPedersenHashBufferResponse = fromPedersenHashBufferResponse;
|
|
182
|
+
exports.toPedersenHashResponse = toPedersenHashResponse;
|
|
183
|
+
exports.fromPedersenHashResponse = fromPedersenHashResponse;
|
|
184
|
+
exports.toPoseidon2Hash = toPoseidon2Hash;
|
|
185
|
+
exports.fromPoseidon2Hash = fromPoseidon2Hash;
|
|
186
|
+
exports.toPoseidon2HashAccumulate = toPoseidon2HashAccumulate;
|
|
187
|
+
exports.fromPoseidon2HashAccumulate = fromPoseidon2HashAccumulate;
|
|
188
|
+
exports.toPoseidon2HashAccumulateResponse = toPoseidon2HashAccumulateResponse;
|
|
189
|
+
exports.fromPoseidon2HashAccumulateResponse = fromPoseidon2HashAccumulateResponse;
|
|
190
|
+
exports.toPoseidon2HashResponse = toPoseidon2HashResponse;
|
|
191
|
+
exports.fromPoseidon2HashResponse = fromPoseidon2HashResponse;
|
|
192
|
+
exports.toPoseidon2Permutation = toPoseidon2Permutation;
|
|
193
|
+
exports.fromPoseidon2Permutation = fromPoseidon2Permutation;
|
|
194
|
+
exports.toPoseidon2PermutationResponse = toPoseidon2PermutationResponse;
|
|
195
|
+
exports.fromPoseidon2PermutationResponse = fromPoseidon2PermutationResponse;
|
|
70
196
|
exports.toProofSystemSettings = toProofSystemSettings;
|
|
71
197
|
exports.fromProofSystemSettings = fromProofSystemSettings;
|
|
198
|
+
exports.toSchnorrComputePublicKey = toSchnorrComputePublicKey;
|
|
199
|
+
exports.fromSchnorrComputePublicKey = fromSchnorrComputePublicKey;
|
|
200
|
+
exports.toSchnorrComputePublicKeyResponse = toSchnorrComputePublicKeyResponse;
|
|
201
|
+
exports.fromSchnorrComputePublicKeyResponse = fromSchnorrComputePublicKeyResponse;
|
|
202
|
+
exports.toSchnorrConstructSignature = toSchnorrConstructSignature;
|
|
203
|
+
exports.fromSchnorrConstructSignature = fromSchnorrConstructSignature;
|
|
204
|
+
exports.toSchnorrConstructSignatureResponse = toSchnorrConstructSignatureResponse;
|
|
205
|
+
exports.fromSchnorrConstructSignatureResponse = fromSchnorrConstructSignatureResponse;
|
|
206
|
+
exports.toSchnorrVerifySignature = toSchnorrVerifySignature;
|
|
207
|
+
exports.fromSchnorrVerifySignature = fromSchnorrVerifySignature;
|
|
208
|
+
exports.toSchnorrVerifySignatureResponse = toSchnorrVerifySignatureResponse;
|
|
209
|
+
exports.fromSchnorrVerifySignatureResponse = fromSchnorrVerifySignatureResponse;
|
|
210
|
+
exports.toSecp256k1GetRandomFr = toSecp256k1GetRandomFr;
|
|
211
|
+
exports.fromSecp256k1GetRandomFr = fromSecp256k1GetRandomFr;
|
|
212
|
+
exports.toSecp256k1GetRandomFrResponse = toSecp256k1GetRandomFrResponse;
|
|
213
|
+
exports.fromSecp256k1GetRandomFrResponse = fromSecp256k1GetRandomFrResponse;
|
|
214
|
+
exports.toSecp256k1Mul = toSecp256k1Mul;
|
|
215
|
+
exports.fromSecp256k1Mul = fromSecp256k1Mul;
|
|
216
|
+
exports.toSecp256k1MulResponse = toSecp256k1MulResponse;
|
|
217
|
+
exports.fromSecp256k1MulResponse = fromSecp256k1MulResponse;
|
|
218
|
+
exports.toSecp256k1Point = toSecp256k1Point;
|
|
219
|
+
exports.fromSecp256k1Point = fromSecp256k1Point;
|
|
220
|
+
exports.toSecp256k1Reduce512 = toSecp256k1Reduce512;
|
|
221
|
+
exports.fromSecp256k1Reduce512 = fromSecp256k1Reduce512;
|
|
222
|
+
exports.toSecp256k1Reduce512Response = toSecp256k1Reduce512Response;
|
|
223
|
+
exports.fromSecp256k1Reduce512Response = fromSecp256k1Reduce512Response;
|
|
224
|
+
exports.toSecp256r1Point = toSecp256r1Point;
|
|
225
|
+
exports.fromSecp256r1Point = fromSecp256r1Point;
|
|
226
|
+
exports.toShutdown = toShutdown;
|
|
227
|
+
exports.fromShutdown = fromShutdown;
|
|
228
|
+
exports.toShutdownResponse = toShutdownResponse;
|
|
229
|
+
exports.fromShutdownResponse = fromShutdownResponse;
|
|
230
|
+
exports.toSrsInitGrumpkinSrs = toSrsInitGrumpkinSrs;
|
|
231
|
+
exports.fromSrsInitGrumpkinSrs = fromSrsInitGrumpkinSrs;
|
|
232
|
+
exports.toSrsInitGrumpkinSrsResponse = toSrsInitGrumpkinSrsResponse;
|
|
233
|
+
exports.fromSrsInitGrumpkinSrsResponse = fromSrsInitGrumpkinSrsResponse;
|
|
234
|
+
exports.toSrsInitSrs = toSrsInitSrs;
|
|
235
|
+
exports.fromSrsInitSrs = fromSrsInitSrs;
|
|
236
|
+
exports.toSrsInitSrsResponse = toSrsInitSrsResponse;
|
|
237
|
+
exports.fromSrsInitSrsResponse = fromSrsInitSrsResponse;
|
|
72
238
|
exports.toVkAsFields = toVkAsFields;
|
|
73
239
|
exports.fromVkAsFields = fromVkAsFields;
|
|
74
240
|
exports.toVkAsFieldsResponse = toVkAsFieldsResponse;
|
|
75
241
|
exports.fromVkAsFieldsResponse = fromVkAsFieldsResponse;
|
|
76
242
|
// Conversion functions (exported)
|
|
77
|
-
function
|
|
78
|
-
if (o.
|
|
79
|
-
throw new Error("Expected
|
|
243
|
+
function toAesDecrypt(o) {
|
|
244
|
+
if (o.ciphertext === undefined) {
|
|
245
|
+
throw new Error("Expected ciphertext in AesDecrypt deserialization");
|
|
80
246
|
}
|
|
81
|
-
if (o.
|
|
82
|
-
throw new Error("Expected
|
|
247
|
+
if (o.iv === undefined) {
|
|
248
|
+
throw new Error("Expected iv in AesDecrypt deserialization");
|
|
249
|
+
}
|
|
250
|
+
if (o.key === undefined) {
|
|
251
|
+
throw new Error("Expected key in AesDecrypt deserialization");
|
|
252
|
+
}
|
|
253
|
+
if (o.length === undefined) {
|
|
254
|
+
throw new Error("Expected length in AesDecrypt deserialization");
|
|
83
255
|
}
|
|
84
256
|
;
|
|
85
257
|
return {
|
|
86
|
-
|
|
87
|
-
|
|
258
|
+
ciphertext: o.ciphertext,
|
|
259
|
+
iv: o.iv,
|
|
260
|
+
key: o.key,
|
|
261
|
+
length: o.length,
|
|
88
262
|
};
|
|
89
263
|
}
|
|
90
|
-
function
|
|
91
|
-
if (o.
|
|
92
|
-
throw new Error("Expected
|
|
264
|
+
function fromAesDecrypt(o) {
|
|
265
|
+
if (o.ciphertext === undefined) {
|
|
266
|
+
throw new Error("Expected ciphertext in AesDecrypt serialization");
|
|
93
267
|
}
|
|
94
|
-
if (o.
|
|
95
|
-
throw new Error("Expected
|
|
268
|
+
if (o.iv === undefined) {
|
|
269
|
+
throw new Error("Expected iv in AesDecrypt serialization");
|
|
270
|
+
}
|
|
271
|
+
if (o.key === undefined) {
|
|
272
|
+
throw new Error("Expected key in AesDecrypt serialization");
|
|
273
|
+
}
|
|
274
|
+
if (o.length === undefined) {
|
|
275
|
+
throw new Error("Expected length in AesDecrypt serialization");
|
|
96
276
|
}
|
|
97
277
|
;
|
|
98
278
|
return {
|
|
99
|
-
|
|
100
|
-
|
|
279
|
+
ciphertext: o.ciphertext,
|
|
280
|
+
iv: o.iv,
|
|
281
|
+
key: o.key,
|
|
282
|
+
length: o.length,
|
|
101
283
|
};
|
|
102
284
|
}
|
|
103
|
-
function
|
|
104
|
-
if (o.
|
|
105
|
-
throw new Error("Expected
|
|
106
|
-
}
|
|
107
|
-
if (o.fields === undefined) {
|
|
108
|
-
throw new Error("Expected fields in CircuitComputeVkResponse deserialization");
|
|
109
|
-
}
|
|
110
|
-
if (o.hash === undefined) {
|
|
111
|
-
throw new Error("Expected hash in CircuitComputeVkResponse deserialization");
|
|
285
|
+
function toAesDecryptResponse(o) {
|
|
286
|
+
if (o.plaintext === undefined) {
|
|
287
|
+
throw new Error("Expected plaintext in AesDecryptResponse deserialization");
|
|
112
288
|
}
|
|
113
289
|
;
|
|
114
290
|
return {
|
|
115
|
-
|
|
116
|
-
fields: o.fields.map((v) => v),
|
|
117
|
-
hash: o.hash,
|
|
291
|
+
plaintext: o.plaintext,
|
|
118
292
|
};
|
|
119
293
|
}
|
|
120
|
-
function
|
|
121
|
-
if (o.
|
|
122
|
-
throw new Error("Expected
|
|
123
|
-
}
|
|
124
|
-
if (o.fields === undefined) {
|
|
125
|
-
throw new Error("Expected fields in CircuitComputeVkResponse serialization");
|
|
126
|
-
}
|
|
127
|
-
if (o.hash === undefined) {
|
|
128
|
-
throw new Error("Expected hash in CircuitComputeVkResponse serialization");
|
|
294
|
+
function fromAesDecryptResponse(o) {
|
|
295
|
+
if (o.plaintext === undefined) {
|
|
296
|
+
throw new Error("Expected plaintext in AesDecryptResponse serialization");
|
|
129
297
|
}
|
|
130
298
|
;
|
|
131
299
|
return {
|
|
132
|
-
|
|
133
|
-
fields: o.fields.map((v) => v),
|
|
134
|
-
hash: o.hash,
|
|
300
|
+
plaintext: o.plaintext,
|
|
135
301
|
};
|
|
136
302
|
}
|
|
137
|
-
function
|
|
138
|
-
if (o.
|
|
139
|
-
throw new Error("Expected
|
|
303
|
+
function toAesEncrypt(o) {
|
|
304
|
+
if (o.plaintext === undefined) {
|
|
305
|
+
throw new Error("Expected plaintext in AesEncrypt deserialization");
|
|
140
306
|
}
|
|
141
|
-
if (o.
|
|
142
|
-
throw new Error("Expected
|
|
307
|
+
if (o.iv === undefined) {
|
|
308
|
+
throw new Error("Expected iv in AesEncrypt deserialization");
|
|
143
309
|
}
|
|
144
|
-
if (o.
|
|
145
|
-
throw new Error("Expected
|
|
310
|
+
if (o.key === undefined) {
|
|
311
|
+
throw new Error("Expected key in AesEncrypt deserialization");
|
|
146
312
|
}
|
|
147
|
-
if (o.
|
|
148
|
-
throw new Error("Expected
|
|
313
|
+
if (o.length === undefined) {
|
|
314
|
+
throw new Error("Expected length in AesEncrypt deserialization");
|
|
149
315
|
}
|
|
150
316
|
;
|
|
151
317
|
return {
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
318
|
+
plaintext: o.plaintext,
|
|
319
|
+
iv: o.iv,
|
|
320
|
+
key: o.key,
|
|
321
|
+
length: o.length,
|
|
156
322
|
};
|
|
157
323
|
}
|
|
158
|
-
function
|
|
159
|
-
if (o.
|
|
160
|
-
throw new Error("Expected
|
|
324
|
+
function fromAesEncrypt(o) {
|
|
325
|
+
if (o.plaintext === undefined) {
|
|
326
|
+
throw new Error("Expected plaintext in AesEncrypt serialization");
|
|
161
327
|
}
|
|
162
|
-
if (o.
|
|
163
|
-
throw new Error("Expected
|
|
328
|
+
if (o.iv === undefined) {
|
|
329
|
+
throw new Error("Expected iv in AesEncrypt serialization");
|
|
164
330
|
}
|
|
165
|
-
if (o.
|
|
166
|
-
throw new Error("Expected
|
|
331
|
+
if (o.key === undefined) {
|
|
332
|
+
throw new Error("Expected key in AesEncrypt serialization");
|
|
167
333
|
}
|
|
168
|
-
if (o.
|
|
169
|
-
throw new Error("Expected
|
|
334
|
+
if (o.length === undefined) {
|
|
335
|
+
throw new Error("Expected length in AesEncrypt serialization");
|
|
170
336
|
}
|
|
171
337
|
;
|
|
172
338
|
return {
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
339
|
+
plaintext: o.plaintext,
|
|
340
|
+
iv: o.iv,
|
|
341
|
+
key: o.key,
|
|
342
|
+
length: o.length,
|
|
177
343
|
};
|
|
178
344
|
}
|
|
179
|
-
function
|
|
180
|
-
if (o.
|
|
181
|
-
throw new Error("Expected
|
|
182
|
-
}
|
|
183
|
-
if (o.bytecode === undefined) {
|
|
184
|
-
throw new Error("Expected bytecode in CircuitInput deserialization");
|
|
185
|
-
}
|
|
186
|
-
if (o.verification_key === undefined) {
|
|
187
|
-
throw new Error("Expected verification_key in CircuitInput deserialization");
|
|
345
|
+
function toAesEncryptResponse(o) {
|
|
346
|
+
if (o.ciphertext === undefined) {
|
|
347
|
+
throw new Error("Expected ciphertext in AesEncryptResponse deserialization");
|
|
188
348
|
}
|
|
189
349
|
;
|
|
190
350
|
return {
|
|
191
|
-
|
|
192
|
-
bytecode: o.bytecode,
|
|
193
|
-
verificationKey: o.verification_key,
|
|
351
|
+
ciphertext: o.ciphertext,
|
|
194
352
|
};
|
|
195
353
|
}
|
|
196
|
-
function
|
|
197
|
-
if (o.
|
|
198
|
-
throw new Error("Expected
|
|
354
|
+
function fromAesEncryptResponse(o) {
|
|
355
|
+
if (o.ciphertext === undefined) {
|
|
356
|
+
throw new Error("Expected ciphertext in AesEncryptResponse serialization");
|
|
199
357
|
}
|
|
200
|
-
|
|
201
|
-
|
|
358
|
+
;
|
|
359
|
+
return {
|
|
360
|
+
ciphertext: o.ciphertext,
|
|
361
|
+
};
|
|
362
|
+
}
|
|
363
|
+
function toBlake2s(o) {
|
|
364
|
+
if (o.data === undefined) {
|
|
365
|
+
throw new Error("Expected data in Blake2s deserialization");
|
|
202
366
|
}
|
|
203
|
-
|
|
204
|
-
|
|
367
|
+
;
|
|
368
|
+
return {
|
|
369
|
+
data: o.data,
|
|
370
|
+
};
|
|
371
|
+
}
|
|
372
|
+
function fromBlake2s(o) {
|
|
373
|
+
if (o.data === undefined) {
|
|
374
|
+
throw new Error("Expected data in Blake2s serialization");
|
|
205
375
|
}
|
|
206
376
|
;
|
|
207
377
|
return {
|
|
208
|
-
|
|
209
|
-
bytecode: o.bytecode,
|
|
210
|
-
verification_key: o.verificationKey,
|
|
378
|
+
data: o.data,
|
|
211
379
|
};
|
|
212
380
|
}
|
|
213
|
-
function
|
|
214
|
-
if (o.
|
|
215
|
-
throw new Error("Expected
|
|
381
|
+
function toBlake2sResponse(o) {
|
|
382
|
+
if (o.hash === undefined) {
|
|
383
|
+
throw new Error("Expected hash in Blake2sResponse deserialization");
|
|
216
384
|
}
|
|
217
|
-
|
|
218
|
-
|
|
385
|
+
;
|
|
386
|
+
return {
|
|
387
|
+
hash: o.hash,
|
|
388
|
+
};
|
|
389
|
+
}
|
|
390
|
+
function fromBlake2sResponse(o) {
|
|
391
|
+
if (o.hash === undefined) {
|
|
392
|
+
throw new Error("Expected hash in Blake2sResponse serialization");
|
|
219
393
|
}
|
|
220
394
|
;
|
|
221
395
|
return {
|
|
222
|
-
|
|
223
|
-
bytecode: o.bytecode,
|
|
396
|
+
hash: o.hash,
|
|
224
397
|
};
|
|
225
398
|
}
|
|
226
|
-
function
|
|
227
|
-
if (o.
|
|
228
|
-
throw new Error("Expected
|
|
399
|
+
function toBlake2sToField(o) {
|
|
400
|
+
if (o.data === undefined) {
|
|
401
|
+
throw new Error("Expected data in Blake2sToField deserialization");
|
|
229
402
|
}
|
|
230
|
-
|
|
231
|
-
|
|
403
|
+
;
|
|
404
|
+
return {
|
|
405
|
+
data: o.data,
|
|
406
|
+
};
|
|
407
|
+
}
|
|
408
|
+
function fromBlake2sToField(o) {
|
|
409
|
+
if (o.data === undefined) {
|
|
410
|
+
throw new Error("Expected data in Blake2sToField serialization");
|
|
232
411
|
}
|
|
233
412
|
;
|
|
234
413
|
return {
|
|
235
|
-
|
|
236
|
-
bytecode: o.bytecode,
|
|
414
|
+
data: o.data,
|
|
237
415
|
};
|
|
238
416
|
}
|
|
239
|
-
function
|
|
240
|
-
if (o.
|
|
241
|
-
throw new Error("Expected
|
|
417
|
+
function toBlake2sToFieldResponse(o) {
|
|
418
|
+
if (o.field === undefined) {
|
|
419
|
+
throw new Error("Expected field in Blake2sToFieldResponse deserialization");
|
|
242
420
|
}
|
|
243
|
-
|
|
244
|
-
|
|
421
|
+
;
|
|
422
|
+
return {
|
|
423
|
+
field: o.field,
|
|
424
|
+
};
|
|
425
|
+
}
|
|
426
|
+
function fromBlake2sToFieldResponse(o) {
|
|
427
|
+
if (o.field === undefined) {
|
|
428
|
+
throw new Error("Expected field in Blake2sToFieldResponse serialization");
|
|
245
429
|
}
|
|
246
|
-
|
|
247
|
-
|
|
430
|
+
;
|
|
431
|
+
return {
|
|
432
|
+
field: o.field,
|
|
433
|
+
};
|
|
434
|
+
}
|
|
435
|
+
function toBn254FqSqrt(o) {
|
|
436
|
+
if (o.input === undefined) {
|
|
437
|
+
throw new Error("Expected input in Bn254FqSqrt deserialization");
|
|
248
438
|
}
|
|
249
439
|
;
|
|
250
440
|
return {
|
|
251
|
-
|
|
252
|
-
witness: o.witness,
|
|
253
|
-
settings: toProofSystemSettings(o.settings),
|
|
441
|
+
input: o.input,
|
|
254
442
|
};
|
|
255
443
|
}
|
|
256
|
-
function
|
|
257
|
-
if (o.
|
|
258
|
-
throw new Error("Expected
|
|
444
|
+
function fromBn254FqSqrt(o) {
|
|
445
|
+
if (o.input === undefined) {
|
|
446
|
+
throw new Error("Expected input in Bn254FqSqrt serialization");
|
|
259
447
|
}
|
|
260
|
-
|
|
261
|
-
|
|
448
|
+
;
|
|
449
|
+
return {
|
|
450
|
+
input: o.input,
|
|
451
|
+
};
|
|
452
|
+
}
|
|
453
|
+
function toBn254FqSqrtResponse(o) {
|
|
454
|
+
if (o.is_square_root === undefined) {
|
|
455
|
+
throw new Error("Expected is_square_root in Bn254FqSqrtResponse deserialization");
|
|
262
456
|
}
|
|
263
|
-
if (o.
|
|
264
|
-
throw new Error("Expected
|
|
457
|
+
if (o.value === undefined) {
|
|
458
|
+
throw new Error("Expected value in Bn254FqSqrtResponse deserialization");
|
|
265
459
|
}
|
|
266
460
|
;
|
|
267
461
|
return {
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
settings: fromProofSystemSettings(o.settings),
|
|
462
|
+
isSquareRoot: o.is_square_root,
|
|
463
|
+
value: o.value,
|
|
271
464
|
};
|
|
272
465
|
}
|
|
273
|
-
function
|
|
274
|
-
if (o.
|
|
275
|
-
throw new Error("Expected
|
|
466
|
+
function fromBn254FqSqrtResponse(o) {
|
|
467
|
+
if (o.isSquareRoot === undefined) {
|
|
468
|
+
throw new Error("Expected isSquareRoot in Bn254FqSqrtResponse serialization");
|
|
276
469
|
}
|
|
277
|
-
if (o.
|
|
278
|
-
throw new Error("Expected
|
|
470
|
+
if (o.value === undefined) {
|
|
471
|
+
throw new Error("Expected value in Bn254FqSqrtResponse serialization");
|
|
279
472
|
}
|
|
280
|
-
|
|
281
|
-
|
|
473
|
+
;
|
|
474
|
+
return {
|
|
475
|
+
is_square_root: o.isSquareRoot,
|
|
476
|
+
value: o.value,
|
|
477
|
+
};
|
|
478
|
+
}
|
|
479
|
+
function toBn254FrSqrt(o) {
|
|
480
|
+
if (o.input === undefined) {
|
|
481
|
+
throw new Error("Expected input in Bn254FrSqrt deserialization");
|
|
282
482
|
}
|
|
283
483
|
;
|
|
284
484
|
return {
|
|
285
|
-
|
|
286
|
-
proof: o.proof.map((v) => v),
|
|
287
|
-
vk: toCircuitComputeVkResponse(o.vk),
|
|
485
|
+
input: o.input,
|
|
288
486
|
};
|
|
289
487
|
}
|
|
290
|
-
function
|
|
291
|
-
if (o.
|
|
292
|
-
throw new Error("Expected
|
|
488
|
+
function fromBn254FrSqrt(o) {
|
|
489
|
+
if (o.input === undefined) {
|
|
490
|
+
throw new Error("Expected input in Bn254FrSqrt serialization");
|
|
293
491
|
}
|
|
294
|
-
|
|
295
|
-
|
|
492
|
+
;
|
|
493
|
+
return {
|
|
494
|
+
input: o.input,
|
|
495
|
+
};
|
|
496
|
+
}
|
|
497
|
+
function toBn254FrSqrtResponse(o) {
|
|
498
|
+
if (o.is_square_root === undefined) {
|
|
499
|
+
throw new Error("Expected is_square_root in Bn254FrSqrtResponse deserialization");
|
|
296
500
|
}
|
|
297
|
-
if (o.
|
|
298
|
-
throw new Error("Expected
|
|
501
|
+
if (o.value === undefined) {
|
|
502
|
+
throw new Error("Expected value in Bn254FrSqrtResponse deserialization");
|
|
299
503
|
}
|
|
300
504
|
;
|
|
301
505
|
return {
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
vk: fromCircuitComputeVkResponse(o.vk),
|
|
506
|
+
isSquareRoot: o.is_square_root,
|
|
507
|
+
value: o.value,
|
|
305
508
|
};
|
|
306
509
|
}
|
|
307
|
-
function
|
|
308
|
-
if (o.
|
|
309
|
-
throw new Error("Expected
|
|
510
|
+
function fromBn254FrSqrtResponse(o) {
|
|
511
|
+
if (o.isSquareRoot === undefined) {
|
|
512
|
+
throw new Error("Expected isSquareRoot in Bn254FrSqrtResponse serialization");
|
|
310
513
|
}
|
|
311
|
-
if (o.
|
|
312
|
-
throw new Error("Expected
|
|
514
|
+
if (o.value === undefined) {
|
|
515
|
+
throw new Error("Expected value in Bn254FrSqrtResponse serialization");
|
|
313
516
|
}
|
|
314
|
-
|
|
315
|
-
|
|
517
|
+
;
|
|
518
|
+
return {
|
|
519
|
+
is_square_root: o.isSquareRoot,
|
|
520
|
+
value: o.value,
|
|
521
|
+
};
|
|
522
|
+
}
|
|
523
|
+
function toBn254G1FromCompressed(o) {
|
|
524
|
+
if (o.compressed === undefined) {
|
|
525
|
+
throw new Error("Expected compressed in Bn254G1FromCompressed deserialization");
|
|
316
526
|
}
|
|
317
527
|
;
|
|
318
528
|
return {
|
|
319
|
-
|
|
320
|
-
includeGatesPerOpcode: o.include_gates_per_opcode,
|
|
321
|
-
settings: toProofSystemSettings(o.settings),
|
|
529
|
+
compressed: o.compressed,
|
|
322
530
|
};
|
|
323
531
|
}
|
|
324
|
-
function
|
|
325
|
-
if (o.
|
|
326
|
-
throw new Error("Expected
|
|
532
|
+
function fromBn254G1FromCompressed(o) {
|
|
533
|
+
if (o.compressed === undefined) {
|
|
534
|
+
throw new Error("Expected compressed in Bn254G1FromCompressed serialization");
|
|
327
535
|
}
|
|
328
|
-
|
|
329
|
-
|
|
536
|
+
;
|
|
537
|
+
return {
|
|
538
|
+
compressed: o.compressed,
|
|
539
|
+
};
|
|
540
|
+
}
|
|
541
|
+
function toBn254G1FromCompressedResponse(o) {
|
|
542
|
+
if (o.point === undefined) {
|
|
543
|
+
throw new Error("Expected point in Bn254G1FromCompressedResponse deserialization");
|
|
330
544
|
}
|
|
331
|
-
|
|
332
|
-
|
|
545
|
+
;
|
|
546
|
+
return {
|
|
547
|
+
point: toBn254G1Point(o.point),
|
|
548
|
+
};
|
|
549
|
+
}
|
|
550
|
+
function fromBn254G1FromCompressedResponse(o) {
|
|
551
|
+
if (o.point === undefined) {
|
|
552
|
+
throw new Error("Expected point in Bn254G1FromCompressedResponse serialization");
|
|
333
553
|
}
|
|
334
554
|
;
|
|
335
555
|
return {
|
|
336
|
-
|
|
337
|
-
include_gates_per_opcode: o.includeGatesPerOpcode,
|
|
338
|
-
settings: fromProofSystemSettings(o.settings),
|
|
556
|
+
point: fromBn254G1Point(o.point),
|
|
339
557
|
};
|
|
340
558
|
}
|
|
341
|
-
function
|
|
342
|
-
if (o.
|
|
343
|
-
throw new Error("Expected
|
|
559
|
+
function toBn254G1IsOnCurve(o) {
|
|
560
|
+
if (o.point === undefined) {
|
|
561
|
+
throw new Error("Expected point in Bn254G1IsOnCurve deserialization");
|
|
344
562
|
}
|
|
345
|
-
|
|
346
|
-
|
|
563
|
+
;
|
|
564
|
+
return {
|
|
565
|
+
point: toBn254G1Point(o.point),
|
|
566
|
+
};
|
|
567
|
+
}
|
|
568
|
+
function fromBn254G1IsOnCurve(o) {
|
|
569
|
+
if (o.point === undefined) {
|
|
570
|
+
throw new Error("Expected point in Bn254G1IsOnCurve serialization");
|
|
347
571
|
}
|
|
348
|
-
|
|
349
|
-
|
|
572
|
+
;
|
|
573
|
+
return {
|
|
574
|
+
point: fromBn254G1Point(o.point),
|
|
575
|
+
};
|
|
576
|
+
}
|
|
577
|
+
function toBn254G1IsOnCurveResponse(o) {
|
|
578
|
+
if (o.is_on_curve === undefined) {
|
|
579
|
+
throw new Error("Expected is_on_curve in Bn254G1IsOnCurveResponse deserialization");
|
|
350
580
|
}
|
|
351
|
-
|
|
352
|
-
|
|
581
|
+
;
|
|
582
|
+
return {
|
|
583
|
+
isOnCurve: o.is_on_curve,
|
|
584
|
+
};
|
|
585
|
+
}
|
|
586
|
+
function fromBn254G1IsOnCurveResponse(o) {
|
|
587
|
+
if (o.isOnCurve === undefined) {
|
|
588
|
+
throw new Error("Expected isOnCurve in Bn254G1IsOnCurveResponse serialization");
|
|
353
589
|
}
|
|
354
590
|
;
|
|
355
591
|
return {
|
|
356
|
-
|
|
357
|
-
publicInputs: o.public_inputs.map((v) => v),
|
|
358
|
-
proof: o.proof.map((v) => v),
|
|
359
|
-
settings: toProofSystemSettings(o.settings),
|
|
592
|
+
is_on_curve: o.isOnCurve,
|
|
360
593
|
};
|
|
361
594
|
}
|
|
362
|
-
function
|
|
363
|
-
if (o.
|
|
364
|
-
throw new Error("Expected
|
|
595
|
+
function toBn254G1Mul(o) {
|
|
596
|
+
if (o.point === undefined) {
|
|
597
|
+
throw new Error("Expected point in Bn254G1Mul deserialization");
|
|
365
598
|
}
|
|
366
|
-
if (o.
|
|
367
|
-
throw new Error("Expected
|
|
599
|
+
if (o.scalar === undefined) {
|
|
600
|
+
throw new Error("Expected scalar in Bn254G1Mul deserialization");
|
|
368
601
|
}
|
|
369
|
-
|
|
370
|
-
|
|
602
|
+
;
|
|
603
|
+
return {
|
|
604
|
+
point: toBn254G1Point(o.point),
|
|
605
|
+
scalar: o.scalar,
|
|
606
|
+
};
|
|
607
|
+
}
|
|
608
|
+
function fromBn254G1Mul(o) {
|
|
609
|
+
if (o.point === undefined) {
|
|
610
|
+
throw new Error("Expected point in Bn254G1Mul serialization");
|
|
371
611
|
}
|
|
372
|
-
if (o.
|
|
373
|
-
throw new Error("Expected
|
|
612
|
+
if (o.scalar === undefined) {
|
|
613
|
+
throw new Error("Expected scalar in Bn254G1Mul serialization");
|
|
374
614
|
}
|
|
375
615
|
;
|
|
376
616
|
return {
|
|
377
|
-
|
|
378
|
-
|
|
617
|
+
point: fromBn254G1Point(o.point),
|
|
618
|
+
scalar: o.scalar,
|
|
619
|
+
};
|
|
620
|
+
}
|
|
621
|
+
function toBn254G1MulResponse(o) {
|
|
622
|
+
if (o.point === undefined) {
|
|
623
|
+
throw new Error("Expected point in Bn254G1MulResponse deserialization");
|
|
624
|
+
}
|
|
625
|
+
;
|
|
626
|
+
return {
|
|
627
|
+
point: toBn254G1Point(o.point),
|
|
628
|
+
};
|
|
629
|
+
}
|
|
630
|
+
function fromBn254G1MulResponse(o) {
|
|
631
|
+
if (o.point === undefined) {
|
|
632
|
+
throw new Error("Expected point in Bn254G1MulResponse serialization");
|
|
633
|
+
}
|
|
634
|
+
;
|
|
635
|
+
return {
|
|
636
|
+
point: fromBn254G1Point(o.point),
|
|
637
|
+
};
|
|
638
|
+
}
|
|
639
|
+
function toBn254G1Point(o) {
|
|
640
|
+
if (o.x === undefined) {
|
|
641
|
+
throw new Error("Expected x in Bn254G1Point deserialization");
|
|
642
|
+
}
|
|
643
|
+
if (o.y === undefined) {
|
|
644
|
+
throw new Error("Expected y in Bn254G1Point deserialization");
|
|
645
|
+
}
|
|
646
|
+
;
|
|
647
|
+
return {
|
|
648
|
+
x: o.x,
|
|
649
|
+
y: o.y,
|
|
650
|
+
};
|
|
651
|
+
}
|
|
652
|
+
function fromBn254G1Point(o) {
|
|
653
|
+
if (o.x === undefined) {
|
|
654
|
+
throw new Error("Expected x in Bn254G1Point serialization");
|
|
655
|
+
}
|
|
656
|
+
if (o.y === undefined) {
|
|
657
|
+
throw new Error("Expected y in Bn254G1Point serialization");
|
|
658
|
+
}
|
|
659
|
+
;
|
|
660
|
+
return {
|
|
661
|
+
x: o.x,
|
|
662
|
+
y: o.y,
|
|
663
|
+
};
|
|
664
|
+
}
|
|
665
|
+
function toBn254G2Mul(o) {
|
|
666
|
+
if (o.point === undefined) {
|
|
667
|
+
throw new Error("Expected point in Bn254G2Mul deserialization");
|
|
668
|
+
}
|
|
669
|
+
if (o.scalar === undefined) {
|
|
670
|
+
throw new Error("Expected scalar in Bn254G2Mul deserialization");
|
|
671
|
+
}
|
|
672
|
+
;
|
|
673
|
+
return {
|
|
674
|
+
point: toBn254G2Point(o.point),
|
|
675
|
+
scalar: o.scalar,
|
|
676
|
+
};
|
|
677
|
+
}
|
|
678
|
+
function fromBn254G2Mul(o) {
|
|
679
|
+
if (o.point === undefined) {
|
|
680
|
+
throw new Error("Expected point in Bn254G2Mul serialization");
|
|
681
|
+
}
|
|
682
|
+
if (o.scalar === undefined) {
|
|
683
|
+
throw new Error("Expected scalar in Bn254G2Mul serialization");
|
|
684
|
+
}
|
|
685
|
+
;
|
|
686
|
+
return {
|
|
687
|
+
point: fromBn254G2Point(o.point),
|
|
688
|
+
scalar: o.scalar,
|
|
689
|
+
};
|
|
690
|
+
}
|
|
691
|
+
function toBn254G2MulResponse(o) {
|
|
692
|
+
if (o.point === undefined) {
|
|
693
|
+
throw new Error("Expected point in Bn254G2MulResponse deserialization");
|
|
694
|
+
}
|
|
695
|
+
;
|
|
696
|
+
return {
|
|
697
|
+
point: toBn254G2Point(o.point),
|
|
698
|
+
};
|
|
699
|
+
}
|
|
700
|
+
function fromBn254G2MulResponse(o) {
|
|
701
|
+
if (o.point === undefined) {
|
|
702
|
+
throw new Error("Expected point in Bn254G2MulResponse serialization");
|
|
703
|
+
}
|
|
704
|
+
;
|
|
705
|
+
return {
|
|
706
|
+
point: fromBn254G2Point(o.point),
|
|
707
|
+
};
|
|
708
|
+
}
|
|
709
|
+
function toBn254G2Point(o) {
|
|
710
|
+
if (o.x === undefined) {
|
|
711
|
+
throw new Error("Expected x in Bn254G2Point deserialization");
|
|
712
|
+
}
|
|
713
|
+
if (o.y === undefined) {
|
|
714
|
+
throw new Error("Expected y in Bn254G2Point deserialization");
|
|
715
|
+
}
|
|
716
|
+
;
|
|
717
|
+
return {
|
|
718
|
+
x: o.x,
|
|
719
|
+
y: o.y,
|
|
720
|
+
};
|
|
721
|
+
}
|
|
722
|
+
function fromBn254G2Point(o) {
|
|
723
|
+
if (o.x === undefined) {
|
|
724
|
+
throw new Error("Expected x in Bn254G2Point serialization");
|
|
725
|
+
}
|
|
726
|
+
if (o.y === undefined) {
|
|
727
|
+
throw new Error("Expected y in Bn254G2Point serialization");
|
|
728
|
+
}
|
|
729
|
+
;
|
|
730
|
+
return {
|
|
731
|
+
x: o.x,
|
|
732
|
+
y: o.y,
|
|
733
|
+
};
|
|
734
|
+
}
|
|
735
|
+
function toChonkAccumulate(o) {
|
|
736
|
+
if (o.witness === undefined) {
|
|
737
|
+
throw new Error("Expected witness in ChonkAccumulate deserialization");
|
|
738
|
+
}
|
|
739
|
+
;
|
|
740
|
+
return {
|
|
741
|
+
witness: o.witness,
|
|
742
|
+
};
|
|
743
|
+
}
|
|
744
|
+
function fromChonkAccumulate(o) {
|
|
745
|
+
if (o.witness === undefined) {
|
|
746
|
+
throw new Error("Expected witness in ChonkAccumulate serialization");
|
|
747
|
+
}
|
|
748
|
+
;
|
|
749
|
+
return {
|
|
750
|
+
witness: o.witness,
|
|
751
|
+
};
|
|
752
|
+
}
|
|
753
|
+
function toChonkAccumulateResponse(o) {
|
|
754
|
+
return {};
|
|
755
|
+
}
|
|
756
|
+
function fromChonkAccumulateResponse(o) {
|
|
757
|
+
return {};
|
|
758
|
+
}
|
|
759
|
+
function toChonkCheckPrecomputedVk(o) {
|
|
760
|
+
if (o.circuit === undefined) {
|
|
761
|
+
throw new Error("Expected circuit in ChonkCheckPrecomputedVk deserialization");
|
|
762
|
+
}
|
|
763
|
+
;
|
|
764
|
+
return {
|
|
765
|
+
circuit: toCircuitInput(o.circuit),
|
|
766
|
+
};
|
|
767
|
+
}
|
|
768
|
+
function fromChonkCheckPrecomputedVk(o) {
|
|
769
|
+
if (o.circuit === undefined) {
|
|
770
|
+
throw new Error("Expected circuit in ChonkCheckPrecomputedVk serialization");
|
|
771
|
+
}
|
|
772
|
+
;
|
|
773
|
+
return {
|
|
774
|
+
circuit: fromCircuitInput(o.circuit),
|
|
775
|
+
};
|
|
776
|
+
}
|
|
777
|
+
function toChonkCheckPrecomputedVkResponse(o) {
|
|
778
|
+
if (o.valid === undefined) {
|
|
779
|
+
throw new Error("Expected valid in ChonkCheckPrecomputedVkResponse deserialization");
|
|
780
|
+
}
|
|
781
|
+
if (o.actual_vk === undefined) {
|
|
782
|
+
throw new Error("Expected actual_vk in ChonkCheckPrecomputedVkResponse deserialization");
|
|
783
|
+
}
|
|
784
|
+
;
|
|
785
|
+
return {
|
|
786
|
+
valid: o.valid,
|
|
787
|
+
actualVk: o.actual_vk,
|
|
788
|
+
};
|
|
789
|
+
}
|
|
790
|
+
function fromChonkCheckPrecomputedVkResponse(o) {
|
|
791
|
+
if (o.valid === undefined) {
|
|
792
|
+
throw new Error("Expected valid in ChonkCheckPrecomputedVkResponse serialization");
|
|
793
|
+
}
|
|
794
|
+
if (o.actualVk === undefined) {
|
|
795
|
+
throw new Error("Expected actualVk in ChonkCheckPrecomputedVkResponse serialization");
|
|
796
|
+
}
|
|
797
|
+
;
|
|
798
|
+
return {
|
|
799
|
+
valid: o.valid,
|
|
800
|
+
actual_vk: o.actualVk,
|
|
801
|
+
};
|
|
802
|
+
}
|
|
803
|
+
function toChonkComputeIvcVk(o) {
|
|
804
|
+
if (o.circuit === undefined) {
|
|
805
|
+
throw new Error("Expected circuit in ChonkComputeIvcVk deserialization");
|
|
806
|
+
}
|
|
807
|
+
;
|
|
808
|
+
return {
|
|
809
|
+
circuit: toCircuitInputNoVK(o.circuit),
|
|
810
|
+
};
|
|
811
|
+
}
|
|
812
|
+
function fromChonkComputeIvcVk(o) {
|
|
813
|
+
if (o.circuit === undefined) {
|
|
814
|
+
throw new Error("Expected circuit in ChonkComputeIvcVk serialization");
|
|
815
|
+
}
|
|
816
|
+
;
|
|
817
|
+
return {
|
|
818
|
+
circuit: fromCircuitInputNoVK(o.circuit),
|
|
819
|
+
};
|
|
820
|
+
}
|
|
821
|
+
function toChonkComputeIvcVkResponse(o) {
|
|
822
|
+
if (o.bytes === undefined) {
|
|
823
|
+
throw new Error("Expected bytes in ChonkComputeIvcVkResponse deserialization");
|
|
824
|
+
}
|
|
825
|
+
;
|
|
826
|
+
return {
|
|
827
|
+
bytes: o.bytes,
|
|
828
|
+
};
|
|
829
|
+
}
|
|
830
|
+
function fromChonkComputeIvcVkResponse(o) {
|
|
831
|
+
if (o.bytes === undefined) {
|
|
832
|
+
throw new Error("Expected bytes in ChonkComputeIvcVkResponse serialization");
|
|
833
|
+
}
|
|
834
|
+
;
|
|
835
|
+
return {
|
|
836
|
+
bytes: o.bytes,
|
|
837
|
+
};
|
|
838
|
+
}
|
|
839
|
+
function toChonkComputeStandaloneVk(o) {
|
|
840
|
+
if (o.circuit === undefined) {
|
|
841
|
+
throw new Error("Expected circuit in ChonkComputeStandaloneVk deserialization");
|
|
842
|
+
}
|
|
843
|
+
;
|
|
844
|
+
return {
|
|
845
|
+
circuit: toCircuitInputNoVK(o.circuit),
|
|
846
|
+
};
|
|
847
|
+
}
|
|
848
|
+
function fromChonkComputeStandaloneVk(o) {
|
|
849
|
+
if (o.circuit === undefined) {
|
|
850
|
+
throw new Error("Expected circuit in ChonkComputeStandaloneVk serialization");
|
|
851
|
+
}
|
|
852
|
+
;
|
|
853
|
+
return {
|
|
854
|
+
circuit: fromCircuitInputNoVK(o.circuit),
|
|
855
|
+
};
|
|
856
|
+
}
|
|
857
|
+
function toChonkComputeStandaloneVkResponse(o) {
|
|
858
|
+
if (o.bytes === undefined) {
|
|
859
|
+
throw new Error("Expected bytes in ChonkComputeStandaloneVkResponse deserialization");
|
|
860
|
+
}
|
|
861
|
+
if (o.fields === undefined) {
|
|
862
|
+
throw new Error("Expected fields in ChonkComputeStandaloneVkResponse deserialization");
|
|
863
|
+
}
|
|
864
|
+
;
|
|
865
|
+
return {
|
|
866
|
+
bytes: o.bytes,
|
|
867
|
+
fields: o.fields.map((v) => v),
|
|
868
|
+
};
|
|
869
|
+
}
|
|
870
|
+
function fromChonkComputeStandaloneVkResponse(o) {
|
|
871
|
+
if (o.bytes === undefined) {
|
|
872
|
+
throw new Error("Expected bytes in ChonkComputeStandaloneVkResponse serialization");
|
|
873
|
+
}
|
|
874
|
+
if (o.fields === undefined) {
|
|
875
|
+
throw new Error("Expected fields in ChonkComputeStandaloneVkResponse serialization");
|
|
876
|
+
}
|
|
877
|
+
;
|
|
878
|
+
return {
|
|
879
|
+
bytes: o.bytes,
|
|
880
|
+
fields: o.fields.map((v) => v),
|
|
881
|
+
};
|
|
882
|
+
}
|
|
883
|
+
function toChonkLoad(o) {
|
|
884
|
+
if (o.circuit === undefined) {
|
|
885
|
+
throw new Error("Expected circuit in ChonkLoad deserialization");
|
|
886
|
+
}
|
|
887
|
+
;
|
|
888
|
+
return {
|
|
889
|
+
circuit: toCircuitInput(o.circuit),
|
|
890
|
+
};
|
|
891
|
+
}
|
|
892
|
+
function fromChonkLoad(o) {
|
|
893
|
+
if (o.circuit === undefined) {
|
|
894
|
+
throw new Error("Expected circuit in ChonkLoad serialization");
|
|
895
|
+
}
|
|
896
|
+
;
|
|
897
|
+
return {
|
|
898
|
+
circuit: fromCircuitInput(o.circuit),
|
|
899
|
+
};
|
|
900
|
+
}
|
|
901
|
+
function toChonkLoadResponse(o) {
|
|
902
|
+
return {};
|
|
903
|
+
}
|
|
904
|
+
function fromChonkLoadResponse(o) {
|
|
905
|
+
return {};
|
|
906
|
+
}
|
|
907
|
+
function toChonkProof(o) {
|
|
908
|
+
if (o.mega_proof === undefined) {
|
|
909
|
+
throw new Error("Expected mega_proof in ChonkProof deserialization");
|
|
910
|
+
}
|
|
911
|
+
if (o.goblin_proof === undefined) {
|
|
912
|
+
throw new Error("Expected goblin_proof in ChonkProof deserialization");
|
|
913
|
+
}
|
|
914
|
+
;
|
|
915
|
+
return {
|
|
916
|
+
megaProof: o.mega_proof.map((v) => v),
|
|
917
|
+
goblinProof: toGoblinProof(o.goblin_proof),
|
|
918
|
+
};
|
|
919
|
+
}
|
|
920
|
+
function fromChonkProof(o) {
|
|
921
|
+
if (o.megaProof === undefined) {
|
|
922
|
+
throw new Error("Expected megaProof in ChonkProof serialization");
|
|
923
|
+
}
|
|
924
|
+
if (o.goblinProof === undefined) {
|
|
925
|
+
throw new Error("Expected goblinProof in ChonkProof serialization");
|
|
926
|
+
}
|
|
927
|
+
;
|
|
928
|
+
return {
|
|
929
|
+
mega_proof: o.megaProof.map((v) => v),
|
|
930
|
+
goblin_proof: fromGoblinProof(o.goblinProof),
|
|
931
|
+
};
|
|
932
|
+
}
|
|
933
|
+
function toChonkProve(o) {
|
|
934
|
+
return {};
|
|
935
|
+
}
|
|
936
|
+
function fromChonkProve(o) {
|
|
937
|
+
return {};
|
|
938
|
+
}
|
|
939
|
+
function toChonkProveResponse(o) {
|
|
940
|
+
if (o.proof === undefined) {
|
|
941
|
+
throw new Error("Expected proof in ChonkProveResponse deserialization");
|
|
942
|
+
}
|
|
943
|
+
;
|
|
944
|
+
return {
|
|
945
|
+
proof: toChonkProof(o.proof),
|
|
946
|
+
};
|
|
947
|
+
}
|
|
948
|
+
function fromChonkProveResponse(o) {
|
|
949
|
+
if (o.proof === undefined) {
|
|
950
|
+
throw new Error("Expected proof in ChonkProveResponse serialization");
|
|
951
|
+
}
|
|
952
|
+
;
|
|
953
|
+
return {
|
|
954
|
+
proof: fromChonkProof(o.proof),
|
|
955
|
+
};
|
|
956
|
+
}
|
|
957
|
+
function toChonkStart(o) {
|
|
958
|
+
if (o.num_circuits === undefined) {
|
|
959
|
+
throw new Error("Expected num_circuits in ChonkStart deserialization");
|
|
960
|
+
}
|
|
961
|
+
;
|
|
962
|
+
return {
|
|
963
|
+
numCircuits: o.num_circuits,
|
|
964
|
+
};
|
|
965
|
+
}
|
|
966
|
+
function fromChonkStart(o) {
|
|
967
|
+
if (o.numCircuits === undefined) {
|
|
968
|
+
throw new Error("Expected numCircuits in ChonkStart serialization");
|
|
969
|
+
}
|
|
970
|
+
;
|
|
971
|
+
return {
|
|
972
|
+
num_circuits: o.numCircuits,
|
|
973
|
+
};
|
|
974
|
+
}
|
|
975
|
+
function toChonkStartResponse(o) {
|
|
976
|
+
return {};
|
|
977
|
+
}
|
|
978
|
+
function fromChonkStartResponse(o) {
|
|
979
|
+
return {};
|
|
980
|
+
}
|
|
981
|
+
function toChonkStats(o) {
|
|
982
|
+
if (o.circuit === undefined) {
|
|
983
|
+
throw new Error("Expected circuit in ChonkStats deserialization");
|
|
984
|
+
}
|
|
985
|
+
if (o.include_gates_per_opcode === undefined) {
|
|
986
|
+
throw new Error("Expected include_gates_per_opcode in ChonkStats deserialization");
|
|
987
|
+
}
|
|
988
|
+
;
|
|
989
|
+
return {
|
|
990
|
+
circuit: toCircuitInputNoVK(o.circuit),
|
|
991
|
+
includeGatesPerOpcode: o.include_gates_per_opcode,
|
|
992
|
+
};
|
|
993
|
+
}
|
|
994
|
+
function fromChonkStats(o) {
|
|
995
|
+
if (o.circuit === undefined) {
|
|
996
|
+
throw new Error("Expected circuit in ChonkStats serialization");
|
|
997
|
+
}
|
|
998
|
+
if (o.includeGatesPerOpcode === undefined) {
|
|
999
|
+
throw new Error("Expected includeGatesPerOpcode in ChonkStats serialization");
|
|
1000
|
+
}
|
|
1001
|
+
;
|
|
1002
|
+
return {
|
|
1003
|
+
circuit: fromCircuitInputNoVK(o.circuit),
|
|
1004
|
+
include_gates_per_opcode: o.includeGatesPerOpcode,
|
|
1005
|
+
};
|
|
1006
|
+
}
|
|
1007
|
+
function toChonkStatsResponse(o) {
|
|
1008
|
+
if (o.acir_opcodes === undefined) {
|
|
1009
|
+
throw new Error("Expected acir_opcodes in ChonkStatsResponse deserialization");
|
|
1010
|
+
}
|
|
1011
|
+
if (o.circuit_size === undefined) {
|
|
1012
|
+
throw new Error("Expected circuit_size in ChonkStatsResponse deserialization");
|
|
1013
|
+
}
|
|
1014
|
+
if (o.gates_per_opcode === undefined) {
|
|
1015
|
+
throw new Error("Expected gates_per_opcode in ChonkStatsResponse deserialization");
|
|
1016
|
+
}
|
|
1017
|
+
;
|
|
1018
|
+
return {
|
|
1019
|
+
acirOpcodes: o.acir_opcodes,
|
|
1020
|
+
circuitSize: o.circuit_size,
|
|
1021
|
+
gatesPerOpcode: o.gates_per_opcode.map((v) => v),
|
|
1022
|
+
};
|
|
1023
|
+
}
|
|
1024
|
+
function fromChonkStatsResponse(o) {
|
|
1025
|
+
if (o.acirOpcodes === undefined) {
|
|
1026
|
+
throw new Error("Expected acirOpcodes in ChonkStatsResponse serialization");
|
|
1027
|
+
}
|
|
1028
|
+
if (o.circuitSize === undefined) {
|
|
1029
|
+
throw new Error("Expected circuitSize in ChonkStatsResponse serialization");
|
|
1030
|
+
}
|
|
1031
|
+
if (o.gatesPerOpcode === undefined) {
|
|
1032
|
+
throw new Error("Expected gatesPerOpcode in ChonkStatsResponse serialization");
|
|
1033
|
+
}
|
|
1034
|
+
;
|
|
1035
|
+
return {
|
|
1036
|
+
acir_opcodes: o.acirOpcodes,
|
|
1037
|
+
circuit_size: o.circuitSize,
|
|
1038
|
+
gates_per_opcode: o.gatesPerOpcode.map((v) => v),
|
|
1039
|
+
};
|
|
1040
|
+
}
|
|
1041
|
+
function toChonkVerify(o) {
|
|
1042
|
+
if (o.proof === undefined) {
|
|
1043
|
+
throw new Error("Expected proof in ChonkVerify deserialization");
|
|
1044
|
+
}
|
|
1045
|
+
if (o.vk === undefined) {
|
|
1046
|
+
throw new Error("Expected vk in ChonkVerify deserialization");
|
|
1047
|
+
}
|
|
1048
|
+
;
|
|
1049
|
+
return {
|
|
1050
|
+
proof: toChonkProof(o.proof),
|
|
1051
|
+
vk: o.vk,
|
|
1052
|
+
};
|
|
1053
|
+
}
|
|
1054
|
+
function fromChonkVerify(o) {
|
|
1055
|
+
if (o.proof === undefined) {
|
|
1056
|
+
throw new Error("Expected proof in ChonkVerify serialization");
|
|
1057
|
+
}
|
|
1058
|
+
if (o.vk === undefined) {
|
|
1059
|
+
throw new Error("Expected vk in ChonkVerify serialization");
|
|
1060
|
+
}
|
|
1061
|
+
;
|
|
1062
|
+
return {
|
|
1063
|
+
proof: fromChonkProof(o.proof),
|
|
1064
|
+
vk: o.vk,
|
|
1065
|
+
};
|
|
1066
|
+
}
|
|
1067
|
+
function toChonkVerifyResponse(o) {
|
|
1068
|
+
if (o.valid === undefined) {
|
|
1069
|
+
throw new Error("Expected valid in ChonkVerifyResponse deserialization");
|
|
1070
|
+
}
|
|
1071
|
+
;
|
|
1072
|
+
return {
|
|
1073
|
+
valid: o.valid,
|
|
1074
|
+
};
|
|
1075
|
+
}
|
|
1076
|
+
function fromChonkVerifyResponse(o) {
|
|
1077
|
+
if (o.valid === undefined) {
|
|
1078
|
+
throw new Error("Expected valid in ChonkVerifyResponse serialization");
|
|
1079
|
+
}
|
|
1080
|
+
;
|
|
1081
|
+
return {
|
|
1082
|
+
valid: o.valid,
|
|
1083
|
+
};
|
|
1084
|
+
}
|
|
1085
|
+
function toCircuitComputeVk(o) {
|
|
1086
|
+
if (o.circuit === undefined) {
|
|
1087
|
+
throw new Error("Expected circuit in CircuitComputeVk deserialization");
|
|
1088
|
+
}
|
|
1089
|
+
if (o.settings === undefined) {
|
|
1090
|
+
throw new Error("Expected settings in CircuitComputeVk deserialization");
|
|
1091
|
+
}
|
|
1092
|
+
;
|
|
1093
|
+
return {
|
|
1094
|
+
circuit: toCircuitInputNoVK(o.circuit),
|
|
1095
|
+
settings: toProofSystemSettings(o.settings),
|
|
1096
|
+
};
|
|
1097
|
+
}
|
|
1098
|
+
function fromCircuitComputeVk(o) {
|
|
1099
|
+
if (o.circuit === undefined) {
|
|
1100
|
+
throw new Error("Expected circuit in CircuitComputeVk serialization");
|
|
1101
|
+
}
|
|
1102
|
+
if (o.settings === undefined) {
|
|
1103
|
+
throw new Error("Expected settings in CircuitComputeVk serialization");
|
|
1104
|
+
}
|
|
1105
|
+
;
|
|
1106
|
+
return {
|
|
1107
|
+
circuit: fromCircuitInputNoVK(o.circuit),
|
|
1108
|
+
settings: fromProofSystemSettings(o.settings),
|
|
1109
|
+
};
|
|
1110
|
+
}
|
|
1111
|
+
function toCircuitComputeVkResponse(o) {
|
|
1112
|
+
if (o.bytes === undefined) {
|
|
1113
|
+
throw new Error("Expected bytes in CircuitComputeVkResponse deserialization");
|
|
1114
|
+
}
|
|
1115
|
+
if (o.fields === undefined) {
|
|
1116
|
+
throw new Error("Expected fields in CircuitComputeVkResponse deserialization");
|
|
1117
|
+
}
|
|
1118
|
+
if (o.hash === undefined) {
|
|
1119
|
+
throw new Error("Expected hash in CircuitComputeVkResponse deserialization");
|
|
1120
|
+
}
|
|
1121
|
+
;
|
|
1122
|
+
return {
|
|
1123
|
+
bytes: o.bytes,
|
|
1124
|
+
fields: o.fields.map((v) => v),
|
|
1125
|
+
hash: o.hash,
|
|
1126
|
+
};
|
|
1127
|
+
}
|
|
1128
|
+
function fromCircuitComputeVkResponse(o) {
|
|
1129
|
+
if (o.bytes === undefined) {
|
|
1130
|
+
throw new Error("Expected bytes in CircuitComputeVkResponse serialization");
|
|
1131
|
+
}
|
|
1132
|
+
if (o.fields === undefined) {
|
|
1133
|
+
throw new Error("Expected fields in CircuitComputeVkResponse serialization");
|
|
1134
|
+
}
|
|
1135
|
+
if (o.hash === undefined) {
|
|
1136
|
+
throw new Error("Expected hash in CircuitComputeVkResponse serialization");
|
|
1137
|
+
}
|
|
1138
|
+
;
|
|
1139
|
+
return {
|
|
1140
|
+
bytes: o.bytes,
|
|
1141
|
+
fields: o.fields.map((v) => v),
|
|
1142
|
+
hash: o.hash,
|
|
1143
|
+
};
|
|
1144
|
+
}
|
|
1145
|
+
function toCircuitInfoResponse(o) {
|
|
1146
|
+
if (o.num_gates === undefined) {
|
|
1147
|
+
throw new Error("Expected num_gates in CircuitInfoResponse deserialization");
|
|
1148
|
+
}
|
|
1149
|
+
if (o.num_gates_dyadic === undefined) {
|
|
1150
|
+
throw new Error("Expected num_gates_dyadic in CircuitInfoResponse deserialization");
|
|
1151
|
+
}
|
|
1152
|
+
if (o.num_acir_opcodes === undefined) {
|
|
1153
|
+
throw new Error("Expected num_acir_opcodes in CircuitInfoResponse deserialization");
|
|
1154
|
+
}
|
|
1155
|
+
if (o.gates_per_opcode === undefined) {
|
|
1156
|
+
throw new Error("Expected gates_per_opcode in CircuitInfoResponse deserialization");
|
|
1157
|
+
}
|
|
1158
|
+
;
|
|
1159
|
+
return {
|
|
1160
|
+
numGates: o.num_gates,
|
|
1161
|
+
numGatesDyadic: o.num_gates_dyadic,
|
|
1162
|
+
numAcirOpcodes: o.num_acir_opcodes,
|
|
1163
|
+
gatesPerOpcode: o.gates_per_opcode.map((v) => v),
|
|
1164
|
+
};
|
|
1165
|
+
}
|
|
1166
|
+
function fromCircuitInfoResponse(o) {
|
|
1167
|
+
if (o.numGates === undefined) {
|
|
1168
|
+
throw new Error("Expected numGates in CircuitInfoResponse serialization");
|
|
1169
|
+
}
|
|
1170
|
+
if (o.numGatesDyadic === undefined) {
|
|
1171
|
+
throw new Error("Expected numGatesDyadic in CircuitInfoResponse serialization");
|
|
1172
|
+
}
|
|
1173
|
+
if (o.numAcirOpcodes === undefined) {
|
|
1174
|
+
throw new Error("Expected numAcirOpcodes in CircuitInfoResponse serialization");
|
|
1175
|
+
}
|
|
1176
|
+
if (o.gatesPerOpcode === undefined) {
|
|
1177
|
+
throw new Error("Expected gatesPerOpcode in CircuitInfoResponse serialization");
|
|
1178
|
+
}
|
|
1179
|
+
;
|
|
1180
|
+
return {
|
|
1181
|
+
num_gates: o.numGates,
|
|
1182
|
+
num_gates_dyadic: o.numGatesDyadic,
|
|
1183
|
+
num_acir_opcodes: o.numAcirOpcodes,
|
|
1184
|
+
gates_per_opcode: o.gatesPerOpcode.map((v) => v),
|
|
1185
|
+
};
|
|
1186
|
+
}
|
|
1187
|
+
function toCircuitInput(o) {
|
|
1188
|
+
if (o.name === undefined) {
|
|
1189
|
+
throw new Error("Expected name in CircuitInput deserialization");
|
|
1190
|
+
}
|
|
1191
|
+
if (o.bytecode === undefined) {
|
|
1192
|
+
throw new Error("Expected bytecode in CircuitInput deserialization");
|
|
1193
|
+
}
|
|
1194
|
+
if (o.verification_key === undefined) {
|
|
1195
|
+
throw new Error("Expected verification_key in CircuitInput deserialization");
|
|
1196
|
+
}
|
|
1197
|
+
;
|
|
1198
|
+
return {
|
|
1199
|
+
name: o.name,
|
|
1200
|
+
bytecode: o.bytecode,
|
|
1201
|
+
verificationKey: o.verification_key,
|
|
1202
|
+
};
|
|
1203
|
+
}
|
|
1204
|
+
function fromCircuitInput(o) {
|
|
1205
|
+
if (o.name === undefined) {
|
|
1206
|
+
throw new Error("Expected name in CircuitInput serialization");
|
|
1207
|
+
}
|
|
1208
|
+
if (o.bytecode === undefined) {
|
|
1209
|
+
throw new Error("Expected bytecode in CircuitInput serialization");
|
|
1210
|
+
}
|
|
1211
|
+
if (o.verificationKey === undefined) {
|
|
1212
|
+
throw new Error("Expected verificationKey in CircuitInput serialization");
|
|
1213
|
+
}
|
|
1214
|
+
;
|
|
1215
|
+
return {
|
|
1216
|
+
name: o.name,
|
|
1217
|
+
bytecode: o.bytecode,
|
|
1218
|
+
verification_key: o.verificationKey,
|
|
1219
|
+
};
|
|
1220
|
+
}
|
|
1221
|
+
function toCircuitInputNoVK(o) {
|
|
1222
|
+
if (o.name === undefined) {
|
|
1223
|
+
throw new Error("Expected name in CircuitInputNoVK deserialization");
|
|
1224
|
+
}
|
|
1225
|
+
if (o.bytecode === undefined) {
|
|
1226
|
+
throw new Error("Expected bytecode in CircuitInputNoVK deserialization");
|
|
1227
|
+
}
|
|
1228
|
+
;
|
|
1229
|
+
return {
|
|
1230
|
+
name: o.name,
|
|
1231
|
+
bytecode: o.bytecode,
|
|
1232
|
+
};
|
|
1233
|
+
}
|
|
1234
|
+
function fromCircuitInputNoVK(o) {
|
|
1235
|
+
if (o.name === undefined) {
|
|
1236
|
+
throw new Error("Expected name in CircuitInputNoVK serialization");
|
|
1237
|
+
}
|
|
1238
|
+
if (o.bytecode === undefined) {
|
|
1239
|
+
throw new Error("Expected bytecode in CircuitInputNoVK serialization");
|
|
1240
|
+
}
|
|
1241
|
+
;
|
|
1242
|
+
return {
|
|
1243
|
+
name: o.name,
|
|
1244
|
+
bytecode: o.bytecode,
|
|
1245
|
+
};
|
|
1246
|
+
}
|
|
1247
|
+
function toCircuitProve(o) {
|
|
1248
|
+
if (o.circuit === undefined) {
|
|
1249
|
+
throw new Error("Expected circuit in CircuitProve deserialization");
|
|
1250
|
+
}
|
|
1251
|
+
if (o.witness === undefined) {
|
|
1252
|
+
throw new Error("Expected witness in CircuitProve deserialization");
|
|
1253
|
+
}
|
|
1254
|
+
if (o.settings === undefined) {
|
|
1255
|
+
throw new Error("Expected settings in CircuitProve deserialization");
|
|
1256
|
+
}
|
|
1257
|
+
;
|
|
1258
|
+
return {
|
|
1259
|
+
circuit: toCircuitInput(o.circuit),
|
|
1260
|
+
witness: o.witness,
|
|
1261
|
+
settings: toProofSystemSettings(o.settings),
|
|
1262
|
+
};
|
|
1263
|
+
}
|
|
1264
|
+
function fromCircuitProve(o) {
|
|
1265
|
+
if (o.circuit === undefined) {
|
|
1266
|
+
throw new Error("Expected circuit in CircuitProve serialization");
|
|
1267
|
+
}
|
|
1268
|
+
if (o.witness === undefined) {
|
|
1269
|
+
throw new Error("Expected witness in CircuitProve serialization");
|
|
1270
|
+
}
|
|
1271
|
+
if (o.settings === undefined) {
|
|
1272
|
+
throw new Error("Expected settings in CircuitProve serialization");
|
|
1273
|
+
}
|
|
1274
|
+
;
|
|
1275
|
+
return {
|
|
1276
|
+
circuit: fromCircuitInput(o.circuit),
|
|
1277
|
+
witness: o.witness,
|
|
1278
|
+
settings: fromProofSystemSettings(o.settings),
|
|
1279
|
+
};
|
|
1280
|
+
}
|
|
1281
|
+
function toCircuitProveResponse(o) {
|
|
1282
|
+
if (o.public_inputs === undefined) {
|
|
1283
|
+
throw new Error("Expected public_inputs in CircuitProveResponse deserialization");
|
|
1284
|
+
}
|
|
1285
|
+
if (o.proof === undefined) {
|
|
1286
|
+
throw new Error("Expected proof in CircuitProveResponse deserialization");
|
|
1287
|
+
}
|
|
1288
|
+
if (o.vk === undefined) {
|
|
1289
|
+
throw new Error("Expected vk in CircuitProveResponse deserialization");
|
|
1290
|
+
}
|
|
1291
|
+
;
|
|
1292
|
+
return {
|
|
1293
|
+
publicInputs: o.public_inputs.map((v) => v),
|
|
1294
|
+
proof: o.proof.map((v) => v),
|
|
1295
|
+
vk: toCircuitComputeVkResponse(o.vk),
|
|
1296
|
+
};
|
|
1297
|
+
}
|
|
1298
|
+
function fromCircuitProveResponse(o) {
|
|
1299
|
+
if (o.publicInputs === undefined) {
|
|
1300
|
+
throw new Error("Expected publicInputs in CircuitProveResponse serialization");
|
|
1301
|
+
}
|
|
1302
|
+
if (o.proof === undefined) {
|
|
1303
|
+
throw new Error("Expected proof in CircuitProveResponse serialization");
|
|
1304
|
+
}
|
|
1305
|
+
if (o.vk === undefined) {
|
|
1306
|
+
throw new Error("Expected vk in CircuitProveResponse serialization");
|
|
1307
|
+
}
|
|
1308
|
+
;
|
|
1309
|
+
return {
|
|
1310
|
+
public_inputs: o.publicInputs.map((v) => v),
|
|
1311
|
+
proof: o.proof.map((v) => v),
|
|
1312
|
+
vk: fromCircuitComputeVkResponse(o.vk),
|
|
1313
|
+
};
|
|
1314
|
+
}
|
|
1315
|
+
function toCircuitStats(o) {
|
|
1316
|
+
if (o.circuit === undefined) {
|
|
1317
|
+
throw new Error("Expected circuit in CircuitStats deserialization");
|
|
1318
|
+
}
|
|
1319
|
+
if (o.include_gates_per_opcode === undefined) {
|
|
1320
|
+
throw new Error("Expected include_gates_per_opcode in CircuitStats deserialization");
|
|
1321
|
+
}
|
|
1322
|
+
if (o.settings === undefined) {
|
|
1323
|
+
throw new Error("Expected settings in CircuitStats deserialization");
|
|
1324
|
+
}
|
|
1325
|
+
;
|
|
1326
|
+
return {
|
|
1327
|
+
circuit: toCircuitInput(o.circuit),
|
|
1328
|
+
includeGatesPerOpcode: o.include_gates_per_opcode,
|
|
1329
|
+
settings: toProofSystemSettings(o.settings),
|
|
1330
|
+
};
|
|
1331
|
+
}
|
|
1332
|
+
function fromCircuitStats(o) {
|
|
1333
|
+
if (o.circuit === undefined) {
|
|
1334
|
+
throw new Error("Expected circuit in CircuitStats serialization");
|
|
1335
|
+
}
|
|
1336
|
+
if (o.includeGatesPerOpcode === undefined) {
|
|
1337
|
+
throw new Error("Expected includeGatesPerOpcode in CircuitStats serialization");
|
|
1338
|
+
}
|
|
1339
|
+
if (o.settings === undefined) {
|
|
1340
|
+
throw new Error("Expected settings in CircuitStats serialization");
|
|
1341
|
+
}
|
|
1342
|
+
;
|
|
1343
|
+
return {
|
|
1344
|
+
circuit: fromCircuitInput(o.circuit),
|
|
1345
|
+
include_gates_per_opcode: o.includeGatesPerOpcode,
|
|
1346
|
+
settings: fromProofSystemSettings(o.settings),
|
|
1347
|
+
};
|
|
1348
|
+
}
|
|
1349
|
+
function toCircuitVerify(o) {
|
|
1350
|
+
if (o.verification_key === undefined) {
|
|
1351
|
+
throw new Error("Expected verification_key in CircuitVerify deserialization");
|
|
1352
|
+
}
|
|
1353
|
+
if (o.public_inputs === undefined) {
|
|
1354
|
+
throw new Error("Expected public_inputs in CircuitVerify deserialization");
|
|
1355
|
+
}
|
|
1356
|
+
if (o.proof === undefined) {
|
|
1357
|
+
throw new Error("Expected proof in CircuitVerify deserialization");
|
|
1358
|
+
}
|
|
1359
|
+
if (o.settings === undefined) {
|
|
1360
|
+
throw new Error("Expected settings in CircuitVerify deserialization");
|
|
1361
|
+
}
|
|
1362
|
+
;
|
|
1363
|
+
return {
|
|
1364
|
+
verificationKey: o.verification_key,
|
|
1365
|
+
publicInputs: o.public_inputs.map((v) => v),
|
|
1366
|
+
proof: o.proof.map((v) => v),
|
|
1367
|
+
settings: toProofSystemSettings(o.settings),
|
|
1368
|
+
};
|
|
1369
|
+
}
|
|
1370
|
+
function fromCircuitVerify(o) {
|
|
1371
|
+
if (o.verificationKey === undefined) {
|
|
1372
|
+
throw new Error("Expected verificationKey in CircuitVerify serialization");
|
|
1373
|
+
}
|
|
1374
|
+
if (o.publicInputs === undefined) {
|
|
1375
|
+
throw new Error("Expected publicInputs in CircuitVerify serialization");
|
|
1376
|
+
}
|
|
1377
|
+
if (o.proof === undefined) {
|
|
1378
|
+
throw new Error("Expected proof in CircuitVerify serialization");
|
|
1379
|
+
}
|
|
1380
|
+
if (o.settings === undefined) {
|
|
1381
|
+
throw new Error("Expected settings in CircuitVerify serialization");
|
|
1382
|
+
}
|
|
1383
|
+
;
|
|
1384
|
+
return {
|
|
1385
|
+
verification_key: o.verificationKey,
|
|
1386
|
+
public_inputs: o.publicInputs.map((v) => v),
|
|
379
1387
|
proof: o.proof.map((v) => v),
|
|
380
1388
|
settings: fromProofSystemSettings(o.settings),
|
|
381
1389
|
};
|
|
382
1390
|
}
|
|
383
|
-
function toCircuitVerifyResponse(o) {
|
|
384
|
-
if (o.verified === undefined) {
|
|
385
|
-
throw new Error("Expected verified in CircuitVerifyResponse deserialization");
|
|
1391
|
+
function toCircuitVerifyResponse(o) {
|
|
1392
|
+
if (o.verified === undefined) {
|
|
1393
|
+
throw new Error("Expected verified in CircuitVerifyResponse deserialization");
|
|
1394
|
+
}
|
|
1395
|
+
;
|
|
1396
|
+
return {
|
|
1397
|
+
verified: o.verified,
|
|
1398
|
+
};
|
|
1399
|
+
}
|
|
1400
|
+
function fromCircuitVerifyResponse(o) {
|
|
1401
|
+
if (o.verified === undefined) {
|
|
1402
|
+
throw new Error("Expected verified in CircuitVerifyResponse serialization");
|
|
1403
|
+
}
|
|
1404
|
+
;
|
|
1405
|
+
return {
|
|
1406
|
+
verified: o.verified,
|
|
1407
|
+
};
|
|
1408
|
+
}
|
|
1409
|
+
function toCircuitWriteSolidityVerifier(o) {
|
|
1410
|
+
if (o.verification_key === undefined) {
|
|
1411
|
+
throw new Error("Expected verification_key in CircuitWriteSolidityVerifier deserialization");
|
|
1412
|
+
}
|
|
1413
|
+
if (o.settings === undefined) {
|
|
1414
|
+
throw new Error("Expected settings in CircuitWriteSolidityVerifier deserialization");
|
|
1415
|
+
}
|
|
1416
|
+
;
|
|
1417
|
+
return {
|
|
1418
|
+
verificationKey: o.verification_key,
|
|
1419
|
+
settings: toProofSystemSettings(o.settings),
|
|
1420
|
+
};
|
|
1421
|
+
}
|
|
1422
|
+
function fromCircuitWriteSolidityVerifier(o) {
|
|
1423
|
+
if (o.verificationKey === undefined) {
|
|
1424
|
+
throw new Error("Expected verificationKey in CircuitWriteSolidityVerifier serialization");
|
|
1425
|
+
}
|
|
1426
|
+
if (o.settings === undefined) {
|
|
1427
|
+
throw new Error("Expected settings in CircuitWriteSolidityVerifier serialization");
|
|
1428
|
+
}
|
|
1429
|
+
;
|
|
1430
|
+
return {
|
|
1431
|
+
verification_key: o.verificationKey,
|
|
1432
|
+
settings: fromProofSystemSettings(o.settings),
|
|
1433
|
+
};
|
|
1434
|
+
}
|
|
1435
|
+
function toCircuitWriteSolidityVerifierResponse(o) {
|
|
1436
|
+
if (o.solidity_code === undefined) {
|
|
1437
|
+
throw new Error("Expected solidity_code in CircuitWriteSolidityVerifierResponse deserialization");
|
|
1438
|
+
}
|
|
1439
|
+
;
|
|
1440
|
+
return {
|
|
1441
|
+
solidityCode: o.solidity_code,
|
|
1442
|
+
};
|
|
1443
|
+
}
|
|
1444
|
+
function fromCircuitWriteSolidityVerifierResponse(o) {
|
|
1445
|
+
if (o.solidityCode === undefined) {
|
|
1446
|
+
throw new Error("Expected solidityCode in CircuitWriteSolidityVerifierResponse serialization");
|
|
1447
|
+
}
|
|
1448
|
+
;
|
|
1449
|
+
return {
|
|
1450
|
+
solidity_code: o.solidityCode,
|
|
1451
|
+
};
|
|
1452
|
+
}
|
|
1453
|
+
function toEcdsaSecp256k1ComputePublicKey(o) {
|
|
1454
|
+
if (o.private_key === undefined) {
|
|
1455
|
+
throw new Error("Expected private_key in EcdsaSecp256k1ComputePublicKey deserialization");
|
|
1456
|
+
}
|
|
1457
|
+
;
|
|
1458
|
+
return {
|
|
1459
|
+
privateKey: o.private_key,
|
|
1460
|
+
};
|
|
1461
|
+
}
|
|
1462
|
+
function fromEcdsaSecp256k1ComputePublicKey(o) {
|
|
1463
|
+
if (o.privateKey === undefined) {
|
|
1464
|
+
throw new Error("Expected privateKey in EcdsaSecp256k1ComputePublicKey serialization");
|
|
1465
|
+
}
|
|
1466
|
+
;
|
|
1467
|
+
return {
|
|
1468
|
+
private_key: o.privateKey,
|
|
1469
|
+
};
|
|
1470
|
+
}
|
|
1471
|
+
function toEcdsaSecp256k1ComputePublicKeyResponse(o) {
|
|
1472
|
+
if (o.public_key === undefined) {
|
|
1473
|
+
throw new Error("Expected public_key in EcdsaSecp256k1ComputePublicKeyResponse deserialization");
|
|
1474
|
+
}
|
|
1475
|
+
;
|
|
1476
|
+
return {
|
|
1477
|
+
publicKey: toSecp256k1Point(o.public_key),
|
|
1478
|
+
};
|
|
1479
|
+
}
|
|
1480
|
+
function fromEcdsaSecp256k1ComputePublicKeyResponse(o) {
|
|
1481
|
+
if (o.publicKey === undefined) {
|
|
1482
|
+
throw new Error("Expected publicKey in EcdsaSecp256k1ComputePublicKeyResponse serialization");
|
|
1483
|
+
}
|
|
1484
|
+
;
|
|
1485
|
+
return {
|
|
1486
|
+
public_key: fromSecp256k1Point(o.publicKey),
|
|
1487
|
+
};
|
|
1488
|
+
}
|
|
1489
|
+
function toEcdsaSecp256k1ConstructSignature(o) {
|
|
1490
|
+
if (o.message === undefined) {
|
|
1491
|
+
throw new Error("Expected message in EcdsaSecp256k1ConstructSignature deserialization");
|
|
1492
|
+
}
|
|
1493
|
+
if (o.private_key === undefined) {
|
|
1494
|
+
throw new Error("Expected private_key in EcdsaSecp256k1ConstructSignature deserialization");
|
|
1495
|
+
}
|
|
1496
|
+
;
|
|
1497
|
+
return {
|
|
1498
|
+
message: o.message,
|
|
1499
|
+
privateKey: o.private_key,
|
|
1500
|
+
};
|
|
1501
|
+
}
|
|
1502
|
+
function fromEcdsaSecp256k1ConstructSignature(o) {
|
|
1503
|
+
if (o.message === undefined) {
|
|
1504
|
+
throw new Error("Expected message in EcdsaSecp256k1ConstructSignature serialization");
|
|
1505
|
+
}
|
|
1506
|
+
if (o.privateKey === undefined) {
|
|
1507
|
+
throw new Error("Expected privateKey in EcdsaSecp256k1ConstructSignature serialization");
|
|
1508
|
+
}
|
|
1509
|
+
;
|
|
1510
|
+
return {
|
|
1511
|
+
message: o.message,
|
|
1512
|
+
private_key: o.privateKey,
|
|
1513
|
+
};
|
|
1514
|
+
}
|
|
1515
|
+
function toEcdsaSecp256k1ConstructSignatureResponse(o) {
|
|
1516
|
+
if (o.r === undefined) {
|
|
1517
|
+
throw new Error("Expected r in EcdsaSecp256k1ConstructSignatureResponse deserialization");
|
|
1518
|
+
}
|
|
1519
|
+
if (o.s === undefined) {
|
|
1520
|
+
throw new Error("Expected s in EcdsaSecp256k1ConstructSignatureResponse deserialization");
|
|
1521
|
+
}
|
|
1522
|
+
if (o.v === undefined) {
|
|
1523
|
+
throw new Error("Expected v in EcdsaSecp256k1ConstructSignatureResponse deserialization");
|
|
1524
|
+
}
|
|
1525
|
+
;
|
|
1526
|
+
return {
|
|
1527
|
+
r: o.r,
|
|
1528
|
+
s: o.s,
|
|
1529
|
+
v: o.v,
|
|
1530
|
+
};
|
|
1531
|
+
}
|
|
1532
|
+
function fromEcdsaSecp256k1ConstructSignatureResponse(o) {
|
|
1533
|
+
if (o.r === undefined) {
|
|
1534
|
+
throw new Error("Expected r in EcdsaSecp256k1ConstructSignatureResponse serialization");
|
|
1535
|
+
}
|
|
1536
|
+
if (o.s === undefined) {
|
|
1537
|
+
throw new Error("Expected s in EcdsaSecp256k1ConstructSignatureResponse serialization");
|
|
1538
|
+
}
|
|
1539
|
+
if (o.v === undefined) {
|
|
1540
|
+
throw new Error("Expected v in EcdsaSecp256k1ConstructSignatureResponse serialization");
|
|
1541
|
+
}
|
|
1542
|
+
;
|
|
1543
|
+
return {
|
|
1544
|
+
r: o.r,
|
|
1545
|
+
s: o.s,
|
|
1546
|
+
v: o.v,
|
|
1547
|
+
};
|
|
1548
|
+
}
|
|
1549
|
+
function toEcdsaSecp256k1RecoverPublicKey(o) {
|
|
1550
|
+
if (o.message === undefined) {
|
|
1551
|
+
throw new Error("Expected message in EcdsaSecp256k1RecoverPublicKey deserialization");
|
|
1552
|
+
}
|
|
1553
|
+
if (o.r === undefined) {
|
|
1554
|
+
throw new Error("Expected r in EcdsaSecp256k1RecoverPublicKey deserialization");
|
|
1555
|
+
}
|
|
1556
|
+
if (o.s === undefined) {
|
|
1557
|
+
throw new Error("Expected s in EcdsaSecp256k1RecoverPublicKey deserialization");
|
|
1558
|
+
}
|
|
1559
|
+
if (o.v === undefined) {
|
|
1560
|
+
throw new Error("Expected v in EcdsaSecp256k1RecoverPublicKey deserialization");
|
|
1561
|
+
}
|
|
1562
|
+
;
|
|
1563
|
+
return {
|
|
1564
|
+
message: o.message,
|
|
1565
|
+
r: o.r,
|
|
1566
|
+
s: o.s,
|
|
1567
|
+
v: o.v,
|
|
1568
|
+
};
|
|
1569
|
+
}
|
|
1570
|
+
function fromEcdsaSecp256k1RecoverPublicKey(o) {
|
|
1571
|
+
if (o.message === undefined) {
|
|
1572
|
+
throw new Error("Expected message in EcdsaSecp256k1RecoverPublicKey serialization");
|
|
1573
|
+
}
|
|
1574
|
+
if (o.r === undefined) {
|
|
1575
|
+
throw new Error("Expected r in EcdsaSecp256k1RecoverPublicKey serialization");
|
|
1576
|
+
}
|
|
1577
|
+
if (o.s === undefined) {
|
|
1578
|
+
throw new Error("Expected s in EcdsaSecp256k1RecoverPublicKey serialization");
|
|
1579
|
+
}
|
|
1580
|
+
if (o.v === undefined) {
|
|
1581
|
+
throw new Error("Expected v in EcdsaSecp256k1RecoverPublicKey serialization");
|
|
1582
|
+
}
|
|
1583
|
+
;
|
|
1584
|
+
return {
|
|
1585
|
+
message: o.message,
|
|
1586
|
+
r: o.r,
|
|
1587
|
+
s: o.s,
|
|
1588
|
+
v: o.v,
|
|
1589
|
+
};
|
|
1590
|
+
}
|
|
1591
|
+
function toEcdsaSecp256k1RecoverPublicKeyResponse(o) {
|
|
1592
|
+
if (o.public_key === undefined) {
|
|
1593
|
+
throw new Error("Expected public_key in EcdsaSecp256k1RecoverPublicKeyResponse deserialization");
|
|
1594
|
+
}
|
|
1595
|
+
;
|
|
1596
|
+
return {
|
|
1597
|
+
publicKey: toSecp256k1Point(o.public_key),
|
|
1598
|
+
};
|
|
1599
|
+
}
|
|
1600
|
+
function fromEcdsaSecp256k1RecoverPublicKeyResponse(o) {
|
|
1601
|
+
if (o.publicKey === undefined) {
|
|
1602
|
+
throw new Error("Expected publicKey in EcdsaSecp256k1RecoverPublicKeyResponse serialization");
|
|
1603
|
+
}
|
|
1604
|
+
;
|
|
1605
|
+
return {
|
|
1606
|
+
public_key: fromSecp256k1Point(o.publicKey),
|
|
1607
|
+
};
|
|
1608
|
+
}
|
|
1609
|
+
function toEcdsaSecp256k1VerifySignature(o) {
|
|
1610
|
+
if (o.message === undefined) {
|
|
1611
|
+
throw new Error("Expected message in EcdsaSecp256k1VerifySignature deserialization");
|
|
1612
|
+
}
|
|
1613
|
+
if (o.public_key === undefined) {
|
|
1614
|
+
throw new Error("Expected public_key in EcdsaSecp256k1VerifySignature deserialization");
|
|
1615
|
+
}
|
|
1616
|
+
if (o.r === undefined) {
|
|
1617
|
+
throw new Error("Expected r in EcdsaSecp256k1VerifySignature deserialization");
|
|
1618
|
+
}
|
|
1619
|
+
if (o.s === undefined) {
|
|
1620
|
+
throw new Error("Expected s in EcdsaSecp256k1VerifySignature deserialization");
|
|
1621
|
+
}
|
|
1622
|
+
if (o.v === undefined) {
|
|
1623
|
+
throw new Error("Expected v in EcdsaSecp256k1VerifySignature deserialization");
|
|
1624
|
+
}
|
|
1625
|
+
;
|
|
1626
|
+
return {
|
|
1627
|
+
message: o.message,
|
|
1628
|
+
publicKey: toSecp256k1Point(o.public_key),
|
|
1629
|
+
r: o.r,
|
|
1630
|
+
s: o.s,
|
|
1631
|
+
v: o.v,
|
|
1632
|
+
};
|
|
1633
|
+
}
|
|
1634
|
+
function fromEcdsaSecp256k1VerifySignature(o) {
|
|
1635
|
+
if (o.message === undefined) {
|
|
1636
|
+
throw new Error("Expected message in EcdsaSecp256k1VerifySignature serialization");
|
|
1637
|
+
}
|
|
1638
|
+
if (o.publicKey === undefined) {
|
|
1639
|
+
throw new Error("Expected publicKey in EcdsaSecp256k1VerifySignature serialization");
|
|
1640
|
+
}
|
|
1641
|
+
if (o.r === undefined) {
|
|
1642
|
+
throw new Error("Expected r in EcdsaSecp256k1VerifySignature serialization");
|
|
1643
|
+
}
|
|
1644
|
+
if (o.s === undefined) {
|
|
1645
|
+
throw new Error("Expected s in EcdsaSecp256k1VerifySignature serialization");
|
|
1646
|
+
}
|
|
1647
|
+
if (o.v === undefined) {
|
|
1648
|
+
throw new Error("Expected v in EcdsaSecp256k1VerifySignature serialization");
|
|
1649
|
+
}
|
|
1650
|
+
;
|
|
1651
|
+
return {
|
|
1652
|
+
message: o.message,
|
|
1653
|
+
public_key: fromSecp256k1Point(o.publicKey),
|
|
1654
|
+
r: o.r,
|
|
1655
|
+
s: o.s,
|
|
1656
|
+
v: o.v,
|
|
1657
|
+
};
|
|
1658
|
+
}
|
|
1659
|
+
function toEcdsaSecp256k1VerifySignatureResponse(o) {
|
|
1660
|
+
if (o.verified === undefined) {
|
|
1661
|
+
throw new Error("Expected verified in EcdsaSecp256k1VerifySignatureResponse deserialization");
|
|
1662
|
+
}
|
|
1663
|
+
;
|
|
1664
|
+
return {
|
|
1665
|
+
verified: o.verified,
|
|
1666
|
+
};
|
|
1667
|
+
}
|
|
1668
|
+
function fromEcdsaSecp256k1VerifySignatureResponse(o) {
|
|
1669
|
+
if (o.verified === undefined) {
|
|
1670
|
+
throw new Error("Expected verified in EcdsaSecp256k1VerifySignatureResponse serialization");
|
|
1671
|
+
}
|
|
1672
|
+
;
|
|
1673
|
+
return {
|
|
1674
|
+
verified: o.verified,
|
|
1675
|
+
};
|
|
1676
|
+
}
|
|
1677
|
+
function toEcdsaSecp256r1ComputePublicKey(o) {
|
|
1678
|
+
if (o.private_key === undefined) {
|
|
1679
|
+
throw new Error("Expected private_key in EcdsaSecp256r1ComputePublicKey deserialization");
|
|
1680
|
+
}
|
|
1681
|
+
;
|
|
1682
|
+
return {
|
|
1683
|
+
privateKey: o.private_key,
|
|
1684
|
+
};
|
|
1685
|
+
}
|
|
1686
|
+
function fromEcdsaSecp256r1ComputePublicKey(o) {
|
|
1687
|
+
if (o.privateKey === undefined) {
|
|
1688
|
+
throw new Error("Expected privateKey in EcdsaSecp256r1ComputePublicKey serialization");
|
|
1689
|
+
}
|
|
1690
|
+
;
|
|
1691
|
+
return {
|
|
1692
|
+
private_key: o.privateKey,
|
|
1693
|
+
};
|
|
1694
|
+
}
|
|
1695
|
+
function toEcdsaSecp256r1ComputePublicKeyResponse(o) {
|
|
1696
|
+
if (o.public_key === undefined) {
|
|
1697
|
+
throw new Error("Expected public_key in EcdsaSecp256r1ComputePublicKeyResponse deserialization");
|
|
1698
|
+
}
|
|
1699
|
+
;
|
|
1700
|
+
return {
|
|
1701
|
+
publicKey: toSecp256r1Point(o.public_key),
|
|
1702
|
+
};
|
|
1703
|
+
}
|
|
1704
|
+
function fromEcdsaSecp256r1ComputePublicKeyResponse(o) {
|
|
1705
|
+
if (o.publicKey === undefined) {
|
|
1706
|
+
throw new Error("Expected publicKey in EcdsaSecp256r1ComputePublicKeyResponse serialization");
|
|
1707
|
+
}
|
|
1708
|
+
;
|
|
1709
|
+
return {
|
|
1710
|
+
public_key: fromSecp256r1Point(o.publicKey),
|
|
1711
|
+
};
|
|
1712
|
+
}
|
|
1713
|
+
function toEcdsaSecp256r1ConstructSignature(o) {
|
|
1714
|
+
if (o.message === undefined) {
|
|
1715
|
+
throw new Error("Expected message in EcdsaSecp256r1ConstructSignature deserialization");
|
|
1716
|
+
}
|
|
1717
|
+
if (o.private_key === undefined) {
|
|
1718
|
+
throw new Error("Expected private_key in EcdsaSecp256r1ConstructSignature deserialization");
|
|
1719
|
+
}
|
|
1720
|
+
;
|
|
1721
|
+
return {
|
|
1722
|
+
message: o.message,
|
|
1723
|
+
privateKey: o.private_key,
|
|
1724
|
+
};
|
|
1725
|
+
}
|
|
1726
|
+
function fromEcdsaSecp256r1ConstructSignature(o) {
|
|
1727
|
+
if (o.message === undefined) {
|
|
1728
|
+
throw new Error("Expected message in EcdsaSecp256r1ConstructSignature serialization");
|
|
1729
|
+
}
|
|
1730
|
+
if (o.privateKey === undefined) {
|
|
1731
|
+
throw new Error("Expected privateKey in EcdsaSecp256r1ConstructSignature serialization");
|
|
1732
|
+
}
|
|
1733
|
+
;
|
|
1734
|
+
return {
|
|
1735
|
+
message: o.message,
|
|
1736
|
+
private_key: o.privateKey,
|
|
1737
|
+
};
|
|
1738
|
+
}
|
|
1739
|
+
function toEcdsaSecp256r1ConstructSignatureResponse(o) {
|
|
1740
|
+
if (o.r === undefined) {
|
|
1741
|
+
throw new Error("Expected r in EcdsaSecp256r1ConstructSignatureResponse deserialization");
|
|
1742
|
+
}
|
|
1743
|
+
if (o.s === undefined) {
|
|
1744
|
+
throw new Error("Expected s in EcdsaSecp256r1ConstructSignatureResponse deserialization");
|
|
1745
|
+
}
|
|
1746
|
+
if (o.v === undefined) {
|
|
1747
|
+
throw new Error("Expected v in EcdsaSecp256r1ConstructSignatureResponse deserialization");
|
|
1748
|
+
}
|
|
1749
|
+
;
|
|
1750
|
+
return {
|
|
1751
|
+
r: o.r,
|
|
1752
|
+
s: o.s,
|
|
1753
|
+
v: o.v,
|
|
1754
|
+
};
|
|
1755
|
+
}
|
|
1756
|
+
function fromEcdsaSecp256r1ConstructSignatureResponse(o) {
|
|
1757
|
+
if (o.r === undefined) {
|
|
1758
|
+
throw new Error("Expected r in EcdsaSecp256r1ConstructSignatureResponse serialization");
|
|
1759
|
+
}
|
|
1760
|
+
if (o.s === undefined) {
|
|
1761
|
+
throw new Error("Expected s in EcdsaSecp256r1ConstructSignatureResponse serialization");
|
|
1762
|
+
}
|
|
1763
|
+
if (o.v === undefined) {
|
|
1764
|
+
throw new Error("Expected v in EcdsaSecp256r1ConstructSignatureResponse serialization");
|
|
1765
|
+
}
|
|
1766
|
+
;
|
|
1767
|
+
return {
|
|
1768
|
+
r: o.r,
|
|
1769
|
+
s: o.s,
|
|
1770
|
+
v: o.v,
|
|
1771
|
+
};
|
|
1772
|
+
}
|
|
1773
|
+
function toEcdsaSecp256r1RecoverPublicKey(o) {
|
|
1774
|
+
if (o.message === undefined) {
|
|
1775
|
+
throw new Error("Expected message in EcdsaSecp256r1RecoverPublicKey deserialization");
|
|
1776
|
+
}
|
|
1777
|
+
if (o.r === undefined) {
|
|
1778
|
+
throw new Error("Expected r in EcdsaSecp256r1RecoverPublicKey deserialization");
|
|
1779
|
+
}
|
|
1780
|
+
if (o.s === undefined) {
|
|
1781
|
+
throw new Error("Expected s in EcdsaSecp256r1RecoverPublicKey deserialization");
|
|
1782
|
+
}
|
|
1783
|
+
if (o.v === undefined) {
|
|
1784
|
+
throw new Error("Expected v in EcdsaSecp256r1RecoverPublicKey deserialization");
|
|
1785
|
+
}
|
|
1786
|
+
;
|
|
1787
|
+
return {
|
|
1788
|
+
message: o.message,
|
|
1789
|
+
r: o.r,
|
|
1790
|
+
s: o.s,
|
|
1791
|
+
v: o.v,
|
|
1792
|
+
};
|
|
1793
|
+
}
|
|
1794
|
+
function fromEcdsaSecp256r1RecoverPublicKey(o) {
|
|
1795
|
+
if (o.message === undefined) {
|
|
1796
|
+
throw new Error("Expected message in EcdsaSecp256r1RecoverPublicKey serialization");
|
|
1797
|
+
}
|
|
1798
|
+
if (o.r === undefined) {
|
|
1799
|
+
throw new Error("Expected r in EcdsaSecp256r1RecoverPublicKey serialization");
|
|
1800
|
+
}
|
|
1801
|
+
if (o.s === undefined) {
|
|
1802
|
+
throw new Error("Expected s in EcdsaSecp256r1RecoverPublicKey serialization");
|
|
1803
|
+
}
|
|
1804
|
+
if (o.v === undefined) {
|
|
1805
|
+
throw new Error("Expected v in EcdsaSecp256r1RecoverPublicKey serialization");
|
|
1806
|
+
}
|
|
1807
|
+
;
|
|
1808
|
+
return {
|
|
1809
|
+
message: o.message,
|
|
1810
|
+
r: o.r,
|
|
1811
|
+
s: o.s,
|
|
1812
|
+
v: o.v,
|
|
1813
|
+
};
|
|
1814
|
+
}
|
|
1815
|
+
function toEcdsaSecp256r1RecoverPublicKeyResponse(o) {
|
|
1816
|
+
if (o.public_key === undefined) {
|
|
1817
|
+
throw new Error("Expected public_key in EcdsaSecp256r1RecoverPublicKeyResponse deserialization");
|
|
1818
|
+
}
|
|
1819
|
+
;
|
|
1820
|
+
return {
|
|
1821
|
+
publicKey: toSecp256r1Point(o.public_key),
|
|
1822
|
+
};
|
|
1823
|
+
}
|
|
1824
|
+
function fromEcdsaSecp256r1RecoverPublicKeyResponse(o) {
|
|
1825
|
+
if (o.publicKey === undefined) {
|
|
1826
|
+
throw new Error("Expected publicKey in EcdsaSecp256r1RecoverPublicKeyResponse serialization");
|
|
1827
|
+
}
|
|
1828
|
+
;
|
|
1829
|
+
return {
|
|
1830
|
+
public_key: fromSecp256r1Point(o.publicKey),
|
|
1831
|
+
};
|
|
1832
|
+
}
|
|
1833
|
+
function toEcdsaSecp256r1VerifySignature(o) {
|
|
1834
|
+
if (o.message === undefined) {
|
|
1835
|
+
throw new Error("Expected message in EcdsaSecp256r1VerifySignature deserialization");
|
|
1836
|
+
}
|
|
1837
|
+
if (o.public_key === undefined) {
|
|
1838
|
+
throw new Error("Expected public_key in EcdsaSecp256r1VerifySignature deserialization");
|
|
1839
|
+
}
|
|
1840
|
+
if (o.r === undefined) {
|
|
1841
|
+
throw new Error("Expected r in EcdsaSecp256r1VerifySignature deserialization");
|
|
1842
|
+
}
|
|
1843
|
+
if (o.s === undefined) {
|
|
1844
|
+
throw new Error("Expected s in EcdsaSecp256r1VerifySignature deserialization");
|
|
1845
|
+
}
|
|
1846
|
+
if (o.v === undefined) {
|
|
1847
|
+
throw new Error("Expected v in EcdsaSecp256r1VerifySignature deserialization");
|
|
1848
|
+
}
|
|
1849
|
+
;
|
|
1850
|
+
return {
|
|
1851
|
+
message: o.message,
|
|
1852
|
+
publicKey: toSecp256r1Point(o.public_key),
|
|
1853
|
+
r: o.r,
|
|
1854
|
+
s: o.s,
|
|
1855
|
+
v: o.v,
|
|
1856
|
+
};
|
|
1857
|
+
}
|
|
1858
|
+
function fromEcdsaSecp256r1VerifySignature(o) {
|
|
1859
|
+
if (o.message === undefined) {
|
|
1860
|
+
throw new Error("Expected message in EcdsaSecp256r1VerifySignature serialization");
|
|
1861
|
+
}
|
|
1862
|
+
if (o.publicKey === undefined) {
|
|
1863
|
+
throw new Error("Expected publicKey in EcdsaSecp256r1VerifySignature serialization");
|
|
1864
|
+
}
|
|
1865
|
+
if (o.r === undefined) {
|
|
1866
|
+
throw new Error("Expected r in EcdsaSecp256r1VerifySignature serialization");
|
|
1867
|
+
}
|
|
1868
|
+
if (o.s === undefined) {
|
|
1869
|
+
throw new Error("Expected s in EcdsaSecp256r1VerifySignature serialization");
|
|
1870
|
+
}
|
|
1871
|
+
if (o.v === undefined) {
|
|
1872
|
+
throw new Error("Expected v in EcdsaSecp256r1VerifySignature serialization");
|
|
1873
|
+
}
|
|
1874
|
+
;
|
|
1875
|
+
return {
|
|
1876
|
+
message: o.message,
|
|
1877
|
+
public_key: fromSecp256r1Point(o.publicKey),
|
|
1878
|
+
r: o.r,
|
|
1879
|
+
s: o.s,
|
|
1880
|
+
v: o.v,
|
|
1881
|
+
};
|
|
1882
|
+
}
|
|
1883
|
+
function toEcdsaSecp256r1VerifySignatureResponse(o) {
|
|
1884
|
+
if (o.verified === undefined) {
|
|
1885
|
+
throw new Error("Expected verified in EcdsaSecp256r1VerifySignatureResponse deserialization");
|
|
1886
|
+
}
|
|
1887
|
+
;
|
|
1888
|
+
return {
|
|
1889
|
+
verified: o.verified,
|
|
1890
|
+
};
|
|
1891
|
+
}
|
|
1892
|
+
function fromEcdsaSecp256r1VerifySignatureResponse(o) {
|
|
1893
|
+
if (o.verified === undefined) {
|
|
1894
|
+
throw new Error("Expected verified in EcdsaSecp256r1VerifySignatureResponse serialization");
|
|
1895
|
+
}
|
|
1896
|
+
;
|
|
1897
|
+
return {
|
|
1898
|
+
verified: o.verified,
|
|
1899
|
+
};
|
|
1900
|
+
}
|
|
1901
|
+
function toErrorResponse(o) {
|
|
1902
|
+
if (o.message === undefined) {
|
|
1903
|
+
throw new Error("Expected message in ErrorResponse deserialization");
|
|
1904
|
+
}
|
|
1905
|
+
;
|
|
1906
|
+
return {
|
|
1907
|
+
message: o.message,
|
|
1908
|
+
};
|
|
1909
|
+
}
|
|
1910
|
+
function fromErrorResponse(o) {
|
|
1911
|
+
if (o.message === undefined) {
|
|
1912
|
+
throw new Error("Expected message in ErrorResponse serialization");
|
|
1913
|
+
}
|
|
1914
|
+
;
|
|
1915
|
+
return {
|
|
1916
|
+
message: o.message,
|
|
1917
|
+
};
|
|
1918
|
+
}
|
|
1919
|
+
function toGoblinProof(o) {
|
|
1920
|
+
if (o.merge_proof === undefined) {
|
|
1921
|
+
throw new Error("Expected merge_proof in GoblinProof deserialization");
|
|
1922
|
+
}
|
|
1923
|
+
if (o.eccvm_proof === undefined) {
|
|
1924
|
+
throw new Error("Expected eccvm_proof in GoblinProof deserialization");
|
|
1925
|
+
}
|
|
1926
|
+
if (o.ipa_proof === undefined) {
|
|
1927
|
+
throw new Error("Expected ipa_proof in GoblinProof deserialization");
|
|
1928
|
+
}
|
|
1929
|
+
if (o.translator_proof === undefined) {
|
|
1930
|
+
throw new Error("Expected translator_proof in GoblinProof deserialization");
|
|
1931
|
+
}
|
|
1932
|
+
;
|
|
1933
|
+
return {
|
|
1934
|
+
mergeProof: o.merge_proof.map((v) => v),
|
|
1935
|
+
eccvmProof: o.eccvm_proof.map((v) => v),
|
|
1936
|
+
ipaProof: o.ipa_proof.map((v) => v),
|
|
1937
|
+
translatorProof: o.translator_proof.map((v) => v),
|
|
1938
|
+
};
|
|
1939
|
+
}
|
|
1940
|
+
function fromGoblinProof(o) {
|
|
1941
|
+
if (o.mergeProof === undefined) {
|
|
1942
|
+
throw new Error("Expected mergeProof in GoblinProof serialization");
|
|
1943
|
+
}
|
|
1944
|
+
if (o.eccvmProof === undefined) {
|
|
1945
|
+
throw new Error("Expected eccvmProof in GoblinProof serialization");
|
|
1946
|
+
}
|
|
1947
|
+
if (o.ipaProof === undefined) {
|
|
1948
|
+
throw new Error("Expected ipaProof in GoblinProof serialization");
|
|
1949
|
+
}
|
|
1950
|
+
if (o.translatorProof === undefined) {
|
|
1951
|
+
throw new Error("Expected translatorProof in GoblinProof serialization");
|
|
1952
|
+
}
|
|
1953
|
+
;
|
|
1954
|
+
return {
|
|
1955
|
+
merge_proof: o.mergeProof.map((v) => v),
|
|
1956
|
+
eccvm_proof: o.eccvmProof.map((v) => v),
|
|
1957
|
+
ipa_proof: o.ipaProof.map((v) => v),
|
|
1958
|
+
translator_proof: o.translatorProof.map((v) => v),
|
|
1959
|
+
};
|
|
1960
|
+
}
|
|
1961
|
+
function toGrumpkinAdd(o) {
|
|
1962
|
+
if (o.point_a === undefined) {
|
|
1963
|
+
throw new Error("Expected point_a in GrumpkinAdd deserialization");
|
|
1964
|
+
}
|
|
1965
|
+
if (o.point_b === undefined) {
|
|
1966
|
+
throw new Error("Expected point_b in GrumpkinAdd deserialization");
|
|
1967
|
+
}
|
|
1968
|
+
;
|
|
1969
|
+
return {
|
|
1970
|
+
pointA: toGrumpkinPoint(o.point_a),
|
|
1971
|
+
pointB: toGrumpkinPoint(o.point_b),
|
|
1972
|
+
};
|
|
1973
|
+
}
|
|
1974
|
+
function fromGrumpkinAdd(o) {
|
|
1975
|
+
if (o.pointA === undefined) {
|
|
1976
|
+
throw new Error("Expected pointA in GrumpkinAdd serialization");
|
|
1977
|
+
}
|
|
1978
|
+
if (o.pointB === undefined) {
|
|
1979
|
+
throw new Error("Expected pointB in GrumpkinAdd serialization");
|
|
1980
|
+
}
|
|
1981
|
+
;
|
|
1982
|
+
return {
|
|
1983
|
+
point_a: fromGrumpkinPoint(o.pointA),
|
|
1984
|
+
point_b: fromGrumpkinPoint(o.pointB),
|
|
1985
|
+
};
|
|
1986
|
+
}
|
|
1987
|
+
function toGrumpkinAddResponse(o) {
|
|
1988
|
+
if (o.point === undefined) {
|
|
1989
|
+
throw new Error("Expected point in GrumpkinAddResponse deserialization");
|
|
1990
|
+
}
|
|
1991
|
+
;
|
|
1992
|
+
return {
|
|
1993
|
+
point: toGrumpkinPoint(o.point),
|
|
1994
|
+
};
|
|
1995
|
+
}
|
|
1996
|
+
function fromGrumpkinAddResponse(o) {
|
|
1997
|
+
if (o.point === undefined) {
|
|
1998
|
+
throw new Error("Expected point in GrumpkinAddResponse serialization");
|
|
1999
|
+
}
|
|
2000
|
+
;
|
|
2001
|
+
return {
|
|
2002
|
+
point: fromGrumpkinPoint(o.point),
|
|
2003
|
+
};
|
|
2004
|
+
}
|
|
2005
|
+
function toGrumpkinBatchMul(o) {
|
|
2006
|
+
if (o.points === undefined) {
|
|
2007
|
+
throw new Error("Expected points in GrumpkinBatchMul deserialization");
|
|
2008
|
+
}
|
|
2009
|
+
if (o.scalar === undefined) {
|
|
2010
|
+
throw new Error("Expected scalar in GrumpkinBatchMul deserialization");
|
|
2011
|
+
}
|
|
2012
|
+
;
|
|
2013
|
+
return {
|
|
2014
|
+
points: o.points.map((v) => v),
|
|
2015
|
+
scalar: o.scalar,
|
|
2016
|
+
};
|
|
2017
|
+
}
|
|
2018
|
+
function fromGrumpkinBatchMul(o) {
|
|
2019
|
+
if (o.points === undefined) {
|
|
2020
|
+
throw new Error("Expected points in GrumpkinBatchMul serialization");
|
|
2021
|
+
}
|
|
2022
|
+
if (o.scalar === undefined) {
|
|
2023
|
+
throw new Error("Expected scalar in GrumpkinBatchMul serialization");
|
|
2024
|
+
}
|
|
2025
|
+
;
|
|
2026
|
+
return {
|
|
2027
|
+
points: o.points.map((v) => v),
|
|
2028
|
+
scalar: o.scalar,
|
|
2029
|
+
};
|
|
2030
|
+
}
|
|
2031
|
+
function toGrumpkinBatchMulResponse(o) {
|
|
2032
|
+
if (o.points === undefined) {
|
|
2033
|
+
throw new Error("Expected points in GrumpkinBatchMulResponse deserialization");
|
|
2034
|
+
}
|
|
2035
|
+
;
|
|
2036
|
+
return {
|
|
2037
|
+
points: o.points.map((v) => v),
|
|
2038
|
+
};
|
|
2039
|
+
}
|
|
2040
|
+
function fromGrumpkinBatchMulResponse(o) {
|
|
2041
|
+
if (o.points === undefined) {
|
|
2042
|
+
throw new Error("Expected points in GrumpkinBatchMulResponse serialization");
|
|
2043
|
+
}
|
|
2044
|
+
;
|
|
2045
|
+
return {
|
|
2046
|
+
points: o.points.map((v) => v),
|
|
2047
|
+
};
|
|
2048
|
+
}
|
|
2049
|
+
function toGrumpkinGetRandomFr(o) {
|
|
2050
|
+
if (o.dummy === undefined) {
|
|
2051
|
+
throw new Error("Expected dummy in GrumpkinGetRandomFr deserialization");
|
|
2052
|
+
}
|
|
2053
|
+
;
|
|
2054
|
+
return {
|
|
2055
|
+
dummy: o.dummy,
|
|
2056
|
+
};
|
|
2057
|
+
}
|
|
2058
|
+
function fromGrumpkinGetRandomFr(o) {
|
|
2059
|
+
if (o.dummy === undefined) {
|
|
2060
|
+
throw new Error("Expected dummy in GrumpkinGetRandomFr serialization");
|
|
2061
|
+
}
|
|
2062
|
+
;
|
|
2063
|
+
return {
|
|
2064
|
+
dummy: o.dummy,
|
|
2065
|
+
};
|
|
2066
|
+
}
|
|
2067
|
+
function toGrumpkinGetRandomFrResponse(o) {
|
|
2068
|
+
if (o.value === undefined) {
|
|
2069
|
+
throw new Error("Expected value in GrumpkinGetRandomFrResponse deserialization");
|
|
2070
|
+
}
|
|
2071
|
+
;
|
|
2072
|
+
return {
|
|
2073
|
+
value: o.value,
|
|
2074
|
+
};
|
|
2075
|
+
}
|
|
2076
|
+
function fromGrumpkinGetRandomFrResponse(o) {
|
|
2077
|
+
if (o.value === undefined) {
|
|
2078
|
+
throw new Error("Expected value in GrumpkinGetRandomFrResponse serialization");
|
|
2079
|
+
}
|
|
2080
|
+
;
|
|
2081
|
+
return {
|
|
2082
|
+
value: o.value,
|
|
2083
|
+
};
|
|
2084
|
+
}
|
|
2085
|
+
function toGrumpkinMul(o) {
|
|
2086
|
+
if (o.point === undefined) {
|
|
2087
|
+
throw new Error("Expected point in GrumpkinMul deserialization");
|
|
2088
|
+
}
|
|
2089
|
+
if (o.scalar === undefined) {
|
|
2090
|
+
throw new Error("Expected scalar in GrumpkinMul deserialization");
|
|
2091
|
+
}
|
|
2092
|
+
;
|
|
2093
|
+
return {
|
|
2094
|
+
point: toGrumpkinPoint(o.point),
|
|
2095
|
+
scalar: o.scalar,
|
|
2096
|
+
};
|
|
2097
|
+
}
|
|
2098
|
+
function fromGrumpkinMul(o) {
|
|
2099
|
+
if (o.point === undefined) {
|
|
2100
|
+
throw new Error("Expected point in GrumpkinMul serialization");
|
|
2101
|
+
}
|
|
2102
|
+
if (o.scalar === undefined) {
|
|
2103
|
+
throw new Error("Expected scalar in GrumpkinMul serialization");
|
|
2104
|
+
}
|
|
2105
|
+
;
|
|
2106
|
+
return {
|
|
2107
|
+
point: fromGrumpkinPoint(o.point),
|
|
2108
|
+
scalar: o.scalar,
|
|
2109
|
+
};
|
|
2110
|
+
}
|
|
2111
|
+
function toGrumpkinMulResponse(o) {
|
|
2112
|
+
if (o.point === undefined) {
|
|
2113
|
+
throw new Error("Expected point in GrumpkinMulResponse deserialization");
|
|
2114
|
+
}
|
|
2115
|
+
;
|
|
2116
|
+
return {
|
|
2117
|
+
point: toGrumpkinPoint(o.point),
|
|
2118
|
+
};
|
|
2119
|
+
}
|
|
2120
|
+
function fromGrumpkinMulResponse(o) {
|
|
2121
|
+
if (o.point === undefined) {
|
|
2122
|
+
throw new Error("Expected point in GrumpkinMulResponse serialization");
|
|
2123
|
+
}
|
|
2124
|
+
;
|
|
2125
|
+
return {
|
|
2126
|
+
point: fromGrumpkinPoint(o.point),
|
|
2127
|
+
};
|
|
2128
|
+
}
|
|
2129
|
+
function toGrumpkinPoint(o) {
|
|
2130
|
+
if (o.x === undefined) {
|
|
2131
|
+
throw new Error("Expected x in GrumpkinPoint deserialization");
|
|
2132
|
+
}
|
|
2133
|
+
if (o.y === undefined) {
|
|
2134
|
+
throw new Error("Expected y in GrumpkinPoint deserialization");
|
|
2135
|
+
}
|
|
2136
|
+
;
|
|
2137
|
+
return {
|
|
2138
|
+
x: o.x,
|
|
2139
|
+
y: o.y,
|
|
2140
|
+
};
|
|
2141
|
+
}
|
|
2142
|
+
function fromGrumpkinPoint(o) {
|
|
2143
|
+
if (o.x === undefined) {
|
|
2144
|
+
throw new Error("Expected x in GrumpkinPoint serialization");
|
|
2145
|
+
}
|
|
2146
|
+
if (o.y === undefined) {
|
|
2147
|
+
throw new Error("Expected y in GrumpkinPoint serialization");
|
|
2148
|
+
}
|
|
2149
|
+
;
|
|
2150
|
+
return {
|
|
2151
|
+
x: o.x,
|
|
2152
|
+
y: o.y,
|
|
2153
|
+
};
|
|
2154
|
+
}
|
|
2155
|
+
function toGrumpkinReduce512(o) {
|
|
2156
|
+
if (o.input === undefined) {
|
|
2157
|
+
throw new Error("Expected input in GrumpkinReduce512 deserialization");
|
|
2158
|
+
}
|
|
2159
|
+
;
|
|
2160
|
+
return {
|
|
2161
|
+
input: o.input,
|
|
2162
|
+
};
|
|
2163
|
+
}
|
|
2164
|
+
function fromGrumpkinReduce512(o) {
|
|
2165
|
+
if (o.input === undefined) {
|
|
2166
|
+
throw new Error("Expected input in GrumpkinReduce512 serialization");
|
|
2167
|
+
}
|
|
2168
|
+
;
|
|
2169
|
+
return {
|
|
2170
|
+
input: o.input,
|
|
2171
|
+
};
|
|
2172
|
+
}
|
|
2173
|
+
function toGrumpkinReduce512Response(o) {
|
|
2174
|
+
if (o.value === undefined) {
|
|
2175
|
+
throw new Error("Expected value in GrumpkinReduce512Response deserialization");
|
|
2176
|
+
}
|
|
2177
|
+
;
|
|
2178
|
+
return {
|
|
2179
|
+
value: o.value,
|
|
2180
|
+
};
|
|
2181
|
+
}
|
|
2182
|
+
function fromGrumpkinReduce512Response(o) {
|
|
2183
|
+
if (o.value === undefined) {
|
|
2184
|
+
throw new Error("Expected value in GrumpkinReduce512Response serialization");
|
|
2185
|
+
}
|
|
2186
|
+
;
|
|
2187
|
+
return {
|
|
2188
|
+
value: o.value,
|
|
2189
|
+
};
|
|
2190
|
+
}
|
|
2191
|
+
function toMegaVkAsFields(o) {
|
|
2192
|
+
if (o.verification_key === undefined) {
|
|
2193
|
+
throw new Error("Expected verification_key in MegaVkAsFields deserialization");
|
|
2194
|
+
}
|
|
2195
|
+
;
|
|
2196
|
+
return {
|
|
2197
|
+
verificationKey: o.verification_key,
|
|
2198
|
+
};
|
|
2199
|
+
}
|
|
2200
|
+
function fromMegaVkAsFields(o) {
|
|
2201
|
+
if (o.verificationKey === undefined) {
|
|
2202
|
+
throw new Error("Expected verificationKey in MegaVkAsFields serialization");
|
|
2203
|
+
}
|
|
2204
|
+
;
|
|
2205
|
+
return {
|
|
2206
|
+
verification_key: o.verificationKey,
|
|
2207
|
+
};
|
|
2208
|
+
}
|
|
2209
|
+
function toMegaVkAsFieldsResponse(o) {
|
|
2210
|
+
if (o.fields === undefined) {
|
|
2211
|
+
throw new Error("Expected fields in MegaVkAsFieldsResponse deserialization");
|
|
2212
|
+
}
|
|
2213
|
+
;
|
|
2214
|
+
return {
|
|
2215
|
+
fields: o.fields.map((v) => v),
|
|
2216
|
+
};
|
|
2217
|
+
}
|
|
2218
|
+
function fromMegaVkAsFieldsResponse(o) {
|
|
2219
|
+
if (o.fields === undefined) {
|
|
2220
|
+
throw new Error("Expected fields in MegaVkAsFieldsResponse serialization");
|
|
2221
|
+
}
|
|
2222
|
+
;
|
|
2223
|
+
return {
|
|
2224
|
+
fields: o.fields.map((v) => v),
|
|
2225
|
+
};
|
|
2226
|
+
}
|
|
2227
|
+
function toPedersenCommit(o) {
|
|
2228
|
+
if (o.inputs === undefined) {
|
|
2229
|
+
throw new Error("Expected inputs in PedersenCommit deserialization");
|
|
2230
|
+
}
|
|
2231
|
+
if (o.hash_index === undefined) {
|
|
2232
|
+
throw new Error("Expected hash_index in PedersenCommit deserialization");
|
|
2233
|
+
}
|
|
2234
|
+
;
|
|
2235
|
+
return {
|
|
2236
|
+
inputs: o.inputs.map((v) => v),
|
|
2237
|
+
hashIndex: o.hash_index,
|
|
2238
|
+
};
|
|
2239
|
+
}
|
|
2240
|
+
function fromPedersenCommit(o) {
|
|
2241
|
+
if (o.inputs === undefined) {
|
|
2242
|
+
throw new Error("Expected inputs in PedersenCommit serialization");
|
|
2243
|
+
}
|
|
2244
|
+
if (o.hashIndex === undefined) {
|
|
2245
|
+
throw new Error("Expected hashIndex in PedersenCommit serialization");
|
|
2246
|
+
}
|
|
2247
|
+
;
|
|
2248
|
+
return {
|
|
2249
|
+
inputs: o.inputs.map((v) => v),
|
|
2250
|
+
hash_index: o.hashIndex,
|
|
2251
|
+
};
|
|
2252
|
+
}
|
|
2253
|
+
function toPedersenCommitResponse(o) {
|
|
2254
|
+
if (o.point === undefined) {
|
|
2255
|
+
throw new Error("Expected point in PedersenCommitResponse deserialization");
|
|
2256
|
+
}
|
|
2257
|
+
;
|
|
2258
|
+
return {
|
|
2259
|
+
point: toGrumpkinPoint(o.point),
|
|
2260
|
+
};
|
|
2261
|
+
}
|
|
2262
|
+
function fromPedersenCommitResponse(o) {
|
|
2263
|
+
if (o.point === undefined) {
|
|
2264
|
+
throw new Error("Expected point in PedersenCommitResponse serialization");
|
|
2265
|
+
}
|
|
2266
|
+
;
|
|
2267
|
+
return {
|
|
2268
|
+
point: fromGrumpkinPoint(o.point),
|
|
2269
|
+
};
|
|
2270
|
+
}
|
|
2271
|
+
function toPedersenHash(o) {
|
|
2272
|
+
if (o.inputs === undefined) {
|
|
2273
|
+
throw new Error("Expected inputs in PedersenHash deserialization");
|
|
2274
|
+
}
|
|
2275
|
+
if (o.hash_index === undefined) {
|
|
2276
|
+
throw new Error("Expected hash_index in PedersenHash deserialization");
|
|
2277
|
+
}
|
|
2278
|
+
;
|
|
2279
|
+
return {
|
|
2280
|
+
inputs: o.inputs.map((v) => v),
|
|
2281
|
+
hashIndex: o.hash_index,
|
|
2282
|
+
};
|
|
2283
|
+
}
|
|
2284
|
+
function fromPedersenHash(o) {
|
|
2285
|
+
if (o.inputs === undefined) {
|
|
2286
|
+
throw new Error("Expected inputs in PedersenHash serialization");
|
|
2287
|
+
}
|
|
2288
|
+
if (o.hashIndex === undefined) {
|
|
2289
|
+
throw new Error("Expected hashIndex in PedersenHash serialization");
|
|
2290
|
+
}
|
|
2291
|
+
;
|
|
2292
|
+
return {
|
|
2293
|
+
inputs: o.inputs.map((v) => v),
|
|
2294
|
+
hash_index: o.hashIndex,
|
|
2295
|
+
};
|
|
2296
|
+
}
|
|
2297
|
+
function toPedersenHashBuffer(o) {
|
|
2298
|
+
if (o.input === undefined) {
|
|
2299
|
+
throw new Error("Expected input in PedersenHashBuffer deserialization");
|
|
2300
|
+
}
|
|
2301
|
+
if (o.hash_index === undefined) {
|
|
2302
|
+
throw new Error("Expected hash_index in PedersenHashBuffer deserialization");
|
|
2303
|
+
}
|
|
2304
|
+
;
|
|
2305
|
+
return {
|
|
2306
|
+
input: o.input,
|
|
2307
|
+
hashIndex: o.hash_index,
|
|
2308
|
+
};
|
|
2309
|
+
}
|
|
2310
|
+
function fromPedersenHashBuffer(o) {
|
|
2311
|
+
if (o.input === undefined) {
|
|
2312
|
+
throw new Error("Expected input in PedersenHashBuffer serialization");
|
|
2313
|
+
}
|
|
2314
|
+
if (o.hashIndex === undefined) {
|
|
2315
|
+
throw new Error("Expected hashIndex in PedersenHashBuffer serialization");
|
|
2316
|
+
}
|
|
2317
|
+
;
|
|
2318
|
+
return {
|
|
2319
|
+
input: o.input,
|
|
2320
|
+
hash_index: o.hashIndex,
|
|
2321
|
+
};
|
|
2322
|
+
}
|
|
2323
|
+
function toPedersenHashBufferResponse(o) {
|
|
2324
|
+
if (o.hash === undefined) {
|
|
2325
|
+
throw new Error("Expected hash in PedersenHashBufferResponse deserialization");
|
|
2326
|
+
}
|
|
2327
|
+
;
|
|
2328
|
+
return {
|
|
2329
|
+
hash: o.hash,
|
|
2330
|
+
};
|
|
2331
|
+
}
|
|
2332
|
+
function fromPedersenHashBufferResponse(o) {
|
|
2333
|
+
if (o.hash === undefined) {
|
|
2334
|
+
throw new Error("Expected hash in PedersenHashBufferResponse serialization");
|
|
2335
|
+
}
|
|
2336
|
+
;
|
|
2337
|
+
return {
|
|
2338
|
+
hash: o.hash,
|
|
2339
|
+
};
|
|
2340
|
+
}
|
|
2341
|
+
function toPedersenHashResponse(o) {
|
|
2342
|
+
if (o.hash === undefined) {
|
|
2343
|
+
throw new Error("Expected hash in PedersenHashResponse deserialization");
|
|
2344
|
+
}
|
|
2345
|
+
;
|
|
2346
|
+
return {
|
|
2347
|
+
hash: o.hash,
|
|
2348
|
+
};
|
|
2349
|
+
}
|
|
2350
|
+
function fromPedersenHashResponse(o) {
|
|
2351
|
+
if (o.hash === undefined) {
|
|
2352
|
+
throw new Error("Expected hash in PedersenHashResponse serialization");
|
|
2353
|
+
}
|
|
2354
|
+
;
|
|
2355
|
+
return {
|
|
2356
|
+
hash: o.hash,
|
|
2357
|
+
};
|
|
2358
|
+
}
|
|
2359
|
+
function toPoseidon2Hash(o) {
|
|
2360
|
+
if (o.inputs === undefined) {
|
|
2361
|
+
throw new Error("Expected inputs in Poseidon2Hash deserialization");
|
|
2362
|
+
}
|
|
2363
|
+
;
|
|
2364
|
+
return {
|
|
2365
|
+
inputs: o.inputs.map((v) => v),
|
|
2366
|
+
};
|
|
2367
|
+
}
|
|
2368
|
+
function fromPoseidon2Hash(o) {
|
|
2369
|
+
if (o.inputs === undefined) {
|
|
2370
|
+
throw new Error("Expected inputs in Poseidon2Hash serialization");
|
|
2371
|
+
}
|
|
2372
|
+
;
|
|
2373
|
+
return {
|
|
2374
|
+
inputs: o.inputs.map((v) => v),
|
|
2375
|
+
};
|
|
2376
|
+
}
|
|
2377
|
+
function toPoseidon2HashAccumulate(o) {
|
|
2378
|
+
if (o.inputs === undefined) {
|
|
2379
|
+
throw new Error("Expected inputs in Poseidon2HashAccumulate deserialization");
|
|
2380
|
+
}
|
|
2381
|
+
;
|
|
2382
|
+
return {
|
|
2383
|
+
inputs: o.inputs.map((v) => v),
|
|
2384
|
+
};
|
|
2385
|
+
}
|
|
2386
|
+
function fromPoseidon2HashAccumulate(o) {
|
|
2387
|
+
if (o.inputs === undefined) {
|
|
2388
|
+
throw new Error("Expected inputs in Poseidon2HashAccumulate serialization");
|
|
2389
|
+
}
|
|
2390
|
+
;
|
|
2391
|
+
return {
|
|
2392
|
+
inputs: o.inputs.map((v) => v),
|
|
2393
|
+
};
|
|
2394
|
+
}
|
|
2395
|
+
function toPoseidon2HashAccumulateResponse(o) {
|
|
2396
|
+
if (o.hash === undefined) {
|
|
2397
|
+
throw new Error("Expected hash in Poseidon2HashAccumulateResponse deserialization");
|
|
2398
|
+
}
|
|
2399
|
+
;
|
|
2400
|
+
return {
|
|
2401
|
+
hash: o.hash,
|
|
2402
|
+
};
|
|
2403
|
+
}
|
|
2404
|
+
function fromPoseidon2HashAccumulateResponse(o) {
|
|
2405
|
+
if (o.hash === undefined) {
|
|
2406
|
+
throw new Error("Expected hash in Poseidon2HashAccumulateResponse serialization");
|
|
2407
|
+
}
|
|
2408
|
+
;
|
|
2409
|
+
return {
|
|
2410
|
+
hash: o.hash,
|
|
2411
|
+
};
|
|
2412
|
+
}
|
|
2413
|
+
function toPoseidon2HashResponse(o) {
|
|
2414
|
+
if (o.hash === undefined) {
|
|
2415
|
+
throw new Error("Expected hash in Poseidon2HashResponse deserialization");
|
|
2416
|
+
}
|
|
2417
|
+
;
|
|
2418
|
+
return {
|
|
2419
|
+
hash: o.hash,
|
|
2420
|
+
};
|
|
2421
|
+
}
|
|
2422
|
+
function fromPoseidon2HashResponse(o) {
|
|
2423
|
+
if (o.hash === undefined) {
|
|
2424
|
+
throw new Error("Expected hash in Poseidon2HashResponse serialization");
|
|
2425
|
+
}
|
|
2426
|
+
;
|
|
2427
|
+
return {
|
|
2428
|
+
hash: o.hash,
|
|
2429
|
+
};
|
|
2430
|
+
}
|
|
2431
|
+
function toPoseidon2Permutation(o) {
|
|
2432
|
+
if (o.inputs === undefined) {
|
|
2433
|
+
throw new Error("Expected inputs in Poseidon2Permutation deserialization");
|
|
386
2434
|
}
|
|
387
2435
|
;
|
|
388
2436
|
return {
|
|
389
|
-
|
|
2437
|
+
inputs: o.inputs.map((v) => v),
|
|
390
2438
|
};
|
|
391
2439
|
}
|
|
392
|
-
function
|
|
393
|
-
if (o.
|
|
394
|
-
throw new Error("Expected
|
|
2440
|
+
function fromPoseidon2Permutation(o) {
|
|
2441
|
+
if (o.inputs === undefined) {
|
|
2442
|
+
throw new Error("Expected inputs in Poseidon2Permutation serialization");
|
|
395
2443
|
}
|
|
396
2444
|
;
|
|
397
2445
|
return {
|
|
398
|
-
|
|
2446
|
+
inputs: o.inputs.map((v) => v),
|
|
399
2447
|
};
|
|
400
2448
|
}
|
|
401
|
-
function
|
|
402
|
-
if (o.
|
|
403
|
-
throw new Error("Expected
|
|
404
|
-
}
|
|
405
|
-
if (o.settings === undefined) {
|
|
406
|
-
throw new Error("Expected settings in CircuitWriteSolidityVerifier deserialization");
|
|
2449
|
+
function toPoseidon2PermutationResponse(o) {
|
|
2450
|
+
if (o.outputs === undefined) {
|
|
2451
|
+
throw new Error("Expected outputs in Poseidon2PermutationResponse deserialization");
|
|
407
2452
|
}
|
|
408
2453
|
;
|
|
409
2454
|
return {
|
|
410
|
-
|
|
411
|
-
settings: toProofSystemSettings(o.settings),
|
|
2455
|
+
outputs: o.outputs.map((v) => v),
|
|
412
2456
|
};
|
|
413
2457
|
}
|
|
414
|
-
function
|
|
415
|
-
if (o.
|
|
416
|
-
throw new Error("Expected
|
|
417
|
-
}
|
|
418
|
-
if (o.settings === undefined) {
|
|
419
|
-
throw new Error("Expected settings in CircuitWriteSolidityVerifier serialization");
|
|
2458
|
+
function fromPoseidon2PermutationResponse(o) {
|
|
2459
|
+
if (o.outputs === undefined) {
|
|
2460
|
+
throw new Error("Expected outputs in Poseidon2PermutationResponse serialization");
|
|
420
2461
|
}
|
|
421
2462
|
;
|
|
422
2463
|
return {
|
|
423
|
-
|
|
424
|
-
settings: fromProofSystemSettings(o.settings),
|
|
2464
|
+
outputs: o.outputs.map((v) => v),
|
|
425
2465
|
};
|
|
426
2466
|
}
|
|
427
|
-
function
|
|
428
|
-
if (o.
|
|
429
|
-
throw new Error("Expected
|
|
2467
|
+
function toProofSystemSettings(o) {
|
|
2468
|
+
if (o.ipa_accumulation === undefined) {
|
|
2469
|
+
throw new Error("Expected ipa_accumulation in ProofSystemSettings deserialization");
|
|
2470
|
+
}
|
|
2471
|
+
if (o.oracle_hash_type === undefined) {
|
|
2472
|
+
throw new Error("Expected oracle_hash_type in ProofSystemSettings deserialization");
|
|
2473
|
+
}
|
|
2474
|
+
if (o.disable_zk === undefined) {
|
|
2475
|
+
throw new Error("Expected disable_zk in ProofSystemSettings deserialization");
|
|
2476
|
+
}
|
|
2477
|
+
if (o.optimized_solidity_verifier === undefined) {
|
|
2478
|
+
throw new Error("Expected optimized_solidity_verifier in ProofSystemSettings deserialization");
|
|
430
2479
|
}
|
|
431
2480
|
;
|
|
432
2481
|
return {
|
|
433
|
-
|
|
2482
|
+
ipaAccumulation: o.ipa_accumulation,
|
|
2483
|
+
oracleHashType: o.oracle_hash_type,
|
|
2484
|
+
disableZk: o.disable_zk,
|
|
2485
|
+
optimizedSolidityVerifier: o.optimized_solidity_verifier,
|
|
434
2486
|
};
|
|
435
2487
|
}
|
|
436
|
-
function
|
|
437
|
-
if (o.
|
|
438
|
-
throw new Error("Expected
|
|
2488
|
+
function fromProofSystemSettings(o) {
|
|
2489
|
+
if (o.ipaAccumulation === undefined) {
|
|
2490
|
+
throw new Error("Expected ipaAccumulation in ProofSystemSettings serialization");
|
|
2491
|
+
}
|
|
2492
|
+
if (o.oracleHashType === undefined) {
|
|
2493
|
+
throw new Error("Expected oracleHashType in ProofSystemSettings serialization");
|
|
2494
|
+
}
|
|
2495
|
+
if (o.disableZk === undefined) {
|
|
2496
|
+
throw new Error("Expected disableZk in ProofSystemSettings serialization");
|
|
2497
|
+
}
|
|
2498
|
+
if (o.optimizedSolidityVerifier === undefined) {
|
|
2499
|
+
throw new Error("Expected optimizedSolidityVerifier in ProofSystemSettings serialization");
|
|
439
2500
|
}
|
|
440
2501
|
;
|
|
441
2502
|
return {
|
|
442
|
-
|
|
2503
|
+
ipa_accumulation: o.ipaAccumulation,
|
|
2504
|
+
oracle_hash_type: o.oracleHashType,
|
|
2505
|
+
disable_zk: o.disableZk,
|
|
2506
|
+
optimized_solidity_verifier: o.optimizedSolidityVerifier,
|
|
443
2507
|
};
|
|
444
2508
|
}
|
|
445
|
-
function
|
|
446
|
-
if (o.
|
|
447
|
-
throw new Error("Expected
|
|
2509
|
+
function toSchnorrComputePublicKey(o) {
|
|
2510
|
+
if (o.private_key === undefined) {
|
|
2511
|
+
throw new Error("Expected private_key in SchnorrComputePublicKey deserialization");
|
|
448
2512
|
}
|
|
449
2513
|
;
|
|
450
2514
|
return {
|
|
451
|
-
|
|
2515
|
+
privateKey: o.private_key,
|
|
452
2516
|
};
|
|
453
2517
|
}
|
|
454
|
-
function
|
|
455
|
-
if (o.
|
|
456
|
-
throw new Error("Expected
|
|
2518
|
+
function fromSchnorrComputePublicKey(o) {
|
|
2519
|
+
if (o.privateKey === undefined) {
|
|
2520
|
+
throw new Error("Expected privateKey in SchnorrComputePublicKey serialization");
|
|
457
2521
|
}
|
|
458
2522
|
;
|
|
459
2523
|
return {
|
|
460
|
-
|
|
2524
|
+
private_key: o.privateKey,
|
|
461
2525
|
};
|
|
462
2526
|
}
|
|
463
|
-
function
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
function fromClientIvcAccumulateResponse(o) {
|
|
467
|
-
return {};
|
|
468
|
-
}
|
|
469
|
-
function toClientIvcCheckPrecomputedVk(o) {
|
|
470
|
-
if (o.circuit === undefined) {
|
|
471
|
-
throw new Error("Expected circuit in ClientIvcCheckPrecomputedVk deserialization");
|
|
2527
|
+
function toSchnorrComputePublicKeyResponse(o) {
|
|
2528
|
+
if (o.public_key === undefined) {
|
|
2529
|
+
throw new Error("Expected public_key in SchnorrComputePublicKeyResponse deserialization");
|
|
472
2530
|
}
|
|
473
2531
|
;
|
|
474
2532
|
return {
|
|
475
|
-
|
|
2533
|
+
publicKey: toGrumpkinPoint(o.public_key),
|
|
476
2534
|
};
|
|
477
2535
|
}
|
|
478
|
-
function
|
|
479
|
-
if (o.
|
|
480
|
-
throw new Error("Expected
|
|
2536
|
+
function fromSchnorrComputePublicKeyResponse(o) {
|
|
2537
|
+
if (o.publicKey === undefined) {
|
|
2538
|
+
throw new Error("Expected publicKey in SchnorrComputePublicKeyResponse serialization");
|
|
481
2539
|
}
|
|
482
2540
|
;
|
|
483
2541
|
return {
|
|
484
|
-
|
|
2542
|
+
public_key: fromGrumpkinPoint(o.publicKey),
|
|
485
2543
|
};
|
|
486
2544
|
}
|
|
487
|
-
function
|
|
488
|
-
if (o.
|
|
489
|
-
throw new Error("Expected
|
|
2545
|
+
function toSchnorrConstructSignature(o) {
|
|
2546
|
+
if (o.message === undefined) {
|
|
2547
|
+
throw new Error("Expected message in SchnorrConstructSignature deserialization");
|
|
490
2548
|
}
|
|
491
|
-
if (o.
|
|
492
|
-
throw new Error("Expected
|
|
2549
|
+
if (o.private_key === undefined) {
|
|
2550
|
+
throw new Error("Expected private_key in SchnorrConstructSignature deserialization");
|
|
493
2551
|
}
|
|
494
2552
|
;
|
|
495
2553
|
return {
|
|
496
|
-
|
|
497
|
-
|
|
2554
|
+
message: o.message,
|
|
2555
|
+
privateKey: o.private_key,
|
|
498
2556
|
};
|
|
499
2557
|
}
|
|
500
|
-
function
|
|
501
|
-
if (o.
|
|
502
|
-
throw new Error("Expected
|
|
2558
|
+
function fromSchnorrConstructSignature(o) {
|
|
2559
|
+
if (o.message === undefined) {
|
|
2560
|
+
throw new Error("Expected message in SchnorrConstructSignature serialization");
|
|
503
2561
|
}
|
|
504
|
-
if (o.
|
|
505
|
-
throw new Error("Expected
|
|
2562
|
+
if (o.privateKey === undefined) {
|
|
2563
|
+
throw new Error("Expected privateKey in SchnorrConstructSignature serialization");
|
|
506
2564
|
}
|
|
507
2565
|
;
|
|
508
2566
|
return {
|
|
509
|
-
|
|
510
|
-
|
|
2567
|
+
message: o.message,
|
|
2568
|
+
private_key: o.privateKey,
|
|
511
2569
|
};
|
|
512
2570
|
}
|
|
513
|
-
function
|
|
514
|
-
if (o.
|
|
515
|
-
throw new Error("Expected
|
|
2571
|
+
function toSchnorrConstructSignatureResponse(o) {
|
|
2572
|
+
if (o.s === undefined) {
|
|
2573
|
+
throw new Error("Expected s in SchnorrConstructSignatureResponse deserialization");
|
|
2574
|
+
}
|
|
2575
|
+
if (o.e === undefined) {
|
|
2576
|
+
throw new Error("Expected e in SchnorrConstructSignatureResponse deserialization");
|
|
516
2577
|
}
|
|
517
2578
|
;
|
|
518
2579
|
return {
|
|
519
|
-
|
|
2580
|
+
s: o.s,
|
|
2581
|
+
e: o.e,
|
|
520
2582
|
};
|
|
521
2583
|
}
|
|
522
|
-
function
|
|
523
|
-
if (o.
|
|
524
|
-
throw new Error("Expected
|
|
2584
|
+
function fromSchnorrConstructSignatureResponse(o) {
|
|
2585
|
+
if (o.s === undefined) {
|
|
2586
|
+
throw new Error("Expected s in SchnorrConstructSignatureResponse serialization");
|
|
2587
|
+
}
|
|
2588
|
+
if (o.e === undefined) {
|
|
2589
|
+
throw new Error("Expected e in SchnorrConstructSignatureResponse serialization");
|
|
525
2590
|
}
|
|
526
2591
|
;
|
|
527
2592
|
return {
|
|
528
|
-
|
|
2593
|
+
s: o.s,
|
|
2594
|
+
e: o.e,
|
|
529
2595
|
};
|
|
530
2596
|
}
|
|
531
|
-
function
|
|
532
|
-
if (o.
|
|
533
|
-
throw new Error("Expected
|
|
2597
|
+
function toSchnorrVerifySignature(o) {
|
|
2598
|
+
if (o.message === undefined) {
|
|
2599
|
+
throw new Error("Expected message in SchnorrVerifySignature deserialization");
|
|
2600
|
+
}
|
|
2601
|
+
if (o.public_key === undefined) {
|
|
2602
|
+
throw new Error("Expected public_key in SchnorrVerifySignature deserialization");
|
|
2603
|
+
}
|
|
2604
|
+
if (o.s === undefined) {
|
|
2605
|
+
throw new Error("Expected s in SchnorrVerifySignature deserialization");
|
|
2606
|
+
}
|
|
2607
|
+
if (o.e === undefined) {
|
|
2608
|
+
throw new Error("Expected e in SchnorrVerifySignature deserialization");
|
|
534
2609
|
}
|
|
535
2610
|
;
|
|
536
2611
|
return {
|
|
537
|
-
|
|
2612
|
+
message: o.message,
|
|
2613
|
+
publicKey: toGrumpkinPoint(o.public_key),
|
|
2614
|
+
s: o.s,
|
|
2615
|
+
e: o.e,
|
|
538
2616
|
};
|
|
539
2617
|
}
|
|
540
|
-
function
|
|
541
|
-
if (o.
|
|
542
|
-
throw new Error("Expected
|
|
2618
|
+
function fromSchnorrVerifySignature(o) {
|
|
2619
|
+
if (o.message === undefined) {
|
|
2620
|
+
throw new Error("Expected message in SchnorrVerifySignature serialization");
|
|
2621
|
+
}
|
|
2622
|
+
if (o.publicKey === undefined) {
|
|
2623
|
+
throw new Error("Expected publicKey in SchnorrVerifySignature serialization");
|
|
2624
|
+
}
|
|
2625
|
+
if (o.s === undefined) {
|
|
2626
|
+
throw new Error("Expected s in SchnorrVerifySignature serialization");
|
|
2627
|
+
}
|
|
2628
|
+
if (o.e === undefined) {
|
|
2629
|
+
throw new Error("Expected e in SchnorrVerifySignature serialization");
|
|
543
2630
|
}
|
|
544
2631
|
;
|
|
545
2632
|
return {
|
|
546
|
-
|
|
2633
|
+
message: o.message,
|
|
2634
|
+
public_key: fromGrumpkinPoint(o.publicKey),
|
|
2635
|
+
s: o.s,
|
|
2636
|
+
e: o.e,
|
|
547
2637
|
};
|
|
548
2638
|
}
|
|
549
|
-
function
|
|
550
|
-
if (o.
|
|
551
|
-
throw new Error("Expected
|
|
2639
|
+
function toSchnorrVerifySignatureResponse(o) {
|
|
2640
|
+
if (o.verified === undefined) {
|
|
2641
|
+
throw new Error("Expected verified in SchnorrVerifySignatureResponse deserialization");
|
|
552
2642
|
}
|
|
553
2643
|
;
|
|
554
2644
|
return {
|
|
555
|
-
|
|
2645
|
+
verified: o.verified,
|
|
556
2646
|
};
|
|
557
2647
|
}
|
|
558
|
-
function
|
|
559
|
-
if (o.
|
|
560
|
-
throw new Error("Expected
|
|
2648
|
+
function fromSchnorrVerifySignatureResponse(o) {
|
|
2649
|
+
if (o.verified === undefined) {
|
|
2650
|
+
throw new Error("Expected verified in SchnorrVerifySignatureResponse serialization");
|
|
561
2651
|
}
|
|
562
2652
|
;
|
|
563
2653
|
return {
|
|
564
|
-
|
|
2654
|
+
verified: o.verified,
|
|
565
2655
|
};
|
|
566
2656
|
}
|
|
567
|
-
function
|
|
568
|
-
if (o.
|
|
569
|
-
throw new Error("Expected
|
|
570
|
-
}
|
|
571
|
-
if (o.fields === undefined) {
|
|
572
|
-
throw new Error("Expected fields in ClientIvcComputeStandaloneVkResponse deserialization");
|
|
2657
|
+
function toSecp256k1GetRandomFr(o) {
|
|
2658
|
+
if (o.dummy === undefined) {
|
|
2659
|
+
throw new Error("Expected dummy in Secp256k1GetRandomFr deserialization");
|
|
573
2660
|
}
|
|
574
2661
|
;
|
|
575
2662
|
return {
|
|
576
|
-
|
|
577
|
-
fields: o.fields.map((v) => v),
|
|
2663
|
+
dummy: o.dummy,
|
|
578
2664
|
};
|
|
579
2665
|
}
|
|
580
|
-
function
|
|
581
|
-
if (o.
|
|
582
|
-
throw new Error("Expected
|
|
583
|
-
}
|
|
584
|
-
if (o.fields === undefined) {
|
|
585
|
-
throw new Error("Expected fields in ClientIvcComputeStandaloneVkResponse serialization");
|
|
2666
|
+
function fromSecp256k1GetRandomFr(o) {
|
|
2667
|
+
if (o.dummy === undefined) {
|
|
2668
|
+
throw new Error("Expected dummy in Secp256k1GetRandomFr serialization");
|
|
586
2669
|
}
|
|
587
2670
|
;
|
|
588
2671
|
return {
|
|
589
|
-
|
|
590
|
-
fields: o.fields.map((v) => v),
|
|
2672
|
+
dummy: o.dummy,
|
|
591
2673
|
};
|
|
592
2674
|
}
|
|
593
|
-
function
|
|
594
|
-
if (o.
|
|
595
|
-
throw new Error("Expected
|
|
2675
|
+
function toSecp256k1GetRandomFrResponse(o) {
|
|
2676
|
+
if (o.value === undefined) {
|
|
2677
|
+
throw new Error("Expected value in Secp256k1GetRandomFrResponse deserialization");
|
|
596
2678
|
}
|
|
597
2679
|
;
|
|
598
2680
|
return {
|
|
599
|
-
|
|
2681
|
+
value: o.value,
|
|
600
2682
|
};
|
|
601
2683
|
}
|
|
602
|
-
function
|
|
603
|
-
if (o.
|
|
604
|
-
throw new Error("Expected
|
|
2684
|
+
function fromSecp256k1GetRandomFrResponse(o) {
|
|
2685
|
+
if (o.value === undefined) {
|
|
2686
|
+
throw new Error("Expected value in Secp256k1GetRandomFrResponse serialization");
|
|
605
2687
|
}
|
|
606
2688
|
;
|
|
607
2689
|
return {
|
|
608
|
-
|
|
2690
|
+
value: o.value,
|
|
609
2691
|
};
|
|
610
2692
|
}
|
|
611
|
-
function
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
function fromClientIvcLoadResponse(o) {
|
|
615
|
-
return {};
|
|
616
|
-
}
|
|
617
|
-
function toClientIVCProof(o) {
|
|
618
|
-
if (o.mega_proof === undefined) {
|
|
619
|
-
throw new Error("Expected mega_proof in ClientIVCProof deserialization");
|
|
2693
|
+
function toSecp256k1Mul(o) {
|
|
2694
|
+
if (o.point === undefined) {
|
|
2695
|
+
throw new Error("Expected point in Secp256k1Mul deserialization");
|
|
620
2696
|
}
|
|
621
|
-
if (o.
|
|
622
|
-
throw new Error("Expected
|
|
2697
|
+
if (o.scalar === undefined) {
|
|
2698
|
+
throw new Error("Expected scalar in Secp256k1Mul deserialization");
|
|
623
2699
|
}
|
|
624
2700
|
;
|
|
625
2701
|
return {
|
|
626
|
-
|
|
627
|
-
|
|
2702
|
+
point: toSecp256k1Point(o.point),
|
|
2703
|
+
scalar: o.scalar,
|
|
628
2704
|
};
|
|
629
2705
|
}
|
|
630
|
-
function
|
|
631
|
-
if (o.
|
|
632
|
-
throw new Error("Expected
|
|
2706
|
+
function fromSecp256k1Mul(o) {
|
|
2707
|
+
if (o.point === undefined) {
|
|
2708
|
+
throw new Error("Expected point in Secp256k1Mul serialization");
|
|
633
2709
|
}
|
|
634
|
-
if (o.
|
|
635
|
-
throw new Error("Expected
|
|
2710
|
+
if (o.scalar === undefined) {
|
|
2711
|
+
throw new Error("Expected scalar in Secp256k1Mul serialization");
|
|
636
2712
|
}
|
|
637
2713
|
;
|
|
638
2714
|
return {
|
|
639
|
-
|
|
640
|
-
|
|
2715
|
+
point: fromSecp256k1Point(o.point),
|
|
2716
|
+
scalar: o.scalar,
|
|
641
2717
|
};
|
|
642
2718
|
}
|
|
643
|
-
function
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
function fromClientIvcProve(o) {
|
|
647
|
-
return {};
|
|
648
|
-
}
|
|
649
|
-
function toClientIvcProveResponse(o) {
|
|
650
|
-
if (o.proof === undefined) {
|
|
651
|
-
throw new Error("Expected proof in ClientIvcProveResponse deserialization");
|
|
2719
|
+
function toSecp256k1MulResponse(o) {
|
|
2720
|
+
if (o.point === undefined) {
|
|
2721
|
+
throw new Error("Expected point in Secp256k1MulResponse deserialization");
|
|
652
2722
|
}
|
|
653
2723
|
;
|
|
654
2724
|
return {
|
|
655
|
-
|
|
2725
|
+
point: toSecp256k1Point(o.point),
|
|
656
2726
|
};
|
|
657
2727
|
}
|
|
658
|
-
function
|
|
659
|
-
if (o.
|
|
660
|
-
throw new Error("Expected
|
|
2728
|
+
function fromSecp256k1MulResponse(o) {
|
|
2729
|
+
if (o.point === undefined) {
|
|
2730
|
+
throw new Error("Expected point in Secp256k1MulResponse serialization");
|
|
661
2731
|
}
|
|
662
2732
|
;
|
|
663
2733
|
return {
|
|
664
|
-
|
|
2734
|
+
point: fromSecp256k1Point(o.point),
|
|
665
2735
|
};
|
|
666
2736
|
}
|
|
667
|
-
function
|
|
668
|
-
if (o.
|
|
669
|
-
throw new Error("Expected
|
|
2737
|
+
function toSecp256k1Point(o) {
|
|
2738
|
+
if (o.x === undefined) {
|
|
2739
|
+
throw new Error("Expected x in Secp256k1Point deserialization");
|
|
2740
|
+
}
|
|
2741
|
+
if (o.y === undefined) {
|
|
2742
|
+
throw new Error("Expected y in Secp256k1Point deserialization");
|
|
670
2743
|
}
|
|
671
2744
|
;
|
|
672
2745
|
return {
|
|
673
|
-
|
|
2746
|
+
x: o.x,
|
|
2747
|
+
y: o.y,
|
|
674
2748
|
};
|
|
675
2749
|
}
|
|
676
|
-
function
|
|
677
|
-
if (o.
|
|
678
|
-
throw new Error("Expected
|
|
2750
|
+
function fromSecp256k1Point(o) {
|
|
2751
|
+
if (o.x === undefined) {
|
|
2752
|
+
throw new Error("Expected x in Secp256k1Point serialization");
|
|
2753
|
+
}
|
|
2754
|
+
if (o.y === undefined) {
|
|
2755
|
+
throw new Error("Expected y in Secp256k1Point serialization");
|
|
679
2756
|
}
|
|
680
2757
|
;
|
|
681
2758
|
return {
|
|
682
|
-
|
|
2759
|
+
x: o.x,
|
|
2760
|
+
y: o.y,
|
|
683
2761
|
};
|
|
684
2762
|
}
|
|
685
|
-
function
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
function fromClientIvcStartResponse(o) {
|
|
689
|
-
return {};
|
|
690
|
-
}
|
|
691
|
-
function toClientIvcStats(o) {
|
|
692
|
-
if (o.circuit === undefined) {
|
|
693
|
-
throw new Error("Expected circuit in ClientIvcStats deserialization");
|
|
694
|
-
}
|
|
695
|
-
if (o.include_gates_per_opcode === undefined) {
|
|
696
|
-
throw new Error("Expected include_gates_per_opcode in ClientIvcStats deserialization");
|
|
2763
|
+
function toSecp256k1Reduce512(o) {
|
|
2764
|
+
if (o.input === undefined) {
|
|
2765
|
+
throw new Error("Expected input in Secp256k1Reduce512 deserialization");
|
|
697
2766
|
}
|
|
698
2767
|
;
|
|
699
2768
|
return {
|
|
700
|
-
|
|
701
|
-
includeGatesPerOpcode: o.include_gates_per_opcode,
|
|
2769
|
+
input: o.input,
|
|
702
2770
|
};
|
|
703
2771
|
}
|
|
704
|
-
function
|
|
705
|
-
if (o.
|
|
706
|
-
throw new Error("Expected
|
|
707
|
-
}
|
|
708
|
-
if (o.includeGatesPerOpcode === undefined) {
|
|
709
|
-
throw new Error("Expected includeGatesPerOpcode in ClientIvcStats serialization");
|
|
2772
|
+
function fromSecp256k1Reduce512(o) {
|
|
2773
|
+
if (o.input === undefined) {
|
|
2774
|
+
throw new Error("Expected input in Secp256k1Reduce512 serialization");
|
|
710
2775
|
}
|
|
711
2776
|
;
|
|
712
2777
|
return {
|
|
713
|
-
|
|
714
|
-
include_gates_per_opcode: o.includeGatesPerOpcode,
|
|
2778
|
+
input: o.input,
|
|
715
2779
|
};
|
|
716
2780
|
}
|
|
717
|
-
function
|
|
718
|
-
if (o.
|
|
719
|
-
throw new Error("Expected
|
|
720
|
-
}
|
|
721
|
-
if (o.circuit_size === undefined) {
|
|
722
|
-
throw new Error("Expected circuit_size in ClientIvcStatsResponse deserialization");
|
|
723
|
-
}
|
|
724
|
-
if (o.gates_per_opcode === undefined) {
|
|
725
|
-
throw new Error("Expected gates_per_opcode in ClientIvcStatsResponse deserialization");
|
|
2781
|
+
function toSecp256k1Reduce512Response(o) {
|
|
2782
|
+
if (o.value === undefined) {
|
|
2783
|
+
throw new Error("Expected value in Secp256k1Reduce512Response deserialization");
|
|
726
2784
|
}
|
|
727
2785
|
;
|
|
728
2786
|
return {
|
|
729
|
-
|
|
730
|
-
circuitSize: o.circuit_size,
|
|
731
|
-
gatesPerOpcode: o.gates_per_opcode.map((v) => v),
|
|
2787
|
+
value: o.value,
|
|
732
2788
|
};
|
|
733
2789
|
}
|
|
734
|
-
function
|
|
735
|
-
if (o.
|
|
736
|
-
throw new Error("Expected
|
|
737
|
-
}
|
|
738
|
-
if (o.circuitSize === undefined) {
|
|
739
|
-
throw new Error("Expected circuitSize in ClientIvcStatsResponse serialization");
|
|
740
|
-
}
|
|
741
|
-
if (o.gatesPerOpcode === undefined) {
|
|
742
|
-
throw new Error("Expected gatesPerOpcode in ClientIvcStatsResponse serialization");
|
|
2790
|
+
function fromSecp256k1Reduce512Response(o) {
|
|
2791
|
+
if (o.value === undefined) {
|
|
2792
|
+
throw new Error("Expected value in Secp256k1Reduce512Response serialization");
|
|
743
2793
|
}
|
|
744
2794
|
;
|
|
745
2795
|
return {
|
|
746
|
-
|
|
747
|
-
circuit_size: o.circuitSize,
|
|
748
|
-
gates_per_opcode: o.gatesPerOpcode.map((v) => v),
|
|
2796
|
+
value: o.value,
|
|
749
2797
|
};
|
|
750
2798
|
}
|
|
751
|
-
function
|
|
752
|
-
if (o.
|
|
753
|
-
throw new Error("Expected
|
|
2799
|
+
function toSecp256r1Point(o) {
|
|
2800
|
+
if (o.x === undefined) {
|
|
2801
|
+
throw new Error("Expected x in Secp256r1Point deserialization");
|
|
754
2802
|
}
|
|
755
|
-
if (o.
|
|
756
|
-
throw new Error("Expected
|
|
2803
|
+
if (o.y === undefined) {
|
|
2804
|
+
throw new Error("Expected y in Secp256r1Point deserialization");
|
|
757
2805
|
}
|
|
758
2806
|
;
|
|
759
2807
|
return {
|
|
760
|
-
|
|
761
|
-
|
|
2808
|
+
x: o.x,
|
|
2809
|
+
y: o.y,
|
|
762
2810
|
};
|
|
763
2811
|
}
|
|
764
|
-
function
|
|
765
|
-
if (o.
|
|
766
|
-
throw new Error("Expected
|
|
2812
|
+
function fromSecp256r1Point(o) {
|
|
2813
|
+
if (o.x === undefined) {
|
|
2814
|
+
throw new Error("Expected x in Secp256r1Point serialization");
|
|
767
2815
|
}
|
|
768
|
-
if (o.
|
|
769
|
-
throw new Error("Expected
|
|
2816
|
+
if (o.y === undefined) {
|
|
2817
|
+
throw new Error("Expected y in Secp256r1Point serialization");
|
|
770
2818
|
}
|
|
771
2819
|
;
|
|
772
2820
|
return {
|
|
773
|
-
|
|
774
|
-
|
|
2821
|
+
x: o.x,
|
|
2822
|
+
y: o.y,
|
|
775
2823
|
};
|
|
776
2824
|
}
|
|
777
|
-
function
|
|
778
|
-
|
|
779
|
-
|
|
2825
|
+
function toShutdown(o) {
|
|
2826
|
+
return {};
|
|
2827
|
+
}
|
|
2828
|
+
function fromShutdown(o) {
|
|
2829
|
+
return {};
|
|
2830
|
+
}
|
|
2831
|
+
function toShutdownResponse(o) {
|
|
2832
|
+
return {};
|
|
2833
|
+
}
|
|
2834
|
+
function fromShutdownResponse(o) {
|
|
2835
|
+
return {};
|
|
2836
|
+
}
|
|
2837
|
+
function toSrsInitGrumpkinSrs(o) {
|
|
2838
|
+
if (o.points_buf === undefined) {
|
|
2839
|
+
throw new Error("Expected points_buf in SrsInitGrumpkinSrs deserialization");
|
|
2840
|
+
}
|
|
2841
|
+
if (o.num_points === undefined) {
|
|
2842
|
+
throw new Error("Expected num_points in SrsInitGrumpkinSrs deserialization");
|
|
780
2843
|
}
|
|
781
2844
|
;
|
|
782
2845
|
return {
|
|
783
|
-
|
|
2846
|
+
pointsBuf: o.points_buf,
|
|
2847
|
+
numPoints: o.num_points,
|
|
784
2848
|
};
|
|
785
2849
|
}
|
|
786
|
-
function
|
|
787
|
-
if (o.
|
|
788
|
-
throw new Error("Expected
|
|
2850
|
+
function fromSrsInitGrumpkinSrs(o) {
|
|
2851
|
+
if (o.pointsBuf === undefined) {
|
|
2852
|
+
throw new Error("Expected pointsBuf in SrsInitGrumpkinSrs serialization");
|
|
2853
|
+
}
|
|
2854
|
+
if (o.numPoints === undefined) {
|
|
2855
|
+
throw new Error("Expected numPoints in SrsInitGrumpkinSrs serialization");
|
|
789
2856
|
}
|
|
790
2857
|
;
|
|
791
2858
|
return {
|
|
792
|
-
|
|
2859
|
+
points_buf: o.pointsBuf,
|
|
2860
|
+
num_points: o.numPoints,
|
|
793
2861
|
};
|
|
794
2862
|
}
|
|
795
|
-
function
|
|
796
|
-
if (o.
|
|
797
|
-
throw new Error("Expected
|
|
798
|
-
}
|
|
799
|
-
if (o.ipa_proof === undefined) {
|
|
800
|
-
throw new Error("Expected ipa_proof in ECCVMProof deserialization");
|
|
2863
|
+
function toSrsInitGrumpkinSrsResponse(o) {
|
|
2864
|
+
if (o.dummy === undefined) {
|
|
2865
|
+
throw new Error("Expected dummy in SrsInitGrumpkinSrsResponse deserialization");
|
|
801
2866
|
}
|
|
802
2867
|
;
|
|
803
2868
|
return {
|
|
804
|
-
|
|
805
|
-
ipaProof: o.ipa_proof.map((v) => v),
|
|
2869
|
+
dummy: o.dummy,
|
|
806
2870
|
};
|
|
807
2871
|
}
|
|
808
|
-
function
|
|
809
|
-
if (o.
|
|
810
|
-
throw new Error("Expected
|
|
811
|
-
}
|
|
812
|
-
if (o.ipaProof === undefined) {
|
|
813
|
-
throw new Error("Expected ipaProof in ECCVMProof serialization");
|
|
2872
|
+
function fromSrsInitGrumpkinSrsResponse(o) {
|
|
2873
|
+
if (o.dummy === undefined) {
|
|
2874
|
+
throw new Error("Expected dummy in SrsInitGrumpkinSrsResponse serialization");
|
|
814
2875
|
}
|
|
815
2876
|
;
|
|
816
2877
|
return {
|
|
817
|
-
|
|
818
|
-
ipa_proof: o.ipaProof.map((v) => v),
|
|
2878
|
+
dummy: o.dummy,
|
|
819
2879
|
};
|
|
820
2880
|
}
|
|
821
|
-
function
|
|
822
|
-
if (o.
|
|
823
|
-
throw new Error("Expected
|
|
2881
|
+
function toSrsInitSrs(o) {
|
|
2882
|
+
if (o.points_buf === undefined) {
|
|
2883
|
+
throw new Error("Expected points_buf in SrsInitSrs deserialization");
|
|
824
2884
|
}
|
|
825
|
-
if (o.
|
|
826
|
-
throw new Error("Expected
|
|
2885
|
+
if (o.num_points === undefined) {
|
|
2886
|
+
throw new Error("Expected num_points in SrsInitSrs deserialization");
|
|
827
2887
|
}
|
|
828
|
-
if (o.
|
|
829
|
-
throw new Error("Expected
|
|
2888
|
+
if (o.g2_point === undefined) {
|
|
2889
|
+
throw new Error("Expected g2_point in SrsInitSrs deserialization");
|
|
830
2890
|
}
|
|
831
2891
|
;
|
|
832
2892
|
return {
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
2893
|
+
pointsBuf: o.points_buf,
|
|
2894
|
+
numPoints: o.num_points,
|
|
2895
|
+
g2Point: o.g2_point,
|
|
836
2896
|
};
|
|
837
2897
|
}
|
|
838
|
-
function
|
|
839
|
-
if (o.
|
|
840
|
-
throw new Error("Expected
|
|
2898
|
+
function fromSrsInitSrs(o) {
|
|
2899
|
+
if (o.pointsBuf === undefined) {
|
|
2900
|
+
throw new Error("Expected pointsBuf in SrsInitSrs serialization");
|
|
841
2901
|
}
|
|
842
|
-
if (o.
|
|
843
|
-
throw new Error("Expected
|
|
2902
|
+
if (o.numPoints === undefined) {
|
|
2903
|
+
throw new Error("Expected numPoints in SrsInitSrs serialization");
|
|
844
2904
|
}
|
|
845
|
-
if (o.
|
|
846
|
-
throw new Error("Expected
|
|
2905
|
+
if (o.g2Point === undefined) {
|
|
2906
|
+
throw new Error("Expected g2Point in SrsInitSrs serialization");
|
|
847
2907
|
}
|
|
848
2908
|
;
|
|
849
2909
|
return {
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
2910
|
+
points_buf: o.pointsBuf,
|
|
2911
|
+
num_points: o.numPoints,
|
|
2912
|
+
g2_point: o.g2Point,
|
|
853
2913
|
};
|
|
854
2914
|
}
|
|
855
|
-
function
|
|
856
|
-
if (o.
|
|
857
|
-
throw new Error("Expected
|
|
858
|
-
}
|
|
859
|
-
if (o.oracle_hash_type === undefined) {
|
|
860
|
-
throw new Error("Expected oracle_hash_type in ProofSystemSettings deserialization");
|
|
861
|
-
}
|
|
862
|
-
if (o.disable_zk === undefined) {
|
|
863
|
-
throw new Error("Expected disable_zk in ProofSystemSettings deserialization");
|
|
864
|
-
}
|
|
865
|
-
if (o.optimized_solidity_verifier === undefined) {
|
|
866
|
-
throw new Error("Expected optimized_solidity_verifier in ProofSystemSettings deserialization");
|
|
2915
|
+
function toSrsInitSrsResponse(o) {
|
|
2916
|
+
if (o.dummy === undefined) {
|
|
2917
|
+
throw new Error("Expected dummy in SrsInitSrsResponse deserialization");
|
|
867
2918
|
}
|
|
868
2919
|
;
|
|
869
2920
|
return {
|
|
870
|
-
|
|
871
|
-
oracleHashType: o.oracle_hash_type,
|
|
872
|
-
disableZk: o.disable_zk,
|
|
873
|
-
optimizedSolidityVerifier: o.optimized_solidity_verifier,
|
|
2921
|
+
dummy: o.dummy,
|
|
874
2922
|
};
|
|
875
2923
|
}
|
|
876
|
-
function
|
|
877
|
-
if (o.
|
|
878
|
-
throw new Error("Expected
|
|
879
|
-
}
|
|
880
|
-
if (o.oracleHashType === undefined) {
|
|
881
|
-
throw new Error("Expected oracleHashType in ProofSystemSettings serialization");
|
|
882
|
-
}
|
|
883
|
-
if (o.disableZk === undefined) {
|
|
884
|
-
throw new Error("Expected disableZk in ProofSystemSettings serialization");
|
|
885
|
-
}
|
|
886
|
-
if (o.optimizedSolidityVerifier === undefined) {
|
|
887
|
-
throw new Error("Expected optimizedSolidityVerifier in ProofSystemSettings serialization");
|
|
2924
|
+
function fromSrsInitSrsResponse(o) {
|
|
2925
|
+
if (o.dummy === undefined) {
|
|
2926
|
+
throw new Error("Expected dummy in SrsInitSrsResponse serialization");
|
|
888
2927
|
}
|
|
889
2928
|
;
|
|
890
2929
|
return {
|
|
891
|
-
|
|
892
|
-
oracle_hash_type: o.oracleHashType,
|
|
893
|
-
disable_zk: o.disableZk,
|
|
894
|
-
optimized_solidity_verifier: o.optimizedSolidityVerifier,
|
|
2930
|
+
dummy: o.dummy,
|
|
895
2931
|
};
|
|
896
2932
|
}
|
|
897
2933
|
function toVkAsFields(o) {
|
|
@@ -930,4 +2966,4 @@ function fromVkAsFieldsResponse(o) {
|
|
|
930
2966
|
fields: o.fields.map((v) => v),
|
|
931
2967
|
};
|
|
932
2968
|
}
|
|
933
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpX3R5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NiaW5kL2dlbmVyYXRlZC9hcGlfdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLG1DQUFtQzs7QUEwckJuQyxnREFPQztBQUVELG9EQU9DO0FBRUQsZ0VBU0M7QUFFRCxvRUFTQztBQUVELHNEQVdDO0FBRUQsMERBV0M7QUFFRCx3Q0FTQztBQUVELDRDQVNDO0FBRUQsZ0RBT0M7QUFFRCxvREFPQztBQUVELHdDQVNDO0FBRUQsNENBU0M7QUFFRCx3REFTQztBQUVELDREQVNDO0FBRUQsd0NBU0M7QUFFRCw0Q0FTQztBQUVELDBDQVdDO0FBRUQsOENBV0M7QUFFRCwwREFLQztBQUVELDhEQUtDO0FBRUQsd0VBT0M7QUFFRCw0RUFPQztBQUVELHdGQUtDO0FBRUQsNEZBS0M7QUFFRCxzREFLQztBQUVELDBEQUtDO0FBRUQsc0VBRUM7QUFFRCwwRUFFQztBQUVELHNFQUtDO0FBRUQsMEVBS0M7QUFFRCxzRkFPQztBQUVELDBGQU9DO0FBRUQsMERBS0M7QUFFRCw4REFLQztBQUVELDBFQUtDO0FBRUQsOEVBS0M7QUFFRCx3RUFLQztBQUVELDRFQUtDO0FBRUQsd0ZBT0M7QUFFRCw0RkFPQztBQUVELDBDQUtDO0FBRUQsOENBS0M7QUFFRCwwREFFQztBQUVELDhEQUVDO0FBRUQsNENBT0M7QUFFRCxnREFPQztBQUVELDRDQUVDO0FBRUQsZ0RBRUM7QUFFRCw0REFLQztBQUVELGdFQUtDO0FBRUQsNENBS0M7QUFFRCxnREFLQztBQUVELDREQUVDO0FBRUQsZ0VBRUM7QUFFRCw0Q0FPQztBQUVELGdEQU9DO0FBRUQsNERBU0M7QUFFRCxnRUFTQztBQUVELDhDQU9DO0FBRUQsa0RBT0M7QUFFRCw4REFLQztBQUVELGtFQUtDO0FBRUQsb0NBT0M7QUFFRCx3Q0FPQztBQUVELHNDQVNDO0FBRUQsMENBU0M7QUFFRCxzREFXQztBQUVELDBEQVdDO0FBRUQsb0NBS0M7QUFFRCx3Q0FLQztBQUVELG9EQUtDO0FBRUQsd0RBS0M7QUEvbEJELGtDQUFrQztBQUNsQyxTQUFnQixrQkFBa0IsQ0FBQyxDQUEwQjtJQUMzRCxJQUFJLENBQUMsQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLHNEQUFzRCxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQ3pHLElBQUksQ0FBQyxDQUFDLFFBQVEsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsdURBQXVELENBQUMsQ0FBQztJQUFDLENBQUM7SUFBQSxDQUFDO0lBQzVHLE9BQU87UUFDTCxPQUFPLEVBQUUsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUN0QyxRQUFRLEVBQUUscUJBQXFCLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztLQUM1QyxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLG9CQUFvQixDQUFDLENBQW1CO0lBQ3RELElBQUksQ0FBQyxDQUFDLE9BQU8sS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsb0RBQW9ELENBQUMsQ0FBQztJQUFDLENBQUM7SUFDdkcsSUFBSSxDQUFDLENBQUMsUUFBUSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUFBLENBQUM7SUFDMUcsT0FBTztRQUNQLE9BQU8sRUFBRSxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQ3hDLFFBQVEsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO0tBQzVDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0IsMEJBQTBCLENBQUMsQ0FBa0M7SUFDM0UsSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyw0REFBNEQsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUM3RyxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLDZEQUE2RCxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQy9HLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsMkRBQTJELENBQUMsQ0FBQztJQUFDLENBQUM7SUFBQSxDQUFDO0lBQzVHLE9BQU87UUFDTCxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUs7UUFDZCxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNuQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUk7S0FDYixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLDRCQUE0QixDQUFDLENBQTJCO0lBQ3RFLElBQUksQ0FBQyxDQUFDLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsMERBQTBELENBQUMsQ0FBQztJQUFDLENBQUM7SUFDM0csSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQywyREFBMkQsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUM3RyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLHlEQUF5RCxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQUEsQ0FBQztJQUMxRyxPQUFPO1FBQ1AsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO1FBQ2QsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbkMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJO0tBQ1gsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFnQixxQkFBcUIsQ0FBQyxDQUE2QjtJQUNqRSxJQUFJLENBQUMsQ0FBQyxTQUFTLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLDJEQUEyRCxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQ2hILElBQUksQ0FBQyxDQUFDLGdCQUFnQixLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxrRUFBa0UsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUM5SCxJQUFJLENBQUMsQ0FBQyxnQkFBZ0IsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsa0VBQWtFLENBQUMsQ0FBQztJQUFDLENBQUM7SUFDOUgsSUFBSSxDQUFDLENBQUMsZ0JBQWdCLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLGtFQUFrRSxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQUEsQ0FBQztJQUMvSCxPQUFPO1FBQ0wsUUFBUSxFQUFFLENBQUMsQ0FBQyxTQUFTO1FBQ3JCLGNBQWMsRUFBRSxDQUFDLENBQUMsZ0JBQWdCO1FBQ2xDLGNBQWMsRUFBRSxDQUFDLENBQUMsZ0JBQWdCO1FBQ2xDLGNBQWMsRUFBRSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7S0FDdEQsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFnQix1QkFBdUIsQ0FBQyxDQUFzQjtJQUM1RCxJQUFJLENBQUMsQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLHdEQUF3RCxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQzVHLElBQUksQ0FBQyxDQUFDLGNBQWMsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsOERBQThELENBQUMsQ0FBQztJQUFDLENBQUM7SUFDeEgsSUFBSSxDQUFDLENBQUMsY0FBYyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyw4REFBOEQsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUN4SCxJQUFJLENBQUMsQ0FBQyxjQUFjLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLDhEQUE4RCxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQUEsQ0FBQztJQUN6SCxPQUFPO1FBQ1AsU0FBUyxFQUFFLENBQUMsQ0FBQyxRQUFRO1FBQ3JCLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxjQUFjO1FBQ2xDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxjQUFjO1FBQ2xDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7S0FDcEQsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFnQixjQUFjLENBQUMsQ0FBc0I7SUFDbkQsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUMvRixJQUFJLENBQUMsQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQ3ZHLElBQUksQ0FBQyxDQUFDLGdCQUFnQixLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQywyREFBMkQsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUFBLENBQUM7SUFDeEgsT0FBTztRQUNMLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSTtRQUNaLFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUTtRQUNwQixlQUFlLEVBQUUsQ0FBQyxDQUFDLGdCQUFnQjtLQUNwQyxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLGdCQUFnQixDQUFDLENBQWU7SUFDOUMsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUM3RixJQUFJLENBQUMsQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQ3JHLElBQUksQ0FBQyxDQUFDLGVBQWUsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsd0RBQXdELENBQUMsQ0FBQztJQUFDLENBQUM7SUFBQSxDQUFDO0lBQ3BILE9BQU87UUFDUCxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUk7UUFDWixRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVE7UUFDcEIsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLGVBQWU7S0FDbEMsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFnQixrQkFBa0IsQ0FBQyxDQUEwQjtJQUMzRCxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQ25HLElBQUksQ0FBQyxDQUFDLFFBQVEsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsdURBQXVELENBQUMsQ0FBQztJQUFDLENBQUM7SUFBQSxDQUFDO0lBQzVHLE9BQU87UUFDTCxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUk7UUFDWixRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVE7S0FDckIsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFnQixvQkFBb0IsQ0FBQyxDQUFtQjtJQUN0RCxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQ2pHLElBQUksQ0FBQyxDQUFDLFFBQVEsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMscURBQXFELENBQUMsQ0FBQztJQUFDLENBQUM7SUFBQSxDQUFDO0lBQzFHLE9BQU87UUFDUCxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUk7UUFDWixRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVE7S0FDbkIsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFnQixjQUFjLENBQUMsQ0FBc0I7SUFDbkQsSUFBSSxDQUFDLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUNyRyxJQUFJLENBQUMsQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFrRCxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQ3JHLElBQUksQ0FBQyxDQUFDLFFBQVEsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsbURBQW1ELENBQUMsQ0FBQztJQUFDLENBQUM7SUFBQSxDQUFDO0lBQ3hHLE9BQU87UUFDTCxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDbEMsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPO1FBQ2xCLFFBQVEsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO0tBQzVDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0IsZ0JBQWdCLENBQUMsQ0FBZTtJQUM5QyxJQUFJLENBQUMsQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLGdEQUFnRCxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQ25HLElBQUksQ0FBQyxDQUFDLE9BQU8sS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0RBQWdELENBQUMsQ0FBQztJQUFDLENBQUM7SUFDbkcsSUFBSSxDQUFDLENBQUMsUUFBUSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUFBLENBQUM7SUFDdEcsT0FBTztRQUNQLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQ3BDLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTztRQUNsQixRQUFRLEVBQUUsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztLQUM1QyxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLHNCQUFzQixDQUFDLENBQThCO0lBQ25FLElBQUksQ0FBQyxDQUFDLGFBQWEsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0VBQWdFLENBQUMsQ0FBQztJQUFDLENBQUM7SUFDekgsSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyx3REFBd0QsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUN6RyxJQUFJLENBQUMsQ0FBQyxFQUFFLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLHFEQUFxRCxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQUEsQ0FBQztJQUNwRyxPQUFPO1FBQ0wsWUFBWSxFQUFFLENBQUMsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDaEQsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDakMsRUFBRSxFQUFFLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7S0FDckMsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFnQix3QkFBd0IsQ0FBQyxDQUF1QjtJQUM5RCxJQUFJLENBQUMsQ0FBQyxZQUFZLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLDZEQUE2RCxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQ3JILElBQUksQ0FBQyxDQUFDLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsc0RBQXNELENBQUMsQ0FBQztJQUFDLENBQUM7SUFDdkcsSUFBSSxDQUFDLENBQUMsRUFBRSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxtREFBbUQsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUFBLENBQUM7SUFDbEcsT0FBTztRQUNQLGFBQWEsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hELEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLEVBQUUsRUFBRSw0QkFBNEIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0tBQ3JDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0IsY0FBYyxDQUFDLENBQXNCO0lBQ25ELElBQUksQ0FBQyxDQUFDLE9BQU8sS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsa0RBQWtELENBQUMsQ0FBQztJQUFDLENBQUM7SUFDckcsSUFBSSxDQUFDLENBQUMsd0JBQXdCLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLG1FQUFtRSxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQ3ZJLElBQUksQ0FBQyxDQUFDLFFBQVEsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsbURBQW1ELENBQUMsQ0FBQztJQUFDLENBQUM7SUFBQSxDQUFDO0lBQ3hHLE9BQU87UUFDTCxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDbEMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDLHdCQUF3QjtRQUNqRCxRQUFRLEVBQUUscUJBQXFCLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztLQUM1QyxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLGdCQUFnQixDQUFDLENBQWU7SUFDOUMsSUFBSSxDQUFDLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUNuRyxJQUFJLENBQUMsQ0FBQyxxQkFBcUIsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsOERBQThELENBQUMsQ0FBQztJQUFDLENBQUM7SUFDL0gsSUFBSSxDQUFDLENBQUMsUUFBUSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUFBLENBQUM7SUFDdEcsT0FBTztRQUNQLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQ3BDLHdCQUF3QixFQUFFLENBQUMsQ0FBQyxxQkFBcUI7UUFDakQsUUFBUSxFQUFFLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7S0FDNUMsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFnQixlQUFlLENBQUMsQ0FBdUI7SUFDckQsSUFBSSxDQUFDLENBQUMsZ0JBQWdCLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLDREQUE0RCxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQ3hILElBQUksQ0FBQyxDQUFDLGFBQWEsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMseURBQXlELENBQUMsQ0FBQztJQUFDLENBQUM7SUFDbEgsSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUNsRyxJQUFJLENBQUMsQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLG9EQUFvRCxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQUEsQ0FBQztJQUN6RyxPQUFPO1FBQ0wsZUFBZSxFQUFFLENBQUMsQ0FBQyxnQkFBZ0I7UUFDbkMsWUFBWSxFQUFFLENBQUMsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDaEQsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDakMsUUFBUSxFQUFFLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7S0FDNUMsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFnQixpQkFBaUIsQ0FBQyxDQUFnQjtJQUNoRCxJQUFJLENBQUMsQ0FBQyxlQUFlLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLHlEQUF5RCxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQ3BILElBQUksQ0FBQyxDQUFDLFlBQVksS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsc0RBQXNELENBQUMsQ0FBQztJQUFDLENBQUM7SUFDOUcsSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUNoRyxJQUFJLENBQUMsQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFrRCxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQUEsQ0FBQztJQUN2RyxPQUFPO1FBQ1AsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLGVBQWU7UUFDbkMsYUFBYSxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDaEQsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDakMsUUFBUSxFQUFFLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7S0FDNUMsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFnQix1QkFBdUIsQ0FBQyxDQUErQjtJQUNyRSxJQUFJLENBQUMsQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLDREQUE0RCxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQUEsQ0FBQztJQUNqSCxPQUFPO1FBQ0wsUUFBUSxFQUFFLENBQUMsQ0FBQyxRQUFRO0tBQ3JCLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0IseUJBQXlCLENBQUMsQ0FBd0I7SUFDaEUsSUFBSSxDQUFDLENBQUMsUUFBUSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQywwREFBMEQsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUFBLENBQUM7SUFDL0csT0FBTztRQUNQLFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUTtLQUNuQixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLDhCQUE4QixDQUFDLENBQXNDO0lBQ25GLElBQUksQ0FBQyxDQUFDLGdCQUFnQixLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQywyRUFBMkUsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUN2SSxJQUFJLENBQUMsQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLG1FQUFtRSxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQUEsQ0FBQztJQUN4SCxPQUFPO1FBQ0wsZUFBZSxFQUFFLENBQUMsQ0FBQyxnQkFBZ0I7UUFDbkMsUUFBUSxFQUFFLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7S0FDNUMsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFnQixnQ0FBZ0MsQ0FBQyxDQUErQjtJQUM5RSxJQUFJLENBQUMsQ0FBQyxlQUFlLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLHdFQUF3RSxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQ25JLElBQUksQ0FBQyxDQUFDLFFBQVEsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsaUVBQWlFLENBQUMsQ0FBQztJQUFDLENBQUM7SUFBQSxDQUFDO0lBQ3RILE9BQU87UUFDUCxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsZUFBZTtRQUNuQyxRQUFRLEVBQUUsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztLQUM1QyxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLHNDQUFzQyxDQUFDLENBQThDO0lBQ25HLElBQUksQ0FBQyxDQUFDLGFBQWEsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0ZBQWdGLENBQUMsQ0FBQztJQUFDLENBQUM7SUFBQSxDQUFDO0lBQzFJLE9BQU87UUFDTCxZQUFZLEVBQUUsQ0FBQyxDQUFDLGFBQWE7S0FDOUIsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFnQix3Q0FBd0MsQ0FBQyxDQUF1QztJQUM5RixJQUFJLENBQUMsQ0FBQyxZQUFZLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLDZFQUE2RSxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQUEsQ0FBQztJQUN0SSxPQUFPO1FBQ1AsYUFBYSxFQUFFLENBQUMsQ0FBQyxZQUFZO0tBQzVCLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0IscUJBQXFCLENBQUMsQ0FBNkI7SUFDakUsSUFBSSxDQUFDLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyx5REFBeUQsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUFBLENBQUM7SUFDN0csT0FBTztRQUNMLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTztLQUNuQixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLHVCQUF1QixDQUFDLENBQXNCO0lBQzVELElBQUksQ0FBQyxDQUFDLE9BQU8sS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsdURBQXVELENBQUMsQ0FBQztJQUFDLENBQUM7SUFBQSxDQUFDO0lBQzNHLE9BQU87UUFDUCxPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU87S0FDakIsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFnQiw2QkFBNkIsQ0FBQyxDQUFxQztJQUNqRixPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFFRCxTQUFnQiwrQkFBK0IsQ0FBQyxDQUE4QjtJQUM1RSxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFFRCxTQUFnQiw2QkFBNkIsQ0FBQyxDQUFxQztJQUNqRixJQUFJLENBQUMsQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLGlFQUFpRSxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQUEsQ0FBQztJQUNySCxPQUFPO1FBQ0wsT0FBTyxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0tBQ25DLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0IsK0JBQStCLENBQUMsQ0FBOEI7SUFDNUUsSUFBSSxDQUFDLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQywrREFBK0QsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUFBLENBQUM7SUFDbkgsT0FBTztRQUNQLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0tBQ25DLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0IscUNBQXFDLENBQUMsQ0FBNkM7SUFDakcsSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyx1RUFBdUUsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUN4SCxJQUFJLENBQUMsQ0FBQyxTQUFTLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLDJFQUEyRSxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQUEsQ0FBQztJQUNqSSxPQUFPO1FBQ0wsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO1FBQ2QsUUFBUSxFQUFFLENBQUMsQ0FBQyxTQUFTO0tBQ3RCLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0IsdUNBQXVDLENBQUMsQ0FBc0M7SUFDNUYsSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxxRUFBcUUsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUN0SCxJQUFJLENBQUMsQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLHdFQUF3RSxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQUEsQ0FBQztJQUM3SCxPQUFPO1FBQ1AsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO1FBQ2QsU0FBUyxFQUFFLENBQUMsQ0FBQyxRQUFRO0tBQ3BCLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0IsdUJBQXVCLENBQUMsQ0FBK0I7SUFDckUsSUFBSSxDQUFDLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQywyREFBMkQsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUFBLENBQUM7SUFDL0csT0FBTztRQUNMLE9BQU8sRUFBRSxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0tBQ3ZDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0IseUJBQXlCLENBQUMsQ0FBd0I7SUFDaEUsSUFBSSxDQUFDLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyx5REFBeUQsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUFBLENBQUM7SUFDN0csT0FBTztRQUNQLE9BQU8sRUFBRSxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0tBQ3ZDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0IsK0JBQStCLENBQUMsQ0FBdUM7SUFDckYsSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxpRUFBaUUsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUFBLENBQUM7SUFDbkgsT0FBTztRQUNMLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSztLQUNmLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0IsaUNBQWlDLENBQUMsQ0FBZ0M7SUFDaEYsSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQywrREFBK0QsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUFBLENBQUM7SUFDakgsT0FBTztRQUNQLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSztLQUNiLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0IsOEJBQThCLENBQUMsQ0FBc0M7SUFDbkYsSUFBSSxDQUFDLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxrRUFBa0UsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUFBLENBQUM7SUFDdEgsT0FBTztRQUNMLE9BQU8sRUFBRSxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0tBQ3ZDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0IsZ0NBQWdDLENBQUMsQ0FBK0I7SUFDOUUsSUFBSSxDQUFDLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxnRUFBZ0UsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUFBLENBQUM7SUFDcEgsT0FBTztRQUNQLE9BQU8sRUFBRSxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0tBQ3ZDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0Isc0NBQXNDLENBQUMsQ0FBOEM7SUFDbkcsSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyx3RUFBd0UsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUN6SCxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLHlFQUF5RSxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQUEsQ0FBQztJQUM1SCxPQUFPO1FBQ0wsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO1FBQ2QsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7S0FDcEMsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFnQix3Q0FBd0MsQ0FBQyxDQUF1QztJQUM5RixJQUFJLENBQUMsQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLHNFQUFzRSxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQ3ZILElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsdUVBQXVFLENBQUMsQ0FBQztJQUFDLENBQUM7SUFBQSxDQUFDO0lBQzFILE9BQU87UUFDUCxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUs7UUFDZCxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztLQUNsQyxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLGVBQWUsQ0FBQyxDQUF1QjtJQUNyRCxJQUFJLENBQUMsQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQUEsQ0FBQztJQUN2RyxPQUFPO1FBQ0wsT0FBTyxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0tBQ25DLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0IsaUJBQWlCLENBQUMsQ0FBZ0I7SUFDaEQsSUFBSSxDQUFDLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUFBLENBQUM7SUFDckcsT0FBTztRQUNQLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0tBQ25DLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0IsdUJBQXVCLENBQUMsQ0FBK0I7SUFDckUsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDO0FBRUQsU0FBZ0IseUJBQXlCLENBQUMsQ0FBd0I7SUFDaEUsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDO0FBRUQsU0FBZ0IsZ0JBQWdCLENBQUMsQ0FBd0I7SUFDdkQsSUFBSSxDQUFDLENBQUMsVUFBVSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyx1REFBdUQsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUM3RyxJQUFJLENBQUMsQ0FBQyxZQUFZLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLHlEQUF5RCxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQUEsQ0FBQztJQUNsSCxPQUFPO1FBQ0wsU0FBUyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDMUMsV0FBVyxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO0tBQzNDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0Isa0JBQWtCLENBQUMsQ0FBaUI7SUFDbEQsSUFBSSxDQUFDLENBQUMsU0FBUyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxvREFBb0QsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUN6RyxJQUFJLENBQUMsQ0FBQyxXQUFXLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLHNEQUFzRCxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQUEsQ0FBQztJQUM5RyxPQUFPO1FBQ1AsVUFBVSxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDMUMsWUFBWSxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDO0tBQzNDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0IsZ0JBQWdCLENBQUMsQ0FBd0I7SUFDdkQsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDO0FBRUQsU0FBZ0Isa0JBQWtCLENBQUMsQ0FBaUI7SUFDbEQsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDO0FBRUQsU0FBZ0Isd0JBQXdCLENBQUMsQ0FBZ0M7SUFDdkUsSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQywwREFBMEQsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUFBLENBQUM7SUFDNUcsT0FBTztRQUNMLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0tBQ2pDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0IsMEJBQTBCLENBQUMsQ0FBeUI7SUFDbEUsSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyx3REFBd0QsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUFBLENBQUM7SUFDMUcsT0FBTztRQUNQLEtBQUssRUFBRSxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0tBQ2pDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0IsZ0JBQWdCLENBQUMsQ0FBd0I7SUFDdkQsSUFBSSxDQUFDLENBQUMsWUFBWSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyx5REFBeUQsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUFBLENBQUM7SUFDbEgsT0FBTztRQUNMLFdBQVcsRUFBRSxDQUFDLENBQUMsWUFBWTtLQUM1QixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLGtCQUFrQixDQUFDLENBQWlCO0lBQ2xELElBQUksQ0FBQyxDQUFDLFdBQVcsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsc0RBQXNELENBQUMsQ0FBQztJQUFDLENBQUM7SUFBQSxDQUFDO0lBQzlHLE9BQU87UUFDUCxZQUFZLEVBQUUsQ0FBQyxDQUFDLFdBQVc7S0FDMUIsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFnQix3QkFBd0IsQ0FBQyxDQUFnQztJQUN2RSxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFFRCxTQUFnQiwwQkFBMEIsQ0FBQyxDQUF5QjtJQUNsRSxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFFRCxTQUFnQixnQkFBZ0IsQ0FBQyxDQUF3QjtJQUN2RCxJQUFJLENBQUMsQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLG9EQUFvRCxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQ3ZHLElBQUksQ0FBQyxDQUFDLHdCQUF3QixLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxxRUFBcUUsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUFBLENBQUM7SUFDMUksT0FBTztRQUNMLE9BQU8sRUFBRSxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQ3RDLHFCQUFxQixFQUFFLENBQUMsQ0FBQyx3QkFBd0I7S0FDbEQsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFnQixrQkFBa0IsQ0FBQyxDQUFpQjtJQUNsRCxJQUFJLENBQUMsQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFrRCxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQ3JHLElBQUksQ0FBQyxDQUFDLHFCQUFxQixLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxnRUFBZ0UsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUFBLENBQUM7SUFDbEksT0FBTztRQUNQLE9BQU8sRUFBRSxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQ3hDLHdCQUF3QixFQUFFLENBQUMsQ0FBQyxxQkFBcUI7S0FDaEQsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFnQix3QkFBd0IsQ0FBQyxDQUFnQztJQUN2RSxJQUFJLENBQUMsQ0FBQyxZQUFZLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLGlFQUFpRSxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQ3pILElBQUksQ0FBQyxDQUFDLFlBQVksS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsaUVBQWlFLENBQUMsQ0FBQztJQUFDLENBQUM7SUFDekgsSUFBSSxDQUFDLENBQUMsZ0JBQWdCLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLHFFQUFxRSxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQUEsQ0FBQztJQUNsSSxPQUFPO1FBQ0wsV0FBVyxFQUFFLENBQUMsQ0FBQyxZQUFZO1FBQzNCLFdBQVcsRUFBRSxDQUFDLENBQUMsWUFBWTtRQUMzQixjQUFjLEVBQUUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0tBQ3RELENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0IsMEJBQTBCLENBQUMsQ0FBeUI7SUFDbEUsSUFBSSxDQUFDLENBQUMsV0FBVyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyw4REFBOEQsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUNySCxJQUFJLENBQUMsQ0FBQyxXQUFXLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLDhEQUE4RCxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQ3JILElBQUksQ0FBQyxDQUFDLGNBQWMsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsaUVBQWlFLENBQUMsQ0FBQztJQUFDLENBQUM7SUFBQSxDQUFDO0lBQzVILE9BQU87UUFDUCxZQUFZLEVBQUUsQ0FBQyxDQUFDLFdBQVc7UUFDM0IsWUFBWSxFQUFFLENBQUMsQ0FBQyxXQUFXO1FBQzNCLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7S0FDcEQsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFnQixpQkFBaUIsQ0FBQyxDQUF5QjtJQUN6RCxJQUFJLENBQUMsQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQ3BHLElBQUksQ0FBQyxDQUFDLEVBQUUsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0RBQWdELENBQUMsQ0FBQztJQUFDLENBQUM7SUFBQSxDQUFDO0lBQy9GLE9BQU87UUFDTCxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUNoQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUU7S0FDVCxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLG1CQUFtQixDQUFDLENBQWtCO0lBQ3BELElBQUksQ0FBQyxDQUFDLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsaURBQWlELENBQUMsQ0FBQztJQUFDLENBQUM7SUFDbEcsSUFBSSxDQUFDLENBQUMsRUFBRSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUFBLENBQUM7SUFDN0YsT0FBTztRQUNQLEtBQUssRUFBRSxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ2xDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRTtLQUNQLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0IseUJBQXlCLENBQUMsQ0FBaUM7SUFDekUsSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQywyREFBMkQsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUFBLENBQUM7SUFDN0csT0FBTztRQUNMLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSztLQUNmLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0IsMkJBQTJCLENBQUMsQ0FBMEI7SUFDcEUsSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyx5REFBeUQsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUFBLENBQUM7SUFDM0csT0FBTztRQUNQLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSztLQUNiLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0IsWUFBWSxDQUFDLENBQW9CO0lBQy9DLElBQUksQ0FBQyxDQUFDLGFBQWEsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsc0RBQXNELENBQUMsQ0FBQztJQUFDLENBQUM7SUFDL0csSUFBSSxDQUFDLENBQUMsU0FBUyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUFBLENBQUM7SUFDeEcsT0FBTztRQUNMLFdBQVcsRUFBRSxDQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQy9DLFFBQVEsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0tBQ3pDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0IsY0FBYyxDQUFDLENBQWE7SUFDMUMsSUFBSSxDQUFDLENBQUMsV0FBVyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUN6RyxJQUFJLENBQUMsQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLCtDQUErQyxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQUEsQ0FBQztJQUNwRyxPQUFPO1FBQ1AsYUFBYSxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDL0MsU0FBUyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7S0FDdkMsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFnQixhQUFhLENBQUMsQ0FBcUI7SUFDakQsSUFBSSxDQUFDLENBQUMsV0FBVyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUM1RyxJQUFJLENBQUMsQ0FBQyxXQUFXLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLHFEQUFxRCxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQzVHLElBQUksQ0FBQyxDQUFDLGdCQUFnQixLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQywwREFBMEQsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUFBLENBQUM7SUFDdkgsT0FBTztRQUNMLFVBQVUsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzVDLFVBQVUsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztRQUN2QyxlQUFlLEVBQUUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0tBQ3ZELENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0IsZUFBZSxDQUFDLENBQWM7SUFDNUMsSUFBSSxDQUFDLENBQUMsVUFBVSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUN4RyxJQUFJLENBQUMsQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFrRCxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQ3hHLElBQUksQ0FBQyxDQUFDLGVBQWUsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsdURBQXVELENBQUMsQ0FBQztJQUFDLENBQUM7SUFBQSxDQUFDO0lBQ25ILE9BQU87UUFDUCxXQUFXLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM1QyxXQUFXLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7UUFDekMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztLQUNyRCxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLHFCQUFxQixDQUFDLENBQTZCO0lBQ2pFLElBQUksQ0FBQyxDQUFDLGdCQUFnQixLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxrRUFBa0UsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUM5SCxJQUFJLENBQUMsQ0FBQyxnQkFBZ0IsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsa0VBQWtFLENBQUMsQ0FBQztJQUFDLENBQUM7SUFDOUgsSUFBSSxDQUFDLENBQUMsVUFBVSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyw0REFBNEQsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUNsSCxJQUFJLENBQUMsQ0FBQywyQkFBMkIsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsNkVBQTZFLENBQUMsQ0FBQztJQUFDLENBQUM7SUFBQSxDQUFDO0lBQ3JKLE9BQU87UUFDTCxlQUFlLEVBQUUsQ0FBQyxDQUFDLGdCQUFnQjtRQUNuQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLGdCQUFnQjtRQUNsQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLFVBQVU7UUFDdkIseUJBQXlCLEVBQUUsQ0FBQyxDQUFDLDJCQUEyQjtLQUN6RCxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLHVCQUF1QixDQUFDLENBQXNCO0lBQzVELElBQUksQ0FBQyxDQUFDLGVBQWUsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsK0RBQStELENBQUMsQ0FBQztJQUFDLENBQUM7SUFDMUgsSUFBSSxDQUFDLENBQUMsY0FBYyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyw4REFBOEQsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUN4SCxJQUFJLENBQUMsQ0FBQyxTQUFTLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLHlEQUF5RCxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQzlHLElBQUksQ0FBQyxDQUFDLHlCQUF5QixLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyx5RUFBeUUsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUFBLENBQUM7SUFDL0ksT0FBTztRQUNQLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxlQUFlO1FBQ25DLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxjQUFjO1FBQ2xDLFVBQVUsRUFBRSxDQUFDLENBQUMsU0FBUztRQUN2QiwyQkFBMkIsRUFBRSxDQUFDLENBQUMseUJBQXlCO0tBQ3ZELENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0IsWUFBWSxDQUFDLENBQW9CO0lBQy9DLElBQUksQ0FBQyxDQUFDLGdCQUFnQixLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyx5REFBeUQsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUFBLENBQUM7SUFDdEgsT0FBTztRQUNMLGVBQWUsRUFBRSxDQUFDLENBQUMsZ0JBQWdCO0tBQ3BDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0IsY0FBYyxDQUFDLENBQWE7SUFDMUMsSUFBSSxDQUFDLENBQUMsZUFBZSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxzREFBc0QsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUFBLENBQUM7SUFDbEgsT0FBTztRQUNQLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxlQUFlO0tBQ2xDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0Isb0JBQW9CLENBQUMsQ0FBNEI7SUFDL0QsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyx1REFBdUQsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUFBLENBQUM7SUFDMUcsT0FBTztRQUNMLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0tBQ3BDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0Isc0JBQXNCLENBQUMsQ0FBcUI7SUFDMUQsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUFBLENBQUM7SUFDeEcsT0FBTztRQUNQLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0tBQ2xDLENBQUM7QUFDSixDQUFDIn0=
|
|
2969
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpX3R5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NiaW5kL2dlbmVyYXRlZC9hcGlfdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLG1DQUFtQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBK3FFbkMsa0NBQWtDO0FBQ2xDLHNCQUE2QixDQUFvQixFQUFjO0lBQzdELElBQUksQ0FBQyxDQUFDLFVBQVUsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsbURBQW1ELENBQUMsQ0FBQztJQUFDLENBQUM7SUFDekcsSUFBSSxDQUFDLENBQUMsRUFBRSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUN6RixJQUFJLENBQUMsQ0FBQyxHQUFHLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQzNGLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsK0NBQStDLENBQUMsQ0FBQztJQUFDLENBQUM7SUFBQSxDQUFDO0lBQ2xHLE9BQU87UUFDTCxVQUFVLEVBQUUsQ0FBQyxDQUFDLFVBQVU7UUFDeEIsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFO1FB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
|