@aztec/bb.js 0.0.1-commit.24de95ac → 0.0.1-commit.2e2504e2
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/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 +58 -40
- package/dest/browser/barretenberg/backend.d.ts.map +1 -1
- package/dest/browser/barretenberg/backend.js +143 -94
- package/dest/browser/barretenberg/index.d.ts +3 -5
- package/dest/browser/barretenberg/index.d.ts.map +1 -1
- package/dest/browser/barretenberg/index.js +19 -28
- 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 +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.js +5 -6
- 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 +1 -1
- 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 +5 -4
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +13 -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 +45 -18
- 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 +1 -1
- package/dest/browser/bb_backends/browser/index.js +1 -1
- 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 +12 -7
- package/dest/browser/bb_backends/index.d.ts.map +1 -1
- package/dest/browser/bb_backends/index.js +8 -7
- package/dest/browser/bb_backends/interface.d.ts +1 -1
- package/dest/browser/bb_backends/wasm.d.ts +1 -1
- package/dest/browser/bb_backends/wasm.d.ts.map +1 -1
- package/dest/browser/bb_backends/wasm.js +5 -3
- package/dest/browser/bbapi_exception.d.ts +1 -1
- package/dest/browser/bbapi_exception.d.ts.map +1 -1
- package/dest/browser/bbapi_exception.js +1 -1
- package/dest/browser/bin/index.d.ts +3 -0
- package/dest/browser/bin/index.d.ts.map +1 -0
- package/dest/browser/bin/index.js +11 -0
- package/dest/browser/cbind/generate.d.ts +5 -2
- package/dest/browser/cbind/generate.d.ts.map +1 -1
- package/dest/browser/cbind/generate.js +47 -25
- package/dest/browser/cbind/generated/api_types.d.ts +766 -1687
- package/dest/browser/cbind/generated/api_types.d.ts.map +1 -1
- package/dest/browser/cbind/generated/api_types.js +1465 -1555
- package/dest/browser/cbind/generated/async.d.ts +3 -5
- package/dest/browser/cbind/generated/async.d.ts.map +1 -1
- package/dest/browser/cbind/generated/async.js +14 -33
- package/dest/browser/cbind/generated/curve_constants.d.ts +1 -1
- package/dest/browser/cbind/generated/sync.d.ts +3 -5
- package/dest/browser/cbind/generated/sync.d.ts.map +1 -1
- package/dest/browser/cbind/generated/sync.js +14 -31
- package/dest/browser/cbind/naming.d.ts +16 -0
- package/dest/browser/cbind/naming.d.ts.map +1 -0
- package/dest/browser/cbind/naming.js +24 -0
- package/dest/browser/cbind/rust_codegen.d.ts +26 -0
- package/dest/browser/cbind/rust_codegen.d.ts.map +1 -0
- package/dest/browser/cbind/rust_codegen.js +461 -0
- package/dest/browser/cbind/schema_visitor.d.ts +47 -0
- package/dest/browser/cbind/schema_visitor.d.ts.map +1 -0
- package/dest/browser/cbind/schema_visitor.js +158 -0
- package/dest/browser/cbind/typescript_codegen.d.ts +30 -0
- package/dest/browser/cbind/typescript_codegen.d.ts.map +1 -0
- package/dest/browser/cbind/typescript_codegen.js +365 -0
- 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 +6 -16
- package/dest/browser/crs/net_crs.d.ts.map +1 -1
- package/dest/browser/crs/net_crs.js +35 -7
- package/dest/browser/index.d.ts +3 -2
- package/dest/browser/index.d.ts.map +1 -1
- package/dest/browser/index.js +3 -2
- 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/backend.d.ts +58 -40
- package/dest/node/barretenberg/backend.d.ts.map +1 -1
- package/dest/node/barretenberg/backend.js +143 -94
- package/dest/node/barretenberg/backend.test.d.ts +2 -0
- package/dest/node/barretenberg/backend.test.d.ts.map +1 -0
- package/dest/node/barretenberg/backend.test.js +103 -0
- package/dest/node/barretenberg/blake2s.test.d.ts +1 -1
- package/dest/node/barretenberg/blake2s.test.js +2 -2
- package/dest/node/barretenberg/index.d.ts +3 -5
- package/dest/node/barretenberg/index.d.ts.map +1 -1
- package/dest/node/barretenberg/index.js +19 -28
- package/dest/node/barretenberg/pedersen.test.d.ts +1 -1
- package/dest/node/barretenberg/pedersen.test.js +2 -2
- package/dest/node/barretenberg/poseidon.bench.test.d.ts +1 -1
- package/dest/node/barretenberg/poseidon.bench.test.js +80 -79
- package/dest/node/barretenberg/poseidon.test.d.ts +1 -1
- package/dest/node/barretenberg/poseidon.test.js +2 -2
- 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 +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.js +5 -6
- 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 +1 -1
- 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 +5 -4
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +13 -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 +45 -18
- 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 +1 -1
- package/dest/node/bb_backends/browser/index.d.ts +1 -1
- package/dest/node/bb_backends/browser/index.js +1 -1
- 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 +12 -7
- package/dest/node/bb_backends/index.d.ts.map +1 -1
- package/dest/node/bb_backends/index.js +8 -7
- package/dest/node/bb_backends/interface.d.ts +1 -1
- package/dest/node/bb_backends/node/index.d.ts +1 -1
- package/dest/node/bb_backends/node/index.d.ts.map +1 -1
- package/dest/node/bb_backends/node/index.js +17 -11
- package/dest/node/bb_backends/node/native_pipe.d.ts +1 -1
- package/dest/node/bb_backends/node/native_pipe.d.ts.map +1 -1
- package/dest/node/bb_backends/node/native_pipe.js +11 -10
- package/dest/node/bb_backends/node/native_shm.d.ts +4 -3
- package/dest/node/bb_backends/node/native_shm.d.ts.map +1 -1
- package/dest/node/bb_backends/node/native_shm.js +85 -39
- 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 +233 -0
- package/dest/node/bb_backends/node/native_socket.d.ts +2 -2
- package/dest/node/bb_backends/node/native_socket.d.ts.map +1 -1
- package/dest/node/bb_backends/node/native_socket.js +46 -32
- package/dest/node/bb_backends/node/platform.d.ts +1 -1
- package/dest/node/bb_backends/node/platform.d.ts.map +1 -1
- package/dest/node/bb_backends/node/platform.js +7 -2
- package/dest/node/bb_backends/wasm.d.ts +1 -1
- package/dest/node/bb_backends/wasm.d.ts.map +1 -1
- package/dest/node/bb_backends/wasm.js +5 -3
- 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 +1 -1
- package/dest/node/bbapi_exception.d.ts.map +1 -1
- package/dest/node/bbapi_exception.js +1 -1
- 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 +5 -2
- package/dest/node/cbind/generate.d.ts.map +1 -1
- package/dest/node/cbind/generate.js +47 -25
- package/dest/node/cbind/generated/api_types.d.ts +766 -1687
- package/dest/node/cbind/generated/api_types.d.ts.map +1 -1
- package/dest/node/cbind/generated/api_types.js +1465 -1555
- package/dest/node/cbind/generated/async.d.ts +3 -5
- package/dest/node/cbind/generated/async.d.ts.map +1 -1
- package/dest/node/cbind/generated/async.js +14 -33
- package/dest/node/cbind/generated/curve_constants.d.ts +1 -1
- package/dest/node/cbind/generated/sync.d.ts +3 -5
- package/dest/node/cbind/generated/sync.d.ts.map +1 -1
- package/dest/node/cbind/generated/sync.js +14 -31
- package/dest/node/cbind/naming.d.ts +16 -0
- package/dest/node/cbind/naming.d.ts.map +1 -0
- package/dest/node/cbind/naming.js +24 -0
- package/dest/node/cbind/rust_codegen.d.ts +26 -0
- package/dest/node/cbind/rust_codegen.d.ts.map +1 -0
- package/dest/node/cbind/rust_codegen.js +461 -0
- package/dest/node/cbind/schema_visitor.d.ts +47 -0
- package/dest/node/cbind/schema_visitor.d.ts.map +1 -0
- package/dest/node/cbind/schema_visitor.js +158 -0
- package/dest/node/cbind/typescript_codegen.d.ts +30 -0
- package/dest/node/cbind/typescript_codegen.d.ts.map +1 -0
- package/dest/node/cbind/typescript_codegen.js +365 -0
- 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 +6 -16
- package/dest/node/crs/net_crs.d.ts.map +1 -1
- package/dest/node/crs/net_crs.js +35 -7
- package/dest/node/crs/net_crs.test.d.ts +2 -0
- package/dest/node/crs/net_crs.test.d.ts.map +1 -0
- package/dest/node/crs/net_crs.test.js +39 -0
- 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 +3 -2
- package/dest/node/index.d.ts.map +1 -1
- package/dest/node/index.js +3 -2
- 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 +58 -40
- package/dest/node-cjs/barretenberg/backend.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg/backend.js +151 -100
- package/dest/node-cjs/barretenberg/backend.test.d.ts +2 -0
- package/dest/node-cjs/barretenberg/backend.test.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg/backend.test.js +105 -0
- package/dest/node-cjs/barretenberg/blake2s.test.d.ts +1 -1
- package/dest/node-cjs/barretenberg/blake2s.test.js +6 -6
- package/dest/node-cjs/barretenberg/index.d.ts +3 -5
- package/dest/node-cjs/barretenberg/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg/index.js +27 -34
- package/dest/node-cjs/barretenberg/pedersen.test.d.ts +1 -1
- package/dest/node-cjs/barretenberg/pedersen.test.js +9 -9
- package/dest/node-cjs/barretenberg/poseidon.bench.test.d.ts +1 -1
- package/dest/node-cjs/barretenberg/poseidon.bench.test.js +89 -88
- package/dest/node-cjs/barretenberg/poseidon.test.d.ts +1 -1
- package/dest/node-cjs/barretenberg/poseidon.test.js +4 -4
- 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 +1 -1
- 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 +7 -8
- 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 +1 -1
- 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 +5 -4
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +13 -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 +45 -18
- 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 +1 -1
- package/dest/node-cjs/bb_backends/browser/index.d.ts +1 -1
- package/dest/node-cjs/bb_backends/browser/index.js +1 -1
- 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 +12 -7
- package/dest/node-cjs/bb_backends/index.d.ts.map +1 -1
- package/dest/node-cjs/bb_backends/index.js +6 -6
- package/dest/node-cjs/bb_backends/interface.d.ts +1 -1
- package/dest/node-cjs/bb_backends/node/index.d.ts +1 -1
- package/dest/node-cjs/bb_backends/node/index.d.ts.map +1 -1
- package/dest/node-cjs/bb_backends/node/index.js +17 -11
- package/dest/node-cjs/bb_backends/node/native_pipe.d.ts +1 -1
- package/dest/node-cjs/bb_backends/node/native_pipe.d.ts.map +1 -1
- package/dest/node-cjs/bb_backends/node/native_pipe.js +11 -10
- package/dest/node-cjs/bb_backends/node/native_shm.d.ts +4 -3
- package/dest/node-cjs/bb_backends/node/native_shm.d.ts.map +1 -1
- package/dest/node-cjs/bb_backends/node/native_shm.js +85 -39
- 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 +237 -0
- package/dest/node-cjs/bb_backends/node/native_socket.d.ts +2 -2
- package/dest/node-cjs/bb_backends/node/native_socket.d.ts.map +1 -1
- package/dest/node-cjs/bb_backends/node/native_socket.js +46 -32
- package/dest/node-cjs/bb_backends/node/platform.d.ts +1 -1
- package/dest/node-cjs/bb_backends/node/platform.d.ts.map +1 -1
- package/dest/node-cjs/bb_backends/node/platform.js +8 -3
- package/dest/node-cjs/bb_backends/wasm.d.ts +1 -1
- package/dest/node-cjs/bb_backends/wasm.d.ts.map +1 -1
- package/dest/node-cjs/bb_backends/wasm.js +5 -3
- 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 +1 -1
- package/dest/node-cjs/bbapi_exception.d.ts.map +1 -1
- package/dest/node-cjs/bbapi_exception.js +1 -1
- 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/bin/index.d.ts.map +1 -0
- package/dest/node-cjs/bin/index.js +13 -0
- package/dest/node-cjs/cbind/generate.d.ts +5 -2
- package/dest/node-cjs/cbind/generate.d.ts.map +1 -1
- package/dest/node-cjs/cbind/generate.js +47 -25
- package/dest/node-cjs/cbind/generated/api_types.d.ts +766 -1687
- package/dest/node-cjs/cbind/generated/api_types.d.ts.map +1 -1
- package/dest/node-cjs/cbind/generated/api_types.js +1671 -1771
- package/dest/node-cjs/cbind/generated/async.d.ts +3 -5
- package/dest/node-cjs/cbind/generated/async.d.ts.map +1 -1
- package/dest/node-cjs/cbind/generated/async.js +13 -32
- package/dest/node-cjs/cbind/generated/curve_constants.d.ts +1 -1
- package/dest/node-cjs/cbind/generated/sync.d.ts +3 -5
- package/dest/node-cjs/cbind/generated/sync.d.ts.map +1 -1
- package/dest/node-cjs/cbind/generated/sync.js +13 -30
- package/dest/node-cjs/cbind/naming.d.ts +16 -0
- package/dest/node-cjs/cbind/naming.d.ts.map +1 -0
- package/dest/node-cjs/cbind/naming.js +28 -0
- package/dest/node-cjs/cbind/rust_codegen.d.ts +26 -0
- package/dest/node-cjs/cbind/rust_codegen.d.ts.map +1 -0
- package/dest/node-cjs/cbind/rust_codegen.js +465 -0
- package/dest/node-cjs/cbind/schema_visitor.d.ts +47 -0
- package/dest/node-cjs/cbind/schema_visitor.d.ts.map +1 -0
- package/dest/node-cjs/cbind/schema_visitor.js +162 -0
- package/dest/node-cjs/cbind/typescript_codegen.d.ts +30 -0
- package/dest/node-cjs/cbind/typescript_codegen.d.ts.map +1 -0
- package/dest/node-cjs/cbind/typescript_codegen.js +369 -0
- 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 +6 -16
- package/dest/node-cjs/crs/net_crs.d.ts.map +1 -1
- package/dest/node-cjs/crs/net_crs.js +36 -7
- package/dest/node-cjs/crs/net_crs.test.d.ts +2 -0
- package/dest/node-cjs/crs/net_crs.test.d.ts.map +1 -0
- package/dest/node-cjs/crs/net_crs.test.js +41 -0
- 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 +3 -2
- package/dest/node-cjs/index.d.ts.map +1 -1
- package/dest/node-cjs/index.js +12 -8
- 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 +8 -6
- package/src/barretenberg/backend.test.ts +122 -0
- package/src/barretenberg/backend.ts +170 -122
- package/src/barretenberg/blake2s.test.ts +1 -1
- package/src/barretenberg/index.ts +25 -28
- package/src/barretenberg/pedersen.test.ts +1 -1
- package/src/barretenberg/poseidon.bench.test.ts +160 -157
- package/src/barretenberg/poseidon.test.ts +1 -1
- package/src/{types → barretenberg/testing}/fields.ts +12 -26
- package/src/barretenberg_wasm/barretenberg_wasm_base/index.ts +1 -2
- 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/index.ts +38 -5
- 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.ts +1 -2
- package/src/bb_backends/browser/platform.ts +11 -0
- package/src/bb_backends/index.ts +12 -6
- package/src/bb_backends/node/index.ts +23 -10
- package/src/bb_backends/node/native_shm.ts +81 -38
- package/src/bb_backends/node/native_shm_async.ts +262 -0
- package/src/bb_backends/node/native_socket.ts +35 -19
- package/src/bb_backends/node/platform.ts +6 -1
- package/src/bb_backends/wasm.ts +1 -2
- package/src/bbapi/exception_handling.test.ts +54 -0
- package/src/bin/index.ts +14 -0
- package/src/cbind/generate.ts +51 -32
- package/src/cbind/generated/api_types.ts +1612 -2833
- package/src/cbind/generated/async.ts +13 -34
- package/src/cbind/generated/sync.ts +13 -32
- package/src/cbind/naming.ts +27 -0
- package/src/cbind/rust_codegen.ts +504 -0
- package/src/cbind/schema_visitor.ts +219 -0
- package/src/cbind/typescript_codegen.ts +419 -0
- package/src/crs/net_crs.test.ts +47 -0
- package/src/crs/net_crs.ts +45 -14
- package/src/crs/node/index.ts +4 -5
- package/src/index.ts +6 -0
- package/dest/browser/bb_backends/sync_to_async_adapter.d.ts +0 -15
- package/dest/browser/bb_backends/sync_to_async_adapter.d.ts.map +0 -1
- package/dest/browser/bb_backends/sync_to_async_adapter.js +0 -20
- 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/schema_compiler.d.ts +0 -68
- package/dest/browser/cbind/schema_compiler.d.ts.map +0 -1
- package/dest/browser/cbind/schema_compiler.js +0 -599
- 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/index.d.ts +0 -2
- package/dest/browser/serialize/index.d.ts.map +0 -1
- package/dest/browser/serialize/index.js +0 -2
- package/dest/browser/serialize/serialize.d.ts +0 -18
- package/dest/browser/serialize/serialize.d.ts.map +0 -1
- package/dest/browser/serialize/serialize.js +0 -72
- package/dest/browser/types/fields.d.ts +0 -23
- package/dest/browser/types/fields.d.ts.map +0 -1
- package/dest/browser/types/fields.js +0 -61
- package/dest/browser/types/index.d.ts +0 -3
- package/dest/browser/types/index.d.ts.map +0 -1
- package/dest/browser/types/index.js +0 -3
- package/dest/browser/types/point.d.ts +0 -18
- package/dest/browser/types/point.d.ts.map +0 -1
- package/dest/browser/types/point.js +0 -28
- package/dest/node/bb_backends/sync_to_async_adapter.d.ts +0 -15
- package/dest/node/bb_backends/sync_to_async_adapter.d.ts.map +0 -1
- package/dest/node/bb_backends/sync_to_async_adapter.js +0 -20
- 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/cbind/schema_compiler.d.ts +0 -68
- package/dest/node/cbind/schema_compiler.d.ts.map +0 -1
- package/dest/node/cbind/schema_compiler.js +0 -599
- 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/serialize/index.d.ts +0 -2
- package/dest/node/serialize/index.d.ts.map +0 -1
- package/dest/node/serialize/index.js +0 -2
- package/dest/node/serialize/serialize.d.ts +0 -18
- package/dest/node/serialize/serialize.d.ts.map +0 -1
- package/dest/node/serialize/serialize.js +0 -72
- package/dest/node/types/fields.d.ts +0 -23
- package/dest/node/types/fields.d.ts.map +0 -1
- package/dest/node/types/fields.js +0 -61
- package/dest/node/types/index.d.ts +0 -3
- package/dest/node/types/index.d.ts.map +0 -1
- package/dest/node/types/index.js +0 -3
- package/dest/node/types/point.d.ts +0 -18
- package/dest/node/types/point.d.ts.map +0 -1
- package/dest/node/types/point.js +0 -28
- package/dest/node-cjs/bb_backends/sync_to_async_adapter.d.ts +0 -15
- package/dest/node-cjs/bb_backends/sync_to_async_adapter.d.ts.map +0 -1
- package/dest/node-cjs/bb_backends/sync_to_async_adapter.js +0 -24
- 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/cbind/schema_compiler.d.ts +0 -68
- package/dest/node-cjs/cbind/schema_compiler.d.ts.map +0 -1
- package/dest/node-cjs/cbind/schema_compiler.js +0 -606
- 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/serialize/index.d.ts +0 -2
- package/dest/node-cjs/serialize/index.d.ts.map +0 -1
- package/dest/node-cjs/serialize/index.js +0 -5
- package/dest/node-cjs/serialize/serialize.d.ts +0 -18
- package/dest/node-cjs/serialize/serialize.d.ts.map +0 -1
- package/dest/node-cjs/serialize/serialize.js +0 -82
- package/dest/node-cjs/types/fields.d.ts +0 -23
- package/dest/node-cjs/types/fields.d.ts.map +0 -1
- package/dest/node-cjs/types/fields.js +0 -65
- package/dest/node-cjs/types/index.d.ts +0 -3
- package/dest/node-cjs/types/index.d.ts.map +0 -1
- package/dest/node-cjs/types/index.js +0 -6
- package/dest/node-cjs/types/point.d.ts +0 -18
- package/dest/node-cjs/types/point.d.ts.map +0 -1
- package/dest/node-cjs/types/point.js +0 -32
- package/src/bb_backends/sync_to_async_adapter.ts +0 -21
- package/src/cbind/schema_compiler.ts +0 -745
- 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/serialize/index.ts +0 -1
- package/src/serialize/serialize.ts +0 -75
- package/src/types/index.ts +0 -2
- package/src/types/point.ts +0 -32
- /package/src/{bigint-array/index.ts → barretenberg/testing/bigint-buffer.ts} +0 -0
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import { Barretenberg } from './index.js';
|
|
2
1
|
import { uint8ArrayToHex, hexToUint8Array } from '../proof/index.js';
|
|
3
2
|
import { fromChonkProof, toChonkProof } from '../cbind/generated/api_types.js';
|
|
4
3
|
import { ungzip } from 'pako';
|
|
5
|
-
import { Buffer } from 'buffer';
|
|
6
4
|
import { Decoder, Encoder } from 'msgpackr';
|
|
7
5
|
export class AztecClientBackendError extends Error {
|
|
8
6
|
constructor(message) {
|
|
@@ -10,6 +8,63 @@ export class AztecClientBackendError extends Error {
|
|
|
10
8
|
}
|
|
11
9
|
}
|
|
12
10
|
function getProofSettingsFromOptions(options) {
|
|
11
|
+
// Check for conflicting options - verifierTarget should not be combined with legacy options
|
|
12
|
+
if (options?.verifierTarget) {
|
|
13
|
+
const legacyOptions = [options.keccak, options.keccakZK, options.starknet, options.starknetZK].filter(Boolean);
|
|
14
|
+
if (legacyOptions.length > 0) {
|
|
15
|
+
throw new Error('Cannot use verifierTarget with legacy options (keccak, keccakZK, starknet, starknetZK). ' +
|
|
16
|
+
'Use verifierTarget alone.');
|
|
17
|
+
}
|
|
18
|
+
switch (options.verifierTarget) {
|
|
19
|
+
case 'evm':
|
|
20
|
+
return { ipaAccumulation: false, oracleHashType: 'keccak', disableZk: false, optimizedSolidityVerifier: false };
|
|
21
|
+
case 'evm-no-zk':
|
|
22
|
+
return { ipaAccumulation: false, oracleHashType: 'keccak', disableZk: true, optimizedSolidityVerifier: false };
|
|
23
|
+
case 'noir-recursive':
|
|
24
|
+
return {
|
|
25
|
+
ipaAccumulation: false,
|
|
26
|
+
oracleHashType: 'poseidon2',
|
|
27
|
+
disableZk: false,
|
|
28
|
+
optimizedSolidityVerifier: false,
|
|
29
|
+
};
|
|
30
|
+
case 'noir-recursive-no-zk':
|
|
31
|
+
return {
|
|
32
|
+
ipaAccumulation: false,
|
|
33
|
+
oracleHashType: 'poseidon2',
|
|
34
|
+
disableZk: true,
|
|
35
|
+
optimizedSolidityVerifier: false,
|
|
36
|
+
};
|
|
37
|
+
case 'noir-rollup':
|
|
38
|
+
return {
|
|
39
|
+
ipaAccumulation: true,
|
|
40
|
+
oracleHashType: 'poseidon2',
|
|
41
|
+
disableZk: false,
|
|
42
|
+
optimizedSolidityVerifier: false,
|
|
43
|
+
};
|
|
44
|
+
case 'noir-rollup-no-zk':
|
|
45
|
+
return {
|
|
46
|
+
ipaAccumulation: true,
|
|
47
|
+
oracleHashType: 'poseidon2',
|
|
48
|
+
disableZk: true,
|
|
49
|
+
optimizedSolidityVerifier: false,
|
|
50
|
+
};
|
|
51
|
+
case 'starknet':
|
|
52
|
+
return {
|
|
53
|
+
ipaAccumulation: false,
|
|
54
|
+
oracleHashType: 'starknet',
|
|
55
|
+
disableZk: false,
|
|
56
|
+
optimizedSolidityVerifier: false,
|
|
57
|
+
};
|
|
58
|
+
case 'starknet-no-zk':
|
|
59
|
+
return {
|
|
60
|
+
ipaAccumulation: false,
|
|
61
|
+
oracleHashType: 'starknet',
|
|
62
|
+
disableZk: true,
|
|
63
|
+
optimizedSolidityVerifier: false,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
// Legacy options support (deprecated)
|
|
13
68
|
return {
|
|
14
69
|
ipaAccumulation: false,
|
|
15
70
|
oracleHashType: options?.keccak || options?.keccakZK
|
|
@@ -17,27 +72,16 @@ function getProofSettingsFromOptions(options) {
|
|
|
17
72
|
: options?.starknet || options?.starknetZK
|
|
18
73
|
? 'starknet'
|
|
19
74
|
: 'poseidon2',
|
|
20
|
-
// TODO no current way to target non-zk poseidon2 hash
|
|
21
75
|
disableZk: options?.keccak || options?.starknet ? true : false,
|
|
22
76
|
optimizedSolidityVerifier: false,
|
|
23
77
|
};
|
|
24
78
|
}
|
|
25
79
|
export class UltraHonkVerifierBackend {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
this.
|
|
29
|
-
}
|
|
30
|
-
/** @ignore */
|
|
31
|
-
async instantiate() {
|
|
32
|
-
if (!this.api) {
|
|
33
|
-
const api = await Barretenberg.new(this.backendOptions);
|
|
34
|
-
const honkRecursion = true;
|
|
35
|
-
await api.initSRSForCircuitSize(0);
|
|
36
|
-
this.api = api;
|
|
37
|
-
}
|
|
80
|
+
api;
|
|
81
|
+
constructor(api) {
|
|
82
|
+
this.api = api;
|
|
38
83
|
}
|
|
39
84
|
async verifyProof(proofData, options) {
|
|
40
|
-
await this.instantiate();
|
|
41
85
|
const proofFrs = [];
|
|
42
86
|
for (let i = 0; i < proofData.proof.length; i += 32) {
|
|
43
87
|
proofFrs.push(proofData.proof.slice(i, i + 32));
|
|
@@ -50,37 +94,26 @@ export class UltraHonkVerifierBackend {
|
|
|
50
94
|
});
|
|
51
95
|
return verified;
|
|
52
96
|
}
|
|
53
|
-
destroy() {
|
|
54
|
-
if (!this.api) {
|
|
55
|
-
return Promise.resolve();
|
|
56
|
-
}
|
|
57
|
-
return this.api.destroy();
|
|
58
|
-
}
|
|
59
97
|
}
|
|
60
98
|
export class UltraHonkBackend {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
99
|
+
api;
|
|
100
|
+
// These type assertions are used so that we don't
|
|
101
|
+
// have to initialize `api` in the constructor.
|
|
102
|
+
// These are initialized asynchronously in the `init` function,
|
|
103
|
+
// constructors cannot be asynchronous which is why we do this.
|
|
104
|
+
acirUncompressedBytecode;
|
|
105
|
+
constructor(acirBytecode, api) {
|
|
106
|
+
this.api = api;
|
|
64
107
|
this.acirUncompressedBytecode = acirToUint8Array(acirBytecode);
|
|
65
108
|
}
|
|
66
|
-
/** @ignore */
|
|
67
|
-
async instantiate() {
|
|
68
|
-
if (!this.api) {
|
|
69
|
-
const api = await Barretenberg.new(this.backendOptions);
|
|
70
|
-
const honkRecursion = true;
|
|
71
|
-
await api.acirInitSRS(this.acirUncompressedBytecode, this.circuitOptions.recursive, honkRecursion);
|
|
72
|
-
this.api = api;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
109
|
async generateProof(compressedWitness, options) {
|
|
76
|
-
await this.instantiate();
|
|
77
110
|
const witness = ungzip(compressedWitness);
|
|
78
111
|
const { proof, publicInputs } = await this.api.circuitProve({
|
|
79
112
|
witness,
|
|
80
113
|
circuit: {
|
|
81
114
|
name: 'circuit',
|
|
82
|
-
bytecode:
|
|
83
|
-
verificationKey:
|
|
115
|
+
bytecode: this.acirUncompressedBytecode,
|
|
116
|
+
verificationKey: new Uint8Array(0), // Empty VK - lower performance.
|
|
84
117
|
},
|
|
85
118
|
settings: getProofSettingsFromOptions(options),
|
|
86
119
|
});
|
|
@@ -93,7 +126,6 @@ export class UltraHonkBackend {
|
|
|
93
126
|
return { proof: flatProof, publicInputs: publicInputs.map(uint8ArrayToHex) };
|
|
94
127
|
}
|
|
95
128
|
async verifyProof(proofData, options) {
|
|
96
|
-
await this.instantiate();
|
|
97
129
|
const proofFrs = [];
|
|
98
130
|
for (let i = 0; i < proofData.proof.length; i += 32) {
|
|
99
131
|
proofFrs.push(proofData.proof.slice(i, i + 32));
|
|
@@ -115,11 +147,10 @@ export class UltraHonkBackend {
|
|
|
115
147
|
return verified;
|
|
116
148
|
}
|
|
117
149
|
async getVerificationKey(options) {
|
|
118
|
-
await this.instantiate();
|
|
119
150
|
const vkResult = await this.api.circuitComputeVk({
|
|
120
151
|
circuit: {
|
|
121
152
|
name: 'circuit',
|
|
122
|
-
bytecode:
|
|
153
|
+
bytecode: this.acirUncompressedBytecode,
|
|
123
154
|
},
|
|
124
155
|
settings: getProofSettingsFromOptions(options),
|
|
125
156
|
});
|
|
@@ -127,7 +158,6 @@ export class UltraHonkBackend {
|
|
|
127
158
|
}
|
|
128
159
|
/** @description Returns a solidity verifier */
|
|
129
160
|
async getSolidityVerifier(vk, options) {
|
|
130
|
-
await this.instantiate();
|
|
131
161
|
const result = await this.api.circuitWriteSolidityVerifier({
|
|
132
162
|
verificationKey: vk,
|
|
133
163
|
settings: getProofSettingsFromOptions(options),
|
|
@@ -139,8 +169,7 @@ export class UltraHonkBackend {
|
|
|
139
169
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
140
170
|
_proof,
|
|
141
171
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
142
|
-
_numOfPublicInputs) {
|
|
143
|
-
await this.instantiate();
|
|
172
|
+
_numOfPublicInputs, options) {
|
|
144
173
|
// TODO(https://github.com/noir-lang/noir/issues/5661): This needs to be updated to handle recursive aggregation.
|
|
145
174
|
// There is still a proofAsFields method but we could consider getting rid of it as the proof itself
|
|
146
175
|
// is a list of field elements.
|
|
@@ -148,14 +177,12 @@ export class UltraHonkBackend {
|
|
|
148
177
|
// inserted at an offset.
|
|
149
178
|
// const proof = reconstructProofWithPublicInputs(proofData);
|
|
150
179
|
// const proofAsFields = (await this.api.acirProofAsFieldsUltraHonk(proof)).slice(numOfPublicInputs);
|
|
151
|
-
// TODO: perhaps we should put this in the init function. Need to benchmark
|
|
152
|
-
// TODO how long it takes.
|
|
153
180
|
const vkResult = await this.api.circuitComputeVk({
|
|
154
181
|
circuit: {
|
|
155
182
|
name: 'circuit',
|
|
156
|
-
bytecode:
|
|
183
|
+
bytecode: this.acirUncompressedBytecode,
|
|
157
184
|
},
|
|
158
|
-
settings: getProofSettingsFromOptions(
|
|
185
|
+
settings: getProofSettingsFromOptions(options),
|
|
159
186
|
});
|
|
160
187
|
// Convert VK bytes to field elements (32-byte chunks)
|
|
161
188
|
const vkAsFields = [];
|
|
@@ -173,25 +200,17 @@ export class UltraHonkBackend {
|
|
|
173
200
|
vkHash: uint8ArrayToHex(vkResult.hash),
|
|
174
201
|
};
|
|
175
202
|
}
|
|
176
|
-
async destroy() {
|
|
177
|
-
if (!this.api) {
|
|
178
|
-
return;
|
|
179
|
-
}
|
|
180
|
-
await this.api.destroy();
|
|
181
|
-
}
|
|
182
203
|
}
|
|
183
204
|
export class AztecClientBackend {
|
|
184
|
-
|
|
205
|
+
acirBuf;
|
|
206
|
+
api;
|
|
207
|
+
// These type assertions are used so that we don't
|
|
208
|
+
// have to initialize `api` in the constructor.
|
|
209
|
+
// These are initialized asynchronously in the `init` function,
|
|
210
|
+
// constructors cannot be asynchronous which is why we do this.
|
|
211
|
+
constructor(acirBuf, api) {
|
|
185
212
|
this.acirBuf = acirBuf;
|
|
186
|
-
this.
|
|
187
|
-
}
|
|
188
|
-
/** @ignore */
|
|
189
|
-
async instantiate() {
|
|
190
|
-
if (!this.api) {
|
|
191
|
-
const api = await Barretenberg.new(this.options);
|
|
192
|
-
await api.initSRSChonk();
|
|
193
|
-
this.api = api;
|
|
194
|
-
}
|
|
213
|
+
this.api = api;
|
|
195
214
|
}
|
|
196
215
|
async prove(witnessBuf, vksBuf = []) {
|
|
197
216
|
if (vksBuf.length !== 0 && this.acirBuf.length !== witnessBuf.length) {
|
|
@@ -201,26 +220,25 @@ export class AztecClientBackend {
|
|
|
201
220
|
// NOTE: we allow 0 as an explicit 'I have no VKs'. This is a deprecated feature.
|
|
202
221
|
throw new AztecClientBackendError('Witness and VKs must have the same stack depth!');
|
|
203
222
|
}
|
|
204
|
-
await this.instantiate();
|
|
205
223
|
// Queue IVC start with the number of circuits
|
|
206
224
|
this.api.chonkStart({ numCircuits: this.acirBuf.length });
|
|
207
225
|
// Queue load and accumulate for each circuit
|
|
208
226
|
for (let i = 0; i < this.acirBuf.length; i++) {
|
|
209
227
|
const bytecode = this.acirBuf[i];
|
|
210
|
-
const witness = witnessBuf[i] ||
|
|
211
|
-
const vk = vksBuf[i] ||
|
|
228
|
+
const witness = witnessBuf[i] || new Uint8Array(0);
|
|
229
|
+
const vk = vksBuf[i] || new Uint8Array(0);
|
|
212
230
|
const functionName = `unknown_wasm_${i}`;
|
|
213
231
|
// Load the circuit
|
|
214
232
|
this.api.chonkLoad({
|
|
215
233
|
circuit: {
|
|
216
234
|
name: functionName,
|
|
217
|
-
bytecode:
|
|
218
|
-
verificationKey:
|
|
235
|
+
bytecode: bytecode,
|
|
236
|
+
verificationKey: vk,
|
|
219
237
|
},
|
|
220
238
|
});
|
|
221
239
|
// Accumulate with witness
|
|
222
240
|
this.api.chonkAccumulate({
|
|
223
|
-
witness
|
|
241
|
+
witness,
|
|
224
242
|
});
|
|
225
243
|
}
|
|
226
244
|
// Generate the proof (and wait for all previous steps to finish)
|
|
@@ -228,7 +246,7 @@ export class AztecClientBackend {
|
|
|
228
246
|
// The API currently expects a msgpack-encoded API.
|
|
229
247
|
const proof = new Encoder({ useRecords: false }).encode(fromChonkProof(proveResult.proof));
|
|
230
248
|
// Generate the VK
|
|
231
|
-
const vkResult = await this.api.
|
|
249
|
+
const vkResult = await this.api.chonkComputeVk({
|
|
232
250
|
circuit: {
|
|
233
251
|
name: 'hiding',
|
|
234
252
|
bytecode: this.acirBuf[this.acirBuf.length - 1],
|
|
@@ -237,26 +255,35 @@ export class AztecClientBackend {
|
|
|
237
255
|
const proofFields = [
|
|
238
256
|
proveResult.proof.megaProof,
|
|
239
257
|
proveResult.proof.goblinProof.mergeProof,
|
|
240
|
-
proveResult.proof.goblinProof.eccvmProof
|
|
241
|
-
proveResult.proof.goblinProof.
|
|
258
|
+
proveResult.proof.goblinProof.eccvmProof,
|
|
259
|
+
proveResult.proof.goblinProof.ipaProof,
|
|
242
260
|
proveResult.proof.goblinProof.translatorProof,
|
|
243
261
|
].flat();
|
|
244
|
-
//
|
|
245
|
-
if (!(await this.
|
|
262
|
+
// Verify using native proof directly to avoid redundant encode/decode cycle
|
|
263
|
+
if (!(await this.verifyNative(proveResult.proof, vkResult.bytes))) {
|
|
246
264
|
throw new AztecClientBackendError('Failed to verify the private (Chonk) transaction proof!');
|
|
247
265
|
}
|
|
248
266
|
return [proofFields, proof, vkResult.bytes];
|
|
249
267
|
}
|
|
250
268
|
async verify(proof, vk) {
|
|
251
|
-
await this.instantiate();
|
|
252
269
|
const result = await this.api.chonkVerify({
|
|
253
270
|
proof: toChonkProof(new Decoder({ useRecords: false }).decode(proof)),
|
|
254
|
-
vk
|
|
271
|
+
vk,
|
|
272
|
+
});
|
|
273
|
+
return result.valid;
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Internal verification using native ChonkProof type.
|
|
277
|
+
* Avoids encode/decode cycle when called from prove().
|
|
278
|
+
*/
|
|
279
|
+
async verifyNative(proof, vk) {
|
|
280
|
+
const result = await this.api.chonkVerify({
|
|
281
|
+
proof,
|
|
282
|
+
vk,
|
|
255
283
|
});
|
|
256
284
|
return result.valid;
|
|
257
285
|
}
|
|
258
286
|
async gates() {
|
|
259
|
-
await this.instantiate();
|
|
260
287
|
const circuitSizes = [];
|
|
261
288
|
for (const buf of this.acirBuf) {
|
|
262
289
|
const gates = await this.api.chonkStats({
|
|
@@ -270,32 +297,54 @@ export class AztecClientBackend {
|
|
|
270
297
|
}
|
|
271
298
|
return circuitSizes;
|
|
272
299
|
}
|
|
273
|
-
async destroy() {
|
|
274
|
-
if (!this.api) {
|
|
275
|
-
return;
|
|
276
|
-
}
|
|
277
|
-
await this.api.destroy();
|
|
278
|
-
}
|
|
279
300
|
}
|
|
280
301
|
// Converts bytecode from a base64 string to a Uint8Array
|
|
281
302
|
function acirToUint8Array(base64EncodedBytecode) {
|
|
282
303
|
const compressedByteCode = base64Decode(base64EncodedBytecode);
|
|
283
304
|
return ungzip(compressedByteCode);
|
|
284
305
|
}
|
|
285
|
-
//
|
|
286
|
-
// see if we are in the nodeJs environment or the browser environment.
|
|
306
|
+
// Base64 decode using atob (works in both browser and Node.js 18+)
|
|
287
307
|
function base64Decode(input) {
|
|
288
|
-
if (typeof
|
|
289
|
-
// Node.js environment
|
|
290
|
-
const b = Buffer.from(input, 'base64');
|
|
291
|
-
return new Uint8Array(b.buffer, b.byteOffset, b.byteLength);
|
|
292
|
-
}
|
|
293
|
-
else if (typeof atob === 'function') {
|
|
294
|
-
// Browser environment
|
|
308
|
+
if (typeof atob === 'function') {
|
|
295
309
|
return Uint8Array.from(atob(input), c => c.charCodeAt(0));
|
|
296
310
|
}
|
|
297
311
|
else {
|
|
298
|
-
throw new Error('
|
|
312
|
+
throw new Error('atob is not available. Node.js 18+ or browser required.');
|
|
299
313
|
}
|
|
300
314
|
}
|
|
301
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2VuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYXJyZXRlbmJlcmcvYmFja2VuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWtCLFlBQVksRUFBa0IsTUFBTSxZQUFZLENBQUM7QUFDMUUsT0FBTyxFQUFhLGVBQWUsRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRixPQUFPLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNoQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUU1QyxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsS0FBSztJQUNoRCxZQUFZLE9BQWU7UUFDekIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pCLENBQUM7Q0FDRjtBQTRCRCxTQUFTLDJCQUEyQixDQUFDLE9BQWlDO0lBTXBFLE9BQU87UUFDTCxlQUFlLEVBQUUsS0FBSztRQUN0QixjQUFjLEVBQ1osT0FBTyxFQUFFLE1BQU0sSUFBSSxPQUFPLEVBQUUsUUFBUTtZQUNsQyxDQUFDLENBQUMsUUFBUTtZQUNWLENBQUMsQ0FBQyxPQUFPLEVBQUUsUUFBUSxJQUFJLE9BQU8sRUFBRSxVQUFVO2dCQUN4QyxDQUFDLENBQUMsVUFBVTtnQkFDWixDQUFDLENBQUMsV0FBVztRQUNuQixzREFBc0Q7UUFDdEQsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLElBQUksT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLO1FBQzlELHlCQUF5QixFQUFFLEtBQUs7S0FDakMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLE9BQU8sd0JBQXdCO0lBR25DLFlBQ1ksaUJBQWlDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUMvQyxpQkFBaUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFO1FBRHJELG1CQUFjLEdBQWQsY0FBYyxDQUFpQztRQUMvQyxtQkFBYyxHQUFkLGNBQWMsQ0FBdUM7SUFDOUQsQ0FBQztJQUNKLGNBQWM7SUFDTixLQUFLLENBQUMsV0FBVztRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2QsTUFBTSxHQUFHLEdBQUcsTUFBTSxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUN4RCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUM7WUFDM0IsTUFBTSxHQUFHLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFbkMsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDakIsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsV0FBVyxDQUNmLFNBQXNELEVBQ3RELE9BQWlDO1FBRWpDLE1BQU0sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRXpCLE1BQU0sUUFBUSxHQUFpQixFQUFFLENBQUM7UUFDbEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUNwRCxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNsRCxDQUFDO1FBQ0QsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUM7WUFDaEQsZUFBZSxFQUFFLFNBQVMsQ0FBQyxlQUFlO1lBQzFDLFlBQVksRUFBRSxTQUFTLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUM7WUFDekQsS0FBSyxFQUFFLFFBQVE7WUFDZixRQUFRLEVBQUUsMkJBQTJCLENBQUMsT0FBTyxDQUFDO1NBQy9DLENBQUMsQ0FBQztRQUNILE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFDRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNkLE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzNCLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDNUIsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLGdCQUFnQjtJQVMzQixZQUNFLFlBQW9CLEVBQ1YsaUJBQWlDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUMvQyxpQkFBaUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFO1FBRHJELG1CQUFjLEdBQWQsY0FBYyxDQUFpQztRQUMvQyxtQkFBYyxHQUFkLGNBQWMsQ0FBdUM7UUFFL0QsSUFBSSxDQUFDLHdCQUF3QixHQUFHLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFDRCxjQUFjO0lBQ04sS0FBSyxDQUFDLFdBQVc7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNkLE1BQU0sR0FBRyxHQUFHLE1BQU0sWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDeEQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDO1lBQzNCLE1BQU0sR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsYUFBYSxDQUFDLENBQUM7WUFFbkcsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDakIsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsYUFBYSxDQUFDLGlCQUE2QixFQUFFLE9BQWlDO1FBQ2xGLE1BQU0sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRXpCLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQztZQUMxRCxPQUFPO1lBQ1AsT0FBTyxFQUFFO2dCQUNQLElBQUksRUFBRSxTQUFTO2dCQUNmLFFBQVEsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQztnQkFDcEQsZUFBZSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsZ0NBQWdDO2FBQ25FO1lBQ0QsUUFBUSxFQUFFLDJCQUEyQixDQUFDLE9BQU8sQ0FBQztTQUMvQyxDQUFDLENBQUM7UUFDSCxPQUFPLENBQUMsR0FBRyxDQUFDLG9DQUFvQyxZQUFZLENBQUMsTUFBTSxzQkFBc0IsS0FBSyxDQUFDLE1BQU0sVUFBVSxDQUFDLENBQUM7UUFFakgscUdBQXFHO1FBQ3JHLE1BQU0sU0FBUyxHQUFHLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDcEQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN0QixTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO0lBQy9FLENBQUM7SUFFRCxLQUFLLENBQUMsV0FBVyxDQUFDLFNBQW9CLEVBQUUsT0FBaUM7UUFDdkUsTUFBTSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFekIsTUFBTSxRQUFRLEdBQWlCLEVBQUUsQ0FBQztRQUNsQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ3BELFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2xELENBQUM7UUFDRCxzRUFBc0U7UUFDdEUsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDO1lBQy9DLE9BQU8sRUFBRTtnQkFDUCxJQUFJLEVBQUUsU0FBUztnQkFDZixRQUFRLEVBQUUsSUFBSSxDQUFDLHdCQUF3QjthQUN4QztZQUNELFFBQVEsRUFBRSwyQkFBMkIsQ0FBQyxPQUFPLENBQUM7U0FDL0MsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUM7WUFDaEQsZUFBZSxFQUFFLFFBQVEsQ0FBQyxLQUFLO1lBQy9CLFlBQVksRUFBRSxTQUFTLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUM7WUFDekQsS0FBSyxFQUFFLFFBQVE7WUFDZixRQUFRLEVBQUUsMkJBQTJCLENBQUMsT0FBTyxDQUFDO1NBQy9DLENBQUMsQ0FBQztRQUNILE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxLQUFLLENBQUMsa0JBQWtCLENBQUMsT0FBaUM7UUFDeEQsTUFBTSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFekIsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDO1lBQy9DLE9BQU8sRUFBRTtnQkFDUCxJQUFJLEVBQUUsU0FBUztnQkFDZixRQUFRLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUM7YUFDckQ7WUFDRCxRQUFRLEVBQUUsMkJBQTJCLENBQUMsT0FBTyxDQUFDO1NBQy9DLENBQUMsQ0FBQztRQUNILE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBRUQsK0NBQStDO0lBQy9DLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxFQUFjLEVBQUUsT0FBaUM7UUFDekUsTUFBTSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDekIsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLDRCQUE0QixDQUFDO1lBQ3pELGVBQWUsRUFBRSxFQUFFO1lBQ25CLFFBQVEsRUFBRSwyQkFBMkIsQ0FBQyxPQUFPLENBQUM7U0FDL0MsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxNQUFNLENBQUMsWUFBWSxDQUFDO0lBQzdCLENBQUM7SUFFRCw4SkFBOEo7SUFDOUosS0FBSyxDQUFDLCtCQUErQjtJQUNuQyw2REFBNkQ7SUFDN0QsTUFBa0I7SUFDbEIsNkRBQTZEO0lBQzdELGtCQUEwQjtRQUUxQixNQUFNLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN6QixpSEFBaUg7UUFDakgsb0dBQW9HO1FBQ3BHLCtCQUErQjtRQUMvQix3R0FBd0c7UUFDeEcseUJBQXlCO1FBQ3pCLDZEQUE2RDtRQUM3RCxxR0FBcUc7UUFFckcsMkVBQTJFO1FBQzNFLDBCQUEwQjtRQUMxQixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUM7WUFDL0MsT0FBTyxFQUFFO2dCQUNQLElBQUksRUFBRSxTQUFTO2dCQUNmLFFBQVEsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQzthQUNyRDtZQUNELFFBQVEsRUFBRSwyQkFBMkIsQ0FBQyxFQUFFLENBQUM7U0FDMUMsQ0FBQyxDQUFDO1FBRUgsc0RBQXNEO1FBQ3RELE1BQU0sVUFBVSxHQUFhLEVBQUUsQ0FBQztRQUNoQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ25ELE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDOUMsVUFBVSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBRUQsT0FBTztZQUNMLHNEQUFzRDtZQUN0RCxhQUFhLEVBQUUsRUFBRTtZQUNqQixVQUFVO1lBQ1YsbUdBQW1HO1lBQ25HLHNHQUFzRztZQUN0RyxjQUFjO1lBQ2QsTUFBTSxFQUFFLGVBQWUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1NBQ3ZDLENBQUM7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU87UUFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2QsT0FBTztRQUNULENBQUM7UUFDRCxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDM0IsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLGtCQUFrQjtJQVE3QixZQUNZLE9BQXFCLEVBQ3JCLFVBQTBCLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRTtRQUR4QyxZQUFPLEdBQVAsT0FBTyxDQUFjO1FBQ3JCLFlBQU8sR0FBUCxPQUFPLENBQWlDO0lBQ2pELENBQUM7SUFFSixjQUFjO0lBQ04sS0FBSyxDQUFDLFdBQVc7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNkLE1BQU0sR0FBRyxHQUFHLE1BQU0sWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDakQsTUFBTSxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDakIsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSyxDQUFDLFVBQXdCLEVBQUUsU0FBdUIsRUFBRTtRQUM3RCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxLQUFLLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNyRSxNQUFNLElBQUksdUJBQXVCLENBQUMsdURBQXVELENBQUMsQ0FBQztRQUM3RixDQUFDO1FBQ0QsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUMvRCxpRkFBaUY7WUFDakYsTUFBTSxJQUFJLHVCQUF1QixDQUFDLGlEQUFpRCxDQUFDLENBQUM7UUFDdkYsQ0FBQztRQUNELE1BQU0sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRXpCLDhDQUE4QztRQUM5QyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFFMUQsNkNBQTZDO1FBQzdDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzdDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakMsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDakQsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDeEMsTUFBTSxZQUFZLEdBQUcsZ0JBQWdCLENBQUMsRUFBRSxDQUFDO1lBRXpDLG1CQUFtQjtZQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQztnQkFDakIsT0FBTyxFQUFFO29CQUNQLElBQUksRUFBRSxZQUFZO29CQUNsQixRQUFRLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7b0JBQy9CLGVBQWUsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztpQkFDakM7YUFDRixDQUFDLENBQUM7WUFFSCwwQkFBMEI7WUFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUM7Z0JBQ3ZCLE9BQU8sRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQzthQUM5QixDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsaUVBQWlFO1FBQ2pFLE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbEQsbURBQW1EO1FBQ25ELE1BQU0sS0FBSyxHQUFHLElBQUksT0FBTyxDQUFDLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUMzRixrQkFBa0I7UUFDbEIsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDO1lBQ2hELE9BQU8sRUFBRTtnQkFDUCxJQUFJLEVBQUUsUUFBUTtnQkFDZCxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7YUFDaEQ7U0FDRixDQUFDLENBQUM7UUFFSCxNQUFNLFdBQVcsR0FBRztZQUNsQixXQUFXLENBQUMsS0FBSyxDQUFDLFNBQVM7WUFDM0IsV0FBVyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsVUFBVTtZQUN4QyxXQUFXLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsV0FBVztZQUNwRCxXQUFXLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsUUFBUTtZQUNqRCxXQUFXLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxlQUFlO1NBQzlDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFVCxrRkFBa0Y7UUFDbEYsSUFBSSxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2hELE1BQU0sSUFBSSx1QkFBdUIsQ0FBQyx5REFBeUQsQ0FBQyxDQUFDO1FBQy9GLENBQUM7UUFDRCxPQUFPLENBQUMsV0FBVyxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBaUIsRUFBRSxFQUFjO1FBQzVDLE1BQU0sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUM7WUFDeEMsS0FBSyxFQUFFLFlBQVksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyRSxFQUFFLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7U0FDcEIsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSztRQUNULE1BQU0sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sWUFBWSxHQUFhLEVBQUUsQ0FBQztRQUNsQyxLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUMvQixNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDO2dCQUN0QyxPQUFPLEVBQUU7b0JBQ1AsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsUUFBUSxFQUFFLEdBQUc7aUJBQ2Q7Z0JBQ0QscUJBQXFCLEVBQUUsS0FBSzthQUM3QixDQUFDLENBQUM7WUFDSCxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBQ0QsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPO1FBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNkLE9BQU87UUFDVCxDQUFDO1FBQ0QsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzNCLENBQUM7Q0FDRjtBQUVELHlEQUF5RDtBQUN6RCxTQUFTLGdCQUFnQixDQUFDLHFCQUE2QjtJQUNyRCxNQUFNLGtCQUFrQixHQUFHLFlBQVksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQy9ELE9BQU8sTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFDcEMsQ0FBQztBQUVELG1FQUFtRTtBQUNuRSxzRUFBc0U7QUFDdEUsU0FBUyxZQUFZLENBQUMsS0FBYTtJQUNqQyxJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsRUFBRSxDQUFDO1FBQ2xDLHNCQUFzQjtRQUN0QixNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN2QyxPQUFPLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDOUQsQ0FBQztTQUFNLElBQUksT0FBTyxJQUFJLEtBQUssVUFBVSxFQUFFLENBQUM7UUFDdEMsc0JBQXNCO1FBQ3RCLE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUQsQ0FBQztTQUFNLENBQUM7UUFDTixNQUFNLElBQUksS0FBSyxDQUFDLDhDQUE4QyxDQUFDLENBQUM7SUFDbEUsQ0FBQztBQUNILENBQUMifQ==
|
|
315
|
+
/**
|
|
316
|
+
* Convert a field element (32-byte Uint8Array) to a string.
|
|
317
|
+
*
|
|
318
|
+
* @param field - A 32-byte field element
|
|
319
|
+
* @param radix - The radix for string conversion (2-36), defaults to 10 (decimal)
|
|
320
|
+
* @returns The field value as a string in the specified radix
|
|
321
|
+
*
|
|
322
|
+
* @example
|
|
323
|
+
* const decimal = fieldToString(field); // "12345678"
|
|
324
|
+
* const hex = fieldToString(field, 16); // "bc614e"
|
|
325
|
+
*/
|
|
326
|
+
export function fieldToString(field, radix = 10) {
|
|
327
|
+
let result = 0n;
|
|
328
|
+
for (const byte of field) {
|
|
329
|
+
result <<= 8n;
|
|
330
|
+
result += BigInt(byte);
|
|
331
|
+
}
|
|
332
|
+
return result.toString(radix);
|
|
333
|
+
}
|
|
334
|
+
/**
|
|
335
|
+
* Convert an array of field elements to an array of strings.
|
|
336
|
+
* Useful for passing VK fields to Noir circuits.
|
|
337
|
+
*
|
|
338
|
+
* @param fields - Array of 32-byte field elements
|
|
339
|
+
* @param radix - The radix for string conversion (2-36), defaults to 10 (decimal)
|
|
340
|
+
* @returns Array of strings in the specified radix
|
|
341
|
+
*
|
|
342
|
+
* @example
|
|
343
|
+
* const vkAsFields = await barretenbergAPI.vkAsFields({ verificationKey: vk });
|
|
344
|
+
* const vkDecimalStrings = fieldsToStrings(vkAsFields.fields); // ["12345678", "87654321", ...]
|
|
345
|
+
* const vkHexStrings = fieldsToStrings(vkAsFields.fields, 16); // ["bc614e", "5397fb1", ...]
|
|
346
|
+
*/
|
|
347
|
+
export function fieldsToStrings(fields, radix = 10) {
|
|
348
|
+
return fields.map(field => fieldToString(field, radix));
|
|
349
|
+
}
|
|
350
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2VuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYXJyZXRlbmJlcmcvYmFja2VuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQWEsZUFBZSxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFjLE1BQU0saUNBQWlDLENBQUM7QUFDM0YsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QixPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUU1QyxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsS0FBSztJQUNoRCxZQUFZLE9BQWUsRUFBRTtRQUMzQixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFBQSxDQUNoQjtDQUNGO0FBNkNELFNBQVMsMkJBQTJCLENBQUMsT0FBaUMsRUFLcEU7SUFDQSw0RkFBNEY7SUFDNUYsSUFBSSxPQUFPLEVBQUUsY0FBYyxFQUFFLENBQUM7UUFDNUIsTUFBTSxhQUFhLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9HLElBQUksYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM3QixNQUFNLElBQUksS0FBSyxDQUNiLDBGQUEwRjtnQkFDeEYsMkJBQTJCLENBQzlCLENBQUM7UUFDSixDQUFDO1FBRUQsUUFBUSxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDL0IsS0FBSyxLQUFLO2dCQUNSLE9BQU8sRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSx5QkFBeUIsRUFBRSxLQUFLLEVB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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backend.test.d.ts","sourceRoot":"","sources":["../../../src/barretenberg/backend.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { fieldToString, fieldsToStrings } from './backend.js';
|
|
2
|
+
describe('field helper functions', () => {
|
|
3
|
+
describe('fieldToString', () => {
|
|
4
|
+
it('converts zero field to "0"', () => {
|
|
5
|
+
const zeroField = new Uint8Array(32).fill(0);
|
|
6
|
+
expect(fieldToString(zeroField)).toBe('0');
|
|
7
|
+
});
|
|
8
|
+
it('converts field with value 1 to "1"', () => {
|
|
9
|
+
const oneField = new Uint8Array(32).fill(0);
|
|
10
|
+
oneField[31] = 1;
|
|
11
|
+
expect(fieldToString(oneField)).toBe('1');
|
|
12
|
+
});
|
|
13
|
+
it('converts field with value 256 to "256"', () => {
|
|
14
|
+
const field = new Uint8Array(32).fill(0);
|
|
15
|
+
field[30] = 1;
|
|
16
|
+
field[31] = 0;
|
|
17
|
+
expect(fieldToString(field)).toBe('256');
|
|
18
|
+
});
|
|
19
|
+
it('converts field with max uint8 in last byte to "255"', () => {
|
|
20
|
+
const field = new Uint8Array(32).fill(0);
|
|
21
|
+
field[31] = 255;
|
|
22
|
+
expect(fieldToString(field)).toBe('255');
|
|
23
|
+
});
|
|
24
|
+
it('converts larger values correctly', () => {
|
|
25
|
+
// 0x0100 = 256 in decimal
|
|
26
|
+
const field = new Uint8Array(32).fill(0);
|
|
27
|
+
field[30] = 0x01;
|
|
28
|
+
field[31] = 0x00;
|
|
29
|
+
expect(fieldToString(field)).toBe('256');
|
|
30
|
+
});
|
|
31
|
+
it('handles multi-byte values', () => {
|
|
32
|
+
// 0x010203 = 66051 in decimal
|
|
33
|
+
const field = new Uint8Array(32).fill(0);
|
|
34
|
+
field[29] = 0x01;
|
|
35
|
+
field[30] = 0x02;
|
|
36
|
+
field[31] = 0x03;
|
|
37
|
+
expect(fieldToString(field)).toBe('66051');
|
|
38
|
+
});
|
|
39
|
+
it('handles large field values', () => {
|
|
40
|
+
// A known value: all bytes set to 1
|
|
41
|
+
const field = new Uint8Array(32).fill(1);
|
|
42
|
+
const result = fieldToString(field);
|
|
43
|
+
// Verify it's a valid decimal string
|
|
44
|
+
expect(result).toMatch(/^\d+$/);
|
|
45
|
+
// Verify the length is reasonable for a 256-bit number
|
|
46
|
+
expect(result.length).toBeGreaterThan(70);
|
|
47
|
+
});
|
|
48
|
+
it('converts to hex with radix 16', () => {
|
|
49
|
+
const field = new Uint8Array(32).fill(0);
|
|
50
|
+
field[31] = 255;
|
|
51
|
+
expect(fieldToString(field, 16)).toBe('ff');
|
|
52
|
+
});
|
|
53
|
+
it('converts to hex for multi-byte values', () => {
|
|
54
|
+
// 0x010203
|
|
55
|
+
const field = new Uint8Array(32).fill(0);
|
|
56
|
+
field[29] = 0x01;
|
|
57
|
+
field[30] = 0x02;
|
|
58
|
+
field[31] = 0x03;
|
|
59
|
+
expect(fieldToString(field, 16)).toBe('10203');
|
|
60
|
+
});
|
|
61
|
+
it('converts to binary with radix 2', () => {
|
|
62
|
+
const field = new Uint8Array(32).fill(0);
|
|
63
|
+
field[31] = 5;
|
|
64
|
+
expect(fieldToString(field, 2)).toBe('101');
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
describe('fieldsToStrings', () => {
|
|
68
|
+
it('converts empty array to empty array', () => {
|
|
69
|
+
expect(fieldsToStrings([])).toEqual([]);
|
|
70
|
+
});
|
|
71
|
+
it('converts single field', () => {
|
|
72
|
+
const oneField = new Uint8Array(32).fill(0);
|
|
73
|
+
oneField[31] = 42;
|
|
74
|
+
expect(fieldsToStrings([oneField])).toEqual(['42']);
|
|
75
|
+
});
|
|
76
|
+
it('converts multiple fields', () => {
|
|
77
|
+
const field1 = new Uint8Array(32).fill(0);
|
|
78
|
+
field1[31] = 1;
|
|
79
|
+
const field2 = new Uint8Array(32).fill(0);
|
|
80
|
+
field2[31] = 2;
|
|
81
|
+
const field3 = new Uint8Array(32).fill(0);
|
|
82
|
+
field3[31] = 3;
|
|
83
|
+
expect(fieldsToStrings([field1, field2, field3])).toEqual(['1', '2', '3']);
|
|
84
|
+
});
|
|
85
|
+
it('preserves order of fields', () => {
|
|
86
|
+
const fields = [10, 20, 30, 40, 50].map(v => {
|
|
87
|
+
const field = new Uint8Array(32).fill(0);
|
|
88
|
+
field[31] = v;
|
|
89
|
+
return field;
|
|
90
|
+
});
|
|
91
|
+
expect(fieldsToStrings(fields)).toEqual(['10', '20', '30', '40', '50']);
|
|
92
|
+
});
|
|
93
|
+
it('converts to hex with radix 16', () => {
|
|
94
|
+
const fields = [15, 16, 255].map(v => {
|
|
95
|
+
const field = new Uint8Array(32).fill(0);
|
|
96
|
+
field[31] = v;
|
|
97
|
+
return field;
|
|
98
|
+
});
|
|
99
|
+
expect(fieldsToStrings(fields, 16)).toEqual(['f', '10', 'ff']);
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2VuZC50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JhcnJldGVuYmVyZy9iYWNrZW5kLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFOUQsUUFBUSxDQUFDLHdCQUF3QixFQUFFLEdBQUcsRUFBRSxDQUFDO0lBQ3ZDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDOUIsRUFBRSxDQUFDLDRCQUE0QixFQUFFLEdBQUcsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sU0FBUyxHQUFHLElBQUksVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM3QyxNQUFNLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQUEsQ0FDNUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLG9DQUFvQyxFQUFFLEdBQUcsRUFBRSxDQUFDO1lBQzdDLE1BQU0sUUFBUSxHQUFHLElBQUksVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1QyxRQUFRLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2pCLE1BQU0sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFBQSxDQUMzQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsd0NBQXdDLEVBQUUsR0FBRyxFQUFFLENBQUM7WUFDakQsTUFBTSxLQUFLLEdBQUcsSUFBSSxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pDLEtBQUssQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxLQUFLLENB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
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxha2Uycy50ZXN0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnL2JsYWtlMnMudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BackendType, Barretenberg, BarretenbergSync } from './index.js';
|
|
2
|
-
import { Fr } from '
|
|
2
|
+
import { Fr } from './testing/fields.js';
|
|
3
3
|
describe('blake2s async', () => {
|
|
4
4
|
let api;
|
|
5
5
|
beforeAll(async () => {
|
|
@@ -54,4 +54,4 @@ describe('blake2s sync', () => {
|
|
|
54
54
|
expect(result).toEqual(expected);
|
|
55
55
|
});
|
|
56
56
|
});
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxha2Uycy50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JhcnJldGVuYmVyZy9ibGFrZTJzLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDekUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXpDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsR0FBRyxFQUFFLENBQUM7SUFDOUIsSUFBSSxHQUFpQixDQUFDO0lBRXRCLFNBQVMsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ3BCLHNFQUFzRTtRQUN0RSxHQUFHLEdBQUcsTUFBTSxZQUFZLENBQUMsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFBQSxDQUMvRSxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNuQixNQUFNLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUFBLENBQ3JCLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxTQUFTLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUN4QixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLDBFQUEwRSxDQUFDLENBQUM7UUFDdEcsTUFBTSxRQUFRLEdBQUcsSUFBSSxVQUFVLENBQUM7WUFDOUIsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTtZ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
|
|
@@ -2,7 +2,7 @@ import { AsyncApi } from '../cbind/generated/async.js';
|
|
|
2
2
|
import { SyncApi } from '../cbind/generated/sync.js';
|
|
3
3
|
import { IMsgpackBackendSync, IMsgpackBackendAsync } from '../bb_backends/interface.js';
|
|
4
4
|
import { BackendOptions } from '../bb_backends/index.js';
|
|
5
|
-
export { UltraHonkBackend, UltraHonkVerifierBackend, AztecClientBackend } from './backend.js';
|
|
5
|
+
export { UltraHonkBackend, UltraHonkVerifierBackend, AztecClientBackend, fieldToString, fieldsToStrings, type UltraHonkBackendOptions, type VerifierTarget, } from './backend.js';
|
|
6
6
|
export * from '../bb_backends/index.js';
|
|
7
7
|
export type CircuitOptions = {
|
|
8
8
|
/** @description Whether to produce SNARK friendly proofs */
|
|
@@ -20,15 +20,13 @@ export declare class Barretenberg extends AsyncApi {
|
|
|
20
20
|
*
|
|
21
21
|
* If options.backend is set: uses that specific backend (throws if unavailable)
|
|
22
22
|
* If options.backend is unset: tries backends in order with fallback:
|
|
23
|
-
* 1.
|
|
23
|
+
* 1. NativeUnixSocket (if bb binary available)
|
|
24
24
|
* 2. WasmWorker (in browser) or Wasm (in Node.js)
|
|
25
25
|
*/
|
|
26
26
|
static new(options?: BackendOptions): Promise<Barretenberg>;
|
|
27
|
-
initSRSForCircuitSize(circuitSize: number): Promise<void>;
|
|
28
27
|
initSRSChonk(srsSize?: number): Promise<void>;
|
|
29
28
|
getDefaultSrsSize(): number;
|
|
30
29
|
acirGetCircuitSizes(bytecode: Uint8Array, recursive: boolean, honkRecursion: boolean): Promise<[number, number]>;
|
|
31
|
-
acirInitSRS(bytecode: Uint8Array, recursive: boolean, honkRecursion: boolean): Promise<void>;
|
|
32
30
|
destroy(): Promise<void>;
|
|
33
31
|
/**
|
|
34
32
|
* Initialize the singleton instance of Barretenberg.
|
|
@@ -64,4 +62,4 @@ export declare class BarretenbergSync extends SyncApi {
|
|
|
64
62
|
static destroySingleton(): void;
|
|
65
63
|
static getSingleton(): BarretenbergSync;
|
|
66
64
|
}
|
|
67
|
-
//# sourceMappingURL=
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYXJyZXRlbmJlcmcvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN4RixPQUFPLEVBQUUsY0FBYyxFQUFlLE1BQU0seUJBQXlCLENBQUM7QUFHdEUsT0FBTyxFQUNMLGdCQUFnQixFQUNoQix3QkFBd0IsRUFDeEIsa0JBQWtCLEVBQ2xCLGFBQWEsRUFDYixlQUFlLEVBQ2YsS0FBSyx1QkFBdUIsRUFDNUIsS0FBSyxjQUFjLEdBQ3BCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLGNBQWMseUJBQXlCLENBQUM7QUFFeEMsTUFBTSxNQUFNLGNBQWMsR0FBRztJQUMzQiw0REFBNEQ7SUFDNUQsU0FBUyxFQUFFLE9BQU8sQ0FBQztDQUNwQixDQUFDO0FBRUY7OztHQUdHO0FBQ0gscUJBQWEsWUFBYSxTQUFRLFFBQVE7SUFDeEMsT0FBTyxDQUFDLE9BQU8sQ0FBaUI7SUFFaEMsWUFBWSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFHakU7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsT0FBYSxHQUFHLENBQUMsT0FBTyxHQUFFLGNBQW1CLHlCQTJCNUM7SUFFSyxZQUFZLENBQUMsT0FBTyxTQUEyQixHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FTcEU7SUFFRCxpQkFBaUIsSUFBSSxNQUFNLENBTzFCO0lBRUssbUJBQW1CLENBQ3ZCLFFBQVEsRUFBRSxVQUFVLEVBQ3BCLFNBQVMsRUFBRSxPQUFPLEVBQ2xCLGFBQWEsRUFBRSxPQUFPLEdBQ3JCLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQVkzQjtJQUVLLE9BQU8sa0JBRVo7SUFFRDs7O09BR0c7SUFDSCxPQUFhLGFBQWEsQ0FBQyxPQUFPLEdBQUUsY0FBbUIseUJBYXREO0lBRUQsT0FBYSxnQkFBZ0Isa0JBTTVCO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLFlBQVksaUJBS2xCO0NBQ0Y7QUFRRCxxQkFBYSxnQkFBaUIsU0FBUSxPQUFPO0lBQzNDLFlBQVksT0FBTyxFQUFFLG1CQUFtQixFQUV2QztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSCxPQUFhLEdBQUcsQ0FBQyxPQUFPLEdBQUUsY0FBbUIsNkJBZTVDO0lBRUQ7OztPQUdHO0lBQ0gsT0FBYSxhQUFhLENBQUMsT0FBTyxHQUFFLGNBQW1CLDZCQU90RDtJQUVELE1BQU0sQ0FBQyxnQkFBZ0IsU0FNdEI7SUFFRCxNQUFNLENBQUMsWUFBWSxxQkFLbEI7Q0FDRiJ9
|