diff --git a/.github/workflows/node-flow-pull-request-checks.yaml b/.github/workflows/node-flow-pull-request-checks.yaml index c17b0079ff79..ee663b2b7e8a 100644 --- a/.github/workflows/node-flow-pull-request-checks.yaml +++ b/.github/workflows/node-flow-pull-request-checks.yaml @@ -295,6 +295,32 @@ jobs: slack-api-token: ${{ secrets.PLATFORM_SLACK_API_TOKEN }} grafana-agent-username: ${{ secrets.GRAFANA_AGENT_USERNAME }} grafana-agent-password: ${{ secrets.GRAFANA_AGENT_PASSWORD }} + + hedera-node-jrs-panel: + name: Hedera Node JRS Panel + uses: ./.github/workflows/zxc-jrs-regression.yaml + needs: + - dependency-check + - spotless + if: ${{ github.actor != 'dependabot[bot]' && github.event.pull_request.head.repo.full_name == github.repository }} + with: + custom-job-name: "Network Error Tests" + branch-name: ${{ github.head_ref || github.ref_name }} + hedera-tests-enabled: true + use-branch-for-slack-channel: true + panel-config: "configs/services/suites/daily/GCP-Daily-Services-Comp-NetError-4N-1C.json" + secrets: + access-token: ${{ secrets.PLATFORM_GH_ACCESS_TOKEN }} + jrs-ssh-user-name: ${{ secrets.PLATFORM_JRS_SSH_USER_NAME }} + jrs-ssh-key-file: ${{ secrets.PLATFORM_JRS_SSH_KEY_FILE }} + gcp-project-number: ${{ secrets.PLATFORM_GCP_PROJECT_NUMBER }} + gcp-sa-key-contents: ${{ secrets.PLATFORM_GCP_KEY_FILE }} + slack-api-token: ${{ secrets.PLATFORM_SLACK_API_TOKEN }} + gradle-cache-username: ${{ secrets.GRADLE_CACHE_USERNAME }} + gradle-cache-password: ${{ secrets.GRADLE_CACHE_PASSWORD }} + grafana-agent-username: ${{ secrets.GRAFANA_AGENT_USERNAME }} + grafana-agent-password: ${{ secrets.GRAFANA_AGENT_PASSWORD }} + snyk-scan: name: Snyk Scan uses: ./.github/workflows/node-zxc-compile-application-code.yaml diff --git a/.github/workflows/node-zxc-compile-application-code.yaml b/.github/workflows/node-zxc-compile-application-code.yaml index e72590e82d03..849d987c1e0f 100644 --- a/.github/workflows/node-zxc-compile-application-code.yaml +++ b/.github/workflows/node-zxc-compile-application-code.yaml @@ -232,7 +232,7 @@ jobs: - name: Unit Testing id: gradle-test if: ${{ inputs.enable-unit-tests && steps.gradle-build.conclusion == 'success' && !cancelled() }} - run: ${GRADLE_EXEC} test jacocoTestReport --continue --scan + run: ${GRADLE_EXEC} test timingSensitive jacocoTestReport --continue --scan - name: Publish Unit Test Report uses: actionite/publish-unit-test-result-action@1e01e49081c6c4073913aa4b7980fa83e709f322 # v2.3.0 diff --git a/platform-sdk/swirlds-unit-tests/structures/swirlds-merkle-test/build.gradle.kts b/block-node/blocknode-core-spi/build.gradle.kts similarity index 84% rename from platform-sdk/swirlds-unit-tests/structures/swirlds-merkle-test/build.gradle.kts rename to block-node/blocknode-core-spi/build.gradle.kts index 70e292e7014c..5a79033d1c36 100644 --- a/platform-sdk/swirlds-unit-tests/structures/swirlds-merkle-test/build.gradle.kts +++ b/block-node/blocknode-core-spi/build.gradle.kts @@ -1,5 +1,5 @@ /* - * Copyright (C) 2020-2024 Hedera Hashgraph, LLC + * Copyright (C) 2024 Hedera Hashgraph, LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,4 +14,4 @@ * limitations under the License. */ -plugins { id("com.hedera.hashgraph.sdk.conventions") } +plugins { id("com.hedera.hashgraph.blocknode.conventions") } diff --git a/platform-sdk/platform-apps/demos/HashgraphDemo/build.gradle.kts b/block-node/blocknode-core-spi/src/main/java/com/hedera/node/blocknode/core/spi/DummyCoreSpi.java similarity index 76% rename from platform-sdk/platform-apps/demos/HashgraphDemo/build.gradle.kts rename to block-node/blocknode-core-spi/src/main/java/com/hedera/node/blocknode/core/spi/DummyCoreSpi.java index 8fa39e51d1e7..b0825f27ccde 100644 --- a/platform-sdk/platform-apps/demos/HashgraphDemo/build.gradle.kts +++ b/block-node/blocknode-core-spi/src/main/java/com/hedera/node/blocknode/core/spi/DummyCoreSpi.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2020-2024 Hedera Hashgraph, LLC + * Copyright (C) 2024 Hedera Hashgraph, LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,6 +14,8 @@ * limitations under the License. */ -plugins { id("com.hedera.hashgraph.application") } +package com.hedera.node.blocknode.core.spi; -application.mainClass.set("com.swirlds.demo.hashgraph.HashgraphDemoMain") +public interface DummyCoreSpi { + void doSomething(); +} diff --git a/block-node/blocknode-core-spi/src/main/java/module-info.java b/block-node/blocknode-core-spi/src/main/java/module-info.java new file mode 100644 index 000000000000..3a555f8a75eb --- /dev/null +++ b/block-node/blocknode-core-spi/src/main/java/module-info.java @@ -0,0 +1,4 @@ +module com.hedera.node.blocknode.core.spi { + // Export packages with public interfaces to the world as needed. + exports com.hedera.node.blocknode.core.spi; +} diff --git a/block-node/blocknode-core-spi/src/test/java/com/hedera/node/blocknode/core/spi/test/DummyCoreSpiTest.java b/block-node/blocknode-core-spi/src/test/java/com/hedera/node/blocknode/core/spi/test/DummyCoreSpiTest.java new file mode 100644 index 000000000000..7bbb8bd46971 --- /dev/null +++ b/block-node/blocknode-core-spi/src/test/java/com/hedera/node/blocknode/core/spi/test/DummyCoreSpiTest.java @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2024 Hedera Hashgraph, LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.hedera.node.blocknode.core.spi.test; + +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; +import static org.junit.jupiter.api.Assertions.assertNull; + +import com.hedera.node.blocknode.core.spi.DummyCoreSpi; +import org.junit.jupiter.api.Test; + +class DummyCoreSpiTest { + + @Test + void dummySpiNullCheck() { + final DummyCoreSpi dummyCoreSpi = null; + assertNull(dummyCoreSpi); + } + + @Test + void dummySpiDoSomethingCheck() { + final DummyCoreSpi dummyCoreSpi = new DummyCoreSpi() { + @Override + public void doSomething() { + // Do nothing. + } + }; + + assertDoesNotThrow(dummyCoreSpi::doSomething); + } +} diff --git a/block-node/blocknode-core-spi/src/test/java/module-info.java b/block-node/blocknode-core-spi/src/test/java/module-info.java new file mode 100644 index 000000000000..316a96959728 --- /dev/null +++ b/block-node/blocknode-core-spi/src/test/java/module-info.java @@ -0,0 +1,9 @@ +module com.hedera.node.blocknode.core.spi.test { + // Open test packages to JUnit 5 and Mockito as required. + opens com.hedera.node.blocknode.core.spi.test to + org.junit.platform.commons; + + // Require other modules needed for the unit tests to compile. + requires com.hedera.node.blocknode.core.spi; + requires org.junit.jupiter.api; +} diff --git a/block-node/blocknode-core/build.gradle.kts b/block-node/blocknode-core/build.gradle.kts new file mode 100644 index 000000000000..5a79033d1c36 --- /dev/null +++ b/block-node/blocknode-core/build.gradle.kts @@ -0,0 +1,17 @@ +/* + * Copyright (C) 2024 Hedera Hashgraph, LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +plugins { id("com.hedera.hashgraph.blocknode.conventions") } diff --git a/block-node/blocknode-core/src/main/java/com/hedera/node/blocknode/core/Example.java b/block-node/blocknode-core/src/main/java/com/hedera/node/blocknode/core/Example.java new file mode 100644 index 000000000000..402991dddede --- /dev/null +++ b/block-node/blocknode-core/src/main/java/com/hedera/node/blocknode/core/Example.java @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2024 Hedera Hashgraph, LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.hedera.node.blocknode.core; + +import com.hedera.hapi.node.base.AccountID; +import com.hedera.node.blocknode.core.spi.DummyCoreSpi; +import com.hedera.node.blocknode.filesystem.api.DummyFileSystemApi; +import com.hedera.node.blocknode.filesystem.local.LocalFileSystem; +import com.hedera.node.blocknode.filesystem.s3.S3FileSystem; +import com.hedera.node.blocknode.grpc.api.DummyGrpcApi; +import com.hedera.node.blocknode.state.BlockNodeState; + +public interface Example { + + AccountID accountIdFrom(byte[] bytes); + + DummyCoreSpi spi(); + + DummyGrpcApi grpcApi(); + + DummyFileSystemApi fileSystemApi(); + + default BlockNodeState newState() { + return new BlockNodeState(); + } + + default DummyFileSystemApi s3FileSystem() { + return new S3FileSystem(); + } + + default DummyFileSystemApi localFileSystem() { + return new LocalFileSystem(); + } +} diff --git a/block-node/blocknode-core/src/main/java/module-info.java b/block-node/blocknode-core/src/main/java/module-info.java new file mode 100644 index 000000000000..c1d4f3f490a4 --- /dev/null +++ b/block-node/blocknode-core/src/main/java/module-info.java @@ -0,0 +1,17 @@ +module com.hedera.node.blocknode.core { + // Selectively export non-public packages to the test module. + exports com.hedera.node.blocknode.core to + com.hedera.node.blocknode.core.test; + + // Require the modules needed for compilation. + requires com.hedera.node.blocknode.filesystem.local; + requires com.hedera.node.blocknode.filesystem.s3; + + // Require modules which are needed for compilation and should be available to all modules that depend on this + // module (including tests and other source sets). + requires transitive com.hedera.node.blocknode.core.spi; + requires transitive com.hedera.node.blocknode.filesystem.api; + requires transitive com.hedera.node.blocknode.grpc.api; + requires transitive com.hedera.node.blocknode.state; + requires transitive com.hedera.node.hapi; +} diff --git a/block-node/blocknode-core/src/test/java/com/hedera/node/blocknode/core/test/ExampleTest.java b/block-node/blocknode-core/src/test/java/com/hedera/node/blocknode/core/test/ExampleTest.java new file mode 100644 index 000000000000..4b460433c344 --- /dev/null +++ b/block-node/blocknode-core/src/test/java/com/hedera/node/blocknode/core/test/ExampleTest.java @@ -0,0 +1,75 @@ +/* + * Copyright (C) 2024 Hedera Hashgraph, LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.hedera.node.blocknode.core.test; + +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; + +import com.hedera.hapi.node.base.AccountID; +import com.hedera.node.blocknode.core.Example; +import com.hedera.node.blocknode.core.spi.DummyCoreSpi; +import com.hedera.node.blocknode.filesystem.api.DummyFileSystemApi; +import com.hedera.node.blocknode.grpc.api.DummyGrpcApi; +import org.junit.jupiter.api.Test; + +class ExampleTest { + + @Test + void exampleNullCheck() { + final Example example = null; + assertNull(example); + } + + @Test + void exampleSpiNullCheck() { + final Example example = new Example() { + @Override + public AccountID accountIdFrom(byte[] bytes) { + return null; + } + + @Override + public DummyCoreSpi spi() { + return null; + } + + @Override + public DummyGrpcApi grpcApi() { + return null; + } + + @Override + public DummyFileSystemApi fileSystemApi() { + return localFileSystem(); + } + }; + + assertNotNull(example); + assertNull(example.spi()); + assertNull(example.grpcApi()); + assertNotNull(example.fileSystemApi()); + assertNotNull(example.localFileSystem()); + assertNotNull(example.s3FileSystem()); + assertNotNull(example.newState()); + + assertNull(example.newState().applicationState()); + assertDoesNotThrow(example.fileSystemApi()::doSomething); + assertDoesNotThrow(example.s3FileSystem()::doSomething); + assertDoesNotThrow(example.localFileSystem()::doSomething); + } +} diff --git a/block-node/blocknode-core/src/test/java/module-info.java b/block-node/blocknode-core/src/test/java/module-info.java new file mode 100644 index 000000000000..f978525558bd --- /dev/null +++ b/block-node/blocknode-core/src/test/java/module-info.java @@ -0,0 +1,10 @@ +module com.hedera.node.blocknode.core.test { + // Open test packages to JUnit 5 and Mockito as required. + opens com.hedera.node.blocknode.core.test to + org.junit.platform.commons; + + // Require other modules needed for the unit tests to compile. + requires com.hedera.node.blocknode.core; + requires com.swirlds.platform.core; + requires org.junit.jupiter.api; +} diff --git a/block-node/blocknode-filesystem-api/build.gradle.kts b/block-node/blocknode-filesystem-api/build.gradle.kts new file mode 100644 index 000000000000..5a79033d1c36 --- /dev/null +++ b/block-node/blocknode-filesystem-api/build.gradle.kts @@ -0,0 +1,17 @@ +/* + * Copyright (C) 2024 Hedera Hashgraph, LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +plugins { id("com.hedera.hashgraph.blocknode.conventions") } diff --git a/platform-sdk/swirlds-platform-core/src/main/java/com/swirlds/platform/observers/EventObserver.java b/block-node/blocknode-filesystem-api/src/main/java/com/hedera/node/blocknode/filesystem/api/DummyFileSystemApi.java similarity index 76% rename from platform-sdk/swirlds-platform-core/src/main/java/com/swirlds/platform/observers/EventObserver.java rename to block-node/blocknode-filesystem-api/src/main/java/com/hedera/node/blocknode/filesystem/api/DummyFileSystemApi.java index bcc9407213af..b6d0d99d2199 100644 --- a/platform-sdk/swirlds-platform-core/src/main/java/com/swirlds/platform/observers/EventObserver.java +++ b/block-node/blocknode-filesystem-api/src/main/java/com/hedera/node/blocknode/filesystem/api/DummyFileSystemApi.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2016-2024 Hedera Hashgraph, LLC + * Copyright (C) 2024 Hedera Hashgraph, LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,9 +14,8 @@ * limitations under the License. */ -package com.swirlds.platform.observers; +package com.hedera.node.blocknode.filesystem.api; -/** - * Base interface of all observer interface - */ -public interface EventObserver {} +public interface DummyFileSystemApi { + void doSomething(); +} diff --git a/block-node/blocknode-filesystem-api/src/main/java/module-info.java b/block-node/blocknode-filesystem-api/src/main/java/module-info.java new file mode 100644 index 000000000000..4b4228379b1d --- /dev/null +++ b/block-node/blocknode-filesystem-api/src/main/java/module-info.java @@ -0,0 +1,4 @@ +module com.hedera.node.blocknode.filesystem.api { + // Export packages with public interfaces to the world as needed. + exports com.hedera.node.blocknode.filesystem.api; +} diff --git a/block-node/blocknode-filesystem-api/src/test/java/com/hedera/node/blocknode/filesystem/api/test/DummyFileSystemApiTest.java b/block-node/blocknode-filesystem-api/src/test/java/com/hedera/node/blocknode/filesystem/api/test/DummyFileSystemApiTest.java new file mode 100644 index 000000000000..71e4f552e6a8 --- /dev/null +++ b/block-node/blocknode-filesystem-api/src/test/java/com/hedera/node/blocknode/filesystem/api/test/DummyFileSystemApiTest.java @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2024 Hedera Hashgraph, LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.hedera.node.blocknode.filesystem.api.test; + +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; +import static org.junit.jupiter.api.Assertions.assertNull; + +import com.hedera.node.blocknode.filesystem.api.DummyFileSystemApi; +import org.junit.jupiter.api.Test; + +class DummyFileSystemApiTest { + + @Test + void dummySpiNullCheck() { + final DummyFileSystemApi dummyFileSystemApi = null; + assertNull(dummyFileSystemApi); + } + + @Test + void dummySpiDoSomethingCheck() { + final DummyFileSystemApi dummyFileSystemApi = new DummyFileSystemApi() { + @Override + public void doSomething() { + // Do nothing. + } + }; + + assertDoesNotThrow(dummyFileSystemApi::doSomething); + } +} diff --git a/block-node/blocknode-filesystem-api/src/test/java/module-info.java b/block-node/blocknode-filesystem-api/src/test/java/module-info.java new file mode 100644 index 000000000000..755f04491629 --- /dev/null +++ b/block-node/blocknode-filesystem-api/src/test/java/module-info.java @@ -0,0 +1,9 @@ +module com.hedera.node.blocknode.filesystem.api.test { + // Open test packages to JUnit 5 and Mockito as required. + opens com.hedera.node.blocknode.filesystem.api.test to + org.junit.platform.commons; + + // Require other modules needed for the unit tests to compile. + requires com.hedera.node.blocknode.filesystem.api; + requires org.junit.jupiter.api; +} diff --git a/block-node/blocknode-filesystem-local/build.gradle.kts b/block-node/blocknode-filesystem-local/build.gradle.kts new file mode 100644 index 000000000000..5a79033d1c36 --- /dev/null +++ b/block-node/blocknode-filesystem-local/build.gradle.kts @@ -0,0 +1,17 @@ +/* + * Copyright (C) 2024 Hedera Hashgraph, LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +plugins { id("com.hedera.hashgraph.blocknode.conventions") } diff --git a/block-node/blocknode-filesystem-local/src/main/java/com/hedera/node/blocknode/filesystem/local/LocalFileSystem.java b/block-node/blocknode-filesystem-local/src/main/java/com/hedera/node/blocknode/filesystem/local/LocalFileSystem.java new file mode 100644 index 000000000000..85f464085fca --- /dev/null +++ b/block-node/blocknode-filesystem-local/src/main/java/com/hedera/node/blocknode/filesystem/local/LocalFileSystem.java @@ -0,0 +1,31 @@ +/* + * Copyright (C) 2024 Hedera Hashgraph, LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.hedera.node.blocknode.filesystem.local; + +import com.hedera.node.blocknode.core.spi.DummyCoreSpi; +import com.hedera.node.blocknode.filesystem.api.DummyFileSystemApi; + +public class LocalFileSystem implements DummyFileSystemApi { + @Override + public void doSomething() { + final DummyCoreSpi dummyCoreSpi = () -> { + // Do nothing. + }; + + dummyCoreSpi.doSomething(); + } +} diff --git a/block-node/blocknode-filesystem-local/src/main/java/module-info.java b/block-node/blocknode-filesystem-local/src/main/java/module-info.java new file mode 100644 index 000000000000..a752695b8b98 --- /dev/null +++ b/block-node/blocknode-filesystem-local/src/main/java/module-info.java @@ -0,0 +1,13 @@ +module com.hedera.node.blocknode.filesystem.local { + // Selectively export non-public packages to the test module. + exports com.hedera.node.blocknode.filesystem.local to + com.hedera.node.blocknode.filesystem.local.test, + com.hedera.node.blocknode.core; + + // Require the modules needed for compilation. + requires com.hedera.node.blocknode.core.spi; + + // Require modules which are needed for compilation and should be available to all modules that depend on this + // module (including tests and other source sets). + requires transitive com.hedera.node.blocknode.filesystem.api; +} diff --git a/block-node/blocknode-filesystem-local/src/test/java/com/hedera/node/blocknode/filesystem/local/test/LocalFileSystemTest.java b/block-node/blocknode-filesystem-local/src/test/java/com/hedera/node/blocknode/filesystem/local/test/LocalFileSystemTest.java new file mode 100644 index 000000000000..9511301b98aa --- /dev/null +++ b/block-node/blocknode-filesystem-local/src/test/java/com/hedera/node/blocknode/filesystem/local/test/LocalFileSystemTest.java @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2024 Hedera Hashgraph, LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.hedera.node.blocknode.filesystem.local.test; + +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; + +import com.hedera.node.blocknode.filesystem.local.LocalFileSystem; +import org.junit.jupiter.api.Test; + +class LocalFileSystemTest { + + @Test + void localFileSystemNullCheck() { + final LocalFileSystem localFileSystem = null; + assertNull(localFileSystem); + } + + @Test + void localFileSystemDoSomethingCheck() { + final LocalFileSystem localFileSystem = new LocalFileSystem(); + assertNotNull(localFileSystem); + assertDoesNotThrow(localFileSystem::doSomething); + } +} diff --git a/block-node/blocknode-filesystem-local/src/test/java/module-info.java b/block-node/blocknode-filesystem-local/src/test/java/module-info.java new file mode 100644 index 000000000000..7d5561fb7c50 --- /dev/null +++ b/block-node/blocknode-filesystem-local/src/test/java/module-info.java @@ -0,0 +1,9 @@ +module com.hedera.node.blocknode.filesystem.local.test { + // Open test packages to JUnit 5 and Mockito as required. + opens com.hedera.node.blocknode.filesystem.local.test to + org.junit.platform.commons; + + // Require other modules needed for the unit tests to compile. + requires com.hedera.node.blocknode.filesystem.local; + requires org.junit.jupiter.api; +} diff --git a/block-node/blocknode-filesystem-s3/build.gradle.kts b/block-node/blocknode-filesystem-s3/build.gradle.kts new file mode 100644 index 000000000000..5a79033d1c36 --- /dev/null +++ b/block-node/blocknode-filesystem-s3/build.gradle.kts @@ -0,0 +1,17 @@ +/* + * Copyright (C) 2024 Hedera Hashgraph, LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +plugins { id("com.hedera.hashgraph.blocknode.conventions") } diff --git a/platform-sdk/swirlds-unit-tests/core/swirlds-platform-test/src/main/java/com/swirlds/platform/test/observers/ConsRound.java b/block-node/blocknode-filesystem-s3/src/main/java/com/hedera/node/blocknode/filesystem/s3/S3FileSystem.java similarity index 57% rename from platform-sdk/swirlds-unit-tests/core/swirlds-platform-test/src/main/java/com/swirlds/platform/test/observers/ConsRound.java rename to block-node/blocknode-filesystem-s3/src/main/java/com/hedera/node/blocknode/filesystem/s3/S3FileSystem.java index b3f04dc81b3f..14e3887414c2 100644 --- a/platform-sdk/swirlds-unit-tests/core/swirlds-platform-test/src/main/java/com/swirlds/platform/test/observers/ConsRound.java +++ b/block-node/blocknode-filesystem-s3/src/main/java/com/hedera/node/blocknode/filesystem/s3/S3FileSystem.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2016-2024 Hedera Hashgraph, LLC + * Copyright (C) 2024 Hedera Hashgraph, LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,14 +14,18 @@ * limitations under the License. */ -package com.swirlds.platform.test.observers; +package com.hedera.node.blocknode.filesystem.s3; -import com.swirlds.platform.internal.ConsensusRound; -import com.swirlds.platform.observers.ConsensusRoundObserver; +import com.hedera.node.blocknode.core.spi.DummyCoreSpi; +import com.hedera.node.blocknode.filesystem.api.DummyFileSystemApi; -public class ConsRound extends SimpleConsensusRoundTracker implements ConsensusRoundObserver { +public class S3FileSystem implements DummyFileSystemApi { @Override - public void consensusRound(final ConsensusRound round) { - observe(ObservationType.CONSENSUS, round); + public void doSomething() { + final DummyCoreSpi dummyCoreSpi = () -> { + // Do nothing. + }; + + dummyCoreSpi.doSomething(); } } diff --git a/block-node/blocknode-filesystem-s3/src/main/java/module-info.java b/block-node/blocknode-filesystem-s3/src/main/java/module-info.java new file mode 100644 index 000000000000..50c1d39d1039 --- /dev/null +++ b/block-node/blocknode-filesystem-s3/src/main/java/module-info.java @@ -0,0 +1,13 @@ +module com.hedera.node.blocknode.filesystem.s3 { + // Selectively export non-public packages to the test module. + exports com.hedera.node.blocknode.filesystem.s3 to + com.hedera.node.blocknode.filesystem.s3.test, + com.hedera.node.blocknode.core; + + // Require the modules needed for compilation. + requires com.hedera.node.blocknode.core.spi; + + // Require modules which are needed for compilation and should be available to all modules that depend on this + // module (including tests and other source sets). + requires transitive com.hedera.node.blocknode.filesystem.api; +} diff --git a/block-node/blocknode-filesystem-s3/src/test/java/com/hedera/node/blocknode/filesystem/s3/test/S3FileSystemTest.java b/block-node/blocknode-filesystem-s3/src/test/java/com/hedera/node/blocknode/filesystem/s3/test/S3FileSystemTest.java new file mode 100644 index 000000000000..088559216a6a --- /dev/null +++ b/block-node/blocknode-filesystem-s3/src/test/java/com/hedera/node/blocknode/filesystem/s3/test/S3FileSystemTest.java @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2024 Hedera Hashgraph, LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.hedera.node.blocknode.filesystem.s3.test; + +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; + +import com.hedera.node.blocknode.filesystem.s3.S3FileSystem; +import org.junit.jupiter.api.Test; + +class S3FileSystemTest { + + @Test + void localFileSystemNullCheck() { + final S3FileSystem s3FileSystem = null; + assertNull(s3FileSystem); + } + + @Test + void localFileSystemDoSomethingCheck() { + final S3FileSystem s3FileSystem = new S3FileSystem(); + assertNotNull(s3FileSystem); + assertDoesNotThrow(s3FileSystem::doSomething); + } +} diff --git a/block-node/blocknode-filesystem-s3/src/test/java/module-info.java b/block-node/blocknode-filesystem-s3/src/test/java/module-info.java new file mode 100644 index 000000000000..c6dedff11135 --- /dev/null +++ b/block-node/blocknode-filesystem-s3/src/test/java/module-info.java @@ -0,0 +1,9 @@ +module com.hedera.node.blocknode.filesystem.s3.test { + // Open test packages to JUnit 5 and Mockito as required. + opens com.hedera.node.blocknode.filesystem.s3.test to + org.junit.platform.commons; + + // Require other modules needed for the unit tests to compile. + requires com.hedera.node.blocknode.filesystem.s3; + requires org.junit.jupiter.api; +} diff --git a/block-node/blocknode-grpc-api/build.gradle.kts b/block-node/blocknode-grpc-api/build.gradle.kts new file mode 100644 index 000000000000..5a79033d1c36 --- /dev/null +++ b/block-node/blocknode-grpc-api/build.gradle.kts @@ -0,0 +1,17 @@ +/* + * Copyright (C) 2024 Hedera Hashgraph, LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +plugins { id("com.hedera.hashgraph.blocknode.conventions") } diff --git a/block-node/blocknode-grpc-api/src/main/java/com/hedera/node/blocknode/grpc/api/DummyGrpcApi.java b/block-node/blocknode-grpc-api/src/main/java/com/hedera/node/blocknode/grpc/api/DummyGrpcApi.java new file mode 100644 index 000000000000..088c847321e4 --- /dev/null +++ b/block-node/blocknode-grpc-api/src/main/java/com/hedera/node/blocknode/grpc/api/DummyGrpcApi.java @@ -0,0 +1,21 @@ +/* + * Copyright (C) 2024 Hedera Hashgraph, LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.hedera.node.blocknode.grpc.api; + +public interface DummyGrpcApi { + void doSomething(); +} diff --git a/block-node/blocknode-grpc-api/src/main/java/module-info.java b/block-node/blocknode-grpc-api/src/main/java/module-info.java new file mode 100644 index 000000000000..6c9454932248 --- /dev/null +++ b/block-node/blocknode-grpc-api/src/main/java/module-info.java @@ -0,0 +1,4 @@ +module com.hedera.node.blocknode.grpc.api { + // Export packages with public interfaces to the world as needed. + exports com.hedera.node.blocknode.grpc.api; +} diff --git a/block-node/blocknode-grpc-api/src/test/java/com/hedera/node/blocknode/core/grpc/api/test/DummyGrpcApiTest.java b/block-node/blocknode-grpc-api/src/test/java/com/hedera/node/blocknode/core/grpc/api/test/DummyGrpcApiTest.java new file mode 100644 index 000000000000..cb2fed982f68 --- /dev/null +++ b/block-node/blocknode-grpc-api/src/test/java/com/hedera/node/blocknode/core/grpc/api/test/DummyGrpcApiTest.java @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2024 Hedera Hashgraph, LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.hedera.node.blocknode.core.grpc.api.test; + +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; +import static org.junit.jupiter.api.Assertions.assertNull; + +import com.hedera.node.blocknode.grpc.api.DummyGrpcApi; +import org.junit.jupiter.api.Test; + +class DummyGrpcApiTest { + + @Test + void dummyApiNullCheck() { + final DummyGrpcApi dummyGrpcApi = null; + assertNull(dummyGrpcApi); + } + + @Test + void dummyApiDoSomethingCheck() { + final DummyGrpcApi dummyGrpcApi = new DummyGrpcApi() { + @Override + public void doSomething() { + // Do nothing. + } + }; + + assertDoesNotThrow(dummyGrpcApi::doSomething); + } +} diff --git a/block-node/blocknode-grpc-api/src/test/java/module-info.java b/block-node/blocknode-grpc-api/src/test/java/module-info.java new file mode 100644 index 000000000000..6533146309fe --- /dev/null +++ b/block-node/blocknode-grpc-api/src/test/java/module-info.java @@ -0,0 +1,9 @@ +module com.hedera.node.blocknode.grpc.api.test { + // Open test packages to JUnit 5 and Mockito as required. + opens com.hedera.node.blocknode.core.grpc.api.test to + org.junit.platform.commons; + + // Require other modules needed for the unit tests to compile. + requires com.hedera.node.blocknode.grpc.api; + requires org.junit.jupiter.api; +} diff --git a/block-node/blocknode-state/build.gradle.kts b/block-node/blocknode-state/build.gradle.kts new file mode 100644 index 000000000000..5a79033d1c36 --- /dev/null +++ b/block-node/blocknode-state/build.gradle.kts @@ -0,0 +1,17 @@ +/* + * Copyright (C) 2024 Hedera Hashgraph, LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +plugins { id("com.hedera.hashgraph.blocknode.conventions") } diff --git a/platform-sdk/swirlds-unit-tests/core/swirlds-platform-test/src/main/java/com/swirlds/platform/test/observers/AddedObserver.java b/block-node/blocknode-state/src/main/java/com/hedera/node/blocknode/state/BlockNodeState.java similarity index 59% rename from platform-sdk/swirlds-unit-tests/core/swirlds-platform-test/src/main/java/com/swirlds/platform/test/observers/AddedObserver.java rename to block-node/blocknode-state/src/main/java/com/hedera/node/blocknode/state/BlockNodeState.java index 6f7e76710482..eb0ccdf9fd0a 100644 --- a/platform-sdk/swirlds-unit-tests/core/swirlds-platform-test/src/main/java/com/swirlds/platform/test/observers/AddedObserver.java +++ b/block-node/blocknode-state/src/main/java/com/hedera/node/blocknode/state/BlockNodeState.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2024 Hedera Hashgraph, LLC + * Copyright (C) 2024 Hedera Hashgraph, LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,14 +14,18 @@ * limitations under the License. */ -package com.swirlds.platform.test.observers; +package com.hedera.node.blocknode.state; -import com.swirlds.platform.internal.EventImpl; -import com.swirlds.platform.observers.EventAddedObserver; +import com.hedera.node.blocknode.core.spi.DummyCoreSpi; +import com.swirlds.platform.state.State; -public class AddedObserver extends SimpleEventTracker implements EventAddedObserver { - @Override - public void eventAdded(EventImpl event) { - observe(ObservationType.ADDED, event); +public class BlockNodeState { + public State applicationState() { + final DummyCoreSpi dummyCoreSpi = () -> { + // Do nothing. + }; + dummyCoreSpi.doSomething(); + + return null; } } diff --git a/block-node/blocknode-state/src/main/java/module-info.java b/block-node/blocknode-state/src/main/java/module-info.java new file mode 100644 index 000000000000..bf7daf58bf97 --- /dev/null +++ b/block-node/blocknode-state/src/main/java/module-info.java @@ -0,0 +1,11 @@ +module com.hedera.node.blocknode.state { + // Export the packages that should be available to other modules. + exports com.hedera.node.blocknode.state; + + // Require the modules needed for compilation. + requires com.hedera.node.blocknode.core.spi; + + // Require modules which are needed for compilation and should be available to all modules that depend on this + // module (including tests and other source sets + requires transitive com.swirlds.platform.core; +} diff --git a/block-node/blocknode-state/src/test/java/com/hedera/node/blocknode/state/test/BlockNodeStateTest.java b/block-node/blocknode-state/src/test/java/com/hedera/node/blocknode/state/test/BlockNodeStateTest.java new file mode 100644 index 000000000000..237b7941b3ea --- /dev/null +++ b/block-node/blocknode-state/src/test/java/com/hedera/node/blocknode/state/test/BlockNodeStateTest.java @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2024 Hedera Hashgraph, LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.hedera.node.blocknode.state.test; + +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; + +import com.hedera.node.blocknode.state.BlockNodeState; +import org.junit.jupiter.api.Test; + +class BlockNodeStateTest { + + @Test + void blockNodeStateTest() { + final BlockNodeState blockNodeState = new BlockNodeState(); + assertNotNull(blockNodeState); + assertNull(blockNodeState.applicationState()); + } +} diff --git a/block-node/blocknode-state/src/test/java/module-info.java b/block-node/blocknode-state/src/test/java/module-info.java new file mode 100644 index 000000000000..a17d288dd201 --- /dev/null +++ b/block-node/blocknode-state/src/test/java/module-info.java @@ -0,0 +1,9 @@ +module com.hedera.node.blocknode.state.test { + // Open test packages to JUnit 5 and Mockito as required. + opens com.hedera.node.blocknode.state.test to + org.junit.platform.commons; + + // Require other modules needed for the unit tests to compile. + requires com.hedera.node.blocknode.state; + requires org.junit.jupiter.api; +} diff --git a/build-logic/project-plugins/build.gradle.kts b/build-logic/project-plugins/build.gradle.kts index c0faeabf0777..4843b26cd368 100644 --- a/build-logic/project-plugins/build.gradle.kts +++ b/build-logic/project-plugins/build.gradle.kts @@ -31,9 +31,9 @@ dependencies { ) implementation("me.champeau.jmh:jmh-gradle-plugin:0.7.2") implementation("net.swiftzer.semver:semver:1.3.0") - implementation("org.gradlex:extra-java-module-info:1.6.1") - implementation("org.gradlex:java-ecosystem-capabilities:1.3.1") - implementation("org.gradlex:java-module-dependencies:1.5") + implementation("org.gradlex:extra-java-module-info:1.8") + implementation("org.gradlex:java-ecosystem-capabilities:1.5.1") + implementation("org.gradlex:java-module-dependencies:1.6.1") implementation("org.owasp:dependency-check-gradle:9.0.9") implementation("org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:4.4.1.3373") } diff --git a/build-logic/project-plugins/src/main/kotlin/com.hedera.hashgraph.benchmark-conventions.gradle.kts b/build-logic/project-plugins/src/main/kotlin/com.hedera.hashgraph.benchmark-conventions.gradle.kts index b89c6f06dfa6..c167c70a8512 100644 --- a/build-logic/project-plugins/src/main/kotlin/com.hedera.hashgraph.benchmark-conventions.gradle.kts +++ b/build-logic/project-plugins/src/main/kotlin/com.hedera.hashgraph.benchmark-conventions.gradle.kts @@ -14,6 +14,8 @@ * limitations under the License. */ +import me.champeau.jmh.JMHTask + plugins { id("me.champeau.jmh") } jmh { @@ -23,6 +25,12 @@ jmh { tasks.jmh { outputs.upToDateWhen { false } } +tasks.withType().configureEach { + group = "jmh" + jarArchive = tasks.jmhJar.flatMap { it.archiveFile } + jvm = javaToolchains.launcherFor(java.toolchain).map { it.executablePath }.get().asFile.path +} + tasks.jmhJar { manifest { attributes(mapOf("Multi-Release" to true)) } } configurations { diff --git a/platform-sdk/swirlds-unit-tests/core/swirlds-platform-test/src/main/java/com/swirlds/platform/test/observers/StaleObserver.java b/build-logic/project-plugins/src/main/kotlin/com.hedera.hashgraph.blocknode.conventions.gradle.kts similarity index 58% rename from platform-sdk/swirlds-unit-tests/core/swirlds-platform-test/src/main/java/com/swirlds/platform/test/observers/StaleObserver.java rename to build-logic/project-plugins/src/main/kotlin/com.hedera.hashgraph.blocknode.conventions.gradle.kts index baf2526c4f98..1b8ff644778c 100644 --- a/platform-sdk/swirlds-unit-tests/core/swirlds-platform-test/src/main/java/com/swirlds/platform/test/observers/StaleObserver.java +++ b/build-logic/project-plugins/src/main/kotlin/com.hedera.hashgraph.blocknode.conventions.gradle.kts @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2024 Hedera Hashgraph, LLC + * Copyright (C) 2022-2024 Hedera Hashgraph, LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,14 +14,11 @@ * limitations under the License. */ -package com.swirlds.platform.test.observers; +plugins { + id("java-library") + id("com.hedera.hashgraph.java") +} -import com.swirlds.platform.internal.EventImpl; -import com.swirlds.platform.observers.StaleEventObserver; +group = "com.hedera.storage" -public class StaleObserver extends SimpleEventTracker implements StaleEventObserver { - @Override - public void staleEvent(EventImpl event) { - observe(ObservationType.STALE, event); - } -} +tasks.checkModuleInfo { moduleNamePrefix = "com.hedera.storage" } diff --git a/build-logic/project-plugins/src/main/kotlin/com.hedera.hashgraph.java-test-fixtures.gradle.kts b/build-logic/project-plugins/src/main/kotlin/com.hedera.hashgraph.java-test-fixtures.gradle.kts new file mode 100644 index 000000000000..5de5f5e88e99 --- /dev/null +++ b/build-logic/project-plugins/src/main/kotlin/com.hedera.hashgraph.java-test-fixtures.gradle.kts @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2024 Hedera Hashgraph, LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import org.gradle.api.component.AdhocComponentWithVariants +import org.gradle.kotlin.dsl.get + +/* + * Copyright (C) 2022-2024 Hedera Hashgraph, LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +plugins { id("java-test-fixtures") } + +tasks.testFixturesJar { setGroup(null) } + +// Disable publishing of test fixture if 'java-test-fixtures' plugin is used +// https://docs.gradle.org/current/userguide/java_testing.html#ex-disable-publishing-of-test-fixtures-variants +(components["java"] as AdhocComponentWithVariants).apply { + withVariantsFromConfiguration(configurations["testFixturesApiElements"]) { skip() } + withVariantsFromConfiguration(configurations["testFixturesRuntimeElements"]) { skip() } +} diff --git a/build-logic/project-plugins/src/main/kotlin/com.hedera.hashgraph.java.gradle.kts b/build-logic/project-plugins/src/main/kotlin/com.hedera.hashgraph.java.gradle.kts index 689ef6640eaf..f3174eaaefb3 100644 --- a/build-logic/project-plugins/src/main/kotlin/com.hedera.hashgraph.java.gradle.kts +++ b/build-logic/project-plugins/src/main/kotlin/com.hedera.hashgraph.java.gradle.kts @@ -19,13 +19,14 @@ import Utils.Companion.versionTxt import com.adarshr.gradle.testlogger.theme.ThemeType import com.autonomousapps.AbstractExtension import com.autonomousapps.DependencyAnalysisSubExtension -import com.hedera.hashgraph.gradlebuild.service.TaskLockService +import com.hedera.hashgraph.gradlebuild.services.TaskLockService plugins { id("java") id("jacoco") id("checkstyle") id("com.adarshr.test-logger") + id("com.hedera.hashgraph.lifecycle") id("com.hedera.hashgraph.jpms-modules") id("com.hedera.hashgraph.jpms-module-dependencies") id("com.hedera.hashgraph.repositories") @@ -60,7 +61,16 @@ configurations.getByName("mainRuntimeClasspath") { extendsFrom(internal.get()) } dependencies { "internal"(platform("com.hedera.hashgraph:hedera-dependency-versions")) } +tasks.buildDependents { setGroup(null) } + +tasks.buildNeeded { setGroup(null) } + +tasks.jar { setGroup(null) } + sourceSets.all { + // Remove 'classes' tasks from 'build' group to keep it cleaned up + tasks.named(classesTaskName) { group = null } + configurations.getByName(compileClasspathConfigurationName) { extendsFrom(internal.get()) } configurations.getByName(runtimeClasspathConfigurationName) { extendsFrom(internal.get()) } @@ -162,6 +172,7 @@ testing { useJUnitJupiter() targets.all { testTask { + group = "build" maxHeapSize = "4g" // Some tests overlap due to using the same temp folders within one project // maxParallelForks = 4 <- set this, once tests can run in parallel @@ -174,6 +185,7 @@ testing { testType.set("hammer") targets.all { testTask { + group = "build" shouldRunAfter(tasks.test) usesService( gradle.sharedServices.registerIfAbsent("lock", TaskLockService::class) { @@ -190,6 +202,7 @@ testing { testType.set("time-consuming") targets.all { testTask { + group = "build" shouldRunAfter(tasks.test) maxHeapSize = "16g" } @@ -201,6 +214,7 @@ testing { testType.set(TestSuiteType.INTEGRATION_TEST) targets.all { testTask { + group = "build" shouldRunAfter(tasks.test) maxHeapSize = "8g" addTestListener(testLogger()) @@ -213,8 +227,10 @@ testing { testType.set("end-to-end-test") targets.all { testTask { + group = "build" shouldRunAfter(tasks.test) maxHeapSize = "8g" + jvmArgs("-XX:ActiveProcessorCount=6") } } } @@ -232,6 +248,22 @@ testing { } } +// If user gave the argument '-PactiveProcessorCount', then do: +// - run all test tasks in sequence +// - give the -XX:ActiveProcessorCount argument to the test JVMs +val activeProcessorCount = providers.gradleProperty("activeProcessorCount") + +if (activeProcessorCount.isPresent) { + tasks.withType().configureEach { + usesService( + gradle.sharedServices.registerIfAbsent("lock", TaskLockService::class) { + maxParallelUsages = 1 + } + ) + jvmArgs("-XX:ActiveProcessorCount=${activeProcessorCount.get()}") + } +} + tasks.jacocoTestReport { // Configure Jacoco so it outputs XML reports (needed by SonarCloud) reports { @@ -263,6 +295,14 @@ tasks.assemble { tasks.check { dependsOn(tasks.jacocoTestReport) } +tasks.named("qualityGate") { dependsOn(tasks.checkAllModuleInfo) } + +tasks.withType() { + // When ding a 'qualityGate' run, make sure spotlessApply is done before doing compilation and + // other checks based on compiled code + mustRunAfter(tasks.spotlessApply) +} + // Do not report dependencies from one source set to another as 'required'. // In particular, in case of test fixtures, the analysis would suggest to // add as testModuleInfo { require(...) } to the main module. This is diff --git a/build-logic/project-plugins/src/main/kotlin/com.hedera.hashgraph.jpms-modules.gradle.kts b/build-logic/project-plugins/src/main/kotlin/com.hedera.hashgraph.jpms-modules.gradle.kts index 41e197f0886c..a9b4382b7187 100644 --- a/build-logic/project-plugins/src/main/kotlin/com.hedera.hashgraph.jpms-modules.gradle.kts +++ b/build-logic/project-plugins/src/main/kotlin/com.hedera.hashgraph.jpms-modules.gradle.kts @@ -14,185 +14,176 @@ * limitations under the License. */ -import com.hedera.hashgraph.gradlebuild.rules.* +import org.gradlex.javaecosystem.capabilities.customrules.AddDependenciesMetadataRule +import org.gradlex.javaecosystem.capabilities.customrules.AddFeaturesMetadataRule +import org.gradlex.javaecosystem.capabilities.customrules.RemoveDependenciesMetadataRule plugins { id("org.gradlex.java-ecosystem-capabilities") id("org.gradlex.extra-java-module-info") } +// Fix or enhance the metadata of third-party Modules. This is about the metadata in the +// repositories: '*.pom' and '*.module' files. dependencies.components { - withModule("io.grpc:grpc-netty") - withModule("io.grpc:grpc-protobuf") - withModule("io.grpc:grpc-protobuf-lite") - withModule("io.grpc:grpc-services") - withModule("io.grpc:grpc-stub") - withModule("io.grpc:grpc-testing") - - withModule("com.github.ben-manes.caffeine:caffeine") - withModule("com.github.spotbugs:spotbugs-annotations") - withModule("com.google.dagger:dagger-compiler") - withModule("com.google.dagger:dagger-producers") - withModule("com.google.dagger:dagger-spi") - withModule("com.google.guava:guava") - withModule("com.google.protobuf:protobuf-java-util") - withModule("io.helidon.grpc:io.grpc") - withModule("org.apache.tuweni:tuweni-bytes") - withModule("org.apache.tuweni:tuweni-units") - - withModule("io.netty:netty-transport-native-epoll") - - withModule("io.prometheus:simpleclient") - - withModule("org.jetbrains.kotlin:kotlin-stdlib") + withModule("io.netty:netty-transport-native-epoll") { + params(listOf("linux-x86_64", "linux-aarch_64")) + } - withModule("junit:junit") -} + // The following 'io.grpc' libraries are replaced with a singe dependency to + // 'io.helidon.grpc:io.grpc', which is a re-packaged Modular Jar of all the 'grpc' libraries. + val grpcComponents = listOf("io.grpc:grpc-api", "io.grpc:grpc-context", "io.grpc:grpc-core") + val grpcModule = listOf("io.helidon.grpc:io.grpc") -extraJavaModuleInfo { - failOnAutomaticModules.set(true) // Only allow Jars with 'module-info' on all module paths + // These compile time annotation libraries are not of interest in our setup and are thus removed + // from the dependencies of all components that bring them in. + val annotationLibraries = + listOf( + "com.google.android:annotations", + "com.google.code.findbugs:annotations", + "com.google.code.findbugs:jsr305", + "com.google.errorprone:error_prone_annotations", + "com.google.guava:listenablefuture", + "com.google.j2objc:j2objc-annotations", + "org.checkerframework:checker-compat-qual", + "org.checkerframework:checker-qual", + "org.codehaus.mojo:animal-sniffer-annotations" + ) - module("io.grpc:grpc-netty", "grpc.netty") { - exportAllPackages() - requireAllDefinedDependencies() - requires("java.logging") - } - module("io.grpc:grpc-stub", "grpc.stub") { - exportAllPackages() - requireAllDefinedDependencies() - requires("java.logging") - } - module("io.grpc:grpc-testing", "grpc.testing") { - exportAllPackages() - requireAllDefinedDependencies() + withModule("io.grpc:grpc-netty") { + params(grpcComponents + annotationLibraries) } - module("io.grpc:grpc-services", "grpc.services") { - exportAllPackages() - requireAllDefinedDependencies() + withModule("io.grpc:grpc-netty") { params(grpcModule) } + withModule("io.grpc:grpc-protobuf") { + params(grpcComponents + annotationLibraries) } - module("io.grpc:grpc-protobuf", "grpc.protobuf") { - exportAllPackages() - requireAllDefinedDependencies() + withModule("io.grpc:grpc-protobuf") { params(grpcModule) } + withModule("io.grpc:grpc-protobuf-lite") { + params( + grpcComponents + annotationLibraries + listOf("com.google.protobuf:protobuf-javalite") + ) } - module("io.grpc:grpc-protobuf-lite", "grpc.protobuf.lite") { - exportAllPackages() - requireAllDefinedDependencies() - requires("com.google.protobuf") + withModule("io.grpc:grpc-protobuf-lite") { + params(grpcModule + listOf("com.google.protobuf:protobuf-java")) } - module("javax.annotation:javax.annotation-api", "java.annotation") { - exportAllPackages() - // no dependencies + withModule("io.grpc:grpc-services") { + params(grpcComponents + annotationLibraries) } - module("com.github.spotbugs:spotbugs-annotations", "com.github.spotbugs.annotations") { - exportAllPackages() - // no dependencies - see RemoveFindbugsAnnotationsMetadataRule + withModule("io.grpc:grpc-services") { params(grpcModule) } + withModule("io.grpc:grpc-stub") { + params(grpcComponents + annotationLibraries) } - module("com.google.protobuf:protobuf-java", "com.google.protobuf") { - exportAllPackages() - requireAllDefinedDependencies() - requires("java.logging") + withModule("io.grpc:grpc-stub") { params(grpcModule) } + withModule("io.grpc:grpc-testing") { + params(grpcComponents + annotationLibraries) } - module("com.google.guava:guava", "com.google.common") { - exportAllPackages() - requireAllDefinedDependencies() - requires("java.logging") - } - module("com.google.guava:failureaccess", "com.google.guava.failureaccess") { - exportAllPackages() - // no dependencies - } - module("com.google.api.grpc:proto-google-common-protos", "com.google.api.grpc.common") { - exportAllPackages() - requireAllDefinedDependencies() - } - module("com.google.dagger:dagger", "dagger") { - exportAllPackages() - requireAllDefinedDependencies() - } - module("io.perfmark:perfmark-api", "io.perfmark") { - exportAllPackages() - // no dependencies - } - module("javax.inject:javax.inject", "javax.inject") { - exportAllPackages() - // no dependencies + withModule("io.grpc:grpc-testing") { params(grpcModule) } + + withModule("com.github.ben-manes.caffeine:caffeine") { + params(annotationLibraries) } - module("org.apache.commons:commons-lang3", "org.apache.commons.lang3") { - exportAllPackages() - requireAllDefinedDependencies() + withModule("com.github.spotbugs:spotbugs-annotations") { + params(annotationLibraries) } - module("commons-codec:commons-codec", "org.apache.commons.codec") { - exportAllPackages() - requireAllDefinedDependencies() + withModule("com.google.dagger:dagger-compiler") { + params(annotationLibraries) } - module("commons-io:commons-io", "org.apache.commons.io") { - exportAllPackages() - // no dependencies + withModule("com.google.dagger:dagger-producers") { + params(annotationLibraries) } - module("org.apache.commons:commons-math3", "org.apache.commons.math3") { - exportAllPackages() - // no dependencies + withModule("com.google.dagger:dagger-spi") { + params(annotationLibraries) } - module("org.apache.commons:commons-collections4", "org.apache.commons.collections4") { - exportAllPackages() - // no dependencies + withModule("com.google.guava:guava") { + params(annotationLibraries) } - module("com.esaulpaugh:headlong", "headlong") { - exportAllPackages() - // no dependencies - } - module("org.connid:framework", "org.connid.framework") { - exportAllPackages() - // no dependencies - } - module("org.connid:framework-internal", "org.connid.framework.internal") { - exportAllPackages() - requires("org.connid.framework") // this is missing in POM + withModule("com.google.protobuf:protobuf-java-util") { + params(annotationLibraries) } - module("org.jetbrains:annotations", "org.jetbrains.annotations") { - exportAllPackages() - // no dependencies + withModule("io.helidon.grpc:io.grpc") { + params(annotationLibraries) } - module("io.tmio:tuweni-units", "tuweni.units") { - exportAllPackages() - requireAllDefinedDependencies() + withModule("org.apache.tuweni:tuweni-bytes") { + params(annotationLibraries) } - module("io.tmio:tuweni-bytes", "tuweni.bytes") { - exportAllPackages() - requireAllDefinedDependencies() + withModule("org.apache.tuweni:tuweni-units") { + params(annotationLibraries) } - module("net.i2p.crypto:eddsa", "net.i2p.crypto.eddsa") { - exportAllPackages() - // no dependencies + withModule("io.prometheus:simpleclient") { + params( + listOf( + "io.prometheus:simpleclient_tracer_otel", + "io.prometheus:simpleclient_tracer_otel_agent" + ) + ) } - module("io.netty:netty-codec-http", "io.netty.codec.http") { - exportAllPackages() - requireAllDefinedDependencies() + withModule("org.jetbrains.kotlin:kotlin-stdlib") { + params(listOf("org.jetbrains.kotlin:kotlin-stdlib-common")) } - module("io.netty:netty-codec-http2", "io.netty.codec.http2") { - exportAllPackages() - requireAllDefinedDependencies() + withModule("junit:junit") { + params(listOf("org.hamcrest:hamcrest-core")) } - module("io.netty:netty-codec-socks", "io.netty.codec.socks") { +} + +// Fix or enhance the 'module-info.class' of third-party Modules. This is about the +// 'module-info.class' inside the Jar files. In our full Java Modules setup every +// Jar needs to have this file. If it is missing, it is added by what is configured here. +extraJavaModuleInfo { + failOnAutomaticModules.set(true) // Only allow Jars with 'module-info' on all module paths + + module("io.grpc:grpc-netty", "grpc.netty") { exportAllPackages() requireAllDefinedDependencies() + requires("java.logging") } - module("io.netty:netty-handler-proxy", "io.netty.handler.proxy") { + module("io.grpc:grpc-stub", "grpc.stub") { exportAllPackages() requireAllDefinedDependencies() + requires("java.logging") } - module("io.netty:netty-transport-native-unix-common", "io.netty.transport.unix.common") { + module("io.grpc:grpc-testing", "grpc.testing") + module("io.grpc:grpc-services", "grpc.services") + module("io.grpc:grpc-protobuf", "grpc.protobuf") + module("io.grpc:grpc-protobuf-lite", "grpc.protobuf.lite") + module("javax.annotation:javax.annotation-api", "java.annotation") + module("com.github.spotbugs:spotbugs-annotations", "com.github.spotbugs.annotations") + module("com.google.protobuf:protobuf-java", "com.google.protobuf") { exportAllPackages() requireAllDefinedDependencies() + requires("java.logging") } - module("io.netty:netty-buffer", "io.netty.buffer") { + module("com.google.guava:guava", "com.google.common") { exportAllPackages() requireAllDefinedDependencies() + requires("java.logging") } - module("io.netty:netty-codec", "io.netty.codec") { + module("com.google.guava:failureaccess", "com.google.guava.failureaccess") + module("com.google.api.grpc:proto-google-common-protos", "com.google.api.grpc.common") + module("com.google.dagger:dagger", "dagger") + module("io.perfmark:perfmark-api", "io.perfmark") + module("javax.inject:javax.inject", "javax.inject") + // module("org.apache.commons:commons-lang3", "org.apache.commons.lang3") + module("commons-codec:commons-codec", "org.apache.commons.codec") + // module("commons-io:commons-io", "org.apache.commons.io") + module("org.apache.commons:commons-math3", "org.apache.commons.math3") + module("org.apache.commons:commons-collections4", "org.apache.commons.collections4") + module("com.esaulpaugh:headlong", "headlong") + module("org.connid:framework", "org.connid.framework") + module("org.connid:framework-internal", "org.connid.framework.internal") { exportAllPackages() - requireAllDefinedDependencies() + requires("org.connid.framework") // this is missing in POM } + module("org.jetbrains:annotations", "org.jetbrains.annotations") + module("io.tmio:tuweni-units", "tuweni.units") + module("io.tmio:tuweni-bytes", "tuweni.bytes") + module("net.i2p.crypto:eddsa", "net.i2p.crypto.eddsa") + module("io.netty:netty-codec-http", "io.netty.codec.http") + module("io.netty:netty-codec-http2", "io.netty.codec.http2") + module("io.netty:netty-codec-socks", "io.netty.codec.socks") + module("io.netty:netty-handler-proxy", "io.netty.handler.proxy") + module("io.netty:netty-transport-native-unix-common", "io.netty.transport.unix.common") + module("io.netty:netty-buffer", "io.netty.buffer") + module("io.netty:netty-codec", "io.netty.codec") module("io.netty:netty-common", "io.netty.common") { exportAllPackages() requireAllDefinedDependencies() @@ -200,98 +191,32 @@ extraJavaModuleInfo { requires("jdk.unsupported") ignoreServiceProvider("reactor.blockhound.integration.BlockHoundIntegration") } - module("io.netty:netty-handler", "io.netty.handler") { - exportAllPackages() - requireAllDefinedDependencies() - } - module("io.netty:netty-resolver", "io.netty.resolver") { - exportAllPackages() - requireAllDefinedDependencies() - } - module("io.netty:netty-transport", "io.netty.transport") { - exportAllPackages() - requireAllDefinedDependencies() - } - module("io.netty:netty-transport-classes-epoll", "io.netty.transport.classes.epoll") { - exportAllPackages() - requireAllDefinedDependencies() - } - module("org.antlr:antlr4-runtime", "org.antlr.antlr4.runtime") { - exportAllPackages() - // no dependencies - } - module("org.hyperledger.besu.internal:algorithms", "org.hyperledger.besu.internal.crypto") { - exportAllPackages() - requireAllDefinedDependencies() - } - module("org.hyperledger.besu.internal:rlp", "org.hyperledger.besu.internal.rlp") { - exportAllPackages() - requireAllDefinedDependencies() - } - module("org.hyperledger.besu:arithmetic", "org.hyperledger.besu.nativelib.arithmetic") { - exportAllPackages() - requireAllDefinedDependencies() - } - module("org.hyperledger.besu:blake2bf", "org.hyperledger.besu.nativelib.blake2bf") { - exportAllPackages() - requireAllDefinedDependencies() - } - module("org.hyperledger.besu:bls12-381", "org.hyperledger.besu.nativelib.bls12_381") { - exportAllPackages() - requireAllDefinedDependencies() - } - module("org.hyperledger.besu:besu-datatypes", "org.hyperledger.besu.datatypes") { - exportAllPackages() - requireAllDefinedDependencies() - } - module("org.hyperledger.besu:evm", "org.hyperledger.besu.evm") { - exportAllPackages() - requireAllDefinedDependencies() - } - module("org.hyperledger.besu:plugin-api", "org.hyperledger.besu.plugin.api") { - exportAllPackages() - requireAllDefinedDependencies() - } - module("org.hyperledger.besu:secp256k1", "org.hyperledger.besu.nativelib.secp256k1") { - exportAllPackages() - requireAllDefinedDependencies() - } - module("org.hyperledger.besu:secp256r1", "org.hyperledger.besu.nativelib.secp256r1") { - exportAllPackages() - requireAllDefinedDependencies() - } - module("com.goterl:resource-loader", "resource.loader") { - exportAllPackages() - requireAllDefinedDependencies() - } - module("com.goterl:lazysodium-java", "lazysodium.java") { - exportAllPackages() - requireAllDefinedDependencies() - } - module("tech.pegasys:jc-kzg-4844", "tech.pegasys.jckzg4844") { - exportAllPackages() - // no dependencies - } + module("io.netty:netty-handler", "io.netty.handler") + module("io.netty:netty-resolver", "io.netty.resolver") + module("io.netty:netty-transport", "io.netty.transport") + module("io.netty:netty-transport-classes-epoll", "io.netty.transport.classes.epoll") + module("org.antlr:antlr4-runtime", "org.antlr.antlr4.runtime") + module("org.hyperledger.besu.internal:algorithms", "org.hyperledger.besu.internal.crypto") + module("org.hyperledger.besu.internal:rlp", "org.hyperledger.besu.internal.rlp") + module("org.hyperledger.besu:arithmetic", "org.hyperledger.besu.nativelib.arithmetic") + module("org.hyperledger.besu:blake2bf", "org.hyperledger.besu.nativelib.blake2bf") + module("org.hyperledger.besu:bls12-381", "org.hyperledger.besu.nativelib.bls12_381") + module("org.hyperledger.besu:besu-datatypes", "org.hyperledger.besu.datatypes") + module("org.hyperledger.besu:evm", "org.hyperledger.besu.evm") + module("org.hyperledger.besu:plugin-api", "org.hyperledger.besu.plugin.api") + module("org.hyperledger.besu:secp256k1", "org.hyperledger.besu.nativelib.secp256k1") + module("org.hyperledger.besu:secp256r1", "org.hyperledger.besu.nativelib.secp256r1") + module("com.goterl:resource-loader", "resource.loader") + module("com.goterl:lazysodium-java", "lazysodium.java") + module("tech.pegasys:jc-kzg-4844", "tech.pegasys.jckzg4844") module("net.java.dev.jna:jna", "com.sun.jna") { exportAllPackages() requires("java.logging") } - module("org.eclipse.collections:eclipse-collections-api", "org.eclipse.collections.api") { - exportAllPackages() - // no dependencies - } - module("org.eclipse.collections:eclipse-collections", "org.eclipse.collections.impl") { - exportAllPackages() - requireAllDefinedDependencies() - } - module("io.prometheus:simpleclient", "io.prometheus.simpleclient") { - exportAllPackages() - // no dependencies - } - module("io.prometheus:simpleclient_common", "io.prometheus.simpleclient_common") { - exportAllPackages() - requireAllDefinedDependencies() - } + module("org.eclipse.collections:eclipse-collections-api", "org.eclipse.collections.api") + module("org.eclipse.collections:eclipse-collections", "org.eclipse.collections.impl") + module("io.prometheus:simpleclient", "io.prometheus.simpleclient") + module("io.prometheus:simpleclient_common", "io.prometheus.simpleclient_common") module("io.prometheus:simpleclient_httpserver", "io.prometheus.simpleclient.httpserver") { exportAllPackages() requireAllDefinedDependencies() @@ -310,176 +235,54 @@ extraJavaModuleInfo { ) // Annotation processing only - module("com.google.auto.service:auto-service-annotations", "com.google.auto.service") { - exportAllPackages() - // no dependencies - } - module("com.google.auto.service:auto-service", "com.google.auto.service.processor") { - exportAllPackages() - requireAllDefinedDependencies() - } - module("com.google.auto:auto-common", "com.google.auto.common") { - exportAllPackages() - requireAllDefinedDependencies() - } - module("com.google.dagger:dagger-compiler", "dagger.compiler") { - exportAllPackages() - requireAllDefinedDependencies() - } - module("com.google.dagger:dagger-producers", "dagger.producers") { - exportAllPackages() - requireAllDefinedDependencies() - } - module("com.google.dagger:dagger-spi", "dagger.spi") { - exportAllPackages() - requireAllDefinedDependencies() - } + module("com.google.auto.service:auto-service-annotations", "com.google.auto.service") + module("com.google.auto.service:auto-service", "com.google.auto.service.processor") + module("com.google.auto:auto-common", "com.google.auto.common") + module("com.google.dagger:dagger-compiler", "dagger.compiler") + module("com.google.dagger:dagger-producers", "dagger.producers") + module("com.google.dagger:dagger-spi", "dagger.spi") module( "com.google.devtools.ksp:symbol-processing-api", "com.google.devtools.ksp.symbolprocessingapi" - ) { - exportAllPackages() - requireAllDefinedDependencies() - } - module("com.google.errorprone:javac-shaded", "com.google.errorprone.javac.shaded") { - exportAllPackages() - requireAllDefinedDependencies() - } - module("com.google.googlejavaformat:google-java-format", "com.google.googlejavaformat") { - exportAllPackages() - requireAllDefinedDependencies() - } - module("net.ltgt.gradle.incap:incap", "net.ltgt.gradle.incap") { - exportAllPackages() - requireAllDefinedDependencies() - } - module("org.jetbrains.kotlinx:kotlinx-metadata-jvm", "kotlinx.metadata.jvm") { - exportAllPackages() - requireAllDefinedDependencies() - } + ) + module("com.google.errorprone:javac-shaded", "com.google.errorprone.javac.shaded") + module("com.google.googlejavaformat:google-java-format", "com.google.googlejavaformat") + module("net.ltgt.gradle.incap:incap", "net.ltgt.gradle.incap") + module("org.jetbrains.kotlinx:kotlinx-metadata-jvm", "kotlinx.metadata.jvm") // Testing only - module("com.google.jimfs:jimfs", "com.google.jimfs") { - exportAllPackages() - requireAllDefinedDependencies() - } - module("org.awaitility:awaitility", "awaitility") { - exportAllPackages() - requireAllDefinedDependencies() - } - module("uk.org.webcompere:system-stubs-core", "uk.org.webcompere.systemstubs.core") { - exportAllPackages() - requireAllDefinedDependencies() - } - module("uk.org.webcompere:system-stubs-jupiter", "uk.org.webcompere.systemstubs.jupiter") { - exportAllPackages() - requireAllDefinedDependencies() - } + module("com.google.jimfs:jimfs", "com.google.jimfs") + module("org.awaitility:awaitility", "awaitility") + module("uk.org.webcompere:system-stubs-core", "uk.org.webcompere.systemstubs.core") + module("uk.org.webcompere:system-stubs-jupiter", "uk.org.webcompere.systemstubs.jupiter") // JMH only - module("net.sf.jopt-simple:jopt-simple", "jopt.simple") { - exportAllPackages() - requireAllDefinedDependencies() - } - module("org.openjdk.jmh:jmh-core", "jmh.core") { - exportAllPackages() - requireAllDefinedDependencies() - } - module("org.openjdk.jmh:jmh-generator-asm", "jmh.generator.asm") { - exportAllPackages() - requireAllDefinedDependencies() - } - module("org.openjdk.jmh:jmh-generator-bytecode", "jmh.generator.bytecode") { - exportAllPackages() - requireAllDefinedDependencies() - } - module("org.openjdk.jmh:jmh-generator-reflection", "jmh.generator.reflection") { - exportAllPackages() - requireAllDefinedDependencies() - } + module("net.sf.jopt-simple:jopt-simple", "jopt.simple") + module("org.openjdk.jmh:jmh-core", "jmh.core") + module("org.openjdk.jmh:jmh-generator-asm", "jmh.generator.asm") + module("org.openjdk.jmh:jmh-generator-bytecode", "jmh.generator.bytecode") + module("org.openjdk.jmh:jmh-generator-reflection", "jmh.generator.reflection") // Test clients only - module("com.github.docker-java:docker-java-api", "com.github.docker.java.api") { - exportAllPackages() - requireAllDefinedDependencies() - } - module("com.github.docker-java:docker-java-transport", "com.github.docker.java.transport") { - exportAllPackages() - requireAllDefinedDependencies() - } + module("com.github.docker-java:docker-java-api", "com.github.docker.java.api") + module("com.github.docker-java:docker-java-transport", "com.github.docker.java.transport") module( "com.github.docker-java:docker-java-transport-zerodep", "com.github.docker.transport.zerodep" - ) { - exportAllPackages() - requireAllDefinedDependencies() - } - module("com.google.protobuf:protobuf-java-util", "com.google.protobuf.util") { - exportAllPackages() - requireAllDefinedDependencies() - } + ) + module("com.google.protobuf:protobuf-java-util", "com.google.protobuf.util") module("com.squareup:javapoet", "com.squareup.javapoet") { exportAllPackages() requires("java.compiler") } - module("junit:junit", "junit") { - exportAllPackages() - // no dependencies - } - module("org.apache.commons:commons-compress", "org.apache.commons.compress") { - exportAllPackages() - // no dependencies - } - module("org.hamcrest:hamcrest", "org.hamcrest") { - exportAllPackages() - // no dependencies - } - module("org.json:json", "org.json") { - exportAllPackages() - // no dependencies - } - module("org.mockito:mockito-core", "org.mockito") { - exportAllPackages() - requireAllDefinedDependencies() - } - module("org.objenesis:objenesis", "org.objenesis") { - exportAllPackages() - // no dependencies - } - module("org.rnorth.duct-tape:duct-tape", "org.rnorth.ducttape") { - exportAllPackages() - requireAllDefinedDependencies() - } - module("org.testcontainers:junit-jupiter", "org.testcontainers.junit.jupiter") { - exportAllPackages() - requireAllDefinedDependencies() - } - module("org.testcontainers:testcontainers", "org.testcontainers") { - exportAllPackages() - requireAllDefinedDependencies() - } - module("org.mockito:mockito-junit-jupiter", "org.mockito.junit.jupiter") { - exportAllPackages() - requireAllDefinedDependencies() - } - - // Jars that are not patched but to which Jars we patch above have 'requires'. - // If the 'requires' are created by requireAllDefinedDependencies(), the information - // how the library coordinates map to the Module Names is requires here. - knownModule( - "com.fasterxml.jackson.core:jackson-annotations", - "com.fasterxml.jackson.annotation" - ) - knownModule("com.github.ben-manes.caffeine:caffeine", "com.github.benmanes.caffeine") - knownModule("com.google.code.gson:gson", "com.google.gson") - knownModule("io.helidon.grpc:io.grpc", "io.grpc") - knownModule("net.bytebuddy:byte-buddy", "net.bytebuddy") - knownModule("net.bytebuddy:byte-buddy-agent", "net.bytebuddy.agent") - knownModule("org.apache.logging.log4j:log4j-api", "org.apache.logging.log4j") - knownModule("org.bouncycastle:bcprov-jdk18on", "org.bouncycastle.provider") - knownModule("org.jetbrains.kotlin:kotlin-stdlib", "kotlin.stdlib") - knownModule("org.jetbrains.kotlin:kotlin-stdlib-jdk8", "kotlin.stdlib.jdk8") - knownModule("org.junit.jupiter:junit-jupiter-api", "org.junit.jupiter.api") - knownModule("org.ow2.asm:asm", "org.objectweb.asm") - knownModule("org.slf4j:slf4j-api", "org.slf4j") + module("junit:junit", "junit") + // module("org.apache.commons:commons-compress", "org.apache.commons.compress") + module("org.hamcrest:hamcrest", "org.hamcrest") + module("org.json:json", "org.json") + module("org.mockito:mockito-core", "org.mockito") + module("org.objenesis:objenesis", "org.objenesis") + module("org.rnorth.duct-tape:duct-tape", "org.rnorth.ducttape") + module("org.testcontainers:junit-jupiter", "org.testcontainers.junit.jupiter") + module("org.testcontainers:testcontainers", "org.testcontainers") + module("org.mockito:mockito-junit-jupiter", "org.mockito.junit.jupiter") } diff --git a/platform-sdk/swirlds-platform-core/src/main/java/com/swirlds/platform/observers/EventAddedObserver.java b/build-logic/project-plugins/src/main/kotlin/com.hedera.hashgraph.lifecycle.gradle.kts similarity index 55% rename from platform-sdk/swirlds-platform-core/src/main/java/com/swirlds/platform/observers/EventAddedObserver.java rename to build-logic/project-plugins/src/main/kotlin/com.hedera.hashgraph.lifecycle.gradle.kts index dd5755555c92..ef8cee2c5083 100644 --- a/platform-sdk/swirlds-platform-core/src/main/java/com/swirlds/platform/observers/EventAddedObserver.java +++ b/build-logic/project-plugins/src/main/kotlin/com.hedera.hashgraph.lifecycle.gradle.kts @@ -14,20 +14,24 @@ * limitations under the License. */ -package com.swirlds.platform.observers; +plugins { + id("base") + id("com.diffplug.spotless") +} -import com.swirlds.platform.internal.EventImpl; +// Convenience for local development: when running './gradlew' without any parameters just show the +// tasks from the 'build' group +defaultTasks("tasks") -/** - * An observer that is notified when an event is added to the hashgraph. - */ -@FunctionalInterface -public interface EventAddedObserver extends EventObserver { +tasks.named("tasks") { + if (!isDetail) { + displayGroup = "build" + } +} - /** - * Announce that the given event has been added to the hashgraph - * @param event - * the event - */ - void eventAdded(EventImpl event); +tasks.register("qualityGate") { + group = "build" + description = "Apply spotless rules and run all quality checks." + dependsOn(tasks.spotlessApply) + dependsOn(tasks.assemble) } diff --git a/build-logic/project-plugins/src/main/kotlin/com.hedera.hashgraph.maven-publish.gradle.kts b/build-logic/project-plugins/src/main/kotlin/com.hedera.hashgraph.maven-publish.gradle.kts index f95f9803739e..ba45f82a7cfb 100644 --- a/build-logic/project-plugins/src/main/kotlin/com.hedera.hashgraph.maven-publish.gradle.kts +++ b/build-logic/project-plugins/src/main/kotlin/com.hedera.hashgraph.maven-publish.gradle.kts @@ -25,22 +25,11 @@ java { withSourcesJar() } -val javaComponent = components["java"] as AdhocComponentWithVariants - -plugins.withId("java-test-fixtures") { - // Disable publishing of test fixture if 'java-test-fixtures' plugin is used - // https://docs.gradle.org/current/userguide/java_testing.html#ex-disable-publishing-of-test-fixtures-variants - javaComponent.withVariantsFromConfiguration(configurations["testFixturesApiElements"]) { - skip() - } - javaComponent.withVariantsFromConfiguration(configurations["testFixturesRuntimeElements"]) { - skip() - } -} +tasks.withType().configureEach { setGroup(null) } val maven = publishing.publications.create("maven") { - from(javaComponent) + from(components["java"]) versionMapping { // Everything published takes the versions from the resolution result. // These are the versions we define in 'hedera-dependency-versions' diff --git a/build-logic/project-plugins/src/main/kotlin/com.hedera.hashgraph.root.gradle.kts b/build-logic/project-plugins/src/main/kotlin/com.hedera.hashgraph.root.gradle.kts index 68680ae813b9..67e50ec2fbac 100644 --- a/build-logic/project-plugins/src/main/kotlin/com.hedera.hashgraph.root.gradle.kts +++ b/build-logic/project-plugins/src/main/kotlin/com.hedera.hashgraph.root.gradle.kts @@ -18,6 +18,7 @@ import Utils.Companion.versionTxt import net.swiftzer.semver.SemVer plugins { + id("com.hedera.hashgraph.lifecycle") id("com.hedera.hashgraph.repositories") id("com.hedera.hashgraph.aggregate-reports") id("com.hedera.hashgraph.spotless-conventions") diff --git a/build-logic/project-plugins/src/main/kotlin/com.hedera.hashgraph.sdk.conventions.gradle.kts b/build-logic/project-plugins/src/main/kotlin/com.hedera.hashgraph.sdk.conventions.gradle.kts index 49a7504022ef..0daa91c5b955 100644 --- a/build-logic/project-plugins/src/main/kotlin/com.hedera.hashgraph.sdk.conventions.gradle.kts +++ b/build-logic/project-plugins/src/main/kotlin/com.hedera.hashgraph.sdk.conventions.gradle.kts @@ -34,6 +34,9 @@ tasks.test { val timingSensitive = tasks.register("timingSensitive") { + group = "build" + description = "Runs the timing sensitive tests of test suite." + // Separate target (task) for timingSensitive tests. // Tests should eventually be fixed or moved to 'hammer'. testClassesDirs = sourceSets.test.get().output.classesDirs @@ -42,7 +45,7 @@ val timingSensitive = usesService( gradle.sharedServices.registerIfAbsent( "lock", - com.hedera.hashgraph.gradlebuild.service.TaskLockService::class + com.hedera.hashgraph.gradlebuild.services.TaskLockService::class ) { maxParallelUsages = 1 } diff --git a/build-logic/project-plugins/src/main/kotlin/com/hedera/hashgraph/gradlebuild/rules/IoGrpcDependencyMetadataRule.kt b/build-logic/project-plugins/src/main/kotlin/com/hedera/hashgraph/gradlebuild/rules/IoGrpcDependencyMetadataRule.kt deleted file mode 100644 index 74b0aa24c79e..000000000000 --- a/build-logic/project-plugins/src/main/kotlin/com/hedera/hashgraph/gradlebuild/rules/IoGrpcDependencyMetadataRule.kt +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (C) 2022-2023 Hedera Hashgraph, LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.hedera.hashgraph.gradlebuild.rules - -import org.gradle.api.artifacts.CacheableRule -import org.gradle.api.artifacts.ComponentMetadataContext -import org.gradle.api.artifacts.ComponentMetadataRule - -/** - * Replace all 'grpc' dependencies with a singe dependency to - * 'io.helidon.grpc:io.grpc' which is a re-packaged Modular Jar - * of all the 'grpc' libraries. - */ -@CacheableRule -abstract class IoGrpcDependencyMetadataRule : ComponentMetadataRule { - - override fun execute(context: ComponentMetadataContext) { - context.details.allVariants { - withDependencies { - removeAll { it.name == "grpc-api" } - removeAll { it.name == "grpc-context" } - removeAll { it.name == "grpc-core" } - removeAll { it.name == "error_prone_annotations" } - removeAll { it.group == "com.google.code.findbugs" } - add("io.helidon.grpc:io.grpc") - } - } - } -} diff --git a/build-logic/project-plugins/src/main/kotlin/com/hedera/hashgraph/gradlebuild/rules/IoNettyNativeEpollMetadataRule.kt b/build-logic/project-plugins/src/main/kotlin/com/hedera/hashgraph/gradlebuild/rules/IoNettyNativeEpollMetadataRule.kt deleted file mode 100644 index 229c51d04545..000000000000 --- a/build-logic/project-plugins/src/main/kotlin/com/hedera/hashgraph/gradlebuild/rules/IoNettyNativeEpollMetadataRule.kt +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (C) 2022-2023 Hedera Hashgraph, LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.hedera.hashgraph.gradlebuild.rules - -import org.gradle.api.artifacts.CacheableRule -import org.gradle.api.artifacts.ComponentMetadataContext -import org.gradle.api.artifacts.ComponentMetadataRule - -/** - * Configures native Jars of 'io.netty.native.epoll' so that they can be selected by 'capability'. - * https://docs.gradle.org/current/userguide/component_metadata_rules.html#making_different_flavors_of_a_library_available_through_capabilities - */ -@CacheableRule -abstract class IoNettyNativeEpollMetadataRule : ComponentMetadataRule { - - override fun execute(context: ComponentMetadataContext) { - val name = context.details.id.name - val version = context.details.id.version - listOf("linux-x86_64", "linux-aarch_64").forEach { nativeVariant -> - context.details.addVariant(nativeVariant, "runtime") { - withCapabilities { - removeCapability("io.netty", "netty-transport-native-epoll") - addCapability("io.netty", "netty-transport-native-epoll-$nativeVariant", version) - } - withFiles { - removeAllFiles() - addFile("$name-$version-$nativeVariant.jar") - } - } - } - } -} diff --git a/build-logic/project-plugins/src/main/kotlin/com/hedera/hashgraph/gradlebuild/rules/IoPrometheusSimpleclientMetadataRule.kt b/build-logic/project-plugins/src/main/kotlin/com/hedera/hashgraph/gradlebuild/rules/IoPrometheusSimpleclientMetadataRule.kt deleted file mode 100644 index 1dae45916db7..000000000000 --- a/build-logic/project-plugins/src/main/kotlin/com/hedera/hashgraph/gradlebuild/rules/IoPrometheusSimpleclientMetadataRule.kt +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (C) 2022-2023 Hedera Hashgraph, LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.hedera.hashgraph.gradlebuild.rules - -import org.gradle.api.artifacts.CacheableRule -import org.gradle.api.artifacts.ComponentMetadataContext -import org.gradle.api.artifacts.ComponentMetadataRule - -/** - * Removes unused transitive dependencies of 'io.prometheus:simpleclient'. - */ -@CacheableRule -abstract class IoPrometheusSimpleclientMetadataRule : ComponentMetadataRule { - - override fun execute(context: ComponentMetadataContext) { - context.details.allVariants { - withDependencies { - removeAll { it.name == "simpleclient_tracer_otel" } - removeAll { it.name == "simpleclient_tracer_otel_agent" } - } - } - } -} \ No newline at end of file diff --git a/build-logic/project-plugins/src/main/kotlin/com/hedera/hashgraph/gradlebuild/rules/RemoveAnnotationLibrariesMetadataRule.kt b/build-logic/project-plugins/src/main/kotlin/com/hedera/hashgraph/gradlebuild/rules/RemoveAnnotationLibrariesMetadataRule.kt deleted file mode 100644 index 2994f4a48c73..000000000000 --- a/build-logic/project-plugins/src/main/kotlin/com/hedera/hashgraph/gradlebuild/rules/RemoveAnnotationLibrariesMetadataRule.kt +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (C) 2022-2023 Hedera Hashgraph, LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.hedera.hashgraph.gradlebuild.rules - -import org.gradle.api.artifacts.CacheableRule -import org.gradle.api.artifacts.ComponentMetadataContext -import org.gradle.api.artifacts.ComponentMetadataRule - -/** - * Removes annotation libraries for annotations that this project does not require - * at runtime or compile time. These are typically annotations used by additional - * code analysis tools that are not used by this project. - */ -@CacheableRule -abstract class RemoveAnnotationLibrariesMetadataRule : ComponentMetadataRule { - - override fun execute(context: ComponentMetadataContext) { - context.details.allVariants { - withDependencies { - removeAll { it.name == "animal-sniffer-annotations" } - removeAll { it.name == "checker-qual" } - removeAll { it.name == "checker-compat-qual" } - removeAll { it.name == "error_prone_annotations" } - removeAll { it.name == "j2objc-annotations" } - removeAll { it.name == "listenablefuture" } - removeAll { it.group == "com.google.android" && it.name == "annotations"} - // 'findbugs' annotations are not used and cause split package with 'javax.annotation-api' - removeAll { it.group == "com.google.code.findbugs" } - } - } - } -} \ No newline at end of file diff --git a/build-logic/project-plugins/src/main/kotlin/com/hedera/hashgraph/gradlebuild/rules/RemoveHamcrestCoreMetadataRule.kt b/build-logic/project-plugins/src/main/kotlin/com/hedera/hashgraph/gradlebuild/rules/RemoveHamcrestCoreMetadataRule.kt deleted file mode 100644 index f3380c0b809f..000000000000 --- a/build-logic/project-plugins/src/main/kotlin/com/hedera/hashgraph/gradlebuild/rules/RemoveHamcrestCoreMetadataRule.kt +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright (C) 2022-2023 Hedera Hashgraph, LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.hedera.hashgraph.gradlebuild.rules - -import org.gradle.api.artifacts.CacheableRule -import org.gradle.api.artifacts.ComponentMetadataContext -import org.gradle.api.artifacts.ComponentMetadataRule - -/** - * JUnit4 is only needed as a transitive dependency of test containers. - * We do not use it for running tests or asserting. Hence, in our context, - * the (old) hamcrest-core assertion library can be removed. - */ -@CacheableRule -abstract class RemoveHamcrestCoreMetadataRule : ComponentMetadataRule { - - override fun execute(context: ComponentMetadataContext) { - context.details.allVariants { - withDependencies { - removeAll { it.name == "hamcrest-core" } - } - } - } -} \ No newline at end of file diff --git a/build-logic/project-plugins/src/main/kotlin/com/hedera/hashgraph/gradlebuild/rules/RemoveKotlinStdlibCommonMetadataRule.kt b/build-logic/project-plugins/src/main/kotlin/com/hedera/hashgraph/gradlebuild/rules/RemoveKotlinStdlibCommonMetadataRule.kt deleted file mode 100644 index 60c75ee85143..000000000000 --- a/build-logic/project-plugins/src/main/kotlin/com/hedera/hashgraph/gradlebuild/rules/RemoveKotlinStdlibCommonMetadataRule.kt +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (C) 2022-2023 Hedera Hashgraph, LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.hedera.hashgraph.gradlebuild.rules - -import org.gradle.api.artifacts.CacheableRule -import org.gradle.api.artifacts.ComponentMetadataContext -import org.gradle.api.artifacts.ComponentMetadataRule - -/** - * Kotlin 'kotlin-stdlib-common' (which is not a JPMS module) is not required at runtime, if the - * runtime is a JVM. It exists for Kotlins multi-platform aspect (which we do not care for). - */ -@CacheableRule -abstract class RemoveKotlinStdlibCommonMetadataRule : ComponentMetadataRule { - - override fun execute(context: ComponentMetadataContext) { - context.details.allVariants { - withDependencies { - removeAll { it.name == "kotlin-stdlib-common" } - } - } - } -} \ No newline at end of file diff --git a/build-logic/project-plugins/src/main/kotlin/com/hedera/hashgraph/gradlebuild/service/TaskLockService.kt b/build-logic/project-plugins/src/main/kotlin/com/hedera/hashgraph/gradlebuild/services/TaskLockService.kt similarity index 77% rename from build-logic/project-plugins/src/main/kotlin/com/hedera/hashgraph/gradlebuild/service/TaskLockService.kt rename to build-logic/project-plugins/src/main/kotlin/com/hedera/hashgraph/gradlebuild/services/TaskLockService.kt index 10b30b04f833..02a673bb75ca 100644 --- a/build-logic/project-plugins/src/main/kotlin/com/hedera/hashgraph/gradlebuild/service/TaskLockService.kt +++ b/build-logic/project-plugins/src/main/kotlin/com/hedera/hashgraph/gradlebuild/services/TaskLockService.kt @@ -1,4 +1,4 @@ -package com.hedera.hashgraph.gradlebuild.service +package com.hedera.hashgraph.gradlebuild.services import org.gradle.api.services.BuildService import org.gradle.api.services.BuildServiceParameters diff --git a/config/checkstyle/checkstyle-suppressions.xml b/config/checkstyle/checkstyle-suppressions.xml index c0f855b1429b..073f001bf158 100644 --- a/config/checkstyle/checkstyle-suppressions.xml +++ b/config/checkstyle/checkstyle-suppressions.xml @@ -26,4 +26,14 @@ + + + + + + + + + + diff --git a/config/checkstyle/checkstyle-xpath-suppressions.xml b/config/checkstyle/checkstyle-xpath-suppressions.xml new file mode 100644 index 000000000000..04b615129ca7 --- /dev/null +++ b/config/checkstyle/checkstyle-xpath-suppressions.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/checkstyle/checkstyle.xml b/config/checkstyle/checkstyle.xml index 171816bbeb61..2e0ebeaf02d1 100644 --- a/config/checkstyle/checkstyle.xml +++ b/config/checkstyle/checkstyle.xml @@ -3,7 +3,8 @@ Authors: Robert Fink, Brian Worth, Merrick Zoubeiri, and many other contributors. Based in part on http://checkstyle.sourceforge.net/google_style.html Please keep checks alphabetized with one exception: "relaxed" checks are grouped together at the bottom for easier disabling. Check-specific comments reference documents internal to Palantir and can be safely ignored or removed. - --> + --> + @@ -38,7 +39,7 @@ - + @@ -142,11 +143,6 @@ - - - - - @@ -197,7 +193,9 @@ - + + + @@ -299,14 +297,14 @@ - - - - + + + + @@ -399,6 +397,7 @@ + @@ -438,6 +437,9 @@ + + + diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 1af9e0930b89..a80b22ce5cff 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew.bat b/gradlew.bat index 6689b85beecd..7101f8e4676f 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -43,11 +43,11 @@ set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 if %ERRORLEVEL% equ 0 goto execute -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail @@ -57,11 +57,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe if exist "%JAVA_EXE%" goto execute -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail diff --git a/hedera-dependency-versions/build.gradle.kts b/hedera-dependency-versions/build.gradle.kts index 2a7665b8ba36..60165dd4252b 100644 --- a/hedera-dependency-versions/build.gradle.kts +++ b/hedera-dependency-versions/build.gradle.kts @@ -38,6 +38,9 @@ val tuweniVersion = "2.4.2" dependencies { api(enforcedPlatform("io.netty:netty-bom:$nettyVersion")) + // Force commons compress version to close a security vulnerability + api(javaModuleDependencies.gav("org.apache.commons.compress")) + // forward logging from modules using SLF4J (e.g. 'org.hyperledger.besu.evm') to Log4J runtime(javaModuleDependencies.gav("org.apache.logging.log4j.slf4j")) } @@ -55,7 +58,7 @@ moduleInfo { version("com.google.jimfs", "1.2") version("com.google.protobuf", protobufVersion) version("com.google.protobuf.util", protobufVersion) - version("com.hedera.pbj.runtime", "0.7.14") + version("com.hedera.pbj.runtime", "0.7.19") version("com.squareup.javapoet", "1.13.0") version("com.sun.jna", "5.12.1") version("dagger", daggerVersion) @@ -81,9 +84,10 @@ moduleInfo { version("org.antlr.antlr4.runtime", "4.11.1") version("org.apache.commons.codec", "1.15") version("org.apache.commons.collections4", "4.4") - version("org.apache.commons.io", "2.11.0") - version("org.apache.commons.lang3", "3.12.0") + version("org.apache.commons.io", "2.15.1") + version("org.apache.commons.lang3", "3.14.0") version("org.apache.commons.math3", "3.2") + version("org.apache.commons.compress", "1.26.0") version("org.apache.logging.log4j", log4jVersion) version("org.apache.logging.log4j.core", log4jVersion) version("org.apache.logging.log4j.slf4j", log4jVersion) diff --git a/hedera-node/cli-clients/src/main/java/com/hedera/services/cli/signedstate/DumpScheduledTransactionsSubcommand.java b/hedera-node/cli-clients/src/main/java/com/hedera/services/cli/signedstate/DumpScheduledTransactionsSubcommand.java new file mode 100644 index 000000000000..80b1ea2dde1a --- /dev/null +++ b/hedera-node/cli-clients/src/main/java/com/hedera/services/cli/signedstate/DumpScheduledTransactionsSubcommand.java @@ -0,0 +1,265 @@ +/* + * Copyright (C) 2024 Hedera Hashgraph, LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.hedera.services.cli.signedstate; + +import static com.hedera.services.cli.utils.Formatters.getListFormatter; +import static com.hedera.services.cli.utils.Formatters.getNullableFormatter; +import static com.hedera.services.cli.utils.Formatters.getOptionalFormatter; +import static com.hedera.services.cli.utils.ThingsToStrings.quoteForCsv; +import static java.util.Objects.requireNonNull; + +import com.google.protobuf.ByteString; +import com.hedera.node.app.service.mono.legacy.core.jproto.JKey; +import com.hedera.node.app.service.mono.state.adapters.MerkleMapLike; +import com.hedera.node.app.service.mono.state.submerkle.EntityId; +import com.hedera.node.app.service.mono.state.submerkle.RichInstant; +import com.hedera.node.app.service.mono.state.virtual.EntityNumVirtualKey; +import com.hedera.node.app.service.mono.state.virtual.schedule.ScheduleVirtualValue; +import com.hedera.services.cli.utils.FieldBuilder; +import com.hedera.services.cli.utils.ThingsToStrings; +import com.hedera.services.cli.utils.Writer; +import com.hederahashgraph.api.proto.java.Key; +import com.hederahashgraph.api.proto.java.SchedulableTransactionBody; +import com.hederahashgraph.api.proto.java.TransactionBody; +import com.swirlds.base.utility.Pair; +import edu.umd.cs.findbugs.annotations.NonNull; +import edu.umd.cs.findbugs.annotations.Nullable; +import java.nio.file.Path; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import java.util.TreeMap; +import java.util.function.BiConsumer; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** Dump all scheduled transactions from a signed state file to a text file in a deterministic order */ +public class DumpScheduledTransactionsSubcommand { + static void doit( + @NonNull final SignedStateHolder state, + @NonNull final Path scheduledTxsPath, + @NonNull final DumpStateCommand.EmitSummary emitSummary, + @NonNull final SignedStateCommand.Verbosity verbosity) { + new DumpScheduledTransactionsSubcommand(state, scheduledTxsPath, emitSummary, verbosity).doit(); + } + + @NonNull + final SignedStateHolder state; + + @NonNull + final Path scheduledTxsPath; + + @NonNull + final DumpStateCommand.EmitSummary emitSummary; + + @NonNull + final SignedStateCommand.Verbosity verbosity; + + DumpScheduledTransactionsSubcommand( + @NonNull final SignedStateHolder state, + @NonNull final Path scheduledTxsPath, + @NonNull final DumpStateCommand.EmitSummary emitSummary, + @NonNull final SignedStateCommand.Verbosity verbosity) { + requireNonNull(state, "state"); + requireNonNull(scheduledTxsPath, "signedTxsPath"); + requireNonNull(emitSummary, "emitSummary"); + requireNonNull(verbosity, "verbosity"); + + this.state = state; + this.scheduledTxsPath = scheduledTxsPath; + this.emitSummary = emitSummary; + this.verbosity = verbosity; + } + + void doit() { + final var scheduledTransactions = state.getScheduledTransactions().byId(); + System.out.printf("=== %d scheduled transactions ===%n", scheduledTransactions.size()); + + final var allScheduledTxs = gatherScheduledTransactions(scheduledTransactions); + + int reportSize; + try (@NonNull final var writer = new Writer(scheduledTxsPath)) { + if (emitSummary == DumpStateCommand.EmitSummary.YES) reportSummary(writer, allScheduledTxs); + reportOnScheduledTransactions(writer, allScheduledTxs); + reportSize = writer.getSize(); + } + + System.out.printf("=== scheduled transactions report is %d bytes%n", reportSize); + } + + @SuppressWarnings( + "java:S6218") // "Equals/hashcode method should be overridden in records containing array fields" - this + record ScheduledTransaction( + long number, + @Nullable Key grpcAdminKey, + @NonNull Optional adminKey, + @Nullable String memo, + boolean deleted, + boolean executed, + boolean calculatedWaitForExpiry, + boolean waitForExpiryProvided, + @Nullable EntityId payer, + @NonNull EntityId schedulingAccount, + @NonNull RichInstant schedulingTXValidStart, + @Nullable RichInstant expirationTimeProvided, + @Nullable RichInstant calculatedExpirationTime, + @Nullable RichInstant resolutionTime, + byte[] bodyBytes, + @NonNull TransactionBody ordinaryScheduledTxn, + @NonNull SchedulableTransactionBody scheduledTxn, + @NonNull List signatories, + @NonNull List notary) { + + ScheduledTransaction(@NonNull final ScheduleVirtualValue scheduledTx) { + this( + scheduledTx.getKey().getKeyAsLong(), + scheduledTx.grpcAdminKey(), + scheduledTx.adminKey(), + scheduledTx.memo().orElse(""), + scheduledTx.isDeleted(), + scheduledTx.isExecuted(), + scheduledTx.calculatedWaitForExpiry(), + scheduledTx.waitForExpiryProvided(), + scheduledTx.payer(), + scheduledTx.schedulingAccount(), + scheduledTx.schedulingTXValidStart(), + scheduledTx.expirationTimeProvided(), + scheduledTx.calculatedExpirationTime(), + scheduledTx.getResolutionTime(), + scheduledTx.bodyBytes(), + scheduledTx.ordinaryViewOfScheduledTxn(), + scheduledTx.scheduledTxn(), + scheduledTx.signatories(), + scheduledTx.notary().stream().map(ByteString::toByteArray).toList()); + Objects.requireNonNull(adminKey, "adminKey"); + Objects.requireNonNull(schedulingAccount, "schedulingAccount"); + Objects.requireNonNull(schedulingTXValidStart, "schedulingTXValidStart"); + Objects.requireNonNull(ordinaryScheduledTxn, "ordinaryScheduledTxn"); + Objects.requireNonNull(scheduledTxn, "scheduledTxn"); + Objects.requireNonNull(signatories, "signatories"); + Objects.requireNonNull(notary, "notary"); + } + } + + @NonNull + Map gatherScheduledTransactions( + @NonNull final MerkleMapLike scheduledTxsStore) { + final var allScheduledTransactions = new TreeMap(); + scheduledTxsStore.forEachNode( + (en, mt) -> allScheduledTransactions.put(en.getKeyAsLong(), new ScheduledTransaction(mt))); + return allScheduledTransactions; + } + + void reportSummary(@NonNull Writer writer, @NonNull Map scheduledTxs) { + writer.writeln("=== %7d: scheduled transactions".formatted(scheduledTxs.size())); + writer.writeln(""); + } + + void reportOnScheduledTransactions(@NonNull Writer writer, @NonNull Map scheduledTxs) { + writer.writeln(formatHeader()); + scheduledTxs.entrySet().stream() + .sorted(Map.Entry.comparingByKey()) + .forEach(e -> formatScheduledTransaction(writer, e.getValue())); + writer.writeln(""); + } + + void formatScheduledTransaction(@NonNull final Writer writer, @NonNull final ScheduledTransaction scheduledTx) { + final var fb = new FieldBuilder(FIELD_SEPARATOR); + fieldFormatters.stream().map(Pair::right).forEach(ff -> ff.accept(fb, scheduledTx)); + writer.writeln(fb); + } + + @NonNull + String formatHeader() { + return fieldFormatters.stream().map(Pair::left).collect(Collectors.joining(FIELD_SEPARATOR)); + } + + static final String FIELD_SEPARATOR = ";"; + static final String SUBFIELD_SEPARATOR = ","; + static Function booleanFormatter = b -> b ? "T" : ""; + static Function csvQuote = s -> quoteForCsv(FIELD_SEPARATOR, (s == null) ? "" : s.toString()); + + @NonNull + static List>> fieldFormatters = List.of( + Pair.of("number", getFieldFormatter(ScheduledTransaction::number, Object::toString)), + Pair.of("grpcAdminKey", getFieldFormatter(ScheduledTransaction::grpcAdminKey, csvQuote)), + Pair.of( + "adminKey", + getFieldFormatter( + ScheduledTransaction::adminKey, getOptionalFormatter(ThingsToStrings::toStringOfJKey))), + Pair.of("memo", getFieldFormatter(ScheduledTransaction::memo, csvQuote)), + Pair.of("isDeleted", getFieldFormatter(ScheduledTransaction::deleted, booleanFormatter)), + Pair.of("isExecuted", getFieldFormatter(ScheduledTransaction::executed, booleanFormatter)), + Pair.of( + "calculatedWaitForExpiry", + getFieldFormatter(ScheduledTransaction::calculatedWaitForExpiry, booleanFormatter)), + Pair.of( + "waitForExpiryProvided", + getFieldFormatter(ScheduledTransaction::waitForExpiryProvided, booleanFormatter)), + Pair.of("payer", getFieldFormatter(ScheduledTransaction::payer, ThingsToStrings::toStringOfEntityId)), + Pair.of( + "schedulingAccount", + getFieldFormatter(ScheduledTransaction::schedulingAccount, ThingsToStrings::toStringOfEntityId)), + Pair.of( + "schedulingTXValidStart", + getFieldFormatter( + ScheduledTransaction::schedulingTXValidStart, ThingsToStrings::toStringOfRichInstant)), + Pair.of( + "expirationTimeProvided", + getFieldFormatter( + ScheduledTransaction::expirationTimeProvided, + getNullableFormatter(ThingsToStrings::toStringOfRichInstant))), + Pair.of( + "calculatedExpirationTime", + getFieldFormatter( + ScheduledTransaction::calculatedExpirationTime, + getNullableFormatter(ThingsToStrings::toStringOfRichInstant))), + Pair.of( + "resolutionTime", + getFieldFormatter( + ScheduledTransaction::resolutionTime, + getNullableFormatter(ThingsToStrings::toStringOfRichInstant))), + Pair.of( + "bodyBytes", + getFieldFormatter(ScheduledTransaction::bodyBytes, ThingsToStrings::toStringOfByteArray)), + Pair.of("ordinaryScheduledTxn", getFieldFormatter(ScheduledTransaction::ordinaryScheduledTxn, csvQuote)), + Pair.of("scheduledTxn", getFieldFormatter(ScheduledTransaction::scheduledTxn, csvQuote)), + Pair.of( + "signatories", + getFieldFormatter( + ScheduledTransaction::signatories, + getListFormatter(ThingsToStrings::toStringOfByteArray, SUBFIELD_SEPARATOR))), + Pair.of( + "notary", + getFieldFormatter( + ScheduledTransaction::notary, + getListFormatter(ThingsToStrings::toStringOfByteArray, SUBFIELD_SEPARATOR)))); + + static BiConsumer getFieldFormatter( + @NonNull final Function fun, @NonNull final Function formatter) { + return (fb, t) -> formatField(fb, t, fun, formatter); + } + + static void formatField( + @NonNull final FieldBuilder fb, + @NonNull final ScheduledTransaction scheduledTransaction, + @NonNull final Function fun, + @NonNull final Function formatter) { + fb.append(formatter.apply(fun.apply(scheduledTransaction))); + } +} diff --git a/hedera-node/cli-clients/src/main/java/com/hedera/services/cli/signedstate/DumpStateCommand.java b/hedera-node/cli-clients/src/main/java/com/hedera/services/cli/signedstate/DumpStateCommand.java index ad6253aafed9..769d49ee3f87 100644 --- a/hedera-node/cli-clients/src/main/java/com/hedera/services/cli/signedstate/DumpStateCommand.java +++ b/hedera-node/cli-clients/src/main/java/com/hedera/services/cli/signedstate/DumpStateCommand.java @@ -355,6 +355,27 @@ void topics( finish(); } + @Command(name = "scheduled-transactions", description = "Dump scheduled transactions") + void scheduledTransactions( + @Option( + names = {"--scheduled-transaction"}, + required = true, + arity = "1", + description = "Output file for scheduled transactions dump") + @NonNull + final Path scheduledTxsPath, + @Option( + names = {"-s", "--summary"}, + description = "Emit summary information") + final boolean emitSummary) { + Objects.requireNonNull(scheduledTxsPath); + init(); + System.out.println("=== scheduled transactions ==="); + DumpScheduledTransactionsSubcommand.doit( + parent.signedState, scheduledTxsPath, emitSummary ? EmitSummary.YES : EmitSummary.NO, parent.verbosity); + finish(); + } + /** Setup to run a dump subcommand: If _first_ subcommand being run then open signed state file */ void init() { if (thisSubcommandsNumber == null) { diff --git a/hedera-node/cli-clients/src/main/java/com/hedera/services/cli/signedstate/DumpTokensSubcommand.java b/hedera-node/cli-clients/src/main/java/com/hedera/services/cli/signedstate/DumpTokensSubcommand.java index 6fae43d87651..39aa4589fa0c 100644 --- a/hedera-node/cli-clients/src/main/java/com/hedera/services/cli/signedstate/DumpTokensSubcommand.java +++ b/hedera-node/cli-clients/src/main/java/com/hedera/services/cli/signedstate/DumpTokensSubcommand.java @@ -16,6 +16,9 @@ package com.hedera.services.cli.signedstate; +import static com.hedera.services.cli.utils.Formatters.getListFormatter; +import static com.hedera.services.cli.utils.Formatters.getNullableFormatter; +import static com.hedera.services.cli.utils.Formatters.getOptionalFormatter; import static com.hedera.services.cli.utils.ThingsToStrings.quoteForCsv; import static com.hedera.services.cli.utils.ThingsToStrings.toStructureSummaryOfJKey; @@ -31,6 +34,7 @@ import com.hedera.services.cli.signedstate.DumpStateCommand.KeyDetails; import com.hedera.services.cli.signedstate.DumpStateCommand.WithFeeSummary; import com.hedera.services.cli.signedstate.SignedStateCommand.Verbosity; +import com.hedera.services.cli.utils.FieldBuilder; import com.hedera.services.cli.utils.ThingsToStrings; import com.hedera.services.cli.utils.Writer; import com.swirlds.base.utility.Pair; @@ -281,28 +285,6 @@ void reportSummary(@NonNull Writer writer, @NonNull EnumMap fieldSeparator.length()) sb.setLength(sb.length() - fieldSeparator.length()); - return sb.toString(); - } - } - static Function booleanFormatter = b -> b ? "T" : ""; static Function csvQuote = s -> quoteForCsv(FIELD_SEPARATOR, s); @@ -352,31 +334,6 @@ static void formatField( fb.append(formatter.apply(fun.apply(token))); } - static Function, String> getOptionalFormatter(@NonNull final Function formatter) { - return ot -> ot.isPresent() ? formatter.apply(ot.get()) : ""; - } - - static Function getNullableFormatter(@NonNull final Function formatter) { - return t -> null != t ? formatter.apply(t) : ""; - } - - static Function, String> getListFormatter( - @NonNull final Function formatter, @NonNull final String subfieldSeparator) { - return lt -> { - if (!lt.isEmpty()) { - final var sb = new StringBuilder(); - for (@NonNull final var e : lt) { - final var v = formatter.apply(e); - sb.append(v); - sb.append(subfieldSeparator); - } - // Remove last subfield separator - if (sb.length() >= subfieldSeparator.length()) sb.setLength(sb.length() - subfieldSeparator.length()); - return sb.toString(); - } else return ""; - }; - } - void formatToken(@NonNull final Writer writer, @NonNull final Token token) { final var fb = new FieldBuilder(FIELD_SEPARATOR); fieldFormatters.stream().map(Pair::right).forEach(ff -> ff.accept(fb, token)); diff --git a/hedera-node/cli-clients/src/main/java/com/hedera/services/cli/signedstate/DumpTopicsSubcommand.java b/hedera-node/cli-clients/src/main/java/com/hedera/services/cli/signedstate/DumpTopicsSubcommand.java index 555911647e8a..a41ffa53b0e1 100644 --- a/hedera-node/cli-clients/src/main/java/com/hedera/services/cli/signedstate/DumpTopicsSubcommand.java +++ b/hedera-node/cli-clients/src/main/java/com/hedera/services/cli/signedstate/DumpTopicsSubcommand.java @@ -16,6 +16,7 @@ package com.hedera.services.cli.signedstate; +import static com.hedera.services.cli.utils.Formatters.getNullableFormatter; import static com.hedera.services.cli.utils.ThingsToStrings.getMaybeStringifyByteString; import static com.hedera.services.cli.utils.ThingsToStrings.quoteForCsv; import static java.util.Objects.requireNonNull; @@ -27,8 +28,8 @@ import com.hedera.node.app.service.mono.state.submerkle.RichInstant; import com.hedera.node.app.service.mono.utils.EntityNum; import com.hedera.services.cli.signedstate.DumpStateCommand.EmitSummary; -import com.hedera.services.cli.signedstate.DumpTokensSubcommand.FieldBuilder; import com.hedera.services.cli.signedstate.SignedStateCommand.Verbosity; +import com.hedera.services.cli.utils.FieldBuilder; import com.hedera.services.cli.utils.ThingsToStrings; import com.hedera.services.cli.utils.Writer; import com.swirlds.base.utility.Pair; @@ -190,10 +191,6 @@ static BiConsumer getFieldFormatter( return (fb, t) -> formatField(fb, t, fun, formatter); } - static Function getNullableFormatter(@NonNull final Function formatter) { - return t -> null != t ? formatter.apply(t) : ""; - } - static void formatField( @NonNull final FieldBuilder fb, @NonNull final Topic topic, diff --git a/hedera-node/cli-clients/src/main/java/com/hedera/services/cli/signedstate/DumpUniqueTokensSubcommand.java b/hedera-node/cli-clients/src/main/java/com/hedera/services/cli/signedstate/DumpUniqueTokensSubcommand.java index 05442e1b4d7f..eb628c5d570c 100644 --- a/hedera-node/cli-clients/src/main/java/com/hedera/services/cli/signedstate/DumpUniqueTokensSubcommand.java +++ b/hedera-node/cli-clients/src/main/java/com/hedera/services/cli/signedstate/DumpUniqueTokensSubcommand.java @@ -30,6 +30,7 @@ import com.hedera.node.app.service.mono.utils.NftNumPair; import com.hedera.services.cli.signedstate.DumpStateCommand.EmitSummary; import com.hedera.services.cli.signedstate.SignedStateCommand.Verbosity; +import com.hedera.services.cli.utils.FieldBuilder; import com.hedera.services.cli.utils.ThingsToStrings; import com.hedera.services.cli.utils.Writer; import com.swirlds.base.utility.Pair; @@ -182,29 +183,6 @@ static RelatedEntities countRelatedEntities(@NonNull final Map fieldSeparator.length()) sb.setLength(sb.length() - fieldSeparator.length()); - return sb.toString(); - } - } - void reportOnUniques(@NonNull final Writer writer, @NonNull final Map uniques) { writer.writeln(formatHeader()); uniques.entrySet().stream() diff --git a/hedera-node/cli-clients/src/main/java/com/hedera/services/cli/signedstate/SignedStateHolder.java b/hedera-node/cli-clients/src/main/java/com/hedera/services/cli/signedstate/SignedStateHolder.java index d840f4328cd2..05188838b408 100644 --- a/hedera-node/cli-clients/src/main/java/com/hedera/services/cli/signedstate/SignedStateHolder.java +++ b/hedera-node/cli-clients/src/main/java/com/hedera/services/cli/signedstate/SignedStateHolder.java @@ -19,6 +19,7 @@ import com.hedera.node.app.service.mono.ServicesState; import com.hedera.node.app.service.mono.state.adapters.MerkleMapLike; import com.hedera.node.app.service.mono.state.adapters.VirtualMapLike; +import com.hedera.node.app.service.mono.state.merkle.MerkleScheduledTransactions; import com.hedera.node.app.service.mono.state.merkle.MerkleSpecialFiles; import com.hedera.node.app.service.mono.state.merkle.MerkleToken; import com.hedera.node.app.service.mono.state.merkle.MerkleTopic; @@ -305,6 +306,14 @@ public VirtualMapLike getRawContractStorage( return rawContractStorage; } + /** Get all scheduled transactions */ + @NonNull + public MerkleScheduledTransactions getScheduledTransactions() { + final var scheduledTransactions = servicesState.scheduleTxs(); + assertSignedStateComponentExists(scheduledTransactions, "scheduledTransactions"); + return scheduledTransactions; + } + /** Deserialize the signed state file into an in-memory data structure. */ @NonNull private Pair dehydrate(@NonNull final List configurationPaths) { diff --git a/hedera-node/cli-clients/src/main/java/com/hedera/services/cli/utils/FieldBuilder.java b/hedera-node/cli-clients/src/main/java/com/hedera/services/cli/utils/FieldBuilder.java new file mode 100644 index 000000000000..5ec74fee0367 --- /dev/null +++ b/hedera-node/cli-clients/src/main/java/com/hedera/services/cli/utils/FieldBuilder.java @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2024 Hedera Hashgraph, LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.hedera.services.cli.utils; + +import edu.umd.cs.findbugs.annotations.NonNull; + +public class FieldBuilder { + final StringBuilder sb; + final String fieldSeparator; + + public FieldBuilder(@NonNull final String fieldSeparator) { + this.sb = new StringBuilder(); + this.fieldSeparator = fieldSeparator; + } + + public void append(@NonNull final String v) { + sb.append(v); + sb.append(fieldSeparator); + } + + @Override + @NonNull + public String toString() { + if (sb.length() > fieldSeparator.length()) sb.setLength(sb.length() - fieldSeparator.length()); + return sb.toString(); + } +} diff --git a/hedera-node/cli-clients/src/main/java/com/hedera/services/cli/utils/Formatters.java b/hedera-node/cli-clients/src/main/java/com/hedera/services/cli/utils/Formatters.java new file mode 100644 index 000000000000..26fef34dcc48 --- /dev/null +++ b/hedera-node/cli-clients/src/main/java/com/hedera/services/cli/utils/Formatters.java @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2024 Hedera Hashgraph, LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.hedera.services.cli.utils; + +import edu.umd.cs.findbugs.annotations.NonNull; +import java.util.List; +import java.util.Optional; +import java.util.function.Function; + +public class Formatters { + public static Function, String> getListFormatter( + @NonNull final Function formatter, @NonNull final String subfieldSeparator) { + return lt -> { + if (!lt.isEmpty()) { + final var sb = new StringBuilder(); + for (@NonNull final var e : lt) { + final var v = formatter.apply(e); + sb.append(v); + sb.append(subfieldSeparator); + } + // Remove last subfield separator + if (sb.length() >= subfieldSeparator.length()) sb.setLength(sb.length() - subfieldSeparator.length()); + return sb.toString(); + } else return ""; + }; + } + + public static Function, String> getOptionalFormatter(@NonNull final Function formatter) { + return ot -> ot.isPresent() ? formatter.apply(ot.get()) : ""; + } + + public static Function getNullableFormatter(@NonNull final Function formatter) { + return t -> null != t ? formatter.apply(t) : ""; + } +} diff --git a/hedera-node/config.txt b/hedera-node/config.txt index 839663e904b2..e9db3aec23f2 100755 --- a/hedera-node/config.txt +++ b/hedera-node/config.txt @@ -3,7 +3,6 @@ ############################################################################################### swirld, 123 -# app, HashgraphDemo.jar, 1,0,0,0,0,0,0,0,0,0, all # app, GameDemo.jar, 9000, 9000 # app, HelloSwirldDemo.jar # app, CryptocurrencyDemo.jar @@ -72,12 +71,6 @@ nextNodeId, 1 # # FilesystemDemo.jar parameters: none # -# HashGraphDemo.jar takes parameters that give the initial checkbox settings, -# in the same order they appear are on the screen, with 1 to check it -# and 0 to not check it, followed by the number of events to display -# (or “all”). The first parameter controls whether it runs -# slowly (1) or runs at full speed (0). -# # GameDemo.jar parameters: # height: height of the board (in cells). Player moves 1 cell at a time. # width: width of the board (in cells). Player moves 1 cell at a time. diff --git a/hedera-node/configuration/testnet/upgrade/throttles.json b/hedera-node/configuration/testnet/upgrade/throttles.json index e5bdeef38ffb..a4a418bbf97a 100644 --- a/hedera-node/configuration/testnet/upgrade/throttles.json +++ b/hedera-node/configuration/testnet/upgrade/throttles.json @@ -1,172 +1,181 @@ { "buckets": [ - { - "burstPeriod": 0, - "burstPeriodMs": 3000, - "name": "ThroughputLimits", - "throttleGroups": [ - { - "opsPerSec": 10000, - "milliOpsPerSec": 10000000, - "operations": [ - "ScheduleCreate", - "CryptoCreate", - "CryptoTransfer", - "CryptoUpdate", - "CryptoDelete", - "CryptoGetInfo", - "CryptoGetAccountRecords", - "ConsensusCreateTopic", - "ConsensusSubmitMessage", - "ConsensusUpdateTopic", - "ConsensusDeleteTopic", - "ConsensusGetTopicInfo", - "TokenGetNftInfo", - "TokenGetInfo", - "ScheduleDelete", - "ScheduleGetInfo", - "FileGetContents", - "FileGetInfo", - "ContractUpdate", - "ContractDelete", - "ContractGetInfo", - "ContractGetBytecode", - "ContractGetRecords", - "ContractCallLocal", - "TransactionGetRecord", - "GetVersionInfo", - "TokenGetAccountNftInfos", - "TokenGetNftInfos", - "CryptoApproveAllowance", - "CryptoDeleteAllowance", - "UtilPrng" - ] - }, - { - "opsPerSec": 13, - "milliOpsPerSec": 13000, - "operations": [ - "FileCreate", - "FileUpdate", - "FileAppend", - "FileDelete" - ] - }, - { - "opsPerSec": 100, - "milliOpsPerSec": 100000, - "operations": [ - "ScheduleSign" - ] - }, - { - "opsPerSec": 350, - "operations": [ - "ContractCall", - "ContractCreate", - "EthereumTransaction" - ] - }, - { - "opsPerSec": 3000, - "milliOpsPerSec": 3000000, - "operations": [ - "TokenCreate", - "TokenDelete", - "TokenMint", - "TokenBurn", - "TokenUpdate", - "TokenFeeScheduleUpdate", - "TokenAssociateToAccount", - "TokenAccountWipe", - "TokenDissociateFromAccount", - "TokenFreezeAccount", - "TokenUnfreezeAccount", - "TokenGrantKycToAccount", - "TokenRevokeKycFromAccount", - "TokenPause", - "TokenUnpause" - ] - } - ] - }, - { - "burstPeriod": 1, - "name": "OffHeapQueryLimits", - "throttleGroups": [ - { - "opsPerSec": 700, - "operations": [ - "FileGetContents", - "FileGetInfo", - "ContractGetInfo", - "ContractGetBytecode", - "ContractCallLocal" - ] - } - ] - }, - { - "burstPeriod": 0, - "burstPeriodMs": 3000, - "name": "PriorityReservations", - "throttleGroups": [ - { - "opsPerSec": 10, - "milliOpsPerSec": 10000, - "operations": [ - "FileCreate", - "FileUpdate", - "FileAppend", - "FileDelete" - ] - } - ] - }, - { - "burstPeriod": 0, - "burstPeriodMs": 15000, - "name": "CreationLimits", - "throttleGroups": [ - { - "opsPerSec": 2, - "milliOpsPerSec": 2000, - "operations": [ - "CryptoCreate" - ] - }, - { - "opsPerSec": 5, - "milliOpsPerSec": 5000, - "operations": [ - "ConsensusCreateTopic" - ] - }, - { - "opsPerSec": 100, - "milliOpsPerSec": 100000, - "operations": [ - "TokenCreate", - "TokenAssociateToAccount", - "ScheduleCreate" - ] - } - ] - }, - { - "burstPeriod": 0, - "burstPeriodMs": 1000, - "name": "FreeQueryLimits", - "throttleGroups": [ - { - "opsPerSec": 1000000, - "milliOpsPerSec": 1000000000, - "operations": [ - "CryptoGetAccountBalance", - "TransactionGetReceipt" - ] - } - ] - } + { + "burstPeriod": 0, + "burstPeriodMs": 15000, + "name": "ThroughputLimits", + "throttleGroups": [ + { + "opsPerSec": 0, + "milliOpsPerSec": 10500000, + "operations": [ + "ScheduleCreate", + "CryptoCreate", + "CryptoTransfer", + "CryptoUpdate", + "CryptoDelete", + "CryptoGetInfo", + "CryptoGetAccountRecords", + "ConsensusCreateTopic", + "ConsensusSubmitMessage", + "ConsensusUpdateTopic", + "ConsensusDeleteTopic", + "ConsensusGetTopicInfo", + "TokenGetNftInfo", + "TokenGetInfo", + "ScheduleDelete", + "ScheduleGetInfo", + "FileGetContents", + "FileGetInfo", + "ContractUpdate", + "ContractDelete", + "ContractGetInfo", + "ContractGetBytecode", + "ContractGetRecords", + "ContractCallLocal", + "TransactionGetRecord", + "GetVersionInfo", + "TokenGetAccountNftInfos", + "TokenGetNftInfos", + "CryptoApproveAllowance", + "CryptoDeleteAllowance", + "UtilPrng" + ] + }, + { + "opsPerSec": 0, + "milliOpsPerSec": 13000, + "operations": [ + "FileCreate", + "FileUpdate", + "FileAppend", + "FileDelete" + ] + }, + { + "opsPerSec": 0, + "milliOpsPerSec": 100000, + "operations": [ + "ScheduleSign" + ] + }, + { + "opsPerSec": 0, + "milliOpsPerSec": 1250000, + "operations": [ + "TokenMint" + ] + }, + { + "opsPerSec": 0, + "milliOpsPerSec": 350000, + "operations": [ + "ContractCall", + "ContractCreate", + "EthereumTransaction" + ] + }, + { + "opsPerSec": 0, + "milliOpsPerSec": 3000000, + "operations": [ + "TokenCreate", + "TokenDelete", + "TokenBurn", + "TokenUpdate", + "TokenFeeScheduleUpdate", + "TokenAssociateToAccount", + "TokenAccountWipe", + "TokenDissociateFromAccount", + "TokenFreezeAccount", + "TokenUnfreezeAccount", + "TokenGrantKycToAccount", + "TokenRevokeKycFromAccount", + "TokenPause", + "TokenUnpause" + ] + } + ] + }, + { + "burstPeriod": 0, + "burstPeriodMs": 1000, + "name": "OffHeapQueryLimits", + "throttleGroups": [ + { + "opsPerSec": 0, + "milliOpsPerSec": 700000, + "operations": [ + "FileGetContents", + "FileGetInfo", + "ContractGetInfo", + "ContractGetBytecode", + "ContractCallLocal" + ] + } + ] + }, + { + "burstPeriod": 0, + "burstPeriodMs": 3000, + "name": "PriorityReservations", + "throttleGroups": [ + { + "opsPerSec": 0, + "milliOpsPerSec": 10000, + "operations": [ + "FileCreate", + "FileUpdate", + "FileAppend", + "FileDelete" + ] + } + ] + }, + { + "burstPeriod": 0, + "burstPeriodMs": 15000, + "name": "CreationLimits", + "throttleGroups": [ + { + "opsPerSec": 0, + "milliOpsPerSec": 200000, + "operations": [ + "CryptoCreate" + ] + }, + { + "opsPerSec": 0, + "milliOpsPerSec": 50000, + "operations": [ + "ConsensusCreateTopic" + ] + }, + { + "opsPerSec": 0, + "milliOpsPerSec": 100000, + "operations": [ + "TokenCreate", + "TokenAssociateToAccount", + "ScheduleCreate" + ] + } + ] + }, + { + "burstPeriod": 0, + "burstPeriodMs": 1000, + "name": "FreeQueryLimits", + "throttleGroups": [ + { + "opsPerSec": 0, + "milliOpsPerSec": 1000000000, + "operations": [ + "CryptoGetAccountBalance", + "TransactionGetReceipt" + ] + } + ] + } ] } diff --git a/hedera-node/docs/dev/testnet-rekey.md b/hedera-node/docs/dev/testnet-rekey.md deleted file mode 100644 index eeef72552b5d..000000000000 --- a/hedera-node/docs/dev/testnet-rekey.md +++ /dev/null @@ -1,129 +0,0 @@ -# :old_key: Re-keying treasury on a testnet saved state - -This document describes how you use your local environment to -change the `0.0.2` key on a saved state from stable testnet. -(We can then update our migration tests to use the new state -and key, without any security concerns.) - -:bangbang:  There is one important prerequisite to this guide: - -1. Since only `0.0.2` can update the treasury key, you must - have a local PEM/passphrase combination with the current - `0.0.2` key on stable testnet. - -:warning:  Always follow these steps **on the tag** matching -the version of testnet state that DevOps provided. For example, if -DevOps provided a 0.14.0 state, do everything that follows on the -`v0.14.0` tag! - -Also, note that at the time of writing, stable testnet has five nodes; -this number appears below in a couple places which should be easy to -adapt if needed. - -## Preparing to start Services from the saved state - -### Setting up data/saved/ - -Let's suppose you have the _SignedState.swh_ and _PostgresBackup.tar.gz_ -from round 123456789 on testnet in a directory -_~/dev/states/stabletestnet/current_. We begin by running, from the -root of the Services project, - -``` -$ run/reset-data-saved-from.sh \ -> ~/dev/states/stabletestnet/current \ -> 123456789 \ -> 5 -``` - -This should copy the state files into five node-scoped subdirectories under -_hedera-node/data/saved/com.hedera.services.ServicesMain_. - -### Restoring the PostgreSQL state - -Open a new terminal at _hedera-node/data/backup_. Then run, - -``` -$ ./pg_restore_manual.sh \ -> ~/dev/states/stabletestnet/current/PostgresBackup.tar.gz -``` - -:mantelpiece_clock: Don't worry if it appears to hang, -this will take several minutes in the best case! - -### Setting Platform config - -Ensure your _hedera-node/settings.txt_ contains the lines, - -``` -dbRestore.active, 0 -dbBackup.active, 0 -``` - -And that you have enough nodes in your _config.txt_ address book, - -``` -address, A, Alice, 1, 127.0.0.1, 50204, 127.0.0.1, 50204, 0.0.3 -address, B, Bob, 1, 127.0.0.1, 50205, 127.0.0.1, 50205, 0.0.4 -address, C, Carol, 1, 127.0.0.1, 50206, 127.0.0.1, 50206, 0.0.5 -address, D, Dave, 1, 127.0.0.1, 50207, 127.0.0.1, 50207, 0.0.6 -address, E, Eric, 1, 127.0.0.1, 50208, 127.0.0.1, 50208, 0.0.7 -``` - -## Starting Services - -Whether you are starting Services from IntelliJ or command line, -make sure you give it sufficient heap (8GB to be safe). In IntelliJ -this looks like, - -![](../assets/VM-options-for-local-testnet-rekey.png) - -Then start Services and wait for a long time until you see Platform -is `ACTIVE` - -### Rekeying and freezing - -:old_key: Put your PEM with the current testnet treasury key -at _test-clients/stabletestnet-account2.pem_. Update the EET suite -`com.hedera.services.bdd.suites.misc.RekeySavedStateTreasury` with -the passphrase to your PEM file on L68, changing, - -``` -... -final var passphraseForOriginalPemLoc = ""; -... -``` - -Now run the `RekeySavedStateTreasury` suite. The new treasury key -will be saved at, - -1. _test-clients/DevStableTestnetStartUpAccount.txt_ -2. _test-clients/dev-stabletestnet-account2.pem_ - -...where the first is a legacy Base64-encoded "startup account"; and -the PEM file has a passphrase of "swirlds". - -Next, run the `FreezeRekeyedState` EET suite. It should end with logs like, - -``` -... -2021-05-04 09:47:26.187 INFO 311 HapiApiSpec - 'FreezeRekeyedState' finished initial execution of HapiFreeze{sigs=1, node=0.0.3, start=14:48, end=14:49} -2021-05-04 09:47:26.691 INFO 330 HapiApiSpec - 'FreezeRekeyedState' - final status: PASSED! -``` - -## Capturing the new state - -:bangbang: Now we need a minute or two for Services logs to go -through the `MAINTENANCE -> ACTIVE` cycle. - -After the `Freeze` has written a new signed state to disk, you can -stop Services and archive the state with the new treasury key, - -``` -$ tar -cvf rekeyed-testnet-round65464591.tar.gz \ -> hedera-node/data/saved/com.hedera.node.app.ServicesMain/0/123/65464591 -``` - -(Here 65464591 was the round of state saved by the `Freeze`.) - -You're done! Enjoy your shiny new treasury key. diff --git a/hedera-node/docs/docker-quickstart.md b/hedera-node/docs/docker-quickstart.md index 00e4a0c6f7e5..94baa21ae3b6 100644 --- a/hedera-node/docs/docker-quickstart.md +++ b/hedera-node/docs/docker-quickstart.md @@ -107,9 +107,8 @@ under the `startupAccounts.path` key). ## Stopping or reinitializing the Compose network -As you run operations against the local network, each node will periodically save its state using -a combination of PostgreSQL tables under _compose-network/pgdata/_ and state files under, for example, -_compose-network/node0/saved/com.hedera.node.app.ServicesMain/0/hedera/_. +As you run operations against the local network, each node will periodically save its state to +state files under, for example, _compose-network/node0/saved/com.hedera.node.app.ServicesMain/0/hedera/_. To stop the network, use `Ctrl+C` (or `docker-compose stop` if running with detached containers). @@ -144,7 +143,7 @@ externalize the Hedera Services and Platform logs. For example: ``` Note that the container must have routes to the other network nodes listed in -_config.txt_, and the PostgreSQL server given by `dbConnection.host` in _settings.txt_. +_config.txt_. ### Limitations diff --git a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/ByteStringUtils.java b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/ByteStringUtils.java index 4de491415f88..da395f0eef30 100644 --- a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/ByteStringUtils.java +++ b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/ByteStringUtils.java @@ -91,13 +91,13 @@ public void write(final byte[] bytes, final int offset, final int length) throws } @Override - public void writeLazy(final byte[] bytes, final int offset, final int length) { - this.bytes = bytes; + public void write(final ByteBuffer value) throws IOException { + throw new UnsupportedOperationException(); } @Override - public void write(final ByteBuffer value) throws IOException { - throw new UnsupportedOperationException(); + public void writeLazy(final byte[] bytes, final int offset, final int length) { + this.bytes = bytes; } @Override diff --git a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/CommonUtils.java b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/CommonUtils.java index eef786a435d0..8542f47d7684 100644 --- a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/CommonUtils.java +++ b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/CommonUtils.java @@ -205,7 +205,7 @@ public static HederaFunctionality functionOf(@NonNull final TransactionBody txn) } /** - *get the EVM address from the long number + * get the EVM address from the long number. * * @param num the input long number * @return evm address diff --git a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/SignatureGenerator.java b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/SignatureGenerator.java index be8b353b0e0f..1bd034427897 100644 --- a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/SignatureGenerator.java +++ b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/SignatureGenerator.java @@ -65,19 +65,19 @@ public static byte[] signBytes(final byte[] msg, final PrivateKey privateKey) } private static byte[] rawEcdsaSigFromAsn1Der(final byte[] derSig) { - final var R_LEN_INDEX = 3; + final var rLenIndex = 3; final var rawBytes = new byte[64]; - final var origRLen = derSig[R_LEN_INDEX] & 0xff; + final var origRLen = derSig[rLenIndex] & 0xff; int finalRLen = origRLen; - int rStart = R_LEN_INDEX + 1; + int rStart = rLenIndex + 1; while (finalRLen > 32) { rStart++; finalRLen--; } System.arraycopy(derSig, rStart, rawBytes, 32 - finalRLen, Math.min(32, origRLen)); - final var sLenPos = R_LEN_INDEX + (derSig[R_LEN_INDEX] & 0xff) + 2; + final var sLenPos = rLenIndex + (derSig[rLenIndex] & 0xff) + 2; final var origSLen = derSig[sLenPos] & 0xff; int finalSLen = origSLen; diff --git a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/builder/RequestBuilder.java b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/builder/RequestBuilder.java index df701b2024fa..7fb2dbb1a62d 100644 --- a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/builder/RequestBuilder.java +++ b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/builder/RequestBuilder.java @@ -118,6 +118,52 @@ public static Transaction getCreateAccountBuilder( autoRenew); } + public static Transaction getCreateAccountBuilder( + Long payerAccountNum, + Long payerRealmNum, + Long payerShardNum, + Long nodeAccountNum, + Long nodeRealmNum, + Long nodeShardNum, + long transactionFee, + Timestamp startTime, + Duration transactionDuration, + boolean generateRecord, + String memo, + Key key, + long initBal, + long sendRecordThreshold, + long receiveRecordThreshold, + boolean receiverSign, + Duration autoRenew) { + CryptoCreateTransactionBody createAccount = CryptoCreateTransactionBody.newBuilder() + .setKey(key) + .setInitialBalance(initBal) + .setProxyAccountID(getAccountIdBuild(0L, 0L, 0L)) + .setReceiveRecordThreshold(receiveRecordThreshold) + .setSendRecordThreshold(sendRecordThreshold) + .setReceiverSigRequired(receiverSign) + .setAutoRenewPeriod(autoRenew) + .build(); + + TransactionBody.Builder body = getTransactionBody( + payerAccountNum, + payerRealmNum, + payerShardNum, + nodeAccountNum, + nodeRealmNum, + nodeShardNum, + transactionFee, + startTime, + transactionDuration, + generateRecord, + memo); + body.setCryptoCreateAccount(createAccount); + byte[] bodyBytesArr = body.build().toByteArray(); + ByteString bodyBytes = ByteString.copyFrom(bodyBytesArr); + return getAsTransaction(bodyBytes); + } + public static Transaction getAccountUpdateRequest( AccountID accountID, Long payerAccountNum, @@ -153,7 +199,7 @@ public static Transaction getAccountUpdateRequest( } /** - * Generates a transaction with a CryptoUpdateTransactionBody object pre-built by caller + * Generates a transaction with a CryptoUpdateTransactionBody object pre-built by caller. * * @param payerAccountNum payer account number * @param payerRealmNum payer realm number @@ -386,7 +432,7 @@ public static Query getContractRecordsQuery( } /** - * Builds a file create transaction + * Builds a file create transaction. * * @param payerAccountNum payer account number * @param payerRealmNum payer realm number @@ -444,7 +490,7 @@ public static Transaction getFileCreateBuilder( } /** - * Builds a file append transaction + * Builds a file append transaction. * * @param payerAccountNum payer account number * @param payerRealmNum payer realm number @@ -497,7 +543,7 @@ public static Transaction getFileAppendBuilder( } /** - * Builds a file update transaction + * Builds a file update transaction. * * @param payerAccountNum payer account number * @param payerRealmNum payer realm number @@ -557,7 +603,7 @@ public static Transaction getFileUpdateBuilder( } /** - * Builds a file deletion transaction + * Builds a file deletion transaction. * * @param payerAccountNum payer account number * @param payerRealmNum payer realm number @@ -622,7 +668,7 @@ public static Query getFileGetContentBuilder(Transaction payment, FileID fileID, } /** - * Get file get info builder + * Get file get info builder. * * @param payment payment * @param fileID file ID @@ -723,50 +769,6 @@ public static Transaction getCreateContractRequest( return getAsTransaction(bodyBytes); } - public static Transaction getCryptoTransferRequest( - Long payerAccountNum, - Long payerRealmNum, - Long payerShardNum, - Long nodeAccountNum, - Long nodeRealmNum, - Long nodeShardNum, - long transactionFee, - Timestamp timestamp, - Duration transactionDuration, - boolean generateRecord, - String memo, - Long senderActNum, - Long amountSend, - Long receiverAcctNum, - Long amountReceived) { - - AccountAmount a1 = AccountAmount.newBuilder() - .setAccountID(getAccountIdBuild(senderActNum, 0l, 0l)) - .setAmount(amountSend) - .build(); - AccountAmount a2 = AccountAmount.newBuilder() - .setAccountID(getAccountIdBuild(receiverAcctNum, 0l, 0l)) - .setAmount(amountReceived) - .build(); - TransferList transferList = TransferList.newBuilder() - .addAccountAmounts(a1) - .addAccountAmounts(a2) - .build(); - return getCryptoTransferRequest( - payerAccountNum, - payerRealmNum, - payerShardNum, - nodeAccountNum, - nodeRealmNum, - nodeShardNum, - transactionFee, - timestamp, - transactionDuration, - generateRecord, - memo, - transferList); - } - public static Transaction getHbarCryptoTransferRequestToAlias( Long payerAccountNum, Long payerRealmNum, @@ -785,11 +787,11 @@ public static Transaction getHbarCryptoTransferRequestToAlias( Long amountReceived) { AccountAmount a1 = AccountAmount.newBuilder() - .setAccountID(getAccountIdBuild(senderActNum, 0l, 0l)) + .setAccountID(getAccountIdBuild(senderActNum, 0L, 0L)) .setAmount(amountSend) .build(); AccountAmount a2 = AccountAmount.newBuilder() - .setAccountID(getAccountIdBuild(receivingAlias, 0l, 0l)) + .setAccountID(getAccountIdBuild(receivingAlias, 0L, 0L)) .setAmount(amountReceived) .build(); TransferList transferList = TransferList.newBuilder() @@ -830,17 +832,17 @@ public static Transaction getTokenTransferRequestToAlias( Long amountReceived) { AccountAmount a1 = AccountAmount.newBuilder() - .setAccountID(getAccountIdBuild(senderActNum, 0l, 0l)) + .setAccountID(getAccountIdBuild(senderActNum, 0L, 0L)) .setAmount(amountSend) .build(); AccountAmount a2 = AccountAmount.newBuilder() - .setAccountID(getAccountIdBuild(receivingAlias, 0l, 0l)) + .setAccountID(getAccountIdBuild(receivingAlias, 0L, 0L)) .setAmount(amountReceived) .build(); NftTransfer a3 = NftTransfer.newBuilder() .setReceiverAccountID( AccountID.newBuilder().setAlias(receivingAlias).build()) - .setSenderAccountID(getAccountIdBuild(senderActNum, 0l, 0l)) + .setSenderAccountID(getAccountIdBuild(senderActNum, 0L, 0L)) .setSerialNumber(1) .build(); TokenTransferList tokenTransferList = TokenTransferList.newBuilder() @@ -899,6 +901,50 @@ public static Transaction getCryptoTransferRequest( return getAsTransaction(bodyBytes); } + public static Transaction getCryptoTransferRequest( + Long payerAccountNum, + Long payerRealmNum, + Long payerShardNum, + Long nodeAccountNum, + Long nodeRealmNum, + Long nodeShardNum, + long transactionFee, + Timestamp timestamp, + Duration transactionDuration, + boolean generateRecord, + String memo, + Long senderActNum, + Long amountSend, + Long receiverAcctNum, + Long amountReceived) { + + AccountAmount a1 = AccountAmount.newBuilder() + .setAccountID(getAccountIdBuild(senderActNum, 0L, 0L)) + .setAmount(amountSend) + .build(); + AccountAmount a2 = AccountAmount.newBuilder() + .setAccountID(getAccountIdBuild(receiverAcctNum, 0L, 0L)) + .setAmount(amountReceived) + .build(); + TransferList transferList = TransferList.newBuilder() + .addAccountAmounts(a1) + .addAccountAmounts(a2) + .build(); + return getCryptoTransferRequest( + payerAccountNum, + payerRealmNum, + payerShardNum, + nodeAccountNum, + nodeRealmNum, + nodeShardNum, + transactionFee, + timestamp, + transactionDuration, + generateRecord, + memo, + transferList); + } + public static Transaction getTokenTransferRequest( Long payerAccountNum, Long payerRealmNum, @@ -1142,64 +1188,19 @@ public static Transaction getContractUpdateRequest( return getAsTransaction(bodyBytes); } - public static Query getBySolidityIDQuery(String solidityID, Transaction transaction, ResponseType responseType) { + public static Query getBySolidityIdQuery( + final String solidityId, final Transaction transaction, final ResponseType responseType) { QueryHeader queryHeader = QueryHeader.newBuilder() .setResponseType(responseType) .setPayment(transaction) .build(); return Query.newBuilder() .setGetBySolidityID(GetBySolidityIDQuery.newBuilder() - .setSolidityID(solidityID) + .setSolidityID(solidityId) .setHeader(queryHeader)) .build(); } - public static Transaction getCreateAccountBuilder( - Long payerAccountNum, - Long payerRealmNum, - Long payerShardNum, - Long nodeAccountNum, - Long nodeRealmNum, - Long nodeShardNum, - long transactionFee, - Timestamp startTime, - Duration transactionDuration, - boolean generateRecord, - String memo, - Key key, - long initBal, - long sendRecordThreshold, - long receiveRecordThreshold, - boolean receiverSign, - Duration autoRenew) { - CryptoCreateTransactionBody createAccount = CryptoCreateTransactionBody.newBuilder() - .setKey(key) - .setInitialBalance(initBal) - .setProxyAccountID(getAccountIdBuild(0L, 0L, 0L)) - .setReceiveRecordThreshold(receiveRecordThreshold) - .setSendRecordThreshold(sendRecordThreshold) - .setReceiverSigRequired(receiverSign) - .setAutoRenewPeriod(autoRenew) - .build(); - - TransactionBody.Builder body = getTransactionBody( - payerAccountNum, - payerRealmNum, - payerShardNum, - nodeAccountNum, - nodeRealmNum, - nodeShardNum, - transactionFee, - startTime, - transactionDuration, - generateRecord, - memo); - body.setCryptoCreateAccount(createAccount); - byte[] bodyBytesArr = body.build().toByteArray(); - ByteString bodyBytes = ByteString.copyFrom(bodyBytesArr); - return getAsTransaction(bodyBytes); - } - public static ExchangeRate getExchangeRateBuilder(int hbarEquivalent, int centEquivalent, long expirationSeconds) { return ExchangeRate.newBuilder() .setHbarEquiv(hbarEquivalent) diff --git a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/ethereum/EthTxData.java b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/ethereum/EthTxData.java index 2c5e9a510d46..1b93882c9ca4 100644 --- a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/ethereum/EthTxData.java +++ b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/ethereum/EthTxData.java @@ -56,6 +56,10 @@ public record EthTxData( static final int SECP256K1_FLAGS_BIT_COMPRESSION = 1 << 8; static final int SECP256K1_EC_COMPRESSED = (SECP256K1_FLAGS_TYPE_COMPRESSION | SECP256K1_FLAGS_BIT_COMPRESSION); + // EIP155 note support for v = 27|28 cases in unprotected transaction cases + static final BigInteger LEGACY_V_BYTE_SIGNATURE_0 = BigInteger.valueOf(27); + static final BigInteger LEGACY_V_BYTE_SIGNATURE_1 = BigInteger.valueOf(28); + public static EthTxData populateEthTxData(byte[] data) { try { var decoder = RLPDecoder.RLP_STRICT.sequenceIterator(data); @@ -75,7 +79,7 @@ public static EthTxData populateEthTxData(byte[] data) { } } - public EthTxData replaceCallData(byte[] callData) { + public EthTxData replaceCallData(final byte[] newCallData) { return new EthTxData( null, type, @@ -87,7 +91,7 @@ public EthTxData replaceCallData(byte[] callData) { gasLimit, to, value, - callData, + newCallData, accessList, recId, v, @@ -205,7 +209,7 @@ public BigInteger getMaxGasAsBigInteger() { * @return the effective offered gas price */ public long effectiveOfferedGasPriceInTinybars() { - return BigInteger.valueOf(Long.MAX_VALUE / gasLimit) + return BigInteger.valueOf(Long.MAX_VALUE) .min(getMaxGasAsBigInteger().divide(WEIBARS_TO_TINYBARS)) .longValueExact(); } @@ -236,11 +240,11 @@ public enum EthTransactionType { } @Override - public boolean equals(final Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; + public boolean equals(final Object other) { + if (this == other) return true; + if (other == null || getClass() != other.getClass()) return false; - final EthTxData ethTxData = (EthTxData) o; + final EthTxData ethTxData = (EthTxData) other; return (nonce == ethTxData.nonce) && (gasLimit == ethTxData.gasLimit) @@ -312,11 +316,13 @@ public boolean hasToAddress() { } public boolean matchesChainId(final byte[] hederaChainId) { - return Arrays.compare(chainId, hederaChainId) == 0; + // first two checks handle the unprotected ethereum transactions + // before EIP155 - source: https://eips.ethereum.org/EIPS/eip-155 + return chainId == null || chainId.length == 0 || Arrays.compare(chainId, hederaChainId) == 0; } @VisibleForTesting - public EthTxData replaceTo(byte[] to) { + public EthTxData replaceTo(final byte[] newTo) { return new EthTxData( null, type, @@ -326,7 +332,7 @@ public EthTxData replaceTo(byte[] to) { maxPriorityGas, maxGas, gasLimit, - to, + newTo, value, callData, accessList, @@ -348,11 +354,17 @@ private static EthTxData populateLegacyEthTxData(RLPItem rlpItem, byte[] rawTx) } byte[] chainId = null; - byte[] v = rlpList.get(6).asBytes(); - BigInteger vBI = new BigInteger(1, v); + byte[] val = rlpList.get(6).asBytes(); + BigInteger vBI = new BigInteger(1, val); byte recId = vBI.testBit(0) ? (byte) 0 : 1; + // https://eips.ethereum.org/EIPS/eip-155 if (vBI.compareTo(BigInteger.valueOf(34)) > 0) { + // after EIP155 the chain id is equal to + // CHAIN_ID = (v - {0,1} - 35) / 2 chainId = vBI.subtract(BigInteger.valueOf(35)).shiftRight(1).toByteArray(); + } else if (isLegacyUnprotectedEtx(vBI)) { + // before EIP155 the chain id is considered equal to 0 + chainId = new byte[0]; } return new EthTxData( @@ -369,7 +381,7 @@ private static EthTxData populateLegacyEthTxData(RLPItem rlpItem, byte[] rawTx) rlpList.get(5).data(), // callData null, // accessList recId, - v, + val, rlpList.get(7).data(), // r rlpList.get(8).data() // s ); @@ -444,4 +456,10 @@ private static EthTxData populateEip2390EthTxData(RLPItem rlpItem, byte[] rawTx) rlpList.get(10).data() // s ); } + + // before EIP155 the value of v in + // (unprotected) ethereum transactions is either 27 or 28 + private static boolean isLegacyUnprotectedEtx(@NonNull BigInteger vBI) { + return vBI.compareTo(LEGACY_V_BYTE_SIGNATURE_0) == 0 || vBI.compareTo(LEGACY_V_BYTE_SIGNATURE_1) == 0; + } } diff --git a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/ethereum/EthTxSigs.java b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/ethereum/EthTxSigs.java index 50ef7b284402..2c78f795b93d 100644 --- a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/ethereum/EthTxSigs.java +++ b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/ethereum/EthTxSigs.java @@ -67,16 +67,17 @@ public static EthTxData signMessage(EthTxData ethTx, byte[] privateKey) { final byte[] s = new byte[32]; System.arraycopy(sig, 32, s, 0, 32); - BigInteger v; + BigInteger val; + // calulations originate from https://eips.ethereum.org/EIPS/eip-155 if (ethTx.type() == LEGACY_ETHEREUM) { if (ethTx.chainId() == null || ethTx.chainId().length == 0) { - v = BigInteger.valueOf(27L + recId.getValue()); + val = BigInteger.valueOf(27L + recId.getValue()); } else { - v = BigInteger.valueOf(35L + recId.getValue()) + val = BigInteger.valueOf(35L + recId.getValue()) .add(new BigInteger(1, ethTx.chainId()).multiply(BigInteger.TWO)); } } else { - v = null; + val = null; } return new EthTxData( @@ -93,7 +94,7 @@ public static EthTxData signMessage(EthTxData ethTx, byte[] privateKey) { ethTx.callData(), ethTx.accessList(), (byte) recId.getValue(), - v == null ? null : v.toByteArray(), + val == null ? null : val.toByteArray(), r, s); } @@ -182,11 +183,11 @@ static byte[] concatLeftPadded(final byte[] r, final byte[] s) { } @Override - public boolean equals(final Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; + public boolean equals(final Object other) { + if (this == other) return true; + if (other == null || getClass() != other.getClass()) return false; - final EthTxSigs ethTxSigs = (EthTxSigs) o; + final EthTxSigs ethTxSigs = (EthTxSigs) other; if (!Arrays.equals(publicKey, ethTxSigs.publicKey)) return false; return Arrays.equals(address, ethTxSigs.address); diff --git a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/exception/UnknownHederaFunctionality.java b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/exception/UnknownHederaFunctionality.java index dd8cb9e9a43b..e72eede52801 100644 --- a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/exception/UnknownHederaFunctionality.java +++ b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/exception/UnknownHederaFunctionality.java @@ -25,7 +25,7 @@ public class UnknownHederaFunctionality extends Exception { /** * Constructs a new exception with the specified detail message. * - * @param errMessage, the detail error message. + * @param errMessage the detail error message. */ public UnknownHederaFunctionality(String errMessage) { super(errMessage); diff --git a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/exports/FileCompressionUtils.java b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/exports/FileCompressionUtils.java index 4d3f8cd5b006..5b2a28df9f5d 100644 --- a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/exports/FileCompressionUtils.java +++ b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/exports/FileCompressionUtils.java @@ -23,7 +23,7 @@ /** * Minimal utility denoting the compression algorithm used throughout the project and utility - * methods for reading the compressed files + * methods for reading the compressed files. */ public class FileCompressionUtils { diff --git a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/exports/FileSignTool.java b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/exports/FileSignTool.java index 9bd8ae040e55..71debd4606c2 100644 --- a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/exports/FileSignTool.java +++ b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/exports/FileSignTool.java @@ -103,15 +103,14 @@ public class FileSignTool { private static final Logger LOGGER = LogManager.getLogger(FileSignTool.class); private static final Marker MARKER = MarkerManager.getMarker("FILE_SIGN"); - /** default log4j2 file name */ + /** default log4j2 file name. */ private static final String DEFAULT_LOG_CONFIG = "log4j2.xml"; - /** supported stream version file */ - /** type of the keyStore */ + /** type of the keyStore. */ private static final String KEYSTORE_TYPE = "pkcs12"; - /** name of RecordStreamType */ + /** name of RecordStreamType. */ private static final String RECORD_STREAM_EXTENSION = "rcd"; /** - * name of compressed rcd file + * name of compressed rcd file. */ private static final String COMPRESSED_RECORD_STREAM_EXTENSION = "rcd.gz"; @@ -119,17 +118,21 @@ public class FileSignTool { /** * a messageDigest object for digesting entire stream file and generating entire record stream - * file hash + * file hash. */ private static MessageDigest streamDigest; /** * a messageDigest object for digesting metaData in the stream file and generating metaData * hash. Metadata contains: record stream version || HAPI proto version || startRunningHash || - * endRunningHash || blockNumber, where || denotes concatenation + * endRunningHash || blockNumber, where || denotes concatenation. */ private static MessageDigest metadataStreamDigest; + private FileSignTool() { + throw new IllegalStateException("Utility class"); + } + /** * Digitally sign the data with the private key. Return null if anything goes wrong (e.g., bad * private key). @@ -161,7 +164,7 @@ public static byte[] sign(final byte[] data, final KeyPair sigKeyPair) } /** - * Loads a pfx key file and return a KeyPair object + * Loads a pfx key file and return a KeyPair object. * * @param keyFileName a pfx key file * @param password password @@ -188,7 +191,7 @@ public static KeyPair loadPfxKey(final String keyFileName, final String password } /** - * builds a signature file path from a destination directory and stream file name + * builds a signature file path from a destination directory and stream file name. * * @param destDir the directory to which the signature file is saved * @param streamFile stream file to be signed @@ -202,7 +205,7 @@ public static String buildDestSigFilePath(final File destDir, final File streamF /** * generates signature file for the given stream file with the given KeyPair for event stream / * record stream v5 file, generates v5 signature file which contains a EntireHash, a - * EntireSignature, a MetaHash, and a MetaSignature for other files, generate old signature file + * EntireSignature, a MetaHash, and a MetaSignature for other files, generate old signature file. * * @param sigKeyPair the keyPair used for signing * @param streamFile the stream file to be signed @@ -228,7 +231,7 @@ public static void signSingleFile( } /** - * Loads a StreamTypeFromJson object from a json file + * Loads a StreamTypeFromJson object from a json file. * * @param jsonPath path of the json file * @return a StreamType object @@ -474,7 +477,7 @@ public static void main(final String[] args) { } /** - * Sign all files in the provided directory + * Sign all files in the provided directory. * * @param sourceDir the directory where the files to sign are located * @param destDir the directory to which the signature files should be written diff --git a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/exports/RecordBlockNumberTool.java b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/exports/RecordBlockNumberTool.java index a7d9f6f2f784..0ce271a3e837 100644 --- a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/exports/RecordBlockNumberTool.java +++ b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/exports/RecordBlockNumberTool.java @@ -38,7 +38,7 @@ /** * This is a standalone utility tool to read record stream file and check if block number is - * increasing as expected + * increasing as expected. */ public class RecordBlockNumberTool { private static final String LOG_CONFIG_PROPERTY = "logConfig"; @@ -47,15 +47,19 @@ public class RecordBlockNumberTool { private static final Logger LOGGER = LogManager.getLogger(RecordBlockNumberTool.class); private static final Marker MARKER = MarkerManager.getMarker("BLOCK_NUMBER"); - /** default log4j2 file name */ + /** default log4j2 file name. */ private static final String DEFAULT_LOG_CONFIG = "log4j2.xml"; - /** name of RecordStreamType */ + /** name of RecordStreamType. */ private static final String RECORD_STREAM_EXTENSION = "rcd"; private static final String COMPRESSED_RECORD_STREAM_EXTENSION = "rcd.gz"; private static long prevBlockNumber = -1; + private RecordBlockNumberTool() { + throw new UnsupportedOperationException("Utility Class"); + } + public static void prepare() throws ConstructableRegistryException { final ConstructableRegistry registry = ConstructableRegistry.getInstance(); registry.registerConstructables("com.swirlds.common"); @@ -188,7 +192,7 @@ public static void main(final String[] args) { } /** - * read all files in the provided directory + * read all files in the provided directory. * * @param sourceDir the directory where the files to read are located */ diff --git a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/exports/recordstreaming/RecordStreamingUtils.java b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/exports/recordstreaming/RecordStreamingUtils.java index 07b98931056f..6ce4ae7cc113 100644 --- a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/exports/recordstreaming/RecordStreamingUtils.java +++ b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/exports/recordstreaming/RecordStreamingUtils.java @@ -164,8 +164,8 @@ private static boolean isRelevant(final String file) { return file.endsWith(V6_FILE_EXT) || file.endsWith(V6_GZ_FILE_EXT); } - public static int compareSidecarFiles(final String a, final String b) { - return SIDECAR_FILE_COMPARATOR.compare(a, b); + public static int compareSidecarFiles(final String lhs, final String rhs) { + return SIDECAR_FILE_COMPARATOR.compare(lhs, rhs); } public static final Comparator SIDECAR_FILE_COMPARATOR = diff --git a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/fee/ConsensusServiceFeeBuilder.java b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/fee/ConsensusServiceFeeBuilder.java index e15205c1d7e2..a9503178b881 100644 --- a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/fee/ConsensusServiceFeeBuilder.java +++ b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/fee/ConsensusServiceFeeBuilder.java @@ -34,7 +34,7 @@ private ConsensusServiceFeeBuilder() { } /** - * Computes fee for ConsensusCreateTopic transaction + * Computes fee for ConsensusCreateTopic transaction. * * @param txBody transaction body * @param sigValObj signature value object @@ -61,7 +61,7 @@ public static FeeData getConsensusCreateTopicFee(final TransactionBody txBody, f } /** - * Computes fee for ConsensusUpdateTopic transaction + * Computes fee for ConsensusUpdateTopic transaction. * * @param txBody transaction body * @param rbsIncrease rbs increase @@ -85,15 +85,15 @@ public static FeeData getConsensusUpdateTopicFee( } private static int getConsensusUpdateTopicTransactionBodySize( - final ConsensusUpdateTopicTransactionBody updateTopicTxBody, int variableSize) { - variableSize += BASIC_ENTITY_ID_SIZE; // topicID + final ConsensusUpdateTopicTransactionBody updateTopicTxBody, final int variableSize) { + int calcSize = BASIC_ENTITY_ID_SIZE + variableSize; // topicID if (updateTopicTxBody.hasExpirationTime()) { - variableSize += LONG_SIZE; + calcSize += LONG_SIZE; } if (updateTopicTxBody.hasAutoRenewPeriod()) { - variableSize += LONG_SIZE; + calcSize += LONG_SIZE; } - return variableSize; + return calcSize; } /** @@ -177,7 +177,7 @@ private static long calculateRbsIncrease( } /** - * Computes fee for consensus delete topic transaction + * Computes fee for consensus delete topic transaction. * * @param txBody transaction body * @param sigValObj signature value object @@ -207,14 +207,14 @@ private static FeeData getTxFeeMatrices( feeComponentsBuilder.setBpt( getCommonTransactionBodyBytes(txBody) + txBodyDataSize + sigValObj.getSignatureSize()); feeComponentsBuilder.setRbh(getBaseTransactionRecordSize(txBody) * RECEIPT_STORAGE_TIME_SEC + extraRbsServices); - final var rbsNetwork = getDefaultRBHNetworkSize() + extraRbsNetwork; + final var rbsNetwork = getDefaultRbhNetworkSize() + extraRbsNetwork; return getFeeDataMatrices(feeComponentsBuilder.build(), sigValObj.getPayerAcctSigCount(), rbsNetwork); } /** * @param variableSize value returned by {@link #computeVariableSizedFieldsUsage(Key, Key, * String, boolean)}. - * @return Estimation of size (in bytes) used by Topic in memory. + * @return Estimation of size (in bytes) used by Topic in memory */ public static int getTopicRamBytes(final int variableSize) { return BASIC_ENTITY_ID_SIZE @@ -229,7 +229,7 @@ public static int getTopicRamBytes(final int variableSize) { } /** - * Compute variable sized fields usage + * Compute variable sized fields usage. * * @param adminKey admin key * @param submitKey submit key diff --git a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/fee/CryptoFeeBuilder.java b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/fee/CryptoFeeBuilder.java index e7987d5bf3c1..aac676447bcd 100644 --- a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/fee/CryptoFeeBuilder.java +++ b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/fee/CryptoFeeBuilder.java @@ -38,7 +38,7 @@ public CryptoFeeBuilder() { } /** - * This method returns the fee matrices for crypto create transaction + * Creates fee matrices for a crypto create transaction. * * @param txBody transaction body * @param sigValObj signature value object @@ -50,8 +50,8 @@ public static FeeData getCryptoCreateTxFeeMatrices(final TransactionBody txBody, final var cryptoCreateSize = getCryptoCreateAccountBodyTxSize(cryptoCreate); final long bpt = txBodySize + cryptoCreateSize + sigValObj.getSignatureSize(); final long vpt = sigValObj.getTotalSigCount(); - final long rbs = getCryptoRBS(cryptoCreate, cryptoCreateSize) + calculateRBS(txBody); // TxRecord - final var rbsNetwork = getDefaultRBHNetworkSize() + BASIC_ENTITY_ID_SIZE * (RECEIPT_STORAGE_TIME_SEC); + final long rbs = getCryptoRbs(cryptoCreate, cryptoCreateSize) + calculateRbs(txBody); // TxRecord + final var rbsNetwork = getDefaultRbhNetworkSize() + BASIC_ENTITY_ID_SIZE * (RECEIPT_STORAGE_TIME_SEC); final long bpr = INT_SIZE; @@ -69,7 +69,7 @@ public static FeeData getCryptoCreateTxFeeMatrices(final TransactionBody txBody, } /** - * This method returns the fee matrices for crypto delete transaction + * Creates fee matrices for a crypto delete transaction. * * @param txBody transaction body * @param sigValObj signature value object @@ -81,8 +81,8 @@ public FeeData getCryptoDeleteTxFeeMatrices(final TransactionBody txBody, final final var bpt = txBodySize + 2 * BASIC_ENTITY_ID_SIZE + sigValObj.getSignatureSize(); final long vpt = sigValObj.getTotalSigCount(); - final var rbs = calculateRBS(txBody); - final var rbsNetwork = getDefaultRBHNetworkSize(); + final var rbs = calculateRbs(txBody); + final var rbsNetwork = getDefaultRbhNetworkSize(); final var feeMatricesForTx = FeeComponents.newBuilder() .setBpt(bpt) .setVpt(vpt) @@ -99,13 +99,13 @@ public FeeData getCryptoDeleteTxFeeMatrices(final TransactionBody txBody, final /** * This method calculates total RAM Bytes (product of total bytes that will be stored in memory - * and time till account expires) + * and time till account expires). * * @param cryptoCreate the crypto create transaction body * @param crCreateSize the size of the crypto create transaction body * @return the total RAM Bytes for the given crypto create transaction body */ - private static long getCryptoRBS(final CryptoCreateTransactionBody cryptoCreate, final int crCreateSize) { + private static long getCryptoRbs(final CryptoCreateTransactionBody cryptoCreate, final int crCreateSize) { final var seconds = cryptoCreate.hasAutoRenewPeriod() ? cryptoCreate.getAutoRenewPeriod().getSeconds() : 0L; @@ -113,7 +113,7 @@ private static long getCryptoRBS(final CryptoCreateTransactionBody cryptoCreate, } /** - * This method returns the total bytes in a crypto create transaction body + * Calculates the total bytes in a crypto create transaction body. * * @param cryptoCreate the crypto create transaction body * @return the total bytes in the given crypto create transaction body @@ -127,8 +127,8 @@ private static int getCryptoCreateAccountBodyTxSize(final CryptoCreateTransactio } /** - * This method returns the fee matrices for query (for getting the cost of transaction record - * query) + * Creates fee matrices for a transaction record cost query (for getting the cost of a transaction record + * query). * * @return fee data */ @@ -137,7 +137,7 @@ public static FeeData getCostTransactionRecordQueryFeeMatrices() { } /** - * This method returns the fee matrices for transaction record query + * Creates fee matrices for a transaction record query. * * @param transRecord transaction record * @param responseType response type @@ -167,7 +167,7 @@ public FeeData getTransactionRecordQueryFeeMatrices( } /** - * This method returns the fee matrices for account records query + * Creates fee matrices for an account records query. * * @param transRecords list of transaction records * @param responseType response type @@ -201,21 +201,21 @@ public FeeData getCryptoAccountRecordsQueryFeeMatrices( } /** - * This method returns the fee matrices for query (for getting the cost of account record query) + * Creates fee matrices for an account record cost query (for getting the cost of an account record query). * * @return fee data */ public static FeeData getCostCryptoAccountRecordsQueryFeeMatrices() { - return getCostForQueryByIDOnly(); + return getCostForQueryByIdOnly(); } /** - * This method returns the fee matrices for query (for getting the cost of account info query) + * Creates fee matrices for an account info cost query (for getting the cost of an account info query). * * @return fee data */ public static FeeData getCostCryptoAccountInfoQueryFeeMatrices() { - return getCostForQueryByIDOnly(); + return getCostForQueryByIdOnly(); } private static int getAccountTransactionRecordSize(final TransactionRecord transRecord) { diff --git a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/fee/FeeBuilder.java b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/fee/FeeBuilder.java index e0d7dbae190e..9baa9ee64fa7 100644 --- a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/fee/FeeBuilder.java +++ b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/fee/FeeBuilder.java @@ -67,7 +67,7 @@ public class FeeBuilder { public static final int BASIC_RECEIPT_SIZE = INT_SIZE + 2 * EXCHANGE_RATE_SIZE; /** * Fields included: transactionID, nodeAccountID, transactionFee, transactionValidDuration, - * generateRecord + * generateRecord. */ public static final int BASIC_TX_BODY_SIZE = BASIC_ENTITY_ID_SIZE + BASIC_TX_ID_SIZE + LONG_SIZE + (LONG_SIZE) + BOOL_SIZE; @@ -75,7 +75,7 @@ public class FeeBuilder { public static final int STATE_PROOF_SIZE = 2000; public static final int BASE_FILEINFO_SIZE = BASIC_ENTITY_ID_SIZE + LONG_SIZE + (LONG_SIZE) + BOOL_SIZE; public static final int BASIC_ACCOUNT_SIZE = 8 * LONG_SIZE + BOOL_SIZE; - /** Fields included: nodeTransactionPrecheckCode, responseType, cost */ + /** Fields included: nodeTransactionPrecheckCode, responseType, cost. */ public static final long BASIC_QUERY_RES_HEADER = 2L * INT_SIZE + LONG_SIZE; public static final long BASIC_QUERY_HEADER = 212L; @@ -88,9 +88,16 @@ public class FeeBuilder { public static final int BASIC_TX_RECORD_SIZE = BASIC_RECEIPT_SIZE + TX_HASH_SIZE + LONG_SIZE + BASIC_TX_ID_SIZE + LONG_SIZE; + /** + * Empty constructor for inheritance. + */ + public FeeBuilder() { + /* No-op */ + } + /** * This method calculates Fee for specific component (Noe/Network/Service) based upon param - * componentCoefficients and componentMetrics + * componentCoefficients and componentMetrics. * * @param componentCoefficients component coefficients * @param componentMetrics compnent metrics @@ -128,7 +135,7 @@ public static long getComponentFeeInTinyCents( } /** - * This method calculates total fee for transaction or query and returns the value in tinyBars + * This method calculates total fee for transaction or query and returns the value in tinyBars. * * @param feeCoefficients fee coefficients * @param componentMetrics component metrics @@ -156,7 +163,7 @@ public static FeeObject getFeeObject( } /** - * Get fee object + * Get fee object. * * @param feeData fee data * @param feeMatrices fee matrices @@ -196,7 +203,7 @@ public static long getCommonTransactionBodyBytes(final TransactionBody txBody) { } /** - * This method returns the Key size in bytes + * Calculates the Key size in bytes. * * @param key key * @return int representing account key storage size @@ -217,42 +224,43 @@ public static int getAccountKeyStorageSize(final Key key) { } /** - * This method calculates number of keys + * This method calculates number of keys. * * @param key key * @param count count array * @return int array containing key metadata */ - public static int[] calculateKeysMetadata(final Key key, int[] count) { + public static int[] calculateKeysMetadata(final Key key, final int[] count) { + int[] workingCount = count; if (key.hasKeyList()) { final List keyList = key.getKeyList().getKeysList(); for (final Key value : keyList) { - count = calculateKeysMetadata(value, count); + workingCount = calculateKeysMetadata(value, workingCount); } } else if (key.hasThresholdKey()) { final List keyList = key.getThresholdKey().getKeys().getKeysList(); - count[1]++; + workingCount[1]++; for (final Key value : keyList) { - count = calculateKeysMetadata(value, count); + workingCount = calculateKeysMetadata(value, workingCount); } } else { - count[0]++; + workingCount[0]++; } - return count; + return workingCount; } /** - * This method returns the fee matrices for querying based upon ID (account / file / smart - * contract) + * Retrieves the default fee matrices for querying based upon ID (account / file / smart + * contract). * * @return fee data */ - public static FeeData getCostForQueryByIDOnly() { + public static FeeData getCostForQueryByIdOnly() { return FeeData.getDefaultInstance(); } /** - * Get signature count + * Get signature count. * * @param transaction transaction * @return int representing signature count @@ -266,7 +274,7 @@ public static int getSignatureCount(final Transaction transaction) { } /** - * Get signature size + * Get signature size. * * @param transaction transaction * @return int representing signature size @@ -280,7 +288,7 @@ public static int getSignatureSize(final Transaction transaction) { } /** - * Convert tinyCents to tinybars + * Convert tinyCents to tinybars. * * @param exchangeRate exchange rate * @param tinyCentsFee tiny cents fee @@ -354,7 +362,7 @@ public static FeeData getQueryFeeDataMatrices(final FeeComponents feeComponents) .build(); } - public static long getDefaultRBHNetworkSize() { + public static long getDefaultRbhNetworkSize() { return (BASIC_RECEIPT_SIZE) * (RECEIPT_STORAGE_TIME_SEC); } @@ -371,7 +379,7 @@ public static int getBaseTransactionRecordSize(final TransactionBody txBody) { return txRecordSize; } - public static long getTxRecordUsageRBH(final TransactionRecord txRecord, final int timeInSeconds) { + public static long getTxRecordUsageRbh(final TransactionRecord txRecord, final int timeInSeconds) { if (txRecord == null) { return 0; } @@ -435,11 +443,11 @@ public static int getStateProofSize(final ResponseType responseType) { : 0; } - protected static long calculateRBS(final TransactionBody txBody) { + protected static long calculateRbs(final TransactionBody txBody) { return getBaseTransactionRecordSize(txBody) * RECEIPT_STORAGE_TIME_SEC; } - protected static long calculateBPT() { + protected static long calculateBpt() { return BASIC_QUERY_HEADER + BASIC_ENTITY_ID_SIZE; } } diff --git a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/fee/FileFeeBuilder.java b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/fee/FileFeeBuilder.java index 815c973a2a14..4d1260dad689 100644 --- a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/fee/FileFeeBuilder.java +++ b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/fee/FileFeeBuilder.java @@ -35,7 +35,7 @@ public FileFeeBuilder() { } /** - * This method returns fee matrices for file content query + * Creates fee matrices for a file content query. * * @param contentSize content size * @param responseType response type @@ -57,7 +57,7 @@ public FeeData getFileContentQueryFeeMatrices(int contentSize, ResponseType resp * Transaction processing) ResponseType - INT_SIZE FileID - BASIC_ENTITY_ID_SIZE */ - bpt = calculateBPT(); + bpt = calculateBpt(); /* * * Response header NodeTransactionPrecheckCode - 4 bytes ResponseType - 4 bytes @@ -100,9 +100,9 @@ public FeeData getSystemDeleteFileTxFeeMatrices(TransactionBody txBody, SigValue bpt = bpt + BASIC_ENTITY_ID_SIZE + LONG_SIZE; vpt = numSignatures.getTotalSigCount(); - rbs = calculateRBS(txBody); + rbs = calculateRbs(txBody); - long rbsNetwork = getDefaultRBHNetworkSize(); + long rbsNetwork = getDefaultRbhNetworkSize(); // sbs should not be charged as the fee for storage was already paid. What if expiration is // changed though? @@ -135,8 +135,8 @@ public FeeData getSystemUnDeleteFileTxFeeMatrices(TransactionBody txBody, SigVal bpt = getCommonTransactionBodyBytes(txBody); bpt = bpt + BASIC_ENTITY_ID_SIZE + LONG_SIZE; vpt = numSignatures.getTotalSigCount(); - rbs = calculateRBS(txBody); - long rbsNetwork = getDefaultRBHNetworkSize(); + rbs = calculateRbs(txBody); + long rbsNetwork = getDefaultRbhNetworkSize(); // sbs should not be charged as the fee for storage was already paid. What if expiration is // changed though? @@ -175,9 +175,9 @@ public FeeData getFileDeleteTxFeeMatrices(TransactionBody txBody, SigValueObj si bpr = INT_SIZE; - rbs = calculateRBS(txBody); + rbs = calculateRbs(txBody); - long rbsNetwork = getDefaultRBHNetworkSize(); + long rbsNetwork = getDefaultRbhNetworkSize(); FeeComponents feeMatricesForTx = FeeComponents.newBuilder() .setBpt(bpt) diff --git a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/fee/SigValueObj.java b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/fee/SigValueObj.java index b61695b8845d..d623db54d6a3 100644 --- a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/fee/SigValueObj.java +++ b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/fee/SigValueObj.java @@ -19,7 +19,6 @@ public class SigValueObj { public SigValueObj(int totalSigCount, int payerAcctSigCount, int signatureSize) { - super(); this.totalSigCount = totalSigCount; this.payerAcctSigCount = payerAcctSigCount; this.signatureSize = signatureSize; diff --git a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/fee/SmartContractFeeBuilder.java b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/fee/SmartContractFeeBuilder.java index cdcfa31f49a9..4779cc56191a 100644 --- a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/fee/SmartContractFeeBuilder.java +++ b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/fee/SmartContractFeeBuilder.java @@ -44,7 +44,7 @@ public SmartContractFeeBuilder() { } /** - * This method returns fee matrices for contract create transaction + * Creates fee matrices for a contract create transaction. * * @param txBody transaction body * @param sigValObj signature value object @@ -70,7 +70,7 @@ public FeeData getContractCreateTxFeeMatrices(TransactionBody txBody, SigValueOb bpr = INT_SIZE; rbs = getBaseTransactionRecordSize(txBody) * (RECEIPT_STORAGE_TIME_SEC + THRESHOLD_STORAGE_TIME_SEC); - long rbsNetwork = getDefaultRBHNetworkSize() + BASIC_ENTITY_ID_SIZE * (RECEIPT_STORAGE_TIME_SEC); + long rbsNetwork = getDefaultRbhNetworkSize() + BASIC_ENTITY_ID_SIZE * (RECEIPT_STORAGE_TIME_SEC); FeeComponents feeMatricesForTx = FeeComponents.newBuilder() .setBpt(bpt) @@ -86,7 +86,7 @@ public FeeData getContractCreateTxFeeMatrices(TransactionBody txBody, SigValueOb return getFeeDataMatrices(feeMatricesForTx, sigValObj.getPayerAcctSigCount(), rbsNetwork); } - /** This method returns total bytes in Contract Create Transaction body */ + /** Calculates the total bytes in Contract Create Transaction body. */ private int getContractCreateTransactionBodySize(TransactionBody txBody) { /* * FileID fileID - BASIC_ENTITY_ID_SIZE Key adminKey - calculated value int64 gas - LONG_SIZE uint64 @@ -130,7 +130,7 @@ private int getContractCreateTransactionBodySize(TransactionBody txBody) { } /** - * This method returns fee matrices for contract update transaction + * Createsfee matrices for a contract update transaction. * * @param txBody transaction body * @param contractExpiryTime contract expiration time @@ -162,7 +162,7 @@ public FeeData getContractUpdateTxFeeMatrices( sbs = getContractUpdateStorageBytesSec(txBody, contractExpiryTime); } - long rbsNetwork = getDefaultRBHNetworkSize(); + long rbsNetwork = getDefaultRbhNetworkSize(); rbs = getBaseTransactionRecordSize(txBody) * (RECEIPT_STORAGE_TIME_SEC + THRESHOLD_STORAGE_TIME_SEC); @@ -181,7 +181,7 @@ public FeeData getContractUpdateTxFeeMatrices( } /** - * This method returns fee matrices for contract call transaction + * Creates fee matrices for a contract call transaction. * * @param txBody transaction body * @param sigValObj signature value object @@ -208,7 +208,7 @@ public FeeData getContractCallTxFeeMatrices(TransactionBody txBody, SigValueObj bpr = INT_SIZE; rbs = getBaseTransactionRecordSize(txBody) * (RECEIPT_STORAGE_TIME_SEC + THRESHOLD_STORAGE_TIME_SEC); - long rbsNetwork = getDefaultRBHNetworkSize(); + long rbsNetwork = getDefaultRbhNetworkSize(); FeeComponents feeMatricesForTx = FeeComponents.newBuilder() .setBpt(bpt) @@ -225,7 +225,7 @@ public FeeData getContractCallTxFeeMatrices(TransactionBody txBody, SigValueObj } /** - * This method returns fee matrices for contract call local + * Creates fee matrices for a contract call local transaction. * * @param funcParamSize function parameter size * @param contractFuncResult contract function result @@ -292,7 +292,7 @@ public FeeData getContractCallLocalFeeMatrices( return getQueryFeeDataMatrices(feeMatrices); } - /** This method returns total bytes in Contract Update Transaction */ + /** Calculates the total bytes in a Contract Update Transaction. */ private int getContractUpdateBodyTxSize(TransactionBody txBody) { /* * ContractID contractID - BASIC_ENTITY_ID_SIZE Timestamp expirationTime - LONG_SIZE + INT_SIZE @@ -330,7 +330,7 @@ private int getContractUpdateBodyTxSize(TransactionBody txBody) { return contractUpdateBodySize; } - /** This method returns total bytes in Contract Call body Transaction */ + /** Calculates the total bytes in a Contract Call body Transaction. */ private int getContractCallBodyTxSize(TransactionBody txBody) { /* * ContractID contractID - BASIC_ENTITY_ID_SIZE int64 gas - LONG_SIZE int64 amount - LONG_SIZE bytes @@ -352,7 +352,7 @@ private int getContractCallBodyTxSize(TransactionBody txBody) { return contractCallBodySize; } - /** This method returns total bytes in Contract Call body Transaction */ + /** Calculates the total bytes in a Contract Call body Transaction. */ private int getEthereumTransactionBodyTxSize(TransactionBody txBody) { /* * AccountId contractID - BASIC_ENTITY_ID_SIZE int64 gas - LONG_SIZE int64 amount - LONG_SIZE bytes @@ -368,7 +368,7 @@ private int getEthereumTransactionBodyTxSize(TransactionBody txBody) { } /** - * This method returns the fee matrices for contract byte code query + * Creates the fee matrices for a contract byte code query. * * @param byteCodeSize byte code size * @param responseType response type @@ -390,7 +390,7 @@ public FeeData getContractByteCodeQueryFeeMatrices(int byteCodeSize, ResponseTyp * Transaction processing) ResponseType - INT_SIZE ContractID - BASIC_ENTITY_ID_SIZE */ - bpt = calculateBPT(); + bpt = calculateBpt(); /* * * Response header NodeTransactionPrecheckCode - 4 bytes ResponseType - 4 bytes @@ -456,8 +456,8 @@ public FeeData getContractDeleteTxFeeMatrices(TransactionBody txBody, SigValueOb bpr = INT_SIZE; - rbs = calculateRBS(txBody); - long rbsNetwork = getDefaultRBHNetworkSize() + BASIC_ENTITY_ID_SIZE * (RECEIPT_STORAGE_TIME_SEC); + rbs = calculateRbs(txBody); + long rbsNetwork = getDefaultRbhNetworkSize() + BASIC_ENTITY_ID_SIZE * (RECEIPT_STORAGE_TIME_SEC); FeeComponents feeMatricesForTx = FeeComponents.newBuilder() .setBpt(bpt) @@ -474,7 +474,7 @@ public FeeData getContractDeleteTxFeeMatrices(TransactionBody txBody, SigValueOb } /** - * This method returns fee matrices for contract call transaction + * Creates fee matrices for a contract call transaction. * * @param txBody transaction body * @param sigValObj signature value object @@ -501,7 +501,7 @@ public FeeData getEthereumTransactionFeeMatrices(TransactionBody txBody, SigValu bpr = INT_SIZE; rbs = getBaseTransactionRecordSize(txBody) * (RECEIPT_STORAGE_TIME_SEC + THRESHOLD_STORAGE_TIME_SEC); - long rbsNetwork = getDefaultRBHNetworkSize(); + long rbsNetwork = getDefaultRbhNetworkSize(); FeeComponents feeMatricesForTx = FeeComponents.newBuilder() .setBpt(bpt) diff --git a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/forensics/OrderedComparison.java b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/forensics/OrderedComparison.java index 98ac2d0c689a..f80bf1ca8564 100644 --- a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/forensics/OrderedComparison.java +++ b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/forensics/OrderedComparison.java @@ -31,7 +31,6 @@ import java.util.List; import java.util.Map; import java.util.function.BiFunction; -import java.util.function.Consumer; import java.util.function.Predicate; /** Provides helpers to compare and analyze record streams. */ @@ -50,7 +49,7 @@ private OrderedComparison() { * @param firstStreamDir the first record stream * @param secondStreamDir the second record stream * @param recordDiffSummarizer if present, a summarizer for record diffs - * @param fileNameObserver if set, a consumer receiving the name of each file as it is parsed + * @param maybeInclusionTest if set, a consumer receiving the name of each file as it is parsed * @return the stream diff * @throws IOException if any of the record stream files cannot be read or parsed * @throws IllegalArgumentException if the directories contain misaligned record streams @@ -59,27 +58,56 @@ public static List findDifferencesBetweenV6( @NonNull final String firstStreamDir, @NonNull final String secondStreamDir, @Nullable final RecordDiffSummarizer recordDiffSummarizer, - @Nullable final Consumer fileNameObserver) + @Nullable final Predicate maybeInclusionTest, + @Nullable final String maybeInclusionDescription) throws IOException { - final Predicate watchingPredicate = f -> { - if (fileNameObserver != null) { - fileNameObserver.accept(f); - } - return true; - }; - System.out.println("Parsing stream @ " + firstStreamDir); - final var firstEntries = parseV6RecordStreamEntriesIn(firstStreamDir, watchingPredicate); + final Predicate inclusionTest = maybeInclusionTest == null ? f -> true : maybeInclusionTest; + final String inclusionDescription = maybeInclusionDescription == null ? "all" : maybeInclusionDescription; + System.out.println("Parsing stream @ " + firstStreamDir + "(including " + inclusionDescription + ")"); + final var firstEntries = parseV6RecordStreamEntriesIn(firstStreamDir, inclusionTest); System.out.println(" ➡️ Read " + firstEntries.size() + " entries"); - System.out.println("Parsing stream @ " + secondStreamDir); - final var secondEntries = parseV6RecordStreamEntriesIn(secondStreamDir, watchingPredicate); + System.out.println("Parsing stream @ " + secondStreamDir + "(including " + inclusionDescription + ")"); + final var secondEntries = parseV6RecordStreamEntriesIn(secondStreamDir, inclusionTest); + List newSecondEntries = getNewSecondRecordStreamEntries(firstEntries, secondEntries); System.out.println(" ➡️ Read " + secondEntries.size() + " entries"); - return diff(firstEntries, secondEntries, recordDiffSummarizer); + int missed = newSecondEntries.size() - secondEntries.size(); + if (missed > 0) { + System.out.println(" ➡️ Missed " + missed + " entries"); + } else if (missed < 0) { + System.out.println(" ➡️ Added " + (-missed) + " entries"); + List newFirstEntries = getNewSecondRecordStreamEntries(secondEntries, firstEntries); + return diff(newFirstEntries, secondEntries, recordDiffSummarizer); + } + return diff(firstEntries, newSecondEntries, recordDiffSummarizer); + } + + @NonNull + private static List getNewSecondRecordStreamEntries( + List firstEntries, List secondEntries) { + List ret = new ArrayList<>(); + if (secondEntries.isEmpty()) { + return ret; + } + RecordStreamEntry firstEntry; + RecordStreamEntry secondEntry; + int secondIndex = 0; + for (RecordStreamEntry entry : firstEntries) { + firstEntry = entry; + secondEntry = secondEntries.get(secondIndex); + if (secondEntry.consensusTime().equals(firstEntry.consensusTime())) { + ret.add(secondEntry); + secondIndex++; + } else { + ret.add(new RecordStreamEntry(null, null, firstEntry.consensusTime())); + } + } + return ret; } public interface RecordDiffSummarizer extends BiFunction {} private static class UnmatchableException extends Exception { - public UnmatchableException(@NonNull final String message) { + UnmatchableException(@NonNull final String message) { super(message); } } @@ -96,6 +124,22 @@ static List diff( for (int i = 0; i < minSize; i++) { final var firstEntry = firstEntries.get(i); try { + if (secondEntries.get(i).txnRecord() == null) { + diffs.add(new DifferingEntries( + firstEntry, + null, + "No record found at " + firstEntry.consensusTime() + " for transactionID : " + + firstEntry.txnRecord().getTransactionID())); + continue; + } + if (firstEntries.get(i).txnRecord() == null) { + diffs.add(new DifferingEntries( + null, + secondEntries.get(i), + "No record found at " + secondEntries.get(i).consensusTime() + " for transactionID : " + + secondEntries.get(i).txnRecord().getTransactionID())); + continue; + } final var secondEntry = entryWithMatchableRecord(secondEntries, i, firstEntry); if (!firstEntry.txnRecord().equals(secondEntry.txnRecord())) { final var summary = recordDiffSummarizer == null @@ -144,18 +188,20 @@ public static List filterByFunction( * transaction than the entry at the given index. * * @param entries a list of entries - * @param i the index of the entry to match + * @param index the index of the entry to match * @param entryToMatch the entry to match * @return the entry at the given index */ @NonNull private static RecordStreamEntry entryWithMatchableRecord( - @NonNull final List entries, final int i, @NonNull final RecordStreamEntry entryToMatch) + @NonNull final List entries, + final int index, + @NonNull final RecordStreamEntry entryToMatch) throws UnmatchableException { - final var secondEntry = entries.get(i); + final var secondEntry = entries.get(index); if (!entryToMatch.consensusTime().equals(secondEntry.consensusTime())) { throw new UnmatchableException("Entries at position " - + i + + index + " had different consensus times (" + entryToMatch.consensusTime() + " vs " @@ -164,7 +210,7 @@ private static RecordStreamEntry entryWithMatchableRecord( } if (!entryToMatch.submittedTransaction().equals(secondEntry.submittedTransaction())) { throw new UnmatchableException("Entries at position " - + i + + index + " had different transactions (" + entryToMatch.submittedTransaction() + " vs " diff --git a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/forensics/RecordStreamEntry.java b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/forensics/RecordStreamEntry.java index e6172e67e2b1..f11d96d4e764 100644 --- a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/forensics/RecordStreamEntry.java +++ b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/forensics/RecordStreamEntry.java @@ -16,15 +16,19 @@ package com.hedera.node.app.hapi.utils.forensics; -import com.hederahashgraph.api.proto.java.*; +import com.hederahashgraph.api.proto.java.HederaFunctionality; +import com.hederahashgraph.api.proto.java.ResponseCodeEnum; +import com.hederahashgraph.api.proto.java.Transaction; +import com.hederahashgraph.api.proto.java.TransactionBody; +import com.hederahashgraph.api.proto.java.TransactionRecord; import java.time.Instant; /** * Represents a single {@code (Transaction, TransactionRecord)} entry from a record stream, * including the consensus time as a {@link Instant} for convenience. * - * @param parts the transaction parts - * @param txnRecord the resolved record the transaction + * @param parts the transaction parts + * @param txnRecord the resolved record the transaction * @param consensusTime the consensus time */ public record RecordStreamEntry(TransactionParts parts, TransactionRecord txnRecord, Instant consensusTime) { diff --git a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/keys/Ed25519Utils.java b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/keys/Ed25519Utils.java index 9924866adb37..beae25e1273a 100644 --- a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/keys/Ed25519Utils.java +++ b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/keys/Ed25519Utils.java @@ -17,9 +17,18 @@ package com.hedera.node.app.hapi.utils.keys; import edu.umd.cs.findbugs.annotations.NonNull; -import java.io.*; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; import java.nio.file.Path; -import java.security.*; +import java.security.DrbgParameters; +import java.security.KeyPair; +import java.security.NoSuchAlgorithmException; +import java.security.Provider; +import java.security.SecureRandom; import net.i2p.crypto.eddsa.EdDSAPrivateKey; import net.i2p.crypto.eddsa.EdDSAPublicKey; import net.i2p.crypto.eddsa.EdDSASecurityProvider; @@ -30,12 +39,18 @@ import org.bouncycastle.jce.provider.BouncyCastleProvider; import org.bouncycastle.openssl.PEMParser; import org.bouncycastle.openssl.PKCS8Generator; -import org.bouncycastle.openssl.jcajce.*; +import org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter; +import org.bouncycastle.openssl.jcajce.JcaPEMWriter; +import org.bouncycastle.openssl.jcajce.JcaPKCS8Generator; +import org.bouncycastle.openssl.jcajce.JceOpenSSLPKCS8DecryptorProviderBuilder; +import org.bouncycastle.openssl.jcajce.JceOpenSSLPKCS8EncryptorBuilder; import org.bouncycastle.operator.OperatorCreationException; import org.bouncycastle.pkcs.PKCS8EncryptedPrivateKeyInfo; import org.bouncycastle.pkcs.PKCSException; -/** Minimal utility to read/write a single Ed25519 key from/to an encrypted PEM file. */ +/** + * Minimal utility to read/write a single Ed25519 key from/to an encrypted PEM file. + */ public final class Ed25519Utils { private static final int ENCRYPTOR_ITERATION_COUNT = 10_000; private static final Provider BC_PROVIDER = new BouncyCastleProvider(); @@ -73,12 +88,12 @@ public static EdDSAPrivateKey readKeyFrom(final File pem, final String passphras } } - public static Path relocatedIfNotPresentInWorkingDir(final Path p) { - return relocatedIfNotPresentInWorkingDir(p.toFile()).toPath(); + public static Path relocatedIfNotPresentInWorkingDir(final Path path) { + return relocatedIfNotPresentInWorkingDir(path.toFile()).toPath(); } - public static File relocatedIfNotPresentInWorkingDir(final File f) { - return relocatedIfNotPresentWithCurrentPathPrefix(f, RESOURCE_PATH_SEGMENT, TEST_CLIENTS_PREFIX); + public static File relocatedIfNotPresentInWorkingDir(final File file) { + return relocatedIfNotPresentWithCurrentPathPrefix(file, RESOURCE_PATH_SEGMENT, TEST_CLIENTS_PREFIX); } public static void writeKeyTo(final byte[] seed, final String pemLoc, final String passphrase) { @@ -115,9 +130,9 @@ public static KeyPair keyPairFrom(final EdDSAPrivateKey privateKey) { } public static File relocatedIfNotPresentWithCurrentPathPrefix( - final File f, final String firstSegmentToRelocate, final String newPathPrefix) { - if (!f.exists()) { - final var absPath = withDedupedHederaNodePathSegments(f.getAbsolutePath()); + final File file, final String firstSegmentToRelocate, final String newPathPrefix) { + if (!file.exists()) { + final var absPath = withDedupedHederaNodePathSegments(file.getAbsolutePath()); final var idx = absPath.indexOf(firstSegmentToRelocate); if (idx == -1) { return new File(absPath); @@ -125,7 +140,7 @@ public static File relocatedIfNotPresentWithCurrentPathPrefix( final var relocatedPath = newPathPrefix + absPath.substring(idx); return new File(relocatedPath); } else { - return f; + return file; } } diff --git a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/sysfiles/domain/KnownBlockValues.java b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/sysfiles/domain/KnownBlockValues.java index d0c8becf2c9c..957d12e48afb 100644 --- a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/sysfiles/domain/KnownBlockValues.java +++ b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/sysfiles/domain/KnownBlockValues.java @@ -24,7 +24,7 @@ public record KnownBlockValues(byte[] hash, long number) { private static final int KECCAK256_HASH_LENGTH = 32; - public static KnownBlockValues MISSING_BLOCK_VALUES = new KnownBlockValues(new byte[0], 0); + public static final KnownBlockValues MISSING_BLOCK_VALUES = new KnownBlockValues(new byte[0], 0); public static KnownBlockValues from(final String literal) { if (literal.isBlank()) { @@ -51,14 +51,14 @@ public boolean isMissing() { } @Override - public boolean equals(Object o) { - if (this == o) { + public boolean equals(final Object other) { + if (this == other) { return true; } - if (o == null || KnownBlockValues.class != o.getClass()) { + if (other == null || KnownBlockValues.class != other.getClass()) { return false; } - final var that = (KnownBlockValues) o; + final var that = (KnownBlockValues) other; return this.number == that.number && Arrays.equals(this.hash, that.hash); } diff --git a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/sysfiles/domain/throttling/ScaleFactor.java b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/sysfiles/domain/throttling/ScaleFactor.java index fc73a751a360..6180291d35a7 100644 --- a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/sysfiles/domain/throttling/ScaleFactor.java +++ b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/sysfiles/domain/throttling/ScaleFactor.java @@ -20,7 +20,7 @@ import com.hedera.node.app.hapi.utils.sysfiles.ParsingUtils; public record ScaleFactor(int numerator, int denominator) implements Comparable { - public static ScaleFactor ONE_TO_ONE = new ScaleFactor(1, 1); + public static final ScaleFactor ONE_TO_ONE = new ScaleFactor(1, 1); public static ScaleFactor from(String literal) { return ParsingUtils.fromTwoPartDelimited( diff --git a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/sysfiles/domain/throttling/ThrottleBucket.java b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/sysfiles/domain/throttling/ThrottleBucket.java index c5104eeb6e4f..1cc7fdad3c45 100644 --- a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/sysfiles/domain/throttling/ThrottleBucket.java +++ b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/sysfiles/domain/throttling/ThrottleBucket.java @@ -213,8 +213,8 @@ private long mtpsSplitBy(final long mtps, final long splitFactor) { return Math.max(1, mtps / splitFactor); } - public static long quotientRoundedUp(final long a, final long b) { - return a / b + (a % b == 0 ? 0 : 1); + public static long quotientRoundedUp(final long lhs, final long rhs) { + return lhs / rhs + (lhs % rhs == 0 ? 0 : 1); } private void assertMinimalOpsPerSec() { @@ -242,19 +242,19 @@ public long impliedBurstPeriodMs() { /** * Computes the least common multiple of the given two numbers. * - * @param a the first number - * @param b the second number + * @param lhs the first number + * @param rhs the second number * @return the least common multiple of {@code a} and {@code b} * @throws ArithmeticException if the result overflows a {@code long} */ - private long lcm(final long a, final long b) { - if (productWouldOverflow(a, b)) { + private long lcm(final long lhs, final long rhs) { + if (productWouldOverflow(lhs, rhs)) { throw new ArithmeticException(); } - return (a * b) / gcd(Math.min(a, b), Math.max(a, b)); + return (lhs * rhs) / gcd(Math.min(lhs, rhs), Math.max(lhs, rhs)); } - private long gcd(final long a, final long b) { - return (a == 0) ? b : gcd(b % a, a); + private long gcd(final long lhs, final long rhs) { + return (lhs == 0) ? rhs : gcd(rhs % lhs, lhs); } } diff --git a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/sysfiles/domain/throttling/ThrottleDefinitions.java b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/sysfiles/domain/throttling/ThrottleDefinitions.java index 3f0938f76b4f..9826d553f2ce 100644 --- a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/sysfiles/domain/throttling/ThrottleDefinitions.java +++ b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/sysfiles/domain/throttling/ThrottleDefinitions.java @@ -21,7 +21,7 @@ import java.util.List; public class ThrottleDefinitions { - List> buckets = new ArrayList<>(); + private List> buckets = new ArrayList<>(); public List> getBuckets() { return buckets; diff --git a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/sysfiles/domain/throttling/ThrottleGroup.java b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/sysfiles/domain/throttling/ThrottleGroup.java index dc187ab3bf06..286c418871f2 100644 --- a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/sysfiles/domain/throttling/ThrottleGroup.java +++ b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/sysfiles/domain/throttling/ThrottleGroup.java @@ -20,9 +20,9 @@ import java.util.List; public class ThrottleGroup> { - int opsPerSec; - long milliOpsPerSec; - List operations = new ArrayList<>(); + private int opsPerSec; + private long milliOpsPerSec; + private List operations = new ArrayList<>(); public ThrottleGroup() { // Needed by Jackson diff --git a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/sysfiles/serdes/FeesJsonToProtoSerde.java b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/sysfiles/serdes/FeesJsonToProtoSerde.java index 4858f10bbd75..7dfa9bc2bb97 100644 --- a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/sysfiles/serdes/FeesJsonToProtoSerde.java +++ b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/sysfiles/serdes/FeesJsonToProtoSerde.java @@ -86,15 +86,15 @@ interface ThrowingReader { private static void constructWithBuilder( CurrentAndNextFeeSchedule.Builder builder, List> rawFeeSchedules) throws InvocationTargetException, NoSuchMethodException, IllegalAccessException { - int i = 0; + int index = 0; for (String rawFeeSchedule : FEE_SCHEDULE_KEYS) { set( CurrentAndNextFeeSchedule.Builder.class, builder, rawFeeSchedule, FeeSchedule.class, - bindFeeScheduleFrom( - (List>) rawFeeSchedules.get(i++).get(rawFeeSchedule))); + bindFeeScheduleFrom((List>) + rawFeeSchedules.get(index++).get(rawFeeSchedule))); } } diff --git a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/throttles/BucketThrottle.java b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/throttles/BucketThrottle.java index 9f3cd6da446c..042ed9ee85ac 100644 --- a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/throttles/BucketThrottle.java +++ b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/throttles/BucketThrottle.java @@ -105,19 +105,19 @@ private BucketThrottle(final long mtps, final long burstPeriodMs) { } } - private void validateCapacityForRequested(final long mtps, final long burstPeriodMs) { - if (productWouldOverflow(mtps, NTPS_PER_MTPS * CAPACITY_UNITS_PER_NANO_TXN)) { + private void validateCapacityForRequested(final long requestedMtps, final long burstPeriodMs) { + if (productWouldOverflow(requestedMtps, NTPS_PER_MTPS * CAPACITY_UNITS_PER_NANO_TXN)) { throw new IllegalArgumentException("Base bucket capacity calculation outside numeric range"); } - final var unscaledCapacity = mtps * NTPS_PER_MTPS * CAPACITY_UNITS_PER_NANO_TXN / 1_000; + final var unscaledCapacity = requestedMtps * NTPS_PER_MTPS * CAPACITY_UNITS_PER_NANO_TXN / 1_000; if (productWouldOverflow(unscaledCapacity, burstPeriodMs)) { throw new IllegalArgumentException("Scaled bucket capacity calculation outside numeric range"); } } - boolean allow(final int n, final long elapsedNanos) { + boolean allow(final int numReqs, final long elapsedNanos) { leakFor(elapsedNanos); - return allowInstantaneous(n); + return allowInstantaneous(numReqs); } /** @@ -134,11 +134,11 @@ void leakFor(final long elapsedNanos) { bucket.leak(leakedUnits); } - boolean allowInstantaneous(final int n) { - if (productWouldOverflow(n, CAPACITY_UNITS_PER_TXN)) { + boolean allowInstantaneous(final int numReqs) { + if (productWouldOverflow(numReqs, CAPACITY_UNITS_PER_TXN)) { return false; } - final long requiredUnits = n * CAPACITY_UNITS_PER_TXN; + final long requiredUnits = numReqs * CAPACITY_UNITS_PER_TXN; if (requiredUnits > bucket.capacityFree()) { return false; } diff --git a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/throttles/DeterministicThrottle.java b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/throttles/DeterministicThrottle.java index 59a8b4e465fc..1a640261a65d 100644 --- a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/throttles/DeterministicThrottle.java +++ b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/throttles/DeterministicThrottle.java @@ -23,7 +23,9 @@ import java.time.Instant; import java.util.Objects; -/** A throttle with milli-TPS resolution that exists in a deterministic timeline. */ +/** + * A throttle with milli-TPS resolution that exists in a deterministic timeline. + */ public class DeterministicThrottle implements CongestibleThrottle { private static final Instant NEVER = null; private static final String NO_NAME = null; @@ -103,14 +105,14 @@ public long clampedCapacityRequiredFor(final int nTransactions) { return (nominal >= 0) ? Math.min(nominal, limit) : limit; } - public boolean allowInstantaneous(final int n) { - return delegate.allowInstantaneous(n); + public boolean allowInstantaneous(final int numReqs) { + return delegate.allowInstantaneous(numReqs); } - public boolean allow(final int n, final Instant now) { + public boolean allow(final int numReqs, final Instant now) { final var elapsedNanos = elapsedNanosBetween(lastDecisionTime, now); lastDecisionTime = now; - return delegate.allow(n, elapsedNanos); + return delegate.allow(numReqs, elapsedNanos); } /** @@ -210,7 +212,7 @@ public void resetUsage() { /* NOTE: The Object methods below are only overridden to improve readability of unit tests; Instances of this class are not used - in hash-based collections */ + in hash-based collections */ @Override public boolean equals(final Object obj) { if (obj == null || this.getClass() != obj.getClass()) { diff --git a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/throttles/GasLimitBucketThrottle.java b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/throttles/GasLimitBucketThrottle.java index bb1206bdfa4c..1bf151b67d15 100644 --- a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/throttles/GasLimitBucketThrottle.java +++ b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/throttles/GasLimitBucketThrottle.java @@ -32,7 +32,7 @@ public class GasLimitBucketThrottle { private long lastAllowedUnits = 0L; /** - * Creates an instance of the throttle with the specified capacity + * Creates an instance of the throttle with the specified capacity. * * @param capacity - the capacity for the throttle */ @@ -88,7 +88,7 @@ void leakFor(final long elapsedNanos) { /** * Returns the approximate ratio of free-to-used capacity in the underlying bucket; if there is - * no capacity used, returns {@code Long.MAX_VALUE} + * no capacity used, returns {@code Long.MAX_VALUE}. * * @return the free-to-used ratio */ @@ -109,7 +109,7 @@ void reclaimLastAllowedUse() { /** * Returns an instance of the {@link DiscreteLeakyBucket} used under the hood. * - * @return an instance of the {@link DiscreteLeakyBucket} used under the hood. + * @return an instance of the {@link DiscreteLeakyBucket} used under the hood */ public DiscreteLeakyBucket bucket() { return bucket; diff --git a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/throttles/GasLimitDeterministicThrottle.java b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/throttles/GasLimitDeterministicThrottle.java index c366ae711f4e..d124d4112c9d 100644 --- a/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/throttles/GasLimitDeterministicThrottle.java +++ b/hedera-node/hapi-utils/src/main/java/com/hedera/node/app/hapi/utils/throttles/GasLimitDeterministicThrottle.java @@ -98,7 +98,7 @@ public double instantaneousPercentUsed() { /** * Returns the capacity of the throttle. * - * @return the capacity of the throttle. + * @return the capacity of the throttle */ @Override public long capacity() { @@ -120,7 +120,7 @@ public String name() { /** * Returns the used capacity of the throttle. * - * @return the used capacity of the throttle. + * @return the used capacity of the throttle */ @Override public long used() { @@ -141,7 +141,7 @@ public void leakUnusedGasPreviouslyReserved(long value) { /** * returns an instance of the {@link GasLimitBucketThrottle} used under the hood. * - * @return - an instance of the {@link GasLimitBucketThrottle} used under the hood. + * @return - an instance of the {@link GasLimitBucketThrottle} used under the hood */ GasLimitBucketThrottle delegate() { return delegate; diff --git a/hedera-node/hapi-utils/src/test/java/com/hedera/node/app/hapi/utils/builder/RequestBuilderTest.java b/hedera-node/hapi-utils/src/test/java/com/hedera/node/app/hapi/utils/builder/RequestBuilderTest.java index 5ffe6a9f19f3..e4371e88ff57 100644 --- a/hedera-node/hapi-utils/src/test/java/com/hedera/node/app/hapi/utils/builder/RequestBuilderTest.java +++ b/hedera-node/hapi-utils/src/test/java/com/hedera/node/app/hapi/utils/builder/RequestBuilderTest.java @@ -284,7 +284,7 @@ void assertGetTransactionReceiptByResponseCodeEnum() { @Test void assertGetBySolidityIDQuery() { var solidityId = "solidityId"; - var infoQuery = RequestBuilder.getBySolidityIDQuery(solidityId, transaction, responseType); + var infoQuery = RequestBuilder.getBySolidityIdQuery(solidityId, transaction, responseType); assertEquals(solidityId, infoQuery.getGetBySolidityID().getSolidityID()); assertEquals(responseType, infoQuery.getGetBySolidityID().getHeader().getResponseType()); diff --git a/hedera-node/hapi-utils/src/test/java/com/hedera/node/app/hapi/utils/ethereum/EthTxDataTest.java b/hedera-node/hapi-utils/src/test/java/com/hedera/node/app/hapi/utils/ethereum/EthTxDataTest.java index 5b0320b8e16a..618ebb13a1a9 100644 --- a/hedera-node/hapi-utils/src/test/java/com/hedera/node/app/hapi/utils/ethereum/EthTxDataTest.java +++ b/hedera-node/hapi-utils/src/test/java/com/hedera/node/app/hapi/utils/ethereum/EthTxDataTest.java @@ -73,6 +73,10 @@ class EthTxDataTest { static final String EIP_155_DEMO_PUBKEY = "024bc2a31265153f07e70e0bab08724e6b85e217f8cd628ceb62974247bb493382"; static final String EIP155_DEMO = "f86c098504a817c800825208943535353535353535353535353535353535353535880de0b6b3a76400008025a028ef61340bd939bc2195fe537567866003e1a15d3c71ff63e1590620aa636276a067cbe9d8997f761aecb703304b3800ccf555c9f3dc64214b297fb1966a3b6d83"; + // v = 37 + static final String EIP155_UNPROTECTED = + "f8a58085174876e800830186a08080b853604580600e600039806000f350fe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe03601600081602082378035828234f58015156039578182fd5b8082525050506014600cf31ba02222222222222222222222222222222222222222222222222222222222222222a02222222222222222222222222222222222222222222222222222222222222222"; + // v = 27 @Test void detectsMissingCallData() { @@ -252,6 +256,15 @@ void roundTrip155() { assertArrayEquals(expected, tx155.encodeTx()); } + @Test + void roundTrip155UnprotectedTx() { + final var expected = Hex.decode(EIP155_UNPROTECTED); + final var tx155 = EthTxData.populateEthTxData(expected); + + assertNotNull(tx155); + assertArrayEquals(expected, tx155.encodeTx()); + } + @Test void roundTrip2930() { final var expected = Hex.decode(RAW_TX_TYPE_1); diff --git a/hedera-node/hapi-utils/src/test/java/com/hedera/node/app/hapi/utils/fee/FeeBuilderTest.java b/hedera-node/hapi-utils/src/test/java/com/hedera/node/app/hapi/utils/fee/FeeBuilderTest.java index 9d5d4053bcd8..e2e1ab51c264 100644 --- a/hedera-node/hapi-utils/src/test/java/com/hedera/node/app/hapi/utils/fee/FeeBuilderTest.java +++ b/hedera-node/hapi-utils/src/test/java/com/hedera/node/app/hapi/utils/fee/FeeBuilderTest.java @@ -119,7 +119,7 @@ class FeeBuilderTest { @Test void assertCalculateBPT() { FeeBuilder feeBuilder = new FeeBuilder(); - assertEquals(236, feeBuilder.calculateBPT()); + assertEquals(236, feeBuilder.calculateBpt()); } @Test @@ -177,12 +177,12 @@ void assertGetTxRecordUsageRBH() { .setContractCallResult(contractFunctionResult) .build(); - assertEquals(220, FeeBuilder.getTxRecordUsageRBH(transactionRecord, 100)); + assertEquals(220, FeeBuilder.getTxRecordUsageRbh(transactionRecord, 100)); } @Test void assertGetTxRecordUsageRBHWhenTxRecordIsNull() { - assertEquals(0, FeeBuilder.getTxRecordUsageRBH(null, 100)); + assertEquals(0, FeeBuilder.getTxRecordUsageRbh(null, 100)); } @Test diff --git a/hedera-node/hapi-utils/src/test/java/com/hedera/node/app/hapi/utils/forensics/OrderedComparisonTest.java b/hedera-node/hapi-utils/src/test/java/com/hedera/node/app/hapi/utils/forensics/OrderedComparisonTest.java index 8ab073193ecb..181288f4d4ec 100644 --- a/hedera-node/hapi-utils/src/test/java/com/hedera/node/app/hapi/utils/forensics/OrderedComparisonTest.java +++ b/hedera-node/hapi-utils/src/test/java/com/hedera/node/app/hapi/utils/forensics/OrderedComparisonTest.java @@ -58,7 +58,7 @@ void detectsDifferenceInCaseOfObviouslyWrongNonce() throws IOException { final var issStreamLoc = WRONG_NONCE_STREAMS_DIR + File.separator + "node5"; final var consensusStreamLoc = WRONG_NONCE_STREAMS_DIR + File.separator + "node0"; - final var diffs = findDifferencesBetweenV6(issStreamLoc, consensusStreamLoc, null, null); + final var diffs = findDifferencesBetweenV6(issStreamLoc, consensusStreamLoc, null, null, null); assertEquals(1, diffs.size()); final var soleDiff = diffs.get(0); final var issEntry = soleDiff.firstEntry(); diff --git a/hedera-node/hapi/build.gradle.kts b/hedera-node/hapi/build.gradle.kts index ba8f6c8b6543..d74d977ce7b8 100644 --- a/hedera-node/hapi/build.gradle.kts +++ b/hedera-node/hapi/build.gradle.kts @@ -18,14 +18,14 @@ plugins { id("com.hedera.hashgraph.hapi") id("com.hedera.hashgraph.evm-maven-publish") @Suppress("DSL_SCOPE_VIOLATION") alias(libs.plugins.pbj) - id("java-test-fixtures") + id("com.hedera.hashgraph.java-test-fixtures") } description = "Hedera API" // Add downloaded HAPI repo protobuf files into build directory and add to sources to build them tasks.cloneHederaProtobufs { - branchOrTag = "use-ContractID-in-SlotKey" + branchOrTag = "add-pbj-types-for-state" // As long as the 'branchOrTag' above is not stable, run always: outputs.upToDateWhen { false } } diff --git a/hedera-node/hedera-app-spi/build.gradle.kts b/hedera-node/hedera-app-spi/build.gradle.kts index 8855753afe80..6509307a50d7 100644 --- a/hedera-node/hedera-app-spi/build.gradle.kts +++ b/hedera-node/hedera-app-spi/build.gradle.kts @@ -16,7 +16,7 @@ plugins { id("com.hedera.hashgraph.conventions") - id("java-test-fixtures") + id("com.hedera.hashgraph.java-test-fixtures") } description = "Hedera Application - SPI" diff --git a/hedera-node/hedera-app-spi/src/main/java/com/hedera/node/app/spi/fees/FeeContext.java b/hedera-node/hedera-app-spi/src/main/java/com/hedera/node/app/spi/fees/FeeContext.java index c371a4c7328b..39f6eee3db1d 100644 --- a/hedera-node/hedera-app-spi/src/main/java/com/hedera/node/app/spi/fees/FeeContext.java +++ b/hedera-node/hedera-app-spi/src/main/java/com/hedera/node/app/spi/fees/FeeContext.java @@ -23,7 +23,6 @@ import com.swirlds.config.api.Configuration; import edu.umd.cs.findbugs.annotations.NonNull; import edu.umd.cs.findbugs.annotations.Nullable; -import java.time.Instant; public interface FeeContext { /** @@ -80,9 +79,9 @@ public interface FeeContext { Authorizer authorizer(); /** - * Returns the consensus time relative to which client code should calculate entity lifetimes. - * - * @return the consensus time + * Returns the number of signatures provided for the transaction. + *

NOTE: this property should not be used for queries

+ * @return the number of signatures */ - Instant currentTime(); + int numTxnSignatures(); } diff --git a/hedera-node/hedera-app-spi/src/main/java/com/hedera/node/app/spi/throttle/HandleThrottleParser.java b/hedera-node/hedera-app-spi/src/main/java/com/hedera/node/app/spi/throttle/HandleThrottleParser.java index 98d9ca86a4a3..86bb3855cce3 100644 --- a/hedera-node/hedera-app-spi/src/main/java/com/hedera/node/app/spi/throttle/HandleThrottleParser.java +++ b/hedera-node/hedera-app-spi/src/main/java/com/hedera/node/app/spi/throttle/HandleThrottleParser.java @@ -24,13 +24,34 @@ import java.util.List; public interface HandleThrottleParser { + /* + * Rebuilds the throttle requirements based on the given throttle definitions. + * + * @param defs the throttle definitions to rebuild the throttle requirements based on + */ void rebuildFor(@NonNull final ThrottleDefinitions defs); + /* + * Rebuilds the gas throttle based on the current configuration. + */ void applyGasConfig(); + /* + * Gets the current list of active throttles. + * + * @return the current list of active throttles + */ @NonNull List allActiveThrottles(); + /* + * Resets the usage for all snapshots. + */ + void resetUsageThrottlesTo(List snapshots); + + /* + * Gets the gas throttle. + */ @Nullable - public GasLimitDeterministicThrottle gasLimitThrottle(); + GasLimitDeterministicThrottle gasLimitThrottle(); } diff --git a/hedera-node/hedera-app-spi/src/main/java/com/hedera/node/app/spi/workflows/HandleContext.java b/hedera-node/hedera-app-spi/src/main/java/com/hedera/node/app/spi/workflows/HandleContext.java index f1110117c8bf..6cd3b6e5c201 100644 --- a/hedera-node/hedera-app-spi/src/main/java/com/hedera/node/app/spi/workflows/HandleContext.java +++ b/hedera-node/hedera-app-spi/src/main/java/com/hedera/node/app/spi/workflows/HandleContext.java @@ -24,6 +24,7 @@ import com.hedera.hapi.node.base.Key; import com.hedera.hapi.node.base.SubType; import com.hedera.hapi.node.transaction.TransactionBody; +import com.hedera.node.app.hapi.utils.throttles.DeterministicThrottle; import com.hedera.node.app.spi.authorization.SystemPrivilege; import com.hedera.node.app.spi.fees.ExchangeRateInfo; import com.hedera.node.app.spi.fees.FeeAccumulator; @@ -43,6 +44,7 @@ import edu.umd.cs.findbugs.annotations.NonNull; import edu.umd.cs.findbugs.annotations.Nullable; import java.time.Instant; +import java.util.List; import java.util.function.Predicate; /** @@ -668,6 +670,26 @@ default T dispatchRemovableChildTransaction( */ void reclaimPreviouslyReservedThrottle(int n, HederaFunctionality function); + /** + * Verifies if the throttle in this operation context has enough capacity to handle the given number of the + * given function at the given time. (The time matters because we want to consider how much + * will have leaked between now and that time.) + * + * @param n the number of the given function + * @param function the function + * @return true if the system should throttle the given number of the given function + * at the instant for which throttling should be calculated + */ + boolean shouldThrottleNOfUnscaled(int n, HederaFunctionality function); + + /** + * For each following child transaction consumes the capacity + * required for that child transaction in the consensus throttle buckets. + * + * @return true if all the child transactions were allowed through the throttle consideration, false otherwise. + */ + boolean hasThrottleCapacityForChildTransactions(); + /** * Create a checkpoint for the current childRecords. * @@ -677,6 +699,19 @@ default T dispatchRemovableChildTransaction( @NonNull RecordListCheckPoint createRecordListCheckPoint(); + /** + * Returns a list of snapshots of the current usage of all active throttles. + * @return the active snapshots + */ + List getUsageSnapshots(); + + /** + * Resets the current usage of all active throttles to the given snapshots. + * + * @param snapshots the snapshots to reset to + */ + void resetUsageThrottlesTo(List snapshots); + /** * Returns whether the current transaction being processed was submitted by this node. * diff --git a/hedera-node/hedera-app-spi/src/testFixtures/java/com/hedera/node/app/spi/fixtures/throttle/FakeHandleThrottleParser.java b/hedera-node/hedera-app-spi/src/testFixtures/java/com/hedera/node/app/spi/fixtures/throttle/FakeHandleThrottleParser.java index 033692916e4b..f04644740301 100644 --- a/hedera-node/hedera-app-spi/src/testFixtures/java/com/hedera/node/app/spi/fixtures/throttle/FakeHandleThrottleParser.java +++ b/hedera-node/hedera-app-spi/src/testFixtures/java/com/hedera/node/app/spi/fixtures/throttle/FakeHandleThrottleParser.java @@ -42,6 +42,9 @@ public List allActiveThrottles() { return Collections.emptyList(); } + @Override + public void resetUsageThrottlesTo(List snapshots) {} + @Nullable @Override public GasLimitDeterministicThrottle gasLimitThrottle() { diff --git a/hedera-node/hedera-app/build.gradle.kts b/hedera-node/hedera-app/build.gradle.kts index 61c18de8d52a..e824670f52b3 100644 --- a/hedera-node/hedera-app/build.gradle.kts +++ b/hedera-node/hedera-app/build.gradle.kts @@ -17,7 +17,7 @@ plugins { id("com.hedera.hashgraph.conventions") id("com.hedera.hashgraph.benchmark-conventions") - id("java-test-fixtures") + id("com.hedera.hashgraph.java-test-fixtures") } description = "Hedera Application - Implementation" @@ -197,7 +197,8 @@ tasks.register("run") { } tasks.register("modrun") { - group = "application" + group = "build" + description = "Run a Hedera consensus node instance." dependsOn(tasks.assemble) workingDir = nodeWorkingDir.get().asFile jvmArgs = listOf("-cp", "data/lib/*:data/apps/*", "-Dhedera.workflows.enabled=true") diff --git a/hedera-node/hedera-app/src/jmh/java/com/hedera/node/app/signature/impl/DoNothingCryptoEngine.java b/hedera-node/hedera-app/src/jmh/java/com/hedera/node/app/signature/impl/DoNothingCryptoEngine.java index 7f3e7ef843c8..c15192f91bb5 100644 --- a/hedera-node/hedera-app/src/jmh/java/com/hedera/node/app/signature/impl/DoNothingCryptoEngine.java +++ b/hedera-node/hedera-app/src/jmh/java/com/hedera/node/app/signature/impl/DoNothingCryptoEngine.java @@ -19,39 +19,13 @@ import com.swirlds.common.crypto.Cryptography; import com.swirlds.common.crypto.DigestType; import com.swirlds.common.crypto.Hash; -import com.swirlds.common.crypto.Message; import com.swirlds.common.crypto.SerializableHashable; import com.swirlds.common.crypto.SignatureType; import com.swirlds.common.crypto.TransactionSignature; import com.swirlds.common.io.SelfSerializable; import java.util.List; -import java.util.concurrent.Future; public class DoNothingCryptoEngine implements Cryptography { - @Override - public void digestAsync(Message message) { - // fake crypto engine does nothing - } - - @Override - public void digestAsync(List list) { - // fake crypto engine does nothing - } - - @Override - public Future digestAsync(byte[] bytes, DigestType digestType) { - return null; - } - - @Override - public Hash digestSync(Message message) { - return null; - } - - @Override - public void digestSync(List list) { - // fake crypto engine does nothing - } @Override public Hash digestSync(byte[] bytes, DigestType digestType) { @@ -73,21 +47,11 @@ public Hash getNullHash(DigestType digestType) { return null; } - @Override - public void verifyAsync(TransactionSignature transactionSignature) { - // fake crypto engine does nothing - } - @Override public void verifyAsync(List list) { // fake crypto engine does nothing } - @Override - public Future verifyAsync(byte[] bytes, byte[] bytes1, byte[] bytes2, SignatureType signatureType) { - return null; - } - @Override public boolean verifySync(TransactionSignature transactionSignature) { return false; diff --git a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/Hedera.java b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/Hedera.java index aea46d14f9b4..d74e3d8b93dc 100644 --- a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/Hedera.java +++ b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/Hedera.java @@ -23,6 +23,7 @@ import static com.hedera.node.app.bbm.DumpCheckpoint.selectedDumpCheckpoints; import static com.hedera.node.app.bbm.StateDumper.dumpModChildrenFrom; import static com.hedera.node.app.bbm.StateDumper.dumpMonoChildrenFrom; +import static com.hedera.node.app.records.impl.BlockRecordManagerImpl.isDefaultConsTimeOfLastHandledTxn; import static com.hedera.node.app.service.contract.impl.ContractServiceImpl.CONTRACT_SERVICE; import static com.hedera.node.app.service.mono.state.migration.StateChildIndices.ACCOUNTS; import static com.hedera.node.app.service.mono.state.migration.StateChildIndices.CONTRACT_STORAGE; @@ -39,6 +40,7 @@ import static com.hedera.node.app.state.merkle.MerkleSchemaRegistry.isSoOrdered; import static com.hedera.node.app.throttle.ThrottleAccumulator.ThrottleType.BACKEND_THROTTLE; import static com.hedera.node.app.throttle.ThrottleAccumulator.ThrottleType.FRONTEND_THROTTLE; +import static com.hedera.node.app.util.FileUtilities.observePropertiesAndPermissions; import static com.hedera.node.app.util.HederaAsciiArt.HEDERA; import static com.swirlds.platform.system.InitTrigger.EVENT_STREAM_RECOVERY; import static com.swirlds.platform.system.InitTrigger.GENESIS; @@ -449,7 +451,7 @@ public void onStateInitialized( final var blockInfo = blockRecordState .getSingleton(BlockRecordService.BLOCK_INFO_STATE_KEY) .get(); - if (blockInfo == null || blockInfo.consTimeOfLastHandledTxn() == null) { + if (isDefaultConsTimeOfLastHandledTxn(blockInfo)) { createSynthRecords = true; } } else { @@ -1074,7 +1076,6 @@ private void initializeForTrigger( // the various migration methods may depend on configuration to do their work logger.info("Initializing Reconnect configuration"); this.configProvider = new ConfigProviderImpl(false); - logConfiguration(); logger.info("Initializing ThrottleManager"); this.throttleManager = new ThrottleManager(); @@ -1107,7 +1108,8 @@ private void initializeForTrigger( initializeExchangeRateManager(state); initializeFeeManager(state); initializeThrottles(state); - // TODO We may need to update the config with the latest version in file 121 + observePropertiesAndPermissions(state, configProvider.getConfiguration(), configProvider::update); + logConfiguration(); } /*================================================================================================================== diff --git a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/bbm/StateDumper.java b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/bbm/StateDumper.java index 60327fff241d..2550497b22b6 100644 --- a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/bbm/StateDumper.java +++ b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/bbm/StateDumper.java @@ -16,18 +16,30 @@ package com.hedera.node.app.bbm; +import static com.hedera.node.app.bbm.associations.TokenAssociationsDumpUtils.dumpModTokenRelations; +import static com.hedera.node.app.bbm.associations.TokenAssociationsDumpUtils.dumpMonoTokenRelations; +import static com.hedera.node.app.bbm.files.FilesDumpUtils.dumpModFiles; +import static com.hedera.node.app.bbm.files.FilesDumpUtils.dumpMonoFiles; import static com.hedera.node.app.bbm.nfts.UniqueTokenDumpUtils.dumpModUniqueTokens; import static com.hedera.node.app.bbm.nfts.UniqueTokenDumpUtils.dumpMonoUniqueTokens; import static com.hedera.node.app.records.BlockRecordService.BLOCK_INFO_STATE_KEY; import static com.hedera.node.app.service.mono.state.migration.StateChildIndices.NETWORK_CTX; +import static com.hedera.node.app.service.mono.state.migration.StateChildIndices.STORAGE; +import static com.hedera.node.app.service.mono.state.migration.StateChildIndices.TOKEN_ASSOCIATIONS; import static com.hedera.node.app.service.mono.state.migration.StateChildIndices.UNIQUE_TOKENS; import static com.hedera.node.app.service.token.impl.TokenServiceImpl.NFTS_KEY; +import static com.hedera.node.app.service.token.impl.TokenServiceImpl.TOKEN_RELS_KEY; import static java.util.Objects.requireNonNull; +import com.hedera.hapi.node.base.FileID; import com.hedera.hapi.node.base.NftID; +import com.hedera.hapi.node.base.TokenAssociation; import com.hedera.hapi.node.state.blockrecords.BlockInfo; import com.hedera.hapi.node.state.token.Nft; +import com.hedera.hapi.node.state.token.TokenRelation; import com.hedera.node.app.records.BlockRecordService; +import com.hedera.node.app.service.file.FileService; +import com.hedera.node.app.service.file.impl.FileServiceImpl; import com.hedera.node.app.service.mono.state.merkle.MerkleNetworkContext; import com.hedera.node.app.service.token.TokenService; import com.hedera.node.app.state.merkle.MerkleHederaState; @@ -47,12 +59,17 @@ */ public class StateDumper { private static final String SEMANTIC_UNIQUE_TOKENS = "uniqueTokens.txt"; + private static final String SEMANTIC_TOKEN_RELATIONS = "tokenRelations.txt"; + private static final String SEMANTIC_FILES = "files.txt"; public static void dumpMonoChildrenFrom( @NonNull final MerkleHederaState state, @NonNull final DumpCheckpoint checkpoint) { final MerkleNetworkContext networkContext = state.getChild(NETWORK_CTX); final var dumpLoc = getExtantDumpLoc("mono", networkContext.consensusTimeOfLastHandledTxn()); dumpMonoUniqueTokens(Paths.get(dumpLoc, SEMANTIC_UNIQUE_TOKENS), state.getChild(UNIQUE_TOKENS), checkpoint); + dumpMonoTokenRelations( + Paths.get(dumpLoc, SEMANTIC_TOKEN_RELATIONS), state.getChild(TOKEN_ASSOCIATIONS), checkpoint); + dumpMonoFiles(Paths.get(dumpLoc, SEMANTIC_FILES), state.getChild(STORAGE), checkpoint); } public static void dumpModChildrenFrom( @@ -65,9 +82,18 @@ public static void dumpModChildrenFrom( Optional.ofNullable(blockInfo.consTimeOfLastHandledTxn()) .map(then -> Instant.ofEpochSecond(then.seconds(), then.nanos())) .orElse(null)); + final VirtualMap, OnDiskValue> uniqueTokens = requireNonNull(state.getChild(state.findNodeIndex(TokenService.NAME, NFTS_KEY))); dumpModUniqueTokens(Paths.get(dumpLoc, SEMANTIC_UNIQUE_TOKENS), uniqueTokens, checkpoint); + + final VirtualMap, OnDiskValue> tokenRelations = + requireNonNull(state.getChild(state.findNodeIndex(TokenService.NAME, TOKEN_RELS_KEY))); + dumpModTokenRelations(Paths.get(dumpLoc, SEMANTIC_TOKEN_RELATIONS), tokenRelations, checkpoint); + + final VirtualMap, OnDiskValue> files = + requireNonNull(state.getChild(state.findNodeIndex(FileService.NAME, FileServiceImpl.BLOBS_KEY))); + dumpModFiles(Paths.get(dumpLoc, SEMANTIC_FILES), files, checkpoint); } private static String getExtantDumpLoc( diff --git a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/bbm/associations/TokenAssociation.java b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/bbm/associations/TokenAssociation.java new file mode 100644 index 000000000000..ffbab0e0bbf4 --- /dev/null +++ b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/bbm/associations/TokenAssociation.java @@ -0,0 +1,90 @@ +/* + * Copyright (C) 2024 Hedera Hashgraph, LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.hedera.node.app.bbm.associations; + +import com.hedera.hapi.node.state.token.TokenRelation; +import com.hedera.node.app.service.mono.state.submerkle.EntityId; +import com.hedera.node.app.service.mono.state.virtual.entities.OnDiskTokenRel; +import com.hedera.node.app.service.mono.utils.EntityNumPair; +import com.hedera.node.app.state.merkle.disk.OnDiskValue; +import com.hederahashgraph.api.proto.java.AccountID; +import com.hederahashgraph.api.proto.java.TokenID; +import com.swirlds.base.utility.Pair; +import edu.umd.cs.findbugs.annotations.NonNull; +import edu.umd.cs.findbugs.annotations.Nullable; + +record TokenAssociation( + EntityId accountId, + EntityId tokenId, + long balance, + boolean isFrozen, + boolean isKycGranted, + boolean isAutomaticAssociation, + EntityId prev, + EntityId next) { + + @NonNull + static TokenAssociation fromMono(@NonNull final OnDiskTokenRel tokenRel) { + final var at = toLongsPair(toPair(tokenRel.getKey())); + + return new TokenAssociation( + entityIdFrom(at.left()), + entityIdFrom(at.right()), + tokenRel.getBalance(), + tokenRel.isFrozen(), + tokenRel.isKycGranted(), + tokenRel.isAutomaticAssociation(), + entityIdFrom(tokenRel.getPrev()), + entityIdFrom(tokenRel.getNext())); + } + + static TokenAssociation fromMod(@NonNull final OnDiskValue wrapper) { + final var value = wrapper.getValue(); + return new TokenAssociation( + accountIdFromMod(value.accountId()), + tokenIdFromMod(value.tokenId()), + value.balance(), + value.frozen(), + value.kycGranted(), + value.automaticAssociation(), + tokenIdFromMod(value.previousToken()), + tokenIdFromMod(value.nextToken())); + } + + @NonNull + static Pair toPair(@NonNull final EntityNumPair enp) { + final var at = enp.asAccountTokenRel(); + return Pair.of(at.getLeft(), at.getRight()); + } + + @NonNull + static Pair toLongsPair(@NonNull final Pair pat) { + return Pair.of(pat.left().getAccountNum(), pat.right().getTokenNum()); + } + + static EntityId accountIdFromMod(@Nullable final com.hedera.hapi.node.base.AccountID accountId) { + return null == accountId ? EntityId.MISSING_ENTITY_ID : new EntityId(0L, 0L, accountId.accountNumOrThrow()); + } + + static EntityId tokenIdFromMod(@Nullable final com.hedera.hapi.node.base.TokenID tokenId) { + return null == tokenId ? EntityId.MISSING_ENTITY_ID : new EntityId(0L, 0L, tokenId.tokenNum()); + } + + static EntityId entityIdFrom(long num) { + return new EntityId(0L, 0L, num); + } +} diff --git a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/bbm/associations/TokenAssociationId.java b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/bbm/associations/TokenAssociationId.java new file mode 100644 index 000000000000..cf1d05af3341 --- /dev/null +++ b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/bbm/associations/TokenAssociationId.java @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2024 Hedera Hashgraph, LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.hedera.node.app.bbm.associations; + +import static com.hedera.node.app.bbm.associations.TokenAssociation.toLongsPair; +import static com.hedera.node.app.bbm.associations.TokenAssociation.toPair; + +import com.google.common.collect.ComparisonChain; +import com.hedera.node.app.bbm.utils.Writer; +import com.hedera.node.app.service.mono.state.virtual.entities.OnDiskTokenRel; +import com.hedera.node.app.state.merkle.disk.OnDiskKey; +import edu.umd.cs.findbugs.annotations.NonNull; + +record TokenAssociationId(long accountId, long tokenId) implements Comparable { + static TokenAssociationId fromMod(@NonNull final com.hedera.hapi.node.base.TokenAssociation association) { + return new TokenAssociationId( + association.accountId().accountNum(), association.tokenId().tokenNum()); + } + + static TokenAssociationId fromMono(@NonNull final OnDiskKey tokenRel) { + final var key = toLongsPair(toPair(tokenRel.getKey().getKey())); + ; + return new TokenAssociationId(key.left(), key.right()); + } + + @Override + public String toString() { + return "%d%s%d".formatted(accountId, Writer.FIELD_SEPARATOR, tokenId); + } + + @Override + public int compareTo(TokenAssociationId o) { + return ComparisonChain.start() + .compare(this.accountId, o.accountId) + .compare(this.tokenId, o.tokenId) + .result(); + } +} diff --git a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/bbm/associations/TokenAssociationsDumpUtils.java b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/bbm/associations/TokenAssociationsDumpUtils.java new file mode 100644 index 000000000000..be476f6d7d2f --- /dev/null +++ b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/bbm/associations/TokenAssociationsDumpUtils.java @@ -0,0 +1,148 @@ +/* + * Copyright (C) 2024 Hedera Hashgraph, LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.hedera.node.app.bbm.associations; + +import static com.swirlds.common.threading.manager.AdHocThreadManager.getStaticThreadManager; + +import com.hedera.hapi.node.state.token.TokenRelation; +import com.hedera.node.app.bbm.DumpCheckpoint; +import com.hedera.node.app.bbm.utils.FieldBuilder; +import com.hedera.node.app.bbm.utils.ThingsToStrings; +import com.hedera.node.app.bbm.utils.Writer; +import com.hedera.node.app.service.mono.state.adapters.VirtualMapLike; +import com.hedera.node.app.service.mono.state.virtual.entities.OnDiskTokenRel; +import com.hedera.node.app.state.merkle.disk.OnDiskKey; +import com.hedera.node.app.state.merkle.disk.OnDiskValue; +import com.swirlds.base.utility.Pair; +import com.swirlds.virtualmap.VirtualKey; +import com.swirlds.virtualmap.VirtualMap; +import com.swirlds.virtualmap.VirtualValue; +import edu.umd.cs.findbugs.annotations.NonNull; +import java.nio.file.Path; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.ConcurrentLinkedQueue; +import java.util.function.BiConsumer; +import java.util.function.Function; +import java.util.stream.Collectors; + +public class TokenAssociationsDumpUtils { + public static void dumpModTokenRelations( + @NonNull final Path path, + @NonNull + final VirtualMap, OnDiskValue> + associations, + @NonNull final DumpCheckpoint checkpoint) { + try (@NonNull final var writer = new Writer(path)) { + final var dumpableTokenRelations = gatherTokenRelations( + associations, key -> TokenAssociationId.fromMod(key.getKey()), TokenAssociation::fromMod); + reportOnTokenAssociations(writer, dumpableTokenRelations); + System.out.printf( + "=== mod token associations report is %d bytes at checkpoint %s%n", + writer.getSize(), checkpoint.name()); + } + } + + public static void dumpMonoTokenRelations( + @NonNull final Path path, + @NonNull final VirtualMap, OnDiskTokenRel> associations, + @NonNull final DumpCheckpoint checkpoint) { + try (@NonNull final var writer = new Writer(path)) { + final var dumpableTokenRelations = + gatherTokenRelations(associations, TokenAssociationId::fromMono, TokenAssociation::fromMono); + reportOnTokenAssociations(writer, dumpableTokenRelations); + System.out.printf( + "=== mono token associations report is %d bytes at checkpoint %s%n", + writer.getSize(), checkpoint.name()); + } + } + + @NonNull + private static + Map gatherTokenRelations( + @NonNull final VirtualMap source, + @NonNull final Function keyMapper, + @NonNull final Function valueMapper) { + final var r = new HashMap(); + final var threadCount = 8; + final var tokenAssociations = new ConcurrentLinkedQueue>(); + try { + VirtualMapLike.from(source) + .extractVirtualMapData( + getStaticThreadManager(), + p -> tokenAssociations.add( + Pair.of(keyMapper.apply(p.left()), valueMapper.apply(p.right()))), + threadCount); + } catch (final InterruptedException ex) { + System.err.println("*** Traversal of token associations virtual map interrupted!"); + Thread.currentThread().interrupt(); + } + tokenAssociations.forEach( + tokenAssociationPair -> r.put(tokenAssociationPair.key(), tokenAssociationPair.value())); + return r; + } + + private static void reportOnTokenAssociations( + @NonNull final Writer writer, @NonNull final Map associations) { + writer.writeln(formatHeader()); + associations.entrySet().stream() + .sorted(Map.Entry.comparingByKey()) + .forEach(e -> formatTokenAssociation(writer, e.getValue())); + writer.writeln(""); + } + + @NonNull + private static String formatHeader() { + return fieldFormatters.stream().map(Pair::left).collect(Collectors.joining(Writer.FIELD_SEPARATOR)); + } + + // spotless:off + @NonNull + private static final List>> fieldFormatters = List.of( + Pair.of("accountId", getFieldFormatter(TokenAssociation::accountId, ThingsToStrings::toStringOfEntityId)), + Pair.of("tokenId", getFieldFormatter(TokenAssociation::tokenId, ThingsToStrings::toStringOfEntityId)), + Pair.of("balance", getFieldFormatter(TokenAssociation::balance, Object::toString)), + Pair.of("isFrozen", getFieldFormatter(TokenAssociation::isFrozen, Object::toString)), + Pair.of("isKycGranted", getFieldFormatter(TokenAssociation::isKycGranted, Object::toString)), + Pair.of("isAutomaticAssociation", getFieldFormatter(TokenAssociation::isAutomaticAssociation, Object::toString)), + Pair.of("prev", getFieldFormatter(TokenAssociation::prev, ThingsToStrings::toStringOfEntityId)), + Pair.of("next", getFieldFormatter(TokenAssociation::next, ThingsToStrings::toStringOfEntityId)) + ); + // spotless:on + + @NonNull + static BiConsumer getFieldFormatter( + @NonNull final Function fun, @NonNull final Function formatter) { + return (fb, u) -> formatField(fb, u, fun, formatter); + } + + static void formatField( + @NonNull final FieldBuilder fb, + @NonNull final TokenAssociation tokenAssociation, + @NonNull final Function fun, + @NonNull final Function formatter) { + fb.append(formatter.apply(fun.apply(tokenAssociation))); + } + + private static void formatTokenAssociation( + @NonNull final Writer writer, @NonNull final TokenAssociation tokenAssociation) { + final var fb = new FieldBuilder(Writer.FIELD_SEPARATOR); + fieldFormatters.stream().map(Pair::right).forEach(ff -> ff.accept(fb, tokenAssociation)); + writer.writeln(fb); + } +} diff --git a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/bbm/files/FileId.java b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/bbm/files/FileId.java new file mode 100644 index 000000000000..502aa3c3622d --- /dev/null +++ b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/bbm/files/FileId.java @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2024 Hedera Hashgraph, LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.hedera.node.app.bbm.files; + +import com.google.common.collect.ComparisonChain; +import com.hedera.hapi.node.base.FileID; +import com.hedera.node.app.bbm.utils.Writer; +import edu.umd.cs.findbugs.annotations.NonNull; + +record FileId(long shardNum, long realmNum, long fileNum) implements Comparable { + + static FileId fromMod(@NonNull final FileID fileID) { + return new FileId(fileID.shardNum(), fileID.realmNum(), fileID.fileNum()); + } + + static FileId fromMono(@NonNull final Integer fileNum) { + return new FileId(0, 0, fileNum); + } + + @Override + public String toString() { + return "%d%s%d%s%d".formatted(shardNum, Writer.FIELD_SEPARATOR, realmNum, Writer.FIELD_SEPARATOR, fileNum); + } + + @Override + public int compareTo(FileId o) { + return ComparisonChain.start() + .compare(this.shardNum, o.shardNum) + .compare(this.realmNum, o.realmNum) + .compare(this.fileNum, o.fileNum) + .result(); + } +} diff --git a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/bbm/files/FileStore.java b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/bbm/files/FileStore.java new file mode 100644 index 000000000000..1bd2c68d34d5 --- /dev/null +++ b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/bbm/files/FileStore.java @@ -0,0 +1,22 @@ +/* + * Copyright (C) 2024 Hedera Hashgraph, LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.hedera.node.app.bbm.files; + +enum FileStore { + ORDINARY, + SPECIAL +} diff --git a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/bbm/files/FilesDumpUtils.java b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/bbm/files/FilesDumpUtils.java new file mode 100644 index 000000000000..eeb552565441 --- /dev/null +++ b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/bbm/files/FilesDumpUtils.java @@ -0,0 +1,219 @@ +/* + * Copyright (C) 2024 Hedera Hashgraph, LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.hedera.node.app.bbm.files; + +import static com.hedera.node.app.bbm.utils.ThingsToStrings.quoteForCsv; +import static com.hedera.node.app.bbm.utils.ThingsToStrings.squashLinesToEscapes; +import static com.hedera.node.app.bbm.utils.ThingsToStrings.toStringOfByteArray; +import static com.swirlds.common.threading.manager.AdHocThreadManager.getStaticThreadManager; + +import com.hedera.hapi.node.base.FileID; +import com.hedera.hapi.node.state.file.File; +import com.hedera.node.app.bbm.DumpCheckpoint; +import com.hedera.node.app.bbm.utils.Writer; +import com.hedera.node.app.service.mono.files.HFileMeta; +import com.hedera.node.app.service.mono.files.MetadataMapFactory; +import com.hedera.node.app.service.mono.state.adapters.VirtualMapLike; +import com.hedera.node.app.service.mono.state.virtual.VirtualBlobKey; +import com.hedera.node.app.service.mono.state.virtual.VirtualBlobValue; +import com.hedera.node.app.service.mono.utils.MiscUtils; +import com.hedera.node.app.state.merkle.disk.OnDiskKey; +import com.hedera.node.app.state.merkle.disk.OnDiskValue; +import com.swirlds.base.utility.Pair; +import com.swirlds.virtualmap.VirtualMap; +import edu.umd.cs.findbugs.annotations.NonNull; +import java.nio.file.Path; +import java.util.EnumSet; +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentLinkedQueue; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.stream.Stream; + +public class FilesDumpUtils { + + private FilesDumpUtils() { + // Utility class + } + + public static void dumpModFiles( + @NonNull final Path path, + @NonNull final VirtualMap, OnDiskValue> files, + @NonNull final DumpCheckpoint checkpoint) { + try (@NonNull final var writer = new Writer(path)) { + final var dumpableFiles = gatherModFiles(files); + reportOnFiles(writer, dumpableFiles); + System.out.printf( + "=== mod files report is %d bytes at checkpoint %s%n", writer.getSize(), checkpoint.name()); + } + } + + public static void dumpMonoFiles( + @NonNull final Path path, + @NonNull final VirtualMap files, + @NonNull final DumpCheckpoint checkpoint) { + try (@NonNull final var writer = new Writer(path)) { + final var dumpableFiles = gatherMonoFiles(files); + reportOnFiles(writer, dumpableFiles); + System.out.printf( + "=== mono files report is %d bytes at checkpoint %s%n", writer.getSize(), checkpoint.name()); + } + } + + @NonNull + private static Map gatherModFiles(VirtualMap, OnDiskValue> source) { + final var r = new HashMap(); + final var threadCount = 8; + final var files = new ConcurrentLinkedQueue>(); + try { + VirtualMapLike.from(source) + .extractVirtualMapData( + getStaticThreadManager(), + p -> files.add(Pair.of(FileId.fromMod(p.left().getKey()), HederaFile.fromMod(p.right()))), + threadCount); + } catch (final InterruptedException ex) { + System.err.println("*** Traversal of files virtual map interrupted!"); + Thread.currentThread().interrupt(); + } + files.forEach(filePair -> r.put(filePair.key(), filePair.value())); + return r; + } + + /** Collects the information for each data file in the file store, also the summaries of all files of all types. */ + @SuppressWarnings("java:S108") // "Nested blocks of code should not be left empty" - not for switches on an enum + @NonNull + private static Map gatherMonoFiles( + @NonNull final VirtualMap source) { + final var foundFiles = new ConcurrentHashMap(); + final var foundMetadata = new ConcurrentHashMap(); + + final var nType = new ConcurrentHashMap(); + final var nNullValues = new ConcurrentHashMap(); + final var nNullMetadataValues = new AtomicInteger(); + + Stream.of(nType, nNullValues) + .forEach(m -> EnumSet.allOf(VirtualBlobKey.Type.class).forEach(t -> m.put(t, 0))); + + final int THREAD_COUNT = 8; + boolean didRunToCompletion = true; + try { + VirtualMapLike.from(source) + .extractVirtualMapDataC( + getStaticThreadManager(), + entry -> { + final var contractId = entry.key().getEntityNumCode(); + + final var type = entry.key().getType(); + nType.merge(type, 1, Integer::sum); + + final var value = entry.value().getData(); + if (null != value) { + switch (type) { + case FILE_DATA -> foundFiles.put(contractId, value); + + case FILE_METADATA -> { + final var metadata = MetadataMapFactory.toAttr(value); + if (null != metadata) { + foundMetadata.put(contractId, metadata); + } else { + nNullMetadataValues.incrementAndGet(); + + System.err.printf( + "*** collectFiles file metadata (HFileMeta) null for contract id %d, type %s%n", + contractId, type); + } + } + case CONTRACT_BYTECODE, SYSTEM_DELETED_ENTITY_EXPIRY -> {} + } + } else { + nNullValues.merge(type, 1, Integer::sum); + + System.err.printf( + "*** collectFiles file value (bytes) null for contract id %d, type %s%n", + contractId, type); + } + }, + THREAD_COUNT); + } catch (final InterruptedException ex) { + Thread.currentThread().interrupt(); + didRunToCompletion = false; + } + + if (!didRunToCompletion) { + System.err.printf("*** collectFiles interrupted (did not run to completion)%n"); + } + + final var r = new HashMap(); + for (@NonNull final var e : foundFiles.entrySet()) { + final var contractId = e.getKey(); + final var contents = e.getValue(); + final var metadata = foundMetadata.getOrDefault(contractId, null); + r.put( + FileId.fromMono(contractId), + null != metadata + ? HederaFile.of(contractId, contents, metadata) + : HederaFile.of(contractId, contents)); + } + + return r; + } + + private static void reportOnFiles(@NonNull final Writer writer, @NonNull final Map files) { + reportFileContentsHeader(writer); + reportFileContents(writer, files); + writer.writeln(""); + } + + /** Emits the CSV header line for the file contents - **KEEP IN SYNC WITH reportFileContents!!!** */ + private static void reportFileContentsHeader(@NonNull final Writer writer) { + final var header = "fileId,PRESENT/DELETED,SPECIAL file,SYSTEM file,length(bytes),expiry,memo,content,key"; + writer.write("%s%n", header); + } + + /** Emits the actual content (hexified) for each file, and it's full key */ + private static void reportFileContents( + @NonNull final Writer writer, @NonNull final Map allFiles) { + for (@NonNull + final var file : + allFiles.entrySet().stream().sorted(Map.Entry.comparingByKey()).toList()) { + final var fileId = file.getKey().fileNum(); + final var hf = file.getValue(); + if (hf.isActive()) { + final var sb = new StringBuilder(); + toStringOfByteArray(sb, hf.contents()); + writer.write( + "%d,PRESENT,%s,%s,%d,%s,%s,%s,%s%n", + fileId, + hf.fileStore() == FileStore.SPECIAL ? "SPECIAL" : "", + hf.systemFileType() != null ? hf.systemFileType().name() : "", + hf.contents().length, + hf.metadata() != null ? Long.toString(hf.metadata().getExpiry()) : "", + hf.metadata() != null ? quoteForCsv(",", hf.metadata().getMemo()) : "", + sb, + hf.metadata() != null + ? quoteForCsv( + ",", + squashLinesToEscapes( + MiscUtils.describe(hf.metadata().getWacl()))) + : ""); + } else { + writer.write("%d,DELETED%n", fileId); + } + } + } +} diff --git a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/bbm/files/HederaFile.java b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/bbm/files/HederaFile.java new file mode 100644 index 000000000000..6bb722457821 --- /dev/null +++ b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/bbm/files/HederaFile.java @@ -0,0 +1,64 @@ +/* + * Copyright (C) 2024 Hedera Hashgraph, LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.hedera.node.app.bbm.files; + +import com.hedera.hapi.node.state.file.File; +import com.hedera.node.app.service.mono.files.HFileMeta; +import com.hedera.node.app.state.merkle.disk.OnDiskValue; +import edu.umd.cs.findbugs.annotations.NonNull; +import edu.umd.cs.findbugs.annotations.Nullable; + +/** Holds the content and the metadata for a single data file in the store */ +@SuppressWarnings("java:S6218") // "Equals/hashcode methods should be overridden in records containing array fields" +// not using this with equals +record HederaFile( + @NonNull FileStore fileStore, + @NonNull Integer fileId, + @NonNull byte[] contents, + @Nullable HFileMeta metadata, + @Nullable SystemFileType systemFileType) { + + static HederaFile fromMod(@NonNull final OnDiskValue wrapper) { + final var value = wrapper.getValue(); + return new HederaFile( + FileStore.ORDINARY, + (int) value.fileId().fileNum(), + value.contents().toByteArray(), + null, + SystemFileType.byId.get((int) value.fileId().fileNum())); + } + + @NonNull + static HederaFile of(final int fileId, @NonNull final byte[] contents) { + return new HederaFile(FileStore.ORDINARY, fileId, contents, null, SystemFileType.byId.get(fileId)); + } + + @NonNull + static HederaFile of(final int fileId, @NonNull final byte[] contents, @NonNull final HFileMeta metadata) { + return new HederaFile(FileStore.ORDINARY, fileId, contents, metadata, SystemFileType.byId.get(fileId)); + } + + boolean isActive() { + if (null != systemFileType) { + return true; + } + if (null != metadata) { + return !metadata.isDeleted(); + } + return false; + } +} diff --git a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/bbm/files/SystemFileType.java b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/bbm/files/SystemFileType.java new file mode 100644 index 000000000000..567680fa40bc --- /dev/null +++ b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/bbm/files/SystemFileType.java @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2024 Hedera Hashgraph, LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.hedera.node.app.bbm.files; + +import java.util.EnumSet; +import java.util.HashMap; +import java.util.Map; + +enum SystemFileType { + ADDRESS_BOOK(101), + NODE_DETAILS(102), + FEE_SCHEDULES(111), + EXCHANGE_RATES(112), + NETWORK_PROPERTIES(121), + HAPI_PERMISSIONS(122), + THROTTLE_DEFINITIONS(123), + SOFTWARE_UPDATE0(150), + SOFTWARE_UPDATE1(151), + SOFTWARE_UPDATE2(152), + SOFTWARE_UPDATE3(153), + SOFTWARE_UPDATE4(154), + SOFTWARE_UPDATE5(155), + SOFTWARE_UPDATE6(156), + SOFTWARE_UPDATE7(157), + SOFTWARE_UPDATE8(158), + SOFTWARE_UPDATE9(159), + UNKNOWN(-1); + + public final int id; + + static final Map byId = new HashMap<>(); + + SystemFileType(final int id) { + this.id = id; + } + + static { + EnumSet.allOf(SystemFileType.class).forEach(e -> byId.put(e.id, e)); + } +} diff --git a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/fees/ChildFeeContextImpl.java b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/fees/ChildFeeContextImpl.java index efdf7583f8d0..0d7d3a597e75 100644 --- a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/fees/ChildFeeContextImpl.java +++ b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/fees/ChildFeeContextImpl.java @@ -32,7 +32,6 @@ import com.swirlds.config.api.Configuration; import edu.umd.cs.findbugs.annotations.NonNull; import edu.umd.cs.findbugs.annotations.Nullable; -import java.time.Instant; import java.util.Objects; /** @@ -56,11 +55,6 @@ public ChildFeeContextImpl( this.payerId = Objects.requireNonNull(payerId); } - @Override - public Instant currentTime() { - return context.consensusNow(); - } - @Override public @NonNull AccountID payer() { return payerId; @@ -97,4 +91,9 @@ public Instant currentTime() { public @Nullable Authorizer authorizer() { return context.authorizer(); } + + @Override + public int numTxnSignatures() { + return context.numTxnSignatures(); + } } diff --git a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/fees/FeeContextImpl.java b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/fees/FeeContextImpl.java index ec32db0a1af5..e9d5ee5d855d 100644 --- a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/fees/FeeContextImpl.java +++ b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/fees/FeeContextImpl.java @@ -47,6 +47,7 @@ public class FeeContextImpl implements FeeContext { private final ReadableStoreFactory storeFactory; private final Configuration configuration; private final Authorizer authorizer; + private final int numSignatures; /** * Constructor of {@code FeeContextImpl} @@ -57,6 +58,7 @@ public class FeeContextImpl implements FeeContext { * @param payerId the {@link AccountID} of the payer * @param feeManager the {@link FeeManager} to generate a {@link FeeCalculator} * @param storeFactory the {@link ReadableStoreFactory} to create readable stores + * @param numSignatures the number of signatures in the transaction */ public FeeContextImpl( @NonNull final Instant consensusTime, @@ -66,7 +68,8 @@ public FeeContextImpl( @NonNull final FeeManager feeManager, @NonNull final ReadableStoreFactory storeFactory, @NonNull final Configuration configuration, - @NonNull final Authorizer authorizer) { + @NonNull final Authorizer authorizer, + final int numSignatures) { this.consensusTime = consensusTime; this.txInfo = txInfo; this.payerKey = payerKey; @@ -75,11 +78,7 @@ public FeeContextImpl( this.storeFactory = storeFactory; this.configuration = configuration; this.authorizer = authorizer; - } - - @Override - public Instant currentTime() { - return consensusTime; + this.numSignatures = numSignatures; } @Override @@ -129,4 +128,9 @@ public Configuration configuration() { public Authorizer authorizer() { return authorizer; } + + @Override + public int numTxnSignatures() { + return numSignatures; + } } diff --git a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/grpc/impl/MethodBase.java b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/grpc/impl/MethodBase.java index 6933ee089017..ad182af81420 100644 --- a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/grpc/impl/MethodBase.java +++ b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/grpc/impl/MethodBase.java @@ -140,7 +140,7 @@ public void invoke( callsHandledSpeedometer.cycle(); } catch (final Exception e) { // Track the number of times we failed to handle a call - logger.error("Failed to handle call! Unexpected exception", e); + logger.error("Possibly CATASTROPHIC failure while handling a call and running the ingest workflow", e); callsFailedCounter.increment(); responseObserver.onError(e); } @@ -167,7 +167,7 @@ public void invoke( @NonNull final Metrics metrics, @NonNull final String nameTemplate, @NonNull final String descriptionTemplate) { - final var baseName = serviceName + "/" + methodName; + final var baseName = serviceName.replace('.', ':') + ":" + methodName; final var name = String.format(nameTemplate, baseName); final var desc = String.format(descriptionTemplate, baseName); return metrics.getOrCreate(new Counter.Config("app", name).withDescription(desc)); @@ -185,7 +185,7 @@ public void invoke( @NonNull final Metrics metrics, @NonNull final String nameTemplate, @NonNull final String descriptionTemplate) { - final var baseName = serviceName + "/" + methodName; + final var baseName = serviceName.replace('.', ':') + ":" + methodName; final var name = String.format(nameTemplate, baseName); final var desc = String.format(descriptionTemplate, baseName); return metrics.getOrCreate(new SpeedometerMetric.Config("app", name).withDescription(desc)); diff --git a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/grpc/impl/QueryMethod.java b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/grpc/impl/QueryMethod.java index 5d75e77b97fa..cae7daa80b16 100644 --- a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/grpc/impl/QueryMethod.java +++ b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/grpc/impl/QueryMethod.java @@ -39,7 +39,7 @@ public final class QueryMethod extends MethodBase { // Constants for metric names and descriptions private static final String COUNTER_ANSWERED_NAME_TPL = "%sSub"; private static final String COUNTER_ANSWERED_DESC_TPL = "number of %s answered"; - private static final String SPEEDOMETER_ANSWERED_NAME_TPL = "%sSub/sec"; + private static final String SPEEDOMETER_ANSWERED_NAME_TPL = "%sSub_per_sec"; private static final String SPEEDOMETER_ANSWERED_DESC_TPL = "number of %s answered per second"; /** The workflow contains all the steps needed for handling the query. */ diff --git a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/records/BlockRecordManager.java b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/records/BlockRecordManager.java index a0c9cb5ea055..31fe32bdefdc 100644 --- a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/records/BlockRecordManager.java +++ b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/records/BlockRecordManager.java @@ -107,4 +107,15 @@ public interface BlockRecordManager extends BlockRecordInfo, AutoCloseable { */ @Override void close(); + + /** + * Notifies the block record manager that any startup migration records have been streamed. + */ + void markMigrationRecordsStreamed(); + + /** + * Get the consensus time of the latest handled transaction, or EPOCH if no transactions have been handled yet + */ + @NonNull + Instant consTimeOfLastHandledTxn(); } diff --git a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/records/impl/BlockRecordManagerImpl.java b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/records/impl/BlockRecordManagerImpl.java index 91b525f26e27..566f3623f5e2 100644 --- a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/records/impl/BlockRecordManagerImpl.java +++ b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/records/impl/BlockRecordManagerImpl.java @@ -201,6 +201,12 @@ public boolean startUserTransaction(@NonNull final Instant consensusTime, @NonNu return false; } + @Override + public void markMigrationRecordsStreamed() { + lastBlockInfo = + lastBlockInfo.copyBuilder().migrationRecordsStreamed(true).build(); + } + /** * We need this to preserve unit test expectations written that assumed a bug in the original implementation, * in which the first consensus time of the current block was not in state. @@ -247,9 +253,9 @@ public void endRound(@NonNull final HederaState state) { assert existingRunningHashes != null : "This cannot be null because genesis migration sets it"; runningHashesState.put(new RunningHashes( currentRunningHash, - existingRunningHashes.runningHash(), existingRunningHashes.nMinus1RunningHash(), - existingRunningHashes.nMinus2RunningHash())); + existingRunningHashes.nMinus2RunningHash(), + existingRunningHashes.nMinus3RunningHash())); // Commit the changes to the merkle tree. ((WritableSingletonStateBase) runningHashesState).commit(); } @@ -295,6 +301,18 @@ public Instant firstConsTimeOfLastBlock() { return BlockRecordInfoUtils.firstConsTimeOfLastBlock(lastBlockInfo); } + /** + * {@inheritDoc} + */ + @NonNull + @Override + public Instant consTimeOfLastHandledTxn() { + final var lastHandledTxn = lastBlockInfo.consTimeOfLastHandledTxn(); + return lastHandledTxn != null + ? Instant.ofEpochSecond(lastHandledTxn.seconds(), lastHandledTxn.nanos()) + : Instant.EPOCH; + } + @Override public @NonNull Timestamp currentBlockTimestamp() { return lastBlockInfo.firstConsTimeOfCurrentBlockOrThrow(); @@ -346,6 +364,26 @@ public void advanceConsensusClock(@NonNull final Instant consensusTime, @NonNull this.lastBlockInfo = newBlockInfo; } + /** + * Check if the consensus time of the last handled transaction is the default value. This is + * used to determine if migration records should be streamed + * + * @param blockInfo the block info object to test + * @return true if the given block info has a last handled transaction time that is considered a + * 'default' or 'unset' value, false otherwise. + */ + public static boolean isDefaultConsTimeOfLastHandledTxn(@Nullable final BlockInfo blockInfo) { + if (blockInfo == null || blockInfo.consTimeOfLastHandledTxn() == null) { + return true; + } + + // If there is a value, it is considered a 'default' value unless it is after Instant.EPOCH + var inst = Instant.ofEpochSecond( + blockInfo.consTimeOfLastHandledTxn().seconds(), + blockInfo.consTimeOfLastHandledTxn().nanos()); + return !inst.isAfter(Instant.EPOCH); + } + // ======================================================================================================== // Private Methods diff --git a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/records/impl/producers/StreamFileProducerConcurrent.java b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/records/impl/producers/StreamFileProducerConcurrent.java index 899eaccc6f34..dabb9545da29 100644 --- a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/records/impl/producers/StreamFileProducerConcurrent.java +++ b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/records/impl/producers/StreamFileProducerConcurrent.java @@ -166,8 +166,7 @@ public void switchBlocks( if (currentRecordFileWriter == null) { // We are at the start of a new block and there is no old one to close or wait for. So just create a new - // one - // which creates a new file and writes initializes it in the background + // one which creates a new file and writes initializes it in the background currentRecordFileWriter = lastRecordHashingResult.thenApply(lastRunningHash -> createBlockRecordWriter( lastRunningHash, newBlockFirstTransactionConsensusTime, newBlockNumber)); } else { @@ -198,16 +197,6 @@ public void switchBlocks( @Override public void writeRecordStreamItems(@NonNull final Stream recordStreamItems) { lock.lock(); // Block until the lock is acquired - if (currentRecordFileWriter == null) { - // For a node starting from genesis or restarting at an upgrade boundary, switchBlocks() is - // always called before the first call to writeRecordStreamItems(), because - // BlockRecordManagerImpl#startTransaction() will detect either the genesis special case - // or notice more than two seconds have passed since the last block was created before the - // upgrade. However, a node that is restarted in the middle of a block will follow this - // pattern; nor will a node going through event stream recovery. - return; - } - try { assert lastRecordHashingResult != null : "initRunningHash() must be called before writeRecordStreamItems"; // FUTURE: consider implications on a reconnect scenario! When the currentRecordFileWriter isn't created in @@ -221,8 +210,10 @@ public void writeRecordStreamItems(@NonNull final Stream format.computeNewRunningHash(twoResults.a(), twoResults.b()), executorService); + // When the currentRecordFileWriter is null, it means that the node is starting from genesis or restarting + // at an upgrade boundary. In either case, there is no previous record file to write to. So we just ignore + // the serialized items. + if (currentRecordFileWriter == null) { + // For a node starting from genesis or restarting at an upgrade boundary, switchBlocks() is + // always called before the first call to writeRecordStreamItems(), because + // BlockRecordManagerImpl#startTransaction() will detect either the genesis special case + // or notice more than two seconds have passed since the last block was created before the + // upgrade. However, a node that is restarted in the middle of a block will follow this + // pattern; nor will a node going through event stream recovery. + return; + } // write serialized items to record file in a background thread currentRecordFileWriter = currentRecordFileWriter .thenCombine(futureSerializedRecords, TwoResults::new) diff --git a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/state/logging/TransactionStateLogger.java b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/state/logging/TransactionStateLogger.java index 80ab27736655..48d52b5874b0 100644 --- a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/state/logging/TransactionStateLogger.java +++ b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/state/logging/TransactionStateLogger.java @@ -16,20 +16,22 @@ package com.hedera.node.app.state.logging; -import static com.swirlds.platform.SwirldsPlatform.PLATFORM_THREAD_POOL_NAME; -import static com.swirlds.platform.eventhandling.ConsensusRoundHandler.THREAD_CONS_NAME; +import static com.swirlds.platform.eventhandling.ConsensusRoundHandler.TRANSACTION_HANDLING_THREAD_NAME; -import com.hedera.hapi.node.base.*; +import com.hedera.hapi.node.base.AccountID; +import com.hedera.hapi.node.base.FileID; +import com.hedera.hapi.node.base.ScheduleID; +import com.hedera.hapi.node.base.TokenID; +import com.hedera.hapi.node.base.TopicID; +import com.hedera.hapi.node.base.TransactionID; import com.hedera.hapi.node.transaction.TransactionBody; import com.hedera.hapi.node.transaction.TransactionRecord; -import com.hedera.node.app.signature.SignatureVerificationFuture; import com.hedera.node.app.spi.info.NodeInfo; import com.hedera.node.app.state.merkle.disk.OnDiskKey; import com.hedera.node.app.state.merkle.disk.OnDiskValue; import com.hedera.node.app.state.merkle.memory.InMemoryKey; import com.hedera.node.app.state.merkle.memory.InMemoryValue; import com.hedera.node.app.state.merkle.singleton.ValueLeaf; -import com.hedera.node.app.workflows.TransactionInfo; import com.hedera.node.app.workflows.prehandle.PreHandleResult; import com.swirlds.fcqueue.FCQueue; import com.swirlds.platform.system.Round; @@ -40,7 +42,6 @@ import edu.umd.cs.findbugs.annotations.NonNull; import edu.umd.cs.findbugs.annotations.Nullable; import java.time.Instant; -import java.util.Map; import java.util.Set; import java.util.Spliterator; import java.util.Spliterators; @@ -60,8 +61,6 @@ public final class TransactionStateLogger { /** The logger we are using for Transaction State log */ private static final Logger logger = LogManager.getLogger(TransactionStateLogger.class); - /** The name of the handle transaction thread */ - private static final String HANDLE_THREAD_NAME = "<" + PLATFORM_THREAD_POOL_NAME + ": " + THREAD_CONS_NAME; /** * Log the start of a round if it contains any non-system transactions. @@ -120,50 +119,46 @@ public static void logStartUserTransaction( @NonNull final ConsensusTransaction transaction, @Nullable final TransactionBody txBody, @NonNull final AccountID payer) { - logger.debug( - " Starting user transaction {} at platform time {} from payer 0.0.{}", - txBody == null ? "null" : formatTransactionId(txBody.transactionID()), - transaction.getConsensusTimestamp(), - payer.accountNum()); + if (logger.isDebugEnabled()) { + logger.debug( + " Starting user transaction {} at platform time {} from payer 0.0.{}", + txBody == null ? "null" : formatTransactionId(txBody.transactionID()), + transaction.getConsensusTimestamp(), + payer.accountNum()); + } } /** * Log the start of a user transaction pre-handle result. * - * @param payer The payer - * @param payerKey The payer key - * @param status The status - * @param responseCode The response code + * @param preHandleResult The pre-handle result */ - public static void logStartUserTransactionPreHandleResultP2( - @Nullable AccountID payer, - @Nullable Key payerKey, - @NonNull PreHandleResult.Status status, - @NonNull ResponseCodeEnum responseCode) { - logger.debug( - " with preHandleResult: payer 0.0.{} with key {} with status {} with response code {}", - payer == null ? "null" : payer.accountNum(), - payerKey == null ? "null" : payerKey.toString(), - status, - responseCode); + public static void logStartUserTransactionPreHandleResultP2(@NonNull PreHandleResult preHandleResult) { + if (logger.isDebugEnabled()) { + final var payer = preHandleResult.payer(); + final var payerKey = preHandleResult.payerKey(); + logger.debug( + " with preHandleResult: payer 0.0.{} with key {} with status {} with response code {}", + payer == null ? "null" : payer.accountNum(), + payerKey == null ? "null" : payerKey.toString(), + preHandleResult.status(), + preHandleResult.responseCode()); + } } /** * Log the start of a user transaction pre-handle result. * - * @param txInfo The transaction info - * @param requiredKeys The required keys - * @param verificationResults The verification results + * @param preHandleResult The pre-handle result */ - public static void logStartUserTransactionPreHandleResultP3( - @Nullable TransactionInfo txInfo, - @Nullable Set requiredKeys, - @Nullable Map verificationResults) { - logger.trace( - " with preHandleResult: txInfo {} with requiredKeys {} with verificationResults {}", - txInfo, - requiredKeys, - verificationResults); + public static void logStartUserTransactionPreHandleResultP3(@NonNull PreHandleResult preHandleResult) { + if (logger.isTraceEnabled()) { + logger.trace( + " with preHandleResult: txInfo {} with requiredKeys {} with verificationResults {}", + preHandleResult.txInfo(), + preHandleResult.requiredKeys(), + preHandleResult.verificationResults()); + } } /** @@ -235,7 +230,7 @@ public static void logEndTransactionRecord( * @param The type of the singleton */ public static void logSingletonRead(@NonNull final String label, @Nullable final ValueLeaf value) { - if (logger.isDebugEnabled() && Thread.currentThread().getName().startsWith(HANDLE_THREAD_NAME)) { + if (logger.isDebugEnabled() && Thread.currentThread().getName().equals(TRANSACTION_HANDLING_THREAD_NAME)) { logger.debug(" READ singleton {} value {}", label, value == null ? "null" : value.getValue()); } } @@ -247,7 +242,7 @@ public static void logSingletonRead(@NonNull final String label, @Nullable f * @param value The value of the singleton */ public static void logSingletonWrite(@NonNull final String label, @Nullable final Object value) { - if (logger.isDebugEnabled() && Thread.currentThread().getName().startsWith(HANDLE_THREAD_NAME)) { + if (logger.isDebugEnabled() && Thread.currentThread().getName().equals(TRANSACTION_HANDLING_THREAD_NAME)) { logger.debug(" WRITTEN singleton {} value {}", label, value == null ? "null" : value.toString()); } } @@ -261,7 +256,7 @@ public static void logSingletonWrite(@NonNull final String label, @Nullable fina * @param value The value added to the queue */ public static void logQueueAdd(@NonNull final String label, @Nullable final Object value) { - if (logger.isDebugEnabled() && Thread.currentThread().getName().startsWith(HANDLE_THREAD_NAME)) { + if (logger.isDebugEnabled() && Thread.currentThread().getName().equals(TRANSACTION_HANDLING_THREAD_NAME)) { logger.debug(" ADD to queue {} value {}", label, value == null ? "null" : value.toString()); } } @@ -273,7 +268,7 @@ public static void logQueueAdd(@NonNull final String label, @Nullable final Obje * @param value The value removed from the queue */ public static void logQueueRemove(@NonNull final String label, @Nullable final Object value) { - if (logger.isDebugEnabled() && Thread.currentThread().getName().startsWith(HANDLE_THREAD_NAME)) { + if (logger.isDebugEnabled() && Thread.currentThread().getName().equals(TRANSACTION_HANDLING_THREAD_NAME)) { logger.debug(" REMOVE from queue {} value {}", label, value == null ? "null" : value.toString()); } } @@ -285,7 +280,7 @@ public static void logQueueRemove(@NonNull final String label, @Nullable final O * @param value The value peeked from the queue */ public static void logQueuePeek(@NonNull final String label, @Nullable final Object value) { - if (logger.isDebugEnabled() && Thread.currentThread().getName().startsWith(HANDLE_THREAD_NAME)) { + if (logger.isDebugEnabled() && Thread.currentThread().getName().equals(TRANSACTION_HANDLING_THREAD_NAME)) { logger.debug(" PEEK on queue {} value {}", label, value == null ? "null" : value.toString()); } } @@ -298,7 +293,7 @@ public static void logQueuePeek(@NonNull final String label, @Nullable final Obj * @param The type of the queue values */ public static void logQueueIterate(@NonNull final String label, @NonNull final FCQueue> queue) { - if (logger.isDebugEnabled() && Thread.currentThread().getName().startsWith(HANDLE_THREAD_NAME)) { + if (logger.isDebugEnabled() && Thread.currentThread().getName().equals(TRANSACTION_HANDLING_THREAD_NAME)) { if (queue.size() == 0) { logger.debug(" ITERATE queue {} size 0 values:EMPTY", label); } else { @@ -325,7 +320,7 @@ public static void logQueueIterate(@NonNull final String label, @NonNull fin * @param The type of the value */ public static void logMapPut(@NonNull final String label, @NonNull final K key, @Nullable final V value) { - if (logger.isDebugEnabled() && Thread.currentThread().getName().startsWith(HANDLE_THREAD_NAME)) { + if (logger.isDebugEnabled() && Thread.currentThread().getName().equals(TRANSACTION_HANDLING_THREAD_NAME)) { logger.debug( " PUT into map {} key {} value {}", label, @@ -345,7 +340,7 @@ public static void logMapPut(@NonNull final String label, @NonNull final */ public static void logMapRemove( @NonNull final String label, @NonNull final K key, @Nullable final InMemoryValue value) { - if (logger.isDebugEnabled() && Thread.currentThread().getName().startsWith(HANDLE_THREAD_NAME)) { + if (logger.isDebugEnabled() && Thread.currentThread().getName().equals(TRANSACTION_HANDLING_THREAD_NAME)) { logger.debug( " REMOVE from map {} key {} removed value {}", label, @@ -365,7 +360,7 @@ public static void logMapRemove( */ public static void logMapRemove( @NonNull final String label, @NonNull final K key, @Nullable final OnDiskValue value) { - if (logger.isDebugEnabled() && Thread.currentThread().getName().startsWith(HANDLE_THREAD_NAME)) { + if (logger.isDebugEnabled() && Thread.currentThread().getName().equals(TRANSACTION_HANDLING_THREAD_NAME)) { logger.debug( " REMOVE from map {} key {} removed value {}", label, @@ -381,7 +376,7 @@ public static void logMapRemove( * @param size The size of the map */ public static void logMapGetSize(@NonNull final String label, final long size) { - if (logger.isDebugEnabled() && Thread.currentThread().getName().startsWith(HANDLE_THREAD_NAME)) { + if (logger.isDebugEnabled() && Thread.currentThread().getName().equals(TRANSACTION_HANDLING_THREAD_NAME)) { logger.debug(" GET_SIZE on map {} size {}", label, size); } } @@ -396,7 +391,7 @@ public static void logMapGetSize(@NonNull final String label, final long size) { * @param The type of the value */ public static void logMapGet(@NonNull final String label, @NonNull final K key, @Nullable final V value) { - if (logger.isDebugEnabled() && Thread.currentThread().getName().startsWith(HANDLE_THREAD_NAME)) { + if (logger.isDebugEnabled() && Thread.currentThread().getName().equals(TRANSACTION_HANDLING_THREAD_NAME)) { logger.debug( " GET on map {} key {} value {}", label, @@ -416,7 +411,7 @@ public static void logMapGet(@NonNull final String label, @NonNull final */ public static void logMapGetForModify( @NonNull final String label, @NonNull final K key, @Nullable final V value) { - if (logger.isDebugEnabled() && Thread.currentThread().getName().startsWith(HANDLE_THREAD_NAME)) { + if (logger.isDebugEnabled() && Thread.currentThread().getName().equals(TRANSACTION_HANDLING_THREAD_NAME)) { logger.debug( " GET_FOR_MODIFY on map {} key {} value {}", label, @@ -433,7 +428,7 @@ public static void logMapGetForModify( * @param The type of the key */ public static void logMapIterate(@NonNull final String label, @NonNull final Set> keySet) { - if (logger.isDebugEnabled() && Thread.currentThread().getName().startsWith(HANDLE_THREAD_NAME)) { + if (logger.isDebugEnabled() && Thread.currentThread().getName().equals(TRANSACTION_HANDLING_THREAD_NAME)) { final long size = keySet.size(); if (size == 0) { logger.debug(" ITERATE map {} size 0 keys:EMPTY", label); diff --git a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/throttle/NetworkUtilizationManager.java b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/throttle/NetworkUtilizationManager.java index 3fa444516686..9536645b44a5 100644 --- a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/throttle/NetworkUtilizationManager.java +++ b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/throttle/NetworkUtilizationManager.java @@ -17,10 +17,13 @@ package com.hedera.node.app.throttle; import com.hedera.hapi.node.base.AccountID; +import com.hedera.hapi.node.base.HederaFunctionality; +import com.hedera.node.app.hapi.utils.throttles.DeterministicThrottle; import com.hedera.node.app.state.HederaState; import com.hedera.node.app.workflows.TransactionInfo; import edu.umd.cs.findbugs.annotations.NonNull; import java.time.Instant; +import java.util.List; /** * Interface which purpose is to do the work of tracking network utilization (and its impact on @@ -78,4 +81,43 @@ void trackFeePayments( * @param state the state of the node */ void saveTo(@NonNull final HederaState state); + + /* + * Updates the throttle requirements for the given transaction and returns whether the transaction + * should be throttled for the current time(Instant.now). + * + * @param txnInfo the transaction to update the throttle requirements for + * @param state the current state of the node + * @param consensusTime the consensus time + * @return whether the transaction should be throttled + */ + boolean shouldThrottle( + @NonNull final TransactionInfo txnInfo, + @NonNull final HederaState state, + @NonNull final Instant consensusTime); + + /** + * Verifies if the throttle in this operation context has enough capacity to handle the given number of the + * given function at the given time. (The time matters because we want to consider how much + * will have leaked between now and that time.) + * + * @param n the number of the given function + * @param function the function + * @return true if the system should throttle the given number of the given function + * at the instant for which throttling should be calculated + */ + boolean shouldThrottleNOfUnscaled(int n, @NonNull HederaFunctionality function, @NonNull Instant consensusTime); + + /** + * Returns a list of snapshots of the current usage of all active throttles. + * @return the active snapshots + */ + List getUsageSnapshots(); + + /** + * Resets the current usage of all active throttles to the given snapshots. + * + * @param snapshots the snapshots to reset to + */ + void resetUsageThrottlesTo(List snapshots); } diff --git a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/throttle/SynchronizedThrottleAccumulator.java b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/throttle/SynchronizedThrottleAccumulator.java index efe77035164b..4e9815a62f07 100644 --- a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/throttle/SynchronizedThrottleAccumulator.java +++ b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/throttle/SynchronizedThrottleAccumulator.java @@ -53,7 +53,7 @@ public SynchronizedThrottleAccumulator(ThrottleAccumulator frontendThrottle) { * @return whether the transaction should be throttled */ public synchronized boolean shouldThrottle(@NonNull TransactionInfo txnInfo, HederaState state) { - setDecisionTime(); + setDecisionTime(Instant.now()); return frontendThrottle.shouldThrottle(txnInfo, lastDecisionTime, state); } @@ -67,16 +67,15 @@ public synchronized boolean shouldThrottle(@NonNull TransactionInfo txnInfo, Hed * @return whether the query should be throttled */ public synchronized boolean shouldThrottle(HederaFunctionality queryFunction, Query query, AccountID queryPayerId) { - setDecisionTime(); + setDecisionTime(Instant.now()); return frontendThrottle.shouldThrottle(queryFunction, lastDecisionTime, query, queryPayerId); } - private void setDecisionTime() { - final var now = Instant.now(); - lastDecisionTime = now.isBefore(lastDecisionTime) ? lastDecisionTime : now; - } - public void leakUnusedThrottlePreviouslyReserved(int n, HederaFunctionality function) { frontendThrottle.leakCapacityForNOfUnscaled(n, function); } + + private void setDecisionTime(@NonNull final Instant time) { + lastDecisionTime = time.isBefore(lastDecisionTime) ? lastDecisionTime : time; + } } diff --git a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/throttle/ThrottleAccumulator.java b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/throttle/ThrottleAccumulator.java index 2f1bb59b4938..015e3498e992 100644 --- a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/throttle/ThrottleAccumulator.java +++ b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/throttle/ThrottleAccumulator.java @@ -288,6 +288,16 @@ public void resetUsage() { } } + /* + * Resets the usage for all snapshots. + */ + @Override + public void resetUsageThrottlesTo(final List snapshots) { + for (int i = 0, n = activeThrottles.size(); i < n; i++) { + activeThrottles.get(i).resetUsageTo(snapshots.get(i)); + } + } + private boolean shouldThrottleTxn( final boolean isScheduled, @NonNull final TransactionInfo txnInfo, @@ -486,12 +496,15 @@ private boolean shouldThrottleScheduleSign( } } - public static boolean throttleExempt( - @NonNull final AccountID accountID, @NonNull final Configuration configuration) { + private static boolean throttleExempt( + @Nullable final AccountID accountID, @NonNull final Configuration configuration) { final long maxThrottleExemptNum = configuration.getConfigData(AccountsConfig.class).lastThrottleExempt(); - final long accountNum = accountID.accountNum().longValue(); - return 1L <= accountNum && accountNum <= maxThrottleExemptNum; + if (accountID != null) { + final long accountNum = accountID.accountNum().longValue(); + return 1L <= accountNum && accountNum <= maxThrottleExemptNum; + } + return false; } private void reclaimLastAllowedUse() { diff --git a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/throttle/impl/NetworkUtilizationManagerImpl.java b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/throttle/impl/NetworkUtilizationManagerImpl.java index 36610c63031d..d290682858f6 100644 --- a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/throttle/impl/NetworkUtilizationManagerImpl.java +++ b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/throttle/impl/NetworkUtilizationManagerImpl.java @@ -24,6 +24,7 @@ import static java.util.Objects.requireNonNull; import com.hedera.hapi.node.base.AccountID; +import com.hedera.hapi.node.base.HederaFunctionality; import com.hedera.hapi.node.base.SignatureMap; import com.hedera.hapi.node.base.Timestamp; import com.hedera.hapi.node.base.Transaction; @@ -201,4 +202,30 @@ public boolean wasLastTxnGasThrottled() { public void leakUnusedGasPreviouslyReserved(@NonNull final TransactionInfo txnInfo, long value) { backendThrottle.leakUnusedGasPreviouslyReserved(txnInfo, value); } + + @Override + public boolean shouldThrottle( + @NonNull final TransactionInfo txnInfo, + @NonNull final HederaState state, + @NonNull final Instant consensusTime) { + return backendThrottle.shouldThrottle(txnInfo, consensusTime, state); + } + + @Override + public boolean shouldThrottleNOfUnscaled( + final int n, @NonNull final HederaFunctionality function, @NonNull final Instant consensusTime) { + return backendThrottle.shouldThrottleNOfUnscaled(n, function, consensusTime); + } + + @Override + public List getUsageSnapshots() { + return backendThrottle.allActiveThrottles().stream() + .map(DeterministicThrottle::usageSnapshot) + .toList(); + } + + @Override + public void resetUsageThrottlesTo(List snapshots) { + backendThrottle.resetUsageThrottlesTo(snapshots); + } } diff --git a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/util/FileUtilities.java b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/util/FileUtilities.java index 8d618f0af504..3fec183fa6b2 100644 --- a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/util/FileUtilities.java +++ b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/util/FileUtilities.java @@ -17,12 +17,16 @@ package com.hedera.node.app.util; import static com.hedera.node.app.service.file.impl.FileServiceImpl.BLOBS_KEY; +import static java.util.Objects.requireNonNull; import com.hedera.hapi.node.base.FileID; import com.hedera.hapi.node.state.file.File; import com.hedera.node.app.service.file.FileService; import com.hedera.node.app.state.HederaState; +import com.hedera.node.config.data.FilesConfig; +import com.hedera.node.config.data.HederaConfig; import com.hedera.pbj.runtime.io.buffer.Bytes; +import com.swirlds.config.api.Configuration; import edu.umd.cs.findbugs.annotations.NonNull; public class FileUtilities { @@ -38,4 +42,58 @@ public static Bytes getFileContent(@NonNull final HederaState state, @NonNull fi final var file = filesMap.get(fileID); return file != null ? file.contents() : Bytes.EMPTY; } + + /** + * Observes the properties and permissions of the network from a saved state. + */ + public interface SpecialFilesObserver { + /** + * Accepts the properties and permissions of the network from a saved state. + * + * @param properties the raw bytes of the properties file + * @param permissions the raw bytes of the permissions file + */ + void acceptPropertiesAndPermissions(Bytes properties, Bytes permissions); + } + + /** + * Given a state, configuration, and observer, observes the properties and + * permissions of the network. + * + * @param state the state to observe + * @param config the configuration to use + * @param observer the observer to notify + */ + public static void observePropertiesAndPermissions( + @NonNull final HederaState state, + @NonNull final Configuration config, + @NonNull final SpecialFilesObserver observer) { + requireNonNull(state); + requireNonNull(config); + requireNonNull(observer); + final var filesConfig = config.getConfigData(FilesConfig.class); + observePropertiesAndPermissions( + state, + FileUtilities.createFileID(filesConfig.networkProperties(), config), + FileUtilities.createFileID(filesConfig.hapiPermissions(), config), + observer); + } + + private static void observePropertiesAndPermissions( + @NonNull final HederaState state, + @NonNull final FileID propertiesId, + @NonNull final FileID permissionsId, + @NonNull final SpecialFilesObserver observer) { + observer.acceptPropertiesAndPermissions( + getFileContent(state, propertiesId), getFileContent(state, permissionsId)); + } + + private static FileID createFileID(final long fileNum, @NonNull final Configuration configuration) { + final var hederaConfig = configuration.getConfigData(HederaConfig.class); + return FileID.newBuilder() + .realmNum(hederaConfig.realm()) + .shardNum(hederaConfig.shard()) + .fileNum(fileNum) + .build(); + } } diff --git a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/ParseExceptionWorkaround.java b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/ParseExceptionWorkaround.java deleted file mode 100644 index cdd90ed6afd5..000000000000 --- a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/ParseExceptionWorkaround.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (C) 2024 Hedera Hashgraph, LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.hedera.node.app.workflows; - -import com.hedera.pbj.runtime.ParseException; -import edu.umd.cs.findbugs.annotations.NonNull; - -/** - * This is a temporary workaround for an unexpected behavior in PBJ. A {@link ParseException} may be wrapped in - * another {@link ParseException} as its cause. This class provides a method to get the root cause of the - * {@link ParseException}. - * - *

If we agree that {@link ParseException} should not be wrapped in another {@link ParseException}, then this class - * can be removed. - */ -public class ParseExceptionWorkaround { - - private ParseExceptionWorkaround() {} - - /** - * Returns the root cause of the given {@link ParseException}. - * - * @param ex the {@link ParseException} to get the root cause of - * @return the root cause of the given {@link ParseException} - */ - public static Throwable getParseExceptionCause(@NonNull final ParseException ex) { - var cause = ex.getCause(); - while (cause instanceof ParseException) { - cause = cause.getCause(); - } - return cause; - } -} diff --git a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/SolvencyPreCheck.java b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/SolvencyPreCheck.java index cc277911f9d0..0c2d42dfc4ca 100644 --- a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/SolvencyPreCheck.java +++ b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/SolvencyPreCheck.java @@ -18,7 +18,6 @@ import static com.hedera.hapi.node.base.HederaFunctionality.CONTRACT_CALL; import static com.hedera.hapi.node.base.HederaFunctionality.CONTRACT_CREATE; -import static com.hedera.hapi.node.base.ResponseCodeEnum.INSUFFICIENT_ACCOUNT_BALANCE; import static com.hedera.hapi.node.base.ResponseCodeEnum.INSUFFICIENT_PAYER_BALANCE; import static com.hedera.hapi.node.base.ResponseCodeEnum.INSUFFICIENT_TX_FEE; import static com.hedera.hapi.node.base.ResponseCodeEnum.INVALID_TRANSACTION_BODY; @@ -141,35 +140,30 @@ public void checkSolvency( if (authorizer.hasWaivedFees(payerID, functionality, txBody)) { return; } - final var totalFee = ingestCheck ? fees.totalWithoutServiceFee() : fees.totalFee(); final var availableBalance = account.tinybarBalance(); final var offeredFee = txBody.transactionFee(); - final ResponseCodeEnum insufficientFeeResponseCode; - // Use this response code for either ingest or triggered schedule transaction - if (ingestCheck || fees.totalWithoutServiceFee() == 0L) { - insufficientFeeResponseCode = INSUFFICIENT_PAYER_BALANCE; - } else { - insufficientFeeResponseCode = INSUFFICIENT_ACCOUNT_BALANCE; - } + if (offeredFee < fees.networkFee()) { throw new InsufficientNetworkFeeException(INSUFFICIENT_TX_FEE, totalFee); } if (availableBalance < fees.networkFee()) { - throw new InsufficientNetworkFeeException(insufficientFeeResponseCode, totalFee); + throw new InsufficientNetworkFeeException(INSUFFICIENT_PAYER_BALANCE, totalFee); } if (offeredFee < totalFee) { throw new InsufficientServiceFeeException(INSUFFICIENT_TX_FEE, totalFee); } if (availableBalance < totalFee) { - throw new InsufficientServiceFeeException(insufficientFeeResponseCode, totalFee); + throw new InsufficientServiceFeeException(INSUFFICIENT_PAYER_BALANCE, totalFee); } - final long additionalCosts; + long additionalCosts = 0L; try { final var now = txBody.transactionIDOrThrow().transactionValidStartOrThrow(); - additionalCosts = Math.max(0, estimateAdditionalCosts(txBody, functionality, HapiUtils.asInstant(now))); + if (ingestCheck) { + additionalCosts = Math.max(0, estimateAdditionalCosts(txBody, functionality, HapiUtils.asInstant(now))); + } } catch (final NullPointerException ex) { // One of the required fields was not present throw new InsufficientBalanceException(INVALID_TRANSACTION_BODY, totalFee); @@ -178,7 +172,7 @@ public void checkSolvency( if (availableBalance < totalFee + additionalCosts) { // FUTURE: This should be checked earlier expiryValidation.checkAccountExpiry(account); - throw new InsufficientNonFeeDebitsException(insufficientFeeResponseCode, totalFee); + throw new InsufficientNonFeeDebitsException(INSUFFICIENT_PAYER_BALANCE, totalFee); } } diff --git a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/TransactionChecker.java b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/TransactionChecker.java index 1d262533e8ec..39872ed0e359 100644 --- a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/TransactionChecker.java +++ b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/TransactionChecker.java @@ -30,7 +30,6 @@ import static com.hedera.hapi.node.base.ResponseCodeEnum.TRANSACTION_HAS_UNKNOWN_FIELDS; import static com.hedera.hapi.node.base.ResponseCodeEnum.TRANSACTION_ID_FIELD_NOT_ALLOWED; import static com.hedera.hapi.node.base.ResponseCodeEnum.TRANSACTION_OVERSIZE; -import static com.hedera.node.app.workflows.ParseExceptionWorkaround.getParseExceptionCause; import static java.util.Collections.emptyList; import static java.util.Objects.requireNonNull; @@ -307,7 +306,7 @@ private void checkTransactionDeprecation(@NonNull final Transaction tx) throws P * @throws PreCheckException if validation fails * @throws NullPointerException if any of the parameters is {@code null} */ - public void checkTransactionBody(@NonNull final TransactionBody txBody) throws PreCheckException { + private void checkTransactionBody(@NonNull final TransactionBody txBody) throws PreCheckException { final var config = props.getConfiguration().getConfigData(HederaConfig.class); checkTransactionID(txBody.transactionIDOrThrow()); checkMemo(txBody.memo(), config.transactionMaxMemoUtf8Bytes()); @@ -372,13 +371,14 @@ public void checkTimeBox(@NonNull final TransactionBody txBody, @NonNull final I private void checkTransactionID(@NonNull final TransactionID txnId) throws PreCheckException { // Determines whether the given {@link AccountID} can possibly be valid. This method does not refer to state, // it simply looks at the {@code accountID} itself to determine whether it might be valid. An ID is valid if - // the shard and realm match the shard and realm of this node, AND if the account number is positive or if - // the alias is set. + // the shard and realm match the shard and realm of this node, AND if the account number is positive + // alias payer account is not allowed to submit transactions. final var accountID = txnId.accountID(); final var isPlausibleAccount = accountID != null && accountID.shardNum() == nodeAccount.shardNum() && accountID.realmNum() == nodeAccount.realmNum() - && ((accountID.hasAccountNum() && accountID.accountNumOrElse(0L) > 0) || (accountID.hasAlias())); + && accountID.hasAccountNum() + && accountID.accountNumOrElse(0L) > 0; if (!isPlausibleAccount) { throw new PreCheckException(PAYER_ACCOUNT_NOT_FOUND); @@ -466,11 +466,7 @@ private T parseStrict( try { return codec.parseStrict(data); } catch (ParseException e) { - - // Temporary workaround for unexpected behavior in PBJ. Can be removed if we agree that - // ParseException should not be wrapped. - final var cause = getParseExceptionCause(e); - if (cause instanceof UnknownFieldException) { + if (e.getCause() instanceof UnknownFieldException) { // We do not allow newer clients to send transactions to older networks. throw new PreCheckException(TRANSACTION_HAS_UNKNOWN_FIELDS); } diff --git a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/TransactionInfo.java b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/TransactionInfo.java index 6ec2115b39d2..9464b216328a 100644 --- a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/TransactionInfo.java +++ b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/TransactionInfo.java @@ -25,6 +25,7 @@ import com.hedera.hapi.node.transaction.TransactionBody; import com.hedera.pbj.runtime.io.buffer.Bytes; import edu.umd.cs.findbugs.annotations.NonNull; +import edu.umd.cs.findbugs.annotations.Nullable; /** * Contains information related to a parsed transaction. @@ -49,8 +50,8 @@ public record TransactionInfo( @NonNull Transaction transaction, @NonNull TransactionBody txBody, - @NonNull TransactionID transactionID, - @NonNull AccountID payerID, + @Nullable TransactionID transactionID, + @Nullable AccountID payerID, @NonNull SignatureMap signatureMap, @NonNull Bytes signedBytes, @NonNull HederaFunctionality functionality) { @@ -70,4 +71,22 @@ public TransactionInfo( signedBytes, functionality); } + + public static TransactionInfo from( + @NonNull Transaction transaction, + @NonNull TransactionBody txBody, + @NonNull SignatureMap signatureMap, + @NonNull Bytes signedBytes, + @NonNull HederaFunctionality functionality) { + TransactionID transactionId = null; + AccountID payerId = null; + if (txBody.transactionID() != null) { + transactionId = txBody.transactionID(); + if (transactionId.accountID() != null) { + payerId = txBody.transactionID().accountID(); + } + } + return new TransactionInfo( + transaction, txBody, transactionId, payerId, signatureMap, signedBytes, functionality); + } } diff --git a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/handle/HandleContextImpl.java b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/handle/HandleContextImpl.java index 4d5191aec046..418e6eae1b08 100644 --- a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/handle/HandleContextImpl.java +++ b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/handle/HandleContextImpl.java @@ -16,8 +16,11 @@ package com.hedera.node.app.workflows.handle; +import static com.hedera.hapi.node.base.HederaFunctionality.CONTRACT_CALL; +import static com.hedera.hapi.node.base.HederaFunctionality.CONTRACT_CREATE; import static com.hedera.hapi.node.base.ResponseCodeEnum.DUPLICATE_TRANSACTION; import static com.hedera.hapi.node.base.ResponseCodeEnum.INVALID_SIGNATURE; +import static com.hedera.hapi.node.base.ResponseCodeEnum.SUCCESS; import static com.hedera.node.app.spi.HapiUtils.functionOf; import static com.hedera.node.app.spi.workflows.HandleContext.TransactionCategory.CHILD; import static com.hedera.node.app.spi.workflows.HandleContext.TransactionCategory.PRECEDING; @@ -42,6 +45,7 @@ import com.hedera.node.app.fees.FeeManager; import com.hedera.node.app.fees.NoOpFeeAccumulator; import com.hedera.node.app.fees.NoOpFeeCalculator; +import com.hedera.node.app.hapi.utils.throttles.DeterministicThrottle; import com.hedera.node.app.ids.EntityIdService; import com.hedera.node.app.ids.WritableEntityIdStore; import com.hedera.node.app.service.token.TokenService; @@ -75,9 +79,11 @@ import com.hedera.node.app.spi.workflows.record.SingleTransactionRecordBuilder; import com.hedera.node.app.state.HederaRecordCache; import com.hedera.node.app.state.WrappedHederaState; +import com.hedera.node.app.throttle.NetworkUtilizationManager; import com.hedera.node.app.throttle.SynchronizedThrottleAccumulator; import com.hedera.node.app.workflows.SolvencyPreCheck; import com.hedera.node.app.workflows.TransactionChecker; +import com.hedera.node.app.workflows.TransactionInfo; import com.hedera.node.app.workflows.dispatcher.ReadableStoreFactory; import com.hedera.node.app.workflows.dispatcher.ServiceApiFactory; import com.hedera.node.app.workflows.dispatcher.TransactionDispatcher; @@ -93,6 +99,7 @@ import edu.umd.cs.findbugs.annotations.NonNull; import edu.umd.cs.findbugs.annotations.Nullable; import java.time.Instant; +import java.util.List; import java.util.Objects; import java.util.function.Function; import java.util.function.Predicate; @@ -110,6 +117,7 @@ public class HandleContextImpl implements HandleContext, FeeContext { private final TransactionBody txBody; private final HederaFunctionality functionality; private final AccountID payer; + private AccountID topLevelPayer; private final Key payerKey; private final NetworkInfo networkInfo; private final TransactionCategory category; @@ -133,6 +141,7 @@ public class HandleContextImpl implements HandleContext, FeeContext { private final Authorizer authorizer; private final SolvencyPreCheck solvencyPreCheck; private final ChildRecordFinalizer childRecordFinalizer; + private final NetworkUtilizationManager networkUtilizationManager; private final SynchronizedThrottleAccumulator synchronizedThrottleAccumulator; private ReadableStoreFactory readableStoreFactory; @@ -164,7 +173,8 @@ public class HandleContextImpl implements HandleContext, FeeContext { * @param authorizer The {@link Authorizer} used to authorize the transaction * @param solvencyPreCheck The {@link SolvencyPreCheck} used to validate if the account is able to pay the fees * @param childRecordFinalizer The {@link ChildRecordFinalizer} used to finalize child records - * @param synchronizedThrottleAccumulator The {@link SynchronizedThrottleAccumulator} used to manage tracking of network utilization + * @param networkUtilizationManager The {@link NetworkUtilizationManager} used to manage the tracking of backend network throttling + * @param synchronizedThrottleAccumulator The {@link SynchronizedThrottleAccumulator} used to manage the tracking of frontend network throttling */ public HandleContextImpl( @NonNull final TransactionBody txBody, @@ -190,10 +200,12 @@ public HandleContextImpl( @NonNull final Authorizer authorizer, @NonNull final SolvencyPreCheck solvencyPreCheck, @NonNull final ChildRecordFinalizer childRecordFinalizer, + @NonNull final NetworkUtilizationManager networkUtilizationManager, @NonNull final SynchronizedThrottleAccumulator synchronizedThrottleAccumulator) { this.txBody = requireNonNull(txBody, "txBody must not be null"); this.functionality = requireNonNull(functionality, "functionality must not be null"); this.payer = requireNonNull(payer, "payer must not be null"); + this.topLevelPayer = requireNonNull(payer, "payer must not be null"); this.payerKey = payerKey; this.networkInfo = requireNonNull(networkInfo, "networkInfo must not be null"); this.category = requireNonNull(category, "category must not be null"); @@ -212,6 +224,8 @@ public HandleContextImpl( requireNonNull(userTransactionConsensusTime, "userTransactionConsensusTime must not be null"); this.authorizer = requireNonNull(authorizer, "authorizer must not be null"); this.childRecordFinalizer = requireNonNull(childRecordFinalizer, "childRecordFinalizer must not be null"); + this.networkUtilizationManager = + requireNonNull(networkUtilizationManager, "networkUtilization must not be null"); this.synchronizedThrottleAccumulator = requireNonNull(synchronizedThrottleAccumulator, "synchronizedThrottleAccumulator must not be null"); @@ -312,8 +326,8 @@ public Authorizer authorizer() { } @Override - public Instant currentTime() { - return consensusNow(); + public int numTxnSignatures() { + return verifier.numSignaturesVerified(); } @Override @@ -403,7 +417,7 @@ public SignatureVerification verificationFor(@NonNull final Bytes evmAlias) { @Override public boolean isSuperUser() { - return authorizer.isSuperUser(payer()); + return authorizer.isSuperUser(topLevelPayer); } @Override @@ -626,6 +640,11 @@ private void dispatchSyntheticTxn( .transaction(transaction) .transactionBytes(signedTransactionBytes) .memo(txBody.memo()); + // If there are any failures in the child transaction, we don't want to set transfer list + // to be compatible with mono-service + if (childCategory == CHILD) { + childRecordBuilder.transferList(null); + } // Set the transactionId if provided final var transactionID = txBody.transactionID(); @@ -698,8 +717,12 @@ private void dispatchSyntheticTxn( authorizer, solvencyPreCheck, childRecordFinalizer, + networkUtilizationManager, synchronizedThrottleAccumulator); + // in order to work correctly isSuperUser(), we need to keep track of top level payer in child context + childContext.setTopLevelPayer(topLevelPayer); + if (dispatchValidationResult != null) { childContext.feeAccumulator.chargeFees( syntheticPayer, networkInfo().selfNodeInfo().accountId(), dispatchValidationResult.fees()); @@ -722,7 +745,7 @@ private void dispatchSyntheticTxn( new ReadableStoreFactory(childStack), new WritableStoreFactory(childStack, TokenService.NAME), childRecordBuilder); - childRecordFinalizer.finalizeChildRecord(finalizeContext); + childRecordFinalizer.finalizeChildRecord(finalizeContext, function); childStack.commitFullStack(); } @@ -896,6 +919,63 @@ public void reclaimPreviouslyReservedThrottle(int n, HederaFunctionality functio synchronizedThrottleAccumulator.leakUnusedThrottlePreviouslyReserved(n, function); } + @Override + public boolean shouldThrottleNOfUnscaled(int n, HederaFunctionality function) { + return networkUtilizationManager.shouldThrottleNOfUnscaled(n, function, userTransactionConsensusTime); + } + + public boolean shouldThrottleTxn(TransactionInfo txInfo) { + return networkUtilizationManager.shouldThrottle(txInfo, current(), userTransactionConsensusTime); + } + + @Override + public List getUsageSnapshots() { + return networkUtilizationManager.getUsageSnapshots(); + } + + @Override + public void resetUsageThrottlesTo(List snapshots) { + networkUtilizationManager.resetUsageThrottlesTo(snapshots); + } + + @Override + public boolean hasThrottleCapacityForChildTransactions() { + var isAllowed = true; + final var childRecords = recordListBuilder.childRecordBuilders(); + @Nullable List snapshotsIfNeeded = null; + + for (int i = 0, n = childRecords.size(); i < n && isAllowed; i++) { + final var childRecord = childRecords.get(i); + if (Objects.equals(childRecord.status(), SUCCESS)) { + final var childTx = childRecord.transaction(); + final var childTxBody = childRecord.transactionBody(); + HederaFunctionality childTxFunctionality; + try { + childTxFunctionality = functionOf(childTxBody); + } catch (UnknownHederaFunctionality e) { + throw new IllegalStateException("Invalid transaction body " + childTxBody, e); + } + + if (childTxFunctionality == CONTRACT_CREATE || childTxFunctionality == CONTRACT_CALL) { + continue; + } + if (snapshotsIfNeeded == null) { + snapshotsIfNeeded = getUsageSnapshots(); + } + + final var childTxInfo = TransactionInfo.from( + childTx, childTxBody, childTx.sigMap(), childTx.signedTransactionBytes(), childTxFunctionality); + if (shouldThrottleTxn(childTxInfo)) { + isAllowed = false; + } + } + } + if (!isAllowed) { + resetUsageThrottlesTo(snapshotsIfNeeded); + } + return isAllowed; + } + @Override public boolean isSelfSubmitted() { return Objects.equals( @@ -927,4 +1007,8 @@ private record DispatchValidationResult(@NonNull Key key, @NonNull Fees fees) { requireNonNull(key); } } + + private void setTopLevelPayer(@NonNull AccountID topLevelPayer) { + this.topLevelPayer = requireNonNull(topLevelPayer, "payer must not be null"); + } } diff --git a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/handle/HandleWorkflow.java b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/handle/HandleWorkflow.java index 582905f2bf28..599c402eaf01 100644 --- a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/handle/HandleWorkflow.java +++ b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/handle/HandleWorkflow.java @@ -88,10 +88,12 @@ import com.hedera.node.app.throttle.SynchronizedThrottleAccumulator; import com.hedera.node.app.workflows.SolvencyPreCheck; import com.hedera.node.app.workflows.TransactionChecker; +import com.hedera.node.app.workflows.TransactionInfo; import com.hedera.node.app.workflows.dispatcher.ReadableStoreFactory; import com.hedera.node.app.workflows.dispatcher.ServiceApiFactory; import com.hedera.node.app.workflows.dispatcher.TransactionDispatcher; import com.hedera.node.app.workflows.dispatcher.WritableStoreFactory; +import com.hedera.node.app.workflows.handle.metric.HandleWorkflowMetrics; import com.hedera.node.app.workflows.handle.record.GenesisRecordsConsensusHook; import com.hedera.node.app.workflows.handle.record.RecordListBuilder; import com.hedera.node.app.workflows.handle.record.SingleTransactionRecordBuilderImpl; @@ -129,7 +131,6 @@ public class HandleWorkflow { private static final Logger logger = LogManager.getLogger(HandleWorkflow.class); private static final Set DISPATCHING_CONTRACT_TRANSACTIONS = EnumSet.of(HederaFunctionality.CONTRACT_CREATE, HederaFunctionality.CONTRACT_CALL, ETHEREUM_TRANSACTION); - private final NetworkInfo networkInfo; private final PreHandleWorkflow preHandleWorkflow; private final TransactionDispatcher dispatcher; @@ -152,6 +153,7 @@ public class HandleWorkflow { private final NetworkUtilizationManager networkUtilizationManager; private final SynchronizedThrottleAccumulator synchronizedThrottleAccumulator; private final CacheWarmer cacheWarmer; + private final HandleWorkflowMetrics handleWorkflowMetrics; @Inject public HandleWorkflow( @@ -176,7 +178,8 @@ public HandleWorkflow( @NonNull final NetworkUtilizationManager networkUtilizationManager, @NonNull final SynchronizedThrottleAccumulator synchronizedThrottleAccumulator, @NonNull final ScheduleExpirationHook scheduleExpirationHook, - @NonNull final CacheWarmer cacheWarmer) { + @NonNull final CacheWarmer cacheWarmer, + @NonNull final HandleWorkflowMetrics handleWorkflowMetrics) { this.networkInfo = requireNonNull(networkInfo, "networkInfo must not be null"); this.preHandleWorkflow = requireNonNull(preHandleWorkflow, "preHandleWorkflow must not be null"); this.dispatcher = requireNonNull(dispatcher, "dispatcher must not be null"); @@ -201,9 +204,9 @@ public HandleWorkflow( requireNonNull(networkUtilizationManager, "networkUtilizationManager must not be null"); this.synchronizedThrottleAccumulator = requireNonNull(synchronizedThrottleAccumulator, "synchronizedThrottleAccumulator must not be null"); - ; this.scheduleExpirationHook = requireNonNull(scheduleExpirationHook, "scheduleExpirationHook must not be null"); this.cacheWarmer = requireNonNull(cacheWarmer, "cacheWarmer must not be null"); + this.handleWorkflowMetrics = requireNonNull(handleWorkflowMetrics, "handleWorkflowMetrics must not be null"); } /** @@ -288,6 +291,11 @@ private void handleUserTransaction( @NonNull final ConsensusEvent platformEvent, @NonNull final NodeInfo creator, @NonNull final ConsensusTransaction platformTxn) { + // Determine if this is the first transaction after startup. This needs to be determined BEFORE starting the + // user transaction + final var consTimeOfLastHandledTxn = blockRecordManager.consTimeOfLastHandledTxn(); + final var isFirstTransaction = !consTimeOfLastHandledTxn.isAfter(Instant.EPOCH); + // Setup record builder list final boolean switchedBlocks = blockRecordManager.startUserTransaction(consensusNow, state); final var recordListBuilder = new RecordListBuilder(consensusNow); @@ -299,7 +307,8 @@ private void handleUserTransaction( final var readableStoreFactory = new ReadableStoreFactory(stack); final var feeAccumulator = createFeeAccumulator(stack, configuration, recordBuilder); - final var tokenServiceContext = new TokenContextImpl(configuration, stack, recordListBuilder); + final var tokenServiceContext = + new TokenContextImpl(configuration, stack, recordListBuilder, blockRecordManager, isFirstTransaction); // It's awful that we have to check this every time a transaction is handled, especially since this mostly // applies to non-production cases. Let's find a way to 💥💥 remove this 💥💥 genesisRecordsTimeHook.process(tokenServiceContext); @@ -326,13 +335,15 @@ private void handleUserTransaction( scheduleExpirationHook.processExpiredSchedules(scheduleStore, firstSecondToExpire, lastSecondToExpire); } + final long handleStart = System.nanoTime(); TransactionBody txBody; AccountID payer = null; Fees fees = null; + TransactionInfo transactionInfo = null; try { final var preHandleResult = getCurrentPreHandleResult(readableStoreFactory, creator, platformTxn); - final var transactionInfo = preHandleResult.txInfo(); + transactionInfo = preHandleResult.txInfo(); if (transactionInfo == null) { // FUTURE: Charge node generic penalty, set values in record builder, and remove log statement @@ -355,13 +366,8 @@ private void handleUserTransaction( // Log start of user transaction to transaction state log logStartUserTransaction(platformTxn, txBody, payer); - logStartUserTransactionPreHandleResultP2( - preHandleResult.payer(), - preHandleResult.payerKey(), - preHandleResult.status(), - preHandleResult.responseCode()); - logStartUserTransactionPreHandleResultP3( - preHandleResult.txInfo(), preHandleResult.requiredKeys(), preHandleResult.getVerificationResults()); + logStartUserTransactionPreHandleResultP2(preHandleResult); + logStartUserTransactionPreHandleResultP3(preHandleResult); // Initialize record builder list recordBuilder @@ -404,6 +410,7 @@ private void handleUserTransaction( authorizer, solvencyPreCheck, childRecordFinalizer, + networkUtilizationManager, synchronizedThrottleAccumulator); // Calculate the fee @@ -531,18 +538,6 @@ private void handleUserTransaction( } recordBuilder.status(SUCCESS); - // After transaction is successfully handled update the gas throttle by leaking the unused gas - if (isGasThrottled(transactionInfo.functionality()) && recordBuilder.hasContractResult()) { - final var contractsConfig = configuration.getConfigData(ContractsConfig.class); - if (contractsConfig.throttleThrottleByGas()) { - final var gasUsed = recordBuilder.getGasUsedForContractTxn(); - final var gasLimitForContractTx = - getGasLimitForContractTx(txBody, transactionInfo.functionality()); - final var excessAmount = gasLimitForContractTx - gasUsed; - networkUtilizationManager.leakUnusedGasPreviouslyReserved(transactionInfo, excessAmount); - } - } - // Notify responsible facility if system-file was uploaded. // Returns SUCCESS if no system-file was uploaded final var fileUpdateResult = systemFileUpdateFacility.handleTxBody(stack, txBody); @@ -564,14 +559,13 @@ private void handleUserTransaction( } } } catch (final Exception e) { - e.printStackTrace(); logger.error("Possibly CATASTROPHIC failure while handling a user transaction", e); // We should always rollback stack including gas charges when there is an unexpected exception rollback(true, ResponseCodeEnum.FAIL_INVALID, stack, recordListBuilder); if (payer != null && fees != null) { try { feeAccumulator.chargeFees(payer, creator.accountId(), fees); - } catch (final HandleException chargeException) { + } catch (final Exception chargeException) { logger.error( "Unable to charge account {} a penalty after an unexpected exception {}. Cause of the failed charge:", payer, @@ -581,8 +575,23 @@ private void handleUserTransaction( } } + // After a contract operation was handled (i.e., not throttled), update the + // gas throttle by leaking any unused gas + if (isGasThrottled(transactionInfo.functionality()) + && recordBuilder.status() != CONSENSUS_GAS_EXHAUSTED + && recordBuilder.hasContractResult()) { + final var contractsConfig = configuration.getConfigData(ContractsConfig.class); + if (contractsConfig.throttleThrottleByGas()) { + final var gasUsed = recordBuilder.getGasUsedForContractTxn(); + final var gasLimitForContractTx = + getGasLimitForContractTx(transactionInfo.txBody(), transactionInfo.functionality()); + final var excessAmount = gasLimitForContractTx - gasUsed; + networkUtilizationManager.leakUnusedGasPreviouslyReserved(transactionInfo, excessAmount); + } + } + networkUtilizationManager.saveTo(stack); - transactionFinalizer.finalizeParentRecord(payer, tokenServiceContext); + transactionFinalizer.finalizeParentRecord(payer, tokenServiceContext, transactionInfo.functionality()); // Commit all state changes stack.commitFullStack(); @@ -592,6 +601,9 @@ private void handleUserTransaction( recordCache.add(creator.nodeId(), payer, recordListResult.records()); blockRecordManager.endUserTransaction(recordListResult.records().stream(), state); + + final int handleDuration = (int) (System.nanoTime() - handleStart); + handleWorkflowMetrics.update(transactionInfo.functionality(), handleDuration); } /** diff --git a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/handle/SystemFileUpdateFacility.java b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/handle/SystemFileUpdateFacility.java index 2f4f968354d2..6d708692ad9a 100644 --- a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/handle/SystemFileUpdateFacility.java +++ b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/handle/SystemFileUpdateFacility.java @@ -17,6 +17,7 @@ package com.hedera.node.app.workflows.handle; import static com.hedera.hapi.node.base.ResponseCodeEnum.SUCCESS; +import static com.hedera.node.app.util.FileUtilities.observePropertiesAndPermissions; import static java.util.Objects.requireNonNull; import static java.util.stream.Collectors.joining; @@ -33,7 +34,6 @@ import com.hedera.node.app.throttle.ThrottleManager; import com.hedera.node.app.util.FileUtilities; import com.hedera.node.config.data.FilesConfig; -import com.hedera.node.config.data.HederaConfig; import com.hedera.node.config.data.LedgerConfig; import com.hedera.pbj.runtime.ParseException; import com.hedera.pbj.runtime.io.buffer.Bytes; @@ -115,31 +115,23 @@ public ResponseCodeEnum handleTxBody(@NonNull final HederaState state, @NonNull // If it is a special file, call the updater. // We load the file only, if there is an updater for it. - final var config = configuration.getConfigData(FilesConfig.class); + final var filesConfig = configuration.getConfigData(FilesConfig.class); - if (fileNum == config.feeSchedules()) { + if (fileNum == filesConfig.feeSchedules()) { return feeManager.update(FileUtilities.getFileContent(state, fileID)); - } else if (fileNum == config.exchangeRates()) { + } else if (fileNum == filesConfig.exchangeRates()) { exchangeRateManager.update(FileUtilities.getFileContent(state, fileID), payer); - } else if (fileNum == config.networkProperties()) { - final var networkProperties = FileUtilities.getFileContent(state, fileID); - final var permissions = - FileUtilities.getFileContent(state, createFileID(config.hapiPermissions(), configuration)); - configProvider.update(networkProperties, permissions); - logContentsOf("Network properties", networkProperties); + } else if (fileNum == filesConfig.networkProperties()) { + updateConfig(configuration, ConfigType.NETWORK_PROPERTIES, state); backendThrottle.applyGasConfig(); frontendThrottle.applyGasConfig(); // Updating the multiplier source to use the new gas throttle // values that are coming from the network properties congestionMultipliers.resetExpectations(); - } else if (fileNum == config.hapiPermissions()) { - final var networkProperties = - FileUtilities.getFileContent(state, createFileID(config.networkProperties(), configuration)); - final var permissions = FileUtilities.getFileContent(state, fileID); - configProvider.update(networkProperties, permissions); - logContentsOf("API permissions", permissions); - } else if (fileNum == config.throttleDefinitions()) { + } else if (fileNum == filesConfig.hapiPermissions()) { + updateConfig(configuration, ConfigType.API_PERMISSIONS, state); + } else if (fileNum == filesConfig.throttleDefinitions()) { final var result = throttleManager.update(FileUtilities.getFileContent(state, fileID)); backendThrottle.rebuildFor(throttleManager.throttleDefinitions()); frontendThrottle.rebuildFor(throttleManager.throttleDefinitions()); @@ -151,6 +143,25 @@ public ResponseCodeEnum handleTxBody(@NonNull final HederaState state, @NonNull return SUCCESS; } + private enum ConfigType { + NETWORK_PROPERTIES, + API_PERMISSIONS, + } + + private void updateConfig( + @NonNull final Configuration configuration, + @NonNull final ConfigType configType, + @NonNull final HederaState state) { + observePropertiesAndPermissions(state, configuration, (properties, permissions) -> { + configProvider.update(properties, permissions); + if (configType == ConfigType.NETWORK_PROPERTIES) { + logContentsOf("Network properties", properties); + } else { + logContentsOf("API permissions", permissions); + } + }); + } + private void logContentsOf(@NonNull final String configFileName, @NonNull final Bytes contents) { try { final var configList = ServicesConfigurationList.PROTOBUF.parseStrict(contents.toReadableSequentialData()); @@ -165,13 +176,4 @@ private void logContentsOf(@NonNull final String configFileName, @NonNull final // If this isn't parseable we won't have updated anything, also don't log } } - - private FileID createFileID(final long fileNum, @NonNull final Configuration configuration) { - final var hederaConfig = configuration.getConfigData(HederaConfig.class); - return FileID.newBuilder() - .realmNum(hederaConfig.realm()) - .shardNum(hederaConfig.shard()) - .fileNum(fileNum) - .build(); - } } diff --git a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/handle/TokenContextImpl.java b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/handle/TokenContextImpl.java index 53b6714d1b01..53cad604da77 100644 --- a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/handle/TokenContextImpl.java +++ b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/handle/TokenContextImpl.java @@ -20,6 +20,7 @@ import static com.hedera.node.app.workflows.handle.HandleContextImpl.PrecedingTransactionCategory.UNLIMITED_CHILD_RECORDS; import static java.util.Objects.requireNonNull; +import com.hedera.node.app.records.BlockRecordManager; import com.hedera.node.app.service.token.TokenService; import com.hedera.node.app.service.token.records.FinalizeContext; import com.hedera.node.app.service.token.records.TokenContext; @@ -38,14 +39,20 @@ public class TokenContextImpl implements TokenContext, FinalizeContext { private final ReadableStoreFactory readableStoreFactory; private final WritableStoreFactory writableStoreFactory; private final RecordListBuilder recordListBuilder; + private final BlockRecordManager blockRecordManager; + private final boolean isFirstTransaction; public TokenContextImpl( @NonNull final Configuration configuration, @NonNull final SavepointStackImpl stack, - @NonNull final RecordListBuilder recordListBuilder) { + @NonNull final RecordListBuilder recordListBuilder, + @NonNull final BlockRecordManager blockRecordManager, + final boolean isFirstTransaction) { this.configuration = requireNonNull(configuration, "configuration must not be null"); this.recordListBuilder = requireNonNull(recordListBuilder, "recordListBuilder must not be null"); requireNonNull(stack, "stack must not be null"); + this.blockRecordManager = requireNonNull(blockRecordManager, "blockRecordManager must not be null"); + this.isFirstTransaction = isFirstTransaction; this.readableStoreFactory = new ReadableStoreFactory(stack); this.writableStoreFactory = new WritableStoreFactory(stack, TokenService.NAME); @@ -118,4 +125,14 @@ static T castRecordBuilder( } return recordBuilderClass.cast(recordBuilder); } + + @Override + public boolean isFirstTransaction() { + return isFirstTransaction; + } + + @Override + public void markMigrationRecordsStreamed() { + blockRecordManager.markMigrationRecordsStreamed(); + } } diff --git a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/handle/metric/HandleWorkflowMetrics.java b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/handle/metric/HandleWorkflowMetrics.java new file mode 100644 index 000000000000..97471a499713 --- /dev/null +++ b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/handle/metric/HandleWorkflowMetrics.java @@ -0,0 +1,89 @@ +/* + * Copyright (C) 2024 Hedera Hashgraph, LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.hedera.node.app.workflows.handle.metric; + +import static java.util.Objects.requireNonNull; + +import com.hedera.hapi.node.base.HederaFunctionality; +import com.swirlds.common.metrics.IntegerPairAccumulator; +import com.swirlds.metrics.api.IntegerAccumulator; +import com.swirlds.metrics.api.Metrics; +import edu.umd.cs.findbugs.annotations.NonNull; +import java.util.EnumMap; +import java.util.Map; +import java.util.function.BinaryOperator; +import javax.inject.Inject; +import javax.inject.Singleton; + +/** + * A class to handle the metrics for the handle-workflow + */ +@Singleton +public class HandleWorkflowMetrics { + + private static final BinaryOperator AVERAGE = (sum, count) -> count == 0 ? 0 : sum / count; + + private final Map transactionMetrics = + new EnumMap<>(HederaFunctionality.class); + + /** + * Constructor for the HandleWorkflowMetrics + * + * @param metrics the {@link Metrics} object where all metrics will be registered + */ + @Inject + public HandleWorkflowMetrics(@NonNull final Metrics metrics) { + requireNonNull(metrics, "metrics must not be null"); + for (final var functionality : HederaFunctionality.values()) { + if (functionality == HederaFunctionality.NONE) { + continue; + } + final var protoName = functionality.protoName(); + final var name = protoName.substring(0, 1).toLowerCase() + protoName.substring(1); + final var maxConfig = new IntegerAccumulator.Config("app", name + "DurationMax") + .withDescription("The maximum duration of a " + name + " transaction in nanoseconds") + .withUnit("ns"); + final var maxMetric = metrics.getOrCreate(maxConfig); + final var avgConfig = new IntegerPairAccumulator.Config<>( + "app", name + "DurationAvg", Integer.class, AVERAGE) + .withDescription("The average duration of a " + name + " transaction in nanoseconds") + .withUnit("ns"); + final var avgMetric = metrics.getOrCreate(avgConfig); + transactionMetrics.put(functionality, new TransactionMetric(maxMetric, avgMetric)); + } + } + + /** + * Update the metrics for the given functionality + * + * @param functionality the {@link HederaFunctionality} for which the metrics will be updated + * @param duration the duration of the transaction in {@code ns} + */ + public void update(@NonNull final HederaFunctionality functionality, final int duration) { + requireNonNull(functionality, "functionality must not be null"); + final var metric = transactionMetrics.get(functionality); + if (metric != null) { + // We do not synchronize the update of the metrics. This may lead to a situation where the max value is + // is stored in one reporting interval and the average in another. This is acceptable as synchronizing + // the updates would introduce a severe performance penalty. + metric.max.update(duration); + metric.avg.update(duration, 1); + } + } + + private record TransactionMetric(IntegerAccumulator max, IntegerPairAccumulator avg) {} +} diff --git a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/handle/record/GenesisRecordsConsensusHook.java b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/handle/record/GenesisRecordsConsensusHook.java index 8669aaf41b66..19a21a98234a 100644 --- a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/handle/record/GenesisRecordsConsensusHook.java +++ b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/handle/record/GenesisRecordsConsensusHook.java @@ -16,12 +16,15 @@ package com.hedera.node.app.workflows.handle.record; +import static com.hedera.node.app.service.token.impl.handlers.staking.StakingRewardsHelper.asAccountAmounts; import static com.hedera.node.app.spi.HapiUtils.ACCOUNT_ID_COMPARATOR; import static com.hedera.node.app.spi.HapiUtils.FUNDING_ACCOUNT_EXPIRY; import static java.util.Objects.requireNonNull; +import com.hedera.hapi.node.base.AccountID; import com.hedera.hapi.node.base.Duration; import com.hedera.hapi.node.base.Transaction; +import com.hedera.hapi.node.base.TransferList; import com.hedera.hapi.node.state.token.Account; import com.hedera.hapi.node.token.CryptoCreateTransactionBody; import com.hedera.hapi.node.transaction.TransactionBody; @@ -32,6 +35,7 @@ import edu.umd.cs.findbugs.annotations.NonNull; import edu.umd.cs.findbugs.annotations.Nullable; import java.util.Comparator; +import java.util.Map; import java.util.SortedSet; import java.util.TreeSet; import javax.inject.Singleton; @@ -68,41 +72,55 @@ public void process(@NonNull final TokenContext context) { final var blockStore = context.readableStore(ReadableBlockRecordStore.class); // This process should only run ONCE, when a node receives its first transaction after startup - if (blockStore.getLastBlockInfo().consTimeOfLastHandledTxn() != null) return; + if (!shouldStreamRecords(blockStore, context)) return; - // First we set consensusTimeOfLastHandledTxn so that this process won't run again final var consensusTime = context.consensusTime(); + boolean recordsStreamed = false; + final var numSysAccts = systemAccounts.size(); if (!systemAccounts.isEmpty()) { createAccountRecordBuilders(systemAccounts, context, SYSTEM_ACCOUNT_CREATION_MEMO); systemAccounts = new TreeSet<>(ACCOUNT_COMPARATOR); + recordsStreamed = true; } - log.info("Queued {} system account records with consTime {}", systemAccounts.size(), consensusTime); + log.info("Queued {} system account records with consTime {}", numSysAccts, consensusTime); + final var numStakingAccts = stakingAccounts.size(); if (!stakingAccounts.isEmpty()) { final var implicitAutoRenewPeriod = FUNDING_ACCOUNT_EXPIRY - consensusTime.getEpochSecond(); createAccountRecordBuilders(stakingAccounts, context, STAKING_MEMO, implicitAutoRenewPeriod); stakingAccounts = new TreeSet<>(ACCOUNT_COMPARATOR); + recordsStreamed = true; } - log.info("Queued {} staking account records with consTime {}", stakingAccounts.size(), consensusTime); + log.info("Queued {} staking account records with consTime {}", numStakingAccts, consensusTime); + final var numMiscAccts = miscAccounts.size(); if (!miscAccounts.isEmpty()) { createAccountRecordBuilders(miscAccounts, context, null); miscAccounts = new TreeSet<>(ACCOUNT_COMPARATOR); + recordsStreamed = true; } - log.info("Queued {} misc account records with consTime {}", miscAccounts.size(), consensusTime); + log.info("Queued {} misc account records with consTime {}", numMiscAccts, consensusTime); + final var numTreasuryClones = treasuryClones.size(); if (!treasuryClones.isEmpty()) { createAccountRecordBuilders(treasuryClones, context, TREASURY_CLONE_MEMO); treasuryClones = new TreeSet<>(ACCOUNT_COMPARATOR); + recordsStreamed = true; } - log.info("Queued {} treasury clone account records with consTime {}", treasuryClones.size(), consensusTime); + log.info("Queued {} treasury clone account records with consTime {}", numTreasuryClones, consensusTime); + final var numBlocklistAccts = blocklistAccounts.size(); if (!blocklistAccounts.isEmpty()) { createAccountRecordBuilders(blocklistAccounts, context, null); blocklistAccounts = new TreeSet<>(ACCOUNT_COMPARATOR); + recordsStreamed = true; + } + log.info("Queued {} blocklist account records with consTime {}", numBlocklistAccts, consensusTime); + + if (recordsStreamed) { + context.markMigrationRecordsStreamed(); } - log.info("Queued {} blocklist account records with consTime {}", blocklistAccounts.size(), consensusTime); } @Override @@ -160,6 +178,19 @@ private void createAccountRecordBuilders( Transaction.newBuilder().body(TransactionBody.newBuilder().cryptoCreateAccount(txnBody)); recordBuilder.transaction(txnBuilder.build()); + var balance = account.tinybarBalance(); + if (balance != 0) { + var accountID = AccountID.newBuilder() + .accountNum(account.accountId().accountNumOrElse(0L)) + .shardNum(account.accountId().shardNum()) + .realmNum(account.accountId().realmNum()) + .build(); + + recordBuilder.transferList(TransferList.newBuilder() + .accountAmounts(asAccountAmounts(Map.of(accountID, balance))) + .build()); + } + log.debug("Queued synthetic CryptoCreate for {} account {}", recordMemo, account); } } @@ -176,4 +207,12 @@ private static CryptoCreateTransactionBody.Builder newCryptoCreate(@NonNull fina .initialBalance(account.tinybarBalance()) .alias(account.alias()); } + + private static boolean shouldStreamRecords( + @NonNull final ReadableBlockRecordStore blockStore, @NonNull final TokenContext context) { + // ONLY stream actual records when: + // 1. This is the first transaction after startup, and + // 2. We haven't streamed any migration records yet + return context.isFirstTransaction() && !blockStore.getLastBlockInfo().migrationRecordsStreamed(); + } } diff --git a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/handle/record/SingleTransactionRecordBuilderImpl.java b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/handle/record/SingleTransactionRecordBuilderImpl.java index e8f943c11a47..139d2178896d 100644 --- a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/handle/record/SingleTransactionRecordBuilderImpl.java +++ b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/handle/record/SingleTransactionRecordBuilderImpl.java @@ -246,8 +246,9 @@ public SingleTransactionRecordBuilderImpl( * @return the transaction record */ public SingleTransactionRecord build() { - if (customizer != null) { + if (customizer != NOOP_EXTERNALIZED_RECORD_CUSTOMIZER) { transaction = customizer.apply(transaction); + transactionBytes = transaction.signedTransactionBytes(); } final var builder = transactionReceiptBuilder.serialNumbers(serialNumbers); // FUTURE : In mono-service exchange rate is not set in preceding child records. @@ -320,9 +321,7 @@ public void nullOutSideEffectFields() { serialNumbers.clear(); tokenTransferLists.clear(); automaticTokenAssociations.clear(); - if (transferList.hasAccountAmounts()) { - transferList.accountAmounts().clear(); - } + transferList = TransferList.DEFAULT; paidStakingRewards.clear(); assessedCustomFees.clear(); @@ -440,6 +439,15 @@ public SingleTransactionRecordBuilderImpl memo(@NonNull final String memo) { // ------------------------------------------------------------------------------------------------------------------------ // fields needed for TransactionRecord + /** + * Gets the transaction object. + * + * @return the transaction object + */ + @NonNull + public Transaction transaction() { + return transaction; + } /** * Gets the consensus instant. * @@ -528,8 +536,7 @@ public TransferList transferList() { */ @Override @NonNull - public SingleTransactionRecordBuilderImpl transferList(@NonNull final TransferList transferList) { - requireNonNull(transferList, "transferList must not be null"); + public SingleTransactionRecordBuilderImpl transferList(@Nullable final TransferList transferList) { this.transferList = transferList; return this; } diff --git a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/ingest/IngestChecker.java b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/ingest/IngestChecker.java index 8a025fbeaa42..3259b740e197 100644 --- a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/ingest/IngestChecker.java +++ b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/ingest/IngestChecker.java @@ -17,19 +17,23 @@ package com.hedera.node.app.workflows.ingest; import static com.hedera.hapi.node.base.HederaFunctionality.CONTRACT_CALL; +import static com.hedera.hapi.node.base.HederaFunctionality.ETHEREUM_TRANSACTION; import static com.hedera.hapi.node.base.ResponseCodeEnum.BUSY; import static com.hedera.hapi.node.base.ResponseCodeEnum.DUPLICATE_TRANSACTION; import static com.hedera.hapi.node.base.ResponseCodeEnum.INSUFFICIENT_GAS; import static com.hedera.hapi.node.base.ResponseCodeEnum.INSUFFICIENT_TX_FEE; +import static com.hedera.hapi.node.base.ResponseCodeEnum.INVALID_ETHEREUM_TRANSACTION; import static com.hedera.hapi.node.base.ResponseCodeEnum.INVALID_NODE_ACCOUNT; import static com.hedera.hapi.node.base.ResponseCodeEnum.INVALID_SIGNATURE; import static com.hedera.hapi.node.base.ResponseCodeEnum.PLATFORM_NOT_ACTIVE; import static com.hedera.hapi.node.base.ResponseCodeEnum.UNAUTHORIZED; +import static com.hedera.node.app.hapi.utils.ethereum.EthTxData.populateEthTxData; import static com.hedera.node.app.service.contract.impl.ContractServiceImpl.INTRINSIC_GAS_LOWER_BOUND; import static com.hedera.node.app.spi.HapiUtils.isHollow; import static com.hedera.node.app.spi.workflows.PreCheckException.validateTruePreCheck; import static com.swirlds.platform.system.status.PlatformStatus.ACTIVE; import static java.util.Collections.emptyList; +import static java.util.Objects.nonNull; import static java.util.Objects.requireNonNull; import com.hedera.hapi.node.base.AccountID; @@ -159,18 +163,25 @@ public TransactionInfo runAllChecks( final var txBody = txInfo.txBody(); final var functionality = txInfo.functionality(); - // Temporary ingest checks needed for specifically ContractCall as long as it is being - // charged exclusively in gas + // Temporary ingest checks needed for specifically ContractCall and EthereumTransaction + // as long as it is being charged exclusively in gas + // We cannot submit transactions that offer no gas or the work done gossiping + // and reaching consensus on the transaction will be completely uncompensated; the + // minimum threshold here is chosen for mono-service compatibility if (functionality == CONTRACT_CALL) { - // First, we cannot submit transactions that offer no gas or the work done gossiping - // and reaching consensus on the transaction will be completely uncompensated; the - // minimum threshold here is chosen for mono-service compatibility validateTruePreCheck(txBody.contractCallOrThrow().gas() >= INTRINSIC_GAS_LOWER_BOUND, INSUFFICIENT_GAS); - // Second, if the fee offered does not cover the gas cost of the transaction, then + + // If the fee offered does not cover the gas cost of the transaction, then // we would again end up with uncompensated work final var gasCost = solvencyPreCheck.estimateAdditionalCosts(txBody, CONTRACT_CALL, consensusTime) - txBody.contractCallOrThrow().amount(); validateTruePreCheck(txBody.transactionFee() >= gasCost, INSUFFICIENT_TX_FEE); + } else if (functionality == ETHEREUM_TRANSACTION) { + final var ethTxData = populateEthTxData( + requireNonNull(txBody.ethereumTransactionOrThrow().ethereumData()) + .toByteArray()); + validateTruePreCheck(nonNull(ethTxData), INVALID_ETHEREUM_TRANSACTION); + validateTruePreCheck(requireNonNull(ethTxData.gasLimit()) >= INTRINSIC_GAS_LOWER_BOUND, INSUFFICIENT_GAS); } // 1a. Verify the transaction has been sent to *this* node @@ -213,8 +224,17 @@ public TransactionInfo runAllChecks( verifyPayerSignature(txInfo, payer, configuration); // 7. Check payer solvency + final var numSigs = txInfo.signatureMap().sigPairOrElse(emptyList()).size(); final FeeContext feeContext = new FeeContextImpl( - consensusTime, txInfo, payerKey, txInfo.payerID(), feeManager, storeFactory, configuration, authorizer); + consensusTime, + txInfo, + payerKey, + txInfo.payerID(), + feeManager, + storeFactory, + configuration, + authorizer, + numSigs); final var fees = dispatcher.dispatchComputeFees(feeContext); solvencyPreCheck.checkSolvency(txInfo, payer, fees, true); diff --git a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/query/QueryChecker.java b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/query/QueryChecker.java index c7317083e7f7..432cd548e962 100644 --- a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/query/QueryChecker.java +++ b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/query/QueryChecker.java @@ -218,7 +218,9 @@ public long estimateTxFees( feeManager, storeFactory, configuration, - authorizer); + authorizer, + // Signatures aren't applicable to queries + -1); return cryptoTransferHandler.calculateFees(feeContext).totalFee(); } } diff --git a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/query/QueryWorkflowImpl.java b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/query/QueryWorkflowImpl.java index f2f0a58c8801..e67ba1a2e888 100644 --- a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/query/QueryWorkflowImpl.java +++ b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/query/QueryWorkflowImpl.java @@ -24,7 +24,6 @@ import static com.hedera.hapi.node.base.ResponseCodeEnum.PAYER_ACCOUNT_NOT_FOUND; import static com.hedera.hapi.node.base.ResponseType.ANSWER_STATE_PROOF; import static com.hedera.hapi.node.base.ResponseType.COST_ANSWER_STATE_PROOF; -import static com.hedera.node.app.workflows.ParseExceptionWorkaround.getParseExceptionCause; import static java.util.Objects.requireNonNull; import com.hedera.hapi.node.base.AccountID; @@ -302,12 +301,7 @@ private Query parseQuery(Bytes requestBuffer) { try { return queryParser.parseStrict(requestBuffer.toReadableSequentialData()); } catch (ParseException e) { - - // Temporary workaround for unexpected behavior in PBJ. Can be removed if we agree that - // ParseException should not be wrapped. - final var cause = getParseExceptionCause(e); - - switch (cause) { + switch (e.getCause()) { case MalformedProtobufException ex: break; case UnknownFieldException ex: diff --git a/hedera-node/hedera-app/src/test/java/com/hedera/node/app/grpc/impl/QueryMethodTest.java b/hedera-node/hedera-app/src/test/java/com/hedera/node/app/grpc/impl/QueryMethodTest.java index ce89aec9dfa9..d196c8329583 100644 --- a/hedera-node/hedera-app/src/test/java/com/hedera/node/app/grpc/impl/QueryMethodTest.java +++ b/hedera-node/hedera-app/src/test/java/com/hedera/node/app/grpc/impl/QueryMethodTest.java @@ -160,7 +160,7 @@ void unexpectedExceptionFromHandler(@Mock final StreamObserver str } private Counter counter(String suffix) { - return (Counter) metrics.getMetric("app", SERVICE_NAME + "/" + METHOD_NAME + suffix); + return (Counter) metrics.getMetric("app", SERVICE_NAME + ":" + METHOD_NAME + suffix); } @Test diff --git a/hedera-node/hedera-app/src/test/java/com/hedera/node/app/grpc/impl/TransactionMethodTest.java b/hedera-node/hedera-app/src/test/java/com/hedera/node/app/grpc/impl/TransactionMethodTest.java index cb142e0f1087..d3e88e22976e 100644 --- a/hedera-node/hedera-app/src/test/java/com/hedera/node/app/grpc/impl/TransactionMethodTest.java +++ b/hedera-node/hedera-app/src/test/java/com/hedera/node/app/grpc/impl/TransactionMethodTest.java @@ -156,7 +156,7 @@ void unexpectedExceptionFromHandler(@Mock final StreamObserver str } private Counter counter(String suffix) { - return (Counter) metrics.getMetric("app", SERVICE_NAME + "/" + METHOD_NAME + suffix); + return (Counter) metrics.getMetric("app", SERVICE_NAME + ":" + METHOD_NAME + suffix); } @Test diff --git a/hedera-node/hedera-app/src/test/java/com/hedera/node/app/state/HederaLifecyclesImplTest.java b/hedera-node/hedera-app/src/test/java/com/hedera/node/app/state/HederaLifecyclesImplTest.java index 7c91ded1cff8..1fea40aaa13b 100644 --- a/hedera-node/hedera-app/src/test/java/com/hedera/node/app/state/HederaLifecyclesImplTest.java +++ b/hedera-node/hedera-app/src/test/java/com/hedera/node/app/state/HederaLifecyclesImplTest.java @@ -18,7 +18,7 @@ import static com.hedera.node.app.service.token.impl.TokenServiceImpl.STAKING_INFO_KEY; import static com.hedera.node.app.state.merkle.AddresBookUtils.createPretendBookFrom; -import static org.junit.jupiter.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.BDDMockito.given; import static org.mockito.Mockito.lenient; import static org.mockito.Mockito.verify; diff --git a/hedera-node/hedera-app/src/test/java/com/hedera/node/app/state/merkle/AddresBookUtils.java b/hedera-node/hedera-app/src/test/java/com/hedera/node/app/state/merkle/AddresBookUtils.java index 38bbdd4ba1c1..099796b21311 100644 --- a/hedera-node/hedera-app/src/test/java/com/hedera/node/app/state/merkle/AddresBookUtils.java +++ b/hedera-node/hedera-app/src/test/java/com/hedera/node/app/state/merkle/AddresBookUtils.java @@ -16,15 +16,14 @@ package com.hedera.node.app.state.merkle; -import static org.mockito.BDDMockito.given; import static org.mockito.Mockito.mock; -import com.swirlds.common.crypto.SerializablePublicKey; import com.swirlds.common.platform.NodeId; +import com.swirlds.platform.crypto.SerializableX509Certificate; import com.swirlds.platform.system.Platform; import com.swirlds.platform.system.address.Address; import com.swirlds.platform.system.address.AddressBook; -import java.security.PublicKey; +import java.security.cert.X509Certificate; import java.util.List; /** @@ -33,8 +32,7 @@ public class AddresBookUtils { public static AddressBook createPretendBookFrom(final Platform platform, final boolean withKeyDetails) { - final var pubKey = mock(PublicKey.class); - given(pubKey.getAlgorithm()).willReturn("EC"); + final var cert = mock(X509Certificate.class); final var address1 = new Address( platform.getSelfId(), "", @@ -44,9 +42,8 @@ public static AddressBook createPretendBookFrom(final Platform platform, final b -1, "123456789", -1, - new SerializablePublicKey(pubKey), - null, - new SerializablePublicKey(pubKey), + new SerializableX509Certificate(cert), + new SerializableX509Certificate(cert), ""); final var address2 = new Address( new NodeId(1), @@ -57,9 +54,8 @@ public static AddressBook createPretendBookFrom(final Platform platform, final b -1, "123456789", -1, - new SerializablePublicKey(pubKey), - null, - new SerializablePublicKey(pubKey), + new SerializableX509Certificate(cert), + new SerializableX509Certificate(cert), ""); return new AddressBook(List.of(address1, address2)); } diff --git a/hedera-node/hedera-app/src/test/java/com/hedera/node/app/workflows/SolvencyPreCheckTest.java b/hedera-node/hedera-app/src/test/java/com/hedera/node/app/workflows/SolvencyPreCheckTest.java index 6b1138580881..c2b3e5b075d8 100644 --- a/hedera-node/hedera-app/src/test/java/com/hedera/node/app/workflows/SolvencyPreCheckTest.java +++ b/hedera-node/hedera-app/src/test/java/com/hedera/node/app/workflows/SolvencyPreCheckTest.java @@ -240,7 +240,7 @@ void testInsufficientPayerBalanceFails() { // then assertThatThrownBy(() -> subject.checkSolvency(txInfo, payer, FEE, false)) .isInstanceOf(InsufficientBalanceException.class) - .has(responseCode(ResponseCodeEnum.INSUFFICIENT_ACCOUNT_BALANCE)) + .has(responseCode(ResponseCodeEnum.INSUFFICIENT_PAYER_BALANCE)) .has(estimatedFee(FEE.totalFee())); } @@ -259,7 +259,7 @@ void testInsufficientBalanceOfExpiredAccountFails() throws PreCheckException { .when(expiryValidation) .checkAccountExpiry(payer); // then - assertThatThrownBy(() -> subject.checkSolvency(txInfo, payer, new Fees(0, 0, 0), false)) + assertThatThrownBy(() -> subject.checkSolvency(txInfo, payer, new Fees(0, 0, 0), true)) .isInstanceOf(PreCheckException.class) .has(responseCode(ResponseCodeEnum.ACCOUNT_EXPIRED_AND_PENDING_REMOVAL)); } @@ -296,9 +296,9 @@ void testCryptoCreateWithInsufficientBalanceFails() { ALICE.account().copyBuilder().tinybarBalance(FEE.totalFee()).build(); // then - assertThatThrownBy(() -> subject.checkSolvency(txInfo, payer, FEE, false)) + assertThatThrownBy(() -> subject.checkSolvency(txInfo, payer, FEE, true)) .isInstanceOf(InsufficientBalanceException.class) - .has(responseCode(ResponseCodeEnum.INSUFFICIENT_ACCOUNT_BALANCE)) + .has(responseCode(ResponseCodeEnum.INSUFFICIENT_PAYER_BALANCE)) .has(estimatedFee(FEE.totalFee())); } } @@ -335,9 +335,9 @@ void testCryptoTransferWithInsufficientBalanceFails() { final var txInfo = createTransactionInfo(FEE.totalFee(), START, CRYPTO_TRANSFER, builder); // then - assertThatThrownBy(() -> subject.checkSolvency(txInfo, payer, FEE, false)) + assertThatThrownBy(() -> subject.checkSolvency(txInfo, payer, FEE, true)) .isInstanceOf(InsufficientBalanceException.class) - .has(responseCode(ResponseCodeEnum.INSUFFICIENT_ACCOUNT_BALANCE)) + .has(responseCode(ResponseCodeEnum.INSUFFICIENT_PAYER_BALANCE)) .has(estimatedFee(FEE.totalFee())); } @@ -386,9 +386,9 @@ void testCryptoTransferWithMultipleEntriesFails() { final var txInfo = createTransactionInfo(FEE.totalFee(), START, CRYPTO_TRANSFER, builder); // then - assertThatThrownBy(() -> subject.checkSolvency(txInfo, payer, FEE, false)) + assertThatThrownBy(() -> subject.checkSolvency(txInfo, payer, FEE, true)) .isInstanceOf(InsufficientBalanceException.class) - .has(responseCode(ResponseCodeEnum.INSUFFICIENT_ACCOUNT_BALANCE)) + .has(responseCode(ResponseCodeEnum.INSUFFICIENT_PAYER_BALANCE)) .has(estimatedFee(FEE.totalFee())); } } @@ -434,9 +434,9 @@ void testEthereumTransactionWithInsufficientBalanceFails() { ALICE.account().copyBuilder().tinybarBalance(FEE.totalFee()).build(); // then - assertThatThrownBy(() -> subject.checkSolvency(txInfo, payer, FEE, false)) + assertThatThrownBy(() -> subject.checkSolvency(txInfo, payer, FEE, true)) .isInstanceOf(InsufficientBalanceException.class) - .has(responseCode(ResponseCodeEnum.INSUFFICIENT_ACCOUNT_BALANCE)) + .has(responseCode(ResponseCodeEnum.INSUFFICIENT_PAYER_BALANCE)) .has(estimatedFee(FEE.totalFee())); } } diff --git a/hedera-node/hedera-app/src/test/java/com/hedera/node/app/workflows/TransactionCheckerTest.java b/hedera-node/hedera-app/src/test/java/com/hedera/node/app/workflows/TransactionCheckerTest.java index 82f79c070b3d..35e81bb47f33 100644 --- a/hedera-node/hedera-app/src/test/java/com/hedera/node/app/workflows/TransactionCheckerTest.java +++ b/hedera-node/hedera-app/src/test/java/com/hedera/node/app/workflows/TransactionCheckerTest.java @@ -664,7 +664,7 @@ void testCheckTransactionBodyWithoutTransactionIDFails() { } @Test - @DisplayName("A transaction ID with an alias as the payer is plausible") + @DisplayName("Aliased Payer accountID should be rejected") void testCheckTransactionBodyWithAliasAsPayer() throws PreCheckException { // Given a transaction ID with an alias as the payer final var payerId = @@ -672,11 +672,9 @@ void testCheckTransactionBodyWithAliasAsPayer() throws PreCheckException { final var body = bodyBuilder(txIdBuilder().accountID(payerId)); final var tx = txBuilder(signedTxBuilder(body, sigMapBuilder())).build(); - // When we check the transaction - final var info = checker.check(tx); - - // Then we get no errors - assertThat(info.transaction()).isEqualTo(tx); + assertThatThrownBy(() -> checker.check(tx)) + .isInstanceOf(PreCheckException.class) + .has(responseCode(PAYER_ACCOUNT_NOT_FOUND)); } @ParameterizedTest diff --git a/hedera-node/hedera-app/src/test/java/com/hedera/node/app/workflows/handle/HandleContextImplTest.java b/hedera-node/hedera-app/src/test/java/com/hedera/node/app/workflows/handle/HandleContextImplTest.java index 4f958f480cda..fcf40caefd99 100644 --- a/hedera-node/hedera-app/src/test/java/com/hedera/node/app/workflows/handle/HandleContextImplTest.java +++ b/hedera-node/hedera-app/src/test/java/com/hedera/node/app/workflows/handle/HandleContextImplTest.java @@ -89,6 +89,7 @@ import com.hedera.node.app.spi.workflows.record.SingleTransactionRecordBuilder; import com.hedera.node.app.state.HederaRecordCache; import com.hedera.node.app.state.HederaState; +import com.hedera.node.app.throttle.NetworkUtilizationManager; import com.hedera.node.app.throttle.SynchronizedThrottleAccumulator; import com.hedera.node.app.workflows.SolvencyPreCheck; import com.hedera.node.app.workflows.TransactionChecker; @@ -182,6 +183,9 @@ class HandleContextImplTest extends StateTestBase implements Scenarios { @Mock private SynchronizedThrottleAccumulator synchronizedThrottleAccumulator; + @Mock + private NetworkUtilizationManager networkUtilizationManager; + @Mock private SelfNodeInfo selfNodeInfo; @@ -235,6 +239,7 @@ private HandleContextImpl createContext(final TransactionBody txBody) { authorizer, solvencyPreCheck, childRecordFinalizer, + networkUtilizationManager, synchronizedThrottleAccumulator); } @@ -265,6 +270,7 @@ void testConstructorWithInvalidArguments() { authorizer, solvencyPreCheck, childRecordFinalizer, + networkUtilizationManager, synchronizedThrottleAccumulator }; @@ -394,6 +400,7 @@ void setUp() { authorizer, solvencyPreCheck, childRecordFinalizer, + networkUtilizationManager, synchronizedThrottleAccumulator); } @@ -926,6 +933,7 @@ private HandleContextImpl createContext(final TransactionBody txBody, final Tran authorizer, solvencyPreCheck, childRecordFinalizer, + networkUtilizationManager, synchronizedThrottleAccumulator); } diff --git a/hedera-node/hedera-app/src/test/java/com/hedera/node/app/workflows/handle/HandleWorkflowMetricsTest.java b/hedera-node/hedera-app/src/test/java/com/hedera/node/app/workflows/handle/HandleWorkflowMetricsTest.java new file mode 100644 index 000000000000..a9de1b1059b1 --- /dev/null +++ b/hedera-node/hedera-app/src/test/java/com/hedera/node/app/workflows/handle/HandleWorkflowMetricsTest.java @@ -0,0 +1,117 @@ +/* + * Copyright (C) 2024 Hedera Hashgraph, LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.hedera.node.app.workflows.handle; + +import static com.swirlds.metrics.api.Metric.ValueType.VALUE; +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; + +import com.hedera.hapi.node.base.HederaFunctionality; +import com.hedera.node.app.utils.TestUtils; +import com.hedera.node.app.workflows.handle.metric.HandleWorkflowMetrics; +import com.swirlds.metrics.api.Metrics; +import org.junit.jupiter.api.Test; + +class HandleWorkflowMetricsTest { + + private final Metrics metrics = TestUtils.metrics(); + + @SuppressWarnings("DataFlowIssue") + @Test + void testConstructorWithInvalidArguments() { + assertThatThrownBy(() -> new HandleWorkflowMetrics(null)).isInstanceOf(NullPointerException.class); + } + + @Test + void testConstructorInitializesMetrics() { + // when + new HandleWorkflowMetrics(metrics); + + // then + assertThat(metrics.findMetricsByCategory("app")).hasSize((HederaFunctionality.values().length - 1) * 2); + } + + @SuppressWarnings("DataFlowIssue") + @Test + void testUpdateWithInvalidArguments() { + // given + final var handleWorkflowMetrics = new HandleWorkflowMetrics(metrics); + + // when + assertThatThrownBy(() -> handleWorkflowMetrics.update(null, 0)).isInstanceOf(NullPointerException.class); + } + + @Test + void testInitialValue() { + // given + new HandleWorkflowMetrics(metrics); + + // then + assertThat(metrics.getMetric("app", "cryptoCreateDurationMax").get(VALUE)) + .isEqualTo(0); + assertThat(metrics.getMetric("app", "cryptoCreateDurationAvg").get(VALUE)) + .isEqualTo(0); + } + + @Test + void testSingleUpdate() { + // given + final var handleWorkflowMetrics = new HandleWorkflowMetrics(metrics); + + // when + handleWorkflowMetrics.update(HederaFunctionality.CRYPTO_CREATE, 42); + + // then + assertThat(metrics.getMetric("app", "cryptoCreateDurationMax").get(VALUE)) + .isEqualTo(42); + assertThat(metrics.getMetric("app", "cryptoCreateDurationAvg").get(VALUE)) + .isEqualTo(42); + } + + @Test + void testTwoUpdates() { + // given + final var handleWorkflowMetrics = new HandleWorkflowMetrics(metrics); + + // when + handleWorkflowMetrics.update(HederaFunctionality.CRYPTO_CREATE, 11); + handleWorkflowMetrics.update(HederaFunctionality.CRYPTO_CREATE, 22); + + // then + assertThat(metrics.getMetric("app", "cryptoCreateDurationMax").get(VALUE)) + .isEqualTo(22); + assertThat(metrics.getMetric("app", "cryptoCreateDurationAvg").get(VALUE)) + .isEqualTo(16); + } + + @Test + void testThreeUpdates() { + // given + final var handleWorkflowMetrics = new HandleWorkflowMetrics(metrics); + + // when + handleWorkflowMetrics.update(HederaFunctionality.CRYPTO_CREATE, 13); + handleWorkflowMetrics.update(HederaFunctionality.CRYPTO_CREATE, 5); + handleWorkflowMetrics.update(HederaFunctionality.CRYPTO_CREATE, 3); + + // then + assertThat(metrics.getMetric("app", "cryptoCreateDurationMax").get(VALUE)) + .isEqualTo(13); + assertThat(metrics.getMetric("app", "cryptoCreateDurationAvg").get(VALUE)) + .isEqualTo(7); + } +} diff --git a/hedera-node/hedera-app/src/test/java/com/hedera/node/app/workflows/handle/HandleWorkflowTest.java b/hedera-node/hedera-app/src/test/java/com/hedera/node/app/workflows/handle/HandleWorkflowTest.java index 2f7fa0ff393e..5543913ff84c 100644 --- a/hedera-node/hedera-app/src/test/java/com/hedera/node/app/workflows/handle/HandleWorkflowTest.java +++ b/hedera-node/hedera-app/src/test/java/com/hedera/node/app/workflows/handle/HandleWorkflowTest.java @@ -25,16 +25,19 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.ArgumentMatchers.intThat; import static org.mockito.ArgumentMatchers.notNull; import static org.mockito.BDDMockito.given; import static org.mockito.Mock.Strictness.LENIENT; import static org.mockito.Mockito.doAnswer; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.doThrow; +import static org.mockito.Mockito.lenient; import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import com.hedera.hapi.node.base.HederaFunctionality; import com.hedera.hapi.node.base.Key; import com.hedera.hapi.node.base.ResponseCodeEnum; import com.hedera.hapi.node.state.primitives.ProtoBytes; @@ -67,6 +70,7 @@ import com.hedera.node.app.workflows.TransactionChecker; import com.hedera.node.app.workflows.TransactionScenarioBuilder; import com.hedera.node.app.workflows.dispatcher.TransactionDispatcher; +import com.hedera.node.app.workflows.handle.metric.HandleWorkflowMetrics; import com.hedera.node.app.workflows.handle.record.GenesisRecordsConsensusHook; import com.hedera.node.app.workflows.prehandle.FakeSignatureVerificationFuture; import com.hedera.node.app.workflows.prehandle.PreHandleResult; @@ -217,6 +221,9 @@ private static PreHandleResult createPreHandleResult(@NonNull Status status, @No @Mock private CacheWarmer cacheWarmer; + @Mock + private HandleWorkflowMetrics handleWorkflowMetrics; + private HandleWorkflow workflow; @BeforeEach @@ -243,6 +250,7 @@ void setup() throws PreCheckException { when(event.getCreatorId()).thenReturn(nodeSelfId); when(platformTxn.getConsensusTimestamp()).thenReturn(CONSENSUS_NOW); when(platformTxn.getMetadata()).thenReturn(OK_RESULT); + lenient().when(blockRecordManager.consTimeOfLastHandledTxn()).thenReturn(CONSENSUS_NOW.minusSeconds(1)); when(serviceLookup.getServiceName(any())).thenReturn(TokenService.NAME); @@ -292,7 +300,8 @@ void setup() throws PreCheckException { networkUtilizationManager, synchronizedThrottleAccumulator, scheduleExpirationHook, - cacheWarmer); + cacheWarmer, + handleWorkflowMetrics); } @SuppressWarnings("ConstantConditions") @@ -320,7 +329,8 @@ void testContructorWithInvalidArguments() { networkUtilizationManager, synchronizedThrottleAccumulator, scheduleExpirationHook, - cacheWarmer)) + cacheWarmer, + handleWorkflowMetrics)) .isInstanceOf(NullPointerException.class); assertThatThrownBy(() -> new HandleWorkflow( networkInfo, @@ -344,7 +354,8 @@ void testContructorWithInvalidArguments() { networkUtilizationManager, synchronizedThrottleAccumulator, scheduleExpirationHook, - cacheWarmer)) + cacheWarmer, + handleWorkflowMetrics)) .isInstanceOf(NullPointerException.class); assertThatThrownBy(() -> new HandleWorkflow( networkInfo, @@ -368,7 +379,8 @@ void testContructorWithInvalidArguments() { networkUtilizationManager, synchronizedThrottleAccumulator, scheduleExpirationHook, - cacheWarmer)) + cacheWarmer, + handleWorkflowMetrics)) .isInstanceOf(NullPointerException.class); assertThatThrownBy(() -> new HandleWorkflow( networkInfo, @@ -392,7 +404,8 @@ void testContructorWithInvalidArguments() { networkUtilizationManager, synchronizedThrottleAccumulator, scheduleExpirationHook, - cacheWarmer)) + cacheWarmer, + handleWorkflowMetrics)) .isInstanceOf(NullPointerException.class); assertThatThrownBy(() -> new HandleWorkflow( networkInfo, @@ -416,7 +429,8 @@ void testContructorWithInvalidArguments() { networkUtilizationManager, synchronizedThrottleAccumulator, scheduleExpirationHook, - cacheWarmer)) + cacheWarmer, + handleWorkflowMetrics)) .isInstanceOf(NullPointerException.class); assertThatThrownBy(() -> new HandleWorkflow( networkInfo, @@ -440,7 +454,8 @@ void testContructorWithInvalidArguments() { networkUtilizationManager, synchronizedThrottleAccumulator, scheduleExpirationHook, - cacheWarmer)) + cacheWarmer, + handleWorkflowMetrics)) .isInstanceOf(NullPointerException.class); assertThatThrownBy(() -> new HandleWorkflow( networkInfo, @@ -464,7 +479,8 @@ void testContructorWithInvalidArguments() { networkUtilizationManager, synchronizedThrottleAccumulator, scheduleExpirationHook, - cacheWarmer)) + cacheWarmer, + handleWorkflowMetrics)) .isInstanceOf(NullPointerException.class); assertThatThrownBy(() -> new HandleWorkflow( networkInfo, @@ -488,7 +504,8 @@ void testContructorWithInvalidArguments() { networkUtilizationManager, synchronizedThrottleAccumulator, scheduleExpirationHook, - cacheWarmer)) + cacheWarmer, + handleWorkflowMetrics)) .isInstanceOf(NullPointerException.class); assertThatThrownBy(() -> new HandleWorkflow( networkInfo, @@ -512,7 +529,8 @@ void testContructorWithInvalidArguments() { networkUtilizationManager, synchronizedThrottleAccumulator, scheduleExpirationHook, - cacheWarmer)) + cacheWarmer, + handleWorkflowMetrics)) .isInstanceOf(NullPointerException.class); assertThatThrownBy(() -> new HandleWorkflow( networkInfo, @@ -536,7 +554,8 @@ void testContructorWithInvalidArguments() { networkUtilizationManager, synchronizedThrottleAccumulator, scheduleExpirationHook, - cacheWarmer)) + cacheWarmer, + handleWorkflowMetrics)) .isInstanceOf(NullPointerException.class); assertThatThrownBy(() -> new HandleWorkflow( networkInfo, @@ -560,7 +579,8 @@ void testContructorWithInvalidArguments() { networkUtilizationManager, synchronizedThrottleAccumulator, scheduleExpirationHook, - cacheWarmer)) + cacheWarmer, + handleWorkflowMetrics)) .isInstanceOf(NullPointerException.class); assertThatThrownBy(() -> new HandleWorkflow( networkInfo, @@ -584,7 +604,8 @@ void testContructorWithInvalidArguments() { networkUtilizationManager, synchronizedThrottleAccumulator, scheduleExpirationHook, - cacheWarmer)) + cacheWarmer, + handleWorkflowMetrics)) .isInstanceOf(NullPointerException.class); assertThatThrownBy(() -> new HandleWorkflow( networkInfo, @@ -608,7 +629,8 @@ void testContructorWithInvalidArguments() { networkUtilizationManager, synchronizedThrottleAccumulator, scheduleExpirationHook, - cacheWarmer)) + cacheWarmer, + handleWorkflowMetrics)) .isInstanceOf(NullPointerException.class); assertThatThrownBy(() -> new HandleWorkflow( networkInfo, @@ -632,7 +654,8 @@ void testContructorWithInvalidArguments() { networkUtilizationManager, synchronizedThrottleAccumulator, scheduleExpirationHook, - cacheWarmer)) + cacheWarmer, + handleWorkflowMetrics)) .isInstanceOf(NullPointerException.class); assertThatThrownBy(() -> new HandleWorkflow( networkInfo, @@ -656,7 +679,8 @@ void testContructorWithInvalidArguments() { networkUtilizationManager, synchronizedThrottleAccumulator, scheduleExpirationHook, - cacheWarmer)) + cacheWarmer, + handleWorkflowMetrics)) .isInstanceOf(NullPointerException.class); assertThatThrownBy(() -> new HandleWorkflow( networkInfo, @@ -680,7 +704,8 @@ void testContructorWithInvalidArguments() { networkUtilizationManager, synchronizedThrottleAccumulator, scheduleExpirationHook, - cacheWarmer)) + cacheWarmer, + handleWorkflowMetrics)) .isInstanceOf(NullPointerException.class); assertThatThrownBy(() -> new HandleWorkflow( networkInfo, @@ -704,7 +729,8 @@ void testContructorWithInvalidArguments() { networkUtilizationManager, synchronizedThrottleAccumulator, scheduleExpirationHook, - cacheWarmer)) + cacheWarmer, + handleWorkflowMetrics)) .isInstanceOf(NullPointerException.class); assertThatThrownBy(() -> new HandleWorkflow( networkInfo, @@ -728,7 +754,8 @@ void testContructorWithInvalidArguments() { null, synchronizedThrottleAccumulator, scheduleExpirationHook, - cacheWarmer)) + cacheWarmer, + handleWorkflowMetrics)) .isInstanceOf(NullPointerException.class); assertThatThrownBy(() -> new HandleWorkflow( networkInfo, @@ -752,7 +779,33 @@ void testContructorWithInvalidArguments() { networkUtilizationManager, null, scheduleExpirationHook, - cacheWarmer)) + cacheWarmer, + handleWorkflowMetrics)) + .isInstanceOf(NullPointerException.class); + assertThatThrownBy(() -> new HandleWorkflow( + networkInfo, + preHandleWorkflow, + dispatcher, + blockRecordManager, + checker, + serviceLookup, + configProvider, + recordCache, + genesisRecordsTimeHook, + stakingPeriodTimeHook, + feeManager, + exchangeRateManager, + childRecordFinalizer, + finalizer, + systemFileUpdateFacility, + platformStateUpdateFacility, + solvencyPreCheck, + authorizer, + networkUtilizationManager, + synchronizedThrottleAccumulator, + null, + cacheWarmer, + handleWorkflowMetrics)) .isInstanceOf(NullPointerException.class); assertThatThrownBy(() -> new HandleWorkflow( networkInfo, @@ -775,8 +828,9 @@ void testContructorWithInvalidArguments() { authorizer, networkUtilizationManager, synchronizedThrottleAccumulator, + scheduleExpirationHook, null, - cacheWarmer)) + handleWorkflowMetrics)) .isInstanceOf(NullPointerException.class); assertThatThrownBy(() -> new HandleWorkflow( networkInfo, @@ -800,6 +854,7 @@ void testContructorWithInvalidArguments() { networkUtilizationManager, synchronizedThrottleAccumulator, scheduleExpirationHook, + cacheWarmer, null)) .isInstanceOf(NullPointerException.class); } @@ -838,6 +893,7 @@ void testHappyPath() { // TODO: Check that record was created verify(systemFileUpdateFacility).handleTxBody(any(), any()); verify(platformStateUpdateFacility).handleTxBody(any(), any(), any()); + verify(handleWorkflowMetrics).update(eq(HederaFunctionality.CRYPTO_TRANSFER), intThat(i -> i > 0)); } @Nested @@ -1446,6 +1502,7 @@ void testSimpleRun() { @Test void testConsensusTimeHooksCalled() { workflow.handleRound(state, platformState, round); + verify(blockRecordManager).consTimeOfLastHandledTxn(); verify(genesisRecordsTimeHook).process(notNull()); verify(stakingPeriodTimeHook).process(notNull(), notNull()); } diff --git a/hedera-node/hedera-app/src/test/java/com/hedera/node/app/workflows/handle/record/BlockRecordManagerTest.java b/hedera-node/hedera-app/src/test/java/com/hedera/node/app/workflows/handle/record/BlockRecordManagerTest.java index c1160c405379..159cd99b9d37 100644 --- a/hedera-node/hedera-app/src/test/java/com/hedera/node/app/workflows/handle/record/BlockRecordManagerTest.java +++ b/hedera-node/hedera-app/src/test/java/com/hedera/node/app/workflows/handle/record/BlockRecordManagerTest.java @@ -28,6 +28,7 @@ import static com.hedera.node.app.records.RecordTestData.USER_PUBLIC_KEY; import static com.hedera.node.app.records.impl.producers.formats.v6.RecordStreamV6Verifier.validateRecordStreamFiles; import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.Mockito.mock; import com.google.common.jimfs.Configuration; import com.google.common.jimfs.Jimfs; @@ -36,22 +37,31 @@ import com.hedera.hapi.node.state.blockrecords.RunningHashes; import com.hedera.node.app.fixtures.AppTestBase; import com.hedera.node.app.records.impl.BlockRecordManagerImpl; +import com.hedera.node.app.records.impl.BlockRecordStreamProducer; import com.hedera.node.app.records.impl.producers.BlockRecordFormat; import com.hedera.node.app.records.impl.producers.BlockRecordWriterFactory; import com.hedera.node.app.records.impl.producers.StreamFileProducerConcurrent; import com.hedera.node.app.records.impl.producers.StreamFileProducerSingleThreaded; import com.hedera.node.app.records.impl.producers.formats.BlockRecordWriterFactoryImpl; import com.hedera.node.app.records.impl.producers.formats.v6.BlockRecordFormatV6; +import com.hedera.node.app.spi.fixtures.state.MapReadableStates; +import com.hedera.node.app.spi.state.ReadableSingletonStateBase; +import com.hedera.node.app.spi.state.ReadableStates; +import com.hedera.node.app.spi.state.WritableStates; +import com.hedera.node.app.state.HederaState; import com.hedera.node.config.data.BlockRecordStreamConfig; import com.hedera.pbj.runtime.io.buffer.Bytes; +import edu.umd.cs.findbugs.annotations.NonNull; import java.nio.file.FileSystem; import java.nio.file.Files; import java.time.Instant; import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.Random; import java.util.concurrent.ForkJoinPool; import java.util.stream.Stream; +import org.assertj.core.api.Assertions; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -354,6 +364,92 @@ void testBlockInfoMethods() throws Exception { BLOCK_NUM); } + @Test + void isDefaultConsTimeForNullParam() { + @SuppressWarnings("ConstantValue") + final var result = BlockRecordManagerImpl.isDefaultConsTimeOfLastHandledTxn(null); + //noinspection ConstantValue + Assertions.assertThat(result).isTrue(); + } + + @Test + void isDefaultConsTimeForNullConsensusTimeOfLastHandledTxn() { + final var result = BlockRecordManagerImpl.isDefaultConsTimeOfLastHandledTxn( + new BlockInfo(0, CONSENSUS_TIME, Bytes.EMPTY, null, false, CONSENSUS_TIME)); + Assertions.assertThat(result).isTrue(); + } + + @Test + void isDefaultConsTimeForTimestampAfterEpoch() { + final var timestampAfterEpoch = Timestamp.newBuilder() + .seconds(EPOCH.seconds()) + .nanos(EPOCH.nanos() + 1) + .build(); + final var result = BlockRecordManagerImpl.isDefaultConsTimeOfLastHandledTxn( + new BlockInfo(0, CONSENSUS_TIME, Bytes.EMPTY, timestampAfterEpoch, false, CONSENSUS_TIME)); + Assertions.assertThat(result).isFalse(); + } + + @Test + void isDefaultConsTimeForTimestampAtEpoch() { + final var result = BlockRecordManagerImpl.isDefaultConsTimeOfLastHandledTxn( + new BlockInfo(0, CONSENSUS_TIME, Bytes.EMPTY, EPOCH, false, CONSENSUS_TIME)); + Assertions.assertThat(result).isTrue(); + } + + @Test + void isDefaultConsTimeForTimestampBeforeEpoch() { + final var timestampBeforeEpoch = Timestamp.newBuilder() + .seconds(EPOCH.seconds()) + .nanos(EPOCH.nanos() - 1) + .build(); + final var result = BlockRecordManagerImpl.isDefaultConsTimeOfLastHandledTxn( + new BlockInfo(0, CONSENSUS_TIME, Bytes.EMPTY, timestampBeforeEpoch, false, CONSENSUS_TIME)); + Assertions.assertThat(result).isTrue(); + } + + @Test + void consTimeOfLastHandledTxnIsSet() { + final var blockInfo = new BlockInfo(0, EPOCH, Bytes.EMPTY, CONSENSUS_TIME, false, EPOCH); + final var state = simpleBlockInfoState(blockInfo); + final var subject = + new BlockRecordManagerImpl(app.configProvider(), state, mock(BlockRecordStreamProducer.class)); + + final var result = subject.consTimeOfLastHandledTxn(); + Assertions.assertThat(result).isEqualTo(fromTimestamp(CONSENSUS_TIME)); + } + + @Test + void consTimeOfLastHandledTxnIsNotSet() { + final var blockInfo = new BlockInfo(0, EPOCH, Bytes.EMPTY, null, false, EPOCH); + final var state = simpleBlockInfoState(blockInfo); + final var subject = + new BlockRecordManagerImpl(app.configProvider(), state, mock(BlockRecordStreamProducer.class)); + + final var result = subject.consTimeOfLastHandledTxn(); + Assertions.assertThat(result).isEqualTo(fromTimestamp(EPOCH)); + } + + private static HederaState simpleBlockInfoState(final BlockInfo blockInfo) { + return new HederaState() { + @NonNull + @Override + public ReadableStates getReadableStates(@NonNull final String serviceName) { + return new MapReadableStates(Map.of( + BlockRecordService.BLOCK_INFO_STATE_KEY, + new ReadableSingletonStateBase<>(BlockRecordService.BLOCK_INFO_STATE_KEY, () -> blockInfo), + RUNNING_HASHES_STATE_KEY, + new ReadableSingletonStateBase<>(RUNNING_HASHES_STATE_KEY, () -> RunningHashes.DEFAULT))); + } + + @NonNull + @Override + public WritableStates getWritableStates(@NonNull String serviceName) { + throw new UnsupportedOperationException("Shouldn't be needed for this test"); + } + }; + } + private static Instant fromTimestamp(final Timestamp timestamp) { return Instant.ofEpochSecond(timestamp.seconds(), timestamp.nanos()); } diff --git a/hedera-node/hedera-app/src/test/java/com/hedera/node/app/workflows/handle/record/GenesisRecordsConsensusHookTest.java b/hedera-node/hedera-app/src/test/java/com/hedera/node/app/workflows/handle/record/GenesisRecordsConsensusHookTest.java index 20e7b65eff9b..2424c9df2b77 100644 --- a/hedera-node/hedera-app/src/test/java/com/hedera/node/app/workflows/handle/record/GenesisRecordsConsensusHookTest.java +++ b/hedera-node/hedera-app/src/test/java/com/hedera/node/app/workflows/handle/record/GenesisRecordsConsensusHookTest.java @@ -16,13 +16,17 @@ package com.hedera.node.app.workflows.handle.record; +import static org.mockito.ArgumentMatchers.eq; import static org.mockito.BDDMockito.given; import static org.mockito.BDDMockito.verify; import static org.mockito.Mockito.atLeastOnce; +import static org.mockito.Mockito.never; import static org.mockito.Mockito.verifyNoInteractions; +import com.hedera.hapi.node.base.AccountAmount; import com.hedera.hapi.node.base.AccountID; import com.hedera.hapi.node.base.Timestamp; +import com.hedera.hapi.node.base.TransferList; import com.hedera.hapi.node.state.blockrecords.BlockInfo; import com.hedera.hapi.node.state.token.Account; import com.hedera.node.app.records.ReadableBlockRecordStore; @@ -45,8 +49,11 @@ class GenesisRecordsConsensusHookTest { AccountID.newBuilder().accountNum(1).build(); private static final AccountID ACCOUNT_ID_2 = AccountID.newBuilder().accountNum(2).build(); - private static final Account ACCOUNT_1 = - Account.newBuilder().accountId(ACCOUNT_ID_1).build(); + private static final int ACCT_1_BALANCE = 25; + private static final Account ACCOUNT_1 = Account.newBuilder() + .accountId(ACCOUNT_ID_1) + .tinybarBalance(ACCT_1_BALANCE) + .build(); private static final Account ACCOUNT_2 = Account.newBuilder().accountId(ACCOUNT_ID_2).build(); private static final Instant CONSENSUS_NOW = Instant.parse("2023-08-10T00:00:00Z"); @@ -72,6 +79,8 @@ void setup() { given(context.consensusTime()).willReturn(CONSENSUS_NOW); given(context.addUncheckedPrecedingChildRecordBuilder(GenesisAccountRecordBuilder.class)) .willReturn(genesisAccountRecordBuilder); + given(context.isFirstTransaction()).willReturn(true); + given(context.readableStore(ReadableBlockRecordStore.class)).willReturn(blockStore); given(blockStore.getLastBlockInfo()).willReturn(defaultStartupBlockInfo()); @@ -86,8 +95,9 @@ void processCreatesSystemAccounts() { subject.systemAccounts(accts); subject.process(context); - verifyBuilderInvoked(ACCOUNT_ID_1, EXPECTED_SYSTEM_ACCOUNT_CREATION_MEMO); + verifyBuilderInvoked(ACCOUNT_ID_1, EXPECTED_SYSTEM_ACCOUNT_CREATION_MEMO, ACCT_1_BALANCE); verifyBuilderInvoked(ACCOUNT_ID_2, EXPECTED_SYSTEM_ACCOUNT_CREATION_MEMO); + verify(context).markMigrationRecordsStreamed(); } @Test @@ -99,8 +109,9 @@ void processCreatesStakingAccounts() { subject.process(context); - verifyBuilderInvoked(ACCOUNT_ID_1, EXPECTED_STAKING_MEMO); + verifyBuilderInvoked(ACCOUNT_ID_1, EXPECTED_STAKING_MEMO, ACCT_1_BALANCE); verifyBuilderInvoked(ACCOUNT_ID_2, EXPECTED_STAKING_MEMO); + verify(context).markMigrationRecordsStreamed(); } @Test @@ -112,8 +123,9 @@ void processCreatesMultipurposeAccounts() { subject.process(context); - verifyBuilderInvoked(ACCOUNT_ID_1, null); + verifyBuilderInvoked(ACCOUNT_ID_1, null, ACCT_1_BALANCE); verifyBuilderInvoked(ACCOUNT_ID_2, null); + verify(context).markMigrationRecordsStreamed(); } @Test @@ -125,8 +137,9 @@ void processCreatesTreasuryClones() { subject.process(context); - verifyBuilderInvoked(ACCOUNT_ID_1, EXPECTED_TREASURY_CLONE_MEMO); + verifyBuilderInvoked(ACCOUNT_ID_1, EXPECTED_TREASURY_CLONE_MEMO, ACCT_1_BALANCE); verifyBuilderInvoked(ACCOUNT_ID_2, EXPECTED_TREASURY_CLONE_MEMO); + verify(context).markMigrationRecordsStreamed(); } @Test @@ -138,8 +151,9 @@ void processCreatesBlocklistAccounts() { subject.process(context); - verifyBuilderInvoked(ACCOUNT_ID_1, null); + verifyBuilderInvoked(ACCOUNT_ID_1, null, ACCT_1_BALANCE); verifyBuilderInvoked(ACCOUNT_ID_2, null); + verify(context).markMigrationRecordsStreamed(); } @Test @@ -169,11 +183,12 @@ void processCreatesAllRecords() { // Call the first time to make sure records are generated subject.process(context); - verifyBuilderInvoked(ACCOUNT_ID_1, EXPECTED_SYSTEM_ACCOUNT_CREATION_MEMO); + verifyBuilderInvoked(ACCOUNT_ID_1, EXPECTED_SYSTEM_ACCOUNT_CREATION_MEMO, ACCT_1_BALANCE); verifyBuilderInvoked(ACCOUNT_ID_2, EXPECTED_STAKING_MEMO); verifyBuilderInvoked(acctId3, null); verifyBuilderInvoked(acctId4, EXPECTED_TREASURY_CLONE_MEMO); verifyBuilderInvoked(acctId5, null); + verify(context).markMigrationRecordsStreamed(); // Call process() a second time to make sure no other records are created Mockito.clearInvocations(genesisAccountRecordBuilder); @@ -185,16 +200,30 @@ void processCreatesAllRecords() { void processCreatesNoRecordsWhenEmpty() { subject.process(context); verifyNoInteractions(genesisAccountRecordBuilder); + verify(context, never()).markMigrationRecordsStreamed(); + } + + @Test + void processCreatesNoRecordsWhenNotFirstTransaction() { + given(context.isFirstTransaction()).willReturn(false); + + // Add a single account, so we know the subject isn't skipping processing because there's no data + final var accts = new TreeSet<>(TokenComparators.ACCOUNT_COMPARATOR); + accts.add(ACCOUNT_1); + subject.stakingAccounts(accts); + + subject.process(context); + + verifyNoInteractions(genesisAccountRecordBuilder); + verify(context, never()).markMigrationRecordsStreamed(); } @Test - void processCreatesNoRecordsAfterRunning() { + void processCreatesNoRecordsWhenMigrationRecordsStreamed() { given(blockStore.getLastBlockInfo()) .willReturn(defaultStartupBlockInfo() .copyBuilder() - .consTimeOfLastHandledTxn(Timestamp.newBuilder() - .seconds(CONSENSUS_NOW.getEpochSecond()) - .nanos(CONSENSUS_NOW.getNano())) + .migrationRecordsStreamed(true) .build()); // Add a single account, so we know the subject isn't skipping processing because there's no data final var accts = new TreeSet<>(TokenComparators.ACCOUNT_COMPARATOR); @@ -204,6 +233,7 @@ void processCreatesNoRecordsAfterRunning() { subject.process(context); verifyNoInteractions(genesisAccountRecordBuilder); + verify(context, never()).markMigrationRecordsStreamed(); } @SuppressWarnings("DataFlowIssue") @@ -237,11 +267,27 @@ void blocklistAccountsNullParam() { } private void verifyBuilderInvoked(final AccountID acctId, final String expectedMemo) { + verifyBuilderInvoked(acctId, expectedMemo, 0); + } + + private void verifyBuilderInvoked(final AccountID acctId, final String expectedMemo, final long expectedBalance) { verify(genesisAccountRecordBuilder).accountID(acctId); + if (expectedMemo != null) verify(genesisAccountRecordBuilder, atLeastOnce()).memo(expectedMemo); + //noinspection DataFlowIssue verify(genesisAccountRecordBuilder, Mockito.never()).memo(null); + + if (expectedBalance != 0) { + verify(genesisAccountRecordBuilder) + .transferList(eq(TransferList.newBuilder() + .accountAmounts(AccountAmount.newBuilder() + .accountID(acctId) + .amount(expectedBalance) + .build()) + .build())); + } } private static BlockInfo defaultStartupBlockInfo() { diff --git a/hedera-node/hedera-app/src/xtest/java/common/BaseScaffoldingModule.java b/hedera-node/hedera-app/src/xtest/java/common/BaseScaffoldingModule.java index 36e2e52fad7f..a0202f29071b 100644 --- a/hedera-node/hedera-app/src/xtest/java/common/BaseScaffoldingModule.java +++ b/hedera-node/hedera-app/src/xtest/java/common/BaseScaffoldingModule.java @@ -69,8 +69,10 @@ import com.hedera.node.app.state.HederaState; import com.hedera.node.app.state.recordcache.DeduplicationCacheImpl; import com.hedera.node.app.state.recordcache.RecordCacheImpl; +import com.hedera.node.app.throttle.NetworkUtilizationManager; import com.hedera.node.app.throttle.SynchronizedThrottleAccumulator; import com.hedera.node.app.throttle.ThrottleAccumulator; +import com.hedera.node.app.throttle.impl.NetworkUtilizationManagerImpl; import com.hedera.node.app.validation.ExpiryValidation; import com.hedera.node.app.workflows.SolvencyPreCheck; import com.hedera.node.app.workflows.TransactionChecker; @@ -217,7 +219,9 @@ static BiFunction provideQueryContextFactory( @NonNull final HederaState state, @NonNull final RecordCache recordCache, @NonNull final Configuration configuration, - @NonNull final ExchangeRateManager exchangeRateManager) { + @NonNull final ExchangeRateManager exchangeRateManager, + @NonNull final SynchronizedThrottleAccumulator synchronizedThrottleAccumulator) { + final var consensusTime = Instant.now(); return (query, payerId) -> new QueryContextImpl( state, new ReadableStoreFactory(state), @@ -245,6 +249,7 @@ static Function provideHandleContextCreator( @NonNull final FeeManager feeManager, @NonNull final Authorizer authorizer, @NonNull final ChildRecordFinalizer childRecordFinalizer, + @NonNull final NetworkUtilizationManager networkUtilizationManager, @NonNull final SynchronizedThrottleAccumulator synchronizedThrottleAccumulator) { final var consensusTime = Instant.now(); final var recordListBuilder = new RecordListBuilder(consensusTime); @@ -284,6 +289,7 @@ static Function provideHandleContextCreator( authorizer, solvencyPreCheck, childRecordFinalizer, + networkUtilizationManager, synchronizedThrottleAccumulator); }; } @@ -346,4 +352,15 @@ private static CongestionMultipliers getCongestionMultipliers( return new CongestionMultipliers(txnRateMultiplier, gasFeeMultiplier); } + + @Provides + @Singleton + static NetworkUtilizationManager createNetworkUtilizationManager(@NonNull ConfigProvider configProvider) { + var backendThrottle = new ThrottleAccumulator(() -> 1, configProvider, BACKEND_THROTTLE); + final var genericFeeMultiplier = getThrottleMultiplier(configProvider, backendThrottle); + + final var congestionMultipliers = + getCongestionMultipliers(configProvider, genericFeeMultiplier, backendThrottle); + return new NetworkUtilizationManagerImpl(backendThrottle, congestionMultipliers); + } } diff --git a/hedera-node/hedera-config/build.gradle.kts b/hedera-node/hedera-config/build.gradle.kts index a66daae7e031..98e8f1ec3abd 100644 --- a/hedera-node/hedera-config/build.gradle.kts +++ b/hedera-node/hedera-config/build.gradle.kts @@ -16,7 +16,7 @@ plugins { id("com.hedera.hashgraph.conventions") - id("java-test-fixtures") + id("com.hedera.hashgraph.java-test-fixtures") } description = "Hedera Configuration" diff --git a/hedera-node/hedera-consensus-service-impl/src/main/java/com/hedera/node/app/service/consensus/impl/WritableTopicStore.java b/hedera-node/hedera-consensus-service-impl/src/main/java/com/hedera/node/app/service/consensus/impl/WritableTopicStore.java index 245271cc1044..31ed71f065b3 100644 --- a/hedera-node/hedera-consensus-service-impl/src/main/java/com/hedera/node/app/service/consensus/impl/WritableTopicStore.java +++ b/hedera-node/hedera-consensus-service-impl/src/main/java/com/hedera/node/app/service/consensus/impl/WritableTopicStore.java @@ -23,7 +23,6 @@ import com.hedera.hapi.node.state.consensus.Topic; import com.hedera.node.app.service.mono.state.merkle.MerkleTopic; import com.hedera.node.app.spi.state.WritableKVState; -import com.hedera.node.app.spi.state.WritableKVStateBase; import com.hedera.node.app.spi.state.WritableStates; import edu.umd.cs.findbugs.annotations.NonNull; import java.util.Optional; @@ -61,14 +60,6 @@ public void put(@NonNull final Topic topic) { topicState.put(requireNonNull(topic.topicId()), requireNonNull(topic)); } - /** - * Commits the changes to the underlying data storage. - */ - public void commit() { - requireNonNull(topicState); - ((WritableKVStateBase) topicState).commit(); - } - /** * Returns the {@link Topic} with the given number. If no such topic exists, returns {@code Optional.empty()} * @param topicID - the id of the topic to be retrieved. diff --git a/hedera-node/hedera-evm/src/main/java/com/hedera/node/app/service/evm/contracts/operations/HederaExtCodeHashOperationV038.java b/hedera-node/hedera-evm/src/main/java/com/hedera/node/app/service/evm/contracts/operations/HederaExtCodeHashOperationV038.java index dc2fc0780fe5..616a7375eb00 100644 --- a/hedera-node/hedera-evm/src/main/java/com/hedera/node/app/service/evm/contracts/operations/HederaExtCodeHashOperationV038.java +++ b/hedera-node/hedera-evm/src/main/java/com/hedera/node/app/service/evm/contracts/operations/HederaExtCodeHashOperationV038.java @@ -58,6 +58,13 @@ public HederaExtCodeHashOperationV038( public OperationResult execute(MessageFrame frame, EVM evm) { try { final Address address = Words.toAddress(frame.popStackItem()); + boolean accountIsWarm = + frame.warmUpAddress(address) || this.gasCalculator().isPrecompile(address); + long localCost = cost(accountIsWarm); + if (frame.getRemainingGas() < localCost) { + return new OperationResult(localCost, ExceptionalHaltReason.INSUFFICIENT_GAS); + } + if (systemAccountDetector.test(address)) { frame.pushStackItem(UInt256.ZERO); return new OperationResult(cost(true), null); @@ -68,20 +75,13 @@ public OperationResult execute(MessageFrame frame, EVM evm) { } } final var account = frame.getWorldUpdater().get(address); - boolean accountIsWarm = - frame.warmUpAddress(address) || this.gasCalculator().isPrecompile(address); - long localCost = cost(accountIsWarm); - if (frame.getRemainingGas() < localCost) { - return new OperationResult(localCost, ExceptionalHaltReason.INSUFFICIENT_GAS); + if (account != null && !account.isEmpty()) { + frame.pushStackItem(UInt256.fromBytes(account.getCodeHash())); } else { - if (account != null && !account.isEmpty()) { - frame.pushStackItem(UInt256.fromBytes(account.getCodeHash())); - } else { - frame.pushStackItem(UInt256.ZERO); - } - - return new OperationResult(localCost, null); + frame.pushStackItem(UInt256.ZERO); } + + return new OperationResult(localCost, null); } catch (final UnderflowException ufe) { return new OperationResult(cost(true), ExceptionalHaltReason.INSUFFICIENT_STACK_ITEMS); } catch (final OverflowException ofe) { diff --git a/hedera-node/hedera-evm/src/main/java/com/hedera/node/app/service/evm/store/contracts/precompile/codec/EvmEncodingFacade.java b/hedera-node/hedera-evm/src/main/java/com/hedera/node/app/service/evm/store/contracts/precompile/codec/EvmEncodingFacade.java index a2083c08e7ae..cab2c1fe603c 100644 --- a/hedera-node/hedera-evm/src/main/java/com/hedera/node/app/service/evm/store/contracts/precompile/codec/EvmEncodingFacade.java +++ b/hedera-node/hedera-evm/src/main/java/com/hedera/node/app/service/evm/store/contracts/precompile/codec/EvmEncodingFacade.java @@ -35,6 +35,7 @@ import com.esaulpaugh.headlong.abi.Tuple; import com.esaulpaugh.headlong.abi.TupleType; import com.hedera.node.app.service.evm.store.contracts.utils.EvmParsingConstants.FunctionType; +import com.hederahashgraph.api.proto.java.ResponseCodeEnum; import edu.umd.cs.findbugs.annotations.NonNull; import java.math.BigInteger; import java.util.ArrayList; @@ -60,9 +61,13 @@ public Bytes encodeDecimals(final int decimals) { } public Bytes encodeGetTokenType(final int tokenType) { + return encodeGetTokenType(SUCCESS, tokenType); + } + + public Bytes encodeGetTokenType(final ResponseCodeEnum status, final int tokenType) { return functionResultBuilder() .forFunction(FunctionType.HAPI_GET_TOKEN_TYPE) - .withStatus(SUCCESS.getNumber()) + .withStatus(status.getNumber()) .withGetTokenType(tokenType) .build(); } @@ -96,41 +101,61 @@ public Bytes encodeIsApprovedForAll(final boolean isApprovedForAllStatus) { } public Bytes encodeIsFrozen(final boolean isFrozen) { + return encodeIsFrozen(SUCCESS, isFrozen); + } + + public Bytes encodeIsFrozen(final ResponseCodeEnum status, final boolean isFrozen) { return functionResultBuilder() .forFunction(FunctionType.HAPI_IS_FROZEN) - .withStatus(SUCCESS.getNumber()) + .withStatus(status.getNumber()) .withIsFrozen(isFrozen) .build(); } public Bytes encodeGetTokenDefaultFreezeStatus(final boolean defaultFreezeStatus) { + return encodeGetTokenDefaultFreezeStatus(SUCCESS, defaultFreezeStatus); + } + + public Bytes encodeGetTokenDefaultFreezeStatus(final ResponseCodeEnum status, final boolean defaultFreezeStatus) { return functionResultBuilder() .forFunction(FunctionType.GET_TOKEN_DEFAULT_FREEZE_STATUS) - .withStatus(SUCCESS.getNumber()) + .withStatus(status.getNumber()) .withGetTokenDefaultFreezeStatus(defaultFreezeStatus) .build(); } public Bytes encodeGetTokenDefaultKycStatus(final boolean defaultKycStatus) { + return encodeGetTokenDefaultKycStatus(SUCCESS, defaultKycStatus); + } + + public Bytes encodeGetTokenDefaultKycStatus(final ResponseCodeEnum status, final boolean defaultKycStatus) { return functionResultBuilder() .forFunction(FunctionType.GET_TOKEN_DEFAULT_KYC_STATUS) - .withStatus(SUCCESS.getNumber()) + .withStatus(status.getNumber()) .withGetTokenDefaultKycStatus(defaultKycStatus) .build(); } public Bytes encodeIsKyc(final boolean isKyc) { + return encodeIsKyc(SUCCESS, isKyc); + } + + public Bytes encodeIsKyc(final ResponseCodeEnum status, final boolean isKyc) { return functionResultBuilder() .forFunction(FunctionType.HAPI_IS_KYC) - .withStatus(SUCCESS.getNumber()) + .withStatus(status.getNumber()) .withIsKyc(isKyc) .build(); } public Bytes encodeIsToken(final boolean isToken) { + return encodeIsToken(SUCCESS, isToken); + } + + public Bytes encodeIsToken(final ResponseCodeEnum status, final boolean isToken) { return functionResultBuilder() .forFunction(FunctionType.HAPI_IS_TOKEN) - .withStatus(SUCCESS.getNumber()) + .withStatus(status.getNumber()) .withIsToken(isToken) .build(); } @@ -171,50 +196,75 @@ public Bytes encodeGetApproved(final Address approved) { } public Bytes encodeGetTokenInfo(final EvmTokenInfo tokenInfo) { + return encodeGetTokenInfo(SUCCESS, tokenInfo); + } + + public Bytes encodeGetTokenInfo(final ResponseCodeEnum status, final EvmTokenInfo tokenInfo) { return functionResultBuilder() .forFunction(FunctionType.HAPI_GET_TOKEN_INFO) - .withStatus(SUCCESS.getNumber()) + .withStatus(status.getNumber()) .withTokenInfo(tokenInfo) .build(); } public Bytes encodeGetFungibleTokenInfo(final EvmTokenInfo tokenInfo) { + return encodeGetFungibleTokenInfo(SUCCESS, tokenInfo); + } + + public Bytes encodeGetFungibleTokenInfo(final ResponseCodeEnum status, final EvmTokenInfo tokenInfo) { return functionResultBuilder() .forFunction(FunctionType.HAPI_GET_FUNGIBLE_TOKEN_INFO) - .withStatus(SUCCESS.getNumber()) + .withStatus(status.getNumber()) .withTokenInfo(tokenInfo) .build(); } public Bytes encodeTokenGetCustomFees(final List customFees) { + return encodeTokenGetCustomFees(SUCCESS, customFees); + } + + public Bytes encodeTokenGetCustomFees(final ResponseCodeEnum status, final List customFees) { return functionResultBuilder() .forFunction(FunctionType.HAPI_GET_TOKEN_CUSTOM_FEES) - .withStatus(SUCCESS.getNumber()) + .withStatus(status.getNumber()) .withCustomFees(customFees) .build(); } public Bytes encodeGetNonFungibleTokenInfo(final EvmTokenInfo tokenInfo, final EvmNftInfo nonFungibleTokenInfo) { + return encodeGetNonFungibleTokenInfo(SUCCESS, tokenInfo, nonFungibleTokenInfo); + } + + public Bytes encodeGetNonFungibleTokenInfo( + final ResponseCodeEnum status, final EvmTokenInfo tokenInfo, final EvmNftInfo nonFungibleTokenInfo) { return functionResultBuilder() .forFunction(FunctionType.HAPI_GET_NON_FUNGIBLE_TOKEN_INFO) - .withStatus(SUCCESS.getNumber()) + .withStatus(status.getNumber()) .withTokenInfo(tokenInfo) .withNftTokenInfo(nonFungibleTokenInfo) .build(); } public Bytes encodeGetTokenExpiryInfo(final TokenExpiryInfo tokenExpiryWrapper) { + return encodeGetTokenExpiryInfo(SUCCESS, tokenExpiryWrapper); + } + + public Bytes encodeGetTokenExpiryInfo(final ResponseCodeEnum status, final TokenExpiryInfo tokenExpiryWrapper) { return functionResultBuilder() .forFunction(FunctionType.HAPI_GET_TOKEN_EXPIRY_INFO) - .withStatus(SUCCESS.getNumber()) + .withStatus(status.getNumber()) .withExpiry(tokenExpiryWrapper) .build(); } public Bytes encodeGetTokenKey(final EvmKey keyValue) { + return encodeGetTokenKey(SUCCESS, keyValue); + } + + public Bytes encodeGetTokenKey(final ResponseCodeEnum status, final EvmKey keyValue) { return functionResultBuilder() .forFunction(FunctionType.HAPI_GET_TOKEN_KEY) - .withStatus(SUCCESS.getNumber()) + .withStatus(status.getNumber()) .withKey(keyValue) .build(); } diff --git a/hedera-node/hedera-evm/src/main/java/com/hedera/node/app/service/evm/store/contracts/precompile/codec/EvmNftInfo.java b/hedera-node/hedera-evm/src/main/java/com/hedera/node/app/service/evm/store/contracts/precompile/codec/EvmNftInfo.java index 2763654c456c..485b8f2ccea3 100644 --- a/hedera-node/hedera-evm/src/main/java/com/hedera/node/app/service/evm/store/contracts/precompile/codec/EvmNftInfo.java +++ b/hedera-node/hedera-evm/src/main/java/com/hedera/node/app/service/evm/store/contracts/precompile/codec/EvmNftInfo.java @@ -29,7 +29,14 @@ public class EvmNftInfo { private Address spender; private byte[] ledgerId; - public EvmNftInfo() {} + public EvmNftInfo() { + this.serialNumber = 0L; + this.account = Address.ZERO; + this.creationTime = 0; + this.metadata = new byte[0]; + this.spender = Address.ZERO; + this.ledgerId = new byte[0]; + } public EvmNftInfo( long serialNumber, diff --git a/hedera-node/hedera-evm/src/main/java/com/hedera/node/app/service/evm/store/contracts/precompile/codec/EvmTokenInfo.java b/hedera-node/hedera-evm/src/main/java/com/hedera/node/app/service/evm/store/contracts/precompile/codec/EvmTokenInfo.java index 5d36e167c43f..4101479a128d 100644 --- a/hedera-node/hedera-evm/src/main/java/com/hedera/node/app/service/evm/store/contracts/precompile/codec/EvmTokenInfo.java +++ b/hedera-node/hedera-evm/src/main/java/com/hedera/node/app/service/evm/store/contracts/precompile/codec/EvmTokenInfo.java @@ -16,6 +16,7 @@ package com.hedera.node.app.service.evm.store.contracts.precompile.codec; +import java.util.ArrayList; import java.util.List; import org.hyperledger.besu.datatypes.Address; @@ -72,6 +73,29 @@ public EvmTokenInfo( this.expiry = expiry; } + public EvmTokenInfo() { + this.ledgerId = new byte[0]; + this.name = ""; + this.symbol = ""; + this.memo = ""; + this.treasury = Address.ZERO; + this.supplyType = 0; + this.deleted = false; + this.totalSupply = 0; + this.maxSupply = 0; + this.decimals = 0; + this.expiry = 0; + this.customFees = new ArrayList<>(); + this.adminKey = new EvmKey(); + this.kycKey = new EvmKey(); + this.freezeKey = new EvmKey(); + this.wipeKey = new EvmKey(); + this.supplyKey = new EvmKey(); + this.feeScheduleKey = new EvmKey(); + this.pauseKey = new EvmKey(); + this.autoRenewAccount = Address.ZERO; + } + public void setCustomFees(List customFees) { this.customFees = customFees; } diff --git a/hedera-node/hedera-evm/src/main/java/com/hedera/node/app/service/evm/store/contracts/precompile/codec/TokenExpiryInfo.java b/hedera-node/hedera-evm/src/main/java/com/hedera/node/app/service/evm/store/contracts/precompile/codec/TokenExpiryInfo.java index 38fa8b0d585c..2213453c7986 100644 --- a/hedera-node/hedera-evm/src/main/java/com/hedera/node/app/service/evm/store/contracts/precompile/codec/TokenExpiryInfo.java +++ b/hedera-node/hedera-evm/src/main/java/com/hedera/node/app/service/evm/store/contracts/precompile/codec/TokenExpiryInfo.java @@ -30,6 +30,12 @@ public TokenExpiryInfo(long second, Address autoRenewAccount, long autoRenewPeri this.autoRenewPeriod = autoRenewPeriod; } + public TokenExpiryInfo() { + this.second = 0; + this.autoRenewAccount = Address.ZERO; + this.autoRenewPeriod = 0; + } + public long getSecond() { return second; } diff --git a/hedera-node/hedera-evm/src/test/java/com/hedera/node/app/service/evm/contracts/operations/HederaExtCodeHashOperationV038Test.java b/hedera-node/hedera-evm/src/test/java/com/hedera/node/app/service/evm/contracts/operations/HederaExtCodeHashOperationV038Test.java index 9410504dffa6..083ebbf84c20 100644 --- a/hedera-node/hedera-evm/src/test/java/com/hedera/node/app/service/evm/contracts/operations/HederaExtCodeHashOperationV038Test.java +++ b/hedera-node/hedera-evm/src/test/java/com/hedera/node/app/service/evm/contracts/operations/HederaExtCodeHashOperationV038Test.java @@ -86,6 +86,7 @@ void setUp() { @Test void executeResolvesToInvalidSolidityAddress() { + givenMessageFrameWithRemainingGasNoUpdater(ACTUAL_COST); given(mf.popStackItem()).willReturn(ETH_ADDRESS_INSTANCE); given(addressValidator.test(any(), any())).willReturn(false); given(evmProperties.callsToNonExistingEntitiesEnabled(any())).willReturn(false); @@ -98,7 +99,7 @@ void executeResolvesToInvalidSolidityAddress() { @Test void executeResolvesToInvalidSolidityAddressAndcallsToNonExistingEntitiesEnabledFalse() { - given(mf.popStackItem()).willReturn(ETH_ADDRESS_INSTANCE); + givenMessageFrameWithRemainingGasNoUpdater(ACTUAL_COST); given(addressValidator.test(any(), any())).willReturn(false); given(evmProperties.callsToNonExistingEntitiesEnabled(any())).willReturn(false); @@ -110,9 +111,7 @@ void executeResolvesToInvalidSolidityAddressAndcallsToNonExistingEntitiesEnabled @Test void executeResolvesToInsufficientGas() { - givenMessageFrameWithRemainingGas(ACTUAL_COST - 1L); - given(addressValidator.test(any(), any())).willReturn(true); - given(evmProperties.callsToNonExistingEntitiesEnabled(any())).willReturn(false); + givenMessageFrameWithRemainingGasNoUpdater(ACTUAL_COST - 1L); var opResult = subject.execute(mf, evm); @@ -137,6 +136,9 @@ void executeHappyPathWithPrecompileAccount() { // given subject = new HederaExtCodeHashOperationV038(gasCalculator, addressValidator, a -> true, evmProperties); given(mf.popStackItem()).willReturn(ETH_ADDRESS_INSTANCE); + given(mf.warmUpAddress(ETH_ADDRESS_INSTANCE)).willReturn(true); + given(mf.getRemainingGas()).willReturn(ACTUAL_COST); + // when var opResult = subject.execute(mf, evm); // then @@ -183,6 +185,7 @@ void executeThrowsInsufficientStackItems() { void executeThrowsTooManyStackItems() { // given subject = new HederaExtCodeHashOperationV038(gasCalculator, addressValidator, a -> true, evmProperties); + givenMessageFrameWithRemainingGasNoUpdater(ACTUAL_COST); given(mf.popStackItem()).willReturn(ETH_ADDRESS_INSTANCE); doThrow(OverflowException.class).when(mf).pushStackItem(any(Bytes.class)); // when @@ -199,4 +202,10 @@ private void givenMessageFrameWithRemainingGas(long gas) { given(mf.getRemainingGas()).willReturn(gas); given(worldUpdater.get(ETH_ADDRESS_INSTANCE)).willReturn(account); } + + private void givenMessageFrameWithRemainingGasNoUpdater(long gas) { + given(mf.popStackItem()).willReturn(ETH_ADDRESS_INSTANCE); + given(mf.warmUpAddress(ETH_ADDRESS_INSTANCE)).willReturn(true); + given(mf.getRemainingGas()).willReturn(gas); + } } diff --git a/hedera-node/hedera-file-service-impl/src/main/java/com/hedera/node/app/service/file/impl/handlers/FileCreateHandler.java b/hedera-node/hedera-file-service-impl/src/main/java/com/hedera/node/app/service/file/impl/handlers/FileCreateHandler.java index ffd74b59100f..2ba9286cd30e 100644 --- a/hedera-node/hedera-file-service-impl/src/main/java/com/hedera/node/app/service/file/impl/handlers/FileCreateHandler.java +++ b/hedera-node/hedera-file-service-impl/src/main/java/com/hedera/node/app/service/file/impl/handlers/FileCreateHandler.java @@ -46,6 +46,7 @@ import com.hedera.node.app.spi.workflows.PreHandleContext; import com.hedera.node.app.spi.workflows.TransactionHandler; import com.hedera.node.config.data.FilesConfig; +import com.hedera.node.config.data.HederaConfig; import edu.umd.cs.findbugs.annotations.NonNull; import javax.inject.Inject; import javax.inject.Singleton; @@ -130,11 +131,18 @@ public void handle(@NonNull final HandleContext handleContext) throws HandleExce handleContext.attributeValidator().validateMemo(fileCreateTransactionBody.memo()); builder.memo(fileCreateTransactionBody.memo()); + final var hederaConfig = handleContext.configuration().getConfigData(HederaConfig.class); builder.keys(fileCreateTransactionBody.keys()); final var fileId = FileID.newBuilder() .fileNum(handleContext.newEntityNum()) - .shardNum(fileCreateTransactionBody.shardIDOrThrow().shardNum()) - .realmNum(fileCreateTransactionBody.realmIDOrThrow().realmNum()) + .shardNum( + fileCreateTransactionBody.hasShardID() + ? fileCreateTransactionBody.shardIDOrThrow().shardNum() + : hederaConfig.shard()) + .realmNum( + fileCreateTransactionBody.hasRealmID() + ? fileCreateTransactionBody.realmIDOrThrow().realmNum() + : hederaConfig.realm()) .build(); builder.fileId(fileId); validateContent(PbjConverter.asBytes(fileCreateTransactionBody.contents()), fileServiceConfig); diff --git a/hedera-node/hedera-file-service-impl/src/test/java/com/hedera/node/app/service/file/impl/test/handlers/FileCreateTest.java b/hedera-node/hedera-file-service-impl/src/test/java/com/hedera/node/app/service/file/impl/test/handlers/FileCreateTest.java index 603601466beb..662f90766bba 100644 --- a/hedera-node/hedera-file-service-impl/src/test/java/com/hedera/node/app/service/file/impl/test/handlers/FileCreateTest.java +++ b/hedera-node/hedera-file-service-impl/src/test/java/com/hedera/node/app/service/file/impl/test/handlers/FileCreateTest.java @@ -60,6 +60,7 @@ import com.hedera.node.app.spi.workflows.HandleException; import com.hedera.node.app.spi.workflows.PreCheckException; import com.hedera.node.config.data.FilesConfig; +import com.hedera.node.config.data.HederaConfig; import com.hedera.node.config.testfixtures.HederaTestConfigBuilder; import com.hedera.node.config.types.LongPair; import com.hedera.pbj.runtime.io.buffer.Bytes; @@ -74,8 +75,7 @@ @ExtendWith(MockitoExtension.class) class FileCreateTest extends FileTestBase { static final AccountID ACCOUNT_ID_3 = AccountID.newBuilder().accountNum(3L).build(); - private static final AccountID AUTO_RENEW_ACCOUNT = - AccountID.newBuilder().accountNum(4L).build(); + private static final Configuration DEFAULT_CONFIG = HederaTestConfigBuilder.createConfig(); @Mock private ReadableAccountStore accountStore; @@ -130,7 +130,7 @@ void setUp() { fileStore = new WritableFileStore(writableStates); config = HederaTestConfigBuilder.createConfig().getConfigData(FilesConfig.class); lenient().when(handleContext.configuration()).thenReturn(configuration); - lenient().when(configuration.getConfigData(any())).thenReturn(config); + lenient().when(configuration.getConfigData(FilesConfig.class)).thenReturn(config); lenient().when(handleContext.writableStore(WritableFileStore.class)).thenReturn(fileStore); } @@ -232,6 +232,8 @@ void handleWorksAsExpected() { void handleDoesntRequireKeys() { final var txBody = newCreateTxn(keys, expirationTime); + given(configuration.getConfigData(HederaConfig.class)) + .willReturn(DEFAULT_CONFIG.getConfigData(HederaConfig.class)); given(handleContext.body()).willReturn(txBody); given(handleContext.attributeValidator()).willReturn(validator); given(handleContext.writableStore(WritableFileStore.class)).willReturn(writableStore); diff --git a/hedera-node/hedera-mono-service/build.gradle.kts b/hedera-node/hedera-mono-service/build.gradle.kts index 0ea6f9d910a2..356553143f4e 100644 --- a/hedera-node/hedera-mono-service/build.gradle.kts +++ b/hedera-node/hedera-mono-service/build.gradle.kts @@ -17,7 +17,7 @@ plugins { id("com.hedera.hashgraph.conventions") id("com.hedera.hashgraph.benchmark-conventions") - id("java-test-fixtures") + id("com.hedera.hashgraph.java-test-fixtures") } description = "Hedera Application - MONO Service Implementation" diff --git a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/contracts/execution/EvmTxProcessor.java b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/contracts/execution/EvmTxProcessor.java index cfd122b6bdfa..2549427d4aea 100644 --- a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/contracts/execution/EvmTxProcessor.java +++ b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/contracts/execution/EvmTxProcessor.java @@ -117,7 +117,7 @@ protected TransactionProcessingResult execute( super.setupFields(payload, contractCreation); - final var chargingResult = chargeForGas( + final var chargingResult = chargeForGasAndIncrementEthereumNonce( gasCost, upfrontCost, value, @@ -247,7 +247,7 @@ private void sendToCoinbase( mutableCoinbase.incrementBalance(Wei.of(amount * gasPrice)); } - private ChargingResult chargeForGas( + private ChargingResult chargeForGasAndIncrementEthereumNonce( final Wei gasCost, final Wei upfrontCost, final long value, @@ -308,7 +308,14 @@ private ChargingResult chargeForGas( final var senderCanAffordValue = senderAccount.getBalance().compareTo(Wei.of(value)) >= 0; validateTrue(senderCanAffordValue, INSUFFICIENT_PAYER_BALANCE); } + + // increment sender's ethereum nonce right after all checks + // and before entering the evm for non-static calls + if (relayer != null) { + senderAccount.incrementNonce(); + } } + return new ChargingResult(senderAccount, mutableRelayer, allowanceCharged); } @@ -325,7 +332,7 @@ private void handleResourceLimitExceeded( final Wei upfrontCost) { // Consume all gas on resource exhaustion, using a clean updater final var feesOnlyUpdater = (HederaWorldState.Updater) worldState.updater(); - chargeForGas( + chargeForGasAndIncrementEthereumNonce( gasCost, upfrontCost, value, diff --git a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/contracts/execution/TransactionProcessingResult.java b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/contracts/execution/TransactionProcessingResult.java index 29433f27ff82..126a00f8d28a 100644 --- a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/contracts/execution/TransactionProcessingResult.java +++ b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/contracts/execution/TransactionProcessingResult.java @@ -43,6 +43,7 @@ public class TransactionProcessingResult extends HederaEvmTransactionProcessingR private List createdContracts = Collections.emptyList(); private Map contractNonces = new TreeMap<>(); + private Long signerNonce; public static TransactionProcessingResult failed( final long gasUsed, @@ -143,6 +144,14 @@ public void setActions(final List actions) { this.actions = actions; } + public Long getSignerNonce() { + return signerNonce; + } + + public void setSignerNonce(Long signerNonce) { + this.signerNonce = signerNonce; + } + /** * Converts the {@link TransactionProcessingResult} into {@link ContractFunctionResult} gRPC * model. diff --git a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/contracts/operation/HederaSelfDestructOperationV046.java b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/contracts/operation/HederaSelfDestructOperationV046.java index 2bb118fcf8bf..336c597a36d9 100644 --- a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/contracts/operation/HederaSelfDestructOperationV046.java +++ b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/contracts/operation/HederaSelfDestructOperationV046.java @@ -74,6 +74,9 @@ public OperationResult execute(final MessageFrame frame, final EVM evm) { final var updater = (HederaStackedWorldStateUpdater) frame.getWorldUpdater(); final var beneficiaryAddress = Words.toAddress(frame.getStackItem(0)); final var toBeDeleted = frame.getRecipientAddress(); + if (frame.isStatic()) { + return reversionWith(null, ExceptionalHaltReason.ILLEGAL_STATE_CHANGE); + } if (systemAccountDetector.test(beneficiaryAddress) || !addressValidator.test(beneficiaryAddress, frame)) { return reversionWith(null, HederaExceptionalHaltReason.INVALID_SOLIDITY_ADDRESS); } diff --git a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/fees/charging/NarratedLedgerCharging.java b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/fees/charging/NarratedLedgerCharging.java index fe84f1d7c9c6..fae099a85152 100644 --- a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/fees/charging/NarratedLedgerCharging.java +++ b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/fees/charging/NarratedLedgerCharging.java @@ -205,6 +205,7 @@ public void chargeSubmittingNodeUpToNetworkFee() { long chargeableNetworkFee = Math.min(networkFee, effPayerStartingBalance); ledger.adjustBalance(grpcNodeId, -chargeableNetworkFee); feeDistribution.distributeChargedFee(+chargeableNetworkFee, ledger.getAccountsLedger()); + totalCharged = chargeableNetworkFee; } private void initEffPayerBalance(EntityNum effPayerId) { diff --git a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/state/migration/AccountStateTranslator.java b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/state/migration/AccountStateTranslator.java index fdfd5008ddea..a232aadc60f4 100644 --- a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/state/migration/AccountStateTranslator.java +++ b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/state/migration/AccountStateTranslator.java @@ -172,8 +172,6 @@ public static Account accountFromOnDiskAccount(@NonNull final OnDiskAccount acco .stakeAtStartOfLastRewardedPeriod(account.totalStakeAtStartOfLastRewardedPeriod()) .stakedToMe(account.getStakedToMe()) .stakePeriodStart(account.getStakePeriodStart()) - .stakedAccountId(stakedAccountId) - .stakedNodeId(stakedNodeId) .firstContractStorageKey(firstContractStorageKey) .headNftId(NftID.newBuilder() .tokenId(TokenID.newBuilder() diff --git a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/state/serdes/IoUtils.java b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/state/serdes/IoUtils.java index 2815798fdfe3..970434444471 100644 --- a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/state/serdes/IoUtils.java +++ b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/state/serdes/IoUtils.java @@ -19,6 +19,7 @@ import com.hedera.node.app.service.mono.legacy.core.jproto.JKey; import com.hedera.node.app.service.mono.legacy.core.jproto.JKeySerializer; import com.swirlds.common.io.SelfSerializable; +import com.swirlds.common.io.streams.AugmentedDataInputStream; import com.swirlds.common.io.streams.SerializableDataInputStream; import com.swirlds.common.io.streams.SerializableDataOutputStream; import edu.umd.cs.findbugs.annotations.Nullable; @@ -41,6 +42,16 @@ public static void writeNullableString(@Nullable final String msg, final Seriali writeNullable(msg, out, (msgVal, outVal) -> outVal.writeNormalisedString(msgVal)); } + @Nullable + public static Long readNullableLong(final SerializableDataInputStream in) throws IOException { + return readNullable(in, AugmentedDataInputStream::readLong); + } + + public static void writeNullableLong(@Nullable final Long num, final SerializableDataOutputStream out) + throws IOException { + writeNullable(num, out, (numVal, outVal) -> outVal.writeLong(numVal)); + } + @Nullable public static T readNullable(final SerializableDataInputStream in, final IoReadingFunction reader) throws IOException { diff --git a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/state/submerkle/EvmFnResult.java b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/state/submerkle/EvmFnResult.java index 5778ac773179..e67727fcca05 100644 --- a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/state/submerkle/EvmFnResult.java +++ b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/state/submerkle/EvmFnResult.java @@ -17,8 +17,10 @@ package com.hedera.node.app.service.mono.state.submerkle; import static com.hedera.node.app.service.evm.accounts.HederaEvmContractAliases.isMirror; +import static com.hedera.node.app.service.mono.state.serdes.IoUtils.readNullableLong; import static com.hedera.node.app.service.mono.state.serdes.IoUtils.readNullableSerializable; import static com.hedera.node.app.service.mono.state.serdes.IoUtils.readNullableString; +import static com.hedera.node.app.service.mono.state.serdes.IoUtils.writeNullableLong; import static com.hedera.node.app.service.mono.state.serdes.IoUtils.writeNullableSerializable; import static com.hedera.node.app.service.mono.state.serdes.IoUtils.writeNullableString; import static com.swirlds.common.utility.CommonUtils.hex; @@ -27,6 +29,7 @@ import com.google.common.base.MoreObjects; import com.google.protobuf.ByteString; import com.google.protobuf.BytesValue; +import com.google.protobuf.Int64Value; import com.hedera.node.app.hapi.utils.ethereum.EthTxData; import com.hedera.node.app.service.mono.contracts.execution.TransactionProcessingResult; import com.hederahashgraph.api.proto.java.ContractFunctionResult; @@ -54,7 +57,8 @@ public class EvmFnResult implements SelfSerializable { static final int RELEASE_0260_VERSION = 5; static final int RELEASE_0290_VERSION = 6; static final int RELEASE_0400_VERSION = 7; - static final int CURRENT_VERSION = RELEASE_0400_VERSION; + static final int RELEASE_0470_VERSION = 8; + static final int CURRENT_VERSION = RELEASE_0470_VERSION; static final long RUNTIME_CONSTRUCTABLE_ID = 0x2055c5c03ff84eb4L; @@ -79,6 +83,7 @@ public class EvmFnResult implements SelfSerializable { private long amount; private byte[] functionParameters = EMPTY; private EntityId senderId; + private Long signerNonce; public EvmFnResult() { // RuntimeConstructable @@ -105,12 +110,13 @@ private static EvmFnResult from(final TransactionProcessingResult result, final recipient, serializableIdsFrom(result.getCreatedContracts()), serializableContractNoncesFrom(result.getContractNonces()), - evmAddress); + evmAddress, + result.getSignerNonce()); } else { final var error = result.getRevertReason() .map(Object::toString) .orElse(result.getHaltReason().map(Object::toString).orElse(null)); - return failure(result.getGasUsed(), error); + return failure(result.getGasUsed(), error, result.getSignerNonce()); } } @@ -127,7 +133,8 @@ public EvmFnResult( final long gas, final long amount, final byte[] functionParameters, - final EntityId senderId) { + final EntityId senderId, + final Long signerNonce) { this.contractId = contractId; this.result = result; this.error = error; @@ -141,6 +148,7 @@ public EvmFnResult( this.amount = amount; this.functionParameters = functionParameters; this.senderId = senderId; + this.signerNonce = signerNonce; } /* --- SelfSerializable --- */ @@ -197,6 +205,9 @@ public void deserialize(final SerializableDataInputStream in, final int version) if (version >= RELEASE_0400_VERSION) { contractNonces = in.readSerializableList(MAX_CREATED_CONTRACT_NONCES, true, ContractNonceInfo::new); } + if (version >= RELEASE_0470_VERSION) { + signerNonce = readNullableLong(in); + } } @Override @@ -214,6 +225,7 @@ public void serialize(final SerializableDataOutputStream out) throws IOException out.writeByteArray(functionParameters); writeNullableSerializable(senderId, out); out.writeSerializableList(contractNonces, true, true); + writeNullableLong(signerNonce, out); } /* --- Object --- */ @@ -238,7 +250,8 @@ public boolean equals(final Object o) { && gas == that.gas && amount == that.amount && Arrays.equals(functionParameters, that.functionParameters) - && Objects.equals(senderId, that.senderId); + && Objects.equals(senderId, that.senderId) + && Objects.equals(signerNonce, that.signerNonce); } @Override @@ -265,6 +278,7 @@ public String toString() { .add("amount", amount) .add("functionParameters", hex(functionParameters)) .add("senderId", senderId) + .add("signerNonce", signerNonce) .toString(); } @@ -325,6 +339,10 @@ public EntityId getSenderId() { return senderId; } + public Long getSignerNonce() { + return signerNonce; + } + public void setEvmAddress(final byte[] evmAddress) { this.evmAddress = evmAddress; } @@ -345,6 +363,10 @@ public void setSenderId(final EntityId senderId) { this.senderId = senderId; } + public void setSignerNonce(Long signerNonce) { + this.signerNonce = signerNonce; + } + public void setContractNonces(List contractNonces) { this.contractNonces = contractNonces; } @@ -391,6 +413,9 @@ public ContractFunctionResult toGrpc() { if (senderId != null) { grpc.setSenderId(senderId.toGrpcAccountId()); } + if (signerNonce != null) { + grpc.setSignerNonce(Int64Value.newBuilder().setValue(signerNonce).build()); + } return grpc.build(); } @@ -433,7 +458,8 @@ private static EvmFnResult success( final Address recipient, final List createdContractIds, final List contractNonces, - final byte[] evmAddress) { + final byte[] evmAddress, + final Long signerNonce) { return new EvmFnResult( isMirror(recipient.toArray()) ? EntityId.fromAddress(recipient) : null, output.toArrayUnsafe(), @@ -447,10 +473,11 @@ private static EvmFnResult success( 0L, 0L, EMPTY, - null); + null, + signerNonce); } - private static EvmFnResult failure(final long gasUsed, final String error) { + private static EvmFnResult failure(final long gasUsed, final String error, final Long signerNonce) { return new EvmFnResult( null, EMPTY, @@ -464,6 +491,7 @@ private static EvmFnResult failure(final long gasUsed, final String error) { 0L, 0L, EMPTY, - null); + null, + signerNonce); } } diff --git a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/state/submerkle/ExpirableTxnRecord.java b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/state/submerkle/ExpirableTxnRecord.java index 4a3124810401..21891dbc9f72 100644 --- a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/state/submerkle/ExpirableTxnRecord.java +++ b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/state/submerkle/ExpirableTxnRecord.java @@ -78,7 +78,8 @@ public class ExpirableTxnRecord implements FastCopyable, SerializableHashable { static final int RELEASE_0280_VERSION = 11; // Debatable -- 0.33/0.34? static final int RELEASE_0340_VERSION = 12; - static final int CURRENT_VERSION = RELEASE_0340_VERSION; + static final int RELEASE_0470_VERSION = 13; + static final int CURRENT_VERSION = RELEASE_0470_VERSION; static final long RUNTIME_CONSTRUCTABLE_ID = 0x8b9ede7ca8d8db93L; static final int MAX_MEMO_BYTES = 32 * 1_024; diff --git a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/state/virtual/schedule/ScheduleVirtualValue.java b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/state/virtual/schedule/ScheduleVirtualValue.java index 680df8873f9c..889017273601 100644 --- a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/state/virtual/schedule/ScheduleVirtualValue.java +++ b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/state/virtual/schedule/ScheduleVirtualValue.java @@ -499,6 +499,10 @@ public RichInstant calculatedExpirationTime() { return calculatedExpirationTime; } + public Set notary() { + return notary; + } + public void setCalculatedExpirationTime(final RichInstant calculatedExpirationTime) { throwIfImmutable("Cannot change this schedule's payer if it's immutable."); this.calculatedExpirationTime = calculatedExpirationTime; diff --git a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/ExchangeRatePrecompiledContract.java b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/ExchangeRatePrecompiledContract.java index b64c680ac7fe..8adf03f65bdc 100644 --- a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/ExchangeRatePrecompiledContract.java +++ b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/ExchangeRatePrecompiledContract.java @@ -16,6 +16,9 @@ package com.hedera.node.app.service.mono.store.contracts.precompile; +import static com.hedera.node.app.service.evm.utils.ValidationUtils.validateTrue; +import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.INVALID_TRANSACTION_BODY; + import com.esaulpaugh.headlong.abi.BigIntegerType; import com.esaulpaugh.headlong.abi.TypeFactory; import com.hedera.node.app.service.mono.context.properties.GlobalDynamicProperties; @@ -82,6 +85,7 @@ public long gasRequirement(Bytes bytes) { @Override public Bytes compute(final Bytes input, final MessageFrame frame) { try { + validateTrue(input.size() >= 4, INVALID_TRANSACTION_BODY); final var selector = input.getInt(0); final var amount = biValueFrom(input); final var activeRate = exchange.activeRate(consensusNow.get()); diff --git a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/HTSPrecompiledContract.java b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/HTSPrecompiledContract.java index be0e76392782..dd3bb91eade9 100644 --- a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/HTSPrecompiledContract.java +++ b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/HTSPrecompiledContract.java @@ -313,7 +313,9 @@ void prepareFields(final MessageFrame frame) { void prepareComputation(Bytes input, final UnaryOperator aliasResolver) { this.precompile = null; this.transactionBody = null; - + if (input.size() < 4) { + return; + } final int functionId = input.getInt(0); this.gasRequirement = 0L; diff --git a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/PrngSystemPrecompiledContract.java b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/PrngSystemPrecompiledContract.java index db1d0dc34795..0cbd14528c91 100644 --- a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/PrngSystemPrecompiledContract.java +++ b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/PrngSystemPrecompiledContract.java @@ -22,6 +22,7 @@ import static com.hederahashgraph.api.proto.java.HederaFunctionality.ContractCall; import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.FAIL_INVALID; import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.INSUFFICIENT_GAS; +import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.INVALID_TRANSACTION_BODY; import com.google.common.annotations.VisibleForTesting; import com.hedera.node.app.service.evm.exceptions.InvalidTransactionException; @@ -135,6 +136,7 @@ public PrecompileContractResult computePrecompile(final Bytes input, final Messa Pair computePrngResult( final long gasNeeded, final Bytes input, final MessageFrame frame) { try { + validateTrue(input.size() >= 4, INVALID_TRANSACTION_BODY); validateTrue(frame.getRemainingGas() >= gasNeeded, INSUFFICIENT_GAS); final var randomNum = generatePseudoRandomData(input); return Pair.of(PrecompiledContract.PrecompileContractResult.success(randomNum), null); diff --git a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/AllowancePrecompile.java b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/AllowancePrecompile.java index 33cf9388996c..0074660df1a0 100644 --- a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/AllowancePrecompile.java +++ b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/AllowancePrecompile.java @@ -43,6 +43,7 @@ import com.hedera.node.app.service.mono.store.contracts.precompile.codec.EncodingFacade; import com.hedera.node.app.service.mono.store.contracts.precompile.utils.PrecompilePricingUtils; import com.hederahashgraph.api.proto.java.AccountID; +import com.hederahashgraph.api.proto.java.ResponseCodeEnum; import com.hederahashgraph.api.proto.java.TokenID; import com.hederahashgraph.api.proto.java.TransactionBody; import java.util.Map; @@ -99,6 +100,11 @@ public Bytes getSuccessResultFor(final ExpirableTxnRecord.Builder childRecord) { : evmEncoder.encodeAllowance(value); } + @Override + public Bytes getFailureResultFor(final ResponseCodeEnum status) { + return tokenId == null ? encoder.encodeAllowance(status.getNumber(), 0) : evmEncoder.encodeAllowance(0); + } + public static TokenAllowanceWrapper decodeTokenAllowance( final Bytes input, final TokenID impliedTokenId, final UnaryOperator aliasResolver) { final var offset = impliedTokenId == null ? 1 : 0; diff --git a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/FungibleTokenInfoPrecompile.java b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/FungibleTokenInfoPrecompile.java index 3d094585ca25..2ee68c0a1545 100644 --- a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/FungibleTokenInfoPrecompile.java +++ b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/FungibleTokenInfoPrecompile.java @@ -20,6 +20,7 @@ import static com.hedera.node.app.service.mono.store.contracts.precompile.codec.DecodingFacade.convertAddressBytesToTokenID; import com.hedera.node.app.service.evm.store.contracts.precompile.codec.EvmEncodingFacade; +import com.hedera.node.app.service.evm.store.contracts.precompile.codec.EvmTokenInfo; import com.hedera.node.app.service.evm.store.contracts.precompile.codec.TokenInfoWrapper; import com.hedera.node.app.service.evm.store.contracts.precompile.impl.EvmFungibleTokenInfoPrecompile; import com.hedera.node.app.service.mono.context.primitives.StateView; @@ -64,6 +65,12 @@ public Bytes getSuccessResultFor(final ExpirableTxnRecord.Builder childRecord) { return evmEncoder.encodeGetFungibleTokenInfo(tokenInfo); } + @Override + public Bytes getFailureResultFor(final ResponseCodeEnum status) { + final var tokenInfo = new EvmTokenInfo(); + return evmEncoder.encodeGetFungibleTokenInfo(status, tokenInfo); + } + public static TokenInfoWrapper decodeGetFungibleTokenInfo(final Bytes input) { final var rawTokenInfoWrapper = EvmFungibleTokenInfoPrecompile.decodeGetFungibleTokenInfo(input); return TokenInfoWrapper.forFungibleToken(convertAddressBytesToTokenID(rawTokenInfoWrapper.token())); diff --git a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/GetApprovedPrecompile.java b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/GetApprovedPrecompile.java index 02bfef2378a3..3da121d28967 100644 --- a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/GetApprovedPrecompile.java +++ b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/GetApprovedPrecompile.java @@ -39,12 +39,14 @@ import com.hedera.node.app.service.mono.store.contracts.precompile.codec.EncodingFacade; import com.hedera.node.app.service.mono.store.contracts.precompile.utils.PrecompilePricingUtils; import com.hedera.node.app.service.mono.store.models.NftId; +import com.hederahashgraph.api.proto.java.ResponseCodeEnum; import com.hederahashgraph.api.proto.java.TokenID; import com.hederahashgraph.api.proto.java.TransactionBody; import java.math.BigInteger; import java.util.Objects; import java.util.function.UnaryOperator; import org.apache.tuweni.bytes.Bytes; +import org.hyperledger.besu.datatypes.Address; public class GetApprovedPrecompile extends AbstractReadOnlyPrecompile implements EvmGetApprovedPrecompile { @@ -94,6 +96,13 @@ public Bytes getSuccessResultFor(final ExpirableTxnRecord.Builder childRecord) { : evmEncoder.encodeGetApproved(canonicalSpender); } + @Override + public Bytes getFailureResultFor(final ResponseCodeEnum status) { + return tokenId == null + ? encoder.encodeGetApproved(status.getNumber(), Address.ZERO) + : evmEncoder.encodeGetApproved(Address.ZERO); + } + public static GetApprovedWrapper decodeGetApproved(final Bytes input, final TokenID impliedTokenId) { final var offset = impliedTokenId == null ? 1 : 0; if (offset == 1) { diff --git a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/GetTokenDefaultFreezeStatus.java b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/GetTokenDefaultFreezeStatus.java index e10d3048cdf2..e354b651ca47 100644 --- a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/GetTokenDefaultFreezeStatus.java +++ b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/GetTokenDefaultFreezeStatus.java @@ -26,6 +26,7 @@ import com.hedera.node.app.service.mono.store.contracts.precompile.SyntheticTxnFactory; import com.hedera.node.app.service.mono.store.contracts.precompile.codec.EncodingFacade; import com.hedera.node.app.service.mono.store.contracts.precompile.utils.PrecompilePricingUtils; +import com.hederahashgraph.api.proto.java.ResponseCodeEnum; import com.hederahashgraph.api.proto.java.TokenID; import com.hederahashgraph.api.proto.java.TransactionBody; import java.util.Objects; @@ -60,6 +61,11 @@ public Bytes getSuccessResultFor(final ExpirableTxnRecord.Builder childRecord) { return evmEncoder.encodeGetTokenDefaultFreezeStatus(defaultFreezeStatus); } + @Override + public Bytes getFailureResultFor(final ResponseCodeEnum status) { + return evmEncoder.encodeGetTokenDefaultFreezeStatus(status, false); + } + public static GetTokenDefaultFreezeStatusWrapper decodeTokenDefaultFreezeStatus(final Bytes input) { final var rawGetTokenDefaultFreezeStatusWrapper = EvmGetTokenDefaultFreezeStatus.decodeTokenDefaultFreezeStatus(input); diff --git a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/GetTokenDefaultKycStatus.java b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/GetTokenDefaultKycStatus.java index fff3c9b7c6e0..8c100ffffae8 100644 --- a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/GetTokenDefaultKycStatus.java +++ b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/GetTokenDefaultKycStatus.java @@ -26,6 +26,7 @@ import com.hedera.node.app.service.mono.store.contracts.precompile.SyntheticTxnFactory; import com.hedera.node.app.service.mono.store.contracts.precompile.codec.EncodingFacade; import com.hedera.node.app.service.mono.store.contracts.precompile.utils.PrecompilePricingUtils; +import com.hederahashgraph.api.proto.java.ResponseCodeEnum; import com.hederahashgraph.api.proto.java.TokenID; import com.hederahashgraph.api.proto.java.TransactionBody; import java.util.Objects; @@ -59,6 +60,11 @@ public Bytes getSuccessResultFor(final ExpirableTxnRecord.Builder childRecord) { return evmEncoder.encodeGetTokenDefaultKycStatus(defaultKycStatus); } + @Override + public Bytes getFailureResultFor(final ResponseCodeEnum status) { + return evmEncoder.encodeGetTokenDefaultKycStatus(status, false); + } + public static GetTokenDefaultKycStatusWrapper decodeTokenDefaultKycStatus(final Bytes input) { final var rawGetTokenDefaultKycStatusWrapper = EvmGetTokenDefaultKycStatus.decodeTokenDefaultKycStatus(input); return new GetTokenDefaultKycStatusWrapper<>( diff --git a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/GetTokenExpiryInfoPrecompile.java b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/GetTokenExpiryInfoPrecompile.java index af127d290463..20c03fcdea6e 100644 --- a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/GetTokenExpiryInfoPrecompile.java +++ b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/GetTokenExpiryInfoPrecompile.java @@ -75,6 +75,12 @@ public Bytes getSuccessResultFor(final ExpirableTxnRecord.Builder childRecord) { return evmEncoder.encodeGetTokenExpiryInfo(expiryInfo); } + @Override + public Bytes getFailureResultFor(final ResponseCodeEnum status) { + final var tokenExpiry = new TokenExpiryInfo(); + return evmEncoder.encodeGetTokenExpiryInfo(status, tokenExpiry); + } + public static GetTokenExpiryInfoWrapper decodeGetTokenExpiryInfo(final Bytes input) { final var rawGetTokenExpityInfoWrapper = EvmGetTokenExpiryInfoPrecompile.decodeGetTokenExpiryInfo(input); return new GetTokenExpiryInfoWrapper<>(convertAddressBytesToTokenID(rawGetTokenExpityInfoWrapper.token())); diff --git a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/GetTokenKeyPrecompile.java b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/GetTokenKeyPrecompile.java index 9655777a1fb9..99066ea83bb0 100644 --- a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/GetTokenKeyPrecompile.java +++ b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/GetTokenKeyPrecompile.java @@ -22,6 +22,7 @@ import static com.hedera.node.app.service.mono.utils.MiscUtils.asKeyUnchecked; import com.hedera.node.app.service.evm.store.contracts.precompile.codec.EvmEncodingFacade; +import com.hedera.node.app.service.evm.store.contracts.precompile.codec.EvmKey; import com.hedera.node.app.service.evm.store.contracts.precompile.codec.GetTokenKeyWrapper; import com.hedera.node.app.service.evm.store.contracts.precompile.impl.EvmGetTokenKeyPrecompile; import com.hedera.node.app.service.mono.ledger.properties.TokenProperty; @@ -69,6 +70,12 @@ public Bytes getSuccessResultFor(final ExpirableTxnRecord.Builder childRecord) { return evmEncoder.encodeGetTokenKey(evmKey); } + @Override + public Bytes getFailureResultFor(final ResponseCodeEnum status) { + final var evmKey = new EvmKey(); + return evmEncoder.encodeGetTokenKey(status, evmKey); + } + public static GetTokenKeyWrapper decodeGetTokenKey(final Bytes input) { final var rawGetTokenKeyWrapper = EvmGetTokenKeyPrecompile.decodeGetTokenKey(input); final var tokenID = convertAddressBytesToTokenID(rawGetTokenKeyWrapper.token()); diff --git a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/GetTokenTypePrecompile.java b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/GetTokenTypePrecompile.java index 4eb96d4fe6f9..000cf8cfe12f 100644 --- a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/GetTokenTypePrecompile.java +++ b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/GetTokenTypePrecompile.java @@ -62,6 +62,11 @@ public Bytes getSuccessResultFor(final ExpirableTxnRecord.Builder childRecord) { return evmEncoder.encodeGetTokenType(tokenType); } + @Override + public Bytes getFailureResultFor(final ResponseCodeEnum status) { + return evmEncoder.encodeGetTokenType(status, 0); + } + public static TokenInfoWrapper decodeGetTokenType(final Bytes input) { final var rawTokenInfoWrapper = EvmGetTokenTypePrecompile.decodeGetTokenType(input); return TokenInfoWrapper.forToken(convertAddressBytesToTokenID(rawTokenInfoWrapper.token())); diff --git a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/IsApprovedForAllPrecompile.java b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/IsApprovedForAllPrecompile.java index b5a1df3fcef3..db2aafc8d0c0 100644 --- a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/IsApprovedForAllPrecompile.java +++ b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/IsApprovedForAllPrecompile.java @@ -39,6 +39,7 @@ import com.hedera.node.app.service.mono.store.contracts.precompile.codec.EncodingFacade; import com.hedera.node.app.service.mono.store.contracts.precompile.utils.PrecompilePricingUtils; import com.hederahashgraph.api.proto.java.AccountID; +import com.hederahashgraph.api.proto.java.ResponseCodeEnum; import com.hederahashgraph.api.proto.java.TokenID; import com.hederahashgraph.api.proto.java.TransactionBody; import java.util.Objects; @@ -101,6 +102,13 @@ public Bytes getSuccessResultFor(final ExpirableTxnRecord.Builder childRecord) { : evmEncoder.encodeIsApprovedForAll(answer); } + @Override + public Bytes getFailureResultFor(final ResponseCodeEnum status) { + return tokenId == null + ? encoder.encodeIsApprovedForAll(status.getNumber(), false) + : evmEncoder.encodeIsApprovedForAll(false); + } + public static IsApproveForAllWrapper decodeIsApprovedForAll( final Bytes input, final TokenID impliedTokenId, final UnaryOperator aliasResolver) { final var offset = impliedTokenId == null ? 1 : 0; diff --git a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/IsFrozenPrecompile.java b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/IsFrozenPrecompile.java index 20cf2a2ef784..96bec2521cde 100644 --- a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/IsFrozenPrecompile.java +++ b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/IsFrozenPrecompile.java @@ -28,6 +28,7 @@ import com.hedera.node.app.service.mono.store.contracts.precompile.codec.EncodingFacade; import com.hedera.node.app.service.mono.store.contracts.precompile.utils.PrecompilePricingUtils; import com.hederahashgraph.api.proto.java.AccountID; +import com.hederahashgraph.api.proto.java.ResponseCodeEnum; import com.hederahashgraph.api.proto.java.TokenID; import com.hederahashgraph.api.proto.java.TransactionBody; import java.util.function.UnaryOperator; @@ -61,6 +62,11 @@ public Bytes getSuccessResultFor(final ExpirableTxnRecord.Builder childRecord) { return evmEncoder.encodeIsFrozen(isFrozen); } + @Override + public Bytes getFailureResultFor(final ResponseCodeEnum status) { + return evmEncoder.encodeIsFrozen(status, false); + } + public static TokenFreezeUnfreezeWrapper decodeIsFrozen( final Bytes input, final UnaryOperator aliasResolver) { final var rawTokenFreezeUnfreezeWrapper = EvmIsFrozenPrecompile.decodeIsFrozen(input); diff --git a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/IsKycPrecompile.java b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/IsKycPrecompile.java index f85ea57a05cf..8d4776494c43 100644 --- a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/IsKycPrecompile.java +++ b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/IsKycPrecompile.java @@ -28,6 +28,7 @@ import com.hedera.node.app.service.mono.store.contracts.precompile.codec.EncodingFacade; import com.hedera.node.app.service.mono.store.contracts.precompile.utils.PrecompilePricingUtils; import com.hederahashgraph.api.proto.java.AccountID; +import com.hederahashgraph.api.proto.java.ResponseCodeEnum; import com.hederahashgraph.api.proto.java.TokenID; import com.hederahashgraph.api.proto.java.TransactionBody; import java.util.function.UnaryOperator; @@ -61,6 +62,11 @@ public Bytes getSuccessResultFor(final ExpirableTxnRecord.Builder childRecord) { return evmEncoder.encodeIsKyc(isKyc); } + @Override + public Bytes getFailureResultFor(final ResponseCodeEnum status) { + return evmEncoder.encodeIsKyc(status, false); + } + public static GrantRevokeKycWrapper decodeIsKyc( final Bytes input, final UnaryOperator aliasResolver) { final var rawGrantRevokeKycWrapper = EvmIsKycPrecompile.decodeIsKyc(input); diff --git a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/IsTokenPrecompile.java b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/IsTokenPrecompile.java index c9e6b321919c..5481aa6bd19d 100644 --- a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/IsTokenPrecompile.java +++ b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/IsTokenPrecompile.java @@ -27,6 +27,7 @@ import com.hedera.node.app.service.mono.store.contracts.precompile.SyntheticTxnFactory; import com.hedera.node.app.service.mono.store.contracts.precompile.codec.EncodingFacade; import com.hedera.node.app.service.mono.store.contracts.precompile.utils.PrecompilePricingUtils; +import com.hederahashgraph.api.proto.java.ResponseCodeEnum; import com.hederahashgraph.api.proto.java.TokenID; import com.hederahashgraph.api.proto.java.TransactionBody; import java.util.function.UnaryOperator; @@ -58,6 +59,11 @@ public Bytes getSuccessResultFor(final ExpirableTxnRecord.Builder childRecord) { return evmEncoder.encodeIsToken(isToken); } + @Override + public Bytes getFailureResultFor(final ResponseCodeEnum status) { + return evmEncoder.encodeIsToken(status, false); + } + public static TokenInfoWrapper decodeIsToken(final Bytes input) { final var rawTokenInfoWrapper = EvmIsTokenPrecompile.decodeIsToken(input); return TokenInfoWrapper.forToken(convertAddressBytesToTokenID(rawTokenInfoWrapper.token())); diff --git a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/NonFungibleTokenInfoPrecompile.java b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/NonFungibleTokenInfoPrecompile.java index e2f87b4be447..cf30ce80c0c4 100644 --- a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/NonFungibleTokenInfoPrecompile.java +++ b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/NonFungibleTokenInfoPrecompile.java @@ -20,6 +20,8 @@ import static com.hedera.node.app.service.mono.store.contracts.precompile.codec.DecodingFacade.convertAddressBytesToTokenID; import com.hedera.node.app.service.evm.store.contracts.precompile.codec.EvmEncodingFacade; +import com.hedera.node.app.service.evm.store.contracts.precompile.codec.EvmNftInfo; +import com.hedera.node.app.service.evm.store.contracts.precompile.codec.EvmTokenInfo; import com.hedera.node.app.service.evm.store.contracts.precompile.codec.TokenInfoWrapper; import com.hedera.node.app.service.evm.store.contracts.precompile.impl.EvmNonFungibleTokenInfoPrecompile; import com.hedera.node.app.service.mono.context.primitives.StateView; @@ -77,6 +79,13 @@ public Bytes getSuccessResultFor(final ExpirableTxnRecord.Builder childRecord) { return evmEncoder.encodeGetNonFungibleTokenInfo(tokenInfo, nonFungibleTokenInfo); } + @Override + public Bytes getFailureResultFor(final ResponseCodeEnum status) { + final var tokenInfo = new EvmTokenInfo(); + final var nonFungibleTokenInfo = new EvmNftInfo(); + return evmEncoder.encodeGetNonFungibleTokenInfo(status, tokenInfo, nonFungibleTokenInfo); + } + public static TokenInfoWrapper decodeGetNonFungibleTokenInfo(final Bytes input) { final var rawTokenInfoWrapper = EvmNonFungibleTokenInfoPrecompile.decodeGetNonFungibleTokenInfo(input); return TokenInfoWrapper.forNonFungibleToken( diff --git a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/TokenGetCustomFeesPrecompile.java b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/TokenGetCustomFeesPrecompile.java index 27e5fe3d99aa..05494f15062b 100644 --- a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/TokenGetCustomFeesPrecompile.java +++ b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/TokenGetCustomFeesPrecompile.java @@ -19,6 +19,7 @@ import static com.hedera.node.app.service.evm.utils.ValidationUtils.validateTrue; import static com.hedera.node.app.service.mono.store.contracts.precompile.codec.DecodingFacade.convertAddressBytesToTokenID; +import com.hedera.node.app.service.evm.store.contracts.precompile.codec.CustomFee; import com.hedera.node.app.service.evm.store.contracts.precompile.codec.EvmEncodingFacade; import com.hedera.node.app.service.evm.store.contracts.precompile.codec.TokenGetCustomFeesWrapper; import com.hedera.node.app.service.evm.store.contracts.precompile.impl.EvmTokenGetCustomFeesPrecompile; @@ -30,6 +31,7 @@ import com.hederahashgraph.api.proto.java.ResponseCodeEnum; import com.hederahashgraph.api.proto.java.TokenID; import com.hederahashgraph.api.proto.java.TransactionBody.Builder; +import java.util.ArrayList; import java.util.function.UnaryOperator; import org.apache.tuweni.bytes.Bytes; @@ -61,6 +63,12 @@ public Bytes getSuccessResultFor(final ExpirableTxnRecord.Builder childRecord) { return evmEncoder.encodeTokenGetCustomFees(customFees); } + @Override + public Bytes getFailureResultFor(final ResponseCodeEnum status) { + final var customFees = new ArrayList(); + return evmEncoder.encodeTokenGetCustomFees(status, customFees); + } + public static TokenGetCustomFeesWrapper decodeTokenGetCustomFees(final Bytes input) { final var rawTokenGetCustomFeesWrapper = EvmTokenGetCustomFeesPrecompile.decodeTokenGetCustomFees(input); return new TokenGetCustomFeesWrapper<>(convertAddressBytesToTokenID(rawTokenGetCustomFeesWrapper.token())); diff --git a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/TokenInfoPrecompile.java b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/TokenInfoPrecompile.java index c3ec037bda22..681b45948444 100644 --- a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/TokenInfoPrecompile.java +++ b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/impl/TokenInfoPrecompile.java @@ -20,6 +20,7 @@ import static com.hedera.node.app.service.mono.store.contracts.precompile.codec.DecodingFacade.convertAddressBytesToTokenID; import com.hedera.node.app.service.evm.store.contracts.precompile.codec.EvmEncodingFacade; +import com.hedera.node.app.service.evm.store.contracts.precompile.codec.EvmTokenInfo; import com.hedera.node.app.service.evm.store.contracts.precompile.codec.TokenInfoWrapper; import com.hedera.node.app.service.evm.store.contracts.precompile.impl.EvmTokenInfoPrecompile; import com.hedera.node.app.service.mono.context.primitives.StateView; @@ -64,6 +65,12 @@ public Bytes getSuccessResultFor(final ExpirableTxnRecord.Builder childRecord) { return evmEncoder.encodeGetTokenInfo(tokenInfo); } + @Override + public Bytes getFailureResultFor(final ResponseCodeEnum status) { + final var tokenInfo = new EvmTokenInfo(); + return evmEncoder.encodeGetTokenInfo(status, tokenInfo); + } + public static TokenInfoWrapper decodeGetTokenInfo(final Bytes input) { final var rawTokenInfoWrapper = EvmTokenInfoPrecompile.decodeGetTokenInfo(input); return TokenInfoWrapper.forToken(convertAddressBytesToTokenID(rawTokenInfoWrapper.token())); diff --git a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/utils/PrecompileUtils.java b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/utils/PrecompileUtils.java index e3dca592d6f3..163d510df3dc 100644 --- a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/utils/PrecompileUtils.java +++ b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/contracts/precompile/utils/PrecompileUtils.java @@ -57,7 +57,8 @@ public static void addContractCallResultToRecord( traceabilityOn ? messageFrame.getRemainingGas() : 0L, traceabilityOn ? messageFrame.getValue().toLong() : 0L, traceabilityOn ? messageFrame.getInputData().toArrayUnsafe() : EvmFnResult.EMPTY, - EntityId.fromAddress(senderAddress)); + EntityId.fromAddress(senderAddress), + null); childRecord.setContractCallResult(evmFnResult); } } diff --git a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/tokens/HederaTokenStore.java b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/tokens/HederaTokenStore.java index b824a5574069..efcc361463c4 100644 --- a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/tokens/HederaTokenStore.java +++ b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/tokens/HederaTokenStore.java @@ -371,6 +371,7 @@ public ResponseCodeEnum changeOwnerWildCard(final NftId nftId, final AccountID f @Override public boolean matchesTokenDecimals(final TokenID tId, final int expectedDecimals) { + // Note: this method assumes that the token for tId exists! Otherwise get(tId) will throw an exception return get(tId).decimals() == expectedDecimals; } diff --git a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/tokens/TokenStore.java b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/tokens/TokenStore.java index aac13b6fe6ef..b7952f65a6ac 100644 --- a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/tokens/TokenStore.java +++ b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/store/tokens/TokenStore.java @@ -83,22 +83,22 @@ default ResponseCodeEnum delete(TokenID id) { } default ResponseCodeEnum tryTokenChange(BalanceChange change) { - var validity = OK; var tokenId = resolve(change.tokenId()); if (tokenId == MISSING_TOKEN) { - validity = INVALID_TOKEN_ID; + return INVALID_TOKEN_ID; } + if (change.hasExpectedDecimals() && !matchesTokenDecimals(change.tokenId(), change.getExpectedDecimals())) { - validity = UNEXPECTED_TOKEN_DECIMALS; + return UNEXPECTED_TOKEN_DECIMALS; } - if (validity == OK) { - if (change.isForNft()) { - validity = changeOwner(change.nftId(), change.accountId(), change.counterPartyAccountId()); - } else { - validity = adjustBalance(change.accountId(), tokenId, change.getAggregatedUnits()); - if (validity == INSUFFICIENT_TOKEN_BALANCE) { - validity = change.codeForInsufficientBalance(); - } + + var validity = OK; + if (change.isForNft()) { + validity = changeOwner(change.nftId(), change.accountId(), change.counterPartyAccountId()); + } else { + validity = adjustBalance(change.accountId(), tokenId, change.getAggregatedUnits()); + if (validity == INSUFFICIENT_TOKEN_BALANCE) { + validity = change.codeForInsufficientBalance(); } } return validity; diff --git a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/txns/contract/ContractCallTransitionLogic.java b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/txns/contract/ContractCallTransitionLogic.java index f58b9d488a81..89b1fab9881b 100644 --- a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/txns/contract/ContractCallTransitionLogic.java +++ b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/txns/contract/ContractCallTransitionLogic.java @@ -158,9 +158,6 @@ public void doStateTransitionOperation( result = evmTxProcessor.execute( sender, receiver.canonicalAddress(), op.getGas(), op.getAmount(), callData, txnCtx.consensusTime()); } else { - sender.incrementEthereumNonce(); - accountStore.commitAccount(sender); - result = evmTxProcessor.executeEth( sender, receiver.canonicalAddress(), @@ -171,6 +168,7 @@ public void doStateTransitionOperation( offeredGasPrice, accountStore.loadAccount(relayerId), maxGasAllowanceInTinybars); + result.setSignerNonce(worldState.get(senderId.asEvmAddress()).getNonce()); } /* --- Externalise result --- */ @@ -359,10 +357,10 @@ private Account extractAndValidateReceiver( } else { if (!OK.equals(isUsableContract)) { // call to non-existing contract flow - validateTrue(!EVM_VERSION_0_30.equals(properties.evmVersion()), isUsableContract); - validateTrue(!EVM_VERSION_0_34.equals(properties.evmVersion()), isUsableContract); - validateTrue(!EVM_VERSION_0_38.equals(properties.evmVersion()), isUsableContract); - validateTrue(properties.allowCallsToNonContractAccounts(), isUsableContract); + validateTrue(isTokenAccount || !EVM_VERSION_0_30.equals(properties.evmVersion()), isUsableContract); + validateTrue(isTokenAccount || !EVM_VERSION_0_34.equals(properties.evmVersion()), isUsableContract); + validateTrue(isTokenAccount || !EVM_VERSION_0_38.equals(properties.evmVersion()), isUsableContract); + validateTrue(isTokenAccount || properties.allowCallsToNonContractAccounts(), isUsableContract); } } diff --git a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/txns/contract/ContractCreateTransitionLogic.java b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/txns/contract/ContractCreateTransitionLogic.java index 019ec758ab7b..678f7857d89f 100644 --- a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/txns/contract/ContractCreateTransitionLogic.java +++ b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/txns/contract/ContractCreateTransitionLogic.java @@ -211,9 +211,6 @@ public void doStateTransitionOperation( codeWithConstructorArgs, consensusTime); } else { - sender.incrementEthereumNonce(); - accountStore.commitAccount(sender); - result = evmTxProcessor.executeEth( sender, newContractAddress, @@ -224,6 +221,7 @@ public void doStateTransitionOperation( accountStore.loadAccount(relayerId), userOfferedGasPrice, maxGasAllowance); + result.setSignerNonce(worldState.get(senderId.asEvmAddress()).getNonce()); } } finally { worldState.resetHapiSenderCustomizer(); diff --git a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/txns/ethereum/EthereumTransitionLogic.java b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/txns/ethereum/EthereumTransitionLogic.java index 5c2ac29b43e8..b966ca5a8d98 100644 --- a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/txns/ethereum/EthereumTransitionLogic.java +++ b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/txns/ethereum/EthereumTransitionLogic.java @@ -134,6 +134,7 @@ public void doStateTransition() { } catch (InvalidTransactionException e) { var result = TransactionProcessingResult.failed( 0, 0, 0, Optional.of(e.messageBytes()), Optional.empty(), Collections.emptyMap(), List.of()); + result.setSignerNonce((Long) accountsLedger.get(callerNum.toGrpcAccountId(), ETHEREUM_NONCE)); recordService.externaliseEvmCallTransaction(result); throw e; } finally { diff --git a/hedera-node/hedera-mono-service/src/main/java/module-info.java b/hedera-node/hedera-mono-service/src/main/java/module-info.java index eb560a409744..73e046de80c9 100644 --- a/hedera-node/hedera-mono-service/src/main/java/module-info.java +++ b/hedera-node/hedera-mono-service/src/main/java/module-info.java @@ -62,6 +62,7 @@ com.hedera.node.app, com.hedera.node.app.service.file.impl; exports com.hedera.node.app.service.mono.state.virtual.schedule to + com.hedera.node.services.cli, com.hedera.node.app.service.mono.test.fixtures, com.hedera.node.app.service.schedule.impl, com.hedera.node.app; diff --git a/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/ServicesStateTest.java b/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/ServicesStateTest.java index ec73a0328b80..bec0e02f1895 100644 --- a/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/ServicesStateTest.java +++ b/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/ServicesStateTest.java @@ -38,7 +38,12 @@ import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.BDDMockito.given; -import static org.mockito.Mockito.*; +import static org.mockito.Mockito.anyInt; +import static org.mockito.Mockito.doAnswer; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; import com.google.protobuf.ByteString; import com.hedera.node.app.service.mono.cache.EntityMapWarmer; @@ -925,7 +930,7 @@ void testGenesisState() { ClassLoaderHelper.loadClassPathDependencies(); final var servicesState = tracked(new ServicesState()); final var platform = createMockPlatformWithCrypto(); - final var addressBook = createPretendBookFrom(platform, true); + final var addressBook = createPretendBookFrom(platform, true, true); given(platform.getAddressBook()).willReturn(addressBook); final var recordsRunningHashLeaf = new RecordsRunningHashLeaf(); recordsRunningHashLeaf.setRunningHash(new RunningHash(EMPTY_HASH)); @@ -957,7 +962,7 @@ void updatesAddressBookWithZeroWeightOnGenesisStart() { final var node1 = new NodeId(1); given(platform.getSelfId()).willReturn(node0); - final var pretendAddressBook = createPretendBookFrom(platform, true); + final var pretendAddressBook = createPretendBookFrom(platform, true, false); final MerkleMap stakingMap = subject.getChild(StateChildIndices.STAKING_INFO); assertEquals(1, stakingMap.size()); @@ -981,7 +986,7 @@ void updatesAddressBookWithZeroWeightForNewNodes() { given(platform.getSelfId()).willReturn(node0); - final var pretendAddressBook = createPretendBookFrom(platform, true); + final var pretendAddressBook = createPretendBookFrom(platform, true, false); final MerkleMap stakingMap = subject.getChild(StateChildIndices.STAKING_INFO); assertEquals(1, stakingMap.size()); assertEquals(0, stakingMap.get(EntityNum.fromLong(0L)).getWeight()); @@ -1008,7 +1013,7 @@ void updatesAddressBookWithNonZeroWeightsOnGenesisStartIfStakesExist() { final var node0 = new NodeId(0); final var node1 = new NodeId(1); given(platform.getSelfId()).willReturn(node0); - final var pretendAddressBook = createPretendBookFrom(platform, true); + final var pretendAddressBook = createPretendBookFrom(platform, true, false); final MerkleMap stakingMap = subject.getChild(StateChildIndices.STAKING_INFO); assertEquals(1, stakingMap.size()); diff --git a/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/contracts/operation/HederaSelfDestructOperationV046Test.java b/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/contracts/operation/HederaSelfDestructOperationV046Test.java index 3a17150f6779..4c2879ff6325 100644 --- a/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/contracts/operation/HederaSelfDestructOperationV046Test.java +++ b/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/contracts/operation/HederaSelfDestructOperationV046Test.java @@ -21,14 +21,12 @@ import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.BDDMockito.given; -import static org.mockito.Mockito.verify; import com.hedera.node.app.service.evm.contracts.operations.HederaExceptionalHaltReason; import com.hedera.node.app.service.mono.context.TransactionContext; import com.hedera.node.app.service.mono.context.properties.GlobalDynamicProperties; import com.hedera.node.app.service.mono.contracts.sources.EvmSigsVerifier; import com.hedera.node.app.service.mono.store.contracts.HederaStackedWorldStateUpdater; -import com.hedera.node.app.service.mono.utils.EntityIdUtils; import com.hedera.node.app.service.mono.utils.EntityNum; import java.util.function.BiPredicate; import org.hyperledger.besu.datatypes.Address; @@ -89,37 +87,15 @@ void setUp() { } @Test - void delegatesToSuperWhenValid() { - givenRubberstampValidator(); - - final var tbdMirrorAddress = EntityIdUtils.asEvmAddress(1234L); - final var beneficiaryMirrorAddress = EntityIdUtils.asEvmAddress(4567L); - + void reversionForStaticCallWithIllegalStateChange() { final var beneficiaryMirror = beneficiary.toEvmAddress(); given(frame.getStackItem(0)).willReturn(beneficiaryMirror); - given(frame.popStackItem()).willReturn(beneficiaryMirror); given(frame.getRecipientAddress()).willReturn(eip1014Address); - given(worldUpdater.get(any())).willReturn(account); - given(worldUpdater.getAccount(any())).willReturn(account); - given(account.getBalance()).willReturn(Wei.ONE); given(frame.isStatic()).willReturn(true); - given(gasCalculator.getColdAccountAccessCost()).willReturn(1L); - given(worldUpdater.permissivelyUnaliased(eip1014Address.toArrayUnsafe())) - .willReturn(tbdMirrorAddress); - given(worldUpdater.permissivelyUnaliased(beneficiaryMirror.toArrayUnsafe())) - .willReturn(beneficiaryMirrorAddress); - given(frame.getContractAddress()).willReturn(eip1014Address); - given(account.getAddress()).willReturn(beneficiaryMirror); - given(evmSigsVerifier.hasActiveKeyOrNoReceiverSigReq( - false, beneficiaryMirror, eip1014Address, null, ContractCall)) - .willReturn(true); - given(globalDynamicProperties.callsToNonExistingEntitiesEnabled(any())).willReturn(true); final var opResult = subject.execute(frame, evm); - verify(txnCtx).recordBeneficiaryOfDeleted(1234L, 4567L); assertEquals(ExceptionalHaltReason.ILLEGAL_STATE_CHANGE, opResult.getHaltReason()); - assertEquals(3L, opResult.getGasCost()); } @Test diff --git a/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/fees/charging/NarratedLedgerChargingTest.java b/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/fees/charging/NarratedLedgerChargingTest.java index e71bd9fbc78e..0c9c5574584a 100644 --- a/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/fees/charging/NarratedLedgerChargingTest.java +++ b/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/fees/charging/NarratedLedgerChargingTest.java @@ -217,7 +217,7 @@ void chargesNodeUpToNetworkFeeAsExpected() { verify(ledger).adjustBalance(grpcNodeId, -networkFee + 1); verify(feeDistribution).distributeChargedFee(networkFee - 1, accountsLedger); - assertEquals(0, subject.totalFeesChargedToPayer()); + assertEquals(399, subject.totalFeesChargedToPayer()); } @Test diff --git a/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/legacy/unit/TransactionRecordFeeTest.java b/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/legacy/unit/TransactionRecordFeeTest.java index 07c742e3ca1b..0b6e55711289 100644 --- a/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/legacy/unit/TransactionRecordFeeTest.java +++ b/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/legacy/unit/TransactionRecordFeeTest.java @@ -81,7 +81,7 @@ void init() { @Test void testTransactionRecordRBH() { - final long transactionRecordRbh = FeeBuilder.getTxRecordUsageRBH(transactionRecord, receiptStorageTime); + final long transactionRecordRbh = FeeBuilder.getTxRecordUsageRbh(transactionRecord, receiptStorageTime); assertNotEquals(0, transactionRecordRbh); } } diff --git a/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/state/submerkle/EvmFnResultSerdeTest.java b/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/state/submerkle/EvmFnResultSerdeTest.java index acbc5559aaab..4f373e23b86d 100644 --- a/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/state/submerkle/EvmFnResultSerdeTest.java +++ b/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/state/submerkle/EvmFnResultSerdeTest.java @@ -54,6 +54,9 @@ protected EvmFnResult getExpectedObject( // Always empty before 0.40 seeded.setContractNonces(Collections.emptyList()); } + if (version < EvmFnResult.RELEASE_0470_VERSION) { + seeded.setSignerNonce(null); + } return seeded; } diff --git a/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/state/submerkle/EvmFnResultTest.java b/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/state/submerkle/EvmFnResultTest.java index 705112a75aa9..573844f57722 100644 --- a/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/state/submerkle/EvmFnResultTest.java +++ b/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/state/submerkle/EvmFnResultTest.java @@ -107,7 +107,8 @@ void setup() { gas, amount, functionParameters, - senderId); + senderId, + null); } @Test @@ -121,7 +122,7 @@ void gettersWork() { assertEquals(createdContractIds, subject.getCreatedContractIds()); assertEquals(createdContractNonces, subject.getContractNonces()); assertEquals(0x2055c5c03ff84eb4L, subject.getClassId()); - assertEquals(EvmFnResult.RELEASE_0400_VERSION, subject.getVersion()); + assertEquals(EvmFnResult.RELEASE_0470_VERSION, subject.getVersion()); assertEquals(gas, subject.getGas()); assertEquals(amount, subject.getAmount()); assertEquals(functionParameters, subject.getFunctionParameters()); @@ -143,6 +144,7 @@ void besuParsingWorksForRevertFailure() { 0L, 0L, new byte[0], + null, null); final var input = TransactionProcessingResult.failed( @@ -174,6 +176,7 @@ void besuParsingWorksForCallSuccess() { 0L, 0L, new byte[0], + null, null); final var input = TransactionProcessingResult.successful( @@ -216,6 +219,7 @@ void besuParsingWorksForCreateSuccess() { 0L, 0L, new byte[0], + null, null); final var input = TransactionProcessingResult.successful( @@ -251,7 +255,8 @@ void objectContractWorks() { gas, amount, functionParameters, - senderId); + senderId, + null); final var three = new EvmFnResult( contractId, result, @@ -265,7 +270,8 @@ void objectContractWorks() { gas, amount, functionParameters, - senderId); + senderId, + null); final var four = new EvmFnResult( contractId, result, @@ -279,7 +285,8 @@ void objectContractWorks() { gas, amount, functionParameters, - senderId); + senderId, + null); final var five = new EvmFnResult( contractId, result, @@ -293,7 +300,8 @@ void objectContractWorks() { gas, amount, functionParameters, - senderId); + senderId, + null); final var six = new EvmFnResult( contractId, result, @@ -307,7 +315,8 @@ void objectContractWorks() { gas, amount, functionParameters, - senderId); + senderId, + null); final var seven = new EvmFnResult( contractId, result, @@ -321,7 +330,8 @@ void objectContractWorks() { gas, amount, functionParameters, - senderId); + senderId, + null); final var nine = new EvmFnResult( contractId, result, @@ -335,7 +345,8 @@ void objectContractWorks() { gas, amount, "randomParameters".getBytes(), - senderId); + senderId, + null); final var ten = new EvmFnResult( contractId, result, @@ -349,6 +360,7 @@ void objectContractWorks() { gas, amount, "randomParameters".getBytes(), + null, null); assertNotEquals(null, one); @@ -382,7 +394,8 @@ void beanWorks() { subject.getGas(), subject.getAmount(), subject.getFunctionParameters(), - subject.getSenderId()), + subject.getSenderId(), + subject.getSignerNonce()), subject); } @@ -423,7 +436,7 @@ void toStringWorks() { + "functionParameters=" + CommonUtils.hex(functionParameters) + ", senderId=EntityId{shard=0, realm=0, num=42}" - + "}", + + ", signerNonce=null}", subject.toString()); } @@ -449,7 +462,8 @@ void grpcFactoryWorksWithEverythingSet() { gas, amount, functionParameters, - senderId); + senderId, + null); final var grpc = ContractFunctionResult.newBuilder() .setGasUsed(gasUsed) @@ -489,7 +503,8 @@ void grpcFactoryWorksWithSomeFieldsMissing() { gas, 0L, functionParameters, - senderId); + senderId, + null); final var grpc = ContractFunctionResult.newBuilder() .setGasUsed(gasUsed) @@ -531,7 +546,7 @@ void viewWorks() { @Test void serializableDetWorks() { - assertEquals(EvmFnResult.RELEASE_0400_VERSION, subject.getVersion()); + assertEquals(EvmFnResult.RELEASE_0470_VERSION, subject.getVersion()); assertEquals(EvmFnResult.RUNTIME_CONSTRUCTABLE_ID, subject.getClassId()); } diff --git a/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/state/submerkle/ExpirableTxnRecordSerdeTest.java b/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/state/submerkle/ExpirableTxnRecordSerdeTest.java index d0c0f91f0d75..1f3b29d97084 100644 --- a/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/state/submerkle/ExpirableTxnRecordSerdeTest.java +++ b/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/state/submerkle/ExpirableTxnRecordSerdeTest.java @@ -20,6 +20,7 @@ import static com.hedera.node.app.service.mono.state.submerkle.ExpirableTxnRecord.RELEASE_0270_VERSION; import static com.hedera.node.app.service.mono.state.submerkle.ExpirableTxnRecord.RELEASE_0280_VERSION; import static com.hedera.node.app.service.mono.state.submerkle.ExpirableTxnRecord.RELEASE_0340_VERSION; +import static com.hedera.node.app.service.mono.state.submerkle.ExpirableTxnRecord.RELEASE_0470_VERSION; import com.hedera.test.serde.EqualityType; import com.hedera.test.serde.SelfSerializableDataTest; @@ -70,6 +71,14 @@ protected ExpirableTxnRecord getExpectedObject( if (version < RELEASE_0340_VERSION) { seeded.clearEvmAddress(); } + if (version < RELEASE_0470_VERSION) { + if (seeded.getContractCallResult() != null) { + seeded.getContractCallResult().setSignerNonce(null); + } + if (seeded.getContractCreateResult() != null) { + seeded.getContractCreateResult().setSignerNonce(null); + } + } return seeded; } diff --git a/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/state/submerkle/ExpirableTxnRecordTest.java b/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/state/submerkle/ExpirableTxnRecordTest.java index 0db78b439bcb..86efce41f158 100644 --- a/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/state/submerkle/ExpirableTxnRecordTest.java +++ b/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/state/submerkle/ExpirableTxnRecordTest.java @@ -465,7 +465,7 @@ void toStringWorksWithParentConsTime() { + " contractId=EntityId{shard=4, realm=3, num=2}, createdContractIds=[]," + " logs=[EvmLog{data=4e6f6e73656e736963616c21, bloom=, contractId=null," + " topics=[]}], contractNonces=[], evmAddress=, gas=1000000, amount=0," - + " functionParameters=53656e7369626c6521, senderId=null}," + + " functionParameters=53656e7369626c6521, senderId=null, signerNonce=null}," + " hbarAdjustments=CurrencyAdjustments{readable=[0.0.2 -> -4, 0.0.1001 <- +2," + " 0.0.1002 <- +2]}, stakingRewardsPaid=CurrencyAdjustments{readable=[0.0.5 <-" + " +100, 0.0.8 <- +1000]}, scheduleRef=EntityId{shard=5, realm=6, num=7}," @@ -500,7 +500,7 @@ void toStringWorksWithoutParentConsTime() { + " contractId=EntityId{shard=4, realm=3, num=2}, createdContractIds=[]," + " logs=[EvmLog{data=4e6f6e73656e736963616c21, bloom=, contractId=null," + " topics=[]}], contractNonces=[], evmAddress=, gas=1000000, amount=0," - + " functionParameters=53656e7369626c6521, senderId=null}," + + " functionParameters=53656e7369626c6521, senderId=null, signerNonce=null}," + " hbarAdjustments=CurrencyAdjustments{readable=[0.0.2 -> -4, 0.0.1001 <- +2," + " 0.0.1002 <- +2]}, stakingRewardsPaid=CurrencyAdjustments{readable=[0.0.5 <-" + " +100, 0.0.8 <- +1000]}, scheduleRef=EntityId{shard=5, realm=6, num=7}," diff --git a/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/store/contracts/precompile/GetTokenExpiryInfoPrecompileTest.java b/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/store/contracts/precompile/GetTokenExpiryInfoPrecompileTest.java index 53c9f46830d3..a139a3117393 100644 --- a/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/store/contracts/precompile/GetTokenExpiryInfoPrecompileTest.java +++ b/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/store/contracts/precompile/GetTokenExpiryInfoPrecompileTest.java @@ -276,6 +276,7 @@ void getTokenExpiryInfoFails() { subject.prepareFields(frame); subject.prepareComputation(pretendArguments, a -> a); subject.getPrecompile().getGasRequirement(TEST_CONSENSUS_TIME); + given(evmEncoder.encodeGetTokenExpiryInfo(any(), any())).willReturn(invalidTokenIdResult); final var result = subject.computeInternal(frame); // then: diff --git a/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/store/contracts/precompile/GetTokenInfoPrecompilesTest.java b/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/store/contracts/precompile/GetTokenInfoPrecompilesTest.java index 3258f04a9f0a..eb76d3c78921 100644 --- a/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/store/contracts/precompile/GetTokenInfoPrecompilesTest.java +++ b/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/store/contracts/precompile/GetTokenInfoPrecompilesTest.java @@ -757,6 +757,7 @@ void getTokenInfoOfMissingTokenFails() { subject.prepareFields(frame); subject.prepareComputation(pretendArguments, a -> a); subject.getPrecompile().getGasRequirement(TEST_CONSENSUS_TIME); + given(evmEncoder.encodeGetTokenInfo(any(), any())).willReturn(invalidTokenIdResult); final var result = subject.computeInternal(frame); // then: @@ -789,6 +790,7 @@ void getFungibleTokenInfoOfMissingTokenFails() { subject.prepareFields(frame); subject.prepareComputation(pretendArguments, a -> a); subject.getPrecompile().getGasRequirement(TEST_CONSENSUS_TIME); + given(evmEncoder.encodeGetFungibleTokenInfo(any(), any())).willReturn(invalidTokenIdResult); final var result = subject.computeInternal(frame); // then: @@ -826,6 +828,7 @@ void getNonFungibleTokenInfoOfMissingSerialNumberFails() { subject.prepareFields(frame); subject.prepareComputation(pretendArguments, a -> a); subject.getPrecompile().getGasRequirement(TEST_CONSENSUS_TIME); + given(evmEncoder.encodeGetNonFungibleTokenInfo(any(), any(), any())).willReturn(invalidSerialNumberResult); final var result = subject.computeInternal(frame); // then: diff --git a/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/store/contracts/precompile/GetTokenKeyPrecompileTest.java b/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/store/contracts/precompile/GetTokenKeyPrecompileTest.java index 33723c50edfa..41a89578ea67 100644 --- a/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/store/contracts/precompile/GetTokenKeyPrecompileTest.java +++ b/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/store/contracts/precompile/GetTokenKeyPrecompileTest.java @@ -18,6 +18,7 @@ import static com.hedera.node.app.service.evm.store.contracts.precompile.codec.TokenKeyType.ADMIN_KEY; import static com.hedera.node.app.service.mono.store.contracts.precompile.HTSTestsUtil.contractAddress; +import static com.hedera.node.app.service.mono.store.contracts.precompile.HTSTestsUtil.failResult; import static com.hedera.node.app.service.mono.store.contracts.precompile.HTSTestsUtil.fungible; import static com.hedera.node.app.service.mono.store.contracts.precompile.HTSTestsUtil.invalidTokenIdResult; import static com.hedera.node.app.service.mono.store.contracts.precompile.HTSTestsUtil.successResult; @@ -345,6 +346,7 @@ void callForGetFungibleTokenKeyWithInvalidKeyFails() { // when subject.prepareFields(frame); subject.prepareComputation(input, a -> a); + given(evmEncoder.encodeGetTokenKey(any(), any())).willReturn(failResult); final var result = subject.computeInternal(frame); // then assertEquals(HTSTestsUtil.failResult, result); @@ -363,6 +365,7 @@ void getTokenKeyCallForInvalidTokenIds() { // when subject.prepareFields(frame); subject.prepareComputation(input, a -> a); + given(evmEncoder.encodeGetTokenKey(any(), any())).willReturn(invalidTokenIdResult); final var result = subject.computeInternal(frame); // then assertEquals(invalidTokenIdResult, result); diff --git a/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/store/contracts/precompile/TokenGetCustomFeesPrecompileTest.java b/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/store/contracts/precompile/TokenGetCustomFeesPrecompileTest.java index a4a0731e9f4c..3474e147e2ea 100644 --- a/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/store/contracts/precompile/TokenGetCustomFeesPrecompileTest.java +++ b/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/store/contracts/precompile/TokenGetCustomFeesPrecompileTest.java @@ -259,6 +259,7 @@ void getTokenCustomFeesMissingTokenIdFails() { subject.prepareFields(frame); subject.prepareComputation(pretendArguments, a -> a); subject.getPrecompile().getGasRequirement(TEST_CONSENSUS_TIME); + given(evmEncoder.encodeTokenGetCustomFees(any(), any())).willReturn(invalidTokenIdResult); final var result = subject.computeInternal(frame); // then: diff --git a/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/store/tokens/HederaTokenStoreTest.java b/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/store/tokens/HederaTokenStoreTest.java index e30714a29fa9..4fcf68adec59 100644 --- a/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/store/tokens/HederaTokenStoreTest.java +++ b/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/store/tokens/HederaTokenStoreTest.java @@ -28,12 +28,8 @@ import static com.hedera.node.app.service.mono.ledger.properties.TokenRelProperty.IS_KYC_GRANTED; import static com.hedera.node.app.service.mono.ledger.properties.TokenRelProperty.TOKEN_BALANCE; import static com.hedera.node.app.service.mono.state.submerkle.EntityId.MISSING_ENTITY_ID; -import static com.hedera.test.factories.scenarios.TxnHandlingScenario.COMPLEX_KEY_ACCOUNT_KT; -import static com.hedera.test.factories.scenarios.TxnHandlingScenario.MISC_ACCOUNT_KT; import static com.hedera.test.factories.scenarios.TxnHandlingScenario.TOKEN_ADMIN_KT; import static com.hedera.test.factories.scenarios.TxnHandlingScenario.TOKEN_FEE_SCHEDULE_KT; -import static com.hedera.test.factories.scenarios.TxnHandlingScenario.TOKEN_FREEZE_KT; -import static com.hedera.test.factories.scenarios.TxnHandlingScenario.TOKEN_KYC_KT; import static com.hedera.test.factories.scenarios.TxnHandlingScenario.TOKEN_PAUSE_KT; import static com.hedera.test.factories.scenarios.TxnHandlingScenario.TOKEN_TREASURY_KT; import static com.hedera.test.mocks.TestContextValidator.CONSENSUS_NOW; @@ -105,8 +101,6 @@ import com.hedera.node.app.service.mono.state.validation.UsageLimits; import com.hedera.node.app.service.mono.store.models.Id; import com.hedera.node.app.service.mono.store.models.NftId; -import com.hedera.node.app.service.mono.utils.EntityNumPair; -import com.hedera.node.app.service.mono.utils.NftNumPair; import com.hedera.test.factories.scenarios.TxnHandlingScenario; import com.hedera.test.utils.IdUtils; import com.hederahashgraph.api.proto.java.AccountAmount; @@ -115,13 +109,10 @@ import com.hederahashgraph.api.proto.java.Key; import com.hederahashgraph.api.proto.java.ResponseCodeEnum; import com.hederahashgraph.api.proto.java.Timestamp; -import com.hederahashgraph.api.proto.java.TokenCreateTransactionBody; import com.hederahashgraph.api.proto.java.TokenID; import com.hederahashgraph.api.proto.java.TokenUpdateTransactionBody; import java.util.EnumSet; -import java.util.HashSet; import java.util.Optional; -import java.util.Set; import java.util.function.Consumer; import org.apache.commons.lang3.tuple.Pair; import org.junit.jupiter.api.Assertions; @@ -132,18 +123,12 @@ class HederaTokenStoreTest { private static final Key newKey = TxnHandlingScenario.TOKEN_REPLACE_KT.asKey(); private static final JKey newFcKey = TxnHandlingScenario.TOKEN_REPLACE_KT.asJKeyUnchecked(); - private static final Key adminKey = TOKEN_ADMIN_KT.asKey(); - private static final Key kycKey = TOKEN_KYC_KT.asKey(); - private static final Key freezeKey = TOKEN_FREEZE_KT.asKey(); - private static final Key wipeKey = MISC_ACCOUNT_KT.asKey(); - private static final Key supplyKey = COMPLEX_KEY_ACCOUNT_KT.asKey(); private static final Key feeScheduleKey = TOKEN_FEE_SCHEDULE_KT.asKey(); private static final Key pauseKey = TOKEN_PAUSE_KT.asKey(); private static final String symbol = "NOTHBAR"; private static final String newSymbol = "REALLYSOM"; private static final String newMemo = "NEWMEMO"; - private static final String memo = "TOKENMEMO"; private static final String name = "TOKENNAME"; private static final String newName = "NEWNAME"; private static final int maxCustomFees = 5; @@ -151,15 +136,12 @@ class HederaTokenStoreTest { private static final int numPositiveBalances = 1; private static final long expiry = CONSENSUS_NOW + 1_234_567L; private static final long newExpiry = CONSENSUS_NOW + 1_432_765L; - private static final long totalSupply = 1_000_000L; - private static final int decimals = 10; private static final long treasuryBalance = 50_000L; private static final long sponsorBalance = 1_000L; private static final TokenID misc = IdUtils.asToken("0.0.1"); private static final TokenID nonfungible = IdUtils.asToken("0.0.2"); private static final int maxAutoAssociations = 1234; private static final int alreadyUsedAutoAssocitaions = 123; - private static final boolean freezeDefault = true; private static final long newAutoRenewPeriod = 2_000_000L; private static final AccountID payer = IdUtils.asAccount("0.0.12345"); private static final AccountID autoRenewAccount = IdUtils.asAccount("0.0.5"); @@ -682,12 +664,6 @@ void changingOwnerDoesTheExpected() { final long startSponsorANfts = 4; final long startCounterpartyANfts = 1; final var receiver = EntityId.fromGrpcAccountId(counterparty); - final var nftNumPair1 = NftNumPair.fromLongs(1111, 111); - final var nftId1 = nftNumPair1.nftId(); - final var nftNumPair2 = NftNumPair.fromLongs(1112, 112); - final var nftId2 = nftNumPair2.nftId(); - final var nftNumPair3 = NftNumPair.fromLongs(1113, 113); - final var nftId3 = nftNumPair3.nftId(); given(accountsLedger.get(sponsor, NUM_NFTS_OWNED)).willReturn(startSponsorNfts); given(accountsLedger.get(counterparty, NUM_NFTS_OWNED)).willReturn(startCounterpartyNfts); given(tokenRelsLedger.get(sponsorNft, TOKEN_BALANCE)).willReturn(startSponsorANfts); @@ -716,9 +692,7 @@ void changingOwnerDoesTheExpectedWithTreasuryReturn() { final long startCounterpartyNfts = 8; final long startTreasuryTNfts = 4; final long startCounterpartyTNfts = 1; - final var sender = EntityId.fromGrpcAccountId(counterparty); final var receiver = EntityId.fromGrpcAccountId(primaryTreasury); - final var muti = EntityNumPair.fromLongs(tNft.tokenId().getTokenNum(), tNft.serialNo()); given(backingTokens.getImmutableRef(tNft.tokenId()).treasury()).willReturn(receiver); given(accountsLedger.get(primaryTreasury, NUM_NFTS_OWNED)).willReturn(startTreasuryNfts); given(accountsLedger.get(counterparty, NUM_NFTS_OWNED)).willReturn(startCounterpartyNfts); @@ -751,8 +725,6 @@ void changingOwnerDoesTheExpectedWithTreasuryExit() { final long startCounterpartyTNfts = 1; final var sender = EntityId.fromGrpcAccountId(primaryTreasury); final var receiver = EntityId.fromGrpcAccountId(counterparty); - final var nftNumPair3 = NftNumPair.fromLongs(1113, 113); - final var nftId3 = nftNumPair3.nftId(); given(accountsLedger.get(primaryTreasury, NUM_NFTS_OWNED)).willReturn(startTreasuryNfts); given(accountsLedger.get(counterparty, NUM_NFTS_OWNED)).willReturn(startCounterpartyNfts); given(tokenRelsLedger.get(treasuryNft, TOKEN_BALANCE)).willReturn(startTreasuryTNfts); @@ -986,8 +958,6 @@ void updateRejectsInappropriateSupplyKey() { @Test void updateRejectsZeroTokenBalanceKey() { - final Set tokenSet = new HashSet<>(); - tokenSet.add(nonfungible); givenUpdateTarget(ALL_KEYS, nonfungibleToken); final var op = updateWith(ALL_KEYS, nonfungible, true, true, true).toBuilder() .setExpiry(Timestamp.newBuilder().setSeconds(0)) @@ -1000,8 +970,6 @@ void updateRejectsZeroTokenBalanceKey() { @Test void updateHappyPathIgnoresZeroExpiry() { - final Set tokenSet = new HashSet<>(); - tokenSet.add(misc); givenUpdateTarget(ALL_KEYS, token); final var op = updateWith(ALL_KEYS, misc, true, true, true).toBuilder() .setExpiry(Timestamp.newBuilder().setSeconds(0)) @@ -1447,6 +1415,23 @@ void failsIfMismatchingDecimals() { Assertions.assertEquals(UNEXPECTED_TOKEN_DECIMALS, result); } + @Test + void invalidTokenTakesPriorityOverDecimalCheck() { + final var aa = + AccountAmount.newBuilder().setAccountID(sponsor).setAmount(100).build(); + final var fungibleChange = BalanceChange.changingFtUnits(Id.fromGrpcToken(misc), misc, aa, payer); + assertFalse(fungibleChange.hasExpectedDecimals()); + + // Here we set the expected decimals in the change, but also simulate the token not existing + fungibleChange.setExpectedDecimals(4); + given(backingTokens.contains(misc)).willReturn(false); + + final var result = subject.tryTokenChange(fungibleChange); + // Even though the expected decimals don't match, the invalid token status takes priority (i.e. is returned + // instead of a decimal error status) + Assertions.assertEquals(INVALID_TOKEN_ID, result); + } + @Test void decimalMatchingWorks() { assertEquals(2, subject.get(misc).decimals()); @@ -1509,27 +1494,9 @@ void updateExpiryInfoRejectsMissingToken() { assertEquals(INVALID_TOKEN_ID, outcome); } - TokenCreateTransactionBody.Builder fullyValidTokenCreateAttempt() { - return TokenCreateTransactionBody.newBuilder() - .setExpiry(Timestamp.newBuilder().setSeconds(expiry)) - .setMemo(memo) - .setAdminKey(adminKey) - .setKycKey(kycKey) - .setFreezeKey(freezeKey) - .setWipeKey(wipeKey) - .setSupplyKey(supplyKey) - .setFeeScheduleKey(feeScheduleKey) - .setSymbol(symbol) - .setName(name) - .setInitialSupply(totalSupply) - .setTreasury(treasury) - .setDecimals(decimals) - .setFreezeDefault(freezeDefault); - } - private void assertSoleTokenChangesAreForNftTransfer(final NftId nft, final AccountID from, final AccountID to) { final var tokenChanges = sideEffectsTracker.getNetTrackedTokenUnitAndOwnershipChanges(); - final var ownershipChange = tokenChanges.get(0); + final var ownershipChange = tokenChanges.getFirst(); assertEquals(nft.tokenId(), ownershipChange.getToken()); final var nftTransfer = ownershipChange.getNftTransfers(0); assertEquals(nft.serialNo(), nftTransfer.getSerialNumber()); diff --git a/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/txns/contract/ContractCallTransitionLogicTest.java b/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/txns/contract/ContractCallTransitionLogicTest.java index b6a4e2da6301..771235bfe9cb 100644 --- a/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/txns/contract/ContractCallTransitionLogicTest.java +++ b/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/txns/contract/ContractCallTransitionLogicTest.java @@ -40,6 +40,7 @@ import com.google.protobuf.ByteString; import com.hedera.node.app.hapi.utils.ByteStringUtils; import com.hedera.node.app.service.evm.exceptions.InvalidTransactionException; +import com.hedera.node.app.service.evm.store.contracts.WorldStateAccount; import com.hedera.node.app.service.mono.config.EntityNumbers; import com.hedera.node.app.service.mono.context.TransactionContext; import com.hedera.node.app.service.mono.context.properties.GlobalDynamicProperties; @@ -77,6 +78,7 @@ import java.util.TreeMap; import org.apache.tuweni.bytes.Bytes; import org.hyperledger.besu.datatypes.Address; +import org.hyperledger.besu.datatypes.Wei; import org.hyperledger.besu.evm.gascalculator.GasCalculator; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -241,7 +243,9 @@ void verifyExternaliseContractResultCallEth() { // and: given(accessor.getTxn()).willReturn(contractCallTxn); // and: - senderAccount.initBalance(1234L); + + final long balance = 1234L; + senderAccount.initBalance(balance); given(accountStore.loadAccount(senderAccount.getId())).willReturn(senderAccount); given(accountStore.loadAccount(relayerAccount.getId())).willReturn(relayerAccount); given(sigsVerifier.hasActiveKeyOrNoReceiverSigReq( @@ -266,6 +270,11 @@ false, asTypedEvmAddress(target), Address.ZERO, worldLedgers, HederaFunctionalit given(worldState.getContractNonces()).willReturn(targetContractNonces); given(accountStore.isContractUsable(any())).willReturn(INVALID_CONTRACT_ID); + final Address senderEvmAddress = + asTypedEvmAddress(EntityId.fromNum(senderAccount.getId().num())); + final var worldStateAccount = new WorldStateAccount(senderEvmAddress, Wei.of(balance), codeCache, entityAccess); + given(worldState.get(senderEvmAddress)).willReturn(worldStateAccount); + // when: subject.doStateTransitionOperation( accessor.getTxn(), senderAccount.getId(), relayerAccount.getId(), maxGas, biOfferedGasPrice); @@ -301,7 +310,8 @@ void executesAsExpectedWithReceiverSigReqPresent() { // and: given(accessor.getTxn()).willReturn(contractCallTxn); // and: - senderAccount.initBalance(1234L); + final long balance = 1234L; + senderAccount.initBalance(balance); given(accountStore.loadAccount(senderAccount.getId())).willReturn(senderAccount); given(sigsVerifier.hasActiveKeyOrNoReceiverSigReq( false, asTypedEvmAddress(target), Address.ZERO, worldLedgers, HederaFunctionality.ContractCall)) @@ -322,6 +332,11 @@ false, asTypedEvmAddress(target), Address.ZERO, worldLedgers, HederaFunctionalit maxGas)) .willReturn(results); + final Address senderEvmAddress = + asTypedEvmAddress(EntityId.fromNum(senderAccount.getId().num())); + final var worldStateAccount = new WorldStateAccount(senderEvmAddress, Wei.of(balance), codeCache, entityAccess); + given(worldState.get(senderEvmAddress)).willReturn(worldStateAccount); + assertDoesNotThrow(() -> subject.doStateTransitionOperation( accessor.getTxn(), senderAccount.getId(), relayerAccount.getId(), maxGas, biOfferedGasPrice)); } @@ -342,8 +357,16 @@ void verifyExternaliseContractResultCallSuccessfulLazyCreate() { given(accountStore.loadAccount(senderAccount.getId())).willReturn(senderAccount); given(accountStore.loadAccount(relayerAccount.getId())).willReturn(relayerAccount); // and: + final long balance = 1234L; var results = TransactionProcessingResult.successful( - null, 1234L, 0L, 124L, Bytes.EMPTY, Address.wrap(Bytes.wrap(alias.toByteArray())), Map.of(), List.of()); + null, + balance, + 0L, + 124L, + Bytes.EMPTY, + Address.wrap(Bytes.wrap(alias.toByteArray())), + Map.of(), + List.of()); given(evmTxProcessor.executeEth( senderAccount, Address.wrap(Bytes.wrap(alias.toByteArray())), @@ -360,6 +383,12 @@ void verifyExternaliseContractResultCallSuccessfulLazyCreate() { given(properties.isLazyCreationEnabled()).willReturn(true); given(properties.evmVersion()).willReturn(EVM_VERSION_0_34); // when: + + final Address senderEvmAddress = + asTypedEvmAddress(EntityId.fromNum(senderAccount.getId().num())); + final var worldStateAccount = new WorldStateAccount(senderEvmAddress, Wei.of(balance), codeCache, entityAccess); + given(worldState.get(senderEvmAddress)).willReturn(worldStateAccount); + subject.doStateTransitionOperation( accessor.getTxn(), senderAccount.getId(), relayerAccount.getId(), maxGas, biOfferedGasPrice); @@ -384,8 +413,9 @@ void verifyExternaliseFailedContractResultCallLazyCreate() { given(accountStore.loadAccount(senderAccount.getId())).willReturn(senderAccount); given(accountStore.loadAccount(relayerAccount.getId())).willReturn(relayerAccount); // and: + final long balance = 1234L; var results = TransactionProcessingResult.failed( - 1234L, 0L, 124L, Optional.of(Bytes.EMPTY), Optional.empty(), Map.of(), List.of()); + balance, 0L, 124L, Optional.of(Bytes.EMPTY), Optional.empty(), Map.of(), List.of()); given(evmTxProcessor.executeEth( senderAccount, Address.wrap(Bytes.wrap(alias.toByteArray())), @@ -402,6 +432,11 @@ void verifyExternaliseFailedContractResultCallLazyCreate() { given(properties.isLazyCreationEnabled()).willReturn(true); given(properties.evmVersion()).willReturn(EVM_VERSION_0_34); + final Address senderEvmAddress = + asTypedEvmAddress(EntityId.fromNum(senderAccount.getId().num())); + final var worldStateAccount = new WorldStateAccount(senderEvmAddress, Wei.of(balance), codeCache, entityAccess); + given(worldState.get(senderEvmAddress)).willReturn(worldStateAccount); + // when: subject.doStateTransitionOperation( accessor.getTxn(), senderAccount.getId(), relayerAccount.getId(), maxGas, biOfferedGasPrice); diff --git a/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/txns/contract/ContractCreateTransitionLogicTest.java b/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/txns/contract/ContractCreateTransitionLogicTest.java index 81ae663ddb05..b8674044fac4 100644 --- a/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/txns/contract/ContractCreateTransitionLogicTest.java +++ b/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/txns/contract/ContractCreateTransitionLogicTest.java @@ -54,6 +54,7 @@ import com.google.protobuf.ByteString; import com.hedera.node.app.service.evm.exceptions.InvalidTransactionException; +import com.hedera.node.app.service.evm.store.contracts.WorldStateAccount; import com.hedera.node.app.service.mono.context.NodeInfo; import com.hedera.node.app.service.mono.context.SideEffectsTracker; import com.hedera.node.app.service.mono.context.TransactionContext; @@ -198,6 +199,9 @@ class ContractCreateTransitionLogicTest { @Mock private AliasManager aliasManager; + @Mock + private WorldStateAccount worldSenderAccount; + private ContractCreateTransitionLogic subject; private TransactionBody contractCreateTxn; private MockedStatic sidecarUtilsMockedStatic; @@ -656,9 +660,10 @@ void successfullyUnlinkUnusedCreate1ContractAddress() { // and: given(accountStore.loadAccount(senderAccount.getId())).willReturn(senderAccount); + given(worldState.get(senderAccount.getId().asEvmAddress())).willReturn(worldSenderAccount); + given(worldSenderAccount.getNonce()).willReturn(5644L); given(worldState.newContractAddress(senderAccount.getId().asEvmAddress())) .willReturn(contractAccount.getId().asEvmAddress()); - given(worldState.getCreatedContractIds()).willReturn(expectedCreatedContracts); given(hfs.cat(bytecodeSrc)).willReturn(bytecode); given(txnCtx.consensusTime()).willReturn(consensusTime); @@ -977,6 +982,8 @@ void followsHappyPathWithCounterAndRecord() { given(accountStore.loadAccount(relayerAccount.getId())).willReturn(relayerAccount); given(hfs.cat(bytecodeSrc)).willReturn(bytecode); given(worldState.getCreatedContractIds()).willReturn(secondaryCreations); + given(worldState.get(senderAccount.getId().asEvmAddress())).willReturn(worldSenderAccount); + given(worldSenderAccount.getNonce()).willReturn(5644L); given(accountStore.loadAccountOrFailWith(Id.fromGrpcAccount(autoRenewAccount), INVALID_AUTORENEW_ACCOUNT)) .willReturn(autoRenewModel); given(autoRenewModel.isSmartContract()).willReturn(false); @@ -1031,6 +1038,8 @@ void followsHappyPathWithCounterAndRecordAndSidecars() { given(accountStore.loadAccount(relayerAccount.getId())).willReturn(relayerAccount); given(hfs.cat(bytecodeSrc)).willReturn(bytecode); given(worldState.getCreatedContractIds()).willReturn(secondaryCreations); + given(worldState.get(senderAccount.getId().asEvmAddress())).willReturn(worldSenderAccount); + given(worldSenderAccount.getNonce()).willReturn(5644L); given(accountStore.loadAccountOrFailWith(Id.fromGrpcAccount(autoRenewAccount), INVALID_AUTORENEW_ACCOUNT)) .willReturn(autoRenewModel); given(autoRenewModel.isSmartContract()).willReturn(false); diff --git a/hedera-node/hedera-mono-service/src/test/java/com/hedera/test/utils/SeededPropertySource.java b/hedera-node/hedera-mono-service/src/test/java/com/hedera/test/utils/SeededPropertySource.java index 59438f0bca9b..f16865f5c9d0 100644 --- a/hedera-node/hedera-mono-service/src/test/java/com/hedera/test/utils/SeededPropertySource.java +++ b/hedera-node/hedera-mono-service/src/test/java/com/hedera/test/utils/SeededPropertySource.java @@ -128,7 +128,8 @@ public EvmFnResult nextEvmResult() { nextUnsignedLong(), nextUnsignedLong(), nextBytes(128), - nextEntityId()); + nextEntityId(), + null); evmResult.setContractNonces(nextContractNonces(2)); return evmResult; } @@ -800,6 +801,7 @@ public EvmFnResult nextEvmFnResult() { nextUnsignedLong(), nextUnsignedLong(), nextBytes(64), + null, null); } diff --git a/hedera-node/hedera-mono-service/src/test/resources/serdes/EvmFnResult-v8-sn0.hex b/hedera-node/hedera-mono-service/src/test/resources/serdes/EvmFnResult-v8-sn0.hex new file mode 100644 index 000000000000..08734b591a9d --- /dev/null +++ b/hedera-node/hedera-mono-service/src/test/resources/serdes/EvmFnResult-v8-sn0.hex @@ -0,0 +1 @@ +3f3ca5e981e21c2d00000100a9f01e1f3353d23d91223d09ed920f0948e4d865e89e0aa39647ecae8be0399f85a30bb34bcf4629199533732f4c1efa89eed0df2ae76d108b9d288c93ed4214833811dddfd90802293ac603b2f8c76a7fd0677af5807ac27a51369e4f2bc5ffcb2e750478077c1c5a2ed314acb299540e7b2da933cd0a82897cf1cc30fe69bafdf31346770489642cf91dff249dac39a6b26e67985abc73325393bdecab310595d9cf5775b812a4954663306b0dc1127f37342e33a04374a7faf800e13ea1246e4a4df95cb5d56b27d48634c2a06570557f537b4beb67ebc35bf5cee482ef91e684097782f4b7401c4fa8a35275c6e64ad0ab2f0fabc2606440034e9527bce90000002096fa8b9c4df046d5744e2751426a1bd5756a739fe9bae458dab67a16c965ca2901000000407425724043703a52655464056c44076465145a51671b316f7702173263601352264d72446f2a09676232401c64724e7b287a2d5a2d034f620d2b03534d6e161601f35ba643324efa370000000170e15f4fac20d0f16df9e703fccf6d9c7f473b74e669edce00000003010002af05aa9c7ff917000000010000004052faf64dbcb868c7ff3401d333454123f5125f10eee45c9c62154b4637e573379febdce345b2fdb833ac958a2967ce3cb231e8fec8a43dfe55a432373f3e5523000001005d55b6cc5f679ed8a13a97cd190e85eb2ea9fd8c37f3632a6d74e81a6ca09c7318a26940b0577344f5403401a9714f2b28c0aedf90a99020686b314a0c513b9c19854ab9d63c95875b1aeb82a4810c1a68e8bb12485a3f1a14967e0212d245185e4d0ca343e74ae83956a66427ae873eabb0afe4cf30bc3dcb2b2b37f0344a11c337f8a892d8274a6cec9f51a89f79dd81d8166bb0cc52d793e5e744baadaca8f682762181dd645824bf3d1a0274fdf32d1aa3bb322648e7221d2519ec63a33755d48ecd28c979051ec6edd23127d85f6a9c62c829a91cc373099b5ee3ccc5609f51a51b3d0409e0ec91966cb83e18195afde4b4f723378df1f927724fbd570301f35ba643324efa37000000016a9647d03573a2e5199ef028144416207fd5aa7fb7d8e9c500000003000001004e03a668916c021fb4e8c5eb528d798acef4c1e776b99b8b55bd0c83e1e9db0fe16746390a597dbc3638b443e0cd9bdd94b30e7c3684ccb89b54f0be44c0679a33b033049a6129a349d1d8c190db96d3a093f6c73563e84ae19c177d14d277aa63e48bd68652fe114832166e447de0eac39362d3c3ec69d5fd80e8543ded5d7fcf13492dacc5c4568d21e81a6ce2aad9990c97b0e622fd32430532c2e674d06c4abf34b15d2ff062bd8fa4424267161f212bde0697888f6d81c4732bd356ee76ec8e114dae4bee1acbca41276d3a75db291ee6d7215dfe9e9dd8e1450296e97de4ee7e925702959f7054e7429e4f6fb3df4f3c8ec3cfaa8320eb3a352957829800000100c7d705318d2dd40da28a25a6797652075f6cd4ed109e4a962b6f6472121998ed9079870be947876adaf40152eba88d4fbc35dce14badb2ad096c5936be5a48c77c2aa8530042fe6657ace20db999c49be3ec5790bdb206e398e516996a30f9951541c48cd0d09a27f800aca3e3a78553941fb289550d62654fae868a8aa21ef1b4d693696173893e6a054d630de1824476f25ceef7b209398418b5b54b6f8e183d681b67d4aa81191c0a3cc02a8723f0ef013a496c467268410085bef5ce1fef10247f31e8f441a331865672d6e83a3ece2aa4343c7c980212538b9ef600cd67dcb2f867eb317b7b7e064dda1a81a4c4a888a91916695693b5878da2f31dcd370000010025c3eaaf651878f6513db232966ec939c0b015f6a696b00936203ce4d140b9c92eb01c42b90113f0c92688bf045ad041831b2c9b9e7c59449e8eb6506b148b10e612ac0b43582b2a62e8000a0353e2f490e19cd8018dae43c739711b0ad6d787f2e4e18680625973e27a6d709c265d9c47cda39c00d0731eae3ae27aeed31d1753584dc2f8378cf053e8dbc4b8e279c3e85246e541313ba306464a718f1f30e608acdd1fa44482d3472c283bef5a01a1d80f57e86b864b5a5fe64f16995a02cb59f34d3eb93132e7dfaf159d636bfe39687f8b0de24e6e57d34b3b45441d6e5770f38732022d5b2d9ac94a76349cc8dbc14d783ad9e43beb0945ff0f349038d3000000004005681c951844a5b02bf11c7653bc43184c2b53b103793e3e3373cfb95f2c2f19611f4b9f146e771356756f7f3aa198d5b71b987593ebe0c7cc94dd4318e822420000010066f3b16d5ec338eafcc501165b35747943165f355ef094040923d5add3dfef6ddecb9ba204ba7dda57c6be30c36c9690daf149c8b80225b250f2088a5f79aea4d687fdefb1ccb15d0c72b4bcdd050dda05ded92170db72cedb5c892a287151f1db1b5cb1d2870f126762950690579af69681eb5b4cbd643e1a72008065253318594badca4df4f86192efdebe84727c3805a8414f93a7785a74fad9d2fb8c95cc1c4e792a48ec85a4547204a5d41028f8ed2a73777a80c2dd22811aff129a0ffc302a6f1f11043e56cea92d30f67e961f44af31a02b36badc593333284e84c375476654022269ed13c09f442e68e221cc5f91df36c452e8f398b8f3ef3f58b0ec01f35ba643324efa37000000016f05bf4de86af23d5c6fffdbf1674e3e387b2c97ced11ef600000003000001003daa23d95e5b77cc84d7c1702fa2684deb43457c8ea86ff885e53ecfea83fffb6a89ea732ec3699fe79de503d108665cff13098280d9a523847cea7a2ae1ec11e9471c8dd87c220fb15911f27257919f977034451f36a211fcc4dde5352521b86a6c86938a6c78f97c31b3ddea6620b6cab8668b1ed5c19869e12004a834e3ed5de43e82bcf6b7e1e7618ec8e0664a39bb3cc9211f2061f804659cb0e4231275db7710ef4b7b2a4a729551445412eb27f7706a9b541b72bf37ba875475859ce56bc70afe1185c74c57f491a089359477bd42660544368b5c297f834d7cd84b51cef59946666f9f92e448e579f1e98dfc262253affe9c1d0e777302379c2e5087000001003e5214af9ef966856910bfa07e262f4faef366a63898b75eb3a1a2c9115eadc2f19058a1fc6d21db42d50a0de7adc9471a0f98bcaf123647c1e86947aa3573da1bda4a631b6c70655e2e980ea8236cfeb03d1548be249e385fa728c4344c74a9fc2b2da38e0a4592295194b7cabe6751288f658d24ef4a27cdd63232bb971285981daedf4692ffb3d794400a2e6776745b57a1be2b449831d94191a355efe79c60a7afccf23f67bf1746f49392af14e0c2fe1bd8094a1ef0b26b678fff445f1473d8c25a5bc4013e9608511b473436bfc311668a4d0261d865c5a7c6a830cdee6206b0c58d50a876f22a5dd0910a893cd1c1e5c1befa6323bd736219f3046408000001003811a3deb95daf966982165500c7143116eecdd04dce9fbed1a9bf7cb8a97aaefbe55a20ed4030d94c5f9a69aeccb6768c8184eb148de38eca023211972b536246312fd15b2642ba5425eae4649a7694cc36b6116c3cd859b68127570c435101f78364c3bcc269fa56ed5138bcf57ad754eaab7fe3d11631e4b73021f5cb3a980a96f066a6c059563d227c30dd2c8db54674f3a7b6a00178b2f599f953235168edb23f5b786e12d063d1d4ab626486a585849b1419e7843ed4b29e437ffbfd14bf8c8653876947c6537c703bb9b952ec4cde9236880cc430ae657c8b0e5c7723de4eeb02ae979a66caa0ccf6d1b63d3145fc06abd7c66aaf0668d20cf9f1d90500000000409a3884defc4836c2c8fcc769b28d845521f233a5b095f95d9ddf755c0f2ce0a458455caa56ef5352f5941ef1ad66f393ee92ce41c698474abaea172a4d7b980500000100676d4b8353460824c0a274f1e2fb0944bd7158fd726770f38e792646ec68f9a4d05261ebe7e5077774aa1a516c3e3d75916507f4183733ba241b62fcf6b6de9aa2917e792ae5f41acd9752441022227358aecbd49c6264de6a6a993e7a4c59226e2174c4c19eda3ed2ae7a02c68538ceec845fab368509b22867890246a6661f3117de701db9a56375def52563198b08758a9a8d01a36fca2462e3723c549996fc6d0502f4ed0b076b33cf93a12d7a60f1a5d5ff0c6f260c532e7635fbbfbe31a3ecdaa4f721cb4af922c6b46607566e11df4e5ef7f93ccdaa6bbfe19a8f99a089856d6b2a9d848d3a59bdcfb7a8674c18694c44f1d351ae84a09a014aa11f0101f35ba643324efa37000000010d59ff4e9ab14e8c44bf93bfdd891f43499bd7613b95148f0000000500000100c210637055ce6970cf949358a65dced68e6b77a72291f5fc369025418279df846142ae039c1f4a79c508f9c556e179551f104f44dd21506cd04d064298c1385ba3d3850e6678c894f1f1c2cdabde8565ff5196dedbb566b75da83bacbfd19f1c4278bf97d4f8dedc134edaabd4f04442c07b016c48ca2725b293b3d7d8bfeb8fea01aa050e0e54508bce3c4bee8c77df14be81d77d385a7f7a855a7ba7f0dbe3b9289f28245ee749041cbf4b9d55f44350249a66905fdc4503ab2b2f669d539f03b2ee2526277b7c67e359e450e17c92613477d4a99bce6d5c2399a4bf93d9cdf8d3421525670450badf0deee21a646b78ab5b24a815449a1a4288f77ecce89a0000010014a9eab5f6934e44a2b85f8ec833ce5ce7f78863f6234f490491e598355cac7bcee82837a514b00498ff07d94afbd4789b524e68571b0845bf90b88a99d7bed2f601b2a05518f595c1718d061c7f0adaaf303f3dc32d828e8892c31781209be6f89c91643b879dd0bdd0bc1b93286cb0d1ae4c47682e407b7037e9fdfa8ea843b28700bbc56cab3965139d5d313e9bb119ba825f47479ec7ac91f6dc69b8739b8fe1e9853dd70fc8b4c3d765e6403076a0bd2b9883ebb3a6eb2ffc2a0d86f3f33dd638cd520e91f46ef2994f0793f9c44fb8c79ab3ccc028474de3d13bc35304a43ab3e6d03bac4f24dd5cbfd886aff60ec7578fc5bb1868e6eb8be7ddeebb8200000100635286c1d77cf8105175a8914c3a9fbfa09007be9d2cb34be385eb62bcefa69cfbb08dc018f2d1e6b35d2c45c2c2e32141997aa5e0e4decace3235b0962dc1f2dedc40fde84522ab78292aa6c1bb6b2b42f0c6c01f2729162b6546fe8829d3c15d7e9c35029646bc5d570b9e021679af19dc21f665904887de407fc13c049bec6e1243d9eb3ca58443b1dcc39b2be584e29534e55bd17ad23496c219a15ec89349d4e725dd397c70dd0fa17466a11a342a778b919f150dc75abf950f77b17cc81608e1c639eb00b43acce48c83f41c407266472a7607c9dc77dc30dd0a89f4f76bd44f2575c6a87065cb6ce85a8c43cbfa62e776f03b689f67fc5528ed08aacd000001008c0550c194559ce816af9fe0b7344e973b4fcdb7daa4428333d1d38c3d7e8f47d374ec1b803d08925f42cdb16b5f56d5c635bd8d4dbb048d49f775735fb3ecdb860b36391601f9f7c5d5e9a994a3d6ce0e05337a8507f662e7ba30dd4bb046d9171d7f5ab6bcce7af9442f72f4d132be4f26ca9e076ce8acd198ba1e5a7eed2a6e4f187d59599601d9fdc47765f695b2596cf71ddbcc4a93577fb769ecf7458f41e14883431504bf128b2097b330a51071eb132e2dab78dbda74b2e1dcd5809587c3586e6907896ed4ff5b4cf29d46326818444cfaaa1d55a2beb3e8b74c3998d267e7092e71aea5c39ec3bdd5573c1a07d943f6e2e16b8a1c1863a535d0075500000100998a4fdc6662ba72c946c8bdb433cc565806295b2c6e1a23d7a911898493c46b6274e5a592cabd8c6bece54d88f80f8da6d9d606a1c1dc18e14410dc5b6b693fea0566903c34c5c8ca1106e725f74d1f6719b6bed09df5265585fd986feefbc4992e82307e0ea5ab114febd4c96550a090f2fd53079671c35012aa6bf9289104dc5c5b205f5ff39ff54f5d4b64b47a66eab56ab0ee3eedb7f9d4d3519ac39153705d365915a5e90471598dc527cf8fc74d008c7cd9d77cdfb727134d207c7fed2c74f6e8a37cd831e57fc95d59c28ace7deceefa568b2430555505c6886b8460a6256de39fba669a9ce181c50861ad30db86346e00a0b3b72806187e2fb2ea89000000020100f35ba643324efa37000000016387c02d712f909a6b5a1d8d99ad78494d86b2da9d69724e0077a80c80cfabd2ca589664d51dc0219f034036b1256eaf3f00000014df198357f90311829e90969604cfe528ff42192d35efc990a5f14d0907ce04769bf84e1400000080f5fc6c2e356b6e8c1447b46238540b04b7af644d6637b7d47c85a45e50008fd575960f0e04aa5ae284f7bd37fa3f3234e045a88169bc0100f9d959d6fe0cf479aa346a7ae156bca6620619307e9f2f9240e9cda28cee805264633b0bb4acbdf7eb8df6d30126290770c925862a45e024bf982560da48ab83ee0a394a48b238be01f35ba643324efa370000000144f40107032cbe96235d89ceaf6c847877eaf263a2810a1a00000002010018ec32eaf93715510000000101f35ba643324efa37000000012a567a6493689a9626d8602eccefb03b30a31d30b1bd03f94dba993d5fd043930001f35ba643324efa3700000001107d190ff9a5138446ab6f7a94f1325928c8210f80b2f63f172724fde500949000 \ No newline at end of file diff --git a/hedera-node/hedera-mono-service/src/test/resources/serdes/EvmFnResult-v8-sn1.hex b/hedera-node/hedera-mono-service/src/test/resources/serdes/EvmFnResult-v8-sn1.hex new file mode 100644 index 000000000000..72e4fdfb2c40 --- /dev/null +++ b/hedera-node/hedera-mono-service/src/test/resources/serdes/EvmFnResult-v8-sn1.hex @@ -0,0 +1 @@ +35220523b8f6f8e6000001002ac3e12b05e293f9ce5822c2c12a94314a12780163ee4f1faa792dca790ed165a1fdfcfe14431009653666c59853031033c1c52dc3760cf5d26d458cb728e5aa638d3eaf5463f94292ba4e30ef9e8529f6b231092433afebc661174d654665adc23b32b967a49858343cc37e5591cacccf54362ba0c0d12728c73304427f68bfc856fbfb555f20962f70eb03f3d7ac911ef4330eb20c47b78e1bad4207ffdd685aea98c968fe1ab7b296ace80ee0f1b623016dd7869103628cafb2b2c4ffa04d146e7ae734bf5b266e2b1309dbba3ed4de6661c2c183469ea7f0fe59f1ed820dc8c4eccd6b4a94d84c8dc59c6694384c12517a3270746ed99a96f4f7f98e52260000002083e5bfc1134fc875a20cd0d0c6ec96a39cba6eb0ffc489d3bd4b921372688b500100000040563f145e66380955762b32594e256d544c446d22752d5d69780b52310e1064130f25446227005a25441c255d5f53596c470f28242111324f3b440b794f271e7b01f35ba643324efa37000000014ccadf0277dab87728cec232e5318ade606f8fd42175a61300000003010002af05aa9c7ff91700000001000000408f7b359b72a941ca83f344b4fb311d9955bbf8ba2e05b94e81ebebfb1d4eae85b7027db7444f6d2e7e1b187d30dcd6d88fee52d1804a6114b043919b0d8977580000010075494715b6d1cad921cd94bd27fbeee72a70b1719dd0cdbe5289eaf5fd0834e0b76b128d568926005e9df555e43cb30c83f4741b908eaf54101a75222d1c964abfb87efa4b649c329e597ba47694ca18a4a59ed0845199b6bf1c685ff8d8606d610f2ea61fb796bcb834b4fbdf13ac7914e9cd4be202eeb9800e807f9960ee528b217a100590e947badf565e061f3d24f845237d684ad03ed85c05e9cf888edb0106115ac92761bd12831cc8a8297e769d32b04c2443996dab81ffa189ec3052988d9518da2325b5223e2aebb4708b8d4d71126ca6b4a81a3ad8406248911e39b2c8b928f556cf1551bba314e239c5f944e443afee688484874eb2483e4e0e6e01f35ba643324efa37000000017b2b81899ba18c935a41156d3ba4c9563b947105e1111d600000000200000100c0a2bbd63f73447ddd60ba211432da6153a4d86aa5210f6e7703a6559563e12dc21f4d9716b81727e766b667c698869af56925fc92a3d9e69445ef37b753ef291a31505b9d09c13fb3cfaa2dc733fb59364c6fc3c403b616c2f6a4de12812f2dfbb20ab3cfc732cd0c53310dc0fd5c34c4e62005aad58a9136a928d010e0dfaf7de03a34bde86e2aac3eadc2195e35aeebc297618e70d1a39c6084e53b72310a1504cd6b3eebf0e81d490715060c92cd01219385ce5855e1240094bed05cee328378710077740a29555512716f77d9d005c73639b8b099f79a7c3b2a1a648151ef685020e07e74c526bade60c4a756dab6840784bd3396a9592869c852c459d000000100978498cbb7db3009f3cf35a81804ae0ce2b6822760924b35df14e8246ebc981fedb59fe1d37a787ad6ebb7af69fc0edc0a47b991a7fb0b7ec3365110cbb74416aeb9186853df602d4e553902630953246e606aab113c4df750127866f97f735ca6342b0a275de57a1571d100d1376fb87d6c43e3cb1b6b772789e3efe037b6e04e4c6a38b58e64e74b271df05791524625c0259d8a827534a23955f8fe78f3e4c2b58090042c61ac4de7b13816ce97323905e466b9ea4e6de0eddb972bb58d8e7d124eae0ec88fe8962f7d74fa2c9af802f60e886c0763c3d0ea5b4a988edd30d48e019c9fe0e163e79d820dad5f909fd6c8630d63509dc2a302c9ee552cd869000000004091b1930c0ec4708fea1c89fbac0de040d2879b08c7425f571582844c21957437085a89023573bac1a12e11284671f520fef28910c5f55f42419170c2cb440b1300000100267d873f9e1795393de52886db023a607d1db72ef996ad1b4f0c74836e8e35550c8cc5c94d82f8da018f0ecf3e69e615446ec9c0478e8a4eb5e75f0d3df7ff96cdd4423ccd4bb3df8d7b6bd9c3f2c07d9b338aa4aacb6084d9609b2d23b406fb1c71033e4d3f7df7720125bd5c9f6144cfdaa03efddf34a865bf81cc0cd48d2544f80dc96f1509a2213d56dc257390dd9dcc02d1394fe3d7387d8ca0a86cca30b7f4fa5db6aad4915dadca6dd49d787fac63803f54978ccee55868800c73f195b111618c2ae69b9129d8194806952f79a296383ca3a16fdb3d6db72a103b9b320582802551fd50140dc8b06a6ceb5aec949667b5d1ce74b71179ae739507af2a01f35ba643324efa37000000013d4c2101ed43f6ed7b87a1e91730ae831829fe04750d92c3000000030000010010ee4150cd1f2b3e668a919c9e91492c7b4f6f8a213cbc9098fa5bc4c03dc0984aab0ce440366457eed1fa2a76a5cf2653e042b20da31d6578b21bc514a808888f105944d3ae3a3c061e735cb53cdf0641dcc4d1fca4e64cb1fcf826237c32b9f3a9c1f50833f0ff7c73bd77493cb3f828413c30af3df8e3796b98ff53c1dd85efe0d4c61a980618594d45ba6064cb5b2e5cca4db1a46ca1a1bcf543323dd72c78e76dc75241abb1749a822c963aff4419fd5d5bee0d373ebf734f6e110284761485acd3a6e5d097b3de9869a57a4fc7e1b8e058087ff379263462fdc1e092a7a8d0c06b1335c5d2072d22d7e09c8b35ae0973d48814eee21d11f18a50fcbf3000000100f5c1331190e0850b064267e35cc4d61e1ffa80e2c8678f97c827e3242b80f6a606b99097e143204e74566ee687de5c2c0c7bb67a7ab686ab988d582a47f1af43b2804f32bd90403588931165efd5e9f59ac72ca1aa626e6fa11a5169d53e2982c8554548da9c5703eaedf0382b9ba31eb7d925097102938bf182d5697074562e9fb3a2f78b396966461721a159a50338bfa217319463a4b0f665dfb8e6cdc125b70cb31d2051da634e5c28129f57c850b3a32de1f3e2570c9e3e029bc5268c330daf1ec1100db8c3083e3d0749ce2bd997032f4f2bd51a198deed4a4b07816d143ce47b2c11eb30ec7e353801356af76eebec02eaed4d0bf3f1da875da32f083000001004bf7ea34e40f7677093dfff18a68e6ac0eec5487a0c4028d6bc7ea7fbab0a0d27a0d5cf04ed50fbc25738221fd5e957c29e780b483924282d4f8a5a1c412e929a09d9d07661c7f1ffe9a233d5d681cb02c5ba182a72d44af480e512625abc60b3b59283443c4b92f81907797ef90bb250bc86c5cc0be1f1553f3e37fb577bcfdc42e20908e3ff30d5000c4b11c3fc12e81d4555a7251f764e8a1ec646bd78a64b1f521cbd0c74e7ef42b75e7da653ef98ca9d82b843819b79a9950befa869370a03c37c6adda57008ee42bff09df564e681394f16f1c5daf65be08140b3265eb2c56deca52788c74633d0f767124bbc75456ff57903e680fb0650ac59f8966e20000000040a584759ba87afd0e5d696c47a94a53200bce5f29a61f5e771d69d87a2884a3170a9ed2b983cdfe1be3909945e32b6281560c9dc7271b3087c626b9135055761c00000100e90a7fb6bb7a2bd630de28b89c939ebe722dfc503e0f9a1cb787e462e94b52d9a31ec23404525353cc7e4fd4138d25bf2b8830f9f2872e39a1bcb000eb073a4a09fff49a9d4e9b3eea7139acc822897246a85e3a49fedda886e02d676f8f353548eac95f3d0c55a1447b2ccf00fffbd970eb340fc0210851a34880f0ff6b85e5818d8e1f6b76361a5ec820b594cda9888e9c390d43b50e8043682cf7ca7e6670d3a93e587ceea101120dcc0e74ab721c6976791b5620c7ffb82a20dfa36b35d2ddb271bf0310956d1417ef7c661c5a324315deeab9754d86f73c74352429c09f590ef93f82d3cfeb095555a64b2075d6d0548c9065d1f4add5aa9ba5522c155901f35ba643324efa37000000012fc623d78f3a051d1d83a2657e6d167e7a6aef67559c0dbe0000000400000100b49ccd53d0a2993ba6303dcf24e749c18db2c6b1224b3ee2e08201e25a24522a96ad75fcfef7d0025091ca0a004b9c572a0cdf83db1648635abc45ba4e9483a92439004f0404921d723c741e75c5c667c0ceae3e19cfacce56e4f8958cbe0050f587fcd2b658d6f8a1af28d6ea569dff420402cec31ea0a4c3e9e3f2b4f80eea29ca0c860737a4e06a3621a24f5cc1fa6a00300b253faf77a438ee5e023bfa9a7bcd46ac7fe2d8cc7b2c31d7d6eb9e6252d4885b7ce5880e5080fa10d1eff9dbf875ac3b4f89d8196cffa76b0f8c937912b8906d913e35ae0995ea925993884cdbf906043e8997e17a91242a1637f7516e0e915916f34c550ac234969290a9fe00000100fd75d1a2383bceff6c9962deee6810ea8bdddd9b6ea7254092037c0e72e0bc7d7e569c9ca6e1801221fa32eae04333b8a486cafc4a061c99ee62cb42fbeb47828ce0b5c4705dbbd4956a116daf1792eec03ad92ac3e088f05dbd67fc820f3808d430daf02bf6e80594964db6d0582b42a1be2f57d941b7533be3ca67f92a32f30586983c1660e335cd463f020cdae8dca9486eb48c425a552b49bb90e04737a6f375917d719e1161464f64fc4752a6742a9282cb9218f37eaa403df9371a75e57d0555abebd6390f297d84a80ea20cb6e474c2d231ffae2e0206a18cb634e974f84148588aa43f60bef4b25d46a55a9e1534e97c5b52b2e873acac52dfd0e0f0000001007176b3671cf1887b45fea5ef207e5e19e2e52faeff6fd02d188938cc12bcb91e965e239ab2a4cf95b9ec72d855a0757585e4704c6f1c5d2d5d15be8acff0d0af1c7570c8b0495bf232820a89740bb9d88f5714cf44a8f479399c5f2ff45367deb2822db27539d965f85f1163ae74566172ce8c8fc11af4844b75d5d7269bd63e71cbdf634ff0e5c4e55a4f2d0537db70654a98c32d5f1319aecab1cc66e194862aa92f1ddb1652e397836e0ad7a93af2fa6ee0b44b1f0a385f9e732c842843ddb6a8272736986127eb90b70503dd7754befce238cb662ba053fb8fb97d3317aba8bd93b84e3be2e95f74e0f0d06af1aad87b48048c7ad8a3ef250f6d27062e6700000100db7283d31588e85c956a25555fa340afbbf57a3190e9e6c1d03436c737d38f8d5d8e87e5250b21afed66cae4035e78bbdae90ac52a64ebe1dfcb0af2adc07de122c1dbefa9b8617942a1fd7afa21169d628ba93c633d734bf87e8f2eabffd0dba693c003facb3d766bbab02ce5a75955b5f2e73efce05fd9a8929df068357eaf898ca419c1399453b2ba7cefe3b965745c922f06003f6c1c66e92323ac9d9a1eea0b558789d372654d6fedf0d0cf9176f97d5634e4cb9c25723aab00759e612656d25ba4b02aa3411f38ad4ada29b708bb86d5c0ef574453518a1cbf4a581d6e732ba58a26dab9f2efb058106c84aaf881b641e2951a100dabf12f692f5a692d000000020100f35ba643324efa370000000142ee96a555dfb4dd505362ca2a8518c90b873bc89986c7ff005fd51588af8a7a0e145d3fb37bd16f13164c6c0e7f6fd453000000147506706d7fd9d58b62d70b6e432dbd89dbea7558347d0cfcc7699c155fe8afcf3f38bec000000080166785bd1b8b4225cc1a704d24325083078ab24508ec9ab7414e16a345e9341e4e31b7f5eaa8bc07756cddd2b4f2827caaa8c3b3fbca45403097918bfd889eb708bf3cf12309241eb265c37163a175663fefd1c05cce532cbaf8fca830dc0237cd83e8af04342e49f593a70917f5a3ec3ace7579c3389690b458eb6953c5e70101f35ba643324efa37000000014d77910d7b48598a20ba77e42f4afb1754fc65f254bcb4b100000002010018ec32eaf93715510000000101f35ba643324efa37000000012396b11d9cf349f61da938297bbd3ecf2c5e12d1806d449c0bd748ea682d3af70001f35ba643324efa37000000010f772ee9b35f273f657542943a08b83a26f7b9e6b89cf5ed5e85ed10c6c3219e00 \ No newline at end of file diff --git a/hedera-node/hedera-mono-service/src/test/resources/serdes/EvmFnResult-v8-sn2.hex b/hedera-node/hedera-mono-service/src/test/resources/serdes/EvmFnResult-v8-sn2.hex new file mode 100644 index 000000000000..a73bc28ea8d4 --- /dev/null +++ b/hedera-node/hedera-mono-service/src/test/resources/serdes/EvmFnResult-v8-sn2.hex @@ -0,0 +1 @@ +1e67b95cc81534d300000100b56105b73b7df62b420802e5cd7f8c11f120116f8b95f544221f30788dd206ab0b2eb0580eacb8b78da427bebfd2ab687951e842bf2817d4c3b521c0798aacf22b24a0549ce994304e45aabc9e31ee211f1464695a08c56cc5d03ae90a4ca13604fbe4676fb99cd1a41bf376625a924b56eb344bde71906911036bd84f3a75dfaff29e92148c4094fa45010b6fd6d9df211e95afbd38531d2822c27f5d04883805664d03a8b2d66e2e23c908e467fc31b174dfb92d606bac54ab1bd1e394785829b06fafcc8791cbd2ba52c87e421416461a4d3743759a1e13f73198deee1538cdea4c3fc9ace0f7b422126e38f132c12bc15c8b456f1566d05c24e9cc349ae900000020020021e5204922a83e8866b67d3d2af3767c32a3002ba13b90a1bb5e1967503501000000403c5a1a322b00445b12350474463f1d67126405646d44750a2d68041155090367673e5e6d63630645262a2670502d031f3e6d17520c1d502131605b06511f5e1d01f35ba643324efa370000000121f1fe8af1f20b2c272ea0b9038760cc68620ef6d70ca31c00000003010002af05aa9c7ff9170000000100000040a604fd85001c316d2493e223b093ce4122f242162bee806c69fed2e98e8fed77633829f221e6d5c3d39883048a20d49500ad69a89aee9dd6a7330342af9dae3600000100f63b772364fb0a070a67cfefc34289e50c42644cb039f97fc4db0bebf365edba379916bcf1f61598bf279cbf54dac5c5c2eaff7776c82fe912227a95a2b5a7d10f6b3daa6663fb5b6bd8811e2b9b7490823b5a0ae56a5a038ab13684c7f3440ebfafd06add99eab460899bcaa46847618e0e3add18bb13df13dfb5c2d785ca36d50f5d040b6b50e2682397dc4a0175116da286b46dce7b00aab8fd015c01f52ec728499e1a0d0739c1be0d9a38868460db8912d609697be86c8051026f5edf2085ef7da48a4393823e4b6c9535582d2eda017e6db40f27e7e93721fc4d17b3cd1b7d0d18993a5b68f49852d0694e6d882fe9c3022c3e9fed46f935ec0fcad70001f35ba643324efa37000000011cd255fb61e7ec8e1fd24870659b79da2734433d6c7191920000000300000100464c95ebd81ac98c0697917792e280434c5c902ec4fbbaa0b9299394750aba4f1c169c9922c0df43a6415991b9fb1eea42ac1a27c7af2d068e2af8d0b3dc183906d727b4db53d6cbd7d582609efad5287d34bb16721c78b0b468ff0025d4159fb05f56c59d33e90bc3d3a46c41e252af84db9f1662a70609ece3297787821948f8ab2273349adcc4b9699b7b1dabff5e8f1240ce9c49d836c7884df234ab87dd765360537f149c46de87a6d9e02b02abc8da9f8530f90d6153a289ba41910ae5d026f60f065c838e208e054517cfa5243bcbf07002a3c2ab569e3cdde28e9fac3b64fb701fae2fd716b00a355b578d9b6affdb43f8a2b7adfc8016d6b214a61e00000100bbb10ee8f049cb3b01164c50ae2a8a29b99c2c1bc9abffa467ef4d0208f6359f0adcbd62bec0899eacb09b596b1800e6e9c9977075f4691de6e3e1ceb3ec03b6b4b804c3c467088b35203de21c98fbf6fe911a287d15c6408a6fd7dbebd0fd31fb0c820b44c6b35d6c5b632ec5067242d27fe71f030c420f815af6a6bbed600fe991900f2c5327a7d0a6110292c792d7eb90683dcbdb05e9a062f35c4fd53c905debd763de7246fb175023b0cee7d7425409e8165ebcc83787607fe987c18cd04263d8e9724565eb6a015165c967c8e5fa6da69e4b3784be5c45e1be9e30dd7bae22a1a698640fc1aa880b261a8d91ce82aed28f3a908e04ee8afefd512183af00000100d4e07f734f82583723bc5c67054af9d7fbb44db4087dc5369d2105683ae67d74f3d3d90e2998447ff1f679fadeee71d34388a8f8776c243c281cbe97e41c142988703461691815dde4a4ad8e828a216914c09b0f02dacaf273c99c5687ecd8ffd36eafd45faeb5dce2a639b6f6f5a391073dadda4962f9d2b20988fffe734d059fc7ff4fc0cf3f72a3380164c3890dc81efb1b16f9e2ad989aa6c2d1ee7402f622b8f9bfea78b9e362138b38ea777e914850f139714dd7558564d1aa0e3abcde8776906393547c2a9950289c15d70931fae7c2df2c7fe13ffe5ffa5cfcb832408ecdc5163ea58a3bed9b4f48a1dea50d681ebdecc42e6ae1f182856a274b87330000000040e360ef985c590dcd795417a594be97d145f4cb70c6c0d5999f2613de4f4adfe3ed5da01271df78361323922bb794145e1ce88c2341610a07954acdc06020523100000100b8f89e3460e3c5ff1bbdda39782b0b9497d71e78a2ebb3def770054fc7f0d9073272712fe65815f766b72fbd8d97934c40995a10df9de71907d14d85574feebec68f1a374d80e06f83d9779ad7fe3f7e5284f26c4378542e4e763e6086e30b04e1028c0a15392e396ee299f578c860b8fb4bea55638c60788f486f032d68a2e8174bf947c51dc3436d7979de313f0bb6ec38997cdf69646730d4aaf8e6b97e2bac16c6da025ae5b0d0805c0821ffe9bc974feed46a168c7526c29febe2d4e38cd3205ae0b722b11beb9a1b3017f4594eacd26a42a0c792deec87e28f5d316b21673cf89fa862a00e297000a57c35326f8cd7714d2e02b4ede4d7ad94e78c6a0d01f35ba643324efa37000000011cacb3616b1f194c584ee72f3e31e0640b51749f2507f8680000000300000100816ec22578055b00838ab3f0a4659a01a42c931bea704edc6c67ba507c2e3d8fec8cf23387d9a07d9f763a0b48388274028f7bf22d738d25812ac349fedbfaa467e92b8e2d773af54b0aed5b5f590658f42fea551ab556289718e91fd49881c4abb47dc661e4e7c86d9e577f04f531353f9e4187e7063a2459431fc37a929c0752ae84693c8f871e0aab78cb4e8db1ead07f6b9779efbda4fa0f2416b18a198c738efc119a2956d8e3f4ed35afebe33bb39938e481898adf64f85cc7026fdd6702594a043906650a7b9e6b33ad5eb3645176ebd3c0ba9187c8128d8da3525f696aea03ac9bfe19bb8fdc3573aaf3a3eaa563e1932f4e382c3645b6b2b03411c7000001002318e347cd9a6964d72ae3cbfead42660e65965d83934162cca493b6ac7d04e3f85904ceca23f4e92dfea1049e8d5b6ea44dc1fd6e7687b2f381031c4477ba9bf0e89b449102705949206df61002dd2b6197972619e280727d2d95133398c831ccdd53782cbab399562d74d7736419ac6cc956867ca18e529d9c2d394e24fe5f23899dfb4d3da7a359c2fcd1ba454e6770b0f0256a204ca6e52440c65d0be339d584b24dafbef15620856ac2376fc6eff922b9c716387244476b69044188aa5b544157b071f62f1655f7aac46d4b71d94a612672ecaa8cc5107b93a762a83921d5126cd3601cd0fc1df8b8d014492fd5697f259d0bbc830b709ef016ef053b2200000100077d5face2535293b2dfcdf052086e02eb53a62e3243e447e536bb6090abc2ce8bb2329e67632f6b08e096e78254546cf832401e833c061666d2df4c6d4be510425da788e2a6a746fec4635c1d7a0b83dae9a3f46e724def4af2fd6954b475d83ebd5d1ad19ac1d664caf88fc2ae2fa014969b8f76d824449a841c738068694a50698a98ec7f47f6be9f1ec8c70f9f7b03e8861dbf677104e757549d365ca949c24d12f9a044dcdfc58574e8334a6c5a1f4dd8b8893d76ed800354e3b677900e0b5ae39eb61873c9ab52748af701ff72f81b76dda87b3643b23efb0dbb82d19edefeaa109522f2a3d269551d229778a9e14b72e414ff693b78f4685ac45dbcb10000000040ab8a33e2a102ab44e49695ef0d7b4f5c6474e189d19bd39a86b86bb06441a97a81409b0676e7893fd30dfadeab43d22f94b46624c2612e450f5b73b513131d4500000100fc283254d1a9b117d47d0abcefa881241dceeed3d0b32ae9e19b6ffd3f525d8d3168fc82e09ac0507a6f814cae3638a7d473bcd6b1a553950bfa1cc101094ece39a37a4931deb2f2a9ec2a4ca4084dae1be42f7e7f76211f50a0eb6998fa35933b9d96efee75e9becde96fda74eac22d18e4f1bea46058e553a96ff8685017947e3ac61c71cb385b1109e9f12b0d230a27186d348bf960b50fd2f2946fa453a270f17c9678acc78fa7d49194c3847e0074ee00bf0944790831bad98d1d586fe352c8616eebf0370331973271def33d7f42cfff65152520c82610444306223dd99b669f064c09f1684aed51d72c4a146cebc6fac16674d152b67b05c67ca4c4e701f35ba643324efa37000000012de911d7b52da48464101e99f3526a0c62a0721fcda4255400000005000001008e5504e33a1c690b8b873f05a1dc12e6b81f84f3b49982899c167806f954641f30af441aab700c7bdea59e16bca0056e4a44b831e250829987dd6e4c4eeceed0db3777817f79bc28296e781d2f66087bbf64dfcd2ff37d40f0be368f9b844789acfedd91e5ae05111f8d6c0124191a8533df50bca24b7fbee7bbaf93fa5a98661ca5c095b4546d28df4f69f7c755becaf78fa21c5af2375cdee2f47e75513f5469cd86d8dbef7433c9a7b3358c857f02e6170aae2d504224ab7b5c3f823b2526e69c36fcab37cf320857a3cd243b9686466bd6074a976058d99e2265bb346f09d431a977928b2c49b451bd1727d6a9e6a3482cfd667b11500f8e73c9d1818931000001002add8f4c2a0190488344d7d8c0d9103a5e089a21146f1b1c0d6502355b694d19cc4c4726d792590097353996261753c40b3bdb748284b0e6de547938af7b321c5fad112a7644f4c8e568fd11ff1bb6c497de3e09df5c9bb630a291a27a2eb0da1b0e0b47e1083dc6f3783d3ca6103365c80763c66e68565ac0e08925d841788dcffd248094a9c83862687c3d3007cd288ebf5efc40db2fb191ae23925c62fbae07420a64ebaff559dde74a18e09a4ee49006a4162c7ca47b3fe7537bcdb3426c33a26882fee1c08d2afa05b416f1a5ce340e106c7fb8d99b0cbafa377164a631bb03ea4303a635230c422de0dc464f5c3f24a5da826446df53f93d6f79d0275900000100c58de72cce24e7e13e390f8357e284692ba7eea8267c756770800c69a5dc8275efa45566b56379ec96e687948779ea462a88d8c1cdcc8992afd719e163a62e7cd37358e51d5b40be75c55a561db7a1ec91a2992464ea713bc0134d0c55a88d7d66209890681248cf9433e3360e2e63fc288d01e9b7d2ffda37e9334265aee709f30cf739bfe5ac73937838b41a62de5fde1ba2b083834ae5caa4c417248e6805f13374df4fa8497db180cda812e26192c8deac1fc4d64d85e6db2c68b6e14387bd2f579712cb7805c36b60db41b6686c4dd48a89b1190a31c2afde84bf1232dbe56359c90fdb0acedecde00c5198d1090034dcf9f9cef2c36bea8b09e0e4523a000001009f7a0694a7a945dfa916faa75697d3318b1705c5d71c6f63b088968bbd092915f1ebcb606f3daa5c5d89e6938c3fba4bac495ef9b1569bd813c26966910e78e063a81f3222003651e1612c5b4dec32c326e6bab7929c71a16afb7855dbae86224c9dc8f0f564a83e2b1d8064aaf6d0b51c1a1e491b96570ec102ec9469b4010226183d6549b77b51b8151b08366067d2c714b44deeac2aa5302e0edf54472fc9f75ea7f31cd13ce5ecc39124a65451a41869d0aaf09bd81f4f91fb0d7ebcb900af8c3e09a80a2a9787f9bbfac4c749de5ee6c83fa2dba6d02ced3be0c3804df743ed6aff7bdcab6d3c1d0e5dda09f71119666bb1edb843191561f9cea7b2a5940000010022494488e24c9f02fdb10a0cbdf05ed1ded08542ae7d70b4e73ebf2bb2b27dc6a437f8c62b03775d760680756569866f4c7a2fb4bb5ad876e6d64f6f2a87a1707f294f1e4bfbf904ec85eef2e0584835d6284aab9772129a89dbd996e728362d5f30a8983d94ec5e5330e28aa8537a85757e3b2c37559ccf989210fa5aa3a49396d66a7384f8b72c45081c11d8f7ac69e771dad163a4a576e28800d4f208ba8d1373de4e17a7ba6a1a028a0e43f6f9bd8cea2cb26681b2f8074b8e492ce1f5a7787c53a8838171f1a67feee704bd04a7da04bbdbf53fb5475f948fc09e3d781736cca33529e4950629377ab2b0fcfb4852a583ad7ae76497a1951606271a9c82000000020100f35ba643324efa3700000001555d47ef000520674186951a6e796348727b2745307b2955004d4620498a68741b74a2482f9a298d232e4ced06d5985e35000000147232a50eb193e35b2ca2f4bbff901afd45ccbde575d082eaebaacbac7b4cf9550067e06b0000008016c28b5a9b44fb26902c5ed2f18a1cec9708202322959cd7d9ffe66a41cbf7fbf0f4bb32fd8eb8d4c7cccef089a97f9289ca612c425fd5d71aa9ffd3904ff6aedcf033b0abd8a4034f58d290865fc1376cdb20d3e7aa87c50a8f5364f382b55ee50a9383278b7ff7b4b82b5b06ae2abf7602f36826da4c3986015c91d10cd3f701f35ba643324efa3700000001681d006d09e300e457ab1d3427162dcf290038e54a8aa2c600000002010018ec32eaf93715510000000101f35ba643324efa370000000137c62879a69e0eb2758741afd48b1fcc50514eb71a5bbc7606798f8139ac08f60001f35ba643324efa37000000014e6f0c08847daa5f05a371c18c2b51aa0d4dfda707a2f8373f0ddf514913211c00 \ No newline at end of file diff --git a/hedera-node/hedera-mono-service/src/test/resources/serdes/EvmFnResult-v8-sn3.hex b/hedera-node/hedera-mono-service/src/test/resources/serdes/EvmFnResult-v8-sn3.hex new file mode 100644 index 000000000000..d94500bd2db5 --- /dev/null +++ b/hedera-node/hedera-mono-service/src/test/resources/serdes/EvmFnResult-v8-sn3.hex @@ -0,0 +1 @@ +00eb186f745c03250000010067690ba12b4f7c4833a80b3cdd2167b4628971270a2369ea65fa46daa83800ac230a38063216a568a310c82cbf161559014e76a1c4cb68edb1c1a9507ec7650cee2606f638eb6ec99ef1cc62165d9d269b06dc3cc8c4128403d0367a6950c0752ab28924961c06ccf9e4797c63866e6a38e70511330957a54a9c7e2da09abb714f37ca1af0ee877e81a18304cd2618680eb7b7069b05d510dcc4b6cdc126f27cc9255b5e462006e8ca96227251847a5df11c40dbbb3882537cd48559a65380e64a7d42088f544403c9535aa6e98552e80436fbf7cb712e564aea8b62c2632784eb12cebb012d49ddbf2b67612afd921bb0c83dc17d38507211f81c162cd29dad00000020a23f71c50946c6e608dda387e97251a3e25dccd368e558266648260ca8be6706010000004027486d215c2656273c38240e5224050b731a7633762c0f626b487a355d39345226506a6b3b1e481f69141a687a392a5e55321f5325137b40356a6e0a7b781d1401f35ba643324efa37000000013293757d19d02dda1a83f8d15693ca3f53c1cf9d04c0c2ea00000003010002af05aa9c7ff9170000000100000040caa5708ccfcd7eaa329d3f990ba48278c7c9c6bd3d882d27dc1e168c8a68f4c23e44ea1573f633d45afb7440d06ee47f1e9da43943c0e25ddf317e3f24b145890000010011c290b9074672d8ad2c096b946edb45b5a8e590528b3f64b09759de860d6a42324504c12762557a8bca81ce7075279bc3e78c90a483efdaf8b72196337bb04f7ec6fb202c8a0e48429cd26e298c78e8e73456e35395419bd0f82eea111087e8e8a4e7d184bbafaf3d0f5784ed920e926841d3cd3b0d8372040a48a263cc5aa9fc71a1a41887258aed42cd8d6b8e833ae22a897d1d6f27363a61d43aa54ba2c1914cfedf3c13e60cd7f4dbee853a2e1bd36cd264e7ad7379db1e304a2df45c628c46232c36a5447207f0d1b6bda9a867f5a995f3a9942cfa2b5744d8930c983f1a741201e294156d684a2eda140e5f2952f2a42cb50e8fd11ec4a072a0f118fd01f35ba643324efa37000000013ea32dbd01ce9afa02af2bbc6e48f570115ce07fcda8f9620000000400000100ef4c2b85a74f3ea22c9db714e119a1bb138f5fbbb351c3c48c6052803c3c0f58f9bd46853eb7e14291ca0637c7e63c8d026c04dd93b9fff1dafb36533a1b32d95d65184abe614c7bc30d83d7af59adda7d1539ab7ed59684d300a528a438fc675fb1cb76e2a794ad5ff1daefe8c86d5ddabc886fa632e8cbb84b7c020ba6b8a7f3b8e690267e277b22b9f871a8c096ea5388223d67e65f6b7275ba309f16b3952a17d3ef5b3fd595899f4ac4a3096338dcd24fb8963780dc4fde73cfc1fba9259c9b6b406aa4e467b30630c0f62568fb913d6a7f0586f4cc4d829737d7c5b965c7f408221787f5b692b9ea296b03bd39b3477967a0ad724f96e89270da164d31000001003bf17c9ac033bba53dc69a0a5f25a19a9ff2498a750641333ecc68ef17275c0fa24cb16cb5daf5589dbab39433d788289c53a225fe205fa63b17a9a922fac5be6771968226556cb4007c8b75d0ad66e4626494d5e80d68bfcf1f1b9d2c35d114c44ef572679be7d66d3afe4c27b551da6c3d088bb8fef1f393b3f00006dcc8f08ffe4f0ba9efd6ac7af467c0117ff3412df58520b81b0fbc136113fa9c564b710b9a8ba2e93e6e3db440a82e25fe7b55354204059d8ea2ad991f2863c23f3d5f15a6c245ba667c9baf156591710aed22e411d0a5a8dd83faa77c9d78bc2f062868f0a046a1c70b04c963a9ab3e1c46b99c40439bbdcfba694b3c3932d1fd07b400000100f56f786a1cb1ca1983fcf8854ee1ab9b0d60a4f00225d0ddf2ec89af3a1af1336683ce067f20628ccaa2e795b94b025c12cf523301181a448f856045388719ab1de5f139e2435d263d1cc2885c0fb4d68f2d8dcea3fda68e528efa294e7014ebe6cfbb977d0a2285cdb505f9659b9e37841bac6e306e4da561694ecce51a74536717932c89049f4236a548df2c1f769d31b79fc28fb8b75c47ba0135b21aa71e3f627cf145a00f82c96261f24d94c57089b25cb4201374852adc77299338f306fe71dadb0cfcc76bb52e15e917134dfd58f4f52358b80ae13ef99b0bee992f805d35e3232534d5ebfc0917ed63ea34c2b466dcefd2a15357b41a0360426c801200000100078d962bf490f9efffc2d1d62463a916776064235aa83d9b1f9693233ad9a99d0d872f36d577731453c3495ebe6bb05c691581434e0b81505bda63e6d0227a21b26637335c1ea8059b1189b408e50391eb09221133a505eb22d4dd074215109df2056d8529d4f1fe9704a82e2f1317eedc36ee2f5979fcd41ebaa89da0c3874384994ace78d575e567379bc3e9b7a479d701d909feaeef042d3d7365e7923fbbdb36bb9b5ea44ff341164cbf582562fb87c4b26b6fd07298f4d6392c9993d279c50a8c0fd9b17ab79c7c97a1be65a3b215e93dd6251bf8a535a12b5e9fa4a43aeffe000bea8b4d706bf8a993ba2934ac762b02589b642c31065a0147cdac940b00000000405571c6085d16d29c99c17503db4074be9824dc2826dad6272a26c687c0ee1b1ff8504ff0d2099f1fef76de04b50485d2b91d4ce27a9f274e6b668daf129189dc000001009079a66c03ba49e6a2b3658cbf159805613bfdf6d9bededfefb5bc1a7434bc95433e146ff3556e0c82dea2c477ec8d44783092572aa8933ea4c29f9819129921da54640d54a024b0069ee1594ea1bb8af36e885e590164d3b59be3a1ee936ec227419321391003c5c50663b839c6889df63c19f8fde5c0d4122885c0d1561352bdf40c03c1b9df6ee27077e70bf459d055192ad392a3b98db2351e77e2a9e465770aed0d3c1ec3db6ca6cddbd2a0f9b4cbf790aa2f78a4a17940b76f435baa828a7684e40dc154c47e70bbd2d4a239177dd50f957d47a74cbd2a582d51de95631033fe9060bbb774415a2a4bc1fa6bfe34ce3017a95aeb33422006ab4ebacd7401f35ba643324efa370000000133d205beb4b7755a2099ad3015a1786b6680a904063514830000000500000100e5a8ba2f8f8f756ae92af8db77d06856c4c6983c55db8859e7d694654062da90b113f32528134f3f889fbf816b0726315dc6f063f5b51e824560203dce7830d534492e7678abce1c54f865b1c54cb0369d9b94570162314ad578304f8c4b8cb495f49fe04e74726764fb716945d512a6f12d31323af8ef7a6a7e099e4630df2a88047c6fbd9fe0fc55634440adc9a778fb524643631edd394c85508aeec8804ca15f951d03840b801ab3e15fd014775af3790dc5a89e4d4e26446a50b7e001ceb624f75fe2002d9a85fd77672d00547ce42187e7d0ccbfb5a4d96da856db4d0586b6c6b556bc6ecd94e5832666c2baf573d6917bbe8ed4b29a7345d1eeaecba600000100cc5d6bf21259109e522b3d4e596e38e7ae392459b2a46c08f12c15ad526b486d1b897ee5e847da2d2feaf16c5a93b301b14b4bb0a12cb93044b17b1d7ac8a5fb487e2b5df061435ec36f997ff702c004caa27b4e5ebe5880d0cfed188dae83025304725fd996b348c93dcf10bbae6dd5a74a693b863b83eb005b63db7ae23796cb1ee5558f8b4ddbd5674f5d60d2a0ac29b50a00d48a689af455c10619b6fab459626a47f9f3143ceec6c66eb4da5c568063fa33b0dbce6c629a197fd614b734cc8d8caa9d112c13853773c4793c3f20a1b93f303dd7b6e3bd564f7dac5ffa21f129352a29c99e49910e4513518dec06a8810fab49b8dce1c045f4b4b2e3886200000100284a880e4e1fa2cb0facaa76298146ae2598c3fbb864dd45ae89c7d0507dc2eacb76025642ae0588b0e8eeddfd512b2c574078d0f7a76ca9fff00f70525d0a09b6f8b1e97f44fef9d69227ca64e57b4bc61ea03a24300902400831f3e0486e51c427378e1332709c880be0a860ba9f6b86a67e642cd805b889da704d450e984af9f6fcc5e93b642e8afff4263fca4ba87a5b2026a7bb60516f28ca4346849245139b566abce2ac9e3829d3477a4b59872220ca6f96ede30c973f5c6bdf9f1187d4ca0cc7ecf8b5416b5f94b2f1608e17f5c7fc5a1ac60e680fca5684fd116684fa0f9ac1e5a9f7d0cf2c004df4da6b09e5151933c59eca7ec77654a400facbb200000100fd9d7dba5478a106d7bf0d0eb63c34f64c5c99121cdd17cacc74961bf6288de1b6a02f8749592a546f181a252c1144fbca40fdfd72cd9828f2881b988b58414150c238ec6ffbb2693b4e73afd9a106183c7121b639bc6ff1bbbaf885014aa08e3f03da6136c6b4897ad50dcea931a57b4d8b4ea63435917f5974ebac155f88a38d7467fd76845b0de734b21f52a6e80a9c3b7a1449d6bdb76940e1bc8fafcd4cd455379e0c5c9868a23c7bf62b93cd2fede616a3acb4a6ef17709f0db1b4a1e86695cdd65094d8aa8f990250beb34cb609589a3b16ea564563835fff7bd095c2dcc1e8bdd93d41553510e38055e4b9b207da8ba56d1196aded344d0e46bb3321000001007b24ce78bf476efabc980edad93e839fa37dd86acd32a0a10a71a03a1464be63b899cda0e162291e9599eefde85cdcc6836863d5a3c42d6c1923edbe29786e4412fb2dc585de27c614c5843988efdf735c7b57756aa61f43d1b93592a4b1fcca85fbfec1353bcdcd95c95cd932951c7ab6596c070cdca16fa5574bcba14fc286d7b411dd1ef5e5a2ecd7902348e1a2459aa87ede40b74084de8a72d98c4a7426440d70adae99c800659498932527eb5f7b7e34a4d921eb93011ae5aaebfdaae0efea504ad097391006ba8f2c1a91c3ae8664f1c1c37076302988d40509a520bab9507f33246359b7ebcf8c6388b7e59a8b2cc93b8cc73085d997ab51e96cb9ea0000000040402222d5ab5dac07977ac4ff8988842bcb9064acf5a7a6e9f56b5b7995caefe9f93fa96dd7712c9d205bfd0340f8a834046ee949b6670ee6b0e592035210448e00000100df16a2aabd57fdd741010710b26f4376898877127f30cc2482ca082acf9d53d81500a2b7f978edbd3e5af7618db6df31aac8d7b9e7a239807e0dba682bdb20ab27c5f928689566beb7e3d99035248ddca01c06d789a92d3714eade1a04665e1dce98aeac141fdcedff4c913b347a09afad1be06f60cd8b9cb007f5c4307f03055b8265affa56ae2b9735e357a5012c3956f43b6752f66176fbf437fbcc3dff78db01d449e49de9b8c14baea08f9a292307a10133e7690c42175128fd7adf0d7b5391484497873ea14cf1f717ee99306213194cf7d00a3a12231ce954cf61ef4c55a6fea8a4dac0054b1f044a04153fc8d738f10b6160c7f8b2f214e48eccb9b601f35ba643324efa370000000136ecf0a36d0b90c8163a094dc6aaaf321f693c42efb42b570000000500000100a79edaaaff006dc3b869a380f91ae90387ebe7ed4fd5e167220a207bfbfdad021acb53d33ba0026e04b2202d54d3b484cb0ceeeb53d0d99f27fe376367e5ec30333cb2a3c53ec63bb8e5161fe0b9f6be296c13aaee8dd1094bb9b5e5312b16b2ca438c87dc398775654d5ce0a966e71aa1188d0890f3a06a4b0c11c8297ae7149c8763a045e50dfdfe6b9983c2661bc69756f6e4cc9916b317d1606fa7b49b3bce5d47bf4f81a17e063a1408098c1d01f3f46b37da468497f8b9f4a4365fa667a28c2a9fc7813576a4e7f1f08d658156299c6f292afb8648f19a7b0efbb2e92d38f158e0172091f40bd831a4b16bf49b2fdd502c0e01b2289f74dbd9fc051d7300000100eca669d80cfc7ea2f33cf211e9909f80328cafcd4bf4b81e2b0f7143cadc825ff16a4e747cc7b180f5dfcfa907e57bfc57a44c6afe06af22d84b299a7fdbdf3435646e56620fdb67935b2039919d3b11569c497bdbfef8f4f67c5a97adf4893836802d3b96d7c5f724d57dfde05cceabe204e4007d4f94ab98e8e90580b7193fd1ca534498ff774c5a976e4c040abb5e22e1325b12bc22b2c6ea9123bb8cd67d85ed217332515a1498cd622ac77c10e1fdfe70e78f3843677096401a7275b7800153fd79573ad9a504c4b84f513fe80f8eb18c3c9b5676b9fdb92c7b92f25545039e2b2f8cce1e482ea2e2a883df3ef5761a8e527329bc647340ccd2906ecfd00000010093d2d15d2e6abb838155de6e6e37b7227bbe3c8ec0660cbc7ec99acc0c4445ab2ca9847b8e10f81e9c29c8ec43010c2d65f8a34b852d24d48c12800d68395248ab517bcb3f2dfd528a14ae7c17b6de252d01803a47be91b90c46d55542860d1b02d4fd069866ec40271357db79f7d0eeb83b454e4acb6c37ba76d6cafb849d98abcdca43853af7a32a8dd7679d8603af9adf79f29c1edf61a4469c566c9f99e84cfc4cfd013b626226e308a9be0f031ea80018a3d742ed1e5331441e4cacd2577f875051cfdfa38f6fc279c0c808841d9502c85ecbc8b352efeaccaa7b543366be06454c2fb567d71fc3a67696f6eea23f5579c0c1b76772bb458d3562bbc4920000010007d97674c2b01db2b2dda1b8813097c73a906b32da420f973c46d5d005c27fbe3bab585937bf4223923dd58d5a606faa91d3a83e648ace5c88dfd95f922930bc7b1a570cdd10e0ca485cfc0ce33adfa49b7be3ddcb0390f7414fd2055caf7a97fb0f8d898875dae0c938f1bbd71291d6b6f4c2d25e16c08cc53364d83c792a1cca3bf78dd3de020ee9c7abdff8109fc4adc7a07b75a87bd21af948600cc10a516b3c3fd624c755512177b2740b6183276ab01eade59bace6f0340072494716643d58768525988be737211b96beb4c4c8d9add2cdbd6b45cd63050b62eda637bc6acdc018b060f84f073014968cf7a56ecf3d064bbb7b19a1944a36811b359f8500000100ebd527444710f27d91f9ec0dc4f229787a57a4b32c133fd80605a14aba0e6a5c0b4363438d7a12557d5c946ada71cde9d3a98b879598004d4dab1ad174943f43262087bd0b76ac9089484ca1a1453dd1e0ebe40f436b2fc089903df80834e14b76254953cee5bf26b49d3a666e5817ffe0f2e3a39848abbce96b9b52395a1bb2185cc64ae223bdb558368180fab74dda125d24515e8dd3749d07eb12158010ca3ca4fc265f81a69ef1280cc00336965db7b61ebfdd9ee561ae5409cf6d2641463d8c41e770f49c27495ddda893244296970d4c6479eb18690b0dcc764a0736f32bd3e36a9c4972a1d50a5422177588bdf22bec7d9a1ffbee6d92cb1665da8a5d000000020100f35ba643324efa370000000172a2a7466b2a4d572ba3253d4a19f4407d17f85c828ab692005a8c0738939a5ba80c333fa37dd153ad19baffa14786525b000000144f659ef72b5b05a2fef2c8581a7430857464dca8250d046022d00311327ee22276523dca0000008048e9695ad2d997cb92e7290523fbdba9d83d2b2aab2c434b5f74eaa3093a17448411e27eca1014f8f26c4fa915ead3e4092f11545f201212e5552856ab426dba75cfa6a37382417b03dc13221ff876b7e8ab376d65c69e19551e1d1431fdbfa629e6d4266b9cfd3de12bea3308789b0286493b07c99c474a8329fa675b4335b101f35ba643324efa370000000120ebe13b0d4fa0605ab2d9c60ffed1830b931cf47c44e41600000002010018ec32eaf93715510000000101f35ba643324efa370000000141b14855b5b14add358cc038354a3bb9121b1b76c30e220f219feba74e93d0390001f35ba643324efa3700000001346cbc8053840a942edaf3518fff52c94b7e360253d052c7691e0a0f2c3b937000 \ No newline at end of file diff --git a/hedera-node/hedera-mono-service/src/test/resources/serdes/EvmFnResult-v8-sn4.hex b/hedera-node/hedera-mono-service/src/test/resources/serdes/EvmFnResult-v8-sn4.hex new file mode 100644 index 000000000000..7cbea7b05695 --- /dev/null +++ b/hedera-node/hedera-mono-service/src/test/resources/serdes/EvmFnResult-v8-sn4.hex @@ -0,0 +1 @@ +2e0948cc3b1cbe490000010038374270f7f7cef3bfb52fc1e538a708a46719e0e68b09102f1f1e3e986ac7a37c0a9cb3de85ab4a245b6aaeecd5ced74d4df7467e10aca2e5a5bc34917d1470f26055979e859ea7e2113a61bad2b1bca37862b60f2fed2d2e294d687d7751ed62b9972972ef7708d14d98fad316f4c8ffa74a60e0849d68b8a1ab129f53aea0ae9963fd33efbda61669befd26643ba97ce5a558d1c854fbb4cd350cd1ffaecf3c749b7bad4f75c0b719c3bb41b7ed6d315653b89057694b649099925884a74bbe41d362110e7f27b197af544a59c53d5ca0c45752442b60dfac97dc5267d65a444925df5b19961a95f3ed36b5d7ec3418af1e025b8b5c3b2c1bbbb23439b8b00000002001daaa33b5ead4af4e6b5fbd2b8f6ec95984d6fd78fe889495ac7f652962068a01000000406b003e770f186418012c65661b421b7623152a625833335857643968423f77696375613b666e1b4b197e20317d77241b2767170c755e5c217120403d2d4c3b3001f35ba643324efa3700000001118bf4403a3fd9d35d3c93c5cc9b9bab6e3b553e799dbfc900000003010002af05aa9c7ff917000000010000004071a462ad76127b06e87ef896bef5595824132c0bc9623a16ed7fff3b06440c58dfc56a95d686c0b927f41720eca58b304a466dd84ec50cba5e4f8b77a69a9b9b00000100d65b31d6fb4c0923976319085b16e9c86d5cdfb3d83f47c9be7ffd16a956d5befa7a7ab0d2fceb1173d1633a161aa03ed959834491dae85db428ddaffd6c4e932d02538c4c67dadc697468d8b3cadb8dca89bc8dcfcbece52bf6b481c4e3b22968d00143b073a676d0e6ae6f357b3d414fadbc791aa1755ac9e9717617d3b69ae74902c0fc8f4d71129766e60552540d1258e647ec22468616f725091424e54a34dd8945c7d92bac8b2b8f8c4c8a824a4bc0b4ca4a32a4b88971c8f64b730b7dab38e90feb933b11f4989f6591049d2b783042ecb32a33619d21c456b88419f3c0dac066461a405f915220acb7b9bbfc95182f45e4351a12cca9d54b1c15839201f35ba643324efa370000000159a57a2f3d2c19ec597c91290e8caeca20c3ef1eb475a231000000050000010070b1d15031d30ff5a693f7e0c5ca886f3ec9e9ef5a09cae7904e407137c563a85d73cb22356f49575f0edd1a5e2b4e0d5fae76700c0878bd66844723fab8baf0a9ad7a74aad1ec83d98922df504558444a5f1a9e36a6d9c8928c4467d7afd89e307e8a27b518e9005cd8b573bf10d6e684c4558eedbe945fd3e6ad5bfba22bfb698d7946709a1944aae49bda2bca6eabc5407cbae36ccc681564f2e85fdc4531adce3fe3abdae65e456185fb66e2a18c0d833ee04664d778c5f9ee8ed0f3fc9c322d7f10a8e48307641a40e1bf439221cfd832173a0eed76c5c8e0d8786caea875b81fc54410a32106e8ad7a9901b6237a5feeeb2df6d418a24434ab99504a4900000100197ea605c7c88b23074b194eefaa7cf0e144aada4a0e48a0fe914428930460e7713cb15e4dbac16ba8d3ac7886255e9fe275b7fdeb13db7f7f182da1056ed7fb8d1524a3fc12e9e7f73f70e18fc1232e541968a7fae7eec2830ace4355cc6101b5a3bc8e70cec67a838216a3f0cfd29fff62344f29fc691efa20cf7a7885a2d9a6b704f6c65185fc6fee23e0d367673ee2d95cb30df602bf5243d27a7a8a88bb49c034349e7d25cb09adc19708acca4aede1bc55a51ff264bd47920e3305338e51f87be236d91337b25b902f7e10aa8c2871941b718fbd91cdb99bf2b6ae4314bd4f1ee14ed62e60fc9a8dc52339dd7dd85789cf2fec299eec98e7bbecd2665e00000100a7832e1aa14421c0e9b006a3e677d6e95aa451c45f96c8b6f648d112ff2f97129d0aaf2efeff511f2e71fe73737f41067bca437398d3f360e95f0dc33440a0ff173c3cd3420f5919cd68f1192b9a3a905be4de4ddad37fe4d4f7f289ea80c8def2eb57869dbe0baa7afcdebb486636736682276e81b4cd56afa72c3f2a412550bbbf0ff8b4a144422b53550b95702696a068cbe4d4719d842d67624860d4d168477706103d5de44fa194640ec619dd161340b3de96516ab741a81f3c34cba31067678711010d6324a2536765fe0dd262de6d4df85172d049764f9151658895f662006e22e1a847acf7f4f04e4f620b5a23dfdcf46695135269cedf346f8a5d9400000100a0272c4b7cbf6ffa76d47e666a8e7a30bbd9eea444b287131c20abbfbdaf2f61c4768e3e1ac3e2d3793b9514f5f0694781585238c84e3c83ae5b4b07824c0d40b01057c80dbadd9253d29a15254c1060dd0e9ce15c5f3054d488a80127410640c66b456b46dae2b29685aa548c13d4251fb4d15ecc0df857631636043b9cb4be31d7ed2bfaaa6a0219776814f0958b818977679c1672a5d0ecdee8ac01e7ce6bd1600874233d7354447bd2724429ed7b39108b1a03511c353b7d78d551757a5dffa29c0ce1f107c3993fb0b6c66d0065afc86c1187a925b122013ead9b65ff51421fd6f52988ad298129fd61ff4a21e351b86e90fdfbc802e64e06a949773eb800000100faa967e2056b397337495a67a161207d8e0ccc5a49949e915a9806908ff4802a5d8bc616992c0fc3ab90aa24a46f9b5236af2eb0c9929c3deaa05ed6013cb94c3f0592152c11b78b480dbedab6ad94e39b8cf78322f78c1388ab4ae69aad581b8a6223ead495d993a68c6c8b652dbf0c0530744e9adbf72b7eeee5734348ad13d1b2dd5198d8faa7d3271a4c110f47352d57c5795b47de1f5b29e111b799b48aac4f504aed0b1b7786f9e25993f494cdc2c91dd5f31ae78ea7bf38dd32a2d930a10e2242249eb4b38a35df9f72359bcb883dbb006338ed72b5e6c2ac919262af0723785a29c25707f6cd94727acb357b8aed92256005f4b52e6debec44d54fe3000000004092773ff6bf1a8402674bca599f9da948075c692054188418545332df01f9e72a7068a072a3f74395235772a40bd3df8e00799f48fbb63e02ff0d71e53dd9d8e20000010098dfed2e0352589930a8f873b61f763be99c58b61357543ca998de13cd7a3bc6627c3c846d7009621075b4fce0bb4de00479e0cebd43c35fab8e329eaa54bc1566f9b72fcee4ee8b85946b3fa51ff16f59b7c6521f74ef36bbfa38a0b7393c47d5e2168ff75d59ed6fc09c8be340a89bc8eab57747022637085b9a7a6564e2597eb04e658abd1445161d15db28887abb7539f40668db0153b23f0d06f56c814d181fa9de4d631b43293a0bdfb400525ed6754c3786929a0a74e85275ecb09324fe8eea0eecfb56777a78259d028b742778c1fc1536bb20309c21bb597a8903153586b05c1532e3124fdd985269ed7988a9516ba3e0f795b8f791475fd2e51aad01f35ba643324efa37000000015cac4011d466c6310efb4f5b71ae7d195326af56a76b179a000000030000010080c634bb6bfc48c7d72404dc17e3578bc80d72fc246d011cd074b0ecfd118cdfeb3aa1213d6ce53865bb654c1313911a755da2100a5dd16788fd6f9b4ab62480f9dbae49b2515401f2359c10655740326bcbb6cea88def5ef303112ad7f6f6ee88c9f27d36a4b9e31f698ac5446e323ab89a8593566c3e8334051653a7e8ac41594a01bb971347c45bac8f1402b0a66ddd6c7acc8da1e3b92c3a5a06726fddeed15b87118eb958827972b429f6595bd52e95d6480f1ab2a8a35daa0ddcae518d05ede7e94e295535019dadcc829edeec6d78039b6daac0030dc332a83e6ae5b6cf5e92168e2f0192f764585a5a038e78d79e081d4851b24035108f113dbb0250000001000add2593aca1151bb0973bbecb5dd95caae78f8efada316d5dcc355ef1b9107deb7544b0467361363032f583d99b64257088862bf83d7135931dd5e7b3189ec8edf3a616e8211e60445379f2fcd0558ee09378bf2785e8c43ca77266036cb513e53d64e797f905287fa1cf00d93e473c77b13ee896043e0dbfb4df6936ebabc10fdf281691e02c68b950018d72c70b137e51f741eb1cab5ecafe35aaa89e0a629c25bdec162f63f6c21475294b2aa7ddbe1ee9db7ceb6a94dd33d5e6ed7b686226b4a849b2e3616ce5e502e4d954defe42606398a73114c45f9b1553acbc1dd2313a52cff880276c88cd8e1dbfae662d14fc4d32698362a2949525350afd37d5000001004ea8fd75fd67eba95d2b922accbc653aed66fe3c8f7cf6ed32b1358ecfd878581bb37af86d1140ff3e5119926041d679cea83728e3ef89c3f30ca1906fdd44803ed1aa315d95324190860d67024d2c477f7cfc0ed31e64f68b733ec7fac0c6cbae1c306a9b2c88bb80ba1deb3730c9bb752f3af929d4762ab4d64868bb285716b1392a9540302c8937ca7517e661ba50fa102af5a963c9d35882937fb5ccbc7eeeddb9f59ae7550300dfa0f5f5848ce1f5e4a3e716696b2959a847c6e4c70e56c15b88f2fa8f57be9fa461ade8beb1bfe57520f0132dd658739d55e3a88ddd4bc9f6505f5c678063224b8d145aca582236cf2db371ede42e3c3bab3f56b481690000000040f6e870d95a6b860f3e4f29dd9c3bb6bc1a26e7496fce9cdc8f905fb47568609d3803951256c038d2613d802b589d51825da1308041b95bcd85f83b1db715595100000100108bcbe1072a7602544c704762799a78dcb43d96dc2f5735961253ed4a663417a4d0945e9f4f1849c3dc631ecb2bb2dfabe530c06889dd40638a64c9d2b0eeca369fca5ba8f6d7240415c40a316d70fbb4e2e848d26beb58c743c4551702d41a0661697abea72904a635e8349f29ef0d0f4602252ef7b1e8361196f084c046bfbce2b111acbd9d9fc4f5b02d7caaa2f897a770a4752321e0af8c2cc6ba0ec206c54bc8475842e9a337d1bd271955b2e8203377caa5b3c723853e898e572e8f4485a0c3e00ced9f3e342a525745902237cb12f3c44b909948268e539aea6a66883a39024dbd7126b69ec3e5e37bbab4d4e85f9524fb8e71c2fc6897d655b9245801f35ba643324efa3700000001386a535c7c59d4fe0f9766121d214b9c34a179a14a3ba5cb0000000500000100ec24376f9bd9da519e1b03c15315f83a2e4ab755e379d41b3e20b767f39544d589f6e3bbb56fa978d8870524241ee7699fe84e4a49f11342b17c681b3bc39b9e836077dda8b773914cf0846f84264e54aaab07d6cf155ac20217f8bff554ab918a51708c40ca15936ff477dea26a5ffdf1cacf00084963eb24ac95efaa138f3c8dc1846170b5fce589937adb87e2c7daac1d93f115e803357e2e4191e8eb4a4ff42d5922cc3d674f45e5e30f1f5cfdd141e3bf8ca672d9ec769c8ef19673cce4adb7d6e1c67063a872fd3fc93fec77ed53a804208cd9700a12b02ea550d630328fe4353041173688fddc69019d1fb4b9754c0d00a63d2a3899fe260a185bcbbd00000100bc048ae8f85e117b6dfaa383715547ecbf907b6c46933c69f51a520b5ec2ebb8d56c9b4a1604cd8dc5c7853fca5c8fcfd5d042a0e8acd6790690bffb52a813d27fe63ae4c9e336f463396001d268324b9b5a4533b2fe66657b4419abaf70525731d2f1a4f872ed283fcd0d49221e7d700c278b1314cf14d33c20d32130e43ef3fd92bb1a7ab94aa4e7fdd6906715161ff4e94dfb1939b862b081265aba71b7aaa2ea5032b770ffdfbcc5829788a0baa74ce4d1e5358ddb499f244d524e0a3b29a84db79c28a7fcca35694a1616693eee9ad1c7c5f72df6dcb2ea1bcefd309e64198e9334f407848397153a6348344145621089b46e07ab37acb9e14594dee85e00000100348939db36fbcd774e349d85213b210619773b17f1bfcb8c5b6f3cf170e6143d269fab81b1f7115571418f698c89fdcf6e184b894447cf2da788dfc1492c334209eae27232e533dc2f5f2f087168c3abd7902a82bce379957d1df10b49b0a61b012b5a1199f9f26342ae75baa5b3711a90bb77ff5845fa31fcb531e493d87dc1579125a34849ec7d6c36610f99e452ebe8e5fb0f62160487fef087d1f337c8bde30f9195f31054497a771e87f829ee1f3a8c58472e59d09d29650a19b88f24e2a08c653144066b6ce845a9af88df23f6d5cb946d47916895bc94cca87ad54c7a12d19e2f65578c73ec4e17717522763bfecddd889fecbfc081aa564b2c42b0bd000001001b68d77dbae35c453b2f8eaee0b43641ba987d89a40da4427ecc07629c5ed953c408187e5d17aa62238e28b5bef08df14607885abd32fb9d2b9a435dec924174073f587ef839c54a56e01d6c80f781a33dc87ff9b26c36b78cd7d87f366222f04f430f5b105265c3035b0896cde673603b11092d8d8eae9343186fee8723aa67670ff92664f38d0706d1ce9b018a1af1b43dba19b35e77d552043358bf30ee55811a911e777b07b1c511125c7be3c8c3ab790dc6d95022058f0e45335cb24d5be4c33054e1de54b33df280454ed2b3e8655856647a5db3141a5a4db9d52bca94fc24f7e6fc04a3acc5165cf9d195bc442abed01d71b7437cdbff2fdadb15a5f10000010098153c2df427bd8d87d01b61b116abd6231023d07cb749632a4995705e6ac5533ab04b82b35197dbbc2ea0bf23f2be206f1ab80b4049c615c0ecbc904fbe28a2834745906460ad986ea973f13130a36e6d424bc2178c1676eb039f316c3c16bc1ec45ed33eba3d6d204d6d7875a6f073e4c84864c6819ea4964f1877f8f2b295aaa39fe633e7a6e996721b02c1a9e64dfbab4008bd9707b0fecb9a7a5a1841e54cf19d07ad269a41dc539b9fea2ed30c29456cbd7c34ab4a9d9f8a0fdd66175c8451610bdcace3852a8ec2257eb1d6ae77ef3ad032462529760811e37d487fcf85f8f95c0c5e5a4265ff72d0b9270a5ce1f4d616ff036f3b2ea0f097e1973316000000020100f35ba643324efa370000000126615c486617ed3b7b7faa0728e441851bd5cecd51bbe73a003c09d1528f43eb5b1e87c7b83f1780407fae44ef175183ca0000001419429a8ee3eb90b88492b66b715543d30f68b60566b445b1010249bc1715c9f24f39fab600000080216b0f9fe29352a3b027175a6a86133b8ff8d8146a56b67453c9bb0fc61996abbec7aa57772e6fa14ce05b57a2375ecce3a4d2b33cdc18fb6c487517ca886e1c5079e05333b434190bfc808b07cec9a401da5aec7e334737c46df6e3f8d3f8af48935e309c3c2d7638d891ba4b415b7319b83c624d7aeb79a0adc7af517345fb01f35ba643324efa37000000012fcba5346d17ed10333fad6f14d688ee3f4f4ee3f2d9a09a00000002010018ec32eaf93715510000000101f35ba643324efa37000000012aae1a635ef5fe722f8771b9e1f0664e417155c11f489faf38820b1e6de7a5f20001f35ba643324efa37000000012c9fd0e1bba65e914fc132ae4b5f30953f335224ce19892b1fdd3197910f8d0000 \ No newline at end of file diff --git a/hedera-node/hedera-mono-service/src/test/resources/serdes/EvmFnResult-v8-sn5.hex b/hedera-node/hedera-mono-service/src/test/resources/serdes/EvmFnResult-v8-sn5.hex new file mode 100644 index 000000000000..ba0d19b900d9 --- /dev/null +++ b/hedera-node/hedera-mono-service/src/test/resources/serdes/EvmFnResult-v8-sn5.hex @@ -0,0 +1 @@ +0ec3cb9ec228eb65000001007125e1d252a78b8a5ed2ef26ad409225d8cb6fdff51e6a72f69c4987a41e1401712aa1d9274f1e4304548f61c17261cbc31e1abfab36fb25ab4c5a05a29e1afcad3eadde5abe9466b470f9bfbd1f012376e911a7d158c6e955ae6a02414ac9826fb87b3c3c0d6d99b85e20ae99fa8f32887e05a2df046584abf159b8ab4564add5965232d90ee72ce419495f500f5fd4c951f4c065f9cfee3643258ef945d4b24e90fa94e1f20bc42969ae29e83cf9907f1157fea45128ecbd2247368813a9780487dfdf480df9efc576770f1a90ce6b4644c5a7101834934256c37038bebc67e4188b3d0c3c7eec71a58c6bb74ba740659b0a307d2bdd8ac61b7f52015ca30e00000020b2bf806a979fcb4e7ac9f4b8ae23a84e6085764ba0f857459bf01fd329ec5f5e010000004077270e247e344f2535025c7d114c7a1278614320127e000622037263076b7a14020f5f7039223a2029667371415d245f2d554c55023b256e395203051318185301f35ba643324efa3700000001366b426c6747c8fc2e2d4f67be39a47112f244bf8601c87300000003010002af05aa9c7ff91700000001000000403e31bbf741980aad3e83f67d222c03b9d098a7079afae560dc2e919be5768ee98fb70e44c3e3ae8907db3c7df433ead0b8353167171567e9d080b339049aed2f00000100b9e77e7f73f2678e25f72f413f85770f8dd9409d729b8e3a55d0329624c88471e295913fd89fc56055c8436341463202a8f24d8e2df3a6dc85664a8b0fedfbe779826d1ff181adda681ff3af47e2d360deaebf74c42435e557ded3deafd3a4707bdca28fdc0b381d1b04eb7914d26d32bffc69503e6c6da0d036a513db40659c628d951b84e86648231b9fda9ffee9571a200e9d7f53c6a280c956c3764daa606e4210305d1962f822e82a7b85883ee215be604d265ea8f08ac7e8a69a5c3035900f64972dbf3b9cc2310f7c72c849b73a546c17abc4c3309dfe15a9f9ba63f1cf4162c705fe04ba53b0e6650c50c6c14fae721c796b6acbba0da875d911243801f35ba643324efa37000000017f50cfe9ded4973d0dbc630b9b0fa323537ca03e846290940000000100000100dee91e9e6c6f68cca234cc778c193635da341c3a57e256cd4b6b8c044fd06ddc5bac80135ec49f277b5effe62eaa1c8ef61d3a59abcc874fd8c04f0d7c2f25835af2d5950f0a2887c0d7e83279c4020a23002bf2eb2d5bcbb95639049bfbb588709adcca4982ddd0f4a3c4ef33056e679143606788c90a572d5a5f83cafe463664b86f2333aefb1d885750bb3d6625199bb6befca1c6a51ca812fe37510e53f380c09a5460e6d6bd29155cdf9498551446903473dff764041d65ae866be4cab7db5a3740808b0c33cf0f9e2aa46e85d7f55a8329ebe240980d3a05223c84000240fa0b63ee5730b77feb433a83269fb10aabf65e81f65e273d513874ff6223560000000040fed019d8aca607eae0e036bc70bfa4070ce42b15b3a23959fec4e86290ee625248f91a6726c2dad5b2c0f00adf544520c6d8965fe650a4e3226e62af98c4172900000100b26f97907c7eca5884840804dbb26c85d8760b2f1a0b38d9e4ad570f6fe363f93d33c5482f519a48a2164e56e11676bdb1c306e9472b2a7d6602d154c429abab1a56a67447d144aa02a4c76d8232545a691c17f21ceb5b9b8fa50a9e2b67c60e9707f32ffbe784f92107cc3d3021921dd2dd2273911c8eebf76a338993ac3ce4d72f422878c8c43d85b0c2da9c057326441442cd4e698c5ced1cdb96466aa475fe41674617a909f9b87bc3fe8a76febb7a5dedc404228821384a11b46cb9684a1165f8ef7786a961be00c888a08051bec2292b700a27635bfbb4703c773544442e3253a5ede943818a468a7e7583b31b2c743beab5e614a2971c6262bc3c9f3f01f35ba643324efa370000000154e9205b4fece8a0763f02a2fa658ccf31b4ef636abaa4c200000004000001001f85fff5378a8f887579bc9cdfebf98b51deab8a69031ed2645dd3e6ee577d00aa88ed331198b1ed69594ce5925811e7a364d9da5f8f9e0669eab36f12fef7f6d14b9292c52768f27564026ab252d30c2cf8d3d96150858a2045d5e93eb8db2d0e5039d1aadac7d48fea3e7137239a61af7ff7ad38ed816d55cfb35a0e3c5686b129787f98428d9bb98de8409ff23e14738ee3973f4a08cb8306b69d1fa76bb5c2ab0b9bb0adb1083145d13d55335f9ae04af67544a4c2908037b0073731cefa22abd78685dbb3e6822f67b3511e1954b45518b100adddcff27f5f532a4a95a5138c32f10639c798a74de189c4206c74b503fbd998bcc29ec4680894e5850dee00000100f07d0cd3d2cefd35087d003a332b65d6231976b5b9d34bd2ff8c577d178e6f44258a76c79e8c075f5093b17b5353765e6b20c15cd54dc96c4f90eb3775a5c712ed3ea8e5a90845868a5c38f8866e3e5c57089fbfaed2c63bdc22389fe81d901108116b5faa42ff1b02938d922b72aad9ac4d2a9c8a93d9725efc88b2aa652d13f99fd457abfb96ef12bd834c6dbb71959b1439a78394f4ee52fa483341e4012b3b59ac23e006ae5ffc944273b6244da88b2463ea76e0e8694b3afcf97e2dde0e3798de3d94d9b140a0441e7564368d4d2d7fabca483938ad431ee1264e0e241a0171e6dd6dcd9e789e0574ef9da99f29db1e1ca5bfebfb293f6539d13e1ac8d3000001000d8cccc822a1d08b3e898897f95514d608857f7f9d0f6b2b89713cc2428b3ff7a1607f735a78ec22e3e6d69b5a888cde5314ccaeff96cbb40c6a9fb36f7e66c5f43fed5b4b04e1c012e2ad1d3b5403180cb7fcac9d6f5d8c99d04993d0d2553744ebc07cf5b7e9cfc27a2da57ca706238e47763229d9fde69659a980f2487c0857162879abc8c1a080eedf87e6c1978fd063790e052c779d36b1658712115370ad6778ee28c1a90c6a74112c8d4b24d6c2a414f9d56eb547946819cf1cde559f9cf7100626dc1a205fc732f53e59d191c42fadfa2008e5accd34625088ef76c0feb212d8c313a23b9db29b511a971b67e0eaf7bb497cb3b6df96a01e0a3ef505000001009fd186c900c446a9d636d296c9f2f73ce5d50956cab86d634fb5742f81adcf9338e4370e32fc4daf3fb0e07c27688d687ce379d0870cfadea461a728f8301bb36d8636b990af90424edc49490bddfc1539d2af56ffac2007334c10163bed351614472cfda19a3e7c80b2e37c13c7e1eae686323116ceb167f25670157732dfca23f9a943495b518e52b7c2ab1c39a01574f53c7053de5a4de74dbba51722b66e2a3a2f7934fa693d0487946c04b40a3444bfc72093aaf21edbcdcd2a89813ebae312fa464d06792600c864da05cbd519fae30e6fa16f9e05ea0a725e48a7556455f4f725ab9b41afc790ec10459b4c60a5514ed6857c39db59aa145e4512c4be0000000040c3acf2f8eccefce53aa05be10bd427fc565046c6078474afb0c1367977e2b9b64d3a39ae5e0eb0dfbeeeb4298ebc79c87ca5c1f4a8dca90698697ed5890ed66e00000100d3a3e6aa03211e06eb8078e1d9d483461c79054e84c07e59a3c72c98a275b65b9b969ab31fe41d17e41197dd436f3d3400d7dcaf6918a8e60f339cb2b8e30687ddd9210621b82bf731a93688fd1d86fb15c22862d104c3b6f6eed1d6194c5d683bc8317b0c4ac76edade1618683c70b693ffdd55e0141f34bfa34536d3850418b4c0a2340eeb63596d85609160bf2aef01b890f433c408bab4b0cb8f11091a766754754c0de5423a1b9c55adeed1f9e74bb830299284d497da7af73a1d85f2608caf35687d667aa5e22fcf065507259398609785733116f2d0c70e44293316d1668f13314f10d8ecc7af3667c171b6912ec95c237b6951f02d8b8b4a07d5161701f35ba643324efa37000000017a76b115c38ea8792585047929a9632f4c48a249b7319f6a00000004000001000847ec6e52444b90337c52b920a3e3d14c5a202577651a1b51e9b4103f8b3057582d898987b7560d18b23466acb917ccf3fb8cd402738c32e7316ec7da72a7ce0d38b1cef5cdfa15b333567d75eaf98a91dc398815fe71e6d23d0a2ffdcc62c5b6f03d9241de050eb13c674afb61e54294f7e9e1ab0868d1aee46ca8a74f5ac3d396f3e10720e0e557529ab3c6c7f88d95a3c8767bcf8df714fa5d4cc5c0c78b5b6dcdd75c49d51db155b23b9065e83c2a26bb0052fcc06e6aab2a6bcd1309db09cb0dd0d2866d7f36abf0074d1ca44ad6dbabeb30df0e557a9f6b2d3a3aa2f7d6377ba91ecd133d439daea9d82520f59c14694cb571d4be77b9780474cca04400000100e071264a0ea02d97cad434c44c73c8bded6557c36108964b43589c1b69734f76b2995d8475571d0f666ca6bf6dac9b5adebb04649d84de195a32cfdc721816179692e63660ef03eddaa17343fcb072157c8b8ba75204f5387f626fdfdbfa569288248b4bb586bf0507569c09f57f22c29ab33bd24a6bb5f52592840c253f1f0631744dbf00c38a0c2ebe4c3645b5a16c2d9af2411ed87c5271e94e44e46a54f18e8c451f5ed20b5572077eb855680ef2fd59e00c87d602e7d781e9a033cd80c1cc6c6b3ac5233089e591b2a0295976ed5d2e25070b24ad0089ab8c7c545eb3499ad29e87ebc2da6a219a36396be58707a6734406cc2774f9ebac417a284d883b00000100af1817f5aaf721106f3bdf45c0e0a552ab66fa3db6698bbdb851509ac61f00919b5792700b1c19a55cd81516fda57380a6ea1bbe24524996e19bea4473f13fa3b6b4a5d96253c8f25d02094cdf407d42ec11b1890361b51a9aec7891fa3ddee7053f32977ad201ae7435203d9419bbe69e3e1de44c69b19e6dbfa99e0c7f6b7027247b35d01feb7bf5751c97e3231f9f06660c203503eaabe31465ab6551812a598d39ae07ef3e88acaaa8e9e8c48c85c3e6f79d6e118abbb22a2d550d050acdb8822ce26624b17e9472a7ae56d80e36faaa96c695d8b4b3f026edc825fc1fbd9365e1f971837df422515d677b2852862ac225203bbef128d91bcb47a0375ff20000010077dec4379b09a2ebe5b7785ff1900fa3951e77d581c4d4d194050a212d69cba47c3f971c7fdebb14627becb022d90997f7ff0bbd99f87ead5f79c1da237ff25e60272e94f1cf4058cc5d01a79ed07c3f3efdfc54890d128b6a6367aa1b02385a70a5fef54edb6e55539686a751e58b97ee90965aac1176cadc987bad84571019b1058632ea500251aa95b60fee0e1400065e3f17ba6811fe5ef563448dbfea7ae5c89f92cbed97eadfadf5712ce428382a2caa11e4b3016a9124780b50c1eeeab42a5be22eb6717fa787126500228080e8fe304bd8be55720d5d3aedcd4d7a9802ab9059236440de33622c2ba5ddeb1bf32df3f3541592e8776cf2527cb30a39000000020100f35ba643324efa370000000128e7cf4fd002df8c1715a1b01c3403367036064067d4cf7c0060fe84d1e92acac940febee7cb885b943c944c997121075e0000001495418e123e637b86a13724f524f1a7208be358a86c9a71ea3d6ce2fa5a3cf9cda9ef459400000080907ab73959dce60a19f81ecbdef58ba40eade41a7219072ebf026deff8d2ea3120423c2452f02d5151884ee0d8ad63a969c9dd5eef56f07ec410e80bebc8fdfffa2c4a211e481dcf204d0b3abe00241a76d05b6aa2741c9a9d1e663777a9c6ce988f56979f16586dbc49fcef4967318ad4c45c289bc7bae3a28728ab60c930e901f35ba643324efa3700000001464959c1c46a950432dd66dad9493d5931ea9663fff04ccc00000002010018ec32eaf93715510000000101f35ba643324efa37000000013b258627371d43e725c69cfb65327d124a2130a72248016f2a21be6b6e9f9b9d0001f35ba643324efa370000000120509a0296575f750f819ffb60873539618b9329b49260493162d5c0894dca8f00 \ No newline at end of file diff --git a/hedera-node/hedera-mono-service/src/test/resources/serdes/EvmFnResult-v8-sn6.hex b/hedera-node/hedera-mono-service/src/test/resources/serdes/EvmFnResult-v8-sn6.hex new file mode 100644 index 000000000000..f367af9b6b4f --- /dev/null +++ b/hedera-node/hedera-mono-service/src/test/resources/serdes/EvmFnResult-v8-sn6.hex @@ -0,0 +1 @@ +3198b0d76e2e6499000001008e0b45b3f85a97e225232d548aca86c314df2c96a7599b2f73ad75041c9de7fe4a4a17e286b6213a274a5469c2610fb278ae2723e2a4369a00747d6e4731e61f6109247ab3c3a1cb9ac924ad2c172911ca614037d4e584976cb1c691582f07cbc3c14ee3252d635fd9fdf3b142b77c1f42a981f78ffcce2b03cf1dbb71a46a2d4347b393af5d0da447b0ed29b35e575a43f01a552af9591f5d108ec89b1a5255cc60c6f2d0067b5be09e6f42769cc712f6ad1a799872e9d0dcbcfa283213bdd4ac20a50d75b05dd038526d33b729ab70068e3e466de40c2a4a092b474f556f29274ed1bf2b831165b90482614b7a888dca656e402ccbf115bc96c5a01ea269970000002003e7e9e2c139bf2f09cb294d826ce17f73c324ff1b942c94b0f3256b2db2f23801000000403f6e3a49545737233a7816165853144c4866717c1c615f412e28416647520d7418460f06683c28387366596a03262d064438312b724c6d131f047d397815280801f35ba643324efa370000000136300ca238bc49115677b879443b70a810e6bacb1660dee500000003010002af05aa9c7ff917000000010000004004c41cf872cdafa48f6354002a446395243be7ddec3b20dd4ee238fb9f5a3a2f1148c40e27dd495aa2cbcbbe364bb01c9ed09496a279dd3e43decac71191f95900000100ef5015dc57d515f3e66333478dda8fd212031de17b45e78f003ac873fa6a4db0115a3d2be715b4966188dbf82c41a5237a51b807f84960b7304d257834a39ba9481f5ac9d10289da8cf802658531b8ee2a2d427cf853671f811becd7615a7a14d36b6ed1437d38a610c9876202d9ec13214190e203d84c8492bdd04429ec2f8937614cb18c6ad4cadb30cdc1f7bf1da432eb5399ecc9eff0d8769a55f0ba6ef34c36a79ac7944ab7e7b0b2452ce9fecfae3853d1e415810ebb3d988f7ca5fa82164ddd7347a338aa3adcf1ae4cd0000c48c0d30bcc8252e09fd408d41cc44d0c6a1d06e719727ee5ac5611fe09d7be2241f847a29bc04c5de812bc340bef534801f35ba643324efa370000000160585601600cfca30fc8cca4106f162e1b8b37f642505ae3000000020000010026e6e5b6552f2ceacd27accddccb155c82374daf89f8f17e6d92a867f41a4b385f2b4bbf56d4974f1903c71de0c3e6f1e3d8577b18d4866303de5af8875bc2b4f76b9d06ea5007f653cd4d7df7b9d73000f3e31869aaf5897343c35fbdaad09fd8841912efd5cb7b234b2d7ab8da6a0466fbabc8d07d4b1c4effac31938d361a34fd18aae35cf1a294219b33449e8700e20a26668a1b5222dedd56d47de027a13b06be374f6cf154b569a7d8daa2ee71c4a0970460d7d38eba70321ebcb6016f5522349a7ca37bd3ac4e26912b39383e4ac905de4156acd994b693650a6eebf1fddc8c4a95a1b7b565a488a9074ce833a03ecbb3029a1bedd83a881859515be20000010011bd90bc2d794ca0315c3f21936fea22ce9ed5e0d07d736f80368acf337500d329ff9311e65af0baf69c9d66a470c39636b03f72417df78ecf6b39f7f3227913778abdbcb725a30aafd97794d2a342dbf506aa296d9bba88f22c7e3d12b46a3dea703135fe1d6c57f3349e9c22f9b3b8763c427906376f07ec9052686c210396f37ae20cd13f11375b32e9bee34d9464fd29fd5f4b3b9d5eb3b01f22983c9f4d5a2188d618dee5dda670c1253d9b540769b85091d307fc7796559b3851fb4f95a9173c5a9e8c1a08497b6f1cc8563a2be5c6995b1cc7d276e90e1b4638e030397142acea8fd03b1ea4f23ba6660f86c37965c8173420e3d0bc499a70894aa4c40000000040d7bf160afe93ee08d5768827fea704b6b0c92586bf83b60293cc98e8c3fcbc8cd7d606e320e7e293792431dbc07b7756b6813585c12e67a70d44e863b8ba8eb500000100ead82421f392a9d222835b4072520caf719d8b836514b628a4ac829fdbe8226626581b0051c454ebbe005d3c1cb790a43bfd75437b0c6352e10928f24cf6088a1fdaa1dd0a89d519ab05c6b3a7e299650988c229a094966d4b6f5ae043b114b87f92b335ac24bb5ec9a48171acb604c1d478dda4db5576da15d46acc026b2edc067cf493731f7d561224d507eb6b7e3d27dc39d2f976e9dec8ae0e0eed0cc8a3a04a0953d193b310627bfd2b676f0d185d147befb6414ecbb8d7c99ff8e3562a02fec5224080be5c6a22882e9aa24cbfd4fc2f3a315431198e7d8cf2596ff472d8061c7877fd439a76fba80630a3421650720bc026ffd12e3f53406db546377b01f35ba643324efa370000000146e6cae55e2ce394002945732bd1c22957d2b06b5b3b8a0b0000000200000100b741919b2010cb2fa41483a9ea3a8f37506b5b49064e8cd981911fca2889823f7a52e1efad689cca2f8f427dc43771e9bda3984181c7727a8096a1dcc462c68615292fc0723167c9b4da7b04ae7a9c361fbcde6ca74e3307a6e25fb6e954b8feefd9e70af2364b1d67c876c492af9733f43f6f1c10ad7a9cadfabb3e1097271fb179b55bc7bdda415c6753f1233258f24da06e9dd21d0cf9165dc14363400c00df3832dfe321804ca12fa11d48af6905690abb2ec57e58cd9a520d0c7da9fa8c3092b41e336602e1542d8d52aa00b81de2bf94c2e9cd7568e8e6bd202e016ed851a88fbedf63c598466a910f626c57d0416d490cebcf5c706cec0523c59f9c92000001007fd9043a6b1c6b53b2e289eb9f0f5e108c53470df4f70904017c657e8aea8aeba71269eacb0c6a7149225ec65ea2e714cd2ffb898f07c7a1e7b29f5ef1bbe0142a8dd2ddd75ad53537ae35daff98b426d340f06dd76ab9ec27523ea261031770e95433ef6122bae80582816b7bfe372bbea96ab9e34cb8a21df8e7ed13139255f822a8d183f18df30b3535a2635be32043191a154359568bf53008ed23c6344d2748aee92aa492798ea527f6ec3efe453002d627d7592c7b4d9046606532432525268d7f9dacb55c050b9c67cd7a3c2294dac3921fd1ae0bc990c0fdba3694c8fded611dcce60f1886272d32e1c69d8b9c5e71a63e8ed5cdc582c93f03053b2f0000000040a30e65f8f67ac7c40c384e0a3ab9fc23a0a6b2e9ece27b76f553fdcc01b53fea6650bd6b710fc24d727193eb77f2ea81b78d7ed4f9d796b7db705d67af61a1d600000100106352361070701a0cc483161841cb05f45c2ba6380ffd691c34629f0ddf523aae716fe9889c2266767d35af7c2ba0e57316603a18bbd7f166f9428b15792a532d5fcb0f1c0af71e3cedc0fd03c043fee16fa36cef9a3fadee75da07c3e79f7d4f16bb1532504957a7558e67b2a640594b88309389c859b42f12ac80dd719fd91a9c7c85ed10efe890721d8667e71a9aed12131869d6e6a91e02ea1048c0911bcd4b1f835db66da54e5c22ab761e7a12fe2101cef1d55d83495825381a8039a1d8ded5237f7ef04a36cdf5c42e2ee5e158cbde309572fc118dc01d9a6c89754e0dfe99426686ceee55a138f35051ee2c2b3bb7f0f20e3dc80abf2792316f4cd901f35ba643324efa37000000014f92a6c31d6d912f1689e3891c3f34b80ca1ada4ba53df190000000200000100a4701ed71e3a3cd4c7bd7c1c79fc5769eb0c233591d18e665c994143d9405d041034c128276a8691cd6635f36bfecb4d419b0bd3c55a954e6344eb4fcf7ec7c02c1ee497ffdab475550409420312c6bab6ce0aa71a5a2f1f921f5e9140ac7bdfbc415e5c8c55599c77de4fa271a3bd6d2aaa4ac9e803c8548a22d915df30b216b017f0581414173a1b87694f9f580231045e560affc7d7b59e1b95a5af76471303f092c8924d5d23c0e41e9920eb899a70d2db1607b349d7f7e20a74736d9e3ed208c2393dc6b61df399bb15feca3fb55d6f92fc0b9a9d2591d8e41c844185e3e388d69eb8ec785f56fbde1ec3bae23121781fb1d2ea80084eab998e28e5ee8d00000100cf26dbdaa8dad0d2db7778dc418512361f1bd6a6ac0567a408939469fe5499ead418a742320cfcf6dd5dd618a224b15ced80d8e3593d7dcd4b1326f0828e27cdcd0a555f7c3c1a28839df6c3fe8aa321db411f5b749f6a4b49324f5180dcd6dd3f4c336a97bd9d3c69f1498d334f91c45de7c7d5c7fbd9183b246ef4c537f1cfe9fe3660c12f8bf8b4ed823f72fa5464f740f39717b13db9685d2f0ece4cc38eea4819a1b0a27b9c26e1d0f1f635305a0fac1c1d8f52d745e865c6316080d99baebb6eb76442044a1d215e805062053a5f86ed09640247a1de3fb753f779c5456dc96bda98d5632651bd752fd5f3c8637290ae26eae02c1009ab94421b14742f000000020100f35ba643324efa370000000173067ea64d285362002427e94b614ee114132ab904b6c40c00075b013c84540190608ba1bdf59766762c25da80d3e79d3c00000014561f2aba0babd1bae73b2ae4600a5e14716cce5d46944e9d69edb0df05fa88c1f81ad68c000000805026ed12d0249e38325cd4dcf8235c5676a8d7db649bf1400dbe7340f678b3cdaedad832d0e83b660048a17bac06e023e11eb407f281585516ba342f3511b06ec627ca13d70c912725222e6396ace870b1dcfc67f042ae41a6f454c1f78b6680be8e6d289ad2431b46ad5beecdc479700b7354ba6eb6fa549c9a2f309243c3c901f35ba643324efa370000000121f365bfb382757d23d618367c3b2e6f4eca08b40e4f4e5b00000002010018ec32eaf93715510000000101f35ba643324efa3700000001005f21dea686064162cad2f51588cf451ed67aaeef3093ec5496afee1f9af92d0001f35ba643324efa37000000012362a881f615109c63dc1e0e6de9d7482365256acc128ca660cbbf722a3a3f2300 \ No newline at end of file diff --git a/hedera-node/hedera-mono-service/src/test/resources/serdes/EvmFnResult-v8-sn7.hex b/hedera-node/hedera-mono-service/src/test/resources/serdes/EvmFnResult-v8-sn7.hex new file mode 100644 index 000000000000..185ed3f76275 --- /dev/null +++ b/hedera-node/hedera-mono-service/src/test/resources/serdes/EvmFnResult-v8-sn7.hex @@ -0,0 +1 @@ +52a173b79467268f0000010006478f68d3a827d443dd5708befe81a0bc81aa8b79b8bfcd92e65d4aa4cc3b9aa42f36f15357f8cc540fdd5b64b5f68047a9ed36adfad075b96ca9fca75d55c13bd2016a391e4082ef9b2582f122f23cd3a7e2ecdea16c204d033643b793a74cafe0fe47df0564c1a3536ce6354f202d02d01f27c1aa274e2e4eba7de769110db3ee46aab29340ff21a8a8652fc32b231f242c254bb5bf7c628250ff11d27f73a7f9e6224fccf9b7d5a19510b68396b690c3ea5938d13c7582e65ab75d1ea9f9214775b18c210e647d5875e116bfab08474d42ba16a1e14f5267d39e90c06486cf5785f0277cd68cea3a2422495932b2c30ace0be2841ce6fc93f38cfa9b378800000020f114ee9e45c5fe0be3876a61fdd77793393c5d8acea6d746e1a35895eac5178b010000004008574d42314319191961626648761b7e110211290d7d1c6e37582d4b1e241728612e6c0d2d2f075d3d236c491b0e4f4655653c4d5e492c6f6102471d4e12681a01f35ba643324efa3700000001084d63ec39afc97f270773909bca2ae024984dcc19ba691000000003010002af05aa9c7ff9170000000100000040199b4cf01a0873e7bcc6d42ed56cecc050bcf996a561df61adffb8459a0f6c269dceaf89290e26f2f9f7b25dda2e45822f1b4c70bfd7aa5b9bd49e71607a5ccb000001005876a3842e4db54b5334012c548cea1036cccb005e57179f31a712f8e34cf58561a85cc33aaac0a3943cdfb84775ba6f7ce7a373b7c9393c5ecc2483cb5592b9ce8311f1e9b9a4bd072ccbcceec4640af4c35015c2f7a07136b8f61e63d9700b9e6016cc046759a9709d69b1e6cc0bf821d02f85401efdfb5c1f84602747805065f2bfde8cf4fa82bc19ab32951b79b5a3300bf13ff2f3fab86d60a8ccb3ff8642e3fb20bc664906b56b6a9f9137991e66942e5be26cb19804457aa0bc8a66019c6d54ad1ec9e773c74f0ef2715784c4515553c2939f71afc21557591b3b8237c0df4070ad05a2d140f141e6757002fea841d1344c222e3c1f5a8333f478715701f35ba643324efa37000000011a8cf8d6604953255977e97197874a415898fa1e99186ec3000000040000010020802a2886b65a0ae1da0aa3a3105f2a9d82be7b828d72ce3ee6728d2316e72e17ab3c80849f6c4857b9ebc44c1a2ba75d0e1a2df600b084dbe7e7f46eeda7c79dc7e9edd713c6da06e4fde104f80f47ab6e4f51110779fab5bce0bf81dafba500ff350aa47884f29c79ea33a84fb20ef4a202571decc929a33ce9121f97b484f0f7571e981fc661e428cfaa9bbc193cca9a3fea5bc9d98c53b64f4c69d7274e6584790bc535c14cd64f5cb7f6aae351631d9be93a66ef6b270266b654adee472cdf791f7bcbf06b3216fb1053b7b7c61d6dcc769babc5d9c31bac0fe329d0a266644f994d36f90a300f01a2dcbc3c06788c9a0546c1efd61b9df61af66c468c0000010003b53765d806ea769d7579f4d2c5cb14e589d9f8ec0a390ec5afa648e2893c96d3f5e583eccc93613930e79449a99d7dfbf5d51ce285c4ce5474381b4538f65651b31f779fb93b3c13c3a3267df3aec717402044f3f44d64302c43f8b6afe6765a4d61c84599e26a43e30ab085c77bd14c25f448923916ef078259bd48d136cce1d953d04e860c0c25707c27c84dbfcc4664f4061b728ac20d0216e39a6aae4e65ee4988cc0bc4f7af5f6ad91e30da7fe53b465a4099678e8221418bc2d23f996256383c598e32c3eddd0ba118b82b6919e8633db6a2c0d066a9fe8a90738bb301ffa6e96243c2204b84b4b115626049a45d5f3c17ff988580a8384013942b29000001002dfad2fc0414c9400945bea295e23802a2333979b2f55a63fd249d05497f738967f2b745e82aebebaf327d2e975c897f03580fce316675dad0dd3d7fa59bf61fa38bfb9a1cca657011973a2d780a6c461bc600dda540da92564494e2974160bd8e520346713c798a40439d0459c560cf3df3b126db9278e94d3042b686dd533e7fe6b81453c87c0b1ad614349fd178a363f2bab4108c7858b6ebf23af35b5852fa524b9ed32c25189d7ef3bd1b817f3e54f3db7158765513153e4916b1c657edae434652c460650123f189378582c3dc07d07eb6c21ab132dd7e2076e0adbaeb020b3391c1b588aeca9e32e0fcaa8e1606d91dcfd594843001f14abc69d648a300000100108183b7ea2fc85278a783092e77b0e75e3f2dd33122ed02eba8121fe6ca2ff195466cff617ae51e557f79605516c496fde8665c334047b10b33f13deca73e176a0d7f2e8712dc458bf51b955f7ee08c4eb37406430485723caeb259ca0a528e4f76f2847f12a4551a37cfb07d7324dd1d494ff29d4fa73690ab3225cf2bc30a6837ceba9111e739e963f757e29cb2d11293762cea0d98690820cb05fb2952aaad4532ba78fbcbd318c027c002c251bdbed169b9d9570a382d8096cad5ba339933ababe46815ae2f6788214b898d684963fcf5712eb9f83f156d1de10e979854418f2236ea0a1640d4cfccf8fcec2db7ccdeb1a17ef76dd61942d5bbbbd7867400000000400a5389b0ec19c27e6fecdfee31c3f12a83df3e8140cbad6c17154bd88a315a0a45fb5fcdfe085fa2486f6093f1ce14b6878bd8bce4938c00df57e7dcc906fa3900000100d03f75150fefa21859640a2c56d87892120cec6530b49cd2f3f07724a3021473045b1364a607853a4cd61021892ef7614c646cf5fab880982e683a99cb3da295e4eaa0f10e71c30514ebcc0ebed1969a43914ef1336b32dc79559068850e5f444a701a128f60529961abacb562066aee58b3c590a78885ea1708c98d05975c5f01b2cd92e3754e87fe40478e3e96a507a8b14b98699f88242bc3c7d58db1445fcc0ef8154ddd56a305f6a22a53008f7f6dd8b6c159b91485a14ed412610167a7bf55241eee10e7f70aebf0bb5c40b2fa45b5b469f6af914f294406bed44e8026c4278aaa1ae74169ecc230ca023c1e51c3b1cada079826736bb0fb957307fbb201f35ba643324efa37000000010910b6d6b72b042d763be65ab791be5d1a151c87c6fc9db9000000020000010056d4f00200e13f8a45c41ee669bc8f968a178b8b01ec5d057cee3cf55a1fd452d3a2b4f598b3e388da1e3967c1973982ec9e8090f3b28680d0911d49cda1ccace4011270cc7e2d899c3e866d76c552d712b58a18d8592a99a09812f50a20a0a35bd8686a3004fac62757d91fcb524bc53e9de5f26a5e3786d042ad667e5bcd596f2f49a3bf4478f80e0c2c2f4834910573a5c7971ecbb28e57a2b86b60bb8a5ba719b2451cd09690af63817553bca6378ede379751c37dbb6856e3ce90fc1f2953ec72700e189b8eb6bf22b246d06dfad9e31456ed72c6932d659ecb0b63fdd2d28d0b4401b6028a8654c3d414b542695154ef731d993671b3cfe7bbe7a8858e000001005225830867cbb80c1c71e7717b8c98851b16abbdfe7699bc64c359b38e8a8b6055662b52cce42400cfc0eae9936bcd6e2942e16f8effecd0eaeddee2476b716fee30b6c65b86ba855adc4b80c5b8e82120aee6b197f15a42c1031f691e3a5113f541004e9ff1d53498f9a2294d1fdf00a703ced4ce2f2b99068cdf583cc8d6ffc6a22764f28654430ecb5ec8456767502619472cb8aea6e7f6d1175521519d4c35de1e0c7b5825e973b1deb8b8ff4c00d273c24e177d5b49e11cb60bde434f82abaf0889bb58165fc74d420b8d57bbd068cea1ea2e24a0d6744f66a62962745977f577aabb8e7c90a46431fcb989e1546b62531661104b627932ae2469863775000000004035d489f319214b2ac50cd93dd8b12704175c42d22ae938bcf4033e8e9bc7a8cfe627f9d99cbed3e903c2e088be6ab40730e3f92186d5ada32737923d0668d39f00000100efead38c6899301c73fd0e18e9b17a3dc1223673fbc479407467e5687152898c1c8d61f4d27875af2005ade20d0fb281dd88d46e744deec3d9f83fc4cc7172c1f15e516b86ae50d1246187f5eec666207f9c4302e48203fd7f0a1dcb1d1d9584e81f5255eafbb22b9d605666169bb3c7b4cf2753f919ca0b1fb6102220704368de70b06f716da4f5cc29b7e2a64b948d2fb5f339a7c462edebb94f07b18ba636592e31cd16542f4251e7475a88be818022873f51e4277ef89f1dfbe047b9f023573883549c2472fb68a5d31b13db5d984e70b32d5bdc32acee79ae7896e04a4852d8803c9cc2931f96ff8577417c393bb7fda0d726ad40fec328b00a99a0cac501f35ba643324efa37000000011016bc526e1b7ff85a213a969789360b5cdeb19f80f62e040000000400000100f6742bbdb23d73af3fb8aa0b88288b0dd7838c67eee88cf81a803542b3d941be61c341d2d238a7ea655d904b079ea7e36260c87569917ea635625db936b7952ab692ed1f29d02d14cf0157df2a0e9699996d2a9d3e13bda159f0def42e8e17c23f61bf8bd694f85b7e6414ffa36cfc1ffaf4de0277307c63c876b942a24cd245d0c616303339d32e7065cc4338d3a5a8deb13d1663b1be52e6aa5b764186eee47762c1d63cb4119a1da1ab0bfbdc184c7ad847fb18f050ba02edccd2e0ec0b8eb590073ec3d63fed6d7febb6060750b36546df775072037ea1f1059e04a70e78fb3f5fc71869b2c79a3991086dc191ad3f1c0b7d293d799ad9a9b1e14ee4673f0000010032c05e49cd3ddfab636c64642acbd229a19cc4d55e03213a926cd1bbbd7b63cde6674a95b8f50277c56020b0b8f7a166e1ba3d70ca2afc6f8facbb43807b81c0e014e768948d6a6f2e5692642dd0904d988cac29c2bd1ba7b85b323f0dbf966ee3fb73ddb449b0b0da9cf6024700505ee8e27d675ab839113a1b80066b337d35f846a205ffa2253b797277541822e1dad824a1d885d0d48d0585fc50156e5102bfa01d462d0201ea28c9615bb55039ad6b274f5744583d362b585423c103f0131c7d04dab678dc70a8ff20cc620d636a219543f0589f604c1a48855c30900e4e9c2767957f58665599fe9bc56b6d141b2b74c86fede172ac5eec44a0d161ca370000010069dc7acd8e1f3bff77fe4842321f5cdc301b864ca241b9df21b9342bf8391fa506421909088ee4d823a0d7fdf5b1dab1995577d101e507ec12581fe8b95f7d7b0fa1dc9cf762b68e174adea4589c6caa75f168fa8b23679269d6cc684d88b61761a7a144414d220204f145695c0d46fc9f1499b2596aa02dbf6cd8c5f97e4b12afc91f2bd9c06f1913e403e8a13a916df6ca9faeff12846219e563b3d715dc493851bf09ffcc5dbec2b2f2ad1c0b8fdaa81d1dfa7fb74e5c754dd2c3a8e90447fb39a847e211a0cfecbae4192281c0d192005b5758c9718680dd74f885d280246991ab0bd1a7c0b3fce7f3b2f5abfb6a7837c558b540808cfec0edb40660d87f0000010075c71677c9d0f54b71d1276ee6630070b1862c5e3d3ab6bcb4bd8b031bb06661cfdbd2b57eaab6279801e87d6967f7f3e856b7f46e4a3c56574fced744d78de28452713e0be45d76f1dde7aded96a68d575410b4bcc016c49958c0fa512cc8cfea0fb7fe344216e4b83d8e4118806262cf375b1d01b3e6de23959dc40bde06c6dbe31e095275912b260e0259721564c109ad6420be5d0817bde2751000b565b1bf7cac001b75241cef7de55cd9ff9e4590bf15686076d4c0673998f26eb4ed398e245f850d9338612ff08483b0c7a7516e5fa892e7642b26133d7cb7afb0077c25fd087a5fa9524178fcb2e0be3078a61ddf94ebe4d31698538019678428f2bf000000020100f35ba643324efa370000000110efc4ed973316336416b7e257cc3b993d896832d4873c680058147fd989063d7164d1303a58699b60003db2fb268b9465000000144d68a94d62fe1f68a2331f282e106cc58e2335fa5653579c75173f2c710cc9cde6d2440600000080ec1abd9cf38c97321b8fd7f7907985d4959823cb5e34af3174e47b76ddf5bef4bd742946e93371628fb0930b89e7d2aee10e40562071ffe28913ee9cdd549317e3fa1ed85822922ce17ca90309ef73133ad6dd9524ed9943fc32fcb2e394ab05b8b77bb3f50c582e3f3764a2c26914ec50011394072ba03cc5eb39b4cd56246201f35ba643324efa37000000017d1ab4ba383b981327be686e5137ea7f3436b8a94abfce6900000002010018ec32eaf93715510000000101f35ba643324efa37000000017dc7919ee9fe4e573c1cdeabd02dc1c36accf4aaba11df025798a8e9b80da6bd0001f35ba643324efa37000000010bfc47515c0302f17398b3dc6ad57fcb36eff2ffe51830385bc4e4cc8dc0506c00 \ No newline at end of file diff --git a/hedera-node/hedera-mono-service/src/test/resources/serdes/EvmFnResult-v8-sn8.hex b/hedera-node/hedera-mono-service/src/test/resources/serdes/EvmFnResult-v8-sn8.hex new file mode 100644 index 000000000000..8d0445a49b04 --- /dev/null +++ b/hedera-node/hedera-mono-service/src/test/resources/serdes/EvmFnResult-v8-sn8.hex @@ -0,0 +1 @@ +7021280eb539f71200000100ccd7fe0ce2f0eca6f13140952f48c53eab4c62f558906ce7fc2ada4f44d036ed9fc11c6013d728368274beac47eee92689dd7bc975939be99b7c5cdb04df34ed6214eee7b1bf678a4abc78ae04b9970d65451a1be5b69b0ec0e5546cd983a9f586cd3ae5e42c6ecc6be81812675769926ccf02b60411a05f717762635ab46798963d1fe6b752a79e7ae8995b391f7cc9a66016c3c6eac96c6049a6fe172e477fca8150804b9b68f1438e1f65d37a5670d3023632b383a39843dce52bd7584456f63930af4a073e161df952b921f58e48389e37a89e595a09639d95ab079f424e0d8e62ed0ccf66a51bb35f94ccf591e87138ff3e92075d4b78302bf4b634ad62000000202a11035d93bf8ec4504d7481437f39f6441eb3a8cf7907ce8c129fe7b9da9be201000000403c0c7673715b1513157e246d131e096e660f203e2d4d7b00093f2e44497e6623456e795d4f123c11021a1105737b5c74781d4846194b3f5e741f27494440763601f35ba643324efa3700000001307cb9ae0df2269c5ec1a85dd463c7f77301a401424f8ede00000003010002af05aa9c7ff9170000000100000040daac30b19430237f38e0a518b2437c1ca399658dda35943d21ec23a4386134e8b91575d00e2eae6b5ae39a76942707436fb18bf10a879e2eb565f2cda426730b00000100d761f8dfe514351e43b9400f16702fc4c8c9fc6cb8e8e4206045975ed80decdc4645fb6a8f8aba982ab018c1c847fef388b8bb2b3cf12773cc3c6b3725576558271d0ce0cc5db7c517d78b7afbfbcc1ed2de6951aa56af48ae286197f14aaba240d266f0a0a59b73d98243174bdd90d5508c4ad1965ffe0ad57eb19c70933d3ee53181ccce36968a4690b5c1331f58d94eb340bf2edbd5a1d877b60a7a14d311c2c56aa013424bfe85e31876909ac04a718e489a085f28132ff3c5c08a0a51c9a93a200f2431d15de5668e452a3d93af18004b63cfdca4be0a4159572deb0ed611c861cb26496a38dbc487d046f18a6cfffd7da447afb8164dd51e576b71c8f901f35ba643324efa37000000010e2a900730b20aae3248f1eeda1b10b0145bde03e191702a0000000300000100a852deb75c41479e1935a4cb74e75e92fab9e49ba14bc53dd8d8e9f9dc2822a8b56978b6af7e39b9c36a0f62ba7c3d2d1efd0886719798a8e203255d7a427d5d21e6f75001f491636af6a6c0c05d4f596b80cab721ec3f5505df9ea0d2bec5557a0ebd4162f7b55896de9d992d27165291e7d56728f2f4720823f89f135954adcbff95f16acc79f0bc7b1cf7cda28cbb4ff82c5cbf6ed09fa504f2b4f2b8a80ea7e22637351d541b84333f1cedfaae1f8e5ad7b17ebe3319498a89010310a3a8733f310e8fa5dd5b9aeaed2bfaa2768d8061a4717b9deb44699ecc053049a53c0795478142bd40f1598cf54ba7519737dea3e45bafdf67ec4ad00e3b1e00ac500000010031f7266005dcf0cb5900527a48de457282dc0a99a4f1b81e39b531cfd09b40571a0d39c7af6e465edf29d1888c7b4dc23992d9f41d919856c03cbd5bdfde18ee7750ac992b079013ebc58da09ef2662f32dd98d97e4f2a281386ef5b6a22c053a9b331ee2306c6740f0f9aa061d5897aa30a7cf63337affc32d229264534fd997f0a2cfeff97b8da12dfbba7d50fa5ca8811e15a534783b8531f4c010346d3f17ce00d7cda645927fe64db03fc9921ca7be116731929b65c9620953bce16623ad7ebe5fde47287700327d6b302ddd41d2b3d575a578bfd0c20b51d26bc1daa5da99d3423152e232eec37d359ecca37ca1f689e9e10c8345a2c853bbdfbb17e9400000100031e9f9a4849cdc60015ceee1b38d544438f970cc5bec4976425ed846a9a2ccdaf3bf5deff97d58be26dcdfc907221f39e9fd1e08c456aefc86665a68fad4bbd779b25f8bd5f52340fafac99b6fd2ca240f8132620e1016e58ff3461306196c5a3c9e4e6af444e468255f849c2d22b7393832de817c646ed2c65db0d084438c289944d3cc959de626163000eb57cae64e32c11ddde0ea4bccd5550c6c0ba298f7a5e228c6662e0681c80a6adb6e6da199fd753301bac7b9fe6eb478e7ee51c3394a96ff3acd72777d70aa725e6d02b82c7a67fc38bb0bd786f6d9e772c5613f38fde8c6708854bded573c83559f24b8e86506008360bccc2cc3c605a9182dd640000000040096d238656635da234fe1a8be2d5859adeb65259db26c99d4365a9faa3c06db1f86dcd2a77d2cd7d3862af6a710bf3b3dfb9a058a71b0ff4aa42704f8b707cd10000010070b7d5d04d7b55c95cd17c6dd2227ba1e13e33a41f79f4130bf1ec241884abe7d11913be70e2d05e9e37ac9960b3cbe352da96a288b0a571d4c6f627de24c3f397d4dd56af5a7d9ae6ad01593a42a3643b628fb3d5a718537e1fdf5b49f6298dbbf3a5d4183bf97d7241d461b40d40cdf51039de7dd92c7c2d7c43c27247771744acc7cb5916628ce24dd7d3a035007f177f85c23364b14810bc9d39d4b13066d3f50641b1eb7d7efbc39e2ed07f5400319b69acf8f71bdae657473c1f5e3a66b2423d4822331019a2df18e6e88dd882f283857b0b6d76d72da657213832c0b3844a30599eaf5d91d6cb3541ec721a47b7ef5bdfdedbec85be6b9d5ce2ae9ec501f35ba643324efa37000000012ada7944d2ee23c95b96aeb4e76bc1ad2513f4c79e3aca460000000500000100004e2b392547f99303e00d908a6556adf6d8c20fb3560ed699e8cad768453e8c556afda903301e75df1747dd3f1764d0f7db1358c10ad88a24af9f9ed65cc20e7eb3f24227a4244b914f04727f3c0b195097fb03e99ae4c8ec873249ce29cc51b99a9d29a89e26a9ebc7fef54c6eb8d7891781473aea40e6e47b93ebdd89150d1fd7a895180e38550bc235786049d140678334936ea6a423f2151169705a3052916445a2e0e92d507824483cc0849671a13d0c4cc9282f663cb49ec72b6a80622aa19849852d488ef2b86132899f3e9d146bffa78ce89becf4bf1be941f2750edf0deca49777eaab2eae93d81a158e8400fe844e83dba7aa93fe9fa453446ec100000100d3229a0cbdf284853ab0f5c5b9e6a132b6cd15fb0c8db0b981ba0bf624dece989e892e3c6a7ba326e3b5bb18e916366799638486e7641ccdc4de033c41e578749d61391cd46e001f8824205cf4c072bbb8e6e65e0b4682029228632ee0017db50bec8397643d3920f2c487da90549828a96a2c65515ffe6fe82a71d23b7c285cdbe97dbb961d05b1acfc4b4f44d5eadff1a379327547ad35557b1733e447714846e84c5b09f1eaaeca9e682c2f8a072fd20cd42fd45183774ba97d9db28dd00472ee12400ec5392e9a7ef91093e455413b9b81ea8f2cb962c827769f53e33773f624deae41adc169e632db5101c7940a8dbdc07b5f684bb22c42eec94d1fbbc300000100eb9bfc2253c5fbdc340d9f1bb4157c61ae12a4173e19772b8d8afe87faa26caad1ec32a6d00c2172391daeb4e6bf1c2baca4af32686ba52a08bbd449ce7c9bbd55ff00f75d8b0b903441008819fd6df0f07b6da10f81f5a9f730600de8355c914ce93723e4e7fa1870469a26c90e8951b1d31c997262259b829517f2069f0776ad6df3b68467091917b805a88c2d3738c19411c244694a79552a992bc4f5502440a0d68952c55da18d045e6d37e9b003791ca25487d99a4db3548d98bcfef8c4f8929043eda018c09f2d9b69902e7af5ed21f536c902b78706214727545753bff000fb172457d54c3f9f59c7b01a5f81098bc8ee06e22de4a1c6f5ceccba58830000010016e223a51acd19a0b5105d4ce251ce2059b75ac30ef5862e03ef2df963b3d0717ff2d72f36f1a1bec612ffcef8eacdec3a76624fb32b264743056974126bc7d14a7abed2e41a5a5e56f4d76441548cf0e749d9d2ee76176a17d41b7ede897cb221b33b3a6e2ca2097bf6cef1be4b755d214d917729d7c22744418af30ea50606cfc24c945ebf1e38a1d3607e8fd014320b889c7386ce13ee833fdb156a950cf290e1cd759b9c25f7e75ec3599a3d43a919e23ebd4e88636a56c7385c81499229143d4cbbc183c7c2d4c480e4d4fa47a082e4f6776b8fce43b185f1a35150e379a7299e6455cab392bb2e0c7209a4094403264bbbde3ba5e15b6cb6edda89fe4f00000100ff09f9ec51329a3fde64af2659aeed796c21f332a0171c93102b8b1fea3a6b9c8bd9538a1b4546a7b1784fa5ac296ecaf655add56541eb4af4d250b133a98232534e8235d0023931a9b135fc231dc0d83ac420f9c9ed902a0edb3e276d531de3048610c3d46da4113bfdecc9cec97573be5071118c8c114478aee051bf1c671350dfd71d59d6b9b1d8f37fd47d50d059f13262e235afe9cbdc27a701c25ba9a995b0660c28bee7d1a42068ab4ff9634b3756aed3c82da5b269518773cd8aecb3ce2c071d69e4242125172ec6458cdca0d723438773ba4579bd458f679b2246486629a325de7bcda7b3cbab6ce193259499cee1088b982080c6cf6714c4a17ded0000000040ad2b40000401867787fbf4239f478cb368f44e442629cef8d19573d1cf41922dde041ffd5a119a5ac2866b46b8642501f821573fca9e335de09b2acaa181b436000001002fe5f81b519ff7fe88237958bd0d15d0fa09c3a092e2595573ff16f670d9304e41e3fee2ca5969defa365f3e228930c2bce0158e43d549207932642ef551ce36c6bb0f169a4e9e7a376460156bd8a8ed6e2cd945b74cbbfcdd9a77f84f5ef3a72039c8a42ef69625688b21efe642d6e43080d2fd7dd509325ab0ffb5d92e408b1e31e4b3df96bc9ac194c1a52b61d4c4ca6ad8eee840839cfb446220ca3287ae1c3ed343165351ab1c3369a8298727cef56f6cf73acd5d1d7badda7c1383bb53151a3724ea69c539fec9f8744840a43f74350345ac6b3514cd6eb666317df0b2e5f53941199e369ff04f6eea54cce8000226b9f24bda703e01182333d386e12c01f35ba643324efa370000000113cf224a6276ce5d66bdb998a4a0835d28cfd75fafed3f4f0000000200000100893c6efcfd48fdb75fdf20d1d796ae0b7504e59c5a8728de00b37f9e0bb54c1cb69d0dd09a9e2387b5021032a8598fd6ded77bbc371285f03fe080eb319628dd001877f458fd1a650f9bfa777db64e6ae7da254ddb3631fdd21b00e0282a68579cc6553c0ca352396ddde0a325d7d29c387715eb2002cb95bd805a401f3f2833c9a07fe2f4eb1b4a0783b4520c68853c827e3a08bf7f38c9ad77ca68ea4a1ff24865b28fc80bc58ac9670e7561d414f84c75a0f7ad6c09b7732c80e5ed94d68a2eb8bcffea47bb41cd198144e67e25737510db89d8a9c7cf9a5ec129c0b5dd19b741b63b50c8b7ae4be1151664ff504e653df4cc7c3029c536bbc5919441648800000100d7be10aa508b51ee338edffd7bf628c023143a23fab93589b479bc7068c511d66d68ee498bb5a586ac75a3535a1e9cbd922e45e8977aa8ed160bd6692248d13bbfe3937709de047d3426567a260aa92cd233cac027ba92e9527b6299962a3dd1fd5cea600db88113419897e2d67416ef4fb2945c47cf8566c24ed1828d829852ebe4d0c1b185c22c7b384ab8b052ab11f7f504322873c177cba8087e743e3876fc761731557c70c53fbb0416e1d768714aaf9a0892319d81b16ea78672f35123764632960230580b11fc671a1c30762a1321484550c8944d572437776760a27dcba5e969ed4e1f152631b8386b9565578117921372065035c0b13757281c11ec000000020100f35ba643324efa37000000011943938f5305e97104b230b4100ea6dc364faf30de28972900650a222860a6ff8701272fef765aa1ae2b1c26f972a84b9a00000014aa25fb57dd3725b4fc6bcd05ddf10b3b3504688d1ce8bbd92c3c14e30724a764852a0f3700000080a31b6d307981e047f883aa747ec0a9e9399dc9a474c7382b285d69b4c468c9d2111cc6fcf79f873f5175acbd8fde4115485221a7f065e4d493e92a4d07392dc9b09331844d0553af172bb758ddcf4637e1b0466c721f0bad74755df66cd55555889f7c1b447352ddeabc30832faec4f86da17fbc5dbb95825a68168484eec87101f35ba643324efa370000000158dc25d45e05277364885419e101135f161fcd81b319de7900000002010018ec32eaf93715510000000101f35ba643324efa37000000015d9cfacae304880e5b6a3644ed5b9248199f4e1669d4d08a1111f8111e0190540001f35ba643324efa370000000130567a7bd0fba41203dd3b5203bf17cc0eef83bcdf4a7df276169be151c7d14a00 \ No newline at end of file diff --git a/hedera-node/hedera-mono-service/src/test/resources/serdes/EvmFnResult-v8-sn9.hex b/hedera-node/hedera-mono-service/src/test/resources/serdes/EvmFnResult-v8-sn9.hex new file mode 100644 index 000000000000..11d99febff40 --- /dev/null +++ b/hedera-node/hedera-mono-service/src/test/resources/serdes/EvmFnResult-v8-sn9.hex @@ -0,0 +1 @@ +78235088779253ae0000010058bd7c3f191723eb0a6944ff30b9f95afa72ede49f6c163b9e11b8a9fde0692323426e2ce3cbb510ce871625a214c561417a163dcdaeb26428fc7cd9185c9390937be73637ba034d0f6549d6dc872efcd6b370928e3c783733ca40f3a441e976afb714fbb76364c0d0874d2990dbc36d0fb15f2a56854a0ce59d1d9a708d196ed7d3a145507ff6dbec5b0601668262133348c707d916bc285843da968541993078304fc97650ce40fcc42442355b9a9bd766442fc68ef8c8b8b99463c33b01dad5873ce598349d1d174825b6158a0eb58d6c154b3a2bc0044606b20ec4e7d4b3fe2a730b6d120c58862570454d2a590a7acdf8641873e45bfd50ad6dc406980c000000206c4031f096b0ce5bd8fd9dc2fe571571634c5fbbe97affb131f816b98f8ac45401000000404b005861253666334e6a390170236c4648223326037c7e416212652f6b1b4c2f193c6f69271844415a0739123b2d600d156f0e49496d2e4f50142c1231142a3601f35ba643324efa37000000012a9c18e19494dba35f868fe7d866051e2315f983743aac5d00000003010002af05aa9c7ff917000000010000004013ffe5450ae254a4d552d35a7454158031819438513370002e8bcbd3baf5787771e193910f6ead1929370fc67273ab8f41f9472f64b10e86e6c7cbbb694b6dc800000100125dcafaad9096af94d2b7aa2ca0fdc7be050e8608357633640804c337076f2ffa235f65d50cdd623c3e141481974efc19b8c36e861547177c39cbc49634f5c4cdf3f92e174cc1a601673085af2a6dc2571b8457fb66eea4eca31d6800128be3bc23c35e7c0bb9c0da7576972419d3b56b6531585e22c243d0dccc325cfb2db67cd7e5a082f896020a25c124847b806469f40a15f2804d07ee2bf491a9b720170992fcc8c2b4a46d990ee4c8d16eb2d4afdefee141c5b8cfe1a9c89a7086ff1b0c148ca9110dea0f5429b9a7bfd58a5362ab339dbd43af9a16db1a902657440aa2d298a0f9dda081e7b5ff12c13926f78fd0ef51d13fff92d8790d2e748b305e01f35ba643324efa370000000119a4023c3072b28a0a665734185ecee443cd15be1d0a54c200000001000001001c1c9c20e3cb604e95bc179f5e877d540387bb1b89c77d715f318fe77d4b760cd17eda34b82c1dc51a413ed3c08f6a3c97a63a260e63a2463807d7f940929bba4684f3149bd81fe54c389471e6a85d7909ca11073d2991ff7f837f23361cad5c6aca47b8bae27262ec82484bbb9bcd61a3672eb998e31a7fac24bb70b54188136d4f436a833bdee8c0b0c1e46a902dfd24daedd4e8a93dc5df54b10816ebfb5af844eb8244d5ea10bac0288143f78a1bf0992eaaaade91f6c6f0b00250c21c3bf5b1532fb555a25618b2fbc4e94e0e73d980e2afe5643430ef6dde60435841d9fa9d58812fcb2b5746c110983bb3065f8b2a9df4e6075833163d20119236b494000000004041d60a85818a3b52a4444a1939ead79c996b32b6ed244cc5989da89f5cef86c163beedcf0fbeb49981a9be60a82d532345eeb9c125b4e42bc9ab874b0bc6f10d000001007343f34bf38d1b0cd28cf05eae25780372289cde877f44fb2bc46a74fd4ecdfbde75603860ad5a879837202090d2fa8735f020daf6af9c2456cfe5bbf2affb555e6495eb05d8ed0c1d6a4ec489c33ec9ab7a585c8e99486eaff67e0247dd47350cf14f5198fcc516a78c218ef82e432776d44d9369db8e420fad83c965a49009a3fd0200e08ad9490904ce17a029c5b72b4b2f485088e3ff513a3e698c5a9cd7139fcca2caa0afdea05d7e6ea793e283cc672a93642bad14cd88945c912b56747ad1d0071c68f8e72b3a9c91b0b3b048722a97444b5533e6a2cab263025520d55495eec8881507e9e1ff08d03468a64233faa59186f8324e361a1991effe564501f35ba643324efa37000000014459a21214bc1b9c451e536c0536e0474bd1e1c4c2f2ecbf00000001000001003b625c8e4cc2a5d503ea01434dfdf35cd932f4891ffe15cbc8f83bff312ac83d03046bf084cb3479a383edab855d92586e6599f3a7e438db3ea568913104a22098c20e2ed7a2d4b6b41e320abd75bbe95fd4760bdeeede1ee50167cf148beb16c9bc5aa07146aad5ce26aceed802318e2adf76e5e634828b64cba316eda2d42a1a8708a57ccc4eb8a0549336f3c4721ebcf887bc47d2d5dfd7757b9132c4dc83b72a8cc192366d59b1d3f6a88d9524044e1ca821f61f3e7d10bf1cf8d36c7c20e01a091e6dbd27d3057075c05ddb7b63e371cb1212390cc2919838ab07915c15df008ccd7000d288e22334e8e41ec2d00af66d9173a9e26b3ecc23365c4ecb5f00000000400356d2a13aeae6912feecd8884751494c8141bb172ef0c0a95c9086e28b3b73fcc60ca7fcd2c65b46d60ce501844f23a8aa70d738dd588f99c4c8ee11eeead250000010030efee6026fa5e03cd20908664789c23d7a0769b9b7975d53db8c904556a1c742b9318b9e15e0d6bd533dbe277dd39690250be72f17133be66ad6f0870f84bd370767841f9b4d30a2ad8064be45ac01b7318678bfeee8fb00ca8151e006d956948b0a40f11e5258063ad5a45329165c3a847b500b498e0038f82e2c4f0bbdcf2e253c8819dab19498f9eed7d83a7580257c51425d5cb2ca176014724e317e4fad5f8397dcc7160f8d96ce281c1bae08dbca33ba631c9cf41036ba30066bf2c301cdb43313b4043fdf7be798adce80bfd62848e093357f41005b73db3682abe60c73aef7376f32568ae25d615646db8478ae63f26f81e19a2bde664e7aa9c53f401f35ba643324efa37000000011364039013ba1b2152db1f2c20c0e9b8432bd99fc988b34600000002000001008eaa0a1084d530de0b02e91c4220449266b67a6c4ec11006096b59b88d12bda3df12783bf55b2954ab190f43335d0c78951b5b2bb0e388c9834644d387e03d3dcfa9ea85d0e7805fa84ec2c8978b4e9a19589af4af018208c5530572b2532f411ea80dafe99bf3de306e06aa718283a82abf8bde1cdb776ff67e3f9233e744633684c822d24e7ad02d68987dfad07aff2c5949b560f4d2508c9bb4aaca524c67dadf7c42dbea3e656c740636c1ab35cf58380c4b4355c30839cf4d9208bb5d63888b021312a7bd879efea15f741f8274804bacb6968bcbe6d2e0a4c015dcd6407cf4eeb5c2c93682d8cb9b814f6c1bd680ee69f8887d8bd1d36598f7c6618e53000001004fcdbbc58c8ff9067399840656f69c23d14738d3df2ec42c389e3b4436fe8a13a154658b227cd61e9b13f4070dd7d45d3400481572ad346e0e847fb70bf626d530931948fd97183ad51f7173e675c399839fd3adc84b3ebea97e1e99b73229daec39de47f353932f7c51e220f52c113b2bdbd933a6657451fae482cfdb9faa249fa68d043c006bddbc9be475023c87f7f55f3640268d03a45bd8b48f51d6f4ee8d51699ee3f71001478df0fa62e7cfcbbe6c7175a08249760057e484bd042ee4782bf76931bcb63b0a459d0437f2759bcd416b2065f5fbd3273d5de54d74f370b1fc71dbcfc733af0acea5d3a3380dfa39256309cb3e9a3cc457ba3dd41f4882000000020100f35ba643324efa3700000001303c7679f60af82f6e428208551d1f767dbe2a7a3b209391007060e62fc6b07134163cb6ca4b28daf31cdc3e21f0ec16c600000014bf2149f68ef6f03a7128ec24747c3c85204491da6950d1c337d8354300290156ff1e1fef00000080d7b4b44d0bf4903054fd5d5abb40fc7d26af07dcf673abad783e807fb1c8a106c8e8d0febb919b06c75b72f2a55493c1121129294067be98995f267453e70ddb5fba7b3c4879f48ca07572d46b798ea41a36c3005d5ca42f40a76fac6af8911d58c5ab0c04d7f6c449746cf975bfc48176254e6f91309634ff8ef9957cbd810301f35ba643324efa370000000173207d5144c4876a6567bd235f5dc7b0065512b7fb720a9d00000002010018ec32eaf93715510000000101f35ba643324efa37000000011b64b07379ddec1c1a3ff7d4dc70c63d42e91b196643e05a3326003f571339120001f35ba643324efa370000000168761a87e9afc2bf407fb35011973cd26bcfb914ac493ae934d672701bc756b000 \ No newline at end of file diff --git a/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn0.hex b/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn0.hex new file mode 100644 index 000000000000..7476dd6dc3b6 --- /dev/null +++ b/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn0.hex @@ -0,0 +1 @@ +0165ef569a77dcf12500000007000000215452414e534645525f4c4953545f53495a455f4c494d49545f45584345454445445dfb7b68d74734160000000113a9c14d2a6973352e5472161b0d3f6e0c82fd200a163ac90dc093b9162958830001f35ba643324efa37000000012500fea6c7491df230370efca2e8252e421dc8a9c922a95e0000000000000000000000000000ffffffffffffffff01061a52dfb3a18d9b00000004f35ba643324efa37000000011da838eb5e710755349e0ca427ef18bd429dcd883cd293cf009d09c14de7f455000d8da2010001393ab8d2d17cf2b7000bc1da0078599075b78ba7b501d8b06bd46e12a4660000000200000001000000001159b40c00000001e224abf23a105e14000022fab20d48f0522a247227a2fb0befdbffffffffffffffff01f35ba643324efa37000000014a38347fb44c06d50df245d6a5225a3879c20ef9b7f2f0f3ffffffff0000000a0100d8b56ce46e56a46600000002f35ba643324efa370000000164dcb1f312bde8c04c5ea6b6fd1ddc9713f52481708787fef35ba643324efa37000000012b8d1b83375c58771d2091d4bbf8816c6fecc8faf39217eb215d25bb1a3c9f900000000300000000d3c3418d00000000b920f41a0000000067a7f87400f35ba643324efa37000000017c4bb145330b240f4398f871574c267d10559fe63324a62880000000000000004d2d4a64164bef1f00000003000000008c9c2d210000000084ad59c4000000001d7e784a00f35ba643324efa3700000001625aaf3dc0fc457b3f7d9af849eef6124a36868bd88213fdf35ba643324efa370000000131888f585ce1c4105042b2a0d58f524c1c6ecfeaca14b956728990bfd93b97f100000003000000000a5b4a1700000000d4e7ca93000000002d40e6de00f35ba643324efa3700000001575bdc33bd69cf4b3f587d7f1c064a6652484b776bef744df35ba643324efa37000000014d8b1da35f49280143779b8abe2f64a93bc84fc809abde3117c53e5bf70ff5c00000000300000000b8acbc1d000000000f81f9ae00000000c26d973300f35ba643324efa37000000011f26898a966478f02e2e0a860d397c380c99f49a6e091c7df35ba643324efa3700000001534488aec286bfb030159a325ae040bc7086ac0e2cdaeb5515061bc6b2cd194d0000000300000000852cba460000000014dbdce300000000160d5a4500f35ba643324efa370000000140deac1bfd6998b753dabf3933f30c432e329eaa4c315ce380000000000000003dad66a6b00005390000000300000000792ec2ec0000000099d68b150000000030d1b67200f35ba643324efa370000000141bdd89ac9b7aa935ba53a2fd0766c824cf8e744b15f34ae8000000000000000408310c49776e64e00000002000000007a1d479c00000000d97c66e400f35ba643324efa3700000001444320ea399b7fd20b12473ca8776a1657fbbcf14e3707f3f35ba643324efa37000000013d4f7bc250ae67c835e73b09d138fdf034c89fb4a3b9f4f813b9a17953dee5ac00000001000000009f56981300f35ba643324efa37000000010db9490e20b7dc9f7b849352bf1d62354bd2fa04be82db468000000000000000440d4cfc77bb9f5500000001000000003a6cd63b00f35ba643324efa3700000001195a814fb933b5fd61973c9df5647ad1333eed7c75ef570ff35ba643324efa370000000103d4d25c907ad13406cf335c84a92ac91eaf9435a1e9081e3ee0abf2672ccb5c0000000300000000d5abd87300000000eddcf0cf0000000048fe9b7300000008010041a2569130b01d2f00000001000000005964bbb200000000dad0bcb700000000008923cb2300000000eb0beef60000000000565d214d00000000e00840d20000000000cdf21e730000000035a246ac00000000007fa842900000000068eac4770000000000ef7880df00000000fadd1eff0000000000c4c426ea000000006a26758b0000000000659fcf7e000000005d468819017b3501eeac9a52000af98800000020c75ac0cb358bac6d304c2ed4d0305d570932231710dae42e632cdcdc04a4cd5a0000000001d8b06bd46e12a466000000020000000300000000de10343e00000000022eb65b0000000021e6443300000003b78b3bacf45c41e9bcd2a72a5e4738b456c3992c5b7faff70000000000 \ No newline at end of file diff --git a/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn1.hex b/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn1.hex new file mode 100644 index 000000000000..9e99faa3f57a --- /dev/null +++ b/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn1.hex @@ -0,0 +1 @@ +0165ef569a77dcf1250000000700000018465245455a455f414c52454144595f5343484544554c45445dfb7b68d747341600000001100a8f4b42dcb8084cd7d239ca3bb8ef007adde26c432a5f1f65db9a3d48f9ed00000001f35ba643324efa370000000123871bd5514fe48a0bc560f80318d5ba716cc18b596b88b400000173634d630cabdb357015d3cb1560146000000030d60ddc4e5cc7bba10f6563c495ab4772592663735b8cb565018c39b3e27f3733beb866547199753697a0c2bfa12334a9000000000000000000ffffffffffffffff01061a52dfb3a18d9b00000004f35ba643324efa37000000013187f86502d8474c4b402b27f872253c1265ff288fd8183c49fa3cab3df662a300026bc20000012f040acd8bf6a9030005dded01000000645251725672485d70243b6e6b296a1c2223106a55346c1e034e75237c4976397558694e3e165e0072477847483b1e16430c7144500007322f7b76450e653931644f6a7a290d3d1f64532b4512062c043c020a01561358152061091b1645604956444e331e3c51d396e70bcc5900012055c5c03ff84eb4000000081e642b645c3bd44b0000002068e2cc11d35841ab54774fcedafe11885f3458a4c9763a49e7132a616b28c6db00000080311a28251298873645195125f47f4df874a066d1b0867c570614692d0812f149e30e45ab74f3e078c72192df2ab88a7e6e3e93e5ce6c7d57d2a06d84a63b4f3e5a8e90616a3ed8aa1801911283a34dba65b4ecd6fa5660c40d0c072d4782d2f8ae9cd4efdb0c7e7b33b58b5b39830be9138367a101868e5ee95c1bd3ebb2716a01000000203f4e68310422506e39167777691271132277371120416d57064f02723d04030a01f35ba643324efa3700000001573e60c1d5f89faa09d0df5b472c194c1dbc07b1bd85801200000000000000000000001403bdd94e6f099f1ba0215a894b1691d98ce7e3361a4a71bc845920622c750e17449edf7b000000402976f6013c4633764b199f03d2c020abc73cfff82e86586aafa16b60e62948d8ee401120a846698d46c95a5bb382a035417e6de71d89349f87c96210eff9ff5b000000000000004e18c4def1b22a2f2b94e9e8b72d6deeffffffffffffffff00ffffffff000000040100d8b56ce46e56a46600000002f35ba643324efa3700000001566ac75381c67f127e4713ad3bd648b66965398abe662d43f35ba643324efa37000000010b4ee526d31e3b8b7f6bd89cb7d103fd7a06b5e84835f1321607d2cf5ae11cc0000000020000000007253e9f00000000db2ca27000f35ba643324efa370000000176faf9730cba550e61ed139a04d70414410e5b21e2aebb1d80000000000000000b229d136089ad030000000200000000ebc68e7a000000003bae5f0e00f35ba643324efa37000000015274185ad1c1cd66428cf91dfa016f3604a2220b150a1d27800000000000000004417d904c11896100000001000000009c04070300f35ba643324efa370000000119b0f1763481990640d4df5e491ca9c17b65c0e6a5307295f35ba643324efa370000000142f88d1a97fc08082a76d7fc754133ea3f97524d38d247622bc3a6711c73f8360000000100000000e91fd203000000000167ed000000000000000000000200000030a18ddc3b9122aaadce5f6f84ee559b0980c10dc86ea83cfc914b340c703dce55d3c8b2cb998c85c320a47c18060457e000000000 \ No newline at end of file diff --git a/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn10.hex b/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn10.hex new file mode 100644 index 000000000000..4a97503e119e --- /dev/null +++ b/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn10.hex @@ -0,0 +1 @@ +0165ef569a77dcf1250000000700000016494e56414c49445f544f4b454e5f444543494d414c535dfb7b68d74734160000000114b7446d7f3ffd0b592dc8265fbc04bb4ca78bfb682784b802bb43a1740576180000000001f35ba643324efa3700000001574de69561c4c5e76cdad57b75718f531b8bbf56cf5c5199000000000000000000000000000004000000001915c799000000001b8a46c70000000033713508000000006cde3895ffffffff01061a52dfb3a18d9b00000004f35ba643324efa3700000001160c7cc30808953f1c2367ae46db4eb56193a2d056e0fd1f178461c7de90b3d0000cec010001000001df01449483c641b903780004ce4c004e8d632d25016c5301d8b06bd46e12a466000000020000000600000000397ff84c0000000071c878e000000000167a8cc700000000b4f5946700000000c6595e080000000081cd43a1000000060bc81b87268f8e3fe26af1e4c12cf1c8b66bec021b1ff70033976b623407870a832747bdbfe7b1d161902124f44f3a1d012055c5c03ff84eb400000008545b00aa4c84e1d800000020ccbae1223e37f48789c1a6fdc6e039aa20138e24839ebc65a5222b374383a4dd000000802850944ae458aa22b9bfe41f70ca0507f0f9d9dc21f55e877b6408bcc4c774aff4050d5ba4627074224db2f9a015ec8c951ba7c764b6f25fd7c0f11ffe4f2d05aae75054370252568238204e66a15c47b4cd76cbe3ea3fed846045af404d0e84759f9bb22e5367903150ecf35da60ebd5ad2faf9e16c35b204145660d83a52840100000020632b6f794650526817147061321c067e1173661368317a083b7e5c3c4c56597501f35ba643324efa370000000100fa86d2b44f4ed413851d706622a38840f52270d6f1e362000000000000000000000014950a750c1f88c8dc18d5c47b51f512855e29deae3c4ba77c61d750aa234a87d601d1bd43000000401efe4385b9f2c3d822458ec52daaaca9ace8beb6d58eeec666266209c39e24c9029235694c4b9eb95c05d3e364984cc1d39049f0fe209c01ffde6eff7788340a000000000000006c7d858d9a09f8de4ac0abbfcf4f371cffffffffffffffff01f35ba643324efa37000000014e4cc6255b1d78ce71de181ee2f1513d443e75e2e0b45160ffffffffffffffff0000000001671901dd77f72400033ba20000002081cf5406f291605dcf2010157aa427d6cc3cbf9dc54555f1adfd676fa22616d80000000000010c36b14b00000000 \ No newline at end of file diff --git a/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn11.hex b/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn11.hex new file mode 100644 index 000000000000..54f17738b49e --- /dev/null +++ b/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn11.hex @@ -0,0 +1 @@ +0165ef569a77dcf12500000007000000145452414e53414354494f4e5f4f56455253495a455dfb7b68d747341600000001261140d1077ab27878efb7e46c2448c61003ddf13b87b19e5491edea36d4264900000001f35ba643324efa3700000001728e42882f9b22a873714d6731aefe901ad021ed1c663669000000000000000000000000ffffffffffffffff01061a52dfb3a18d9b00000004f35ba643324efa37000000011f26e5c64c29449a5a3989c466c8797f73aa2942439bc73c120b2d59af9a88c30001d0bb010100000337014b876712c318ca9a0000630e01000000647e79761b086846663c716d793a0a5c04694438346316103f23117b5b62777a1c051e4f1e4a452c284c5013591e617a00610f371750776f7817564c0c202543552f26617d5a042521184d48146e372c173248757470626c6e010857575b4e7e6f6d2c221903b1e798ed0b5e9301d8b06bd46e12a466000000020000000500000000b1a926f70000000074a0841400000000aaee716900000000ffb8bc8600000000673349b700000005f5e5c5be73a1eb2fdb47766d5fae6ff84b2967184a4cfc781a5209344c05ae1f9f261052fd1ff5aa00012055c5c03ff84eb40000000878dd3bc8cb02544300000020892884c4a1a4b7b114bf64cab0670127722753f540b4b3df79ae9d3a9b0e2c7a0000008038df1ad0f91b48c4e6a6872ea0e9959e2503904aef253a2e539fa8583993f5c0be4c338e9609aa590bbc18067f90b56444caffda477ca3a6d19e4c77c5c5ebe9064f4ad123f2b8febaaed14b025d9023a14adc4911c0905d4f8ef801f56a7d1b3563950fab8f24ccf92e81edf5b7140682185b3147171d4ed0a099109796ed160100000020403a744b56290d295b2a27785a526d01025e3227693d25665f0b34691937096a01f35ba643324efa3700000001757773146bf219d95dde0afb045589a1750f3d096cb1bd0b0000000000000000000000149ec82cfc1743aa12fef71ce1466d2847a48f7eee0b35228ea04d80d9462b22cbf1bc61400000004076448ba3d422d73d152ad8e44737f4db362475b1a9d069062d563cce80dd259023b1712623ed9e88c6824f2c76946f5f3fd57bea49fa65d3c9b56137011f94410000000000007947019dd47d270419cb8508ceb4b8a9ffffffffffffffff00ffffffff000000090100d8b56ce46e56a46600000002f35ba643324efa3700000001128bbfa1f42140036cb6db1a379fbcf9249bac2c6f1ffe94f35ba643324efa370000000148af0942e42bb31e44be055f58842b9864a1ef7cab04114a484a21ca5a6ad2c00000000300000000bae41d5000000000e5f4b06900000000fee7d73200f35ba643324efa370000000162e4ef7c67e74509307aa7896f89fb2939c4d523ad87f78980000000000000006c44caeb2cbd95700000000200000000013588330000000041fc48ad00f35ba643324efa37000000011f351f16108ee4344d56b2f8f2e5bb4f58ee0c33377040b880000000000000000e094a6f0b76ef5400000001000000001ba631fe00f35ba643324efa37000000017a75eedc6c6997f971ea365f17d539d727851448376914fef35ba643324efa37000000010570f2870af42b884595917bbf95f776652841ed24b148a319a68febaf77bcc50000000200000000dc5aa4c2000000009c775b8a00f35ba643324efa3700000001386e87a9ec0467b41b19fa5c5fb83a7b36ce384ddc7a001ef35ba643324efa37000000010756de9e98f3122461224a062eea003a530c0a797947cab66556db6d7596466200000003000000008468844000000000af9d9d9b0000000042c9ed9900f35ba643324efa3700000001161be9a8af55b94334a67d4e6c63c58565a93e7e203429bf800000000000000007ff5ebb56cf011d0000000200000000911088ad00000000229b322400f35ba643324efa370000000149006a7ddad0eb00290538f7e11d48fc5d8e745514186d3780000000000000000f79084bed3e45360000000200000000b89530b700000000d06718bb00f35ba643324efa37000000014453025a4b5228302848c23a313334645e679b6bdf1170d7f35ba643324efa3700000001650715271b824d52626c275669d635d51fefe5b2ffd98d0a3ddd3a3061c727f50000000200000000bec6e19700000000cac2371300f35ba643324efa37000000017296fbefabfceb1d1fa7cfb37e534534459238d5a0c813a7f35ba643324efa37000000017dc0b3fc0c8827ab7b5483c3a6fc8a3948594afc72d50d041deee71f73bec085000000030000000024caa8d200000000b71debb8000000000885f93900000001010041a2569130b01d2f00000001000000005d3c30760000000082fbe032016c550000000020cce105a4b8618c280b29c837aa6f08e4c4ba2c617f175463be5ba130a5be8bc50000000001d8b06bd46e12a466000000020000000600000000f1ed3da80000000042df63770000000086ce221f00000000cbb67c11000000006d977c0100000000c786408a000000066b5ffbcc147040d0f72cc8d3b0b698dd4318eb78622f055ca5f8afe1d4d34e8c10909c816608741834be8f6cb154a9910119bd21c100000000 \ No newline at end of file diff --git a/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn12.hex b/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn12.hex new file mode 100644 index 000000000000..25e0eaeb88ac --- /dev/null +++ b/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn12.hex @@ -0,0 +1 @@ +0165ef569a77dcf125000000070000001550415945525f4143434f554e545f44454c455445445dfb7b68d7473416000000010b6a17eb345f08a679ae7ba47e09923a7dc34d3e533cdcbc26ebc63b1a2a62c600000001f35ba643324efa37000000015a4ab278c73cea70723b19d72694bf104b951cdff85f8b86000000000000000000000000ffffffffffffffff01061a52dfb3a18d9b00000004f35ba643324efa370000000102abcb771c25bc167018c248299709c25c3d3fb6fb50b07877deedb862a5834800021aa60000015e53fb9439defdb2000e0c150004ddc1d13a67855000000023eda6fdfb29eae71a25e42cbd9caf6bffffffffffffffff01f35ba643324efa37000000013ec96677fbb3affe6710d8257d7d6b2c3d824d36c7c18cc8ffffffffffffffff000000000100d1010ee06b5800054f2500000020d373b0ca88723d19bd623e39b0d1ddf05377d4d4aeae9068e7f7ecd025cf602e00000000000200000030e811ead3cbb021d9b9051f90c61ed0131011e62221d5a06ce62e2adc030c9eaa63c60b7f267c28081e9b348287f53eb400000000 \ No newline at end of file diff --git a/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn13.hex b/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn13.hex new file mode 100644 index 000000000000..9f7103042ba3 --- /dev/null +++ b/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn13.hex @@ -0,0 +1 @@ +0165ef569a77dcf1250000000700000011544f4b454e5f5741535f44454c455445445dfb7b68d747341600000001602ec970636af58b2679ff52ca32ebd864eec9cb406b232a7d1cf12ec049a6a000000000000000000000000000000000ffffffffffffffff01061a52dfb3a18d9b00000004f35ba643324efa370000000110fa893ec9580faf6f7167963cc7b9a119e00ca188f811984c297974946763ff000838900101000003e0017a29145146d4444e000a150600369980d1ded021660000004d4805dbedad1a4773f29248211e029f000000060100f35ba643324efa3700000001239cdb79ed13139b72349b75b0624bcf5922d17d0d4e07cb003509473c23bcbba516c8e146229db2d27621c5359635d986002c13ef291808647f7ed18c4d16eec20645d8d8e6c94a2f010006d0264c4b2f42815919ab29d108fd6223132411fb640bbd0031f46cabf41169315566886a10b84867518e78f00ebf49210011c9cde29db2c47020ed58832ad0c21d32b024ec7ef2f4d2000000060100d8b06bd46e12a466000000020000000900000000265b66a50000000068efc4be00000000e2b322f00000000008697327000000007d1425ff00000000761c5023000000003d5d03e900000000b8b056e30000000054dbb4c200000009974eb3370b740fdb1176755552d87471a047a47363aa603ec215ff13da934a053dc8b8f9d9fc2cba66eca63aba88ada9820610d30fa56999a05d3a27f814a2fd429a835b69f9b760000000000a00000000f2cc8d3e000000001bcbe8b0000000009b0e368b000000008287613700000000601d4b9e0000000091466dec000000008ca19e6600000000a504a501000000004333a8310000000009299ace0000000a92a4c64fb47b7045abe6fe6e366be7a8809178a2ed6df567366d410708446a4f4eb6352c3618b394365589b1750ca05834f589e30c9752cfaa7b005e93864eb09188d03c80bc71ee62866a334ee94a5f000000000800000000115ee9f800000000389b5df90000000002ce65ef00000000cd0ad43d000000006967cb74000000007824d4f500000000f2121cda00000000f7fd2bee000000086b6e21298010fba962632624fc75b7e0a9acc275b184bb8110dd0fed0770d52c77bff35c6de877d1053fe04b348fa6200b92e9a6561419b6b94d85376301e3af000000000200000000391e3886000000005b91fe49000000022eed9a6cefef8fb242d63ebc98fb0174000000000100000000e5f77d2400000001247f25fcd104d0ac0000000008000000001691e2320000000006c230270000000041c9e4f200000000e395d5340000000017ca84c800000000474d000a00000000d3917054000000006f16bbfe00000008fc660596bcbfddaf729d6d0135247754e89a7a6fb914a941754bcec87c7f10be4c4b2dd501ad03a3b213ce93279ecea4ebc74fa4750df7221a6d001da78078e100000000060100d7a02bf45e10346600000001000000050e067d84756d8e014decf0dd99fdb5381146e90db3cffd0b3eec6943f29f54c279beaa7d56ff216600000000000000000000000008656ff2a9e9ca110652658a90eef02e9f37413d66ace5febf018ae60df1a31e95384fac76088f781873be9057e43630613813b042df4eef91486c0a8eea2c0ac9000000000000000000000000073db1107d749eb368612ea262bab791643a8d4ada0b9a86d45fbd96bdcebc9759663a22f8fef2d2fa70e1ff767e8308ac1207a3d298cef0f0000000000000000000000000042a9e908b2763c6af1aa762155d791d3622262e6851bd1f971b83192fce3099de000000000000000000000000041d5787c50fda03b23eafad765852f51b47b760194bc92dc116bffa07c179658b000000000000000000000000040b439148ad2b6bbe760c35663a5ce3d7222a13a6ace2d4337db1e1bb87bf64190000000000000000000000060100d8b56ce46e56a46600000002f35ba643324efa37000000014ecd510e2f4aeac3427cb3aad45c7c4614ce4bcd0d9ec15d800000000000000069d96d806569fdaf00000002000000006a0f705f000000004c180f9100f35ba643324efa37000000015a2ce74bb6ecf3f405b21d2e2e224db6615f9cefefcc9e35f35ba643324efa37000000015403ebbfd1e93ac4056fffc401630e3978a2c34493d85f6654c3bad3702374560000000300000000fc87a6340000000079cef299000000002ed9e1c000f35ba643324efa3700000001604751e5ee632af60125487a0e420819009c119acd97442cf35ba643324efa370000000136e099c081cec2877d69aa72615930283c8817e89741a64f023abade21f6c38c000000030000000087ab1247000000000372f2f400000000d8a9f35d00f35ba643324efa37000000016c4d5c91eee1b9c546cf1278065e2580254e07a329a1e9ea800000000000000046fa4fc37fc31d02000000030000000025b7a4b8000000003eab509100000000d2dd27cf00f35ba643324efa37000000015ef400a1d4be219a444883987d8167fe499f3c2b43f7c588f35ba643324efa3700000001487a2ff45658317876bdcac7e53ad3bc2e3dba34ac164bf01c21d99418ce838200000001000000007f3ed84d00f35ba643324efa37000000010b644876fcc8f5c4225675e05e9b489702c46e077e0a9cb88000000000000000739b4b032f3909550000000200000000c7543ab30000000032721dfd00000003010041a2569130b01d2f000000010000000087ab61c900000000971f8f5c00000000007bdfed6600000000e1a653a4000000000001c5f14c00000000e328a91001345900000000203f54b82bb55d691690c08c84e65674ead0df8e45e1e30827eca073738f01047a0000000001d8b06bd46e12a466000000020000000a00000000b502161000000000e52aea4d00000000a7b42c3900000000c5db3c380000000003131e0e00000000aa1c5bc800000000406bd7750000000003c51cd800000000cd4c2675000000005a1ca1b10000000a3bf0e9d0eec458ddc516efd0925c7de3136b8f9e49e13fc8ad5692a468d8fa0bb822493b119356212b5734c8974b1ca199edd0399663e66c040766b13d35dc68d5c4f79dec26dccd1775396284725cb60000000000 \ No newline at end of file diff --git a/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn14.hex b/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn14.hex new file mode 100644 index 000000000000..552291689854 --- /dev/null +++ b/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn14.hex @@ -0,0 +1 @@ +0165ef569a77dcf125000000070000001a50415945525f4143434f554e545f554e415554484f52495a45445dfb7b68d7473416000000013a944f6c19490d8a7794cc65b7a48ebe04001d865b2f2b815ccdf159f177120d01f35ba643324efa3700000001167ca7109bdb22da6b76d9c3325d90c65535d3fdca2106f1000000000000000000000000000000ffffffffffffffff01061a52dfb3a18d9b00000004f35ba643324efa37000000015f4ce5908f48ee6065bb3aae4733c030533d2f87a2008c390a19e960fbe63b2300007da700010000006701408f95be41e76499000bcdd40049fd5ebc2d5683d301d8b06bd46e12a466000000020000000200000000aeb7965900000000fb7c3f7a00000002fe2f5e55093f4f6b539ee1c057d13e4f00012055c5c03ff84eb4000000086e0013db8073e1bc00000020f9a14e2a6915039680640b275a11254f5655c9caa006cb4902d477b21addb47a00000080624f05fb248d449968b03d88c04f9bd8a2d5400e7670ed7fcd6421171132665e11904d94300f5dec396fb0355b6427c84e264a6f5081026f27ac8dc3091aa6d7685aaca6dc17b808d463a9604e042ee41792b7adcb9a6607f49fc3a5478d8e9025bd1fb8b0f13b8721906ae973fee91e847c0b53b97a9032f7758bb6106f9533010000002010112f512a753b34475b21570d773b366c33674a1c7765264c4d407c28464b1d01f35ba643324efa3700000001224aa60c251d01a2002224a1f936c47a7f9c518680582482000000000000000000000014e5563f070c14411fb9d22462f2a6e244459d106579c990e5e3d9e1c54c0026ba371f0813000000407d9e2e71d92bc8fe8e1767a029bf4b9de9c3f4479887357cd81fa7e5827003ad933127e593f121a751023b8820683a870a8057e07f997c1cda4256bdaf123f9700000000000006fbbd4e0550b24f1e243753e1529848000000070100f35ba643324efa3700000001423e944a775c4a5151b98351121155657431a685e636ca7b00487ba1aee340858a6a3170395e7bb7fd63cf1da3d9afd8dc005354738a8eca015d7b59419fc44e580d6010543498b1a1ee002bc4e7d8c69a7ba91ec4ca9e150fa5432de57af56f81ee62007be15de379eb8b0526c0202b8a22b9c9279f5f48351d8228005884496241f29c54168019ac91dbbaf276042764f40a5223000e788aaec2379dac1533dddbf2d2cdc56b5661528b6f74b7000000070100d8b06bd46e12a46600000002000000040000000006db7edf00000000ccac9d6a00000000974cb816000000005779bd6700000004893369e0b6d7e59bb787502455f30320220ee6d1a43658a08f9a4b1aa6d90d92000000000200000000884cbd3e00000000bfa61c9200000002923b7c28564beb29f88c79d4c9d5939e000000000a000000003d1a2fa40000000057389feb000000009d3e0520000000003c2a4d7c00000000953e8ec80000000081a73db700000000601a219c00000000a2cfe9160000000075a597c500000000010ff4290000000a26c285360711eddb5904cbd525c6acd10a7002e4e774386bae169d54e7dacfb055ce4a85491ec991ca35c305fc01df93edd4ef532182e624bf69a3aa5e19fcc3489ea6fc769134949427a5b0a1c0efbb0000000009000000003f70c21500000000eec888f2000000002a9f99c600000000de65634e00000000fb0908ac000000001d9af08e000000002112616c00000000e39943ff0000000072404e470000000942e02b305ee25f6a8d9a956fb0c162d458ff78c0708f6e3f3268fb031960c5b1d5913b436941b6e951e05af72b80ef54390a70c553ebb7e634c3f0892ccdc871a78a1aa95f4de8ef000000000900000000c00b397700000000c08ced500000000003f058a800000000c6aeda0f000000006d18a68e000000004b1fd75b00000000cf48b514000000004f0aed5300000000c86ec25f00000009639f9278a3b6d80288ed3a10ef2b3c4720aed224cfad1d2c616df4625fc70daeee2db189d5a65a47cf486499e2525152bc44ff0d553831162c1c73db60b7e2d9b8218409dfb18c860000000008000000006c07d1530000000044c1d768000000007bb95f3a00000000babd647100000000efc6f74300000000a8fd34520000000056f1d86600000000537694ac0000000848bed081c23a7ccb0cdb60b272f4c78ad2c6b483dc6f7b1e3683568b58d5ca2a8e755de04f0c3b02ea00aff800d57df3fb47b1d666b7c8678e7dfeab7850abbe0000000004000000004741c71700000000afb779fd000000001da7f437000000007c55b29f0000000486f250a28171441755b1559e7f43298f8c9b569afbe9454900a881c1b3c7f9cf01f35ba643324efa37000000011c432f1b4e32138e19e4200ba2208b890af2782750453813000000070100d7a02bf45e10346600000001000000075c765db7e64684b45a74a0acf60ada5274397e3811cd2e6c5584d25e38c3ea0c521f65896ebc9956314a7252a9432402732c2117f18ca4f10000000000000000000000000a1c866bedf9c423124e26f4442272c4621d4a6a5548188e685de7ad574eae17d91d6f6a0ecc9a185f26c0412ddd63815d6023f4f0d44e24f543456bb8c56c6d2c494c6b241c671d177864f60f3e0dd57e0000000000000000000000000617d421a93ded22022dbf86f2cac41939362669afa57f2fcc0f3cd7b01974d82a0184365906dc5ae07f3a21180cf45386000000000000000000000000015a31a829d32e050e0000000000000000000000000351564109fe2ae4c66f0148edb460af675680a5c56ff5759f000000000000000000000000066f6194c7b1e1dcdb6a683bfa17c6aaba26ec6d29669b1abd024f981abfca0f055f5743337d6cd4c53d999399e6d3838b0000000000000000000000000664f78555aae267c44d8b576df97711f10c0181ec7344d4073b66f2f5a8dfb7f777671f88f1be44bf2a025956b805ce4900000000000000000000000a0100d8b56ce46e56a46600000002f35ba643324efa37000000015f4bf13abc92b5d56f3607bf6ef72e7e18141235f040a3b7f35ba643324efa370000000149572d32cd30bab12d70eca0e929e4dc00bc6964385f96594a96f5f5fdd26ecd000000030000000055f52cc700000000f90e75a000000000b7254bac00f35ba643324efa37000000012e4738dde3bddd8360830146ce48594d75c031a6788ca3b280000000000000001a33e9657c663f5c0000000200000000a02aadc600000000bb92efbb00f35ba643324efa3700000001054ccbc2d8308d0063de87f6d9c16a6d5260d2b27d8431c5800000000000000025f5d088a9813b0600000003000000005086c976000000003d24d23800000000bf4b0ea300f35ba643324efa370000000128230b263ec3539138efe1895ef0581025fcd955713ba843f35ba643324efa37000000014e8dfb7654e71f586c57d51923dfdf0b24abc65aeebd88d77c72b08080a0d132000000030000000093ff366400000000e9b198ee00000000f15f1cc000f35ba643324efa37000000013e2ce3dd61286ff4577183f8bf65b8b03b0b670629cfec5f80000000000000001f99a5875b1df2e20000000200000000541b179800000000c17b96be00f35ba643324efa37000000016516252944d731fc298ece949704865d3592d9cff2b30bc7800000000000000013ec3ce9acf271f6000000010000000044e4d18e00f35ba643324efa3700000001588c92e2c0a4b4b6596f00d5a5e3c0354b4c127f2703bf08800000000000000070077f766113453d0000000200000000ad6ef1630000000041a1e43500f35ba643324efa3700000001063cf80eed4c53c3625d46b170a3401c07fde52f977b6f44f35ba643324efa370000000113f91c7d23ac849161b1d7ffcdbf7da43fb7fdd53987063b4fdddd29c938b4b00000000300000000f1b61ff500000000f4e62e48000000007473506000f35ba643324efa370000000132b2e9591d3865fe275e92fc3867c60548bf3ac87443f9c080000000000000000cb158597ffc049200000003000000000e86f29b000000001acccf26000000000583a6c400f35ba643324efa370000000112239e54e5eb2e5616aa8e10db5ae7e77bcd2ca5372ae042f35ba643324efa37000000010c7133a286c5bb942b8550af0262676c69433e91458ce74d67ba5854c9ce3120000000020000000089e8a27d00000000dc610b3700000004010041a2569130b01d2f0000000100000000af84d20e000000001398ca410000000000d9ec3e60000000006e99cb540000000000c9942a0e000000004c0aaca000000000003800f937000000009a3095a601048301dd10cdf6000e277b000000000000000001d8b06bd46e12a466000000020000000a00000000a9877c5700000000be9189a800000000873e014900000000c9d7a6040000000060444b42000000000dba660100000000726cc28800000000b3246ed500000000297b5a9a000000008212fa130000000ab30f1f7f0bc6b3c2217961d46eb2f6e72cadc5031f97a87cf14bec37b484a04fc1df57eb24c1718068d0e7591a3ab5703a5a6d9f07e88542a45d576e1563bb83092cb9a8820ff24029f8483174840cf2020000003086e06f3f99ee061cfd3ca9cff789e486216c984db8dd3d236d5ad4c9c8a20bb191b994f7b872f0557f040e06c1db914700000000 \ No newline at end of file diff --git a/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn15.hex b/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn15.hex new file mode 100644 index 000000000000..11e64d771cd9 --- /dev/null +++ b/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn15.hex @@ -0,0 +1 @@ +0165ef569a77dcf1250000000700000017434f4e54524143545f4e454741544956455f56414c55455dfb7b68d74734160000000166dcfdb06e238dbb596c1cb410001e0c102ba1fb40a8cdfc5e9a58413e670f4f000001f35ba643324efa370000000145813a57747b1ad268ff5ddacd526bf7477dd00517e3513f00000000000000000000000000ffffffffffffffff01061a52dfb3a18d9b00000004f35ba643324efa37000000011a667009386e85bc2dad643aadcf4ad658d1d5f09953c081447d7735107daafe000399a9000100000270011cfb973acdd3f9790000d9e501000000642612546227446434083c1e61264d290f0d5f5b0f3f3c40376d645d143e0f63201a436e0a5749355773002350140e3d411b5b133e773056766d00435d333c436e76551456190b035c12050c0d107c585a7a2626511a3068265d0f140920692c2d76493539643cbbdb0dda86220000001170fe31e4b0aa68504e904615ff18d2ffffffffffffffff00ffffffff000000030100d8b56ce46e56a46600000002f35ba643324efa370000000157cde01595b124671dbfae79addbdfec622171ebee5c47e2f35ba643324efa3700000001317a4a18df53b4056b1210270b7d70180d4204fb9079870601c19bb3568287640000000100000000d356c0af00f35ba643324efa370000000160691e3697a341771d5d4a820a00d5813fc384f334b479ca800000000000000070ca498c68392ca400000001000000009cae3a8800f35ba643324efa370000000105b851f980bdcaaa389235ac56e5b9807750886dc60e437a80000000000000002f8ea6584a77b6ab00000001000000009b5635a70000000a010041a2569130b01d2f0000000100000000258f8a51000000004bb392850000000000edba42d900000000df4ce290000000000003440dc100000000b21a973200000000006fe7bb6500000000a0e18e3e000000000018edbd670000000034a739fe0000000000972df48200000000b9ecea2b0000000000c4525a8d00000000d2ed33050000000000eadd695e000000000993dc5a00000000005d36e0ae000000007a9de2b80000000000a1182c68000000001944d42a014b9a00000000000000000001d8b06bd46e12a46600000002000000060000000086948e6c00000000c837b5ec00000000f1b9693d00000000f2a4d2ba0000000001690d1a00000000912278df00000006b1836cd43d022448b566e13dc8e7d8f696d2c0a0434dd8a1a8869c3db1fd0b78b3105c638cf8269636123a694984df410000000000 \ No newline at end of file diff --git a/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn16.hex b/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn16.hex new file mode 100644 index 000000000000..ab898def4912 --- /dev/null +++ b/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn16.hex @@ -0,0 +1 @@ +0165ef569a77dcf12500000007000000294d41585f4e4654535f494e5f50524943455f524547494d455f484156455f4245454e5f4d494e5445445dfb7b68d7473416000000016d3af7df283a49ee224bae6fa9ad00425b77d5c854dcf23959a16b16c589285e0000000001f35ba643324efa3700000001736a71e27f6702694f29840f051931ce5e4bb3fadcba7fd5000000000000000000000000000008000000003e4871de000000002dd8589100000000d59055ae00000000b793ce8500000000a0684cda000000009f616e7600000000f3005539000000008f5415a8ffffffff01061a52dfb3a18d9b00000004f35ba643324efa37000000016fd10e76d605725030a8de32067d66c2546ad9266c53c17609fbc8c61dddc8e2000eb6c500010000017a017e4cb351576bf9ad000d9615010000006407787b621972432d327c63230a4e0a74295e6c635a0d0f6725746b1c4f1a623e34506b622b7a5859496058677119034f061668552d40254b5e4c73222d412d2f1d5d653b5c094c0b672946390871065d341d1449541a23012f5e285d0107550d6b5009184e0ebb591839581a01d8b06bd46e12a466000000020000000800000000dc5be322000000004aeed24d000000009f40c442000000006cc07aa600000000900dbf0e00000000e1304e5600000000ba66928b00000000129ebe480000000870e111a606b5e634245f753510c8d9db353de7dfdd7e595af5584ebe7eb1e1aa6fff8347b431e894b74e6ea87956742b1580cefc231893d9b6a991b8ea133bea00002d2347b4190c096738a17f5429487227ffffffffffffffff01f35ba643324efa370000000126cb523bfbeadafb1438f69e091553150bc4c74120ab3dcfffffffffffffffff00000001010041a2569130b01d2f00000001000000000b416c2b000000005cf97a010157680132ddb22a000048430000002071d04633403695320bac5de52cfaa5890cd107ae199bc0b5538846cc18ac8c0b0000000001d8b06bd46e12a466000000020000000100000000fc3ff0ce00000001b241dff4db82ec7601274b7e4400000000 \ No newline at end of file diff --git a/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn17.hex b/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn17.hex new file mode 100644 index 000000000000..7194fb8cb459 --- /dev/null +++ b/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn17.hex @@ -0,0 +1 @@ +0165ef569a77dcf1250000000700000012494e56414c49445f535550504c595f4b45595dfb7b68d74734160000000131a1802122cd7981468f4e2acb7e07ed177c8f8c1b338cc424f9ec55e2afcadc00000001f35ba643324efa370000000115b614219c53604d039e41908caf90805655629752b50e6b000000000000000000000000ffffffffffffffff01061a52dfb3a18d9b00000004f35ba643324efa37000000015595a9b2a30ee50915a9fe7307fc92db7cf834239b82373844d327b349527f74000a13f300000119fa81cb0f03742d00013c2f0006e29e85c7f53a1901d8b06bd46e12a4660000000200000006000000005b682d2b00000000b1c9a97d000000004a642bf400000000c0568dab00000000898f8d9a000000008ca877fa000000068fee10f3ffd30e7a73c6092bbcd4b6d21819a426d6b4266be154c4ccaa0823a533af8a0bce14d658008153a5a70fe3e400012055c5c03ff84eb4000000081d0b46e4981d00b200000020e1bab0830f32cb376900396086ca8fc90d95bc66f1520a709da538ce12dbf5d200000080a0d4bdd2b23eafab25e3d6f216e894b8e0eaedaa9174e8e5420cb7b015128d4bcfb0aa8b5213670adae962061d6d84c87ee987e96ee06f4363861bb0685736407541f31b5fbf15ad9b91b348125a6d7608911ebd127ac43fa7532ec4691175f79d69c55de261dcff41cacb9d7890ca281c78f7861c5ac7862028df7ff37ca09c01000000201677367666550326555f67475a256b2a620f761e743971417d7b406e0c46305201f35ba643324efa37000000011c4b624ca7bf685133856cbb5eee4c184ff3fbcf79aa4fbb000000000000000000000014911d6581b5af7d2dc435a42335e82ea5ef961874687a88e399c02772783743adb1e7d0a3000000402e5b3ba958905441149dc92cbf48e51af36e578f48aa2acc6d4beec339256ff0ea0efcdc396dc2a04e2dac6d1278801176df856e78e4446b9283cd2a6c3e54c200000000000070a0ae3d893608b04062907839bebbc4000000080100f35ba643324efa3700000001398c033eb5c1a5cc143dc167f47c27824830d1a32da4a5da00040ae46ee21bcd0a7cd24771e7403825124f2171adae1bb900020eae536a1a4bb000aa365932d2c7b15c82552f07a33c9d006a1c7b36f9fb0b265b59a815b6f9df295a6dad279999069b006257c1dfbec7abc96c7c552de2d8565a332dc416e5c20857007baf6bba9448c9114b4a370617284f2f6fe17c895e0e6eaf0053a600041f610fe357e78ddd30311dbe5e15221299de920d0038ee451f21e668e911e2deac0512d3415248461e0ea3230f000000080100d8b06bd46e12a466000000020000000900000000b097d747000000000ff83dc40000000033e6a7ae00000000a50e214100000000430852cc000000000655579500000000324bb341000000002464449e00000000b2876dd5000000098a66df1b3dd8e98aaf0f78e3ae54867e6408d8e8bf59a86a3c30f67c53eec8e21df408cb26a72b3c6f1e104dcd8cd0e04265f69999d05cc2f79b6f543537d09ee408754f414684fb00000000040000000011c500460000000022c1af56000000008d67f0f00000000053b16cee000000040ceb6c1185e322201c9b80ada9cf9a2e25218791c9743cfea1fdcfdc04d49a39000000000400000000f962fc5d0000000012bd4f56000000008fe495aa000000003edba5d6000000049766c5fe1f52e315c55bf6d72302ed4d9ea448ba3274cb00b16ef6f409a9c9d5000000000100000000d392807700000001c14bde7812459b7000000000070000000085fc9f0a00000000dee48c8c00000000f3e5645a00000000a8c71a43000000008212783f0000000069bf3fb60000000062e68e0600000007668c321b69eeb61bf9e13323b1d43fc0fbd1bd5b413ffe3c1c3e31e8cc7331ff1d3f81f190af22a8fb87e42ba99137c67120709e48091b15000000000200000000b0f2dc39000000001dd5b4270000000222bd6ff76d0d17bc9c320682301f759400000000050000000079bb8db3000000001e33c40c00000000f7c896a60000000027d3d0ae00000000d60b4823000000054cd97e4a459d87cd9d4c5abe29b367865fa95f0a7216acaa1a5710f86138609c6fd3c674a7534f71000000000200000000f875596400000000e5fd62f700000002ac72c36af57d7026dc16ebed7947b39e01f35ba643324efa37000000011e3d467e054916d6328c153d3ef77aca2a29a86e7eb9e6ff000000080100d7a02bf45e10346600000001000000023d9994d1f068aa4c5e2cb336f7c4657b00000000000000000000000005202e6663623e3cf91f5919370aa593cb0ad18a91caf1e4e047e601d7c317fcaa63403863aa200709000000000000000000000000054585b692a74e7bb56a9eac1c6a48394c351ffcb614cf269543185972c7f864e31666598fb98c0e4e000000000000000000000000072444e21c674405423367c7a5c5298cdd711e9d06fe4492ec7412f1963337cb1b6a3915a257d5431a5f56647ada54cb543a4218bffdb246c1000000000000000000000000034a929696d5cd003271938766c9c45925058e052b0b5d8d3d0000000000000000000000000a78b7a528ebb6bd6756d01fa12f72854843cc5ff6f92ea797300ff45f1eb09bb50356b651fe0acc93194d4eec347d8b1358734ef56657c64642a8bf787dde0b8854ac4fe2b98214a50218459e086b0fea000000000000000000000000014b35bb6d3a93b4a600000000000000000000000002338ef4a61f8770f059a550cba9c4b2ae0000000000000000ffffffff000000000114c301a39911400009eeea000000000000000001d8b06bd46e12a466000000020000000800000000fea4b28c000000007ecc9bc500000000e1a876a600000000c92a1f62000000000dc7348b00000000b0ee94ac00000000b2da308300000000e852b5ac000000080751b339e72ecd588171dada8a2ed5f5425c0d39a3bbf6099a5c6346ea9c0eabfba6875af2ee5bf8c3d2f8edc3215f8018061c764f398e4e2061c134610db6080176cd6bb100000000 \ No newline at end of file diff --git a/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn18.hex b/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn18.hex new file mode 100644 index 000000000000..e00ef77e8e71 --- /dev/null +++ b/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn18.hex @@ -0,0 +1 @@ +0165ef569a77dcf1250000000700000018544f4b454e5f4d41585f535550504c595f524541434845445dfb7b68d747341600000001704828644b5732b44772220eb42302b828c998f84dec3f0c4cb13ec3fa3c9ea80001f35ba643324efa37000000012c050b0427fa20727d63e3d7fe5fd6d9368b1de95c0994f80000000000000000000000000000ffffffffffffffff01061a52dfb3a18d9b00000004f35ba643324efa37000000011109d3c30634419a6e08390ea9bd3f864ee96d61d003d20659f96ea0cea177a50003f6090100010b6bdbd94d9089b5000450bf01000000641e477c527b492b566d1d4160002b5f30762201143c6346591e1839453b227904410a013224311333210f1c5442434f5b792a64531c7a1a670b1e4a64434c21064e1b557036626c6e156e7d021808283b4068200c2619544a5e3d2e61537b047d756748552d9a620b3ac6258501d8b06bd46e12a4660000000200000009000000009e225c4e000000003e38dfbd000000001ec3f39900000000aed62dcd0000000028dcc84300000000ced1c21c00000000224fff7800000000af690799000000000e0f5e8e00000009b9d9ce15b9df5ddef7a962affd9b94d4e8e8a9755372b59229d5090fe8fbd587c3be8b347e0387efbaa35e438e9e4470272900526c0f992142a0d70c1978589b855b8f0826801afa00012055c5c03ff84eb4000000087c856cab598de9cd000000203c63f072e74d36f15846b15db51e119315767518126cb888b3834e853c2b69e800000080f6db398c68299568cc1f5a12d421319c6f11f3687d6cc4b68e4dd97608375659fac02b5efeaf88380484079801a14b72da9c32837726818c0293ad81670f6280f90ef8292333ca425ce6271d1314fa20ec3603e5c3f1968290bc110fe2470ea1c86cb6d347c046a883124fa7bee338810f78b0549416d6d5fde8460a6100553d010000002068176062707810461c2564162a14096e563d4e0d534d461c7d39785b75372b0e01f35ba643324efa37000000012d2463e6b129bc4129ec2d015c4119585757dca46c9a0c0600000000000000000000001438a15491e69a4542f76f177cce11caccb973cdbe59e9d7038979e2af4c7983b87ae5cbc90000004057bff861e0e221a38e85421144e17978dbea6c43f98b07ab495cbeedcb2f98acbc7ad10723f925495c1db92cf4b004456efc32e9d2aa7faee930aa2c58c614f701f35ba643324efa37000000013eaf3f8a213444030030eec4077241556907f20585bf984b00000000001bc80afb8e810ef13312fdbc3f0f4761ffffffffffffffff00ffffffff000000060100d8b56ce46e56a46600000002f35ba643324efa3700000001480be9308f0b0d9210e9fc56d6500fd8519cfe02f6bb568d800000000000000026ebcb56971491e30000000100000000007e5e1a00f35ba643324efa37000000011737fd944e276cde1c263d10f396e92c2b9bc14df358c8e1800000000000000029f336311760c4f70000000200000000a4e4af7d000000008f7f458900f35ba643324efa37000000010605f692f2c446c7746a4474f3967d1935ed5b4b38de6ccd800000000000000025b70de847932e1c000000030000000012f6d769000000007af089b10000000029b8e39200f35ba643324efa3700000001509d1ea6802dbbc62a363eb214e91ec6270bbd79bd414311f35ba643324efa37000000017af79071cf2216935c3cb6f2a533cb634ff32536ee9d17d36212bb594e51185f0000000200000000f4c15db3000000003e0fd45200f35ba643324efa37000000015f3297a87bb3032a7158e6e1e9c95f786e0ed2cd8291816d80000000000000002733be9f3d14ed29000000030000000087700960000000005a56c919000000001918e25d00f35ba643324efa37000000012894fb9be5032ca17cca2b1ebda9716574b43d2420f8cb42800000000000000009d640565f6b80640000000100000000e1fdf3a80000000001572c000000000000000000000133c01dba00000000 \ No newline at end of file diff --git a/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn19.hex b/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn19.hex new file mode 100644 index 000000000000..c893f059f37c --- /dev/null +++ b/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn19.hex @@ -0,0 +1 @@ +0165ef569a77dcf12500000007000000265550444154455f46494c455f49445f444f45535f4e4f545f4d415443485f50524550415245445dfb7b68d74734160000000117d1074a273101020da1ac883867eb3a342ba4a51b5e28023273c73491a6f30f00000000000000000000000000000000ffffffffffffffff01061a52dfb3a18d9b00000004f35ba643324efa37000000012e8a37a15231c1c9005ac09248569f767b5998e1af08d8d73387105dc2e02f59000615800000015cee6e25c2db2fb8000ee7bf0063a8e94841e6c15a00012055c5c03ff84eb4000000084e93136b5fa2bef500000020539a28dcec10c5c3efdb0fc96b46eaccddbab423852d1929702f5d4fcb86ccc900000080f9a6d0d0f08c0f50cf782472c8dc32fbb5161266223b86f08085c28d7e5a6c41c8c5d1bb43db72bd0b7bf4e90532e9e6e2aeacd5b3dbfa877cac2bf18407c782cfd7161c9323315a001c95bf66fdb0d7ade07b32af94b2fb29968653223487d4f21d4deee72423ef91db0165accd3ec640eff55446a7e95f47fa0736cb5e68bd010000002048065175213a5d4e03015d513b4f3d053a03042d333f287e5e4d1d0b7e7e5b6301f35ba643324efa37000000010e10210c1be85de9703844f668435e0a4b603fb25ba25b59000000000000000000000014bbc0b1787c1afe12010f69352f31b178ac6cc8ca0c65c8d3b67ce275600483063534f1a700000040f2ef19825e87e18102ceb80cb96c85412db2725017b455293d5fecac323664bafd05baab7a9dad96757e5f30ca1b32e56beea4e5409cf722311a2637dc6902bd01f35ba643324efa37000000017462d9b943d4705d02f536ed95de252822b146075742185400000000000061d2a5d12f58ca33532ed7520b35b888ffffffffffffffff01f35ba643324efa37000000013b8e2cf4abffb7f724057ed5eebf1ef94910b2ba5d3a9667ffffffffffffffff000000000113850156979853000ef20d000000208b48b2fc211a7de0e68d0fd24afca31ffcef0b0fb6780992cc9cbebee2ac74c5000000000001486ac61800000000 \ No newline at end of file diff --git a/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn2.hex b/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn2.hex new file mode 100644 index 000000000000..546ad63062e7 --- /dev/null +++ b/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn2.hex @@ -0,0 +1 @@ +0165ef569a77dcf125000000070000001c54524541535552595f4d5553545f4f574e5f4255524e45445f4e46545dfb7b68d7473416000000011b1a45603b579d932b14125a1f730a2f26c31b7445ea3f6101f87eed3f8afb3700000000000000000000000000000000ffffffffffffffff01061a52dfb3a18d9b00000004f35ba643324efa370000000179cb882f169a868a609bf75af0e67a03303b6d1bb102ae325bbdaa5fdbb60cb0000498e80101000003960132fe41fce6d819ab000710cd01000000643667307c351304777a4f7c77624d1267254b237b4868724f2210163f2864061e193776015f2b54076b794127367038303841060b02685e627d4b7c5b145b1d3f3f08252e10156f4b3545640864505e1932032c7a58274514000c576c4357373d3c7d613f6944c8e97422c51a00012055c5c03ff84eb4000000086e198e25450d6f7200000020d3d6b8592b6ca3c038a7e00c1d8a5d697187a56867d2b1eac618116fcd22c1ab0000008010c4a2f1e25d9f6e125d8fe18d4041db7418bf4a6cb3daa31ae07f8cc9167457867c39ca6ef91b6246b3e25f9940bb33c5bdf5fa9ff5a4b4def1364958fd5b9f6ed17a81dd98f41487ac1292f55e4ee13a0f9723390b05e1cdd369ffb9e5fabbf796f3784de8f7cfeead3983d404eb886cb5b601ec8a633f14ad169e3a27848a010000002019090f74457518281c4a22036b0377622c596d34411f387e036628555f210f1001f35ba643324efa370000000115a996c972415da3359b9ae7045428dc16e4e442095bc4800000000000000000000000146650583b696dbb6911b7c487ef8c1bcc8bff648323d9125d56ad2735708861d591e41d68000000409eb090894d651c1749d131a9c58fa5f76a5247e6c647e531c9b7a271cc13826093cb52080b389a7d23c871ad95ac7bd1bfe6d871e80b6414c51f198510274d56000000000000007210a8ae5d813e5e3dbc14b402fefa69ffffffffffffffff01f35ba643324efa3700000001603a1ba244cb5ea73ee9045961bf2c924ad3144d9feb649affffffff0000000a0100d8b56ce46e56a46600000002f35ba643324efa37000000016b454290549a54b123349798847511d36e32602b14b8188c80000000000000001986b9ea46d9b6fc00000001000000001a27837b00f35ba643324efa3700000001602a94009453e85d03ade0da811f572a6a686be1fc22aa2d80000000000000003256ac7cee762453000000010000000009a25e3500f35ba643324efa3700000001478c6ee301040fe90f1d7a5c0f3346ec4e68d02fc82ec0d6800000000000000035b5bac8dbf8644e00000003000000007eca98a500000000c104639e00000000e18d599500f35ba643324efa37000000010191bc9b2a595a4f392c7f9b59d0ebdb5b5a55592a0b6597f35ba643324efa3700000001422f8bf32c8830d524cfed652bb5bf800a65f6c2d7ee036633cc814834d68dc500000003000000000b260e9b00000000a454d17900000000fd7ce61000f35ba643324efa3700000001024cabc8c9f4b90513a7b12fec6051550bd60450a79fbcae8000000000000000240f94369c581a1b0000000300000000f41181be000000000ccbffe0000000009fcdcb8800f35ba643324efa370000000130be992e4ed60ebd037e4689cd891f503699dfcf3a30abb980000000000000005d012191345936990000000200000000147c615a00000000a20846fa00f35ba643324efa37000000014746d825258b8e6d7eaa7aacb739afca74e4257960876036f35ba643324efa37000000012af593fce516ecbc69c9de42af0914073e5c0a64f3e321ad08ecdae8f0aedc120000000100000000f436871400f35ba643324efa37000000015026324a7541ae9a355c7ea2230b1d3e1a79f4393f838a21f35ba643324efa3700000001666a6998aa95808472f0dd336eda1ff8706f2d957016b9a57e00784a78d923280000000200000000bcb52297000000006d2931bc00f35ba643324efa370000000141f1898c62b2897c1371da38489200fc595f9f290060320df35ba643324efa37000000013192ebc07b776d9845e1e8d322b5755551d64d3909e94cdc08b5da4eb80de8b500000001000000000885d20c00f35ba643324efa370000000178644e22098d0f2922197d6e4417cfd10a11ec2cbacd15c68000000000000000659bc431d5a67736000000020000000099e89298000000002c4db7fa00000000012b200113c10ac80005b2fb000000000000000001d8b06bd46e12a466000000020000000600000000a1550aa800000000c57dc14c00000000fbd10071000000001ff8ea62000000002408b64c000000003679a83e00000006e7ac81e24432cc94340d46bcb278a0dda2234e50848ed2204e468cc1e6cd5c10830f7a972e92c05b805705fc73e02d4101216df68300000000 \ No newline at end of file diff --git a/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn3.hex b/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn3.hex new file mode 100644 index 000000000000..2eb0757c2bcd --- /dev/null +++ b/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn3.hex @@ -0,0 +1 @@ +0165ef569a77dcf12500000007000000114d455441444154415f544f4f5f4c4f4e475dfb7b68d74734160000000172137c62766b73ee33fa5aef4daa8fd41571c2950f3dc2fd3b9c2d8eb3cfc1eb01f35ba643324efa37000000017098e7c6e13d8eac190d8841f4dd46785e2c45b9b6976b8b000000000000000000000000000000ffffffffffffffff01061a52dfb3a18d9b00000004f35ba643324efa370000000151266f49372b0a9712a1be71033503636af1ed60a14ef41e46b9afdfcdc4e6670008666a0000016dfff5f2d560cb4d000358d0001de75057fd626b5f00012055c5c03ff84eb4000000082f1dfff341e69d4a0000002066b643222db46aab626dcd7ef00f6011f3158aead29fc7941ad168c4bf741408000000802a83d70f960f253b32878d43a2167c3711c59205731fe18ed529f833a416076811cc8dfef3967f280adac7d50d7130681beb23f6c09628b7268e21e3baf911c162f532252281fdb6c0ab1a1c2f7a19ba185a68491a02b6f75530ae29bddf71bf6119df52b61d14cf497c34e0faa843f0d0a0186f946e8f0e1afc8f7a331e644e01000000206c5c67545a2f16215032602935056d56481a7e425c562c3e20206e285602065b01f35ba643324efa370000000100b1d18e066dee9e37f21ee799f137d1710cd9dadb61bb5e0000000000000000000000146ab2d8bb29df2ed5dffb48788caa3271babcbddf73191762cd2eaefc3f815c41736ac4ee00000040b01241ea47908b6126725989185a8e9fc56c33ad2a27e5de453b1c933d7552bb7ce6474f3cb995153a1c586bba2d63457e7f46e951d28bb7b3936edae359453401f35ba643324efa37000000014fee4dbfdca9e1ea20bdc2337fd9fbd54d8b6d76ae260fa500000000000065572c382877b27c132346dc0696c2c8ffffffffffffffff01f35ba643324efa3700000001001f865a997be1090f1961b9a5eaaf245ad7f6532de15b4bffffffff000000090100d8b56ce46e56a46600000002f35ba643324efa370000000158dad749e1d8a0e137ebe9c9f8d27ece1a107c6f941b68b3f35ba643324efa370000000116013b1e977fab8f7f7872d0dea2e0985d094eb7f9f2c5bf4993b8e619de889700000002000000004ec5740d000000005edc5d4b00f35ba643324efa370000000163095f0ff049b335068b05adce405b5b2c853a7cb709e273f35ba643324efa370000000114f54ff03b9d3d1457514401bf4050405ffec178aee5b9074a10cae3dec085af0000000200000000e8e06ce2000000009364ac9000f35ba643324efa3700000001535d08d76dac5d043138bc766ac59be76683922a110aebe3f35ba643324efa37000000011f6234a60080682e39e05aacdedabffd456017ffc11547bc721c031fb89d4e1d00000001000000008fb0a0d500f35ba643324efa37000000016f5055dabc3547584cb976e5e5e63cb716de9dc67501ab35f35ba643324efa3700000001391768abd8ff3a2068329b335862dea04a55e2a80e37ce8a306773312c53781d0000000100000000adfffe0f00f35ba643324efa37000000013605e719b30a295f6ba57eabeb823670050186b4585c99968000000000000000658d39080f07dc4700000003000000000a57ddfc00000000b3118c33000000009b35757300f35ba643324efa37000000016c39472941b69bf81c26719cb9c928bd7c1d390fdf0ac7a2f35ba643324efa37000000011586258c715bd1031520e6e52e97a063101708532dc4a38048dfed9dbd8b59d20000000200000000f1c2330400000000a49e744400f35ba643324efa37000000010c49ed287b937ee97d1e1a4cbab0e3462cc5a15bb5415979f35ba643324efa37000000011d4120f79a7f34c05450995c538e463a73f29beae459509033e99b07bf12aafc0000000300000000dc9d1ff4000000001d02d66c00000000ea9a194a00f35ba643324efa37000000016d478cc513d98339107724c1f06925d91f766c0bc6ef769980000000000000003b72ad45fb4c26d4000000020000000094499b2a00000000dcffcc5500f35ba643324efa370000000132aa045124e481b922df5289298279ab6d3daf935ebb4cbb8000000000000000588af4010511cdce0000000200000000d741675100000000d17b76dd0000000001226101be7836ce000066f6000000200264563f988071d7136881f50efb3a7ef12538fcaabcc905912aa8bce2e9176f00000000000000000000 \ No newline at end of file diff --git a/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn4.hex b/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn4.hex new file mode 100644 index 000000000000..40b48c771119 --- /dev/null +++ b/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn4.hex @@ -0,0 +1 @@ +0165ef569a77dcf1250000000700000015544f4b454e5f53594d424f4c5f544f4f5f4c4f4e475dfb7b68d7473416000000014fc35f9736e2ca7b6146e472d08911c037d5b505615a6bda32a8c0c53d28555100000000000000000000000000000000ffffffffffffffff01061a52dfb3a18d9b00000004f35ba643324efa37000000010752969be5e02e4173d77eb0baa954481da85fa5a0cbf31155cd0d5c2699aa8d000155f001000102d95f10761c4dbb000ac50101000000640c1855595c281265284e6408010430771b6255783c215a1f4b7b4d1668417825156d41257e781d0a56235e6161713c5f321a5b3b79096925277e480e527a400e616c782135615a56486a4e41535f684f0a22202216743f5775262b457b5917703f5e5f460db3cf38c3f757b900012055c5c03ff84eb4000000081121bf34192f94920000002023a278ac3dafa6dc444592e7bb47c35a64354f6f3b365dc2eead347433a4d79f00000080531fa754d1af981efab05c909c7624a7dadfcacf13c16a2d34bd10891b1fba81013f0b55728a9e2abee327caf6a49063249a7e7aa08e765f46a63264dd81fe36b09d8c6e52e39e6f57858814108ee27e427c325a18d364de45e4ffcd75bd4bf7992a423ccd8bd8b77c343cb812112ce84f81e2dbb9fd32385d53a1ef58a383fb0100000020632f623741490a4c290311311b73647a4844381364317a3b001a6e1a02747a4701f35ba643324efa37000000014547fc813a2f279316fea7e91ce660382f39625f9ea2dcfa000000000000000000000014378a57c4afa2e7444b69ccdfad6a2e6ed297ebab296be84e761162030a79afd1fcc4e16900000040d54ae601e01dfb2e73f1e9ed7fd57d4479f4f17049d192c339b8a9fc0e3a1f227c9ea419a7e98d3a8f7cace08970de164b03863ce37a95b64f9748da815c7dac01f35ba643324efa370000000137b016b65bafa5fd1d0922fd202849be068682fd1d773575000000000000377d732894f6516d720675810f793865000000080100f35ba643324efa37000000016f65612483beb22f335644eb8467fe2c76e3b256a9b346bb0010f3bd3e9d1efb88586cc8dd30180e026a07fed26b4fe462000d05b42f0c51457e39d56e69e4e3f1387607d18478cb1446000df536acf7122558290e299a409fab38276a43aa9014c3a5004b2f8e9206fbca3a60fa4927902d6efa6e01f184992df29700188c37879e1bc1bb45cf4fd249da4dea3d01b8effecfea880012d93760a875cb9e5ccde061b3d8e293154be1e6789656300064ab1faa34bd2e0e04cb31af8a0ea5f56d78af510edf479e000000080100d8b06bd46e12a4660000000200000004000000002f9d3d4600000000c8ee0c1c00000000763402fe00000000bd65e0c10000000430b680afb0a956a1202a6e6a2eec546ae25ff8b0f2904b2f6ff399e328bc08dc000000000800000000ce68a1ac00000000917b08c7000000007ef4220000000000f40087cf00000000da4910080000000057d618330000000028f6882500000000cb61feaa00000008aacb18ad9410cd8e0bb69d705e7789bac1863e547fa85970dcbb69494f61ec8ed7ed275e797eb34a580e077bdd1e1dfd6d2ee01bdff6cedb846e4bf325ae13090000000006000000007a948f03000000002b1e1366000000007bb5b1bd0000000028907e37000000003bcad347000000003df068c3000000062554085f3c32e7fae2345676bb1ea6dfd08f911a63dbf0e5aa0ab501010a6118f949e5b80265dc1ee49a8cce63b602b10000000005000000009662e3c200000000684bcb5d000000005b9318e500000000ad7aeec8000000001fb1e88f00000005ed0eb92d78a362897220f2bd93bed18a0754425342a33c5cf9954e1037ca57afefc1d1118d2544b60000000006000000008231099900000000891839e300000000a4e67d6500000000fd09ac1a00000000363d707f000000001dffc9d700000006184ea828990505763d33fbc9e55f0670fc1b8d346089de79c08e8f6ca9db752db5821312c98e2a098dca8a7a0f47f8af0000000009000000008107173e000000000706cbdf000000009a67fada00000000d4615a2b00000000f62863d800000000920f1913000000007c4380c000000000ea01413100000000e69a6c6a00000009dc46246dd50a609dc95339665f8cf486f06812007bbd7f6bb2eb77b5f2ace1905c499396bf47059ff0ae1a77e092d018aa58dc7a6cf10227e6d986d34f056659bd8c436f404329cc000000000a000000004b1d0a6000000000ea69bdb50000000075c6db7d000000003047344b00000000315448f50000000012b979f500000000ac7e27430000000079a21cfd00000000255ac413000000003c0cb8680000000accf69e750184e79d1726a6c92b6df3347ab07756471e827ecdb3e9e7751f625e070b22cbb08143bd24ac42fe3cf92857b6ddeafeda94c203aeaea2eb2fcfebf83b1cf94eaa0e25427551dbe04a187af40000000001000000003944941600000001a2973a8cf432135e01f35ba643324efa3700000001410dbe497f4261e71233e170537a3cf066166b36985980a1000000080100d7a02bf45e103466000000010000000854400376193ad52255a97fafa3c3e32c2e68c87cdede808705e1ade2af9dd4755dacaa8e219ce58c78b4efd280ba4561213e3cb51ab2d4281e27f3a5cd77aacb000000000000000000000000021ec75df0a1c5abe465f083e4cd2409f4000000000000000000000000087ef6c982b9e9579d01b417d7224096003dcf79f18af2714e4462ec8252ec909772e1735e3abf02284d03b3c897bd9ba0412cb1e47f385b143b3f57cd2462673c000000000000000000000000086d34e675e2b7a7d8771c22185de19f3d5e27dd4fd6f83fa9484c62c9a3e230d042d90f9a1b0455a718019615937185ec0f656774a81b0c253de1a0a0ac43a21a0000000000000000000000000366dbf3fdd49d08666ed633297c4635b72409dc500b7d8a8e0000000000000000000000000a7b7a64f34ebbb56f4bfb1dc778a8e1903c3d5aa2fb1854d648ed604c75b59fd159b058af2827de355958bb4bad3838994865b434bf064a277504361d0f372a9c231251321077aeeb2f8715af681995ce0000000000000000000000000a6d8a69c3ed080e474b8381aa53434b906ef8ab7ce45e026b436b9d3f56d5b23576262b4e951cbfe71e089cdb34b6125a681eddf7bea0aa8e2625fd640ccb2b8f0d8c397c4e24028e67858a2229fc3724000000000000000000000000091c5261a741f49380091f41114d670d985a8d637b717d386921db38c973ef32965a48b4fdbe3a15df7d8654770a4e7b69745ccbb2e26625ea3606270a3f2e06565b6087a0ed145ae20000000000000000000000070100d8b56ce46e56a46600000002f35ba643324efa370000000141c3030e7abef8441fd67df1468087b61126faba38307e18f35ba643324efa37000000013c415df97b6c4e4c529d83cf3cea0432388466b24f9153073e8381fbf504dfa30000000200000000b11edd9f0000000065621e4d00f35ba643324efa370000000111747cf408de0c1b537921c2b1c54ac904dc3df006b4ab26f35ba643324efa37000000017c7498320792a32b581d4ec4374f13593a8774e4e4a90c1d6e9ea02dafdee1f60000000100000000520e809b00f35ba643324efa370000000122362d32fe7ec6ea20792a25faa672e84981bef6c5a8d684f35ba643324efa37000000016d3e70351e4ab4c35f34a5a2c5737ff7308a2b2d211e7b5a17e8c38be59a727e0000000100000000b03ccdf500f35ba643324efa370000000127b2b792b4f479757c26e1a6cfbcdc5906262bb44a4e5bbd80000000000000004e61c530d4a0efa50000000300000000f8e9028b000000002f0fdda3000000005a0be65900f35ba643324efa37000000010962767182b7f9cb3b5d2b5a90ff50184d8aeecd40b3af958000000000000000752c427150f1f6da0000000300000000e1766d7000000000d73cd08700000000bfe550f900f35ba643324efa37000000013e590b5bf2313b811d692487b16974212d4b87a8186fc0d6f35ba643324efa37000000012e63e93025405f7f123cefbaa244d2a0521f3a2b22a2d74f0faa3ab2ecee1bab00000002000000003bbb0cdc00000000dca17d7f00f35ba643324efa370000000152df2512cfee590c33842d1198dfb9940b910d0a657d4b00800000000000000062f32b140efac7720000000200000000f407ca5e0000000008eeaab10000000001406a01d2b86aeb00043e69000000207581110ae460c302c49999323d0491bc4f9af16549d7853d858be4139ccc6a110000000000017eb632e400000000 \ No newline at end of file diff --git a/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn5.hex b/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn5.hex new file mode 100644 index 000000000000..4f15c0816ebc --- /dev/null +++ b/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn5.hex @@ -0,0 +1 @@ +0165ef569a77dcf125000000070000001c434f4e54524143545f455845435554494f4e5f455843455054494f4e5dfb7b68d747341600000001212316d5744f59722871dbb2d6a3474953ccb60860c447ed2c5908f81c48501400000000000000000000000000000000ffffffffffffffff01061a52dfb3a18d9b00000004f35ba643324efa37000000011a851d756f555649067ff18a5038a3ab7eb74ac2fe5facad7a850810c3e9bb37000e30040000010e8b441745e669da0003adf701000000642660245a5227470e68542e3a3b14380247285d441a3b5c3961630d265e3b21425a1152240e2c32530a5b0d4140111f022925444f23656f7c22475d046c021d465578181c4f35423b567d242a7c26037b157732153833430245767b1d44435a40110633432c0b107f84ef13fa00012055c5c03ff84eb40000000803c66e206868df03000000209a4f2c54bbad9a96d97188886f779299e69584f040ab9cf68af59e9611a5c97d00000080333efbaaa5ebdd09c6d9615a2bf7c68747938c6ae33ecc2979f13ebcc180081dbf36548c0fb5a9955a9980382d94027e67de7d2b9b84713ecc667c6fc7b4e67b44b3b6c2ba6c7939350504879544c8fdb58e0e9630b2b16bbe7b120cac93a7211eae3bedb0eaba1f7cf4b6b3f38e6d8e8df0891969b27b580124a26b5039206101000000202f0819490b2773470d6a21371e6342056f4262156f776f24046c1a221249286001f35ba643324efa3700000001519f74efdfd92a1b023255241c0fd94b7e1366de8dadef520000000000000000000000141a195643c35be9501b2b7c4b1b65a21be497aa0e411f6624e7b716671e8abfadabe10ec100000040a98d384cd63f1f45d45578312b131a5f9531657a7a308f8f9d36436e96d402fbe9773ffd24ed56af6b57a79598223ef7c27878d612c26827819b3845efb66b9301f35ba643324efa37000000016621960c2777ea5312d768b87ac8d0a64008aabdcb8645a600000000000059a4bd624496ddc768e30e33603f932dffffffffffffffff00ffffffffffffffff0000000001704d0000000020e719ae147c41d268796f67ab52161290cea51b2a72915a4398892ceaa8f476030000000001d8b06bd46e12a466000000020000000a000000002b37c1280000000099822a6a00000000a157fd760000000035e5d57400000000d006c92c000000007bffcb46000000007ba9f8d2000000000c84f93c000000007b7af1cb000000008b3028680000000a5190efea593ac3b9d1ac58b97f27886178e88b74ab6f0c476648b146c2cf59f964971ce3b63bf196013c23967db24cb6c0dc809617c010a205fee9128d3ac2675760f6829db597e0d8d9589f0d8a33e8010c35af0600000000 \ No newline at end of file diff --git a/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn6.hex b/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn6.hex new file mode 100644 index 000000000000..fdca86fedcfe --- /dev/null +++ b/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn6.hex @@ -0,0 +1 @@ +0165ef569a77dcf125000000070000000c4241445f454e434f44494e475dfb7b68d747341600000001763267437a3fcd605b36a7a4100f32b36bc1045042cefa72570a4a7dedf1f162000001f35ba643324efa37000000012c87aed9fe12421036131545b77bdc90636163494af8011300000000000000000000000000ffffffffffffffff01061a52dfb3a18d9b00000004f35ba643324efa37000000016be389cba6f0e0b47a2ff9cd9ef461c220bc429b43181c2703a9673e5e29d90c000163b900010000015f01566d38659f86be800003884d00084a51ad7ac4a65401d8b06bd46e12a46600000002000000060000000005772939000000006c8079d4000000005a9acac200000000aadb859100000000896f1dc90000000052951a840000000618cc09bfd31c8c02401b113e38a9838ca134d19f0f78e32c653ece5a7ecff1af3e8b8a276f1c9371dc11f7388a8ee2b7012055c5c03ff84eb4000000082f64903fe0805ea400000020a1357ac933d0a7cfbe328d352d467c88fe1570fa79b5274454218b0784448b97000000801f0c540523d76fe26e391f04f0e1d80127d9d360db6fe8521edce730e0d0fad363e9dcbb2e0055fda15e585a37a19c5b33447a5d5788d8f1bc0260a7e8c7acf1010e0d630457a0b3f842694d26ac7ee1bb703287b0f8392d40e28dc6302afa7e9812bffa7375c07776276fb503a614815728851c63e327f765a6d4421f8faa0a0100000020275e667017675d40077e2a6c6c17650f5870583b645b1d21656a4448782b253001f35ba643324efa3700000001541e42c39df86c5a11423853d3142b6144ead9b7fcde5b000000000000000000000000148a2f025dff7873c0f3e869f8eb62492a90c8aeb306439b28e8ccb71a6b23a750cdb728b80000004020588ed7b35f579c6dcb0e493086e7aafa7d77d7cb657234bef0d2daefbe3f247ea5e9dc7c5c386403f22f32516ab2a84b691d54765276e3cba0320bba40810201f35ba643324efa37000000017f1df83ed410d2452b9c0b326798107922d5d59687577a64000000000000322ad06a4aceb60e42a04ec1e4c01bda000000050100f35ba643324efa370000000143c134f0bc32380114f446bdbf02d52a68fba67a975b4345001515fdd431e2c0c91175fe54329b2d08712f0058670fc0c9003e454add6a2f5c6c4027fbd07a3aaf83680428dbbc5cddc6006b75055a73cf75011aac14e8f1bde17d0f768d1e681370b3002af5cf9efb35a01b11a6cd9ef5e701f14bbb8a843a758ed3000000050100d8b06bd46e12a4660000000200000005000000006276551000000000f6469d190000000040f29486000000005a0fe0ca000000004054a0e900000005ab2fcfb8f888d5e74301c2b7e29eb2488f2c83b21997041d36e9ed5cc08fea5535b314cda4b4b334000000000500000000b20eb4cc0000000099074a67000000006bc820e500000000072ee791000000002b1cc78300000005aa6fabe6152c93cc109ee35bd8fe27ee8ec8faa685781517acedba305d2249db5d6b6eebb731d1cb0000000002000000000e9f379b00000000e3a011b900000002b8337b6c8ea521bb03381dbcadcaad99000000000900000000729a50b600000000c71f0e3a000000005b2361c70000000076d82bc1000000000546762c000000005fd0428800000000b37ee14600000000d3318ef600000000904bb7b00000000935fcea17ab5b7722e3f4c56aa8c513f03f0bfa00f133339f82cc2fe274082bda9bb15dd20e6c381859d6fe5779f32ffad6712c7989b594885ce2843dc00e22326d861d1cc2ed3181000000000300000000637440b700000000fcb7e03600000000210e7771000000035c45b329265522848781be73887aa24624d0f0a49df0928101f35ba643324efa37000000015d8b02802401650e4f0fefd8775238ac0033015622067501000000050100d7a02bf45e10346600000001000000083e95cd3f79370f211476a426efc0894b3d386264b1c2ad1a6926ef5937e7412c259b7bc2f0dd17ef35d39d8f5a8e5be1382b51d383cf891d7b79ad4be7bc938d000000000000000000000000026870978e4ac163ea374a96a0ddfa247600000000000000000000000005667eeb3716b833413181541c5b3d8ba045675808bdffa5d0776094a713f26dbc2e0d1bc74a7b45e100000000000000000000000004343a7b545c9a0d65492cc802429c976b1cb5c3f36568c2426bbec3c766cc642c00000000000000000000000008299c4adb6f3c6589290954e4297b9e235bd8adad878380ac7062cbbd655bd6742e2fcfefd2de5e7227d435f6593793bb1c1104c38fd8d7ea12f563be01b0e2780000000000000000ffffffff00000000016ebe0118a5621200027f1900000020006f2d0f72055275198c1928a05eb2ce176b85b257472559e5ad9a9ce993b5e000000000000200000030df92bf2a285361fccd7ec585c85f230e5f3e8504168e2f57cf0a38b081a5cffb12ac4cde4b34a105a90cb46c1f30312300000000 \ No newline at end of file diff --git a/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn7.hex b/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn7.hex new file mode 100644 index 000000000000..2677c370598f --- /dev/null +++ b/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn7.hex @@ -0,0 +1 @@ +0165ef569a77dcf12500000007000000185343484544554c455f414c52454144595f44454c455445445dfb7b68d7473416000000017368842122404d124500f85071428d11762d21ef6e838903716153e67a1a8d92000001f35ba643324efa37000000016ba03f173dc626372f0b1c3aa47121596babd0527293d3e400000000000000000000000000ffffffffffffffff01061a52dfb3a18d9b00000004f35ba643324efa37000000012994e052c29a170841b945af5100d05747048728d2595132016df795b8edafe80001dfc70101000000f60145dbbfed2b4e8c9a0008a5db01000000646f6e5d41500e2375055e2a33035d6b0920363c3255066b726156760f3d39581e00516b7538406a79710f03062a22386f6f1d0939362b60601d480d7b39567c084d0b39144c352c4770130624763f7d227904242f6b0b6d442e072278005f57595a7b395d4bd36d5d1e66882501d8b06bd46e12a466000000020000000600000000818e0d050000000001f6252e000000006d1cf0d10000000067b87a3400000000eb0083ad00000000c8bc718e00000006ad840a08b035823e353d08c315f7524be64fe485579268bb0830103d36e07735640451bb2d29e2a14f68af1a81593b93012055c5c03ff84eb4000000086f658a2c51cf5ef90000002006bb94e622da2003039eedc98bb81b8fafa2d21a50a732c19c1f8af085e52cd500000080f80d20aae330648f3b0bc9d96bd0d18db60f6983a5c7587b7b969cfed6e2de7b12693b8a6235ea69a989328e4fa259d86c6303dfb37c63a634a3f63f17ebc9a22d2273cc5d476833bd035d8402a151b6324d6feea226342a8218d78353e73ac7156d1fc243a4cc83117f49cdd690530ad2294eec318e8e3e7f253b17de03ed9f0100000020314c67225678297850191276571f2e426a182a034d507e7a635846254d1c1c4b01f35ba643324efa37000000011ac726153063e4686d54b3b07bff5aff28ff10d62bd3ab3c00000000000000000000001433ea75fe9e063cb44eb48ed331bbfaf4c78997e55ded64cdc88b541218a21a837c21cf3d000000400b30a2496a63462de489f94dbcbf236e11361bc1285f63c8390ea60e35ae4c638adfee3efd0c33eb7c29fbedf954a750b7d972f6a3ff6adc0dfd4e9f80e270f70000000000000045cc67b1d0e0d4b25680836ff90bf43e0000000a0100f35ba643324efa37000000016f5def296ec81f275ff24117732f0fe14e1d7640d4e75aa30021c5b6786715274b34fe7e5ca8fd10073304a488e030c4410066385022d9a70bb54e8dc975f78b775b4280b18a2ccc23160076d93cb25ba7f4da1e57d7f3506f665b3eade0767c3414e100322cc68a1037a432279f72fa6706ed8c50254c5574ded6c600077121aeabd1700222424cbbfc3d7b2759f94990d9aac1cb00037dabdfd4487f23185343c6c854ed7d15951554e6d4a5340018be8e97e53c6a10658251293ec2c542709f402897987eac007e49276ab084d3654d68be0fe25664612228571873f5f0b2005a16dfc17ac22fbb372c93979bbf528c335c0fee1f3125eb0000000a0100d8b06bd46e12a4660000000200000002000000001e21339a0000000058be77f400000002994b66979e9959b941d206627131ce42000000000200000000ba8190ed00000000036bc59f0000000247115b5b34e9d15d7ab2428b471f840400000000020000000076936ce4000000007cd4ffe200000002006df3a5f0b19f17d5be7eedd73746ee0000000003000000006e7545f8000000008798d99d00000000daa9bb2f000000038bd4b5a78126a5a1677c98056a9e7c389379e7ab82da1bc500000000050000000023590aab00000000249e8d65000000009d944b8400000000ddfafb1d00000000daa4585b000000052c9eaab5bc7881aa4224e70029cb921812c4b911803f83ae2c04ce21a3db9ca39dd801c158bde4430000000003000000005da2a83900000000797ef81d0000000017919e770000000312ca69543432887331b8af7e6edf2abe095197b5beb68b38000000000700000000a10282d200000000a4905d3b00000000b67006fb0000000035f5519f000000002e40016700000000586b8f2e0000000062ba0f9900000007b6252f67475faee11c211817582b9e378eea9cfdf65a5063ed2f719d93814734322a2efa158c6c96556235f2c0266b0387d2303c687b99bc00000000080000000038470c7c0000000012dd7719000000005e97da560000000043628a3000000000fd72bfe700000000b32a3999000000000bae6538000000004f65b6a000000008c39d55f40d65b9c26c22a829e94aa6745ed887ca8c8a0a3b02a3a121866b7ff35943431f0a73d69c90b0923ab9b59a0adb16f70e10c43fb915d6a070d3b08339000000000100000000c5fd4b0200000001a2c1626708153363000000000a00000000c70e8830000000003655e0e300000000ffa0070d00000000cf58dfcb00000000f1f7c06600000000d25ceae700000000978ccf7300000000edbc922c00000000edbe37090000000072ed2e920000000aed5ea83bfdadc02bb4456a159c1a4475a919afb3fb55ccbcd3c8bf4fba24f8da293d9c05381c865c3f8a5cf0fbfb88da22b3ac447e9a7657605d2ced8ff63fe99b87889ebb24ca8cd0d2386dbfc9085a000000000a0100d7a02bf45e10346600000001000000015165dfe180113d710000000000000000000000000522d82f93a1e96341193172785e3af7256e75d7956fc221ea30814aa5fdb1ed9316b32e64bfca75aa000000000000000000000000034f8a5787e9528b7b510bcb90e6aa437d72016e8a76db86100000000000000000000000000942693c2a5b65b66f0d62384c748144ae3dcebb606ef93c167530fb46432b90416e9a26ed56df738f1e799289d71a402707dbb33770b4f0a0468ca09fdddf637a6dff0ec0b7aef613000000000000000000000000060e4e5640011ef55531a881df186036620c4694c4589801fa35b7345ae62c9af568b83835cd378376231a5ccfafcd70620000000000000000000000000523aafa900c7bbcd45bbf5ee1f57f4b7a026fea6b52c11eb354d06795d096c0c673208c90f82031890000000000000000000000000507d3a7293b05e828634f0a0e44a5321b3295542b1feb2bc94046f3d3c604121f1a262fc2a60b08ba000000000000000000000000037243c78ea646eddb780ce93c9597835235f4e5f46ed1524b0000000000000000000000000a0dfe421c4f6511ab7f33391aac16d0fa648827cd386afdcf68629136052d3c231a523a146bde49303e8b7968f88bb545537805a6dc8da8ad52fd7d018521fc0343eafbfa946478024bc7a3d7068dcf6c0000000000000000000000000753f6731ae4582dd1067719301ba4182617149c72201765f6340640b7420f20a26e05a586cb86a37439316f0dece9455554d90d70c7170b9c0000000000000000ffffffff00000003010041a2569130b01d2f0000000100000000c775c20a00000000885a0a3d00000000004111e23200000000c1c4e48300000000002af56a6500000000d1014e52015b2c000000000000000000000149ceca5400000000 \ No newline at end of file diff --git a/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn8.hex b/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn8.hex new file mode 100644 index 000000000000..d83c89e14a1c --- /dev/null +++ b/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn8.hex @@ -0,0 +1 @@ +0165ef569a77dcf12500000007000000164d41585f4741535f4c494d49545f45584345454445445dfb7b68d7473416000000016f552d130e138bbb70e1c71d86cf80a746d012057b42704c205585df208f269000000000000000000000000000000000ffffffffffffffff01061a52dfb3a18d9b00000004f35ba643324efa37000000015fd7a99ef5d80795595b9f951d2ac95061a220ce36e4ec1f4eb51e4b03aada07000ee8d101000154357d68ebdcd0340002660301000000645417745c61206a64073f09722d02492d403c0d7415712461317239292576783733252338543010412b43686f62006b1166191f480126101e363b13561c3254676c203328102b0f153139226820474b0c12395c04415022013b4f450a1a2b060a3e1130116e98d6de745623de0000012055c5c03ff84eb40000000840e3ee67bc62101800000020f07b667cc8ca634f2927fc8e40c964a1dd1f2c4123faf6c5b584742f92a3a1e100000080cf19df5715b2bab0641c04976dcb2f4a53ae68617104ace2386185db5b3fe879c2e059ad1c42a2fe6c3cb1a6c9561c574ed0e78e69fe5c85f8b13fb6fbd5ed029ebc324b71d50915cd92854b9985a86c4eb8be12ebd907cbfc2fb1737f7595c7414d1f6991e0c1dcea6d093864efb3f2e1203d38680abaf6efb1a33b2fe962b901000000207369126d74560d481b690f774c757e156c6b281764310e1b5e556c761260012001f35ba643324efa3700000001651459411e48a70f4567611629ccf1f67bfd159e8d4ee128000000000000000000000014006525535106ca3293bb6e251f8e48ad67ef4f024c5f0adde49228cb2cea5fb2129b9e71000000408c972fb78be7732a8994e3fe1564720b83fefda38a0e16fb74250d686f4633de5eb5878964bd5426c07302bbf2a44b06b47b284c3e28a7eb3bf3ef1ae9237b3e000000000000628b1915a07d05500204c3be7cee30edffffffffffffffff00ffffffff000000040100d8b56ce46e56a46600000002f35ba643324efa3700000001158f10b6515ee5ea4ae2de528fb9d5cf2a1ea9178ef62aa78000000000000000091269c01c95fc9c000000030000000087446250000000000f9e82b7000000003566459a00f35ba643324efa37000000011efd6d4a72b33aee3207b9d3279c1219073bd44093bbe118f35ba643324efa370000000141a1508cccacf1662bd7d701a29f163925ffa25854241c03245fa221b335d83c0000000200000000f3010c3d000000005d0a5f8300f35ba643324efa370000000154bec56d4f8a19a5135d85c304d06f3f365599444b46c07680000000000000007494d6d5d56365f90000000300000000d8c9c03d000000004b461bb00000000046e8ca7800f35ba643324efa37000000010b5f69ca784d7901366eeeb1efd981533f0d983b88958343f35ba643324efa370000000137974cf77ee42cd246080f73254d5af736089036b42a8c0a66e3812c05d1572900000002000000000c3a99080000000088aa0b2600000005010041a2569130b01d2f0000000100000000a6b3aeb80000000060c2db320000000000369da465000000001f53c53d000000000059aa07690000000093b3eb2500000000004a1dab3100000000194fe8820000000000ad47cf49000000004e6e76a701139a000000002030e220c59603bc603c5c337ffb452e64033d1919255024c0c9f2a03feda41f3d0000000001d8b06bd46e12a4660000000200000002000000007b0b9f8200000000653a590600000002a71807774d51f244bf192703082f1c77014663926c00000000 \ No newline at end of file diff --git a/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn9.hex b/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn9.hex new file mode 100644 index 000000000000..d38cfd9a9504 --- /dev/null +++ b/hedera-node/hedera-mono-service/src/test/resources/serdes/ExpirableTxnRecord-v13-sn9.hex @@ -0,0 +1 @@ +0165ef569a77dcf1250000000700000016494e56414c49445f4c4956455f484153485f53495a455dfb7b68d74734160000000165887676019fbf8941cfe4d7a7a9cd57480e2d983583fa8f41f74623be1185e001f35ba643324efa370000000168751499b233060665541e1950c1dd4837bed9c8621dfa76000000000000000000000000000000ffffffffffffffff01061a52dfb3a18d9b00000004f35ba643324efa37000000012b681b50f53d1e7b1fb0afe1b402702c33911d5ed2fbc26608e4817ef6ff0d6d000ac7d80100011e045190ca9d4c210008b484002d923b698ca6973100012055c5c03ff84eb4000000087427384320ad2a9c000000201675e2ae38d020d200109ca0c7ae5a8dbe45a470bcf7acbce35a23002a403ce9000000803d8fe33d8549dcfd64d8c2aa7554f7636ba40e5c53a22ff5ad5312f1ca4a6c9653c32bbfa9bb5ed812436df01170c68bb069e46efd9beeb1042071995bd4d927351f78f03618952f443a5d5a3af11d35e71216a6eb9eb7897cfb2adfed40ddc8f3b52f54e29d40e144deaf06393b8d21dc188f9a8e6841e4e11cf32044540e56010000002059446a545b27272b185e20553900542c555f4e666c56571d013a063d1e66121401f35ba643324efa37000000014dd7e73f0c7201867b214f4717e8d68235bc618e0e9fbf410000000000000000000000144476cf644aab62d178be9bf4549f6196e30d666a5bdd8f4b36d24b8e30f3f2f94698f62500000040feaf3b0f02330fc77a5d2840ceeeadb3ad2490b6c7c8d23ff1578e9aba7004ee771e9a83e1e37765db0cd9f2e903e30d68eebed007310c4fcfa0d92df82d947e0000000000000000ec93bccf1ff59b701a48fb73bcdc62ffffffffffffffff01f35ba643324efa37000000011ce0b4adba4f2d7204634bdd21a39b4336094fdaf934f90dffffffffffffffff00000003010041a2569130b01d2f00000001000000008eaba19d00000000c9ecf51000000000003886eaa2000000001249f34c0000000000eeb329ad00000000ba97773f014706012613e0280009e086000000000000000000016bc7f41c00000000 \ No newline at end of file diff --git a/hedera-node/hedera-mono-service/src/test/resources/serdes/MerklePayerRecords-v1-sn4.hex b/hedera-node/hedera-mono-service/src/test/resources/serdes/MerklePayerRecords-v1-sn4.hex index 63ca2cbd13e1..0e9676d67167 100644 --- a/hedera-node/hedera-mono-service/src/test/resources/serdes/MerklePayerRecords-v1-sn4.hex +++ b/hedera-node/hedera-mono-service/src/test/resources/serdes/MerklePayerRecords-v1-sn4.hex @@ -1 +1 @@ -26fb368b000000206b1fa7970000000300000002008b9ede7ca8d8db930000000c0165ef569a77dcf125000000070000002a4e4f44455f43415041434954595f4e4f545f53554646494349454e545f464f525f4f5045524154494f4e5dfb7b68d7473416000000014e8e0ed46ba221b0336be0fc227986b52763aa483d3ea39c7139b357f0055f650001f35ba643324efa37000000017a668a8107e1f376618419ebb3d786b03840e5322c988df80000000000000000000000000000ffffffffffffffff01061a52dfb3a18d9b00000004f35ba643324efa37000000017aeaad1713aaaf84576ede32d1c4831f79a211bc67aaaf9338a1bd4ea7b7991900000cc30100014c08ec20f5ec9829000971ac004436e1bb485308b70000012055c5c03ff84eb4000000073beb9f4c0fef559800000020a36877574fd72ca38ee9e11e9ebe2dad6ed27c89a4617272d1d6da6f61533dd300000080fb4784d63ddefbad354b2806c428d5ac63aadc3e0c8326fb015e1d344b892324e0754051609831ab91311a037df58329d2fd0b27ece1a1a38afb097dbbf7096725160e85cabd994226eadcc980844d1f1822e3b98a64bc430a9fb52694ffa1cafe570dfd8de363b10a2cd37eb8635bebc9433ce1a23efbd8be30d25dc52c0e83010000002045062558163b17253c7b087e3f533932431d24205f6037147e232c673268756e01f35ba643324efa37000000016a35cb1d101b841b463d244e009daadb7d10d8bd13982a17000000000000000000000014c16c1426b4678ea208a4d1c10b314c0b307d862e082f1fa1602dc9d712c476cc2120a5300000004039371f2bbb3a6908ee4be4270a37b941c2957e1b70934131d29584925ecddf97e0e34d6ef778f50ae60ec49082ca8bec1c7e3a0938e42dc020dc7e2bb3cd86dd000000000030621138b5eaad2e610797f822c7dc99000000020100f35ba643324efa370000000154f0988772662aa65f40c35409dd98fb0797e4c3966972090064a0a1387536e3c437f06a4013798ab6488035a3eb4c9605000000020100d8b06bd46e12a466000000020000000800000000dcc9a0ce000000005afb120d00000000768b0631000000004fb7742f00000000f6c0bf9c000000005b4b251900000000e58357cd00000000dd7661740000000879a8a9b98ea81b8d304abb6810a16dd1d236777c9a6711002d2488b7408df089c4d690c64d585e5dc6325bc1c0d983b49f280391295456c50326b9ce3b0245480000000005000000005fe5046500000000fd8b85f9000000001974763b00000000ab031be2000000004aad921d00000005e3790885834f3d08d7498651cc7cef4a7dad22638a15472f1a4a4f62e4b4ccba697fe188deee700100000000020100d7a02bf45e103466000000010000000439943e52229234a17e8ae269c659aec9372c603c832a3ae02d5a8687ad285ac100000000000000000000000003631f5a951770a3f271c3cc0e65f111233b72b5ac40c240800000000000000000ffffffff00000005010041a2569130b01d2f000000010000000027514b8c00000000a0662aa900000000000e0ac86e000000000b953c74000000000002954eda0000000088b2c00e00000000007e4caa2300000000c55885ce00000000008855382f00000000fdee320e017b8500000000000000000001d8b06bd46e12a466000000020000000900000000304ce2a600000000b50ded0000000000024b1574000000007024ed0c00000000e18a353700000000879d222000000000b668d77b0000000069e1f3b900000000bf84e3d5000000091031a14cf87ab3e21e855d23092782655396364fea921af42a0aa1a0cf42879d10d91602dcc0d82bc4ae76ba4917b8d75e533b87062caa7de8bfb8aaa44a66d8bd88ebc5b3321c48012d727882000000008b9ede7ca8d8db930000000c0165ef569a77dcf1250000000700000018494e56414c49445f534f4c49444954595f414444524553535dfb7b68d7473416000000014f9f671719c99c9f0f2b561c29fcfba2423869f345eef15c45360ba048da078300000000000000000000000000000000ffffffffffffffff01061a52dfb3a18d9b00000004f35ba643324efa370000000154da03cfb5860cf33019f69897012f4d27c6fb85910e7b265d1f1e0167330edb000dd12101000127e8b6edc82d04f3000af545010000006470265c6d1729720d2d4d3a4a3d556a13527122795d6a2f47006552192339366c700010136d570f2d6d502904075b6108155846274a791d7d3f730115266a7c0873344406430e1970243a67137e10413c41391a49253d7b1d2137484b030b1e6e277b2c2a567696ebfb3e7e9201d8b06bd46e12a4660000000200000001000000009ec458a9000000016defabe2f8d9399d012055c5c03ff84eb4000000074e55ac9c74b8323f00000020505ff2c7515ee06f29ef5305cdd7bc700f82c919a51a135662858b24e733485200000080c36726163df884ca7770bf8d599c57bcee3bcb1575ad082d359fd7a4ba812f9b8726ce151babedbe530aa3c03608fad6ef48718c152f39ac7457942bf18d2e651593ede6af42f5c0813168e6c2edff70693247c706f2a73290220aef6ea88cca52c72cbfa7ee7c124a92ec1b527f1c605158aa2cc90aadf4c92d32ee0e42d358010000002018693652415c4e132307566c222c7e2052796920237e7c491c0a5828485a2b3501f35ba643324efa37000000012a0d5bc10ffb970f0ae0438f348c5f6a5e124786108567730000000000000000000000149ec2319e7f7a5c93adc417e8a42b2117bc6fd92f72bd77cefe0834d763d343c4975c49390000004093fc80320696e85bce41a8deac4c9627c42825af56f3c16a02ed4ac468489e8ffaf8235ff87431da37e40167038ec82757c8d9fb3ac719d49eddd43c41341afc01f35ba643324efa370000000179dc367e419c26fd5de726ba9a8f0d7779dd54ede0b07bd600000000005fbb17fdbc2c000e37d52835f330703effffffffffffffff01f35ba643324efa3700000001119b43328d6d8fa00fb40fd9caa040ff499a077314a64bfcffffffff000000090100d8b56ce46e56a46600000002f35ba643324efa370000000114a3de7bb6edf6035e648f62be7a8bfb402de44d60f6cc0880000000000000002ca4a93e44b874ac00000003000000009fffe9f90000000024d24e39000000006384f9ca00f35ba643324efa37000000017eba7f78aadfd1b74b4ffef87eab1c583dc193bcb946acfdf35ba643324efa3700000001324d77912993c496123c47dacacdf9e37414a36dde5e0c887cd60d5e386102640000000300000000196daef1000000004e2610e300000000df67a1df00f35ba643324efa3700000001469ee378f14703896e6e538b40fc3cac2e8abc13a14217d1f35ba643324efa370000000155d03fc37d13b57b757b1af318db508874f60451a325ca6b4a0842690db3b4850000000100000000c7da82dc00f35ba643324efa37000000014acd241d044cfb87686f76f1cd3047ae3448259cc33c640580000000000000002866915dce30941e00000001000000006a3f522f00f35ba643324efa3700000001036e9381fe4499ff1d9ea493255a548371f087394c20bda9f35ba643324efa3700000001663fc080bb8fa834076ee2994f5d56ee040bf215236622ed0a1a72a3fd8462660000000100000000d45574b000f35ba643324efa37000000011df8021b81cc9d627ed870ccd05f87115d40a9e54d92d853f35ba643324efa3700000001391c41b69f0eaa375312955c85698f0a60c3fdcb49c4454a6397e041aef23b6000000003000000002c2813fb000000002e5af369000000004b8007fe00f35ba643324efa37000000011ac7d4219d9572ce2d39d6ad67849d6a6f063fb5256d1cc780000000000000005b8a15e74726d1f2000000010000000053d4162100f35ba643324efa37000000013c1c31acf86e0c317db169e1544fde8b0f0d6225b0696574f35ba643324efa37000000011540cd8a603cbafa3dcb6aca3c68156c50c4adc0d5a712141f757bbff375fbcb0000000200000000259c094600000000f98e842f00f35ba643324efa3700000001245a1a92f1d3da732ada146b448e47fa7baa52eccee6b9488000000000000000424460759048c6f30000000300000000271fa16a000000000fdb2a950000000066ebec2200000007010041a2569130b01d2f0000000100000000aa8b139600000000886a36e80000000000885df528000000009aa1189800000000001889da69000000008b8b78370000000000216f2c130000000036db4dd60000000000016b592300000000373d65630000000000d037a31a00000000c71eb68f0000000000ef6f0c4500000000c05e89a40136d201c86ebe87000ae443000000200576ee848dd07372e171b44647cef03c0f03f788a9a580cf8e1d914dd0788de600000000000000000000 \ No newline at end of file +26fb368b000000206b1fa7970000000300000002008b9ede7ca8d8db930000000d0165ef569a77dcf125000000070000002a4e4f44455f43415041434954595f4e4f545f53554646494349454e545f464f525f4f5045524154494f4e5dfb7b68d7473416000000014e8e0ed46ba221b0336be0fc227986b52763aa483d3ea39c7139b357f0055f650001f35ba643324efa37000000017a668a8107e1f376618419ebb3d786b03840e5322c988df80000000000000000000000000000ffffffffffffffff01061a52dfb3a18d9b00000004f35ba643324efa37000000017aeaad1713aaaf84576ede32d1c4831f79a211bc67aaaf9338a1bd4ea7b7991900000cc30100014c08ec20f5ec9829000971ac004436e1bb485308b70000012055c5c03ff84eb4000000083beb9f4c0fef559800000020a36877574fd72ca38ee9e11e9ebe2dad6ed27c89a4617272d1d6da6f61533dd300000080fb4784d63ddefbad354b2806c428d5ac63aadc3e0c8326fb015e1d344b892324e0754051609831ab91311a037df58329d2fd0b27ece1a1a38afb097dbbf7096725160e85cabd994226eadcc980844d1f1822e3b98a64bc430a9fb52694ffa1cafe570dfd8de363b10a2cd37eb8635bebc9433ce1a23efbd8be30d25dc52c0e83010000002045062558163b17253c7b087e3f533932431d24205f6037147e232c673268756e01f35ba643324efa37000000016a35cb1d101b841b463d244e009daadb7d10d8bd13982a17000000000000000000000014c16c1426b4678ea208a4d1c10b314c0b307d862e082f1fa1602dc9d712c476cc2120a5300000004039371f2bbb3a6908ee4be4270a37b941c2957e1b70934131d29584925ecddf97e0e34d6ef778f50ae60ec49082ca8bec1c7e3a0938e42dc020dc7e2bb3cd86dd00000000000030621138b5eaad2e610797f822c7dc99000000020100f35ba643324efa370000000154f0988772662aa65f40c35409dd98fb0797e4c3966972090064a0a1387536e3c437f06a4013798ab6488035a3eb4c9605000000020100d8b06bd46e12a466000000020000000800000000dcc9a0ce000000005afb120d00000000768b0631000000004fb7742f00000000f6c0bf9c000000005b4b251900000000e58357cd00000000dd7661740000000879a8a9b98ea81b8d304abb6810a16dd1d236777c9a6711002d2488b7408df089c4d690c64d585e5dc6325bc1c0d983b49f280391295456c50326b9ce3b0245480000000005000000005fe5046500000000fd8b85f9000000001974763b00000000ab031be2000000004aad921d00000005e3790885834f3d08d7498651cc7cef4a7dad22638a15472f1a4a4f62e4b4ccba697fe188deee700100000000020100d7a02bf45e103466000000010000000439943e52229234a17e8ae269c659aec9372c603c832a3ae02d5a8687ad285ac100000000000000000000000003631f5a951770a3f271c3cc0e65f111233b72b5ac40c240800000000000000000ffffffff00000005010041a2569130b01d2f000000010000000027514b8c00000000a0662aa900000000000e0ac86e000000000b953c74000000000002954eda0000000088b2c00e00000000007e4caa2300000000c55885ce00000000008855382f00000000fdee320e017b8500000000000000000001d8b06bd46e12a466000000020000000900000000304ce2a600000000b50ded0000000000024b1574000000007024ed0c00000000e18a353700000000879d222000000000b668d77b0000000069e1f3b900000000bf84e3d5000000091031a14cf87ab3e21e855d23092782655396364fea921af42a0aa1a0cf42879d10d91602dcc0d82bc4ae76ba4917b8d75e533b87062caa7de8bfb8aaa44a66d8bd88ebc5b3321c48012d727882000000008b9ede7ca8d8db930000000d0165ef569a77dcf1250000000700000018494e56414c49445f534f4c49444954595f414444524553535dfb7b68d7473416000000014f9f671719c99c9f0f2b561c29fcfba2423869f345eef15c45360ba048da078300000000000000000000000000000000ffffffffffffffff01061a52dfb3a18d9b00000004f35ba643324efa370000000154da03cfb5860cf33019f69897012f4d27c6fb85910e7b265d1f1e0167330edb000dd12101000127e8b6edc82d04f3000af545010000006470265c6d1729720d2d4d3a4a3d556a13527122795d6a2f47006552192339366c700010136d570f2d6d502904075b6108155846274a791d7d3f730115266a7c0873344406430e1970243a67137e10413c41391a49253d7b1d2137484b030b1e6e277b2c2a567696ebfb3e7e9201d8b06bd46e12a4660000000200000001000000009ec458a9000000016defabe2f8d9399d012055c5c03ff84eb4000000084e55ac9c74b8323f00000020505ff2c7515ee06f29ef5305cdd7bc700f82c919a51a135662858b24e733485200000080c36726163df884ca7770bf8d599c57bcee3bcb1575ad082d359fd7a4ba812f9b8726ce151babedbe530aa3c03608fad6ef48718c152f39ac7457942bf18d2e651593ede6af42f5c0813168e6c2edff70693247c706f2a73290220aef6ea88cca52c72cbfa7ee7c124a92ec1b527f1c605158aa2cc90aadf4c92d32ee0e42d358010000002018693652415c4e132307566c222c7e2052796920237e7c491c0a5828485a2b3501f35ba643324efa37000000012a0d5bc10ffb970f0ae0438f348c5f6a5e124786108567730000000000000000000000149ec2319e7f7a5c93adc417e8a42b2117bc6fd92f72bd77cefe0834d763d343c4975c49390000004093fc80320696e85bce41a8deac4c9627c42825af56f3c16a02ed4ac468489e8ffaf8235ff87431da37e40167038ec82757c8d9fb3ac719d49eddd43c41341afc01f35ba643324efa370000000179dc367e419c26fd5de726ba9a8f0d7779dd54ede0b07bd60000000000005fbb17fdbc2c000e37d52835f330703effffffffffffffff01f35ba643324efa3700000001119b43328d6d8fa00fb40fd9caa040ff499a077314a64bfcffffffff000000090100d8b56ce46e56a46600000002f35ba643324efa370000000114a3de7bb6edf6035e648f62be7a8bfb402de44d60f6cc0880000000000000002ca4a93e44b874ac00000003000000009fffe9f90000000024d24e39000000006384f9ca00f35ba643324efa37000000017eba7f78aadfd1b74b4ffef87eab1c583dc193bcb946acfdf35ba643324efa3700000001324d77912993c496123c47dacacdf9e37414a36dde5e0c887cd60d5e386102640000000300000000196daef1000000004e2610e300000000df67a1df00f35ba643324efa3700000001469ee378f14703896e6e538b40fc3cac2e8abc13a14217d1f35ba643324efa370000000155d03fc37d13b57b757b1af318db508874f60451a325ca6b4a0842690db3b4850000000100000000c7da82dc00f35ba643324efa37000000014acd241d044cfb87686f76f1cd3047ae3448259cc33c640580000000000000002866915dce30941e00000001000000006a3f522f00f35ba643324efa3700000001036e9381fe4499ff1d9ea493255a548371f087394c20bda9f35ba643324efa3700000001663fc080bb8fa834076ee2994f5d56ee040bf215236622ed0a1a72a3fd8462660000000100000000d45574b000f35ba643324efa37000000011df8021b81cc9d627ed870ccd05f87115d40a9e54d92d853f35ba643324efa3700000001391c41b69f0eaa375312955c85698f0a60c3fdcb49c4454a6397e041aef23b6000000003000000002c2813fb000000002e5af369000000004b8007fe00f35ba643324efa37000000011ac7d4219d9572ce2d39d6ad67849d6a6f063fb5256d1cc780000000000000005b8a15e74726d1f2000000010000000053d4162100f35ba643324efa37000000013c1c31acf86e0c317db169e1544fde8b0f0d6225b0696574f35ba643324efa37000000011540cd8a603cbafa3dcb6aca3c68156c50c4adc0d5a712141f757bbff375fbcb0000000200000000259c094600000000f98e842f00f35ba643324efa3700000001245a1a92f1d3da732ada146b448e47fa7baa52eccee6b9488000000000000000424460759048c6f30000000300000000271fa16a000000000fdb2a950000000066ebec2200000007010041a2569130b01d2f0000000100000000aa8b139600000000886a36e80000000000885df528000000009aa1189800000000001889da69000000008b8b78370000000000216f2c130000000036db4dd60000000000016b592300000000373d65630000000000d037a31a00000000c71eb68f0000000000ef6f0c4500000000c05e89a40136d201c86ebe87000ae443000000200576ee848dd07372e171b44647cef03c0f03f788a9a580cf8e1d914dd0788de600000000000000000000 \ No newline at end of file diff --git a/hedera-node/hedera-mono-service/src/test/resources/testfiles/config.txt b/hedera-node/hedera-mono-service/src/test/resources/testfiles/config.txt index c07b64999488..c1f52c1cd832 100644 --- a/hedera-node/hedera-mono-service/src/test/resources/testfiles/config.txt +++ b/hedera-node/hedera-mono-service/src/test/resources/testfiles/config.txt @@ -63,12 +63,6 @@ TLS, on #on to enable TLS, off to disable. # # FilesystemDemo.jar parameters: none # -# HashGraphDemo.jar takes parameters that give the initial checkbox settings, -# in the same order they appear are on the screen, with 1 to check it -# and 0 to not check it, followed by the number of events to display -# (or “all”). The first parameter controls whether it runs -# slowly (1) or runs at full speed (0). -# # GameDemo.jar parameters: # height: height of the board (in cells). Player moves 1 cell at a time. # width: width of the board (in cells). Player moves 1 cell at a time. diff --git a/hedera-node/hedera-mono-service/src/testFixtures/java/com/hedera/test/utils/AddresBookUtils.java b/hedera-node/hedera-mono-service/src/testFixtures/java/com/hedera/test/utils/AddresBookUtils.java index 123af5bb541f..56fa0ed24b88 100644 --- a/hedera-node/hedera-mono-service/src/testFixtures/java/com/hedera/test/utils/AddresBookUtils.java +++ b/hedera-node/hedera-mono-service/src/testFixtures/java/com/hedera/test/utils/AddresBookUtils.java @@ -16,25 +16,30 @@ package com.hedera.test.utils; -import static org.mockito.BDDMockito.given; import static org.mockito.Mockito.mock; -import com.swirlds.common.crypto.SerializablePublicKey; import com.swirlds.common.platform.NodeId; +import com.swirlds.platform.crypto.SerializableX509Certificate; import com.swirlds.platform.system.Platform; import com.swirlds.platform.system.address.Address; import com.swirlds.platform.system.address.AddressBook; import java.security.PublicKey; +import java.security.cert.X509Certificate; import java.util.List; +import org.mockito.Mockito; /** * Utilities for constructing AddressBook needed for tests */ public class AddresBookUtils { - public static AddressBook createPretendBookFrom(final Platform platform, final boolean withKeyDetails) { - final var pubKey = mock(PublicKey.class); - given(pubKey.getAlgorithm()).willReturn("EC"); + public static AddressBook createPretendBookFrom( + final Platform platform, final boolean withKeyDetails, final boolean mockPublicKey) { + final var publicKey = mock(PublicKey.class); + final var cert = mock(X509Certificate.class); + if (mockPublicKey) { + Mockito.when(cert.getPublicKey()).thenReturn(publicKey); + } final var address1 = new Address( platform.getSelfId(), "", @@ -44,9 +49,8 @@ public static AddressBook createPretendBookFrom(final Platform platform, final b -1, "123456789", -1, - new SerializablePublicKey(pubKey), - null, - new SerializablePublicKey(pubKey), + new SerializableX509Certificate(cert), + new SerializableX509Certificate(cert), ""); final var address2 = new Address( new NodeId(1), @@ -57,9 +61,8 @@ public static AddressBook createPretendBookFrom(final Platform platform, final b -1, "123456789", -1, - new SerializablePublicKey(pubKey), - null, - new SerializablePublicKey(pubKey), + new SerializableX509Certificate(cert), + new SerializableX509Certificate(cert), ""); return new AddressBook(List.of(address1, address2)); } diff --git a/hedera-node/hedera-mono-service/src/testFixtures/java/com/hedera/test/utils/SerdeUtils.java b/hedera-node/hedera-mono-service/src/testFixtures/java/com/hedera/test/utils/SerdeUtils.java index a915159c3036..466139c11b62 100644 --- a/hedera-node/hedera-mono-service/src/testFixtures/java/com/hedera/test/utils/SerdeUtils.java +++ b/hedera-node/hedera-mono-service/src/testFixtures/java/com/hedera/test/utils/SerdeUtils.java @@ -97,7 +97,8 @@ public static EvmFnResult fromGrpc(final ContractFunctionResult that) { that.getFunctionParameters().isEmpty() ? EvmFnResult.EMPTY : that.getFunctionParameters().toByteArray(), - that.hasSenderId() ? EntityId.fromGrpcAccountId(that.getSenderId()) : null); + that.hasSenderId() ? EntityId.fromGrpcAccountId(that.getSenderId()) : null, + that.hasSignerNonce() ? that.getSignerNonce().getValue() : null); } public static EvmLog fromGrpc(ContractLoginfo grpc) { diff --git a/hedera-node/hedera-schedule-service-impl/src/main/java/com/hedera/node/app/service/schedule/impl/handlers/ScheduleSignHandler.java b/hedera-node/hedera-schedule-service-impl/src/main/java/com/hedera/node/app/service/schedule/impl/handlers/ScheduleSignHandler.java index d3aecec96510..da5b7833d33f 100644 --- a/hedera-node/hedera-schedule-service-impl/src/main/java/com/hedera/node/app/service/schedule/impl/handlers/ScheduleSignHandler.java +++ b/hedera-node/hedera-schedule-service-impl/src/main/java/com/hedera/node/app/service/schedule/impl/handlers/ScheduleSignHandler.java @@ -160,6 +160,8 @@ public void handle(@NonNull final HandleContext context) throws HandleException } final ScheduleRecordBuilder scheduleRecords = context.recordBuilder(ScheduleRecordBuilder.class); + scheduleRecords.scheduledTransactionID( + HandlerUtility.transactionIdForScheduled(scheduleToSign)); // Based on fuzzy-record matching this field may not be set in mono-service records // scheduleRecords.scheduleID(idToSign); } else { diff --git a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/CallOutcome.java b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/CallOutcome.java index 6937ea326b51..f0e761f49478 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/CallOutcome.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/CallOutcome.java @@ -48,6 +48,16 @@ public record CallOutcome( @Nullable ContractActions actions, @Nullable ContractStateChanges stateChanges) { + /** + * Enumerates whether to externalize the result of aborted calls; needed for + * mono-service fidelity, since only a top-level {@code EthereumTransaction} + * would externalize the result of an aborted call there. + */ + public enum ExternalizeAbortResult { + YES, + NO + } + public boolean hasStateChanges() { return stateChanges != null && !stateChanges.contractStateChangesOrElse(emptyList()).isEmpty(); @@ -88,11 +98,17 @@ public boolean isSuccess() { * Adds the call details to the given record builder. * * @param recordBuilder the record builder + * @param externalizeAbortResult whether to externalize the result of aborted calls */ - public void addCallDetailsTo(@NonNull final ContractCallRecordBuilder recordBuilder) { - recordBuilder.contractID(recipientId); - // Intentionally omit result on aborted calls (i.e., when gasUsed = 0) - if (result.gasUsed() != 0L) { + public void addCallDetailsTo( + @NonNull final ContractCallRecordBuilder recordBuilder, + @NonNull final ExternalizeAbortResult externalizeAbortResult) { + requireNonNull(recordBuilder); + requireNonNull(externalizeAbortResult); + if (!callWasAborted()) { + recordBuilder.contractID(recipientId); + } + if (shouldExternalizeResult(externalizeAbortResult)) { recordBuilder.contractCallResult(result); } recordBuilder.withCommonFieldsSetFrom(this); @@ -103,10 +119,13 @@ public void addCallDetailsTo(@NonNull final ContractCallRecordBuilder recordBuil * * @param recordBuilder the record builder */ - public void addCreateDetailsTo(@NonNull final ContractCreateRecordBuilder recordBuilder) { + public void addCreateDetailsTo( + @NonNull final ContractCreateRecordBuilder recordBuilder, + @NonNull final ExternalizeAbortResult externalizeAbortResult) { + requireNonNull(recordBuilder); + requireNonNull(externalizeAbortResult); recordBuilder.contractID(recipientIdIfCreated()); - // Intentionally omit result on aborted calls (i.e., when gasUsed = 0) - if (result.gasUsed() != 0L) { + if (shouldExternalizeResult(externalizeAbortResult)) { recordBuilder.contractCreateResult(result); } recordBuilder.withCommonFieldsSetFrom(this); @@ -134,4 +153,12 @@ public long tinybarGasCost() { private boolean representsTopLevelCreation() { return isSuccess() && requireNonNull(result).hasEvmAddress(); } + + private boolean shouldExternalizeResult(@NonNull final ExternalizeAbortResult externalizeAbortResult) { + return !callWasAborted() || externalizeAbortResult == ExternalizeAbortResult.YES; + } + + private boolean callWasAborted() { + return result.gasUsed() == 0L; + } } diff --git a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/ContextTransactionProcessor.java b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/ContextTransactionProcessor.java index a404d13ebc2e..5c834467c53f 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/ContextTransactionProcessor.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/ContextTransactionProcessor.java @@ -16,9 +16,11 @@ package com.hedera.node.app.service.contract.impl.exec; +import static com.hedera.hapi.node.base.ResponseCodeEnum.INVALID_CONTRACT_ID; import static com.hedera.node.app.service.contract.impl.hevm.HederaEvmVersion.EVM_VERSIONS; import static java.util.Objects.requireNonNull; +import com.hedera.hapi.node.base.ContractID; import com.hedera.hapi.streams.ContractBytecode; import com.hedera.node.app.hapi.utils.ethereum.EthTxData; import com.hedera.node.app.service.contract.impl.annotations.TransactionScope; @@ -111,8 +113,14 @@ public CallOutcome call() { // Process the transaction and return its outcome try { - final var result = processor.processTransaction( + var result = processor.processTransaction( hevmTransaction, rootProxyWorldUpdater, feesOnlyUpdater, hederaEvmContext, tracer, configuration); + + if (hydratedEthTxData != null) { + final var sender = requireNonNull(rootProxyWorldUpdater.getHederaAccount(hevmTransaction.senderId())); + result = result.withSignerNonce(sender.getNonce()); + } + // For mono-service fidelity, externalize an initcode-only sidecar when a top-level creation fails if (!result.isSuccess() && hevmTransaction.needsInitcodeExternalizedOnFailure()) { final var contractBytecode = ContractBytecode.newBuilder() @@ -129,7 +137,21 @@ public CallOutcome call() { } // Commit any HAPI fees that were charged before aborting rootProxyWorldUpdater.commit(); - final var result = HederaEvmTransactionResult.fromAborted(e.senderId(), hevmTransaction, e.getStatus()); + + ContractID recipientId = null; + if (!INVALID_CONTRACT_ID.equals(e.getStatus())) { + recipientId = hevmTransaction.contractId(); + } + + var result = HederaEvmTransactionResult.fromAborted(e.senderId(), recipientId, e.getStatus()); + + if (context.body().hasEthereumTransaction()) { + final var sender = rootProxyWorldUpdater.getHederaAccount(e.senderId()); + if (sender != null) { + result = result.withSignerNonce(sender.getNonce()); + } + } + return CallOutcome.fromResultsWithoutSidecars( result.asProtoResultOf(ethTxDataIfApplicable(), rootProxyWorldUpdater), result); } @@ -151,7 +173,9 @@ private CallOutcome chargeFeesAndReturnOutcome(HederaEvmTransaction hevmTransact gasCharging.chargeGasForAbortedTransaction(senderId, hederaEvmContext, rootProxyWorldUpdater, hevmTransaction); rootProxyWorldUpdater.commit(); final var result = HederaEvmTransactionResult.fromAborted( - senderId, hevmTransaction, hevmTransaction.exception().getStatus()); + senderId, + hevmTransaction.contractId(), + hevmTransaction.exception().getStatus()); return CallOutcome.fromResultsWithoutSidecars( result.asProtoResultOf(ethTxDataIfApplicable(), rootProxyWorldUpdater), result); } diff --git a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/TransactionProcessor.java b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/TransactionProcessor.java index 76b638435065..c56017bddb24 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/TransactionProcessor.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/TransactionProcessor.java @@ -113,14 +113,14 @@ public HederaEvmTransactionResult processTransaction( @NonNull final HederaEvmContext context, @NonNull final ActionSidecarContentTracer tracer, @NonNull final Configuration config) { - final var parties = safeComputeInvolvedParties(transaction, updater, config, context); - try { return processTransactionWithParties( transaction, updater, feesOnlyUpdater, context, tracer, config, parties); } catch (HandleException e) { - throw new AbortException(e.getStatus(), parties.senderId()); + final var sender = updater.getHederaAccount(transaction.senderId()); + final var senderId = sender != null ? sender.hederaId() : transaction.senderId(); + throw new AbortException(e.getStatus(), senderId); } } @@ -186,6 +186,7 @@ private HederaEvmTransactionResult safeCommit( try { updater.commit(); } catch (ResourceExhaustedException e) { + // Behind the scenes there is only one savepoint stack; so we need to revert the root updater // before creating a new fees-only updater (even though from a Besu perspective, these two // updaters appear independent, they are not) @@ -262,7 +263,6 @@ private InvolvedParties computeInvolvedParties( } if (transaction.isEthereumTransaction()) { validateTrueOrAbort(transaction.nonce() == parties.sender().getNonce(), WRONG_NONCE, senderId); - parties.sender().incrementNonce(); } return parties; } diff --git a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/gas/CustomGasCharging.java b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/gas/CustomGasCharging.java index 276df5903106..c90c5be1f782 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/gas/CustomGasCharging.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/gas/CustomGasCharging.java @@ -131,6 +131,10 @@ public GasCharges chargeForGas( if (transaction.isEthereumTransaction()) { requireNonNull(relayer); final var allowanceUsed = chargeWithRelayer(sender, relayer, context, worldUpdater, transaction); + + // Increment nonce right after the gas is charged + sender.incrementNonce(); + return new GasCharges(intrinsicGas, allowanceUsed); } else { chargeWithOnlySender(sender, context, worldUpdater, transaction); diff --git a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/operations/CustomCallOperation.java b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/operations/CustomCallOperation.java index 59ebcce6aaf4..694d9141fe52 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/operations/CustomCallOperation.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/operations/CustomCallOperation.java @@ -68,13 +68,13 @@ public CustomCallOperation( public OperationResult execute(@NonNull final MessageFrame frame, @NonNull final EVM evm) { try { final var toAddress = to(frame); - if (isLazyCreateButInvalidateAlias(frame, toAddress)) { - return new OperationResult(cost(frame), INVALID_ALIAS_KEY); - } final var isMissing = mustBePresent(frame, toAddress) && !addressChecks.isPresent(toAddress, frame); if (isMissing) { return new OperationResult(cost(frame), INVALID_SOLIDITY_ADDRESS); } + if (isLazyCreateButInvalidateAlias(frame, toAddress)) { + return new OperationResult(cost(frame), INVALID_ALIAS_KEY); + } return super.execute(frame, evm); } catch (final UnderflowException ignore) { diff --git a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/operations/CustomSelfDestructOperation.java b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/operations/CustomSelfDestructOperation.java index 9569933607ff..449858928b6e 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/operations/CustomSelfDestructOperation.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/operations/CustomSelfDestructOperation.java @@ -71,11 +71,13 @@ public OperationResult execute(@NonNull final MessageFrame frame, @NonNull final final var tbdAddress = frame.getRecipientAddress(); final var proxyWorldUpdater = (ProxyWorldUpdater) frame.getWorldUpdater(); - // Enforce Hedera-specific restrictions on account deletion - final var maybeHaltReason = - proxyWorldUpdater.tryTrackingSelfDestructBeneficiary(tbdAddress, beneficiaryAddress, frame); - if (maybeHaltReason.isPresent()) { - return haltFor(null, 0, maybeHaltReason.get()); + // Enforce Hedera-specific restrictions on account deletion for non-static frames + if (!frame.isStatic()) { + final var maybeHaltReason = + proxyWorldUpdater.tryTrackingSelfDestructBeneficiary(tbdAddress, beneficiaryAddress, frame); + if (maybeHaltReason.isPresent()) { + return haltFor(null, 0, maybeHaltReason.get()); + } } // Now proceed with the self-destruct diff --git a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/scope/HandleHederaOperations.java b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/scope/HandleHederaOperations.java index d1b1a44c2ca6..dc81e43a7e26 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/scope/HandleHederaOperations.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/scope/HandleHederaOperations.java @@ -60,7 +60,6 @@ import edu.umd.cs.findbugs.annotations.Nullable; import java.util.Collections; import java.util.List; -import java.util.Optional; import javax.inject.Inject; import org.hyperledger.besu.datatypes.Address; @@ -179,8 +178,8 @@ public long contractCreationLimit() { */ @Override public @NonNull Bytes entropy() { - return Optional.ofNullable(context.blockRecordInfo().getNMinus3RunningHash()) - .orElse(ZERO_ENTROPY); + final var entropy = context.blockRecordInfo().getNMinus3RunningHash(); + return (entropy == null || entropy.equals(Bytes.EMPTY)) ? ZERO_ENTROPY : entropy; } /** diff --git a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/scope/QueryHederaOperations.java b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/scope/QueryHederaOperations.java index 215a14897a14..9294ff497104 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/scope/QueryHederaOperations.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/scope/QueryHederaOperations.java @@ -33,7 +33,6 @@ import java.util.Collections; import java.util.List; import java.util.Objects; -import java.util.Optional; import javax.inject.Inject; import org.hyperledger.besu.datatypes.Address; @@ -120,8 +119,8 @@ public long contractCreationLimit() { */ @Override public @NonNull Bytes entropy() { - return Optional.ofNullable(context.blockRecordInfo().getNMinus3RunningHash()) - .orElse(ZERO_ENTROPY); + final var entropy = context.blockRecordInfo().getNMinus3RunningHash(); + return (entropy == null || entropy.equals(Bytes.EMPTY)) ? ZERO_ENTROPY : entropy; } /** diff --git a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/ExchangeRateSystemContract.java b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/ExchangeRateSystemContract.java index 7a6ce02f25fe..aa428a705697 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/ExchangeRateSystemContract.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/ExchangeRateSystemContract.java @@ -18,6 +18,8 @@ import static com.hedera.node.app.service.contract.impl.exec.utils.FrameUtils.contractsConfigOf; import static com.hedera.node.app.service.contract.impl.exec.utils.FrameUtils.proxyUpdaterFor; +import static com.hedera.node.app.service.evm.utils.ValidationUtils.validateTrue; +import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.INVALID_TRANSACTION_BODY; import static java.util.Objects.requireNonNull; import com.esaulpaugh.headlong.abi.BigIntegerType; @@ -57,6 +59,7 @@ public FullResult computeFully(@NonNull Bytes input, @NonNull MessageFrame messa requireNonNull(input); requireNonNull(messageFrame); try { + validateTrue(input.size() >= 4, INVALID_TRANSACTION_BODY); gasRequirement = contractsConfigOf(messageFrame).precompileExchangeRateGasCost(); final var selector = input.getInt(0); final var amount = biValueFrom(input); diff --git a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/FullResult.java b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/FullResult.java index 132c8bc20bc8..01fd74100eb5 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/FullResult.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/FullResult.java @@ -18,6 +18,8 @@ import static com.hedera.hapi.node.base.ResponseCodeEnum.INSUFFICIENT_GAS; import static com.hedera.hapi.node.base.ResponseCodeEnum.NOT_SUPPORTED; +import static com.hedera.node.app.service.contract.impl.exec.failure.CustomExceptionalHaltReason.ERROR_DECODING_PRECOMPILE_INPUT; +import static com.hedera.node.app.service.contract.impl.utils.ConversionUtils.tuweniToPbjBytes; import static java.util.Objects.requireNonNull; import com.hedera.hapi.node.base.ResponseCodeEnum; @@ -58,6 +60,12 @@ public boolean isRefundGas() { public void recordInsufficientGas() { if (recordBuilder != null) { recordBuilder.status(INSUFFICIENT_GAS); + // match mono - update function result with the INSUFFICIENT_GAS status + recordBuilder.contractCallResult(recordBuilder + .contractFunctionResult() + .copyBuilder() + .contractCallResult(tuweniToPbjBytes(Bytes.wrap(UInt256.valueOf(INSUFFICIENT_GAS.protoOrdinal())))) + .build()); } } @@ -92,7 +100,7 @@ public static FullResult haltResult( requireNonNull(recordBuilder); final var reason = recordBuilder.status() == NOT_SUPPORTED ? CustomExceptionalHaltReason.NOT_SUPPORTED - : CustomExceptionalHaltReason.ERROR_DECODING_PRECOMPILE_INPUT; + : ERROR_DECODING_PRECOMPILE_INPUT; return new FullResult( PrecompiledContract.PrecompileContractResult.halt(Bytes.EMPTY, Optional.of(reason)), gasRequirement, @@ -128,6 +136,9 @@ public static FullResult successResult(@NonNull final ByteBuffer encoded, final public static FullResult haltResult(final long gasRequirement) { return new FullResult( - PrecompiledContract.PrecompileContractResult.halt(Bytes.EMPTY, Optional.empty()), gasRequirement, null); + PrecompiledContract.PrecompileContractResult.halt( + Bytes.EMPTY, Optional.of(ERROR_DECODING_PRECOMPILE_INPUT)), + gasRequirement, + null); } } diff --git a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/HtsSystemContract.java b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/HtsSystemContract.java index 06695f60b626..3a1bb02a8193 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/HtsSystemContract.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/HtsSystemContract.java @@ -24,6 +24,8 @@ import static com.hedera.node.app.service.contract.impl.utils.ConversionUtils.asNumberedContractId; import static com.hedera.node.app.service.contract.impl.utils.SystemContractUtils.contractFunctionResultFailedFor; import static com.hedera.node.app.service.contract.impl.utils.SystemContractUtils.successResultOf; +import static com.hedera.node.app.service.evm.utils.ValidationUtils.validateTrue; +import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.INVALID_TRANSACTION_BODY; import static java.util.Objects.requireNonNull; import com.hedera.hapi.node.base.ContractID; @@ -71,6 +73,7 @@ public FullResult computeFully(@NonNull final Bytes input, @NonNull final Messag final HtsCall call; final HtsCallAttempt attempt; try { + validateTrue(input.size() >= 4, INVALID_TRANSACTION_BODY); attempt = callFactory.createCallAttemptFrom(input, frame); call = requireNonNull(attempt.asExecutableCall()); if (frame.isStatic() && !call.allowsStaticFrame()) { @@ -105,9 +108,18 @@ private static FullResult resultOfExecuting( if (pricedResult.isViewCall()) { final var proxyWorldUpdater = FrameUtils.proxyUpdaterFor(frame); final var enhancement = proxyWorldUpdater.enhancement(); - final var responseCode = pricedResult.responseCode() != null ? pricedResult.responseCode() : null; + final var responseCode = pricedResult.responseCode(); if (responseCode == SUCCESS) { + if (pricedResult.fullResult().result().getState().equals(MessageFrame.State.REVERT) + || pricedResult + .fullResult() + .result() + .getState() + .equals(MessageFrame.State.EXCEPTIONAL_HALT)) { + return pricedResult.fullResult(); + } + enhancement .systemOperations() .externalizeResult( diff --git a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/PrngSystemContract.java b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/PrngSystemContract.java index 014cf9b8ed86..54948e19bf79 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/PrngSystemContract.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/PrngSystemContract.java @@ -16,13 +16,14 @@ package com.hedera.node.app.service.contract.impl.exec.systemcontracts; -import static com.hedera.node.app.service.contract.impl.exec.scope.HandleHederaOperations.ZERO_ENTROPY; import static com.hedera.node.app.service.contract.impl.utils.ConversionUtils.asEvmContractId; import static com.hedera.node.app.service.contract.impl.utils.ConversionUtils.tuweniToPbjBytes; import static com.hedera.node.app.service.contract.impl.utils.SystemContractUtils.HTS_PRECOMPILE_MIRROR_ID; import static com.hedera.node.app.service.contract.impl.utils.SystemContractUtils.contractFunctionResultFailedFor; import static com.hedera.node.app.service.contract.impl.utils.SystemContractUtils.successResultOfZeroValueTraceable; +import static com.hedera.node.app.service.evm.utils.ValidationUtils.validateTrue; import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.FAIL_INVALID; +import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.INVALID_TRANSACTION_BODY; import static java.util.Objects.requireNonNull; import static org.hyperledger.besu.evm.frame.ExceptionalHaltReason.INVALID_OPERATION; @@ -81,6 +82,7 @@ public FullResult computeFully(@NonNull final Bytes input, @NonNull final Messag final ContractID contractID = asEvmContractId(Address.fromHexString(PRNG_PRECOMPILE_ADDRESS)); try { + validateTrue(input.size() >= 4, INVALID_TRANSACTION_BODY); // compute the pseudorandom number final var randomNum = generatePseudoRandomData(input, frame); requireNonNull(randomNum); @@ -172,9 +174,6 @@ Bytes generatePseudoRandomData(@NonNull final Bytes input, @NonNull final Messag Bytes random256BitGenerator(final MessageFrame frame) { final var entropy = ((ProxyWorldUpdater) frame.getWorldUpdater()).entropy(); - if (entropy.equals(Bytes.wrap(ZERO_ENTROPY.toByteArray()))) { - return null; - } return entropy.slice(0, 32); } diff --git a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/hts/AbstractNftViewCall.java b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/hts/AbstractNftViewCall.java index 3bce2839701c..772c87b9c6c0 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/hts/AbstractNftViewCall.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/hts/AbstractNftViewCall.java @@ -17,14 +17,19 @@ package com.hedera.node.app.service.contract.impl.exec.systemcontracts.hts; import static com.hedera.hapi.node.base.ResponseCodeEnum.INVALID_NFT_ID; +import static com.hedera.hapi.node.base.ResponseCodeEnum.INVALID_TOKEN_ID; +import static com.hedera.node.app.service.contract.impl.exec.systemcontracts.FullResult.haltResult; import static com.hedera.node.app.service.contract.impl.exec.systemcontracts.FullResult.revertResult; +import static com.hedera.node.app.service.contract.impl.exec.systemcontracts.hts.HtsCall.PricedResult.gasOnly; import static java.util.Objects.requireNonNull; +import com.hedera.hapi.node.base.TokenType; import com.hedera.hapi.node.state.token.Nft; import com.hedera.hapi.node.state.token.Token; import com.hedera.node.app.service.contract.impl.exec.gas.SystemContractGasCalculator; import com.hedera.node.app.service.contract.impl.exec.systemcontracts.FullResult; import com.hedera.node.app.service.contract.impl.hevm.HederaWorldUpdater; +import com.hedera.node.app.service.evm.contracts.operations.HederaExceptionalHaltReason; import edu.umd.cs.findbugs.annotations.NonNull; import edu.umd.cs.findbugs.annotations.Nullable; @@ -43,6 +48,21 @@ protected AbstractNftViewCall( this.serialNo = serialNo; } + @Override + public @NonNull PricedResult execute() { + if (token != null && token.tokenType() == TokenType.FUNGIBLE_COMMON) { + // (FUTURE) consider removing this pattern, but for now match + // mono-service by halting on invalid token type + return gasOnly( + haltResult( + HederaExceptionalHaltReason.ERROR_DECODING_PRECOMPILE_INPUT, + gasCalculator.viewGasRequirement()), + INVALID_TOKEN_ID, + false); + } + return super.execute(); + } + /** * {@inheritDoc} */ diff --git a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/hts/HtsCall.java b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/hts/HtsCall.java index 997b4198d00c..caf8bee77c72 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/hts/HtsCall.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/hts/HtsCall.java @@ -16,6 +16,7 @@ package com.hedera.node.app.service.contract.impl.exec.systemcontracts.hts; +import static com.hedera.hapi.node.base.ResponseCodeEnum.INSUFFICIENT_GAS; import static com.hedera.hapi.node.base.ResponseCodeEnum.SUCCESS; import static com.hedera.node.app.service.contract.impl.utils.ConversionUtils.tuweniToPbjBytes; @@ -52,15 +53,26 @@ public static PricedResult gasOnly(FullResult result, ResponseCodeEnum responseC return new PricedResult(result, 0L, responseCode, isViewCall); } + public static PricedResult gasPlus( + FullResult result, ResponseCodeEnum responseCode, boolean isViewCall, long nonGasCost) { + return new PricedResult(result, nonGasCost, responseCode, isViewCall); + } + public ContractFunctionResult asResultOfCall( @NonNull final AccountID senderId, @NonNull final ContractID contractId, @NonNull final Bytes functionParameters, final long remainingGas) { + var errorMessage = responseCode == SUCCESS ? null : responseCode.protoName(); + if (remainingGas < fullResult().gasRequirement()) { + errorMessage = INSUFFICIENT_GAS.protoName(); + } + return ContractFunctionResult.newBuilder() .contractID(contractId) + .amount(nonGasCost) .contractCallResult(tuweniToPbjBytes(fullResult.output())) - .errorMessage(responseCode == SUCCESS ? null : responseCode.protoName()) + .errorMessage(errorMessage) .gasUsed(fullResult().gasRequirement()) .gas(remainingGas) .functionParameters(functionParameters) diff --git a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/hts/create/ClassicCreatesCall.java b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/hts/create/ClassicCreatesCall.java index e8a622cd3517..6c59b34c4c5b 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/hts/create/ClassicCreatesCall.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/hts/create/ClassicCreatesCall.java @@ -28,6 +28,7 @@ import static com.hedera.node.app.service.contract.impl.exec.systemcontracts.FullResult.successResult; import static com.hedera.node.app.service.contract.impl.exec.systemcontracts.HtsSystemContract.HTS_EVM_ADDRESS; import static com.hedera.node.app.service.contract.impl.exec.systemcontracts.hts.HtsCall.PricedResult.gasOnly; +import static com.hedera.node.app.service.contract.impl.exec.systemcontracts.hts.HtsCall.PricedResult.gasPlus; import static com.hedera.node.app.service.contract.impl.exec.systemcontracts.hts.ReturnTypes.RC_AND_ADDRESS_ENCODER; import static com.hedera.node.app.service.contract.impl.exec.systemcontracts.hts.ReturnTypes.ZERO_ADDRESS; import static com.hedera.node.app.service.contract.impl.exec.systemcontracts.hts.ReturnTypes.standardized; @@ -45,7 +46,9 @@ import com.hedera.hapi.node.base.AccountID; import com.hedera.hapi.node.base.ContractID; import com.hedera.hapi.node.base.ResponseCodeEnum; +import com.hedera.hapi.node.base.Timestamp; import com.hedera.hapi.node.base.TokenType; +import com.hedera.hapi.node.base.TransactionID; import com.hedera.hapi.node.transaction.TransactionBody; import com.hedera.node.app.service.contract.impl.exec.gas.SystemContractGasCalculator; import com.hedera.node.app.service.contract.impl.exec.scope.ActiveContractVerificationStrategy; @@ -78,7 +81,7 @@ public class ClassicCreatesCall extends AbstractHtsCall { private final VerificationStrategy verificationStrategy; private final AccountID spenderId; - private final long nonGasCost; + private long nonGasCost; public ClassicCreatesCall( @NonNull final SystemContractGasCalculator systemContractGasCalculator, @@ -91,13 +94,6 @@ public ClassicCreatesCall( this.verificationStrategy = requireNonNull(verificationStrategy); this.spenderId = addressIdConverter.convert(asHeadlongAddress(spender.toArrayUnsafe())); this.syntheticCreate = syntheticCreate; - if (syntheticCreate != null) { - final var baseCost = gasCalculator.canonicalPriceInTinybars(syntheticCreate, spenderId); - // The non-gas cost is a 20% surcharge on the HAPI TokenCreate price, minus the fee taken as gas - this.nonGasCost = baseCost + (baseCost / 5) - gasCalculator.gasCostInTinybars(FIXED_GAS_COST); - } else { - this.nonGasCost = 0L; - } } private record LegacyActivation(long contractNum, Bytes pbjAddress, Address besuAddress) {} @@ -112,6 +108,18 @@ private record LegacyActivation(long contractNum, Bytes pbjAddress, Address besu INVALID_TRANSACTION_BODY, false); } + final var timestampSeconds = frame.getBlockValues().getTimestamp(); + final var timestamp = Timestamp.newBuilder().seconds(timestampSeconds).build(); + final var syntheticCreateWithId = syntheticCreate + .copyBuilder() + .transactionID(TransactionID.newBuilder() + .accountID(AccountID.DEFAULT) + .transactionValidStart(timestamp) + .build()) + .build(); + final var baseCost = gasCalculator.canonicalPriceInTinybars(syntheticCreateWithId, spenderId); + // The non-gas cost is a 20% surcharge on the HAPI TokenCreate price, minus the fee taken as gas + this.nonGasCost = baseCost + (baseCost / 5) - gasCalculator.gasCostInTinybars(FIXED_GAS_COST); if (frame.getValue().lessThan(Wei.of(nonGasCost))) { return completionWith( FIXED_GAS_COST, @@ -119,6 +127,8 @@ private record LegacyActivation(long contractNum, Bytes pbjAddress, Address besu RC_AND_ADDRESS_ENCODER.encodeElements((long) INSUFFICIENT_TX_FEE.protoOrdinal(), ZERO_ADDRESS)); } else { operations().collectFee(spenderId, nonGasCost); + // (future) remove after differential testing + nonGasCost = frame.getValue().toLong(); } final var validity = validityOfSynthOp(); @@ -134,7 +144,7 @@ private record LegacyActivation(long contractNum, Bytes pbjAddress, Address besu final var status = recordBuilder.status(); if (status != ResponseCodeEnum.SUCCESS) { - return gasOnly(revertResult(recordBuilder, FIXED_GAS_COST), status, false); + return gasPlus(revertResult(recordBuilder, FIXED_GAS_COST), status, false, nonGasCost); } else { ByteBuffer encodedOutput; final var op = syntheticCreate.tokenCreationOrThrow(); @@ -168,7 +178,7 @@ private record LegacyActivation(long contractNum, Bytes pbjAddress, Address besu headlongAddressOf(recordBuilder.tokenID())); } } - return gasOnly(successResult(encodedOutput, FIXED_GAS_COST, recordBuilder), status, false); + return gasPlus(successResult(encodedOutput, FIXED_GAS_COST, recordBuilder), status, false, nonGasCost); } } diff --git a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/hts/create/CreateSyntheticTxnFactory.java b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/hts/create/CreateSyntheticTxnFactory.java index 9f583cbfae5d..31ec5323c35f 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/hts/create/CreateSyntheticTxnFactory.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/hts/create/CreateSyntheticTxnFactory.java @@ -122,7 +122,7 @@ private static void addCustomFees( final var fixedFees = tokenCreateWrapper.getFixedFees().stream().map(FixedFeeWrapper::asGrpc); final var royaltyFees = tokenCreateWrapper.getRoyaltyFees().stream().map(RoyaltyFeeWrapper::asGrpc); - var allFees = Stream.of(fractionalFees, fixedFees, royaltyFees) + var allFees = Stream.of(fixedFees, fractionalFees, royaltyFees) .flatMap(Function.identity()) .toList(); diff --git a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/hts/decimals/DecimalsCall.java b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/hts/decimals/DecimalsCall.java index 73ace233069a..0c91baeabe9d 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/hts/decimals/DecimalsCall.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/hts/decimals/DecimalsCall.java @@ -17,8 +17,9 @@ package com.hedera.node.app.service.contract.impl.exec.systemcontracts.hts.decimals; import static com.hedera.hapi.node.base.ResponseCodeEnum.INVALID_TOKEN_ID; -import static com.hedera.node.app.service.contract.impl.exec.systemcontracts.FullResult.revertResult; +import static com.hedera.node.app.service.contract.impl.exec.systemcontracts.FullResult.haltResult; import static com.hedera.node.app.service.contract.impl.exec.systemcontracts.FullResult.successResult; +import static com.hedera.node.app.service.contract.impl.exec.systemcontracts.hts.HtsCall.PricedResult.gasOnly; import com.hedera.hapi.node.base.TokenType; import com.hedera.hapi.node.state.token.Token; @@ -26,6 +27,7 @@ import com.hedera.node.app.service.contract.impl.exec.systemcontracts.FullResult; import com.hedera.node.app.service.contract.impl.exec.systemcontracts.hts.AbstractRevertibleTokenViewCall; import com.hedera.node.app.service.contract.impl.hevm.HederaWorldUpdater; +import com.hedera.node.app.service.evm.contracts.operations.HederaExceptionalHaltReason; import edu.umd.cs.findbugs.annotations.NonNull; import edu.umd.cs.findbugs.annotations.Nullable; @@ -42,18 +44,28 @@ public DecimalsCall( super(gasCalculator, enhancement, token); } + @Override + public @NonNull PricedResult execute() { + if (token != null && token.tokenType() != TokenType.FUNGIBLE_COMMON) { + // (FUTURE) consider removing this pattern, but for now match + // mono-service by halting on invalid token type + return gasOnly( + haltResult( + HederaExceptionalHaltReason.ERROR_DECODING_PRECOMPILE_INPUT, + gasCalculator.viewGasRequirement()), + INVALID_TOKEN_ID, + false); + } + return super.execute(); + } + /** * {@inheritDoc} */ @Override protected @NonNull FullResult resultOfViewingToken(@NonNull final Token token) { - if (token.tokenType() != TokenType.FUNGIBLE_COMMON) { - return revertResult(INVALID_TOKEN_ID, gasCalculator.viewGasRequirement()); - } else { - final var decimals = Math.min(MAX_REPORTABLE_DECIMALS, token.decimals()); - return successResult( - DecimalsTranslator.DECIMALS.getOutputs().encodeElements(decimals), - gasCalculator.viewGasRequirement()); - } + final var decimals = Math.min(MAX_REPORTABLE_DECIMALS, token.decimals()); + return successResult( + DecimalsTranslator.DECIMALS.getOutputs().encodeElements(decimals), gasCalculator.viewGasRequirement()); } } diff --git a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/hts/grantapproval/ClassicGrantApprovalCall.java b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/hts/grantapproval/ClassicGrantApprovalCall.java index 8f39b6bcc414..3c8bea51ce0c 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/hts/grantapproval/ClassicGrantApprovalCall.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/hts/grantapproval/ClassicGrantApprovalCall.java @@ -39,7 +39,6 @@ import org.hyperledger.besu.evm.log.Log; public class ClassicGrantApprovalCall extends AbstractGrantApprovalCall { - // too many parameters @SuppressWarnings("java:S107") public ClassicGrantApprovalCall( @@ -63,7 +62,7 @@ public PricedResult execute(@NonNull final MessageFrame frame) { final var body = synthApprovalBody(); final var recordBuilder = systemContractOperations() .dispatch(body, verificationStrategy, senderId, ContractCallRecordBuilder.class); - final var status = withMonoStandard(recordBuilder).status(); + final var status = recordBuilder.status(); final var gasRequirement = gasCalculator.gasRequirement(body, DispatchType.APPROVE, senderId); if (status != SUCCESS) { return reversionWith(gasRequirement, recordBuilder); @@ -78,6 +77,7 @@ public PricedResult execute(@NonNull final MessageFrame frame) { ? GrantApprovalTranslator.GRANT_APPROVAL.getOutputs().encodeElements(status.protoOrdinal(), true) : GrantApprovalTranslator.GRANT_APPROVAL_NFT.getOutputs().encodeElements((long) status.protoOrdinal()); + return gasOnly(successResult(encodedOutput, gasRequirement, recordBuilder), status, false); } } diff --git a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/hts/tokenuri/TokenUriCall.java b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/hts/tokenuri/TokenUriCall.java index 0c3df42ec93b..ff8423cf2232 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/hts/tokenuri/TokenUriCall.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/hts/tokenuri/TokenUriCall.java @@ -16,12 +16,9 @@ package com.hedera.node.app.service.contract.impl.exec.systemcontracts.hts.tokenuri; -import static com.hedera.node.app.service.contract.impl.exec.systemcontracts.FullResult.revertResult; import static com.hedera.node.app.service.contract.impl.exec.systemcontracts.FullResult.successResult; import static java.util.Objects.requireNonNull; -import com.hedera.hapi.node.base.ResponseCodeEnum; -import com.hedera.hapi.node.base.TokenType; import com.hedera.hapi.node.state.token.Nft; import com.hedera.hapi.node.state.token.Token; import com.hedera.node.app.service.contract.impl.exec.gas.SystemContractGasCalculator; @@ -51,12 +48,6 @@ public TokenUriCall( */ @Override protected @NonNull FullResult resultOfViewingNft(@NonNull final Token token, final Nft nft) { - requireNonNull(token); - // #10568 - We add this check to match mono behavior - if (token.tokenType() == TokenType.FUNGIBLE_COMMON) { - return revertResult(ResponseCodeEnum.INVALID_TOKEN_ID, gasCalculator.viewGasRequirement()); - } - String metadata; if (nft != null) { metadata = new String(nft.metadata().toByteArray()); diff --git a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/hts/transfer/ClassicTransfersCall.java b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/hts/transfer/ClassicTransfersCall.java index 645cc45e831d..358f837b870a 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/hts/transfer/ClassicTransfersCall.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/hts/transfer/ClassicTransfersCall.java @@ -17,8 +17,11 @@ package com.hedera.node.app.service.contract.impl.exec.systemcontracts.hts.transfer; import static com.hedera.hapi.node.base.ResponseCodeEnum.INVALID_RECEIVING_NODE_ACCOUNT; +import static com.hedera.hapi.node.base.ResponseCodeEnum.INVALID_TRANSACTION_BODY; import static com.hedera.hapi.node.base.ResponseCodeEnum.NOT_SUPPORTED; import static com.hedera.hapi.node.base.ResponseCodeEnum.SUCCESS; +import static com.hedera.node.app.service.contract.impl.exec.systemcontracts.FullResult.haltResult; +import static com.hedera.node.app.service.contract.impl.exec.systemcontracts.hts.HtsCall.PricedResult.gasOnly; import static com.hedera.node.app.service.contract.impl.exec.systemcontracts.hts.ReturnTypes.encodedRc; import static com.hedera.node.app.service.contract.impl.exec.systemcontracts.hts.transfer.ClassicTransfersTranslator.TRANSFER_TOKEN; import static com.hedera.node.app.service.contract.impl.exec.systemcontracts.hts.transfer.TransferEventLoggingUtils.logSuccessfulFungibleTransfer; @@ -67,7 +70,10 @@ public class ClassicTransfersCall extends AbstractHtsCall { private final byte[] selector; private final AccountID senderId; private final ResponseCodeEnum preemptingFailureStatus; + + @Nullable private final TransactionBody syntheticTransfer; + private final Configuration configuration; @Nullable @@ -86,7 +92,7 @@ public ClassicTransfersCall( @NonNull final byte[] selector, @NonNull final AccountID senderId, @Nullable final ResponseCodeEnum preemptingFailureStatus, - @NonNull final TransactionBody syntheticTransfer, + @Nullable final TransactionBody syntheticTransfer, @NonNull final Configuration configuration, @Nullable ApprovalSwitchHelper approvalSwitchHelper, @NonNull final CallStatusStandardizer callStatusStandardizer, @@ -96,7 +102,7 @@ public ClassicTransfersCall( this.selector = requireNonNull(selector); this.senderId = requireNonNull(senderId); this.preemptingFailureStatus = preemptingFailureStatus; - this.syntheticTransfer = requireNonNull(syntheticTransfer); + this.syntheticTransfer = syntheticTransfer; this.configuration = requireNonNull(configuration); this.approvalSwitchHelper = approvalSwitchHelper; this.callStatusStandardizer = requireNonNull(callStatusStandardizer); @@ -109,6 +115,13 @@ public ClassicTransfersCall( */ @Override public @NonNull PricedResult execute(@NonNull final MessageFrame frame) { + if (syntheticTransfer == null) { + return gasOnly( + haltResult( + configuration.getConfigData(ContractsConfig.class).precompileHtsDefaultGasCost()), + INVALID_TRANSACTION_BODY, + false); + } final var gasRequirement = transferGasRequirement(syntheticTransfer, gasCalculator, enhancement, senderId, selector); if (preemptingFailureStatus != null) { diff --git a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/hts/transfer/ClassicTransfersDecoder.java b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/hts/transfer/ClassicTransfersDecoder.java index b57404e598d1..2010c0d44616 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/hts/transfer/ClassicTransfersDecoder.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/hts/transfer/ClassicTransfersDecoder.java @@ -34,6 +34,7 @@ import com.hedera.node.app.service.contract.impl.exec.systemcontracts.hts.HtsCallAttempt; import com.hedera.node.app.service.contract.impl.utils.ConversionUtils; import edu.umd.cs.findbugs.annotations.NonNull; +import edu.umd.cs.findbugs.annotations.Nullable; import java.math.BigInteger; import java.util.ArrayList; import java.util.Arrays; @@ -127,15 +128,20 @@ public TransactionBody decodeTransferTokens( * @param encoded the encoded call * @return the synthetic transaction body */ - public TransactionBody decodeTransferToken( + public @Nullable TransactionBody decodeTransferToken( @NonNull final byte[] encoded, @NonNull final AddressIdConverter addressIdConverter) { final var call = ClassicTransfersTranslator.TRANSFER_TOKEN.decodeCall(encoded); + final long amount = call.get(3); + if (amount < 0) { + return null; + } return bodyOf(tokenTransfers(sendingUnitsFromTo( ConversionUtils.asTokenId(call.get(0)), addressIdConverter.convert(call.get(1)), addressIdConverter.convertCredit(call.get(2)), - call.get(3), - IsApproval.FALSE))); + amount, + IsApproval.FALSE, + TransferPrecedence.DEBIT))); } /** @@ -196,7 +202,8 @@ public TransactionBody decodeHrcTransferFrom( addressIdConverter.convert(call.get(1)), addressIdConverter.convertCredit(call.get(2)), exactLongValueOrThrow(call.get(3)), - IsApproval.TRUE))); + IsApproval.TRUE, + TransferPrecedence.CREDIT))); } /** @@ -328,15 +335,33 @@ private TokenTransferList adjustingUnits( .build(); } + /** + * In a case of transferring funds from one account to another, ideally the ordering of (debit, account1) + * and (credit, account2), or vice versa, would not produce different results. However, in order to match + * mono service behavior, the ordering must be specified in certain cases. Therefore, we define the + * following enum to indicate which of the debit or credit should be added first to the transfer list. + */ + private enum TransferPrecedence { + // A value of DEBIT indicates that the debit account amount should be added first + DEBIT, + CREDIT + } + private TokenTransferList sendingUnitsFromTo( @NonNull final TokenID tokenId, @NonNull final AccountID from, @NonNull final AccountID to, final long amount, - final IsApproval isApproval) { + final IsApproval isApproval, + @NonNull final TransferPrecedence precedence) { final var accountAmounts = new ArrayList(); - accountAmounts.add(debit(from, amount, isApproval)); - accountAmounts.add(credit(to, amount)); + if (precedence == TransferPrecedence.DEBIT) { + accountAmounts.add(debit(from, amount, isApproval)); + accountAmounts.add(credit(to, amount)); + } else { + accountAmounts.add(credit(to, amount)); + accountAmounts.add(debit(from, amount, isApproval)); + } return TokenTransferList.newBuilder() .token(tokenId) .transfers(accountAmounts) diff --git a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/hts/transfer/ClassicTransfersTranslator.java b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/hts/transfer/ClassicTransfersTranslator.java index 634455a53248..bcc65c03174f 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/hts/transfer/ClassicTransfersTranslator.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/hts/transfer/ClassicTransfersTranslator.java @@ -26,6 +26,7 @@ import com.hedera.node.app.service.contract.impl.exec.systemcontracts.hts.HtsCallAttempt; import com.hedera.node.app.service.contract.impl.exec.systemcontracts.hts.ReturnTypes; import edu.umd.cs.findbugs.annotations.NonNull; +import edu.umd.cs.findbugs.annotations.Nullable; import java.util.Arrays; import javax.inject.Inject; import javax.inject.Singleton; @@ -89,7 +90,7 @@ public ClassicTransfersCall callFrom(@NonNull final HtsCallAttempt attempt) { SYSTEM_ACCOUNT_CREDIT_SCREEN); } - private TransactionBody nominalBodyFor(@NonNull final HtsCallAttempt attempt) { + private @Nullable TransactionBody nominalBodyFor(@NonNull final HtsCallAttempt attempt) { if (Arrays.equals(attempt.selector(), ClassicTransfersTranslator.CRYPTO_TRANSFER.selector())) { return decoder.decodeCryptoTransfer(attempt.inputBytes(), attempt.addressIdConverter()); } else if (Arrays.equals(attempt.selector(), ClassicTransfersTranslator.CRYPTO_TRANSFER_V2.selector())) { diff --git a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/hts/transfer/Erc20TransfersCall.java b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/hts/transfer/Erc20TransfersCall.java index e68f0f20944a..bdba49ef488c 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/hts/transfer/Erc20TransfersCall.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/hts/transfer/Erc20TransfersCall.java @@ -17,6 +17,7 @@ package com.hedera.node.app.service.contract.impl.exec.systemcontracts.hts.transfer; import static com.hedera.hapi.node.base.ResponseCodeEnum.INVALID_TOKEN_ID; +import static com.hedera.hapi.node.base.ResponseCodeEnum.NOT_SUPPORTED; import static com.hedera.hapi.node.base.ResponseCodeEnum.SUCCESS; import static com.hedera.node.app.service.contract.impl.exec.systemcontracts.FullResult.revertResult; import static com.hedera.node.app.service.contract.impl.exec.systemcontracts.FullResult.successResult; @@ -109,7 +110,13 @@ public Erc20TransfersCall( ContractCallRecordBuilder.class); final var status = recordBuilder.status(); if (status != SUCCESS) { - return gasOnly(revertResult(recordBuilder, gasRequirement), status, false); + if (status == NOT_SUPPORTED) { + // matching behaviour of mono-service HTS system contract which directly enforced feature flags, ending + // up doing an exceptional halt on NOT_SUPPORTED and consuming all gas + return haltWith(gasRequirement, recordBuilder); + } else { + return gasOnly(revertResult(recordBuilder, gasRequirement), status, false); + } } else { final var encodedOutput = (from == null) ? ERC_20_TRANSFER.getOutputs().encodeElements(true) diff --git a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/utils/FrameBuilder.java b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/utils/FrameBuilder.java index 74002ec54330..18a00cc00f0e 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/utils/FrameBuilder.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/exec/utils/FrameBuilder.java @@ -16,6 +16,7 @@ package com.hedera.node.app.service.contract.impl.exec.utils; +import static com.hedera.hapi.node.base.ResponseCodeEnum.INVALID_CONTRACT_ID; import static com.hedera.hapi.node.base.ResponseCodeEnum.INVALID_ETHEREUM_TRANSACTION; import static com.hedera.hapi.streams.SidecarType.CONTRACT_STATE_CHANGE; import static com.hedera.node.app.service.contract.impl.exec.utils.FrameUtils.CONFIG_CONTEXT_VARIABLE; @@ -164,6 +165,9 @@ private MessageFrame finishedAsCall( validateTrue(transaction.permitsMissingContract(), INVALID_ETHEREUM_TRANSACTION); } else { code = account.getEvmCode(); + validateTrue( + emptyCodePossiblyAllowed(config, featureFlags, contractId, transaction, code), + INVALID_CONTRACT_ID); } } return builder.type(MessageFrame.Type.MESSAGE_CALL) @@ -204,4 +208,15 @@ private boolean contractMustBePresent( final var possiblyGrandFatheredEntityNumOf = contractID.hasContractNum() ? contractID.contractNum() : null; return !featureFlags.isAllowCallsToNonContractAccountsEnabled(config, possiblyGrandFatheredEntityNumOf); } + + private boolean emptyCodePossiblyAllowed( + @NonNull final Configuration config, + @NonNull final FeatureFlags featureFlags, + @NonNull final ContractID contractId, + @NonNull final HederaEvmTransaction transaction, + @NonNull final Code code) { + return !(contractMustBePresent(config, featureFlags, contractId) && code.equals(CodeV0.EMPTY_CODE)) + || transaction.isEthereumTransaction() + || transaction.hasValue(); + } } diff --git a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/handlers/ContractCallHandler.java b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/handlers/ContractCallHandler.java index ff14ddbe7b92..4ba1af5669e4 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/handlers/ContractCallHandler.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/handlers/ContractCallHandler.java @@ -24,6 +24,7 @@ import com.hedera.hapi.node.base.HederaFunctionality; import com.hedera.hapi.node.base.SubType; import com.hedera.node.app.hapi.utils.fee.SmartContractFeeBuilder; +import com.hedera.node.app.service.contract.impl.exec.CallOutcome.ExternalizeAbortResult; import com.hedera.node.app.service.contract.impl.exec.TransactionComponent; import com.hedera.node.app.service.contract.impl.records.ContractCallRecordBuilder; import com.hedera.node.app.service.mono.fees.calculation.contract.txns.ContractCallResourceUsage; @@ -59,7 +60,9 @@ public void handle(@NonNull final HandleContext context) throws HandleException final var outcome = component.contextTransactionProcessor().call(); // Assemble the appropriate top-level record for the result - outcome.addCallDetailsTo(context.recordBuilder(ContractCallRecordBuilder.class)); + // (FUTURE) Remove ExternalizeAbortResult.NO, this is only + // for mono-service fidelity during differential testing + outcome.addCallDetailsTo(context.recordBuilder(ContractCallRecordBuilder.class), ExternalizeAbortResult.NO); throwIfUnsuccessful(outcome.status()); } diff --git a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/handlers/ContractCreateHandler.java b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/handlers/ContractCreateHandler.java index b12995319765..14f88444ac03 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/handlers/ContractCreateHandler.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/handlers/ContractCreateHandler.java @@ -26,6 +26,7 @@ import com.hedera.hapi.node.base.HederaFunctionality; import com.hedera.hapi.node.base.SubType; import com.hedera.node.app.hapi.utils.fee.SmartContractFeeBuilder; +import com.hedera.node.app.service.contract.impl.exec.CallOutcome.ExternalizeAbortResult; import com.hedera.node.app.service.contract.impl.exec.TransactionComponent; import com.hedera.node.app.service.contract.impl.records.ContractCreateRecordBuilder; import com.hedera.node.app.service.mono.fees.calculation.contract.txns.ContractCreateResourceUsage; @@ -64,7 +65,7 @@ public void handle(@NonNull final HandleContext context) throws HandleException final var outcome = component.contextTransactionProcessor().call(); // Assemble the appropriate top-level record for the result - outcome.addCreateDetailsTo(context.recordBuilder(ContractCreateRecordBuilder.class)); + outcome.addCreateDetailsTo(context.recordBuilder(ContractCreateRecordBuilder.class), ExternalizeAbortResult.NO); throwIfUnsuccessful(outcome.status()); } diff --git a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/handlers/EthereumTransactionHandler.java b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/handlers/EthereumTransactionHandler.java index cb70202eb3ac..265e3dbbd3ea 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/handlers/EthereumTransactionHandler.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/handlers/EthereumTransactionHandler.java @@ -29,6 +29,7 @@ import com.hedera.hapi.node.contract.EthereumTransactionBody; import com.hedera.node.app.hapi.utils.ethereum.EthTxSigs; import com.hedera.node.app.hapi.utils.fee.SmartContractFeeBuilder; +import com.hedera.node.app.service.contract.impl.exec.CallOutcome.ExternalizeAbortResult; import com.hedera.node.app.service.contract.impl.exec.TransactionComponent; import com.hedera.node.app.service.contract.impl.infra.EthTxSigsCache; import com.hedera.node.app.service.contract.impl.infra.EthereumCallDataHydration; @@ -119,9 +120,11 @@ public void handle(@NonNull final HandleContext context) throws HandleException context.recordBuilder(EthereumTransactionRecordBuilder.class) .ethereumHash(Bytes.wrap(ethTxData.getEthereumHash())); if (ethTxData.hasToAddress()) { - outcome.addCallDetailsTo(context.recordBuilder(ContractCallRecordBuilder.class)); + outcome.addCallDetailsTo( + context.recordBuilder(ContractCallRecordBuilder.class), ExternalizeAbortResult.YES); } else { - outcome.addCreateDetailsTo(context.recordBuilder(ContractCreateRecordBuilder.class)); + outcome.addCreateDetailsTo( + context.recordBuilder(ContractCreateRecordBuilder.class), ExternalizeAbortResult.YES); } throwIfUnsuccessful(outcome.status()); diff --git a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/hevm/HederaEvmTransactionResult.java b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/hevm/HederaEvmTransactionResult.java index 66b2337822c4..ea0bfda39799 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/hevm/HederaEvmTransactionResult.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/hevm/HederaEvmTransactionResult.java @@ -69,7 +69,8 @@ public record HederaEvmTransactionResult( @NonNull List logs, @Nullable ContractStateChanges stateChanges, @Nullable ResponseCodeEnum finalStatus, - @Nullable ContractActions actions) { + @Nullable ContractActions actions, + @Nullable Long signerNonce) { public HederaEvmTransactionResult { requireNonNull(senderId); requireNonNull(output); @@ -222,7 +223,8 @@ public static HederaEvmTransactionResult successFrom( requireNonNull(logs), stateChanges, null, - actions); + actions, + null); } /** @@ -256,7 +258,8 @@ public static HederaEvmTransactionResult failureFrom( Collections.emptyList(), maybeReadOnlyStateChangesFrom(frame), null, - maybeActionsFrom(frame, tracer)); + maybeActionsFrom(frame, tracer), + null); } /** @@ -285,6 +288,7 @@ public static HederaEvmTransactionResult resourceExhaustionFrom( Collections.emptyList(), null, null, + null, null); } @@ -292,22 +296,21 @@ public static HederaEvmTransactionResult resourceExhaustionFrom( * Create a result for a transaction that failed due to validation exceptions. * * @param senderId the sender of the EVM transaction - * @param transaction the transaction object + * @param recipientId the recipient of the EVM transaction * @param reason the reason for the failure * @return the result */ public static HederaEvmTransactionResult fromAborted( @NonNull final AccountID senderId, - @NonNull final HederaEvmTransaction transaction, + @Nullable ContractID recipientId, @NonNull final ResponseCodeEnum reason) { requireNonNull(senderId); - requireNonNull(transaction); requireNonNull(reason); return new HederaEvmTransactionResult( 0, 0, senderId, - transaction.contractId(), + recipientId, null, Bytes.EMPTY, null, @@ -315,6 +318,7 @@ public static HederaEvmTransactionResult fromAborted( List.of(), null, reason, + null, null); } @@ -331,7 +335,10 @@ private ContractFunctionResult withMaybeEthFields( private ContractFunctionResult.Builder asUncommittedFailureResult(@NonNull final String errorMessage) { requireNonNull(errorMessage); - return ContractFunctionResult.newBuilder().gasUsed(gasUsed).errorMessage(errorMessage); + return ContractFunctionResult.newBuilder() + .gasUsed(gasUsed) + .errorMessage(errorMessage) + .signerNonce(signerNonce); } private ContractFunctionResult.Builder asSuccessResultForCommitted(@NonNull final RootProxyWorldUpdater updater) { @@ -345,7 +352,8 @@ private ContractFunctionResult.Builder asSuccessResultForCommitted(@NonNull fina .logInfo(pbjLogsFrom(logs)) .evmAddress(recipientEvmAddressIfCreatedIn(createdIds)) .contractNonces(updater.getUpdatedContractNonces()) - .errorMessage(null); + .errorMessage(null) + .signerNonce(signerNonce); } private ContractFunctionResult asSuccessResultForQuery() { @@ -356,6 +364,7 @@ private ContractFunctionResult asSuccessResultForQuery() { .contractID(recipientId) .logInfo(pbjLogsFrom(logs)) .errorMessage(null) + .signerNonce(signerNonce) .build(); } @@ -404,4 +413,21 @@ private static String errorMessageForRevert(@NonNull final Bytes reason) { return asPbjStateChanges(accesses); } } + + public HederaEvmTransactionResult withSignerNonce(@Nullable final Long signerNonce) { + return new HederaEvmTransactionResult( + gasUsed, + gasPrice, + senderId, + recipientId, + recipientEvmAddress, + output, + haltReason, + revertReason, + logs, + stateChanges, + finalStatus, + actions, + signerNonce); + } } diff --git a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/infra/HevmTransactionFactory.java b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/infra/HevmTransactionFactory.java index d74658f66bfc..b8f2a7ebffc4 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/infra/HevmTransactionFactory.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/infra/HevmTransactionFactory.java @@ -35,7 +35,6 @@ import static com.hedera.hapi.node.base.ResponseCodeEnum.SERIALIZATION_FAILED; import static com.hedera.hapi.node.base.ResponseCodeEnum.WRONG_CHAIN_ID; import static com.hedera.node.app.service.contract.impl.hevm.HederaEvmTransaction.NOT_APPLICABLE; -import static com.hedera.node.app.service.contract.impl.utils.ConversionUtils.asChainIdBytes; import static com.hedera.node.app.service.contract.impl.utils.ConversionUtils.asPriorityId; import static com.hedera.node.app.service.contract.impl.utils.SynthTxnUtils.synthEthTxCreation; import static com.hedera.node.app.spi.key.KeyUtils.isEmpty; @@ -45,6 +44,7 @@ import static java.util.Objects.requireNonNull; import static org.apache.tuweni.bytes.Bytes.EMPTY; +import com.esaulpaugh.headlong.util.Integers; import com.hedera.hapi.node.base.AccountID; import com.hedera.hapi.node.base.ContractID; import com.hedera.hapi.node.base.Duration; @@ -278,7 +278,7 @@ public HederaEvmTransaction fromContractTxException( throw new HandleException(hydratedEthTxData.status()); } final var ethTxData = requireNonNull(hydratedEthTxData.ethTxData()); - validateTrue(ethTxData.matchesChainId(asChainIdBytes(contractsConfig.chainId())), WRONG_CHAIN_ID); + validateTrue(ethTxData.matchesChainId(Integers.toBytes(contractsConfig.chainId())), WRONG_CHAIN_ID); validateTrue(ethTxData.hasToAddress() || ethTxData.hasCallData(), INVALID_ETHEREUM_TRANSACTION); return ethTxData; } diff --git a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/records/ContractCallRecordBuilder.java b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/records/ContractCallRecordBuilder.java index cf03f2d03547..f5e15a7cf5e1 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/records/ContractCallRecordBuilder.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/records/ContractCallRecordBuilder.java @@ -73,6 +73,13 @@ public interface ContractCallRecordBuilder extends ContractOperationRecordBuilde @NonNull ContractCallRecordBuilder contractCallResult(@Nullable ContractFunctionResult result); + /** + * Returns the in-progress {@link ContractFunctionResult}. + * + * @return the in-progress {@link ContractFunctionResult} + */ + public ContractFunctionResult contractFunctionResult(); + /** * Tracks the transaction contained in child records resulting from the contract call. * diff --git a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/records/ContractCreateRecordBuilder.java b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/records/ContractCreateRecordBuilder.java index 5ef24c5280a2..16186ad9192b 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/records/ContractCreateRecordBuilder.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/records/ContractCreateRecordBuilder.java @@ -16,6 +16,7 @@ package com.hedera.node.app.service.contract.impl.records; +import com.hedera.hapi.node.base.AccountID; import com.hedera.hapi.node.base.ContractID; import com.hedera.hapi.node.base.ResponseCodeEnum; import com.hedera.hapi.node.base.Transaction; @@ -47,6 +48,14 @@ public interface ContractCreateRecordBuilder extends SingleTransactionRecordBuil @NonNull ContractCreateRecordBuilder contractID(@Nullable ContractID contractId); + /** + * Tracks the account id created by a successful top-level contract creation. + * @param accountID the {@link AccountID} of the new top-level contract + * @return this builder + */ + @NonNull + ContractCreateRecordBuilder accountID(@Nullable AccountID accountID); + /** * Tracks the result of a top-level contract creation. * diff --git a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/state/RootProxyWorldUpdater.java b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/state/RootProxyWorldUpdater.java index aad418beffa9..998f20165a72 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/state/RootProxyWorldUpdater.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/state/RootProxyWorldUpdater.java @@ -16,6 +16,10 @@ package com.hedera.node.app.service.contract.impl.state; +import static com.hedera.hapi.node.base.HederaFunctionality.CRYPTO_CREATE; +import static com.hedera.hapi.node.base.ResponseCodeEnum.CONSENSUS_GAS_EXHAUSTED; +import static com.hedera.node.app.spi.workflows.ResourceExhaustedException.validateResource; + import com.hedera.hapi.node.base.ContractID; import com.hedera.hapi.node.contract.ContractNonceInfo; import com.hedera.node.app.service.contract.impl.annotations.TransactionScope; @@ -23,6 +27,7 @@ import com.hedera.node.app.service.contract.impl.infra.IterableStorageManager; import com.hedera.node.app.service.contract.impl.infra.RentCalculator; import com.hedera.node.app.service.contract.impl.infra.StorageSizeValidator; +import com.hedera.node.app.spi.workflows.HandleContext; import com.hedera.node.app.spi.workflows.ResourceExhaustedException; import com.hedera.node.config.data.ContractsConfig; import edu.umd.cs.findbugs.annotations.NonNull; @@ -44,6 +49,7 @@ public class RootProxyWorldUpdater extends ProxyWorldUpdater { private final ContractsConfig contractsConfig; private final IterableStorageManager storageManager; private final StorageSizeValidator storageSizeValidator; + private final HandleContext context; private boolean committed = false; private List createdContractIds; @@ -56,12 +62,14 @@ public RootProxyWorldUpdater( @NonNull final EvmFrameStateFactory evmFrameStateFactory, @NonNull final RentCalculator rentCalculator, @NonNull final IterableStorageManager storageManager, - @NonNull final StorageSizeValidator storageSizeValidator) { + @NonNull final StorageSizeValidator storageSizeValidator, + @NonNull final HandleContext context) { super(enhancement, evmFrameStateFactory, null); this.contractsConfig = Objects.requireNonNull(contractsConfig); this.storageManager = Objects.requireNonNull(storageManager); this.rentCalculator = Objects.requireNonNull(rentCalculator); this.storageSizeValidator = Objects.requireNonNull(storageSizeValidator); + this.context = context; } /** @@ -96,6 +104,15 @@ public void commit() { final var contractChangeSummary = enhancement.operations().summarizeContractChanges(); createdContractIds = contractChangeSummary.newContractIds(); + if (contractsConfig.enforceCreationThrottle()) { + final var creationCapacityIsAvailable = + !context.shouldThrottleNOfUnscaled(createdContractIds.size(), CRYPTO_CREATE); + validateResource(creationCapacityIsAvailable, CONSENSUS_GAS_EXHAUSTED); + } + + final var childThrottleIsAvailable = context.hasThrottleCapacityForChildTransactions(); + validateResource(childThrottleIsAvailable, CONSENSUS_GAS_EXHAUSTED); + // If nonces externalization is enabled, we need to capture the updated nonces if (contractsConfig.noncesExternalizationEnabled()) { updatedContractNonces = contractChangeSummary.updatedContractNonces(); diff --git a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/utils/ConversionUtils.java b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/utils/ConversionUtils.java index 69418517b7bf..3a24dcd65fcd 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/utils/ConversionUtils.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/main/java/com/hedera/node/app/service/contract/impl/utils/ConversionUtils.java @@ -238,19 +238,6 @@ public static List pbjLogsFrom(@NonNull final List logs) { return pbjLogs; } - /** - * Returns the 2-byte chain id as a byte array. - * - * @param chainId the chain id - * @return the chain id as a byte array - */ - public static byte[] asChainIdBytes(final int chainId) { - final var bytes = new byte[2]; - bytes[0] = (byte) (chainId >> 8); - bytes[1] = (byte) chainId; - return bytes; - } - /** * Wraps the first 32 bytes of the given SHA-384 {@link com.swirlds.common.crypto.Hash hash} in a Besu {@link Hash}. * diff --git a/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/hts/transfer/ClassicTransfersDecoderTest.java b/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/hts/transfer/ClassicTransfersDecoderTest.java new file mode 100644 index 000000000000..9eb9023bc026 --- /dev/null +++ b/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/exec/systemcontracts/hts/transfer/ClassicTransfersDecoderTest.java @@ -0,0 +1,103 @@ +/* + * Copyright (C) 2024 Hedera Hashgraph, LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.hedera.node.app.service.contract.impl.exec.systemcontracts.hts.transfer; + +import com.esaulpaugh.headlong.abi.Address; +import com.hedera.hapi.node.base.AccountAmount; +import com.hedera.hapi.node.base.AccountID; +import com.hedera.hapi.node.transaction.TransactionBody; +import com.hedera.node.app.service.contract.impl.exec.systemcontracts.hts.AddressIdConverter; +import java.math.BigInteger; +import java.util.List; +import org.assertj.core.api.Assertions; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.BDDMockito; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; + +@ExtendWith(MockitoExtension.class) +class ClassicTransfersDecoderTest { + public static final int ACCOUNT_ID_41 = 41; + public static final int ACCOUNT_ID_42 = 42; + private static final Address ACCT_ADDR_1 = addressFromNum(ACCOUNT_ID_41); + private static final Address ACCT_ADDR_2 = addressFromNum(ACCOUNT_ID_42); + private static final Address TOKEN_ADDR_10 = addressFromNum(10); + + @Mock + private AddressIdConverter converter; + + private ClassicTransfersDecoder subject; + + @BeforeEach + void setUp() { + subject = new ClassicTransfersDecoder(); + } + + @Test + void decodeTransferTokenHasDebitFirst() { + final var totalToTransfer = 50L; + BDDMockito.given(converter.convert(ACCT_ADDR_1)) + .willReturn(AccountID.newBuilder().accountNum(ACCOUNT_ID_41).build()); + BDDMockito.given(converter.convertCredit(ACCT_ADDR_2)) + .willReturn(AccountID.newBuilder().accountNum(ACCOUNT_ID_42).build()); + final var encodedInput = ClassicTransfersTranslator.TRANSFER_TOKEN.encodeCallWithArgs( + TOKEN_ADDR_10, ACCT_ADDR_1, ACCT_ADDR_2, totalToTransfer); + + final var result = subject.decodeTransferToken(encodedInput.array(), converter); + final var amounts = unwrapTokenAmounts(result); + Assertions.assertThat(amounts).hasSize(2); + final var firstEntry = amounts.getFirst(); + Assertions.assertThat(firstEntry.accountID().accountNum()).isEqualTo(ACCOUNT_ID_41); + Assertions.assertThat(firstEntry.amount()).isEqualTo(-totalToTransfer); + final var secondEntry = amounts.get(1); + Assertions.assertThat(secondEntry.accountID().accountNum()).isEqualTo(ACCOUNT_ID_42); + Assertions.assertThat(secondEntry.amount()).isEqualTo(totalToTransfer); + } + + @Test + void decodeHrcTransferFromHasCreditFirst() { + final var totalToTransfer = 25L; + BDDMockito.given(converter.convert(ACCT_ADDR_2)) + .willReturn(AccountID.newBuilder().accountNum(ACCOUNT_ID_42).build()); + BDDMockito.given(converter.convertCredit(ACCT_ADDR_1)) + .willReturn(AccountID.newBuilder().accountNum(ACCOUNT_ID_41).build()); + final var encodedInput = ClassicTransfersTranslator.TRANSFER_FROM.encodeCallWithArgs( + TOKEN_ADDR_10, ACCT_ADDR_2, ACCT_ADDR_1, BigInteger.valueOf(totalToTransfer)); + + final var result = subject.decodeHrcTransferFrom(encodedInput.array(), converter); + final var amounts = unwrapTokenAmounts(result); + Assertions.assertThat(amounts).hasSize(2); + final var firstEntry = amounts.getFirst(); + Assertions.assertThat(firstEntry.accountID().accountNum()).isEqualTo(ACCOUNT_ID_41); + Assertions.assertThat(firstEntry.amount()).isEqualTo(totalToTransfer); + final var secondEntry = amounts.get(1); + Assertions.assertThat(secondEntry.accountID().accountNum()).isEqualTo(ACCOUNT_ID_42); + Assertions.assertThat(secondEntry.amount()).isEqualTo(-totalToTransfer); + } + + private static List unwrapTokenAmounts(final TransactionBody body) { + final var tokenTransfers = body.cryptoTransfer().tokenTransfers(); + // We shouldn't ever have more than one token transfer list + return tokenTransfers.getFirst().transfers(); + } + + private static Address addressFromNum(final long accountId) { + return Address.wrap(Address.toChecksumAddress(BigInteger.valueOf(accountId))); + } +} diff --git a/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/TestHelpers.java b/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/TestHelpers.java index 305707f353bd..9bedfc532e94 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/TestHelpers.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/TestHelpers.java @@ -479,6 +479,7 @@ public class TestHelpers { public static final PrecompileContractResult PRECOMPILE_CONTRACT_FAILED_RESULT = PrecompiledContract.PrecompileContractResult.halt( org.apache.tuweni.bytes.Bytes.EMPTY, Optional.of(INVALID_OPERATION)); + public static final Long SIGNER_NONCE = 1L; public static final HederaEvmTransaction HEVM_CREATION = new HederaEvmTransaction( SENDER_ID, @@ -518,6 +519,19 @@ public class TestHelpers { null, null); + public static final HederaEvmTransactionResult SUCCESS_RESULT_WITH_SIGNER_NONCE = + HederaEvmTransactionResult.successFrom( + GAS_LIMIT / 2, + Wei.of(NETWORK_GAS_PRICE), + SENDER_ID, + CALLED_CONTRACT_ID, + CALLED_CONTRACT_EVM_ADDRESS, + pbjToTuweniBytes(CALL_DATA), + List.of(BESU_LOG), + null, + null) + .withSignerNonce(SIGNER_NONCE); + public static final HederaEvmTransactionResult HALT_RESULT = new HederaEvmTransactionResult( GAS_LIMIT / 2, NETWORK_GAS_PRICE, @@ -530,6 +544,7 @@ public class TestHelpers { Collections.emptyList(), null, null, + null, null); public static final StorageAccesses ONE_STORAGE_ACCESSES = new StorageAccesses( @@ -597,12 +612,16 @@ public class TestHelpers { ContractID.newBuilder().contractNum(1).build(), Bytes.EMPTY, true, UseTopLevelSigs.NO); public static final AccountID OWNER_ID = AccountID.newBuilder().accountNum(121212L).build(); + public static final Account OWNER_ACCOUNT = + Account.newBuilder().accountId(OWNER_ID).build(); public static final Bytes OWNER_ADDRESS = Bytes.fromHex("a213624b8b83a724438159ba7c0d333a2b6b3990"); public static final com.esaulpaugh.headlong.abi.Address OWNER_HEADLONG_ADDRESS = asHeadlongAddress(OWNER_ADDRESS.toByteArray()); public static final Address OWNER_BESU_ADDRESS = pbjToBesuAddress(OWNER_ADDRESS); public static final AccountID UNAUTHORIZED_SPENDER_ID = AccountID.newBuilder().accountNum(999999L).build(); + public static final Account UNAUTHORIZED_SPENDER_ACCOUNT = + Account.newBuilder().accountId(UNAUTHORIZED_SPENDER_ID).build(); public static final AccountID REVOKE_APPROVAL_SPENDER_ID = AccountID.newBuilder().accountNum(0L).build(); public static final Bytes UNAUTHORIZED_SPENDER_ADDRESS = Bytes.fromHex("b284224b8b83a724438cc3cc7c0d333a2b6b3222"); diff --git a/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/CallOutcomeTest.java b/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/CallOutcomeTest.java index bd0b12f55fd5..808bdc912e6a 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/CallOutcomeTest.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/CallOutcomeTest.java @@ -52,18 +52,26 @@ class CallOutcomeTest { private ContractCreateRecordBuilder contractCreateRecordBuilder; @Test - void onlySetsCallResultIfNotAborted() { + void doesNotSetAbortCallResultIfNotRequested() { final var abortedCall = new CallOutcome(ContractFunctionResult.DEFAULT, INSUFFICIENT_GAS, CALLED_CONTRACT_ID, 123L, null, null); - abortedCall.addCallDetailsTo(contractCallRecordBuilder); + abortedCall.addCallDetailsTo(contractCallRecordBuilder, CallOutcome.ExternalizeAbortResult.NO); verify(contractCallRecordBuilder, never()).contractCallResult(any()); } + @Test + void setsAbortCallResultIfRequested() { + final var abortedCall = + new CallOutcome(ContractFunctionResult.DEFAULT, INSUFFICIENT_GAS, CALLED_CONTRACT_ID, 123L, null, null); + abortedCall.addCallDetailsTo(contractCallRecordBuilder, CallOutcome.ExternalizeAbortResult.YES); + verify(contractCallRecordBuilder).contractCallResult(any()); + } + @Test void onlySetsCreateResultIfNotAborted() { final var abortedCreate = new CallOutcome(ContractFunctionResult.DEFAULT, INSUFFICIENT_GAS, null, 123L, null, null); - abortedCreate.addCreateDetailsTo(contractCreateRecordBuilder); + abortedCreate.addCreateDetailsTo(contractCreateRecordBuilder, CallOutcome.ExternalizeAbortResult.NO); verify(contractCreateRecordBuilder, never()).contractCreateResult(any()); } diff --git a/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/ContextTransactionProcessorTest.java b/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/ContextTransactionProcessorTest.java index d5d6ea40c162..c718d5f6e10d 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/ContextTransactionProcessorTest.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/ContextTransactionProcessorTest.java @@ -20,11 +20,13 @@ import static com.hedera.hapi.node.base.ResponseCodeEnum.INVALID_ETHEREUM_TRANSACTION; import static com.hedera.hapi.node.base.ResponseCodeEnum.SUCCESS; import static com.hedera.node.app.service.contract.impl.hevm.HederaEvmVersion.VERSION_046; +import static com.hedera.node.app.service.contract.impl.test.TestHelpers.ETH_DATA_WITHOUT_TO_ADDRESS; import static com.hedera.node.app.service.contract.impl.test.TestHelpers.ETH_DATA_WITH_TO_ADDRESS; import static com.hedera.node.app.service.contract.impl.test.TestHelpers.HEVM_CREATION; import static com.hedera.node.app.service.contract.impl.test.TestHelpers.HEVM_Exception; import static com.hedera.node.app.service.contract.impl.test.TestHelpers.SENDER_ID; import static com.hedera.node.app.service.contract.impl.test.TestHelpers.SUCCESS_RESULT; +import static com.hedera.node.app.service.contract.impl.test.TestHelpers.SUCCESS_RESULT_WITH_SIGNER_NONCE; import static com.hedera.node.app.service.contract.impl.test.TestHelpers.assertFailsWith; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.ArgumentMatchers.any; @@ -43,6 +45,7 @@ import com.hedera.node.app.service.contract.impl.hevm.HederaWorldUpdater; import com.hedera.node.app.service.contract.impl.hevm.HydratedEthTxData; import com.hedera.node.app.service.contract.impl.infra.HevmTransactionFactory; +import com.hedera.node.app.service.contract.impl.state.HederaEvmAccount; import com.hedera.node.app.service.contract.impl.state.RootProxyWorldUpdater; import com.hedera.node.app.spi.workflows.HandleContext; import com.hedera.node.app.spi.workflows.HandleException; @@ -90,12 +93,16 @@ class ContextTransactionProcessorTest { @Mock private TransactionBody transactionBody; + @Mock + private HederaEvmAccount senderAccount; + @Test void callsComponentInfraAsExpectedForValidEthTx() { final var contractsConfig = CONFIGURATION.getConfigData(ContractsConfig.class); final var processors = Map.of(VERSION_046, processor); + final var hydratedEthTxData = HydratedEthTxData.successFrom(ETH_DATA_WITH_TO_ADDRESS); final var subject = new ContextTransactionProcessor( - HydratedEthTxData.successFrom(ETH_DATA_WITH_TO_ADDRESS), + hydratedEthTxData, context, contractsConfig, CONFIGURATION, @@ -107,16 +114,61 @@ void callsComponentInfraAsExpectedForValidEthTx() { processors, customGasCharging); + givenSenderAccount(); given(context.body()).willReturn(TransactionBody.DEFAULT); given(hevmTransactionFactory.fromHapiTransaction(TransactionBody.DEFAULT)) .willReturn(HEVM_CREATION); given(processor.processTransaction( HEVM_CREATION, rootProxyWorldUpdater, feesOnlyUpdater, hederaEvmContext, tracer, CONFIGURATION)) - .willReturn(SUCCESS_RESULT); + .willReturn(SUCCESS_RESULT_WITH_SIGNER_NONCE); - final var protoResult = SUCCESS_RESULT.asProtoResultOf(ETH_DATA_WITH_TO_ADDRESS, rootProxyWorldUpdater); + final var protoResult = + SUCCESS_RESULT_WITH_SIGNER_NONCE.asProtoResultOf(ETH_DATA_WITH_TO_ADDRESS, rootProxyWorldUpdater); final var expectedResult = new CallOutcome( - protoResult, SUCCESS, HEVM_CREATION.contractId(), SUCCESS_RESULT.gasPrice(), null, null); + protoResult, + SUCCESS, + HEVM_CREATION.contractId(), + SUCCESS_RESULT_WITH_SIGNER_NONCE.gasPrice(), + null, + null); + assertEquals(expectedResult, subject.call()); + } + + @Test + void callsComponentInfraAsExpectedForValidEthTxWithoutTo() { + final var contractsConfig = CONFIGURATION.getConfigData(ContractsConfig.class); + final var processors = Map.of(VERSION_046, processor); + final var hydratedEthTxData = HydratedEthTxData.successFrom(ETH_DATA_WITHOUT_TO_ADDRESS); + final var subject = new ContextTransactionProcessor( + hydratedEthTxData, + context, + contractsConfig, + CONFIGURATION, + hederaEvmContext, + tracer, + rootProxyWorldUpdater, + hevmTransactionFactory, + feesOnlyUpdater, + processors, + customGasCharging); + + givenSenderAccount(); + given(context.body()).willReturn(TransactionBody.DEFAULT); + given(hevmTransactionFactory.fromHapiTransaction(TransactionBody.DEFAULT)) + .willReturn(HEVM_CREATION); + given(processor.processTransaction( + HEVM_CREATION, rootProxyWorldUpdater, feesOnlyUpdater, hederaEvmContext, tracer, CONFIGURATION)) + .willReturn(SUCCESS_RESULT_WITH_SIGNER_NONCE); + + final var protoResult = + SUCCESS_RESULT_WITH_SIGNER_NONCE.asProtoResultOf(ETH_DATA_WITHOUT_TO_ADDRESS, rootProxyWorldUpdater); + final var expectedResult = new CallOutcome( + protoResult, + SUCCESS, + HEVM_CREATION.contractId(), + SUCCESS_RESULT_WITH_SIGNER_NONCE.gasPrice(), + null, + null); assertEquals(expectedResult, subject.call()); } @@ -285,4 +337,9 @@ void failsImmediatelyIfEthTxInvalid() { assertFailsWith(INVALID_ETHEREUM_TRANSACTION, subject::call); } + + void givenSenderAccount() { + given(rootProxyWorldUpdater.getHederaAccount(SENDER_ID)).willReturn(senderAccount); + given(senderAccount.getNonce()).willReturn(1L); + } } diff --git a/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/TransactionProcessorTest.java b/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/TransactionProcessorTest.java index 74721c619def..345fe6655b6f 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/TransactionProcessorTest.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/TransactionProcessorTest.java @@ -75,6 +75,7 @@ import com.hedera.node.app.service.contract.impl.hevm.HederaEvmTransaction; import com.hedera.node.app.service.contract.impl.hevm.HederaEvmTransactionResult; import com.hedera.node.app.service.contract.impl.hevm.HederaWorldUpdater; +import com.hedera.node.app.service.contract.impl.records.ContractOperationRecordBuilder; import com.hedera.node.app.service.contract.impl.state.HederaEvmAccount; import com.hedera.node.app.service.contract.impl.utils.ConversionUtils; import com.hedera.node.app.spi.workflows.ResourceExhaustedException; @@ -144,6 +145,9 @@ class TransactionProcessorTest { @Mock private FeatureFlags featureFlags; + @Mock + private ContractOperationRecordBuilder recordBuilder; + private TransactionProcessor subject; @BeforeEach @@ -424,7 +428,6 @@ void ethCreateHappyPathAsExpected() { inOrder.verify(worldUpdater) .setupAliasedTopLevelCreate(ContractCreateTransactionBody.DEFAULT, expectedToAddress); - inOrder.verify(senderAccount).incrementNonce(); inOrder.verify(gasCharging).chargeForGas(senderAccount, relayerAccount, context, worldUpdater, transaction); inOrder.verify(frameBuilder) .buildInitialFrameWith( @@ -533,7 +536,7 @@ void ethCallHappyPathAsExpected() { givenRelayerAccount(); givenReceiverAccount(); - final var context = wellKnownContextWith(blocks, tinybarValues, systemContractGasCalculator); + final var context = wellKnownContextWith(blocks, tinybarValues, systemContractGasCalculator, recordBuilder); final var transaction = wellKnownRelayedHapiCall(0); given(gasCharging.chargeForGas(senderAccount, relayerAccount, context, worldUpdater, transaction)) @@ -564,7 +567,6 @@ void ethCallHappyPathAsExpected() { final var result = subject.processTransaction(transaction, worldUpdater, () -> feesOnlyUpdater, context, tracer, config); - inOrder.verify(senderAccount).incrementNonce(); inOrder.verify(gasCharging).chargeForGas(senderAccount, relayerAccount, context, worldUpdater, transaction); inOrder.verify(frameBuilder) .buildInitialFrameWith( @@ -607,7 +609,7 @@ void ethCallHappyPathAsExpectedAndCanCallNotExistingFeatureFlagOn() { givenRelayerAccount(); givenReceiverAccount(); - final var context = wellKnownContextWith(blocks, tinybarValues, systemContractGasCalculator); + final var context = wellKnownContextWith(blocks, tinybarValues, systemContractGasCalculator, recordBuilder); final var transaction = wellKnownRelayedHapiCall(0); given(gasCharging.chargeForGas(senderAccount, relayerAccount, context, worldUpdater, transaction)) @@ -641,7 +643,6 @@ void ethCallHappyPathAsExpectedAndCanCallNotExistingFeatureFlagOn() { final var result = subject.processTransaction(transaction, worldUpdater, () -> feesOnlyUpdater, context, tracer, config); - inOrder.verify(senderAccount).incrementNonce(); inOrder.verify(gasCharging).chargeForGas(senderAccount, relayerAccount, context, worldUpdater, transaction); inOrder.verify(frameBuilder) .buildInitialFrameWith( @@ -682,7 +683,7 @@ void ethCallAsExpectedWithResourceExhaustionInCommit() { givenReceiverAccount(); givenFeeOnlyParties(); - final var context = wellKnownContextWith(blocks, tinybarValues, systemContractGasCalculator); + final var context = wellKnownContextWith(blocks, tinybarValues, systemContractGasCalculator, recordBuilder); final var transaction = wellKnownRelayedHapiCall(0); given(gasCharging.chargeForGas(senderAccount, relayerAccount, context, worldUpdater, transaction)) diff --git a/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/gas/CustomGasChargingTest.java b/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/gas/CustomGasChargingTest.java index 9ab0f63ad3b9..1cdff91db280 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/gas/CustomGasChargingTest.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/gas/CustomGasChargingTest.java @@ -44,6 +44,7 @@ import com.hedera.node.app.service.contract.impl.hevm.HederaEvmBlocks; import com.hedera.node.app.service.contract.impl.hevm.HederaEvmContext; import com.hedera.node.app.service.contract.impl.hevm.HederaWorldUpdater; +import com.hedera.node.app.service.contract.impl.records.ContractOperationRecordBuilder; import com.hedera.node.app.service.contract.impl.state.HederaEvmAccount; import com.hedera.node.app.service.contract.impl.test.TestHelpers; import org.hyperledger.besu.datatypes.Wei; @@ -79,6 +80,9 @@ class CustomGasChargingTest { private CustomGasCharging subject; + @Mock + private ContractOperationRecordBuilder recordBuilder; + @BeforeEach void setUp() { subject = new CustomGasCharging(gasCalculator); @@ -266,7 +270,7 @@ void chargesRelayerOnlyIfUserOfferedPriceIsZero() { final var chargingResult = subject.chargeForGas( sender, relayer, - wellKnownContextWith(blocks, tinybarValues, systemContractGasCalculator), + wellKnownContextWith(blocks, tinybarValues, systemContractGasCalculator, recordBuilder), worldUpdater, transaction); assertEquals(gasCost, chargingResult.relayerAllowanceUsed()); @@ -285,7 +289,7 @@ void chargesSenderOnlyIfUserOfferedPriceIsAtLeastNetworkPrice() { final var chargingResult = subject.chargeForGas( sender, relayer, - wellKnownContextWith(blocks, tinybarValues, systemContractGasCalculator), + wellKnownContextWith(blocks, tinybarValues, systemContractGasCalculator, recordBuilder), worldUpdater, transaction); assertEquals(0, chargingResult.relayerAllowanceUsed()); @@ -370,7 +374,7 @@ void chargesSenderAndRelayerIfBothSolventAndWilling() { final var chargingResult = subject.chargeForGas( sender, relayer, - wellKnownContextWith(blocks, tinybarValues, systemContractGasCalculator), + wellKnownContextWith(blocks, tinybarValues, systemContractGasCalculator, recordBuilder), worldUpdater, transaction); assertEquals(relayerGasCost, chargingResult.relayerAllowanceUsed()); diff --git a/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/operations/CustomSelfDestructOperationTest.java b/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/operations/CustomSelfDestructOperationTest.java index 6ddb8c27766d..24735a76af52 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/operations/CustomSelfDestructOperationTest.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/operations/CustomSelfDestructOperationTest.java @@ -158,8 +158,6 @@ private void givenRunnableSelfDestruct() { given(frame.getRecipientAddress()).willReturn(TBD); given(addressChecks.isPresent(BENEFICIARY, frame)).willReturn(true); given(frame.getWorldUpdater()).willReturn(proxyWorldUpdater); - given(proxyWorldUpdater.tryTrackingSelfDestructBeneficiary(TBD, BENEFICIARY, frame)) - .willReturn(Optional.empty()); given(proxyWorldUpdater.get(TBD)).willReturn(account); given(account.getBalance()).willReturn(INHERITANCE); } diff --git a/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/systemcontracts/FullResultTest.java b/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/systemcontracts/FullResultTest.java index 4627be6257f9..062ad8b41812 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/systemcontracts/FullResultTest.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/systemcontracts/FullResultTest.java @@ -16,14 +16,19 @@ package com.hedera.node.app.service.contract.impl.test.exec.systemcontracts; +import static com.hedera.hapi.node.base.ResponseCodeEnum.INSUFFICIENT_GAS; +import static com.hedera.node.app.service.contract.impl.utils.ConversionUtils.tuweniToPbjBytes; import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; import com.hedera.hapi.node.base.ResponseCodeEnum; +import com.hedera.hapi.node.contract.ContractFunctionResult; import com.hedera.node.app.service.contract.impl.exec.systemcontracts.FullResult; import com.hedera.node.app.service.contract.impl.records.ContractCallRecordBuilder; import java.util.Optional; import org.apache.tuweni.bytes.Bytes; +import org.apache.tuweni.units.bigints.UInt256; import org.hyperledger.besu.evm.frame.MessageFrame; import org.hyperledger.besu.evm.precompile.PrecompiledContract; import org.junit.jupiter.api.Test; @@ -38,11 +43,17 @@ class FullResultTest { @Test void canRecordInsufficientGasWithBuilder() { + when(recordBuilder.contractFunctionResult()).thenReturn(ContractFunctionResult.DEFAULT); final var result = new PrecompiledContract.PrecompileContractResult( Bytes.EMPTY, true, MessageFrame.State.CODE_SUCCESS, Optional.empty()); final var subject = new FullResult(result, 123L, recordBuilder); subject.recordInsufficientGas(); verify(recordBuilder).status(ResponseCodeEnum.INSUFFICIENT_GAS); + verify(recordBuilder) + .contractCallResult(ContractFunctionResult.newBuilder() + .contractCallResult( + tuweniToPbjBytes(Bytes.wrap(UInt256.valueOf(INSUFFICIENT_GAS.protoOrdinal())))) + .build()); } @Test diff --git a/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/systemcontracts/HtsSystemContractTest.java b/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/systemcontracts/HtsSystemContractTest.java index d54e231e0393..7fc62e27d299 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/systemcontracts/HtsSystemContractTest.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/systemcontracts/HtsSystemContractTest.java @@ -27,7 +27,6 @@ import static org.junit.jupiter.api.Assertions.assertSame; import static org.mockito.BDDMockito.given; import static org.mockito.Mockito.lenient; -import static org.mockito.Mockito.when; import com.hedera.node.app.service.contract.impl.exec.scope.SystemContractOperations; import com.hedera.node.app.service.contract.impl.exec.systemcontracts.HtsSystemContract; @@ -81,6 +80,7 @@ class HtsSystemContractTest { private MockedStatic frameUtils; private HtsSystemContract subject; + private final Bytes validInput = Bytes.fromHexString("91548228"); @BeforeEach void setUp() { @@ -95,23 +95,22 @@ void clear() { @Test void returnsResultFromImpliedCall() { - commonMocks(); givenValidCallAttempt(); final var pricedResult = gasOnly(successResult(ByteBuffer.allocate(1), 123L), SUCCESS, true); given(call.execute(frame)).willReturn(pricedResult); given(attempt.senderId()).willReturn(SENDER_ID); given(frame.getValue()).willReturn(Wei.ZERO); + given(frame.getInputData()).willReturn(Bytes.EMPTY); - assertSame(pricedResult.fullResult(), subject.computeFully(Bytes.EMPTY, frame)); + assertSame(pricedResult.fullResult(), subject.computeFully(validInput, frame)); } @Test void invalidCallAttemptHaltsAndConsumesRemainingGas() { given(attemptFactory.createCallAttemptFrom(Bytes.EMPTY, frame)).willThrow(RuntimeException.class); - final var expected = haltResult(ExceptionalHaltReason.INVALID_OPERATION, frame.getRemainingGas()); - final var result = subject.computeFully(Bytes.EMPTY, frame); + final var result = subject.computeFully(validInput, frame); assertSamePrecompileResult(expected, result); } @@ -121,6 +120,13 @@ void internalErrorAttemptHaltsAndConsumesRemainingGas() { given(call.execute(frame)).willThrow(RuntimeException.class); final var expected = haltResult(ExceptionalHaltReason.PRECOMPILE_ERROR, frame.getRemainingGas()); + final var result = subject.computeFully(validInput, frame); + assertSamePrecompileResult(expected, result); + } + + @Test + void testComputeFullyWithEmptyBytes() { + final var expected = haltResult(ExceptionalHaltReason.INVALID_OPERATION, frame.getRemainingGas()); final var result = subject.computeFully(Bytes.EMPTY, frame); assertSamePrecompileResult(expected, result); } @@ -130,13 +136,7 @@ private void givenValidCallAttempt() { frameUtils.when(() -> proxyUpdaterFor(frame)).thenReturn(updater); lenient().when(updater.enhancement()).thenReturn(enhancement); lenient().when(enhancement.systemOperations()).thenReturn(systemOperations); - given(attemptFactory.createCallAttemptFrom(Bytes.EMPTY, frame)).willReturn(attempt); + given(attemptFactory.createCallAttemptFrom(validInput, frame)).willReturn(attempt); given(attempt.asExecutableCall()).willReturn(call); } - - private void commonMocks() { - final var remainingGas = 10000L; - when(frame.getRemainingGas()).thenReturn(remainingGas); - when(frame.getInputData()).thenReturn(org.apache.tuweni.bytes.Bytes.EMPTY); - } } diff --git a/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/systemcontracts/hts/create/ClassicCreatesCallTest.java b/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/systemcontracts/hts/create/ClassicCreatesCallTest.java index 92be7eefc34b..8a6f949158ac 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/systemcontracts/hts/create/ClassicCreatesCallTest.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/systemcontracts/hts/create/ClassicCreatesCallTest.java @@ -37,6 +37,7 @@ import com.esaulpaugh.headlong.abi.Address; import com.hedera.hapi.node.base.AccountID; +import com.hedera.hapi.node.base.Timestamp; import com.hedera.hapi.node.token.TokenCreateTransactionBody; import com.hedera.hapi.node.transaction.TransactionBody; import com.hedera.node.app.service.contract.impl.exec.scope.VerificationStrategy; @@ -50,6 +51,7 @@ import java.util.Deque; import org.apache.tuweni.bytes.Bytes; import org.hyperledger.besu.datatypes.Wei; +import org.hyperledger.besu.evm.frame.BlockValues; import org.hyperledger.besu.evm.frame.MessageFrame; import org.junit.jupiter.api.Test; import org.mockito.Mock; @@ -66,6 +68,9 @@ public class ClassicCreatesCallTest extends HtsCallTestBase { @Mock private ContractCallRecordBuilder recordBuilder; + @Mock + private BlockValues blockValues; + private static final TransactionBody PRETEND_CREATE_TOKEN = TransactionBody.newBuilder() .tokenCreation(TokenCreateTransactionBody.newBuilder() .symbol("FT") @@ -326,7 +331,8 @@ private void commonGivens(long baseCost, long value, boolean shouldBePreempted) eq(ContractCallRecordBuilder.class))) .willReturn(recordBuilder); } - + given(frame.getBlockValues()).willReturn(blockValues); + given(blockValues.getTimestamp()).willReturn(Timestamp.DEFAULT.seconds()); subject = new ClassicCreatesCall( gasCalculator, mockEnhancement(), diff --git a/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/systemcontracts/hts/decimals/DecimalsCallTest.java b/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/systemcontracts/hts/decimals/DecimalsCallTest.java index f39997d31e81..6e307f9bf5a8 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/systemcontracts/hts/decimals/DecimalsCallTest.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/systemcontracts/hts/decimals/DecimalsCallTest.java @@ -16,16 +16,15 @@ package com.hedera.node.app.service.contract.impl.test.exec.systemcontracts.hts.decimals; -import static com.hedera.hapi.node.base.ResponseCodeEnum.INVALID_TOKEN_ID; import static com.hedera.node.app.service.contract.impl.test.TestHelpers.FUNGIBLE_TOKEN; import static com.hedera.node.app.service.contract.impl.test.TestHelpers.NON_FUNGIBLE_TOKEN; import static com.hedera.node.app.service.contract.impl.test.TestHelpers.UNREASONABLY_DIVISIBLE_TOKEN; -import static com.hedera.node.app.service.contract.impl.test.TestHelpers.revertOutputFor; import static org.junit.jupiter.api.Assertions.*; import com.hedera.node.app.service.contract.impl.exec.systemcontracts.hts.decimals.DecimalsCall; import com.hedera.node.app.service.contract.impl.exec.systemcontracts.hts.decimals.DecimalsTranslator; import com.hedera.node.app.service.contract.impl.test.exec.systemcontracts.hts.HtsCallTestBase; +import com.hedera.node.app.service.evm.contracts.operations.HederaExceptionalHaltReason; import org.apache.tuweni.bytes.Bytes; import org.hyperledger.besu.evm.frame.MessageFrame; import org.junit.jupiter.api.Test; @@ -35,13 +34,15 @@ class DecimalsCallTest extends HtsCallTestBase { private DecimalsCall subject; @Test - void revertsWithNonfungibleToken() { + void haltWithNonfungibleToken() { subject = new DecimalsCall(mockEnhancement(), gasCalculator, NON_FUNGIBLE_TOKEN); final var result = subject.execute().fullResult().result(); - assertEquals(MessageFrame.State.REVERT, result.getState()); - assertEquals(revertOutputFor(INVALID_TOKEN_ID), result.getOutput()); + assertEquals(MessageFrame.State.EXCEPTIONAL_HALT, result.getState()); + assertEquals( + HederaExceptionalHaltReason.ERROR_DECODING_PRECOMPILE_INPUT, + result.getHaltReason().get()); } @Test diff --git a/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/systemcontracts/hts/grantapproval/ERCGrantApprovalCallTest.java b/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/systemcontracts/hts/grantapproval/ERCGrantApprovalCallTest.java index 05ee1be82bce..56e0d15141cb 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/systemcontracts/hts/grantapproval/ERCGrantApprovalCallTest.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/systemcontracts/hts/grantapproval/ERCGrantApprovalCallTest.java @@ -54,7 +54,6 @@ import org.mockito.Mock; class ERCGrantApprovalCallTest extends HtsCallTestBase { - private ERCGrantApprovalCall subject; @Mock diff --git a/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/systemcontracts/hts/ownerof/OwnerOfCallTest.java b/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/systemcontracts/hts/ownerof/OwnerOfCallTest.java index e89d44a5abcd..8ce5df95dcd6 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/systemcontracts/hts/ownerof/OwnerOfCallTest.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/systemcontracts/hts/ownerof/OwnerOfCallTest.java @@ -21,6 +21,7 @@ import static com.hedera.hapi.node.base.ResponseCodeEnum.INVALID_TOKEN_ID; import static com.hedera.node.app.service.contract.impl.test.TestHelpers.ALIASED_SOMEBODY; import static com.hedera.node.app.service.contract.impl.test.TestHelpers.CIVILIAN_OWNED_NFT; +import static com.hedera.node.app.service.contract.impl.test.TestHelpers.FUNGIBLE_TOKEN; import static com.hedera.node.app.service.contract.impl.test.TestHelpers.NFT_SERIAL_NO; import static com.hedera.node.app.service.contract.impl.test.TestHelpers.NON_FUNGIBLE_TOKEN; import static com.hedera.node.app.service.contract.impl.test.TestHelpers.NON_FUNGIBLE_TOKEN_ID; @@ -35,6 +36,7 @@ import com.hedera.node.app.service.contract.impl.exec.systemcontracts.hts.ownerof.OwnerOfTranslator; import com.hedera.node.app.service.contract.impl.test.TestHelpers; import com.hedera.node.app.service.contract.impl.test.exec.systemcontracts.hts.HtsCallTestBase; +import com.hedera.node.app.service.evm.contracts.operations.HederaExceptionalHaltReason; import org.apache.tuweni.bytes.Bytes; import org.hyperledger.besu.evm.frame.MessageFrame; import org.junit.jupiter.api.Test; @@ -63,6 +65,21 @@ void revertsWithMissingNft() { assertEquals(revertOutputFor(INVALID_NFT_ID), result.getOutput()); } + @Test + void haltWhenTokenIsNotERC721() { + // given + subject = new OwnerOfCall(gasCalculator, mockEnhancement(), FUNGIBLE_TOKEN, NFT_SERIAL_NO); + + // when + final var result = subject.execute().fullResult().result(); + + // then + assertEquals(MessageFrame.State.EXCEPTIONAL_HALT, result.getState()); + assertEquals( + HederaExceptionalHaltReason.ERROR_DECODING_PRECOMPILE_INPUT, + result.getHaltReason().get()); + } + @Test void revertsWithMissingOwner() { subject = new OwnerOfCall(gasCalculator, mockEnhancement(), NON_FUNGIBLE_TOKEN, NFT_SERIAL_NO); diff --git a/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/systemcontracts/hts/tokenuri/TokenUriCallTest.java b/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/systemcontracts/hts/tokenuri/TokenUriCallTest.java index 5de3a834c130..d641a87bf4af 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/systemcontracts/hts/tokenuri/TokenUriCallTest.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/systemcontracts/hts/tokenuri/TokenUriCallTest.java @@ -24,10 +24,10 @@ import static org.junit.jupiter.api.Assertions.*; import static org.mockito.BDDMockito.given; -import com.hedera.hapi.node.base.ResponseCodeEnum; import com.hedera.node.app.service.contract.impl.exec.systemcontracts.hts.tokenuri.TokenUriCall; import com.hedera.node.app.service.contract.impl.exec.systemcontracts.hts.tokenuri.TokenUriTranslator; import com.hedera.node.app.service.contract.impl.test.exec.systemcontracts.hts.HtsCallTestBase; +import com.hedera.node.app.service.evm.contracts.operations.HederaExceptionalHaltReason; import org.apache.tuweni.bytes.Bytes; import org.hyperledger.besu.evm.frame.MessageFrame; import org.junit.jupiter.api.Test; @@ -54,17 +54,35 @@ void returnsUnaliasedOwnerLongZeroForPresentTokenAndNonTreasuryNft() { } @Test - void revertsWhenTokenIsNotERC721() { + void returnNonExistingTokenErrorMetadata() { // given - subject = new TokenUriCall(gasCalculator, mockEnhancement(), FUNGIBLE_TOKEN, NFT_SERIAL_NO); - given(nativeOperations.getNft(FUNGIBLE_TOKEN.tokenId().tokenNum(), NFT_SERIAL_NO)) + subject = new TokenUriCall(gasCalculator, mockEnhancement(), NON_FUNGIBLE_TOKEN, NFT_SERIAL_NO); + given(nativeOperations.getNft(NON_FUNGIBLE_TOKEN.tokenId().tokenNum(), NFT_SERIAL_NO)) .willReturn(null); + // when + final var result = subject.execute().fullResult().result(); + // then + assertEquals(MessageFrame.State.COMPLETED_SUCCESS, result.getState()); + assertEquals( + Bytes.wrap(TokenUriTranslator.TOKEN_URI + .getOutputs() + .encodeElements(TokenUriCall.URI_QUERY_NON_EXISTING_TOKEN_ERROR) + .array()), + result.getOutput()); + } + + @Test + void haltWhenTokenIsNotERC721() { + // given + subject = new TokenUriCall(gasCalculator, mockEnhancement(), FUNGIBLE_TOKEN, NFT_SERIAL_NO); // when final var result = subject.execute().fullResult().result(); // then - assertEquals(MessageFrame.State.REVERT, result.getState()); - assertEquals(Bytes.wrap(ResponseCodeEnum.INVALID_TOKEN_ID.name().getBytes()), result.getOutput()); + assertEquals(MessageFrame.State.EXCEPTIONAL_HALT, result.getState()); + assertEquals( + HederaExceptionalHaltReason.ERROR_DECODING_PRECOMPILE_INPUT, + result.getHaltReason().get()); } } diff --git a/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/systemcontracts/hts/transfer/ClassicTransfersCallTest.java b/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/systemcontracts/hts/transfer/ClassicTransfersCallTest.java index d103936650e0..988cd5dc515e 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/systemcontracts/hts/transfer/ClassicTransfersCallTest.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/systemcontracts/hts/transfer/ClassicTransfersCallTest.java @@ -105,6 +105,15 @@ void transferHappyPathCompletesWithSuccessResponseCode() { assertEquals(tuweniEncodedRc(SUCCESS), result.getOutput()); } + @Test + void haltsWithMissingTransactionBody() { + givenHaltingSubject(); + + final var result = subject.execute(frame).fullResult().result(); + + assertEquals(MessageFrame.State.EXCEPTIONAL_HALT, result.getState()); + } + @Test void retryingTransferHappyPathCompletesWithSuccessResponseCode() { givenRetryingSubject(); @@ -226,6 +235,21 @@ private void givenRetryingSubject() { systemAccountCreditScreen); } + private void givenHaltingSubject() { + subject = new ClassicTransfersCall( + systemContractGasCalculator, + mockEnhancement(), + ClassicTransfersTranslator.CRYPTO_TRANSFER.selector(), + A_NEW_ACCOUNT_ID, + null, + null, + DEFAULT_CONFIG, + approvalSwitchHelper, + callStatusStandardizer, + verificationStrategy, + systemAccountCreditScreen); + } + private void givenV2SubjectWithV2Enabled() { final var config = HederaTestConfigBuilder.create() .withValue("contracts.precompile.atomicCryptoTransfer.enabled", "true") diff --git a/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/systemcontracts/hts/transfer/ClassicTransfersDecoderTest.java b/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/systemcontracts/hts/transfer/ClassicTransfersDecoderTest.java new file mode 100644 index 000000000000..1868eb3f6f44 --- /dev/null +++ b/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/exec/systemcontracts/hts/transfer/ClassicTransfersDecoderTest.java @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2024 Hedera Hashgraph, LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.hedera.node.app.service.contract.impl.test.exec.systemcontracts.hts.transfer; + +import static com.hedera.node.app.service.contract.impl.exec.systemcontracts.hts.ReturnTypes.ZERO_ADDRESS; +import static org.junit.jupiter.api.Assertions.assertNull; + +import com.hedera.node.app.service.contract.impl.exec.systemcontracts.hts.AddressIdConverter; +import com.hedera.node.app.service.contract.impl.exec.systemcontracts.hts.transfer.ClassicTransfersDecoder; +import com.hedera.node.app.service.contract.impl.exec.systemcontracts.hts.transfer.ClassicTransfersTranslator; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; + +@ExtendWith(MockitoExtension.class) +class ClassicTransfersDecoderTest { + @Mock + private AddressIdConverter addressIdConverter; + + private final ClassicTransfersDecoder subject = new ClassicTransfersDecoder(); + + @Test + void returnsNullBodyOnNegativeTokenTransferAmount() { + final var call = ClassicTransfersTranslator.TRANSFER_TOKEN.encodeCallWithArgs( + ZERO_ADDRESS, ZERO_ADDRESS, ZERO_ADDRESS, -1L); + assertNull(subject.decodeTransferToken(call.array(), addressIdConverter)); + } +} diff --git a/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/handlers/EthereumTransactionHandlerTest.java b/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/handlers/EthereumTransactionHandlerTest.java index 1fadefebea80..f04dbcaf7753 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/handlers/EthereumTransactionHandlerTest.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/handlers/EthereumTransactionHandlerTest.java @@ -24,7 +24,8 @@ import static com.hedera.node.app.service.contract.impl.test.TestHelpers.ETH_DATA_WITHOUT_TO_ADDRESS; import static com.hedera.node.app.service.contract.impl.test.TestHelpers.ETH_DATA_WITH_TO_ADDRESS; import static com.hedera.node.app.service.contract.impl.test.TestHelpers.HEVM_CREATION; -import static com.hedera.node.app.service.contract.impl.test.TestHelpers.SUCCESS_RESULT; +import static com.hedera.node.app.service.contract.impl.test.TestHelpers.SENDER_ID; +import static com.hedera.node.app.service.contract.impl.test.TestHelpers.SUCCESS_RESULT_WITH_SIGNER_NONCE; import static com.hedera.node.app.spi.fixtures.Assertions.assertThrowsPreCheck; import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; import static org.mockito.BDDMockito.given; @@ -49,10 +50,10 @@ import com.hedera.node.app.service.contract.impl.records.ContractCallRecordBuilder; import com.hedera.node.app.service.contract.impl.records.ContractCreateRecordBuilder; import com.hedera.node.app.service.contract.impl.records.EthereumTransactionRecordBuilder; +import com.hedera.node.app.service.contract.impl.state.HederaEvmAccount; import com.hedera.node.app.service.contract.impl.state.RootProxyWorldUpdater; import com.hedera.node.app.service.contract.impl.test.TestHelpers; import com.hedera.node.app.service.file.ReadableFileStore; -import com.hedera.node.app.service.token.ReadableAccountStore; import com.hedera.node.app.spi.workflows.HandleContext; import com.hedera.node.app.spi.workflows.PreCheckException; import com.hedera.node.app.spi.workflows.PreHandleContext; @@ -117,14 +118,14 @@ class EthereumTransactionHandlerTest { @Mock private TransactionProcessor transactionProcessor; - @Mock - private ReadableAccountStore readableAccountStore; - @Mock CustomGasCharging customGasCharging; private EthereumTransactionHandler subject; + @Mock + private HederaEvmAccount senderAccount; + @BeforeEach void setUp() { subject = new EthereumTransactionHandler(ethereumSignatures, callDataHydration, () -> factory); @@ -157,7 +158,7 @@ void setUpTransactionProcessing() { hederaEvmContext, tracer, DEFAULT_CONFIG)) - .willReturn(SUCCESS_RESULT); + .willReturn(SUCCESS_RESULT_WITH_SIGNER_NONCE); } @Test @@ -168,12 +169,14 @@ void delegatesToCreatedComponentAndExposesEthTxDataCallWithToAddress() { given(handleContext.recordBuilder(EthereumTransactionRecordBuilder.class)) .willReturn(recordBuilder); given(handleContext.recordBuilder(ContractCallRecordBuilder.class)).willReturn(callRecordBuilder); - final var expectedResult = SUCCESS_RESULT.asProtoResultOf(ETH_DATA_WITH_TO_ADDRESS, baseProxyWorldUpdater); + givenSenderAccount(); + final var expectedResult = + SUCCESS_RESULT_WITH_SIGNER_NONCE.asProtoResultOf(ETH_DATA_WITH_TO_ADDRESS, baseProxyWorldUpdater); final var expectedOutcome = new CallOutcome( expectedResult, - SUCCESS_RESULT.finalStatus(), + SUCCESS_RESULT_WITH_SIGNER_NONCE.finalStatus(), CALLED_CONTRACT_ID, - SUCCESS_RESULT.gasPrice(), + SUCCESS_RESULT_WITH_SIGNER_NONCE.gasPrice(), null, null); given(callRecordBuilder.contractID(CALLED_CONTRACT_ID)).willReturn(callRecordBuilder); @@ -194,12 +197,13 @@ void delegatesToCreatedComponentAndExposesEthTxDataCreateWithoutToAddress() { .willReturn(recordBuilder); given(handleContext.recordBuilder(ContractCreateRecordBuilder.class)).willReturn(createRecordBuilder); given(baseProxyWorldUpdater.getCreatedContractIds()).willReturn(List.of(CALLED_CONTRACT_ID)); - final var expectedResult = SUCCESS_RESULT.asProtoResultOf(ETH_DATA_WITHOUT_TO_ADDRESS, baseProxyWorldUpdater); + final var expectedResult = + SUCCESS_RESULT_WITH_SIGNER_NONCE.asProtoResultOf(ETH_DATA_WITHOUT_TO_ADDRESS, baseProxyWorldUpdater); final var expectedOutcome = new CallOutcome( expectedResult, - SUCCESS_RESULT.finalStatus(), + SUCCESS_RESULT_WITH_SIGNER_NONCE.finalStatus(), CALLED_CONTRACT_ID, - SUCCESS_RESULT.gasPrice(), + SUCCESS_RESULT_WITH_SIGNER_NONCE.gasPrice(), null, null); @@ -208,6 +212,7 @@ void delegatesToCreatedComponentAndExposesEthTxDataCreateWithoutToAddress() { given(createRecordBuilder.withCommonFieldsSetFrom(expectedOutcome)).willReturn(createRecordBuilder); given(recordBuilder.ethereumHash(Bytes.wrap(ETH_DATA_WITHOUT_TO_ADDRESS.getEthereumHash()))) .willReturn(recordBuilder); + givenSenderAccount(); assertDoesNotThrow(() -> subject.handle(handleContext)); } @@ -242,4 +247,9 @@ void preHandleDoesNotIgnoreFailureToHydrate() throws PreCheckException { assertThrowsPreCheck(() -> subject.preHandle(preHandleContext), INVALID_ETHEREUM_TRANSACTION); verifyNoInteractions(ethereumSignatures); } + + void givenSenderAccount() { + given(baseProxyWorldUpdater.getHederaAccount(SENDER_ID)).willReturn(senderAccount); + given(senderAccount.getNonce()).willReturn(1L); + } } diff --git a/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/hevm/HederaEvmTransactionResultTest.java b/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/hevm/HederaEvmTransactionResultTest.java index a91e263a1443..82ccfa6bbe91 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/hevm/HederaEvmTransactionResultTest.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/hevm/HederaEvmTransactionResultTest.java @@ -40,7 +40,6 @@ import static com.hedera.node.app.service.contract.impl.test.TestHelpers.WEI_NETWORK_GAS_PRICE; import static com.hedera.node.app.service.contract.impl.test.TestHelpers.givenConfigInFrame; import static com.hedera.node.app.service.contract.impl.test.TestHelpers.givenDefaultConfigInFrame; -import static com.hedera.node.app.service.contract.impl.test.TestHelpers.wellKnownHapiCall; import static com.hedera.node.app.service.contract.impl.utils.ConversionUtils.bloomForAll; import static com.hedera.node.app.service.contract.impl.utils.ConversionUtils.pbjLogsFrom; import static com.hedera.node.app.service.contract.impl.utils.ConversionUtils.pbjToTuweniBytes; @@ -135,27 +134,27 @@ void finalStatusFromMissingAddressHaltImplemented() { @Test void finalStatusFromWrongNonceAbortTranslated() { - final var subject = HederaEvmTransactionResult.fromAborted(SENDER_ID, wellKnownHapiCall(), WRONG_NONCE); + final var subject = HederaEvmTransactionResult.fromAborted(SENDER_ID, CALLED_CONTRACT_ID, WRONG_NONCE); assertEquals(WRONG_NONCE, subject.finalStatus()); } @Test void finalStatusFromInvalidAccountIdAbortTranslated() { - final var subject = HederaEvmTransactionResult.fromAborted(SENDER_ID, wellKnownHapiCall(), INVALID_ACCOUNT_ID); + final var subject = HederaEvmTransactionResult.fromAborted(SENDER_ID, CALLED_CONTRACT_ID, INVALID_ACCOUNT_ID); assertEquals(INVALID_ACCOUNT_ID, subject.finalStatus()); } @Test void finalStatusFromExecutionExceptionAbortTranslated() { final var subject = - HederaEvmTransactionResult.fromAborted(SENDER_ID, wellKnownHapiCall(), CONTRACT_EXECUTION_EXCEPTION); + HederaEvmTransactionResult.fromAborted(SENDER_ID, CALLED_CONTRACT_ID, CONTRACT_EXECUTION_EXCEPTION); assertEquals(CONTRACT_EXECUTION_EXCEPTION, subject.finalStatus()); } @Test void finalStatusFromIpbAbortTranslated() { final var subject = - HederaEvmTransactionResult.fromAborted(SENDER_ID, wellKnownHapiCall(), INSUFFICIENT_PAYER_BALANCE); + HederaEvmTransactionResult.fromAborted(SENDER_ID, CALLED_CONTRACT_ID, INSUFFICIENT_PAYER_BALANCE); assertEquals(INSUFFICIENT_PAYER_BALANCE, subject.finalStatus()); } diff --git a/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/records/ContractOperationRecordBuilderTest.java b/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/records/ContractOperationRecordBuilderTest.java index 50cc3603dfc0..25da8a219ce4 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/records/ContractOperationRecordBuilderTest.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/records/ContractOperationRecordBuilderTest.java @@ -16,7 +16,8 @@ package com.hedera.node.app.service.contract.impl.test.records; -import static org.junit.jupiter.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertSame; import com.hedera.hapi.node.base.AccountID; import com.hedera.hapi.node.base.ContractID; diff --git a/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/state/RootProxyWorldUpdaterTest.java b/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/state/RootProxyWorldUpdaterTest.java index 95bc03e5ff52..4b06ccbad836 100644 --- a/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/state/RootProxyWorldUpdaterTest.java +++ b/hedera-node/hedera-smart-contract-service-impl/src/test/java/com/hedera/node/app/service/contract/impl/test/state/RootProxyWorldUpdaterTest.java @@ -39,6 +39,7 @@ import com.hedera.node.app.service.contract.impl.state.StorageAccesses; import com.hedera.node.app.service.contract.impl.state.StorageSizeChange; import com.hedera.node.app.service.token.api.ContractChangeSummary; +import com.hedera.node.app.spi.workflows.HandleContext; import com.hedera.node.config.data.ContractsConfig; import com.hedera.node.config.testfixtures.HederaTestConfigBuilder; import com.swirlds.config.api.Configuration; @@ -78,6 +79,9 @@ class RootProxyWorldUpdaterTest { @Mock private StorageSizeValidator storageSizeValidator; + @Mock + private HandleContext context; + @Mock private EvmFrameState evmFrameState; @@ -134,6 +138,7 @@ void performsAdditionalCommitActionsInOrder() { final var updatedNonces = new ArrayList<>(List.of(new ContractNonceInfo(CALLED_CONTRACT_ID, 1L))); given(hederaOperations.summarizeContractChanges()) .willReturn(new ContractChangeSummary(createdIds, updatedNonces)); + given(context.hasThrottleCapacityForChildTransactions()).willReturn(true); subject.commit(); @@ -154,7 +159,8 @@ private void givenSubjectWith(@NonNull final Configuration configuration, @NonNu () -> evmFrameState, rentCalculator, storageManager, - storageSizeValidator); + storageSizeValidator, + context); } private List pendingChanges() { diff --git a/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/ReadableTokenStoreImpl.java b/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/ReadableTokenStoreImpl.java index f7375cee9e7c..28b46df71fec 100644 --- a/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/ReadableTokenStoreImpl.java +++ b/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/ReadableTokenStoreImpl.java @@ -112,7 +112,13 @@ private Optional getTokenLeaf(final TokenID tokenId) { * Returns the number of tokens in the state. * @return the number of tokens in the state. */ + @Override public long sizeOfState() { return tokenState.size(); } + + @Override + public void warm(@NonNull final TokenID tokenId) { + tokenState.warm(tokenId); + } } diff --git a/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/RecordFinalizerBase.java b/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/RecordFinalizerBase.java index 68602241f851..876ca7de9873 100644 --- a/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/RecordFinalizerBase.java +++ b/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/RecordFinalizerBase.java @@ -97,7 +97,8 @@ protected Map hbarChangesFrom(@NonNull final WritableAccountSto protected Map tokenRelChangesFrom( @NonNull final WritableTokenRelationStore writableTokenRelStore, @NonNull final ReadableTokenStore tokenStore, - @NonNull TokenType tokenType) { + @NonNull TokenType tokenType, + final boolean filterZeroAmounts) { final var tokenChanges = new HashMap(); for (final EntityIDPair modifiedRel : writableTokenRelStore.modifiedTokens()) { final var relAcctId = modifiedRel.accountIdOrThrow(); @@ -121,7 +122,7 @@ protected Map tokenRelChangesFrom( // If the token rel's balance has changed, add it to the list of changes final var netFungibleChange = modifiedTokenRelBalance - persistedBalance; - if (netFungibleChange != 0) { + if (netFungibleChange != 0 || !filterZeroAmounts) { tokenChanges.put(modifiedRel, netFungibleChange); } } @@ -132,11 +133,14 @@ protected Map tokenRelChangesFrom( /** * Given a map of {@link EntityIDPair} to {@link Long} representing the changes to the balances of the token * relations, returns a list of {@link TokenTransferList} representing the changes to the token relations. + * * @param fungibleChanges the map of {@link EntityIDPair} to {@link Long} representing the changes to the balances + * @param filterZeroAmounts whether to filter out zero amounts * @return a list of {@link TokenTransferList} representing the changes to the token relations */ @NonNull - protected List asTokenTransferListFrom(@NonNull final Map fungibleChanges) { + protected List asTokenTransferListFrom( + @NonNull final Map fungibleChanges, final boolean filterZeroAmounts) { final var fungibleTokenTransferLists = new ArrayList(); final var acctAmountsByTokenId = new HashMap>(); for (final var fungibleChange : fungibleChanges.entrySet()) { @@ -145,7 +149,7 @@ protected List asTokenTransferListFrom(@NonNull final Map()); } - if (fungibleChange.getValue() != 0) { + if (fungibleChange.getValue() != 0 || !filterZeroAmounts) { final var tokenIdMap = acctAmountsByTokenId.get(tokenIdOfAcctAmountChange); tokenIdMap.merge(accountIdOfAcctAmountChange, fungibleChange.getValue(), Long::sum); } diff --git a/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/api/TokenServiceApiImpl.java b/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/api/TokenServiceApiImpl.java index e464839ff27b..a5f954bd7271 100644 --- a/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/api/TokenServiceApiImpl.java +++ b/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/api/TokenServiceApiImpl.java @@ -459,8 +459,7 @@ private void payStakingRewardAccount(final long amount) { private Account lookupAccount(String logName, AccountID id) { var account = accountStore.get(id); if (account == null) { - logger.fatal("{} account {} does not exist", logName, id); - throw new IllegalStateException(logName + " account does not exist"); + throw new IllegalStateException(logName + " account " + id + " does not exist"); } return account; } diff --git a/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/BaseTokenHandler.java b/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/BaseTokenHandler.java index 8fe70ce691d6..50acb26707dc 100644 --- a/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/BaseTokenHandler.java +++ b/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/BaseTokenHandler.java @@ -60,7 +60,6 @@ public class BaseTokenHandler { * @param token the new or existing token to mint * @param treasuryRel the treasury relation for the token * @param amount the amount to mint - * @param isMintOnTokenCreation true if this is a mint on token creation * @param accountStore the account store * @param tokenStore the token store * @param tokenRelationStore the token relation store diff --git a/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/CryptoApproveAllowanceHandler.java b/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/CryptoApproveAllowanceHandler.java index f30161d00aef..8d7502d4927a 100644 --- a/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/CryptoApproveAllowanceHandler.java +++ b/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/CryptoApproveAllowanceHandler.java @@ -523,7 +523,8 @@ public Fees calculateFees(@NonNull final FeeContext feeContext) { final var op = body.cryptoApproveAllowanceOrThrow(); final var accountStore = feeContext.readableStore(ReadableAccountStore.class); - final var currentSecond = feeContext.currentTime().getEpochSecond(); + final var currentSecond = + body.transactionIDOrThrow().transactionValidStartOrThrow().seconds(); final var account = accountStore.getAccountById(feeContext.payer()); final var currentExpiry = account == null ? currentSecond : account.expirationSecond(); diff --git a/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/CryptoTransferHandler.java b/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/CryptoTransferHandler.java index ea9382dfe55f..7aee2d4e861c 100644 --- a/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/CryptoTransferHandler.java +++ b/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/CryptoTransferHandler.java @@ -16,6 +16,7 @@ package com.hedera.node.app.service.token.impl.handlers; +import static com.hedera.hapi.node.base.ResponseCodeEnum.CUSTOM_FEE_CHARGING_EXCEEDED_MAX_ACCOUNT_AMOUNTS; import static com.hedera.hapi.node.base.ResponseCodeEnum.INSUFFICIENT_PAYER_BALANCE_FOR_CUSTOM_FEE; import static com.hedera.hapi.node.base.ResponseCodeEnum.INSUFFICIENT_SENDER_ACCOUNT_BALANCE_FOR_CUSTOM_FEE; import static com.hedera.hapi.node.base.ResponseCodeEnum.INVALID_ACCOUNT_ID; @@ -87,6 +88,7 @@ import com.hedera.node.config.data.TokensConfig; import edu.umd.cs.findbugs.annotations.NonNull; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; import java.util.Objects; import javax.inject.Inject; @@ -137,6 +139,7 @@ public void warm(@NonNull final WarmupContext context) { requireNonNull(context); final ReadableAccountStore accountStore = context.createStore(ReadableAccountStore.class); + final ReadableTokenStore tokenStore = context.createStore(ReadableTokenStore.class); final ReadableNftStore nftStore = context.createStore(ReadableNftStore.class); final ReadableTokenRelationStore tokenRelationStore = context.createStore(ReadableTokenRelationStore.class); final CryptoTransferTransactionBody op = context.body().cryptoTransferOrThrow(); @@ -155,6 +158,7 @@ public void warm(@NonNull final WarmupContext context) { .filter(TokenTransferList::hasNftTransfers) .forEach(tokenTransferList -> { final TokenID tokenID = tokenTransferList.tokenOrThrow(); + tokenStore.warm(tokenID); final List nftTransfers = tokenTransferList.nftTransfersOrThrow(); for (final NftTransfer nftTransfer : nftTransfers) { warmNftTransfer(accountStore, nftStore, tokenRelationStore, tokenID, nftTransfer); @@ -301,7 +305,7 @@ private List decomposeIntoSteps( // Step 1: associate any token recipients that are not already associated and have // auto association slots open steps.add(new AssociateTokenRecipientsStep(op)); - // Step 2: Charge custom fees for token transfers. yet to be implemented + // Step 2: Charge custom fees for token transfers final var customFeeStep = new CustomFeeAssessmentStep(op); // The below steps should be doe for both custom fee assessed transaction in addition to // original transaction @@ -518,7 +522,6 @@ public Fees calculateFees(@NonNull final FeeContext feeContext) { final var op = body.cryptoTransferOrThrow(); final var config = feeContext.configuration(); final var tokenMultiplier = config.getConfigData(FeesConfig.class).tokenTransferUsageMultiplier(); - final var readableTokenStore = feeContext.readableStore(ReadableTokenStore.class); /* BPT calculations shouldn't include any custom fee payment usage */ int totalXfers = op.transfersOrElse(TransferList.DEFAULT) @@ -544,7 +547,7 @@ public Fees calculateFees(@NonNull final FeeContext feeContext) { /* Include custom fee payment usage in RBS calculations */ var customFeeHbarTransfers = 0; var customFeeTokenTransfers = 0; - final var involvedTokens = new ArrayList(); + final var involvedTokens = new HashSet(); final var customFeeAssessor = new CustomFeeAssessmentStep(op); List assessedCustomFees; boolean triedAndFailedToUseCustomFees = false; @@ -554,11 +557,11 @@ public Fees calculateFees(@NonNull final FeeContext feeContext) { final var status = ignore.getStatus(); // If the transaction tried and failed to use custom fees, enable this flag. // This is used to charge a different canonical fees. - triedAndFailedToUseCustomFees = (status == INSUFFICIENT_PAYER_BALANCE_FOR_CUSTOM_FEE - || status == INSUFFICIENT_SENDER_ACCOUNT_BALANCE_FOR_CUSTOM_FEE); + triedAndFailedToUseCustomFees = status == INSUFFICIENT_PAYER_BALANCE_FOR_CUSTOM_FEE + || status == INSUFFICIENT_SENDER_ACCOUNT_BALANCE_FOR_CUSTOM_FEE + || status == CUSTOM_FEE_CHARGING_EXCEEDED_MAX_ACCOUNT_AMOUNTS; assessedCustomFees = new ArrayList<>(); } - totalXfers += assessedCustomFees.size(); for (final var fee : assessedCustomFees) { if (!fee.hasTokenId()) { customFeeHbarTransfers++; @@ -567,6 +570,7 @@ public Fees calculateFees(@NonNull final FeeContext feeContext) { involvedTokens.add(fee.tokenId()); } } + totalXfers += customFeeHbarTransfers; weightedTokenXfers += tokenMultiplier * customFeeTokenTransfers; weightedTokensInvolved += tokenMultiplier * involvedTokens.size(); long rbs = (totalXfers * LONG_ACCOUNT_AMOUNT_BYTES) @@ -580,12 +584,11 @@ public Fees calculateFees(@NonNull final FeeContext feeContext) { customFeeHbarTransfers, customFeeTokenTransfers, triedAndFailedToUseCustomFees); - final var ans = feeContext + return feeContext .feeCalculator(subType) .addBytesPerTransaction(bpt) .addRamByteSeconds(rbs * USAGE_PROPERTIES.legacyReceiptStorageSecs()) .calculate(); - return ans; } /** diff --git a/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/FinalizeChildRecordHandler.java b/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/FinalizeChildRecordHandler.java index f1aa77602cd9..4725ed6b1aeb 100644 --- a/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/FinalizeChildRecordHandler.java +++ b/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/FinalizeChildRecordHandler.java @@ -19,6 +19,8 @@ import static com.hedera.node.app.service.token.impl.comparator.TokenComparators.TOKEN_TRANSFER_LIST_COMPARATOR; import static com.hedera.node.app.service.token.impl.handlers.staking.StakingRewardsHelper.asAccountAmounts; +import com.hedera.hapi.node.base.HederaFunctionality; +import com.hedera.hapi.node.base.ResponseCodeEnum; import com.hedera.hapi.node.base.TokenTransferList; import com.hedera.hapi.node.base.TokenType; import com.hedera.hapi.node.base.TransferList; @@ -47,7 +49,7 @@ public FinalizeChildRecordHandler() { } @Override - public void finalizeChildRecord(@NonNull final ChildFinalizeContext context) { + public void finalizeChildRecord(@NonNull final ChildFinalizeContext context, final HederaFunctionality function) { final var recordBuilder = context.userTransactionRecordBuilder(CryptoTransferRecordBuilder.class); // This handler won't ask the context for its transaction, but instead will determine the net hbar transfers and @@ -66,6 +68,13 @@ public void finalizeChildRecord(@NonNull final ChildFinalizeContext context) { recordBuilder.transferList(TransferList.newBuilder() .accountAmounts(asAccountAmounts(hbarChanges)) .build()); + } else if (recordBuilder.status() == ResponseCodeEnum.SUCCESS) { + // set an empty transfer list even if there are no hbar changes but the parent record succeeded + // to be compatible with mono-service + recordBuilder.transferList(TransferList.DEFAULT); + } else if (recordBuilder.status() != ResponseCodeEnum.SUCCESS) { + // set null to transfer list if the child record failed to be compatible with mono-service + recordBuilder.transferList(null); } // Declare the top-level token transfer list, which list will include BOTH fungible and non-fungible token @@ -73,9 +82,12 @@ public void finalizeChildRecord(@NonNull final ChildFinalizeContext context) { final ArrayList tokenTransferLists; // ---------- fungible token transfers ------------------------- - final var fungibleChanges = - tokenRelChangesFrom(writableTokenRelStore, readableTokenStore, TokenType.FUNGIBLE_COMMON); - final var fungibleTokenTransferLists = asTokenTransferListFrom(fungibleChanges); + // If the function is not a crypto transfer, then we filter all zero amounts from token transfer list. + // To be compatible with mono-service records, we _don't_ filter zero token transfers in the record + final var isCryptoTransfer = function == HederaFunctionality.CRYPTO_TRANSFER; + final var fungibleChanges = tokenRelChangesFrom( + writableTokenRelStore, readableTokenStore, TokenType.FUNGIBLE_COMMON, !isCryptoTransfer); + final var fungibleTokenTransferLists = asTokenTransferListFrom(fungibleChanges, !isCryptoTransfer); tokenTransferLists = new ArrayList<>(fungibleTokenTransferLists); // ---------- nft transfers ------------------------- diff --git a/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/FinalizeParentRecordHandler.java b/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/FinalizeParentRecordHandler.java index 58479219a7d4..493a78819516 100644 --- a/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/FinalizeParentRecordHandler.java +++ b/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/FinalizeParentRecordHandler.java @@ -23,7 +23,9 @@ import static com.hedera.node.app.spi.workflows.HandleException.validateTrue; import static java.util.Collections.emptyList; +import com.hedera.hapi.node.base.AccountAmount; import com.hedera.hapi.node.base.AccountID; +import com.hedera.hapi.node.base.HederaFunctionality; import com.hedera.hapi.node.base.NftID; import com.hedera.hapi.node.base.NftTransfer; import com.hedera.hapi.node.base.TokenID; @@ -69,7 +71,10 @@ public FinalizeParentRecordHandler(@NonNull final StakingRewardsHandler stakingR } @Override - public void finalizeParentRecord(@NonNull final AccountID payer, @NonNull final FinalizeContext context) { + public void finalizeParentRecord( + @NonNull final AccountID payer, + @NonNull final FinalizeContext context, + @NonNull final HederaFunctionality functionality) { final var recordBuilder = context.userTransactionRecordBuilder(CryptoTransferRecordBuilder.class); // This handler won't ask the context for its transaction, but instead will determine the net hbar transfers and @@ -107,13 +112,16 @@ public void finalizeParentRecord(@NonNull final AccountID payer, @NonNull final } throw e; } - final var tokenChanges = - tokenRelChangesFrom(writableTokenRelStore, readableTokenStore, TokenType.FUNGIBLE_COMMON); + // If the function is not a crypto transfer, then we filter all zero amounts from token transfer list. + // To be compatible with mono-service records, we _don't_ filter zero token transfers in the record + final var isCryptoTransfer = functionality == HederaFunctionality.CRYPTO_TRANSFER; + final var tokenChanges = tokenRelChangesFrom( + writableTokenRelStore, readableTokenStore, TokenType.FUNGIBLE_COMMON, !isCryptoTransfer); final var nftChanges = nftChangesFrom(writableNftStore, writableTokenStore); if (nftChanges.isEmpty()) { - final var nonFungibleTokenChanges = - tokenRelChangesFrom(writableTokenRelStore, readableTokenStore, TokenType.NON_FUNGIBLE_UNIQUE); + final var nonFungibleTokenChanges = tokenRelChangesFrom( + writableTokenRelStore, readableTokenStore, TokenType.NON_FUNGIBLE_UNIQUE, !isCryptoTransfer); nonFungibleTokenChanges.forEach(tokenChanges::putIfAbsent); } @@ -133,7 +141,7 @@ public void finalizeParentRecord(@NonNull final AccountID payer, @NonNull final } final var hasTokenTransferLists = !tokenChanges.isEmpty() || !nftChanges.isEmpty(); if (hasTokenTransferLists) { - final var tokenTransferLists = asTokenTransferListFrom(tokenChanges); + final var tokenTransferLists = asTokenTransferListFrom(tokenChanges, !isCryptoTransfer); final var nftTokenTransferLists = asTokenTransferListFromNftChanges(nftChanges); tokenTransferLists.addAll(nftTokenTransferLists); tokenTransferLists.sort(TOKEN_TRANSFER_LIST_COMPARATOR); @@ -171,8 +179,10 @@ private void deductChangesFromChildRecords( @NonNull final Map hbarChanges) { final Map finalNftOwners = new HashMap<>(); context.forEachChildRecord(ChildRecordBuilder.class, childRecord -> { - final var childHbarChangesFromRecord = childRecord.transferList(); - for (final var childChange : childHbarChangesFromRecord.accountAmountsOrElse(List.of())) { + final List childHbarChangesFromRecord = childRecord.transferList() == null + ? emptyList() + : childRecord.transferList().accountAmountsOrElse(emptyList()); + for (final var childChange : childHbarChangesFromRecord) { final var accountId = childChange.accountID(); if (hbarChanges.containsKey(accountId)) { final var newAdjust = hbarChanges.merge(accountId, -childChange.amount(), Long::sum); diff --git a/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/TokenCreateHandler.java b/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/TokenCreateHandler.java index 53ed8710b94e..f3ad0f6a7981 100644 --- a/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/TokenCreateHandler.java +++ b/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/TokenCreateHandler.java @@ -20,7 +20,9 @@ import static com.hedera.hapi.node.base.ResponseCodeEnum.INVALID_AUTORENEW_ACCOUNT; import static com.hedera.hapi.node.base.ResponseCodeEnum.INVALID_CUSTOM_FEE_COLLECTOR; import static com.hedera.hapi.node.base.ResponseCodeEnum.MAX_ENTITIES_IN_PRICE_REGIME_HAVE_BEEN_CREATED; -import static com.hedera.node.app.hapi.fees.usage.crypto.CryptoOpsUsage.txnEstimateFactory; +import static com.hedera.node.app.hapi.fees.usage.SingletonUsageProperties.USAGE_PROPERTIES; +import static com.hedera.node.app.hapi.fees.usage.token.TokenOpsUsageUtils.TOKEN_OPS_USAGE_UTILS; +import static com.hedera.node.app.hapi.fees.usage.token.entities.TokenEntitySizes.TOKEN_ENTITY_SIZES; import static com.hedera.node.app.service.mono.pbj.PbjConverter.fromPbj; import static com.hedera.node.app.service.token.impl.util.TokenHandlerHelper.verifyNotEmptyKey; import static com.hedera.node.app.service.token.impl.validators.CustomFeesValidator.SENTINEL_TOKEN_ID; @@ -38,7 +40,6 @@ import com.hedera.hapi.node.token.TokenCreateTransactionBody; import com.hedera.hapi.node.transaction.CustomFee; import com.hedera.hapi.node.transaction.TransactionBody; -import com.hedera.node.app.service.mono.fees.calculation.token.txns.TokenCreateResourceUsage; import com.hedera.node.app.service.token.ReadableAccountStore; import com.hedera.node.app.service.token.impl.WritableAccountStore; import com.hedera.node.app.service.token.impl.WritableTokenRelationStore; @@ -417,14 +418,22 @@ private void addAccount( public Fees calculateFees(@NonNull final FeeContext feeContext) { requireNonNull(feeContext); final var body = feeContext.body(); + final var meta = TOKEN_OPS_USAGE_UTILS.tokenCreateUsageFrom(fromPbj(body)); final var op = body.tokenCreationOrThrow(); final var type = op.tokenType(); + final long tokenSizes = TOKEN_ENTITY_SIZES.bytesUsedToRecordTokenTransfers( + meta.getNumTokens(), meta.getFungibleNumTransfers(), meta.getNftsTransfers()) + * USAGE_PROPERTIES.legacyReceiptStorageSecs(); + return feeContext .feeCalculator( tokenSubTypeFrom(type, !op.customFeesOrElse(emptyList()).isEmpty())) - .legacyCalculate(sigValueObj -> - new TokenCreateResourceUsage(txnEstimateFactory).usageGiven(fromPbj(body), sigValueObj, null)); + .addBytesPerTransaction(meta.getBaseSize()) + .addRamByteSeconds(tokenSizes) + .addNetworkRamByteSeconds(meta.getNetworkRecordRb() * USAGE_PROPERTIES.legacyReceiptStorageSecs()) + .addRamByteSeconds((meta.getBaseSize() + meta.getCustomFeeScheduleSize()) * meta.getLifeTime()) + .calculate(); } public static SubType tokenSubTypeFrom(final TokenType tokenType, boolean hasCustomFees) { diff --git a/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/TokenMintHandler.java b/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/TokenMintHandler.java index ae16f6ab135c..9b5cbe46e1c1 100644 --- a/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/TokenMintHandler.java +++ b/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/TokenMintHandler.java @@ -38,19 +38,15 @@ import static java.util.Objects.requireNonNull; import com.hedera.hapi.node.base.HederaFunctionality; -import com.hedera.hapi.node.base.Key; -import com.hedera.hapi.node.base.KeyList; import com.hedera.hapi.node.base.NftID; import com.hedera.hapi.node.base.SubType; import com.hedera.hapi.node.base.Timestamp; import com.hedera.hapi.node.base.TokenID; import com.hedera.hapi.node.base.TokenType; -import com.hedera.hapi.node.state.token.Account; import com.hedera.hapi.node.state.token.Nft; import com.hedera.hapi.node.state.token.Token; import com.hedera.hapi.node.state.token.TokenRelation; import com.hedera.hapi.node.transaction.TransactionBody; -import com.hedera.node.app.service.token.ReadableAccountStore; import com.hedera.node.app.service.token.ReadableTokenStore; import com.hedera.node.app.service.token.impl.WritableAccountStore; import com.hedera.node.app.service.token.impl.WritableNftStore; @@ -71,9 +67,7 @@ import edu.umd.cs.findbugs.annotations.NonNull; import java.time.Instant; import java.util.ArrayList; -import java.util.Collections; import java.util.List; -import java.util.concurrent.atomic.AtomicInteger; import javax.inject.Inject; import javax.inject.Singleton; @@ -228,8 +222,7 @@ private List mintNonFungible( for (final var meta : metadata) { currentSerialNumber++; // The default sentinel account is used (0.0.0) to represent unique tokens owned by the treasury - final var uniqueToken = - buildNewlyMintedNft(treasuryAccount, consensusTime, tokenId, meta, currentSerialNumber); + final var uniqueToken = buildNewlyMintedNft(consensusTime, tokenId, meta, currentSerialNumber); nftStore.put(uniqueToken); // all minted serials should be added to the receipt mintedSerials.add(currentSerialNumber); @@ -251,7 +244,6 @@ private List mintNonFungible( /** * Builds a new unique token when minting a non-fungible token. - * @param treasuryAccount - the treasury account * @param consensusTime - the consensus time of the transaction * @param tokenId - the token id * @param meta - the metadata of the nft @@ -260,7 +252,6 @@ private List mintNonFungible( */ @NonNull private Nft buildNewlyMintedNft( - @NonNull final Account treasuryAccount, @NonNull final Instant consensusTime, @NonNull final TokenID tokenId, @NonNull final Bytes meta, @@ -285,17 +276,13 @@ public Fees calculateFees(@NonNull final FeeContext feeContext) { final var op = feeContext.body().tokenMintOrThrow(); final var subType = op.amount() > 0 ? SubType.TOKEN_FUNGIBLE_COMMON : SubType.TOKEN_NON_FUNGIBLE_UNIQUE; - final var readableAccountStore = feeContext.readableStore(ReadableAccountStore.class); - final var payerId = feeContext.payer(); - final var payerKey = readableAccountStore.getAccountById(payerId).keyOrThrow(); - final var calculator = feeContext.feeCalculator(subType); if (SubType.TOKEN_NON_FUNGIBLE_UNIQUE.equals(subType)) { calculator.resetUsage(); // The price of nft mint should be increased based on number of signatures. // The first signature is free and is accounted in the base price, so we only need to add // the price of the rest of the signatures. - calculator.addVerificationsPerTransaction(Math.max(0, numSimpleKeys(payerKey) - 1L)); + calculator.addVerificationsPerTransaction(Math.max(0, feeContext.numTxnSignatures() - 1)); } // FUTURE: lifetime parameter is not being used by the function below, in order to avoid making changes // to mono-service passed a default lifetime of 3 months here @@ -307,24 +294,4 @@ public Fees calculateFees(@NonNull final FeeContext feeContext) { calculator.addNetworkRamByteSeconds(meta.getTransferRecordDb() * USAGE_PROPERTIES.legacyReceiptStorageSecs()); return calculator.calculate(); } - - private int numSimpleKeys(final Key key) { - final var count = new AtomicInteger(0); - if (key.hasThresholdKey()) { - final var keys = - key.thresholdKeyOrThrow().keysOrElse(KeyList.DEFAULT).keysOrElse(Collections.emptyList()); - for (final var k : keys) { - count.addAndGet(numSimpleKeys(k)); - } - } else if (key.hasKeyList()) { - final var keys = key.keyListOrElse(KeyList.DEFAULT).keysOrElse(Collections.emptyList()); - for (final var k : keys) { - count.addAndGet(numSimpleKeys(k)); - } - } else { - // FUTURE: We don't need to count contractId keys here, but we need this to pass differential testing - count.incrementAndGet(); - } - return count.get(); - } } diff --git a/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/transfer/AutoAccountCreator.java b/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/transfer/AutoAccountCreator.java index a73f4c95ab87..1e4244ac064f 100644 --- a/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/transfer/AutoAccountCreator.java +++ b/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/transfer/AutoAccountCreator.java @@ -85,13 +85,15 @@ public AccountID create(@NonNull final Bytes alias, int maxAutoAssociations) { // "verification assistant" since we have no non-payer signatures to verify here final var childRecord = handleContext.dispatchRemovablePrecedingTransaction( syntheticCreation.build(), CryptoCreateRecordBuilder.class, null, handleContext.payer()); - - var fee = autoCreationFeeFor(syntheticCreation); - if (isAliasEVMAddress) { - fee += getLazyCreationFinalizationFee(); + // match mono - If superuser is the payer don't charge fee + if (!handleContext.isSuperUser()) { + var fee = autoCreationFeeFor(syntheticCreation); + if (isAliasEVMAddress) { + fee += getLazyCreationFinalizationFee(); + } + childRecord.transactionFee(fee); } childRecord.memo(memo); - childRecord.transactionFee(fee); // If the child transaction failed, we should fail the parent transaction as well and propagate the failure. validateTrue(childRecord.status() == ResponseCodeEnum.SUCCESS, childRecord.status()); diff --git a/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/transfer/CustomFeeAssessmentStep.java b/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/transfer/CustomFeeAssessmentStep.java index ce65fc369933..ead85755643d 100644 --- a/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/transfer/CustomFeeAssessmentStep.java +++ b/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/transfer/CustomFeeAssessmentStep.java @@ -30,6 +30,7 @@ import com.hedera.hapi.node.base.AccountAmount; import com.hedera.hapi.node.base.AccountID; +import com.hedera.hapi.node.base.TokenID; import com.hedera.hapi.node.base.TokenTransferList; import com.hedera.hapi.node.base.TransferList; import com.hedera.hapi.node.token.CryptoTransferTransactionBody; @@ -45,13 +46,15 @@ import com.hedera.node.app.spi.fees.FeeContext; import com.hedera.node.config.data.LedgerConfig; import com.hedera.node.config.data.TokensConfig; +import com.swirlds.base.utility.Pair; import com.swirlds.config.api.Configuration; import edu.umd.cs.findbugs.annotations.NonNull; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.function.Predicate; -import java.util.stream.Collectors; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -151,9 +154,7 @@ public CustomFeeAssessmentResult assessFees( @NonNull final Configuration config, @NonNull final ReadableAccountStore accountStore, @NonNull final Predicate autoCreationTest) { - final var ledgerConfig = config.getConfigData(LedgerConfig.class); final var tokensConfig = config.getConfigData(TokensConfig.class); - final var maxTransfersAllowed = ledgerConfig.xferBalanceChangesMaxLen(); final var maxCustomFeeDepth = tokensConfig.maxCustomFeeDepth(); // list of total assessed custom fees to be added to the record @@ -171,21 +172,12 @@ public CustomFeeAssessmentResult assessFees( validateTrue(levelNum <= maxCustomFeeDepth, CUSTOM_FEE_CHARGING_EXCEEDED_MAX_RECURSION_DEPTH); // The result after each assessment final var result = assessCustomFeesFrom( - hbarTransfers, - tokenTransfers, - tokenStore, - tokenRelStore, - maxTransfersAllowed, - accountStore, - autoCreationTest); + hbarTransfers, tokenTransfers, tokenStore, tokenRelStore, accountStore, autoCreationTest); // when there are adjustments made to given transaction, need to re-build the transaction if (!result.getAssessedCustomFees().isEmpty()) { final var modifiedInputBody = changedInputTxn(txnToAssess, result); assessedTxns.add(modifiedInputBody); - - validateTotalAdjustments(modifiedInputBody, maxTransfersAllowed); customFeesAssessed.addAll(result.getAssessedCustomFees()); - // build body from assessed custom fees to be fed to next level of assessment txnToAssess = buildBodyFromAdjustments(result); } else { @@ -207,9 +199,36 @@ public CustomFeeAssessmentResult assessFees( if (!hbarTransfers.isEmpty() || !tokenTransfers.isEmpty()) { assessedTxns.add(txnToAssess); } + // If custom fee adjustments were incurred, we need to validate the total number + // of balance adjustments and ownership changes is within our limits + if (!customFeesAssessed.isEmpty()) { + final var maxBalanceChanges = + config.getConfigData(LedgerConfig.class).xferBalanceChangesMaxLen(); + validateTrue( + numUniqueAdjustmentsIn(assessedTxns) <= maxBalanceChanges, + CUSTOM_FEE_CHARGING_EXCEEDED_MAX_ACCOUNT_AMOUNTS); + } return new CustomFeeAssessmentResult(assessedTxns, customFeesAssessed); } + private int numUniqueAdjustmentsIn(final List assessedTxns) { + var numOwnershipChanges = 0; + final Set uniqueHbarAdjustments = new HashSet<>(); + final Set> uniqueTokenAdjustments = new HashSet<>(); + for (final var txn : assessedTxns) { + for (final var aa : txn.transfersOrElse(TransferList.DEFAULT).accountAmountsOrElse(emptyList())) { + uniqueHbarAdjustments.add(aa.accountID()); + } + for (final var xfer : txn.tokenTransfersOrElse(emptyList())) { + for (final var aa : xfer.transfersOrElse(emptyList())) { + uniqueTokenAdjustments.add(Pair.of(aa.accountID(), xfer.token())); + } + numOwnershipChanges += xfer.nftTransfersOrElse(emptyList()).size(); + } + } + return numOwnershipChanges + uniqueHbarAdjustments.size() + uniqueTokenAdjustments.size(); + } + /** * Record to hold the result of custom fee assessment. * @@ -219,26 +238,6 @@ public CustomFeeAssessmentResult assessFees( public record CustomFeeAssessmentResult( List assessedTxns, List assessedCustomFees) {} - private void validateTotalAdjustments(final CryptoTransferTransactionBody op, final int maxTransfersDepth) { - final var hbarTransfers = op.transfersOrElse(TransferList.DEFAULT).accountAmountsOrElse(emptyList()).stream() - .map(AccountAmount::accountID) - .collect(Collectors.toSet()) - .size(); - var fungibleTokenChanges = 0; - var nftTransfers = 0; - for (final var xfer : op.tokenTransfersOrElse(emptyList())) { - fungibleTokenChanges += xfer.transfersOrElse(emptyList()).stream() - .map(AccountAmount::accountID) - .collect(Collectors.toSet()) - .size(); - nftTransfers += xfer.nftTransfersOrElse(emptyList()).size(); - } - - totalBalanceChanges += hbarTransfers + fungibleTokenChanges + nftTransfers; - // totalBalanceChanges should be less than maxTransfersDepth - validateTrue(totalBalanceChanges <= maxTransfersDepth, CUSTOM_FEE_CHARGING_EXCEEDED_MAX_ACCOUNT_AMOUNTS); - } - private CryptoTransferTransactionBody changedInputTxn( final CryptoTransferTransactionBody op, final AssessmentResult result) { final var copy = op.copyBuilder(); @@ -344,7 +343,6 @@ private AssessmentResult assessCustomFeesFrom( @NonNull final List tokenTransfers, @NonNull final ReadableTokenStore tokenStore, @NonNull final ReadableTokenRelationStore tokenRelStore, - final int maxTransfersSize, @NonNull final ReadableAccountStore accountStore, @NonNull final Predicate autoCreationTest) { final var result = new AssessmentResult(tokenTransfers, hbarTransfers); @@ -375,14 +373,7 @@ private AssessmentResult assessCustomFeesFrom( continue; } customFeeAssessor.assess( - sender, - feeMeta, - maxTransfersSize, - null, - result, - tokenRelStore, - accountStore, - autoCreationTest); + sender, feeMeta, null, result, tokenRelStore, accountStore, autoCreationTest); } } @@ -393,7 +384,6 @@ private AssessmentResult assessCustomFeesFrom( customFeeAssessor.assess( nftTransfer.senderAccountID(), feeMeta, - maxTransfersSize, nftTransfer.receiverAccountID(), result, tokenRelStore, diff --git a/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/transfer/customfees/AdjustmentUtils.java b/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/transfer/customfees/AdjustmentUtils.java index 39aabd156582..37c1fe4aa16a 100644 --- a/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/transfer/customfees/AdjustmentUtils.java +++ b/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/transfer/customfees/AdjustmentUtils.java @@ -107,8 +107,6 @@ public static void adjustHtsFees( // If the fee is self-denominated, we don't need it to trigger next level custom fees // So add assessments in given input transaction body. if (chargingTokenMeta.tokenId().equals(denominatingToken)) { - // If the fee is self-denominated, it should not trigger custom fees again - // So add the adjustment to previous level transaction addHtsAdjustment(inputHtsAdjustments, sender, collector, amount, denominatingToken); } else { // Any change that might trigger next level custom fees should be added to next diff --git a/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/transfer/customfees/CustomFeeAssessor.java b/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/transfer/customfees/CustomFeeAssessor.java index d6da2b0eea96..f0a11f40ce2c 100644 --- a/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/transfer/customfees/CustomFeeAssessor.java +++ b/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/transfer/customfees/CustomFeeAssessor.java @@ -16,10 +16,8 @@ package com.hedera.node.app.service.token.impl.handlers.transfer.customfees; -import static com.hedera.hapi.node.base.ResponseCodeEnum.CUSTOM_FEE_CHARGING_EXCEEDED_MAX_ACCOUNT_AMOUNTS; import static com.hedera.hapi.node.base.ResponseCodeEnum.INSUFFICIENT_SENDER_ACCOUNT_BALANCE_FOR_CUSTOM_FEE; import static com.hedera.hapi.node.base.ResponseCodeEnum.TOKEN_NOT_ASSOCIATED_TO_ACCOUNT; -import static com.hedera.node.app.spi.workflows.HandleException.validateFalse; import static com.hedera.node.app.spi.workflows.HandleException.validateTrue; import static java.util.Collections.emptyList; @@ -67,7 +65,6 @@ private int numNftTransfers(final CryptoTransferTransactionBody op) { public void assess( final AccountID sender, final CustomFeeMeta feeMeta, - final int maxTransfersSize, final AccountID receiver, final AssessmentResult result, final ReadableTokenRelationStore tokenRelStore, @@ -75,7 +72,7 @@ public void assess( final Predicate autoCreationTest) { fixedFeeAssessor.assessFixedFees(feeMeta, sender, result); - validateBalanceChanges(result, maxTransfersSize, tokenRelStore, accountStore, autoCreationTest); + revalidateAssessmentResult(result, tokenRelStore, accountStore, autoCreationTest); // A FUNGIBLE_COMMON token can have fractional fees but not royalty fees. // A NON_FUNGIBLE_UNIQUE token can have royalty fees but not fractional fees. @@ -85,20 +82,14 @@ public void assess( } else { royaltyFeeAssessor.assessRoyaltyFees(feeMeta, sender, receiver, result); } - validateBalanceChanges(result, maxTransfersSize, tokenRelStore, accountStore, autoCreationTest); + revalidateAssessmentResult(result, tokenRelStore, accountStore, autoCreationTest); } - private void validateBalanceChanges( + private void revalidateAssessmentResult( final AssessmentResult result, - final int maxTransfersSize, final ReadableTokenRelationStore tokenRelStore, final ReadableAccountStore accountStore, @NonNull final Predicate autoCreationTest) { - var inputFungibleTransfers = 0; - var newFungibleTransfers = 0; - for (final var entry : result.getMutableInputBalanceAdjustments().entrySet()) { - inputFungibleTransfers += entry.getValue().size(); - } result.getHbarAdjustments().forEach((k, v) -> { if (v < 0) { final var currentAccount = accountStore.getAccountById(k); @@ -113,7 +104,6 @@ private void validateBalanceChanges( }); for (final var entry : result.getHtsAdjustments().entrySet()) { final var entryValue = entry.getValue(); - newFungibleTransfers += entryValue.size(); for (final var entryTx : entryValue.entrySet()) { final Long htsBalanceChange = entryTx.getValue(); if (htsBalanceChange < 0) { @@ -174,13 +164,6 @@ private void validateBalanceChanges( } }); } - - final var balanceChanges = result.getHbarAdjustments().size() - + newFungibleTransfers - + result.getImmutableInputHbarAdjustments().size() - + inputFungibleTransfers - + initialNftChanges; - validateFalse(balanceChanges > maxTransfersSize, CUSTOM_FEE_CHARGING_EXCEEDED_MAX_ACCOUNT_AMOUNTS); } /** diff --git a/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/transfer/customfees/CustomFractionalFeeAssessor.java b/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/transfer/customfees/CustomFractionalFeeAssessor.java index 1dd57c801ee2..c6a1e18f2228 100644 --- a/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/transfer/customfees/CustomFractionalFeeAssessor.java +++ b/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/transfer/customfees/CustomFractionalFeeAssessor.java @@ -188,7 +188,7 @@ private Map filteredByExemptions( filteredCredits.put(account, amount); } } - return !filteredCredits.isEmpty() ? filteredCredits : creditsForToken; + return filteredCredits; } /** diff --git a/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/schemas/InitialModServiceTokenSchema.java b/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/schemas/InitialModServiceTokenSchema.java index 8e4dc0333d9f..5ef92d437ee1 100644 --- a/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/schemas/InitialModServiceTokenSchema.java +++ b/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/schemas/InitialModServiceTokenSchema.java @@ -16,6 +16,9 @@ package com.hedera.node.app.service.token.impl.schemas; +import static com.hedera.node.app.service.token.api.StakingRewardsApi.clampedStakePeriodStart; +import static com.hedera.node.app.service.token.api.StakingRewardsApi.computeRewardFromDetails; +import static com.hedera.node.app.service.token.api.StakingRewardsApi.stakePeriodAt; import static com.hedera.node.app.service.token.impl.TokenServiceImpl.ACCOUNTS_KEY; import static com.hedera.node.app.service.token.impl.TokenServiceImpl.ALIASES_KEY; import static com.hedera.node.app.service.token.impl.TokenServiceImpl.NFTS_KEY; @@ -77,9 +80,11 @@ import edu.umd.cs.findbugs.annotations.NonNull; import edu.umd.cs.findbugs.annotations.Nullable; import java.util.Arrays; +import java.util.Map; import java.util.Set; import java.util.SortedSet; import java.util.TreeSet; +import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.atomic.AtomicReference; import java.util.function.Supplier; @@ -272,13 +277,31 @@ public void migrate(@NonNull final MigrationContext ctx) { if (tokenRelsToState.get().isModified()) ((WritableKVStateBase) tokenRelsToState.get()).commit(); log.info("BBM: finished token rels"); + // ---------- Staking Info + log.info("BBM: starting staking info"); + var stakingToState = ctx.newStates().get(STAKING_INFO_KEY); + stakingFs.forEach((entityNum, merkleStakingInfo) -> { + var toStakingInfo = StakingNodeInfoStateTranslator.stakingInfoFromMerkleStakingInfo(merkleStakingInfo); + stakingToState.put( + EntityNumber.newBuilder() + .number(merkleStakingInfo.getKey().longValue()) + .build(), + toStakingInfo); + }); + if (stakingToState.isModified()) ((WritableKVStateBase) stakingToState).commit(); + final var stakingConfig = ctx.configuration().getConfigData(StakingConfig.class); + final var currentStakingPeriod = + stakePeriodAt(mnc.consensusTimeOfLastHandledTxn(), stakingConfig.periodMins()); + final var numStoredPeriods = stakingConfig.rewardHistoryNumStoredPeriods(); + log.info("BBM: finished staking info"); + // ---------- Accounts log.info("BBM: doing accounts"); - final var numAccountInsertions = new AtomicLong(); final var numAliasesInsertions = new AtomicLong(); final var acctsToState = new AtomicReference<>(ctx.newStates().get(ACCOUNTS_KEY)); final var aliasesState = new AtomicReference<>(ctx.newStates().get(ALIASES_KEY)); + final Map pendingRewards = new ConcurrentHashMap<>(); try { VirtualMapLike.from(acctsFs) .extractVirtualMapData( @@ -294,6 +317,19 @@ public void migrate(@NonNull final MigrationContext ctx) { .accountNum(acctNum) .build(), toAcct); + if (!toAcct.deleted() && !toAcct.declineReward() && toAcct.hasStakedNodeId()) { + final var stakedNodeId = toAcct.stakedNodeIdOrThrow(); + final var stakingInfo = stakingToState.get(new EntityNumber(stakedNodeId)); + final var reward = computeRewardFromDetails( + toAcct, + stakingInfo, + currentStakingPeriod, + clampedStakePeriodStart( + toAcct.stakePeriodStart(), + currentStakingPeriod, + numStoredPeriods)); + pendingRewards.merge(stakedNodeId, reward, Long::sum); + } if (numAccountInsertions.incrementAndGet() % 10_000 == 0) { // Make sure we are flushing data to disk as we go ((WritableKVStateBase) acctsToState.get()).commit(); @@ -319,6 +355,17 @@ public void migrate(@NonNull final MigrationContext ctx) { throw new RuntimeException(e); } if (acctsToState.get().isModified()) ((WritableKVStateBase) acctsToState.get()).commit(); + // Also persist the per-node pending reward information + stakingFs.forEach((entityNum, ignore) -> { + final var toKey = new EntityNumber(entityNum.longValue()); + final var info = requireNonNull(stakingToState.get(toKey)); + stakingToState.put( + toKey, + info.copyBuilder() + .pendingRewards(pendingRewards.getOrDefault(toKey.number(), 0L)) + .build()); + }); + if (stakingToState.isModified()) ((WritableKVStateBase) stakingToState).commit(); log.info("BBM: finished accts"); // ---------- Tokens @@ -332,20 +379,6 @@ public void migrate(@NonNull final MigrationContext ctx) { if (tokensToState.isModified()) ((WritableKVStateBase) tokensToState).commit(); log.info("BBM: finished tokens (fung and non-fung)"); - // ---------- Staking Info - log.info("BBM: starting staking info"); - var stakingToState = ctx.newStates().get(STAKING_INFO_KEY); - stakingFs.forEach((entityNum, merkleStakingInfo) -> { - var toStakingInfo = StakingNodeInfoStateTranslator.stakingInfoFromMerkleStakingInfo(merkleStakingInfo); - stakingToState.put( - EntityNumber.newBuilder() - .number(merkleStakingInfo.getKey().longValue()) - .build(), - toStakingInfo); - }); - if (stakingToState.isModified()) ((WritableKVStateBase) stakingToState).commit(); - log.info("BBM: finished staking info"); - // ---------- Staking Rewards log.info("BBM: starting staking rewards"); final var srToState = ctx.newStates().getSingleton(STAKING_NETWORK_REWARDS_KEY); diff --git a/hedera-node/hedera-token-service-impl/src/test/java/com/hedera/node/app/service/token/impl/test/ReadableTokenStoreImplTest.java b/hedera-node/hedera-token-service-impl/src/test/java/com/hedera/node/app/service/token/impl/test/ReadableTokenStoreImplTest.java index cb6d901498ac..fff5e0a5409d 100644 --- a/hedera-node/hedera-token-service-impl/src/test/java/com/hedera/node/app/service/token/impl/test/ReadableTokenStoreImplTest.java +++ b/hedera-node/hedera-token-service-impl/src/test/java/com/hedera/node/app/service/token/impl/test/ReadableTokenStoreImplTest.java @@ -22,9 +22,12 @@ import static org.junit.jupiter.api.Assertions.assertNull; import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.BDDMockito.given; +import static org.mockito.Mockito.verify; import com.hedera.hapi.node.base.TokenID; +import com.hedera.hapi.node.state.common.EntityIDPair; import com.hedera.hapi.node.state.token.Token; +import com.hedera.hapi.node.state.token.TokenRelation; import com.hedera.node.app.service.mono.pbj.PbjConverter; import com.hedera.node.app.service.mono.state.submerkle.EntityId; import com.hedera.node.app.service.mono.state.submerkle.FcCustomFee; @@ -122,4 +125,10 @@ void returnSizeOfState() { final var store = new ReadableTokenStoreImpl(readableStates); assertEquals(readableStates.get(TOKENS).size(), store.sizeOfState()); } + + @Test + void warmWarmsUnderlyingState(@Mock ReadableKVState tokenRelations) { + subject.warm(tokenId); + verify(tokens).warm(tokenId); + } } diff --git a/hedera-node/hedera-token-service-impl/src/test/java/com/hedera/node/app/service/token/impl/test/api/TokenServiceApiImplTest.java b/hedera-node/hedera-token-service-impl/src/test/java/com/hedera/node/app/service/token/impl/test/api/TokenServiceApiImplTest.java index e3032e717c0b..8141ccbd2844 100644 --- a/hedera-node/hedera-token-service-impl/src/test/java/com/hedera/node/app/service/token/impl/test/api/TokenServiceApiImplTest.java +++ b/hedera-node/hedera-token-service-impl/src/test/java/com/hedera/node/app/service/token/impl/test/api/TokenServiceApiImplTest.java @@ -527,28 +527,33 @@ void missingPayerAccount() { AccountID.newBuilder().accountNum(12345678L).build(); assertThatThrownBy(() -> subject.chargeFees(unknownAccountId, NODE_ACCOUNT_ID, fees, rb)) .isInstanceOf(IllegalStateException.class) - .hasMessage("Payer account does not exist"); + .hasMessage("Payer account %s does not exist", unknownAccountId); } @Test void missingFundingAccount() { // Given a configuration that refers to a funding account that DOES NOT EXIST - final var config = - configBuilder.withValue("ledger.fundingAccount", 12345678L).getOrCreateConfig(); + final var unknownAccountId = + AccountID.newBuilder().accountNum(12345678L).build(); + final var config = configBuilder + .withValue("ledger.fundingAccount", unknownAccountId.accountNumOrThrow()) + .getOrCreateConfig(); subject = new TokenServiceApiImpl(config, stakingValidator, writableStates, customFeeTest); // When we try to charge a payer account that DOES exist, then we get an IllegalStateException assertThatThrownBy(() -> subject.chargeFees(EOA_ACCOUNT_ID, NODE_ACCOUNT_ID, fees, rb)) .isInstanceOf(IllegalStateException.class) - .hasMessage("Funding account does not exist"); + .hasMessage("Funding account %s does not exist", unknownAccountId); } @Test void missingStakingRewardAccount() { // Given a configuration that refers to a staking reward account that DOES NOT EXIST + final var unknownAccountId = + AccountID.newBuilder().accountNum(12345678L).build(); final var config = configBuilder - .withValue("accounts.stakingRewardAccount", 12345678L) + .withValue("accounts.stakingRewardAccount", unknownAccountId.accountNumOrThrow()) .getOrCreateConfig(); subject = new TokenServiceApiImpl(config, stakingValidator, writableStates, customFeeTest); @@ -556,14 +561,16 @@ void missingStakingRewardAccount() { // When we try to charge a payer account that DOES exist, then we get an IllegalStateException assertThatThrownBy(() -> subject.chargeFees(EOA_ACCOUNT_ID, NODE_ACCOUNT_ID, fees, rb)) .isInstanceOf(IllegalStateException.class) - .hasMessage("Staking reward account does not exist"); + .hasMessage("Staking reward account %s does not exist", unknownAccountId); } @Test void missingNodeRewardAccount() { // Given a configuration that refers to a node reward account that DOES NOT EXIST + final var unknownAccountId = + AccountID.newBuilder().accountNum(12345678L).build(); final var config = configBuilder - .withValue("accounts.nodeRewardAccount", 12345678L) + .withValue("accounts.nodeRewardAccount", unknownAccountId.accountNumOrThrow()) .getOrCreateConfig(); subject = new TokenServiceApiImpl(config, stakingValidator, writableStates, customFeeTest); @@ -571,7 +578,7 @@ void missingNodeRewardAccount() { // When we try to charge a payer account that DOES exist, then we get an IllegalStateException assertThatThrownBy(() -> subject.chargeFees(EOA_ACCOUNT_ID, NODE_ACCOUNT_ID, fees, rb)) .isInstanceOf(IllegalStateException.class) - .hasMessage("Node reward account does not exist"); + .hasMessage("Node reward account %s does not exist", unknownAccountId); } @Test diff --git a/hedera-node/hedera-token-service-impl/src/test/java/com/hedera/node/app/service/token/impl/test/handlers/FinalizeChildRecordHandlerTest.java b/hedera-node/hedera-token-service-impl/src/test/java/com/hedera/node/app/service/token/impl/test/handlers/FinalizeChildRecordHandlerTest.java index d975b181e984..146375ca2e71 100644 --- a/hedera-node/hedera-token-service-impl/src/test/java/com/hedera/node/app/service/token/impl/test/handlers/FinalizeChildRecordHandlerTest.java +++ b/hedera-node/hedera-token-service-impl/src/test/java/com/hedera/node/app/service/token/impl/test/handlers/FinalizeChildRecordHandlerTest.java @@ -17,16 +17,22 @@ package com.hedera.node.app.service.token.impl.test.handlers; import static com.hedera.hapi.node.base.ResponseCodeEnum.FAIL_INVALID; +import static com.hedera.hapi.node.base.ResponseCodeEnum.SUCCESS; import static com.hedera.node.app.service.token.impl.handlers.BaseTokenHandler.asToken; import static com.hedera.node.app.spi.fixtures.workflows.ExceptionConditions.responseCode; import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.mockito.BDDMockito.given; import static org.mockito.Mock.Strictness.LENIENT; +import static org.mockito.Mockito.atMostOnce; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.verify; import com.hedera.hapi.node.base.AccountAmount; import com.hedera.hapi.node.base.AccountID; +import com.hedera.hapi.node.base.HederaFunctionality; import com.hedera.hapi.node.base.NftID; import com.hedera.hapi.node.base.NftTransfer; +import com.hedera.hapi.node.base.ResponseCodeEnum; import com.hedera.hapi.node.base.TokenID; import com.hedera.hapi.node.base.TokenTransferList; import com.hedera.hapi.node.base.TransferList; @@ -101,7 +107,8 @@ public void setUp() { @Test void handleNullArg() { - assertThatThrownBy(() -> subject.finalizeChildRecord(context)).isInstanceOf(NullPointerException.class); + assertThatThrownBy(() -> subject.finalizeChildRecord(context, HederaFunctionality.CRYPTO_DELETE)) + .isInstanceOf(NullPointerException.class); } @Test @@ -115,7 +122,7 @@ void handleHbarNetTransferAmountIsNotZero() { context = mockContext(); given(context.configuration()).willReturn(configuration); - assertThatThrownBy(() -> subject.finalizeChildRecord(context)) + assertThatThrownBy(() -> subject.finalizeChildRecord(context, HederaFunctionality.CRYPTO_DELETE)) .isInstanceOf(HandleException.class) .has(responseCode(FAIL_INVALID)); } @@ -137,7 +144,7 @@ void handleHbarAccountBalanceIsNegative() { context = mockContext(); given(context.configuration()).willReturn(configuration); - assertThatThrownBy(() -> subject.finalizeChildRecord(context)) + assertThatThrownBy(() -> subject.finalizeChildRecord(context, HederaFunctionality.CRYPTO_DELETE)) .isInstanceOf(HandleException.class) .has(responseCode(FAIL_INVALID)); } @@ -157,9 +164,12 @@ void handleHbarAccountBalanceDoesntChange() { context = mockContext(); given(context.configuration()).willReturn(configuration); - subject.finalizeChildRecord(context); + given(recordBuilder.status()).willReturn(SUCCESS); + subject.finalizeChildRecord(context, HederaFunctionality.CRYPTO_DELETE); - BDDMockito.verifyNoInteractions(recordBuilder); + BDDMockito.verify(recordBuilder, atMostOnce()).status(); + BDDMockito.verify(recordBuilder, atMostOnce()).transferList(TransferList.DEFAULT); + BDDMockito.verifyNoMoreInteractions(recordBuilder); } @Test @@ -184,7 +194,7 @@ void handleHbarTransfersToNewAccountSuccess() { context = mockContext(); given(context.configuration()).willReturn(configuration); - subject.finalizeChildRecord(context); + subject.finalizeChildRecord(context, HederaFunctionality.CRYPTO_DELETE); BDDMockito.verify(recordBuilder) .transferList(TransferList.newBuilder() @@ -200,6 +210,42 @@ void handleHbarTransfersToNewAccountSuccess() { .build()); } + @Test + void setsDefaultTransferListIfSucceededChildRecord() { + readableAccountStore = TestStoreFactory.newReadableStoreWithAccounts(); + writableAccountStore = TestStoreFactory.newWritableStoreWithAccounts(); + readableTokenRelStore = TestStoreFactory.newReadableStoreWithTokenRels(); + writableTokenRelStore = TestStoreFactory.newWritableStoreWithTokenRels(); + readableNftStore = TestStoreFactory.newReadableStoreWithNfts(); + writableNftStore = TestStoreFactory.newWritableStoreWithNfts(); + writableTokenStore = TestStoreFactory.newWritableStoreWithTokens(); + context = mockContext(); + given(recordBuilder.status()).willReturn(ResponseCodeEnum.SUCCESS); + given(context.configuration()).willReturn(configuration); + + subject.finalizeChildRecord(context, HederaFunctionality.CRYPTO_DELETE); + + BDDMockito.verify(recordBuilder).transferList(TransferList.DEFAULT); + } + + @Test + void doesntSetDefaultTransferListIfFailedChildRecord() { + readableAccountStore = TestStoreFactory.newReadableStoreWithAccounts(); + writableAccountStore = TestStoreFactory.newWritableStoreWithAccounts(); + readableTokenRelStore = TestStoreFactory.newReadableStoreWithTokenRels(); + writableTokenRelStore = TestStoreFactory.newWritableStoreWithTokenRels(); + readableNftStore = TestStoreFactory.newReadableStoreWithNfts(); + writableNftStore = TestStoreFactory.newWritableStoreWithNfts(); + writableTokenStore = TestStoreFactory.newWritableStoreWithTokens(); + context = mockContext(); + given(recordBuilder.status()).willReturn(ResponseCodeEnum.INSUFFICIENT_ACCOUNT_BALANCE); + given(context.configuration()).willReturn(configuration); + + subject.finalizeChildRecord(context, HederaFunctionality.CRYPTO_DELETE); + + BDDMockito.verify(recordBuilder, never()).transferList(TransferList.DEFAULT); + } + @Test void handleHbarTransfersToExistingAccountSuccess() { // This test case handles successfully transferring hbar only (no tokens) @@ -225,7 +271,7 @@ void handleHbarTransfersToExistingAccountSuccess() { context = mockContext(); given(context.configuration()).willReturn(configuration); - subject.finalizeChildRecord(context); + subject.finalizeChildRecord(context, HederaFunctionality.CRYPTO_DELETE); BDDMockito.verify(recordBuilder) .transferList(TransferList.newBuilder() @@ -254,7 +300,7 @@ void handleFungibleTokenBalanceIsNegative() { context = mockContext(); given(context.configuration()).willReturn(configuration); - assertThatThrownBy(() -> subject.finalizeChildRecord(context)) + assertThatThrownBy(() -> subject.finalizeChildRecord(context, HederaFunctionality.CRYPTO_DELETE)) .isInstanceOf(HandleException.class) .has(responseCode(FAIL_INVALID)); } @@ -274,10 +320,14 @@ void handleFungibleTransferTokenBalancesDontChange() { writableTokenRelStore.put(tokenRel.copyBuilder().frozen(true).build()); context = mockContext(); given(context.configuration()).willReturn(configuration); + given(recordBuilder.status()).willReturn(SUCCESS); - subject.finalizeChildRecord(context); + subject.finalizeChildRecord(context, HederaFunctionality.CRYPTO_DELETE); - BDDMockito.verifyNoInteractions(recordBuilder); + verify(recordBuilder).status(); + BDDMockito.verify(recordBuilder, atMostOnce()).status(); + BDDMockito.verify(recordBuilder, atMostOnce()).transferList(TransferList.DEFAULT); + BDDMockito.verifyNoMoreInteractions(recordBuilder); } @Test @@ -319,7 +369,7 @@ void handleFungibleTransfersToNewAccountSuccess() { context = mockContext(); given(context.configuration()).willReturn(configuration); - subject.finalizeChildRecord(context); + subject.finalizeChildRecord(context, HederaFunctionality.CRYPTO_DELETE); BDDMockito.verify(recordBuilder) .tokenTransferLists(List.of(TokenTransferList.newBuilder() @@ -411,7 +461,7 @@ void handleFungibleTransfersToExistingAccountsSuccess() { context = mockContext(); given(context.configuration()).willReturn(configuration); - subject.finalizeChildRecord(context); + subject.finalizeChildRecord(context, HederaFunctionality.CRYPTO_DELETE); BDDMockito.verify(recordBuilder) .tokenTransferLists(List.of( @@ -476,7 +526,7 @@ void handleNftTransfersToNewAccountSuccess() { context = mockContext(); given(context.configuration()).willReturn(configuration); - subject.finalizeChildRecord(context); + subject.finalizeChildRecord(context, HederaFunctionality.CRYPTO_DELETE); BDDMockito.verify(recordBuilder) .tokenTransferLists(List.of(TokenTransferList.newBuilder() @@ -514,7 +564,7 @@ void handleNewNftTransferToAccountSuccess() { context = mockContext(); given(context.configuration()).willReturn(configuration); - subject.finalizeChildRecord(context); + subject.finalizeChildRecord(context, HederaFunctionality.CRYPTO_DELETE); BDDMockito.verify(recordBuilder) .tokenTransferLists(List.of(TokenTransferList.newBuilder() @@ -588,7 +638,7 @@ void handleNftTransfersToExistingAccountSuccess() { .getOrCreateConfig(); given(context.configuration()).willReturn(config); - subject.finalizeChildRecord(context); + subject.finalizeChildRecord(context, HederaFunctionality.CRYPTO_DELETE); // The transfer list should be sorted by token ID, then by serial number BDDMockito.verify(recordBuilder) @@ -624,7 +674,7 @@ void handleNftTransfersToExistingAccountSuccess() { .build()) .build())); - subject.finalizeChildRecord(context); + subject.finalizeChildRecord(context, HederaFunctionality.CRYPTO_DELETE); } @Test @@ -680,7 +730,7 @@ void handleCombinedHbarAndTokenTransfersSuccess() { context = mockContext(); given(context.configuration()).willReturn(configuration); - subject.finalizeChildRecord(context); + subject.finalizeChildRecord(context, HederaFunctionality.CRYPTO_DELETE); BDDMockito.verify(recordBuilder) .transferList(TransferList.newBuilder() diff --git a/hedera-node/hedera-token-service-impl/src/test/java/com/hedera/node/app/service/token/impl/test/handlers/FinalizeParentRecordHandlerTest.java b/hedera-node/hedera-token-service-impl/src/test/java/com/hedera/node/app/service/token/impl/test/handlers/FinalizeParentRecordHandlerTest.java index 45311dd1008e..16ce4943a379 100644 --- a/hedera-node/hedera-token-service-impl/src/test/java/com/hedera/node/app/service/token/impl/test/handlers/FinalizeParentRecordHandlerTest.java +++ b/hedera-node/hedera-token-service-impl/src/test/java/com/hedera/node/app/service/token/impl/test/handlers/FinalizeParentRecordHandlerTest.java @@ -32,6 +32,7 @@ import com.hedera.hapi.node.base.AccountAmount; import com.hedera.hapi.node.base.AccountID; +import com.hedera.hapi.node.base.HederaFunctionality; import com.hedera.hapi.node.base.NftID; import com.hedera.hapi.node.base.NftTransfer; import com.hedera.hapi.node.base.TokenID; @@ -118,7 +119,8 @@ public void setUp() { @Test void handleNullArg() { - assertThatThrownBy(() -> subject.finalizeParentRecord(ACCOUNT_1212_ID, context)) + assertThatThrownBy( + () -> subject.finalizeParentRecord(ACCOUNT_1212_ID, context, HederaFunctionality.CRYPTO_DELETE)) .isInstanceOf(NullPointerException.class); } @@ -135,7 +137,8 @@ void handleHbarNetTransferAmountIsNotZero() { given(context.userTransactionRecordBuilder(SingleTransactionRecordBuilder.class)) .willReturn(mock(SingleTransactionRecordBuilder.class)); - assertThatThrownBy(() -> subject.finalizeParentRecord(ACCOUNT_1212_ID, context)) + assertThatThrownBy( + () -> subject.finalizeParentRecord(ACCOUNT_1212_ID, context, HederaFunctionality.CRYPTO_DELETE)) .isInstanceOf(HandleException.class) .has(responseCode(FAIL_INVALID)); } @@ -159,7 +162,8 @@ void handleHbarAccountBalanceIsNegative() { given(context.userTransactionRecordBuilder(SingleTransactionRecordBuilder.class)) .willReturn(mock(SingleTransactionRecordBuilder.class)); - assertThatThrownBy(() -> subject.finalizeParentRecord(ACCOUNT_1212_ID, context)) + assertThatThrownBy( + () -> subject.finalizeParentRecord(ACCOUNT_1212_ID, context, HederaFunctionality.CRYPTO_DELETE)) .isInstanceOf(HandleException.class) .has(responseCode(FAIL_INVALID)); } @@ -179,7 +183,7 @@ void handleHbarAccountBalanceDoesntChange() { context = mockContext(); given(context.configuration()).willReturn(configuration); - subject.finalizeParentRecord(ACCOUNT_1212_ID, context); + subject.finalizeParentRecord(ACCOUNT_1212_ID, context, HederaFunctionality.CRYPTO_DELETE); BDDMockito.verifyNoInteractions(recordBuilder); } @@ -206,7 +210,7 @@ void handleHbarTransfersToNewAccountSuccess() { context = mockContext(); given(context.configuration()).willReturn(configuration); - subject.finalizeParentRecord(ACCOUNT_1212_ID, context); + subject.finalizeParentRecord(ACCOUNT_1212_ID, context, HederaFunctionality.CRYPTO_DELETE); BDDMockito.verify(recordBuilder) .transferList(TransferList.newBuilder() @@ -271,7 +275,7 @@ void handleHbarTransfersToAccountDeductsFromChildRecordsSuccess() { .when(context) .forEachChildRecord(any(), any()); - subject.finalizeParentRecord(ACCOUNT_1212_ID, context); + subject.finalizeParentRecord(ACCOUNT_1212_ID, context, HederaFunctionality.CRYPTO_DELETE); final var transferAmount1212 = -amountToTransfer + childRecordTransfer; final var transferAmount3434 = amountToTransfer - childRecordTransfer; @@ -347,7 +351,7 @@ void handleFungibleTokenTransfersToAccountDeductsFromChildRecordsSuccess() { .build()) .build())); - subject.finalizeParentRecord(ACCOUNT_1212_ID, context); + subject.finalizeParentRecord(ACCOUNT_1212_ID, context, HederaFunctionality.CRYPTO_DELETE); BDDMockito.verify(recordBuilder) .tokenTransferLists(List.of(TokenTransferList.newBuilder() @@ -395,7 +399,7 @@ void accountsForDissociatedTokenRelations() { context = mockContext(); given(context.configuration()).willReturn(configuration); - subject.finalizeParentRecord(ACCOUNT_1212_ID, context); + subject.finalizeParentRecord(ACCOUNT_1212_ID, context, HederaFunctionality.CRYPTO_DELETE); BDDMockito.verify(recordBuilder) .tokenTransferLists(List.of(TokenTransferList.newBuilder() @@ -434,7 +438,7 @@ void nftBurnsOrWipesAreAccounted() { context = mockContext(); given(context.configuration()).willReturn(configuration); - subject.finalizeParentRecord(ACCOUNT_1212_ID, context); + subject.finalizeParentRecord(ACCOUNT_1212_ID, context, HederaFunctionality.CRYPTO_DELETE); BDDMockito.verify(recordBuilder) .tokenTransferLists(List.of(TokenTransferList.newBuilder() @@ -472,7 +476,7 @@ void handleHbarTransfersToExistingAccountSuccess() { context = mockContext(); given(context.configuration()).willReturn(configuration); - subject.finalizeParentRecord(ACCOUNT_1212_ID, context); + subject.finalizeParentRecord(ACCOUNT_1212_ID, context, HederaFunctionality.CRYPTO_DELETE); BDDMockito.verify(recordBuilder) .transferList(TransferList.newBuilder() @@ -502,7 +506,8 @@ void handleFungibleTokenBalanceIsNegative() { context = mockContext(); given(context.configuration()).willReturn(configuration); - assertThatThrownBy(() -> subject.finalizeParentRecord(ACCOUNT_1212_ID, context)) + assertThatThrownBy( + () -> subject.finalizeParentRecord(ACCOUNT_1212_ID, context, HederaFunctionality.CRYPTO_DELETE)) .isInstanceOf(HandleException.class) .has(responseCode(FAIL_INVALID)); } @@ -523,7 +528,7 @@ void handleFungibleTransferTokenBalancesDontChange() { context = mockContext(); given(context.configuration()).willReturn(configuration); - subject.finalizeParentRecord(ACCOUNT_1212_ID, context); + subject.finalizeParentRecord(ACCOUNT_1212_ID, context, HederaFunctionality.CRYPTO_DELETE); BDDMockito.verifyNoInteractions(recordBuilder); } @@ -564,7 +569,7 @@ void handleFungibleTransfersToNewAccountSuccess() { context = mockContext(); given(context.configuration()).willReturn(configuration); - subject.finalizeParentRecord(ACCOUNT_1212_ID, context); + subject.finalizeParentRecord(ACCOUNT_1212_ID, context, HederaFunctionality.CRYPTO_DELETE); BDDMockito.verify(recordBuilder) .tokenTransferLists(List.of(TokenTransferList.newBuilder() @@ -655,7 +660,7 @@ void handleFungibleTransfersToExistingAccountsSuccess() { context = mockContext(); given(context.configuration()).willReturn(configuration); - subject.finalizeParentRecord(ACCOUNT_1212_ID, context); + subject.finalizeParentRecord(ACCOUNT_1212_ID, context, HederaFunctionality.CRYPTO_DELETE); BDDMockito.verify(recordBuilder) .tokenTransferLists(List.of( @@ -720,7 +725,7 @@ void handleNftTransfersToNewAccountSuccess() { context = mockContext(); given(context.configuration()).willReturn(configuration); - subject.finalizeParentRecord(ACCOUNT_1212_ID, context); + subject.finalizeParentRecord(ACCOUNT_1212_ID, context, HederaFunctionality.CRYPTO_DELETE); BDDMockito.verify(recordBuilder) .tokenTransferLists(List.of(TokenTransferList.newBuilder() @@ -758,7 +763,7 @@ void handleNewNftTransferToAccountSuccess() { context = mockContext(); given(context.configuration()).willReturn(configuration); - subject.finalizeParentRecord(ACCOUNT_1212_ID, context); + subject.finalizeParentRecord(ACCOUNT_1212_ID, context, HederaFunctionality.CRYPTO_DELETE); BDDMockito.verify(recordBuilder) .tokenTransferLists(List.of(TokenTransferList.newBuilder() @@ -832,7 +837,7 @@ void handleNftTransfersToExistingAccountSuccess() { .getOrCreateConfig(); given(context.configuration()).willReturn(config); - subject.finalizeParentRecord(ACCOUNT_1212_ID, context); + subject.finalizeParentRecord(ACCOUNT_1212_ID, context, HederaFunctionality.CRYPTO_DELETE); // The transfer list should be sorted by token ID, then by serial number BDDMockito.verify(recordBuilder) @@ -868,7 +873,7 @@ void handleNftTransfersToExistingAccountSuccess() { .build()) .build())); - subject.finalizeParentRecord(ACCOUNT_1212_ID, context); + subject.finalizeParentRecord(ACCOUNT_1212_ID, context, HederaFunctionality.CRYPTO_DELETE); verify(stakingRewardsHandler, never()).applyStakingRewards(context); } @@ -922,7 +927,7 @@ void handleCombinedHbarAndTokenTransfersSuccess() { context = mockContext(); given(context.configuration()).willReturn(configuration); - subject.finalizeParentRecord(ACCOUNT_1212_ID, context); + subject.finalizeParentRecord(ACCOUNT_1212_ID, context, HederaFunctionality.CRYPTO_DELETE); BDDMockito.verify(recordBuilder) .transferList(TransferList.newBuilder() diff --git a/hedera-node/hedera-token-service-impl/src/test/java/com/hedera/node/app/service/token/impl/test/handlers/TokenMintHandlerTest.java b/hedera-node/hedera-token-service-impl/src/test/java/com/hedera/node/app/service/token/impl/test/handlers/TokenMintHandlerTest.java index d19a4f9a28c9..3d2608c7601c 100644 --- a/hedera-node/hedera-token-service-impl/src/test/java/com/hedera/node/app/service/token/impl/test/handlers/TokenMintHandlerTest.java +++ b/hedera-node/hedera-token-service-impl/src/test/java/com/hedera/node/app/service/token/impl/test/handlers/TokenMintHandlerTest.java @@ -30,7 +30,10 @@ import static org.assertj.core.api.AssertionsForClassTypes.assertThatNoException; import static org.assertj.core.api.AssertionsForClassTypes.assertThatThrownBy; import static org.mockito.BDDMockito.given; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import com.hedera.hapi.node.base.SubType; import com.hedera.hapi.node.base.TokenID; import com.hedera.hapi.node.base.Transaction; import com.hedera.hapi.node.base.TransactionID; @@ -41,6 +44,8 @@ import com.hedera.node.app.service.token.impl.test.handlers.util.CryptoTokenHandlerTestBase; import com.hedera.node.app.service.token.impl.validators.TokenSupplyChangeOpsValidator; import com.hedera.node.app.service.token.records.TokenMintRecordBuilder; +import com.hedera.node.app.spi.fees.FeeCalculator; +import com.hedera.node.app.spi.fees.FeeContext; import com.hedera.node.app.spi.fixtures.workflows.FakePreHandleContext; import com.hedera.node.app.spi.workflows.HandleContext; import com.hedera.node.app.spi.workflows.HandleException; @@ -185,7 +190,7 @@ void allowsZeroAmount() { } @Test - void rejectsBothAMountAndMetadataFields() throws PreCheckException { + void rejectsBothAmountAndMetadataFields() throws PreCheckException { final var txn = givenMintTxn(fungibleTokenId, List.of(metadata1), 2L); final var context = new FakePreHandleContext(readableAccountStore, txn); assertThatThrownBy(() -> subject.preHandle(context)) @@ -246,6 +251,26 @@ void validatesMintingResourcesLimit() { .has(responseCode(MAX_NFTS_IN_PRICE_REGIME_HAVE_BEEN_MINTED)); } + @Test + void calculateFeesAddsCorrectFeeComponents() { + final var metadata = List.of(metadata1, metadata2); + final var txnBody = givenMintTxn(nonFungibleTokenId, metadata, null); + + final var feeCalculator = mock(FeeCalculator.class); + final var feeContext = mock(FeeContext.class); + given(feeContext.body()).willReturn(txnBody); + given(feeContext.feeCalculator(SubType.TOKEN_NON_FUNGIBLE_UNIQUE)).willReturn(feeCalculator); + final var numSigs = 5; + given(feeContext.numTxnSignatures()).willReturn(numSigs); + + // We don't need the result of this call since the fee calculator is a mock + subject.calculateFees(feeContext); + verify(feeCalculator).addVerificationsPerTransaction(numSigs - 1); + verify(feeCalculator).addBytesPerTransaction(metadata.size()); + verify(feeCalculator).addRamByteSeconds(0); + verify(feeCalculator).addNetworkRamByteSeconds(0); + } + private TransactionBody givenMintTxn(final TokenID tokenId, final List metadata, final Long amount) { final var transactionID = TransactionID.newBuilder().accountID(payerId).transactionValidStart(consensusTimestamp); diff --git a/hedera-node/hedera-token-service-impl/src/test/java/com/hedera/node/app/service/token/impl/test/handlers/transfer/CustomFeeAssessmentStepTest.java b/hedera-node/hedera-token-service-impl/src/test/java/com/hedera/node/app/service/token/impl/test/handlers/transfer/CustomFeeAssessmentStepTest.java index 5066908f7820..f6bdef2dc199 100644 --- a/hedera-node/hedera-token-service-impl/src/test/java/com/hedera/node/app/service/token/impl/test/handlers/transfer/CustomFeeAssessmentStepTest.java +++ b/hedera-node/hedera-token-service-impl/src/test/java/com/hedera/node/app/service/token/impl/test/handlers/transfer/CustomFeeAssessmentStepTest.java @@ -337,9 +337,9 @@ void htsFixedFeeAndRoyaltyFeeWithFallbackNetOfTransfersSelfDenomination() { fungibleTokenId, Map.of( feeCollectorId, - 21L, + 20L, tokensReceiver, - -21L)); // 10 is for fallback royalty fee from given transaction. + -20L)); // 10 is for fallback royalty fee from given transaction. // When assessing this level, we have a fixed fee of 10 and fractional fee of 1 (self denominated) final var expectedGivenOpTokenTransfers = Map.of( @@ -411,10 +411,10 @@ void multiLevelTransfers() { final var expectedLevel2TokenTransfers = Map.of( fungibleTokenId, Map.of( - payerId, -41L, // when fungibleTokenIDC is assessed it has fixed fee in A , so moves + payerId, -40L, // when fungibleTokenIDC is assessed it has fixed fee in A , so moves // to this level and when assessing this level , C has fractional fee of A. // Since fractional fee is self denominated, causes change in same level - feeCollectorId, 41L)); + feeCollectorId, 40L)); assertThatTransferListContains(givenOp.tokenTransfers(), expectedGivenOpTokenTransfers); assertThatTransferListContains(level1Op.tokenTransfers(), expectedLevel1TokenTransfers); diff --git a/hedera-node/hedera-token-service/build.gradle.kts b/hedera-node/hedera-token-service/build.gradle.kts index c9e63060e433..d26b1c916e25 100644 --- a/hedera-node/hedera-token-service/build.gradle.kts +++ b/hedera-node/hedera-token-service/build.gradle.kts @@ -16,7 +16,7 @@ plugins { id("com.hedera.hashgraph.conventions") - id("java-test-fixtures") + id("com.hedera.hashgraph.java-test-fixtures") } description = "Hedera Token Service API" diff --git a/hedera-node/hedera-token-service/src/main/java/com/hedera/node/app/service/token/ReadableTokenStore.java b/hedera-node/hedera-token-service/src/main/java/com/hedera/node/app/service/token/ReadableTokenStore.java index 422eab5b87ed..277e26d24097 100644 --- a/hedera-node/hedera-token-service/src/main/java/com/hedera/node/app/service/token/ReadableTokenStore.java +++ b/hedera-node/hedera-token-service/src/main/java/com/hedera/node/app/service/token/ReadableTokenStore.java @@ -92,5 +92,14 @@ public boolean hasPauseKey() { * Returns the number of tokens in the state. * @return the number of tokens in the state. */ - public long sizeOfState(); + long sizeOfState(); + + /** + * Warms the system by preloading a token into memory + * + *

The default implementation is empty because preloading data into memory is only used for some implementations. + * + * @param tokenId the token id + */ + default void warm(@NonNull TokenID tokenId) {} } diff --git a/hedera-node/hedera-token-service/src/main/java/com/hedera/node/app/service/token/api/StakingRewardsApi.java b/hedera-node/hedera-token-service/src/main/java/com/hedera/node/app/service/token/api/StakingRewardsApi.java index fc293217dadc..ed5582ef0f32 100644 --- a/hedera-node/hedera-token-service/src/main/java/com/hedera/node/app/service/token/api/StakingRewardsApi.java +++ b/hedera-node/hedera-token-service/src/main/java/com/hedera/node/app/service/token/api/StakingRewardsApi.java @@ -126,7 +126,7 @@ static long estimatedCurrentStakePeriod(final long stakingPeriodMins) { * * @param then the instant * @param stakePeriodMins the length of a stake period in minutes - * @return + * @return the stake period at the given instant */ static long stakePeriodAt(@NonNull final Instant then, final long stakePeriodMins) { if (stakePeriodMins == DAILY_STAKING_PERIOD_MINS) { @@ -174,7 +174,7 @@ private static long rewardFor( final long currentStakePeriod, final long effectiveStart) { final var rewardFrom = (int) (currentStakePeriod - 1 - effectiveStart); - if (rewardFrom == 0) { + if (rewardFrom <= 0) { return 0; } diff --git a/hedera-node/hedera-token-service/src/main/java/com/hedera/node/app/service/token/records/ChildRecordFinalizer.java b/hedera-node/hedera-token-service/src/main/java/com/hedera/node/app/service/token/records/ChildRecordFinalizer.java index dde4a77132c1..d74843c3684a 100644 --- a/hedera-node/hedera-token-service/src/main/java/com/hedera/node/app/service/token/records/ChildRecordFinalizer.java +++ b/hedera-node/hedera-token-service/src/main/java/com/hedera/node/app/service/token/records/ChildRecordFinalizer.java @@ -16,6 +16,7 @@ package com.hedera.node.app.service.token.records; +import com.hedera.hapi.node.base.HederaFunctionality; import edu.umd.cs.findbugs.annotations.NonNull; /** @@ -34,5 +35,5 @@ * for the child record */ public interface ChildRecordFinalizer { - void finalizeChildRecord(@NonNull ChildFinalizeContext context); + void finalizeChildRecord(@NonNull ChildFinalizeContext context, final HederaFunctionality function); } diff --git a/hedera-node/hedera-token-service/src/main/java/com/hedera/node/app/service/token/records/GenesisAccountRecordBuilder.java b/hedera-node/hedera-token-service/src/main/java/com/hedera/node/app/service/token/records/GenesisAccountRecordBuilder.java index 5157c62f55ea..ba63fb089246 100644 --- a/hedera-node/hedera-token-service/src/main/java/com/hedera/node/app/service/token/records/GenesisAccountRecordBuilder.java +++ b/hedera-node/hedera-token-service/src/main/java/com/hedera/node/app/service/token/records/GenesisAccountRecordBuilder.java @@ -18,6 +18,7 @@ import com.hedera.hapi.node.base.AccountID; import com.hedera.hapi.node.base.Transaction; +import com.hedera.hapi.node.base.TransferList; import edu.umd.cs.findbugs.annotations.NonNull; /** @@ -43,4 +44,14 @@ public interface GenesisAccountRecordBuilder { */ @NonNull GenesisAccountRecordBuilder memo(@NonNull final String memo); + + /** + * Tracks the net hbar transfers that need to be applied to the associated accounts + * (accounts are specified in the {@code TransferList} input param) + * + * @param hbarTransfers the net list of adjustments to make to account balances + * @return this builder + */ + @NonNull + CryptoTransferRecordBuilder transferList(@NonNull TransferList hbarTransfers); } diff --git a/hedera-node/hedera-token-service/src/main/java/com/hedera/node/app/service/token/records/ParentRecordFinalizer.java b/hedera-node/hedera-token-service/src/main/java/com/hedera/node/app/service/token/records/ParentRecordFinalizer.java index edbdfe26819d..e1dc380f795d 100644 --- a/hedera-node/hedera-token-service/src/main/java/com/hedera/node/app/service/token/records/ParentRecordFinalizer.java +++ b/hedera-node/hedera-token-service/src/main/java/com/hedera/node/app/service/token/records/ParentRecordFinalizer.java @@ -17,6 +17,7 @@ package com.hedera.node.app.service.token.records; import com.hedera.hapi.node.base.AccountID; +import com.hedera.hapi.node.base.HederaFunctionality; import edu.umd.cs.findbugs.annotations.NonNull; /** @@ -40,5 +41,6 @@ * for the parent record (excluding changes from child transaction records) */ public interface ParentRecordFinalizer { - void finalizeParentRecord(@NonNull AccountID payer, @NonNull FinalizeContext context); + void finalizeParentRecord( + @NonNull AccountID payer, @NonNull FinalizeContext context, final HederaFunctionality functionality); } diff --git a/hedera-node/hedera-token-service/src/main/java/com/hedera/node/app/service/token/records/TokenContext.java b/hedera-node/hedera-token-service/src/main/java/com/hedera/node/app/service/token/records/TokenContext.java index c7d73e46a1fe..607c287e0e07 100644 --- a/hedera-node/hedera-token-service/src/main/java/com/hedera/node/app/service/token/records/TokenContext.java +++ b/hedera-node/hedera-token-service/src/main/java/com/hedera/node/app/service/token/records/TokenContext.java @@ -95,4 +95,14 @@ public interface TokenContext { */ @NonNull T addUncheckedPrecedingChildRecordBuilder(@NonNull Class recordBuilderClass); + + /** + * Indicate whether this is the first transaction since node startup + */ + boolean isFirstTransaction(); + + /** + * Signal that any records created during startup migrations have been streamed. + */ + void markMigrationRecordsStreamed(); } diff --git a/hedera-node/hedera-util-service-impl/src/main/java/com/hedera/node/app/service/util/impl/handlers/UtilPrngHandler.java b/hedera-node/hedera-util-service-impl/src/main/java/com/hedera/node/app/service/util/impl/handlers/UtilPrngHandler.java index d6875b24e6a3..0797fff602c8 100644 --- a/hedera-node/hedera-util-service-impl/src/main/java/com/hedera/node/app/service/util/impl/handlers/UtilPrngHandler.java +++ b/hedera-node/hedera-util-service-impl/src/main/java/com/hedera/node/app/service/util/impl/handlers/UtilPrngHandler.java @@ -28,6 +28,7 @@ import com.hedera.node.app.spi.workflows.TransactionHandler; import com.hedera.pbj.runtime.io.buffer.Bytes; import edu.umd.cs.findbugs.annotations.NonNull; +import java.nio.ByteBuffer; import javax.inject.Inject; import javax.inject.Singleton; import org.apache.logging.log4j.LogManager; @@ -119,7 +120,22 @@ private int randomNumFromBytes(@NonNull final Bytes pseudoRandomBytes, final int // Use the initial 4 bytes of the random number to extract the integer value. This might be a negative number, // which when used with the modulus operator will result in a negative number. To avoid this, we mask off the // high bit to make sure we always have a positive number for the mod operator. - final int initialBitsValue = pseudoRandomBytes.getInt(0) & 0x7fffffff; - return initialBitsValue % range; + final var initialBitsValue = + ByteBuffer.wrap(pseudoRandomBytes.toByteArray(), 0, 4).getInt(); + return (int) mod(initialBitsValue, range); + } + + /** + * Returns {@code x mod m}, a non-negative value less than {@code m}. This differs from {@code x % + * m}, which might be negative. + * + * @throws ArithmeticException if {@code m <= 0} + */ + public static long mod(long x, int m) { + if (m <= 0) { + throw new ArithmeticException("Modulus must be positive"); + } + long result = x % m; + return (result >= 0) ? result : result + m; } } diff --git a/hedera-node/infrastructure/docker/containers/local-node/network-node-haveged/Dockerfile b/hedera-node/infrastructure/docker/containers/local-node/network-node-haveged/Dockerfile index 3f05736ff696..af8fc13c6444 100644 --- a/hedera-node/infrastructure/docker/containers/local-node/network-node-haveged/Dockerfile +++ b/hedera-node/infrastructure/docker/containers/local-node/network-node-haveged/Dockerfile @@ -30,7 +30,7 @@ ADD checksums/* /tmp/checksums/ RUN apt-get update && \ apt-get install -y tar gzip -# Download PostgreSQL deb archive +# Download Haveged deb archive WORKDIR "/tmp/deb" RUN apt-get update && \ apt-get download --yes haveged=${HAVEGED_VERSION} libhavege1=${HAVEGED_VERSION} && \ diff --git a/hedera-node/infrastructure/grafana/dashboards/production/platform/consensusRoundHandling.json b/hedera-node/infrastructure/grafana/dashboards/production/platform/consensusRoundHandling.json new file mode 100644 index 000000000000..177911977e28 --- /dev/null +++ b/hedera-node/infrastructure/grafana/dashboards/production/platform/consensusRoundHandling.json @@ -0,0 +1,1198 @@ +{ + "__inputs": [ + { + "name": "DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM", + "label": "grafanacloud-swirldslabspreproduction-prom", + "description": "", + "type": "datasource", + "pluginId": "prometheus", + "pluginName": "Prometheus" + }, + { + "name": "DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM-FOR-LIBRARY-PANEL", + "label": "grafanacloud-swirldslabspreproduction-prom", + "description": "", + "type": "datasource", + "pluginId": "prometheus", + "pluginName": "Prometheus", + "usage": { + "libraryPanels": [ + { + "name": "Platform Status (new)", + "uid": "bdcky36wafe9se" + } + ] + } + } + ], + "__elements": { + "bdcky36wafe9se": { + "name": "Platform Status (new)", + "uid": "bdcky36wafe9se", + "kind": 1, + "model": { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM-FOR-LIBRARY-PANEL}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "continuous-GrYlRd" + }, + "custom": { + "fillOpacity": 61, + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineWidth": 0, + "spanNulls": false + }, + "mappings": [ + { + "options": { + "1": { + "color": "super-light-green", + "index": 0, + "text": "STARTING_UP" + }, + "2": { + "color": "green", + "index": 1, + "text": "ACTIVE" + }, + "4": { + "color": "red", + "index": 2, + "text": "BEHIND" + }, + "5": { + "color": "light-blue", + "index": 3, + "text": "FREEZING" + }, + "6": { + "color": "dark-blue", + "index": 4, + "text": "FREEZE_COMPLETE" + }, + "7": { + "color": "super-light-yellow", + "index": 5, + "text": "REPLAYING_EVENTS" + }, + "8": { + "color": "text", + "index": 6, + "text": "OBSERVING" + }, + "9": { + "color": "orange", + "index": 7, + "text": "CHECKING" + }, + "10": { + "color": "purple", + "index": 8, + "text": "RECONNECT_COMPLETE" + }, + "11": { + "color": "#250707", + "index": 9, + "text": "CATASTROPHIC_FAILURE" + } + }, + "type": "value" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unitScale": true + }, + "overrides": [] + }, + "libraryPanel": { + "name": "Platform Status (new)", + "uid": "bdcky36wafe9se" + }, + "options": { + "alignValue": "left", + "legend": { + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "mergeValues": true, + "rowHeight": 0.9, + "showValue": "auto", + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "grafanacloud-prom" + }, + "disableTextWrap": false, + "editorMode": "builder", + "expr": "platform_PlatformStatus{environment=\"$network\", node_id=~\"$NodeID\"}", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": false, + "legendFormat": "node {{node_id}}", + "range": true, + "refId": "A", + "useBackend": false + } + ], + "title": "Platform Status", + "type": "state-timeline" + } + } + }, + "__requires": [ + { + "type": "grafana", + "id": "grafana", + "name": "Grafana", + "version": "10.4.0-66955" + }, + { + "type": "datasource", + "id": "prometheus", + "name": "Prometheus", + "version": "1.0.0" + }, + { + "type": "panel", + "id": "timeseries", + "name": "Time series", + "version": "" + } + ], + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": { + "type": "grafana", + "uid": "-- Grafana --" + }, + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": null, + "links": [ + { + "asDropdown": true, + "icon": "external link", + "includeVars": true, + "keepTime": true, + "tags": [ + "Platform" + ], + "targetBlank": false, + "title": "Platform Dashboards", + "tooltip": "", + "type": "dashboards", + "url": "" + } + ], + "liveNow": false, + "panels": [ + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 27, + "panels": [], + "title": "Platform Status", + "type": "row" + }, + { + "gridPos": { + "h": 16, + "w": 24, + "x": 0, + "y": 1 + }, + "id": 18, + "libraryPanel": { + "uid": "bdcky36wafe9se", + "name": "Platform Status (new)" + } + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 17 + }, + "id": 26, + "panels": [], + "title": "Flush", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM}" + }, + "description": "Average time to flush a round's keystone event to disk", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "time", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "ms" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 18 + }, + "id": 14, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM}" + }, + "disableTextWrap": false, + "editorMode": "builder", + "expr": "internal_consRound_keystoneFlushMillis_per_round{environment=\"$network\", node_id=~\"$NodeID\"}", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": false, + "legendFormat": "node {{node_id}}", + "range": true, + "refId": "A", + "useBackend": false + } + ], + "title": "Round Handling: keystone flush millis per round", + "type": "timeseries" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 25 + }, + "id": 25, + "panels": [], + "title": "Handle Round", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM}" + }, + "description": "Average time to propagate consensus data to transactions, update platform state, and handle transactions", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "time", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "ms" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 26 + }, + "id": 10, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM}" + }, + "disableTextWrap": false, + "editorMode": "builder", + "expr": "internal_consRound_dataPropMillis_per_round{environment=\"$network\", node_id=~\"$NodeID\"}", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": false, + "legendFormat": "node {{node_id}}", + "range": true, + "refId": "A", + "useBackend": false + } + ], + "title": "Round Handling: data prop millis", + "type": "timeseries" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 33 + }, + "id": 24, + "panels": [], + "title": "Hash Manager", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM}" + }, + "description": "Average time to pass state to the hash manager", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "time", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "ms" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 34 + }, + "id": 12, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM}" + }, + "disableTextWrap": false, + "editorMode": "builder", + "expr": "internal_consRound_handleMillis_per_round{environment=\"$network\", node_id=~\"$NodeID\"}", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": false, + "legendFormat": "node {{node_id}}", + "range": true, + "refId": "A", + "useBackend": false + } + ], + "title": "Round Handling: handle millis per round", + "type": "timeseries" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 41 + }, + "id": 23, + "panels": [], + "title": "Store", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM}" + }, + "description": "Average time to add consensus round events to signed state storage", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "time", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + }, + "unit": "ms" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 42 + }, + "id": 15, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM}" + }, + "disableTextWrap": false, + "editorMode": "builder", + "expr": "internal_consRound_storeMillis_per_round{environment=\"$network\", node_id=~\"$NodeID\"}", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": false, + "legendFormat": "node {{node_id}}", + "range": true, + "refId": "A", + "useBackend": false + } + ], + "title": "Round Handling: store millis per round", + "type": "timeseries" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 49 + }, + "id": 22, + "panels": [], + "title": "Hash", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM}" + }, + "description": "Average time spent hashing the consensus round events", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "time", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + }, + "unit": "ms" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 50 + }, + "id": 13, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM}" + }, + "disableTextWrap": false, + "editorMode": "builder", + "expr": "internal_consRound_hashMillis_per_round{environment=\"$network\", node_id=~\"$NodeID\"}", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": false, + "legendFormat": "node {{node_id}}", + "range": true, + "refId": "A", + "useBackend": false + } + ], + "title": "Round Handling: hash millis per round", + "type": "timeseries" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 57 + }, + "id": 21, + "panels": [], + "title": "Build State", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "time", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + }, + "unit": "ms" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 58 + }, + "id": 9, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM}" + }, + "disableTextWrap": false, + "editorMode": "builder", + "expr": "internal_consRound_buildStateMillis{environment=\"$network\", node_id=~\"$NodeID\"}", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": false, + "legendFormat": "node {{node_id}}", + "range": true, + "refId": "A", + "useBackend": false + } + ], + "title": "Round Handling: build state millis", + "type": "timeseries" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 65 + }, + "id": 20, + "panels": [], + "title": "Expiring events", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM}" + }, + "description": "Average time spent expiring signed state storage events", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "time", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + }, + "unit": "ms" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 66 + }, + "id": 11, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM}" + }, + "disableTextWrap": false, + "editorMode": "builder", + "expr": "internal_consRound_forSigCleanMillis{environment=\"$network\", node_id=~\"$NodeID\"}", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": false, + "legendFormat": "node {{node_id}}", + "range": true, + "refId": "A", + "useBackend": false + } + ], + "title": "Round Handling: for sig clean millis", + "type": "timeseries" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 73 + }, + "id": 19, + "panels": [], + "title": "Total", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM}" + }, + "description": "Average total time to handle a consensus round", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "time", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + }, + "unit": "ms" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 74 + }, + "id": 16, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM}" + }, + "disableTextWrap": false, + "editorMode": "builder", + "expr": "internal_consRound_total{environment=\"$network\", node_id=~\"$NodeID\"}", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": false, + "legendFormat": "node {{node_id}}", + "range": true, + "refId": "A", + "useBackend": false + } + ], + "title": "Round Handling: total millis", + "type": "timeseries" + } + ], + "schemaVersion": 39, + "tags": [ + "Platform" + ], + "templating": { + "list": [ + { + "current": {}, + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM}" + }, + "definition": "label_values(platform_trans_per_sec,environment)", + "description": "The network to pull data from (i.e. mainnet, testnet, etc).", + "hide": 0, + "includeAll": false, + "label": "Network", + "multi": false, + "name": "network", + "options": [], + "query": { + "qryType": 1, + "query": "label_values(platform_trans_per_sec,environment)", + "refId": "PrometheusVariableQueryEditor-VariableQuery" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "type": "query" + }, + { + "current": {}, + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM}" + }, + "definition": "label_values(node_id)", + "hide": 0, + "includeAll": true, + "label": "Node ID", + "multi": true, + "name": "NodeID", + "options": [], + "query": { + "qryType": 1, + "query": "label_values(node_id)", + "refId": "PrometheusVariableQueryEditor-VariableQuery" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 3, + "type": "query" + } + ] + }, + "time": { + "from": "2024-02-09T17:50:36.987Z", + "to": "2024-02-11T21:57:23.869Z" + }, + "timepicker": {}, + "timezone": "", + "title": "Consensus Round Handling", + "uid": "adcos04hrnpj4b", + "version": 4, + "weekStart": "" +} \ No newline at end of file diff --git a/hedera-node/infrastructure/grafana/dashboards/production/platform/eventCreation.json b/hedera-node/infrastructure/grafana/dashboards/production/platform/eventCreation.json index 94e0662bbd6f..9428559bdcdb 100644 --- a/hedera-node/infrastructure/grafana/dashboards/production/platform/eventCreation.json +++ b/hedera-node/infrastructure/grafana/dashboards/production/platform/eventCreation.json @@ -7,15 +7,173 @@ "type": "datasource", "pluginId": "prometheus", "pluginName": "Prometheus" + }, + { + "name": "DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM-FOR-LIBRARY-PANEL", + "label": "grafanacloud-swirldslabspreproduction-prom", + "description": "", + "type": "datasource", + "pluginId": "prometheus", + "pluginName": "Prometheus", + "usage": { + "libraryPanels": [ + { + "name": "Platform Status (new)", + "uid": "bdcky36wafe9se" + } + ] + } } ], - "__elements": {}, + "__elements": { + "bdcky36wafe9se": { + "name": "Platform Status (new)", + "uid": "bdcky36wafe9se", + "kind": 1, + "model": { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM-FOR-LIBRARY-PANEL}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "continuous-GrYlRd" + }, + "custom": { + "fillOpacity": 61, + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineWidth": 0, + "spanNulls": false + }, + "mappings": [ + { + "options": { + "1": { + "color": "super-light-green", + "index": 0, + "text": "STARTING_UP" + }, + "2": { + "color": "green", + "index": 1, + "text": "ACTIVE" + }, + "4": { + "color": "red", + "index": 2, + "text": "BEHIND" + }, + "5": { + "color": "light-blue", + "index": 3, + "text": "FREEZING" + }, + "6": { + "color": "dark-blue", + "index": 4, + "text": "FREEZE_COMPLETE" + }, + "7": { + "color": "super-light-yellow", + "index": 5, + "text": "REPLAYING_EVENTS" + }, + "8": { + "color": "text", + "index": 6, + "text": "OBSERVING" + }, + "9": { + "color": "orange", + "index": 7, + "text": "CHECKING" + }, + "10": { + "color": "purple", + "index": 8, + "text": "RECONNECT_COMPLETE" + }, + "11": { + "color": "#250707", + "index": 9, + "text": "CATASTROPHIC_FAILURE" + } + }, + "type": "value" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unitScale": true + }, + "overrides": [] + }, + "libraryPanel": { + "name": "Platform Status (new)", + "uid": "bdcky36wafe9se" + }, + "options": { + "alignValue": "left", + "legend": { + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "mergeValues": true, + "rowHeight": 0.9, + "showValue": "auto", + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "grafanacloud-prom" + }, + "disableTextWrap": false, + "editorMode": "builder", + "expr": "platform_PlatformStatus{environment=\"$network\", node_id=~\"$NodeID\"}", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": false, + "legendFormat": "node {{node_id}}", + "range": true, + "refId": "A", + "useBackend": false + } + ], + "title": "Platform Status", + "type": "state-timeline" + } + } + }, "__requires": [ { "type": "grafana", "id": "grafana", "name": "Grafana", - "version": "10.4.0-65875" + "version": "10.4.0-66955" }, { "type": "datasource", @@ -68,6 +226,19 @@ ], "liveNow": false, "panels": [ + { + "gridPos": { + "h": 16, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 11, + "libraryPanel": { + "uid": "bdcky36wafe9se", + "name": "Platform Status (new)" + } + }, { "datasource": { "type": "prometheus", @@ -124,16 +295,15 @@ "value": 80 } ] - }, - "unitScale": true + } }, "overrides": [] }, "gridPos": { - "h": 8, - "w": 12, + "h": 9, + "w": 24, "x": 0, - "y": 0 + "y": 16 }, "id": 9, "options": { @@ -175,7 +345,7 @@ "h": 1, "w": 24, "x": 0, - "y": 8 + "y": 25 }, "id": 8, "panels": [], @@ -238,16 +408,15 @@ "value": 80 } ] - }, - "unitScale": true + } }, "overrides": [] }, "gridPos": { - "h": 7, - "w": 12, + "h": 8, + "w": 24, "x": 0, - "y": 9 + "y": 26 }, "id": 1, "options": { @@ -288,7 +457,7 @@ "type": "prometheus", "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM}" }, - "description": "Fraction of time out of the event creation cycle where events are not being created because no eligible parents can be found", + "description": "Fraction of time out of the event creation cycle where events are not being created because the node is overloaded", "fieldConfig": { "defaults": { "color": { @@ -339,18 +508,17 @@ "value": 80 } ] - }, - "unitScale": true + } }, "overrides": [] }, "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 9 + "h": 8, + "w": 24, + "x": 0, + "y": 34 }, - "id": 2, + "id": 3, "options": { "legend": { "calcs": [], @@ -371,7 +539,7 @@ }, "disableTextWrap": false, "editorMode": "builder", - "expr": "platform_eventCreation_fraction_NO_ELIGIBLE_PARENTS_fraction{environment=\"$network\", node_id=~\"$NodeID\"}", + "expr": "platform_eventCreation_fraction_OVERLOADED_fraction{environment=\"$network\", node_id=~\"$NodeID\"}", "fullMetaSearch": false, "includeNullMetadata": true, "instant": false, @@ -381,7 +549,7 @@ "useBackend": false } ], - "title": "No Eligible Parents Fraction", + "title": "Overloaded Fraction", "type": "timeseries" }, { @@ -389,7 +557,7 @@ "type": "prometheus", "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM}" }, - "description": "Fraction of time out of the event creation cycle where events are not being created due to the event creation limit", + "description": "Fraction of time out of the event creation cycle where events are not being created because the intake pipeline is applying backpressure to the event creator", "fieldConfig": { "defaults": { "color": { @@ -440,18 +608,17 @@ "value": 80 } ] - }, - "unitScale": true + } }, "overrides": [] }, "gridPos": { "h": 8, - "w": 12, + "w": 24, "x": 0, - "y": 16 + "y": 42 }, - "id": 7, + "id": 5, "options": { "legend": { "calcs": [], @@ -472,7 +639,7 @@ }, "disableTextWrap": false, "editorMode": "builder", - "expr": "platform_eventCreation_fraction_RATE_LIMITED_fraction{environment=\"$network\", node_id=~\"$NodeID\"}", + "expr": "platform_eventCreation_fraction_PIPELINE_INSERTION_fraction{environment=\"$network\", node_id=~\"$NodeID\"}", "fullMetaSearch": false, "includeNullMetadata": true, "instant": false, @@ -482,7 +649,7 @@ "useBackend": false } ], - "title": "Rate Limited Fraction", + "title": "Pipeline Insertion Fraction", "type": "timeseries" }, { @@ -490,7 +657,7 @@ "type": "prometheus", "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM}" }, - "description": "Fraction of time out of the event creation cycle where events are not being created because the intake pipeline is applying backpressure to the event creator", + "description": "Fraction of time out of the event creation cycle where events are not being created because no eligible parents can be found", "fieldConfig": { "defaults": { "color": { @@ -541,18 +708,17 @@ "value": 80 } ] - }, - "unitScale": true + } }, "overrides": [] }, "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 16 + "h": 9, + "w": 24, + "x": 0, + "y": 50 }, - "id": 5, + "id": 2, "options": { "legend": { "calcs": [], @@ -573,7 +739,7 @@ }, "disableTextWrap": false, "editorMode": "builder", - "expr": "platform_eventCreation_fraction_PIPELINE_INSERTION_fraction{environment=\"$network\", node_id=~\"$NodeID\"}", + "expr": "platform_eventCreation_fraction_NO_ELIGIBLE_PARENTS_fraction{environment=\"$network\", node_id=~\"$NodeID\"}", "fullMetaSearch": false, "includeNullMetadata": true, "instant": false, @@ -583,7 +749,7 @@ "useBackend": false } ], - "title": "Pipeline Insertion Fraction", + "title": "No Eligible Parents Fraction", "type": "timeseries" }, { @@ -591,7 +757,7 @@ "type": "prometheus", "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM}" }, - "description": "Fraction of time out of the event creation cycle where events are not being created because it is not permitted by the platform status", + "description": "Fraction of time out of the event creation cycle where events are not being created due to the event creation limit", "fieldConfig": { "defaults": { "color": { @@ -642,18 +808,17 @@ "value": 80 } ] - }, - "unitScale": true + } }, "overrides": [] }, "gridPos": { - "h": 8, - "w": 12, + "h": 9, + "w": 24, "x": 0, - "y": 24 + "y": 59 }, - "id": 6, + "id": 7, "options": { "legend": { "calcs": [], @@ -674,7 +839,7 @@ }, "disableTextWrap": false, "editorMode": "builder", - "expr": "platform_eventCreation_fraction_PLATFORM_STATUS_fraction{environment=\"$network\", node_id=~\"$NodeID\"}", + "expr": "platform_eventCreation_fraction_RATE_LIMITED_fraction{environment=\"$network\", node_id=~\"$NodeID\"}", "fullMetaSearch": false, "includeNullMetadata": true, "instant": false, @@ -684,7 +849,7 @@ "useBackend": false } ], - "title": "Platform Status Fraction", + "title": "Rate Limited Fraction", "type": "timeseries" }, { @@ -692,7 +857,7 @@ "type": "prometheus", "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM}" }, - "description": "Fraction of time out of the event creation cycle where events are not being created because the node is overloaded", + "description": "Fraction of time out of the event creation cycle where events are not being created because it is not permitted by the platform status", "fieldConfig": { "defaults": { "color": { @@ -743,18 +908,17 @@ "value": 80 } ] - }, - "unitScale": true + } }, "overrides": [] }, "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 24 + "h": 9, + "w": 24, + "x": 0, + "y": 68 }, - "id": 3, + "id": 6, "options": { "legend": { "calcs": [], @@ -775,7 +939,7 @@ }, "disableTextWrap": false, "editorMode": "builder", - "expr": "platform_eventCreation_fraction_OVERLOADED_fraction{environment=\"$network\", node_id=~\"$NodeID\"}", + "expr": "platform_eventCreation_fraction_PLATFORM_STATUS_fraction{environment=\"$network\", node_id=~\"$NodeID\"}", "fullMetaSearch": false, "includeNullMetadata": true, "instant": false, @@ -785,7 +949,7 @@ "useBackend": false } ], - "title": "Overloaded Fraction", + "title": "Platform Status Fraction", "type": "timeseries" }, { @@ -844,16 +1008,15 @@ "value": 80 } ] - }, - "unitScale": true + } }, "overrides": [] }, "gridPos": { "h": 8, - "w": 12, + "w": 24, "x": 0, - "y": 32 + "y": 77 }, "id": 4, "options": { @@ -890,7 +1053,6 @@ "type": "timeseries" } ], - "refresh": "", "schemaVersion": 39, "tags": [ "Platform" @@ -949,13 +1111,13 @@ ] }, "time": { - "from": "now-6h", - "to": "now" + "from": "2024-02-09T17:50:36.987Z", + "to": "2024-02-11T21:57:23.869Z" }, "timepicker": {}, "timezone": "", "title": "Event Creation", "uid": "c621a05a-1e2a-4685-925b-0c28c0880baa", - "version": 9, + "version": 10, "weekStart": "" } \ No newline at end of file diff --git a/hedera-node/infrastructure/grafana/dashboards/production/platform/gossip.json b/hedera-node/infrastructure/grafana/dashboards/production/platform/gossip.json index 7c5923585df0..f9db70399305 100644 --- a/hedera-node/infrastructure/grafana/dashboards/production/platform/gossip.json +++ b/hedera-node/infrastructure/grafana/dashboards/production/platform/gossip.json @@ -7,9 +7,167 @@ "type": "datasource", "pluginId": "prometheus", "pluginName": "Prometheus" + }, + { + "name": "DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM-FOR-LIBRARY-PANEL", + "label": "grafanacloud-swirldslabspreproduction-prom", + "description": "", + "type": "datasource", + "pluginId": "prometheus", + "pluginName": "Prometheus", + "usage": { + "libraryPanels": [ + { + "name": "Platform Status (new)", + "uid": "bdcky36wafe9se" + } + ] + } } ], - "__elements": {}, + "__elements": { + "bdcky36wafe9se": { + "name": "Platform Status (new)", + "uid": "bdcky36wafe9se", + "kind": 1, + "model": { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM-FOR-LIBRARY-PANEL}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "continuous-GrYlRd" + }, + "custom": { + "fillOpacity": 61, + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineWidth": 0, + "spanNulls": false + }, + "mappings": [ + { + "options": { + "1": { + "color": "super-light-green", + "index": 0, + "text": "STARTING_UP" + }, + "2": { + "color": "green", + "index": 1, + "text": "ACTIVE" + }, + "4": { + "color": "red", + "index": 2, + "text": "BEHIND" + }, + "5": { + "color": "light-blue", + "index": 3, + "text": "FREEZING" + }, + "6": { + "color": "dark-blue", + "index": 4, + "text": "FREEZE_COMPLETE" + }, + "7": { + "color": "super-light-yellow", + "index": 5, + "text": "REPLAYING_EVENTS" + }, + "8": { + "color": "text", + "index": 6, + "text": "OBSERVING" + }, + "9": { + "color": "orange", + "index": 7, + "text": "CHECKING" + }, + "10": { + "color": "purple", + "index": 8, + "text": "RECONNECT_COMPLETE" + }, + "11": { + "color": "#250707", + "index": 9, + "text": "CATASTROPHIC_FAILURE" + } + }, + "type": "value" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unitScale": true + }, + "overrides": [] + }, + "libraryPanel": { + "name": "Platform Status (new)", + "uid": "bdcky36wafe9se" + }, + "options": { + "alignValue": "left", + "legend": { + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "mergeValues": true, + "rowHeight": 0.9, + "showValue": "auto", + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "grafanacloud-prom" + }, + "disableTextWrap": false, + "editorMode": "builder", + "expr": "platform_PlatformStatus{environment=\"$network\", node_id=~\"$NodeID\"}", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": false, + "legendFormat": "node {{node_id}}", + "range": true, + "refId": "A", + "useBackend": false + } + ], + "title": "Platform Status", + "type": "state-timeline" + } + } + }, "__requires": [ { "type": "panel", @@ -21,7 +179,7 @@ "type": "grafana", "id": "grafana", "name": "Grafana", - "version": "10.4.0-65875" + "version": "10.4.0-66955" }, { "type": "datasource", @@ -74,6 +232,44 @@ ], "liveNow": false, "panels": [ + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 27, + "panels": [], + "title": "Platform Status", + "type": "row" + }, + { + "gridPos": { + "h": 17, + "w": 16, + "x": 0, + "y": 1 + }, + "id": 25, + "libraryPanel": { + "uid": "bdcky36wafe9se", + "name": "Platform Status (new)" + } + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 18 + }, + "id": 26, + "panels": [], + "type": "row" + }, { "datasource": { "type": "prometheus", @@ -130,8 +326,7 @@ "value": 80 } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -139,7 +334,7 @@ "h": 8, "w": 16, "x": 0, - "y": 0 + "y": 19 }, "id": 7, "options": { @@ -230,8 +425,7 @@ "value": 80 } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -239,7 +433,7 @@ "h": 8, "w": 8, "x": 16, - "y": 0 + "y": 19 }, "id": 12, "options": { @@ -317,8 +511,7 @@ "value": 80 } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -326,7 +519,7 @@ "h": 8, "w": 16, "x": 0, - "y": 8 + "y": 27 }, "id": 10, "options": { @@ -390,8 +583,7 @@ "value": 80 } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -399,7 +591,7 @@ "h": 8, "w": 8, "x": 16, - "y": 8 + "y": 27 }, "id": 11, "options": { @@ -417,7 +609,7 @@ "showThresholdMarkers": true, "sizing": "auto" }, - "pluginVersion": "10.4.0-65875", + "pluginVersion": "10.4.0-66955", "targets": [ { "datasource": { @@ -533,8 +725,7 @@ "value": 4000 } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -542,7 +733,7 @@ "h": 8, "w": 16, "x": 0, - "y": 16 + "y": 35 }, "id": 9, "options": { @@ -606,8 +797,7 @@ "value": 4000 } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -615,7 +805,7 @@ "h": 8, "w": 8, "x": 16, - "y": 16 + "y": 35 }, "id": 13, "options": { @@ -633,7 +823,7 @@ "showThresholdMarkers": true, "sizing": "auto" }, - "pluginVersion": "10.4.0-65875", + "pluginVersion": "10.4.0-66955", "targets": [ { "datasource": { @@ -745,8 +935,7 @@ "value": 80 } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -754,7 +943,7 @@ "h": 8, "w": 16, "x": 0, - "y": 24 + "y": 43 }, "id": 8, "options": { @@ -846,8 +1035,7 @@ "value": 80 } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -855,7 +1043,7 @@ "h": 8, "w": 16, "x": 0, - "y": 32 + "y": 51 }, "id": 3, "options": { @@ -947,16 +1135,40 @@ "value": 80 } ] - }, - "unitScale": true + } }, - "overrides": [] + "overrides": [ + { + "__systemRef": "hideSeriesFrom", + "matcher": { + "id": "byNames", + "options": { + "mode": "exclude", + "names": [ + "node 0" + ], + "prefix": "All except:", + "readOnly": true + } + }, + "properties": [ + { + "id": "custom.hideFrom", + "value": { + "legend": false, + "tooltip": false, + "viz": true + } + } + ] + } + ] }, "gridPos": { "h": 8, "w": 16, "x": 0, - "y": 40 + "y": 59 }, "id": 4, "options": { @@ -1048,16 +1260,40 @@ "value": 80 } ] - }, - "unitScale": true + } }, - "overrides": [] + "overrides": [ + { + "__systemRef": "hideSeriesFrom", + "matcher": { + "id": "byNames", + "options": { + "mode": "exclude", + "names": [ + "node 0" + ], + "prefix": "All except:", + "readOnly": true + } + }, + "properties": [ + { + "id": "custom.hideFrom", + "value": { + "legend": false, + "tooltip": false, + "viz": true + } + } + ] + } + ] }, "gridPos": { "h": 8, "w": 16, "x": 0, - "y": 48 + "y": 67 }, "id": 2, "options": { @@ -1149,16 +1385,40 @@ "value": 80 } ] - }, - "unitScale": true + } }, - "overrides": [] + "overrides": [ + { + "__systemRef": "hideSeriesFrom", + "matcher": { + "id": "byNames", + "options": { + "mode": "exclude", + "names": [ + "node 0" + ], + "prefix": "All except:", + "readOnly": true + } + }, + "properties": [ + { + "id": "custom.hideFrom", + "value": { + "legend": false, + "tooltip": false, + "viz": true + } + } + ] + } + ] }, "gridPos": { "h": 8, "w": 16, "x": 0, - "y": 56 + "y": 75 }, "id": 1, "options": { @@ -1250,16 +1510,40 @@ "value": 80 } ] - }, - "unitScale": true + } }, - "overrides": [] + "overrides": [ + { + "__systemRef": "hideSeriesFrom", + "matcher": { + "id": "byNames", + "options": { + "mode": "exclude", + "names": [ + "node 0" + ], + "prefix": "All except:", + "readOnly": true + } + }, + "properties": [ + { + "id": "custom.hideFrom", + "value": { + "legend": false, + "tooltip": false, + "viz": true + } + } + ] + } + ] }, "gridPos": { "h": 8, "w": 16, "x": 0, - "y": 64 + "y": 83 }, "id": 5, "options": { @@ -1351,16 +1635,40 @@ "value": 80 } ] - }, - "unitScale": true + } }, - "overrides": [] + "overrides": [ + { + "__systemRef": "hideSeriesFrom", + "matcher": { + "id": "byNames", + "options": { + "mode": "exclude", + "names": [ + "node 0" + ], + "prefix": "All except:", + "readOnly": true + } + }, + "properties": [ + { + "id": "custom.hideFrom", + "value": { + "legend": false, + "tooltip": false, + "viz": true + } + } + ] + } + ] }, "gridPos": { "h": 8, "w": 16, "x": 0, - "y": 72 + "y": 91 }, "id": 6, "options": { @@ -1452,16 +1760,40 @@ "value": 80 } ] - }, - "unitScale": true + } }, - "overrides": [] + "overrides": [ + { + "__systemRef": "hideSeriesFrom", + "matcher": { + "id": "byNames", + "options": { + "mode": "exclude", + "names": [ + "node 0" + ], + "prefix": "All except:", + "readOnly": true + } + }, + "properties": [ + { + "id": "custom.hideFrom", + "value": { + "legend": false, + "tooltip": false, + "viz": true + } + } + ] + } + ] }, "gridPos": { "h": 8, "w": 16, "x": 0, - "y": 80 + "y": 99 }, "id": 16, "options": { @@ -1553,16 +1885,40 @@ "value": 80 } ] - }, - "unitScale": true + } }, - "overrides": [] + "overrides": [ + { + "__systemRef": "hideSeriesFrom", + "matcher": { + "id": "byNames", + "options": { + "mode": "exclude", + "names": [ + "node 0" + ], + "prefix": "All except:", + "readOnly": true + } + }, + "properties": [ + { + "id": "custom.hideFrom", + "value": { + "legend": false, + "tooltip": false, + "viz": true + } + } + ] + } + ] }, "gridPos": { "h": 8, "w": 16, "x": 0, - "y": 88 + "y": 107 }, "id": 14, "options": { @@ -1654,16 +2010,40 @@ "value": 80 } ] - }, - "unitScale": true + } }, - "overrides": [] + "overrides": [ + { + "__systemRef": "hideSeriesFrom", + "matcher": { + "id": "byNames", + "options": { + "mode": "exclude", + "names": [ + "node 0" + ], + "prefix": "All except:", + "readOnly": true + } + }, + "properties": [ + { + "id": "custom.hideFrom", + "value": { + "legend": false, + "tooltip": false, + "viz": true + } + } + ] + } + ] }, "gridPos": { "h": 8, "w": 16, "x": 0, - "y": 96 + "y": 115 }, "id": 15, "options": { @@ -1755,16 +2135,40 @@ "value": 80 } ] - }, - "unitScale": true + } }, - "overrides": [] + "overrides": [ + { + "__systemRef": "hideSeriesFrom", + "matcher": { + "id": "byNames", + "options": { + "mode": "exclude", + "names": [ + "node 0" + ], + "prefix": "All except:", + "readOnly": true + } + }, + "properties": [ + { + "id": "custom.hideFrom", + "value": { + "legend": false, + "tooltip": false, + "viz": true + } + } + ] + } + ] }, "gridPos": { "h": 8, "w": 16, "x": 0, - "y": 104 + "y": 123 }, "id": 17, "options": { @@ -1856,8 +2260,7 @@ "value": 80 } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -1865,7 +2268,7 @@ "h": 8, "w": 16, "x": 0, - "y": 112 + "y": 131 }, "id": 18, "options": { @@ -1957,8 +2360,7 @@ "value": 80 } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -1966,7 +2368,7 @@ "h": 8, "w": 16, "x": 0, - "y": 120 + "y": 139 }, "id": 20, "options": { @@ -2058,8 +2460,7 @@ "value": 80 } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -2067,7 +2468,7 @@ "h": 8, "w": 16, "x": 0, - "y": 128 + "y": 147 }, "id": 21, "options": { @@ -2159,16 +2560,40 @@ "value": 80 } ] - }, - "unitScale": true + } }, - "overrides": [] + "overrides": [ + { + "__systemRef": "hideSeriesFrom", + "matcher": { + "id": "byNames", + "options": { + "mode": "exclude", + "names": [ + "node 0" + ], + "prefix": "All except:", + "readOnly": true + } + }, + "properties": [ + { + "id": "custom.hideFrom", + "value": { + "legend": false, + "tooltip": false, + "viz": true + } + } + ] + } + ] }, "gridPos": { "h": 8, "w": 16, "x": 0, - "y": 136 + "y": 155 }, "id": 22, "options": { @@ -2260,8 +2685,7 @@ "value": 80 } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -2269,7 +2693,7 @@ "h": 8, "w": 16, "x": 0, - "y": 144 + "y": 163 }, "id": 23, "options": { @@ -2361,8 +2785,7 @@ "value": 80 } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -2370,7 +2793,7 @@ "h": 8, "w": 16, "x": 0, - "y": 152 + "y": 171 }, "id": 19, "options": { @@ -2407,7 +2830,6 @@ "type": "timeseries" } ], - "refresh": "5s", "schemaVersion": 39, "tags": [ "Platform" @@ -2465,13 +2887,13 @@ ] }, "time": { - "from": "now-3h", - "to": "now" + "from": "2024-02-09T17:50:36.987Z", + "to": "2024-02-11T21:57:23.869Z" }, "timepicker": {}, "timezone": "", "title": "Gossip", "uid": "e857b70d-9a9f-485b-bd3d-a359c55c8efc", - "version": 12, + "version": 14, "weekStart": "" } \ No newline at end of file diff --git a/hedera-node/infrastructure/grafana/dashboards/production/platform/hashgraph.json b/hedera-node/infrastructure/grafana/dashboards/production/platform/hashgraph.json index b87658e30a29..c99e2308500b 100644 --- a/hedera-node/infrastructure/grafana/dashboards/production/platform/hashgraph.json +++ b/hedera-node/infrastructure/grafana/dashboards/production/platform/hashgraph.json @@ -7,9 +7,167 @@ "type": "datasource", "pluginId": "prometheus", "pluginName": "Prometheus" + }, + { + "name": "DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM-FOR-LIBRARY-PANEL", + "label": "grafanacloud-swirldslabspreproduction-prom", + "description": "", + "type": "datasource", + "pluginId": "prometheus", + "pluginName": "Prometheus", + "usage": { + "libraryPanels": [ + { + "name": "Platform Status (new)", + "uid": "bdcky36wafe9se" + } + ] + } } ], - "__elements": {}, + "__elements": { + "bdcky36wafe9se": { + "name": "Platform Status (new)", + "uid": "bdcky36wafe9se", + "kind": 1, + "model": { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM-FOR-LIBRARY-PANEL}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "continuous-GrYlRd" + }, + "custom": { + "fillOpacity": 61, + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineWidth": 0, + "spanNulls": false + }, + "mappings": [ + { + "options": { + "1": { + "color": "super-light-green", + "index": 0, + "text": "STARTING_UP" + }, + "2": { + "color": "green", + "index": 1, + "text": "ACTIVE" + }, + "4": { + "color": "red", + "index": 2, + "text": "BEHIND" + }, + "5": { + "color": "light-blue", + "index": 3, + "text": "FREEZING" + }, + "6": { + "color": "dark-blue", + "index": 4, + "text": "FREEZE_COMPLETE" + }, + "7": { + "color": "super-light-yellow", + "index": 5, + "text": "REPLAYING_EVENTS" + }, + "8": { + "color": "text", + "index": 6, + "text": "OBSERVING" + }, + "9": { + "color": "orange", + "index": 7, + "text": "CHECKING" + }, + "10": { + "color": "purple", + "index": 8, + "text": "RECONNECT_COMPLETE" + }, + "11": { + "color": "#250707", + "index": 9, + "text": "CATASTROPHIC_FAILURE" + } + }, + "type": "value" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unitScale": true + }, + "overrides": [] + }, + "libraryPanel": { + "name": "Platform Status (new)", + "uid": "bdcky36wafe9se" + }, + "options": { + "alignValue": "left", + "legend": { + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "mergeValues": true, + "rowHeight": 0.9, + "showValue": "auto", + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "grafanacloud-prom" + }, + "disableTextWrap": false, + "editorMode": "builder", + "expr": "platform_PlatformStatus{environment=\"$network\", node_id=~\"$NodeID\"}", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": false, + "legendFormat": "node {{node_id}}", + "range": true, + "refId": "A", + "useBackend": false + } + ], + "title": "Platform Status", + "type": "state-timeline" + } + } + }, "__requires": [ { "type": "panel", @@ -21,7 +179,7 @@ "type": "grafana", "id": "grafana", "name": "Grafana", - "version": "10.3.0-63588" + "version": "10.4.0-66955" }, { "type": "datasource", @@ -74,6 +232,40 @@ ], "liveNow": false, "panels": [ + { + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 19, + "title": "Platform Status", + "type": "row" + }, + { + "gridPos": { + "h": 16, + "w": 15, + "x": 0, + "y": 1 + }, + "id": 17, + "libraryPanel": { + "uid": "bdcky36wafe9se", + "name": "Platform Status (new)" + } + }, + { + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 17 + }, + "id": 18, + "type": "row" + }, { "datasource": { "type": "prometheus", @@ -142,7 +334,7 @@ "h": 8, "w": 15, "x": 0, - "y": 0 + "y": 18 }, "id": 1, "options": { @@ -215,7 +407,7 @@ "h": 8, "w": 9, "x": 15, - "y": 0 + "y": 18 }, "id": 2, "options": { @@ -233,7 +425,7 @@ "showThresholdMarkers": true, "sizing": "auto" }, - "pluginVersion": "10.3.0-63588", + "pluginVersion": "10.4.0-66955", "targets": [ { "datasource": { @@ -323,7 +515,7 @@ "h": 8, "w": 15, "x": 0, - "y": 8 + "y": 26 }, "id": 3, "options": { @@ -396,7 +588,7 @@ "h": 8, "w": 9, "x": 15, - "y": 8 + "y": 26 }, "id": 4, "options": { @@ -414,7 +606,7 @@ "showThresholdMarkers": true, "sizing": "auto" }, - "pluginVersion": "10.3.0-63588", + "pluginVersion": "10.4.0-66955", "targets": [ { "datasource": { @@ -504,7 +696,7 @@ "h": 8, "w": 15, "x": 0, - "y": 16 + "y": 34 }, "id": 5, "options": { @@ -577,7 +769,7 @@ "h": 8, "w": 9, "x": 15, - "y": 16 + "y": 34 }, "id": 6, "options": { @@ -596,7 +788,7 @@ "sizing": "auto", "text": {} }, - "pluginVersion": "10.3.0-63588", + "pluginVersion": "10.4.0-66955", "targets": [ { "datasource": { @@ -686,7 +878,7 @@ "h": 8, "w": 15, "x": 0, - "y": 24 + "y": 42 }, "id": 12, "options": { @@ -785,7 +977,7 @@ "h": 8, "w": 9, "x": 15, - "y": 24 + "y": 42 }, "id": 13, "options": { @@ -871,7 +1063,7 @@ "h": 8, "w": 15, "x": 0, - "y": 32 + "y": 50 }, "id": 14, "options": { @@ -970,7 +1162,7 @@ "h": 8, "w": 9, "x": 15, - "y": 32 + "y": 50 }, "id": 15, "options": { @@ -1056,7 +1248,7 @@ "h": 8, "w": 15, "x": 0, - "y": 40 + "y": 58 }, "id": 7, "options": { @@ -1129,7 +1321,7 @@ "h": 8, "w": 9, "x": 15, - "y": 40 + "y": 58 }, "id": 8, "options": { @@ -1147,7 +1339,7 @@ "showThresholdMarkers": true, "sizing": "auto" }, - "pluginVersion": "10.3.0-63588", + "pluginVersion": "10.4.0-66955", "targets": [ { "datasource": { @@ -1237,7 +1429,7 @@ "h": 8, "w": 15, "x": 0, - "y": 48 + "y": 66 }, "id": 9, "options": { @@ -1310,7 +1502,7 @@ "h": 8, "w": 9, "x": 15, - "y": 48 + "y": 66 }, "id": 10, "options": { @@ -1328,7 +1520,7 @@ "showThresholdMarkers": true, "sizing": "auto" }, - "pluginVersion": "10.3.0-63588", + "pluginVersion": "10.4.0-66955", "targets": [ { "datasource": { @@ -1418,7 +1610,7 @@ "h": 8, "w": 15, "x": 0, - "y": 56 + "y": 74 }, "id": 11, "options": { @@ -1455,7 +1647,6 @@ "type": "timeseries" } ], - "refresh": "", "schemaVersion": 39, "tags": [ "Platform" @@ -1512,13 +1703,13 @@ ] }, "time": { - "from": "now-6h", - "to": "now" + "from": "2024-02-09T17:50:36.987Z", + "to": "2024-02-11T21:57:23.869Z" }, "timepicker": {}, "timezone": "", "title": "Hashgraph", "uid": "c84ad8dc-c57e-4e01-b150-1732b151e317", - "version": 6, + "version": 8, "weekStart": "" } \ No newline at end of file diff --git a/hedera-node/infrastructure/grafana/dashboards/production/platform/intakePipeline.json b/hedera-node/infrastructure/grafana/dashboards/production/platform/intakePipeline.json index 693ceb43d78b..fd8772929a39 100644 --- a/hedera-node/infrastructure/grafana/dashboards/production/platform/intakePipeline.json +++ b/hedera-node/infrastructure/grafana/dashboards/production/platform/intakePipeline.json @@ -7,15 +7,173 @@ "type": "datasource", "pluginId": "prometheus", "pluginName": "Prometheus" + }, + { + "name": "DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM-FOR-LIBRARY-PANEL", + "label": "grafanacloud-swirldslabspreproduction-prom", + "description": "", + "type": "datasource", + "pluginId": "prometheus", + "pluginName": "Prometheus", + "usage": { + "libraryPanels": [ + { + "name": "Platform Status (new)", + "uid": "bdcky36wafe9se" + } + ] + } } ], - "__elements": {}, + "__elements": { + "bdcky36wafe9se": { + "name": "Platform Status (new)", + "uid": "bdcky36wafe9se", + "kind": 1, + "model": { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM-FOR-LIBRARY-PANEL}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "continuous-GrYlRd" + }, + "custom": { + "fillOpacity": 61, + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineWidth": 0, + "spanNulls": false + }, + "mappings": [ + { + "options": { + "1": { + "color": "super-light-green", + "index": 0, + "text": "STARTING_UP" + }, + "2": { + "color": "green", + "index": 1, + "text": "ACTIVE" + }, + "4": { + "color": "red", + "index": 2, + "text": "BEHIND" + }, + "5": { + "color": "light-blue", + "index": 3, + "text": "FREEZING" + }, + "6": { + "color": "dark-blue", + "index": 4, + "text": "FREEZE_COMPLETE" + }, + "7": { + "color": "super-light-yellow", + "index": 5, + "text": "REPLAYING_EVENTS" + }, + "8": { + "color": "text", + "index": 6, + "text": "OBSERVING" + }, + "9": { + "color": "orange", + "index": 7, + "text": "CHECKING" + }, + "10": { + "color": "purple", + "index": 8, + "text": "RECONNECT_COMPLETE" + }, + "11": { + "color": "#250707", + "index": 9, + "text": "CATASTROPHIC_FAILURE" + } + }, + "type": "value" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unitScale": true + }, + "overrides": [] + }, + "libraryPanel": { + "name": "Platform Status (new)", + "uid": "bdcky36wafe9se" + }, + "options": { + "alignValue": "left", + "legend": { + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "mergeValues": true, + "rowHeight": 0.9, + "showValue": "auto", + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "grafanacloud-prom" + }, + "disableTextWrap": false, + "editorMode": "builder", + "expr": "platform_PlatformStatus{environment=\"$network\", node_id=~\"$NodeID\"}", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": false, + "legendFormat": "node {{node_id}}", + "range": true, + "refId": "A", + "useBackend": false + } + ], + "title": "Platform Status", + "type": "state-timeline" + } + } + }, "__requires": [ { "type": "grafana", "id": "grafana", "name": "Grafana", - "version": "10.4.0-65875" + "version": "10.4.0-66955" }, { "type": "datasource", @@ -68,6 +226,44 @@ ], "liveNow": false, "panels": [ + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 16, + "panels": [], + "title": "Platform Status", + "type": "row" + }, + { + "gridPos": { + "h": 19, + "w": 24, + "x": 0, + "y": 1 + }, + "id": 14, + "libraryPanel": { + "uid": "bdcky36wafe9se", + "name": "Platform Status (new)" + } + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 20 + }, + "id": 15, + "panels": [], + "type": "row" + }, { "datasource": { "type": "prometheus", @@ -124,16 +320,15 @@ "value": 80 } ] - }, - "unitScale": true + } }, "overrides": [] }, "gridPos": { - "h": 8, - "w": 18, + "h": 9, + "w": 24, "x": 0, - "y": 0 + "y": 21 }, "id": 2, "options": { @@ -225,16 +420,15 @@ "value": 80 } ] - }, - "unitScale": true + } }, "overrides": [] }, "gridPos": { "h": 8, - "w": 18, + "w": 24, "x": 0, - "y": 8 + "y": 30 }, "id": 3, "options": { @@ -326,16 +520,15 @@ "value": 80 } ] - }, - "unitScale": true + } }, "overrides": [] }, "gridPos": { "h": 8, - "w": 18, + "w": 24, "x": 0, - "y": 16 + "y": 38 }, "id": 4, "options": { @@ -427,16 +620,15 @@ "value": 80 } ] - }, - "unitScale": true + } }, "overrides": [] }, "gridPos": { - "h": 8, - "w": 18, + "h": 9, + "w": 24, "x": 0, - "y": 24 + "y": 46 }, "id": 1, "options": { @@ -528,16 +720,15 @@ "value": 80 } ] - }, - "unitScale": true + } }, "overrides": [] }, "gridPos": { - "h": 8, - "w": 18, + "h": 9, + "w": 24, "x": 0, - "y": 32 + "y": 55 }, "id": 5, "options": { @@ -629,16 +820,15 @@ "value": 80 } ] - }, - "unitScale": true + } }, "overrides": [] }, "gridPos": { "h": 8, - "w": 18, + "w": 24, "x": 0, - "y": 40 + "y": 64 }, "id": 6, "options": { @@ -730,16 +920,15 @@ "value": 80 } ] - }, - "unitScale": true + } }, "overrides": [] }, "gridPos": { - "h": 8, - "w": 18, + "h": 9, + "w": 24, "x": 0, - "y": 48 + "y": 72 }, "id": 7, "options": { @@ -831,16 +1020,15 @@ "value": 80 } ] - }, - "unitScale": true + } }, "overrides": [] }, "gridPos": { "h": 8, - "w": 18, + "w": 24, "x": 0, - "y": 56 + "y": 81 }, "id": 9, "options": { @@ -932,16 +1120,15 @@ "value": 80 } ] - }, - "unitScale": true + } }, "overrides": [] }, "gridPos": { - "h": 8, - "w": 18, + "h": 9, + "w": 24, "x": 0, - "y": 64 + "y": 89 }, "id": 10, "options": { @@ -1033,16 +1220,15 @@ "value": 80 } ] - }, - "unitScale": true + } }, "overrides": [] }, "gridPos": { - "h": 8, - "w": 18, + "h": 9, + "w": 24, "x": 0, - "y": 72 + "y": 98 }, "id": 11, "options": { @@ -1134,16 +1320,15 @@ "value": 80 } ] - }, - "unitScale": true + } }, "overrides": [] }, "gridPos": { - "h": 8, - "w": 18, + "h": 9, + "w": 24, "x": 0, - "y": 80 + "y": 107 }, "id": 12, "options": { @@ -1235,16 +1420,15 @@ "value": 80 } ] - }, - "unitScale": true + } }, "overrides": [] }, "gridPos": { - "h": 8, - "w": 18, + "h": 9, + "w": 24, "x": 0, - "y": 88 + "y": 116 }, "id": 8, "options": { @@ -1281,7 +1465,6 @@ "type": "timeseries" } ], - "refresh": "", "schemaVersion": 39, "tags": [ "Platform" @@ -1340,13 +1523,13 @@ ] }, "time": { - "from": "now-6h", - "to": "now" + "from": "2024-02-09T17:50:36.987Z", + "to": "2024-02-11T21:57:23.869Z" }, "timepicker": {}, "timezone": "", "title": "Intake Pipeline", "uid": "c3475af5-4598-4279-a024-494eb4c4d66d", - "version": 11, + "version": 14, "weekStart": "" } \ No newline at end of file diff --git a/hedera-node/infrastructure/grafana/dashboards/production/platform/multiAnyStatAndStatus.json b/hedera-node/infrastructure/grafana/dashboards/production/platform/multiAnyStatAndStatus.json new file mode 100644 index 000000000000..b10566146366 --- /dev/null +++ b/hedera-node/infrastructure/grafana/dashboards/production/platform/multiAnyStatAndStatus.json @@ -0,0 +1,1162 @@ +{ + "__inputs": [ + { + "name": "DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM", + "label": "grafanacloud-swirldslabspreproduction-prom", + "description": "", + "type": "datasource", + "pluginId": "prometheus", + "pluginName": "Prometheus" + } + ], + "__elements": {}, + "__requires": [ + { + "type": "grafana", + "id": "grafana", + "name": "Grafana", + "version": "10.4.0-66955" + }, + { + "type": "datasource", + "id": "prometheus", + "name": "Prometheus", + "version": "1.0.0" + }, + { + "type": "panel", + "id": "state-timeline", + "name": "State timeline", + "version": "" + }, + { + "type": "panel", + "id": "timeseries", + "name": "Time series", + "version": "" + } + ], + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": { + "type": "grafana", + "uid": "-- Grafana --" + }, + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "target": { + "limit": 100, + "matchAny": false, + "tags": [], + "type": "dashboard" + }, + "type": "dashboard" + } + ] + }, + "description": "Multiple any stats, plus the platform status", + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": null, + "links": [ + { + "asDropdown": true, + "icon": "external link", + "includeVars": true, + "keepTime": true, + "tags": [ + "Platform" + ], + "targetBlank": false, + "title": "Platform Dashboards", + "tooltip": "", + "type": "dashboards", + "url": "" + } + ], + "liveNow": false, + "panels": [ + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 6, + "panels": [], + "title": "Platform Status", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "continuous-GrYlRd" + }, + "custom": { + "fillOpacity": 61, + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineWidth": 0, + "spanNulls": false + }, + "mappings": [ + { + "options": { + "1": { + "color": "super-light-green", + "index": 0, + "text": "STARTING_UP" + }, + "2": { + "color": "green", + "index": 1, + "text": "ACTIVE" + }, + "4": { + "color": "red", + "index": 2, + "text": "BEHIND" + }, + "5": { + "color": "light-blue", + "index": 3, + "text": "FREEZING" + }, + "6": { + "color": "dark-blue", + "index": 4, + "text": "FREEZE_COMPLETE" + }, + "7": { + "color": "super-light-yellow", + "index": 5, + "text": "REPLAYING_EVENTS" + }, + "8": { + "color": "text", + "index": 6, + "text": "OBSERVING" + }, + "9": { + "color": "orange", + "index": 7, + "text": "CHECKING" + }, + "10": { + "color": "purple", + "index": 8, + "text": "RECONNECT_COMPLETE" + }, + "11": { + "color": "#250707", + "index": 9, + "text": "CATASTROPHIC_FAILURE" + } + }, + "type": "value" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 15, + "w": 24, + "x": 0, + "y": 1 + }, + "id": 4, + "options": { + "alignValue": "left", + "legend": { + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "mergeValues": true, + "rowHeight": 0.9, + "showValue": "auto", + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM}" + }, + "disableTextWrap": false, + "editorMode": "code", + "expr": "platform_PlatformStatus{environment=\"$network\", metrics_node_id=~\".*\"}", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": false, + "legendFormat": "node {{node_id}}", + "range": true, + "refId": "A", + "useBackend": false + } + ], + "title": "Platform Status", + "type": "state-timeline" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 16 + }, + "id": 5, + "panels": [], + "title": "Metric 1", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 24, + "x": 0, + "y": 17 + }, + "id": 2, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM}" + }, + "editorMode": "code", + "expr": "{__name__=\"$name1\", environment=\"$network\", type=~\"$metric1_type\", metrics_node_id=~\".*\"}", + "legendFormat": "node{{node}} {{ type }}", + "range": true, + "refId": "A" + } + ], + "title": "$name1", + "type": "timeseries" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 29 + }, + "id": 7, + "panels": [], + "title": "Metric 2", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 24, + "x": 0, + "y": 30 + }, + "id": 8, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM}" + }, + "editorMode": "code", + "expr": "{__name__=\"$name2\", environment=\"$network\", type=~\"$metric2_type\", metrics_node_id=~\".*\"}", + "legendFormat": "node{{node}} {{ type }}", + "range": true, + "refId": "A" + } + ], + "title": "$name2", + "type": "timeseries" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 42 + }, + "id": 11, + "panels": [], + "title": "Metric 3", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 24, + "x": 0, + "y": 43 + }, + "id": 12, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM}" + }, + "editorMode": "code", + "expr": "{__name__=\"$name3\", environment=\"$network\", type=~\"$metric3_type\", metrics_node_id=~\".*\"}", + "legendFormat": "node{{node}} {{ type }}", + "range": true, + "refId": "A" + } + ], + "title": "$name3", + "type": "timeseries" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 55 + }, + "id": 10, + "panels": [], + "title": "Metric 4", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 24, + "x": 0, + "y": 56 + }, + "id": 13, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM}" + }, + "editorMode": "code", + "expr": "{__name__=\"$name4\", environment=\"$network\", type=~\"$metric4_type\", metrics_node_id=~\".*\"}", + "legendFormat": "node{{node}} {{ type }}", + "range": true, + "refId": "A" + } + ], + "title": "$name4", + "type": "timeseries" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 68 + }, + "id": 9, + "panels": [], + "title": "Metric 5", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 24, + "x": 0, + "y": 69 + }, + "id": 14, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM}" + }, + "editorMode": "code", + "expr": "{__name__=\"$name5\", environment=\"$network\", type=~\"$metric5_type\", metrics_node_id=~\".*\"}", + "legendFormat": "node{{node}} {{ type }}", + "range": true, + "refId": "A" + } + ], + "title": "$name5", + "type": "timeseries" + } + ], + "schemaVersion": 39, + "tags": [ + "Platform" + ], + "templating": { + "list": [ + { + "current": { + "selected": false, + "text": "grafanacloud-swirldslabspreproduction-prom", + "value": "grafanacloud-prom" + }, + "hide": 0, + "includeAll": false, + "multi": false, + "name": "Datasource", + "options": [], + "query": "prometheus", + "refresh": 1, + "regex": "/^.*-prom/", + "skipUrlSync": false, + "type": "datasource" + }, + { + "current": {}, + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM}" + }, + "definition": "label_values(environment)", + "description": "", + "hide": 0, + "includeAll": false, + "label": "Network", + "multi": false, + "name": "network", + "options": [], + "query": { + "query": "label_values(environment)", + "refId": "StandardVariableQuery" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "type": "query" + }, + { + "current": {}, + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM}" + }, + "definition": "label_values(__name__)", + "hide": 0, + "includeAll": false, + "label": "Metric Name 1", + "multi": false, + "name": "name1", + "options": [], + "query": { + "query": "label_values(__name__)", + "refId": "StandardVariableQuery" + }, + "refresh": 1, + "regex": "/^(Reconnect.*|app.*|internal.*|virtual.*|platform.*|merkle.*)/", + "skipUrlSync": false, + "sort": 1, + "type": "query" + }, + { + "current": {}, + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM}" + }, + "definition": "label_values(__name__)", + "hide": 0, + "includeAll": false, + "label": "Metric Name 2", + "multi": false, + "name": "name2", + "options": [], + "query": { + "query": "label_values(__name__)", + "refId": "StandardVariableQuery" + }, + "refresh": 1, + "regex": "/^(Reconnect.*|app.*|internal.*|virtual.*|platform.*|merkle.*)/", + "skipUrlSync": false, + "sort": 1, + "type": "query" + }, + { + "current": {}, + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM}" + }, + "definition": "label_values(__name__)", + "hide": 0, + "includeAll": false, + "label": "Metric Name 3", + "multi": false, + "name": "name3", + "options": [], + "query": { + "query": "label_values(__name__)", + "refId": "StandardVariableQuery" + }, + "refresh": 1, + "regex": "/^(Reconnect.*|app.*|internal.*|virtual.*|platform.*|merkle.*)/", + "skipUrlSync": false, + "sort": 1, + "type": "query" + }, + { + "current": {}, + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM}" + }, + "definition": "label_values(__name__)", + "hide": 0, + "includeAll": false, + "label": "Metric Name 4", + "multi": false, + "name": "name4", + "options": [], + "query": { + "query": "label_values(__name__)", + "refId": "StandardVariableQuery" + }, + "refresh": 1, + "regex": "/^(Reconnect.*|app.*|internal.*|virtual.*|platform.*|merkle.*)/", + "skipUrlSync": false, + "sort": 1, + "type": "query" + }, + { + "current": {}, + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM}" + }, + "definition": "label_values(__name__)", + "hide": 0, + "includeAll": false, + "label": "Metric Name 5", + "multi": false, + "name": "name5", + "options": [], + "query": { + "query": "label_values(__name__)", + "refId": "StandardVariableQuery" + }, + "refresh": 1, + "regex": "/^(Reconnect.*|app.*|internal.*|virtual.*|platform.*|merkle.*)/", + "skipUrlSync": false, + "sort": 1, + "type": "query" + }, + { + "allValue": ".*", + "current": { + "selected": false, + "text": "All", + "value": "$__all" + }, + "hide": 0, + "includeAll": true, + "label": "Metric 1 Type", + "multi": false, + "name": "metric1_type", + "options": [ + { + "selected": true, + "text": "All", + "value": "$__all" + }, + { + "selected": false, + "text": "min", + "value": "min" + }, + { + "selected": false, + "text": "max", + "value": "max" + }, + { + "selected": false, + "text": "stddev", + "value": "stddev" + }, + { + "selected": false, + "text": "mean", + "value": "mean" + } + ], + "query": "min,max,stddev,mean", + "queryValue": "", + "skipUrlSync": false, + "type": "custom" + }, + { + "allValue": ".*", + "current": { + "selected": false, + "text": "All", + "value": "$__all" + }, + "hide": 0, + "includeAll": true, + "label": "Metric 2 Type", + "multi": false, + "name": "metric2_type", + "options": [ + { + "selected": true, + "text": "All", + "value": "$__all" + }, + { + "selected": false, + "text": "min", + "value": "min" + }, + { + "selected": false, + "text": "max", + "value": "max" + }, + { + "selected": false, + "text": "stddev", + "value": "stddev" + }, + { + "selected": false, + "text": "mean", + "value": "mean" + } + ], + "query": "min,max,stddev,mean", + "queryValue": "", + "skipUrlSync": false, + "type": "custom" + }, + { + "allValue": ".*", + "current": { + "selected": false, + "text": "All", + "value": "$__all" + }, + "hide": 0, + "includeAll": true, + "label": "Metric 3 Type", + "multi": false, + "name": "metric3_type", + "options": [ + { + "selected": true, + "text": "All", + "value": "$__all" + }, + { + "selected": false, + "text": "min", + "value": "min" + }, + { + "selected": false, + "text": "max", + "value": "max" + }, + { + "selected": false, + "text": "stddev", + "value": "stddev" + }, + { + "selected": false, + "text": "mean", + "value": "mean" + } + ], + "query": "min,max,stddev,mean", + "queryValue": "", + "skipUrlSync": false, + "type": "custom" + }, + { + "allValue": ".*", + "current": { + "selected": false, + "text": "All", + "value": "$__all" + }, + "hide": 0, + "includeAll": true, + "label": "Metric 4 Type", + "multi": false, + "name": "metric4_type", + "options": [ + { + "selected": true, + "text": "All", + "value": "$__all" + }, + { + "selected": false, + "text": "min", + "value": "min" + }, + { + "selected": false, + "text": "max", + "value": "max" + }, + { + "selected": false, + "text": "stddev", + "value": "stddev" + }, + { + "selected": false, + "text": "mean", + "value": "mean" + } + ], + "query": "min,max,stddev,mean", + "queryValue": "", + "skipUrlSync": false, + "type": "custom" + }, + { + "allValue": ".*", + "current": { + "selected": false, + "text": "All", + "value": "$__all" + }, + "hide": 0, + "includeAll": true, + "label": "Metric 5 Type", + "multi": false, + "name": "metric5_type", + "options": [ + { + "selected": true, + "text": "All", + "value": "$__all" + }, + { + "selected": false, + "text": "min", + "value": "min" + }, + { + "selected": false, + "text": "max", + "value": "max" + }, + { + "selected": false, + "text": "stddev", + "value": "stddev" + }, + { + "selected": false, + "text": "mean", + "value": "mean" + } + ], + "query": "min,max,stddev,mean", + "queryValue": "", + "skipUrlSync": false, + "type": "custom" + } + ] + }, + "time": { + "from": "now-3h", + "to": "now" + }, + "timepicker": {}, + "timezone": "", + "title": "Multi Any Stat + Status", + "uid": "bdcrx247h03r4d", + "version": 9, + "weekStart": "" +} \ No newline at end of file diff --git a/hedera-node/infrastructure/grafana/dashboards/production/platform/networkHealth.json b/hedera-node/infrastructure/grafana/dashboards/production/platform/networkHealth.json index 0e9f442541d9..d18864553d2e 100644 --- a/hedera-node/infrastructure/grafana/dashboards/production/platform/networkHealth.json +++ b/hedera-node/infrastructure/grafana/dashboards/production/platform/networkHealth.json @@ -7,9 +7,166 @@ "type": "datasource", "pluginId": "prometheus", "pluginName": "Prometheus" + }, + { + "name": "DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM-FOR-LIBRARY-PANEL", + "label": "grafanacloud-swirldslabspreproduction-prom", + "description": "", + "type": "datasource", + "pluginId": "prometheus", + "pluginName": "Prometheus", + "usage": { + "libraryPanels": [ + { + "name": "Platform Status (new)", + "uid": "bdcky36wafe9se" + } + ] + } } ], "__elements": { + "bdcky36wafe9se": { + "name": "Platform Status (new)", + "uid": "bdcky36wafe9se", + "kind": 1, + "model": { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM-FOR-LIBRARY-PANEL}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "continuous-GrYlRd" + }, + "custom": { + "fillOpacity": 61, + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineWidth": 0, + "spanNulls": false + }, + "mappings": [ + { + "options": { + "1": { + "color": "super-light-green", + "index": 0, + "text": "STARTING_UP" + }, + "2": { + "color": "green", + "index": 1, + "text": "ACTIVE" + }, + "4": { + "color": "red", + "index": 2, + "text": "BEHIND" + }, + "5": { + "color": "light-blue", + "index": 3, + "text": "FREEZING" + }, + "6": { + "color": "dark-blue", + "index": 4, + "text": "FREEZE_COMPLETE" + }, + "7": { + "color": "super-light-yellow", + "index": 5, + "text": "REPLAYING_EVENTS" + }, + "8": { + "color": "text", + "index": 6, + "text": "OBSERVING" + }, + "9": { + "color": "orange", + "index": 7, + "text": "CHECKING" + }, + "10": { + "color": "purple", + "index": 8, + "text": "RECONNECT_COMPLETE" + }, + "11": { + "color": "#250707", + "index": 9, + "text": "CATASTROPHIC_FAILURE" + } + }, + "type": "value" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unitScale": true + }, + "overrides": [] + }, + "libraryPanel": { + "name": "Platform Status (new)", + "uid": "bdcky36wafe9se" + }, + "options": { + "alignValue": "left", + "legend": { + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "mergeValues": true, + "rowHeight": 0.9, + "showValue": "auto", + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "grafanacloud-prom" + }, + "disableTextWrap": false, + "editorMode": "builder", + "expr": "platform_PlatformStatus{environment=\"$network\", node_id=~\"$NodeID\"}", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": false, + "legendFormat": "node {{node_id}}", + "range": true, + "refId": "A", + "useBackend": false + } + ], + "title": "Platform Status", + "type": "state-timeline" + } + }, "ea3a07d5-8f0b-4705-997d-51935e44d3c0": { "name": "intakeQueue", "uid": "ea3a07d5-8f0b-4705-997d-51935e44d3c0", @@ -321,17 +478,11 @@ } }, "__requires": [ - { - "type": "panel", - "id": "gauge", - "name": "Gauge", - "version": "" - }, { "type": "grafana", "id": "grafana", "name": "Grafana", - "version": "10.3.0-63588" + "version": "10.4.0-66955" }, { "type": "datasource", @@ -391,138 +542,42 @@ "liveNow": false, "panels": [ { - "datasource": { - "type": "prometheus", - "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [ - { - "options": { - "1": { - "color": "super-light-blue", - "index": 0, - "text": "Starting Up" - }, - "2": { - "color": "semi-dark-green", - "index": 1, - "text": "Active" - }, - "3": { - "color": "#808080", - "index": 10, - "text": "Disconnected" - }, - "4": { - "color": "semi-dark-orange", - "index": 2, - "text": "Behind" - }, - "5": { - "color": "purple", - "index": 3, - "text": "Freezing" - }, - "6": { - "color": "dark-purple", - "index": 4, - "text": "Freeze Complete" - }, - "7": { - "color": "blue", - "index": 5, - "text": "Replaying Events" - }, - "8": { - "color": "super-light-green", - "index": 6, - "text": "Observing" - }, - "9": { - "color": "light-yellow", - "index": 7, - "text": "Checking" - }, - "10": { - "color": "light-orange", - "index": 8, - "text": "Reconnect Complete" - }, - "11": { - "color": "dark-red", - "index": 9, - "text": "Catastrophic Failure" - } - }, - "type": "value" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, + "collapsed": false, "gridPos": { - "h": 8, + "h": 1, "w": 24, "x": 0, "y": 0 }, - "id": 12, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "10.3.0-63588", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM}" - }, - "disableTextWrap": false, - "editorMode": "builder", - "exemplar": false, - "expr": "platform_PlatformStatus{environment=\"$network\"}", - "format": "time_series", - "fullMetaSearch": false, - "includeNullMetadata": true, - "instant": false, - "legendFormat": "node {{node_id}}", - "range": true, - "refId": "A", - "useBackend": false - } - ], + "id": 25, + "panels": [], "title": "Platform Status", - "type": "stat" + "type": "row" + }, + { + "gridPos": { + "h": 19, + "w": 22, + "x": 0, + "y": 1 + }, + "id": 27, + "libraryPanel": { + "uid": "bdcky36wafe9se", + "name": "Platform Status (new)" + } + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 20 + }, + "id": 24, + "panels": [], + "type": "row" }, { "datasource": { @@ -592,9 +647,9 @@ }, "gridPos": { "h": 8, - "w": 16, + "w": 22, "x": 0, - "y": 8 + "y": 21 }, "id": 13, "options": { @@ -663,14 +718,15 @@ }, "gridPos": { "h": 8, - "w": 8, - "x": 16, - "y": 8 + "w": 2, + "x": 22, + "y": 21 }, "id": 21, "options": { - "minVizHeight": 75, - "minVizWidth": 75, + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", "orientation": "auto", "reduceOptions": { "calcs": [ @@ -679,11 +735,11 @@ "fields": "", "values": false }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "sizing": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "10.3.0-63588", + "pluginVersion": "10.4.0-66955", "targets": [ { "datasource": { @@ -703,7 +759,7 @@ } ], "title": "Current healthyNetworkFraction", - "type": "gauge" + "type": "stat" }, { "datasource": { @@ -771,9 +827,9 @@ }, "gridPos": { "h": 8, - "w": 16, + "w": 22, "x": 0, - "y": 16 + "y": 29 }, "id": 3, "options": { @@ -843,14 +899,15 @@ }, "gridPos": { "h": 8, - "w": 8, - "x": 16, - "y": 16 + "w": 2, + "x": 22, + "y": 29 }, - "id": 4, + "id": 23, "options": { - "minVizHeight": 75, - "minVizWidth": 75, + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", "orientation": "auto", "reduceOptions": { "calcs": [ @@ -859,11 +916,11 @@ "fields": "", "values": false }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "sizing": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "10.3.0-63588", + "pluginVersion": "10.4.0-66955", "targets": [ { "datasource": { @@ -883,7 +940,7 @@ } ], "title": "Avg trans/sec", - "type": "gauge" + "type": "stat" }, { "datasource": { @@ -951,9 +1008,9 @@ }, "gridPos": { "h": 8, - "w": 16, + "w": 22, "x": 0, - "y": 24 + "y": 37 }, "id": 1, "options": { @@ -963,9 +1020,6 @@ "placement": "bottom", "showLegend": true }, - "timezone": [ - "utc" - ], "tooltip": { "mode": "single", "sort": "none" @@ -1014,13 +1068,9 @@ "color": "green", "value": null }, - { - "color": "#EAB839", - "value": 5 - }, { "color": "red", - "value": 10 + "value": 80 } ] } @@ -1029,25 +1079,28 @@ }, "gridPos": { "h": 8, - "w": 8, - "x": 16, - "y": 24 + "w": 2, + "x": 22, + "y": 37 }, "id": 2, "options": { - "minVizHeight": 75, - "minVizWidth": 75, + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", "orientation": "auto", "reduceOptions": { - "calcs": [], + "calcs": [ + "lastNotNull" + ], "fields": "", "values": false }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "sizing": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "10.3.0-63588", + "pluginVersion": "10.4.0-66955", "targets": [ { "datasource": { @@ -1104,7 +1157,7 @@ } ], "title": "secC2C", - "type": "gauge" + "type": "stat" }, { "datasource": { @@ -1172,9 +1225,9 @@ }, "gridPos": { "h": 8, - "w": 16, + "w": 22, "x": 0, - "y": 32 + "y": 45 }, "id": 5, "options": { @@ -1244,14 +1297,15 @@ }, "gridPos": { "h": 8, - "w": 8, - "x": 16, - "y": 32 + "w": 2, + "x": 22, + "y": 45 }, "id": 6, "options": { - "minVizHeight": 75, - "minVizWidth": 75, + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", "orientation": "auto", "reduceOptions": { "calcs": [ @@ -1260,11 +1314,11 @@ "fields": "", "values": false }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "sizing": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "10.3.0-63588", + "pluginVersion": "10.4.0-66955", "targets": [ { "datasource": { @@ -1318,14 +1372,14 @@ } ], "title": "cEvents/sec", - "type": "gauge" + "type": "stat" }, { "gridPos": { "h": 8, "w": 16, "x": 0, - "y": 40 + "y": 53 }, "id": 7, "libraryPanel": { @@ -1338,7 +1392,7 @@ "h": 8, "w": 8, "x": 16, - "y": 40 + "y": 53 }, "id": 20, "libraryPanel": { @@ -1349,9 +1403,9 @@ { "gridPos": { "h": 8, - "w": 16, + "w": 22, "x": 0, - "y": 48 + "y": 61 }, "id": 11, "libraryPanel": { @@ -1393,25 +1447,26 @@ }, "gridPos": { "h": 8, - "w": 8, - "x": 16, - "y": 48 + "w": 2, + "x": 22, + "y": 61 }, "id": 14, "options": { - "minVizHeight": 75, - "minVizWidth": 75, + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", "orientation": "auto", "reduceOptions": { "calcs": [], "fields": "", "values": false }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "sizing": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "10.3.0-63588", + "pluginVersion": "10.4.0-66955", "targets": [ { "datasource": { @@ -1465,7 +1520,7 @@ } ], "title": "consEvents", - "type": "gauge" + "type": "stat" }, { "datasource": { @@ -1535,9 +1590,9 @@ }, "gridPos": { "h": 8, - "w": 16, + "w": 22, "x": 0, - "y": 56 + "y": 69 }, "id": 10, "options": { @@ -1574,7 +1629,6 @@ } ], "title": "secTransH", - "transformations": [], "type": "timeseries" }, { @@ -1612,14 +1666,15 @@ }, "gridPos": { "h": 8, - "w": 8, - "x": 16, - "y": 56 + "w": 2, + "x": 22, + "y": 69 }, "id": 15, "options": { - "minVizHeight": 75, - "minVizWidth": 75, + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", "orientation": "auto", "reduceOptions": { "calcs": [ @@ -1628,11 +1683,11 @@ "fields": "", "values": false }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "sizing": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "10.3.0-63588", + "pluginVersion": "10.4.0-66955", "targets": [ { "datasource": { @@ -1686,7 +1741,7 @@ } ], "title": "Network secTransH", - "type": "gauge" + "type": "stat" }, { "datasource": { @@ -1751,9 +1806,9 @@ }, "gridPos": { "h": 8, - "w": 16, + "w": 22, "x": 0, - "y": 64 + "y": 77 }, "id": 9, "options": { @@ -1824,14 +1879,15 @@ }, "gridPos": { "h": 8, - "w": 8, - "x": 16, - "y": 64 + "w": 2, + "x": 22, + "y": 77 }, "id": 17, "options": { - "minVizHeight": 75, - "minVizWidth": 75, + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", "orientation": "auto", "reduceOptions": { "calcs": [ @@ -1840,11 +1896,11 @@ "fields": "", "values": false }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "sizing": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "10.3.0-63588", + "pluginVersion": "10.4.0-66955", "targets": [ { "datasource": { @@ -1899,10 +1955,9 @@ } ], "title": "Network preHandleMicros", - "type": "gauge" + "type": "stat" } ], - "refresh": "", "schemaVersion": 39, "tags": [ "Platform" @@ -1961,13 +2016,13 @@ ] }, "time": { - "from": "now-6h", - "to": "now" + "from": "2024-02-09T17:50:36.987Z", + "to": "2024-02-11T21:57:23.869Z" }, "timepicker": {}, "timezone": "", "title": "Network Health", "uid": "ec9413c6-6f17-49fc-951b-51cbc21a1eef", - "version": 11, + "version": 16, "weekStart": "" } \ No newline at end of file diff --git a/hedera-node/infrastructure/grafana/dashboards/production/platform/reconnect.json b/hedera-node/infrastructure/grafana/dashboards/production/platform/reconnect.json index 27b78eab8259..ab63c90efc91 100644 --- a/hedera-node/infrastructure/grafana/dashboards/production/platform/reconnect.json +++ b/hedera-node/infrastructure/grafana/dashboards/production/platform/reconnect.json @@ -17,6 +17,10 @@ "pluginName": "Prometheus", "usage": { "libraryPanels": [ + { + "name": "Platform Status (new)", + "uid": "bdcky36wafe9se" + }, { "name": "conns Changes", "uid": "ef64b104-def4-4374-ba11-df4fb2a8ec2d" @@ -26,78 +30,84 @@ } ], "__elements": { - "c0f06e60-0fcc-44e7-af5a-bf436e1fbe98": { - "name": "Platform Status", - "uid": "c0f06e60-0fcc-44e7-af5a-bf436e1fbe98", + "bdcky36wafe9se": { + "name": "Platform Status (new)", + "uid": "bdcky36wafe9se", "kind": 1, "model": { "datasource": { "type": "prometheus", - "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM}" + "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM-FOR-LIBRARY-PANEL}" }, "description": "", "fieldConfig": { "defaults": { "color": { - "mode": "thresholds" + "mode": "continuous-GrYlRd" + }, + "custom": { + "fillOpacity": 61, + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineWidth": 0, + "spanNulls": false }, "mappings": [ { "options": { "1": { - "color": "super-light-blue", + "color": "super-light-green", "index": 0, - "text": "Starting Up" + "text": "STARTING_UP" }, "2": { - "color": "semi-dark-green", + "color": "green", "index": 1, - "text": "Active" - }, - "3": { - "color": "#808080", - "index": 10, - "text": "Disconnected" + "text": "ACTIVE" }, "4": { - "color": "semi-dark-orange", + "color": "red", "index": 2, - "text": "Behind" + "text": "BEHIND" }, "5": { - "color": "purple", + "color": "light-blue", "index": 3, - "text": "Freezing" + "text": "FREEZING" }, "6": { - "color": "dark-purple", + "color": "dark-blue", "index": 4, - "text": "Freeze Complete" + "text": "FREEZE_COMPLETE" }, "7": { - "color": "blue", + "color": "super-light-yellow", "index": 5, - "text": "Replaying Events" + "text": "REPLAYING_EVENTS" }, "8": { - "color": "super-light-green", + "color": "text", "index": 6, - "text": "Observing" + "text": "OBSERVING" }, "9": { - "color": "light-yellow", + "color": "orange", "index": 7, - "text": "Checking" + "text": "CHECKING" }, "10": { - "color": "light-orange", + "color": "purple", "index": 8, - "text": "Reconnect Complete" + "text": "RECONNECT_COMPLETE" }, "11": { - "color": "dark-red", + "color": "#250707", "index": 9, - "text": "Catastrophic Failure" + "text": "CATASTROPHIC_FAILURE" } }, "type": "value" @@ -115,25 +125,30 @@ "value": 80 } ] - } + }, + "unitScale": true }, "overrides": [] }, + "libraryPanel": { + "name": "Platform Status (new)", + "uid": "bdcky36wafe9se" + }, "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false + "alignValue": "left", + "legend": { + "displayMode": "list", + "placement": "bottom", + "showLegend": false }, - "textMode": "auto" + "mergeValues": true, + "rowHeight": 0.9, + "showValue": "auto", + "tooltip": { + "mode": "single", + "sort": "none" + } }, - "pluginVersion": "10.3.0-63137", "targets": [ { "datasource": { @@ -142,9 +157,7 @@ }, "disableTextWrap": false, "editorMode": "builder", - "exemplar": false, - "expr": "platform_PlatformStatus{environment=\"$network\"}", - "format": "time_series", + "expr": "platform_PlatformStatus{environment=\"$network\", node_id=~\"$NodeID\"}", "fullMetaSearch": false, "includeNullMetadata": true, "instant": false, @@ -155,7 +168,7 @@ } ], "title": "Platform Status", - "type": "stat" + "type": "state-timeline" } }, "a5c5c524-a234-4292-85ae-9fb58f7a863a": { @@ -368,7 +381,7 @@ "type": "grafana", "id": "grafana", "name": "Grafana", - "version": "10.3.0-63588" + "version": "10.4.0-66955" }, { "type": "datasource", @@ -423,15 +436,15 @@ "panels": [ { "gridPos": { - "h": 7, + "h": 16, "w": 24, "x": 0, "y": 0 }, - "id": 7, + "id": 13, "libraryPanel": { - "uid": "c0f06e60-0fcc-44e7-af5a-bf436e1fbe98", - "name": "Platform Status" + "uid": "bdcky36wafe9se", + "name": "Platform Status (new)" } }, { @@ -439,7 +452,7 @@ "h": 8, "w": 24, "x": 0, - "y": 7 + "y": 16 }, "id": 5, "libraryPanel": { @@ -511,7 +524,7 @@ "h": 8, "w": 24, "x": 0, - "y": 15 + "y": 24 }, "id": 10, "options": { @@ -594,7 +607,8 @@ "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", @@ -610,7 +624,7 @@ "h": 9, "w": 24, "x": 0, - "y": 23 + "y": 32 }, "id": 11, "options": { @@ -708,7 +722,7 @@ "h": 8, "w": 24, "x": 0, - "y": 32 + "y": 41 }, "id": 1, "options": { @@ -823,7 +837,7 @@ "h": 8, "w": 24, "x": 0, - "y": 40 + "y": 49 }, "id": 2, "options": { @@ -881,7 +895,7 @@ "h": 8, "w": 24, "x": 0, - "y": 48 + "y": 57 }, "id": 9, "libraryPanel": { @@ -890,7 +904,6 @@ } } ], - "refresh": "5s", "schemaVersion": 39, "tags": [ "Platform" @@ -949,13 +962,13 @@ ] }, "time": { - "from": "now-6h", - "to": "now" + "from": "2024-02-09T17:50:36.987Z", + "to": "2024-02-11T21:57:23.869Z" }, "timepicker": {}, "timezone": "utc", "title": "Reconnects", "uid": "a11737aa-3390-4951-8ddb-0b1b3f06aebc", - "version": 20, + "version": 21, "weekStart": "" } \ No newline at end of file diff --git a/hedera-node/infrastructure/grafana/dashboards/production/platform/signedStates.json b/hedera-node/infrastructure/grafana/dashboards/production/platform/signedStates.json index af822fed9295..2329578076d7 100644 --- a/hedera-node/infrastructure/grafana/dashboards/production/platform/signedStates.json +++ b/hedera-node/infrastructure/grafana/dashboards/production/platform/signedStates.json @@ -7,9 +7,167 @@ "type": "datasource", "pluginId": "prometheus", "pluginName": "Prometheus" + }, + { + "name": "DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM-FOR-LIBRARY-PANEL", + "label": "grafanacloud-swirldslabspreproduction-prom", + "description": "", + "type": "datasource", + "pluginId": "prometheus", + "pluginName": "Prometheus", + "usage": { + "libraryPanels": [ + { + "name": "Platform Status (new)", + "uid": "bdcky36wafe9se" + } + ] + } } ], - "__elements": {}, + "__elements": { + "bdcky36wafe9se": { + "name": "Platform Status (new)", + "uid": "bdcky36wafe9se", + "kind": 1, + "model": { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM-FOR-LIBRARY-PANEL}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "continuous-GrYlRd" + }, + "custom": { + "fillOpacity": 61, + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineWidth": 0, + "spanNulls": false + }, + "mappings": [ + { + "options": { + "1": { + "color": "super-light-green", + "index": 0, + "text": "STARTING_UP" + }, + "2": { + "color": "green", + "index": 1, + "text": "ACTIVE" + }, + "4": { + "color": "red", + "index": 2, + "text": "BEHIND" + }, + "5": { + "color": "light-blue", + "index": 3, + "text": "FREEZING" + }, + "6": { + "color": "dark-blue", + "index": 4, + "text": "FREEZE_COMPLETE" + }, + "7": { + "color": "super-light-yellow", + "index": 5, + "text": "REPLAYING_EVENTS" + }, + "8": { + "color": "text", + "index": 6, + "text": "OBSERVING" + }, + "9": { + "color": "orange", + "index": 7, + "text": "CHECKING" + }, + "10": { + "color": "purple", + "index": 8, + "text": "RECONNECT_COMPLETE" + }, + "11": { + "color": "#250707", + "index": 9, + "text": "CATASTROPHIC_FAILURE" + } + }, + "type": "value" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unitScale": true + }, + "overrides": [] + }, + "libraryPanel": { + "name": "Platform Status (new)", + "uid": "bdcky36wafe9se" + }, + "options": { + "alignValue": "left", + "legend": { + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "mergeValues": true, + "rowHeight": 0.9, + "showValue": "auto", + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "grafanacloud-prom" + }, + "disableTextWrap": false, + "editorMode": "builder", + "expr": "platform_PlatformStatus{environment=\"$network\", node_id=~\"$NodeID\"}", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": false, + "legendFormat": "node {{node_id}}", + "range": true, + "refId": "A", + "useBackend": false + } + ], + "title": "Platform Status", + "type": "state-timeline" + } + } + }, "__requires": [ { "type": "panel", @@ -21,7 +179,7 @@ "type": "grafana", "id": "grafana", "name": "Grafana", - "version": "10.3.0-63588" + "version": "10.4.0-66955" }, { "type": "datasource", @@ -128,10 +286,11 @@ "fields": "", "values": false }, + "showPercentChange": false, "textMode": "auto", "wideLayout": true }, - "pluginVersion": "10.3.0-63588", + "pluginVersion": "10.4.0-66955", "targets": [ { "datasource": { @@ -153,6 +312,44 @@ "title": "issCount", "type": "stat" }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 6 + }, + "id": 19, + "panels": [], + "title": "Platform Status", + "type": "row" + }, + { + "gridPos": { + "h": 15, + "w": 16, + "x": 0, + "y": 7 + }, + "id": 18, + "libraryPanel": { + "uid": "bdcky36wafe9se", + "name": "Platform Status (new)" + } + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 22 + }, + "id": 21, + "panels": [], + "type": "row" + }, { "datasource": { "type": "prometheus", @@ -221,7 +418,7 @@ "h": 8, "w": 16, "x": 0, - "y": 6 + "y": 23 }, "id": 1, "options": { @@ -294,7 +491,7 @@ "h": 8, "w": 8, "x": 16, - "y": 6 + "y": 23 }, "id": 3, "options": { @@ -312,7 +509,7 @@ "showThresholdMarkers": true, "sizing": "auto" }, - "pluginVersion": "10.3.0-63588", + "pluginVersion": "10.4.0-66955", "targets": [ { "datasource": { @@ -402,7 +599,7 @@ "h": 8, "w": 16, "x": 0, - "y": 14 + "y": 31 }, "id": 4, "options": { @@ -474,7 +671,7 @@ "h": 8, "w": 8, "x": 16, - "y": 14 + "y": 31 }, "id": 5, "options": { @@ -492,7 +689,7 @@ "showThresholdMarkers": true, "sizing": "auto" }, - "pluginVersion": "10.3.0-63588", + "pluginVersion": "10.4.0-66955", "targets": [ { "datasource": { @@ -616,7 +813,7 @@ "h": 8, "w": 16, "x": 0, - "y": 22 + "y": 39 }, "id": 6, "options": { @@ -688,7 +885,7 @@ "h": 8, "w": 8, "x": 16, - "y": 22 + "y": 39 }, "id": 7, "options": { @@ -706,7 +903,7 @@ "showThresholdMarkers": true, "sizing": "auto" }, - "pluginVersion": "10.3.0-63588", + "pluginVersion": "10.4.0-66955", "targets": [ { "datasource": { @@ -830,7 +1027,7 @@ "h": 8, "w": 16, "x": 0, - "y": 30 + "y": 47 }, "id": 8, "options": { @@ -902,7 +1099,7 @@ "h": 8, "w": 8, "x": 16, - "y": 30 + "y": 47 }, "id": 14, "options": { @@ -920,7 +1117,7 @@ "showThresholdMarkers": true, "sizing": "auto" }, - "pluginVersion": "10.3.0-63588", + "pluginVersion": "10.4.0-66955", "targets": [ { "datasource": { @@ -1010,7 +1207,7 @@ "h": 8, "w": 16, "x": 0, - "y": 38 + "y": 55 }, "id": 10, "options": { @@ -1082,7 +1279,7 @@ "h": 8, "w": 8, "x": 16, - "y": 38 + "y": 55 }, "id": 11, "options": { @@ -1100,7 +1297,7 @@ "showThresholdMarkers": true, "sizing": "auto" }, - "pluginVersion": "10.3.0-63588", + "pluginVersion": "10.4.0-66955", "targets": [ { "datasource": { @@ -1220,7 +1417,7 @@ "h": 8, "w": 16, "x": 0, - "y": 46 + "y": 63 }, "id": 15, "options": { @@ -1292,7 +1489,7 @@ "h": 8, "w": 8, "x": 16, - "y": 46 + "y": 63 }, "id": 16, "options": { @@ -1310,7 +1507,7 @@ "showThresholdMarkers": true, "sizing": "auto" }, - "pluginVersion": "10.3.0-63588", + "pluginVersion": "10.4.0-66955", "targets": [ { "datasource": { @@ -1367,7 +1564,6 @@ "type": "gauge" } ], - "refresh": "", "schemaVersion": 39, "tags": [ "Platform" @@ -1424,13 +1620,13 @@ ] }, "time": { - "from": "now-6h", - "to": "now" + "from": "2024-02-09T17:50:36.987Z", + "to": "2024-02-11T21:57:23.869Z" }, "timepicker": {}, "timezone": "", "title": "Signed States", "uid": "b9dde471-a093-42b6-b633-1755b3fc18d3", - "version": 2, + "version": 3, "weekStart": "" } \ No newline at end of file diff --git a/hedera-node/infrastructure/grafana/dashboards/production/platform/threadsAndQueues.json b/hedera-node/infrastructure/grafana/dashboards/production/platform/threadsAndQueues.json index 7bf92512e0ba..0f49bc858067 100644 --- a/hedera-node/infrastructure/grafana/dashboards/production/platform/threadsAndQueues.json +++ b/hedera-node/infrastructure/grafana/dashboards/production/platform/threadsAndQueues.json @@ -7,9 +7,166 @@ "type": "datasource", "pluginId": "prometheus", "pluginName": "Prometheus" + }, + { + "name": "DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM-FOR-LIBRARY-PANEL", + "label": "grafanacloud-swirldslabspreproduction-prom", + "description": "", + "type": "datasource", + "pluginId": "prometheus", + "pluginName": "Prometheus", + "usage": { + "libraryPanels": [ + { + "name": "Platform Status (new)", + "uid": "bdcky36wafe9se" + } + ] + } } ], "__elements": { + "bdcky36wafe9se": { + "name": "Platform Status (new)", + "uid": "bdcky36wafe9se", + "kind": 1, + "model": { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM-FOR-LIBRARY-PANEL}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "continuous-GrYlRd" + }, + "custom": { + "fillOpacity": 61, + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineWidth": 0, + "spanNulls": false + }, + "mappings": [ + { + "options": { + "1": { + "color": "super-light-green", + "index": 0, + "text": "STARTING_UP" + }, + "2": { + "color": "green", + "index": 1, + "text": "ACTIVE" + }, + "4": { + "color": "red", + "index": 2, + "text": "BEHIND" + }, + "5": { + "color": "light-blue", + "index": 3, + "text": "FREEZING" + }, + "6": { + "color": "dark-blue", + "index": 4, + "text": "FREEZE_COMPLETE" + }, + "7": { + "color": "super-light-yellow", + "index": 5, + "text": "REPLAYING_EVENTS" + }, + "8": { + "color": "text", + "index": 6, + "text": "OBSERVING" + }, + "9": { + "color": "orange", + "index": 7, + "text": "CHECKING" + }, + "10": { + "color": "purple", + "index": 8, + "text": "RECONNECT_COMPLETE" + }, + "11": { + "color": "#250707", + "index": 9, + "text": "CATASTROPHIC_FAILURE" + } + }, + "type": "value" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unitScale": true + }, + "overrides": [] + }, + "libraryPanel": { + "name": "Platform Status (new)", + "uid": "bdcky36wafe9se" + }, + "options": { + "alignValue": "left", + "legend": { + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "mergeValues": true, + "rowHeight": 0.9, + "showValue": "auto", + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "grafanacloud-prom" + }, + "disableTextWrap": false, + "editorMode": "builder", + "expr": "platform_PlatformStatus{environment=\"$network\", node_id=~\"$NodeID\"}", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": false, + "legendFormat": "node {{node_id}}", + "range": true, + "refId": "A", + "useBackend": false + } + ], + "title": "Platform Status", + "type": "state-timeline" + } + }, "ea3a07d5-8f0b-4705-997d-51935e44d3c0": { "name": "intakeQueue", "uid": "ea3a07d5-8f0b-4705-997d-51935e44d3c0", @@ -331,7 +488,7 @@ "type": "grafana", "id": "grafana", "name": "Grafana", - "version": "10.4.0-65875" + "version": "10.4.0-66955" }, { "type": "datasource", @@ -385,13 +542,26 @@ ], "liveNow": false, "panels": [ + { + "gridPos": { + "h": 16, + "w": 16, + "x": 0, + "y": 0 + }, + "id": 48, + "libraryPanel": { + "uid": "bdcky36wafe9se", + "name": "Platform Status (new)" + } + }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, - "y": 0 + "y": 16 }, "id": 16, "panels": [], @@ -458,8 +628,7 @@ "value": 200 } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -467,7 +636,7 @@ "h": 8, "w": 16, "x": 0, - "y": 1 + "y": 17 }, "id": 6, "options": { @@ -533,8 +702,7 @@ "value": 200 } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -542,7 +710,7 @@ "h": 8, "w": 8, "x": 16, - "y": 1 + "y": 17 }, "id": 17, "options": { @@ -560,7 +728,7 @@ "showThresholdMarkers": true, "sizing": "auto" }, - "pluginVersion": "10.4.0-65875", + "pluginVersion": "10.4.0-66955", "targets": [ { "datasource": { @@ -676,8 +844,7 @@ "value": 0.8 } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -685,7 +852,7 @@ "h": 8, "w": 16, "x": 0, - "y": 9 + "y": 25 }, "id": 9, "options": { @@ -753,8 +920,7 @@ "value": 0.8 } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -762,7 +928,7 @@ "h": 8, "w": 8, "x": 16, - "y": 9 + "y": 25 }, "id": 18, "options": { @@ -778,7 +944,7 @@ "showThresholdMarkers": true, "sizing": "auto" }, - "pluginVersion": "10.4.0-65875", + "pluginVersion": "10.4.0-66955", "targets": [ { "datasource": { @@ -894,8 +1060,7 @@ "value": 400 } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -903,7 +1068,7 @@ "h": 8, "w": 16, "x": 0, - "y": 17 + "y": 33 }, "id": 43, "options": { @@ -948,7 +1113,7 @@ "h": 1, "w": 24, "x": 0, - "y": 25 + "y": 41 }, "id": 12, "panels": [], @@ -1015,8 +1180,7 @@ "value": 0.8 } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -1024,7 +1188,7 @@ "h": 8, "w": 16, "x": 0, - "y": 26 + "y": 42 }, "id": 8, "options": { @@ -1091,8 +1255,7 @@ "value": 0.8 } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -1100,7 +1263,7 @@ "h": 8, "w": 8, "x": 16, - "y": 26 + "y": 42 }, "id": 15, "options": { @@ -1116,7 +1279,7 @@ "showThresholdMarkers": true, "sizing": "auto" }, - "pluginVersion": "10.4.0-65875", + "pluginVersion": "10.4.0-66955", "targets": [ { "datasource": { @@ -1181,7 +1344,7 @@ "h": 8, "w": 16, "x": 0, - "y": 34 + "y": 50 }, "id": 2, "libraryPanel": { @@ -1194,7 +1357,7 @@ "h": 8, "w": 8, "x": 16, - "y": 34 + "y": 50 }, "id": 14, "libraryPanel": { @@ -1207,7 +1370,7 @@ "type": "prometheus", "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM}" }, - "description": "The number of unhandled tasks waiting to enter the intake pipeline. The first step if the intake pipeline is the event hasher", + "description": "The number of unhandled tasks waiting to enter the intake pipeline. Events accumulate waiting for intake in the post hash collector", "fieldConfig": { "defaults": { "color": { @@ -1262,16 +1425,15 @@ "value": 9000 } ] - }, - "unitScale": true + } }, "overrides": [] }, "gridPos": { - "h": 8, + "h": 10, "w": 16, "x": 0, - "y": 42 + "y": 58 }, "id": 44, "options": { @@ -1294,7 +1456,7 @@ }, "disableTextWrap": false, "editorMode": "builder", - "expr": "platform_eventHasher_unhandled_task_count{environment=\"$network\", node_id=~\"$NodeID\"}", + "expr": "platform_postHashCollector_unhandled_task_count{environment=\"$network\", node_id=~\"$NodeID\"}", "fullMetaSearch": false, "includeNullMetadata": true, "instant": false, @@ -1304,7 +1466,7 @@ "useBackend": false } ], - "title": "intakeQueue (event hasher)", + "title": "intakeQueue (post hash collector)", "type": "timeseries" }, { @@ -1313,7 +1475,7 @@ "h": 1, "w": 24, "x": 0, - "y": 50 + "y": 68 }, "id": 22, "panels": [], @@ -1379,8 +1541,7 @@ "value": 0.8 } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -1388,7 +1549,7 @@ "h": 8, "w": 16, "x": 0, - "y": 51 + "y": 69 }, "id": 23, "options": { @@ -1451,8 +1612,7 @@ "value": 0.8 } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -1460,7 +1620,7 @@ "h": 8, "w": 8, "x": 16, - "y": 51 + "y": 69 }, "id": 24, "options": { @@ -1478,7 +1638,7 @@ "showThresholdMarkers": true, "sizing": "auto" }, - "pluginVersion": "10.4.0-65875", + "pluginVersion": "10.4.0-66955", "targets": [ { "datasource": { @@ -1593,8 +1753,7 @@ "value": 800 } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -1602,7 +1761,7 @@ "h": 8, "w": 16, "x": 0, - "y": 59 + "y": 77 }, "id": 25, "options": { @@ -1665,8 +1824,7 @@ "value": 800 } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -1674,7 +1832,7 @@ "h": 8, "w": 8, "x": 16, - "y": 59 + "y": 77 }, "id": 26, "options": { @@ -1692,7 +1850,7 @@ "showThresholdMarkers": true, "sizing": "auto" }, - "pluginVersion": "10.4.0-65875", + "pluginVersion": "10.4.0-66955", "targets": [ { "datasource": { @@ -1804,8 +1962,7 @@ "value": 400 } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -1813,7 +1970,7 @@ "h": 8, "w": 16, "x": 0, - "y": 67 + "y": 85 }, "id": 45, "options": { @@ -1855,7 +2012,7 @@ "h": 1, "w": 24, "x": 0, - "y": 75 + "y": 93 }, "id": 27, "panels": [], @@ -1921,8 +2078,7 @@ "value": 0.8 } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -1930,7 +2086,7 @@ "h": 8, "w": 16, "x": 0, - "y": 76 + "y": 94 }, "id": 28, "options": { @@ -1993,8 +2149,7 @@ "value": 0.8 } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -2002,7 +2157,7 @@ "h": 8, "w": 8, "x": 16, - "y": 76 + "y": 94 }, "id": 29, "options": { @@ -2020,7 +2175,7 @@ "showThresholdMarkers": true, "sizing": "auto" }, - "pluginVersion": "10.4.0-65875", + "pluginVersion": "10.4.0-66955", "targets": [ { "datasource": { @@ -2081,7 +2236,7 @@ "type": "prometheus", "uid": "${DS_GRAFANACLOUD-SWIRLDSLABSPREPRODUCTION-PROM}" }, - "description": "Number of tasks waiting to be handled by the PCES writer", + "description": "Number of tasks waiting to be handled by the PCES writier", "fieldConfig": { "defaults": { "color": { @@ -2132,8 +2287,7 @@ "value": 400 } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -2141,7 +2295,7 @@ "h": 8, "w": 16, "x": 0, - "y": 84 + "y": 102 }, "id": 46, "options": { @@ -2183,7 +2337,7 @@ "h": 1, "w": 24, "x": 0, - "y": 92 + "y": 110 }, "id": 19, "panels": [], @@ -2250,8 +2404,7 @@ "value": 0.8 } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -2259,7 +2412,7 @@ "h": 8, "w": 16, "x": 0, - "y": 93 + "y": 111 }, "id": 10, "options": { @@ -2326,8 +2479,7 @@ "value": 0.8 } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -2335,7 +2487,7 @@ "h": 8, "w": 8, "x": 16, - "y": 93 + "y": 111 }, "id": 20, "options": { @@ -2353,7 +2505,7 @@ "showThresholdMarkers": true, "sizing": "auto" }, - "pluginVersion": "10.4.0-65875", + "pluginVersion": "10.4.0-66955", "targets": [ { "datasource": { @@ -2418,7 +2570,7 @@ "h": 8, "w": 16, "x": 0, - "y": 101 + "y": 119 }, "id": 4, "libraryPanel": { @@ -2455,8 +2607,7 @@ "value": 1000 } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -2464,7 +2615,7 @@ "h": 8, "w": 8, "x": 16, - "y": 101 + "y": 119 }, "id": 21, "options": { @@ -2482,7 +2633,7 @@ "showThresholdMarkers": true, "sizing": "auto" }, - "pluginVersion": "10.4.0-65875", + "pluginVersion": "10.4.0-66955", "targets": [ { "datasource": { @@ -2602,8 +2753,7 @@ "value": 0.8 } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -2611,7 +2761,7 @@ "h": 8, "w": 16, "x": 0, - "y": 109 + "y": 127 }, "id": 36, "options": { @@ -2710,8 +2860,7 @@ "value": 0.8 } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -2719,7 +2868,7 @@ "h": 8, "w": 16, "x": 0, - "y": 117 + "y": 135 }, "id": 42, "options": { @@ -2818,8 +2967,7 @@ "value": 0.8 } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -2827,7 +2975,7 @@ "h": 8, "w": 16, "x": 0, - "y": 125 + "y": 143 }, "id": 37, "options": { @@ -2926,8 +3074,7 @@ "value": 0.8 } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -2935,7 +3082,7 @@ "h": 8, "w": 16, "x": 0, - "y": 133 + "y": 151 }, "id": 38, "options": { @@ -3034,8 +3181,7 @@ "value": 0.8 } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -3043,7 +3189,7 @@ "h": 8, "w": 16, "x": 0, - "y": 141 + "y": 159 }, "id": 39, "options": { @@ -3142,8 +3288,7 @@ "value": 0.8 } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -3151,7 +3296,7 @@ "h": 8, "w": 16, "x": 0, - "y": 149 + "y": 167 }, "id": 40, "options": { @@ -3250,8 +3395,7 @@ "value": 0.8 } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -3259,7 +3403,7 @@ "h": 8, "w": 16, "x": 0, - "y": 157 + "y": 175 }, "id": 41, "options": { @@ -3304,7 +3448,7 @@ "h": 1, "w": 24, "x": 0, - "y": 165 + "y": 183 }, "id": 33, "panels": [], @@ -3370,8 +3514,7 @@ "value": 0.8 } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -3379,7 +3522,7 @@ "h": 8, "w": 16, "x": 0, - "y": 166 + "y": 184 }, "id": 34, "options": { @@ -3442,8 +3585,7 @@ "value": 0.8 } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -3451,7 +3593,7 @@ "h": 8, "w": 8, "x": 16, - "y": 166 + "y": 184 }, "id": 35, "options": { @@ -3469,7 +3611,7 @@ "showThresholdMarkers": true, "sizing": "auto" }, - "pluginVersion": "10.4.0-65875", + "pluginVersion": "10.4.0-66955", "targets": [ { "datasource": { @@ -3531,7 +3673,7 @@ "h": 1, "w": 24, "x": 0, - "y": 174 + "y": 192 }, "id": 30, "panels": [], @@ -3597,8 +3739,7 @@ "value": 0.8 } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -3606,7 +3747,7 @@ "h": 8, "w": 16, "x": 0, - "y": 175 + "y": 193 }, "id": 31, "options": { @@ -3669,8 +3810,7 @@ "value": 0.8 } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -3678,7 +3818,7 @@ "h": 8, "w": 8, "x": 16, - "y": 175 + "y": 193 }, "id": 32, "options": { @@ -3696,7 +3836,7 @@ "showThresholdMarkers": true, "sizing": "auto" }, - "pluginVersion": "10.4.0-65875", + "pluginVersion": "10.4.0-66955", "targets": [ { "datasource": { @@ -3753,7 +3893,6 @@ "type": "gauge" } ], - "refresh": "", "schemaVersion": 39, "tags": [ "Platform" @@ -3810,13 +3949,13 @@ ] }, "time": { - "from": "now-3h", - "to": "now" + "from": "2024-02-09T17:50:36.987Z", + "to": "2024-02-11T21:57:23.869Z" }, "timepicker": {}, "timezone": "", "title": "Threads & Queues", "uid": "daf603b7-4578-4641-92b3-aa4f0f146876", - "version": 9, + "version": 10, "weekStart": "" } \ No newline at end of file diff --git a/hedera-node/test-clients/build.gradle.kts b/hedera-node/test-clients/build.gradle.kts index 898e68fb96c3..21ca239a808b 100644 --- a/hedera-node/test-clients/build.gradle.kts +++ b/hedera-node/test-clients/build.gradle.kts @@ -48,6 +48,7 @@ sourceSets { main { resources { srcDir("src/main/resource") } } create("rcdiff") + create("yahcli") } // IntelliJ uses adhoc-created JavaExec tasks when running a 'main()' method. @@ -103,7 +104,7 @@ tasks.register("hapiTestCrypto") { testClassesDirs = sourceSets.main.get().output.classesDirs classpath = sourceSets.main.get().runtimeClasspath - useJUnitPlatform { includeTags("CRYPTO") } + useJUnitPlatform { includeTags("CRYPTO", "RECORD_STREAM_VALIDATION") } // Limit heap and number of processors maxHeapSize = "8g" @@ -118,7 +119,7 @@ tasks.register("hapiTestToken") { testClassesDirs = sourceSets.main.get().output.classesDirs classpath = sourceSets.main.get().runtimeClasspath - useJUnitPlatform { includeTags("TOKEN") } + useJUnitPlatform { includeTags("TOKEN", "RECORD_STREAM_VALIDATION") } // Limit heap and number of processors maxHeapSize = "8g" @@ -133,7 +134,7 @@ tasks.register("hapiTestSmartContract") { testClassesDirs = sourceSets.main.get().output.classesDirs classpath = sourceSets.main.get().runtimeClasspath - useJUnitPlatform { includeTags("SMART_CONTRACT") } + useJUnitPlatform { includeTags("SMART_CONTRACT", "RECORD_STREAM_VALIDATION") } // Limit heap and number of processors maxHeapSize = "8g" @@ -148,7 +149,7 @@ tasks.register("hapiTestTimeConsuming") { testClassesDirs = sourceSets.main.get().output.classesDirs classpath = sourceSets.main.get().runtimeClasspath - useJUnitPlatform { includeTags("TIME_CONSUMING") } + useJUnitPlatform { includeTags("TIME_CONSUMING", "RECORD_STREAM_VALIDATION") } // Limit heap and number of processors maxHeapSize = "8g" @@ -163,7 +164,7 @@ tasks.register("hapiTestRestart") { testClassesDirs = sourceSets.main.get().output.classesDirs classpath = sourceSets.main.get().runtimeClasspath - useJUnitPlatform { includeTags("RESTART") } + useJUnitPlatform { includeTags("RESTART", "RECORD_STREAM_VALIDATION") } // Limit heap and number of processors maxHeapSize = "8g" @@ -177,7 +178,7 @@ tasks.register("hapiTestNDReconnect") { testClassesDirs = sourceSets.main.get().output.classesDirs classpath = sourceSets.main.get().runtimeClasspath - useJUnitPlatform { includeTags("ND_RECONNECT") } + useJUnitPlatform { includeTags("ND_RECONNECT", "RECORD_STREAM_VALIDATION") } // Limit heap and number of processors maxHeapSize = "8g" @@ -221,8 +222,9 @@ tasks.shadowJar { val yahCliJar = tasks.register("yahCliJar") { exclude(listOf("META-INF/*.DSA", "META-INF/*.RSA", "META-INF/*.SF", "META-INF/INDEX.LIST")) - + from(sourceSets["yahcli"].output) archiveClassifier.set("yahcli") + configurations = listOf(project.configurations.getByName("yahcliRuntimeClasspath")) manifest { attributes( @@ -272,7 +274,7 @@ val copyValidation = val cleanValidation = tasks.register("cleanValidation") { - group = "build" + group = "copy" delete(File(project.file("validation-scenarios"), "ValidationScenarios.jar")) } @@ -286,7 +288,7 @@ val copyYahCli = val cleanYahCli = tasks.register("cleanYahCli") { - group = "build" + group = "copy" delete(File(project.file("yahcli"), "yahcli.jar")) } diff --git a/hedera-node/test-clients/rcdiff/check.sh b/hedera-node/test-clients/rcdiff/check.sh index e2badc16bd04..c4cf6ec122b5 100755 --- a/hedera-node/test-clients/rcdiff/check.sh +++ b/hedera-node/test-clients/rcdiff/check.sh @@ -10,4 +10,5 @@ else fi # Change -m value to limit the number of diffs written to file -java -jar rcdiff.jar -e $EXPECTED_LOC -a $ACTUAL_LOC -m 1000 +# Change -l value to diff a length other than 300 secs at a time +java -jar rcdiff.jar -e $EXPECTED_LOC -a $ACTUAL_LOC -m 1000 -l 300 diff --git a/hedera-node/test-clients/record-snapshots/ApproveAllowance.json b/hedera-node/test-clients/record-snapshots/ApproveAllowance.json new file mode 100644 index 000000000000..6742bf5ba6e3 --- /dev/null +++ b/hedera-node/test-clients/record-snapshots/ApproveAllowance.json @@ -0,0 +1 @@ +{"specSnapshots":{"hapiNftGetApproved":{"placeholderNum":1001,"encodedItems":[{"b64Body":"Cg4KCAiysPqsBhA/EgIYAhICGAMY25mKHCICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOWjQKIhIgDnyY+cGdYh3Z3H1W8TqCh5lBaehiroZmgKZM4vp4O9wQgKCUpY0dSgUIgM7aA3AK","b64Record":"CiUIFhIDGOoHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDkUmeeo/PZGgrJKkoYvmg/5mpfJFF6PU8csdAfxsOmrHSuxvCZIxXFMbvHW8YfRkQaDAjusPqsBhCWmpD/ASIOCggIsrD6rAYQPxICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUhsKCwoCGAIQ/7+oypo6CgwKAxjqBxCAwKjKmjo="},{"b64Body":"Cg4KCAizsPqsBhBBEgIYAhICGAMY+5X2FCICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOWjEKIhIgW9uLd5GioVaBGiy40RpYnOiWzQuzu2BixsYZzPM9J8gQgJTr3ANKBQiAztoD","b64Record":"CiUIFhIDGOsHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAUYK/Xz3coA/ncjUDWgCHbUGsBNvAFNfJazL8yaZPv8Ls06S5ubsLAF+qS9ZOiLYwaCwjvsPqsBhDGm60jIg4KCAizsPqsBhBBEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SGQoKCgIYAhD/p9a5BwoLCgMY6wcQgKjWuQc="},{"b64Body":"Cg4KCAizsPqsBhBDEgIYAhICGAMY+5X2FCICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOWjEKIhIg4Qs1htA3/lc1xv9fHxSZw1Lj0b1h0lblffpdUP83U6AQgJTr3ANKBQiAztoD","b64Record":"CiUIFhIDGOwHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAeziV7Og89DHburQfz7a00d2twAkqBDc2qS0Cf+ltEyVNams7Yp0wzmQKS5GUSJkMaDAjvsPqsBhDF0MaIAiIOCggIs7D6rAYQQxICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUhkKCgoCGAIQ/6fWuQcKCwoDGOwHEICo1rkH"},{"b64Body":"Cg4KCAi0sPqsBhBFEgIYAhICGAMY+5X2FCICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOWjEKIhIg9vLIev8cDl0EN1XMWq3ffjsdo9vzv9E920ZbSIBenXIQgJTr3ANKBQiAztoD","b64Record":"CiUIFhIDGO0HKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDs8eOZEAVMNv+SmT4TCb3bBnfPQwhsr1qZEODv5XkyPnNeuhHXVVBmyCKU093QNGcaCwjwsPqsBhD2qeUxIg4KCAi0sPqsBhBFEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SGQoKCgIYAhD/p9a5BwoLCgMY7QcQgKjWuQc="},{"b64Body":"Cg4KCAi0sPqsBhBHEgIYAhICGAMYxcK1+wIiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjuoBegoQbm9uRnVuZ2libGVUb2tlbhIIWUdFSUJTTUMqAxjtBzIiEiBdW/e4L1SF01RJalu9XEJx5u0DIeaIJpsFvSblXVcLAVIiEiBdW/e4L1SF01RJalu9XEJx5u0DIeaIJpsFvSblXVcLAWoMCPD+1LAGEKjZnpUCiAEB","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGO4HEjCU32ZDmG8EuFyd2RXE0VPDPqrE7mAdHU3cNO6UbEnJZrcmNid5vHBpOauptBHxcWsaDAjwsPqsBhD+qLizAiIOCggItLD6rAYQRxICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgByCgoDGO4HEgMY7Qc="},{"b64Body":"Cg4KCAi1sPqsBhBJEgIYAhICGAMY/svNLCICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOigGOARILCPH+1LAGEKbz/2AabQoiEiBTCVRVOZ1W/fdiDbmYeTQfoKKstsn1QHa/W9XzFqQadgojOiECSHcAOI5xucHfEneCtItKbZlvzwwTPA9mMqlFhO5R1/oKIhIgLUNsc+6/NuExm+Sjou9V/1PgXtDSKDEZ9/p0fXJMSY8iDEhlbGxvIFdvcmxkISoAMgA=","b64Record":"CiUIFhoDGO8HKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCZm4aJ1wEYQw7r0NVj7zIQGjgLJE0Gg6qiSbRfDw9kkk7qbJY0crLScT047pNQrwYaDAjxsPqsBhDQm6KRASIOCggItbD6rAYQSRICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgA="},{"b64Body":"Cg4KCAi1sPqsBhBNEgIYAhICGAMYjJ2OPiICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOmgGIIAoDGO8HIoAgNjA4MDYwNDA1MjM0ODAxNTYxMDAxMDU3NjAwMDgwZmQ1YjUwNjEwZTYyODA2MTAwMjA2MDAwMzk2MDAwZjNmZTYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYwMDQzNjEwNjEwMDYyNTc2MDAwMzU2MGUwMWM4MDYzMWFlMWU3YmUxNDYxMDA2NzU3ODA2MzJlNTVlMWQ2MTQ2MTAwOTc1NzgwNjM1YzQwZjU1NzE0NjEwMGM3NTc4MDYzOWNiYTNjZGMxNDYxMDBmNzU3ODA2M2JmYWQzZGIwMTQ2MTAxMjc1NzgwNjNkODk1ODNhZDE0NjEwMTU3NTc1YjYwMDA4MGZkNWI2MTAwODE2MDA0ODAzNjAzODEwMTkwNjEwMDdjOTE5MDYxMDkxYTU2NWI2MTAxODc1NjViNjA0MDUxNjEwMDhlOTE5MDYxMDk4ODU2NWI2MDQwNTE4MDkxMDM5MGYzNWI2MTAwYjE2MDA0ODAzNjAzODEwMTkwNjEwMGFjOTE5MDYxMDlkOTU2NWI2MTAxYTU1NjViNjA0MDUxNjEwMGJlOTE5MDYxMGEyODU2NWI2MDQwNTE4MDkxMDM5MGYzNWI2MTAwZTE2MDA0ODAzNjAzODEwMTkwNjEwMGRjOTE5MDYxMGE2ZjU2NWI2MTAxYzE1NjViNjA0MDUxNjEwMGVlOTE5MDYxMDk4ODU2NWI2MDQwNTE4MDkxMDM5MGYzNWI2MTAxMTE2MDA0ODAzNjAzODEwMTkwNjEwMTBjOTE5MDYxMDkxYTU2NWI2MTAxZGQ1NjViNjA0MDUxNjEwMTFlOTE5MDYxMGFkMTU2NWI2MDQwNTE4MDkxMDM5MGYzNWI2MTAxNDE2MDA0ODAzNjAzODEwMTkwNjEwMTNjOTE5MDYxMGFlYzU2NWI2MTAxZmI1NjViNjA0MDUxNjEwMTRlOTE5MDYxMDk4ODU2NWI2MDQwNTE4MDkxMDM5MGYzNWI2MTAxNzE2MDA0ODAzNjAzODEwMTkwNjEwMTZjOTE5MDYxMGFlYzU2NWI2MTAyMTc1NjViNjA0MDUxNjEwMTdlOTE5MDYxMDk4ODU2NWI2MDQwNTE4MDkxMDM5MGYzNWI2MDAwODA2MTAxOTU4NTg1ODU2MTAzMGM1NjViODA5MzUwODE5MjUwNTA1MDUwOTM5MjUwNTA1MDU2NWI2MDAwODA2MTAxYjI4NDg0NjEwNDM0NTY1YjgwOTM1MDgxOTI1MDUwNTA1MDkyOTE1MDUwNTY1YjYwMDA2MDE2NjAwMzBiNjEwMWQzODU4NTg1NjEwNTU5NTY1YjE0OTA1MDkzOTI1MDUwNTA1NjViNjAwMDgwNjEwMWViODU4NTg1NjEwNjc0NTY1YjgwOTM1MDgxOTI1MDUwNTA1MDkzOTI1MDUwNTA1NjViNjAwMDYwMTY2MDAzMGI2MTAyMGQ4NTg1ODU2MTA3OWM1NjViMTQ5MDUwOTM5MjUwNTA1MDU2NWI2MDAwNjA2MDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjM3MzM2YWFmMDYwZTAxYjg2ODY4NjYwNDA1MTYwMjQwMTYxMDI1MTkzOTI5MTkwNjEwYjNmNTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMDJiYjkxOTA2MTBiZjA1NjViNjAwMDYwNDA1MTgwODMwMzgxODU1YWY0OTE1MDUwM2Q4MDYwMDA4MTE0NjEwMmY2NTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjEwMmZiNTY1YjYwNjA5MTUwNWI1MDgwOTI1MDgxOTM1MDUwNTA1MDkzOTI1MDUwNTA1NjViNjAwMDgwNjAwMDgwNjEwMTY3NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2M2Y0OWY0MGRiNjBlMDFiODg4ODg4NjA0MDUxNjAyNDAxNjEwMzQ4OTM5MjkxOTA2MTBjMDc1NjViNjA0MDUxNjAyMDgxODMwMzAzODE1MjkwNjA0MDUyOTA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjEwM2IyOTE5MDYxMGJmMDU2NWI2MDAwNjA0MDUxODA4MzAzODE2MDAwODY1YWYxOTE1MDUwM2Q4MDYwMDA4MTE0NjEwM2VmNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjEwM2Y0NTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTA0MDc1NzYwMTU2MDAwNjEwNDFjNTY1YjgwODA2MDIwMDE5MDUxODEwMTkwNjEwNDFiOTE5MDYxMGM4YzU2NWI1YjgxNjAwMzBiOTE1MDgwOTQ1MDgxOTU1MDUwNTA1MDUwOTM1MDkzOTE1MDUwNTY1YjYwMDA4MDYwMDA4MDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjMwOThmMjM2NjYwZTAxYjg3ODc2MDQwNTE2MDI0MDE2MTA0NmU5MjkxOTA2MTBjY2M1NjViNjA0MDUxNjAyMDgxODMwMzAzODE1MjkwNjA0MDUyOTA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjEwNGQ4OTE5MDYxMGJmMDU2NWI2MDAwNjA0MDUxODA4MzAzODE2MDAwODY1YWYxOTE1MDUwM2Q4MDYwMDA4MTE0NjEwNTE1NTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjEwNTFhNTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTA1MmQ1NzYwMTU2MDAwNjEwNTQyNTY1YjgwODA2MDIwMDE5MDUxODEwMTkwNjEwNTQxOTE5MDYxMGQzMzU2NWI1YjgxNjAwMzBiOTE1MDgwOTQ1MDgxOTU1MDUwNTA1MDUwOTI1MDkyOTA1MDU2NWI2MDAwODA2MDAwNjEwMTY3NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MzM2NzYwNWNhNjBlMDFiODc4Nzg3NjA0MDUxNjAyNDAxNjEwNTk0OTM5MjkxOTA2MTBkNzM1NjViNjA0MDUxNjAyMDgxODMwMzAzODE1MjkwNjA0MDUyOTA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjEwNWZlOTE5MDYxMGJmMDU2NWI2MDAwNjA0MDUxODA4MzAzODE2MDAwODY1YWYxOTE1MDUwM2Q4MDYwMDA4MTE0NjEwNjNiNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjEwNjQwNTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTA2NTE1NzYwMTU2MTA2NjY1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTA2NjU5MTkwNjEwZGFhNTY1YjViNjAwMzBiOTI1MDUwNTA5MzkyNTA1MDUwNTY1YjYwMDA4MDYwMDA4MDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjM5MjdkYTEwNTYwZTAxYjg4ODg4ODYwNDA1MTYwMjQwMTYxMDZiMDkzOTI5MTkwNjEwYzA3NTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMDcxYTkxOTA2MTBiZjA1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMDc1NzU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMDc1YzU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEwNzZmNTc2MDE1NjAwMDYxMDc4NDU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMDc4MzkxOTA2MTBkZWM1NjViNWI4MTYwMDMwYjkxNTA4MDk0NTA4MTk1NTA1MDUwNTA1MDkzNTA5MzkxNTA1MDU2NWI2MDAwODA2MDAwNjEwMTY3NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2M2UxZjIxYzY3NjBlMDFiODc4Nzg3NjA0MDUxNjAyNDAxNjEwN2Q3OTM5MjkxOTA2MTBiM2Y1NjViNjA0MDUxNjAyMDgxODMwMw==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw/QSjhDpZU+r7s2dKrT9qhJ4eERBIOycEn/NbDjGSgud5b/zF3b91lZmSRAihZOyJGgwI8bD6rAYQwtKOrwMiDgoICLWw+qwGEE0SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg4KCAi2sPqsBhBTEgIYAhICGAMY79a9OyICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOggGMGhIDGO8HIoQaMDM4MTUyOTA2MDQwNTI5MDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTA4NDE5MTkwNjEwYmYwNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NjVhZjE5MTUwNTAzZDgwNjAwMDgxMTQ2MTA4N2U1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTA4ODM1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA4MTYxMDg5NDU3NjAxNTYxMDhhOTU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMDhhODkxOTA2MTBkYWE1NjViNWI2MDAzMGI5MjUwNTA1MDkzOTI1MDUwNTA1NjViNjAwMDgwZmQ1YjYwMDA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MjE2OTA1MDkxOTA1MDU2NWI2MDAwNjEwOGU3ODI2MTA4YmM1NjViOTA1MDkxOTA1MDU2NWI2MTA4Zjc4MTYxMDhkYzU2NWI4MTE0NjEwOTAyNTc2MDAwODBmZDViNTA1NjViNjAwMDgxMzU5MDUwNjEwOTE0ODE2MTA4ZWU1NjViOTI5MTUwNTA1NjViNjAwMDgwNjAwMDYwNjA4NDg2MDMxMjE1NjEwOTMzNTc2MTA5MzI2MTA4Yjc1NjViNWI2MDAwNjEwOTQxODY4Mjg3MDE2MTA5MDU1NjViOTM1MDUwNjAyMDYxMDk1Mjg2ODI4NzAxNjEwOTA1NTY1YjkyNTA1MDYwNDA2MTA5NjM4NjgyODcwMTYxMDkwNTU2NWI5MTUwNTA5MjUwOTI1MDkyNTY1YjYwMDA4MTE1MTU5MDUwOTE5MDUwNTY1YjYxMDk4MjgxNjEwOTZkNTY1YjgyNTI1MDUwNTY1YjYwMDA2MDIwODIwMTkwNTA2MTA5OWQ2MDAwODMwMTg0NjEwOTc5NTY1YjkyOTE1MDUwNTY1YjYwMDA4MTkwNTA5MTkwNTA1NjViNjEwOWI2ODE2MTA5YTM1NjViODExNDYxMDljMTU3NjAwMDgwZmQ1YjUwNTY1YjYwMDA4MTM1OTA1MDYxMDlkMzgxNjEwOWFkNTY1YjkyOTE1MDUwNTY1YjYwMDA4MDYwNDA4Mzg1MDMxMjE1NjEwOWYwNTc2MTA5ZWY2MTA4Yjc1NjViNWI2MDAwNjEwOWZlODU4Mjg2MDE2MTA5MDU1NjViOTI1MDUwNjAyMDYxMGEwZjg1ODI4NjAxNjEwOWM0NTY1YjkxNTA1MDkyNTA5MjkwNTA1NjViNjEwYTIyODE2MTA4ZGM1NjViODI1MjUwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDYxMGEzZDYwMDA4MzAxODQ2MTBhMTk1NjViOTI5MTUwNTA1NjViNjEwYTRjODE2MTA5NmQ1NjViODExNDYxMGE1NzU3NjAwMDgwZmQ1YjUwNTY1YjYwMDA4MTM1OTA1MDYxMGE2OTgxNjEwYTQzNTY1YjkyOTE1MDUwNTY1YjYwMDA4MDYwMDA2MDYwODQ4NjAzMTIxNTYxMGE4ODU3NjEwYTg3NjEwOGI3NTY1YjViNjAwMDYxMGE5Njg2ODI4NzAxNjEwOTA1NTY1YjkzNTA1MDYwMjA2MTBhYTc4NjgyODcwMTYxMDkwNTU2NWI5MjUwNTA2MDQwNjEwYWI4ODY4Mjg3MDE2MTBhNWE1NjViOTE1MDUwOTI1MDkyNTA5MjU2NWI2MTBhY2I4MTYxMDlhMzU2NWI4MjUyNTA1MDU2NWI2MDAwNjAyMDgyMDE5MDUwNjEwYWU2NjAwMDgzMDE4NDYxMGFjMjU2NWI5MjkxNTA1MDU2NWI2MDAwODA2MDAwNjA2MDg0ODYwMzEyMTU2MTBiMDU1NzYxMGIwNDYxMDhiNzU2NWI1YjYwMDA2MTBiMTM4NjgyODcwMTYxMDkwNTU2NWI5MzUwNTA2MDIwNjEwYjI0ODY4Mjg3MDE2MTA5MDU1NjViOTI1MDUwNjA0MDYxMGIzNTg2ODI4NzAxNjEwOWM0NTY1YjkxNTA1MDkyNTA5MjUwOTI1NjViNjAwMDYwNjA4MjAxOTA1MDYxMGI1NDYwMDA4MzAxODY2MTBhMTk1NjViNjEwYjYxNjAyMDgzMDE4NTYxMGExOTU2NWI2MTBiNmU2MDQwODMwMTg0NjEwYWMyNTY1Yjk0OTM1MDUwNTA1MDU2NWI2MDAwODE1MTkwNTA5MTkwNTA1NjViNjAwMDgxOTA1MDkyOTE1MDUwNTY1YjYwMDA1YjgzODExMDE1NjEwYmFhNTc4MDgyMDE1MTgxODQwMTUyNjAyMDgxMDE5MDUwNjEwYjhmNTY1YjgzODExMTE1NjEwYmI5NTc2MDAwODQ4NDAxNTI1YjUwNTA1MDUwNTY1YjYwMDA2MTBiY2E4MjYxMGI3NjU2NWI2MTBiZDQ4MTg1NjEwYjgxNTY1YjkzNTA2MTBiZTQ4MTg1NjAyMDg2MDE2MTBiOGM1NjViODA4NDAxOTE1MDUwOTI5MTUwNTA1NjViNjAwMDYxMGJmYzgyODQ2MTBiYmY1NjViOTE1MDgxOTA1MDkyOTE1MDUwNTY1YjYwMDA2MDYwODIwMTkwNTA2MTBjMWM2MDAwODMwMTg2NjEwYTE5NTY1YjYxMGMyOTYwMjA4MzAxODU2MTBhMTk1NjViNjEwYzM2NjA0MDgzMDE4NDYxMGExOTU2NWI5NDkzNTA1MDUwNTA1NjViNjAwMDgxNjAwMzBiOTA1MDkxOTA1MDU2NWI2MTBjNTQ4MTYxMGMzZTU2NWI4MTE0NjEwYzVmNTc2MDAwODBmZDViNTA1NjViNjAwMDgxNTE5MDUwNjEwYzcxODE2MTBjNGI1NjViOTI5MTUwNTA1NjViNjAwMDgxNTE5MDUwNjEwYzg2ODE2MTBhNDM1NjViOTI5MTUwNTA1NjViNjAwMDgwNjA0MDgzODUwMzEyMTU2MTBjYTM1NzYxMGNhMjYxMDhiNzU2NWI1YjYwMDA2MTBjYjE4NTgyODYwMTYxMGM2MjU2NWI5MjUwNTA2MDIwNjEwY2MyODU4Mjg2MDE2MTBjNzc1NjViOTE1MDUwOTI1MDkyOTA1MDU2NWI2MDAwNjA0MDgyMDE5MDUwNjEwY2UxNjAwMDgzMDE4NTYxMGExOTU2NWI2MTBjZWU2MDIwODMwMTg0NjEwYWMyNTY1YjkzOTI1MDUwNTA1NjViNjAwMDYxMGQwMDgyNjEwOGJjNTY1YjkwNTA5MTkwNTA1NjViNjEwZDEwODE2MTBjZjU1NjViODExNDYxMGQxYjU3NjAwMDgwZmQ1YjUwNTY1YjYwMDA4MTUxOTA1MDYxMGQyZDgxNjEwZDA3NTY1YjkyOTE1MDUwNTY1YjYwMDA4MDYwNDA4Mzg1MDMxMjE1NjEwZDRhNTc2MTBkNDk2MTA4Yjc1NjViNWI2MDAwNjEwZDU4ODU4Mjg2MDE2MTBjNjI1NjViOTI1MDUwNjAyMDYxMGQ2OTg1ODI4NjAxNjEwZDFlNTY1YjkxNTA1MDkyNTA5MjkwNTA1NjViNjAwMDYwNjA4MjAxOTA1MDYxMGQ4ODYwMDA4MzAxODY2MTBhMTk1NjViNjEwZDk1NjAyMDgzMDE4NTYxMGExOTU2NWI2MTBkYTI2MDQwODMwMTg0NjEwOTc5NTY1Yjk0OTM1MDUwNTA1MDU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTBkYzA1NzYxMGRiZjYxMDhiNzU2NWI1YjYwMDA2MTBkY2U4NDgyODUwMTYxMGM2MjU2NWI5MTUwNTA5MjkxNTA1MDU2NWI2MDAwODE1MTkwNTA2MTBkZTY4MTYxMDlhZDU2NWI5MjkxNTA1MDU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMGUwMzU3NjEwZTAyNjEwOGI3NTY1YjViNjAwMDYxMGUxMTg1ODI4NjAxNjEwYzYyNTY1YjkyNTA1MDYwMjA2MTBlMjI4NTgyODYwMTYxMGRkNzU2NWI5MTUwNTA5MjUwOTI5MDUwNTZmZWEyNjQ2OTcwNjY3MzU4MjIxMjIwMGJlMGNmMTQ4MDNkZGUwNjJiNGRmZWEyN2EwMTQ3Y2JlYzRmMTI5ODY4ZGU2NzE1ZTM0NGNhNTMxZDI0Y2MxOTY0NzM2ZjZjNjM0MzAwMDgwZTAwMzM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw5kKEH9aILr0TPWcBZcbPEMtMrUZNX6fc9K4rdUDmcHlx3mbnwl4gP5Cjei7Okp0+GgwI8rD6rAYQ2f+i4gEiDgoICLaw+qwGEFMSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg4KCAi2sPqsBhBVEgIYAhICGAMYlvuunQIiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjkJFCgMY7wcaIhIgOjnQEUvTkMLARj8YeZR5eIEKliprmJPXmW7Cmy9RTsggkKEPQgUIgM7aA1IAWgBqC2NlbGxhciBkb29y","b64Record":"CiUIFiIDGPAHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAfwGreAogowZIfASXH9BU36xAZrgvpr/b3OO5+HKyO/6jzA9jtIG+GiDqUZjnMmA8aCwjzsPqsBhCPse0GIg4KCAi2sPqsBhBVEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wwNniBkKXHwoDGPAHEuIcYIBgQFI0gBVhABBXYACA/VtQYAQ2EGEAYldgADVg4ByAYxrh574UYQBnV4BjLlXh1hRhAJdXgGNcQPVXFGEAx1eAY5y6PNwUYQD3V4Bjv609sBRhASdXgGPYlYOtFGEBV1dbYACA/VthAIFgBIA2A4EBkGEAfJGQYQkaVlthAYdWW2BAUWEAjpGQYQmIVltgQFGAkQOQ81thALFgBIA2A4EBkGEArJGQYQnZVlthAaVWW2BAUWEAvpGQYQooVltgQFGAkQOQ81thAOFgBIA2A4EBkGEA3JGQYQpvVlthAcFWW2BAUWEA7pGQYQmIVltgQFGAkQOQ81thARFgBIA2A4EBkGEBDJGQYQkaVlthAd1WW2BAUWEBHpGQYQrRVltgQFGAkQOQ81thAUFgBIA2A4EBkGEBPJGQYQrsVlthAftWW2BAUWEBTpGQYQmIVltgQFGAkQOQ81thAXFgBIA2A4EBkGEBbJGQYQrsVlthAhdWW2BAUWEBfpGQYQmIVltgQFGAkQOQ81tgAIBhAZWFhYVhAwxWW4CTUIGSUFBQUJOSUFBQVltgAIBhAbKEhGEENFZbgJNQgZJQUFBQkpFQUFZbYABgFmADC2EB04WFhWEFWVZbFJBQk5JQUFBWW2AAgGEB64WFhWEGdFZbgJNQgZJQUFBQk5JQUFBWW2AAYBZgAwthAg2FhYVhB5xWWxSQUJOSUFBQVltgAGBgYQFnc///////////////////////////FmNzNqrwYOAbhoaGYEBRYCQBYQJRk5KRkGELP1ZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQK7kZBhC/BWW2AAYEBRgIMDgYVa9JFQUD2AYACBFGEC9ldgQFGRUGAfGWA/PQEWggFgQFI9glI9YABgIIQBPmEC+1ZbYGCRUFtQgJJQgZNQUFBQk5JQUFBWW2AAgGAAgGEBZ3P//////////////////////////xZj9J9A22DgG4iIiGBAUWAkAWEDSJOSkZBhDAdWW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEDspGQYQvwVltgAGBAUYCDA4FgAIZa8ZFQUD2AYACBFGED71dgQFGRUGAfGWA/PQEWggFgQFI9glI9YABgIIQBPmED9FZbYGCRUFtQkVCRUIFhBAdXYBVgAGEEHFZbgIBgIAGQUYEBkGEEG5GQYQyMVltbgWADC5FQgJRQgZVQUFBQUJNQk5FQUFZbYACAYACAYQFnc///////////////////////////FmMJjyNmYOAbh4dgQFFgJAFhBG6SkZBhDMxWW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEE2JGQYQvwVltgAGBAUYCDA4FgAIZa8ZFQUD2AYACBFGEFFVdgQFGRUGAfGWA/PQEWggFgQFI9glI9YABgIIQBPmEFGlZbYGCRUFtQkVCRUIFhBS1XYBVgAGEFQlZbgIBgIAGQUYEBkGEFQZGQYQ0zVltbgWADC5FQgJRQgZVQUFBQUJJQkpBQVltgAIBgAGEBZ3P//////////////////////////xZjNnYFymDgG4eHh2BAUWAkAWEFlJOSkZBhDXNWW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEF/pGQYQvwVltgAGBAUYCDA4FgAIZa8ZFQUD2AYACBFGEGO1dgQFGRUGAfGWA/PQEWggFgQFI9glI9YABgIIQBPmEGQFZbYGCRUFtQkVCRUIFhBlFXYBVhBmZWW4CAYCABkFGBAZBhBmWRkGENqlZbW2ADC5JQUFCTklBQUFZbYACAYACAYQFnc///////////////////////////FmOSfaEFYOAbiIiIYEBRYCQBYQawk5KRkGEMB1ZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQcakZBhC/BWW2AAYEBRgIMDgWAAhlrxkVBQPYBgAIEUYQdXV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YQdcVltgYJFQW1CRUJFQgWEHb1dgFWAAYQeEVluAgGAgAZBRgQGQYQeDkZBhDexWW1uBYAMLkVCAlFCBlVBQUFBQk1CTkVBQVltgAIBgAGEBZ3P//////////////////////////xZj4fIcZ2DgG4eHh2BAUWAkAWEH15OSkZBhCz9WW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEIQZGQYQvwVltgAGBAUYCDA4FgAIZa8ZFQUD2AYACBFGEIfldgQFGRUGAfGWA/PQEWggFgQFI9glI9YABgIIQBPmEIg1ZbYGCRUFtQkVCRUIFhCJRXYBVhCKlWW4CAYCABkFGBAZBhCKiRkGENqlZbW2ADC5JQUFCTklBQUFZbYACA/VtgAHP//////////////////////////4IWkFCRkFBWW2AAYQjngmEIvFZbkFCRkFBWW2EI94FhCNxWW4EUYQkCV2AAgP1bUFZbYACBNZBQYQkUgWEI7lZbkpFQUFZbYACAYABgYISGAxIVYQkzV2EJMmEIt1ZbW2AAYQlBhoKHAWEJBVZbk1BQYCBhCVKGgocBYQkFVluSUFBgQGEJY4aChwFhCQVWW5FQUJJQklCSVltgAIEVFZBQkZBQVlthCYKBYQltVluCUlBQVltgAGAgggGQUGEJnWAAgwGEYQl5VluSkVBQVltgAIGQUJGQUFZbYQm2gWEJo1ZbgRRhCcFXYACA/VtQVltgAIE1kFBhCdOBYQmtVluSkVBQVltgAIBgQIOFAxIVYQnwV2EJ72EIt1ZbW2AAYQn+hYKGAWEJBVZbklBQYCBhCg+FgoYBYQnEVluRUFCSUJKQUFZbYQoigWEI3FZbglJQUFZbYABgIIIBkFBhCj1gAIMBhGEKGVZbkpFQUFZbYQpMgWEJbVZbgRRhCldXYACA/VtQVltgAIE1kFBhCmmBYQpDVluSkVBQVltgAIBgAGBghIYDEhVhCohXYQqHYQi3VltbYABhCpaGgocBYQkFVluTUFBgIGEKp4aChwFhCQVWW5JQUGBAYQq4hoKHAWEKWlZbkVBQklCSUJJWW2EKy4FhCaNWW4JSUFBWW2AAYCCCAZBQYQrmYACDAYRhCsJWW5KRUFBWW2AAgGAAYGCEhgMSFWELBVdhCwRhCLdWW1tgAGELE4aChwFhCQVWW5NQUGAgYQskhoKHAWEJBVZbklBQYEBhCzWGgocBYQnEVluRUFCSUJJQklZbYABgYIIBkFBhC1RgAIMBhmEKGVZbYQthYCCDAYVhChlWW2ELbmBAgwGEYQrCVluUk1BQUFBWW2AAgVGQUJGQUFZbYACBkFCSkVBQVltgAFuDgRAVYQuqV4CCAVGBhAFSYCCBAZBQYQuPVluDgREVYQu5V2AAhIQBUltQUFBQVltgAGELyoJhC3ZWW2EL1IGFYQuBVluTUGEL5IGFYCCGAWELjFZbgIQBkVBQkpFQUFZbYABhC/yChGELv1ZbkVCBkFCSkVBQVltgAGBgggGQUGEMHGAAgwGGYQoZVlthDClgIIMBhWEKGVZbYQw2YECDAYRhChlWW5STUFBQUFZbYACBYAMLkFCRkFBWW2EMVIFhDD5WW4EUYQxfV2AAgP1bUFZbYACBUZBQYQxxgWEMS1ZbkpFQUFZbYACBUZBQYQyGgWEKQ1ZbkpFQUFZbYACAYECDhQMSFWEMo1dhDKJhCLdWW1tgAGEMsYWChgFhDGJWW5JQUGAgYQzChYKGAWEMd1ZbkVBQklCSkFBWW2AAYECCAZBQYQzhYACDAYVhChlWW2EM7mAggwGEYQrCVluTklBQUFZbYABhDQCCYQi8VluQUJGQUFZbYQ0QgWEM9VZbgRRhDRtXYACA/VtQVltgAIFRkFBhDS2BYQ0HVluSkVBQVltgAIBgQIOFAxIVYQ1KV2ENSWEIt1ZbW2AAYQ1YhYKGAWEMYlZbklBQYCBhDWmFgoYBYQ0eVluRUFCSUJKQUFZbYABgYIIBkFBhDYhgAIMBhmEKGVZbYQ2VYCCDAYVhChlWW2ENomBAgwGEYQl5VluUk1BQUFBWW2AAYCCChAMSFWENwFdhDb9hCLdWW1tgAGENzoSChQFhDGJWW5FQUJKRUFBWW2AAgVGQUGEN5oFhCa1WW5KRUFBWW2AAgGBAg4UDEhVhDgNXYQ4CYQi3VltbYABhDhGFgoYBYQxiVluSUFBgIGEOIoWChgFhDddWW5FQUJJQkpBQVv6iZGlwZnNYIhIgC+DPFIA93gYrTf6iegFHy+xPEpho3mcV40TKUx0kzBlkc29sY0MACA4AMyKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAowJoMOgMY8AdKFgoUAAAAAAAAAAAAAAAAAAAAAAAAA/ByBwoDGPAHEAFSFgoJCgIYAhD/ssUNCgkKAhhiEICzxQ0="},{"b64Body":"Cg4KCAi3sPqsBhBbEgIYAhICGAMY4LaLICICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOwgIKCgMY6gcSAxjuBw==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwdOhaQkdCbjXIIetuK7WUR4Jc8sLfaMxVa9g7QCVV1skeLKvOqTqvX1zesP2d7wTNGgwI87D6rAYQgb61jQIiDgoICLew+qwGEFsSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg4KCAi4sPqsBhBhEgIYAhICGAMY0+2XCCICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOqgIICgMY7gcaAWE=","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1gBcgEBEjDK7jbOGks6QBpQD/qC+DqHSVKXdzqyvVX9eqdIzzsLN06+Djw4Pz8ae8z7TkPaLVYaCwj0sPqsBhCe+9pOIg4KCAi4sPqsBhBhEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAFoSCgMY7gcaCwoCGAASAxjtBxgB"},{"b64Body":"Cg4KCAi4sPqsBhBlEgIYAhICGAMYjcY8IgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5yFRITCgMY7gcaDAoDGO0HEgMY6gcYAQ==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw5BOd3DHkuV4BGftamms8xi7Ds4Jr0CQVy3dVLPUj1FKQ9zezhhio/FyE11esHpayGgwI9LD6rAYQxuP5zwIiDgoICLiw+qwGEGUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWhMKAxjuBxoMCgMY7QcSAxjqBxgB"},{"b64Body":"Cg4KCAi5sPqsBhBmEgIYAhICGAMYgMLXLyICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOggMWEhQKAxjuBxIDGOoHGgMY6wciAQEqAA==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwwtHvj/g4IdJF1UGzbs/jQtoqMFlNbZf1k9VLclvO7eeXkXCmCt+xlfvDWl7/Rqd/GgsI9bD6rAYQp8/ldCIOCggIubD6rAYQZhICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgA="},{"b64Body":"Cg8KCAi5sPqsBhBoEgMY6gcSAhgDGOCssQMiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjpPCgMY8AcQoI0GIkQuVeHWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQ==","b64Record":"CiUIFiIDGPAHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCnaBIvacU1D190736vTb5IOuNngngiwn/eW9wrd88BhtImV6nXeMpTPEaVFP4JVucaDAj1sPqsBhD7i4f2AiIPCggIubD6rAYQaBIDGOoHKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCA19oCOq4CCgMY8AcSIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPrIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACiA8QRSFwoJCgIYYhCArrUFCgoKAxjqBxD/rbUF"},{"b64Body":"ChEKCAi5sPqsBhBoEgMY6gcgATpNCgMY5wIQASJECY8jZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE=","b64Record":"CgIIFhIwXLqWndP+iJyDKNtYYC5SVQfffP749fA5fYrMquiREdq6NmsZZb5zLto8Wtc5m8moGgwI9bD6rAYQ/IuH9gIiEQoICLmw+qwGEGgSAxjqByABOk4KAxjnAhJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6yhkagMY8AdSAHoMCPWw+qwGEPuLh/YC"}]},"hapiNftIsApprovedForAll":{"placeholderNum":1009,"encodedItems":[{"b64Body":"Cg8KCQi+sPqsBhCAARICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloyCiISIKk4Ggmx5649JQhmWuBWUaSxzYYwKwSwrQVuvqO7Kec1EICglKWNHUoFCIDO2gM=","b64Record":"CiUIFhIDGPIHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCiwyMNRvwrwt931ztKGwNrEwwAG2x5YwFIzQXYg99dMNQe7VinmkKVxv2StQdVwnEaDAj6sPqsBhCTjfrUAiIPCgkIvrD6rAYQgAESAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIbCgsKAhgCEP+/qMqaOgoMCgMY8gcQgMCoypo6"},{"b64Body":"Cg8KCQi/sPqsBhCCARICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloyCiISID2I/19zWTpJ7dSiJF2VD90ahvZIQqOxapAK9eUUNh57EICglKWNHUoFCIDO2gM=","b64Record":"CiUIFhIDGPMHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBLsLI3g1fk2s3aWyuVy8nNefMfdXlaN6FgNb1E5ku0EXBRWAcVstqbGyEOLyND2hMaCwj7sPqsBhCX+aZ5Ig8KCQi/sPqsBhCCARICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUhsKCwoCGAIQ/7+oypo6CgwKAxjzBxCAwKjKmjo="},{"b64Body":"Cg8KCQi/sPqsBhCEARICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloyCiISIMEX/CDl7395qiHFiPU7uvKZVoJKLsAZ7Mad6z2uW57yEICglKWNHUoFCIDO2gM=","b64Record":"CiUIFhIDGPQHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCUpxDCiQhRQHCkd/wDtqdF1bnv/Nap5rZOB+rjIr/ZTPjgjiZXHCjJV1oaYCjFBvwaDAj7sPqsBhCBpJreAiIPCgkIv7D6rAYQhAESAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIbCgsKAhgCEP+/qMqaOgoMCgMY9AcQgMCoypo6"},{"b64Body":"Cg8KCQjAsPqsBhCGARICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIHlXemC3YOFTq9pGzb/ofmn+jb6cnYaLKR99UpXeaq/5EICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGPUHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCwbeBUhZDlI/LfNZSUqghQ/kuIZybGchvUS9ZwZQn/Axb2LSj1AsIAsQEYaOwx7R4aDAj8sPqsBhDQm4KDASIPCgkIwLD6rAYQhgESAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxj1BxCAqNa5Bw=="},{"b64Body":"Cg8KCQjAsPqsBhCIARICGAISAhgDGMXCtfsCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAXoKEG5vbkZ1bmdpYmxlVG9rZW4SCFRJQ1lHVkxKKgMY9QcyIhIgSJewCUklSCqBYPydOdjz+otA1XqVtEbPlVSzx4V8MXRSIhIgSJewCUklSCqBYPydOdjz+otA1XqVtEbPlVSzx4V8MXRqDAj8/tSwBhDd26XmAogBAQ==","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGPYHEjDAHDabyBEkk0nn4awH4zjpUQs4gH6r8xc6VaHR+W9o/kybuW5K1bLlI4tjeoRHBjoaDAj8sPqsBhCDpaSEAyIPCgkIwLD6rAYQiAESAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAcgoKAxj2BxIDGPUH"},{"b64Body":"Cg8KCQjBsPqsBhCOARICGAISAhgDGP2NkRAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjqoCCwoDGPYHGgFBGgFC","b64Record":"CiYIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1gCcgIBAhIw74h8NGWtW2UQxE7d7tqysdT5PWjIu7G2SJDvzdgAoNoHKH69NO4Dl5wyUiJoDYPCGgwI/bD6rAYQ9c6hjAEiDwoJCMGw+qwGEI4BEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAFofCgMY9gcaCwoCGAASAxj1BxgBGgsKAhgAEgMY9QcYAg=="},{"b64Body":"Cg8KCQjBsPqsBhCSARICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAj9/tSwBhD8+pj7AhptCiISINDhVT/PZErySrqzEI1ZptXqxiMj5LB3K9045Hn8h6BUCiM6IQNdlCZbRDiZKKXanV3KZJjOCB33IyZREpZUdcFtxA2AxAoiEiCBXr3NGnCWg0Y6dOohpG3q9M86vqUG28tTiqPwVuW2HiIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGPcHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDV38lZkSoAgD9S0O6vCeC+pQdJPIUw4MMeQkgI0u5y/13E7imPGenRTfcHkIf1wVoaDAj9sPqsBhCs1oWOAyIPCgkIwbD6rAYQkgESAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjCsPqsBhCWARICGAISAhgDGIudjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxj3ByKAIDYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMGU2MjgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDA2MjU3NjAwMDM1NjBlMDFjODA2MzFhZTFlN2JlMTQ2MTAwNjc1NzgwNjMyZTU1ZTFkNjE0NjEwMDk3NTc4MDYzNWM0MGY1NTcxNDYxMDBjNzU3ODA2MzljYmEzY2RjMTQ2MTAwZjc1NzgwNjNiZmFkM2RiMDE0NjEwMTI3NTc4MDYzZDg5NTgzYWQxNDYxMDE1NzU3NWI2MDAwODBmZDViNjEwMDgxNjAwNDgwMzYwMzgxMDE5MDYxMDA3YzkxOTA2MTA5MWE1NjViNjEwMTg3NTY1YjYwNDA1MTYxMDA4ZTkxOTA2MTA5ODg1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMGIxNjAwNDgwMzYwMzgxMDE5MDYxMDBhYzkxOTA2MTA5ZDk1NjViNjEwMWE1NTY1YjYwNDA1MTYxMDBiZTkxOTA2MTBhMjg1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMGUxNjAwNDgwMzYwMzgxMDE5MDYxMDBkYzkxOTA2MTBhNmY1NjViNjEwMWMxNTY1YjYwNDA1MTYxMDBlZTkxOTA2MTA5ODg1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMTExNjAwNDgwMzYwMzgxMDE5MDYxMDEwYzkxOTA2MTA5MWE1NjViNjEwMWRkNTY1YjYwNDA1MTYxMDExZTkxOTA2MTBhZDE1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMTQxNjAwNDgwMzYwMzgxMDE5MDYxMDEzYzkxOTA2MTBhZWM1NjViNjEwMWZiNTY1YjYwNDA1MTYxMDE0ZTkxOTA2MTA5ODg1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMTcxNjAwNDgwMzYwMzgxMDE5MDYxMDE2YzkxOTA2MTBhZWM1NjViNjEwMjE3NTY1YjYwNDA1MTYxMDE3ZTkxOTA2MTA5ODg1NjViNjA0MDUxODA5MTAzOTBmMzViNjAwMDgwNjEwMTk1ODU4NTg1NjEwMzBjNTY1YjgwOTM1MDgxOTI1MDUwNTA1MDkzOTI1MDUwNTA1NjViNjAwMDgwNjEwMWIyODQ4NDYxMDQzNDU2NWI4MDkzNTA4MTkyNTA1MDUwNTA5MjkxNTA1MDU2NWI2MDAwNjAxNjYwMDMwYjYxMDFkMzg1ODU4NTYxMDU1OTU2NWIxNDkwNTA5MzkyNTA1MDUwNTY1YjYwMDA4MDYxMDFlYjg1ODU4NTYxMDY3NDU2NWI4MDkzNTA4MTkyNTA1MDUwNTA5MzkyNTA1MDUwNTY1YjYwMDA2MDE2NjAwMzBiNjEwMjBkODU4NTg1NjEwNzljNTY1YjE0OTA1MDkzOTI1MDUwNTA1NjViNjAwMDYwNjA2MTAxNjc3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzNzMzNmFhZjA2MGUwMWI4Njg2ODY2MDQwNTE2MDI0MDE2MTAyNTE5MzkyOTE5MDYxMGIzZjU2NWI2MDQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI5MDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTAyYmI5MTkwNjEwYmYwNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTg1NWFmNDkxNTA1MDNkODA2MDAwODExNDYxMDJmNjU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMDJmYjU2NWI2MDYwOTE1MDViNTA4MDkyNTA4MTkzNTA1MDUwNTA5MzkyNTA1MDUwNTY1YjYwMDA4MDYwMDA4MDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjNmNDlmNDBkYjYwZTAxYjg4ODg4ODYwNDA1MTYwMjQwMTYxMDM0ODkzOTI5MTkwNjEwYzA3NTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMDNiMjkxOTA2MTBiZjA1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMDNlZjU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMDNmNDU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEwNDA3NTc2MDE1NjAwMDYxMDQxYzU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMDQxYjkxOTA2MTBjOGM1NjViNWI4MTYwMDMwYjkxNTA4MDk0NTA4MTk1NTA1MDUwNTA1MDkzNTA5MzkxNTA1MDU2NWI2MDAwODA2MDAwODA2MTAxNjc3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzMDk4ZjIzNjY2MGUwMWI4Nzg3NjA0MDUxNjAyNDAxNjEwNDZlOTI5MTkwNjEwY2NjNTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMDRkODkxOTA2MTBiZjA1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMDUxNTU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMDUxYTU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEwNTJkNTc2MDE1NjAwMDYxMDU0MjU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMDU0MTkxOTA2MTBkMzM1NjViNWI4MTYwMDMwYjkxNTA4MDk0NTA4MTk1NTA1MDUwNTA1MDkyNTA5MjkwNTA1NjViNjAwMDgwNjAwMDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjMzNjc2MDVjYTYwZTAxYjg3ODc4NzYwNDA1MTYwMjQwMTYxMDU5NDkzOTI5MTkwNjEwZDczNTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMDVmZTkxOTA2MTBiZjA1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMDYzYjU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMDY0MDU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEwNjUxNTc2MDE1NjEwNjY2NTY1YjgwODA2MDIwMDE5MDUxODEwMTkwNjEwNjY1OTE5MDYxMGRhYTU2NWI1YjYwMDMwYjkyNTA1MDUwOTM5MjUwNTA1MDU2NWI2MDAwODA2MDAwODA2MTAxNjc3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzOTI3ZGExMDU2MGUwMWI4ODg4ODg2MDQwNTE2MDI0MDE2MTA2YjA5MzkyOTE5MDYxMGMwNzU2NWI2MDQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI5MDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTA3MWE5MTkwNjEwYmYwNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NjVhZjE5MTUwNTAzZDgwNjAwMDgxMTQ2MTA3NTc1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTA3NWM1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA4MTYxMDc2ZjU3NjAxNTYwMDA2MTA3ODQ1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTA3ODM5MTkwNjEwZGVjNTY1YjViODE2MDAzMGI5MTUwODA5NDUwODE5NTUwNTA1MDUwNTA5MzUwOTM5MTUwNTA1NjViNjAwMDgwNjAwMDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjNlMWYyMWM2NzYwZTAxYjg3ODc4NzYwNDA1MTYwMjQwMTYxMDdkNzkzOTI5MTkwNjEwYjNmNTY1YjYwNDA1MTYwMjA4MTgzMDM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwF9J5CfwfsfX9uCoQe1eaGb8Fb7h47hJUgvZrMJLxsOz4WrMv3cvu5Mam8dFbgg2oGgwI/rD6rAYQy++8sgEiDwoJCMKw+qwGEJYBEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjCsPqsBhCcARICGAISAhgDGO/WvTsiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBjBoSAxj3ByKEGjAzODE1MjkwNjA0MDUyOTA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjEwODQxOTE5MDYxMGJmMDU2NWI2MDAwNjA0MDUxODA4MzAzODE2MDAwODY1YWYxOTE1MDUwM2Q4MDYwMDA4MTE0NjEwODdlNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjEwODgzNTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTA4OTQ1NzYwMTU2MTA4YTk1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTA4YTg5MTkwNjEwZGFhNTY1YjViNjAwMzBiOTI1MDUwNTA5MzkyNTA1MDUwNTY1YjYwMDA4MGZkNWI2MDAwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIxNjkwNTA5MTkwNTA1NjViNjAwMDYxMDhlNzgyNjEwOGJjNTY1YjkwNTA5MTkwNTA1NjViNjEwOGY3ODE2MTA4ZGM1NjViODExNDYxMDkwMjU3NjAwMDgwZmQ1YjUwNTY1YjYwMDA4MTM1OTA1MDYxMDkxNDgxNjEwOGVlNTY1YjkyOTE1MDUwNTY1YjYwMDA4MDYwMDA2MDYwODQ4NjAzMTIxNTYxMDkzMzU3NjEwOTMyNjEwOGI3NTY1YjViNjAwMDYxMDk0MTg2ODI4NzAxNjEwOTA1NTY1YjkzNTA1MDYwMjA2MTA5NTI4NjgyODcwMTYxMDkwNTU2NWI5MjUwNTA2MDQwNjEwOTYzODY4Mjg3MDE2MTA5MDU1NjViOTE1MDUwOTI1MDkyNTA5MjU2NWI2MDAwODExNTE1OTA1MDkxOTA1MDU2NWI2MTA5ODI4MTYxMDk2ZDU2NWI4MjUyNTA1MDU2NWI2MDAwNjAyMDgyMDE5MDUwNjEwOTlkNjAwMDgzMDE4NDYxMDk3OTU2NWI5MjkxNTA1MDU2NWI2MDAwODE5MDUwOTE5MDUwNTY1YjYxMDliNjgxNjEwOWEzNTY1YjgxMTQ2MTA5YzE1NzYwMDA4MGZkNWI1MDU2NWI2MDAwODEzNTkwNTA2MTA5ZDM4MTYxMDlhZDU2NWI5MjkxNTA1MDU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMDlmMDU3NjEwOWVmNjEwOGI3NTY1YjViNjAwMDYxMDlmZTg1ODI4NjAxNjEwOTA1NTY1YjkyNTA1MDYwMjA2MTBhMGY4NTgyODYwMTYxMDljNDU2NWI5MTUwNTA5MjUwOTI5MDUwNTY1YjYxMGEyMjgxNjEwOGRjNTY1YjgyNTI1MDUwNTY1YjYwMDA2MDIwODIwMTkwNTA2MTBhM2Q2MDAwODMwMTg0NjEwYTE5NTY1YjkyOTE1MDUwNTY1YjYxMGE0YzgxNjEwOTZkNTY1YjgxMTQ2MTBhNTc1NzYwMDA4MGZkNWI1MDU2NWI2MDAwODEzNTkwNTA2MTBhNjk4MTYxMGE0MzU2NWI5MjkxNTA1MDU2NWI2MDAwODA2MDAwNjA2MDg0ODYwMzEyMTU2MTBhODg1NzYxMGE4NzYxMDhiNzU2NWI1YjYwMDA2MTBhOTY4NjgyODcwMTYxMDkwNTU2NWI5MzUwNTA2MDIwNjEwYWE3ODY4Mjg3MDE2MTA5MDU1NjViOTI1MDUwNjA0MDYxMGFiODg2ODI4NzAxNjEwYTVhNTY1YjkxNTA1MDkyNTA5MjUwOTI1NjViNjEwYWNiODE2MTA5YTM1NjViODI1MjUwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDYxMGFlNjYwMDA4MzAxODQ2MTBhYzI1NjViOTI5MTUwNTA1NjViNjAwMDgwNjAwMDYwNjA4NDg2MDMxMjE1NjEwYjA1NTc2MTBiMDQ2MTA4Yjc1NjViNWI2MDAwNjEwYjEzODY4Mjg3MDE2MTA5MDU1NjViOTM1MDUwNjAyMDYxMGIyNDg2ODI4NzAxNjEwOTA1NTY1YjkyNTA1MDYwNDA2MTBiMzU4NjgyODcwMTYxMDljNDU2NWI5MTUwNTA5MjUwOTI1MDkyNTY1YjYwMDA2MDYwODIwMTkwNTA2MTBiNTQ2MDAwODMwMTg2NjEwYTE5NTY1YjYxMGI2MTYwMjA4MzAxODU2MTBhMTk1NjViNjEwYjZlNjA0MDgzMDE4NDYxMGFjMjU2NWI5NDkzNTA1MDUwNTA1NjViNjAwMDgxNTE5MDUwOTE5MDUwNTY1YjYwMDA4MTkwNTA5MjkxNTA1MDU2NWI2MDAwNWI4MzgxMTAxNTYxMGJhYTU3ODA4MjAxNTE4MTg0MDE1MjYwMjA4MTAxOTA1MDYxMGI4ZjU2NWI4MzgxMTExNTYxMGJiOTU3NjAwMDg0ODQwMTUyNWI1MDUwNTA1MDU2NWI2MDAwNjEwYmNhODI2MTBiNzY1NjViNjEwYmQ0ODE4NTYxMGI4MTU2NWI5MzUwNjEwYmU0ODE4NTYwMjA4NjAxNjEwYjhjNTY1YjgwODQwMTkxNTA1MDkyOTE1MDUwNTY1YjYwMDA2MTBiZmM4Mjg0NjEwYmJmNTY1YjkxNTA4MTkwNTA5MjkxNTA1MDU2NWI2MDAwNjA2MDgyMDE5MDUwNjEwYzFjNjAwMDgzMDE4NjYxMGExOTU2NWI2MTBjMjk2MDIwODMwMTg1NjEwYTE5NTY1YjYxMGMzNjYwNDA4MzAxODQ2MTBhMTk1NjViOTQ5MzUwNTA1MDUwNTY1YjYwMDA4MTYwMDMwYjkwNTA5MTkwNTA1NjViNjEwYzU0ODE2MTBjM2U1NjViODExNDYxMGM1ZjU3NjAwMDgwZmQ1YjUwNTY1YjYwMDA4MTUxOTA1MDYxMGM3MTgxNjEwYzRiNTY1YjkyOTE1MDUwNTY1YjYwMDA4MTUxOTA1MDYxMGM4NjgxNjEwYTQzNTY1YjkyOTE1MDUwNTY1YjYwMDA4MDYwNDA4Mzg1MDMxMjE1NjEwY2EzNTc2MTBjYTI2MTA4Yjc1NjViNWI2MDAwNjEwY2IxODU4Mjg2MDE2MTBjNjI1NjViOTI1MDUwNjAyMDYxMGNjMjg1ODI4NjAxNjEwYzc3NTY1YjkxNTA1MDkyNTA5MjkwNTA1NjViNjAwMDYwNDA4MjAxOTA1MDYxMGNlMTYwMDA4MzAxODU2MTBhMTk1NjViNjEwY2VlNjAyMDgzMDE4NDYxMGFjMjU2NWI5MzkyNTA1MDUwNTY1YjYwMDA2MTBkMDA4MjYxMDhiYzU2NWI5MDUwOTE5MDUwNTY1YjYxMGQxMDgxNjEwY2Y1NTY1YjgxMTQ2MTBkMWI1NzYwMDA4MGZkNWI1MDU2NWI2MDAwODE1MTkwNTA2MTBkMmQ4MTYxMGQwNzU2NWI5MjkxNTA1MDU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMGQ0YTU3NjEwZDQ5NjEwOGI3NTY1YjViNjAwMDYxMGQ1ODg1ODI4NjAxNjEwYzYyNTY1YjkyNTA1MDYwMjA2MTBkNjk4NTgyODYwMTYxMGQxZTU2NWI5MTUwNTA5MjUwOTI5MDUwNTY1YjYwMDA2MDYwODIwMTkwNTA2MTBkODg2MDAwODMwMTg2NjEwYTE5NTY1YjYxMGQ5NTYwMjA4MzAxODU2MTBhMTk1NjViNjEwZGEyNjA0MDgzMDE4NDYxMDk3OTU2NWI5NDkzNTA1MDUwNTA1NjViNjAwMDYwMjA4Mjg0MDMxMjE1NjEwZGMwNTc2MTBkYmY2MTA4Yjc1NjViNWI2MDAwNjEwZGNlODQ4Mjg1MDE2MTBjNjI1NjViOTE1MDUwOTI5MTUwNTA1NjViNjAwMDgxNTE5MDUwNjEwZGU2ODE2MTA5YWQ1NjViOTI5MTUwNTA1NjViNjAwMDgwNjA0MDgzODUwMzEyMTU2MTBlMDM1NzYxMGUwMjYxMDhiNzU2NWI1YjYwMDA2MTBlMTE4NTgyODYwMTYxMGM2MjU2NWI5MjUwNTA2MDIwNjEwZTIyODU4Mjg2MDE2MTBkZDc1NjViOTE1MDUwOTI1MDkyOTA1MDU2ZmVhMjY0Njk3MDY2NzM1ODIyMTIyMDBiZTBjZjE0ODAzZGRlMDYyYjRkZmVhMjdhMDE0N2NiZWM0ZjEyOTg2OGRlNjcxNWUzNDRjYTUzMWQyNGNjMTk2NDczNmY2YzYzNDMwMDA4MGUwMDMz","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwvdQ19wlQbBVATLaf5bCO/yHVQt28Y+u26hMK8mzrsHblCqCoi2tdHvNLkUT5hDyAGgwI/rD6rAYQ0pislwMiDwoJCMKw+qwGEJwBEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjDsPqsBhCeARICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGPcHGiISIK3X/se7RK5vK/Vdna1PQtewYiCfONPotRP9zdHhWgfdIJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGPgHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBjeNo3TaKG09GwXzsOdebHdFFzG1JIrvqN4xrVeOUi7dKAWerwPEjjGKyeGSz8kgwaDAj/sPqsBhCOgpq8ASIPCgkIw7D6rAYQngESAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQpcfCgMY+AcS4hxggGBAUjSAFWEAEFdgAID9W1BgBDYQYQBiV2AANWDgHIBjGuHnvhRhAGdXgGMuVeHWFGEAl1eAY1xA9VcUYQDHV4BjnLo83BRhAPdXgGO/rT2wFGEBJ1eAY9iVg60UYQFXV1tgAID9W2EAgWAEgDYDgQGQYQB8kZBhCRpWW2EBh1ZbYEBRYQCOkZBhCYhWW2BAUYCRA5DzW2EAsWAEgDYDgQGQYQCskZBhCdlWW2EBpVZbYEBRYQC+kZBhCihWW2BAUYCRA5DzW2EA4WAEgDYDgQGQYQDckZBhCm9WW2EBwVZbYEBRYQDukZBhCYhWW2BAUYCRA5DzW2EBEWAEgDYDgQGQYQEMkZBhCRpWW2EB3VZbYEBRYQEekZBhCtFWW2BAUYCRA5DzW2EBQWAEgDYDgQGQYQE8kZBhCuxWW2EB+1ZbYEBRYQFOkZBhCYhWW2BAUYCRA5DzW2EBcWAEgDYDgQGQYQFskZBhCuxWW2ECF1ZbYEBRYQF+kZBhCYhWW2BAUYCRA5DzW2AAgGEBlYWFhWEDDFZbgJNQgZJQUFBQk5JQUFBWW2AAgGEBsoSEYQQ0VluAk1CBklBQUFCSkVBQVltgAGAWYAMLYQHThYWFYQVZVlsUkFCTklBQUFZbYACAYQHrhYWFYQZ0VluAk1CBklBQUFCTklBQUFZbYABgFmADC2ECDYWFhWEHnFZbFJBQk5JQUFBWW2AAYGBhAWdz//////////////////////////8WY3M2qvBg4BuGhoZgQFFgJAFhAlGTkpGQYQs/VltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhAruRkGEL8FZbYABgQFGAgwOBhVr0kVBQPYBgAIEUYQL2V2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YQL7VltgYJFQW1CAklCBk1BQUFCTklBQUFZbYACAYACAYQFnc///////////////////////////FmP0n0DbYOAbiIiIYEBRYCQBYQNIk5KRkGEMB1ZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQOykZBhC/BWW2AAYEBRgIMDgWAAhlrxkVBQPYBgAIEUYQPvV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YQP0VltgYJFQW1CRUJFQgWEEB1dgFWAAYQQcVluAgGAgAZBRgQGQYQQbkZBhDIxWW1uBYAMLkVCAlFCBlVBQUFBQk1CTkVBQVltgAIBgAIBhAWdz//////////////////////////8WYwmPI2Zg4BuHh2BAUWAkAWEEbpKRkGEMzFZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQTYkZBhC/BWW2AAYEBRgIMDgWAAhlrxkVBQPYBgAIEUYQUVV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YQUaVltgYJFQW1CRUJFQgWEFLVdgFWAAYQVCVluAgGAgAZBRgQGQYQVBkZBhDTNWW1uBYAMLkVCAlFCBlVBQUFBQklCSkFBWW2AAgGAAYQFnc///////////////////////////FmM2dgXKYOAbh4eHYEBRYCQBYQWUk5KRkGENc1ZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQX+kZBhC/BWW2AAYEBRgIMDgWAAhlrxkVBQPYBgAIEUYQY7V2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YQZAVltgYJFQW1CRUJFQgWEGUVdgFWEGZlZbgIBgIAGQUYEBkGEGZZGQYQ2qVltbYAMLklBQUJOSUFBQVltgAIBgAIBhAWdz//////////////////////////8WY5J9oQVg4BuIiIhgQFFgJAFhBrCTkpGQYQwHVltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhBxqRkGEL8FZbYABgQFGAgwOBYACGWvGRUFA9gGAAgRRhB1dXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hB1xWW2BgkVBbUJFQkVCBYQdvV2AVYABhB4RWW4CAYCABkFGBAZBhB4ORkGEN7FZbW4FgAwuRUICUUIGVUFBQUFCTUJORUFBWW2AAgGAAYQFnc///////////////////////////FmPh8hxnYOAbh4eHYEBRYCQBYQfXk5KRkGELP1ZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQhBkZBhC/BWW2AAYEBRgIMDgWAAhlrxkVBQPYBgAIEUYQh+V2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YQiDVltgYJFQW1CRUJFQgWEIlFdgFWEIqVZbgIBgIAGQUYEBkGEIqJGQYQ2qVltbYAMLklBQUJOSUFBQVltgAID9W2AAc///////////////////////////ghaQUJGQUFZbYABhCOeCYQi8VluQUJGQUFZbYQj3gWEI3FZbgRRhCQJXYACA/VtQVltgAIE1kFBhCRSBYQjuVluSkVBQVltgAIBgAGBghIYDEhVhCTNXYQkyYQi3VltbYABhCUGGgocBYQkFVluTUFBgIGEJUoaChwFhCQVWW5JQUGBAYQljhoKHAWEJBVZbkVBQklCSUJJWW2AAgRUVkFCRkFBWW2EJgoFhCW1WW4JSUFBWW2AAYCCCAZBQYQmdYACDAYRhCXlWW5KRUFBWW2AAgZBQkZBQVlthCbaBYQmjVluBFGEJwVdgAID9W1BWW2AAgTWQUGEJ04FhCa1WW5KRUFBWW2AAgGBAg4UDEhVhCfBXYQnvYQi3VltbYABhCf6FgoYBYQkFVluSUFBgIGEKD4WChgFhCcRWW5FQUJJQkpBQVlthCiKBYQjcVluCUlBQVltgAGAgggGQUGEKPWAAgwGEYQoZVluSkVBQVlthCkyBYQltVluBFGEKV1dgAID9W1BWW2AAgTWQUGEKaYFhCkNWW5KRUFBWW2AAgGAAYGCEhgMSFWEKiFdhCodhCLdWW1tgAGEKloaChwFhCQVWW5NQUGAgYQqnhoKHAWEJBVZbklBQYEBhCriGgocBYQpaVluRUFCSUJJQklZbYQrLgWEJo1ZbglJQUFZbYABgIIIBkFBhCuZgAIMBhGEKwlZbkpFQUFZbYACAYABgYISGAxIVYQsFV2ELBGEIt1ZbW2AAYQsThoKHAWEJBVZbk1BQYCBhCySGgocBYQkFVluSUFBgQGELNYaChwFhCcRWW5FQUJJQklCSVltgAGBgggGQUGELVGAAgwGGYQoZVlthC2FgIIMBhWEKGVZbYQtuYECDAYRhCsJWW5STUFBQUFZbYACBUZBQkZBQVltgAIGQUJKRUFBWW2AAW4OBEBVhC6pXgIIBUYGEAVJgIIEBkFBhC49WW4OBERVhC7lXYACEhAFSW1BQUFBWW2AAYQvKgmELdlZbYQvUgYVhC4FWW5NQYQvkgYVgIIYBYQuMVluAhAGRUFCSkVBQVltgAGEL/IKEYQu/VluRUIGQUJKRUFBWW2AAYGCCAZBQYQwcYACDAYZhChlWW2EMKWAggwGFYQoZVlthDDZgQIMBhGEKGVZblJNQUFBQVltgAIFgAwuQUJGQUFZbYQxUgWEMPlZbgRRhDF9XYACA/VtQVltgAIFRkFBhDHGBYQxLVluSkVBQVltgAIFRkFBhDIaBYQpDVluSkVBQVltgAIBgQIOFAxIVYQyjV2EMomEIt1ZbW2AAYQyxhYKGAWEMYlZbklBQYCBhDMKFgoYBYQx3VluRUFCSUJKQUFZbYABgQIIBkFBhDOFgAIMBhWEKGVZbYQzuYCCDAYRhCsJWW5OSUFBQVltgAGENAIJhCLxWW5BQkZBQVlthDRCBYQz1VluBFGENG1dgAID9W1BWW2AAgVGQUGENLYFhDQdWW5KRUFBWW2AAgGBAg4UDEhVhDUpXYQ1JYQi3VltbYABhDViFgoYBYQxiVluSUFBgIGENaYWChgFhDR5WW5FQUJJQkpBQVltgAGBgggGQUGENiGAAgwGGYQoZVlthDZVgIIMBhWEKGVZbYQ2iYECDAYRhCXlWW5STUFBQUFZbYABgIIKEAxIVYQ3AV2ENv2EIt1ZbW2AAYQ3OhIKFAWEMYlZbkVBQkpFQUFZbYACBUZBQYQ3mgWEJrVZbkpFQUFZbYACAYECDhQMSFWEOA1dhDgJhCLdWW1tgAGEOEYWChgFhDGJWW5JQUGAgYQ4ihYKGAWEN11ZbkVBQklCSkFBW/qJkaXBmc1giEiAL4M8UgD3eBitN/qJ6AUfL7E8SmGjeZxXjRMpTHSTMGWRzb2xjQwAIDgAzIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACjAmgw6Axj4B0oWChQAAAAAAAAAAAAAAAAAAAAAAAAD+HIHCgMY+AcQAVIWCgkKAhgCEP+yxQ0KCQoCGGIQgLPFDQ=="},{"b64Body":"Cg8KCQjDsPqsBhCkARICGAISAhgDGOC2iyAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGPIHEgMY9gc=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwIblBX+ZS1cm+7/iBPcqvSb3tZJ0lDd+jIUTG0bwFoWAeGuXytMkgCFGnE5GZQ7pnGgwI/7D6rAYQhtOlwgMiDwoJCMOw+qwGEKQBEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjEsPqsBhCmARICGAISAhgDGIfiPCICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOciMSIQoDGPYHGgwKAxj1BxIDGPIHGAEaDAoDGPUHEgMY8gcYAg==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwgpKuwx6qAABpE4KGDBHYzE/x/7NMeNwWzFLlTwi6pGUn7gbAY4NWxwYzmk2XwW6iGgwIgLH6rAYQt6K2ygEiDwoJCMSw+qwGEKYBEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAFohCgMY9gcaDAoDGPUHEgMY8gcYARoMCgMY9QcSAxjyBxgC"},{"b64Body":"ChAKCQjEsPqsBhCnARIDGPIHEgIYAxiAwtcvIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6CAxkSFwoDGPYHEgMY8gcaAxjzByICAQIqAggB","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwRyd+HOj6VypQ3lfn+ZD+gTdGTYmQkfjPvoW66Tp7KmZHByNHyHpWe971uyL/dUeeGgwIgLH6rAYQrJGLzAMiEAoJCMSw+qwGEKcBEgMY8gcqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMIaRtyBSOgoJCgIYAxDWmtIBCgkKAhhiEOLSyTIKCgoDGKAGEKqaqQYKCgoDGKEGEKqaqQYKCgoDGPIHEIui7kA="},{"b64Body":"ChAKCQjFsPqsBhCzARIDGPIHEgIYAxiA/rWHASICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOOnAKAxj4BxCAkvQBImQa4ee+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz","b64Record":"CiUIFiIDGPgHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAynP6LSfnrW7pRpI1RejT9BDN2o87o5dDzDF+DSQ8+lxThA/Se9gICRriMOLiEqU0aDAiBsfqsBhDmqL3wASIQCgkIxbD6rAYQswESAxjyByogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wgJirbDqvAgoDGPgHEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAogKjDAVIZCgoKAhhiEICw1tgBCgsKAxjyBxD/r9bYAQ=="},{"b64Body":"ChIKCQjFsPqsBhCzARIDGPIHIAE6bQoDGOcCEAEiZPSfQNsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/M=","b64Record":"CgIIFhIwaCkJlX7C5fFa/PQLqClnB5xlJTv4fEhL1W1tx3h807DSqmUa3R0uYF7ebfdgGOfCGgwIgbH6rAYQ56i98AEiEgoJCMWw+qwGELMBEgMY8gcgATpOCgMY5wISQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEoZGoDGPgHUgB6DAiBsfqsBhDmqL3wAQ=="},{"b64Body":"ChAKCQjGsPqsBhC1ARIDGPIHEgIYAxiA/rWHASICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOOnAKAxj4BxCAkvQBImQa4ee+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP0","b64Record":"CiUIFiIDGPgHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDyQsKc73G8sSuNW1jct9zcj0EHdAHymDUKWG2DPpXh005YQ54tiyTumIDVSwl7a94aCwiCsfqsBhDFyIkaIhAKCQjGsPqsBhC1ARIDGPIHKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCAmKtsOq8CCgMY+AcSIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACiAqMMBUhkKCgoCGGIQgLDW2AEKCwoDGPIHEP+v1tgB"},{"b64Body":"ChIKCQjGsPqsBhC1ARIDGPIHIAE6bQoDGOcCEAEiZPSfQNsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/Q=","b64Record":"CgIIFhIw37a47wtodzSZaRhm2gFS+jmleaZSNi4dV5hOKFJrY9WHGLsUK/8UQe1KSja4zCvdGgsIgrH6rAYQxsiJGiISCgkIxrD6rAYQtQESAxjyByABOk4KAxjnAhJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMY+AdSAHoLCIKx+qwGEMXIiRo="}]},"hapiNftSetApprovalForAll":{"placeholderNum":1017,"encodedItems":[{"b64Body":"Cg8KCQjKsPqsBhDVARICGAISAhgDGNuZihwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIEnOBj750vqAMFGI1nV8v+CIn1ic9vpCq5DgSI9WX1pXEICglKWNHUoFCIDO2gNwCg==","b64Record":"CiUIFhIDGPoHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDR45pGiSzFwMNScGy9qe0Ig3ZXCVx6qtht9/TyfxwbSxH6PNaBWQqGML/lXx/K8ZcaCwiHsfqsBhCuvPYLIg8KCQjKsPqsBhDVARICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUhsKCwoCGAIQ/7+oypo6CgwKAxj6BxCAwKjKmjo="},{"b64Body":"Cg8KCQjLsPqsBhDXARICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIIdHT7FfxR2HolVBdR7trAFwTV14oO/8XRt86WeJvK7nEICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGPsHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAphq9wN/Zk9pI8FdARjQeaomwwzvqqq17+9M02al4EndhLgkMO4kTFUH7lY8NRBJUaDAiHsfqsBhD5z5+NAiIPCgkIy7D6rAYQ1wESAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxj7BxCAqNa5Bw=="},{"b64Body":"Cg8KCQjMsPqsBhDZARICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIP0d5vam0q06B7cgGfkF2CsEWLnJFMM3i5LvLndqITNUEICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGPwHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBBQe/sG4wspJqD5OVm58LXbWNtRkoYJqf330GJxdrYoBzLSi7vGPwitKU9PY+gJW4aCwiIsfqsBhDMgNUeIg8KCQjMsPqsBhDZARICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUhkKCgoCGAIQ/6fWuQcKCwoDGPwHEICo1rkH"},{"b64Body":"Cg8KCQjMsPqsBhDbARICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIMFSK28BWwax3NyoHSqXn/Sf+4RGMEIfm01dcZmdHoQNEICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGP0HKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCJDZAC2AqiS+dQjIxiBROZWnYisLitiu/7aXD1f9dSCfFenD+OcIb5eHsfE/10VvUaDAiIsfqsBhCz7JmIAiIPCgkIzLD6rAYQ2wESAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxj9BxCAqNa5Bw=="},{"b64Body":"Cg8KCQjNsPqsBhDdARICGAISAhgDGMXCtfsCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAXkKEG5vbkZ1bmdpYmxlVG9rZW4SCElZUFZXTEdIKgMY/QcyIhIgPw0DhtBP7BDb4umEl4rmQzmHuNSFwkpTxn5jBUxswtlSIhIgPw0DhtBP7BDb4umEl4rmQzmHuNSFwkpTxn5jBUxswtlqCwiJ/9SwBhC0zqIWiAEB","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGP4HEjAtdreknxGX6e4a03kszepjHxjOtyi8zmvP9wCPIZuZZTup/jOBqs7Kyz542pn7PmUaCwiJsfqsBhDkg+ExIg8KCQjNsPqsBhDdARICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgByCgoDGP4HEgMY/Qc="},{"b64Body":"Cg8KCQjNsPqsBhDfARICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAiJ/9SwBhC+yamdAhptCiISIJexDTEOn2ithI80w4MFPOvptxkT1GQlu1zEdik8UGeyCiM6IQNBpryEk0Hey8FKLsBVmR6nOjt4ODd8lijFBawtghkgHQoiEiCRgAneNygyFSkPyr4Q5vCLw1LCiHTYHJR0ZD8sBWmFWiIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGP8HKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAzJ/jDCC3ktrpy4d0q91+Nxlk/++pyy7P9vYHc8Uxnlv7JMQeB1GLKvxBv+lWuuMQaDAiJsfqsBhDL0uypAiIPCgkIzbD6rAYQ3wESAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjOsPqsBhDjARICGAISAhgDGIudjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxj/ByKAIDYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMGU2MjgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDA2MjU3NjAwMDM1NjBlMDFjODA2MzFhZTFlN2JlMTQ2MTAwNjc1NzgwNjMyZTU1ZTFkNjE0NjEwMDk3NTc4MDYzNWM0MGY1NTcxNDYxMDBjNzU3ODA2MzljYmEzY2RjMTQ2MTAwZjc1NzgwNjNiZmFkM2RiMDE0NjEwMTI3NTc4MDYzZDg5NTgzYWQxNDYxMDE1NzU3NWI2MDAwODBmZDViNjEwMDgxNjAwNDgwMzYwMzgxMDE5MDYxMDA3YzkxOTA2MTA5MWE1NjViNjEwMTg3NTY1YjYwNDA1MTYxMDA4ZTkxOTA2MTA5ODg1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMGIxNjAwNDgwMzYwMzgxMDE5MDYxMDBhYzkxOTA2MTA5ZDk1NjViNjEwMWE1NTY1YjYwNDA1MTYxMDBiZTkxOTA2MTBhMjg1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMGUxNjAwNDgwMzYwMzgxMDE5MDYxMDBkYzkxOTA2MTBhNmY1NjViNjEwMWMxNTY1YjYwNDA1MTYxMDBlZTkxOTA2MTA5ODg1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMTExNjAwNDgwMzYwMzgxMDE5MDYxMDEwYzkxOTA2MTA5MWE1NjViNjEwMWRkNTY1YjYwNDA1MTYxMDExZTkxOTA2MTBhZDE1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMTQxNjAwNDgwMzYwMzgxMDE5MDYxMDEzYzkxOTA2MTBhZWM1NjViNjEwMWZiNTY1YjYwNDA1MTYxMDE0ZTkxOTA2MTA5ODg1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMTcxNjAwNDgwMzYwMzgxMDE5MDYxMDE2YzkxOTA2MTBhZWM1NjViNjEwMjE3NTY1YjYwNDA1MTYxMDE3ZTkxOTA2MTA5ODg1NjViNjA0MDUxODA5MTAzOTBmMzViNjAwMDgwNjEwMTk1ODU4NTg1NjEwMzBjNTY1YjgwOTM1MDgxOTI1MDUwNTA1MDkzOTI1MDUwNTA1NjViNjAwMDgwNjEwMWIyODQ4NDYxMDQzNDU2NWI4MDkzNTA4MTkyNTA1MDUwNTA5MjkxNTA1MDU2NWI2MDAwNjAxNjYwMDMwYjYxMDFkMzg1ODU4NTYxMDU1OTU2NWIxNDkwNTA5MzkyNTA1MDUwNTY1YjYwMDA4MDYxMDFlYjg1ODU4NTYxMDY3NDU2NWI4MDkzNTA4MTkyNTA1MDUwNTA5MzkyNTA1MDUwNTY1YjYwMDA2MDE2NjAwMzBiNjEwMjBkODU4NTg1NjEwNzljNTY1YjE0OTA1MDkzOTI1MDUwNTA1NjViNjAwMDYwNjA2MTAxNjc3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzNzMzNmFhZjA2MGUwMWI4Njg2ODY2MDQwNTE2MDI0MDE2MTAyNTE5MzkyOTE5MDYxMGIzZjU2NWI2MDQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI5MDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTAyYmI5MTkwNjEwYmYwNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTg1NWFmNDkxNTA1MDNkODA2MDAwODExNDYxMDJmNjU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMDJmYjU2NWI2MDYwOTE1MDViNTA4MDkyNTA4MTkzNTA1MDUwNTA5MzkyNTA1MDUwNTY1YjYwMDA4MDYwMDA4MDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjNmNDlmNDBkYjYwZTAxYjg4ODg4ODYwNDA1MTYwMjQwMTYxMDM0ODkzOTI5MTkwNjEwYzA3NTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMDNiMjkxOTA2MTBiZjA1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMDNlZjU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMDNmNDU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEwNDA3NTc2MDE1NjAwMDYxMDQxYzU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMDQxYjkxOTA2MTBjOGM1NjViNWI4MTYwMDMwYjkxNTA4MDk0NTA4MTk1NTA1MDUwNTA1MDkzNTA5MzkxNTA1MDU2NWI2MDAwODA2MDAwODA2MTAxNjc3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzMDk4ZjIzNjY2MGUwMWI4Nzg3NjA0MDUxNjAyNDAxNjEwNDZlOTI5MTkwNjEwY2NjNTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMDRkODkxOTA2MTBiZjA1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMDUxNTU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMDUxYTU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEwNTJkNTc2MDE1NjAwMDYxMDU0MjU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMDU0MTkxOTA2MTBkMzM1NjViNWI4MTYwMDMwYjkxNTA4MDk0NTA4MTk1NTA1MDUwNTA1MDkyNTA5MjkwNTA1NjViNjAwMDgwNjAwMDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjMzNjc2MDVjYTYwZTAxYjg3ODc4NzYwNDA1MTYwMjQwMTYxMDU5NDkzOTI5MTkwNjEwZDczNTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMDVmZTkxOTA2MTBiZjA1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMDYzYjU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMDY0MDU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEwNjUxNTc2MDE1NjEwNjY2NTY1YjgwODA2MDIwMDE5MDUxODEwMTkwNjEwNjY1OTE5MDYxMGRhYTU2NWI1YjYwMDMwYjkyNTA1MDUwOTM5MjUwNTA1MDU2NWI2MDAwODA2MDAwODA2MTAxNjc3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzOTI3ZGExMDU2MGUwMWI4ODg4ODg2MDQwNTE2MDI0MDE2MTA2YjA5MzkyOTE5MDYxMGMwNzU2NWI2MDQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI5MDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTA3MWE5MTkwNjEwYmYwNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NjVhZjE5MTUwNTAzZDgwNjAwMDgxMTQ2MTA3NTc1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTA3NWM1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA4MTYxMDc2ZjU3NjAxNTYwMDA2MTA3ODQ1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTA3ODM5MTkwNjEwZGVjNTY1YjViODE2MDAzMGI5MTUwODA5NDUwODE5NTUwNTA1MDUwNTA5MzUwOTM5MTUwNTA1NjViNjAwMDgwNjAwMDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjNlMWYyMWM2NzYwZTAxYjg3ODc4NzYwNDA1MTYwMjQwMTYxMDdkNzkzOTI5MTkwNjEwYjNmNTY1YjYwNDA1MTYwMjA4MTgzMDM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwyoiE32mWW6wOgUqudZc7hI0HZ6Z1YeAYwLAayPBny30N5CiwipDIMqALmTlOnCZpGgsIirH6rAYQvtn5XCIPCgkIzrD6rAYQ4wESAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjOsPqsBhDpARICGAISAhgDGO/WvTsiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBjBoSAxj/ByKEGjAzODE1MjkwNjA0MDUyOTA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjEwODQxOTE5MDYxMGJmMDU2NWI2MDAwNjA0MDUxODA4MzAzODE2MDAwODY1YWYxOTE1MDUwM2Q4MDYwMDA4MTE0NjEwODdlNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjEwODgzNTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTA4OTQ1NzYwMTU2MTA4YTk1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTA4YTg5MTkwNjEwZGFhNTY1YjViNjAwMzBiOTI1MDUwNTA5MzkyNTA1MDUwNTY1YjYwMDA4MGZkNWI2MDAwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIxNjkwNTA5MTkwNTA1NjViNjAwMDYxMDhlNzgyNjEwOGJjNTY1YjkwNTA5MTkwNTA1NjViNjEwOGY3ODE2MTA4ZGM1NjViODExNDYxMDkwMjU3NjAwMDgwZmQ1YjUwNTY1YjYwMDA4MTM1OTA1MDYxMDkxNDgxNjEwOGVlNTY1YjkyOTE1MDUwNTY1YjYwMDA4MDYwMDA2MDYwODQ4NjAzMTIxNTYxMDkzMzU3NjEwOTMyNjEwOGI3NTY1YjViNjAwMDYxMDk0MTg2ODI4NzAxNjEwOTA1NTY1YjkzNTA1MDYwMjA2MTA5NTI4NjgyODcwMTYxMDkwNTU2NWI5MjUwNTA2MDQwNjEwOTYzODY4Mjg3MDE2MTA5MDU1NjViOTE1MDUwOTI1MDkyNTA5MjU2NWI2MDAwODExNTE1OTA1MDkxOTA1MDU2NWI2MTA5ODI4MTYxMDk2ZDU2NWI4MjUyNTA1MDU2NWI2MDAwNjAyMDgyMDE5MDUwNjEwOTlkNjAwMDgzMDE4NDYxMDk3OTU2NWI5MjkxNTA1MDU2NWI2MDAwODE5MDUwOTE5MDUwNTY1YjYxMDliNjgxNjEwOWEzNTY1YjgxMTQ2MTA5YzE1NzYwMDA4MGZkNWI1MDU2NWI2MDAwODEzNTkwNTA2MTA5ZDM4MTYxMDlhZDU2NWI5MjkxNTA1MDU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMDlmMDU3NjEwOWVmNjEwOGI3NTY1YjViNjAwMDYxMDlmZTg1ODI4NjAxNjEwOTA1NTY1YjkyNTA1MDYwMjA2MTBhMGY4NTgyODYwMTYxMDljNDU2NWI5MTUwNTA5MjUwOTI5MDUwNTY1YjYxMGEyMjgxNjEwOGRjNTY1YjgyNTI1MDUwNTY1YjYwMDA2MDIwODIwMTkwNTA2MTBhM2Q2MDAwODMwMTg0NjEwYTE5NTY1YjkyOTE1MDUwNTY1YjYxMGE0YzgxNjEwOTZkNTY1YjgxMTQ2MTBhNTc1NzYwMDA4MGZkNWI1MDU2NWI2MDAwODEzNTkwNTA2MTBhNjk4MTYxMGE0MzU2NWI5MjkxNTA1MDU2NWI2MDAwODA2MDAwNjA2MDg0ODYwMzEyMTU2MTBhODg1NzYxMGE4NzYxMDhiNzU2NWI1YjYwMDA2MTBhOTY4NjgyODcwMTYxMDkwNTU2NWI5MzUwNTA2MDIwNjEwYWE3ODY4Mjg3MDE2MTA5MDU1NjViOTI1MDUwNjA0MDYxMGFiODg2ODI4NzAxNjEwYTVhNTY1YjkxNTA1MDkyNTA5MjUwOTI1NjViNjEwYWNiODE2MTA5YTM1NjViODI1MjUwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDYxMGFlNjYwMDA4MzAxODQ2MTBhYzI1NjViOTI5MTUwNTA1NjViNjAwMDgwNjAwMDYwNjA4NDg2MDMxMjE1NjEwYjA1NTc2MTBiMDQ2MTA4Yjc1NjViNWI2MDAwNjEwYjEzODY4Mjg3MDE2MTA5MDU1NjViOTM1MDUwNjAyMDYxMGIyNDg2ODI4NzAxNjEwOTA1NTY1YjkyNTA1MDYwNDA2MTBiMzU4NjgyODcwMTYxMDljNDU2NWI5MTUwNTA5MjUwOTI1MDkyNTY1YjYwMDA2MDYwODIwMTkwNTA2MTBiNTQ2MDAwODMwMTg2NjEwYTE5NTY1YjYxMGI2MTYwMjA4MzAxODU2MTBhMTk1NjViNjEwYjZlNjA0MDgzMDE4NDYxMGFjMjU2NWI5NDkzNTA1MDUwNTA1NjViNjAwMDgxNTE5MDUwOTE5MDUwNTY1YjYwMDA4MTkwNTA5MjkxNTA1MDU2NWI2MDAwNWI4MzgxMTAxNTYxMGJhYTU3ODA4MjAxNTE4MTg0MDE1MjYwMjA4MTAxOTA1MDYxMGI4ZjU2NWI4MzgxMTExNTYxMGJiOTU3NjAwMDg0ODQwMTUyNWI1MDUwNTA1MDU2NWI2MDAwNjEwYmNhODI2MTBiNzY1NjViNjEwYmQ0ODE4NTYxMGI4MTU2NWI5MzUwNjEwYmU0ODE4NTYwMjA4NjAxNjEwYjhjNTY1YjgwODQwMTkxNTA1MDkyOTE1MDUwNTY1YjYwMDA2MTBiZmM4Mjg0NjEwYmJmNTY1YjkxNTA4MTkwNTA5MjkxNTA1MDU2NWI2MDAwNjA2MDgyMDE5MDUwNjEwYzFjNjAwMDgzMDE4NjYxMGExOTU2NWI2MTBjMjk2MDIwODMwMTg1NjEwYTE5NTY1YjYxMGMzNjYwNDA4MzAxODQ2MTBhMTk1NjViOTQ5MzUwNTA1MDUwNTY1YjYwMDA4MTYwMDMwYjkwNTA5MTkwNTA1NjViNjEwYzU0ODE2MTBjM2U1NjViODExNDYxMGM1ZjU3NjAwMDgwZmQ1YjUwNTY1YjYwMDA4MTUxOTA1MDYxMGM3MTgxNjEwYzRiNTY1YjkyOTE1MDUwNTY1YjYwMDA4MTUxOTA1MDYxMGM4NjgxNjEwYTQzNTY1YjkyOTE1MDUwNTY1YjYwMDA4MDYwNDA4Mzg1MDMxMjE1NjEwY2EzNTc2MTBjYTI2MTA4Yjc1NjViNWI2MDAwNjEwY2IxODU4Mjg2MDE2MTBjNjI1NjViOTI1MDUwNjAyMDYxMGNjMjg1ODI4NjAxNjEwYzc3NTY1YjkxNTA1MDkyNTA5MjkwNTA1NjViNjAwMDYwNDA4MjAxOTA1MDYxMGNlMTYwMDA4MzAxODU2MTBhMTk1NjViNjEwY2VlNjAyMDgzMDE4NDYxMGFjMjU2NWI5MzkyNTA1MDUwNTY1YjYwMDA2MTBkMDA4MjYxMDhiYzU2NWI5MDUwOTE5MDUwNTY1YjYxMGQxMDgxNjEwY2Y1NTY1YjgxMTQ2MTBkMWI1NzYwMDA4MGZkNWI1MDU2NWI2MDAwODE1MTkwNTA2MTBkMmQ4MTYxMGQwNzU2NWI5MjkxNTA1MDU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMGQ0YTU3NjEwZDQ5NjEwOGI3NTY1YjViNjAwMDYxMGQ1ODg1ODI4NjAxNjEwYzYyNTY1YjkyNTA1MDYwMjA2MTBkNjk4NTgyODYwMTYxMGQxZTU2NWI5MTUwNTA5MjUwOTI5MDUwNTY1YjYwMDA2MDYwODIwMTkwNTA2MTBkODg2MDAwODMwMTg2NjEwYTE5NTY1YjYxMGQ5NTYwMjA4MzAxODU2MTBhMTk1NjViNjEwZGEyNjA0MDgzMDE4NDYxMDk3OTU2NWI5NDkzNTA1MDUwNTA1NjViNjAwMDYwMjA4Mjg0MDMxMjE1NjEwZGMwNTc2MTBkYmY2MTA4Yjc1NjViNWI2MDAwNjEwZGNlODQ4Mjg1MDE2MTBjNjI1NjViOTE1MDUwOTI5MTUwNTA1NjViNjAwMDgxNTE5MDUwNjEwZGU2ODE2MTA5YWQ1NjViOTI5MTUwNTA1NjViNjAwMDgwNjA0MDgzODUwMzEyMTU2MTBlMDM1NzYxMGUwMjYxMDhiNzU2NWI1YjYwMDA2MTBlMTE4NTgyODYwMTYxMGM2MjU2NWI5MjUwNTA2MDIwNjEwZTIyODU4Mjg2MDE2MTBkZDc1NjViOTE1MDUwOTI1MDkyOTA1MDU2ZmVhMjY0Njk3MDY2NzM1ODIyMTIyMDBiZTBjZjE0ODAzZGRlMDYyYjRkZmVhMjdhMDE0N2NiZWM0ZjEyOTg2OGRlNjcxNWUzNDRjYTUzMWQyNGNjMTk2NDczNmY2YzYzNDMwMDA4MGUwMDMz","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwzW8jhoZf03qbxi4Lt8HIGTahtM1gbgXFVJY3caEyTJWpvLfMW7mYby9/QGI8I8v7GgwIirH6rAYQj8zh5wIiDwoJCM6w+qwGEOkBEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjPsPqsBhDrARICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGP8HGiISIM6/qq4mxIaGkFNrPoMPMEGRQ8Xmgd7WdfNyLe8tNPqiIJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGIAIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBQDvlKrhHsgzJZ+ILdva9BnTmPnrBiwGQYzE3d+fLnL+tTtMKK704ZS4YeDa51ky0aCwiLsfqsBhCJt8BmIg8KCQjPsPqsBhDrARICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMMDZ4gZClx8KAxiACBLiHGCAYEBSNIAVYQAQV2AAgP1bUGAENhBhAGJXYAA1YOAcgGMa4ee+FGEAZ1eAYy5V4dYUYQCXV4BjXED1VxRhAMdXgGOcujzcFGEA91eAY7+tPbAUYQEnV4Bj2JWDrRRhAVdXW2AAgP1bYQCBYASANgOBAZBhAHyRkGEJGlZbYQGHVltgQFFhAI6RkGEJiFZbYEBRgJEDkPNbYQCxYASANgOBAZBhAKyRkGEJ2VZbYQGlVltgQFFhAL6RkGEKKFZbYEBRgJEDkPNbYQDhYASANgOBAZBhANyRkGEKb1ZbYQHBVltgQFFhAO6RkGEJiFZbYEBRgJEDkPNbYQERYASANgOBAZBhAQyRkGEJGlZbYQHdVltgQFFhAR6RkGEK0VZbYEBRgJEDkPNbYQFBYASANgOBAZBhATyRkGEK7FZbYQH7VltgQFFhAU6RkGEJiFZbYEBRgJEDkPNbYQFxYASANgOBAZBhAWyRkGEK7FZbYQIXVltgQFFhAX6RkGEJiFZbYEBRgJEDkPNbYACAYQGVhYWFYQMMVluAk1CBklBQUFCTklBQUFZbYACAYQGyhIRhBDRWW4CTUIGSUFBQUJKRUFBWW2AAYBZgAwthAdOFhYVhBVlWWxSQUJOSUFBQVltgAIBhAeuFhYVhBnRWW4CTUIGSUFBQUJOSUFBQVltgAGAWYAMLYQINhYWFYQecVlsUkFCTklBQUFZbYABgYGEBZ3P//////////////////////////xZjczaq8GDgG4aGhmBAUWAkAWECUZOSkZBhCz9WW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWECu5GQYQvwVltgAGBAUYCDA4GFWvSRUFA9gGAAgRRhAvZXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hAvtWW2BgkVBbUICSUIGTUFBQUJOSUFBQVltgAIBgAIBhAWdz//////////////////////////8WY/SfQNtg4BuIiIhgQFFgJAFhA0iTkpGQYQwHVltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhA7KRkGEL8FZbYABgQFGAgwOBYACGWvGRUFA9gGAAgRRhA+9XYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hA/RWW2BgkVBbUJFQkVCBYQQHV2AVYABhBBxWW4CAYCABkFGBAZBhBBuRkGEMjFZbW4FgAwuRUICUUIGVUFBQUFCTUJORUFBWW2AAgGAAgGEBZ3P//////////////////////////xZjCY8jZmDgG4eHYEBRYCQBYQRukpGQYQzMVltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhBNiRkGEL8FZbYABgQFGAgwOBYACGWvGRUFA9gGAAgRRhBRVXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hBRpWW2BgkVBbUJFQkVCBYQUtV2AVYABhBUJWW4CAYCABkFGBAZBhBUGRkGENM1ZbW4FgAwuRUICUUIGVUFBQUFCSUJKQUFZbYACAYABhAWdz//////////////////////////8WYzZ2Bcpg4BuHh4dgQFFgJAFhBZSTkpGQYQ1zVltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhBf6RkGEL8FZbYABgQFGAgwOBYACGWvGRUFA9gGAAgRRhBjtXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hBkBWW2BgkVBbUJFQkVCBYQZRV2AVYQZmVluAgGAgAZBRgQGQYQZlkZBhDapWW1tgAwuSUFBQk5JQUFBWW2AAgGAAgGEBZ3P//////////////////////////xZjkn2hBWDgG4iIiGBAUWAkAWEGsJOSkZBhDAdWW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEHGpGQYQvwVltgAGBAUYCDA4FgAIZa8ZFQUD2AYACBFGEHV1dgQFGRUGAfGWA/PQEWggFgQFI9glI9YABgIIQBPmEHXFZbYGCRUFtQkVCRUIFhB29XYBVgAGEHhFZbgIBgIAGQUYEBkGEHg5GQYQ3sVltbgWADC5FQgJRQgZVQUFBQUJNQk5FQUFZbYACAYABhAWdz//////////////////////////8WY+HyHGdg4BuHh4dgQFFgJAFhB9eTkpGQYQs/VltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhCEGRkGEL8FZbYABgQFGAgwOBYACGWvGRUFA9gGAAgRRhCH5XYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hCINWW2BgkVBbUJFQkVCBYQiUV2AVYQipVluAgGAgAZBRgQGQYQiokZBhDapWW1tgAwuSUFBQk5JQUFBWW2AAgP1bYABz//////////////////////////+CFpBQkZBQVltgAGEI54JhCLxWW5BQkZBQVlthCPeBYQjcVluBFGEJAldgAID9W1BWW2AAgTWQUGEJFIFhCO5WW5KRUFBWW2AAgGAAYGCEhgMSFWEJM1dhCTJhCLdWW1tgAGEJQYaChwFhCQVWW5NQUGAgYQlShoKHAWEJBVZbklBQYEBhCWOGgocBYQkFVluRUFCSUJJQklZbYACBFRWQUJGQUFZbYQmCgWEJbVZbglJQUFZbYABgIIIBkFBhCZ1gAIMBhGEJeVZbkpFQUFZbYACBkFCRkFBWW2EJtoFhCaNWW4EUYQnBV2AAgP1bUFZbYACBNZBQYQnTgWEJrVZbkpFQUFZbYACAYECDhQMSFWEJ8FdhCe9hCLdWW1tgAGEJ/oWChgFhCQVWW5JQUGAgYQoPhYKGAWEJxFZbkVBQklCSkFBWW2EKIoFhCNxWW4JSUFBWW2AAYCCCAZBQYQo9YACDAYRhChlWW5KRUFBWW2EKTIFhCW1WW4EUYQpXV2AAgP1bUFZbYACBNZBQYQppgWEKQ1ZbkpFQUFZbYACAYABgYISGAxIVYQqIV2EKh2EIt1ZbW2AAYQqWhoKHAWEJBVZbk1BQYCBhCqeGgocBYQkFVluSUFBgQGEKuIaChwFhClpWW5FQUJJQklCSVlthCsuBYQmjVluCUlBQVltgAGAgggGQUGEK5mAAgwGEYQrCVluSkVBQVltgAIBgAGBghIYDEhVhCwVXYQsEYQi3VltbYABhCxOGgocBYQkFVluTUFBgIGELJIaChwFhCQVWW5JQUGBAYQs1hoKHAWEJxFZbkVBQklCSUJJWW2AAYGCCAZBQYQtUYACDAYZhChlWW2ELYWAggwGFYQoZVlthC25gQIMBhGEKwlZblJNQUFBQVltgAIFRkFCRkFBWW2AAgZBQkpFQUFZbYABbg4EQFWELqleAggFRgYQBUmAggQGQUGELj1Zbg4ERFWELuVdgAISEAVJbUFBQUFZbYABhC8qCYQt2VlthC9SBhWELgVZbk1BhC+SBhWAghgFhC4xWW4CEAZFQUJKRUFBWW2AAYQv8goRhC79WW5FQgZBQkpFQUFZbYABgYIIBkFBhDBxgAIMBhmEKGVZbYQwpYCCDAYVhChlWW2EMNmBAgwGEYQoZVluUk1BQUFBWW2AAgWADC5BQkZBQVlthDFSBYQw+VluBFGEMX1dgAID9W1BWW2AAgVGQUGEMcYFhDEtWW5KRUFBWW2AAgVGQUGEMhoFhCkNWW5KRUFBWW2AAgGBAg4UDEhVhDKNXYQyiYQi3VltbYABhDLGFgoYBYQxiVluSUFBgIGEMwoWChgFhDHdWW5FQUJJQkpBQVltgAGBAggGQUGEM4WAAgwGFYQoZVlthDO5gIIMBhGEKwlZbk5JQUFBWW2AAYQ0AgmEIvFZbkFCRkFBWW2ENEIFhDPVWW4EUYQ0bV2AAgP1bUFZbYACBUZBQYQ0tgWENB1ZbkpFQUFZbYACAYECDhQMSFWENSldhDUlhCLdWW1tgAGENWIWChgFhDGJWW5JQUGAgYQ1phYKGAWENHlZbkVBQklCSkFBWW2AAYGCCAZBQYQ2IYACDAYZhChlWW2ENlWAggwGFYQoZVlthDaJgQIMBhGEJeVZblJNQUFBQVltgAGAggoQDEhVhDcBXYQ2/YQi3VltbYABhDc6EgoUBYQxiVluRUFCSkVBQVltgAIFRkFBhDeaBYQmtVluSkVBQVltgAIBgQIOFAxIVYQ4DV2EOAmEIt1ZbW2AAYQ4RhYKGAWEMYlZbklBQYCBhDiKFgoYBYQ3XVluRUFCSUJKQUFb+omRpcGZzWCISIAvgzxSAPd4GK03+onoBR8vsTxKYaN5nFeNEylMdJMwZZHNvbGNDAAgOADMigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMCaDDoDGIAIShYKFAAAAAAAAAAAAAAAAAAAAAAAAAQAcgcKAxiACBABUhYKCQoCGAIQ/7LFDQoJCgIYYhCAs8UN"},{"b64Body":"Cg8KCQjPsPqsBhDxARICGAISAhgDGOC2iyAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGPoHEgMY/gc=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwy71Qb5jCtMw+VehahBh8mz2FS9hCrjZykd+IHiBDzpyC9pUByFFDsTFdkLa3s3v4GgwIi7H6rAYQ+tuz7AIiDwoJCM+w+qwGEPEBEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjQsPqsBhD3ARICGAISAhgDGOC2iyAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGIAIEgMY/gc=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw3/EHJAmkD5M3pLFFKNG4/v/8y0qndBUqZgnZHhrIqKPNauw5vOiL1nq4MkGm259PGgwIjLH6rAYQ+sCzvAEiDwoJCNCw+qwGEPcBEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjQsPqsBhD9ARICGAISAhgDGNPtlwgiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjqoCCAoDGP4HGgFh","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1gBcgEBEjArYjdRZLu0lUhH+H5ILV9qdTgCevKKoTept8hVaGnCjVnAzm9XGddMhAr+dJb9ZhoaDAiMsfqsBhCEttS9AyIPCgkI0LD6rAYQ/QESAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWhIKAxj+BxoLCgIYABIDGP0HGAE="},{"b64Body":"Cg8KCQjRsPqsBhCFAhICGAISAhgDGNPtlwgiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjqoCCAoDGP4HGgFi","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1gCcgECEjDTQZUzxBxBREP0dDjrhPITHM7MHWdQj7aVQoSbx5MPUVmAmioqCr/wIKA5q+yYEnUaDAiNsfqsBhD/tuvwASIPCgkI0bD6rAYQhQISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWhIKAxj+BxoLCgIYABIDGP0HGAI="},{"b64Body":"Cg8KCQjSsPqsBhCNAhICGAISAhgDGNPtlwgiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjqoCCAoDGP4HGgFj","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1gDcgEDEjAgF6Qxd8xKBUtgh5WlkiAcC4Vt1OtjdUiADdyP/NbA0VKWNlO7akRW9f1AfD4viVwaCwiOsfqsBhCOocgjIg8KCQjSsPqsBhCNAhICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgBaEgoDGP4HGgsKAhgAEgMY/QcYAw=="},{"b64Body":"Cg8KCQjSsPqsBhCRAhICGAISAhgDGIfiPCICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOciMSIQoDGP4HGgwKAxj9BxIDGPoHGAEaDAoDGP0HEgMY+gcYAg==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw14fZgwklBYj64Pn//gWc3Qvb7bK6T4QXSJakk+N03vf0qDo6L/W6wIQ2JnF8isftGgwIjrH6rAYQ38uJpQIiDwoJCNKw+qwGEJECEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAFohCgMY/gcaDAoDGP0HEgMY+gcYARoMCgMY/QcSAxj6BxgC"},{"b64Body":"ChAKCQjTsPqsBhCTAhIDGPoHEgIYAxjAvaOpASICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOOnAKAxiACBDAlrECImRcQPVXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB","b64Record":"CiUIFiIDGIAIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjASahPIYZtFeqWc0ai0g9nvQ7RuZhr8dfJYHSS56xt8NjQLfsyUshLQKUGCBoqgDnAaCwiPsfqsBhDdk6RTIhAKCQjTsPqsBhCTAhIDGPoHKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCA/rWHATrCBQoDGIAIEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASKAAgAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAACAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAogJL0ATKQAwoDGP4HEoACAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAIAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAABogFzB+qzmrYQfoiZhFrT1ZvZZT8gDyIJIEicorWTdpbDEaIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAGiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+yIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFSGQoKCgIYYhCA/OuOAgoLCgMY+gcQ//vrjgI="},{"b64Body":"ChIKCQjTsPqsBhCTAhIDGPoHIAGCAxUSEwoDGP4HEgMYgAgaAxj7ByoCCAE=","b64Record":"CgIIFhIwZ9MGbgmKudQWSA36hM7DHEJqM2A9pPy8KYmUkzRf6ww4dHOCx+xfkOhOJ9ie6Ap6GgsIj7H6rAYQ3pOkUyISCgkI07D6rAYQkwISAxj6ByABOpsBCgMY5wISIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWKOL9KlDz6aoCYmQ2dgXKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABagMYgAhSAHoLCI+x+qwGEN2TpFM="}]},"htsTokenAllowance":{"placeholderNum":1025,"encodedItems":[{"b64Body":"Cg8KCQjXsPqsBhCvAhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloyCiISIHpBRL5K3Y0sGtICjfNptWui91+LLGkUE15SmvIbYEiNEICglKWNHUoFCIDO2gM=","b64Record":"CiUIFhIDGIIIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDqM/8M/7g2eXCJnR4kRUIITHDpQ3lpmca2Mnnkr9BETMjvSt6BvDVteKQ8nTrfSRgaCwiUsfqsBhCynugGIg8KCQjXsPqsBhCvAhICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUhsKCwoCGAIQ/7+oypo6CgwKAxiCCBCAwKjKmjo="},{"b64Body":"Cg8KCQjYsPqsBhCxAhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISII5DzYVxerRJ3McG9drMCG3cscSs+SUm1Ib8FStEXXkuEICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGIMIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCJ6V4rpc2TaDPAOMx5f8xzor3sJYIZIX1olq18wpMa1O4YQEeyopVa8WOrO1FOHhMaDAiUsfqsBhD3l9SIAiIPCgkI2LD6rAYQsQISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxiDCBCAqNa5Bw=="},{"b64Body":"Cg8KCQjZsPqsBhCzAhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIOx0H4uExHlDLWlShzS+/kbfuwWMkASngkmIs/qQMjH/EICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGIQIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDAsz2CPmOhpegk65twk2hK+3VHnMNKfr5S2P9cTxFG8cJXItGxbzIrl8l358urpPIaCwiVsfqsBhCi8+oGIg8KCQjZsPqsBhCzAhICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUhkKCgoCGAIQ/6fWuQcKCwoDGIQIEICo1rkH"},{"b64Body":"Cg8KCQjZsPqsBhC1AhICGAISAhgDGL7W8vsCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAX0KDWZ1bmdpYmxlVG9rZW4SCFpTUEtGUU1GIAoqAxiECDIiEiDo+FTdIgN/9aMD54bfLdlquMBjVMiebhe+v2WPRVg8XFIiEiDo+FTdIgN/9aMD54bfLdlquMBjVMiebhe+v2WPRVg8XGoMCJX/1LAGEJbK0/kBkAEBmAHoBw==","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGIUIEjAIAtXKvZuVYTiiAZZkiLuWMa6ns7tBulb5BmKJS4M/IRL84oSAOyfPx63Y7gMollEaDAiVsfqsBhDAz4//ASIPCgkI2bD6rAYQtQISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWg4KAxiFCBIHCgMYhAgQFHIKCgMYhQgSAxiECA=="},{"b64Body":"Cg8KCQjasPqsBhC3AhICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjgESCwiW/9SwBhDA7cwTGm0KIhIgK4tXil2Cw4EkhWYSqaQFIo0MvpbfEcWin0ENo+0M3T0KIzohAo7sg48ss+hAxa73pD3FGBoC6Ft8MLMehOalpabqqK2BCiISIE9KhFApLnkjmCEG6X88MfucfbNOCnsY2djLvIB/eyyyIgxIZWxsbyBXb3JsZCEqADIA","b64Record":"CiUIFhoDGIYIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBv7rQjt1NZ/uGLjBZx+1D80idKpWGNzzlBw7TXQ1flScufjc5pqYK8QpqProwqqZkaCwiWsfqsBhC5n/kZIg8KCQjasPqsBhC3AhICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgA="},{"b64Body":"Cg8KCQjasPqsBhC7AhICGAISAhgDGIydjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxiGCCKAIDYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMGU2MjgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDA2MjU3NjAwMDM1NjBlMDFjODA2MzFhZTFlN2JlMTQ2MTAwNjc1NzgwNjMyZTU1ZTFkNjE0NjEwMDk3NTc4MDYzNWM0MGY1NTcxNDYxMDBjNzU3ODA2MzljYmEzY2RjMTQ2MTAwZjc1NzgwNjNiZmFkM2RiMDE0NjEwMTI3NTc4MDYzZDg5NTgzYWQxNDYxMDE1NzU3NWI2MDAwODBmZDViNjEwMDgxNjAwNDgwMzYwMzgxMDE5MDYxMDA3YzkxOTA2MTA5MWE1NjViNjEwMTg3NTY1YjYwNDA1MTYxMDA4ZTkxOTA2MTA5ODg1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMGIxNjAwNDgwMzYwMzgxMDE5MDYxMDBhYzkxOTA2MTA5ZDk1NjViNjEwMWE1NTY1YjYwNDA1MTYxMDBiZTkxOTA2MTBhMjg1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMGUxNjAwNDgwMzYwMzgxMDE5MDYxMDBkYzkxOTA2MTBhNmY1NjViNjEwMWMxNTY1YjYwNDA1MTYxMDBlZTkxOTA2MTA5ODg1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMTExNjAwNDgwMzYwMzgxMDE5MDYxMDEwYzkxOTA2MTA5MWE1NjViNjEwMWRkNTY1YjYwNDA1MTYxMDExZTkxOTA2MTBhZDE1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMTQxNjAwNDgwMzYwMzgxMDE5MDYxMDEzYzkxOTA2MTBhZWM1NjViNjEwMWZiNTY1YjYwNDA1MTYxMDE0ZTkxOTA2MTA5ODg1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMTcxNjAwNDgwMzYwMzgxMDE5MDYxMDE2YzkxOTA2MTBhZWM1NjViNjEwMjE3NTY1YjYwNDA1MTYxMDE3ZTkxOTA2MTA5ODg1NjViNjA0MDUxODA5MTAzOTBmMzViNjAwMDgwNjEwMTk1ODU4NTg1NjEwMzBjNTY1YjgwOTM1MDgxOTI1MDUwNTA1MDkzOTI1MDUwNTA1NjViNjAwMDgwNjEwMWIyODQ4NDYxMDQzNDU2NWI4MDkzNTA4MTkyNTA1MDUwNTA5MjkxNTA1MDU2NWI2MDAwNjAxNjYwMDMwYjYxMDFkMzg1ODU4NTYxMDU1OTU2NWIxNDkwNTA5MzkyNTA1MDUwNTY1YjYwMDA4MDYxMDFlYjg1ODU4NTYxMDY3NDU2NWI4MDkzNTA4MTkyNTA1MDUwNTA5MzkyNTA1MDUwNTY1YjYwMDA2MDE2NjAwMzBiNjEwMjBkODU4NTg1NjEwNzljNTY1YjE0OTA1MDkzOTI1MDUwNTA1NjViNjAwMDYwNjA2MTAxNjc3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzNzMzNmFhZjA2MGUwMWI4Njg2ODY2MDQwNTE2MDI0MDE2MTAyNTE5MzkyOTE5MDYxMGIzZjU2NWI2MDQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI5MDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTAyYmI5MTkwNjEwYmYwNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTg1NWFmNDkxNTA1MDNkODA2MDAwODExNDYxMDJmNjU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMDJmYjU2NWI2MDYwOTE1MDViNTA4MDkyNTA4MTkzNTA1MDUwNTA5MzkyNTA1MDUwNTY1YjYwMDA4MDYwMDA4MDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjNmNDlmNDBkYjYwZTAxYjg4ODg4ODYwNDA1MTYwMjQwMTYxMDM0ODkzOTI5MTkwNjEwYzA3NTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMDNiMjkxOTA2MTBiZjA1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMDNlZjU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMDNmNDU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEwNDA3NTc2MDE1NjAwMDYxMDQxYzU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMDQxYjkxOTA2MTBjOGM1NjViNWI4MTYwMDMwYjkxNTA4MDk0NTA4MTk1NTA1MDUwNTA1MDkzNTA5MzkxNTA1MDU2NWI2MDAwODA2MDAwODA2MTAxNjc3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzMDk4ZjIzNjY2MGUwMWI4Nzg3NjA0MDUxNjAyNDAxNjEwNDZlOTI5MTkwNjEwY2NjNTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMDRkODkxOTA2MTBiZjA1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMDUxNTU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMDUxYTU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEwNTJkNTc2MDE1NjAwMDYxMDU0MjU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMDU0MTkxOTA2MTBkMzM1NjViNWI4MTYwMDMwYjkxNTA4MDk0NTA4MTk1NTA1MDUwNTA1MDkyNTA5MjkwNTA1NjViNjAwMDgwNjAwMDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjMzNjc2MDVjYTYwZTAxYjg3ODc4NzYwNDA1MTYwMjQwMTYxMDU5NDkzOTI5MTkwNjEwZDczNTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMDVmZTkxOTA2MTBiZjA1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMDYzYjU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMDY0MDU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEwNjUxNTc2MDE1NjEwNjY2NTY1YjgwODA2MDIwMDE5MDUxODEwMTkwNjEwNjY1OTE5MDYxMGRhYTU2NWI1YjYwMDMwYjkyNTA1MDUwOTM5MjUwNTA1MDU2NWI2MDAwODA2MDAwODA2MTAxNjc3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzOTI3ZGExMDU2MGUwMWI4ODg4ODg2MDQwNTE2MDI0MDE2MTA2YjA5MzkyOTE5MDYxMGMwNzU2NWI2MDQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI5MDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTA3MWE5MTkwNjEwYmYwNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NjVhZjE5MTUwNTAzZDgwNjAwMDgxMTQ2MTA3NTc1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTA3NWM1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA4MTYxMDc2ZjU3NjAxNTYwMDA2MTA3ODQ1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTA3ODM5MTkwNjEwZGVjNTY1YjViODE2MDAzMGI5MTUwODA5NDUwODE5NTUwNTA1MDUwNTA5MzUwOTM5MTUwNTA1NjViNjAwMDgwNjAwMDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjNlMWYyMWM2NzYwZTAxYjg3ODc4NzYwNDA1MTYwMjQwMTYxMDdkNzkzOTI5MTkwNjEwYjNmNTY1YjYwNDA1MTYwMjA4MTgzMDM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwV/0/94BYeUOm8CWqXW8Uldb+Z7+PY5xizkxiTXzkHoH/p/lN0cJj/fhzrc2a52sZGgwIlrH6rAYQyPeCqgIiDwoJCNqw+qwGELsCEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjbsPqsBhDBAhICGAISAhgDGO/WvTsiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBjBoSAxiGCCKEGjAzODE1MjkwNjA0MDUyOTA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjEwODQxOTE5MDYxMGJmMDU2NWI2MDAwNjA0MDUxODA4MzAzODE2MDAwODY1YWYxOTE1MDUwM2Q4MDYwMDA4MTE0NjEwODdlNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjEwODgzNTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTA4OTQ1NzYwMTU2MTA4YTk1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTA4YTg5MTkwNjEwZGFhNTY1YjViNjAwMzBiOTI1MDUwNTA5MzkyNTA1MDUwNTY1YjYwMDA4MGZkNWI2MDAwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIxNjkwNTA5MTkwNTA1NjViNjAwMDYxMDhlNzgyNjEwOGJjNTY1YjkwNTA5MTkwNTA1NjViNjEwOGY3ODE2MTA4ZGM1NjViODExNDYxMDkwMjU3NjAwMDgwZmQ1YjUwNTY1YjYwMDA4MTM1OTA1MDYxMDkxNDgxNjEwOGVlNTY1YjkyOTE1MDUwNTY1YjYwMDA4MDYwMDA2MDYwODQ4NjAzMTIxNTYxMDkzMzU3NjEwOTMyNjEwOGI3NTY1YjViNjAwMDYxMDk0MTg2ODI4NzAxNjEwOTA1NTY1YjkzNTA1MDYwMjA2MTA5NTI4NjgyODcwMTYxMDkwNTU2NWI5MjUwNTA2MDQwNjEwOTYzODY4Mjg3MDE2MTA5MDU1NjViOTE1MDUwOTI1MDkyNTA5MjU2NWI2MDAwODExNTE1OTA1MDkxOTA1MDU2NWI2MTA5ODI4MTYxMDk2ZDU2NWI4MjUyNTA1MDU2NWI2MDAwNjAyMDgyMDE5MDUwNjEwOTlkNjAwMDgzMDE4NDYxMDk3OTU2NWI5MjkxNTA1MDU2NWI2MDAwODE5MDUwOTE5MDUwNTY1YjYxMDliNjgxNjEwOWEzNTY1YjgxMTQ2MTA5YzE1NzYwMDA4MGZkNWI1MDU2NWI2MDAwODEzNTkwNTA2MTA5ZDM4MTYxMDlhZDU2NWI5MjkxNTA1MDU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMDlmMDU3NjEwOWVmNjEwOGI3NTY1YjViNjAwMDYxMDlmZTg1ODI4NjAxNjEwOTA1NTY1YjkyNTA1MDYwMjA2MTBhMGY4NTgyODYwMTYxMDljNDU2NWI5MTUwNTA5MjUwOTI5MDUwNTY1YjYxMGEyMjgxNjEwOGRjNTY1YjgyNTI1MDUwNTY1YjYwMDA2MDIwODIwMTkwNTA2MTBhM2Q2MDAwODMwMTg0NjEwYTE5NTY1YjkyOTE1MDUwNTY1YjYxMGE0YzgxNjEwOTZkNTY1YjgxMTQ2MTBhNTc1NzYwMDA4MGZkNWI1MDU2NWI2MDAwODEzNTkwNTA2MTBhNjk4MTYxMGE0MzU2NWI5MjkxNTA1MDU2NWI2MDAwODA2MDAwNjA2MDg0ODYwMzEyMTU2MTBhODg1NzYxMGE4NzYxMDhiNzU2NWI1YjYwMDA2MTBhOTY4NjgyODcwMTYxMDkwNTU2NWI5MzUwNTA2MDIwNjEwYWE3ODY4Mjg3MDE2MTA5MDU1NjViOTI1MDUwNjA0MDYxMGFiODg2ODI4NzAxNjEwYTVhNTY1YjkxNTA1MDkyNTA5MjUwOTI1NjViNjEwYWNiODE2MTA5YTM1NjViODI1MjUwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDYxMGFlNjYwMDA4MzAxODQ2MTBhYzI1NjViOTI5MTUwNTA1NjViNjAwMDgwNjAwMDYwNjA4NDg2MDMxMjE1NjEwYjA1NTc2MTBiMDQ2MTA4Yjc1NjViNWI2MDAwNjEwYjEzODY4Mjg3MDE2MTA5MDU1NjViOTM1MDUwNjAyMDYxMGIyNDg2ODI4NzAxNjEwOTA1NTY1YjkyNTA1MDYwNDA2MTBiMzU4NjgyODcwMTYxMDljNDU2NWI5MTUwNTA5MjUwOTI1MDkyNTY1YjYwMDA2MDYwODIwMTkwNTA2MTBiNTQ2MDAwODMwMTg2NjEwYTE5NTY1YjYxMGI2MTYwMjA4MzAxODU2MTBhMTk1NjViNjEwYjZlNjA0MDgzMDE4NDYxMGFjMjU2NWI5NDkzNTA1MDUwNTA1NjViNjAwMDgxNTE5MDUwOTE5MDUwNTY1YjYwMDA4MTkwNTA5MjkxNTA1MDU2NWI2MDAwNWI4MzgxMTAxNTYxMGJhYTU3ODA4MjAxNTE4MTg0MDE1MjYwMjA4MTAxOTA1MDYxMGI4ZjU2NWI4MzgxMTExNTYxMGJiOTU3NjAwMDg0ODQwMTUyNWI1MDUwNTA1MDU2NWI2MDAwNjEwYmNhODI2MTBiNzY1NjViNjEwYmQ0ODE4NTYxMGI4MTU2NWI5MzUwNjEwYmU0ODE4NTYwMjA4NjAxNjEwYjhjNTY1YjgwODQwMTkxNTA1MDkyOTE1MDUwNTY1YjYwMDA2MTBiZmM4Mjg0NjEwYmJmNTY1YjkxNTA4MTkwNTA5MjkxNTA1MDU2NWI2MDAwNjA2MDgyMDE5MDUwNjEwYzFjNjAwMDgzMDE4NjYxMGExOTU2NWI2MTBjMjk2MDIwODMwMTg1NjEwYTE5NTY1YjYxMGMzNjYwNDA4MzAxODQ2MTBhMTk1NjViOTQ5MzUwNTA1MDUwNTY1YjYwMDA4MTYwMDMwYjkwNTA5MTkwNTA1NjViNjEwYzU0ODE2MTBjM2U1NjViODExNDYxMGM1ZjU3NjAwMDgwZmQ1YjUwNTY1YjYwMDA4MTUxOTA1MDYxMGM3MTgxNjEwYzRiNTY1YjkyOTE1MDUwNTY1YjYwMDA4MTUxOTA1MDYxMGM4NjgxNjEwYTQzNTY1YjkyOTE1MDUwNTY1YjYwMDA4MDYwNDA4Mzg1MDMxMjE1NjEwY2EzNTc2MTBjYTI2MTA4Yjc1NjViNWI2MDAwNjEwY2IxODU4Mjg2MDE2MTBjNjI1NjViOTI1MDUwNjAyMDYxMGNjMjg1ODI4NjAxNjEwYzc3NTY1YjkxNTA1MDkyNTA5MjkwNTA1NjViNjAwMDYwNDA4MjAxOTA1MDYxMGNlMTYwMDA4MzAxODU2MTBhMTk1NjViNjEwY2VlNjAyMDgzMDE4NDYxMGFjMjU2NWI5MzkyNTA1MDUwNTY1YjYwMDA2MTBkMDA4MjYxMDhiYzU2NWI5MDUwOTE5MDUwNTY1YjYxMGQxMDgxNjEwY2Y1NTY1YjgxMTQ2MTBkMWI1NzYwMDA4MGZkNWI1MDU2NWI2MDAwODE1MTkwNTA2MTBkMmQ4MTYxMGQwNzU2NWI5MjkxNTA1MDU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMGQ0YTU3NjEwZDQ5NjEwOGI3NTY1YjViNjAwMDYxMGQ1ODg1ODI4NjAxNjEwYzYyNTY1YjkyNTA1MDYwMjA2MTBkNjk4NTgyODYwMTYxMGQxZTU2NWI5MTUwNTA5MjUwOTI5MDUwNTY1YjYwMDA2MDYwODIwMTkwNTA2MTBkODg2MDAwODMwMTg2NjEwYTE5NTY1YjYxMGQ5NTYwMjA4MzAxODU2MTBhMTk1NjViNjEwZGEyNjA0MDgzMDE4NDYxMDk3OTU2NWI5NDkzNTA1MDUwNTA1NjViNjAwMDYwMjA4Mjg0MDMxMjE1NjEwZGMwNTc2MTBkYmY2MTA4Yjc1NjViNWI2MDAwNjEwZGNlODQ4Mjg1MDE2MTBjNjI1NjViOTE1MDUwOTI5MTUwNTA1NjViNjAwMDgxNTE5MDUwNjEwZGU2ODE2MTA5YWQ1NjViOTI5MTUwNTA1NjViNjAwMDgwNjA0MDgzODUwMzEyMTU2MTBlMDM1NzYxMGUwMjYxMDhiNzU2NWI1YjYwMDA2MTBlMTE4NTgyODYwMTYxMGM2MjU2NWI5MjUwNTA2MDIwNjEwZTIyODU4Mjg2MDE2MTBkZDc1NjViOTE1MDUwOTI1MDkyOTA1MDU2ZmVhMjY0Njk3MDY2NzM1ODIyMTIyMDBiZTBjZjE0ODAzZGRlMDYyYjRkZmVhMjdhMDE0N2NiZWM0ZjEyOTg2OGRlNjcxNWUzNDRjYTUzMWQyNGNjMTk2NDczNmY2YzYzNDMwMDA4MGUwMDMz","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwsCHNeR4LosjSzfJDmcpy8iJPDD9gRstZCAY5rWJFR2FTEOflh6I8fF0qJDNwIw+6GgsIl7H6rAYQysC3UyIPCgkI27D6rAYQwQISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjbsPqsBhDDAhICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGIYIGiISIKdda/XGBDIoQXZd0nKiNQ/nkCDDlbBV+etijqAYDJFQIJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGIcIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDh4H63ackOezqGS2waqQnv2rSBuozV5wA9aLLlbK7O2VtrQqbn2/dAJDmA+KgjgzUaDAiXsfqsBhCz5cvBAiIPCgkI27D6rAYQwwISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQpcfCgMYhwgS4hxggGBAUjSAFWEAEFdgAID9W1BgBDYQYQBiV2AANWDgHIBjGuHnvhRhAGdXgGMuVeHWFGEAl1eAY1xA9VcUYQDHV4BjnLo83BRhAPdXgGO/rT2wFGEBJ1eAY9iVg60UYQFXV1tgAID9W2EAgWAEgDYDgQGQYQB8kZBhCRpWW2EBh1ZbYEBRYQCOkZBhCYhWW2BAUYCRA5DzW2EAsWAEgDYDgQGQYQCskZBhCdlWW2EBpVZbYEBRYQC+kZBhCihWW2BAUYCRA5DzW2EA4WAEgDYDgQGQYQDckZBhCm9WW2EBwVZbYEBRYQDukZBhCYhWW2BAUYCRA5DzW2EBEWAEgDYDgQGQYQEMkZBhCRpWW2EB3VZbYEBRYQEekZBhCtFWW2BAUYCRA5DzW2EBQWAEgDYDgQGQYQE8kZBhCuxWW2EB+1ZbYEBRYQFOkZBhCYhWW2BAUYCRA5DzW2EBcWAEgDYDgQGQYQFskZBhCuxWW2ECF1ZbYEBRYQF+kZBhCYhWW2BAUYCRA5DzW2AAgGEBlYWFhWEDDFZbgJNQgZJQUFBQk5JQUFBWW2AAgGEBsoSEYQQ0VluAk1CBklBQUFCSkVBQVltgAGAWYAMLYQHThYWFYQVZVlsUkFCTklBQUFZbYACAYQHrhYWFYQZ0VluAk1CBklBQUFCTklBQUFZbYABgFmADC2ECDYWFhWEHnFZbFJBQk5JQUFBWW2AAYGBhAWdz//////////////////////////8WY3M2qvBg4BuGhoZgQFFgJAFhAlGTkpGQYQs/VltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhAruRkGEL8FZbYABgQFGAgwOBhVr0kVBQPYBgAIEUYQL2V2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YQL7VltgYJFQW1CAklCBk1BQUFCTklBQUFZbYACAYACAYQFnc///////////////////////////FmP0n0DbYOAbiIiIYEBRYCQBYQNIk5KRkGEMB1ZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQOykZBhC/BWW2AAYEBRgIMDgWAAhlrxkVBQPYBgAIEUYQPvV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YQP0VltgYJFQW1CRUJFQgWEEB1dgFWAAYQQcVluAgGAgAZBRgQGQYQQbkZBhDIxWW1uBYAMLkVCAlFCBlVBQUFBQk1CTkVBQVltgAIBgAIBhAWdz//////////////////////////8WYwmPI2Zg4BuHh2BAUWAkAWEEbpKRkGEMzFZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQTYkZBhC/BWW2AAYEBRgIMDgWAAhlrxkVBQPYBgAIEUYQUVV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YQUaVltgYJFQW1CRUJFQgWEFLVdgFWAAYQVCVluAgGAgAZBRgQGQYQVBkZBhDTNWW1uBYAMLkVCAlFCBlVBQUFBQklCSkFBWW2AAgGAAYQFnc///////////////////////////FmM2dgXKYOAbh4eHYEBRYCQBYQWUk5KRkGENc1ZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQX+kZBhC/BWW2AAYEBRgIMDgWAAhlrxkVBQPYBgAIEUYQY7V2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YQZAVltgYJFQW1CRUJFQgWEGUVdgFWEGZlZbgIBgIAGQUYEBkGEGZZGQYQ2qVltbYAMLklBQUJOSUFBQVltgAIBgAIBhAWdz//////////////////////////8WY5J9oQVg4BuIiIhgQFFgJAFhBrCTkpGQYQwHVltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhBxqRkGEL8FZbYABgQFGAgwOBYACGWvGRUFA9gGAAgRRhB1dXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hB1xWW2BgkVBbUJFQkVCBYQdvV2AVYABhB4RWW4CAYCABkFGBAZBhB4ORkGEN7FZbW4FgAwuRUICUUIGVUFBQUFCTUJORUFBWW2AAgGAAYQFnc///////////////////////////FmPh8hxnYOAbh4eHYEBRYCQBYQfXk5KRkGELP1ZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQhBkZBhC/BWW2AAYEBRgIMDgWAAhlrxkVBQPYBgAIEUYQh+V2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YQiDVltgYJFQW1CRUJFQgWEIlFdgFWEIqVZbgIBgIAGQUYEBkGEIqJGQYQ2qVltbYAMLklBQUJOSUFBQVltgAID9W2AAc///////////////////////////ghaQUJGQUFZbYABhCOeCYQi8VluQUJGQUFZbYQj3gWEI3FZbgRRhCQJXYACA/VtQVltgAIE1kFBhCRSBYQjuVluSkVBQVltgAIBgAGBghIYDEhVhCTNXYQkyYQi3VltbYABhCUGGgocBYQkFVluTUFBgIGEJUoaChwFhCQVWW5JQUGBAYQljhoKHAWEJBVZbkVBQklCSUJJWW2AAgRUVkFCRkFBWW2EJgoFhCW1WW4JSUFBWW2AAYCCCAZBQYQmdYACDAYRhCXlWW5KRUFBWW2AAgZBQkZBQVlthCbaBYQmjVluBFGEJwVdgAID9W1BWW2AAgTWQUGEJ04FhCa1WW5KRUFBWW2AAgGBAg4UDEhVhCfBXYQnvYQi3VltbYABhCf6FgoYBYQkFVluSUFBgIGEKD4WChgFhCcRWW5FQUJJQkpBQVlthCiKBYQjcVluCUlBQVltgAGAgggGQUGEKPWAAgwGEYQoZVluSkVBQVlthCkyBYQltVluBFGEKV1dgAID9W1BWW2AAgTWQUGEKaYFhCkNWW5KRUFBWW2AAgGAAYGCEhgMSFWEKiFdhCodhCLdWW1tgAGEKloaChwFhCQVWW5NQUGAgYQqnhoKHAWEJBVZbklBQYEBhCriGgocBYQpaVluRUFCSUJJQklZbYQrLgWEJo1ZbglJQUFZbYABgIIIBkFBhCuZgAIMBhGEKwlZbkpFQUFZbYACAYABgYISGAxIVYQsFV2ELBGEIt1ZbW2AAYQsThoKHAWEJBVZbk1BQYCBhCySGgocBYQkFVluSUFBgQGELNYaChwFhCcRWW5FQUJJQklCSVltgAGBgggGQUGELVGAAgwGGYQoZVlthC2FgIIMBhWEKGVZbYQtuYECDAYRhCsJWW5STUFBQUFZbYACBUZBQkZBQVltgAIGQUJKRUFBWW2AAW4OBEBVhC6pXgIIBUYGEAVJgIIEBkFBhC49WW4OBERVhC7lXYACEhAFSW1BQUFBWW2AAYQvKgmELdlZbYQvUgYVhC4FWW5NQYQvkgYVgIIYBYQuMVluAhAGRUFCSkVBQVltgAGEL/IKEYQu/VluRUIGQUJKRUFBWW2AAYGCCAZBQYQwcYACDAYZhChlWW2EMKWAggwGFYQoZVlthDDZgQIMBhGEKGVZblJNQUFBQVltgAIFgAwuQUJGQUFZbYQxUgWEMPlZbgRRhDF9XYACA/VtQVltgAIFRkFBhDHGBYQxLVluSkVBQVltgAIFRkFBhDIaBYQpDVluSkVBQVltgAIBgQIOFAxIVYQyjV2EMomEIt1ZbW2AAYQyxhYKGAWEMYlZbklBQYCBhDMKFgoYBYQx3VluRUFCSUJKQUFZbYABgQIIBkFBhDOFgAIMBhWEKGVZbYQzuYCCDAYRhCsJWW5OSUFBQVltgAGENAIJhCLxWW5BQkZBQVlthDRCBYQz1VluBFGENG1dgAID9W1BWW2AAgVGQUGENLYFhDQdWW5KRUFBWW2AAgGBAg4UDEhVhDUpXYQ1JYQi3VltbYABhDViFgoYBYQxiVluSUFBgIGENaYWChgFhDR5WW5FQUJJQkpBQVltgAGBgggGQUGENiGAAgwGGYQoZVlthDZVgIIMBhWEKGVZbYQ2iYECDAYRhCXlWW5STUFBQUFZbYABgIIKEAxIVYQ3AV2ENv2EIt1ZbW2AAYQ3OhIKFAWEMYlZbkVBQkpFQUFZbYACBUZBQYQ3mgWEJrVZbkpFQUFZbYACAYECDhQMSFWEOA1dhDgJhCLdWW1tgAGEOEYWChgFhDGJWW5JQUGAgYQ4ihYKGAWEN11ZbkVBQklCSkFBW/qJkaXBmc1giEiAL4M8UgD3eBitN/qJ6AUfL7E8SmGjeZxXjRMpTHSTMGWRzb2xjQwAIDgAzIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACjAmgw6AxiHCEoWChQAAAAAAAAAAAAAAAAAAAAAAAAEB3IHCgMYhwgQAVIWCgkKAhgCEP+yxQ0KCQoCGGIQgLPFDQ=="},{"b64Body":"Cg8KCQjcsPqsBhDJAhICGAISAhgDGOC2iyAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGIIIEgMYhQg=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwPaggL663b/Ki1eDu4372Yn1xCskP4SuIPvHagCcv/SHUTbqTkwjuthArN4/mwDYQGgsImLH6rAYQ7rPDZiIPCgkI3LD6rAYQyQISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjcsPqsBhDLAhICGAISAhgDGOufNiICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOchkSFwoDGIUIEgcKAxiECBATEgcKAxiCCBAU","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwt9+GHUS8NE0hM4qJYGbmBNsSwNZsK9G0WJ6R969D7E4qX/qF/kd2baRw6lgK9yWoGgwImLH6rAYQoMjwzwIiDwoJCNyw+qwGEMsCEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAFoXCgMYhQgSBwoDGIIIEBQSBwoDGIQIEBM="},{"b64Body":"Cg8KCQjdsPqsBhDMAhICGAISAhgDGIDC1y8iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIDExoRCgMYhQgSAxiCCBoDGIMIIAI=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwvXp7i5T0cltj6we9H/uJqrbayCoY+aZ+8jY3LAclC0a7Pme0daUbk3g1wsNQBAnTGgsImbH6rAYQ5LHfdCIPCgkI3bD6rAYQzAISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"ChAKCQjdsPqsBhDOAhIDGIIIEgIYAxjgrLEDIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46bwoDGIcIEKCNBiJknLo83AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAw==","b64Record":"CiUIFiIDGIcIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDT52uXRxhq+Ui+6xsEp40rjOQj0XtPb0Np/DPkHBelRlRMFDxqyJ/cACDPOk7+SewaDAiZsfqsBhDctM7ZAiIQCgkI3bD6rAYQzgISAxiCCCogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wgNfaAjquAgoDGIcIEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAogPEEUhcKCQoCGGIQgK61BQoKCgMYgggQ/621BQ=="},{"b64Body":"ChIKCQjdsPqsBhDOAhIDGIIIIAE6bQoDGOcCEAEiZJJ9oQUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAM=","b64Record":"CgIIFhIwCZWbuCi16QsC1aDRjdHs1qYaMLqXeIvoPEt2YbQUHYvIYqMF0iE2vB5o8WzxbzVJGgwImbH6rAYQ3bTO2QIiEgoJCN2w+qwGEM4CEgMYggggATpOCgMY5wISQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIoZGoDGIcIUgB6DAiZsfqsBhDctM7ZAg=="}]},"htsTokenApprove":{"placeholderNum":1032,"encodedItems":[{"b64Body":"Cg8KCQjisPqsBhDqAhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloyCiISIEgpn/AEffAPts1pLorVhvZTQuObRx93HSKctbs85d4iEICglKWNHUoFCIDO2gM=","b64Record":"CiUIFhIDGIkIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjD6jGjVoqOBJFRpyhiZGY6vZ0X/4o3dPQ/c4vfy0SeWwnp9f0doCOELEZ94t352vqoaDAiesfqsBhCBpseHASIPCgkI4rD6rAYQ6gISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIbCgsKAhgCEP+/qMqaOgoMCgMYiQgQgMCoypo6"},{"b64Body":"Cg8KCQjisPqsBhDsAhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIKIZQ21Y2QwNE3f1tIclBxTnmt4Ff1xDbEE5xy6DqubLEICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGIoIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjC+AKvSZ78cSR4HjFCddc825fQWCMZlQUbitiZrFdlfe7yhqpGBdkr0Wk6bLsif2DYaDAiesfqsBhDOqLzsAiIPCgkI4rD6rAYQ7AISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxiKCBCAqNa5Bw=="},{"b64Body":"Cg8KCQjjsPqsBhDuAhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISILTzySUFduEOSWUvP/XPa5sV4FsidUbF6ViTG3rEHnUQEICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGIsIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjChu7ajbIDg/tfLYtt8hCuBlsGyPm5IJk/vtxVpgiO3TKffssZ+p7JYdtyuN+Ep2jAaDAifsfqsBhCo9bGRASIPCgkI47D6rAYQ7gISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxiLCBCAqNa5Bw=="},{"b64Body":"Cg8KCQjjsPqsBhDwAhICGAISAhgDGL7W8vsCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAX0KDWZ1bmdpYmxlVG9rZW4SCFlaSkNSWFROIAoqAxiLCDIiEiDkgboISJUtEvyYFKCM55Fw2wb/nSM+La6dRa+0MZ2HLVIiEiDkgboISJUtEvyYFKCM55Fw2wb/nSM+La6dRa+0MZ2HLWoMCJ//1LAGEIKrq/ECkAEBmAHoBw==","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGIwIEjD4+6AzcBxx2EZBRHssVzNmUX2TsnH5IC2A0SPssSCG5tkqe9jDQWyRj/hyrfms+PsaDAifsfqsBhCk96P2AiIPCgkI47D6rAYQ8AISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWg4KAxiMCBIHCgMYiwgQFHIKCgMYjAgSAxiLCA=="},{"b64Body":"Cg8KCQjksPqsBhDyAhICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAig/9SwBhC+ufuHARptCiISICEM+mpLESw4KrhWGIsmLBrNuhqlGD/q1/GM24/dj5r4CiM6IQLc4Y9Peo2VX/6tBfP27h5kWnnT/NTSq2DKq+5JgZW1ZwoiEiCbs4iItagnq4qNtFNVN/1zCoQHF8cGdLEwVTxkpiWz7CIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGI0IKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDyis57ncSPVWYC7+fm0tHRSYulmKpscbasGJKFZbBU5nvlT6HZ0dt34KP3Jnskwc4aDAigsfqsBhDFqNmaASIPCgkI5LD6rAYQ8gISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjksPqsBhD2AhICGAISAhgDGIydjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxiNCCKAIDYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMGU2MjgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDA2MjU3NjAwMDM1NjBlMDFjODA2MzFhZTFlN2JlMTQ2MTAwNjc1NzgwNjMyZTU1ZTFkNjE0NjEwMDk3NTc4MDYzNWM0MGY1NTcxNDYxMDBjNzU3ODA2MzljYmEzY2RjMTQ2MTAwZjc1NzgwNjNiZmFkM2RiMDE0NjEwMTI3NTc4MDYzZDg5NTgzYWQxNDYxMDE1NzU3NWI2MDAwODBmZDViNjEwMDgxNjAwNDgwMzYwMzgxMDE5MDYxMDA3YzkxOTA2MTA5MWE1NjViNjEwMTg3NTY1YjYwNDA1MTYxMDA4ZTkxOTA2MTA5ODg1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMGIxNjAwNDgwMzYwMzgxMDE5MDYxMDBhYzkxOTA2MTA5ZDk1NjViNjEwMWE1NTY1YjYwNDA1MTYxMDBiZTkxOTA2MTBhMjg1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMGUxNjAwNDgwMzYwMzgxMDE5MDYxMDBkYzkxOTA2MTBhNmY1NjViNjEwMWMxNTY1YjYwNDA1MTYxMDBlZTkxOTA2MTA5ODg1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMTExNjAwNDgwMzYwMzgxMDE5MDYxMDEwYzkxOTA2MTA5MWE1NjViNjEwMWRkNTY1YjYwNDA1MTYxMDExZTkxOTA2MTBhZDE1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMTQxNjAwNDgwMzYwMzgxMDE5MDYxMDEzYzkxOTA2MTBhZWM1NjViNjEwMWZiNTY1YjYwNDA1MTYxMDE0ZTkxOTA2MTA5ODg1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMTcxNjAwNDgwMzYwMzgxMDE5MDYxMDE2YzkxOTA2MTBhZWM1NjViNjEwMjE3NTY1YjYwNDA1MTYxMDE3ZTkxOTA2MTA5ODg1NjViNjA0MDUxODA5MTAzOTBmMzViNjAwMDgwNjEwMTk1ODU4NTg1NjEwMzBjNTY1YjgwOTM1MDgxOTI1MDUwNTA1MDkzOTI1MDUwNTA1NjViNjAwMDgwNjEwMWIyODQ4NDYxMDQzNDU2NWI4MDkzNTA4MTkyNTA1MDUwNTA5MjkxNTA1MDU2NWI2MDAwNjAxNjYwMDMwYjYxMDFkMzg1ODU4NTYxMDU1OTU2NWIxNDkwNTA5MzkyNTA1MDUwNTY1YjYwMDA4MDYxMDFlYjg1ODU4NTYxMDY3NDU2NWI4MDkzNTA4MTkyNTA1MDUwNTA5MzkyNTA1MDUwNTY1YjYwMDA2MDE2NjAwMzBiNjEwMjBkODU4NTg1NjEwNzljNTY1YjE0OTA1MDkzOTI1MDUwNTA1NjViNjAwMDYwNjA2MTAxNjc3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzNzMzNmFhZjA2MGUwMWI4Njg2ODY2MDQwNTE2MDI0MDE2MTAyNTE5MzkyOTE5MDYxMGIzZjU2NWI2MDQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI5MDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTAyYmI5MTkwNjEwYmYwNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTg1NWFmNDkxNTA1MDNkODA2MDAwODExNDYxMDJmNjU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMDJmYjU2NWI2MDYwOTE1MDViNTA4MDkyNTA4MTkzNTA1MDUwNTA5MzkyNTA1MDUwNTY1YjYwMDA4MDYwMDA4MDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjNmNDlmNDBkYjYwZTAxYjg4ODg4ODYwNDA1MTYwMjQwMTYxMDM0ODkzOTI5MTkwNjEwYzA3NTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMDNiMjkxOTA2MTBiZjA1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMDNlZjU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMDNmNDU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEwNDA3NTc2MDE1NjAwMDYxMDQxYzU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMDQxYjkxOTA2MTBjOGM1NjViNWI4MTYwMDMwYjkxNTA4MDk0NTA4MTk1NTA1MDUwNTA1MDkzNTA5MzkxNTA1MDU2NWI2MDAwODA2MDAwODA2MTAxNjc3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzMDk4ZjIzNjY2MGUwMWI4Nzg3NjA0MDUxNjAyNDAxNjEwNDZlOTI5MTkwNjEwY2NjNTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMDRkODkxOTA2MTBiZjA1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMDUxNTU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMDUxYTU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEwNTJkNTc2MDE1NjAwMDYxMDU0MjU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMDU0MTkxOTA2MTBkMzM1NjViNWI4MTYwMDMwYjkxNTA4MDk0NTA4MTk1NTA1MDUwNTA1MDkyNTA5MjkwNTA1NjViNjAwMDgwNjAwMDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjMzNjc2MDVjYTYwZTAxYjg3ODc4NzYwNDA1MTYwMjQwMTYxMDU5NDkzOTI5MTkwNjEwZDczNTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMDVmZTkxOTA2MTBiZjA1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMDYzYjU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMDY0MDU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEwNjUxNTc2MDE1NjEwNjY2NTY1YjgwODA2MDIwMDE5MDUxODEwMTkwNjEwNjY1OTE5MDYxMGRhYTU2NWI1YjYwMDMwYjkyNTA1MDUwOTM5MjUwNTA1MDU2NWI2MDAwODA2MDAwODA2MTAxNjc3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzOTI3ZGExMDU2MGUwMWI4ODg4ODg2MDQwNTE2MDI0MDE2MTA2YjA5MzkyOTE5MDYxMGMwNzU2NWI2MDQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI5MDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTA3MWE5MTkwNjEwYmYwNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NjVhZjE5MTUwNTAzZDgwNjAwMDgxMTQ2MTA3NTc1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTA3NWM1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA4MTYxMDc2ZjU3NjAxNTYwMDA2MTA3ODQ1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTA3ODM5MTkwNjEwZGVjNTY1YjViODE2MDAzMGI5MTUwODA5NDUwODE5NTUwNTA1MDUwNTA5MzUwOTM5MTUwNTA1NjViNjAwMDgwNjAwMDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjNlMWYyMWM2NzYwZTAxYjg3ODc4NzYwNDA1MTYwMjQwMTYxMDdkNzkzOTI5MTkwNjEwYjNmNTY1YjYwNDA1MTYwMjA4MTgzMDM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwv5Ylx87yZPgEBH/Y1h9NICBagRUIdBTiid5lIhTFuczPG/aY8kiOVOvzVNoswb+SGgwIoLH6rAYQ57CunAMiDwoJCOSw+qwGEPYCEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjlsPqsBhD8AhICGAISAhgDGO/WvTsiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBjBoSAxiNCCKEGjAzODE1MjkwNjA0MDUyOTA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjEwODQxOTE5MDYxMGJmMDU2NWI2MDAwNjA0MDUxODA4MzAzODE2MDAwODY1YWYxOTE1MDUwM2Q4MDYwMDA4MTE0NjEwODdlNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjEwODgzNTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTA4OTQ1NzYwMTU2MTA4YTk1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTA4YTg5MTkwNjEwZGFhNTY1YjViNjAwMzBiOTI1MDUwNTA5MzkyNTA1MDUwNTY1YjYwMDA4MGZkNWI2MDAwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIxNjkwNTA5MTkwNTA1NjViNjAwMDYxMDhlNzgyNjEwOGJjNTY1YjkwNTA5MTkwNTA1NjViNjEwOGY3ODE2MTA4ZGM1NjViODExNDYxMDkwMjU3NjAwMDgwZmQ1YjUwNTY1YjYwMDA4MTM1OTA1MDYxMDkxNDgxNjEwOGVlNTY1YjkyOTE1MDUwNTY1YjYwMDA4MDYwMDA2MDYwODQ4NjAzMTIxNTYxMDkzMzU3NjEwOTMyNjEwOGI3NTY1YjViNjAwMDYxMDk0MTg2ODI4NzAxNjEwOTA1NTY1YjkzNTA1MDYwMjA2MTA5NTI4NjgyODcwMTYxMDkwNTU2NWI5MjUwNTA2MDQwNjEwOTYzODY4Mjg3MDE2MTA5MDU1NjViOTE1MDUwOTI1MDkyNTA5MjU2NWI2MDAwODExNTE1OTA1MDkxOTA1MDU2NWI2MTA5ODI4MTYxMDk2ZDU2NWI4MjUyNTA1MDU2NWI2MDAwNjAyMDgyMDE5MDUwNjEwOTlkNjAwMDgzMDE4NDYxMDk3OTU2NWI5MjkxNTA1MDU2NWI2MDAwODE5MDUwOTE5MDUwNTY1YjYxMDliNjgxNjEwOWEzNTY1YjgxMTQ2MTA5YzE1NzYwMDA4MGZkNWI1MDU2NWI2MDAwODEzNTkwNTA2MTA5ZDM4MTYxMDlhZDU2NWI5MjkxNTA1MDU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMDlmMDU3NjEwOWVmNjEwOGI3NTY1YjViNjAwMDYxMDlmZTg1ODI4NjAxNjEwOTA1NTY1YjkyNTA1MDYwMjA2MTBhMGY4NTgyODYwMTYxMDljNDU2NWI5MTUwNTA5MjUwOTI5MDUwNTY1YjYxMGEyMjgxNjEwOGRjNTY1YjgyNTI1MDUwNTY1YjYwMDA2MDIwODIwMTkwNTA2MTBhM2Q2MDAwODMwMTg0NjEwYTE5NTY1YjkyOTE1MDUwNTY1YjYxMGE0YzgxNjEwOTZkNTY1YjgxMTQ2MTBhNTc1NzYwMDA4MGZkNWI1MDU2NWI2MDAwODEzNTkwNTA2MTBhNjk4MTYxMGE0MzU2NWI5MjkxNTA1MDU2NWI2MDAwODA2MDAwNjA2MDg0ODYwMzEyMTU2MTBhODg1NzYxMGE4NzYxMDhiNzU2NWI1YjYwMDA2MTBhOTY4NjgyODcwMTYxMDkwNTU2NWI5MzUwNTA2MDIwNjEwYWE3ODY4Mjg3MDE2MTA5MDU1NjViOTI1MDUwNjA0MDYxMGFiODg2ODI4NzAxNjEwYTVhNTY1YjkxNTA1MDkyNTA5MjUwOTI1NjViNjEwYWNiODE2MTA5YTM1NjViODI1MjUwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDYxMGFlNjYwMDA4MzAxODQ2MTBhYzI1NjViOTI5MTUwNTA1NjViNjAwMDgwNjAwMDYwNjA4NDg2MDMxMjE1NjEwYjA1NTc2MTBiMDQ2MTA4Yjc1NjViNWI2MDAwNjEwYjEzODY4Mjg3MDE2MTA5MDU1NjViOTM1MDUwNjAyMDYxMGIyNDg2ODI4NzAxNjEwOTA1NTY1YjkyNTA1MDYwNDA2MTBiMzU4NjgyODcwMTYxMDljNDU2NWI5MTUwNTA5MjUwOTI1MDkyNTY1YjYwMDA2MDYwODIwMTkwNTA2MTBiNTQ2MDAwODMwMTg2NjEwYTE5NTY1YjYxMGI2MTYwMjA4MzAxODU2MTBhMTk1NjViNjEwYjZlNjA0MDgzMDE4NDYxMGFjMjU2NWI5NDkzNTA1MDUwNTA1NjViNjAwMDgxNTE5MDUwOTE5MDUwNTY1YjYwMDA4MTkwNTA5MjkxNTA1MDU2NWI2MDAwNWI4MzgxMTAxNTYxMGJhYTU3ODA4MjAxNTE4MTg0MDE1MjYwMjA4MTAxOTA1MDYxMGI4ZjU2NWI4MzgxMTExNTYxMGJiOTU3NjAwMDg0ODQwMTUyNWI1MDUwNTA1MDU2NWI2MDAwNjEwYmNhODI2MTBiNzY1NjViNjEwYmQ0ODE4NTYxMGI4MTU2NWI5MzUwNjEwYmU0ODE4NTYwMjA4NjAxNjEwYjhjNTY1YjgwODQwMTkxNTA1MDkyOTE1MDUwNTY1YjYwMDA2MTBiZmM4Mjg0NjEwYmJmNTY1YjkxNTA4MTkwNTA5MjkxNTA1MDU2NWI2MDAwNjA2MDgyMDE5MDUwNjEwYzFjNjAwMDgzMDE4NjYxMGExOTU2NWI2MTBjMjk2MDIwODMwMTg1NjEwYTE5NTY1YjYxMGMzNjYwNDA4MzAxODQ2MTBhMTk1NjViOTQ5MzUwNTA1MDUwNTY1YjYwMDA4MTYwMDMwYjkwNTA5MTkwNTA1NjViNjEwYzU0ODE2MTBjM2U1NjViODExNDYxMGM1ZjU3NjAwMDgwZmQ1YjUwNTY1YjYwMDA4MTUxOTA1MDYxMGM3MTgxNjEwYzRiNTY1YjkyOTE1MDUwNTY1YjYwMDA4MTUxOTA1MDYxMGM4NjgxNjEwYTQzNTY1YjkyOTE1MDUwNTY1YjYwMDA4MDYwNDA4Mzg1MDMxMjE1NjEwY2EzNTc2MTBjYTI2MTA4Yjc1NjViNWI2MDAwNjEwY2IxODU4Mjg2MDE2MTBjNjI1NjViOTI1MDUwNjAyMDYxMGNjMjg1ODI4NjAxNjEwYzc3NTY1YjkxNTA1MDkyNTA5MjkwNTA1NjViNjAwMDYwNDA4MjAxOTA1MDYxMGNlMTYwMDA4MzAxODU2MTBhMTk1NjViNjEwY2VlNjAyMDgzMDE4NDYxMGFjMjU2NWI5MzkyNTA1MDUwNTY1YjYwMDA2MTBkMDA4MjYxMDhiYzU2NWI5MDUwOTE5MDUwNTY1YjYxMGQxMDgxNjEwY2Y1NTY1YjgxMTQ2MTBkMWI1NzYwMDA4MGZkNWI1MDU2NWI2MDAwODE1MTkwNTA2MTBkMmQ4MTYxMGQwNzU2NWI5MjkxNTA1MDU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMGQ0YTU3NjEwZDQ5NjEwOGI3NTY1YjViNjAwMDYxMGQ1ODg1ODI4NjAxNjEwYzYyNTY1YjkyNTA1MDYwMjA2MTBkNjk4NTgyODYwMTYxMGQxZTU2NWI5MTUwNTA5MjUwOTI5MDUwNTY1YjYwMDA2MDYwODIwMTkwNTA2MTBkODg2MDAwODMwMTg2NjEwYTE5NTY1YjYxMGQ5NTYwMjA4MzAxODU2MTBhMTk1NjViNjEwZGEyNjA0MDgzMDE4NDYxMDk3OTU2NWI5NDkzNTA1MDUwNTA1NjViNjAwMDYwMjA4Mjg0MDMxMjE1NjEwZGMwNTc2MTBkYmY2MTA4Yjc1NjViNWI2MDAwNjEwZGNlODQ4Mjg1MDE2MTBjNjI1NjViOTE1MDUwOTI5MTUwNTA1NjViNjAwMDgxNTE5MDUwNjEwZGU2ODE2MTA5YWQ1NjViOTI5MTUwNTA1NjViNjAwMDgwNjA0MDgzODUwMzEyMTU2MTBlMDM1NzYxMGUwMjYxMDhiNzU2NWI1YjYwMDA2MTBlMTE4NTgyODYwMTYxMGM2MjU2NWI5MjUwNTA2MDIwNjEwZTIyODU4Mjg2MDE2MTBkZDc1NjViOTE1MDUwOTI1MDkyOTA1MDU2ZmVhMjY0Njk3MDY2NzM1ODIyMTIyMDBiZTBjZjE0ODAzZGRlMDYyYjRkZmVhMjdhMDE0N2NiZWM0ZjEyOTg2OGRlNjcxNWUzNDRjYTUzMWQyNGNjMTk2NDczNmY2YzYzNDMwMDA4MGUwMDMz","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwO+/nidzoHVzVsybbQgnZ0l64rF7L3cPk7SU6DhBwI16zIduj6iW/6cQsyRGHIJAqGgwIobH6rAYQtqOYpAEiDwoJCOWw+qwGEPwCEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjlsPqsBhD+AhICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGI0IGiISIFKEBR0aI1ub9eT04A5RA/9PlOIi6dt9kOWHHNO7oo5jIJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGI4IKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCmefFKOmtCn4knaceeI9Sdflc3zubACTFUvWCYw35nO3mBfIf4VoYcBffPYHezE4QaDAihsfqsBhCCvO6lAyIPCgkI5bD6rAYQ/gISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQpcfCgMYjggS4hxggGBAUjSAFWEAEFdgAID9W1BgBDYQYQBiV2AANWDgHIBjGuHnvhRhAGdXgGMuVeHWFGEAl1eAY1xA9VcUYQDHV4BjnLo83BRhAPdXgGO/rT2wFGEBJ1eAY9iVg60UYQFXV1tgAID9W2EAgWAEgDYDgQGQYQB8kZBhCRpWW2EBh1ZbYEBRYQCOkZBhCYhWW2BAUYCRA5DzW2EAsWAEgDYDgQGQYQCskZBhCdlWW2EBpVZbYEBRYQC+kZBhCihWW2BAUYCRA5DzW2EA4WAEgDYDgQGQYQDckZBhCm9WW2EBwVZbYEBRYQDukZBhCYhWW2BAUYCRA5DzW2EBEWAEgDYDgQGQYQEMkZBhCRpWW2EB3VZbYEBRYQEekZBhCtFWW2BAUYCRA5DzW2EBQWAEgDYDgQGQYQE8kZBhCuxWW2EB+1ZbYEBRYQFOkZBhCYhWW2BAUYCRA5DzW2EBcWAEgDYDgQGQYQFskZBhCuxWW2ECF1ZbYEBRYQF+kZBhCYhWW2BAUYCRA5DzW2AAgGEBlYWFhWEDDFZbgJNQgZJQUFBQk5JQUFBWW2AAgGEBsoSEYQQ0VluAk1CBklBQUFCSkVBQVltgAGAWYAMLYQHThYWFYQVZVlsUkFCTklBQUFZbYACAYQHrhYWFYQZ0VluAk1CBklBQUFCTklBQUFZbYABgFmADC2ECDYWFhWEHnFZbFJBQk5JQUFBWW2AAYGBhAWdz//////////////////////////8WY3M2qvBg4BuGhoZgQFFgJAFhAlGTkpGQYQs/VltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhAruRkGEL8FZbYABgQFGAgwOBhVr0kVBQPYBgAIEUYQL2V2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YQL7VltgYJFQW1CAklCBk1BQUFCTklBQUFZbYACAYACAYQFnc///////////////////////////FmP0n0DbYOAbiIiIYEBRYCQBYQNIk5KRkGEMB1ZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQOykZBhC/BWW2AAYEBRgIMDgWAAhlrxkVBQPYBgAIEUYQPvV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YQP0VltgYJFQW1CRUJFQgWEEB1dgFWAAYQQcVluAgGAgAZBRgQGQYQQbkZBhDIxWW1uBYAMLkVCAlFCBlVBQUFBQk1CTkVBQVltgAIBgAIBhAWdz//////////////////////////8WYwmPI2Zg4BuHh2BAUWAkAWEEbpKRkGEMzFZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQTYkZBhC/BWW2AAYEBRgIMDgWAAhlrxkVBQPYBgAIEUYQUVV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YQUaVltgYJFQW1CRUJFQgWEFLVdgFWAAYQVCVluAgGAgAZBRgQGQYQVBkZBhDTNWW1uBYAMLkVCAlFCBlVBQUFBQklCSkFBWW2AAgGAAYQFnc///////////////////////////FmM2dgXKYOAbh4eHYEBRYCQBYQWUk5KRkGENc1ZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQX+kZBhC/BWW2AAYEBRgIMDgWAAhlrxkVBQPYBgAIEUYQY7V2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YQZAVltgYJFQW1CRUJFQgWEGUVdgFWEGZlZbgIBgIAGQUYEBkGEGZZGQYQ2qVltbYAMLklBQUJOSUFBQVltgAIBgAIBhAWdz//////////////////////////8WY5J9oQVg4BuIiIhgQFFgJAFhBrCTkpGQYQwHVltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhBxqRkGEL8FZbYABgQFGAgwOBYACGWvGRUFA9gGAAgRRhB1dXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hB1xWW2BgkVBbUJFQkVCBYQdvV2AVYABhB4RWW4CAYCABkFGBAZBhB4ORkGEN7FZbW4FgAwuRUICUUIGVUFBQUFCTUJORUFBWW2AAgGAAYQFnc///////////////////////////FmPh8hxnYOAbh4eHYEBRYCQBYQfXk5KRkGELP1ZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQhBkZBhC/BWW2AAYEBRgIMDgWAAhlrxkVBQPYBgAIEUYQh+V2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YQiDVltgYJFQW1CRUJFQgWEIlFdgFWEIqVZbgIBgIAGQUYEBkGEIqJGQYQ2qVltbYAMLklBQUJOSUFBQVltgAID9W2AAc///////////////////////////ghaQUJGQUFZbYABhCOeCYQi8VluQUJGQUFZbYQj3gWEI3FZbgRRhCQJXYACA/VtQVltgAIE1kFBhCRSBYQjuVluSkVBQVltgAIBgAGBghIYDEhVhCTNXYQkyYQi3VltbYABhCUGGgocBYQkFVluTUFBgIGEJUoaChwFhCQVWW5JQUGBAYQljhoKHAWEJBVZbkVBQklCSUJJWW2AAgRUVkFCRkFBWW2EJgoFhCW1WW4JSUFBWW2AAYCCCAZBQYQmdYACDAYRhCXlWW5KRUFBWW2AAgZBQkZBQVlthCbaBYQmjVluBFGEJwVdgAID9W1BWW2AAgTWQUGEJ04FhCa1WW5KRUFBWW2AAgGBAg4UDEhVhCfBXYQnvYQi3VltbYABhCf6FgoYBYQkFVluSUFBgIGEKD4WChgFhCcRWW5FQUJJQkpBQVlthCiKBYQjcVluCUlBQVltgAGAgggGQUGEKPWAAgwGEYQoZVluSkVBQVlthCkyBYQltVluBFGEKV1dgAID9W1BWW2AAgTWQUGEKaYFhCkNWW5KRUFBWW2AAgGAAYGCEhgMSFWEKiFdhCodhCLdWW1tgAGEKloaChwFhCQVWW5NQUGAgYQqnhoKHAWEJBVZbklBQYEBhCriGgocBYQpaVluRUFCSUJJQklZbYQrLgWEJo1ZbglJQUFZbYABgIIIBkFBhCuZgAIMBhGEKwlZbkpFQUFZbYACAYABgYISGAxIVYQsFV2ELBGEIt1ZbW2AAYQsThoKHAWEJBVZbk1BQYCBhCySGgocBYQkFVluSUFBgQGELNYaChwFhCcRWW5FQUJJQklCSVltgAGBgggGQUGELVGAAgwGGYQoZVlthC2FgIIMBhWEKGVZbYQtuYECDAYRhCsJWW5STUFBQUFZbYACBUZBQkZBQVltgAIGQUJKRUFBWW2AAW4OBEBVhC6pXgIIBUYGEAVJgIIEBkFBhC49WW4OBERVhC7lXYACEhAFSW1BQUFBWW2AAYQvKgmELdlZbYQvUgYVhC4FWW5NQYQvkgYVgIIYBYQuMVluAhAGRUFCSkVBQVltgAGEL/IKEYQu/VluRUIGQUJKRUFBWW2AAYGCCAZBQYQwcYACDAYZhChlWW2EMKWAggwGFYQoZVlthDDZgQIMBhGEKGVZblJNQUFBQVltgAIFgAwuQUJGQUFZbYQxUgWEMPlZbgRRhDF9XYACA/VtQVltgAIFRkFBhDHGBYQxLVluSkVBQVltgAIFRkFBhDIaBYQpDVluSkVBQVltgAIBgQIOFAxIVYQyjV2EMomEIt1ZbW2AAYQyxhYKGAWEMYlZbklBQYCBhDMKFgoYBYQx3VluRUFCSUJKQUFZbYABgQIIBkFBhDOFgAIMBhWEKGVZbYQzuYCCDAYRhCsJWW5OSUFBQVltgAGENAIJhCLxWW5BQkZBQVlthDRCBYQz1VluBFGENG1dgAID9W1BWW2AAgVGQUGENLYFhDQdWW5KRUFBWW2AAgGBAg4UDEhVhDUpXYQ1JYQi3VltbYABhDViFgoYBYQxiVluSUFBgIGENaYWChgFhDR5WW5FQUJJQkpBQVltgAGBgggGQUGENiGAAgwGGYQoZVlthDZVgIIMBhWEKGVZbYQ2iYECDAYRhCXlWW5STUFBQUFZbYABgIIKEAxIVYQ3AV2ENv2EIt1ZbW2AAYQ3OhIKFAWEMYlZbkVBQkpFQUFZbYACBUZBQYQ3mgWEJrVZbkpFQUFZbYACAYECDhQMSFWEOA1dhDgJhCLdWW1tgAGEOEYWChgFhDGJWW5JQUGAgYQ4ihYKGAWEN11ZbkVBQklCSkFBW/qJkaXBmc1giEiAL4M8UgD3eBitN/qJ6AUfL7E8SmGjeZxXjRMpTHSTMGWRzb2xjQwAIDgAzIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACjAmgw6AxiOCEoWChQAAAAAAAAAAAAAAAAAAAAAAAAEDnIHCgMYjggQAVIWCgkKAhgCEP+yxQ0KCQoCGGIQgLPFDQ=="},{"b64Body":"Cg8KCQjmsPqsBhCEAxICGAISAhgDGOC2iyAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGIkIEgMYjAg=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwE3a14EdV2C4aA5m3K9HwxE0kQHlGH4YYj6SKR5e1RP8BKe3THoS1SZ7roh0N8me6GgwIorH6rAYQhdr7rQEiDwoJCOaw+qwGEIQDEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjmsPqsBhCKAxICGAISAhgDGOC2iyAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGI4IEgMYjAg=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwt0S6tGGgYpC2ZOLtfsaoTV9MXPifIKqxn7jH/6R/4VYbV8kpki8GDOYYZxeDHSLnGgwIorH6rAYQv46grwMiDwoJCOaw+qwGEIoDEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"ChAKCQjnsPqsBhCMAxIDGIkIEgIYAxiA/rWHASICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOOnAKAxiOCBCAkvQBImS/rT2wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK","b64Record":"CiUIFiIDGI4IKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCtWN7wnioecbCnozOKG1H25wg/eWgnzZ2UnHP2E5b8CnHRc9He544Rhqj2xVVZ+R0aDAijsfqsBhC25aK3ASIQCgkI57D6rAYQjAMSAxiJCCogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wgJirbDrCBQoDGI4IEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASKAAggAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAgAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAogKjDATKQAwoDGIwIEoACCAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAACAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABogjFvh5evsfVvRT3FCfR6E890DFMD3sikeWyAKyMfDuSUaIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQOGiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECiIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApSGQoKCgIYYhCAsNbYAQoLCgMYiQgQ/6/W2AE="},{"b64Body":"ChIKCQjnsPqsBhCMAxIDGIkIIAGCAxMaEQoDGIwIEgMYjggaAxiKCCAK","b64Record":"CgIIFhIwdZDDJmhwOXMYO01uixvRDP4PaGLtzhHmzGEkz1WuN/0KARwy4GZZZfW5hiYkVYBvGgwIo7H6rAYQt+WitwEiEgoJCOew+qwGEIwDEgMYiQggATq7AQoDGOcCEkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKOL9KlCd3+4BYmTh8hxnAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKagMYjghSAHoMCKOx+qwGELblorcB"}]},"htsTokenApproveToInnerContract":{"placeholderNum":1039,"encodedItems":[{"b64Body":"Cg8KCQjssPqsBhCoAxICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloyCiISINGvVR6OmBNtHs6NFj3HrWEF7+B66ftjVeFOO1cDwykGEICglKWNHUoFCIDO2gM=","b64Record":"CiUIFhIDGJAIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAImkCSmy4zjcTUkeJQ2QMIFfuC22KtIp3PI6k5DzItw1uxM46ZlbqgFsKBHVko5kAaCwiosfqsBhC62aA7Ig8KCQjssPqsBhCoAxICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUhsKCwoCGAIQ/7+oypo6CgwKAxiQCBCAwKjKmjo="},{"b64Body":"Cg8KCQjssPqsBhCqAxICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIFqzgThG4OT75Z29TPH1XVJ3vJMTptUR1RilVJl/y2E+EICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGJEIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBKD6ZTV5cHfHFU5Ne12P2vILaaKqNpGIw6Fqk6lD2RfkHh3pUFVipiOi1zE3vhzDoaDAiosfqsBhDsqpigAiIPCgkI7LD6rAYQqgMSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxiRCBCAqNa5Bw=="},{"b64Body":"Cg8KCQjtsPqsBhCsAxICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIMgzmLdkgeKk/cn/eRo9HXIivsgdfeV6Q7s7L3YPWluBEICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGJIIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDTTVCleJchxHbTNDhzjbpoTt/2wsfvjdVPVQD4jFjGWYS2cUYc5pj+7PuFqu2kQcoaCwipsfqsBhCr3IxFIg8KCQjtsPqsBhCsAxICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUhkKCgoCGAIQ/6fWuQcKCwoDGJIIEICo1rkH"},{"b64Body":"Cg8KCQjtsPqsBhCuAxICGAISAhgDGL7W8vsCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAX0KDWZ1bmdpYmxlVG9rZW4SCEhZQ0RRVElKIAoqAxiSCDIiEiBqQetYoo2KDOufwiYLAP9/4vz7yDRM/WHfNjB4b+Y9LVIiEiBqQetYoo2KDOufwiYLAP9/4vz7yDRM/WHfNjB4b+Y9LWoMCKn/1LAGEILFyp4CkAEBmAHoBw==","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGJMIEjANLErna5qB0fEh3oodY+pPRMT+sbOsnIxk6SpbjXneRNY8KbHZMk0N+BVfLu7wS6AaDAipsfqsBhDWyIKqAiIPCgkI7bD6rAYQrgMSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWg4KAxiTCBIHCgMYkggQFHIKCgMYkwgSAxiSCA=="},{"b64Body":"Cg8KCQjusPqsBhCwAxICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjgESCwiq/9SwBhCizrw1Gm0KIhIgl8dxQ05bugFBQjn5kCrdW17ehyA9L1bLsTi7cOU6amQKIzohAuobEa7ApONlyicKhc68SIhI7oS5bN57FwGxBnPLTVGwCiISIGjcWidziE/xkhYu+iOGa4JnqILvaqoeOU28jRoBXj8TIgxIZWxsbyBXb3JsZCEqADIA","b64Record":"CiUIFhoDGJQIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDccO6btSSqcZkC2C2HKZ3VgFyTa9S/4uLF+MWjSQGCzcL16W0R0sQZQHP4RgvjXFUaCwiqsfqsBhDEyahOIg8KCQjusPqsBhCwAxICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgA="},{"b64Body":"Cg8KCQjusPqsBhC0AxICGAISAhgDGIydjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxiUCCKAIDYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMGU2MjgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDA2MjU3NjAwMDM1NjBlMDFjODA2MzFhZTFlN2JlMTQ2MTAwNjc1NzgwNjMyZTU1ZTFkNjE0NjEwMDk3NTc4MDYzNWM0MGY1NTcxNDYxMDBjNzU3ODA2MzljYmEzY2RjMTQ2MTAwZjc1NzgwNjNiZmFkM2RiMDE0NjEwMTI3NTc4MDYzZDg5NTgzYWQxNDYxMDE1NzU3NWI2MDAwODBmZDViNjEwMDgxNjAwNDgwMzYwMzgxMDE5MDYxMDA3YzkxOTA2MTA5MWE1NjViNjEwMTg3NTY1YjYwNDA1MTYxMDA4ZTkxOTA2MTA5ODg1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMGIxNjAwNDgwMzYwMzgxMDE5MDYxMDBhYzkxOTA2MTA5ZDk1NjViNjEwMWE1NTY1YjYwNDA1MTYxMDBiZTkxOTA2MTBhMjg1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMGUxNjAwNDgwMzYwMzgxMDE5MDYxMDBkYzkxOTA2MTBhNmY1NjViNjEwMWMxNTY1YjYwNDA1MTYxMDBlZTkxOTA2MTA5ODg1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMTExNjAwNDgwMzYwMzgxMDE5MDYxMDEwYzkxOTA2MTA5MWE1NjViNjEwMWRkNTY1YjYwNDA1MTYxMDExZTkxOTA2MTBhZDE1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMTQxNjAwNDgwMzYwMzgxMDE5MDYxMDEzYzkxOTA2MTBhZWM1NjViNjEwMWZiNTY1YjYwNDA1MTYxMDE0ZTkxOTA2MTA5ODg1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMTcxNjAwNDgwMzYwMzgxMDE5MDYxMDE2YzkxOTA2MTBhZWM1NjViNjEwMjE3NTY1YjYwNDA1MTYxMDE3ZTkxOTA2MTA5ODg1NjViNjA0MDUxODA5MTAzOTBmMzViNjAwMDgwNjEwMTk1ODU4NTg1NjEwMzBjNTY1YjgwOTM1MDgxOTI1MDUwNTA1MDkzOTI1MDUwNTA1NjViNjAwMDgwNjEwMWIyODQ4NDYxMDQzNDU2NWI4MDkzNTA4MTkyNTA1MDUwNTA5MjkxNTA1MDU2NWI2MDAwNjAxNjYwMDMwYjYxMDFkMzg1ODU4NTYxMDU1OTU2NWIxNDkwNTA5MzkyNTA1MDUwNTY1YjYwMDA4MDYxMDFlYjg1ODU4NTYxMDY3NDU2NWI4MDkzNTA4MTkyNTA1MDUwNTA5MzkyNTA1MDUwNTY1YjYwMDA2MDE2NjAwMzBiNjEwMjBkODU4NTg1NjEwNzljNTY1YjE0OTA1MDkzOTI1MDUwNTA1NjViNjAwMDYwNjA2MTAxNjc3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzNzMzNmFhZjA2MGUwMWI4Njg2ODY2MDQwNTE2MDI0MDE2MTAyNTE5MzkyOTE5MDYxMGIzZjU2NWI2MDQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI5MDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTAyYmI5MTkwNjEwYmYwNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTg1NWFmNDkxNTA1MDNkODA2MDAwODExNDYxMDJmNjU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMDJmYjU2NWI2MDYwOTE1MDViNTA4MDkyNTA4MTkzNTA1MDUwNTA5MzkyNTA1MDUwNTY1YjYwMDA4MDYwMDA4MDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjNmNDlmNDBkYjYwZTAxYjg4ODg4ODYwNDA1MTYwMjQwMTYxMDM0ODkzOTI5MTkwNjEwYzA3NTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMDNiMjkxOTA2MTBiZjA1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMDNlZjU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMDNmNDU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEwNDA3NTc2MDE1NjAwMDYxMDQxYzU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMDQxYjkxOTA2MTBjOGM1NjViNWI4MTYwMDMwYjkxNTA4MDk0NTA4MTk1NTA1MDUwNTA1MDkzNTA5MzkxNTA1MDU2NWI2MDAwODA2MDAwODA2MTAxNjc3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzMDk4ZjIzNjY2MGUwMWI4Nzg3NjA0MDUxNjAyNDAxNjEwNDZlOTI5MTkwNjEwY2NjNTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMDRkODkxOTA2MTBiZjA1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMDUxNTU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMDUxYTU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEwNTJkNTc2MDE1NjAwMDYxMDU0MjU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMDU0MTkxOTA2MTBkMzM1NjViNWI4MTYwMDMwYjkxNTA4MDk0NTA4MTk1NTA1MDUwNTA1MDkyNTA5MjkwNTA1NjViNjAwMDgwNjAwMDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjMzNjc2MDVjYTYwZTAxYjg3ODc4NzYwNDA1MTYwMjQwMTYxMDU5NDkzOTI5MTkwNjEwZDczNTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMDVmZTkxOTA2MTBiZjA1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMDYzYjU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMDY0MDU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEwNjUxNTc2MDE1NjEwNjY2NTY1YjgwODA2MDIwMDE5MDUxODEwMTkwNjEwNjY1OTE5MDYxMGRhYTU2NWI1YjYwMDMwYjkyNTA1MDUwOTM5MjUwNTA1MDU2NWI2MDAwODA2MDAwODA2MTAxNjc3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzOTI3ZGExMDU2MGUwMWI4ODg4ODg2MDQwNTE2MDI0MDE2MTA2YjA5MzkyOTE5MDYxMGMwNzU2NWI2MDQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI5MDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTA3MWE5MTkwNjEwYmYwNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NjVhZjE5MTUwNTAzZDgwNjAwMDgxMTQ2MTA3NTc1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTA3NWM1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA4MTYxMDc2ZjU3NjAxNTYwMDA2MTA3ODQ1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTA3ODM5MTkwNjEwZGVjNTY1YjViODE2MDAzMGI5MTUwODA5NDUwODE5NTUwNTA1MDUwNTA5MzUwOTM5MTUwNTA1NjViNjAwMDgwNjAwMDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjNlMWYyMWM2NzYwZTAxYjg3ODc4NzYwNDA1MTYwMjQwMTYxMDdkNzkzOTI5MTkwNjEwYjNmNTY1YjYwNDA1MTYwMjA4MTgzMDM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwFRwZSF+NnxO9+RDdu00PqtAdRZkdzFeRFGpA5k5FJBRIDLBpsvhMeVKB0cc6tX/qGgwIqrH6rAYQr5qeswIiDwoJCO6w+qwGELQDEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjvsPqsBhC6AxICGAISAhgDGO/WvTsiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBjBoSAxiUCCKEGjAzODE1MjkwNjA0MDUyOTA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjEwODQxOTE5MDYxMGJmMDU2NWI2MDAwNjA0MDUxODA4MzAzODE2MDAwODY1YWYxOTE1MDUwM2Q4MDYwMDA4MTE0NjEwODdlNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjEwODgzNTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTA4OTQ1NzYwMTU2MTA4YTk1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTA4YTg5MTkwNjEwZGFhNTY1YjViNjAwMzBiOTI1MDUwNTA5MzkyNTA1MDUwNTY1YjYwMDA4MGZkNWI2MDAwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIxNjkwNTA5MTkwNTA1NjViNjAwMDYxMDhlNzgyNjEwOGJjNTY1YjkwNTA5MTkwNTA1NjViNjEwOGY3ODE2MTA4ZGM1NjViODExNDYxMDkwMjU3NjAwMDgwZmQ1YjUwNTY1YjYwMDA4MTM1OTA1MDYxMDkxNDgxNjEwOGVlNTY1YjkyOTE1MDUwNTY1YjYwMDA4MDYwMDA2MDYwODQ4NjAzMTIxNTYxMDkzMzU3NjEwOTMyNjEwOGI3NTY1YjViNjAwMDYxMDk0MTg2ODI4NzAxNjEwOTA1NTY1YjkzNTA1MDYwMjA2MTA5NTI4NjgyODcwMTYxMDkwNTU2NWI5MjUwNTA2MDQwNjEwOTYzODY4Mjg3MDE2MTA5MDU1NjViOTE1MDUwOTI1MDkyNTA5MjU2NWI2MDAwODExNTE1OTA1MDkxOTA1MDU2NWI2MTA5ODI4MTYxMDk2ZDU2NWI4MjUyNTA1MDU2NWI2MDAwNjAyMDgyMDE5MDUwNjEwOTlkNjAwMDgzMDE4NDYxMDk3OTU2NWI5MjkxNTA1MDU2NWI2MDAwODE5MDUwOTE5MDUwNTY1YjYxMDliNjgxNjEwOWEzNTY1YjgxMTQ2MTA5YzE1NzYwMDA4MGZkNWI1MDU2NWI2MDAwODEzNTkwNTA2MTA5ZDM4MTYxMDlhZDU2NWI5MjkxNTA1MDU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMDlmMDU3NjEwOWVmNjEwOGI3NTY1YjViNjAwMDYxMDlmZTg1ODI4NjAxNjEwOTA1NTY1YjkyNTA1MDYwMjA2MTBhMGY4NTgyODYwMTYxMDljNDU2NWI5MTUwNTA5MjUwOTI5MDUwNTY1YjYxMGEyMjgxNjEwOGRjNTY1YjgyNTI1MDUwNTY1YjYwMDA2MDIwODIwMTkwNTA2MTBhM2Q2MDAwODMwMTg0NjEwYTE5NTY1YjkyOTE1MDUwNTY1YjYxMGE0YzgxNjEwOTZkNTY1YjgxMTQ2MTBhNTc1NzYwMDA4MGZkNWI1MDU2NWI2MDAwODEzNTkwNTA2MTBhNjk4MTYxMGE0MzU2NWI5MjkxNTA1MDU2NWI2MDAwODA2MDAwNjA2MDg0ODYwMzEyMTU2MTBhODg1NzYxMGE4NzYxMDhiNzU2NWI1YjYwMDA2MTBhOTY4NjgyODcwMTYxMDkwNTU2NWI5MzUwNTA2MDIwNjEwYWE3ODY4Mjg3MDE2MTA5MDU1NjViOTI1MDUwNjA0MDYxMGFiODg2ODI4NzAxNjEwYTVhNTY1YjkxNTA1MDkyNTA5MjUwOTI1NjViNjEwYWNiODE2MTA5YTM1NjViODI1MjUwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDYxMGFlNjYwMDA4MzAxODQ2MTBhYzI1NjViOTI5MTUwNTA1NjViNjAwMDgwNjAwMDYwNjA4NDg2MDMxMjE1NjEwYjA1NTc2MTBiMDQ2MTA4Yjc1NjViNWI2MDAwNjEwYjEzODY4Mjg3MDE2MTA5MDU1NjViOTM1MDUwNjAyMDYxMGIyNDg2ODI4NzAxNjEwOTA1NTY1YjkyNTA1MDYwNDA2MTBiMzU4NjgyODcwMTYxMDljNDU2NWI5MTUwNTA5MjUwOTI1MDkyNTY1YjYwMDA2MDYwODIwMTkwNTA2MTBiNTQ2MDAwODMwMTg2NjEwYTE5NTY1YjYxMGI2MTYwMjA4MzAxODU2MTBhMTk1NjViNjEwYjZlNjA0MDgzMDE4NDYxMGFjMjU2NWI5NDkzNTA1MDUwNTA1NjViNjAwMDgxNTE5MDUwOTE5MDUwNTY1YjYwMDA4MTkwNTA5MjkxNTA1MDU2NWI2MDAwNWI4MzgxMTAxNTYxMGJhYTU3ODA4MjAxNTE4MTg0MDE1MjYwMjA4MTAxOTA1MDYxMGI4ZjU2NWI4MzgxMTExNTYxMGJiOTU3NjAwMDg0ODQwMTUyNWI1MDUwNTA1MDU2NWI2MDAwNjEwYmNhODI2MTBiNzY1NjViNjEwYmQ0ODE4NTYxMGI4MTU2NWI5MzUwNjEwYmU0ODE4NTYwMjA4NjAxNjEwYjhjNTY1YjgwODQwMTkxNTA1MDkyOTE1MDUwNTY1YjYwMDA2MTBiZmM4Mjg0NjEwYmJmNTY1YjkxNTA4MTkwNTA5MjkxNTA1MDU2NWI2MDAwNjA2MDgyMDE5MDUwNjEwYzFjNjAwMDgzMDE4NjYxMGExOTU2NWI2MTBjMjk2MDIwODMwMTg1NjEwYTE5NTY1YjYxMGMzNjYwNDA4MzAxODQ2MTBhMTk1NjViOTQ5MzUwNTA1MDUwNTY1YjYwMDA4MTYwMDMwYjkwNTA5MTkwNTA1NjViNjEwYzU0ODE2MTBjM2U1NjViODExNDYxMGM1ZjU3NjAwMDgwZmQ1YjUwNTY1YjYwMDA4MTUxOTA1MDYxMGM3MTgxNjEwYzRiNTY1YjkyOTE1MDUwNTY1YjYwMDA4MTUxOTA1MDYxMGM4NjgxNjEwYTQzNTY1YjkyOTE1MDUwNTY1YjYwMDA4MDYwNDA4Mzg1MDMxMjE1NjEwY2EzNTc2MTBjYTI2MTA4Yjc1NjViNWI2MDAwNjEwY2IxODU4Mjg2MDE2MTBjNjI1NjViOTI1MDUwNjAyMDYxMGNjMjg1ODI4NjAxNjEwYzc3NTY1YjkxNTA1MDkyNTA5MjkwNTA1NjViNjAwMDYwNDA4MjAxOTA1MDYxMGNlMTYwMDA4MzAxODU2MTBhMTk1NjViNjEwY2VlNjAyMDgzMDE4NDYxMGFjMjU2NWI5MzkyNTA1MDUwNTY1YjYwMDA2MTBkMDA4MjYxMDhiYzU2NWI5MDUwOTE5MDUwNTY1YjYxMGQxMDgxNjEwY2Y1NTY1YjgxMTQ2MTBkMWI1NzYwMDA4MGZkNWI1MDU2NWI2MDAwODE1MTkwNTA2MTBkMmQ4MTYxMGQwNzU2NWI5MjkxNTA1MDU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMGQ0YTU3NjEwZDQ5NjEwOGI3NTY1YjViNjAwMDYxMGQ1ODg1ODI4NjAxNjEwYzYyNTY1YjkyNTA1MDYwMjA2MTBkNjk4NTgyODYwMTYxMGQxZTU2NWI5MTUwNTA5MjUwOTI5MDUwNTY1YjYwMDA2MDYwODIwMTkwNTA2MTBkODg2MDAwODMwMTg2NjEwYTE5NTY1YjYxMGQ5NTYwMjA4MzAxODU2MTBhMTk1NjViNjEwZGEyNjA0MDgzMDE4NDYxMDk3OTU2NWI5NDkzNTA1MDUwNTA1NjViNjAwMDYwMjA4Mjg0MDMxMjE1NjEwZGMwNTc2MTBkYmY2MTA4Yjc1NjViNWI2MDAwNjEwZGNlODQ4Mjg1MDE2MTBjNjI1NjViOTE1MDUwOTI5MTUwNTA1NjViNjAwMDgxNTE5MDUwNjEwZGU2ODE2MTA5YWQ1NjViOTI5MTUwNTA1NjViNjAwMDgwNjA0MDgzODUwMzEyMTU2MTBlMDM1NzYxMGUwMjYxMDhiNzU2NWI1YjYwMDA2MTBlMTE4NTgyODYwMTYxMGM2MjU2NWI5MjUwNTA2MDIwNjEwZTIyODU4Mjg2MDE2MTBkZDc1NjViOTE1MDUwOTI1MDkyOTA1MDU2ZmVhMjY0Njk3MDY2NzM1ODIyMTIyMDBiZTBjZjE0ODAzZGRlMDYyYjRkZmVhMjdhMDE0N2NiZWM0ZjEyOTg2OGRlNjcxNWUzNDRjYTUzMWQyNGNjMTk2NDczNmY2YzYzNDMwMDA4MGUwMDMz","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwf3vdB0jeiGj7Hexyd+NPTMW/YhAKb2P7zPvZTWbXaNyP5/pJE9bxiHVyZvNatvvhGgsIq7H6rAYQiLmPWCIPCgkI77D6rAYQugMSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjvsPqsBhC8AxICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGJQIGiISIMlS/pZe0H4Goqjg9o7UCcXxtGqmqvnPLbJWfc92xnjUIJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGJUIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBuQ75jzQ+KgeZ1Dw3FUFoFDiFvsXK7lNziJQYtOyNg1o1ga6xGM5tnAMPgTlxY6hYaDAirsfqsBhDL2ajZAiIPCgkI77D6rAYQvAMSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQpcfCgMYlQgS4hxggGBAUjSAFWEAEFdgAID9W1BgBDYQYQBiV2AANWDgHIBjGuHnvhRhAGdXgGMuVeHWFGEAl1eAY1xA9VcUYQDHV4BjnLo83BRhAPdXgGO/rT2wFGEBJ1eAY9iVg60UYQFXV1tgAID9W2EAgWAEgDYDgQGQYQB8kZBhCRpWW2EBh1ZbYEBRYQCOkZBhCYhWW2BAUYCRA5DzW2EAsWAEgDYDgQGQYQCskZBhCdlWW2EBpVZbYEBRYQC+kZBhCihWW2BAUYCRA5DzW2EA4WAEgDYDgQGQYQDckZBhCm9WW2EBwVZbYEBRYQDukZBhCYhWW2BAUYCRA5DzW2EBEWAEgDYDgQGQYQEMkZBhCRpWW2EB3VZbYEBRYQEekZBhCtFWW2BAUYCRA5DzW2EBQWAEgDYDgQGQYQE8kZBhCuxWW2EB+1ZbYEBRYQFOkZBhCYhWW2BAUYCRA5DzW2EBcWAEgDYDgQGQYQFskZBhCuxWW2ECF1ZbYEBRYQF+kZBhCYhWW2BAUYCRA5DzW2AAgGEBlYWFhWEDDFZbgJNQgZJQUFBQk5JQUFBWW2AAgGEBsoSEYQQ0VluAk1CBklBQUFCSkVBQVltgAGAWYAMLYQHThYWFYQVZVlsUkFCTklBQUFZbYACAYQHrhYWFYQZ0VluAk1CBklBQUFCTklBQUFZbYABgFmADC2ECDYWFhWEHnFZbFJBQk5JQUFBWW2AAYGBhAWdz//////////////////////////8WY3M2qvBg4BuGhoZgQFFgJAFhAlGTkpGQYQs/VltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhAruRkGEL8FZbYABgQFGAgwOBhVr0kVBQPYBgAIEUYQL2V2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YQL7VltgYJFQW1CAklCBk1BQUFCTklBQUFZbYACAYACAYQFnc///////////////////////////FmP0n0DbYOAbiIiIYEBRYCQBYQNIk5KRkGEMB1ZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQOykZBhC/BWW2AAYEBRgIMDgWAAhlrxkVBQPYBgAIEUYQPvV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YQP0VltgYJFQW1CRUJFQgWEEB1dgFWAAYQQcVluAgGAgAZBRgQGQYQQbkZBhDIxWW1uBYAMLkVCAlFCBlVBQUFBQk1CTkVBQVltgAIBgAIBhAWdz//////////////////////////8WYwmPI2Zg4BuHh2BAUWAkAWEEbpKRkGEMzFZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQTYkZBhC/BWW2AAYEBRgIMDgWAAhlrxkVBQPYBgAIEUYQUVV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YQUaVltgYJFQW1CRUJFQgWEFLVdgFWAAYQVCVluAgGAgAZBRgQGQYQVBkZBhDTNWW1uBYAMLkVCAlFCBlVBQUFBQklCSkFBWW2AAgGAAYQFnc///////////////////////////FmM2dgXKYOAbh4eHYEBRYCQBYQWUk5KRkGENc1ZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQX+kZBhC/BWW2AAYEBRgIMDgWAAhlrxkVBQPYBgAIEUYQY7V2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YQZAVltgYJFQW1CRUJFQgWEGUVdgFWEGZlZbgIBgIAGQUYEBkGEGZZGQYQ2qVltbYAMLklBQUJOSUFBQVltgAIBgAIBhAWdz//////////////////////////8WY5J9oQVg4BuIiIhgQFFgJAFhBrCTkpGQYQwHVltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhBxqRkGEL8FZbYABgQFGAgwOBYACGWvGRUFA9gGAAgRRhB1dXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hB1xWW2BgkVBbUJFQkVCBYQdvV2AVYABhB4RWW4CAYCABkFGBAZBhB4ORkGEN7FZbW4FgAwuRUICUUIGVUFBQUFCTUJORUFBWW2AAgGAAYQFnc///////////////////////////FmPh8hxnYOAbh4eHYEBRYCQBYQfXk5KRkGELP1ZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQhBkZBhC/BWW2AAYEBRgIMDgWAAhlrxkVBQPYBgAIEUYQh+V2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YQiDVltgYJFQW1CRUJFQgWEIlFdgFWEIqVZbgIBgIAGQUYEBkGEIqJGQYQ2qVltbYAMLklBQUJOSUFBQVltgAID9W2AAc///////////////////////////ghaQUJGQUFZbYABhCOeCYQi8VluQUJGQUFZbYQj3gWEI3FZbgRRhCQJXYACA/VtQVltgAIE1kFBhCRSBYQjuVluSkVBQVltgAIBgAGBghIYDEhVhCTNXYQkyYQi3VltbYABhCUGGgocBYQkFVluTUFBgIGEJUoaChwFhCQVWW5JQUGBAYQljhoKHAWEJBVZbkVBQklCSUJJWW2AAgRUVkFCRkFBWW2EJgoFhCW1WW4JSUFBWW2AAYCCCAZBQYQmdYACDAYRhCXlWW5KRUFBWW2AAgZBQkZBQVlthCbaBYQmjVluBFGEJwVdgAID9W1BWW2AAgTWQUGEJ04FhCa1WW5KRUFBWW2AAgGBAg4UDEhVhCfBXYQnvYQi3VltbYABhCf6FgoYBYQkFVluSUFBgIGEKD4WChgFhCcRWW5FQUJJQkpBQVlthCiKBYQjcVluCUlBQVltgAGAgggGQUGEKPWAAgwGEYQoZVluSkVBQVlthCkyBYQltVluBFGEKV1dgAID9W1BWW2AAgTWQUGEKaYFhCkNWW5KRUFBWW2AAgGAAYGCEhgMSFWEKiFdhCodhCLdWW1tgAGEKloaChwFhCQVWW5NQUGAgYQqnhoKHAWEJBVZbklBQYEBhCriGgocBYQpaVluRUFCSUJJQklZbYQrLgWEJo1ZbglJQUFZbYABgIIIBkFBhCuZgAIMBhGEKwlZbkpFQUFZbYACAYABgYISGAxIVYQsFV2ELBGEIt1ZbW2AAYQsThoKHAWEJBVZbk1BQYCBhCySGgocBYQkFVluSUFBgQGELNYaChwFhCcRWW5FQUJJQklCSVltgAGBgggGQUGELVGAAgwGGYQoZVlthC2FgIIMBhWEKGVZbYQtuYECDAYRhCsJWW5STUFBQUFZbYACBUZBQkZBQVltgAIGQUJKRUFBWW2AAW4OBEBVhC6pXgIIBUYGEAVJgIIEBkFBhC49WW4OBERVhC7lXYACEhAFSW1BQUFBWW2AAYQvKgmELdlZbYQvUgYVhC4FWW5NQYQvkgYVgIIYBYQuMVluAhAGRUFCSkVBQVltgAGEL/IKEYQu/VluRUIGQUJKRUFBWW2AAYGCCAZBQYQwcYACDAYZhChlWW2EMKWAggwGFYQoZVlthDDZgQIMBhGEKGVZblJNQUFBQVltgAIFgAwuQUJGQUFZbYQxUgWEMPlZbgRRhDF9XYACA/VtQVltgAIFRkFBhDHGBYQxLVluSkVBQVltgAIFRkFBhDIaBYQpDVluSkVBQVltgAIBgQIOFAxIVYQyjV2EMomEIt1ZbW2AAYQyxhYKGAWEMYlZbklBQYCBhDMKFgoYBYQx3VluRUFCSUJKQUFZbYABgQIIBkFBhDOFgAIMBhWEKGVZbYQzuYCCDAYRhCsJWW5OSUFBQVltgAGENAIJhCLxWW5BQkZBQVlthDRCBYQz1VluBFGENG1dgAID9W1BWW2AAgVGQUGENLYFhDQdWW5KRUFBWW2AAgGBAg4UDEhVhDUpXYQ1JYQi3VltbYABhDViFgoYBYQxiVluSUFBgIGENaYWChgFhDR5WW5FQUJJQkpBQVltgAGBgggGQUGENiGAAgwGGYQoZVlthDZVgIIMBhWEKGVZbYQ2iYECDAYRhCXlWW5STUFBQUFZbYABgIIKEAxIVYQ3AV2ENv2EIt1ZbW2AAYQ3OhIKFAWEMYlZbkVBQkpFQUFZbYACBUZBQYQ3mgWEJrVZbkpFQUFZbYACAYECDhQMSFWEOA1dhDgJhCLdWW1tgAGEOEYWChgFhDGJWW5JQUGAgYQ4ihYKGAWEN11ZbkVBQklCSkFBW/qJkaXBmc1giEiAL4M8UgD3eBitN/qJ6AUfL7E8SmGjeZxXjRMpTHSTMGWRzb2xjQwAIDgAzIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACjAmgw6AxiVCEoWChQAAAAAAAAAAAAAAAAAAAAAAAAEFXIHCgMYlQgQAVIWCgkKAhgCEP+yxQ0KCQoCGGIQgLPFDQ=="},{"b64Body":"Cg8KCQjwsPqsBhC+AxICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjgESCwis/9SwBhDbuLhSGm0KIhIg4s4epXFR1TLnBawbAvwjI9vyYYHQEE1SZIWhu2vXfrMKIzohAtraAr6NGXT7isnqK3M6aVisEZ+FBp2IDFaeLeWBrtwYCiISIMdWGRY2mtKyPsWLmjwj9HE8tcLf1vCqeyYbtbPAE79SIgxIZWxsbyBXb3JsZCEqADIA","b64Record":"CiUIFhoDGJYIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBBks+PO+yiECQPfA4k4TflVTlRmky/KvgORNNM73nfBNLhhBxW6HkdHI08NmzsHf0aCwissfqsBhCNq7NhIg8KCQjwsPqsBhC+AxICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgA="},{"b64Body":"Cg8KCQjwsPqsBhDCAxICGAISAhgDGMekrjIiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBgAsKAxiWCCL4CjYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMDI5YzgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDAyYjU3NjAwMDM1NjBlMDFjODA2M2VmYzM4ODI2MTQ2MTAwMzA1NzViNjAwMDgwZmQ1YjYxMDA0YTYwMDQ4MDM2MDM4MTAxOTA2MTAwNDU5MTkwNjEwMTNhNTY1YjYxMDA0YzU2NWIwMDViODE3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzMDk1ZWE3YjM4MjY3N2ZmZmZmZmZmZmZmZmZmZjYwNDA1MTgzNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYxMDA4ZjkyOTE5MDYxMDFkODU2NWI2MDIwNjA0MDUxODA4MzAzODE2MDAwODc1YWYxMTU4MDE1NjEwMGFlNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTAwZDI5MTkwNjEwMjM5NTY1YjUwNTA1MDU2NWI2MDAwODBmZDViNjAwMDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgyMTY5MDUwOTE5MDUwNTY1YjYwMDA2MTAxMDc4MjYxMDBkYzU2NWI5MDUwOTE5MDUwNTY1YjYxMDExNzgxNjEwMGZjNTY1YjgxMTQ2MTAxMjI1NzYwMDA4MGZkNWI1MDU2NWI2MDAwODEzNTkwNTA2MTAxMzQ4MTYxMDEwZTU2NWI5MjkxNTA1MDU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMDE1MTU3NjEwMTUwNjEwMGQ3NTY1YjViNjAwMDYxMDE1Zjg1ODI4NjAxNjEwMTI1NTY1YjkyNTA1MDYwMjA2MTAxNzA4NTgyODYwMTYxMDEyNTU2NWI5MTUwNTA5MjUwOTI5MDUwNTY1YjYxMDE4MzgxNjEwMGZjNTY1YjgyNTI1MDUwNTY1YjYwMDA4MTkwNTA5MTkwNTA1NjViNjAwMDgxOTA1MDkxOTA1MDU2NWI2MDAwODE5MDUwOTE5MDUwNTY1YjYwMDA2MTAxYzI2MTAxYmQ2MTAxYjg4NDYxMDE4OTU2NWI2MTAxOWQ1NjViNjEwMTkzNTY1YjkwNTA5MTkwNTA1NjViNjEwMWQyODE2MTAxYTc1NjViODI1MjUwNTA1NjViNjAwMDYwNDA4MjAxOTA1MDYxMDFlZDYwMDA4MzAxODU2MTAxN2E1NjViNjEwMWZhNjAyMDgzMDE4NDYxMDFjOTU2NWI5MzkyNTA1MDUwNTY1YjYwMDA4MTE1MTU5MDUwOTE5MDUwNTY1YjYxMDIxNjgxNjEwMjAxNTY1YjgxMTQ2MTAyMjE1NzYwMDA4MGZkNWI1MDU2NWI2MDAwODE1MTkwNTA2MTAyMzM4MTYxMDIwZDU2NWI5MjkxNTA1MDU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTAyNGY1NzYxMDI0ZTYxMDBkNzU2NWI1YjYwMDA2MTAyNWQ4NDgyODUwMTYxMDIyNDU2NWI5MTUwNTA5MjkxNTA1MDU2ZmVhMjY0Njk3MDY2NzM1ODIyMTIyMDI5Zjg0ZDU4ZjZhNjA3ZDRlMGU3YjkzMzczYjEwZTQyN2ZkNWFkMzkzZTBkM2M2NmViMzgwODEyOTA4NjBkMzc2NDczNmY2YzYzNDMwMDA4MTAwMDMz","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwIplF8plnIzvZPfLHZ1P5RcB1gZq5r76f5glpYbM2DSqPEiegxFKpMJDGnJfdfKqdGgwIrLH6rAYQq/2T4wIiDwoJCPCw+qwGEMIDEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjxsPqsBhDEAxICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGJYIGiISIGpB61iijYoM65/CJgsA/3/i/PvINEz9Yd82MHhv5j0tIJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGJcIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCkocCjpZ5DpaLvU5bkx7/mHto7LmB873kEtu0skqvoLyoFI2g4kEEnvr07hDYaqEoaCwitsfqsBhDvj6FrIg8KCQjxsPqsBhDEAxICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMMDZ4gZC0QcKAxiXCBKcBWCAYEBSNIAVYQAQV2AAgP1bUGAENhBhACtXYAA1YOAcgGPvw4gmFGEAMFdbYACA/VthAEpgBIA2A4EBkGEARZGQYQE6VlthAExWWwBbgXP//////////////////////////xZjCV6ns4Jnf/////////9gQFGDY/////8WYOAbgVJgBAFhAI+SkZBhAdhWW2AgYEBRgIMDgWAAh1rxFYAVYQCuVz1gAIA+PWAA/VtQUFBQYEBRPWAfGWAfggEWggGAYEBSUIEBkGEA0pGQYQI5VltQUFBWW2AAgP1bYABz//////////////////////////+CFpBQkZBQVltgAGEBB4JhANxWW5BQkZBQVlthAReBYQD8VluBFGEBIldgAID9W1BWW2AAgTWQUGEBNIFhAQ5WW5KRUFBWW2AAgGBAg4UDEhVhAVFXYQFQYQDXVltbYABhAV+FgoYBYQElVluSUFBgIGEBcIWChgFhASVWW5FQUJJQkpBQVlthAYOBYQD8VluCUlBQVltgAIGQUJGQUFZbYACBkFCRkFBWW2AAgZBQkZBQVltgAGEBwmEBvWEBuIRhAYlWW2EBnVZbYQGTVluQUJGQUFZbYQHSgWEBp1ZbglJQUFZbYABgQIIBkFBhAe1gAIMBhWEBelZbYQH6YCCDAYRhAclWW5OSUFBQVltgAIEVFZBQkZBQVlthAhaBYQIBVluBFGECIVdgAID9W1BWW2AAgVGQUGECM4FhAg1WW5KRUFBWW2AAYCCChAMSFWECT1dhAk5hANdWW1tgAGECXYSChQFhAiRWW5FQUJKRUFBW/qJkaXBmc1giEiAp+E1Y9qYH1ODnuTNzsQ5Cf9WtOT4NPGbrOAgSkIYNN2Rzb2xjQwAIEAAzIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACjAmgw6AxiXCEoWChQAAAAAAAAAAAAAAAAAAAAAAAAEF3IHCgMYlwgQAVIWCgkKAhgCEP+yxQ0KCQoCGGIQgLPFDQ=="},{"b64Body":"Cg8KCQjxsPqsBhDKAxICGAISAhgDGOC2iyAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGJAIEgMYkwg=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwKoa7rbiyco7fe0pmzXqe2RM+U5RXKjr0BQfs4f3i5ppVCy0hqJxUUI+DWSEPE+EvGgwIrbH6rAYQqJbE7AIiDwoJCPGw+qwGEMoDEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjysPqsBhDQAxICGAISAhgDGOC2iyAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGJUIEgMYkwg=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwVhgF1y73aCj9knSx2ADHRGVB0HS0L9JLNNBpLnwKmfRgFxJsUG3GNvlM1FTmuahbGgsIrrH6rAYQ7+7DeSIPCgkI8rD6rAYQ0AMSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjysPqsBhDWAxICGAISAhgDGOC2iyAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGJcIEgMYkwg=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwRmlyilQskal3RsTalE3m/ee48VD7x6/f3vL5n4l+K+tYLElZywn0Vkpa2By9D8MBGgwIrrH6rAYQjvLHhAMiDwoJCPKw+qwGENYDEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"ChAKCQjzsPqsBhDYAxIDGJAIEgIYAxiA/rWHASICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOOnAKAxiVCBCAkvQBImS/rT2wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK","b64Record":"CiUIFiIDGJUIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBl4o9k+JGPNEl6kYpGNDNjWtA7IchiJlEChnjfZHe1UJHbtm+wNUc7zN7jUZgnkS0aDAivsfqsBhCgpcGfASIQCgkI87D6rAYQ2AMSAxiQCCogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wgJirbDrCBQoDGJUIEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASKAAgAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAgAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCAAAAAAAAAAogKjDATKQAwoDGJMIEoACAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAACABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEIAAAAAAAAABogjFvh5evsfVvRT3FCfR6E890DFMD3sikeWyAKyMfDuSUaIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQVGiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEFyIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApSGQoKCgIYYhCAsNbYAQoLCgMYkAgQ/6/W2AE="},{"b64Body":"ChIKCQjzsPqsBhDYAxIDGJAIIAGCAxMaEQoDGJMIEgMYlQgaAxiXCCAK","b64Record":"CgIIFhIwAbdDPWsBB5Ti3yPC+FaTX8giKs2HrH78cyC6+GdTvJuoH0GXOWViedLzFDEcZR8zGgwIr7H6rAYQoaXBnwEiEgoJCPOw+qwGENgDEgMYkAggATq7AQoDGOcCEkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKOL9KlCd3+4BYmTh8hxnAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKagMYlQhSAHoMCK+x+qwGEKClwZ8B"}]},"NftAutoCreationIncludeAllowanceCheck":{"placeholderNum":1048,"encodedItems":[{"b64Body":"Cg8KCQj3sPqsBhD4AxICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISINoMCg95ocjkgHG5lagR/9bZ3ceS2X7TNqCFBLXtX9q5EICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGJkIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDuTG5v3HSvNfZ/xRbVyFwI0x2MgHcAjCLlQxzqh9UvyX3n/zQIxtGlasltQENShXoaDAizsfqsBhDulfy4AyIPCgkI97D6rAYQ+AMSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxiZCBCAqNa5Bw=="},{"b64Body":"Cg8KCQj4sPqsBhD6AxICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloyCiISIGhKxAUlPKlp8e+WAiOAt/UVxPL0aoN/KSEBgvprvM9PEICglKWNHUoFCIDO2gM=","b64Record":"CiUIFhIDGJoIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAlAITb1nqFcuEnpnzB86JovlRtWBIYjE2W5/6afTLQDV61cJC0XbOftYfjXqUgho0aDAi0sfqsBhChh7rdASIPCgkI+LD6rAYQ+gMSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIbCgsKAhgCEP+/qMqaOgoMCgMYmggQgMCoypo6"},{"b64Body":"Cg8KCQj4sPqsBhD8AxICGAISAhgDGMXCtfsCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAXoKEG5vbkZ1bmdpYmxlVG9rZW4SCFVFRFFLRVhHKgMYmggyIhIg7Aso6YcKiE7Osh9lygGI+GjXclj7F0CKhiMggCKTF9RSIhIg7Aso6YcKiE7Osh9lygGI+GjXclj7F0CKhiMggCKTF9RqDAi0/9SwBhDxk/q6A4gBAQ==","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGJsIEjAKfmzBl02M+nfQ6QBgEUpwZPsjt+ekHbTKPnGPDZdwF3h4lA+FUCOaWEwPhXGMKvkaDAi0sfqsBhDv67nCAyIPCgkI+LD6rAYQ/AMSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAcgoKAxibCBIDGJoI"},{"b64Body":"Cg8KCQj5sPqsBhCCBBICGAISAhgDGKmP9i8iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjqoCFwoDGJsIGgFBGgFCGgFDGgFEGgFFGgFG","b64Record":"CioIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1gGcgYBAgMEBQYSMB2QxyICeVcbXfqZ7IhIVm/8cKOXxS5gDkXYNQjD95dCx5TUSHLmvUI/je14zbs9DBoMCLWx+qwGENbg8eYBIg8KCQj5sPqsBhCCBBICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgBaUwoDGJsIGgsKAhgAEgMYmggYARoLCgIYABIDGJoIGAIaCwoCGAASAxiaCBgDGgsKAhgAEgMYmggYBBoLCgIYABIDGJoIGAUaCwoCGAASAxiaCBgG"},{"b64Body":"Cg8KCQj5sPqsBhCKBBICGAISAhgDGOC2iyAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGJkIEgMYmwg=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwiee4P28Xyod0fGznpZTiGijwBMTkyaDC4x1C3n6FiqWFb+8c2i/FaabezRMre+YMGgsItrH6rAYQub/fCyIPCgkI+bD6rAYQigQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQj6sPqsBhCMBBICGAISAhgDGIfiPCICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOciMSIQoDGJsIGgwKAxiaCBIDGJkIGAEaDAoDGJoIEgMYmQgYAg==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwCby2XNfwhMrWE2KInXw8gxg/h7oAzMdqFXyprLsp1ue8z1K0+nx2xTl67B39HmorGgwItrH6rAYQqvbM8AEiDwoJCPqw+qwGEIwEEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAFohCgMYmwgaDAoDGJoIEgMYmQgYARoMCgMYmggSAxiZCBgC"},{"b64Body":"Cg8KCQj6sPqsBhCNBBICGAISAhgDGICU69wDIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5yOBI2CgMYmwgaLwoDGJkIEiQiIhIgJodVk/CeAkEIsJNPWTGNJD7zJVDuIir9NqMb8mFvCdAYASAB","b64Record":"CiEIpAIqHAoMCAEQDBoGCICumaQPEgwIARAPGgYIgK6ZpA8SMM1P28iUwq6av2qOeKiHKOa8jtolmLVZeeB6QceXrTIA1xnd/SHDf9geiTZyNqE0iRoMCLax+qwGELWTvtUDIg8KCQj6sPqsBhCNBBICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgA="}]},"testIndirectApprovalWithDirectPrecompileCallee":{"placeholderNum":1053,"encodedItems":[{"b64Body":"Cg8KCQj/sPqsBhCdBBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISILXkLGPsjbqNmOlXCo4VBgfApsyingrF3rX/GShwVI1+EICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGJ4IKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAv9FkCLPIlszjhlqFQz1uUKkhwxvJUzTksdSw2Hu6R/7aysgCHLzsrSu03V+WFEOcaDAi7sfqsBhCw+9r6AiIPCgkI/7D6rAYQnQQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxieCBCAqNa5Bw=="},{"b64Body":"Cg8KCQiAsfqsBhCfBBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIO/Y26mRw5JmtjoszA3CneCygPauTNRCQ5dUh8BWFte1EICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGJ8IKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCiRbMq1gyn39QlG26Lr0Shj17GF/NjT9DoiNn+ge1WqNuR15vqXDnfKxt46WIf5M8aDAi8sfqsBhDEyN6CASIPCgkIgLH6rAYQnwQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxifCBCAqNa5Bw=="},{"b64Body":"Cg8KCQiAsfqsBhChBBICGAISAhgDGPHv7egCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qATYKDWZ1bmdpYmxlVG9rZW4SCFBJTFZKWEJTIP//////////fyoDGJ4IagwIvP/UsAYQo+zx6wI=","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGKAIEjDJYm98U8AnAMU1LbgjqMVPSmxkFVg4FvkmwrrtVolSOV0VmL3FTU3meaX3siUYfGgaDAi8sfqsBhCY976EAyIPCgkIgLH6rAYQoQQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWhcKAxigCBIQCgMYnggQ/v//////////AXIKCgMYoAgSAxieCA=="},{"b64Body":"Cg8KCQiBsfqsBhCjBBICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAi9/9SwBhCwhMeCARptCiISIMJSRus1VA+4y25bOqDioRhzyFrun9l6UuIbjYYkJ2oQCiM6IQLTfn7SQP8AuGt3cb3KejKhjmbpN5XuTAn0aznlWy3CcAoiEiA418aMPGUdGeHPVyko/I18zBVz37HdOIVAGDr04WBLqCIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGKEIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAeRmMArRf/MYaNtAz72XDhQGLfgCZLRnbAx6pF9gLF+a92yxTHy2Nt18mU56okMZAaDAi9sfqsBhCZ47yMASIPCgkIgbH6rAYQowQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiBsfqsBhCnBBICGAISAhgDGK3i3jAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBjAgKAxihCCKECDYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMDFlMjgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDAyYjU3NjAwMDM1NjBlMDFjODA2M2ZhNTBhYjIwMTQ2MTAwMzA1NzViNjAwMDgwZmQ1YjYxMDA0YTYwMDQ4MDM2MDM4MTAxOTA2MTAwNDU5MTkwNjEwMTIxNTY1YjYxMDA0YzU2NWIwMDViODI3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzZWZjMzg4MjY4MzgzNjA0MDUxODM2M2ZmZmZmZmZmMTY2MGUwMWI4MTUyNjAwNDAxNjEwMDg3OTI5MTkwNjEwMTgzNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NzgwM2IxNTgwMTU2MTAwYTE1NzYwMDA4MGZkNWI1MDVhZjExNTgwMTU2MTAwYjU1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA1MDUwNTA1NjViNjAwMDgwZmQ1YjYwMDA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MjE2OTA1MDkxOTA1MDU2NWI2MDAwNjEwMGVlODI2MTAwYzM1NjViOTA1MDkxOTA1MDU2NWI2MTAwZmU4MTYxMDBlMzU2NWI4MTE0NjEwMTA5NTc2MDAwODBmZDViNTA1NjViNjAwMDgxMzU5MDUwNjEwMTFiODE2MTAwZjU1NjViOTI5MTUwNTA1NjViNjAwMDgwNjAwMDYwNjA4NDg2MDMxMjE1NjEwMTNhNTc2MTAxMzk2MTAwYmU1NjViNWI2MDAwNjEwMTQ4ODY4Mjg3MDE2MTAxMGM1NjViOTM1MDUwNjAyMDYxMDE1OTg2ODI4NzAxNjEwMTBjNTY1YjkyNTA1MDYwNDA2MTAxNmE4NjgyODcwMTYxMDEwYzU2NWI5MTUwNTA5MjUwOTI1MDkyNTY1YjYxMDE3ZDgxNjEwMGUzNTY1YjgyNTI1MDUwNTY1YjYwMDA2MDQwODIwMTkwNTA2MTAxOTg2MDAwODMwMTg1NjEwMTc0NTY1YjYxMDFhNTYwMjA4MzAxODQ2MTAxNzQ1NjViOTM5MjUwNTA1MDU2ZmVhMjY0Njk3MDY2NzM1ODIyMTIyMDIwN2Y4OTNlMzNlMzI5ZWQ5ODBlNDExYmU3YTNhMGE4NjEzZmExZDFkZmYwMmIwMDM3MTY5YjkzYmIwYzcxMDA2NDczNmY2YzYzNDMwMDA4MTAwMDMz","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw5kE7iH1eUcQqKhfZJtLvTkOUdpiEGkvJTy9wLPjFAQckYw/aoAQ7yogfSJoxNdHoGgwIvbH6rAYQ/L+MjgMiDwoJCIGx+qwGEKcEEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQiCsfqsBhCpBBICGAISAhgDGIDa/6YBIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CSQoDGKEIGiYyJAoiEiAKqOIQZMYeq4biqcFkVltOeppBRhBuCmzQOow5WhEOkiCQoQ9CBQiAztoDUgBaAGoLY2VsbGFyIGRvb3I=","b64Record":"CiUIFiIDGKIIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjB8vJBgeD8j/d9h6wH18UiLu04477UprOtKf1c+9kul8hDvuryy03bmvgrp3tJI+mEaDAi+sfqsBhD/wpGWASIPCgkIgrH6rAYQqQQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQpcGCgMYoggS4gNggGBAUjSAFWEAEFdgAID9W1BgBDYQYQArV2AANWDgHIBj+lCrIBRhADBXW2AAgP1bYQBKYASANgOBAZBhAEWRkGEBIVZbYQBMVlsAW4Jz//////////////////////////8WY+/DiCaDg2BAUYNj/////xZg4BuBUmAEAWEAh5KRkGEBg1ZbYABgQFGAgwOBYACHgDsVgBVhAKFXYACA/VtQWvEVgBVhALVXPWAAgD49YAD9W1BQUFBQUFBWW2AAgP1bYABz//////////////////////////+CFpBQkZBQVltgAGEA7oJhAMNWW5BQkZBQVlthAP6BYQDjVluBFGEBCVdgAID9W1BWW2AAgTWQUGEBG4FhAPVWW5KRUFBWW2AAgGAAYGCEhgMSFWEBOldhATlhAL5WW1tgAGEBSIaChwFhAQxWW5NQUGAgYQFZhoKHAWEBDFZbklBQYEBhAWqGgocBYQEMVluRUFCSUJJQklZbYQF9gWEA41ZbglJQUFZbYABgQIIBkFBhAZhgAIMBhWEBdFZbYQGlYCCDAYRhAXRWW5OSUFBQVv6iZGlwZnNYIhIgIH+JPjPjKe2YDkEb56OgqGE/odHf8CsANxabk7sMcQBkc29sY0MACBAAMyKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAowJoMOgMYoghKFgoUAAAAAAAAAAAAAAAAAAAAAAAABCJyBwoDGKIIEAFSFgoJCgIYAhD/ssUNCgkKAhhiEICzxQ0="},{"b64Body":"Cg8KCQiCsfqsBhCrBBICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAi+/9SwBhCNmZ+AAxptCiISIDHt2MbzBsqJoWIVzM21FPiVoU4ObxwmVI2m+f9J5zI4CiM6IQLITRCS9h7zbVZrD1zK8JOfw0W72UwQXO0kXnBYKRcydAoiEiCZ3CWmQmhP7q4CkNM4zT27R71XUt6bkh8c4DWKHJlv3iIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGKMIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCKBWoSBwri97Fd4exNGHnGzoJucDbNo1DbhOAaijZzKQrOz/Wyf5O5LQ54WIjZC4waDAi+sfqsBhCH8LCXAyIPCgkIgrH6rAYQqwQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiDsfqsBhCvBBICGAISAhgDGLTOhTQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBgg4KAxijCCL6DTYwODA2MDQwNTI2MTAxNjc2MDAwODA2MTAxMDAwYTgxNTQ4MTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMTkxNjkwODM3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjAyMTc5MDU1NTAzNDgwMTU2MTAwNTI1NzYwMDA4MGZkNWI1MDYxMDMxYjgwNjEwMDYyNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDAyYjU3NjAwMDM1NjBlMDFjODA2M2VmYzM4ODI2MTQ2MTAwMzA1NzViNjAwMDgwZmQ1YjYxMDA0YTYwMDQ4MDM2MDM4MTAxOTA2MTAwNDU5MTkwNjEwMWJlNTY1YjYxMDA0YzU2NWIwMDViNjAwMDgwNTQ5MDYxMDEwMDBhOTAwNDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2M2UxZjIxYzY3NjBlMDFiODM4MzY3N2ZmZmZmZmZmZmZmZmZmZjYwNDA1MTYwMjQwMTYxMDBhODkzOTI5MTkwNjEwMjI2NTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMDExMjkxOTA2MTAyY2U1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMDE0ZjU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMDE1NDU2NWI2MDYwOTE1MDViNTA1MDUwNTA1MDU2NWI2MDAwODBmZDViNjAwMDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgyMTY5MDUwOTE5MDUwNTY1YjYwMDA2MTAxOGI4MjYxMDE2MDU2NWI5MDUwOTE5MDUwNTY1YjYxMDE5YjgxNjEwMTgwNTY1YjgxMTQ2MTAxYTY1NzYwMDA4MGZkNWI1MDU2NWI2MDAwODEzNTkwNTA2MTAxYjg4MTYxMDE5MjU2NWI5MjkxNTA1MDU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMDFkNTU3NjEwMWQ0NjEwMTViNTY1YjViNjAwMDYxMDFlMzg1ODI4NjAxNjEwMWE5NTY1YjkyNTA1MDYwMjA2MTAxZjQ4NTgyODYwMTYxMDFhOTU2NWI5MTUwNTA5MjUwOTI5MDUwNTY1YjYxMDIwNzgxNjEwMTgwNTY1YjgyNTI1MDUwNTY1YjYwMDA4MTkwNTA5MTkwNTA1NjViNjEwMjIwODE2MTAyMGQ1NjViODI1MjUwNTA1NjViNjAwMDYwNjA4MjAxOTA1MDYxMDIzYjYwMDA4MzAxODY2MTAxZmU1NjViNjEwMjQ4NjAyMDgzMDE4NTYxMDFmZTU2NWI2MTAyNTU2MDQwODMwMTg0NjEwMjE3NTY1Yjk0OTM1MDUwNTA1MDU2NWI2MDAwODE1MTkwNTA5MTkwNTA1NjViNjAwMDgxOTA1MDkyOTE1MDUwNTY1YjYwMDA1YjgzODExMDE1NjEwMjkxNTc4MDgyMDE1MTgxODQwMTUyNjAyMDgxMDE5MDUwNjEwMjc2NTY1YjYwMDA4NDg0MDE1MjUwNTA1MDUwNTY1YjYwMDA2MTAyYTg4MjYxMDI1ZDU2NWI2MTAyYjI4MTg1NjEwMjY4NTY1YjkzNTA2MTAyYzI4MTg1NjAyMDg2MDE2MTAyNzM1NjViODA4NDAxOTE1MDUwOTI5MTUwNTA1NjViNjAwMDYxMDJkYTgyODQ2MTAyOWQ1NjViOTE1MDgxOTA1MDkyOTE1MDUwNTZmZWEyNjQ2OTcwNjY3MzU4MjIxMjIwZTBiOTFkMzE5ZDY0N2ZlOGFjYTJlMGU4ZDUxMDZkYzgzZWJkNDE1YTRjMDU3OTk3Yzc2NmU0OGNjMjI2ZmIwMTY0NzM2ZjZjNjM0MzAwMDgxMDAwMzM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwa5sikzfjwORl0hV1jvZVN3YLqJ08geuC5QxB6ev7vWtljLfulNhfIUnCejRPOTFFGgwIv7H6rAYQgKirnwEiDwoJCIOx+qwGEK8EEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQiDsfqsBhCxBBICGAISAhgDGIDa/6YBIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CSQoDGKMIGiYyJAoiEiAKqOIQZMYeq4biqcFkVltOeppBRhBuCmzQOow5WhEOkiCQoQ9CBQiAztoDUgBaAGoLY2VsbGFyIGRvb3I=","b64Record":"CiUIFiIDGKQIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDkaGWeEvSPdjVy1NRJSzVQajxRiz57QK/c3iGD3oecZL9RsY+OpgK7dD+5OBgZ5zkaDAi/sfqsBhCAx5yhAyIPCgkIg7H6rAYQsQQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQtAICgMYpAgSmwZggGBAUjSAFWEAEFdgAID9W1BgBDYQYQArV2AANWDgHIBj78OIJhRhADBXW2AAgP1bYQBKYASANgOBAZBhAEWRkGEBvlZbYQBMVlsAW2AAgFSQYQEACpAEc///////////////////////////FnP//////////////////////////xZj4fIcZ2DgG4ODZ3//////////YEBRYCQBYQCok5KRkGECJlZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQESkZBhAs5WW2AAYEBRgIMDgWAAhlrxkVBQPYBgAIEUYQFPV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YQFUVltgYJFQW1BQUFBQVltgAID9W2AAc///////////////////////////ghaQUJGQUFZbYABhAYuCYQFgVluQUJGQUFZbYQGbgWEBgFZbgRRhAaZXYACA/VtQVltgAIE1kFBhAbiBYQGSVluSkVBQVltgAIBgQIOFAxIVYQHVV2EB1GEBW1ZbW2AAYQHjhYKGAWEBqVZbklBQYCBhAfSFgoYBYQGpVluRUFCSUJKQUFZbYQIHgWEBgFZbglJQUFZbYACBkFCRkFBWW2ECIIFhAg1WW4JSUFBWW2AAYGCCAZBQYQI7YACDAYZhAf5WW2ECSGAggwGFYQH+VlthAlVgQIMBhGECF1ZblJNQUFBQVltgAIFRkFCRkFBWW2AAgZBQkpFQUFZbYABbg4EQFWECkVeAggFRgYQBUmAggQGQUGECdlZbYACEhAFSUFBQUFZbYABhAqiCYQJdVlthArKBhWECaFZbk1BhAsKBhWAghgFhAnNWW4CEAZFQUJKRUFBWW2AAYQLagoRhAp1WW5FQgZBQkpFQUFb+omRpcGZzWCISIOC5HTGdZH/orKLg6NUQbcg+vUFaTAV5l8dm5IzCJvsBZHNvbGNDAAgQADMigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMCaDDoDGKQIShYKFAAAAAAAAAAAAAAAAAAAAAAAAAQkcgcKAxikCBABUhYKCQoCGAIQ/7LFDQoJCgIYYhCAs8UN"},{"b64Body":"Cg8KCQiEsfqsBhC3BBICGAISAhgDGL/TjhQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGKIIEgMYoAg=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwEkEwj2ced3xGY/FvJdYlK9BGXIJdECikx0GvBId+ScXhzWQoitGKcCnwACt2Z9GeGgwIwLH6rAYQ67SmqQEiDwoJCISx+qwGELcEEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQiEsfqsBhC9BBICGAISAhgDGL/TjhQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGKQIEgMYoAg=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwi5XEO+0suoB/CKy43tJUp/k+q618uD8DtLJi6F5x7K2H/VqYKl3/SZKUJmIP420PGgwIwLH6rAYQrLTEqgMiDwoJCISx+qwGEL0EEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQiFsfqsBhC/BBICGAISAhgDGMC9o6kBIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46cAoDGKIIEMCWsQIiZPpQqyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABB8=","b64Record":"CiUIFiIDGKIIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBIzyznOsgQOVV7b5qujSLKG2VoJxMeWulRcGsvpSHLC/hEoZRcv3BSGPfNt3I8N74aDAjBsfqsBhC5qP/OASIPCgkIhbH6rAYQvwQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCA/rWHATqgBQoDGKIIIoACCAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAACAAAAAAAAACAAAAAAAAAABAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACiAkvQBMpADCgMYoAgSgAIIAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAIAAAAAAAAAIAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGiCMW+Hl6+x9W9FPcUJ9HoTz3QMUwPeyKR5bIArIx8O5JRogAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCQaIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQfIiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//////////1IYCgoKAhgCEP/7644CCgoKAhhiEID8644C"},{"b64Body":"ChEKCQiFsfqsBhC/BBICGAIgAYIDGxoZCgMYoAgSAxikCBoDGJ8IIP//////////fw==","b64Record":"CgIIFhIwGohnDzFV4d78c44pSDqMx444TVgGj6A0h3GqIH961YJgTKbAkJHwBYhbUgYyZxhIGgwIwbH6rAYQuqj/zgEiEQoJCIWx+qwGEL8EEgIYAiABOrsBCgMY5wISQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEo4v0qUILnpQJiZOHyHGcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/////////9qAxikCFIAegwIwbH6rAYQuaj/zgE="}]},"testIndirectApprovalWithDelegateErc20Callee":{"placeholderNum":1061,"encodedItems":[{"b64Body":"Cg8KCQiKsfqsBhDXBBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIPg33OlrzBR9qVohLJiNPJn7doOfnsIjxG+i+SXh6BseEICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGKYIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAJ9nT9kdWcT5y22rhTZKw8mY4A2UP+eOSxdNLuimDLHwGEUkGY+bua/d2RYCXkXGYaCwjGsfqsBhC7zpNAIg8KCQiKsfqsBhDXBBICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUhkKCgoCGAIQ/6fWuQcKCwoDGKYIEICo1rkH"},{"b64Body":"Cg8KCQiKsfqsBhDZBBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIBX/42P+WMeha5gON91YO2Pl+vyQ6L5pehPKsvCaQwKOEICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGKcIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjALRDz94+mRSyEEKK0++3+u8XCXU1l/P3ZKRbxxb21YvrwUC4Tpt3F0EbVpMrSGBlAaDAjGsfqsBhCsjI2lAiIPCgkIirH6rAYQ2QQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxinCBCAqNa5Bw=="},{"b64Body":"Cg8KCQiLsfqsBhDbBBICGAISAhgDGPHv7egCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qATUKDWZ1bmdpYmxlVG9rZW4SCEdCQlVGT1RUIP//////////fyoDGKYIagsIx//UsAYQpdLrKg==","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGKgIEjCg47UJ/ZXv83vyXYudhOaSezRQ6Jq9M2aBI782QvBlLf5zupmEf7R3eD8BvmSnCdQaCwjHsfqsBhCx05gtIg8KCQiLsfqsBhDbBBICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgBaFwoDGKgIEhAKAximCBD+//////////8BcgoKAxioCBIDGKYI"},{"b64Body":"Cg8KCQiLsfqsBhDdBBICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAjH/9SwBhDvsOmdAhptCiISIJ/AO8MCdMrWpIbgIewdUKt728jQdWgvdx6DwYOCb2GnCiM6IQPP5+zXVR5zKG+cRdgR/FFDYOjhMy3vAmFRpEg20wEe7AoiEiBAX1sUxhOhoL+g3gaS4SK8wXIO8OaB24n7iTK/+GpGkCIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGKkIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCSbL34I01frrJ1Slae/H1ioFVhei/AKTNl6NMBmgBylaRIq9D8JP4AkrmwWxUs1hkaDAjHsfqsBhCNsr2uAiIPCgkIi7H6rAYQ3QQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiMsfqsBhDhBBICGAISAhgDGK3i3jAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBjAgKAxipCCKECDYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMDFlMjgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDAyYjU3NjAwMDM1NjBlMDFjODA2M2ZhNTBhYjIwMTQ2MTAwMzA1NzViNjAwMDgwZmQ1YjYxMDA0YTYwMDQ4MDM2MDM4MTAxOTA2MTAwNDU5MTkwNjEwMTIxNTY1YjYxMDA0YzU2NWIwMDViODI3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzZWZjMzg4MjY4MzgzNjA0MDUxODM2M2ZmZmZmZmZmMTY2MGUwMWI4MTUyNjAwNDAxNjEwMDg3OTI5MTkwNjEwMTgzNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NzgwM2IxNTgwMTU2MTAwYTE1NzYwMDA4MGZkNWI1MDVhZjExNTgwMTU2MTAwYjU1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA1MDUwNTA1NjViNjAwMDgwZmQ1YjYwMDA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MjE2OTA1MDkxOTA1MDU2NWI2MDAwNjEwMGVlODI2MTAwYzM1NjViOTA1MDkxOTA1MDU2NWI2MTAwZmU4MTYxMDBlMzU2NWI4MTE0NjEwMTA5NTc2MDAwODBmZDViNTA1NjViNjAwMDgxMzU5MDUwNjEwMTFiODE2MTAwZjU1NjViOTI5MTUwNTA1NjViNjAwMDgwNjAwMDYwNjA4NDg2MDMxMjE1NjEwMTNhNTc2MTAxMzk2MTAwYmU1NjViNWI2MDAwNjEwMTQ4ODY4Mjg3MDE2MTAxMGM1NjViOTM1MDUwNjAyMDYxMDE1OTg2ODI4NzAxNjEwMTBjNTY1YjkyNTA1MDYwNDA2MTAxNmE4NjgyODcwMTYxMDEwYzU2NWI5MTUwNTA5MjUwOTI1MDkyNTY1YjYxMDE3ZDgxNjEwMGUzNTY1YjgyNTI1MDUwNTY1YjYwMDA2MDQwODIwMTkwNTA2MTAxOTg2MDAwODMwMTg1NjEwMTc0NTY1YjYxMDFhNTYwMjA4MzAxODQ2MTAxNzQ1NjViOTM5MjUwNTA1MDU2ZmVhMjY0Njk3MDY2NzM1ODIyMTIyMDIwN2Y4OTNlMzNlMzI5ZWQ5ODBlNDExYmU3YTNhMGE4NjEzZmExZDFkZmYwMmIwMDM3MTY5YjkzYmIwYzcxMDA2NDczNmY2YzYzNDMwMDA4MTAwMDMz","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwb2WG45HHwCucX3jmTdm0+lALme7XmoqbXPyS90RAC+L/aPN+fhlFSf0eIecZ5s74GgsIyLH6rAYQl7GhUyIPCgkIjLH6rAYQ4QQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiMsfqsBhDjBBICGAISAhgDGIDa/6YBIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CSQoDGKkIGiYyJAoiEiAKqOIQZMYeq4biqcFkVltOeppBRhBuCmzQOow5WhEOkiCQoQ9CBQiAztoDUgBaAGoLY2VsbGFyIGRvb3I=","b64Record":"CiUIFiIDGKoIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCydaso2XeVSeKIVUxTpVXUsiS1AQuKPHGEs5ZAueU8srWdZWqgQaFSU5kvPWQBNiMaDAjIsfqsBhD2zpK4AiIPCgkIjLH6rAYQ4wQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQpcGCgMYqggS4gNggGBAUjSAFWEAEFdgAID9W1BgBDYQYQArV2AANWDgHIBj+lCrIBRhADBXW2AAgP1bYQBKYASANgOBAZBhAEWRkGEBIVZbYQBMVlsAW4Jz//////////////////////////8WY+/DiCaDg2BAUYNj/////xZg4BuBUmAEAWEAh5KRkGEBg1ZbYABgQFGAgwOBYACHgDsVgBVhAKFXYACA/VtQWvEVgBVhALVXPWAAgD49YAD9W1BQUFBQUFBWW2AAgP1bYABz//////////////////////////+CFpBQkZBQVltgAGEA7oJhAMNWW5BQkZBQVlthAP6BYQDjVluBFGEBCVdgAID9W1BWW2AAgTWQUGEBG4FhAPVWW5KRUFBWW2AAgGAAYGCEhgMSFWEBOldhATlhAL5WW1tgAGEBSIaChwFhAQxWW5NQUGAgYQFZhoKHAWEBDFZbklBQYEBhAWqGgocBYQEMVluRUFCSUJJQklZbYQF9gWEA41ZbglJQUFZbYABgQIIBkFBhAZhgAIMBhWEBdFZbYQGlYCCDAYRhAXRWW5OSUFBQVv6iZGlwZnNYIhIgIH+JPjPjKe2YDkEb56OgqGE/odHf8CsANxabk7sMcQBkc29sY0MACBAAMyKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAowJoMOgMYqghKFgoUAAAAAAAAAAAAAAAAAAAAAAAABCpyBwoDGKoIEAFSFgoJCgIYAhD/ssUNCgkKAhhiEICzxQ0="},{"b64Body":"Cg8KCQiNsfqsBhDlBBICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjgESCwjJ/9SwBhDr4ag+Gm0KIhIgR5ivel9DrFmZMzm4zwso6w1AYA+OdiRK1QKDPnqpkNoKIzohAwjC86lqJ0byU0vIW3Xr/AFGtlLZBqmt1IiFm0AobopFCiISIFgr/aVT5v3hpr16tL2oPo01T5n2tx1KxKfRLYB3XwSBIgxIZWxsbyBXb3JsZCEqADIA","b64Record":"CiUIFhoDGKsIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjA1ZZL2JNdxW/lZJX7o4gfqoHflGESjkjgWA70wFc/HxVmxMM9c0eifXvnihPVaT8gaCwjJsfqsBhDAw/xcIg8KCQiNsfqsBhDlBBICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgA="},{"b64Body":"Cg8KCQiNsfqsBhDpBBICGAISAhgDGN6YhDMiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBmgwKAxirCCKSDDYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMDJlOTgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDAyYjU3NjAwMDM1NjBlMDFjODA2M2VmYzM4ODI2MTQ2MTAwMzA1NzViNjAwMDgwZmQ1YjYxMDA0YTYwMDQ4MDM2MDM4MTAxOTA2MTAwNDU5MTkwNjEwMTlhNTY1YjYxMDA0YzU2NWIwMDViODE3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzMDk1ZWE3YjM2MGUwMWI4MjY3N2ZmZmZmZmZmZmZmZmZmZjYwNDA1MTYwMjQwMTYxMDA4NjkyOTE5MDYxMDIwMjU2NWI2MDQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI5MDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTAwZjA5MTkwNjEwMjljNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTg1NWFmNDkxNTA1MDNkODA2MDAwODExNDYxMDEyYjU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMDEzMDU2NWI2MDYwOTE1MDViNTA1MDUwNTA1MDU2NWI2MDAwODBmZDViNjAwMDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgyMTY5MDUwOTE5MDUwNTY1YjYwMDA2MTAxNjc4MjYxMDEzYzU2NWI5MDUwOTE5MDUwNTY1YjYxMDE3NzgxNjEwMTVjNTY1YjgxMTQ2MTAxODI1NzYwMDA4MGZkNWI1MDU2NWI2MDAwODEzNTkwNTA2MTAxOTQ4MTYxMDE2ZTU2NWI5MjkxNTA1MDU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMDFiMTU3NjEwMWIwNjEwMTM3NTY1YjViNjAwMDYxMDFiZjg1ODI4NjAxNjEwMTg1NTY1YjkyNTA1MDYwMjA2MTAxZDA4NTgyODYwMTYxMDE4NTU2NWI5MTUwNTA5MjUwOTI5MDUwNTY1YjYxMDFlMzgxNjEwMTVjNTY1YjgyNTI1MDUwNTY1YjYwMDA4MTkwNTA5MTkwNTA1NjViNjEwMWZjODE2MTAxZTk1NjViODI1MjUwNTA1NjViNjAwMDYwNDA4MjAxOTA1MDYxMDIxNzYwMDA4MzAxODU2MTAxZGE1NjViNjEwMjI0NjAyMDgzMDE4NDYxMDFmMzU2NWI5MzkyNTA1MDUwNTY1YjYwMDA4MTUxOTA1MDkxOTA1MDU2NWI2MDAwODE5MDUwOTI5MTUwNTA1NjViNjAwMDViODM4MTEwMTU2MTAyNWY1NzgwODIwMTUxODE4NDAxNTI2MDIwODEwMTkwNTA2MTAyNDQ1NjViNjAwMDg0ODQwMTUyNTA1MDUwNTA1NjViNjAwMDYxMDI3NjgyNjEwMjJiNTY1YjYxMDI4MDgxODU2MTAyMzY1NjViOTM1MDYxMDI5MDgxODU2MDIwODYwMTYxMDI0MTU2NWI4MDg0MDE5MTUwNTA5MjkxNTA1MDU2NWI2MDAwNjEwMmE4ODI4NDYxMDI2YjU2NWI5MTUwODE5MDUwOTI5MTUwNTA1NmZlYTI2NDY5NzA2NjczNTgyMjEyMjA2MzkxZWM5NTZlYjk4MzUwMmM4N2NjMTNmMTVhMGFjMjZjOGE2ZWU2NTFiZmJlMDE3NWMxYjViNTVjYWNkZTZkNjQ3MzZmNmM2MzQzMDAwODEwMDAzMw==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwlS8IlVtM1DFlOhSXFs9cVSSL1F4BgJKUXN5ZbbGWzd6zDCW54v0v0wNRVcJQHCIyGgwIybH6rAYQgoLUxgIiDwoJCI2x+qwGEOkEEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQiOsfqsBhDrBBICGAISAhgDGIDa/6YBIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CSQoDGKsIGiYyJAoiEiAKqOIQZMYeq4biqcFkVltOeppBRhBuCmzQOow5WhEOkiCQoQ9CBQiAztoDUgBaAGoLY2VsbGFyIGRvb3I=","b64Record":"CiUIFiIDGKwIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDxBW06beAzzjnbnwDg/9AWgbAVmhF0gIfeLKAmyqS4b9woUKXcTBU/SfGMfGIZVcUaCwjKsfqsBhDtnqJOIg8KCQiOsfqsBhDrBBICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMMDZ4gZCnggKAxisCBLpBWCAYEBSNIAVYQAQV2AAgP1bUGAENhBhACtXYAA1YOAcgGPvw4gmFGEAMFdbYACA/VthAEpgBIA2A4EBkGEARZGQYQGaVlthAExWWwBbgXP//////////////////////////xZjCV6ns2DgG4Jnf/////////9gQFFgJAFhAIaSkZBhAgJWW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEA8JGQYQKcVltgAGBAUYCDA4GFWvSRUFA9gGAAgRRhAStXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hATBWW2BgkVBbUFBQUFBWW2AAgP1bYABz//////////////////////////+CFpBQkZBQVltgAGEBZ4JhATxWW5BQkZBQVlthAXeBYQFcVluBFGEBgldgAID9W1BWW2AAgTWQUGEBlIFhAW5WW5KRUFBWW2AAgGBAg4UDEhVhAbFXYQGwYQE3VltbYABhAb+FgoYBYQGFVluSUFBgIGEB0IWChgFhAYVWW5FQUJJQkpBQVlthAeOBYQFcVluCUlBQVltgAIGQUJGQUFZbYQH8gWEB6VZbglJQUFZbYABgQIIBkFBhAhdgAIMBhWEB2lZbYQIkYCCDAYRhAfNWW5OSUFBQVltgAIFRkFCRkFBWW2AAgZBQkpFQUFZbYABbg4EQFWECX1eAggFRgYQBUmAggQGQUGECRFZbYACEhAFSUFBQUFZbYABhAnaCYQIrVlthAoCBhWECNlZbk1BhApCBhWAghgFhAkFWW4CEAZFQUJKRUFBWW2AAYQKogoRhAmtWW5FQgZBQkpFQUFb+omRpcGZzWCISIGOR7JVuuYNQLIfME/FaCsJsim7mUb++AXXBtbVcrN5tZHNvbGNDAAgQADMigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMCaDDoDGKwIShYKFAAAAAAAAAAAAAAAAAAAAAAAAAQscgcKAxisCBABUhYKCQoCGAIQ/7LFDQoJCgIYYhCAs8UN"},{"b64Body":"Cg8KCQiOsfqsBhDxBBICGAISAhgDGL/TjhQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGKoIEgMYqAg=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw5GNlQhh7iWMlSPF0ZNZdTMfnZr5UW+Yzj2ppOqQDhAVhSKEYTqQReCJojG4+o7AWGgwIyrH6rAYQ6IiG0AIiDwoJCI6x+qwGEPEEEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQiPsfqsBhD3BBICGAISAhgDGL/TjhQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGKwIEgMYqAg=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwAoWlDvxTIpGDljJdcRGm0BhHIj3J1ht13xYDSycyu95IDHx+aQLYJDtssnSeYpSnGgsIy7H6rAYQxO7OdCIPCgkIj7H6rAYQ9wQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiPsfqsBhD5BBICGAISAhgDGMC9o6kBIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46cAoDGKoIEMCWsQIiZPpQqyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAELAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCc=","b64Record":"CiUIFiIDGKoIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAfN+osHDQWYXXPqLBvcfbvU/Pcv5RYFHzdLyUxh3utZgCyYRHtN001gnJ//z4C+i8aDAjLsfqsBhCi+MbZAiIPCgkIj7H6rAYQ+QQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjD2ksKhATqNAgoDGKoIIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACjal6MCUhgKCgoCGAIQ66WEwwIKCgoCGGIQ7KWEwwI="}]},"testIndirectApprovalWithDelegatePrecompileCallee":{"placeholderNum":1069,"encodedItems":[{"b64Body":"Cg8KCQiUsfqsBhCRBRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISICECU2itXiRpGiT9ZBcOKc584BPc4PjlH9zVKG+EMjBOEICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGK4IKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBDBmd+aKHzF566QOyZQm/DZCxy/23RzBnhpbPjfUUC2HnFFYDC5HZWeDnnHT5OhPQaDAjQsfqsBhC6kYjBASIPCgkIlLH6rAYQkQUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxiuCBCAqNa5Bw=="},{"b64Body":"Cg8KCQiUsfqsBhCTBRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIOD5r3uwmrC595aiRqQ8APUxbOWZvN5Dl8t3p6OID+FqEICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGK8IKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjD7XmIDCtKp/I1Ih6jpsA/EZ6Vkmq8oRbT+30EgOSCQvyrdHgyK8kwztVwAdwmlVCcaDAjQsfqsBhDzhqHCAyIPCgkIlLH6rAYQkwUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxivCBCAqNa5Bw=="},{"b64Body":"Cg8KCQiVsfqsBhCVBRICGAISAhgDGPHv7egCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qATYKDWZ1bmdpYmxlVG9rZW4SCFJHRU1OUVdNIP//////////fyoDGK4IagwI0f/UsAYQm/j+wwE=","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGLAIEjAnYU3Bq0j/VjqAqOjVK6Aec+VUatN9M5u3SE67fiQdu5MUOW2uroGtY13y0LXd3W4aDAjRsfqsBhCbkKjKASIPCgkIlbH6rAYQlQUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWhcKAxiwCBIQCgMYrggQ/v//////////AXIKCgMYsAgSAxiuCA=="},{"b64Body":"Cg8KCQiVsfqsBhCXBRICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAjR/9SwBhDTyKG3AxptCiISINNjdwmTzCkaGYBX76wQjD5ZMx2QUk+HHMJHyFZ+u7leCiM6IQLbb8MqMO1zpAqiLxgiG5OIIEMpS1LrQvN0jZ+Btp+1CAoiEiCJvfWkiTwsRK+kH3xQDuFoni5oQORp2fFq13W24u/mlyIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGLEIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDXCDv4E/H8OUJdvQAnxgqU2eQgjQMdBsOjy5R8jP5iU0TYprMbKOcfMfZOtbYmRHkaDAjRsfqsBhDysPnQAyIPCgkIlbH6rAYQlwUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiWsfqsBhCbBRICGAISAhgDGK3i3jAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBjAgKAxixCCKECDYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMDFlMjgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDAyYjU3NjAwMDM1NjBlMDFjODA2M2ZhNTBhYjIwMTQ2MTAwMzA1NzViNjAwMDgwZmQ1YjYxMDA0YTYwMDQ4MDM2MDM4MTAxOTA2MTAwNDU5MTkwNjEwMTIxNTY1YjYxMDA0YzU2NWIwMDViODI3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzZWZjMzg4MjY4MzgzNjA0MDUxODM2M2ZmZmZmZmZmMTY2MGUwMWI4MTUyNjAwNDAxNjEwMDg3OTI5MTkwNjEwMTgzNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NzgwM2IxNTgwMTU2MTAwYTE1NzYwMDA4MGZkNWI1MDVhZjExNTgwMTU2MTAwYjU1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA1MDUwNTA1NjViNjAwMDgwZmQ1YjYwMDA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MjE2OTA1MDkxOTA1MDU2NWI2MDAwNjEwMGVlODI2MTAwYzM1NjViOTA1MDkxOTA1MDU2NWI2MTAwZmU4MTYxMDBlMzU2NWI4MTE0NjEwMTA5NTc2MDAwODBmZDViNTA1NjViNjAwMDgxMzU5MDUwNjEwMTFiODE2MTAwZjU1NjViOTI5MTUwNTA1NjViNjAwMDgwNjAwMDYwNjA4NDg2MDMxMjE1NjEwMTNhNTc2MTAxMzk2MTAwYmU1NjViNWI2MDAwNjEwMTQ4ODY4Mjg3MDE2MTAxMGM1NjViOTM1MDUwNjAyMDYxMDE1OTg2ODI4NzAxNjEwMTBjNTY1YjkyNTA1MDYwNDA2MTAxNmE4NjgyODcwMTYxMDEwYzU2NWI5MTUwNTA5MjUwOTI1MDkyNTY1YjYxMDE3ZDgxNjEwMGUzNTY1YjgyNTI1MDUwNTY1YjYwMDA2MDQwODIwMTkwNTA2MTAxOTg2MDAwODMwMTg1NjEwMTc0NTY1YjYxMDFhNTYwMjA4MzAxODQ2MTAxNzQ1NjViOTM5MjUwNTA1MDU2ZmVhMjY0Njk3MDY2NzM1ODIyMTIyMDIwN2Y4OTNlMzNlMzI5ZWQ5ODBlNDExYmU3YTNhMGE4NjEzZmExZDFkZmYwMmIwMDM3MTY5YjkzYmIwYzcxMDA2NDczNmY2YzYzNDMwMDA4MTAwMDMz","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwcTZ0hR/Y3kutmSgpwJIFpRqjWmFSn56+PY7uQIn6oqHVmykSuuPKDkFL+qX0DZe+GgwI0rH6rAYQr+7M2AEiDwoJCJax+qwGEJsFEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQiWsfqsBhCdBRICGAISAhgDGIDa/6YBIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CSQoDGLEIGiYyJAoiEiAKqOIQZMYeq4biqcFkVltOeppBRhBuCmzQOow5WhEOkiCQoQ9CBQiAztoDUgBaAGoLY2VsbGFyIGRvb3I=","b64Record":"CiUIFiIDGLIIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAKGEgljsjGcjzICktqIEaN08VCcJEJUofFz4riliaJGiIZZN6NrahonF7jwVkHrYEaCwjTsfqsBhDAzIQHIg8KCQiWsfqsBhCdBRICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMMDZ4gZClwYKAxiyCBLiA2CAYEBSNIAVYQAQV2AAgP1bUGAENhBhACtXYAA1YOAcgGP6UKsgFGEAMFdbYACA/VthAEpgBIA2A4EBkGEARZGQYQEhVlthAExWWwBbgnP//////////////////////////xZj78OIJoODYEBRg2P/////FmDgG4FSYAQBYQCHkpGQYQGDVltgAGBAUYCDA4FgAIeAOxWAFWEAoVdgAID9W1Ba8RWAFWEAtVc9YACAPj1gAP1bUFBQUFBQUFZbYACA/VtgAHP//////////////////////////4IWkFCRkFBWW2AAYQDugmEAw1ZbkFCRkFBWW2EA/oFhAONWW4EUYQEJV2AAgP1bUFZbYACBNZBQYQEbgWEA9VZbkpFQUFZbYACAYABgYISGAxIVYQE6V2EBOWEAvlZbW2AAYQFIhoKHAWEBDFZbk1BQYCBhAVmGgocBYQEMVluSUFBgQGEBaoaChwFhAQxWW5FQUJJQklCSVlthAX2BYQDjVluCUlBQVltgAGBAggGQUGEBmGAAgwGFYQF0VlthAaVgIIMBhGEBdFZbk5JQUFBW/qJkaXBmc1giEiAgf4k+M+Mp7ZgOQRvno6CoYT+h0d/wKwA3FpuTuwxxAGRzb2xjQwAIEAAzIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACjAmgw6AxiyCEoWChQAAAAAAAAAAAAAAAAAAAAAAAAEMnIHCgMYsggQAVIWCgkKAhgCEP+yxQ0KCQoCGGIQgLPFDQ=="},{"b64Body":"Cg8KCQiXsfqsBhCfBRICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAjT/9SwBhDTyKreARptCiISIKnszEMd2DIa4tZwCQbuPis/z+U34VWIGOTjoSGGJeQSCiM6IQOZjAGY4N3acyLZVWa3xNnvRoOTDsktaVh6az1GNPVQXQoiEiD8cU0ZO1Rl0B/src6pxyDm9hw/PSygnEIx6fPjtA6JziIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGLMIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjA2MM/NySLY1zTaqmSonhcM/DoDLVbreQo7b2Q1LDTNd56AupfFcgVmntbvQg5jetoaDAjTsfqsBhCa5/zrASIPCgkIl7H6rAYQnwUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiXsfqsBhCjBRICGAISAhgDGOWwgzQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoB/g0KAxizCCL2DTYwODA2MDQwNTI2MTAxNjc2MDAwODA2MTAxMDAwYTgxNTQ4MTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMTkxNjkwODM3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjAyMTc5MDU1NTAzNDgwMTU2MTAwNTI1NzYwMDA4MGZkNWI1MDYxMDMxOTgwNjEwMDYyNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDAyYjU3NjAwMDM1NjBlMDFjODA2M2VmYzM4ODI2MTQ2MTAwMzA1NzViNjAwMDgwZmQ1YjYxMDA0YTYwMDQ4MDM2MDM4MTAxOTA2MTAwNDU5MTkwNjEwMWJjNTY1YjYxMDA0YzU2NWIwMDViNjAwMDgwNTQ5MDYxMDEwMDBhOTAwNDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2M2UxZjIxYzY3NjBlMDFiODM4MzY3N2ZmZmZmZmZmZmZmZmZmZjYwNDA1MTYwMjQwMTYxMDBhODkzOTI5MTkwNjEwMjI0NTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMDExMjkxOTA2MTAyY2M1NjViNjAwMDYwNDA1MTgwODMwMzgxODU1YWY0OTE1MDUwM2Q4MDYwMDA4MTE0NjEwMTRkNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjEwMTUyNTY1YjYwNjA5MTUwNWI1MDUwNTA1MDUwNTY1YjYwMDA4MGZkNWI2MDAwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIxNjkwNTA5MTkwNTA1NjViNjAwMDYxMDE4OTgyNjEwMTVlNTY1YjkwNTA5MTkwNTA1NjViNjEwMTk5ODE2MTAxN2U1NjViODExNDYxMDFhNDU3NjAwMDgwZmQ1YjUwNTY1YjYwMDA4MTM1OTA1MDYxMDFiNjgxNjEwMTkwNTY1YjkyOTE1MDUwNTY1YjYwMDA4MDYwNDA4Mzg1MDMxMjE1NjEwMWQzNTc2MTAxZDI2MTAxNTk1NjViNWI2MDAwNjEwMWUxODU4Mjg2MDE2MTAxYTc1NjViOTI1MDUwNjAyMDYxMDFmMjg1ODI4NjAxNjEwMWE3NTY1YjkxNTA1MDkyNTA5MjkwNTA1NjViNjEwMjA1ODE2MTAxN2U1NjViODI1MjUwNTA1NjViNjAwMDgxOTA1MDkxOTA1MDU2NWI2MTAyMWU4MTYxMDIwYjU2NWI4MjUyNTA1MDU2NWI2MDAwNjA2MDgyMDE5MDUwNjEwMjM5NjAwMDgzMDE4NjYxMDFmYzU2NWI2MTAyNDY2MDIwODMwMTg1NjEwMWZjNTY1YjYxMDI1MzYwNDA4MzAxODQ2MTAyMTU1NjViOTQ5MzUwNTA1MDUwNTY1YjYwMDA4MTUxOTA1MDkxOTA1MDU2NWI2MDAwODE5MDUwOTI5MTUwNTA1NjViNjAwMDViODM4MTEwMTU2MTAyOGY1NzgwODIwMTUxODE4NDAxNTI2MDIwODEwMTkwNTA2MTAyNzQ1NjViNjAwMDg0ODQwMTUyNTA1MDUwNTA1NjViNjAwMDYxMDJhNjgyNjEwMjViNTY1YjYxMDJiMDgxODU2MTAyNjY1NjViOTM1MDYxMDJjMDgxODU2MDIwODYwMTYxMDI3MTU2NWI4MDg0MDE5MTUwNTA5MjkxNTA1MDU2NWI2MDAwNjEwMmQ4ODI4NDYxMDI5YjU2NWI5MTUwODE5MDUwOTI5MTUwNTA1NmZlYTI2NDY5NzA2NjczNTgyMjEyMjBmOWJlZmRjY2FkYzkyMjU2NGQ0MzY2NDdmM2UyMTdkNDVlMTZiNjNlNzMxNDRjNjEyOWMwYWFjNjYxM2E4ZTdjNjQ3MzZmNmM2MzQzMDAwODEwMDAzMw==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwZk10Xj1TZO/HTFFizC2h1U+ZHF1tRieaCR3cv3q+cC3zkhZ1Hj4tqumLwkushqvyGgsI1LH6rAYQg5auECIPCgkIl7H6rAYQowUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiYsfqsBhClBRICGAISAhgDGIDa/6YBIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CSQoDGLMIGiYyJAoiEiAKqOIQZMYeq4biqcFkVltOeppBRhBuCmzQOow5WhEOkiCQoQ9CBQiAztoDUgBaAGoLY2VsbGFyIGRvb3I=","b64Record":"CiUIFiIDGLQIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBI9KoNs2xw1DkRDxeYGL6VTaB1IROVZrVp/crwSDJzWOOXQ5XO/WmOBuiomaYQWAMaDAjUsfqsBhCyiqP1ASIPCgkImLH6rAYQpQUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQs4ICgMYtAgSmQZggGBAUjSAFWEAEFdgAID9W1BgBDYQYQArV2AANWDgHIBj78OIJhRhADBXW2AAgP1bYQBKYASANgOBAZBhAEWRkGEBvFZbYQBMVlsAW2AAgFSQYQEACpAEc///////////////////////////FnP//////////////////////////xZj4fIcZ2DgG4ODZ3//////////YEBRYCQBYQCok5KRkGECJFZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQESkZBhAsxWW2AAYEBRgIMDgYVa9JFQUD2AYACBFGEBTVdgQFGRUGAfGWA/PQEWggFgQFI9glI9YABgIIQBPmEBUlZbYGCRUFtQUFBQUFZbYACA/VtgAHP//////////////////////////4IWkFCRkFBWW2AAYQGJgmEBXlZbkFCRkFBWW2EBmYFhAX5WW4EUYQGkV2AAgP1bUFZbYACBNZBQYQG2gWEBkFZbkpFQUFZbYACAYECDhQMSFWEB01dhAdJhAVlWW1tgAGEB4YWChgFhAadWW5JQUGAgYQHyhYKGAWEBp1ZbkVBQklCSkFBWW2ECBYFhAX5WW4JSUFBWW2AAgZBQkZBQVlthAh6BYQILVluCUlBQVltgAGBgggGQUGECOWAAgwGGYQH8VlthAkZgIIMBhWEB/FZbYQJTYECDAYRhAhVWW5STUFBQUFZbYACBUZBQkZBQVltgAIGQUJKRUFBWW2AAW4OBEBVhAo9XgIIBUYGEAVJgIIEBkFBhAnRWW2AAhIQBUlBQUFBWW2AAYQKmgmECW1ZbYQKwgYVhAmZWW5NQYQLAgYVgIIYBYQJxVluAhAGRUFCSkVBQVltgAGEC2IKEYQKbVluRUIGQUJKRUFBW/qJkaXBmc1giEiD5vv3MrckiVk1DZkfz4hfUXha2PnMUTGEpwKrGYTqOfGRzb2xjQwAIEAAzIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACjAmgw6Axi0CEoWChQAAAAAAAAAAAAAAAAAAAAAAAAENHIHCgMYtAgQAVIWCgkKAhgCEP+yxQ0KCQoCGGIQgLPFDQ=="},{"b64Body":"Cg8KCQiZsfqsBhCrBRICGAISAhgDGL/TjhQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGLIIEgMYsAg=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwUQQ70Mm9oStzYtKGW2w7Kw8YAGb0XJ9TS01I2hz1exapKDM0Y/K7GjWxILlMnuEZGgsI1bH6rAYQ97qBGiIPCgkImbH6rAYQqwUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiZsfqsBhCxBRICGAISAhgDGL/TjhQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGLQIEgMYsAg=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwa0ri/gNOIbr4IgIahYRQ+TZS0eeeIKMrIriebqbx5Tdbq2lMLuPBM7FfIFuRNAjXGgwI1bH6rAYQ3v/7/gEiDwoJCJmx+qwGELEFEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQiasfqsBhCzBRICGAISAhgDGMC9o6kBIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46cAoDGLIIEMCWsQIiZPpQqyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAENAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABC8=","b64Record":"CiUIFiIDGLIIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCAiuBy5CDMN4tbHfQctvzluo7IAx9sa/w/kKgu/7hRE1Mxj0yks/PaGjFk/J1KZrIaCwjWsfqsBhCv5+UjIg8KCQiasfqsBhCzBRICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMO+CiKQBOo0CCgMYsggigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKJnjpwJSGAoKCgIYAhDdhZDIAgoKCgIYYhDehZDIAg=="}]},"testIndirectApprovalWithDirectErc20Callee":{"placeholderNum":1077,"encodedItems":[{"b64Body":"Cg8KCQiesfqsBhDLBRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIOC23gQeIr2ZeL5bUYflgHKaa2koIHtwA0MQ2MqZKed1EICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGLYIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAmNKVF5yo7vCNJ+4sZWZQI07ROT3D4fAfo9kK7RnfXA6OlZdwqiPLSmbzPAUiMIMMaDAjasfqsBhDp1NfnAiIPCgkInrH6rAYQywUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxi2CBCAqNa5Bw=="},{"b64Body":"Cg8KCQifsfqsBhDNBRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIK8rJuaaq5RtgWy+nywfKs5s3dIPk7HNexV+yZRTn53zEICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGLcIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDbLJE+5rmEm4IjxRWPRuIK/JeVdh8ZflY3crVDwifbYRPjxpeP9gG8gChzllxXOREaDAjbsfqsBhDMo8+MASIPCgkIn7H6rAYQzQUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxi3CBCAqNa5Bw=="},{"b64Body":"Cg8KCQifsfqsBhDPBRICGAISAhgDGPHv7egCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qATYKDWZ1bmdpYmxlVG9rZW4SCERVSlZBSFpKIP//////////fyoDGLYIagwI2//UsAYQrba24AI=","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGLgIEjBVP8IT0119wP209yoXWfNX7/k5XCxRvmBeWctA67MNV7gbQRFQtY76qsnw8UfqjO8aDAjbsfqsBhCbz5XxAiIPCgkIn7H6rAYQzwUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWhcKAxi4CBIQCgMYtggQ/v//////////AXIKCgMYuAgSAxi2CA=="},{"b64Body":"Cg8KCQigsfqsBhDRBRICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjgESCwjc/9SwBhCLuPF1Gm0KIhIgpMXl1hZVCBQeQMMmspN+LvVDZEZJ20D1kvWhAUu1LRAKIzohAw7C0Pkr3CGjs0bax7UKmW6uvIgjEgGrYY3Ek8ehDIgSCiISIMkttvdwW9Ml3uGDb0Hpm10NLqhafjFf0+KrtMT8Q2DVIgxIZWxsbyBXb3JsZCEqADIA","b64Record":"CiUIFhoDGLkIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDQgrhDx9TG5l9I97aNIYZOGH3/j4YSUKg2ovW2sK5lpdcv/Jn5tnleGkCZMV+kqCwaCwjcsfqsBhDUgZR5Ig8KCQigsfqsBhDRBRICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgA="},{"b64Body":"Cg8KCQigsfqsBhDVBRICGAISAhgDGK3i3jAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBjAgKAxi5CCKECDYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMDFlMjgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDAyYjU3NjAwMDM1NjBlMDFjODA2M2ZhNTBhYjIwMTQ2MTAwMzA1NzViNjAwMDgwZmQ1YjYxMDA0YTYwMDQ4MDM2MDM4MTAxOTA2MTAwNDU5MTkwNjEwMTIxNTY1YjYxMDA0YzU2NWIwMDViODI3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzZWZjMzg4MjY4MzgzNjA0MDUxODM2M2ZmZmZmZmZmMTY2MGUwMWI4MTUyNjAwNDAxNjEwMDg3OTI5MTkwNjEwMTgzNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NzgwM2IxNTgwMTU2MTAwYTE1NzYwMDA4MGZkNWI1MDVhZjExNTgwMTU2MTAwYjU1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA1MDUwNTA1NjViNjAwMDgwZmQ1YjYwMDA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MjE2OTA1MDkxOTA1MDU2NWI2MDAwNjEwMGVlODI2MTAwYzM1NjViOTA1MDkxOTA1MDU2NWI2MTAwZmU4MTYxMDBlMzU2NWI4MTE0NjEwMTA5NTc2MDAwODBmZDViNTA1NjViNjAwMDgxMzU5MDUwNjEwMTFiODE2MTAwZjU1NjViOTI5MTUwNTA1NjViNjAwMDgwNjAwMDYwNjA4NDg2MDMxMjE1NjEwMTNhNTc2MTAxMzk2MTAwYmU1NjViNWI2MDAwNjEwMTQ4ODY4Mjg3MDE2MTAxMGM1NjViOTM1MDUwNjAyMDYxMDE1OTg2ODI4NzAxNjEwMTBjNTY1YjkyNTA1MDYwNDA2MTAxNmE4NjgyODcwMTYxMDEwYzU2NWI5MTUwNTA5MjUwOTI1MDkyNTY1YjYxMDE3ZDgxNjEwMGUzNTY1YjgyNTI1MDUwNTY1YjYwMDA2MDQwODIwMTkwNTA2MTAxOTg2MDAwODMwMTg1NjEwMTc0NTY1YjYxMDFhNTYwMjA4MzAxODQ2MTAxNzQ1NjViOTM5MjUwNTA1MDU2ZmVhMjY0Njk3MDY2NzM1ODIyMTIyMDIwN2Y4OTNlMzNlMzI5ZWQ5ODBlNDExYmU3YTNhMGE4NjEzZmExZDFkZmYwMmIwMDM3MTY5YjkzYmIwYzcxMDA2NDczNmY2YzYzNDMwMDA4MTAwMDMz","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwxH0wMMHfsK7MiXxDDXWa4A57iLVNPnWgStx1NN1I6EXZ6cpX9NoWYAKAthh2/Xr6GgwI3LH6rAYQov/w+gIiDwoJCKCx+qwGENUFEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQihsfqsBhDXBRICGAISAhgDGIDa/6YBIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CSQoDGLkIGiYyJAoiEiAKqOIQZMYeq4biqcFkVltOeppBRhBuCmzQOow5WhEOkiCQoQ9CBQiAztoDUgBaAGoLY2VsbGFyIGRvb3I=","b64Record":"CiUIFiIDGLoIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDIHAnQ08FPYeO4VfRWW1h3MxINTz8exzKgG1D0ihY1yAe8z9nil4wjZUdM34lJe+kaDAjdsfqsBhDOoPmCASIPCgkIobH6rAYQ1wUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQpcGCgMYuggS4gNggGBAUjSAFWEAEFdgAID9W1BgBDYQYQArV2AANWDgHIBj+lCrIBRhADBXW2AAgP1bYQBKYASANgOBAZBhAEWRkGEBIVZbYQBMVlsAW4Jz//////////////////////////8WY+/DiCaDg2BAUYNj/////xZg4BuBUmAEAWEAh5KRkGEBg1ZbYABgQFGAgwOBYACHgDsVgBVhAKFXYACA/VtQWvEVgBVhALVXPWAAgD49YAD9W1BQUFBQUFBWW2AAgP1bYABz//////////////////////////+CFpBQkZBQVltgAGEA7oJhAMNWW5BQkZBQVlthAP6BYQDjVluBFGEBCVdgAID9W1BWW2AAgTWQUGEBG4FhAPVWW5KRUFBWW2AAgGAAYGCEhgMSFWEBOldhATlhAL5WW1tgAGEBSIaChwFhAQxWW5NQUGAgYQFZhoKHAWEBDFZbklBQYEBhAWqGgocBYQEMVluRUFCSUJJQklZbYQF9gWEA41ZbglJQUFZbYABgQIIBkFBhAZhgAIMBhWEBdFZbYQGlYCCDAYRhAXRWW5OSUFBQVv6iZGlwZnNYIhIgIH+JPjPjKe2YDkEb56OgqGE/odHf8CsANxabk7sMcQBkc29sY0MACBAAMyKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAowJoMOgMYughKFgoUAAAAAAAAAAAAAAAAAAAAAAAABDpyBwoDGLoIEAFSFgoJCgIYAhD/ssUNCgkKAhhiEICzxQ0="},{"b64Body":"Cg8KCQihsfqsBhDZBRICGAISAhgDGLXNziwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAjd/9SwBhCCqrXyAhptCiISIAK7FTRoCBoQr6siVhglGwLbaSDo00HxHISiqNu0mKO3CiM6IQLsplRDwPCgoQsZwx8NBHEm9pGqbqyUnAmzzcDKdBJwFQoiEiBXyrmCjbbxYOtEw5c2XjcronNnTamidoVtZSqT+FFRoiIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGLsIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDUHYYUqV4+seY5/rQxL1vHIJmjl5NbIyxnRfh2ZCioCQVfDGqaVSXSBUJL+r3bVVcaDAjdsfqsBhCbqsyEAyIPCgkIobH6rAYQ2QUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiisfqsBhDdBRICGAISAhgDGJimrzIiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBgAsKAxi7CCL4CjYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMDI5YzgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDAyYjU3NjAwMDM1NjBlMDFjODA2M2VmYzM4ODI2MTQ2MTAwMzA1NzViNjAwMDgwZmQ1YjYxMDA0YTYwMDQ4MDM2MDM4MTAxOTA2MTAwNDU5MTkwNjEwMTNhNTY1YjYxMDA0YzU2NWIwMDViODE3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzMDk1ZWE3YjM4MjY3N2ZmZmZmZmZmZmZmZmZmZjYwNDA1MTgzNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYxMDA4ZjkyOTE5MDYxMDFkODU2NWI2MDIwNjA0MDUxODA4MzAzODE2MDAwODc1YWYxMTU4MDE1NjEwMGFlNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTAwZDI5MTkwNjEwMjM5NTY1YjUwNTA1MDU2NWI2MDAwODBmZDViNjAwMDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgyMTY5MDUwOTE5MDUwNTY1YjYwMDA2MTAxMDc4MjYxMDBkYzU2NWI5MDUwOTE5MDUwNTY1YjYxMDExNzgxNjEwMGZjNTY1YjgxMTQ2MTAxMjI1NzYwMDA4MGZkNWI1MDU2NWI2MDAwODEzNTkwNTA2MTAxMzQ4MTYxMDEwZTU2NWI5MjkxNTA1MDU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMDE1MTU3NjEwMTUwNjEwMGQ3NTY1YjViNjAwMDYxMDE1Zjg1ODI4NjAxNjEwMTI1NTY1YjkyNTA1MDYwMjA2MTAxNzA4NTgyODYwMTYxMDEyNTU2NWI5MTUwNTA5MjUwOTI5MDUwNTY1YjYxMDE4MzgxNjEwMGZjNTY1YjgyNTI1MDUwNTY1YjYwMDA4MTkwNTA5MTkwNTA1NjViNjAwMDgxOTA1MDkxOTA1MDU2NWI2MDAwODE5MDUwOTE5MDUwNTY1YjYwMDA2MTAxYzI2MTAxYmQ2MTAxYjg4NDYxMDE4OTU2NWI2MTAxOWQ1NjViNjEwMTkzNTY1YjkwNTA5MTkwNTA1NjViNjEwMWQyODE2MTAxYTc1NjViODI1MjUwNTA1NjViNjAwMDYwNDA4MjAxOTA1MDYxMDFlZDYwMDA4MzAxODU2MTAxN2E1NjViNjEwMWZhNjAyMDgzMDE4NDYxMDFjOTU2NWI5MzkyNTA1MDUwNTY1YjYwMDA4MTE1MTU5MDUwOTE5MDUwNTY1YjYxMDIxNjgxNjEwMjAxNTY1YjgxMTQ2MTAyMjE1NzYwMDA4MGZkNWI1MDU2NWI2MDAwODE1MTkwNTA2MTAyMzM4MTYxMDIwZDU2NWI5MjkxNTA1MDU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTAyNGY1NzYxMDI0ZTYxMDBkNzU2NWI1YjYwMDA2MTAyNWQ4NDgyODUwMTYxMDIyNDU2NWI5MTUwNTA5MjkxNTA1MDU2ZmVhMjY0Njk3MDY2NzM1ODIyMTIyMDI5Zjg0ZDU4ZjZhNjA3ZDRlMGU3YjkzMzczYjEwZTQyN2ZkNWFkMzkzZTBkM2M2NmViMzgwODEyOTA4NjBkMzc2NDczNmY2YzYzNDMwMDA4MTAwMDMz","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw5N27q4G+/q+x1VjcILVIoh4KnJVTa9Cp1FCiEpogq2TX6FiYyVufFAFp9WJdYsh4GgwI3rH6rAYQjI+AqQEiDwoJCKKx+qwGEN0FEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQiisfqsBhDfBRICGAISAhgDGIDa/6YBIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CSQoDGLsIGiYyJAoiEiAKqOIQZMYeq4biqcFkVltOeppBRhBuCmzQOow5WhEOkiCQoQ9CBQiAztoDUgBaAGoLY2VsbGFyIGRvb3I=","b64Record":"CiUIFiIDGLwIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCaN06zas32yjge0/PviY8jlgWIC3g8Nbj8C8qV7cWtxw3A+sPe/yWej7PhRoRh96AaDAjesfqsBhDorfSNAyIPCgkIorH6rAYQ3wUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQtEHCgMYvAgSnAVggGBAUjSAFWEAEFdgAID9W1BgBDYQYQArV2AANWDgHIBj78OIJhRhADBXW2AAgP1bYQBKYASANgOBAZBhAEWRkGEBOlZbYQBMVlsAW4Fz//////////////////////////8WYwlep7OCZ3//////////YEBRg2P/////FmDgG4FSYAQBYQCPkpGQYQHYVltgIGBAUYCDA4FgAIda8RWAFWEArlc9YACAPj1gAP1bUFBQUGBAUT1gHxlgH4IBFoIBgGBAUlCBAZBhANKRkGECOVZbUFBQVltgAID9W2AAc///////////////////////////ghaQUJGQUFZbYABhAQeCYQDcVluQUJGQUFZbYQEXgWEA/FZbgRRhASJXYACA/VtQVltgAIE1kFBhATSBYQEOVluSkVBQVltgAIBgQIOFAxIVYQFRV2EBUGEA11ZbW2AAYQFfhYKGAWEBJVZbklBQYCBhAXCFgoYBYQElVluRUFCSUJKQUFZbYQGDgWEA/FZbglJQUFZbYACBkFCRkFBWW2AAgZBQkZBQVltgAIGQUJGQUFZbYABhAcJhAb1hAbiEYQGJVlthAZ1WW2EBk1ZbkFCRkFBWW2EB0oFhAadWW4JSUFBWW2AAYECCAZBQYQHtYACDAYVhAXpWW2EB+mAggwGEYQHJVluTklBQUFZbYACBFRWQUJGQUFZbYQIWgWECAVZbgRRhAiFXYACA/VtQVltgAIFRkFBhAjOBYQINVluSkVBQVltgAGAggoQDEhVhAk9XYQJOYQDXVltbYABhAl2EgoUBYQIkVluRUFCSkVBQVv6iZGlwZnNYIhIgKfhNWPamB9Tg57kzc7EOQn/VrTk+DTxm6zgIEpCGDTdkc29sY0MACBAAMyKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAowJoMOgMYvAhKFgoUAAAAAAAAAAAAAAAAAAAAAAAABDxyBwoDGLwIEAFSFgoJCgIYAhD/ssUNCgkKAhhiEICzxQ0="},{"b64Body":"Cg8KCQijsfqsBhDlBRICGAISAhgDGL/TjhQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGLoIEgMYuAg=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwbs6Mt02uDEzr6/+Un4b+zLxJptTOU35he8sal8tTYNEYJJYqJ29HRchr9lq4nIvTGgwI37H6rAYQ/eGusgEiDwoJCKOx+qwGEOUFEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQijsfqsBhDrBRICGAISAhgDGL/TjhQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGLwIEgMYuAg=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwMw1PBXcrgx2FqVTqFDjUBrH6l6mXViNrqvdpVu0RVo/gA+/dBY6pC0HSHkBUPJTpGgwI37H6rAYQsvSanAMiDwoJCKOx+qwGEOsFEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQiksfqsBhDtBRICGAISAhgDGMC9o6kBIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46cAoDGLoIEMCWsQIiZPpQqyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQ4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDc=","b64Record":"CiUIFiIDGLoIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjB1Qp3iTCBGj2imesBRYx7ZGktWybPFHO3oa5By+vWUMWTY0YRsimN2S7+TPGyRF4QaDAjgsfqsBhDC1qikASIPCgkIpLH6rAYQ7QUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCA/rWHATqgBQoDGLoIIoACAAAAAAAAAAEAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAACAAAAAIAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAIAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACiAkvQBMpADCgMYuAgSgAIAAAAAAAAAAQAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAgAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAgAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGiCMW+Hl6+x9W9FPcUJ9HoTz3QMUwPeyKR5bIArIx8O5JRogAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDwaIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQ3IiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//////////1IYCgoKAhgCEP/7644CCgoKAhhiEID8644C"},{"b64Body":"ChEKCQiksfqsBhDtBRICGAIgAYIDGxoZCgMYuAgSAxi8CBoDGLcIIP//////////fw==","b64Record":"CgIIFhIw0Z/wLwQ3klyjekhim3IKfzUrl7Bf6U0j/t3HtMGh2IAGBH+tcGnNw80EFJMg+syDGgwI4LH6rAYQw9aopAEiEQoJCKSx+qwGEO0FEgIYAiABOpMBCgMY5wISIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKOL9KlConKECYlxhjcZeAAAAAAAAAAAAAAAAAAAAAAAABDgJXqezAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//////////2oDGLwIUgB6DAjgsfqsBhDC1qikAQ=="}]}}} \ No newline at end of file diff --git a/hedera-node/test-clients/record-snapshots/Ethereum.json b/hedera-node/test-clients/record-snapshots/Ethereum.json index d6ab02fa5374..003fc7122081 100644 --- a/hedera-node/test-clients/record-snapshots/Ethereum.json +++ b/hedera-node/test-clients/record-snapshots/Ethereum.json @@ -1 +1 @@ -{"specSnapshots":{"feePaymentMatrix Failure/0/0":{"placeholderNum":1820,"encodedItems":[{"b64Body":"Cg8KCQj584StBhCPARICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIB+jkhYZvJJLstyZjxiLwyhmR6DNKdoGr7ai/keBBBCvEICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGJ0OKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjA8rIotC8sXWJiK5XrXpk2GQ7bIqnZf5Mx6nub/dzzh4Eua7sSZueuTFSmOvjrkbIEaCwi19IStBhDzud9qIg8KCQj584StBhCPARICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUh8KDQoCGAIQ///rrczskAIKDgoDGJ0OEICA7K3M7JAC"},{"b64Body":"ChEKCQj584StBhCRARICGAIgAVpoCiM6IQKVe7Wf66mC4MkSAs3Zl1gNHyy4Ik1FVMrBSwn+XCKKKEoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiEClXu1n+upguDJEgLN2ZdYDR8suCJNRVTKwUsJ/lwiiig=","b64Record":"CgcIFhIDGJ4OEjDAgk5CqNgUPMJOgerlmerofsWuO8LaBPOu9tmm02oXb9U/CvQnCn0RlX008RBHdM4aDAi19IStBhDSkaTPAiIRCgkI+fOErQYQkQESAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARROCUfXg49muxgF6CnZKrtnFsnPCw=="},{"b64Body":"Cg8KCQj584StBhCRARICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohApV7tZ/rqYLgyRICzdmXWA0fLLgiTUVUysFLCf5cIoooEICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwJHzsMU6C9FDAT6mxSdx8Ii8/h7Oyj+/CwIMbpToCTH8uLdKrN6ZGUL9wCBX/4C07GgwItfSErQYQ05GkzwIiDwoJCPnzhK0GEJEBEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SGQoKCgIYAhD/j9/ASgoLCgMYng4QgJDfwEo="},{"b64Body":"Cg8KCQj684StBhCXARICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjgESCwi2wt+wBhCAlpdlGm0KIhIgihCkTOkwAzg+xEIR5J6erE7Xcn0BgHPzV+/vfXLapekKIzohA4c0ixYXM5NELxTHQ9S+UeByAZE7w6y5Deezpr+3NaglCiISIOYMkfV0rR8ES8IlmcCV23EIvUVsKG3jBSCEic/E8Sc2IgxIZWxsbyBXb3JsZCEqADIA","b64Record":"CiUIFhoDGJ8OKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBtQlclNGESfDvsr/Pa2O7/PKXDq7XNOEIsB+A14MX8vFYmcjwItJ6E0vzVBtGYLrUaCwi29IStBhCz3PdzIg8KCQj684StBhCXARICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgA="},{"b64Body":"Cg8KCQj684StBhCbARICGAISAhgDGPa4sjEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBogkKAxifDiKaCTYwODA2MDQwNTI2MTAyM2E4MDYxMDAxMzYwMDAzOTYwMDBmM2ZlNjA4MDYwNDA1MjYwMDQzNjEwNjEwMDNmNTc2MDAwMzU2MGUwMWM4MDYzMTIwNjVmZTAxNDYxMDA4ZjU3ODA2MzNjY2ZkNjBiMTQ2MTAwYmE1NzgwNjM2ZjY0MjM0ZTE0NjEwMGQxNTc4MDYzYjZiNTVmMjUxNDYxMDEyYzU3NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2N2ZmMWIwM2Y3MDhiOWMzOWY0NTNmZTNmMGNlZjg0MTY0YzdkNmY3ZGY4MzZkZjA3OTZlMWU5YzJiY2U2ZWUzOTdlMzQ2MDQwNTE4MDgyODE1MjYwMjAwMTkxNTA1MDYwNDA1MTgwOTEwMzkwYTIwMDViMzQ4MDE1NjEwMDliNTc2MDAwODBmZDViNTA2MTAwYTQ2MTAxNWE1NjViNjA0MDUxODA4MjgxNTI2MDIwMDE5MTUwNTA2MDQwNTE4MDkxMDM5MGYzNWIzNDgwMTU2MTAwYzY1NzYwMDA4MGZkNWI1MDYxMDBjZjYxMDE2MjU2NWIwMDViMzQ4MDE1NjEwMGRkNTc2MDAwODBmZDViNTA2MTAxMmE2MDA0ODAzNjAzNjA0MDgxMTAxNTYxMDBmNDU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2OTA2MDIwMDE5MDkyOTE5MDgwMzU5MDYwMjAwMTkwOTI5MTkwNTA1MDUwNjEwMWFiNTY1YjAwNWI2MTAxNTg2MDA0ODAzNjAzNjAyMDgxMTAxNTYxMDE0MjU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTkwNjAyMDAxOTA5MjkxOTA1MDUwNTA2MTAxZjY1NjViMDA1YjYwMDA0NzkwNTA5MDU2NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjEwOGZjNDc5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTU4MDE1NjEwMWE4NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTY1YjgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MTA4ZmM4MjkwODExNTAyOTA2MDQwNTE2MDAwNjA0MDUxODA4MzAzODE4NTg4ODhmMTkzNTA1MDUwNTAxNTgwMTU2MTAxZjE1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTY1YjgwMzQxNDYxMDIwMjU3NjAwMDgwZmQ1YjUwNTZmZWEyNjU2MjdhN2E3MjMxNTgyMGY4Zjg0ZmMzMWE4NDUwNjRiNTc4MWU5MDgzMTZmM2M1OTExNTc5NjJkZWFiYjBmZDQyNGVkNTRmMjU2NDAwZjk2NDczNmY2YzYzNDMwMDA1MTEwMDMy","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwvhh8FPABzl9552aeJAX1RkAfxjg6Bk0QiJ5QEX4ZtDXLU0aV5IO0EyinoalHYJo4GgwItvSErQYQg/Xc9QIiDwoJCPrzhK0GEJsBEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQj784StBhCdARICGAISAhgDGK/Dto0EIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5ClgEKAxifDhpzKnEIAhJtCiISINW+/1z7RfQMwPTICmVf8dkSUHAmW3n/zpWLKwDqvSpyCiM6IQKVgpsfRCQNqywnYe0SUO7HEPJ5N2u2xc9e4IHDxYs2ngoiEiASFVrynz4MNuHGDGY2Pl8VkPDG7jlRh9Alvw6h0EiCFCCQoQ9CBQiAztoDUgBaAGoLY2VsbGFyIGRvb3I=","b64Record":"CiUIFiIDGKAOKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDyd5FoLJDg2yWaBjtR47PmEDCFghVQJzfxvccCgvXIS5qIS26JnmZSHplAd7+o11waDAi39IStBhCziJubASIPCgkI+/OErQYQnQESAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQu8GCgMYoA4SugRggGBAUmAENhBhAD9XYAA1YOAcgGMSBl/gFGEAj1eAYzzP1gsUYQC6V4Bjb2QjThRhANFXgGO2tV8lFGEBLFdbM3P//////////////////////////xZ/8bA/cIucOfRT/j8M74QWTH1vffg23weW4enCvObuOX40YEBRgIKBUmAgAZFQUGBAUYCRA5CiAFs0gBVhAJtXYACA/VtQYQCkYQFaVltgQFGAgoFSYCABkVBQYEBRgJEDkPNbNIAVYQDGV2AAgP1bUGEAz2EBYlZbAFs0gBVhAN1XYACA/VtQYQEqYASANgNgQIEQFWEA9FdgAID9W4EBkICANXP//////////////////////////xaQYCABkJKRkIA1kGAgAZCSkZBQUFBhAatWWwBbYQFYYASANgNgIIEQFWEBQldgAID9W4EBkICANZBgIAGQkpGQUFBQYQH2VlsAW2AAR5BQkFZbM3P//////////////////////////xZhCPxHkIEVApBgQFFgAGBAUYCDA4GFiIjxk1BQUFAVgBVhAahXPWAAgD49YAD9W1BWW4Fz//////////////////////////8WYQj8gpCBFQKQYEBRYABgQFGAgwOBhYiI8ZNQUFBQFYAVYQHxVz1gAIA+PWAA/VtQUFBWW4A0FGECAldgAID9W1BW/qJlYnp6cjFYIPj4T8MahFBktXgekIMW88WRFXli3quw/UJO1U8lZAD5ZHNvbGNDAAURADIigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMCaDDoDGKAOShYKFAAAAAAAAAAAAAAAAAAAAAAAAAcgcgcKAxigDhABUhYKCQoCGAIQ/7LFDQoJCgIYYhCAs8UN"}]},"feePaymentMatrix Failure/0/18400000":{"placeholderNum":1825,"encodedItems":[{"b64Body":"Cg8KCQiA9IStBhCzARICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIJD+X9mCBzbUexI0xr2Sc9HLW6GW+GIvQJpfaJZN/qilEICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGKIOKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjB+JuWouB1FCgXx8DUCgV0dpgOyc5HuHCSBInMCxnDAI0K8ruJfgc3AL3uEkEGXAW8aDAi89IStBhC75eHLAyIPCgkIgPSErQYQswESAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIfCg0KAhgCEP//663M7JACCg4KAxiiDhCAgOytzOyQAg=="},{"b64Body":"ChEKCQiB9IStBhC1ARICGAIgAVpoCiM6IQJSv04JOUo7J8ALR/39EVidG50bwRtI+1zQgbC7X4X6EEoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiECUr9OCTlKOyfAC0f9/RFYnRudG8EbSPtc0IGwu1+F+hA=","b64Record":"CgcIFhIDGKMOEjAiPWJzsxvXafbHQfogQOwGz1RilW3T+L/iDEqijIO/TNUjll2lxT5U1rXrqYdxVHgaDAi99IStBhDK3PjTASIRCgkIgfSErQYQtQESAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARRIpxEfMBPqeT5s0n/rvnFXdWbJQw=="},{"b64Body":"Cg8KCQiB9IStBhC1ARICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohAlK/Tgk5SjsnwAtH/f0RWJ0bnRvBG0j7XNCBsLtfhfoQEICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwKcV9iN/AEH4u1LAz0524Evp/nn3PUT/+jAG7mvNZ+kLOTdXt6vflIsPPrqrRVEe/GgwIvfSErQYQy9z40wEiDwoJCIH0hK0GELUBEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SGQoKCgIYAhD/j9/ASgoLCgMYow4QgJDfwEo="},{"b64Body":"Cg8KCQiB9IStBhC7ARICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAi9wt+wBhC4nNa7AxptCiISIMj480fa89ZrV0HnvhIfXTjuns5vCXFRwdf5BlNLZlARCiM6IQPoOV2WLKZtp3lU5BLsQ1URV1cPRAXXOfPeSo3jeRezDwoiEiBlzAUxHYCDaKDjzIIAa0ZEj4u1bzHoXH2Pja4xDOV73SIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGKQOKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAISikpd+EZU0GsjSS1Df7D4ApuUScnsQl6ZUcJS7P9hOjr8b8l+FwdsfvWN7OCpuYaDAi99IStBhDD46rUAyIPCgkIgfSErQYQuwESAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiC9IStBhC/ARICGAISAhgDGPa4sjEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBogkKAxikDiKaCTYwODA2MDQwNTI2MTAyM2E4MDYxMDAxMzYwMDAzOTYwMDBmM2ZlNjA4MDYwNDA1MjYwMDQzNjEwNjEwMDNmNTc2MDAwMzU2MGUwMWM4MDYzMTIwNjVmZTAxNDYxMDA4ZjU3ODA2MzNjY2ZkNjBiMTQ2MTAwYmE1NzgwNjM2ZjY0MjM0ZTE0NjEwMGQxNTc4MDYzYjZiNTVmMjUxNDYxMDEyYzU3NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2N2ZmMWIwM2Y3MDhiOWMzOWY0NTNmZTNmMGNlZjg0MTY0YzdkNmY3ZGY4MzZkZjA3OTZlMWU5YzJiY2U2ZWUzOTdlMzQ2MDQwNTE4MDgyODE1MjYwMjAwMTkxNTA1MDYwNDA1MTgwOTEwMzkwYTIwMDViMzQ4MDE1NjEwMDliNTc2MDAwODBmZDViNTA2MTAwYTQ2MTAxNWE1NjViNjA0MDUxODA4MjgxNTI2MDIwMDE5MTUwNTA2MDQwNTE4MDkxMDM5MGYzNWIzNDgwMTU2MTAwYzY1NzYwMDA4MGZkNWI1MDYxMDBjZjYxMDE2MjU2NWIwMDViMzQ4MDE1NjEwMGRkNTc2MDAwODBmZDViNTA2MTAxMmE2MDA0ODAzNjAzNjA0MDgxMTAxNTYxMDBmNDU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2OTA2MDIwMDE5MDkyOTE5MDgwMzU5MDYwMjAwMTkwOTI5MTkwNTA1MDUwNjEwMWFiNTY1YjAwNWI2MTAxNTg2MDA0ODAzNjAzNjAyMDgxMTAxNTYxMDE0MjU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTkwNjAyMDAxOTA5MjkxOTA1MDUwNTA2MTAxZjY1NjViMDA1YjYwMDA0NzkwNTA5MDU2NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjEwOGZjNDc5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTU4MDE1NjEwMWE4NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTY1YjgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MTA4ZmM4MjkwODExNTAyOTA2MDQwNTE2MDAwNjA0MDUxODA4MzAzODE4NTg4ODhmMTkzNTA1MDUwNTAxNTgwMTU2MTAxZjE1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTY1YjgwMzQxNDYxMDIwMjU3NjAwMDgwZmQ1YjUwNTZmZWEyNjU2MjdhN2E3MjMxNTgyMGY4Zjg0ZmMzMWE4NDUwNjRiNTc4MWU5MDgzMTZmM2M1OTExNTc5NjJkZWFiYjBmZDQyNGVkNTRmMjU2NDAwZjk2NDczNmY2YzYzNDMwMDA1MTEwMDMy","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwvni6fJDg0akq7LeoadGMA7thSqsZY67boOz2xuxmDP5B2ITlkdHaATlQkfjXVmCVGgwIvvSErQYQ057V3AEiDwoJCIL0hK0GEL8BEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQiC9IStBhDBARICGAISAhgDGK/Dto0EIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5ClgEKAxikDhpzKnEIAhJtCiISIAiGRmmq1BHzirGx/rEtYR1X3f4lHY3wy03fL6hlc2VVCiM6IQPLqL4Y907pOEhGcDxHQZ0ITcCRTJTPDSHjOvjWALCGGQoiEiCg7cBqqI1AMUcRwA49rsVB0LC0gIqfjcDVVvaXe9vAASCQoQ9CBQiAztoDUgBaAGoLY2VsbGFyIGRvb3I=","b64Record":"CiUIFiIDGKUOKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDJZTzfUQwrrxANtoETrfDDnnB3/CqMWt/MucFo8/6JeeikvrB5eWFoq4Hl+xqOCOsaCwi/9IStBhCD7NYBIg8KCQiC9IStBhDBARICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMMDZ4gZC7wYKAxilDhK6BGCAYEBSYAQ2EGEAP1dgADVg4ByAYxIGX+AUYQCPV4BjPM/WCxRhALpXgGNvZCNOFGEA0VeAY7a1XyUUYQEsV1szc///////////////////////////Fn/xsD9wi5w59FP+PwzvhBZMfW99+DbfB5bh6cK85u45fjRgQFGAgoFSYCABkVBQYEBRgJEDkKIAWzSAFWEAm1dgAID9W1BhAKRhAVpWW2BAUYCCgVJgIAGRUFBgQFGAkQOQ81s0gBVhAMZXYACA/VtQYQDPYQFiVlsAWzSAFWEA3VdgAID9W1BhASpgBIA2A2BAgRAVYQD0V2AAgP1bgQGQgIA1c///////////////////////////FpBgIAGQkpGQgDWQYCABkJKRkFBQUGEBq1ZbAFthAVhgBIA2A2AggRAVYQFCV2AAgP1bgQGQgIA1kGAgAZCSkZBQUFBhAfZWWwBbYABHkFCQVlszc///////////////////////////FmEI/EeQgRUCkGBAUWAAYEBRgIMDgYWIiPGTUFBQUBWAFWEBqFc9YACAPj1gAP1bUFZbgXP//////////////////////////xZhCPyCkIEVApBgQFFgAGBAUYCDA4GFiIjxk1BQUFAVgBVhAfFXPWAAgD49YAD9W1BQUFZbgDQUYQICV2AAgP1bUFb+omVienpyMVgg+PhPwxqEUGS1eB6QgxbzxZEVeWLeq7D9Qk7VTyVkAPlkc29sY0MABREAMiKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAowJoMOgMYpQ5KFgoUAAAAAAAAAAAAAAAAAAAAAAAAByVyBwoDGKUOEAFSFgoJCgIYAhD/ssUNCgkKAhhiEICzxQ0="}]},"feePaymentMatrix Success/0/71000000":{"placeholderNum":1830,"encodedItems":[{"b64Body":"Cg8KCQiI9IStBhDXARICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISINQjmgGxGOcffy8x/SpWNxtRdrGnzGgev4Mzl32njv4rEICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGKcOKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBaUtqA8FpinX3mDe30qKsITajrhrcMs2bEAfM96qe1Yd8ev1IFs7z2g5Tacu7itA8aDAjE9IStBhCbv/SGASIPCgkIiPSErQYQ1wESAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIfCg0KAhgCEP//663M7JACCg4KAxinDhCAgOytzOyQAg=="},{"b64Body":"ChEKCQiI9IStBhDZARICGAIgAVpoCiM6IQNyx1Pf/yJ4Ka8SlZ7DTF25Oazo28FQ0fOFYDvssUmPJEoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiEDcsdT3/8ieCmvEpWew0xduTms6NvBUNHzhWA77LFJjyQ=","b64Record":"CgcIFhIDGKgOEjC3vokAo+jivCSTXFdTuBQxGYH66JrD5vpuZwPlo7hlDgw1nOmR2V2J+ufSaShVXAUaDAjE9IStBhCy7M7rAiIRCgkIiPSErQYQ2QESAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARSCTGlvrw7ElX0L7B2LMm0Z0X+vMA=="},{"b64Body":"Cg8KCQiI9IStBhDZARICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohA3LHU9//IngprxKVnsNMXbk5rOjbwVDR84VgO+yxSY8kEICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwI4+YhlwRbfT7fyO+HUsoEF7igzglowqGx3u6hFgTmZrPfMXMTM+eLKt1PO0jlcqtGgwIxPSErQYQs+zO6wIiDwoJCIj0hK0GENkBEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SGQoKCgIYAhD/j9/ASgoLCgMYqA4QgJDfwEo="},{"b64Body":"Cg8KCQiJ9IStBhDfARICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjgESCwjFwt+wBhDI8s99Gm0KIhIgHmJx3Eni5xNMZjlhV/zHuI6OrzmtWmFEhUpodzYF8nwKIzohAi+lmEuFbhMDn8Jp31hB7INw+sMYZUV+2zPdJh5XwV7ACiISIM9VxHtq+RowNw9Yv/rincvIun2EjOP0eHSYV0KVw3+YIgxIZWxsbyBXb3JsZCEqADIA","b64Record":"CiUIFhoDGKkOKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDMpGJ7pA0V9xgm46EBsJ/i+52TMsSt73G+5pXJFDiJ/KU1RI5Ote+NLBv4tBL0bWQaDAjF9IStBhCbkLyQASIPCgkIifSErQYQ3wESAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiJ9IStBhDjARICGAISAhgDGPa4sjEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBogkKAxipDiKaCTYwODA2MDQwNTI2MTAyM2E4MDYxMDAxMzYwMDAzOTYwMDBmM2ZlNjA4MDYwNDA1MjYwMDQzNjEwNjEwMDNmNTc2MDAwMzU2MGUwMWM4MDYzMTIwNjVmZTAxNDYxMDA4ZjU3ODA2MzNjY2ZkNjBiMTQ2MTAwYmE1NzgwNjM2ZjY0MjM0ZTE0NjEwMGQxNTc4MDYzYjZiNTVmMjUxNDYxMDEyYzU3NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2N2ZmMWIwM2Y3MDhiOWMzOWY0NTNmZTNmMGNlZjg0MTY0YzdkNmY3ZGY4MzZkZjA3OTZlMWU5YzJiY2U2ZWUzOTdlMzQ2MDQwNTE4MDgyODE1MjYwMjAwMTkxNTA1MDYwNDA1MTgwOTEwMzkwYTIwMDViMzQ4MDE1NjEwMDliNTc2MDAwODBmZDViNTA2MTAwYTQ2MTAxNWE1NjViNjA0MDUxODA4MjgxNTI2MDIwMDE5MTUwNTA2MDQwNTE4MDkxMDM5MGYzNWIzNDgwMTU2MTAwYzY1NzYwMDA4MGZkNWI1MDYxMDBjZjYxMDE2MjU2NWIwMDViMzQ4MDE1NjEwMGRkNTc2MDAwODBmZDViNTA2MTAxMmE2MDA0ODAzNjAzNjA0MDgxMTAxNTYxMDBmNDU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2OTA2MDIwMDE5MDkyOTE5MDgwMzU5MDYwMjAwMTkwOTI5MTkwNTA1MDUwNjEwMWFiNTY1YjAwNWI2MTAxNTg2MDA0ODAzNjAzNjAyMDgxMTAxNTYxMDE0MjU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTkwNjAyMDAxOTA5MjkxOTA1MDUwNTA2MTAxZjY1NjViMDA1YjYwMDA0NzkwNTA5MDU2NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjEwOGZjNDc5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTU4MDE1NjEwMWE4NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTY1YjgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MTA4ZmM4MjkwODExNTAyOTA2MDQwNTE2MDAwNjA0MDUxODA4MzAzODE4NTg4ODhmMTkzNTA1MDUwNTAxNTgwMTU2MTAxZjE1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTY1YjgwMzQxNDYxMDIwMjU3NjAwMDgwZmQ1YjUwNTZmZWEyNjU2MjdhN2E3MjMxNTgyMGY4Zjg0ZmMzMWE4NDUwNjRiNTc4MWU5MDgzMTZmM2M1OTExNTc5NjJkZWFiYjBmZDQyNGVkNTRmMjU2NDAwZjk2NDczNmY2YzYzNDMwMDA1MTEwMDMy","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwkirglVAw74Vfs+uLEQog2jWfzu8tZaX+NM6WITOrtU5hZaxFXoX/TxZCJzIGK5qZGgwIxfSErQYQi/+59gIiDwoJCIn0hK0GEOMBEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQiK9IStBhDlARICGAISAhgDGK/Dto0EIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5ClgEKAxipDhpzKnEIAhJtCiISIOxoL5rJK0IAxsOL/RduFmMe6/iw96Sdfd9/h2qj3mUnCiM6IQNAzH8evo1VuXbp3ffp/mzKVm4AWK3vLg9yAQlWWpyBKgoiEiC4OIuUOYHQ6ClMqEPJtkkDxfC3SqsPLI3eQm3lTZoQKCCQoQ9CBQiAztoDUgBaAGoLY2VsbGFyIGRvb3I=","b64Record":"CiUIFiIDGKoOKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAlXm2O1tVVAkWHHdDpi4cer/60IukZqRQ4GnebjE8UxUazF8Vo7xulJA/WvD+eLXIaDAjG9IStBhDbvfeaASIPCgkIivSErQYQ5QESAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQu8GCgMYqg4SugRggGBAUmAENhBhAD9XYAA1YOAcgGMSBl/gFGEAj1eAYzzP1gsUYQC6V4Bjb2QjThRhANFXgGO2tV8lFGEBLFdbM3P//////////////////////////xZ/8bA/cIucOfRT/j8M74QWTH1vffg23weW4enCvObuOX40YEBRgIKBUmAgAZFQUGBAUYCRA5CiAFs0gBVhAJtXYACA/VtQYQCkYQFaVltgQFGAgoFSYCABkVBQYEBRgJEDkPNbNIAVYQDGV2AAgP1bUGEAz2EBYlZbAFs0gBVhAN1XYACA/VtQYQEqYASANgNgQIEQFWEA9FdgAID9W4EBkICANXP//////////////////////////xaQYCABkJKRkIA1kGAgAZCSkZBQUFBhAatWWwBbYQFYYASANgNgIIEQFWEBQldgAID9W4EBkICANZBgIAGQkpGQUFBQYQH2VlsAW2AAR5BQkFZbM3P//////////////////////////xZhCPxHkIEVApBgQFFgAGBAUYCDA4GFiIjxk1BQUFAVgBVhAahXPWAAgD49YAD9W1BWW4Fz//////////////////////////8WYQj8gpCBFQKQYEBRYABgQFGAgwOBhYiI8ZNQUFBQFYAVYQHxVz1gAIA+PWAA/VtQUFBWW4A0FGECAldgAID9W1BW/qJlYnp6cjFYIPj4T8MahFBktXgekIMW88WRFXli3quw/UJO1U8lZAD5ZHNvbGNDAAURADIigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMCaDDoDGKoOShYKFAAAAAAAAAAAAAAAAAAAAAAAAAcqcgcKAxiqDhABUhYKCQoCGAIQ/7LFDQoJCgIYYhCAs8UN"},{"b64Body":"ChAKCQiK9IStBhDnARIDGKcOEgIYAxjP2tQVIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA9oBCtIBAvjPggEqgKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIMPQkCUAAAAAAAAAAAAAAAAAAAAAAAAByqGteYg9IAApLa1XyUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOIMCAoIUwdI1HTqNHB5RfawjhFplyrJYl21WLMg/MKHFsm+0toEVgVxJms5EbduHTVQEy6Fet4WXYGixm69km4Bvn4i5iGMC/7SE=","b64Record":"CiUIFiIDGKoOKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjD7rusXCftjWHsvmX0w5RFF3gSRc19LG1blyfVzEb8CDT0pcool+qantEt+JAOFGeUaDAjG9IStBhCD3PD/AiIQCgkIivSErQYQ5wESAxinDiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wz8DfMDq/AgoDGKoOIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACiA6jBQwIQ9WKCcAWIktrVfJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE4gagMYqA5SUAoJCgIYAxDW3cYBCgkKAhhiELz4ylcKCgoDGKAGEMbVlgQKCgoDGKEGEMbVlgQKCgoDGKcOEJ2Bv2EKCQoDGKgOEL+4AgoJCgMYqg4QwLgCigEgkm/lo0ivijIwdOd95lN2v/3bLRXBPutrx2asvLKiMEE="}]},"feePaymentMatrix Failure/23/0":{"placeholderNum":1835,"encodedItems":[{"b64Body":"Cg8KCQiP9IStBhD7ARICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIBSxSIYUezlzHN76Wf+r63/mRXUMjn02hoe0ezWMMFYBEICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGKwOKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCsFb3C6zYUG2G1twcUGVXtdBtORhrq1nz6Da7xOr1x/FlCYEQLViRJiVOToMpBpiEaDAjL9IStBhCjp7KgAiIPCgkIj/SErQYQ+wESAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIfCg0KAhgCEP//663M7JACCg4KAxisDhCAgOytzOyQAg=="},{"b64Body":"ChEKCQiQ9IStBhD9ARICGAIgAVpoCiM6IQNBSO3cAshXGuunPPSzS3C1c3ftoPXM5w+touz9yPuXx0oFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiEDQUjt3ALIVxrrpzz0s0twtXN37aD1zOcPraLs/cj7l8c=","b64Record":"CgcIFhIDGK0OEjAr/FJYy4tWxxhwDdMUy2gAX0dbmrlQarMQEzp9oAn4oS44ddmpGpnnIHo7HUytN8caCwjM9IStBhD6spBEIhEKCQiQ9IStBhD9ARICGAIgASoUYXV0by1jcmVhdGVkIGFjY291bnRSAKoBFCU0smaR4lMlbTNlnewgUrSzHJ0L"},{"b64Body":"Cg8KCQiQ9IStBhD9ARICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohA0FI7dwCyFca66c89LNLcLVzd+2g9cznD62i7P3I+5fHEICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwwyUe6ZUcwZyG8SJf9samixL8ny1ce2euxUecWjON5btGYYC4AsQ1rApctiBt0o6CGgsIzPSErQYQ+7KQRCIPCgkIkPSErQYQ/QESAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxitDhCAkN/ASg=="},{"b64Body":"Cg8KCQiQ9IStBhCDAhICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAjMwt+wBhCAgP+jAhptCiISINiH/jsOTkjmOmtP5KmtzMSJG1w4gDTiK1hECsj4wrHFCiM6IQIWnKULfM/EHKOe243PokBxAv9aaDTSdWbBpMW+wisi8QoiEiBbagkjS9B7Wd/sevYfvn/sBvC0jNsJHD1nJ8tpZemkyiIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGK4OKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCOWaYZR/n6xgKz0FseNoRfB7U5ZRCUpvDY7epaKM5kx4AV6u16uXVHPAAnumxWR5oaDAjM9IStBhDzg6ipAiIPCgkIkPSErQYQgwISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiR9IStBhCHAhICGAISAhgDGPa4sjEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBogkKAxiuDiKaCTYwODA2MDQwNTI2MTAyM2E4MDYxMDAxMzYwMDAzOTYwMDBmM2ZlNjA4MDYwNDA1MjYwMDQzNjEwNjEwMDNmNTc2MDAwMzU2MGUwMWM4MDYzMTIwNjVmZTAxNDYxMDA4ZjU3ODA2MzNjY2ZkNjBiMTQ2MTAwYmE1NzgwNjM2ZjY0MjM0ZTE0NjEwMGQxNTc4MDYzYjZiNTVmMjUxNDYxMDEyYzU3NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2N2ZmMWIwM2Y3MDhiOWMzOWY0NTNmZTNmMGNlZjg0MTY0YzdkNmY3ZGY4MzZkZjA3OTZlMWU5YzJiY2U2ZWUzOTdlMzQ2MDQwNTE4MDgyODE1MjYwMjAwMTkxNTA1MDYwNDA1MTgwOTEwMzkwYTIwMDViMzQ4MDE1NjEwMDliNTc2MDAwODBmZDViNTA2MTAwYTQ2MTAxNWE1NjViNjA0MDUxODA4MjgxNTI2MDIwMDE5MTUwNTA2MDQwNTE4MDkxMDM5MGYzNWIzNDgwMTU2MTAwYzY1NzYwMDA4MGZkNWI1MDYxMDBjZjYxMDE2MjU2NWIwMDViMzQ4MDE1NjEwMGRkNTc2MDAwODBmZDViNTA2MTAxMmE2MDA0ODAzNjAzNjA0MDgxMTAxNTYxMDBmNDU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2OTA2MDIwMDE5MDkyOTE5MDgwMzU5MDYwMjAwMTkwOTI5MTkwNTA1MDUwNjEwMWFiNTY1YjAwNWI2MTAxNTg2MDA0ODAzNjAzNjAyMDgxMTAxNTYxMDE0MjU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTkwNjAyMDAxOTA5MjkxOTA1MDUwNTA2MTAxZjY1NjViMDA1YjYwMDA0NzkwNTA5MDU2NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjEwOGZjNDc5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTU4MDE1NjEwMWE4NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTY1YjgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MTA4ZmM4MjkwODExNTAyOTA2MDQwNTE2MDAwNjA0MDUxODA4MzAzODE4NTg4ODhmMTkzNTA1MDUwNTAxNTgwMTU2MTAxZjE1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTY1YjgwMzQxNDYxMDIwMjU3NjAwMDgwZmQ1YjUwNTZmZWEyNjU2MjdhN2E3MjMxNTgyMGY4Zjg0ZmMzMWE4NDUwNjRiNTc4MWU5MDgzMTZmM2M1OTExNTc5NjJkZWFiYjBmZDQyNGVkNTRmMjU2NDAwZjk2NDczNmY2YzYzNDMwMDA1MTEwMDMy","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwbbyhIEa955qrldrTcq5BkiXJFbE1WBNXfwWwiVxcf8dheYqghOucL81BEICRwi15GgsIzfSErQYQ07aDTiIPCgkIkfSErQYQhwISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiR9IStBhCJAhICGAISAhgDGK/Dto0EIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5ClgEKAxiuDhpzKnEIAhJtCiISILduwW7zfToLB3ILI7taBbVO6m6UOXweEwCg3Z4kCFiXCiM6IQPVgks+U5QHUypSgY3+eSt75UScdZOQsENStQkKpLUMDQoiEiDKMdXpKM5V2P1dt2GMBMkECfAzGIxVZTZlnBiLISmf0SCQoQ9CBQiAztoDUgBaAGoLY2VsbGFyIGRvb3I=","b64Record":"CiUIFiIDGK8OKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDZep1ImocL64Xr1vTMlEBLpHndXawtGfYKNhVMX16OEo2GZakJH04cCU0JHhGxrGoaDAjN9IStBhCTwtayAiIPCgkIkfSErQYQiQISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQu8GCgMYrw4SugRggGBAUmAENhBhAD9XYAA1YOAcgGMSBl/gFGEAj1eAYzzP1gsUYQC6V4Bjb2QjThRhANFXgGO2tV8lFGEBLFdbM3P//////////////////////////xZ/8bA/cIucOfRT/j8M74QWTH1vffg23weW4enCvObuOX40YEBRgIKBUmAgAZFQUGBAUYCRA5CiAFs0gBVhAJtXYACA/VtQYQCkYQFaVltgQFGAgoFSYCABkVBQYEBRgJEDkPNbNIAVYQDGV2AAgP1bUGEAz2EBYlZbAFs0gBVhAN1XYACA/VtQYQEqYASANgNgQIEQFWEA9FdgAID9W4EBkICANXP//////////////////////////xaQYCABkJKRkIA1kGAgAZCSkZBQUFBhAatWWwBbYQFYYASANgNgIIEQFWEBQldgAID9W4EBkICANZBgIAGQkpGQUFBQYQH2VlsAW2AAR5BQkFZbM3P//////////////////////////xZhCPxHkIEVApBgQFFgAGBAUYCDA4GFiIjxk1BQUFAVgBVhAahXPWAAgD49YAD9W1BWW4Fz//////////////////////////8WYQj8gpCBFQKQYEBRYABgQFGAgwOBhYiI8ZNQUFBQFYAVYQHxVz1gAIA+PWAA/VtQUFBWW4A0FGECAldgAID9W1BW/qJlYnp6cjFYIPj4T8MahFBktXgekIMW88WRFXli3quw/UJO1U8lZAD5ZHNvbGNDAAURADIigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMCaDDoDGK8OShYKFAAAAAAAAAAAAAAAAAAAAAAAAAcvcgcKAxivDhABUhYKCQoCGAIQ/7LFDQoJCgIYYhCAs8UN"}]},"feePaymentMatrix Failure/23/18400000":{"placeholderNum":1840,"encodedItems":[{"b64Body":"Cg8KCQiW9IStBhCfAhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISID7WPN3gb0da8lFRc/6y3bXs3pkLzNsRXhfj5A0dO8iWEICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGLEOKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjD5ntsd5qhh+eIicxfwOdlnHGVMrS1X9PSd0+vcRvRCVTym5DdOt4LPGedVOV3t70QaDAjS9IStBhDDoOfVAyIPCgkIlvSErQYQnwISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIfCg0KAhgCEP//663M7JACCg4KAxixDhCAgOytzOyQAg=="},{"b64Body":"ChEKCQiX9IStBhChAhICGAIgAVpoCiM6IQJ0wJfA30uXIKJU0QzEeSxaRUm1nKTsKj/uPrUO2d4FM0oFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiECdMCXwN9LlyCiVNEMxHksWkVJtZyk7Co/7j61DtneBTM=","b64Record":"CgcIFhIDGLIOEjAC9J2TgyWCWgNTLPPRQZXyQiETui+Ey56P238vcWf+XG/z1ep6DUzOmIgihpHco7kaDAjT9IStBhDK7KvdASIRCgkIl/SErQYQoQISAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARQ1+8I5Hu65zypAIVWqirgaP0SgbQ=="},{"b64Body":"Cg8KCQiX9IStBhChAhICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohAnTAl8DfS5cgolTRDMR5LFpFSbWcpOwqP+4+tQ7Z3gUzEICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwy9N2VGn0sCMkUJ2Ou8kzzc4IS8xOjw5okVEJcibN6jeqdcocSQYWCbSGSfrivnylGgwI0/SErQYQy+yr3QEiDwoJCJf0hK0GEKECEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SGQoKCgIYAhD/j9/ASgoLCgMYsg4QgJDfwEo="},{"b64Body":"Cg8KCQiX9IStBhCnAhICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAjTwt+wBhCQ7pfNAxptCiISICcLHQe4uYgfwUdWCsGOF2cRcpm6wPqvPhA5/Ixd6pGFCiM6IQIYu/n5fGJBGT/c1uqsxhjnvLosLt1GqiGJzgWYMbZMiQoiEiB3kR/1b5GUYAiI/429aqiXykkIgXab/OTXSLD7971uRiIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGLMOKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjD94lHxI1TkDKygRQc+Yvu0NXczBMpztrWpzitJLaLc15aXzHIBOiIc9OFfCCdWARkaCwjU9IStBhDT868BIg8KCQiX9IStBhCnAhICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgA="},{"b64Body":"Cg8KCQiY9IStBhCrAhICGAISAhgDGPa4sjEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBogkKAxizDiKaCTYwODA2MDQwNTI2MTAyM2E4MDYxMDAxMzYwMDAzOTYwMDBmM2ZlNjA4MDYwNDA1MjYwMDQzNjEwNjEwMDNmNTc2MDAwMzU2MGUwMWM4MDYzMTIwNjVmZTAxNDYxMDA4ZjU3ODA2MzNjY2ZkNjBiMTQ2MTAwYmE1NzgwNjM2ZjY0MjM0ZTE0NjEwMGQxNTc4MDYzYjZiNTVmMjUxNDYxMDEyYzU3NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2N2ZmMWIwM2Y3MDhiOWMzOWY0NTNmZTNmMGNlZjg0MTY0YzdkNmY3ZGY4MzZkZjA3OTZlMWU5YzJiY2U2ZWUzOTdlMzQ2MDQwNTE4MDgyODE1MjYwMjAwMTkxNTA1MDYwNDA1MTgwOTEwMzkwYTIwMDViMzQ4MDE1NjEwMDliNTc2MDAwODBmZDViNTA2MTAwYTQ2MTAxNWE1NjViNjA0MDUxODA4MjgxNTI2MDIwMDE5MTUwNTA2MDQwNTE4MDkxMDM5MGYzNWIzNDgwMTU2MTAwYzY1NzYwMDA4MGZkNWI1MDYxMDBjZjYxMDE2MjU2NWIwMDViMzQ4MDE1NjEwMGRkNTc2MDAwODBmZDViNTA2MTAxMmE2MDA0ODAzNjAzNjA0MDgxMTAxNTYxMDBmNDU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2OTA2MDIwMDE5MDkyOTE5MDgwMzU5MDYwMjAwMTkwOTI5MTkwNTA1MDUwNjEwMWFiNTY1YjAwNWI2MTAxNTg2MDA0ODAzNjAzNjAyMDgxMTAxNTYxMDE0MjU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTkwNjAyMDAxOTA5MjkxOTA1MDUwNTA2MTAxZjY1NjViMDA1YjYwMDA0NzkwNTA5MDU2NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjEwOGZjNDc5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTU4MDE1NjEwMWE4NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTY1YjgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MTA4ZmM4MjkwODExNTAyOTA2MDQwNTE2MDAwNjA0MDUxODA4MzAzODE4NTg4ODhmMTkzNTA1MDUwNTAxNTgwMTU2MTAxZjE1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTY1YjgwMzQxNDYxMDIwMjU3NjAwMDgwZmQ1YjUwNTZmZWEyNjU2MjdhN2E3MjMxNTgyMGY4Zjg0ZmMzMWE4NDUwNjRiNTc4MWU5MDgzMTZmM2M1OTExNTc5NjJkZWFiYjBmZDQyNGVkNTRmMjU2NDAwZjk2NDczNmY2YzYzNDMwMDA1MTEwMDMy","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwDvU018k9tW9ErXq9JVHyrApW2puM74DPK6myZMHa5BrAN1wpcbHVTCVTC3+p6qyVGgwI1PSErQYQu+Wi5gEiDwoJCJj0hK0GEKsCEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQiY9IStBhCtAhICGAISAhgDGK/Dto0EIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5ClgEKAxizDhpzKnEIAhJtCiISIBKvQGuj/340znCbG5uQi0w00TQ1RvBJ+p8LYQz/lkYzCiM6IQLJ6BF/uE8Xa/6TkUR+invsv4odsP3s3K5HDNHu4M1jBAoiEiDk4wFukoIgc2oULjEEkXXqV26pAmYZBMlBK6wmBT4D8iCQoQ9CBQiAztoDUgBaAGoLY2VsbGFyIGRvb3I=","b64Record":"CiUIFiIDGLQOKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDjyEN06Vm9G3WSypU40mEzk1+DGS3urygFkD6Q3bPzvnDK5jS9D4CV88Lc8fghvsoaCwjV9IStBhDzuYULIg8KCQiY9IStBhCtAhICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMMDZ4gZC7wYKAxi0DhK6BGCAYEBSYAQ2EGEAP1dgADVg4ByAYxIGX+AUYQCPV4BjPM/WCxRhALpXgGNvZCNOFGEA0VeAY7a1XyUUYQEsV1szc///////////////////////////Fn/xsD9wi5w59FP+PwzvhBZMfW99+DbfB5bh6cK85u45fjRgQFGAgoFSYCABkVBQYEBRgJEDkKIAWzSAFWEAm1dgAID9W1BhAKRhAVpWW2BAUYCCgVJgIAGRUFBgQFGAkQOQ81s0gBVhAMZXYACA/VtQYQDPYQFiVlsAWzSAFWEA3VdgAID9W1BhASpgBIA2A2BAgRAVYQD0V2AAgP1bgQGQgIA1c///////////////////////////FpBgIAGQkpGQgDWQYCABkJKRkFBQUGEBq1ZbAFthAVhgBIA2A2AggRAVYQFCV2AAgP1bgQGQgIA1kGAgAZCSkZBQUFBhAfZWWwBbYABHkFCQVlszc///////////////////////////FmEI/EeQgRUCkGBAUWAAYEBRgIMDgYWIiPGTUFBQUBWAFWEBqFc9YACAPj1gAP1bUFZbgXP//////////////////////////xZhCPyCkIEVApBgQFFgAGBAUYCDA4GFiIjxk1BQUFAVgBVhAfFXPWAAgD49YAD9W1BQUFZbgDQUYQICV2AAgP1bUFb+omVienpyMVgg+PhPwxqEUGS1eB6QgxbzxZEVeWLeq7D9Qk7VTyVkAPlkc29sY0MABREAMiKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAowJoMOgMYtA5KFgoUAAAAAAAAAAAAAAAAAAAAAAAABzRyBwoDGLQOEAFSFgoJCgIYAhD/ssUNCgkKAhhiEICzxQ0="}]},"feePaymentMatrix Success/23/71000000":{"placeholderNum":1845,"encodedItems":[{"b64Body":"Cg8KCQie9IStBhDDAhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIMjVbhjFLC/DK9+U0kbWBC7w+R+g/AerebtEYVbrh7LSEICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGLYOKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDhqCSOVa3QRZkSeb66eeWM6MTFfENEZGInotWWhvQVCuG4b72jdTxQdWXo7ms1PvYaDAja9IStBhCr1pWQASIPCgkInvSErQYQwwISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIfCg0KAhgCEP//663M7JACCg4KAxi2DhCAgOytzOyQAg=="},{"b64Body":"ChEKCQie9IStBhDFAhICGAIgAVpoCiM6IQJ1ZZ0nDOKMwb/s1P2oPM/fYrQeBcdRzNIEZQOB8hAQF0oFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiECdWWdJwzijMG/7NT9qDzP32K0HgXHUczSBGUDgfIQEBc=","b64Record":"CgcIFhIDGLcOEjCW9UlZ5f97uliCV1fvNCAF3bs2YOE/BNFfHszsrk8jjQdZSzxShaGGgo3Ri3PKiAgaDAja9IStBhCiws2RAyIRCgkInvSErQYQxQISAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARTaWLwDCoAVVNInGnFvmFuxzrQdXA=="},{"b64Body":"Cg8KCQie9IStBhDFAhICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohAnVlnScM4ozBv+zU/ag8z99itB4Fx1HM0gRlA4HyEBAXEICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw/AjtNDlCsbGYHBY0A9/HbwR37DVCRG8LI1nQMi5bFKIbFqIVU/Fzt5ddL4X8kfs3GgwI2vSErQYQo8LNkQMiDwoJCJ70hK0GEMUCEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SGQoKCgIYAhD/j9/ASgoLCgMYtw4QgJDfwEo="},{"b64Body":"Cg8KCQif9IStBhDLAhICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAjbwt+wBhCogqWUARptCiISIIHD70nljK3k5oos6yEZOnxbG731LlNO1xX6wkSGU7QLCiM6IQNIjQN4raeWr5L4ODNrLpLmx0FEldgWVp/8JSu1YVVPCQoiEiBHqIkx1zQzDyqWBaiR7skZYLwNf50zXyh8mgYBxJ4TiiIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGLgOKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjD1PDyPKBDWmUJi5yuaHLwqW789wlOy7lFjhmo+TI/C6FvIZVCHvFnfqsZ58iR5WrMaDAjb9IStBhDTh/+ZASIPCgkIn/SErQYQywISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQif9IStBhDPAhICGAISAhgDGPa4sjEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBogkKAxi4DiKaCTYwODA2MDQwNTI2MTAyM2E4MDYxMDAxMzYwMDAzOTYwMDBmM2ZlNjA4MDYwNDA1MjYwMDQzNjEwNjEwMDNmNTc2MDAwMzU2MGUwMWM4MDYzMTIwNjVmZTAxNDYxMDA4ZjU3ODA2MzNjY2ZkNjBiMTQ2MTAwYmE1NzgwNjM2ZjY0MjM0ZTE0NjEwMGQxNTc4MDYzYjZiNTVmMjUxNDYxMDEyYzU3NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2N2ZmMWIwM2Y3MDhiOWMzOWY0NTNmZTNmMGNlZjg0MTY0YzdkNmY3ZGY4MzZkZjA3OTZlMWU5YzJiY2U2ZWUzOTdlMzQ2MDQwNTE4MDgyODE1MjYwMjAwMTkxNTA1MDYwNDA1MTgwOTEwMzkwYTIwMDViMzQ4MDE1NjEwMDliNTc2MDAwODBmZDViNTA2MTAwYTQ2MTAxNWE1NjViNjA0MDUxODA4MjgxNTI2MDIwMDE5MTUwNTA2MDQwNTE4MDkxMDM5MGYzNWIzNDgwMTU2MTAwYzY1NzYwMDA4MGZkNWI1MDYxMDBjZjYxMDE2MjU2NWIwMDViMzQ4MDE1NjEwMGRkNTc2MDAwODBmZDViNTA2MTAxMmE2MDA0ODAzNjAzNjA0MDgxMTAxNTYxMDBmNDU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2OTA2MDIwMDE5MDkyOTE5MDgwMzU5MDYwMjAwMTkwOTI5MTkwNTA1MDUwNjEwMWFiNTY1YjAwNWI2MTAxNTg2MDA0ODAzNjAzNjAyMDgxMTAxNTYxMDE0MjU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTkwNjAyMDAxOTA5MjkxOTA1MDUwNTA2MTAxZjY1NjViMDA1YjYwMDA0NzkwNTA5MDU2NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjEwOGZjNDc5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTU4MDE1NjEwMWE4NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTY1YjgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MTA4ZmM4MjkwODExNTAyOTA2MDQwNTE2MDAwNjA0MDUxODA4MzAzODE4NTg4ODhmMTkzNTA1MDUwNTAxNTgwMTU2MTAxZjE1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTY1YjgwMzQxNDYxMDIwMjU3NjAwMDgwZmQ1YjUwNTZmZWEyNjU2MjdhN2E3MjMxNTgyMGY4Zjg0ZmMzMWE4NDUwNjRiNTc4MWU5MDgzMTZmM2M1OTExNTc5NjJkZWFiYjBmZDQyNGVkNTRmMjU2NDAwZjk2NDczNmY2YzYzNDMwMDA1MTEwMDMy","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwCmz/8ol/0IN1ltSIcjynWoohXzavff5rw/kLG0MrCg93ew5T3cVSCJ3OzO+phPxbGgwI2/SErQYQq5vJmwMiDwoJCJ/0hK0GEM8CEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQig9IStBhDRAhICGAISAhgDGK/Dto0EIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5ClgEKAxi4DhpzKnEIAhJtCiISIL07J0abXIMyJSu9wwE7EXqu1q5TuMXTMO0OOv16psQCCiM6IQIqxZdjmynRRSHKJf57MJ6Lu0zLju7qfAxBRj1LHa9zvAoiEiCOmvaJIQIwyauw4O0DqPGi0GDUv3d2Riy6qnVnsH90gyCQoQ9CBQiAztoDUgBaAGoLY2VsbGFyIGRvb3I=","b64Record":"CiUIFiIDGLkOKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjD1b+KnUJ/57wnCCxGwE1Xnaagl4C8P2wrmQ4YORnkbBBQvkUQqDPD7gNoKAZ+H1b0aDAjc9IStBhCbiNmjASIPCgkIoPSErQYQ0QISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQu8GCgMYuQ4SugRggGBAUmAENhBhAD9XYAA1YOAcgGMSBl/gFGEAj1eAYzzP1gsUYQC6V4Bjb2QjThRhANFXgGO2tV8lFGEBLFdbM3P//////////////////////////xZ/8bA/cIucOfRT/j8M74QWTH1vffg23weW4enCvObuOX40YEBRgIKBUmAgAZFQUGBAUYCRA5CiAFs0gBVhAJtXYACA/VtQYQCkYQFaVltgQFGAgoFSYCABkVBQYEBRgJEDkPNbNIAVYQDGV2AAgP1bUGEAz2EBYlZbAFs0gBVhAN1XYACA/VtQYQEqYASANgNgQIEQFWEA9FdgAID9W4EBkICANXP//////////////////////////xaQYCABkJKRkIA1kGAgAZCSkZBQUFBhAatWWwBbYQFYYASANgNgIIEQFWEBQldgAID9W4EBkICANZBgIAGQkpGQUFBQYQH2VlsAW2AAR5BQkFZbM3P//////////////////////////xZhCPxHkIEVApBgQFFgAGBAUYCDA4GFiIjxk1BQUFAVgBVhAahXPWAAgD49YAD9W1BWW4Fz//////////////////////////8WYQj8gpCBFQKQYEBRYABgQFGAgwOBhYiI8ZNQUFBQFYAVYQHxVz1gAIA+PWAA/VtQUFBWW4A0FGECAldgAID9W1BW/qJlYnp6cjFYIPj4T8MahFBktXgekIMW88WRFXli3quw/UJO1U8lZAD5ZHNvbGNDAAURADIigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMCaDDoDGLkOShYKFAAAAAAAAAAAAAAAAAAAAAAAAAc5cgcKAxi5DhABUhYKCQoCGAIQ/7LFDQoJCgIYYhCAs8UN"},{"b64Body":"ChAKCQig9IStBhDTAhIDGLYOEgIYAxjP2tQVIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA9oBCtIBAvjPggEqgKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1jRF8AIMPQkCUAAAAAAAAAAAAAAAAAAAAAAAABzmGteYg9IAApLa1XyUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOIMCAoDutYTO9bJCzF4sf/g5dAud78MJ+8//ftQ9yofw4vbGEoFXQ6gMBEzfbRlfZh/bs46Tcgh8joD/aC2fjgp4n1exMGMC/7SE=","b64Record":"CiUIFiIDGLkOKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDD7thd3pQEVBZJEbzkoqsAry1pSPa3Vat8FGh2AUv5QbilHSleujLT/w2cUenAqLsaDAjc9IStBhD78OqkAyIQCgkIoPSErQYQ0wISAxi2Diogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wz8DfMDq/AgoDGLkOIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACiA6jBQwIQ9WKCcAWIktrVfJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE4gagMYtw5SUQoJCgIYAxDW3cYBCgkKAhhiELz4ylcKCgoDGKAGEMbVlgQKCgoDGKEGEMbVlgQKCgoDGLYOEJ2yx0sKCgoDGLcOEL+H+hUKCQoDGLkOEMC4AooBIHUYQIjDXXAWVMpU7wc7EZ36b5hsU0bYnkEtVFJv3m1G"}]},"feePaymentMatrix Success/23/63900000":{"placeholderNum":1850,"encodedItems":[{"b64Body":"Cg8KCQil9IStBhDnAhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISILiB3/I1PTLrpiHy1Wt/3xe0aQNZdD3yR96n7lVpGtq6EICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGLsOKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDxP6Dj4W/s4qAeAhpOg1020mFhP7PQABwIcbrpfP+NeO08fEDqCFqNJpV53el0zUYaDAjh9IStBhDDqMrFAiIPCgkIpfSErQYQ5wISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIfCg0KAhgCEP//663M7JACCg4KAxi7DhCAgOytzOyQAg=="},{"b64Body":"ChEKCQim9IStBhDpAhICGAIgAVpoCiM6IQNYvNsLrkXVRzb9TiZTRPDOgPkiMbZkKs7HnMcFK1aWt0oFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiEDWLzbC65F1Uc2/U4mU0TwzoD5IjG2ZCrOx5zHBStWlrc=","b64Record":"CgcIFhIDGLwOEjA5O8heSCuvWJdLXTbQ2eFvwsYaqouj+f8TZQ4hVtzyYL7JyGSK/h7vE3G2oX4CD34aCwji9IStBhCC+OhNIhEKCQim9IStBhDpAhICGAIgASoUYXV0by1jcmVhdGVkIGFjY291bnRSAKoBFFuc05WY/mOEwp5h328MMPBT5DbN"},{"b64Body":"Cg8KCQim9IStBhDpAhICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohA1i82wuuRdVHNv1OJlNE8M6A+SIxtmQqzsecxwUrVpa3EICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwq7L/wF0s4v1whkk+0wIJP7mgocFvPZiOIQ9Byt/KJnZrHhH95CB+9gkSZwPRBXdZGgsI4vSErQYQg/joTSIPCgkIpvSErQYQ6QISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxi8DhCAkN/ASg=="},{"b64Body":"Cg8KCQim9IStBhDvAhICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAjiwt+wBhDYib2+AhptCiISIGTtOhAnuuCMdxnkNtsKpuaSmB4OcRwDXvoT69DsJZWfCiM6IQMQVAZYpNZLd949QRbg6oMaCtu5GxacfgW/oB+cdd7lWAoiEiCeDfn93Bt/ebcmuF65ZnwRMMMbYfILpnWbEUZmdHQ5ySIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGL0OKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDZ6MnFx5ZIHqyY/b17J3OxRoOJDzOJuVfVZioV3ZLi9KzhXdXuhTytwLO0DBzhzuYaDAji9IStBhDzqPrPAiIPCgkIpvSErQYQ7wISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQin9IStBhDzAhICGAISAhgDGPa4sjEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBogkKAxi9DiKaCTYwODA2MDQwNTI2MTAyM2E4MDYxMDAxMzYwMDAzOTYwMDBmM2ZlNjA4MDYwNDA1MjYwMDQzNjEwNjEwMDNmNTc2MDAwMzU2MGUwMWM4MDYzMTIwNjVmZTAxNDYxMDA4ZjU3ODA2MzNjY2ZkNjBiMTQ2MTAwYmE1NzgwNjM2ZjY0MjM0ZTE0NjEwMGQxNTc4MDYzYjZiNTVmMjUxNDYxMDEyYzU3NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2N2ZmMWIwM2Y3MDhiOWMzOWY0NTNmZTNmMGNlZjg0MTY0YzdkNmY3ZGY4MzZkZjA3OTZlMWU5YzJiY2U2ZWUzOTdlMzQ2MDQwNTE4MDgyODE1MjYwMjAwMTkxNTA1MDYwNDA1MTgwOTEwMzkwYTIwMDViMzQ4MDE1NjEwMDliNTc2MDAwODBmZDViNTA2MTAwYTQ2MTAxNWE1NjViNjA0MDUxODA4MjgxNTI2MDIwMDE5MTUwNTA2MDQwNTE4MDkxMDM5MGYzNWIzNDgwMTU2MTAwYzY1NzYwMDA4MGZkNWI1MDYxMDBjZjYxMDE2MjU2NWIwMDViMzQ4MDE1NjEwMGRkNTc2MDAwODBmZDViNTA2MTAxMmE2MDA0ODAzNjAzNjA0MDgxMTAxNTYxMDBmNDU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2OTA2MDIwMDE5MDkyOTE5MDgwMzU5MDYwMjAwMTkwOTI5MTkwNTA1MDUwNjEwMWFiNTY1YjAwNWI2MTAxNTg2MDA0ODAzNjAzNjAyMDgxMTAxNTYxMDE0MjU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTkwNjAyMDAxOTA5MjkxOTA1MDUwNTA2MTAxZjY1NjViMDA1YjYwMDA0NzkwNTA5MDU2NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjEwOGZjNDc5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTU4MDE1NjEwMWE4NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTY1YjgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MTA4ZmM4MjkwODExNTAyOTA2MDQwNTE2MDAwNjA0MDUxODA4MzAzODE4NTg4ODhmMTkzNTA1MDUwNTAxNTgwMTU2MTAxZjE1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTY1YjgwMzQxNDYxMDIwMjU3NjAwMDgwZmQ1YjUwNTZmZWEyNjU2MjdhN2E3MjMxNTgyMGY4Zjg0ZmMzMWE4NDUwNjRiNTc4MWU5MDgzMTZmM2M1OTExNTc5NjJkZWFiYjBmZDQyNGVkNTRmMjU2NDAwZjk2NDczNmY2YzYzNDMwMDA1MTEwMDMy","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwgMj4iwFul8VyT54pYQ+AIQEnxNcWRZSZIBhwS0iL9A0UEVi+GLJZjzkc4KjNuIZyGgsI4/SErQYQk8GjVyIPCgkIp/SErQYQ8wISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQin9IStBhD1AhICGAISAhgDGK/Dto0EIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5ClgEKAxi9DhpzKnEIAhJtCiISIGK+DL3zG7swC03wvpRULIfQOViB9KLGcX4fs0xiW2leCiM6IQLz6K1Y/9khOeUIVCJz+cWoJYNEvg88wK8LbvHXXsVZuQoiEiAfL95kucQBM7aduJtAe9q+Xg7MxSlasFlEowpLE5EYKyCQoQ9CBQiAztoDUgBaAGoLY2VsbGFyIGRvb3I=","b64Record":"CiUIFiIDGL4OKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDVTchSGbVmVXHOq3KWuCnKLtj8NaLFI6DNpinuzAZ3bCwbWzpsowNJIhpV4an4bq0aDAjj9IStBhDrr6PZAiIPCgkIp/SErQYQ9QISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQu8GCgMYvg4SugRggGBAUmAENhBhAD9XYAA1YOAcgGMSBl/gFGEAj1eAYzzP1gsUYQC6V4Bjb2QjThRhANFXgGO2tV8lFGEBLFdbM3P//////////////////////////xZ/8bA/cIucOfRT/j8M74QWTH1vffg23weW4enCvObuOX40YEBRgIKBUmAgAZFQUGBAUYCRA5CiAFs0gBVhAJtXYACA/VtQYQCkYQFaVltgQFGAgoFSYCABkVBQYEBRgJEDkPNbNIAVYQDGV2AAgP1bUGEAz2EBYlZbAFs0gBVhAN1XYACA/VtQYQEqYASANgNgQIEQFWEA9FdgAID9W4EBkICANXP//////////////////////////xaQYCABkJKRkIA1kGAgAZCSkZBQUFBhAatWWwBbYQFYYASANgNgIIEQFWEBQldgAID9W4EBkICANZBgIAGQkpGQUFBQYQH2VlsAW2AAR5BQkFZbM3P//////////////////////////xZhCPxHkIEVApBgQFFgAGBAUYCDA4GFiIjxk1BQUFAVgBVhAahXPWAAgD49YAD9W1BWW4Fz//////////////////////////8WYQj8gpCBFQKQYEBRYABgQFGAgwOBhYiI8ZNQUFBQFYAVYQHxVz1gAIA+PWAA/VtQUFBWW4A0FGECAldgAID9W1BW/qJlYnp6cjFYIPj4T8MahFBktXgekIMW88WRFXli3quw/UJO1U8lZAD5ZHNvbGNDAAURADIigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMCaDDoDGL4OShYKFAAAAAAAAAAAAAAAAAAAAAAAAAc+cgcKAxi+DhABUhYKCQoCGAIQ/7LFDQoJCgIYYhCAs8UN"},{"b64Body":"ChAKCQio9IStBhD3AhIDGLsOEgIYAxjP2tQVIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA9oBCtIBAvjPggEqgKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1jRF8AIMPQkCUAAAAAAAAAAAAAAAAAAAAAAAABz6GteYg9IAApLa1XyUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOIMCAoC4chD/7nLx1mkvCwoYpCjMZ17ARMOmQXiwMVRctg+7YoB1ip70biUPGDGfs9PPpAg2hdZHhKWAlbSvQJ9ugFsnDGOCSvB4=","b64Record":"CiUIFiIDGL4OKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjABXucS3kWoA5YJjJpW/boMq5vMPCjwuqSpQsXbGSkaQVASfXtIWm89q1WiYkvFNUIaCwjk9IStBhDzo65hIhAKCQio9IStBhD3AhIDGLsOKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDPwN8wOr8CCgMYvg4igAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKIDqMFDAhD1YoJwBYiS2tV8lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATiBqAxi8DlJRCgkKAhgDENbdxgEKCQoCGGIQvPjKVwoKCgMYoAYQxtWWBAoKCgMYoQYQxtWWBAoKCgMYuw4QnbLHSwoKCgMYvA4Qv4f6FQoJCgMYvg4QwLgCigEgJoMyGEiROCkGhOMnQXx6NzXmXsl1iV5PPfRi35F40XE="}]},"feePaymentMatrix Failure/63/0":{"placeholderNum":1855,"encodedItems":[{"b64Body":"Cg8KCQit9IStBhCLAxICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIDGdlRBjnbjRGZlEBK0YSCGDTybHQRvFBL9vK4ryVXABEICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGMAOKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBvS1acHXyKn28YStFYUBsFcvHWtocpOnKREfz3DbhPUERnSsEHslP9hoNLAsnCmcAaCwjp9IStBhCL35QBIg8KCQit9IStBhCLAxICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUh8KDQoCGAIQ///rrczskAIKDgoDGMAOEICA7K3M7JAC"},{"b64Body":"ChEKCQit9IStBhCNAxICGAIgAVpoCiM6IQJ7aKRofSvTs92zoLLueKAruQYnIAnH/H7OvL9R0iwwYEoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiECe2ikaH0r07Pds6Cy7nigK7kGJyAJx/x+zry/UdIsMGA=","b64Record":"CgcIFhIDGMEOEjA6iOQ0gLSoex3q7TLqtNxWewkMuakkDsxb91gO1C3ETBIdSlVubauTQv/YhmAn5GIaDAjp9IStBhCinbyCAiIRCgkIrfSErQYQjQMSAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARSyHTYnCZeLQeZm1YeWN07DYD34GQ=="},{"b64Body":"Cg8KCQit9IStBhCNAxICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohAntopGh9K9Oz3bOgsu54oCu5BicgCcf8fs68v1HSLDBgEICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwEh7ovjcBgcKjLvvm2c7Bd4w0t4C2d3o9jl8r+he2xQx8ABBjKun3mu5burURBx5eGgwI6fSErQYQo528ggIiDwoJCK30hK0GEI0DEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SGQoKCgIYAhD/j9/ASgoLCgMYwQ4QgJDfwEo="},{"b64Body":"Cg8KCQiu9IStBhCTAxICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjgESCwjqwt+wBhCgi78JGm0KIhIgS+ljkhaDe9LAFXt5EyTbD4JIa92qDyvdX+u5jjrvPzUKIzohAn5Teo1Ia1FTEkDjWOkCwTjeLInahBGQXer3GcNL5QMpCiISIIHzDQH9gugB8D6Q9u4xy+R48/pCFuck6dEpT+BSgA7QIgxIZWxsbyBXb3JsZCEqADIA","b64Record":"CiUIFhoDGMIOKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCw2Si0k0Tfi2oogB1+WBW8Z+j5a5i+fd44AQSBh3ygNxPfnW1OmZ/SxZ5j7eiaOJoaCwjq9IStBhDbp+QKIg8KCQiu9IStBhCTAxICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgA="},{"b64Body":"Cg8KCQiu9IStBhCXAxICGAISAhgDGPa4sjEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBogkKAxjCDiKaCTYwODA2MDQwNTI2MTAyM2E4MDYxMDAxMzYwMDAzOTYwMDBmM2ZlNjA4MDYwNDA1MjYwMDQzNjEwNjEwMDNmNTc2MDAwMzU2MGUwMWM4MDYzMTIwNjVmZTAxNDYxMDA4ZjU3ODA2MzNjY2ZkNjBiMTQ2MTAwYmE1NzgwNjM2ZjY0MjM0ZTE0NjEwMGQxNTc4MDYzYjZiNTVmMjUxNDYxMDEyYzU3NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2N2ZmMWIwM2Y3MDhiOWMzOWY0NTNmZTNmMGNlZjg0MTY0YzdkNmY3ZGY4MzZkZjA3OTZlMWU5YzJiY2U2ZWUzOTdlMzQ2MDQwNTE4MDgyODE1MjYwMjAwMTkxNTA1MDYwNDA1MTgwOTEwMzkwYTIwMDViMzQ4MDE1NjEwMDliNTc2MDAwODBmZDViNTA2MTAwYTQ2MTAxNWE1NjViNjA0MDUxODA4MjgxNTI2MDIwMDE5MTUwNTA2MDQwNTE4MDkxMDM5MGYzNWIzNDgwMTU2MTAwYzY1NzYwMDA4MGZkNWI1MDYxMDBjZjYxMDE2MjU2NWIwMDViMzQ4MDE1NjEwMGRkNTc2MDAwODBmZDViNTA2MTAxMmE2MDA0ODAzNjAzNjA0MDgxMTAxNTYxMDBmNDU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2OTA2MDIwMDE5MDkyOTE5MDgwMzU5MDYwMjAwMTkwOTI5MTkwNTA1MDUwNjEwMWFiNTY1YjAwNWI2MTAxNTg2MDA0ODAzNjAzNjAyMDgxMTAxNTYxMDE0MjU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTkwNjAyMDAxOTA5MjkxOTA1MDUwNTA2MTAxZjY1NjViMDA1YjYwMDA0NzkwNTA5MDU2NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjEwOGZjNDc5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTU4MDE1NjEwMWE4NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTY1YjgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MTA4ZmM4MjkwODExNTAyOTA2MDQwNTE2MDAwNjA0MDUxODA4MzAzODE4NTg4ODhmMTkzNTA1MDUwNTAxNTgwMTU2MTAxZjE1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTY1YjgwMzQxNDYxMDIwMjU3NjAwMDgwZmQ1YjUwNTZmZWEyNjU2MjdhN2E3MjMxNTgyMGY4Zjg0ZmMzMWE4NDUwNjRiNTc4MWU5MDgzMTZmM2M1OTExNTc5NjJkZWFiYjBmZDQyNGVkNTRmMjU2NDAwZjk2NDczNmY2YzYzNDMwMDA1MTEwMDMy","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwECXZZUR6O5BWsg6hquTnP7svUiNlnvvDiDSoyAn5xXm9OE6+Bq2phEHnw1eDGdLPGgwI6vSErQYQ873CjAIiDwoJCK70hK0GEJcDEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQiv9IStBhCZAxICGAISAhgDGK/Dto0EIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5ClgEKAxjCDhpzKnEIAhJtCiISIAamrI6XrwFu8lwGelO4gwhbYeyQePSYE1fj568ixXRLCiM6IQPKozTFnAnRznarSYT9ATHiZzlRZMdCRm1pY6vJ50PZ0QoiEiBUu/EiU8pIa+L89LYOL6l3KJpOersbA0IEPxGTsuqeLCCQoQ9CBQiAztoDUgBaAGoLY2VsbGFyIGRvb3I=","b64Record":"CiUIFiIDGMMOKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjADTetEmgzg5WTSCJwAv0yATm2F6XALzE4TcrWny2UWY8rwpTaeGCtWMoLzOaqDlUQaCwjr9IStBhDDqcgUIg8KCQiv9IStBhCZAxICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMMDZ4gZC7wYKAxjDDhK6BGCAYEBSYAQ2EGEAP1dgADVg4ByAYxIGX+AUYQCPV4BjPM/WCxRhALpXgGNvZCNOFGEA0VeAY7a1XyUUYQEsV1szc///////////////////////////Fn/xsD9wi5w59FP+PwzvhBZMfW99+DbfB5bh6cK85u45fjRgQFGAgoFSYCABkVBQYEBRgJEDkKIAWzSAFWEAm1dgAID9W1BhAKRhAVpWW2BAUYCCgVJgIAGRUFBgQFGAkQOQ81s0gBVhAMZXYACA/VtQYQDPYQFiVlsAWzSAFWEA3VdgAID9W1BhASpgBIA2A2BAgRAVYQD0V2AAgP1bgQGQgIA1c///////////////////////////FpBgIAGQkpGQgDWQYCABkJKRkFBQUGEBq1ZbAFthAVhgBIA2A2AggRAVYQFCV2AAgP1bgQGQgIA1kGAgAZCSkZBQUFBhAfZWWwBbYABHkFCQVlszc///////////////////////////FmEI/EeQgRUCkGBAUWAAYEBRgIMDgYWIiPGTUFBQUBWAFWEBqFc9YACAPj1gAP1bUFZbgXP//////////////////////////xZhCPyCkIEVApBgQFFgAGBAUYCDA4GFiIjxk1BQUFAVgBVhAfFXPWAAgD49YAD9W1BQUFZbgDQUYQICV2AAgP1bUFb+omVienpyMVgg+PhPwxqEUGS1eB6QgxbzxZEVeWLeq7D9Qk7VTyVkAPlkc29sY0MABREAMiKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAowJoMOgMYww5KFgoUAAAAAAAAAAAAAAAAAAAAAAAAB0NyBwoDGMMOEAFSFgoJCgIYAhD/ssUNCgkKAhhiEICzxQ0="}]},"feePaymentMatrix Success/63/18400000":{"placeholderNum":1860,"encodedItems":[{"b64Body":"Cg8KCQi09IStBhCvAxICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIOheRwz+zTngUuf6uXl6wshBBhesr1UcImrWB6lCIHYCEICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGMUOKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCtc2z7yRAxdRDLLHC7ur59gjwAAmIRsd2avFi1auBnYm02oLJcJC166lQNkeFP/aQaDAjw9IStBhDDu9C2ASIPCgkItPSErQYQrwMSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIfCg0KAhgCEP//663M7JACCg4KAxjFDhCAgOytzOyQAg=="},{"b64Body":"ChEKCQi09IStBhCxAxICGAIgAVpoCiM6IQOjY/RCHHFu8c394qcUHqozWd2vgVnMspTrrClaOIzjGEoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiEDo2P0QhxxbvHN/eKnFB6qM1ndr4FZzLKU66wpWjiM4xg=","b64Record":"CgcIFhIDGMYOEjDRIUoxXHWFWpZ6HEfFt4zOT44738kkHAlS5cg/RJzQ3hTZ0OBOSYLsPlohzyycHUEaDAjw9IStBhCSpJ+bAyIRCgkItPSErQYQsQMSAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARSQWbbUG4VQER/GVMxFWeclb/i2Xw=="},{"b64Body":"Cg8KCQi09IStBhCxAxICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohA6Nj9EIccW7xzf3ipxQeqjNZ3a+BWcyylOusKVo4jOMYEICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwWXNbQLcCnkDXh/u2aKUqNmli1LD8zbHcmHKp448drO29IxOJltoKc3YNcc7VaBu2GgwI8PSErQYQk6SfmwMiDwoJCLT0hK0GELEDEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SGQoKCgIYAhD/j9/ASgoLCgMYxg4QgJDfwEo="},{"b64Body":"Cg8KCQi19IStBhC3AxICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAjxwt+wBhCoh/awARptCiISIEtvVgbNcUB/P2EZER85gUTcrXfqqgacZmB4PbIKBIqoCiM6IQLpZz2Nu7DbsIV3XbWkekl8ta47hcsq6LorXF4A5B6t2AoiEiBr3hwtmBloe8NIeznDT3b3enm6hpJhWEYJGFE2INceByIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGMcOKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAfX7/7F1dC9sK5A6mUnrh66Psjg1kc4rI2A+f252afdQC3bBc/h2U/gXw2XQCFnasaDAjx9IStBhCrzYXAASIPCgkItfSErQYQtwMSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQi19IStBhC7AxICGAISAhgDGPa4sjEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBogkKAxjHDiKaCTYwODA2MDQwNTI2MTAyM2E4MDYxMDAxMzYwMDAzOTYwMDBmM2ZlNjA4MDYwNDA1MjYwMDQzNjEwNjEwMDNmNTc2MDAwMzU2MGUwMWM4MDYzMTIwNjVmZTAxNDYxMDA4ZjU3ODA2MzNjY2ZkNjBiMTQ2MTAwYmE1NzgwNjM2ZjY0MjM0ZTE0NjEwMGQxNTc4MDYzYjZiNTVmMjUxNDYxMDEyYzU3NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2N2ZmMWIwM2Y3MDhiOWMzOWY0NTNmZTNmMGNlZjg0MTY0YzdkNmY3ZGY4MzZkZjA3OTZlMWU5YzJiY2U2ZWUzOTdlMzQ2MDQwNTE4MDgyODE1MjYwMjAwMTkxNTA1MDYwNDA1MTgwOTEwMzkwYTIwMDViMzQ4MDE1NjEwMDliNTc2MDAwODBmZDViNTA2MTAwYTQ2MTAxNWE1NjViNjA0MDUxODA4MjgxNTI2MDIwMDE5MTUwNTA2MDQwNTE4MDkxMDM5MGYzNWIzNDgwMTU2MTAwYzY1NzYwMDA4MGZkNWI1MDYxMDBjZjYxMDE2MjU2NWIwMDViMzQ4MDE1NjEwMGRkNTc2MDAwODBmZDViNTA2MTAxMmE2MDA0ODAzNjAzNjA0MDgxMTAxNTYxMDBmNDU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2OTA2MDIwMDE5MDkyOTE5MDgwMzU5MDYwMjAwMTkwOTI5MTkwNTA1MDUwNjEwMWFiNTY1YjAwNWI2MTAxNTg2MDA0ODAzNjAzNjAyMDgxMTAxNTYxMDE0MjU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTkwNjAyMDAxOTA5MjkxOTA1MDUwNTA2MTAxZjY1NjViMDA1YjYwMDA0NzkwNTA5MDU2NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjEwOGZjNDc5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTU4MDE1NjEwMWE4NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTY1YjgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MTA4ZmM4MjkwODExNTAyOTA2MDQwNTE2MDAwNjA0MDUxODA4MzAzODE4NTg4ODhmMTkzNTA1MDUwNTAxNTgwMTU2MTAxZjE1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTY1YjgwMzQxNDYxMDIwMjU3NjAwMDgwZmQ1YjUwNTZmZWEyNjU2MjdhN2E3MjMxNTgyMGY4Zjg0ZmMzMWE4NDUwNjRiNTc4MWU5MDgzMTZmM2M1OTExNTc5NjJkZWFiYjBmZDQyNGVkNTRmMjU2NDAwZjk2NDczNmY2YzYzNDMwMDA1MTEwMDMy","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw/88Yv0kyi5n+a8F8DEcmleZ0Le/ce9FTKYauKWfxqqTf2WHkyK1hdzGGYr3wwMZZGgwI8fSErQYQ68CGwgMiDwoJCLX0hK0GELsDEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQi29IStBhC9AxICGAISAhgDGK/Dto0EIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5ClgEKAxjHDhpzKnEIAhJtCiISIF5NDvnVM+QXPj9x+OI0RcrcEJ+zYvNa0bw+G4xQHO4ECiM6IQM9vxOq1cK+2D3Svuyg+hLz6AOkcbEP4hFbXrYvErO48woiEiCOKcb6K46GeB17B/MBsTad40t/ZfCfNudHUIvL5dYz9CCQoQ9CBQiAztoDUgBaAGoLY2VsbGFyIGRvb3I=","b64Record":"CiUIFiIDGMgOKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBSpf+N6cBr0+ShUlULGncSPvHm0KAgMOpC52NnVOKjypa7ZAmJcPYOd3MM+0I7BRoaDAjy9IStBhCToaXJASIPCgkItvSErQYQvQMSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQu8GCgMYyA4SugRggGBAUmAENhBhAD9XYAA1YOAcgGMSBl/gFGEAj1eAYzzP1gsUYQC6V4Bjb2QjThRhANFXgGO2tV8lFGEBLFdbM3P//////////////////////////xZ/8bA/cIucOfRT/j8M74QWTH1vffg23weW4enCvObuOX40YEBRgIKBUmAgAZFQUGBAUYCRA5CiAFs0gBVhAJtXYACA/VtQYQCkYQFaVltgQFGAgoFSYCABkVBQYEBRgJEDkPNbNIAVYQDGV2AAgP1bUGEAz2EBYlZbAFs0gBVhAN1XYACA/VtQYQEqYASANgNgQIEQFWEA9FdgAID9W4EBkICANXP//////////////////////////xaQYCABkJKRkIA1kGAgAZCSkZBQUFBhAatWWwBbYQFYYASANgNgIIEQFWEBQldgAID9W4EBkICANZBgIAGQkpGQUFBQYQH2VlsAW2AAR5BQkFZbM3P//////////////////////////xZhCPxHkIEVApBgQFFgAGBAUYCDA4GFiIjxk1BQUFAVgBVhAahXPWAAgD49YAD9W1BWW4Fz//////////////////////////8WYQj8gpCBFQKQYEBRYABgQFGAgwOBhYiI8ZNQUFBQFYAVYQHxVz1gAIA+PWAA/VtQUFBWW4A0FGECAldgAID9W1BW/qJlYnp6cjFYIPj4T8MahFBktXgekIMW88WRFXli3quw/UJO1U8lZAD5ZHNvbGNDAAURADIigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMCaDDoDGMgOShYKFAAAAAAAAAAAAAAAAAAAAAAAAAdIcgcKAxjIDhABUhYKCQoCGAIQ/7LFDQoJCgIYYhCAs8UN"},{"b64Body":"ChAKCQi29IStBhC/AxIDGMUOEgIYAxjP2tQVIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA9oBCtIBAvjPggEqgKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACSru0cAIMPQkCUAAAAAAAAAAAAAAAAAAAAAAAAB0iGteYg9IAApLa1XyUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOIMABoOJDztp5G4bQx9aleN5aDGeRhqGrvru0ZGHqRN9yLDN6oGtuXamQij83pAhDv1UMGEH6GqadiSNxmFKpFD1jINitGICG4wg=","b64Record":"CiUIFiIDGMgOKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjA3sM67MzNEOIDW/BzQmSFvobzLce2NnUcEW5IZRIo0hwhtOz58QKR+DKuPDIVzvagaDAjy9IStBhD74KTLAyIQCgkItvSErQYQvwMSAxjFDiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wz8DfMDq/AgoDGMgOIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACiA6jBQwIQ9WKCcAWIktrVfJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE4gagMYxg5SUQoJCgIYAxDW3cYBCgkKAhhiELz4ylcKCgoDGKAGEMbVlgQKCgoDGKEGEMbVlgQKCgoDGMUOEJ21qSsKCgoDGMYOEL+EmDYKCQoDGMgOEMC4AooBIEB21jHVw+/bTXxJtxkGJ1QdXQo941AarmIxNqF+8s0N"}]},"feePaymentMatrix Success/71/0":{"placeholderNum":1865,"encodedItems":[{"b64Body":"Cg8KCQi79IStBhDTAxICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIA+Ys5kBH8zwQuAJQ8X/e4sBjbKVBupD90zWMa6d8wDZEICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGMoOKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjClhCNiEaohCTn46buHgrwPMW0yl54+49ip5kB3UJRo4ZAydKBuQ0vMtkXLNq9ltlEaDAj39IStBhDL5M7rAiIPCgkIu/SErQYQ0wMSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIfCg0KAhgCEP//663M7JACCg4KAxjKDhCAgOytzOyQAg=="},{"b64Body":"ChEKCQi89IStBhDVAxICGAIgAVpoCiM6IQIYWUfyOGuI/+J8nJjhH/69ci0spbIToymBMmBSAK0k1EoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiECGFlH8jhriP/ifJyY4R/+vXItLKWyE6MpgTJgUgCtJNQ=","b64Record":"CgcIFhIDGMsOEjAPgP+2Hac4Dkg89xB8j059+7TpOujks9JeH0DhdF5Q+D9R/CzNhBmMMrKEXlIHvJsaCwj49IStBhC6lshzIhEKCQi89IStBhDVAxICGAIgASoUYXV0by1jcmVhdGVkIGFjY291bnRSAKoBFPzGArawWJtzXfBei/0385FtH3Og"},{"b64Body":"Cg8KCQi89IStBhDVAxICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohAhhZR/I4a4j/4nycmOEf/r1yLSylshOjKYEyYFIArSTUEICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw6dvevY9nBA0pYUhqcQBxZxAsE96T2iXbKqoCH5rNtkbiYCgSGYxXnwE1aUt0mQctGgsI+PSErQYQu5bIcyIPCgkIvPSErQYQ1QMSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxjLDhCAkN/ASg=="},{"b64Body":"Cg8KCQi89IStBhDbAxICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAj4wt+wBhCw/NjYAhptCiISICQkF8FZvMEkW3fYEPNmwTBmQcBtvszsmvlUdshGboy9CiM6IQKrX8p9IPqhdPOluYWr75iI4lgV4Fq3Jc8Ouwg4nGdzzQoiEiBB0teSnTURCU8A+a+r0TQJjg9lNViaRkDY3cGNH3NYYyIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGMwOKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAfhck3WtinpeZwywaasuXMTHZeK8u/Htktg5gmsgrGDU94B2yLyZGlHzgpt3uzh3YaDAj49IStBhDL86v1AiIPCgkIvPSErQYQ2wMSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQi99IStBhDfAxICGAISAhgDGPa4sjEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBogkKAxjMDiKaCTYwODA2MDQwNTI2MTAyM2E4MDYxMDAxMzYwMDAzOTYwMDBmM2ZlNjA4MDYwNDA1MjYwMDQzNjEwNjEwMDNmNTc2MDAwMzU2MGUwMWM4MDYzMTIwNjVmZTAxNDYxMDA4ZjU3ODA2MzNjY2ZkNjBiMTQ2MTAwYmE1NzgwNjM2ZjY0MjM0ZTE0NjEwMGQxNTc4MDYzYjZiNTVmMjUxNDYxMDEyYzU3NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2N2ZmMWIwM2Y3MDhiOWMzOWY0NTNmZTNmMGNlZjg0MTY0YzdkNmY3ZGY4MzZkZjA3OTZlMWU5YzJiY2U2ZWUzOTdlMzQ2MDQwNTE4MDgyODE1MjYwMjAwMTkxNTA1MDYwNDA1MTgwOTEwMzkwYTIwMDViMzQ4MDE1NjEwMDliNTc2MDAwODBmZDViNTA2MTAwYTQ2MTAxNWE1NjViNjA0MDUxODA4MjgxNTI2MDIwMDE5MTUwNTA2MDQwNTE4MDkxMDM5MGYzNWIzNDgwMTU2MTAwYzY1NzYwMDA4MGZkNWI1MDYxMDBjZjYxMDE2MjU2NWIwMDViMzQ4MDE1NjEwMGRkNTc2MDAwODBmZDViNTA2MTAxMmE2MDA0ODAzNjAzNjA0MDgxMTAxNTYxMDBmNDU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2OTA2MDIwMDE5MDkyOTE5MDgwMzU5MDYwMjAwMTkwOTI5MTkwNTA1MDUwNjEwMWFiNTY1YjAwNWI2MTAxNTg2MDA0ODAzNjAzNjAyMDgxMTAxNTYxMDE0MjU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTkwNjAyMDAxOTA5MjkxOTA1MDUwNTA2MTAxZjY1NjViMDA1YjYwMDA0NzkwNTA5MDU2NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjEwOGZjNDc5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTU4MDE1NjEwMWE4NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTY1YjgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MTA4ZmM4MjkwODExNTAyOTA2MDQwNTE2MDAwNjA0MDUxODA4MzAzODE4NTg4ODhmMTkzNTA1MDUwNTAxNTgwMTU2MTAxZjE1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTY1YjgwMzQxNDYxMDIwMjU3NjAwMDgwZmQ1YjUwNTZmZWEyNjU2MjdhN2E3MjMxNTgyMGY4Zjg0ZmMzMWE4NDUwNjRiNTc4MWU5MDgzMTZmM2M1OTExNTc5NjJkZWFiYjBmZDQyNGVkNTRmMjU2NDAwZjk2NDczNmY2YzYzNDMwMDA1MTEwMDMy","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw4RPDjBsst5pUPAR0CRR+79duA4Q2OHLWfPjjjBMPcbKBxojHKn8OVaxuEWF6B9ZyGgsI+fSErQYQo8KefSIPCgkIvfSErQYQ3wMSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQi99IStBhDhAxICGAISAhgDGK/Dto0EIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5ClgEKAxjMDhpzKnEIAhJtCiISIJo/NUn5znf6eMyjZ/CAHVfF/CnJ8s1hW0gE5JRBaxiACiM6IQOXpQW/YpLZiLF9fzi3u7+//MhqsBzch3ssdF9S97UPOwoiEiAB/Unv1cyb8+Fz9gbXPHH2KS2Gb01z9ye/r7OQYc8PTyCQoQ9CBQiAztoDUgBaAGoLY2VsbGFyIGRvb3I=","b64Record":"CiUIFiIDGM0OKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCtPkI3eNOIxANY7M/6ffYTwNCdZfVkY2ERCFkyUFRL9oQD+7nkNdm39pAVZPmDNuUaDAj59IStBhDDwr3+AiIPCgkIvfSErQYQ4QMSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQu8GCgMYzQ4SugRggGBAUmAENhBhAD9XYAA1YOAcgGMSBl/gFGEAj1eAYzzP1gsUYQC6V4Bjb2QjThRhANFXgGO2tV8lFGEBLFdbM3P//////////////////////////xZ/8bA/cIucOfRT/j8M74QWTH1vffg23weW4enCvObuOX40YEBRgIKBUmAgAZFQUGBAUYCRA5CiAFs0gBVhAJtXYACA/VtQYQCkYQFaVltgQFGAgoFSYCABkVBQYEBRgJEDkPNbNIAVYQDGV2AAgP1bUGEAz2EBYlZbAFs0gBVhAN1XYACA/VtQYQEqYASANgNgQIEQFWEA9FdgAID9W4EBkICANXP//////////////////////////xaQYCABkJKRkIA1kGAgAZCSkZBQUFBhAatWWwBbYQFYYASANgNgIIEQFWEBQldgAID9W4EBkICANZBgIAGQkpGQUFBQYQH2VlsAW2AAR5BQkFZbM3P//////////////////////////xZhCPxHkIEVApBgQFFgAGBAUYCDA4GFiIjxk1BQUFAVgBVhAahXPWAAgD49YAD9W1BWW4Fz//////////////////////////8WYQj8gpCBFQKQYEBRYABgQFGAgwOBhYiI8ZNQUFBQFYAVYQHxVz1gAIA+PWAA/VtQUFBWW4A0FGECAldgAID9W1BW/qJlYnp6cjFYIPj4T8MahFBktXgekIMW88WRFXli3quw/UJO1U8lZAD5ZHNvbGNDAAURADIigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMCaDDoDGM0OShYKFAAAAAAAAAAAAAAAAAAAAAAAAAdNcgcKAxjNDhABUhYKCQoCGAIQ/7LFDQoJCgIYYhCAs8UN"},{"b64Body":"ChAKCQi+9IStBhDjAxIDGMoOEgIYAxjP2tQVIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA9UBCtIBAvjPggEqgKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAClT0w8AIMPQkCUAAAAAAAAAAAAAAAAAAAAAAAAB02GteYg9IAApLa1XyUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOIMABoBJG1FMdefVJCkeJyKI6AGgfEbj08+xPgvVq5NoJmVbhoBfqyDGwb2DzIQlseulo7qNwri0O3eac0sn48pAxDmgg","b64Record":"CiUIFiIDGM0OKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjD3Z8Yn07hbyWhXN8maN+aQGnCa0PQY9CCh1cPZgvc7y4aZQFPcNhRfXDXvtFdQYdYaDAj69IStBhDL7t+GASIQCgkIvvSErQYQ4wMSAxjKDiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wz8DfMDq/AgoDGM0OIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACiA6jBQwIQ9WKCcAWIktrVfJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE4gagMYyw5SUQoJCgIYAxDW3cYBCgkKAhhiELz4ylcKCgoDGKAGEMbVlgQKCgoDGKEGEMbVlgQKCgoDGMoOEJ21qSsKCgoDGMsOEL+EmDYKCQoDGM0OEMC4AooBIHp6A9ksfSS2NAuyjUM8ABdbJ1cF2nP+UUulIxUB/3vu"}]},"feePaymentMatrix Success/71/18400000":{"placeholderNum":1870,"encodedItems":[{"b64Body":"Cg8KCQjD9IStBhD3AxICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIL0HEQ4KnqGU4FjF+CGY7Sejyk+UmmlFHPNwulo886A9EICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGM8OKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAclvssLwxsEpuMwjXqXLiBvPN1G+40pMI53JGEuNQftN9okIuzYAJo9HwwW+t87EEaCwj/9IStBhCD87IoIg8KCQjD9IStBhD3AxICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUh8KDQoCGAIQ///rrczskAIKDgoDGM8OEICA7K3M7JAC"},{"b64Body":"ChEKCQjD9IStBhD5AxICGAIgAVpoCiM6IQM0WE+B4qoR6RoANz0ksfOEMd66HjzcIPqvlD1ZNc4qKEoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiEDNFhPgeKqEekaADc9JLHzhDHeuh483CD6r5Q9WTXOKig=","b64Record":"CgcIFhIDGNAOEjB3GEGMvHU9UpnHqCfVXvCo5YHudefrWEeRt43KLxPOthR++lQIgMdmmYL/4bi1ktcaDAj/9IStBhDi1aCMAiIRCgkIw/SErQYQ+QMSAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARRNXXBRznzB+lvVFuclc4x4rkF4AQ=="},{"b64Body":"Cg8KCQjD9IStBhD5AxICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohAzRYT4HiqhHpGgA3PSSx84Qx3roePNwg+q+UPVk1ziooEICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwZkCzdt4qWrM5FQ9JkYQVsIJi49wixc4K+amMKTJuGc4Dkwu3+PcAWesFdTdYv3vPGgwI//SErQYQ49WgjAIiDwoJCMP0hK0GEPkDEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SGQoKCgIYAhD/j9/ASgoLCgMY0A4QgJDfwEo="},{"b64Body":"Cg8KCQjE9IStBhD/AxICGAISAhgDGLXNziwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjgESCwiAw9+wBhCY0NYfGm0KIhIgt4MmBSiS7zvP5xNVNjxjI3axzmT6lU5QWXq/IYp3PZkKIzohAqIQ9L0eX/t6R14SRDP+s8Qf5y4UuDEc9PKaLtlKmDmUCiISILe+OOughDWRj1GnqyG8rP5gwPgHkxOopql1GBWnOzDVIgxIZWxsbyBXb3JsZCEqADIA","b64Record":"CiUIFhoDGNEOKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBo3pg5gOtxHfp1bNAnOtIpaQXxpFJrcxH78EGP26/fMHlgsEt/UT+UwUTLUNL399oaCwiA9YStBhCT0rwxIg8KCQjE9IStBhD/AxICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgA="},{"b64Body":"Cg8KCQjE9IStBhCDBBICGAISAhgDGMe6szEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBogkKAxjRDiKaCTYwODA2MDQwNTI2MTAyM2E4MDYxMDAxMzYwMDAzOTYwMDBmM2ZlNjA4MDYwNDA1MjYwMDQzNjEwNjEwMDNmNTc2MDAwMzU2MGUwMWM4MDYzMTIwNjVmZTAxNDYxMDA4ZjU3ODA2MzNjY2ZkNjBiMTQ2MTAwYmE1NzgwNjM2ZjY0MjM0ZTE0NjEwMGQxNTc4MDYzYjZiNTVmMjUxNDYxMDEyYzU3NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2N2ZmMWIwM2Y3MDhiOWMzOWY0NTNmZTNmMGNlZjg0MTY0YzdkNmY3ZGY4MzZkZjA3OTZlMWU5YzJiY2U2ZWUzOTdlMzQ2MDQwNTE4MDgyODE1MjYwMjAwMTkxNTA1MDYwNDA1MTgwOTEwMzkwYTIwMDViMzQ4MDE1NjEwMDliNTc2MDAwODBmZDViNTA2MTAwYTQ2MTAxNWE1NjViNjA0MDUxODA4MjgxNTI2MDIwMDE5MTUwNTA2MDQwNTE4MDkxMDM5MGYzNWIzNDgwMTU2MTAwYzY1NzYwMDA4MGZkNWI1MDYxMDBjZjYxMDE2MjU2NWIwMDViMzQ4MDE1NjEwMGRkNTc2MDAwODBmZDViNTA2MTAxMmE2MDA0ODAzNjAzNjA0MDgxMTAxNTYxMDBmNDU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2OTA2MDIwMDE5MDkyOTE5MDgwMzU5MDYwMjAwMTkwOTI5MTkwNTA1MDUwNjEwMWFiNTY1YjAwNWI2MTAxNTg2MDA0ODAzNjAzNjAyMDgxMTAxNTYxMDE0MjU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTkwNjAyMDAxOTA5MjkxOTA1MDUwNTA2MTAxZjY1NjViMDA1YjYwMDA0NzkwNTA5MDU2NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjEwOGZjNDc5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTU4MDE1NjEwMWE4NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTY1YjgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MTA4ZmM4MjkwODExNTAyOTA2MDQwNTE2MDAwNjA0MDUxODA4MzAzODE4NTg4ODhmMTkzNTA1MDUwNTAxNTgwMTU2MTAxZjE1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTY1YjgwMzQxNDYxMDIwMjU3NjAwMDgwZmQ1YjUwNTZmZWEyNjU2MjdhN2E3MjMxNTgyMGY4Zjg0ZmMzMWE4NDUwNjRiNTc4MWU5MDgzMTZmM2M1OTExNTc5NjJkZWFiYjBmZDQyNGVkNTRmMjU2NDAwZjk2NDczNmY2YzYzNDMwMDA1MTEwMDMy","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwB1UM5rsQSF624xQ5wAqatgq4hXK0qfK3aIxNuYDHgvdhYIUpHxdp2ovcwKRntsCZGgwIgPWErQYQu+uNlgIiDwoJCMT0hK0GEIMEEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjF9IStBhCFBBICGAISAhgDGK/Dto0EIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5ClgEKAxjRDhpzKnEIAhJtCiISIL0cuR+44SLh8ts3MTh5tPsks+Vdd9Kv/0GXNpckvWxbCiM6IQKikOKDUDhfmirs7zSv1XueELF1/lwmxqS2x5HldaTb4woiEiA2xpUcL0gatxZbbjsIKb/SSi01SA3lZtyJGvacRvnv4SCQoQ9CBQiAztoDUgBaAGoLY2VsbGFyIGRvb3I=","b64Record":"CiUIFiIDGNIOKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAU7yA6N7VpYGNbjeHWGxAUvPBE1IoGJBqfZYNhz/Ko1yBxBz1q8R2swMnaa03JVr0aCwiB9YStBhC7yrs6Ig8KCQjF9IStBhCFBBICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMMDZ4gZC7wYKAxjSDhK6BGCAYEBSYAQ2EGEAP1dgADVg4ByAYxIGX+AUYQCPV4BjPM/WCxRhALpXgGNvZCNOFGEA0VeAY7a1XyUUYQEsV1szc///////////////////////////Fn/xsD9wi5w59FP+PwzvhBZMfW99+DbfB5bh6cK85u45fjRgQFGAgoFSYCABkVBQYEBRgJEDkKIAWzSAFWEAm1dgAID9W1BhAKRhAVpWW2BAUYCCgVJgIAGRUFBgQFGAkQOQ81s0gBVhAMZXYACA/VtQYQDPYQFiVlsAWzSAFWEA3VdgAID9W1BhASpgBIA2A2BAgRAVYQD0V2AAgP1bgQGQgIA1c///////////////////////////FpBgIAGQkpGQgDWQYCABkJKRkFBQUGEBq1ZbAFthAVhgBIA2A2AggRAVYQFCV2AAgP1bgQGQgIA1kGAgAZCSkZBQUFBhAfZWWwBbYABHkFCQVlszc///////////////////////////FmEI/EeQgRUCkGBAUWAAYEBRgIMDgYWIiPGTUFBQUBWAFWEBqFc9YACAPj1gAP1bUFZbgXP//////////////////////////xZhCPyCkIEVApBgQFFgAGBAUYCDA4GFiIjxk1BQUFAVgBVhAfFXPWAAgD49YAD9W1BQUFZbgDQUYQICV2AAgP1bUFb+omVienpyMVgg+PhPwxqEUGS1eB6QgxbzxZEVeWLeq7D9Qk7VTyVkAPlkc29sY0MABREAMiKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAowJoMOgMY0g5KFgoUAAAAAAAAAAAAAAAAAAAAAAAAB1JyBwoDGNIOEAFSFgoJCgIYAhD/ssUNCgkKAhhiEICzxQ0="},{"b64Body":"ChAKCQjF9IStBhCHBBIDGM8OEgIYAxjP2tQVIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA9oBCtIBAvjPggEqgKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAClT0w8AIMPQkCUAAAAAAAAAAAAAAAAAAAAAAAAB1KGteYg9IAApLa1XyUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOIMABoBrdomK63IBDIhKeE4DAF2bcJuZUMQvgusoWJOb+6ek5oExgwT+OON627uiQhGfKL1Nh/mHwxRvLvlBFZvNJoHGqGICG4wg=","b64Record":"CiUIFiIDGNIOKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDQRkXucKBFXGlzdbKw38svpQsYqW9mNmtVZlFpDxR2Ut8hS+Occu9tVHhOvhru6mIaDAiB9YStBhD7/dSfAiIQCgkIxfSErQYQhwQSAxjPDiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wz8DfMDq/AgoDGNIOIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACiA6jBQwIQ9WKCcAWIktrVfJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE4gagMY0A5SUQoJCgIYAxDW3cYBCgkKAhhiELz4ylcKCgoDGKAGEMbVlgQKCgoDGKEGEMbVlgQKCgoDGM8OEJ21qSsKCgoDGNAOEL+EmDYKCQoDGNIOEMC4AooBIGtiE6L7eHnM+nsOFOPRRiuLcinEcwsK7Pjv67KDXh3W"}]},"feePaymentMatrix Success/71/71000000":{"placeholderNum":1875,"encodedItems":[{"b64Body":"Cg8KCQjK9IStBhCbBBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIAsD1eWv1hRbzAaXniRdIu/FHvdglmAgPxyBrN4SO0DVEICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGNQOKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjA1K2lFh2UgOu+s/xsopQyF24Gd7ENGu7iTMGjpD6SBw3qeXUIdDGbZYIM9CDRzZyMaDAiG9YStBhDDltnFASIPCgkIyvSErQYQmwQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIfCg0KAhgCEP//663M7JACCg4KAxjUDhCAgOytzOyQAg=="},{"b64Body":"ChEKCQjK9IStBhCdBBICGAIgAVpoCiM6IQLdMnBwhN2ysgASfAc00FrNWm6mJnerBj6PFU5RD8gZ6koFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiEC3TJwcITdsrIAEnwHNNBazVpupiZ3qwY+jxVOUQ/IGeo=","b64Record":"CgcIFhIDGNUOEjDPbB3AnGZ8iGPICv+O7lU7XK5WPDWK5yCK12kRb7x6EMoB0C8uJI5ygEJYbX1LgksaDAiG9YStBhDKzZLHAyIRCgkIyvSErQYQnQQSAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARR6Y6sy9CJUCx4DylsRqzvDVbPgBA=="},{"b64Body":"Cg8KCQjK9IStBhCdBBICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohAt0ycHCE3bKyABJ8BzTQWs1abqYmd6sGPo8VTlEPyBnqEICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwVStgz7JpcdSLfOxq3p6GDjq35zR/Jdbcd652lNCbNodWkckZg6waPq1qGAgYbOgUGgwIhvWErQYQy82SxwMiDwoJCMr0hK0GEJ0EEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SGQoKCgIYAhD/j9/ASgoLCgMY1Q4QgJDfwEo="},{"b64Body":"Cg8KCQjL9IStBhCjBBICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAiHw9+wBhDIzvrGARptCiISINNnBBxV8k3Vu8PaFTSsb/ASEvr3jy4xHk4mYc+0u6TMCiM6IQODSyuGwpnEzdjrRkn4d6eSdukHIfR5EV1RUjAbWw4xaAoiEiBACLnvnEqN7zmXUdZNd6pP+0mLr7QtwKO9R/6Sy803eSIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGNYOKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDPw49joqcIT2O5MqLTeib0T8EUgJRxZagRlsKUvdIazPzwgcluvR7WxIO7JGIZtocaDAiH9YStBhDbkb3OASIPCgkIy/SErQYQowQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjL9IStBhCnBBICGAISAhgDGPa4sjEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBogkKAxjWDiKaCTYwODA2MDQwNTI2MTAyM2E4MDYxMDAxMzYwMDAzOTYwMDBmM2ZlNjA4MDYwNDA1MjYwMDQzNjEwNjEwMDNmNTc2MDAwMzU2MGUwMWM4MDYzMTIwNjVmZTAxNDYxMDA4ZjU3ODA2MzNjY2ZkNjBiMTQ2MTAwYmE1NzgwNjM2ZjY0MjM0ZTE0NjEwMGQxNTc4MDYzYjZiNTVmMjUxNDYxMDEyYzU3NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2N2ZmMWIwM2Y3MDhiOWMzOWY0NTNmZTNmMGNlZjg0MTY0YzdkNmY3ZGY4MzZkZjA3OTZlMWU5YzJiY2U2ZWUzOTdlMzQ2MDQwNTE4MDgyODE1MjYwMjAwMTkxNTA1MDYwNDA1MTgwOTEwMzkwYTIwMDViMzQ4MDE1NjEwMDliNTc2MDAwODBmZDViNTA2MTAwYTQ2MTAxNWE1NjViNjA0MDUxODA4MjgxNTI2MDIwMDE5MTUwNTA2MDQwNTE4MDkxMDM5MGYzNWIzNDgwMTU2MTAwYzY1NzYwMDA4MGZkNWI1MDYxMDBjZjYxMDE2MjU2NWIwMDViMzQ4MDE1NjEwMGRkNTc2MDAwODBmZDViNTA2MTAxMmE2MDA0ODAzNjAzNjA0MDgxMTAxNTYxMDBmNDU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2OTA2MDIwMDE5MDkyOTE5MDgwMzU5MDYwMjAwMTkwOTI5MTkwNTA1MDUwNjEwMWFiNTY1YjAwNWI2MTAxNTg2MDA0ODAzNjAzNjAyMDgxMTAxNTYxMDE0MjU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTkwNjAyMDAxOTA5MjkxOTA1MDUwNTA2MTAxZjY1NjViMDA1YjYwMDA0NzkwNTA5MDU2NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjEwOGZjNDc5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTU4MDE1NjEwMWE4NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTY1YjgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MTA4ZmM4MjkwODExNTAyOTA2MDQwNTE2MDAwNjA0MDUxODA4MzAzODE4NTg4ODhmMTkzNTA1MDUwNTAxNTgwMTU2MTAxZjE1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTY1YjgwMzQxNDYxMDIwMjU3NjAwMDgwZmQ1YjUwNTZmZWEyNjU2MjdhN2E3MjMxNTgyMGY4Zjg0ZmMzMWE4NDUwNjRiNTc4MWU5MDgzMTZmM2M1OTExNTc5NjJkZWFiYjBmZDQyNGVkNTRmMjU2NDAwZjk2NDczNmY2YzYzNDMwMDA1MTEwMDMy","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwZCzYvScMvwsZmhEDVY+ycclD0GUArXzpKjm38s+otL2upL9GTH5Fq1hh54yhwxlRGgwIh/WErQYQ0+PTzwMiDwoJCMv0hK0GEKcEEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjM9IStBhCpBBICGAISAhgDGK/Dto0EIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5ClgEKAxjWDhpzKnEIAhJtCiISIG//l+d8XKFZ8PVkiUkhuz5SZOypf9FYSNrkj5oqo/egCiM6IQK1wI/KnK8sMQhRkJ1O2LShuIE1qL2dVkfagGzn8xeougoiEiCAD+wRIsF9IJQrcJivfEPZkgYr2GdYdvxIPsJLoh3wTCCQoQ9CBQiAztoDUgBaAGoLY2VsbGFyIGRvb3I=","b64Record":"CiUIFiIDGNcOKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjClWXA/KyzHsXQ1+HRCaQGHfpBhThPGhz3waWsNM0r/1c6UEAYER727fFuYJEzd4csaDAiI9YStBhDjmdbXASIPCgkIzPSErQYQqQQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQu8GCgMY1w4SugRggGBAUmAENhBhAD9XYAA1YOAcgGMSBl/gFGEAj1eAYzzP1gsUYQC6V4Bjb2QjThRhANFXgGO2tV8lFGEBLFdbM3P//////////////////////////xZ/8bA/cIucOfRT/j8M74QWTH1vffg23weW4enCvObuOX40YEBRgIKBUmAgAZFQUGBAUYCRA5CiAFs0gBVhAJtXYACA/VtQYQCkYQFaVltgQFGAgoFSYCABkVBQYEBRgJEDkPNbNIAVYQDGV2AAgP1bUGEAz2EBYlZbAFs0gBVhAN1XYACA/VtQYQEqYASANgNgQIEQFWEA9FdgAID9W4EBkICANXP//////////////////////////xaQYCABkJKRkIA1kGAgAZCSkZBQUFBhAatWWwBbYQFYYASANgNgIIEQFWEBQldgAID9W4EBkICANZBgIAGQkpGQUFBQYQH2VlsAW2AAR5BQkFZbM3P//////////////////////////xZhCPxHkIEVApBgQFFgAGBAUYCDA4GFiIjxk1BQUFAVgBVhAahXPWAAgD49YAD9W1BWW4Fz//////////////////////////8WYQj8gpCBFQKQYEBRYABgQFGAgwOBhYiI8ZNQUFBQFYAVYQHxVz1gAIA+PWAA/VtQUFBWW4A0FGECAldgAID9W1BW/qJlYnp6cjFYIPj4T8MahFBktXgekIMW88WRFXli3quw/UJO1U8lZAD5ZHNvbGNDAAURADIigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMCaDDoDGNcOShYKFAAAAAAAAAAAAAAAAAAAAAAAAAdXcgcKAxjXDhABUhYKCQoCGAIQ/7LFDQoJCgIYYhCAs8UN"},{"b64Body":"ChAKCQjM9IStBhCrBBIDGNQOEgIYAxjP2tQVIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA9oBCtIBAvjPggEqgKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAClT0w8AIMPQkCUAAAAAAAAAAAAAAAAAAAAAAAAB1eGteYg9IAApLa1XyUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOIMCAoGQsnagQ0PUZa6GbzRzVDhgQDCn4er7vxmlpmmfQYnIwoGIOgXviy6U5FU4Fsrj3Vv1l6JZyv0oDxFwiU7YgmAIMGMC/7SE=","b64Record":"CiUIFiIDGNcOKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBHxdwEEixrMcnu2EiiaRcVYON9ZVqT53oR0Ud3UaSBbxDCamO9ucG3ozyoFFGDkaoaDAiI9YStBhCL4L7ZAyIQCgkIzPSErQYQqwQSAxjUDiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wz8DfMDq/AgoDGNcOIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACiA6jBQwIQ9WKCcAWIktrVfJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE4gagMY1Q5SUQoJCgIYAxDW3cYBCgkKAhhiELz4ylcKCgoDGKAGEMbVlgQKCgoDGKEGEMbVlgQKCgoDGNQOEJ21qSsKCgoDGNUOEL+EmDYKCQoDGNcOEMC4AooBIHP1DofffBnHuZUsfs/xhKJIG/3NtEx9upbWLSoe9Q91"}]},"InvalidTxData":{"placeholderNum":1880,"encodedItems":[{"b64Body":"Cg8KCQjR9IStBhC/BBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISICHPTBQFNplkCm0wIjB7yPMkFt49DHzg9UWK2dTV+bXTEICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGNkOKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDLq4mrcs5riwk4wGSe8qh/J6dkQdBUYSIxXA0Zu7KFap5PeFiF2HIwPM68nW3AgzcaDAiN9YStBhCL1o77AiIPCgkI0fSErQYQvwQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIfCg0KAhgCEP//663M7JACCg4KAxjZDhCAgOytzOyQAg=="},{"b64Body":"ChEKCQjS9IStBhDBBBICGAIgAVpoCiM6IQPJ076XwKbvFYAbsPlVGOS36+5gUGZcP3c4dfR/I1rqhUoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiEDydO+l8Cm7xWAG7D5VRjkt+vuYFBmXD93OHX0fyNa6oU=","b64Record":"CgcIFhIDGNoOEjArOKNk4NI3Yi47GXZ5/SSgYIx1krLqCZmd/dIiBD2WB1S9NOHinEbeWuRTfpc7Xl4aDAiO9YStBhDa57SCASIRCgkI0vSErQYQwQQSAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARQt+io6teogfHcBpolIy7mhtsruhA=="},{"b64Body":"Cg8KCQjS9IStBhDBBBICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohA8nTvpfApu8VgBuw+VUY5Lfr7mBQZlw/dzh19H8jWuqFEICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwZtXCDVoz12Yxa//IPFCkpDeQZPxNXHWcrKuOgeZX1HN719iM7IzbZ9joRz6ErTqSGgwIjvWErQYQ2+e0ggEiDwoJCNL0hK0GEMEEEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SGQoKCgIYAhD/j9/ASgoLCgMY2g4QgJDfwEo="},{"b64Body":"Cg8KCQjS9IStBhDHBBICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAiOw9+wBhCwvbfqAhptCiISIIOaRh/ilXz9EpuJyj3wJ6zVrMHHGNVyK4wBxVjZHpzICiM6IQJm0tAvNah8d/zXsYwfsBpURXd9/0U8JUIYVpqBzhAVCQoiEiBNmU7uGpvAzCL/WALavYeI04w2w8KW+2JfZ7Kwaw7Z/CIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGNsOKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBImUNd2p5H98uSEnSOnXH2WjHdD+CRmFKXBl6yaEHBpE5jbJXh+h3AUbkb8rGQ9NYaDAiO9YStBhDzmrOEAyIPCgkI0vSErQYQxwQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjT9IStBhDLBBICGAISAhgDGPa4sjEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBogkKAxjbDiKaCTYwODA2MDQwNTI2MTAyM2E4MDYxMDAxMzYwMDAzOTYwMDBmM2ZlNjA4MDYwNDA1MjYwMDQzNjEwNjEwMDNmNTc2MDAwMzU2MGUwMWM4MDYzMTIwNjVmZTAxNDYxMDA4ZjU3ODA2MzNjY2ZkNjBiMTQ2MTAwYmE1NzgwNjM2ZjY0MjM0ZTE0NjEwMGQxNTc4MDYzYjZiNTVmMjUxNDYxMDEyYzU3NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2N2ZmMWIwM2Y3MDhiOWMzOWY0NTNmZTNmMGNlZjg0MTY0YzdkNmY3ZGY4MzZkZjA3OTZlMWU5YzJiY2U2ZWUzOTdlMzQ2MDQwNTE4MDgyODE1MjYwMjAwMTkxNTA1MDYwNDA1MTgwOTEwMzkwYTIwMDViMzQ4MDE1NjEwMDliNTc2MDAwODBmZDViNTA2MTAwYTQ2MTAxNWE1NjViNjA0MDUxODA4MjgxNTI2MDIwMDE5MTUwNTA2MDQwNTE4MDkxMDM5MGYzNWIzNDgwMTU2MTAwYzY1NzYwMDA4MGZkNWI1MDYxMDBjZjYxMDE2MjU2NWIwMDViMzQ4MDE1NjEwMGRkNTc2MDAwODBmZDViNTA2MTAxMmE2MDA0ODAzNjAzNjA0MDgxMTAxNTYxMDBmNDU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2OTA2MDIwMDE5MDkyOTE5MDgwMzU5MDYwMjAwMTkwOTI5MTkwNTA1MDUwNjEwMWFiNTY1YjAwNWI2MTAxNTg2MDA0ODAzNjAzNjAyMDgxMTAxNTYxMDE0MjU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTkwNjAyMDAxOTA5MjkxOTA1MDUwNTA2MTAxZjY1NjViMDA1YjYwMDA0NzkwNTA5MDU2NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjEwOGZjNDc5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTU4MDE1NjEwMWE4NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTY1YjgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MTA4ZmM4MjkwODExNTAyOTA2MDQwNTE2MDAwNjA0MDUxODA4MzAzODE4NTg4ODhmMTkzNTA1MDUwNTAxNTgwMTU2MTAxZjE1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTY1YjgwMzQxNDYxMDIwMjU3NjAwMDgwZmQ1YjUwNTZmZWEyNjU2MjdhN2E3MjMxNTgyMGY4Zjg0ZmMzMWE4NDUwNjRiNTc4MWU5MDgzMTZmM2M1OTExNTc5NjJkZWFiYjBmZDQyNGVkNTRmMjU2NDAwZjk2NDczNmY2YzYzNDMwMDA1MTEwMDMy","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwe948b9nTc30OtNXMakk9azDqZKbnhLZqntzai4m2PLd1N1JyRZwAOp1AizEwRoIrGgwIj/WErQYQy8WxjAEiDwoJCNP0hK0GEMsEEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="}]},"etx008ContractCreateExecutesWithExpectedRecord":{"placeholderNum":1884,"encodedItems":[{"b64Body":"Cg8KCQjY9IStBhDdBBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIG+RFgRmyjdKgc5ibJSrb+Y2FO2UresU1H2ECvnSHa+9EICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGN0OKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCWygLmQLOeDlntsTPxWcc+e5Cs092o90Iffn83ouCZ61onKvjW7BdUW/mQUbz0yrIaCwiU9YStBhDT+aksIg8KCQjY9IStBhDdBBICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUh8KDQoCGAIQ///rrczskAIKDgoDGN0OEICA7K3M7JAC"},{"b64Body":"ChEKCQjY9IStBhDfBBICGAIgAVpoCiM6IQN4xC8KmJww089XIdvqf1ayzEbyPbx4xeNHM9FG1m2bZUoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiEDeMQvCpicMNPPVyHb6n9WssxG8j28eMXjRzPRRtZtm2U=","b64Record":"CgcIFhIDGN4OEjD4IR6ylXXDtUor4KLcy556CbnbXcKL993NAgbTSd35A/+9Q7i3HNKHbVH4lj5CocAaDAiU9YStBhDyoLytAiIRCgkI2PSErQYQ3wQSAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARQ+02puBgd1LsnXzD2tPE8iRMwmPQ=="},{"b64Body":"Cg8KCQjY9IStBhDfBBICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohA3jELwqYnDDTz1ch2+p/VrLMRvI9vHjF40cz0UbWbZtlEICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwU2vAnaQ77XLBtEmVVRDeLWHEYhg5TtKAoIgOK5f5pP6KoakzxcmHv3F+7/9JM86+GgwIlPWErQYQ86C8rQIiDwoJCNj0hK0GEN8EEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SGQoKCgIYAhD/j9/ASgoLCgMY3g4QgJDfwEo="},{"b64Body":"Cg8KCQjZ9IStBhDhBBICGAISAhgDGLXNziwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjgESCwiVw9+wBhCYutExGm0KIhIgFoOijl0RiwEttEdoNwJfwcm5bstbnMyCU1+9iJcUUvsKIzohAlaRMv/lR5jwD1S7JF3H3NHLuaLa4c63ctRTQfjFSPzaCiISIBazF3RhRuweUizI1OYa5grev4qot/rP0/uXVb7Uq1GtIgxIZWxsbyBXb3JsZCEqADIA","b64Record":"CiUIFhoDGN8OKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDaSezmY1sIAKcaFpiN+dJKe1IVLs1Wjwa3TLKVHbGf4oaKLsCBelN1B83OdrC0S3kaCwiV9YStBhCL1Mw1Ig8KCQjZ9IStBhDhBBICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgA="},{"b64Body":"Cg8KCQjZ9IStBhDlBBICGAISAhgDGNLmqDoiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBoBkKAxjfDiKYGTYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDMwNjAwMDYwNDA1MTYxMDAyMDkwNjEwMjViNTY1YjgwODM3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ODE1MjYwMjAwMTgyNjNmZmZmZmZmZjE2NjNmZmZmZmZmZjE2ODE1MjYwMjAwMTkyNTA1MDUwNjA0MDUxODA5MTAzOTA2MDAwZjA4MDE1ODAxNTYxMDA4NTU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDYwMDA4MDYwMDM4MTEwNjEwMDkzNTdmZTViMDE2MDAwNjEwMTAwMGE4MTU0ODE3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjE5MTY5MDgzNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTYwMjE3OTA1NTUwMzA2MDAxNjA0MDUxNjEwMGUxOTA2MTAyNWI1NjViODA4MzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4MTUyNjAyMDAxODI2M2ZmZmZmZmZmMTY2M2ZmZmZmZmZmMTY4MTUyNjAyMDAxOTI1MDUwNTA2MDQwNTE4MDkxMDM5MDYwMDBmMDgwMTU4MDE1NjEwMTQ2NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNjAwMDYwMDE2MDAzODExMDYxMDE1NTU3ZmU1YjAxNjAwMDYxMDEwMDBhODE1NDgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIxOTE2OTA4MzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2MDIxNzkwNTU1MDMwNjAwMjYwNDA1MTYxMDFhMzkwNjEwMjViNTY1YjgwODM3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ODE1MjYwMjAwMTgyNjNmZmZmZmZmZjE2NjNmZmZmZmZmZjE2ODE1MjYwMjAwMTkyNTA1MDUwNjA0MDUxODA5MTAzOTA2MDAwZjA4MDE1ODAxNTYxMDIwODU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDYwMDA2MDAyNjAwMzgxMTA2MTAyMTc1N2ZlNWIwMTYwMDA2MTAxMDAwYTgxNTQ4MTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMTkxNjkwODM3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjAyMTc5MDU1NTA2MTAyNjg1NjViNjEwMWI4ODA2MTA0OTQ4MzM5MDE5MDU2NWI2MTAyMWQ4MDYxMDI3NzYwMDAzOTYwMDBmM2ZlNjA4MDYwNDA1MjM0ODAxNTYxMDAxMDU3NjAwMDgwZmQ1YjUwNjAwNDM2MTA2MTAwMmI1NzYwMDAzNTYwZTAxYzgwNjM2NGRiZTc4YzE0NjEwMDMwNTc1YjYwMDA4MGZkNWI2MTAwMzg2MTAwM2E1NjViMDA1YjYwMDA4MDYwMDM4MTEwNjEwMDQ3NTdmZTViMDE2MDAwOTA1NDkwNjEwMTAwMGE5MDA0NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzYjhiM2RiYzY2MDQwNTE4MTYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MDAwNjA0MDUxODA4MzAzODE2MDAwODc4MDNiMTU4MDE1NjEwMGIwNTc2MDAwODBmZDViNTA1YWYxMTU4MDE1NjEwMGM0NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjAwMDYwMDE2MDAzODExMDYxMDBkNjU3ZmU1YjAxNjAwMDkwNTQ5MDYxMDEwMDBhOTAwNDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2M2I4YjNkYmM2NjA0MDUxODE2M2ZmZmZmZmZmMTY2MGUwMWI4MTUyNjAwNDAxNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg3ODAzYjE1ODAxNTYxMDEzZjU3NjAwMDgwZmQ1YjUwNWFmMTE1ODAxNTYxMDE1MzU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwMDA2MDAyNjAwMzgxMTA2MTAxNjU1N2ZlNWIwMTYwMDA5MDU0OTA2MTAxMDAwYTkwMDQ3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjNiOGIzZGJjNjYwNDA1MTgxNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NzgwM2IxNTgwMTU2MTAxY2U1NzYwMDA4MGZkNWI1MDVhZjExNTgwMTU2MTAxZTI1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA1NmZlYTI2NTYyN2E3YTcyMzE1ODIwNmI1ODg3NjljODIzYmQ0MjMyMzRjYTY3MjI2MTdjOTE1NTkzNzc4NzczMjg5ZTVlYTY5NTdmNmIzMDgzYTcyNjY0NzM2ZjZjNjM0MzAwMDUxMTAwMzI2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDQwNTE2MTAxYjgzODAzODA2MTAxYjg4MzM5ODE4MTAxNjA0MDUyNjA0MDgxMTAxNTYxMDAzMzU3NjAwMDgwZmQ1YjgxMDE5MDgwODA1MTkwNjAyMDAxOTA5MjkxOTA4MDUxOTA2MDIwMDE5MDkyOTE5MDUwNTA1MDgxNjAwMDgwNjEwMTAwMGE4MTU0ODE3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjE5MTY5MDgzNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTYwMjE3OTA1NTUwODA2MDAwNjAxNDYxMDEwMDBhODE1NDgxNjNmZmZmZmZmZjAyMTkxNjkwODM2M2ZmZmZmZmZmMTYwMjE3OTA1NTUwNTA1MDYwZjk4MDYxMDBiZjYwMDAzOTYwMDBmM2ZlNjA4MDYwNDA1MjM0ODAxNTYwMGY1NzYwMDA4MGZkNWI1MDYwMDQzNjEwNjAyODU3NjAwMDM1NjBlMDFjODA2M2I4YjNkYmM2MTQ2MDJkNTc1YjYwMDA4MGZkNWI2MDMzNjAzNTU2NWIwMDViN2ZlZmVkZTI2ODc2NDE2MzM5YjBhNzg5ZGEzNTE3Njk0N2JkZDMwMmI4ZWE5ZDQ5NWRjZDZjMDg0ZWMzZDFjYzllNjAwMDYwMTQ5MDU0OTA2MTAxMDAwYTkwMDQ2M2ZmZmZmZmZmMTY2MDQwNTE4MDgyNjNmZmZmZmZmZjE2NjNmZmZmZmZmZjE2ODE1MjYwMjAwMTkxNTA1MDYwNDA1MTgwOTEwMzkwYTE2MDAwODA5MDU0OTA2MTAxMDAwYTkwMDQ3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ZmZmZWEyNjU2MjdhN2E3MjMxNTgyMGJiNGExZTEzMzZjMzRkNDc2NTQ3MWU5ODkzNDgxMDM3MTVhYzI0Nzk5NmU5YWM2ODYwZjRlYTQ1OWE5YjJiMDg2NDczNmY2YzYzNDMwMDA1MTEwMDMy","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwe7nwfebVU2rB0JYmkyIIX1jXa+OFaE1R5QejSWe4WfzYs9BaVd2syFCj8cdCTg1oGgwIlfWErQYQ0978twIiDwoJCNn0hK0GEOUEEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"ChAKCQja9IStBhDnBBIDGN0OEgIYAxjd/aAbIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA+wNCuMNAvkG34IBKoCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATiCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdGpSiACDD0JAgIC5BkxggGBAUjSAFWEAEFdgAID9W1AwYABgQFFhACCQYQJbVluAg3P//////////////////////////xZz//////////////////////////8WgVJgIAGCY/////8WY/////8WgVJgIAGSUFBQYEBRgJEDkGAA8IAVgBVhAIVXPWAAgD49YAD9W1BgAIBgA4EQYQCTV/5bAWAAYQEACoFUgXP//////////////////////////wIZFpCDc///////////////////////////FgIXkFVQMGABYEBRYQDhkGECW1ZbgINz//////////////////////////8Wc///////////////////////////FoFSYCABgmP/////FmP/////FoFSYCABklBQUGBAUYCRA5BgAPCAFYAVYQFGVz1gAIA+PWAA/VtQYABgAWADgRBhAVVX/lsBYABhAQAKgVSBc///////////////////////////AhkWkINz//////////////////////////8WAheQVVAwYAJgQFFhAaOQYQJbVluAg3P//////////////////////////xZz//////////////////////////8WgVJgIAGCY/////8WY/////8WgVJgIAGSUFBQYEBRgJEDkGAA8IAVgBVhAghXPWAAgD49YAD9W1BgAGACYAOBEGECF1f+WwFgAGEBAAqBVIFz//////////////////////////8CGRaQg3P//////////////////////////xYCF5BVUGECaFZbYQG4gGEElIM5AZBWW2ECHYBhAndgADlgAPP+YIBgQFI0gBVhABBXYACA/VtQYAQ2EGEAK1dgADVg4ByAY2Tb54wUYQAwV1tgAID9W2EAOGEAOlZbAFtgAIBgA4EQYQBHV/5bAWAAkFSQYQEACpAEc///////////////////////////FnP//////////////////////////xZjuLPbxmBAUYFj/////xZg4BuBUmAEAWAAYEBRgIMDgWAAh4A7FYAVYQCwV2AAgP1bUFrxFYAVYQDEVz1gAIA+PWAA/VtQUFBQYABgAWADgRBhANZX/lsBYACQVJBhAQAKkARz//////////////////////////8Wc///////////////////////////FmO4s9vGYEBRgWP/////FmDgG4FSYAQBYABgQFGAgwOBYACHgDsVgBVhAT9XYACA/VtQWvEVgBVhAVNXPWAAgD49YAD9W1BQUFBgAGACYAOBEGEBZVf+WwFgAJBUkGEBAAqQBHP//////////////////////////xZz//////////////////////////8WY7iz28ZgQFGBY/////8WYOAbgVJgBAFgAGBAUYCDA4FgAIeAOxWAFWEBzldgAID9W1Ba8RWAFWEB4lc9YACAPj1gAP1bUFBQUFb+omVienpyMVgga1iHacgjvUIyNMpnImF8kVWTd4dzKJ5eppV/azCDpyZkc29sY0MABREAMmCAYEBSNIAVYQAQV2AAgP1bUGBAUWEBuDgDgGEBuIM5gYEBYEBSYECBEBVhADNXYACA/VuBAZCAgFGQYCABkJKRkIBRkGAgAZCSkZBQUFCBYACAYQEACoFUgXP//////////////////////////wIZFpCDc///////////////////////////FgIXkFVQgGAAYBRhAQAKgVSBY/////8CGRaQg2P/////FgIXkFVQUFBg+YBhAL9gADlgAPP+YIBgQFI0gBVgD1dgAID9W1BgBDYQYChXYAA1YOAcgGO4s9vGFGAtV1tgAID9W2AzYDVWWwBbf+/t4mh2QWM5sKeJ2jUXaUe90wK46p1JXc1sCE7D0cyeYABgFJBUkGEBAAqQBGP/////FmBAUYCCY/////8WY/////8WgVJgIAGRUFBgQFGAkQOQoWAAgJBUkGEBAAqQBHP//////////////////////////xZz//////////////////////////8W//6iZWJ6enIxWCC7Sh4TNsNNR2VHHpiTSBA3FawkeZbprGhg9OpFmpsrCGRzb2xjQwAFEQAywAGgoa81xlvGbzJkj5yYJld7u87K3xPo1HWbE1zZ6Uq3PsmgXeF/QOUwVGSz29TL2cZC2YGne9TbsxvWawBpYOaeOgwYgMivoCU=","b64Record":"CiUIFiIDGOAOKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCF1+40afvjkVsFcof+cSXQACNmoXnjezrY0oXcx/rF+Xof+9ToaOFthVHbMN2uQq4aCwiW9YStBhC71/4+IhAKCQja9IStBhDnBBIDGN0OKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDd46s2QtQTCgMY4A4SnQRggGBAUjSAFWEAEFdgAID9W1BgBDYQYQArV2AANWDgHIBjZNvnjBRhADBXW2AAgP1bYQA4YQA6VlsAW2AAgGADgRBhAEdX/lsBYACQVJBhAQAKkARz//////////////////////////8Wc///////////////////////////FmO4s9vGYEBRgWP/////FmDgG4FSYAQBYABgQFGAgwOBYACHgDsVgBVhALBXYACA/VtQWvEVgBVhAMRXPWAAgD49YAD9W1BQUFBgAGABYAOBEGEA1lf+WwFgAJBUkGEBAAqQBHP//////////////////////////xZz//////////////////////////8WY7iz28ZgQFGBY/////8WYOAbgVJgBAFgAGBAUYCDA4FgAIeAOxWAFWEBP1dgAID9W1Ba8RWAFWEBU1c9YACAPj1gAP1bUFBQUGAAYAJgA4EQYQFlV/5bAWAAkFSQYQEACpAEc///////////////////////////FnP//////////////////////////xZjuLPbxmBAUYFj/////xZg4BuBUmAEAWAAYEBRgIMDgWAAh4A7FYAVYQHOV2AAgP1bUFrxFYAVYQHiVz1gAIA+PWAA/VtQUFBQVv6iZWJ6enIxWCBrWIdpyCO9QjI0ymciYXyRVZN3h3Monl6mlX9rMIOnJmRzb2xjQwAFEQAyIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACiA6jA6AxjgDjoDGOEOOgMY4g46AxjjDkoWChTa5HLnKY3p97UxXBu9Pl6aSzs1t1DAhD1izAxggGBAUjSAFWEAEFdgAID9W1AwYABgQFFhACCQYQJbVluAg3P//////////////////////////xZz//////////////////////////8WgVJgIAGCY/////8WY/////8WgVJgIAGSUFBQYEBRgJEDkGAA8IAVgBVhAIVXPWAAgD49YAD9W1BgAIBgA4EQYQCTV/5bAWAAYQEACoFUgXP//////////////////////////wIZFpCDc///////////////////////////FgIXkFVQMGABYEBRYQDhkGECW1ZbgINz//////////////////////////8Wc///////////////////////////FoFSYCABgmP/////FmP/////FoFSYCABklBQUGBAUYCRA5BgAPCAFYAVYQFGVz1gAIA+PWAA/VtQYABgAWADgRBhAVVX/lsBYABhAQAKgVSBc///////////////////////////AhkWkINz//////////////////////////8WAheQVVAwYAJgQFFhAaOQYQJbVluAg3P//////////////////////////xZz//////////////////////////8WgVJgIAGCY/////8WY/////8WgVJgIAGSUFBQYEBRgJEDkGAA8IAVgBVhAghXPWAAgD49YAD9W1BgAGACYAOBEGECF1f+WwFgAGEBAAqBVIFz//////////////////////////8CGRaQg3P//////////////////////////xYCF5BVUGECaFZbYQG4gGEElIM5AZBWW2ECHYBhAndgADlgAPP+YIBgQFI0gBVhABBXYACA/VtQYAQ2EGEAK1dgADVg4ByAY2Tb54wUYQAwV1tgAID9W2EAOGEAOlZbAFtgAIBgA4EQYQBHV/5bAWAAkFSQYQEACpAEc///////////////////////////FnP//////////////////////////xZjuLPbxmBAUYFj/////xZg4BuBUmAEAWAAYEBRgIMDgWAAh4A7FYAVYQCwV2AAgP1bUFrxFYAVYQDEVz1gAIA+PWAA/VtQUFBQYABgAWADgRBhANZX/lsBYACQVJBhAQAKkARz//////////////////////////8Wc///////////////////////////FmO4s9vGYEBRgWP/////FmDgG4FSYAQBYABgQFGAgwOBYACHgDsVgBVhAT9XYACA/VtQWvEVgBVhAVNXPWAAgD49YAD9W1BQUFBgAGACYAOBEGEBZVf+WwFgAJBUkGEBAAqQBHP//////////////////////////xZz//////////////////////////8WY7iz28ZgQFGBY/////8WYOAbgVJgBAFgAGBAUYCDA4FgAIeAOxWAFWEBzldgAID9W1Ba8RWAFWEB4lc9YACAPj1gAP1bUFBQUFb+omVienpyMVgga1iHacgjvUIyNMpnImF8kVWTd4dzKJ5eppV/azCDpyZkc29sY0MABREAMmCAYEBSNIAVYQAQV2AAgP1bUGBAUWEBuDgDgGEBuIM5gYEBYEBSYECBEBVhADNXYACA/VuBAZCAgFGQYCABkJKRkIBRkGAgAZCSkZBQUFCBYACAYQEACoFUgXP//////////////////////////wIZFpCDc///////////////////////////FgIXkFVQgGAAYBRhAQAKgVSBY/////8CGRaQg2P/////FgIXkFVQUFBg+YBhAL9gADlgAPP+YIBgQFI0gBVgD1dgAID9W1BgBDYQYChXYAA1YOAcgGO4s9vGFGAtV1tgAID9W2AzYDVWWwBbf+/t4mh2QWM5sKeJ2jUXaUe90wK46p1JXc1sCE7D0cyeYABgFJBUkGEBAAqQBGP/////FmBAUYCCY/////8WY/////8WgVJgIAGRUFBgQFGAkQOQoWAAgJBUkGEBAAqQBHP//////////////////////////xZz//////////////////////////8W//6iZWJ6enIxWCC7Sh4TNsNNR2VHHpiTSBA3FawkeZbprGhg9OpFmpsrCGRzb2xjQwAFEQAyagMY3g5yBwoDGOAOEARyBwoDGOEOEAFyBwoDGOIOEAFyBwoDGOMOEAFSRgoJCgIYAxD2/5oCCgkKAhhiELjIgWAKCgoDGKAGEMa/nQUKCgoDGKEGEMa/nQUKCgoDGN0OELmFgD0KCgoDGN4OEP/B1y+KASDtP+TTjU5GaVekHGrlbkhrMW9JH2P14LgxL/Kag+857Q=="},{"b64Body":"ChIKCQja9IStBhDnBBIDGN0OIAFCHUIFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50","b64Record":"CgcIFiIDGOEOEjAzF8vForZoe5k70Y4ScQfkMbgwbUa44xSBdm6GSn+lnmLCe1bg/5kVaJvWUlM4lewaCwiW9YStBhC81/4+IhIKCQja9IStBhDnBBIDGN0OIAFCHQoDGOEOShYKFD3mNe5X/nQk+E0GF3TbTgiWnxIQUgB6CwiW9YStBhC71/4+"},{"b64Body":"ChIKCQja9IStBhDnBBIDGN0OIAJCHUIFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50","b64Record":"CgcIFiIDGOIOEjCrk6mlpOhlb0DoG7YpUdvmon4HSE/EtNslE+95GO81mnB+AYzLF1SV6gN9AeldcSgaCwiW9YStBhC91/4+IhIKCQja9IStBhDnBBIDGN0OIAJCHQoDGOIOShYKFCXSVnZUnl7t5BU5fAaF9grEdYGLUgB6CwiW9YStBhC71/4+"},{"b64Body":"ChIKCQja9IStBhDnBBIDGN0OIANCHUIFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50","b64Record":"CgcIFiIDGOMOEjBlrBZMuWsz7wzDchvXThDhH21FiqRQqr7FrD81j/9rn59TRyrnUvOhWQh4q1c3+gAaCwiW9YStBhC+1/4+IhIKCQja9IStBhDnBBIDGN0OIANCHQoDGOMOShYKFPsYKIBq32mTlMPQw82CTZRvqthWUgB6CwiW9YStBhC71/4+"},{"b64Body":"ChIKCQja9IStBhDnBBIDGN0OIARCHUIFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50","b64Record":"CgcIFiIDGOAOEjCrInLmGTsdauXclEXC0YABYJuT0+5njbAaG/7UhPdRrJiSGUnYWp8MgdDr9ymRW9MaCwiW9YStBhC/1/4+IhIKCQja9IStBhDnBBIDGN0OIARCHQoDGOAOShYKFNrkcucpjen3tTFcG70+XppLOzW3UgB6CwiW9YStBhC71/4+"}]},"etx009CallsToTokenAddresses":{"placeholderNum":1892,"encodedItems":[{"b64Body":"Cg8KCQje9IStBhCTBRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIP7RMWt0+TDcmdFE0aeWuOb66/mKzJnPelUobIyS3/zNEICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGOUOKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAX4PAaEOMgeT5iL4Hziu6ImnPdj834kNzxSBxc3cCKa3lEBgSyTEK31XKcq9EVLXQaDAia9YStBhDr047ZAyIPCgkI3vSErQYQkwUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIfCg0KAhgCEP//663M7JACCg4KAxjlDhCAgOytzOyQAg=="},{"b64Body":"Cg8KCQjf9IStBhCVBRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIG+E83Iqck0FEdkYKHgr6c+QuyMtPgywJwEIArmJS+T9EICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGOYOKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCE1W8Z3NhBIYq8hNRT9dgmmWKEKt8FMQRrLnxugSVIWPlrZOfei4+JjJnkCfW/p54aDAib9YStBhCj5YfiASIPCgkI3/SErQYQlQUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxjmDhCAqNa5Bw=="},{"b64Body":"ChEKCQjf9IStBhCXBRICGAIgAVpoCiM6IQNcRFblqJazzFdbr4/HC9dNw/eUoQcXrLOu2nHR+U6ZU0oFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiEDXERW5aiWs8xXW6+PxwvXTcP3lKEHF6yzrtpx0flOmVM=","b64Record":"CgcIFhIDGOcOEjB0Z1BF0pz2rp/fXWDj/1fd/V7Nzh9JgWLKdaR7F2Fo9Q0TpUBYn1sWe0fWOvgWPg0aCwic9YStBhDSu4kGIhEKCQjf9IStBhCXBRICGAIgASoUYXV0by1jcmVhdGVkIGFjY291bnRSAKoBFBd1BhlzZjZ16ng69WdTHY4/6Awl"},{"b64Body":"Cg8KCQjf9IStBhCXBRICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohA1xEVuWolrPMV1uvj8cL103D95ShBxess67acdH5TplTEICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwnB/zqnnKXo4O5GSOHMCI3Xt9+QdOwJhHYiQJGNah6QFvkl4Ld7Kz/OfRflztH7WPGgsInPWErQYQ07uJBiIPCgkI3/SErQYQlwUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxjnDhCAkN/ASg=="},{"b64Body":"Cg8KCQjg9IStBhCZBRICGAISAhgDGL7W8vsCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAXgKDWZ1bmdpYmxlVG9rZW4SCEFJUEFDRUVWIDIqAxjmDjIjOiEDXERW5aiWs8xXW6+PxwvXTcP3lKEHF6yzrtpx0flOmVNSIzohA1xEVuWolrPMV1uvj8cL103D95ShBxess67acdH5TplTagwInMPfsAYQ8J2z3QE=","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGOgOEjCdGayl2uQaGOPrvIVsbuxOQUTqJAePRvsD91bPZ9hCnJVmWUKBrn33jlAihqQPRrEaDAic9YStBhDL5NrqASIPCgkI4PSErQYQmQUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWg4KAxjoDhIHCgMY5g4QZHIKCgMY6A4SAxjmDg=="},{"b64Body":"Cg8KCQjg9IStBhCbBRICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAicw9+wBhCIgpbVAxptCiISIHLQkc+toCrTcfa7j8TjvFd2OGM2V/sWpiX2IEJ30533CiM6IQPumY0HaGBQNiGCypnG9f8oJJpuodsmYm0einKoqe6c9goiEiDFaGwm7J0xcfYUIWRCzh6LyFaq2+zRkLl1JKWK+5HtziIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGOkOKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDMefGWB+j6SLwRpBXXCm6ZNp1r+vDJXi+dVeDDtCQ5NDFXt8n82b2xDcS1eiz3fggaCwid9YStBhDrwZAQIg8KCQjg9IStBhCbBRICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgA="},{"b64Body":"Cg8KCQjh9IStBhCfBRICGAISAhgDGIudjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxjpDiKAIDYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMGE1NzgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDBjZjU3NjAwMDM1NjBlMDFjODA2M2JlYWJhY2M4MTE2MTAwOGM1NzgwNjNlNGRjMmFhNDExNjEwMDY2NTc4MDYzZTRkYzJhYTQxNDYxMDE4MTU3ODA2M2Y0Yjc5ZGE1MTQ2MTAxOTQ1NzgwNjNmNzg4OGFlYzE0NjEwMWE3NTc4MDYzZjc5Yzc1NjgxNDYxMDFiYTU3NjAwMDgwZmQ1YjgwNjNiZWFiYWNjODE0NjEwMTQ4NTc4MDYzZDQ0OWE4MzIxNDYxMDE1YjU3ODA2M2UxZjIxYzY3MTQ2MTAxNmU1NzYwMDA4MGZkNWI4MDYzMDE5ODQ4OTIxNDYxMDBkNDU3ODA2MzE1ZGFjYmVhMTQ2MTAwZTk1NzgwNjMxZjg0YjJiNzE0NjEwMGZjNTc4MDYzOTI3ZGExMDUxNDYxMDEwZjU3ODA2Mzk4ZGNhNWJlMTQ2MTAxMjI1NzgwNjNhODZlMzU3NjE0NjEwMTM1NTc1YjYwMDA4MGZkNWI2MTAwZTc2MTAwZTIzNjYwMDQ2MTA3NDY1NjViNjEwMWNkNTY1YjAwNWI2MTAwZTc2MTAwZjczNjYwMDQ2MTA3Njg1NjViNjEwMjM3NTY1YjYxMDBlNzYxMDEwYTM2NjAwNDYxMDdiMzU2NWI2MTAyYjk1NjViNjEwMGU3NjEwMTFkMzY2MDA0NjEwN2VmNTY1YjYxMDMzMzU2NWI2MTAwZTc2MTAxMzAzNjYwMDQ2MTA3Njg1NjViNjEwM2FiNTY1YjYxMDBlNzYxMDE0MzM2NjAwNDYxMDc0NjU2NWI2MTAzZTg1NjViNjEwMGU3NjEwMTU2MzY2MDA0NjEwN2IzNTY1YjYxMDQyNjU2NWI2MTAwZTc2MTAxNjkzNjYwMDQ2MTA3NDY1NjViNjEwNDlhNTY1YjYxMDBlNzYxMDE3YzM2NjAwNDYxMDdiMzU2NWI2MTA0ZmM1NjViNjEwMGU3NjEwMThmMzY2MDA0NjEwNzQ2NTY1YjYxMDUzMTU2NWI2MTAwZTc2MTAxYTIzNjYwMDQ2MTA3YjM1NjViNjEwNTkzNTY1YjYxMDBlNzYxMDFiNTM2NjAwNDYxMDgzMjU2NWI2MTA2Mzc1NjViNjEwMGU3NjEwMWM4MzY2MDA0NjEwODY1NTY1YjYxMDZhNjU2NWI4MDYwMDE2MDAxNjBhMDFiMDMxNjYzMDZmZGRlMDM2MDQwNTE4MTYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MDAwNjA0MDUxODA4MzAzODE4NjVhZmExNTgwMTU2MTAyMGI1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA2MDQwNTEzZDYwMDA4MjNlNjAxZjNkOTA4MTAxNjAxZjE5MTY4MjAxNjA0MDUyNjEwMjMzOTE5MDgxMDE5MDYxMDhkMTU2NWI1MDUwNTY1YjYwNDA1MTYzMjNiODcyZGQ2MGUwMWI4MTUyNjAwMTYwMDE2MGEwMWIwMzg0ODExNjYwMDQ4MzAxNTI4MzgxMTY2MDI0ODMwMTUyNjA0NDgyMDE4MzkwNTI4NTE2OTA2MzIzYjg3MmRkOTA2MDY0MDE2MDIwNjA0MDUxODA4MzAzODE2MDAwODc1YWYxMTU4MDE1NjEwMjhlNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTAyYjI5MTkwNjEwOTdlNTY1YjUwNTA1MDUwNTA1NjViNjA0MDUxNjNhOTA1OWNiYjYwZTAxYjgxNTI2MDAxNjAwMTYwYTAxYjAzODM4MTE2NjAwNDgzMDE1MjYwMjQ4MjAxODM5MDUyODQxNjkwNjNhOTA1OWNiYjkwNjA0NDAxNWI2MDIwNjA0MDUxODA4MzAzODE2MDAwODc1YWYxMTU4MDE1NjEwMzA5NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTAzMmQ5MTkwNjEwOTdlNTY1YjUwNjAwMDgwZmQ1YjYwNDA1MTYzNmViMTc2OWY2MGUxMWI4MTUyNjAwMTYwMDE2MGEwMWIwMzgzODExNjYwMDQ4MzAxNTI4MjgxMTY2MDI0ODMwMTUyODQxNjkwNjNkZDYyZWQzZTkwNjA0NDAxNjAyMDYwNDA1MTgwODMwMzgxODY1YWZhMTU4MDE1NjEwMzgxNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTAzYTU5MTkwNjEwOWEwNTY1YjUwNTA1MDUwNTY1YjYwNDA1MTYzMjNiODcyZGQ2MGUwMWI4MTUyNjAwMTYwMDE2MGEwMWIwMzg0ODExNjYwMDQ4MzAxNTI4MzgxMTY2MDI0ODMwMTUyNjA0NDgyMDE4MzkwNTI4NTE2OTA2MzIzYjg3MmRkOTA2MDY0MDE2MTAyZWE1NjViODA2MDAxNjAwMTYwYTAxYjAzMTY2Mzk1ZDg5YjQxNjA0MDUxODE2M2ZmZmZmZmZmMTY2MGUwMWI4MTUyNjAwNDAxNjAwMDYwNDA1MTgwODMwMzgxODY1YWZhMTU4MDE1NjEwMjBiNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjYwNDA1MTYzYTkwNTljYmI2MGUwMWI4MTUyNjAwMTYwMDE2MGEwMWIwMzgzODExNjYwMDQ4MzAxNTI2MDI0ODIwMTgzOTA1Mjg0MTY5MDYzYTkwNTljYmI5MDYwNDQwMTViNjAyMDYwNDA1MTgwODMwMzgxNjAwMDg3NWFmMTE1ODAxNTYxMDQ3NjU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAxZjE5NjAxZjgyMDExNjgyMDE4MDYwNDA1MjUwODEwMTkwNjEwM2E1OTE5MDYxMDk3ZTU2NWI4MDYwMDE2MDAxNjBhMDFiMDMxNjYzMzEzY2U1Njc2MDQwNTE4MTYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MDIwNjA0MDUxODA4MzAzODE4NjVhZmExNTgwMTU2MTA0ZDg1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA2MDQwNTEzZDYwMWYxOTYwMWY4MjAxMTY4MjAxODA2MDQwNTI1MDgxMDE5MDYxMDIzMzkxOTA2MTA5Yjk1NjViNjA0MDUxNjMwOTVlYTdiMzYwZTAxYjgxNTI2MDAxNjAwMTYwYTAxYjAzODM4MTE2NjAwNDgzMDE1MjYwMjQ4MjAxODM5MDUyODQxNjkwNjMwOTVlYTdiMzkwNjA0NDAxNjEwNDU3NTY1YjgwNjAwMTYwMDE2MGEwMWIwMzE2NjMxODE2MGRkZDYwNDA1MTgxNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYwMjA2MDQwNTE4MDgzMDM4MTg2NWFmYTE1ODAxNTYxMDU2ZjU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAxZjE5NjAxZjgyMDExNjgyMDE4MDYwNDA1MjUwODEwMTkwNjEwMjMzOTE5MDYxMDlhMDU2NWI2MDQwNTE2MDAxNjAwMTYwYTAxYjAzODM4MTE2NjAyNDgzMDE1MjYwNDQ4MjAxODM5MDUyNjAwMDkxODI5MTg2MTY5MDYwNjQwMTYwNDA4MDUxNjAxZjE5ODE4NDAzMDE4MTUyOTE4MTUyNjAyMDgyMDE4MDUxNjAwMTYwMDE2MGUwMWIwMzE2NjNhOTA1OWNiYjYwZTAxYjE3OTA1MjUxNjEwNWVkOTE5MDYxMDlkYzU2NWI2MDAwNjA0MDUxODA4MzAzODE4NTVhZjQ5MTUwNTAzZDgwNjAwMDgxMTQ2MTA2Mjg1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTA2MmQ1NjViNjA2MDkxNTA1YjUwNTA1MDUwNTA1MDUwNTA1NjViNjA0MDUxNjM3MGEwODIzMTYwZTAxYjgxNTI2MDAxNjAwMTYwYTAxYjAzODI4MTE2NjAwNDgzMDE1MjgzMTY5MDYzNzBhMDgyMzE5MDYwMjQwMTYwMjA2MDQwNTE4MDgzMDM4MTg2NWFmYTE1ODAxNTYxMDY3ZDU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAxZjE5NjAxZjgyMDExNjgyMDE4MDYwNDA1MjUwODEwMTkwNjEwNmExOTE5MDYxMDlhMDU2NWI1MDUwNTA1NjViNjAwMDViODE4MTEwMTU2MTA2YTE1NzgyNjAwMTYwMDE2MGEwMWIwMzE2NjMwNmZkZGUwMzYwNDA1MTgxNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYwMDA2MDQwNTE4MDgzMDM4MTg2NWFmYTE1ODAxNTYxMDZlZjU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAwMDgyM2U2MDFmM2Q5MDgxMDE2MDFmMTkxNjgyMDE2MDQwNTI2MTA3MTc5MTkwODEwMTkwNjEwOGQxNTY1YjUwODA2MTA3MjI4MTYxMDlmODU2NWI5MTUwNTA2MTA2YTk1NjViODAzNTYwMDE2MDAxNjBhMDFiMDM4MTE2ODExNDYxMDc0MTU3NjAwMDgwZmQ1YjkxOTA1MDU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTA3NTg1NzYwMDA4MGZkNWI2MTA3NjE4MjYxMDcyYTU2NWI5MzkyNTA1MDUwNTY1YjYwMDA4MDYwMDA4MDYwODA4NTg3MDMxMjE1NjEwNzdlNTc2MDAwODBmZDViNjEwNzg3ODU2MTA3MmE1NjViOTM1MDYxMDc5NTYwMjA4NjAxNjEwNzJhNTY1YjkyNTA2MTA3YTM2MDQwODYwMTYxMDcyYTU2NWI5Mzk2OTI5NTUwOTI5MzYwNjAwMTM1OTI1MDUwNTY1YjYwMDA4MDYwMDA2MDYwODQ4NjAzMTIxNTYxMDdjODU3NjAwMDgwZmQ1YjYxMDdkMTg0NjEwNzJhNTY1YjkyNTA2MTA3ZGY2MDIwODUwMTYxMDcyYTU2NWI=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwdghW47myJ7AP4QAs+mAcYhqDtzIqhTANPBflLTQgk43KfgXd3bmnQ1fVWNkNVmovGgwInfWErQYQw+zW9AEiDwoJCOH0hK0GEJ8FEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQji9IStBhClBRICGAISAhgDGKq4szIiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIB9gkSAxjpDiLuCTkxNTA2MDQwODQwMTM1OTA1MDkyNTA5MjUwOTI1NjViNjAwMDgwNjAwMDYwNjA4NDg2MDMxMjE1NjEwODA0NTc2MDAwODBmZDViNjEwODBkODQ2MTA3MmE1NjViOTI1MDYxMDgxYjYwMjA4NTAxNjEwNzJhNTY1YjkxNTA2MTA4Mjk2MDQwODUwMTYxMDcyYTU2NWI5MDUwOTI1MDkyNTA5MjU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMDg0NTU3NjAwMDgwZmQ1YjYxMDg0ZTgzNjEwNzJhNTY1YjkxNTA2MTA4NWM2MDIwODQwMTYxMDcyYTU2NWI5MDUwOTI1MDkyOTA1MDU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMDg3ODU3NjAwMDgwZmQ1YjYxMDg4MTgzNjEwNzJhNTY1Yjk0NjAyMDkzOTA5MzAxMzU5MzUwNTA1MDU2NWI2MzRlNDg3YjcxNjBlMDFiNjAwMDUyNjA0MTYwMDQ1MjYwMjQ2MDAwZmQ1YjYwMDA1YjgzODExMDE1NjEwOGMwNTc4MTgxMDE1MTgzODIwMTUyNjAyMDAxNjEwOGE4NTY1YjgzODExMTE1NjEwM2E1NTc1MDUwNjAwMDkxMDE1MjU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTA4ZTM1NzYwMDA4MGZkNWI4MTUxNjdmZmZmZmZmZmZmZmZmZmZmODA4MjExMTU2MTA4ZmI1NzYwMDA4MGZkNWI4MTg0MDE5MTUwODQ2MDFmODMwMTEyNjEwOTBmNTc2MDAwODBmZDViODE1MTgxODExMTE1NjEwOTIxNTc2MTA5MjE2MTA4OGY1NjViNjA0MDUxNjAxZjgyMDE2MDFmMTk5MDgxMTY2MDNmMDExNjgxMDE5MDgzODIxMTgxODMxMDE3MTU2MTA5NDk1NzYxMDk0OTYxMDg4ZjU2NWI4MTYwNDA1MjgyODE1Mjg3NjAyMDg0ODcwMTAxMTExNTYxMDk2MjU3NjAwMDgwZmQ1YjYxMDk3MzgzNjAyMDgzMDE2MDIwODgwMTYxMDhhNTU2NWI5Nzk2NTA1MDUwNTA1MDUwNTA1NjViNjAwMDYwMjA4Mjg0MDMxMjE1NjEwOTkwNTc2MDAwODBmZDViODE1MTgwMTUxNTgxMTQ2MTA3NjE1NzYwMDA4MGZkNWI2MDAwNjAyMDgyODQwMzEyMTU2MTA5YjI1NzYwMDA4MGZkNWI1MDUxOTE5MDUwNTY1YjYwMDA2MDIwODI4NDAzMTIxNTYxMDljYjU3NjAwMDgwZmQ1YjgxNTE2MGZmODExNjgxMTQ2MTA3NjE1NzYwMDA4MGZkNWI2MDAwODI1MTYxMDllZTgxODQ2MDIwODcwMTYxMDhhNTU2NWI5MTkwOTEwMTkyOTE1MDUwNTY1YjYwMDA2MDAwMTk4MjE0MTU2MTBhMWE1NzYzNGU0ODdiNzE2MGUwMWI2MDAwNTI2MDExNjAwNDUyNjAyNDYwMDBmZDViNTA2MDAxMDE5MDU2ZmVhMjY0Njk3MDY2NzM1ODIyMTIyMDkzZGI3ZDJiZGQwOTYyNTBhZGQ4ZWZlNmNjOWJhNGExZjdjZjEzOGQ0MTBiNTQ0ODlmNmFlYmY0NDI5NmRmM2Y2NDczNmY2YzYzNDMwMDA4MGIwMDMz","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwFIAXz2/qBDLxU6sHUoRf1GTMm6RQE8sstPLXL0Ti+wlmOISIs4GSa5L6/Qpr1VG7GgsInvWErQYQk5fxGCIPCgkI4vSErQYQpQUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQji9IStBhCnBRICGAISAhgDGK/Dto0EIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5ClgEKAxjpDhpzKnEIAhJtCiISIIlHML1Zze439WRa5gNiaVbNvRnXHc2w+52aS3TB/FgMCiM6IQLKO0vp47sp1QDyO1ws9mi1jk8a1L5Up4PygjHk4w9+ywoiEiAz215JlaJEeZnSpx9VY9/ZVNGZ7OE4YLUlha6a95q0BiCQoQ9CBQiAztoDUgBaAGoLY2VsbGFyIGRvb3I=","b64Record":"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"},{"b64Body":"ChAKCQjj9IStBhCpBRIDGOUOEgIYAxigl8MVIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA7UBCqwBAvipggEqgKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0alKIAIMPQkCUAAAAAAAAAAAAAAAAAAAAAAAAB2iAhBgWDd3AAaAtqOR8WCdYzhUZRZBwTzYjiFNayDbyUrheeuaCnlJUPaBqbR8s8XA0MKr1PDzOK3nxAA9Nuf/cW+TWoKZr/+4L8BiAyrXuAQ==","b64Record":"CiUIFiIDGOgOKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCPXYlQyabe36WbvkHhZrcByWz5hpH4VK0BttyraenvQjkwr6GceWbkn6p660dlu08aCwif9YStBhDLr6YjIhAKCQjj9IStBhCpBRIDGOUOKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCg/c0wOr0CCgMY6A4SIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACiA6jBQwIQ9YgQYFg3dagMY5w5SRgoJCgIYAxDg1cQBCgkKAhhiEJzGsFcKCgoDGKAGEKKvkwQKCgoDGKEGEKKvkwQKCgoDGOUOEL+4xDEKCgoDGOcOEP/B1y+KASAO2dJDL5ti6k/nXhVU/RvNrzFSVThSiVoBP8nTy7DD2w=="},{"b64Body":"ChIKCQjj9IStBhCpBRIDGOUOIAE6JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAHaBgWDd0=","b64Record":"CgIIFhIweZ2EvFj2T1VWj0MvU5lPGeSmACmhoJDROqDkQOXPPYomFHaKqr6luJopauRlbnzHGgsIn/WErQYQzK+mIyISCgkI4/SErQYQqQUSAxjlDiABOi4KAxjnAhIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIoZGoDGOcOUgB6Cwif9YStBhDLr6Yj"}]},"etx010TransferToCryptoAccountSucceeds":{"placeholderNum":1899,"encodedItems":[{"b64Body":"Cg8KCQjn9IStBhDBBRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlorCiISINnAihEDWLZQJ+o56qzRDDmYaYQ3uqV9lAcsNWUw++4GSgUIgM7aAw==","b64Record":"CiUIFhIDGOwOKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCr7TKHZ1+epKP8Wntbi7aoV7DCEs5aFyGGxhCVslJDn2SJkUmaBlLCO2rgzucVfA4aDAij9YStBhCTjcWDAyIPCgkI5/SErQYQwQUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjo9IStBhDDBRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIKq2H5WKBz/Ytfr5zh8yD7Zd5kHwn8V3skPkV94arW7QEICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGO0OKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBO+JLHNwG9ZpZifA5o8pVjdzeJpcdm52A+4bWznJ6cuGDs+LMNId6sbytcxT3Um9QaDAik9YStBhDLxISpASIPCgkI6PSErQYQwwUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIfCg0KAhgCEP//663M7JACCg4KAxjtDhCAgOytzOyQAg=="},{"b64Body":"ChEKCQjo9IStBhDFBRICGAIgAVpoCiM6IQNSBgBJds8rmPDgklIvIGpaH4sp4alV/JYzNBNjspjIEUoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiEDUgYASXbPK5jw4JJSLyBqWh+LKeGpVfyWMzQTY7KYyBE=","b64Record":"CgcIFhIDGO4OEjBNMQ1uPnakJURRXNX0mV2iXSpebISk3PMTkfHV09tQT39vE2FBoE72VU5WeY7dam8aDAik9YStBhDq9paNAyIRCgkI6PSErQYQxQUSAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARSUpNkNq8dbrn1WCZBQXCL2kNJOYQ=="},{"b64Body":"Cg8KCQjo9IStBhDFBRICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohA1IGAEl2zyuY8OCSUi8galofiynhqVX8ljM0E2OymMgREICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwHbxCxhpgfvSthnGLKMNIokQHsBQPJ72QNtvc0ykXdB4eCaDTXyUstkc3r9GC52ScGgwIpPWErQYQ6/aWjQMiDwoJCOj0hK0GEMUFEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SGQoKCgIYAhD/j9/ASgoLCgMY7g4QgJDfwEo="},{"b64Body":"ChAKCQjp9IStBhDPBRIDGO0OEgIYAxiyg8UVIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA7kBCrABAvitggEqgKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIMehICUAAAAAAAAAAAAAAAAAAAAAAAAB2yIRWORgkT0AACAwAGgc3GPgXspjtr/m0VDv3A8SvQcB42bVlFqc+G463ZAEhagVSKsTy81+cV8kHbM2oFHaiHiVkMaxpvooe7pWs0wDUEYgMq17gE=","b64Record":"CiUIFiIDGOwOKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBHxtq7SBFa/KmToImWODUTveP5inpMAULJW1BnWOce4uYVwRgEW/HZ9EEmnT/nhawaDAil9YStBhCj/L+xASIQCgkI6fSErQYQzwUSAxjtDiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wss/aSzqbAgoDGOwOIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACiA1GFQgIl6WIDKte4BagMY7g5SVgoJCgIYAxDE8cQBCgoKAhhiEOj1yI0BCgoKAxigBhDc25MECgoKAxihBhDc25MECgsKAxjsDhCAlOvcAwoLCgMY7Q4Q4561lwEKCwoDGO4OEP+T69wDigEgCFBzpdO0bLpVgV1As8tF4BExt7Bwq/BqDWUtaoz9ubM="}]},"etx013PrecompileCallFailsWhenSignatureMissingFromBothEthereumAndHederaTxn":{"placeholderNum":1903,"encodedItems":[{"b64Body":"Cg8KCQju9IStBhDnBRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIEGwJ7MhHvUgu+E2GZ9edHp1o/O3o64lCyAdX6nevQKzEICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGPAOKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDNwluDQOVXaL1kSOaoQAfGEHCe7BfuopbKpqNmYRkIZ9lg7tU4R2NDumIvm1fSnTQaCwiq9YStBhDTmqpSIg8KCQju9IStBhDnBRICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUh8KDQoCGAIQ///rrczskAIKDgoDGPAOEICA7K3M7JAC"},{"b64Body":"ChEKCQju9IStBhDpBRICGAIgAVpoCiM6IQMNAE+01onjLQFmXGM04usSZ5QkqnV1QGNwpp0JFI7l3koFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiEDDQBPtNaJ4y0BZlxjNOLrEmeUJKp1dUBjcKadCRSO5d4=","b64Record":"CgcIFhIDGPEOEjBrp29FRMOvfQxVxeY0j597DGrgd/KKI0rs496x6Mrv6PEbknmAfbDG4lAXThxI1rEaDAiq9YStBhDK8+i3AiIRCgkI7vSErQYQ6QUSAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARQOBDDGH1W+1+Th4htlffm34u9amg=="},{"b64Body":"Cg8KCQju9IStBhDpBRICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohAw0AT7TWieMtAWZcYzTi6xJnlCSqdXVAY3CmnQkUjuXeEICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwhqaaeEk0CYD+HKvbF9ZW7gOfJ5wEqdOzQa+fuDkrMcaXD2hSUW9YaHmKIck+DtvKGgwIqvWErQYQy/PotwIiDwoJCO70hK0GEOkFEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SGQoKCgIYAhD/j9/ASgoLCgMY8Q4QgJDfwEo="},{"b64Body":"Cg8KCQjv9IStBhDzBRICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjgESCwirw9+wBhDQ06lMGm0KIhIgtL7Mrt9EnpjfrdSdK6M/lyYUyBV0rjHSMed+5FEKzWgKIzohAtf/O+mCPQU2gC6uJ+kmkc189SB71AWyyNt3ZgwZ8gOrCiISINS0MRisrW7CJlESXr26QsV2yZKD1J/G3K5mNVhCkAUWIgxIZWxsbyBXb3JsZCEqADIA","b64Record":"CiUIFhoDGPIOKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAouVyTtwZiQnYAd24JqOXd7rmuBg+O9cv60CEuKoDUGHgBVVjQk7pUWQlOniO6FswaCwir9YStBhD70ZFcIg8KCQjv9IStBhDzBRICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgA="},{"b64Body":"Cg8KCQjv9IStBhD3BRICGAISAhgDGIydjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxjyDiKAIDYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYwNDA1MTYxMDk1MTM4MDM4MDYxMDk1MTgzMzk4MTgxMDE2MDQwNTI4MTAxOTA2MTAwMzI5MTkwNjEwMGRiNTY1YjgwNjAwMDgwNjEwMTAwMGE4MTU0ODE3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjE5MTY5MDgzNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTYwMjE3OTA1NTUwNTA2MTAxMDg1NjViNjAwMDgwZmQ1YjYwMDA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MjE2OTA1MDkxOTA1MDU2NWI2MDAwNjEwMGE4ODI2MTAwN2Q1NjViOTA1MDkxOTA1MDU2NWI2MTAwYjg4MTYxMDA5ZDU2NWI4MTE0NjEwMGMzNTc2MDAwODBmZDViNTA1NjViNjAwMDgxNTE5MDUwNjEwMGQ1ODE2MTAwYWY1NjViOTI5MTUwNTA1NjViNjAwMDYwMjA4Mjg0MDMxMjE1NjEwMGYxNTc2MTAwZjA2MTAwNzg1NjViNWI2MDAwNjEwMGZmODQ4Mjg1MDE2MTAwYzY1NjViOTE1MDUwOTI5MTUwNTA1NjViNjEwODNhODA2MTAxMTc2MDAwMzk2MDAwZjNmZTYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYwMDQzNjEwNjEwMDM2NTc2MDAwMzU2MGUwMWM4MDYzMTI0OWM1OGIxNDYxMDAzYjU3ODA2M2E5MzQ2MDYwMTQ2MTAwNDU1NzViNjAwMDgwZmQ1YjYxMDA0MzYxMDA2MTU2NWIwMDViNjEwMDVmNjAwNDgwMzYwMzgxMDE5MDYxMDA1YTkxOTA2MTAzNjk1NjViNjEwMGY4NTY1YjAwNWI2MDAwODA2MDAwNjEwMGUwNjAwMDgwNTQ5MDYxMDEwMDBhOTAwNDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjAwMDYwMDE2N2ZmZmZmZmZmZmZmZmZmZmY4MTExMTU2MTAwYTc1NzYxMDBhNjYxMDM5NjU2NWI1YjYwNDA1MTkwODA4MjUyODA2MDIwMDI2MDIwMDE4MjAxNjA0MDUyODAxNTYxMDBkYTU3ODE2MDIwMDE1YjYwNjA4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTAwYzU1NzkwNTA1YjUwNjEwMTlkNTY1YjkyNTA5MjUwOTI1MDYwMTY4MzE0NjEwMGYzNTc2MDAwODBmZDViNTA1MDUwNTY1YjYwMDA4MDYwMDA2MTAxNzY2MDAwODA1NDkwNjEwMTAwMGE5MDA0NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4NTYwMDA2N2ZmZmZmZmZmZmZmZmZmZmY4MTExMTU2MTAxM2Q1NzYxMDEzYzYxMDM5NjU2NWI1YjYwNDA1MTkwODA4MjUyODA2MDIwMDI2MDIwMDE4MjAxNjA0MDUyODAxNTYxMDE3MDU3ODE2MDIwMDE1YjYwNjA4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTAxNWI1NzkwNTA1YjUwNjEwMTlkNTY1YjkyNTA5MjUwOTI1MDYwMTY4MzE0MTU4MDYxMDE4ZDU3NTA2MDAwODE1MTExNWIxNTYxMDE5NzU3NjAwMDgwZmQ1YjUwNTA1MDUwNTY1YjYwMDA4MDYwNjA2MDAwODA2MTAxNjc3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzMjc4ZTBiODg2MGUwMWI4OTg5ODk2MDQwNTE2MDI0MDE2MTAxZGI5MzkyOTE5MDYxMDU2NzU2NWI2MDQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI5MDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTAyNDU5MTkwNjEwNWUxNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NjVhZjE5MTUwNTAzZDgwNjAwMDgxMTQ2MTAyODI1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTAyODc1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA4MTYxMDJlMzU3NjAxNTYwMDA4MDY3ZmZmZmZmZmZmZmZmZmZmZjgxMTExNTYxMDJhZjU3NjEwMmFlNjEwMzk2NTY1YjViNjA0MDUxOTA4MDgyNTI4MDYwMjAwMjYwMjAwMTgyMDE2MDQwNTI4MDE1NjEwMmRkNTc4MTYwMjAwMTYwMjA4MjAyODAzNjgzMzc4MDgyMDE5MTUwNTA5MDUwNWI1MDYxMDJmODU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMDJmNzkxOTA2MTA3OTU1NjViNWI4MjYwMDMwYjkyNTA4MDk1NTA4MTk2NTA4Mjk3NTA1MDUwNTA1MDUwOTM1MDkzNTA5MzkwNTA1NjViNjAwMDYwNDA1MTkwNTA5MDU2NWI2MDAwODBmZDViNjAwMDgwZmQ1YjYwMDA2N2ZmZmZmZmZmZmZmZmZmZmY4MjE2OTA1MDkxOTA1MDU2NWI2MTAzNDY4MTYxMDMyOTU2NWI4MTE0NjEwMzUxNTc2MDAwODBmZDViNTA1NjViNjAwMDgxMzU5MDUwNjEwMzYzODE2MTAzM2Q1NjViOTI5MTUwNTA1NjViNjAwMDYwMjA4Mjg0MDMxMjE1NjEwMzdmNTc2MTAzN2U2MTAzMWY1NjViNWI2MDAwNjEwMzhkODQ4Mjg1MDE2MTAzNTQ1NjViOTE1MDUwOTI5MTUwNTA1NjViN2Y0ZTQ4N2I3MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjAwMDUyNjA0MTYwMDQ1MjYwMjQ2MDAwZmQ1YjYwMDA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MjE2OTA1MDkxOTA1MDU2NWI2MDAwNjEwM2YwODI2MTAzYzU1NjViOTA1MDkxOTA1MDU2NWI2MTA0MDA4MTYxMDNlNTU2NWI4MjUyNTA1MDU2NWI2MTA0MGY4MTYxMDMyOTU2NWI4MjUyNTA1MDU2NWI2MDAwODE1MTkwNTA5MTkwNTA1NjViNjAwMDgyODI1MjYwMjA4MjAxOTA1MDkyOTE1MDUwNTY1YjYwMDA4MTkwNTA2MDIwODIwMTkwNTA5MTkwNTA1NjViNjAwMDgxNTE5MDUwOTE5MDUwNTY1YjYwMDA4MjgyNTI2MDIwODIwMTkwNTA5MjkxNTA1MDU2NWI2MDAwNWI4MzgxMTAxNTYxMDQ3YjU3ODA4MjAxNTE4MTg0MDE1MjYwMjA4MTAxOTA1MDYxMDQ2MDU2NWI2MDAwODQ4NDAxNTI1MDUwNTA1MDU2NWI2MDAwNjAxZjE5NjAxZjgzMDExNjkwNTA5MTkwNTA1NjViNjAwMDYxMDRhMzgyNjEwNDQxNTY1YjYxMDRhZDgxODU2MTA0NGM1NjViOTM1MDYxMDRiZDgxODU2MDIwODYwMTYxMDQ1ZDU2NWI2MTA0YzY4MTYxMDQ4NzU2NWI4NDAxOTE1MDUwOTI5MTUwNTA1NjViNjAwMDYxMDRkZDgzODM2MTA0OTg1NjViOTA1MDkyOTE1MDUwNTY1YjYwMDA2MDIwODIwMTkwNTA5MTkwNTA1NjViNjAwMDYxMDRmZDgyNjEwNDE1NTY1YjYxMDUwNzgxODU2MTA0MjA1NjViOTM1MDgzNjAyMDgyMDI4NTAxNjEwNTE5ODU2MTA0MzE1NjViODA2MDAwNWI4NTgxMTAxNTYxMDU1NTU3ODQ4NDAzODk1MjgxNTE2MTA1MzY4NTgyNjEwNGQxNTY1Yjk0NTA2MTA1NDE4MzYxMDRlNTU2NWI5MjUwNjAyMDhhMDE5OTUwNTA2MDAxODEwMTkwNTA2MTA1MWQ1NjViNTA4Mjk3NTA4Nzk1NTA1MDUwNTA1MDUwOTI5MTUwNTA1NjViNjAwMDYwNjA4MjAxOTA1MDYxMDU3YzYwMDA4MzAxODY2MTAzZjc1NjViNjEwNTg5NjAyMDgzMDE4NTYxMDQwNjU2NWI4MTgxMDM2MDQwODMwMTUyNjEwNTliODE4NDYxMDRmMjU2NWI5MDUwOTQ5MzUwNTA1MDUwNTY1YjYwMDA4MTkwNTA5MjkxNTA1MDU2NWI2MDAwNjEwNWJiODI2MTA0NDE1NjViNjEwNWM1ODE4NTYxMDVhNTU2NWI5MzUwNjEwNWQ1ODE4NTYwMjA4NjAxNjEwNDVkNTY1YjgwODQwMTkxNTA1MDkyOTE1MDUwNTY1YjYwMDA2MTA1ZWQ4Mjg0NjEwNWIwNTY1YjkxNTA4MTkwNTA5MjkxNTA1MDU2NWI2MDAwODE2MDAzMGI5MDUwOTE5MDUwNTY1YjYxMDYwZTgxNjEwNWY4NTY1YjgxMTQ2MTA2MTk1NzYwMDA4MGZkNWI1MDU2NWI2MDAwODE1MTkwNTA2MTA2MmI4MTYxMDYwNTU2NWI5MjkxNTA1MDU2NWI2MDAwODE1MTkwNTA2MTA2NDA4MTYxMDMzZDU2NWI5MjkxNTA1MDU2NWI2MDAwODBmZDViNjEwNjU0ODI2MTA0ODc1NjViODEwMTgxODExMDY3ZmZmZmZmZmZmZmZmZmZmZjgyMTExNzE1NjEwNjczNTc2MTA2NzI2MTAzOTY1NjViNWI4MDYwNDA1MjUwNTA1MDU2NWI2MDAwNjEwNjg2NjEwMzE1NTY1YjkwNTA2MTA2OTI4MjgyNjEwNjRiNTY1YjkxOTA1MDU2NWI2MDAwNjdmZmZmZmZmZmZmZmZmZmZmODIxMTE1NjEwNmIyNTc2MTA2YjE2MTAzOTY1NjViNWI2MDIwODIwMjkwNTA2MDIwODEwMTkwNTA5MTkwNTA1NjViNjAwMDgwZmQ1YjYwMDA4MTkwNTA5MTkwNTA1NjViNjEwNmRiODE2MTA2Yzg1NjViODExNDYxMDZlNjU3NjAwMDgwZmQ1YjUwNTY=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwIwJ2o6K3syMnejMJWQEiIogUx6bQNcoMRwqPBlrStuTWnObkyP7V/r5VzuxFUxgPGgwIq/WErQYQ2/KRwQIiDwoJCO/0hK0GEPcFEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjw9IStBhD9BRICGAISAhgDGIGm6S8iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBqgUSAxjyDiKiBTViNjAwMDgxNTE5MDUwNjEwNmY4ODE2MTA2ZDI1NjViOTI5MTUwNTA1NjViNjAwMDYxMDcxMTYxMDcwYzg0NjEwNjk3NTY1YjYxMDY3YzU2NWI5MDUwODA4MzgyNTI2MDIwODIwMTkwNTA2MDIwODQwMjgzMDE4NTgxMTExNTYxMDczNDU3NjEwNzMzNjEwNmMzNTY1YjViODM1YjgxODExMDE1NjEwNzVkNTc4MDYxMDc0OTg4ODI2MTA2ZTk1NjViODQ1MjYwMjA4NDAxOTM1MDUwNjAyMDgxMDE5MDUwNjEwNzM2NTY1YjUwNTA1MDkzOTI1MDUwNTA1NjViNjAwMDgyNjAxZjgzMDExMjYxMDc3YzU3NjEwNzdiNjEwNjQ2NTY1YjViODE1MTYxMDc4Yzg0ODI2MDIwODYwMTYxMDZmZTU2NWI5MTUwNTA5MjkxNTA1MDU2NWI2MDAwODA2MDAwNjA2MDg0ODYwMzEyMTU2MTA3YWU1NzYxMDdhZDYxMDMxZjU2NWI1YjYwMDA2MTA3YmM4NjgyODcwMTYxMDYxYzU2NWI5MzUwNTA2MDIwNjEwN2NkODY4Mjg3MDE2MTA2MzE1NjViOTI1MDUwNjA0MDg0MDE1MTY3ZmZmZmZmZmZmZmZmZmZmZjgxMTExNTYxMDdlZTU3NjEwN2VkNjEwMzI0NTY1YjViNjEwN2ZhODY4Mjg3MDE2MTA3Njc1NjViOTE1MDUwOTI1MDkyNTA5MjU2ZmVhMjY0Njk3MDY2NzM1ODIyMTIyMDcyNDAzNDcxMTJiZTQxZTljMmJhZDFlYmFhODhjOTZkOGE1NDAyYmQ4NGI3MWM4ZWEzODUxNmVkYTM3YTk3NzQ2NDczNmY2YzYzNDMwMDA4MTIwMDMz","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwoVLI3La6QYyzXaiLIieCuo29GrNL/c0Ai99pO8vkwfms2sPnY9wIArf9WWCq+fRQGgsIrPWErQYQs7aEZiIPCgkI8PSErQYQ/QUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjw9IStBhD/BRICGAISAhgDGMaU6ukCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAWsKBXRva2VuEghTV0hZVVdDUCoCGAIyIhIgYYzug0AEkv2Cc6SuDvPyqEl2qbl6vHjLQAALjran/2hSIhIgYYzug0AEkv2Cc6SuDvPyqEl2qbl6vHjLQAALjran/2hqDAisw9+wBhD4qtHFAg==","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGPMOEjA9Nc5L2kZl+s8V+fKaJ/dQqS5TkmjMOZStUgwSvNvGD05KUZbvsxK3eDLlm1geElEaDAis9YStBhCL2aDLAiIPCgkI8PSErQYQ/wUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAcgkKAxjzDhICGAI="},{"b64Body":"Cg8KCQjx9IStBhCBBhICGAISAhgDGPb99p4CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CZwoDGPIOGiISIF54YGp1POmRb1tLW2MqT23MVxpzxLhO5P3W7/GbOPJJIJChD0IFCIDO2gNKIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdzUgBaAGoLY2VsbGFyIGRvb3I=","b64Record":"CiUIFiIDGPQOKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAaPftS1F8uy8Q/WtzPK1tnFgo0YqX6u4swheU/mjGazUZdwlA5Lro4aNd3JZ7DpJ0aCwit9YStBhCLrv5uIg8KCQjx9IStBhCBBhICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMMDZ4gZC7xIKAxj0DhK6EGCAYEBSNIAVYQAQV2AAgP1bUGAENhBhADZXYAA1YOAcgGMSScWLFGEAO1eAY6k0YGAUYQBFV1tgAID9W2EAQ2EAYVZbAFthAF9gBIA2A4EBkGEAWpGQYQNpVlthAPhWWwBbYACAYABhAOBgAIBUkGEBAAqQBHP//////////////////////////xZgAGABZ///////////gREVYQCnV2EApmEDllZbW2BAUZCAglKAYCACYCABggFgQFKAFWEA2leBYCABW2BggVJgIAGQYAGQA5CBYQDFV5BQW1BhAZ1WW5JQklCSUGAWgxRhAPNXYACA/VtQUFBWW2AAgGAAYQF2YACAVJBhAQAKkARz//////////////////////////8WhWAAZ///////////gREVYQE9V2EBPGEDllZbW2BAUZCAglKAYCACYCABggFgQFKAFWEBcFeBYCABW2BggVJgIAGQYAGQA5CBYQFbV5BQW1BhAZ1WW5JQklCSUGAWgxQVgGEBjVdQYACBURFbFWEBl1dgAID9W1BQUFBWW2AAgGBgYACAYQFnc///////////////////////////FmMnjguIYOAbiYmJYEBRYCQBYQHbk5KRkGEFZ1ZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQJFkZBhBeFWW2AAYEBRgIMDgWAAhlrxkVBQPYBgAIEUYQKCV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YQKHVltgYJFQW1CRUJFQgWEC41dgFWAAgGf//////////4ERFWECr1dhAq5hA5ZWW1tgQFGQgIJSgGAgAmAgAYIBYEBSgBVhAt1XgWAgAWAgggKANoM3gIIBkVBQ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"},{"b64Body":"Cg8KCQjx9IStBhCDBhICGAISAhgDGLP40RUiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpID1QEKzAEC+MmCASqAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPooAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRqUogAgwGGoJQAAAAAAAAAAAAAAAAAAAAAAAAHdICkqTRgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwICg2sUw3YjoUYksmFhfVQRI7CE4LpKSsu3ilBYyDoV6GN+gH7yhxi2tzE5j9kRvRPq0/9TQnsD0qcXXC86RY5Ki78IYgMq17gE=","b64Record":"CiUIISIDGPQOKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDCYMWzj11idbVPa+QuAp3fIwFHgcCr/dfQe19qTm0Ui+g7jQpUyjxddoQT5ADorMQaDAit9YStBhCrk6bwAiIPCgkI8fSErQYQgwYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCA19oCOjcaAjB4KIDxBFCgjQZiJKk0YGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABWoDGPEOUiEKCAoCGAIQ/4BTCgkKAhhiEICutQUKCgoDGPEOEP+s4gSKASAjk8GcWsxKtAItVBBmJIpySavsw01L8nJFXMGIt4d9kQ=="},{"b64Body":"ChEKCQjx9IStBhCDBhICGAIgAaoCBwoDGPMOEAU=","b64Record":"CgMIxgISMEhycm5l8i6vpGIXvyxIngMYCxigPkJc//DVA1VbN0p9ZMY1u26U89IcbQprY/aa3BoMCK31hK0GEKyTpvACIhEKCQjx9IStBhCDBhICGAIgATrJAgoDGOcCEoABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaLElOVkFMSURfRlVMTF9QUkVGSVhfU0lHTkFUVVJFX0ZPUl9QUkVDT01QSUxFKIVuUNCpBGKEASeOC4gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHcwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGoDGPQOUgB6DAit9YStBhCrk6bwAg=="}]},"etx014ContractCreateInheritsSignerProperties":{"placeholderNum":1909,"encodedItems":[{"b64Body":"Cg8KCQj29IStBhCfBhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIHMOIAR9c0jiHKPAQTgx5OqlDnf5t25dD0ybLD2WjRgWEICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGPYOKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAk2Mq9y2QgoHWTBpBhW8+S60LKF0cffmotfvhFpztzljxfOXAaoZxagQyjW7pdqXgaDAiy9YStBhCzuc30ASIPCgkI9vSErQYQnwYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIfCg0KAhgCEP//663M7JACCg4KAxj2DhCAgOytzOyQAg=="},{"b64Body":"ChEKCQj29IStBhChBhICGAIgAVpoCiM6IQIv3kGYkQUopmTAL17mMf9RKRXDGPGRfxeuYALQWO1i20oFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiECL95BmJEFKKZkwC9e5jH/USkVwxjxkX8XrmAC0FjtYts=","b64Record":"CgcIFhIDGPcOEjAN6v2A6Gw/L9GWFhYXtDkgHZcnydUQinqvzf4fhrB1QH5LYGj2DXveV79qfANA6lwaCwiz9YStBhDikfgYIhEKCQj29IStBhChBhICGAIgASoUYXV0by1jcmVhdGVkIGFjY291bnRSAKoBFLhu9fmVH3FxQhCW+1Eu0sIsDSEx"},{"b64Body":"Cg8KCQj29IStBhChBhICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohAi/eQZiRBSimZMAvXuYx/1EpFcMY8ZF/F65gAtBY7WLbEICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwKwMA1yq4np2N2HcZfAtqn60ScjeW1KUY2ctCv1yYt2n8VVIL5pDs3zeFDAFCBmElGgsIs/WErQYQ45H4GCIPCgkI9vSErQYQoQYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxj3DhCAkN/ASg=="},{"b64Body":"Cg8KCQj39IStBhCrBhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIKJX88VAVaZlYitbtzt+UOw9K7jObdzulrpaBGUa1YYmEICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGPgOKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjD2SEKX3vRBHRNu+lFRMn1CUKK2PSIuTU7ueHIzS2Dtfw+IyMbm+nlev6cOuR86bIYaDAiz9YStBhDbg4X+ASIPCgkI9/SErQYQqwYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxj4DhCAqNa5Bw=="},{"b64Body":"Cg8KCQj49IStBhCxBhICGAISAhgDGKrkESICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOehQSAxj3DkIFCLzO2gNyBgoEbWVtbw==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwnEutg1pDi0B7ehte5s0W5NABftggMcffsQfAxMhP2k8j0TXIg7RXsCvJ4j3H61epGgsItPWErQYQ8471IiIPCgkI+PSErQYQsQYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"ChAKCQj49IStBhCzBhIDGPYOEgIYAxj6ussXIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA/IFCukFAvkC5YIBKoCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATiCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdGpSiACDD0JAgIXo1KUQALkCTWCAYEBSYQI6gGEAE2AAOWAA8/5ggGBAUmAENhBhAD9XYAA1YOAcgGMSBl/gFGEAj1eAYzzP1gsUYQC6V4Bjb2QjThRhANFXgGO2tV8lFGEBLFdbM3P//////////////////////////xZ/8bA/cIucOfRT/j8M74QWTH1vffg23weW4enCvObuOX40YEBRgIKBUmAgAZFQUGBAUYCRA5CiAFs0gBVhAJtXYACA/VtQYQCkYQFaVltgQFGAgoFSYCABkVBQYEBRgJEDkPNbNIAVYQDGV2AAgP1bUGEAz2EBYlZbAFs0gBVhAN1XYACA/VtQYQEqYASANgNgQIEQFWEA9FdgAID9W4EBkICANXP//////////////////////////xaQYCABkJKRkIA1kGAgAZCSkZBQUFBhAatWWwBbYQFYYASANgNgIIEQFWEBQldgAID9W4EBkICANZBgIAGQkpGQUFBQYQH2VlsAW2AAR5BQkFZbM3P//////////////////////////xZhCPxHkIEVApBgQFFgAGBAUYCDA4GFiIjxk1BQUFAVgBVhAahXPWAAgD49YAD9W1BWW4Fz//////////////////////////8WYQj8gpCBFQKQYEBRYABgQFGAgwOBhYiI8ZNQUFBQFYAVYQHxVz1gAIA+PWAA/VtQUFBWW4A0FGECAldgAID9W1BW/qJlYnp6cjFYIPj4T8MahFBktXgekIMW88WRFXli3quw/UJO1U8lZAD5ZHNvbGNDAAURADLAgKCLgjta0oYTI9/I6hdyU58NDhQH3KcAi9bgj/GP7EhBiqBNLAki4C95hFqijynni0HFHQfvPnbFDc52h/2VpFYy8hiAyK+gJQ==","b64Record":"CiUIFiIDGPkOKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjA228u9IL9MGpyfNXaofwm0LXSyiJinm7s42zj46STYFkXvg3CdIR8sOveb7EE+UrwaDAi09YStBhCT9p+HAiIQCgkI+PSErQYQswYSAxj2Diogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4w+qDWMkLKCwoDGPkOEroEYIBgQFJgBDYQYQA/V2AANWDgHIBjEgZf4BRhAI9XgGM8z9YLFGEAuleAY29kI04UYQDRV4BjtrVfJRRhASxXWzNz//////////////////////////8Wf/GwP3CLnDn0U/4/DO+EFkx9b334Nt8HluHpwrzm7jl+NGBAUYCCgVJgIAGRUFBgQFGAkQOQogBbNIAVYQCbV2AAgP1bUGEApGEBWlZbYEBRgIKBUmAgAZFQUGBAUYCRA5DzWzSAFWEAxldgAID9W1BhAM9hAWJWWwBbNIAVYQDdV2AAgP1bUGEBKmAEgDYDYECBEBVhAPRXYACA/VuBAZCAgDVz//////////////////////////8WkGAgAZCSkZCANZBgIAGQkpGQUFBQYQGrVlsAW2EBWGAEgDYDYCCBEBVhAUJXYACA/VuBAZCAgDWQYCABkJKRkFBQUGEB9lZbAFtgAEeQUJBWWzNz//////////////////////////8WYQj8R5CBFQKQYEBRYABgQFGAgwOBhYiI8ZNQUFBQFYAVYQGoVz1gAIA+PWAA/VtQVluBc///////////////////////////FmEI/IKQgRUCkGBAUWAAYEBRgIMDgYWIiPGTUFBQUBWAFWEB8Vc9YACAPj1gAP1bUFBQVluANBRhAgJXYACA/VtQVv6iZWJ6enIxWCD4+E/DGoRQZLV4HpCDFvPFkRV5Yt6rsP1CTtVPJWQA+WRzb2xjQwAFEQAyIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACiA6jA6Axj5DkoWChRsjX1qOOkYbNa2C0N09Xg8ITcE1VDAhD1YZGLNBGCAYEBSYQI6gGEAE2AAOWAA8/5ggGBAUmAENhBhAD9XYAA1YOAcgGMSBl/gFGEAj1eAYzzP1gsUYQC6V4Bjb2QjThRhANFXgGO2tV8lFGEBLFdbM3P//////////////////////////xZ/8bA/cIucOfRT/j8M74QWTH1vffg23weW4enCvObuOX40YEBRgIKBUmAgAZFQUGBAUYCRA5CiAFs0gBVhAJtXYACA/VtQYQCkYQFaVltgQFGAgoFSYCABkVBQYEBRgJEDkPNbNIAVYQDGV2AAgP1bUGEAz2EBYlZbAFs0gBVhAN1XYACA/VtQYQEqYASANgNgQIEQFWEA9FdgAID9W4EBkICANXP//////////////////////////xaQYCABkJKRkIA1kGAgAZCSkZBQUFBhAatWWwBbYQFYYASANgNgIIEQFWEBQldgAID9W4EBkICANZBgIAGQkpGQUFBQYQH2VlsAW2AAR5BQkFZbM3P//////////////////////////xZhCPxHkIEVApBgQFFgAGBAUYCDA4GFiIjxk1BQUFAVgBVhAahXPWAAgD49YAD9W1BWW4Fz//////////////////////////8WYQj8gpCBFQKQYEBRYABgQFGAgwOBhYiI8ZNQUFBQFYAVYQHxVz1gAIA+PWAA/VtQUFBWW4A0FGECAldgAID9W1BW/qJlYnp6cjFYIPj4T8MahFBktXgekIMW88WRFXli3quw/UJO1U8lZAD5ZHNvbGNDAAURADJqAxj3DnIHCgMY+Q4QAVJQCgkKAhgDEL7h4wEKCQoCGGIQ4sK+WgoKCgMYoAYQ6o7FBAoKCgMYoQYQ6o7FBAoKCgMY9g4Q8//UNQoKCgMY9w4Qx8PXLwoICgMY+Q4QyAGKASCFH0l903qZVXx7DXmvYxFaaLr/S7ke96e7awCb+TJ00A=="},{"b64Body":"ChIKCQj49IStBhCzBhIDGPYOIAFCDUIFCLzO2gNqBG1lbW8=","b64Record":"CgcIFiIDGPkOEjAiC/RxnQ21x5X1gGlGmHrUsTKgyfDHzuG7IChQNfQIg4RNX6EvtjdtvCJtOzrgZywaDAi09YStBhCU9p+HAiISCgkI+PSErQYQswYSAxj2DiABQh0KAxj5DkoWChRsjX1qOOkYbNa2C0N09Xg8ITcE1VIAegwItPWErQYQk/afhwI="},{"b64Body":"ChAKCQj59IStBhC1BhIDGPYOEgIYAxigl8MVIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA7UBCqwBAvipggEqAaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0alKIAIMPQkCUAAAAAAAAAAAAAAAAAAAAAAAAB3mAhBIGX+DAAaD+gQf8THYg5lN9dIqJBGh6/paNqGdpj6kEhs/YllN6XaAQSOzkA2fkkOxMHERuw81wspmsSIbifEsRYBAKwOy2JRiAyrXuAQ==","b64Record":"CiUIFiIDGPkOKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBkkkWZsPq6TuSmfNfy2UELJ1FbhRdyS3OOvv7MvOc9Ww1Asb0MPs/5+o86FNR/gnMaCwi19YStBhDr8aksIhAKCQj59IStBhC1BhIDGPYOKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCg/c0wOr0CCgMY+Q4SIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACiA6jBQwIQ9YgQSBl/gagMY9w5SRgoJCgIYAxDg1cQBCgkKAhhiEJzGsFcKCgoDGKAGEKKvkwQKCgoDGKEGEKKvkwQKCgoDGPYOEL+4xDEKCgoDGPcOEP/B1y+KASBQJteNObITd4n2qDRPPOvYoKViIIf9TaUuWkugo2U1jw=="}]},"originAndSenderAreEthereumSigner":{"placeholderNum":1921,"encodedItems":[{"b64Body":"Cg8KCQiG9YStBhD9BhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISINyOmY4kajdu0UIExhvKW6OKcJmJKqbxMOgYIN3xEGUdEICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGIIPKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjD/87qqnWtqotU99+gQiju2Uodcw9jc8No8a+f2FniugnJckZSLgsIvdfnEC3P1avMaDAjC9YStBhCTu8XwAiIPCgkIhvWErQYQ/QYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIfCg0KAhgCEP//663M7JACCg4KAxiCDxCAgOytzOyQAg=="},{"b64Body":"ChEKCQiH9YStBhD/BhICGAIgAVpoCiM6IQMbzQ0E/0tmue8L0CChXFuxPiVW39wPrDAXGAavEb8hUUoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiEDG80NBP9LZrnvC9AgoVxbsT4lVt/cD6wwFxgGrxG/IVE=","b64Record":"CgcIFhIDGIMPEjCAIF6Kg2xQDoFMZjTDnmu3Hs4S9Aa2z2GNoWqQdSu5lxKR/kxkiWcJBm7SA7nCwBMaCwjD9YStBhDqhrl4IhEKCQiH9YStBhD/BhICGAIgASoUYXV0by1jcmVhdGVkIGFjY291bnRSAKoBFJuFJhLC7movk1OecGOpKL8Ua3x9"},{"b64Body":"Cg8KCQiH9YStBhD/BhICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohAxvNDQT/S2a57wvQIKFcW7E+JVbf3A+sMBcYBq8RvyFREICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwcz2c4Hm1G6br9XZ1RIG753SC+Ec+QLAI4PJWbt+SBuT2EXSsWTH4x5aDbY1VePWnGgsIw/WErQYQ64a5eCIPCgkIh/WErQYQ/wYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxiDDxCAkN/ASg=="},{"b64Body":"Cg8KCQiH9YStBhCJBxICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAjDw9+wBhCYsZ3nAhptCiISIDb552wz0EEvvWBCbdAFzwRFSrIxVP+mxfcRCNi33raLCiM6IQKNdki05wrtUf+aNMlQYJ5smHkGHp/wJGlU+VcXFXXz6woiEiDoJwc7AzsznVMFE4rjKbHHGg5KIhifl6TklPPBzoHxSyIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGIQPKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjB6d6W+p4MPny+5ql1zfdIBYJGS7ckrkCMVrQMS6taacwlgyPYTbn8FYolZkQQ9Ad0aDAjD9YStBhDjjI/7AiIPCgkIh/WErQYQiQcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiI9YStBhCNBxICGAISAhgDGOHu+i0iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBjgMKAxiEDyKGAzYwODA2MDQwNTIzNDgwMTU2MDBmNTc2MDAwODBmZDViNTA2MGE1ODA2MTAwMWU2MDAwMzk2MDAwZjNmZTYwODA2MDQwNTIzNDgwMTU2MDBmNTc2MDAwODBmZDViNTA2MDA0MzYxMDYwMjg1NzYwMDAzNTYwZTAxYzgwNjMyZTRjMWQwMjE0NjAyZDU3NWI2MDAwODBmZDViNjAzMzYwMzU1NjViMDA1YjYwNDA4MDUxMzI4MTUyMzM2MDIwODIwMTUyN2ZkMWE2YjU0MjI5YmNlOTRhZDUwZWFiMGY5ZGVmNzgyM2VjMmRhNDI4N2Y3OTFhZGMzYWM2OGNjY2ZmYmRhNjVhOTEwMTYwNDA1MTgwOTEwMzkwYTE1NmZlYTI2NDY5NzA2NjczNTgyMjEyMjBiMWViOGE5NjQyNGU5MzZlZTFmMjAxN2MzYmMxZjkyZmE0ZTc4MjMwZGIwYWMwYWU2YmRkNTlmYTU3YjQzZjgyNjQ3MzZmNmM2MzQzMDAwODBkMDAzMw==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwWwoL3OuNEhaOjOFKlny2FAR2AsZ090mMSMl9xhTxRSB7Lf7CHvKKcNml4as1bmpcGgwIxPWErQYQs+XHggEiDwoJCIj1hK0GEI0HEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQiI9YStBhCPBxICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGIQPGiISIIp1n/WzNk13CJgoeyAFpwd7WCTVR3R+7r21/IUOxy8OIJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGIUPKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCXzo0hxkyUtWOjihaUBfVBWP6nI+8XwMbX893HroVhsDSSfZDjJzsKXRha02EyD5UaDAjE9YStBhCbw8CDAyIPCgkIiPWErQYQjwcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQtoDCgMYhQ8SpQFggGBAUjSAFWAPV2AAgP1bUGAENhBgKFdgADVg4ByAYy5MHQIUYC1XW2AAgP1bYDNgNVZbAFtgQIBRMoFSM2AgggFSf9GmtUIpvOlK1Q6rD53veCPsLaQof3ka3DrGjMz/vaZakQFgQFGAkQOQoVb+omRpcGZzWCISILHripZCTpNu4fIBfDvB+S+k54Iw2wrArmvdWfpXtD+CZHNvbGNDAAgNADMigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMCaDDoDGIUPShYKFAAAAAAAAAAAAAAAAAAAAAAAAAeFcgcKAxiFDxABUhYKCQoCGAIQ/7LFDQoJCgIYYhCAs8UN"},{"b64Body":"ChAKCQiJ9YStBhCRBxIDGIIPEgIYAxigl8MVIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA7UBCqwBAvipggEqgKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0alKIAIMPQkCUAAAAAAAAAAAAAAAAAAAAAAAAB4WAhC5MHQLAgKCkORcrzKK8mgCtvy3Wc5ln61xTDNd/KzzWrZwOmG/WSKAvnTnBzG+Xmu3csOgjRrnWl+JG7zedIskgzT+r/+Rg9BiAyrXuAQ==","b64Record":"CiUIFiIDGIUPKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBugYEdJpUTFqFfgUoCpq0a50ezhlZPBHucrM4jLfhiMR0ACR1kA7R8xy1eIxXGldgaDAjF9YStBhD72NKLASIQCgkIifWErQYQkQcSAxiCDyogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4woP3NMDqKBQoDGIUPIoACAAABAAAEAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACiA6jAy7AIKAxiFDxKAAgAAAQAABAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaINGmtUIpvOlK1Q6rD53veCPsLaQof3ka3DrGjMz/vaZaIkAAAAAAAAAAAAAAAACbhSYSwu5qL5NTnnBjqSi/FGt8fQAAAAAAAAAAAAAAAJuFJhLC7movk1OecGOpKL8Ua3x9UMCEPWIELkwdAmoDGIMPUkYKCQoCGAMQ4NXEAQoJCgIYYhCcxrBXCgoKAxigBhCir5MECgoKAxihBhCir5MECgoKAxiCDxC/uMQxCgoKAxiDDxD/wdcvigEgfyyIG5WkoycWxzvw8sz0lBLcHrIVCiYKr5kFd9vm/qI="}]},"etx031InvalidNonceEthereumTxFailsAndChargesRelayer":{"placeholderNum":1926,"encodedItems":[{"b64Body":"Cg8KCQiO9YStBhCpBxICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIAjaiwG536j7FpOnXujJ6ub3B+x3ZYAf4sn1joxRaoeAEICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGIcPKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCBEF2yxTVlQgwbVS3yIBI5GtroGu6IcRguqNzyLfzZiqk7jSvLjFspf8rHYbkggrwaCwjK9YStBhDjnbgsIg8KCQiO9YStBhCpBxICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUh8KDQoCGAIQ///rrczskAIKDgoDGIcPEICA7K3M7JAC"},{"b64Body":"ChEKCQiO9YStBhCrBxICGAIgAVpoCiM6IQNYtK4G4R892H0vWwa7lRiHvRG9tcz/PPNvI8iQglQiaEoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiEDWLSuBuEfPdh9L1sGu5UYh70RvbXM/zzzbyPIkIJUImg=","b64Record":"CgcIFhIDGIgPEjDVAjTtfC4sFPV5uOZWVFJayCLkLa6lxOMfkGB4cxqhyzFPS13shQeiYqT7L4BrALkaDAjK9YStBhCqh/atAiIRCgkIjvWErQYQqwcSAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARSQJa603ct88FndNY77TN91CpkQMg=="},{"b64Body":"Cg8KCQiO9YStBhCrBxICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohA1i0rgbhHz3YfS9bBruVGIe9Eb21zP88828jyJCCVCJoEICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwI1/KwaE87w9pIn9w1SG46MtRIIbi1McAyxQWdSFV46pT/zNxy1Gt+d6JtMKIjzQBGgwIyvWErQYQq4f2rQIiDwoJCI71hK0GEKsHEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SGQoKCgIYAhD/j9/ASgoLCgMYiA8QgJDfwEo="},{"b64Body":"Cg8KCQiP9YStBhCxBxICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjgESCwjLw9+wBhCIm/QuGm0KIhIgKP+g4XWj+bfHOI1hnaGzvfFLZ7T6o8DLadgtBz40qykKIzohAjRiYLagDek1+b2qTQ/RB9RGdj2nsJKtBj+7hETjWsSICiISIPRIRUPs1FvU4IUDnxCIzNLnQ2nZwa86/s5DvHeyZNUsIgxIZWxsbyBXb3JsZCEqADIA","b64Record":"CiUIFhoDGIkPKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDMhkdcVqHknJXpC2Qxnu+OmA3zpuJqQLdldRO2t98elgWw+bKmD93ihe2rAd+LN3QaCwjL9YStBhDbnLo1Ig8KCQiP9YStBhCxBxICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgA="},{"b64Body":"Cg8KCQiP9YStBhC1BxICGAISAhgDGPa4sjEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBogkKAxiJDyKaCTYwODA2MDQwNTI2MTAyM2E4MDYxMDAxMzYwMDAzOTYwMDBmM2ZlNjA4MDYwNDA1MjYwMDQzNjEwNjEwMDNmNTc2MDAwMzU2MGUwMWM4MDYzMTIwNjVmZTAxNDYxMDA4ZjU3ODA2MzNjY2ZkNjBiMTQ2MTAwYmE1NzgwNjM2ZjY0MjM0ZTE0NjEwMGQxNTc4MDYzYjZiNTVmMjUxNDYxMDEyYzU3NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2N2ZmMWIwM2Y3MDhiOWMzOWY0NTNmZTNmMGNlZjg0MTY0YzdkNmY3ZGY4MzZkZjA3OTZlMWU5YzJiY2U2ZWUzOTdlMzQ2MDQwNTE4MDgyODE1MjYwMjAwMTkxNTA1MDYwNDA1MTgwOTEwMzkwYTIwMDViMzQ4MDE1NjEwMDliNTc2MDAwODBmZDViNTA2MTAwYTQ2MTAxNWE1NjViNjA0MDUxODA4MjgxNTI2MDIwMDE5MTUwNTA2MDQwNTE4MDkxMDM5MGYzNWIzNDgwMTU2MTAwYzY1NzYwMDA4MGZkNWI1MDYxMDBjZjYxMDE2MjU2NWIwMDViMzQ4MDE1NjEwMGRkNTc2MDAwODBmZDViNTA2MTAxMmE2MDA0ODAzNjAzNjA0MDgxMTAxNTYxMDBmNDU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2OTA2MDIwMDE5MDkyOTE5MDgwMzU5MDYwMjAwMTkwOTI5MTkwNTA1MDUwNjEwMWFiNTY1YjAwNWI2MTAxNTg2MDA0ODAzNjAzNjAyMDgxMTAxNTYxMDE0MjU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTkwNjAyMDAxOTA5MjkxOTA1MDUwNTA2MTAxZjY1NjViMDA1YjYwMDA0NzkwNTA5MDU2NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjEwOGZjNDc5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTU4MDE1NjEwMWE4NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTY1YjgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MTA4ZmM4MjkwODExNTAyOTA2MDQwNTE2MDAwNjA0MDUxODA4MzAzODE4NTg4ODhmMTkzNTA1MDUwNTAxNTgwMTU2MTAxZjE1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTY1YjgwMzQxNDYxMDIwMjU3NjAwMDgwZmQ1YjUwNTZmZWEyNjU2MjdhN2E3MjMxNTgyMGY4Zjg0ZmMzMWE4NDUwNjRiNTc4MWU5MDgzMTZmM2M1OTExNTc5NjJkZWFiYjBmZDQyNGVkNTRmMjU2NDAwZjk2NDczNmY2YzYzNDMwMDA1MTEwMDMy","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw1lsRkx9We4biUqUxJke5KTBR8vRPVfkgVmVkjG3ebOVI/BlwwtUqsmPTHKB8RkiIGgwIy/WErQYQg7+9sgIiDwoJCI/1hK0GELUHEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQiQ9YStBhC3BxICGAISAhgDGK/Dto0EIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5ClgEKAxiJDxpzKnEIAhJtCiISIMqVt9Ae9UkpOd0Kd6uxyxLM4PTm9jvtkU9hyMgBO7z/CiM6IQIHlYjAvYD+BZQVsi4aF6a6fpRFk9SGu8Rn+RxCiLRO+goiEiAX+oIctPO9NTmVhCj8PgjJ4jErKvSQ8R6stk0sl2Q+QiCQoQ9CBQiAztoDUgBaAGoLY2VsbGFyIGRvb3I=","b64Record":"CiUIFiIDGIoPKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCE8nmnUPFlTLAB4lXl4o901SKx4YwHpMP2SsPIeT3hCd6nrJKE99e4BnMFrvmHNHMaCwjM9YStBhDDi906Ig8KCQiQ9YStBhC3BxICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMMDZ4gZC7wYKAxiKDxK6BGCAYEBSYAQ2EGEAP1dgADVg4ByAYxIGX+AUYQCPV4BjPM/WCxRhALpXgGNvZCNOFGEA0VeAY7a1XyUUYQEsV1szc///////////////////////////Fn/xsD9wi5w59FP+PwzvhBZMfW99+DbfB5bh6cK85u45fjRgQFGAgoFSYCABkVBQYEBRgJEDkKIAWzSAFWEAm1dgAID9W1BhAKRhAVpWW2BAUYCCgVJgIAGRUFBgQFGAkQOQ81s0gBVhAMZXYACA/VtQYQDPYQFiVlsAWzSAFWEA3VdgAID9W1BhASpgBIA2A2BAgRAVYQD0V2AAgP1bgQGQgIA1c///////////////////////////FpBgIAGQkpGQgDWQYCABkJKRkFBQUGEBq1ZbAFthAVhgBIA2A2AggRAVYQFCV2AAgP1bgQGQgIA1kGAgAZCSkZBQUFBhAfZWWwBbYABHkFCQVlszc///////////////////////////FmEI/EeQgRUCkGBAUWAAYEBRgIMDgYWIiPGTUFBQUBWAFWEBqFc9YACAPj1gAP1bUFZbgXP//////////////////////////xZhCPyCkIEVApBgQFFgAGBAUYCDA4GFiIjxk1BQUFAVgBVhAfFXPWAAgD49YAD9W1BQUFZbgDQUYQICV2AAgP1bUFb+omVienpyMVgg+PhPwxqEUGS1eB6QgxbzxZEVeWLeq7D9Qk7VTyVkAPlkc29sY0MABREAMiKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAowJoMOgMYig9KFgoUAAAAAAAAAAAAAAAAAAAAAAAAB4pyBwoDGIoPEAFSFgoJCgIYAhD/ssUNCgkKAhhiEICzxQ0="},{"b64Body":"ChAKCQiQ9YStBhC5BxIDGIcPEgIYAxi97tIVIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA9cBCs4BAvjLggEqggPnoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPooAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRqUogAgwGGoJQAAAAAAAAAAAAAAAAAAAAAAAAHioCktrVfJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE4gwAGgfUeZDEUxsDckc9Po2S7L+dq3ywNo8IzzxF8VIkv6stOgdXPhqpgQ7pOmIEUz7aGg6dOdxtIbqjqGBETXzgCxGLcYgMq17gE=","b64Record":"CiEIuAIqHAoMCAEQDBoGCICumaQPEgwIARAPGgYIgK6ZpA8SMC4E31c5LPhFBiW0ZeWCUpDbw3INB+eikZpdKlF7xG0W0iXajJvBX4UFrYdLD1/W3RoMCMz1hK0GEKv3+rsCIhAKCQiQ9YStBhC5BxIDGIcPKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjC97tIVUjoKCQoCGAMQ8sHGAQoJCgIYYhDwyLIhCgoKAxigBhCMqZYECgoKAxihBhCMqZYECgoKAxiHDxD53KUrigEghy5PiONESxss+TjUwJd9gpHuPxR+sh6HafBCGEtr93Y="}]},"etxSvc003ContractGetBytecodeQueryReturnsDeployedCode":{"placeholderNum":1931,"encodedItems":[{"b64Body":"Cg8KCQiV9YStBhDRBxICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIDErsMwmsq7vMF4ChmGzXQKOcAlSDlyhJu0E8XRfv7kxEICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGIwPKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCnye1NbYonBWUmhv7VImLui1y60ymsi+GWV79Pyf29sBTQ9g4Z0pRA/FCgOM3bEw8aDAjR9YStBhCr0//qASIPCgkIlfWErQYQ0QcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIfCg0KAhgCEP//663M7JACCg4KAxiMDxCAgOytzOyQAg=="},{"b64Body":"ChEKCQiV9YStBhDTBxICGAIgAVpoCiM6IQOsD/Ov2RCZwq9sJcq1UCVOsaV8oWM3efS8+0FvgXnzBUoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiEDrA/zr9kQmcKvbCXKtVAlTrGlfKFjN3n0vPtBb4F58wU=","b64Record":"CgcIFhIDGI0PEjAbV9JejTKaT3p8zsqiZb8YwvpytlDb1qh5dMLcm+Vihwo+qPYf957M383W/GB5n74aDAjR9YStBhCay/3PAyIRCgkIlfWErQYQ0wcSAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARS5+fj0Hdk6TJxXq+7dwXxy6XVsXg=="},{"b64Body":"Cg8KCQiV9YStBhDTBxICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohA6wP86/ZEJnCr2wlyrVQJU6xpXyhYzd59Lz7QW+BefMFEICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwM2Ld4t4MTvUL32i/duozLvXyuS6yjRW57ivz8v9+G7TuLoSc0J6QBq3iYz0PSVtzGgwI0fWErQYQm8v9zwMiDwoJCJX1hK0GENMHEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SGQoKCgIYAhD/j9/ASgoLCgMYjQ8QgJDfwEo="},{"b64Body":"Cg8KCQiW9YStBhDVBxICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAjSw9+wBhDAxPDUARptCiISIB0hWQ6Zik/yLiscQOW4DJLwxPe5rnY4OFKajHREOgyDCiM6IQIyxlNyKl3uIJ530yfTzH/95eqnLXbq/rCsNyUz2arSkgoiEiAVOp9VCdnbGcFtswxXPJ3cPMey2dHGYsBJK/c0LayiSyIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGI4PKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDsp9WWTzgk7zGH1WcXlXS80G729BqFgjegvZEH7Tz0ihtLbM5PEypgrG5uq4aPLdUaDAjS9YStBhCb5u7XASIPCgkIlvWErQYQ1QcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiW9YStBhDZBxICGAISAhgDGMr5hy0iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBwAEKAxiODyK4ATYwODA2MDQwNTIzNDgwMTU2MDBmNTc2MDAwODBmZDViNTA2MDNmODA2MDFkNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyNjAwMDgwZmRmZWEyNjQ2OTcwNjY3MzU4MjIxMjIwOTg2N2JjOWUyMjJmMjU5Yjc4ODUwMzUwMjY4MjkzYTNmYzljMzk5YWY3ZTE3ODNkNjMzNDE2YzliMjljYmUxZTY0NzM2ZjZjNjM0MzAwMDgwNzAwMzM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwai+tlx8sFqsZLK0tI8n11KO+8U8ywBpg05byH3piAm/vbUsisug7noxxz9WL49mbGgwI0vWErQYQ84Kz2gMiDwoJCJb1hK0GENkHEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"ChAKCQiX9YStBhDbBxIDGIwPEgIYAxjfgOMVIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA/oBCvEBAvjuggEqgKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOIKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0alKIAIMPQkCAgLhcYIBgQFI0gBVgD1dgAID9W1BgP4BgHWAAOWAA8/5ggGBAUmAAgP3+omRpcGZzWCISIJhnvJ4iLyWbeIUDUCaCk6P8nDma9+F4PWM0FsmynL4eZHNvbGNDAAgHADPAAaB/Jlwx/TBRFuvfRCzJnuevU6YJuNIzOTFA/d1BzpdBvqAh+fui85NF3mc6/eF1ES9wLCejbYWPjgN3HUfpjJ8eshiAyK+gJQ==","b64Record":"CiUIFiIDGI8PKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAPfG5fuJRt34UOl2kpEC+N+wRuO5fC6ECSoVyqhohBi5l8h1LkSvzJmQUMc1c9OHUaDAjT9YStBhCLwJnhASIQCgkIl/WErQYQ2wcSAxiMDyogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4w3+btMELaAwoDGI8PEj9ggGBAUmAAgP3+omRpcGZzWCISIJhnvJ4iLyWbeIUDUCaCk6P8nDma9+F4PWM0FsmynL4eZHNvbGNDAAgHADMigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKIDqMDoDGI8PShYKFBODnxZYL7BNaaLIIsC7SEoJJKz0UMCEPWJcYIBgQFI0gBVgD1dgAID9W1BgP4BgHWAAOWAA8/5ggGBAUmAAgP3+omRpcGZzWCISIJhnvJ4iLyWbeIUDUCaCk6P8nDma9+F4PWM0FsmynL4eZHNvbGNDAAgHADNqAxiND3IHCgMYjw8QAVJGCgkKAhgDEP60yAEKCQoCGGIQtLzgVwoKCgMYoAYQhq6ZBAoKCgMYoQYQhq6ZBAoKCgMYjA8QvYuEMgoKCgMYjQ8Q/8HXL4oBIMYeMgxmnK/BdAvTcoRsGGethEg7EO8FG2orW1Hz9aqO"},{"b64Body":"ChIKCQiX9YStBhDbBxIDGIwPIAFCHUIFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50","b64Record":"CgcIFiIDGI8PEjDaRa/OaEJrIpJqfZRn7hY5rIvbmUO7LQs5T92rgXd3K4V3+B3mmSuVVGmrwVGtkiwaDAjT9YStBhCMwJnhASISCgkIl/WErQYQ2wcSAxiMDyABQh0KAxiPD0oWChQTg58WWC+wTWmiyCLAu0hKCSSs9FIAegwI0/WErQYQi8CZ4QE="}]},"sendingLargerBalanceThanAvailableFailsGracefully":{"placeholderNum":1936,"encodedItems":[{"b64Body":"Cg8KCQic9YStBhDvBxICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISII2C1hP+Wwa7dSIf1elTs0JrpcT4zUFp+6d+s3RB5NxUEICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGJEPKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCf2wsqUmYw8L51P7o+Nx+EX1DhGw+mOHrAfTsPg04yRVpLAGNXnzHVWH3tAAjGBh8aDAjY9YStBhCbo6eHASIPCgkInPWErQYQ7wcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIfCg0KAhgCEP//663M7JACCg4KAxiRDxCAgOytzOyQAg=="},{"b64Body":"ChEKCQic9YStBhDxBxICGAIgAVpoCiM6IQPYAFM7KVNw+eQ7bKmlLtPPZwUV3q0Jy6ozUZk4SAllzUoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiED2ABTOylTcPnkO2yppS7Tz2cFFd6tCcuqM1GZOEgJZc0=","b64Record":"CgcIFhIDGJIPEjAihJakxipgfod4Qs2v3XE130QPFLKztgjukZw9E9xIV6VXVRM//NrTkn5dRq101vQaDAjY9YStBhCSyZ+JAyIRCgkInPWErQYQ8QcSAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARTBT1V2sBVo7QRMJ7Nswn9/eZC3OQ=="},{"b64Body":"Cg8KCQic9YStBhDxBxICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD9j9/ASgotCiUiIzohA9gAUzspU3D55DtsqaUu089nBRXerQnLqjNRmThICWXNEP6P38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw+kv690tX5BS61+xdMILub0nllqAYQgPk/0mtp14QGG4Rkwd6frnIb4CiyuPWO+FdGgwI2PWErQYQk8mfiQMiDwoJCJz1hK0GEPEHEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SGQoKCgIYAhD9j9/ASgoLCgMYkg8Q/o/fwEo="},{"b64Body":"Cg8KCQid9YStBhDzBxICGAISAhgDGL/0xiwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBgQESDAjZw9+wBhCg28iIARptCiISIBmuKUvIIT6pL3h5zxGeNCwDM57J70PgRGA95eHuY+d2CiM6IQLVxsyKNxMTae9OG/mVjn4W8P7qHkR6yF1xtkMTd8JxsQoiEiAIux027ARMKpAjT5C1oMAooMZU1YrX6vw2SKoo7PA1uCoAMgA=","b64Record":"CiUIFhoDGJMPKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjC3s0oPwQEO8S6gum5pWdvAQkrZB+JlPkkAFe1lM62PZ5EDwcXszOBlJz7gfnD4dvcaDAjZ9YStBhDrlr+QASIPCgkInfWErQYQ8wcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQid9YStBhD3BxICGAISAhgDGJPsjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxiTDyKAIDYwODA2MDQwNTI2MDQwNTE4MDYwNDAwMTYwNDA1MjgwNjAwOTgxNTI2MDIwMDE3Zjc0NmY2YjY1NmU0ZTYxNmQ2NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MTUyNTA2MDAyOTA4MDUxOTA2MDIwMDE5MDYyMDAwMDUxOTI5MTkwNjIwMDAzNzE1NjViNTA2MDQwNTE4MDYwNDAwMTYwNDA1MjgwNjAwYjgxNTI2MDIwMDE3Zjc0NmY2YjY1NmU1Mzc5NmQ2MjZmNmMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MTUyNTA2MDAzOTA4MDUxOTA2MDIwMDE5MDYyMDAwMDlmOTI5MTkwNjIwMDAzNzE1NjViNTA2MDQwNTE4MDYwNDAwMTYwNDA1MjgwNjAwNDgxNTI2MDIwMDE3ZjZkNjU2ZDZmMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MTUyNTA2MDA0OTA4MDUxOTA2MDIwMDE5MDYyMDAwMGVkOTI5MTkwNjIwMDAzNzE1NjViNTA2MTAzZTg2MDA1NjAwMDYxMDEwMDBhODE1NDgxNjdmZmZmZmZmZmZmZmZmZmZmMDIxOTE2OTA4MzY3ZmZmZmZmZmZmZmZmZmZmZjE2MDIxNzkwNTU1MDYxMDNlODYwMDU2MDA4NjEwMTAwMGE4MTU0ODE2N2ZmZmZmZmZmZmZmZmZmZmYwMjE5MTY5MDgzNjAwNzBiNjdmZmZmZmZmZmZmZmZmZmZmMTYwMjE3OTA1NTUwNjAwODYwMDU2MDEwNjEwMTAwMGE4MTU0ODE2M2ZmZmZmZmZmMDIxOTE2OTA4MzYzZmZmZmZmZmYxNjAyMTc5MDU1NTA2MDAwNjAwNTYwMTQ2MTAxMDAwYTgxNTQ4MTYwZmYwMjE5MTY5MDgzMTUxNTAyMTc5MDU1NTAzNDgwMTU2MjAwMDE5MTU3NjAwMDgwZmQ1YjUwNjAwMTgwNjAwMDgwNjAwNjgxMTExNTYyMDAwMWFkNTc2MjAwMDFhYzYyMDAwNDU3NTY1YjViNjAwNjgxMTExNTYyMDAwMWMyNTc2MjAwMDFjMTYyMDAwNDU3NTY1YjViODE1MjYwMjAwMTkwODE1MjYwMjAwMTYwMDAyMDgxOTA1NTUwNjAwMjYwMDE2MDAwNjAwMTYwMDY4MTExMTU2MjAwMDFmMTU3NjIwMDAxZjA2MjAwMDQ1NzU2NWI1YjYwMDY4MTExMTU2MjAwMDIwNjU3NjIwMDAyMDU2MjAwMDQ1NzU2NWI1YjgxNTI2MDIwMDE5MDgxNTI2MDIwMDE2MDAwMjA4MTkwNTU1MDYwMDQ2MDAxNjAwMDYwMDI2MDA2ODExMTE1NjIwMDAyMzU1NzYyMDAwMjM0NjIwMDA0NTc1NjViNWI2MDA2ODExMTE1NjIwMDAyNGE1NzYyMDAwMjQ5NjIwMDA0NTc1NjViNWI4MTUyNjAyMDAxOTA4MTUyNjAyMDAxNjAwMDIwODE5MDU1NTA2MDA4NjAwMTYwMDA2MDAzNjAwNjgxMTExNTYyMDAwMjc5NTc2MjAwMDI3ODYyMDAwNDU3NTY1YjViNjAwNjgxMTExNTYyMDAwMjhlNTc2MjAwMDI4ZDYyMDAwNDU3NTY1YjViODE1MjYwMjAwMTkwODE1MjYwMjAwMTYwMDAyMDgxOTA1NTUwNjAxMDYwMDE2MDAwNjAwNDYwMDY4MTExMTU2MjAwMDJiZDU3NjIwMDAyYmM2MjAwMDQ1NzU2NWI1YjYwMDY4MTExMTU2MjAwMDJkMjU3NjIwMDAyZDE2MjAwMDQ1NzU2NWI1YjgxNTI2MDIwMDE5MDgxNTI2MDIwMDE2MDAwMjA4MTkwNTU1MDYwMjA2MDAxNjAwMDYwMDU2MDA2ODExMTE1NjIwMDAzMDE1NzYyMDAwMzAwNjIwMDA0NTc1NjViNWI2MDA2ODExMTE1NjIwMDAzMTY1NzYyMDAwMzE1NjIwMDA0NTc1NjViNWI4MTUyNjAyMDAxOTA4MTUyNjAyMDAxNjAwMDIwODE5MDU1NTA2MDQwNjAwMTYwMDA2MDA2ODA4MTExMTU2MjAwMDM0NDU3NjIwMDAzNDM2MjAwMDQ1NzU2NWI1YjYwMDY4MTExMTU2MjAwMDM1OTU3NjIwMDAzNTg2MjAwMDQ1NzU2NWI1YjgxNTI2MDIwMDE5MDgxNTI2MDIwMDE2MDAwMjA4MTkwNTU1MDYyMDAwNGI1NTY1YjgyODA1NDYyMDAwMzdmOTA2MjAwMDQyMTU2NWI5MDYwMDA1MjYwMjA2MDAwMjA5MDYwMWYwMTYwMjA5MDA0ODEwMTkyODI2MjAwMDNhMzU3NjAwMDg1NTU2MjAwMDNlZjU2NWI4MjYwMWYxMDYyMDAwM2JlNTc4MDUxNjBmZjE5MTY4MzgwMDExNzg1NTU2MjAwMDNlZjU2NWI4MjgwMDE2MDAxMDE4NTU1ODIxNTYyMDAwM2VmNTc5MTgyMDE1YjgyODExMTE1NjIwMDAzZWU1NzgyNTE4MjU1OTE2MDIwMDE5MTkwNjAwMTAxOTA2MjAwMDNkMTU2NWI1YjUwOTA1MDYyMDAwM2ZlOTE5MDYyMDAwNDAyNTY1YjUwOTA1NjViNWI4MDgyMTExNTYyMDAwNDFkNTc2MDAwODE2MDAwOTA1NTUwNjAwMTAxNjIwMDA0MDM1NjViNTA5MDU2NWI2MDAwNjAwMjgyMDQ5MDUwNjAwMTgyMTY4MDYyMDAwNDNhNTc2MDdmODIxNjkxNTA1YjYwMjA4MjEwODExNDE1NjIwMDA0NTE1NzYyMDAwNDUwNjIwMDA0ODY1NjViNWI1MDkxOTA1MDU2NWI3ZjRlNDg3YjcxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MDAwNTI2MDIxNjAwNDUyNjAyNDYwMDBmZDViN2Y0ZTQ4N2I3MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjAwMDUyNjAyMjYwMDQ1MjYwMjQ2MDAwZmQ1YjYxNDJhYjgwNjIwMDA0YzU2MDAwMzk2MDAwZjNmZTYwODA2MDQwNTI2MDA0MzYxMDYxMDBhNzU3NjAwMDM1NjBlMDFjODA2MzgwNzA5MDVmMTE2MTAwNjQ1NzgwNjM4MDcwOTA1ZjE0NjEwMWQ4NTc4MDYzOGJhNzRkYTAxNDYxMDIxNzU3ODA2MzliMjNkM2Q5MTQ2MTAyMzM1NzgwNjNkODVmNzRjMTE0NjEwMjcwNTc4MDYzZWFjNmYzZmUxNDYxMDI4YzU3ODA2M2Y0YTAxZTViMTQ2MTAyYzk1NzYxMDBhNzU2NWI4MDYzMDQ4OGM5MzkxNDYxMDBhYzU3ODA2MzBmZDI2MDFlMTQ2MTAwYzg1NzgwNjMxMTg3NDFlNzE0NjEwMTA1NTc4MDYzMTFlMWZjMDcxNDYxMDE0MjU3ODA2MzE1ZGFjYmVhMTQ2MTAxN2Y1NzgwNjM0YjVjNjY4NzE0NjEwMWJjNTc1YjYwMDA4MGZkNWI2MTAwYzY2MDA0ODAzNjAzODEwMTkwNjEwMGMxOTE5MDYxMmZlNjU2NWI2MTAzMDY1NjViMDA1YjM0ODAxNTYxMDBkNDU3NjAwMDgwZmQ1YjUwNjEwMGVmNjAwNDgwMzYwMzgxMDE5MDYxMDBlYTkxOTA2MTJmZTY1NjViNjEwOTEwNTY1YjYwNDA1MTYxMDBmYzkxOTA2MTNiYTE1NjViNjA0MDUxODA5MTAzOTBmMzViMzQ4MDE1NjEwMTExNTc2MDAwODBmZDViNTA2MTAxMmM2MDA0ODAzNjAzODEwMTkwNjEwMTI3OTE5MDYxMzA4ZDU2NWI2MTA5NmU1NjViNjA0MDUxNjEwMTM5OTE5MDYxM2IyZDU2NWI2MDQwNTE4MDkxMDM5MGYzNWIzNDgwMTU2MTAxNGU1NzYwMDA4MGZkNWI1MDYxMDE2OTYwMDQ4MDM2MDM4MTAxOTA2MTAxNjQ5MTkwNjEzMDI2NTY1YjYxMDljOTU2NWI2MDQwNTE2MTAxNzY5MTkwNjEzYmExNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjM0ODAxNTYxMDE4YjU3NjAwMDgwZmQ1YjUwNjEwMWE2NjAwNDgwMzYwMzgxMDE5MDYxMDFhMTkxOTA2MTMwMjY1NjViNjEwYWU1NTY1YjYwNDA1MTYxMDFiMzkxOTA2MTNiYTE1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMWQ2NjAwNDgwMzYwMzgxMDE5MDYxMDFkMTkxOTA2MTJmYjk1NjViNjEwYzAzNTY1YjAwNWIzNDgwMTU2MTAxZTQ1NzYwMDA4MGZkNWI1MDYxMDFmZjYwMDQ4MDM2MDM4MTAxOTA2MTAxZmE5MTkwNjEzMGU5NTY1YjYxMTA3MTU2NWI2MDQwNTE2MTAyMGU5MzkyOTE5MDYxM2I0ODU2NWI2MDQwNTE4MDkxMDM5MGYzNWI2MTAyMzE2MDA0ODAzNjAzODEwMTkwNjEwMjJjOTE5MDYxMmZlNjU2NWI2MTExMTY1NjViMDA1YjM0ODAxNTYxMDIzZjU3NjAwMDgwZmQ1YjUwNjEwMjVhNjAwNDgwMzYwMzgxMDE5MDYxMDI1NTkxOTA2MTMwMjY1NjViNjExNjc3NTY1YjYwNDA1MTYxMDI2NzkxOTA2MTNiYTE1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMjhhNjAwNDgwMzYwMzgxMDE5MDYxMDI4NTkxOTA2MTJmYjk1NjViNjExNzk1NTY1YjAwNWIzNDgwMTU2MTAyOTg1NzYwMDA4MGZkNWI1MDYxMDJiMzYwMDQ4MDM2MDM4MTAxOTA2MTAyYWU5MTkwNjEzMDI2NTY1YjYxMWJkOTU2NWI2MDQwNTE2MTAyYzA5MTkwNjEzYmExNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjM0ODAxNTYxMDJkNTU3NjAwMDgwZmQ1YjUwNjEwMmYwNjAwNDgwMzYwMzgxMDE5MDYxMDJlYjkxOTA2MTJmZTY1NjViNjExY2Y1NTY1YjYwNDA1MTYxMDJmZDkxOTA2MTNiMmQ1NjViNjA0MDUxODA5MTAzOTBmMzViNjAwMDYwMDU2N2ZmZmZmZmZmZmZmZmZmZmY4MTExMTU2MTAzMjM1NzYxMDMyMjYxNDE5MjU2NWI1YjYwNDA1MTkwODA4MjUyODA2MDIwMDI2MDIwMDE4MjAxNjA0MDUyODAxNTYxMDM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwigAfbyy7UKkX5r+RDVU/TJc2mOBe/7CPmcMEyyScbLflgdQxmU31qgmKLuiKq/nFGgwI2fWErQYQq/fykQMiDwoJCJ31hK0GEPcHEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQie9YStBhD9BxICGAISAhgDGPjR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxiTDyKAIDVjNTc4MTYwMjAwMTViNjEwMzQ5NjEyYjAwNTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMDM0MTU3OTA1MDViNTA5MDUwNjEwMzdkNjAwMDYwMDY2MDAwNjA0MDUxODA2MDIwMDE2MDQwNTI4MDYwMDA4MTUyNTA2MTFkNTA1NjViODE2MDAwODE1MTgxMTA2MTAzOTE1NzYxMDM5MDYxNDE2MzU2NWI1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA2MTAzYjg2MDAxNjAwMDYwNDA1MTgwNjAyMDAxNjA0MDUyODA2MDAwODE1MjUwNjExZDg5NTY1YjgxNjAwMTgxNTE4MTEwNjEwM2NjNTc2MTAzY2I2MTQxNjM1NjViNWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNjEwM2YzNjAwMjYwMDA2MDQwNTE4MDYwMjAwMTYwNDA1MjgwNjAwMDgxNTI1MDYxMWQ4OTU2NWI4MTYwMDI4MTUxODExMDYxMDQwNzU3NjEwNDA2NjE0MTYzNTY1YjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDYxMDQyZTYwMDQ2MDAwNjA0MDUxODA2MDIwMDE2MDQwNTI4MDYwMDA4MTUyNTA2MTFkODk1NjViODE2MDAzODE1MTgxMTA2MTA0NDI1NzYxMDQ0MTYxNDE2MzU2NWI1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA2MTA0Njk2MDAzNjAwMDYwNDA1MTgwNjAyMDAxNjA0MDUyODA2MDAwODE1MjUwNjExZDg5NTY1YjgxNjAwNDgxNTE4MTEwNjEwNDdkNTc2MTA0N2M2MTQxNjM1NjViNWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNjAwMDYwNDA1MTgwNjA2MDAxNjA0MDUyODA2MDAwNjNmZmZmZmZmZjE2ODE1MjYwMjAwMTg1NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4MTUyNjAyMDAxNjI3YTEyMDA2M2ZmZmZmZmZmMTY4MTUyNTA5MDUwNjAwMDYwNDA1MTgwNjEwMTIwMDE2MDQwNTI4MDYwMDI4MDU0NjEwNGU4OTA2MTQwYTI1NjViODA2MDFmMDE2MDIwODA5MTA0MDI2MDIwMDE2MDQwNTE5MDgxMDE2MDQwNTI4MDkyOTE5MDgxODE1MjYwMjAwMTgyODA1NDYxMDUxNDkwNjE0MGEyNTY1YjgwMTU2MTA1NjE1NzgwNjAxZjEwNjEwNTM2NTc2MTAxMDA4MDgzNTQwNDAyODM1MjkxNjAyMDAxOTE2MTA1NjE1NjViODIwMTkxOTA2MDAwNTI2MDIwNjAwMDIwOTA1YjgxNTQ4MTUyOTA2MDAxMDE5MDYwMjAwMTgwODMxMTYxMDU0NDU3ODI5MDAzNjAxZjE2ODIwMTkxNWI1MDUwNTA1MDUwODE1MjYwMjAwMTYwMDM4MDU0NjEwNTc4OTA2MTQwYTI1NjViODA2MDFmMDE2MDIwODA5MTA0MDI2MDIwMDE2MDQwNTE5MDgxMDE2MDQwNTI4MDkyOTE5MDgxODE1MjYwMjAwMTgyODA1NDYxMDVhNDkwNjE0MGEyNTY1YjgwMTU2MTA1ZjE1NzgwNjAxZjEwNjEwNWM2NTc2MTAxMDA4MDgzNTQwNDAyODM1MjkxNjAyMDAxOTE2MTA1ZjE1NjViODIwMTkxOTA2MDAwNTI2MDIwNjAwMDIwOTA1YjgxNTQ4MTUyOTA2MDAxMDE5MDYwMjAwMTgwODMxMTYxMDVkNDU3ODI5MDAzNjAxZjE2ODIwMTkxNWI1MDUwNTA1MDUwODE1MjYwMjAwMTg2NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4MTUyNjAyMDAxNjAwNDgwNTQ2MTA2MjQ5MDYxNDBhMjU2NWI4MDYwMWYwMTYwMjA4MDkxMDQwMjYwMjAwMTYwNDA1MTkwODEwMTYwNDA1MjgwOTI5MTkwODE4MTUyNjAyMDAxODI4MDU0NjEwNjUwOTA2MTQwYTI1NjViODAxNTYxMDY5ZDU3ODA2MDFmMTA2MTA2NzI1NzYxMDEwMDgwODM1NDA0MDI4MzUyOTE2MDIwMDE5MTYxMDY5ZDU2NWI4MjAxOTE5MDYwMDA1MjYwMjA2MDAwMjA5MDViODE1NDgxNTI5MDYwMDEwMTkwNjAyMDAxODA4MzExNjEwNjgwNTc4MjkwMDM2MDFmMTY4MjAxOTE1YjUwNTA1MDUwNTA4MTUyNjAyMDAxNjAwMTE1MTU4MTUyNjAyMDAxNjAwNTYwMDg5MDU0OTA2MTAxMDAwYTkwMDQ2MDA3MGI2MDA3MGI4MTUyNjAyMDAxNjAwNTYwMTQ5MDU0OTA2MTAxMDAwYTkwMDQ2MGZmMTYxNTE1ODE1MjYwMjAwMTg0ODE1MjYwMjAwMTgzODE1MjUwOTA1MDYwMDA2MDAxNjdmZmZmZmZmZmZmZmZmZmZmODExMTE1NjEwNzA4NTc2MTA3MDc2MTQxOTI1NjViNWI2MDQwNTE5MDgwODI1MjgwNjAyMDAyNjAyMDAxODIwMTYwNDA1MjgwMTU2MTA3NDE1NzgxNjAyMDAxNWI2MTA3MmU2MTJiMjA1NjViODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjEwNzI2NTc5MDUwNWI1MDkwNTA2MDQwNTE4MDYwYTAwMTYwNDA1MjgwNjAwMTYzZmZmZmZmZmYxNjgxNTI2MDIwMDE4NjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ODE1MjYwMjAwMTYwMDAxNTE1ODE1MjYwMjAwMTYwMDAxNTE1ODE1MjYwMjAwMTg3NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4MTUyNTA4MTYwMDA4MTUxODExMDYxMDdiODU3NjEwN2I3NjE0MTYzNTY1YjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDYwMDA2MDAxNjdmZmZmZmZmZmZmZmZmZmZmODExMTE1NjEwN2UwNTc2MTA3ZGY2MTQxOTI1NjViNWI2MDQwNTE5MDgwODI1MjgwNjAyMDAyNjAyMDAxODIwMTYwNDA1MjgwMTU2MTA4MTk1NzgxNjAyMDAxNWI2MTA4MDY2MTJiODU1NjViODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjEwN2ZlNTc5MDUwNWI1MDkwNTA2MDQwNTE4MDYwYzAwMTYwNDA1MjgwNjAwNDYzZmZmZmZmZmYxNjgxNTI2MDIwMDE2MDA1NjNmZmZmZmZmZjE2ODE1MjYwMjAwMTYwMGE2M2ZmZmZmZmZmMTY4MTUyNjAyMDAxODc3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjgxNTI2MDIwMDE2MDAwMTUxNTgxNTI2MDIwMDE4ODczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ODE1MjUwODE2MDAwODE1MTgxMTA2MTA4YTE1NzYxMDhhMDYxNDE2MzU2NWI1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA2MDAwODA2MTA4YmE4NTg1ODU2MTFkYzA1NjViOTE1MDkxNTA2MDE2NjAwMzBiODIxNDYxMDhjZTU3NjAwMDgwZmQ1YjdmN2JiMTc3MjZkZjFmM2FkZWU4YWEwMGJhOGU4YmM1ZDZmMTgyYWYzYmJmNzc2MDQ2MzljYjdmMDA4ZGQzYjRlZDgxNjA0MDUxNjEwOGZkOTE5MDYxM2EzNjU2NWI2MDQwNTE4MDkxMDM5MGExNTA1MDUwNTA1MDUwNTA1MDUwNTY1YjYwMDA2MTA5MWM4MzgzNjExZjNmNTY1YjkwNTA3ZjkwYTVjZjRjZmZlODhiNGVkYmIwNDFjZmM3YThhODEyYzQ4YTVlYzMwYjg0NjQwZmIzNzY5MDg3NTE2OGUzYWE4MTYwNDA1MTYxMDk0ZDkxOTA2MTNiODY1NjViNjA0MDUxODA5MTAzOTBhMTYwMTY2MDAzMGI4MTYwMDcwYjE0NjEwOTY4NTc2MDAwODBmZDViOTI5MTUwNTA1NjViNjAwMDYxMDk3YTgzODM2MTIwNTc1NjViOTA1MDdmOTBhNWNmNGNmZmU4OGI0ZWRiYjA0MWNmYzdhOGE4MTJjNDhhNWVjMzBiODQ2NDBmYjM3NjkwODc1MTY4ZTNhYTgxNjA0MDUxNjEwOWFiOTE5MDYxM2IyZDU2NWI2MDQwNTE4MDkxMDM5MGExNjAxNjYwMDMwYjgxMTQ2MTA5YzM1NzYwMDA4MGZkNWI5MjkxNTA1MDU2NWI2MDAwODA2MDAwNjEwMTY3NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MzliMjNkM2Q5NjBlMDFiODg4ODg4ODg2MDQwNTE2MDI0MDE2MTBhMDY5NDkzOTI5MTkwNjEzYTdhNTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMGE3MDkxOTA2MTNhMWY1NjViNjAwMDYwNDA1MTgwODMwMzgxODU1YWY0OTE1MDUwM2Q4MDYwMDA4MTE0NjEwYWFiNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjEwYWIwNTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTBhYzE1NzYwMTU2MTBhZDY1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTBhZDU5MTkwNjEzMTU4NTY1YjViNjAwMzBiOTI1MDUwNTA5NDkzNTA1MDUwNTA1NjViNjAwMDgwNjAwMDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjMxNWRhY2JlYTYwZTAxYjg4ODg4ODg4NjA0MDUxNjAyNDAxNjEwYjIyOTQ5MzkyOTE5MDYxM2E3YTU2NWI2MDQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI5MDdiZmZmZmZmZmZmZmZmZmY=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwElB/9IopjEK0JRT3V2d/22opGyiLJfgH+OravjY2Vad4hc7/4xZ8t1QmIkii5GSLGgwI2vWErQYQg5HKmgEiDwoJCJ71hK0GEP0HEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQie9YStBhCDCBICGAISAhgDGPjR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxiTDyKAIGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMGI4YzkxOTA2MTNhMWY1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMGJjOTU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMGJjZTU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEwYmRmNTc2MDE1NjEwYmY0NTY1YjgwODA2MDIwMDE5MDUxODEwMTkwNjEwYmYzOTE5MDYxMzE1ODU2NWI1YjYwMDMwYjkyNTA1MDUwOTQ5MzUwNTA1MDUwNTY1YjYwMDA2MDA1NjdmZmZmZmZmZmZmZmZmZmZmODExMTE1NjEwYzIwNTc2MTBjMWY2MTQxOTI1NjViNWI2MDQwNTE5MDgwODI1MjgwNjAyMDAyNjAyMDAxODIwMTYwNDA1MjgwMTU2MTBjNTk1NzgxNjAyMDAxNWI2MTBjNDY2MTJiMDA1NjViODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjEwYzNlNTc5MDUwNWI1MDkwNTA2MTBjN2E2MDAwNjAwNjYwMDA2MDQwNTE4MDYwMjAwMTYwNDA1MjgwNjAwMDgxNTI1MDYxMWQ1MDU2NWI4MTYwMDA4MTUxODExMDYxMGM4ZTU3NjEwYzhkNjE0MTYzNTY1YjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDYxMGNiNTYwMDE2MDAwNjA0MDUxODA2MDIwMDE2MDQwNTI4MDYwMDA4MTUyNTA2MTFkODk1NjViODE2MDAxODE1MTgxMTA2MTBjYzk1NzYxMGNjODYxNDE2MzU2NWI1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA2MTBjZjA2MDAyNjAwMDYwNDA1MTgwNjAyMDAxNjA0MDUyODA2MDAwODE1MjUwNjExZDg5NTY1YjgxNjAwMjgxNTE4MTEwNjEwZDA0NTc2MTBkMDM2MTQxNjM1NjViNWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNjEwZDJiNjAwMzYwMDA2MDQwNTE4MDYwMjAwMTYwNDA1MjgwNjAwMDgxNTI1MDYxMWQ4OTU2NWI4MTYwMDM4MTUxODExMDYxMGQzZjU3NjEwZDNlNjE0MTYzNTY1YjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDYxMGQ2NjYwMDQ2MDAwNjA0MDUxODA2MDIwMDE2MDQwNTI4MDYwMDA4MTUyNTA2MTFkODk1NjViODE2MDA0ODE1MTgxMTA2MTBkN2E1NzYxMGQ3OTYxNDE2MzU2NWI1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA2MDAwNjA0MDUxODA2MDYwMDE2MDQwNTI4MDYwMDA2M2ZmZmZmZmZmMTY4MTUyNjAyMDAxODQ3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjgxNTI2MDIwMDE2MjdhMTIwMDYzZmZmZmZmZmYxNjgxNTI1MDkwNTA2MDAwNjA0MDUxODA2MTAxMjAwMTYwNDA1MjgwNjAwMjgwNTQ2MTBkZTU5MDYxNDBhMjU2NWI4MDYwMWYwMTYwMjA4MDkxMDQwMjYwMjAwMTYwNDA1MTkwODEwMTYwNDA1MjgwOTI5MTkwODE4MTUyNjAyMDAxODI4MDU0NjEwZTExOTA2MTQwYTI1NjViODAxNTYxMGU1ZTU3ODA2MDFmMTA2MTBlMzM1NzYxMDEwMDgwODM1NDA0MDI4MzUyOTE2MDIwMDE5MTYxMGU1ZTU2NWI4MjAxOTE5MDYwMDA1MjYwMjA2MDAwMjA5MDViODE1NDgxNTI5MDYwMDEwMTkwNjAyMDAxODA4MzExNjEwZTQxNTc4MjkwMDM2MDFmMTY4MjAxOTE1YjUwNTA1MDUwNTA4MTUyNjAyMDAxNjAwMzgwNTQ2MTBlNzU5MDYxNDBhMjU2NWI4MDYwMWYwMTYwMjA4MDkxMDQwMjYwMjAwMTYwNDA1MTkwODEwMTYwNDA1MjgwOTI5MTkwODE4MTUyNjAyMDAxODI4MDU0NjEwZWExOTA2MTQwYTI1NjViODAxNTYxMGVlZTU3ODA2MDFmMTA2MTBlYzM1NzYxMDEwMDgwODM1NDA0MDI4MzUyOTE2MDIwMDE5MTYxMGVlZTU2NWI4MjAxOTE5MDYwMDA1MjYwMjA2MDAwMjA5MDViODE1NDgxNTI5MDYwMDEwMTkwNjAyMDAxODA4MzExNjEwZWQxNTc4MjkwMDM2MDFmMTY4MjAxOTE1YjUwNTA1MDUwNTA4MTUyNjAyMDAxODU3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjgxNTI2MDIwMDE2MDA0ODA1NDYxMGYyMTkwNjE0MGEyNTY1YjgwNjAxZjAxNjAyMDgwOTEwNDAyNjAyMDAxNjA0MDUxOTA4MTAxNjA0MDUyODA5MjkxOTA4MTgxNTI2MDIwMDE4MjgwNTQ2MTBmNGQ5MDYxNDBhMjU2NWI4MDE1NjEwZjlhNTc4MDYwMWYxMDYxMGY2ZjU3NjEwMTAwODA4MzU0MDQwMjgzNTI5MTYwMjAwMTkxNjEwZjlhNTY1YjgyMDE5MTkwNjAwMDUyNjAyMDYwMDAyMDkwNWI4MTU0ODE1MjkwNjAwMTAxOTA2MDIwMDE4MDgzMTE2MTBmN2Q1NzgyOTAwMzYwMWYxNjgyMDE5MTViNTA1MDUwNTA1MDgxNTI2MDIwMDE2MDAxMTUxNTgxNTI2MDIwMDE2MDA1NjAwODkwNTQ5MDYxMDEwMDBhOTAwNDYwMDcwYjYwMDcwYjgxNTI2MDIwMDE2MDA1NjAxNDkwNTQ5MDYxMDEwMDBhOTAwNDYwZmYxNjE1MTU4MTUyNjAyMDAxODQ4MTUyNjAyMDAxODM4MTUyNTA5MDUwNjAwMDgwNjExMDFlODM2MDA1NjAwMDkwNTQ5MDYxMDEwMDBhOTAwNDY3ZmZmZmZmZmZmZmZmZmZmZjE2NjAwNTYwMTA5MDU0OTA2MTAxMDAwYTkwMDQ2M2ZmZmZmZmZmMTY2MTIxNmY1NjViOTE1MDkxNTA2MDE2NjAwMzBiODIxNDYxMTAzMjU3NjAwMDgwZmQ1YjdmN2JiMTc3MjZkZjFmM2FkZWU4YWEwMGJhOGU4YmM1ZDZmMTgyYWYzYmJmNzc2MDQ2MzljYjdmMDA4ZGQzYjRlZDgxNjA0MDUxNjExMDYxOTE5MDYxM2EzNjU2NWI2MDQwNTE4MDkxMDM5MGExNTA1MDUwNTA1MDUwNTY1YjYwMDA4MDYwNjA2MTEwODE4Njg2ODY2MTIyZWU1NjViODA5MzUwODE5NDUwODI5NTUwNTA1MDUwN2Y5MGE1Y2Y0Y2ZmZTg4YjRlZGJiMDQxY2ZjN2E4YTgxMmM0OGE1ZWMzMGI4NDY0MGZiMzc2OTA4NzUxNjhlM2FhODM2MDQwNTE2MTEwYmM5MTkwNjEzYjJkNTY1YjYwNDA1MTgwOTEwMzkwYTE2MDE2NjAwMzBiODMxNDYxMTBkNDU3NjAwMDgwZmQ1YjdmZWZmMjM5OTJmNDdiM2MxMDE2NzlmOGI0ZGM5ZDNlMjQyYzkwMzkwOWRiYTRhNDUzZjJiMjM0MWFkNDYzYjBlMjgyODI2MDQwNTE2MTExMDU5MjkxOTA2MTNjZDA1NjViNjA0MDUxODA5MTAzOTBhMTkzNTA5MzUwOTM5MDUwNTY1YjYwMDA2MDAxNjdmZmZmZmZmZmZmZmZmZmZmODExMTE1NjExMTMzNTc2MTExMzI2MTQxOTI1NjViNWI2MDQwNTE5MDgwODI1MjgwNjAyMDAyNjAyMDAxODIwMTYwNDA1MjgwMTU2MTExNmM1NzgxNjAyMDAxNWI2MTExNTk2MTJiMDA1NjViODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjExMTUxNTc5MDUwNWI1MDkwNTA2MTExOGM2MDAwODA2MDAwNjA0MDUxODA2MDIwMDE2MDQwNTI4MDYwMDA4MTUyNTA2MTFkNTA1NjViODE2MDAwODE1MTgxMTA2MTExYTA1NzYxMTE5ZjYxNDE2MzU2NWI1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA2MDAwNjA0MDUxODA2MDYwMDE2MDQwNTI4MDYwMDA2M2ZmZmZmZmZmMTY4MTUyNjAyMDAxODU3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjgxNTI2MDIwMDE2MjdhMTIwMDYzZmZmZmZmZmYxNjgxNTI1MDkwNTA2MDAwNjA0MDUxODA2MTAxMjAwMTYwNDA1MjgwNjAwMjgwNTQ2MTEyMGI5MDYxNDBhMjU2NWI4MDYwMWYwMTYwMjA4MDkxMDQwMjYwMjAwMTYwNDA1MTkwODEwMTYwNDA1MjgwOTI5MTkwODE4MTUyNjAyMDAxODI4MDU0NjExMjM3OTA2MTQwYTI1NjViODAxNTYxMTI4NDU3ODA2MDFmMTA2MTEyNTk1NzYxMDEwMDgwODM1NDA0MDI4MzUyOTE2MDIwMDE5MTYxMTI4NDU2NWI4MjAxOTE5MDYwMDA1MjYwMjA2MDAwMjA5MDViODE1NDgxNTI5MDYwMDEwMTkwNjAyMDAxODA4MzExNjExMjY3NTc4MjkwMDM2MDFmMTY4MjAxOTE1YjUwNTA1MDUwNTA4MTUyNjAyMDAxNjAwMzgwNTQ2MTEyOWI5MDYxNDBhMjU2NWI4MDYwMWYwMTYwMjA4MDkxMDQwMjYwMjAwMTYwNDA1MTkwODEwMTYwNDA1MjgwOTI5MTkwODE4MTUyNjAyMDAxODI4MDU0NjExMmM3OTA2MTQwYTI1NjViODAxNTYxMTMxNDU3ODA2MDFmMTA2MTEyZTk1NzYxMDEwMDgwODM1NDA0MDI4MzUyOTE2MDIwMDE5MTYxMTMxNDU2NWI4MjAxOTE5MDYwMDA1MjYwMjA2MDAwMjA5MDViODE1NDgxNTI5MDYwMDEwMTkwNjAyMDAxODA4MzExNjExMmY3NTc4MjkwMDM2MDFmMTY4MjAxOTE1YjUwNTA1MDUwNTA4MTUyNjAyMDAxODY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjgxNTI2MDIwMDE=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwstqSLlyMzb638GcIJnCzpc5ifzBtv0MkT8n4k0rOyVUFnPnsCA16rq0uYnEdQeoxGgwI2vWErQYQ4+CQmwMiDwoJCJ71hK0GEIMIEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQif9YStBhCJCBICGAISAhgDGPfR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxiTDyKAIDYwMDQ4MDU0NjExMzQ3OTA2MTQwYTI1NjViODA2MDFmMDE2MDIwODA5MTA0MDI2MDIwMDE2MDQwNTE5MDgxMDE2MDQwNTI4MDkyOTE5MDgxODE1MjYwMjAwMTgyODA1NDYxMTM3MzkwNjE0MGEyNTY1YjgwMTU2MTEzYzA1NzgwNjAxZjEwNjExMzk1NTc2MTAxMDA4MDgzNTQwNDAyODM1MjkxNjAyMDAxOTE2MTEzYzA1NjViODIwMTkxOTA2MDAwNTI2MDIwNjAwMDIwOTA1YjgxNTQ4MTUyOTA2MDAxMDE5MDYwMjAwMTgwODMxMTYxMTNhMzU3ODI5MDAzNjAxZjE2ODIwMTkxNWI1MDUwNTA1MDUwODE1MjYwMjAwMTYwMDExNTE1ODE1MjYwMjAwMTYwMDU2MDA4OTA1NDkwNjEwMTAwMGE5MDA0NjAwNzBiNjAwNzBiODE1MjYwMjAwMTYwMDAxNTE1ODE1MjYwMjAwMTg0ODE1MjYwMjAwMTgzODE1MjUwOTA1MDYwMDA2MDAxNjdmZmZmZmZmZmZmZmZmZmZmODExMTE1NjExNDFkNTc2MTE0MWM2MTQxOTI1NjViNWI2MDQwNTE5MDgwODI1MjgwNjAyMDAyNjAyMDAxODIwMTYwNDA1MjgwMTU2MTE0NTY1NzgxNjAyMDAxNWI2MTE0NDM2MTJiMjA1NjViODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjExNDNiNTc5MDUwNWI1MDkwNTA2MDQwNTE4MDYwYTAwMTYwNDA1MjgwNjAwMTYzZmZmZmZmZmYxNjgxNTI2MDIwMDE4NjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ODE1MjYwMjAwMTYwMDAxNTE1ODE1MjYwMjAwMTYwMDAxNTE1ODE1MjYwMjAwMTg3NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4MTUyNTA4MTYwMDA4MTUxODExMDYxMTRjZDU3NjExNGNjNjE0MTYzNTY1YjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDYwMDA2MDAxNjdmZmZmZmZmZmZmZmZmZmZmODExMTE1NjExNGY1NTc2MTE0ZjQ2MTQxOTI1NjViNWI2MDQwNTE5MDgwODI1MjgwNjAyMDAyNjAyMDAxODIwMTYwNDA1MjgwMTU2MTE1MmU1NzgxNjAyMDAxNWI2MTE1MWI2MTJiZmI1NjViODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjExNTEzNTc5MDUwNWI1MDkwNTA2MDQwNTE4MDYwYzAwMTYwNDA1MjgwNjAwNDYzZmZmZmZmZmYxNjgxNTI2MDIwMDE2MDA1NjNmZmZmZmZmZjE2ODE1MjYwMjAwMTYwMGE2M2ZmZmZmZmZmMTY4MTUyNjAyMDAxNjAxZTYzZmZmZmZmZmYxNjgxNTI2MDIwMDE2MDAwMTUxNTgxNTI2MDIwMDE4ODczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ODE1MjUwODE2MDAwODE1MTgxMTA2MTE1YTc1NzYxMTVhNjYxNDE2MzU2NWI1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA2MDAwODA2MTE1ZWE4NTYwMDU2MDAwOTA1NDkwNjEwMTAwMGE5MDA0NjdmZmZmZmZmZmZmZmZmZmZmMTY2MDA1NjAxMDkwNTQ5MDYxMDEwMDBhOTAwNDYzZmZmZmZmZmYxNjg3ODc2MTI0NjY1NjViOTE1MDkxNTA3ZjkwYTVjZjRjZmZlODhiNGVkYmIwNDFjZmM3YThhODEyYzQ4YTVlYzMwYjg0NjQwZmIzNzY5MDg3NTE2OGUzYWE4MjYwNDA1MTYxMTYxZDkxOTA2MTNiMmQ1NjViNjA0MDUxODA5MTAzOTBhMTYwMTY2MDAzMGI4MjE0NjExNjM1NTc2MDAwODBmZDViN2Y3YmIxNzcyNmRmMWYzYWRlZThhYTAwYmE4ZThiYzVkNmYxODJhZjNiYmY3NzYwNDYzOWNiN2YwMDhkZDNiNGVkODE2MDQwNTE2MTE2NjQ5MTkwNjEzYTM2NTY1YjYwNDA1MTgwOTEwMzkwYTE1MDUwNTA1MDUwNTA1MDUwNTA1NjViNjAwMDgwNjAwMDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjM5YjIzZDNkOTYwZTAxYjg4ODg4ODg4NjA0MDUxNjAyNDAxNjExNmI0OTQ5MzkyOTE5MDYxM2E3YTU2NWI2MDQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI5MDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTE3MWU5MTkwNjEzYTFmNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NjVhZjE5MTUwNTAzZDgwNjAwMDgxMTQ2MTE3NWI1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTE3NjA1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA4MTYxMTc3MTU3NjAxNTYxMTc4NjU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMTc4NTkxOTA2MTMxNTg1NjViNWI2MDAzMGI5MjUwNTA1MDk0OTM1MDUwNTA1MDU2NWI2MDAwNjAwNTY3ZmZmZmZmZmZmZmZmZmZmZjgxMTExNTYxMTdiMjU3NjExN2IxNjE0MTkyNTY1YjViNjA0MDUxOTA4MDgyNTI4MDYwMjAwMjYwMjAwMTgyMDE2MDQwNTI4MDE1NjExN2ViNTc4MTYwMjAwMTViNjExN2Q4NjEyYjAwNTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMTdkMDU3OTA1MDViNTA5MDUwNjExODBjNjAwMDYwMDY2MDAwNjA0MDUxODA2MDIwMDE2MDQwNTI4MDYwMDA4MTUyNTA2MTFkNTA1NjViODE2MDAwODE1MTgxMTA2MTE4MjA1NzYxMTgxZjYxNDE2MzU2NWI1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA2MTE4NDc2MDAxNjAwMDYwNDA1MTgwNjAyMDAxNjA0MDUyODA2MDAwODE1MjUwNjExZDg5NTY1YjgxNjAwMTgxNTE4MTEwNjExODViNTc2MTE4NWE2MTQxNjM1NjViNWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNjExODgyNjAwMjYwMDA2MDQwNTE4MDYwMjAwMTYwNDA1MjgwNjAwMDgxNTI1MDYxMWQ4OTU2NWI4MTYwMDI4MTUxODExMDYxMTg5NjU3NjExODk1NjE0MTYzNTY1YjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDYxMThiZDYwMDQ2MDAwNjA0MDUxODA2MDIwMDE2MDQwNTI4MDYwMDA4MTUyNTA2MTFkODk1NjViODE2MDAzODE1MTgxMTA2MTE4ZDE1NzYxMThkMDYxNDE2MzU2NWI1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA2MTE4Zjg2MDAzNjAwMDYwNDA1MTgwNjAyMDAxNjA0MDUyODA2MDAwODE1MjUwNjExZDg5NTY1YjgxNjAwNDgxNTE4MTEwNjExOTBjNTc2MTE5MGI2MTQxNjM1NjViNWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNjAwMDYwNDA1MTgwNjA2MDAxNjA0MDUyODA2MDAwNjNmZmZmZmZmZjE2ODE1MjYwMjAwMTg0NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4MTUyNjAyMDAxNjI3YTEyMDA2M2ZmZmZmZmZmMTY4MTUyNTA5MDUwNjAwMDYwNDA1MTgwNjEwMTIwMDE2MDQwNTI4MDYwMDI4MDU0NjExOTc3OTA2MTQwYTI1NjViODA2MDFmMDE2MDIwODA5MTA0MDI2MDIwMDE2MDQwNTE5MDgxMDE2MDQwNTI4MDkyOTE5MDgxODE1MjYwMjAwMTgyODA1NDYxMTlhMzkwNjE0MGEyNTY1YjgwMTU2MTE5ZjA1NzgwNjAxZjEwNjExOWM1NTc2MTAxMDA4MDgzNTQwNDAyODM1MjkxNjAyMDAxOTE2MTE5ZjA1NjViODIwMTkxOTA2MDAwNTI2MDIwNjAwMDIwOTA1YjgxNTQ4MTUyOTA2MDAxMDE5MDYwMjAwMTgwODMxMTYxMTlkMzU3ODI5MDAzNjAxZjE2ODIwMTkxNWI1MDUwNTA1MDUwODE1MjYwMjAwMTYwMDM4MDU0NjExYTA3OTA2MTQwYTI1NjViODA2MDFmMDE2MDIwODA5MTA0MDI2MDIwMDE2MDQwNTE5MDgxMDE2MDQwNTI4MDkyOTE5MDgxODE1MjYwMjAwMTgyODA1NDYxMWEzMzkwNjE0MGEyNTY1YjgwMTU2MTFhODA1NzgwNjAxZjEwNjExYTU1NTc2MTAxMDA4MDgzNTQwNDAyODM1MjkxNjAyMDAxOTE2MTFhODA1NjViODIwMTkxOTA2MDAwNTI2MDIwNjAwMDIwOTA1YjgxNTQ4MTUyOTA2MDAxMDE5MDYwMjAwMTgwODMxMTYxMWE2MzU3ODI5MDAzNjAxZjE2ODIwMTkxNWI1MDUwNTA1MDUwODE1MjYwMjAwMTg1NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4MTUyNjAyMDAxNjAwNDgwNTQ2MTFhYjM5MDYxNDBhMjU2NWI4MDYwMWYwMTYwMjA4MDkxMDQwMjYwMjAwMTYwNDA1MTkwODEwMTYwNDA1MjgwOTI5MTkwODE4MTUyNjAyMDAxODI4MDU0NjExYWRmOTA2MTQwYTI1NjViODAxNTYxMWIyYzU3ODA2MDFmMTA2MTFiMDE1NzYxMDEwMDgwODM1NDA0MDI4MzUyOTE2MDIwMDE5MTYxMWIyYzU2NWI4MjAxOTE5MDYwMDA1MjYwMjA2MDAwMjA5MDViODE1NDgxNTI5MDYwMDEwMTkwNjAyMDAxODA4MzExNjExYjBmNTc4MjkwMDM2MDFmMTY4MjAxOTE1YjUwNTA1MDUwNTA4MTUyNjAyMDAxNjAwMTE1MTU=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw/1ISB7YhEyZUhWnZVrhB7EGPm46j7bnCvnLlLj9GDtdlJVIZhx6K52OA536QG3bRGgwI2/WErQYQ+7m+owEiDwoJCJ/1hK0GEIkIEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQif9YStBhCPCBICGAISAhgDGPfR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxiTDyKAIDgxNTI2MDIwMDE2MDA1NjAwODkwNTQ5MDYxMDEwMDBhOTAwNDYwMDcwYjYwMDcwYjgxNTI2MDIwMDE2MDA1NjAxNDkwNTQ5MDYxMDEwMDBhOTAwNDYwZmYxNjE1MTU4MTUyNjAyMDAxODQ4MTUyNjAyMDAxODM4MTUyNTA5MDUwNjAwMDgwNjExYjg2ODM2MTI1ZWI1NjViOTE1MDkxNTA2MDE2NjAwMzBiODIxNDYxMWI5YTU3NjAwMDgwZmQ1YjdmN2JiMTc3MjZkZjFmM2FkZWU4YWEwMGJhOGU4YmM1ZDZmMTgyYWYzYmJmNzc2MDQ2MzljYjdmMDA4ZGQzYjRlZDgxNjA0MDUxNjExYmM5OTE5MDYxM2EzNjU2NWI2MDQwNTE4MDkxMDM5MGExNTA1MDUwNTA1MDUwNTY1YjYwMDA4MDYwMDA2MTAxNjc3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzMTVkYWNiZWE2MGUwMWI4ODg4ODg4ODYwNDA1MTYwMjQwMTYxMWMxNjk0OTM5MjkxOTA2MTNhN2E1NjViNjA0MDUxNjAyMDgxODMwMzAzODE1MjkwNjA0MDUyOTA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjExYzgwOTE5MDYxM2ExZjU2NWI2MDAwNjA0MDUxODA4MzAzODE4NTVhZjQ5MTUwNTAzZDgwNjAwMDgxMTQ2MTFjYmI1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTFjYzA1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA4MTYxMWNkMTU3NjAxNTYxMWNlNjU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMWNlNTkxOTA2MTMxNTg1NjViNWI2MDAzMGI5MjUwNTA1MDk0OTM1MDUwNTA1MDU2NWI2MDAwNjExZDAxODM4MzYxMjc2MzU2NWI5MDUwN2Y5MGE1Y2Y0Y2ZmZTg4YjRlZGJiMDQxY2ZjN2E4YTgxMmM0OGE1ZWMzMGI4NDY0MGZiMzc2OTA4NzUxNjhlM2FhODE2MDQwNTE2MTFkMzI5MTkwNjEzYjJkNTY1YjYwNDA1MTgwOTEwMzkwYTE2MDE2NjAwMzBiODExNDYxMWQ0YTU3NjAwMDgwZmQ1YjkyOTE1MDUwNTY1YjYxMWQ1ODYxMmIwMDU2NWI2MDQwNTE4MDYwNDAwMTYwNDA1MjgwNjExZDZkODc4NzYxMjg3YjU2NWI4MTUyNjAyMDAxNjExZDdjODU4NTYxMjhkMTU2NWI4MTUyNTA5MDUwOTQ5MzUwNTA1MDUwNTY1YjYxMWQ5MTYxMmIwMDU2NWI2MDQwNTE4MDYwNDAwMTYwNDA1MjgwNjExZGE1ODY2MTJhYWI1NjViODE1MjYwMjAwMTYxMWRiNDg1ODU2MTI4ZDE1NjViODE1MjUwOTA1MDkzOTI1MDUwNTA1NjViNjAwMDgwODQ2MDAwODE2MTAxMDAwMTUxNjAwMDAxNTE2M2ZmZmZmZmZmMTYxNDgwMTU2MTFkZjI1NzUwNjAwMDgxNjEwMTAwMDE1MTYwNDAwMTUxNjNmZmZmZmZmZjE2MTQ1YjE1NjExZTE4NTc2Mjc2YTcwMDgxNjEwMTAwMDE1MTYwNDAwMTkwNjNmZmZmZmZmZjE2OTA4MTYzZmZmZmZmZmYxNjgxNTI1MDUwNWI2MDAwODA2MTAxNjc3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjM0NjM0NTczMzk2OTYwZTAxYjhhOGE4YTYwNDA1MTYwMjQwMTYxMWU1MjkzOTI5MTkwNjEzYmRlNTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMWViYzkxOTA2MTNhMWY1NjViNjAwMDYwNDA1MTgwODMwMzgxODU4NzVhZjE5MjUwNTA1MDNkODA2MDAwODExNDYxMWVmOTU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMWVmZTU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjExZjExNTc2MDE1NjAwMDYxMWYyNjU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMWYyNTkxOTA2MTMxODU1NjViNWI4MTYwMDMwYjkxNTA4MDk1NTA4MTk2NTA1MDUwNTA1MDUwOTM1MDkzOTE1MDUwNTY1YjYwMDA4MDYwMDA2MTAxNjc3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzOGY4ZDdmOTk2MGUwMWI4Njg2NjA0MDUxNjAyNDAxNjExZjc4OTI5MTkwNjEzYTUxNTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMWZlMjkxOTA2MTNhMWY1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMjAxZjU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMjAyNDU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEyMDM1NTc2MDE1NjEyMDRhNTY1YjgwODA2MDIwMDE5MDUxODEwMTkwNjEyMDQ5OTE5MDYxMzE1ODU2NWI1YjYwMDMwYjkyNTA1MDUwOTI5MTUwNTA1NjViNjAwMDgwNjAwMDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjMyZTYzODc5YjYwZTAxYjg2ODY2MDQwNTE2MDI0MDE2MTIwOTA5MjkxOTA2MTNhYmY1NjViNjA0MDUxNjAyMDgxODMwMzAzODE1MjkwNjA0MDUyOTA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjEyMGZhOTE5MDYxM2ExZjU2NWI2MDAwNjA0MDUxODA4MzAzODE2MDAwODY1YWYxOTE1MDUwM2Q4MDYwMDA4MTE0NjEyMTM3NTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjEyMTNjNTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTIxNGQ1NzYwMTU2MTIxNjI1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTIxNjE5MTkwNjEzMTU4NTY1YjViNjAwMzBiOTI1MDUwNTA5MjkxNTA1MDU2NWI2MDAwODA4NDYwMDA4MTYxMDEwMDAxNTE2MDAwMDE1MTYzZmZmZmZmZmYxNjE0ODAxNTYxMjFhMTU3NTA2MDAwODE2MTAxMDAwMTUxNjA0MDAxNTE2M2ZmZmZmZmZmMTYxNDViMTU2MTIxYzc1NzYyNzZhNzAwODE2MTAxMDAwMTUxNjA0MDAxOTA2M2ZmZmZmZmZmMTY5MDgxNjNmZmZmZmZmZjE2ODE1MjUwNTA1YjYwMDA4MDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2MzQ2M2MyM2JhZWI2NjBlMDFiOGE4YThhNjA0MDUxNjAyNDAxNjEyMjAxOTM5MjkxOTA2MTNjMmE1NjViNjA0MDUxNjAyMDgxODMwMzAzODE1MjkwNjA0MDUyOTA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjEyMjZiOTE5MDYxM2ExZjU2NWI2MDAwNjA0MDUxODA4MzAzODE4NTg3NWFmMTkyNTA1MDUwM2Q4MDYwMDA4MTE0NjEyMmE4NTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjEyMmFkNTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTIyYzA1NzYwMTU2MDAwNjEyMmQ1NTY1YjgwODA2MDIwMDE5MDUxODEwMTkwNjEyMmQ0OTE5MDYxMzE4NTU2NWI1YjgxNjAwMzBiOTE1MDgwOTU1MDgxOTY1MDUwNTA1MDUwNTA5MzUwOTM5MTUwNTA1NjViNjAwMDgwNjA2MDYwMDA4MDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjMyNzhlMGI4ODYwZTAxYjg5ODk4OTYwNDA1MTYwMjQwMTYxMjMyYzkzOTI5MTkwNjEzYWVmNTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw8yJFmPsetlo/u9D+jAyVwR0U/879W2Xj0cCP4eprXzoNmzs0kOzCS2soCxkJ8yodGgwI2/WErQYQi6mcpQMiDwoJCJ/1hK0GEI8IEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQig9YStBhCVCBICGAISAhgDGPbR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxiTDyKAIDUyOTA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjEyMzk2OTE5MDYxM2ExZjU2NWI2MDAwNjA0MDUxODA4MzAzODE2MDAwODY1YWYxOTE1MDUwM2Q4MDYwMDA4MTE0NjEyM2QzNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjEyM2Q4NTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTI0MzQ1NzYwMTU2MDAwODA2N2ZmZmZmZmZmZmZmZmZmZmY4MTExMTU2MTI0MDA1NzYxMjNmZjYxNDE5MjU2NWI1YjYwNDA1MTkwODA4MjUyODA2MDIwMDI2MDIwMDE4MjAxNjA0MDUyODAxNTYxMjQyZTU3ODE2MDIwMDE2MDIwODIwMjgwMzY4MzM3ODA4MjAxOTE1MDUwOTA1MDViNTA2MTI0NDk1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTI0NDg5MTkwNjEzMWM1NTY1YjViODI2MDAzMGI5MjUwODA5NTUwODE5NjUwODI5NzUwNTA1MDUwNTA1MDkzNTA5MzUwOTM5MDUwNTY1YjYwMDA4MDg2NjAwMDgxNjEwMTAwMDE1MTYwMDAwMTUxNjNmZmZmZmZmZjE2MTQ4MDE1NjEyNDk4NTc1MDYwMDA4MTYxMDEwMDAxNTE2MDQwMDE1MTYzZmZmZmZmZmYxNjE0NWIxNTYxMjRiZTU3NjI3NmE3MDA4MTYxMDEwMDAxNTE2MDQwMDE5MDYzZmZmZmZmZmYxNjkwODE2M2ZmZmZmZmZmMTY4MTUyNTA1MDViNjAwMDgwNjEwMTY3NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTYzNDYzYjkzNzU4MWE2MGUwMWI4YzhjOGM4YzhjNjA0MDUxNjAyNDAxNjEyNGZjOTU5NDkzOTI5MTkwNjEzYzY4NTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMjU2NjkxOTA2MTNhMWY1NjViNjAwMDYwNDA1MTgwODMwMzgxODU4NzVhZjE5MjUwNTA1MDNkODA2MDAwODExNDYxMjVhMzU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMjVhODU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEyNWJiNTc2MDE1NjAwMDYxMjVkMDU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMjVjZjkxOTA2MTMxODU1NjViNWI4MTYwMDMwYjkxNTA4MDk1NTA4MTk2NTA1MDUwNTA1MDUwOTU1MDk1OTM1MDUwNTA1MDU2NWI2MDAwODA4MjYwMDA4MTYxMDEwMDAxNTE2MDAwMDE1MTYzZmZmZmZmZmYxNjE0ODAxNTYxMjYxZDU3NTA2MDAwODE2MTAxMDAwMTUxNjA0MDAxNTE2M2ZmZmZmZmZmMTYxNDViMTU2MTI2NDM1NzYyNzZhNzAwODE2MTAxMDAwMTUxNjA0MDAxOTA2M2ZmZmZmZmZmMTY5MDgxNjNmZmZmZmZmZjE2ODE1MjUwNTA1YjYwMDA4MDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2MzQ2MzljODliYjM1NjBlMDFiODg2MDQwNTE2MDI0MDE2MTI2Nzk5MTkwNjEzYmJjNTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMjZlMzkxOTA2MTNhMWY1NjViNjAwMDYwNDA1MTgwODMwMzgxODU4NzVhZjE5MjUwNTA1MDNkODA2MDAwODExNDYxMjcyMDU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMjcyNTU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEyNzM4NTc2MDE1NjAwMDYxMjc0ZDU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMjc0YzkxOTA2MTMxODU1NjViNWI4MTYwMDMwYjkxNTA4MDk1NTA4MTk2NTA1MDUwNTA1MDUwOTE1MDkxNTY1YjYwMDA4MDYwMDA2MTAxNjc3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzNDkxNDZiZGU2MGUwMWI4Njg2NjA0MDUxNjAyNDAxNjEyNzljOTI5MTkwNjEzYTUxNTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMjgwNjkxOTA2MTNhMWY1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMjg0MzU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMjg0ODU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEyODU5NTc2MDE1NjEyODZlNTY1YjgwODA2MDIwMDE5MDUxODEwMTkwNjEyODZkOTE5MDYxMzE1ODU2NWI1YjYwMDMwYjkyNTA1MDUwOTI5MTUwNTA1NjViNjAwMDYxMjhhMjgzNjAwNjgxMTExNTYxMjg5MzU3NjEyODkyNjE0MTA1NTY1YjViODI2MTJhZWM5MDkxOTA2M2ZmZmZmZmZmMTY1NjViOTA1MDYxMjhjOTgyNjAwNjgxMTExNTYxMjhiYTU3NjEyOGI5NjE0MTA1NTY1YjViODI2MTJhZWM5MDkxOTA2M2ZmZmZmZmZmMTY1NjViOTA1MDkyOTE1MDUwNTY1YjYxMjhkOTYxMmM2MTU2NWI2MDAwNjAwNDgxMTExNTYxMjhlZDU3NjEyOGVjNjE0MTA1NTY1YjViODM2MDA0ODExMTE1NjEyOTAwNTc2MTI4ZmY2MTQxMDU1NjViNWIxNDE1NjEyOTFjNTc2MDAxODE2MDAwMDE5MDE1MTU5MDgxMTUxNTgxNTI1MDUwNjEyYWE1NTY1YjYwMDE2MDA0ODExMTE1NjEyOTMwNTc2MTI5MmY2MTQxMDU1NjViNWI4MzYwMDQ4MTExMTU2MTI5NDM1NzYxMjk0MjYxNDEwNTU2NWI1YjE0MTU2MTI5YTY1NzYwMDA4MDU0OTA2MTAxMDAwYTkwMDQ3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjgxNjAyMDAxOTA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjkwODE3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjgxNTI1MDUwNjEyYWE0NTY1YjYwMDI2MDA0ODExMTE1NjEyOWJhNTc2MTI5Yjk2MTQxMDU1NjViNWI4MzYwMDQ4MTExMTU2MTI5Y2Q1NzYxMjljYzYxNDEwNTU2NWI1YjE0MTU2MTI5ZTE1NzgxODE2MDQwMDE4MTkwNTI1MDYxMmFhMzU2NWI2MDAzNjAwNDgxMTExNTYxMjlmNTU3NjEyOWY0NjE0MTA1NTY1YjViODM2MDA0ODExMTE1NjEyYTA4NTc2MTJhMDc2MTQxMDU1NjViNWIxNDE1NjEyYTFjNTc4MTgxNjA2MDAxODE5MDUyNTA2MTJhYTI1NjViNjAwNDgwODExMTE1NjEyYTJmNTc2MTJhMmU2MTQxMDU1NjViNWI4MzYwMDQ4MTExMTU2MTJhNDI1NzYxMmE0MTYxNDEwNTU2NWI1YjE0MTU2MTJhYTE1NzYwMDA4MDU0OTA2MTAxMDAwYTkwMDQ3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjgxNjA4MDAxOTA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjkwODE3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjgxNTI1MDUwNWI1YjViNWI1YjkyOTE1MDUwNTY1YjYwMDA2MDAxNjAwMDgzNjAwNjgxMTExNTYxMmFjNDU3NjEyYWMzNjE0MTA1NTY1YjViNjAwNjgxMTExNTYxMmFkNjU3NjEyYWQ1NjE0MTA1NTY1YjViODE1MjYwMjAwMTkwODE1MjYwMjAwMTYwMDAyMDU0OTA1MDkxOTA1MDU2NWI2MDAwODE2MGZmMTY2MDAxOTAxYjgzMTc5MDUwOTI5MTUwNTA1NjViNjA0MDUxODA2MDQwMDE2MDQwNTI4MDYwMDA4MTUyNjAyMDAxNjEyYjFhNjEyYzYxNTY1YjgxNTI1MDkwNTY1YjYwNDA1MTgwNjBhMDAxNjA0MDUyODA2MDAwNjNmZmZmZmZmZjE2ODE1MjYwMjAwMTYwMDA=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwykUcVV3nxIrOmZoOAMN02n5I+auC9s5pMf7MV20OY9ygxnU5vVWdmh44A4y+DZaVGgwI3PWErQYQm6axrQEiDwoJCKD1hK0GEJUIEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQig9YStBhCbCBICGAISAhgDGPbR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxiTDyKAIDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ODE1MjYwMjAwMTYwMDAxNTE1ODE1MjYwMjAwMTYwMDAxNTE1ODE1MjYwMjAwMTYwMDA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjgxNTI1MDkwNTY1YjYwNDA1MTgwNjBjMDAxNjA0MDUyODA2MDAwNjNmZmZmZmZmZjE2ODE1MjYwMjAwMTYwMDA2M2ZmZmZmZmZmMTY4MTUyNjAyMDAxNjAwMDYzZmZmZmZmZmYxNjgxNTI2MDIwMDE2MDAwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4MTUyNjAyMDAxNjAwMDE1MTU4MTUyNjAyMDAxNjAwMDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ODE1MjUwOTA1NjViNjA0MDUxODA2MGMwMDE2MDQwNTI4MDYwMDA2M2ZmZmZmZmZmMTY4MTUyNjAyMDAxNjAwMDYzZmZmZmZmZmYxNjgxNTI2MDIwMDE2MDAwNjNmZmZmZmZmZjE2ODE1MjYwMjAwMTYwMDA2M2ZmZmZmZmZmMTY4MTUyNjAyMDAxNjAwMDE1MTU4MTUyNjAyMDAxNjAwMDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ODE1MjUwOTA1NjViNjA0MDUxODA2MGEwMDE2MDQwNTI4MDYwMDAxNTE1ODE1MjYwMjAwMTYwMDA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjgxNTI2MDIwMDE2MDYwODE1MjYwMjAwMTYwNjA4MTUyNjAyMDAxNjAwMDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ODE1MjUwOTA1NjViNjAwMDYxMmNkMTYxMmNjYzg0NjEzZDI1NTY1YjYxM2QwMDU2NWI5MDUwODA4MzgyNTI2MDIwODIwMTkwNTA4Mjg1NjAyMDg2MDI4MjAxMTExNTYxMmNmNDU3NjEyY2YzNjE0MWM2NTY1YjViNjAwMDViODU4MTEwMTU2MTJkMjQ1NzgxNjEyZDBhODg4MjYxMmU2ZTU2NWI4NDUyNjAyMDg0MDE5MzUwNjAyMDgzMDE5MjUwNTA2MDAxODEwMTkwNTA2MTJjZjc1NjViNTA1MDUwOTM5MjUwNTA1MDU2NWI2MDAwNjEyZDQxNjEyZDNjODQ2MTNkNTE1NjViNjEzZDAwNTY1YjkwNTA4MDgzODI1MjYwMjA4MjAxOTA1MDgyODU2MDIwODYwMjgyMDExMTE1NjEyZDY0NTc2MTJkNjM2MTQxYzY1NjViNWI2MDAwNWI4NTgxMTAxNTYxMmRiMjU3ODEzNTY3ZmZmZmZmZmZmZmZmZmZmZjgxMTExNTYxMmQ4YTU3NjEyZDg5NjE0MWMxNTY1YjViODA4NjAxNjEyZDk3ODk4MjYxMmYyMjU2NWI4NTUyNjAyMDg1MDE5NDUwNjAyMDg0MDE5MzUwNTA1MDYwMDE4MTAxOTA1MDYxMmQ2NzU2NWI1MDUwNTA5MzkyNTA1MDUwNTY1YjYwMDA2MTJkY2Y2MTJkY2E4NDYxM2Q3ZDU2NWI2MTNkMDA1NjViOTA1MDgwODM4MjUyNjAyMDgyMDE5MDUwODI4NTYwMjA4NjAyODIwMTExMTU2MTJkZjI1NzYxMmRmMTYxNDFjNjU2NWI1YjYwMDA1Yjg1ODExMDE1NjEyZTIyNTc4MTYxMmUwODg4ODI2MTJmNjU1NjViODQ1MjYwMjA4NDAxOTM1MDYwMjA4MzAxOTI1MDUwNjAwMTgxMDE5MDUwNjEyZGY1NTY1YjUwNTA1MDkzOTI1MDUwNTA1NjViNjAwMDYxMmUzZjYxMmUzYTg0NjEzZGE5NTY1YjYxM2QwMDU2NWI5MDUwODI4MTUyNjAyMDgxMDE4NDg0ODQwMTExMTU2MTJlNWI1NzYxMmU1YTYxNDFjYjU2NWI1YjYxMmU2Njg0ODI4NTYxNDA2MDU2NWI1MDkzOTI1MDUwNTA1NjViNjAwMDgxMzU5MDUwNjEyZTdkODE2MTQxZWI1NjViOTI5MTUwNTA1NjViNjAwMDgxNTE5MDUwNjEyZTkyODE2MTQyMDI1NjViOTI5MTUwNTA1NjViNjAwMDgyNjAxZjgzMDExMjYxMmVhZDU3NjEyZWFjNjE0MWMxNTY1YjViODEzNTYxMmViZDg0ODI2MDIwODYwMTYxMmNiZTU2NWI5MTUwNTA5MjkxNTA1MDU2NWI2MDAwODI2MDFmODMwMTEyNjEyZWRiNTc2MTJlZGE2MTQxYzE1NjViNWI4MTM1NjEyZWViODQ4MjYwMjA4NjAxNjEyZDJlNTY1YjkxNTA1MDkyOTE1MDUwNTY1YjYwMDA4MjYwMWY4MzAxMTI2MTJmMDk1NzYxMmYwODYxNDFjMTU2NWI1YjgxNTE2MTJmMTk4NDgyNjAyMDg2MDE2MTJkYmM1NjViOTE1MDUwOTI5MTUwNTA1NjViNjAwMDgyNjAxZjgzMDExMjYxMmYzNzU3NjEyZjM2NjE0MWMxNTY1YjViODEzNTYxMmY0Nzg0ODI2MDIwODYwMTYxMmUyYzU2NWI5MTUwNTA5MjkxNTA1MDU2NWI2MDAwODE1MTkwNTA2MTJmNWY4MTYxNDIxOTU2NWI5MjkxNTA1MDU2NWI2MDAwODE1MTkwNTA2MTJmNzQ4MTYxNDIzMDU2NWI5MjkxNTA1MDU2NWI2MDAwODEzNTkwNTA2MTJmODk4MTYxNDI0NzU2NWI5MjkxNTA1MDU2NWI2MDAwODEzNTkwNTA2MTJmOWU4MTYxNDI1ZTU2NWI5MjkxNTA1MDU2NWI2MDAwODE1MTkwNTA2MTJmYjM4MTYxNDI1ZTU2NWI5MjkxNTA1MDU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTJmY2Y1NzYxMmZjZTYxNDFkNTU2NWI1YjYwMDA2MTJmZGQ4NDgyODUwMTYxMmU2ZTU2NWI5MTUwNTA5MjkxNTA1MDU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMmZmZDU3NjEyZmZjNjE0MWQ1NTY1YjViNjAwMDYxMzAwYjg1ODI4NjAxNjEyZTZlNTY1YjkyNTA1MDYwMjA2MTMwMWM4NTgyODYwMTYxMmU2ZTU2NWI5MTUwNTA5MjUwOTI5MDUwNTY1YjYwMDA4MDYwMDA4MDYwODA4NTg3MDMxMjE1NjEzMDQwNTc2MTMwM2Y2MTQxZDU1NjViNWI2MDAwNjEzMDRlODc4Mjg4MDE2MTJlNmU1NjViOTQ1MDUwNjAyMDYxMzA1Zjg3ODI4ODAxNjEyZTZlNTY1YjkzNTA1MDYwNDA2MTMwNzA4NzgyODgwMTYxMmU2ZTU2NWI5MjUwNTA2MDYwNjEzMDgxODc4Mjg4MDE2MTJmN2E1NjViOTE1MDUwOTI5NTkxOTQ1MDkyNTA1NjViNjAwMDgwNjA0MDgzODUwMzEyMTU2MTMwYTQ1NzYxMzBhMzYxNDFkNTU2NWI1YjYwMDA2MTMwYjI4NTgyODYwMTYxMmU2ZTU2NWI5MjUwNTA2MDIwODMwMTM1NjdmZmZmZmZmZmZmZmZmZmZmODExMTE1NjEzMGQzNTc2MTMwZDI2MTQxZDA1NjViNWI2MTMwZGY4NTgyODYwMTYxMmU5ODU2NWI5MTUwNTA5MjUwOTI5MDUwNTY1YjYwMDA4MDYwMDA2MDYwODQ4NjAzMTIxNTYxMzEwMjU3NjEzMTAxNjE0MWQ1NTY1YjViNjAwMDYxMzExMDg2ODI4NzAxNjEyZTZlNTY1YjkzNTA1MDYwMjA2MTMxMjE4NjgyODcwMTYxMmY4ZjU2NWI5MjUwNTA2MDQwODQwMTM1NjdmZmZmZmZmZmZmZmZmZmZmODExMTE1NjEzMTQyNTc2MTMxNDE2MTQxZDA1NjViNWI2MTMxNGU4NjgyODcwMTYxMmVjNjU2NWI5MTUwNTA5MjUwOTI1MDkyNTY1YjYwMDA2MDIwODI4NDAzMTIxNTYxMzE2ZTU3NjEzMTZkNjE0MWQ1NTY1YjViNjAwMDYxMzE3Yzg0ODI4NTAxNjEyZjUwNTY1YjkxNTA1MDkyOTE1MDUwNTY1YjYwMDA4MDYwNDA4Mzg1MDMxMjE1NjEzMTljNTc2MTMxOWI2MTQxZDU1NjViNWI2MDAwNjEzMWFhODU4Mjg2MDE2MTJmNTA1NjViOTI1MDUwNjAyMDYxMzFiYjg1ODI4NjAxNjEyZTgzNTY1YjkxNTA1MDkyNTA5MjkwNTA1NjViNjAwMDgwNjAwMDYwNjA4NDg2MDMxMjE1NjEzMWRlNTc2MTMxZGQ2MTQxZDU1NjViNWI2MDAwNjEzMWVjODY4Mjg3MDE2MTJmNTA1NjViOTM1MDUwNjAyMDYxMzFmZDg2ODI4NzAxNjEyZmE0NTY1YjkyNTA1MDYwNDA4NDAxNTE2N2ZmZmZmZmZmZmZmZmZmZmY4MTExMTU2MTMyMWU1NzYxMzIxZDYxNDFkMDU2NWI1YjYxMzIyYTg2ODI4NzAxNjEyZWY0NTY1YjkxNTA1MDkyNTA5MjUwOTI1NjViNjAwMDYxMzI0MDgzODM2MTMyZDQ1NjViNjAyMDgzMDE5MDUwOTI5MTUwNTA1NjViNjAwMDYxMzI1ODgzODM2MTM1YzE1NjViOTA1MDkyOTE1MDUwNTY1YjYwMDA2MTMyNmM4MzgzNjEzNjQ5NTY1YjYwMjA4MzAxOTA1MDkyOTE1MDUwNTY1YjYwMDA2MTMyODQ4MzgzNjEzNmUyNTY1YjYwYTA4MzAxOTA1MDkyOTE1MDUwNTY1YjYwMDA2MTMyOWM4MzgzNjEzNzRhNTY1YjYwYzA4MzAxOTA1MDkyOTE1MDUwNTY1YjYwMDA2MTMyYjQ4MzgzNjEzOTFjNTY1YjYwYzA4MzAxOTA1MDkyOTE1MDUwNTY1YjYwMDA2MTMyY2M4MzgzNjEzOTk3NTY1YjkwNTA5MjkxNTA1MDU2NWI2MTMyZGQ4MTYxM2ZhYzU2NWI4MjUyNTA1MDU2NWI2MTMyZWM4MTYxM2ZhYzU2NWI4MjUyNTA1MDU2NWI2MDAwNjEzMmZkODI2MTNlNGE1NjViNjEzMzA3ODE4NTYxM2YwODU2NWI5MzUwNjEzMzEyODM2MTNkZGE1NjViODA2MDAwNWI4MzgxMTAxNTYxMzM0MzU3ODE1MTYxMzMyYTg4ODI2MTMyMzQ1NjViOTc1MDYxMzMzNTgzNjEzZWFkNTY1YjkyNTA1MDYwMDE=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw8kt09g8WQ/+QJOXCgVxoXfZjWOTKz67KF1FNbDhWTBEU57aawIQiK179DafYZnKqGgwI3PWErQYQ+97SrgMiDwoJCKD1hK0GEJsIEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQih9YStBhChCBICGAISAhgDGPbR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxiTDyKAIDgxMDE5MDUwNjEzMzE2NTY1YjUwODU5MzUwNTA1MDUwOTI5MTUwNTA1NjViNjAwMDYxMzM1YjgyNjEzZTU1NTY1YjYxMzM2NTgxODU2MTNmMTk1NjViOTM1MDgzNjAyMDgyMDI4NTAxNjEzMzc3ODU2MTNkZWE1NjViODA2MDAwNWI4NTgxMTAxNTYxMzNiMzU3ODQ4NDAzODk1MjgxNTE2MTMzOTQ4NTgyNjEzMjRjNTY1Yjk0NTA2MTMzOWY4MzYxM2ViYTU2NWI5MjUwNjAyMDhhMDE5OTUwNTA2MDAxODEwMTkwNTA2MTMzN2I1NjViNTA4Mjk3NTA4Nzk1NTA1MDUwNTA1MDUwOTI5MTUwNTA1NjViNjAwMDYxMzNkMDgyNjEzZTYwNTY1YjYxMzNkYTgxODU2MTNmMmE1NjViOTM1MDYxMzNlNTgzNjEzZGZhNTY1YjgwNjAwMDViODM4MTEwMTU2MTM0MTY1NzgxNTE2MTMzZmQ4ODgyNjEzMjYwNTY1Yjk3NTA2MTM0MDg4MzYxM2VjNzU2NWI5MjUwNTA2MDAxODEwMTkwNTA2MTMzZTk1NjViNTA4NTkzNTA1MDUwNTA5MjkxNTA1MDU2NWI2MDAwNjEzNDJlODI2MTNlNmI1NjViNjEzNDM4ODE4NTYxM2YzYjU2NWI5MzUwNjEzNDQzODM2MTNlMGE1NjViODA2MDAwNWI4MzgxMTAxNTYxMzQ3NDU3ODE1MTYxMzQ1Yjg4ODI2MTMyNzg1NjViOTc1MDYxMzQ2NjgzNjEzZWQ0NTY1YjkyNTA1MDYwMDE4MTAxOTA1MDYxMzQ0NzU2NWI1MDg1OTM1MDUwNTA1MDkyOTE1MDUwNTY1YjYwMDA2MTM0OGM4MjYxM2U3NjU2NWI2MTM0OTY4MTg1NjEzZjRjNTY1YjkzNTA2MTM0YTE4MzYxM2UxYTU2NWI4MDYwMDA1YjgzODExMDE1NjEzNGQyNTc4MTUxNjEzNGI5ODg4MjYxMzI5MDU2NWI5NzUwNjEzNGM0ODM2MTNlZTE1NjViOTI1MDUwNjAwMTgxMDE5MDUwNjEzNGE1NTY1YjUwODU5MzUwNTA1MDUwOTI5MTUwNTA1NjViNjAwMDYxMzRlYTgyNjEzZTgxNTY1YjYxMzRmNDgxODU2MTNmNWQ1NjViOTM1MDYxMzRmZjgzNjEzZTJhNTY1YjgwNjAwMDViODM4MTEwMTU2MTM1MzA1NzgxNTE2MTM1MTc4ODgyNjEzMmE4NTY1Yjk3NTA2MTM1MjI4MzYxM2VlZTU2NWI5MjUwNTA2MDAxODEwMTkwNTA2MTM1MDM1NjViNTA4NTkzNTA1MDUwNTA5MjkxNTA1MDU2NWI2MDAwNjEzNTQ4ODI2MTNlOGM1NjViNjEzNTUyODE4NTYxM2Y2ZTU2NWI5MzUwODM2MDIwODIwMjg1MDE2MTM1NjQ4NTYxM2UzYTU2NWI4MDYwMDA1Yjg1ODExMDE1NjEzNWEwNTc4NDg0MDM4OTUyODE1MTYxMzU4MTg1ODI2MTMyYzA1NjViOTQ1MDYxMzU4YzgzNjEzZWZiNTY1YjkyNTA2MDIwOGEwMTk5NTA1MDYwMDE4MTAxOTA1MDYxMzU2ODU2NWI1MDgyOTc1MDg3OTU1MDUwNTA1MDUwNTA5MjkxNTA1MDU2NWI2MTM1YmI4MTYxM2ZkMDU2NWI4MjUyNTA1MDU2NWI2MDAwNjEzNWNjODI2MTNlOTc1NjViNjEzNWQ2ODE4NTYxM2Y3ZjU2NWI5MzUwNjEzNWU2ODE4NTYwMjA4NjAxNjE0MDZmNTY1YjYxMzVlZjgxNjE0MWRhNTY1Yjg0MDE5MTUwNTA5MjkxNTA1MDU2NWI2MDAwNjEzNjA1ODI2MTNlOTc1NjViNjEzNjBmODE4NTYxM2Y5MDU2NWI5MzUwNjEzNjFmODE4NTYwMjA4NjAxNjE0MDZmNTY1YjgwODQwMTkxNTA1MDkyOTE1MDUwNTY1YjYxMzYzNDgxNjEzZmRjNTY1YjgyNTI1MDUwNTY1YjYxMzY0MzgxNjE0MDRlNTY1YjgyNTI1MDUwNTY1YjYxMzY1MjgxNjEzZmYzNTY1YjgyNTI1MDUwNTY1YjYxMzY2MTgxNjEzZmYzNTY1YjgyNTI1MDUwNTY1YjYwMDA2MTM2NzI4MjYxM2VhMjU2NWI2MTM2N2M4MTg1NjEzZjliNTY1YjkzNTA2MTM2OGM4MTg1NjAyMDg2MDE2MTQwNmY1NjViNjEzNjk1ODE2MTQxZGE1NjViODQwMTkxNTA1MDkyOTE1MDUwNTY1YjYwNjA4MjAxNjAwMDgyMDE1MTYxMzZiNjYwMDA4NTAxODI2MTM5ZjI1NjViNTA2MDIwODIwMTUxNjEzNmM5NjAyMDg1MDE4MjYxMzJkNDU2NWI1MDYwNDA4MjAxNTE2MTM2ZGM2MDQwODUwMTgyNjEzOWYyNTY1YjUwNTA1MDUwNTY1YjYwYTA4MjAxNjAwMDgyMDE1MTYxMzZmODYwMDA4NTAxODI2MTM5ZjI1NjViNTA2MDIwODIwMTUxNjEzNzBiNjAyMDg1MDE4MjYxMzJkNDU2NWI1MDYwNDA4MjAxNTE2MTM3MWU2MDQwODUwMTgyNjEzNWIyNTY1YjUwNjA2MDgyMDE1MTYxMzczMTYwNjA4NTAxODI2MTM1YjI1NjViNTA2MDgwODIwMTUxNjEzNzQ0NjA4MDg1MDE4MjYxMzJkNDU2NWI1MDUwNTA1MDU2NWI2MGMwODIwMTYwMDA4MjAxNTE2MTM3NjA2MDAwODUwMTgyNjEzOWYyNTY1YjUwNjAyMDgyMDE1MTYxMzc3MzYwMjA4NTAxODI2MTM5ZjI1NjViNTA2MDQwODIwMTUxNjEzNzg2NjA0MDg1MDE4MjYxMzlmMjU2NWI1MDYwNjA4MjAxNTE2MTM3OTk2MDYwODUwMTgyNjEzOWYyNTY1YjUwNjA4MDgyMDE1MTYxMzdhYzYwODA4NTAxODI2MTM1YjI1NjViNTA2MGEwODIwMTUxNjEzN2JmNjBhMDg1MDE4MjYxMzJkNDU2NWI1MDUwNTA1MDU2NWI2MDAwNjEwMTYwODMwMTYwMDA4MzAxNTE4NDgyMDM2MDAwODYwMTUyNjEzN2UzODI4MjYxMzY2NzU2NWI5MTUwNTA2MDIwODMwMTUxODQ4MjAzNjAyMDg2MDE1MjYxMzdmZDgyODI2MTM2Njc1NjViOTE1MDUwNjA0MDgzMDE1MTYxMzgxMjYwNDA4NjAxODI2MTMyZDQ1NjViNTA2MDYwODMwMTUxODQ4MjAzNjA2MDg2MDE1MjYxMzgyYTgyODI2MTM2Njc1NjViOTE1MDUwNjA4MDgzMDE1MTYxMzgzZjYwODA4NjAxODI2MTM1YjI1NjViNTA2MGEwODMwMTUxNjEzODUyNjBhMDg2MDE4MjYxMzY0OTU2NWI1MDYwYzA4MzAxNTE2MTM4NjU2MGMwODYwMTgyNjEzNWIyNTY1YjUwNjBlMDgzMDE1MTg0ODIwMzYwZTA4NjAxNTI2MTM4N2Q4MjgyNjEzNTNkNTY1YjkxNTA1MDYxMDEwMDgzMDE1MTYxMzg5NDYxMDEwMDg2MDE4MjYxMzZhMDU2NWI1MDgwOTE1MDUwOTI5MTUwNTA1NjViNjAwMDYwYTA4MzAxNjAwMDgzMDE1MTYxMzhiNzYwMDA4NjAxODI2MTM1YjI1NjViNTA2MDIwODMwMTUxNjEzOGNhNjAyMDg2MDE4MjYxMzJkNDU2NWI1MDYwNDA4MzAxNTE4NDgyMDM2MDQwODYwMTUyNjEzOGUyODI4MjYxMzVjMTU2NWI5MTUwNTA2MDYwODMwMTUxODQ4MjAzNjA2MDg2MDE1MjYxMzhmYzgyODI2MTM1YzE1NjViOTE1MDUwNjA4MDgzMDE1MTYxMzkxMTYwODA4NjAxODI2MTMyZDQ1NjViNTA4MDkxNTA1MDkyOTE1MDUwNTY1YjYwYzA4MjAxNjAwMDgyMDE1MTYxMzkzMjYwMDA4NTAxODI2MTM5ZjI1NjViNTA2MDIwODIwMTUxNjEzOTQ1NjAyMDg1MDE4MjYxMzlmMjU2NWI1MDYwNDA4MjAxNTE2MTM5NTg2MDQwODUwMTgyNjEzOWYyNTY1YjUwNjA2MDgyMDE1MTYxMzk2YjYwNjA4NTAxODI2MTMyZDQ1NjViNTA2MDgwODIwMTUxNjEzOTdlNjA4MDg1MDE4MjYxMzViMjU2NWI1MDYwYTA4MjAxNTE2MTM5OTE2MGEwODUwMTgyNjEzMmQ0NTY1YjUwNTA1MDUwNTY1YjYwMDA2MDQwODMwMTYwMDA4MzAxNTE2MTM5YWY2MDAwODYwMTgyNjEzOWQ0NTY1YjUwNjAyMDgzMDE1MTg0ODIwMzYwMjA4NjAxNTI2MTM5Yzc4MjgyNjEzODlmNTY1YjkxNTA1MDgwOTE1MDUwOTI5MTUwNTA1NjViNjEzOWRkODE2MTQwMjA1NjViODI1MjUwNTA1NjViNjEzOWVjODE2MTQwMjA1NjViODI1MjUwNTA1NjViNjEzOWZiODE2MTQwMmE1NjViODI1MjUwNTA1NjViNjEzYTBhODE2MTQwMmE1NjViODI1MjUwNTA1NjViNjEzYTE5ODE2MTQwM2E1NjViODI1MjUwNTA1NjViNjAwMDYxM2EyYjgyODQ2MTM1ZmE1NjViOTE1MDgxOTA1MDkyOTE1MDUwNTY1YjYwMDA2MDIwODIwMTkwNTA2MTNhNGI2MDAwODMwMTg0NjEzMmUzNTY1YjkyOTE1MDUwNTY1YjYwMDA2MDQwODIwMTkwNTA2MTNhNjY2MDAwODMwMTg1NjEzMmUzNTY1YjYxM2E3MzYwMjA4MzAxODQ2MTMyZTM1NjViOTM5MjUwNTA1MDU2NWI2MDAwNjA4MDgyMDE5MDUwNjEzYThmNjAwMDgzMDE4NzYxMzJlMzU2NWI2MTNhOWM2MDIwODMwMTg2NjEzMmUzNTY1YjYxM2FhOTYwNDA4MzAxODU2MTMyZTM1NjViNjEzYWI2NjA2MDgzMDE4NDYxMzllMzU2NWI5NTk0NTA1MDUwNTA1MDU2NWI2MDAwNjA0MDgyMDE5MDUwNjEzYWQ0NjAwMDgzMDE4NTYxMzJlMzU2NWI4MTgxMDM2MDIwODMwMTUyNjEzYWU2ODE4NDYxMzJmMjU2NWI5MDUwOTM5MjUwNTA1MDU2NWI2MDAwNjA2MDgyMDE5MDUwNjEzYjA0NjAwMDgzMDE4NjYxMzJlMzU2NWI2MTNiMTE2MDIwODMwMTg1NjEzYTEwNTY1YjgxODEwMzYwNDA4MzAxNTI2MTNiMjM4MTg0NjEzMzUwNTY1YjkwNTA5NDkzNTA1MDUwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDYxM2I0MjYwMDA=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwF0noWMOymGFvcDFIb51M4/TzoFAhqXM51qx7cM13MutLajLp9uFgO8auhfEDP0/5GgwI3fWErQYQm57stgEiDwoJCKH1hK0GEKEIEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQih9YStBhCnCBICGAISAhgDGPz3yD0iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIB6B0SAxiTDyLgHTgzMDE4NDYxMzYyYjU2NWI5MjkxNTA1MDU2NWI2MDAwNjA2MDgyMDE5MDUwNjEzYjVkNjAwMDgzMDE4NjYxMzYyYjU2NWI2MTNiNmE2MDIwODMwMTg1NjEzYTEwNTY1YjgxODEwMzYwNDA4MzAxNTI2MTNiN2M4MTg0NjEzM2M1NTY1YjkwNTA5NDkzNTA1MDUwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDYxM2I5YjYwMDA4MzAxODQ2MTM2M2E1NjViOTI5MTUwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDYxM2JiNjYwMDA4MzAxODQ2MTM2NTg1NjViOTI5MTUwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDgxODEwMzYwMDA4MzAxNTI2MTNiZDY4MTg0NjEzN2M1NTY1YjkwNTA5MjkxNTA1MDU2NWI2MDAwNjA2MDgyMDE5MDUwODE4MTAzNjAwMDgzMDE1MjYxM2JmODgxODY2MTM3YzU1NjViOTA1MDgxODEwMzYwMjA4MzAxNTI2MTNjMGM4MTg1NjEzNDIzNTY1YjkwNTA4MTgxMDM2MDQwODMwMTUyNjEzYzIwODE4NDYxMzRkZjU2NWI5MDUwOTQ5MzUwNTA1MDUwNTY1YjYwMDA2MDYwODIwMTkwNTA4MTgxMDM2MDAwODMwMTUyNjEzYzQ0ODE4NjYxMzdjNTU2NWI5MDUwNjEzYzUzNjAyMDgzMDE4NTYxM2ExMDU2NWI2MTNjNjA2MDQwODMwMTg0NjEzYTAxNTY1Yjk0OTM1MDUwNTA1MDU2NWI2MDAwNjBhMDgyMDE5MDUwODE4MTAzNjAwMDgzMDE1MjYxM2M4MjgxODg2MTM3YzU1NjViOTA1MDYxM2M5MTYwMjA4MzAxODc2MTNhMTA1NjViNjEzYzllNjA0MDgzMDE4NjYxM2EwMTU2NWI4MTgxMDM2MDYwODMwMTUyNjEzY2IwODE4NTYxMzQyMzU2NWI5MDUwODE4MTAzNjA4MDgzMDE1MjYxM2NjNDgxODQ2MTM0ODE1NjViOTA1MDk2OTU1MDUwNTA1MDUwNTA1NjViNjAwMDYwNDA4MjAxOTA1MDYxM2NlNTYwMDA4MzAxODU2MTNhMTA1NjViODE4MTAzNjAyMDgzMDE1MjYxM2NmNzgxODQ2MTMzYzU1NjViOTA1MDkzOTI1MDUwNTA1NjViNjAwMDYxM2QwYTYxM2QxYjU2NWI5MDUwNjEzZDE2ODI4MjYxNDBkNDU2NWI5MTkwNTA1NjViNjAwMDYwNDA1MTkwNTA5MDU2NWI2MDAwNjdmZmZmZmZmZmZmZmZmZmZmODIxMTE1NjEzZDQwNTc2MTNkM2Y2MTQxOTI1NjViNWI2MDIwODIwMjkwNTA2MDIwODEwMTkwNTA5MTkwNTA1NjViNjAwMDY3ZmZmZmZmZmZmZmZmZmZmZjgyMTExNTYxM2Q2YzU3NjEzZDZiNjE0MTkyNTY1YjViNjAyMDgyMDI5MDUwNjAyMDgxMDE5MDUwOTE5MDUwNTY1YjYwMDA2N2ZmZmZmZmZmZmZmZmZmZmY4MjExMTU2MTNkOTg1NzYxM2Q5NzYxNDE5MjU2NWI1YjYwMjA4MjAyOTA1MDYwMjA4MTAxOTA1MDkxOTA1MDU2NWI2MDAwNjdmZmZmZmZmZmZmZmZmZmZmODIxMTE1NjEzZGM0NTc2MTNkYzM2MTQxOTI1NjViNWI2MTNkY2Q4MjYxNDFkYTU2NWI5MDUwNjAyMDgxMDE5MDUwOTE5MDUwNTY1YjYwMDA4MTkwNTA2MDIwODIwMTkwNTA5MTkwNTA1NjViNjAwMDgxOTA1MDYwMjA4MjAxOTA1MDkxOTA1MDU2NWI2MDAwODE5MDUwNjAyMDgyMDE5MDUwOTE5MDUwNTY1YjYwMDA4MTkwNTA2MDIwODIwMTkwNTA5MTkwNTA1NjViNjAwMDgxOTA1MDYwMjA4MjAxOTA1MDkxOTA1MDU2NWI2MDAwODE5MDUwNjAyMDgyMDE5MDUwOTE5MDUwNTY1YjYwMDA4MTkwNTA2MDIwODIwMTkwNTA5MTkwNTA1NjViNjAwMDgxNTE5MDUwOTE5MDUwNTY1YjYwMDA4MTUxOTA1MDkxOTA1MDU2NWI2MDAwODE1MTkwNTA5MTkwNTA1NjViNjAwMDgxNTE5MDUwOTE5MDUwNTY1YjYwMDA4MTUxOTA1MDkxOTA1MDU2NWI2MDAwODE1MTkwNTA5MTkwNTA1NjViNjAwMDgxNTE5MDUwOTE5MDUwNTY1YjYwMDA4MTUxOTA1MDkxOTA1MDU2NWI2MDAwODE1MTkwNTA5MTkwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDkxOTA1MDU2NWI2MDAwNjAyMDgyMDE5MDUwOTE5MDUwNTY1YjYwMDA2MDIwODIwMTkwNTA5MTkwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDkxOTA1MDU2NWI2MDAwNjAyMDgyMDE5MDUwOTE5MDUwNTY1YjYwMDA2MDIwODIwMTkwNTA5MTkwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDkxOTA1MDU2NWI2MDAwODI4MjUyNjAyMDgyMDE5MDUwOTI5MTUwNTA1NjViNjAwMDgyODI1MjYwMjA4MjAxOTA1MDkyOTE1MDUwNTY1YjYwMDA4MjgyNTI2MDIwODIwMTkwNTA5MjkxNTA1MDU2NWI2MDAwODI4MjUyNjAyMDgyMDE5MDUwOTI5MTUwNTA1NjViNjAwMDgyODI1MjYwMjA4MjAxOTA1MDkyOTE1MDUwNTY1YjYwMDA4MjgyNTI2MDIwODIwMTkwNTA5MjkxNTA1MDU2NWI2MDAwODI4MjUyNjAyMDgyMDE5MDUwOTI5MTUwNTA1NjViNjAwMDgyODI1MjYwMjA4MjAxOTA1MDkyOTE1MDUwNTY1YjYwMDA4MTkwNTA5MjkxNTA1MDU2NWI2MDAwODI4MjUyNjAyMDgyMDE5MDUwOTI5MTUwNTA1NjViNjAwMDYxM2ZiNzgyNjE0MDAwNTY1YjkwNTA5MTkwNTA1NjViNjAwMDYxM2ZjOTgyNjE0MDAwNTY1YjkwNTA5MTkwNTA1NjViNjAwMDgxMTUxNTkwNTA5MTkwNTA1NjViNjAwMDgxOTA1MDkxOTA1MDU2NWI2MDAwODE2MDAzMGI5MDUwOTE5MDUwNTY1YjYwMDA4MTYwMDcwYjkwNTA5MTkwNTA1NjViNjAwMDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgyMTY5MDUwOTE5MDUwNTY1YjYwMDA4MTkwNTA5MTkwNTA1NjViNjAwMDYzZmZmZmZmZmY4MjE2OTA1MDkxOTA1MDU2NWI2MDAwNjdmZmZmZmZmZmZmZmZmZmZmODIxNjkwNTA5MTkwNTA1NjViNjAwMDYxNDA1OTgyNjEzZmYzNTY1YjkwNTA5MTkwNTA1NjViODI4MTgzMzc2MDAwODM4MzAxNTI1MDUwNTA1NjViNjAwMDViODM4MTEwMTU2MTQwOGQ1NzgwODIwMTUxODE4NDAxNTI2MDIwODEwMTkwNTA2MTQwNzI1NjViODM4MTExMTU2MTQwOWM1NzYwMDA4NDg0MDE1MjViNTA1MDUwNTA1NjViNjAwMDYwMDI4MjA0OTA1MDYwMDE4MjE2ODA2MTQwYmE1NzYwN2Y4MjE2OTE1MDViNjAyMDgyMTA4MTE0MTU2MTQwY2U1NzYxNDBjZDYxNDEzNDU2NWI1YjUwOTE5MDUwNTY1YjYxNDBkZDgyNjE0MWRhNTY1YjgxMDE4MTgxMTA2N2ZmZmZmZmZmZmZmZmZmZmY4MjExMTcxNTYxNDBmYzU3NjE0MGZiNjE0MTkyNTY1YjViODA2MDQwNTI1MDUwNTA1NjViN2Y0ZTQ4N2I3MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjAwMDUyNjAyMTYwMDQ1MjYwMjQ2MDAwZmQ1YjdmNGU0ODdiNzEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYwMDA1MjYwMjI2MDA0NTI2MDI0NjAwMGZkNWI3ZjRlNDg3YjcxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MDAwNTI2MDMyNjAwNDUyNjAyNDYwMDBmZDViN2Y0ZTQ4N2I3MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjAwMDUyNjA0MTYwMDQ1MjYwMjQ2MDAwZmQ1YjYwMDA4MGZkNWI2MDAwODBmZDViNjAwMDgwZmQ1YjYwMDA4MGZkNWI2MDAwODBmZDViNjAwMDYwMWYxOTYwMWY4MzAxMTY5MDUwOTE5MDUwNTY1YjYxNDFmNDgxNjEzZmFjNTY1YjgxMTQ2MTQxZmY1NzYwMDA4MGZkNWI1MDU2NWI2MTQyMGI4MTYxM2ZiZTU2NWI4MTE0NjE0MjE2NTc2MDAwODBmZDViNTA1NjViNjE0MjIyODE2MTNmZTY1NjViODExNDYxNDIyZDU3NjAwMDgwZmQ1YjUwNTY1YjYxNDIzOTgxNjEzZmYzNTY1YjgxMTQ2MTQyNDQ1NzYwMDA4MGZkNWI1MDU2NWI2MTQyNTA4MTYxNDAyMDU2NWI4MTE0NjE0MjViNTc2MDAwODBmZDViNTA1NjViNjE0MjY3ODE2MTQwM2E1NjViODExNDYxNDI3MjU3NjAwMDgwZmQ1YjUwNTZmZWEyNjQ2OTcwNjY3MzU4MjIxMjIwYmFkZjk5OTkwMjBjODA5YjljZDNmNWUwOWUzN2QyZTJjOTI0MDFlY2U3MWVhMmFjYTJkOTVlMGU1OWY4MTNiYjY0NzM2ZjZjNjM0MzAwMDgwNzAwMzM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw9guSmaPEG4IPwCcA5EJwZPD+pDOyFVnA/UqXsY4xfa6ItQFhydPbZbXk9Si2hZ2AGgwI3fWErQYQ266QuAMiDwoJCKH1hK0GEKcIEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"ChAKCQii9YStBhCpCBIDGJEPEgIYAxixjrgVIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA6IBCpQBAviRggEqgKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOIKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0alKIAIMPQkCAgIDAAaChZr95gW1C7UiG3XlzhTxBsbFOI6GZEXVLkaf5pasNqaAo+uT2wqVWOulavJEmh3u2/YdouN7+XdKLJan1vOMyKBIDGJMPGIDIr6Al","b64Record":"CiUIFiIDGJQPKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBdjMZFO+5dgWCLpD6Vey5U42wHhkkZDbBDOkIfEprGxGbPzZ0SHPmea4ZZQcEZyFAaDAje9YStBhCzvpfAASIQCgkIovWErQYQqQgSAxiRDyogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wsfTCMELelgIKAxiUDxKrhQFggGBAUmAENhBhAKdXYAA1YOAcgGOAcJBfEWEAZFeAY4BwkF8UYQHYV4Bji6dNoBRhAhdXgGObI9PZFGECM1eAY9hfdMEUYQJwV4Bj6sbz/hRhAoxXgGP0oB5bFGECyVdhAKdWW4BjBIjJORRhAKxXgGMP0mAeFGEAyFeAYxGHQecUYQEFV4BjEeH8BxRhAUJXgGMV2svqFGEBf1eAY0tcZocUYQG8V1tgAID9W2EAxmAEgDYDgQGQYQDBkZBhL+ZWW2EDBlZbAFs0gBVhANRXYACA/VtQYQDvYASANgOBAZBhAOqRkGEv5lZbYQkQVltgQFFhAPyRkGE7oVZbYEBRgJEDkPNbNIAVYQERV2AAgP1bUGEBLGAEgDYDgQGQYQEnkZBhMI1WW2EJblZbYEBRYQE5kZBhOy1WW2BAUYCRA5DzWzSAFWEBTldgAID9W1BhAWlgBIA2A4EBkGEBZJGQYTAmVlthCclWW2BAUWEBdpGQYTuhVltgQFGAkQOQ81s0gBVhAYtXYACA/VtQYQGmYASANgOBAZBhAaGRkGEwJlZbYQrlVltgQFFhAbORkGE7oVZbYEBRgJEDkPNbYQHWYASANgOBAZBhAdGRkGEvuVZbYQwDVlsAWzSAFWEB5FdgAID9W1BhAf9gBIA2A4EBkGEB+pGQYTDpVlthEHFWW2BAUWECDpOSkZBhO0hWW2BAUYCRA5DzW2ECMWAEgDYDgQGQYQIskZBhL+ZWW2ERFlZbAFs0gBVhAj9XYACA/VtQYQJaYASANgOBAZBhAlWRkGEwJlZbYRZ3VltgQFFhAmeRkGE7oVZbYEBRgJEDkPNbYQKKYASANgOBAZBhAoWRkGEvuVZbYReVVlsAWzSAFWECmFdgAID9W1BhArNgBIA2A4EBkGECrpGQYTAmVlthG9lWW2BAUWECwJGQYTuhVltgQFGAkQOQ81s0gBVhAtVXYACA/VtQYQLwYASANgOBAZBhAuuRkGEv5lZbYRz1VltgQFFhAv2RkGE7LVZbYEBRgJEDkPNbYABgBWf//////////4ERFWEDI1dhAyJhQZJWW1tgQFGQgIJSgGAgAmAgAYIBYEBSgBVhA1xXgWAgAVthA0lhKwBWW4FSYCABkGABkAOQgWEDQVeQUFtQkFBhA31gAGAGYABgQFGAYCABYEBSgGAAgVJQYR1QVluBYACBUYEQYQORV2EDkGFBY1ZbW2AgAmAgAQGBkFJQYQO4YAFgAGBAUYBgIAFgQFKAYACBUlBhHYlWW4FgAYFRgRBhA8xXYQPLYUFjVltbYCACYCABAYGQUlBhA/NgAmAAYEBRgGAgAWBAUoBgAIFSUGEdiVZbgWACgVGBEGEEB1dhBAZhQWNWW1tgIAJgIAEBgZBSUGEELmAEYABgQFGAYCABYEBSgGAAgVJQYR2JVluBYAOBUYEQYQRCV2EEQWFBY1ZbW2AgAmAgAQGBkFJQYQRpYANgAGBAUYBgIAFgQFKAYACBUlBhHYlWW4FgBIFRgRBhBH1XYQR8YUFjVltbYCACYCABAYGQUlBgAGBAUYBgYAFgQFKAYABj/////xaBUmAgAYVz//////////////////////////8WgVJgIAFiehIAY/////8WgVJQkFBgAGBAUYBhASABYEBSgGACgFRhBOiQYUCiVluAYB8BYCCAkQQCYCABYEBRkIEBYEBSgJKRkIGBUmAgAYKAVGEFFJBhQKJWW4AVYQVhV4BgHxBhBTZXYQEAgINUBAKDUpFgIAGRYQVhVluCAZGQYABSYCBgACCQW4FUgVKQYAEBkGAgAYCDEWEFRFeCkANgHxaCAZFbUFBQUFCBUmAgAWADgFRhBXiQYUCiVluAYB8BYCCAkQQCYCABYEBRkIEBYEBSgJKRkIGBUmAgAYKAVGEFpJBhQKJWW4AVYQXxV4BgHxBhBcZXYQEAgINUBAKDUpFgIAGRYQXxVluCAZGQYABSYCBgACCQW4FUgVKQYAEBkGAgAYCDEWEF1FeCkANgHxaCAZFbUFBQUFCBUmAgAYZz//////////////////////////8WgVJgIAFgBIBUYQYkkGFAolZbgGAfAWAggJEEAmAgAWBAUZCBAWBAUoCSkZCBgVJgIAGCgFRhBlCQYUCiVluAFWEGnVeAYB8QYQZyV2EBAICDVAQCg1KRYCABkWEGnVZbggGRkGAAUmAgYAAgkFuBVIFSkGABAZBgIAGAgxFhBoBXgpADYB8WggGRW1BQUFBQgVJgIAFgARUVgVJgIAFgBWAIkFSQYQEACpAEYAcLYAcLgVJgIAFgBWAUkFSQYQEACpAEYP8WFRWBUmAgAYSBUmAgAYOBUlCQUGAAYAFn//////////+BERVhBwhXYQcHYUGSVltbYEBRkICCUoBgIAJgIAGCAWBAUoAVYQdBV4FgIAFbYQcuYSsgVluBUmAgAZBgAZADkIFhByZXkFBbUJBQYEBRgGCgAWBAUoBgAWP/////FoFSYCABhnP//////////////////////////xaBUmAgAWAAFRWBUmAgAWAAFRWBUmAgAYdz//////////////////////////8WgVJQgWAAgVGBEGEHuFdhB7dhQWNWW1tgIAJgIAEBgZBSUGAAYAFn//////////+BERVhB+BXYQffYUGSVltbYEBRkICCUoBgIAJgIAGCAWBAUoAVYQgZV4FgIAFbYQgGYSuFVluBUmAgAZBgAZADkIFhB/5XkFBbUJBQYEBRgGDAAWBAUoBgBGP/////FoFSYCABYAVj/////xaBUmAgAWAKY/////8WgVJgIAGHc///////////////////////////FoFSYCABYAAVFYFSYCABiHP//////////////////////////xaBUlCBYACBUYEQYQihV2EIoGFBY1ZbW2AgAmAgAQGBkFJQYACAYQi6hYWFYR3AVluRUJFQYBZgAwuCFGEIzldgAID9W397sXcm3x863uiqALqOi8XW8YKvO793YEY5y38AjdO07YFgQFFhCP2RkGE6NlZbYEBRgJEDkKFQUFBQUFBQUFBWW2AAYQkcg4NhHz9WW5BQf5Clz0z/6ItO27BBz8eoqBLEil7DC4RkD7N2kIdRaOOqgWBAUWEJTZGQYTuGVltgQFGAkQOQoWAWYAMLgWAHCxRhCWhXYACA/VuSkVBQVltgAGEJeoODYSBXVluQUH+Qpc9M/+iLTtuwQc/HqKgSxIpewwuEZA+zdpCHUWjjqoFgQFFhCauRkGE7LVZbYEBRgJEDkKFgFmADC4EUYQnDV2AAgP1bkpFQUFZbYACAYABhAWdz//////////////////////////8WY5sj09lg4BuIiIiIYEBRYCQBYQoGlJOSkZBhOnpWW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEKcJGQYTofVltgAGBAUYCDA4GFWvSRUFA9gGAAgRRhCqtXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hCrBWW2BgkVBbUJFQkVCBYQrBV2AVYQrWVluAgGAgAZBRgQGQYQrVkZBhMVhWW1tgAwuSUFBQlJNQUFBQVltgAIBgAGEBZ3P//////////////////////////xZjFdrL6mDgG4iIiIhgQFFgJAFhCyKUk5KRkGE6elZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQuMkZBhOh9WW2AAYEBRgIMDgWAAhlrxkVBQPYBgAIEUYQvJV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YQvOVltgYJFQW1CRUJFQgWEL31dgFWEL9FZbgIBgIAGQUYEBkGEL85GQYTFYVltbYAMLklBQUJSTUFBQUFZbYABgBWf//////////4ERFWEMIFdhDB9hQZJWW1tgQFGQgIJSgGAgAmAgAYIBYEBSgBVhDFlXgWAgAVthDEZhKwBWW4FSYCABkGABkAOQgWEMPleQUFtQkFBhDHpgAGAGYABgQFGAYCABYEBSgGAAgVJQYR1QVluBYACBUYEQYQyOV2EMjWFBY1ZbW2AgAmAgAQGBkFJQYQy1YAFgAGBAUYBgIAFgQFKAYACBUlBhHYlWW4FgAYFRgRBhDMlXYQzIYUFjVltbYCACYCABAYGQUlBhDPBgAmAAYEBRgGAgAWBAUoBgAIFSUGEdiVZbgWACgVGBEGENBFdhDQNhQWNWW1tgIAJgIAEBgZBSUGENK2ADYABgQFGAYCABYEBSgGAAgVJQYR2JVluBYAOBUYEQYQ0/V2ENPmFBY1ZbW2AgAmAgAQGBkFJQYQ1mYARgAGBAUYBgIAFgQFKAYACBUlBhHYlWW4FgBIFRgRBhDXpXYQ15YUFjVltbYCACYCABAYGQUlBgAGBAUYBgYAFgQFKAYABj/////xaBUmAgAYRz//////////////////////////8WgVJgIAFiehIAY/////8WgVJQkFBgAGBAUYBhASABYEBSgGACgFRhDeWQYUCiVluAYB8BYCCAkQQCYCABYEBRkIEBYEBSgJKRkIGBUmAgAYKAVGEOEZBhQKJWW4AVYQ5eV4BgHxBhDjNXYQEAgINUBAKDUpFgIAGRYQ5eVluCAZGQYABSYCBgACCQW4FUgVKQYAEBkGAgAYCDEWEOQVeCkANgHxaCAZFbUFBQUFCBUmAgAWADgFRhDnWQYUCiVluAYB8BYCCAkQQCYCABYEBRkIEBYEBSgJKRkIGBUmAgAYKAVGEOoZBhQKJWW4AVYQ7uV4BgHxBhDsNXYQEAgINUBAKDUpFgIAGRYQ7uVluCAZGQYABSYCBgACCQW4FUgVKQYAEBkGAgAYCDEWEO0VeCkANgHxaCAZFbUFBQUFCBUmAgAYVz//////////////////////////8WgVJgIAFgBIBUYQ8hkGFAolZbgGAfAWAggJEEAmAgAWBAUZCBAWBAUoCSkZCBgVJgIAGCgFRhD02QYUCiVluAFWEPmleAYB8QYQ9vV2EBAICDVAQCg1KRYCABkWEPmlZbggGRkGAAUmAgYAAgkFuBVIFSkGABAZBgIAGAgxFhD31XgpADYB8WggGRW1BQUFBQgVJgIAFgARUVgVJgIAFgBWAIkFSQYQEACpAEYAcLYAcLgVJgIAFgBWAUkFSQYQEACpAEYP8WFRWBUmAgAYSBUmAgAYOBUlCQUGAAgGEQHoNgBWAAkFSQYQEACpAEZ///////////FmAFYBCQVJBhAQAKkARj/////xZhIW9WW5FQkVBgFmADC4IUYRAyV2AAgP1bf3uxdybfHzre6KoAuo6Lxdbxgq87v3dgRjnLfwCN07TtgWBAUWEQYZGQYTo2VltgQFGAkQOQoVBQUFBQUFZbYACAYGBhEIGGhoZhIu5WW4CTUIGUUIKVUFBQUH+Qpc9M/+iLTtuwQc/HqKgSxIpewwuEZA+zdpCHUWjjqoNgQFFhELyRkGE7LVZbYEBRgJEDkKFgFmADC4MUYRDUV2AAgP1bf+/yOZL0ezwQFnn4tNydPiQskDkJ26SkU/KyNBrUY7DigoJgQFFhEQWSkZBhPNBWW2BAUYCRA5Chk1CTUJOQUFZbYABgAWf//////////4ERFWERM1dhETJhQZJWW1tgQFGQgIJSgGAgAmAgAYIBYEBSgBVhEWxXgWAgAVthEVlhKwBWW4FSYCABkGABkAOQgWERUVeQUFtQkFBhEYxgAIBgAGBAUYBgIAFgQFKAYACBUlBhHVBWW4FgAIFRgRBhEaBXYRGfYUFjVltbYCACYCABAYGQUlBgAGBAUYBgYAFgQFKAYABj/////xaBUmAgAYVz//////////////////////////8WgVJgIAFiehIAY/////8WgVJQkFBgAGBAUYBhASABYEBSgGACgFRhEguQYUCiVluAYB8BYCCAkQQCYCABYEBRkIEBYEBSgJKRkIGBUmAgAYKAVGESN5BhQKJWW4AVYRKEV4BgHxBhEllXYQEAgINUBAKDUpFgIAGRYRKEVluCAZGQYABSYCBgACCQW4FUgVKQYAEBkGAgAYCDEWESZ1eCkANgHxaCAZFbUFBQUFCBUmAgAWADgFRhEpuQYUCiVluAYB8BYCCAkQQCYCABYEBRkIEBYEBSgJKRkIGBUmAgAYKAVGESx5BhQKJWW4AVYRMUV4BgHxBhEulXYQEAgINUBAKDUpFgIAGRYRMUVluCAZGQYABSYCBgACCQW4FUgVKQYAEBkGAgAYCDEWES91eCkANgHxaCAZFbUFBQUFCBUmAgAYZz//////////////////////////8WgVJgIAFgBIBUYRNHkGFAolZbgGAfAWAggJEEAmAgAWBAUZCBAWBAUoCSkZCBgVJgIAGCgFRhE3OQYUCiVluAFWETwFeAYB8QYROVV2EBAICDVAQCg1KRYCABkWETwFZbggGRkGAAUmAgYAAgkFuBVIFSkGABAZBgIAGAgxFhE6NXgpADYB8WggGRW1BQUFBQgVJgIAFgARUVgVJgIAFgBWAIkFSQYQEACpAEYAcLYAcLgVJgIAFgABUVgVJgIAGEgVJgIAGDgVJQkFBgAGABZ///////////gREVYRQdV2EUHGFBklZbW2BAUZCAglKAYCACYCABggFgQFKAFWEUVleBYCABW2EUQ2ErIFZbgVJgIAGQYAGQA5CBYRQ7V5BQW1CQUGBAUYBgoAFgQFKAYAFj/////xaBUmAgAYZz//////////////////////////8WgVJgIAFgABUVgVJgIAFgABUVgVJgIAGHc///////////////////////////FoFSUIFgAIFRgRBhFM1XYRTMYUFjVltbYCACYCABAYGQUlBgAGABZ///////////gREVYRT1V2EU9GFBklZbW2BAUZCAglKAYCACYCABggFgQFKAFWEVLleBYCABW2EVG2Er+1ZbgVJgIAGQYAGQA5CBYRUTV5BQW1CQUGBAUYBgwAFgQFKAYARj/////xaBUmAgAWAFY/////8WgVJgIAFgCmP/////FoFSYCABYB5j/////xaBUmAgAWAAFRWBUmAgAYhz//////////////////////////8WgVJQgWAAgVGBEGEVp1dhFaZhQWNWW1tgIAJgIAEBgZBSUGAAgGEV6oVgBWAAkFSQYQEACpAEZ///////////FmAFYBCQVJBhAQAKkARj/////xaHh2EkZlZbkVCRUH+Qpc9M/+iLTtuwQc/HqKgSxIpewwuEZA+zdpCHUWjjqoJgQFFhFh2RkGE7LVZbYEBRgJEDkKFgFmADC4IUYRY1V2AAgP1bf3uxdybfHzre6KoAuo6Lxdbxgq87v3dgRjnLfwCN07TtgWBAUWEWZJGQYTo2VltgQFGAkQOQoVBQUFBQUFBQUFZbYACAYABhAWdz//////////////////////////8WY5sj09lg4BuIiIiIYEBRYCQBYRa0lJOSkZBhOnpWW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEXHpGQYTofVltgAGBAUYCDA4FgAIZa8ZFQUD2AYACBFGEXW1dgQFGRUGAfGWA/PQEWggFgQFI9glI9YABgIIQBPmEXYFZbYGCRUFtQkVCRUIFhF3FXYBVhF4ZWW4CAYCABkFGBAZBhF4WRkGExWFZbW2ADC5JQUFCUk1BQUFBWW2AAYAVn//////////+BERVhF7JXYRexYUGSVltbYEBRkICCUoBgIAJgIAGCAWBAUoAVYRfrV4FgIAFbYRfYYSsAVluBUmAgAZBgAZADkIFhF9BXkFBbUJBQYRgMYABgBmAAYEBRgGAgAWBAUoBgAIFSUGEdUFZbgWAAgVGBEGEYIFdhGB9hQWNWW1tgIAJgIAEBgZBSUGEYR2ABYABgQFGAYCABYEBSgGAAgVJQYR2JVluBYAGBUYEQYRhbV2EYWmFBY1ZbW2AgAmAgAQGBkFJQYRiCYAJgAGBAUYBgIAFgQFKAYACBUlBhHYlWW4FgAoFRgRBhGJZXYRiVYUFjVltbYCACYCABAYGQUlBhGL1gBGAAYEBRgGAgAWBAUoBgAIFSUGEdiVZbgWADgVGBEGEY0VdhGNBhQWNWW1tgIAJgIAEBgZBSUGEY+GADYABgQFGAYCABYEBSgGAAgVJQYR2JVluBYASBUYEQYRkMV2EZC2FBY1ZbW2AgAmAgAQGBkFJQYABgQFGAYGABYEBSgGAAY/////8WgVJgIAGEc///////////////////////////FoFSYCABYnoSAGP/////FoFSUJBQYABgQFGAYQEgAWBAUoBgAoBUYRl3kGFAolZbgGAfAWAggJEEAmAgAWBAUZCBAWBAUoCSkZCBgVJgIAGCgFRhGaOQYUCiVluAFWEZ8FeAYB8QYRnFV2EBAICDVAQCg1KRYCABkWEZ8FZbggGRkGAAUmAgYAAgkFuBVIFSkGABAZBgIAGAgxFhGdNXgpADYB8WggGRW1BQUFBQgVJgIAFgA4BUYRoHkGFAolZbgGAfAWAggJEEAmAgAWBAUZCBAWBAUoCSkZCBgVJgIAGCgFRhGjOQYUCiVluAFWEagFeAYB8QYRpVV2EBAICDVAQCg1KRYCABkWEagFZbggGRkGAAUmAgYAAgkFuBVIFSkGABAZBgIAGAgxFhGmNXgpADYB8WggGRW1BQUFBQgVJgIAGFc///////////////////////////FoFSYCABYASAVGEas5BhQKJWW4BgHwFgIICRBAJgIAFgQFGQgQFgQFKAkpGQgYFSYCABgoBUYRrfkGFAolZbgBVhGyxXgGAfEGEbAVdhAQCAg1QEAoNSkWAgAZFhGyxWW4IBkZBgAFJgIGAAIJBbgVSBUpBgAQGQYCABgIMRYRsPV4KQA2AfFoIBkVtQUFBQUIFSYCABYAEVFYFSYCABYAVgCJBUkGEBAAqQBGAHC2AHC4FSYCABYAVgFJBUkGEBAAqQBGD/FhUVgVJgIAGEgVJgIAGDgVJQkFBgAIBhG4aDYSXrVluRUJFQYBZgAwuCFGEbmldgAID9W397sXcm3x863uiqALqOi8XW8YKvO793YEY5y38AjdO07YFgQFFhG8mRkGE6NlZbYEBRgJEDkKFQUFBQUFBWW2AAgGAAYQFnc///////////////////////////FmMV2svqYOAbiIiIiGBAUWAkAWEcFpSTkpGQYTp6VltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhHICRkGE6H1ZbYABgQFGAgwOBhVr0kVBQPYBgAIEUYRy7V2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YRzAVltgYJFQW1CRUJFQgWEc0VdgFWEc5lZbgIBgIAGQUYEBkGEc5ZGQYTFYVltbYAMLklBQUJSTUFBQUFZbYABhHQGDg2EnY1ZbkFB/kKXPTP/oi07bsEHPx6ioEsSKXsMLhGQPs3aQh1Fo46qBYEBRYR0ykZBhOy1WW2BAUYCRA5ChYBZgAwuBFGEdSldgAID9W5KRUFBWW2EdWGErAFZbYEBRgGBAAWBAUoBhHW2Hh2Eoe1ZbgVJgIAFhHXyFhWEo0VZbgVJQkFCUk1BQUFBWW2EdkWErAFZbYEBRgGBAAWBAUoBhHaWGYSqrVluBUmAgAWEdtIWFYSjRVluBUlCQUJOSUFBQVltgAICEYACBYQEAAVFgAAFRY/////8WFIAVYR3yV1BgAIFhAQABUWBAAVFj/////xYUWxVhHhhXYnanAIFhAQABUWBAAZBj/////xaQgWP/////FoFSUFBbYACAYQFnc///////////////////////////FjRjRXM5aWDgG4qKimBAUWAkAWEeUpOSkZBhO95WW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEevJGQYTofVltgAGBAUYCDA4GFh1rxklBQUD2AYACBFGEe+VdgQFGRUGAfGWA/PQEWggFgQFI9glI9YABgIIQBPmEe/lZbYGCRUFtQkVCRUIFhHxFXYBVgAGEfJlZbgIBgIAGQUYEBkGEfJZGQYTGFVltbgWADC5FQgJVQgZZQUFBQUFCTUJORUFBWW2AAgGAAYQFnc///////////////////////////FmOPjX+ZYOAbhoZgQFFgJAFhH3iSkZBhOlFWW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEf4pGQYTofVltgAGBAUYCDA4FgAIZa8ZFQUD2AYACBFGEgH1dgQFGRUGAfGWA/PQEWggFgQFI9glI9YABgIIQBPmEgJFZbYGCRUFtQkVCRUIFhIDVXYBVhIEpWW4CAYCABkFGBAZBhIEmRkGExWFZbW2ADC5JQUFCSkVBQVltgAIBgAGEBZ3P//////////////////////////xZjLmOHm2DgG4aGYEBRYCQBYSCQkpGQYTq/VltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhIPqRkGE6H1ZbYABgQFGAgwOBYACGWvGRUFA9gGAAgRRhITdXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hITxWW2BgkVBbUJFQkVCBYSFNV2AVYSFiVluAgGAgAZBRgQGQYSFhkZBhMVhWW1tgAwuSUFBQkpFQUFZbYACAhGAAgWEBAAFRYAABUWP/////FhSAFWEhoVdQYACBYQEAAVFgQAFRY/////8WFFsVYSHHV2J2pwCBYQEAAVFgQAGQY/////8WkIFj/////xaBUlBQW2AAgGEBZ3P//////////////////////////xY0Y8I7rrZg4BuKiopgQFFgJAFhIgGTkpGQYTwqVltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhImuRkGE6H1ZbYABgQFGAgwOBhYda8ZJQUFA9gGAAgRRhIqhXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hIq1WW2BgkVBbUJFQkVCBYSLAV2AVYABhItVWW4CAYCABkFGBAZBhItSRkGExhVZbW4FgAwuRUICVUIGWUFBQUFBQk1CTkVBQVltgAIBgYGAAgGEBZ3P//////////////////////////xZjJ44LiGDgG4mJiWBAUWAkAWEjLJOSkZBhOu9WW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEjlpGQYTofVltgAGBAUYCDA4FgAIZa8ZFQUD2AYACBFGEj01dgQFGRUGAfGWA/PQEWggFgQFI9glI9YABgIIQBPmEj2FZbYGCRUFtQkVCRUIFhJDRXYBVgAIBn//////////+BERVhJABXYSP/YUGSVltbYEBRkICCUoBgIAJgIAGCAWBAUoAVYSQuV4FgIAFgIIICgDaDN4CCAZFQUJBQW1BhJElWW4CAYCABkFGBAZBhJEiRkGExxVZbW4JgAwuSUICVUIGWUIKXUFBQUFBQk1CTUJOQUFZbYACAhmAAgWEBAAFRYAABUWP/////FhSAFWEkmFdQYACBYQEAAVFgQAFRY/////8WFFsVYSS+V2J2pwCBYQEAAVFgQAGQY/////8WkIFj/////xaBUlBQW2AAgGEBZ3P//////////////////////////xY0Y7k3WBpg4BuMjIyMjGBAUWAkAWEk/JWUk5KRkGE8aFZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYSVmkZBhOh9WW2AAYEBRgIMDgYWHWvGSUFBQPYBgAIEUYSWjV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YSWoVltgYJFQW1CRUJFQgWElu1dgFWAAYSXQVluAgGAgAZBRgQGQYSXPkZBhMYVWW1uBYAMLkVCAlVCBllBQUFBQUJVQlZNQUFBQVltgAICCYACBYQEAAVFgAAFRY/////8WFIAVYSYdV1BgAIFhAQABUWBAAVFj/////xYUWxVhJkNXYnanAIFhAQABUWBAAZBj/////xaQgWP/////FoFSUFBbYACAYQFnc///////////////////////////FjRjnIm7NWDgG4hgQFFgJAFhJnmRkGE7vFZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYSbjkZBhOh9WW2AAYEBRgIMDgYWHWvGSUFBQPYBgAIEUYScgV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YSclVltgYJFQW1CRUJFQgWEnOFdgFWAAYSdNVluAgGAgAZBRgQGQYSdMkZBhMYVWW1uBYAMLkVCAlVCBllBQUFBQUJFQkVZbYACAYABhAWdz//////////////////////////8WY0kUa95g4BuGhmBAUWAkAWEnnJKRkGE6UVZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYSgGkZBhOh9WW2AAYEBRgIMDgWAAhlrxkVBQPYBgAIEUYShDV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YShIVltgYJFQW1CRUJFQgWEoWVdgFWEoblZbgIBgIAGQUYEBkGEobZGQYTFYVltbYAMLklBQUJKRUFBWW2AAYSiig2AGgREVYSiTV2EokmFBBVZbW4JhKuyQkZBj/////xZWW5BQYSjJgmAGgREVYSi6V2EouWFBBVZbW4JhKuyQkZBj/////xZWW5BQkpFQUFZbYSjZYSxhVltgAGAEgREVYSjtV2Eo7GFBBVZbW4NgBIERFWEpAFdhKP9hQQVWW1sUFWEpHFdgAYFgAAGQFRWQgRUVgVJQUGEqpVZbYAFgBIERFWEpMFdhKS9hQQVWW1uDYASBERVhKUNXYSlCYUEFVltbFBVhKaZXYACAVJBhAQAKkARz//////////////////////////8WgWAgAZBz//////////////////////////8WkIFz//////////////////////////8WgVJQUGEqpFZbYAJgBIERFWEpuldhKblhQQVWW1uDYASBERVhKc1XYSnMYUEFVltbFBVhKeFXgYFgQAGBkFJQYSqjVltgA2AEgREVYSn1V2Ep9GFBBVZbW4NgBIERFWEqCFdhKgdhQQVWW1sUFWEqHFeBgWBgAYGQUlBhKqJWW2AEgIERFWEqL1dhKi5hQQVWW1uDYASBERVhKkJXYSpBYUEFVltbFBVhKqFXYACAVJBhAQAKkARz//////////////////////////8WgWCAAZBz//////////////////////////8WkIFz//////////////////////////8WgVJQUFtbW1tbkpFQUFZbYABgAWAAg2AGgREVYSrEV2Eqw2FBBVZbW2AGgREVYSrWV2Eq1WFBBVZbW4FSYCABkIFSYCABYAAgVJBQkZBQVltgAIFg/xZgAZAbgxeQUJKRUFBWW2BAUYBgQAFgQFKAYACBUmAgAWErGmEsYVZbgVJQkFZbYEBRgGCgAWBAUoBgAGP/////FoFSYCABYABz//////////////////////////8WgVJgIAFgABUVgVJgIAFgABUVgVJgIAFgAHP//////////////////////////xaBUlCQVltgQFGAYMABYEBSgGAAY/////8WgVJgIAFgAGP/////FoFSYCABYABj/////xaBUmAgAWAAc///////////////////////////FoFSYCABYAAVFYFSYCABYABz//////////////////////////8WgVJQkFZbYEBRgGDAAWBAUoBgAGP/////FoFSYCABYABj/////xaBUmAgAWAAY/////8WgVJgIAFgAGP/////FoFSYCABYAAVFYFSYCABYABz//////////////////////////8WgVJQkFZbYEBRgGCgAWBAUoBgABUVgVJgIAFgAHP//////////////////////////xaBUmAgAWBggVJgIAFgYIFSYCABYABz//////////////////////////8WgVJQkFZbYABhLNFhLMyEYT0lVlthPQBWW5BQgIOCUmAgggGQUIKFYCCGAoIBERVhLPRXYSzzYUHGVltbYABbhYEQFWEtJFeBYS0KiIJh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gZBSUGEELmAEYABgQFGAYCABYEBSgGAAgVJQYR2JVluBYAOBUYEQYQRCV2EEQWFBY1ZbW2AgAmAgAQGBkFJQYQRpYANgAGBAUYBgIAFgQFKAYACBUlBhHYlWW4FgBIFRgRBhBH1XYQR8YUFjVltbYCACYCABAYGQUlBgAGBAUYBgYAFgQFKAYABj/////xaBUmAgAYVz//////////////////////////8WgVJgIAFiehIAY/////8WgVJQkFBgAGBAUYBhASABYEBSgGACgFRhBOiQYUCiVluAYB8BYCCAkQQCYCABYEBRkIEBYEBSgJKRkIGBUmAgAYKAVGEFFJBhQKJWW4AVYQVhV4BgHxBhBTZXYQEAgINUBAKDUpFgIAGRYQVhVluCAZGQYABSYCBgACCQW4FUgVKQYAEBkGAgAYCDEWEFRFeCkANgHxaCAZFbUFBQUFCBUmAgAWADgFRhBXiQYUCiVluAYB8BYCCAkQQCYCABYEBRkIEBYEBSgJKRkIGBUmAgAYKAVGEFpJBhQKJWW4AVYQXxV4BgHxBhBcZXYQEAgINUBAKDUpFgIAGRYQXxVluCAZGQYABSYCBgACCQW4FUgVKQYAEBkGAgAYCDEWEF1FeCkANgHxaCAZFbUFBQUFCBUmAgAYZz//////////////////////////8WgVJgIAFgBIBUYQYkkGFAolZbgGAfAWAggJEEAmAgAWBAUZCBAWBAUoCSkZCBgVJgIAGCgFRhBlCQYUCiVluAFWEGnVeAYB8QYQZyV2EBAICDVAQCg1KRYCABkWEGnVZbggGRkGAAUmAgYAAgkFuBVIFSkGABAZBgIAGAgxFhBoBXgpADYB8WggGRW1BQUFBQgVJgIAFgARUVgVJgIAFgBWAIkFSQYQEACpAEYAcLYAcLgVJgIAFgBWAUkFSQYQEACpAEYP8WFRWBUmAgAYSBUmAgAYOBUlCQUGAAYAFn//////////+BERVhBwhXYQcHYUGSVltbYEBRkICCUoBgIAJgIAGCAWBAUoAVYQdBV4FgIAFbYQcuYSsgVluBUmAgAZBgAZADkIFhByZXkFBbUJBQYEBRgGCgAWBAUoBgAWP/////FoFSYCABhnP//////////////////////////xaBUmAgAWAAFRWBUmAgAWAAFRWBUmAgAYdz//////////////////////////8WgVJQgWAAgVGBEGEHuFdhB7dhQWNWW1tgIAJgIAEBgZBSUGAAYAFn//////////+BERVhB+BXYQffYUGSVltbYEBRkICCUoBgIAJgIAGCAWBAUoAVYQgZV4FgIAFbYQgGYSuFVluBUmAgAZBgAZADkIFhB/5XkFBbUJBQYEBRgGDAAWBAUoBgBGP/////FoFSYCABYAVj/////xaBUmAgAWAKY/////8WgVJgIAGHc///////////////////////////FoFSYCABYAAVFYFSYCABiHP//////////////////////////xaBUlCBYACBUYEQYQihV2EIoGFBY1ZbW2AgAmAgAQGBkFJQYACAYQi6hYWFYR3AVluRUJFQYBZgAwuCFGEIzldgAID9W397sXcm3x863uiqALqOi8XW8YKvO793YEY5y38AjdO07YFgQFFhCP2RkGE6NlZbYEBRgJEDkKFQUFBQUFBQUFBWW2AAYQkcg4NhHz9WW5BQf5Clz0z/6ItO27BBz8eoqBLEil7DC4RkD7N2kIdRaOOqgWBAUWEJTZGQYTuGVltgQFGAkQOQoWAWYAMLgWAHCxRhCWhXYACA/VuSkVBQVltgAGEJeoODYSBXVluQUH+Qpc9M/+iLTtuwQc/HqKgSxIpewwuEZA+zdpCHUWjjqoFgQFFhCauRkGE7LVZbYEBRgJEDkKFgFmADC4EUYQnDV2AAgP1bkpFQUFZbYACAYABhAWdz//////////////////////////8WY5sj09lg4BuIiIiIYEBRYCQBYQoGlJOSkZBhOnpWW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEKcJGQYTofVltgAGBAUYCDA4GFWvSRUFA9gGAAgRRhCqtXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hCrBWW2BgkVBbUJFQkVCBYQrBV2AVYQrWVluAgGAgAZBRgQGQYQrVkZBhMVhWW1tgAwuSUFBQlJNQUFBQVltgAIBgAGEBZ3P//////////////////////////xZjFdrL6mDgG4iIiIhgQFFgJAFhCyKUk5KRkGE6elZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQuMkZBhOh9WW2AAYEBRgIMDgWAAhlrxkVBQPYBgAIEUYQvJV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YQvOVltgYJFQW1CRUJFQgWEL31dgFWEL9FZbgIBgIAGQUYEBkGEL85GQYTFYVltbYAMLklBQUJSTUFBQUFZbYABgBWf//////////4ERFWEMIFdhDB9hQZJWW1tgQFGQgIJSgGAgAmAgAYIBYEBSgBVhDFlXgWAgAVthDEZhKwBWW4FSYCABkGABkAOQgWEMPleQUFtQkFBhDHpgAGAGYABgQFGAYCABYEBSgGAAgVJQYR1QVluBYACBUYEQYQyOV2EMjWFBY1ZbW2AgAmAgAQGBkFJQYQy1YAFgAGBAUYBgIAFgQFKAYACBUlBhHYlWW4FgAYFRgRBhDMlXYQzIYUFjVltbYCACYCABAYGQUlBhDPBgAmAAYEBRgGAgAWBAUoBgAIFSUGEdiVZbgWACgVGBEGENBFdhDQNhQWNWW1tgIAJgIAEBgZBSUGENK2ADYABgQFGAYCABYEBSgGAAgVJQYR2JVluBYAOBUYEQYQ0/V2ENPmFBY1ZbW2AgAmAgAQGBkFJQYQ1mYARgAGBAUYBgIAFgQFKAYACBUlBhHYlWW4FgBIFRgRBhDXpXYQ15YUFjVltbYCACYCABAYGQUlBgAGBAUYBgYAFgQFKAYABj/////xaBUmAgAYRz//////////////////////////8WgVJgIAFiehIAY/////8WgVJQkFBgAGBAUYBhASABYEBSgGACgFRhDeWQYUCiVluAYB8BYCCAkQQCYCABYEBRkIEBYEBSgJKRkIGBUmAgAYKAVGEOEZBhQKJWW4AVYQ5eV4BgHxBhDjNXYQEAgINUBAKDUpFgIAGRYQ5eVluCAZGQYABSYCBgACCQW4FUgVKQYAEBkGAgAYCDEWEOQVeCkANgHxaCAZFbUFBQUFCBUmAgAWADgFRhDnWQYUCiVluAYB8BYCCAkQQCYCABYEBRkIEBYEBSgJKRkIGBUmAgAYKAVGEOoZBhQKJWW4AVYQ7uV4BgHxBhDsNXYQEAgINUBAKDUpFgIAGRYQ7uVluCAZGQYABSYCBgACCQW4FUgVKQYAEBkGAgAYCDEWEO0VeCkANgHxaCAZFbUFBQUFCBUmAgAYVz//////////////////////////8WgVJgIAFgBIBUYQ8hkGFAolZbgGAfAWAggJEEAmAgAWBAUZCBAWBAUoCSkZCBgVJgIAGCgFRhD02QYUCiVluAFWEPmleAYB8QYQ9vV2EBAICDVAQCg1KRYCABkWEPmlZbggGRkGAAUmAgYAAgkFuBVIFSkGABAZBgIAGAgxFhD31XgpADYB8WggGRW1BQUFBQgVJgIAFgARUVgVJgIAFgBWAIkFSQYQEACpAEYAcLYAcLgVJgIAFgBWAUkFSQYQEACpAEYP8WFRWBUmAgAYSBUmAgAYOBUlCQUGAAgGEQHoNgBWAAkFSQYQEACpAEZ///////////FmAFYBCQVJBhAQAKkARj/////xZhIW9WW5FQkVBgFmADC4IUYRAyV2AAgP1bf3uxdybfHzre6KoAuo6Lxdbxgq87v3dgRjnLfwCN07TtgWBAUWEQYZGQYTo2VltgQFGAkQOQoVBQUFBQUFZbYACAYGBhEIGGhoZhIu5WW4CTUIGUUIKVUFBQUH+Qpc9M/+iLTtuwQc/HqKgSxIpewwuEZA+zdpCHUWjjqoNgQFFhELyRkGE7LVZbYEBRgJEDkKFgFmADC4MUYRDUV2AAgP1bf+/yOZL0ezwQFnn4tNydPiQskDkJ26SkU/KyNBrUY7DigoJgQFFhEQWSkZBhPNBWW2BAUYCRA5Chk1CTUJOQUFZbYABgAWf//////////4ERFWERM1dhETJhQZJWW1tgQFGQgIJSgGAgAmAgAYIBYEBSgBVhEWxXgWAgAVthEVlhKwBWW4FSYCABkGABkAOQgWERUVeQUFtQkFBhEYxgAIBgAGBAUYBgIAFgQFKAYACBUlBhHVBWW4FgAIFRgRBhEaBXYRGfYUFjVltbYCACYCABAYGQUlBgAGBAUYBgYAFgQFKAYABj/////xaBUmAgAYVz//////////////////////////8WgVJgIAFiehIAY/////8WgVJQkFBgAGBAUYBhASABYEBSgGACgFRhEguQYUCiVluAYB8BYCCAkQQCYCABYEBRkIEBYEBSgJKRkIGBUmAgAYKAVGESN5BhQKJWW4AVYRKEV4BgHxBhEllXYQEAgINUBAKDUpFgIAGRYRKEVluCAZGQYABSYCBgACCQW4FUgVKQYAEBkGAgAYCDEWESZ1eCkANgHxaCAZFbUFBQUFCBUmAgAWADgFRhEpuQYUCiVluAYB8BYCCAkQQCYCABYEBRkIEBYEBSgJKRkIGBUmAgAYKAVGESx5BhQKJWW4AVYRMUV4BgHxBhEulXYQEAgINUBAKDUpFgIAGRYRMUVluCAZGQYABSYCBgACCQW4FUgVKQYAEBkGAgAYCDEWES91eCkANgHxaCAZFbUFBQUFCBUmAgAYZz//////////////////////////8WgVJgIAFgBIBUYRNHkGFAolZbgGAfAWAggJEEAmAgAWBAUZCBAWBAUoCSkZCBgVJgIAGCgFRhE3OQYUCiVluAFWETwFeAYB8QYROVV2EBAICDVAQCg1KRYCABkWETwFZbggGRkGAAUmAgYAAgkFuBVIFSkGABAZBgIAGAgxFhE6NXgpADYB8WggGRW1BQUFBQgVJgIAFgARUVgVJgIAFgBWAIkFSQYQEACpAEYAcLYAcLgVJgIAFgABUVgVJgIAGEgVJgIAGDgVJQkFBgAGABZ///////////gREVYRQdV2EUHGFBklZbW2BAUZCAglKAYCACYCABggFgQFKAFWEUVleBYCABW2EUQ2ErIFZbgVJgIAGQYAGQA5CBYRQ7V5BQW1CQUGBAUYBgoAFgQFKAYAFj/////xaBUmAgAYZz//////////////////////////8WgVJgIAFgABUVgVJgIAFgABUVgVJgIAGHc///////////////////////////FoFSUIFgAIFRgRBhFM1XYRTMYUFjVltbYCACYCABAYGQUlBgAGABZ///////////gREVYRT1V2EU9GFBklZbW2BAUZCAglKAYCACYCABggFgQFKAFWEVLleBYCABW2EVG2Er+1ZbgVJgIAGQYAGQA5CBYRUTV5BQW1CQUGBAUYBgwAFgQFKAYARj/////xaBUmAgAWAFY/////8WgVJgIAFgCmP/////FoFSYCABYB5j/////xaBUmAgAWAAFRWBUmAgAYhz//////////////////////////8WgVJQgWAAgVGBEGEVp1dhFaZhQWNWW1tgIAJgIAEBgZBSUGAAgGEV6oVgBWAAkFSQYQEACpAEZ///////////FmAFYBCQVJBhAQAKkARj/////xaHh2EkZlZbkVCRUH+Qpc9M/+iLTtuwQc/HqKgSxIpewwuEZA+zdpCHUWjjqoJgQFFhFh2RkGE7LVZbYEBRgJEDkKFgFmADC4IUYRY1V2AAgP1bf3uxdybfHzre6KoAuo6Lxdbxgq87v3dgRjnLfwCN07TtgWBAUWEWZJGQYTo2VltgQFGAkQOQoVBQUFBQUFBQUFZbYACAYABhAWdz//////////////////////////8WY5sj09lg4BuIiIiIYEBRYCQBYRa0lJOSkZBhOnpWW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEXHpGQYTofVltgAGBAUYCDA4FgAIZa8ZFQUD2AYACBFGEXW1dgQFGRUGAfGWA/PQEWggFgQFI9glI9YABgIIQBPmEXYFZbYGCRUFtQkVCRUIFhF3FXYBVhF4ZWW4CAYCABkFGBAZBhF4WRkGExWFZbW2ADC5JQUFCUk1BQUFBWW2AAYAVn//////////+BERVhF7JXYRexYUGSVltbYEBRkICCUoBgIAJgIAGCAWBAUoAVYRfrV4FgIAFbYRfYYSsAVluBUmAgAZBgAZADkIFhF9BXkFBbUJBQYRgMYABgBmAAYEBRgGAgAWBAUoBgAIFSUGEdUFZbgWAAgVGBEGEYIFdhGB9hQWNWW1tgIAJgIAEBgZBSUGEYR2ABYABgQFGAYCABYEBSgGAAgVJQYR2JVluBYAGBUYEQYRhbV2EYWmFBY1ZbW2AgAmAgAQGBkFJQYRiCYAJgAGBAUYBgIAFgQFKAYACBUlBhHYlWW4FgAoFRgRBhGJZXYRiVYUFjVltbYCACYCABAYGQUlBhGL1gBGAAYEBRgGAgAWBAUoBgAIFSUGEdiVZbgWADgVGBEGEY0VdhGNBhQWNWW1tgIAJgIAEBgZBSUGEY+GADYABgQFGAYCABYEBSgGAAgVJQYR2JVluBYASBUYEQYRkMV2EZC2FBY1ZbW2AgAmAgAQGBkFJQYABgQFGAYGABYEBSgGAAY/////8WgVJgIAGEc///////////////////////////FoFSYCABYnoSAGP/////FoFSUJBQYABgQFGAYQEgAWBAUoBgAoBUYRl3kGFAolZbgGAfAWAggJEEAmAgAWBAUZCBAWBAUoCSkZCBgVJgIAGCgFRhGaOQYUCiVluAFWEZ8FeAYB8QYRnFV2EBAICDVAQCg1KRYCABkWEZ8FZbggGRkGAAUmAgYAAgkFuBVIFSkGABAZBgIAGAgxFhGdNXgpADYB8WggGRW1BQUFBQgVJgIAFgA4BUYRoHkGFAolZbgGAfAWAggJEEAmAgAWBAUZCBAWBAUoCSkZCBgVJgIAGCgFRhGjOQYUCiVluAFWEagFeAYB8QYRpVV2EBAICDVAQCg1KRYCABkWEagFZbggGRkGAAUmAgYAAgkFuBVIFSkGABAZBgIAGAgxFhGmNXgpADYB8WggGRW1BQUFBQgVJgIAGFc///////////////////////////FoFSYCABYASAVGEas5BhQKJWW4BgHwFgIICRBAJgIAFgQFGQgQFgQFKAkpGQgYFSYCABgoBUYRrfkGFAolZbgBVhGyxXgGAfEGEbAVdhAQCAg1QEAoNSkWAgAZFhGyxWW4IBkZBgAFJgIGAAIJBbgVSBUpBgAQGQYCABgIMRYRsPV4KQA2AfFoIBkVtQUFBQUIFSYCABYAEVFYFSYCABYAVgCJBUkGEBAAqQBGAHC2AHC4FSYCABYAVgFJBUkGEBAAqQBGD/FhUVgVJgIAGEgVJgIAGDgVJQkFBgAIBhG4aDYSXrVluRUJFQYBZgAwuCFGEbmldgAID9W397sXcm3x863uiqALqOi8XW8YKvO793YEY5y38AjdO07YFgQFFhG8mRkGE6NlZbYEBRgJEDkKFQUFBQUFBWW2AAgGAAYQFnc///////////////////////////FmMV2svqYOAbiIiIiGBAUWAkAWEcFpSTkpGQYTp6VltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhHICRkGE6H1ZbYABgQFGAgwOBhVr0kVBQPYBgAIEUYRy7V2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YRzAVltgYJFQW1CRUJFQgWEc0VdgFWEc5lZbgIBgIAGQUYEBkGEc5ZGQYTFYVltbYAMLklBQUJSTUFBQUFZbYABhHQGDg2EnY1ZbkFB/kKXPTP/oi07bsEHPx6ioEsSKXsMLhGQPs3aQh1Fo46qBYEBRYR0ykZBhOy1WW2BAUYCRA5ChYBZgAwuBFGEdSldgAID9W5KRUFBWW2EdWGErAFZbYEBRgGBAAWBAUoBhHW2Hh2Eoe1ZbgVJgIAFhHXyFhWEo0VZbgVJQkFCUk1BQUFBWW2EdkWErAFZbYEBRgGBAAWBAUoBhHaWGYSqrVluBUmAgAWEdtIWFYSjRVluBUlCQUJOSUFBQVltgAICEYACBYQEAAVFgAAFRY/////8WFIAVYR3yV1BgAIFhAQABUWBAAVFj/////xYUWxVhHhhXYnanAIFhAQABUWBAAZBj/////xaQgWP/////FoFSUFBbYACAYQFnc///////////////////////////FjRjRXM5aWDgG4qKimBAUWAkAWEeUpOSkZBhO95WW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEevJGQYTofVltgAGBAUYCDA4GFh1rxklBQUD2AYACBFGEe+VdgQFGRUGAfGWA/PQEWggFgQFI9glI9YABgIIQBPmEe/lZbYGCRUFtQkVCRUIFhHxFXYBVgAGEfJlZbgIBgIAGQUYEBkGEfJZGQYTGFVltbgWADC5FQgJVQgZZQUFBQUFCTUJORUFBWW2AAgGAAYQFnc///////////////////////////FmOPjX+ZYOAbhoZgQFFgJAFhH3iSkZBhOlFWW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEf4pGQYTofVltgAGBAUYCDA4FgAIZa8ZFQUD2AYACBFGEgH1dgQFGRUGAfGWA/PQEWggFgQFI9glI9YABgIIQBPmEgJFZbYGCRUFtQkVCRUIFhIDVXYBVhIEpWW4CAYCABkFGBAZBhIEmRkGExWFZbW2ADC5JQUFCSkVBQVltgAIBgAGEBZ3P//////////////////////////xZjLmOHm2DgG4aGYEBRYCQBYSCQkpGQYTq/VltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhIPqRkGE6H1ZbYABgQFGAgwOBYACGWvGRUFA9gGAAgRRhITdXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hITxWW2BgkVBbUJFQkVCBYSFNV2AVYSFiVluAgGAgAZBRgQGQYSFhkZBhMVhWW1tgAwuSUFBQkpFQUFZbYACAhGAAgWEBAAFRYAABUWP/////FhSAFWEhoVdQYACBYQEAAVFgQAFRY/////8WFFsVYSHHV2J2pwCBYQEAAVFgQAGQY/////8WkIFj/////xaBUlBQW2AAgGEBZ3P//////////////////////////xY0Y8I7rrZg4BuKiopgQFFgJAFhIgGTkpGQYTwqVltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhImuRkGE6H1ZbYABgQFGAgwOBhYda8ZJQUFA9gGAAgRRhIqhXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hIq1WW2BgkVBbUJFQkVCBYSLAV2AVYABhItVWW4CAYCABkFGBAZBhItSRkGExhVZbW4FgAwuRUICVUIGWUFBQUFBQk1CTkVBQVltgAIBgYGAAgGEBZ3P//////////////////////////xZjJ44LiGDgG4mJiWBAUWAkAWEjLJOSkZBhOu9WW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEjlpGQYTofVltgAGBAUYCDA4FgAIZa8ZFQUD2AYACBFGEj01dgQFGRUGAfGWA/PQEWggFgQFI9glI9YABgIIQBPmEj2FZbYGCRUFtQkVCRUIFhJDRXYBVgAIBn//////////+BERVhJABXYSP/YUGSVltbYEBRkICCUoBgIAJgIAGCAWBAUoAVYSQuV4FgIAFgIIICgDaDN4CCAZFQUJBQW1BhJElWW4CAYCABkFGBAZBhJEiRkGExxVZbW4JgAwuSUICVUIGWUIKXUFBQUFBQk1CTUJOQUFZbYACAhmAAgWEBAAFRYAABUWP/////FhSAFWEkmFdQYACBYQEAAVFgQAFRY/////8WFFsVYSS+V2J2pwCBYQEAAVFgQAGQY/////8WkIFj/////xaBUlBQW2AAgGEBZ3P//////////////////////////xY0Y7k3WBpg4BuMjIyMjGBAUWAkAWEk/JWUk5KRkGE8aFZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYSVmkZBhOh9WW2AAYEBRgIMDgYWHWvGSUFBQPYBgAIEUYSWjV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YSWoVltgYJFQW1CRUJFQgWElu1dgFWAAYSXQVluAgGAgAZBRgQGQYSXPkZBhMYVWW1uBYAMLkVCAlVCBllBQUFBQUJVQlZNQUFBQVltgAICCYACBYQEAAVFgAAFRY/////8WFIAVYSYdV1BgAIFhAQABUWBAAVFj/////xYUWxVhJkNXYnanAIFhAQABUWBAAZBj/////xaQgWP/////FoFSUFBbYACAYQFnc///////////////////////////FjRjnIm7NWDgG4hgQFFgJAFhJnmRkGE7vFZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYSbjkZBhOh9WW2AAYEBRgIMDgYWHWvGSUFBQPYBgAIEUYScgV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YSclVltgYJFQW1CRUJFQgWEnOFdgFWAAYSdNVluAgGAgAZBRgQGQYSdMkZBhMYVWW1uBYAMLkVCAlVCBllBQUFBQUJFQkVZbYACAYABhAWdz//////////////////////////8WY0kUa95g4BuGhmBAUWAkAWEnnJKRkGE6UVZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYSgGkZBhOh9WW2AAYEBRgIMDgWAAhlrxkVBQPYBgAIEUYShDV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YShIVltgYJFQW1CRUJFQgWEoWVdgFWEoblZbgIBgIAGQUYEBkGEobZGQYTFYVltbYAMLklBQUJKRUFBWW2AAYSiig2AGgREVYSiTV2EokmFBBVZbW4JhKuyQkZBj/////xZWW5BQYSjJgmAGgREVYSi6V2EouWFBBVZbW4JhKuyQkZBj/////xZWW5BQkpFQUFZbYSjZYSxhVltgAGAEgREVYSjtV2Eo7GFBBVZbW4NgBIERFWEpAFdhKP9hQQVWW1sUFWEpHFdgAYFgAAGQFRWQgRUVgVJQUGEqpVZbYAFgBIERFWEpMFdhKS9hQQVWW1uDYASBERVhKUNXYSlCYUEFVltbFBVhKaZXYACAVJBhAQAKkARz//////////////////////////8WgWAgAZBz//////////////////////////8WkIFz//////////////////////////8WgVJQUGEqpFZbYAJgBIERFWEpuldhKblhQQVWW1uDYASBERVhKc1XYSnMYUEFVltbFBVhKeFXgYFgQAGBkFJQYSqjVltgA2AEgREVYSn1V2Ep9GFBBVZbW4NgBIERFWEqCFdhKgdhQQVWW1sUFWEqHFeBgWBgAYGQUlBhKqJWW2AEgIERFWEqL1dhKi5hQQVWW1uDYASBERVhKkJXYSpBYUEFVltbFBVhKqFXYACAVJBhAQAKkARz//////////////////////////8WgWCAAZBz//////////////////////////8WkIFz//////////////////////////8WgVJQUFtbW1tbkpFQUFZbYABgAWAAg2AGgREVYSrEV2Eqw2FBBVZbW2AGgREVYSrWV2Eq1WFBBVZbW4FSYCABkIFSYCABYAAgVJBQkZBQVltgAIFg/xZgAZAbgxeQUJKRUFBWW2BAUYBgQAFgQFKAYACBUmAgAWErGmEsYVZbgVJQkFZbYEBRgGCgAWBAUoBgAGP/////FoFSYCABYABz//////////////////////////8WgVJgIAFgABUVgVJgIAFgABUVgVJgIAFgAHP//////////////////////////xaBUlCQVltgQFGAYMABYEBSgGAAY/////8WgVJgIAFgAGP/////FoFSYCABYABj/////xaBUmAgAWAAc///////////////////////////FoFSYCABYAAVFYFSYCABYABz//////////////////////////8WgVJQkFZbYEBRgGDAAWBAUoBgAGP/////FoFSYCABYABj/////xaBUmAgAWAAY/////8WgVJgIAFgAGP/////FoFSYCABYAAVFYFSYCABYABz//////////////////////////8WgVJQkFZbYEBRgGCgAWBAUoBgABUVgVJgIAFgAHP//////////////////////////xaBUmAgAWBggVJgIAFgYIFSYCABYABz//////////////////////////8WgVJQkFZbYABhLNFhLMyEYT0lVlthPQBWW5BQgIOCUmAgggGQUIKFYCCGAoIBERVhLPRXYSzzYUHGVltbYABbhYEQFWEtJFeBYS0KiIJhLm5WW4RSYCCEAZNQYCCDAZJQUGABgQGQUGEs91ZbUFBQk5JQUFBWW2AAYS1BYS08hGE9UVZbYT0AVluQUICDglJgIIIBkFCChWAghgKCAREVYS1kV2EtY2FBxlZbW2AAW4WBEBVhLbJXgTVn//////////+BERVhLYpXYS2JYUHBVltbgIYBYS2XiYJhLyJWW4VSYCCFAZRQYCCEAZNQUFBgAYEBkFBhLWdWW1BQUJOSUFBQVltgAGEtz2EtyoRhPX1WW2E9AFZbkFCAg4JSYCCCAZBQgoVgIIYCggERFWEt8ldhLfFhQcZWW1tgAFuFgRAVYS4iV4FhLgiIgmEvZVZbhFJgIIQBk1BgIIMBklBQYAGBAZBQYS31VltQUFCTklBQUFZbYABhLj9hLjqEYT2pVlthPQBW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"},{"b64Body":"ChIKCQii9YStBhCpCBIDGJEPIAFCHUIFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50","b64Record":"CgcIFiIDGJQPEjDqDmSazoenYHhVZkF0Xq32u37+4xJsDo2bnag6tbtyFN8bGgksYfO7n5e7HjH7njoaDAje9YStBhC0vpfAASISCgkIovWErQYQqQgSAxiRDyABQh0KAxiUD0oWChRo0QqXVcwplybn8dc0C1BNGiD07VIAegwI3vWErQYQs76XwAE="}]},"directTransferWorksForERC20":{"placeholderNum":1941,"encodedItems":[{"b64Body":"Cg8KCQin9YStBhDDCBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloyCiISIJ9oQutW1DYaQuMZ5v4FovSv3cbm+3sl/QAZlkpipSrhEICglKWNHUoFCIDO2gM=","b64Record":"CiUIFhIDGJYPKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAcnNOOjxi5c8+bUf6WNDfWV5EVRpjDBvQ3bdGc2FnUggRj6F//SgJGVym9KjY2rqQaDAjj9YStBhDz+KrFAiIPCgkIp/WErQYQwwgSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIbCgsKAhgCEP+/qMqaOgoMCgMYlg8QgMCoypo6"},{"b64Body":"Cg8KCQio9YStBhDFCBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIKz0j/QGJ0ZZJEPdRZxR6l5pJ9P2f6skq4HEx0z1N+DDEICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGJcPKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBAjOpWZsjjIqX1oSgu1Dn8DssS9E8AiJmiH7pRk2eSAlIzEjnBZ96u55dPfBqs/VUaCwjk9YStBhCblbBOIg8KCQio9YStBhDFCBICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUhkKCgoCGAIQ/6fWuQcKCwoDGJcPEICo1rkH"},{"b64Body":"Cg8KCQio9YStBhDHCBICGAISAhgDGKWr3ugCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAScKCXRva2VuTmFtZRIFRkRGR0YgBSoDGJcPagwI5MPfsAYQgKuCugI=","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGJgPEjCqZPT+VuiNe1A4jQQPm5/zvgz6WZ/vYazfoiXf178vh9wJd1TF4R1siPqZ1S3JsTIaDAjk9YStBhD76Z7PAiIPCgkIqPWErQYQxwgSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWg4KAxiYDxIHCgMYlw8QCnIKCgMYmA8SAxiXDw=="},{"b64Body":"Cg8KCQip9YStBhDNCBICGAISAhgDGOC2iyAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGJYPEgMYmA8=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwvey5p1eqI0cHNYf6LqswW6lYR/3DO2BXl0kkfNS9cTpcU26M/wLlS67ttsduTnP9GgsI5fWErQYQ86qgVyIPCgkIqfWErQYQzQgSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"ChEKCQip9YStBhDPCBICGAIgAVpqCiM6IQLGz0YgkXHdolB/VU+avOq89u7g8Jcq2F64LhjgrST8WkoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50cAGSASM6IQLGz0YgkXHdolB/VU+avOq89u7g8Jcq2F64LhjgrST8Wg==","b64Record":"CgcIFhIDGJkPEjA3B1mxvwsRiUUBM6O690H5xFaI9RWQJddTsTC1NC8E1D4QpKyUOKNT9BUIfi3D/LIaDAjl9YStBhDy3ffYAiIRCgkIqfWErQYQzwgSAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARTCcZKwdR8tMbhggB9994AxtC6JTg=="},{"b64Body":"Cg8KCQip9YStBhDPCBICGAISAhgDGOufNiICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcjsSOQoDGJgPEgcKAxiXDxAFEikKJSIjOiECxs9GIJFx3aJQf1VPmrzqvPbu4PCXKtheuC4Y4K0k/FoQBg==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwVIKZdz5/IlhDDGzWCCsHPLWB0ljC1QjgFljXY/OW0o5dyTYzdzPU7OcMvbN/LlINGgwI5fWErQYQ89332AIiDwoJCKn1hK0GEM8IEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAFoXCgMYmA8SBwoDGJcPEAUSBwoDGJkPEAZyCgoDGJgPEgMYmQ8="},{"b64Body":"ChAKCQiq9YStBhDRCBIDGJYPEgIYAxjMlOEVIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA/YBCu0BAvjqggEqgKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIMPQkCUAAAAAAAAAAAAAAAAAAAAAAAAB5iAuESpBZy7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB5YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8ABoHptk3EpRyOABeQYie8QqWDEHaUhjtOX2SjMF0U0xHN6oGv2LMD3/nH1gh3YB2GQ5CtalJcFGbBMzCJ8CmxuWDeJGIDKte4B","b64Record":"CiUIFiIDGJgPKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjD4/vikLMrdflMsjpzcED+X5BVPqrxnI/oiHwdyE0UyNH5bEWQdCb3WULLw42Nqu4oaCwjm9YStBhCD4ol9IhAKCQiq9YStBhDRCBIDGJYPKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDM+uswOpAGCgMYmA8SIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAACAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAACiA6jAykAMKAxiYDxKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAAAaIN3yUq0b4sibacKwaPw3jaqVK6fxY8ShFij1Wk31I7PvGiAAAAAAAAAAAAAAAADCcZKwdR8tMbhggB9994AxtC6JThogAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB5YiIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADUMCEPWJEqQWcuwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANqAxiZD1I6CgkKAhgDEJqZyAEKCQoCGGIQ5tjdVwoKCgMYoAYQzIGZBAoKCgMYoQYQzIGZBAoKCgMYlg8Ql/XXYYoBIE4OsedxtKGlUhW7c3Thcp1CLIx6r0q9pxp9TtwviN8r"},{"b64Body":"ChIKCQiq9YStBhDRCBIDGJYPIAFyGRIXCgMYmA8SBwoDGJYPEAYSBwoDGJkPEAU=","b64Record":"CgIIFhIw44ljRwRHGeDiFjCGBmo7yrWl/DCTQZbfrsXzK1SQ27fBQU4pGxltqSz8rHqsHcC3GgsI5vWErQYQhOKJfSISCgkIqvWErQYQ0QgSAxiWDyABOpEBCgMY5wISIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKIVuULDROmJcYY3GXgAAAAAAAAAAAAAAAAAAAAAAAAeYqQWcuwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANqAxiZD1IAWhcKAxiYDxIHCgMYlg8QBhIHCgMYmQ8QBXoLCOb1hK0GEIPiiX0="}]},"transferHbarsViaEip2930TxSuccessfully":{"placeholderNum":1946,"encodedItems":[{"b64Body":"Cg8KCQiu9YStBhDpCBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlorCiISIJzMNH4z+bj/I1E6dtQUClPLwR9Rzt1KpGjwpKWEf3TRSgUIgM7aAw==","b64Record":"CiUIFhIDGJsPKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAt7KapCsb+SSjwwy9MqNOVa6YjoyzQCgQRs3aJKsyzEBGnvfz6EZXR2nCqrsqaXFcaCwjr9YStBhDDlrQBIg8KCQiu9YStBhDpCBICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgA="},{"b64Body":"Cg8KCQiv9YStBhDrCBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISICyZmIGIlbR40cjosuFSMnMqz/0cyoDCVpSQjXDTh78VEICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGJwPKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDL1+6tLyyRFAPaSFk0fG8CnZp4OJOvV6wkaz10jufUILY+iD3erQx3Ft4li+1yFx8aDAjr9YStBhCL4viDAiIPCgkIr/WErQYQ6wgSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIfCg0KAhgCEP//663M7JACCg4KAxicDxCAgOytzOyQAg=="},{"b64Body":"ChEKCQiw9YStBhDtCBICGAIgAVpoCiM6IQIkGkMvUuB9Ae55bU5tZ6R1wOb/daDCy8tVi9cAPUcarEoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiECJBpDL1LgfQHueW1ObWekdcDm/3WgwsvLVYvXAD1HGqw=","b64Record":"CgcIFhIDGJ0PEjAuzoGFmgVgfgEXc/Xt5iRCGqWmWtpH00WIeWwmeNbmbI9GTjhDGJk3yoluRULsZD8aCwjs9YStBhCauskKIhEKCQiw9YStBhDtCBICGAIgASoUYXV0by1jcmVhdGVkIGFjY291bnRSAKoBFHm88N6q74tpWpU7kKD7tvlf2w2B"},{"b64Body":"Cg8KCQiw9YStBhDtCBICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohAiQaQy9S4H0B7nltTm1npHXA5v91oMLLy1WL1wA9RxqsEICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwgVcVtxtHcvlb+oYpcecwlnbEP0ZW+TwMP7iz3yCtqJQwmYXPB+ScdKxy2qLInq/LGgsI7PWErQYQm7rJCiIPCgkIsPWErQYQ7QgSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxidDxCAkN/ASg=="},{"b64Body":"ChAKCQiw9YStBhD3CBIDGJwPEgIYAxiZ57UVIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA5gBCo8BAfiMggEqgKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIMehICUAAAAAAAAAAAAAAAAAAAAAAAAB5uIRWORgkT0AACAwAGg5N/BNDbmMO1fLumT6RLroYoKAqe0pnnL9DwL7CTiLL6gU22pnP9M8upvZptMfw0zIy2pQPusFKJRkt8ZYJi8NDEYgMq17gE=","b64Record":"CiUIFiIDGJsPKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjC3GGnVHMfUV7fEVbbUJLfBXGXKcKai4gPsJdWgurgVbhgqZM2Z6FuGnqHVRI3DOlMaDAjs9YStBhCbormMAiIQCgkIsPWErQYQ9wgSAxicDyogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wmbPLSzqbAgoDGJsPIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACiA1GFQgIl6WIDKte4BagMYnQ9SVgoJCgIYAxCqjMMBCgoKAhhiEIiAso0BCgoKAxigBhCA7ZAECgoKAxihBhCA7ZAECgsKAxibDxCAlOvcAwoLCgMYnA8QseaWlwEKCwoDGJ0PEP+T69wDigEgacxJ87sS5bQFlQ3up7x7zqFzKG6kyTcf5DJDW5jHPjw="}]},"callToTokenAddressViaEip2930TxSuccessfully":{"placeholderNum":1950,"encodedItems":[{"b64Body":"Cg8KCQi19YStBhCPCRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIENd6dDNUi8pi+Pbxze1/83dwlTdxnboMjXbiNSqkZ5tEICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGJ8PKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAF6x3jgfZ9Kp2NRFGD/JJYUaHQK11qAuVQTuUIYasVDB7HdYQa5ug/vUSbWVlXTUkaDAjx9YStBhDjnNmsASIPCgkItfWErQYQjwkSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIfCg0KAhgCEP//663M7JACCg4KAxifDxCAgOytzOyQAg=="},{"b64Body":"Cg8KCQi19YStBhCRCRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIKWQRrMe8/54cp8ozxFTt7KeVvPPcsLj7/KQeZ5Kh2tPEICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGKAPKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjD1PYZ0Slpaav/XQaXk4491SFjimL/eIR6xr99H/zmnuFFlpMck3zARFQPmrug3XwsaDAjx9YStBhDD7sWuAyIPCgkItfWErQYQkQkSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxigDxCAqNa5Bw=="},{"b64Body":"ChEKCQi29YStBhCTCRICGAIgAVpoCiM6IQNe6Yk8oQQrjF5wJLGYIPNQl/xW/54i73MfLUVkMuSM9UoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiEDXumJPKEEK4xecCSxmCDzUJf8Vv+eIu9zHy1FZDLkjPU=","b64Record":"CgcIFhIDGKEPEjBM1BowDeuTytZfYvGqZUGOGsq/b85Gf8QwVnivgOi0Wtm+F4NYrnP2+lRPp5ksQwYaDAjy9YStBhD6s4S3ASIRCgkItvWErQYQkwkSAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARQELdLQVgdL651oI8DkxZWdr8P7Og=="},{"b64Body":"Cg8KCQi29YStBhCTCRICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohA17piTyhBCuMXnAksZgg81CX/Fb/niLvcx8tRWQy5Iz1EICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwSuTx5T+Hu+C2l8bMLIFTzFlNLnT5VPDGAT3KW0Smf9eaylT29XuDmwJn9pqtDJSjGgwI8vWErQYQ+7OEtwEiDwoJCLb1hK0GEJMJEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SGQoKCgIYAhD/j9/ASgoLCgMYoQ8QgJDfwEo="},{"b64Body":"Cg8KCQi29YStBhCVCRICGAISAhgDGL7W8vsCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAXgKDWZ1bmdpYmxlVG9rZW4SCFVHWkdITVJWIDIqAxigDzIjOiEDXumJPKEEK4xecCSxmCDzUJf8Vv+eIu9zHy1FZDLkjPVSIzohA17piTyhBCuMXnAksZgg81CX/Fb/niLvcx8tRWQy5Iz1agwI8sPfsAYQ4LXLmgM=","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGKIPEjD1QvXBLUNT2m+3VH39olNDWYgCza7JMvoCLrrJO+P4XZ6WTfIIOjFc0xBvddyppcoaDAjy9YStBhCLwq64AyIPCgkItvWErQYQlQkSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWg4KAxiiDxIHCgMYoA8QZHIKCgMYog8SAxigDw=="},{"b64Body":"Cg8KCQi39YStBhCXCRICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAjzw9+wBhCgsduwARptCiISIF4dn2O9fxDCkvMK2NHm8UH1U6yaQufWkB4rM9qxUqQ6CiM6IQPMeaAwZmZo99QTnVlug71K/YGZCqNO/qk0KRz0XabTEwoiEiBrOaPFPExsSpFBAXma35J5EeXZtgevduKxgq45a8vYkyIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGKMPKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjA5g7f9Hv5CN2ah/+hCLWNdoAhHjONI6fmgxQWWeJmhE5/bquB6KUm3ZV9TyetM/6QaDAjz9YStBhCTjZ3AASIPCgkIt/WErQYQlwkSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQi39YStBhCbCRICGAISAhgDGIydjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxijDyKAIDYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMGE1NzgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDBjZjU3NjAwMDM1NjBlMDFjODA2M2JlYWJhY2M4MTE2MTAwOGM1NzgwNjNlNGRjMmFhNDExNjEwMDY2NTc4MDYzZTRkYzJhYTQxNDYxMDE4MTU3ODA2M2Y0Yjc5ZGE1MTQ2MTAxOTQ1NzgwNjNmNzg4OGFlYzE0NjEwMWE3NTc4MDYzZjc5Yzc1NjgxNDYxMDFiYTU3NjAwMDgwZmQ1YjgwNjNiZWFiYWNjODE0NjEwMTQ4NTc4MDYzZDQ0OWE4MzIxNDYxMDE1YjU3ODA2M2UxZjIxYzY3MTQ2MTAxNmU1NzYwMDA4MGZkNWI4MDYzMDE5ODQ4OTIxNDYxMDBkNDU3ODA2MzE1ZGFjYmVhMTQ2MTAwZTk1NzgwNjMxZjg0YjJiNzE0NjEwMGZjNTc4MDYzOTI3ZGExMDUxNDYxMDEwZjU3ODA2Mzk4ZGNhNWJlMTQ2MTAxMjI1NzgwNjNhODZlMzU3NjE0NjEwMTM1NTc1YjYwMDA4MGZkNWI2MTAwZTc2MTAwZTIzNjYwMDQ2MTA3NDY1NjViNjEwMWNkNTY1YjAwNWI2MTAwZTc2MTAwZjczNjYwMDQ2MTA3Njg1NjViNjEwMjM3NTY1YjYxMDBlNzYxMDEwYTM2NjAwNDYxMDdiMzU2NWI2MTAyYjk1NjViNjEwMGU3NjEwMTFkMzY2MDA0NjEwN2VmNTY1YjYxMDMzMzU2NWI2MTAwZTc2MTAxMzAzNjYwMDQ2MTA3Njg1NjViNjEwM2FiNTY1YjYxMDBlNzYxMDE0MzM2NjAwNDYxMDc0NjU2NWI2MTAzZTg1NjViNjEwMGU3NjEwMTU2MzY2MDA0NjEwN2IzNTY1YjYxMDQyNjU2NWI2MTAwZTc2MTAxNjkzNjYwMDQ2MTA3NDY1NjViNjEwNDlhNTY1YjYxMDBlNzYxMDE3YzM2NjAwNDYxMDdiMzU2NWI2MTA0ZmM1NjViNjEwMGU3NjEwMThmMzY2MDA0NjEwNzQ2NTY1YjYxMDUzMTU2NWI2MTAwZTc2MTAxYTIzNjYwMDQ2MTA3YjM1NjViNjEwNTkzNTY1YjYxMDBlNzYxMDFiNTM2NjAwNDYxMDgzMjU2NWI2MTA2Mzc1NjViNjEwMGU3NjEwMWM4MzY2MDA0NjEwODY1NTY1YjYxMDZhNjU2NWI4MDYwMDE2MDAxNjBhMDFiMDMxNjYzMDZmZGRlMDM2MDQwNTE4MTYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MDAwNjA0MDUxODA4MzAzODE4NjVhZmExNTgwMTU2MTAyMGI1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA2MDQwNTEzZDYwMDA4MjNlNjAxZjNkOTA4MTAxNjAxZjE5MTY4MjAxNjA0MDUyNjEwMjMzOTE5MDgxMDE5MDYxMDhkMTU2NWI1MDUwNTY1YjYwNDA1MTYzMjNiODcyZGQ2MGUwMWI4MTUyNjAwMTYwMDE2MGEwMWIwMzg0ODExNjYwMDQ4MzAxNTI4MzgxMTY2MDI0ODMwMTUyNjA0NDgyMDE4MzkwNTI4NTE2OTA2MzIzYjg3MmRkOTA2MDY0MDE2MDIwNjA0MDUxODA4MzAzODE2MDAwODc1YWYxMTU4MDE1NjEwMjhlNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTAyYjI5MTkwNjEwOTdlNTY1YjUwNTA1MDUwNTA1NjViNjA0MDUxNjNhOTA1OWNiYjYwZTAxYjgxNTI2MDAxNjAwMTYwYTAxYjAzODM4MTE2NjAwNDgzMDE1MjYwMjQ4MjAxODM5MDUyODQxNjkwNjNhOTA1OWNiYjkwNjA0NDAxNWI2MDIwNjA0MDUxODA4MzAzODE2MDAwODc1YWYxMTU4MDE1NjEwMzA5NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTAzMmQ5MTkwNjEwOTdlNTY1YjUwNjAwMDgwZmQ1YjYwNDA1MTYzNmViMTc2OWY2MGUxMWI4MTUyNjAwMTYwMDE2MGEwMWIwMzgzODExNjYwMDQ4MzAxNTI4MjgxMTY2MDI0ODMwMTUyODQxNjkwNjNkZDYyZWQzZTkwNjA0NDAxNjAyMDYwNDA1MTgwODMwMzgxODY1YWZhMTU4MDE1NjEwMzgxNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTAzYTU5MTkwNjEwOWEwNTY1YjUwNTA1MDUwNTY1YjYwNDA1MTYzMjNiODcyZGQ2MGUwMWI4MTUyNjAwMTYwMDE2MGEwMWIwMzg0ODExNjYwMDQ4MzAxNTI4MzgxMTY2MDI0ODMwMTUyNjA0NDgyMDE4MzkwNTI4NTE2OTA2MzIzYjg3MmRkOTA2MDY0MDE2MTAyZWE1NjViODA2MDAxNjAwMTYwYTAxYjAzMTY2Mzk1ZDg5YjQxNjA0MDUxODE2M2ZmZmZmZmZmMTY2MGUwMWI4MTUyNjAwNDAxNjAwMDYwNDA1MTgwODMwMzgxODY1YWZhMTU4MDE1NjEwMjBiNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjYwNDA1MTYzYTkwNTljYmI2MGUwMWI4MTUyNjAwMTYwMDE2MGEwMWIwMzgzODExNjYwMDQ4MzAxNTI2MDI0ODIwMTgzOTA1Mjg0MTY5MDYzYTkwNTljYmI5MDYwNDQwMTViNjAyMDYwNDA1MTgwODMwMzgxNjAwMDg3NWFmMTE1ODAxNTYxMDQ3NjU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAxZjE5NjAxZjgyMDExNjgyMDE4MDYwNDA1MjUwODEwMTkwNjEwM2E1OTE5MDYxMDk3ZTU2NWI4MDYwMDE2MDAxNjBhMDFiMDMxNjYzMzEzY2U1Njc2MDQwNTE4MTYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MDIwNjA0MDUxODA4MzAzODE4NjVhZmExNTgwMTU2MTA0ZDg1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA2MDQwNTEzZDYwMWYxOTYwMWY4MjAxMTY4MjAxODA2MDQwNTI1MDgxMDE5MDYxMDIzMzkxOTA2MTA5Yjk1NjViNjA0MDUxNjMwOTVlYTdiMzYwZTAxYjgxNTI2MDAxNjAwMTYwYTAxYjAzODM4MTE2NjAwNDgzMDE1MjYwMjQ4MjAxODM5MDUyODQxNjkwNjMwOTVlYTdiMzkwNjA0NDAxNjEwNDU3NTY1YjgwNjAwMTYwMDE2MGEwMWIwMzE2NjMxODE2MGRkZDYwNDA1MTgxNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYwMjA2MDQwNTE4MDgzMDM4MTg2NWFmYTE1ODAxNTYxMDU2ZjU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAxZjE5NjAxZjgyMDExNjgyMDE4MDYwNDA1MjUwODEwMTkwNjEwMjMzOTE5MDYxMDlhMDU2NWI2MDQwNTE2MDAxNjAwMTYwYTAxYjAzODM4MTE2NjAyNDgzMDE1MjYwNDQ4MjAxODM5MDUyNjAwMDkxODI5MTg2MTY5MDYwNjQwMTYwNDA4MDUxNjAxZjE5ODE4NDAzMDE4MTUyOTE4MTUyNjAyMDgyMDE4MDUxNjAwMTYwMDE2MGUwMWIwMzE2NjNhOTA1OWNiYjYwZTAxYjE3OTA1MjUxNjEwNWVkOTE5MDYxMDlkYzU2NWI2MDAwNjA0MDUxODA4MzAzODE4NTVhZjQ5MTUwNTAzZDgwNjAwMDgxMTQ2MTA2Mjg1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTA2MmQ1NjViNjA2MDkxNTA1YjUwNTA1MDUwNTA1MDUwNTA1NjViNjA0MDUxNjM3MGEwODIzMTYwZTAxYjgxNTI2MDAxNjAwMTYwYTAxYjAzODI4MTE2NjAwNDgzMDE1MjgzMTY5MDYzNzBhMDgyMzE5MDYwMjQwMTYwMjA2MDQwNTE4MDgzMDM4MTg2NWFmYTE1ODAxNTYxMDY3ZDU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAxZjE5NjAxZjgyMDExNjgyMDE4MDYwNDA1MjUwODEwMTkwNjEwNmExOTE5MDYxMDlhMDU2NWI1MDUwNTA1NjViNjAwMDViODE4MTEwMTU2MTA2YTE1NzgyNjAwMTYwMDE2MGEwMWIwMzE2NjMwNmZkZGUwMzYwNDA1MTgxNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYwMDA2MDQwNTE4MDgzMDM4MTg2NWFmYTE1ODAxNTYxMDZlZjU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAwMDgyM2U2MDFmM2Q5MDgxMDE2MDFmMTkxNjgyMDE2MDQwNTI2MTA3MTc5MTkwODEwMTkwNjEwOGQxNTY1YjUwODA2MTA3MjI4MTYxMDlmODU2NWI5MTUwNTA2MTA2YTk1NjViODAzNTYwMDE2MDAxNjBhMDFiMDM4MTE2ODExNDYxMDc0MTU3NjAwMDgwZmQ1YjkxOTA1MDU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTA3NTg1NzYwMDA4MGZkNWI2MTA3NjE4MjYxMDcyYTU2NWI5MzkyNTA1MDUwNTY1YjYwMDA4MDYwMDA4MDYwODA4NTg3MDMxMjE1NjEwNzdlNTc2MDAwODBmZDViNjEwNzg3ODU2MTA3MmE1NjViOTM1MDYxMDc5NTYwMjA4NjAxNjEwNzJhNTY1YjkyNTA2MTA3YTM2MDQwODYwMTYxMDcyYTU2NWI5Mzk2OTI5NTUwOTI5MzYwNjAwMTM1OTI1MDUwNTY1YjYwMDA4MDYwMDA2MDYwODQ4NjAzMTIxNTYxMDdjODU3NjAwMDgwZmQ1YjYxMDdkMTg0NjEwNzJhNTY1YjkyNTA2MTA3ZGY2MDIwODUwMTYxMDcyYTU2NWI=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIws8xtEykzqomCF91Ugd2M/Ob0c/t9QHZ5gvcnG3AK1ACzB2n5iLwSnrWjUflDmb4OGgwI8/WErQYQk+S/pQMiDwoJCLf1hK0GEJsJEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQi49YStBhChCRICGAISAhgDGKq4szIiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIB9gkSAxijDyLuCTkxNTA2MDQwODQwMTM1OTA1MDkyNTA5MjUwOTI1NjViNjAwMDgwNjAwMDYwNjA4NDg2MDMxMjE1NjEwODA0NTc2MDAwODBmZDViNjEwODBkODQ2MTA3MmE1NjViOTI1MDYxMDgxYjYwMjA4NTAxNjEwNzJhNTY1YjkxNTA2MTA4Mjk2MDQwODUwMTYxMDcyYTU2NWI5MDUwOTI1MDkyNTA5MjU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMDg0NTU3NjAwMDgwZmQ1YjYxMDg0ZTgzNjEwNzJhNTY1YjkxNTA2MTA4NWM2MDIwODQwMTYxMDcyYTU2NWI5MDUwOTI1MDkyOTA1MDU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMDg3ODU3NjAwMDgwZmQ1YjYxMDg4MTgzNjEwNzJhNTY1Yjk0NjAyMDkzOTA5MzAxMzU5MzUwNTA1MDU2NWI2MzRlNDg3YjcxNjBlMDFiNjAwMDUyNjA0MTYwMDQ1MjYwMjQ2MDAwZmQ1YjYwMDA1YjgzODExMDE1NjEwOGMwNTc4MTgxMDE1MTgzODIwMTUyNjAyMDAxNjEwOGE4NTY1YjgzODExMTE1NjEwM2E1NTc1MDUwNjAwMDkxMDE1MjU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTA4ZTM1NzYwMDA4MGZkNWI4MTUxNjdmZmZmZmZmZmZmZmZmZmZmODA4MjExMTU2MTA4ZmI1NzYwMDA4MGZkNWI4MTg0MDE5MTUwODQ2MDFmODMwMTEyNjEwOTBmNTc2MDAwODBmZDViODE1MTgxODExMTE1NjEwOTIxNTc2MTA5MjE2MTA4OGY1NjViNjA0MDUxNjAxZjgyMDE2MDFmMTk5MDgxMTY2MDNmMDExNjgxMDE5MDgzODIxMTgxODMxMDE3MTU2MTA5NDk1NzYxMDk0OTYxMDg4ZjU2NWI4MTYwNDA1MjgyODE1Mjg3NjAyMDg0ODcwMTAxMTExNTYxMDk2MjU3NjAwMDgwZmQ1YjYxMDk3MzgzNjAyMDgzMDE2MDIwODgwMTYxMDhhNTU2NWI5Nzk2NTA1MDUwNTA1MDUwNTA1NjViNjAwMDYwMjA4Mjg0MDMxMjE1NjEwOTkwNTc2MDAwODBmZDViODE1MTgwMTUxNTgxMTQ2MTA3NjE1NzYwMDA4MGZkNWI2MDAwNjAyMDgyODQwMzEyMTU2MTA5YjI1NzYwMDA4MGZkNWI1MDUxOTE5MDUwNTY1YjYwMDA2MDIwODI4NDAzMTIxNTYxMDljYjU3NjAwMDgwZmQ1YjgxNTE2MGZmODExNjgxMTQ2MTA3NjE1NzYwMDA4MGZkNWI2MDAwODI1MTYxMDllZTgxODQ2MDIwODcwMTYxMDhhNTU2NWI5MTkwOTEwMTkyOTE1MDUwNTY1YjYwMDA2MDAwMTk4MjE0MTU2MTBhMWE1NzYzNGU0ODdiNzE2MGUwMWI2MDAwNTI2MDExNjAwNDUyNjAyNDYwMDBmZDViNTA2MDAxMDE5MDU2ZmVhMjY0Njk3MDY2NzM1ODIyMTIyMDkzZGI3ZDJiZGQwOTYyNTBhZGQ4ZWZlNmNjOWJhNGExZjdjZjEzOGQ0MTBiNTQ0ODlmNmFlYmY0NDI5NmRmM2Y2NDczNmY2YzYzNDMwMDA4MGIwMDMz","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwEmALdyEAu6QeE34GNQN8ll4xpcn6U1xbWaJHfCDe8pn0dMY8t8Ghosxc4rdDQtaIGgwI9PWErQYQm/q+yQEiDwoJCLj1hK0GEKEJEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQi49YStBhCjCRICGAISAhgDGK/Dto0EIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5ClgEKAxijDxpzKnEIAhJtCiISII4T7cTaL29ZVXas0218HW1T93OQoYzhDgPRKKAQHqeXCiM6IQLjbROfdkddCcUAFUHiGnBBsis+Xz1w/0F62Ve60PyG5QoiEiCYvl3ju9ErdFA0O6yXGk8HseQ1TG7xQ5YXwbiuAyo7miCQoQ9CBQiAztoDUgBaAGoLY2VsbGFyIGRvb3I=","b64Record":"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"},{"b64Body":"ChAKCQi59YStBhClCRIDGJ8PEgIYAxigl8MVIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA7UBCqwBAvipggEqgKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0alKIAIMPQkCUAAAAAAAAAAAAAAAAAAAAAAAAB6KAhBgWDd3AgKARcsuQToYbR14jKdLL+dvJ5oKm5/qw28sEbSsfZbTp26A5UxIIsIfD8Oh7uxJKN0wijVz0ys0JZmleCq1HkAUWbBiAyrXuAQ==","b64Record":"CiUIFiIDGKIPKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBQebgb1kJiEu9w3mhXNShEKdS+YUmu4fpkrPSpGkrrG1R05jgqT+Dz/M8uuM2GGWMaDAj19YStBhCD1oXTASIQCgkIufWErQYQpQkSAxifDyogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4woP3NMDq9AgoDGKIPEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMiKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAogOowUMCEPWIEGBYN3WoDGKEPUkYKCQoCGAMQ4NXEAQoJCgIYYhCcxrBXCgoKAxigBhCir5MECgoKAxihBhCir5MECgoKAxifDxC/uMQxCgoKAxihDxD/wdcvigEg/xKOcaEQLFsY17AB0pUc61T+mki4cFFBX3IaCBzoY3I="},{"b64Body":"ChIKCQi59YStBhClCRIDGJ8PIAE6JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAHohgWDd0=","b64Record":"CgIIFhIwONMAAmjzGbh0Qk2bCN+sHJ7QMHXheglAySYlNWFLFSor0l7Qz6FlkjTq3MR8eoSZGgwI9fWErQYQhNaF0wEiEgoJCLn1hK0GEKUJEgMYnw8gATouCgMY5wISIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyKGRqAxihD1IAegwI9fWErQYQg9aF0wE="}]},"transferTokensViaEip2930TxSuccessfully":{"placeholderNum":1957,"encodedItems":[{"b64Body":"Cg8KCQi+9YStBhC9CRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIG0QENxZ09gQl+vfhQJve+THhhnFyHhyVzFnektuJxMqEICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGKYPKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjC4XOQvVONaRF4oDJG4NiDtOLbFx9Znpl/zE/zVqpUhSnJcSIESy2Tx09YIX9iPZmAaCwj69YStBhDDvcV0Ig8KCQi+9YStBhC9CRICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUhkKCgoCGAIQ/6fWuQcKCwoDGKYPEICo1rkH"},{"b64Body":"Cg8KCQi+9YStBhC/CRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIMvTXIG+cZ5EnuF9n0g1VfACeTg3zL6SwpZXA53yYFw9EICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGKcPKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCas4SwkD0kCd0I5CVbfEQq408sg8uiLSIn03CFLUEmi5a03tG8zza0s0kQ5i+FmIQaDAj69YStBhDrtM7YAiIPCgkIvvWErQYQvwkSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxinDxCAqNa5Bw=="},{"b64Body":"Cg8KCQi/9YStBhDBCRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIPfSIhTgx11JATAwpsfaZIBmBrKD4m4Pc5tUJE5xg92iEICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGKgPKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBEQ0M6/qM/2geb76RSKy8KnFg4QWV/Qj42Fnc8gc88U8xZjN0IUTd38ioQ/c5zJ6QaCwj79YStBhCz5qx9Ig8KCQi/9YStBhDBCRICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUh8KDQoCGAIQ///rrczskAIKDgoDGKgPEICA7K3M7JAC"},{"b64Body":"Cg8KCQi/9YStBhDDCRICGAISAhgDGKWr3ugCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAScKCXRva2VuTmFtZRIFRkRGR0YgBSoDGKcPagwI+8PfsAYQgIDg1wI=","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGKkPEjCX7wjOsNJIEIbYi+7kVCiEMtm6lA9npmVH2y0q//zpAWd1Sl6wgUXya9CmjnwC+4gaDAj79YStBhC7yqvjAiIPCgkIv/WErQYQwwkSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWg4KAxipDxIHCgMYpw8QCnIKCgMYqQ8SAxinDw=="},{"b64Body":"Cg8KCQjA9YStBhDJCRICGAISAhgDGOC2iyAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGKYPEgMYqQ8=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw9x/X18YGOitURoLb8ToTfCCbgCKYL1ID8KgIKXBOHZ1S5nD7CeycN79RSDiRX0LjGgwI/PWErQYQk+zYhgEiDwoJCMD1hK0GEMkJEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"ChEKCQjA9YStBhDLCRICGAIgAVpqCiM6IQJmzWgfrwshppp9H3p01AKtBwoU9nBZvRIiLcqN8UHhl0oFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50cAGSASM6IQJmzWgfrwshppp9H3p01AKtBwoU9nBZvRIiLcqN8UHhlw==","b64Record":"CgcIFhIDGKoPEjCcNPNUTy32hrnBIdOr1zm2cNDKJF4TRLlJsE2EhRN2GNZSd2SAEbxBkwuiVhu18mQaDAj89YStBhDypvrrAiIRCgkIwPWErQYQywkSAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARSFFUKPyOv+AVcT9po9nEW446NBlQ=="},{"b64Body":"Cg8KCQjA9YStBhDLCRICGAISAhgDGOufNiICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcjsSOQoDGKkPEgcKAxinDxAFEikKJSIjOiECZs1oH68LIaaafR96dNQCrQcKFPZwWb0SIi3KjfFB4ZcQBg==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw6Vyhpvk5tsFMPE7KQc5fWPbez+/fpMBMSkj2ZeS1Aqp+HSoKhcaaiRzehcWoj22OGgwI/PWErQYQ86b66wIiDwoJCMD1hK0GEMsJEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAFoXCgMYqQ8SBwoDGKcPEAUSBwoDGKoPEAZyCgoDGKkPEgMYqg8="},{"b64Body":"ChAKCQjB9YStBhDNCRIDGKgPEgIYAxiz+NEVIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA9UBCswBAfjJggEqgKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIMPQkCUAAAAAAAAAAAAAAAAAAAAAAAAB6mAuESpBZy7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB6YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8CAoFjZp7ThGln5MWHQZTWrxAu1J8XqzXbH8DsFgZ7wfGOkoDYS3+uw7mHbo5eYRP2BuvoKgitCvncf6qluurP75d79GIDKte4B","b64Record":"CiUIFiIDGKkPKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjB4Ecy4bOhNTeE/lNKsBw/JP055HSSMCJ+mQJBMiW/IDgrJ3pvXLstiP/eNDp6McNYaCwj99YStBhCrv8pzIhAKCQjB9YStBhDNCRIDGKgPKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCz3twwOpAGCgMYqQ8SIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIoACAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAACAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAACiA6jAykAMKAxipDxKAAgAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAgAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAaIN3yUq0b4sibacKwaPw3jaqVK6fxY8ShFij1Wk31I7PvGiAAAAAAAAAAAAAAAACFFUKPyOv+AVcT9po9nEW446NBlRogAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB6YiIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADUMCEPWJEqQWcuwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAemAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANqAxiqD1I6CgkKAhgDEIC0xgEKCQoCGGIQhuPGVwoKCgMYoAYQ8JKWBAoKCgMYoQYQ8JKWBAoKCgMYqA8Q5by5YYoBIJfm2uCLMVNhxo/mnPrTL+rkdko+I7biCnBdMVj4rqad"},{"b64Body":"ChIKCQjB9YStBhDNCRIDGKgPIAFyGRIXCgMYqQ8SBwoDGKYPEAYSBwoDGKoPEAU=","b64Record":"CgIIFhIw8jV+oCnEpAwcl22Em2p04v6FgMDN92/n1OKf+OnU8pieDYUWOnR7P74oYZdg6f+6GgsI/fWErQYQrL/KcyISCgkIwfWErQYQzQkSAxioDyABOpEBCgMY5wISIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKIVuULDROmJcYY3GXgAAAAAAAAAAAAAAAAAAAAAAAAepqQWcuwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAemAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANqAxiqD1IAWhcKAxipDxIHCgMYpg8QBhIHCgMYqg8QBXoLCP31hK0GEKu/ynM="}]}}} \ No newline at end of file +{"specSnapshots":{"feePaymentMatrix Failure/0/0":{"placeholderNum":1001,"encodedItems":[{"b64Body":"Cg8KCQidmLSuBhCtBRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIFUnr1o2bfnXlONUXOdq8QMQlr7PmsI1zgQMXoOphZTSEICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGOoHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDLeXObUY8jEJ65XwckOcufmz1OAw9sUxco2ZdBNOCFsMkCl0Ip4Ha7GeRGhoCDClYaDAjZmLSuBhDmv8WNASIPCgkInZi0rgYQrQUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIfCg0KAhgCEP//663M7JACCg4KAxjqBxCAgOytzOyQAg=="},{"b64Body":"ChEKCQidmLSuBhCvBRICGAIgAVpoCiM6IQN/R0GnebqTauMP4ujJLrdgEYyTT8f3LIW12ElWL98Tc0oFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiEDf0dBp3m6k2rjD+LoyS63YBGMk0/H9yyFtdhJVi/fE3M=","b64Record":"CgcIFhIDGOsHEjBEVN+4jrN7I2tlpD+uRhNJlkeWWBKnem3pywo1KfUbPoxEliRghD0/vj1oYbba9xcaDAjZmLSuBhC1s+mhAyIRCgkInZi0rgYQrwUSAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqART+iPRlMZDPeQ7u+q/bg9CYt8c5NQ=="},{"b64Body":"Cg8KCQidmLSuBhCvBRICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohA39HQad5upNq4w/i6Mkut2ARjJNPx/cshbXYSVYv3xNzEICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwpN18twRgOSOv2t7CdrHg8sqyJauHoatHOPq2+CtRMw92BUoTkhhAT5GDhK9h0RGyGgwI2Zi0rgYQtrPpoQMiDwoJCJ2YtK4GEK8FEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SGQoKCgIYAhD/j9/ASgoLCgMY6wcQgJDfwEo="},{"b64Body":"Cg8KCQiemLSuBhC1BRICGAISAhgDGLXNziwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAja5o6yBhCYmOa1ARptCiISIASH5w70oAg4O+uwFf259uNWP1+dz7/TcgFS9L0Rq0thCiM6IQNnMFhteqm56Fm1q8TR++FBCMlmu0mQVoHo7Q3+NxiDFwoiEiADgHlDZgy77GRTaSzwLQRyj0ParPuRYpWFuG2AhJn76yIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGOwHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBm48rGxpnd0g80erkvP3y4C1h/HViD4czGQTztyu6uaz0c4AtUFvBwu1KXk3qeQSgaDAjamLSuBhDBh+TsASIPCgkInpi0rgYQtQUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQifmLSuBhC5BRICGAISAhgDGMe6szEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBogkKAxjsByKaCTYwODA2MDQwNTI2MTAyM2E4MDYxMDAxMzYwMDAzOTYwMDBmM2ZlNjA4MDYwNDA1MjYwMDQzNjEwNjEwMDNmNTc2MDAwMzU2MGUwMWM4MDYzMTIwNjVmZTAxNDYxMDA4ZjU3ODA2MzNjY2ZkNjBiMTQ2MTAwYmE1NzgwNjM2ZjY0MjM0ZTE0NjEwMGQxNTc4MDYzYjZiNTVmMjUxNDYxMDEyYzU3NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2N2ZmMWIwM2Y3MDhiOWMzOWY0NTNmZTNmMGNlZjg0MTY0YzdkNmY3ZGY4MzZkZjA3OTZlMWU5YzJiY2U2ZWUzOTdlMzQ2MDQwNTE4MDgyODE1MjYwMjAwMTkxNTA1MDYwNDA1MTgwOTEwMzkwYTIwMDViMzQ4MDE1NjEwMDliNTc2MDAwODBmZDViNTA2MTAwYTQ2MTAxNWE1NjViNjA0MDUxODA4MjgxNTI2MDIwMDE5MTUwNTA2MDQwNTE4MDkxMDM5MGYzNWIzNDgwMTU2MTAwYzY1NzYwMDA4MGZkNWI1MDYxMDBjZjYxMDE2MjU2NWIwMDViMzQ4MDE1NjEwMGRkNTc2MDAwODBmZDViNTA2MTAxMmE2MDA0ODAzNjAzNjA0MDgxMTAxNTYxMDBmNDU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2OTA2MDIwMDE5MDkyOTE5MDgwMzU5MDYwMjAwMTkwOTI5MTkwNTA1MDUwNjEwMWFiNTY1YjAwNWI2MTAxNTg2MDA0ODAzNjAzNjAyMDgxMTAxNTYxMDE0MjU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTkwNjAyMDAxOTA5MjkxOTA1MDUwNTA2MTAxZjY1NjViMDA1YjYwMDA0NzkwNTA5MDU2NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjEwOGZjNDc5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTU4MDE1NjEwMWE4NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTY1YjgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MTA4ZmM4MjkwODExNTAyOTA2MDQwNTE2MDAwNjA0MDUxODA4MzAzODE4NTg4ODhmMTkzNTA1MDUwNTAxNTgwMTU2MTAxZjE1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTY1YjgwMzQxNDYxMDIwMjU3NjAwMDgwZmQ1YjUwNTZmZWEyNjU2MjdhN2E3MjMxNTgyMGY4Zjg0ZmMzMWE4NDUwNjRiNTc4MWU5MDgzMTZmM2M1OTExNTc5NjJkZWFiYjBmZDQyNGVkNTRmMjU2NDAwZjk2NDczNmY2YzYzNDMwMDA1MTEwMDMy","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwVcDO7H0Uk3fIZB5f47llP+Zsqpi1hxDBG6TKj0r1toaoh8FMGh+YQNKmtGKObX1TGgsI25i0rgYQrL6jKSIPCgkIn5i0rgYQuQUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQifmLSuBhC7BRICGAISAhgDGK/Dto0EIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5ClgEKAxjsBxpzKnEIAhJtCiISIJiQBCUT9v3wIxbmwFv8D07yxwX8M/8ZiDdRp+uR4XXECiM6IQOO7c+NuXyUCxhV8Y/uWOeHI3cQ+e5S5HOykkqksrekngoiEiC++ikgvEds7ShPGK1bkwYln3r9AIk5EO6Xyj2pj+u7aSCQoQ9CBQiAztoDUgBaAGoLY2VsbGFyIGRvb3I=","b64Record":"CiUIFiIDGO0HKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDTCuddAT43zjUbUDIIKwMqMk0Jncx6y5skSIOJiVk6QHaCHZ9QO9lO3ZdzNZBgX8EaDAjbmLSuBhDl0OSvAiIPCgkIn5i0rgYQuwUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQu8GCgMY7QcSugRggGBAUmAENhBhAD9XYAA1YOAcgGMSBl/gFGEAj1eAYzzP1gsUYQC6V4Bjb2QjThRhANFXgGO2tV8lFGEBLFdbM3P//////////////////////////xZ/8bA/cIucOfRT/j8M74QWTH1vffg23weW4enCvObuOX40YEBRgIKBUmAgAZFQUGBAUYCRA5CiAFs0gBVhAJtXYACA/VtQYQCkYQFaVltgQFGAgoFSYCABkVBQYEBRgJEDkPNbNIAVYQDGV2AAgP1bUGEAz2EBYlZbAFs0gBVhAN1XYACA/VtQYQEqYASANgNgQIEQFWEA9FdgAID9W4EBkICANXP//////////////////////////xaQYCABkJKRkIA1kGAgAZCSkZBQUFBhAatWWwBbYQFYYASANgNgIIEQFWEBQldgAID9W4EBkICANZBgIAGQkpGQUFBQYQH2VlsAW2AAR5BQkFZbM3P//////////////////////////xZhCPxHkIEVApBgQFFgAGBAUYCDA4GFiIjxk1BQUFAVgBVhAahXPWAAgD49YAD9W1BWW4Fz//////////////////////////8WYQj8gpCBFQKQYEBRYABgQFGAgwOBhYiI8ZNQUFBQFYAVYQHxVz1gAIA+PWAA/VtQUFBWW4A0FGECAldgAID9W1BW/qJlYnp6cjFYIPj4T8MahFBktXgekIMW88WRFXli3quw/UJO1U8lZAD5ZHNvbGNDAAURADIigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMCaDDoDGO0HShYKFAAAAAAAAAAAAAAAAAAAAAAAAAPtcgcKAxjtBxABUhYKCQoCGAIQ/7LFDQoJCgIYYhCAs8UN"}]},"feePaymentMatrix Failure/0/18400000":{"placeholderNum":1006,"encodedItems":[{"b64Body":"Cg8KCQilmLSuBhDRBRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIEfgALAN7+ck4rSFODWpPgu8upb+yp2Goljd0ZZxZPXaEICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGO8HKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBwDeLsq8jUX0Y8hrgndGBeYZiM6674D2p9T5xrV4385pprhdx7w8M3oTcRph5VszwaCwjhmLSuBhDU9oNxIg8KCQilmLSuBhDRBRICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUh8KDQoCGAIQ///rrczskAIKDgoDGO8HEICA7K3M7JAC"},{"b64Body":"ChEKCQilmLSuBhDTBRICGAIgAVpoCiM6IQKsH/JKcxJ2/6icH4JnvcdgXQsR8lhWxuPQxwjOlXXTnkoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiECrB/ySnMSdv+onB+CZ73HYF0LEfJYVsbj0McIzpV1054=","b64Record":"CgcIFhIDGPAHEjDQGiQDtNm1E8AtU1OE8Qelmt5Ndo1zy5kK9CeR9DtY7Y+wiNolVuWggKuyQ7E1l10aDAjhmLSuBhDezobfAiIRCgkIpZi0rgYQ0wUSAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARQlE2oSyIx6Q7cNcTlsYRjjPuSDng=="},{"b64Body":"Cg8KCQilmLSuBhDTBRICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohAqwf8kpzEnb/qJwfgme9x2BdCxHyWFbG49DHCM6VddOeEICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwhVo89E1ndQu0YRjAqzdmtdpDW3hgN8ZkAJVlqNH263SN+2uFI8/6pfI/SifzMMzoGgwI4Zi0rgYQ386G3wIiDwoJCKWYtK4GENMFEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SGQoKCgIYAhD/j9/ASgoLCgMY8AcQgJDfwEo="},{"b64Body":"Cg8KCQimmLSuBhDZBRICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjgESCwji5o6yBhCcnMVyGm0KIhIgcKlGlaWnJPhIcTpstwDk/6ZN7nmuSe1LvURrxxFXWcwKIzohA3lRj4EwgmDX/36woonCvDV6i/Ke25x8eBpev8cudaVgCiISIOP7HBRUafQyxUPswrjngiUQk/aZvpRUwuWfwK+I1vaCIgxIZWxsbyBXb3JsZCEqADIA","b64Record":"CiUIFhoDGPEHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjARBlsezVnn030H6m3xV8iVXn6bdikSdDXVzeW90wzFOeg+/yNfMr2ZkTEr5EGxSYgaDAjimLSuBhDhrOqIASIPCgkIppi0rgYQ2QUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQimmLSuBhDdBRICGAISAhgDGPa4sjEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBogkKAxjxByKaCTYwODA2MDQwNTI2MTAyM2E4MDYxMDAxMzYwMDAzOTYwMDBmM2ZlNjA4MDYwNDA1MjYwMDQzNjEwNjEwMDNmNTc2MDAwMzU2MGUwMWM4MDYzMTIwNjVmZTAxNDYxMDA4ZjU3ODA2MzNjY2ZkNjBiMTQ2MTAwYmE1NzgwNjM2ZjY0MjM0ZTE0NjEwMGQxNTc4MDYzYjZiNTVmMjUxNDYxMDEyYzU3NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2N2ZmMWIwM2Y3MDhiOWMzOWY0NTNmZTNmMGNlZjg0MTY0YzdkNmY3ZGY4MzZkZjA3OTZlMWU5YzJiY2U2ZWUzOTdlMzQ2MDQwNTE4MDgyODE1MjYwMjAwMTkxNTA1MDYwNDA1MTgwOTEwMzkwYTIwMDViMzQ4MDE1NjEwMDliNTc2MDAwODBmZDViNTA2MTAwYTQ2MTAxNWE1NjViNjA0MDUxODA4MjgxNTI2MDIwMDE5MTUwNTA2MDQwNTE4MDkxMDM5MGYzNWIzNDgwMTU2MTAwYzY1NzYwMDA4MGZkNWI1MDYxMDBjZjYxMDE2MjU2NWIwMDViMzQ4MDE1NjEwMGRkNTc2MDAwODBmZDViNTA2MTAxMmE2MDA0ODAzNjAzNjA0MDgxMTAxNTYxMDBmNDU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2OTA2MDIwMDE5MDkyOTE5MDgwMzU5MDYwMjAwMTkwOTI5MTkwNTA1MDUwNjEwMWFiNTY1YjAwNWI2MTAxNTg2MDA0ODAzNjAzNjAyMDgxMTAxNTYxMDE0MjU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTkwNjAyMDAxOTA5MjkxOTA1MDUwNTA2MTAxZjY1NjViMDA1YjYwMDA0NzkwNTA5MDU2NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjEwOGZjNDc5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTU4MDE1NjEwMWE4NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTY1YjgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MTA4ZmM4MjkwODExNTAyOTA2MDQwNTE2MDAwNjA0MDUxODA4MzAzODE4NTg4ODhmMTkzNTA1MDUwNTAxNTgwMTU2MTAxZjE1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTY1YjgwMzQxNDYxMDIwMjU3NjAwMDgwZmQ1YjUwNTZmZWEyNjU2MjdhN2E3MjMxNTgyMGY4Zjg0ZmMzMWE4NDUwNjRiNTc4MWU5MDgzMTZmM2M1OTExNTc5NjJkZWFiYjBmZDQyNGVkNTRmMjU2NDAwZjk2NDczNmY2YzYzNDMwMDA1MTEwMDMy","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwTLwvL1dYikRibzEGDmVfCO62TbgIprF9rXFkwsqYeyOpCChGayRRMkFmobQKJQG6GgwI4pi0rgYQyf/QkwMiDwoJCKaYtK4GEN0FEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQinmLSuBhDfBRICGAISAhgDGK/Dto0EIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5ClgEKAxjxBxpzKnEIAhJtCiISIE1I6/2Kv2hvn2TPa2YOyejG1ZPaAR7AeIzmTLCmVXh3CiM6IQIbiwl0D3qS13LPkGJsCvMtEqsLqgHYfWuxO/yfYWjh9goiEiDoQKczao+iSCr2K0pjJm3kKjaeYQpc0QDNB04odgQuPyCQoQ9CBQiAztoDUgBaAGoLY2VsbGFyIGRvb3I=","b64Record":"CiUIFiIDGPIHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjA8entuWIVaG+E7FTAOTv5p+sGXkZUEH8x2kA5a/RdafyO1CGKLsZycp9Ivweb1BikaDAjjmLSuBhDNwt6bASIPCgkIp5i0rgYQ3wUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQu8GCgMY8gcSugRggGBAUmAENhBhAD9XYAA1YOAcgGMSBl/gFGEAj1eAYzzP1gsUYQC6V4Bjb2QjThRhANFXgGO2tV8lFGEBLFdbM3P//////////////////////////xZ/8bA/cIucOfRT/j8M74QWTH1vffg23weW4enCvObuOX40YEBRgIKBUmAgAZFQUGBAUYCRA5CiAFs0gBVhAJtXYACA/VtQYQCkYQFaVltgQFGAgoFSYCABkVBQYEBRgJEDkPNbNIAVYQDGV2AAgP1bUGEAz2EBYlZbAFs0gBVhAN1XYACA/VtQYQEqYASANgNgQIEQFWEA9FdgAID9W4EBkICANXP//////////////////////////xaQYCABkJKRkIA1kGAgAZCSkZBQUFBhAatWWwBbYQFYYASANgNgIIEQFWEBQldgAID9W4EBkICANZBgIAGQkpGQUFBQYQH2VlsAW2AAR5BQkFZbM3P//////////////////////////xZhCPxHkIEVApBgQFFgAGBAUYCDA4GFiIjxk1BQUFAVgBVhAahXPWAAgD49YAD9W1BWW4Fz//////////////////////////8WYQj8gpCBFQKQYEBRYABgQFGAgwOBhYiI8ZNQUFBQFYAVYQHxVz1gAIA+PWAA/VtQUFBWW4A0FGECAldgAID9W1BW/qJlYnp6cjFYIPj4T8MahFBktXgekIMW88WRFXli3quw/UJO1U8lZAD5ZHNvbGNDAAURADIigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMCaDDoDGPIHShYKFAAAAAAAAAAAAAAAAAAAAAAAAAPycgcKAxjyBxABUhYKCQoCGAIQ/7LFDQoJCgIYYhCAs8UN"}]},"feePaymentMatrix Success/0/71000000":{"placeholderNum":1011,"encodedItems":[{"b64Body":"Cg8KCQismLSuBhD1BRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIHBZ73GFOOPwVnX/s3dU/uOv3qbKl9BQrlaG8Wt4RNRoEICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGPQHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBqpt9zlNMX4qZLksY9925GlJkbkxo0hKjLC5qiUAv/NQCMmFsZ+ZrpwwtrrGOCXfkaDAjomLSuBhDg1pz2ASIPCgkIrJi0rgYQ9QUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIfCg0KAhgCEP//663M7JACCg4KAxj0BxCAgOytzOyQAg=="},{"b64Body":"ChEKCQismLSuBhD3BRICGAIgAVpoCiM6IQPY+CZRaBCk4GOt/fJ6CeMtDVBLKSxuKRZa6TSuaxlu+0oFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiED2PgmUWgQpOBjrf3yegnjLQ1QSyksbikWWuk0rmsZbvs=","b64Record":"CgcIFhIDGPUHEjDdSXf9KrWTC7zJKut8dlY9oUTYQyfCzioBk9MYZM9o5iitLm/aBq1j9FxKFMJU32EaCwjpmLSuBhCFxIYIIhEKCQismLSuBhD3BRICGAIgASoUYXV0by1jcmVhdGVkIGFjY291bnRSAKoBFEVzZ9Csxrk/kL21ILws6nyTLp4o"},{"b64Body":"Cg8KCQismLSuBhD3BRICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohA9j4JlFoEKTgY6398noJ4y0NUEspLG4pFlrpNK5rGW77EICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwb4Y/Z6BUdf5PnSoemB3LrNhlGNgBomCrT2lAUmZzDQBtiA01EDhtgoTzjoBbGHsSGgsI6Zi0rgYQhsSGCCIPCgkIrJi0rgYQ9wUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxj1BxCAkN/ASg=="},{"b64Body":"Cg8KCQitmLSuBhD9BRICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAjp5o6yBhCNjMqAAhptCiISIOZT6zhFSDhkqTlDEhuVdipYChzQuvr/eKgt5LlZSL/3CiM6IQMt3/yPzFfHw88kU/rziUlb0kTUFH7tJeHyvpO3KyRA4goiEiA9HQ36Agqm+e8bWUEFe8/G3oy98zAMp3phDah4RVop8iIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGPYHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjC/7HjH44zT4e8ED2gSyHeu+AU6RTS3zqzLYDUMnd4Zj4XXlykfvgGBYEdMxJbQxSIaDAjpmLSuBhDQosicAiIPCgkIrZi0rgYQ/QUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiumLSuBhCBBhICGAISAhgDGPa4sjEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBogkKAxj2ByKaCTYwODA2MDQwNTI2MTAyM2E4MDYxMDAxMzYwMDAzOTYwMDBmM2ZlNjA4MDYwNDA1MjYwMDQzNjEwNjEwMDNmNTc2MDAwMzU2MGUwMWM4MDYzMTIwNjVmZTAxNDYxMDA4ZjU3ODA2MzNjY2ZkNjBiMTQ2MTAwYmE1NzgwNjM2ZjY0MjM0ZTE0NjEwMGQxNTc4MDYzYjZiNTVmMjUxNDYxMDEyYzU3NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2N2ZmMWIwM2Y3MDhiOWMzOWY0NTNmZTNmMGNlZjg0MTY0YzdkNmY3ZGY4MzZkZjA3OTZlMWU5YzJiY2U2ZWUzOTdlMzQ2MDQwNTE4MDgyODE1MjYwMjAwMTkxNTA1MDYwNDA1MTgwOTEwMzkwYTIwMDViMzQ4MDE1NjEwMDliNTc2MDAwODBmZDViNTA2MTAwYTQ2MTAxNWE1NjViNjA0MDUxODA4MjgxNTI2MDIwMDE5MTUwNTA2MDQwNTE4MDkxMDM5MGYzNWIzNDgwMTU2MTAwYzY1NzYwMDA4MGZkNWI1MDYxMDBjZjYxMDE2MjU2NWIwMDViMzQ4MDE1NjEwMGRkNTc2MDAwODBmZDViNTA2MTAxMmE2MDA0ODAzNjAzNjA0MDgxMTAxNTYxMDBmNDU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2OTA2MDIwMDE5MDkyOTE5MDgwMzU5MDYwMjAwMTkwOTI5MTkwNTA1MDUwNjEwMWFiNTY1YjAwNWI2MTAxNTg2MDA0ODAzNjAzNjAyMDgxMTAxNTYxMDE0MjU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTkwNjAyMDAxOTA5MjkxOTA1MDUwNTA2MTAxZjY1NjViMDA1YjYwMDA0NzkwNTA5MDU2NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjEwOGZjNDc5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTU4MDE1NjEwMWE4NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTY1YjgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MTA4ZmM4MjkwODExNTAyOTA2MDQwNTE2MDAwNjA0MDUxODA4MzAzODE4NTg4ODhmMTkzNTA1MDUwNTAxNTgwMTU2MTAxZjE1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTY1YjgwMzQxNDYxMDIwMjU3NjAwMDgwZmQ1YjUwNTZmZWEyNjU2MjdhN2E3MjMxNTgyMGY4Zjg0ZmMzMWE4NDUwNjRiNTc4MWU5MDgzMTZmM2M1OTExNTc5NjJkZWFiYjBmZDQyNGVkNTRmMjU2NDAwZjk2NDczNmY2YzYzNDMwMDA1MTEwMDMy","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw0+7nDEn8Fiqw80gLVtpMy8VsJd/ljERQHzDacJaZyEh7NkwAKnoXdot5qNMvVDuSGgsI6pi0rgYQ3vbWRSIPCgkIrpi0rgYQgQYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiumLSuBhCDBhICGAISAhgDGK/Dto0EIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5ClgEKAxj2BxpzKnEIAhJtCiISIKg0NzRaRRHJWjc+RX8dWq7YBzJeZj4aoYQceHNv8p+1CiM6IQJxonp3Gk+bTKH+mB4e6HlE3YruW6y7o69qyXG0EG1SqgoiEiCj3YYRlP2xeuLNp78p1J24M69Yk6F5Qv6InQoDC37upSCQoQ9CBQiAztoDUgBaAGoLY2VsbGFyIGRvb3I=","b64Record":"CiUIFiIDGPcHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDfBJTacjKEBaBENx/ay4nv+UQgKIpyTX68WkM9+9Hp6HezMNFV7yUkjnL/miXNpdsaDAjqmLSuBhDl6M2qAiIPCgkIrpi0rgYQgwYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQu8GCgMY9wcSugRggGBAUmAENhBhAD9XYAA1YOAcgGMSBl/gFGEAj1eAYzzP1gsUYQC6V4Bjb2QjThRhANFXgGO2tV8lFGEBLFdbM3P//////////////////////////xZ/8bA/cIucOfRT/j8M74QWTH1vffg23weW4enCvObuOX40YEBRgIKBUmAgAZFQUGBAUYCRA5CiAFs0gBVhAJtXYACA/VtQYQCkYQFaVltgQFGAgoFSYCABkVBQYEBRgJEDkPNbNIAVYQDGV2AAgP1bUGEAz2EBYlZbAFs0gBVhAN1XYACA/VtQYQEqYASANgNgQIEQFWEA9FdgAID9W4EBkICANXP//////////////////////////xaQYCABkJKRkIA1kGAgAZCSkZBQUFBhAatWWwBbYQFYYASANgNgIIEQFWEBQldgAID9W4EBkICANZBgIAGQkpGQUFBQYQH2VlsAW2AAR5BQkFZbM3P//////////////////////////xZhCPxHkIEVApBgQFFgAGBAUYCDA4GFiIjxk1BQUFAVgBVhAahXPWAAgD49YAD9W1BWW4Fz//////////////////////////8WYQj8gpCBFQKQYEBRYABgQFGAgwOBhYiI8ZNQUFBQFYAVYQHxVz1gAIA+PWAA/VtQUFBWW4A0FGECAldgAID9W1BW/qJlYnp6cjFYIPj4T8MahFBktXgekIMW88WRFXli3quw/UJO1U8lZAD5ZHNvbGNDAAURADIigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMCaDDoDGPcHShYKFAAAAAAAAAAAAAAAAAAAAAAAAAP3cgcKAxj3BxABUhYKCQoCGAIQ/7LFDQoJCgIYYhCAs8UN"},{"b64Body":"ChAKCQivmLSuBhCFBhIDGPQHEgIYAxjP2tQVIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA9oBCtIBAvjPggEqgKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIMPQkCUAAAAAAAAAAAAAAAAAAAAAAAAA/eGteYg9IAApLa1XyUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOIMABoAR5kZi4SvOU+RVkbuYWkExlw/gYVtLiRnehRU9uZvDMoCZ6yTgYaOiNSOxwROa7KidNXzgh1JjtMY5l4S5LzOroGMC/7SE=","b64Record":"CiUIFiIDGPcHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBbmmozlouQIhmhpkfzrKYBwk32xWZzVRb25kbZ0SCcr9eIFjQloaXcOJ1POoU7nwwaCwjrmLSuBhDF+phUIhAKCQivmLSuBhCFBhIDGPQHKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDPwN8wOsMCCgMY9wcigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKIDqMFDAhD1YoJwBYiS2tV8lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATiBqAxj1B3oCCAFSUAoJCgIYAxDW3cYBCgkKAhhiELz4ylcKCgoDGKAGEMbVlgQKCgoDGKEGEMbVlgQKCgoDGPQHEJ2Bv2EKCQoDGPUHEL+4AgoJCgMY9wcQwLgCigEgtdV6OTI5mHqhuuvz9Es5KvA1xiHSO0aLBUNzuslf6bg="}]},"feePaymentMatrix Failure/23/0":{"placeholderNum":1016,"encodedItems":[{"b64Body":"Cg8KCQizmLSuBhCZBhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIBUMRdDFrv0KFlAn5VefcSDZZxiVMjMYofQBPpFg/6VIEICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGPkHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCZp4zzki38JcMszQ79nDXHNqTXHm450RtJcAOE0TMwMA5oIBK5ZoU89g7wCdrlYxAaDAjvmLSuBhCVt9KrAyIPCgkIs5i0rgYQmQYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIfCg0KAhgCEP//663M7JACCg4KAxj5BxCAgOytzOyQAg=="},{"b64Body":"ChEKCQi0mLSuBhCbBhICGAIgAVpoCiM6IQLDDTob8MWwKzTnHHvtU/ScjNXPuXB4+JJ9DS+p2FQLZkoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiECww06G/DFsCs05xx77VP0nIzVz7lwePiSfQ0vqdhUC2Y=","b64Record":"CgcIFhIDGPoHEjB3q2hiq8i0JxXP74ulI4xlPDMsIgcmPZFhmozWRIfQ4xWnssyhFTpGkB8LvpBFan8aDAjwmLSuBhDBkvC8ASIRCgkItJi0rgYQmwYSAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARSEm9STsBjnyNezS9cAX+/LFLip3w=="},{"b64Body":"Cg8KCQi0mLSuBhCbBhICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohAsMNOhvwxbArNOcce+1T9JyM1c+5cHj4kn0NL6nYVAtmEICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwILhc1pTjnDKDK+v8GP5NmmlVZqH4qqIjo483Kla0x75OlS56mg2U29UYF4kFjyigGgwI8Ji0rgYQwpLwvAEiDwoJCLSYtK4GEJsGEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SGQoKCgIYAhD/j9/ASgoLCgMY+gcQgJDfwEo="},{"b64Body":"Cg8KCQi0mLSuBhChBhICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAjw5o6yBhD/q9qnAxptCiISIB+GuWmJGLidFMIT1Rriton1Z2orR+Duir37cSWfOg8NCiM6IQOi+j50MXxxkT3mKejqAcGjj4h1CEVGnfu+65Upk59FtgoiEiD95K67o7BPYii3LBI7c2LIv1zjz2qLx5LMrDv8+zWkGyIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGPsHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAGx+ngTg1Sc/4ZWf2C/vn4LG4QyvYB+gQOT7IFuZJKd3XVekjBmUuMAd4oVxZdpYkaDAjwmLSuBhCv4JvIAyIPCgkItJi0rgYQoQYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQi1mLSuBhClBhICGAISAhgDGPa4sjEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBogkKAxj7ByKaCTYwODA2MDQwNTI2MTAyM2E4MDYxMDAxMzYwMDAzOTYwMDBmM2ZlNjA4MDYwNDA1MjYwMDQzNjEwNjEwMDNmNTc2MDAwMzU2MGUwMWM4MDYzMTIwNjVmZTAxNDYxMDA4ZjU3ODA2MzNjY2ZkNjBiMTQ2MTAwYmE1NzgwNjM2ZjY0MjM0ZTE0NjEwMGQxNTc4MDYzYjZiNTVmMjUxNDYxMDEyYzU3NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2N2ZmMWIwM2Y3MDhiOWMzOWY0NTNmZTNmMGNlZjg0MTY0YzdkNmY3ZGY4MzZkZjA3OTZlMWU5YzJiY2U2ZWUzOTdlMzQ2MDQwNTE4MDgyODE1MjYwMjAwMTkxNTA1MDYwNDA1MTgwOTEwMzkwYTIwMDViMzQ4MDE1NjEwMDliNTc2MDAwODBmZDViNTA2MTAwYTQ2MTAxNWE1NjViNjA0MDUxODA4MjgxNTI2MDIwMDE5MTUwNTA2MDQwNTE4MDkxMDM5MGYzNWIzNDgwMTU2MTAwYzY1NzYwMDA4MGZkNWI1MDYxMDBjZjYxMDE2MjU2NWIwMDViMzQ4MDE1NjEwMGRkNTc2MDAwODBmZDViNTA2MTAxMmE2MDA0ODAzNjAzNjA0MDgxMTAxNTYxMDBmNDU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2OTA2MDIwMDE5MDkyOTE5MDgwMzU5MDYwMjAwMTkwOTI5MTkwNTA1MDUwNjEwMWFiNTY1YjAwNWI2MTAxNTg2MDA0ODAzNjAzNjAyMDgxMTAxNTYxMDE0MjU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTkwNjAyMDAxOTA5MjkxOTA1MDUwNTA2MTAxZjY1NjViMDA1YjYwMDA0NzkwNTA5MDU2NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjEwOGZjNDc5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTU4MDE1NjEwMWE4NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTY1YjgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MTA4ZmM4MjkwODExNTAyOTA2MDQwNTE2MDAwNjA0MDUxODA4MzAzODE4NTg4ODhmMTkzNTA1MDUwNTAxNTgwMTU2MTAxZjE1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTY1YjgwMzQxNDYxMDIwMjU3NjAwMDgwZmQ1YjUwNTZmZWEyNjU2MjdhN2E3MjMxNTgyMGY4Zjg0ZmMzMWE4NDUwNjRiNTc4MWU5MDgzMTZmM2M1OTExNTc5NjJkZWFiYjBmZDQyNGVkNTRmMjU2NDAwZjk2NDczNmY2YzYzNDMwMDA1MTEwMDMy","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw+zml75CfDCg9ICkFH+JsJqY+ktATbr8kVtuzvH2FceXTRqo+rXHLI4k+8fefS1PzGgwI8Zi0rgYQqtH42QEiDwoJCLWYtK4GEKUGEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQi1mLSuBhCnBhICGAISAhgDGK/Dto0EIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5ClgEKAxj7BxpzKnEIAhJtCiISIBPM/gB+y6iGOqMocKGXQRJ2z7LWH1Mp+an1gyR5ZkmKCiM6IQMuN0buTLqDq+BYObG6pkn0r5j1bEcroRi3RG4nE2M9mwoiEiB0rvHCOPR6Z5OoK/Yw6rXIuPo2lHhgwhqAlgYNY3prSCCQoQ9CBQiAztoDUgBaAGoLY2VsbGFyIGRvb3I=","b64Record":"CiUIFiIDGPwHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjB6HvCmQabQU6Njqs/ekSVWCVGZGoke0HMqqZYymiZVaUjn9hLaPcOmahNO+m4epp4aCwjymLSuBhDTwOwHIg8KCQi1mLSuBhCnBhICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMMDZ4gZC7wYKAxj8BxK6BGCAYEBSYAQ2EGEAP1dgADVg4ByAYxIGX+AUYQCPV4BjPM/WCxRhALpXgGNvZCNOFGEA0VeAY7a1XyUUYQEsV1szc///////////////////////////Fn/xsD9wi5w59FP+PwzvhBZMfW99+DbfB5bh6cK85u45fjRgQFGAgoFSYCABkVBQYEBRgJEDkKIAWzSAFWEAm1dgAID9W1BhAKRhAVpWW2BAUYCCgVJgIAGRUFBgQFGAkQOQ81s0gBVhAMZXYACA/VtQYQDPYQFiVlsAWzSAFWEA3VdgAID9W1BhASpgBIA2A2BAgRAVYQD0V2AAgP1bgQGQgIA1c///////////////////////////FpBgIAGQkpGQgDWQYCABkJKRkFBQUGEBq1ZbAFthAVhgBIA2A2AggRAVYQFCV2AAgP1bgQGQgIA1kGAgAZCSkZBQUFBhAfZWWwBbYABHkFCQVlszc///////////////////////////FmEI/EeQgRUCkGBAUWAAYEBRgIMDgYWIiPGTUFBQUBWAFWEBqFc9YACAPj1gAP1bUFZbgXP//////////////////////////xZhCPyCkIEVApBgQFFgAGBAUYCDA4GFiIjxk1BQUFAVgBVhAfFXPWAAgD49YAD9W1BQUFZbgDQUYQICV2AAgP1bUFb+omVienpyMVgg+PhPwxqEUGS1eB6QgxbzxZEVeWLeq7D9Qk7VTyVkAPlkc29sY0MABREAMiKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAowJoMOgMY/AdKFgoUAAAAAAAAAAAAAAAAAAAAAAAAA/xyBwoDGPwHEAFSFgoJCgIYAhD/ssUNCgkKAhhiEICzxQ0="}]},"feePaymentMatrix Failure/23/18400000":{"placeholderNum":1021,"encodedItems":[{"b64Body":"Cg8KCQi7mLSuBhC9BhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIAYFiWaVdMU81+PO64cope57kA4SeNaVvn97wqCj6i+BEICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGP4HKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDbOLuOJ4wtXv3gizwKKHskhPNfTr8E2puF3Y3BOrxRx2TKnxNR33eG/dN2osdKP4AaCwj3mLSuBhCtx+N1Ig8KCQi7mLSuBhC9BhICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUh8KDQoCGAIQ///rrczskAIKDgoDGP4HEICA7K3M7JAC"},{"b64Body":"ChEKCQi7mLSuBhC/BhICGAIgAVpoCiM6IQMZw5RCTs8iPiU855ShzpifVca7jGlZM1IQm3KWKm2D/EoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiEDGcOUQk7PIj4lPOeUoc6Yn1XGu4xpWTNSEJtyliptg/w=","b64Record":"CgcIFhIDGP8HEjAJXqUwYjjNGZvfMjHlmaUNSai/ktyZq+QiB2v/MzpJYgIq3wILNS9xHoXKNw1j9mEaDAj3mLSuBhDuotXVAiIRCgkIu5i0rgYQvwYSAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARRy8z13kqDilMyqfedX7rrdh0yv6A=="},{"b64Body":"Cg8KCQi7mLSuBhC/BhICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohAxnDlEJOzyI+JTznlKHOmJ9VxruMaVkzUhCbcpYqbYP8EICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw9WXuWjtnZTCPB4bkge8nDM9gJlwS9GkcECT63lqh9IdwsCHELQIyMYxysk1d3l+vGgwI95i0rgYQ76LV1QIiDwoJCLuYtK4GEL8GEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SGQoKCgIYAhD/j9/ASgoLCgMY/wcQgJDfwEo="},{"b64Body":"Cg8KCQi8mLSuBhDFBhICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjgESCwj45o6yBhDf3bh0Gm0KIhIghUv7Nml0+UBnhSYoLmGrbyCVZgsNLS9I9Th5KVdbwdQKIzohA8bC91MXPpZmQjPQ77HIsV9EhJo4iVQcNwOR3Hgp+mFzCiISIPVNHEMaJjDVBXr4R04qtpMTvCCbkn4sCnp62y/CMm0RIgxIZWxsbyBXb3JsZCEqADIA","b64Record":"CiUIFhoDGIAIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAjj/UlzO2rlDfgeSvdvIGLNm1DztdqzQDOHicribJpS5A6rC5v8j73LtCAfCjAUS0aDAj4mLSuBhCXrY2EASIPCgkIvJi0rgYQxQYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQi8mLSuBhDJBhICGAISAhgDGPa4sjEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBogkKAxiACCKaCTYwODA2MDQwNTI2MTAyM2E4MDYxMDAxMzYwMDAzOTYwMDBmM2ZlNjA4MDYwNDA1MjYwMDQzNjEwNjEwMDNmNTc2MDAwMzU2MGUwMWM4MDYzMTIwNjVmZTAxNDYxMDA4ZjU3ODA2MzNjY2ZkNjBiMTQ2MTAwYmE1NzgwNjM2ZjY0MjM0ZTE0NjEwMGQxNTc4MDYzYjZiNTVmMjUxNDYxMDEyYzU3NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2N2ZmMWIwM2Y3MDhiOWMzOWY0NTNmZTNmMGNlZjg0MTY0YzdkNmY3ZGY4MzZkZjA3OTZlMWU5YzJiY2U2ZWUzOTdlMzQ2MDQwNTE4MDgyODE1MjYwMjAwMTkxNTA1MDYwNDA1MTgwOTEwMzkwYTIwMDViMzQ4MDE1NjEwMDliNTc2MDAwODBmZDViNTA2MTAwYTQ2MTAxNWE1NjViNjA0MDUxODA4MjgxNTI2MDIwMDE5MTUwNTA2MDQwNTE4MDkxMDM5MGYzNWIzNDgwMTU2MTAwYzY1NzYwMDA4MGZkNWI1MDYxMDBjZjYxMDE2MjU2NWIwMDViMzQ4MDE1NjEwMGRkNTc2MDAwODBmZDViNTA2MTAxMmE2MDA0ODAzNjAzNjA0MDgxMTAxNTYxMDBmNDU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2OTA2MDIwMDE5MDkyOTE5MDgwMzU5MDYwMjAwMTkwOTI5MTkwNTA1MDUwNjEwMWFiNTY1YjAwNWI2MTAxNTg2MDA0ODAzNjAzNjAyMDgxMTAxNTYxMDE0MjU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTkwNjAyMDAxOTA5MjkxOTA1MDUwNTA2MTAxZjY1NjViMDA1YjYwMDA0NzkwNTA5MDU2NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjEwOGZjNDc5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTU4MDE1NjEwMWE4NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTY1YjgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MTA4ZmM4MjkwODExNTAyOTA2MDQwNTE2MDAwNjA0MDUxODA4MzAzODE4NTg4ODhmMTkzNTA1MDUwNTAxNTgwMTU2MTAxZjE1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTY1YjgwMzQxNDYxMDIwMjU3NjAwMDgwZmQ1YjUwNTZmZWEyNjU2MjdhN2E3MjMxNTgyMGY4Zjg0ZmMzMWE4NDUwNjRiNTc4MWU5MDgzMTZmM2M1OTExNTc5NjJkZWFiYjBmZDQyNGVkNTRmMjU2NDAwZjk2NDczNmY2YzYzNDMwMDA1MTEwMDMy","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwgl4kpMllmuT9q/yXm1JTij9h4jXJHLkLspAo8k+fUL1j3fNVdSkwbqYPrqoW9bbnGgwI+Ji0rgYQ5ejqgAMiDwoJCLyYtK4GEMkGEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQi9mLSuBhDLBhICGAISAhgDGK/Dto0EIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5ClgEKAxiACBpzKnEIAhJtCiISIBgjm+rgQJRld0fZ0Epl4nTGfawdzQwlsbWglVIq6kQjCiM6IQNtoRenB4fEUpxFyZeVWC2RYCcYmbfQej19KvVzsrYpqgoiEiD2BBc8E7eFRWH5LBWwmi74q9O2km0B6rq20wKgPygLSiCQoQ9CBQiAztoDUgBaAGoLY2VsbGFyIGRvb3I=","b64Record":"CiUIFiIDGIEIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBHMf8Nf+bqpirP73lUUVnjYRZA3TTl2NQ1G75F+K6AdFV2qyfSh4g3y1afhVIiLCsaDAj5mLSuBhDKhaalASIPCgkIvZi0rgYQywYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQu8GCgMYgQgSugRggGBAUmAENhBhAD9XYAA1YOAcgGMSBl/gFGEAj1eAYzzP1gsUYQC6V4Bjb2QjThRhANFXgGO2tV8lFGEBLFdbM3P//////////////////////////xZ/8bA/cIucOfRT/j8M74QWTH1vffg23weW4enCvObuOX40YEBRgIKBUmAgAZFQUGBAUYCRA5CiAFs0gBVhAJtXYACA/VtQYQCkYQFaVltgQFGAgoFSYCABkVBQYEBRgJEDkPNbNIAVYQDGV2AAgP1bUGEAz2EBYlZbAFs0gBVhAN1XYACA/VtQYQEqYASANgNgQIEQFWEA9FdgAID9W4EBkICANXP//////////////////////////xaQYCABkJKRkIA1kGAgAZCSkZBQUFBhAatWWwBbYQFYYASANgNgIIEQFWEBQldgAID9W4EBkICANZBgIAGQkpGQUFBQYQH2VlsAW2AAR5BQkFZbM3P//////////////////////////xZhCPxHkIEVApBgQFFgAGBAUYCDA4GFiIjxk1BQUFAVgBVhAahXPWAAgD49YAD9W1BWW4Fz//////////////////////////8WYQj8gpCBFQKQYEBRYABgQFGAgwOBhYiI8ZNQUFBQFYAVYQHxVz1gAIA+PWAA/VtQUFBWW4A0FGECAldgAID9W1BW/qJlYnp6cjFYIPj4T8MahFBktXgekIMW88WRFXli3quw/UJO1U8lZAD5ZHNvbGNDAAURADIigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMCaDDoDGIEIShYKFAAAAAAAAAAAAAAAAAAAAAAAAAQBcgcKAxiBCBABUhYKCQoCGAIQ/7LFDQoJCgIYYhCAs8UN"}]},"feePaymentMatrix Success/23/71000000":{"placeholderNum":1026,"encodedItems":[{"b64Body":"Cg8KCQjCmLSuBhDhBhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIHkd52itW5GqYBYodra8qakf1GalsrPQJDmGqaCSBbJHEICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGIMIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBSPwtFWIsOtjY+QhlKC23RftiRLa6SmoqOrd2BnSCENMEncjdtTgi611sodU3WXqsaDAj+mLSuBhD0upGTAiIPCgkIwpi0rgYQ4QYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIfCg0KAhgCEP//663M7JACCg4KAxiDCBCAgOytzOyQAg=="},{"b64Body":"ChEKCQjDmLSuBhDjBhICGAIgAVpoCiM6IQKRh1MGFYRGrcUjaVtWw7QleOZBEXBSXuWRjsyffwFmWUoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiECkYdTBhWERq3FI2lbVsO0JXjmQRFwUl7lkY7Mn38BZlk=","b64Record":"CgcIFhIDGIQIEjB2OciiZe24BPBb9+Qm7YduOnZ+9CwtecBLbButgCOYeRhD8HijMAS1AVDTCkHkwk4aCwj/mLSuBhD56ZApIhEKCQjDmLSuBhDjBhICGAIgASoUYXV0by1jcmVhdGVkIGFjY291bnRSAKoBFCjQyrZky/4OFMizgKOEzQCIULIP"},{"b64Body":"Cg8KCQjDmLSuBhDjBhICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohApGHUwYVhEatxSNpW1bDtCV45kERcFJe5ZGOzJ9/AWZZEICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwKh4fHtkF5p893uA8jAWS7UE3pGyXlT9EU0r26JJmXbgSR6fzPYVX02BUBv7plEFrGgsI/5i0rgYQ+umQKSIPCgkIw5i0rgYQ4wYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxiECBCAkN/ASg=="},{"b64Body":"Cg8KCQjDmLSuBhDpBhICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAj/5o6yBhCB/YeaAhptCiISIFDodbdDnBagfnupifxDisPpbm4ATqetuJLdtPRvBnlTCiM6IQP1wdQLRCM4dnamcpEcra/N2wDEMtAd4uk4oIMPf//PeAoiEiCDSU9fDGN/BjaQ5f5xyeuSq2dffsXRsm1j3ReX8eK1zSIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGIUIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjB7lOr83AddKVV4zFUon3XRI2oaIDkhIhGeMvgfZZ+EftTPN+zE8E1bqCYXEmG178waDAj/mLSuBhDN7/e4AiIPCgkIw5i0rgYQ6QYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjEmLSuBhDtBhICGAISAhgDGPa4sjEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBogkKAxiFCCKaCTYwODA2MDQwNTI2MTAyM2E4MDYxMDAxMzYwMDAzOTYwMDBmM2ZlNjA4MDYwNDA1MjYwMDQzNjEwNjEwMDNmNTc2MDAwMzU2MGUwMWM4MDYzMTIwNjVmZTAxNDYxMDA4ZjU3ODA2MzNjY2ZkNjBiMTQ2MTAwYmE1NzgwNjM2ZjY0MjM0ZTE0NjEwMGQxNTc4MDYzYjZiNTVmMjUxNDYxMDEyYzU3NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2N2ZmMWIwM2Y3MDhiOWMzOWY0NTNmZTNmMGNlZjg0MTY0YzdkNmY3ZGY4MzZkZjA3OTZlMWU5YzJiY2U2ZWUzOTdlMzQ2MDQwNTE4MDgyODE1MjYwMjAwMTkxNTA1MDYwNDA1MTgwOTEwMzkwYTIwMDViMzQ4MDE1NjEwMDliNTc2MDAwODBmZDViNTA2MTAwYTQ2MTAxNWE1NjViNjA0MDUxODA4MjgxNTI2MDIwMDE5MTUwNTA2MDQwNTE4MDkxMDM5MGYzNWIzNDgwMTU2MTAwYzY1NzYwMDA4MGZkNWI1MDYxMDBjZjYxMDE2MjU2NWIwMDViMzQ4MDE1NjEwMGRkNTc2MDAwODBmZDViNTA2MTAxMmE2MDA0ODAzNjAzNjA0MDgxMTAxNTYxMDBmNDU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2OTA2MDIwMDE5MDkyOTE5MDgwMzU5MDYwMjAwMTkwOTI5MTkwNTA1MDUwNjEwMWFiNTY1YjAwNWI2MTAxNTg2MDA0ODAzNjAzNjAyMDgxMTAxNTYxMDE0MjU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTkwNjAyMDAxOTA5MjkxOTA1MDUwNTA2MTAxZjY1NjViMDA1YjYwMDA0NzkwNTA5MDU2NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjEwOGZjNDc5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTU4MDE1NjEwMWE4NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTY1YjgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MTA4ZmM4MjkwODExNTAyOTA2MDQwNTE2MDAwNjA0MDUxODA4MzAzODE4NTg4ODhmMTkzNTA1MDUwNTAxNTgwMTU2MTAxZjE1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTY1YjgwMzQxNDYxMDIwMjU3NjAwMDgwZmQ1YjUwNTZmZWEyNjU2MjdhN2E3MjMxNTgyMGY4Zjg0ZmMzMWE4NDUwNjRiNTc4MWU5MDgzMTZmM2M1OTExNTc5NjJkZWFiYjBmZDQyNGVkNTRmMjU2NDAwZjk2NDczNmY2YzYzNDMwMDA1MTEwMDMy","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwvR+AG1oArHbofSZsoLlASj3gyIzu4o9Zxg0J9oCo5LnYjHx7kKvZAP6xzsCYdyZaGgsIgJm0rgYQttPcRSIPCgkIxJi0rgYQ7QYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjEmLSuBhDvBhICGAISAhgDGK/Dto0EIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5ClgEKAxiFCBpzKnEIAhJtCiISIPUgLkolD5tS79JwsmXG0pEwc7+pIDYZ3OPttWS2qwjRCiM6IQMSpZFjH37Cb8O+x+Rmqec1s1hqw6kSSO384kgDXaVUhgoiEiBrnDQoXT2q+E3ocAp8WZCxkLJdKoFARY7zIjYtTknJ/SCQoQ9CBQiAztoDUgBaAGoLY2VsbGFyIGRvb3I=","b64Record":"CiUIFiIDGIYIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCvyy0ok2uiOSIrSxW3AUgWE1xeZEEM5bq5JpZWBo24PHvBXc38bsQXVB+F+re6MxcaDAiAmbSuBhChtejVAiIPCgkIxJi0rgYQ7wYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQu8GCgMYhggSugRggGBAUmAENhBhAD9XYAA1YOAcgGMSBl/gFGEAj1eAYzzP1gsUYQC6V4Bjb2QjThRhANFXgGO2tV8lFGEBLFdbM3P//////////////////////////xZ/8bA/cIucOfRT/j8M74QWTH1vffg23weW4enCvObuOX40YEBRgIKBUmAgAZFQUGBAUYCRA5CiAFs0gBVhAJtXYACA/VtQYQCkYQFaVltgQFGAgoFSYCABkVBQYEBRgJEDkPNbNIAVYQDGV2AAgP1bUGEAz2EBYlZbAFs0gBVhAN1XYACA/VtQYQEqYASANgNgQIEQFWEA9FdgAID9W4EBkICANXP//////////////////////////xaQYCABkJKRkIA1kGAgAZCSkZBQUFBhAatWWwBbYQFYYASANgNgIIEQFWEBQldgAID9W4EBkICANZBgIAGQkpGQUFBQYQH2VlsAW2AAR5BQkFZbM3P//////////////////////////xZhCPxHkIEVApBgQFFgAGBAUYCDA4GFiIjxk1BQUFAVgBVhAahXPWAAgD49YAD9W1BWW4Fz//////////////////////////8WYQj8gpCBFQKQYEBRYABgQFGAgwOBhYiI8ZNQUFBQFYAVYQHxVz1gAIA+PWAA/VtQUFBWW4A0FGECAldgAID9W1BW/qJlYnp6cjFYIPj4T8MahFBktXgekIMW88WRFXli3quw/UJO1U8lZAD5ZHNvbGNDAAURADIigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMCaDDoDGIYIShYKFAAAAAAAAAAAAAAAAAAAAAAAAAQGcgcKAxiGCBABUhYKCQoCGAIQ/7LFDQoJCgIYYhCAs8UN"},{"b64Body":"ChAKCQjFmLSuBhDxBhIDGIMIEgIYAxjP2tQVIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA9oBCtIBAvjPggEqgKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1jRF8AIMPQkCUAAAAAAAAAAAAAAAAAAAAAAAABAaGteYg9IAApLa1XyUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOIMABoKB2fPg7r1JPe6BBmxiInC0eURij+Ros1cfdtZvieYMDoGcRSRKA/ehUZyDFskmAryWjejJelISChrC9WcwtRAcEGMC/7SE=","b64Record":"CiUIFiIDGIYIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCYsOoaLwiFT4ep9XBHFj5K9CeOYAyTYZFdxmbyrrJn/v9xI5WOO78PAbaQ6+PCUJ4aCwiBmbSuBhCS87ZnIhAKCQjFmLSuBhDxBhIDGIMIKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDPwN8wOsMCCgMYhggigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKIDqMFDAhD1YoJwBYiS2tV8lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATiBqAxiECHoCCAFSUQoJCgIYAxDW3cYBCgkKAhhiELz4ylcKCgoDGKAGEMbVlgQKCgoDGKEGEMbVlgQKCgoDGIMIEJ2yx0sKCgoDGIQIEL+H+hUKCQoDGIYIEMC4AooBIFp1ptmEUZ4O3MzKe5yyXcQYYOVe2wBDiAcST/DRUVx6"}]},"feePaymentMatrix Success/23/63900000":{"placeholderNum":1031,"encodedItems":[{"b64Body":"Cg8KCQjJmLSuBhCFBxICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIOWPsKUwBrDqvMnOGCxTw3Rd/fjfEMh8Rb9PSYoqqeZwEICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGIgIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCOuU+58AEMU+1CjkBHAUernPdkh9gom7D6RxYYHYcwbb0U10LzzEG6GEAwleIQWWwaDAiFmbSuBhCCiIK1AyIPCgkIyZi0rgYQhQcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIfCg0KAhgCEP//663M7JACCg4KAxiICBCAgOytzOyQAg=="},{"b64Body":"ChEKCQjKmLSuBhCHBxICGAIgAVpoCiM6IQLTXScdqiPWiVmhE4a/9Otexqco7x7FkgtN70yqmlGRTkoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiEC010nHaoj1olZoROGv/TrXsanKO8exZILTe9MqppRkU4=","b64Record":"CgcIFhIDGIkIEjB3+CUeT5OdbXVmowwa8kxwFZdNhaShLRsEEsa2NBXSR4yRDM/yMZLculQP3ER36owaDAiGmbSuBhCsqdjeASIRCgkIypi0rgYQhwcSAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARSJl0nMb1hNi8cudbNQeOoZkrUa5A=="},{"b64Body":"Cg8KCQjKmLSuBhCHBxICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohAtNdJx2qI9aJWaEThr/0617GpyjvHsWSC03vTKqaUZFOEICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwl4kx2ya0zgRX/GsKrc9hNQ9cjeMJ2jImsg+pp2qes/Xy97KxP4UWLa3OMg/Q6W8eGgwIhpm0rgYQranY3gEiDwoJCMqYtK4GEIcHEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SGQoKCgIYAhD/j9/ASgoLCgMYiQgQgJDfwEo="},{"b64Body":"Cg8KCQjKmLSuBhCNBxICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAiG546yBhCq2oLHAxptCiISIAMmCT0ZQKYpxf0ZTKu02KLTzM9vWPJOSChQiOipxqt6CiM6IQKdjAh2+9iWo+aMmLRQMmDIiIWiFyZRTT14ms0bNLuu2goiEiDfN4uN9IIdV6pJf2f8OyiAcQGY/BM8BS/AkGoUTvR6ySIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGIoIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCOhQrQD27OP1vQG/1YXSN5OMnJxA+iVMDlBkCeJVaeIZlnSierEOniwKZKnsYHXgcaDAiGmbSuBhCpwsHRAyIPCgkIypi0rgYQjQcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjLmLSuBhCRBxICGAISAhgDGPa4sjEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBogkKAxiKCCKaCTYwODA2MDQwNTI2MTAyM2E4MDYxMDAxMzYwMDAzOTYwMDBmM2ZlNjA4MDYwNDA1MjYwMDQzNjEwNjEwMDNmNTc2MDAwMzU2MGUwMWM4MDYzMTIwNjVmZTAxNDYxMDA4ZjU3ODA2MzNjY2ZkNjBiMTQ2MTAwYmE1NzgwNjM2ZjY0MjM0ZTE0NjEwMGQxNTc4MDYzYjZiNTVmMjUxNDYxMDEyYzU3NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2N2ZmMWIwM2Y3MDhiOWMzOWY0NTNmZTNmMGNlZjg0MTY0YzdkNmY3ZGY4MzZkZjA3OTZlMWU5YzJiY2U2ZWUzOTdlMzQ2MDQwNTE4MDgyODE1MjYwMjAwMTkxNTA1MDYwNDA1MTgwOTEwMzkwYTIwMDViMzQ4MDE1NjEwMDliNTc2MDAwODBmZDViNTA2MTAwYTQ2MTAxNWE1NjViNjA0MDUxODA4MjgxNTI2MDIwMDE5MTUwNTA2MDQwNTE4MDkxMDM5MGYzNWIzNDgwMTU2MTAwYzY1NzYwMDA4MGZkNWI1MDYxMDBjZjYxMDE2MjU2NWIwMDViMzQ4MDE1NjEwMGRkNTc2MDAwODBmZDViNTA2MTAxMmE2MDA0ODAzNjAzNjA0MDgxMTAxNTYxMDBmNDU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2OTA2MDIwMDE5MDkyOTE5MDgwMzU5MDYwMjAwMTkwOTI5MTkwNTA1MDUwNjEwMWFiNTY1YjAwNWI2MTAxNTg2MDA0ODAzNjAzNjAyMDgxMTAxNTYxMDE0MjU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTkwNjAyMDAxOTA5MjkxOTA1MDUwNTA2MTAxZjY1NjViMDA1YjYwMDA0NzkwNTA5MDU2NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjEwOGZjNDc5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTU4MDE1NjEwMWE4NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTY1YjgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MTA4ZmM4MjkwODExNTAyOTA2MDQwNTE2MDAwNjA0MDUxODA4MzAzODE4NTg4ODhmMTkzNTA1MDUwNTAxNTgwMTU2MTAxZjE1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTY1YjgwMzQxNDYxMDIwMjU3NjAwMDgwZmQ1YjUwNTZmZWEyNjU2MjdhN2E3MjMxNTgyMGY4Zjg0ZmMzMWE4NDUwNjRiNTc4MWU5MDgzMTZmM2M1OTExNTc5NjJkZWFiYjBmZDQyNGVkNTRmMjU2NDAwZjk2NDczNmY2YzYzNDMwMDA1MTEwMDMy","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwZwzZpwgA7EX/v6HyBgCfgu17hwdDhgMBsPUvydzNrm0IMx6qkbBb8mFl9+WVUYgIGgwIh5m0rgYQ5NmCgAIiDwoJCMuYtK4GEJEHEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjMmLSuBhCTBxICGAISAhgDGK/Dto0EIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5ClgEKAxiKCBpzKnEIAhJtCiISIBMnUGVK1nGbYi7++yAd0alVxSTF3ToKrLL0GCUV97pCCiM6IQKhPHAE/Us9aO+AusajVnvOuE/vUqcqsTA+lc7xewcnpwoiEiD07RAXQ8eSunnWCHBn0/JqIJixpTv9PnlDG8y0QRQIjyCQoQ9CBQiAztoDUgBaAGoLY2VsbGFyIGRvb3I=","b64Record":"CiUIFiIDGIsIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBjYTXqKnLMXm7KxGLGFOK8NBnJmMPdt/b2z1I6UiMB5+0bAqscfp/qicffj8s1qnMaCwiImbSuBhDy5acJIg8KCQjMmLSuBhCTBxICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMMDZ4gZC7wYKAxiLCBK6BGCAYEBSYAQ2EGEAP1dgADVg4ByAYxIGX+AUYQCPV4BjPM/WCxRhALpXgGNvZCNOFGEA0VeAY7a1XyUUYQEsV1szc///////////////////////////Fn/xsD9wi5w59FP+PwzvhBZMfW99+DbfB5bh6cK85u45fjRgQFGAgoFSYCABkVBQYEBRgJEDkKIAWzSAFWEAm1dgAID9W1BhAKRhAVpWW2BAUYCCgVJgIAGRUFBgQFGAkQOQ81s0gBVhAMZXYACA/VtQYQDPYQFiVlsAWzSAFWEA3VdgAID9W1BhASpgBIA2A2BAgRAVYQD0V2AAgP1bgQGQgIA1c///////////////////////////FpBgIAGQkpGQgDWQYCABkJKRkFBQUGEBq1ZbAFthAVhgBIA2A2AggRAVYQFCV2AAgP1bgQGQgIA1kGAgAZCSkZBQUFBhAfZWWwBbYABHkFCQVlszc///////////////////////////FmEI/EeQgRUCkGBAUWAAYEBRgIMDgYWIiPGTUFBQUBWAFWEBqFc9YACAPj1gAP1bUFZbgXP//////////////////////////xZhCPyCkIEVApBgQFFgAGBAUYCDA4GFiIjxk1BQUFAVgBVhAfFXPWAAgD49YAD9W1BQUFZbgDQUYQICV2AAgP1bUFb+omVienpyMVgg+PhPwxqEUGS1eB6QgxbzxZEVeWLeq7D9Qk7VTyVkAPlkc29sY0MABREAMiKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAowJoMOgMYiwhKFgoUAAAAAAAAAAAAAAAAAAAAAAAABAtyBwoDGIsIEAFSFgoJCgIYAhD/ssUNCgkKAhhiEICzxQ0="},{"b64Body":"ChAKCQjMmLSuBhCVBxIDGIgIEgIYAxjP2tQVIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA9oBCtIBAvjPggEqgKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1jRF8AIMPQkCUAAAAAAAAAAAAAAAAAAAAAAAABAuGteYg9IAApLa1XyUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOIMABoCG4MNyi5EG5LljLZS3rCWq6z35y/FyImtnNSzgcHFZNoCOA1oZkWOswMkjWzuj7FNm2bk8jgUdu5yHB+F3nAau3GOCSvB4=","b64Record":"CiUIFiIDGIsIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDDk5vZn4+J4F3yBUBMkgXFWcGuybcq7EIfLOj4OhRoFycD6WGUWiJ1s75zRxU5LGoaDAiImbSuBhDftNX/ASIQCgkIzJi0rgYQlQcSAxiICCogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wz8DfMDrDAgoDGIsIIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACiA6jBQwIQ9WKCcAWIktrVfJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE4gagMYiQh6AggBUlEKCQoCGAMQ1t3GAQoJCgIYYhC8+MpXCgoKAxigBhDG1ZYECgoKAxihBhDG1ZYECgoKAxiICBCdssdLCgoKAxiJCBC/h/oVCgkKAxiLCBDAuAKKASA3bYl+IZIdbK3ENVXoiPwOXHpXWtkUlPVa++rrnT5+ug=="}]},"feePaymentMatrix Failure/63/0":{"placeholderNum":1036,"encodedItems":[{"b64Body":"Cg8KCQjRmLSuBhCpBxICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIFCuhTwjbJqwXU7Pe3oL9MLyrzOWD9BU9owE5vFItwa7EICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGI0IKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjA/KcMgQbCsXpEznTqlail4mnsKzOoxUhImQAj4eZhjB2pPz5pFyKgzUnZ93ClCcd0aCwiNmbSuBhDHiJ96Ig8KCQjRmLSuBhCpBxICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUh8KDQoCGAIQ///rrczskAIKDgoDGI0IEICA7K3M7JAC"},{"b64Body":"ChEKCQjRmLSuBhCrBxICGAIgAVpoCiM6IQP3frxr970FSGO2ymZu/Zgm7a+UiaAfYDNsFpitsJztIEoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiED9368a/e9BUhjtspmbv2YJu2vlImgH2AzbBaYrbCc7SA=","b64Record":"CgcIFhIDGI4IEjCFCG1QoZKE+BNyxBK4VOoUHe5EP+t1f47DA3xQPrXNtinHJAaJP8TVWeVaxIM97WIaDAiNmbSuBhDDsomPAyIRCgkI0Zi0rgYQqwcSAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARRwvD++EnXROFLT/rbg0LGEMlMLig=="},{"b64Body":"Cg8KCQjRmLSuBhCrBxICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohA/d+vGv3vQVIY7bKZm79mCbtr5SJoB9gM2wWmK2wnO0gEICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwYNsOjHXlWX7EJGZhJw0fVr57V/pZZfnDnp1vYS0wr3zU0GfYzmOgNcyzgjdkX7cQGgwIjZm0rgYQxLKJjwMiDwoJCNGYtK4GEKsHEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SGQoKCgIYAhD/j9/ASgoLCgMYjggQgJDfwEo="},{"b64Body":"Cg8KCQjSmLSuBhCxBxICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAiO546yBhCY/7OSARptCiISIA0eTwdOXm8T0yzQfwOzKglF+74ADqsTustgKOVkUWltCiM6IQOG12eks6oXR+dZIiLm57ccUV5SGR7Wms5lu/f6V3CwSAoiEiAapBhCARNDph61h8p6VgYFGf+efQha4OGP1vdOhNaTViIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGI8IKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCP5l1j2nDOdrNhJsWXyvsDAIvierKNwX6S0ji17rP3E/iZVHrLzrxGvUMK5U8UNI0aDAiOmbSuBhDJoI6lASIPCgkI0pi0rgYQsQcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjSmLSuBhC1BxICGAISAhgDGPa4sjEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBogkKAxiPCCKaCTYwODA2MDQwNTI2MTAyM2E4MDYxMDAxMzYwMDAzOTYwMDBmM2ZlNjA4MDYwNDA1MjYwMDQzNjEwNjEwMDNmNTc2MDAwMzU2MGUwMWM4MDYzMTIwNjVmZTAxNDYxMDA4ZjU3ODA2MzNjY2ZkNjBiMTQ2MTAwYmE1NzgwNjM2ZjY0MjM0ZTE0NjEwMGQxNTc4MDYzYjZiNTVmMjUxNDYxMDEyYzU3NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2N2ZmMWIwM2Y3MDhiOWMzOWY0NTNmZTNmMGNlZjg0MTY0YzdkNmY3ZGY4MzZkZjA3OTZlMWU5YzJiY2U2ZWUzOTdlMzQ2MDQwNTE4MDgyODE1MjYwMjAwMTkxNTA1MDYwNDA1MTgwOTEwMzkwYTIwMDViMzQ4MDE1NjEwMDliNTc2MDAwODBmZDViNTA2MTAwYTQ2MTAxNWE1NjViNjA0MDUxODA4MjgxNTI2MDIwMDE5MTUwNTA2MDQwNTE4MDkxMDM5MGYzNWIzNDgwMTU2MTAwYzY1NzYwMDA4MGZkNWI1MDYxMDBjZjYxMDE2MjU2NWIwMDViMzQ4MDE1NjEwMGRkNTc2MDAwODBmZDViNTA2MTAxMmE2MDA0ODAzNjAzNjA0MDgxMTAxNTYxMDBmNDU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2OTA2MDIwMDE5MDkyOTE5MDgwMzU5MDYwMjAwMTkwOTI5MTkwNTA1MDUwNjEwMWFiNTY1YjAwNWI2MTAxNTg2MDA0ODAzNjAzNjAyMDgxMTAxNTYxMDE0MjU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTkwNjAyMDAxOTA5MjkxOTA1MDUwNTA2MTAxZjY1NjViMDA1YjYwMDA0NzkwNTA5MDU2NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjEwOGZjNDc5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTU4MDE1NjEwMWE4NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTY1YjgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MTA4ZmM4MjkwODExNTAyOTA2MDQwNTE2MDAwNjA0MDUxODA4MzAzODE4NTg4ODhmMTkzNTA1MDUwNTAxNTgwMTU2MTAxZjE1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTY1YjgwMzQxNDYxMDIwMjU3NjAwMDgwZmQ1YjUwNTZmZWEyNjU2MjdhN2E3MjMxNTgyMGY4Zjg0ZmMzMWE4NDUwNjRiNTc4MWU5MDgzMTZmM2M1OTExNTc5NjJkZWFiYjBmZDQyNGVkNTRmMjU2NDAwZjk2NDczNmY2YzYzNDMwMDA1MTEwMDMy","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw2GGtdZE+cwFggWz43f0BLLcWXjLmiBr/GIVxhbnCrA1SgvujebSVQzBYhUhDvTMxGgwIjpm0rgYQ+u3XkwMiDwoJCNKYtK4GELUHEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjTmLSuBhC3BxICGAISAhgDGK/Dto0EIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5ClgEKAxiPCBpzKnEIAhJtCiISIC5WtvuPTRHD22g/KuTmVL4KJEQzbfard6/Jn/cd3bkbCiM6IQLqSHMUzF9ccckOPccBPjCXN6HprxTGdDNLdO2+skc2MwoiEiDHIxa9KdVvbZKSNagf6QQXjrm+TKCJGhdR+GcqQOYT8iCQoQ9CBQiAztoDUgBaAGoLY2VsbGFyIGRvb3I=","b64Record":"CiUIFiIDGJAIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjADOcUrjBFqGff36NyBa1qb/t1LEyzSRqLAQwx6KY+WUarFHG7eOL+ksZnYS3cxNgsaDAiPmbSuBhC96ObGASIPCgkI05i0rgYQtwcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQu8GCgMYkAgSugRggGBAUmAENhBhAD9XYAA1YOAcgGMSBl/gFGEAj1eAYzzP1gsUYQC6V4Bjb2QjThRhANFXgGO2tV8lFGEBLFdbM3P//////////////////////////xZ/8bA/cIucOfRT/j8M74QWTH1vffg23weW4enCvObuOX40YEBRgIKBUmAgAZFQUGBAUYCRA5CiAFs0gBVhAJtXYACA/VtQYQCkYQFaVltgQFGAgoFSYCABkVBQYEBRgJEDkPNbNIAVYQDGV2AAgP1bUGEAz2EBYlZbAFs0gBVhAN1XYACA/VtQYQEqYASANgNgQIEQFWEA9FdgAID9W4EBkICANXP//////////////////////////xaQYCABkJKRkIA1kGAgAZCSkZBQUFBhAatWWwBbYQFYYASANgNgIIEQFWEBQldgAID9W4EBkICANZBgIAGQkpGQUFBQYQH2VlsAW2AAR5BQkFZbM3P//////////////////////////xZhCPxHkIEVApBgQFFgAGBAUYCDA4GFiIjxk1BQUFAVgBVhAahXPWAAgD49YAD9W1BWW4Fz//////////////////////////8WYQj8gpCBFQKQYEBRYABgQFGAgwOBhYiI8ZNQUFBQFYAVYQHxVz1gAIA+PWAA/VtQUFBWW4A0FGECAldgAID9W1BW/qJlYnp6cjFYIPj4T8MahFBktXgekIMW88WRFXli3quw/UJO1U8lZAD5ZHNvbGNDAAURADIigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMCaDDoDGJAIShYKFAAAAAAAAAAAAAAAAAAAAAAAAAQQcgcKAxiQCBABUhYKCQoCGAIQ/7LFDQoJCgIYYhCAs8UN"}]},"feePaymentMatrix Success/63/18400000":{"placeholderNum":1041,"encodedItems":[{"b64Body":"Cg8KCQjYmLSuBhDNBxICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIIuD+uC9n7OKBM+wLKObdAhDQKQcquC6HcC+0TPqvOnCEICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGJIIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDaKWATlNZfAM8WrbiMx9RBPLwSN1IGeaea1xFVSf0JICa4FlGSGjl2ab9GcN2YTKUaDAiUmbSuBhCDhry0AiIPCgkI2Ji0rgYQzQcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIfCg0KAhgCEP//663M7JACCg4KAxiSCBCAgOytzOyQAg=="},{"b64Body":"ChEKCQjZmLSuBhDPBxICGAIgAVpoCiM6IQMSK5W3fj3XKX0ieIMNTtS4qJLP6PJn6/FHabkqL/FBp0oFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiEDEiuVt3491yl9IniDDU7UuKiSz+jyZ+vxR2m5Ki/xQac=","b64Record":"CgcIFhIDGJMIEjC/vHekshSfLxeVnf+msxJAgkKX0H9mEa/bHAj07I0ZrH+eMi2A1AC6nr+PbuKaI0YaCwiVmbSuBhClsKJBIhEKCQjZmLSuBhDPBxICGAIgASoUYXV0by1jcmVhdGVkIGFjY291bnRSAKoBFPcMhbeD9R8kdu37j4TbMK46wKj2"},{"b64Body":"Cg8KCQjZmLSuBhDPBxICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohAxIrlbd+PdcpfSJ4gw1O1Lioks/o8mfr8UdpuSov8UGnEICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwUh0llvwanAG+bd3jLnFR9P1n65dhEpGX0fdeQe3/2+VG0eGVkL1Sxaj0h4h76WeeGgsIlZm0rgYQprCiQSIPCgkI2Zi0rgYQzwcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxiTCBCAkN/ASg=="},{"b64Body":"Cg8KCQjZmLSuBhDVBxICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAiV546yBhDAuZSxAhptCiISIPR7EDR7tbAaPAIgLe7O8wgDfzo0rkfjQc4IsqxeZAISCiM6IQP83PaehoQYc8JcI3asfWOtMVjub1Wv6//yZmrhCXnyJQoiEiD+fnnjGH0ogAwuo1TXPP/59o/9FQRoIHkN7kSBaiQQ9yIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGJQIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDMoehf+sE2PsFYDGWEdJdhXUdBabpmXD2JQVxb/49w/7FuygysS5dSAfAll52JXoMaDAiVmbSuBhCB5vbQAiIPCgkI2Zi0rgYQ1QcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjamLSuBhDZBxICGAISAhgDGPa4sjEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBogkKAxiUCCKaCTYwODA2MDQwNTI2MTAyM2E4MDYxMDAxMzYwMDAzOTYwMDBmM2ZlNjA4MDYwNDA1MjYwMDQzNjEwNjEwMDNmNTc2MDAwMzU2MGUwMWM4MDYzMTIwNjVmZTAxNDYxMDA4ZjU3ODA2MzNjY2ZkNjBiMTQ2MTAwYmE1NzgwNjM2ZjY0MjM0ZTE0NjEwMGQxNTc4MDYzYjZiNTVmMjUxNDYxMDEyYzU3NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2N2ZmMWIwM2Y3MDhiOWMzOWY0NTNmZTNmMGNlZjg0MTY0YzdkNmY3ZGY4MzZkZjA3OTZlMWU5YzJiY2U2ZWUzOTdlMzQ2MDQwNTE4MDgyODE1MjYwMjAwMTkxNTA1MDYwNDA1MTgwOTEwMzkwYTIwMDViMzQ4MDE1NjEwMDliNTc2MDAwODBmZDViNTA2MTAwYTQ2MTAxNWE1NjViNjA0MDUxODA4MjgxNTI2MDIwMDE5MTUwNTA2MDQwNTE4MDkxMDM5MGYzNWIzNDgwMTU2MTAwYzY1NzYwMDA4MGZkNWI1MDYxMDBjZjYxMDE2MjU2NWIwMDViMzQ4MDE1NjEwMGRkNTc2MDAwODBmZDViNTA2MTAxMmE2MDA0ODAzNjAzNjA0MDgxMTAxNTYxMDBmNDU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2OTA2MDIwMDE5MDkyOTE5MDgwMzU5MDYwMjAwMTkwOTI5MTkwNTA1MDUwNjEwMWFiNTY1YjAwNWI2MTAxNTg2MDA0ODAzNjAzNjAyMDgxMTAxNTYxMDE0MjU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTkwNjAyMDAxOTA5MjkxOTA1MDUwNTA2MTAxZjY1NjViMDA1YjYwMDA0NzkwNTA5MDU2NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjEwOGZjNDc5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTU4MDE1NjEwMWE4NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTY1YjgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MTA4ZmM4MjkwODExNTAyOTA2MDQwNTE2MDAwNjA0MDUxODA4MzAzODE4NTg4ODhmMTkzNTA1MDUwNTAxNTgwMTU2MTAxZjE1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTY1YjgwMzQxNDYxMDIwMjU3NjAwMDgwZmQ1YjUwNTZmZWEyNjU2MjdhN2E3MjMxNTgyMGY4Zjg0ZmMzMWE4NDUwNjRiNTc4MWU5MDgzMTZmM2M1OTExNTc5NjJkZWFiYjBmZDQyNGVkNTRmMjU2NDAwZjk2NDczNmY2YzYzNDMwMDA1MTEwMDMy","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwnt/7rk3CaddGygnzt9P1H3B/WDiKQ30Ob1wDYZlQCdrEtoGX7e51G84sGnSeVHxDGgsIlpm0rgYQzqC0ZyIPCgkI2pi0rgYQ2QcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjamLSuBhDbBxICGAISAhgDGK/Dto0EIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5ClgEKAxiUCBpzKnEIAhJtCiISIDgLTXRPfS4hZLV+Tw7XI/B3cjEWJWTptSuUeC2wcrZnCiM6IQIFUmVC/Hl7whGoSZG60tr97zCH+FjjfLg+K+AuUXkUEgoiEiB0N1e4cVHd8CdL4pzt7tbkiCf01CDgVMQel8dLiCeqNyCQoQ9CBQiAztoDUgBaAGoLY2VsbGFyIGRvb3I=","b64Record":"CiUIFiIDGJUIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCOCjS5Xm8fHZfH9frQ5iLVu9N4oqkpqMbGD0pIDuGkoUyGdvR0n7z92hv8zCiODBIaDAiWmbSuBhCon5nMAiIPCgkI2pi0rgYQ2wcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQu8GCgMYlQgSugRggGBAUmAENhBhAD9XYAA1YOAcgGMSBl/gFGEAj1eAYzzP1gsUYQC6V4Bjb2QjThRhANFXgGO2tV8lFGEBLFdbM3P//////////////////////////xZ/8bA/cIucOfRT/j8M74QWTH1vffg23weW4enCvObuOX40YEBRgIKBUmAgAZFQUGBAUYCRA5CiAFs0gBVhAJtXYACA/VtQYQCkYQFaVltgQFGAgoFSYCABkVBQYEBRgJEDkPNbNIAVYQDGV2AAgP1bUGEAz2EBYlZbAFs0gBVhAN1XYACA/VtQYQEqYASANgNgQIEQFWEA9FdgAID9W4EBkICANXP//////////////////////////xaQYCABkJKRkIA1kGAgAZCSkZBQUFBhAatWWwBbYQFYYASANgNgIIEQFWEBQldgAID9W4EBkICANZBgIAGQkpGQUFBQYQH2VlsAW2AAR5BQkFZbM3P//////////////////////////xZhCPxHkIEVApBgQFFgAGBAUYCDA4GFiIjxk1BQUFAVgBVhAahXPWAAgD49YAD9W1BWW4Fz//////////////////////////8WYQj8gpCBFQKQYEBRYABgQFGAgwOBhYiI8ZNQUFBQFYAVYQHxVz1gAIA+PWAA/VtQUFBWW4A0FGECAldgAID9W1BW/qJlYnp6cjFYIPj4T8MahFBktXgekIMW88WRFXli3quw/UJO1U8lZAD5ZHNvbGNDAAURADIigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMCaDDoDGJUIShYKFAAAAAAAAAAAAAAAAAAAAAAAAAQVcgcKAxiVCBABUhYKCQoCGAIQ/7LFDQoJCgIYYhCAs8UN"},{"b64Body":"ChAKCQjbmLSuBhDdBxIDGJIIEgIYAxjP2tQVIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA9oBCtIBAvjPggEqgKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACSru0cAIMPQkCUAAAAAAAAAAAAAAAAAAAAAAAABBWGteYg9IAApLa1XyUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOIMCAoOVrvyitcIQiHD/9FfFEG9i0q//XZxahoqXbdnKSLxJFoHx47Pb0CeV4h/vSYpJ6AqKe/k9nd6efdhG/s86qTTZUGICG4wg=","b64Record":"CiUIFiIDGJUIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBt6msU+3r6/ggG5DquoWi7Kp7iMqWfhqTtLXL2EGu55fvYsK/iJR6ldiP6XSo+rpsaCwiXmbSuBhDPiYd/IhAKCQjbmLSuBhDdBxIDGJIIKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDPwN8wOsMCCgMYlQgigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKIDqMFDAhD1YoJwBYiS2tV8lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATiBqAxiTCHoCCAFSUQoJCgIYAxDW3cYBCgkKAhhiELz4ylcKCgoDGKAGEMbVlgQKCgoDGKEGEMbVlgQKCgoDGJIIEJ21qSsKCgoDGJMIEL+EmDYKCQoDGJUIEMC4AooBIDOW9vCd4tU917errD5pdv+BKOXgKo4u95dOIPp2Tu2G"}]},"feePaymentMatrix Success/71/0":{"placeholderNum":1046,"encodedItems":[{"b64Body":"Cg8KCQjfmLSuBhDxBxICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIJ+0I2Bih6yVGgNJ0UvCPo3tyqYBmU9d7x7kCNMTgLy5EICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGJcIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCBvFnehJs8z4Kh+R86LUK3dallW2TMUSa8RpzQ94Pc15LnkF347PHCrfja69IMOYwaCwicmbSuBhDuvI8DIg8KCQjfmLSuBhDxBxICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUh8KDQoCGAIQ///rrczskAIKDgoDGJcIEICA7K3M7JAC"},{"b64Body":"ChEKCQjgmLSuBhDzBxICGAIgAVpoCiM6IQMwHVCrXoL8aTydwe3zU6NYCvDOPPhIS39IUkZTM7ivJUoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiEDMB1Qq16C/Gk8ncHt81OjWArwzjz4SEt/SFJGUzO4ryU=","b64Record":"CgcIFhIDGJgIEjAZRhSj94zR6MDfu5amxa+4/2lMFFv9Yl3kkrCZMHdIsYvE4VIs8kda4ucPRhSUIpYaDAicmbSuBhCIx7n2ASIRCgkI4Ji0rgYQ8wcSAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARRrTkNTKBztPM5PCfIYnUzcrRCTOg=="},{"b64Body":"Cg8KCQjgmLSuBhDzBxICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohAzAdUKtegvxpPJ3B7fNTo1gK8M48+EhLf0hSRlMzuK8lEICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwFXYJSIDgdN36Zu66moa4MD9Bijgh8Ug0rUZjDx+NlPTaIH7n2dDNwFWPYlk2F3lNGgwInJm0rgYQice59gEiDwoJCOCYtK4GEPMHEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SGQoKCgIYAhD/j9/ASgoLCgMYmAgQgJDfwEo="},{"b64Body":"Cg8KCQjgmLSuBhD5BxICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAic546yBhCE84zQAxptCiISIB7jH1O97i8L4Er1aJ5FsQIty08nYX3r9PVlhPpSWR4OCiM6IQIX9n+ZYmXhxDlyg3SRL8uKioL9TQEFdm8CJmqjgXWK+woiEiCWY2FAz7N0V5KWBUTf3Wqre3ifEoAnekbuyZCz2ykAICIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGJkIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjA7fIasRp50bwuWTwGT0CNhmNBKCfnDXiTMOVhaJZoLsG1Sfp9paUr4elbSN7yQnrsaCwidmbSuBhCbptIMIg8KCQjgmLSuBhD5BxICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgA="},{"b64Body":"Cg8KCQjhmLSuBhD9BxICGAISAhgDGPa4sjEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBogkKAxiZCCKaCTYwODA2MDQwNTI2MTAyM2E4MDYxMDAxMzYwMDAzOTYwMDBmM2ZlNjA4MDYwNDA1MjYwMDQzNjEwNjEwMDNmNTc2MDAwMzU2MGUwMWM4MDYzMTIwNjVmZTAxNDYxMDA4ZjU3ODA2MzNjY2ZkNjBiMTQ2MTAwYmE1NzgwNjM2ZjY0MjM0ZTE0NjEwMGQxNTc4MDYzYjZiNTVmMjUxNDYxMDEyYzU3NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2N2ZmMWIwM2Y3MDhiOWMzOWY0NTNmZTNmMGNlZjg0MTY0YzdkNmY3ZGY4MzZkZjA3OTZlMWU5YzJiY2U2ZWUzOTdlMzQ2MDQwNTE4MDgyODE1MjYwMjAwMTkxNTA1MDYwNDA1MTgwOTEwMzkwYTIwMDViMzQ4MDE1NjEwMDliNTc2MDAwODBmZDViNTA2MTAwYTQ2MTAxNWE1NjViNjA0MDUxODA4MjgxNTI2MDIwMDE5MTUwNTA2MDQwNTE4MDkxMDM5MGYzNWIzNDgwMTU2MTAwYzY1NzYwMDA4MGZkNWI1MDYxMDBjZjYxMDE2MjU2NWIwMDViMzQ4MDE1NjEwMGRkNTc2MDAwODBmZDViNTA2MTAxMmE2MDA0ODAzNjAzNjA0MDgxMTAxNTYxMDBmNDU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2OTA2MDIwMDE5MDkyOTE5MDgwMzU5MDYwMjAwMTkwOTI5MTkwNTA1MDUwNjEwMWFiNTY1YjAwNWI2MTAxNTg2MDA0ODAzNjAzNjAyMDgxMTAxNTYxMDE0MjU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTkwNjAyMDAxOTA5MjkxOTA1MDUwNTA2MTAxZjY1NjViMDA1YjYwMDA0NzkwNTA5MDU2NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjEwOGZjNDc5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTU4MDE1NjEwMWE4NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTY1YjgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MTA4ZmM4MjkwODExNTAyOTA2MDQwNTE2MDAwNjA0MDUxODA4MzAzODE4NTg4ODhmMTkzNTA1MDUwNTAxNTgwMTU2MTAxZjE1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTY1YjgwMzQxNDYxMDIwMjU3NjAwMDgwZmQ1YjUwNTZmZWEyNjU2MjdhN2E3MjMxNTgyMGY4Zjg0ZmMzMWE4NDUwNjRiNTc4MWU5MDgzMTZmM2M1OTExNTc5NjJkZWFiYjBmZDQyNGVkNTRmMjU2NDAwZjk2NDczNmY2YzYzNDMwMDA1MTEwMDMy","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwSOr8svethwttUvUF4HRAixJlYXi1HUoGfhUuW9tMmnrLFcMgPUSbm+xawVTgkcjkGgwInZm0rgYQ+Y37/wEiDwoJCOGYtK4GEP0HEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjimLSuBhD/BxICGAISAhgDGK/Dto0EIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5ClgEKAxiZCBpzKnEIAhJtCiISIPFlWZeCUrlZifn3u3LI294krTkfyfLkm9JVijOoFHQ1CiM6IQInQkIOJWE6GVBCcGW7uOo8GqLur/7jpbvnbIE33kQpAwoiEiBqVsdNZwUEvGgQXdVnZARWD2Gcpl9Onx7XTC1m0ybnPSCQoQ9CBQiAztoDUgBaAGoLY2VsbGFyIGRvb3I=","b64Record":"CiUIFiIDGJoIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBRLJ6KVzZffaZ8rpu0uXWt/8sM2kTEqgHGx9iC3qVVqlK/ehk07UB7DbUzmmU6tkMaCwiembSuBhDRvugMIg8KCQjimLSuBhD/BxICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMMDZ4gZC7wYKAxiaCBK6BGCAYEBSYAQ2EGEAP1dgADVg4ByAYxIGX+AUYQCPV4BjPM/WCxRhALpXgGNvZCNOFGEA0VeAY7a1XyUUYQEsV1szc///////////////////////////Fn/xsD9wi5w59FP+PwzvhBZMfW99+DbfB5bh6cK85u45fjRgQFGAgoFSYCABkVBQYEBRgJEDkKIAWzSAFWEAm1dgAID9W1BhAKRhAVpWW2BAUYCCgVJgIAGRUFBgQFGAkQOQ81s0gBVhAMZXYACA/VtQYQDPYQFiVlsAWzSAFWEA3VdgAID9W1BhASpgBIA2A2BAgRAVYQD0V2AAgP1bgQGQgIA1c///////////////////////////FpBgIAGQkpGQgDWQYCABkJKRkFBQUGEBq1ZbAFthAVhgBIA2A2AggRAVYQFCV2AAgP1bgQGQgIA1kGAgAZCSkZBQUFBhAfZWWwBbYABHkFCQVlszc///////////////////////////FmEI/EeQgRUCkGBAUWAAYEBRgIMDgYWIiPGTUFBQUBWAFWEBqFc9YACAPj1gAP1bUFZbgXP//////////////////////////xZhCPyCkIEVApBgQFFgAGBAUYCDA4GFiIjxk1BQUFAVgBVhAfFXPWAAgD49YAD9W1BQUFZbgDQUYQICV2AAgP1bUFb+omVienpyMVgg+PhPwxqEUGS1eB6QgxbzxZEVeWLeq7D9Qk7VTyVkAPlkc29sY0MABREAMiKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAowJoMOgMYmghKFgoUAAAAAAAAAAAAAAAAAAAAAAAABBpyBwoDGJoIEAFSFgoJCgIYAhD/ssUNCgkKAhhiEICzxQ0="},{"b64Body":"ChAKCQjimLSuBhCBCBIDGJcIEgIYAxjP2tQVIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA9UBCtIBAvjPggEqgKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAClT0w8AIMPQkCUAAAAAAAAAAAAAAAAAAAAAAAABBqGteYg9IAApLa1XyUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOIMABoAYOsET7EjkytxvdrgVZR+ffVt7knb/7g/h47PQf6bqHoHLCwVE4j28K0vl/FCf6Wkd4sTanzWvhtcjgmlz3VFMC","b64Record":"CiUIFiIDGJoIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDQONQa42SnvY7qPuj7ln9GVuGVQLmCUtXZTKSFztn62It4BKl2FJ/QdmQt4IqH5XYaDAiembSuBhDjq+mSAiIQCgkI4pi0rgYQgQgSAxiXCCogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wz8DfMDrDAgoDGJoIIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACiA6jBQwIQ9WKCcAWIktrVfJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE4gagMYmAh6AggBUlEKCQoCGAMQ1t3GAQoJCgIYYhC8+MpXCgoKAxigBhDG1ZYECgoKAxihBhDG1ZYECgoKAxiXCBCdtakrCgoKAxiYCBC/hJg2CgkKAxiaCBDAuAKKASCFqcJbfzfS2trNAzhyUhtxAXAH52Ca88xcMJ5kqTd+nw=="}]},"feePaymentMatrix Success/71/18400000":{"placeholderNum":1051,"encodedItems":[{"b64Body":"Cg8KCQjnmLSuBhCVCBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIJeJGPYotH7iEzf8dGdYmqGcmS5S2j2jDwCVBHfY/9u7EICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGJwIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBiiA9QRGTmUu3EoH/mVkBj4UJB8AKiYqGjgV/qs573XPwhzKhvRrwQM8mmvQCBsRAaDAijmbSuBhDC5d6IASIPCgkI55i0rgYQlQgSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIfCg0KAhgCEP//663M7JACCg4KAxicCBCAgOytzOyQAg=="},{"b64Body":"ChEKCQjnmLSuBhCXCBICGAIgAVpoCiM6IQJim36c4gs8xkRCqvcSafOHcsc5HEpRRqy5KkqzNDw6fkoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiECYpt+nOILPMZEQqr3Emnzh3LHORxKUUasuSpKszQ8On4=","b64Record":"CgcIFhIDGJ0IEjA89reD5r9zqi3A5LchWt5KqdtaEXYiTT+HQJTkcsO9pVmPiuhIrCGTZvBEa9HbxKEaDAijmbSuBhDah6iYAyIRCgkI55i0rgYQlwgSAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARQyioGBZixuDzbQGZRNynsCTN72qw=="},{"b64Body":"Cg8KCQjnmLSuBhCXCBICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohAmKbfpziCzzGREKq9xJp84dyxzkcSlFGrLkqSrM0PDp+EICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwk621jp7ISzD3OhQp5xCuLYlTsXbTTW1X4BoFVbAYnpVZXZnDr6h4KHb3qaeJDeJeGgwIo5m0rgYQ24eomAMiDwoJCOeYtK4GEJcIEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SGQoKCgIYAhD/j9/ASgoLCgMYnQgQgJDfwEo="},{"b64Body":"Cg8KCQjomLSuBhCdCBICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAik546yBhDj7LSUARptCiISIGG4+9rJShvP2T8bo+74cSmuPiCmiHwEgvFHT8/RkLV7CiM6IQPGMEU8zKCa/tyPL45JNg6LroVyzdKUZqJFU1pQ3/BU4goiEiDL+YDU7ZRxFkDltWLogqawgg7L0qshUZru/d7pSmsGiiIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGJ4IKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjB0z1RGn93Rv2TxoO3rK+jEWqowTXVYJyEJ8AygRWxfMGCj2qEnMtv41wSqMjn8bwAaDAikmbSuBhDlx/apASIPCgkI6Ji0rgYQnQgSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjomLSuBhChCBICGAISAhgDGPa4sjEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBogkKAxieCCKaCTYwODA2MDQwNTI2MTAyM2E4MDYxMDAxMzYwMDAzOTYwMDBmM2ZlNjA4MDYwNDA1MjYwMDQzNjEwNjEwMDNmNTc2MDAwMzU2MGUwMWM4MDYzMTIwNjVmZTAxNDYxMDA4ZjU3ODA2MzNjY2ZkNjBiMTQ2MTAwYmE1NzgwNjM2ZjY0MjM0ZTE0NjEwMGQxNTc4MDYzYjZiNTVmMjUxNDYxMDEyYzU3NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2N2ZmMWIwM2Y3MDhiOWMzOWY0NTNmZTNmMGNlZjg0MTY0YzdkNmY3ZGY4MzZkZjA3OTZlMWU5YzJiY2U2ZWUzOTdlMzQ2MDQwNTE4MDgyODE1MjYwMjAwMTkxNTA1MDYwNDA1MTgwOTEwMzkwYTIwMDViMzQ4MDE1NjEwMDliNTc2MDAwODBmZDViNTA2MTAwYTQ2MTAxNWE1NjViNjA0MDUxODA4MjgxNTI2MDIwMDE5MTUwNTA2MDQwNTE4MDkxMDM5MGYzNWIzNDgwMTU2MTAwYzY1NzYwMDA4MGZkNWI1MDYxMDBjZjYxMDE2MjU2NWIwMDViMzQ4MDE1NjEwMGRkNTc2MDAwODBmZDViNTA2MTAxMmE2MDA0ODAzNjAzNjA0MDgxMTAxNTYxMDBmNDU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2OTA2MDIwMDE5MDkyOTE5MDgwMzU5MDYwMjAwMTkwOTI5MTkwNTA1MDUwNjEwMWFiNTY1YjAwNWI2MTAxNTg2MDA0ODAzNjAzNjAyMDgxMTAxNTYxMDE0MjU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTkwNjAyMDAxOTA5MjkxOTA1MDUwNTA2MTAxZjY1NjViMDA1YjYwMDA0NzkwNTA5MDU2NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjEwOGZjNDc5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTU4MDE1NjEwMWE4NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTY1YjgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MTA4ZmM4MjkwODExNTAyOTA2MDQwNTE2MDAwNjA0MDUxODA4MzAzODE4NTg4ODhmMTkzNTA1MDUwNTAxNTgwMTU2MTAxZjE1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTY1YjgwMzQxNDYxMDIwMjU3NjAwMDgwZmQ1YjUwNTZmZWEyNjU2MjdhN2E3MjMxNTgyMGY4Zjg0ZmMzMWE4NDUwNjRiNTc4MWU5MDgzMTZmM2M1OTExNTc5NjJkZWFiYjBmZDQyNGVkNTRmMjU2NDAwZjk2NDczNmY2YzYzNDMwMDA1MTEwMDMy","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwqrrM00QmwDv8/79hTv3QusUKs+5zhkj9wpz/g2HowxECHV2fT3fQCdAdka6hJvY6GgwIpJm0rgYQzsihtQMiDwoJCOiYtK4GEKEIEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjpmLSuBhCjCBICGAISAhgDGK/Dto0EIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5ClgEKAxieCBpzKnEIAhJtCiISIF08Kz+3SND0Uc5CYhkXWbZuHfpkytfm0qat/yeRLAqtCiM6IQKtbEiRJH58Ziqsdw3O6nxt9xtDlBIEQAhpckNLjpDYagoiEiCiCQ9DgrYYYDFIy7iA9UHvbs0HOEKhqKrUquqJVCc12CCQoQ9CBQiAztoDUgBaAGoLY2VsbGFyIGRvb3I=","b64Record":"CiUIFiIDGJ8IKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDYyT3GaIdxWVM4KMGeUMLK6vuL9SbuOfUcBllx1Z9d5ORIGMD1kGO5ukILmtCm3FAaDAilmbSuBhDZoozCASIPCgkI6Zi0rgYQowgSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQu8GCgMYnwgSugRggGBAUmAENhBhAD9XYAA1YOAcgGMSBl/gFGEAj1eAYzzP1gsUYQC6V4Bjb2QjThRhANFXgGO2tV8lFGEBLFdbM3P//////////////////////////xZ/8bA/cIucOfRT/j8M74QWTH1vffg23weW4enCvObuOX40YEBRgIKBUmAgAZFQUGBAUYCRA5CiAFs0gBVhAJtXYACA/VtQYQCkYQFaVltgQFGAgoFSYCABkVBQYEBRgJEDkPNbNIAVYQDGV2AAgP1bUGEAz2EBYlZbAFs0gBVhAN1XYACA/VtQYQEqYASANgNgQIEQFWEA9FdgAID9W4EBkICANXP//////////////////////////xaQYCABkJKRkIA1kGAgAZCSkZBQUFBhAatWWwBbYQFYYASANgNgIIEQFWEBQldgAID9W4EBkICANZBgIAGQkpGQUFBQYQH2VlsAW2AAR5BQkFZbM3P//////////////////////////xZhCPxHkIEVApBgQFFgAGBAUYCDA4GFiIjxk1BQUFAVgBVhAahXPWAAgD49YAD9W1BWW4Fz//////////////////////////8WYQj8gpCBFQKQYEBRYABgQFGAgwOBhYiI8ZNQUFBQFYAVYQHxVz1gAIA+PWAA/VtQUFBWW4A0FGECAldgAID9W1BW/qJlYnp6cjFYIPj4T8MahFBktXgekIMW88WRFXli3quw/UJO1U8lZAD5ZHNvbGNDAAURADIigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMCaDDoDGJ8IShYKFAAAAAAAAAAAAAAAAAAAAAAAAAQfcgcKAxifCBABUhYKCQoCGAIQ/7LFDQoJCgIYYhCAs8UN"},{"b64Body":"ChAKCQjpmLSuBhClCBIDGJwIEgIYAxjP2tQVIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA9oBCtIBAvjPggEqgKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAClT0w8AIMPQkCUAAAAAAAAAAAAAAAAAAAAAAAABB+GteYg9IAApLa1XyUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOIMABoK7g5zFBnQ4BeHH/NTf0yNruDasKT5YyPiCn6K5ka8w6oCYROJaTddTXE9l6FEgsaZVQ1jt8LvVJxq2EtgS9bVjFGICG4wg=","b64Record":"CiUIFiIDGJ8IKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAFAtVmLBewlnL714uwfXc6+0uUwqkNr8iSPwWKq4vBnbiTUPp+n1nzPPU7YjDEelMaDAilmbSuBhC90rGrAyIQCgkI6Zi0rgYQpQgSAxicCCogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wz8DfMDrDAgoDGJ8IIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACiA6jBQwIQ9WKCcAWIktrVfJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE4gagMYnQh6AggBUlEKCQoCGAMQ1t3GAQoJCgIYYhC8+MpXCgoKAxigBhDG1ZYECgoKAxihBhDG1ZYECgoKAxicCBCdtakrCgoKAxidCBC/hJg2CgkKAxifCBDAuAKKASBoz4LrxGa6g9YuOeqqO840ShbcB+4uew4K4nUWK1E8zg=="}]},"feePaymentMatrix Success/71/71000000":{"placeholderNum":1056,"encodedItems":[{"b64Body":"Cg8KCQjumLSuBhC5CBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIHUpm4lFykUfRm1fL30gzBbIKkznX4exesJ6kglQBx1LEICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGKEIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDt673cTyZrW/mckMzSYbK46hAg/3Xx2DDweoczuuxkutuO16GF5JMTGHo1fNltPdwaDAiqmbSuBhCIjOaqAiIPCgkI7pi0rgYQuQgSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIfCg0KAhgCEP//663M7JACCg4KAxihCBCAgOytzOyQAg=="},{"b64Body":"ChEKCQjvmLSuBhC7CBICGAIgAVpoCiM6IQLbK6UhQWY2SMJID9Pi8LuZCGJH8/QsA2quWkyopFeetkoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiEC2yulIUFmNkjCSA/T4vC7mQhiR/P0LANqrlpMqKRXnrY=","b64Record":"CgcIFhIDGKIIEjCcsMqdgI4JyVBGYRTtunX5BBN50LOeMwdduM+zPWog+xVTUi3LQSwXC3NoI72dSbMaCwirmbSuBhDnrL48IhEKCQjvmLSuBhC7CBICGAIgASoUYXV0by1jcmVhdGVkIGFjY291bnRSAKoBFMxM+ybNBJ5oijReJytXQk034TvS"},{"b64Body":"Cg8KCQjvmLSuBhC7CBICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohAtsrpSFBZjZIwkgP0+Lwu5kIYkfz9CwDaq5aTKikV562EICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwBJcHprao/2pOs8etrZsI4oVSrsyGwe6CbThkPCFRDXmmAqJXJCiDxxREAcaqOITHGgsIq5m0rgYQ6Ky+PCIPCgkI75i0rgYQuwgSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxiiCBCAkN/ASg=="},{"b64Body":"Cg8KCQjvmLSuBhDBCBICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAir546yBhCTl7S0AhptCiISIFadbEXJtPfGgEzYTw7Ntd8R9NidgoC7IX48lrdKjPFZCiM6IQLtcmhgYNEuu7NkbwxbnRkeCCU1oh3zYOty/g2NlWYdxAoiEiDwb6RxIWJ2HOW8JABGQVRiCM44hKL0aFntCfDQ8mJUQiIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGKMIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCAvweJxitvSXWSXE+sfOguIVHbYx/JCqpYi0IW5Iz5H3nVgZ4tAQ3Hkd0bdi0awXoaDAirmbSuBhDvgY7MAiIPCgkI75i0rgYQwQgSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjwmLSuBhDFCBICGAISAhgDGPa4sjEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBogkKAxijCCKaCTYwODA2MDQwNTI2MTAyM2E4MDYxMDAxMzYwMDAzOTYwMDBmM2ZlNjA4MDYwNDA1MjYwMDQzNjEwNjEwMDNmNTc2MDAwMzU2MGUwMWM4MDYzMTIwNjVmZTAxNDYxMDA4ZjU3ODA2MzNjY2ZkNjBiMTQ2MTAwYmE1NzgwNjM2ZjY0MjM0ZTE0NjEwMGQxNTc4MDYzYjZiNTVmMjUxNDYxMDEyYzU3NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2N2ZmMWIwM2Y3MDhiOWMzOWY0NTNmZTNmMGNlZjg0MTY0YzdkNmY3ZGY4MzZkZjA3OTZlMWU5YzJiY2U2ZWUzOTdlMzQ2MDQwNTE4MDgyODE1MjYwMjAwMTkxNTA1MDYwNDA1MTgwOTEwMzkwYTIwMDViMzQ4MDE1NjEwMDliNTc2MDAwODBmZDViNTA2MTAwYTQ2MTAxNWE1NjViNjA0MDUxODA4MjgxNTI2MDIwMDE5MTUwNTA2MDQwNTE4MDkxMDM5MGYzNWIzNDgwMTU2MTAwYzY1NzYwMDA4MGZkNWI1MDYxMDBjZjYxMDE2MjU2NWIwMDViMzQ4MDE1NjEwMGRkNTc2MDAwODBmZDViNTA2MTAxMmE2MDA0ODAzNjAzNjA0MDgxMTAxNTYxMDBmNDU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2OTA2MDIwMDE5MDkyOTE5MDgwMzU5MDYwMjAwMTkwOTI5MTkwNTA1MDUwNjEwMWFiNTY1YjAwNWI2MTAxNTg2MDA0ODAzNjAzNjAyMDgxMTAxNTYxMDE0MjU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTkwNjAyMDAxOTA5MjkxOTA1MDUwNTA2MTAxZjY1NjViMDA1YjYwMDA0NzkwNTA5MDU2NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjEwOGZjNDc5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTU4MDE1NjEwMWE4NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTY1YjgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MTA4ZmM4MjkwODExNTAyOTA2MDQwNTE2MDAwNjA0MDUxODA4MzAzODE4NTg4ODhmMTkzNTA1MDUwNTAxNTgwMTU2MTAxZjE1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTY1YjgwMzQxNDYxMDIwMjU3NjAwMDgwZmQ1YjUwNTZmZWEyNjU2MjdhN2E3MjMxNTgyMGY4Zjg0ZmMzMWE4NDUwNjRiNTc4MWU5MDgzMTZmM2M1OTExNTc5NjJkZWFiYjBmZDQyNGVkNTRmMjU2NDAwZjk2NDczNmY2YzYzNDMwMDA1MTEwMDMy","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwWIjppSXwGVE9s31AvUSn7Y4r93roYOX3hnW28T1yjy5u/SQ5qMZoBfyTotiElVydGgsIrJm0rgYQv9nkXSIPCgkI8Ji0rgYQxQgSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjwmLSuBhDHCBICGAISAhgDGK/Dto0EIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5ClgEKAxijCBpzKnEIAhJtCiISIKja0M6YGpBch+d53cDW5pzfigSwfJ6STYrIVYs+Q0HvCiM6IQPxbGHB5eO1PU/b2UxirAAuYBuCnndgBHtK5nU8nM0cMgoiEiABzo+bikm99tYDXirQ4eGS0J+4jToLo0/Z3Dq8kKsENCCQoQ9CBQiAztoDUgBaAGoLY2VsbGFyIGRvb3I=","b64Record":"CiUIFiIDGKQIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjA8udYei242KZ0nmxTYo83A6vJwbGAJ0ZRbk2+ggjKO8kjBOMkgRbMnsISpNgt2cVIaDAismbSuBhDBy5rMAiIPCgkI8Ji0rgYQxwgSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQu8GCgMYpAgSugRggGBAUmAENhBhAD9XYAA1YOAcgGMSBl/gFGEAj1eAYzzP1gsUYQC6V4Bjb2QjThRhANFXgGO2tV8lFGEBLFdbM3P//////////////////////////xZ/8bA/cIucOfRT/j8M74QWTH1vffg23weW4enCvObuOX40YEBRgIKBUmAgAZFQUGBAUYCRA5CiAFs0gBVhAJtXYACA/VtQYQCkYQFaVltgQFGAgoFSYCABkVBQYEBRgJEDkPNbNIAVYQDGV2AAgP1bUGEAz2EBYlZbAFs0gBVhAN1XYACA/VtQYQEqYASANgNgQIEQFWEA9FdgAID9W4EBkICANXP//////////////////////////xaQYCABkJKRkIA1kGAgAZCSkZBQUFBhAatWWwBbYQFYYASANgNgIIEQFWEBQldgAID9W4EBkICANZBgIAGQkpGQUFBQYQH2VlsAW2AAR5BQkFZbM3P//////////////////////////xZhCPxHkIEVApBgQFFgAGBAUYCDA4GFiIjxk1BQUFAVgBVhAahXPWAAgD49YAD9W1BWW4Fz//////////////////////////8WYQj8gpCBFQKQYEBRYABgQFGAgwOBhYiI8ZNQUFBQFYAVYQHxVz1gAIA+PWAA/VtQUFBWW4A0FGECAldgAID9W1BW/qJlYnp6cjFYIPj4T8MahFBktXgekIMW88WRFXli3quw/UJO1U8lZAD5ZHNvbGNDAAURADIigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMCaDDoDGKQIShYKFAAAAAAAAAAAAAAAAAAAAAAAAAQkcgcKAxikCBABUhYKCQoCGAIQ/7LFDQoJCgIYYhCAs8UN"},{"b64Body":"ChAKCQjxmLSuBhDJCBIDGKEIEgIYAxjP2tQVIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA9oBCtIBAvjPggEqgKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAClT0w8AIMPQkCUAAAAAAAAAAAAAAAAAAAAAAAABCSGteYg9IAApLa1XyUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOIMABoLGXBBs/c+UDRCmSy6LqEFPQ1FHZu91P7MG4ZhR5H/88oEj1m/w7wENX8pz2BE/mTjjm6TU3a1QSHlvsFQEUaxE7GMC/7SE=","b64Record":"CiUIFiIDGKQIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDi08SoQu6UdOvXP8y0PjKWd0fd3AGoHPD2592yh5VGpjhm+oWchbB3di0U85rZedgaCwitmbSuBhDxtIB/IhAKCQjxmLSuBhDJCBIDGKEIKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDPwN8wOsMCCgMYpAgigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKIDqMFDAhD1YoJwBYiS2tV8lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATiBqAxiiCHoCCAFSUQoJCgIYAxDW3cYBCgkKAhhiELz4ylcKCgoDGKAGEMbVlgQKCgoDGKEGEMbVlgQKCgoDGKEIEJ21qSsKCgoDGKIIEL+EmDYKCQoDGKQIEMC4AooBIE9OIks1/BlPZbVayntgysjSRP5muQEd13wRaB2omBDO"}]},"InvalidTxData":{"placeholderNum":1061,"encodedItems":[{"b64Body":"Cg8KCQj1mLSuBhDdCBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIAOzhVvpY4q+ct6D7ZOmJBTPHSc36DDbN7d9DW79Al/fEICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGKYIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCgyFhOcLsxp15z0EoZAnDK2/uqnq58HbC3RFU8+e8XRcO1uKwbG0l3+wmfYN5em9EaCwiymbSuBhCAtZAIIg8KCQj1mLSuBhDdCBICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUh8KDQoCGAIQ///rrczskAIKDgoDGKYIEICA7K3M7JAC"},{"b64Body":"ChEKCQj2mLSuBhDfCBICGAIgAVpoCiM6IQKJv1I3C2ZKJbgCkHuqdF5yFHNN6LPAD8spQ2Fsn7Cxk0oFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiECib9SNwtmSiW4ApB7qnRechRzTeizwA/LKUNhbJ+wsZM=","b64Record":"CgcIFhIDGKcIEjA1u5G/IHtfTCpHh6LSddu0WWVZ+ih1i3sXdAHlpimbqa4EfED0oPGFYch4BaWXnrkaDAiymbSuBhCMns3sASIRCgkI9pi0rgYQ3wgSAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARQo3eIjn7c7MDbOHOPZLZZgnHquQw=="},{"b64Body":"Cg8KCQj2mLSuBhDfCBICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohAom/UjcLZkoluAKQe6p0XnIUc03os8APyylDYWyfsLGTEICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw6Wb1zDLynxxo5AxC1quCpep29sF9bvPPmmRTIrXmgN/419EnIzkI1IIvQPbtWGczGgwIspm0rgYQjZ7N7AEiDwoJCPaYtK4GEN8IEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SGQoKCgIYAhD/j9/ASgoLCgMYpwgQgJDfwEo="},{"b64Body":"Cg8KCQj2mLSuBhDlCBICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAiy546yBhCSq4PaAxptCiISIGkfa8JlyAQZV+0WX2KPEB5mMczUib3+9n4FcrsN0ZigCiM6IQN3mCWcbB/k0l3t9oabg+TXYiXgVlCFK96NDZ6qJeHIOQoiEiAOnLZ6Vgr16J/XIvn+CAgdJD4f8k7k5ipoqvkMvOXv6iIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGKgIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAO5X0ap2ZXwLIo4ZzkltpoAh5Ft+9xe3EhQ8Pp9VddAuKJ53gSEGkzeXGs4CDyaoIaCwizmbSuBhC4g8QfIg8KCQj2mLSuBhDlCBICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgA="},{"b64Body":"Cg8KCQj3mLSuBhDpCBICGAISAhgDGPa4sjEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBogkKAxioCCKaCTYwODA2MDQwNTI2MTAyM2E4MDYxMDAxMzYwMDAzOTYwMDBmM2ZlNjA4MDYwNDA1MjYwMDQzNjEwNjEwMDNmNTc2MDAwMzU2MGUwMWM4MDYzMTIwNjVmZTAxNDYxMDA4ZjU3ODA2MzNjY2ZkNjBiMTQ2MTAwYmE1NzgwNjM2ZjY0MjM0ZTE0NjEwMGQxNTc4MDYzYjZiNTVmMjUxNDYxMDEyYzU3NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2N2ZmMWIwM2Y3MDhiOWMzOWY0NTNmZTNmMGNlZjg0MTY0YzdkNmY3ZGY4MzZkZjA3OTZlMWU5YzJiY2U2ZWUzOTdlMzQ2MDQwNTE4MDgyODE1MjYwMjAwMTkxNTA1MDYwNDA1MTgwOTEwMzkwYTIwMDViMzQ4MDE1NjEwMDliNTc2MDAwODBmZDViNTA2MTAwYTQ2MTAxNWE1NjViNjA0MDUxODA4MjgxNTI2MDIwMDE5MTUwNTA2MDQwNTE4MDkxMDM5MGYzNWIzNDgwMTU2MTAwYzY1NzYwMDA4MGZkNWI1MDYxMDBjZjYxMDE2MjU2NWIwMDViMzQ4MDE1NjEwMGRkNTc2MDAwODBmZDViNTA2MTAxMmE2MDA0ODAzNjAzNjA0MDgxMTAxNTYxMDBmNDU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2OTA2MDIwMDE5MDkyOTE5MDgwMzU5MDYwMjAwMTkwOTI5MTkwNTA1MDUwNjEwMWFiNTY1YjAwNWI2MTAxNTg2MDA0ODAzNjAzNjAyMDgxMTAxNTYxMDE0MjU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTkwNjAyMDAxOTA5MjkxOTA1MDUwNTA2MTAxZjY1NjViMDA1YjYwMDA0NzkwNTA5MDU2NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjEwOGZjNDc5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTU4MDE1NjEwMWE4NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTY1YjgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MTA4ZmM4MjkwODExNTAyOTA2MDQwNTE2MDAwNjA0MDUxODA4MzAzODE4NTg4ODhmMTkzNTA1MDUwNTAxNTgwMTU2MTAxZjE1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTY1YjgwMzQxNDYxMDIwMjU3NjAwMDgwZmQ1YjUwNTZmZWEyNjU2MjdhN2E3MjMxNTgyMGY4Zjg0ZmMzMWE4NDUwNjRiNTc4MWU5MDgzMTZmM2M1OTExNTc5NjJkZWFiYjBmZDQyNGVkNTRmMjU2NDAwZjk2NDczNmY2YzYzNDMwMDA1MTEwMDMy","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwdPeD1R9roihVLdd9zxFXFzBnzscnod8VxmYW2Izao8jEyMoFz3scZbXw5MdOo/M7GgwIs5m0rgYQ0pqMjgIiDwoJCPeYtK4GEOkIEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="}]},"etx008ContractCreateExecutesWithExpectedRecord":{"placeholderNum":1065,"encodedItems":[{"b64Body":"Cg8KCQj8mLSuBhD7CBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIH2KAPK+PEi0NyvvYP/7m21O8GcaE+prQBay09b4RbB+EICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGKoIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDizgwI22UfD7IspuRc0vX+3f5+12jaxX1FUCLCRHmrQ2VXUXwBBTmPQY19nwLbNp8aDAi4mbSuBhCmveCzASIPCgkI/Ji0rgYQ+wgSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIfCg0KAhgCEP//663M7JACCg4KAxiqCBCAgOytzOyQAg=="},{"b64Body":"ChEKCQj8mLSuBhD9CBICGAIgAVpoCiM6IQO0n3rE1aluPSmNkbR0MA3S6xM3sNeTjJdw34rdGH30j0oFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiEDtJ96xNWpbj0pjZG0dDAN0usTN7DXk4yXcN+K3Rh99I8=","b64Record":"CgcIFhIDGKsIEjBx9QrQeGXdvj2yXA2FicdIeuYEZUj9oecoLkt0Q9nRTuYuPfzhdadqN50YvHrfmQUaDAi4mbSuBhC0r4qPAyIRCgkI/Ji0rgYQ/QgSAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARTk2Nu4VFCCSr2gf/+9RiGUDhvKVA=="},{"b64Body":"Cg8KCQj8mLSuBhD9CBICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohA7SfesTVqW49KY2RtHQwDdLrEzew15OMl3Dfit0YffSPEICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwKe2cE0NnE5FPezZIkVJ0bM5n9PqGYl40H0fnA3cwoUwqXSkZYCtVThznNx2b3e8kGgwIuJm0rgYQta+KjwMiDwoJCPyYtK4GEP0IEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SGQoKCgIYAhD/j9/ASgoLCgMYqwgQgJDfwEo="},{"b64Body":"Cg8KCQj9mLSuBhD/CBICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAi5546yBhD/jayjARptCiISIKE4Zpn1B6CL1DV/3yeilQEbtP50FswnfkEiKTz1wVkPCiM6IQKWGCrlEbw98dVMpK2NvS5rOK9/9w5IlAiVWodVYad2CQoiEiDPaOEFnbv+ruK+v8qNjmx+DCa2/fiD3B17mHtpVbRueSIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGKwIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDsXiAzvH9bjo7G61Ro1OvLNS3YgR7irHGdsdafwXoqp4TCdrpOx4QJDYsEEysBebQaDAi5mbSuBhDvu7uzASIPCgkI/Zi0rgYQ/wgSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQj9mLSuBhCDCRICGAISAhgDGILlpzoiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBoBkKAxisCCKYGTYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDMwNjAwMDYwNDA1MTYxMDAyMDkwNjEwMjViNTY1YjgwODM3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ODE1MjYwMjAwMTgyNjNmZmZmZmZmZjE2NjNmZmZmZmZmZjE2ODE1MjYwMjAwMTkyNTA1MDUwNjA0MDUxODA5MTAzOTA2MDAwZjA4MDE1ODAxNTYxMDA4NTU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDYwMDA4MDYwMDM4MTEwNjEwMDkzNTdmZTViMDE2MDAwNjEwMTAwMGE4MTU0ODE3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjE5MTY5MDgzNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTYwMjE3OTA1NTUwMzA2MDAxNjA0MDUxNjEwMGUxOTA2MTAyNWI1NjViODA4MzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4MTUyNjAyMDAxODI2M2ZmZmZmZmZmMTY2M2ZmZmZmZmZmMTY4MTUyNjAyMDAxOTI1MDUwNTA2MDQwNTE4MDkxMDM5MDYwMDBmMDgwMTU4MDE1NjEwMTQ2NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNjAwMDYwMDE2MDAzODExMDYxMDE1NTU3ZmU1YjAxNjAwMDYxMDEwMDBhODE1NDgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIxOTE2OTA4MzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2MDIxNzkwNTU1MDMwNjAwMjYwNDA1MTYxMDFhMzkwNjEwMjViNTY1YjgwODM3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ODE1MjYwMjAwMTgyNjNmZmZmZmZmZjE2NjNmZmZmZmZmZjE2ODE1MjYwMjAwMTkyNTA1MDUwNjA0MDUxODA5MTAzOTA2MDAwZjA4MDE1ODAxNTYxMDIwODU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDYwMDA2MDAyNjAwMzgxMTA2MTAyMTc1N2ZlNWIwMTYwMDA2MTAxMDAwYTgxNTQ4MTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMTkxNjkwODM3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjAyMTc5MDU1NTA2MTAyNjg1NjViNjEwMWI4ODA2MTA0OTQ4MzM5MDE5MDU2NWI2MTAyMWQ4MDYxMDI3NzYwMDAzOTYwMDBmM2ZlNjA4MDYwNDA1MjM0ODAxNTYxMDAxMDU3NjAwMDgwZmQ1YjUwNjAwNDM2MTA2MTAwMmI1NzYwMDAzNTYwZTAxYzgwNjM2NGRiZTc4YzE0NjEwMDMwNTc1YjYwMDA4MGZkNWI2MTAwMzg2MTAwM2E1NjViMDA1YjYwMDA4MDYwMDM4MTEwNjEwMDQ3NTdmZTViMDE2MDAwOTA1NDkwNjEwMTAwMGE5MDA0NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzYjhiM2RiYzY2MDQwNTE4MTYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MDAwNjA0MDUxODA4MzAzODE2MDAwODc4MDNiMTU4MDE1NjEwMGIwNTc2MDAwODBmZDViNTA1YWYxMTU4MDE1NjEwMGM0NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjAwMDYwMDE2MDAzODExMDYxMDBkNjU3ZmU1YjAxNjAwMDkwNTQ5MDYxMDEwMDBhOTAwNDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2M2I4YjNkYmM2NjA0MDUxODE2M2ZmZmZmZmZmMTY2MGUwMWI4MTUyNjAwNDAxNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg3ODAzYjE1ODAxNTYxMDEzZjU3NjAwMDgwZmQ1YjUwNWFmMTE1ODAxNTYxMDE1MzU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwMDA2MDAyNjAwMzgxMTA2MTAxNjU1N2ZlNWIwMTYwMDA5MDU0OTA2MTAxMDAwYTkwMDQ3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjNiOGIzZGJjNjYwNDA1MTgxNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NzgwM2IxNTgwMTU2MTAxY2U1NzYwMDA4MGZkNWI1MDVhZjExNTgwMTU2MTAxZTI1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA1NmZlYTI2NTYyN2E3YTcyMzE1ODIwNmI1ODg3NjljODIzYmQ0MjMyMzRjYTY3MjI2MTdjOTE1NTkzNzc4NzczMjg5ZTVlYTY5NTdmNmIzMDgzYTcyNjY0NzM2ZjZjNjM0MzAwMDUxMTAwMzI2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDQwNTE2MTAxYjgzODAzODA2MTAxYjg4MzM5ODE4MTAxNjA0MDUyNjA0MDgxMTAxNTYxMDAzMzU3NjAwMDgwZmQ1YjgxMDE5MDgwODA1MTkwNjAyMDAxOTA5MjkxOTA4MDUxOTA2MDIwMDE5MDkyOTE5MDUwNTA1MDgxNjAwMDgwNjEwMTAwMGE4MTU0ODE3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjE5MTY5MDgzNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTYwMjE3OTA1NTUwODA2MDAwNjAxNDYxMDEwMDBhODE1NDgxNjNmZmZmZmZmZjAyMTkxNjkwODM2M2ZmZmZmZmZmMTYwMjE3OTA1NTUwNTA1MDYwZjk4MDYxMDBiZjYwMDAzOTYwMDBmM2ZlNjA4MDYwNDA1MjM0ODAxNTYwMGY1NzYwMDA4MGZkNWI1MDYwMDQzNjEwNjAyODU3NjAwMDM1NjBlMDFjODA2M2I4YjNkYmM2MTQ2MDJkNTc1YjYwMDA4MGZkNWI2MDMzNjAzNTU2NWIwMDViN2ZlZmVkZTI2ODc2NDE2MzM5YjBhNzg5ZGEzNTE3Njk0N2JkZDMwMmI4ZWE5ZDQ5NWRjZDZjMDg0ZWMzZDFjYzllNjAwMDYwMTQ5MDU0OTA2MTAxMDAwYTkwMDQ2M2ZmZmZmZmZmMTY2MDQwNTE4MDgyNjNmZmZmZmZmZjE2NjNmZmZmZmZmZjE2ODE1MjYwMjAwMTkxNTA1MDYwNDA1MTgwOTEwMzkwYTE2MDAwODA5MDU0OTA2MTAxMDAwYTkwMDQ3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ZmZmZWEyNjU2MjdhN2E3MjMxNTgyMGJiNGExZTEzMzZjMzRkNDc2NTQ3MWU5ODkzNDgxMDM3MTVhYzI0Nzk5NmU5YWM2ODYwZjRlYTQ1OWE5YjJiMDg2NDczNmY2YzYzNDMwMDA1MTEwMDMy","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwW9agq/Ultx1x2YvktLaMQSifdzSpBf/MbwYEOU/wyAdS9uj2fhWu+mw9ysd1V0EOGgwIuZm0rgYQwsTgpgMiDwoJCP2YtK4GEIMJEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"ChAKCQj+mLSuBhCFCRIDGKoIEgIYAxjd/aAbIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA+wNCuMNAvkG34IBKoCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATiCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdGpSiACDD0JAgIC5BkxggGBAUjSAFWEAEFdgAID9W1AwYABgQFFhACCQYQJbVluAg3P//////////////////////////xZz//////////////////////////8WgVJgIAGCY/////8WY/////8WgVJgIAGSUFBQYEBRgJEDkGAA8IAVgBVhAIVXPWAAgD49YAD9W1BgAIBgA4EQYQCTV/5bAWAAYQEACoFUgXP//////////////////////////wIZFpCDc///////////////////////////FgIXkFVQMGABYEBRYQDhkGECW1ZbgINz//////////////////////////8Wc///////////////////////////FoFSYCABgmP/////FmP/////FoFSYCABklBQUGBAUYCRA5BgAPCAFYAVYQFGVz1gAIA+PWAA/VtQYABgAWADgRBhAVVX/lsBYABhAQAKgVSBc///////////////////////////AhkWkINz//////////////////////////8WAheQVVAwYAJgQFFhAaOQYQJbVluAg3P//////////////////////////xZz//////////////////////////8WgVJgIAGCY/////8WY/////8WgVJgIAGSUFBQYEBRgJEDkGAA8IAVgBVhAghXPWAAgD49YAD9W1BgAGACYAOBEGECF1f+WwFgAGEBAAqBVIFz//////////////////////////8CGRaQg3P//////////////////////////xYCF5BVUGECaFZbYQG4gGEElIM5AZBWW2ECHYBhAndgADlgAPP+YIBgQFI0gBVhABBXYACA/VtQYAQ2EGEAK1dgADVg4ByAY2Tb54wUYQAwV1tgAID9W2EAOGEAOlZbAFtgAIBgA4EQYQBHV/5bAWAAkFSQYQEACpAEc///////////////////////////FnP//////////////////////////xZjuLPbxmBAUYFj/////xZg4BuBUmAEAWAAYEBRgIMDgWAAh4A7FYAVYQCwV2AAgP1bUFrxFYAVYQDEVz1gAIA+PWAA/VtQUFBQYABgAWADgRBhANZX/lsBYACQVJBhAQAKkARz//////////////////////////8Wc///////////////////////////FmO4s9vGYEBRgWP/////FmDgG4FSYAQBYABgQFGAgwOBYACHgDsVgBVhAT9XYACA/VtQWvEVgBVhAVNXPWAAgD49YAD9W1BQUFBgAGACYAOBEGEBZVf+WwFgAJBUkGEBAAqQBHP//////////////////////////xZz//////////////////////////8WY7iz28ZgQFGBY/////8WYOAbgVJgBAFgAGBAUYCDA4FgAIeAOxWAFWEBzldgAID9W1Ba8RWAFWEB4lc9YACAPj1gAP1bUFBQUFb+omVienpyMVgga1iHacgjvUIyNMpnImF8kVWTd4dzKJ5eppV/azCDpyZkc29sY0MABREAMmCAYEBSNIAVYQAQV2AAgP1bUGBAUWEBuDgDgGEBuIM5gYEBYEBSYECBEBVhADNXYACA/VuBAZCAgFGQYCABkJKRkIBRkGAgAZCSkZBQUFCBYACAYQEACoFUgXP//////////////////////////wIZFpCDc///////////////////////////FgIXkFVQgGAAYBRhAQAKgVSBY/////8CGRaQg2P/////FgIXkFVQUFBg+YBhAL9gADlgAPP+YIBgQFI0gBVgD1dgAID9W1BgBDYQYChXYAA1YOAcgGO4s9vGFGAtV1tgAID9W2AzYDVWWwBbf+/t4mh2QWM5sKeJ2jUXaUe90wK46p1JXc1sCE7D0cyeYABgFJBUkGEBAAqQBGP/////FmBAUYCCY/////8WY/////8WgVJgIAGRUFBgQFGAkQOQoWAAgJBUkGEBAAqQBHP//////////////////////////xZz//////////////////////////8W//6iZWJ6enIxWCC7Sh4TNsNNR2VHHpiTSBA3FawkeZbprGhg9OpFmpsrCGRzb2xjQwAFEQAywAGgzPpjRlL+S6jVHDTvxLQXZSdUv7bM6D8cSvGd6MdSNcKgTaRd0C/VXku8eG4dPlWpFNrjrUnsybazO94blkVpyEAYgMivoCU=","b64Record":"CiUIFiIDGK0IKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAv1rrdWPHMsCUWePyUlfabZuaohlTjCdHdiEVaMblqzvWyIt+gFv7zim4Oxt9M82kaDAi6mbSuBhCS0rq4ASIQCgkI/pi0rgYQhQkSAxiqCCogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4w3eOrNkLYEwoDGK0IEp0EYIBgQFI0gBVhABBXYACA/VtQYAQ2EGEAK1dgADVg4ByAY2Tb54wUYQAwV1tgAID9W2EAOGEAOlZbAFtgAIBgA4EQYQBHV/5bAWAAkFSQYQEACpAEc///////////////////////////FnP//////////////////////////xZjuLPbxmBAUYFj/////xZg4BuBUmAEAWAAYEBRgIMDgWAAh4A7FYAVYQCwV2AAgP1bUFrxFYAVYQDEVz1gAIA+PWAA/VtQUFBQYABgAWADgRBhANZX/lsBYACQVJBhAQAKkARz//////////////////////////8Wc///////////////////////////FmO4s9vGYEBRgWP/////FmDgG4FSYAQBYABgQFGAgwOBYACHgDsVgBVhAT9XYACA/VtQWvEVgBVhAVNXPWAAgD49YAD9W1BQUFBgAGACYAOBEGEBZVf+WwFgAJBUkGEBAAqQBHP//////////////////////////xZz//////////////////////////8WY7iz28ZgQFGBY/////8WYOAbgVJgBAFgAGBAUYCDA4FgAIeAOxWAFWEBzldgAID9W1Ba8RWAFWEB4lc9YACAPj1gAP1bUFBQUFb+omVienpyMVgga1iHacgjvUIyNMpnImF8kVWTd4dzKJ5eppV/azCDpyZkc29sY0MABREAMiKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAogOowOgMYrQg6AxiuCDoDGK8IOgMYsAhKFgoU3HzKDNjhskozgA9AFtFoCVAAPD1QwIQ9YswMYIBgQFI0gBVhABBXYACA/VtQMGAAYEBRYQAgkGECW1ZbgINz//////////////////////////8Wc///////////////////////////FoFSYCABgmP/////FmP/////FoFSYCABklBQUGBAUYCRA5BgAPCAFYAVYQCFVz1gAIA+PWAA/VtQYACAYAOBEGEAk1f+WwFgAGEBAAqBVIFz//////////////////////////8CGRaQg3P//////////////////////////xYCF5BVUDBgAWBAUWEA4ZBhAltWW4CDc///////////////////////////FnP//////////////////////////xaBUmAgAYJj/////xZj/////xaBUmAgAZJQUFBgQFGAkQOQYADwgBWAFWEBRlc9YACAPj1gAP1bUGAAYAFgA4EQYQFVV/5bAWAAYQEACoFUgXP//////////////////////////wIZFpCDc///////////////////////////FgIXkFVQMGACYEBRYQGjkGECW1ZbgINz//////////////////////////8Wc///////////////////////////FoFSYCABgmP/////FmP/////FoFSYCABklBQUGBAUYCRA5BgAPCAFYAVYQIIVz1gAIA+PWAA/VtQYABgAmADgRBhAhdX/lsBYABhAQAKgVSBc///////////////////////////AhkWkINz//////////////////////////8WAheQVVBhAmhWW2EBuIBhBJSDOQGQVlthAh2AYQJ3YAA5YADz/mCAYEBSNIAVYQAQV2AAgP1bUGAENhBhACtXYAA1YOAcgGNk2+eMFGEAMFdbYACA/VthADhhADpWWwBbYACAYAOBEGEAR1f+WwFgAJBUkGEBAAqQBHP//////////////////////////xZz//////////////////////////8WY7iz28ZgQFGBY/////8WYOAbgVJgBAFgAGBAUYCDA4FgAIeAOxWAFWEAsFdgAID9W1Ba8RWAFWEAxFc9YACAPj1gAP1bUFBQUGAAYAFgA4EQYQDWV/5bAWAAkFSQYQEACpAEc///////////////////////////FnP//////////////////////////xZjuLPbxmBAUYFj/////xZg4BuBUmAEAWAAYEBRgIMDgWAAh4A7FYAVYQE/V2AAgP1bUFrxFYAVYQFTVz1gAIA+PWAA/VtQUFBQYABgAmADgRBhAWVX/lsBYACQVJBhAQAKkARz//////////////////////////8Wc///////////////////////////FmO4s9vGYEBRgWP/////FmDgG4FSYAQBYABgQFGAgwOBYACHgDsVgBVhAc5XYACA/VtQWvEVgBVhAeJXPWAAgD49YAD9W1BQUFBW/qJlYnp6cjFYIGtYh2nII71CMjTKZyJhfJFVk3eHcyieXqaVf2swg6cmZHNvbGNDAAURADJggGBAUjSAFWEAEFdgAID9W1BgQFFhAbg4A4BhAbiDOYGBAWBAUmBAgRAVYQAzV2AAgP1bgQGQgIBRkGAgAZCSkZCAUZBgIAGQkpGQUFBQgWAAgGEBAAqBVIFz//////////////////////////8CGRaQg3P//////////////////////////xYCF5BVUIBgAGAUYQEACoFUgWP/////AhkWkINj/////xYCF5BVUFBQYPmAYQC/YAA5YADz/mCAYEBSNIAVYA9XYACA/VtQYAQ2EGAoV2AANWDgHIBjuLPbxhRgLVdbYACA/VtgM2A1VlsAW3/v7eJodkFjObCnido1F2lHvdMCuOqdSV3NbAhOw9HMnmAAYBSQVJBhAQAKkARj/////xZgQFGAgmP/////FmP/////FoFSYCABkVBQYEBRgJEDkKFgAICQVJBhAQAKkARz//////////////////////////8Wc///////////////////////////Fv/+omVienpyMVggu0oeEzbDTUdlRx6Yk0gQNxWsJHmW6axoYPTqRZqbKwhkc29sY0MABREAMmoDGKsIcgcKAxitCBAEcgcKAxiuCBABcgcKAxivCBABcgcKAxiwCBABegIIAVJGCgkKAhgDEPb/mgIKCQoCGGIQuMiBYAoKCgMYoAYQxr+dBQoKCgMYoQYQxr+dBQoKCgMYqggQuYWAPQoKCgMYqwgQ/8HXL4oBIHQ0aoeum9Pj1n01ZNmGQYR4jOr7lWUUfhN+JUI5hKy2"},{"b64Body":"ChIKCQj+mLSuBhCFCRIDGKoIIAFCHUIFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50","b64Record":"CgcIFiIDGK4IEjApwMab3vM/Rc0yJlovhl5llEez2l0f7DcTMAvXZ4sS7lJimTpO4ab3dIkazJ0NIRcaDAi6mbSuBhCT0rq4ASISCgkI/pi0rgYQhQkSAxiqCCABQh0KAxiuCEoWChTARCHv5M7RBM+Av4qazQg+tz9aoVIAegwIupm0rgYQktK6uAE="},{"b64Body":"ChIKCQj+mLSuBhCFCRIDGKoIIAJCHUIFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50","b64Record":"CgcIFiIDGK8IEjAyXr5MXcL4eTI1ZBMo191H8LnpGpD9jQ9MdeS/QpQ1IqY5QiLgFqpd87ChnRn4hPwaDAi6mbSuBhCU0rq4ASISCgkI/pi0rgYQhQkSAxiqCCACQh0KAxivCEoWChQuAfjNuYaSa3mKVFKH+CEqGkhmDVIAegwIupm0rgYQktK6uAE="},{"b64Body":"ChIKCQj+mLSuBhCFCRIDGKoIIANCHUIFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50","b64Record":"CgcIFiIDGLAIEjB839+kH7shycVDb5MhSSqvJsGIBnihR1hBo9mpZuDXY5mlrWECD6oRK27ar340Q8EaDAi6mbSuBhCV0rq4ASISCgkI/pi0rgYQhQkSAxiqCCADQh0KAxiwCEoWChSzCwFq8aEg+z0nV8XFwUDJQ3bwUVIAegwIupm0rgYQktK6uAE="},{"b64Body":"ChIKCQj+mLSuBhCFCRIDGKoIIARCHUIFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50","b64Record":"CgcIFiIDGK0IEjAwveSEofv3w/1odmn74wUcQF4aCh286h9qwkM/JPTCwS8UZx1U47l7OvhJAQ/pvWwaDAi6mbSuBhCW0rq4ASISCgkI/pi0rgYQhQkSAxiqCCAEQh0KAxitCEoWChTcfMoM2OGySjOAD0AW0WgJUAA8PVIAegwIupm0rgYQktK6uAE="}]},"etx009CallsToTokenAddresses":{"placeholderNum":1073,"encodedItems":[{"b64Body":"Cg8KCQiDmbSuBhCxCRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISII6bVrHxX2pCBqu8n5TdKBtFuRD7YqEjwzm/odQwPWYmEICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGLIIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBeMF6WLzciHo+MZpWnXzLrd+GjvtvO/p9o6janN+U8H+OA8SVrg5/b30dwr42lEUcaCwi/mbSuBhCUy/FYIg8KCQiDmbSuBhCxCRICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUh8KDQoCGAIQ///rrczskAIKDgoDGLIIEICA7K3M7JAC"},{"b64Body":"Cg8KCQiDmbSuBhCzCRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIHKpSWGsI7dBXQmbVrdGIWhZpSmFpBKM3ck6OObefrRvEICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGLMIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBOKyY23uXYblTggqYp+INpxRzk3Bpjjt3H8iZDQnfhFgujNvAMyBvUll2W6erznb4aDAi/mbSuBhDY76DMAiIPCgkIg5m0rgYQswkSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxizCBCAqNa5Bw=="},{"b64Body":"ChEKCQiEmbSuBhC1CRICGAIgAlpoCiM6IQO/USW9HLDUsbCnc8lld0qmAjbiv2WOKEKs9W/yxut4d0oFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiEDv1ElvRyw1LGwp3PJZXdKpgI24r9ljihCrPVv8sbreHc=","b64Record":"CgcIFhIDGLQIEjC5tiyoHnCIx2Il656bYv7or5x2hVy5Tj1tGOBT38YYyeGvexGZLlZzQrjG6ZgiLQYaCwjAmbSuBhDa/vZdIhEKCQiEmbSuBhC1CRICGAIgAioUYXV0by1jcmVhdGVkIGFjY291bnRSAKoBFJQXX+ej2JIuPaiy+6dwj2jM4xzO"},{"b64Body":"Cg8KCQiEmbSuBhC1CRICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohA79RJb0csNSxsKdzyWV3SqYCNuK/ZY4oQqz1b/LG63h3EICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwAP5K/dVC7O6oH1J3+5TAo/bkvztReLFia+BgWIV+J/x9fm/1pnHLxlIWXdHivmUGGgsIwJm0rgYQ3P72XSIPCgkIhJm0rgYQtQkSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxi0CBCAkN/ASg=="},{"b64Body":"Cg8KCQiEmbSuBhC3CRICGAISAhgDGL7W8vsCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAXgKDWZ1bmdpYmxlVG9rZW4SCFpIUEVSS1JaIDIqAxizCDIjOiEDv1ElvRyw1LGwp3PJZXdKpgI24r9ljihCrPVv8sbreHdSIzohA79RJb0csNSxsKdzyWV3SqYCNuK/ZY4oQqz1b/LG63h3agwIwOeOsgYQ/eioyQI=","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGLUIEjDx1AFzm3Z6aVs7vSIgMVeB2+ynm/M/lT2Trlst9SRbiUOViXEqyiYx1Jhah4QBmi8aDAjAmbSuBhDqib3yAiIPCgkIhJm0rgYQtwkSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWg4KAxi1CBIHCgMYswgQZHIKCgMYtQgSAxizCA=="},{"b64Body":"Cg8KCQiFmbSuBhC5CRICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjgESCwjB546yBhCLoKN5Gm0KIhIgMmqovpB/DmDzp2nhlGoKlohv25ggvEW8F1GpP1V3IIoKIzohA8Rw1JNc1kxUT5Tg3Xww3aS6ijShCRowMro86m+u8+hYCiISIIwRYl6I4GuNF9ZigoPqr0XqzaYYVqyn00pyJo90nGJ1IgxIZWxsbyBXb3JsZCEqADIA","b64Record":"CiUIFhoDGLYIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDdrbcX8kr14jdvSaX8SeF/83UTGYgreSTZnkXHMQxhGooZKJw59gmQGd5z8H2HkXgaDAjBmbSuBhCAsL6NASIPCgkIhZm0rgYQuQkSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiFmbSuBhC9CRICGAISAhgDGIydjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxi2CCKAIDYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMGE1NzgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDBjZjU3NjAwMDM1NjBlMDFjODA2M2JlYWJhY2M4MTE2MTAwOGM1NzgwNjNlNGRjMmFhNDExNjEwMDY2NTc4MDYzZTRkYzJhYTQxNDYxMDE4MTU3ODA2M2Y0Yjc5ZGE1MTQ2MTAxOTQ1NzgwNjNmNzg4OGFlYzE0NjEwMWE3NTc4MDYzZjc5Yzc1NjgxNDYxMDFiYTU3NjAwMDgwZmQ1YjgwNjNiZWFiYWNjODE0NjEwMTQ4NTc4MDYzZDQ0OWE4MzIxNDYxMDE1YjU3ODA2M2UxZjIxYzY3MTQ2MTAxNmU1NzYwMDA4MGZkNWI4MDYzMDE5ODQ4OTIxNDYxMDBkNDU3ODA2MzE1ZGFjYmVhMTQ2MTAwZTk1NzgwNjMxZjg0YjJiNzE0NjEwMGZjNTc4MDYzOTI3ZGExMDUxNDYxMDEwZjU3ODA2Mzk4ZGNhNWJlMTQ2MTAxMjI1NzgwNjNhODZlMzU3NjE0NjEwMTM1NTc1YjYwMDA4MGZkNWI2MTAwZTc2MTAwZTIzNjYwMDQ2MTA3NDY1NjViNjEwMWNkNTY1YjAwNWI2MTAwZTc2MTAwZjczNjYwMDQ2MTA3Njg1NjViNjEwMjM3NTY1YjYxMDBlNzYxMDEwYTM2NjAwNDYxMDdiMzU2NWI2MTAyYjk1NjViNjEwMGU3NjEwMTFkMzY2MDA0NjEwN2VmNTY1YjYxMDMzMzU2NWI2MTAwZTc2MTAxMzAzNjYwMDQ2MTA3Njg1NjViNjEwM2FiNTY1YjYxMDBlNzYxMDE0MzM2NjAwNDYxMDc0NjU2NWI2MTAzZTg1NjViNjEwMGU3NjEwMTU2MzY2MDA0NjEwN2IzNTY1YjYxMDQyNjU2NWI2MTAwZTc2MTAxNjkzNjYwMDQ2MTA3NDY1NjViNjEwNDlhNTY1YjYxMDBlNzYxMDE3YzM2NjAwNDYxMDdiMzU2NWI2MTA0ZmM1NjViNjEwMGU3NjEwMThmMzY2MDA0NjEwNzQ2NTY1YjYxMDUzMTU2NWI2MTAwZTc2MTAxYTIzNjYwMDQ2MTA3YjM1NjViNjEwNTkzNTY1YjYxMDBlNzYxMDFiNTM2NjAwNDYxMDgzMjU2NWI2MTA2Mzc1NjViNjEwMGU3NjEwMWM4MzY2MDA0NjEwODY1NTY1YjYxMDZhNjU2NWI4MDYwMDE2MDAxNjBhMDFiMDMxNjYzMDZmZGRlMDM2MDQwNTE4MTYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MDAwNjA0MDUxODA4MzAzODE4NjVhZmExNTgwMTU2MTAyMGI1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA2MDQwNTEzZDYwMDA4MjNlNjAxZjNkOTA4MTAxNjAxZjE5MTY4MjAxNjA0MDUyNjEwMjMzOTE5MDgxMDE5MDYxMDhkMTU2NWI1MDUwNTY1YjYwNDA1MTYzMjNiODcyZGQ2MGUwMWI4MTUyNjAwMTYwMDE2MGEwMWIwMzg0ODExNjYwMDQ4MzAxNTI4MzgxMTY2MDI0ODMwMTUyNjA0NDgyMDE4MzkwNTI4NTE2OTA2MzIzYjg3MmRkOTA2MDY0MDE2MDIwNjA0MDUxODA4MzAzODE2MDAwODc1YWYxMTU4MDE1NjEwMjhlNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTAyYjI5MTkwNjEwOTdlNTY1YjUwNTA1MDUwNTA1NjViNjA0MDUxNjNhOTA1OWNiYjYwZTAxYjgxNTI2MDAxNjAwMTYwYTAxYjAzODM4MTE2NjAwNDgzMDE1MjYwMjQ4MjAxODM5MDUyODQxNjkwNjNhOTA1OWNiYjkwNjA0NDAxNWI2MDIwNjA0MDUxODA4MzAzODE2MDAwODc1YWYxMTU4MDE1NjEwMzA5NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTAzMmQ5MTkwNjEwOTdlNTY1YjUwNjAwMDgwZmQ1YjYwNDA1MTYzNmViMTc2OWY2MGUxMWI4MTUyNjAwMTYwMDE2MGEwMWIwMzgzODExNjYwMDQ4MzAxNTI4MjgxMTY2MDI0ODMwMTUyODQxNjkwNjNkZDYyZWQzZTkwNjA0NDAxNjAyMDYwNDA1MTgwODMwMzgxODY1YWZhMTU4MDE1NjEwMzgxNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTAzYTU5MTkwNjEwOWEwNTY1YjUwNTA1MDUwNTY1YjYwNDA1MTYzMjNiODcyZGQ2MGUwMWI4MTUyNjAwMTYwMDE2MGEwMWIwMzg0ODExNjYwMDQ4MzAxNTI4MzgxMTY2MDI0ODMwMTUyNjA0NDgyMDE4MzkwNTI4NTE2OTA2MzIzYjg3MmRkOTA2MDY0MDE2MTAyZWE1NjViODA2MDAxNjAwMTYwYTAxYjAzMTY2Mzk1ZDg5YjQxNjA0MDUxODE2M2ZmZmZmZmZmMTY2MGUwMWI4MTUyNjAwNDAxNjAwMDYwNDA1MTgwODMwMzgxODY1YWZhMTU4MDE1NjEwMjBiNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjYwNDA1MTYzYTkwNTljYmI2MGUwMWI4MTUyNjAwMTYwMDE2MGEwMWIwMzgzODExNjYwMDQ4MzAxNTI2MDI0ODIwMTgzOTA1Mjg0MTY5MDYzYTkwNTljYmI5MDYwNDQwMTViNjAyMDYwNDA1MTgwODMwMzgxNjAwMDg3NWFmMTE1ODAxNTYxMDQ3NjU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAxZjE5NjAxZjgyMDExNjgyMDE4MDYwNDA1MjUwODEwMTkwNjEwM2E1OTE5MDYxMDk3ZTU2NWI4MDYwMDE2MDAxNjBhMDFiMDMxNjYzMzEzY2U1Njc2MDQwNTE4MTYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MDIwNjA0MDUxODA4MzAzODE4NjVhZmExNTgwMTU2MTA0ZDg1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA2MDQwNTEzZDYwMWYxOTYwMWY4MjAxMTY4MjAxODA2MDQwNTI1MDgxMDE5MDYxMDIzMzkxOTA2MTA5Yjk1NjViNjA0MDUxNjMwOTVlYTdiMzYwZTAxYjgxNTI2MDAxNjAwMTYwYTAxYjAzODM4MTE2NjAwNDgzMDE1MjYwMjQ4MjAxODM5MDUyODQxNjkwNjMwOTVlYTdiMzkwNjA0NDAxNjEwNDU3NTY1YjgwNjAwMTYwMDE2MGEwMWIwMzE2NjMxODE2MGRkZDYwNDA1MTgxNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYwMjA2MDQwNTE4MDgzMDM4MTg2NWFmYTE1ODAxNTYxMDU2ZjU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAxZjE5NjAxZjgyMDExNjgyMDE4MDYwNDA1MjUwODEwMTkwNjEwMjMzOTE5MDYxMDlhMDU2NWI2MDQwNTE2MDAxNjAwMTYwYTAxYjAzODM4MTE2NjAyNDgzMDE1MjYwNDQ4MjAxODM5MDUyNjAwMDkxODI5MTg2MTY5MDYwNjQwMTYwNDA4MDUxNjAxZjE5ODE4NDAzMDE4MTUyOTE4MTUyNjAyMDgyMDE4MDUxNjAwMTYwMDE2MGUwMWIwMzE2NjNhOTA1OWNiYjYwZTAxYjE3OTA1MjUxNjEwNWVkOTE5MDYxMDlkYzU2NWI2MDAwNjA0MDUxODA4MzAzODE4NTVhZjQ5MTUwNTAzZDgwNjAwMDgxMTQ2MTA2Mjg1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTA2MmQ1NjViNjA2MDkxNTA1YjUwNTA1MDUwNTA1MDUwNTA1NjViNjA0MDUxNjM3MGEwODIzMTYwZTAxYjgxNTI2MDAxNjAwMTYwYTAxYjAzODI4MTE2NjAwNDgzMDE1MjgzMTY5MDYzNzBhMDgyMzE5MDYwMjQwMTYwMjA2MDQwNTE4MDgzMDM4MTg2NWFmYTE1ODAxNTYxMDY3ZDU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAxZjE5NjAxZjgyMDExNjgyMDE4MDYwNDA1MjUwODEwMTkwNjEwNmExOTE5MDYxMDlhMDU2NWI1MDUwNTA1NjViNjAwMDViODE4MTEwMTU2MTA2YTE1NzgyNjAwMTYwMDE2MGEwMWIwMzE2NjMwNmZkZGUwMzYwNDA1MTgxNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYwMDA2MDQwNTE4MDgzMDM4MTg2NWFmYTE1ODAxNTYxMDZlZjU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAwMDgyM2U2MDFmM2Q5MDgxMDE2MDFmMTkxNjgyMDE2MDQwNTI2MTA3MTc5MTkwODEwMTkwNjEwOGQxNTY1YjUwODA2MTA3MjI4MTYxMDlmODU2NWI5MTUwNTA2MTA2YTk1NjViODAzNTYwMDE2MDAxNjBhMDFiMDM4MTE2ODExNDYxMDc0MTU3NjAwMDgwZmQ1YjkxOTA1MDU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTA3NTg1NzYwMDA4MGZkNWI2MTA3NjE4MjYxMDcyYTU2NWI5MzkyNTA1MDUwNTY1YjYwMDA4MDYwMDA4MDYwODA4NTg3MDMxMjE1NjEwNzdlNTc2MDAwODBmZDViNjEwNzg3ODU2MTA3MmE1NjViOTM1MDYxMDc5NTYwMjA4NjAxNjEwNzJhNTY1YjkyNTA2MTA3YTM2MDQwODYwMTYxMDcyYTU2NWI5Mzk2OTI5NTUwOTI5MzYwNjAwMTM1OTI1MDUwNTY1YjYwMDA4MDYwMDA2MDYwODQ4NjAzMTIxNTYxMDdjODU3NjAwMDgwZmQ1YjYxMDdkMTg0NjEwNzJhNTY1YjkyNTA2MTA3ZGY2MDIwODUwMTYxMDcyYTU2NWI=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwyV3o81/QUTwTMTR0tySP8e3i40mKcd6TvPlZiKyLdve0kYjj1KoaiGo9/IspsVa4GgwIwZm0rgYQhZOe9wIiDwoJCIWZtK4GEL0JEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQiGmbSuBhDDCRICGAISAhgDGKq4szIiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIB9gkSAxi2CCLuCTkxNTA2MDQwODQwMTM1OTA1MDkyNTA5MjUwOTI1NjViNjAwMDgwNjAwMDYwNjA4NDg2MDMxMjE1NjEwODA0NTc2MDAwODBmZDViNjEwODBkODQ2MTA3MmE1NjViOTI1MDYxMDgxYjYwMjA4NTAxNjEwNzJhNTY1YjkxNTA2MTA4Mjk2MDQwODUwMTYxMDcyYTU2NWI5MDUwOTI1MDkyNTA5MjU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMDg0NTU3NjAwMDgwZmQ1YjYxMDg0ZTgzNjEwNzJhNTY1YjkxNTA2MTA4NWM2MDIwODQwMTYxMDcyYTU2NWI5MDUwOTI1MDkyOTA1MDU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMDg3ODU3NjAwMDgwZmQ1YjYxMDg4MTgzNjEwNzJhNTY1Yjk0NjAyMDkzOTA5MzAxMzU5MzUwNTA1MDU2NWI2MzRlNDg3YjcxNjBlMDFiNjAwMDUyNjA0MTYwMDQ1MjYwMjQ2MDAwZmQ1YjYwMDA1YjgzODExMDE1NjEwOGMwNTc4MTgxMDE1MTgzODIwMTUyNjAyMDAxNjEwOGE4NTY1YjgzODExMTE1NjEwM2E1NTc1MDUwNjAwMDkxMDE1MjU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTA4ZTM1NzYwMDA4MGZkNWI4MTUxNjdmZmZmZmZmZmZmZmZmZmZmODA4MjExMTU2MTA4ZmI1NzYwMDA4MGZkNWI4MTg0MDE5MTUwODQ2MDFmODMwMTEyNjEwOTBmNTc2MDAwODBmZDViODE1MTgxODExMTE1NjEwOTIxNTc2MTA5MjE2MTA4OGY1NjViNjA0MDUxNjAxZjgyMDE2MDFmMTk5MDgxMTY2MDNmMDExNjgxMDE5MDgzODIxMTgxODMxMDE3MTU2MTA5NDk1NzYxMDk0OTYxMDg4ZjU2NWI4MTYwNDA1MjgyODE1Mjg3NjAyMDg0ODcwMTAxMTExNTYxMDk2MjU3NjAwMDgwZmQ1YjYxMDk3MzgzNjAyMDgzMDE2MDIwODgwMTYxMDhhNTU2NWI5Nzk2NTA1MDUwNTA1MDUwNTA1NjViNjAwMDYwMjA4Mjg0MDMxMjE1NjEwOTkwNTc2MDAwODBmZDViODE1MTgwMTUxNTgxMTQ2MTA3NjE1NzYwMDA4MGZkNWI2MDAwNjAyMDgyODQwMzEyMTU2MTA5YjI1NzYwMDA4MGZkNWI1MDUxOTE5MDUwNTY1YjYwMDA2MDIwODI4NDAzMTIxNTYxMDljYjU3NjAwMDgwZmQ1YjgxNTE2MGZmODExNjgxMTQ2MTA3NjE1NzYwMDA4MGZkNWI2MDAwODI1MTYxMDllZTgxODQ2MDIwODcwMTYxMDhhNTU2NWI5MTkwOTEwMTkyOTE1MDUwNTY1YjYwMDA2MDAwMTk4MjE0MTU2MTBhMWE1NzYzNGU0ODdiNzE2MGUwMWI2MDAwNTI2MDExNjAwNDUyNjAyNDYwMDBmZDViNTA2MDAxMDE5MDU2ZmVhMjY0Njk3MDY2NzM1ODIyMTIyMDkzZGI3ZDJiZGQwOTYyNTBhZGQ4ZWZlNmNjOWJhNGExZjdjZjEzOGQ0MTBiNTQ0ODlmNmFlYmY0NDI5NmRmM2Y2NDczNmY2YzYzNDMwMDA4MGIwMDMz","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw6v6+u1nhZfcFgkHgsFFSsxRI5jlC2hJGXtRTYFjB1eIaX/f9XpMzc64ucVF0bzliGgwIwpm0rgYQxefQswEiDwoJCIaZtK4GEMMJEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQiGmbSuBhDFCRICGAISAhgDGK/Dto0EIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5ClgEKAxi2CBpzKnEIAhJtCiISIJzAAZX/o8BKx+eF+TR3/smDG1iWeLmyIdBLLNhdRpCNCiM6IQL99I5c2cglkeO0b8uAu+7clCXvi+J7dULUqwZkP1voUgoiEiCqRJf+AMOODUk5cAHzEAzEYRQGQAJwq1bmQwweJUdmgiCQoQ9CBQiAztoDUgBaAGoLY2VsbGFyIGRvb3I=","b64Record":"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"},{"b64Body":"ChAKCQiHmbSuBhDHCRIDGLIIEgIYAxigl8MVIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA7UBCqwBAvipggEqgKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0alKIAIMPQkCUAAAAAAAAAAAAAAAAAAAAAAAABDWAhBgWDd3AgKAswAmnzS+/xuFMMYz6teI7IHJQq588Gzt8RXFA65vqDqAI0jWLeSs3r3Hu/M4utbQT6NjCUQ6HlIudMAEmuVrDTBiAyrXuAQ==","b64Record":"CiUIFiIDGLUIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAi/TCjDq+8waQXDZhEEs69l4xWJdiRQZUCZAQ0qBcLbetTIHCDYEBQcG3dwU5qlSAaDAjDmbSuBhC/2+GuASIQCgkIh5m0rgYQxwkSAxiyCCogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4woP3NMDrBAgoDGLUIEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMiKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAogOowUMCEPWIEGBYN3WoDGLQIegIIAVJGCgkKAhgDEODVxAEKCQoCGGIQnMawVwoKCgMYoAYQoq+TBAoKCgMYoQYQoq+TBAoKCgMYsggQv7jEMQoKCgMYtAgQ/8HXL4oBILUahwgL3MGLmBPu+R7sPzUF3D9hstB5ZPDdF8btqYaC"},{"b64Body":"ChIKCQiHmbSuBhDHCRIDGLIIIAE6JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAENRgWDd0=","b64Record":"CgIIFhIwao1T3bPAAY6FaYRG7LAijT+QrDVMFC7N64bHv7E6Y6FeTJjHgWnQ4tIwIyOnSu5FGgwIw5m0rgYQwNvhrgEiEgoJCIeZtK4GEMcJEgMYsgggATouCgMY5wISIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyKGRqAxi0CFIAegwIw5m0rgYQv9vhrgE="}]},"etx010TransferToCryptoAccountSucceeds":{"placeholderNum":1080,"encodedItems":[{"b64Body":"Cg8KCQiMmbSuBhDfCRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlorCiISIAcYrgD3rtbwGevUNlXYO35Pd2x2NSnCHFTOUeSyJLA/SgUIgM7aAw==","b64Record":"CiUIFhIDGLkIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAYaSzaQ4bsyI3cjRUa2YHg6JbEb1MW0fNz/pOXn1Ab/+PNelTTKKcpnDIksMktcbwaCwjImbSuBhCpk8EMIg8KCQiMmbSuBhDfCRICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgA="},{"b64Body":"Cg8KCQiMmbSuBhDhCRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIAXN3lq8RK8FZKvz3MffMFk7mY1A8Kg8eVLIRLHoao8+EICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGLoIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAbI3jGGq7sL1SN9Nl+zCd1EYCyHgTABhPAO9F7rz1aMCqUO3x0KA9G8unLS/Ylb+caDAjImbSuBhCVyZn7ASIPCgkIjJm0rgYQ4QkSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIfCg0KAhgCEP//663M7JACCg4KAxi6CBCAgOytzOyQAg=="},{"b64Body":"ChEKCQiNmbSuBhDjCRICGAIgAVpoCiM6IQPvoMqcSWH6ToYhQ632IkwDveT2p91TZWtUWZ1GIuivK0oFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiED76DKnElh+k6GIUOt9iJMA73k9qfdU2VrVFmdRiLorys=","b64Record":"CgcIFhIDGLsIEjAaRvmy7xWgOq5y/OxbqIyU0FFx/40n0ihb3CEYlxClIQc7cjVYe+pomTqf8rU7TZAaCwjJmbSuBhCzk7IkIhEKCQiNmbSuBhDjCRICGAIgASoUYXV0by1jcmVhdGVkIGFjY291bnRSAKoBFB+cozBDIKzCXWfVh/Qlf55V3YBB"},{"b64Body":"Cg8KCQiNmbSuBhDjCRICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohA++gypxJYfpOhiFDrfYiTAO95Pan3VNla1RZnUYi6K8rEICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwPUNLTPRqYz4m2UQod9SG6ZQUm3HvIVXRnvJAkNTMra3GcJh5hgb/AdKXcQejTeRoGgsIyZm0rgYQtJOyJCIPCgkIjZm0rgYQ4wkSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxi7CBCAkN/ASg=="},{"b64Body":"ChAKCQiNmbSuBhDtCRIDGLoIEgIYAxiyg8UVIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA7kBCrABAvitggEqgKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIMehICUAAAAAAAAAAAAAAAAAAAAAAAABDmIRWORgkT0AACAwICgcpYnDqzrTXcJ3CKeYtTJ0M3vOIwvfaVdSlPoKzDCJxSgVkd0tSVX3Emf6Wz8G1A8uYRfvIKFOkjciGHxCYCZNzkYgMq17gE=","b64Record":"CiUIFiIDGLkIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAvAYsxKx9ugR20EDeN7YXx49y7B4Lvj0FX7UWLy0QRJiSZH4OOLsRPtBCHQ4X4uTsaDAjJmbSuBhCr1t6vAiIQCgkIjZm0rgYQ7QkSAxi6CCogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wss/aSzqfAgoDGLkIIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACiA1GFQgIl6WIDKte4BagMYuwh6AggBUlYKCQoCGAMQxPHEAQoKCgIYYhDo9ciNAQoKCgMYoAYQ3NuTBAoKCgMYoQYQ3NuTBAoLCgMYuQgQgJTr3AMKCwoDGLoIEOOetZcBCgsKAxi7CBD/k+vcA4oBIDVqsywViuKLEmMpQPy43kCcJrqf1HApB0QOYLmJYzlY"}]},"etx013PrecompileCallFailsWhenSignatureMissingFromBothEthereumAndHederaTxn":{"placeholderNum":1084,"encodedItems":[{"b64Body":"Cg8KCQiSmbSuBhCFChICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIJly0uuzHJOrNVFnBZ+9QJdj0Z8ElufZUb4OB2x/WGiJEICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGL0IKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCOOGectulTxzgNrwXNrf0C2Za8OIawnMKiSu54e5HvHGBnOwQCN72ZQZa91gzoIKYaDAjOmbSuBhDru/+pASIPCgkIkpm0rgYQhQoSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIfCg0KAhgCEP//663M7JACCg4KAxi9CBCAgOytzOyQAg=="},{"b64Body":"ChEKCQiSmbSuBhCHChICGAIgAVpoCiM6IQLZaOCmtYoXy5bqHZfprKLrmH7o/VGvQvY5WVnhy7LwskoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiEC2WjgprWKF8uW6h2X6ayi65h+6P1Rr0L2OVlZ4cuy8LI=","b64Record":"CgcIFhIDGL4IEjCXx70VptqQ4PcpkiV1p1ncrpQt0qqs8W3XPJz/E0CIWtjajnFKqK4EDGtr2A9Uk0caDAjOmbSuBhDgvrqYAyIRCgkIkpm0rgYQhwoSAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARR2aXcekUa0ieZ5gRZatpcMCCV+jA=="},{"b64Body":"Cg8KCQiSmbSuBhCHChICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohAtlo4Ka1ihfLluodl+msouuYfuj9Ua9C9jlZWeHLsvCyEICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwheHHjQ+2TZBZ4RoiwCBVjebdzI7yth4a+yjlyxlGxEF7Snxu72kymUxaPVv+QGrsGgwIzpm0rgYQ4b66mAMiDwoJCJKZtK4GEIcKEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SGQoKCgIYAhD/j9/ASgoLCgMYvggQgJDfwEo="},{"b64Body":"Cg8KCQiTmbSuBhCRChICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAjP546yBhCUpt+3ARptCiISICEcI8SPKgwlo0cGTIHwB8TsHHIxdC5pIhU3bPx4fkneCiM6IQM9NiZ9b9IHWrqT3GPY0Fd7kcSwKmiFZPbs72mOcKcvfQoiEiD8F9ckrzA4LQD9gQjmz3s+eXK30RbqsP0f2gZq6pEVmSIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGL8IKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBkSd3I1Wkc+HgxXt8HiIBhv9WyI5/h8zkH5SIHIZspX7TU7xLPQrrDtc3chefQL8waDAjPmbSuBhDPoqe9ASIPCgkIk5m0rgYQkQoSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiTmbSuBhCVChICGAISAhgDGIydjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxi/CCKAIDYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYwNDA1MTYxMDk1MTM4MDM4MDYxMDk1MTgzMzk4MTgxMDE2MDQwNTI4MTAxOTA2MTAwMzI5MTkwNjEwMGRiNTY1YjgwNjAwMDgwNjEwMTAwMGE4MTU0ODE3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjE5MTY5MDgzNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTYwMjE3OTA1NTUwNTA2MTAxMDg1NjViNjAwMDgwZmQ1YjYwMDA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MjE2OTA1MDkxOTA1MDU2NWI2MDAwNjEwMGE4ODI2MTAwN2Q1NjViOTA1MDkxOTA1MDU2NWI2MTAwYjg4MTYxMDA5ZDU2NWI4MTE0NjEwMGMzNTc2MDAwODBmZDViNTA1NjViNjAwMDgxNTE5MDUwNjEwMGQ1ODE2MTAwYWY1NjViOTI5MTUwNTA1NjViNjAwMDYwMjA4Mjg0MDMxMjE1NjEwMGYxNTc2MTAwZjA2MTAwNzg1NjViNWI2MDAwNjEwMGZmODQ4Mjg1MDE2MTAwYzY1NjViOTE1MDUwOTI5MTUwNTA1NjViNjEwODNhODA2MTAxMTc2MDAwMzk2MDAwZjNmZTYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYwMDQzNjEwNjEwMDM2NTc2MDAwMzU2MGUwMWM4MDYzMTI0OWM1OGIxNDYxMDAzYjU3ODA2M2E5MzQ2MDYwMTQ2MTAwNDU1NzViNjAwMDgwZmQ1YjYxMDA0MzYxMDA2MTU2NWIwMDViNjEwMDVmNjAwNDgwMzYwMzgxMDE5MDYxMDA1YTkxOTA2MTAzNjk1NjViNjEwMGY4NTY1YjAwNWI2MDAwODA2MDAwNjEwMGUwNjAwMDgwNTQ5MDYxMDEwMDBhOTAwNDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjAwMDYwMDE2N2ZmZmZmZmZmZmZmZmZmZmY4MTExMTU2MTAwYTc1NzYxMDBhNjYxMDM5NjU2NWI1YjYwNDA1MTkwODA4MjUyODA2MDIwMDI2MDIwMDE4MjAxNjA0MDUyODAxNTYxMDBkYTU3ODE2MDIwMDE1YjYwNjA4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTAwYzU1NzkwNTA1YjUwNjEwMTlkNTY1YjkyNTA5MjUwOTI1MDYwMTY4MzE0NjEwMGYzNTc2MDAwODBmZDViNTA1MDUwNTY1YjYwMDA4MDYwMDA2MTAxNzY2MDAwODA1NDkwNjEwMTAwMGE5MDA0NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4NTYwMDA2N2ZmZmZmZmZmZmZmZmZmZmY4MTExMTU2MTAxM2Q1NzYxMDEzYzYxMDM5NjU2NWI1YjYwNDA1MTkwODA4MjUyODA2MDIwMDI2MDIwMDE4MjAxNjA0MDUyODAxNTYxMDE3MDU3ODE2MDIwMDE1YjYwNjA4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTAxNWI1NzkwNTA1YjUwNjEwMTlkNTY1YjkyNTA5MjUwOTI1MDYwMTY4MzE0MTU4MDYxMDE4ZDU3NTA2MDAwODE1MTExNWIxNTYxMDE5NzU3NjAwMDgwZmQ1YjUwNTA1MDUwNTY1YjYwMDA4MDYwNjA2MDAwODA2MTAxNjc3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzMjc4ZTBiODg2MGUwMWI4OTg5ODk2MDQwNTE2MDI0MDE2MTAxZGI5MzkyOTE5MDYxMDU2NzU2NWI2MDQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI5MDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTAyNDU5MTkwNjEwNWUxNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NjVhZjE5MTUwNTAzZDgwNjAwMDgxMTQ2MTAyODI1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTAyODc1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA4MTYxMDJlMzU3NjAxNTYwMDA4MDY3ZmZmZmZmZmZmZmZmZmZmZjgxMTExNTYxMDJhZjU3NjEwMmFlNjEwMzk2NTY1YjViNjA0MDUxOTA4MDgyNTI4MDYwMjAwMjYwMjAwMTgyMDE2MDQwNTI4MDE1NjEwMmRkNTc4MTYwMjAwMTYwMjA4MjAyODAzNjgzMzc4MDgyMDE5MTUwNTA5MDUwNWI1MDYxMDJmODU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMDJmNzkxOTA2MTA3OTU1NjViNWI4MjYwMDMwYjkyNTA4MDk1NTA4MTk2NTA4Mjk3NTA1MDUwNTA1MDUwOTM1MDkzNTA5MzkwNTA1NjViNjAwMDYwNDA1MTkwNTA5MDU2NWI2MDAwODBmZDViNjAwMDgwZmQ1YjYwMDA2N2ZmZmZmZmZmZmZmZmZmZmY4MjE2OTA1MDkxOTA1MDU2NWI2MTAzNDY4MTYxMDMyOTU2NWI4MTE0NjEwMzUxNTc2MDAwODBmZDViNTA1NjViNjAwMDgxMzU5MDUwNjEwMzYzODE2MTAzM2Q1NjViOTI5MTUwNTA1NjViNjAwMDYwMjA4Mjg0MDMxMjE1NjEwMzdmNTc2MTAzN2U2MTAzMWY1NjViNWI2MDAwNjEwMzhkODQ4Mjg1MDE2MTAzNTQ1NjViOTE1MDUwOTI5MTUwNTA1NjViN2Y0ZTQ4N2I3MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjAwMDUyNjA0MTYwMDQ1MjYwMjQ2MDAwZmQ1YjYwMDA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MjE2OTA1MDkxOTA1MDU2NWI2MDAwNjEwM2YwODI2MTAzYzU1NjViOTA1MDkxOTA1MDU2NWI2MTA0MDA4MTYxMDNlNTU2NWI4MjUyNTA1MDU2NWI2MTA0MGY4MTYxMDMyOTU2NWI4MjUyNTA1MDU2NWI2MDAwODE1MTkwNTA5MTkwNTA1NjViNjAwMDgyODI1MjYwMjA4MjAxOTA1MDkyOTE1MDUwNTY1YjYwMDA4MTkwNTA2MDIwODIwMTkwNTA5MTkwNTA1NjViNjAwMDgxNTE5MDUwOTE5MDUwNTY1YjYwMDA4MjgyNTI2MDIwODIwMTkwNTA5MjkxNTA1MDU2NWI2MDAwNWI4MzgxMTAxNTYxMDQ3YjU3ODA4MjAxNTE4MTg0MDE1MjYwMjA4MTAxOTA1MDYxMDQ2MDU2NWI2MDAwODQ4NDAxNTI1MDUwNTA1MDU2NWI2MDAwNjAxZjE5NjAxZjgzMDExNjkwNTA5MTkwNTA1NjViNjAwMDYxMDRhMzgyNjEwNDQxNTY1YjYxMDRhZDgxODU2MTA0NGM1NjViOTM1MDYxMDRiZDgxODU2MDIwODYwMTYxMDQ1ZDU2NWI2MTA0YzY4MTYxMDQ4NzU2NWI4NDAxOTE1MDUwOTI5MTUwNTA1NjViNjAwMDYxMDRkZDgzODM2MTA0OTg1NjViOTA1MDkyOTE1MDUwNTY1YjYwMDA2MDIwODIwMTkwNTA5MTkwNTA1NjViNjAwMDYxMDRmZDgyNjEwNDE1NTY1YjYxMDUwNzgxODU2MTA0MjA1NjViOTM1MDgzNjAyMDgyMDI4NTAxNjEwNTE5ODU2MTA0MzE1NjViODA2MDAwNWI4NTgxMTAxNTYxMDU1NTU3ODQ4NDAzODk1MjgxNTE2MTA1MzY4NTgyNjEwNGQxNTY1Yjk0NTA2MTA1NDE4MzYxMDRlNTU2NWI5MjUwNjAyMDhhMDE5OTUwNTA2MDAxODEwMTkwNTA2MTA1MWQ1NjViNTA4Mjk3NTA4Nzk1NTA1MDUwNTA1MDUwOTI5MTUwNTA1NjViNjAwMDYwNjA4MjAxOTA1MDYxMDU3YzYwMDA4MzAxODY2MTAzZjc1NjViNjEwNTg5NjAyMDgzMDE4NTYxMDQwNjU2NWI4MTgxMDM2MDQwODMwMTUyNjEwNTliODE4NDYxMDRmMjU2NWI5MDUwOTQ5MzUwNTA1MDUwNTY1YjYwMDA4MTkwNTA5MjkxNTA1MDU2NWI2MDAwNjEwNWJiODI2MTA0NDE1NjViNjEwNWM1ODE4NTYxMDVhNTU2NWI5MzUwNjEwNWQ1ODE4NTYwMjA4NjAxNjEwNDVkNTY1YjgwODQwMTkxNTA1MDkyOTE1MDUwNTY1YjYwMDA2MTA1ZWQ4Mjg0NjEwNWIwNTY1YjkxNTA4MTkwNTA5MjkxNTA1MDU2NWI2MDAwODE2MDAzMGI5MDUwOTE5MDUwNTY1YjYxMDYwZTgxNjEwNWY4NTY1YjgxMTQ2MTA2MTk1NzYwMDA4MGZkNWI1MDU2NWI2MDAwODE1MTkwNTA2MTA2MmI4MTYxMDYwNTU2NWI5MjkxNTA1MDU2NWI2MDAwODE1MTkwNTA2MTA2NDA4MTYxMDMzZDU2NWI5MjkxNTA1MDU2NWI2MDAwODBmZDViNjEwNjU0ODI2MTA0ODc1NjViODEwMTgxODExMDY3ZmZmZmZmZmZmZmZmZmZmZjgyMTExNzE1NjEwNjczNTc2MTA2NzI2MTAzOTY1NjViNWI4MDYwNDA1MjUwNTA1MDU2NWI2MDAwNjEwNjg2NjEwMzE1NTY1YjkwNTA2MTA2OTI4MjgyNjEwNjRiNTY1YjkxOTA1MDU2NWI2MDAwNjdmZmZmZmZmZmZmZmZmZmZmODIxMTE1NjEwNmIyNTc2MTA2YjE2MTAzOTY1NjViNWI2MDIwODIwMjkwNTA2MDIwODEwMTkwNTA5MTkwNTA1NjViNjAwMDgwZmQ1YjYwMDA4MTkwNTA5MTkwNTA1NjViNjEwNmRiODE2MTA2Yzg1NjViODExNDYxMDZlNjU3NjAwMDgwZmQ1YjUwNTY=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw8GFebAi5Q6klqXPzIH75R8KPsb/a/354GMGva2Opls/m8KyehFMOJSRAMN4gDBMcGgwIz5m0rgYQnfmBtQMiDwoJCJOZtK4GEJUKEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQiUmbSuBhCbChICGAISAhgDGIGm6S8iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBqgUSAxi/CCKiBTViNjAwMDgxNTE5MDUwNjEwNmY4ODE2MTA2ZDI1NjViOTI5MTUwNTA1NjViNjAwMDYxMDcxMTYxMDcwYzg0NjEwNjk3NTY1YjYxMDY3YzU2NWI5MDUwODA4MzgyNTI2MDIwODIwMTkwNTA2MDIwODQwMjgzMDE4NTgxMTExNTYxMDczNDU3NjEwNzMzNjEwNmMzNTY1YjViODM1YjgxODExMDE1NjEwNzVkNTc4MDYxMDc0OTg4ODI2MTA2ZTk1NjViODQ1MjYwMjA4NDAxOTM1MDUwNjAyMDgxMDE5MDUwNjEwNzM2NTY1YjUwNTA1MDkzOTI1MDUwNTA1NjViNjAwMDgyNjAxZjgzMDExMjYxMDc3YzU3NjEwNzdiNjEwNjQ2NTY1YjViODE1MTYxMDc4Yzg0ODI2MDIwODYwMTYxMDZmZTU2NWI5MTUwNTA5MjkxNTA1MDU2NWI2MDAwODA2MDAwNjA2MDg0ODYwMzEyMTU2MTA3YWU1NzYxMDdhZDYxMDMxZjU2NWI1YjYwMDA2MTA3YmM4NjgyODcwMTYxMDYxYzU2NWI5MzUwNTA2MDIwNjEwN2NkODY4Mjg3MDE2MTA2MzE1NjViOTI1MDUwNjA0MDg0MDE1MTY3ZmZmZmZmZmZmZmZmZmZmZjgxMTExNTYxMDdlZTU3NjEwN2VkNjEwMzI0NTY1YjViNjEwN2ZhODY4Mjg3MDE2MTA3Njc1NjViOTE1MDUwOTI1MDkyNTA5MjU2ZmVhMjY0Njk3MDY2NzM1ODIyMTIyMDcyNDAzNDcxMTJiZTQxZTljMmJhZDFlYmFhODhjOTZkOGE1NDAyYmQ4NGI3MWM4ZWEzODUxNmVkYTM3YTk3NzQ2NDczNmY2YzYzNDMwMDA4MTIwMDMz","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw47/T/jyLZpa2hcrTWqBGq5y0y+x01tOTRnj4A1mHaKDoOwvCrSos+2KQezz62UKQGgwI0Jm0rgYQmImZ0AEiDwoJCJSZtK4GEJsKEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQiUmbSuBhCdChICGAISAhgDGMaU6ukCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAWsKBXRva2VuEghYQlZRR0tTSSoCGAIyIhIgHJMPh5ZKos7oUFy239ODExV9l5ctpjULy1zIUxgBpXhSIhIgHJMPh5ZKos7oUFy239ODExV9l5ctpjULy1zIUxgBpXhqDAjQ546yBhCFoba/Aw==","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGMAIEjCByDhsqJ1amCMLIBzqIyZMHiOYTPGj1Egiu7e6Tm9zJgwmqtbht7Bz7stHPEZgA2YaCwjRmbSuBhDWna0DIg8KCQiUmbSuBhCdChICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgByCQoDGMAIEgIYAg=="},{"b64Body":"Cg8KCQiVmbSuBhCfChICGAISAhgDGPb99p4CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CZwoDGL8IGiISIBzLUOqUHJvnhjm0gv3phf62XR+Wqadl8jXrFiFWK2uDIJChD0IFCIDO2gNKIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAUgBaAGoLY2VsbGFyIGRvb3I=","b64Record":"CiUIFiIDGMEIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDQKf0Y5wi2ExYZyyBMwBtXYVaX9Lz3sRxgjsKYzPvTlJmlkZagvfiBUIrgK5QuqugaDAjRmbSuBhDHvafxASIPCgkIlZm0rgYQnwoSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQu8SCgMYwQgSuhBggGBAUjSAFWEAEFdgAID9W1BgBDYQYQA2V2AANWDgHIBjEknFixRhADtXgGOpNGBgFGEARVdbYACA/VthAENhAGFWWwBbYQBfYASANgOBAZBhAFqRkGEDaVZbYQD4VlsAW2AAgGAAYQDgYACAVJBhAQAKkARz//////////////////////////8WYABgAWf//////////4ERFWEAp1dhAKZhA5ZWW1tgQFGQgIJSgGAgAmAgAYIBYEBSgBVhANpXgWAgAVtgYIFSYCABkGABkAOQgWEAxVeQUFtQYQGdVluSUJJQklBgFoMUYQDzV2AAgP1bUFBQVltgAIBgAGEBdmAAgFSQYQEACpAEc///////////////////////////FoVgAGf//////////4ERFWEBPVdhATxhA5ZWW1tgQFGQgIJSgGAgAmAgAYIBYEBSgBVhAXBXgWAgAVtgYIFSYCABkGABkAOQgWEBW1eQUFtQYQGdVluSUJJQklBgFoMUFYBhAY1XUGAAgVERWxVhAZdXYACA/VtQUFBQVltgAIBgYGAAgGEBZ3P//////////////////////////xZjJ44LiGDgG4mJiWBAUWAkAWEB25OSkZBhBWdWW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWECRZGQYQXhVltgAGBAUYCDA4FgAIZa8ZFQUD2AYACBFGECgldgQFGRUGAfGWA/PQEWggFgQFI9glI9YABgIIQBPmECh1ZbYGCRUFtQkVCRUIFhAuNXYBVgAIBn//////////+BERVhAq9XYQKuYQOWVltbYEBRkICCUoBgIAJgIAGCAWBAUoAVYQLdV4FgIAFgIIICgDaDN4CCAZFQ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"},{"b64Body":"Cg8KCQiVmbSuBhChChICGAISAhgDGLP40RUiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpID1QEKzAEC+MmCASqAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPooAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRqUogAgwGGoJQAAAAAAAAAAAAAAAAAAAAAAAAEQYCkqTRgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwICgQwreMHouRbdCmISnjknQOS70bdijQjUJx6HDazoaXgigXRaN8OEoP8RYXNW6d3mfPQY1/qVj5vkU3TShj/ijSRYYgMq17gE=","b64Record":"CiUIISIDGMEIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBcgRJgmtIpQsS9IadDUQyWjYIIw+qK8ul0ny/cbnrdBB1l8ku+F7QWZkk789OCGZsaCwjSmbSuBhDSlOoHIg8KCQiVmbSuBhChChICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMIDX2gI6OxoCMHgogPEEUKCNBmIkqTRgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFagMYvgh6AggBUiEKCAoCGAIQ/4BTCgkKAhhiEICutQUKCgoDGL4IEP+s4gSKASCD0AawBGBfGmYfNnjlXM4l0VEIP1c/0i15IYb/XccWCQ=="},{"b64Body":"ChEKCQiVmbSuBhChChICGAIgAaoCBwoDGMAIEAU=","b64Record":"CgMIxgISMEI59dsbBH7W39rFk0xM2A4JL21/DDl37poLiZ1G+4Z/RFwoZqcmiyf2vUSb7b5MbRoLCNKZtK4GENOU6gciEQoJCJWZtK4GEKEKEgIYAiABOskCCgMY5wISgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABosSU5WQUxJRF9GVUxMX1BSRUZJWF9TSUdOQVRVUkVfRk9SX1BSRUNPTVBJTEUohW5Q0KkEYoQBJ44LiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAagMYwQhSAHoLCNKZtK4GENKU6gc="}]},"etx014ContractCreateInheritsSignerProperties":{"placeholderNum":1090,"encodedItems":[{"b64Body":"Cg8KCQiambSuBhC9ChICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIEAIXY3mMx8c9Zo89Kujj47XRoP9/3jr5SW/TLyf0lw6EICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGMMIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBYbjdciDG+zPmGMObapDuvAP/LpvzXWI6Q5/TLKwWG9s0F6iPRGVVO4ehz1EtxSVIaDAjWmbSuBhDr663MAiIPCgkImpm0rgYQvQoSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIfCg0KAhgCEP//663M7JACCg4KAxjDCBCAgOytzOyQAg=="},{"b64Body":"ChEKCQibmbSuBhC/ChICGAIgAVpoCiM6IQI/Mp8Qcdim5d6ISbhwv6XWyexSSY4QnQYDPDcxoIjtzEoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiECPzKfEHHYpuXeiEm4cL+l1snsUkmOEJ0GAzw3MaCI7cw=","b64Record":"CgcIFhIDGMQIEjCO0seX+pgb2EzLeD4df7LGhCIpEJVc1GqlddOVl/VYvwv3Je3KDrNdcjdti+RKesEaCwjXmbSuBhCjxsddIhEKCQibmbSuBhC/ChICGAIgASoUYXV0by1jcmVhdGVkIGFjY291bnRSAKoBFGbbwXKORZ+ViIKIv89WXA90oAEE"},{"b64Body":"Cg8KCQibmbSuBhC/ChICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohAj8ynxBx2Kbl3ohJuHC/pdbJ7FJJjhCdBgM8NzGgiO3MEICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw1GoFBo4e6/D6MzT5ozQpXdwWqAR8Pdh4ZdyFJpwD9STPRFb7xVNH5lTX9UdIAYkKGgsI15m0rgYQpMbHXSIPCgkIm5m0rgYQvwoSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxjECBCAkN/ASg=="},{"b64Body":"Cg8KCQibmbSuBhDJChICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIM72CoRzfC/z0LJ+gIjlXhZaIgiK1TttOnHhZswKbm1jEICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGMUIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBD5wOQuHfPNScdsVrStue9xzjg4aboe3+406t1JCfV84I5x0tXRLd5InK+pZVpa/QaDAjXmbSuBhCk/oXkAiIPCgkIm5m0rgYQyQoSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxjFCBCAqNa5Bw=="},{"b64Body":"Cg8KCQicmbSuBhDPChICGAISAhgDGKrkESICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOehQSAxjECEIFCLzO2gNyBgoEbWVtbw==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwK83tRq8cN2YTtCBhah7rkpRVouEUhlqmrG7FrIUvAYAVI3lfZmwGcMiMIeUaA1cmGgwI2Jm0rgYQrfXegwEiDwoJCJyZtK4GEM8KEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"ChAKCQicmbSuBhDRChIDGMMIEgIYAxj6ussXIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA/IFCukFAvkC5YIBKoCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATiCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdGpSiACDD0JAgIXo1KUQALkCTWCAYEBSYQI6gGEAE2AAOWAA8/5ggGBAUmAENhBhAD9XYAA1YOAcgGMSBl/gFGEAj1eAYzzP1gsUYQC6V4Bjb2QjThRhANFXgGO2tV8lFGEBLFdbM3P//////////////////////////xZ/8bA/cIucOfRT/j8M74QWTH1vffg23weW4enCvObuOX40YEBRgIKBUmAgAZFQUGBAUYCRA5CiAFs0gBVhAJtXYACA/VtQYQCkYQFaVltgQFGAgoFSYCABkVBQYEBRgJEDkPNbNIAVYQDGV2AAgP1bUGEAz2EBYlZbAFs0gBVhAN1XYACA/VtQYQEqYASANgNgQIEQFWEA9FdgAID9W4EBkICANXP//////////////////////////xaQYCABkJKRkIA1kGAgAZCSkZBQUFBhAatWWwBbYQFYYASANgNgIIEQFWEBQldgAID9W4EBkICANZBgIAGQkpGQUFBQYQH2VlsAW2AAR5BQkFZbM3P//////////////////////////xZhCPxHkIEVApBgQFFgAGBAUYCDA4GFiIjxk1BQUFAVgBVhAahXPWAAgD49YAD9W1BWW4Fz//////////////////////////8WYQj8gpCBFQKQYEBRYABgQFGAgwOBhYiI8ZNQUFBQFYAVYQHxVz1gAIA+PWAA/VtQUFBWW4A0FGECAldgAID9W1BW/qJlYnp6cjFYIPj4T8MahFBktXgekIMW88WRFXli3quw/UJO1U8lZAD5ZHNvbGNDAAURADLAAaCimGT0fqt+H2Ypo3IXcjMbNd5TQ5kMeurP+vUI92oJ6KAM0eBGMtToOMUhey2y6Vmn+gce2VQqK0YFJfimiy9hxRiAyK+gJQ==","b64Record":"CiUIFiIDGMYIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDuo3AN7smRBmoEC5wryk2JEFmmJfUAMgmlxdE2u4aZFYOGONUQuKN4h3do1R8KoGAaDAjYmbSuBhD9v9eAAyIQCgkInJm0rgYQ0QoSAxjDCCogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4w+qDWMkLOCwoDGMYIEroEYIBgQFJgBDYQYQA/V2AANWDgHIBjEgZf4BRhAI9XgGM8z9YLFGEAuleAY29kI04UYQDRV4BjtrVfJRRhASxXWzNz//////////////////////////8Wf/GwP3CLnDn0U/4/DO+EFkx9b334Nt8HluHpwrzm7jl+NGBAUYCCgVJgIAGRUFBgQFGAkQOQogBbNIAVYQCbV2AAgP1bUGEApGEBWlZbYEBRgIKBUmAgAZFQUGBAUYCRA5DzWzSAFWEAxldgAID9W1BhAM9hAWJWWwBbNIAVYQDdV2AAgP1bUGEBKmAEgDYDYECBEBVhAPRXYACA/VuBAZCAgDVz//////////////////////////8WkGAgAZCSkZCANZBgIAGQkpGQUFBQYQGrVlsAW2EBWGAEgDYDYCCBEBVhAUJXYACA/VuBAZCAgDWQYCABkJKRkFBQUGEB9lZbAFtgAEeQUJBWWzNz//////////////////////////8WYQj8R5CBFQKQYEBRYABgQFGAgwOBhYiI8ZNQUFBQFYAVYQGoVz1gAIA+PWAA/VtQVluBc///////////////////////////FmEI/IKQgRUCkGBAUWAAYEBRgIMDgYWIiPGTUFBQUBWAFWEB8Vc9YACAPj1gAP1bUFBQVluANBRhAgJXYACA/VtQVv6iZWJ6enIxWCD4+E/DGoRQZLV4HpCDFvPFkRV5Yt6rsP1CTtVPJWQA+WRzb2xjQwAFEQAyIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACiA6jA6AxjGCEoWChTzpS7J5oC2eZElyav5QkK18PY/WlDAhD1YZGLNBGCAYEBSYQI6gGEAE2AAOWAA8/5ggGBAUmAENhBhAD9XYAA1YOAcgGMSBl/gFGEAj1eAYzzP1gsUYQC6V4Bjb2QjThRhANFXgGO2tV8lFGEBLFdbM3P//////////////////////////xZ/8bA/cIucOfRT/j8M74QWTH1vffg23weW4enCvObuOX40YEBRgIKBUmAgAZFQUGBAUYCRA5CiAFs0gBVhAJtXYACA/VtQYQCkYQFaVltgQFGAgoFSYCABkVBQYEBRgJEDkPNbNIAVYQDGV2AAgP1bUGEAz2EBYlZbAFs0gBVhAN1XYACA/VtQYQEqYASANgNgQIEQFWEA9FdgAID9W4EBkICANXP//////////////////////////xaQYCABkJKRkIA1kGAgAZCSkZBQUFBhAatWWwBbYQFYYASANgNgIIEQFWEBQldgAID9W4EBkICANZBgIAGQkpGQUFBQYQH2VlsAW2AAR5BQkFZbM3P//////////////////////////xZhCPxHkIEVApBgQFFgAGBAUYCDA4GFiIjxk1BQUFAVgBVhAahXPWAAgD49YAD9W1BWW4Fz//////////////////////////8WYQj8gpCBFQKQYEBRYABgQFGAgwOBhYiI8ZNQUFBQFYAVYQHxVz1gAIA+PWAA/VtQUFBWW4A0FGECAldgAID9W1BW/qJlYnp6cjFYIPj4T8MahFBktXgekIMW88WRFXli3quw/UJO1U8lZAD5ZHNvbGNDAAURADJqAxjECHIHCgMYxggQAXoCCAFSUAoJCgIYAxC+4eMBCgkKAhhiEOLCvloKCgoDGKAGEOqOxQQKCgoDGKEGEOqOxQQKCgoDGMMIEPP/1DUKCgoDGMQIEMfD1y8KCAoDGMYIEMgBigEg4xvmaBSN6agJtxCHFtCHa0AnRZpUAA5w99AMvDLViUQ="},{"b64Body":"ChIKCQicmbSuBhDRChIDGMMIIAFCDUIFCLzO2gNqBG1lbW8=","b64Record":"CgcIFiIDGMYIEjAVADmN90SYpK6mi+TRCO+R98CGDK3EVzdxPyKCexIFU1Q2Ql9Fm048WsqH4mnKhAYaDAjYmbSuBhD+v9eAAyISCgkInJm0rgYQ0QoSAxjDCCABQh0KAxjGCEoWChTzpS7J5oC2eZElyav5QkK18PY/WlIAegwI2Jm0rgYQ/b/XgAM="},{"b64Body":"ChAKCQidmbSuBhDTChIDGMMIEgIYAxigl8MVIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA7UBCqwBAvipggEqAaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0alKIAIMPQkCUAAAAAAAAAAAAAAAAAAAAAAAABEaAhBIGX+DAgKDTjtj8kT0YkZEIxpj56RHzNlHIOQZDZOIyIC+OnvQpdKBFWmrHn3w2oNlYvvM04vo/zT9SW2A73vatUSgFaLGEJRiAyrXuAQ==","b64Record":"CiUIFiIDGMYIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBPE59mwHRmF5LjTSFxCg+auh3jGM/Ud2kGa9rFXAXGAoRmIBoCuj3Xp6EijUjWkN0aDAjZmbSuBhDO/IWlASIQCgkInZm0rgYQ0woSAxjDCCogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4woP3NMDrBAgoDGMYIEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZCKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAogOowUMCEPWIEEgZf4GoDGMQIegIIAlJGCgkKAhgDEODVxAEKCQoCGGIQnMawVwoKCgMYoAYQoq+TBAoKCgMYoQYQoq+TBAoKCgMYwwgQv7jEMQoKCgMYxAgQ/8HXL4oBIDnRiY/fwtypcCKTf/FvgHfjVBa8YlSgSzlBkjFU3gEx"}]},"originAndSenderAreEthereumSigner":{"placeholderNum":1102,"encodedItems":[{"b64Body":"Cg8KCQiqmbSuBhCbCxICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIPshygoi2A+sZ/obKhpjq+3jK6O+wXUyxwHzuRMlY1m0EICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGM8IKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjA9Rb1NIt5vN03a82QUnrYXQJR1Qh9QP9y6B4/OkacRvIZYnX/8mq5NhFFxdXtEdsUaDAjmmbSuBhDa8/G5AyIPCgkIqpm0rgYQmwsSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIfCg0KAhgCEP//663M7JACCg4KAxjPCBCAgOytzOyQAg=="},{"b64Body":"ChEKCQirmbSuBhCdCxICGAIgAVpoCiM6IQJn3A15Z+QqKYzzJKk7S/aZOnkm/p7ggVqenfy4nPnU7UoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiECZ9wNeWfkKimM8ySpO0v2mTp5Jv6e4IFanp38uJz51O0=","b64Record":"CgcIFhIDGNAIEjBqqcWClH8CE1wG3lAJ2TNt5nfo/Vso7vRBYi9zoIP/18zfLxVsh1z7mt9BPhIl3ocaDAjnmbSuBhDLo67QASIRCgkIq5m0rgYQnQsSAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARQ3898LwdnDRciITd1Z3SBkzCP9Ww=="},{"b64Body":"Cg8KCQirmbSuBhCdCxICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohAmfcDXln5CopjPMkqTtL9pk6eSb+nuCBWp6d/Lic+dTtEICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwobBjs5UQVvdjN2ozlmyVh4yxtB006Qf7+OzEbn/dKNHpxzXUltMzwe/j8ZW/dJJOGgwI55m0rgYQzKOu0AEiDwoJCKuZtK4GEJ0LEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SGQoKCgIYAhD/j9/ASgoLCgMY0AgQgJDfwEo="},{"b64Body":"Cg8KCQirmbSuBhCnCxICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAjn546yBhCPmPfAAxptCiISIHjwXCPW8XHA68ov5Ucy/4wh80Rbq4Tl4rA5GNyZwwlDCiM6IQNyMxQQDDWTOGQImKjI8lGM+w41Brn0f3g5csCBCRg+WgoiEiAt/+DKuHbDk+L8JDDfJFhKTkUMjTcJAYcLnGH7BEfNQyIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGNEIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBwxt7DM57tqRlzqnNEl8WxwDZ35yzzF1U7mJ5HmFwQApcFBe+79Q+PjhkwMnEjcncaCwjombSuBhCuvYoIIg8KCQirmbSuBhCnCxICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgA="},{"b64Body":"Cg8KCQismbSuBhCrCxICGAISAhgDGOHu+i0iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBjgMKAxjRCCKGAzYwODA2MDQwNTIzNDgwMTU2MDBmNTc2MDAwODBmZDViNTA2MGE1ODA2MTAwMWU2MDAwMzk2MDAwZjNmZTYwODA2MDQwNTIzNDgwMTU2MDBmNTc2MDAwODBmZDViNTA2MDA0MzYxMDYwMjg1NzYwMDAzNTYwZTAxYzgwNjMyZTRjMWQwMjE0NjAyZDU3NWI2MDAwODBmZDViNjAzMzYwMzU1NjViMDA1YjYwNDA4MDUxMzI4MTUyMzM2MDIwODIwMTUyN2ZkMWE2YjU0MjI5YmNlOTRhZDUwZWFiMGY5ZGVmNzgyM2VjMmRhNDI4N2Y3OTFhZGMzYWM2OGNjY2ZmYmRhNjVhOTEwMTYwNDA1MTgwOTEwMzkwYTE1NmZlYTI2NDY5NzA2NjczNTgyMjEyMjBiMWViOGE5NjQyNGU5MzZlZTFmMjAxN2MzYmMxZjkyZmE0ZTc4MjMwZGIwYWMwYWU2YmRkNTlmYTU3YjQzZjgyNjQ3MzZmNmM2MzQzMDAwODBkMDAzMw==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwsacTEKQOOf6tBay/ENU8JaGbkB1GCIhr1naY96LozXpdkwPm9NY6eJquM2XOzkuvGgwI6Jm0rgYQsYHr5wEiDwoJCKyZtK4GEKsLEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQismbSuBhCtCxICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGNEIGiISILWqirnLDF5Iq6UZFVSl73O2MCZSgGG9K9aNivuwwK2VIJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGNIIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCo2YoNT6ZgMziNyfVb5QvFlBERSL/Y75luwHcqeKWOnXH/edHzhsE/KJn9M+Sz9eEaDAjombSuBhD2taLbAyIPCgkIrJm0rgYQrQsSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQtoDCgMY0ggSpQFggGBAUjSAFWAPV2AAgP1bUGAENhBgKFdgADVg4ByAYy5MHQIUYC1XW2AAgP1bYDNgNVZbAFtgQIBRMoFSM2AgggFSf9GmtUIpvOlK1Q6rD53veCPsLaQof3ka3DrGjMz/vaZakQFgQFGAkQOQoVb+omRpcGZzWCISILHripZCTpNu4fIBfDvB+S+k54Iw2wrArmvdWfpXtD+CZHNvbGNDAAgNADMigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMCaDDoDGNIIShYKFAAAAAAAAAAAAAAAAAAAAAAAAARScgcKAxjSCBABUhYKCQoCGAIQ/7LFDQoJCgIYYhCAs8UN"},{"b64Body":"ChAKCQitmbSuBhCvCxIDGM8IEgIYAxigl8MVIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA7UBCqwBAvipggEqgKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0alKIAIMPQkCUAAAAAAAAAAAAAAAAAAAAAAAABFKAhC5MHQLAAaCzPIyiRPUseziUI24IaYRIUfRkzQ/etDvLfOwB9wTW7aA7Ps8E4r816Ch7cfTpBEdfuorarHEXqAdPIeVyYqIXVhiAyrXuAQ==","b64Record":"CiUIFiIDGNIIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAgZXswLByypL8SEZ2dRoNoUT2jQBbySqQ/lql+hFBq4eUcFYXygXOYqVeNMWsT34waDAjpmbSuBhDGmr/2ASIQCgkIrZm0rgYQrwsSAxjPCCogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4woP3NMDqOBQoDGNIIIoACAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAIAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACiA6jAy7AIKAxjSCBKAAgAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAACAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaINGmtUIpvOlK1Q6rD53veCPsLaQof3ka3DrGjMz/vaZaIkAAAAAAAAAAAAAAAAA3898LwdnDRciITd1Z3SBkzCP9WwAAAAAAAAAAAAAAADfz3wvB2cNFyIhN3VndIGTMI/1bUMCEPWIELkwdAmoDGNAIegIIAVJGCgkKAhgDEODVxAEKCQoCGGIQnMawVwoKCgMYoAYQoq+TBAoKCgMYoQYQoq+TBAoKCgMYzwgQv7jEMQoKCgMY0AgQ/8HXL4oBIM8spBxPHbhVVwfC0UrziZ7QMpI48FzcIsxP+cEQcoxR"}]},"etx031InvalidNonceEthereumTxFailsAndChargesRelayer":{"placeholderNum":1107,"encodedItems":[{"b64Body":"Cg8KCQiymbSuBhDHCxICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIIvOypDyLuHvAbc6Kuwd6feg2hH1fToP0U0hEXs8hGRPEICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGNQIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjD1QrTw9315MjiBKUpmDHq5Z1DFSvu2SkmAaUNLyaN1CQ1msRPOHmvU1MKqsHYL5j8aCwjumbSuBhDLu8h6Ig8KCQiymbSuBhDHCxICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUh8KDQoCGAIQ///rrczskAIKDgoDGNQIEICA7K3M7JAC"},{"b64Body":"ChEKCQiymbSuBhDJCxICGAIgAVpoCiM6IQMvcKEhRAJt8igSvXYuGowgHZBnIGIoaiQEuylIz8HYRUoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiEDL3ChIUQCbfIoEr12LhqMIB2QZyBiKGokBLspSM/B2EU=","b64Record":"CgcIFhIDGNUIEjCFBSeOaHnJ026j6H2KeAnWZML8DVk99fEiqRkUSHuCqGWToN0A+b2f3mLflfGUXqcaDAjumbSuBhD8p73tAiIRCgkIspm0rgYQyQsSAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARSwhyM9wBzRe/vShz5R0rg7UNxcmg=="},{"b64Body":"Cg8KCQiymbSuBhDJCxICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohAy9woSFEAm3yKBK9di4ajCAdkGcgYihqJAS7KUjPwdhFEICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwSp8SqyhHYQZQkDxF8UAM528kHDZyzO/SgC48ANMbcLRGH3+b4QFB4PRQUBJTS/kYGgwI7pm0rgYQ/ae97QIiDwoJCLKZtK4GEMkLEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SGQoKCgIYAhD/j9/ASgoLCgMY1QgQgJDfwEo="},{"b64Body":"Cg8KCQizmbSuBhDPCxICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjgESCwjv546yBhCi5o1/Gm0KIhIgQ4Q+Yko2cqS5eN7VGSb5EXYeSmad2XnTV4ZQ1SmaRKkKIzohAp8+urmv5aIUgt8BUZB7QBPMokJYTHd0CA/VtBKXZkvuCiISIPYufWpfzq28NGTcI2/UQDt41FSHY/uTzGyh8G97HL9XIgxIZWxsbyBXb3JsZCEqADIA","b64Record":"CiUIFhoDGNYIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCHeWfGmi0Gg4JAkz+D1PELmHu3rKBwm0sZ7e9BRo1qA2g4noSSEvpYb1/V63cwiJkaDAjvmbSuBhDM8aeSASIPCgkIs5m0rgYQzwsSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQizmbSuBhDTCxICGAISAhgDGPa4sjEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBogkKAxjWCCKaCTYwODA2MDQwNTI2MTAyM2E4MDYxMDAxMzYwMDAzOTYwMDBmM2ZlNjA4MDYwNDA1MjYwMDQzNjEwNjEwMDNmNTc2MDAwMzU2MGUwMWM4MDYzMTIwNjVmZTAxNDYxMDA4ZjU3ODA2MzNjY2ZkNjBiMTQ2MTAwYmE1NzgwNjM2ZjY0MjM0ZTE0NjEwMGQxNTc4MDYzYjZiNTVmMjUxNDYxMDEyYzU3NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2N2ZmMWIwM2Y3MDhiOWMzOWY0NTNmZTNmMGNlZjg0MTY0YzdkNmY3ZGY4MzZkZjA3OTZlMWU5YzJiY2U2ZWUzOTdlMzQ2MDQwNTE4MDgyODE1MjYwMjAwMTkxNTA1MDYwNDA1MTgwOTEwMzkwYTIwMDViMzQ4MDE1NjEwMDliNTc2MDAwODBmZDViNTA2MTAwYTQ2MTAxNWE1NjViNjA0MDUxODA4MjgxNTI2MDIwMDE5MTUwNTA2MDQwNTE4MDkxMDM5MGYzNWIzNDgwMTU2MTAwYzY1NzYwMDA4MGZkNWI1MDYxMDBjZjYxMDE2MjU2NWIwMDViMzQ4MDE1NjEwMGRkNTc2MDAwODBmZDViNTA2MTAxMmE2MDA0ODAzNjAzNjA0MDgxMTAxNTYxMDBmNDU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2OTA2MDIwMDE5MDkyOTE5MDgwMzU5MDYwMjAwMTkwOTI5MTkwNTA1MDUwNjEwMWFiNTY1YjAwNWI2MTAxNTg2MDA0ODAzNjAzNjAyMDgxMTAxNTYxMDE0MjU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTkwNjAyMDAxOTA5MjkxOTA1MDUwNTA2MTAxZjY1NjViMDA1YjYwMDA0NzkwNTA5MDU2NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjEwOGZjNDc5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTU4MDE1NjEwMWE4NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTY1YjgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MTA4ZmM4MjkwODExNTAyOTA2MDQwNTE2MDAwNjA0MDUxODA4MzAzODE4NTg4ODhmMTkzNTA1MDUwNTAxNTgwMTU2MTAxZjE1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTY1YjgwMzQxNDYxMDIwMjU3NjAwMDgwZmQ1YjUwNTZmZWEyNjU2MjdhN2E3MjMxNTgyMGY4Zjg0ZmMzMWE4NDUwNjRiNTc4MWU5MDgzMTZmM2M1OTExNTc5NjJkZWFiYjBmZDQyNGVkNTRmMjU2NDAwZjk2NDczNmY2YzYzNDMwMDA1MTEwMDMy","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwqOl5gQKespVnN7PMGyh/Z6EcWCbuQhoSvg937W8ANpBCzd1+tSNvOz8GEz4we8BOGgwI75m0rgYQ3fDKgAMiDwoJCLOZtK4GENMLEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQi0mbSuBhDVCxICGAISAhgDGK/Dto0EIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5ClgEKAxjWCBpzKnEIAhJtCiISIEAU7XnvAFAhmyOF5lXJngkiuDD9pjIETqcfLCQsqGgyCiM6IQL5Qcq/o8sPad5j6EvvvdlQpyQS+XAzQT9quGYe1Ev+SQoiEiA8Rxb4qg9SBg5UEs0HB+BLn//NVjnhpMC/QdH94UqlKSCQoQ9CBQiAztoDUgBaAGoLY2VsbGFyIGRvb3I=","b64Record":"CiUIFiIDGNcIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDtiQbsHgojbEYI7cKr4jRGOYbhZ5kYhpsDu3xqkAmhViV1E8BBe5ZWxXf+L4/EZD8aDAjwmbSuBhChsI6SASIPCgkItJm0rgYQ1QsSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQu8GCgMY1wgSugRggGBAUmAENhBhAD9XYAA1YOAcgGMSBl/gFGEAj1eAYzzP1gsUYQC6V4Bjb2QjThRhANFXgGO2tV8lFGEBLFdbM3P//////////////////////////xZ/8bA/cIucOfRT/j8M74QWTH1vffg23weW4enCvObuOX40YEBRgIKBUmAgAZFQUGBAUYCRA5CiAFs0gBVhAJtXYACA/VtQYQCkYQFaVltgQFGAgoFSYCABkVBQYEBRgJEDkPNbNIAVYQDGV2AAgP1bUGEAz2EBYlZbAFs0gBVhAN1XYACA/VtQYQEqYASANgNgQIEQFWEA9FdgAID9W4EBkICANXP//////////////////////////xaQYCABkJKRkIA1kGAgAZCSkZBQUFBhAatWWwBbYQFYYASANgNgIIEQFWEBQldgAID9W4EBkICANZBgIAGQkpGQUFBQYQH2VlsAW2AAR5BQkFZbM3P//////////////////////////xZhCPxHkIEVApBgQFFgAGBAUYCDA4GFiIjxk1BQUFAVgBVhAahXPWAAgD49YAD9W1BWW4Fz//////////////////////////8WYQj8gpCBFQKQYEBRYABgQFGAgwOBhYiI8ZNQUFBQFYAVYQHxVz1gAIA+PWAA/VtQUFBWW4A0FGECAldgAID9W1BW/qJlYnp6cjFYIPj4T8MahFBktXgekIMW88WRFXli3quw/UJO1U8lZAD5ZHNvbGNDAAURADIigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMCaDDoDGNcIShYKFAAAAAAAAAAAAAAAAAAAAAAAAARXcgcKAxjXCBABUhYKCQoCGAIQ/7LFDQoJCgIYYhCAs8UN"},{"b64Body":"ChAKCQi0mbSuBhDXCxIDGNQIEgIYAxi97tIVIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA9cBCs4BAvjLggEqggPnoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPooAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRqUogAgwGGoJQAAAAAAAAAAAAAAAAAAAAAAAAEV4CktrVfJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE4gwAGgCvGy2/EuR9ptOtG/yLGSXNSu52kuySe4e0AmU8cv2/WgMtTZWNNY+WUjohg9z4/v+xjAJbXcrfRNjcuxrowWOhIYgMq17gE=","b64Record":"CiEIuAIqHAoMCAEQDBoGCICumaQPEgwIARAPGgYIgK6ZpA8SMM43VmY2Hg+5htLzJkxPv2/Vi/bWDdT3DFnhQUh+G8El4JDbpjMMUOI6Ta5q/8OSRxoMCPCZtK4GEOzL4JMDIhAKCQi0mbSuBhDXCxIDGNQIKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjC97tIVUjoKCQoCGAMQ8sHGAQoJCgIYYhDwyLIhCgoKAxigBhCMqZYECgoKAxihBhCMqZYECgoKAxjUCBD53KUrigEg12e/jVlYFVSQ60T8fR+v8s96lkimD49/eVtzGu3N+Sw="}]},"etxSvc003ContractGetBytecodeQueryReturnsDeployedCode":{"placeholderNum":1112,"encodedItems":[{"b64Body":"Cg8KCQi5mbSuBhDvCxICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIBG6sTUL3tITgugk/0JemzsxiXqlz02pTS6ZAVIDhSoOEICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGNkIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDYPlBOuA/yFY2IOs8kQMVbcodHLzWD4VkDjOssgQtQIidRMSjw8ENWzJRf4r0h/t0aDAj1mbSuBhCexoahAiIPCgkIuZm0rgYQ7wsSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIfCg0KAhgCEP//663M7JACCg4KAxjZCBCAgOytzOyQAg=="},{"b64Body":"ChEKCQi6mbSuBhDxCxICGAIgAVpoCiM6IQKjCYMd+AOqx6xOJQqVz22fdqJNId/GmXy7OD05AJa9JEoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiECowmDHfgDqsesTiUKlc9tn3aiTSHfxpl8uzg9OQCWvSQ=","b64Record":"CgcIFhIDGNoIEjBxoCEs52pq93mZcONuz3A9cvjp1yDEENCMZCS02g8/7mZAUGETTZAR+uf2ArdRxTsaCwj2mbSuBhDxyaEuIhEKCQi6mbSuBhDxCxICGAIgASoUYXV0by1jcmVhdGVkIGFjY291bnRSAKoBFKAvFSSJUHjzMWW5om828teuMsvm"},{"b64Body":"Cg8KCQi6mbSuBhDxCxICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohAqMJgx34A6rHrE4lCpXPbZ92ok0h38aZfLs4PTkAlr0kEICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwl/Gk6Rmnhn0LfMiuPc1zZ7/eILnFBN9zi0XJlDbh4Jzw7WdofL1Dgf8fzoEkG2MrGgsI9pm0rgYQ8smhLiIPCgkIupm0rgYQ8QsSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxjaCBCAkN/ASg=="},{"b64Body":"Cg8KCQi6mbSuBhDzCxICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAj2546yBhCQgb6ZAhptCiISIHa6yODrlZu8Dzi4M+9U9qtNuDuZjoGMIVo1GgvEmKP6CiM6IQLYe3oxM2y7aBGawKtIM0ONMl2RhdBd/8d0EnEYkG3BKQoiEiAqBREi5bqoC120aV35lbwqzWd1fJmnkZTm8Vvx4YARbSIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGNsIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDx1uShxbHzfucLvugHebquZ1bqVWaos9mMMW9fDDYdChhsg4mFQFWe46vC5od+zj0aDAj2mbSuBhDmn465AiIPCgkIupm0rgYQ8wsSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQi7mbSuBhD3CxICGAISAhgDGMr5hy0iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBwAEKAxjbCCK4ATYwODA2MDQwNTIzNDgwMTU2MDBmNTc2MDAwODBmZDViNTA2MDNmODA2MDFkNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyNjAwMDgwZmRmZWEyNjQ2OTcwNjY3MzU4MjIxMjIwOTg2N2JjOWUyMjJmMjU5Yjc4ODUwMzUwMjY4MjkzYTNmYzljMzk5YWY3ZTE3ODNkNjMzNDE2YzliMjljYmUxZTY0NzM2ZjZjNjM0MzAwMDgwNzAwMzM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIww8U2eSKk9bK3G+4Qlr5+PYpC1S96q4ZijxplgM916iLqsQk1gobDLvLcfXgiHivYGgsI95m0rgYQ+NmpVCIPCgkIu5m0rgYQ9wsSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"ChAKCQi7mbSuBhD5CxIDGNkIEgIYAxjfgOMVIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA/oBCvEBAvjuggEqgKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOIKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0alKIAIMPQkCAgLhcYIBgQFI0gBVgD1dgAID9W1BgP4BgHWAAOWAA8/5ggGBAUmAAgP3+omRpcGZzWCISIJhnvJ4iLyWbeIUDUCaCk6P8nDma9+F4PWM0FsmynL4eZHNvbGNDAAgHADPAAaA2wrN7fVZDc7wqjDDcnBO2bA4xbp2+DMrc/+mf70X0EaAIMHjMVu/WJjm6hlfSLMUSaB1az7M5H7UActNlTedC3RiAyK+gJQ==","b64Record":"CiUIFiIDGNwIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjD0z51aFT4pc6qqIJ5II5xl2pLi7KWzSrZnsVhFP1xRIktfYLMh0ImJczKBzfQnJy8aDAj3mbSuBhCwjo65AiIQCgkIu5m0rgYQ+QsSAxjZCCogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4w3+btMELeAwoDGNwIEj9ggGBAUmAAgP3+omRpcGZzWCISIJhnvJ4iLyWbeIUDUCaCk6P8nDma9+F4PWM0FsmynL4eZHNvbGNDAAgHADMigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKIDqMDoDGNwIShYKFF8T18lbpwj3jXfCjcOM1kAUOVqNUMCEPWJcYIBgQFI0gBVgD1dgAID9W1BgP4BgHWAAOWAA8/5ggGBAUmAAgP3+omRpcGZzWCISIJhnvJ4iLyWbeIUDUCaCk6P8nDma9+F4PWM0FsmynL4eZHNvbGNDAAgHADNqAxjaCHIHCgMY3AgQAXoCCAFSRgoJCgIYAxD+tMgBCgkKAhhiELS84FcKCgoDGKAGEIaumQQKCgoDGKEGEIaumQQKCgoDGNkIEL2LhDIKCgoDGNoIEP/B1y+KASBUabnnitGxUwHOui0c5aqwSIeXNbe/XPcZDy2MquqyMQ=="},{"b64Body":"ChIKCQi7mbSuBhD5CxIDGNkIIAFCHUIFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50","b64Record":"CgcIFiIDGNwIEjBUxZ/2XhifPz30CRVBgyFD8cw2z+wsIBCi6NdCaJBZYzQOzQhpCD8CmOzyLDdVfvQaDAj3mbSuBhCxjo65AiISCgkIu5m0rgYQ+QsSAxjZCCABQh0KAxjcCEoWChRfE9fJW6cI9413wo3DjNZAFDlajVIAegwI95m0rgYQsI6OuQI="}]},"sendingLargerBalanceThanAvailableFailsGracefully":{"placeholderNum":1117,"encodedItems":[{"b64Body":"Cg8KCQjAmbSuBhCNDBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIC5DgxlnKDJmScvlRHlogGlE+3YAGlr0Ftr7N5pR2NACEICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGN4IKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDyrYVAIMXRrqUahoGG47LmjJtQeZ+Bhv1SGsz8ydMlEu+5s9S2sHBQpwofUa2+dysaDAj8mbSuBhDinaDQASIPCgkIwJm0rgYQjQwSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIfCg0KAhgCEP//663M7JACCg4KAxjeCBCAgOytzOyQAg=="},{"b64Body":"ChEKCQjAmbSuBhCPDBICGAIgAVpoCiM6IQLj6jZBKgAdobNQsSnam5JIDbWpF73QZGljyaZXUJbvsUoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiEC4+o2QSoAHaGzULEp2puSSA21qRe90GRpY8mmV1CW77E=","b64Record":"CgcIFhIDGN8IEjBtzdjOT0becnlj1nUhk6vA1FMx2iqLh0NayPE+IjLyxcLrUffhbqAxsGi+Y9j94OEaDAj8mbSuBhDnpNu+AyIRCgkIwJm0rgYQjwwSAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARQFzo1RbcKQPjtMGYBFqqzqAIsOIw=="},{"b64Body":"Cg8KCQjAmbSuBhCPDBICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD9j9/ASgotCiUiIzohAuPqNkEqAB2hs1CxKdqbkkgNtakXvdBkaWPJpldQlu+xEP6P38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwb8tUWOdAVv63M4govxe6Lau5ocltxiow7BZNJntGoq5Koqtu0j47YVTShlQB+pgcGgwI/Jm0rgYQ6KTbvgMiDwoJCMCZtK4GEI8MEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SGQoKCgIYAhD9j9/ASgoLCgMY3wgQ/o/fwEo="},{"b64Body":"Cg8KCQjBmbSuBhCRDBICGAISAhgDGL/0xiwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBgQESDAj9546yBhCW3uTNARptCiISIGSDTEsRZLvu5cxxSb2ZJUcwQXaj3QKLswnEmXsjZBxOCiM6IQJkq9TdryK+X/CoMRqls0sT/aoh0z6U+iOI9mn2jyrlggoiEiBh9mJaK7qxV4Twgh6N74M0FYSzK3Bevdd7AygpLlc58SoAMgA=","b64Record":"CiUIFhoDGOAIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjArPpDr2P+BG26Hf/qNSM23asa3jwxABn5lqTSM0g4ku6l+aVrY9H5rONFd8OK5D4MaDAj9mbSuBhCK+Y/VASIPCgkIwZm0rgYQkQwSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjBmbSuBhCVDBICGAISAhgDGJPsjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxjgCCKAIDYwODA2MDQwNTI2MDQwNTE4MDYwNDAwMTYwNDA1MjgwNjAwOTgxNTI2MDIwMDE3Zjc0NmY2YjY1NmU0ZTYxNmQ2NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MTUyNTA2MDAyOTA4MDUxOTA2MDIwMDE5MDYyMDAwMDUxOTI5MTkwNjIwMDAzNzE1NjViNTA2MDQwNTE4MDYwNDAwMTYwNDA1MjgwNjAwYjgxNTI2MDIwMDE3Zjc0NmY2YjY1NmU1Mzc5NmQ2MjZmNmMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MTUyNTA2MDAzOTA4MDUxOTA2MDIwMDE5MDYyMDAwMDlmOTI5MTkwNjIwMDAzNzE1NjViNTA2MDQwNTE4MDYwNDAwMTYwNDA1MjgwNjAwNDgxNTI2MDIwMDE3ZjZkNjU2ZDZmMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MTUyNTA2MDA0OTA4MDUxOTA2MDIwMDE5MDYyMDAwMGVkOTI5MTkwNjIwMDAzNzE1NjViNTA2MTAzZTg2MDA1NjAwMDYxMDEwMDBhODE1NDgxNjdmZmZmZmZmZmZmZmZmZmZmMDIxOTE2OTA4MzY3ZmZmZmZmZmZmZmZmZmZmZjE2MDIxNzkwNTU1MDYxMDNlODYwMDU2MDA4NjEwMTAwMGE4MTU0ODE2N2ZmZmZmZmZmZmZmZmZmZmYwMjE5MTY5MDgzNjAwNzBiNjdmZmZmZmZmZmZmZmZmZmZmMTYwMjE3OTA1NTUwNjAwODYwMDU2MDEwNjEwMTAwMGE4MTU0ODE2M2ZmZmZmZmZmMDIxOTE2OTA4MzYzZmZmZmZmZmYxNjAyMTc5MDU1NTA2MDAwNjAwNTYwMTQ2MTAxMDAwYTgxNTQ4MTYwZmYwMjE5MTY5MDgzMTUxNTAyMTc5MDU1NTAzNDgwMTU2MjAwMDE5MTU3NjAwMDgwZmQ1YjUwNjAwMTgwNjAwMDgwNjAwNjgxMTExNTYyMDAwMWFkNTc2MjAwMDFhYzYyMDAwNDU3NTY1YjViNjAwNjgxMTExNTYyMDAwMWMyNTc2MjAwMDFjMTYyMDAwNDU3NTY1YjViODE1MjYwMjAwMTkwODE1MjYwMjAwMTYwMDAyMDgxOTA1NTUwNjAwMjYwMDE2MDAwNjAwMTYwMDY4MTExMTU2MjAwMDFmMTU3NjIwMDAxZjA2MjAwMDQ1NzU2NWI1YjYwMDY4MTExMTU2MjAwMDIwNjU3NjIwMDAyMDU2MjAwMDQ1NzU2NWI1YjgxNTI2MDIwMDE5MDgxNTI2MDIwMDE2MDAwMjA4MTkwNTU1MDYwMDQ2MDAxNjAwMDYwMDI2MDA2ODExMTE1NjIwMDAyMzU1NzYyMDAwMjM0NjIwMDA0NTc1NjViNWI2MDA2ODExMTE1NjIwMDAyNGE1NzYyMDAwMjQ5NjIwMDA0NTc1NjViNWI4MTUyNjAyMDAxOTA4MTUyNjAyMDAxNjAwMDIwODE5MDU1NTA2MDA4NjAwMTYwMDA2MDAzNjAwNjgxMTExNTYyMDAwMjc5NTc2MjAwMDI3ODYyMDAwNDU3NTY1YjViNjAwNjgxMTExNTYyMDAwMjhlNTc2MjAwMDI4ZDYyMDAwNDU3NTY1YjViODE1MjYwMjAwMTkwODE1MjYwMjAwMTYwMDAyMDgxOTA1NTUwNjAxMDYwMDE2MDAwNjAwNDYwMDY4MTExMTU2MjAwMDJiZDU3NjIwMDAyYmM2MjAwMDQ1NzU2NWI1YjYwMDY4MTExMTU2MjAwMDJkMjU3NjIwMDAyZDE2MjAwMDQ1NzU2NWI1YjgxNTI2MDIwMDE5MDgxNTI2MDIwMDE2MDAwMjA4MTkwNTU1MDYwMjA2MDAxNjAwMDYwMDU2MDA2ODExMTE1NjIwMDAzMDE1NzYyMDAwMzAwNjIwMDA0NTc1NjViNWI2MDA2ODExMTE1NjIwMDAzMTY1NzYyMDAwMzE1NjIwMDA0NTc1NjViNWI4MTUyNjAyMDAxOTA4MTUyNjAyMDAxNjAwMDIwODE5MDU1NTA2MDQwNjAwMTYwMDA2MDA2ODA4MTExMTU2MjAwMDM0NDU3NjIwMDAzNDM2MjAwMDQ1NzU2NWI1YjYwMDY4MTExMTU2MjAwMDM1OTU3NjIwMDAzNTg2MjAwMDQ1NzU2NWI1YjgxNTI2MDIwMDE5MDgxNTI2MDIwMDE2MDAwMjA4MTkwNTU1MDYyMDAwNGI1NTY1YjgyODA1NDYyMDAwMzdmOTA2MjAwMDQyMTU2NWI5MDYwMDA1MjYwMjA2MDAwMjA5MDYwMWYwMTYwMjA5MDA0ODEwMTkyODI2MjAwMDNhMzU3NjAwMDg1NTU2MjAwMDNlZjU2NWI4MjYwMWYxMDYyMDAwM2JlNTc4MDUxNjBmZjE5MTY4MzgwMDExNzg1NTU2MjAwMDNlZjU2NWI4MjgwMDE2MDAxMDE4NTU1ODIxNTYyMDAwM2VmNTc5MTgyMDE1YjgyODExMTE1NjIwMDAzZWU1NzgyNTE4MjU1OTE2MDIwMDE5MTkwNjAwMTAxOTA2MjAwMDNkMTU2NWI1YjUwOTA1MDYyMDAwM2ZlOTE5MDYyMDAwNDAyNTY1YjUwOTA1NjViNWI4MDgyMTExNTYyMDAwNDFkNTc2MDAwODE2MDAwOTA1NTUwNjAwMTAxNjIwMDA0MDM1NjViNTA5MDU2NWI2MDAwNjAwMjgyMDQ5MDUwNjAwMTgyMTY4MDYyMDAwNDNhNTc2MDdmODIxNjkxNTA1YjYwMjA4MjEwODExNDE1NjIwMDA0NTE1NzYyMDAwNDUwNjIwMDA0ODY1NjViNWI1MDkxOTA1MDU2NWI3ZjRlNDg3YjcxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MDAwNTI2MDIxNjAwNDUyNjAyNDYwMDBmZDViN2Y0ZTQ4N2I3MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjAwMDUyNjAyMjYwMDQ1MjYwMjQ2MDAwZmQ1YjYxNDJhYjgwNjIwMDA0YzU2MDAwMzk2MDAwZjNmZTYwODA2MDQwNTI2MDA0MzYxMDYxMDBhNzU3NjAwMDM1NjBlMDFjODA2MzgwNzA5MDVmMTE2MTAwNjQ1NzgwNjM4MDcwOTA1ZjE0NjEwMWQ4NTc4MDYzOGJhNzRkYTAxNDYxMDIxNzU3ODA2MzliMjNkM2Q5MTQ2MTAyMzM1NzgwNjNkODVmNzRjMTE0NjEwMjcwNTc4MDYzZWFjNmYzZmUxNDYxMDI4YzU3ODA2M2Y0YTAxZTViMTQ2MTAyYzk1NzYxMDBhNzU2NWI4MDYzMDQ4OGM5MzkxNDYxMDBhYzU3ODA2MzBmZDI2MDFlMTQ2MTAwYzg1NzgwNjMxMTg3NDFlNzE0NjEwMTA1NTc4MDYzMTFlMWZjMDcxNDYxMDE0MjU3ODA2MzE1ZGFjYmVhMTQ2MTAxN2Y1NzgwNjM0YjVjNjY4NzE0NjEwMWJjNTc1YjYwMDA4MGZkNWI2MTAwYzY2MDA0ODAzNjAzODEwMTkwNjEwMGMxOTE5MDYxMmZlNjU2NWI2MTAzMDY1NjViMDA1YjM0ODAxNTYxMDBkNDU3NjAwMDgwZmQ1YjUwNjEwMGVmNjAwNDgwMzYwMzgxMDE5MDYxMDBlYTkxOTA2MTJmZTY1NjViNjEwOTEwNTY1YjYwNDA1MTYxMDBmYzkxOTA2MTNiYTE1NjViNjA0MDUxODA5MTAzOTBmMzViMzQ4MDE1NjEwMTExNTc2MDAwODBmZDViNTA2MTAxMmM2MDA0ODAzNjAzODEwMTkwNjEwMTI3OTE5MDYxMzA4ZDU2NWI2MTA5NmU1NjViNjA0MDUxNjEwMTM5OTE5MDYxM2IyZDU2NWI2MDQwNTE4MDkxMDM5MGYzNWIzNDgwMTU2MTAxNGU1NzYwMDA4MGZkNWI1MDYxMDE2OTYwMDQ4MDM2MDM4MTAxOTA2MTAxNjQ5MTkwNjEzMDI2NTY1YjYxMDljOTU2NWI2MDQwNTE2MTAxNzY5MTkwNjEzYmExNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjM0ODAxNTYxMDE4YjU3NjAwMDgwZmQ1YjUwNjEwMWE2NjAwNDgwMzYwMzgxMDE5MDYxMDFhMTkxOTA2MTMwMjY1NjViNjEwYWU1NTY1YjYwNDA1MTYxMDFiMzkxOTA2MTNiYTE1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMWQ2NjAwNDgwMzYwMzgxMDE5MDYxMDFkMTkxOTA2MTJmYjk1NjViNjEwYzAzNTY1YjAwNWIzNDgwMTU2MTAxZTQ1NzYwMDA4MGZkNWI1MDYxMDFmZjYwMDQ4MDM2MDM4MTAxOTA2MTAxZmE5MTkwNjEzMGU5NTY1YjYxMTA3MTU2NWI2MDQwNTE2MTAyMGU5MzkyOTE5MDYxM2I0ODU2NWI2MDQwNTE4MDkxMDM5MGYzNWI2MTAyMzE2MDA0ODAzNjAzODEwMTkwNjEwMjJjOTE5MDYxMmZlNjU2NWI2MTExMTY1NjViMDA1YjM0ODAxNTYxMDIzZjU3NjAwMDgwZmQ1YjUwNjEwMjVhNjAwNDgwMzYwMzgxMDE5MDYxMDI1NTkxOTA2MTMwMjY1NjViNjExNjc3NTY1YjYwNDA1MTYxMDI2NzkxOTA2MTNiYTE1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMjhhNjAwNDgwMzYwMzgxMDE5MDYxMDI4NTkxOTA2MTJmYjk1NjViNjExNzk1NTY1YjAwNWIzNDgwMTU2MTAyOTg1NzYwMDA4MGZkNWI1MDYxMDJiMzYwMDQ4MDM2MDM4MTAxOTA2MTAyYWU5MTkwNjEzMDI2NTY1YjYxMWJkOTU2NWI2MDQwNTE2MTAyYzA5MTkwNjEzYmExNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjM0ODAxNTYxMDJkNTU3NjAwMDgwZmQ1YjUwNjEwMmYwNjAwNDgwMzYwMzgxMDE5MDYxMDJlYjkxOTA2MTJmZTY1NjViNjExY2Y1NTY1YjYwNDA1MTYxMDJmZDkxOTA2MTNiMmQ1NjViNjA0MDUxODA5MTAzOTBmMzViNjAwMDYwMDU2N2ZmZmZmZmZmZmZmZmZmZmY4MTExMTU2MTAzMjM1NzYxMDMyMjYxNDE5MjU2NWI1YjYwNDA1MTkwODA4MjUyODA2MDIwMDI2MDIwMDE4MjAxNjA0MDUyODAxNTYxMDM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw3sXnEhTpQUPquxEnieAZnzi7UWg4edM/nr3/fqKnE7XsQgeMcN0JfFtUdfUmdFNxGgsI/pm0rgYQ+NnjByIPCgkIwZm0rgYQlQwSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjCmbSuBhCbDBICGAISAhgDGPjR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxjgCCKAIDVjNTc4MTYwMjAwMTViNjEwMzQ5NjEyYjAwNTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMDM0MTU3OTA1MDViNTA5MDUwNjEwMzdkNjAwMDYwMDY2MDAwNjA0MDUxODA2MDIwMDE2MDQwNTI4MDYwMDA4MTUyNTA2MTFkNTA1NjViODE2MDAwODE1MTgxMTA2MTAzOTE1NzYxMDM5MDYxNDE2MzU2NWI1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA2MTAzYjg2MDAxNjAwMDYwNDA1MTgwNjAyMDAxNjA0MDUyODA2MDAwODE1MjUwNjExZDg5NTY1YjgxNjAwMTgxNTE4MTEwNjEwM2NjNTc2MTAzY2I2MTQxNjM1NjViNWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNjEwM2YzNjAwMjYwMDA2MDQwNTE4MDYwMjAwMTYwNDA1MjgwNjAwMDgxNTI1MDYxMWQ4OTU2NWI4MTYwMDI4MTUxODExMDYxMDQwNzU3NjEwNDA2NjE0MTYzNTY1YjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDYxMDQyZTYwMDQ2MDAwNjA0MDUxODA2MDIwMDE2MDQwNTI4MDYwMDA4MTUyNTA2MTFkODk1NjViODE2MDAzODE1MTgxMTA2MTA0NDI1NzYxMDQ0MTYxNDE2MzU2NWI1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA2MTA0Njk2MDAzNjAwMDYwNDA1MTgwNjAyMDAxNjA0MDUyODA2MDAwODE1MjUwNjExZDg5NTY1YjgxNjAwNDgxNTE4MTEwNjEwNDdkNTc2MTA0N2M2MTQxNjM1NjViNWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNjAwMDYwNDA1MTgwNjA2MDAxNjA0MDUyODA2MDAwNjNmZmZmZmZmZjE2ODE1MjYwMjAwMTg1NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4MTUyNjAyMDAxNjI3YTEyMDA2M2ZmZmZmZmZmMTY4MTUyNTA5MDUwNjAwMDYwNDA1MTgwNjEwMTIwMDE2MDQwNTI4MDYwMDI4MDU0NjEwNGU4OTA2MTQwYTI1NjViODA2MDFmMDE2MDIwODA5MTA0MDI2MDIwMDE2MDQwNTE5MDgxMDE2MDQwNTI4MDkyOTE5MDgxODE1MjYwMjAwMTgyODA1NDYxMDUxNDkwNjE0MGEyNTY1YjgwMTU2MTA1NjE1NzgwNjAxZjEwNjEwNTM2NTc2MTAxMDA4MDgzNTQwNDAyODM1MjkxNjAyMDAxOTE2MTA1NjE1NjViODIwMTkxOTA2MDAwNTI2MDIwNjAwMDIwOTA1YjgxNTQ4MTUyOTA2MDAxMDE5MDYwMjAwMTgwODMxMTYxMDU0NDU3ODI5MDAzNjAxZjE2ODIwMTkxNWI1MDUwNTA1MDUwODE1MjYwMjAwMTYwMDM4MDU0NjEwNTc4OTA2MTQwYTI1NjViODA2MDFmMDE2MDIwODA5MTA0MDI2MDIwMDE2MDQwNTE5MDgxMDE2MDQwNTI4MDkyOTE5MDgxODE1MjYwMjAwMTgyODA1NDYxMDVhNDkwNjE0MGEyNTY1YjgwMTU2MTA1ZjE1NzgwNjAxZjEwNjEwNWM2NTc2MTAxMDA4MDgzNTQwNDAyODM1MjkxNjAyMDAxOTE2MTA1ZjE1NjViODIwMTkxOTA2MDAwNTI2MDIwNjAwMDIwOTA1YjgxNTQ4MTUyOTA2MDAxMDE5MDYwMjAwMTgwODMxMTYxMDVkNDU3ODI5MDAzNjAxZjE2ODIwMTkxNWI1MDUwNTA1MDUwODE1MjYwMjAwMTg2NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4MTUyNjAyMDAxNjAwNDgwNTQ2MTA2MjQ5MDYxNDBhMjU2NWI4MDYwMWYwMTYwMjA4MDkxMDQwMjYwMjAwMTYwNDA1MTkwODEwMTYwNDA1MjgwOTI5MTkwODE4MTUyNjAyMDAxODI4MDU0NjEwNjUwOTA2MTQwYTI1NjViODAxNTYxMDY5ZDU3ODA2MDFmMTA2MTA2NzI1NzYxMDEwMDgwODM1NDA0MDI4MzUyOTE2MDIwMDE5MTYxMDY5ZDU2NWI4MjAxOTE5MDYwMDA1MjYwMjA2MDAwMjA5MDViODE1NDgxNTI5MDYwMDEwMTkwNjAyMDAxODA4MzExNjEwNjgwNTc4MjkwMDM2MDFmMTY4MjAxOTE1YjUwNTA1MDUwNTA4MTUyNjAyMDAxNjAwMTE1MTU4MTUyNjAyMDAxNjAwNTYwMDg5MDU0OTA2MTAxMDAwYTkwMDQ2MDA3MGI2MDA3MGI4MTUyNjAyMDAxNjAwNTYwMTQ5MDU0OTA2MTAxMDAwYTkwMDQ2MGZmMTYxNTE1ODE1MjYwMjAwMTg0ODE1MjYwMjAwMTgzODE1MjUwOTA1MDYwMDA2MDAxNjdmZmZmZmZmZmZmZmZmZmZmODExMTE1NjEwNzA4NTc2MTA3MDc2MTQxOTI1NjViNWI2MDQwNTE5MDgwODI1MjgwNjAyMDAyNjAyMDAxODIwMTYwNDA1MjgwMTU2MTA3NDE1NzgxNjAyMDAxNWI2MTA3MmU2MTJiMjA1NjViODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjEwNzI2NTc5MDUwNWI1MDkwNTA2MDQwNTE4MDYwYTAwMTYwNDA1MjgwNjAwMTYzZmZmZmZmZmYxNjgxNTI2MDIwMDE4NjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ODE1MjYwMjAwMTYwMDAxNTE1ODE1MjYwMjAwMTYwMDAxNTE1ODE1MjYwMjAwMTg3NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4MTUyNTA4MTYwMDA4MTUxODExMDYxMDdiODU3NjEwN2I3NjE0MTYzNTY1YjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDYwMDA2MDAxNjdmZmZmZmZmZmZmZmZmZmZmODExMTE1NjEwN2UwNTc2MTA3ZGY2MTQxOTI1NjViNWI2MDQwNTE5MDgwODI1MjgwNjAyMDAyNjAyMDAxODIwMTYwNDA1MjgwMTU2MTA4MTk1NzgxNjAyMDAxNWI2MTA4MDY2MTJiODU1NjViODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjEwN2ZlNTc5MDUwNWI1MDkwNTA2MDQwNTE4MDYwYzAwMTYwNDA1MjgwNjAwNDYzZmZmZmZmZmYxNjgxNTI2MDIwMDE2MDA1NjNmZmZmZmZmZjE2ODE1MjYwMjAwMTYwMGE2M2ZmZmZmZmZmMTY4MTUyNjAyMDAxODc3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjgxNTI2MDIwMDE2MDAwMTUxNTgxNTI2MDIwMDE4ODczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ODE1MjUwODE2MDAwODE1MTgxMTA2MTA4YTE1NzYxMDhhMDYxNDE2MzU2NWI1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA2MDAwODA2MTA4YmE4NTg1ODU2MTFkYzA1NjViOTE1MDkxNTA2MDE2NjAwMzBiODIxNDYxMDhjZTU3NjAwMDgwZmQ1YjdmN2JiMTc3MjZkZjFmM2FkZWU4YWEwMGJhOGU4YmM1ZDZmMTgyYWYzYmJmNzc2MDQ2MzljYjdmMDA4ZGQzYjRlZDgxNjA0MDUxNjEwOGZkOTE5MDYxM2EzNjU2NWI2MDQwNTE4MDkxMDM5MGExNTA1MDUwNTA1MDUwNTA1MDUwNTY1YjYwMDA2MTA5MWM4MzgzNjExZjNmNTY1YjkwNTA3ZjkwYTVjZjRjZmZlODhiNGVkYmIwNDFjZmM3YThhODEyYzQ4YTVlYzMwYjg0NjQwZmIzNzY5MDg3NTE2OGUzYWE4MTYwNDA1MTYxMDk0ZDkxOTA2MTNiODY1NjViNjA0MDUxODA5MTAzOTBhMTYwMTY2MDAzMGI4MTYwMDcwYjE0NjEwOTY4NTc2MDAwODBmZDViOTI5MTUwNTA1NjViNjAwMDYxMDk3YTgzODM2MTIwNTc1NjViOTA1MDdmOTBhNWNmNGNmZmU4OGI0ZWRiYjA0MWNmYzdhOGE4MTJjNDhhNWVjMzBiODQ2NDBmYjM3NjkwODc1MTY4ZTNhYTgxNjA0MDUxNjEwOWFiOTE5MDYxM2IyZDU2NWI2MDQwNTE4MDkxMDM5MGExNjAxNjYwMDMwYjgxMTQ2MTA5YzM1NzYwMDA4MGZkNWI5MjkxNTA1MDU2NWI2MDAwODA2MDAwNjEwMTY3NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MzliMjNkM2Q5NjBlMDFiODg4ODg4ODg2MDQwNTE2MDI0MDE2MTBhMDY5NDkzOTI5MTkwNjEzYTdhNTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMGE3MDkxOTA2MTNhMWY1NjViNjAwMDYwNDA1MTgwODMwMzgxODU1YWY0OTE1MDUwM2Q4MDYwMDA4MTE0NjEwYWFiNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjEwYWIwNTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTBhYzE1NzYwMTU2MTBhZDY1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTBhZDU5MTkwNjEzMTU4NTY1YjViNjAwMzBiOTI1MDUwNTA5NDkzNTA1MDUwNTA1NjViNjAwMDgwNjAwMDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjMxNWRhY2JlYTYwZTAxYjg4ODg4ODg4NjA0MDUxNjAyNDAxNjEwYjIyOTQ5MzkyOTE5MDYxM2E3YTU2NWI2MDQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI5MDdiZmZmZmZmZmZmZmZmZmY=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwN2zhuH1gii7zYwQ3wW+XnGWv/Cgu1h8Wm0j5lPqlKvK0qSr04HxbrIHSHeWa5GCcGgwI/pm0rgYQ6YTY8QEiDwoJCMKZtK4GEJsMEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjCmbSuBhChDBICGAISAhgDGPjR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxjgCCKAIGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMGI4YzkxOTA2MTNhMWY1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMGJjOTU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMGJjZTU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEwYmRmNTc2MDE1NjEwYmY0NTY1YjgwODA2MDIwMDE5MDUxODEwMTkwNjEwYmYzOTE5MDYxMzE1ODU2NWI1YjYwMDMwYjkyNTA1MDUwOTQ5MzUwNTA1MDUwNTY1YjYwMDA2MDA1NjdmZmZmZmZmZmZmZmZmZmZmODExMTE1NjEwYzIwNTc2MTBjMWY2MTQxOTI1NjViNWI2MDQwNTE5MDgwODI1MjgwNjAyMDAyNjAyMDAxODIwMTYwNDA1MjgwMTU2MTBjNTk1NzgxNjAyMDAxNWI2MTBjNDY2MTJiMDA1NjViODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjEwYzNlNTc5MDUwNWI1MDkwNTA2MTBjN2E2MDAwNjAwNjYwMDA2MDQwNTE4MDYwMjAwMTYwNDA1MjgwNjAwMDgxNTI1MDYxMWQ1MDU2NWI4MTYwMDA4MTUxODExMDYxMGM4ZTU3NjEwYzhkNjE0MTYzNTY1YjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDYxMGNiNTYwMDE2MDAwNjA0MDUxODA2MDIwMDE2MDQwNTI4MDYwMDA4MTUyNTA2MTFkODk1NjViODE2MDAxODE1MTgxMTA2MTBjYzk1NzYxMGNjODYxNDE2MzU2NWI1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA2MTBjZjA2MDAyNjAwMDYwNDA1MTgwNjAyMDAxNjA0MDUyODA2MDAwODE1MjUwNjExZDg5NTY1YjgxNjAwMjgxNTE4MTEwNjEwZDA0NTc2MTBkMDM2MTQxNjM1NjViNWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNjEwZDJiNjAwMzYwMDA2MDQwNTE4MDYwMjAwMTYwNDA1MjgwNjAwMDgxNTI1MDYxMWQ4OTU2NWI4MTYwMDM4MTUxODExMDYxMGQzZjU3NjEwZDNlNjE0MTYzNTY1YjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDYxMGQ2NjYwMDQ2MDAwNjA0MDUxODA2MDIwMDE2MDQwNTI4MDYwMDA4MTUyNTA2MTFkODk1NjViODE2MDA0ODE1MTgxMTA2MTBkN2E1NzYxMGQ3OTYxNDE2MzU2NWI1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA2MDAwNjA0MDUxODA2MDYwMDE2MDQwNTI4MDYwMDA2M2ZmZmZmZmZmMTY4MTUyNjAyMDAxODQ3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjgxNTI2MDIwMDE2MjdhMTIwMDYzZmZmZmZmZmYxNjgxNTI1MDkwNTA2MDAwNjA0MDUxODA2MTAxMjAwMTYwNDA1MjgwNjAwMjgwNTQ2MTBkZTU5MDYxNDBhMjU2NWI4MDYwMWYwMTYwMjA4MDkxMDQwMjYwMjAwMTYwNDA1MTkwODEwMTYwNDA1MjgwOTI5MTkwODE4MTUyNjAyMDAxODI4MDU0NjEwZTExOTA2MTQwYTI1NjViODAxNTYxMGU1ZTU3ODA2MDFmMTA2MTBlMzM1NzYxMDEwMDgwODM1NDA0MDI4MzUyOTE2MDIwMDE5MTYxMGU1ZTU2NWI4MjAxOTE5MDYwMDA1MjYwMjA2MDAwMjA5MDViODE1NDgxNTI5MDYwMDEwMTkwNjAyMDAxODA4MzExNjEwZTQxNTc4MjkwMDM2MDFmMTY4MjAxOTE1YjUwNTA1MDUwNTA4MTUyNjAyMDAxNjAwMzgwNTQ2MTBlNzU5MDYxNDBhMjU2NWI4MDYwMWYwMTYwMjA4MDkxMDQwMjYwMjAwMTYwNDA1MTkwODEwMTYwNDA1MjgwOTI5MTkwODE4MTUyNjAyMDAxODI4MDU0NjEwZWExOTA2MTQwYTI1NjViODAxNTYxMGVlZTU3ODA2MDFmMTA2MTBlYzM1NzYxMDEwMDgwODM1NDA0MDI4MzUyOTE2MDIwMDE5MTYxMGVlZTU2NWI4MjAxOTE5MDYwMDA1MjYwMjA2MDAwMjA5MDViODE1NDgxNTI5MDYwMDEwMTkwNjAyMDAxODA4MzExNjEwZWQxNTc4MjkwMDM2MDFmMTY4MjAxOTE1YjUwNTA1MDUwNTA4MTUyNjAyMDAxODU3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjgxNTI2MDIwMDE2MDA0ODA1NDYxMGYyMTkwNjE0MGEyNTY1YjgwNjAxZjAxNjAyMDgwOTEwNDAyNjAyMDAxNjA0MDUxOTA4MTAxNjA0MDUyODA5MjkxOTA4MTgxNTI2MDIwMDE4MjgwNTQ2MTBmNGQ5MDYxNDBhMjU2NWI4MDE1NjEwZjlhNTc4MDYwMWYxMDYxMGY2ZjU3NjEwMTAwODA4MzU0MDQwMjgzNTI5MTYwMjAwMTkxNjEwZjlhNTY1YjgyMDE5MTkwNjAwMDUyNjAyMDYwMDAyMDkwNWI4MTU0ODE1MjkwNjAwMTAxOTA2MDIwMDE4MDgzMTE2MTBmN2Q1NzgyOTAwMzYwMWYxNjgyMDE5MTViNTA1MDUwNTA1MDgxNTI2MDIwMDE2MDAxMTUxNTgxNTI2MDIwMDE2MDA1NjAwODkwNTQ5MDYxMDEwMDBhOTAwNDYwMDcwYjYwMDcwYjgxNTI2MDIwMDE2MDA1NjAxNDkwNTQ5MDYxMDEwMDBhOTAwNDYwZmYxNjE1MTU4MTUyNjAyMDAxODQ4MTUyNjAyMDAxODM4MTUyNTA5MDUwNjAwMDgwNjExMDFlODM2MDA1NjAwMDkwNTQ5MDYxMDEwMDBhOTAwNDY3ZmZmZmZmZmZmZmZmZmZmZjE2NjAwNTYwMTA5MDU0OTA2MTAxMDAwYTkwMDQ2M2ZmZmZmZmZmMTY2MTIxNmY1NjViOTE1MDkxNTA2MDE2NjAwMzBiODIxNDYxMTAzMjU3NjAwMDgwZmQ1YjdmN2JiMTc3MjZkZjFmM2FkZWU4YWEwMGJhOGU4YmM1ZDZmMTgyYWYzYmJmNzc2MDQ2MzljYjdmMDA4ZGQzYjRlZDgxNjA0MDUxNjExMDYxOTE5MDYxM2EzNjU2NWI2MDQwNTE4MDkxMDM5MGExNTA1MDUwNTA1MDUwNTY1YjYwMDA4MDYwNjA2MTEwODE4Njg2ODY2MTIyZWU1NjViODA5MzUwODE5NDUwODI5NTUwNTA1MDUwN2Y5MGE1Y2Y0Y2ZmZTg4YjRlZGJiMDQxY2ZjN2E4YTgxMmM0OGE1ZWMzMGI4NDY0MGZiMzc2OTA4NzUxNjhlM2FhODM2MDQwNTE2MTEwYmM5MTkwNjEzYjJkNTY1YjYwNDA1MTgwOTEwMzkwYTE2MDE2NjAwMzBiODMxNDYxMTBkNDU3NjAwMDgwZmQ1YjdmZWZmMjM5OTJmNDdiM2MxMDE2NzlmOGI0ZGM5ZDNlMjQyYzkwMzkwOWRiYTRhNDUzZjJiMjM0MWFkNDYzYjBlMjgyODI2MDQwNTE2MTExMDU5MjkxOTA2MTNjZDA1NjViNjA0MDUxODA5MTAzOTBhMTkzNTA5MzUwOTM5MDUwNTY1YjYwMDA2MDAxNjdmZmZmZmZmZmZmZmZmZmZmODExMTE1NjExMTMzNTc2MTExMzI2MTQxOTI1NjViNWI2MDQwNTE5MDgwODI1MjgwNjAyMDAyNjAyMDAxODIwMTYwNDA1MjgwMTU2MTExNmM1NzgxNjAyMDAxNWI2MTExNTk2MTJiMDA1NjViODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjExMTUxNTc5MDUwNWI1MDkwNTA2MTExOGM2MDAwODA2MDAwNjA0MDUxODA2MDIwMDE2MDQwNTI4MDYwMDA4MTUyNTA2MTFkNTA1NjViODE2MDAwODE1MTgxMTA2MTExYTA1NzYxMTE5ZjYxNDE2MzU2NWI1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA2MDAwNjA0MDUxODA2MDYwMDE2MDQwNTI4MDYwMDA2M2ZmZmZmZmZmMTY4MTUyNjAyMDAxODU3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjgxNTI2MDIwMDE2MjdhMTIwMDYzZmZmZmZmZmYxNjgxNTI1MDkwNTA2MDAwNjA0MDUxODA2MTAxMjAwMTYwNDA1MjgwNjAwMjgwNTQ2MTEyMGI5MDYxNDBhMjU2NWI4MDYwMWYwMTYwMjA4MDkxMDQwMjYwMjAwMTYwNDA1MTkwODEwMTYwNDA1MjgwOTI5MTkwODE4MTUyNjAyMDAxODI4MDU0NjExMjM3OTA2MTQwYTI1NjViODAxNTYxMTI4NDU3ODA2MDFmMTA2MTEyNTk1NzYxMDEwMDgwODM1NDA0MDI4MzUyOTE2MDIwMDE5MTYxMTI4NDU2NWI4MjAxOTE5MDYwMDA1MjYwMjA2MDAwMjA5MDViODE1NDgxNTI5MDYwMDEwMTkwNjAyMDAxODA4MzExNjExMjY3NTc4MjkwMDM2MDFmMTY4MjAxOTE1YjUwNTA1MDUwNTA4MTUyNjAyMDAxNjAwMzgwNTQ2MTEyOWI5MDYxNDBhMjU2NWI4MDYwMWYwMTYwMjA4MDkxMDQwMjYwMjAwMTYwNDA1MTkwODEwMTYwNDA1MjgwOTI5MTkwODE4MTUyNjAyMDAxODI4MDU0NjExMmM3OTA2MTQwYTI1NjViODAxNTYxMTMxNDU3ODA2MDFmMTA2MTEyZTk1NzYxMDEwMDgwODM1NDA0MDI4MzUyOTE2MDIwMDE5MTYxMTMxNDU2NWI4MjAxOTE5MDYwMDA1MjYwMjA2MDAwMjA5MDViODE1NDgxNTI5MDYwMDEwMTkwNjAyMDAxODA4MzExNjExMmY3NTc4MjkwMDM2MDFmMTY4MjAxOTE1YjUwNTA1MDUwNTA4MTUyNjAyMDAxODY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjgxNTI2MDIwMDE=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwBQU3otp9ni0pLF6PFCriAdTzFwcAp/BR2q2dg23PE0CZ1ElW0nodz3kRaaDet2+BGgsI/5m0rgYQzvvhDCIPCgkIwpm0rgYQoQwSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjDmbSuBhCnDBICGAISAhgDGPfR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxjgCCKAIDYwMDQ4MDU0NjExMzQ3OTA2MTQwYTI1NjViODA2MDFmMDE2MDIwODA5MTA0MDI2MDIwMDE2MDQwNTE5MDgxMDE2MDQwNTI4MDkyOTE5MDgxODE1MjYwMjAwMTgyODA1NDYxMTM3MzkwNjE0MGEyNTY1YjgwMTU2MTEzYzA1NzgwNjAxZjEwNjExMzk1NTc2MTAxMDA4MDgzNTQwNDAyODM1MjkxNjAyMDAxOTE2MTEzYzA1NjViODIwMTkxOTA2MDAwNTI2MDIwNjAwMDIwOTA1YjgxNTQ4MTUyOTA2MDAxMDE5MDYwMjAwMTgwODMxMTYxMTNhMzU3ODI5MDAzNjAxZjE2ODIwMTkxNWI1MDUwNTA1MDUwODE1MjYwMjAwMTYwMDExNTE1ODE1MjYwMjAwMTYwMDU2MDA4OTA1NDkwNjEwMTAwMGE5MDA0NjAwNzBiNjAwNzBiODE1MjYwMjAwMTYwMDAxNTE1ODE1MjYwMjAwMTg0ODE1MjYwMjAwMTgzODE1MjUwOTA1MDYwMDA2MDAxNjdmZmZmZmZmZmZmZmZmZmZmODExMTE1NjExNDFkNTc2MTE0MWM2MTQxOTI1NjViNWI2MDQwNTE5MDgwODI1MjgwNjAyMDAyNjAyMDAxODIwMTYwNDA1MjgwMTU2MTE0NTY1NzgxNjAyMDAxNWI2MTE0NDM2MTJiMjA1NjViODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjExNDNiNTc5MDUwNWI1MDkwNTA2MDQwNTE4MDYwYTAwMTYwNDA1MjgwNjAwMTYzZmZmZmZmZmYxNjgxNTI2MDIwMDE4NjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ODE1MjYwMjAwMTYwMDAxNTE1ODE1MjYwMjAwMTYwMDAxNTE1ODE1MjYwMjAwMTg3NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4MTUyNTA4MTYwMDA4MTUxODExMDYxMTRjZDU3NjExNGNjNjE0MTYzNTY1YjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDYwMDA2MDAxNjdmZmZmZmZmZmZmZmZmZmZmODExMTE1NjExNGY1NTc2MTE0ZjQ2MTQxOTI1NjViNWI2MDQwNTE5MDgwODI1MjgwNjAyMDAyNjAyMDAxODIwMTYwNDA1MjgwMTU2MTE1MmU1NzgxNjAyMDAxNWI2MTE1MWI2MTJiZmI1NjViODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjExNTEzNTc5MDUwNWI1MDkwNTA2MDQwNTE4MDYwYzAwMTYwNDA1MjgwNjAwNDYzZmZmZmZmZmYxNjgxNTI2MDIwMDE2MDA1NjNmZmZmZmZmZjE2ODE1MjYwMjAwMTYwMGE2M2ZmZmZmZmZmMTY4MTUyNjAyMDAxNjAxZTYzZmZmZmZmZmYxNjgxNTI2MDIwMDE2MDAwMTUxNTgxNTI2MDIwMDE4ODczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ODE1MjUwODE2MDAwODE1MTgxMTA2MTE1YTc1NzYxMTVhNjYxNDE2MzU2NWI1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA2MDAwODA2MTE1ZWE4NTYwMDU2MDAwOTA1NDkwNjEwMTAwMGE5MDA0NjdmZmZmZmZmZmZmZmZmZmZmMTY2MDA1NjAxMDkwNTQ5MDYxMDEwMDBhOTAwNDYzZmZmZmZmZmYxNjg3ODc2MTI0NjY1NjViOTE1MDkxNTA3ZjkwYTVjZjRjZmZlODhiNGVkYmIwNDFjZmM3YThhODEyYzQ4YTVlYzMwYjg0NjQwZmIzNzY5MDg3NTE2OGUzYWE4MjYwNDA1MTYxMTYxZDkxOTA2MTNiMmQ1NjViNjA0MDUxODA5MTAzOTBhMTYwMTY2MDAzMGI4MjE0NjExNjM1NTc2MDAwODBmZDViN2Y3YmIxNzcyNmRmMWYzYWRlZThhYTAwYmE4ZThiYzVkNmYxODJhZjNiYmY3NzYwNDYzOWNiN2YwMDhkZDNiNGVkODE2MDQwNTE2MTE2NjQ5MTkwNjEzYTM2NTY1YjYwNDA1MTgwOTEwMzkwYTE1MDUwNTA1MDUwNTA1MDUwNTA1NjViNjAwMDgwNjAwMDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjM5YjIzZDNkOTYwZTAxYjg4ODg4ODg4NjA0MDUxNjAyNDAxNjExNmI0OTQ5MzkyOTE5MDYxM2E3YTU2NWI2MDQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI5MDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTE3MWU5MTkwNjEzYTFmNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NjVhZjE5MTUwNTAzZDgwNjAwMDgxMTQ2MTE3NWI1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTE3NjA1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA4MTYxMTc3MTU3NjAxNTYxMTc4NjU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMTc4NTkxOTA2MTMxNTg1NjViNWI2MDAzMGI5MjUwNTA1MDk0OTM1MDUwNTA1MDU2NWI2MDAwNjAwNTY3ZmZmZmZmZmZmZmZmZmZmZjgxMTExNTYxMTdiMjU3NjExN2IxNjE0MTkyNTY1YjViNjA0MDUxOTA4MDgyNTI4MDYwMjAwMjYwMjAwMTgyMDE2MDQwNTI4MDE1NjExN2ViNTc4MTYwMjAwMTViNjExN2Q4NjEyYjAwNTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMTdkMDU3OTA1MDViNTA5MDUwNjExODBjNjAwMDYwMDY2MDAwNjA0MDUxODA2MDIwMDE2MDQwNTI4MDYwMDA4MTUyNTA2MTFkNTA1NjViODE2MDAwODE1MTgxMTA2MTE4MjA1NzYxMTgxZjYxNDE2MzU2NWI1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA2MTE4NDc2MDAxNjAwMDYwNDA1MTgwNjAyMDAxNjA0MDUyODA2MDAwODE1MjUwNjExZDg5NTY1YjgxNjAwMTgxNTE4MTEwNjExODViNTc2MTE4NWE2MTQxNjM1NjViNWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNjExODgyNjAwMjYwMDA2MDQwNTE4MDYwMjAwMTYwNDA1MjgwNjAwMDgxNTI1MDYxMWQ4OTU2NWI4MTYwMDI4MTUxODExMDYxMTg5NjU3NjExODk1NjE0MTYzNTY1YjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDYxMThiZDYwMDQ2MDAwNjA0MDUxODA2MDIwMDE2MDQwNTI4MDYwMDA4MTUyNTA2MTFkODk1NjViODE2MDAzODE1MTgxMTA2MTE4ZDE1NzYxMThkMDYxNDE2MzU2NWI1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA2MTE4Zjg2MDAzNjAwMDYwNDA1MTgwNjAyMDAxNjA0MDUyODA2MDAwODE1MjUwNjExZDg5NTY1YjgxNjAwNDgxNTE4MTEwNjExOTBjNTc2MTE5MGI2MTQxNjM1NjViNWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNjAwMDYwNDA1MTgwNjA2MDAxNjA0MDUyODA2MDAwNjNmZmZmZmZmZjE2ODE1MjYwMjAwMTg0NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4MTUyNjAyMDAxNjI3YTEyMDA2M2ZmZmZmZmZmMTY4MTUyNTA5MDUwNjAwMDYwNDA1MTgwNjEwMTIwMDE2MDQwNTI4MDYwMDI4MDU0NjExOTc3OTA2MTQwYTI1NjViODA2MDFmMDE2MDIwODA5MTA0MDI2MDIwMDE2MDQwNTE5MDgxMDE2MDQwNTI4MDkyOTE5MDgxODE1MjYwMjAwMTgyODA1NDYxMTlhMzkwNjE0MGEyNTY1YjgwMTU2MTE5ZjA1NzgwNjAxZjEwNjExOWM1NTc2MTAxMDA4MDgzNTQwNDAyODM1MjkxNjAyMDAxOTE2MTE5ZjA1NjViODIwMTkxOTA2MDAwNTI2MDIwNjAwMDIwOTA1YjgxNTQ4MTUyOTA2MDAxMDE5MDYwMjAwMTgwODMxMTYxMTlkMzU3ODI5MDAzNjAxZjE2ODIwMTkxNWI1MDUwNTA1MDUwODE1MjYwMjAwMTYwMDM4MDU0NjExYTA3OTA2MTQwYTI1NjViODA2MDFmMDE2MDIwODA5MTA0MDI2MDIwMDE2MDQwNTE5MDgxMDE2MDQwNTI4MDkyOTE5MDgxODE1MjYwMjAwMTgyODA1NDYxMWEzMzkwNjE0MGEyNTY1YjgwMTU2MTFhODA1NzgwNjAxZjEwNjExYTU1NTc2MTAxMDA4MDgzNTQwNDAyODM1MjkxNjAyMDAxOTE2MTFhODA1NjViODIwMTkxOTA2MDAwNTI2MDIwNjAwMDIwOTA1YjgxNTQ4MTUyOTA2MDAxMDE5MDYwMjAwMTgwODMxMTYxMWE2MzU3ODI5MDAzNjAxZjE2ODIwMTkxNWI1MDUwNTA1MDUwODE1MjYwMjAwMTg1NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4MTUyNjAyMDAxNjAwNDgwNTQ2MTFhYjM5MDYxNDBhMjU2NWI4MDYwMWYwMTYwMjA4MDkxMDQwMjYwMjAwMTYwNDA1MTkwODEwMTYwNDA1MjgwOTI5MTkwODE4MTUyNjAyMDAxODI4MDU0NjExYWRmOTA2MTQwYTI1NjViODAxNTYxMWIyYzU3ODA2MDFmMTA2MTFiMDE1NzYxMDEwMDgwODM1NDA0MDI4MzUyOTE2MDIwMDE5MTYxMWIyYzU2NWI4MjAxOTE5MDYwMDA1MjYwMjA2MDAwMjA5MDViODE1NDgxNTI5MDYwMDEwMTkwNjAyMDAxODA4MzExNjExYjBmNTc4MjkwMDM2MDFmMTY4MjAxOTE1YjUwNTA1MDUwNTA4MTUyNjAyMDAxNjAwMTE1MTU=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwEAvQFMp4EgyNcLtB5R9S4Q92nXYjIzgEtVqGDdBOX8qX2HazPGGwrb0bsSNXORvxGgwI/5m0rgYQ452VkwIiDwoJCMOZtK4GEKcMEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjEmbSuBhCtDBICGAISAhgDGPbR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxjgCCKAIDgxNTI2MDIwMDE2MDA1NjAwODkwNTQ5MDYxMDEwMDBhOTAwNDYwMDcwYjYwMDcwYjgxNTI2MDIwMDE2MDA1NjAxNDkwNTQ5MDYxMDEwMDBhOTAwNDYwZmYxNjE1MTU4MTUyNjAyMDAxODQ4MTUyNjAyMDAxODM4MTUyNTA5MDUwNjAwMDgwNjExYjg2ODM2MTI1ZWI1NjViOTE1MDkxNTA2MDE2NjAwMzBiODIxNDYxMWI5YTU3NjAwMDgwZmQ1YjdmN2JiMTc3MjZkZjFmM2FkZWU4YWEwMGJhOGU4YmM1ZDZmMTgyYWYzYmJmNzc2MDQ2MzljYjdmMDA4ZGQzYjRlZDgxNjA0MDUxNjExYmM5OTE5MDYxM2EzNjU2NWI2MDQwNTE4MDkxMDM5MGExNTA1MDUwNTA1MDUwNTY1YjYwMDA4MDYwMDA2MTAxNjc3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzMTVkYWNiZWE2MGUwMWI4ODg4ODg4ODYwNDA1MTYwMjQwMTYxMWMxNjk0OTM5MjkxOTA2MTNhN2E1NjViNjA0MDUxNjAyMDgxODMwMzAzODE1MjkwNjA0MDUyOTA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjExYzgwOTE5MDYxM2ExZjU2NWI2MDAwNjA0MDUxODA4MzAzODE4NTVhZjQ5MTUwNTAzZDgwNjAwMDgxMTQ2MTFjYmI1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTFjYzA1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA4MTYxMWNkMTU3NjAxNTYxMWNlNjU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMWNlNTkxOTA2MTMxNTg1NjViNWI2MDAzMGI5MjUwNTA1MDk0OTM1MDUwNTA1MDU2NWI2MDAwNjExZDAxODM4MzYxMjc2MzU2NWI5MDUwN2Y5MGE1Y2Y0Y2ZmZTg4YjRlZGJiMDQxY2ZjN2E4YTgxMmM0OGE1ZWMzMGI4NDY0MGZiMzc2OTA4NzUxNjhlM2FhODE2MDQwNTE2MTFkMzI5MTkwNjEzYjJkNTY1YjYwNDA1MTgwOTEwMzkwYTE2MDE2NjAwMzBiODExNDYxMWQ0YTU3NjAwMDgwZmQ1YjkyOTE1MDUwNTY1YjYxMWQ1ODYxMmIwMDU2NWI2MDQwNTE4MDYwNDAwMTYwNDA1MjgwNjExZDZkODc4NzYxMjg3YjU2NWI4MTUyNjAyMDAxNjExZDdjODU4NTYxMjhkMTU2NWI4MTUyNTA5MDUwOTQ5MzUwNTA1MDUwNTY1YjYxMWQ5MTYxMmIwMDU2NWI2MDQwNTE4MDYwNDAwMTYwNDA1MjgwNjExZGE1ODY2MTJhYWI1NjViODE1MjYwMjAwMTYxMWRiNDg1ODU2MTI4ZDE1NjViODE1MjUwOTA1MDkzOTI1MDUwNTA1NjViNjAwMDgwODQ2MDAwODE2MTAxMDAwMTUxNjAwMDAxNTE2M2ZmZmZmZmZmMTYxNDgwMTU2MTFkZjI1NzUwNjAwMDgxNjEwMTAwMDE1MTYwNDAwMTUxNjNmZmZmZmZmZjE2MTQ1YjE1NjExZTE4NTc2Mjc2YTcwMDgxNjEwMTAwMDE1MTYwNDAwMTkwNjNmZmZmZmZmZjE2OTA4MTYzZmZmZmZmZmYxNjgxNTI1MDUwNWI2MDAwODA2MTAxNjc3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjM0NjM0NTczMzk2OTYwZTAxYjhhOGE4YTYwNDA1MTYwMjQwMTYxMWU1MjkzOTI5MTkwNjEzYmRlNTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMWViYzkxOTA2MTNhMWY1NjViNjAwMDYwNDA1MTgwODMwMzgxODU4NzVhZjE5MjUwNTA1MDNkODA2MDAwODExNDYxMWVmOTU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMWVmZTU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjExZjExNTc2MDE1NjAwMDYxMWYyNjU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMWYyNTkxOTA2MTMxODU1NjViNWI4MTYwMDMwYjkxNTA4MDk1NTA4MTk2NTA1MDUwNTA1MDUwOTM1MDkzOTE1MDUwNTY1YjYwMDA4MDYwMDA2MTAxNjc3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzOGY4ZDdmOTk2MGUwMWI4Njg2NjA0MDUxNjAyNDAxNjExZjc4OTI5MTkwNjEzYTUxNTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMWZlMjkxOTA2MTNhMWY1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMjAxZjU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMjAyNDU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEyMDM1NTc2MDE1NjEyMDRhNTY1YjgwODA2MDIwMDE5MDUxODEwMTkwNjEyMDQ5OTE5MDYxMzE1ODU2NWI1YjYwMDMwYjkyNTA1MDUwOTI5MTUwNTA1NjViNjAwMDgwNjAwMDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjMyZTYzODc5YjYwZTAxYjg2ODY2MDQwNTE2MDI0MDE2MTIwOTA5MjkxOTA2MTNhYmY1NjViNjA0MDUxNjAyMDgxODMwMzAzODE1MjkwNjA0MDUyOTA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjEyMGZhOTE5MDYxM2ExZjU2NWI2MDAwNjA0MDUxODA4MzAzODE2MDAwODY1YWYxOTE1MDUwM2Q4MDYwMDA4MTE0NjEyMTM3NTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjEyMTNjNTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTIxNGQ1NzYwMTU2MTIxNjI1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTIxNjE5MTkwNjEzMTU4NTY1YjViNjAwMzBiOTI1MDUwNTA5MjkxNTA1MDU2NWI2MDAwODA4NDYwMDA4MTYxMDEwMDAxNTE2MDAwMDE1MTYzZmZmZmZmZmYxNjE0ODAxNTYxMjFhMTU3NTA2MDAwODE2MTAxMDAwMTUxNjA0MDAxNTE2M2ZmZmZmZmZmMTYxNDViMTU2MTIxYzc1NzYyNzZhNzAwODE2MTAxMDAwMTUxNjA0MDAxOTA2M2ZmZmZmZmZmMTY5MDgxNjNmZmZmZmZmZjE2ODE1MjUwNTA1YjYwMDA4MDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2MzQ2M2MyM2JhZWI2NjBlMDFiOGE4YThhNjA0MDUxNjAyNDAxNjEyMjAxOTM5MjkxOTA2MTNjMmE1NjViNjA0MDUxNjAyMDgxODMwMzAzODE1MjkwNjA0MDUyOTA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjEyMjZiOTE5MDYxM2ExZjU2NWI2MDAwNjA0MDUxODA4MzAzODE4NTg3NWFmMTkyNTA1MDUwM2Q4MDYwMDA4MTE0NjEyMmE4NTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjEyMmFkNTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTIyYzA1NzYwMTU2MDAwNjEyMmQ1NTY1YjgwODA2MDIwMDE5MDUxODEwMTkwNjEyMmQ0OTE5MDYxMzE4NTU2NWI1YjgxNjAwMzBiOTE1MDgwOTU1MDgxOTY1MDUwNTA1MDUwNTA5MzUwOTM5MTUwNTA1NjViNjAwMDgwNjA2MDYwMDA4MDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjMyNzhlMGI4ODYwZTAxYjg5ODk4OTYwNDA1MTYwMjQwMTYxMjMyYzkzOTI5MTkwNjEzYWVmNTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwsSbSPR7taPjPzjGqGTtZHa8M+ChfAYlm/4QjCerxLJIWhYjWtihqn5S27pHj55vTGgsIgJq0rgYQz66lKSIPCgkIxJm0rgYQrQwSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjEmbSuBhCzDBICGAISAhgDGPbR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxjgCCKAIDUyOTA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjEyMzk2OTE5MDYxM2ExZjU2NWI2MDAwNjA0MDUxODA4MzAzODE2MDAwODY1YWYxOTE1MDUwM2Q4MDYwMDA4MTE0NjEyM2QzNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjEyM2Q4NTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTI0MzQ1NzYwMTU2MDAwODA2N2ZmZmZmZmZmZmZmZmZmZmY4MTExMTU2MTI0MDA1NzYxMjNmZjYxNDE5MjU2NWI1YjYwNDA1MTkwODA4MjUyODA2MDIwMDI2MDIwMDE4MjAxNjA0MDUyODAxNTYxMjQyZTU3ODE2MDIwMDE2MDIwODIwMjgwMzY4MzM3ODA4MjAxOTE1MDUwOTA1MDViNTA2MTI0NDk1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTI0NDg5MTkwNjEzMWM1NTY1YjViODI2MDAzMGI5MjUwODA5NTUwODE5NjUwODI5NzUwNTA1MDUwNTA1MDkzNTA5MzUwOTM5MDUwNTY1YjYwMDA4MDg2NjAwMDgxNjEwMTAwMDE1MTYwMDAwMTUxNjNmZmZmZmZmZjE2MTQ4MDE1NjEyNDk4NTc1MDYwMDA4MTYxMDEwMDAxNTE2MDQwMDE1MTYzZmZmZmZmZmYxNjE0NWIxNTYxMjRiZTU3NjI3NmE3MDA4MTYxMDEwMDAxNTE2MDQwMDE5MDYzZmZmZmZmZmYxNjkwODE2M2ZmZmZmZmZmMTY4MTUyNTA1MDViNjAwMDgwNjEwMTY3NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTYzNDYzYjkzNzU4MWE2MGUwMWI4YzhjOGM4YzhjNjA0MDUxNjAyNDAxNjEyNGZjOTU5NDkzOTI5MTkwNjEzYzY4NTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMjU2NjkxOTA2MTNhMWY1NjViNjAwMDYwNDA1MTgwODMwMzgxODU4NzVhZjE5MjUwNTA1MDNkODA2MDAwODExNDYxMjVhMzU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMjVhODU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEyNWJiNTc2MDE1NjAwMDYxMjVkMDU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMjVjZjkxOTA2MTMxODU1NjViNWI4MTYwMDMwYjkxNTA4MDk1NTA4MTk2NTA1MDUwNTA1MDUwOTU1MDk1OTM1MDUwNTA1MDU2NWI2MDAwODA4MjYwMDA4MTYxMDEwMDAxNTE2MDAwMDE1MTYzZmZmZmZmZmYxNjE0ODAxNTYxMjYxZDU3NTA2MDAwODE2MTAxMDAwMTUxNjA0MDAxNTE2M2ZmZmZmZmZmMTYxNDViMTU2MTI2NDM1NzYyNzZhNzAwODE2MTAxMDAwMTUxNjA0MDAxOTA2M2ZmZmZmZmZmMTY5MDgxNjNmZmZmZmZmZjE2ODE1MjUwNTA1YjYwMDA4MDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2MzQ2MzljODliYjM1NjBlMDFiODg2MDQwNTE2MDI0MDE2MTI2Nzk5MTkwNjEzYmJjNTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMjZlMzkxOTA2MTNhMWY1NjViNjAwMDYwNDA1MTgwODMwMzgxODU4NzVhZjE5MjUwNTA1MDNkODA2MDAwODExNDYxMjcyMDU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMjcyNTU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEyNzM4NTc2MDE1NjAwMDYxMjc0ZDU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMjc0YzkxOTA2MTMxODU1NjViNWI4MTYwMDMwYjkxNTA4MDk1NTA4MTk2NTA1MDUwNTA1MDUwOTE1MDkxNTY1YjYwMDA4MDYwMDA2MTAxNjc3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzNDkxNDZiZGU2MGUwMWI4Njg2NjA0MDUxNjAyNDAxNjEyNzljOTI5MTkwNjEzYTUxNTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMjgwNjkxOTA2MTNhMWY1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMjg0MzU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMjg0ODU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEyODU5NTc2MDE1NjEyODZlNTY1YjgwODA2MDIwMDE5MDUxODEwMTkwNjEyODZkOTE5MDYxMzE1ODU2NWI1YjYwMDMwYjkyNTA1MDUwOTI5MTUwNTA1NjViNjAwMDYxMjhhMjgzNjAwNjgxMTExNTYxMjg5MzU3NjEyODkyNjE0MTA1NTY1YjViODI2MTJhZWM5MDkxOTA2M2ZmZmZmZmZmMTY1NjViOTA1MDYxMjhjOTgyNjAwNjgxMTExNTYxMjhiYTU3NjEyOGI5NjE0MTA1NTY1YjViODI2MTJhZWM5MDkxOTA2M2ZmZmZmZmZmMTY1NjViOTA1MDkyOTE1MDUwNTY1YjYxMjhkOTYxMmM2MTU2NWI2MDAwNjAwNDgxMTExNTYxMjhlZDU3NjEyOGVjNjE0MTA1NTY1YjViODM2MDA0ODExMTE1NjEyOTAwNTc2MTI4ZmY2MTQxMDU1NjViNWIxNDE1NjEyOTFjNTc2MDAxODE2MDAwMDE5MDE1MTU5MDgxMTUxNTgxNTI1MDUwNjEyYWE1NTY1YjYwMDE2MDA0ODExMTE1NjEyOTMwNTc2MTI5MmY2MTQxMDU1NjViNWI4MzYwMDQ4MTExMTU2MTI5NDM1NzYxMjk0MjYxNDEwNTU2NWI1YjE0MTU2MTI5YTY1NzYwMDA4MDU0OTA2MTAxMDAwYTkwMDQ3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjgxNjAyMDAxOTA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjkwODE3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjgxNTI1MDUwNjEyYWE0NTY1YjYwMDI2MDA0ODExMTE1NjEyOWJhNTc2MTI5Yjk2MTQxMDU1NjViNWI4MzYwMDQ4MTExMTU2MTI5Y2Q1NzYxMjljYzYxNDEwNTU2NWI1YjE0MTU2MTI5ZTE1NzgxODE2MDQwMDE4MTkwNTI1MDYxMmFhMzU2NWI2MDAzNjAwNDgxMTExNTYxMjlmNTU3NjEyOWY0NjE0MTA1NTY1YjViODM2MDA0ODExMTE1NjEyYTA4NTc2MTJhMDc2MTQxMDU1NjViNWIxNDE1NjEyYTFjNTc4MTgxNjA2MDAxODE5MDUyNTA2MTJhYTI1NjViNjAwNDgwODExMTE1NjEyYTJmNTc2MTJhMmU2MTQxMDU1NjViNWI4MzYwMDQ4MTExMTU2MTJhNDI1NzYxMmE0MTYxNDEwNTU2NWI1YjE0MTU2MTJhYTE1NzYwMDA4MDU0OTA2MTAxMDAwYTkwMDQ3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjgxNjA4MDAxOTA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjkwODE3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjgxNTI1MDUwNWI1YjViNWI1YjkyOTE1MDUwNTY1YjYwMDA2MDAxNjAwMDgzNjAwNjgxMTExNTYxMmFjNDU3NjEyYWMzNjE0MTA1NTY1YjViNjAwNjgxMTExNTYxMmFkNjU3NjEyYWQ1NjE0MTA1NTY1YjViODE1MjYwMjAwMTkwODE1MjYwMjAwMTYwMDAyMDU0OTA1MDkxOTA1MDU2NWI2MDAwODE2MGZmMTY2MDAxOTAxYjgzMTc5MDUwOTI5MTUwNTA1NjViNjA0MDUxODA2MDQwMDE2MDQwNTI4MDYwMDA4MTUyNjAyMDAxNjEyYjFhNjEyYzYxNTY1YjgxNTI1MDkwNTY1YjYwNDA1MTgwNjBhMDAxNjA0MDUyODA2MDAwNjNmZmZmZmZmZjE2ODE1MjYwMjAwMTYwMDA=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwfp3sLibptLFyEPp4hkXc9nt76IOQ2LUNrRVekLXu6XFo+TUAtuGH0jr4Yy3F1j8aGgwIgJq0rgYQs6GonAIiDwoJCMSZtK4GELMMEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjFmbSuBhC5DBICGAISAhgDGPbR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxjgCCKAIDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ODE1MjYwMjAwMTYwMDAxNTE1ODE1MjYwMjAwMTYwMDAxNTE1ODE1MjYwMjAwMTYwMDA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjgxNTI1MDkwNTY1YjYwNDA1MTgwNjBjMDAxNjA0MDUyODA2MDAwNjNmZmZmZmZmZjE2ODE1MjYwMjAwMTYwMDA2M2ZmZmZmZmZmMTY4MTUyNjAyMDAxNjAwMDYzZmZmZmZmZmYxNjgxNTI2MDIwMDE2MDAwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4MTUyNjAyMDAxNjAwMDE1MTU4MTUyNjAyMDAxNjAwMDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ODE1MjUwOTA1NjViNjA0MDUxODA2MGMwMDE2MDQwNTI4MDYwMDA2M2ZmZmZmZmZmMTY4MTUyNjAyMDAxNjAwMDYzZmZmZmZmZmYxNjgxNTI2MDIwMDE2MDAwNjNmZmZmZmZmZjE2ODE1MjYwMjAwMTYwMDA2M2ZmZmZmZmZmMTY4MTUyNjAyMDAxNjAwMDE1MTU4MTUyNjAyMDAxNjAwMDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ODE1MjUwOTA1NjViNjA0MDUxODA2MGEwMDE2MDQwNTI4MDYwMDAxNTE1ODE1MjYwMjAwMTYwMDA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjgxNTI2MDIwMDE2MDYwODE1MjYwMjAwMTYwNjA4MTUyNjAyMDAxNjAwMDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ODE1MjUwOTA1NjViNjAwMDYxMmNkMTYxMmNjYzg0NjEzZDI1NTY1YjYxM2QwMDU2NWI5MDUwODA4MzgyNTI2MDIwODIwMTkwNTA4Mjg1NjAyMDg2MDI4MjAxMTExNTYxMmNmNDU3NjEyY2YzNjE0MWM2NTY1YjViNjAwMDViODU4MTEwMTU2MTJkMjQ1NzgxNjEyZDBhODg4MjYxMmU2ZTU2NWI4NDUyNjAyMDg0MDE5MzUwNjAyMDgzMDE5MjUwNTA2MDAxODEwMTkwNTA2MTJjZjc1NjViNTA1MDUwOTM5MjUwNTA1MDU2NWI2MDAwNjEyZDQxNjEyZDNjODQ2MTNkNTE1NjViNjEzZDAwNTY1YjkwNTA4MDgzODI1MjYwMjA4MjAxOTA1MDgyODU2MDIwODYwMjgyMDExMTE1NjEyZDY0NTc2MTJkNjM2MTQxYzY1NjViNWI2MDAwNWI4NTgxMTAxNTYxMmRiMjU3ODEzNTY3ZmZmZmZmZmZmZmZmZmZmZjgxMTExNTYxMmQ4YTU3NjEyZDg5NjE0MWMxNTY1YjViODA4NjAxNjEyZDk3ODk4MjYxMmYyMjU2NWI4NTUyNjAyMDg1MDE5NDUwNjAyMDg0MDE5MzUwNTA1MDYwMDE4MTAxOTA1MDYxMmQ2NzU2NWI1MDUwNTA5MzkyNTA1MDUwNTY1YjYwMDA2MTJkY2Y2MTJkY2E4NDYxM2Q3ZDU2NWI2MTNkMDA1NjViOTA1MDgwODM4MjUyNjAyMDgyMDE5MDUwODI4NTYwMjA4NjAyODIwMTExMTU2MTJkZjI1NzYxMmRmMTYxNDFjNjU2NWI1YjYwMDA1Yjg1ODExMDE1NjEyZTIyNTc4MTYxMmUwODg4ODI2MTJmNjU1NjViODQ1MjYwMjA4NDAxOTM1MDYwMjA4MzAxOTI1MDUwNjAwMTgxMDE5MDUwNjEyZGY1NTY1YjUwNTA1MDkzOTI1MDUwNTA1NjViNjAwMDYxMmUzZjYxMmUzYTg0NjEzZGE5NTY1YjYxM2QwMDU2NWI5MDUwODI4MTUyNjAyMDgxMDE4NDg0ODQwMTExMTU2MTJlNWI1NzYxMmU1YTYxNDFjYjU2NWI1YjYxMmU2Njg0ODI4NTYxNDA2MDU2NWI1MDkzOTI1MDUwNTA1NjViNjAwMDgxMzU5MDUwNjEyZTdkODE2MTQxZWI1NjViOTI5MTUwNTA1NjViNjAwMDgxNTE5MDUwNjEyZTkyODE2MTQyMDI1NjViOTI5MTUwNTA1NjViNjAwMDgyNjAxZjgzMDExMjYxMmVhZDU3NjEyZWFjNjE0MWMxNTY1YjViODEzNTYxMmViZDg0ODI2MDIwODYwMTYxMmNiZTU2NWI5MTUwNTA5MjkxNTA1MDU2NWI2MDAwODI2MDFmODMwMTEyNjEyZWRiNTc2MTJlZGE2MTQxYzE1NjViNWI4MTM1NjEyZWViODQ4MjYwMjA4NjAxNjEyZDJlNTY1YjkxNTA1MDkyOTE1MDUwNTY1YjYwMDA4MjYwMWY4MzAxMTI2MTJmMDk1NzYxMmYwODYxNDFjMTU2NWI1YjgxNTE2MTJmMTk4NDgyNjAyMDg2MDE2MTJkYmM1NjViOTE1MDUwOTI5MTUwNTA1NjViNjAwMDgyNjAxZjgzMDExMjYxMmYzNzU3NjEyZjM2NjE0MWMxNTY1YjViODEzNTYxMmY0Nzg0ODI2MDIwODYwMTYxMmUyYzU2NWI5MTUwNTA5MjkxNTA1MDU2NWI2MDAwODE1MTkwNTA2MTJmNWY4MTYxNDIxOTU2NWI5MjkxNTA1MDU2NWI2MDAwODE1MTkwNTA2MTJmNzQ4MTYxNDIzMDU2NWI5MjkxNTA1MDU2NWI2MDAwODEzNTkwNTA2MTJmODk4MTYxNDI0NzU2NWI5MjkxNTA1MDU2NWI2MDAwODEzNTkwNTA2MTJmOWU4MTYxNDI1ZTU2NWI5MjkxNTA1MDU2NWI2MDAwODE1MTkwNTA2MTJmYjM4MTYxNDI1ZTU2NWI5MjkxNTA1MDU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTJmY2Y1NzYxMmZjZTYxNDFkNTU2NWI1YjYwMDA2MTJmZGQ4NDgyODUwMTYxMmU2ZTU2NWI5MTUwNTA5MjkxNTA1MDU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMmZmZDU3NjEyZmZjNjE0MWQ1NTY1YjViNjAwMDYxMzAwYjg1ODI4NjAxNjEyZTZlNTY1YjkyNTA1MDYwMjA2MTMwMWM4NTgyODYwMTYxMmU2ZTU2NWI5MTUwNTA5MjUwOTI5MDUwNTY1YjYwMDA4MDYwMDA4MDYwODA4NTg3MDMxMjE1NjEzMDQwNTc2MTMwM2Y2MTQxZDU1NjViNWI2MDAwNjEzMDRlODc4Mjg4MDE2MTJlNmU1NjViOTQ1MDUwNjAyMDYxMzA1Zjg3ODI4ODAxNjEyZTZlNTY1YjkzNTA1MDYwNDA2MTMwNzA4NzgyODgwMTYxMmU2ZTU2NWI5MjUwNTA2MDYwNjEzMDgxODc4Mjg4MDE2MTJmN2E1NjViOTE1MDUwOTI5NTkxOTQ1MDkyNTA1NjViNjAwMDgwNjA0MDgzODUwMzEyMTU2MTMwYTQ1NzYxMzBhMzYxNDFkNTU2NWI1YjYwMDA2MTMwYjI4NTgyODYwMTYxMmU2ZTU2NWI5MjUwNTA2MDIwODMwMTM1NjdmZmZmZmZmZmZmZmZmZmZmODExMTE1NjEzMGQzNTc2MTMwZDI2MTQxZDA1NjViNWI2MTMwZGY4NTgyODYwMTYxMmU5ODU2NWI5MTUwNTA5MjUwOTI5MDUwNTY1YjYwMDA4MDYwMDA2MDYwODQ4NjAzMTIxNTYxMzEwMjU3NjEzMTAxNjE0MWQ1NTY1YjViNjAwMDYxMzExMDg2ODI4NzAxNjEyZTZlNTY1YjkzNTA1MDYwMjA2MTMxMjE4NjgyODcwMTYxMmY4ZjU2NWI5MjUwNTA2MDQwODQwMTM1NjdmZmZmZmZmZmZmZmZmZmZmODExMTE1NjEzMTQyNTc2MTMxNDE2MTQxZDA1NjViNWI2MTMxNGU4NjgyODcwMTYxMmVjNjU2NWI5MTUwNTA5MjUwOTI1MDkyNTY1YjYwMDA2MDIwODI4NDAzMTIxNTYxMzE2ZTU3NjEzMTZkNjE0MWQ1NTY1YjViNjAwMDYxMzE3Yzg0ODI4NTAxNjEyZjUwNTY1YjkxNTA1MDkyOTE1MDUwNTY1YjYwMDA4MDYwNDA4Mzg1MDMxMjE1NjEzMTljNTc2MTMxOWI2MTQxZDU1NjViNWI2MDAwNjEzMWFhODU4Mjg2MDE2MTJmNTA1NjViOTI1MDUwNjAyMDYxMzFiYjg1ODI4NjAxNjEyZTgzNTY1YjkxNTA1MDkyNTA5MjkwNTA1NjViNjAwMDgwNjAwMDYwNjA4NDg2MDMxMjE1NjEzMWRlNTc2MTMxZGQ2MTQxZDU1NjViNWI2MDAwNjEzMWVjODY4Mjg3MDE2MTJmNTA1NjViOTM1MDUwNjAyMDYxMzFmZDg2ODI4NzAxNjEyZmE0NTY1YjkyNTA1MDYwNDA4NDAxNTE2N2ZmZmZmZmZmZmZmZmZmZmY4MTExMTU2MTMyMWU1NzYxMzIxZDYxNDFkMDU2NWI1YjYxMzIyYTg2ODI4NzAxNjEyZWY0NTY1YjkxNTA1MDkyNTA5MjUwOTI1NjViNjAwMDYxMzI0MDgzODM2MTMyZDQ1NjViNjAyMDgzMDE5MDUwOTI5MTUwNTA1NjViNjAwMDYxMzI1ODgzODM2MTM1YzE1NjViOTA1MDkyOTE1MDUwNTY1YjYwMDA2MTMyNmM4MzgzNjEzNjQ5NTY1YjYwMjA4MzAxOTA1MDkyOTE1MDUwNTY1YjYwMDA2MTMyODQ4MzgzNjEzNmUyNTY1YjYwYTA4MzAxOTA1MDkyOTE1MDUwNTY1YjYwMDA2MTMyOWM4MzgzNjEzNzRhNTY1YjYwYzA4MzAxOTA1MDkyOTE1MDUwNTY1YjYwMDA2MTMyYjQ4MzgzNjEzOTFjNTY1YjYwYzA4MzAxOTA1MDkyOTE1MDUwNTY1YjYwMDA2MTMyY2M4MzgzNjEzOTk3NTY1YjkwNTA5MjkxNTA1MDU2NWI2MTMyZGQ4MTYxM2ZhYzU2NWI4MjUyNTA1MDU2NWI2MTMyZWM4MTYxM2ZhYzU2NWI4MjUyNTA1MDU2NWI2MDAwNjEzMmZkODI2MTNlNGE1NjViNjEzMzA3ODE4NTYxM2YwODU2NWI5MzUwNjEzMzEyODM2MTNkZGE1NjViODA2MDAwNWI4MzgxMTAxNTYxMzM0MzU3ODE1MTYxMzMyYTg4ODI2MTMyMzQ1NjViOTc1MDYxMzMzNTgzNjEzZWFkNTY1YjkyNTA1MDYwMDE=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwTsZd6bXjzgNiRXPpzGa2Pud8g7PZUGxPT+ZkrKr/Hxz2XBMHRDTXp5yC+Frr7r8cGgsIgZq0rgYQopjdMiIPCgkIxZm0rgYQuQwSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjFmbSuBhC/DBICGAISAhgDGPbR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxjgCCKAIDgxMDE5MDUwNjEzMzE2NTY1YjUwODU5MzUwNTA1MDUwOTI5MTUwNTA1NjViNjAwMDYxMzM1YjgyNjEzZTU1NTY1YjYxMzM2NTgxODU2MTNmMTk1NjViOTM1MDgzNjAyMDgyMDI4NTAxNjEzMzc3ODU2MTNkZWE1NjViODA2MDAwNWI4NTgxMTAxNTYxMzNiMzU3ODQ4NDAzODk1MjgxNTE2MTMzOTQ4NTgyNjEzMjRjNTY1Yjk0NTA2MTMzOWY4MzYxM2ViYTU2NWI5MjUwNjAyMDhhMDE5OTUwNTA2MDAxODEwMTkwNTA2MTMzN2I1NjViNTA4Mjk3NTA4Nzk1NTA1MDUwNTA1MDUwOTI5MTUwNTA1NjViNjAwMDYxMzNkMDgyNjEzZTYwNTY1YjYxMzNkYTgxODU2MTNmMmE1NjViOTM1MDYxMzNlNTgzNjEzZGZhNTY1YjgwNjAwMDViODM4MTEwMTU2MTM0MTY1NzgxNTE2MTMzZmQ4ODgyNjEzMjYwNTY1Yjk3NTA2MTM0MDg4MzYxM2VjNzU2NWI5MjUwNTA2MDAxODEwMTkwNTA2MTMzZTk1NjViNTA4NTkzNTA1MDUwNTA5MjkxNTA1MDU2NWI2MDAwNjEzNDJlODI2MTNlNmI1NjViNjEzNDM4ODE4NTYxM2YzYjU2NWI5MzUwNjEzNDQzODM2MTNlMGE1NjViODA2MDAwNWI4MzgxMTAxNTYxMzQ3NDU3ODE1MTYxMzQ1Yjg4ODI2MTMyNzg1NjViOTc1MDYxMzQ2NjgzNjEzZWQ0NTY1YjkyNTA1MDYwMDE4MTAxOTA1MDYxMzQ0NzU2NWI1MDg1OTM1MDUwNTA1MDkyOTE1MDUwNTY1YjYwMDA2MTM0OGM4MjYxM2U3NjU2NWI2MTM0OTY4MTg1NjEzZjRjNTY1YjkzNTA2MTM0YTE4MzYxM2UxYTU2NWI4MDYwMDA1YjgzODExMDE1NjEzNGQyNTc4MTUxNjEzNGI5ODg4MjYxMzI5MDU2NWI5NzUwNjEzNGM0ODM2MTNlZTE1NjViOTI1MDUwNjAwMTgxMDE5MDUwNjEzNGE1NTY1YjUwODU5MzUwNTA1MDUwOTI5MTUwNTA1NjViNjAwMDYxMzRlYTgyNjEzZTgxNTY1YjYxMzRmNDgxODU2MTNmNWQ1NjViOTM1MDYxMzRmZjgzNjEzZTJhNTY1YjgwNjAwMDViODM4MTEwMTU2MTM1MzA1NzgxNTE2MTM1MTc4ODgyNjEzMmE4NTY1Yjk3NTA2MTM1MjI4MzYxM2VlZTU2NWI5MjUwNTA2MDAxODEwMTkwNTA2MTM1MDM1NjViNTA4NTkzNTA1MDUwNTA5MjkxNTA1MDU2NWI2MDAwNjEzNTQ4ODI2MTNlOGM1NjViNjEzNTUyODE4NTYxM2Y2ZTU2NWI5MzUwODM2MDIwODIwMjg1MDE2MTM1NjQ4NTYxM2UzYTU2NWI4MDYwMDA1Yjg1ODExMDE1NjEzNWEwNTc4NDg0MDM4OTUyODE1MTYxMzU4MTg1ODI2MTMyYzA1NjViOTQ1MDYxMzU4YzgzNjEzZWZiNTY1YjkyNTA2MDIwOGEwMTk5NTA1MDYwMDE4MTAxOTA1MDYxMzU2ODU2NWI1MDgyOTc1MDg3OTU1MDUwNTA1MDUwNTA5MjkxNTA1MDU2NWI2MTM1YmI4MTYxM2ZkMDU2NWI4MjUyNTA1MDU2NWI2MDAwNjEzNWNjODI2MTNlOTc1NjViNjEzNWQ2ODE4NTYxM2Y3ZjU2NWI5MzUwNjEzNWU2ODE4NTYwMjA4NjAxNjE0MDZmNTY1YjYxMzVlZjgxNjE0MWRhNTY1Yjg0MDE5MTUwNTA5MjkxNTA1MDU2NWI2MDAwNjEzNjA1ODI2MTNlOTc1NjViNjEzNjBmODE4NTYxM2Y5MDU2NWI5MzUwNjEzNjFmODE4NTYwMjA4NjAxNjE0MDZmNTY1YjgwODQwMTkxNTA1MDkyOTE1MDUwNTY1YjYxMzYzNDgxNjEzZmRjNTY1YjgyNTI1MDUwNTY1YjYxMzY0MzgxNjE0MDRlNTY1YjgyNTI1MDUwNTY1YjYxMzY1MjgxNjEzZmYzNTY1YjgyNTI1MDUwNTY1YjYxMzY2MTgxNjEzZmYzNTY1YjgyNTI1MDUwNTY1YjYwMDA2MTM2NzI4MjYxM2VhMjU2NWI2MTM2N2M4MTg1NjEzZjliNTY1YjkzNTA2MTM2OGM4MTg1NjAyMDg2MDE2MTQwNmY1NjViNjEzNjk1ODE2MTQxZGE1NjViODQwMTkxNTA1MDkyOTE1MDUwNTY1YjYwNjA4MjAxNjAwMDgyMDE1MTYxMzZiNjYwMDA4NTAxODI2MTM5ZjI1NjViNTA2MDIwODIwMTUxNjEzNmM5NjAyMDg1MDE4MjYxMzJkNDU2NWI1MDYwNDA4MjAxNTE2MTM2ZGM2MDQwODUwMTgyNjEzOWYyNTY1YjUwNTA1MDUwNTY1YjYwYTA4MjAxNjAwMDgyMDE1MTYxMzZmODYwMDA4NTAxODI2MTM5ZjI1NjViNTA2MDIwODIwMTUxNjEzNzBiNjAyMDg1MDE4MjYxMzJkNDU2NWI1MDYwNDA4MjAxNTE2MTM3MWU2MDQwODUwMTgyNjEzNWIyNTY1YjUwNjA2MDgyMDE1MTYxMzczMTYwNjA4NTAxODI2MTM1YjI1NjViNTA2MDgwODIwMTUxNjEzNzQ0NjA4MDg1MDE4MjYxMzJkNDU2NWI1MDUwNTA1MDU2NWI2MGMwODIwMTYwMDA4MjAxNTE2MTM3NjA2MDAwODUwMTgyNjEzOWYyNTY1YjUwNjAyMDgyMDE1MTYxMzc3MzYwMjA4NTAxODI2MTM5ZjI1NjViNTA2MDQwODIwMTUxNjEzNzg2NjA0MDg1MDE4MjYxMzlmMjU2NWI1MDYwNjA4MjAxNTE2MTM3OTk2MDYwODUwMTgyNjEzOWYyNTY1YjUwNjA4MDgyMDE1MTYxMzdhYzYwODA4NTAxODI2MTM1YjI1NjViNTA2MGEwODIwMTUxNjEzN2JmNjBhMDg1MDE4MjYxMzJkNDU2NWI1MDUwNTA1MDU2NWI2MDAwNjEwMTYwODMwMTYwMDA4MzAxNTE4NDgyMDM2MDAwODYwMTUyNjEzN2UzODI4MjYxMzY2NzU2NWI5MTUwNTA2MDIwODMwMTUxODQ4MjAzNjAyMDg2MDE1MjYxMzdmZDgyODI2MTM2Njc1NjViOTE1MDUwNjA0MDgzMDE1MTYxMzgxMjYwNDA4NjAxODI2MTMyZDQ1NjViNTA2MDYwODMwMTUxODQ4MjAzNjA2MDg2MDE1MjYxMzgyYTgyODI2MTM2Njc1NjViOTE1MDUwNjA4MDgzMDE1MTYxMzgzZjYwODA4NjAxODI2MTM1YjI1NjViNTA2MGEwODMwMTUxNjEzODUyNjBhMDg2MDE4MjYxMzY0OTU2NWI1MDYwYzA4MzAxNTE2MTM4NjU2MGMwODYwMTgyNjEzNWIyNTY1YjUwNjBlMDgzMDE1MTg0ODIwMzYwZTA4NjAxNTI2MTM4N2Q4MjgyNjEzNTNkNTY1YjkxNTA1MDYxMDEwMDgzMDE1MTYxMzg5NDYxMDEwMDg2MDE4MjYxMzZhMDU2NWI1MDgwOTE1MDUwOTI5MTUwNTA1NjViNjAwMDYwYTA4MzAxNjAwMDgzMDE1MTYxMzhiNzYwMDA4NjAxODI2MTM1YjI1NjViNTA2MDIwODMwMTUxNjEzOGNhNjAyMDg2MDE4MjYxMzJkNDU2NWI1MDYwNDA4MzAxNTE4NDgyMDM2MDQwODYwMTUyNjEzOGUyODI4MjYxMzVjMTU2NWI5MTUwNTA2MDYwODMwMTUxODQ4MjAzNjA2MDg2MDE1MjYxMzhmYzgyODI2MTM1YzE1NjViOTE1MDUwNjA4MDgzMDE1MTYxMzkxMTYwODA4NjAxODI2MTMyZDQ1NjViNTA4MDkxNTA1MDkyOTE1MDUwNTY1YjYwYzA4MjAxNjAwMDgyMDE1MTYxMzkzMjYwMDA4NTAxODI2MTM5ZjI1NjViNTA2MDIwODIwMTUxNjEzOTQ1NjAyMDg1MDE4MjYxMzlmMjU2NWI1MDYwNDA4MjAxNTE2MTM5NTg2MDQwODUwMTgyNjEzOWYyNTY1YjUwNjA2MDgyMDE1MTYxMzk2YjYwNjA4NTAxODI2MTMyZDQ1NjViNTA2MDgwODIwMTUxNjEzOTdlNjA4MDg1MDE4MjYxMzViMjU2NWI1MDYwYTA4MjAxNTE2MTM5OTE2MGEwODUwMTgyNjEzMmQ0NTY1YjUwNTA1MDUwNTY1YjYwMDA2MDQwODMwMTYwMDA4MzAxNTE2MTM5YWY2MDAwODYwMTgyNjEzOWQ0NTY1YjUwNjAyMDgzMDE1MTg0ODIwMzYwMjA4NjAxNTI2MTM5Yzc4MjgyNjEzODlmNTY1YjkxNTA1MDgwOTE1MDUwOTI5MTUwNTA1NjViNjEzOWRkODE2MTQwMjA1NjViODI1MjUwNTA1NjViNjEzOWVjODE2MTQwMjA1NjViODI1MjUwNTA1NjViNjEzOWZiODE2MTQwMmE1NjViODI1MjUwNTA1NjViNjEzYTBhODE2MTQwMmE1NjViODI1MjUwNTA1NjViNjEzYTE5ODE2MTQwM2E1NjViODI1MjUwNTA1NjViNjAwMDYxM2EyYjgyODQ2MTM1ZmE1NjViOTE1MDgxOTA1MDkyOTE1MDUwNTY1YjYwMDA2MDIwODIwMTkwNTA2MTNhNGI2MDAwODMwMTg0NjEzMmUzNTY1YjkyOTE1MDUwNTY1YjYwMDA2MDQwODIwMTkwNTA2MTNhNjY2MDAwODMwMTg1NjEzMmUzNTY1YjYxM2E3MzYwMjA4MzAxODQ2MTMyZTM1NjViOTM5MjUwNTA1MDU2NWI2MDAwNjA4MDgyMDE5MDUwNjEzYThmNjAwMDgzMDE4NzYxMzJlMzU2NWI2MTNhOWM2MDIwODMwMTg2NjEzMmUzNTY1YjYxM2FhOTYwNDA4MzAxODU2MTMyZTM1NjViNjEzYWI2NjA2MDgzMDE4NDYxMzllMzU2NWI5NTk0NTA1MDUwNTA1MDU2NWI2MDAwNjA0MDgyMDE5MDUwNjEzYWQ0NjAwMDgzMDE4NTYxMzJlMzU2NWI4MTgxMDM2MDIwODMwMTUyNjEzYWU2ODE4NDYxMzJmMjU2NWI5MDUwOTM5MjUwNTA1MDU2NWI2MDAwNjA2MDgyMDE5MDUwNjEzYjA0NjAwMDgzMDE4NjYxMzJlMzU2NWI2MTNiMTE2MDIwODMwMTg1NjEzYTEwNTY1YjgxODEwMzYwNDA4MzAxNTI2MTNiMjM4MTg0NjEzMzUwNTY1YjkwNTA5NDkzNTA1MDUwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDYxM2I0MjYwMDA=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwn1WXJKAwpxllIHIak9+4NupbPkOwAHCkeJI//dlM5qP6jAlQxX9wpJGxh+Un2CKUGgwIgZq0rgYQiva5oQIiDwoJCMWZtK4GEL8MEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjGmbSuBhDFDBICGAISAhgDGPz3yD0iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIB6B0SAxjgCCLgHTgzMDE4NDYxMzYyYjU2NWI5MjkxNTA1MDU2NWI2MDAwNjA2MDgyMDE5MDUwNjEzYjVkNjAwMDgzMDE4NjYxMzYyYjU2NWI2MTNiNmE2MDIwODMwMTg1NjEzYTEwNTY1YjgxODEwMzYwNDA4MzAxNTI2MTNiN2M4MTg0NjEzM2M1NTY1YjkwNTA5NDkzNTA1MDUwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDYxM2I5YjYwMDA4MzAxODQ2MTM2M2E1NjViOTI5MTUwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDYxM2JiNjYwMDA4MzAxODQ2MTM2NTg1NjViOTI5MTUwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDgxODEwMzYwMDA4MzAxNTI2MTNiZDY4MTg0NjEzN2M1NTY1YjkwNTA5MjkxNTA1MDU2NWI2MDAwNjA2MDgyMDE5MDUwODE4MTAzNjAwMDgzMDE1MjYxM2JmODgxODY2MTM3YzU1NjViOTA1MDgxODEwMzYwMjA4MzAxNTI2MTNjMGM4MTg1NjEzNDIzNTY1YjkwNTA4MTgxMDM2MDQwODMwMTUyNjEzYzIwODE4NDYxMzRkZjU2NWI5MDUwOTQ5MzUwNTA1MDUwNTY1YjYwMDA2MDYwODIwMTkwNTA4MTgxMDM2MDAwODMwMTUyNjEzYzQ0ODE4NjYxMzdjNTU2NWI5MDUwNjEzYzUzNjAyMDgzMDE4NTYxM2ExMDU2NWI2MTNjNjA2MDQwODMwMTg0NjEzYTAxNTY1Yjk0OTM1MDUwNTA1MDU2NWI2MDAwNjBhMDgyMDE5MDUwODE4MTAzNjAwMDgzMDE1MjYxM2M4MjgxODg2MTM3YzU1NjViOTA1MDYxM2M5MTYwMjA4MzAxODc2MTNhMTA1NjViNjEzYzllNjA0MDgzMDE4NjYxM2EwMTU2NWI4MTgxMDM2MDYwODMwMTUyNjEzY2IwODE4NTYxMzQyMzU2NWI5MDUwODE4MTAzNjA4MDgzMDE1MjYxM2NjNDgxODQ2MTM0ODE1NjViOTA1MDk2OTU1MDUwNTA1MDUwNTA1NjViNjAwMDYwNDA4MjAxOTA1MDYxM2NlNTYwMDA4MzAxODU2MTNhMTA1NjViODE4MTAzNjAyMDgzMDE1MjYxM2NmNzgxODQ2MTMzYzU1NjViOTA1MDkzOTI1MDUwNTA1NjViNjAwMDYxM2QwYTYxM2QxYjU2NWI5MDUwNjEzZDE2ODI4MjYxNDBkNDU2NWI5MTkwNTA1NjViNjAwMDYwNDA1MTkwNTA5MDU2NWI2MDAwNjdmZmZmZmZmZmZmZmZmZmZmODIxMTE1NjEzZDQwNTc2MTNkM2Y2MTQxOTI1NjViNWI2MDIwODIwMjkwNTA2MDIwODEwMTkwNTA5MTkwNTA1NjViNjAwMDY3ZmZmZmZmZmZmZmZmZmZmZjgyMTExNTYxM2Q2YzU3NjEzZDZiNjE0MTkyNTY1YjViNjAyMDgyMDI5MDUwNjAyMDgxMDE5MDUwOTE5MDUwNTY1YjYwMDA2N2ZmZmZmZmZmZmZmZmZmZmY4MjExMTU2MTNkOTg1NzYxM2Q5NzYxNDE5MjU2NWI1YjYwMjA4MjAyOTA1MDYwMjA4MTAxOTA1MDkxOTA1MDU2NWI2MDAwNjdmZmZmZmZmZmZmZmZmZmZmODIxMTE1NjEzZGM0NTc2MTNkYzM2MTQxOTI1NjViNWI2MTNkY2Q4MjYxNDFkYTU2NWI5MDUwNjAyMDgxMDE5MDUwOTE5MDUwNTY1YjYwMDA4MTkwNTA2MDIwODIwMTkwNTA5MTkwNTA1NjViNjAwMDgxOTA1MDYwMjA4MjAxOTA1MDkxOTA1MDU2NWI2MDAwODE5MDUwNjAyMDgyMDE5MDUwOTE5MDUwNTY1YjYwMDA4MTkwNTA2MDIwODIwMTkwNTA5MTkwNTA1NjViNjAwMDgxOTA1MDYwMjA4MjAxOTA1MDkxOTA1MDU2NWI2MDAwODE5MDUwNjAyMDgyMDE5MDUwOTE5MDUwNTY1YjYwMDA4MTkwNTA2MDIwODIwMTkwNTA5MTkwNTA1NjViNjAwMDgxNTE5MDUwOTE5MDUwNTY1YjYwMDA4MTUxOTA1MDkxOTA1MDU2NWI2MDAwODE1MTkwNTA5MTkwNTA1NjViNjAwMDgxNTE5MDUwOTE5MDUwNTY1YjYwMDA4MTUxOTA1MDkxOTA1MDU2NWI2MDAwODE1MTkwNTA5MTkwNTA1NjViNjAwMDgxNTE5MDUwOTE5MDUwNTY1YjYwMDA4MTUxOTA1MDkxOTA1MDU2NWI2MDAwODE1MTkwNTA5MTkwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDkxOTA1MDU2NWI2MDAwNjAyMDgyMDE5MDUwOTE5MDUwNTY1YjYwMDA2MDIwODIwMTkwNTA5MTkwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDkxOTA1MDU2NWI2MDAwNjAyMDgyMDE5MDUwOTE5MDUwNTY1YjYwMDA2MDIwODIwMTkwNTA5MTkwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDkxOTA1MDU2NWI2MDAwODI4MjUyNjAyMDgyMDE5MDUwOTI5MTUwNTA1NjViNjAwMDgyODI1MjYwMjA4MjAxOTA1MDkyOTE1MDUwNTY1YjYwMDA4MjgyNTI2MDIwODIwMTkwNTA5MjkxNTA1MDU2NWI2MDAwODI4MjUyNjAyMDgyMDE5MDUwOTI5MTUwNTA1NjViNjAwMDgyODI1MjYwMjA4MjAxOTA1MDkyOTE1MDUwNTY1YjYwMDA4MjgyNTI2MDIwODIwMTkwNTA5MjkxNTA1MDU2NWI2MDAwODI4MjUyNjAyMDgyMDE5MDUwOTI5MTUwNTA1NjViNjAwMDgyODI1MjYwMjA4MjAxOTA1MDkyOTE1MDUwNTY1YjYwMDA4MTkwNTA5MjkxNTA1MDU2NWI2MDAwODI4MjUyNjAyMDgyMDE5MDUwOTI5MTUwNTA1NjViNjAwMDYxM2ZiNzgyNjE0MDAwNTY1YjkwNTA5MTkwNTA1NjViNjAwMDYxM2ZjOTgyNjE0MDAwNTY1YjkwNTA5MTkwNTA1NjViNjAwMDgxMTUxNTkwNTA5MTkwNTA1NjViNjAwMDgxOTA1MDkxOTA1MDU2NWI2MDAwODE2MDAzMGI5MDUwOTE5MDUwNTY1YjYwMDA4MTYwMDcwYjkwNTA5MTkwNTA1NjViNjAwMDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgyMTY5MDUwOTE5MDUwNTY1YjYwMDA4MTkwNTA5MTkwNTA1NjViNjAwMDYzZmZmZmZmZmY4MjE2OTA1MDkxOTA1MDU2NWI2MDAwNjdmZmZmZmZmZmZmZmZmZmZmODIxNjkwNTA5MTkwNTA1NjViNjAwMDYxNDA1OTgyNjEzZmYzNTY1YjkwNTA5MTkwNTA1NjViODI4MTgzMzc2MDAwODM4MzAxNTI1MDUwNTA1NjViNjAwMDViODM4MTEwMTU2MTQwOGQ1NzgwODIwMTUxODE4NDAxNTI2MDIwODEwMTkwNTA2MTQwNzI1NjViODM4MTExMTU2MTQwOWM1NzYwMDA4NDg0MDE1MjViNTA1MDUwNTA1NjViNjAwMDYwMDI4MjA0OTA1MDYwMDE4MjE2ODA2MTQwYmE1NzYwN2Y4MjE2OTE1MDViNjAyMDgyMTA4MTE0MTU2MTQwY2U1NzYxNDBjZDYxNDEzNDU2NWI1YjUwOTE5MDUwNTY1YjYxNDBkZDgyNjE0MWRhNTY1YjgxMDE4MTgxMTA2N2ZmZmZmZmZmZmZmZmZmZmY4MjExMTcxNTYxNDBmYzU3NjE0MGZiNjE0MTkyNTY1YjViODA2MDQwNTI1MDUwNTA1NjViN2Y0ZTQ4N2I3MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjAwMDUyNjAyMTYwMDQ1MjYwMjQ2MDAwZmQ1YjdmNGU0ODdiNzEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYwMDA1MjYwMjI2MDA0NTI2MDI0NjAwMGZkNWI3ZjRlNDg3YjcxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MDAwNTI2MDMyNjAwNDUyNjAyNDYwMDBmZDViN2Y0ZTQ4N2I3MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjAwMDUyNjA0MTYwMDQ1MjYwMjQ2MDAwZmQ1YjYwMDA4MGZkNWI2MDAwODBmZDViNjAwMDgwZmQ1YjYwMDA4MGZkNWI2MDAwODBmZDViNjAwMDYwMWYxOTYwMWY4MzAxMTY5MDUwOTE5MDUwNTY1YjYxNDFmNDgxNjEzZmFjNTY1YjgxMTQ2MTQxZmY1NzYwMDA4MGZkNWI1MDU2NWI2MTQyMGI4MTYxM2ZiZTU2NWI4MTE0NjE0MjE2NTc2MDAwODBmZDViNTA1NjViNjE0MjIyODE2MTNmZTY1NjViODExNDYxNDIyZDU3NjAwMDgwZmQ1YjUwNTY1YjYxNDIzOTgxNjEzZmYzNTY1YjgxMTQ2MTQyNDQ1NzYwMDA4MGZkNWI1MDU2NWI2MTQyNTA4MTYxNDAyMDU2NWI4MTE0NjE0MjViNTc2MDAwODBmZDViNTA1NjViNjE0MjY3ODE2MTQwM2E1NjViODExNDYxNDI3MjU3NjAwMDgwZmQ1YjUwNTZmZWEyNjQ2OTcwNjY3MzU4MjIxMjIwYmFkZjk5OTkwMjBjODA5YjljZDNmNWUwOWUzN2QyZTJjOTI0MDFlY2U3MWVhMmFjYTJkOTVlMGU1OWY4MTNiYjY0NzM2ZjZjNjM0MzAwMDgwNzAwMzM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwt4cUcx+piqr6MQlYMvUvzDStzvBuYuAHBGYAnHEYt11APfFCzXwWZzJFEsCZfSHhGgsIgpq0rgYQ86XnWCIPCgkIxpm0rgYQxQwSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"ChAKCQjGmbSuBhDHDBIDGN4IEgIYAxixjrgVIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA6IBCpQBAviRggEqgKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOIKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0alKIAIMPQkCAgIDAgKCkyl5s/9ZzslYSlYoha3odfyxizOVVU9sZd4VSh7XAvKAX9nmTkBd7j0vbVoVdpe9rf39E2waNaGWYEt1oaQKwvhIDGOAIGIDIr6Al","b64Record":"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YQZyV2EBAICDVAQCg1KRYCABkWEGnVZbggGRkGAAUmAgYAAgkFuBVIFSkGABAZBgIAGAgxFhBoBXgpADYB8WggGRW1BQUFBQgVJgIAFgARUVgVJgIAFgBWAIkFSQYQEACpAEYAcLYAcLgVJgIAFgBWAUkFSQYQEACpAEYP8WFRWBUmAgAYSBUmAgAYOBUlCQUGAAYAFn//////////+BERVhBwhXYQcHYUGSVltbYEBRkICCUoBgIAJgIAGCAWBAUoAVYQdBV4FgIAFbYQcuYSsgVluBUmAgAZBgAZADkIFhByZXkFBbUJBQYEBRgGCgAWBAUoBgAWP/////FoFSYCABhnP//////////////////////////xaBUmAgAWAAFRWBUmAgAWAAFRWBUmAgAYdz//////////////////////////8WgVJQgWAAgVGBEGEHuFdhB7dhQWNWW1tgIAJgIAEBgZBSUGAAYAFn//////////+BERVhB+BXYQffYUGSVltbYEBRkICCUoBgIAJgIAGCAWBAUoAVYQgZV4FgIAFbYQgGYSuFVluBUmAgAZBgAZADkIFhB/5XkFBbUJBQYEBRgGDAAWBAUoBgBGP/////FoFSYCABYAVj/////xaBUmAgAWAKY/////8WgVJgIAGHc///////////////////////////FoFSYCABYAAVFYFSYCABiHP//////////////////////////xaBUlCBYACBUYEQYQihV2EIoGFBY1ZbW2AgAmAgAQGBkFJQYACAYQi6hYWFYR3AVluRUJFQYBZgAwuCFGEIzldgAID9W397sXcm3x863uiqALqOi8XW8YKvO793YEY5y38AjdO07YFgQFFhCP2RkGE6NlZbYEBRgJEDkKFQUFBQUFBQUFBWW2AAYQkcg4NhHz9WW5BQf5Clz0z/6ItO27BBz8eoqBLEil7DC4RkD7N2kIdRaOOqgWBAUWEJTZGQYTuGVltgQFGAkQOQoWAWYAMLgWAHCxRhCWhXYACA/VuSkVBQVltgAGEJeoODYSBXVluQUH+Qpc9M/+iLTtuwQc/HqKgSxIpewwuEZA+zdpCHUWjjqoFgQFFhCauRkGE7LVZbYEBRgJEDkKFgFmADC4EUYQnDV2AAgP1bkpFQUFZbYACAYABhAWdz//////////////////////////8WY5sj09lg4BuIiIiIYEBRYCQBYQoGlJOSkZBhOnpWW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEKcJGQYTofVltgAGBAUYCDA4GFWvSRUFA9gGAAgRRhCqtXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hCrBWW2BgkVBbUJFQkVCBYQrBV2AVYQrWVluAgGAgAZBRgQGQYQrVkZBhMVhWW1tgAwuSUFBQlJNQUFBQVltgAIBgAGEBZ3P//////////////////////////xZjFdrL6mDgG4iIiIhgQFFgJAFhCyKUk5KRkGE6elZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQuMkZBhOh9WW2AAYEBRgIMDgWAAhlrxkVBQPYBgAIEUYQvJV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YQvOVltgYJFQW1CRUJFQgWEL31dgFWEL9FZbgIBgIAGQUYEBkGEL85GQYTFYVltbYAMLklBQUJSTUFBQUFZbYABgBWf//////////4ERFWEMIFdhDB9hQZJWW1tgQFGQgIJSgGAgAmAgAYIBYEBSgBVhDFlXgWAgAVthDEZhKwBWW4FSYCABkGABkAOQgWEMPleQUFtQkFBhDHpgAGAGYABgQFGAYCABYEBSgGAAgVJQYR1QVluBYACBUYEQYQyOV2EMjWFBY1ZbW2AgAmAgAQGBkFJQYQy1YAFgAGBAUYBgIAFgQFKAYACBUlBhHYlWW4FgAYFRgRBhDMlXYQzIYUFjVltbYCACYCABAYGQUlBhDPBgAmAAYEBRgGAgAWBAUoBgAIFSUGEdiVZbgWACgVGBEGENBFdhDQNhQWNWW1tgIAJgIAEBgZBSUGENK2ADYABgQFGAYCABYEBSgGAAgVJQYR2JVluBYAOBUYEQYQ0/V2ENPmFBY1ZbW2AgAmAgAQGBkFJQYQ1mYARgAGBAUYBgIAFgQFKAYACBUlBhHYlWW4FgBIFRgRBhDXpXYQ15YUFjVltbYCACYCABAYGQUlBgAGBAUYBgYAFgQFKAYABj/////xaBUmAgAYRz//////////////////////////8WgVJgIAFiehIAY/////8WgVJQkFBgAGBAUYBhASABYEBSgGACgFRhDeWQYUCiVluAYB8BYCCAkQQCYCABYEBRkIEBYEBSgJKRkIGBUmAgAYKAVGEOEZBhQKJWW4AVYQ5eV4BgHxBhDjNXYQEAgINUBAKDUpFgIAGRYQ5eVluCAZGQYABSYCBgACCQW4FUgVKQYAEBkGAgAYCDEWEOQVeCkANgHxaCAZFbUFBQUFCBUmAgAWADgFRhDnWQYUCiVluAYB8BYCCAkQQCYCABYEBRkIEBYEBSgJKRkIGBUmAgAYKAVGEOoZBhQKJWW4AVYQ7uV4BgHxBhDsNXYQEAgINUBAKDUpFgIAGRYQ7uVluCAZGQYABSYCBgACCQW4FUgVKQYAEBkGAgAYCDEWEO0VeCkANgHxaCAZFbUFBQUFCBUmAgAYVz//////////////////////////8WgVJgIAFgBIBUYQ8hkGFAolZbgGAfAWAggJEEAmAgAWBAUZCBAWBAUoCSkZCBgVJgIAGCgFRhD02QYUCiVluAFWEPmleAYB8QYQ9vV2EBAICDVAQCg1KRYCABkWEPmlZbggGRkGAAUmAgYAAgkFuBVIFSkGABAZBgIAGAgxFhD31XgpADYB8WggGRW1BQUFBQgVJgIAFgARUVgVJgIAFgBWAIkFSQYQEACpAEYAcLYAcLgVJgIAFgBWAUkFSQYQEACpAEYP8WFRWBUmAgAYSBUmAgAYOBUlCQUGAAgGEQHoNgBWAAkFSQYQEACpAEZ///////////FmAFYBCQVJBhAQAKkARj/////xZhIW9WW5FQkVBgFmADC4IUYRAyV2AAgP1bf3uxdybfHzre6KoAuo6Lxdbxgq87v3dgRjnLfwCN07TtgWBAUWEQYZGQYTo2VltgQFGAkQOQoVBQUFBQUFZbYACAYGBhEIGGhoZhIu5WW4CTUIGUUIKVUFBQUH+Qpc9M/+iLTtuwQc/HqKgSxIpewwuEZA+zdpCHUWjjqoNgQFFhELyRkGE7LVZbYEBRgJEDkKFgFmADC4MUYRDUV2AAgP1bf+/yOZL0ezwQFnn4tNydPiQskDkJ26SkU/KyNBrUY7DigoJgQFFhEQWSkZBhPNBWW2BAUYCRA5Chk1CTUJOQUFZbYABgAWf//////////4ERFWERM1dhETJhQZJWW1tgQFGQgIJSgGAgAmAgAYIBYEBSgBVhEWxXgWAgAVthEVlhKwBWW4FSYCABkGABkAOQgWERUVeQUFtQkFBhEYxgAIBgAGBAUYBgIAFgQFKAYACBUlBhHVBWW4FgAIFRgRBhEaBXYRGfYUFjVltbYCACYCABAYGQUlBgAGBAUYBgYAFgQFKAYABj/////xaBUmAgAYVz//////////////////////////8WgVJgIAFiehIAY/////8WgVJQkFBgAGBAUYBhASABYEBSgGACgFRhEguQYUCiVluAYB8BYCCAkQQCYCABYEBRkIEBYEBSgJKRkIGBUmAgAYKAVGESN5BhQKJWW4AVYRKEV4BgHxBhEllXYQEAgINUBAKDUpFgIAGRYRKEVluCAZGQYABSYCBgACCQW4FUgVKQYAEBkGAgAYCDEWESZ1eCkANgHxaCAZFbUFBQUFCBUmAgAWADgFRhEpuQYUCiVluAYB8BYCCAkQQCYCABYEBRkIEBYEBSgJKRkIGBUmAgAYKAVGESx5BhQKJWW4AVYRMUV4BgHxBhEulXYQEAgINUBAKDUpFgIAGRYRMUVluCAZGQYABSYCBgACCQW4FUgVKQYAEBkGAgAYCDEWES91eCkANgHxaCAZFbUFBQUFCBUmAgAYZz//////////////////////////8WgVJgIAFgBIBUYRNHkGFAolZbgGAfAWAggJEEAmAgAWBAUZCBAWBAUoCSkZCBgVJgIAGCgFRhE3OQYUCiVluAFWETwFeAYB8QYROVV2EBAICDVAQCg1KRYCABkWETwFZbggGRkGAAUmAgYAAgkFuBVIFSkGABAZBgIAGAgxFhE6NXgpADYB8WggGRW1BQUFBQgVJgIAFgARUVgVJgIAFgBWAIkFSQYQEACpAEYAcLYAcLgVJgIAFgABUVgVJgIAGEgVJgIAGDgVJQkFBgAGABZ///////////gREVYRQdV2EUHGFBklZbW2BAUZCAglKAYCACYCABggFgQFKAFWEUVleBYCABW2EUQ2ErIFZbgVJgIAGQYAGQA5CBYRQ7V5BQW1CQUGBAUYBgoAFgQFKAYAFj/////xaBUmAgAYZz//////////////////////////8WgVJgIAFgABUVgVJgIAFgABUVgVJgIAGHc///////////////////////////FoFSUIFgAIFRgRBhFM1XYRTMYUFjVltbYCACYCABAYGQUlBgAGABZ///////////gREVYRT1V2EU9GFBklZbW2BAUZCAglKAYCACYCABggFgQFKAFWEVLleBYCABW2EVG2Er+1ZbgVJgIAGQYAGQA5CBYRUTV5BQW1CQUGBAUYBgwAFgQFKAYARj/////xaBUmAgAWAFY/////8WgVJgIAFgCmP/////FoFSYCABYB5j/////xaBUmAgAWAAFRWBUmAgAYhz//////////////////////////8WgVJQgWAAgVGBEGEVp1dhFaZhQWNWW1tgIAJgIAEBgZBSUGAAgGEV6oVgBWAAkFSQYQEACpAEZ///////////FmAFYBCQVJBhAQAKkARj/////xaHh2EkZlZbkVCRUH+Qpc9M/+iLTtuwQc/HqKgSxIpewwuEZA+zdpCHUWjjqoJgQFFhFh2RkGE7LVZbYEBRgJEDkKFgFmADC4IUYRY1V2AAgP1bf3uxdybfHzre6KoAuo6Lxdbxgq87v3dgRjnLfwCN07TtgWBAUWEWZJGQYTo2VltgQFGAkQOQoVBQUFBQUFBQUFZbYACAYABhAWdz//////////////////////////8WY5sj09lg4BuIiIiIYEBRYCQBYRa0lJOSkZBhOnpWW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEXHpGQYTofVltgAGBAUYCDA4FgAIZa8ZFQUD2AYACBFGEXW1dgQFGRUGAfGWA/PQEWggFgQFI9glI9YABgIIQBPmEXYFZbYGCRUFtQkVCRUIFhF3FXYBVhF4ZWW4CAYCABkFGBAZBhF4WRkGExWFZbW2ADC5JQUFCUk1BQUFBWW2AAYAVn//////////+BERVhF7JXYRexYUGSVltbYEBRkICCUoBgIAJgIAGCAWBAUoAVYRfrV4FgIAFbYRfYYSsAVluBUmAgAZBgAZADkIFhF9BXkFBbUJBQYRgMYABgBmAAYEBRgGAgAWBAUoBgAIFSUGEdUFZbgWAAgVGBEGEYIFdhGB9hQWNWW1tgIAJgIAEBgZBSUGEYR2ABYABgQFGAYCABYEBSgGAAgVJQYR2JVluBYAGBUYEQYRhbV2EYWmFBY1ZbW2AgAmAgAQGBkFJQYRiCYAJgAGBAUYBgIAFgQFKAYACBUlBhHYlWW4FgAoFRgRBhGJZXYRiVYUFjVltbYCACYCABAYGQUlBhGL1gBGAAYEBRgGAgAWBAUoBgAIFSUGEdiVZbgWADgVGBEGEY0VdhGNBhQWNWW1tgIAJgIAEBgZBSUGEY+GADYABgQFGAYCABYEBSgGAAgVJQYR2JVluBYASBUYEQYRkMV2EZC2FBY1ZbW2AgAmAgAQGBkFJQYABgQFGAYGABYEBSgGAAY/////8WgVJgIAGEc///////////////////////////FoFSYCABYnoSAGP/////FoFSUJBQYABgQFGAYQEgAWBAUoBgAoBUYRl3kGFAolZbgGAfAWAggJEEAmAgAWBAUZCBAWBAUoCSkZCBgVJgIAGCgFRhGaOQYUCiVluAFWEZ8FeAYB8QYRnFV2EBAICDVAQCg1KRYCABkWEZ8FZbggGRkGAAUmAgYAAgkFuBVIFSkGABAZBgIAGAgxFhGdNXgpADYB8WggGRW1BQUFBQgVJgIAFgA4BUYRoHkGFAolZbgGAfAWAggJEEAmAgAWBAUZCBAWBAUoCSkZCBgVJgIAGCgFRhGjOQYUCiVluAFWEagFeAYB8QYRpVV2EBAICDVAQCg1KRYCABkWEagFZbggGRkGAAUmAgYAAgkFuBVIFSkGABAZBgIAGAgxFhGmNXgpADYB8WggGRW1BQUFBQgVJgIAGFc///////////////////////////FoFSYCABYASAVGEas5BhQKJWW4BgHwFgIICRBAJgIAFgQFGQgQFgQFKAkpGQgYFSYCABgoBUYRrfkGFAolZbgBVhGyxXgGAfEGEbAVdhAQCAg1QEAoNSkWAgAZFhGyxWW4IBkZBgAFJgIGAAIJBbgVSBUpBgAQGQYCABgIMRYRsPV4KQA2AfFoIBkVtQUFBQUIFSYCABYAEVFYFSYCABYAVgCJBUkGEBAAqQBGAHC2AHC4FSYCABYAVgFJBUkGEBAAqQBGD/FhUVgVJgIAGEgVJgIAGDgVJQkFBgAIBhG4aDYSXrVluRUJFQYBZgAwuCFGEbmldgAID9W397sXcm3x863uiqALqOi8XW8YKvO793YEY5y38AjdO07YFgQFFhG8mRkGE6NlZbYEBRgJEDkKFQUFBQUFBWW2AAgGAAYQFnc///////////////////////////FmMV2svqYOAbiIiIiGBAUWAkAWEcFpSTkpGQYTp6VltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhHICRkGE6H1ZbYABgQFGAgwOBhVr0kVBQPYBgAIEUYRy7V2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YRzAVltgYJFQW1CRUJFQgWEc0VdgFWEc5lZbgIBgIAGQUYEBkGEc5ZGQYTFYVltbYAMLklBQUJSTUFBQUFZbYABhHQGDg2EnY1ZbkFB/kKXPTP/oi07bsEHPx6ioEsSKXsMLhGQPs3aQh1Fo46qBYEBRYR0ykZBhOy1WW2BAUYCRA5ChYBZgAwuBFGEdSldgAID9W5KRUFBWW2EdWGErAFZbYEBRgGBAAWBAUoBhHW2Hh2Eoe1ZbgVJgIAFhHXyFhWEo0VZbgVJQkFCUk1BQUFBWW2EdkWErAFZbYEBRgGBAAWBAUoBhHaWGYSqrVluBUmAgAWEdtIWFYSjRVluBUlCQUJOSUFBQVltgAICEYACBYQEAAVFgAAFRY/////8WFIAVYR3yV1BgAIFhAQABUWBAAVFj/////xYUWxVhHhhXYnanAIFhAQABUWBAAZBj/////xaQgWP/////FoFSUFBbYACAYQFnc///////////////////////////FjRjRXM5aWDgG4qKimBAUWAkAWEeUpOSkZBhO95WW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEevJGQYTofVltgAGBAUYCDA4GFh1rxklBQUD2AYACBFGEe+VdgQFGRUGAfGWA/PQEWggFgQFI9glI9YABgIIQBPmEe/lZbYGCRUFtQkVCRUIFhHxFXYBVgAGEfJlZbgIBgIAGQUYEBkGEfJZGQYTGFVltbgWADC5FQgJVQgZZQUFBQUFCTUJORUFBWW2AAgGAAYQFnc///////////////////////////FmOPjX+ZYOAbhoZgQFFgJAFhH3iSkZBhOlFWW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEf4pGQYTofVltgAGBAUYCDA4FgAIZa8ZFQUD2AYACBFGEgH1dgQFGRUGAfGWA/PQEWggFgQFI9glI9YABgIIQBPmEgJFZbYGCRUFtQkVCRUIFhIDVXYBVhIEpWW4CAYCABkFGBAZBhIEmRkGExWFZbW2ADC5JQUFCSkVBQVltgAIBgAGEBZ3P//////////////////////////xZjLmOHm2DgG4aGYEBRYCQBYSCQkpGQYTq/VltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhIPqRkGE6H1ZbYABgQFGAgwOBYACGWvGRUFA9gGAAgRRhITdXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hITxWW2BgkVBbUJFQkVCBYSFNV2AVYSFiVluAgGAgAZBRgQGQYSFhkZBhMVhWW1tgAwuSUFBQkpFQUFZbYACAhGAAgWEBAAFRYAABUWP/////FhSAFWEhoVdQYACBYQEAAVFgQAFRY/////8WFFsVYSHHV2J2pwCBYQEAAVFgQAGQY/////8WkIFj/////xaBUlBQW2AAgGEBZ3P//////////////////////////xY0Y8I7rrZg4BuKiopgQFFgJAFhIgGTkpGQYTwqVltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhImuRkGE6H1ZbYABgQFGAgwOBhYda8ZJQUFA9gGAAgRRhIqhXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hIq1WW2BgkVBbUJFQkVCBYSLAV2AVYABhItVWW4CAYCABkFGBAZBhItSRkGExhVZbW4FgAwuRUICVUIGWUFBQUFBQk1CTkVBQVltgAIBgYGAAgGEBZ3P//////////////////////////xZjJ44LiGDgG4mJiWBAUWAkAWEjLJOSkZBhOu9WW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEjlpGQYTofVltgAGBAUYCDA4FgAIZa8ZFQUD2AYACBFGEj01dgQFGRUGAfGWA/PQEWggFgQFI9glI9YABgIIQBPmEj2FZbYGCRUFtQkVCRUIFhJDRXYBVgAIBn//////////+BERVhJABXYSP/YUGSVltbYEBRkICCUoBgIAJgIAGCAWBAUoAVYSQuV4FgIAFgIIICgDaDN4CCAZFQUJBQW1BhJElWW4CAYCABkFGBAZBhJEiRkGExxVZbW4JgAwuSUICVUIGWUIKXUFBQUFBQk1CTUJOQUFZbYACAhmAAgWEBAAFRYAABUWP/////FhSAFWEkmFdQYACBYQEAAVFgQAFRY/////8WFFsVYSS+V2J2pwCBYQEAAVFgQAGQY/////8WkIFj/////xaBUlBQW2AAgGEBZ3P//////////////////////////xY0Y7k3WBpg4BuMjIyMjGBAUWAkAWEk/JWUk5KRkGE8aFZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYSVmkZBhOh9WW2AAYEBRgIMDgYWHWvGSUFBQPYBgAIEUYSWjV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YSWoVltgYJFQW1CRUJFQgWElu1dgFWAAYSXQVluAgGAgAZBRgQGQYSXPkZBhMYVWW1uBYAMLkVCAlVCBllBQUFBQUJVQlZNQUFBQVltgAICCYACBYQEAAVFgAAFRY/////8WFIAVYSYdV1BgAIFhAQABUWBAAVFj/////xYUWxVhJkNXYnanAIFhAQABUWBAAZBj/////xaQgWP/////FoFSUFBbYACAYQFnc///////////////////////////FjRjnIm7NWDgG4hgQFFgJAFhJnmRkGE7vFZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYSbjkZBhOh9WW2AAYEBRgIMDgYWHWvGSUFBQPYBgAIEUYScgV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YSclVltgYJFQW1CRUJFQgWEnOFdgFWAAYSdNVluAgGAgAZBRgQGQYSdMkZBhMYVWW1uBYAMLkVCAlVCBllBQUFBQUJFQkVZbYACAYABhAWdz//////////////////////////8WY0kUa95g4BuGhmBAUWAkAWEnnJKRkGE6UVZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYSgGkZBhOh9WW2AAYEBRgIMDgWAAhlrxkVBQPYBgAIEUYShDV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YShIVltgYJFQW1CRUJFQgWEoWVdgFWEoblZbgIBgIAGQUYEBkGEobZGQYTFYVltbYAMLklBQUJKRUFBWW2AAYSiig2AGgREVYSiTV2EokmFBBVZbW4JhKuyQkZBj/////xZWW5BQYSjJgmAGgREVYSi6V2EouWFBBVZbW4JhKuyQkZBj/////xZWW5BQkpFQUFZbYSjZYSxhVltgAGAEgREVYSjtV2Eo7GFBBVZbW4NgBIERFWEpAFdhKP9hQQVWW1sUFWEpHFdgAYFgAAGQFRWQgRUVgVJQUGEqpVZbYAFgBIERFWEpMFdhKS9hQQVWW1uDYASBERVhKUNXYSlCYUEFVltbFBVhKaZXYACAVJBhAQAKkARz//////////////////////////8WgWAgAZBz//////////////////////////8WkIFz//////////////////////////8WgVJQUGEqpFZbYAJgBIERFWEpuldhKblhQQVWW1uDYASBERVhKc1XYSnMYUEFVltbFBVhKeFXgYFgQAGBkFJQYSqjVltgA2AEgREVYSn1V2Ep9GFBBVZbW4NgBIERFWEqCFdhKgdhQQVWW1sUFWEqHFeBgWBgAYGQUlBhKqJWW2AEgIERFWEqL1dhKi5hQQVWW1uDYASBERVhKkJXYSpBYUEFVltbFBVhKqFXYACAVJBhAQAKkARz//////////////////////////8WgWCAAZBz//////////////////////////8WkIFz//////////////////////////8WgVJQUFtbW1tbkpFQUFZbYABgAWAAg2AGgREVYSrEV2Eqw2FBBVZbW2AGgREVYSrWV2Eq1WFBBVZbW4FSYCABkIFSYCABYAAgVJBQkZBQVltgAIFg/xZgAZAbgxeQUJKRUFBWW2BAUYBgQAFgQFKAYACBUmAgAWErGmEsYVZbgVJQkFZbYEBRgGCgAWBAUoBgAGP/////FoFSYCABYABz//////////////////////////8WgVJgIAFgABUVgVJgIAFgABUVgVJgIAFgAHP//////////////////////////xaBUlCQVltgQFGAYMABYEBSgGAAY/////8WgVJgIAFgAGP/////FoFSYCABYABj/////xaBUmAgAWAAc///////////////////////////FoFSYCABYAAVFYFSYCABYABz//////////////////////////8WgVJQkFZbYEBRgGDAAWBAUoBgAGP/////FoFSYCABYABj/////xaBUmAgAWAAY/////8WgVJgIAFgAGP/////FoFSYCABYAAVFYFSYCABYABz//////////////////////////8WgVJQkFZbYEBRgGCgAWBAUoBgABUVgVJgIAFgAHP//////////////////////////xaBUmAgAWBggVJgIAFgYIFSYCABYABz//////////////////////////8WgVJQkFZbYABhLNFhLMyEYT0lVlthPQBWW5BQgIOCUmAgggGQUIKFYCCGAoIBERVhLPRXYSzzYUHGVltbYABbhYEQFWEtJFeBYS0KiIJh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gZBSUGEELmAEYABgQFGAYCABYEBSgGAAgVJQYR2JVluBYAOBUYEQYQRCV2EEQWFBY1ZbW2AgAmAgAQGBkFJQYQRpYANgAGBAUYBgIAFgQFKAYACBUlBhHYlWW4FgBIFRgRBhBH1XYQR8YUFjVltbYCACYCABAYGQUlBgAGBAUYBgYAFgQFKAYABj/////xaBUmAgAYVz//////////////////////////8WgVJgIAFiehIAY/////8WgVJQkFBgAGBAUYBhASABYEBSgGACgFRhBOiQYUCiVluAYB8BYCCAkQQCYCABYEBRkIEBYEBSgJKRkIGBUmAgAYKAVGEFFJBhQKJWW4AVYQVhV4BgHxBhBTZXYQEAgINUBAKDUpFgIAGRYQVhVluCAZGQYABSYCBgACCQW4FUgVKQYAEBkGAgAYCDEWEFRFeCkANgHxaCAZFbUFBQUFCBUmAgAWADgFRhBXiQYUCiVluAYB8BYCCAkQQCYCABYEBRkIEBYEBSgJKRkIGBUmAgAYKAVGEFpJBhQKJWW4AVYQXxV4BgHxBhBcZXYQEAgINUBAKDUpFgIAGRYQXxVluCAZGQYABSYCBgACCQW4FUgVKQYAEBkGAgAYCDEWEF1FeCkANgHxaCAZFbUFBQUFCBUmAgAYZz//////////////////////////8WgVJgIAFgBIBUYQYkkGFAolZbgGAfAWAggJEEAmAgAWBAUZCBAWBAUoCSkZCBgVJgIAGCgFRhBlCQYUCiVluAFWEGnVeAYB8QYQZyV2EBAICDVAQCg1KRYCABkWEGnVZbggGRkGAAUmAgYAAgkFuBVIFSkGABAZBgIAGAgxFhBoBXgpADYB8WggGRW1BQUFBQgVJgIAFgARUVgVJgIAFgBWAIkFSQYQEACpAEYAcLYAcLgVJgIAFgBWAUkFSQYQEACpAEYP8WFRWBUmAgAYSBUmAgAYOBUlCQUGAAYAFn//////////+BERVhBwhXYQcHYUGSVltbYEBRkICCUoBgIAJgIAGCAWBAUoAVYQdBV4FgIAFbYQcuYSsgVluBUmAgAZBgAZADkIFhByZXkFBbUJBQYEBRgGCgAWBAUoBgAWP/////FoFSYCABhnP//////////////////////////xaBUmAgAWAAFRWBUmAgAWAAFRWBUmAgAYdz//////////////////////////8WgVJQgWAAgVGBEGEHuFdhB7dhQWNWW1tgIAJgIAEBgZBSUGAAYAFn//////////+BERVhB+BXYQffYUGSVltbYEBRkICCUoBgIAJgIAGCAWBAUoAVYQgZV4FgIAFbYQgGYSuFVluBUmAgAZBgAZADkIFhB/5XkFBbUJBQYEBRgGDAAWBAUoBgBGP/////FoFSYCABYAVj/////xaBUmAgAWAKY/////8WgVJgIAGHc///////////////////////////FoFSYCABYAAVFYFSYCABiHP//////////////////////////xaBUlCBYACBUYEQYQihV2EIoGFBY1ZbW2AgAmAgAQGBkFJQYACAYQi6hYWFYR3AVluRUJFQYBZgAwuCFGEIzldgAID9W397sXcm3x863uiqALqOi8XW8YKvO793YEY5y38AjdO07YFgQFFhCP2RkGE6NlZbYEBRgJEDkKFQUFBQUFBQUFBWW2AAYQkcg4NhHz9WW5BQf5Clz0z/6ItO27BBz8eoqBLEil7DC4RkD7N2kIdRaOOqgWBAUWEJTZGQYTuGVltgQFGAkQOQoWAWYAMLgWAHCxRhCWhXYACA/VuSkVBQVltgAGEJeoODYSBXVluQUH+Qpc9M/+iLTtuwQc/HqKgSxIpewwuEZA+zdpCHUWjjqoFgQFFhCauRkGE7LVZbYEBRgJEDkKFgFmADC4EUYQnDV2AAgP1bkpFQUFZbYACAYABhAWdz//////////////////////////8WY5sj09lg4BuIiIiIYEBRYCQBYQoGlJOSkZBhOnpWW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEKcJGQYTofVltgAGBAUYCDA4GFWvSRUFA9gGAAgRRhCqtXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hCrBWW2BgkVBbUJFQkVCBYQrBV2AVYQrWVluAgGAgAZBRgQGQYQrVkZBhMVhWW1tgAwuSUFBQlJNQUFBQVltgAIBgAGEBZ3P//////////////////////////xZjFdrL6mDgG4iIiIhgQFFgJAFhCyKUk5KRkGE6elZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQuMkZBhOh9WW2AAYEBRgIMDgWAAhlrxkVBQPYBgAIEUYQvJV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YQvOVltgYJFQW1CRUJFQgWEL31dgFWEL9FZbgIBgIAGQUYEBkGEL85GQYTFYVltbYAMLklBQUJSTUFBQUFZbYABgBWf//////////4ERFWEMIFdhDB9hQZJWW1tgQFGQgIJSgGAgAmAgAYIBYEBSgBVhDFlXgWAgAVthDEZhKwBWW4FSYCABkGABkAOQgWEMPleQUFtQkFBhDHpgAGAGYABgQFGAYCABYEBSgGAAgVJQYR1QVluBYACBUYEQYQyOV2EMjWFBY1ZbW2AgAmAgAQGBkFJQYQy1YAFgAGBAUYBgIAFgQFKAYACBUlBhHYlWW4FgAYFRgRBhDMlXYQzIYUFjVltbYCACYCABAYGQUlBhDPBgAmAAYEBRgGAgAWBAUoBgAIFSUGEdiVZbgWACgVGBEGENBFdhDQNhQWNWW1tgIAJgIAEBgZBSUGENK2ADYABgQFGAYCABYEBSgGAAgVJQYR2JVluBYAOBUYEQYQ0/V2ENPmFBY1ZbW2AgAmAgAQGBkFJQYQ1mYARgAGBAUYBgIAFgQFKAYACBUlBhHYlWW4FgBIFRgRBhDXpXYQ15YUFjVltbYCACYCABAYGQUlBgAGBAUYBgYAFgQFKAYABj/////xaBUmAgAYRz//////////////////////////8WgVJgIAFiehIAY/////8WgVJQkFBgAGBAUYBhASABYEBSgGACgFRhDeWQYUCiVluAYB8BYCCAkQQCYCABYEBRkIEBYEBSgJKRkIGBUmAgAYKAVGEOEZBhQKJWW4AVYQ5eV4BgHxBhDjNXYQEAgINUBAKDUpFgIAGRYQ5eVluCAZGQYABSYCBgACCQW4FUgVKQYAEBkGAgAYCDEWEOQVeCkANgHxaCAZFbUFBQUFCBUmAgAWADgFRhDnWQYUCiVluAYB8BYCCAkQQCYCABYEBRkIEBYEBSgJKRkIGBUmAgAYKAVGEOoZBhQKJWW4AVYQ7uV4BgHxBhDsNXYQEAgINUBAKDUpFgIAGRYQ7uVluCAZGQYABSYCBgACCQW4FUgVKQYAEBkGAgAYCDEWEO0VeCkANgHxaCAZFbUFBQUFCBUmAgAYVz//////////////////////////8WgVJgIAFgBIBUYQ8hkGFAolZbgGAfAWAggJEEAmAgAWBAUZCBAWBAUoCSkZCBgVJgIAGCgFRhD02QYUCiVluAFWEPmleAYB8QYQ9vV2EBAICDVAQCg1KRYCABkWEPmlZbggGRkGAAUmAgYAAgkFuBVIFSkGABAZBgIAGAgxFhD31XgpADYB8WggGRW1BQUFBQgVJgIAFgARUVgVJgIAFgBWAIkFSQYQEACpAEYAcLYAcLgVJgIAFgBWAUkFSQYQEACpAEYP8WFRWBUmAgAYSBUmAgAYOBUlCQUGAAgGEQHoNgBWAAkFSQYQEACpAEZ///////////FmAFYBCQVJBhAQAKkARj/////xZhIW9WW5FQkVBgFmADC4IUYRAyV2AAgP1bf3uxdybfHzre6KoAuo6Lxdbxgq87v3dgRjnLfwCN07TtgWBAUWEQYZGQYTo2VltgQFGAkQOQoVBQUFBQUFZbYACAYGBhEIGGhoZhIu5WW4CTUIGUUIKVUFBQUH+Qpc9M/+iLTtuwQc/HqKgSxIpewwuEZA+zdpCHUWjjqoNgQFFhELyRkGE7LVZbYEBRgJEDkKFgFmADC4MUYRDUV2AAgP1bf+/yOZL0ezwQFnn4tNydPiQskDkJ26SkU/KyNBrUY7DigoJgQFFhEQWSkZBhPNBWW2BAUYCRA5Chk1CTUJOQUFZbYABgAWf//////////4ERFWERM1dhETJhQZJWW1tgQFGQgIJSgGAgAmAgAYIBYEBSgBVhEWxXgWAgAVthEVlhKwBWW4FSYCABkGABkAOQgWERUVeQUFtQkFBhEYxgAIBgAGBAUYBgIAFgQFKAYACBUlBhHVBWW4FgAIFRgRBhEaBXYRGfYUFjVltbYCACYCABAYGQUlBgAGBAUYBgYAFgQFKAYABj/////xaBUmAgAYVz//////////////////////////8WgVJgIAFiehIAY/////8WgVJQkFBgAGBAUYBhASABYEBSgGACgFRhEguQYUCiVluAYB8BYCCAkQQCYCABYEBRkIEBYEBSgJKRkIGBUmAgAYKAVGESN5BhQKJWW4AVYRKEV4BgHxBhEllXYQEAgINUBAKDUpFgIAGRYRKEVluCAZGQYABSYCBgACCQW4FUgVKQYAEBkGAgAYCDEWESZ1eCkANgHxaCAZFbUFBQUFCBUmAgAWADgFRhEpuQYUCiVluAYB8BYCCAkQQCYCABYEBRkIEBYEBSgJKRkIGBUmAgAYKAVGESx5BhQKJWW4AVYRMUV4BgHxBhEulXYQEAgINUBAKDUpFgIAGRYRMUVluCAZGQYABSYCBgACCQW4FUgVKQYAEBkGAgAYCDEWES91eCkANgHxaCAZFbUFBQUFCBUmAgAYZz//////////////////////////8WgVJgIAFgBIBUYRNHkGFAolZbgGAfAWAggJEEAmAgAWBAUZCBAWBAUoCSkZCBgVJgIAGCgFRhE3OQYUCiVluAFWETwFeAYB8QYROVV2EBAICDVAQCg1KRYCABkWETwFZbggGRkGAAUmAgYAAgkFuBVIFSkGABAZBgIAGAgxFhE6NXgpADYB8WggGRW1BQUFBQgVJgIAFgARUVgVJgIAFgBWAIkFSQYQEACpAEYAcLYAcLgVJgIAFgABUVgVJgIAGEgVJgIAGDgVJQkFBgAGABZ///////////gREVYRQdV2EUHGFBklZbW2BAUZCAglKAYCACYCABggFgQFKAFWEUVleBYCABW2EUQ2ErIFZbgVJgIAGQYAGQA5CBYRQ7V5BQW1CQUGBAUYBgoAFgQFKAYAFj/////xaBUmAgAYZz//////////////////////////8WgVJgIAFgABUVgVJgIAFgABUVgVJgIAGHc///////////////////////////FoFSUIFgAIFRgRBhFM1XYRTMYUFjVltbYCACYCABAYGQUlBgAGABZ///////////gREVYRT1V2EU9GFBklZbW2BAUZCAglKAYCACYCABggFgQFKAFWEVLleBYCABW2EVG2Er+1ZbgVJgIAGQYAGQA5CBYRUTV5BQW1CQUGBAUYBgwAFgQFKAYARj/////xaBUmAgAWAFY/////8WgVJgIAFgCmP/////FoFSYCABYB5j/////xaBUmAgAWAAFRWBUmAgAYhz//////////////////////////8WgVJQgWAAgVGBEGEVp1dhFaZhQWNWW1tgIAJgIAEBgZBSUGAAgGEV6oVgBWAAkFSQYQEACpAEZ///////////FmAFYBCQVJBhAQAKkARj/////xaHh2EkZlZbkVCRUH+Qpc9M/+iLTtuwQc/HqKgSxIpewwuEZA+zdpCHUWjjqoJgQFFhFh2RkGE7LVZbYEBRgJEDkKFgFmADC4IUYRY1V2AAgP1bf3uxdybfHzre6KoAuo6Lxdbxgq87v3dgRjnLfwCN07TtgWBAUWEWZJGQYTo2VltgQFGAkQOQoVBQUFBQUFBQUFZbYACAYABhAWdz//////////////////////////8WY5sj09lg4BuIiIiIYEBRYCQBYRa0lJOSkZBhOnpWW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEXHpGQYTofVltgAGBAUYCDA4FgAIZa8ZFQUD2AYACBFGEXW1dgQFGRUGAfGWA/PQEWggFgQFI9glI9YABgIIQBPmEXYFZbYGCRUFtQkVCRUIFhF3FXYBVhF4ZWW4CAYCABkFGBAZBhF4WRkGExWFZbW2ADC5JQUFCUk1BQUFBWW2AAYAVn//////////+BERVhF7JXYRexYUGSVltbYEBRkICCUoBgIAJgIAGCAWBAUoAVYRfrV4FgIAFbYRfYYSsAVluBUmAgAZBgAZADkIFhF9BXkFBbUJBQYRgMYABgBmAAYEBRgGAgAWBAUoBgAIFSUGEdUFZbgWAAgVGBEGEYIFdhGB9hQWNWW1tgIAJgIAEBgZBSUGEYR2ABYABgQFGAYCABYEBSgGAAgVJQYR2JVluBYAGBUYEQYRhbV2EYWmFBY1ZbW2AgAmAgAQGBkFJQYRiCYAJgAGBAUYBgIAFgQFKAYACBUlBhHYlWW4FgAoFRgRBhGJZXYRiVYUFjVltbYCACYCABAYGQUlBhGL1gBGAAYEBRgGAgAWBAUoBgAIFSUGEdiVZbgWADgVGBEGEY0VdhGNBhQWNWW1tgIAJgIAEBgZBSUGEY+GADYABgQFGAYCABYEBSgGAAgVJQYR2JVluBYASBUYEQYRkMV2EZC2FBY1ZbW2AgAmAgAQGBkFJQYABgQFGAYGABYEBSgGAAY/////8WgVJgIAGEc///////////////////////////FoFSYCABYnoSAGP/////FoFSUJBQYABgQFGAYQEgAWBAUoBgAoBUYRl3kGFAolZbgGAfAWAggJEEAmAgAWBAUZCBAWBAUoCSkZCBgVJgIAGCgFRhGaOQYUCiVluAFWEZ8FeAYB8QYRnFV2EBAICDVAQCg1KRYCABkWEZ8FZbggGRkGAAUmAgYAAgkFuBVIFSkGABAZBgIAGAgxFhGdNXgpADYB8WggGRW1BQUFBQgVJgIAFgA4BUYRoHkGFAolZbgGAfAWAggJEEAmAgAWBAUZCBAWBAUoCSkZCBgVJgIAGCgFRhGjOQYUCiVluAFWEagFeAYB8QYRpVV2EBAICDVAQCg1KRYCABkWEagFZbggGRkGAAUmAgYAAgkFuBVIFSkGABAZBgIAGAgxFhGmNXgpADYB8WggGRW1BQUFBQgVJgIAGFc///////////////////////////FoFSYCABYASAVGEas5BhQKJWW4BgHwFgIICRBAJgIAFgQFGQgQFgQFKAkpGQgYFSYCABgoBUYRrfkGFAolZbgBVhGyxXgGAfEGEbAVdhAQCAg1QEAoNSkWAgAZFhGyxWW4IBkZBgAFJgIGAAIJBbgVSBUpBgAQGQYCABgIMRYRsPV4KQA2AfFoIBkVtQUFBQUIFSYCABYAEVFYFSYCABYAVgCJBUkGEBAAqQBGAHC2AHC4FSYCABYAVgFJBUkGEBAAqQBGD/FhUVgVJgIAGEgVJgIAGDgVJQkFBgAIBhG4aDYSXrVluRUJFQYBZgAwuCFGEbmldgAID9W397sXcm3x863uiqALqOi8XW8YKvO793YEY5y38AjdO07YFgQFFhG8mRkGE6NlZbYEBRgJEDkKFQUFBQUFBWW2AAgGAAYQFnc///////////////////////////FmMV2svqYOAbiIiIiGBAUWAkAWEcFpSTkpGQYTp6VltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhHICRkGE6H1ZbYABgQFGAgwOBhVr0kVBQPYBgAIEUYRy7V2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YRzAVltgYJFQW1CRUJFQgWEc0VdgFWEc5lZbgIBgIAGQUYEBkGEc5ZGQYTFYVltbYAMLklBQUJSTUFBQUFZbYABhHQGDg2EnY1ZbkFB/kKXPTP/oi07bsEHPx6ioEsSKXsMLhGQPs3aQh1Fo46qBYEBRYR0ykZBhOy1WW2BAUYCRA5ChYBZgAwuBFGEdSldgAID9W5KRUFBWW2EdWGErAFZbYEBRgGBAAWBAUoBhHW2Hh2Eoe1ZbgVJgIAFhHXyFhWEo0VZbgVJQkFCUk1BQUFBWW2EdkWErAFZbYEBRgGBAAWBAUoBhHaWGYSqrVluBUmAgAWEdtIWFYSjRVluBUlCQUJOSUFBQVltgAICEYACBYQEAAVFgAAFRY/////8WFIAVYR3yV1BgAIFhAQABUWBAAVFj/////xYUWxVhHhhXYnanAIFhAQABUWBAAZBj/////xaQgWP/////FoFSUFBbYACAYQFnc///////////////////////////FjRjRXM5aWDgG4qKimBAUWAkAWEeUpOSkZBhO95WW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEevJGQYTofVltgAGBAUYCDA4GFh1rxklBQUD2AYACBFGEe+VdgQFGRUGAfGWA/PQEWggFgQFI9glI9YABgIIQBPmEe/lZbYGCRUFtQkVCRUIFhHxFXYBVgAGEfJlZbgIBgIAGQUYEBkGEfJZGQYTGFVltbgWADC5FQgJVQgZZQUFBQUFCTUJORUFBWW2AAgGAAYQFnc///////////////////////////FmOPjX+ZYOAbhoZgQFFgJAFhH3iSkZBhOlFWW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEf4pGQYTofVltgAGBAUYCDA4FgAIZa8ZFQUD2AYACBFGEgH1dgQFGRUGAfGWA/PQEWggFgQFI9glI9YABgIIQBPmEgJFZbYGCRUFtQkVCRUIFhIDVXYBVhIEpWW4CAYCABkFGBAZBhIEmRkGExWFZbW2ADC5JQUFCSkVBQVltgAIBgAGEBZ3P//////////////////////////xZjLmOHm2DgG4aGYEBRYCQBYSCQkpGQYTq/VltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhIPqRkGE6H1ZbYABgQFGAgwOBYACGWvGRUFA9gGAAgRRhITdXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hITxWW2BgkVBbUJFQkVCBYSFNV2AVYSFiVluAgGAgAZBRgQGQYSFhkZBhMVhWW1tgAwuSUFBQkpFQUFZbYACAhGAAgWEBAAFRYAABUWP/////FhSAFWEhoVdQYACBYQEAAVFgQAFRY/////8WFFsVYSHHV2J2pwCBYQEAAVFgQAGQY/////8WkIFj/////xaBUlBQW2AAgGEBZ3P//////////////////////////xY0Y8I7rrZg4BuKiopgQFFgJAFhIgGTkpGQYTwqVltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhImuRkGE6H1ZbYABgQFGAgwOBhYda8ZJQUFA9gGAAgRRhIqhXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hIq1WW2BgkVBbUJFQkVCBYSLAV2AVYABhItVWW4CAYCABkFGBAZBhItSRkGExhVZbW4FgAwuRUICVUIGWUFBQUFBQk1CTkVBQVltgAIBgYGAAgGEBZ3P//////////////////////////xZjJ44LiGDgG4mJiWBAUWAkAWEjLJOSkZBhOu9WW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEjlpGQYTofVltgAGBAUYCDA4FgAIZa8ZFQUD2AYACBFGEj01dgQFGRUGAfGWA/PQEWggFgQFI9glI9YABgIIQBPmEj2FZbYGCRUFtQkVCRUIFhJDRXYBVgAIBn//////////+BERVhJABXYSP/YUGSVltbYEBRkICCUoBgIAJgIAGCAWBAUoAVYSQuV4FgIAFgIIICgDaDN4CCAZFQUJBQW1BhJElWW4CAYCABkFGBAZBhJEiRkGExxVZbW4JgAwuSUICVUIGWUIKXUFBQUFBQk1CTUJOQUFZbYACAhmAAgWEBAAFRYAABUWP/////FhSAFWEkmFdQYACBYQEAAVFgQAFRY/////8WFFsVYSS+V2J2pwCBYQEAAVFgQAGQY/////8WkIFj/////xaBUlBQW2AAgGEBZ3P//////////////////////////xY0Y7k3WBpg4BuMjIyMjGBAUWAkAWEk/JWUk5KRkGE8aFZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYSVmkZBhOh9WW2AAYEBRgIMDgYWHWvGSUFBQPYBgAIEUYSWjV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YSWoVltgYJFQW1CRUJFQgWElu1dgFWAAYSXQVluAgGAgAZBRgQGQYSXPkZBhMYVWW1uBYAMLkVCAlVCBllBQUFBQUJVQlZNQUFBQVltgAICCYACBYQEAAVFgAAFRY/////8WFIAVYSYdV1BgAIFhAQABUWBAAVFj/////xYUWxVhJkNXYnanAIFhAQABUWBAAZBj/////xaQgWP/////FoFSUFBbYACAYQFnc///////////////////////////FjRjnIm7NWDgG4hgQFFgJAFhJnmRkGE7vFZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYSbjkZBhOh9WW2AAYEBRgIMDgYWHWvGSUFBQPYBgAIEUYScgV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YSclVltgYJFQW1CRUJFQgWEnOFdgFWAAYSdNVluAgGAgAZBRgQGQYSdMkZBhMYVWW1uBYAMLkVCAlVCBllBQUFBQUJFQkVZbYACAYABhAWdz//////////////////////////8WY0kUa95g4BuGhmBAUWAkAWEnnJKRkGE6UVZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYSgGkZBhOh9WW2AAYEBRgIMDgWAAhlrxkVBQPYBgAIEUYShDV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YShIVltgYJFQW1CRUJFQgWEoWVdgFWEoblZbgIBgIAGQUYEBkGEobZGQYTFYVltbYAMLklBQUJKRUFBWW2AAYSiig2AGgREVYSiTV2EokmFBBVZbW4JhKuyQkZBj/////xZWW5BQYSjJgmAGgREVYSi6V2EouWFBBVZbW4JhKuyQkZBj/////xZWW5BQkpFQUFZbYSjZYSxhVltgAGAEgREVYSjtV2Eo7GFBBVZbW4NgBIERFWEpAFdhKP9hQQVWW1sUFWEpHFdgAYFgAAGQFRWQgRUVgVJQUGEqpVZbYAFgBIERFWEpMFdhKS9hQQVWW1uDYASBERVhKUNXYSlCYUEFVltbFBVhKaZXYACAVJBhAQAKkARz//////////////////////////8WgWAgAZBz//////////////////////////8WkIFz//////////////////////////8WgVJQUGEqpFZbYAJgBIERFWEpuldhKblhQQVWW1uDYASBERVhKc1XYSnMYUEFVltbFBVhKeFXgYFgQAGBkFJQYSqjVltgA2AEgREVYSn1V2Ep9GFBBVZbW4NgBIERFWEqCFdhKgdhQQVWW1sUFWEqHFeBgWBgAYGQUlBhKqJWW2AEgIERFWEqL1dhKi5hQQVWW1uDYASBERVhKkJXYSpBYUEFVltbFBVhKqFXYACAVJBhAQAKkARz//////////////////////////8WgWCAAZBz//////////////////////////8WkIFz//////////////////////////8WgVJQUFtbW1tbkpFQUFZbYABgAWAAg2AGgREVYSrEV2Eqw2FBBVZbW2AGgREVYSrWV2Eq1WFBBVZbW4FSYCABkIFSYCABYAAgVJBQkZBQVltgAIFg/xZgAZAbgxeQUJKRUFBWW2BAUYBgQAFgQFKAYACBUmAgAWErGmEsYVZbgVJQkFZbYEBRgGCgAWBAUoBgAGP/////FoFSYCABYABz//////////////////////////8WgVJgIAFgABUVgVJgIAFgABUVgVJgIAFgAHP//////////////////////////xaBUlCQVltgQFGAYMABYEBSgGAAY/////8WgVJgIAFgAGP/////FoFSYCABYABj/////xaBUmAgAWAAc///////////////////////////FoFSYCABYAAVFYFSYCABYABz//////////////////////////8WgVJQkFZbYEBRgGDAAWBAUoBgAGP/////FoFSYCABYABj/////xaBUmAgAWAAY/////8WgVJgIAFgAGP/////FoFSYCABYAAVFYFSYCABYABz//////////////////////////8WgVJQkFZbYEBRgGCgAWBAUoBgABUVgVJgIAFgAHP//////////////////////////xaBUmAgAWBggVJgIAFgYIFSYCABYABz//////////////////////////8WgVJQkFZbYABhLNFhLMyEYT0lVlthPQBWW5BQgIOCUmAgggGQUIKFYCCGAoIBERVhLPRXYSzzYUHGVltbYABbhYEQFWEtJFeBYS0KiIJhLm5WW4RSYCCEAZNQYCCDAZJQUGABgQGQUGEs91ZbUFBQk5JQUFBWW2AAYS1BYS08hGE9UVZbYT0AVluQUICDglJgIIIBkFCChWAghgKCAREVYS1kV2EtY2FBxlZbW2AAW4WBEBVhLbJXgTVn//////////+BERVhLYpXYS2JYUHBVltbgIYBYS2XiYJhLyJWW4VSYCCFAZRQYCCEAZNQUFBgAYEBkFBhLWdWW1BQUJOSUFBQVltgAGEtz2EtyoRhPX1WW2E9AFZbkFCAg4JSYCCCAZBQgoVgIIYCggERFWEt8ldhLfFhQcZWW1tgAFuFgRAVYS4iV4FhLgiIgmEvZVZbhFJgIIQBk1BgIIMBklBQYAGBAZBQYS31VltQUFCTklBQUFZbYABhLj9hLjqEYT2pVlthPQBW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"},{"b64Body":"ChIKCQjGmbSuBhDHDBIDGN4IIAFCHUIFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50","b64Record":"CgcIFiIDGOEIEjD6AfjvCP5UMYs66V3w+eVQ7SOjTKyJGHwzuwpj2Xs4/zy2NEFaIZT4UuRBKgphHPsaDAiCmrSuBhDV6ZzMAiISCgkIxpm0rgYQxwwSAxjeCCABQh0KAxjhCEoWChS0ofPy3vnMOZYsvMYaiOEbLyQnzlIAegwIgpq0rgYQ1OmczAI="}]},"directTransferWorksForERC20":{"placeholderNum":1122,"encodedItems":[{"b64Body":"Cg8KCQjLmbSuBhDhDBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloyCiISIBHC0qPH/RNOxAD7iDgLh12sAVu3KuSYRcUctCvGwUkHEICglKWNHUoFCIDO2gM=","b64Record":"CiUIFhIDGOMIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjApx6hpghDcZGRWlSkjiCvpTVua5cdQP35QOUU63mkCfHzYy8ep466avjqLKJulNPwaDAiHmrSuBhDChcftAiIPCgkIy5m0rgYQ4QwSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIbCgsKAhgCEP+/qMqaOgoMCgMY4wgQgMCoypo6"},{"b64Body":"Cg8KCQjMmbSuBhDjDBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIAti7i5iG4muzgpo6DPnC6QM5nQh8JNlXyaQzIiPS58/EICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGOQIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCNDetUw6XTMqvgdqHa1oV7o2whibbIyNxRg6mWet3e1nX4344P1gKqUJ2EG3PwgRcaDAiImrSuBhC03sibASIPCgkIzJm0rgYQ4wwSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxjkCBCAqNa5Bw=="},{"b64Body":"Cg8KCQjMmbSuBhDlDBICGAISAhgDGKWr3ugCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAScKCXRva2VuTmFtZRIFRkRGR0YgBSoDGOQIagwIiOiOsgYQkceq7AI=","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGOUIEjCJJ5rvE9rMewIuAFvBORSIvuKQi2MHhhreXMFLZj9Sh4zXg1w/zuxqZer4orSic5AaDAiImrSuBhCDooKKAyIPCgkIzJm0rgYQ5QwSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWg4KAxjlCBIHCgMY5AgQCnIKCgMY5QgSAxjkCA=="},{"b64Body":"Cg8KCQjNmbSuBhDrDBICGAISAhgDGOC2iyAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGOMIEgMY5Qg=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwENJl8j+EaJPof53+tgnAShZbwjtozYU8OjYhYhqVr5hGM3fjzcUW3yDEgVQ5pkn1GgwIiZq0rgYQ5uPcmwEiDwoJCM2ZtK4GEOsMEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"ChEKCQjNmbSuBhDtDBICGAIgAVpqCiM6IQMTc+rjCa9Eq+DWfhHt9t/he2kiRZGfOKzHXJSgLmogmUoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50cAGSASM6IQMTc+rjCa9Eq+DWfhHt9t/he2kiRZGfOKzHXJSgLmogmQ==","b64Record":"CgcIFhIDGOYIEjCHNokNFdgSX1HE8b5CCXLAUV6YQXQL86H9bVDbEbRX58oROlMg7+0Qbsyx9Xy+V2AaDAiJmrSuBhDarpaKAyIRCgkIzZm0rgYQ7QwSAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARRgn8w9Vg5Jy3IFXL+IgZgx/0v98A=="},{"b64Body":"Cg8KCQjNmbSuBhDtDBICGAISAhgDGOufNiICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcjsSOQoDGOUIEgcKAxjkCBAFEikKJSIjOiEDE3Pq4wmvRKvg1n4R7fbf4XtpIkWRnzisx1yUoC5qIJkQBg==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwvwJM4tQ5Yx6KKb6qgdUu61nHT/KqMUth9JBmKIliZjHLKtbySaOWYDkurZdMFSnkGgwIiZq0rgYQ266WigMiDwoJCM2ZtK4GEO0MEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAFoXCgMY5QgSBwoDGOQIEAUSBwoDGOYIEAZyCgoDGOUIEgMY5gg="},{"b64Body":"ChAKCQjOmbSuBhDvDBIDGOMIEgIYAxjMlOEVIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA/YBCu0BAvjqggEqgKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIMPQkCUAAAAAAAAAAAAAAAAAAAAAAAABGWAuESpBZy7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8CAoCLiQwQHNax+7qw/585k9c2qfbW+K9D9hQDUuTLhQ+YboGS0J0IFZQl/AZYAxzyDyB1WNJcBiXUOsiiE3KS/M9omGIDKte4B","b64Record":"CiUIFiIDGOUIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBbhPDzwYKWkPzbAqO7zFGjnlMyeO3CPCjySTPvvNrmNFiGE+tQW0lmmsKz9A2N0yQaDAiKmrSuBhCTjoOlASIQCgkIzpm0rgYQ7wwSAxjjCCogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wzPrrMDqUBgoDGOUIEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASKAAgAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAIAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAEAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAACAAAAAAAAAAAAAAAAogOowMpADCgMY5QgSgAIAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAACAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAABAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAgAAAAAAAAAAAAAAAGiDd8lKtG+LIm2nCsGj8N42qlSun8WPEoRYo9VpN9SOz7xogAAAAAAAAAAAAAAAAYJ/MPVYOSctyBVy/iIGYMf9L/fAaIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARjIiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1DAhD1iRKkFnLsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEYwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADagMY5gh6AggBUjoKCQoCGAMQmpnIAQoJCgIYYhDm2N1XCgoKAxigBhDMgZkECgoKAxihBhDMgZkECgoKAxjjCBCX9ddhigEg+rHhP8hYIs4POgaQZUSXnNqBwF1UrZh5hUCGebXutXs="},{"b64Body":"ChIKCQjOmbSuBhDvDBIDGOMIIAFyGRIXCgMY5QgSBwoDGOMIEAYSBwoDGOYIEAU=","b64Record":"CgIIFhIwqmMSibnryt+BVDqN3Ydddm/II5YMsGeLi14cMaYCTgsFvPMWeGLT+OycqCiGnsWxGgwIipq0rgYQlI6DpQEiEgoJCM6ZtK4GEO8MEgMY4wggATqRAQoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASiFblCw0TpiXGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEZakFnLsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEYwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADagMY5ghSAFoXCgMY5QgSBwoDGOMIEAYSBwoDGOYIEAV6DAiKmrSuBhCTjoOlAQ=="}]},"transferHbarsViaEip2930TxSuccessfully":{"placeholderNum":1127,"encodedItems":[{"b64Body":"Cg8KCQjTmbSuBhCHDRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlorCiISIDV57emDosNTMsZmPRckp1X5fJGrpQsmZPAQwQK1M8kgSgUIgM7aAw==","b64Record":"CiUIFhIDGOgIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAS08/vQ2/1bHRn2ebUBRvK+7JmDwuQQXXZ7eSXSKeZ8x7CYUWzLt2nDZAnGuop2csaCwiPmrSuBhDd4qVBIg8KCQjTmbSuBhCHDRICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgA="},{"b64Body":"Cg8KCQjTmbSuBhCJDRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIESvWgj6/9pIclVyQmcGkGwF8KyEGe/WjRX7tAQwAzC4EICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGOkIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjByEraaYFjAe/guyL6ZNAmXqa2Q1J3TxU9bZEiTwyUrq+UkeZiHZ6HL4OLI2WPqJxkaDAiPmrSuBhC/vLWvAiIPCgkI05m0rgYQiQ0SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIfCg0KAhgCEP//663M7JACCg4KAxjpCBCAgOytzOyQAg=="},{"b64Body":"ChEKCQjUmbSuBhCLDRICGAIgAVpoCiM6IQO2cNhW58JAdomhzeHYVlUlYtP4GLSh9DhKBZCnFusFhUoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiEDtnDYVufCQHaJoc3h2FZVJWLT+Bi0ofQ4SgWQpxbrBYU=","b64Record":"CgcIFhIDGOoIEjCfPe8jm3VvhmfX5Fb+bzsbQmsiHHpukJk8agdEAKJJn+Kx84L1WlS0VCdMFwZpOkMaCwiQmrSuBhDCwrU3IhEKCQjUmbSuBhCLDRICGAIgASoUYXV0by1jcmVhdGVkIGFjY291bnRSAKoBFI9y+HbyJE18VHnrXe2ytRS20lw5"},{"b64Body":"Cg8KCQjUmbSuBhCLDRICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohA7Zw2FbnwkB2iaHN4dhWVSVi0/gYtKH0OEoFkKcW6wWFEICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwrHxZxir972x21e/6gKvi70wVXWSXMOkm1vHTutYu0giFJ9X5FLs7jXBQHscSxH2IGgsIkJq0rgYQw8K1NyIPCgkI1Jm0rgYQiw0SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxjqCBCAkN/ASg=="},{"b64Body":"ChAKCQjUmbSuBhCVDRIDGOkIEgIYAxiZ57UVIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA5gBCo8BAfiMggEqgKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIMehICUAAAAAAAAAAAAAAAAAAAAAAAABGiIRWORgkT0AACAwAGgJElkXqGXY7CjjDzXmdSl2ZKqJuRuLHAcW+3kvvzNOOmgZZcX/zfvKyw6mMJ2HXl+3PlB5RK4oFrUIPap//1/yGsYgMq17gE=","b64Record":"CiUIFiIDGOgIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCkatSP1H6NBFjVT8cDfkJ+ln53msu9iu1f5euvMJYHuTlCLsJ+uPtg/rbDuiVFzPgaDAiQmrSuBhD0p+69AiIQCgkI1Jm0rgYQlQ0SAxjpCCogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wmbPLSzqfAgoDGOgIIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACiA1GFQgIl6WIDKte4BagMY6gh6AggBUlYKCQoCGAMQqozDAQoKCgIYYhCIgLKNAQoKCgMYoAYQgO2QBAoKCgMYoQYQgO2QBAoLCgMY6AgQgJTr3AMKCwoDGOkIELHmlpcBCgsKAxjqCBD/k+vcA4oBIJ5EVO5io3VTmk5L9NixKUJOrhNtleorRPUiXFf+oqlH"}]},"callToTokenAddressViaEip2930TxSuccessfully":{"placeholderNum":1131,"encodedItems":[{"b64Body":"Cg8KCQjZmbSuBhCtDRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIBU4tzOOaD6EalWWmJiEa19J/IMerzzMI6lF7t8zn88GEICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGOwIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAoV0e6BXDcOSrq+tqSd60oAcVuAnYpyFEMYRBxPK2hHesK7C0LkSX1TxcirUqoPwoaDAiVmrSuBhD3pbXeASIPCgkI2Zm0rgYQrQ0SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIfCg0KAhgCEP//663M7JACCg4KAxjsCBCAgOytzOyQAg=="},{"b64Body":"Cg8KCQjZmbSuBhCvDRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIEzTrP8qa92DAAX1rkOttqeUYorjivx7a2sr/HHIuR44EICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGO0IKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBtOCOc3dw8bO5uxBCseETY/Ld8liWuIJsifzuT5tRfIecGm/h3ppkRpDqBAb2iRXkaDAiVmrSuBhDXhqrbAyIPCgkI2Zm0rgYQrw0SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxjtCBCAqNa5Bw=="},{"b64Body":"ChEKCQjambSuBhCxDRICGAIgAVpoCiM6IQKx8Opf5ZXAju9fqELAnqm0ByjIpe40P3NIHkh1VNP7iEoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiECsfDqX+WVwI7vX6hCwJ6ptAcoyKXuND9zSB5IdVTT+4g=","b64Record":"CgcIFhIDGO4IEjAJwtK4xxf76lfeQI0CNM5gTNfoVk+qQ3Vq2n/6clvm8CGjj0mjMxMaqh8EKfGpbTcaDAiWmrSuBhCX6ILtASIRCgkI2pm0rgYQsQ0SAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARSTQKuyHJ5IbKd0VbevtdYGUiPgiA=="},{"b64Body":"Cg8KCQjambSuBhCxDRICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohArHw6l/llcCO71+oQsCeqbQHKMil7jQ/c0geSHVU0/uIEICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwnL54xE6JDtOBdbzChdUUA6bCtS1cb6gauBRAoE4vVfUCjyJhVGmlH45m8GnRSLASGgwIlpq0rgYQmOiC7QEiDwoJCNqZtK4GELENEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SGQoKCgIYAhD/j9/ASgoLCgMY7ggQgJDfwEo="},{"b64Body":"Cg8KCQjambSuBhCzDRICGAISAhgDGL7W8vsCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAXgKDWZ1bmdpYmxlVG9rZW4SCFFLQ0laSVdGIDIqAxjtCDIjOiECsfDqX+WVwI7vX6hCwJ6ptAcoyKXuND9zSB5IdVTT+4hSIzohArHw6l/llcCO71+oQsCeqbQHKMil7jQ/c0geSHVU0/uIagwIluiOsgYQ3ZWZwwM=","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGO8IEjBgvsA3GX2Bfx6lJL5SHAY1WnZdr9cvkT9grg2INrWpyV7aQAYCKRuheQTM+t10qWsaDAiWmrSuBhCEzbLbAyIPCgkI2pm0rgYQsw0SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWg4KAxjvCBIHCgMY7QgQZHIKCgMY7wgSAxjtCA=="},{"b64Body":"Cg8KCQjbmbSuBhC1DRICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAiX6I6yBhDH4u3aARptCiISIMh18qpt/VjC69pLAqEJeG0qUaO/eM/Mj5VIuIBNJDTYCiM6IQIUyira2bzXHFdxUamdCMlAY6Rs4/F6XpAbQeya+vY5MAoiEiARI2eMj3GivZYFs4dxzpq5ij7dWOYlKy+Br2B+qE6GUCIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGPAIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDKoq0z9vgKywxAdI7A74lrkyMsBYEYW2PEkrFYNaQ+5PBTaLoKjzMcAfEexGVF+3AaDAiXmrSuBhDU2//sASIPCgkI25m0rgYQtQ0SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjbmbSuBhC5DRICGAISAhgDGIydjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxjwCCKAIDYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMGE1NzgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDBjZjU3NjAwMDM1NjBlMDFjODA2M2JlYWJhY2M4MTE2MTAwOGM1NzgwNjNlNGRjMmFhNDExNjEwMDY2NTc4MDYzZTRkYzJhYTQxNDYxMDE4MTU3ODA2M2Y0Yjc5ZGE1MTQ2MTAxOTQ1NzgwNjNmNzg4OGFlYzE0NjEwMWE3NTc4MDYzZjc5Yzc1NjgxNDYxMDFiYTU3NjAwMDgwZmQ1YjgwNjNiZWFiYWNjODE0NjEwMTQ4NTc4MDYzZDQ0OWE4MzIxNDYxMDE1YjU3ODA2M2UxZjIxYzY3MTQ2MTAxNmU1NzYwMDA4MGZkNWI4MDYzMDE5ODQ4OTIxNDYxMDBkNDU3ODA2MzE1ZGFjYmVhMTQ2MTAwZTk1NzgwNjMxZjg0YjJiNzE0NjEwMGZjNTc4MDYzOTI3ZGExMDUxNDYxMDEwZjU3ODA2Mzk4ZGNhNWJlMTQ2MTAxMjI1NzgwNjNhODZlMzU3NjE0NjEwMTM1NTc1YjYwMDA4MGZkNWI2MTAwZTc2MTAwZTIzNjYwMDQ2MTA3NDY1NjViNjEwMWNkNTY1YjAwNWI2MTAwZTc2MTAwZjczNjYwMDQ2MTA3Njg1NjViNjEwMjM3NTY1YjYxMDBlNzYxMDEwYTM2NjAwNDYxMDdiMzU2NWI2MTAyYjk1NjViNjEwMGU3NjEwMTFkMzY2MDA0NjEwN2VmNTY1YjYxMDMzMzU2NWI2MTAwZTc2MTAxMzAzNjYwMDQ2MTA3Njg1NjViNjEwM2FiNTY1YjYxMDBlNzYxMDE0MzM2NjAwNDYxMDc0NjU2NWI2MTAzZTg1NjViNjEwMGU3NjEwMTU2MzY2MDA0NjEwN2IzNTY1YjYxMDQyNjU2NWI2MTAwZTc2MTAxNjkzNjYwMDQ2MTA3NDY1NjViNjEwNDlhNTY1YjYxMDBlNzYxMDE3YzM2NjAwNDYxMDdiMzU2NWI2MTA0ZmM1NjViNjEwMGU3NjEwMThmMzY2MDA0NjEwNzQ2NTY1YjYxMDUzMTU2NWI2MTAwZTc2MTAxYTIzNjYwMDQ2MTA3YjM1NjViNjEwNTkzNTY1YjYxMDBlNzYxMDFiNTM2NjAwNDYxMDgzMjU2NWI2MTA2Mzc1NjViNjEwMGU3NjEwMWM4MzY2MDA0NjEwODY1NTY1YjYxMDZhNjU2NWI4MDYwMDE2MDAxNjBhMDFiMDMxNjYzMDZmZGRlMDM2MDQwNTE4MTYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MDAwNjA0MDUxODA4MzAzODE4NjVhZmExNTgwMTU2MTAyMGI1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA2MDQwNTEzZDYwMDA4MjNlNjAxZjNkOTA4MTAxNjAxZjE5MTY4MjAxNjA0MDUyNjEwMjMzOTE5MDgxMDE5MDYxMDhkMTU2NWI1MDUwNTY1YjYwNDA1MTYzMjNiODcyZGQ2MGUwMWI4MTUyNjAwMTYwMDE2MGEwMWIwMzg0ODExNjYwMDQ4MzAxNTI4MzgxMTY2MDI0ODMwMTUyNjA0NDgyMDE4MzkwNTI4NTE2OTA2MzIzYjg3MmRkOTA2MDY0MDE2MDIwNjA0MDUxODA4MzAzODE2MDAwODc1YWYxMTU4MDE1NjEwMjhlNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTAyYjI5MTkwNjEwOTdlNTY1YjUwNTA1MDUwNTA1NjViNjA0MDUxNjNhOTA1OWNiYjYwZTAxYjgxNTI2MDAxNjAwMTYwYTAxYjAzODM4MTE2NjAwNDgzMDE1MjYwMjQ4MjAxODM5MDUyODQxNjkwNjNhOTA1OWNiYjkwNjA0NDAxNWI2MDIwNjA0MDUxODA4MzAzODE2MDAwODc1YWYxMTU4MDE1NjEwMzA5NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTAzMmQ5MTkwNjEwOTdlNTY1YjUwNjAwMDgwZmQ1YjYwNDA1MTYzNmViMTc2OWY2MGUxMWI4MTUyNjAwMTYwMDE2MGEwMWIwMzgzODExNjYwMDQ4MzAxNTI4MjgxMTY2MDI0ODMwMTUyODQxNjkwNjNkZDYyZWQzZTkwNjA0NDAxNjAyMDYwNDA1MTgwODMwMzgxODY1YWZhMTU4MDE1NjEwMzgxNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTAzYTU5MTkwNjEwOWEwNTY1YjUwNTA1MDUwNTY1YjYwNDA1MTYzMjNiODcyZGQ2MGUwMWI4MTUyNjAwMTYwMDE2MGEwMWIwMzg0ODExNjYwMDQ4MzAxNTI4MzgxMTY2MDI0ODMwMTUyNjA0NDgyMDE4MzkwNTI4NTE2OTA2MzIzYjg3MmRkOTA2MDY0MDE2MTAyZWE1NjViODA2MDAxNjAwMTYwYTAxYjAzMTY2Mzk1ZDg5YjQxNjA0MDUxODE2M2ZmZmZmZmZmMTY2MGUwMWI4MTUyNjAwNDAxNjAwMDYwNDA1MTgwODMwMzgxODY1YWZhMTU4MDE1NjEwMjBiNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjYwNDA1MTYzYTkwNTljYmI2MGUwMWI4MTUyNjAwMTYwMDE2MGEwMWIwMzgzODExNjYwMDQ4MzAxNTI2MDI0ODIwMTgzOTA1Mjg0MTY5MDYzYTkwNTljYmI5MDYwNDQwMTViNjAyMDYwNDA1MTgwODMwMzgxNjAwMDg3NWFmMTE1ODAxNTYxMDQ3NjU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAxZjE5NjAxZjgyMDExNjgyMDE4MDYwNDA1MjUwODEwMTkwNjEwM2E1OTE5MDYxMDk3ZTU2NWI4MDYwMDE2MDAxNjBhMDFiMDMxNjYzMzEzY2U1Njc2MDQwNTE4MTYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MDIwNjA0MDUxODA4MzAzODE4NjVhZmExNTgwMTU2MTA0ZDg1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA2MDQwNTEzZDYwMWYxOTYwMWY4MjAxMTY4MjAxODA2MDQwNTI1MDgxMDE5MDYxMDIzMzkxOTA2MTA5Yjk1NjViNjA0MDUxNjMwOTVlYTdiMzYwZTAxYjgxNTI2MDAxNjAwMTYwYTAxYjAzODM4MTE2NjAwNDgzMDE1MjYwMjQ4MjAxODM5MDUyODQxNjkwNjMwOTVlYTdiMzkwNjA0NDAxNjEwNDU3NTY1YjgwNjAwMTYwMDE2MGEwMWIwMzE2NjMxODE2MGRkZDYwNDA1MTgxNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYwMjA2MDQwNTE4MDgzMDM4MTg2NWFmYTE1ODAxNTYxMDU2ZjU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAxZjE5NjAxZjgyMDExNjgyMDE4MDYwNDA1MjUwODEwMTkwNjEwMjMzOTE5MDYxMDlhMDU2NWI2MDQwNTE2MDAxNjAwMTYwYTAxYjAzODM4MTE2NjAyNDgzMDE1MjYwNDQ4MjAxODM5MDUyNjAwMDkxODI5MTg2MTY5MDYwNjQwMTYwNDA4MDUxNjAxZjE5ODE4NDAzMDE4MTUyOTE4MTUyNjAyMDgyMDE4MDUxNjAwMTYwMDE2MGUwMWIwMzE2NjNhOTA1OWNiYjYwZTAxYjE3OTA1MjUxNjEwNWVkOTE5MDYxMDlkYzU2NWI2MDAwNjA0MDUxODA4MzAzODE4NTVhZjQ5MTUwNTAzZDgwNjAwMDgxMTQ2MTA2Mjg1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTA2MmQ1NjViNjA2MDkxNTA1YjUwNTA1MDUwNTA1MDUwNTA1NjViNjA0MDUxNjM3MGEwODIzMTYwZTAxYjgxNTI2MDAxNjAwMTYwYTAxYjAzODI4MTE2NjAwNDgzMDE1MjgzMTY5MDYzNzBhMDgyMzE5MDYwMjQwMTYwMjA2MDQwNTE4MDgzMDM4MTg2NWFmYTE1ODAxNTYxMDY3ZDU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAxZjE5NjAxZjgyMDExNjgyMDE4MDYwNDA1MjUwODEwMTkwNjEwNmExOTE5MDYxMDlhMDU2NWI1MDUwNTA1NjViNjAwMDViODE4MTEwMTU2MTA2YTE1NzgyNjAwMTYwMDE2MGEwMWIwMzE2NjMwNmZkZGUwMzYwNDA1MTgxNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYwMDA2MDQwNTE4MDgzMDM4MTg2NWFmYTE1ODAxNTYxMDZlZjU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAwMDgyM2U2MDFmM2Q5MDgxMDE2MDFmMTkxNjgyMDE2MDQwNTI2MTA3MTc5MTkwODEwMTkwNjEwOGQxNTY1YjUwODA2MTA3MjI4MTYxMDlmODU2NWI5MTUwNTA2MTA2YTk1NjViODAzNTYwMDE2MDAxNjBhMDFiMDM4MTE2ODExNDYxMDc0MTU3NjAwMDgwZmQ1YjkxOTA1MDU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTA3NTg1NzYwMDA4MGZkNWI2MTA3NjE4MjYxMDcyYTU2NWI5MzkyNTA1MDUwNTY1YjYwMDA4MDYwMDA4MDYwODA4NTg3MDMxMjE1NjEwNzdlNTc2MDAwODBmZDViNjEwNzg3ODU2MTA3MmE1NjViOTM1MDYxMDc5NTYwMjA4NjAxNjEwNzJhNTY1YjkyNTA2MTA3YTM2MDQwODYwMTYxMDcyYTU2NWI5Mzk2OTI5NTUwOTI5MzYwNjAwMTM1OTI1MDUwNTY1YjYwMDA4MDYwMDA2MDYwODQ4NjAzMTIxNTYxMDdjODU3NjAwMDgwZmQ1YjYxMDdkMTg0NjEwNzJhNTY1YjkyNTA2MTA3ZGY2MDIwODUwMTYxMDcyYTU2NWI=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw4AitFC8h8GKxFfXPrkk0TbYtigX4+OBtm1pS7aWqJ7mun7Kv3lTzKsPwWrajfSxiGgsImJq0rgYQ/p7pDCIPCgkI25m0rgYQuQ0SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjcmbSuBhC/DRICGAISAhgDGKq4szIiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIB9gkSAxjwCCLuCTkxNTA2MDQwODQwMTM1OTA1MDkyNTA5MjUwOTI1NjViNjAwMDgwNjAwMDYwNjA4NDg2MDMxMjE1NjEwODA0NTc2MDAwODBmZDViNjEwODBkODQ2MTA3MmE1NjViOTI1MDYxMDgxYjYwMjA4NTAxNjEwNzJhNTY1YjkxNTA2MTA4Mjk2MDQwODUwMTYxMDcyYTU2NWI5MDUwOTI1MDkyNTA5MjU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMDg0NTU3NjAwMDgwZmQ1YjYxMDg0ZTgzNjEwNzJhNTY1YjkxNTA2MTA4NWM2MDIwODQwMTYxMDcyYTU2NWI5MDUwOTI1MDkyOTA1MDU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMDg3ODU3NjAwMDgwZmQ1YjYxMDg4MTgzNjEwNzJhNTY1Yjk0NjAyMDkzOTA5MzAxMzU5MzUwNTA1MDU2NWI2MzRlNDg3YjcxNjBlMDFiNjAwMDUyNjA0MTYwMDQ1MjYwMjQ2MDAwZmQ1YjYwMDA1YjgzODExMDE1NjEwOGMwNTc4MTgxMDE1MTgzODIwMTUyNjAyMDAxNjEwOGE4NTY1YjgzODExMTE1NjEwM2E1NTc1MDUwNjAwMDkxMDE1MjU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTA4ZTM1NzYwMDA4MGZkNWI4MTUxNjdmZmZmZmZmZmZmZmZmZmZmODA4MjExMTU2MTA4ZmI1NzYwMDA4MGZkNWI4MTg0MDE5MTUwODQ2MDFmODMwMTEyNjEwOTBmNTc2MDAwODBmZDViODE1MTgxODExMTE1NjEwOTIxNTc2MTA5MjE2MTA4OGY1NjViNjA0MDUxNjAxZjgyMDE2MDFmMTk5MDgxMTY2MDNmMDExNjgxMDE5MDgzODIxMTgxODMxMDE3MTU2MTA5NDk1NzYxMDk0OTYxMDg4ZjU2NWI4MTYwNDA1MjgyODE1Mjg3NjAyMDg0ODcwMTAxMTExNTYxMDk2MjU3NjAwMDgwZmQ1YjYxMDk3MzgzNjAyMDgzMDE2MDIwODgwMTYxMDhhNTU2NWI5Nzk2NTA1MDUwNTA1MDUwNTA1NjViNjAwMDYwMjA4Mjg0MDMxMjE1NjEwOTkwNTc2MDAwODBmZDViODE1MTgwMTUxNTgxMTQ2MTA3NjE1NzYwMDA4MGZkNWI2MDAwNjAyMDgyODQwMzEyMTU2MTA5YjI1NzYwMDA4MGZkNWI1MDUxOTE5MDUwNTY1YjYwMDA2MDIwODI4NDAzMTIxNTYxMDljYjU3NjAwMDgwZmQ1YjgxNTE2MGZmODExNjgxMTQ2MTA3NjE1NzYwMDA4MGZkNWI2MDAwODI1MTYxMDllZTgxODQ2MDIwODcwMTYxMDhhNTU2NWI5MTkwOTEwMTkyOTE1MDUwNTY1YjYwMDA2MDAwMTk4MjE0MTU2MTBhMWE1NzYzNGU0ODdiNzE2MGUwMWI2MDAwNTI2MDExNjAwNDUyNjAyNDYwMDBmZDViNTA2MDAxMDE5MDU2ZmVhMjY0Njk3MDY2NzM1ODIyMTIyMDkzZGI3ZDJiZGQwOTYyNTBhZGQ4ZWZlNmNjOWJhNGExZjdjZjEzOGQ0MTBiNTQ0ODlmNmFlYmY0NDI5NmRmM2Y2NDczNmY2YzYzNDMwMDA4MGIwMDMz","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwEkTRXZhk5jnZcVoBXUqNLq8x60BzMO+An9adfyWr8qeO+GNR3ornluaL4rKz5gWqGgwImJq0rgYQvNyi+wEiDwoJCNyZtK4GEL8NEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjdmbSuBhDBDRICGAISAhgDGK/Dto0EIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5ClgEKAxjwCBpzKnEIAhJtCiISIOdXjlyVGOJUFsf+PODc/6SvxqrzsSNlTHRxbIDHNqwLCiM6IQLnd+MeBruSDHBaCwv1NcveKTmKP4DA46HVrLXsgMOgpQoiEiD0u0+UPk79UI2Fo+SrkqIXQtuHdeKqr02CUvsE6Y3YtiCQoQ9CBQiAztoDUgBaAGoLY2VsbGFyIGRvb3I=","b64Record":"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"},{"b64Body":"ChAKCQjdmbSuBhDDDRIDGOwIEgIYAxigl8MVIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA7UBCqwBAvipggEqgKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0alKIAIMPQkCUAAAAAAAAAAAAAAAAAAAAAAAABG+AhBgWDd3AAaBCAR3b67laPWnjCwLhhiL4wWkfExXkvTNVi2GnEWIpp6BMqRhxPukwykzDGUAfm203vvtxu9enYaKi4vhjJw6MahiAyrXuAQ==","b64Record":"CiUIFiIDGO8IKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCrivYdVlPiNWEXqTcCYeiGWvTHMtNdiCuiVWBLucgjMPAtX0nRR5NtkK3nxO0KA7MaDAiZmrSuBhC4nPX6ASIQCgkI3Zm0rgYQww0SAxjsCCogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4woP3NMDrBAgoDGO8IEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMiKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAogOowUMCEPWIEGBYN3WoDGO4IegIIAVJGCgkKAhgDEODVxAEKCQoCGGIQnMawVwoKCgMYoAYQoq+TBAoKCgMYoQYQoq+TBAoKCgMY7AgQv7jEMQoKCgMY7ggQ/8HXL4oBIOlThsrU6YKBtJGGBZh1n0Zqtkt8wn4ptn2MqMojz5I6"},{"b64Body":"ChIKCQjdmbSuBhDDDRIDGOwIIAE6JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEbxgWDd0=","b64Record":"CgIIFhIw0BBDc1c+Cua5T16sZ6Bjlpdb3YBe70zyP8xsmlkRGnyg4DvRqvKUti7KbE8rIRg0GgwImZq0rgYQuZz1+gEiEgoJCN2ZtK4GEMMNEgMY7AggATouCgMY5wISIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyKGRqAxjuCFIAegwImZq0rgYQuJz1+gE="}]},"transferTokensViaEip2930TxSuccessfully":{"placeholderNum":1138,"encodedItems":[{"b64Body":"Cg8KCQjimbSuBhDbDRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIN6DOblyOHPNkT6/EUMCbwv+mDbqJQ+/b4iSGS+BENMmEICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGPMIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBGWnIt6bE6SoPIpUZYQeExCthIJ+OMIHehnaQQCosfinvOexCCDMAJ8L/ZzRSMeaEaDAiemrSuBhCi1qKNASIPCgkI4pm0rgYQ2w0SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxjzCBCAqNa5Bw=="},{"b64Body":"Cg8KCQjimbSuBhDdDRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIIVEb9NwLVfjpbLW2PQg+YSe7TVzBN4T5qQ5VY1hnrC9EICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGPQIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDkseX0VpuQeG/vlXH+TfP9eLqEqFv5ZgGGFr9TobjlMRuKnsGWFEU3Yh4tUtCvXsMaDAiemrSuBhCq3J73AiIPCgkI4pm0rgYQ3Q0SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxj0CBCAqNa5Bw=="},{"b64Body":"Cg8KCQjjmbSuBhDfDRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIGwW1s9uIiCobyrA5Q0++7evXBizOo0T6gwbvEduSqiAEICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGPUIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAwgXfxY6PvyKh6hDhGdyeD9CWyVDjdRfT76fvPipibm40WSC6Chtj9zf69P+iXRDUaDAifmrSuBhC5naegASIPCgkI45m0rgYQ3w0SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIfCg0KAhgCEP//663M7JACCg4KAxj1CBCAgOytzOyQAg=="},{"b64Body":"Cg8KCQjjmbSuBhDhDRICGAISAhgDGKWr3ugCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAScKCXRva2VuTmFtZRIFRkRGR0YgBSoDGPQIagwIn+iOsgYQ/77F8AI=","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGPYIEjCy5F4mvd1YAIMUhpPkV3UhQzvjgxxcVTYf9WnfF17au9DqG/dk0ZurOuMARet9lgQaDAifmrSuBhCdnuGOAyIPCgkI45m0rgYQ4Q0SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWg4KAxj2CBIHCgMY9AgQCnIKCgMY9ggSAxj0CA=="},{"b64Body":"Cg8KCQjkmbSuBhDnDRICGAISAhgDGOC2iyAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGPMIEgMY9gg=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw6W3HL/oSuEKXsu2ilbuuf9057CicHZiRGcMNoqOcAqvgXabGm9EtGzIbG60AD4UxGgwIoJq0rgYQrOXZoAEiDwoJCOSZtK4GEOcNEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"ChEKCQjkmbSuBhDpDRICGAIgAVpqCiM6IQNwVTGS1BMQfvW9M0P764vqOQMGXrhR0H2qv8V6Rb/S1EoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50cAGSASM6IQNwVTGS1BMQfvW9M0P764vqOQMGXrhR0H2qv8V6Rb/S1A==","b64Record":"CgcIFhIDGPcIEjAGh2PNwYZt5yCM7nNDWzR1Ph+MnqSk5JKD7UCue8lkmDRJC6eELYuAbO/7tmt5PtIaDAigmrSuBhComvmOAyIRCgkI5Jm0rgYQ6Q0SAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARQJrsfizvIPu6BVX/cjasC3RDWOEg=="},{"b64Body":"Cg8KCQjkmbSuBhDpDRICGAISAhgDGOufNiICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcjsSOQoDGPYIEgcKAxj0CBAFEikKJSIjOiEDcFUxktQTEH71vTND++uL6jkDBl64UdB9qr/FekW/0tQQBg==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw3HhhMgznMCGamv6WUnPvSj3qCXYuMUsFTHq8tJkwki6mtWDu25R3rTm4ojLiL+S6GgwIoJq0rgYQqZr5jgMiDwoJCOSZtK4GEOkNEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAFoXCgMY9ggSBwoDGPQIEAUSBwoDGPcIEAZyCgoDGPYIEgMY9wg="},{"b64Body":"ChAKCQjlmbSuBhDrDRIDGPUIEgIYAxiz+NEVIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA9UBCswBAfjJggEqgKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIMPQkCUAAAAAAAAAAAAAAAAAAAAAAAABHaAuESpBZy7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8CAoOg3XDrPKT/Mb0x8qrAmeyqcw7WcSffWxMC9Tz4HQtH2oBJHjfFVuesFlefrl5piUuom5HfQVJD64841cRJwI+hxGIDKte4B","b64Record":"CiUIFiIDGPYIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAFFkv8nz2En4jKaj7FgX/NWzcBVrMJiF5Ix+658omvKbEDK3Y1bw+87gPr/uUO/HQaDAihmrSuBhCw3MegASIQCgkI5Zm0rgYQ6w0SAxj1CCogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4ws97cMDqUBgoDGPYIEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASKAAgAAAAgAAAAAAACAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAEAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAIAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAogOowMpADCgMY9ggSgAIAAAAIAAAAAAAAgAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAABAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEACAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGiDd8lKtG+LIm2nCsGj8N42qlSun8WPEoRYo9VpN9SOz7xogAAAAAAAAAAAAAAAACa7H4s7yD7ugVV/3I2rAt0Q1jhIaIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARzIiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1DAhD1iRKkFnLsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEcwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADagMY9wh6AggBUjoKCQoCGAMQgLTGAQoJCgIYYhCG48ZXCgoKAxigBhDwkpYECgoKAxihBhDwkpYECgoKAxj1CBDlvLlhigEggc0JWY2JkJ054XfDG59tnEAEnC1BOK4jkc5jQbJ+ZQ4="},{"b64Body":"ChIKCQjlmbSuBhDrDRIDGPUIIAFyGRIXCgMY9ggSBwoDGPMIEAYSBwoDGPcIEAU=","b64Record":"CgIIFhIw8nKWmWk1yjOOAVo1T1ZamqMrej+VNr2n7Iwg3OKekr9d9ECv2DnCrwWEtZgNnl08GgwIoZq0rgYQsdzHoAEiEgoJCOWZtK4GEOsNEgMY9QggATqRAQoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASiFblCw0TpiXGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEdqkFnLsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEcwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADagMY9whSAFoXCgMY9ggSBwoDGPMIEAYSBwoDGPcIEAV6DAihmrSuBhCw3MegAQ=="}]},"accountDeletionResetsTheAliasNonce":{"placeholderNum":1144,"encodedItems":[{"b64Body":"Cg8KCQjqmbSuBhCDDhICGAISAhgDGI/lrRYiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlozCiISIJAG6M9WFaptAQR/Zwdv1CsE4M3saAzUKAIb1TxrnAEZEICU69wDSgUIgM7aA3AC","b64Record":"CiUIFhIDGPkIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjA6TJ9mPXkDTYSAPhlAEGd4z0vPd7M+H+oWt8VFEBvng/VwwdDqyyZj2DrhjBo3WEgaCwimmrSuBhCoyf5AIg8KCQjqmbSuBhCDDhICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUhkKCgoCGAIQ/6fWuQcKCwoDGPkIEICo1rkH"},{"b64Body":"Cg8KCQjqmbSuBhCFDhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIIrBxjYg7X/Ovkwzt9nnCPl86ybPygVNwE+eFcn+1xWYEICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGPoIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCeYzdVrv7xo/Zj2mmfOCS+0ND7kGXbF7+HJnGJuCc/HN8SUlEHBvu2ELfQ8FrHZXQaDAimmrSuBhCWjMmvAiIPCgkI6pm0rgYQhQ4SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxj6CBCAqNa5Bw=="},{"b64Body":"Cg8KCQjrmbSuBhCHDhICGAISAhgDGOn14PsCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAW8KBXRva2VuEghBQ1FOS1VGTSAyKgMY+ggyIzohAxbyLW8+PinVh598aV5kFp+Dq95WKS2duk4CODUbYHZqUiM6IQMW8i1vPj4p1YeffGleZBafg6veViktnbpOAjg1G2B2amoLCKfojrIGEOPdsTg=","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGPsIEjCCdQeoq9uP6q5kGKnLS4eVJ3PioC9HJ5sOYiUglt3F3aFrdQDpFPKfcdMJUeD3O/gaCwinmrSuBhC8gJtBIg8KCQjrmbSuBhCHDhICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgBaDgoDGPsIEgcKAxj6CBBkcgoKAxj7CBIDGPoI"},{"b64Body":"ChEKCQjrmbSuBhCJDhICGAIgAVo4CgIyAEoFCIDO2gNqFGxhenktY3JlYXRlZCBhY2NvdW50kgEUprXyXDFnxfKm+4P6MP7JYZ5hZ1g=","b64Record":"CgcIFhIDGPwIEjDGFpmD0AxPe1rnKFVDo0Wo208ogv22ZFchh+gfGFS49wtXVM5pJ6QhX0PEn0QBaXcaDAinmrSuBhDJmpy5AiIRCgkI65m0rgYQiQ4SAhgCIAEqFGxhenktY3JlYXRlZCBhY2NvdW50UgA="},{"b64Body":"Cg8KCQjrmbSuBhCJDhICGAISAhgDGKKmCCICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOckIKQAoeChYiFAAAAAAAAAAAAAAAAAAAAAAAAAR5EP+H3r4BCh4KFiIUprXyXDFnxfKm+4P6MP7JYZ5hZ1gQgIjevgE=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwsumBkAHvWlqQrRSjQBvWfoBaVx2mvq2xL1TC4W1UGBzrcozzl7KHwxaSplKAE/quGgwIp5q0rgYQypqcuQIiDwoJCOuZtK4GEIkOEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SGgoLCgMY+QgQ/4fevgEKCwoDGPwIEICI3r4B"},{"b64Body":"ChEKCQjsmbSuBhCPDhICGAIgAXoqEgMY/AgaIzohAxbyLW8+PinVh598aV5kFp+Dq95WKS2duk4CODUbYHZq","b64Record":"CgcIFhIDGPwIEjDF34J/uWlx1I4dMRWvNIizhPazfwGL65Rtf5UDP+jzthwLTHn1uh/ooTL6GglJBrQaCwiomrSuBhCK1MtPIhEKCQjsmbSuBhCPDhICGAIgAVIA"},{"b64Body":"Cg8KCQjsmbSuBhCPDhICGAISAhgDGKCXwxUiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpIDtQEKrAEC+KmCASqAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRqUogAgw9CQJQAAAAAAAAAAAAAAAAAAAAAAAAEe4CEGBYN3cCAoAygwXNV4e+wY/IIm5Fcxn7qNRXRk8FCI19GGPw91dgeoHo/vepGHTf6YA65oXvYMu2i0mUu/z2k3WyfGzRaVM8VGIDKte4B","b64Record":"CiUIFiIDGPsIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCBPsJOUNutLupYUcr0mkP6NdXKQTOWHsyQ4Br0oCSF1iXtKYW/ZEpbPUUdfgmbLLcaCwiomrSuBhCL1MtPIg8KCQjsmbSuBhCPDhICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMIDmihs6wQIKAxj7CBIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKIDqMFDAhD1iBBgWDd1qAxj8CHoCCAFSIgoJCgIYAhD/ib4GCgkKAhhiEIDMlTYKCgoDGPwIEP/B1y+KASCHNoP0WikzU89TFOiJW76AaGfY+rEj7hVReTl7abJi3A=="},{"b64Body":"ChEKCQjsmbSuBhCPDhICGAIgAjolCgMY5wIQASIcYY3GXgAAAAAAAAAAAAAAAAAAAAAAAAR7GBYN3Q==","b64Record":"CgIIFhIwlmSDJtlXGc8KdMk7gMrpk2H3c9rotLR4nSSLq4nEa23V61NKdWcfXVn/PGaxY/wEGgsIqJq0rgYQjNTLTyIRCgkI7Jm0rgYQjw4SAhgCIAI6LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMihkagMY/AhSAHoLCKiatK4GEIvUy08="},{"b64Body":"Cg8KCQjsmbSuBhCVDhICGAISAhgDGMHongMiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjmIJCgIYAhIDGPwI","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw102nju9sbTh5HNekT1NdWUa39WvvwkYVDZppxQJXA59MnllSp7tlCDhiogTQn85dGgwIqJq0rgYQw/Xo4wIiDwoJCOyZtK4GEJUOEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SGQoKCgIYAhCAxoaPAQoLCgMY/AgQ/8WGjwE="},{"b64Body":"ChEKCQjtmbSuBhCXDhICGAIgAVo4CgIyAEoFCIDO2gNqFGxhenktY3JlYXRlZCBhY2NvdW50kgEUprXyXDFnxfKm+4P6MP7JYZ5hZ1g=","b64Record":"CgcIFhIDGP0IEjDPBgtr0GwKrUI9u9dfxwUQfsjk5tByEWvGAMSZ5xQNh6jS9gxW2GqsK57MWag8el8aCwipmrSuBhCp8LFdIhEKCQjtmbSuBhCXDhICGAIgASoUbGF6eS1jcmVhdGVkIGFjY291bnRSAA=="},{"b64Body":"Cg8KCQjtmbSuBhCXDhICGAISAhgDGKKmCCICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOckIKQAoeChYiFAAAAAAAAAAAAAAAAAAAAAAAAAR5EP+H3r4BCh4KFiIUprXyXDFnxfKm+4P6MP7JYZ5hZ1gQgIjevgE=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwiPAw1ag4vrn+UwkVpwDf9i6gqeoSVTWbNFrtmXXVG9FDknzZbdz9z+nfHN4q9F5QGgsIqZq0rgYQqvCxXSIPCgkI7Zm0rgYQlw4SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIaCgsKAxj5CBD/h96+AQoLCgMY/QgQgIjevgE="}]}}} \ No newline at end of file diff --git a/hedera-node/test-clients/record-snapshots/HRCPrecompile.json b/hedera-node/test-clients/record-snapshots/HRCPrecompile.json new file mode 100644 index 000000000000..21912b8e7103 --- /dev/null +++ b/hedera-node/test-clients/record-snapshots/HRCPrecompile.json @@ -0,0 +1 @@ +{"specSnapshots":{"hrcNftAndFungibleTokenAssociateFromEOA":{"placeholderNum":1001,"encodedItems":[{"b64Body":"Cg8KCQissZqtBhCJBBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloyCiISIGw/Amw2PCTDn5B6Yk/K6mGvCPJ+aiyGxOaq3oVqb77JEICglKWNHUoFCIDO2gM=","b64Record":"CiUIFhIDGOoHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDZKcVXU3JOnjUxMmbY1PARLD0ZpcmrOqeN/yXocTkZoQ2CftazmaeGQnhD8HC6K0IaCwjosZqtBhD71cEUIg8KCQissZqtBhCJBBICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUhsKCwoCGAIQ/7+oypo6CgwKAxjqBxCAwKjKmjo="},{"b64Body":"Cg8KCQissZqtBhCLBBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIL4ue++zM2lMP+3irVojounFahDtkSyZrHq7CYRWXakkEICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGOsHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjA16XGy8tzZXGHfh11kVHUn0ZB6TV/Qp/LWVbQHxlfy2GxJYYFJ58mgAGcOha6G7Q4aDAjosZqtBhDj5NT5ASIPCgkIrLGarQYQiwQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxjrBxCAqNa5Bw=="},{"b64Body":"Cg8KCQitsZqtBhCNBBICGAISAhgDGPSR4/sCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAW4KBlRva2VuQRIIT0NUT1dWS0sgBSoDGOsHMiISIFfnbYCWvjoZDS5FwVUPfeftGe1yY5ABC5dxA7/g9ZziUiISIFfnbYCWvjoZDS5FwVUPfeftGe1yY5ABC5dxA7/g9ZziagsI6f/0sAYQqLaLDA==","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGOwHEjCcmNI51sePQU8+bSBKwa5qYb6biOc3oCeY5u08lRtbZalB01wLkWrOFmSiaclxgpUaCwjpsZqtBhDjv7AdIg8KCQitsZqtBhCNBBICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgBaDgoDGOwHEgcKAxjrBxAKcgoKAxjsBxIDGOsH"},{"b64Body":"Cg8KCQitsZqtBhCPBBICGAISAhgDGJ6jlPsCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAWsKBlRva2VuQRIDTkZUKgMY6wcyIhIgV+dtgJa+OhkNLkXBVQ995+0Z7XJjkAELl3EDv+D1nOJSIhIgV+dtgJa+OhkNLkXBVQ995+0Z7XJjkAELl3EDv+D1nOJqDAjp//SwBhCAvuuHAogBAQ==","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGO0HEjB1FCZuQ2ZqODeUTaiZpo3ZXOfNBPtET40MiZgfnEqJqJFQ12hU1rCWJNoQgEYgquQaDAjpsZqtBhCTk/ieAiIPCgkIrbGarQYQjwQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAcgoKAxjtBxIDGOsH"},{"b64Body":"Cg8KCQiusZqtBhCRBBICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjgESCwjq//SwBhDw0v8lGm0KIhIgDe0AwksCALSSJO2soaSKfLaCdjWnz0FRhDcPooq7MZwKIzohA2r5cJLxPUlgve3RAJUzAxw++eWIlR1FoCrUaiKpADPECiISIB416eb4Kz4UAtRzicQEo0z7PkVku7hpZgy/I0C4MGn5IgxIZWxsbyBXb3JsZCEqADIA","b64Record":"CiUIFhoDGO4HKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBUymAd6YIy5LcVLFMaCWiFc5UA8PqlVFXvyK3v+n1MMvssH4OCx+wEy72jDGilLkAaCwjqsZqtBhCrwYZEIg8KCQiusZqtBhCRBBICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgA="},{"b64Body":"Cg8KCQiusZqtBhCVBBICGAISAhgDGMTWtDEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBpgkKAxjuByKeCTYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMDIyZjgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDAzNjU3NjAwMDM1NjBlMDFjODA2MzBhNzU0ZGU2MTQ2MTAwM2I1NzgwNjM1YzkyMTdlMDE0NjEwMDU5NTc1YjYwMDA4MGZkNWI2MTAwNDM2MTAwNzc1NjViNjA0MDUxNjEwMDUwOTE5MDYxMDE4MDU2NWI2MDQwNTE4MDkxMDM5MGYzNWI2MTAwNjE2MTAwZWY1NjViNjA0MDUxNjEwMDZlOTE5MDYxMDE4MDU2NWI2MDQwNTE4MDkxMDM5MGYzNWI2MDAwMzA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzMGE3NTRkZTY2MDQwNTE4MTYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MDIwNjA0MDUxODA4MzAzODE2MDAwODc1YWYxMTU4MDE1NjEwMGM2NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTAwZWE5MTkwNjEwMWNjNTY1YjkwNTA5MDU2NWI2MDAwMzA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzNWM5MjE3ZTA2MDQwNTE4MTYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MDIwNjA0MDUxODA4MzAzODE2MDAwODc1YWYxMTU4MDE1NjEwMTNlNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTAxNjI5MTkwNjEwMWNjNTY1YjkwNTA5MDU2NWI2MDAwODE5MDUwOTE5MDUwNTY1YjYxMDE3YTgxNjEwMTY3NTY1YjgyNTI1MDUwNTY1YjYwMDA2MDIwODIwMTkwNTA2MTAxOTU2MDAwODMwMTg0NjEwMTcxNTY1YjkyOTE1MDUwNTY1YjYwMDA4MGZkNWI2MTAxYTk4MTYxMDE2NzU2NWI4MTE0NjEwMWI0NTc2MDAwODBmZDViNTA1NjViNjAwMDgxNTE5MDUwNjEwMWM2ODE2MTAxYTA1NjViOTI5MTUwNTA1NjViNjAwMDYwMjA4Mjg0MDMxMjE1NjEwMWUyNTc2MTAxZTE2MTAxOWI1NjViNWI2MDAwNjEwMWYwODQ4Mjg1MDE2MTAxYjc1NjViOTE1MDUwOTI5MTUwNTA1NmZlYTI2NDY5NzA2NjczNTgyMjEyMjBhYTE2YzlhZjZjYjE4NGYxZDhlMjc2YjEzMjU5ZDViMzEwNWFiMjZmNWQ1NjU4ZDlmNzhiOGU4NTYzNTZjYjY1NjQ3MzZmNmM2MzQzMDAwODEwMDAzMw==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwJCFiUKXiE5LIoHATqnH4JXeBTSfkZ0UdT9lkw9OE3mL+V5zID6CJBCiKL5UhQvWGGgwI6rGarQYQ062PxQIiDwoJCK6xmq0GEJUEEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQivsZqtBhCXBBICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGO4HGiISIJemuFz5T5S8T/A7UoLkTFmX6AlER/lumZgF4kSrBdjIIJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGO8HKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBBdQN5C8fkxQ+Ry1729825p9yxglr1/pY2B2W3ymOEG0EnnTAxuHK0XF4CTpCGX+kaCwjrsZqtBhDL3JZNIg8KCQivsZqtBhCXBBICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMMDZ4gZC5AYKAxjvBxKvBGCAYEBSNIAVYQAQV2AAgP1bUGAENhBhADZXYAA1YOAcgGMKdU3mFGEAO1eAY1ySF+AUYQBZV1tgAID9W2EAQ2EAd1ZbYEBRYQBQkZBhAYBWW2BAUYCRA5DzW2EAYWEA71ZbYEBRYQBukZBhAYBWW2BAUYCRA5DzW2AAMHP//////////////////////////xZjCnVN5mBAUYFj/////xZg4BuBUmAEAWAgYEBRgIMDgWAAh1rxFYAVYQDGVz1gAIA+PWAA/VtQUFBQYEBRPWAfGWAfggEWggGAYEBSUIEBkGEA6pGQYQHMVluQUJBWW2AAMHP//////////////////////////xZjXJIX4GBAUYFj/////xZg4BuBUmAEAWAgYEBRgIMDgWAAh1rxFYAVYQE+Vz1gAIA+PWAA/VtQUFBQYEBRPWAfGWAfggEWggGAYEBSUIEBkGEBYpGQYQHMVluQUJBWW2AAgZBQkZBQVlthAXqBYQFnVluCUlBQVltgAGAgggGQUGEBlWAAgwGEYQFxVluSkVBQVltgAID9W2EBqYFhAWdWW4EUYQG0V2AAgP1bUFZbYACBUZBQYQHGgWEBoFZbkpFQUFZbYABgIIKEAxIVYQHiV2EB4WEBm1ZbW2AAYQHwhIKFAWEBt1ZbkVBQkpFQUFb+omRpcGZzWCISIKoWya9ssYTx2OJ2sTJZ1bMQWrJvXVZY2feLjoVjVstlZHNvbGNDAAgQADMigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMCaDDoDGO8HShYKFAAAAAAAAAAAAAAAAAAAAAAAAAPvcgcKAxjvBxABUhYKCQoCGAIQ/7LFDQoJCgIYYhCAs8UN"},{"b64Body":"ChAKCQivsZqtBhCZBBIDGOoHEgIYAxjAv+0hIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46IgoWIhQAAAAAAAAAAAAAAAAAAAAAAAAD7BDAhD0iBAp1TeY=","b64Record":"CiUIFiIDGOwHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDxJhRLZrYoTNVltSmAnST4sd32LZH3+/gSx4umCPrSZ2NsvqAbFRjNMUT9FoTWUNoaDAjrsZqtBhDjlvjJAiIQCgkIr7GarQYQmQQSAxjqByogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wgOaKGzquAgoDGOwHEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFiKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAogOowUhcKCQoCGGIQgMyVNgoKCgMY6gcQ/8uVNg=="},{"b64Body":"ChIKCQivsZqtBhCZBBIDGOoHIAHCAgoKAxjqBxIDGOwH","b64Record":"CgIIFhIwnFvOkw2B3tYj8hkEsBDyySMaG+uM4krr7GxSlek6YooGpl6c0hNjZc0h6t13rCqLGgwI67GarQYQ5Jb4yQIiEgoJCK+xmq0GEJkEEgMY6gcgATpSCgMY5wISIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWKOL9KlDZ0zpiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAD7Ap1TeZqAxjqB1IAegwI67GarQYQ45b4yQI="},{"b64Body":"ChAKCQiwsZqtBhCbBBIDGOoHEgIYAxjAv+0hIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46IgoWIhQAAAAAAAAAAAAAAAAAAAAAAAAD7RDAhD0iBAp1TeY=","b64Record":"CiUIFiIDGO0HKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBAZ7egYmwxTeUnqncITcjDZBAfxx/7FSYJUtpc3N78aj5sufJz/hMBC7qrva52b0IaCwjssZqtBhD7/59uIhAKCQiwsZqtBhCbBBIDGOoHKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCA5oobOq4CCgMY7QcSIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACiA6jBSFwoJCgIYYhCAzJU2CgoKAxjqBxD/y5U2"},{"b64Body":"ChIKCQiwsZqtBhCbBBIDGOoHIAHCAgoKAxjqBxIDGO0H","b64Record":"CgIIFhIwdOTpAKLPaiqCDj6aVKqWBVQuneW0yGDFwOpf/wb3G0pwKaMK48tT7bzo5yavKfGSGgsI7LGarQYQ/P+fbiISCgkIsLGarQYQmwQSAxjqByABOlIKAxjnAhIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYo4v0qUNnTOmIcYY3GXgAAAAAAAAAAAAAAAAAAAAAAAAPtCnVN5moDGOoHUgB6CwjssZqtBhD7/59u"},{"b64Body":"ChAKCQiwsZqtBhCdBBIDGOoHEgIYAxjAv+0hIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46IgoWIhQAAAAAAAAAAAAAAAAAAAAAAAAD7BDAhD0iBFySF+A=","b64Record":"CiUIFiIDGOwHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDhSg6yQKUXiv8bSs1A61behVI85S048f/U2JGtTs2E07tvgLqq8iQxqBvg5Zqhzs8aDAjssZqtBhDz9KjUAiIQCgkIsLGarQYQnQQSAxjqByogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wgOaKGzquAgoDGOwHEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFiKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAogOowUhcKCQoCGGIQgMyVNgoKCgMY6gcQ/8uVNg=="},{"b64Body":"ChIKCQiwsZqtBhCdBBIDGOoHIAHKAgoKAxjqBxIDGOwH","b64Record":"CgIIFhIwA+F8L+1488P4AEbRZDDR9+YI8xXnMt3lLbf8q060mPGK5/vSS83c7vmDb+7B/x/rGgwI7LGarQYQ9PSo1AIiEgoJCLCxmq0GEJ0EEgMY6gcgATpSCgMY5wISIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWKOL9KlDZ0zpiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAD7FySF+BqAxjqB1IAegwI7LGarQYQ8/So1AI="},{"b64Body":"ChAKCQixsZqtBhCfBBIDGOoHEgIYAxjAv+0hIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46IgoWIhQAAAAAAAAAAAAAAAAAAAAAAAAD7RDAhD0iBFySF+A=","b64Record":"CiUIFiIDGO0HKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAtNj8d0ANnyIs0S5jjN8gdVn+2EAg7E/+ryIJqj07ysE05T3KiKRixGQzN8z2+V8AaCwjtsZqtBhCjq4t4IhAKCQixsZqtBhCfBBIDGOoHKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCA5oobOq4CCgMY7QcSIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACiA6jBSFwoJCgIYYhCAzJU2CgoKAxjqBxD/y5U2"},{"b64Body":"ChIKCQixsZqtBhCfBBIDGOoHIAHKAgoKAxjqBxIDGO0H","b64Record":"CgIIFhIwEiHLNThOjSvX6JSjD5CAAJs4CnkxeJvdmBGbcUv7FFYHqfUiJ1gJPNLZ+oW/vgaHGgsI7bGarQYQpKuLeCISCgkIsbGarQYQnwQSAxjqByABOlIKAxjnAhIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYo4v0qUNnTOmIcYY3GXgAAAAAAAAAAAAAAAAAAAAAAAAPtXJIX4GoDGOoHUgB6CwjtsZqtBhCjq4t4"}]},"hrcNFTAndFungibleTokenAssociateFromContract":{"placeholderNum":1008,"encodedItems":[{"b64Body":"Cg8KCQi1sZqtBhDPBBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloyCiISIEjMQOGu+AVIYDMxN2Ys/bq/YpfJXWCg9XZBUCUnujBkEICglKWNHUoFCIDO2gM=","b64Record":"CiUIFhIDGPEHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDgL6yYZLl+yc4+t7pvUhZGLNL3+TCBCZrnngYCwM/pQFRw3Ii7s/4OB0895dPhSr4aDAjxsZqtBhDzxpzrAiIPCgkItbGarQYQzwQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIbCgsKAhgCEP+/qMqaOgoMCgMY8QcQgMCoypo6"},{"b64Body":"Cg8KCQi2sZqtBhDRBBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIHYGE4FhUGNtlyGW/wtv2OJfadTmE/caMka+gATAwJ6rEICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGPIHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCgDj8OyAzTjYc1BEgasNqPpArvkRb+tixq0QkBW/vjqJrFuBYdh0m5364JL7+xMykaDAjysZqtBhDLr9mPASIPCgkItrGarQYQ0QQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxjyBxCAqNa5Bw=="},{"b64Body":"Cg8KCQi2sZqtBhDTBBICGAISAhgDGPSR4/sCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAW8KBlRva2VuQRIIQlBBT0lGWlogBSoDGPIHMiISIK+CMXVHHGGvUDBkqVwf2v7phWXUqSpb4nDfomj1Zle+UiISIK+CMXVHHGGvUDBkqVwf2v7phWXUqSpb4nDfomj1Zle+agwI8v/0sAYQqOLi7wI=","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGPMHEjA8Zrkqp4c/+hoHGKyAE1i4f7TElRbVLEpg6pzLdZ4ldUTYveCPxj1woZqumsWkPD8aDAjysZqtBhCTk/D0AiIPCgkItrGarQYQ0wQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWg4KAxjzBxIHCgMY8gcQCnIKCgMY8wcSAxjyBw=="},{"b64Body":"Cg8KCQi3sZqtBhDVBBICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAjz//SwBhDg6reFARptCiISILwSnu8BbKRnzgKU+M7i4+29ovNTOBC0Apas61wLnfNzCiM6IQI9yNGHO2/9nzq/z/Zm9jDPU2iq0/ol4TrEIOeTgm3GcQoiEiASOsqrkEpqq/Sucx1Qa9hLjL2BLj/AbfqotaoMtpOdFCIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGPQHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCfYdQkpns7bPn2zhEl6Q3I6mXPnldN0mzpJSt0wwubcLIJ1x9vvmddKDKNn6mhwLoaDAjzsZqtBhDLpJWZASIPCgkIt7GarQYQ1QQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQi3sZqtBhDZBBICGAISAhgDGIux/DIiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBjAwKAxj0ByKEDDYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMDJlMjgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDAzNjU3NjAwMDM1NjBlMDFjODA2MzMyMmUzNTUwMTQ2MTAwM2I1NzgwNjNkODlmMzEyMzE0NjEwMDZiNTc1YjYwMDA4MGZkNWI2MTAwNTU2MDA0ODAzNjAzODEwMTkwNjEwMDUwOTE5MDYxMDFmMjU2NWI2MTAwOWI1NjViNjA0MDUxNjEwMDYyOTE5MDYxMDIzODU2NWI2MDQwNTE4MDkxMDM5MGYzNWI2MTAwODU2MDA0ODAzNjAzODEwMTkwNjEwMDgwOTE5MDYxMDFmMjU2NWI2MTAxMTU1NjViNjA0MDUxNjEwMDkyOTE5MDYxMDIzODU2NWI2MDQwNTE4MDkxMDM5MGYzNWI2MDAwODE3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzNWM5MjE3ZTA2MDQwNTE4MTYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MDIwNjA0MDUxODA4MzAzODE2MDAwODc1YWYxMTU4MDE1NjEwMGVhNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTAxMGU5MTkwNjEwMjdmNTY1YjkwNTA5MTkwNTA1NjViNjAwMDgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MzBhNzU0ZGU2NjA0MDUxODE2M2ZmZmZmZmZmMTY2MGUwMWI4MTUyNjAwNDAxNjAyMDYwNDA1MTgwODMwMzgxNjAwMDg3NWFmMTE1ODAxNTYxMDE2NDU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAxZjE5NjAxZjgyMDExNjgyMDE4MDYwNDA1MjUwODEwMTkwNjEwMTg4OTE5MDYxMDI3ZjU2NWI5MDUwOTE5MDUwNTY1YjYwMDA4MGZkNWI2MDAwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIxNjkwNTA5MTkwNTA1NjViNjAwMDYxMDFiZjgyNjEwMTk0NTY1YjkwNTA5MTkwNTA1NjViNjEwMWNmODE2MTAxYjQ1NjViODExNDYxMDFkYTU3NjAwMDgwZmQ1YjUwNTY1YjYwMDA4MTM1OTA1MDYxMDFlYzgxNjEwMWM2NTY1YjkyOTE1MDUwNTY1YjYwMDA2MDIwODI4NDAzMTIxNTYxMDIwODU3NjEwMjA3NjEwMThmNTY1YjViNjAwMDYxMDIxNjg0ODI4NTAxNjEwMWRkNTY1YjkxNTA1MDkyOTE1MDUwNTY1YjYwMDA4MTkwNTA5MTkwNTA1NjViNjEwMjMyODE2MTAyMWY1NjViODI1MjUwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDYxMDI0ZDYwMDA4MzAxODQ2MTAyMjk1NjViOTI5MTUwNTA1NjViNjEwMjVjODE2MTAyMWY1NjViODExNDYxMDI2NzU3NjAwMDgwZmQ1YjUwNTY1YjYwMDA4MTUxOTA1MDYxMDI3OTgxNjEwMjUzNTY1YjkyOTE1MDUwNTY1YjYwMDA2MDIwODI4NDAzMTIxNTYxMDI5NTU3NjEwMjk0NjEwMThmNTY1YjViNjAwMDYxMDJhMzg0ODI4NTAxNjEwMjZhNTY1YjkxNTA1MDkyOTE1MDUwNTZmZWEyNjQ2OTcwNjY3MzU4MjIxMjIwMDlkNmY5NTZiMjc5MmRhZGIyZDA1YjI1NjNhMzgxODU1Y2FmZDI2YzliOGMyOTA5YmE5NDlmMGUwYTg5Njc5ODY0NzM2ZjZjNjM0MzAwMDgxMDAwMzM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwGuI9NTmu/SeszrLAW0Dw9fVS2iP5uQNfwh1XI8bMGTmyzmrT0NNfCNI5SGnPXCmNGgwI87GarQYQ4/+z/gIiDwoJCLexmq0GENkEEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQi4sZqtBhDbBBICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGPQHGiISIOgyhmcjeHM8wlL6FFqBySqsEotxNf5veH02dVeP+ao5IJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGPUHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDYG0scK1TtNuDIv2X8Ac58R/XtuLZqqGn0KEZ8h047/69yY7vRT8VuZ67zHVyoIfsaDAj0sZqtBhDzsuCiASIPCgkIuLGarQYQ2wQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQpcICgMY9QcS4gVggGBAUjSAFWEAEFdgAID9W1BgBDYQYQA2V2AANWDgHIBjMi41UBRhADtXgGPYnzEjFGEAa1dbYACA/VthAFVgBIA2A4EBkGEAUJGQYQHyVlthAJtWW2BAUWEAYpGQYQI4VltgQFGAkQOQ81thAIVgBIA2A4EBkGEAgJGQYQHyVlthARVWW2BAUWEAkpGQYQI4VltgQFGAkQOQ81tgAIFz//////////////////////////8WY1ySF+BgQFGBY/////8WYOAbgVJgBAFgIGBAUYCDA4FgAIda8RWAFWEA6lc9YACAPj1gAP1bUFBQUGBAUT1gHxlgH4IBFoIBgGBAUlCBAZBhAQ6RkGECf1ZbkFCRkFBWW2AAgXP//////////////////////////xZjCnVN5mBAUYFj/////xZg4BuBUmAEAWAgYEBRgIMDgWAAh1rxFYAVYQFkVz1gAIA+PWAA/VtQUFBQYEBRPWAfGWAfggEWggGAYEBSUIEBkGEBiJGQYQJ/VluQUJGQUFZbYACA/VtgAHP//////////////////////////4IWkFCRkFBWW2AAYQG/gmEBlFZbkFCRkFBWW2EBz4FhAbRWW4EUYQHaV2AAgP1bUFZbYACBNZBQYQHsgWEBxlZbkpFQUFZbYABgIIKEAxIVYQIIV2ECB2EBj1ZbW2AAYQIWhIKFAWEB3VZbkVBQkpFQUFZbYACBkFCRkFBWW2ECMoFhAh9WW4JSUFBWW2AAYCCCAZBQYQJNYACDAYRhAilWW5KRUFBWW2ECXIFhAh9WW4EUYQJnV2AAgP1bUFZbYACBUZBQYQJ5gWECU1ZbkpFQUFZbYABgIIKEAxIVYQKVV2EClGEBj1ZbW2AAYQKjhIKFAWECalZbkVBQkpFQUFb+omRpcGZzWCISIAnW+VayeS2tstBbJWOjgYVcr9Jsm4wpCbqUnw4KiWeYZHNvbGNDAAgQADMigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMCaDDoDGPUHShYKFAAAAAAAAAAAAAAAAAAAAAAAAAP1cgcKAxj1BxABUhYKCQoCGAIQ/7LFDQoJCgIYYhCAs8UN"},{"b64Body":"Cg8KCQi4sZqtBhDdBBICGAISAhgDGJ6jlPsCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAWsKBlRva2VuQRIDTkZUKgMY8gcyIhIgr4IxdUccYa9QMGSpXB/a/umFZdSpKlvicN+iaPVmV75SIhIgr4IxdUccYa9QMGSpXB/a/umFZdSpKlvicN+iaPVmV75qDAj0//SwBhDQzJ6CA4gBAQ==","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGPYHEjAioUr1exNsbx4nXwYI19KIA2ZkTon93v8TQMWCqDY4ROFNvuIOaJtr5nFrOanfYy0aDAj0sZqtBhCLwe6HAyIPCgkIuLGarQYQ3QQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAcgoKAxj2BxIDGPIH"},{"b64Body":"ChAKCQi5sZqtBhDfBBIDGPEHEgIYAxiA/rWHASICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOOjAKAxj1BxCAkvQBIiTYnzEjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/M=","b64Record":"CiUIFiIDGPUHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjB0i+zLnZKY06NX64qekgA+zCnEPKiXd/UwG8TqhOo4A4LXWWwgsQPmpbuI0zcl100aDAj1sZqtBhDzncmsASIQCgkIubGarQYQ3wQSAxjxByogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wgJirbDqvAgoDGPUHEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFiKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAogKjDAVIZCgoKAhhiEICw1tgBCgsKAxjxBxD/r9bYAQ=="},{"b64Body":"ChIKCQi5sZqtBhDfBBIDGPEHIAHCAgoKAxj1BxIDGPMH","b64Record":"CgIIFhIwDujZMhBxfWvDoaJEyopv1slFEIlRaqsJ/1nyJyjceMPlg1Fv4aqhCLZn3YdygD8VGgwI9bGarQYQ9J3JrAEiEgoJCLmxmq0GEN8EEgMY8QcgATpTCgMY5wISIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWKOL9KlCG/OoBYhxhjcZeAAAAAAAAAAAAAAAAAAAAAAAAA/MKdU3magMY9QdSAHoMCPWxmq0GEPOdyawB"},{"b64Body":"ChAKCQi5sZqtBhDhBBIDGPEHEgIYAxiA/rWHASICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOOjAKAxj1BxCAkvQBIiTYnzEjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/Y=","b64Record":"CiUIFiIDGPUHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjB1cQUk93gejbDa084jAPp8vcYE6tTlXiy2gwnGd9oD+cYaq9eomwNAp5t77gR7EC8aDAj1sZqtBhDDnbeSAyIQCgkIubGarQYQ4QQSAxjxByogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wgJirbDqvAgoDGPUHEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFiKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAogKjDAVIZCgoKAhhiEICw1tgBCgsKAxjxBxD/r9bYAQ=="},{"b64Body":"ChIKCQi5sZqtBhDhBBIDGPEHIAHCAgoKAxj1BxIDGPYH","b64Record":"CgIIFhIwB1LuuLOXMKzWICcJOfBsiNqdZYo2BxEAwWfXpo5k06Gz9b6mwpSxIvgkQfl1qE3BGgwI9bGarQYQxJ23kgMiEgoJCLmxmq0GEOEEEgMY8QcgATpTCgMY5wISIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWKOL9KlCG/OoBYhxhjcZeAAAAAAAAAAAAAAAAAAAAAAAAA/YKdU3magMY9QdSAHoMCPWxmq0GEMOdt5ID"},{"b64Body":"ChAKCQi6sZqtBhDjBBIDGPEHEgIYAxiA/rWHASICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOOjAKAxj1BxCAkvQBIiQyLjVQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/M=","b64Record":"CiUIFiIDGPUHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBPlUn3BOp3peR68kIktsPsOScZXS5qk3L2MoJG4W9SDipp/JHDci1woLrhJSGJ8dMaDAj2sZqtBhDLwPa7ASIQCgkIurGarQYQ4wQSAxjxByogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wgJirbDqvAgoDGPUHEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFiKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAogKjDAVIZCgoKAhhiEICw1tgBCgsKAxjxBxD/r9bYAQ=="},{"b64Body":"ChIKCQi6sZqtBhDjBBIDGPEHIAHKAgoKAxj1BxIDGPMH","b64Record":"CgIIFhIw/On4gT5P8nYn3Y+mpP4l+PbVGZdhNhVXKBOwUK4KgHlnYsSvlEsh39dnj0PiBVghGgwI9rGarQYQzMD2uwEiEgoJCLqxmq0GEOMEEgMY8QcgATpTCgMY5wISIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWKOL9KlCb/OoBYhxhjcZeAAAAAAAAAAAAAAAAAAAAAAAAA/NckhfgagMY9QdSAHoMCPaxmq0GEMvA9rsB"},{"b64Body":"ChAKCQi6sZqtBhDlBBIDGPEHEgIYAxiA/rWHASICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOOjAKAxj1BxCAkvQBIiQyLjVQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/Y=","b64Record":"CiUIFiIDGPUHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBjNNrlxgtagPXUHVJIRH92wl2h2yU6PKrfBD8Kx2pZSV+XNLArRZ7YCaEg0CjlB5waDAj2sZqtBhCL1cmfAyIQCgkIurGarQYQ5QQSAxjxByogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wgJirbDqvAgoDGPUHEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFiKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAogKjDAVIZCgoKAhhiEICw1tgBCgsKAxjxBxD/r9bYAQ=="},{"b64Body":"ChIKCQi6sZqtBhDlBBIDGPEHIAHKAgoKAxj1BxIDGPYH","b64Record":"CgIIFhIw7wxGFrl6nEIKqDzmFo3iFFr1ok+4SCiqyA6vL4rgrm8CS9jgxf9Ku4pGd87lF2DYGgwI9rGarQYQjNXJnwMiEgoJCLqxmq0GEOUEEgMY8QcgATpTCgMY5wISIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWKOL9KlCb/OoBYhxhjcZeAAAAAAAAAAAAAAAAAAAAAAAAA/ZckhfgagMY9QdSAHoMCPaxmq0GEIvVyZ8D"}]},"hrcTokenAssociateFromSameEOATwiceShouldFail":{"placeholderNum":1015,"encodedItems":[{"b64Body":"Cg8KCQi/sZqtBhCVBRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloyCiISILTFujkdS0jZUe66OR+DTkPXlsFI8l0R0ibuD6ajl5EAEICglKWNHUoFCIDO2gM=","b64Record":"CiUIFhIDGPgHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCm+yO1BQQ7MKbmAiZf1GlFAGolrtoP2ThX+8m5x0CDEsmOTZFArJ0TCFtOnKscsIcaDAj7sZqtBhCrvtijAiIPCgkIv7GarQYQlQUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIbCgsKAhgCEP+/qMqaOgoMCgMY+AcQgMCoypo6"},{"b64Body":"Cg8KCQjAsZqtBhCXBRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIC5D4WF1FH2nu6256UQG8ppoliNxAtdDjkruEcI8lmDOEICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGPkHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAdN7A5H9zHGpsPTs+6Tm90OfWUs6Y5P2vdLCnG7j3ANu2DH46rXnbNlY0WZzxvQM0aCwj8sZqtBhCj8dpIIg8KCQjAsZqtBhCXBRICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUhkKCgoCGAIQ/6fWuQcKCwoDGPkHEICo1rkH"},{"b64Body":"Cg8KCQjAsZqtBhCZBRICGAISAhgDGPSR4/sCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAW8KBlRva2VuQRIIWUtGTVRFV0ogBSoDGPkHMiISIP7lEtNe6MZ0q7xz6iAb5FerYs2y4J9EhKGmPY6QwfWgUiISIP7lEtNe6MZ0q7xz6iAb5FerYs2y4J9EhKGmPY6QwfWgagwI/P/0sAYQyM7sngI=","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGPoHEjAOEuKCZywpsO+08eDyfRaT0ezIqlOF24VvE1XHDnAlFkedbML/Fsured+BftDTZLoaDAj8sZqtBhDb6P2sAiIPCgkIwLGarQYQmQUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWg4KAxj6BxIHCgMY+QcQCnIKCgMY+gcSAxj5Bw=="},{"b64Body":"Cg8KCQjBsZqtBhCbBRICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjgESCwj9//SwBhCA/q42Gm0KIhIgYDP181111rHplUIuyLV+D56oqRJyRzcmiNy+B5+VoQAKIzohAtJo9yF9WKUpIglMGT54PiVo2Un82dP/K3HkfqNtcHzTCiISID5DKnLTmjyrs82i74YBtKBlPAVES2QziRCyST4QgmMBIgxIZWxsbyBXb3JsZCEqADIA","b64Record":"CiUIFhoDGPsHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDx3vrPcbHoaWOpV8FSgLYpF36n3L/fYUt14H2RgaIU6EEmk17tpLZ9Tn6JldJSN+AaCwj9sZqtBhCDo6JSIg8KCQjBsZqtBhCbBRICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgA="},{"b64Body":"Cg8KCQjBsZqtBhCfBRICGAISAhgDGMTWtDEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBpgkKAxj7ByKeCTYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMDIyZjgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDAzNjU3NjAwMDM1NjBlMDFjODA2MzBhNzU0ZGU2MTQ2MTAwM2I1NzgwNjM1YzkyMTdlMDE0NjEwMDU5NTc1YjYwMDA4MGZkNWI2MTAwNDM2MTAwNzc1NjViNjA0MDUxNjEwMDUwOTE5MDYxMDE4MDU2NWI2MDQwNTE4MDkxMDM5MGYzNWI2MTAwNjE2MTAwZWY1NjViNjA0MDUxNjEwMDZlOTE5MDYxMDE4MDU2NWI2MDQwNTE4MDkxMDM5MGYzNWI2MDAwMzA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzMGE3NTRkZTY2MDQwNTE4MTYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MDIwNjA0MDUxODA4MzAzODE2MDAwODc1YWYxMTU4MDE1NjEwMGM2NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTAwZWE5MTkwNjEwMWNjNTY1YjkwNTA5MDU2NWI2MDAwMzA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzNWM5MjE3ZTA2MDQwNTE4MTYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MDIwNjA0MDUxODA4MzAzODE2MDAwODc1YWYxMTU4MDE1NjEwMTNlNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTAxNjI5MTkwNjEwMWNjNTY1YjkwNTA5MDU2NWI2MDAwODE5MDUwOTE5MDUwNTY1YjYxMDE3YTgxNjEwMTY3NTY1YjgyNTI1MDUwNTY1YjYwMDA2MDIwODIwMTkwNTA2MTAxOTU2MDAwODMwMTg0NjEwMTcxNTY1YjkyOTE1MDUwNTY1YjYwMDA4MGZkNWI2MTAxYTk4MTYxMDE2NzU2NWI4MTE0NjEwMWI0NTc2MDAwODBmZDViNTA1NjViNjAwMDgxNTE5MDUwNjEwMWM2ODE2MTAxYTA1NjViOTI5MTUwNTA1NjViNjAwMDYwMjA4Mjg0MDMxMjE1NjEwMWUyNTc2MTAxZTE2MTAxOWI1NjViNWI2MDAwNjEwMWYwODQ4Mjg1MDE2MTAxYjc1NjViOTE1MDUwOTI5MTUwNTA1NmZlYTI2NDY5NzA2NjczNTgyMjEyMjBhYTE2YzlhZjZjYjE4NGYxZDhlMjc2YjEzMjU5ZDViMzEwNWFiMjZmNWQ1NjU4ZDlmNzhiOGU4NTYzNTZjYjY1NjQ3MzZmNmM2MzQzMDAwODEwMDAzMw==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwiwU4/TnzMBMJSZX+rcw6KbBjQ/GUaBRVJ+6wMLpFGMZOdWaXrvk65BwoqXHSgiRXGgwI/bGarQYQm/rutgIiDwoJCMGxmq0GEJ8FEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjCsZqtBhChBRICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGPsHGiISIDmKyVeCTKDdFFb+FeGr5ZbXpreb8v4wSLNapcKX6f+EIJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGPwHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCNiWKNUYckVqZ4Ffhe5N9bsj1Zez4b/SRXCbqlbLQdfz9LZIfUExOhuMhGV2WK2NAaCwj+sZqtBhCTxr9bIg8KCQjCsZqtBhChBRICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMMDZ4gZC5AYKAxj8BxKvBGCAYEBSNIAVYQAQV2AAgP1bUGAENhBhADZXYAA1YOAcgGMKdU3mFGEAO1eAY1ySF+AUYQBZV1tgAID9W2EAQ2EAd1ZbYEBRYQBQkZBhAYBWW2BAUYCRA5DzW2EAYWEA71ZbYEBRYQBukZBhAYBWW2BAUYCRA5DzW2AAMHP//////////////////////////xZjCnVN5mBAUYFj/////xZg4BuBUmAEAWAgYEBRgIMDgWAAh1rxFYAVYQDGVz1gAIA+PWAA/VtQUFBQYEBRPWAfGWAfggEWggGAYEBSUIEBkGEA6pGQYQHMVluQUJBWW2AAMHP//////////////////////////xZjXJIX4GBAUYFj/////xZg4BuBUmAEAWAgYEBRgIMDgWAAh1rxFYAVYQE+Vz1gAIA+PWAA/VtQUFBQYEBRPWAfGWAfggEWggGAYEBSUIEBkGEBYpGQYQHMVluQUJBWW2AAgZBQkZBQVlthAXqBYQFnVluCUlBQVltgAGAgggGQUGEBlWAAgwGEYQFxVluSkVBQVltgAID9W2EBqYFhAWdWW4EUYQG0V2AAgP1bUFZbYACBUZBQYQHGgWEBoFZbkpFQUFZbYABgIIKEAxIVYQHiV2EB4WEBm1ZbW2AAYQHwhIKFAWEBt1ZbkVBQkpFQUFb+omRpcGZzWCISIKoWya9ssYTx2OJ2sTJZ1bMQWrJvXVZY2feLjoVjVstlZHNvbGNDAAgQADMigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMCaDDoDGPwHShYKFAAAAAAAAAAAAAAAAAAAAAAAAAP8cgcKAxj8BxABUhYKCQoCGAIQ/7LFDQoJCgIYYhCAs8UN"},{"b64Body":"ChAKCQjCsZqtBhCjBRIDGPgHEgIYAxjAv+0hIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46IgoWIhQAAAAAAAAAAAAAAAAAAAAAAAAD+hDAhD0iBAp1TeY=","b64Record":"CiUIFiIDGPoHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBLNXxqPIB8OR8agkTitPSzvyGAW6svLddYFYXVnaG9rxwgB6mFIBKf/49dMqzwDPEaDAj+sZqtBhCb76rAAiIQCgkIwrGarQYQowUSAxj4Byogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wgOaKGzquAgoDGPoHEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFiKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAogOowUhcKCQoCGGIQgMyVNgoKCgMY+AcQ/8uVNg=="},{"b64Body":"ChIKCQjCsZqtBhCjBRIDGPgHIAHCAgoKAxj4BxIDGPoH","b64Record":"CgIIFhIwW9M2UC338hYALujFvUisdeaV/SGUv8QK56OTQl9Iy1gHRkpmt50aXOtbPuyQfc9eGgwI/rGarQYQnO+qwAIiEgoJCMKxmq0GEKMFEgMY+AcgATpSCgMY5wISIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWKOL9KlDZ0zpiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAD+gp1TeZqAxj4B1IAegwI/rGarQYQm++qwAI="},{"b64Body":"ChAKCQjDsZqtBhClBRIDGPgHEgIYAxjAv+0hIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46IgoWIhQAAAAAAAAAAAAAAAAAAAAAAAAD+hDAhD0iBAp1TeY=","b64Record":"CiUIFiIDGPoHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjALzcZby1Bj9aFMi86vGBDUbcuLWrNwFab7nsvFgDxaVGSOLjzBAUFVwBmMIJbYemwaCwj/sZqtBhC75oRlIhAKCQjDsZqtBhClBRIDGPgHKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCA5oobOq4CCgMY+gcSIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADCIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACiA6jBSFwoJCgIYYhCAzJU2CgoKAxj4BxD/y5U2"},{"b64Body":"ChIKCQjDsZqtBhClBRIDGPgHIAHCAgoKAxj4BxIDGPoH","b64Record":"CgMIwgESMFFZXaioIZMWmnkUdw+rt9Ccr6uA3KjZ7xXpQb4YkhjpHcb0+RzhraXBVUxUPi3ILBoLCP+xmq0GELzmhGUiEgoJCMOxmq0GEKUFEgMY+AcgATp3CgMY5wISIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADCGiNUT0tFTl9BTFJFQURZX0FTU09DSUFURURfVE9fQUNDT1VOVCji/SpQ2dM6YhxhjcZeAAAAAAAAAAAAAAAAAAAAAAAAA/oKdU3magMY+Ad6Cwj/sZqtBhC75oRl"}]},"hrcTokenDissociateWhenNotAssociatedShouldFail":{"placeholderNum":1021,"encodedItems":[{"b64Body":"Cg8KCQjHsZqtBhDFBRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloyCiISIEEkrS/RIt/NLmwmYnvTfai6zitA5bUU87Xv9ic4VBq2EICglKWNHUoFCIDO2gM=","b64Record":"CiUIFhIDGP4HKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjA1TavcIQ6GRTfYk9X4otewnR5ouSuodUZ1fcnU/cIn+N7ePOTPeVXRtKCKPVsseNQaDAiDspqtBhCjl9fKAyIPCgkIx7GarQYQxQUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIbCgsKAhgCEP+/qMqaOgoMCgMY/gcQgMCoypo6"},{"b64Body":"Cg8KCQjIsZqtBhDHBRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIKDQAOFDfcFWpewYIWwNb/aE9mxwHSxr4KdludP7IFdWEICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGP8HKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDVYSkF2tVPGdvssZn2A265SM1ygae9MfVss/2jScWTp8139se+kzISlywF9B6a7gsaDAiEspqtBhDD5ZHwASIPCgkIyLGarQYQxwUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxj/BxCAqNa5Bw=="},{"b64Body":"Cg8KCQjIsZqtBhDJBRICGAISAhgDGPSR4/sCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAW8KBlRva2VuQRIIUEFGRklDQ08gBSoDGP8HMiISIIboQ6u7UDZx81ksKvEJeDjHJ6AoS7gUxVzvE8mKPA7AUiISIIboQ6u7UDZx81ksKvEJeDjHJ6AoS7gUxVzvE8mKPA7AagwIhID1sAYQiMPaxQM=","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGIAIEjCxBHR466d2SOWDjHNOfRVPyqjXF7ujGWLKzQWUlZ+mVsD6nEsnKDvy74Q7aJp/bzkaDAiEspqtBhD7ivzTAyIPCgkIyLGarQYQyQUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWg4KAxiACBIHCgMY/wcQCnIKCgMYgAgSAxj/Bw=="},{"b64Body":"Cg8KCQjJsZqtBhDLBRICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAiFgPWwBhC4oNfcARptCiISILiw/IMBFoLYyfu+trfytpxGa2P2WTg06Enzc5TbuwsUCiM6IQPshgqBvpcUsXqZ/TZAOi5OYxULYDz7q82XE/Uv51ngvwoiEiDN0kqOb229AI+rdOj6p7+k0eJSg+QL0YX2sIHWYbECLyIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGIEIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBArfXWM+WHM/QbC9+n8atH/OYD4PXTX7iMWdCAyVE/IH9Fv9WisNVTL3qTKBHi3X4aDAiFspqtBhDb0tD4ASIPCgkIybGarQYQywUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjJsZqtBhDPBRICGAISAhgDGMTWtDEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBpgkKAxiBCCKeCTYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMDIyZjgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDAzNjU3NjAwMDM1NjBlMDFjODA2MzBhNzU0ZGU2MTQ2MTAwM2I1NzgwNjM1YzkyMTdlMDE0NjEwMDU5NTc1YjYwMDA4MGZkNWI2MTAwNDM2MTAwNzc1NjViNjA0MDUxNjEwMDUwOTE5MDYxMDE4MDU2NWI2MDQwNTE4MDkxMDM5MGYzNWI2MTAwNjE2MTAwZWY1NjViNjA0MDUxNjEwMDZlOTE5MDYxMDE4MDU2NWI2MDQwNTE4MDkxMDM5MGYzNWI2MDAwMzA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzMGE3NTRkZTY2MDQwNTE4MTYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MDIwNjA0MDUxODA4MzAzODE2MDAwODc1YWYxMTU4MDE1NjEwMGM2NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTAwZWE5MTkwNjEwMWNjNTY1YjkwNTA5MDU2NWI2MDAwMzA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzNWM5MjE3ZTA2MDQwNTE4MTYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MDIwNjA0MDUxODA4MzAzODE2MDAwODc1YWYxMTU4MDE1NjEwMTNlNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTAxNjI5MTkwNjEwMWNjNTY1YjkwNTA5MDU2NWI2MDAwODE5MDUwOTE5MDUwNTY1YjYxMDE3YTgxNjEwMTY3NTY1YjgyNTI1MDUwNTY1YjYwMDA2MDIwODIwMTkwNTA2MTAxOTU2MDAwODMwMTg0NjEwMTcxNTY1YjkyOTE1MDUwNTY1YjYwMDA4MGZkNWI2MTAxYTk4MTYxMDE2NzU2NWI4MTE0NjEwMWI0NTc2MDAwODBmZDViNTA1NjViNjAwMDgxNTE5MDUwNjEwMWM2ODE2MTAxYTA1NjViOTI5MTUwNTA1NjViNjAwMDYwMjA4Mjg0MDMxMjE1NjEwMWUyNTc2MTAxZTE2MTAxOWI1NjViNWI2MDAwNjEwMWYwODQ4Mjg1MDE2MTAxYjc1NjViOTE1MDUwOTI5MTUwNTA1NmZlYTI2NDY5NzA2NjczNTgyMjEyMjBhYTE2YzlhZjZjYjE4NGYxZDhlMjc2YjEzMjU5ZDViMzEwNWFiMjZmNWQ1NjU4ZDlmNzhiOGU4NTYzNTZjYjY1NjQ3MzZmNmM2MzQzMDAwODEwMDAzMw==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwS/97s3qRKRmCcjka3gTP529QP4cjUK1H8C3zVPGx7+1L5iFqn2L+nzTArQRiRpsLGgoIhrKarQYQ4+dQIg8KCQjJsZqtBhDPBRICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgA="},{"b64Body":"Cg8KCQjKsZqtBhDRBRICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGIEIGiISIBRPehBnFbgIYiFRq+ubSXRhscqiS99IuitYju4JGDp/IJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGIIIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjA+SSCUXFczTiNt+FKJ3UYbeHwnxFBRs1DjBgHW4I9950TxdoeCtFAI+mbeu1DdVRAaDAiGspqtBhCr5bGCAiIPCgkIyrGarQYQ0QUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQuQGCgMYgggSrwRggGBAUjSAFWEAEFdgAID9W1BgBDYQYQA2V2AANWDgHIBjCnVN5hRhADtXgGNckhfgFGEAWVdbYACA/VthAENhAHdWW2BAUWEAUJGQYQGAVltgQFGAkQOQ81thAGFhAO9WW2BAUWEAbpGQYQGAVltgQFGAkQOQ81tgADBz//////////////////////////8WYwp1TeZgQFGBY/////8WYOAbgVJgBAFgIGBAUYCDA4FgAIda8RWAFWEAxlc9YACAPj1gAP1bUFBQUGBAUT1gHxlgH4IBFoIBgGBAUlCBAZBhAOqRkGEBzFZbkFCQVltgADBz//////////////////////////8WY1ySF+BgQFGBY/////8WYOAbgVJgBAFgIGBAUYCDA4FgAIda8RWAFWEBPlc9YACAPj1gAP1bUFBQUGBAUT1gHxlgH4IBFoIBgGBAUlCBAZBhAWKRkGEBzFZbkFCQVltgAIGQUJGQUFZbYQF6gWEBZ1ZbglJQUFZbYABgIIIBkFBhAZVgAIMBhGEBcVZbkpFQUFZbYACA/VthAamBYQFnVluBFGEBtFdgAID9W1BWW2AAgVGQUGEBxoFhAaBWW5KRUFBWW2AAYCCChAMSFWEB4ldhAeFhAZtWW1tgAGEB8ISChQFhAbdWW5FQUJKRUFBW/qJkaXBmc1giEiCqFsmvbLGE8djidrEyWdWzEFqyb11WWNn3i46FY1bLZWRzb2xjQwAIEAAzIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACjAmgw6AxiCCEoWChQAAAAAAAAAAAAAAAAAAAAAAAAEAnIHCgMYgggQAVIWCgkKAhgCEP+yxQ0KCQoCGGIQgLPFDQ=="},{"b64Body":"ChAKCQjKsZqtBhDTBRIDGP4HEgIYAxjAv+0hIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46IgoWIhQAAAAAAAAAAAAAAAAAAAAAAAAEABDAhD0iBFySF+A=","b64Record":"CiUIFiIDGIAIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDYI9sbt07pwJwkR8apYUpJm04rfkqkRABdJFXUiwdKjPWEwkPtlZ0AfQ8eNiYqQ7AaCwiHspqtBhDz+pwKIhAKCQjKsZqtBhDTBRIDGP4HKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCA5oobOq4CCgMYgAgSIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4IoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACiA6jBSFwoJCgIYYhCAzJU2CgoKAxj+BxD/y5U2"}]},"hrcTokenDissociateWhenBalanceNotZeroShouldFail":{"placeholderNum":1027,"encodedItems":[{"b64Body":"Cg8KCQjPsZqtBhDrBRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloyCiISID98QUXBgmP2bLxXFsMHCOzTeuy8tAjpuZfvHGy1H3uPEICglKWNHUoFCIDO2gM=","b64Record":"CiUIFhIDGIQIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBKpKBBPbVifVk594R88WhuwYZbV9UNI3CsJQSuzj4BHlGDnyKgAdYwE5FbqvFwnVQaDAiLspqtBhDzofuHAyIPCgkIz7GarQYQ6wUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIbCgsKAhgCEP+/qMqaOgoMCgMYhAgQgMCoypo6"},{"b64Body":"Cg8KCQjQsZqtBhDtBRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIO3AM2dMN9N3/XBAE9Q4Xr7Rfuyl4w15UM/AoWanuONrEICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGIUIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDxMuqzORHwnpG3CIgUB440bZzDY4S6rjzHtr7OhhOBnxHFVRqAUthcB0tjUbvFIWYaDAiMspqtBhDr+8qPASIPCgkI0LGarQYQ7QUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxiFCBCAqNa5Bw=="},{"b64Body":"Cg8KCQjQsZqtBhDvBRICGAISAhgDGPSR4/sCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAW8KBlRva2VuQRIITkJVRUZPVE0gBSoDGIUIMiISILdZSa28LGXZHQkZB9U/BusGbqsHgfbY4E+313hY9pj8UiISILdZSa28LGXZHQkZB9U/BusGbqsHgfbY4E+313hY9pj8agwIjID1sAYQmP2k+AI=","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGIYIEjBT9a0gTl572buZLnsBVLu2tmibs+R6vUQwlbizNKvq4En0Rga9fp+2xFLoSu4wZf4aDAiMspqtBhDLxLqRAyIPCgkI0LGarQYQ7wUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWg4KAxiGCBIHCgMYhQgQCnIKCgMYhggSAxiFCA=="},{"b64Body":"Cg8KCQjRsZqtBhDxBRICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAiNgPWwBhCA5dKOARptCiISIBTBc5YyoAzJUCpRCTS15TOiz3gVPqFm0K6uBPSKvGKXCiM6IQM0PK+EgfDZXHXQVM7n9b0H/97zG1Xq5fMZCKTdZPT/4goiEiCwXlOMGDso6WbR3beEChUFKktsW2v79nKw1S+SM9tAQiIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGIcIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAjEZMxBy9ermJtbF0gIkBaHxocCGWHdIFz4uVmcyjZW6XvXU7/b5nx95o/jnTRT6caDAiNspqtBhDLtbmZASIPCgkI0bGarQYQ8QUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjRsZqtBhD1BRICGAISAhgDGMTWtDEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBpgkKAxiHCCKeCTYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMDIyZjgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDAzNjU3NjAwMDM1NjBlMDFjODA2MzBhNzU0ZGU2MTQ2MTAwM2I1NzgwNjM1YzkyMTdlMDE0NjEwMDU5NTc1YjYwMDA4MGZkNWI2MTAwNDM2MTAwNzc1NjViNjA0MDUxNjEwMDUwOTE5MDYxMDE4MDU2NWI2MDQwNTE4MDkxMDM5MGYzNWI2MTAwNjE2MTAwZWY1NjViNjA0MDUxNjEwMDZlOTE5MDYxMDE4MDU2NWI2MDQwNTE4MDkxMDM5MGYzNWI2MDAwMzA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzMGE3NTRkZTY2MDQwNTE4MTYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MDIwNjA0MDUxODA4MzAzODE2MDAwODc1YWYxMTU4MDE1NjEwMGM2NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTAwZWE5MTkwNjEwMWNjNTY1YjkwNTA5MDU2NWI2MDAwMzA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzNWM5MjE3ZTA2MDQwNTE4MTYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MDIwNjA0MDUxODA4MzAzODE2MDAwODc1YWYxMTU4MDE1NjEwMTNlNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTAxNjI5MTkwNjEwMWNjNTY1YjkwNTA5MDU2NWI2MDAwODE5MDUwOTE5MDUwNTY1YjYxMDE3YTgxNjEwMTY3NTY1YjgyNTI1MDUwNTY1YjYwMDA2MDIwODIwMTkwNTA2MTAxOTU2MDAwODMwMTg0NjEwMTcxNTY1YjkyOTE1MDUwNTY1YjYwMDA4MGZkNWI2MTAxYTk4MTYxMDE2NzU2NWI4MTE0NjEwMWI0NTc2MDAwODBmZDViNTA1NjViNjAwMDgxNTE5MDUwNjEwMWM2ODE2MTAxYTA1NjViOTI5MTUwNTA1NjViNjAwMDYwMjA4Mjg0MDMxMjE1NjEwMWUyNTc2MTAxZTE2MTAxOWI1NjViNWI2MDAwNjEwMWYwODQ4Mjg1MDE2MTAxYjc1NjViOTE1MDUwOTI5MTUwNTA1NmZlYTI2NDY5NzA2NjczNTgyMjEyMjBhYTE2YzlhZjZjYjE4NGYxZDhlMjc2YjEzMjU5ZDViMzEwNWFiMjZmNWQ1NjU4ZDlmNzhiOGU4NTYzNTZjYjY1NjQ3MzZmNmM2MzQzMDAwODEwMDAzMw==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwKX8XEwErPpsjaijUVrunvvUjtqubsoey4HiR79W8iy6UsfffbfzGRMxt/RBYCaDpGgwIjbKarQYQy/eLmwMiDwoJCNGxmq0GEPUFEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjSsZqtBhD3BRICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGIcIGiISIINaxT5LUfLpIKB7SbOnJ8McvmB9v/kNGm/ncxFO4GhhIJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGIgIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCJES0UPihAnyF7xY53s2FBY0KsTDFlleAgWLcu1h6LI4tMarN6aZwGAOZXkMxTYcsaDAiOspqtBhDTn9yiASIPCgkI0rGarQYQ9wUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQuQGCgMYiAgSrwRggGBAUjSAFWEAEFdgAID9W1BgBDYQYQA2V2AANWDgHIBjCnVN5hRhADtXgGNckhfgFGEAWVdbYACA/VthAENhAHdWW2BAUWEAUJGQYQGAVltgQFGAkQOQ81thAGFhAO9WW2BAUWEAbpGQYQGAVltgQFGAkQOQ81tgADBz//////////////////////////8WYwp1TeZgQFGBY/////8WYOAbgVJgBAFgIGBAUYCDA4FgAIda8RWAFWEAxlc9YACAPj1gAP1bUFBQUGBAUT1gHxlgH4IBFoIBgGBAUlCBAZBhAOqRkGEBzFZbkFCQVltgADBz//////////////////////////8WY1ySF+BgQFGBY/////8WYOAbgVJgBAFgIGBAUYCDA4FgAIda8RWAFWEBPlc9YACAPj1gAP1bUFBQUGBAUT1gHxlgH4IBFoIBgGBAUlCBAZBhAWKRkGEBzFZbkFCQVltgAIGQUJGQUFZbYQF6gWEBZ1ZbglJQUFZbYABgIIIBkFBhAZVgAIMBhGEBcVZbkpFQUFZbYACA/VthAamBYQFnVluBFGEBtFdgAID9W1BWW2AAgVGQUGEBxoFhAaBWW5KRUFBWW2AAYCCChAMSFWEB4ldhAeFhAZtWW1tgAGEB8ISChQFhAbdWW5FQUJKRUFBW/qJkaXBmc1giEiCqFsmvbLGE8djidrEyWdWzEFqyb11WWNn3i46FY1bLZWRzb2xjQwAIEAAzIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACjAmgw6AxiICEoWChQAAAAAAAAAAAAAAAAAAAAAAAAECHIHCgMYiAgQAVIWCgkKAhgCEP+yxQ0KCQoCGGIQgLPFDQ=="},{"b64Body":"ChAKCQjSsZqtBhD5BRIDGIQIEgIYAxjAv+0hIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46IgoWIhQAAAAAAAAAAAAAAAAAAAAAAAAEBhDAhD0iBAp1TeY=","b64Record":"CiUIFiIDGIYIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBSZ0z4jqH852PPjaDlWdpYdYLLF3hB6ne+bBI2UoxNp1bViRfVl51qnjHXvFFDIlgaDAiOspqtBhC7jvakAyIQCgkI0rGarQYQ+QUSAxiECCogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wgOaKGzquAgoDGIYIEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFiKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAogOowUhcKCQoCGGIQgMyVNgoKCgMYhAgQ/8uVNg=="},{"b64Body":"ChIKCQjSsZqtBhD5BRIDGIQIIAHCAgoKAxiECBIDGIYI","b64Record":"CgIIFhIwYIRzGxHs7CAN3knm694k0cT/+2Ic4p0IIOfmbTibB37LpJSXSUDvnlT+HGwFjvraGgwIjrKarQYQvI72pAMiEgoJCNKxmq0GEPkFEgMYhAggATpSCgMY5wISIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWKOL9KlDZ0zpiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEBgp1TeZqAxiECFIAegwIjrKarQYQu472pAM="},{"b64Body":"Cg8KCQjTsZqtBhD7BRICGAISAhgDGOufNiICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOchkSFwoDGIYIEgcKAxiFCBAFEgcKAxiECBAG","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw2bJKDLe2UgNhXOx9IcMkQLYc9dMAz2QCdW5jAK9Zt/+7FBggPyYIu9N8p8f9fs6EGgwIj7KarQYQk9LCrAEiDwoJCNOxmq0GEPsFEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAFoXCgMYhggSBwoDGIQIEAYSBwoDGIUIEAU="},{"b64Body":"ChAKCQjTsZqtBhD9BRIDGIQIEgIYAxjAv+0hIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46IgoWIhQAAAAAAAAAAAAAAAAAAAAAAAAEBhDAhD0iBFySF+A=","b64Record":"CiUIFiIDGIYIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAvrJPLBO8Oa8rWBujp5Ki2EFMB9VnHhqWxOF7+oMRR3nXGmZeXEl60Krust/W1ma0aDAiPspqtBhCLoISuAyIQCgkI07GarQYQ/QUSAxiECCogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wgOaKGzquAgoDGIYIEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwyKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAogOowUhcKCQoCGGIQgMyVNgoKCgMYhAgQ/8uVNg=="},{"b64Body":"ChIKCQjTsZqtBhD9BRIDGIQIIAHKAgoKAxiECBIDGIYI","b64Record":"CgMIwwESMAZ782R0jXpGDdWCUszkuZRYqOhCG7TzhZPCulUgKAqKtw0eFYhScYqF+v5eGsM2HhoMCI+ymq0GEIyghK4DIhIKCQjTsZqtBhD9BRIDGIQIIAE6fAoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwxooVFJBTlNBQ1RJT05fUkVRVUlSRVNfWkVST19UT0tFTl9CQUxBTkNFUyji/SpQ2dM6YhxhjcZeAAAAAAAAAAAAAAAAAAAAAAAABAZckhfgagMYhAh6DAiPspqtBhCLoISuAw=="}]},"hrcTooManyTokenAssociateShouldFail":{"placeholderNum":1033,"encodedItems":[{"b64Body":"Cg8KCQjZsZqtBhCnBhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloyCiISIKHOWsnRdnZg3DIZk4uKa6zOneQtVhGY6XTm15YWXMsoEICglKWNHUoFCIDO2gM=","b64Record":"CiUIFhIDGIoIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjC5UNFU38xs+kGfp7hgljPZicwMbVTwNnPD4zWSEdfTgjjOSZlTdIeANFnPCYSenXcaDAiVspqtBhD7yPS2AiIPCgkI2bGarQYQpwYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIbCgsKAhgCEP+/qMqaOgoMCgMYiggQgMCoypo6"},{"b64Body":"Cg8KCQjasZqtBhCpBhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIByPYxYhZetrSZQtSkf6VOAy+64bK4TOyYB84dEJcGtWEICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGIsIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjD2LCCJt1WZmmKWlME7SIie+dzZWNBPbfRPVlyoa7ugsGTbgBDGTuqf4avva8g5dM0aCwiWspqtBhDTmONbIg8KCQjasZqtBhCpBhICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUhkKCgoCGAIQ/6fWuQcKCwoDGIsIEICo1rkH"},{"b64Body":"Cg8KCQjasZqtBhCrBhICGAISAhgDGPSR4/sCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAW8KBlRva2VuQRIIT1VRU1JWU00gASoDGIsIMiISIDfaQ1I+HzR7HkOrJKcSzoaUXY18W4Cwa9ck4G/HMPzsUiISIDfaQ1I+HzR7HkOrJKcSzoaUXY18W4Cwa9ck4G/HMPzsagwIloD1sAYQqM2FvQI=","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGIwIEjCDP2Uu3nPPJ5jpjonsZwiwG6Tx4zA+UnUfMi+66coZ21dkXqBia0gXWv48aUqiUZEaDAiWspqtBhDj0oLAAiIPCgkI2rGarQYQqwYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWg4KAxiMCBIHCgMYiwgQAnIKCgMYjAgSAxiLCA=="},{"b64Body":"Cg8KCQjbsZqtBhCtBhICGAISAhgDGPSR4/sCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAW4KBlRva2VuQRIIWlJHWFNCWEMgASoDGIsIMiISIDfaQ1I+HzR7HkOrJKcSzoaUXY18W4Cwa9ck4G/HMPzsUiISIDfaQ1I+HzR7HkOrJKcSzoaUXY18W4Cwa9ck4G/HMPzsagsIl4D1sAYQgPeAVA==","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGI0IEjDQ34dQA1s2Q6cet9soisBO/MlIf/YGsYbeboWvOajkqHk7n9eD6Ni8Fx5h0oteJUEaCwiXspqtBhCTj+BkIg8KCQjbsZqtBhCtBhICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgBaDgoDGI0IEgcKAxiLCBACcgoKAxiNCBIDGIsI"},{"b64Body":"Cg8KCQjbsZqtBhCvBhICGAISAhgDGOqR4/sCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAW0KBlRva2VuQRIIQ0tLQVFWVk8qAxiKCDIiEiA32kNSPh80ex5DqySnEs6GlF2NfFuAsGvXJOBvxzD87FIiEiA32kNSPh80ex5DqySnEs6GlF2NfFuAsGvXJOBvxzD87GoMCJeA9bAGEIDPz8YC","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGI4IEjDEfA2buXGihTQ4/qWJkvtO/8GdWxWvsdZgvi220YBd8o8x+NPOBhcyRz9m9UyZyHAaDAiXspqtBhCTmfLJAiIPCgkI27GarQYQrwYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAcgoKAxiOCBIDGIoI"},{"b64Body":"Cg8KCQjcsZqtBhCxBhICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjgESCwiYgPWwBhDgmqZcGm0KIhIgUqvKrEieKmCZ4v7pXWWkSHHWthPqjOBSc1kzhq9kms0KIzohAq8ccTJDsRjgTRCUwgwMv/vSDWFiGqZKw24YyVMVoFwzCiISIK5SeFXoVXTC+qiJ2NiEEsDrc3dEr94AUTT8OTHKK+LGIgxIZWxsbyBXb3JsZCEqADIA","b64Record":"CiUIFhoDGI8IKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjChENf0wguKwP3B2FrLYY/f3TKOykiSX83os7wx8GwePDIlEIiag9mtj0Q8JAL0d2IaCwiYspqtBhD75tFuIg8KCQjcsZqtBhCxBhICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgA="},{"b64Body":"Cg8KCQjcsZqtBhC1BhICGAISAhgDGMTWtDEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBpgkKAxiPCCKeCTYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMDIyZjgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDAzNjU3NjAwMDM1NjBlMDFjODA2MzBhNzU0ZGU2MTQ2MTAwM2I1NzgwNjM1YzkyMTdlMDE0NjEwMDU5NTc1YjYwMDA4MGZkNWI2MTAwNDM2MTAwNzc1NjViNjA0MDUxNjEwMDUwOTE5MDYxMDE4MDU2NWI2MDQwNTE4MDkxMDM5MGYzNWI2MTAwNjE2MTAwZWY1NjViNjA0MDUxNjEwMDZlOTE5MDYxMDE4MDU2NWI2MDQwNTE4MDkxMDM5MGYzNWI2MDAwMzA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzMGE3NTRkZTY2MDQwNTE4MTYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MDIwNjA0MDUxODA4MzAzODE2MDAwODc1YWYxMTU4MDE1NjEwMGM2NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTAwZWE5MTkwNjEwMWNjNTY1YjkwNTA5MDU2NWI2MDAwMzA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzNWM5MjE3ZTA2MDQwNTE4MTYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MDIwNjA0MDUxODA4MzAzODE2MDAwODc1YWYxMTU4MDE1NjEwMTNlNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTAxNjI5MTkwNjEwMWNjNTY1YjkwNTA5MDU2NWI2MDAwODE5MDUwOTE5MDUwNTY1YjYxMDE3YTgxNjEwMTY3NTY1YjgyNTI1MDUwNTY1YjYwMDA2MDIwODIwMTkwNTA2MTAxOTU2MDAwODMwMTg0NjEwMTcxNTY1YjkyOTE1MDUwNTY1YjYwMDA4MGZkNWI2MTAxYTk4MTYxMDE2NzU2NWI4MTE0NjEwMWI0NTc2MDAwODBmZDViNTA1NjViNjAwMDgxNTE5MDUwNjEwMWM2ODE2MTAxYTA1NjViOTI5MTUwNTA1NjViNjAwMDYwMjA4Mjg0MDMxMjE1NjEwMWUyNTc2MTAxZTE2MTAxOWI1NjViNWI2MDAwNjEwMWYwODQ4Mjg1MDE2MTAxYjc1NjViOTE1MDUwOTI5MTUwNTA1NmZlYTI2NDY5NzA2NjczNTgyMjEyMjBhYTE2YzlhZjZjYjE4NGYxZDhlMjc2YjEzMjU5ZDViMzEwNWFiMjZmNWQ1NjU4ZDlmNzhiOGU4NTYzNTZjYjY1NjQ3MzZmNmM2MzQzMDAwODEwMDAzMw==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwJJRqjMbafOftf8hNAUWmGTdNDEBuVurXIWdJjOFFCgduhRPTIcBRGVFbODZbVrg6GgwImLKarQYQu7+10wIiDwoJCNyxmq0GELUGEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjdsZqtBhC3BhICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGI8IGiISIN7n5tVLnTUs/DP+YM5pZD0fhVEi0nAAj8WUo3b14Z6UIJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGJAIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDG2pWNUZGxccSSPqc//+MBOf7zeWxJR3Sqo5H1cGEYqg12BM936ASYLnwoaHDDSEMaCwiZspqtBhDD2694Ig8KCQjdsZqtBhC3BhICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMMDZ4gZC5AYKAxiQCBKvBGCAYEBSNIAVYQAQV2AAgP1bUGAENhBhADZXYAA1YOAcgGMKdU3mFGEAO1eAY1ySF+AUYQBZV1tgAID9W2EAQ2EAd1ZbYEBRYQBQkZBhAYBWW2BAUYCRA5DzW2EAYWEA71ZbYEBRYQBukZBhAYBWW2BAUYCRA5DzW2AAMHP//////////////////////////xZjCnVN5mBAUYFj/////xZg4BuBUmAEAWAgYEBRgIMDgWAAh1rxFYAVYQDGVz1gAIA+PWAA/VtQUFBQYEBRPWAfGWAfggEWggGAYEBSUIEBkGEA6pGQYQHMVluQUJBWW2AAMHP//////////////////////////xZjXJIX4GBAUYFj/////xZg4BuBUmAEAWAgYEBRgIMDgWAAh1rxFYAVYQE+Vz1gAIA+PWAA/VtQUFBQYEBRPWAfGWAfggEWggGAYEBSUIEBkGEBYpGQYQHMVluQUJBWW2AAgZBQkZBQVlthAXqBYQFnVluCUlBQVltgAGAgggGQUGEBlWAAgwGEYQFxVluSkVBQVltgAID9W2EBqYFhAWdWW4EUYQG0V2AAgP1bUFZbYACBUZBQYQHGgWEBoFZbkpFQUFZbYABgIIKEAxIVYQHiV2EB4WEBm1ZbW2AAYQHwhIKFAWEBt1ZbkVBQkpFQUFb+omRpcGZzWCISIKoWya9ssYTx2OJ2sTJZ1bMQWrJvXVZY2feLjoVjVstlZHNvbGNDAAgQADMigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMCaDDoDGJAIShYKFAAAAAAAAAAAAAAAAAAAAAAAAAQQcgcKAxiQCBABUhYKCQoCGAIQ/7LFDQoJCgIYYhCAs8UN"},{"b64Body":"ChAKCQjdsZqtBhC5BhIDGIoIEgIYAxjAv+0hIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46IgoWIhQAAAAAAAAAAAAAAAAAAAAAAAAEDBDAhD0iBAp1TeY=","b64Record":"CiUIFiIDGIwIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBFc14GkNX38FuwLhBU8s0cEQNJC6nW4rT4Z8Xz9eg5K9CeZxCCuSQPpguLQ7Pz4FkaDAiZspqtBhCjwZndAiIQCgkI3bGarQYQuQYSAxiKCCogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wgOaKGzquAgoDGIwIEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFiKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAogOowUhcKCQoCGGIQgMyVNgoKCgMYiggQ/8uVNg=="},{"b64Body":"ChIKCQjdsZqtBhC5BhIDGIoIIAHCAgoKAxiKCBIDGIwI","b64Record":"CgIIFhIwxaW30YVoc95uv1myEXuvvrbWmKtmMA+xz8L7zDLAqgll56ErdUd3/PQEqhdRaWrnGgwImbKarQYQpMGZ3QIiEgoJCN2xmq0GELkGEgMYigggATpSCgMY5wISIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWKOL9KlDZ0zpiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEDAp1TeZqAxiKCFIAegwImbKarQYQo8GZ3QI="},{"b64Body":"ChAKCQjesZqtBhC7BhIDGIoIEgIYAxjAv+0hIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46IgoWIhQAAAAAAAAAAAAAAAAAAAAAAAAEDRDAhD0iBAp1TeY=","b64Record":"CiUIFiIDGI0IKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAaXbdbbzaM3zXG1AubMPtMA5F59MYrUFWHjEvGh57EZ51qjTLnbtCIqESlUd1qoYEaDAiaspqtBhDDzsKBASIQCgkI3rGarQYQuwYSAxiKCCogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wgOaKGzquAgoDGI0IEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApiKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAogOowUhcKCQoCGGIQgMyVNgoKCgMYiggQ/8uVNg=="},{"b64Body":"ChIKCQjesZqtBhC7BhIDGIoIIAHCAgoKAxiKCBIDGI0I","b64Record":"CgMIpgESMB6lyqnEYkyS5SP7Ow3QKf/vyPKwIcldf1S0/+1feuzAlR72rESo1mE0q5COQ0MVxRoMCJqymq0GEMTOwoEBIhIKCQjesZqtBhC7BhIDGIoIIAE6dQoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAphohVE9LRU5TX1BFUl9BQ0NPVU5UX0xJTUlUX0VYQ0VFREVEKOL9KlDZ0zpiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEDQp1TeZqAxiKCHoMCJqymq0GEMPOwoEB"},{"b64Body":"ChAKCQjesZqtBhC9BhIDGIoIEgIYAxjAv+0hIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46IgoWIhQAAAAAAAAAAAAAAAAAAAAAAAAEDhDAhD0iBAp1TeY=","b64Record":"CiUIFiIDGI4IKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAC7zxDMpSA00aUFMqt8JIfKr7RmWDRVaeRnd4oNFW/8BUDRC70Nlpt8VrY62dxDnAaDAiaspqtBhCb7LbmAiIQCgkI3rGarQYQvQYSAxiKCCogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wgOaKGzquAgoDGI4IEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApiKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAogOowUhcKCQoCGGIQgMyVNgoKCgMYiggQ/8uVNg=="},{"b64Body":"ChIKCQjesZqtBhC9BhIDGIoIIAHCAgoKAxiKCBIDGI4I","b64Record":"CgMIpgESMLH2lQ3Bd9sNusZ56c1rQGptREnkPX++keV+vwf0e/ggm92gbt50jLVZtXveDWmOghoMCJqymq0GEJzstuYCIhIKCQjesZqtBhC9BhIDGIoIIAE6dQoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAphohVE9LRU5TX1BFUl9BQ0NPVU5UX0xJTUlUX0VYQ0VFREVEKOL9KlDZ0zpiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEDgp1TeZqAxiKCHoMCJqymq0GEJvstuYC"}]}}} \ No newline at end of file diff --git a/hedera-node/test-clients/record-snapshots/LazyCreateThroughPrecompile.json b/hedera-node/test-clients/record-snapshots/LazyCreateThroughPrecompile.json new file mode 100644 index 000000000000..2a6e0fbfbaf8 --- /dev/null +++ b/hedera-node/test-clients/record-snapshots/LazyCreateThroughPrecompile.json @@ -0,0 +1,452 @@ +{ + "specSnapshots": { + "revertedAutoCreationRollsBackEvenIfTopLevelSucceeds": { + "placeholderNum": 1022, + "encodedItems": [ + { + "b64Body": "Cg8KCQiknLqtBhDeBxICGAISAhgDGOy4wBgiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIGgzJ5P/wbHZj9hH+mUgZtysqlZ/18fT7XgTzlMHkrrhEICglKWNHUoFCIDO2gNwBQ==", + "b64Record": "CiUIFhIDGP8HKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDqDYKXqBClyf1omI0QPfMi5GJj2RP8U+6SfcK3E/5tKLiVQWZqQ76cWaiOiv5xxpIaCwjgnLqtBhCruZUyIg8KCQiknLqtBhDeBxICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUhsKCwoCGAIQ/7+oypo6CgwKAxj/BxCAwKjKmjo=" + }, + { + "b64Body": "Cg8KCQiknLqtBhDgBxICGAISAhgDGIXD6+gCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAU8KCVRva2VuX05GVBIITUdYRVJDV0kqAxj/B1IiEiBc2mC0jLE6mQVM0c3flDaEIGCiifOu80U3837x34FT72oMCODqlLEGEJjFsJkCiAEB", + "b64Record": "CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGIAIEjDxKiWudbZPCWI0AbhXUqic37aZg3TwPFKEYH85UIp3DMRTJjLgVAeFXWY5Bv5ifD0aDAjgnLqtBhD77/CzAiIPCgkIpJy6rQYQ4AcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAcgoKAxiACBIDGP8H" + }, + { + "b64Body": "Cg8KCQilnLqtBhDiBxICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjgESCwjh6pSxBhCIjfJMGm0KIhIgEZXQJItQFJN6HjcLOnRDI0YkEOlbrwjl9isi2n1WSYkKIzohAk/alsQXfGorUWOdzqa6nvkXqQ7T+N8uVGdPtpmmtUuXCiISIFokO+Wo2L7FEdXSX7FQv6QbfY7uhI2DokgknGCsiRrjIgxIZWxsbyBXb3JsZCEqADIA", + "b64Record": "CiUIFhoDGIEIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjA3Z7+34O/4LrLwe6a5MXJTqDW6VarQs97wGEYlrmTzp3Io1BmKhB+Hk6LFdeYVrAUaCwjhnLqtBhCLved0Ig8KCQilnLqtBhDiBxICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgA=" + }, + { + "b64Body": "Cg8KCQilnLqtBhDmBxICGAISAhgDGIydjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxiBCCKAIDYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMGY2MjgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDA0YzU3NjAwMDM1NjBlMDFjODA2MzEzZDY0NTc4MTQ2MTAwNTE1NzgwNjMyZjdhMTc3OTE0NjEwMDZkNTc4MDYzOWU2NjY2MTQxNDYxMDA4OTU3ODA2M2FlN2NjZmNlMTQ2MTAwYTU1NzViNjAwMDgwZmQ1YjYxMDA2YjYwMDQ4MDM2MDM4MTAxOTA2MTAwNjY5MTkwNjEwNjQ4NTY1YjYxMDBjMTU2NWIwMDViNjEwMDg3NjAwNDgwMzYwMzgxMDE5MDYxMDA4MjkxOTA2MTA2YzM1NjViNjEwMjJhNTY1YjAwNWI2MTAwYTM2MDA0ODAzNjAzODEwMTkwNjEwMDllOTE5MDYxMDk0NjU2NWI2MTAzNTE1NjViMDA1YjYxMDBiZjYwMDQ4MDM2MDM4MTAxOTA2MTAwYmE5MTkwNjEwNmMzNTY1YjYxMDQ3ODU2NWIwMDViNjAwMDgwNjEwMTY3NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MzVjZmM5MDExNjBlMDFiODg4ODg4ODg2MDQwNTE2MDI0MDE2MTAwZmM5NDkzOTI5MTkwNjEwYTFmNTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMDE2NjkxOTA2MTBhZDU1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMDFhMzU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMDFhODU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEwMWI3NTc2MDAwODBmZDViNjAwMDgxODA2MDIwMDE5MDUxODEwMTkwNjEwMWNkOTE5MDYxMGIyNTU2NWI5MDUwNjAxNjgxNjAwMzBiMTQ2MTAxZGY1NzYwMDA4MGZkNWI4MzE1NjEwMjIwNTc2MDQwNTE3ZjA4YzM3OWEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MTUyNjAwNDAxNjEwMjE3OTA2MTBiYWY1NjViNjA0MDUxODA5MTAzOTBmZDViNTA1MDUwNTA1MDUwNTA1MDU2NWI2MDAwODA2MTAxNjc3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzZWNhMzY5MTc2MGUwMWI4Nzg3ODc4NzYwNDA1MTYwMjQwMTYxMDI2NTk0OTM5MjkxOTA2MTBhMWY1NjViNjA0MDUxNjAyMDgxODMwMzAzODE1MjkwNjA0MDUyOTA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjEwMmNmOTE5MDYxMGFkNTU2NWI2MDAwNjA0MDUxODA4MzAzODE2MDAwODY1YWYxOTE1MDUwM2Q4MDYwMDA4MTE0NjEwMzBjNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjEwMzExNTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTAzMjA1NzYwMDA4MGZkNWI2MDAwODE4MDYwMjAwMTkwNTE4MTAxOTA2MTAzMzY5MTkwNjEwYjI1NTY1YjkwNTA2MDE2ODE2MDAzMGIxNDYxMDM0ODU3NjAwMDgwZmQ1YjUwNTA1MDUwNTA1MDUwNTY1YjYwMDA4MDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjMyYzRiYTE5MTYwZTAxYjg3ODc4Nzg3NjA0MDUxNjAyNDAxNjEwMzhjOTQ5MzkyOTE5MDYxMGQ0YjU2NWI2MDQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI5MDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTAzZjY5MTkwNjEwYWQ1NTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NjVhZjE5MTUwNTAzZDgwNjAwMDgxMTQ2MTA0MzM1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTA0Mzg1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA4MTYxMDQ0NzU3NjAwMDgwZmQ1YjYwMDA4MTgwNjAyMDAxOTA1MTgxMDE5MDYxMDQ1ZDkxOTA2MTBiMjU1NjViOTA1MDYwMTY4MTYwMDMwYjE0NjEwNDZmNTc2MDAwODBmZDViNTA1MDUwNTA1MDUwNTA1NjViMzA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzMTNkNjQ1Nzg4NTg1ODU4NTYwMDE2MDQwNTE4NjYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MTA0YmE5NTk0OTM5MjkxOTA2MTBkYjQ1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg3ODAzYjE1ODAxNTYxMDRkNDU3NjAwMDgwZmQ1YjUwNWFmMTkyNTA1MDUwODAxNTYxMDRlNTU3NTA2MDAxNWI2MTA1NWU1NzYxMDRmMTYxMGUxNDU2NWI4MDYzMDhjMzc5YTAwMzYxMDU0ZDU3NTA2MTA1MDU2MTBlMzY1NjViODA2MTA1MTA1NzUwNjEwNTRmNTY1YjdmY2YzNGVmNTM3YWMzM2VlMWFjNjI2Y2ExNTg3YTBhN2U4ZTUxNTYxZTU1MTRmOGNiMzZhZmExYzUxMDJiM2JhYjgxNjA0MDUxNjEwNTNmOTE5MDYxMGYwYTU2NWI2MDQwNTE4MDkxMDM5MGExNTA2MTA1NTk1NjViNTA1YjNkNjAwMDgwM2UzZDYwMDBmZDViNjEwNTVmNTY1YjViNTA1MDUwNTA1NjViNjAwMDYwNDA1MTkwNTA5MDU2NWI2MDAwODBmZDViNjAwMDgwZmQ1YjYwMDA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MjE2OTA1MDkxOTA1MDU2NWI2MDAwNjEwNWE0ODI2MTA1Nzk1NjViOTA1MDkxOTA1MDU2NWI2MTA1YjQ4MTYxMDU5OTU2NWI4MTE0NjEwNWJmNTc2MDAwODBmZDViNTA1NjViNjAwMDgxMzU5MDUwNjEwNWQxODE2MTA1YWI1NjViOTI5MTUwNTA1NjViNjAwMDgxNjAwNzBiOTA1MDkxOTA1MDU2NWI2MTA1ZWQ4MTYxMDVkNzU2NWI4MTE0NjEwNWY4NTc2MDAwODBmZDViNTA1NjViNjAwMDgxMzU5MDUwNjEwNjBhODE2MTA1ZTQ1NjViOTI5MTUwNTA1NjViNjAwMDgxMTUxNTkwNTA5MTkwNTA1NjViNjEwNjI1ODE2MTA2MTA1NjViODExNDYxMDYzMDU3NjAwMDgwZmQ1YjUwNTY1YjYwMDA4MTM1OTA1MDYxMDY0MjgxNjEwNjFjNTY1YjkyOTE1MDUwNTY1YjYwMDA4MDYwMDA4MDYwMDA2MGEwODY4ODAzMTIxNTYxMDY2NDU3NjEwNjYzNjEwNTZmNTY1YjViNjAwMDYxMDY3Mjg4ODI4OTAxNjEwNWMyNTY1Yjk1NTA1MDYwMjA2MTA2ODM4ODgyODkwMTYxMDVjMjU2NWI5NDUwNTA2MDQwNjEwNjk0ODg4Mjg5MDE2MTA1YzI1NjViOTM1MDUwNjA2MDYxMDZhNTg4ODI4OTAxNjEwNWZiNTY1YjkyNTA1MDYwODA2MTA2YjY4ODgyODkwMTYxMDYzMzU2NWI5MTUwNTA5Mjk1NTA5Mjk1OTA5MzUwNTY1YjYwMDA4MDYwMDA4MDYwODA4NTg3MDMxMjE1NjEwNmRkNTc2MTA2ZGM2MTA1NmY1NjViNWI2MDAwNjEwNmViODc4Mjg4MDE2MTA1YzI1NjViOTQ1MDUwNjAyMDYxMDZmYzg3ODI4ODAxNjEwNWMyNTY1YjkzNTA1MDYwNDA2MTA3MGQ4NzgyODgwMTYxMDVjMjU2NWI5MjUwNTA2MDYwNjEwNzFlODc4Mjg4MDE2MTA1ZmI1NjViOTE1MDUwOTI5NTkxOTQ1MDkyNTA1NjViNjAwMDgwZmQ1YjYwMDA2MDFmMTk2MDFmODMwMTE2OTA1MDkxOTA1MDU2NWI3ZjRlNDg3YjcxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MDAwNTI2MDQxNjAwNDUyNjAyNDYwMDBmZDViNjEwNzc4ODI2MTA3MmY1NjViODEwMTgxODExMDY3ZmZmZmZmZmZmZmZmZmZmZjgyMTExNzE1NjEwNzk3NTc2MTA3OTY2MTA3NDA1NjViNWI4MDYwNDA1MjUwNTA1MDU2NWI2MDAwNjEwN2FhNjEwNTY1NTY1YjkwNTA2MTA3YjY4MjgyNjEwNzZmNTY1YjkxOTA1MDU2NWI2MDAwNjdmZmZmZmZmZmZmZmZmZmZmODIxMTE1NjEwN2Q2NTc2MTA3ZDU2MTA3NDA1NjViNWI2MDIwODIwMjkwNTA2MDIwODE=", + "b64Record": "CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwT8RSUICcY/iyR7mkHaPeqv9k1Wrd4xqCYfx2dJ8mJvtnjbEpPIgCY3y5M0il+MwIGgwI4Zy6rQYQ08HrrwMiDwoJCKWcuq0GEOYHEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA==" + }, + { + "b64Body": "Cg8KCQimnLqtBhDsBxICGAISAhgDGJ2T3T0iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBjB4SAxiBCCKEHjAxOTA1MDkxOTA1MDU2NWI2MDAwODBmZDViNjAwMDYxMDdmZjYxMDdmYTg0NjEwN2JiNTY1YjYxMDdhMDU2NWI5MDUwODA4MzgyNTI2MDIwODIwMTkwNTA2MDIwODQwMjgzMDE4NTgxMTExNTYxMDgyMjU3NjEwODIxNjEwN2U3NTY1YjViODM1YjgxODExMDE1NjEwODRiNTc4MDYxMDgzNzg4ODI2MTA1YzI1NjViODQ1MjYwMjA4NDAxOTM1MDUwNjAyMDgxMDE5MDUwNjEwODI0NTY1YjUwNTA1MDkzOTI1MDUwNTA1NjViNjAwMDgyNjAxZjgzMDExMjYxMDg2YTU3NjEwODY5NjEwNzJhNTY1YjViODEzNTYxMDg3YTg0ODI2MDIwODYwMTYxMDdlYzU2NWI5MTUwNTA5MjkxNTA1MDU2NWI2MDAwNjdmZmZmZmZmZmZmZmZmZmZmODIxMTE1NjEwODllNTc2MTA4OWQ2MTA3NDA1NjViNWI2MDIwODIwMjkwNTA2MDIwODEwMTkwNTA5MTkwNTA1NjViNjAwMDYxMDhjMjYxMDhiZDg0NjEwODgzNTY1YjYxMDdhMDU2NWI5MDUwODA4MzgyNTI2MDIwODIwMTkwNTA2MDIwODQwMjgzMDE4NTgxMTExNTYxMDhlNTU3NjEwOGU0NjEwN2U3NTY1YjViODM1YjgxODExMDE1NjEwOTBlNTc4MDYxMDhmYTg4ODI2MTA1ZmI1NjViODQ1MjYwMjA4NDAxOTM1MDUwNjAyMDgxMDE5MDUwNjEwOGU3NTY1YjUwNTA1MDkzOTI1MDUwNTA1NjViNjAwMDgyNjAxZjgzMDExMjYxMDkyZDU3NjEwOTJjNjEwNzJhNTY1YjViODEzNTYxMDkzZDg0ODI2MDIwODYwMTYxMDhhZjU2NWI5MTUwNTA5MjkxNTA1MDU2NWI2MDAwODA2MDAwODA2MDgwODU4NzAzMTIxNTYxMDk2MDU3NjEwOTVmNjEwNTZmNTY1YjViNjAwMDYxMDk2ZTg3ODI4ODAxNjEwNWMyNTY1Yjk0NTA1MDYwMjA4NTAxMzU2N2ZmZmZmZmZmZmZmZmZmZmY4MTExMTU2MTA5OGY1NzYxMDk4ZTYxMDU3NDU2NWI1YjYxMDk5Yjg3ODI4ODAxNjEwODU1NTY1YjkzNTA1MDYwNDA4NTAxMzU2N2ZmZmZmZmZmZmZmZmZmZmY4MTExMTU2MTA5YmM1NzYxMDliYjYxMDU3NDU2NWI1YjYxMDljODg3ODI4ODAxNjEwODU1NTY1YjkyNTA1MDYwNjA4NTAxMzU2N2ZmZmZmZmZmZmZmZmZmZmY4MTExMTU2MTA5ZTk1NzYxMDllODYxMDU3NDU2NWI1YjYxMDlmNTg3ODI4ODAxNjEwOTE4NTY1YjkxNTA1MDkyOTU5MTk0NTA5MjUwNTY1YjYxMGEwYTgxNjEwNTk5NTY1YjgyNTI1MDUwNTY1YjYxMGExOTgxNjEwNWQ3NTY1YjgyNTI1MDUwNTY1YjYwMDA2MDgwODIwMTkwNTA2MTBhMzQ2MDAwODMwMTg3NjEwYTAxNTY1YjYxMGE0MTYwMjA4MzAxODY2MTBhMDE1NjViNjEwYTRlNjA0MDgzMDE4NTYxMGEwMTU2NWI2MTBhNWI2MDYwODMwMTg0NjEwYTEwNTY1Yjk1OTQ1MDUwNTA1MDUwNTY1YjYwMDA4MTUxOTA1MDkxOTA1MDU2NWI2MDAwODE5MDUwOTI5MTUwNTA1NjViNjAwMDViODM4MTEwMTU2MTBhOTg1NzgwODIwMTUxODE4NDAxNTI2MDIwODEwMTkwNTA2MTBhN2Q1NjViNjAwMDg0ODQwMTUyNTA1MDUwNTA1NjViNjAwMDYxMGFhZjgyNjEwYTY0NTY1YjYxMGFiOTgxODU2MTBhNmY1NjViOTM1MDYxMGFjOTgxODU2MDIwODYwMTYxMGE3YTU2NWI4MDg0MDE5MTUwNTA5MjkxNTA1MDU2NWI2MDAwNjEwYWUxODI4NDYxMGFhNDU2NWI5MTUwODE5MDUwOTI5MTUwNTA1NjViNjAwMDgxNjAwMzBiOTA1MDkxOTA1MDU2NWI2MTBiMDI4MTYxMGFlYzU2NWI4MTE0NjEwYjBkNTc2MDAwODBmZDViNTA1NjViNjAwMDgxNTE5MDUwNjEwYjFmODE2MTBhZjk1NjViOTI5MTUwNTA1NjViNjAwMDYwMjA4Mjg0MDMxMjE1NjEwYjNiNTc2MTBiM2E2MTA1NmY1NjViNWI2MDAwNjEwYjQ5ODQ4Mjg1MDE2MTBiMTA1NjViOTE1MDUwOTI5MTUwNTA1NjViNjAwMDgyODI1MjYwMjA4MjAxOTA1MDkyOTE1MDUwNTY1YjdmNTc2OTczNjgyYzIwNjM2ZjZkNmQ2MTZlNjQyYzIwNjU3NDYzMmUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYwMDA4MjAxNTI1MDU2NWI2MDAwNjEwYjk5NjAxMzgzNjEwYjUyNTY1YjkxNTA2MTBiYTQ4MjYxMGI2MzU2NWI2MDIwODIwMTkwNTA5MTkwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDgxODEwMzYwMDA4MzAxNTI2MTBiYzg4MTYxMGI4YzU2NWI5MDUwOTE5MDUwNTY1YjYwMDA4MTUxOTA1MDkxOTA1MDU2NWI2MDAwODI4MjUyNjAyMDgyMDE5MDUwOTI5MTUwNTA1NjViNjAwMDgxOTA1MDYwMjA4MjAxOTA1MDkxOTA1MDU2NWI2MTBjMDQ4MTYxMDU5OTU2NWI4MjUyNTA1MDU2NWI2MDAwNjEwYzE2ODM4MzYxMGJmYjU2NWI2MDIwODMwMTkwNTA5MjkxNTA1MDU2NWI2MDAwNjAyMDgyMDE5MDUwOTE5MDUwNTY1YjYwMDA2MTBjM2E4MjYxMGJjZjU2NWI2MTBjNDQ4MTg1NjEwYmRhNTY1YjkzNTA2MTBjNGY4MzYxMGJlYjU2NWI4MDYwMDA1YjgzODExMDE1NjEwYzgwNTc4MTUxNjEwYzY3ODg4MjYxMGMwYTU2NWI5NzUwNjEwYzcyODM2MTBjMjI1NjViOTI1MDUwNjAwMTgxMDE5MDUwNjEwYzUzNTY1YjUwODU5MzUwNTA1MDUwOTI5MTUwNTA1NjViNjAwMDgxNTE5MDUwOTE5MDUwNTY1YjYwMDA4MjgyNTI2MDIwODIwMTkwNTA5MjkxNTA1MDU2NWI2MDAwODE5MDUwNjAyMDgyMDE5MDUwOTE5MDUwNTY1YjYxMGNjMjgxNjEwNWQ3NTY1YjgyNTI1MDUwNTY1YjYwMDA2MTBjZDQ4MzgzNjEwY2I5NTY1YjYwMjA4MzAxOTA1MDkyOTE1MDUwNTY1YjYwMDA2MDIwODIwMTkwNTA5MTkwNTA1NjViNjAwMDYxMGNmODgyNjEwYzhkNTY1YjYxMGQwMjgxODU2MTBjOTg1NjViOTM1MDYxMGQwZDgzNjEwY2E5NTY1YjgwNjAwMDViODM4MTEwMTU2MTBkM2U1NzgxNTE2MTBkMjU4ODgyNjEwY2M4NTY1Yjk3NTA2MTBkMzA4MzYxMGNlMDU2NWI5MjUwNTA2MDAxODEwMTkwNTA2MTBkMTE1NjViNTA4NTkzNTA1MDUwNTA5MjkxNTA1MDU2NWI2MDAwNjA4MDgyMDE5MDUwNjEwZDYwNjAwMDgzMDE4NzYxMGEwMTU2NWI4MTgxMDM2MDIwODMwMTUyNjEwZDcyODE4NjYxMGMyZjU2NWI5MDUwODE4MTAzNjA0MDgzMDE1MjYxMGQ4NjgxODU2MTBjMmY1NjViOTA1MDgxODEwMzYwNjA4MzAxNTI2MTBkOWE4MTg0NjEwY2VkNTY1YjkwNTA5NTk0NTA1MDUwNTA1MDU2NWI2MTBkYWU4MTYxMDYxMDU2NWI4MjUyNTA1MDU2NWI2MDAwNjBhMDgyMDE5MDUwNjEwZGM5NjAwMDgzMDE4ODYxMGEwMTU2NWI2MTBkZDY2MDIwODMwMTg3NjEwYTAxNTY1YjYxMGRlMzYwNDA4MzAxODY2MTBhMDE1NjViNjEwZGYwNjA2MDgzMDE4NTYxMGExMDU2NWI2MTBkZmQ2MDgwODMwMTg0NjEwZGE1NTY1Yjk2OTU1MDUwNTA1MDUwNTA1NjViNjAwMDgxNjBlMDFjOTA1MDkxOTA1MDU2NWI2MDAwNjAwMzNkMTExNTYxMGUzMzU3NjAwNDYwMDA4MDNlNjEwZTMwNjAwMDUxNjEwZTA3NTY1YjkwNTA1YjkwNTY1YjYwMDA2MDQ0M2QxMDYxMGVjMzU3NjEwZTQ4NjEwNTY1NTY1YjYwMDQzZDAzNjAwNDgyM2U4MDUxM2Q2MDI0ODIwMTExNjdmZmZmZmZmZmZmZmZmZmZmODIxMTE3MTU2MTBlNzA1NzUwNTA2MTBlYzM1NjViODA4MjAxODA1MTY3ZmZmZmZmZmZmZmZmZmZmZjgxMTExNTYxMGU4ZTU3NTA1MDUwNTA2MTBlYzM1NjViODA2MDIwODMwMTAxNjAwNDNkMDM4NTAxODExMTE1NjEwZWFiNTc1MDUwNTA1MDUwNjEwZWMzNTY1YjYxMGViYTgyNjAyMDAxODUwMTg2NjEwNzZmNTY1YjgyOTU1MDUwNTA1MDUwNTA1YjkwNTY1YjYwMDA4MTUxOTA1MDkxOTA1MDU2NWI2MDAwNjEwZWRjODI2MTBlYzY1NjViNjEwZWU2ODE4NTYxMGI1MjU2NWI5MzUwNjEwZWY2ODE4NTYwMjA4NjAxNjEwYTdhNTY1YjYxMGVmZjgxNjEwNzJmNTY1Yjg0MDE5MTUwNTA5MjkxNTA1MDU2NWI2MDAwNjAyMDgyMDE5MDUwODE4MTAzNjAwMDgzMDE1MjYxMGYyNDgxODQ2MTBlZDE1NjViOTA1MDkyOTE1MDUwNTZmZWEyNjQ2OTcwNjY3MzU4MjIxMjIwNjJlMDI1Yjg1OWZlMmRlOWM3OGY5ZjU0NTgyNjdkYTE4MWM2M2I3NjQwYTE3MDdiM2U5NWU0YmNmOGZjZGVhNTY0NzM2ZjZjNjM0MzAwMDgxMDAwMzM=", + "b64Record": "CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw+9wE91jFJwkSvu66dC5oJ+a6Ol+/5+lZSGDy+VH+T/+hdk8nabgwL5TQqUSw/Cw4GgwI4py6rQYQm+n50wEiDwoJCKacuq0GEOwHEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA==" + }, + { + "b64Body": "Cg8KCQimnLqtBhDuBxICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGIEIGiISIGPkhMjekPK6hrrbwm/ALGDvPEaC1BYpFlSyASL9LUMKIJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==", + "b64Record": "CiUIFiIDGIIIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBTVfd771zSk3kw7rZkbA2LH7MxF+UR59ESjmNoIbuCp4Lci0Qz6C34BRBSG1kg/dUaDAjinLqtBhDLqsfVAyIPCgkIppy6rQYQ7gcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQpchCgMYgggS4h5ggGBAUjSAFWEAEFdgAID9W1BgBDYQYQBMV2AANWDgHIBjE9ZFeBRhAFFXgGMvehd5FGEAbVeAY55mZhQUYQCJV4BjrnzPzhRhAKVXW2AAgP1bYQBrYASANgOBAZBhAGaRkGEGSFZbYQDBVlsAW2EAh2AEgDYDgQGQYQCCkZBhBsNWW2ECKlZbAFthAKNgBIA2A4EBkGEAnpGQYQlGVlthA1FWWwBbYQC/YASANgOBAZBhALqRkGEGw1ZbYQR4VlsAW2AAgGEBZ3P//////////////////////////xZjXPyQEWDgG4iIiIhgQFFgJAFhAPyUk5KRkGEKH1ZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQFmkZBhCtVWW2AAYEBRgIMDgWAAhlrxkVBQPYBgAIEUYQGjV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YQGoVltgYJFQW1CRUJFQgWEBt1dgAID9W2AAgYBgIAGQUYEBkGEBzZGQYQslVluQUGAWgWADCxRhAd9XYACA/VuDFWECIFdgQFF/CMN5oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBUmAEAWECF5BhC69WW2BAUYCRA5D9W1BQUFBQUFBQVltgAIBhAWdz//////////////////////////8WY+yjaRdg4BuHh4eHYEBRYCQBYQJllJOSkZBhCh9WW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWECz5GQYQrVVltgAGBAUYCDA4FgAIZa8ZFQUD2AYACBFGEDDFdgQFGRUGAfGWA/PQEWggFgQFI9glI9YABgIIQBPmEDEVZbYGCRUFtQkVCRUIFhAyBXYACA/VtgAIGAYCABkFGBAZBhAzaRkGELJVZbkFBgFoFgAwsUYQNIV2AAgP1bUFBQUFBQUFZbYACAYQFnc///////////////////////////FmMsS6GRYOAbh4eHh2BAUWAkAWEDjJSTkpGQYQ1LVltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhA/aRkGEK1VZbYABgQFGAgwOBYACGWvGRUFA9gGAAgRRhBDNXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hBDhWW2BgkVBbUJFQkVCBYQRHV2AAgP1bYACBgGAgAZBRgQGQYQRdkZBhCyVWW5BQYBaBYAMLFGEEb1dgAID9W1BQUFBQUFBWWzBz//////////////////////////8WYxPWRXiFhYWFYAFgQFGGY/////8WYOAbgVJgBAFhBLqVlJOSkZBhDbRWW2AAYEBRgIMDgWAAh4A7FYAVYQTUV2AAgP1bUFrxklBQUIAVYQTlV1BgAVthBV5XYQTxYQ4UVluAYwjDeaADYQVNV1BhBQVhDjZWW4BhBRBXUGEFT1Zbf88071N6wz7hrGJsoVh6Cn6OUVYeVRT4yzavocUQKzurgWBAUWEFP5GQYQ8KVltgQFGAkQOQoVBhBVlWW1BbPWAAgD49YAD9W2EFX1ZbW1BQUFBWW2AAYEBRkFCQVltgAID9W2AAgP1bYABz//////////////////////////+CFpBQkZBQVltgAGEFpIJhBXlWW5BQkZBQVlthBbSBYQWZVluBFGEFv1dgAID9W1BWW2AAgTWQUGEF0YFhBatWW5KRUFBWW2AAgWAHC5BQkZBQVlthBe2BYQXXVluBFGEF+FdgAID9W1BWW2AAgTWQUGEGCoFhBeRWW5KRUFBWW2AAgRUVkFCRkFBWW2EGJYFhBhBWW4EUYQYwV2AAgP1bUFZbYACBNZBQYQZCgWEGHFZbkpFQUFZbYACAYACAYABgoIaIAxIVYQZkV2EGY2EFb1ZbW2AAYQZyiIKJAWEFwlZblVBQYCBhBoOIgokBYQXCVluUUFBgQGEGlIiCiQFhBcJWW5NQUGBgYQaliIKJAWEF+1ZbklBQYIBhBraIgokBYQYzVluRUFCSlVCSlZCTUFZbYACAYACAYICFhwMSFWEG3VdhBtxhBW9WW1tgAGEG64eCiAFhBcJWW5RQUGAgYQb8h4KIAWEFwlZbk1BQYEBhBw2HgogBYQXCVluSUFBgYGEHHoeCiAFhBftWW5FQUJKVkZRQklBWW2AAgP1bYABgHxlgH4MBFpBQkZBQVlt/Tkh7cQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAFJgQWAEUmAkYAD9W2EHeIJhBy9WW4EBgYEQZ///////////ghEXFWEHl1dhB5ZhB0BWW1uAYEBSUFBQVltgAGEHqmEFZVZbkFBhB7aCgmEHb1ZbkZBQVltgAGf//////////4IRFWEH1ldhB9VhB0BWW1tgIIICkFBgIIEBkFCRkFBWW2AAgP1bYABhB/9hB/qEYQe7VlthB6BWW5BQgIOCUmAgggGQUGAghAKDAYWBERVhCCJXYQghYQfnVltbg1uBgRAVYQhLV4BhCDeIgmEFwlZbhFJgIIQBk1BQYCCBAZBQYQgkVltQUFCTklBQUFZbYACCYB+DARJhCGpXYQhpYQcqVltbgTVhCHqEgmAghgFhB+xWW5FQUJKRUFBWW2AAZ///////////ghEVYQieV2EInWEHQFZbW2AgggKQUGAggQGQUJGQUFZbYABhCMJhCL2EYQiDVlthB6BWW5BQgIOCUmAgggGQUGAghAKDAYWBERVhCOVXYQjkYQfnVltbg1uBgRAVYQkOV4BhCPqIgmEF+1ZbhFJgIIQBk1BQYCCBAZBQYQjnVltQUFCTklBQUFZbYACCYB+DARJhCS1XYQksYQcqVltbgTVhCT2EgmAghgFhCK9WW5FQUJKRUFBWW2AAgGAAgGCAhYcDEhVhCWBXYQlfYQVvVltbYABhCW6HgogBYQXCVluUUFBgIIUBNWf//////////4ERFWEJj1dhCY5hBXRWW1thCZuHgogBYQhVVluTUFBgQIUBNWf//////////4ERFWEJvFdhCbthBXRWW1thCciHgogBYQhVVluSUFBgYIUBNWf//////////4ERFWEJ6VdhCehhBXRWW1thCfWHgogBYQkYVluRUFCSlZGUUJJQVlthCgqBYQWZVluCUlBQVlthChmBYQXXVluCUlBQVltgAGCAggGQUGEKNGAAgwGHYQoBVlthCkFgIIMBhmEKAVZbYQpOYECDAYVhCgFWW2EKW2BggwGEYQoQVluVlFBQUFBQVltgAIFRkFCRkFBWW2AAgZBQkpFQUFZbYABbg4EQFWEKmFeAggFRgYQBUmAggQGQUGEKfVZbYACEhAFSUFBQUFZbYABhCq+CYQpkVlthCrmBhWEKb1Zbk1BhCsmBhWAghgFhCnpWW4CEAZFQUJKRUFBWW2AAYQrhgoRhCqRWW5FQgZBQkpFQUFZbYACBYAMLkFCRkFBWW2ELAoFhCuxWW4EUYQsNV2AAgP1bUFZbYACBUZBQYQsfgWEK+VZbkpFQUFZbYABgIIKEAxIVYQs7V2ELOmEFb1ZbW2AAYQtJhIKFAWELEFZbkVBQkpFQUFZbYACCglJgIIIBkFCSkVBQVlt/V2lzaCwgY29tbWFuZCwgZXRjLgAAAAAAAAAAAAAAAABgAIIBUlBWW2AAYQuZYBODYQtSVluRUGELpIJhC2NWW2AgggGQUJGQUFZbYABgIIIBkFCBgQNgAIMBUmELyIFhC4xWW5BQkZBQVltgAIFRkFCRkFBWW2AAgoJSYCCCAZBQkpFQUFZbYACBkFBgIIIBkFCRkFBWW2EMBIFhBZlWW4JSUFBWW2AAYQwWg4NhC/tWW2AggwGQUJKRUFBWW2AAYCCCAZBQkZBQVltgAGEMOoJhC89WW2EMRIGFYQvaVluTUGEMT4NhC+tWW4BgAFuDgRAVYQyAV4FRYQxniIJhDApWW5dQYQxyg2EMIlZbklBQYAGBAZBQYQxTVltQhZNQUFBQkpFQUFZbYACBUZBQkZBQVltgAIKCUmAgggGQUJKRUFBWW2AAgZBQYCCCAZBQkZBQVlthDMKBYQXXVluCUlBQVltgAGEM1IODYQy5VltgIIMBkFCSkVBQVltgAGAgggGQUJGQUFZbYABhDPiCYQyNVlthDQKBhWEMmFZbk1BhDQ2DYQypVluAYABbg4EQFWENPleBUWENJYiCYQzIVluXUGENMINhDOBWW5JQUGABgQGQUGENEVZbUIWTUFBQUJKRUFBWW2AAYICCAZBQYQ1gYACDAYdhCgFWW4GBA2AggwFSYQ1ygYZhDC9WW5BQgYEDYECDAVJhDYaBhWEML1ZbkFCBgQNgYIMBUmENmoGEYQztVluQUJWUUFBQUFBWW2ENroFhBhBWW4JSUFBWW2AAYKCCAZBQYQ3JYACDAYhhCgFWW2EN1mAggwGHYQoBVlthDeNgQIMBhmEKAVZbYQ3wYGCDAYVhChBWW2EN/WCAgwGEYQ2lVluWlVBQUFBQUFZbYACBYOAckFCRkFBWW2AAYAM9ERVhDjNXYARgAIA+YQ4wYABRYQ4HVluQUFuQVltgAGBEPRBhDsNXYQ5IYQVlVltgBD0DYASCPoBRPWAkggERZ///////////ghEXFWEOcFdQUGEOw1ZbgIIBgFFn//////////+BERVhDo5XUFBQUGEOw1ZbgGAggwEBYAQ9A4UBgREVYQ6rV1BQUFBQYQ7DVlthDrqCYCABhQGGYQdvVluClVBQUFBQUFuQVltgAIFRkFCRkFBWW2AAYQ7cgmEOxlZbYQ7mgYVhC1JWW5NQYQ72gYVgIIYBYQp6VlthDv+BYQcvVluEAZFQUJKRUFBWW2AAYCCCAZBQgYEDYACDAVJhDySBhGEO0VZbkFCSkVBQVv6iZGlwZnNYIhIgYuAluFn+LenHj59UWCZ9oYHGO3ZAoXB7PpXkvPj83qVkc29sY0MACBAAMyKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAowJoMOgMYgghKFgoUAAAAAAAAAAAAAAAAAAAAAAAABAJyBwoDGIIIEAFSFgoJCgIYAhD/ssUNCgkKAhhiEICzxQ0=" + }, + { + "b64Body": "Cg8KCQinnLqtBhD0BxICGAISAhgDGP2NkRAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjqoCEwoDGIAIGgVtZXRhMRoFbWV0YTI=", + "b64Record": "CiYIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1gCcgIBAhIw8iq5jzED4FOQtMrg0sIUexP4eP1l5e58xgFxoYKhgm+4XKSPka5lbWax0iiPfxSdGgwI45y6rQYQi6DSlwIiDwoJCKecuq0GEPQHEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAFofCgMYgAgaCwoCGAASAxj/BxgBGgsKAhgAEgMY/wcYAg==" + }, + { + "b64Body": "Cg8KCQionLqtBhD3BxICGAISAhgDGIDC1y8iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIDFhIUCgMYgAgSAxj/BxoDGIIIIgECKgA=", + "b64Record": "CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwt6Dob6fA/QovleYvPrqyD9mD55INQ6nDWML7vbzsU7hftUodFLJV9lrIe7b3bdB0GgsI5Jy6rQYQg9PUPCIPCgkIqJy6rQYQ9wcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA" + }, + { + "b64Body": "Cg8KCQipnLqtBhD5BxICGAISAhgDGID+tYcBIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46kQEKAxiCCBCAkvQBIoQBrnzPzgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/8AAAAAAAAAAAAAAAB6YqeFZwXF85UGzJtZVq6OAoV9sQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC", + "b64Record": "CiUIFiIDGIIIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBvTgnU/6FVMdznO/EkE55FOTLdLXDJaMqwG3oxm3bZmt471T5MS8JHhGxySyZ/CykaDAjlnLqtBhD7geCNAiIPCgkIqZy6rQYQ+QcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCAmKtsOpwFCgMYgggigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAgEAAAAAAAAAAAAAAAAAAAAAAAAAAKICowwEyjAMKAxiCCBKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQACAQAAAAAAAAAAAAAAAAAAAAAAAAAAaIM8071N6wz7hrGJsoVh6Cn6OUVYeVRT4yzavocUQKzurImAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATV2lzaCwgY29tbWFuZCwgZXRjLgAAAAAAAAAAAAAAAABSGAoKCgIYAhD/r9bYAQoKCgIYYhCAsNbYAQ==" + }, + { + "b64Body": "ChEKCQipnLqtBhD5BxICGAIgAXIqEigKAxiACBohCgMY/wcSFiIUemKnhWcFxfOVBsybWVaujgKFfbEYAiAB", + "b64Record": "CgMImAISMNj1PJq7HtDWvGi3QTS4XmQZYIFSUMPUI5y7c6PcAXkosiAUDkF0CwwjITOk62Xu+xoMCOWcuq0GEPyB4I0CIhEKCQipnLqtBhD5BxICGAIgATq8AQoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFiiAhCxQverqAWKEAVz8kBEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/AAAAAAAAAAAAAAAAemKnhWcFxfOVBsybWVaujgKFfbEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmoDGIIIUgB6DAjlnLqtBhD7geCNAg==" + } + ] + }, + "erc20TransferLazyCreate": { + "placeholderNum": 1001, + "encodedItems": [ + { + "b64Body": "Cg8KCQjNqZ6tBhCaBRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIEEY66AotntbB1OomzWh/qwVxjy4VFrJ2UwXwy2Ef4tCEICU69wDSgUIgM7aAw==", + "b64Record": "CiUIFhIDGOoHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBFSZU6JJU0ICpJ1VA7shHxfU4/gNNtaBrzOtCeBcIpmN0ToLYqo+wbvh5AYDrPg5gaDAiJqp6tBhDTl6OoASIPCgkIzamerQYQmgUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxjqBxCAqNa5Bw==" + }, + { + "b64Body": "Cg8KCQjNqZ6tBhCcBRICGAISAhgDGL7W8vsCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAXYKDWZ1bmdpYmxlVG9rZW4SCE1ORVhZT1lSIAUqAxjqBzIiEiBasg84Qah9qi9ipbf+jRZp7vG+ZucM/Xs0vhaf5UeeUlIiEiBasg84Qah9qi9ipbf+jRZp7vG+ZucM/Xs0vhaf5UeeUmoMCIn4+LAGEJDQw5gD", + "b64Record": "CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGOsHEjC0YXRBNbt7TS+u46HE/Ydf5/HctVhuPDompJSuKo3oGzJq3Pml8dSTq3WzlygJSwgaDAiJqp6tBhDjh9epAyIPCgkIzamerQYQnAUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWg4KAxjrBxIHCgMY6gcQCnIKCgMY6wcSAxjqBw==" + }, + { + "b64Body": "Cg8KCQjOqZ6tBhCeBRICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAiK+PiwBhDwosG8ARptCiISIENT8TooCnPzD+MJkUuzukpBYMUn8Z7qsEOb5z+2XIeFCiM6IQKmKpEeRcA8dd3kOoYYyoVMBgo9ghV9XM7O1w0T5V7fsAoiEiAQcuznL40PtCijMF24GDawofGH9bE0+H4PosNw5RcZ9yIMSGVsbG8gV29ybGQhKgAyAA==", + "b64Record": "CiUIFhoDGOwHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBycsHHt1pQOn2dB+F051xBqSZvslhdyp9iOoooXGx8dVWzbUbnHhVPvzD36Qz/SaAaDAiKqp6tBhD717DOASIPCgkIzqmerQYQngUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA" + }, + { + "b64Body": "Cg8KCQjOqZ6tBhCiBRICGAISAhgDGIydjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxjsByKAIDYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMGE1NzgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDBjZjU3NjAwMDM1NjBlMDFjODA2M2JlYWJhY2M4MTE2MTAwOGM1NzgwNjNlNGRjMmFhNDExNjEwMDY2NTc4MDYzZTRkYzJhYTQxNDYxMDE4MTU3ODA2M2Y0Yjc5ZGE1MTQ2MTAxOTQ1NzgwNjNmNzg4OGFlYzE0NjEwMWE3NTc4MDYzZjc5Yzc1NjgxNDYxMDFiYTU3NjAwMDgwZmQ1YjgwNjNiZWFiYWNjODE0NjEwMTQ4NTc4MDYzZDQ0OWE4MzIxNDYxMDE1YjU3ODA2M2UxZjIxYzY3MTQ2MTAxNmU1NzYwMDA4MGZkNWI4MDYzMDE5ODQ4OTIxNDYxMDBkNDU3ODA2MzE1ZGFjYmVhMTQ2MTAwZTk1NzgwNjMxZjg0YjJiNzE0NjEwMGZjNTc4MDYzOTI3ZGExMDUxNDYxMDEwZjU3ODA2Mzk4ZGNhNWJlMTQ2MTAxMjI1NzgwNjNhODZlMzU3NjE0NjEwMTM1NTc1YjYwMDA4MGZkNWI2MTAwZTc2MTAwZTIzNjYwMDQ2MTA3NDY1NjViNjEwMWNkNTY1YjAwNWI2MTAwZTc2MTAwZjczNjYwMDQ2MTA3Njg1NjViNjEwMjM3NTY1YjYxMDBlNzYxMDEwYTM2NjAwNDYxMDdiMzU2NWI2MTAyYjk1NjViNjEwMGU3NjEwMTFkMzY2MDA0NjEwN2VmNTY1YjYxMDMzMzU2NWI2MTAwZTc2MTAxMzAzNjYwMDQ2MTA3Njg1NjViNjEwM2FiNTY1YjYxMDBlNzYxMDE0MzM2NjAwNDYxMDc0NjU2NWI2MTAzZTg1NjViNjEwMGU3NjEwMTU2MzY2MDA0NjEwN2IzNTY1YjYxMDQyNjU2NWI2MTAwZTc2MTAxNjkzNjYwMDQ2MTA3NDY1NjViNjEwNDlhNTY1YjYxMDBlNzYxMDE3YzM2NjAwNDYxMDdiMzU2NWI2MTA0ZmM1NjViNjEwMGU3NjEwMThmMzY2MDA0NjEwNzQ2NTY1YjYxMDUzMTU2NWI2MTAwZTc2MTAxYTIzNjYwMDQ2MTA3YjM1NjViNjEwNTkzNTY1YjYxMDBlNzYxMDFiNTM2NjAwNDYxMDgzMjU2NWI2MTA2Mzc1NjViNjEwMGU3NjEwMWM4MzY2MDA0NjEwODY1NTY1YjYxMDZhNjU2NWI4MDYwMDE2MDAxNjBhMDFiMDMxNjYzMDZmZGRlMDM2MDQwNTE4MTYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MDAwNjA0MDUxODA4MzAzODE4NjVhZmExNTgwMTU2MTAyMGI1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA2MDQwNTEzZDYwMDA4MjNlNjAxZjNkOTA4MTAxNjAxZjE5MTY4MjAxNjA0MDUyNjEwMjMzOTE5MDgxMDE5MDYxMDhkMTU2NWI1MDUwNTY1YjYwNDA1MTYzMjNiODcyZGQ2MGUwMWI4MTUyNjAwMTYwMDE2MGEwMWIwMzg0ODExNjYwMDQ4MzAxNTI4MzgxMTY2MDI0ODMwMTUyNjA0NDgyMDE4MzkwNTI4NTE2OTA2MzIzYjg3MmRkOTA2MDY0MDE2MDIwNjA0MDUxODA4MzAzODE2MDAwODc1YWYxMTU4MDE1NjEwMjhlNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTAyYjI5MTkwNjEwOTdlNTY1YjUwNTA1MDUwNTA1NjViNjA0MDUxNjNhOTA1OWNiYjYwZTAxYjgxNTI2MDAxNjAwMTYwYTAxYjAzODM4MTE2NjAwNDgzMDE1MjYwMjQ4MjAxODM5MDUyODQxNjkwNjNhOTA1OWNiYjkwNjA0NDAxNWI2MDIwNjA0MDUxODA4MzAzODE2MDAwODc1YWYxMTU4MDE1NjEwMzA5NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTAzMmQ5MTkwNjEwOTdlNTY1YjUwNjAwMDgwZmQ1YjYwNDA1MTYzNmViMTc2OWY2MGUxMWI4MTUyNjAwMTYwMDE2MGEwMWIwMzgzODExNjYwMDQ4MzAxNTI4MjgxMTY2MDI0ODMwMTUyODQxNjkwNjNkZDYyZWQzZTkwNjA0NDAxNjAyMDYwNDA1MTgwODMwMzgxODY1YWZhMTU4MDE1NjEwMzgxNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTAzYTU5MTkwNjEwOWEwNTY1YjUwNTA1MDUwNTY1YjYwNDA1MTYzMjNiODcyZGQ2MGUwMWI4MTUyNjAwMTYwMDE2MGEwMWIwMzg0ODExNjYwMDQ4MzAxNTI4MzgxMTY2MDI0ODMwMTUyNjA0NDgyMDE4MzkwNTI4NTE2OTA2MzIzYjg3MmRkOTA2MDY0MDE2MTAyZWE1NjViODA2MDAxNjAwMTYwYTAxYjAzMTY2Mzk1ZDg5YjQxNjA0MDUxODE2M2ZmZmZmZmZmMTY2MGUwMWI4MTUyNjAwNDAxNjAwMDYwNDA1MTgwODMwMzgxODY1YWZhMTU4MDE1NjEwMjBiNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjYwNDA1MTYzYTkwNTljYmI2MGUwMWI4MTUyNjAwMTYwMDE2MGEwMWIwMzgzODExNjYwMDQ4MzAxNTI2MDI0ODIwMTgzOTA1Mjg0MTY5MDYzYTkwNTljYmI5MDYwNDQwMTViNjAyMDYwNDA1MTgwODMwMzgxNjAwMDg3NWFmMTE1ODAxNTYxMDQ3NjU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAxZjE5NjAxZjgyMDExNjgyMDE4MDYwNDA1MjUwODEwMTkwNjEwM2E1OTE5MDYxMDk3ZTU2NWI4MDYwMDE2MDAxNjBhMDFiMDMxNjYzMzEzY2U1Njc2MDQwNTE4MTYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MDIwNjA0MDUxODA4MzAzODE4NjVhZmExNTgwMTU2MTA0ZDg1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA2MDQwNTEzZDYwMWYxOTYwMWY4MjAxMTY4MjAxODA2MDQwNTI1MDgxMDE5MDYxMDIzMzkxOTA2MTA5Yjk1NjViNjA0MDUxNjMwOTVlYTdiMzYwZTAxYjgxNTI2MDAxNjAwMTYwYTAxYjAzODM4MTE2NjAwNDgzMDE1MjYwMjQ4MjAxODM5MDUyODQxNjkwNjMwOTVlYTdiMzkwNjA0NDAxNjEwNDU3NTY1YjgwNjAwMTYwMDE2MGEwMWIwMzE2NjMxODE2MGRkZDYwNDA1MTgxNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYwMjA2MDQwNTE4MDgzMDM4MTg2NWFmYTE1ODAxNTYxMDU2ZjU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAxZjE5NjAxZjgyMDExNjgyMDE4MDYwNDA1MjUwODEwMTkwNjEwMjMzOTE5MDYxMDlhMDU2NWI2MDQwNTE2MDAxNjAwMTYwYTAxYjAzODM4MTE2NjAyNDgzMDE1MjYwNDQ4MjAxODM5MDUyNjAwMDkxODI5MTg2MTY5MDYwNjQwMTYwNDA4MDUxNjAxZjE5ODE4NDAzMDE4MTUyOTE4MTUyNjAyMDgyMDE4MDUxNjAwMTYwMDE2MGUwMWIwMzE2NjNhOTA1OWNiYjYwZTAxYjE3OTA1MjUxNjEwNWVkOTE5MDYxMDlkYzU2NWI2MDAwNjA0MDUxODA4MzAzODE4NTVhZjQ5MTUwNTAzZDgwNjAwMDgxMTQ2MTA2Mjg1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTA2MmQ1NjViNjA2MDkxNTA1YjUwNTA1MDUwNTA1MDUwNTA1NjViNjA0MDUxNjM3MGEwODIzMTYwZTAxYjgxNTI2MDAxNjAwMTYwYTAxYjAzODI4MTE2NjAwNDgzMDE1MjgzMTY5MDYzNzBhMDgyMzE5MDYwMjQwMTYwMjA2MDQwNTE4MDgzMDM4MTg2NWFmYTE1ODAxNTYxMDY3ZDU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAxZjE5NjAxZjgyMDExNjgyMDE4MDYwNDA1MjUwODEwMTkwNjEwNmExOTE5MDYxMDlhMDU2NWI1MDUwNTA1NjViNjAwMDViODE4MTEwMTU2MTA2YTE1NzgyNjAwMTYwMDE2MGEwMWIwMzE2NjMwNmZkZGUwMzYwNDA1MTgxNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYwMDA2MDQwNTE4MDgzMDM4MTg2NWFmYTE1ODAxNTYxMDZlZjU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAwMDgyM2U2MDFmM2Q5MDgxMDE2MDFmMTkxNjgyMDE2MDQwNTI2MTA3MTc5MTkwODEwMTkwNjEwOGQxNTY1YjUwODA2MTA3MjI4MTYxMDlmODU2NWI5MTUwNTA2MTA2YTk1NjViODAzNTYwMDE2MDAxNjBhMDFiMDM4MTE2ODExNDYxMDc0MTU3NjAwMDgwZmQ1YjkxOTA1MDU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTA3NTg1NzYwMDA4MGZkNWI2MTA3NjE4MjYxMDcyYTU2NWI5MzkyNTA1MDUwNTY1YjYwMDA4MDYwMDA4MDYwODA4NTg3MDMxMjE1NjEwNzdlNTc2MDAwODBmZDViNjEwNzg3ODU2MTA3MmE1NjViOTM1MDYxMDc5NTYwMjA4NjAxNjEwNzJhNTY1YjkyNTA2MTA3YTM2MDQwODYwMTYxMDcyYTU2NWI5Mzk2OTI5NTUwOTI5MzYwNjAwMTM1OTI1MDUwNTY1YjYwMDA4MDYwMDA2MDYwODQ4NjAzMTIxNTYxMDdjODU3NjAwMDgwZmQ1YjYxMDdkMTg0NjEwNzJhNTY1YjkyNTA2MTA3ZGY2MDIwODUwMTYxMDcyYTU2NWI=", + "b64Record": "CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwv4p5YcqPieWv3Fe4mvWQnPezZ972Aud0lrmx4kvjTKF+OyPEVju0Ae2WVfYkNUL7GgwIiqqerQYQg57lzwMiDwoJCM6pnq0GEKIFEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA==" + }, + { + "b64Body": "Cg8KCQjPqZ6tBhCoBRICGAISAhgDGKq4szIiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIB9gkSAxjsByLuCTkxNTA2MDQwODQwMTM1OTA1MDkyNTA5MjUwOTI1NjViNjAwMDgwNjAwMDYwNjA4NDg2MDMxMjE1NjEwODA0NTc2MDAwODBmZDViNjEwODBkODQ2MTA3MmE1NjViOTI1MDYxMDgxYjYwMjA4NTAxNjEwNzJhNTY1YjkxNTA2MTA4Mjk2MDQwODUwMTYxMDcyYTU2NWI5MDUwOTI1MDkyNTA5MjU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMDg0NTU3NjAwMDgwZmQ1YjYxMDg0ZTgzNjEwNzJhNTY1YjkxNTA2MTA4NWM2MDIwODQwMTYxMDcyYTU2NWI5MDUwOTI1MDkyOTA1MDU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMDg3ODU3NjAwMDgwZmQ1YjYxMDg4MTgzNjEwNzJhNTY1Yjk0NjAyMDkzOTA5MzAxMzU5MzUwNTA1MDU2NWI2MzRlNDg3YjcxNjBlMDFiNjAwMDUyNjA0MTYwMDQ1MjYwMjQ2MDAwZmQ1YjYwMDA1YjgzODExMDE1NjEwOGMwNTc4MTgxMDE1MTgzODIwMTUyNjAyMDAxNjEwOGE4NTY1YjgzODExMTE1NjEwM2E1NTc1MDUwNjAwMDkxMDE1MjU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTA4ZTM1NzYwMDA4MGZkNWI4MTUxNjdmZmZmZmZmZmZmZmZmZmZmODA4MjExMTU2MTA4ZmI1NzYwMDA4MGZkNWI4MTg0MDE5MTUwODQ2MDFmODMwMTEyNjEwOTBmNTc2MDAwODBmZDViODE1MTgxODExMTE1NjEwOTIxNTc2MTA5MjE2MTA4OGY1NjViNjA0MDUxNjAxZjgyMDE2MDFmMTk5MDgxMTY2MDNmMDExNjgxMDE5MDgzODIxMTgxODMxMDE3MTU2MTA5NDk1NzYxMDk0OTYxMDg4ZjU2NWI4MTYwNDA1MjgyODE1Mjg3NjAyMDg0ODcwMTAxMTExNTYxMDk2MjU3NjAwMDgwZmQ1YjYxMDk3MzgzNjAyMDgzMDE2MDIwODgwMTYxMDhhNTU2NWI5Nzk2NTA1MDUwNTA1MDUwNTA1NjViNjAwMDYwMjA4Mjg0MDMxMjE1NjEwOTkwNTc2MDAwODBmZDViODE1MTgwMTUxNTgxMTQ2MTA3NjE1NzYwMDA4MGZkNWI2MDAwNjAyMDgyODQwMzEyMTU2MTA5YjI1NzYwMDA4MGZkNWI1MDUxOTE5MDUwNTY1YjYwMDA2MDIwODI4NDAzMTIxNTYxMDljYjU3NjAwMDgwZmQ1YjgxNTE2MGZmODExNjgxMTQ2MTA3NjE1NzYwMDA4MGZkNWI2MDAwODI1MTYxMDllZTgxODQ2MDIwODcwMTYxMDhhNTU2NWI5MTkwOTEwMTkyOTE1MDUwNTY1YjYwMDA2MDAwMTk4MjE0MTU2MTBhMWE1NzYzNGU0ODdiNzE2MGUwMWI2MDAwNTI2MDExNjAwNDUyNjAyNDYwMDBmZDViNTA2MDAxMDE5MDU2ZmVhMjY0Njk3MDY2NzM1ODIyMTIyMDkzZGI3ZDJiZGQwOTYyNTBhZGQ4ZWZlNmNjOWJhNGExZjdjZjEzOGQ0MTBiNTQ0ODlmNmFlYmY0NDI5NmRmM2Y2NDczNmY2YzYzNDMwMDA4MGIwMDMz", + "b64Record": "CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwrjF/dzi7vihCgIOXhKhu45DmgWBx4wHvRd5XRGdvALIXCBQMLIqi1Ti9rh+IDcAbGgwIi6qerQYQm4SL9QEiDwoJCM+pnq0GEKgFEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA==" + }, + { + "b64Body": "Cg8KCQjPqZ6tBhCqBRICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGOwHGiISIM4GVRMFeO/J30ETQUC96chku35A8dwxxmmCXjUkZHK3IJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==", + "b64Record": "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" + }, + { + "b64Body": "Cg8KCQjQqZ6tBhCwBRICGAISAhgDGOC2iyAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGO0HEgMY6wc=", + "b64Record": "CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIww9FyysuoBkToLZ+xf+aYwZE73+rQFHRtxO8U4U1yx+7t1/0We5+mLsSTkPuEoppyGgwIjKqerQYQq+OU/gEiDwoJCNCpnq0GELAFEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA==" + }, + { + "b64Body": "Cg8KCQjRqZ6tBhCyBRICGAISAhgDGOufNiICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOchkSFwoDGOsHEgcKAxjqBxAJEgcKAxjtBxAK", + "b64Record": "CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw1dItL5/0JXc8gzg5/MbvllvlQaRSykzJOjxiRbX3k0gu56bhoKZN5doUZkKYGvReGgsIjaqerQYQg5DlIiIPCgkI0amerQYQsgUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWhcKAxjrBxIHCgMY6gcQCRIHCgMY7QcQCg==" + }, + { + "b64Body": "Cg8KCQjRqZ6tBhC0BRICGAISAhgDGID+tYcBIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46cAoDGO0HEICS9AEiZB+EsrcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6wAAAAAAAAAAAAAAACdboCEjjSV3nmf+EAoe27AXN2kMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI=", + "b64Record": "CiUIISIDGO0HKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAjnfZrYPYj5wPpQixBeWmSaPc44sC7qIbopf7w/7x6zBabOkQrBoKYmTV+q8o1hn4aDAiNqp6tBhCLgIT6AiIPCgkI0amerQYQtAUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCAmKtsOgkaAjB4KICowwFSGAoKCgIYAhD/r9bYAQoKCgIYYhCAsNbYAQ==" + }, + { + "b64Body": "ChEKCQjRqZ6tBhC0BRICGAIgAXIsEioKAxjrBxIaChYiFCdboCEjjSV3nmf+EAoe27AXN2kMEAQSBwoDGO0HEAM=", + "b64Record": "CgMImAISMJqnvoPSWrjL//XvBJwLG18570k8MvgfjykrHqyo5R2fWjW8m2rAnmmqmJnu9Ni7XhoMCI2qnq0GEIyAhPoCIhEKCQjRqZ6tBhC0BRICGAIgATqTAQoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASiAhCxQzPfqAWJcYY3GXgAAAAAAAAAAAAAAAAAAAAAAAAPrqQWcuwAAAAAAAAAAAAAAACdboCEjjSV3nmf+EAoe27AXN2kMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJqAxjtB1IAegwIjaqerQYQi4CE+gI=" + }, + { + "b64Body": "ChEKCQjSqZ6tBhC2BRICGAIgAVo6CgIyAEoFCIDO2gNqFGxhenktY3JlYXRlZCBhY2NvdW50cAGSARQnW6AhI40ld55n/hAKHtuwFzdpDA==", + "b64Record": "CgcIFhIDGO8HEjBkWwIAHsiSZMnurB/oT60BJOome61iNOcCZg8LlEUlYwgWba9Da46drpJIOyqJWcUaDAiOqp6tBhCK6q6CASIRCgkI0qmerQYQtgUSAhgCIAEqFGxhenktY3JlYXRlZCBhY2NvdW50UgA=" + }, + { + "b64Body": "Cg8KCQjSqZ6tBhC2BRICGAISAhgDGID+tYcBIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46cAoDGO0HEICS9AEiZL6rrMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6wAAAAAAAAAAAAAAACdboCEjjSV3nmf+EAoe27AXN2kMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI=", + "b64Record": "CiUIFiIDGO0HKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjChpkiCelSthKNPlvWlRnLZvqH0DI0Fd9ZXjnATvEBabFY5S29J6YYJtclC7QVZOMAaDAiOqp6tBhCL6q6CASIPCgkI0qmerQYQtgUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCAmKtsOqAFCgMY7QcigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAgIAASAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKICowwEykAMKAxjrBxKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAACAgABIAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaIN3yUq0b4sibacKwaPw3jaqVK6fxY8ShFij1Wk31I7PvGiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD7RogAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUhgKCgoCGAIQ/6/W2AEKCgoCGGIQgLDW2AE=" + }, + { + "b64Body": "ChEKCQjSqZ6tBhC2BRICGAIgAnIsEioKAxjrBxIaChYiFCdboCEjjSV3nmf+EAoe27AXN2kMEAQSBwoDGO0HEAM=", + "b64Record": "CgIIFhIw5VG1FJtIKFiQRjF6hxij7QKJct4+ANBLEHB18QI70lqxiWeJjU7tiri3N/oiqVHYGgwIjqqerQYQjOquggEiEQoJCNKpnq0GELYFEgIYAiACOpMBCgMY5wISIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKICELFDh9+oBYlxhjcZeAAAAAAAAAAAAAAAAAAAAAAAAA+upBZy7AAAAAAAAAAAAAAAAJ1ugISONJXeeZ/4QCh7bsBc3aQwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmoDGO0HUgBaFwoDGOsHEgcKAxjtBxADEgcKAxjvBxAEcgoKAxjrBxIDGO8HegwIjqqerQYQi+quggE=" + } + ] + }, + "erc20TransferFromLazyCreate": { + "placeholderNum": 1008, + "encodedItems": [ + { + "b64Body": "Cg8KCQjXqZ6tBhDcBRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloyCiISIDbmch/Pxi6PS8kjpqZnRaWE0Ss0Cem60UKpEz+xuruGEICglKWNHUoFCIDO2gM=", + "b64Record": "CiUIFhIDGPEHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAc2JQEUpYL3yx+X4nrYH7bZ2ohNWafA03dTRp+uosVmt8vpmygtieRoS3no8IfN0waCwiTqp6tBhCLtOYiIg8KCQjXqZ6tBhDcBRICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUhsKCwoCGAIQ/7+oypo6CgwKAxjxBxCAwKjKmjo=" + }, + { + "b64Body": "Cg8KCQjXqZ6tBhDeBRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISICiY/vGOOnBaVMgOxCiyMAFDgtcpFU/Ung/l1ZURPoV4EICU69wDSgUIgM7aAw==", + "b64Record": "CiUIFhIDGPIHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBG7X+BgDtuDvpM15CdhFCyvNL2K6Y5m13SYwWNzSZz6YtUH3lUSSoabqZtUSPxRwkaDAiTqp6tBhCjw/OjAiIPCgkI16merQYQ3gUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxjyBxCAqNa5Bw==" + }, + { + "b64Body": "Cg8KCQjYqZ6tBhDgBRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIB1xYq6DG0Ca49294rIFk+MqsATDDGnKkd1H94iP+GhwEICU69wDSgUIgM7aAw==", + "b64Record": "CiUIFhIDGPMHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDCOLlg0UgrqCtbE+Qx+GBNvhCjWHAn0EF/P66NNa+XFYEc07Ma4qRH2GW5lHVY85caCwiUqp6tBhDbgIssIg8KCQjYqZ6tBhDgBRICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUhkKCgoCGAIQ/6fWuQcKCwoDGPMHEICo1rkH" + }, + { + "b64Body": "Cg8KCQjYqZ6tBhDiBRICGAISAhgDGL7W8vsCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAX0KDWZ1bmdpYmxlVG9rZW4SCExFRVdNUFlTIAoqAxjzBzIiEiAVn7eeFvq7if3LfzpnOtQeaiE1yrQsF8Yzcb3alK/3QlIiEiAVn7eeFvq7if3LfzpnOtQeaiE1yrQsF8Yzcb3alK/3QmoMCJT4+LAGELCFk5sCkAEBmAHoBw==", + "b64Record": "CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGPQHEjA5XytmDCe1FF4K0sOak88bCFopcLcC6RMh26VYXbSZ3kFicka54htUSzEph+tqoHMaDAiUqp6tBhDLxOytAiIPCgkI2KmerQYQ4gUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWg4KAxj0BxIHCgMY8wcQFHIKCgMY9AcSAxjzBw==" + }, + { + "b64Body": "Cg8KCQjZqZ6tBhDkBRICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjgESCwiV+PiwBhDQpOAxGm0KIhIgf7p7t4ktvD1o/01A8amUKUq+dTQ8qTNwKPPhK9mcF04KIzohAh2EzCqwz2Epr6pnX1n39uG2HAOXd1CdQ4B/QxElt7l7CiISICc2ZuS8nFVedHhEa0GCqGHg9LXTHDibZDavxWZ6xSU1IgxIZWxsbyBXb3JsZCEqADIA", + "b64Record": "CiUIFhoDGPUHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBv1mKWc6BoqfHy5Gsl/7HbeXVbG2w+pWDFGN6tflX5640DIQcJomdM669W6rj0xU4aCwiVqp6tBhCz1eM1Ig8KCQjZqZ6tBhDkBRICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgA=" + }, + { + "b64Body": "Cg8KCQjZqZ6tBhDoBRICGAISAhgDGIydjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxj1ByKAIDYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMGE1NzgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDBjZjU3NjAwMDM1NjBlMDFjODA2M2JlYWJhY2M4MTE2MTAwOGM1NzgwNjNlNGRjMmFhNDExNjEwMDY2NTc4MDYzZTRkYzJhYTQxNDYxMDE4MTU3ODA2M2Y0Yjc5ZGE1MTQ2MTAxOTQ1NzgwNjNmNzg4OGFlYzE0NjEwMWE3NTc4MDYzZjc5Yzc1NjgxNDYxMDFiYTU3NjAwMDgwZmQ1YjgwNjNiZWFiYWNjODE0NjEwMTQ4NTc4MDYzZDQ0OWE4MzIxNDYxMDE1YjU3ODA2M2UxZjIxYzY3MTQ2MTAxNmU1NzYwMDA4MGZkNWI4MDYzMDE5ODQ4OTIxNDYxMDBkNDU3ODA2MzE1ZGFjYmVhMTQ2MTAwZTk1NzgwNjMxZjg0YjJiNzE0NjEwMGZjNTc4MDYzOTI3ZGExMDUxNDYxMDEwZjU3ODA2Mzk4ZGNhNWJlMTQ2MTAxMjI1NzgwNjNhODZlMzU3NjE0NjEwMTM1NTc1YjYwMDA4MGZkNWI2MTAwZTc2MTAwZTIzNjYwMDQ2MTA3NDY1NjViNjEwMWNkNTY1YjAwNWI2MTAwZTc2MTAwZjczNjYwMDQ2MTA3Njg1NjViNjEwMjM3NTY1YjYxMDBlNzYxMDEwYTM2NjAwNDYxMDdiMzU2NWI2MTAyYjk1NjViNjEwMGU3NjEwMTFkMzY2MDA0NjEwN2VmNTY1YjYxMDMzMzU2NWI2MTAwZTc2MTAxMzAzNjYwMDQ2MTA3Njg1NjViNjEwM2FiNTY1YjYxMDBlNzYxMDE0MzM2NjAwNDYxMDc0NjU2NWI2MTAzZTg1NjViNjEwMGU3NjEwMTU2MzY2MDA0NjEwN2IzNTY1YjYxMDQyNjU2NWI2MTAwZTc2MTAxNjkzNjYwMDQ2MTA3NDY1NjViNjEwNDlhNTY1YjYxMDBlNzYxMDE3YzM2NjAwNDYxMDdiMzU2NWI2MTA0ZmM1NjViNjEwMGU3NjEwMThmMzY2MDA0NjEwNzQ2NTY1YjYxMDUzMTU2NWI2MTAwZTc2MTAxYTIzNjYwMDQ2MTA3YjM1NjViNjEwNTkzNTY1YjYxMDBlNzYxMDFiNTM2NjAwNDYxMDgzMjU2NWI2MTA2Mzc1NjViNjEwMGU3NjEwMWM4MzY2MDA0NjEwODY1NTY1YjYxMDZhNjU2NWI4MDYwMDE2MDAxNjBhMDFiMDMxNjYzMDZmZGRlMDM2MDQwNTE4MTYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MDAwNjA0MDUxODA4MzAzODE4NjVhZmExNTgwMTU2MTAyMGI1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA2MDQwNTEzZDYwMDA4MjNlNjAxZjNkOTA4MTAxNjAxZjE5MTY4MjAxNjA0MDUyNjEwMjMzOTE5MDgxMDE5MDYxMDhkMTU2NWI1MDUwNTY1YjYwNDA1MTYzMjNiODcyZGQ2MGUwMWI4MTUyNjAwMTYwMDE2MGEwMWIwMzg0ODExNjYwMDQ4MzAxNTI4MzgxMTY2MDI0ODMwMTUyNjA0NDgyMDE4MzkwNTI4NTE2OTA2MzIzYjg3MmRkOTA2MDY0MDE2MDIwNjA0MDUxODA4MzAzODE2MDAwODc1YWYxMTU4MDE1NjEwMjhlNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTAyYjI5MTkwNjEwOTdlNTY1YjUwNTA1MDUwNTA1NjViNjA0MDUxNjNhOTA1OWNiYjYwZTAxYjgxNTI2MDAxNjAwMTYwYTAxYjAzODM4MTE2NjAwNDgzMDE1MjYwMjQ4MjAxODM5MDUyODQxNjkwNjNhOTA1OWNiYjkwNjA0NDAxNWI2MDIwNjA0MDUxODA4MzAzODE2MDAwODc1YWYxMTU4MDE1NjEwMzA5NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTAzMmQ5MTkwNjEwOTdlNTY1YjUwNjAwMDgwZmQ1YjYwNDA1MTYzNmViMTc2OWY2MGUxMWI4MTUyNjAwMTYwMDE2MGEwMWIwMzgzODExNjYwMDQ4MzAxNTI4MjgxMTY2MDI0ODMwMTUyODQxNjkwNjNkZDYyZWQzZTkwNjA0NDAxNjAyMDYwNDA1MTgwODMwMzgxODY1YWZhMTU4MDE1NjEwMzgxNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTAzYTU5MTkwNjEwOWEwNTY1YjUwNTA1MDUwNTY1YjYwNDA1MTYzMjNiODcyZGQ2MGUwMWI4MTUyNjAwMTYwMDE2MGEwMWIwMzg0ODExNjYwMDQ4MzAxNTI4MzgxMTY2MDI0ODMwMTUyNjA0NDgyMDE4MzkwNTI4NTE2OTA2MzIzYjg3MmRkOTA2MDY0MDE2MTAyZWE1NjViODA2MDAxNjAwMTYwYTAxYjAzMTY2Mzk1ZDg5YjQxNjA0MDUxODE2M2ZmZmZmZmZmMTY2MGUwMWI4MTUyNjAwNDAxNjAwMDYwNDA1MTgwODMwMzgxODY1YWZhMTU4MDE1NjEwMjBiNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjYwNDA1MTYzYTkwNTljYmI2MGUwMWI4MTUyNjAwMTYwMDE2MGEwMWIwMzgzODExNjYwMDQ4MzAxNTI2MDI0ODIwMTgzOTA1Mjg0MTY5MDYzYTkwNTljYmI5MDYwNDQwMTViNjAyMDYwNDA1MTgwODMwMzgxNjAwMDg3NWFmMTE1ODAxNTYxMDQ3NjU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAxZjE5NjAxZjgyMDExNjgyMDE4MDYwNDA1MjUwODEwMTkwNjEwM2E1OTE5MDYxMDk3ZTU2NWI4MDYwMDE2MDAxNjBhMDFiMDMxNjYzMzEzY2U1Njc2MDQwNTE4MTYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MDIwNjA0MDUxODA4MzAzODE4NjVhZmExNTgwMTU2MTA0ZDg1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA2MDQwNTEzZDYwMWYxOTYwMWY4MjAxMTY4MjAxODA2MDQwNTI1MDgxMDE5MDYxMDIzMzkxOTA2MTA5Yjk1NjViNjA0MDUxNjMwOTVlYTdiMzYwZTAxYjgxNTI2MDAxNjAwMTYwYTAxYjAzODM4MTE2NjAwNDgzMDE1MjYwMjQ4MjAxODM5MDUyODQxNjkwNjMwOTVlYTdiMzkwNjA0NDAxNjEwNDU3NTY1YjgwNjAwMTYwMDE2MGEwMWIwMzE2NjMxODE2MGRkZDYwNDA1MTgxNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYwMjA2MDQwNTE4MDgzMDM4MTg2NWFmYTE1ODAxNTYxMDU2ZjU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAxZjE5NjAxZjgyMDExNjgyMDE4MDYwNDA1MjUwODEwMTkwNjEwMjMzOTE5MDYxMDlhMDU2NWI2MDQwNTE2MDAxNjAwMTYwYTAxYjAzODM4MTE2NjAyNDgzMDE1MjYwNDQ4MjAxODM5MDUyNjAwMDkxODI5MTg2MTY5MDYwNjQwMTYwNDA4MDUxNjAxZjE5ODE4NDAzMDE4MTUyOTE4MTUyNjAyMDgyMDE4MDUxNjAwMTYwMDE2MGUwMWIwMzE2NjNhOTA1OWNiYjYwZTAxYjE3OTA1MjUxNjEwNWVkOTE5MDYxMDlkYzU2NWI2MDAwNjA0MDUxODA4MzAzODE4NTVhZjQ5MTUwNTAzZDgwNjAwMDgxMTQ2MTA2Mjg1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTA2MmQ1NjViNjA2MDkxNTA1YjUwNTA1MDUwNTA1MDUwNTA1NjViNjA0MDUxNjM3MGEwODIzMTYwZTAxYjgxNTI2MDAxNjAwMTYwYTAxYjAzODI4MTE2NjAwNDgzMDE1MjgzMTY5MDYzNzBhMDgyMzE5MDYwMjQwMTYwMjA2MDQwNTE4MDgzMDM4MTg2NWFmYTE1ODAxNTYxMDY3ZDU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAxZjE5NjAxZjgyMDExNjgyMDE4MDYwNDA1MjUwODEwMTkwNjEwNmExOTE5MDYxMDlhMDU2NWI1MDUwNTA1NjViNjAwMDViODE4MTEwMTU2MTA2YTE1NzgyNjAwMTYwMDE2MGEwMWIwMzE2NjMwNmZkZGUwMzYwNDA1MTgxNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYwMDA2MDQwNTE4MDgzMDM4MTg2NWFmYTE1ODAxNTYxMDZlZjU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAwMDgyM2U2MDFmM2Q5MDgxMDE2MDFmMTkxNjgyMDE2MDQwNTI2MTA3MTc5MTkwODEwMTkwNjEwOGQxNTY1YjUwODA2MTA3MjI4MTYxMDlmODU2NWI5MTUwNTA2MTA2YTk1NjViODAzNTYwMDE2MDAxNjBhMDFiMDM4MTE2ODExNDYxMDc0MTU3NjAwMDgwZmQ1YjkxOTA1MDU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTA3NTg1NzYwMDA4MGZkNWI2MTA3NjE4MjYxMDcyYTU2NWI5MzkyNTA1MDUwNTY1YjYwMDA4MDYwMDA4MDYwODA4NTg3MDMxMjE1NjEwNzdlNTc2MDAwODBmZDViNjEwNzg3ODU2MTA3MmE1NjViOTM1MDYxMDc5NTYwMjA4NjAxNjEwNzJhNTY1YjkyNTA2MTA3YTM2MDQwODYwMTYxMDcyYTU2NWI5Mzk2OTI5NTUwOTI5MzYwNjAwMTM1OTI1MDUwNTY1YjYwMDA4MDYwMDA2MDYwODQ4NjAzMTIxNTYxMDdjODU3NjAwMDgwZmQ1YjYxMDdkMTg0NjEwNzJhNTY1YjkyNTA2MTA3ZGY2MDIwODUwMTYxMDcyYTU2NWI=", + "b64Record": "CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwhI8dTN3BzDadwD5lh8GAaj8PtOZQZX/ZRE6iiQjo8Ooj4fiqfnbMGxho9ftdyqElGgwIlaqerQYQ27zBtwIiDwoJCNmpnq0GEOgFEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA==" + }, + { + "b64Body": "Cg8KCQjaqZ6tBhDuBRICGAISAhgDGKq4szIiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIB9gkSAxj1ByLuCTkxNTA2MDQwODQwMTM1OTA1MDkyNTA5MjUwOTI1NjViNjAwMDgwNjAwMDYwNjA4NDg2MDMxMjE1NjEwODA0NTc2MDAwODBmZDViNjEwODBkODQ2MTA3MmE1NjViOTI1MDYxMDgxYjYwMjA4NTAxNjEwNzJhNTY1YjkxNTA2MTA4Mjk2MDQwODUwMTYxMDcyYTU2NWI5MDUwOTI1MDkyNTA5MjU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMDg0NTU3NjAwMDgwZmQ1YjYxMDg0ZTgzNjEwNzJhNTY1YjkxNTA2MTA4NWM2MDIwODQwMTYxMDcyYTU2NWI5MDUwOTI1MDkyOTA1MDU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMDg3ODU3NjAwMDgwZmQ1YjYxMDg4MTgzNjEwNzJhNTY1Yjk0NjAyMDkzOTA5MzAxMzU5MzUwNTA1MDU2NWI2MzRlNDg3YjcxNjBlMDFiNjAwMDUyNjA0MTYwMDQ1MjYwMjQ2MDAwZmQ1YjYwMDA1YjgzODExMDE1NjEwOGMwNTc4MTgxMDE1MTgzODIwMTUyNjAyMDAxNjEwOGE4NTY1YjgzODExMTE1NjEwM2E1NTc1MDUwNjAwMDkxMDE1MjU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTA4ZTM1NzYwMDA4MGZkNWI4MTUxNjdmZmZmZmZmZmZmZmZmZmZmODA4MjExMTU2MTA4ZmI1NzYwMDA4MGZkNWI4MTg0MDE5MTUwODQ2MDFmODMwMTEyNjEwOTBmNTc2MDAwODBmZDViODE1MTgxODExMTE1NjEwOTIxNTc2MTA5MjE2MTA4OGY1NjViNjA0MDUxNjAxZjgyMDE2MDFmMTk5MDgxMTY2MDNmMDExNjgxMDE5MDgzODIxMTgxODMxMDE3MTU2MTA5NDk1NzYxMDk0OTYxMDg4ZjU2NWI4MTYwNDA1MjgyODE1Mjg3NjAyMDg0ODcwMTAxMTExNTYxMDk2MjU3NjAwMDgwZmQ1YjYxMDk3MzgzNjAyMDgzMDE2MDIwODgwMTYxMDhhNTU2NWI5Nzk2NTA1MDUwNTA1MDUwNTA1NjViNjAwMDYwMjA4Mjg0MDMxMjE1NjEwOTkwNTc2MDAwODBmZDViODE1MTgwMTUxNTgxMTQ2MTA3NjE1NzYwMDA4MGZkNWI2MDAwNjAyMDgyODQwMzEyMTU2MTA5YjI1NzYwMDA4MGZkNWI1MDUxOTE5MDUwNTY1YjYwMDA2MDIwODI4NDAzMTIxNTYxMDljYjU3NjAwMDgwZmQ1YjgxNTE2MGZmODExNjgxMTQ2MTA3NjE1NzYwMDA4MGZkNWI2MDAwODI1MTYxMDllZTgxODQ2MDIwODcwMTYxMDhhNTU2NWI5MTkwOTEwMTkyOTE1MDUwNTY1YjYwMDA2MDAwMTk4MjE0MTU2MTBhMWE1NzYzNGU0ODdiNzE2MGUwMWI2MDAwNTI2MDExNjAwNDUyNjAyNDYwMDBmZDViNTA2MDAxMDE5MDU2ZmVhMjY0Njk3MDY2NzM1ODIyMTIyMDkzZGI3ZDJiZGQwOTYyNTBhZGQ4ZWZlNmNjOWJhNGExZjdjZjEzOGQ0MTBiNTQ0ODlmNmFlYmY0NDI5NmRmM2Y2NDczNmY2YzYzNDMwMDA4MGIwMDMz", + "b64Record": "CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw8aKvYG1rXjtyHz9dCgEmTfgGGqcEH1RjyyJ+wezJKYtOxy6YpFfTkz/08jhpGhtOGgsIlqqerQYQq+aFXCIPCgkI2qmerQYQ7gUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA" + }, + { + "b64Body": "Cg8KCQjaqZ6tBhDwBRICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGPUHGiISIL6NM3m2GzIovFIvMXu8HoNiNIQsxrKc+GAyPtHIey5UIJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==", + "b64Record": "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" + }, + { + "b64Body": "Cg8KCQjbqZ6tBhD2BRICGAISAhgDGOC2iyAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGPEHEgMY9Ac=", + "b64Record": "CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwyWuXYrdb0FYhWXr0LhPagKs3DuApIkrMYvmxCpMH5KVc8TtLzO4819nSjlX2JAQEGgsIl6qerQYQi6fFZiIPCgkI26merQYQ9gUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA" + }, + { + "b64Body": "Cg8KCQjbqZ6tBhD8BRICGAISAhgDGOC2iyAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGPIHEgMY9Ac=", + "b64Record": "CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwZB+WvzjRpHbGTqAup0U4wPTUfJINQqw2WswzZFls38tRMfAoUqoBEIzkpJEDk5bqGgwIl6qerQYQg9OYygIiDwoJCNupnq0GEPwFEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA==" + }, + { + "b64Body": "Cg8KCQjcqZ6tBhCCBhICGAISAhgDGOC2iyAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGPYHEgMY9Ac=", + "b64Record": "CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw54GYP53bEozLFYmZbDPZEzup1n1PAzzF+TDZjMfpd/hmWu8IB8wB3TifbuMD522gGgsImKqerQYQi9XxbiIPCgkI3KmerQYQggYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA" + }, + { + "b64Body": "Cg8KCQjcqZ6tBhCEBhICGAISAhgDGOufNiICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOchkSFwoDGPQHEgcKAxjzBxATEgcKAxjxBxAU", + "b64Record": "CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwPTfDDRQYqGdlciiR9g87H7h/OPPfF0VOlYSxp2xiOqTDZiqiYNXjNhK1ah4+zUlAGgwImKqerQYQy9uZ1AIiDwoJCNypnq0GEIQGEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAFoXCgMY9AcSBwoDGPEHEBQSBwoDGPMHEBM=" + }, + { + "b64Body": "Cg8KCQjdqZ6tBhCFBhICGAISAhgDGIDC1y8iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIDExoRCgMY9AcSAxjxBxoDGPYHIAI=", + "b64Record": "CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwxB4dtuKHcQo97uLLJLXhY0LH3Pt+zHi6atzFMw9Ui99j6sLh3+qb3kxSEKEZbmY4GgsImaqerQYQo4DDeCIPCgkI3amerQYQhQYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA" + }, + { + "b64Body": "Cg8KCQjdqZ6tBhCHBhICGAISAhgDGODf9hAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjqQAQoDGPYHEKDCHiKEARXay+oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPxAAAAAAAAAAAAAAAAn+/gsWQa79dwM268qbu5QzFBZwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg==", + "b64Record": "CiUIISIDGPYHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAn1wigFWoNrdh3GTdM/CP3PZup+Ifc2/IuyG9ThwaJbMceyGAsGWBHYza8Lc8m1Y0aDAiZqp6tBhC7iPz5AiIPCgkI3amerQYQhwYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCLwLcQOggaAjB4KJ3QHVIWCgkKAhgCEJWA7yAKCQoCGGIQloDvIA==" + }, + { + "b64Body": "ChEKCQjdqZ6tBhCHBhICGAIgAXIuEiwKAxj0BxIaChYiFJ/v4LFkGu/XcDNuvKm7uUMxQWcCEAQSCQoDGPEHEAMYAQ==", + "b64Record": "CgIIHhIwdEuajgPnaDeWvOvkBxEYjUGtr9iEvre0lFQQPWgzxz3VAEd8M6OCX6ysWhAau0asGgwImaqerQYQvIj8+QIiEQoJCN2pnq0GEIcGEgIYAiABOsQBCgMY5wISIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeGhBJTlNVRkZJQ0lFTlRfR0FTKICELFDc9RtifGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAD9CO4ct0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8QAAAAAAAAAAAAAAAJ/v4LFkGu/XcDNuvKm7uUMxQWcCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJqAxj2B1IAegwImaqerQYQu4j8+QI=" + }, + { + "b64Body": "Cg8KCQjeqZ6tBhCJBhICGAISAhgDGID+tYcBIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46kQEKAxj2BxCAkvQBIoQBmNylvgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/EAAAAAAAAAAAAAAACf7+CxZBrv13Azbrypu7lDMUFnAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC", + "b64Record": "CiUIISIDGPYHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAfv8vZwWerVFUoIznNZnVUvsm7jVMVYaHqjgXL2TPsYNHF2SDajMOhdBes6BkaZHMaDAiaqp6tBhDrs4yCASIPCgkI3qmerQYQiQYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCAmKtsOgkaAjB4KICowwFSGAoKCgIYAhD/r9bYAQoKCgIYYhCAsNbYAQ==" + }, + { + "b64Body": "ChEKCQjeqZ6tBhCJBhICGAIgAXIuEiwKAxj0BxIaChYiFJ/v4LFkGu/XcDNuvKm7uUMxQWcCEAQSCQoDGPEHEAMYAQ==", + "b64Record": "CgMImAISMBzjag4eQVlqnsKmYmQ1tzfOKLEC/X1KFsA3KV3hNGap6/r9jesV4SF8CpUk5y5yyRoMCJqqnq0GEOyzjIIBIhEKCQjeqZ6tBhCJBhICGAIgATqzAQoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASiAhCxQiPXqAWJ8YY3GXgAAAAAAAAAAAAAAAAAAAAAAAAP0I7hy3QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPxAAAAAAAAAAAAAAAAn+/gsWQa79dwM268qbu5QzFBZwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmoDGPYHUgB6DAiaqp6tBhDrs4yCAQ==" + }, + { + "b64Body": "ChEKCQjeqZ6tBhCNBhICGAIgAVo6CgIyAEoFCIDO2gNqFGxhenktY3JlYXRlZCBhY2NvdW50cAGSARSf7+CxZBrv13Azbrypu7lDMUFnAg==", + "b64Record": "CgcIFhIDGPgHEjBXygF+mZdRC2cv/qxe/baNtiru+pGyWyamRFb9P0I490Qolr2fRrc9aMQfXJzGOYoaDAiaqp6tBhCqwbGDAyIRCgkI3qmerQYQjQYSAhgCIAEqFGxhenktY3JlYXRlZCBhY2NvdW50UgA=" + }, + { + "b64Body": "Cg8KCQjeqZ6tBhCNBhICGAISAhgDGID+tYcBIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46kQEKAxj2BxCAkvQBIoQBFdrL6gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/EAAAAAAAAAAAAAAACf7+CxZBrv13Azbrypu7lDMUFnAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC", + "b64Record": "CiUIFiIDGPYHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCK1YpIPe0pBlWzrwCf9yDjJr6iByjERBGqm68PlHPB3RDtaexX+IsOPXGOL8gJCzMaDAiaqp6tBhCrwbGDAyIPCgkI3qmerQYQjQYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCAmKtsOqAFCgMY9gcigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAACAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAgAAAAAAAAAAAAAAAAQAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAABAACAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKICowwEykAMKAxj0BxKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAIAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAACAAAAAAAAAAAAAAAABAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAEAAIAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaIN3yUq0b4sibacKwaPw3jaqVK6fxY8ShFij1Wk31I7PvGiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8RogAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUhgKCgoCGAIQ/6/W2AEKCgoCGGIQgLDW2AE=" + }, + { + "b64Body": "ChEKCQjeqZ6tBhCNBhICGAIgAnIuEiwKAxj0BxIaChYiFJ/v4LFkGu/XcDNuvKm7uUMxQWcCEAQSCQoDGPEHEAMYAQ==", + "b64Record": "CgIIFhIwiUeaUpyO6LwcpoRPRTjb+oEiSw0boymuK1MZOtt3zS3X7d0Ww5hgsZ2FxHocqJYMGgwImqqerQYQrMGxgwMiEQoJCN6pnq0GEI0GEgIYAiACOrMBCgMY5wISIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKICELFDU9eoBYnxhjcZeAAAAAAAAAAAAAAAAAAAAAAAAA/QjuHLdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/EAAAAAAAAAAAAAAACf7+CxZBrv13Azbrypu7lDMUFnAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACagMY9gdSAFoXCgMY9AcSBwoDGPEHEAMSBwoDGPgHEARyCgoDGPQHEgMY+Ad6DAiaqp6tBhCrwbGDAw==" + } + ] + }, + "erc721TransferFromLazyCreate": { + "placeholderNum": 1017, + "encodedItems": [ + { + "b64Body": "Cg8KCQjjqZ6tBhC7BhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloyCiISILJB/5yaP86Hp81lb8nQDJ1f5IeuiZWSKilndoigRHIuEICglKWNHUoFCIDO2gM=", + "b64Record": "CiUIFhIDGPoHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBc8vhx6IETN4yeK5URMptfGLUDf5C6zjUwJyUJVSVHAkY7WqK7tYEi/CdF6ygv8u0aDAifqp6tBhDL2LXOASIPCgkI46merQYQuwYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIbCgsKAhgCEP+/qMqaOgoMCgMY+gcQgMCoypo6" + }, + { + "b64Body": "Cg8KCQjjqZ6tBhC9BhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIIIS9dIALiCCARP5Xq9p+/DQlUtvwLijmD68RC4eWTVsEICU69wDSgUIgM7aAw==", + "b64Record": "CiUIFhIDGPsHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAW6yStFbha1lPqZ2P4Ta7Veoewd1pfOceBLMIpupTmYshK+0qgA1zygkOxd+/VKNoaDAifqp6tBhCbwNfPAyIPCgkI46merQYQvQYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxj7BxCAqNa5Bw==" + }, + { + "b64Body": "Cg8KCQjkqZ6tBhC/BhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISID7lbrfnpNRPBI1yp+9MU88HiNyUJNMw+mBzcdY971hvEICU69wDSgUIgM7aAw==", + "b64Record": "CiUIFhIDGPwHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAVC4BP1dLHpAQ2RmDpikpX55cUfcRnu44TyOLVFNXfZejroUnP145xs+LbeKV5T+MaDAigqp6tBhCzpKvYASIPCgkI5KmerQYQvwYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxj8BxCAqNa5Bw==" + }, + { + "b64Body": "Cg8KCQjkqZ6tBhDBBhICGAISAhgDGMXCtfsCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAXoKEG5vbkZ1bmdpYmxlVG9rZW4SCFdHR1RQSkFHKgMY/AcyIhIgZuzZKtrSJNq95v2IOcy7EYof4LnY1/TjY3rxTIPVT1lSIhIgZuzZKtrSJNq95v2IOcy7EYof4LnY1/TjY3rxTIPVT1lqDAig+PiwBhDAgITCA4gBAQ==", + "b64Record": "CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGP0HEjBNDaiAWyb3lTzbsPdrU0cXZFnGfBNjsFgGXp0ByUWBKwPkYRmD7V0JVlPu6ovEZPIaDAigqp6tBhDT7YXaAyIPCgkI5KmerQYQwQYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAcgoKAxj9BxIDGPwH" + }, + { + "b64Body": "Cg8KCQjlqZ6tBhDDBhICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAih+PiwBhDQsa7ZARptCiISIMyJRCHI99Iri5b9ou+fCIrlMt/+fpmj1/gjzi8Xg71NCiM6IQJcBenbtW+BExX7ulhNOwalYKhSf/TN4UNoNX55uZ47CQoiEiAsNcIK9TPrXWgxNVyyC9qjgLgF9XqIFGeztpxjVmUw1CIMSGVsbG8gV29ybGQhKgAyAA==", + "b64Record": "CiUIFhoDGP4HKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDcKB1TQRbmdMuVfHSTnqTpKJtD42x5kGSSxzbSRqFXCGgJHnx/eyyQiQmls8GdH68aDAihqp6tBhDbqKbhASIPCgkI5amerQYQwwYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA" + }, + { + "b64Body": "Cg8KCQjlqZ6tBhDHBhICGAISAhgDGIydjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxj+ByKAIDYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMTJhMjgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDEwMDU3NjAwMDM1NjBlMDFjODA2M2E4NmUzNTc2MTE2MTAwOTc1NzgwNjNlNGRjMmFhNDExNjEwMDY2NTc4MDYzZTRkYzJhYTQxNDYxMDI1NTU3ODA2M2U5ZGM2Mzc1MTQ2MTAyNzE1NzgwNjNmNDlmNDBkYjE0NjEwMjhkNTc4MDYzZjc4ODhhZWMxNDYxMDJhOTU3NjEwMTAwNTY1YjgwNjNhODZlMzU3NjE0NjEwMWU1NTc4MDYzY2I2MGYxYmYxNDYxMDIwMTU3ODA2M2Q5ZmM0YjYxMTQ2MTAyMWQ1NzgwNjNlMWYyMWM2NzE0NjEwMjM5NTc2MTAxMDA1NjViODA2MzFmMjlkMmRjMTE2MTAwZDM1NzgwNjMxZjI5ZDJkYzE0NjEwMTc1NTc4MDYzMzY3NjA1Y2ExNDYxMDE5MTU3ODA2MzZiNDJiZjJmMTQ2MTAxYWQ1NzgwNjM5OGRjYTViZTE0NjEwMWM5NTc2MTAxMDA1NjViODA2MzAxOTg0ODkyMTQ2MTAxMDU1NzgwNjMwMzlkNmYxOTE0NjEwMTIxNTc4MDYzMDk4ZjIzNjYxNDYxMDEzZDU3ODA2MzE1ZGFjYmVhMTQ2MTAxNTk1NzViNjAwMDgwZmQ1YjYxMDExZjYwMDQ4MDM2MDM4MTAxOTA2MTAxMWE5MTkwNjEwYWQ3NTY1YjYxMDJjNTU2NWIwMDViNjEwMTNiNjAwNDgwMzYwMzgxMDE5MDYxMDEzNjkxOTA2MTBiOWY1NjViNjEwMzNkNTY1YjAwNWI2MTAxNTc2MDA0ODAzNjAzODEwMTkwNjEwMTUyOTE5MDYxMGMzOTU2NWI2MTAzYjg1NjViMDA1YjYxMDE3MzYwMDQ4MDM2MDM4MTAxOTA2MTAxNmU5MTkwNjEwYzc5NTY1YjYxMDQzNzU2NWIwMDViNjEwMThmNjAwNDgwMzYwMzgxMDE5MDYxMDE4YTkxOTA2MTBjMzk1NjViNjEwNGFjNTY1YjAwNWI2MTAxYWI2MDA0ODAzNjAzODEwMTkwNjEwMWE2OTE5MDYxMGQxODU2NWI2MTA1MmI1NjViMDA1YjYxMDFjNzYwMDQ4MDM2MDM4MTAxOTA2MTAxYzI5MTkwNjEwZDZiNTY1YjYxMDU5ZDU2NWIwMDViNjEwMWUzNjAwNDgwMzYwMzgxMDE5MDYxMDFkZTkxOTA2MTBjNzk1NjViNjEwNjFmNTY1YjAwNWI2MTAxZmY2MDA0ODAzNjAzODEwMTkwNjEwMWZhOTE5MDYxMGFkNzU2NWI2MTA2OGY1NjViMDA1YjYxMDIxYjYwMDQ4MDM2MDM4MTAxOTA2MTAyMTY5MTkwNjEwYzM5NTY1YjYxMDcwNzU2NWIwMDViNjEwMjM3NjAwNDgwMzYwMzgxMDE5MDYxMDIzMjkxOTA2MTBjNzk1NjViNjEwNzg2NTY1YjAwNWI2MTAyNTM2MDA0ODAzNjAzODEwMTkwNjEwMjRlOTE5MDYxMGQ2YjU2NWI2MTA3ZmI1NjViMDA1YjYxMDI2ZjYwMDQ4MDM2MDM4MTAxOTA2MTAyNmE5MTkwNjEwYWQ3NTY1YjYxMDg2ZDU2NWIwMDViNjEwMjhiNjAwNDgwMzYwMzgxMDE5MDYxMDI4NjkxOTA2MTBjMzk1NjViNjEwOGUwNTY1YjAwNWI2MTAyYTc2MDA0ODAzNjAzODEwMTkwNjEwMmEyOTE5MDYxMGRiZTU2NWI2MTA5NjQ1NjViMDA1YjYxMDJjMzYwMDQ4MDM2MDM4MTAxOTA2MTAyYmU5MTkwNjEwZTExNTY1YjYxMDllNjU2NWIwMDViODA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzMDZmZGRlMDM2MDQwNTE4MTYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MDAwNjA0MDUxODA4MzAzODE4NjVhZmExNTgwMTU2MTAzMTA1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA2MDQwNTEzZDYwMDA4MjNlM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTAzMzk5MTkwNjEwZmFkNTY1YjUwNTA1NjViODU3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzYjg4ZDRmZGU4Njg2ODY4Njg2NjA0MDUxODY2M2ZmZmZmZmZmMTY2MGUwMWI4MTUyNjAwNDAxNjEwMzdlOTU5NDkzOTI5MTkwNjExMDYxNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NzgwM2IxNTgwMTU2MTAzOTg1NzYwMDA4MGZkNWI1MDVhZjExNTgwMTU2MTAzYWM1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA1MDUwNTA1MDUwNTA1NjViODE3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzMDgxODEyZmM4MjYwNDA1MTgyNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYxMDNmMTkxOTA2MTEwYWY1NjViNjAyMDYwNDA1MTgwODMwMzgxODY1YWZhMTU4MDE1NjEwNDBlNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTA0MzI5MTkwNjExMGRmNTY1YjUwNTA1MDU2NWI4MzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjMyM2I4NzJkZDg0ODQ4NDYwNDA1MTg0NjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYxMDQ3NDkzOTI5MTkwNjExMTBjNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NzgwM2IxNTgwMTU2MTA0OGU1NzYwMDA4MGZkNWI1MDVhZjExNTgwMTU2MTA0YTI1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA1MDUwNTA1MDU2NWI4MTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjM2MzUyMjExZTgyNjA0MDUxODI2M2ZmZmZmZmZmMTY2MGUwMWI4MTUyNjAwNDAxNjEwNGU1OTE5MDYxMTBhZjU2NWI2MDIwNjA0MDUxODA4MzAzODE4NjVhZmExNTgwMTU2MTA1MDI1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA2MDQwNTEzZDYwMWYxOTYwMWY4MjAxMTY4MjAxODA2MDQwNTI1MDgxMDE5MDYxMDUyNjkxOTA2MTEwZGY1NjViNTA1MDUwNTY1YjgyNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2M2EyMmNiNDY1ODM4MzYwNDA1MTgzNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYxMDU2NjkyOTE5MDYxMTE1MjU2NWI2MDAwNjA0MDUxODA4MzAzODE2MDAwODc4MDNiMTU4MDE1NjEwNTgwNTc2MDAwODBmZDViNTA1YWYxMTU4MDE1NjEwNTk0NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNTA1MDUwNTY1YjgyNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MzJmNzQ1YzU5ODM4MzYwNDA1MTgzNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYxMDVkODkyOTE5MDYxMTE3YjU2NWI2MDIwNjA0MDUxODA4MzAzODE4NjVhZmExNTgwMTU2MTA1ZjU1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA2MDQwNTEzZDYwMWYxOTYwMWY4MjAxMTY4MjAxODA2MDQwNTI1MDgxMDE5MDYxMDYxOTkxOTA2MTExYjk1NjViNTA1MDUwNTA1NjViODM3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzMjNiODcyZGQ4NDg0ODQ2MDQwNTE4NDYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MTA2NWM5MzkyOTE5MDYxMTEwYzU2NWI2MDAwNjA0MDUxODA4MzAzODE2MDAwODc4MDNiMTU4MDE1NjEwNjc2NTc2MDAwODBmZDViNTA1YWYxMTU4MDE1NjEwNjhhNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjYwMDA4MGZkNWI4MDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjM5NWQ4OWI0MTYwNDA1MTgxNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYwMDA2MDQwNTE4MDgzMDM4MTg2NWFmYTE1ODAxNTYxMDZkYTU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAwMDgyM2UzZDYwMWYxOTYwMWY4MjAxMTY4MjAxODA2MDQwNTI1MDgxMDE5MDYxMDcwMzkxOTA2MTBmYWQ1NjViNTA1MDU2NWI4MTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjM0ZjZjY2NlNzgyNjA0MDUxODI2M2ZmZmZmZmZmMTY2MGUwMWI4MTUyNjAwNDAxNjEwNzQwOTE5MDYxMTBhZjU2NWI2MDIwNjA0MDUxODA4MzAzODE4NjVhZmExNTgwMTU2MTA3NWQ1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA2MDQwNTEzZDYwMWYxOTYwMWY4MjAxMTY4MjAxODA2MDQwNTI1MDgxMDE5MDYxMDc4MTkxOTA2MTExYjk1NjViNTA1MDUwNTY1YjgzNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MzQyODQyZTBlODQ4NDg0NjA0MDUxODQ2M2ZmZmZmZmZmMTY2MGUwMWI4MTUyNjAwNDAxNjEwN2MzOTM5MjkxOTA2MTExMGM1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg3ODAzYjE1ODAxNTYxMDdkZDU3NjAwMDgwZmQ1YjUwNWE=", + "b64Record": "CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw3njFETXQU349CMthR36VSO+T58Kf1/i1Lx+8I00eGv6mY8TGZrp4+dkTcjIWqpdqGgsIoqqerQYQ64vABiIPCgkI5amerQYQxwYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA" + }, + { + "b64Body": "Cg8KCQjmqZ6tBhDNBhICGAISAhgDGPjR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxj+ByKAIGYxMTU4MDE1NjEwN2YxNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNTA1MDUwNTA1NjViODI3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzMDk1ZWE3YjM4MzgzNjA0MDUxODM2M2ZmZmZmZmZmMTY2MGUwMWI4MTUyNjAwNDAxNjEwODM2OTI5MTkwNjExMTdiNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NzgwM2IxNTgwMTU2MTA4NTA1NzYwMDA4MGZkNWI1MDVhZjExNTgwMTU2MTA4NjQ1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA1MDUwNTA1NjViODA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzMTgxNjBkZGQ2MDQwNTE4MTYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MDIwNjA0MDUxODA4MzAzODE4NjVhZmExNTgwMTU2MTA4Yjg1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA2MDQwNTEzZDYwMWYxOTYwMWY4MjAxMTY4MjAxODA2MDQwNTI1MDgxMDE5MDYxMDhkYzkxOTA2MTExYjk1NjViNTA1MDU2NWI4MTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjNjODdiNTZkZDgyNjA0MDUxODI2M2ZmZmZmZmZmMTY2MGUwMWI4MTUyNjAwNDAxNjEwOTE5OTE5MDYxMTBhZjU2NWI2MDAwNjA0MDUxODA4MzAzODE4NjVhZmExNTgwMTU2MTA5MzY1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA2MDQwNTEzZDYwMDA4MjNlM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTA5NWY5MTkwNjEwZmFkNTY1YjUwNTA1MDU2NWI4MjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjNlOTg1ZTljNTgzODM2MDQwNTE4MzYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MTA5OWY5MjkxOTA2MTExZTY1NjViNjAyMDYwNDA1MTgwODMwMzgxODY1YWZhMTU4MDE1NjEwOWJjNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTA5ZTA5MTkwNjExMjI0NTY1YjUwNTA1MDUwNTY1YjgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MzcwYTA4MjMxODI2MDQwNTE4MjYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MTBhMWY5MTkwNjExMjUxNTY1YjYwMjA2MDQwNTE4MDgzMDM4MTg2NWFmYTE1ODAxNTYxMGEzYzU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAxZjE5NjAxZjgyMDExNjgyMDE4MDYwNDA1MjUwODEwMTkwNjEwYTYwOTE5MDYxMTFiOTU2NWI1MDUwNTA1NjViNjAwMDYwNDA1MTkwNTA5MDU2NWI2MDAwODBmZDViNjAwMDgwZmQ1YjYwMDA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MjE2OTA1MDkxOTA1MDU2NWI2MDAwNjEwYWE0ODI2MTBhNzk1NjViOTA1MDkxOTA1MDU2NWI2MTBhYjQ4MTYxMGE5OTU2NWI4MTE0NjEwYWJmNTc2MDAwODBmZDViNTA1NjViNjAwMDgxMzU5MDUwNjEwYWQxODE2MTBhYWI1NjViOTI5MTUwNTA1NjViNjAwMDYwMjA4Mjg0MDMxMjE1NjEwYWVkNTc2MTBhZWM2MTBhNmY1NjViNWI2MDAwNjEwYWZiODQ4Mjg1MDE2MTBhYzI1NjViOTE1MDUwOTI5MTUwNTA1NjViNjAwMDgxOTA1MDkxOTA1MDU2NWI2MTBiMTc4MTYxMGIwNDU2NWI4MTE0NjEwYjIyNTc2MDAwODBmZDViNTA1NjViNjAwMDgxMzU5MDUwNjEwYjM0ODE2MTBiMGU1NjViOTI5MTUwNTA1NjViNjAwMDgwZmQ1YjYwMDA4MGZkNWI2MDAwODBmZDViNjAwMDgwODM2MDFmODQwMTEyNjEwYjVmNTc2MTBiNWU2MTBiM2E1NjViNWI4MjM1OTA1MDY3ZmZmZmZmZmZmZmZmZmZmZjgxMTExNTYxMGI3YzU3NjEwYjdiNjEwYjNmNTY1YjViNjAyMDgzMDE5MTUwODM2MDAxODIwMjgzMDExMTE1NjEwYjk4NTc2MTBiOTc2MTBiNDQ1NjViNWI5MjUwOTI5MDUwNTY1YjYwMDA4MDYwMDA4MDYwMDA4MDYwYTA4Nzg5MDMxMjE1NjEwYmJjNTc2MTBiYmI2MTBhNmY1NjViNWI2MDAwNjEwYmNhODk4MjhhMDE2MTBhYzI1NjViOTY1MDUwNjAyMDYxMGJkYjg5ODI4YTAxNjEwYWMyNTY1Yjk1NTA1MDYwNDA2MTBiZWM4OTgyOGEwMTYxMGFjMjU2NWI5NDUwNTA2MDYwNjEwYmZkODk4MjhhMDE2MTBiMjU1NjViOTM1MDUwNjA4MDg3MDEzNTY3ZmZmZmZmZmZmZmZmZmZmZjgxMTExNTYxMGMxZTU3NjEwYzFkNjEwYTc0NTY1YjViNjEwYzJhODk4MjhhMDE2MTBiNDk1NjViOTI1MDkyNTA1MDkyOTU1MDkyOTU1MDkyOTU1NjViNjAwMDgwNjA0MDgzODUwMzEyMTU2MTBjNTA1NzYxMGM0ZjYxMGE2ZjU2NWI1YjYwMDA2MTBjNWU4NTgyODYwMTYxMGFjMjU2NWI5MjUwNTA2MDIwNjEwYzZmODU4Mjg2MDE2MTBiMjU1NjViOTE1MDUwOTI1MDkyOTA1MDU2NWI2MDAwODA2MDAwODA2MDgwODU4NzAzMTIxNTYxMGM5MzU3NjEwYzkyNjEwYTZmNTY1YjViNjAwMDYxMGNhMTg3ODI4ODAxNjEwYWMyNTY1Yjk0NTA1MDYwMjA2MTBjYjI4NzgyODgwMTYxMGFjMjU2NWI5MzUwNTA2MDQwNjEwY2MzODc4Mjg4MDE2MTBhYzI1NjViOTI1MDUwNjA2MDYxMGNkNDg3ODI4ODAxNjEwYjI1NTY1YjkxNTA1MDkyOTU5MTk0NTA5MjUwNTY1YjYwMDA4MTE1MTU5MDUwOTE5MDUwNTY1YjYxMGNmNTgxNjEwY2UwNTY1YjgxMTQ2MTBkMDA1NzYwMDA4MGZkNWI1MDU2NWI2MDAwODEzNTkwNTA2MTBkMTI4MTYxMGNlYzU2NWI5MjkxNTA1MDU2NWI2MDAwODA2MDAwNjA2MDg0ODYwMzEyMTU2MTBkMzE1NzYxMGQzMDYxMGE2ZjU2NWI1YjYwMDA2MTBkM2Y4NjgyODcwMTYxMGFjMjU2NWI5MzUwNTA2MDIwNjEwZDUwODY4Mjg3MDE2MTBhYzI1NjViOTI1MDUwNjA0MDYxMGQ2MTg2ODI4NzAxNjEwZDAzNTY1YjkxNTA1MDkyNTA5MjUwOTI1NjViNjAwMDgwNjAwMDYwNjA4NDg2MDMxMjE1NjEwZDg0NTc2MTBkODM2MTBhNmY1NjViNWI2MDAwNjEwZDkyODY4Mjg3MDE2MTBhYzI1NjViOTM1MDUwNjAyMDYxMGRhMzg2ODI4NzAxNjEwYWMyNTY1YjkyNTA1MDYwNDA2MTBkYjQ4NjgyODcwMTYxMGIyNTU2NWI5MTUwNTA5MjUwOTI1MDkyNTY1YjYwMDA4MDYwMDA2MDYwODQ4NjAzMTIxNTYxMGRkNzU3NjEwZGQ2NjEwYTZmNTY1YjViNjAwMDYxMGRlNTg2ODI4NzAxNjEwYWMyNTY1YjkzNTA1MDYwMjA2MTBkZjY4NjgyODcwMTYxMGFjMjU2NWI5MjUwNTA2MDQwNjEwZTA3ODY4Mjg3MDE2MTBhYzI1NjViOTE1MDUwOTI1MDkyNTA5MjU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMGUyODU3NjEwZTI3NjEwYTZmNTY1YjViNjAwMDYxMGUzNjg1ODI4NjAxNjEwYWMyNTY1YjkyNTA1MDYwMjA2MTBlNDc4NTgyODYwMTYxMGFjMjU2NWI5MTUwNTA5MjUwOTI5MDUwNTY1YjYwMDA4MGZkNWI2MDAwNjAxZjE5NjAxZjgzMDExNjkwNTA5MTkwNTA1NjViN2Y0ZTQ4N2I3MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjAwMDUyNjA0MTYwMDQ1MjYwMjQ2MDAwZmQ1YjYxMGU5ZjgyNjEwZTU2NTY1YjgxMDE4MTgxMTA2N2ZmZmZmZmZmZmZmZmZmZmY4MjExMTcxNTYxMGViZTU3NjEwZWJkNjEwZTY3NTY1YjViODA2MDQwNTI1MDUwNTA1NjViNjAwMDYxMGVkMTYxMGE2NTU2NWI5MDUwNjEwZWRkODI4MjYxMGU5NjU2NWI5MTkwNTA1NjViNjAwMDY3ZmZmZmZmZmZmZmZmZmZmZjgyMTExNTYxMGVmZDU3NjEwZWZjNjEwZTY3NTY1YjViNjEwZjA2ODI2MTBlNTY1NjViOTA1MDYwMjA4MTAxOTA1MDkxOTA1MDU2NWI2MDAwNWI4MzgxMTAxNTYxMGYzMTU3ODA4MjAxNTE4MTg0MDE1MjYwMjA4MTAxOTA1MDYxMGYxNjU2NWI2MDAwODQ4NDAxNTI1MDUwNTA1MDU2NWI2MDAwNjEwZjUwNjEwZjRiODQ2MTBlZTI1NjViNjEwZWM3NTY1YjkwNTA4MjgxNTI2MDIwODEwMTg0ODQ4NDAxMTExNTYxMGY2YzU3NjEwZjZiNjEwZTUxNTY1YjViNjEwZjc3ODQ4Mjg1NjEwZjEzNTY1YjUwOTM5MjUwNTA1MDU2NWI2MDAwODI2MDFmODMwMTEyNjEwZjk0NTc2MTBmOTM2MTBiM2E1NjViNWI4MTUxNjEwZmE0ODQ4MjYwMjA4NjAxNjEwZjNkNTY1YjkxNTA1MDkyOTE1MDUwNTY1YjYwMDA2MDIwODI4NDAzMTIxNTYxMGZjMzU3NjEwZmMyNjEwYTZmNTY1YjViNjAwMDgyMDE1MTY3ZmZmZmZmZmZmZmZmZmZmZjgxMTExNTYxMGZlMTU3NjEwZmUwNjEwYTc0NTY=", + "b64Record": "CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwNT/f2rRv/c3MTsKl4k2E1uXiDIOwxX1zdE1neRY0xbZ/l/A7F/Tr9V6pPTJEHT+iGgwIoqqerQYQ05mA6wEiDwoJCOapnq0GEM0GEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA==" + }, + { + "b64Body": "Cg8KCQjmqZ6tBhDTBhICGAISAhgDGMLUhzMiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBjAsSAxj+ByKECzViNWI2MTBmZWQ4NDgyODUwMTYxMGY3ZjU2NWI5MTUwNTA5MjkxNTA1MDU2NWI2MTBmZmY4MTYxMGE5OTU2NWI4MjUyNTA1MDU2NWI2MTEwMGU4MTYxMGIwNDU2NWI4MjUyNTA1MDU2NWI2MDAwODI4MjUyNjAyMDgyMDE5MDUwOTI5MTUwNTA1NjViODI4MTgzMzc2MDAwODM4MzAxNTI1MDUwNTA1NjViNjAwMDYxMTA0MDgzODU2MTEwMTQ1NjViOTM1MDYxMTA0ZDgzODU4NDYxMTAyNTU2NWI2MTEwNTY4MzYxMGU1NjU2NWI4NDAxOTA1MDkzOTI1MDUwNTA1NjViNjAwMDYwODA4MjAxOTA1MDYxMTA3NjYwMDA4MzAxODg2MTBmZjY1NjViNjExMDgzNjAyMDgzMDE4NzYxMGZmNjU2NWI2MTEwOTA2MDQwODMwMTg2NjExMDA1NTY1YjgxODEwMzYwNjA4MzAxNTI2MTEwYTM4MTg0ODY2MTEwMzQ1NjViOTA1MDk2OTU1MDUwNTA1MDUwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDYxMTBjNDYwMDA4MzAxODQ2MTEwMDU1NjViOTI5MTUwNTA1NjViNjAwMDgxNTE5MDUwNjExMGQ5ODE2MTBhYWI1NjViOTI5MTUwNTA1NjViNjAwMDYwMjA4Mjg0MDMxMjE1NjExMGY1NTc2MTEwZjQ2MTBhNmY1NjViNWI2MDAwNjExMTAzODQ4Mjg1MDE2MTEwY2E1NjViOTE1MDUwOTI5MTUwNTA1NjViNjAwMDYwNjA4MjAxOTA1MDYxMTEyMTYwMDA4MzAxODY2MTBmZjY1NjViNjExMTJlNjAyMDgzMDE4NTYxMGZmNjU2NWI2MTExM2I2MDQwODMwMTg0NjExMDA1NTY1Yjk0OTM1MDUwNTA1MDU2NWI2MTExNGM4MTYxMGNlMDU2NWI4MjUyNTA1MDU2NWI2MDAwNjA0MDgyMDE5MDUwNjExMTY3NjAwMDgzMDE4NTYxMGZmNjU2NWI2MTExNzQ2MDIwODMwMTg0NjExMTQzNTY1YjkzOTI1MDUwNTA1NjViNjAwMDYwNDA4MjAxOTA1MDYxMTE5MDYwMDA4MzAxODU2MTBmZjY1NjViNjExMTlkNjAyMDgzMDE4NDYxMTAwNTU2NWI5MzkyNTA1MDUwNTY1YjYwMDA4MTUxOTA1MDYxMTFiMzgxNjEwYjBlNTY1YjkyOTE1MDUwNTY1YjYwMDA2MDIwODI4NDAzMTIxNTYxMTFjZjU3NjExMWNlNjEwYTZmNTY1YjViNjAwMDYxMTFkZDg0ODI4NTAxNjExMWE0NTY1YjkxNTA1MDkyOTE1MDUwNTY1YjYwMDA2MDQwODIwMTkwNTA2MTExZmI2MDAwODMwMTg1NjEwZmY2NTY1YjYxMTIwODYwMjA4MzAxODQ2MTBmZjY1NjViOTM5MjUwNTA1MDU2NWI2MDAwODE1MTkwNTA2MTEyMWU4MTYxMGNlYzU2NWI5MjkxNTA1MDU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTEyM2E1NzYxMTIzOTYxMGE2ZjU2NWI1YjYwMDA2MTEyNDg4NDgyODUwMTYxMTIwZjU2NWI5MTUwNTA5MjkxNTA1MDU2NWI2MDAwNjAyMDgyMDE5MDUwNjExMjY2NjAwMDgzMDE4NDYxMGZmNjU2NWI5MjkxNTA1MDU2ZmVhMjY0Njk3MDY2NzM1ODIyMTIyMGY3ZjYyNzZjN2Q3NTBkYzhkNzJhMzk4ZDExNmMwZTZlMzgzOTMxOGU4NzJlOWMzZTc5ZmU5MjcwNDA4ZTAwMTI2NDczNmY2YzYzNDMwMDA4MTAwMDMz", + "b64Record": "CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw8MMQ/Y6eFwmhApj6AhN6IQlJtutrK0DC+Ayzw6J/ZYeGMnFXx7Ibu/KVL2ivgNz+GgsIo6qerQYQ+8nUDyIPCgkI5qmerQYQ0wYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA" + }, + { + "b64Body": "Cg8KCQjnqZ6tBhDVBhICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGP4HGiISIOXvGctjluaYir3B7tN3kD8dDA5cJ2Uko5wk74VSjmdcIJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==", + "b64Record": "CiUIFiIDGP8HKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjA5fZHP/+0c2fRdyo6PdNRBqUQJ0HMbX0BtfsQ8XeLOqtvqkHX0Y6nLlgK3xPUpxDcaDAijqp6tBhCbwPf0ASIPCgkI56merQYQ1QYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQtcnCgMY/wcSoiVggGBAUjSAFWEAEFdgAID9W1BgBDYQYQEAV2AANWDgHIBjqG41dhFhAJdXgGPk3CqkEWEAZleAY+TcKqQUYQJVV4Bj6dxjdRRhAnFXgGP0n0DbFGECjVeAY/eIiuwUYQKpV2EBAFZbgGOobjV2FGEB5VeAY8tg8b8UYQIBV4Bj2fxLYRRhAh1XgGPh8hxnFGECOVdhAQBWW4BjHynS3BFhANNXgGMfKdLcFGEBdVeAYzZ2BcoUYQGRV4Bja0K/LxRhAa1XgGOY3KW+FGEByVdhAQBWW4BjAZhIkhRhAQVXgGMDnW8ZFGEBIVeAYwmPI2YUYQE9V4BjFdrL6hRhAVlXW2AAgP1bYQEfYASANgOBAZBhARqRkGEK11ZbYQLFVlsAW2EBO2AEgDYDgQGQYQE2kZBhC59WW2EDPVZbAFthAVdgBIA2A4EBkGEBUpGQYQw5VlthA7hWWwBbYQFzYASANgOBAZBhAW6RkGEMeVZbYQQ3VlsAW2EBj2AEgDYDgQGQYQGKkZBhDDlWW2EErFZbAFthAatgBIA2A4EBkGEBppGQYQ0YVlthBStWWwBbYQHHYASANgOBAZBhAcKRkGENa1ZbYQWdVlsAW2EB42AEgDYDgQGQYQHekZBhDHlWW2EGH1ZbAFthAf9gBIA2A4EBkGEB+pGQYQrXVlthBo9WWwBbYQIbYASANgOBAZBhAhaRkGEMOVZbYQcHVlsAW2ECN2AEgDYDgQGQYQIykZBhDHlWW2EHhlZbAFthAlNgBIA2A4EBkGECTpGQYQ1rVlthB/tWWwBbYQJvYASANgOBAZBhAmqRkGEK11ZbYQhtVlsAW2ECi2AEgDYDgQGQYQKGkZBhDDlWW2EI4FZbAFthAqdgBIA2A4EBkGECopGQYQ2+VlthCWRWWwBbYQLDYASANgOBAZBhAr6RkGEOEVZbYQnmVlsAW4Bz//////////////////////////8WYwb93gNgQFGBY/////8WYOAbgVJgBAFgAGBAUYCDA4GGWvoVgBVhAxBXPWAAgD49YAD9W1BQUFBgQFE9YACCPj1gHxlgH4IBFoIBgGBAUlCBAZBhAzmRkGEPrVZbUFBWW4Vz//////////////////////////8WY7iNT96GhoaGhmBAUYZj/////xZg4BuBUmAEAWEDfpWUk5KRkGEQYVZbYABgQFGAgwOBYACHgDsVgBVhA5hXYACA/VtQWvEVgBVhA6xXPWAAgD49YAD9W1BQUFBQUFBQUFBWW4Fz//////////////////////////8WYwgYEvyCYEBRgmP/////FmDgG4FSYAQBYQPxkZBhEK9WW2AgYEBRgIMDgYZa+hWAFWEEDlc9YACAPj1gAP1bUFBQUGBAUT1gHxlgH4IBFoIBgGBAUlCBAZBhBDKRkGEQ31ZbUFBQVluDc///////////////////////////FmMjuHLdhISEYEBRhGP/////FmDgG4FSYAQBYQR0k5KRkGERDFZbYABgQFGAgwOBYACHgDsVgBVhBI5XYACA/VtQWvEVgBVhBKJXPWAAgD49YAD9W1BQUFBQUFBQVluBc///////////////////////////FmNjUiEegmBAUYJj/////xZg4BuBUmAEAWEE5ZGQYRCvVltgIGBAUYCDA4GGWvoVgBVhBQJXPWAAgD49YAD9W1BQUFBgQFE9YB8ZYB+CARaCAYBgQFJQgQGQYQUmkZBhEN9WW1BQUFZbgnP//////////////////////////xZjoiy0ZYODYEBRg2P/////FmDgG4FSYAQBYQVmkpGQYRFSVltgAGBAUYCDA4FgAIeAOxWAFWEFgFdgAID9W1Ba8RWAFWEFlFc9YACAPj1gAP1bUFBQUFBQUFZbgnP//////////////////////////xZjL3RcWYODYEBRg2P/////FmDgG4FSYAQBYQXYkpGQYRF7VltgIGBAUYCDA4GGWvoVgBVhBfVXPWAAgD49YAD9W1BQUFBgQFE9YB8ZYB+CARaCAYBgQFJQgQGQYQYZkZBhEblWW1BQUFBWW4Nz//////////////////////////8WYyO4ct2EhIRgQFGEY/////8WYOAbgVJgBAFhBlyTkpGQYREMVltgAGBAUYCDA4FgAIeAOxWAFWEGdldgAID9W1Ba8RWAFWEGilc9YACAPj1gAP1bYACA/VuAc///////////////////////////FmOV2JtBYEBRgWP/////FmDgG4FSYAQBYABgQFGAgwOBhlr6FYAVYQbaVz1gAIA+PWAA/VtQUFBQYEBRPWAAgj49YB8ZYB+CARaCAYBgQFJQgQGQYQcDkZBhD61WW1BQVluBc///////////////////////////FmNPbMzngmBAUYJj/////xZg4BuBUmAEAWEHQJGQYRCvVltgIGBAUYCDA4GGWvoVgBVhB11XPWAAgD49YAD9W1BQUFBgQFE9YB8ZYB+CARaCAYBgQFJQgQGQYQeBkZBhEblWW1BQUFZbg3P//////////////////////////xZjQoQuDoSEhGBAUYRj/////xZg4BuBUmAEAWEHw5OSkZBhEQxWW2AAYEBRgIMDgWAAh4A7FYAVYQfdV2AAgP1bUFrxFYAVYQfxVz1gAIA+PWAA/VtQUFBQUFBQUFZbgnP//////////////////////////xZjCV6ns4ODYEBRg2P/////FmDgG4FSYAQBYQg2kpGQYRF7VltgAGBAUYCDA4FgAIeAOxWAFWEIUFdgAID9W1Ba8RWAFWEIZFc9YACAPj1gAP1bUFBQUFBQUFZbgHP//////////////////////////xZjGBYN3WBAUYFj/////xZg4BuBUmAEAWAgYEBRgIMDgYZa+hWAFWEIuFc9YACAPj1gAP1bUFBQUGBAUT1gHxlgH4IBFoIBgGBAUlCBAZBhCNyRkGERuVZbUFBWW4Fz//////////////////////////8WY8h7Vt2CYEBRgmP/////FmDgG4FSYAQBYQkZkZBhEK9WW2AAYEBRgIMDgYZa+hWAFWEJNlc9YACAPj1gAP1bUFBQUGBAUT1gAII+PWAfGWAfggEWggGAYEBSUIEBkGEJX5GQYQ+tVltQUFBWW4Jz//////////////////////////8WY+mF6cWDg2BAUYNj/////xZg4BuBUmAEAWEJn5KRkGER5lZbYCBgQFGAgwOBhlr6FYAVYQm8Vz1gAIA+PWAA/VtQUFBQYEBRPWAfGWAfggEWggGAYEBSUIEBkGEJ4JGQYRIkVltQUFBQVluBc///////////////////////////FmNwoIIxgmBAUYJj/////xZg4BuBUmAEAWEKH5GQYRJRVltgIGBAUYCDA4GGWvoVgBVhCjxXPWAAgD49YAD9W1BQUFBgQFE9YB8ZYB+CARaCAYBgQFJQgQGQYQpgkZBhEblWW1BQUFZbYABgQFGQUJBWW2AAgP1bYACA/VtgAHP//////////////////////////4IWkFCRkFBWW2AAYQqkgmEKeVZbkFCRkFBWW2EKtIFhCplWW4EUYQq/V2AAgP1bUFZbYACBNZBQYQrRgWEKq1ZbkpFQUFZbYABgIIKEAxIVYQrtV2EK7GEKb1ZbW2AAYQr7hIKFAWEKwlZbkVBQkpFQUFZbYACBkFCRkFBWW2ELF4FhCwRWW4EUYQsiV2AAgP1bUFZbYACBNZBQYQs0gWELDlZbkpFQUFZbYACA/VtgAID9W2AAgP1bYACAg2AfhAESYQtfV2ELXmELOlZbW4I1kFBn//////////+BERVhC3xXYQt7YQs/VltbYCCDAZFQg2ABggKDAREVYQuYV2ELl2ELRFZbW5JQkpBQVltgAIBgAIBgAIBgoIeJAxIVYQu8V2ELu2EKb1ZbW2AAYQvKiYKKAWEKwlZbllBQYCBhC9uJgooBYQrCVluVUFBgQGEL7ImCigFhCsJWW5RQUGBgYQv9iYKKAWELJVZbk1BQYICHATVn//////////+BERVhDB5XYQwdYQp0VltbYQwqiYKKAWELSVZbklCSUFCSlVCSlVCSlVZbYACAYECDhQMSFWEMUFdhDE9hCm9WW1tgAGEMXoWChgFhCsJWW5JQUGAgYQxvhYKGAWELJVZbkVBQklCSkFBWW2AAgGAAgGCAhYcDEhVhDJNXYQySYQpvVltbYABhDKGHgogBYQrCVluUUFBgIGEMsoeCiAFhCsJWW5NQUGBAYQzDh4KIAWEKwlZbklBQYGBhDNSHgogBYQslVluRUFCSlZGUUJJQVltgAIEVFZBQkZBQVlthDPWBYQzgVluBFGENAFdgAID9W1BWW2AAgTWQUGENEoFhDOxWW5KRUFBWW2AAgGAAYGCEhgMSFWENMVdhDTBhCm9WW1tgAGENP4aChwFhCsJWW5NQUGAgYQ1QhoKHAWEKwlZbklBQYEBhDWGGgocBYQ0DVluRUFCS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" + }, + { + "b64Body": "Cg8KCQjoqZ6tBhDbBhICGAISAhgDGOC2iyAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGPoHEgMY/Qc=", + "b64Record": "CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwsKfaJSot5FDYBzoDROspTVQCN+e8h0D/TzR/h3fGuJusl9OccdrN2aRygg7cFQ+xGgsIpKqerQYQu+uWGSIPCgkI6KmerQYQ2wYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA" + }, + { + "b64Body": "Cg8KCQjoqZ6tBhDhBhICGAISAhgDGOC2iyAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGPsHEgMY/Qc=", + "b64Record": "CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwr2bqd1kS6NPu01MfoRcj2yp8cUvCAnujsMnj/c4cerBS15+yJUbUDgr6IHyNlRLvGgwIpKqerQYQ28Xv/QEiDwoJCOipnq0GEOEGEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA==" + }, + { + "b64Body": "Cg8KCQjpqZ6tBhDnBhICGAISAhgDGOC2iyAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGP8HEgMY/Qc=", + "b64Record": "CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwCtRkW1MJgfPOjc/EqV0LzqR39hRNJYHPoFwH9/Ltxqd1qsnHXte7hfqVZSP2RFleGgsIpaqerQYQ68KtIiIPCgkI6amerQYQ5wYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA" + }, + { + "b64Body": "Cg8KCQjpqZ6tBhDtBhICGAISAhgDGP2NkRAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjqoCEwoDGP0HGgVGSVJTVBoFRklSU1Q=", + "b64Record": "CiYIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1gCcgIBAhIw7xD8QAr5px03HWxyD7VZ9YyMVLmijBcZOGDDvmNdsCEZUO/4R5i7KIpUZ62Jh0KtGgwIpaqerQYQk9OnpAIiDwoJCOmpnq0GEO0GEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAFofCgMY/QcaCwoCGAASAxj8BxgBGgsKAhgAEgMY/AcYAg==" + }, + { + "b64Body": "Cg8KCQjqqZ6tBhDxBhICGAISAhgDGI3GPCICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOchUSEwoDGP0HGgwKAxj8BxIDGPoHGAE=", + "b64Record": "CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwv+8UWsxyNEBL/VXwpKaq/ZSz8+IsWvjPaIbZPLV2magkrmP1UWbtnkNYsvmkYvCFGgsIpqqerQYQ27/2KyIPCgkI6qmerQYQ8QYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWhMKAxj9BxoMCgMY/AcSAxj6BxgB" + }, + { + "b64Body": "Cg8KCQjqqZ6tBhDyBhICGAISAhgDGIDC1y8iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIDFhIUCgMY/QcSAxj6BxoDGP8HIgEBKgA=", + "b64Record": "CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw1YWMG8tK/YmXbVJdC6rvkKQB3dw27RDyITQT4/xeenj19TYNhsV5GsIJcRZwhIgVGgwIpqqerQYQm+zhrgIiDwoJCOqpnq0GEPIGEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA==" + }, + { + "b64Body": "Cg8KCQjrqZ6tBhD4BhICGAISAhgDGID+tYcBIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46kQEKAxj/BxCAkvQBIoQBmNylvgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/oAAAAAAAAAAAAAAAC6ls2OiyuAZz3Db1BTinVBB8g/RgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB", + "b64Record": "CiUIISIDGP8HKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAHHXboxVytd7GkT0VpAZCi8w2Lfb4BsROORuLv/CokVhjsw9hW5Hvy47TTon4jR9gaCwinqp6tBhDLjctSIg8KCQjrqZ6tBhD4BhICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMICYq2w6CRoCMHgogKjDAVIYCgoKAhgCEP+v1tgBCgoKAhhiEICw1tgB" + }, + { + "b64Body": "ChEKCQjrqZ6tBhD4BhICGAIgAXIqEigKAxj9BxohCgMY+gcSFiIUupbNjosrgGc9w29QU4p1QQfIP0YYASAB", + "b64Record": "CgMImAISMFiS+n+9UUGFhyO7F6FwH+Mk0GDQ7+njenjcdQgCjn8AjOyp2oDet9S0yHs4rqDQJhoLCKeqnq0GEMyNy1IiEQoJCOupnq0GEPgGEgIYAiABOpEBCgMY5wIogIQsUJvt6gFifGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAD/SO4ct0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+gAAAAAAAAAAAAAAALqWzY6LK4BnPcNvUFOKdUEHyD9GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFqAxj/B1IAegsIp6qerQYQy43LUg==" + }, + { + "b64Body": "ChEKCQjrqZ6tBhD6BhICGAIgAVo6CgIyAEoFCIDO2gNqFGxhenktY3JlYXRlZCBhY2NvdW50cAGSARS6ls2OiyuAZz3Db1BTinVBB8g/Rg==", + "b64Record": "CgcIFhIDGIEIEjDV3Z57Ep1TNGWL0+XGg9QKwv54lA+Sw4dkk67vX6M3YTez5qZegsE2AtrnbXAp3T0aDAinqp6tBhCC09G3AiIRCgkI66merQYQ+gYSAhgCIAEqFGxhenktY3JlYXRlZCBhY2NvdW50UgA=" + }, + { + "b64Body": "Cg8KCQjrqZ6tBhD6BhICGAISAhgDGID+tYcBIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46kQEKAxj/BxCAkvQBIoQBFdrL6gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/oAAAAAAAAAAAAAAAC6ls2OiyuAZz3Db1BTinVBB8g/RgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB", + "b64Record": "CiUIFiIDGP8HKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCto593OQFZTMzceuFK2moIjLQpHHeZFWeMmQ65Xux04XXW1Mf3z8kD1W29R6kZRKcaDAinqp6tBhCD09G3AiIPCgkI66merQYQ+gYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCAmKtsOqAFCgMY/wcigAIAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAABAAAAAAAgAAAAAAAAAAAAgAAAAAAAAAAQAgAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAACAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKICowwEykAMKAxj9BxKAAgAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAEAAAAAACAAAAAAAAAAAACAAAAAAAAAABACAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAIAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaIN3yUq0b4sibacKwaPw3jaqVK6fxY8ShFij1Wk31I7PvGiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+hogAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUhgKCgoCGAIQ/6/W2AEKCgoCGGIQgLDW2AE=" + }, + { + "b64Body": "ChEKCQjrqZ6tBhD6BhICGAIgAnIqEigKAxj9BxohCgMY+gcSFiIUupbNjosrgGc9w29QU4p1QQfIP0YYASAB", + "b64Record": "CgIIFhIwtFR26ZmdowK1sBGu4RfymSNyCh10s135cfJZ3Hxnf+CmW+MQvFOo2eEXCfuP6m/lGgwIp6qerQYQhNPRtwIiEQoJCOupnq0GEPoGEgIYAiACOpEBCgMY5wIogIQsUJrt6gFifGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAD/SO4ct0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+gAAAAAAAAAAAAAAALqWzY6LK4BnPcNvUFOKdUEHyD9GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFqAxj/B1IAWhMKAxj9BxoMCgMY+gcSAxiBCBgBcgoKAxj9BxIDGIEIegwIp6qerQYQg9PRtwI=" + } + ] + }, + "htsTransferFromFungibleTokenLazyCreate": { + "placeholderNum": 1026, + "encodedItems": [ + { + "b64Body": "Cg8KCQjwqZ6tBhCgBxICGAISAhgDGOy4wBgiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISILR7w/rQopL0d7ueYaVpi/++eo/6FRxhtxxoJKQfmfefEICglKWNHUoFCIDO2gNwBQ==", + "b64Record": "CiUIFhIDGIMIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjA9mEIfDrLGXbFSOElx4FMEn7w3TSiaKddzQPTX1UN0YPvXXTCcdn5lnHACikCjHDUaDAisqp6tBhDT/vKeASIPCgkI8KmerQYQoAcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIbCgsKAhgCEP+/qMqaOgoMCgMYgwgQgMCoypo6" + }, + { + "b64Body": "Cg8KCQjwqZ6tBhCiBxICGAISAhgDGNDytOkCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAVkKDWZ1bmdpYmxlVG9rZW4SCFhUREtKRUdBIAoqAxiDCFIiEiBxtJgzsctnnYKj81MQ1zH5qhage9doKwLPq5FeT6eyCmoMCKz4+LAGEJidx/cCkAEBmAHoBw==", + "b64Record": "CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGIQIEjCmQBjZemjSzAePY9xini5uc8m9Xc/HuegbBPUsG0sxdsQ4Zzk5fVKdWdtqyXb7TyIaDAisqp6tBhDLsuqDAyIPCgkI8KmerQYQogcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWg4KAxiECBIHCgMYgwgQFHIKCgMYhAgSAxiDCA==" + }, + { + "b64Body": "Cg8KCQjxqZ6tBhCkBxICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAit+PiwBhCQoq+OARptCiISIACzLGA+HKQQDvjQEGfIjzU1LzFoNeMNXlujTQjBIIEHCiM6IQPEnIqB0a+6oaxqaqis/uPzWQzpF5rTDsKb0XEUcWkRKwoiEiAkmXXLck+WDbDnzP2IiYV9Oq0JeR6+16EG+/Gp7b9eAiIMSGVsbG8gV29ybGQhKgAyAA==", + "b64Record": "CiUIFhoDGIUIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCUDx4OXfjiU30dwnyHC3R5vTPwMjrCcoIzVOWZ5l8iC7TXCLrcQSTRmIL7z53hKHwaDAitqp6tBhCzgZ2pASIPCgkI8amerQYQpAcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA" + }, + { + "b64Body": "Cg8KCQjxqZ6tBhCoBxICGAISAhgDGIydjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxiFCCKAIDYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMTFlODgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDBhOTU3NjAwMDM1NjBlMDFjODA2MzZmYzNjYmFmMTE2MTAwNzE1NzgwNjM2ZmMzY2JhZjE0NjEwMTMwNTc4MDYzN2M0MWFkMmMxNDYxMDE1NjU3ODA2MzhmOGQ3Zjk5MTQ2MTAxNjk1NzgwNjNhZjk5YzYzMzE0NjEwMTdjNTc4MDYzZDYxNGNkYjgxNDYxMDE4ZjU3ODA2M2YyYzMxZmY0MTQ2MTAxYjA1NzYwMDA4MGZkNWI4MDYzMTNhOGVkNTMxNDYxMDBhZTU3ODA2MzNiM2JmZjBmMTQ2MTAwYzM1NzgwNjMzYzRkZDMyZTE0NjEwMGU5NTc4MDYzNTA4MWRlZDMxNDYxMDEwYTU3ODA2MzU5M2Q2ZTgyMTQ2MTAxMWQ1NzViNjAwMDgwZmQ1YjYxMDBjMTYxMDBiYzM2NjAwNDYxMDkyYjU2NWI2MTAxZGQ1NjViMDA1YjYxMDBkNjYxMDBkMTM2NjAwNDYxMDk3YzU2NWI2MTAyNDM1NjViNjA0MDUxOTA4MTUyNjAyMDAxNWI2MDQwNTE4MDkxMDM5MGYzNWI2MTAwZmM2MTAwZjczNjYwMDQ2MTA5YTA1NjViNjEwMzFkNTY1YjYwNDA1MTYxMDBlMDkyOTE5MDYxMGE5MzU2NWI2MTAwYzE2MTAxMTgzNjYwMDQ2MTA5MmI1NjViNjEwNDA0NTY1YjYxMDBkNjYxMDEyYjM2NjAwNDYxMGI3ZjU2NWI2MTA0MTI1NjViNjEwMTQzNjEwMTNlMzY2MDA0NjEwYzg4NTY1YjYxMDRlZjU2NWI2MDQwNTE2MDA3OTE5MDkxMGI4MTUyNjAyMDAxNjEwMGUwNTY1YjYxMDBkNjYxMDE2NDM2NjAwNDYxMDk3YzU2NWI2MTA1MWI1NjViNjEwMTQzNjEwMTc3MzY2MDA0NjEwZTQ5NTY1YjYxMDU0OTU2NWI2MTAxNDM2MTAxOGEzNjYwMDQ2MTBlNDk1NjViNjEwNTdmNTY1YjYxMDFhMjYxMDE5ZDM2NjAwNDYxMDk3YzU2NWI2MTA1YjU1NjViNjA0MDUxNjEwMGUwOTI5MTkwNjEwZTgyNTY1YjYxMDFjMzYxMDFiZTM2NjAwNDYxMGU0OTU2NWI2MTA2YmY1NjViNjA0MDgwNTE2MDA3OTM5MDkzMGI4MzUyOTAxNTE1NjAyMDgzMDE1MjAxNjEwMGUwNTY1YjYwMDA2MTAxZWI4NTg1ODU4NTYxMDc4YTU2NWI2MDA3MGI5MDUwNjAxNjgxMTQ2MTAyM2M1NzYwNDA1MTYyNDYxYmNkNjBlNTFiODE1MjYwMjA2MDA0ODIwMTUyNjAxNTYwMjQ4MjAxNTI3NDU0NzI2MTZlNzM2NjY1NzIyMDY2NzI2ZjZkMjA2NjYxNjk2YzY1NjQyMTYwNTgxYjYwNDQ4MjAxNTI2MDY0MDE2MDQwNTE4MDkxMDM5MGZkNWI1MDUwNTA1MDUwNTY1YjYwNDA1MTYwMDE2MDAxNjBhMDFiMDM4MjE2NjAyNDgyMDE1MjYwMDA5MDgxOTA4MTkwNjEwMTY3OTA2MzNiM2JmZjBmNjBlMDFiOTA2MDQ0MDE1YjYwNDA4MDUxNjAxZjE5ODE4NDAzMDE4MTUyOTE4MTUyNjAyMDgyMDE4MDUxNjAwMTYwMDE2MGUwMWIwMzE2NjAwMTYwMDE2MGUwMWIwMzE5OTA5NDE2OTM5MDkzMTc5MDkyNTI5MDUxNjEwMmFiOTE5MDYxMGViYzU2NWI2MDAwNjA0MDUxODA4MzAzODE2MDAwODY1YWYxOTE1MDUwM2Q4MDYwMDA4MTE0NjEwMmU4NTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjEwMmVkNTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTAyZmU1NzYwMTU2MTAzMTI1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTAzMTI5MTkwNjEwZWVhNTY1YjYwMDMwYjk0OTM1MDUwNTA1MDU2NWI2MDAwNjEwMzI3NjEwOGMwNTY1YjYwNDA4MDUxNjAwMTYwMDE2MGEwMWIwMzg2MTY2MDI0ODIwMTUyNjA0NDgwODIwMTg2OTA1MjgyNTE4MDgzMDM5MDkxMDE4MTUyNjA2NDkwOTEwMTgyNTI2MDIwODEwMTgwNTE2MDAxNjAwMTYwZTAxYjAzMTY2MzFlMjZlOTk3NjBlMTFiMTc5MDUyOTA1MTYwMDA5MTgyOTE2MTAxNjc5MTYxMDM4MTkxNjEwZWJjNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NjVhZjE5MTUwNTAzZDgwNjAwMDgxMTQ2MTAzYmU1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTAzYzM1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA2MTAzZDA2MTA4YzA1NjViODI2MTAzZGQ1NzYwMTU4MTYxMDNmMTU2NWI4MTgwNjAyMDAxOTA1MTgxMDE5MDYxMDNmMTkxOTA2MTBmNTU1NjViNjAwMzkxOTA5MTBiOTg5MDk3NTA5NTUwNTA1MDUwNTA1MDU2NWI2MDAwNjEwMWViODU4NTg1ODU2MTA4N2I1NjViNjAwMDgwNjAwMDYxMDE2NzYwMDE2MDAxNjBhMDFiMDMxNjYzNTkzZDZlODI2MGUwMWI4Njg2NjA0MDUxNjAyNDAxNjEwNDNlOTI5MTkwNjExMDMwNTY1YjYwNDA4MDUxNjAxZjE5ODE4NDAzMDE4MTUyOTE4MTUyNjAyMDgyMDE4MDUxNjAwMTYwMDE2MGUwMWIwMzE2NjAwMTYwMDE2MGUwMWIwMzE5OTA5NDE2OTM5MDkzMTc5MDkyNTI5MDUxNjEwNDdjOTE5MDYxMGViYzU2NWI2MDAwNjA0MDUxODA4MzAzODE2MDAwODY1YWYxOTE1MDUwM2Q4MDYwMDA4MTE0NjEwNGI5NTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjEwNGJlNTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTA0Y2Y1NzYwMTU2MTA0ZTM1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTA0ZTM5MTkwNjEwZWVhNTY1YjYwMDMwYjk1OTQ1MDUwNTA1MDUwNTY1YjYwMDA4MDYwMDA2MTAxNjc2MDAxNjAwMTYwYTAxYjAzMTY2MzZmYzNjYmFmNjBlMDFiODY4NjYwNDA1MTYwMjQwMTYxMDQzZTkyOTE5MDYxMTA3MzU2NWI2MDQwNTE2MDAxNjAwMTYwYTAxYjAzODIxNjYwMjQ4MjAxNTI2MDAwOTA4MTkwODE5MDYxMDE2NzkwNjMxZjEwNmI0YjYwZTIxYjkwNjA0NDAxNjEwMjZkNTY1YjYwNDA1MTYwMDE2MDAxNjBhMDFiMDM4MzgxMTY2MDI0ODMwMTUyODIxNjYwNDQ4MjAxNTI2MDAwOTA4MTkwODE5MDYxMDE2NzkwNjM4ZjhkN2Y5OTYwZTAxYjkwNjA2NDAxNjEwNDNlNTY1YjYwNDA1MTYwMDE2MDAxNjBhMDFiMDM4MzgxMTY2MDI0ODMwMTUyODIxNjYwNDQ4MjAxNTI2MDAwOTA4MTkwODE5MDYxMDE2NzkwNjNhZjk5YzYzMzYwZTAxYjkwNjA2NDAxNjEwNDNlNTY1YjYwNDA4MDUxNjA2MDgxMDE4MjUyNjAwMDgwODI1MjYwMjA4MDgzMDE4MjkwNTI4Mjg0MDE4MjkwNTI4MzUxNjAwMTYwMDE2MGEwMWIwMzg2MTY2MDI0ODA4MzAxOTE5MDkxNTI4NTUxODA4MzAzOTA5MTAxODE1MjYwNDQ5MDkxMDE4NTUyOTA4MTAxODA1MTYwMDE2MDAxNjBlMDFiMDMxNjYzMWFjMjk5Yjc2MGUzMWIxNzkwNTI5MjUxOTA5MjgzOTE4MjkxNjEwMTY3OTE2MTA2Mjc5MTkwNjEwZWJjNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NjVhZjE5MTUwNTAzZDgwNjAwMDgxMTQ2MTA2NjQ1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTA2Njk1NjViNjA2MDkxNTA1YjUwNjA0MDgwNTE2MDYwODEwMTgyNTI2MDAwODA4MjUyNjAyMDgyMDE4MTkwNTI5MTgxMDE5MTkwOTE1MjkxOTM1MDkxNTA4MjYxMDY5OTU3NjAxNTgxNjEwNmFkNTY1YjgxODA2MDIwMDE5MDUxODEwMTkwNjEwNmFkOTE5MDYxMTBmODU2NWI2MDAzOTE5MDkxMGI5NzkwOTY1MDk0NTA1MDUwNTA1MDU2NWI2MDQwODA1MTYwMDE2MDAxNjBhMDFiMDM4NDgxMTY2MDI0ODMwMTUyODMxNjYwNDQ4MDgzMDE5MTkwOTE1MjgyNTE4MDgzMDM5MDkxMDE4MTUyNjA2NDkwOTEwMTgyNTI2MDIwODEwMTgwNTE2MDAxNjAwMTYwZTAxYjAzMTY2MzNjYjBjN2ZkNjBlMjFiMTc5MDUyOTA1MTYwMDA5MTgyOTE4MjkxODI5MTYxMDE2NzkxNjEwNzIxOTE2MTBlYmM1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMDc1ZTU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMDc2MzU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEwNzc2NTc2MDE1NjAwMDYxMDZhZDU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMDZhZDkxOTA2MTExNjM1NjViNjA0MDUxNjAwMTYwMDE2MGEwMWIwMzg1ODExNjYwMjQ4MzAxNTI4NDgxMTY2MDQ0ODMwMTUyODMxNjYwNjQ4MjAxNTI2MDg0ODEwMTgyOTA1MjYwMDA5MDgxOTA4MTkwNjEwMTY3OTA2MzBhZWQ2NWY1NjBlMTFiOTA2MGE0MDE1YjYwNDA4MDUxNjAxZjE5ODE4NDAzMDE4MTUyOTE4MTUyNjAyMDgyMDE=", + "b64Record": "CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwqYvzFSENZZbJy0+7KHIKu9yk4kf4QpofLl9s23j5SyBN9JUnb4S/kHO/9/dEdlLcGgwIraqerQYQk+azjQMiDwoJCPGpnq0GEKgHEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA==" + }, + { + "b64Body": "Cg8KCQjyqZ6tBhCuBxICGAISAhgDGPjR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxiFCCKAIDgwNTE2MDAxNjAwMTYwZTAxYjAzMTY2MDAxNjAwMTYwZTAxYjAzMTk5MDk0MTY5MzkwOTMxNzkwOTI1MjkwNTE2MTA4MDk5MTkwNjEwZWJjNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NjVhZjE5MTUwNTAzZDgwNjAwMDgxMTQ2MTA4NDY1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTA4NGI1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA4MTYxMDg1YzU3NjAxNTYxMDg3MDU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMDg3MDkxOTA2MTExOGY1NjViOTc5NjUwNTA1MDUwNTA1MDUwNTY1YjYwNDA1MTYwMDE2MDAxNjBhMDFiMDM4NTgxMTY2MDI0ODMwMTUyODQ4MTE2NjA0NDgzMDE1MjgzMTY2MDY0ODIwMTUyNjA4NDgxMDE4MjkwNTI2MDAwOTA4MTkwODE5MDYxMDE2NzkwNjM5YjIzZDNkOTYwZTAxYjkwNjBhNDAxNjEwN2NiNTY1YjYwNDA1MTgwNjBhMDAxNjA0MDUyODA2MDAwMTUxNTgxNTI2MDIwMDE2MDAwNjAwMTYwMDE2MGEwMWIwMzE2ODE1MjYwMjAwMTYwNjA4MTUyNjAyMDAxNjA2MDgxNTI2MDIwMDE2MDAwNjAwMTYwMDE2MGEwMWIwMzE2ODE1MjUwOTA1NjViNjAwMTYwMDE2MGEwMWIwMzgxMTY4MTE0NjEwOTE4NTc2MDAwODBmZDViNTA1NjViODAzNTYxMDkyNjgxNjEwOTAzNTY1YjkxOTA1MDU2NWI2MDAwODA2MDAwODA2MDgwODU4NzAzMTIxNTYxMDk0MTU3NjAwMDgwZmQ1Yjg0MzU2MTA5NGM4MTYxMDkwMzU2NWI5MzUwNjAyMDg1MDEzNTYxMDk1YzgxNjEwOTAzNTY1YjkyNTA2MDQwODUwMTM1NjEwOTZjODE2MTA5MDM1NjViOTM5NjkyOTU1MDkyOTM2MDYwMDEzNTkyNTA1MDU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTA5OGU1NzYwMDA4MGZkNWI4MTM1NjEwOTk5ODE2MTA5MDM1NjViOTM5MjUwNTA1MDU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMDliMzU3NjAwMDgwZmQ1YjgyMzU2MTA5YmU4MTYxMDkwMzU2NWI5NDYwMjA5MzkwOTMwMTM1OTM1MDUwNTA1NjViNjAwMDViODM4MTEwMTU2MTA5ZTc1NzgxODEwMTUxODM4MjAxNTI2MDIwMDE2MTA5Y2Y1NjViODM4MTExMTU2MTA5ZjY1NzYwMDA4NDg0MDE1MjViNTA1MDUwNTA1NjViNjAwMDgxNTE4MDg0NTI2MTBhMTQ4MTYwMjA4NjAxNjAyMDg2MDE2MTA5Y2M1NjViNjAxZjAxNjAxZjE5MTY5MjkwOTIwMTYwMjAwMTkyOTE1MDUwNTY1YjgwNTExNTE1ODI1MjYwMDA2MDIwODIwMTUxNjAwMTYwMDE2MGEwMWIwMzgwODIxNjYwMjA4NjAxNTI2MDQwODQwMTUxOTE1MDYwYTA2MDQwODYwMTUyNjEwYTYwNjBhMDg2MDE4MzYxMDlmYzU2NWI5MTUwNjA2MDg0MDE1MTg1ODMwMzYwNjA4NzAxNTI2MTBhNzk4MzgyNjEwOWZjNTY1YjkyNTA1MDgwNjA4MDg1MDE1MTE2NjA4MDg2MDE1MjUwODA5MTUwNTA5MjkxNTA1MDU2NWI4MjYwMDcwYjgxNTI2MDQwNjAyMDgyMDE1MjYwMDA2MTBhYWY2MDQwODMwMTg0NjEwYTI4NTY1Yjk0OTM1MDUwNTA1MDU2NWI2MzRlNDg3YjcxNjBlMDFiNjAwMDUyNjA0MTYwMDQ1MjYwMjQ2MDAwZmQ1YjYwNDA1MTYwNjA4MTAxNjdmZmZmZmZmZmZmZmZmZmZmODExMTgyODIxMDE3MTU2MTBhZjA1NzYxMGFmMDYxMGFiNzU2NWI2MDQwNTI5MDU2NWI2MDQwODA1MTkwODEwMTY3ZmZmZmZmZmZmZmZmZmZmZjgxMTE4MjgyMTAxNzE1NjEwYWYwNTc2MTBhZjA2MTBhYjc1NjViNjA0MDUxNjBhMDgxMDE2N2ZmZmZmZmZmZmZmZmZmZmY4MTExODI4MjEwMTcxNTYxMGFmMDU3NjEwYWYwNjEwYWI3NTY1YjYwNDA1MTYwMWY4MjAxNjAxZjE5MTY4MTAxNjdmZmZmZmZmZmZmZmZmZmZmODExMTgyODIxMDE3MTU2MTBiNjU1NzYxMGI2NTYxMGFiNzU2NWI2MDQwNTI5MTkwNTA1NjViNjNmZmZmZmZmZjgxMTY4MTE0NjEwOTE4NTc2MDAwODBmZDViNjAwMDgwODI4NDAzNjA4MDgxMTIxNTYxMGI5MzU3NjAwMDgwZmQ1YjgzMzU2MTBiOWU4MTYxMDkwMzU2NWI5MjUwNjA2MDYwMWYxOTgyMDExMjE1NjEwYmIyNTc2MDAwODBmZDViNTA2MTBiYmI2MTBhY2Q1NjViNjAyMDg0MDEzNTYxMGJjOTgxNjEwYjZkNTY1YjgxNTI2MDQwODQwMTM1NjEwYmQ5ODE2MTA5MDM1NjViNjAyMDgyMDE1MjYwNjA4NDAxMzU2MTBiZWM4MTYxMGI2ZDU2NWI2MDQwODIwMTUyOTE5NDkxOTM1MDkwOTE1MDUwNTY1YjgwMTUxNTgxMTQ2MTA5MTg1NzYwMDA4MGZkNWI2MDAwNjdmZmZmZmZmZmZmZmZmZmZmODIxMTE1NjEwYzI0NTc2MTBjMjQ2MTBhYjc1NjViNTA2MDFmMDE2MDFmMTkxNjYwMjAwMTkwNTY1YjYwMDA4MjYwMWY4MzAxMTI2MTBjNDM1NzYwMDA4MGZkNWI4MTM1NjEwYzU2NjEwYzUxODI2MTBjMGE1NjViNjEwYjNjNTY1YjgxODE1Mjg0NjAyMDgzODYwMTAxMTExNTYxMGM2YjU3NjAwMDgwZmQ1YjgxNjAyMDg1MDE2MDIwODMwMTM3NjAwMDkxODEwMTYwMjAwMTkxOTA5MTUyOTM5MjUwNTA1MDU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMGM5YjU3NjAwMDgwZmQ1YjYxMGNhNTgzMzU2MTA5MDM1NjViODIzNTkxNTA2N2ZmZmZmZmZmZmZmZmZmZmY4MDYwMjA4NTAxMzUxMTE1NjEwY2MzNTc2MDAwODBmZDViNjAyMDg0MDEzNTg0MDE4NTYwMWY4MjAxMTI2MTBjZDk1NzYwMDA4MGZkNWI4MTgxMzUxMTE1NjEwY2VhNTc2MTBjZWE2MTBhYjc1NjViNjEwY2ZhNjAyMDgyMzU2MDA1MWIwMTYxMGIzYzU2NWI4MTM1ODA4MjUyNjAyMDgwODMwMTkyOTE2MDA1MWI4NDAxMDE4ODgxMTExNTYxMGQxOTU3NjAwMDgwZmQ1YjYwMjA4NDAxNWI4MTgxMTAxNTYxMGUzYTU3ODU4MTM1MTExNTYxMGQzNDU3NjAwMDgwZmQ1YjgwMzU4NTAxNjAxZjE5NjA0MDgyOGQwMzgyMDExMjE1NjEwZDRkNTc2MDAwODBmZDViNjEwZDU1NjEwYWY2NTY1YjYwMjA4MzAxMzU4MTUyODg2MDQwODQwMTM1MTExNTYxMGQ2ZDU3NjAwMDgwZmQ1YjYwNDA4MzAxMzU4MzAxOTI1MDYwYTA4Mjg0OGYwMzAxMTIxNTYxMGQ4ODU3NjAwMDgwZmQ1YjYxMGQ5MDYxMGIxOTU2NWI5MTUwNjEwZDlmNjAyMDg0MDEzNTYxMGJmYzU2NWI2MDIwODMwMTM1ODI1MjYxMGRiMzYwNDA4NDAxMzU2MTA5MDM1NjViNjA0MDgzMDEzNTYwMjA4MzAxNTI4ODYwNjA4NDAxMzUxMTE1NjEwZGNlNTc2MDAwODBmZDViNjEwZGUxOGQ2MDIwNjA2MDg2MDEzNTg2MDEwMTYxMGMzMjU2NWI2MDQwODMwMTUyODg2MDgwODQwMTM1MTExNTYxMGRmNzU3NjAwMDgwZmQ1YjYxMGUwYThkNjAyMDYwODA4NjAxMzU4NjAxMDE2MTBjMzI1NjViNjA2MDgzMDE1MjYxMGUxYjYwYTA4NDAxNjEwOTFiNTY1YjYwODA4MzAxNTI2MDIwODE4MTAxOTI5MDkyNTI4NjUyOTQ4NTAxOTQ5MTkwOTEwMTkwNTA2MTBkMWU1NjViNTA5NTk4OTA5NzUwOTU1MDUwNTA1MDUwNTA1NjViNjAwMDgwNjA0MDgzODUwMzEyMTU2MTBlNWM1NzYwMDA4MGZkNWI4MjM1NjEwZTY3ODE2MTA5MDM1NjViOTE1MDYwMjA4MzAxMzU2MTBlNzc4MTYxMDkwMzU2NWI4MDkxNTA1MDkyNTA5MjkwNTA1NjViODI4MTUyNjA4MDgxMDE2MTA5OTk2MDIwODMwMTg0ODA1MTYzZmZmZmZmZmY5MDgxMTY4MzUyNjAyMDgwODMwMTUxNjAwMTYwMDE2MGEwMWIwMzE2OTA4NDAxNTI2MDQwOTE4MjAxNTExNjkxMDE1MjU2NWI2MDAwODI1MTYxMGVjZTgxODQ2MDIwODcwMTYxMDljYzU2NWI5MTkwOTEwMTkyOTE1MDUwNTY1YjgwNTE2MDAzODE5MDBiODExNDYxMDkyNjU3NjAwMDgwZmQ1YjYwMDA2MDIwODI4NDAzMTIxNTYxMGVmYzU3NjAwMDgwZmQ1YjYxMDk5OTgyNjEwZWQ4NTY1YjgwNTE2MTA5MjY4MTYxMDkwMzU2NWI2MDAwODI2MDFmODMwMTEyNjEwZjIxNTc2MDAwODBmZDViODE1MTYxMGYyZjYxMGM1MTgyNjEwYzBhNTY1YjgxODE1Mjg0NjAyMDgzODYwMTAxMTExNTYxMGY0NDU3NjAwMDgwZmQ1YjYxMGFhZjgyNjAyMDgzMDE2MDIwODcwMTYxMDljYzU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMGY2ODU3NjAwMDgwZmQ1YjYxMGY3MTgzNjEwZWQ4NTY1YjkxNTA2MDIwODMwMTUxNjdmZmZmZmZmZmZmZmZmZmZmODA4MjExMTU2MTBmOGU1NzYwMDA4MGZkNWI5MDg0MDE5MDYwYTA4Mjg3MDMxMjE1NjEwZmEyNTc2MDAwODBmZDViNjEwZmFhNjEwYjE5NTY1YjgyNTE2MTBmYjU4MTYxMGJmYzU2NWI4MTUyNjAyMDgzMDE1MTYxMGZjNTgxNjEwOTAzNTY1YjYwMjA4MjAxNTI2MDQwODMwMTUxODI4MTExMTU2MTBmZGM1NzYwMDA4MGZkNWI2MTBmZTg=", + "b64Record": "CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwPvmuWbIcnZDAM59t8fRc0u4qOSw09HR/5Mqnq7yYchSsg9ZWU5AHokbaHtdLRCMxGgwIrqqerQYQm8LssgEiDwoJCPKpnq0GEK4HEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA==" + }, + { + "b64Body": "Cg8KCQjyqZ6tBhC0BxICGAISAhgDGNPltjEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBmAgSAxiFCCKQCDg4ODI4NjAxNjEwZjEwNTY1YjYwNDA4MzAxNTI1MDYwNjA4MzAxNTE4MjgxMTExNTYxMTAwMDU3NjAwMDgwZmQ1YjYxMTAwYzg4ODI4NjAxNjEwZjEwNTY1YjYwNjA4MzAxNTI1MDYxMTAxZTYwODA4NDAxNjEwZjA1NTY1YjYwODA4MjAxNTI4MDkzNTA1MDUwNTA5MjUwOTI5MDUwNTY1YjYwMDE2MDAxNjBhMDFiMDM4MzE2ODE1MjYwODA4MTAxNjEwOTk5NjAyMDgzMDE4NDgwNTE2M2ZmZmZmZmZmOTA4MTE2ODM1MjYwMjA4MDgzMDE1MTYwMDE2MDAxNjBhMDFiMDMxNjkwODQwMTUyNjA0MDkxODIwMTUxMTY5MTAxNTI1NjViNjAwMDYwNDA4MDgzMDE2MDAxNjAwMTYwYTAxYjAzODYxNjg0NTI2MDIwODI4MTg2MDE1MjgxODY1MTgwODQ1MjYwNjA4NzAxOTE1MDYwNjA4MTYwMDUxYjg4MDEwMTkzNTA4Mjg4MDE2MDAwNWI4MjgxMTAxNTYxMTBlOTU3ODg4NjAzNjA1ZjE5MDE4NDUyODE1MTgwNTE4NzUyODUwMTUxODU4NzAxODg5MDUyNjExMGQ2ODg4ODAxODI2MTBhMjg1NjViOTY1MDUwOTI4NDAxOTI5MDg0MDE5MDYwMDEwMTYxMTBhYTU2NWI1MDkzOTk5ODUwNTA1MDUwNTA1MDUwNTA1MDU2NWI2MDAwODA4Mjg0MDM2MDgwODExMjE1NjExMTBjNTc2MDAwODBmZDViNjExMTE1ODQ2MTBlZDg1NjViOTI1MDYwNjA2MDFmMTk4MjAxMTIxNTYxMTEyOTU3NjAwMDgwZmQ1YjUwNjExMTMyNjEwYWNkNTY1YjYwMjA4NDAxNTE2MTExNDA4MTYxMGI2ZDU2NWI4MTUyNjA0MDg0MDE1MTYxMTE1MDgxNjEwOTAzNTY1YjYwMjA4MjAxNTI2MDYwODQwMTUxNjEwYmVjODE2MTBiNmQ1NjViNjAwMDgwNjA0MDgzODUwMzEyMTU2MTExNzY1NzYwMDA4MGZkNWI2MTExN2Y4MzYxMGVkODU2NWI5MTUwNjAyMDgzMDE1MTYxMGU3NzgxNjEwYmZjNTY1YjYwMDA2MDIwODI4NDAzMTIxNTYxMTFhMTU3NjAwMDgwZmQ1YjgxNTE4MDYwMDcwYjgxMTQ2MTA5OTk1NzYwMDA4MGZkZmVhMjY0Njk3MDY2NzM1ODIyMTIyMDkxZDY1YzY1ZWVhOTljOWFhMTYwOGYxODEyODA3NDMzOWQ0OWI0NmQ5ZjY2YWY5MTA4ZmEwYzRlN2Q2MmQyYTU2NDczNmY2YzYzNDMwMDA4MGIwMDMz", + "b64Record": "CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwt7+kUsBO+cezGR8GVv9TVko0nWCef8vCaahMwTlAeVxORTWUJ0NBRQUcS52cRKNCGgwIrqqerQYQw8zFlgMiDwoJCPKpnq0GELQHEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA==" + }, + { + "b64Body": "Cg8KCQjzqZ6tBhC2BxICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGIUIGiISIJV24PXr0rUWW64AcEHA9KPMi5vuc30KGKi/T4JYPMYzIJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==", + "b64Record": "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" + }, + { + "b64Body": "Cg8KCQjzqZ6tBhC3BxICGAISAhgDGIDC1y8iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIDExoRCgMYhAgSAxiDCBoDGIYIIAo=", + "b64Record": "CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwRU4YcBygVtxHvHqnZjhzFozT/P3VlfVh0GCpoaJ2O3GOk+MAVSzrF6dOu7G6i2UbGgwIr6qerQYQ26mwoAMiDwoJCPOpnq0GELcHEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA==" + }, + { + "b64Body": "ChEKCQj0qZ6tBhC7BxICGAIgAlo6CgIyAEoFCIDO2gNqFGxhenktY3JlYXRlZCBhY2NvdW50cAGSARSKelmGbsAGxheHUfsqt15mDa2pKg==", + "b64Record": "CgcIFhIDGIcIEjCcNfA0K1WEeu3QAiYnQy5fl99VyCALMMUvKDWHE2F3KhVBKK6tt/OFF13AW8dR59waDAiwqp6tBhDJlunEASIRCgkI9KmerQYQuwcSAhgCIAIqFGxhenktY3JlYXRlZCBhY2NvdW50UgA=" + }, + { + "b64Body": "Cg8KCQj0qZ6tBhC7BxICGAISAhgDGID+tYcBIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46kQEKAxiGCBCAkvQBIoQBE6jtUwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAMAAAAAAAAAAAAAAACKelmGbsAGxheHUfsqt15mDa2pKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF", + "b64Record": "CiUIFiIDGIYIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDFlQ8n7nE/hr9ATvCnogWWRmGpopKc4P1mji83uoVA3HiAxQMOpGoIHQmvsFzWkI4aDAiwqp6tBhDLlunEASIPCgkI9KmerQYQuwcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCAmKtsOqAFCgMYhggigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAIAAAAAAAAAAAAAAEIAAAAAAAAAAAAAAAAAgAAAAAAAQAAAAgAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAACAAAKICowwEykAMKAxiECBKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAgAAAAAAAAAAAAAAQgAAAAAAAAAAAAAAAACAAAAAAABAAAACAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAIAAAaIN3yUq0b4sibacKwaPw3jaqVK6fxY8ShFij1Wk31I7PvGiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAxogAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFUhgKCgoCGAIQ/6/W2AEKCgoCGGIQgLDW2AE=" + }, + { + "b64Body": "ChEKCQj0qZ6tBhC7BxICGAIgA3IuEiwKAxiECBIaChYiFIp6WYZuwAbGF4dR+yq3XmYNrakqEAoSCQoDGIMIEAkYAQ==", + "b64Record": "CgIIFhIw0SCAMvi7QFsYxKwn9Kzic2ZJDwHy/H4Y8Xnx4lv6zAPAbAtBFEaDWfEUOkRNMZj9GgwIsKqerQYQzJbpxAEiEQoJCPSpnq0GELsHEgIYAiADOrwBCgMY5wISIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWKICELFD14u4BYoQBFdrL6gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAMAAAAAAAAAAAAAAACKelmGbsAGxheHUfsqt15mDa2pKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFagMYhghSAFoXCgMYhAgSBwoDGIMIEAkSBwoDGIcIEApyCgoDGIQIEgMYhwh6DAiwqp6tBhDLlunEAQ==" + } + ] + }, + "htsTransferFromForNFTLazyCreate": { + "placeholderNum": 1032, + "encodedItems": [ + { + "b64Body": "Cg8KCQj5qZ6tBhDZBxICGAISAhgDGOy4wBgiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIHmXTc/qUaYjFFCkcr82pBcFAsOZuQhQRd3AuknyorK6EICglKWNHUoFCIDO2gNwBQ==", + "b64Record": "CiUIFhIDGIkIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjC92X6/TzQblkQZc1ybCUqkLOKlUWcalobisZg3H4iKlKz/Ry6seZR+W92/NNrzh70aCwi1qp6tBhCb4KZJIg8KCQj5qZ6tBhDZBxICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUhsKCwoCGAIQ/7+oypo6CgwKAxiJCBCAwKjKmjo=" + }, + { + "b64Body": "Cg8KCQj5qZ6tBhDbBxICGAISAhgDGIXD6+gCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAU8KCVRva2VuX05GVBIIR1pFRUhFQlUqAxiJCFIiEiCliIZCSaSH7mMPXEe+qtKzHDZh6/d5a0CuRSyY9Tv9A2oMCLX4+LAGEJjMubECiAEB", + "b64Record": "CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGIoIEjB/VvefLDBdPgutrM+S0ZTcvk0mPLcUAq2oAZtGKe+OiEo6f52hHSDuKV5mtX6i+qcaDAi1qp6tBhC7odrKAiIPCgkI+amerQYQ2wcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAcgoKAxiKCBIDGIkI" + }, + { + "b64Body": "Cg8KCQj6qZ6tBhDdBxICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjgESCwi2+PiwBhCwyoRIGm0KIhIgLS+AkT5nkn8CFSOkJ3aPOk6MqeH1LjI79Zcvc4RSJwgKIzohAxiIqpU5IWVDjrzH7lWxM3x5pYGK+1ymQSFC5YJFWJw+CiISIKMTjUyRtQ8i09Bj4k/9YsdcgKrP2lX6bfy+IFxqNWS4IgxIZWxsbyBXb3JsZCEqADIA", + "b64Record": "CiUIFhoDGIsIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBh5ffeyke1hDEmxr/N356aE3SGC6z24C/aPUl5MHV3G2035234zE2vltIo0OHUJzkaCwi2qp6tBhDLq8FSIg8KCQj6qZ6tBhDdBxICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgA=" + }, + { + "b64Body": "Cg8KCQj6qZ6tBhDhBxICGAISAhgDGIydjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxiLCCKAIDYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMTFlODgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDBhOTU3NjAwMDM1NjBlMDFjODA2MzZmYzNjYmFmMTE2MTAwNzE1NzgwNjM2ZmMzY2JhZjE0NjEwMTMwNTc4MDYzN2M0MWFkMmMxNDYxMDE1NjU3ODA2MzhmOGQ3Zjk5MTQ2MTAxNjk1NzgwNjNhZjk5YzYzMzE0NjEwMTdjNTc4MDYzZDYxNGNkYjgxNDYxMDE4ZjU3ODA2M2YyYzMxZmY0MTQ2MTAxYjA1NzYwMDA4MGZkNWI4MDYzMTNhOGVkNTMxNDYxMDBhZTU3ODA2MzNiM2JmZjBmMTQ2MTAwYzM1NzgwNjMzYzRkZDMyZTE0NjEwMGU5NTc4MDYzNTA4MWRlZDMxNDYxMDEwYTU3ODA2MzU5M2Q2ZTgyMTQ2MTAxMWQ1NzViNjAwMDgwZmQ1YjYxMDBjMTYxMDBiYzM2NjAwNDYxMDkyYjU2NWI2MTAxZGQ1NjViMDA1YjYxMDBkNjYxMDBkMTM2NjAwNDYxMDk3YzU2NWI2MTAyNDM1NjViNjA0MDUxOTA4MTUyNjAyMDAxNWI2MDQwNTE4MDkxMDM5MGYzNWI2MTAwZmM2MTAwZjczNjYwMDQ2MTA5YTA1NjViNjEwMzFkNTY1YjYwNDA1MTYxMDBlMDkyOTE5MDYxMGE5MzU2NWI2MTAwYzE2MTAxMTgzNjYwMDQ2MTA5MmI1NjViNjEwNDA0NTY1YjYxMDBkNjYxMDEyYjM2NjAwNDYxMGI3ZjU2NWI2MTA0MTI1NjViNjEwMTQzNjEwMTNlMzY2MDA0NjEwYzg4NTY1YjYxMDRlZjU2NWI2MDQwNTE2MDA3OTE5MDkxMGI4MTUyNjAyMDAxNjEwMGUwNTY1YjYxMDBkNjYxMDE2NDM2NjAwNDYxMDk3YzU2NWI2MTA1MWI1NjViNjEwMTQzNjEwMTc3MzY2MDA0NjEwZTQ5NTY1YjYxMDU0OTU2NWI2MTAxNDM2MTAxOGEzNjYwMDQ2MTBlNDk1NjViNjEwNTdmNTY1YjYxMDFhMjYxMDE5ZDM2NjAwNDYxMDk3YzU2NWI2MTA1YjU1NjViNjA0MDUxNjEwMGUwOTI5MTkwNjEwZTgyNTY1YjYxMDFjMzYxMDFiZTM2NjAwNDYxMGU0OTU2NWI2MTA2YmY1NjViNjA0MDgwNTE2MDA3OTM5MDkzMGI4MzUyOTAxNTE1NjAyMDgzMDE1MjAxNjEwMGUwNTY1YjYwMDA2MTAxZWI4NTg1ODU4NTYxMDc4YTU2NWI2MDA3MGI5MDUwNjAxNjgxMTQ2MTAyM2M1NzYwNDA1MTYyNDYxYmNkNjBlNTFiODE1MjYwMjA2MDA0ODIwMTUyNjAxNTYwMjQ4MjAxNTI3NDU0NzI2MTZlNzM2NjY1NzIyMDY2NzI2ZjZkMjA2NjYxNjk2YzY1NjQyMTYwNTgxYjYwNDQ4MjAxNTI2MDY0MDE2MDQwNTE4MDkxMDM5MGZkNWI1MDUwNTA1MDUwNTY1YjYwNDA1MTYwMDE2MDAxNjBhMDFiMDM4MjE2NjAyNDgyMDE1MjYwMDA5MDgxOTA4MTkwNjEwMTY3OTA2MzNiM2JmZjBmNjBlMDFiOTA2MDQ0MDE1YjYwNDA4MDUxNjAxZjE5ODE4NDAzMDE4MTUyOTE4MTUyNjAyMDgyMDE4MDUxNjAwMTYwMDE2MGUwMWIwMzE2NjAwMTYwMDE2MGUwMWIwMzE5OTA5NDE2OTM5MDkzMTc5MDkyNTI5MDUxNjEwMmFiOTE5MDYxMGViYzU2NWI2MDAwNjA0MDUxODA4MzAzODE2MDAwODY1YWYxOTE1MDUwM2Q4MDYwMDA4MTE0NjEwMmU4NTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjEwMmVkNTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTAyZmU1NzYwMTU2MTAzMTI1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTAzMTI5MTkwNjEwZWVhNTY1YjYwMDMwYjk0OTM1MDUwNTA1MDU2NWI2MDAwNjEwMzI3NjEwOGMwNTY1YjYwNDA4MDUxNjAwMTYwMDE2MGEwMWIwMzg2MTY2MDI0ODIwMTUyNjA0NDgwODIwMTg2OTA1MjgyNTE4MDgzMDM5MDkxMDE4MTUyNjA2NDkwOTEwMTgyNTI2MDIwODEwMTgwNTE2MDAxNjAwMTYwZTAxYjAzMTY2MzFlMjZlOTk3NjBlMTFiMTc5MDUyOTA1MTYwMDA5MTgyOTE2MTAxNjc5MTYxMDM4MTkxNjEwZWJjNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NjVhZjE5MTUwNTAzZDgwNjAwMDgxMTQ2MTAzYmU1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTAzYzM1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA2MTAzZDA2MTA4YzA1NjViODI2MTAzZGQ1NzYwMTU4MTYxMDNmMTU2NWI4MTgwNjAyMDAxOTA1MTgxMDE5MDYxMDNmMTkxOTA2MTBmNTU1NjViNjAwMzkxOTA5MTBiOTg5MDk3NTA5NTUwNTA1MDUwNTA1MDU2NWI2MDAwNjEwMWViODU4NTg1ODU2MTA4N2I1NjViNjAwMDgwNjAwMDYxMDE2NzYwMDE2MDAxNjBhMDFiMDMxNjYzNTkzZDZlODI2MGUwMWI4Njg2NjA0MDUxNjAyNDAxNjEwNDNlOTI5MTkwNjExMDMwNTY1YjYwNDA4MDUxNjAxZjE5ODE4NDAzMDE4MTUyOTE4MTUyNjAyMDgyMDE4MDUxNjAwMTYwMDE2MGUwMWIwMzE2NjAwMTYwMDE2MGUwMWIwMzE5OTA5NDE2OTM5MDkzMTc5MDkyNTI5MDUxNjEwNDdjOTE5MDYxMGViYzU2NWI2MDAwNjA0MDUxODA4MzAzODE2MDAwODY1YWYxOTE1MDUwM2Q4MDYwMDA4MTE0NjEwNGI5NTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjEwNGJlNTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTA0Y2Y1NzYwMTU2MTA0ZTM1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTA0ZTM5MTkwNjEwZWVhNTY1YjYwMDMwYjk1OTQ1MDUwNTA1MDUwNTY1YjYwMDA4MDYwMDA2MTAxNjc2MDAxNjAwMTYwYTAxYjAzMTY2MzZmYzNjYmFmNjBlMDFiODY4NjYwNDA1MTYwMjQwMTYxMDQzZTkyOTE5MDYxMTA3MzU2NWI2MDQwNTE2MDAxNjAwMTYwYTAxYjAzODIxNjYwMjQ4MjAxNTI2MDAwOTA4MTkwODE5MDYxMDE2NzkwNjMxZjEwNmI0YjYwZTIxYjkwNjA0NDAxNjEwMjZkNTY1YjYwNDA1MTYwMDE2MDAxNjBhMDFiMDM4MzgxMTY2MDI0ODMwMTUyODIxNjYwNDQ4MjAxNTI2MDAwOTA4MTkwODE5MDYxMDE2NzkwNjM4ZjhkN2Y5OTYwZTAxYjkwNjA2NDAxNjEwNDNlNTY1YjYwNDA1MTYwMDE2MDAxNjBhMDFiMDM4MzgxMTY2MDI0ODMwMTUyODIxNjYwNDQ4MjAxNTI2MDAwOTA4MTkwODE5MDYxMDE2NzkwNjNhZjk5YzYzMzYwZTAxYjkwNjA2NDAxNjEwNDNlNTY1YjYwNDA4MDUxNjA2MDgxMDE4MjUyNjAwMDgwODI1MjYwMjA4MDgzMDE4MjkwNTI4Mjg0MDE4MjkwNTI4MzUxNjAwMTYwMDE2MGEwMWIwMzg2MTY2MDI0ODA4MzAxOTE5MDkxNTI4NTUxODA4MzAzOTA5MTAxODE1MjYwNDQ5MDkxMDE4NTUyOTA4MTAxODA1MTYwMDE2MDAxNjBlMDFiMDMxNjYzMWFjMjk5Yjc2MGUzMWIxNzkwNTI5MjUxOTA5MjgzOTE4MjkxNjEwMTY3OTE2MTA2Mjc5MTkwNjEwZWJjNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NjVhZjE5MTUwNTAzZDgwNjAwMDgxMTQ2MTA2NjQ1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTA2Njk1NjViNjA2MDkxNTA1YjUwNjA0MDgwNTE2MDYwODEwMTgyNTI2MDAwODA4MjUyNjAyMDgyMDE4MTkwNTI5MTgxMDE5MTkwOTE1MjkxOTM1MDkxNTA4MjYxMDY5OTU3NjAxNTgxNjEwNmFkNTY1YjgxODA2MDIwMDE5MDUxODEwMTkwNjEwNmFkOTE5MDYxMTBmODU2NWI2MDAzOTE5MDkxMGI5NzkwOTY1MDk0NTA1MDUwNTA1MDU2NWI2MDQwODA1MTYwMDE2MDAxNjBhMDFiMDM4NDgxMTY2MDI0ODMwMTUyODMxNjYwNDQ4MDgzMDE5MTkwOTE1MjgyNTE4MDgzMDM5MDkxMDE4MTUyNjA2NDkwOTEwMTgyNTI2MDIwODEwMTgwNTE2MDAxNjAwMTYwZTAxYjAzMTY2MzNjYjBjN2ZkNjBlMjFiMTc5MDUyOTA1MTYwMDA5MTgyOTE4MjkxODI5MTYxMDE2NzkxNjEwNzIxOTE2MTBlYmM1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMDc1ZTU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMDc2MzU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEwNzc2NTc2MDE1NjAwMDYxMDZhZDU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMDZhZDkxOTA2MTExNjM1NjViNjA0MDUxNjAwMTYwMDE2MGEwMWIwMzg1ODExNjYwMjQ4MzAxNTI4NDgxMTY2MDQ0ODMwMTUyODMxNjYwNjQ4MjAxNTI2MDg0ODEwMTgyOTA1MjYwMDA5MDgxOTA4MTkwNjEwMTY3OTA2MzBhZWQ2NWY1NjBlMTFiOTA2MGE0MDE1YjYwNDA4MDUxNjAxZjE5ODE4NDAzMDE4MTUyOTE4MTUyNjAyMDgyMDE=", + "b64Record": "CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwxvn46njRrMAST9qzapSinq2uL/UngNmIIv/8K+8VU6UiRz1zCIxFQX0PZYa+AOD+GgwItqqerQYQw8ygzwIiDwoJCPqpnq0GEOEHEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA==" + }, + { + "b64Body": "Cg8KCQj7qZ6tBhDnBxICGAISAhgDGPjR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxiLCCKAIDgwNTE2MDAxNjAwMTYwZTAxYjAzMTY2MDAxNjAwMTYwZTAxYjAzMTk5MDk0MTY5MzkwOTMxNzkwOTI1MjkwNTE2MTA4MDk5MTkwNjEwZWJjNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NjVhZjE5MTUwNTAzZDgwNjAwMDgxMTQ2MTA4NDY1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTA4NGI1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA4MTYxMDg1YzU3NjAxNTYxMDg3MDU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMDg3MDkxOTA2MTExOGY1NjViOTc5NjUwNTA1MDUwNTA1MDUwNTY1YjYwNDA1MTYwMDE2MDAxNjBhMDFiMDM4NTgxMTY2MDI0ODMwMTUyODQ4MTE2NjA0NDgzMDE1MjgzMTY2MDY0ODIwMTUyNjA4NDgxMDE4MjkwNTI2MDAwOTA4MTkwODE5MDYxMDE2NzkwNjM5YjIzZDNkOTYwZTAxYjkwNjBhNDAxNjEwN2NiNTY1YjYwNDA1MTgwNjBhMDAxNjA0MDUyODA2MDAwMTUxNTgxNTI2MDIwMDE2MDAwNjAwMTYwMDE2MGEwMWIwMzE2ODE1MjYwMjAwMTYwNjA4MTUyNjAyMDAxNjA2MDgxNTI2MDIwMDE2MDAwNjAwMTYwMDE2MGEwMWIwMzE2ODE1MjUwOTA1NjViNjAwMTYwMDE2MGEwMWIwMzgxMTY4MTE0NjEwOTE4NTc2MDAwODBmZDViNTA1NjViODAzNTYxMDkyNjgxNjEwOTAzNTY1YjkxOTA1MDU2NWI2MDAwODA2MDAwODA2MDgwODU4NzAzMTIxNTYxMDk0MTU3NjAwMDgwZmQ1Yjg0MzU2MTA5NGM4MTYxMDkwMzU2NWI5MzUwNjAyMDg1MDEzNTYxMDk1YzgxNjEwOTAzNTY1YjkyNTA2MDQwODUwMTM1NjEwOTZjODE2MTA5MDM1NjViOTM5NjkyOTU1MDkyOTM2MDYwMDEzNTkyNTA1MDU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTA5OGU1NzYwMDA4MGZkNWI4MTM1NjEwOTk5ODE2MTA5MDM1NjViOTM5MjUwNTA1MDU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMDliMzU3NjAwMDgwZmQ1YjgyMzU2MTA5YmU4MTYxMDkwMzU2NWI5NDYwMjA5MzkwOTMwMTM1OTM1MDUwNTA1NjViNjAwMDViODM4MTEwMTU2MTA5ZTc1NzgxODEwMTUxODM4MjAxNTI2MDIwMDE2MTA5Y2Y1NjViODM4MTExMTU2MTA5ZjY1NzYwMDA4NDg0MDE1MjViNTA1MDUwNTA1NjViNjAwMDgxNTE4MDg0NTI2MTBhMTQ4MTYwMjA4NjAxNjAyMDg2MDE2MTA5Y2M1NjViNjAxZjAxNjAxZjE5MTY5MjkwOTIwMTYwMjAwMTkyOTE1MDUwNTY1YjgwNTExNTE1ODI1MjYwMDA2MDIwODIwMTUxNjAwMTYwMDE2MGEwMWIwMzgwODIxNjYwMjA4NjAxNTI2MDQwODQwMTUxOTE1MDYwYTA2MDQwODYwMTUyNjEwYTYwNjBhMDg2MDE4MzYxMDlmYzU2NWI5MTUwNjA2MDg0MDE1MTg1ODMwMzYwNjA4NzAxNTI2MTBhNzk4MzgyNjEwOWZjNTY1YjkyNTA1MDgwNjA4MDg1MDE1MTE2NjA4MDg2MDE1MjUwODA5MTUwNTA5MjkxNTA1MDU2NWI4MjYwMDcwYjgxNTI2MDQwNjAyMDgyMDE1MjYwMDA2MTBhYWY2MDQwODMwMTg0NjEwYTI4NTY1Yjk0OTM1MDUwNTA1MDU2NWI2MzRlNDg3YjcxNjBlMDFiNjAwMDUyNjA0MTYwMDQ1MjYwMjQ2MDAwZmQ1YjYwNDA1MTYwNjA4MTAxNjdmZmZmZmZmZmZmZmZmZmZmODExMTgyODIxMDE3MTU2MTBhZjA1NzYxMGFmMDYxMGFiNzU2NWI2MDQwNTI5MDU2NWI2MDQwODA1MTkwODEwMTY3ZmZmZmZmZmZmZmZmZmZmZjgxMTE4MjgyMTAxNzE1NjEwYWYwNTc2MTBhZjA2MTBhYjc1NjViNjA0MDUxNjBhMDgxMDE2N2ZmZmZmZmZmZmZmZmZmZmY4MTExODI4MjEwMTcxNTYxMGFmMDU3NjEwYWYwNjEwYWI3NTY1YjYwNDA1MTYwMWY4MjAxNjAxZjE5MTY4MTAxNjdmZmZmZmZmZmZmZmZmZmZmODExMTgyODIxMDE3MTU2MTBiNjU1NzYxMGI2NTYxMGFiNzU2NWI2MDQwNTI5MTkwNTA1NjViNjNmZmZmZmZmZjgxMTY4MTE0NjEwOTE4NTc2MDAwODBmZDViNjAwMDgwODI4NDAzNjA4MDgxMTIxNTYxMGI5MzU3NjAwMDgwZmQ1YjgzMzU2MTBiOWU4MTYxMDkwMzU2NWI5MjUwNjA2MDYwMWYxOTgyMDExMjE1NjEwYmIyNTc2MDAwODBmZDViNTA2MTBiYmI2MTBhY2Q1NjViNjAyMDg0MDEzNTYxMGJjOTgxNjEwYjZkNTY1YjgxNTI2MDQwODQwMTM1NjEwYmQ5ODE2MTA5MDM1NjViNjAyMDgyMDE1MjYwNjA4NDAxMzU2MTBiZWM4MTYxMGI2ZDU2NWI2MDQwODIwMTUyOTE5NDkxOTM1MDkwOTE1MDUwNTY1YjgwMTUxNTgxMTQ2MTA5MTg1NzYwMDA4MGZkNWI2MDAwNjdmZmZmZmZmZmZmZmZmZmZmODIxMTE1NjEwYzI0NTc2MTBjMjQ2MTBhYjc1NjViNTA2MDFmMDE2MDFmMTkxNjYwMjAwMTkwNTY1YjYwMDA4MjYwMWY4MzAxMTI2MTBjNDM1NzYwMDA4MGZkNWI4MTM1NjEwYzU2NjEwYzUxODI2MTBjMGE1NjViNjEwYjNjNTY1YjgxODE1Mjg0NjAyMDgzODYwMTAxMTExNTYxMGM2YjU3NjAwMDgwZmQ1YjgxNjAyMDg1MDE2MDIwODMwMTM3NjAwMDkxODEwMTYwMjAwMTkxOTA5MTUyOTM5MjUwNTA1MDU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMGM5YjU3NjAwMDgwZmQ1YjYxMGNhNTgzMzU2MTA5MDM1NjViODIzNTkxNTA2N2ZmZmZmZmZmZmZmZmZmZmY4MDYwMjA4NTAxMzUxMTE1NjEwY2MzNTc2MDAwODBmZDViNjAyMDg0MDEzNTg0MDE4NTYwMWY4MjAxMTI2MTBjZDk1NzYwMDA4MGZkNWI4MTgxMzUxMTE1NjEwY2VhNTc2MTBjZWE2MTBhYjc1NjViNjEwY2ZhNjAyMDgyMzU2MDA1MWIwMTYxMGIzYzU2NWI4MTM1ODA4MjUyNjAyMDgwODMwMTkyOTE2MDA1MWI4NDAxMDE4ODgxMTExNTYxMGQxOTU3NjAwMDgwZmQ1YjYwMjA4NDAxNWI4MTgxMTAxNTYxMGUzYTU3ODU4MTM1MTExNTYxMGQzNDU3NjAwMDgwZmQ1YjgwMzU4NTAxNjAxZjE5NjA0MDgyOGQwMzgyMDExMjE1NjEwZDRkNTc2MDAwODBmZDViNjEwZDU1NjEwYWY2NTY1YjYwMjA4MzAxMzU4MTUyODg2MDQwODQwMTM1MTExNTYxMGQ2ZDU3NjAwMDgwZmQ1YjYwNDA4MzAxMzU4MzAxOTI1MDYwYTA4Mjg0OGYwMzAxMTIxNTYxMGQ4ODU3NjAwMDgwZmQ1YjYxMGQ5MDYxMGIxOTU2NWI5MTUwNjEwZDlmNjAyMDg0MDEzNTYxMGJmYzU2NWI2MDIwODMwMTM1ODI1MjYxMGRiMzYwNDA4NDAxMzU2MTA5MDM1NjViNjA0MDgzMDEzNTYwMjA4MzAxNTI4ODYwNjA4NDAxMzUxMTE1NjEwZGNlNTc2MDAwODBmZDViNjEwZGUxOGQ2MDIwNjA2MDg2MDEzNTg2MDEwMTYxMGMzMjU2NWI2MDQwODMwMTUyODg2MDgwODQwMTM1MTExNTYxMGRmNzU3NjAwMDgwZmQ1YjYxMGUwYThkNjAyMDYwODA4NjAxMzU4NjAxMDE2MTBjMzI1NjViNjA2MDgzMDE1MjYxMGUxYjYwYTA4NDAxNjEwOTFiNTY1YjYwODA4MzAxNTI2MDIwODE4MTAxOTI5MDkyNTI4NjUyOTQ4NTAxOTQ5MTkwOTEwMTkwNTA2MTBkMWU1NjViNTA5NTk4OTA5NzUwOTU1MDUwNTA1MDUwNTA1NjViNjAwMDgwNjA0MDgzODUwMzEyMTU2MTBlNWM1NzYwMDA4MGZkNWI4MjM1NjEwZTY3ODE2MTA5MDM1NjViOTE1MDYwMjA4MzAxMzU2MTBlNzc4MTYxMDkwMzU2NWI4MDkxNTA1MDkyNTA5MjkwNTA1NjViODI4MTUyNjA4MDgxMDE2MTA5OTk2MDIwODMwMTg0ODA1MTYzZmZmZmZmZmY5MDgxMTY4MzUyNjAyMDgwODMwMTUxNjAwMTYwMDE2MGEwMWIwMzE2OTA4NDAxNTI2MDQwOTE4MjAxNTExNjkxMDE1MjU2NWI2MDAwODI1MTYxMGVjZTgxODQ2MDIwODcwMTYxMDljYzU2NWI5MTkwOTEwMTkyOTE1MDUwNTY1YjgwNTE2MDAzODE5MDBiODExNDYxMDkyNjU3NjAwMDgwZmQ1YjYwMDA2MDIwODI4NDAzMTIxNTYxMGVmYzU3NjAwMDgwZmQ1YjYxMDk5OTgyNjEwZWQ4NTY1YjgwNTE2MTA5MjY4MTYxMDkwMzU2NWI2MDAwODI2MDFmODMwMTEyNjEwZjIxNTc2MDAwODBmZDViODE1MTYxMGYyZjYxMGM1MTgyNjEwYzBhNTY1YjgxODE1Mjg0NjAyMDgzODYwMTAxMTExNTYxMGY0NDU3NjAwMDgwZmQ1YjYxMGFhZjgyNjAyMDgzMDE2MDIwODcwMTYxMDljYzU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMGY2ODU3NjAwMDgwZmQ1YjYxMGY3MTgzNjEwZWQ4NTY1YjkxNTA2MDIwODMwMTUxNjdmZmZmZmZmZmZmZmZmZmZmODA4MjExMTU2MTBmOGU1NzYwMDA4MGZkNWI5MDg0MDE5MDYwYTA4Mjg3MDMxMjE1NjEwZmEyNTc2MDAwODBmZDViNjEwZmFhNjEwYjE5NTY1YjgyNTE2MTBmYjU4MTYxMGJmYzU2NWI4MTUyNjAyMDgzMDE1MTYxMGZjNTgxNjEwOTAzNTY1YjYwMjA4MjAxNTI2MDQwODMwMTUxODI4MTExMTU2MTBmZGM1NzYwMDA4MGZkNWI2MTBmZTg=", + "b64Record": "CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwGFD6Dyf0CllyWXHp4wmbA9K4i4K37OKprFJO8GLGQwvdlAN3/IBJnBDYf9IQtXqYGgsIt6qerQYQw9XAcyIPCgkI+6merQYQ5wcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA" + }, + { + "b64Body": "Cg8KCQj7qZ6tBhDtBxICGAISAhgDGNPltjEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBmAgSAxiLCCKQCDg4ODI4NjAxNjEwZjEwNTY1YjYwNDA4MzAxNTI1MDYwNjA4MzAxNTE4MjgxMTExNTYxMTAwMDU3NjAwMDgwZmQ1YjYxMTAwYzg4ODI4NjAxNjEwZjEwNTY1YjYwNjA4MzAxNTI1MDYxMTAxZTYwODA4NDAxNjEwZjA1NTY1YjYwODA4MjAxNTI4MDkzNTA1MDUwNTA5MjUwOTI5MDUwNTY1YjYwMDE2MDAxNjBhMDFiMDM4MzE2ODE1MjYwODA4MTAxNjEwOTk5NjAyMDgzMDE4NDgwNTE2M2ZmZmZmZmZmOTA4MTE2ODM1MjYwMjA4MDgzMDE1MTYwMDE2MDAxNjBhMDFiMDMxNjkwODQwMTUyNjA0MDkxODIwMTUxMTY5MTAxNTI1NjViNjAwMDYwNDA4MDgzMDE2MDAxNjAwMTYwYTAxYjAzODYxNjg0NTI2MDIwODI4MTg2MDE1MjgxODY1MTgwODQ1MjYwNjA4NzAxOTE1MDYwNjA4MTYwMDUxYjg4MDEwMTkzNTA4Mjg4MDE2MDAwNWI4MjgxMTAxNTYxMTBlOTU3ODg4NjAzNjA1ZjE5MDE4NDUyODE1MTgwNTE4NzUyODUwMTUxODU4NzAxODg5MDUyNjExMGQ2ODg4ODAxODI2MTBhMjg1NjViOTY1MDUwOTI4NDAxOTI5MDg0MDE5MDYwMDEwMTYxMTBhYTU2NWI1MDkzOTk5ODUwNTA1MDUwNTA1MDUwNTA1MDU2NWI2MDAwODA4Mjg0MDM2MDgwODExMjE1NjExMTBjNTc2MDAwODBmZDViNjExMTE1ODQ2MTBlZDg1NjViOTI1MDYwNjA2MDFmMTk4MjAxMTIxNTYxMTEyOTU3NjAwMDgwZmQ1YjUwNjExMTMyNjEwYWNkNTY1YjYwMjA4NDAxNTE2MTExNDA4MTYxMGI2ZDU2NWI4MTUyNjA0MDg0MDE1MTYxMTE1MDgxNjEwOTAzNTY1YjYwMjA4MjAxNTI2MDYwODQwMTUxNjEwYmVjODE2MTBiNmQ1NjViNjAwMDgwNjA0MDgzODUwMzEyMTU2MTExNzY1NzYwMDA4MGZkNWI2MTExN2Y4MzYxMGVkODU2NWI5MTUwNjAyMDgzMDE1MTYxMGU3NzgxNjEwYmZjNTY1YjYwMDA2MDIwODI4NDAzMTIxNTYxMTFhMTU3NjAwMDgwZmQ1YjgxNTE4MDYwMDcwYjgxMTQ2MTA5OTk1NzYwMDA4MGZkZmVhMjY0Njk3MDY2NzM1ODIyMTIyMDkxZDY1YzY1ZWVhOTljOWFhMTYwOGYxODEyODA3NDMzOWQ0OWI0NmQ5ZjY2YWY5MTA4ZmEwYzRlN2Q2MmQyYTU2NDczNmY2YzYzNDMwMDA4MGIwMDMz", + "b64Record": "CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwCH3EDv9Z03LPSCogHZPkJsyUCHj3VpbT2/6YZVCSiXxITLKB3RyIIMPLH69omudDGgwIt6qerQYQ25vm2AIiDwoJCPupnq0GEO0HEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA==" + }, + { + "b64Body": "Cg8KCQj8qZ6tBhDvBxICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGIsIGiISINYrkkqDFaXri4L29gQxczniuWL0qgutcP1ARNETdZIDIJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==", + "b64Record": "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YQnPVluDgREVYQn2V2AAhIQBUltQUFBQVltgAIFRgIRSYQoUgWAghgFgIIYBYQnMVltgHwFgHxkWkpCSAWAgAZKRUFBWW4BRFRWCUmAAYCCCAVFgAWABYKAbA4CCFmAghgFSYECEAVGRUGCgYECGAVJhCmBgoIYBg2EJ/FZbkVBgYIQBUYWDA2BghwFSYQp5g4JhCfxWW5JQUIBggIUBURZggIYBUlCAkVBQkpFQUFZbgmAHC4FSYEBgIIIBUmAAYQqvYECDAYRhCihWW5STUFBQUFZbY05Ie3Fg4BtgAFJgQWAEUmAkYAD9W2BAUWBggQFn//////////+BEYKCEBcVYQrwV2EK8GEKt1ZbYEBSkFZbYECAUZCBAWf//////////4ERgoIQFxVhCvBXYQrwYQq3VltgQFFgoIEBZ///////////gRGCghAXFWEK8FdhCvBhCrdWW2BAUWAfggFgHxkWgQFn//////////+BEYKCEBcVYQtlV2ELZWEKt1ZbYEBSkZBQVltj/////4EWgRRhCRhXYACA/VtgAICChANggIESFWELk1dgAID9W4M1YQuegWEJA1ZbklBgYGAfGYIBEhVhC7JXYACA/VtQYQu7YQrNVltgIIQBNWELyYFhC21WW4FSYECEATVhC9mBYQkDVltgIIIBUmBghAE1YQvsgWELbVZbYECCAVKRlJGTUJCRUFBWW4AVFYEUYQkYV2AAgP1bYABn//////////+CERVhDCRXYQwkYQq3VltQYB8BYB8ZFmAgAZBWW2AAgmAfgwESYQxDV2AAgP1bgTVhDFZhDFGCYQwKVlthCzxWW4GBUoRgIIOGAQERFWEMa1dgAID9W4FgIIUBYCCDATdgAJGBAWAgAZGQkVKTklBQUFZbYACAYECDhQMSFWEMm1dgAID9W2EMpYM1YQkDVluCNZFQZ///////////gGAghQE1ERVhDMNXYACA/VtgIIQBNYQBhWAfggESYQzZV2AAgP1bgYE1ERVhDOpXYQzqYQq3VlthDPpgIII1YAUbAWELPFZbgTWAglJgIICDAZKRYAUbhAEBiIERFWENGVdgAID9W2AghAFbgYEQFWEOOleFgTURFWENNFdgAID9W4A1hQFgHxlgQIKNA4IBEhVhDU1XYACA/VthDVVhCvZWW2AggwE1gVKIYECEATURFWENbVdgAID9W2BAgwE1gwGSUGCggoSPAwESFWENiFdgAID9W2ENkGELGVZbkVBhDZ9gIIQBNWEL/FZbYCCDATWCUmENs2BAhAE1YQkDVltgQIMBNWAggwFSiGBghAE1ERVhDc5XYACA/VthDeGNYCBgYIYBNYYBAWEMMlZbYECDAVKIYICEATURFWEN91dgAID9W2EOCo1gIGCAhgE1hgEBYQwyVltgYIMBUmEOG2CghAFhCRtWW2CAgwFSYCCBgQGSkJJShlKUhQGUkZCRAZBQYQ0eVltQlZiQl1CVUFBQUFBQVltgAIBgQIOFAxIVYQ5cV2AAgP1bgjVhDmeBYQkDVluRUGAggwE1YQ53gWEJA1ZbgJFQUJJQkpBQVluCgVJggIEBYQmZYCCDAYSAUWP/////kIEWg1JgIICDAVFgAWABYKAbAxaQhAFSYECRggFRFpEBUlZbYACCUWEOzoGEYCCHAWEJzFZbkZCRAZKRUFBWW4BRYAOBkAuBFGEJJldgAID9W2AAYCCChAMSFWEO/FdgAID9W2EJmYJhDthWW4BRYQkmgWEJA1ZbYACCYB+DARJhDyFXYACA/VuBUWEPL2EMUYJhDApWW4GBUoRgIIOGAQERFWEPRFdgAID9W2EKr4JgIIMBYCCHAWEJzFZbYACAYECDhQMSFWEPaFdgAID9W2EPcYNhDthWW5FQYCCDAVFn//////////+AghEVYQ+OV2AAgP1bkIQBkGCggocDEhVhD6JXYACA/VthD6phCxlWW4JRYQ+1gWEL/FZbgVJgIIMBUWEPxYFhCQNWW2AgggFSYECDAVGCgREVYQ/cV2AAgP1bYQ/oiIKGAWEPEFZbYECDAVJQYGCDAVGCgREVYRAAV2AAgP1bYRAMiIKGAWEPEFZbYGCDAVJQYRAeYICEAWEPBVZbYICCAVKAk1BQUFCSUJKQUFZbYAFgAWCgGwODFoFSYICBAWEJmWAggwGEgFFj/////5CBFoNSYCCAgwFRYAFgAWCgGwMWkIQBUmBAkYIBURaRAVJWW2AAYECAgwFgAWABYKAbA4YWhFJgIIKBhgFSgYZRgIRSYGCHAZFQYGCBYAUbiAEBk1CCiAFgAFuCgRAVYRDpV4iGA2BfGQGEUoFRgFGHUoUBUYWHAYiQUmEQ1oiIAYJhCihWW5ZQUJKEAZKQhAGQYAEBYRCqVltQk5mYUFBQUFBQUFBQVltgAICChANggIESFWERDFdgAID9W2ERFYRhDthWW5JQYGBgHxmCARIVYREpV2AAgP1bUGERMmEKzVZbYCCEAVFhEUCBYQttVluBUmBAhAFRYRFQgWEJA1ZbYCCCAVJgYIQBUWEL7IFhC21WW2AAgGBAg4UDEhVhEXZXYACA/VthEX+DYQ7YVluRUGAggwFRYQ53gWEL/FZbYABgIIKEAxIVYRGhV2AAgP1bgVGAYAcLgRRhCZlXYACA/f6iZGlwZnNYIhIgkdZcZe6pnJqhYI8YEoB0M51JtG2fZq+RCPoMTn1i0qVkc29sY0MACAsAMyKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAowJoMOgMYjAhKFgoUAAAAAAAAAAAAAAAAAAAAAAAABAxyBwoDGIwIEAFSFgoJCgIYAhD/ssUNCgkKAhhiEICzxQ0=" + }, + { + "b64Body": "Cg8KCQj8qZ6tBhD1BxICGAISAhgDGP2NkRAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjqoCEwoDGIoIGgVtZXRhMRoFbWV0YTI=", + "b64Record": "CiYIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1gCcgIBAhIwg8IYBrc5MkMkHw32WP2ldPbPSgiWnGzjNwNcFQGzV/2m0jrM3X/MlkNSIVo/URK3GgwIuKqerQYQm9rI4gIiDwoJCPypnq0GEPUHEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAFofCgMYiggaCwoCGAASAxiJCBgBGgsKAhgAEgMYiQgYAg==" + }, + { + "b64Body": "Cg8KCQj9qZ6tBhD4BxICGAISAhgDGIDC1y8iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIDFhIUCgMYiggSAxiJCBoDGIwIIgECKgA=", + "b64Record": "CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwGvUkJODNeB8X/eRCnmu4xjOSv96W+uyi3izSHBkOnxqtDefBiuNe34S9DtYnxBmaGgwIuaqerQYQw5XGhgEiDwoJCP2pnq0GEPgHEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA==" + }, + { + "b64Body": "ChEKCQj9qZ6tBhD6BxICGAIgAVo6CgIyAEoFCIDO2gNqFGxhenktY3JlYXRlZCBhY2NvdW50cAGSARSmvP7Lx79TmPRCqOXnr7831NlY8A==", + "b64Record": "CgcIFhIDGI0IEjCqX08Vf7+Km0KpWcrxasMm3lFUwYglgMEsUQpeGdyvp/WPcQPlPYq5F2k/RIEj2lgaDAi5qp6tBhDKouTrAiIRCgkI/amerQYQ+gcSAhgCIAEqFGxhenktY3JlYXRlZCBhY2NvdW50UgA=" + }, + { + "b64Body": "Cg8KCQj9qZ6tBhD6BxICGAISAhgDGID+tYcBIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46kQEKAxiMCBCAkvQBIoQBUIHe0wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAkAAAAAAAAAAAAAAACmvP7Lx79TmPRCqOXnr7831NlY8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC", + "b64Record": "CiUIFiIDGIwIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAbIaWxl6kk+bPQWebFlTjTGW7NEimA4G/hrftaSHEDUJP1URwzE4g2u3XQ5vFrR3caDAi5qp6tBhDLouTrAiIPCgkI/amerQYQ+gcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCAmKtsOqAFCgMYjAgigAIEAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAgAAAAAAAAAAAAAAAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAKICowwEykAMKAxiKCBKAAgQAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAACAAAAAAAAAAAAAAAABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAaIN3yUq0b4sibacKwaPw3jaqVK6fxY8ShFij1Wk31I7PvGiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECRogAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUhgKCgoCGAIQ/6/W2AEKCgoCGGIQgLDW2AE=" + }, + { + "b64Body": "ChEKCQj9qZ6tBhD6BxICGAIgAnIqEigKAxiKCBohCgMYiQgSFiIUprz+y8e/U5j0Qqjl56+/N9TZWPAYAiAB", + "b64Record": "CgIIFhIwIVIOoQJEPsUEvJZht2nGVmF6S60dW9Q72dAA6PWE1xEAtcmJs53HrUQ8qipim4BNGgwIuaqerQYQzKLk6wIiEQoJCP2pnq0GEPoHEgIYAiACOrwBCgMY5wISIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWKICELFCq4u4BYoQBmyPT2QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAkAAAAAAAAAAAAAAACmvP7Lx79TmPRCqOXnr7831NlY8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACagMYjAhSAFoTCgMYiggaDAoDGIkIEgMYjQgYAnIKCgMYiggSAxiNCHoMCLmqnq0GEMui5OsC" + } + ] + }, + "ResourceLimitExceededRevertsAllRecords": { + "placeholderNum": 1038, + "encodedItems": [ + { + "b64Body": "Cg8KCQiCqp6tBhCYCBICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAi++PiwBhCwhvbsARptCiISINQj2xrIoZZu0bkwpzB5eFRGpGzb/Wl8XK+QJKVePimMCiM6IQP3OrU3HYvWZUoj1xb65ZtfuGbsYL3A3zMwcLkJiBOFqAoiEiAuxZ7gvsXiUbCEgMFj3NXKGRn7yhWQqgcP5SjXMxiOLCIMSGVsbG8gV29ybGQhKgAyAA==", + "b64Record": "CiUIFhoDGI8IKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBjMwTDrgK2CoBme7DLRnaYd2cC48lGFomHvnKvKEX8bg2WdQbAvyxRA2Xrs65zVcMaDAi+qp6tBhCzsbXvASIPCgkIgqqerQYQmAgSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA" + }, + { + "b64Body": "Cg8KCQiDqp6tBhCcCBICGAISAhgDGIudjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxiPCCKAIDYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMGY2MjgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDA0YzU3NjAwMDM1NjBlMDFjODA2MzEzZDY0NTc4MTQ2MTAwNTE1NzgwNjMyZjdhMTc3OTE0NjEwMDZkNTc4MDYzOWU2NjY2MTQxNDYxMDA4OTU3ODA2M2FlN2NjZmNlMTQ2MTAwYTU1NzViNjAwMDgwZmQ1YjYxMDA2YjYwMDQ4MDM2MDM4MTAxOTA2MTAwNjY5MTkwNjEwNjQ4NTY1YjYxMDBjMTU2NWIwMDViNjEwMDg3NjAwNDgwMzYwMzgxMDE5MDYxMDA4MjkxOTA2MTA2YzM1NjViNjEwMjJhNTY1YjAwNWI2MTAwYTM2MDA0ODAzNjAzODEwMTkwNjEwMDllOTE5MDYxMDk0NjU2NWI2MTAzNTE1NjViMDA1YjYxMDBiZjYwMDQ4MDM2MDM4MTAxOTA2MTAwYmE5MTkwNjEwNmMzNTY1YjYxMDQ3ODU2NWIwMDViNjAwMDgwNjEwMTY3NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MzVjZmM5MDExNjBlMDFiODg4ODg4ODg2MDQwNTE2MDI0MDE2MTAwZmM5NDkzOTI5MTkwNjEwYTFmNTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMDE2NjkxOTA2MTBhZDU1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMDFhMzU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMDFhODU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEwMWI3NTc2MDAwODBmZDViNjAwMDgxODA2MDIwMDE5MDUxODEwMTkwNjEwMWNkOTE5MDYxMGIyNTU2NWI5MDUwNjAxNjgxNjAwMzBiMTQ2MTAxZGY1NzYwMDA4MGZkNWI4MzE1NjEwMjIwNTc2MDQwNTE3ZjA4YzM3OWEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MTUyNjAwNDAxNjEwMjE3OTA2MTBiYWY1NjViNjA0MDUxODA5MTAzOTBmZDViNTA1MDUwNTA1MDUwNTA1MDU2NWI2MDAwODA2MTAxNjc3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzZWNhMzY5MTc2MGUwMWI4Nzg3ODc4NzYwNDA1MTYwMjQwMTYxMDI2NTk0OTM5MjkxOTA2MTBhMWY1NjViNjA0MDUxNjAyMDgxODMwMzAzODE1MjkwNjA0MDUyOTA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjEwMmNmOTE5MDYxMGFkNTU2NWI2MDAwNjA0MDUxODA4MzAzODE2MDAwODY1YWYxOTE1MDUwM2Q4MDYwMDA4MTE0NjEwMzBjNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjEwMzExNTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTAzMjA1NzYwMDA4MGZkNWI2MDAwODE4MDYwMjAwMTkwNTE4MTAxOTA2MTAzMzY5MTkwNjEwYjI1NTY1YjkwNTA2MDE2ODE2MDAzMGIxNDYxMDM0ODU3NjAwMDgwZmQ1YjUwNTA1MDUwNTA1MDUwNTY1YjYwMDA4MDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjMyYzRiYTE5MTYwZTAxYjg3ODc4Nzg3NjA0MDUxNjAyNDAxNjEwMzhjOTQ5MzkyOTE5MDYxMGQ0YjU2NWI2MDQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI5MDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTAzZjY5MTkwNjEwYWQ1NTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NjVhZjE5MTUwNTAzZDgwNjAwMDgxMTQ2MTA0MzM1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTA0Mzg1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA4MTYxMDQ0NzU3NjAwMDgwZmQ1YjYwMDA4MTgwNjAyMDAxOTA1MTgxMDE5MDYxMDQ1ZDkxOTA2MTBiMjU1NjViOTA1MDYwMTY4MTYwMDMwYjE0NjEwNDZmNTc2MDAwODBmZDViNTA1MDUwNTA1MDUwNTA1NjViMzA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzMTNkNjQ1Nzg4NTg1ODU4NTYwMDE2MDQwNTE4NjYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MTA0YmE5NTk0OTM5MjkxOTA2MTBkYjQ1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg3ODAzYjE1ODAxNTYxMDRkNDU3NjAwMDgwZmQ1YjUwNWFmMTkyNTA1MDUwODAxNTYxMDRlNTU3NTA2MDAxNWI2MTA1NWU1NzYxMDRmMTYxMGUxNDU2NWI4MDYzMDhjMzc5YTAwMzYxMDU0ZDU3NTA2MTA1MDU2MTBlMzY1NjViODA2MTA1MTA1NzUwNjEwNTRmNTY1YjdmY2YzNGVmNTM3YWMzM2VlMWFjNjI2Y2ExNTg3YTBhN2U4ZTUxNTYxZTU1MTRmOGNiMzZhZmExYzUxMDJiM2JhYjgxNjA0MDUxNjEwNTNmOTE5MDYxMGYwYTU2NWI2MDQwNTE4MDkxMDM5MGExNTA2MTA1NTk1NjViNTA1YjNkNjAwMDgwM2UzZDYwMDBmZDViNjEwNTVmNTY1YjViNTA1MDUwNTA1NjViNjAwMDYwNDA1MTkwNTA5MDU2NWI2MDAwODBmZDViNjAwMDgwZmQ1YjYwMDA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MjE2OTA1MDkxOTA1MDU2NWI2MDAwNjEwNWE0ODI2MTA1Nzk1NjViOTA1MDkxOTA1MDU2NWI2MTA1YjQ4MTYxMDU5OTU2NWI4MTE0NjEwNWJmNTc2MDAwODBmZDViNTA1NjViNjAwMDgxMzU5MDUwNjEwNWQxODE2MTA1YWI1NjViOTI5MTUwNTA1NjViNjAwMDgxNjAwNzBiOTA1MDkxOTA1MDU2NWI2MTA1ZWQ4MTYxMDVkNzU2NWI4MTE0NjEwNWY4NTc2MDAwODBmZDViNTA1NjViNjAwMDgxMzU5MDUwNjEwNjBhODE2MTA1ZTQ1NjViOTI5MTUwNTA1NjViNjAwMDgxMTUxNTkwNTA5MTkwNTA1NjViNjEwNjI1ODE2MTA2MTA1NjViODExNDYxMDYzMDU3NjAwMDgwZmQ1YjUwNTY1YjYwMDA4MTM1OTA1MDYxMDY0MjgxNjEwNjFjNTY1YjkyOTE1MDUwNTY1YjYwMDA4MDYwMDA4MDYwMDA2MGEwODY4ODAzMTIxNTYxMDY2NDU3NjEwNjYzNjEwNTZmNTY1YjViNjAwMDYxMDY3Mjg4ODI4OTAxNjEwNWMyNTY1Yjk1NTA1MDYwMjA2MTA2ODM4ODgyODkwMTYxMDVjMjU2NWI5NDUwNTA2MDQwNjEwNjk0ODg4Mjg5MDE2MTA1YzI1NjViOTM1MDUwNjA2MDYxMDZhNTg4ODI4OTAxNjEwNWZiNTY1YjkyNTA1MDYwODA2MTA2YjY4ODgyODkwMTYxMDYzMzU2NWI5MTUwNTA5Mjk1NTA5Mjk1OTA5MzUwNTY1YjYwMDA4MDYwMDA4MDYwODA4NTg3MDMxMjE1NjEwNmRkNTc2MTA2ZGM2MTA1NmY1NjViNWI2MDAwNjEwNmViODc4Mjg4MDE2MTA1YzI1NjViOTQ1MDUwNjAyMDYxMDZmYzg3ODI4ODAxNjEwNWMyNTY1YjkzNTA1MDYwNDA2MTA3MGQ4NzgyODgwMTYxMDVjMjU2NWI5MjUwNTA2MDYwNjEwNzFlODc4Mjg4MDE2MTA1ZmI1NjViOTE1MDUwOTI5NTkxOTQ1MDkyNTA1NjViNjAwMDgwZmQ1YjYwMDA2MDFmMTk2MDFmODMwMTE2OTA1MDkxOTA1MDU2NWI3ZjRlNDg3YjcxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MDAwNTI2MDQxNjAwNDUyNjAyNDYwMDBmZDViNjEwNzc4ODI2MTA3MmY1NjViODEwMTgxODExMDY3ZmZmZmZmZmZmZmZmZmZmZjgyMTExNzE1NjEwNzk3NTc2MTA3OTY2MTA3NDA1NjViNWI4MDYwNDA1MjUwNTA1MDU2NWI2MDAwNjEwN2FhNjEwNTY1NTY1YjkwNTA2MTA3YjY4MjgyNjEwNzZmNTY1YjkxOTA1MDU2NWI2MDAwNjdmZmZmZmZmZmZmZmZmZmZmODIxMTE1NjEwN2Q2NTc2MTA3ZDU2MTA3NDA1NjViNWI2MDIwODIwMjkwNTA2MDIwODE=", + "b64Record": "CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwbwaHNJauEGNGrXS1jSmQmPjVFB0IVG+xID/iYB3qDZf1p8l4FbtCAgF6MvEJvbm6GgsIv6qerQYQ46uoFCIPCgkIg6qerQYQnAgSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA" + }, + { + "b64Body": "Cg8KCQiDqp6tBhCiCBICGAISAhgDGJ2T3T0iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBjB4SAxiPCCKEHjAxOTA1MDkxOTA1MDU2NWI2MDAwODBmZDViNjAwMDYxMDdmZjYxMDdmYTg0NjEwN2JiNTY1YjYxMDdhMDU2NWI5MDUwODA4MzgyNTI2MDIwODIwMTkwNTA2MDIwODQwMjgzMDE4NTgxMTExNTYxMDgyMjU3NjEwODIxNjEwN2U3NTY1YjViODM1YjgxODExMDE1NjEwODRiNTc4MDYxMDgzNzg4ODI2MTA1YzI1NjViODQ1MjYwMjA4NDAxOTM1MDUwNjAyMDgxMDE5MDUwNjEwODI0NTY1YjUwNTA1MDkzOTI1MDUwNTA1NjViNjAwMDgyNjAxZjgzMDExMjYxMDg2YTU3NjEwODY5NjEwNzJhNTY1YjViODEzNTYxMDg3YTg0ODI2MDIwODYwMTYxMDdlYzU2NWI5MTUwNTA5MjkxNTA1MDU2NWI2MDAwNjdmZmZmZmZmZmZmZmZmZmZmODIxMTE1NjEwODllNTc2MTA4OWQ2MTA3NDA1NjViNWI2MDIwODIwMjkwNTA2MDIwODEwMTkwNTA5MTkwNTA1NjViNjAwMDYxMDhjMjYxMDhiZDg0NjEwODgzNTY1YjYxMDdhMDU2NWI5MDUwODA4MzgyNTI2MDIwODIwMTkwNTA2MDIwODQwMjgzMDE4NTgxMTExNTYxMDhlNTU3NjEwOGU0NjEwN2U3NTY1YjViODM1YjgxODExMDE1NjEwOTBlNTc4MDYxMDhmYTg4ODI2MTA1ZmI1NjViODQ1MjYwMjA4NDAxOTM1MDUwNjAyMDgxMDE5MDUwNjEwOGU3NTY1YjUwNTA1MDkzOTI1MDUwNTA1NjViNjAwMDgyNjAxZjgzMDExMjYxMDkyZDU3NjEwOTJjNjEwNzJhNTY1YjViODEzNTYxMDkzZDg0ODI2MDIwODYwMTYxMDhhZjU2NWI5MTUwNTA5MjkxNTA1MDU2NWI2MDAwODA2MDAwODA2MDgwODU4NzAzMTIxNTYxMDk2MDU3NjEwOTVmNjEwNTZmNTY1YjViNjAwMDYxMDk2ZTg3ODI4ODAxNjEwNWMyNTY1Yjk0NTA1MDYwMjA4NTAxMzU2N2ZmZmZmZmZmZmZmZmZmZmY4MTExMTU2MTA5OGY1NzYxMDk4ZTYxMDU3NDU2NWI1YjYxMDk5Yjg3ODI4ODAxNjEwODU1NTY1YjkzNTA1MDYwNDA4NTAxMzU2N2ZmZmZmZmZmZmZmZmZmZmY4MTExMTU2MTA5YmM1NzYxMDliYjYxMDU3NDU2NWI1YjYxMDljODg3ODI4ODAxNjEwODU1NTY1YjkyNTA1MDYwNjA4NTAxMzU2N2ZmZmZmZmZmZmZmZmZmZmY4MTExMTU2MTA5ZTk1NzYxMDllODYxMDU3NDU2NWI1YjYxMDlmNTg3ODI4ODAxNjEwOTE4NTY1YjkxNTA1MDkyOTU5MTk0NTA5MjUwNTY1YjYxMGEwYTgxNjEwNTk5NTY1YjgyNTI1MDUwNTY1YjYxMGExOTgxNjEwNWQ3NTY1YjgyNTI1MDUwNTY1YjYwMDA2MDgwODIwMTkwNTA2MTBhMzQ2MDAwODMwMTg3NjEwYTAxNTY1YjYxMGE0MTYwMjA4MzAxODY2MTBhMDE1NjViNjEwYTRlNjA0MDgzMDE4NTYxMGEwMTU2NWI2MTBhNWI2MDYwODMwMTg0NjEwYTEwNTY1Yjk1OTQ1MDUwNTA1MDUwNTY1YjYwMDA4MTUxOTA1MDkxOTA1MDU2NWI2MDAwODE5MDUwOTI5MTUwNTA1NjViNjAwMDViODM4MTEwMTU2MTBhOTg1NzgwODIwMTUxODE4NDAxNTI2MDIwODEwMTkwNTA2MTBhN2Q1NjViNjAwMDg0ODQwMTUyNTA1MDUwNTA1NjViNjAwMDYxMGFhZjgyNjEwYTY0NTY1YjYxMGFiOTgxODU2MTBhNmY1NjViOTM1MDYxMGFjOTgxODU2MDIwODYwMTYxMGE3YTU2NWI4MDg0MDE5MTUwNTA5MjkxNTA1MDU2NWI2MDAwNjEwYWUxODI4NDYxMGFhNDU2NWI5MTUwODE5MDUwOTI5MTUwNTA1NjViNjAwMDgxNjAwMzBiOTA1MDkxOTA1MDU2NWI2MTBiMDI4MTYxMGFlYzU2NWI4MTE0NjEwYjBkNTc2MDAwODBmZDViNTA1NjViNjAwMDgxNTE5MDUwNjEwYjFmODE2MTBhZjk1NjViOTI5MTUwNTA1NjViNjAwMDYwMjA4Mjg0MDMxMjE1NjEwYjNiNTc2MTBiM2E2MTA1NmY1NjViNWI2MDAwNjEwYjQ5ODQ4Mjg1MDE2MTBiMTA1NjViOTE1MDUwOTI5MTUwNTA1NjViNjAwMDgyODI1MjYwMjA4MjAxOTA1MDkyOTE1MDUwNTY1YjdmNTc2OTczNjgyYzIwNjM2ZjZkNmQ2MTZlNjQyYzIwNjU3NDYzMmUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYwMDA4MjAxNTI1MDU2NWI2MDAwNjEwYjk5NjAxMzgzNjEwYjUyNTY1YjkxNTA2MTBiYTQ4MjYxMGI2MzU2NWI2MDIwODIwMTkwNTA5MTkwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDgxODEwMzYwMDA4MzAxNTI2MTBiYzg4MTYxMGI4YzU2NWI5MDUwOTE5MDUwNTY1YjYwMDA4MTUxOTA1MDkxOTA1MDU2NWI2MDAwODI4MjUyNjAyMDgyMDE5MDUwOTI5MTUwNTA1NjViNjAwMDgxOTA1MDYwMjA4MjAxOTA1MDkxOTA1MDU2NWI2MTBjMDQ4MTYxMDU5OTU2NWI4MjUyNTA1MDU2NWI2MDAwNjEwYzE2ODM4MzYxMGJmYjU2NWI2MDIwODMwMTkwNTA5MjkxNTA1MDU2NWI2MDAwNjAyMDgyMDE5MDUwOTE5MDUwNTY1YjYwMDA2MTBjM2E4MjYxMGJjZjU2NWI2MTBjNDQ4MTg1NjEwYmRhNTY1YjkzNTA2MTBjNGY4MzYxMGJlYjU2NWI4MDYwMDA1YjgzODExMDE1NjEwYzgwNTc4MTUxNjEwYzY3ODg4MjYxMGMwYTU2NWI5NzUwNjEwYzcyODM2MTBjMjI1NjViOTI1MDUwNjAwMTgxMDE5MDUwNjEwYzUzNTY1YjUwODU5MzUwNTA1MDUwOTI5MTUwNTA1NjViNjAwMDgxNTE5MDUwOTE5MDUwNTY1YjYwMDA4MjgyNTI2MDIwODIwMTkwNTA5MjkxNTA1MDU2NWI2MDAwODE5MDUwNjAyMDgyMDE5MDUwOTE5MDUwNTY1YjYxMGNjMjgxNjEwNWQ3NTY1YjgyNTI1MDUwNTY1YjYwMDA2MTBjZDQ4MzgzNjEwY2I5NTY1YjYwMjA4MzAxOTA1MDkyOTE1MDUwNTY1YjYwMDA2MDIwODIwMTkwNTA5MTkwNTA1NjViNjAwMDYxMGNmODgyNjEwYzhkNTY1YjYxMGQwMjgxODU2MTBjOTg1NjViOTM1MDYxMGQwZDgzNjEwY2E5NTY1YjgwNjAwMDViODM4MTEwMTU2MTBkM2U1NzgxNTE2MTBkMjU4ODgyNjEwY2M4NTY1Yjk3NTA2MTBkMzA4MzYxMGNlMDU2NWI5MjUwNTA2MDAxODEwMTkwNTA2MTBkMTE1NjViNTA4NTkzNTA1MDUwNTA5MjkxNTA1MDU2NWI2MDAwNjA4MDgyMDE5MDUwNjEwZDYwNjAwMDgzMDE4NzYxMGEwMTU2NWI4MTgxMDM2MDIwODMwMTUyNjEwZDcyODE4NjYxMGMyZjU2NWI5MDUwODE4MTAzNjA0MDgzMDE1MjYxMGQ4NjgxODU2MTBjMmY1NjViOTA1MDgxODEwMzYwNjA4MzAxNTI2MTBkOWE4MTg0NjEwY2VkNTY1YjkwNTA5NTk0NTA1MDUwNTA1MDU2NWI2MTBkYWU4MTYxMDYxMDU2NWI4MjUyNTA1MDU2NWI2MDAwNjBhMDgyMDE5MDUwNjEwZGM5NjAwMDgzMDE4ODYxMGEwMTU2NWI2MTBkZDY2MDIwODMwMTg3NjEwYTAxNTY1YjYxMGRlMzYwNDA4MzAxODY2MTBhMDE1NjViNjEwZGYwNjA2MDgzMDE4NTYxMGExMDU2NWI2MTBkZmQ2MDgwODMwMTg0NjEwZGE1NTY1Yjk2OTU1MDUwNTA1MDUwNTA1NjViNjAwMDgxNjBlMDFjOTA1MDkxOTA1MDU2NWI2MDAwNjAwMzNkMTExNTYxMGUzMzU3NjAwNDYwMDA4MDNlNjEwZTMwNjAwMDUxNjEwZTA3NTY1YjkwNTA1YjkwNTY1YjYwMDA2MDQ0M2QxMDYxMGVjMzU3NjEwZTQ4NjEwNTY1NTY1YjYwMDQzZDAzNjAwNDgyM2U4MDUxM2Q2MDI0ODIwMTExNjdmZmZmZmZmZmZmZmZmZmZmODIxMTE3MTU2MTBlNzA1NzUwNTA2MTBlYzM1NjViODA4MjAxODA1MTY3ZmZmZmZmZmZmZmZmZmZmZjgxMTExNTYxMGU4ZTU3NTA1MDUwNTA2MTBlYzM1NjViODA2MDIwODMwMTAxNjAwNDNkMDM4NTAxODExMTE1NjEwZWFiNTc1MDUwNTA1MDUwNjEwZWMzNTY1YjYxMGViYTgyNjAyMDAxODUwMTg2NjEwNzZmNTY1YjgyOTU1MDUwNTA1MDUwNTA1YjkwNTY1YjYwMDA4MTUxOTA1MDkxOTA1MDU2NWI2MDAwNjEwZWRjODI2MTBlYzY1NjViNjEwZWU2ODE4NTYxMGI1MjU2NWI5MzUwNjEwZWY2ODE4NTYwMjA4NjAxNjEwYTdhNTY1YjYxMGVmZjgxNjEwNzJmNTY1Yjg0MDE5MTUwNTA5MjkxNTA1MDU2NWI2MDAwNjAyMDgyMDE5MDUwODE4MTAzNjAwMDgzMDE1MjYxMGYyNDgxODQ2MTBlZDE1NjViOTA1MDkyOTE1MDUwNTZmZWEyNjQ2OTcwNjY3MzU4MjIxMjIwNjJlMDI1Yjg1OWZlMmRlOWM3OGY5ZjU0NTgyNjdkYTE4MWM2M2I3NjQwYTE3MDdiM2U5NWU0YmNmOGZjZGVhNTY0NzM2ZjZjNjM0MzAwMDgxMDAwMzM=", + "b64Record": "CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIweYnV8QB7bligU5liFINR8dZEu/f/KC+KGlGpqZ+GLzBhKWTsst7UWwoRI3RuyfkbGgwIv6qerQYQ4+z7+QEiDwoJCIOqnq0GEKIIEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA==" + }, + { + "b64Body": "Cg8KCQiEqp6tBhCkCBICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGI8IGiISILHzTgHWQ6nenOR7N5vTuOGVFC1qYZxYO5EIQj1TWAvXIJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==", + "b64Record": "CiUIFiIDGJAIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCfbH1EgcAs0LYj6ZdGzXqiTKqSETlS/PB9HB8whukvCbYNxKQkMuY3UPx8KgyDV30aCwjAqp6tBhDD5ZYeIg8KCQiEqp6tBhCkCBICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMMDZ4gZClyEKAxiQCBLiHmCAYEBSNIAVYQAQV2AAgP1bUGAENhBhAExXYAA1YOAcgGMT1kV4FGEAUVeAYy96F3kUYQBtV4BjnmZmFBRhAIlXgGOufM/OFGEApVdbYACA/VthAGtgBIA2A4EBkGEAZpGQYQZIVlthAMFWWwBbYQCHYASANgOBAZBhAIKRkGEGw1ZbYQIqVlsAW2EAo2AEgDYDgQGQYQCekZBhCUZWW2EDUVZbAFthAL9gBIA2A4EBkGEAupGQYQbDVlthBHhWWwBbYACAYQFnc///////////////////////////FmNc/JARYOAbiIiIiGBAUWAkAWEA/JSTkpGQYQofVltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhAWaRkGEK1VZbYABgQFGAgwOBYACGWvGRUFA9gGAAgRRhAaNXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hAahWW2BgkVBbUJFQkVCBYQG3V2AAgP1bYACBgGAgAZBRgQGQYQHNkZBhCyVWW5BQYBaBYAMLFGEB31dgAID9W4MVYQIgV2BAUX8Iw3mgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIFSYAQBYQIXkGELr1ZbYEBRgJEDkP1bUFBQUFBQUFBWW2AAgGEBZ3P//////////////////////////xZj7KNpF2DgG4eHh4dgQFFgJAFhAmWUk5KRkGEKH1ZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQLPkZBhCtVWW2AAYEBRgIMDgWAAhlrxkVBQPYBgAIEUYQMMV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YQMRVltgYJFQW1CRUJFQgWEDIFdgAID9W2AAgYBgIAGQUYEBkGEDNpGQYQslVluQUGAWgWADCxRhA0hXYACA/VtQUFBQUFBQVltgAIBhAWdz//////////////////////////8WYyxLoZFg4BuHh4eHYEBRYCQBYQOMlJOSkZBhDUtWW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWED9pGQYQrVVltgAGBAUYCDA4FgAIZa8ZFQUD2AYACBFGEEM1dgQFGRUGAfGWA/PQEWggFgQFI9glI9YABgIIQBPmEEOFZbYGCRUFtQkVCRUIFhBEdXYACA/VtgAIGAYCABkFGBAZBhBF2RkGELJVZbkFBgFoFgAwsUYQRvV2AAgP1bUFBQUFBQUFZbMHP//////////////////////////xZjE9ZFeIWFhYVgAWBAUYZj/////xZg4BuBUmAEAWEEupWUk5KRkGENtFZbYABgQFGAgwOBYACHgDsVgBVhBNRXYACA/VtQWvGSUFBQgBVhBOVXUGABW2EFXldhBPFhDhRWW4BjCMN5oANhBU1XUGEFBWEONlZbgGEFEFdQYQVPVlt/zzTvU3rDPuGsYmyhWHoKfo5RVh5VFPjLNq+hxRArO6uBYEBRYQU/kZBhDwpWW2BAUYCRA5ChUGEFWVZbUFs9YACAPj1gAP1bYQVfVltbUFBQUFZbYABgQFGQUJBWW2AAgP1bYACA/VtgAHP//////////////////////////4IWkFCRkFBWW2AAYQWkgmEFeVZbkFCRkFBWW2EFtIFhBZlWW4EUYQW/V2AAgP1bUFZbYACBNZBQYQXRgWEFq1ZbkpFQUFZbYACBYAcLkFCRkFBWW2EF7YFhBddWW4EUYQX4V2AAgP1bUFZbYACBNZBQYQYKgWEF5FZbkpFQUFZbYACBFRWQUJGQUFZbYQYlgWEGEFZbgRRhBjBXYACA/VtQVltgAIE1kFBhBkKBYQYcVluSkVBQVltgAIBgAIBgAGCghogDEhVhBmRXYQZjYQVvVltbYABhBnKIgokBYQXCVluVUFBgIGEGg4iCiQFhBcJWW5RQUGBAYQaUiIKJAWEFwlZbk1BQYGBhBqWIgokBYQX7VluSUFBggGEGtoiCiQFhBjNWW5FQUJKVUJKVkJNQVltgAIBgAIBggIWHAxIVYQbdV2EG3GEFb1ZbW2AAYQbrh4KIAWEFwlZblFBQYCBhBvyHgogBYQXCVluTUFBgQGEHDYeCiAFhBcJWW5JQUGBgYQceh4KIAWEF+1ZbkVBQkpWRlFCSUFZbYACA/VtgAGAfGWAfgwEWkFCRkFBWW39OSHtxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAUmBBYARSYCRgAP1bYQd4gmEHL1ZbgQGBgRBn//////////+CERcVYQeXV2EHlmEHQFZbW4BgQFJQUFBWW2AAYQeqYQVlVluQUGEHtoKCYQdvVluRkFBWW2AAZ///////////ghEVYQfWV2EH1WEHQFZbW2AgggKQUGAggQGQUJGQUFZbYACA/VtgAGEH/2EH+oRhB7tWW2EHoFZbkFCAg4JSYCCCAZBQYCCEAoMBhYERFWEIIldhCCFhB+dWW1uDW4GBEBVhCEtXgGEIN4iCYQXCVluEUmAghAGTUFBgIIEBkFBhCCRWW1BQUJOSUFBQVltgAIJgH4MBEmEIaldhCGlhBypWW1uBNWEIeoSCYCCGAWEH7FZbkVBQkpFQUFZbYABn//////////+CERVhCJ5XYQidYQdAVltbYCCCApBQYCCBAZBQkZBQVltgAGEIwmEIvYRhCINWW2EHoFZbkFCAg4JSYCCCAZBQYCCEAoMBhYERFWEI5VdhCORhB+dWW1uDW4GBEBVhCQ5XgGEI+oiCYQX7VluEUmAghAGTUFBgIIEBkFBhCOdWW1BQUJOSUFBQVltgAIJgH4MBEmEJLVdhCSxhBypWW1uBNWEJPYSCYCCGAWEIr1ZbkVBQkpFQUFZbYACAYACAYICFhwMSFWEJYFdhCV9hBW9WW1tgAGEJboeCiAFhBcJWW5RQUGAghQE1Z///////////gREVYQmPV2EJjmEFdFZbW2EJm4eCiAFhCFVWW5NQUGBAhQE1Z///////////gREVYQm8V2EJu2EFdFZbW2EJyIeCiAFhCFVWW5JQUGBghQE1Z///////////gREVYQnpV2EJ6GEFdFZbW2EJ9YeCiAFhCRhWW5FQUJKVkZRQklBWW2EKCoFhBZlWW4JSUFBWW2EKGYFhBddWW4JSUFBWW2AAYICCAZBQYQo0YACDAYdhCgFWW2EKQWAggwGGYQoBVlthCk5gQIMBhWEKAVZbYQpbYGCDAYRhChBWW5WUUFBQUFBWW2AAgVGQUJGQUFZbYACBkFCSkVBQVltgAFuDgRAVYQqYV4CCAVGBhAFSYCCBAZBQYQp9VltgAISEAVJQUFBQVltgAGEKr4JhCmRWW2EKuYGFYQpvVluTUGEKyYGFYCCGAWEKelZbgIQBkVBQkpFQUFZbYABhCuGChGEKpFZbkVCBkFCSkVBQVltgAIFgAwuQUJGQUFZbYQsCgWEK7FZbgRRhCw1XYACA/VtQVltgAIFRkFBhCx+BYQr5VluSkVBQVltgAGAggoQDEhVhCztXYQs6YQVvVltbYABhC0mEgoUBYQsQVluRUFCSkVBQVltgAIKCUmAgggGQUJKRUFBWW39XaXNoLCBjb21tYW5kLCBldGMuAAAAAAAAAAAAAAAAAGAAggFSUFZbYABhC5lgE4NhC1JWW5FQYQukgmELY1ZbYCCCAZBQkZBQVltgAGAgggGQUIGBA2AAgwFSYQvIgWELjFZbkFCRkFBWW2AAgVGQUJGQUFZbYACCglJgIIIBkFCSkVBQVltgAIGQUGAgggGQUJGQUFZbYQwEgWEFmVZbglJQUFZbYABhDBaDg2EL+1ZbYCCDAZBQkpFQUFZbYABgIIIBkFCRkFBWW2AAYQw6gmELz1ZbYQxEgYVhC9pWW5NQYQxPg2EL61ZbgGAAW4OBEBVhDIBXgVFhDGeIgmEMClZbl1BhDHKDYQwiVluSUFBgAYEBkFBhDFNWW1CFk1BQUFCSkVBQVltgAIFRkFCRkFBWW2AAgoJSYCCCAZBQkpFQUFZbYACBkFBgIIIBkFCRkFBWW2EMwoFhBddWW4JSUFBWW2AAYQzUg4NhDLlWW2AggwGQUJKRUFBWW2AAYCCCAZBQkZBQVltgAGEM+IJhDI1WW2ENAoGFYQyYVluTUGENDYNhDKlWW4BgAFuDgRAVYQ0+V4FRYQ0liIJhDMhWW5dQYQ0wg2EM4FZbklBQYAGBAZBQYQ0RVltQhZNQUFBQkpFQUFZbYABggIIBkFBhDWBgAIMBh2EKAVZbgYEDYCCDAVJhDXKBhmEML1ZbkFCBgQNgQIMBUmENhoGFYQwvVluQUIGBA2BggwFSYQ2agYRhDO1WW5BQlZRQUFBQUFZbYQ2ugWEGEFZbglJQUFZbYABgoIIBkFBhDclgAIMBiGEKAVZbYQ3WYCCDAYdhCgFWW2EN42BAgwGGYQoBVlthDfBgYIMBhWEKEFZbYQ39YICDAYRhDaVWW5aVUFBQUFBQVltgAIFg4ByQUJGQUFZbYABgAz0RFWEOM1dgBGAAgD5hDjBgAFFhDgdWW5BQW5BWW2AAYEQ9EGEOw1dhDkhhBWVWW2AEPQNgBII+gFE9YCSCARFn//////////+CERcVYQ5wV1BQYQ7DVluAggGAUWf//////////4ERFWEOjldQUFBQYQ7DVluAYCCDAQFgBD0DhQGBERVhDqtXUFBQUFBhDsNWW2EOuoJgIAGFAYZhB29WW4KVUFBQUFBQW5BWW2AAgVGQUJGQUFZbYABhDtyCYQ7GVlthDuaBhWELUlZbk1BhDvaBhWAghgFhCnpWW2EO/4FhBy9WW4QBkVBQkpFQUFZbYABgIIIBkFCBgQNgAIMBUmEPJIGEYQ7RVluQUJKRUFBW/qJkaXBmc1giEiBi4CW4Wf4t6cePn1RYJn2hgcY7dkChcHs+leS8+PzepWRzb2xjQwAIEAAzIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACjAmgw6AxiQCEoWChQAAAAAAAAAAAAAAAAAAAAAAAAEEHIHCgMYkAgQAVIWCgkKAhgCEP+yxQ0KCQoCGGIQgLPFDQ==" + }, + { + "b64Body": "Cg8KCQiEqp6tBhCmCBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIGIya6pyPtvEP6shPMotdsQuM4MonxikziJD1cSleESnEICU69wDSgUIgM7aAw==", + "b64Record": "CiUIFhIDGJEIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCjQMxeKrp0uechqeebqoKfeRxFisT5CJW8OPh7o5sNJBLy+y/DNWvjPTs/byaQvtUaDAjAqp6tBhCb++OCAiIPCgkIhKqerQYQpggSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxiRCBCAqNa5Bw==" + }, + { + "b64Body": "Cg8KCQiFqp6tBhCoCBICGAISAhgDGPWc3ugCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAUgKA25mdBIIVlBaUVBDUUoqAxiRCFIiEiCV0wrw5/nxDhDK17aXSHbB5ztPOH34qRQny4s+zZBWumoLCMH4+LAGENCR5xWIAQE=", + "b64Record": "CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGJIIEjCLTqwxRVMAF5pyl95hCQmIUOvV97sQ0pysMraQy9qifrn14u9by1dqk4mqPzES/7MaCwjBqp6tBhDjvJAoIg8KCQiFqp6tBhCoCBICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgByCgoDGJIIEgMYkQg=" + }, + { + "b64Body": "Cg8KCQiFqp6tBhCuCBICGAISAhgDGNPOgyAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjqoCMQoDGJIIGglPTkUgVElNRTAaCU9ORSBUSU1FMRoJT05FIFRJTUUyGglPTkUgVElNRTM=", + "b64Record": "CigIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1gEcgQBAgMEEjARDIe/FXhgl80sMLBN2vaxcy3igWfPyBcyZGHJ8WnkWcEqgEoqnMTuUMhmTgrkFC8aDAjBqp6tBhCj4oSNAiIPCgkIhaqerQYQrggSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWjkKAxiSCBoLCgIYABIDGJEIGAEaCwoCGAASAxiRCBgCGgsKAhgAEgMYkQgYAxoLCgIYABIDGJEIGAQ=" + }, + { + "b64Body": "Cg8KCQiGqp6tBhCyCBICGAISAhgDGID+tYcBIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo468QQKAxiQCBCAkvQBIuQEnmZmFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAACmgAAAAAAAAKaAAAAAAAujiEAAAAAAAAAAAAAAAAAAAKaAAAAAAAAApoAAAAAAC6OIgAAAAAAAAAAAAAAAAAAApoAAAAAAAACmgAAAAAALo4jAAAAAAAAAAAAAAAAAAACmgAAAAAAAAKaAAAAAAAujiQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE", + "b64Record": "CiYIyAIiAxiQCCocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwEkHXlyI4DANA+pKMW0nTvpHtiSmRBsYBQtliX6mP2UKS7l15B6IcPNGhkoae5Hd0GgsIwqqerQYQq7mYMSIPCgkIhqqerQYQsggSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCA/rWHATo9GjYweDRkNDE1ODVmNDM0ODQ5NGM0NDVmNTI0NTQzNGY1MjQ0NTM1ZjQ1NTg0MzQ1NDU0NDQ1NDQogJL0AVIYCgoKAhgCEP/7644CCgoKAhhiEID8644C" + } + ] + }, + "AutoCreationFailsWithMirrorAddress": { + "placeholderNum": 1047, + "encodedItems": [ + { + "b64Body": "Cg8KCQiKqp6tBhDSCBICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAjG+PiwBhDo6+ePAxptCiISIGw0/O7SvtVNR13RACiamHzWeI9WjX4kIclPh4eQyF6VCiM6IQKhVqSu85bKIYtre2N7SMuc2OkHF9vcPS+JP9eMbwgrxwoiEiBvizw3UB+FU/vnBYO+vX1mDllfhTzlZH1WHT/qgFCQgCIMSGVsbG8gV29ybGQhKgAyAA==", + "b64Record": "CiUIFhoDGJgIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAFwT+2kvPnO5Br/XJ7T6/P5dmr8Dq6U3syRCvqoSmsl1gfiAQn95doLbQEmfSjWIYaDAjGqp6tBhCbn9epAyIPCgkIiqqerQYQ0ggSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA" + }, + { + "b64Body": "Cg8KCQiLqp6tBhDWCBICGAISAhgDGIudjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxiYCCKAIDYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMGY2MjgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDA0YzU3NjAwMDM1NjBlMDFjODA2MzEzZDY0NTc4MTQ2MTAwNTE1NzgwNjMyZjdhMTc3OTE0NjEwMDZkNTc4MDYzOWU2NjY2MTQxNDYxMDA4OTU3ODA2M2FlN2NjZmNlMTQ2MTAwYTU1NzViNjAwMDgwZmQ1YjYxMDA2YjYwMDQ4MDM2MDM4MTAxOTA2MTAwNjY5MTkwNjEwNjQ4NTY1YjYxMDBjMTU2NWIwMDViNjEwMDg3NjAwNDgwMzYwMzgxMDE5MDYxMDA4MjkxOTA2MTA2YzM1NjViNjEwMjJhNTY1YjAwNWI2MTAwYTM2MDA0ODAzNjAzODEwMTkwNjEwMDllOTE5MDYxMDk0NjU2NWI2MTAzNTE1NjViMDA1YjYxMDBiZjYwMDQ4MDM2MDM4MTAxOTA2MTAwYmE5MTkwNjEwNmMzNTY1YjYxMDQ3ODU2NWIwMDViNjAwMDgwNjEwMTY3NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MzVjZmM5MDExNjBlMDFiODg4ODg4ODg2MDQwNTE2MDI0MDE2MTAwZmM5NDkzOTI5MTkwNjEwYTFmNTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMDE2NjkxOTA2MTBhZDU1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMDFhMzU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMDFhODU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEwMWI3NTc2MDAwODBmZDViNjAwMDgxODA2MDIwMDE5MDUxODEwMTkwNjEwMWNkOTE5MDYxMGIyNTU2NWI5MDUwNjAxNjgxNjAwMzBiMTQ2MTAxZGY1NzYwMDA4MGZkNWI4MzE1NjEwMjIwNTc2MDQwNTE3ZjA4YzM3OWEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MTUyNjAwNDAxNjEwMjE3OTA2MTBiYWY1NjViNjA0MDUxODA5MTAzOTBmZDViNTA1MDUwNTA1MDUwNTA1MDU2NWI2MDAwODA2MTAxNjc3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzZWNhMzY5MTc2MGUwMWI4Nzg3ODc4NzYwNDA1MTYwMjQwMTYxMDI2NTk0OTM5MjkxOTA2MTBhMWY1NjViNjA0MDUxNjAyMDgxODMwMzAzODE1MjkwNjA0MDUyOTA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjEwMmNmOTE5MDYxMGFkNTU2NWI2MDAwNjA0MDUxODA4MzAzODE2MDAwODY1YWYxOTE1MDUwM2Q4MDYwMDA4MTE0NjEwMzBjNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjEwMzExNTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTAzMjA1NzYwMDA4MGZkNWI2MDAwODE4MDYwMjAwMTkwNTE4MTAxOTA2MTAzMzY5MTkwNjEwYjI1NTY1YjkwNTA2MDE2ODE2MDAzMGIxNDYxMDM0ODU3NjAwMDgwZmQ1YjUwNTA1MDUwNTA1MDUwNTY1YjYwMDA4MDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjMyYzRiYTE5MTYwZTAxYjg3ODc4Nzg3NjA0MDUxNjAyNDAxNjEwMzhjOTQ5MzkyOTE5MDYxMGQ0YjU2NWI2MDQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI5MDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTAzZjY5MTkwNjEwYWQ1NTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NjVhZjE5MTUwNTAzZDgwNjAwMDgxMTQ2MTA0MzM1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTA0Mzg1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA4MTYxMDQ0NzU3NjAwMDgwZmQ1YjYwMDA4MTgwNjAyMDAxOTA1MTgxMDE5MDYxMDQ1ZDkxOTA2MTBiMjU1NjViOTA1MDYwMTY4MTYwMDMwYjE0NjEwNDZmNTc2MDAwODBmZDViNTA1MDUwNTA1MDUwNTA1NjViMzA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzMTNkNjQ1Nzg4NTg1ODU4NTYwMDE2MDQwNTE4NjYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MTA0YmE5NTk0OTM5MjkxOTA2MTBkYjQ1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg3ODAzYjE1ODAxNTYxMDRkNDU3NjAwMDgwZmQ1YjUwNWFmMTkyNTA1MDUwODAxNTYxMDRlNTU3NTA2MDAxNWI2MTA1NWU1NzYxMDRmMTYxMGUxNDU2NWI4MDYzMDhjMzc5YTAwMzYxMDU0ZDU3NTA2MTA1MDU2MTBlMzY1NjViODA2MTA1MTA1NzUwNjEwNTRmNTY1YjdmY2YzNGVmNTM3YWMzM2VlMWFjNjI2Y2ExNTg3YTBhN2U4ZTUxNTYxZTU1MTRmOGNiMzZhZmExYzUxMDJiM2JhYjgxNjA0MDUxNjEwNTNmOTE5MDYxMGYwYTU2NWI2MDQwNTE4MDkxMDM5MGExNTA2MTA1NTk1NjViNTA1YjNkNjAwMDgwM2UzZDYwMDBmZDViNjEwNTVmNTY1YjViNTA1MDUwNTA1NjViNjAwMDYwNDA1MTkwNTA5MDU2NWI2MDAwODBmZDViNjAwMDgwZmQ1YjYwMDA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MjE2OTA1MDkxOTA1MDU2NWI2MDAwNjEwNWE0ODI2MTA1Nzk1NjViOTA1MDkxOTA1MDU2NWI2MTA1YjQ4MTYxMDU5OTU2NWI4MTE0NjEwNWJmNTc2MDAwODBmZDViNTA1NjViNjAwMDgxMzU5MDUwNjEwNWQxODE2MTA1YWI1NjViOTI5MTUwNTA1NjViNjAwMDgxNjAwNzBiOTA1MDkxOTA1MDU2NWI2MTA1ZWQ4MTYxMDVkNzU2NWI4MTE0NjEwNWY4NTc2MDAwODBmZDViNTA1NjViNjAwMDgxMzU5MDUwNjEwNjBhODE2MTA1ZTQ1NjViOTI5MTUwNTA1NjViNjAwMDgxMTUxNTkwNTA5MTkwNTA1NjViNjEwNjI1ODE2MTA2MTA1NjViODExNDYxMDYzMDU3NjAwMDgwZmQ1YjUwNTY1YjYwMDA4MTM1OTA1MDYxMDY0MjgxNjEwNjFjNTY1YjkyOTE1MDUwNTY1YjYwMDA4MDYwMDA4MDYwMDA2MGEwODY4ODAzMTIxNTYxMDY2NDU3NjEwNjYzNjEwNTZmNTY1YjViNjAwMDYxMDY3Mjg4ODI4OTAxNjEwNWMyNTY1Yjk1NTA1MDYwMjA2MTA2ODM4ODgyODkwMTYxMDVjMjU2NWI5NDUwNTA2MDQwNjEwNjk0ODg4Mjg5MDE2MTA1YzI1NjViOTM1MDUwNjA2MDYxMDZhNTg4ODI4OTAxNjEwNWZiNTY1YjkyNTA1MDYwODA2MTA2YjY4ODgyODkwMTYxMDYzMzU2NWI5MTUwNTA5Mjk1NTA5Mjk1OTA5MzUwNTY1YjYwMDA4MDYwMDA4MDYwODA4NTg3MDMxMjE1NjEwNmRkNTc2MTA2ZGM2MTA1NmY1NjViNWI2MDAwNjEwNmViODc4Mjg4MDE2MTA1YzI1NjViOTQ1MDUwNjAyMDYxMDZmYzg3ODI4ODAxNjEwNWMyNTY1YjkzNTA1MDYwNDA2MTA3MGQ4NzgyODgwMTYxMDVjMjU2NWI5MjUwNTA2MDYwNjEwNzFlODc4Mjg4MDE2MTA1ZmI1NjViOTE1MDUwOTI5NTkxOTQ1MDkyNTA1NjViNjAwMDgwZmQ1YjYwMDA2MDFmMTk2MDFmODMwMTE2OTA1MDkxOTA1MDU2NWI3ZjRlNDg3YjcxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MDAwNTI2MDQxNjAwNDUyNjAyNDYwMDBmZDViNjEwNzc4ODI2MTA3MmY1NjViODEwMTgxODExMDY3ZmZmZmZmZmZmZmZmZmZmZjgyMTExNzE1NjEwNzk3NTc2MTA3OTY2MTA3NDA1NjViNWI4MDYwNDA1MjUwNTA1MDU2NWI2MDAwNjEwN2FhNjEwNTY1NTY1YjkwNTA2MTA3YjY4MjgyNjEwNzZmNTY1YjkxOTA1MDU2NWI2MDAwNjdmZmZmZmZmZmZmZmZmZmZmODIxMTE1NjEwN2Q2NTc2MTA3ZDU2MTA3NDA1NjViNWI2MDIwODIwMjkwNTA2MDIwODE=", + "b64Record": "CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwRIckJGcCLZx+w4HzSuYVzbMUygyYUapvUQSXVPKHN9A/2BSjSQgtL4bmIoj8af6VGgwIx6qerQYQ69yVsgEiDwoJCIuqnq0GENYIEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA==" + }, + { + "b64Body": "Cg8KCQiLqp6tBhDcCBICGAISAhgDGJ2T3T0iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBjB4SAxiYCCKEHjAxOTA1MDkxOTA1MDU2NWI2MDAwODBmZDViNjAwMDYxMDdmZjYxMDdmYTg0NjEwN2JiNTY1YjYxMDdhMDU2NWI5MDUwODA4MzgyNTI2MDIwODIwMTkwNTA2MDIwODQwMjgzMDE4NTgxMTExNTYxMDgyMjU3NjEwODIxNjEwN2U3NTY1YjViODM1YjgxODExMDE1NjEwODRiNTc4MDYxMDgzNzg4ODI2MTA1YzI1NjViODQ1MjYwMjA4NDAxOTM1MDUwNjAyMDgxMDE5MDUwNjEwODI0NTY1YjUwNTA1MDkzOTI1MDUwNTA1NjViNjAwMDgyNjAxZjgzMDExMjYxMDg2YTU3NjEwODY5NjEwNzJhNTY1YjViODEzNTYxMDg3YTg0ODI2MDIwODYwMTYxMDdlYzU2NWI5MTUwNTA5MjkxNTA1MDU2NWI2MDAwNjdmZmZmZmZmZmZmZmZmZmZmODIxMTE1NjEwODllNTc2MTA4OWQ2MTA3NDA1NjViNWI2MDIwODIwMjkwNTA2MDIwODEwMTkwNTA5MTkwNTA1NjViNjAwMDYxMDhjMjYxMDhiZDg0NjEwODgzNTY1YjYxMDdhMDU2NWI5MDUwODA4MzgyNTI2MDIwODIwMTkwNTA2MDIwODQwMjgzMDE4NTgxMTExNTYxMDhlNTU3NjEwOGU0NjEwN2U3NTY1YjViODM1YjgxODExMDE1NjEwOTBlNTc4MDYxMDhmYTg4ODI2MTA1ZmI1NjViODQ1MjYwMjA4NDAxOTM1MDUwNjAyMDgxMDE5MDUwNjEwOGU3NTY1YjUwNTA1MDkzOTI1MDUwNTA1NjViNjAwMDgyNjAxZjgzMDExMjYxMDkyZDU3NjEwOTJjNjEwNzJhNTY1YjViODEzNTYxMDkzZDg0ODI2MDIwODYwMTYxMDhhZjU2NWI5MTUwNTA5MjkxNTA1MDU2NWI2MDAwODA2MDAwODA2MDgwODU4NzAzMTIxNTYxMDk2MDU3NjEwOTVmNjEwNTZmNTY1YjViNjAwMDYxMDk2ZTg3ODI4ODAxNjEwNWMyNTY1Yjk0NTA1MDYwMjA4NTAxMzU2N2ZmZmZmZmZmZmZmZmZmZmY4MTExMTU2MTA5OGY1NzYxMDk4ZTYxMDU3NDU2NWI1YjYxMDk5Yjg3ODI4ODAxNjEwODU1NTY1YjkzNTA1MDYwNDA4NTAxMzU2N2ZmZmZmZmZmZmZmZmZmZmY4MTExMTU2MTA5YmM1NzYxMDliYjYxMDU3NDU2NWI1YjYxMDljODg3ODI4ODAxNjEwODU1NTY1YjkyNTA1MDYwNjA4NTAxMzU2N2ZmZmZmZmZmZmZmZmZmZmY4MTExMTU2MTA5ZTk1NzYxMDllODYxMDU3NDU2NWI1YjYxMDlmNTg3ODI4ODAxNjEwOTE4NTY1YjkxNTA1MDkyOTU5MTk0NTA5MjUwNTY1YjYxMGEwYTgxNjEwNTk5NTY1YjgyNTI1MDUwNTY1YjYxMGExOTgxNjEwNWQ3NTY1YjgyNTI1MDUwNTY1YjYwMDA2MDgwODIwMTkwNTA2MTBhMzQ2MDAwODMwMTg3NjEwYTAxNTY1YjYxMGE0MTYwMjA4MzAxODY2MTBhMDE1NjViNjEwYTRlNjA0MDgzMDE4NTYxMGEwMTU2NWI2MTBhNWI2MDYwODMwMTg0NjEwYTEwNTY1Yjk1OTQ1MDUwNTA1MDUwNTY1YjYwMDA4MTUxOTA1MDkxOTA1MDU2NWI2MDAwODE5MDUwOTI5MTUwNTA1NjViNjAwMDViODM4MTEwMTU2MTBhOTg1NzgwODIwMTUxODE4NDAxNTI2MDIwODEwMTkwNTA2MTBhN2Q1NjViNjAwMDg0ODQwMTUyNTA1MDUwNTA1NjViNjAwMDYxMGFhZjgyNjEwYTY0NTY1YjYxMGFiOTgxODU2MTBhNmY1NjViOTM1MDYxMGFjOTgxODU2MDIwODYwMTYxMGE3YTU2NWI4MDg0MDE5MTUwNTA5MjkxNTA1MDU2NWI2MDAwNjEwYWUxODI4NDYxMGFhNDU2NWI5MTUwODE5MDUwOTI5MTUwNTA1NjViNjAwMDgxNjAwMzBiOTA1MDkxOTA1MDU2NWI2MTBiMDI4MTYxMGFlYzU2NWI4MTE0NjEwYjBkNTc2MDAwODBmZDViNTA1NjViNjAwMDgxNTE5MDUwNjEwYjFmODE2MTBhZjk1NjViOTI5MTUwNTA1NjViNjAwMDYwMjA4Mjg0MDMxMjE1NjEwYjNiNTc2MTBiM2E2MTA1NmY1NjViNWI2MDAwNjEwYjQ5ODQ4Mjg1MDE2MTBiMTA1NjViOTE1MDUwOTI5MTUwNTA1NjViNjAwMDgyODI1MjYwMjA4MjAxOTA1MDkyOTE1MDUwNTY1YjdmNTc2OTczNjgyYzIwNjM2ZjZkNmQ2MTZlNjQyYzIwNjU3NDYzMmUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYwMDA4MjAxNTI1MDU2NWI2MDAwNjEwYjk5NjAxMzgzNjEwYjUyNTY1YjkxNTA2MTBiYTQ4MjYxMGI2MzU2NWI2MDIwODIwMTkwNTA5MTkwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDgxODEwMzYwMDA4MzAxNTI2MTBiYzg4MTYxMGI4YzU2NWI5MDUwOTE5MDUwNTY1YjYwMDA4MTUxOTA1MDkxOTA1MDU2NWI2MDAwODI4MjUyNjAyMDgyMDE5MDUwOTI5MTUwNTA1NjViNjAwMDgxOTA1MDYwMjA4MjAxOTA1MDkxOTA1MDU2NWI2MTBjMDQ4MTYxMDU5OTU2NWI4MjUyNTA1MDU2NWI2MDAwNjEwYzE2ODM4MzYxMGJmYjU2NWI2MDIwODMwMTkwNTA5MjkxNTA1MDU2NWI2MDAwNjAyMDgyMDE5MDUwOTE5MDUwNTY1YjYwMDA2MTBjM2E4MjYxMGJjZjU2NWI2MTBjNDQ4MTg1NjEwYmRhNTY1YjkzNTA2MTBjNGY4MzYxMGJlYjU2NWI4MDYwMDA1YjgzODExMDE1NjEwYzgwNTc4MTUxNjEwYzY3ODg4MjYxMGMwYTU2NWI5NzUwNjEwYzcyODM2MTBjMjI1NjViOTI1MDUwNjAwMTgxMDE5MDUwNjEwYzUzNTY1YjUwODU5MzUwNTA1MDUwOTI5MTUwNTA1NjViNjAwMDgxNTE5MDUwOTE5MDUwNTY1YjYwMDA4MjgyNTI2MDIwODIwMTkwNTA5MjkxNTA1MDU2NWI2MDAwODE5MDUwNjAyMDgyMDE5MDUwOTE5MDUwNTY1YjYxMGNjMjgxNjEwNWQ3NTY1YjgyNTI1MDUwNTY1YjYwMDA2MTBjZDQ4MzgzNjEwY2I5NTY1YjYwMjA4MzAxOTA1MDkyOTE1MDUwNTY1YjYwMDA2MDIwODIwMTkwNTA5MTkwNTA1NjViNjAwMDYxMGNmODgyNjEwYzhkNTY1YjYxMGQwMjgxODU2MTBjOTg1NjViOTM1MDYxMGQwZDgzNjEwY2E5NTY1YjgwNjAwMDViODM4MTEwMTU2MTBkM2U1NzgxNTE2MTBkMjU4ODgyNjEwY2M4NTY1Yjk3NTA2MTBkMzA4MzYxMGNlMDU2NWI5MjUwNTA2MDAxODEwMTkwNTA2MTBkMTE1NjViNTA4NTkzNTA1MDUwNTA5MjkxNTA1MDU2NWI2MDAwNjA4MDgyMDE5MDUwNjEwZDYwNjAwMDgzMDE4NzYxMGEwMTU2NWI4MTgxMDM2MDIwODMwMTUyNjEwZDcyODE4NjYxMGMyZjU2NWI5MDUwODE4MTAzNjA0MDgzMDE1MjYxMGQ4NjgxODU2MTBjMmY1NjViOTA1MDgxODEwMzYwNjA4MzAxNTI2MTBkOWE4MTg0NjEwY2VkNTY1YjkwNTA5NTk0NTA1MDUwNTA1MDU2NWI2MTBkYWU4MTYxMDYxMDU2NWI4MjUyNTA1MDU2NWI2MDAwNjBhMDgyMDE5MDUwNjEwZGM5NjAwMDgzMDE4ODYxMGEwMTU2NWI2MTBkZDY2MDIwODMwMTg3NjEwYTAxNTY1YjYxMGRlMzYwNDA4MzAxODY2MTBhMDE1NjViNjEwZGYwNjA2MDgzMDE4NTYxMGExMDU2NWI2MTBkZmQ2MDgwODMwMTg0NjEwZGE1NTY1Yjk2OTU1MDUwNTA1MDUwNTA1NjViNjAwMDgxNjBlMDFjOTA1MDkxOTA1MDU2NWI2MDAwNjAwMzNkMTExNTYxMGUzMzU3NjAwNDYwMDA4MDNlNjEwZTMwNjAwMDUxNjEwZTA3NTY1YjkwNTA1YjkwNTY1YjYwMDA2MDQ0M2QxMDYxMGVjMzU3NjEwZTQ4NjEwNTY1NTY1YjYwMDQzZDAzNjAwNDgyM2U4MDUxM2Q2MDI0ODIwMTExNjdmZmZmZmZmZmZmZmZmZmZmODIxMTE3MTU2MTBlNzA1NzUwNTA2MTBlYzM1NjViODA4MjAxODA1MTY3ZmZmZmZmZmZmZmZmZmZmZjgxMTExNTYxMGU4ZTU3NTA1MDUwNTA2MTBlYzM1NjViODA2MDIwODMwMTAxNjAwNDNkMDM4NTAxODExMTE1NjEwZWFiNTc1MDUwNTA1MDUwNjEwZWMzNTY1YjYxMGViYTgyNjAyMDAxODUwMTg2NjEwNzZmNTY1YjgyOTU1MDUwNTA1MDUwNTA1YjkwNTY1YjYwMDA4MTUxOTA1MDkxOTA1MDU2NWI2MDAwNjEwZWRjODI2MTBlYzY1NjViNjEwZWU2ODE4NTYxMGI1MjU2NWI5MzUwNjEwZWY2ODE4NTYwMjA4NjAxNjEwYTdhNTY1YjYxMGVmZjgxNjEwNzJmNTY1Yjg0MDE5MTUwNTA5MjkxNTA1MDU2NWI2MDAwNjAyMDgyMDE5MDUwODE4MTAzNjAwMDgzMDE1MjYxMGYyNDgxODQ2MTBlZDE1NjViOTA1MDkyOTE1MDUwNTZmZWEyNjQ2OTcwNjY3MzU4MjIxMjIwNjJlMDI1Yjg1OWZlMmRlOWM3OGY5ZjU0NTgyNjdkYTE4MWM2M2I3NjQwYTE3MDdiM2U5NWU0YmNmOGZjZGVhNTY0NzM2ZjZjNjM0MzAwMDgxMDAwMzM=", + "b64Record": "CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwN+6izxa1hclRRc4b7k5gOAIX1RXuwZb3ycz7/MNduhMicrVMh3AW3sC7KX8Y/ge0GgwIx6qerQYQw92SswMiDwoJCIuqnq0GENwIEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA==" + }, + { + "b64Body": "Cg8KCQiMqp6tBhDeCBICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGJgIGiISIA04xq3OOzzftsI9uJFrEPkyfHZVOwSTATTO29N3LGkOIJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==", + "b64Record": "CiUIFiIDGJkIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBTpLduSIOF+PD4dVhLcStfp3cquavGda+FYi7Mld9wcn3fnxEX381SnCKXU7Xs8zIaDAjIqp6tBhDrlJK7ASIPCgkIjKqerQYQ3ggSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQpchCgMYmQgS4h5ggGBAUjSAFWEAEFdgAID9W1BgBDYQYQBMV2AANWDgHIBjE9ZFeBRhAFFXgGMvehd5FGEAbVeAY55mZhQUYQCJV4BjrnzPzhRhAKVXW2AAgP1bYQBrYASANgOBAZBhAGaRkGEGSFZbYQDBVlsAW2EAh2AEgDYDgQGQYQCCkZBhBsNWW2ECKlZbAFthAKNgBIA2A4EBkGEAnpGQYQlGVlthA1FWWwBbYQC/YASANgOBAZBhALqRkGEGw1ZbYQR4VlsAW2AAgGEBZ3P//////////////////////////xZjXPyQEWDgG4iIiIhgQFFgJAFhAPyUk5KRkGEKH1ZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQFmkZBhCtVWW2AAYEBRgIMDgWAAhlrxkVBQPYBgAIEUYQGjV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YQGoVltgYJFQW1CRUJFQgWEBt1dgAID9W2AAgYBgIAGQUYEBkGEBzZGQYQslVluQUGAWgWADCxRhAd9XYACA/VuDFWECIFdgQFF/CMN5oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBUmAEAWECF5BhC69WW2BAUYCRA5D9W1BQUFBQUFBQVltgAIBhAWdz//////////////////////////8WY+yjaRdg4BuHh4eHYEBRYCQBYQJllJOSkZBhCh9WW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWECz5GQYQrVVltgAGBAUYCDA4FgAIZa8ZFQUD2AYACBFGEDDFdgQFGRUGAfGWA/PQEWggFgQFI9glI9YABgIIQBPmEDEVZbYGCRUFtQkVCRUIFhAyBXYACA/VtgAIGAYCABkFGBAZBhAzaRkGELJVZbkFBgFoFgAwsUYQNIV2AAgP1bUFBQUFBQUFZbYACAYQFnc///////////////////////////FmMsS6GRYOAbh4eHh2BAUWAkAWEDjJSTkpGQYQ1LVltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhA/aRkGEK1VZbYABgQFGAgwOBYACGWvGRUFA9gGAAgRRhBDNXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hBDhWW2BgkVBbUJFQkVCBYQRHV2AAgP1bYACBgGAgAZBRgQGQYQRdkZBhCyVWW5BQYBaBYAMLFGEEb1dgAID9W1BQUFBQUFBWWzBz//////////////////////////8WYxPWRXiFhYWFYAFgQFGGY/////8WYOAbgVJgBAFhBLqVlJOSkZBhDbRWW2AAYEBRgIMDgWAAh4A7FYAVYQTUV2AAgP1bUFrxklBQUIAVYQTlV1BgAVthBV5XYQTxYQ4UVluAYwjDeaADYQVNV1BhBQVhDjZWW4BhBRBXUGEFT1Zbf88071N6wz7hrGJsoVh6Cn6OUVYeVRT4yzavocUQKzurgWBAUWEFP5GQYQ8KVltgQFGAkQOQoVBhBVlWW1BbPWAAgD49YAD9W2EFX1ZbW1BQUFBWW2AAYEBRkFCQVltgAID9W2AAgP1bYABz//////////////////////////+CFpBQkZBQVltgAGEFpIJhBXlWW5BQkZBQVlthBbSBYQWZVluBFGEFv1dgAID9W1BWW2AAgTWQUGEF0YFhBatWW5KRUFBWW2AAgWAHC5BQkZBQVlthBe2BYQXXVluBFGEF+FdgAID9W1BWW2AAgTWQUGEGCoFhBeRWW5KRUFBWW2AAgRUVkFCRkFBWW2EGJYFhBhBWW4EUYQYwV2AAgP1bUFZbYACBNZBQYQZCgWEGHFZbkpFQUFZbYACAYACAYABgoIaIAxIVYQZkV2EGY2EFb1ZbW2AAYQZyiIKJAWEFwlZblVBQYCBhBoOIgokBYQXCVluUUFBgQGEGlIiCiQFhBcJWW5NQUGBgYQaliIKJAWEF+1ZbklBQYIBhBraIgokBYQYzVluRUFCSlVCSlZCTUFZbYACAYACAYICFhwMSFWEG3VdhBtxhBW9WW1tgAGEG64eCiAFhBcJWW5RQUGAgYQb8h4KIAWEFwlZbk1BQYEBhBw2HgogBYQXCVluSUFBgYGEHHoeCiAFhBftWW5FQUJKVkZRQklBWW2AAgP1bYABgHxlgH4MBFpBQkZBQVlt/Tkh7cQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAFJgQWAEUmAkYAD9W2EHeIJhBy9WW4EBgYEQZ///////////ghEXFWEHl1dhB5ZhB0BWW1uAYEBSUFBQVltgAGEHqmEFZVZbkFBhB7aCgmEHb1ZbkZBQVltgAGf//////////4IRFWEH1ldhB9VhB0BWW1tgIIICkFBgIIEBkFCRkFBWW2AAgP1bYABhB/9hB/qEYQe7VlthB6BWW5BQgIOCUmAgggGQUGAghAKDAYWBERVhCCJXYQghYQfnVltbg1uBgRAVYQhLV4BhCDeIgmEFwlZbhFJgIIQBk1BQYCCBAZBQYQgkVltQUFCTklBQUFZbYACCYB+DARJhCGpXYQhpYQcqVltbgTVhCHqEgmAghgFhB+xWW5FQUJKRUFBWW2AAZ///////////ghEVYQieV2EInWEHQFZbW2AgggKQUGAggQGQUJGQUFZbYABhCMJhCL2EYQiDVlthB6BWW5BQgIOCUmAgggGQUGAghAKDAYWBERVhCOVXYQjkYQfnVltbg1uBgRAVYQkOV4BhCPqIgmEF+1ZbhFJgIIQBk1BQYCCBAZBQYQjnVltQUFCTklBQUFZbYACCYB+DARJhCS1XYQksYQcqVltbgTVhCT2EgmAghgFhCK9WW5FQUJKRUFBWW2AAgGAAgGCAhYcDEhVhCWBXYQlfYQVvVltbYABhCW6HgogBYQXCVluUUFBgIIUBNWf//////////4ERFWEJj1dhCY5hBXRWW1thCZuHgogBYQhVVluTUFBgQIUBNWf//////////4ERFWEJvFdhCbthBXRWW1thCciHgogBYQhVVluSUFBgYIUBNWf//////////4ERFWEJ6VdhCehhBXRWW1thCfWHgogBYQkYVluRUFCSlZGUUJJQVlthCgqBYQWZVluCUlBQVlthChmBYQXXVluCUlBQVltgAGCAggGQUGEKNGAAgwGHYQoBVlthCkFgIIMBhmEKAVZbYQpOYECDAYVhCgFWW2EKW2BggwGEYQoQVluVlFBQUFBQVltgAIFRkFCRkFBWW2AAgZBQkpFQUFZbYABbg4EQFWEKmFeAggFRgYQBUmAggQGQUGEKfVZbYACEhAFSUFBQUFZbYABhCq+CYQpkVlthCrmBhWEKb1Zbk1BhCsmBhWAghgFhCnpWW4CEAZFQUJKRUFBWW2AAYQrhgoRhCqRWW5FQgZBQkpFQUFZbYACBYAMLkFCRkFBWW2ELAoFhCuxWW4EUYQsNV2AAgP1bUFZbYACBUZBQYQsfgWEK+VZbkpFQUFZbYABgIIKEAxIVYQs7V2ELOmEFb1ZbW2AAYQtJhIKFAWELEFZbkVBQkpFQUFZbYACCglJgIIIBkFCSkVBQVlt/V2lzaCwgY29tbWFuZCwgZXRjLgAAAAAAAAAAAAAAAABgAIIBUlBWW2AAYQuZYBODYQtSVluRUGELpIJhC2NWW2AgggGQUJGQUFZbYABgIIIBkFCBgQNgAIMBUmELyIFhC4xWW5BQkZBQVltgAIFRkFCRkFBWW2AAgoJSYCCCAZBQkpFQUFZbYACBkFBgIIIBkFCRkFBWW2EMBIFhBZlWW4JSUFBWW2AAYQwWg4NhC/tWW2AggwGQUJKRUFBWW2AAYCCCAZBQkZBQVltgAGEMOoJhC89WW2EMRIGFYQvaVluTUGEMT4NhC+tWW4BgAFuDgRAVYQyAV4FRYQxniIJhDApWW5dQYQxyg2EMIlZbklBQYAGBAZBQYQxTVltQhZNQUFBQkpFQUFZbYACBUZBQkZBQVltgAIKCUmAgggGQUJKRUFBWW2AAgZBQYCCCAZBQkZBQVlthDMKBYQXXVluCUlBQVltgAGEM1IODYQy5VltgIIMBkFCSkVBQVltgAGAgggGQUJGQUFZbYABhDPiCYQyNVlthDQKBhWEMmFZbk1BhDQ2DYQypVluAYABbg4EQFWENPleBUWENJYiCYQzIVluXUGENMINhDOBWW5JQUGABgQGQUGENEVZbUIWTUFBQUJKRUFBWW2AAYICCAZBQYQ1gYACDAYdhCgFWW4GBA2AggwFSYQ1ygYZhDC9WW5BQgYEDYECDAVJhDYaBhWEML1ZbkFCBgQNgYIMBUmENmoGEYQztVluQUJWUUFBQUFBWW2ENroFhBhBWW4JSUFBWW2AAYKCCAZBQYQ3JYACDAYhhCgFWW2EN1mAggwGHYQoBVlthDeNgQIMBhmEKAVZbYQ3wYGCDAYVhChBWW2EN/WCAgwGEYQ2lVluWlVBQUFBQUFZbYACBYOAckFCRkFBWW2AAYAM9ERVhDjNXYARgAIA+YQ4wYABRYQ4HVluQUFuQVltgAGBEPRBhDsNXYQ5IYQVlVltgBD0DYASCPoBRPWAkggERZ///////////ghEXFWEOcFdQUGEOw1ZbgIIBgFFn//////////+BERVhDo5XUFBQUGEOw1ZbgGAggwEBYAQ9A4UBgREVYQ6rV1BQUFBQYQ7DVlthDrqCYCABhQGGYQdvVluClVBQUFBQUFuQVltgAIFRkFCRkFBWW2AAYQ7cgmEOxlZbYQ7mgYVhC1JWW5NQYQ72gYVgIIYBYQp6VlthDv+BYQcvVluEAZFQUJKRUFBWW2AAYCCCAZBQgYEDYACDAVJhDySBhGEO0VZbkFCSkVBQVv6iZGlwZnNYIhIgYuAluFn+LenHj59UWCZ9oYHGO3ZAoXB7PpXkvPj83qVkc29sY0MACBAAMyKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAowJoMOgMYmQhKFgoUAAAAAAAAAAAAAAAAAAAAAAAABBlyBwoDGJkIEAFSFgoJCgIYAhD/ssUNCgkKAhhiEICzxQ0=" + }, + { + "b64Body": "Cg8KCQiMqp6tBhDgCBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIAS5Q+1gkmoc8gzDClJ4eXDsZ2kgomlFV2R+aoydIQsAEICU69wDSgUIgM7aAw==", + "b64Record": "CiUIFhIDGJoIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAFRQQmVUoTMiWLycNvJHLOfoRzE+fiKlWrbW5GGHHWYpmZsvQGR9Wlj4T7KiS0jU0aDAjIqp6tBhDrqfO8AyIPCgkIjKqerQYQ4AgSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxiaCBCAqNa5Bw==" + }, + { + "b64Body": "Cg8KCQiNqp6tBhDiCBICGAISAhgDGPWc3ugCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAUkKA25mdBIIU1FNU0tOSFMqAxiaCFIiEiB1PxsPpzXmtGGP/M3nIMS8OXLA8h2xyY8G0z+e5j3etWoMCMn4+LAGENC0kLkBiAEB", + "b64Record": "CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGJsIEjBqNhcrdeyRPRTbQaIiQI8IL2mmx0eTnlnX1NvxQZ4ZCU5YuwvzGdxHVJoprR2vbhAaDAjJqp6tBhCr3prFASIPCgkIjaqerQYQ4ggSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAcgoKAxibCBIDGJoI" + }, + { + "b64Body": "Cg8KCQiNqp6tBhDoCBICGAISAhgDGNPtlwgiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjqoCDwoDGJsIGghPTkUgVElNRQ==", + "b64Record": "CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1gBcgEBEjCIzEXPkcVtERrqRPX+1j+iFpjRoKHPbv6JBHSZ1grM7m5DKe2mTbDON537BZ+bz2caDAjJqp6tBhCr24PHAyIPCgkIjaqerQYQ6AgSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWhIKAxibCBoLCgIYABIDGJoIGAE=" + }, + { + "b64Body": "Cg8KCQiOqp6tBhDsCBICGAISAhgDGID+tYcBIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46sQEKAxiZCBCAkvQBIqQBE9ZFeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9GWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", + "b64Record": "CiUIISIDGJkIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDXIKROJbdUe3s/PKd5IAsm6yWRASYyLbNEC6JShN83D1bjbc+nZnAAElbVsQf99Y4aDAjKqp6tBhCrtd3PASIPCgkIjqqerQYQ7AgSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCAmKtsOgkaAjB4KICowwFSGAoKCgIYAhD/r9bYAQoKCgIYYhCAsNbYAQ==" + } + ] + } + } +} \ No newline at end of file diff --git a/hedera-node/test-clients/record-snapshots/LeakyContractTests.json b/hedera-node/test-clients/record-snapshots/LeakyContractTests.json index 5293e6d8fe74..684cda769253 100644 --- a/hedera-node/test-clients/record-snapshots/LeakyContractTests.json +++ b/hedera-node/test-clients/record-snapshots/LeakyContractTests.json @@ -1 +1 @@ -{"specSnapshots":{"htsTransferFromForNFTViaContractCreateLazyCreate":{"placeholderNum":1007,"encodedItems":[{"b64Body":"Cg4KCAjZ/M6tBhBPEgIYAhICGAMY/svNLCICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOigGPARIMCJXLqbEGEIi36e4CGm0KIhIgwFiapi3PJDgf7Rojp1XyUodSs86WZsCkYyRwlVX0K3oKIzohA18uoVz0gvv4/PCDptXa1j4qzChLiPsztl/GlTzmsIeZCiISIP1sBW60zZcohKhMIVoRRf3XS8QAZA51VdMEVR4zHXc+IgxIZWxsbyBXb3JsZCEqADIA","b64Record":"CiUIFhoDGPAHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjB+O9WBEdDEDeEJsAMYw5V5Q2tZurLPTun9G20v8p2z9+HVOp/KLPJiW0yIoMvPSGkaDAiV/c6tBhDD57aYAyIOCggI2fzOrQYQTxICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgA="},{"b64Body":"Cg4KCAja/M6tBhBTEgIYAhICGAMYodLHMSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOmgHICQoDGPAHIsAJNjA4MDYwNDA1MjYwNDA1MTYxMDI2MDM4MDM4MDYxMDI2MDgzMzk4MTgxMDE2MDQwNTI4MTAxOTA2MTAwMjU5MTkwNjEwMTMyNTY1YjVmODE3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjM0NjA0MDUxNjEwMDRhOTA2MTAxOGE1NjViNWY2MDQwNTE4MDgzMDM4MTg1ODc1YWYxOTI1MDUwNTAzZDgwNWY4MTE0NjEwMDg0NTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDVmNjAyMDg0MDEzZTYxMDA4OTU2NWI2MDYwOTE1MDViNTA1MDkwNTA4MDYxMDBjZDU3NjA0MDUxN2YwOGMzNzlhMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODE1MjYwMDQwMTYxMDBjNDkwNjEwMWY4NTY1YjYwNDA1MTgwOTEwMzkwZmQ1YjUwNTA2MTAyMTY1NjViNWY4MGZkNWI1ZjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgyMTY5MDUwOTE5MDUwNTY1YjVmNjEwMTAxODI2MTAwZDg1NjViOTA1MDkxOTA1MDU2NWI2MTAxMTE4MTYxMDBmNzU2NWI4MTE0NjEwMTFiNTc1ZjgwZmQ1YjUwNTY1YjVmODE1MTkwNTA2MTAxMmM4MTYxMDEwODU2NWI5MjkxNTA1MDU2NWI1ZjYwMjA4Mjg0MDMxMjE1NjEwMTQ3NTc2MTAxNDY2MTAwZDQ1NjViNWI1ZjYxMDE1NDg0ODI4NTAxNjEwMTFlNTY1YjkxNTA1MDkyOTE1MDUwNTY1YjVmODE5MDUwOTI5MTUwNTA1NjViNTA1NjViNWY2MTAxNzU1ZjgzNjEwMTVkNTY1YjkxNTA2MTAxODA4MjYxMDE2NzU2NWI1ZjgyMDE5MDUwOTE5MDUwNTY1YjVmNjEwMTk0ODI2MTAxNmE1NjViOTE1MDgxOTA1MDkxOTA1MDU2NWI1ZjgyODI1MjYwMjA4MjAxOTA1MDkyOTE1MDUwNTY1YjdmNDY2MTY5NmM2NTY0MjA3NDZmMjA3MzY1NmU2NDIwNzY2MTZjNzU2NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVmODIwMTUyNTA1NjViNWY2MTAxZTI2MDE0ODM2MTAxOWU1NjViOTE1MDYxMDFlZDgyNjEwMWFlNTY1YjYwMjA4MjAxOTA1MDkxOTA1MDU2NWI1ZjYwMjA4MjAxOTA1MDgxODEwMzVmODMwMTUyNjEwMjBmODE2MTAxZDY1NjViOTA1MDkxOTA1MDU2NWI2MDNlODA2MTAyMjI1ZjM5NWZmM2ZlNjA4MDYwNDA1MjVmODBmZGZlYTI2NDY5NzA2NjczNTgyMjEyMjAwYzc4ODVmYmUyY2ZjYWZjNzJjYTg0YjhkNjQ3ZTNmYjM1MjVjMTNiMjNiNzFmYjQ3NWU4MGE2ZmE2M2MxOTM2NjQ3MzZmNmM2MzQzMDAwODE1MDAzMw==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwtBSMfzJfk6jDj5MmW3avD9O8omYIfyc4SgFWKfdDorMR6YzyBxy+JgT1gryiWSifGgwIlv3OrQYQg/u32gEiDgoICNr8zq0GEFMSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"ChAKCAjb/M6tBhBVEgIYAiABWjgKAjIASgUIgM7aA2oUbGF6eS1jcmVhdGVkIGFjY291bnSSARQMVswU9yK1QV8XWRkxiPFOHl/lBw==","b64Record":"CgcIFhIDGPIHEjCG1CEH8LDchqzH8UC0+dKYO+IuVpflQwqHB7POolRvcDMWG/1pWKgAeftnlE3uYgkaDAiX/c6tBhC63P2cAiIQCggI2/zOrQYQVRICGAIgASoUbGF6eS1jcmVhdGVkIGFjY291bnRSAA=="},{"b64Body":"Cg4KCAjb/M6tBhBVEgIYAhICGAMY9v32ngIiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjkJqCgMY8AcaIhIg7EwWsnrLY9eWXO+z8wQmUeIdmj1CaxzNIoF5lXQr9JMgwIQ9KOgHQgUIgM7aA0ogAAAAAAAAAAAAAAAADFbMFPcitUFfF1kZMYjxTh5f5QdSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGPEHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCKiIHFbLs73WHHFRqmA/DUTXoOld27WZi7uLO4ASZujUHXt9R9V6q/uKgBjbqkG8waDAiX/c6tBhC73P2cAiIOCggI2/zOrQYQVRICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMIDmihtC8gIKAxjxBxI+YIBgQFJfgP3+omRpcGZzWCISIAx4hfviz8r8csqEuNZH4/s1JcE7I7cftHXoCm+mPBk2ZHNvbGNDAAgVADMigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKIDqMDoDGPEHShYKFAAAAAAAAAAAAAAAAAAAAAAAAAPxcgcKAxjxBxABUiAKCQoCGAIQz9uVNgoJCgIYYhCAzJU2CggKAxjyBxDQDw=="}]}}} \ No newline at end of file +{"specSnapshots":{"transferToCaller":{"placeholderNum":1001,"encodedItems":[{"b64Body":"Cg8KCQi2s+StBhDSBxICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAjygb+xBhCg0aefAhptCiISIPgufngKMTvsSSR9yyPNZxBt4Dhu/6GWP0CyA+00ds3iCiM6IQO0N5cDAmBXd1eUdAu9zHujlJrWSf+FS/4uaULcVrpSmwoiEiBEEwDqGNnpzm0FlEXxS1ltiQesZNx/TPFJf2r+9XacZSIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGOoHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjD2SGXnci5U0BHs0Fh/hkCjAwAbfSWS8FtacoYQzR5Ho/0RMo3Yqlhh52s9GAcTSqsaDAjys+StBhCzzOavAiIPCgkItrPkrQYQ0gcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQi3s+StBhDWBxICGAISAhgDGPOGlzoiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBghkKAxjqByL6GDYwODA2MDQwNTI2MTA2MmE4MDYxMDAxMzYwMDAzOTYwMDBmM2ZlNjA4MDYwNDA1MjYwMDQzNjEwNjEwMDRhNTc2MDAwMzU2MGUwMWM4MDYzMjZhYjk3ZWExNDYxMDA0YzU3ODA2MzhkZDk4MDQzMTQ2MTAwOWE1NzgwNjNhY2VmNjAzNzE0NjEwMGM4NTc4MDYzZDJhMGZlMjYxNDYxMDExNjU3ODA2M2UxMmUzMjM4MTQ2MTAxYTQ1NzViMDA1YjYxMDA5ODYwMDQ4MDM2MDM2MDQwODExMDE1NjEwMDYyNTc2MDAwODBmZDViODEwMTkwODA4MDM1NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY5MDYwMjAwMTkwOTI5MTkwODAzNTkwNjAyMDAxOTA5MjkxOTA1MDUwNTA2MTAxZjI1NjViMDA1YjYxMDBjNjYwMDQ4MDM2MDM2MDIwODExMDE1NjEwMGIwNTc2MDAwODBmZDViODEwMTkwODA4MDM1OTA2MDIwMDE5MDkyOTE5MDUwNTA1MDYxMDQyMzU2NWIwMDViNjEwMTE0NjAwNDgwMzYwMzYwNDA4MTEwMTU2MTAwZGU1NzYwMDA4MGZkNWI4MTAxOTA4MDgwMzU3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjkwNjAyMDAxOTA5MjkxOTA4MDM1OTA2MDIwMDE5MDkyOTE5MDUwNTA1MDYxMDQ2ZDU2NWIwMDViNjEwMWEyNjAwNDgwMzYwMzYwODA4MTEwMTU2MTAxMmM1NzYwMDA4MGZkNWI4MTAxOTA4MDgwMzU3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjkwNjAyMDAxOTA5MjkxOTA4MDM1NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY5MDYwMjAwMTkwOTI5MTkwODAzNTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2OTA2MDIwMDE5MDkyOTE5MDgwMzU5MDYwMjAwMTkwOTI5MTkwNTA1MDUwNjEwNGI4NTY1YjAwNWI2MTAxZjA2MDA0ODAzNjAzNjA0MDgxMTAxNTYxMDFiYTU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2OTA2MDIwMDE5MDkyOTE5MDgwMzU5MDYwMjAwMTkwOTI5MTkwNTA1MDUwNjEwNWE3NTY1YjAwNWI4MTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjEwOGZjODI5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTU4MDE1NjEwMjM4NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwODE3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYxMDhmYzYwMDI4MzgxNjEwMjVkNTdmZTViMDQ5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTU4MDE1NjEwMjg5NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwODE3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYxMDhmYzYwMDQ4MzgxNjEwMmFlNTdmZTViMDQ5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTU4MDE1NjEwMmRhNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwODE3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYxMDhmYzYwMDg4MzgxNjEwMmZmNTdmZTViMDQ5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTU4MDE1NjEwMzJiNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwODE3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYxMDhmYzYwMTA4MzgxNjEwMzUwNTdmZTViMDQ5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTU4MDE1NjEwMzdjNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwODE3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYxMDhmYzYwMjA4MzgxNjEwM2ExNTdmZTViMDQ5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTU4MDE1NjEwM2NkNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwODE3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYxMDhmYzYwNDA4MzgxNjEwM2YyNTdmZTViMDQ5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTU4MDE1NjEwNDFlNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDU2NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjEwOGZjODI5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTU4MDE1NjEwNDY5NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1NjViODE3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYxMDhmYzgyOTA4MTE1MDI5MDYwNDA1MTYwMDA2MDQwNTE4MDgzMDM4MTg1ODg4OGYxOTM1MDUwNTA1MDE1ODAxNTYxMDRiMzU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1NjViODM3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYxMDhmYzgyOTA4MTE1MDI5MDYwNDA1MTYwMDA2MDQwNTE4MDgzMDM4MTg1ODg4OGYxOTM1MDUwNTA1MDE1ODAxNTYxMDRmZTU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDgyNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MTA4ZmM2MDAyODM4MTYxMDUyMzU3ZmU1YjA0OTA4MTE1MDI5MDYwNDA1MTYwMDA2MDQwNTE4MDgzMDM4MTg1ODg4OGYxOTM1MDUwNTA1MDE1ODAxNTYxMDU0ZjU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MTA4ZmM2MDA0ODM4MTYxMDU3NDU3ZmU1YjA0OTA4MTE1MDI5MDYwNDA1MTYwMDA2MDQwNTE4MDgzMDM4MTg1ODg4OGYxOTM1MDUwNTA1MDE1ODAxNTYxMDVhMDU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDUwNTY1YjgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MTA4ZmM4MjYwMDAwMzkwODExNTAyOTA2MDQwNTE2MDAwNjA0MDUxODA4MzAzODE4NTg4ODhmMTkzNTA1MDUwNTAxNTgwMTU2MTA1ZjA1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTZmZWEyNjU2MjdhN2E3MjMxNTgyMGNmNzkxYmJmNDdkY2I2MTM5Mzc0NDA1MmE2MjBmNzcxYjQyOWYwNzFmMDJlMzY1N2NlM2U1ZjgwYWIzZjk3YmQ2NDczNmY2YzYzNDMwMDA1MTEwMDMy","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwH6f3uLAjviteZpBp082qPC5wR8a2H4QX8rPVUJTube/MS5iueq2vixbJ2j2+3qegGgsI87PkrQYQ08y9VCIPCgkIt7PkrQYQ1gcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQi3s+StBhDYBxICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CSAoDGOoHGiISIIM0m7o53jF4pRUkMED9xRgRv66eFsbfVbVdhn9waG5DIJChDyiQTkIFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGOsHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCmZFSFcPYqFVBcumQybLFeLCrrl/OqpphUh7Lnbnfb2xFcOs1lCg14T+frsAKjGUYaDAjzs+StBhCbycvVAiIPCgkIt7PkrQYQ2AcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQt8OCgMY6wcSqgxggGBAUmAENhBhAEpXYAA1YOAcgGMmq5fqFGEATFeAY43ZgEMUYQCaV4BjrO9gNxRhAMhXgGPSoP4mFGEBFleAY+EuMjgUYQGkV1sAW2EAmGAEgDYDYECBEBVhAGJXYACA/VuBAZCAgDVz//////////////////////////8WkGAgAZCSkZCANZBgIAGQkpGQUFBQYQHyVlsAW2EAxmAEgDYDYCCBEBVhALBXYACA/VuBAZCAgDWQYCABkJKRkFBQUGEEI1ZbAFthARRgBIA2A2BAgRAVYQDeV2AAgP1bgQGQgIA1c///////////////////////////FpBgIAGQkpGQgDWQYCABkJKRkFBQUGEEbVZbAFthAaJgBIA2A2CAgRAVYQEsV2AAgP1bgQGQgIA1c///////////////////////////FpBgIAGQkpGQgDVz//////////////////////////8WkGAgAZCSkZCANXP//////////////////////////xaQYCABkJKRkIA1kGAgAZCSkZBQUFBhBLhWWwBbYQHwYASANgNgQIEQFWEBuldgAID9W4EBkICANXP//////////////////////////xaQYCABkJKRkIA1kGAgAZCSkZBQUFBhBadWWwBbgXP//////////////////////////xZhCPyCkIEVApBgQFFgAGBAUYCDA4GFiIjxk1BQUFAVgBVhAjhXPWAAgD49YAD9W1CBc///////////////////////////FmEI/GACg4FhAl1X/lsEkIEVApBgQFFgAGBAUYCDA4GFiIjxk1BQUFAVgBVhAolXPWAAgD49YAD9W1CBc///////////////////////////FmEI/GAEg4FhAq5X/lsEkIEVApBgQFFgAGBAUYCDA4GFiIjxk1BQUFAVgBVhAtpXPWAAgD49YAD9W1CBc///////////////////////////FmEI/GAIg4FhAv9X/lsEkIEVApBgQFFgAGBAUYCDA4GFiIjxk1BQUFAVgBVhAytXPWAAgD49YAD9W1CBc///////////////////////////FmEI/GAQg4FhA1BX/lsEkIEVApBgQFFgAGBAUYCDA4GFiIjxk1BQUFAVgBVhA3xXPWAAgD49YAD9W1CBc///////////////////////////FmEI/GAgg4FhA6FX/lsEkIEVApBgQFFgAGBAUYCDA4GFiIjxk1BQUFAVgBVhA81XPWAAgD49YAD9W1CBc///////////////////////////FmEI/GBAg4FhA/JX/lsEkIEVApBgQFFgAGBAUYCDA4GFiIjxk1BQUFAVgBVhBB5XPWAAgD49YAD9W1BQUFZbM3P//////////////////////////xZhCPyCkIEVApBgQFFgAGBAUYCDA4GFiIjxk1BQUFAVgBVhBGlXPWAAgD49YAD9W1BQVluBc///////////////////////////FmEI/IKQgRUCkGBAUWAAYEBRgIMDgYWIiPGTUFBQUBWAFWEEs1c9YACAPj1gAP1bUFBQVluDc///////////////////////////FmEI/IKQgRUCkGBAUWAAYEBRgIMDgYWIiPGTUFBQUBWAFWEE/lc9YACAPj1gAP1bUIJz//////////////////////////8WYQj8YAKDgWEFI1f+WwSQgRUCkGBAUWAAYEBRgIMDgYWIiPGTUFBQUBWAFWEFT1c9YACAPj1gAP1bUIFz//////////////////////////8WYQj8YASDgWEFdFf+WwSQgRUCkGBAUWAAYEBRgIMDgYWIiPGTUFBQUBWAFWEFoFc9YACAPj1gAP1bUFBQUFBWW4Fz//////////////////////////8WYQj8gmAAA5CBFQKQYEBRYABgQFGAgwOBhYiI8ZNQUFBQFYAVYQXwVz1gAIA+PWAA/VtQUFBW/qJlYnp6cjFYIM95G79H3LYTk3RAUqYg93G0KfBx8C42V84+X4CrP5e9ZHNvbGNDAAURADIigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMCaDDoDGOsHShYKFAAAAAAAAAAAAAAAAAAAAAAAAAPrcgcKAxjrBxABUiEKCQoCGAIQn8/GDQoJCgIYYhCAs8UNCgkKAxjrBxCgnAE="},{"b64Body":"Cg8KCQi4s+StBhDaBxICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIB098O+UWZPbqH3tn6xnN/wvNX6t+J1cEioIHDIp175yEIDIr6AlSgUIgM7aAw==","b64Record":"CiUIFhIDGOwHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCvOoJFBYsu8GhTrlExPPZmcNzdYd1yVUQbfQhVyUDp3sBReh42BDcxR3ARGGjsKFAaCwj0s+StBhDb0Kp6Ig8KCQi4s+StBhDaBxICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUhkKCgoCGAIQ/4/fwEoKCwoDGOwHEICQ38BK"},{"b64Body":"ChAKCQi4s+StBhDiBxIDGOwHEgIYAxjgrLEDIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46LwoDGOsHEKCNBiIkjdmAQwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK","b64Record":"CiUIFiIDGOsHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjA3M+95SKrOIslP3aEhkOS24jTmJvNtPLGzkXb/UMhxgl3WSf4XWT78k20JXdgYO3IaDAj0s+StBhC7puz7AiIQCgkIuLPkrQYQ4gcSAxjsByogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wgNfaAjqMAgoDGOsHIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACiA8QRSIAoJCgIYYhCArrUFCgcKAxjrBxATCgoKAxjsBxDrrbUF"}]},"ResultSizeAffectsFees":{"placeholderNum":1005,"encodedItems":[{"b64Body":"Cg8KCQi9s+StBhCNCBICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAj5gb+xBhCwxJCSAxptCiISIJqrFhcAdAPjTTfCcnNe/sb+sI/iHoQLGv3IkG0G3Tr8CiM6IQJVYo24BZcmNdiSouyvx4WymeDj3BzTOqttiSzCdZJrtAoiEiAr7vj4AWJ08307JUIn8WxYamKnXmO1crWCPEucJ/dDPSIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGO4HKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCV9Ra8RFXwzDOc4iPXceveRFHZXq5ndFnieOVHxIi2NQPsvsI5RgWbvRWVuyyFC5saDAj5s+StBhCr2fOUAyIPCgkIvbPkrQYQjQgSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQi+s+StBhCRCBICGAISAhgDGNbS8jMiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoB4A0KAxjuByLYDTYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMDM0YzgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyNjAwNDM2MTA2MTAwMWU1NzYwMDAzNTYwZTAxYzgwNjM5YWY5YTQwZTE0NjEwMDIzNTc1YjYwMDA4MGZkNWI2MTAwZmM2MDA0ODAzNjAzNjA2MDgxMTAxNTYxMDAzOTU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTYzZmZmZmZmZmYxNjkwNjAyMDAxOTA5MjkxOTA4MDM1NjNmZmZmZmZmZjE2OTA2MDIwMDE5MDkyOTE5MDgwMzU5MDYwMjAwMTkwNjQwMTAwMDAwMDAwODExMTE1NjEwMDc2NTc2MDAwODBmZDViODIwMTgzNjAyMDgyMDExMTE1NjEwMDg4NTc2MDAwODBmZDViODAzNTkwNjAyMDAxOTE4NDYwMDE4MzAyODQwMTExNjQwMTAwMDAwMDAwODMxMTE3MTU2MTAwYWE1NzYwMDA4MGZkNWI5MTkwODA4MDYwMWYwMTYwMjA4MDkxMDQwMjYwMjAwMTYwNDA1MTkwODEwMTYwNDA1MjgwOTM5MjkxOTA4MTgxNTI2MDIwMDE4MzgzODA4Mjg0Mzc2MDAwODE4NDAxNTI2MDFmMTk2MDFmODIwMTE2OTA1MDgwODMwMTkyNTA1MDUwNTA1MDUwNTA5MTkyOTE5MjkwNTA1MDUwNjEwMTc3NTY1YjYwNDA1MTgwODA2MDIwMDE4MjgxMDM4MjUyODM4MTgxNTE4MTUyNjAyMDAxOTE1MDgwNTE5MDYwMjAwMTkwODA4MzgzNjAwMDViODM4MTEwMTU2MTAxM2M1NzgwODIwMTUxODE4NDAxNTI2MDIwODEwMTkwNTA2MTAxMjE1NjViNTA1MDUwNTA5MDUwOTA4MTAxOTA2MDFmMTY4MDE1NjEwMTY5NTc4MDgyMDM4MDUxNjAwMTgzNjAyMDAzNjEwMTAwMGEwMzE5MTY4MTUyNjAyMDAxOTE1MDViNTA5MjUwNTA1MDYwNDA1MTgwOTEwMzkwZjM1YjYwNjA4MzYzZmZmZmZmZmYxNjM0MTQ2MTAxOGI1NzYwMDA4MGZkNWI2MDYwODI5MDUwNjA2MDgxNTE4NTYzZmZmZmZmZmYxNjAyNjA0MDUxOTA4MDgyNTI4MDYwMWYwMTYwMWYxOTE2NjAyMDAxODIwMTYwNDA1MjgwMTU2MTAxY2U1NzgxNjAyMDAxNjAwMTgyMDI4MDM4ODMzOTgwODIwMTkxNTA1MDkwNTA1YjUwOTA1MDViNjAwMDg1NjNmZmZmZmZmZjE2MTExNTYxMDMwYjU3N2ZkMzdhZjgwZGRhZTZhNDBlMDYxMDI0ZDJjNmQ2OTZhOTk1OGEwYjY4M2YxYzhkZDg5ZDRjMzA2ZjdkNzQ1YWFiODQ2MDQwNTE4MDgwNjAyMDAxODI4MTAzODI1MjgzODE4MTUxODE1MjYwMjAwMTkxNTA4MDUxOTA2MDIwMDE5MDgwODM4MzYwMDA1YjgzODExMDE1NjEwMjQzNTc4MDgyMDE1MTgxODQwMTUyNjAyMDgxMDE5MDUwNjEwMjI4NTY1YjUwNTA1MDUwOTA1MDkwODEwMTkwNjAxZjE2ODAxNTYxMDI3MDU3ODA4MjAzODA1MTYwMDE4MzYwMjAwMzYxMDEwMDBhMDMxOTE2ODE1MjYwMjAwMTkxNTA1YjUwOTI1MDUwNTA2MDQwNTE4MDkxMDM5MGExODQ4MDYwMDE5MDAzOTU1MDUwNjAwMDgwOTA1MDViODI1MTgxMTAxNTYxMDMwNTU3NjAwMDgxODQ1MTg4NjNmZmZmZmZmZjE2MDIwMTkwNTA4MzgyODE1MTgxMTA2MTAyYjE1N2ZlNWI2MDIwMDEwMTUxNjBmODFjNjBmODFiODM4MjgxNTE4MTEwNjEwMmM4NTdmZTViNjAyMDAxMDE5MDdlZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2OTA4MTYwMDAxYTkwNTM1MDUwODA4MDYwMDEwMTkxNTA1MDYxMDI4YzU2NWI1MDYxMDFkMjU2NWI4MDkyNTA1MDUwOTM5MjUwNTA1MDU2ZmVhMjY1NjI3YTdhNzIzMTU4MjAxNGE3ZjQ5N2M5ZjBlY2RiMjEyODg1YjhmYjNjYjk0NGZkNzY2YjY0NDhlNzEyMGY3MjRiZWVjMWVkMDAyMThmNjQ3MzZmNmM2MzQzMDAwNTExMDAzMg==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw6Ugx+c8QPItxH9uLvhsfgnt59HDSQVUNBMx00JSuLB1ug+Kgo9pgFEeukhVgXBGjGgwI+rPkrQYQu/76uAEiDwoJCL6z5K0GEJEIEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQi+s+StBhCTCBICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGO4HGiISIA270wmuXxuqAPpNchW2WUslELq/suKsLPxrKZOUFfFzIJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGO8HKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBFpk4XdkWOg1RbSJ9q6gxSqZU0x5R/TQCpFlM8yEddqK3fsTtuc8m5DRDYjAA1mVEaDAj6s+StBhCLpLK6AyIPCgkIvrPkrQYQkwgSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCGqKECQoEJCgMY7wcSzAZggGBAUmAENhBhAB5XYAA1YOAcgGOa+aQOFGEAI1dbYACA/VthAPxgBIA2A2BggRAVYQA5V2AAgP1bgQGQgIA1Y/////8WkGAgAZCSkZCANWP/////FpBgIAGQkpGQgDWQYCABkGQBAAAAAIERFWEAdldgAID9W4IBg2AgggERFWEAiFdgAID9W4A1kGAgAZGEYAGDAoQBEWQBAAAAAIMRFxVhAKpXYACA/VuRkICAYB8BYCCAkQQCYCABYEBRkIEBYEBSgJOSkZCBgVJgIAGDg4CChDdgAIGEAVJgHxlgH4IBFpBQgIMBklBQUFBQUFCRkpGSkFBQUGEBd1ZbYEBRgIBgIAGCgQOCUoOBgVGBUmAgAZFQgFGQYCABkICDg2AAW4OBEBVhATxXgIIBUYGEAVJgIIEBkFBhASFWW1BQUFCQUJCBAZBgHxaAFWEBaVeAggOAUWABg2AgA2EBAAoDGRaBUmAgAZFQW1CSUFBQYEBRgJEDkPNbYGCDY/////8WNBRhAYtXYACA/VtgYIKQUGBggVGFY/////8WAmBAUZCAglKAYB8BYB8ZFmAgAYIBYEBSgBVhAc5XgWAgAWABggKAOIM5gIIBkVBQkFBbUJBQW2AAhWP/////FhEVYQMLV3/TevgN2uakDgYQJNLG1paplYoLaD8cjdidTDBvfXRaq4RgQFGAgGAgAYKBA4JSg4GBUYFSYCABkVCAUZBgIAGQgIODYABbg4EQFWECQ1eAggFRgYQBUmAggQGQUGECKFZbUFBQUJBQkIEBkGAfFoAVYQJwV4CCA4BRYAGDYCADYQEACgMZFoFSYCABkVBbUJJQUFBgQFGAkQOQoYSAYAGQA5VQUGAAgJBQW4JRgRAVYQMFV2AAgYRRiGP/////FgIBkFCDgoFRgRBhArFX/ltgIAEBUWD4HGD4G4OCgVGBEGECyFf+W2AgAQGQfv////////////////////////////////////////8ZFpCBYAAakFNQUICAYAEBkVBQYQKMVltQYQHSVluAklBQUJOSUFBQVv6iZWJ6enIxWCAUp/SXyfDs2yEohbj7PLlE/XZrZEjnEg9yS+7B7QAhj2Rzb2xjQwAFEQAyIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACjKiQQ6AxjvB0oWChQAAAAAAAAAAAAAAAAAAAAAAAAD73IHCgMY7wcQAVIWCgkKAhgCEIvQwgQKCQoCGGIQjNDCBA=="},{"b64Body":"Cg8KCQi/s+StBhCVCBICGAISAhgDGOCssQMiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjqzAQoDGO8HEKCNBhjoByKkAZr5pA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1NvIHdlIG91dC1kYW5jZWQgdGhvdWdodC4uLgAAAAAA","b64Record":"CiUIFiIDGO8HKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAhf+EIev9FjhzwME+Bj3m4DhmWsRZZdMW+oWjjH8uGhXiI7RmXDQvkEshSbmKA+QEaDAj7s+StBhC7j4TCASIPCgkIv7PkrQYQlQgSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDT92M6zgIKAxjvBxJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAolbQBUiAKCQoCGAIQ9f7HAQoJCgIYYhCm78cBCggKAxjvBxDQDw=="},{"b64Body":"Cg8KCQi/s+StBhCXCBICGAISAhgDGOCssQMiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjqzAQoDGO8HEKCNBhjoByKkAZr5pA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1NvIHdlIG91dC1kYW5jZWQgdGhvdWdodC4uLgAAAAAA","b64Record":"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"}]},"PayerCannotOverSendValue":{"placeholderNum":1008,"encodedItems":[{"b64Body":"Cg8KCQjFs+StBhC0CBICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjgESCwiBgr+xBhCg8IFKGm0KIhIgLpDANMzuIWmcjtsCPg3NDXTWrqQykynQ5oCiXUR9is4KIzohAkaFSvkpp1jzOwrVbi4KGl1nSBais7VajF2Mo2xE2A3QCiISIK0CdTj5x82Y07Y/UcMfZSPoKPlnU7YLNTLI8/kN567GIgxIZWxsbyBXb3JsZCEqADIA","b64Record":"CiUIFhoDGPEHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAykJ0nqQON2QnS9WMBqXbdEPsoHeQWA8u/h1PNesP77p3maBE+Ug0l61+BZXGFVCEaCwiBtOStBhDb88xPIg8KCQjFs+StBhC0CBICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgA="},{"b64Body":"Cg8KCQjFs+StBhC4CBICGAISAhgDGPa4sjEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBogkKAxjxByKaCTYwODA2MDQwNTI2MTAyM2E4MDYxMDAxMzYwMDAzOTYwMDBmM2ZlNjA4MDYwNDA1MjYwMDQzNjEwNjEwMDNmNTc2MDAwMzU2MGUwMWM4MDYzMTIwNjVmZTAxNDYxMDA4ZjU3ODA2MzNjY2ZkNjBiMTQ2MTAwYmE1NzgwNjM2ZjY0MjM0ZTE0NjEwMGQxNTc4MDYzYjZiNTVmMjUxNDYxMDEyYzU3NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2N2ZmMWIwM2Y3MDhiOWMzOWY0NTNmZTNmMGNlZjg0MTY0YzdkNmY3ZGY4MzZkZjA3OTZlMWU5YzJiY2U2ZWUzOTdlMzQ2MDQwNTE4MDgyODE1MjYwMjAwMTkxNTA1MDYwNDA1MTgwOTEwMzkwYTIwMDViMzQ4MDE1NjEwMDliNTc2MDAwODBmZDViNTA2MTAwYTQ2MTAxNWE1NjViNjA0MDUxODA4MjgxNTI2MDIwMDE5MTUwNTA2MDQwNTE4MDkxMDM5MGYzNWIzNDgwMTU2MTAwYzY1NzYwMDA4MGZkNWI1MDYxMDBjZjYxMDE2MjU2NWIwMDViMzQ4MDE1NjEwMGRkNTc2MDAwODBmZDViNTA2MTAxMmE2MDA0ODAzNjAzNjA0MDgxMTAxNTYxMDBmNDU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2OTA2MDIwMDE5MDkyOTE5MDgwMzU5MDYwMjAwMTkwOTI5MTkwNTA1MDUwNjEwMWFiNTY1YjAwNWI2MTAxNTg2MDA0ODAzNjAzNjAyMDgxMTAxNTYxMDE0MjU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTkwNjAyMDAxOTA5MjkxOTA1MDUwNTA2MTAxZjY1NjViMDA1YjYwMDA0NzkwNTA5MDU2NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjEwOGZjNDc5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTU4MDE1NjEwMWE4NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTY1YjgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MTA4ZmM4MjkwODExNTAyOTA2MDQwNTE2MDAwNjA0MDUxODA4MzAzODE4NTg4ODhmMTkzNTA1MDUwNTAxNTgwMTU2MTAxZjE1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTY1YjgwMzQxNDYxMDIwMjU3NjAwMDgwZmQ1YjUwNTZmZWEyNjU2MjdhN2E3MjMxNTgyMGY4Zjg0ZmMzMWE4NDUwNjRiNTc4MWU5MDgzMTZmM2M1OTExNTc5NjJkZWFiYjBmZDQyNGVkNTRmMjU2NDAwZjk2NDczNmY2YzYzNDMwMDA1MTEwMDMy","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwziX2eywYsIhClDtNyOQqSnccwQqjpF+YHPppNxTg1H5QsDfE4WzWE8ipsWCfOL4tGgwIgbTkrQYQy+/F0QIiDwoJCMWz5K0GELgIEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjGs+StBhC6CBICGAISAhgDGK/Dto0EIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5ClgEKAxjxBxpzKnEIAhJtCiISII4Qld63+2L6c8l+6kBDN9j3p3HWDxFINfh9xVt4wSAaCiM6IQIXfVgZ3Qzw501LKGWABOuQXZmQkZry2nnEZ2+vDSnPvwoiEiAEJMEtfErFE/JP2T/ATyr0E7sdYXafLuH3ekOOmyWgVCCQoQ9CBQiAztoDUgBaAGoLY2VsbGFyIGRvb3I=","b64Record":"CiUIFiIDGPIHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAXccu+N2CL8IZox/TN6dTXr7fo8dQaC/ZzVtShmT5y+g2jdx5il4Eq0q74q6lCot4aCwiCtOStBhD7vspZIg8KCQjGs+StBhC6CBICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMMDZ4gZC7wYKAxjyBxK6BGCAYEBSYAQ2EGEAP1dgADVg4ByAYxIGX+AUYQCPV4BjPM/WCxRhALpXgGNvZCNOFGEA0VeAY7a1XyUUYQEsV1szc///////////////////////////Fn/xsD9wi5w59FP+PwzvhBZMfW99+DbfB5bh6cK85u45fjRgQFGAgoFSYCABkVBQYEBRgJEDkKIAWzSAFWEAm1dgAID9W1BhAKRhAVpWW2BAUYCCgVJgIAGRUFBgQFGAkQOQ81s0gBVhAMZXYACA/VtQYQDPYQFiVlsAWzSAFWEA3VdgAID9W1BhASpgBIA2A2BAgRAVYQD0V2AAgP1bgQGQgIA1c///////////////////////////FpBgIAGQkpGQgDWQYCABkJKRkFBQUGEBq1ZbAFthAVhgBIA2A2AggRAVYQFCV2AAgP1bgQGQgIA1kGAgAZCSkZBQUFBhAfZWWwBbYABHkFCQVlszc///////////////////////////FmEI/EeQgRUCkGBAUWAAYEBRgIMDgYWIiPGTUFBQUBWAFWEBqFc9YACAPj1gAP1bUFZbgXP//////////////////////////xZhCPyCkIEVApBgQFFgAGBAUYCDA4GFiIjxk1BQUFAVgBVhAfFXPWAAgD49YAD9W1BQUFZbgDQUYQICV2AAgP1bUFb+omVienpyMVgg+PhPwxqEUGS1eB6QgxbzxZEVeWLeq7D9Qk7VTyVkAPlkc29sY0MABREAMiKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAowJoMOgMY8gdKFgoUAAAAAAAAAAAAAAAAAAAAAAAAA/JyBwoDGPIHEAFSFgoJCgIYAhD/ssUNCgkKAhhiEICzxQ0="},{"b64Body":"Cg8KCQjGs+StBhC8CBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloyCiISIO+NBHJw63OcIbUqCIrsCDpzl7dIF6b1cdtM5CidaAYTEIC0rY34AUoFCIDO2gM=","b64Record":"CiUIFhIDGPMHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBZV+g5E6ax3qoTkJci3DCiqhXBP2DiSbahvjkBRSExmoe4Dkzx3dfAOXyh/D+8+O4aDAiCtOStBhCbgqraAiIPCgkIxrPkrQYQvAgSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIbCgsKAhgCEP/n2prwAwoMCgMY8wcQgOjamvAD"}]},"TemporarySStoreRefundTest":{"placeholderNum":1016,"encodedItems":[{"b64Body":"Cg8KCQjPs+StBhCICRICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAiLgr+xBhDws5OBAhptCiISIBIAooxGCUwvvRQo8UR/bP0bQgtuHmhw+UI+HW6yz59fCiM6IQJ5SPeaSE9P8lxC2Mb8PCMtNBdmGjZbeNYaT+AVhkqLogoiEiAT+hfwrGP1TDzBYxJK/kb4AXmTBN+pzplysrSxrWQU4SIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGPkHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCQ+n2GoKgskuRW3BGzvT9hr5JhpEAYIANGxMyXGyzXA9VP95NmkglbA3q6RwJ/qXYaDAiLtOStBhCD0s+cAiIPCgkIz7PkrQYQiAkSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjQs+StBhCMCRICGAISAhgDGIuKyi4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBnAQKAxj5ByKUBDYwODA2MDQwNTI2MDAwODA1NTM0ODAxNTYxMDAxNDU3NjAwMDgwZmQ1YjUwNjBlNzgwNjEwMDIzNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjAwZjU3NjAwMDgwZmQ1YjUwNjAwNDM2MTA2MDMyNTc2MDAwMzU2MGUwMWM4MDYzZGYzYWQ3NTExNDYwMzc1NzgwNjNlMDQwZGI5NjE0NjA2MjU3NWI2MDAwODBmZDViNjA2MDYwMDQ4MDM2MDM2MDIwODExMDE1NjA0YjU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTkwNjAyMDAxOTA5MjkxOTA1MDUwNTA2MDhkNTY1YjAwNWI2MDhiNjAwNDgwMzYwMzYwMjA4MTEwMTU2MDc2NTc2MDAwODBmZDViODEwMTkwODA4MDM1OTA2MDIwMDE5MDkyOTE5MDUwNTA1MDYwOWU1NjViMDA1YjgwNjAwMDgxOTA1NTUwNjAwMDgwODE5MDU1NTA1MDU2NWI4MDYwMDA4MTkwNTU1MDYwMDE4MTAxNjAwMDgxOTA1NTUwNTA1NmZlYTI2NTYyN2E3YTcyMzE1ODIwZmE3MDA4OTAyYWM1Yzk1ZmI2MmQzN2RjZTIzMzUwMGYwMzEzZDNjZTU0NjMwMzBmYTE3YWRlZGVmMGJhZDg0YzY0NzM2ZjZjNjM0MzAwMDUxMTAwMzI=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwmuI2HSqcDh54lPRxR0yk36AVwUFPn/NBWm06bDyyI8xgNCkyWXH1RZlQt2S0Sk2IGgsIjLTkrQYQ+7DHJCIPCgkI0LPkrQYQjAkSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjQs+StBhCOCRICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGPkHGiISIJmYf5NCjb6l5fivL5rTSGzYNphw87ZEZTnK3ePfHXoUIKDCHkIFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGPoHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBdGQXXrlLhdMQoLuMGWP2BbZ0SqZYi5OfgugC+FjudFnA5kDFplgqLyVFYHfSTbo8aDAiMtOStBhCr1semAiIPCgkI0LPkrQYQjgkSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCjj4ECQpwECgMY+gcS5wFggGBAUjSAFWAPV2AAgP1bUGAENhBgMldgADVg4ByAY98611EUYDdXgGPgQNuWFGBiV1tgAID9W2BgYASANgNgIIEQFWBLV2AAgP1bgQGQgIA1kGAgAZCSkZBQUFBgjVZbAFtgi2AEgDYDYCCBEBVgdldgAID9W4EBkICANZBgIAGQkpGQUFBQYJ5WWwBbgGAAgZBVUGAAgIGQVVBQVluAYACBkFVQYAGBAWAAgZBVUFBW/qJlYnp6cjFYIPpwCJAqxclfti033OIzUA8DE9POVGMDD6F63t7wuthMZHNvbGNDAAURADIigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMXPAzoDGPoHShYKFAAAAAAAAAAAAAAAAAAAAAAAAAP6cgcKAxj6BxABUhYKCQoCGAIQxZ6CBAoJCgIYYhDGnoIE"},{"b64Body":"Cg8KCQjRs+StBhCQCRICGAISAhgDGOCssQMiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjovCgMY+gcQoI0GIiTfOtdRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAo=","b64Record":"CiUIFiIDGPoHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjD/qgtlhz6TfitJtQx3JBbhzUYayo+ON3kcC2iig/j4cpaB0pdYjVVyT26+IySMbFsaCwiNtOStBhDbm/kuIg8KCQjRs+StBhCQCRICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMJbvZjqMAgoDGPoHIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACi6uQFSFgoJCgIYAhCr3s0BCgkKAhhiEKzezQE="},{"b64Body":"Cg8KCQjRs+StBhCSCRICGAISAhgDGOCssQMiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjovCgMY+gcQoI0GIiTgQNuWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAo=","b64Record":"CiUIFiIDGPoHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBdaLks6sw47pAy3nlOwcPYvI8FN0nB2BOVzSKY014JPwrv7KDb5n2+hUO99pvOAzQaDAiNtOStBhCzlM+vAiIPCgkI0bPkrQYQkgkSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjD+nL0BOowCCgMY+gcigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKJLVAlIWCgkKAhgCEPu5+gIKCQoCGGIQ/Ln6Ag=="}]},"transferZeroHbarsToCaller":{"placeholderNum":1019,"encodedItems":[{"b64Body":"Cg8KCQjWs+StBhCvCRICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAiSgr+xBhDgr8GeAxptCiISIGNpoMtQVHSR/YCO/JUOia3WV1KhiSKi7/ADcUNJkkhrCiM6IQKP1eXFREG8wqh1QY3zrxDwUqdTWiKGVq4rh0jS0+iUUwoiEiCxKct5j/RYuOSD7UEWR+zuvcJaKmyML0aWkGn/fF7IiyIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGPwHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAuapSBxRUQ94dywu5qv1gH8Z8gqZDnALVHTXYuHtU4+Wc9OdHPLRQmwa9/733xAnwaDAiStOStBhCLnfC0AyIPCgkI1rPkrQYQrwkSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjXs+StBhCzCRICGAISAhgDGPOGlzoiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBghkKAxj8ByL6GDYwODA2MDQwNTI2MTA2MmE4MDYxMDAxMzYwMDAzOTYwMDBmM2ZlNjA4MDYwNDA1MjYwMDQzNjEwNjEwMDRhNTc2MDAwMzU2MGUwMWM4MDYzMjZhYjk3ZWExNDYxMDA0YzU3ODA2MzhkZDk4MDQzMTQ2MTAwOWE1NzgwNjNhY2VmNjAzNzE0NjEwMGM4NTc4MDYzZDJhMGZlMjYxNDYxMDExNjU3ODA2M2UxMmUzMjM4MTQ2MTAxYTQ1NzViMDA1YjYxMDA5ODYwMDQ4MDM2MDM2MDQwODExMDE1NjEwMDYyNTc2MDAwODBmZDViODEwMTkwODA4MDM1NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY5MDYwMjAwMTkwOTI5MTkwODAzNTkwNjAyMDAxOTA5MjkxOTA1MDUwNTA2MTAxZjI1NjViMDA1YjYxMDBjNjYwMDQ4MDM2MDM2MDIwODExMDE1NjEwMGIwNTc2MDAwODBmZDViODEwMTkwODA4MDM1OTA2MDIwMDE5MDkyOTE5MDUwNTA1MDYxMDQyMzU2NWIwMDViNjEwMTE0NjAwNDgwMzYwMzYwNDA4MTEwMTU2MTAwZGU1NzYwMDA4MGZkNWI4MTAxOTA4MDgwMzU3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjkwNjAyMDAxOTA5MjkxOTA4MDM1OTA2MDIwMDE5MDkyOTE5MDUwNTA1MDYxMDQ2ZDU2NWIwMDViNjEwMWEyNjAwNDgwMzYwMzYwODA4MTEwMTU2MTAxMmM1NzYwMDA4MGZkNWI4MTAxOTA4MDgwMzU3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjkwNjAyMDAxOTA5MjkxOTA4MDM1NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY5MDYwMjAwMTkwOTI5MTkwODAzNTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2OTA2MDIwMDE5MDkyOTE5MDgwMzU5MDYwMjAwMTkwOTI5MTkwNTA1MDUwNjEwNGI4NTY1YjAwNWI2MTAxZjA2MDA0ODAzNjAzNjA0MDgxMTAxNTYxMDFiYTU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2OTA2MDIwMDE5MDkyOTE5MDgwMzU5MDYwMjAwMTkwOTI5MTkwNTA1MDUwNjEwNWE3NTY1YjAwNWI4MTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjEwOGZjODI5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTU4MDE1NjEwMjM4NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwODE3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYxMDhmYzYwMDI4MzgxNjEwMjVkNTdmZTViMDQ5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTU4MDE1NjEwMjg5NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwODE3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYxMDhmYzYwMDQ4MzgxNjEwMmFlNTdmZTViMDQ5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTU4MDE1NjEwMmRhNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwODE3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYxMDhmYzYwMDg4MzgxNjEwMmZmNTdmZTViMDQ5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTU4MDE1NjEwMzJiNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwODE3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYxMDhmYzYwMTA4MzgxNjEwMzUwNTdmZTViMDQ5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTU4MDE1NjEwMzdjNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwODE3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYxMDhmYzYwMjA4MzgxNjEwM2ExNTdmZTViMDQ5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTU4MDE1NjEwM2NkNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwODE3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYxMDhmYzYwNDA4MzgxNjEwM2YyNTdmZTViMDQ5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTU4MDE1NjEwNDFlNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDU2NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjEwOGZjODI5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTU4MDE1NjEwNDY5NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1NjViODE3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYxMDhmYzgyOTA4MTE1MDI5MDYwNDA1MTYwMDA2MDQwNTE4MDgzMDM4MTg1ODg4OGYxOTM1MDUwNTA1MDE1ODAxNTYxMDRiMzU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1NjViODM3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYxMDhmYzgyOTA4MTE1MDI5MDYwNDA1MTYwMDA2MDQwNTE4MDgzMDM4MTg1ODg4OGYxOTM1MDUwNTA1MDE1ODAxNTYxMDRmZTU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDgyNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MTA4ZmM2MDAyODM4MTYxMDUyMzU3ZmU1YjA0OTA4MTE1MDI5MDYwNDA1MTYwMDA2MDQwNTE4MDgzMDM4MTg1ODg4OGYxOTM1MDUwNTA1MDE1ODAxNTYxMDU0ZjU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MTA4ZmM2MDA0ODM4MTYxMDU3NDU3ZmU1YjA0OTA4MTE1MDI5MDYwNDA1MTYwMDA2MDQwNTE4MDgzMDM4MTg1ODg4OGYxOTM1MDUwNTA1MDE1ODAxNTYxMDVhMDU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDUwNTY1YjgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MTA4ZmM4MjYwMDAwMzkwODExNTAyOTA2MDQwNTE2MDAwNjA0MDUxODA4MzAzODE4NTg4ODhmMTkzNTA1MDUwNTAxNTgwMTU2MTA1ZjA1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTZmZWEyNjU2MjdhN2E3MjMxNTgyMGNmNzkxYmJmNDdkY2I2MTM5Mzc0NDA1MmE2MjBmNzcxYjQyOWYwNzFmMDJlMzY1N2NlM2U1ZjgwYWIzZjk3YmQ2NDczNmY2YzYzNDMwMDA1MTEwMDMy","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwMIBgWSNFe1Z+cHFIcuXG+Cpz54cywUfCFromFiI+mzz48GV1ZhyVaVk9cBAYBcG3GgwIk7TkrQYQ2+CsvQEiDwoJCNez5K0GELMJEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjXs+StBhC1CRICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CSAoDGPwHGiISIKstDxxQu3MwUed7yD3FqAWfRIPld56uzA19AXWBmrZAIJChDyiQTkIFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGP0HKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjC1i4bjKq7sA1+0EWVWf6sXRa1rAvZ42L++rRdx+Z6vQvtmAI+hp3qyMRhVyk0SdEcaDAiTtOStBhDr+fy+AyIPCgkI17PkrQYQtQkSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQt8OCgMY/QcSqgxggGBAUmAENhBhAEpXYAA1YOAcgGMmq5fqFGEATFeAY43ZgEMUYQCaV4BjrO9gNxRhAMhXgGPSoP4mFGEBFleAY+EuMjgUYQGkV1sAW2EAmGAEgDYDYECBEBVhAGJXYACA/VuBAZCAgDVz//////////////////////////8WkGAgAZCSkZCANZBgIAGQkpGQUFBQYQHyVlsAW2EAxmAEgDYDYCCBEBVhALBXYACA/VuBAZCAgDWQYCABkJKRkFBQUGEEI1ZbAFthARRgBIA2A2BAgRAVYQDeV2AAgP1bgQGQgIA1c///////////////////////////FpBgIAGQkpGQgDWQYCABkJKRkFBQUGEEbVZbAFthAaJgBIA2A2CAgRAVYQEsV2AAgP1bgQGQgIA1c///////////////////////////FpBgIAGQkpGQgDVz//////////////////////////8WkGAgAZCSkZCANXP//////////////////////////xaQYCABkJKRkIA1kGAgAZCSkZBQUFBhBLhWWwBbYQHwYASANgNgQIEQFWEBuldgAID9W4EBkICANXP//////////////////////////xaQYCABkJKRkIA1kGAgAZCSkZBQUFBhBadWWwBbgXP//////////////////////////xZhCPyCkIEVApBgQFFgAGBAUYCDA4GFiIjxk1BQUFAVgBVhAjhXPWAAgD49YAD9W1CBc///////////////////////////FmEI/GACg4FhAl1X/lsEkIEVApBgQFFgAGBAUYCDA4GFiIjxk1BQUFAVgBVhAolXPWAAgD49YAD9W1CBc///////////////////////////FmEI/GAEg4FhAq5X/lsEkIEVApBgQFFgAGBAUYCDA4GFiIjxk1BQUFAVgBVhAtpXPWAAgD49YAD9W1CBc///////////////////////////FmEI/GAIg4FhAv9X/lsEkIEVApBgQFFgAGBAUYCDA4GFiIjxk1BQUFAVgBVhAytXPWAAgD49YAD9W1CBc///////////////////////////FmEI/GAQg4FhA1BX/lsEkIEVApBgQFFgAGBAUYCDA4GFiIjxk1BQUFAVgBVhA3xXPWAAgD49YAD9W1CBc///////////////////////////FmEI/GAgg4FhA6FX/lsEkIEVApBgQFFgAGBAUYCDA4GFiIjxk1BQUFAVgBVhA81XPWAAgD49YAD9W1CBc///////////////////////////FmEI/GBAg4FhA/JX/lsEkIEVApBgQFFgAGBAUYCDA4GFiIjxk1BQUFAVgBVhBB5XPWAAgD49YAD9W1BQUFZbM3P//////////////////////////xZhCPyCkIEVApBgQFFgAGBAUYCDA4GFiIjxk1BQUFAVgBVhBGlXPWAAgD49YAD9W1BQVluBc///////////////////////////FmEI/IKQgRUCkGBAUWAAYEBRgIMDgYWIiPGTUFBQUBWAFWEEs1c9YACAPj1gAP1bUFBQVluDc///////////////////////////FmEI/IKQgRUCkGBAUWAAYEBRgIMDgYWIiPGTUFBQUBWAFWEE/lc9YACAPj1gAP1bUIJz//////////////////////////8WYQj8YAKDgWEFI1f+WwSQgRUCkGBAUWAAYEBRgIMDgYWIiPGTUFBQUBWAFWEFT1c9YACAPj1gAP1bUIFz//////////////////////////8WYQj8YASDgWEFdFf+WwSQgRUCkGBAUWAAYEBRgIMDgYWIiPGTUFBQUBWAFWEFoFc9YACAPj1gAP1bUFBQUFBWW4Fz//////////////////////////8WYQj8gmAAA5CBFQKQYEBRYABgQFGAgwOBhYiI8ZNQUFBQFYAVYQXwVz1gAIA+PWAA/VtQUFBW/qJlYnp6cjFYIM95G79H3LYTk3RAUqYg93G0KfBx8C42V84+X4CrP5e9ZHNvbGNDAAURADIigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMCaDDoDGP0HShYKFAAAAAAAAAAAAAAAAAAAAAAAAAP9cgcKAxj9BxABUiEKCQoCGAIQn8/GDQoJCgIYYhCAs8UNCgkKAxj9BxCgnAE="},{"b64Body":"Cg8KCQjYs+StBhC9CRICGAISAhgDGOCssQMiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjovCgMY/QcQoI0GIiSN2YBDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=","b64Record":"CiUIFiIDGP0HKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjA7kIg8njCz3PuyWDwUV8UZfuVSXxlys0Ecksklua+DWlZd4KJI8MMUmRfrCn6pxrEaDAiUtOStBhDLiufGASIPCgkI2LPkrQYQvQkSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCA19oCOowCCgMY/QcigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKIDxBFIWCgkKAhgCEP+ttQUKCQoCGGIQgK61BQ=="}]},"DeletedContractsCannotBeUpdated":{"placeholderNum":1523,"encodedItems":[{"b64Body":"Cg8KCQjfs+StBhDfDRICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAibgr+xBhCIjpmpAxptCiISIJHB8cEIWBOTw45UZoM6Y8qRwqUZSaKyfHMptRKKksqACiM6IQI85SeIt6LT3QAnGs8c0qpgf3rwG1kwzr/srCsVnR4cPAoiEiDr/LMQ07OuQzWH2wzgzpy2wVhPcuBYfymCuMmMnmGNXyIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGPQLKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjB9rnI/9GdgtJg1Kl4RT2gdvoLP9ELgTu/eOuVys5SEezhI+1BFufgadP0FjVP23SQaDAibtOStBhDDt++0AyIPCgkI37PkrQYQ3w0SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjgs+StBhDjDRICGAISAhgDGMOz9i0iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBhgMKAxj0CyL+AjYwODA2MDQwNTI2MGFkODA2MTAwMTI2MDAwMzk2MDAwZjNmZTYwODA2MDQwNTI2MDA0MzYxMDYwMjY1NzYwMDAzNTYwZTAxYzgwNjM4MzE5N2VmMDE0NjAyYjU3ODA2M2MzNDU2MGY1MTQ2MDMyNTc1YjYwMDA4MGZkNWI2MDMwMzNmZjViMDA1YjYwMzA2MDNkMzY2MDA0NjA0OTU2NWI4MDYwMDE2MDAxNjBhMDFiMDMxNmZmNWI2MDAwNjAyMDgyODQwMzEyMTU2MDVhNTc2MDAwODBmZDViODEzNTYwMDE2MDAxNjBhMDFiMDM4MTE2ODExNDYwNzA1NzYwMDA4MGZkNWI5MzkyNTA1MDUwNTZmZWEyNjQ2OTcwNjY3MzU4MjIxMjIwY2VhOGNjOTdlYzBiMWI3YzUwMWUxM2I2OTFiOGFlNmU1ZDNkMTA0NDlmM2Q3YjYxYmE3NDk5NjdkMjdlNDRiMzY0NzM2ZjZjNjM0MzAwMDgwYjAwMzM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwbOSkdCP/JSuV+rJgBra9N7B2VFfKRw0WG60BdxAhYUIOkjNJ3Xh2uvCr3X8gXG8wGgwInLTkrQYQo+TJ2gEiDwoJCOCz5K0GEOMNEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjgs+StBhDlDRICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGPQLGiISIB9qeq9K2zV7RfYhxrQ9r4+jNn8xBKCOASKOu+5ZREcvIOCnEkIFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGPULKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBKIiMp179pbOqpV0aF422aCmtbXf6CCj5L1DbZ7mTV4nUbl9yz/ZuaxjI19cNplrYaDAictOStBhCz+vS+AyIPCgkI4LPkrQYQ5Q0SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCAhZAIQuIDCgMY9QsSrQFggGBAUmAENhBgJldgADVg4ByAY4MZfvAUYCtXgGPDRWD1FGAyV1tgAID9W2AwM/9bAFtgMGA9NmAEYElWW4BgAWABYKAbAxb/W2AAYCCChAMSFWBaV2AAgP1bgTVgAWABYKAbA4EWgRRgcFdgAID9W5OSUFBQVv6iZGlwZnNYIhIgzqjMl+wLG3xQHhO2kbiubl09EESfPXthunSZZ9J+RLNkc29sY0MACAsAMyKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAogNMOOgMY9QtKFgoUAAAAAAAAAAAAAAAAAAAAAAAABfVyBwoDGPULEAFSFgoJCgIYAhD/iaAQCgkKAhhiEICKoBA="},{"b64Body":"Cg8KCQjhs+StBhDnDRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIJeUVl925IqQcvZ644Q96u2GWMRo5ixLoLuL1aOvh1qgEIDIr6AlSgUIgM7aAw==","b64Record":"CiUIFhIDGPYLKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDd801MjktUU7UvfOqeYi+0xhYTuEARK+Y76LEkItlEgEubOjOmQotIccscihJkY+0aDAidtOStBhCL2d7jASIPCgkI4bPkrQYQ5w0SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxj2CxCAkN/ASg=="},{"b64Body":"ChAKCQjhs+StBhDpDRIDGPYLEgIYAxjgrLEDIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46DwoDGPULEKCNBiIEgxl+8A==","b64Record":"CiUIFiIDGPULKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAYKP9E3AM93VhhZ24h9tXqC3N7ZdlTuGcdr63e/D5ZVDX+OwXE3mCjRn4j7JHnqWsaDAidtOStBhCD1pTIAyIQCgkI4bPkrQYQ6Q0SAxj2Cyogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wgNfaAjqMAgoDGPULIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACiA8QRSFwoJCgIYYhCArrUFCgoKAxj2CxD/rbUF"},{"b64Body":"Cg8KCQjhs+StBhDvDRICGAISAhgDGNGF2hAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjkoSCgMY9QtSCwoJSGkgdGhlcmUh","b64Record":"CiAIECocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwqVE1X0/WhaIfRUornFaYuboO7zSmPK0HpegystNdOTy9sUM7C9aa7f0MkYcOe3BVGgwInbTkrQYQ692UyAMiDwoJCOGz5K0GEO8NEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="}]},"createTokenWithInvalidRoyaltyFee":{"placeholderNum":1527,"encodedItems":[{"b64Body":"Cg8KCQjns+StBhCKDhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiM6IQKq6sOuPsJ1To9d+rKdOCUxkY3j15MCIoIiz82CgCV9ohCAgOmDsd4WSgUIgM7aAw==","b64Record":"CiUIFhIDGPgLKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCGzrWzGCJBmjcQ0Ll9kqGPIB1j4cB3o0OBnBv75C1I+6y1zvOk6oA/z7N6eyerH4YaDAijtOStBhDr0aDyAiIPCgkI57PkrQYQig4SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIdCgwKAhgCEP//0YfivC0KDQoDGPgLEICA0ofivC0="},{"b64Body":"Cg8KCQjos+StBhCMDhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIOar1fUwUdaOnItN6jrDhgGuYjC2kzIRA7j5dP0+05O0EIDIr6AlSgUIgM7aAw==","b64Record":"CiUIFhIDGPkLKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjB2UdLmVBe3574ZtRvFVPlWStFhGaRJL8Yb8J7rSM2SiG3OuvfiDKE+WGZvgunXZhMaDAiktOStBhC7sqaXASIPCgkI6LPkrQYQjA4SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxj5CxCAkN/ASg=="},{"b64Body":"Cg8KCQjos+StBhCODhICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAikgr+xBhDYmsvvAhptCiISIMl05uFRD6wSo3YjGZ+v9p2WL7GRw+jWGHPILxRW/vy3CiM6IQI1XVgJ2aZflNLl1Etd4/tjnG3z3SKqEesUyVuZbe+FdwoiEiCN1XQmBqQrmwtcONkhajhVbRcR3ArwyobTAg/RRxw/UCIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGPoLKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBcdp0EEeTAo641bWio39w9+0FfdSCkw6xqMkhgwfvFv1cHayHfsg8v4zc9Km3zM1QaDAiktOStBhDLmbT8AiIPCgkI6LPkrQYQjg4SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjps+StBhCSDhICGAISAhgDGIudjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxj6CyKAIDYwYzA2MDQwNTI2MDA5NjA4MDgxOTA1MjY4NzQ2ZjZiNjU2ZTRlNjE2ZDY1NjBiODFiNjBhMDkwODE1MjYyMDAwMDJjOTE2MDAxOTE5MDYyMDAwMGFlNTY1YjUwNjA0MDgwNTE4MDgyMDE5MDkxNTI2MDBiODA4MjUyNmExZDFiZGFkOTViOTRkZTViNTg5YmRiNjBhYTFiNjAyMDkwOTIwMTkxODI1MjYyMDAwMDYxOTE2MDAyOTE2MjAwMDBhZTU2NWI1MDYwNDA4MDUxODA4MjAxOTA5MTUyNjAwNDgwODI1MjYzNmQ2NTZkNmY2MGUwMWI2MDIwOTA5MjAxOTE4MjUyNjIwMDAwOGY5MTYwMDM5MTYyMDAwMGFlNTY1YjUwNjBjODYwMDQ1NTYwMDg2MDA1NTUzNDgwMTU2MjAwMDBhNzU3NjAwMDgwZmQ1YjUwNjIwMDAxOTE1NjViODI4MDU0NjIwMDAwYmM5MDYyMDAwMTU0NTY1YjkwNjAwMDUyNjAyMDYwMDAyMDkwNjAxZjAxNjAyMDkwMDQ4MTAxOTI4MjYyMDAwMGUwNTc2MDAwODU1NTYyMDAwMTJiNTY1YjgyNjAxZjEwNjIwMDAwZmI1NzgwNTE2MGZmMTkxNjgzODAwMTE3ODU1NTYyMDAwMTJiNTY1YjgyODAwMTYwMDEwMTg1NTU4MjE1NjIwMDAxMmI1NzkxODIwMTViODI4MTExMTU2MjAwMDEyYjU3ODI1MTgyNTU5MTYwMjAwMTkxOTA2MDAxMDE5MDYyMDAwMTBlNTY1YjUwNjIwMDAxMzk5MjkxNTA2MjAwMDEzZDU2NWI1MDkwNTY1YjViODA4MjExMTU2MjAwMDEzOTU3NjAwMDgxNTU2MDAxMDE2MjAwMDEzZTU2NWI2MDAxODE4MTFjOTA4MjE2ODA2MjAwMDE2OTU3NjA3ZjgyMTY5MTUwNWI2MDIwODIxMDgxMTQxNTYyMDAwMThiNTc2MzRlNDg3YjcxNjBlMDFiNjAwMDUyNjAyMjYwMDQ1MjYwMjQ2MDAwZmQ1YjUwOTE5MDUwNTY1YjYxNDQyZDgwNjIwMDAxYTE2MDAwMzk2MDAwZjNmZTYwODA2MDQwNTI2MDA0MzYxMDYxMDFlZTU3NjAwMDM1NjBlMDFjODA2MzZmNThiOWQ5MTE2MTAxMGQ1NzgwNjNiYWZjYWY3YTExNjEwMGEwNTc4MDYzZDU3NDQ4YWExMTYxMDA2ZjU3ODA2M2Q1NzQ0OGFhMTQ2MTA0YmE1NzgwNjNkNmZhNDBhZTE0NjEwNGRhNTc4MDYzZTdiMDdjYjYxNDYxMDRlZDU3ODA2M2ZjOGRmMmRhMTQ2MTA1MGQ1NzgwNjNmZTczODZlMTE0NjEwNTIyNTc2MDAwODBmZDViODA2M2JhZmNhZjdhMTQ2MTA0NTI1NzgwNjNjNWNlOWVhNzE0NjEwNDcyNTc4MDYzYzcyZTk3ZjQxNDYxMDQ5MjU3ODA2M2QyMzI0ZGIwMTQ2MTA0YTc1NzYwMDA4MGZkNWI4MDYzOTBlZjc5YzIxMTYxMDBkYzU3ODA2MzkwZWY3OWMyMTQ2MTAzZWE1NzgwNjM5ZDU2MGNiNDE0NjEwM2YyNTc4MDYzYWI4ZDMwZmQxNDYxMDQxMjU3ODA2M2I5MTRiYjc5MTQ2MTA0MzI1NzYwMDA4MGZkNWI4MDYzNmY1OGI5ZDkxNDYxMDNhNzU3ODA2Mzc3ZWQ0YWIyMTQ2MTAzYWY1NzgwNjM4MDFlY2RiZjE0NjEwM2MyNTc4MDYzOGU5M2JjMzMxNDYxMDNjYTU3NjAwMDgwZmQ1YjgwNjMxZmRjODE3ZTExNjEwMTg1NTc4MDYzMzljNDA1MmMxMTYxMDE1NDU3ODA2MzM5YzQwNTJjMTQ2MTAzMzQ1NzgwNjM0NzUzMzdhZDE0NjEwMzU0NTc4MDYzNTUxNjdmMGUxNDYxMDM2NzU3ODA2MzViZTJhMDI2MTQ2MTAzODc1NzYwMDA4MGZkNWI4MDYzMWZkYzgxN2UxNDYxMDJkYjU3ODA2MzI0NTUzMjA2MTQ2MTAyZWU1NzgwNjMyZjNlMGMxMjE0NjEwMzAxNTc4MDYzMzc3YTMyOWYxNDYxMDMxNDU3NjAwMDgwZmQ1YjgwNjMxMmI4OTk0NjExNjEwMWMxNTc4MDYzMTJiODk5NDYxNDYxMDI2ODU3ODA2MzE1MGE5ZmY1MTQ2MTAyODg1NzgwNjMxYzk4NDUwNTE0NjEwMmE4NTc4MDYzMWZhNmE2OTYxNDYxMDJiYjU3NjAwMDgwZmQ1YjgwNjMwOTFjYzg5OTE0NjEwMWYzNTc4MDYzMTE2ODRmNTMxNDYxMDIyMjU3ODA2MzExOTFhMjcyMTQ2MTAyNDI1NzgwNjMxMjk1MTIzYzE0NjEwMjU1NTc1YjYwMDA4MGZkNWI2MTAyMDY2MTAyMDEzNjYwMDQ2MTM1MjY1NjViNjEwNTM3NTY1YjYwNDA1MTYwMDE2MDAxNjBhMDFiMDM5MDkxMTY4MTUyNjAyMDAxNjA0MDUxODA5MTAzOTBmMzViMzQ4MDE1NjEwMjJlNTc2MDAwODBmZDViNTA2MTAyMDY2MTAyM2QzNjYwMDQ2MTM1YWI1NjViNjEwNjA3NTY1YjYxMDIwNjYxMDI1MDM2NjAwNDYxMzVlMjU2NWI2MTA2MzI1NjViNjEwMjA2NjEwMjYzMzY2MDA0NjEzNmI1NTY1YjYxMDdlNzU2NWIzNDgwMTU2MTAyNzQ1NzYwMDA4MGZkNWI1MDYxMDIwNjYxMDI4MzM2NjAwNDYxMzZlYTU2NWI2MTA4NWY1NjViMzQ4MDE1NjEwMjk0NTc2MDAwODBmZDViNTA2MTAyMDY2MTAyYTMzNjYwMDQ2MTM3MzE1NjViNjEwOWQ1NTY1YjYxMDIwNjYxMDJiNjM2NjAwNDYxMzZiNTU2NWI2MTA5ZjU1NjViMzQ4MDE1NjEwMmM3NTc2MDAwODBmZDViNTA2MTAyMDY2MTAyZDYzNjYwMDQ2MTM3OTk1NjViNjEwYWI1NTY1YjYxMDIwNjYxMDJlOTM2NjAwNDYxMzZiNTU2NWI2MTBhZGE1NjViNjEwMjA2NjEwMmZjMzY2MDA0NjEzODE3NTY1YjYxMGI2MzU2NWI2MTAyMDY2MTAzMGYzNjYwMDQ2MTM4NWY1NjViNjEwZWExNTY1YjM0ODAxNTYxMDMyMDU3NjAwMDgwZmQ1YjUwNjEwMjA2NjEwMzJmMzY2MDA0NjEzOGY1NTY1YjYxMGZhYzU2NWIzNDgwMTU2MTAzNDA1NzYwMDA4MGZkNWI1MDYxMDIwNjYxMDM0ZjM2NjAwNDYxMzczMTU2NWI2MTBmY2I1NjViNjEwMjA2NjEwMzYyMzY2MDA0NjEzOTYzNTY1YjYxMGZlNTU2NWIzNDgwMTU2MTAzNzM1NzYwMDA4MGZkNWI1MDYxMDIwNjYxMDM4MjM2NjAwNDYxMzlkNTU2NWI2MTEwMjg1NjViMzQ4MDE1NjEwMzkzNTc2MDAwODBmZDViNTA2MTAyMDY2MTAzYTIzNjYwMDQ2MTNhMmQ1NjViNjExMDQzNTY1YjYxMDIwNjYxMTA1YjU2NWI2MTAyMDY2MTAzYmQzNjYwMDQ2MTNhNWI1NjViNjExMDZkNTY1YjYxMDIwNjYxMTFjYjU2NWIzNDgwMTU2MTAzZDY1NzYwMDA4MGZkNWI1MDYxMDIwNjYxMDNlNTM2NjAwNDYxM2FiNDU2NWI2MTEzMWI1NjViNjEwMjA2NjExMzJiNTY1YjM0ODAxNTYxMDNmZTU3NjAwMDgwZmQ1YjUwNjEwMjA2NjEwNDBkMzY2MDA0NjEzYjExNTY1YjYxMTM0NDU2NWIzNDgwMTU2MTA0MWU1NzYwMDA4MGZkNWI1MDYxMDIwNjYxMDQyZDM2NjAwNDYxM2I1ZTU2NWI2MTEzNTM1NjViMzQ4MDE1NjEwNDNlNTc2MDAwODBmZDViNTA2MTAyMDY2MTA0NGQzNjYwMDQ2MTNiZGE1NjViNjExMzgxNTY1YjM0ODAxNTYxMDQ1ZTU3NjAwMDgwZmQ1YjUwNjEwMjA2NjEwNDZkMzY2MDA0NjEzNWFiNTY1YjYxMTM5YTU2NWIzNDgwMTU2MTA0N2U1NzYwMDA4MGZkNWI1MDYxMDIwNjYxMDQ4ZDM2NjAwNDYxM2MxOTU2NWI2MTEzYjE1NjViMzQ4MDE1NjEwNDllNTc2MDAwODBmZDViNTA2MTAyMDY2MTEzY2U1NjViNjEwMjA2NjEwNGI1MzY2MDA0NjEzODVmNTY1YjYxMTNlMDU2NWIzNDgwMTU2MTA0YzY1NzYwMDA4MGZkNWI1MDYxMDIwNjYxMDRkNTM2NjAwNDYxMzczMTU2NWI2MTE0ZWE1NjViNjEwMjA2NjEwNGU4MzY2MDA0NjEzNmVhNTY1YjYxMTUwMjU2NWIzNDgwMTU2MTA0Zjk1NzYwMDA4MGZkNWI1MDYxMDIwNjYxMDUwODM2NjAwNDYxMzVhYjU2NWI2MTE3YTk1NjViMzQ4MDE1NjEwNTE5NTc2MDAwODBmZDViNTA2MTAyMDY2MTE3YzA1NjViMzQ4MDE1NjEwNTJlNTc2MDAwODBmZDViNTA2MTAyMDY2MTE3ZDI1NjViNjA0MDgwNTE2MDAxODA4MjUyODE4MzAxOTA5MjUyNjAwMDkxODI5MTkwODE2MDIwMDE1YjYxMDU1OTYxMzJmMzU2NWI4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTA1NTE1NzkwNTA1MDkwNTA2MTA1N2I2MDAwNjAwNDg5NjExN2YzNTY1YjgxNjAwMDgxNTE4MTEwNjEwNThlNTc2MTA1OGU2MTNjNzU1NjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDYwMDA2MTA1YTkzMDYwMDA4Nzg3ODY2MTE4Mjg1NjViOTA1MDYwMDA2MTA1Yjk2MDAxODg4YTYxMWEzNTU2NWI5MDUwNjAwMDYxMDVkMDYwMDQ2MDA1NjAwYTYwMWU2MDAxOGU2MTFiMTA1NjViOTA1MDYwMDA4MDYxMDVlNjg1NjAwNDU0NjAwNTU0ODc4NzYxMWI4MDU2NWI5MDkyNTA5MDUwNjAxNjgyMTQ2MTA1Zjg1NzYwMDA4MGZkNWI5YjlhNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDU2NWI2MDAwNjEwNjJiNjEwNjE0NjExY2I0NTY1YjYxMDYxZTg1ODU2MTFkN2E1NjViNjEwNjI2NjExZGUyNTY1YjYxMWUxYjU2NWI5MzkyNTA1MDUwNTY1YjYwNDA4MDUxNjAwNTgwODI1MjYwYzA4MjAxOTA5MjUyNjAwMDkxODI5MTkwODE2MDIwMDE1YjYxMDY1NTYxMzJmMzU2NWI4MTUyNjAyMDAxOTA2MDAxOTA=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw/D3vX9NOAz+vg+ZtOgWIg7JVUH2LWkhznDln3APPBZSL7FdCRMEDOOcIabL5Na+MGgwIpbTkrQYQi+z6oAEiDwoJCOmz5K0GEJIOEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjps+StBhCYDhICGAISAhgDGPjR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxj6CyKAIDAzOTA4MTYxMDY0ZDU3OTA1MDUwOTA1MDYxMDY3OTYwMDA2MDAxNjAwMzhjNjExZjY4NTY1YjgxNjAwMDgxNTE4MTEwNjEwNjhjNTc2MTA2OGM2MTNjNzU1NjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDYxMDZhNjYwMDI2MDAzNjAwNDhiNjExZjY4NTY1YjgxNjAwMTgxNTE4MTEwNjEwNmI5NTc2MTA2Yjk2MTNjNzU1NjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDYxMDZkMTYwMDQ2MDAyODk2MTFmOWY1NjViODE2MDAyODE1MTgxMTA2MTA2ZTQ1NzYxMDZlNDYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNjEwNmZiNjAwNTgwODg2MTFmOWY1NjViODE2MDAzODE1MTgxMTA2MTA3MGU1NzYxMDcwZTYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNjEwNzM1NjAwNjYwMDE2MDQwNTE4MDYwMjAwMTYwNDA1MjgwNjAwMDgxNTI1MDYxMTdmMzU2NWI4MTYwMDQ4MTUxODExMDYxMDc0ODU3NjEwNzQ4NjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA2MDAwNjEwNzYzOGI2MDAwODg4ODg2NjExODI4NTY1YjkwNTA2MDAwODA2MTA3Nzc4MzYwMDQ1NDYwMDU1NDYxMWZjYTU2NWI5MDkyNTA5MDUwNjAxNjgyMTQ2MTA3ODk1NzYwMDA4MGZkNWI2MTA3OTM4NjgyNjEyMGY4NTY1YjkxNTA2MDE2ODIxNDYxMDdhMjU3NjAwMDgwZmQ1YjYwNDA4MDUxNjAwMDgwODI1MjYwMjA4MjAxOTA5MjUyODE5MDYxMDdjMjkwODQ5MDYwNjQ5MDYxMjFjYzU2NWI5MDkyNTA5MDUwNjAxNjgyMTQ2MTA3ZDQ1NzYwMDA4MGZkNWI1MDkwOWQ5YzUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTY1YjYwNDA4MDUxNjAwMjgwODI1MjYwNjA4MjAxOTA5MjUyNjAwMDkxODI5MTkwODE2MDIwMDE1YjYxMDgwYTYxMzJmMzU2NWI4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTA4MDI1NzkwNTA1MDkwNTA2MDAwNjEwODJmMzA2MDAwODc4Nzg2NjExODI4NTY1YjkwNTA2MDAwODA2MTA4NDM4MzYwMDQ1NDYwMDU1NDYxMWZjYTU2NWI5MDkyNTA5MDUwNjAxNjgyMTQ2MTA4NTU1NzYwMDA4MGZkNWI5Njk1NTA1MDUwNTA1MDUwNTY1YjYwNDA4MDUxNjAwMTgwODI1MjgxODMwMTkwOTI1MjYwMDA5MTgyOTE5MDgxNjAyMDAxNWI2MTA4ODE2MTMyZjM1NjViODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjEwODc5NTc5MDUwNTA5MDUwNjEwOGIyNjAwMDYwMDE2MDQwNTE4MDYwMjAwMTYwNDA1MjgwNjAwMDgxNTI1MDYxMTdmMzU2NWI4MTYwMDA4MTUxODExMDYxMDhjNTU3NjEwOGM1NjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA2MDAwNjEwOGUwODY2MDAwODc4Nzg2NjExODI4NTY1YjkwNTA2MDAwODA2MTAxNjc2MDAxNjAwMTYwYTAxYjAzMTY2Mzc4MTJhMDRiNjBlMDFiODQ2MDA0NTQ2MDA1NTQ2MDQwNTE2MDI0MDE2MTA5MTI5MzkyOTE5MDYxM2VhZTU2NWI2MDQwODA1MTYwMWYxOTgxODQwMzAxODE1MjkxODE1MjYwMjA4MjAxODA1MTYwMDE2MDAxNjBlMDFiMDMxNjYwMDE2MDAxNjBlMDFiMDMxOTkwOTQxNjkzOTA5MzE3OTA5MjUyOTA1MTYxMDk1MDkxOTA2MTNlZDM1NjViNjAwMDYwNDA1MTgwODMwMzgxODU1YWY0OTE1MDUwM2Q4MDYwMDA4MTE0NjEwOThiNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjEwOTkwNTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTA5OWY1NzYwMDA4MGZkNWI2MDAwODA4MjgwNjAyMDAxOTA1MTgxMDE5MDYxMDliNjkxOTA2MTNlZWY1NjViOTA5MjUwOTA1MDYwMTY4MjE0NjEwOWM4NTc2MDAwODBmZDViOTk5ODUwNTA1MDUwNTA1MDUwNTA1MDU2NWI2MDAwNjEwOWVkNjEwOWUyNjExY2I0NTY1YjYxMDYxZTg2ODY4NjYxMjJiNTU2NWI5NDkzNTA1MDUwNTA1NjViNjA0MDgwNTE2MDAxODA4MjUyODE4MzAxOTA5MjUyNjAwMDkxODI5MTkwODE2MDIwMDE1YjYxMGExNzYxMzJmMzU2NWI4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTBhMGY1NzkwNTA1MDkwNTA2MTBhMzQ2MTMyZjM1NjViNjAwNDgxNTI2MTBhNDA2MTMzMTI1NjViMzA2MDIwODA4MzAxOTE5MDkxNTI2MDAxODI1MjgyMDE4MTkwNTI4MjUxODI5MDg0OTA2MDAwOTA2MTBhNjg1NzYxMGE2ODYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNjAwMDYxMGE4MzMwNjAwMDg5ODk4ODYxMTgyODU2NWI5MDUwNjAwMDgwNjEwYTk3ODM2MDA0NTQ2MDA1NTQ2MTFmY2E1NjViOTA5MjUwOTA1MDYwMTY4MjE0NjEwYWE5NTc2MDAwODBmZDViOTg5NzUwNTA1MDUwNTA1MDUwNTA1NjViNjAwMDYxMDljODYxMGFjMjYxMWNiNDU2NWI2MTBhY2Q4YjhhODc2MTIzMWY1NjViNjEwNjI2OGI4YThhOGE4OTYxMjNkNDU2NWI2MDAwODA2MTBiMjQzMDgyODY4NjgyNjA0MDUxOTA4MDgyNTI4MDYwMjAwMjYwMjAwMTgyMDE2MDQwNTI4MDE1NjEwYjFlNTc4MTYwMjAwMTViNjEwYjBiNjEzMmYzNTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMGIwMzU3OTA1MDViNTA2MTE4Mjg1NjViOTA1MDYxMGI0OTYwNDA4MDUxNjA2MDgxMDE4MjUyNjAwMDgwODI1MjYwMjA4MjAxODE5MDUyOTE4MTAxOTE5MDkxNTI5MDU2NWI2MDM3ODE1MjYxMDEwMDgyMDE4MTkwNTI2MDAwODA2MTA4NDM4NDgyODA2MTFmY2E1NjViNjA0MDgwNTE2MDAzODA4MjUyNjA4MDgyMDE5MDkyNTI2MDAwOTE4MjkxOTA4MTYwMjAwMTViNjEwYjg2NjEzMmYzNTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMGI3ZTU3OTA1MDUwOTA1MDYxMGJhODYwMDA2MDAzODc2MTE3ZjM1NjViODE2MDAwODE1MTgxMTA2MTBiYmI1NzYxMGJiYjYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNjEwYmQzNjAwNDYwMDIzMDYxMWY5ZjU2NWI4MTYwMDE4MTUxODExMDYxMGJlNjU3NjEwYmU2NjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA2MTBiZmU2MDA2NjAwMjMwNjExZjlmNTY1YjgxNjAwMjgxNTE4MTEwNjEwYzExNTc2MTBjMTE2MTNjNzU1NjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDYwMDA2MTBjMmMzMDYwMDA4Nzg3ODY2MTE4Mjg1NjViOTA1MDYwMDA4MDYxMGMzZTgzNjAxZTYwMDg2MTFmY2E1NjViOTA5MjUwOTA1MDYwMTY4MjE0NjEwYzUwNTc2MDAwODBmZDViODA5NDUwNjAwMDgxNjAwMTYwMDE2MGEwMWIwMzE2NjMwNmZkZGUwMzYwNDA1MTgxNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYwMDA2MDQwNTE4MDgzMDM4MTg2NWFmYTE1ODAxNTYxMGM5MzU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAwMDgyM2U2MDFmM2Q5MDgxMDE2MDFmMTkxNjgyMDE2MDQwNTI2MTBjYmI5MTkwODEwMTkwNjEzZjE0NTY1YjkwNTA2MDAxNjA0MDUxNjEwY2NjOTE5MDYxM2ZiYzU2NWI2MDQwNTE4MDkxMDM5MDIwODE4MDUxOTA2MDIwMDEyMDE0NjEwZDI0NTc2MDQwNTE2MjQ2MWJjZDYwZTUxYjgxNTI2MDIwNjAwNDgyMDE1MjYwMTM2MDI0ODIwMTUyNzIxMzk4NWI1OTQ4MWE1Y2M4MWI5YmRkMDgxOGRiZGM5Yzk5NThkZDYwNmExYjYwNDQ4MjAxNTI2MDY0MDE1YjYwNDA1MTgwOTEwMzkwZmQ1YjYwMDA4MjYwMDE2MDAxNjBhMDFiMDMxNjYzMTgxNjBkZGQ2MDQwNTE4MTYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MDIwNjA0MDUxODA4MzAzODE4NjVhZmExNTgwMTU2MTBkNjQ1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA2MDQwNTEzZDYwMWYxOTYwMWY4MjAxMTY4MjAxODA2MDQwNTI1MDgxMDE5MDYxMGQ4ODkxOTA2MTQwNTg1NjViOTA1MDgwNjAxZTE0NjEwZGRhNTc2MDQwNTE2MjQ2MWJjZDYwZTUxYjgxNTI2MDIwNjAwNDgyMDE1MjYwMWI2MDI0ODIwMTUyN2Y1NDZmNzQ2MTZjMjA3Mzc1NzA3MDZjNzkyMDY5NzMyMDZlNmY3NDIwNjM2ZjcyNzI2NTYzNzQwMDAwMDAwMDAwNjA0NDgyMDE1MjYwNjQwMTYxMGQxYjU2NWI2MDQwNTE2M2E5MDU5Y2JiNjBlMDFiODE1MjYwMDE2MDAxNjBhMDFiMDM4YTgxMTY2MDA0ODMwMTUyNjAxNDYwMjQ4MzAxNTI2MDAwOTE5MDg1MTY5MDYzYTkwNTljYmI5MDYwNDQwMTYwMjA2MDQwNTE4MDgzMDM4MTYwMDA4NzVhZjExNTgwMTU2MTBlMmQ1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA2MDQwNTEzZDYwMWYxOTYwMWY4MjAxMTY4MjAxODA2MDQwNTI1MDgxMDE5MDYxMGU1MTkxOTA2MTQwNzE1NjViOTA1MDgwNjEwZTkzNTc2MDQwNTE2MjQ2MWI=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwFIQW/U8Dmj8fX24ZgY7drYB/FIFTpWmlIsX+ySSZh8mq7YTIIW9XGVThuC9N/k+gGgwIpbTkrQYQ85GzhQMiDwoJCOmz5K0GEJgOEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjqs+StBhCeDhICGAISAhgDGPfR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxj6CyKAIGNkNjBlNTFiODE1MjYwMjA2MDA0ODIwMTUyNjAxMDYwMjQ4MjAxNTI2ZjU0NzI2MTZlNzM2NjY1NzIyMDY2NjE2OTZjNjU2NDIxNjA4MDFiNjA0NDgyMDE1MjYwNjQwMTYxMGQxYjU2NWI1MDUwNTA1MDUwNTA1MDkzOTI1MDUwNTA1NjViNjA0MDgwNTE2MDAyODA4MjUyNjA2MDgyMDE5MDkyNTI2MDAwOTE4MjkxOTA4MTYwMjAwMTViNjEwZWM0NjEzMmYzNTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMGViYzU3OTA1MDUwOTA1MDYxMGVlNjYwMDA2MDAyOGE2MTFmOWY1NjViODE2MDAwODE1MTgxMTA2MTBlZjk1NzYxMGVmOTYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNjEwZjExNjAwNDYwMDM4NTYxMTdmMzU2NWI4MTYwMDE4MTUxODExMDYxMGYyNDU3NjEwZjI0NjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA2MDAwNjEwZjNmODg2MDAwODg4ODg2NjExODI4NTY1YjYwMDE2MDgwODIwMTUyNjEwMTkwNjBhMDgyMDE1MjkwNTA2MDAwNjEwZjYyNjAwNDYwMDU4MzhiODE4ZTYxMjQ4ZDU2NWI5MDUwNjAwMDgwNjEwNWU2ODQ4MjYwNDA1MTkwODA4MjUyODA2MDIwMDI2MDIwMDE4MjAxNjA0MDUyODAxNTYxMGZhNTU3ODE2MDIwMDE1YjYxMGY5MjYxMzM1NTU2NWI4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTBmOGE1NzkwNTA1YjUwODU2MTI0ZDE1NjViNjAwMDYxMGZjMjYxMGZiZDg2ODY4Njg2NjEyNTQ0NTY1YjYxMjVjNTU2NWI5NTk0NTA1MDUwNTA1MDU2NWI2MDAwNjEwOWVkNjEwZmQ4NjExY2I0NTY1YjYxMDYxZTg2ODY4NjYwMDA2MTI3MWM1NjViNjAwMDgwNjEwZmYzNjAwMzg2NjEyN2MwNTY1YjkwNTA2MDAwNjExMDA1ODc2MDAwODc4Nzg2NjExODI4NTY1YjYwMDE2MDgwODIwMTgxOTA1MjYwMGE2MGEwODMwMTUyNjBjMDgyMDE1MjkwNTA2MDAwODA2MTBhOTc4MzYxMjgzZDU2NWI2MDAwNjEwZmMyNjExMDM1NjExY2I0NTY1YjYwNjA2MTA2MjY4ODg4ODg4ODYxMjk2NTU2NWI2MDAwNjEwOWVkNjExMDUwNjExY2I0NTY1YjYxMDYxZTg1ODc4NjYxMjlkMTU2NWI2MDAwNjExMDY4NjEwZmJkNjExY2I0NTY1YjkwNTA5MDU2NWI2MDQwODA1MTYwMDE4MDgyNTI4MTgzMDE5MDkyNTI2MDAwOTE4MjkxOTA4MTYwMjAwMTViNjExMDhmNjEzMmYzNTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMTA4NzU3OTA1MDUwOTA1MDYxMTBiMTYwMDA2MDA0ODg2MTE3ZjM1NjViODE2MDAwODE1MTgxMTA2MTEwYzQ1NzYxMTBjNDYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNjAwMDYxMTBkZjMwNjAwMDg3ODc4NjYxMTgyODU2NWI5MDUwNjAwMDYxMTBlZTYwMDE4ODYxMmExMjU2NWI2MDQwODA1MTYwMDE4MDgyNTI4MTgzMDE5MDkyNTI5MTkyNTA2MDAwOTE5MDgxNjAyMDAxNWI2MTExMTE2MTMzNTU1NjViODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjExMTA5NTc5MDUwNTA5MDUwODE4MTYwMDA4MTUxODExMDYxMTEzYTU3NjExMTNhNjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA2MDAwODA2MTExYWI4NTYwMDQ1NDYwMDU1NDg2NjAwMDYwMDE2MDAxNjA0MDFiMDM4MTExMTU2MTExNmM1NzYxMTE2YzYxMzQzMjU2NWI2MDQwNTE5MDgwODI1MjgwNjAyMDAyNjAyMDAxODIwMTYwNDA1MjgwMTU2MTExYTU1NzgxNjAyMDAxNWI2MTExOTI2MTMzODM1NjViODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjExMThhNTc5MDUwNWI1MDYxMWI4MDU2NWI5MDkyNTA5MDUwNjAxNjgyMTQ2MTExYmQ1NzYwMDA4MGZkNWI5YTk5NTA1MDUwNTA1MDUwNTA1MDUwNTA1NjViNjAwMDYxMTFkNTYxMzNiODU2NWI2MDAxODA1NDYxMTFlMjkwNjEzZjgxNTY1YjgwNjAxZjAxNjAyMDgwOTEwNDAyNjAyMDAxNjA0MDUxOTA4MTAxNjA0MDUyODA5MjkxOTA4MTgxNTI2MDIwMDE4MjgwNTQ2MTEyMGU5MDYxM2Y4MTU2NWI4MDE1NjExMjViNTc4MDYwMWYxMDYxMTIzMDU3NjEwMTAwODA4MzU0MDQwMjgzNTI5MTYwMjAwMTkxNjExMjViNTY1YjgyMDE5MTkwNjAwMDUyNjAyMDYwMDAyMDkwNWI4MTU0ODE1MjkwNjAwMTAxOTA2MDIwMDE4MDgzMTE2MTEyM2U1NzgyOTAwMzYwMWYxNjgyMDE5MTViNTA1MDUwOTE4MzUyNTA1MDYwMDI4MDU0NjExMjcwOTA2MTNmODE1NjViODA2MDFmMDE2MDIwODA5MTA0MDI2MDIwMDE2MDQwNTE5MDgxMDE2MDQwNTI4MDkyOTE5MDgxODE1MjYwMjAwMTgyODA1NDYxMTI5YzkwNjEzZjgxNTY1YjgwMTU2MTEyZTk1NzgwNjAxZjEwNjExMmJlNTc2MTAxMDA4MDgzNTQwNDAyODM1MjkxNjAyMDAxOTE2MTEyZTk1NjViODIwMTkxOTA2MDAwNTI2MDIwNjAwMDIwOTA1YjgxNTQ4MTUyOTA2MDAxMDE5MDYwMjAwMTgwODMxMTYxMTJjYzU3ODI5MDAzNjAxZjE2ODIwMTkxNWI1MDUwNTA1MDUwNjAyMDgyMDE1MjMwNjA0MDgyMDE1MjYwMDA4MDYxMTMwOTgzNjBjODYwMDg2MTFmY2E1NjViOTA5MjUwOTA1MDYwMTY4MjE0NjEwNjJiNTc2MDAwODBmZDViNjAwMDYxMDllZDYxMGZiZDg1ODU4NTYxMmE0MzU2NWI2MDAwNjExMzM1NjEzM2I4NTY1YjYwMDA4MDYxMTMwOTgzNjAwMDgwNjExZmNhNTY1YjYwMDA2MTA2MmI2MTBmYmQ4NDg0NjEyN2MwNTY1YjYwMDA2MTEzNzY2MTEzNjA2MTFjYjQ1NjViNjExMzZhODk4NjYxMmFjMjU2NWI2MTA2MjY4OTg5ODk4ODYxMjk2NTU2NWI5Nzk2NTA1MDUwNTA1MDUwNTA1NjViNjAwMDYxMGZjMjYxMTM4ZTYxMWNiNDU2NWI2MTA2MWU4Nzg3ODc4NzYxMjcxYzU2NWI2MDAwNjEwNjJiNjExM2E3NjExY2I0NTY1YjYxMDYxZTg1ODU2MTJiMDI1NjViNjAwMDYxMTM3NjYxMTNiZTYxMWNiNDU2NWI2MDYwNjEwNjI2OGE4YThhOGE4YThhNjExYjEwNTY1YjYwMDA2MTEwNjg2MTEzZGI2MTFjYjQ1NjViNjEyYjQyNTY1YjYwNDA4MDUxNjAwMjgwODI1MjYwNjA4MjAxOTA5MjUyNjAwMDkxODI5MTkwODE2MDIwMDE1YjYxMTQwMzYxMzJmMzU2NWI4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTEzZmI1NzkwNTA1MDkwNTA2MTE0MjU2MDAwNjAwMjhhNjExZjlmNTY1YjgxNjAwMDgxNTE4MTEwNjExNDM4NTc2MTE0Mzg2MTNjNzU1NjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDYxMTQ1MDYwMDQ2MDAzODU2MTE3ZjM1NjViODE2MDAxODE1MTgxMTA2MTE0NjM1NzYxMTQ2MzYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNjAwMDYxMTQ3ZTg4NjAwMDg4ODg4NjYxMTgyODU2NWI2MDAxNjA4MDgyMDE1MjYxMDE5MDYwYTA4MjAxNTI5MDUwNjAwMDYxMTRhMTYwMDQ2MDA1NjAwYThiOGQ2MTJjOTQ1NjViOTA1MDYwMDA4MDYxMDVlNjg0ODI2MDQwNTE5MDgwODI1MjgwNjAyMDAyNjAyMDAxODIwMTYwNDA1MjgwMTU2MTBmYTU1NzgxNjAyMDAxNWI2MTE0ZDE2MTMzNTU1NjViODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjExNGM5NTc5MDUwNTA4NTYxMjRkMTU2NWI2MDAwNjEwOWVkNjExNGY3NjExY2I0NTY1YjYxMDYxZTg2ODY4NjYxMWEzNTU2NWI2MDQwODA1MTYwMDI4MDgyNTI2MDYwODIwMTkwOTI1MjYwMDA5MTgyOTE5MDgxNjAyMDAxNWI2MTE1MjU2MTMyZjM1NjViODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjExNTFkNTc5MDUwNTA5MDUwNjExNTQ3NjAwMDYwMDI4NzYxMWY5ZjU2NWI4MTYwMDA4MTUxODExMDYxMTU1YTU3NjExNTVhNjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA2MTE1NzI2MDA0NjAwMjg3NjExZjlmNTY1YjgxNjAwMTgxNTE4MTEwNjExNTg1NTc2MTE1ODU2MTNjNzU1NjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDYwMDA2MTE1YTAzMDYwMDA4Nzg3ODY2MTE4Mjg1NjViOTA1MDYwMDA2MTE1YjE2MDA0NjAwNTg5NjEyZDY4NTY1YjkwNTA2MDAwODA2MTE1ZmE4NDgyNjA0MDUxOTA4MDgyNTI4MDYwMjAwMjYwMjAwMTgyMDE2MDQwNTI4MDE1NjEwZmE1NTc4MTYwMjAwMTViNjExNWUxNjEzMzU1NTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMTVkOTU3OTA1MDUwODU2MTI0ZDE1NjViOTA5MjUwOTA1MDYwMTY4MjE0NjExNjBjNTc2MDAwODBmZDViODA5NTUwNjAwMDgxNjAwMTYwMDE2MGEwMWIwMzE2NjMwNmZkZGUwMzYwNDA1MTgxNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYwMDA2MDQwNTE4MDgzMDM4MTg2NWFmYTE1ODAxNTYxMTY0ZjU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAwMDgyM2U2MDFmM2Q=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwUf2ssZc9rxHAkg3Cdi1SLI19/QwbQPA6lwgOilS3lH8o6NOHSKgSdR+yR2CHK7nLGgwIprTkrQYQg9mCqgEiDwoJCOqz5K0GEJ4OEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjqs+StBhCkDhICGAISAhgDGPfR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxj6CyKAIDkwODEwMTYwMWYxOTE2ODIwMTYwNDA1MjYxMTY3NzkxOTA4MTAxOTA2MTNmMTQ1NjViOTA1MDYwMDE2MDQwNTE2MTE2ODg5MTkwNjEzZmJjNTY1YjYwNDA1MTgwOTEwMzkwMjA4MTgwNTE5MDYwMjAwMTIwMTQ2MTE2ZGI1NzYwNDA1MTYyNDYxYmNkNjBlNTFiODE1MjYwMjA2MDA0ODIwMTUyNjAxMzYwMjQ4MjAxNTI3MjEzOTg1YjU5NDgxYTVjYzgxYjliZGQwODE4ZGJkYzljOTk1OGRkNjA2YTFiNjA0NDgyMDE1MjYwNjQwMTYxMGQxYjU2NWI2MDAwODI2MDAxNjAwMTYwYTAxYjAzMTY2Mzk1ZDg5YjQxNjA0MDUxODE2M2ZmZmZmZmZmMTY2MGUwMWI4MTUyNjAwNDAxNjAwMDYwNDA1MTgwODMwMzgxODY1YWZhMTU4MDE1NjExNzFiNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDAwODIzZTYwMWYzZDkwODEwMTYwMWYxOTE2ODIwMTYwNDA1MjYxMTc0MzkxOTA4MTAxOTA2MTNmMTQ1NjViOTA1MDYwMDI2MDQwNTE2MTE3NTQ5MTkwNjEzZmJjNTY1YjYwNDA1MTgwOTEwMzkwMjA4MTgwNTE5MDYwMjAwMTIwMTQ2MTBlOTM1NzYwNDA1MTYyNDYxYmNkNjBlNTFiODE1MjYwMjA2MDA0ODIwMTUyNjAxNTYwMjQ4MjAxNTI3NDE0ZGU1YjU4OWJkYjA4MWE1Y2M4MWI5YmRkMDgxOGRiZGM5Yzk5NThkZDYwNWExYjYwNDQ4MjAxNTI2MDY0MDE2MTBkMWI1NjViNjAwMDYxMDYyYjYxMTdiNjYxMWNiNDU2NWI2MTA2MWU4NTg1NjEyYWMyNTY1YjYwMDA2MTEwNjg2MTE3Y2Q2MTFjYjQ1NjViNjEyZGE5NTY1YjYwMDA2MTEwNjg2MTBmYmQ2MDA0NjAwMTYwNDA1MTgwNjAyMDAxNjA0MDUyODA2MDAwODE1MjUwNjEyYTQzNTY1YjYxMTdmYjYxMzJmMzU2NWI2MDQwNTE4MDYwNDAwMTYwNDA1MjgwNjExODBmODY2MTJmY2U1NjViODE1MjYwMjAwMTYxMTgxZTg1ODU2MTMwNjA1NjViOTA1Mjk0OTM1MDUwNTA1MDU2NWI2MTE4MzA2MTMzYjg1NjViNjA0MDgwNTE2MDYwODEwMTgyNTI2M2ZmZmZmZmZmODc4MTE2ODI1MjYwMDE2MDAxNjBhMDFiMDM4NzE2NjAyMDgzMDE1Mjg1MTY5MTgxMDE5MTkwOTE1MjYwMDE4MDU0NjExODY5OTA2MTNmODE1NjViODA2MDFmMDE2MDIwODA5MTA0MDI2MDIwMDE2MDQwNTE5MDgxMDE2MDQwNTI4MDkyOTE5MDgxODE1MjYwMjAwMTgyODA1NDYxMTg5NTkwNjEzZjgxNTY1YjgwMTU2MTE4ZTI1NzgwNjAxZjEwNjExOGI3NTc2MTAxMDA4MDgzNTQwNDAyODM1MjkxNjAyMDAxOTE2MTE4ZTI1NjViODIwMTkxOTA2MDAwNTI2MDIwNjAwMDIwOTA1YjgxNTQ4MTUyOTA2MDAxMDE5MDYwMjAwMTgwODMxMTYxMThjNTU3ODI5MDAzNjAxZjE2ODIwMTkxNWI1MDUwNTA5MTg0NTI1MDUwNjAwMjgwNTQ2MTE4Zjc5MDYxM2Y4MTU2NWI4MDYwMWYwMTYwMjA4MDkxMDQwMjYwMjAwMTYwNDA1MTkwODEwMTYwNDA1MjgwOTI5MTkwODE4MTUyNjAyMDAxODI4MDU0NjExOTIzOTA2MTNmODE1NjViODAxNTYxMTk3MDU3ODA2MDFmMTA2MTE5NDU1NzYxMDEwMDgwODM1NDA0MDI4MzUyOTE2MDIwMDE5MTYxMTk3MDU2NWI4MjAxOTE5MDYwMDA1MjYwMjA2MDAwMjA5MDViODE1NDgxNTI5MDYwMDEwMTkwNjAyMDAxODA4MzExNjExOTUzNTc4MjkwMDM2MDFmMTY4MjAxOTE1YjUwNTA1MDUwNTA2MDIwODMwMTUyNjAwMTYwMDE2MGEwMWIwMzg3MTY2MDQwODMwMTUyNjBlMDgyMDE4MzkwNTI2MTAxMDA4MjAxODE5MDUyNjAwMzgwNTQ2MTE5YTU5MDYxM2Y4MTU2NWI4MDYwMWYwMTYwMjA4MDkxMDQwMjYwMjAwMTYwNDA1MTkwODEwMTYwNDA1MjgwOTI5MTkwODE4MTUyNjAyMDAxODI4MDU0NjExOWQxOTA2MTNmODE1NjViODAxNTYxMWExZTU3ODA2MDFmMTA2MTE5ZjM1NzYxMDEwMDgwODM1NDA0MDI4MzUyOTE2MDIwMDE5MTYxMWExZTU2NWI4MjAxOTE5MDYwMDA1MjYwMjA2MDAwMjA5MDViODE1NDgxNTI5MDYwMDEwMTkwNjAyMDAxODA4MzExNjExYTAxNTc4MjkwMDM2MDFmMTY4MjAxOTE1YjUwNTA1MDUwNTA4MjYwNjAwMTgxOTA1MjUwNTA5NTk0NTA1MDUwNTA1MDU2NWI2MDQwODA1MTYwMDM4MDgyNTI2MDgwODIwMTkwOTI1MjYwNjA5MTgxNjAyMDAxNWI2MTFhNTU2MTMzNTU1NjViODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjExYTRkNTc5MDUwNTA5MDUwNjAwMDYxMWE3Nzg1ODU4NTYxMzBmMzU2NWI5MDUwNjAwMDYxMWE4ZjYxMWE4OTg3NjAwMjYxNDBhNDU2NWI4NTYxMzExZTU2NWI5MDUwNjAwMDYxMWFhNzYxMWFhMTg4NjAwNDYxNDBhNDU2NWI4NjYxMzE0ODU2NWI5MDUwODI4NDYwMDA4MTUxODExMDYxMWFiZDU3NjExYWJkNjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA4MTg0NjAwMTgxNTE4MTEwNjExYWRjNTc2MTFhZGM2MTNjNzU1NjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDgwODQ2MDAyODE1MTgxMTA2MTFhZmI1NzYxMWFmYjYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNTA1MDUwOTM5MjUwNTA1MDU2NWI2MDQwODA1MTYwMDE4MDgyNTI4MTgzMDE5MDkyNTI2MDYwOTE4MTYwMjAwMTViNjExYjJmNjEzMzgzNTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMWIyNzU3OTA1MDUwOTA1MDYwMDA2MTFiNTQ4ODg4ODg4ODg4ODg2MTMxNzI1NjViOTA1MDgwODI2MDAwODE1MTgxMTA2MTFiNmE1NzYxMWI2YTYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNTA5Njk1NTA1MDUwNTA1MDUwNTY1YjYwMDA4MDg2ODA2MTAxMDAwMTUxNjAwMDAxNTE2M2ZmZmZmZmZmMTY2MDAwMTQ4MDE1NjExYmIwNTc1MDYxMDEwMDgxMDE1MTYwNDAwMTUxNjNmZmZmZmZmZjE2MTU1YjE1NjExYmM2NTc2MTAxMDA4MTAxNTE2Mjc2YTcwMDYwNDA5MDkxMDE1MjViNjAwMDgwNjEwMTY3NjAwMTYwMDE2MGEwMWIwMzE2MzQ2MzRjMzgxYWU3NjBlMDFiOGM4YzhjOGM4YzYwNDA1MTYwMjQwMTYxMWJmNzk1OTQ5MzkyOTE5MDYxNDE0YjU2NWI2MDQwODA1MTYwMWYxOTgxODQwMzAxODE1MjkxODE1MjYwMjA4MjAxODA1MTYwMDE2MDAxNjBlMDFiMDMxNjYwMDE2MDAxNjBlMDFiMDMxOTkwOTQxNjkzOTA5MzE3OTA5MjUyOTA1MTYxMWMzNTkxOTA2MTNlZDM1NjViNjAwMDYwNDA1MTgwODMwMzgxODU4NzVhZjE5MjUwNTA1MDNkODA2MDAwODExNDYxMWM3MjU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMWM3NzU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjExYzhhNTc2MDE1NjAwMDYxMWM5ZTU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMWM5ZTkxOTA2MTQyMjI1NjViNjAwMzkxOTA5MTBiOWI5MDlhNTA5ODUwNTA1MDUwNTA1MDUwNTA1MDU2NWI2MDQwODA1MTYwMDI4MDgyNTI2MDYwODI4MTAxOTA5MzUyODE2MDIwMDE1YjYxMWNkMjYxMzJmMzU2NWI4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTFjY2E1NzkwNTA1MDkwNTA2MTFkMDI2MDAxODA2MDQwNTE4MDYwMjAwMTYwNDA1MjgwNjAwMDgxNTI1MDYxMTdmMzU2NWI4MTYwMDA4MTUxODExMDYxMWQxNTU3NjExZDE1NjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA2MDQwNTE4MDYwNDAwMTYwNDA1MjgwNjExZDM3NjAwNDYwMDY2MTMxYjY1NjViODE1MjYwMjAwMTYxMWQ1NjYwMDI2MDQwNTE4MDYwMjAwMTYwNDA1MjgwNjAwMDgxNTI1MDYxMzA2MDU2NWI4MTUyNTA4MTYwMDE4MTUxODExMDYxMWQ2YzU3NjExZDZjNjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA5MDU2NWI2MDQwODA1MTYwMDE4MDgyNTI4MTgzMDE5MDkyNTI2MDYwOTE4MTYwMjAwMTViNjExZDk5NjEzMzU1NTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMWQ5MTU3OTA1MDUwOTA1MDYwMDA2MTFkYmE4NDg0NjEzMTQ4NTY1YjkwNTA4MDgyNjAwMDgxNTE4MTEwNjExZGQwNTc2MTFkZDA2MTNjNzU1NjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDUwOTI5MTUwNTA1NjViNjA0MDgwNTE2MDAwODA4MjUyNjAyMDgyMDE5MDkyNTI2MDYwOTE2MTFlMTU1NjViNjExZTAyNjEzMzgzNTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMWRmYTU3OTA1MDViNTA5MDUwOTA1NjViNjAwMDYxMWUyNTYxMzNiODU2NWI2MDAxODA1NDYxMWUzMjkwNjEzZjgxNTY1YjgwNjAxZjAxNjAyMDgwOTEwNDAyNjAyMDAxNjA0MDUxOTA4MTAxNjA0MDUyODA5MjkxOTA4MTgxNTI2MDIwMDE4MjgwNTQ2MTFlNWU5MDYxM2Y4MTU2NWI=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwKulwpPdeX1yXg5R1dSwitXiFlnMpF4aGwcBc6RdZfPEKk0RUhne5xIw34HpGdHwdGgwIprTkrQYQ07GAjwMiDwoJCOqz5K0GEKQOEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjrs+StBhCqDhICGAISAhgDGPbR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxj6CyKAIDgwMTU2MTFlYWI1NzgwNjAxZjEwNjExZTgwNTc2MTAxMDA4MDgzNTQwNDAyODM1MjkxNjAyMDAxOTE2MTFlYWI1NjViODIwMTkxOTA2MDAwNTI2MDIwNjAwMDIwOTA1YjgxNTQ4MTUyOTA2MDAxMDE5MDYwMjAwMTgwODMxMTYxMWU4ZTU3ODI5MDAzNjAxZjE2ODIwMTkxNWI1MDUwNTA5MTgzNTI1MDUwNjAwMjgwNTQ2MTFlYzA5MDYxM2Y4MTU2NWI4MDYwMWYwMTYwMjA4MDkxMDQwMjYwMjAwMTYwNDA1MTkwODEwMTYwNDA1MjgwOTI5MTkwODE4MTUyNjAyMDAxODI4MDU0NjExZWVjOTA2MTNmODE1NjViODAxNTYxMWYzOTU3ODA2MDFmMTA2MTFmMGU1NzYxMDEwMDgwODM1NDA0MDI4MzUyOTE2MDIwMDE5MTYxMWYzOTU2NWI4MjAxOTE5MDYwMDA1MjYwMjA2MDAwMjA5MDViODE1NDgxNTI5MDYwMDEwMTkwNjAyMDAxODA4MzExNjExZjFjNTc4MjkwMDM2MDFmMTY4MjAxOTE1YjUwNTA1MDUwNTA2MDIwODIwMTUyMzA2MDQwODIwMTUyNjBlMDgxMDE4NTkwNTI2MDA0NTQ2MDA1NTQ2MDAwOTE4MjkxNjEwODQzOTE4NTkxODk4OTYxMWI4MDU2NWI2MTFmNzA2MTMyZjM1NjViNjA0MDUxODA2MDQwMDE2MDQwNTI4MDYxMWY4NTg3ODc2MTMxYjY1NjViODE1MjYwMjAwMTYxMWY5NDg1ODU2MTMwNjA1NjViOTA1Mjk1OTQ1MDUwNTA1MDUwNTY1YjYxMWZhNzYxMzJmMzU2NWI2MDQwNTE4MDYwNDAwMTYwNDA1MjgwNjExZmJiODY2MTJmY2U1NjViODE1MjYwMjAwMTYxMTgxZTg1ODU2MTMxY2Y1NjViNjAwMDgwODQ4MDYxMDEwMDAxNTE2MDAwMDE1MTYzZmZmZmZmZmYxNjYwMDAxNDgwMTU2MTFmZmE1NzUwNjEwMTAwODEwMTUxNjA0MDAxNTE2M2ZmZmZmZmZmMTYxNTViMTU2MTIwMTA1NzYxMDEwMDgxMDE1MTYyNzZhNzAwNjA0MDkwOTEwMTUyNWI2MDAwODA2MTAxNjc2MDAxNjAwMTYwYTAxYjAzMTYzNDYzNzgxMmEwNGI2MGUwMWI4YThhOGE2MDQwNTE2MDI0MDE2MTIwM2Q5MzkyOTE5MDYxM2VhZTU2NWI2MDQwODA1MTYwMWYxOTgxODQwMzAxODE1MjkxODE1MjYwMjA4MjAxODA1MTYwMDE2MDAxNjBlMDFiMDMxNjYwMDE2MDAxNjBlMDFiMDMxOTkwOTQxNjkzOTA5MzE3OTA5MjUyOTA1MTYxMjA3YjkxOTA2MTNlZDM1NjViNjAwMDYwNDA1MTgwODMwMzgxODU4NzVhZjE5MjUwNTA1MDNkODA2MDAwODExNDYxMjBiODU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMjBiZDU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEyMGQwNTc2MDE1NjAwMDYxMjBlNDU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMjBlNDkxOTA2MTQyMjI1NjViNjAwMzkxOTA5MTBiOTk5MDk4NTA5NjUwNTA1MDUwNTA1MDUwNTY1YjYwNDA4MDUxNjAwMTYwMDE2MGEwMWIwMzg0ODExNjYwMjQ4MzAxNTI4MzE2NjA0NDgwODMwMTkxOTA5MTUyODI1MTgwODMwMzkwOTEwMTgxNTI2MDY0OTA5MTAxODI1MjYwMjA4MTAxODA1MTYwMDE2MDAxNjBlMDFiMDMxNjYzMjQ4YTM1ZWY2MGUxMWIxNzkwNTI5MDUxNjAwMDkxODI5MTgyOTE2MTAxNjc5MTYxMjE1OTkxOTA2MTNlZDM1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMjE5NjU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMjE5YjU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEyMWFjNTc2MDE1NjEyMWMwNTY1YjgwODA2MDIwMDE5MDUxODEwMTkwNjEyMWMwOTE5MDYxNDI0ZTU2NWI2MDAzMGI5NTk0NTA1MDUwNTA1MDU2NWI2MDAwODA2MDAwODA2MTAxNjc2MDAxNjAwMTYwYTAxYjAzMTY2M2FjYjljZmY5NjBlMDFiODg4ODg4NjA0MDUxNjAyNDAxNjEyMWZiOTM5MjkxOTA2MTQyNjk1NjViNjA0MDgwNTE2MDFmMTk4MTg0MDMwMTgxNTI5MTgxNTI2MDIwODIwMTgwNTE2MDAxNjAwMTYwZTAxYjAzMTY2MDAxNjAwMTYwZTAxYjAzMTk5MDk0MTY5MzkwOTMxNzkwOTI1MjkwNTE2MTIyMzk5MTkwNjEzZWQzNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NjVhZjE5MTUwNTAzZDgwNjAwMDgxMTQ2MTIyNzY1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTIyN2I1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA4MTYxMjI4ZTU3NjAxNTYwMDA2MTIyYTI1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTIyYTI5MTkwNjE0MmQzNTY1YjYwMDM5MTkwOTEwYjk4OTA5NzUwOTU1MDUwNTA1MDUwNTA1NjViNjA0MDgwNTE2MDAxODA4MjUyODE4MzAxOTA5MjUyNjA2MDkxODE2MDIwMDE1YjYxMjJkNDYxMzM1NTU2NWI4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTIyY2M1NzkwNTA1MDkwNTA2MDAwNjEyMmY2ODU4NTg1NjEzMGYzNTY1YjkwNTA4MDgyNjAwMDgxNTE4MTEwNjEyMzBjNTc2MTIzMGM2MTNjNzU1NjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDUwOTM5MjUwNTA1MDU2NWI2MDYwODM2MGZmMTY2MDAxNjAwMTYwNDAxYjAzODExMTE1NjEyMzNjNTc2MTIzM2M2MTM0MzI1NjViNjA0MDUxOTA4MDgyNTI4MDYwMjAwMjYwMjAwMTgyMDE2MDQwNTI4MDE1NjEyMzc1NTc4MTYwMjAwMTViNjEyMzYyNjEzMzU1NTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMjM1YTU3OTA1MDViNTA5MDUwNjAwMDViODQ2MGZmMTY4MTYwZmYxNjEwMTU2MTIzY2M1NzYwMDA2MTIzOTU4NTg1NjEzMTFlNTY1YjkwNTA4MDgzODM2MGZmMTY4MTUxODExMDYxMjNhZDU3NjEyM2FkNjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA1MDgwODA2MTIzYzQ5MDYxNDMwYjU2NWI5MTUwNTA2MTIzN2I1NjViNTA5MzkyNTA1MDUwNTY1YjYwNjA4NTYwZmYxNjYwMDE2MDAxNjA0MDFiMDM4MTExMTU2MTIzZjE1NzYxMjNmMTYxMzQzMjU2NWI2MDQwNTE5MDgwODI1MjgwNjAyMDAyNjAyMDAxODIwMTYwNDA1MjgwMTU2MTI0MmE1NzgxNjAyMDAxNWI2MTI0MTc2MTMzODM1NjViODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjEyNDBmNTc5MDUwNWI1MDkwNTA2MDAwNWI4NjYwZmYxNjgxNjBmZjE2MTAxNTYxMjQ4MzU3NjAwMDYxMjQ0Yzg3ODc4Nzg3NjEzMjE4NTY1YjkwNTA4MDgzODM2MGZmMTY4MTUxODExMDYxMjQ2NDU3NjEyNDY0NjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA1MDgwODA2MTI0N2I5MDYxNDMwYjU2NWI5MTUwNTA2MTI0MzA1NjViNTA5NTk0NTA1MDUwNTA1MDU2NWI2MDQwODA1MTYwMDE4MDgyNTI4MTgzMDE5MDkyNTI2MDYwOTE4MTYwMjAwMTViNjEyNGFjNjEzMzgzNTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMjRhNDU3OTA1MDUwOTA1MDYwMDA2MTFiNTQ4ODg4ODg4ODg4ODg2MTMyNGQ1NjViNjAwMDgwODQ4MDYxMDEwMDAxNTE2MDAwMDE1MTYzZmZmZmZmZmYxNjYwMDAxNDgwMTU2MTI1MDE1NzUwNjEwMTAwODEwMTUxNjA0MDAxNTE2M2ZmZmZmZmZmMTYxNTViMTU2MTI1MTc1NzYxMDEwMDgxMDE1MTYyNzZhNzAwNjA0MDkwOTEwMTUyNWI2MDAwODA2MTAxNjc2MDAxNjAwMTYwYTAxYjAzMTYzNDYzNWJjN2MwZTY2MGUwMWI4YThhOGE2MDQwNTE2MDI0MDE2MTIwM2Q5MzkyOTE5MDYxNDMyYjU2NWI2MDQwODA1MTYwMDE4MDgyNTI4MTgzMDE5MDkyNTI2MDYwOTE4MTYwMjAwMTViNjEyNTYzNjEzMmYzNTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMjU1YjU3OTA1MDUwOTA1MDYwNDA1MTgwNjA0MDAxNjA0MDUyODA2MTI1OGQ4Nzg3NjEzMWI2NTY1YjgxNTI2MDIwMDE2MTI1OWM4NTg1NjEzMDYwNTY1YjgxNTI1MDgxNjAwMDgxNTE4MTEwNjEyNWIyNTc2MTI1YjI2MTNjNzU1NjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDk0OTM1MDUwNTA1MDU2NWI2MDAwNjEyNWNmNjEzM2I4NTY1YjYwMDE4MDU0NjEyNWRjOTA2MTNmODE1NjViODA2MDFmMDE2MDIwODA5MTA0MDI2MDIwMDE2MDQwNTE5MDgxMDE2MDQwNTI4MDkyOTE5MDgxODE1MjYwMjAwMTgyODA1NDYxMjYwODkwNjEzZjgxNTY1YjgwMTU2MTI2NTU1NzgwNjAxZjEwNjEyNjJhNTc2MTAxMDA4MDgzNTQwNDAyODM1MjkxNjAyMDAxOTE2MTI2NTU1NjViODIwMTkxOTA2MDAwNTI2MDIwNjAwMDIwOTA1YjgxNTQ4MTUyOTA2MDAxMDE5MDYwMjAwMTgwODMxMTYxMjYzODU3ODI5MDAzNjAxZjE2ODIwMTkxNWI1MDUwNTA5MTgzNTI1MDUwNjA=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwS0+9ed9kZve0eKjkmRB4PKCMDdzzLvQVsXGe90bUv4NXUpNTbaY1L0Y0xcm7avXIGgwIp7TkrQYQ44zzswEiDwoJCOuz5K0GEKoOEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjrs+StBhCwDhICGAISAhgDGPbR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxj6CyKAIDAyODA1NDYxMjY2YTkwNjEzZjgxNTY1YjgwNjAxZjAxNjAyMDgwOTEwNDAyNjAyMDAxNjA0MDUxOTA4MTAxNjA0MDUyODA5MjkxOTA4MTgxNTI2MDIwMDE4MjgwNTQ2MTI2OTY5MDYxM2Y4MTU2NWI4MDE1NjEyNmUzNTc4MDYwMWYxMDYxMjZiODU3NjEwMTAwODA4MzU0MDQwMjgzNTI5MTYwMjAwMTkxNjEyNmUzNTY1YjgyMDE5MTkwNjAwMDUyNjAyMDYwMDAyMDkwNWI4MTU0ODE1MjkwNjAwMTAxOTA2MDIwMDE4MDgzMTE2MTI2YzY1NzgyOTAwMzYwMWYxNjgyMDE5MTViNTA1MDUwNTA1MDYwMjA4MjAxNTIzMDYwNDA4MjAxNTI2MGUwODEwMTgzOTA1MjYwMDA4MDYxMjcwYTgzNjBjODYwMDg2MTFmY2E1NjViOTA5MjUwOTA1MDYwMTY4MjE0NjEwOWVkNTc2MDAwODBmZDViNjA0MDgwNTE2MDAxODA4MjUyODE4MzAxOTA5MjUyNjA2MDkxODE2MDIwMDE1YjYxMjczYjYxMzM1NTU2NWI4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTI3MzM1NzkwNTA1MDkwNTA2MDAwNjEyNzVkODY4Njg2NjEzMGYzNTY1YjkwNTA2MDAwNjEyNzc2NjEyNzZmODg2MDAyNjE0MGE0NTY1Yjg3ODY2MTMwZjM1NjViOTA1MDgxODM2MDAwODE1MTgxMTA2MTI3OGM1NzYxMjc4YzYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwODA4MzYwMDA4MTUxODExMDYxMjdhYjU3NjEyN2FiNjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA1MDUwOTQ5MzUwNTA1MDUwNTY1YjYwNDA4MDUxNjAwMTgwODI1MjgxODMwMTkwOTI1MjYwNjA5MTgxNjAyMDAxNWI2MTI3ZGY2MTMyZjM1NjViODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjEyN2Q3NTc5MDUwNTA5MDUwNjA0MDUxODA2MDQwMDE2MDQwNTI4MDYxMjgwNzYwN2Y5MDU2NWI4MTUyNjAyMDAxNjEyODE2ODU4NTYxMzA2MDU2NWI4MTUyNTA4MTYwMDA4MTUxODExMDYxMjgyYzU3NjEyODJjNjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA5MjkxNTA1MDU2NWI2MDAwODA4MjgwNjEwMTAwMDE1MTYwMDAwMTUxNjNmZmZmZmZmZjE2NjAwMDE0ODAxNTYxMjg2ZDU3NTA2MTAxMDA4MTAxNTE2MDQwMDE1MTYzZmZmZmZmZmYxNjE1NWIxNTYxMjg4MzU3NjEwMTAwODEwMTUxNjI3NmE3MDA2MDQwOTA5MTAxNTI1YjYwMDA4MDYxMDE2NzYwMDE2MDAxNjBhMDFiMDMxNjM0NjM5ZGM3MTFlMDYwZTAxYjg4NjA0MDUxNjAyNDAxNjEyOGFjOTE5MDYxNDNlNDU2NWI2MDQwODA1MTYwMWYxOTgxODQwMzAxODE1MjkxODE1MjYwMjA4MjAxODA1MTYwMDE2MDAxNjBlMDFiMDMxNjYwMDE2MDAxNjBlMDFiMDMxOTkwOTQxNjkzOTA5MzE3OTA5MjUyOTA1MTYxMjhlYTkxOTA2MTNlZDM1NjViNjAwMDYwNDA1MTgwODMwMzgxODU4NzVhZjE5MjUwNTA1MDNkODA2MDAwODExNDYxMjkyNzU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMjkyYzU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEyOTNmNTc2MDE1NjAwMDYxMjk1MzU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMjk1MzkxOTA2MTQyMjI1NjViNjAwMzkxOTA5MTBiOTc5MDk2NTA5NDUwNTA1MDUwNTA1NjViNjA0MDgwNTE2MDAxODA4MjUyODE4MzAxOTA5MjUyNjA2MDkxODE2MDIwMDE1YjYxMjk4NDYxMzM4MzU2NWI4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTI5N2M1NzkwNTA1MDkwNTA2MDAwNjEyOWE3ODY4Njg2ODY2MTMyMTg1NjViOTA1MDgwODI2MDAwODE1MTgxMTA2MTI5YmQ1NzYxMjliZDYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNTA5NDkzNTA1MDUwNTA1NjViNjA0MDgwNTE2MDAxODA4MjUyODE4MzAxOTA5MjUyNjA2MDkxODE2MDIwMDE1YjYxMjlmMDYxMzM1NTU2NWI4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTI5ZTg1NzkwNTA1MDkwNTA2MDAwNjEyMmY2ODU4NTg1NjEzMjkzNTY1YjYxMmExYTYxMzM1NTU2NWI2M2ZmZmZmZmZmOTA5MjE2ODI1MjYwMDE2MDQwODMwMTgxOTA1MjYwNjA4MzAxNTI2MDAxNjAwMTYwYTAxYjAzMTY2MDgwODIwMTUyOTA1NjViNjA0MDgwNTE2MDAxODA4MjUyODE4MzAxOTA5MjUyNjA2MDkxODE2MDIwMDE1YjYxMmE2MjYxMzJmMzU2NWI4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTJhNWE1NzkwNTA1MDkwNTA2MDQwNTE4MDYwNDAwMTYwNDA1MjgwNjEyYThiODY2MTJmY2U1NjViODE1MjYwMjAwMTYxMmE5YTg1ODU2MTMwNjA1NjViODE1MjUwODE2MDAwODE1MTgxMTA2MTJhYjA1NzYxMmFiMDYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwOTM5MjUwNTA1MDU2NWI2MDQwODA1MTYwMDE4MDgyNTI4MTgzMDE5MDkyNTI2MDYwOTE4MTYwMjAwMTViNjEyYWUxNjEzMzU1NTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMmFkOTU3OTA1MDUwOTA1MDYwMDA2MTFkYmE4NDg0NjEzMTFlNTY1YjYwNDA4MDUxNjAwMTgwODI1MjgxODMwMTkwOTI1MjYwNjA5MTgxNjAyMDAxNWI2MTJiMjE2MTMzNTU1NjViODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjEyYjE5NTc5MDUwNTA5MDUwNjAwMDYxMWRiYTg0ODQ2MTJhMTI1NjViNjAwMDYxMmI0YzYxMzNiODU2NWI2MDAxODA1NDYxMmI1OTkwNjEzZjgxNTY1YjgwNjAxZjAxNjAyMDgwOTEwNDAyNjAyMDAxNjA0MDUxOTA4MTAxNjA0MDUyODA5MjkxOTA4MTgxNTI2MDIwMDE4MjgwNTQ2MTJiODU5MDYxM2Y4MTU2NWI4MDE1NjEyYmQyNTc4MDYwMWYxMDYxMmJhNzU3NjEwMTAwODA4MzU0MDQwMjgzNTI5MTYwMjAwMTkxNjEyYmQyNTY1YjgyMDE5MTkwNjAwMDUyNjAyMDYwMDAyMDkwNWI4MTU0ODE1MjkwNjAwMTAxOTA2MDIwMDE4MDgzMTE2MTJiYjU1NzgyOTAwMzYwMWYxNjgyMDE5MTViNTA1MDUwOTE4MzUyNTA1MDYwMDI4MDU0NjEyYmU3OTA2MTNmODE1NjViODA2MDFmMDE2MDIwODA5MTA0MDI2MDIwMDE2MDQwNTE5MDgxMDE2MDQwNTI4MDkyOTE5MDgxODE1MjYwMjAwMTgyODA1NDYxMmMxMzkwNjEzZjgxNTY1YjgwMTU2MTJjNjA1NzgwNjAxZjEwNjEyYzM1NTc2MTAxMDA4MDgzNTQwNDAyODM1MjkxNjAyMDAxOTE2MTJjNjA1NjViODIwMTkxOTA2MDAwNTI2MDIwNjAwMDIwOTA1YjgxNTQ4MTUyOTA2MDAxMDE5MDYwMjAwMTgwODMxMTYxMmM0MzU3ODI5MDAzNjAxZjE2ODIwMTkxNWI1MDUwNTA1MDUwNjAyMDgyMDE1MjMwNjA0MDgyMDE1MjYwZTA4MTAxODM5MDUyNjAwMTYwYzA4MjAxNTI2MDA0NTQ2MDA1NTQ2MDAwOTE4MjkxNjEyNzBhOTE4NTkxNjExZmNhNTY1YjYwNDA4MDUxNjAwMzgwODI1MjYwODA4MjAxOTA5MjUyNjA2MDkxODE2MDIwMDE1YjYxMmNiNDYxMzM4MzU2NWI4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTJjYWM1NzkwNTA1MDkwNTA2MDAwNjEyY2Q2ODc4Nzg1NjEzMmM1NTY1YjkwNTA2MDAwNjEyY2VhODg4ODg4NjAwMDYwMDE4OTYxMzI0ZDU2NWI5MDUwNjAwMDYxMmNmZDg5ODk4OTg5NjAwMDhhNjEzMjRkNTY1YjkwNTA4Mjg0NjAwMDgxNTE4MTEwNjEyZDEzNTc2MTJkMTM2MTNjNzU1NjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDgxODQ2MDAxODE1MTgxMTA2MTJkMzI1NzYxMmQzMjYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwODA4NDYwMDI4MTUxODExMDYxMmQ1MTU3NjEyZDUxNjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA1MDUwNTA5NTk0NTA1MDUwNTA1MDU2NWI2MDQwODA1MTYwMDE4MDgyNTI4MTgzMDE5MDkyNTI2MDYwOTE4MTYwMjAwMTViNjEyZDg3NjEzMzgzNTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMmQ3ZjU3OTA1MDUwOTA1MDYwMDA2MTIyZjY4NTg1ODU2MTMyYzU1NjViNjAwMDYxMmRiMzYxMzNiODU2NWI2MDAxODA1NDYxMmRjMDkwNjEzZjgxNTY1YjgwNjAxZjAxNjAyMDgwOTEwNDAyNjAyMDAxNjA0MDUxOTA4MTAxNjA0MDUyODA5MjkxOTA4MTgxNTI2MDIwMDE4MjgwNTQ2MTJkZWM5MDYxM2Y4MTU2NWI4MDE1NjEyZTM5NTc4MDYwMWYxMDYxMmUwZTU3NjEwMTAwODA4MzU0MDQwMjgzNTI5MTYwMjAwMTkxNjEyZTM5NTY1YjgyMDE5MTkwNjAwMDUyNjAyMDYwMDAyMDkwNWI4MTU0ODE1MjkwNjAwMTAxOTA2MDIwMDE4MDgzMTE2MTJlMWM1NzgyOTAwMzYwMWYxNjgyMDE5MTViNTA1MDUwOTE4MzUyNTA1MDYwMDI4MDU0NjEyZTRlOTA2MTNmODE1NjViODA2MDFmMDE2MDIwODA5MTA0MDI2MDIwMDE2MDQwNTE=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwFpPSumV63OcH14FJPK8Emu1PjNYDFjSE+5tJO8YRhDZS6NdoqjDHEIypnt+ZwSxyGgwIp7TkrQYQ0+WkmQMiDwoJCOuz5K0GELAOEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjss+StBhC2DhICGAISAhgDGPbR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxj6CyKAIDkwODEwMTYwNDA1MjgwOTI5MTkwODE4MTUyNjAyMDAxODI4MDU0NjEyZTdhOTA2MTNmODE1NjViODAxNTYxMmVjNzU3ODA2MDFmMTA2MTJlOWM1NzYxMDEwMDgwODM1NDA0MDI4MzUyOTE2MDIwMDE5MTYxMmVjNzU2NWI4MjAxOTE5MDYwMDA1MjYwMjA2MDAwMjA5MDViODE1NDgxNTI5MDYwMDEwMTkwNjAyMDAxODA4MzExNjEyZWFhNTc4MjkwMDM2MDFmMTY4MjAxOTE1YjUwNTA1MDUwNTA2MDIwODIwMTUyMzA2MDQwODA4MzAxOTE5MDkxNTI2MGUwODIwMTg0OTA1MjYwMDQ1NDYwMDU1NDkxNTE2MDAwOTI4MzkyNjEwMTY3OTI2Mzc4MTJhMDRiNjBlMDFiOTI2MTJmMGQ5Mjg4OTI5MDkxOTA2MDI0MDE2MTNlYWU1NjViNjA0MDgwNTE2MDFmMTk4MTg0MDMwMTgxNTI5MTgxNTI2MDIwODIwMTgwNTE2MDAxNjAwMTYwZTAxYjAzMTY2MDAxNjAwMTYwZTAxYjAzMTk5MDk0MTY5MzkwOTMxNzkwOTI1MjkwNTE2MTJmNGI5MTkwNjEzZWQzNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NjVhZjE5MTUwNTAzZDgwNjAwMDgxMTQ2MTJmODg1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTJmOGQ1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA2MDAwODA4MzYxMmZhMzU3NjAxNTYwMDA2MTJmYjc1NjViODI4MDYwMjAwMTkwNTE4MTAxOTA2MTJmYjc5MTkwNjE0MjIyNTY1YjkxNTA2MDAzMGI5MTUwNjAxNjYwMDMwYjgyMTQ2MTA4NTU1NzYwMDA4MGZkNWI2MDAwNjBmZjgyMTY2MTJmZTA1NzUwNjAwMTkxOTA1MDU2NWI4MTYwZmYxNjYwMDExNDE1NjEyZmY0NTc1MDYwMDI5MTkwNTA1NjViODE2MGZmMTY2MDAyMTQxNTYxMzAwODU3NTA2MDA0OTE5MDUwNTY1YjgxNjBmZjE2NjAwMzE0MTU2MTMwMWM1NzUwNjAwODkxOTA1MDU2NWI4MTYwZmYxNjYwMDQxNDE1NjEzMDMwNTc1MDYwMTA5MTkwNTA1NjViODE2MGZmMTY2MDA1MTQxNTYxMzA0NDU3NTA2MDIwOTE5MDUwNTY1YjgxNjBmZjE2NjAwNjE0MTU2MTMwNTg1NzUwNjA0MDkxOTA1MDU2NWI1MDYwMDA5MTkwNTA1NjViNjEzMDY4NjEzMzEyNTY1YjgyNjBmZjE2NjAwMTE0MTU2MTMwN2Q1NzYwMDE4MTUyNjEzMGVkNTY1YjgyNjBmZjE2NjAwMjE0MTU2MTMwOWY1NzYwMDA1NDYwMDE2MDAxNjBhMDFiMDMxNjYwMjA4MjAxNTI2MTMwZWQ1NjViODI2MGZmMTY2MDAzMTQxNTYxMzBiNzU3NjA0MDgxMDE4MjkwNTI2MTMwZWQ1NjViODI2MGZmMTY2MDA0MTQxNTYxMzBjZjU3NjA2MDgxMDE4MjkwNTI2MTMwZWQ1NjViODI2MGZmMTY2MDA1MTQxNTYxMzBlZDU3NjAwMDU0NjAwMTYwMDE2MGEwMWIwMzE2NjA4MDgyMDE1MjViOTI5MTUwNTA1NjViNjEzMGZiNjEzMzU1NTY1YjYzZmZmZmZmZmY5MDkzMTY4MzUyNjAwMTYwMDE2MGEwMWIwMzkxODIxNjYwMjA4NDAxNTIxNjYwODA4MjAxNTI5MDU2NWI2MTMxMjY2MTMzNTU1NjViNjNmZmZmZmZmZjkwOTIxNjgyNTI2MDAxNjA0MDgzMDE1MjYwMDE2MDAxNjBhMDFiMDMxNjYwODA4MjAxNTI5MDU2NWI2MTMxNTA2MTMzNTU1NjViNjNmZmZmZmZmZjkwOTIxNjgyNTI2MDAxNjA2MDgzMDE1MjYwMDE2MDAxNjBhMDFiMDMxNjYwODA4MjAxNTI5MDU2NWI2MTMxN2E2MTMzODM1NjViNjNmZmZmZmZmZjk2ODcxNjgxNTI5NDg2MTY2MDIwODYwMTUyOTI4NTE2NjA0MDg1MDE1MjkzMTY2MDYwODMwMTUyOTExNTE1NjA4MDgyMDE1MjYwMDE2MDAxNjBhMDFiMDM5MDkxMTY2MGEwODIwMTUyOTA1NjViNjAwMDYwMDE2MGZmODQxNjFiOTA1MDYwMDE2MGZmODMxNjFiODExNzYxMDYyYjU2NWI2MTMxZDc2MTMzMTI1NjViODI2MGZmMTY2MDAyMTQxNTYxMzFmNzU3NjAwMTYwMDE2MGEwMWIwMzgyMTY2MDIwODIwMTUyNjEzMGVkNTY1YjgyNjBmZjE2NjAwNTE0MTU2MTMwZWQ1NzYwMDE2MDAxNjBhMDFiMDM4MjE2NjA4MDgyMDE1MjkyOTE1MDUwNTY1YjYxMzIyMDYxMzM4MzU2NWI2M2ZmZmZmZmZmOTQ4NTE2ODE1MjkyOTA5MzE2NjAyMDgzMDE1MjE1MTU2MDgwODIwMTUyNjAwMTYwMDE2MGEwMWIwMzkwOTExNjYwYTA4MjAxNTI5MDU2NWI2MTMyNTU2MTMzODM1NjViNjNmZmZmZmZmZjk2ODcxNjgxNTI5NDg2MTY2MDIwODYwMTUyOTI5MDk0MTY2MDQwODQwMTUyNjAwMTYwMDE2MGEwMWIwMzkwODExNjYwNjA4NDAxNTI5MjE1MTU2MDgwODMwMTUyOTA5MTE2NjBhMDgyMDE1MjkwNTY1YjYxMzI5YjYxMzM1NTU2NWI2M2ZmZmZmZmZmOTA5MzE2ODM1MjYwMDE2MDAxNjBhMDFiMDM5MTgyMTY2MDIwODQwMTUyNjAwMTYwNDA4NDAxNTIxNjYwODA4MjAxNTI5MDU2NWI2MTMyY2Q2MTMzODM1NjViNjNmZmZmZmZmZjkzODQxNjgxNTI5MTkwOTIxNjYwMjA4MjAxNTI2MDAxNjAwMTYwYTAxYjAzOTA5MTE2NjBhMDgyMDE1MjkwNTY1YjYwNDA1MTgwNjA0MDAxNjA0MDUyODA2MDAwODE1MjYwMjAwMTYxMzMwZDYxMzMxMjU2NWI5MDUyOTA1NjViNjA0MDUxODA2MGEwMDE2MDQwNTI4MDYwMDAxNTE1ODE1MjYwMjAwMTYwMDA2MDAxNjAwMTYwYTAxYjAzMTY4MTUyNjAyMDAxNjA2MDgxNTI2MDIwMDE2MDYwODE1MjYwMjAwMTYwMDA2MDAxNjAwMTYwYTAxYjAzMTY4MTUyNTA5MDU2NWI2MDQwODA1MTYwYTA4MTAxODI1MjYwMDA4MDgyNTI2MDIwODIwMTgxOTA1MjkxODEwMTgyOTA1MjYwNjA4MTAxODI5MDUyNjA4MDgxMDE5MTkwOTE1MjkwNTY1YjYwNDA4MDUxNjBjMDgxMDE4MjUyNjAwMDgwODI1MjYwMjA4MjAxODE5MDUyOTE4MTAxODI5MDUyNjA2MDgxMDE4MjkwNTI2MDgwODEwMTgyOTA1MjYwYTA4MTAxOTE5MDkxNTI5MDU2NWI2MDQwNTE4MDYxMDEyMDAxNjA0MDUyODA2MDYwODE1MjYwMjAwMTYwNjA4MTUyNjAyMDAxNjAwMDYwMDE2MDAxNjBhMDFiMDMxNjgxNTI2MDIwMDE2MDYwODE1MjYwMjAwMTYwMDAxNTE1ODE1MjYwMjAwMTYwMDA2M2ZmZmZmZmZmMTY4MTUyNjAyMDAxNjAwMDE1MTU4MTUyNjAyMDAxNjA2MDgxNTI2MDIwMDE2MTMzMGQ2MDQwODA1MTYwNjA4MTAxODI1MjYwMDA4MDgyNTI2MDIwODIwMTgxOTA1MjkxODEwMTkxOTA5MTUyOTA1NjViNjM0ZTQ4N2I3MTYwZTAxYjYwMDA1MjYwNDE2MDA0NTI2MDI0NjAwMGZkNWI2MDQwNTE2MDFmODIwMTYwMWYxOTE2ODEwMTYwMDE2MDAxNjA0MDFiMDM4MTExODI4MjEwMTcxNTYxMzQ3MDU3NjEzNDcwNjEzNDMyNTY1YjYwNDA1MjkxOTA1MDU2NWI2MDAwNjAwMTYwMDE2MDQwMWIwMzgyMTExNTYxMzQ5MTU3NjEzNDkxNjEzNDMyNTY1YjUwNjAxZjAxNjAxZjE5MTY2MDIwMDE5MDU2NWI2MDAwODI2MDFmODMwMTEyNjEzNGIwNTc2MDAwODBmZDViODEzNTYxMzRjMzYxMzRiZTgyNjEzNDc4NTY1YjYxMzQ0ODU2NWI4MTgxNTI4NDYwMjA4Mzg2MDEwMTExMTU2MTM0ZDg1NzYwMDA4MGZkNWI4MTYwMjA4NTAxNjAyMDgzMDEzNzYwMDA5MTgxMDE2MDIwMDE5MTkwOTE1MjkzOTI1MDUwNTA1NjViNjAwMTYwMDE2MGEwMWIwMzgxMTY4MTE0NjEzNTBhNTc2MDAwODBmZDViNTA1NjViODAzNTYzZmZmZmZmZmY4MTE2ODExNDYxMzUyMTU3NjAwMDgwZmQ1YjkxOTA1MDU2NWI2MDAwODA2MDAwODA2MDAwNjBhMDg2ODgwMzEyMTU2MTM1M2U1NzYwMDA4MGZkNWI4NTM1NjAwMTYwMDE2MDQwMWIwMzgxMTExNTYxMzU1NDU3NjAwMDgwZmQ1YjYxMzU2MDg4ODI4OTAxNjEzNDlmNTY1Yjk1NTA1MDYwMjA4NjAxMzU2MTM1NzE4MTYxMzRmNTU2NWI5MzUwNjA0MDg2MDEzNTYxMzU4MTgxNjEzNGY1NTY1YjkyNTA2MDYwODYwMTM1NjEzNTkxODE2MTM0ZjU1NjViOTE1MDYxMzU5ZjYwODA4NzAxNjEzNTBkNTY1YjkwNTA5Mjk1NTA5Mjk1OTA5MzUwNTY1YjYwMDA4MDYwNDA4Mzg1MDMxMjE1NjEzNWJlNTc2MDAwODBmZDViNjEzNWM3ODM2MTM1MGQ1NjViOTE1MDYwMjA4MzAxMzU2MTM1ZDc4MTYxMzRmNTU2NWI4MDkxNTA1MDkyNTA5MjkwNTA1NjViNjAwMDgwNjAwMDgwNjAwMDgwNjAwMDgwNjEwMTAwODk4YjAzMTIxNTYxMzVmZjU3NjAwMDgwZmQ1Yjg4MzU2MTM2MGE4MTYxMzRmNTU2NWI5NzUwNjAyMDg5MDEzNTYwMDE2MDAxNjA0MDFiMDM4MDgyMTExNTYxMzYyNjU3NjAwMDgwZmQ1YjYxMzYzMjhjODM4ZDAxNjEzNDlmNTY1Yjk4NTA2MDQwOGIwMTM1OTE1MDgwODIxMTE1NjEzNjQ4NTc2MDAwODBmZDViNTA2MTM2NTU4YjgyOGMwMTYxMzQ5ZjU2NWI5NjUwNTA2MDYwODkwMTM1NjE=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwQib+LLeJObr0L0feb9Qb87BhYuwkCF6ootVRA3beiymm0lGTmyxM68bZ7OG7KxsTGgwIqLTkrQYQs7iivQEiDwoJCOyz5K0GELYOEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjss+StBhC8DhICGAISAhgDGPbR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxj6CyKAIDM2NjY4MTYxMzRmNTU2NWI5NDUwNjA4MDg5MDEzNTYxMzY3NjgxNjEzNGY1NTY1YjkzNTA2MGEwODkwMTM1NjEzNjg2ODE2MTM0ZjU1NjViOTI1MDYxMzY5NDYwYzA4YTAxNjEzNTBkNTY1YjkxNTA2MGUwODkwMTM1NjEzNmE0ODE2MTM0ZjU1NjViODA5MTUwNTA5Mjk1OTg1MDkyOTU5ODkwOTM5NjUwNTY1YjYwMDA4MDYwNDA4Mzg1MDMxMjE1NjEzNmM4NTc2MDAwODBmZDViODIzNTYxMzZkMzgxNjEzNGY1NTY1YjkxNTA2MTM2ZTE2MDIwODQwMTYxMzUwZDU2NWI5MDUwOTI1MDkyOTA1MDU2NWI2MDAwODA2MDAwNjA2MDg0ODYwMzEyMTU2MTM2ZmY1NzYwMDA4MGZkNWI4MzM1NjEzNzBhODE2MTM0ZjU1NjViOTI1MDYwMjA4NDAxMzU2MTM3MWE4MTYxMzRmNTU2NWI5MTUwNjEzNzI4NjA0MDg1MDE2MTM1MGQ1NjViOTA1MDkyNTA5MjUwOTI1NjViNjAwMDgwNjAwMDYwNjA4NDg2MDMxMjE1NjEzNzQ2NTc2MDAwODBmZDViNjEzNzRmODQ2MTM1MGQ1NjViOTI1MDYwMjA4NDAxMzU2MTM3NWY4MTYxMzRmNTU2NWI5MTUwNjA0MDg0MDEzNTYxMzc2ZjgxNjEzNGY1NTY1YjgwOTE1MDUwOTI1MDkyNTA5MjU2NWI4MDM1NjBmZjgxMTY4MTE0NjEzNTIxNTc2MDAwODBmZDViODAxNTE1ODExNDYxMzUwYTU3NjAwMDgwZmQ1YjYwMDA4MDYwMDA4MDYwMDA4MDYwMDA4MDYxMDEwMDg5OGIwMzEyMTU2MTM3YjY1NzYwMDA4MGZkNWI2MTM3YmY4OTYxMzc3YTU2NWI5NzUwNjEzN2NkNjAyMDhhMDE2MTM3N2E1NjViOTY1MDYxMzdkYjYwNDA4YTAxNjEzNTBkNTY1Yjk1NTA2MTM3ZTk2MDYwOGEwMTYxMzUwZDU2NWI5NDUwNjEzN2Y3NjA4MDhhMDE2MTM1MGQ1NjViOTM1MDYwYTA4OTAxMzU2MTM4MDc4MTYxMzc4YjU2NWI5MjUwNjBjMDg5MDEzNTYxMzY5NDgxNjEzNGY1NTY1YjYwMDA4MDYwMDA2MDYwODQ4NjAzMTIxNTYxMzgyYzU3NjAwMDgwZmQ1YjgzMzU2MDAxNjAwMTYwNDAxYjAzODExMTE1NjEzODQyNTc2MDAwODBmZDViNjEzODRlODY4Mjg3MDE2MTM0OWY1NjViOTM1MDUwNjAyMDg0MDEzNTYxMzcxYTgxNjEzNGY1NTY1YjYwMDA4MDYwMDA4MDYwMDA4MDYwYzA4Nzg5MDMxMjE1NjEzODc4NTc2MDAwODBmZDViODYzNTYxMzg4MzgxNjEzNGY1NTY1Yjk1NTA2MDIwODcwMTM1NjEzODkzODE2MTM0ZjU1NjViOTQ1MDYwNDA4NzAxMzU2MTM4YTM4MTYxMzRmNTU2NWI5MzUwNjA2MDg3MDEzNTYxMzhiMzgxNjEzNGY1NTY1YjkyNTA2MTM4YzE2MDgwODgwMTYxMzUwZDU2NWI5MTUwNjBhMDg3MDEzNTYwMDE2MDAxNjA0MDFiMDM4MTExMTU2MTM4ZGM1NzYwMDA4MGZkNWI2MTM4ZTg4OTgyOGEwMTYxMzQ5ZjU2NWI5MTUwNTA5Mjk1NTA5Mjk1NTA5Mjk1NTY1YjYwMDA4MDYwMDA4MDYwODA4NTg3MDMxMjE1NjEzOTBiNTc2MDAwODBmZDViNjEzOTE0ODU2MTM3N2E1NjViOTM1MDYxMzkyMjYwMjA4NjAxNjEzNzdhNTY1YjkyNTA2MTM5MzA2MDQwODYwMTYxMzc3YTU2NWI5MTUwNjA2MDg1MDEzNTYwMDE2MDAxNjA0MDFiMDM4MTExMTU2MTM5NGI1NzYwMDA4MGZkNWI2MTM5NTc4NzgyODgwMTYxMzQ5ZjU2NWI5MTUwNTA5Mjk1OTE5NDUwOTI1MDU2NWI2MDAwODA2MDAwODA2MDgwODU4NzAzMTIxNTYxMzk3OTU3NjAwMDgwZmQ1Yjg0MzU2MTM5ODQ4MTYxMzRmNTU2NWI5MzUwNjAyMDg1MDEzNTYwMDE2MDAxNjA0MDFiMDM4MTExMTU2MTM5OWY1NzYwMDA4MGZkNWI2MTM5YWI4NzgyODgwMTYxMzQ5ZjU2NWI5MzUwNTA2MDQwODUwMTM1NjEzOWJjODE2MTM0ZjU1NjViOTE1MDYxMzljYTYwNjA4NjAxNjEzNTBkNTY1YjkwNTA5Mjk1OTE5NDUwOTI1MDU2NWI2MDAwODA2MDAwODA2MDgwODU4NzAzMTIxNTYxMzllYjU3NjAwMDgwZmQ1YjYxMzlmNDg1NjEzNTBkNTY1YjkzNTA2MTNhMDI2MDIwODYwMTYxMzUwZDU2NWI5MjUwNjA0MDg1MDEzNTYxM2ExMjgxNjEzNzhiNTY1YjkxNTA2MDYwODUwMTM1NjEzYTIyODE2MTM0ZjU1NjViOTM5NjkyOTU1MDkwOTM1MDUwNTY1YjYwMDA4MDYwMDA2MDYwODQ4NjAzMTIxNTYxM2E0MjU3NjAwMDgwZmQ1YjgzMzU2MTNhNGQ4MTYxMzRmNTU2NWI5MjUwNjEzNzVmNjAyMDg1MDE2MTM1MGQ1NjViNjAwMDgwNjAwMDgwNjA4MDg1ODcwMzEyMTU2MTNhNzE1NzYwMDA4MGZkNWI4NDM1NjAwMTYwMDE2MDQwMWIwMzgxMTExNTYxM2E4NzU3NjAwMDgwZmQ1YjYxM2E5Mzg3ODI4ODAxNjEzNDlmNTY1Yjk0NTA1MDYwMjA4NTAxMzU2MTNhYTQ4MTYxMzRmNTU2NWI5MjUwNjA0MDg1MDEzNTYxMzliYzgxNjEzNGY1NTY1YjYwMDA4MDYwMDA2MDYwODQ4NjAzMTIxNTYxM2FjOTU3NjAwMDgwZmQ1YjYxM2FkMjg0NjEzNzdhNTY1YjkyNTA2MTNhZTA2MDIwODUwMTYxMzc3YTU2NWI5MTUwNjA0MDg0MDEzNTYwMDE2MDAxNjA0MDFiMDM4MTExMTU2MTNhZmI1NzYwMDA4MGZkNWI2MTNiMDc4NjgyODcwMTYxMzQ5ZjU2NWI5MTUwNTA5MjUwOTI1MDkyNTY1YjYwMDA4MDYwNDA4Mzg1MDMxMjE1NjEzYjI0NTc2MDAwODBmZDViNjEzYjJkODM2MTM3N2E1NjViOTE1MDYwMjA4MzAxMzU2MDAxNjAwMTYwNDAxYjAzODExMTE1NjEzYjQ4NTc2MDAwODBmZDViNjEzYjU0ODU4Mjg2MDE2MTM0OWY1NjViOTE1MDUwOTI1MDkyOTA1MDU2NWI2MDAwODA2MDAwODA2MDAwODA2MGMwODc4OTAzMTIxNTYxM2I3NzU3NjAwMDgwZmQ1YjYxM2I4MDg3NjEzNTBkNTY1Yjk1NTA2MTNiOGU2MDIwODgwMTYxMzUwZDU2NWI5NDUwNjEzYjljNjA0MDg4MDE2MTM1MGQ1NjViOTM1MDYwNjA4NzAxMzU2MTNiYWM4MTYxMzc4YjU2NWI5MjUwNjA4MDg3MDEzNTYxM2JiYzgxNjEzNGY1NTY1YjkxNTA2MGEwODcwMTM1NjEzYmNjODE2MTM0ZjU1NjViODA5MTUwNTA5Mjk1NTA5Mjk1NTA5Mjk1NTY1YjYwMDA4MDYwMDA4MDYwODA4NTg3MDMxMjE1NjEzYmYwNTc2MDAwODBmZDViNjEzYmY5ODU2MTM1MGQ1NjViOTM1MDYwMjA4NTAxMzU2MTNjMDk4MTYxMzRmNTU2NWI5MjUwNjA0MDg1MDEzNTYxM2ExMjgxNjEzNGY1NTY1YjYwMDA4MDYwMDA4MDYwMDA4MDYwYzA4Nzg5MDMxMjE1NjEzYzMyNTc2MDAwODBmZDViNjEzYzNiODc2MTM1MGQ1NjViOTU1MDYxM2M0OTYwMjA4ODAxNjEzNTBkNTY1Yjk0NTA2MTNjNTc2MDQwODgwMTYxMzUwZDU2NWI5MzUwNjEzYzY1NjA2MDg4MDE2MTM1MGQ1NjViOTI1MDYwODA4NzAxMzU2MTNiYmM4MTYxMzc4YjU2NWI2MzRlNDg3YjcxNjBlMDFiNjAwMDUyNjAzMjYwMDQ1MjYwMjQ2MDAwZmQ1YjYwMDA1YjgzODExMDE1NjEzY2E2NTc4MTgxMDE1MTgzODIwMTUyNjAyMDAxNjEzYzhlNTY1YjgzODExMTE1NjEzY2I1NTc2MDAwODQ4NDAxNTI1YjUwNTA1MDUwNTY1YjYwMDA4MTUxODA4NDUyNjEzY2QzODE2MDIwODYwMTYwMjA4NjAxNjEzYzhiNTY1YjYwMWYwMTYwMWYxOTE2OTI5MDkyMDE2MDIwMDE5MjkxNTA1MDU2NWI2MDAwODE1MTgwODQ1MjYwMjA4MDg1MDE4MDgxOTY1MDgzNjAwNTFiODEwMTkxNTA4Mjg2MDE2MDAwNWI4NTgxMTAxNTYxM2Q5ZTU3ODI4NDAzODk1MjgxNTE2MDQwODE1MTg2NTI4NjgyMDE1MTkxNTA4MDg3ODcwMTUyODE1MTE1MTU4MTg3MDE1Mjg2ODIwMTUxNjA2MDYwMDE2MDAxNjBhMDFiMDM4MDgzMTY4MjhhMDE1MjgzODUwMTUxOTM1MDYwYTA5MjUwNjA4MDgzODE4YjAxNTI2MTNkNjA2MGUwOGIwMTg2NjEzY2JiNTY1YjkyODYwMTUxOGE4NDAzNjAzZjE5MDE4NThjMDE1MjkyOTQ1MDYxM2Q3Yzg1ODQ2MTNjYmI1NjViOTUwMTUxMTY2MGMwOTg5MDk4MDE5NzkwOTc1MjUwNTA5ODg1MDE5ODkzNTA5MDg0MDE5MDYwMDEwMTYxM2QwNTU2NWI1MDkxOTc5NjUwNTA1MDUwNTA1MDUwNTY1YjYwMDA2MTAxNjA4MjUxODE4NTUyNjEzZGMxODI4NjAxODI2MTNjYmI1NjViOTE1MDUwNjAyMDgzMDE1MTg0ODIwMzYwMjA4NjAxNTI2MTNkZGI4MjgyNjEzY2JiNTY1YjkxNTA1MDYwNDA4MzAxNTE2MTNkZjg2MDQwODYwMTgyNjAwMTYwMDE2MGEwMWIwMzE2OTA1MjU2NWI1MDYwNjA4MzAxNTE4NDgyMDM2MDYwODYwMTUyNjEzZTEwODI4MjYxM2NiYjU2NWI5MTUwNTA2MDgwODMwMTUxNjEzZTI2NjA4MDg2MDE4MjE1MTU5MDUyNTY1YjUwNjBhMDgzMDE1MTYxM2UzZTYwYTA4NjAxODI2M2ZmZmZmZmZmMTY5MDUyNTY1YjUwNjBjMDgzMDE1MTYxM2U1MjYwYzA4NjAxODIxNTE1OTA1MjU2NWI1MDYwZTA4MzAxNTE4NDgyMDM2MGUwODY=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwoO6e9Mv3h2ZmQbX8vHHil2WGXPF0J6GLLscrGf9p402Ow/Cy32MQGo2S6DInI+H6GgwIqLTkrQYQu+mxowMiDwoJCOyz5K0GELwOEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjts+StBhDCDhICGAISAhgDGLXG8zkiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBpBcSAxj6CyKcFzAxNTI2MTNlNmE4MjgyNjEzY2U3NTY1YjYxMDEwMDg1ODEwMTUxODA1MTYzZmZmZmZmZmY5MDgxMTY4OTg0MDE1MjYwMjA4MjAxNTE2MDAxNjAwMTYwYTAxYjAzMTY2MTAxMjA4YTAxNTI2MDQwODIwMTUxMTY2MTAxNDA4OTAxNTI5MTkzNTA5MTUwNTA5MDk0OTM1MDUwNTA1MDU2NWI2MDYwODE1MjYwMDA2MTNlYzE2MDYwODMwMTg2NjEzZGFiNTY1YjYwMjA4MzAxOTQ5MDk0NTI1MDYwNDAwMTUyOTE5MDUwNTY1YjYwMDA4MjUxNjEzZWU1ODE4NDYwMjA4NzAxNjEzYzhiNTY1YjkxOTA5MTAxOTI5MTUwNTA1NjViNjAwMDgwNjA0MDgzODUwMzEyMTU2MTNmMDI1NzYwMDA4MGZkNWI4MjUxOTE1MDYwMjA4MzAxNTE2MTM1ZDc4MTYxMzRmNTU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTNmMjY1NzYwMDA4MGZkNWI4MTUxNjAwMTYwMDE2MDQwMWIwMzgxMTExNTYxM2YzYzU3NjAwMDgwZmQ1YjgyMDE2MDFmODEwMTg0MTM2MTNmNGQ1NzYwMDA4MGZkNWI4MDUxNjEzZjViNjEzNGJlODI2MTM0Nzg1NjViODE4MTUyODU2MDIwODM4NTAxMDExMTE1NjEzZjcwNTc2MDAwODBmZDViNjEwZmMyODI2MDIwODMwMTYwMjA4NjAxNjEzYzhiNTY1YjYwMDE4MTgxMWM5MDgyMTY4MDYxM2Y5NTU3NjA3ZjgyMTY5MTUwNWI2MDIwODIxMDgxMTQxNTYxM2ZiNjU3NjM0ZTQ4N2I3MTYwZTAxYjYwMDA1MjYwMjI2MDA0NTI2MDI0NjAwMGZkNWI1MDkxOTA1MDU2NWI2MDAwODA4MzU0ODE2MDAxODI4MTFjOTE1MDgwODMxNjgwNjEzZmQ4NTc2MDdmODMxNjkyNTA1YjYwMjA4MDg0MTA4MjE0MTU2MTNmZjg1NzYzNGU0ODdiNzE2MGUwMWI4NjUyNjAyMjYwMDQ1MjYwMjQ4NmZkNWI4MTgwMTU2MTQwMGM1NzYwMDE4MTE0NjE0MDFkNTc2MTQwNGE1NjViNjBmZjE5ODYxNjg5NTI4NDg5MDE5NjUwNjE0MDRhNTY1YjYwMDA4YTgxNTI2MDIwOTAyMDYwMDA1Yjg2ODExMDE1NjE0MDQyNTc4MTU0OGI4MjAxNTI5MDg1MDE5MDgzMDE2MTQwMjk1NjViNTA1MDg0ODkwMTk2NTA1YjUwOTQ5ODk3NTA1MDUwNTA1MDUwNTA1MDU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTQwNmE1NzYwMDA4MGZkNWI1MDUxOTE5MDUwNTY1YjYwMDA2MDIwODI4NDAzMTIxNTYxNDA4MzU3NjAwMDgwZmQ1YjgxNTE2MTA2MmI4MTYxMzc4YjU2NWI2MzRlNDg3YjcxNjBlMDFiNjAwMDUyNjAxMTYwMDQ1MjYwMjQ2MDAwZmQ1YjYwMDA2M2ZmZmZmZmZmODA4MzE2ODE4NTE2ODE4MzA0ODExMTgyMTUxNTE2MTU2MTQwYzc1NzYxNDBjNzYxNDA4ZTU2NWIwMjk0OTM1MDUwNTA1MDU2NWI2MDAwODE1MTgwODQ1MjYwMjA4MDg1MDE5NDUwODA4NDAxNjAwMDViODM4MTEwMTU2MTQxNDA1NzgxNTE4MDUxNjNmZmZmZmZmZjE2ODg1MjgzODEwMTUxNjAwMTYwMDE2MGEwMWIwMzkwODExNjg1OGEwMTUyNjA0MDgwODMwMTUxMTUxNTkwOGEwMTUyNjA2MDgwODMwMTUxMTUxNTkwOGEwMTUyNjA4MDkxODIwMTUxMTY5MDg4MDE1MjYwYTA5MDk2MDE5NTkwODIwMTkwNjAwMTAxNjE0MGU0NTY1YjUwOTQ5NTk0NTA1MDUwNTA1MDU2NWI2MDAwNjBhMDgwODM1MjYxNDE1ZTgxODQwMTg5NjEzZGFiNTY1YjYwMjA4ODgxODYwMTUyNjA0MDg4ODE4NzAxNTI2MDYwODY4NDAzODE4ODAxNTI2MTQxN2Y4NDhhNjE0MGQwNTY1YjkzNTA2MDgwODc4NTAzODE4OTAxNTI4NDg5NTE4MDg3NTI4NTg3MDE5MTUwODU4YjAxOTY1MDYwMDA1YjgxODExMDE1NjE0MWZjNTc4NzUxODA1MTYzZmZmZmZmZmY5MDgxMTY4NTUyODg4MjAxNTE4MTE2ODk4NjAxNTI4NzgyMDE1MTgxMTY4ODg2MDE1Mjg2ODIwMTUxMTY4Njg1MDE1Mjg0ODEwMTUxMTUxNTg1ODUwMTUyODkwMTUxNjAwMTYwMDE2MGEwMWIwMzE2ODk4NDAxNTI5Njg2MDE5NjYwYzA5MDkyMDE5MTYwMDEwMTYxNDE5ZDU2NWI1MDkwOWU5ZDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1NjViODA1MTYwMDM4MTkwMGI4MTE0NjEzNTIxNTc2MDAwODBmZDViNjAwMDgwNjA0MDgzODUwMzEyMTU2MTQyMzU1NzYwMDA4MGZkNWI2MTQyM2U4MzYxNDIxMDU2NWI5MTUwNjAyMDgzMDE1MTYxMzVkNzgxNjEzNGY1NTY1YjYwMDA2MDIwODI4NDAzMTIxNTYxNDI2MDU3NjAwMDgwZmQ1YjYxMDYyYjgyNjE0MjEwNTY1YjYwMDA2MDYwODIwMTYwMDE2MDAxNjBhMDFiMDM4NjE2ODM1MjYwMjA2MDAxNjAwMTYwNDAxYjAzODYxNjgxODUwMTUyNjA2MDYwNDA4NTAxNTI4MTg1NTE4MDg0NTI2MDgwODYwMTkxNTA4Mjg3MDE5MzUwNjAwMDViODE4MTEwMTU2MTQyYzU1Nzg0NTE2MDA3MGI4MzUyOTM4MzAxOTM5MTgzMDE5MTYwMDEwMTYxNDJhNjU2NWI1MDkwOTg5NzUwNTA1MDUwNTA1MDUwNTA1NjViNjAwMDgwNjA0MDgzODUwMzEyMTU2MTQyZTY1NzYwMDA4MGZkNWI2MTQyZWY4MzYxNDIxMDU2NWI5MTUwNjAyMDgzMDE1MTYwMDE2MDAxNjA0MDFiMDM4MTE2ODExNDYxMzVkNzU3NjAwMDgwZmQ1YjYwMDA2MGZmODIxNjYwZmY4MTE0MTU2MTQzMjI1NzYxNDMyMjYxNDA4ZTU2NWI2MDAxMDE5MjkxNTA1MDU2NWI2MDAwNjA2MDgwODM1MjYxNDMzZTgxODQwMTg3NjEzZGFiNTY1YjYwMjA4NDgyMDM4MTg2MDE1MjYxNDM1MTgyODg2MTQwZDA1NjViOTE1MDYwNDA4NTgzMDM4MTg3MDE1MjgyODc1MTgwODU1MjgzODUwMTkxNTA4Mzg5MDE5NDUwNjAwMDViODE4MTEwMTU2MTQzZDQ1Nzg1NTE4MDUxNjNmZmZmZmZmZjkwODExNjg1NTI4NjgyMDE1MTgxMTY4Nzg2MDE1Mjg1ODIwMTUxMTY4NTg1MDE1Mjg3ODEwMTUxNjAwMTYwMDE2MGEwMWIwMzkwODExNjg5ODYwMTUyNjA4MDgwODMwMTUxMTUxNTkwODYwMTUyNjBhMDkxODIwMTUxMTY5MDg0MDE1Mjk0ODQwMTk0NjBjMDkwOTIwMTkxNjAwMTAxNjE0MzZmNTY1YjUwOTA5YTk5NTA1MDUwNTA1MDUwNTA1MDUwNTA1NjViNjAyMDgxNTI2MDAwNjEwNjJiNjAyMDgzMDE4NDYxM2RhYjU2ZmVhMjY0Njk3MDY2NzM1ODIyMTIyMDE4MDgzNjFlNDFlNzhiYzE1YzFiZDA1ZDBmZjc3M2YyZDQ4YzU4M2E5ZDA2OGJmY2VkZmRmNmY0ZjRkODRhNTE2NDczNmY2YzYzNDMwMDA4MGIwMDMz","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwhLp185rv/WSoRdLVSNwNNudDhHMINFlKeLoIlg1zo7MLGXwyaAiH5ltVW1b5srueGgwIqbTkrQYQq6D/xgEiDwoJCO2z5K0GEMIOEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjts+StBhDEDhICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGPoLGiISIF63E6pfwXyjkXBdYIhhPwWiMrjHnMGtl281Rwp4M2vGIMCEPUIFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"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"},{"b64Body":"Cg8KCQjus+StBhDGDhICGAISAhgDGOKq+dYCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAS8KDkVYSVNUSU5HX1RPS0VOEghQSlFRQVJQVSCQTioCGAJqDAiqgr+xBhCw1ci7AQ==","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGPwLEjDHgKwG7WypiLs+RjB4CH76Wkc5qQXm35nZi52HufmrwgjU7vtJfA5Pr9cwnd02F7oaDAiqtOStBhCjloTQASIPCgkI7rPkrQYQxg4SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWg8KAxj8CxIICgIYAhCgnAFyCQoDGPwLEgIYAg=="},{"b64Body":"ChAKCQjus+StBhDIDhIDGPgLEgIYAxjAv+0hIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46lgIKAxj7CxDAhD0YgKjWuQcihAIvPgwSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF+QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHoSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACB07XcvdQ4dyZ5hQzVIp8+CKQrHP+Ywt2KBz4r/lqXB3g==","b64Record":"CiUIISIDGPsLKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAEnW+Crhqh2ts/TUNFNcmmw7qEXQOOupSOmEChCNpUE6tPtlfbudKro0NL3buoGBsaDAiqtOStBhDL5r/RAyIQCgkI7rPkrQYQyA4SAxj4Cyogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wgOaKGzoIGgIweCiA6jBSFwoJCgIYYhCAzJU2CgoKAxj4CxD/y5U2"},{"b64Body":"ChIKCQjus+StBhDIDhIDGPgLIAHqAXwKCXRva2VuTmFtZRILdG9rZW5TeW1ib2wqAxj5CzIFCgMY+wtSIhIgdO13L3UOHcmeYUM1SKfPgikKxz/mMLdigc+K/5alwd5yAxj4C3oFCICk6AOCAQRtZW1viAEBkAEBmAGQA6oBFBoDGPkLIg0KBAgEEAUSBRIDGPwL","b64Record":"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"}]},"autoAssociationSlotsAppearsInInfo":{"placeholderNum":1534,"encodedItems":[{"b64Body":"Cg8KCQj0s+StBhDzDhICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAiwgr+xBhCohdaqAhptCiISILifVssN0GgSYEjJNzjcaD9FMUnpwdu8MKHpNyIJdC5ZCiM6IQJefeKdO3RzLbHJKSA1eAEYNJ2GLsZ6BMdh5/UeazEMRQoiEiAfMJ1ACBVF8uN7AVLHlSzJmsmShlc5R6EgSnmtKLmGFSIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGP8LKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBPDaCer2Zfbj/QCpW3oQw8GDXt4jqOYLqzn69sm0k7KRzaSzT4Bi1gnojksteboAYaDAiwtOStBhDbr87CAiIPCgkI9LPkrQYQ8w4SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQj1s+StBhD3DhICGAISAhgDGN2ZoTMiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBzgwKAxj/CyLGDDYwODA2MDQwNTI2MDJhNjAwMDgwNjEwMTAwMGE4MTU0ODE2M2ZmZmZmZmZmMDIxOTE2OTA4MzYzZmZmZmZmZmYxNjAyMTc5MDU1NTA2MTAyZWY4MDYxMDAzNDYwMDAzOTYwMDBmM2ZlNjA4MDYwNDA1MjYwMDQzNjEwNjEwMDM0NTc2MDAwMzU2MGUwMWM4MDYzMmI2YWRmNDMxNDYxMDAzNjU3ODA2MzNkOTllODBkMTQ2MTAxMDE1NzgwNjM0YmZkYWI3MDE0NjEwMTQyNTc1YjAwNWI2MTAwZmY2MDA0ODAzNjAzNjA0MDgxMTAxNTYxMDA0YzU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTYzZmZmZmZmZmYxNjkwNjAyMDAxOTA5MjkxOTA4MDM1OTA2MDIwMDE5MDY0MDEwMDAwMDAwMDgxMTExNTYxMDA3OTU3NjAwMDgwZmQ1YjgyMDE4MzYwMjA4MjAxMTExNTYxMDA4YjU3NjAwMDgwZmQ1YjgwMzU5MDYwMjAwMTkxODQ2MDAxODMwMjg0MDExMTY0MDEwMDAwMDAwMDgzMTExNzE1NjEwMGFkNTc2MDAwODBmZDViOTE5MDgwODA2MDFmMDE2MDIwODA5MTA0MDI2MDIwMDE2MDQwNTE5MDgxMDE2MDQwNTI4MDkzOTI5MTkwODE4MTUyNjAyMDAxODM4MzgwODI4NDM3NjAwMDgxODQwMTUyNjAxZjE5NjAxZjgyMDExNjkwNTA4MDgzMDE5MjUwNTA1MDUwNTA1MDUwOTE5MjkxOTI5MDUwNTA1MDYxMDE3OTU2NWIwMDViMzQ4MDE1NjEwMTBkNTc2MDAwODBmZDViNTA2MTAxNDA2MDA0ODAzNjAzNjAyMDgxMTAxNTYxMDEyNDU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTYzZmZmZmZmZmYxNjkwNjAyMDAxOTA5MjkxOTA1MDUwNTA2MTAyN2U1NjViMDA1YjM0ODAxNTYxMDE0ZTU3NjAwMDgwZmQ1YjUwNjEwMTU3NjEwMmExNTY1YjYwNDA1MTgwODI2M2ZmZmZmZmZmMTY2M2ZmZmZmZmZmMTY4MTUyNjAyMDAxOTE1MDUwNjA0MDUxODA5MTAzOTBmMzViNjAwMDgyNjNmZmZmZmZmZjE2NmVmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjkwNTA4MDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjEwOGZjNjAwMTkwODExNTAyOTA2MDQwNTE2MDAwNjA0MDUxODA4MzAzODE4NTg4ODhmMTkzNTA1MDUwNTAxNTgwMTU2MTAxZGM1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA3ZjkzMGY2MjhhMDk1MDE3M2M1NWI4ZjdkMzE2MzZhYTgyZTQ4MWYwOWQ3MDE5MWFkYzM4YjhjOGNkMTg2YTBhZDc4MjYwNDA1MTgwODA2MDIwMDE4MjgxMDM4MjUyODM4MTgxNTE4MTUyNjAyMDAxOTE1MDgwNTE5MDYwMjAwMTkwODA4MzgzNjAwMDViODM4MTEwMTU2MTAyM2Y1NzgwODIwMTUxODE4NDAxNTI2MDIwODEwMTkwNTA2MTAyMjQ1NjViNTA1MDUwNTA5MDUwOTA4MTAxOTA2MDFmMTY4MDE1NjEwMjZjNTc4MDgyMDM4MDUxNjAwMTgzNjAyMDAzNjEwMTAwMGEwMzE5MTY4MTUyNjAyMDAxOTE1MDViNTA5MjUwNTA1MDYwNDA1MTgwOTEwMzkwYTE1MDUwNTA1NjViODA2MDAwODA2MTAxMDAwYTgxNTQ4MTYzZmZmZmZmZmYwMjE5MTY5MDgzNjNmZmZmZmZmZjE2MDIxNzkwNTU1MDUwNTY1YjYwMDA4MDYwMDA5MDU0OTA2MTAxMDAwYTkwMDQ2M2ZmZmZmZmZmMTY5MDUwOTA1NmZlYTI2NTYyN2E3YTcyMzE1ODIwMGNiM2Y0NTNmODk2NWIyOGE5NjI2NjBiODAzODAzMWUzMDNmNGQ4MWZkMThmMTliYWMxZGI2MDkxMDBkZDE0ODY0NzM2ZjZjNjM0MzAwMDUxMTAwMzI=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIww46QyLNjVxYCf37KWvPtjz73fOOqFZcFAZ1eQmMbNuVbv+AdMvuS6HB/SDjrvFgyGgsIsbTkrQYQk6DVSiIPCgkI9bPkrQYQ9w4SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQj1s+StBhD5DhICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRwoDGP8LGiISILvO94tEQFn/aTe9aXAHZP/bD91p6YuFhgVuwdpuG4WyIJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcnBk","b64Record":"CiUIFiIDGIAMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCchGA7WvTUf8AWTGVFs5M+yJyaCag4oHvdxdDwmlW5biuq5NpD/E2zRpj+fbtt+VsaDAixtOStBhCDg4PMAiIPCgkI9bPkrQYQ+Q4SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQqQICgMYgAwS7wVggGBAUmAENhBhADRXYAA1YOAcgGMrat9DFGEANleAYz2Z6A0UYQEBV4BjS/2rcBRhAUJXWwBbYQD/YASANgNgQIEQFWEATFdgAID9W4EBkICANWP/////FpBgIAGQkpGQgDWQYCABkGQBAAAAAIERFWEAeVdgAID9W4IBg2AgggERFWEAi1dgAID9W4A1kGAgAZGEYAGDAoQBEWQBAAAAAIMRFxVhAK1XYACA/VuRkICAYB8BYCCAkQQCYCABYEBRkIEBYEBSgJOSkZCBgVJgIAGDg4CChDdgAIGEAVJgHxlgH4IBFpBQgIMBklBQUFBQUFCRkpGSkFBQUGEBeVZbAFs0gBVhAQ1XYACA/VtQYQFAYASANgNgIIEQFWEBJFdgAID9W4EBkICANWP/////FpBgIAGQkpGQUFBQYQJ+VlsAWzSAFWEBTldgAID9W1BhAVdhAqFWW2BAUYCCY/////8WY/////8WgVJgIAGRUFBgQFGAkQOQ81tgAIJj/////xZu////////////////////FpBQgHP//////////////////////////xZhCPxgAZCBFQKQYEBRYABgQFGAgwOBhYiI8ZNQUFBQFYAVYQHcVz1gAIA+PWAA/VtQf5MPYooJUBc8Vbj30xY2qoLkgfCdcBka3Di4yM0YagrXgmBAUYCAYCABgoEDglKDgYFRgVJgIAGRUIBRkGAgAZCAg4NgAFuDgRAVYQI/V4CCAVGBhAFSYCCBAZBQYQIkVltQUFBQkFCQgQGQYB8WgBVhAmxXgIIDgFFgAYNgIANhAQAKAxkWgVJgIAGRUFtQklBQUGBAUYCRA5ChUFBQVluAYACAYQEACoFUgWP/////AhkWkINj/////xYCF5BVUFBWW2AAgGAAkFSQYQEACpAEY/////8WkFCQVv6iZWJ6enIxWCAMs/RT+JZbKKliZguAOAMeMD9Ngf0Y8ZusHbYJEA3RSGRzb2xjQwAFEQAyIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACjAmgw6AxiADEoWChQAAAAAAAAAAAAAAAAAAAAAAAAGAHIHCgMYgAwQAVIWCgkKAhgCEP+yxQ0KCQoCGGIQgLPFDQ=="}]},"fungibleTokenCreateWithFeesHappyPath":{"placeholderNum":1541,"encodedItems":[{"b64Body":"Cg8KCQiFtOStBhCDEBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIDiSeksqL4zLV7Nm7NwqffD8IwRG1mC880TDgbG9MDcWEICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGIYMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDo1XrqoaHygS+llm6c0SQ2+6c1tNLWyZry5IdPiPaUO2EVT1GS2eafH+E5+7SBRwoaCwjBtOStBhC7hb4XIg8KCQiFtOStBhCDEBICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUhkKCgoCGAIQ/6fWuQcKCwoDGIYMEICo1rkH"},{"b64Body":"Cg8KCQiFtOStBhCFEBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiM6IQIK9EOKDtJK9NgdpP51z/4QPi8dS+DxH31T4pVisj+yyxCAgOmDsd4WSgUIgM7aAw==","b64Record":"CiUIFhIDGIcMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDIxxnpsWbX7PYiVUGnalrG7BC9YpnaYqI8XwpwbBNQUasFWMW3IFRnmNOXfoW/1V0aDAjBtOStBhD7m+OXAiIPCgkIhbTkrQYQhRASAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIdCgwKAhgCEP//0YfivC0KDQoDGIcMEICA0ofivC0="},{"b64Body":"Cg8KCQiGtOStBhCHEBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIFD1rvObns7/07R/sG2x4wEiaiAkyWRle1NaZpKTibeKEIDIr6AlSgUIgM7aAw==","b64Record":"CiUIFhIDGIgMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCpMEYznJcM2kq1bnMbTdqy9mqmsfHfJMGIXvQ0NgPFG54cARwjBIhjR8cwXk67tPYaCwjCtOStBhCDw90fIg8KCQiGtOStBhCHEBICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUhkKCgoCGAIQ/4/fwEoKCwoDGIgMEICQ38BK"},{"b64Body":"Cg8KCQiGtOStBhCJEBICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAjCgr+xBhCQ+L+KAhptCiISILieIMSc5OktbRMsTg9csJ4opWPpbbGBhc67oU/92b92CiM6IQOCzU0SaEM9zo0XAYav4i3iiNIRz3YQOPcFBnT3GU1TbQoiEiDJ2/fRcTE9k2+4Pd5Hzzd0FZBlH69fIhJ9uKI15k+/DCIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGIkMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAw8xO9ktXMRbyCZh30cPAgimsmf15am4F1r2+FExalZdRiFsq/99MVE/lRS1GeMmUaDAjCtOStBhDD6/ahAiIPCgkIhrTkrQYQiRASAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiHtOStBhCNEBICGAISAhgDGIudjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxiJDCKAIDYwYzA2MDQwNTI2MDA5NjA4MDgxOTA1MjY4NzQ2ZjZiNjU2ZTRlNjE2ZDY1NjBiODFiNjBhMDkwODE1MjYyMDAwMDJjOTE2MDAxOTE5MDYyMDAwMGFlNTY1YjUwNjA0MDgwNTE4MDgyMDE5MDkxNTI2MDBiODA4MjUyNmExZDFiZGFkOTViOTRkZTViNTg5YmRiNjBhYTFiNjAyMDkwOTIwMTkxODI1MjYyMDAwMDYxOTE2MDAyOTE2MjAwMDBhZTU2NWI1MDYwNDA4MDUxODA4MjAxOTA5MTUyNjAwNDgwODI1MjYzNmQ2NTZkNmY2MGUwMWI2MDIwOTA5MjAxOTE4MjUyNjIwMDAwOGY5MTYwMDM5MTYyMDAwMGFlNTY1YjUwNjBjODYwMDQ1NTYwMDg2MDA1NTUzNDgwMTU2MjAwMDBhNzU3NjAwMDgwZmQ1YjUwNjIwMDAxOTE1NjViODI4MDU0NjIwMDAwYmM5MDYyMDAwMTU0NTY1YjkwNjAwMDUyNjAyMDYwMDAyMDkwNjAxZjAxNjAyMDkwMDQ4MTAxOTI4MjYyMDAwMGUwNTc2MDAwODU1NTYyMDAwMTJiNTY1YjgyNjAxZjEwNjIwMDAwZmI1NzgwNTE2MGZmMTkxNjgzODAwMTE3ODU1NTYyMDAwMTJiNTY1YjgyODAwMTYwMDEwMTg1NTU4MjE1NjIwMDAxMmI1NzkxODIwMTViODI4MTExMTU2MjAwMDEyYjU3ODI1MTgyNTU5MTYwMjAwMTkxOTA2MDAxMDE5MDYyMDAwMTBlNTY1YjUwNjIwMDAxMzk5MjkxNTA2MjAwMDEzZDU2NWI1MDkwNTY1YjViODA4MjExMTU2MjAwMDEzOTU3NjAwMDgxNTU2MDAxMDE2MjAwMDEzZTU2NWI2MDAxODE4MTFjOTA4MjE2ODA2MjAwMDE2OTU3NjA3ZjgyMTY5MTUwNWI2MDIwODIxMDgxMTQxNTYyMDAwMThiNTc2MzRlNDg3YjcxNjBlMDFiNjAwMDUyNjAyMjYwMDQ1MjYwMjQ2MDAwZmQ1YjUwOTE5MDUwNTY1YjYxNDQyZDgwNjIwMDAxYTE2MDAwMzk2MDAwZjNmZTYwODA2MDQwNTI2MDA0MzYxMDYxMDFlZTU3NjAwMDM1NjBlMDFjODA2MzZmNThiOWQ5MTE2MTAxMGQ1NzgwNjNiYWZjYWY3YTExNjEwMGEwNTc4MDYzZDU3NDQ4YWExMTYxMDA2ZjU3ODA2M2Q1NzQ0OGFhMTQ2MTA0YmE1NzgwNjNkNmZhNDBhZTE0NjEwNGRhNTc4MDYzZTdiMDdjYjYxNDYxMDRlZDU3ODA2M2ZjOGRmMmRhMTQ2MTA1MGQ1NzgwNjNmZTczODZlMTE0NjEwNTIyNTc2MDAwODBmZDViODA2M2JhZmNhZjdhMTQ2MTA0NTI1NzgwNjNjNWNlOWVhNzE0NjEwNDcyNTc4MDYzYzcyZTk3ZjQxNDYxMDQ5MjU3ODA2M2QyMzI0ZGIwMTQ2MTA0YTc1NzYwMDA4MGZkNWI4MDYzOTBlZjc5YzIxMTYxMDBkYzU3ODA2MzkwZWY3OWMyMTQ2MTAzZWE1NzgwNjM5ZDU2MGNiNDE0NjEwM2YyNTc4MDYzYWI4ZDMwZmQxNDYxMDQxMjU3ODA2M2I5MTRiYjc5MTQ2MTA0MzI1NzYwMDA4MGZkNWI4MDYzNmY1OGI5ZDkxNDYxMDNhNzU3ODA2Mzc3ZWQ0YWIyMTQ2MTAzYWY1NzgwNjM4MDFlY2RiZjE0NjEwM2MyNTc4MDYzOGU5M2JjMzMxNDYxMDNjYTU3NjAwMDgwZmQ1YjgwNjMxZmRjODE3ZTExNjEwMTg1NTc4MDYzMzljNDA1MmMxMTYxMDE1NDU3ODA2MzM5YzQwNTJjMTQ2MTAzMzQ1NzgwNjM0NzUzMzdhZDE0NjEwMzU0NTc4MDYzNTUxNjdmMGUxNDYxMDM2NzU3ODA2MzViZTJhMDI2MTQ2MTAzODc1NzYwMDA4MGZkNWI4MDYzMWZkYzgxN2UxNDYxMDJkYjU3ODA2MzI0NTUzMjA2MTQ2MTAyZWU1NzgwNjMyZjNlMGMxMjE0NjEwMzAxNTc4MDYzMzc3YTMyOWYxNDYxMDMxNDU3NjAwMDgwZmQ1YjgwNjMxMmI4OTk0NjExNjEwMWMxNTc4MDYzMTJiODk5NDYxNDYxMDI2ODU3ODA2MzE1MGE5ZmY1MTQ2MTAyODg1NzgwNjMxYzk4NDUwNTE0NjEwMmE4NTc4MDYzMWZhNmE2OTYxNDYxMDJiYjU3NjAwMDgwZmQ1YjgwNjMwOTFjYzg5OTE0NjEwMWYzNTc4MDYzMTE2ODRmNTMxNDYxMDIyMjU3ODA2MzExOTFhMjcyMTQ2MTAyNDI1NzgwNjMxMjk1MTIzYzE0NjEwMjU1NTc1YjYwMDA4MGZkNWI2MTAyMDY2MTAyMDEzNjYwMDQ2MTM1MjY1NjViNjEwNTM3NTY1YjYwNDA1MTYwMDE2MDAxNjBhMDFiMDM5MDkxMTY4MTUyNjAyMDAxNjA0MDUxODA5MTAzOTBmMzViMzQ4MDE1NjEwMjJlNTc2MDAwODBmZDViNTA2MTAyMDY2MTAyM2QzNjYwMDQ2MTM1YWI1NjViNjEwNjA3NTY1YjYxMDIwNjYxMDI1MDM2NjAwNDYxMzVlMjU2NWI2MTA2MzI1NjViNjEwMjA2NjEwMjYzMzY2MDA0NjEzNmI1NTY1YjYxMDdlNzU2NWIzNDgwMTU2MTAyNzQ1NzYwMDA4MGZkNWI1MDYxMDIwNjYxMDI4MzM2NjAwNDYxMzZlYTU2NWI2MTA4NWY1NjViMzQ4MDE1NjEwMjk0NTc2MDAwODBmZDViNTA2MTAyMDY2MTAyYTMzNjYwMDQ2MTM3MzE1NjViNjEwOWQ1NTY1YjYxMDIwNjYxMDJiNjM2NjAwNDYxMzZiNTU2NWI2MTA5ZjU1NjViMzQ4MDE1NjEwMmM3NTc2MDAwODBmZDViNTA2MTAyMDY2MTAyZDYzNjYwMDQ2MTM3OTk1NjViNjEwYWI1NTY1YjYxMDIwNjYxMDJlOTM2NjAwNDYxMzZiNTU2NWI2MTBhZGE1NjViNjEwMjA2NjEwMmZjMzY2MDA0NjEzODE3NTY1YjYxMGI2MzU2NWI2MTAyMDY2MTAzMGYzNjYwMDQ2MTM4NWY1NjViNjEwZWExNTY1YjM0ODAxNTYxMDMyMDU3NjAwMDgwZmQ1YjUwNjEwMjA2NjEwMzJmMzY2MDA0NjEzOGY1NTY1YjYxMGZhYzU2NWIzNDgwMTU2MTAzNDA1NzYwMDA4MGZkNWI1MDYxMDIwNjYxMDM0ZjM2NjAwNDYxMzczMTU2NWI2MTBmY2I1NjViNjEwMjA2NjEwMzYyMzY2MDA0NjEzOTYzNTY1YjYxMGZlNTU2NWIzNDgwMTU2MTAzNzM1NzYwMDA4MGZkNWI1MDYxMDIwNjYxMDM4MjM2NjAwNDYxMzlkNTU2NWI2MTEwMjg1NjViMzQ4MDE1NjEwMzkzNTc2MDAwODBmZDViNTA2MTAyMDY2MTAzYTIzNjYwMDQ2MTNhMmQ1NjViNjExMDQzNTY1YjYxMDIwNjYxMTA1YjU2NWI2MTAyMDY2MTAzYmQzNjYwMDQ2MTNhNWI1NjViNjExMDZkNTY1YjYxMDIwNjYxMTFjYjU2NWIzNDgwMTU2MTAzZDY1NzYwMDA4MGZkNWI1MDYxMDIwNjYxMDNlNTM2NjAwNDYxM2FiNDU2NWI2MTEzMWI1NjViNjEwMjA2NjExMzJiNTY1YjM0ODAxNTYxMDNmZTU3NjAwMDgwZmQ1YjUwNjEwMjA2NjEwNDBkMzY2MDA0NjEzYjExNTY1YjYxMTM0NDU2NWIzNDgwMTU2MTA0MWU1NzYwMDA4MGZkNWI1MDYxMDIwNjYxMDQyZDM2NjAwNDYxM2I1ZTU2NWI2MTEzNTM1NjViMzQ4MDE1NjEwNDNlNTc2MDAwODBmZDViNTA2MTAyMDY2MTA0NGQzNjYwMDQ2MTNiZGE1NjViNjExMzgxNTY1YjM0ODAxNTYxMDQ1ZTU3NjAwMDgwZmQ1YjUwNjEwMjA2NjEwNDZkMzY2MDA0NjEzNWFiNTY1YjYxMTM5YTU2NWIzNDgwMTU2MTA0N2U1NzYwMDA4MGZkNWI1MDYxMDIwNjYxMDQ4ZDM2NjAwNDYxM2MxOTU2NWI2MTEzYjE1NjViMzQ4MDE1NjEwNDllNTc2MDAwODBmZDViNTA2MTAyMDY2MTEzY2U1NjViNjEwMjA2NjEwNGI1MzY2MDA0NjEzODVmNTY1YjYxMTNlMDU2NWIzNDgwMTU2MTA0YzY1NzYwMDA4MGZkNWI1MDYxMDIwNjYxMDRkNTM2NjAwNDYxMzczMTU2NWI2MTE0ZWE1NjViNjEwMjA2NjEwNGU4MzY2MDA0NjEzNmVhNTY1YjYxMTUwMjU2NWIzNDgwMTU2MTA0Zjk1NzYwMDA4MGZkNWI1MDYxMDIwNjYxMDUwODM2NjAwNDYxMzVhYjU2NWI2MTE3YTk1NjViMzQ4MDE1NjEwNTE5NTc2MDAwODBmZDViNTA2MTAyMDY2MTE3YzA1NjViMzQ4MDE1NjEwNTJlNTc2MDAwODBmZDViNTA2MTAyMDY2MTE3ZDI1NjViNjA0MDgwNTE2MDAxODA4MjUyODE4MzAxOTA5MjUyNjAwMDkxODI5MTkwODE2MDIwMDE1YjYxMDU1OTYxMzJmMzU2NWI4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTA1NTE1NzkwNTA1MDkwNTA2MTA1N2I2MDAwNjAwNDg5NjExN2YzNTY1YjgxNjAwMDgxNTE4MTEwNjEwNThlNTc2MTA1OGU2MTNjNzU1NjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDYwMDA2MTA1YTkzMDYwMDA4Nzg3ODY2MTE4Mjg1NjViOTA1MDYwMDA2MTA1Yjk2MDAxODg4YTYxMWEzNTU2NWI5MDUwNjAwMDYxMDVkMDYwMDQ2MDA1NjAwYTYwMWU2MDAxOGU2MTFiMTA1NjViOTA1MDYwMDA4MDYxMDVlNjg1NjAwNDU0NjAwNTU0ODc4NzYxMWI4MDU2NWI5MDkyNTA5MDUwNjAxNjgyMTQ2MTA1Zjg1NzYwMDA4MGZkNWI5YjlhNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDU2NWI2MDAwNjEwNjJiNjEwNjE0NjExY2I0NTY1YjYxMDYxZTg1ODU2MTFkN2E1NjViNjEwNjI2NjExZGUyNTY1YjYxMWUxYjU2NWI5MzkyNTA1MDUwNTY1YjYwNDA4MDUxNjAwNTgwODI1MjYwYzA4MjAxOTA5MjUyNjAwMDkxODI5MTkwODE2MDIwMDE1YjYxMDY1NTYxMzJmMzU2NWI4MTUyNjAyMDAxOTA2MDAxOTA=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwnLywt6pOPPO5Hy+8Eta5I0XjUS+g/1b71FXvIaEofNOpPHk0mSce00hkP0vndEXAGgsIw7TkrQYQw4KTKiIPCgkIh7TkrQYQjRASAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiHtOStBhCTEBICGAISAhgDGPjR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxiJDCKAIDAzOTA4MTYxMDY0ZDU3OTA1MDUwOTA1MDYxMDY3OTYwMDA2MDAxNjAwMzhjNjExZjY4NTY1YjgxNjAwMDgxNTE4MTEwNjEwNjhjNTc2MTA2OGM2MTNjNzU1NjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDYxMDZhNjYwMDI2MDAzNjAwNDhiNjExZjY4NTY1YjgxNjAwMTgxNTE4MTEwNjEwNmI5NTc2MTA2Yjk2MTNjNzU1NjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDYxMDZkMTYwMDQ2MDAyODk2MTFmOWY1NjViODE2MDAyODE1MTgxMTA2MTA2ZTQ1NzYxMDZlNDYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNjEwNmZiNjAwNTgwODg2MTFmOWY1NjViODE2MDAzODE1MTgxMTA2MTA3MGU1NzYxMDcwZTYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNjEwNzM1NjAwNjYwMDE2MDQwNTE4MDYwMjAwMTYwNDA1MjgwNjAwMDgxNTI1MDYxMTdmMzU2NWI4MTYwMDQ4MTUxODExMDYxMDc0ODU3NjEwNzQ4NjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA2MDAwNjEwNzYzOGI2MDAwODg4ODg2NjExODI4NTY1YjkwNTA2MDAwODA2MTA3Nzc4MzYwMDQ1NDYwMDU1NDYxMWZjYTU2NWI5MDkyNTA5MDUwNjAxNjgyMTQ2MTA3ODk1NzYwMDA4MGZkNWI2MTA3OTM4NjgyNjEyMGY4NTY1YjkxNTA2MDE2ODIxNDYxMDdhMjU3NjAwMDgwZmQ1YjYwNDA4MDUxNjAwMDgwODI1MjYwMjA4MjAxOTA5MjUyODE5MDYxMDdjMjkwODQ5MDYwNjQ5MDYxMjFjYzU2NWI5MDkyNTA5MDUwNjAxNjgyMTQ2MTA3ZDQ1NzYwMDA4MGZkNWI1MDkwOWQ5YzUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTY1YjYwNDA4MDUxNjAwMjgwODI1MjYwNjA4MjAxOTA5MjUyNjAwMDkxODI5MTkwODE2MDIwMDE1YjYxMDgwYTYxMzJmMzU2NWI4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTA4MDI1NzkwNTA1MDkwNTA2MDAwNjEwODJmMzA2MDAwODc4Nzg2NjExODI4NTY1YjkwNTA2MDAwODA2MTA4NDM4MzYwMDQ1NDYwMDU1NDYxMWZjYTU2NWI5MDkyNTA5MDUwNjAxNjgyMTQ2MTA4NTU1NzYwMDA4MGZkNWI5Njk1NTA1MDUwNTA1MDUwNTY1YjYwNDA4MDUxNjAwMTgwODI1MjgxODMwMTkwOTI1MjYwMDA5MTgyOTE5MDgxNjAyMDAxNWI2MTA4ODE2MTMyZjM1NjViODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjEwODc5NTc5MDUwNTA5MDUwNjEwOGIyNjAwMDYwMDE2MDQwNTE4MDYwMjAwMTYwNDA1MjgwNjAwMDgxNTI1MDYxMTdmMzU2NWI4MTYwMDA4MTUxODExMDYxMDhjNTU3NjEwOGM1NjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA2MDAwNjEwOGUwODY2MDAwODc4Nzg2NjExODI4NTY1YjkwNTA2MDAwODA2MTAxNjc2MDAxNjAwMTYwYTAxYjAzMTY2Mzc4MTJhMDRiNjBlMDFiODQ2MDA0NTQ2MDA1NTQ2MDQwNTE2MDI0MDE2MTA5MTI5MzkyOTE5MDYxM2VhZTU2NWI2MDQwODA1MTYwMWYxOTgxODQwMzAxODE1MjkxODE1MjYwMjA4MjAxODA1MTYwMDE2MDAxNjBlMDFiMDMxNjYwMDE2MDAxNjBlMDFiMDMxOTkwOTQxNjkzOTA5MzE3OTA5MjUyOTA1MTYxMDk1MDkxOTA2MTNlZDM1NjViNjAwMDYwNDA1MTgwODMwMzgxODU1YWY0OTE1MDUwM2Q4MDYwMDA4MTE0NjEwOThiNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjEwOTkwNTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTA5OWY1NzYwMDA4MGZkNWI2MDAwODA4MjgwNjAyMDAxOTA1MTgxMDE5MDYxMDliNjkxOTA2MTNlZWY1NjViOTA5MjUwOTA1MDYwMTY4MjE0NjEwOWM4NTc2MDAwODBmZDViOTk5ODUwNTA1MDUwNTA1MDUwNTA1MDU2NWI2MDAwNjEwOWVkNjEwOWUyNjExY2I0NTY1YjYxMDYxZTg2ODY4NjYxMjJiNTU2NWI5NDkzNTA1MDUwNTA1NjViNjA0MDgwNTE2MDAxODA4MjUyODE4MzAxOTA5MjUyNjAwMDkxODI5MTkwODE2MDIwMDE1YjYxMGExNzYxMzJmMzU2NWI4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTBhMGY1NzkwNTA1MDkwNTA2MTBhMzQ2MTMyZjM1NjViNjAwNDgxNTI2MTBhNDA2MTMzMTI1NjViMzA2MDIwODA4MzAxOTE5MDkxNTI2MDAxODI1MjgyMDE4MTkwNTI4MjUxODI5MDg0OTA2MDAwOTA2MTBhNjg1NzYxMGE2ODYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNjAwMDYxMGE4MzMwNjAwMDg5ODk4ODYxMTgyODU2NWI5MDUwNjAwMDgwNjEwYTk3ODM2MDA0NTQ2MDA1NTQ2MTFmY2E1NjViOTA5MjUwOTA1MDYwMTY4MjE0NjEwYWE5NTc2MDAwODBmZDViOTg5NzUwNTA1MDUwNTA1MDUwNTA1NjViNjAwMDYxMDljODYxMGFjMjYxMWNiNDU2NWI2MTBhY2Q4YjhhODc2MTIzMWY1NjViNjEwNjI2OGI4YThhOGE4OTYxMjNkNDU2NWI2MDAwODA2MTBiMjQzMDgyODY4NjgyNjA0MDUxOTA4MDgyNTI4MDYwMjAwMjYwMjAwMTgyMDE2MDQwNTI4MDE1NjEwYjFlNTc4MTYwMjAwMTViNjEwYjBiNjEzMmYzNTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMGIwMzU3OTA1MDViNTA2MTE4Mjg1NjViOTA1MDYxMGI0OTYwNDA4MDUxNjA2MDgxMDE4MjUyNjAwMDgwODI1MjYwMjA4MjAxODE5MDUyOTE4MTAxOTE5MDkxNTI5MDU2NWI2MDM3ODE1MjYxMDEwMDgyMDE4MTkwNTI2MDAwODA2MTA4NDM4NDgyODA2MTFmY2E1NjViNjA0MDgwNTE2MDAzODA4MjUyNjA4MDgyMDE5MDkyNTI2MDAwOTE4MjkxOTA4MTYwMjAwMTViNjEwYjg2NjEzMmYzNTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMGI3ZTU3OTA1MDUwOTA1MDYxMGJhODYwMDA2MDAzODc2MTE3ZjM1NjViODE2MDAwODE1MTgxMTA2MTBiYmI1NzYxMGJiYjYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNjEwYmQzNjAwNDYwMDIzMDYxMWY5ZjU2NWI4MTYwMDE4MTUxODExMDYxMGJlNjU3NjEwYmU2NjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA2MTBiZmU2MDA2NjAwMjMwNjExZjlmNTY1YjgxNjAwMjgxNTE4MTEwNjEwYzExNTc2MTBjMTE2MTNjNzU1NjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDYwMDA2MTBjMmMzMDYwMDA4Nzg3ODY2MTE4Mjg1NjViOTA1MDYwMDA4MDYxMGMzZTgzNjAxZTYwMDg2MTFmY2E1NjViOTA5MjUwOTA1MDYwMTY4MjE0NjEwYzUwNTc2MDAwODBmZDViODA5NDUwNjAwMDgxNjAwMTYwMDE2MGEwMWIwMzE2NjMwNmZkZGUwMzYwNDA1MTgxNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYwMDA2MDQwNTE4MDgzMDM4MTg2NWFmYTE1ODAxNTYxMGM5MzU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAwMDgyM2U2MDFmM2Q5MDgxMDE2MDFmMTkxNjgyMDE2MDQwNTI2MTBjYmI5MTkwODEwMTkwNjEzZjE0NTY1YjkwNTA2MDAxNjA0MDUxNjEwY2NjOTE5MDYxM2ZiYzU2NWI2MDQwNTE4MDkxMDM5MDIwODE4MDUxOTA2MDIwMDEyMDE0NjEwZDI0NTc2MDQwNTE2MjQ2MWJjZDYwZTUxYjgxNTI2MDIwNjAwNDgyMDE1MjYwMTM2MDI0ODIwMTUyNzIxMzk4NWI1OTQ4MWE1Y2M4MWI5YmRkMDgxOGRiZGM5Yzk5NThkZDYwNmExYjYwNDQ4MjAxNTI2MDY0MDE1YjYwNDA1MTgwOTEwMzkwZmQ1YjYwMDA4MjYwMDE2MDAxNjBhMDFiMDMxNjYzMTgxNjBkZGQ2MDQwNTE4MTYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MDIwNjA0MDUxODA4MzAzODE4NjVhZmExNTgwMTU2MTBkNjQ1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA2MDQwNTEzZDYwMWYxOTYwMWY4MjAxMTY4MjAxODA2MDQwNTI1MDgxMDE5MDYxMGQ4ODkxOTA2MTQwNTg1NjViOTA1MDgwNjAxZTE0NjEwZGRhNTc2MDQwNTE2MjQ2MWJjZDYwZTUxYjgxNTI2MDIwNjAwNDgyMDE1MjYwMWI2MDI0ODIwMTUyN2Y1NDZmNzQ2MTZjMjA3Mzc1NzA3MDZjNzkyMDY5NzMyMDZlNmY3NDIwNjM2ZjcyNzI2NTYzNzQwMDAwMDAwMDAwNjA0NDgyMDE1MjYwNjQwMTYxMGQxYjU2NWI2MDQwNTE2M2E5MDU5Y2JiNjBlMDFiODE1MjYwMDE2MDAxNjBhMDFiMDM4YTgxMTY2MDA0ODMwMTUyNjAxNDYwMjQ4MzAxNTI2MDAwOTE5MDg1MTY5MDYzYTkwNTljYmI5MDYwNDQwMTYwMjA2MDQwNTE4MDgzMDM4MTYwMDA4NzVhZjExNTgwMTU2MTBlMmQ1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA2MDQwNTEzZDYwMWYxOTYwMWY4MjAxMTY4MjAxODA2MDQwNTI1MDgxMDE5MDYxMGU1MTkxOTA2MTQwNzE1NjViOTA1MDgwNjEwZTkzNTc2MDQwNTE2MjQ2MWI=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwpP8BEe1BdXj20yWFK1RVUvwt01de4cYsGHy1zVpV5Kpf/kRqEOy/MVAocg5Pwk/CGgwIw7TkrQYQ293dqgIiDwoJCIe05K0GEJMQEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQiItOStBhCZEBICGAISAhgDGPfR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxiJDCKAIGNkNjBlNTFiODE1MjYwMjA2MDA0ODIwMTUyNjAxMDYwMjQ4MjAxNTI2ZjU0NzI2MTZlNzM2NjY1NzIyMDY2NjE2OTZjNjU2NDIxNjA4MDFiNjA0NDgyMDE1MjYwNjQwMTYxMGQxYjU2NWI1MDUwNTA1MDUwNTA1MDkzOTI1MDUwNTA1NjViNjA0MDgwNTE2MDAyODA4MjUyNjA2MDgyMDE5MDkyNTI2MDAwOTE4MjkxOTA4MTYwMjAwMTViNjEwZWM0NjEzMmYzNTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMGViYzU3OTA1MDUwOTA1MDYxMGVlNjYwMDA2MDAyOGE2MTFmOWY1NjViODE2MDAwODE1MTgxMTA2MTBlZjk1NzYxMGVmOTYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNjEwZjExNjAwNDYwMDM4NTYxMTdmMzU2NWI4MTYwMDE4MTUxODExMDYxMGYyNDU3NjEwZjI0NjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA2MDAwNjEwZjNmODg2MDAwODg4ODg2NjExODI4NTY1YjYwMDE2MDgwODIwMTUyNjEwMTkwNjBhMDgyMDE1MjkwNTA2MDAwNjEwZjYyNjAwNDYwMDU4MzhiODE4ZTYxMjQ4ZDU2NWI5MDUwNjAwMDgwNjEwNWU2ODQ4MjYwNDA1MTkwODA4MjUyODA2MDIwMDI2MDIwMDE4MjAxNjA0MDUyODAxNTYxMGZhNTU3ODE2MDIwMDE1YjYxMGY5MjYxMzM1NTU2NWI4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTBmOGE1NzkwNTA1YjUwODU2MTI0ZDE1NjViNjAwMDYxMGZjMjYxMGZiZDg2ODY4Njg2NjEyNTQ0NTY1YjYxMjVjNTU2NWI5NTk0NTA1MDUwNTA1MDU2NWI2MDAwNjEwOWVkNjEwZmQ4NjExY2I0NTY1YjYxMDYxZTg2ODY4NjYwMDA2MTI3MWM1NjViNjAwMDgwNjEwZmYzNjAwMzg2NjEyN2MwNTY1YjkwNTA2MDAwNjExMDA1ODc2MDAwODc4Nzg2NjExODI4NTY1YjYwMDE2MDgwODIwMTgxOTA1MjYwMGE2MGEwODMwMTUyNjBjMDgyMDE1MjkwNTA2MDAwODA2MTBhOTc4MzYxMjgzZDU2NWI2MDAwNjEwZmMyNjExMDM1NjExY2I0NTY1YjYwNjA2MTA2MjY4ODg4ODg4ODYxMjk2NTU2NWI2MDAwNjEwOWVkNjExMDUwNjExY2I0NTY1YjYxMDYxZTg1ODc4NjYxMjlkMTU2NWI2MDAwNjExMDY4NjEwZmJkNjExY2I0NTY1YjkwNTA5MDU2NWI2MDQwODA1MTYwMDE4MDgyNTI4MTgzMDE5MDkyNTI2MDAwOTE4MjkxOTA4MTYwMjAwMTViNjExMDhmNjEzMmYzNTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMTA4NzU3OTA1MDUwOTA1MDYxMTBiMTYwMDA2MDA0ODg2MTE3ZjM1NjViODE2MDAwODE1MTgxMTA2MTEwYzQ1NzYxMTBjNDYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNjAwMDYxMTBkZjMwNjAwMDg3ODc4NjYxMTgyODU2NWI5MDUwNjAwMDYxMTBlZTYwMDE4ODYxMmExMjU2NWI2MDQwODA1MTYwMDE4MDgyNTI4MTgzMDE5MDkyNTI5MTkyNTA2MDAwOTE5MDgxNjAyMDAxNWI2MTExMTE2MTMzNTU1NjViODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjExMTA5NTc5MDUwNTA5MDUwODE4MTYwMDA4MTUxODExMDYxMTEzYTU3NjExMTNhNjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA2MDAwODA2MTExYWI4NTYwMDQ1NDYwMDU1NDg2NjAwMDYwMDE2MDAxNjA0MDFiMDM4MTExMTU2MTExNmM1NzYxMTE2YzYxMzQzMjU2NWI2MDQwNTE5MDgwODI1MjgwNjAyMDAyNjAyMDAxODIwMTYwNDA1MjgwMTU2MTExYTU1NzgxNjAyMDAxNWI2MTExOTI2MTMzODM1NjViODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjExMThhNTc5MDUwNWI1MDYxMWI4MDU2NWI5MDkyNTA5MDUwNjAxNjgyMTQ2MTExYmQ1NzYwMDA4MGZkNWI5YTk5NTA1MDUwNTA1MDUwNTA1MDUwNTA1NjViNjAwMDYxMTFkNTYxMzNiODU2NWI2MDAxODA1NDYxMTFlMjkwNjEzZjgxNTY1YjgwNjAxZjAxNjAyMDgwOTEwNDAyNjAyMDAxNjA0MDUxOTA4MTAxNjA0MDUyODA5MjkxOTA4MTgxNTI2MDIwMDE4MjgwNTQ2MTEyMGU5MDYxM2Y4MTU2NWI4MDE1NjExMjViNTc4MDYwMWYxMDYxMTIzMDU3NjEwMTAwODA4MzU0MDQwMjgzNTI5MTYwMjAwMTkxNjExMjViNTY1YjgyMDE5MTkwNjAwMDUyNjAyMDYwMDAyMDkwNWI4MTU0ODE1MjkwNjAwMTAxOTA2MDIwMDE4MDgzMTE2MTEyM2U1NzgyOTAwMzYwMWYxNjgyMDE5MTViNTA1MDUwOTE4MzUyNTA1MDYwMDI4MDU0NjExMjcwOTA2MTNmODE1NjViODA2MDFmMDE2MDIwODA5MTA0MDI2MDIwMDE2MDQwNTE5MDgxMDE2MDQwNTI4MDkyOTE5MDgxODE1MjYwMjAwMTgyODA1NDYxMTI5YzkwNjEzZjgxNTY1YjgwMTU2MTEyZTk1NzgwNjAxZjEwNjExMmJlNTc2MTAxMDA4MDgzNTQwNDAyODM1MjkxNjAyMDAxOTE2MTEyZTk1NjViODIwMTkxOTA2MDAwNTI2MDIwNjAwMDIwOTA1YjgxNTQ4MTUyOTA2MDAxMDE5MDYwMjAwMTgwODMxMTYxMTJjYzU3ODI5MDAzNjAxZjE2ODIwMTkxNWI1MDUwNTA1MDUwNjAyMDgyMDE1MjMwNjA0MDgyMDE1MjYwMDA4MDYxMTMwOTgzNjBjODYwMDg2MTFmY2E1NjViOTA5MjUwOTA1MDYwMTY4MjE0NjEwNjJiNTc2MDAwODBmZDViNjAwMDYxMDllZDYxMGZiZDg1ODU4NTYxMmE0MzU2NWI2MDAwNjExMzM1NjEzM2I4NTY1YjYwMDA4MDYxMTMwOTgzNjAwMDgwNjExZmNhNTY1YjYwMDA2MTA2MmI2MTBmYmQ4NDg0NjEyN2MwNTY1YjYwMDA2MTEzNzY2MTEzNjA2MTFjYjQ1NjViNjExMzZhODk4NjYxMmFjMjU2NWI2MTA2MjY4OTg5ODk4ODYxMjk2NTU2NWI5Nzk2NTA1MDUwNTA1MDUwNTA1NjViNjAwMDYxMGZjMjYxMTM4ZTYxMWNiNDU2NWI2MTA2MWU4Nzg3ODc4NzYxMjcxYzU2NWI2MDAwNjEwNjJiNjExM2E3NjExY2I0NTY1YjYxMDYxZTg1ODU2MTJiMDI1NjViNjAwMDYxMTM3NjYxMTNiZTYxMWNiNDU2NWI2MDYwNjEwNjI2OGE4YThhOGE4YThhNjExYjEwNTY1YjYwMDA2MTEwNjg2MTEzZGI2MTFjYjQ1NjViNjEyYjQyNTY1YjYwNDA4MDUxNjAwMjgwODI1MjYwNjA4MjAxOTA5MjUyNjAwMDkxODI5MTkwODE2MDIwMDE1YjYxMTQwMzYxMzJmMzU2NWI4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTEzZmI1NzkwNTA1MDkwNTA2MTE0MjU2MDAwNjAwMjhhNjExZjlmNTY1YjgxNjAwMDgxNTE4MTEwNjExNDM4NTc2MTE0Mzg2MTNjNzU1NjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDYxMTQ1MDYwMDQ2MDAzODU2MTE3ZjM1NjViODE2MDAxODE1MTgxMTA2MTE0NjM1NzYxMTQ2MzYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNjAwMDYxMTQ3ZTg4NjAwMDg4ODg4NjYxMTgyODU2NWI2MDAxNjA4MDgyMDE1MjYxMDE5MDYwYTA4MjAxNTI5MDUwNjAwMDYxMTRhMTYwMDQ2MDA1NjAwYThiOGQ2MTJjOTQ1NjViOTA1MDYwMDA4MDYxMDVlNjg0ODI2MDQwNTE5MDgwODI1MjgwNjAyMDAyNjAyMDAxODIwMTYwNDA1MjgwMTU2MTBmYTU1NzgxNjAyMDAxNWI2MTE0ZDE2MTMzNTU1NjViODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjExNGM5NTc5MDUwNTA4NTYxMjRkMTU2NWI2MDAwNjEwOWVkNjExNGY3NjExY2I0NTY1YjYxMDYxZTg2ODY4NjYxMWEzNTU2NWI2MDQwODA1MTYwMDI4MDgyNTI2MDYwODIwMTkwOTI1MjYwMDA5MTgyOTE5MDgxNjAyMDAxNWI2MTE1MjU2MTMyZjM1NjViODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjExNTFkNTc5MDUwNTA5MDUwNjExNTQ3NjAwMDYwMDI4NzYxMWY5ZjU2NWI4MTYwMDA4MTUxODExMDYxMTU1YTU3NjExNTVhNjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA2MTE1NzI2MDA0NjAwMjg3NjExZjlmNTY1YjgxNjAwMTgxNTE4MTEwNjExNTg1NTc2MTE1ODU2MTNjNzU1NjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDYwMDA2MTE1YTAzMDYwMDA4Nzg3ODY2MTE4Mjg1NjViOTA1MDYwMDA2MTE1YjE2MDA0NjAwNTg5NjEyZDY4NTY1YjkwNTA2MDAwODA2MTE1ZmE4NDgyNjA0MDUxOTA4MDgyNTI4MDYwMjAwMjYwMjAwMTgyMDE2MDQwNTI4MDE1NjEwZmE1NTc4MTYwMjAwMTViNjExNWUxNjEzMzU1NTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMTVkOTU3OTA1MDUwODU2MTI0ZDE1NjViOTA5MjUwOTA1MDYwMTY4MjE0NjExNjBjNTc2MDAwODBmZDViODA5NTUwNjAwMDgxNjAwMTYwMDE2MGEwMWIwMzE2NjMwNmZkZGUwMzYwNDA1MTgxNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYwMDA2MDQwNTE4MDgzMDM4MTg2NWFmYTE1ODAxNTYxMTY0ZjU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAwMDgyM2U2MDFmM2Q=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw7auctud3urrVno6ZZZc9gaMPK2YowUVmn7f14GKYNCtgvnR8tQNTY+sD8aFYQTICGgsIxLTkrQYQs730MiIPCgkIiLTkrQYQmRASAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiItOStBhCfEBICGAISAhgDGPfR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxiJDCKAIDkwODEwMTYwMWYxOTE2ODIwMTYwNDA1MjYxMTY3NzkxOTA4MTAxOTA2MTNmMTQ1NjViOTA1MDYwMDE2MDQwNTE2MTE2ODg5MTkwNjEzZmJjNTY1YjYwNDA1MTgwOTEwMzkwMjA4MTgwNTE5MDYwMjAwMTIwMTQ2MTE2ZGI1NzYwNDA1MTYyNDYxYmNkNjBlNTFiODE1MjYwMjA2MDA0ODIwMTUyNjAxMzYwMjQ4MjAxNTI3MjEzOTg1YjU5NDgxYTVjYzgxYjliZGQwODE4ZGJkYzljOTk1OGRkNjA2YTFiNjA0NDgyMDE1MjYwNjQwMTYxMGQxYjU2NWI2MDAwODI2MDAxNjAwMTYwYTAxYjAzMTY2Mzk1ZDg5YjQxNjA0MDUxODE2M2ZmZmZmZmZmMTY2MGUwMWI4MTUyNjAwNDAxNjAwMDYwNDA1MTgwODMwMzgxODY1YWZhMTU4MDE1NjExNzFiNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDAwODIzZTYwMWYzZDkwODEwMTYwMWYxOTE2ODIwMTYwNDA1MjYxMTc0MzkxOTA4MTAxOTA2MTNmMTQ1NjViOTA1MDYwMDI2MDQwNTE2MTE3NTQ5MTkwNjEzZmJjNTY1YjYwNDA1MTgwOTEwMzkwMjA4MTgwNTE5MDYwMjAwMTIwMTQ2MTBlOTM1NzYwNDA1MTYyNDYxYmNkNjBlNTFiODE1MjYwMjA2MDA0ODIwMTUyNjAxNTYwMjQ4MjAxNTI3NDE0ZGU1YjU4OWJkYjA4MWE1Y2M4MWI5YmRkMDgxOGRiZGM5Yzk5NThkZDYwNWExYjYwNDQ4MjAxNTI2MDY0MDE2MTBkMWI1NjViNjAwMDYxMDYyYjYxMTdiNjYxMWNiNDU2NWI2MTA2MWU4NTg1NjEyYWMyNTY1YjYwMDA2MTEwNjg2MTE3Y2Q2MTFjYjQ1NjViNjEyZGE5NTY1YjYwMDA2MTEwNjg2MTBmYmQ2MDA0NjAwMTYwNDA1MTgwNjAyMDAxNjA0MDUyODA2MDAwODE1MjUwNjEyYTQzNTY1YjYxMTdmYjYxMzJmMzU2NWI2MDQwNTE4MDYwNDAwMTYwNDA1MjgwNjExODBmODY2MTJmY2U1NjViODE1MjYwMjAwMTYxMTgxZTg1ODU2MTMwNjA1NjViOTA1Mjk0OTM1MDUwNTA1MDU2NWI2MTE4MzA2MTMzYjg1NjViNjA0MDgwNTE2MDYwODEwMTgyNTI2M2ZmZmZmZmZmODc4MTE2ODI1MjYwMDE2MDAxNjBhMDFiMDM4NzE2NjAyMDgzMDE1Mjg1MTY5MTgxMDE5MTkwOTE1MjYwMDE4MDU0NjExODY5OTA2MTNmODE1NjViODA2MDFmMDE2MDIwODA5MTA0MDI2MDIwMDE2MDQwNTE5MDgxMDE2MDQwNTI4MDkyOTE5MDgxODE1MjYwMjAwMTgyODA1NDYxMTg5NTkwNjEzZjgxNTY1YjgwMTU2MTE4ZTI1NzgwNjAxZjEwNjExOGI3NTc2MTAxMDA4MDgzNTQwNDAyODM1MjkxNjAyMDAxOTE2MTE4ZTI1NjViODIwMTkxOTA2MDAwNTI2MDIwNjAwMDIwOTA1YjgxNTQ4MTUyOTA2MDAxMDE5MDYwMjAwMTgwODMxMTYxMThjNTU3ODI5MDAzNjAxZjE2ODIwMTkxNWI1MDUwNTA5MTg0NTI1MDUwNjAwMjgwNTQ2MTE4Zjc5MDYxM2Y4MTU2NWI4MDYwMWYwMTYwMjA4MDkxMDQwMjYwMjAwMTYwNDA1MTkwODEwMTYwNDA1MjgwOTI5MTkwODE4MTUyNjAyMDAxODI4MDU0NjExOTIzOTA2MTNmODE1NjViODAxNTYxMTk3MDU3ODA2MDFmMTA2MTE5NDU1NzYxMDEwMDgwODM1NDA0MDI4MzUyOTE2MDIwMDE5MTYxMTk3MDU2NWI4MjAxOTE5MDYwMDA1MjYwMjA2MDAwMjA5MDViODE1NDgxNTI5MDYwMDEwMTkwNjAyMDAxODA4MzExNjExOTUzNTc4MjkwMDM2MDFmMTY4MjAxOTE1YjUwNTA1MDUwNTA2MDIwODMwMTUyNjAwMTYwMDE2MGEwMWIwMzg3MTY2MDQwODMwMTUyNjBlMDgyMDE4MzkwNTI2MTAxMDA4MjAxODE5MDUyNjAwMzgwNTQ2MTE5YTU5MDYxM2Y4MTU2NWI4MDYwMWYwMTYwMjA4MDkxMDQwMjYwMjAwMTYwNDA1MTkwODEwMTYwNDA1MjgwOTI5MTkwODE4MTUyNjAyMDAxODI4MDU0NjExOWQxOTA2MTNmODE1NjViODAxNTYxMWExZTU3ODA2MDFmMTA2MTE5ZjM1NzYxMDEwMDgwODM1NDA0MDI4MzUyOTE2MDIwMDE5MTYxMWExZTU2NWI4MjAxOTE5MDYwMDA1MjYwMjA2MDAwMjA5MDViODE1NDgxNTI5MDYwMDEwMTkwNjAyMDAxODA4MzExNjExYTAxNTc4MjkwMDM2MDFmMTY4MjAxOTE1YjUwNTA1MDUwNTA4MjYwNjAwMTgxOTA1MjUwNTA5NTk0NTA1MDUwNTA1MDU2NWI2MDQwODA1MTYwMDM4MDgyNTI2MDgwODIwMTkwOTI1MjYwNjA5MTgxNjAyMDAxNWI2MTFhNTU2MTMzNTU1NjViODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjExYTRkNTc5MDUwNTA5MDUwNjAwMDYxMWE3Nzg1ODU4NTYxMzBmMzU2NWI5MDUwNjAwMDYxMWE4ZjYxMWE4OTg3NjAwMjYxNDBhNDU2NWI4NTYxMzExZTU2NWI5MDUwNjAwMDYxMWFhNzYxMWFhMTg4NjAwNDYxNDBhNDU2NWI4NjYxMzE0ODU2NWI5MDUwODI4NDYwMDA4MTUxODExMDYxMWFiZDU3NjExYWJkNjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA4MTg0NjAwMTgxNTE4MTEwNjExYWRjNTc2MTFhZGM2MTNjNzU1NjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDgwODQ2MDAyODE1MTgxMTA2MTFhZmI1NzYxMWFmYjYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNTA1MDUwOTM5MjUwNTA1MDU2NWI2MDQwODA1MTYwMDE4MDgyNTI4MTgzMDE5MDkyNTI2MDYwOTE4MTYwMjAwMTViNjExYjJmNjEzMzgzNTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMWIyNzU3OTA1MDUwOTA1MDYwMDA2MTFiNTQ4ODg4ODg4ODg4ODg2MTMxNzI1NjViOTA1MDgwODI2MDAwODE1MTgxMTA2MTFiNmE1NzYxMWI2YTYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNTA5Njk1NTA1MDUwNTA1MDUwNTY1YjYwMDA4MDg2ODA2MTAxMDAwMTUxNjAwMDAxNTE2M2ZmZmZmZmZmMTY2MDAwMTQ4MDE1NjExYmIwNTc1MDYxMDEwMDgxMDE1MTYwNDAwMTUxNjNmZmZmZmZmZjE2MTU1YjE1NjExYmM2NTc2MTAxMDA4MTAxNTE2Mjc2YTcwMDYwNDA5MDkxMDE1MjViNjAwMDgwNjEwMTY3NjAwMTYwMDE2MGEwMWIwMzE2MzQ2MzRjMzgxYWU3NjBlMDFiOGM4YzhjOGM4YzYwNDA1MTYwMjQwMTYxMWJmNzk1OTQ5MzkyOTE5MDYxNDE0YjU2NWI2MDQwODA1MTYwMWYxOTgxODQwMzAxODE1MjkxODE1MjYwMjA4MjAxODA1MTYwMDE2MDAxNjBlMDFiMDMxNjYwMDE2MDAxNjBlMDFiMDMxOTkwOTQxNjkzOTA5MzE3OTA5MjUyOTA1MTYxMWMzNTkxOTA2MTNlZDM1NjViNjAwMDYwNDA1MTgwODMwMzgxODU4NzVhZjE5MjUwNTA1MDNkODA2MDAwODExNDYxMWM3MjU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMWM3NzU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjExYzhhNTc2MDE1NjAwMDYxMWM5ZTU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMWM5ZTkxOTA2MTQyMjI1NjViNjAwMzkxOTA5MTBiOWI5MDlhNTA5ODUwNTA1MDUwNTA1MDUwNTA1MDU2NWI2MDQwODA1MTYwMDI4MDgyNTI2MDYwODI4MTAxOTA5MzUyODE2MDIwMDE1YjYxMWNkMjYxMzJmMzU2NWI4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTFjY2E1NzkwNTA1MDkwNTA2MTFkMDI2MDAxODA2MDQwNTE4MDYwMjAwMTYwNDA1MjgwNjAwMDgxNTI1MDYxMTdmMzU2NWI4MTYwMDA4MTUxODExMDYxMWQxNTU3NjExZDE1NjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA2MDQwNTE4MDYwNDAwMTYwNDA1MjgwNjExZDM3NjAwNDYwMDY2MTMxYjY1NjViODE1MjYwMjAwMTYxMWQ1NjYwMDI2MDQwNTE4MDYwMjAwMTYwNDA1MjgwNjAwMDgxNTI1MDYxMzA2MDU2NWI4MTUyNTA4MTYwMDE4MTUxODExMDYxMWQ2YzU3NjExZDZjNjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA5MDU2NWI2MDQwODA1MTYwMDE4MDgyNTI4MTgzMDE5MDkyNTI2MDYwOTE4MTYwMjAwMTViNjExZDk5NjEzMzU1NTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMWQ5MTU3OTA1MDUwOTA1MDYwMDA2MTFkYmE4NDg0NjEzMTQ4NTY1YjkwNTA4MDgyNjAwMDgxNTE4MTEwNjExZGQwNTc2MTFkZDA2MTNjNzU1NjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDUwOTI5MTUwNTA1NjViNjA0MDgwNTE2MDAwODA4MjUyNjAyMDgyMDE5MDkyNTI2MDYwOTE2MTFlMTU1NjViNjExZTAyNjEzMzgzNTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMWRmYTU3OTA1MDViNTA5MDUwOTA1NjViNjAwMDYxMWUyNTYxMzNiODU2NWI2MDAxODA1NDYxMWUzMjkwNjEzZjgxNTY1YjgwNjAxZjAxNjAyMDgwOTEwNDAyNjAyMDAxNjA0MDUxOTA4MTAxNjA0MDUyODA5MjkxOTA4MTgxNTI2MDIwMDE4MjgwNTQ2MTFlNWU5MDYxM2Y4MTU2NWI=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwlK7C3UCnW5V0psQ3SiTiREQVHSDTz9owlg2OcRzhxzT0YoBhY7RfoS+yrwcrnY5uGgwIxLTkrQYQu8zktAIiDwoJCIi05K0GEJ8QEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQiJtOStBhClEBICGAISAhgDGPbR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxiJDCKAIDgwMTU2MTFlYWI1NzgwNjAxZjEwNjExZTgwNTc2MTAxMDA4MDgzNTQwNDAyODM1MjkxNjAyMDAxOTE2MTFlYWI1NjViODIwMTkxOTA2MDAwNTI2MDIwNjAwMDIwOTA1YjgxNTQ4MTUyOTA2MDAxMDE5MDYwMjAwMTgwODMxMTYxMWU4ZTU3ODI5MDAzNjAxZjE2ODIwMTkxNWI1MDUwNTA5MTgzNTI1MDUwNjAwMjgwNTQ2MTFlYzA5MDYxM2Y4MTU2NWI4MDYwMWYwMTYwMjA4MDkxMDQwMjYwMjAwMTYwNDA1MTkwODEwMTYwNDA1MjgwOTI5MTkwODE4MTUyNjAyMDAxODI4MDU0NjExZWVjOTA2MTNmODE1NjViODAxNTYxMWYzOTU3ODA2MDFmMTA2MTFmMGU1NzYxMDEwMDgwODM1NDA0MDI4MzUyOTE2MDIwMDE5MTYxMWYzOTU2NWI4MjAxOTE5MDYwMDA1MjYwMjA2MDAwMjA5MDViODE1NDgxNTI5MDYwMDEwMTkwNjAyMDAxODA4MzExNjExZjFjNTc4MjkwMDM2MDFmMTY4MjAxOTE1YjUwNTA1MDUwNTA2MDIwODIwMTUyMzA2MDQwODIwMTUyNjBlMDgxMDE4NTkwNTI2MDA0NTQ2MDA1NTQ2MDAwOTE4MjkxNjEwODQzOTE4NTkxODk4OTYxMWI4MDU2NWI2MTFmNzA2MTMyZjM1NjViNjA0MDUxODA2MDQwMDE2MDQwNTI4MDYxMWY4NTg3ODc2MTMxYjY1NjViODE1MjYwMjAwMTYxMWY5NDg1ODU2MTMwNjA1NjViOTA1Mjk1OTQ1MDUwNTA1MDUwNTY1YjYxMWZhNzYxMzJmMzU2NWI2MDQwNTE4MDYwNDAwMTYwNDA1MjgwNjExZmJiODY2MTJmY2U1NjViODE1MjYwMjAwMTYxMTgxZTg1ODU2MTMxY2Y1NjViNjAwMDgwODQ4MDYxMDEwMDAxNTE2MDAwMDE1MTYzZmZmZmZmZmYxNjYwMDAxNDgwMTU2MTFmZmE1NzUwNjEwMTAwODEwMTUxNjA0MDAxNTE2M2ZmZmZmZmZmMTYxNTViMTU2MTIwMTA1NzYxMDEwMDgxMDE1MTYyNzZhNzAwNjA0MDkwOTEwMTUyNWI2MDAwODA2MTAxNjc2MDAxNjAwMTYwYTAxYjAzMTYzNDYzNzgxMmEwNGI2MGUwMWI4YThhOGE2MDQwNTE2MDI0MDE2MTIwM2Q5MzkyOTE5MDYxM2VhZTU2NWI2MDQwODA1MTYwMWYxOTgxODQwMzAxODE1MjkxODE1MjYwMjA4MjAxODA1MTYwMDE2MDAxNjBlMDFiMDMxNjYwMDE2MDAxNjBlMDFiMDMxOTkwOTQxNjkzOTA5MzE3OTA5MjUyOTA1MTYxMjA3YjkxOTA2MTNlZDM1NjViNjAwMDYwNDA1MTgwODMwMzgxODU4NzVhZjE5MjUwNTA1MDNkODA2MDAwODExNDYxMjBiODU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMjBiZDU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEyMGQwNTc2MDE1NjAwMDYxMjBlNDU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMjBlNDkxOTA2MTQyMjI1NjViNjAwMzkxOTA5MTBiOTk5MDk4NTA5NjUwNTA1MDUwNTA1MDUwNTY1YjYwNDA4MDUxNjAwMTYwMDE2MGEwMWIwMzg0ODExNjYwMjQ4MzAxNTI4MzE2NjA0NDgwODMwMTkxOTA5MTUyODI1MTgwODMwMzkwOTEwMTgxNTI2MDY0OTA5MTAxODI1MjYwMjA4MTAxODA1MTYwMDE2MDAxNjBlMDFiMDMxNjYzMjQ4YTM1ZWY2MGUxMWIxNzkwNTI5MDUxNjAwMDkxODI5MTgyOTE2MTAxNjc5MTYxMjE1OTkxOTA2MTNlZDM1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMjE5NjU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMjE5YjU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEyMWFjNTc2MDE1NjEyMWMwNTY1YjgwODA2MDIwMDE5MDUxODEwMTkwNjEyMWMwOTE5MDYxNDI0ZTU2NWI2MDAzMGI5NTk0NTA1MDUwNTA1MDU2NWI2MDAwODA2MDAwODA2MTAxNjc2MDAxNjAwMTYwYTAxYjAzMTY2M2FjYjljZmY5NjBlMDFiODg4ODg4NjA0MDUxNjAyNDAxNjEyMWZiOTM5MjkxOTA2MTQyNjk1NjViNjA0MDgwNTE2MDFmMTk4MTg0MDMwMTgxNTI5MTgxNTI2MDIwODIwMTgwNTE2MDAxNjAwMTYwZTAxYjAzMTY2MDAxNjAwMTYwZTAxYjAzMTk5MDk0MTY5MzkwOTMxNzkwOTI1MjkwNTE2MTIyMzk5MTkwNjEzZWQzNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NjVhZjE5MTUwNTAzZDgwNjAwMDgxMTQ2MTIyNzY1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTIyN2I1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA4MTYxMjI4ZTU3NjAxNTYwMDA2MTIyYTI1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTIyYTI5MTkwNjE0MmQzNTY1YjYwMDM5MTkwOTEwYjk4OTA5NzUwOTU1MDUwNTA1MDUwNTA1NjViNjA0MDgwNTE2MDAxODA4MjUyODE4MzAxOTA5MjUyNjA2MDkxODE2MDIwMDE1YjYxMjJkNDYxMzM1NTU2NWI4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTIyY2M1NzkwNTA1MDkwNTA2MDAwNjEyMmY2ODU4NTg1NjEzMGYzNTY1YjkwNTA4MDgyNjAwMDgxNTE4MTEwNjEyMzBjNTc2MTIzMGM2MTNjNzU1NjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDUwOTM5MjUwNTA1MDU2NWI2MDYwODM2MGZmMTY2MDAxNjAwMTYwNDAxYjAzODExMTE1NjEyMzNjNTc2MTIzM2M2MTM0MzI1NjViNjA0MDUxOTA4MDgyNTI4MDYwMjAwMjYwMjAwMTgyMDE2MDQwNTI4MDE1NjEyMzc1NTc4MTYwMjAwMTViNjEyMzYyNjEzMzU1NTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMjM1YTU3OTA1MDViNTA5MDUwNjAwMDViODQ2MGZmMTY4MTYwZmYxNjEwMTU2MTIzY2M1NzYwMDA2MTIzOTU4NTg1NjEzMTFlNTY1YjkwNTA4MDgzODM2MGZmMTY4MTUxODExMDYxMjNhZDU3NjEyM2FkNjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA1MDgwODA2MTIzYzQ5MDYxNDMwYjU2NWI5MTUwNTA2MTIzN2I1NjViNTA5MzkyNTA1MDUwNTY1YjYwNjA4NTYwZmYxNjYwMDE2MDAxNjA0MDFiMDM4MTExMTU2MTIzZjE1NzYxMjNmMTYxMzQzMjU2NWI2MDQwNTE5MDgwODI1MjgwNjAyMDAyNjAyMDAxODIwMTYwNDA1MjgwMTU2MTI0MmE1NzgxNjAyMDAxNWI2MTI0MTc2MTMzODM1NjViODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjEyNDBmNTc5MDUwNWI1MDkwNTA2MDAwNWI4NjYwZmYxNjgxNjBmZjE2MTAxNTYxMjQ4MzU3NjAwMDYxMjQ0Yzg3ODc4Nzg3NjEzMjE4NTY1YjkwNTA4MDgzODM2MGZmMTY4MTUxODExMDYxMjQ2NDU3NjEyNDY0NjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA1MDgwODA2MTI0N2I5MDYxNDMwYjU2NWI5MTUwNTA2MTI0MzA1NjViNTA5NTk0NTA1MDUwNTA1MDU2NWI2MDQwODA1MTYwMDE4MDgyNTI4MTgzMDE5MDkyNTI2MDYwOTE4MTYwMjAwMTViNjEyNGFjNjEzMzgzNTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMjRhNDU3OTA1MDUwOTA1MDYwMDA2MTFiNTQ4ODg4ODg4ODg4ODg2MTMyNGQ1NjViNjAwMDgwODQ4MDYxMDEwMDAxNTE2MDAwMDE1MTYzZmZmZmZmZmYxNjYwMDAxNDgwMTU2MTI1MDE1NzUwNjEwMTAwODEwMTUxNjA0MDAxNTE2M2ZmZmZmZmZmMTYxNTViMTU2MTI1MTc1NzYxMDEwMDgxMDE1MTYyNzZhNzAwNjA0MDkwOTEwMTUyNWI2MDAwODA2MTAxNjc2MDAxNjAwMTYwYTAxYjAzMTYzNDYzNWJjN2MwZTY2MGUwMWI4YThhOGE2MDQwNTE2MDI0MDE2MTIwM2Q5MzkyOTE5MDYxNDMyYjU2NWI2MDQwODA1MTYwMDE4MDgyNTI4MTgzMDE5MDkyNTI2MDYwOTE4MTYwMjAwMTViNjEyNTYzNjEzMmYzNTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMjU1YjU3OTA1MDUwOTA1MDYwNDA1MTgwNjA0MDAxNjA0MDUyODA2MTI1OGQ4Nzg3NjEzMWI2NTY1YjgxNTI2MDIwMDE2MTI1OWM4NTg1NjEzMDYwNTY1YjgxNTI1MDgxNjAwMDgxNTE4MTEwNjEyNWIyNTc2MTI1YjI2MTNjNzU1NjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDk0OTM1MDUwNTA1MDU2NWI2MDAwNjEyNWNmNjEzM2I4NTY1YjYwMDE4MDU0NjEyNWRjOTA2MTNmODE1NjViODA2MDFmMDE2MDIwODA5MTA0MDI2MDIwMDE2MDQwNTE5MDgxMDE2MDQwNTI4MDkyOTE5MDgxODE1MjYwMjAwMTgyODA1NDYxMjYwODkwNjEzZjgxNTY1YjgwMTU2MTI2NTU1NzgwNjAxZjEwNjEyNjJhNTc2MTAxMDA4MDgzNTQwNDAyODM1MjkxNjAyMDAxOTE2MTI2NTU1NjViODIwMTkxOTA2MDAwNTI2MDIwNjAwMDIwOTA1YjgxNTQ4MTUyOTA2MDAxMDE5MDYwMjAwMTgwODMxMTYxMjYzODU3ODI5MDAzNjAxZjE2ODIwMTkxNWI1MDUwNTA5MTgzNTI1MDUwNjA=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwwt2nG6WDiUaiIKLyTWNcI+BEaLLlex1quN0umx6DfxBqViE0qS+5/Yni/0NyIFJxGgsIxbTkrQYQ26WiPCIPCgkIibTkrQYQpRASAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiJtOStBhCrEBICGAISAhgDGPbR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxiJDCKAIDAyODA1NDYxMjY2YTkwNjEzZjgxNTY1YjgwNjAxZjAxNjAyMDgwOTEwNDAyNjAyMDAxNjA0MDUxOTA4MTAxNjA0MDUyODA5MjkxOTA4MTgxNTI2MDIwMDE4MjgwNTQ2MTI2OTY5MDYxM2Y4MTU2NWI4MDE1NjEyNmUzNTc4MDYwMWYxMDYxMjZiODU3NjEwMTAwODA4MzU0MDQwMjgzNTI5MTYwMjAwMTkxNjEyNmUzNTY1YjgyMDE5MTkwNjAwMDUyNjAyMDYwMDAyMDkwNWI4MTU0ODE1MjkwNjAwMTAxOTA2MDIwMDE4MDgzMTE2MTI2YzY1NzgyOTAwMzYwMWYxNjgyMDE5MTViNTA1MDUwNTA1MDYwMjA4MjAxNTIzMDYwNDA4MjAxNTI2MGUwODEwMTgzOTA1MjYwMDA4MDYxMjcwYTgzNjBjODYwMDg2MTFmY2E1NjViOTA5MjUwOTA1MDYwMTY4MjE0NjEwOWVkNTc2MDAwODBmZDViNjA0MDgwNTE2MDAxODA4MjUyODE4MzAxOTA5MjUyNjA2MDkxODE2MDIwMDE1YjYxMjczYjYxMzM1NTU2NWI4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTI3MzM1NzkwNTA1MDkwNTA2MDAwNjEyNzVkODY4Njg2NjEzMGYzNTY1YjkwNTA2MDAwNjEyNzc2NjEyNzZmODg2MDAyNjE0MGE0NTY1Yjg3ODY2MTMwZjM1NjViOTA1MDgxODM2MDAwODE1MTgxMTA2MTI3OGM1NzYxMjc4YzYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwODA4MzYwMDA4MTUxODExMDYxMjdhYjU3NjEyN2FiNjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA1MDUwOTQ5MzUwNTA1MDUwNTY1YjYwNDA4MDUxNjAwMTgwODI1MjgxODMwMTkwOTI1MjYwNjA5MTgxNjAyMDAxNWI2MTI3ZGY2MTMyZjM1NjViODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjEyN2Q3NTc5MDUwNTA5MDUwNjA0MDUxODA2MDQwMDE2MDQwNTI4MDYxMjgwNzYwN2Y5MDU2NWI4MTUyNjAyMDAxNjEyODE2ODU4NTYxMzA2MDU2NWI4MTUyNTA4MTYwMDA4MTUxODExMDYxMjgyYzU3NjEyODJjNjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA5MjkxNTA1MDU2NWI2MDAwODA4MjgwNjEwMTAwMDE1MTYwMDAwMTUxNjNmZmZmZmZmZjE2NjAwMDE0ODAxNTYxMjg2ZDU3NTA2MTAxMDA4MTAxNTE2MDQwMDE1MTYzZmZmZmZmZmYxNjE1NWIxNTYxMjg4MzU3NjEwMTAwODEwMTUxNjI3NmE3MDA2MDQwOTA5MTAxNTI1YjYwMDA4MDYxMDE2NzYwMDE2MDAxNjBhMDFiMDMxNjM0NjM5ZGM3MTFlMDYwZTAxYjg4NjA0MDUxNjAyNDAxNjEyOGFjOTE5MDYxNDNlNDU2NWI2MDQwODA1MTYwMWYxOTgxODQwMzAxODE1MjkxODE1MjYwMjA4MjAxODA1MTYwMDE2MDAxNjBlMDFiMDMxNjYwMDE2MDAxNjBlMDFiMDMxOTkwOTQxNjkzOTA5MzE3OTA5MjUyOTA1MTYxMjhlYTkxOTA2MTNlZDM1NjViNjAwMDYwNDA1MTgwODMwMzgxODU4NzVhZjE5MjUwNTA1MDNkODA2MDAwODExNDYxMjkyNzU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMjkyYzU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEyOTNmNTc2MDE1NjAwMDYxMjk1MzU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMjk1MzkxOTA2MTQyMjI1NjViNjAwMzkxOTA5MTBiOTc5MDk2NTA5NDUwNTA1MDUwNTA1NjViNjA0MDgwNTE2MDAxODA4MjUyODE4MzAxOTA5MjUyNjA2MDkxODE2MDIwMDE1YjYxMjk4NDYxMzM4MzU2NWI4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTI5N2M1NzkwNTA1MDkwNTA2MDAwNjEyOWE3ODY4Njg2ODY2MTMyMTg1NjViOTA1MDgwODI2MDAwODE1MTgxMTA2MTI5YmQ1NzYxMjliZDYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNTA5NDkzNTA1MDUwNTA1NjViNjA0MDgwNTE2MDAxODA4MjUyODE4MzAxOTA5MjUyNjA2MDkxODE2MDIwMDE1YjYxMjlmMDYxMzM1NTU2NWI4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTI5ZTg1NzkwNTA1MDkwNTA2MDAwNjEyMmY2ODU4NTg1NjEzMjkzNTY1YjYxMmExYTYxMzM1NTU2NWI2M2ZmZmZmZmZmOTA5MjE2ODI1MjYwMDE2MDQwODMwMTgxOTA1MjYwNjA4MzAxNTI2MDAxNjAwMTYwYTAxYjAzMTY2MDgwODIwMTUyOTA1NjViNjA0MDgwNTE2MDAxODA4MjUyODE4MzAxOTA5MjUyNjA2MDkxODE2MDIwMDE1YjYxMmE2MjYxMzJmMzU2NWI4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTJhNWE1NzkwNTA1MDkwNTA2MDQwNTE4MDYwNDAwMTYwNDA1MjgwNjEyYThiODY2MTJmY2U1NjViODE1MjYwMjAwMTYxMmE5YTg1ODU2MTMwNjA1NjViODE1MjUwODE2MDAwODE1MTgxMTA2MTJhYjA1NzYxMmFiMDYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwOTM5MjUwNTA1MDU2NWI2MDQwODA1MTYwMDE4MDgyNTI4MTgzMDE5MDkyNTI2MDYwOTE4MTYwMjAwMTViNjEyYWUxNjEzMzU1NTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMmFkOTU3OTA1MDUwOTA1MDYwMDA2MTFkYmE4NDg0NjEzMTFlNTY1YjYwNDA4MDUxNjAwMTgwODI1MjgxODMwMTkwOTI1MjYwNjA5MTgxNjAyMDAxNWI2MTJiMjE2MTMzNTU1NjViODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjEyYjE5NTc5MDUwNTA5MDUwNjAwMDYxMWRiYTg0ODQ2MTJhMTI1NjViNjAwMDYxMmI0YzYxMzNiODU2NWI2MDAxODA1NDYxMmI1OTkwNjEzZjgxNTY1YjgwNjAxZjAxNjAyMDgwOTEwNDAyNjAyMDAxNjA0MDUxOTA4MTAxNjA0MDUyODA5MjkxOTA4MTgxNTI2MDIwMDE4MjgwNTQ2MTJiODU5MDYxM2Y4MTU2NWI4MDE1NjEyYmQyNTc4MDYwMWYxMDYxMmJhNzU3NjEwMTAwODA4MzU0MDQwMjgzNTI5MTYwMjAwMTkxNjEyYmQyNTY1YjgyMDE5MTkwNjAwMDUyNjAyMDYwMDAyMDkwNWI4MTU0ODE1MjkwNjAwMTAxOTA2MDIwMDE4MDgzMTE2MTJiYjU1NzgyOTAwMzYwMWYxNjgyMDE5MTViNTA1MDUwOTE4MzUyNTA1MDYwMDI4MDU0NjEyYmU3OTA2MTNmODE1NjViODA2MDFmMDE2MDIwODA5MTA0MDI2MDIwMDE2MDQwNTE5MDgxMDE2MDQwNTI4MDkyOTE5MDgxODE1MjYwMjAwMTgyODA1NDYxMmMxMzkwNjEzZjgxNTY1YjgwMTU2MTJjNjA1NzgwNjAxZjEwNjEyYzM1NTc2MTAxMDA4MDgzNTQwNDAyODM1MjkxNjAyMDAxOTE2MTJjNjA1NjViODIwMTkxOTA2MDAwNTI2MDIwNjAwMDIwOTA1YjgxNTQ4MTUyOTA2MDAxMDE5MDYwMjAwMTgwODMxMTYxMmM0MzU3ODI5MDAzNjAxZjE2ODIwMTkxNWI1MDUwNTA1MDUwNjAyMDgyMDE1MjMwNjA0MDgyMDE1MjYwZTA4MTAxODM5MDUyNjAwMTYwYzA4MjAxNTI2MDA0NTQ2MDA1NTQ2MDAwOTE4MjkxNjEyNzBhOTE4NTkxNjExZmNhNTY1YjYwNDA4MDUxNjAwMzgwODI1MjYwODA4MjAxOTA5MjUyNjA2MDkxODE2MDIwMDE1YjYxMmNiNDYxMzM4MzU2NWI4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTJjYWM1NzkwNTA1MDkwNTA2MDAwNjEyY2Q2ODc4Nzg1NjEzMmM1NTY1YjkwNTA2MDAwNjEyY2VhODg4ODg4NjAwMDYwMDE4OTYxMzI0ZDU2NWI5MDUwNjAwMDYxMmNmZDg5ODk4OTg5NjAwMDhhNjEzMjRkNTY1YjkwNTA4Mjg0NjAwMDgxNTE4MTEwNjEyZDEzNTc2MTJkMTM2MTNjNzU1NjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDgxODQ2MDAxODE1MTgxMTA2MTJkMzI1NzYxMmQzMjYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwODA4NDYwMDI4MTUxODExMDYxMmQ1MTU3NjEyZDUxNjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA1MDUwNTA5NTk0NTA1MDUwNTA1MDU2NWI2MDQwODA1MTYwMDE4MDgyNTI4MTgzMDE5MDkyNTI2MDYwOTE4MTYwMjAwMTViNjEyZDg3NjEzMzgzNTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMmQ3ZjU3OTA1MDUwOTA1MDYwMDA2MTIyZjY4NTg1ODU2MTMyYzU1NjViNjAwMDYxMmRiMzYxMzNiODU2NWI2MDAxODA1NDYxMmRjMDkwNjEzZjgxNTY1YjgwNjAxZjAxNjAyMDgwOTEwNDAyNjAyMDAxNjA0MDUxOTA4MTAxNjA0MDUyODA5MjkxOTA4MTgxNTI2MDIwMDE4MjgwNTQ2MTJkZWM5MDYxM2Y4MTU2NWI4MDE1NjEyZTM5NTc4MDYwMWYxMDYxMmUwZTU3NjEwMTAwODA4MzU0MDQwMjgzNTI5MTYwMjAwMTkxNjEyZTM5NTY1YjgyMDE5MTkwNjAwMDUyNjAyMDYwMDAyMDkwNWI4MTU0ODE1MjkwNjAwMTAxOTA2MDIwMDE4MDgzMTE2MTJlMWM1NzgyOTAwMzYwMWYxNjgyMDE5MTViNTA1MDUwOTE4MzUyNTA1MDYwMDI4MDU0NjEyZTRlOTA2MTNmODE1NjViODA2MDFmMDE2MDIwODA5MTA0MDI2MDIwMDE2MDQwNTE=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIws7BldqAlDz4BJaexXbmh1gddKsy0e9CiflbeCiBoIQuz0VamP6ReUYLnLQQAy75/GgwIxbTkrQYQo4zhvQIiDwoJCIm05K0GEKsQEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQiKtOStBhCxEBICGAISAhgDGPbR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxiJDCKAIDkwODEwMTYwNDA1MjgwOTI5MTkwODE4MTUyNjAyMDAxODI4MDU0NjEyZTdhOTA2MTNmODE1NjViODAxNTYxMmVjNzU3ODA2MDFmMTA2MTJlOWM1NzYxMDEwMDgwODM1NDA0MDI4MzUyOTE2MDIwMDE5MTYxMmVjNzU2NWI4MjAxOTE5MDYwMDA1MjYwMjA2MDAwMjA5MDViODE1NDgxNTI5MDYwMDEwMTkwNjAyMDAxODA4MzExNjEyZWFhNTc4MjkwMDM2MDFmMTY4MjAxOTE1YjUwNTA1MDUwNTA2MDIwODIwMTUyMzA2MDQwODA4MzAxOTE5MDkxNTI2MGUwODIwMTg0OTA1MjYwMDQ1NDYwMDU1NDkxNTE2MDAwOTI4MzkyNjEwMTY3OTI2Mzc4MTJhMDRiNjBlMDFiOTI2MTJmMGQ5Mjg4OTI5MDkxOTA2MDI0MDE2MTNlYWU1NjViNjA0MDgwNTE2MDFmMTk4MTg0MDMwMTgxNTI5MTgxNTI2MDIwODIwMTgwNTE2MDAxNjAwMTYwZTAxYjAzMTY2MDAxNjAwMTYwZTAxYjAzMTk5MDk0MTY5MzkwOTMxNzkwOTI1MjkwNTE2MTJmNGI5MTkwNjEzZWQzNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NjVhZjE5MTUwNTAzZDgwNjAwMDgxMTQ2MTJmODg1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTJmOGQ1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA2MDAwODA4MzYxMmZhMzU3NjAxNTYwMDA2MTJmYjc1NjViODI4MDYwMjAwMTkwNTE4MTAxOTA2MTJmYjc5MTkwNjE0MjIyNTY1YjkxNTA2MDAzMGI5MTUwNjAxNjYwMDMwYjgyMTQ2MTA4NTU1NzYwMDA4MGZkNWI2MDAwNjBmZjgyMTY2MTJmZTA1NzUwNjAwMTkxOTA1MDU2NWI4MTYwZmYxNjYwMDExNDE1NjEyZmY0NTc1MDYwMDI5MTkwNTA1NjViODE2MGZmMTY2MDAyMTQxNTYxMzAwODU3NTA2MDA0OTE5MDUwNTY1YjgxNjBmZjE2NjAwMzE0MTU2MTMwMWM1NzUwNjAwODkxOTA1MDU2NWI4MTYwZmYxNjYwMDQxNDE1NjEzMDMwNTc1MDYwMTA5MTkwNTA1NjViODE2MGZmMTY2MDA1MTQxNTYxMzA0NDU3NTA2MDIwOTE5MDUwNTY1YjgxNjBmZjE2NjAwNjE0MTU2MTMwNTg1NzUwNjA0MDkxOTA1MDU2NWI1MDYwMDA5MTkwNTA1NjViNjEzMDY4NjEzMzEyNTY1YjgyNjBmZjE2NjAwMTE0MTU2MTMwN2Q1NzYwMDE4MTUyNjEzMGVkNTY1YjgyNjBmZjE2NjAwMjE0MTU2MTMwOWY1NzYwMDA1NDYwMDE2MDAxNjBhMDFiMDMxNjYwMjA4MjAxNTI2MTMwZWQ1NjViODI2MGZmMTY2MDAzMTQxNTYxMzBiNzU3NjA0MDgxMDE4MjkwNTI2MTMwZWQ1NjViODI2MGZmMTY2MDA0MTQxNTYxMzBjZjU3NjA2MDgxMDE4MjkwNTI2MTMwZWQ1NjViODI2MGZmMTY2MDA1MTQxNTYxMzBlZDU3NjAwMDU0NjAwMTYwMDE2MGEwMWIwMzE2NjA4MDgyMDE1MjViOTI5MTUwNTA1NjViNjEzMGZiNjEzMzU1NTY1YjYzZmZmZmZmZmY5MDkzMTY4MzUyNjAwMTYwMDE2MGEwMWIwMzkxODIxNjYwMjA4NDAxNTIxNjYwODA4MjAxNTI5MDU2NWI2MTMxMjY2MTMzNTU1NjViNjNmZmZmZmZmZjkwOTIxNjgyNTI2MDAxNjA0MDgzMDE1MjYwMDE2MDAxNjBhMDFiMDMxNjYwODA4MjAxNTI5MDU2NWI2MTMxNTA2MTMzNTU1NjViNjNmZmZmZmZmZjkwOTIxNjgyNTI2MDAxNjA2MDgzMDE1MjYwMDE2MDAxNjBhMDFiMDMxNjYwODA4MjAxNTI5MDU2NWI2MTMxN2E2MTMzODM1NjViNjNmZmZmZmZmZjk2ODcxNjgxNTI5NDg2MTY2MDIwODYwMTUyOTI4NTE2NjA0MDg1MDE1MjkzMTY2MDYwODMwMTUyOTExNTE1NjA4MDgyMDE1MjYwMDE2MDAxNjBhMDFiMDM5MDkxMTY2MGEwODIwMTUyOTA1NjViNjAwMDYwMDE2MGZmODQxNjFiOTA1MDYwMDE2MGZmODMxNjFiODExNzYxMDYyYjU2NWI2MTMxZDc2MTMzMTI1NjViODI2MGZmMTY2MDAyMTQxNTYxMzFmNzU3NjAwMTYwMDE2MGEwMWIwMzgyMTY2MDIwODIwMTUyNjEzMGVkNTY1YjgyNjBmZjE2NjAwNTE0MTU2MTMwZWQ1NzYwMDE2MDAxNjBhMDFiMDM4MjE2NjA4MDgyMDE1MjkyOTE1MDUwNTY1YjYxMzIyMDYxMzM4MzU2NWI2M2ZmZmZmZmZmOTQ4NTE2ODE1MjkyOTA5MzE2NjAyMDgzMDE1MjE1MTU2MDgwODIwMTUyNjAwMTYwMDE2MGEwMWIwMzkwOTExNjYwYTA4MjAxNTI5MDU2NWI2MTMyNTU2MTMzODM1NjViNjNmZmZmZmZmZjk2ODcxNjgxNTI5NDg2MTY2MDIwODYwMTUyOTI5MDk0MTY2MDQwODQwMTUyNjAwMTYwMDE2MGEwMWIwMzkwODExNjYwNjA4NDAxNTI5MjE1MTU2MDgwODMwMTUyOTA5MTE2NjBhMDgyMDE1MjkwNTY1YjYxMzI5YjYxMzM1NTU2NWI2M2ZmZmZmZmZmOTA5MzE2ODM1MjYwMDE2MDAxNjBhMDFiMDM5MTgyMTY2MDIwODQwMTUyNjAwMTYwNDA4NDAxNTIxNjYwODA4MjAxNTI5MDU2NWI2MTMyY2Q2MTMzODM1NjViNjNmZmZmZmZmZjkzODQxNjgxNTI5MTkwOTIxNjYwMjA4MjAxNTI2MDAxNjAwMTYwYTAxYjAzOTA5MTE2NjBhMDgyMDE1MjkwNTY1YjYwNDA1MTgwNjA0MDAxNjA0MDUyODA2MDAwODE1MjYwMjAwMTYxMzMwZDYxMzMxMjU2NWI5MDUyOTA1NjViNjA0MDUxODA2MGEwMDE2MDQwNTI4MDYwMDAxNTE1ODE1MjYwMjAwMTYwMDA2MDAxNjAwMTYwYTAxYjAzMTY4MTUyNjAyMDAxNjA2MDgxNTI2MDIwMDE2MDYwODE1MjYwMjAwMTYwMDA2MDAxNjAwMTYwYTAxYjAzMTY4MTUyNTA5MDU2NWI2MDQwODA1MTYwYTA4MTAxODI1MjYwMDA4MDgyNTI2MDIwODIwMTgxOTA1MjkxODEwMTgyOTA1MjYwNjA4MTAxODI5MDUyNjA4MDgxMDE5MTkwOTE1MjkwNTY1YjYwNDA4MDUxNjBjMDgxMDE4MjUyNjAwMDgwODI1MjYwMjA4MjAxODE5MDUyOTE4MTAxODI5MDUyNjA2MDgxMDE4MjkwNTI2MDgwODEwMTgyOTA1MjYwYTA4MTAxOTE5MDkxNTI5MDU2NWI2MDQwNTE4MDYxMDEyMDAxNjA0MDUyODA2MDYwODE1MjYwMjAwMTYwNjA4MTUyNjAyMDAxNjAwMDYwMDE2MDAxNjBhMDFiMDMxNjgxNTI2MDIwMDE2MDYwODE1MjYwMjAwMTYwMDAxNTE1ODE1MjYwMjAwMTYwMDA2M2ZmZmZmZmZmMTY4MTUyNjAyMDAxNjAwMDE1MTU4MTUyNjAyMDAxNjA2MDgxNTI2MDIwMDE2MTMzMGQ2MDQwODA1MTYwNjA4MTAxODI1MjYwMDA4MDgyNTI2MDIwODIwMTgxOTA1MjkxODEwMTkxOTA5MTUyOTA1NjViNjM0ZTQ4N2I3MTYwZTAxYjYwMDA1MjYwNDE2MDA0NTI2MDI0NjAwMGZkNWI2MDQwNTE2MDFmODIwMTYwMWYxOTE2ODEwMTYwMDE2MDAxNjA0MDFiMDM4MTExODI4MjEwMTcxNTYxMzQ3MDU3NjEzNDcwNjEzNDMyNTY1YjYwNDA1MjkxOTA1MDU2NWI2MDAwNjAwMTYwMDE2MDQwMWIwMzgyMTExNTYxMzQ5MTU3NjEzNDkxNjEzNDMyNTY1YjUwNjAxZjAxNjAxZjE5MTY2MDIwMDE5MDU2NWI2MDAwODI2MDFmODMwMTEyNjEzNGIwNTc2MDAwODBmZDViODEzNTYxMzRjMzYxMzRiZTgyNjEzNDc4NTY1YjYxMzQ0ODU2NWI4MTgxNTI4NDYwMjA4Mzg2MDEwMTExMTU2MTM0ZDg1NzYwMDA4MGZkNWI4MTYwMjA4NTAxNjAyMDgzMDEzNzYwMDA5MTgxMDE2MDIwMDE5MTkwOTE1MjkzOTI1MDUwNTA1NjViNjAwMTYwMDE2MGEwMWIwMzgxMTY4MTE0NjEzNTBhNTc2MDAwODBmZDViNTA1NjViODAzNTYzZmZmZmZmZmY4MTE2ODExNDYxMzUyMTU3NjAwMDgwZmQ1YjkxOTA1MDU2NWI2MDAwODA2MDAwODA2MDAwNjBhMDg2ODgwMzEyMTU2MTM1M2U1NzYwMDA4MGZkNWI4NTM1NjAwMTYwMDE2MDQwMWIwMzgxMTExNTYxMzU1NDU3NjAwMDgwZmQ1YjYxMzU2MDg4ODI4OTAxNjEzNDlmNTY1Yjk1NTA1MDYwMjA4NjAxMzU2MTM1NzE4MTYxMzRmNTU2NWI5MzUwNjA0MDg2MDEzNTYxMzU4MTgxNjEzNGY1NTY1YjkyNTA2MDYwODYwMTM1NjEzNTkxODE2MTM0ZjU1NjViOTE1MDYxMzU5ZjYwODA4NzAxNjEzNTBkNTY1YjkwNTA5Mjk1NTA5Mjk1OTA5MzUwNTY1YjYwMDA4MDYwNDA4Mzg1MDMxMjE1NjEzNWJlNTc2MDAwODBmZDViNjEzNWM3ODM2MTM1MGQ1NjViOTE1MDYwMjA4MzAxMzU2MTM1ZDc4MTYxMzRmNTU2NWI4MDkxNTA1MDkyNTA5MjkwNTA1NjViNjAwMDgwNjAwMDgwNjAwMDgwNjAwMDgwNjEwMTAwODk4YjAzMTIxNTYxMzVmZjU3NjAwMDgwZmQ1Yjg4MzU2MTM2MGE4MTYxMzRmNTU2NWI5NzUwNjAyMDg5MDEzNTYwMDE2MDAxNjA0MDFiMDM4MDgyMTExNTYxMzYyNjU3NjAwMDgwZmQ1YjYxMzYzMjhjODM4ZDAxNjEzNDlmNTY1Yjk4NTA2MDQwOGIwMTM1OTE1MDgwODIxMTE1NjEzNjQ4NTc2MDAwODBmZDViNTA2MTM2NTU4YjgyOGMwMTYxMzQ5ZjU2NWI5NjUwNTA2MDYwODkwMTM1NjE=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwAnvorukWs1YoLZhefyZk/NTS7AzMpHDfFDesZhqfFQJ5j9Lt0rvyQD4XKTFKqZ/QGgsIxrTkrQYQ8+LtRSIPCgkIirTkrQYQsRASAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiKtOStBhC3EBICGAISAhgDGPbR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxiJDCKAIDM2NjY4MTYxMzRmNTU2NWI5NDUwNjA4MDg5MDEzNTYxMzY3NjgxNjEzNGY1NTY1YjkzNTA2MGEwODkwMTM1NjEzNjg2ODE2MTM0ZjU1NjViOTI1MDYxMzY5NDYwYzA4YTAxNjEzNTBkNTY1YjkxNTA2MGUwODkwMTM1NjEzNmE0ODE2MTM0ZjU1NjViODA5MTUwNTA5Mjk1OTg1MDkyOTU5ODkwOTM5NjUwNTY1YjYwMDA4MDYwNDA4Mzg1MDMxMjE1NjEzNmM4NTc2MDAwODBmZDViODIzNTYxMzZkMzgxNjEzNGY1NTY1YjkxNTA2MTM2ZTE2MDIwODQwMTYxMzUwZDU2NWI5MDUwOTI1MDkyOTA1MDU2NWI2MDAwODA2MDAwNjA2MDg0ODYwMzEyMTU2MTM2ZmY1NzYwMDA4MGZkNWI4MzM1NjEzNzBhODE2MTM0ZjU1NjViOTI1MDYwMjA4NDAxMzU2MTM3MWE4MTYxMzRmNTU2NWI5MTUwNjEzNzI4NjA0MDg1MDE2MTM1MGQ1NjViOTA1MDkyNTA5MjUwOTI1NjViNjAwMDgwNjAwMDYwNjA4NDg2MDMxMjE1NjEzNzQ2NTc2MDAwODBmZDViNjEzNzRmODQ2MTM1MGQ1NjViOTI1MDYwMjA4NDAxMzU2MTM3NWY4MTYxMzRmNTU2NWI5MTUwNjA0MDg0MDEzNTYxMzc2ZjgxNjEzNGY1NTY1YjgwOTE1MDUwOTI1MDkyNTA5MjU2NWI4MDM1NjBmZjgxMTY4MTE0NjEzNTIxNTc2MDAwODBmZDViODAxNTE1ODExNDYxMzUwYTU3NjAwMDgwZmQ1YjYwMDA4MDYwMDA4MDYwMDA4MDYwMDA4MDYxMDEwMDg5OGIwMzEyMTU2MTM3YjY1NzYwMDA4MGZkNWI2MTM3YmY4OTYxMzc3YTU2NWI5NzUwNjEzN2NkNjAyMDhhMDE2MTM3N2E1NjViOTY1MDYxMzdkYjYwNDA4YTAxNjEzNTBkNTY1Yjk1NTA2MTM3ZTk2MDYwOGEwMTYxMzUwZDU2NWI5NDUwNjEzN2Y3NjA4MDhhMDE2MTM1MGQ1NjViOTM1MDYwYTA4OTAxMzU2MTM4MDc4MTYxMzc4YjU2NWI5MjUwNjBjMDg5MDEzNTYxMzY5NDgxNjEzNGY1NTY1YjYwMDA4MDYwMDA2MDYwODQ4NjAzMTIxNTYxMzgyYzU3NjAwMDgwZmQ1YjgzMzU2MDAxNjAwMTYwNDAxYjAzODExMTE1NjEzODQyNTc2MDAwODBmZDViNjEzODRlODY4Mjg3MDE2MTM0OWY1NjViOTM1MDUwNjAyMDg0MDEzNTYxMzcxYTgxNjEzNGY1NTY1YjYwMDA4MDYwMDA4MDYwMDA4MDYwYzA4Nzg5MDMxMjE1NjEzODc4NTc2MDAwODBmZDViODYzNTYxMzg4MzgxNjEzNGY1NTY1Yjk1NTA2MDIwODcwMTM1NjEzODkzODE2MTM0ZjU1NjViOTQ1MDYwNDA4NzAxMzU2MTM4YTM4MTYxMzRmNTU2NWI5MzUwNjA2MDg3MDEzNTYxMzhiMzgxNjEzNGY1NTY1YjkyNTA2MTM4YzE2MDgwODgwMTYxMzUwZDU2NWI5MTUwNjBhMDg3MDEzNTYwMDE2MDAxNjA0MDFiMDM4MTExMTU2MTM4ZGM1NzYwMDA4MGZkNWI2MTM4ZTg4OTgyOGEwMTYxMzQ5ZjU2NWI5MTUwNTA5Mjk1NTA5Mjk1NTA5Mjk1NTY1YjYwMDA4MDYwMDA4MDYwODA4NTg3MDMxMjE1NjEzOTBiNTc2MDAwODBmZDViNjEzOTE0ODU2MTM3N2E1NjViOTM1MDYxMzkyMjYwMjA4NjAxNjEzNzdhNTY1YjkyNTA2MTM5MzA2MDQwODYwMTYxMzc3YTU2NWI5MTUwNjA2MDg1MDEzNTYwMDE2MDAxNjA0MDFiMDM4MTExMTU2MTM5NGI1NzYwMDA4MGZkNWI2MTM5NTc4NzgyODgwMTYxMzQ5ZjU2NWI5MTUwNTA5Mjk1OTE5NDUwOTI1MDU2NWI2MDAwODA2MDAwODA2MDgwODU4NzAzMTIxNTYxMzk3OTU3NjAwMDgwZmQ1Yjg0MzU2MTM5ODQ4MTYxMzRmNTU2NWI5MzUwNjAyMDg1MDEzNTYwMDE2MDAxNjA0MDFiMDM4MTExMTU2MTM5OWY1NzYwMDA4MGZkNWI2MTM5YWI4NzgyODgwMTYxMzQ5ZjU2NWI5MzUwNTA2MDQwODUwMTM1NjEzOWJjODE2MTM0ZjU1NjViOTE1MDYxMzljYTYwNjA4NjAxNjEzNTBkNTY1YjkwNTA5Mjk1OTE5NDUwOTI1MDU2NWI2MDAwODA2MDAwODA2MDgwODU4NzAzMTIxNTYxMzllYjU3NjAwMDgwZmQ1YjYxMzlmNDg1NjEzNTBkNTY1YjkzNTA2MTNhMDI2MDIwODYwMTYxMzUwZDU2NWI5MjUwNjA0MDg1MDEzNTYxM2ExMjgxNjEzNzhiNTY1YjkxNTA2MDYwODUwMTM1NjEzYTIyODE2MTM0ZjU1NjViOTM5NjkyOTU1MDkwOTM1MDUwNTY1YjYwMDA4MDYwMDA2MDYwODQ4NjAzMTIxNTYxM2E0MjU3NjAwMDgwZmQ1YjgzMzU2MTNhNGQ4MTYxMzRmNTU2NWI5MjUwNjEzNzVmNjAyMDg1MDE2MTM1MGQ1NjViNjAwMDgwNjAwMDgwNjA4MDg1ODcwMzEyMTU2MTNhNzE1NzYwMDA4MGZkNWI4NDM1NjAwMTYwMDE2MDQwMWIwMzgxMTExNTYxM2E4NzU3NjAwMDgwZmQ1YjYxM2E5Mzg3ODI4ODAxNjEzNDlmNTY1Yjk0NTA1MDYwMjA4NTAxMzU2MTNhYTQ4MTYxMzRmNTU2NWI5MjUwNjA0MDg1MDEzNTYxMzliYzgxNjEzNGY1NTY1YjYwMDA4MDYwMDA2MDYwODQ4NjAzMTIxNTYxM2FjOTU3NjAwMDgwZmQ1YjYxM2FkMjg0NjEzNzdhNTY1YjkyNTA2MTNhZTA2MDIwODUwMTYxMzc3YTU2NWI5MTUwNjA0MDg0MDEzNTYwMDE2MDAxNjA0MDFiMDM4MTExMTU2MTNhZmI1NzYwMDA4MGZkNWI2MTNiMDc4NjgyODcwMTYxMzQ5ZjU2NWI5MTUwNTA5MjUwOTI1MDkyNTY1YjYwMDA4MDYwNDA4Mzg1MDMxMjE1NjEzYjI0NTc2MDAwODBmZDViNjEzYjJkODM2MTM3N2E1NjViOTE1MDYwMjA4MzAxMzU2MDAxNjAwMTYwNDAxYjAzODExMTE1NjEzYjQ4NTc2MDAwODBmZDViNjEzYjU0ODU4Mjg2MDE2MTM0OWY1NjViOTE1MDUwOTI1MDkyOTA1MDU2NWI2MDAwODA2MDAwODA2MDAwODA2MGMwODc4OTAzMTIxNTYxM2I3NzU3NjAwMDgwZmQ1YjYxM2I4MDg3NjEzNTBkNTY1Yjk1NTA2MTNiOGU2MDIwODgwMTYxMzUwZDU2NWI5NDUwNjEzYjljNjA0MDg4MDE2MTM1MGQ1NjViOTM1MDYwNjA4NzAxMzU2MTNiYWM4MTYxMzc4YjU2NWI5MjUwNjA4MDg3MDEzNTYxM2JiYzgxNjEzNGY1NTY1YjkxNTA2MGEwODcwMTM1NjEzYmNjODE2MTM0ZjU1NjViODA5MTUwNTA5Mjk1NTA5Mjk1NTA5Mjk1NTY1YjYwMDA4MDYwMDA4MDYwODA4NTg3MDMxMjE1NjEzYmYwNTc2MDAwODBmZDViNjEzYmY5ODU2MTM1MGQ1NjViOTM1MDYwMjA4NTAxMzU2MTNjMDk4MTYxMzRmNTU2NWI5MjUwNjA0MDg1MDEzNTYxM2ExMjgxNjEzNGY1NTY1YjYwMDA4MDYwMDA4MDYwMDA4MDYwYzA4Nzg5MDMxMjE1NjEzYzMyNTc2MDAwODBmZDViNjEzYzNiODc2MTM1MGQ1NjViOTU1MDYxM2M0OTYwMjA4ODAxNjEzNTBkNTY1Yjk0NTA2MTNjNTc2MDQwODgwMTYxMzUwZDU2NWI5MzUwNjEzYzY1NjA2MDg4MDE2MTM1MGQ1NjViOTI1MDYwODA4NzAxMzU2MTNiYmM4MTYxMzc4YjU2NWI2MzRlNDg3YjcxNjBlMDFiNjAwMDUyNjAzMjYwMDQ1MjYwMjQ2MDAwZmQ1YjYwMDA1YjgzODExMDE1NjEzY2E2NTc4MTgxMDE1MTgzODIwMTUyNjAyMDAxNjEzYzhlNTY1YjgzODExMTE1NjEzY2I1NTc2MDAwODQ4NDAxNTI1YjUwNTA1MDUwNTY1YjYwMDA4MTUxODA4NDUyNjEzY2QzODE2MDIwODYwMTYwMjA4NjAxNjEzYzhiNTY1YjYwMWYwMTYwMWYxOTE2OTI5MDkyMDE2MDIwMDE5MjkxNTA1MDU2NWI2MDAwODE1MTgwODQ1MjYwMjA4MDg1MDE4MDgxOTY1MDgzNjAwNTFiODEwMTkxNTA4Mjg2MDE2MDAwNWI4NTgxMTAxNTYxM2Q5ZTU3ODI4NDAzODk1MjgxNTE2MDQwODE1MTg2NTI4NjgyMDE1MTkxNTA4MDg3ODcwMTUyODE1MTE1MTU4MTg3MDE1Mjg2ODIwMTUxNjA2MDYwMDE2MDAxNjBhMDFiMDM4MDgzMTY4MjhhMDE1MjgzODUwMTUxOTM1MDYwYTA5MjUwNjA4MDgzODE4YjAxNTI2MTNkNjA2MGUwOGIwMTg2NjEzY2JiNTY1YjkyODYwMTUxOGE4NDAzNjAzZjE5MDE4NThjMDE1MjkyOTQ1MDYxM2Q3Yzg1ODQ2MTNjYmI1NjViOTUwMTUxMTY2MGMwOTg5MDk4MDE5NzkwOTc1MjUwNTA5ODg1MDE5ODkzNTA5MDg0MDE5MDYwMDEwMTYxM2QwNTU2NWI1MDkxOTc5NjUwNTA1MDUwNTA1MDUwNTY1YjYwMDA2MTAxNjA4MjUxODE4NTUyNjEzZGMxODI4NjAxODI2MTNjYmI1NjViOTE1MDUwNjAyMDgzMDE1MTg0ODIwMzYwMjA4NjAxNTI2MTNkZGI4MjgyNjEzY2JiNTY1YjkxNTA1MDYwNDA4MzAxNTE2MTNkZjg2MDQwODYwMTgyNjAwMTYwMDE2MGEwMWIwMzE2OTA1MjU2NWI1MDYwNjA4MzAxNTE4NDgyMDM2MDYwODYwMTUyNjEzZTEwODI4MjYxM2NiYjU2NWI5MTUwNTA2MDgwODMwMTUxNjEzZTI2NjA4MDg2MDE4MjE1MTU5MDUyNTY1YjUwNjBhMDgzMDE1MTYxM2UzZTYwYTA4NjAxODI2M2ZmZmZmZmZmMTY5MDUyNTY1YjUwNjBjMDgzMDE1MTYxM2U1MjYwYzA4NjAxODIxNTE1OTA1MjU2NWI1MDYwZTA4MzAxNTE4NDgyMDM2MGUwODY=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwuccPbrL3IiSMSdwuVt6eniG3SF4m/cNHNoKMjhYyLiunylGOIQ3fsS4vXUBef5e6GgwIxrTkrQYQ64+RqwIiDwoJCIq05K0GELcQEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQiLtOStBhC9EBICGAISAhgDGLXG8zkiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBpBcSAxiJDCKcFzAxNTI2MTNlNmE4MjgyNjEzY2U3NTY1YjYxMDEwMDg1ODEwMTUxODA1MTYzZmZmZmZmZmY5MDgxMTY4OTg0MDE1MjYwMjA4MjAxNTE2MDAxNjAwMTYwYTAxYjAzMTY2MTAxMjA4YTAxNTI2MDQwODIwMTUxMTY2MTAxNDA4OTAxNTI5MTkzNTA5MTUwNTA5MDk0OTM1MDUwNTA1MDU2NWI2MDYwODE1MjYwMDA2MTNlYzE2MDYwODMwMTg2NjEzZGFiNTY1YjYwMjA4MzAxOTQ5MDk0NTI1MDYwNDAwMTUyOTE5MDUwNTY1YjYwMDA4MjUxNjEzZWU1ODE4NDYwMjA4NzAxNjEzYzhiNTY1YjkxOTA5MTAxOTI5MTUwNTA1NjViNjAwMDgwNjA0MDgzODUwMzEyMTU2MTNmMDI1NzYwMDA4MGZkNWI4MjUxOTE1MDYwMjA4MzAxNTE2MTM1ZDc4MTYxMzRmNTU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTNmMjY1NzYwMDA4MGZkNWI4MTUxNjAwMTYwMDE2MDQwMWIwMzgxMTExNTYxM2YzYzU3NjAwMDgwZmQ1YjgyMDE2MDFmODEwMTg0MTM2MTNmNGQ1NzYwMDA4MGZkNWI4MDUxNjEzZjViNjEzNGJlODI2MTM0Nzg1NjViODE4MTUyODU2MDIwODM4NTAxMDExMTE1NjEzZjcwNTc2MDAwODBmZDViNjEwZmMyODI2MDIwODMwMTYwMjA4NjAxNjEzYzhiNTY1YjYwMDE4MTgxMWM5MDgyMTY4MDYxM2Y5NTU3NjA3ZjgyMTY5MTUwNWI2MDIwODIxMDgxMTQxNTYxM2ZiNjU3NjM0ZTQ4N2I3MTYwZTAxYjYwMDA1MjYwMjI2MDA0NTI2MDI0NjAwMGZkNWI1MDkxOTA1MDU2NWI2MDAwODA4MzU0ODE2MDAxODI4MTFjOTE1MDgwODMxNjgwNjEzZmQ4NTc2MDdmODMxNjkyNTA1YjYwMjA4MDg0MTA4MjE0MTU2MTNmZjg1NzYzNGU0ODdiNzE2MGUwMWI4NjUyNjAyMjYwMDQ1MjYwMjQ4NmZkNWI4MTgwMTU2MTQwMGM1NzYwMDE4MTE0NjE0MDFkNTc2MTQwNGE1NjViNjBmZjE5ODYxNjg5NTI4NDg5MDE5NjUwNjE0MDRhNTY1YjYwMDA4YTgxNTI2MDIwOTAyMDYwMDA1Yjg2ODExMDE1NjE0MDQyNTc4MTU0OGI4MjAxNTI5MDg1MDE5MDgzMDE2MTQwMjk1NjViNTA1MDg0ODkwMTk2NTA1YjUwOTQ5ODk3NTA1MDUwNTA1MDUwNTA1MDU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTQwNmE1NzYwMDA4MGZkNWI1MDUxOTE5MDUwNTY1YjYwMDA2MDIwODI4NDAzMTIxNTYxNDA4MzU3NjAwMDgwZmQ1YjgxNTE2MTA2MmI4MTYxMzc4YjU2NWI2MzRlNDg3YjcxNjBlMDFiNjAwMDUyNjAxMTYwMDQ1MjYwMjQ2MDAwZmQ1YjYwMDA2M2ZmZmZmZmZmODA4MzE2ODE4NTE2ODE4MzA0ODExMTgyMTUxNTE2MTU2MTQwYzc1NzYxNDBjNzYxNDA4ZTU2NWIwMjk0OTM1MDUwNTA1MDU2NWI2MDAwODE1MTgwODQ1MjYwMjA4MDg1MDE5NDUwODA4NDAxNjAwMDViODM4MTEwMTU2MTQxNDA1NzgxNTE4MDUxNjNmZmZmZmZmZjE2ODg1MjgzODEwMTUxNjAwMTYwMDE2MGEwMWIwMzkwODExNjg1OGEwMTUyNjA0MDgwODMwMTUxMTUxNTkwOGEwMTUyNjA2MDgwODMwMTUxMTUxNTkwOGEwMTUyNjA4MDkxODIwMTUxMTY5MDg4MDE1MjYwYTA5MDk2MDE5NTkwODIwMTkwNjAwMTAxNjE0MGU0NTY1YjUwOTQ5NTk0NTA1MDUwNTA1MDU2NWI2MDAwNjBhMDgwODM1MjYxNDE1ZTgxODQwMTg5NjEzZGFiNTY1YjYwMjA4ODgxODYwMTUyNjA0MDg4ODE4NzAxNTI2MDYwODY4NDAzODE4ODAxNTI2MTQxN2Y4NDhhNjE0MGQwNTY1YjkzNTA2MDgwODc4NTAzODE4OTAxNTI4NDg5NTE4MDg3NTI4NTg3MDE5MTUwODU4YjAxOTY1MDYwMDA1YjgxODExMDE1NjE0MWZjNTc4NzUxODA1MTYzZmZmZmZmZmY5MDgxMTY4NTUyODg4MjAxNTE4MTE2ODk4NjAxNTI4NzgyMDE1MTgxMTY4ODg2MDE1Mjg2ODIwMTUxMTY4Njg1MDE1Mjg0ODEwMTUxMTUxNTg1ODUwMTUyODkwMTUxNjAwMTYwMDE2MGEwMWIwMzE2ODk4NDAxNTI5Njg2MDE5NjYwYzA5MDkyMDE5MTYwMDEwMTYxNDE5ZDU2NWI1MDkwOWU5ZDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1NjViODA1MTYwMDM4MTkwMGI4MTE0NjEzNTIxNTc2MDAwODBmZDViNjAwMDgwNjA0MDgzODUwMzEyMTU2MTQyMzU1NzYwMDA4MGZkNWI2MTQyM2U4MzYxNDIxMDU2NWI5MTUwNjAyMDgzMDE1MTYxMzVkNzgxNjEzNGY1NTY1YjYwMDA2MDIwODI4NDAzMTIxNTYxNDI2MDU3NjAwMDgwZmQ1YjYxMDYyYjgyNjE0MjEwNTY1YjYwMDA2MDYwODIwMTYwMDE2MDAxNjBhMDFiMDM4NjE2ODM1MjYwMjA2MDAxNjAwMTYwNDAxYjAzODYxNjgxODUwMTUyNjA2MDYwNDA4NTAxNTI4MTg1NTE4MDg0NTI2MDgwODYwMTkxNTA4Mjg3MDE5MzUwNjAwMDViODE4MTEwMTU2MTQyYzU1Nzg0NTE2MDA3MGI4MzUyOTM4MzAxOTM5MTgzMDE5MTYwMDEwMTYxNDJhNjU2NWI1MDkwOTg5NzUwNTA1MDUwNTA1MDUwNTA1NjViNjAwMDgwNjA0MDgzODUwMzEyMTU2MTQyZTY1NzYwMDA4MGZkNWI2MTQyZWY4MzYxNDIxMDU2NWI5MTUwNjAyMDgzMDE1MTYwMDE2MDAxNjA0MDFiMDM4MTE2ODExNDYxMzVkNzU3NjAwMDgwZmQ1YjYwMDA2MGZmODIxNjYwZmY4MTE0MTU2MTQzMjI1NzYxNDMyMjYxNDA4ZTU2NWI2MDAxMDE5MjkxNTA1MDU2NWI2MDAwNjA2MDgwODM1MjYxNDMzZTgxODQwMTg3NjEzZGFiNTY1YjYwMjA4NDgyMDM4MTg2MDE1MjYxNDM1MTgyODg2MTQwZDA1NjViOTE1MDYwNDA4NTgzMDM4MTg3MDE1MjgyODc1MTgwODU1MjgzODUwMTkxNTA4Mzg5MDE5NDUwNjAwMDViODE4MTEwMTU2MTQzZDQ1Nzg1NTE4MDUxNjNmZmZmZmZmZjkwODExNjg1NTI4NjgyMDE1MTgxMTY4Nzg2MDE1Mjg1ODIwMTUxMTY4NTg1MDE1Mjg3ODEwMTUxNjAwMTYwMDE2MGEwMWIwMzkwODExNjg5ODYwMTUyNjA4MDgwODMwMTUxMTUxNTkwODYwMTUyNjBhMDkxODIwMTUxMTY5MDg0MDE1Mjk0ODQwMTk0NjBjMDkwOTIwMTkxNjAwMTAxNjE0MzZmNTY1YjUwOTA5YTk5NTA1MDUwNTA1MDUwNTA1MDUwNTA1NjViNjAyMDgxNTI2MDAwNjEwNjJiNjAyMDgzMDE4NDYxM2RhYjU2ZmVhMjY0Njk3MDY2NzM1ODIyMTIyMDE4MDgzNjFlNDFlNzhiYzE1YzFiZDA1ZDBmZjc3M2YyZDQ4YzU4M2E5ZDA2OGJmY2VkZmRmNmY0ZjRkODRhNTE2NDczNmY2YzYzNDMwMDA4MGIwMDMz","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwOaTClZ6gW9wbhs9IKsWzYh5hStDAdUa1RGiI8vRXTvF6n3t2gpnlpBInJ1lar2X7GgsIx7TkrQYQk/SMWSIPCgkIi7TkrQYQvRASAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiLtOStBhC/EBICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGIkMGiISILeCP5QZosL3WRr4qTVsf7SfB/AzT7mvDLWDb2hXwiN4IMCEPUIFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"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"},{"b64Body":"Cg8KCQiMtOStBhDBEBICGAISAhgDGOKq+dYCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAS4KDkVYSVNUSU5HX1RPS0VOEghCVktURUxHQyCQTioCGAJqCwjIgr+xBhCIz+tH","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGIsMEjDgv3VBNqb+p2SuXy7YM8fAvM/GyjgOxNZe+L9LwUsMQPAswvtdBrFeEvnR8NyoNAMaCwjItOStBhCb/s5iIg8KCQiMtOStBhDBEBICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgBaDwoDGIsMEggKAhgCEKCcAXIJCgMYiwwSAhgC"},{"b64Body":"Cg8KCQiMtOStBhDHEBICGAISAhgDGOC2iyAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGIgMEgMYiww=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwl6vT2mRgcqzU6F34G25CPze3hMJPx2zTnxrVTGW08CshsQMXVzuQv0p7FOhqDeNzGgwIyLTkrQYQq8W6yAIiDwoJCIy05K0GEMcQEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"ChAKCQiNtOStBhDJEBIDGIcMEgIYAxjAv+0hIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46lgIKAxiKDBDAhD0YgKjWuQcihAIJHMiZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHoSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhAgr0Q4oO0kr02B2k/nXP/hA+Lx1L4PEffVPilWKyP7LLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==","b64Record":"CiUIFiIDGIoMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAaaaM/qmTFP2y/DKcTpEoEyTvMcejrItcbPdRUVJ6zOIY6xnjQc83GGf8eH0+HVgIaCwjJtOStBhCL9MNsIhAKCQiNtOStBhDJEBIDGIcMKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCA5oobOq4CCgMYigwSIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYMIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACiA6jBSJgoKCgIYYhDim9rNDAoLCgMYhwwQ/5vCqQ8KCwoDGIoMEJ6A6NsC"},{"b64Body":"ChIKCQiNtOStBhDJEBIDGIcMIAHqAZsBCgl0b2tlbk5hbWUSC3Rva2VuU3ltYm9sGAggyAEqAxiKDDIjOiECCvRDig7SSvTYHaT+dc/+ED4vHUvg8R99U+KVYrI/sstyAxiGDHoFCICk6AOCAQRtZW1vqgEOCgcIARIDGIsMGgMYiAyqAQkKAggCGgMYiAyqAQsKBAgEEgAaAxiIDKoBExIMCgQIBBAFEAoYHiABGgMYiAw=","b64Record":"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"}]},"GasLimitOverMaxGasLimitFailsPrecheck":{"placeholderNum":1549,"encodedItems":[{"b64Body":"Cg8KCQiStOStBhD0EBICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAjOgr+xBhDg//DDARptCiISIC7rQz4MvQuxWdXFYo1Te69SLWzqp8mxQVRuSZzHZGTJCiM6IQMxo3PtRNLzS9o/fF3TZ+qLxQDMrX+SQalAe9xkyAys/woiEiCp9QcRA4gLKRcSCZrWDgra4vKVCz//ZJ3Mp5YTwT/KFyIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGI4MKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAaP7BxDC8vWPKkbLFzfsiOokqciaHwJ46gyi2V/SSCZMM69GV7iSavS8ImJiJW7NEaDAjOtOStBhCrn//UASIPCgkIkrTkrQYQ9BASAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiStOStBhD4EBICGAISAhgDGNzJ7TEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBjAoKAxiODCKECjYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMDI2MjgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDA0YzU3NjAwMDM1NjBlMDFjODA2MzFhYjA2ZWU1MTQ2MTAwNTE1NzgwNjNiOWNhZWJmNDE0NjEwMDZkNTc4MDYzYzMwMzY1ZDIxNDYxMDA4OTU3ODA2M2VkZWQ5N2ZhMTQ2MTAwYTc1NzViNjAwMDgwZmQ1YjYxMDA2YjYwMDQ4MDM2MDM4MTAxOTA2MTAwNjY5MTkwNjEwMTM3NTY1YjYxMDBjNTU2NWIwMDViNjEwMDg3NjAwNDgwMzYwMzgxMDE5MDYxMDA4MjkxOTA2MTAxZDU1NjViNjEwMGQ3NTY1YjAwNWI2MTAwOTE2MTAwZjA1NjViNjA0MDUxNjEwMDllOTE5MDYxMDIxMTU2NWI2MDQwNTE4MDkxMDM5MGYzNWI2MTAwYWY2MTAwZjY1NjViNjA0MDUxNjEwMGJjOTE5MDYxMDIxMTU2NWI2MDQwNTE4MDkxMDM5MGYzNWI4MTYwMDA4MTkwNTU1MDgwNjAwMTgxOTA1NTUwNTA1MDU2NWI4MDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ZmY1YjYwMDE1NDgxNTY1YjYwMDA1NDgxNTY1YjYwMDA4MGZkNWI2MDAwODE5MDUwOTE5MDUwNTY1YjYxMDExNDgxNjEwMTAxNTY1YjgxMTQ2MTAxMWY1NzYwMDA4MGZkNWI1MDU2NWI2MDAwODEzNTkwNTA2MTAxMzE4MTYxMDEwYjU2NWI5MjkxNTA1MDU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMDE0ZTU3NjEwMTRkNjEwMGZjNTY1YjViNjAwMDYxMDE1Yzg1ODI4NjAxNjEwMTIyNTY1YjkyNTA1MDYwMjA2MTAxNmQ4NTgyODYwMTYxMDEyMjU2NWI5MTUwNTA5MjUwOTI5MDUwNTY1YjYwMDA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MjE2OTA1MDkxOTA1MDU2NWI2MDAwNjEwMWEyODI2MTAxNzc1NjViOTA1MDkxOTA1MDU2NWI2MTAxYjI4MTYxMDE5NzU2NWI4MTE0NjEwMWJkNTc2MDAwODBmZDViNTA1NjViNjAwMDgxMzU5MDUwNjEwMWNmODE2MTAxYTk1NjViOTI5MTUwNTA1NjViNjAwMDYwMjA4Mjg0MDMxMjE1NjEwMWViNTc2MTAxZWE2MTAwZmM1NjViNWI2MDAwNjEwMWY5ODQ4Mjg1MDE2MTAxYzA1NjViOTE1MDUwOTI5MTUwNTA1NjViNjEwMjBiODE2MTAxMDE1NjViODI1MjUwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDYxMDIyNjYwMDA4MzAxODQ2MTAyMDI1NjViOTI5MTUwNTA1NmZlYTI2NDY5NzA2NjczNTgyMjEyMjA0NjJmNjM0OGJlN2RjNWQ0Y2IyZmRkMjE0MGFmOTQ3NzYzM2Y0MjJlMDg1ZmJmMWU1M2QxODlkMGUzYWQ1ODE5NjQ3MzZmNmM2MzQzMDAwODBjMDAzMw==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwgexJmRmquqQZ/zDvACgcNNIk9AQ2rr67wXI0D4TolP25w25iWshe5v1bUpR5M8ARGgwIzrTkrQYQ+6TuuQMiDwoJCJK05K0GEPgQEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQiTtOStBhD6EBICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGI4MGiISIKQ66Bxw9KgKXljs37QAsHZng0ybWO7WycDxdoyifGc7IOCnEkIFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGI8MKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCSmnQ/ghj1DQnEtJUuIct3jNqvKf95vwRtqJQo8hDVF05vYYFOKbXXp3yL9/K6FBEaDAjPtOStBhCr283eASIPCgkIk7TkrQYQ+hASAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCAhZAIQpcHCgMYjwwS4gRggGBAUjSAFWEAEFdgAID9W1BgBDYQYQBMV2AANWDgHIBjGrBu5RRhAFFXgGO5yuv0FGEAbVeAY8MDZdIUYQCJV4Bj7e2X+hRhAKdXW2AAgP1bYQBrYASANgOBAZBhAGaRkGEBN1ZbYQDFVlsAW2EAh2AEgDYDgQGQYQCCkZBhAdVWW2EA11ZbAFthAJFhAPBWW2BAUWEAnpGQYQIRVltgQFGAkQOQ81thAK9hAPZWW2BAUWEAvJGQYQIRVltgQFGAkQOQ81uBYACBkFVQgGABgZBVUFBQVluAc///////////////////////////Fv9bYAFUgVZbYABUgVZbYACA/VtgAIGQUJGQUFZbYQEUgWEBAVZbgRRhAR9XYACA/VtQVltgAIE1kFBhATGBYQELVluSkVBQVltgAIBgQIOFAxIVYQFOV2EBTWEA/FZbW2AAYQFchYKGAWEBIlZbklBQYCBhAW2FgoYBYQEiVluRUFCSUJKQUFZbYABz//////////////////////////+CFpBQkZBQVltgAGEBooJhAXdWW5BQkZBQVlthAbKBYQGXVluBFGEBvVdgAID9W1BWW2AAgTWQUGEBz4FhAalWW5KRUFBWW2AAYCCChAMSFWEB61dhAephAPxWW1tgAGEB+YSChQFhAcBWW5FQUJKRUFBWW2ECC4FhAQFWW4JSUFBWW2AAYCCCAZBQYQImYACDAYRhAgJWW5KRUFBW/qJkaXBmc1giEiBGL2NIvn3F1Msv3SFAr5R3Yz9CLghfvx5T0YnQ461YGWRzb2xjQwAIDAAzIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACiA0w46AxiPDEoWChQAAAAAAAAAAAAAAAAAAAAAAAAGD3IHCgMYjwwQAVIWCgkKAhgCEP+JoBAKCQoCGGIQgIqgEA=="}]},"nonFungibleTokenCreateWithFeesHappyPath":{"placeholderNum":1552,"encodedItems":[{"b64Body":"Cg8KCQiatOStBhChERICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiM6IQJX7yiVS1jZzW+Y6V4KLu/Qp9F5yIc9JyuhFbScxlW7YBCAgOmDsd4WSgUIgM7aAw==","b64Record":"CiUIFhIDGJEMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAgGQNJp70hsb4IEofPpcXy+bum7oarQ9TdJ+Uad+B+J7pRwc0guiZFS4CZsy1NlDkaDAjWtOStBhDb/qaSASIPCgkImrTkrQYQoRESAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIdCgwKAhgCEP//0YfivC0KDQoDGJEMEICA0ofivC0="},{"b64Body":"Cg8KCQiatOStBhCjERICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIAeQtl7hpNXsXq7jndjbL7g7F7f4tqbS1nRUzc8pCpmzEIDIr6AlSgUIgM7aAw==","b64Record":"CiUIFhIDGJIMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjC+uM8SNtaNoF2BWV9CMrw68CkbgdjWx6sakk1fhz9MwfSM/RNaJ8YQof2v1A7T7bwaDAjWtOStBhDj7Pv2AiIPCgkImrTkrQYQoxESAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxiSDBCAkN/ASg=="},{"b64Body":"Cg8KCQibtOStBhClERICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAjXgr+xBhCIlJ6DARptCiISIO1CYp9kWNxBSKUP2eo1AhU4S7omcH34NlmFJGYvioQDCiM6IQLMpLFslu0E7YOvta3M1KxGLSdJMcverk5Iaf2o1HxIEwoiEiCvDj7MoT0LIgFh0AXl3r7kY7chcQ5bPkmMHzqoeuxMtyIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGJMMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBNZqyJH1n167aQ7++u+xex82h3uvhuNFdDwF+CBQY6/m/KniwZ3cqvaxXT+DhrXg4aDAjXtOStBhCTjuKbASIPCgkIm7TkrQYQpRESAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQibtOStBhCpERICGAISAhgDGIydjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxiTDCKAIDYwYzA2MDQwNTI2MDA5NjA4MDgxOTA1MjY4NzQ2ZjZiNjU2ZTRlNjE2ZDY1NjBiODFiNjBhMDkwODE1MjYyMDAwMDJjOTE2MDAxOTE5MDYyMDAwMGFlNTY1YjUwNjA0MDgwNTE4MDgyMDE5MDkxNTI2MDBiODA4MjUyNmExZDFiZGFkOTViOTRkZTViNTg5YmRiNjBhYTFiNjAyMDkwOTIwMTkxODI1MjYyMDAwMDYxOTE2MDAyOTE2MjAwMDBhZTU2NWI1MDYwNDA4MDUxODA4MjAxOTA5MTUyNjAwNDgwODI1MjYzNmQ2NTZkNmY2MGUwMWI2MDIwOTA5MjAxOTE4MjUyNjIwMDAwOGY5MTYwMDM5MTYyMDAwMGFlNTY1YjUwNjBjODYwMDQ1NTYwMDg2MDA1NTUzNDgwMTU2MjAwMDBhNzU3NjAwMDgwZmQ1YjUwNjIwMDAxOTE1NjViODI4MDU0NjIwMDAwYmM5MDYyMDAwMTU0NTY1YjkwNjAwMDUyNjAyMDYwMDAyMDkwNjAxZjAxNjAyMDkwMDQ4MTAxOTI4MjYyMDAwMGUwNTc2MDAwODU1NTYyMDAwMTJiNTY1YjgyNjAxZjEwNjIwMDAwZmI1NzgwNTE2MGZmMTkxNjgzODAwMTE3ODU1NTYyMDAwMTJiNTY1YjgyODAwMTYwMDEwMTg1NTU4MjE1NjIwMDAxMmI1NzkxODIwMTViODI4MTExMTU2MjAwMDEyYjU3ODI1MTgyNTU5MTYwMjAwMTkxOTA2MDAxMDE5MDYyMDAwMTBlNTY1YjUwNjIwMDAxMzk5MjkxNTA2MjAwMDEzZDU2NWI1MDkwNTY1YjViODA4MjExMTU2MjAwMDEzOTU3NjAwMDgxNTU2MDAxMDE2MjAwMDEzZTU2NWI2MDAxODE4MTFjOTA4MjE2ODA2MjAwMDE2OTU3NjA3ZjgyMTY5MTUwNWI2MDIwODIxMDgxMTQxNTYyMDAwMThiNTc2MzRlNDg3YjcxNjBlMDFiNjAwMDUyNjAyMjYwMDQ1MjYwMjQ2MDAwZmQ1YjUwOTE5MDUwNTY1YjYxNDQyZDgwNjIwMDAxYTE2MDAwMzk2MDAwZjNmZTYwODA2MDQwNTI2MDA0MzYxMDYxMDFlZTU3NjAwMDM1NjBlMDFjODA2MzZmNThiOWQ5MTE2MTAxMGQ1NzgwNjNiYWZjYWY3YTExNjEwMGEwNTc4MDYzZDU3NDQ4YWExMTYxMDA2ZjU3ODA2M2Q1NzQ0OGFhMTQ2MTA0YmE1NzgwNjNkNmZhNDBhZTE0NjEwNGRhNTc4MDYzZTdiMDdjYjYxNDYxMDRlZDU3ODA2M2ZjOGRmMmRhMTQ2MTA1MGQ1NzgwNjNmZTczODZlMTE0NjEwNTIyNTc2MDAwODBmZDViODA2M2JhZmNhZjdhMTQ2MTA0NTI1NzgwNjNjNWNlOWVhNzE0NjEwNDcyNTc4MDYzYzcyZTk3ZjQxNDYxMDQ5MjU3ODA2M2QyMzI0ZGIwMTQ2MTA0YTc1NzYwMDA4MGZkNWI4MDYzOTBlZjc5YzIxMTYxMDBkYzU3ODA2MzkwZWY3OWMyMTQ2MTAzZWE1NzgwNjM5ZDU2MGNiNDE0NjEwM2YyNTc4MDYzYWI4ZDMwZmQxNDYxMDQxMjU3ODA2M2I5MTRiYjc5MTQ2MTA0MzI1NzYwMDA4MGZkNWI4MDYzNmY1OGI5ZDkxNDYxMDNhNzU3ODA2Mzc3ZWQ0YWIyMTQ2MTAzYWY1NzgwNjM4MDFlY2RiZjE0NjEwM2MyNTc4MDYzOGU5M2JjMzMxNDYxMDNjYTU3NjAwMDgwZmQ1YjgwNjMxZmRjODE3ZTExNjEwMTg1NTc4MDYzMzljNDA1MmMxMTYxMDE1NDU3ODA2MzM5YzQwNTJjMTQ2MTAzMzQ1NzgwNjM0NzUzMzdhZDE0NjEwMzU0NTc4MDYzNTUxNjdmMGUxNDYxMDM2NzU3ODA2MzViZTJhMDI2MTQ2MTAzODc1NzYwMDA4MGZkNWI4MDYzMWZkYzgxN2UxNDYxMDJkYjU3ODA2MzI0NTUzMjA2MTQ2MTAyZWU1NzgwNjMyZjNlMGMxMjE0NjEwMzAxNTc4MDYzMzc3YTMyOWYxNDYxMDMxNDU3NjAwMDgwZmQ1YjgwNjMxMmI4OTk0NjExNjEwMWMxNTc4MDYzMTJiODk5NDYxNDYxMDI2ODU3ODA2MzE1MGE5ZmY1MTQ2MTAyODg1NzgwNjMxYzk4NDUwNTE0NjEwMmE4NTc4MDYzMWZhNmE2OTYxNDYxMDJiYjU3NjAwMDgwZmQ1YjgwNjMwOTFjYzg5OTE0NjEwMWYzNTc4MDYzMTE2ODRmNTMxNDYxMDIyMjU3ODA2MzExOTFhMjcyMTQ2MTAyNDI1NzgwNjMxMjk1MTIzYzE0NjEwMjU1NTc1YjYwMDA4MGZkNWI2MTAyMDY2MTAyMDEzNjYwMDQ2MTM1MjY1NjViNjEwNTM3NTY1YjYwNDA1MTYwMDE2MDAxNjBhMDFiMDM5MDkxMTY4MTUyNjAyMDAxNjA0MDUxODA5MTAzOTBmMzViMzQ4MDE1NjEwMjJlNTc2MDAwODBmZDViNTA2MTAyMDY2MTAyM2QzNjYwMDQ2MTM1YWI1NjViNjEwNjA3NTY1YjYxMDIwNjYxMDI1MDM2NjAwNDYxMzVlMjU2NWI2MTA2MzI1NjViNjEwMjA2NjEwMjYzMzY2MDA0NjEzNmI1NTY1YjYxMDdlNzU2NWIzNDgwMTU2MTAyNzQ1NzYwMDA4MGZkNWI1MDYxMDIwNjYxMDI4MzM2NjAwNDYxMzZlYTU2NWI2MTA4NWY1NjViMzQ4MDE1NjEwMjk0NTc2MDAwODBmZDViNTA2MTAyMDY2MTAyYTMzNjYwMDQ2MTM3MzE1NjViNjEwOWQ1NTY1YjYxMDIwNjYxMDJiNjM2NjAwNDYxMzZiNTU2NWI2MTA5ZjU1NjViMzQ4MDE1NjEwMmM3NTc2MDAwODBmZDViNTA2MTAyMDY2MTAyZDYzNjYwMDQ2MTM3OTk1NjViNjEwYWI1NTY1YjYxMDIwNjYxMDJlOTM2NjAwNDYxMzZiNTU2NWI2MTBhZGE1NjViNjEwMjA2NjEwMmZjMzY2MDA0NjEzODE3NTY1YjYxMGI2MzU2NWI2MTAyMDY2MTAzMGYzNjYwMDQ2MTM4NWY1NjViNjEwZWExNTY1YjM0ODAxNTYxMDMyMDU3NjAwMDgwZmQ1YjUwNjEwMjA2NjEwMzJmMzY2MDA0NjEzOGY1NTY1YjYxMGZhYzU2NWIzNDgwMTU2MTAzNDA1NzYwMDA4MGZkNWI1MDYxMDIwNjYxMDM0ZjM2NjAwNDYxMzczMTU2NWI2MTBmY2I1NjViNjEwMjA2NjEwMzYyMzY2MDA0NjEzOTYzNTY1YjYxMGZlNTU2NWIzNDgwMTU2MTAzNzM1NzYwMDA4MGZkNWI1MDYxMDIwNjYxMDM4MjM2NjAwNDYxMzlkNTU2NWI2MTEwMjg1NjViMzQ4MDE1NjEwMzkzNTc2MDAwODBmZDViNTA2MTAyMDY2MTAzYTIzNjYwMDQ2MTNhMmQ1NjViNjExMDQzNTY1YjYxMDIwNjYxMTA1YjU2NWI2MTAyMDY2MTAzYmQzNjYwMDQ2MTNhNWI1NjViNjExMDZkNTY1YjYxMDIwNjYxMTFjYjU2NWIzNDgwMTU2MTAzZDY1NzYwMDA4MGZkNWI1MDYxMDIwNjYxMDNlNTM2NjAwNDYxM2FiNDU2NWI2MTEzMWI1NjViNjEwMjA2NjExMzJiNTY1YjM0ODAxNTYxMDNmZTU3NjAwMDgwZmQ1YjUwNjEwMjA2NjEwNDBkMzY2MDA0NjEzYjExNTY1YjYxMTM0NDU2NWIzNDgwMTU2MTA0MWU1NzYwMDA4MGZkNWI1MDYxMDIwNjYxMDQyZDM2NjAwNDYxM2I1ZTU2NWI2MTEzNTM1NjViMzQ4MDE1NjEwNDNlNTc2MDAwODBmZDViNTA2MTAyMDY2MTA0NGQzNjYwMDQ2MTNiZGE1NjViNjExMzgxNTY1YjM0ODAxNTYxMDQ1ZTU3NjAwMDgwZmQ1YjUwNjEwMjA2NjEwNDZkMzY2MDA0NjEzNWFiNTY1YjYxMTM5YTU2NWIzNDgwMTU2MTA0N2U1NzYwMDA4MGZkNWI1MDYxMDIwNjYxMDQ4ZDM2NjAwNDYxM2MxOTU2NWI2MTEzYjE1NjViMzQ4MDE1NjEwNDllNTc2MDAwODBmZDViNTA2MTAyMDY2MTEzY2U1NjViNjEwMjA2NjEwNGI1MzY2MDA0NjEzODVmNTY1YjYxMTNlMDU2NWIzNDgwMTU2MTA0YzY1NzYwMDA4MGZkNWI1MDYxMDIwNjYxMDRkNTM2NjAwNDYxMzczMTU2NWI2MTE0ZWE1NjViNjEwMjA2NjEwNGU4MzY2MDA0NjEzNmVhNTY1YjYxMTUwMjU2NWIzNDgwMTU2MTA0Zjk1NzYwMDA4MGZkNWI1MDYxMDIwNjYxMDUwODM2NjAwNDYxMzVhYjU2NWI2MTE3YTk1NjViMzQ4MDE1NjEwNTE5NTc2MDAwODBmZDViNTA2MTAyMDY2MTE3YzA1NjViMzQ4MDE1NjEwNTJlNTc2MDAwODBmZDViNTA2MTAyMDY2MTE3ZDI1NjViNjA0MDgwNTE2MDAxODA4MjUyODE4MzAxOTA5MjUyNjAwMDkxODI5MTkwODE2MDIwMDE1YjYxMDU1OTYxMzJmMzU2NWI4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTA1NTE1NzkwNTA1MDkwNTA2MTA1N2I2MDAwNjAwNDg5NjExN2YzNTY1YjgxNjAwMDgxNTE4MTEwNjEwNThlNTc2MTA1OGU2MTNjNzU1NjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDYwMDA2MTA1YTkzMDYwMDA4Nzg3ODY2MTE4Mjg1NjViOTA1MDYwMDA2MTA1Yjk2MDAxODg4YTYxMWEzNTU2NWI5MDUwNjAwMDYxMDVkMDYwMDQ2MDA1NjAwYTYwMWU2MDAxOGU2MTFiMTA1NjViOTA1MDYwMDA4MDYxMDVlNjg1NjAwNDU0NjAwNTU0ODc4NzYxMWI4MDU2NWI5MDkyNTA5MDUwNjAxNjgyMTQ2MTA1Zjg1NzYwMDA4MGZkNWI5YjlhNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDU2NWI2MDAwNjEwNjJiNjEwNjE0NjExY2I0NTY1YjYxMDYxZTg1ODU2MTFkN2E1NjViNjEwNjI2NjExZGUyNTY1YjYxMWUxYjU2NWI5MzkyNTA1MDUwNTY1YjYwNDA4MDUxNjAwNTgwODI1MjYwYzA4MjAxOTA5MjUyNjAwMDkxODI5MTkwODE2MDIwMDE1YjYxMDY1NTYxMzJmMzU2NWI4MTUyNjAyMDAxOTA2MDAxOTA=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw5F4iJVgofrCQ5F0pudDR2ot6O0i7q+fPQDKKhvQxuctdHyB2yG0gEpa08LoJIh9tGgwI17TkrQYQw7vjgAMiDwoJCJu05K0GEKkREgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQictOStBhCvERICGAISAhgDGPjR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxiTDCKAIDAzOTA4MTYxMDY0ZDU3OTA1MDUwOTA1MDYxMDY3OTYwMDA2MDAxNjAwMzhjNjExZjY4NTY1YjgxNjAwMDgxNTE4MTEwNjEwNjhjNTc2MTA2OGM2MTNjNzU1NjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDYxMDZhNjYwMDI2MDAzNjAwNDhiNjExZjY4NTY1YjgxNjAwMTgxNTE4MTEwNjEwNmI5NTc2MTA2Yjk2MTNjNzU1NjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDYxMDZkMTYwMDQ2MDAyODk2MTFmOWY1NjViODE2MDAyODE1MTgxMTA2MTA2ZTQ1NzYxMDZlNDYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNjEwNmZiNjAwNTgwODg2MTFmOWY1NjViODE2MDAzODE1MTgxMTA2MTA3MGU1NzYxMDcwZTYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNjEwNzM1NjAwNjYwMDE2MDQwNTE4MDYwMjAwMTYwNDA1MjgwNjAwMDgxNTI1MDYxMTdmMzU2NWI4MTYwMDQ4MTUxODExMDYxMDc0ODU3NjEwNzQ4NjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA2MDAwNjEwNzYzOGI2MDAwODg4ODg2NjExODI4NTY1YjkwNTA2MDAwODA2MTA3Nzc4MzYwMDQ1NDYwMDU1NDYxMWZjYTU2NWI5MDkyNTA5MDUwNjAxNjgyMTQ2MTA3ODk1NzYwMDA4MGZkNWI2MTA3OTM4NjgyNjEyMGY4NTY1YjkxNTA2MDE2ODIxNDYxMDdhMjU3NjAwMDgwZmQ1YjYwNDA4MDUxNjAwMDgwODI1MjYwMjA4MjAxOTA5MjUyODE5MDYxMDdjMjkwODQ5MDYwNjQ5MDYxMjFjYzU2NWI5MDkyNTA5MDUwNjAxNjgyMTQ2MTA3ZDQ1NzYwMDA4MGZkNWI1MDkwOWQ5YzUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTY1YjYwNDA4MDUxNjAwMjgwODI1MjYwNjA4MjAxOTA5MjUyNjAwMDkxODI5MTkwODE2MDIwMDE1YjYxMDgwYTYxMzJmMzU2NWI4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTA4MDI1NzkwNTA1MDkwNTA2MDAwNjEwODJmMzA2MDAwODc4Nzg2NjExODI4NTY1YjkwNTA2MDAwODA2MTA4NDM4MzYwMDQ1NDYwMDU1NDYxMWZjYTU2NWI5MDkyNTA5MDUwNjAxNjgyMTQ2MTA4NTU1NzYwMDA4MGZkNWI5Njk1NTA1MDUwNTA1MDUwNTY1YjYwNDA4MDUxNjAwMTgwODI1MjgxODMwMTkwOTI1MjYwMDA5MTgyOTE5MDgxNjAyMDAxNWI2MTA4ODE2MTMyZjM1NjViODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjEwODc5NTc5MDUwNTA5MDUwNjEwOGIyNjAwMDYwMDE2MDQwNTE4MDYwMjAwMTYwNDA1MjgwNjAwMDgxNTI1MDYxMTdmMzU2NWI4MTYwMDA4MTUxODExMDYxMDhjNTU3NjEwOGM1NjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA2MDAwNjEwOGUwODY2MDAwODc4Nzg2NjExODI4NTY1YjkwNTA2MDAwODA2MTAxNjc2MDAxNjAwMTYwYTAxYjAzMTY2Mzc4MTJhMDRiNjBlMDFiODQ2MDA0NTQ2MDA1NTQ2MDQwNTE2MDI0MDE2MTA5MTI5MzkyOTE5MDYxM2VhZTU2NWI2MDQwODA1MTYwMWYxOTgxODQwMzAxODE1MjkxODE1MjYwMjA4MjAxODA1MTYwMDE2MDAxNjBlMDFiMDMxNjYwMDE2MDAxNjBlMDFiMDMxOTkwOTQxNjkzOTA5MzE3OTA5MjUyOTA1MTYxMDk1MDkxOTA2MTNlZDM1NjViNjAwMDYwNDA1MTgwODMwMzgxODU1YWY0OTE1MDUwM2Q4MDYwMDA4MTE0NjEwOThiNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjEwOTkwNTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTA5OWY1NzYwMDA4MGZkNWI2MDAwODA4MjgwNjAyMDAxOTA1MTgxMDE5MDYxMDliNjkxOTA2MTNlZWY1NjViOTA5MjUwOTA1MDYwMTY4MjE0NjEwOWM4NTc2MDAwODBmZDViOTk5ODUwNTA1MDUwNTA1MDUwNTA1MDU2NWI2MDAwNjEwOWVkNjEwOWUyNjExY2I0NTY1YjYxMDYxZTg2ODY4NjYxMjJiNTU2NWI5NDkzNTA1MDUwNTA1NjViNjA0MDgwNTE2MDAxODA4MjUyODE4MzAxOTA5MjUyNjAwMDkxODI5MTkwODE2MDIwMDE1YjYxMGExNzYxMzJmMzU2NWI4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTBhMGY1NzkwNTA1MDkwNTA2MTBhMzQ2MTMyZjM1NjViNjAwNDgxNTI2MTBhNDA2MTMzMTI1NjViMzA2MDIwODA4MzAxOTE5MDkxNTI2MDAxODI1MjgyMDE4MTkwNTI4MjUxODI5MDg0OTA2MDAwOTA2MTBhNjg1NzYxMGE2ODYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNjAwMDYxMGE4MzMwNjAwMDg5ODk4ODYxMTgyODU2NWI5MDUwNjAwMDgwNjEwYTk3ODM2MDA0NTQ2MDA1NTQ2MTFmY2E1NjViOTA5MjUwOTA1MDYwMTY4MjE0NjEwYWE5NTc2MDAwODBmZDViOTg5NzUwNTA1MDUwNTA1MDUwNTA1NjViNjAwMDYxMDljODYxMGFjMjYxMWNiNDU2NWI2MTBhY2Q4YjhhODc2MTIzMWY1NjViNjEwNjI2OGI4YThhOGE4OTYxMjNkNDU2NWI2MDAwODA2MTBiMjQzMDgyODY4NjgyNjA0MDUxOTA4MDgyNTI4MDYwMjAwMjYwMjAwMTgyMDE2MDQwNTI4MDE1NjEwYjFlNTc4MTYwMjAwMTViNjEwYjBiNjEzMmYzNTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMGIwMzU3OTA1MDViNTA2MTE4Mjg1NjViOTA1MDYxMGI0OTYwNDA4MDUxNjA2MDgxMDE4MjUyNjAwMDgwODI1MjYwMjA4MjAxODE5MDUyOTE4MTAxOTE5MDkxNTI5MDU2NWI2MDM3ODE1MjYxMDEwMDgyMDE4MTkwNTI2MDAwODA2MTA4NDM4NDgyODA2MTFmY2E1NjViNjA0MDgwNTE2MDAzODA4MjUyNjA4MDgyMDE5MDkyNTI2MDAwOTE4MjkxOTA4MTYwMjAwMTViNjEwYjg2NjEzMmYzNTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMGI3ZTU3OTA1MDUwOTA1MDYxMGJhODYwMDA2MDAzODc2MTE3ZjM1NjViODE2MDAwODE1MTgxMTA2MTBiYmI1NzYxMGJiYjYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNjEwYmQzNjAwNDYwMDIzMDYxMWY5ZjU2NWI4MTYwMDE4MTUxODExMDYxMGJlNjU3NjEwYmU2NjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA2MTBiZmU2MDA2NjAwMjMwNjExZjlmNTY1YjgxNjAwMjgxNTE4MTEwNjEwYzExNTc2MTBjMTE2MTNjNzU1NjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDYwMDA2MTBjMmMzMDYwMDA4Nzg3ODY2MTE4Mjg1NjViOTA1MDYwMDA4MDYxMGMzZTgzNjAxZTYwMDg2MTFmY2E1NjViOTA5MjUwOTA1MDYwMTY4MjE0NjEwYzUwNTc2MDAwODBmZDViODA5NDUwNjAwMDgxNjAwMTYwMDE2MGEwMWIwMzE2NjMwNmZkZGUwMzYwNDA1MTgxNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYwMDA2MDQwNTE4MDgzMDM4MTg2NWFmYTE1ODAxNTYxMGM5MzU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAwMDgyM2U2MDFmM2Q5MDgxMDE2MDFmMTkxNjgyMDE2MDQwNTI2MTBjYmI5MTkwODEwMTkwNjEzZjE0NTY1YjkwNTA2MDAxNjA0MDUxNjEwY2NjOTE5MDYxM2ZiYzU2NWI2MDQwNTE4MDkxMDM5MDIwODE4MDUxOTA2MDIwMDEyMDE0NjEwZDI0NTc2MDQwNTE2MjQ2MWJjZDYwZTUxYjgxNTI2MDIwNjAwNDgyMDE1MjYwMTM2MDI0ODIwMTUyNzIxMzk4NWI1OTQ4MWE1Y2M4MWI5YmRkMDgxOGRiZGM5Yzk5NThkZDYwNmExYjYwNDQ4MjAxNTI2MDY0MDE1YjYwNDA1MTgwOTEwMzkwZmQ1YjYwMDA4MjYwMDE2MDAxNjBhMDFiMDMxNjYzMTgxNjBkZGQ2MDQwNTE4MTYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MDIwNjA0MDUxODA4MzAzODE4NjVhZmExNTgwMTU2MTBkNjQ1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA2MDQwNTEzZDYwMWYxOTYwMWY4MjAxMTY4MjAxODA2MDQwNTI1MDgxMDE5MDYxMGQ4ODkxOTA2MTQwNTg1NjViOTA1MDgwNjAxZTE0NjEwZGRhNTc2MDQwNTE2MjQ2MWJjZDYwZTUxYjgxNTI2MDIwNjAwNDgyMDE1MjYwMWI2MDI0ODIwMTUyN2Y1NDZmNzQ2MTZjMjA3Mzc1NzA3MDZjNzkyMDY5NzMyMDZlNmY3NDIwNjM2ZjcyNzI2NTYzNzQwMDAwMDAwMDAwNjA0NDgyMDE1MjYwNjQwMTYxMGQxYjU2NWI2MDQwNTE2M2E5MDU5Y2JiNjBlMDFiODE1MjYwMDE2MDAxNjBhMDFiMDM4YTgxMTY2MDA0ODMwMTUyNjAxNDYwMjQ4MzAxNTI2MDAwOTE5MDg1MTY5MDYzYTkwNTljYmI5MDYwNDQwMTYwMjA2MDQwNTE4MDgzMDM4MTYwMDA4NzVhZjExNTgwMTU2MTBlMmQ1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA2MDQwNTEzZDYwMWYxOTYwMWY4MjAxMTY4MjAxODA2MDQwNTI1MDgxMDE5MDYxMGU1MTkxOTA2MTQwNzE1NjViOTA1MDgwNjEwZTkzNTc2MDQwNTE2MjQ2MWI=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw5V/7zggO96g/u4Beao0T5r5fzjrU3Nqg2IpQumLVuomO99u8e6TmBmjLddiRqqLuGgwI2LTkrQYQm9m4pQEiDwoJCJy05K0GEK8REgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQictOStBhC1ERICGAISAhgDGPjR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxiTDCKAIGNkNjBlNTFiODE1MjYwMjA2MDA0ODIwMTUyNjAxMDYwMjQ4MjAxNTI2ZjU0NzI2MTZlNzM2NjY1NzIyMDY2NjE2OTZjNjU2NDIxNjA4MDFiNjA0NDgyMDE1MjYwNjQwMTYxMGQxYjU2NWI1MDUwNTA1MDUwNTA1MDkzOTI1MDUwNTA1NjViNjA0MDgwNTE2MDAyODA4MjUyNjA2MDgyMDE5MDkyNTI2MDAwOTE4MjkxOTA4MTYwMjAwMTViNjEwZWM0NjEzMmYzNTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMGViYzU3OTA1MDUwOTA1MDYxMGVlNjYwMDA2MDAyOGE2MTFmOWY1NjViODE2MDAwODE1MTgxMTA2MTBlZjk1NzYxMGVmOTYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNjEwZjExNjAwNDYwMDM4NTYxMTdmMzU2NWI4MTYwMDE4MTUxODExMDYxMGYyNDU3NjEwZjI0NjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA2MDAwNjEwZjNmODg2MDAwODg4ODg2NjExODI4NTY1YjYwMDE2MDgwODIwMTUyNjEwMTkwNjBhMDgyMDE1MjkwNTA2MDAwNjEwZjYyNjAwNDYwMDU4MzhiODE4ZTYxMjQ4ZDU2NWI5MDUwNjAwMDgwNjEwNWU2ODQ4MjYwNDA1MTkwODA4MjUyODA2MDIwMDI2MDIwMDE4MjAxNjA0MDUyODAxNTYxMGZhNTU3ODE2MDIwMDE1YjYxMGY5MjYxMzM1NTU2NWI4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTBmOGE1NzkwNTA1YjUwODU2MTI0ZDE1NjViNjAwMDYxMGZjMjYxMGZiZDg2ODY4Njg2NjEyNTQ0NTY1YjYxMjVjNTU2NWI5NTk0NTA1MDUwNTA1MDU2NWI2MDAwNjEwOWVkNjEwZmQ4NjExY2I0NTY1YjYxMDYxZTg2ODY4NjYwMDA2MTI3MWM1NjViNjAwMDgwNjEwZmYzNjAwMzg2NjEyN2MwNTY1YjkwNTA2MDAwNjExMDA1ODc2MDAwODc4Nzg2NjExODI4NTY1YjYwMDE2MDgwODIwMTgxOTA1MjYwMGE2MGEwODMwMTUyNjBjMDgyMDE1MjkwNTA2MDAwODA2MTBhOTc4MzYxMjgzZDU2NWI2MDAwNjEwZmMyNjExMDM1NjExY2I0NTY1YjYwNjA2MTA2MjY4ODg4ODg4ODYxMjk2NTU2NWI2MDAwNjEwOWVkNjExMDUwNjExY2I0NTY1YjYxMDYxZTg1ODc4NjYxMjlkMTU2NWI2MDAwNjExMDY4NjEwZmJkNjExY2I0NTY1YjkwNTA5MDU2NWI2MDQwODA1MTYwMDE4MDgyNTI4MTgzMDE5MDkyNTI2MDAwOTE4MjkxOTA4MTYwMjAwMTViNjExMDhmNjEzMmYzNTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMTA4NzU3OTA1MDUwOTA1MDYxMTBiMTYwMDA2MDA0ODg2MTE3ZjM1NjViODE2MDAwODE1MTgxMTA2MTEwYzQ1NzYxMTBjNDYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNjAwMDYxMTBkZjMwNjAwMDg3ODc4NjYxMTgyODU2NWI5MDUwNjAwMDYxMTBlZTYwMDE4ODYxMmExMjU2NWI2MDQwODA1MTYwMDE4MDgyNTI4MTgzMDE5MDkyNTI5MTkyNTA2MDAwOTE5MDgxNjAyMDAxNWI2MTExMTE2MTMzNTU1NjViODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjExMTA5NTc5MDUwNTA5MDUwODE4MTYwMDA4MTUxODExMDYxMTEzYTU3NjExMTNhNjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA2MDAwODA2MTExYWI4NTYwMDQ1NDYwMDU1NDg2NjAwMDYwMDE2MDAxNjA0MDFiMDM4MTExMTU2MTExNmM1NzYxMTE2YzYxMzQzMjU2NWI2MDQwNTE5MDgwODI1MjgwNjAyMDAyNjAyMDAxODIwMTYwNDA1MjgwMTU2MTExYTU1NzgxNjAyMDAxNWI2MTExOTI2MTMzODM1NjViODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjExMThhNTc5MDUwNWI1MDYxMWI4MDU2NWI5MDkyNTA5MDUwNjAxNjgyMTQ2MTExYmQ1NzYwMDA4MGZkNWI5YTk5NTA1MDUwNTA1MDUwNTA1MDUwNTA1NjViNjAwMDYxMTFkNTYxMzNiODU2NWI2MDAxODA1NDYxMTFlMjkwNjEzZjgxNTY1YjgwNjAxZjAxNjAyMDgwOTEwNDAyNjAyMDAxNjA0MDUxOTA4MTAxNjA0MDUyODA5MjkxOTA4MTgxNTI2MDIwMDE4MjgwNTQ2MTEyMGU5MDYxM2Y4MTU2NWI4MDE1NjExMjViNTc4MDYwMWYxMDYxMTIzMDU3NjEwMTAwODA4MzU0MDQwMjgzNTI5MTYwMjAwMTkxNjExMjViNTY1YjgyMDE5MTkwNjAwMDUyNjAyMDYwMDAyMDkwNWI4MTU0ODE1MjkwNjAwMTAxOTA2MDIwMDE4MDgzMTE2MTEyM2U1NzgyOTAwMzYwMWYxNjgyMDE5MTViNTA1MDUwOTE4MzUyNTA1MDYwMDI4MDU0NjExMjcwOTA2MTNmODE1NjViODA2MDFmMDE2MDIwODA5MTA0MDI2MDIwMDE2MDQwNTE5MDgxMDE2MDQwNTI4MDkyOTE5MDgxODE1MjYwMjAwMTgyODA1NDYxMTI5YzkwNjEzZjgxNTY1YjgwMTU2MTEyZTk1NzgwNjAxZjEwNjExMmJlNTc2MTAxMDA4MDgzNTQwNDAyODM1MjkxNjAyMDAxOTE2MTEyZTk1NjViODIwMTkxOTA2MDAwNTI2MDIwNjAwMDIwOTA1YjgxNTQ4MTUyOTA2MDAxMDE5MDYwMjAwMTgwODMxMTYxMTJjYzU3ODI5MDAzNjAxZjE2ODIwMTkxNWI1MDUwNTA1MDUwNjAyMDgyMDE1MjMwNjA0MDgyMDE1MjYwMDA4MDYxMTMwOTgzNjBjODYwMDg2MTFmY2E1NjViOTA5MjUwOTA1MDYwMTY4MjE0NjEwNjJiNTc2MDAwODBmZDViNjAwMDYxMDllZDYxMGZiZDg1ODU4NTYxMmE0MzU2NWI2MDAwNjExMzM1NjEzM2I4NTY1YjYwMDA4MDYxMTMwOTgzNjAwMDgwNjExZmNhNTY1YjYwMDA2MTA2MmI2MTBmYmQ4NDg0NjEyN2MwNTY1YjYwMDA2MTEzNzY2MTEzNjA2MTFjYjQ1NjViNjExMzZhODk4NjYxMmFjMjU2NWI2MTA2MjY4OTg5ODk4ODYxMjk2NTU2NWI5Nzk2NTA1MDUwNTA1MDUwNTA1NjViNjAwMDYxMGZjMjYxMTM4ZTYxMWNiNDU2NWI2MTA2MWU4Nzg3ODc4NzYxMjcxYzU2NWI2MDAwNjEwNjJiNjExM2E3NjExY2I0NTY1YjYxMDYxZTg1ODU2MTJiMDI1NjViNjAwMDYxMTM3NjYxMTNiZTYxMWNiNDU2NWI2MDYwNjEwNjI2OGE4YThhOGE4YThhNjExYjEwNTY1YjYwMDA2MTEwNjg2MTEzZGI2MTFjYjQ1NjViNjEyYjQyNTY1YjYwNDA4MDUxNjAwMjgwODI1MjYwNjA4MjAxOTA5MjUyNjAwMDkxODI5MTkwODE2MDIwMDE1YjYxMTQwMzYxMzJmMzU2NWI4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTEzZmI1NzkwNTA1MDkwNTA2MTE0MjU2MDAwNjAwMjhhNjExZjlmNTY1YjgxNjAwMDgxNTE4MTEwNjExNDM4NTc2MTE0Mzg2MTNjNzU1NjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDYxMTQ1MDYwMDQ2MDAzODU2MTE3ZjM1NjViODE2MDAxODE1MTgxMTA2MTE0NjM1NzYxMTQ2MzYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNjAwMDYxMTQ3ZTg4NjAwMDg4ODg4NjYxMTgyODU2NWI2MDAxNjA4MDgyMDE1MjYxMDE5MDYwYTA4MjAxNTI5MDUwNjAwMDYxMTRhMTYwMDQ2MDA1NjAwYThiOGQ2MTJjOTQ1NjViOTA1MDYwMDA4MDYxMDVlNjg0ODI2MDQwNTE5MDgwODI1MjgwNjAyMDAyNjAyMDAxODIwMTYwNDA1MjgwMTU2MTBmYTU1NzgxNjAyMDAxNWI2MTE0ZDE2MTMzNTU1NjViODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjExNGM5NTc5MDUwNTA4NTYxMjRkMTU2NWI2MDAwNjEwOWVkNjExNGY3NjExY2I0NTY1YjYxMDYxZTg2ODY4NjYxMWEzNTU2NWI2MDQwODA1MTYwMDI4MDgyNTI2MDYwODIwMTkwOTI1MjYwMDA5MTgyOTE5MDgxNjAyMDAxNWI2MTE1MjU2MTMyZjM1NjViODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjExNTFkNTc5MDUwNTA5MDUwNjExNTQ3NjAwMDYwMDI4NzYxMWY5ZjU2NWI4MTYwMDA4MTUxODExMDYxMTU1YTU3NjExNTVhNjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA2MTE1NzI2MDA0NjAwMjg3NjExZjlmNTY1YjgxNjAwMTgxNTE4MTEwNjExNTg1NTc2MTE1ODU2MTNjNzU1NjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDYwMDA2MTE1YTAzMDYwMDA4Nzg3ODY2MTE4Mjg1NjViOTA1MDYwMDA2MTE1YjE2MDA0NjAwNTg5NjEyZDY4NTY1YjkwNTA2MDAwODA2MTE1ZmE4NDgyNjA0MDUxOTA4MDgyNTI4MDYwMjAwMjYwMjAwMTgyMDE2MDQwNTI4MDE1NjEwZmE1NTc4MTYwMjAwMTViNjExNWUxNjEzMzU1NTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMTVkOTU3OTA1MDUwODU2MTI0ZDE1NjViOTA5MjUwOTA1MDYwMTY4MjE0NjExNjBjNTc2MDAwODBmZDViODA5NTUwNjAwMDgxNjAwMTYwMDE2MGEwMWIwMzE2NjMwNmZkZGUwMzYwNDA1MTgxNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYwMDA2MDQwNTE4MDgzMDM4MTg2NWFmYTE1ODAxNTYxMTY0ZjU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAwMDgyM2U2MDFmM2Q=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwqKY+ZgC6wVHnLTJkrxlkIN7S+Xfq8UamF3lSg6xO6fsfKy1t1co/0iJZjPJHESnbGgwI2LTkrQYQk5+qigMiDwoJCJy05K0GELUREgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQidtOStBhC7ERICGAISAhgDGPfR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxiTDCKAIDkwODEwMTYwMWYxOTE2ODIwMTYwNDA1MjYxMTY3NzkxOTA4MTAxOTA2MTNmMTQ1NjViOTA1MDYwMDE2MDQwNTE2MTE2ODg5MTkwNjEzZmJjNTY1YjYwNDA1MTgwOTEwMzkwMjA4MTgwNTE5MDYwMjAwMTIwMTQ2MTE2ZGI1NzYwNDA1MTYyNDYxYmNkNjBlNTFiODE1MjYwMjA2MDA0ODIwMTUyNjAxMzYwMjQ4MjAxNTI3MjEzOTg1YjU5NDgxYTVjYzgxYjliZGQwODE4ZGJkYzljOTk1OGRkNjA2YTFiNjA0NDgyMDE1MjYwNjQwMTYxMGQxYjU2NWI2MDAwODI2MDAxNjAwMTYwYTAxYjAzMTY2Mzk1ZDg5YjQxNjA0MDUxODE2M2ZmZmZmZmZmMTY2MGUwMWI4MTUyNjAwNDAxNjAwMDYwNDA1MTgwODMwMzgxODY1YWZhMTU4MDE1NjExNzFiNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDAwODIzZTYwMWYzZDkwODEwMTYwMWYxOTE2ODIwMTYwNDA1MjYxMTc0MzkxOTA4MTAxOTA2MTNmMTQ1NjViOTA1MDYwMDI2MDQwNTE2MTE3NTQ5MTkwNjEzZmJjNTY1YjYwNDA1MTgwOTEwMzkwMjA4MTgwNTE5MDYwMjAwMTIwMTQ2MTBlOTM1NzYwNDA1MTYyNDYxYmNkNjBlNTFiODE1MjYwMjA2MDA0ODIwMTUyNjAxNTYwMjQ4MjAxNTI3NDE0ZGU1YjU4OWJkYjA4MWE1Y2M4MWI5YmRkMDgxOGRiZGM5Yzk5NThkZDYwNWExYjYwNDQ4MjAxNTI2MDY0MDE2MTBkMWI1NjViNjAwMDYxMDYyYjYxMTdiNjYxMWNiNDU2NWI2MTA2MWU4NTg1NjEyYWMyNTY1YjYwMDA2MTEwNjg2MTE3Y2Q2MTFjYjQ1NjViNjEyZGE5NTY1YjYwMDA2MTEwNjg2MTBmYmQ2MDA0NjAwMTYwNDA1MTgwNjAyMDAxNjA0MDUyODA2MDAwODE1MjUwNjEyYTQzNTY1YjYxMTdmYjYxMzJmMzU2NWI2MDQwNTE4MDYwNDAwMTYwNDA1MjgwNjExODBmODY2MTJmY2U1NjViODE1MjYwMjAwMTYxMTgxZTg1ODU2MTMwNjA1NjViOTA1Mjk0OTM1MDUwNTA1MDU2NWI2MTE4MzA2MTMzYjg1NjViNjA0MDgwNTE2MDYwODEwMTgyNTI2M2ZmZmZmZmZmODc4MTE2ODI1MjYwMDE2MDAxNjBhMDFiMDM4NzE2NjAyMDgzMDE1Mjg1MTY5MTgxMDE5MTkwOTE1MjYwMDE4MDU0NjExODY5OTA2MTNmODE1NjViODA2MDFmMDE2MDIwODA5MTA0MDI2MDIwMDE2MDQwNTE5MDgxMDE2MDQwNTI4MDkyOTE5MDgxODE1MjYwMjAwMTgyODA1NDYxMTg5NTkwNjEzZjgxNTY1YjgwMTU2MTE4ZTI1NzgwNjAxZjEwNjExOGI3NTc2MTAxMDA4MDgzNTQwNDAyODM1MjkxNjAyMDAxOTE2MTE4ZTI1NjViODIwMTkxOTA2MDAwNTI2MDIwNjAwMDIwOTA1YjgxNTQ4MTUyOTA2MDAxMDE5MDYwMjAwMTgwODMxMTYxMThjNTU3ODI5MDAzNjAxZjE2ODIwMTkxNWI1MDUwNTA5MTg0NTI1MDUwNjAwMjgwNTQ2MTE4Zjc5MDYxM2Y4MTU2NWI4MDYwMWYwMTYwMjA4MDkxMDQwMjYwMjAwMTYwNDA1MTkwODEwMTYwNDA1MjgwOTI5MTkwODE4MTUyNjAyMDAxODI4MDU0NjExOTIzOTA2MTNmODE1NjViODAxNTYxMTk3MDU3ODA2MDFmMTA2MTE5NDU1NzYxMDEwMDgwODM1NDA0MDI4MzUyOTE2MDIwMDE5MTYxMTk3MDU2NWI4MjAxOTE5MDYwMDA1MjYwMjA2MDAwMjA5MDViODE1NDgxNTI5MDYwMDEwMTkwNjAyMDAxODA4MzExNjExOTUzNTc4MjkwMDM2MDFmMTY4MjAxOTE1YjUwNTA1MDUwNTA2MDIwODMwMTUyNjAwMTYwMDE2MGEwMWIwMzg3MTY2MDQwODMwMTUyNjBlMDgyMDE4MzkwNTI2MTAxMDA4MjAxODE5MDUyNjAwMzgwNTQ2MTE5YTU5MDYxM2Y4MTU2NWI4MDYwMWYwMTYwMjA4MDkxMDQwMjYwMjAwMTYwNDA1MTkwODEwMTYwNDA1MjgwOTI5MTkwODE4MTUyNjAyMDAxODI4MDU0NjExOWQxOTA2MTNmODE1NjViODAxNTYxMWExZTU3ODA2MDFmMTA2MTE5ZjM1NzYxMDEwMDgwODM1NDA0MDI4MzUyOTE2MDIwMDE5MTYxMWExZTU2NWI4MjAxOTE5MDYwMDA1MjYwMjA2MDAwMjA5MDViODE1NDgxNTI5MDYwMDEwMTkwNjAyMDAxODA4MzExNjExYTAxNTc4MjkwMDM2MDFmMTY4MjAxOTE1YjUwNTA1MDUwNTA4MjYwNjAwMTgxOTA1MjUwNTA5NTk0NTA1MDUwNTA1MDU2NWI2MDQwODA1MTYwMDM4MDgyNTI2MDgwODIwMTkwOTI1MjYwNjA5MTgxNjAyMDAxNWI2MTFhNTU2MTMzNTU1NjViODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjExYTRkNTc5MDUwNTA5MDUwNjAwMDYxMWE3Nzg1ODU4NTYxMzBmMzU2NWI5MDUwNjAwMDYxMWE4ZjYxMWE4OTg3NjAwMjYxNDBhNDU2NWI4NTYxMzExZTU2NWI5MDUwNjAwMDYxMWFhNzYxMWFhMTg4NjAwNDYxNDBhNDU2NWI4NjYxMzE0ODU2NWI5MDUwODI4NDYwMDA4MTUxODExMDYxMWFiZDU3NjExYWJkNjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA4MTg0NjAwMTgxNTE4MTEwNjExYWRjNTc2MTFhZGM2MTNjNzU1NjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDgwODQ2MDAyODE1MTgxMTA2MTFhZmI1NzYxMWFmYjYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNTA1MDUwOTM5MjUwNTA1MDU2NWI2MDQwODA1MTYwMDE4MDgyNTI4MTgzMDE5MDkyNTI2MDYwOTE4MTYwMjAwMTViNjExYjJmNjEzMzgzNTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMWIyNzU3OTA1MDUwOTA1MDYwMDA2MTFiNTQ4ODg4ODg4ODg4ODg2MTMxNzI1NjViOTA1MDgwODI2MDAwODE1MTgxMTA2MTFiNmE1NzYxMWI2YTYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNTA5Njk1NTA1MDUwNTA1MDUwNTY1YjYwMDA4MDg2ODA2MTAxMDAwMTUxNjAwMDAxNTE2M2ZmZmZmZmZmMTY2MDAwMTQ4MDE1NjExYmIwNTc1MDYxMDEwMDgxMDE1MTYwNDAwMTUxNjNmZmZmZmZmZjE2MTU1YjE1NjExYmM2NTc2MTAxMDA4MTAxNTE2Mjc2YTcwMDYwNDA5MDkxMDE1MjViNjAwMDgwNjEwMTY3NjAwMTYwMDE2MGEwMWIwMzE2MzQ2MzRjMzgxYWU3NjBlMDFiOGM4YzhjOGM4YzYwNDA1MTYwMjQwMTYxMWJmNzk1OTQ5MzkyOTE5MDYxNDE0YjU2NWI2MDQwODA1MTYwMWYxOTgxODQwMzAxODE1MjkxODE1MjYwMjA4MjAxODA1MTYwMDE2MDAxNjBlMDFiMDMxNjYwMDE2MDAxNjBlMDFiMDMxOTkwOTQxNjkzOTA5MzE3OTA5MjUyOTA1MTYxMWMzNTkxOTA2MTNlZDM1NjViNjAwMDYwNDA1MTgwODMwMzgxODU4NzVhZjE5MjUwNTA1MDNkODA2MDAwODExNDYxMWM3MjU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMWM3NzU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjExYzhhNTc2MDE1NjAwMDYxMWM5ZTU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMWM5ZTkxOTA2MTQyMjI1NjViNjAwMzkxOTA5MTBiOWI5MDlhNTA5ODUwNTA1MDUwNTA1MDUwNTA1MDU2NWI2MDQwODA1MTYwMDI4MDgyNTI2MDYwODI4MTAxOTA5MzUyODE2MDIwMDE1YjYxMWNkMjYxMzJmMzU2NWI4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTFjY2E1NzkwNTA1MDkwNTA2MTFkMDI2MDAxODA2MDQwNTE4MDYwMjAwMTYwNDA1MjgwNjAwMDgxNTI1MDYxMTdmMzU2NWI4MTYwMDA4MTUxODExMDYxMWQxNTU3NjExZDE1NjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA2MDQwNTE4MDYwNDAwMTYwNDA1MjgwNjExZDM3NjAwNDYwMDY2MTMxYjY1NjViODE1MjYwMjAwMTYxMWQ1NjYwMDI2MDQwNTE4MDYwMjAwMTYwNDA1MjgwNjAwMDgxNTI1MDYxMzA2MDU2NWI4MTUyNTA4MTYwMDE4MTUxODExMDYxMWQ2YzU3NjExZDZjNjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA5MDU2NWI2MDQwODA1MTYwMDE4MDgyNTI4MTgzMDE5MDkyNTI2MDYwOTE4MTYwMjAwMTViNjExZDk5NjEzMzU1NTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMWQ5MTU3OTA1MDUwOTA1MDYwMDA2MTFkYmE4NDg0NjEzMTQ4NTY1YjkwNTA4MDgyNjAwMDgxNTE4MTEwNjExZGQwNTc2MTFkZDA2MTNjNzU1NjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDUwOTI5MTUwNTA1NjViNjA0MDgwNTE2MDAwODA4MjUyNjAyMDgyMDE5MDkyNTI2MDYwOTE2MTFlMTU1NjViNjExZTAyNjEzMzgzNTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMWRmYTU3OTA1MDViNTA5MDUwOTA1NjViNjAwMDYxMWUyNTYxMzNiODU2NWI2MDAxODA1NDYxMWUzMjkwNjEzZjgxNTY1YjgwNjAxZjAxNjAyMDgwOTEwNDAyNjAyMDAxNjA0MDUxOTA4MTAxNjA0MDUyODA5MjkxOTA4MTgxNTI2MDIwMDE4MjgwNTQ2MTFlNWU5MDYxM2Y4MTU2NWI=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw7p5vkm4/sEQJj3WkTgbKIJ3arQXv7cj4pp+GJtxUDqTA0V8TnnqQ5orLLAIwZskRGgwI2bTkrQYQk4TWrgEiDwoJCJ205K0GELsREgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQidtOStBhDBERICGAISAhgDGPfR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxiTDCKAIDgwMTU2MTFlYWI1NzgwNjAxZjEwNjExZTgwNTc2MTAxMDA4MDgzNTQwNDAyODM1MjkxNjAyMDAxOTE2MTFlYWI1NjViODIwMTkxOTA2MDAwNTI2MDIwNjAwMDIwOTA1YjgxNTQ4MTUyOTA2MDAxMDE5MDYwMjAwMTgwODMxMTYxMWU4ZTU3ODI5MDAzNjAxZjE2ODIwMTkxNWI1MDUwNTA5MTgzNTI1MDUwNjAwMjgwNTQ2MTFlYzA5MDYxM2Y4MTU2NWI4MDYwMWYwMTYwMjA4MDkxMDQwMjYwMjAwMTYwNDA1MTkwODEwMTYwNDA1MjgwOTI5MTkwODE4MTUyNjAyMDAxODI4MDU0NjExZWVjOTA2MTNmODE1NjViODAxNTYxMWYzOTU3ODA2MDFmMTA2MTFmMGU1NzYxMDEwMDgwODM1NDA0MDI4MzUyOTE2MDIwMDE5MTYxMWYzOTU2NWI4MjAxOTE5MDYwMDA1MjYwMjA2MDAwMjA5MDViODE1NDgxNTI5MDYwMDEwMTkwNjAyMDAxODA4MzExNjExZjFjNTc4MjkwMDM2MDFmMTY4MjAxOTE1YjUwNTA1MDUwNTA2MDIwODIwMTUyMzA2MDQwODIwMTUyNjBlMDgxMDE4NTkwNTI2MDA0NTQ2MDA1NTQ2MDAwOTE4MjkxNjEwODQzOTE4NTkxODk4OTYxMWI4MDU2NWI2MTFmNzA2MTMyZjM1NjViNjA0MDUxODA2MDQwMDE2MDQwNTI4MDYxMWY4NTg3ODc2MTMxYjY1NjViODE1MjYwMjAwMTYxMWY5NDg1ODU2MTMwNjA1NjViOTA1Mjk1OTQ1MDUwNTA1MDUwNTY1YjYxMWZhNzYxMzJmMzU2NWI2MDQwNTE4MDYwNDAwMTYwNDA1MjgwNjExZmJiODY2MTJmY2U1NjViODE1MjYwMjAwMTYxMTgxZTg1ODU2MTMxY2Y1NjViNjAwMDgwODQ4MDYxMDEwMDAxNTE2MDAwMDE1MTYzZmZmZmZmZmYxNjYwMDAxNDgwMTU2MTFmZmE1NzUwNjEwMTAwODEwMTUxNjA0MDAxNTE2M2ZmZmZmZmZmMTYxNTViMTU2MTIwMTA1NzYxMDEwMDgxMDE1MTYyNzZhNzAwNjA0MDkwOTEwMTUyNWI2MDAwODA2MTAxNjc2MDAxNjAwMTYwYTAxYjAzMTYzNDYzNzgxMmEwNGI2MGUwMWI4YThhOGE2MDQwNTE2MDI0MDE2MTIwM2Q5MzkyOTE5MDYxM2VhZTU2NWI2MDQwODA1MTYwMWYxOTgxODQwMzAxODE1MjkxODE1MjYwMjA4MjAxODA1MTYwMDE2MDAxNjBlMDFiMDMxNjYwMDE2MDAxNjBlMDFiMDMxOTkwOTQxNjkzOTA5MzE3OTA5MjUyOTA1MTYxMjA3YjkxOTA2MTNlZDM1NjViNjAwMDYwNDA1MTgwODMwMzgxODU4NzVhZjE5MjUwNTA1MDNkODA2MDAwODExNDYxMjBiODU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMjBiZDU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEyMGQwNTc2MDE1NjAwMDYxMjBlNDU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMjBlNDkxOTA2MTQyMjI1NjViNjAwMzkxOTA5MTBiOTk5MDk4NTA5NjUwNTA1MDUwNTA1MDUwNTY1YjYwNDA4MDUxNjAwMTYwMDE2MGEwMWIwMzg0ODExNjYwMjQ4MzAxNTI4MzE2NjA0NDgwODMwMTkxOTA5MTUyODI1MTgwODMwMzkwOTEwMTgxNTI2MDY0OTA5MTAxODI1MjYwMjA4MTAxODA1MTYwMDE2MDAxNjBlMDFiMDMxNjYzMjQ4YTM1ZWY2MGUxMWIxNzkwNTI5MDUxNjAwMDkxODI5MTgyOTE2MTAxNjc5MTYxMjE1OTkxOTA2MTNlZDM1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMjE5NjU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMjE5YjU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEyMWFjNTc2MDE1NjEyMWMwNTY1YjgwODA2MDIwMDE5MDUxODEwMTkwNjEyMWMwOTE5MDYxNDI0ZTU2NWI2MDAzMGI5NTk0NTA1MDUwNTA1MDU2NWI2MDAwODA2MDAwODA2MTAxNjc2MDAxNjAwMTYwYTAxYjAzMTY2M2FjYjljZmY5NjBlMDFiODg4ODg4NjA0MDUxNjAyNDAxNjEyMWZiOTM5MjkxOTA2MTQyNjk1NjViNjA0MDgwNTE2MDFmMTk4MTg0MDMwMTgxNTI5MTgxNTI2MDIwODIwMTgwNTE2MDAxNjAwMTYwZTAxYjAzMTY2MDAxNjAwMTYwZTAxYjAzMTk5MDk0MTY5MzkwOTMxNzkwOTI1MjkwNTE2MTIyMzk5MTkwNjEzZWQzNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NjVhZjE5MTUwNTAzZDgwNjAwMDgxMTQ2MTIyNzY1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTIyN2I1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA4MTYxMjI4ZTU3NjAxNTYwMDA2MTIyYTI1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTIyYTI5MTkwNjE0MmQzNTY1YjYwMDM5MTkwOTEwYjk4OTA5NzUwOTU1MDUwNTA1MDUwNTA1NjViNjA0MDgwNTE2MDAxODA4MjUyODE4MzAxOTA5MjUyNjA2MDkxODE2MDIwMDE1YjYxMjJkNDYxMzM1NTU2NWI4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTIyY2M1NzkwNTA1MDkwNTA2MDAwNjEyMmY2ODU4NTg1NjEzMGYzNTY1YjkwNTA4MDgyNjAwMDgxNTE4MTEwNjEyMzBjNTc2MTIzMGM2MTNjNzU1NjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDUwOTM5MjUwNTA1MDU2NWI2MDYwODM2MGZmMTY2MDAxNjAwMTYwNDAxYjAzODExMTE1NjEyMzNjNTc2MTIzM2M2MTM0MzI1NjViNjA0MDUxOTA4MDgyNTI4MDYwMjAwMjYwMjAwMTgyMDE2MDQwNTI4MDE1NjEyMzc1NTc4MTYwMjAwMTViNjEyMzYyNjEzMzU1NTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMjM1YTU3OTA1MDViNTA5MDUwNjAwMDViODQ2MGZmMTY4MTYwZmYxNjEwMTU2MTIzY2M1NzYwMDA2MTIzOTU4NTg1NjEzMTFlNTY1YjkwNTA4MDgzODM2MGZmMTY4MTUxODExMDYxMjNhZDU3NjEyM2FkNjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA1MDgwODA2MTIzYzQ5MDYxNDMwYjU2NWI5MTUwNTA2MTIzN2I1NjViNTA5MzkyNTA1MDUwNTY1YjYwNjA4NTYwZmYxNjYwMDE2MDAxNjA0MDFiMDM4MTExMTU2MTIzZjE1NzYxMjNmMTYxMzQzMjU2NWI2MDQwNTE5MDgwODI1MjgwNjAyMDAyNjAyMDAxODIwMTYwNDA1MjgwMTU2MTI0MmE1NzgxNjAyMDAxNWI2MTI0MTc2MTMzODM1NjViODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjEyNDBmNTc5MDUwNWI1MDkwNTA2MDAwNWI4NjYwZmYxNjgxNjBmZjE2MTAxNTYxMjQ4MzU3NjAwMDYxMjQ0Yzg3ODc4Nzg3NjEzMjE4NTY1YjkwNTA4MDgzODM2MGZmMTY4MTUxODExMDYxMjQ2NDU3NjEyNDY0NjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA1MDgwODA2MTI0N2I5MDYxNDMwYjU2NWI5MTUwNTA2MTI0MzA1NjViNTA5NTk0NTA1MDUwNTA1MDU2NWI2MDQwODA1MTYwMDE4MDgyNTI4MTgzMDE5MDkyNTI2MDYwOTE4MTYwMjAwMTViNjEyNGFjNjEzMzgzNTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMjRhNDU3OTA1MDUwOTA1MDYwMDA2MTFiNTQ4ODg4ODg4ODg4ODg2MTMyNGQ1NjViNjAwMDgwODQ4MDYxMDEwMDAxNTE2MDAwMDE1MTYzZmZmZmZmZmYxNjYwMDAxNDgwMTU2MTI1MDE1NzUwNjEwMTAwODEwMTUxNjA0MDAxNTE2M2ZmZmZmZmZmMTYxNTViMTU2MTI1MTc1NzYxMDEwMDgxMDE1MTYyNzZhNzAwNjA0MDkwOTEwMTUyNWI2MDAwODA2MTAxNjc2MDAxNjAwMTYwYTAxYjAzMTYzNDYzNWJjN2MwZTY2MGUwMWI4YThhOGE2MDQwNTE2MDI0MDE2MTIwM2Q5MzkyOTE5MDYxNDMyYjU2NWI2MDQwODA1MTYwMDE4MDgyNTI4MTgzMDE5MDkyNTI2MDYwOTE4MTYwMjAwMTViNjEyNTYzNjEzMmYzNTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMjU1YjU3OTA1MDUwOTA1MDYwNDA1MTgwNjA0MDAxNjA0MDUyODA2MTI1OGQ4Nzg3NjEzMWI2NTY1YjgxNTI2MDIwMDE2MTI1OWM4NTg1NjEzMDYwNTY1YjgxNTI1MDgxNjAwMDgxNTE4MTEwNjEyNWIyNTc2MTI1YjI2MTNjNzU1NjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDk0OTM1MDUwNTA1MDU2NWI2MDAwNjEyNWNmNjEzM2I4NTY1YjYwMDE4MDU0NjEyNWRjOTA2MTNmODE1NjViODA2MDFmMDE2MDIwODA5MTA0MDI2MDIwMDE2MDQwNTE5MDgxMDE2MDQwNTI4MDkyOTE5MDgxODE1MjYwMjAwMTgyODA1NDYxMjYwODkwNjEzZjgxNTY1YjgwMTU2MTI2NTU1NzgwNjAxZjEwNjEyNjJhNTc2MTAxMDA4MDgzNTQwNDAyODM1MjkxNjAyMDAxOTE2MTI2NTU1NjViODIwMTkxOTA2MDAwNTI2MDIwNjAwMDIwOTA1YjgxNTQ4MTUyOTA2MDAxMDE5MDYwMjAwMTgwODMxMTYxMjYzODU3ODI5MDAzNjAxZjE2ODIwMTkxNWI1MDUwNTA5MTgzNTI1MDUwNjA=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwRk/pvUrnCRAJoU7ng5+TELc5UtZv68hFE+DHivD2Ja8CcxQF7uFuwvMchpQctm1lGgwI2bTkrQYQm4v2kwMiDwoJCJ205K0GEMEREgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQietOStBhDHERICGAISAhgDGPbR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxiTDCKAIDAyODA1NDYxMjY2YTkwNjEzZjgxNTY1YjgwNjAxZjAxNjAyMDgwOTEwNDAyNjAyMDAxNjA0MDUxOTA4MTAxNjA0MDUyODA5MjkxOTA4MTgxNTI2MDIwMDE4MjgwNTQ2MTI2OTY5MDYxM2Y4MTU2NWI4MDE1NjEyNmUzNTc4MDYwMWYxMDYxMjZiODU3NjEwMTAwODA4MzU0MDQwMjgzNTI5MTYwMjAwMTkxNjEyNmUzNTY1YjgyMDE5MTkwNjAwMDUyNjAyMDYwMDAyMDkwNWI4MTU0ODE1MjkwNjAwMTAxOTA2MDIwMDE4MDgzMTE2MTI2YzY1NzgyOTAwMzYwMWYxNjgyMDE5MTViNTA1MDUwNTA1MDYwMjA4MjAxNTIzMDYwNDA4MjAxNTI2MGUwODEwMTgzOTA1MjYwMDA4MDYxMjcwYTgzNjBjODYwMDg2MTFmY2E1NjViOTA5MjUwOTA1MDYwMTY4MjE0NjEwOWVkNTc2MDAwODBmZDViNjA0MDgwNTE2MDAxODA4MjUyODE4MzAxOTA5MjUyNjA2MDkxODE2MDIwMDE1YjYxMjczYjYxMzM1NTU2NWI4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTI3MzM1NzkwNTA1MDkwNTA2MDAwNjEyNzVkODY4Njg2NjEzMGYzNTY1YjkwNTA2MDAwNjEyNzc2NjEyNzZmODg2MDAyNjE0MGE0NTY1Yjg3ODY2MTMwZjM1NjViOTA1MDgxODM2MDAwODE1MTgxMTA2MTI3OGM1NzYxMjc4YzYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwODA4MzYwMDA4MTUxODExMDYxMjdhYjU3NjEyN2FiNjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA1MDUwOTQ5MzUwNTA1MDUwNTY1YjYwNDA4MDUxNjAwMTgwODI1MjgxODMwMTkwOTI1MjYwNjA5MTgxNjAyMDAxNWI2MTI3ZGY2MTMyZjM1NjViODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjEyN2Q3NTc5MDUwNTA5MDUwNjA0MDUxODA2MDQwMDE2MDQwNTI4MDYxMjgwNzYwN2Y5MDU2NWI4MTUyNjAyMDAxNjEyODE2ODU4NTYxMzA2MDU2NWI4MTUyNTA4MTYwMDA4MTUxODExMDYxMjgyYzU3NjEyODJjNjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA5MjkxNTA1MDU2NWI2MDAwODA4MjgwNjEwMTAwMDE1MTYwMDAwMTUxNjNmZmZmZmZmZjE2NjAwMDE0ODAxNTYxMjg2ZDU3NTA2MTAxMDA4MTAxNTE2MDQwMDE1MTYzZmZmZmZmZmYxNjE1NWIxNTYxMjg4MzU3NjEwMTAwODEwMTUxNjI3NmE3MDA2MDQwOTA5MTAxNTI1YjYwMDA4MDYxMDE2NzYwMDE2MDAxNjBhMDFiMDMxNjM0NjM5ZGM3MTFlMDYwZTAxYjg4NjA0MDUxNjAyNDAxNjEyOGFjOTE5MDYxNDNlNDU2NWI2MDQwODA1MTYwMWYxOTgxODQwMzAxODE1MjkxODE1MjYwMjA4MjAxODA1MTYwMDE2MDAxNjBlMDFiMDMxNjYwMDE2MDAxNjBlMDFiMDMxOTkwOTQxNjkzOTA5MzE3OTA5MjUyOTA1MTYxMjhlYTkxOTA2MTNlZDM1NjViNjAwMDYwNDA1MTgwODMwMzgxODU4NzVhZjE5MjUwNTA1MDNkODA2MDAwODExNDYxMjkyNzU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMjkyYzU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEyOTNmNTc2MDE1NjAwMDYxMjk1MzU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMjk1MzkxOTA2MTQyMjI1NjViNjAwMzkxOTA5MTBiOTc5MDk2NTA5NDUwNTA1MDUwNTA1NjViNjA0MDgwNTE2MDAxODA4MjUyODE4MzAxOTA5MjUyNjA2MDkxODE2MDIwMDE1YjYxMjk4NDYxMzM4MzU2NWI4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTI5N2M1NzkwNTA1MDkwNTA2MDAwNjEyOWE3ODY4Njg2ODY2MTMyMTg1NjViOTA1MDgwODI2MDAwODE1MTgxMTA2MTI5YmQ1NzYxMjliZDYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNTA5NDkzNTA1MDUwNTA1NjViNjA0MDgwNTE2MDAxODA4MjUyODE4MzAxOTA5MjUyNjA2MDkxODE2MDIwMDE1YjYxMjlmMDYxMzM1NTU2NWI4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTI5ZTg1NzkwNTA1MDkwNTA2MDAwNjEyMmY2ODU4NTg1NjEzMjkzNTY1YjYxMmExYTYxMzM1NTU2NWI2M2ZmZmZmZmZmOTA5MjE2ODI1MjYwMDE2MDQwODMwMTgxOTA1MjYwNjA4MzAxNTI2MDAxNjAwMTYwYTAxYjAzMTY2MDgwODIwMTUyOTA1NjViNjA0MDgwNTE2MDAxODA4MjUyODE4MzAxOTA5MjUyNjA2MDkxODE2MDIwMDE1YjYxMmE2MjYxMzJmMzU2NWI4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTJhNWE1NzkwNTA1MDkwNTA2MDQwNTE4MDYwNDAwMTYwNDA1MjgwNjEyYThiODY2MTJmY2U1NjViODE1MjYwMjAwMTYxMmE5YTg1ODU2MTMwNjA1NjViODE1MjUwODE2MDAwODE1MTgxMTA2MTJhYjA1NzYxMmFiMDYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwOTM5MjUwNTA1MDU2NWI2MDQwODA1MTYwMDE4MDgyNTI4MTgzMDE5MDkyNTI2MDYwOTE4MTYwMjAwMTViNjEyYWUxNjEzMzU1NTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMmFkOTU3OTA1MDUwOTA1MDYwMDA2MTFkYmE4NDg0NjEzMTFlNTY1YjYwNDA4MDUxNjAwMTgwODI1MjgxODMwMTkwOTI1MjYwNjA5MTgxNjAyMDAxNWI2MTJiMjE2MTMzNTU1NjViODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjEyYjE5NTc5MDUwNTA5MDUwNjAwMDYxMWRiYTg0ODQ2MTJhMTI1NjViNjAwMDYxMmI0YzYxMzNiODU2NWI2MDAxODA1NDYxMmI1OTkwNjEzZjgxNTY1YjgwNjAxZjAxNjAyMDgwOTEwNDAyNjAyMDAxNjA0MDUxOTA4MTAxNjA0MDUyODA5MjkxOTA4MTgxNTI2MDIwMDE4MjgwNTQ2MTJiODU5MDYxM2Y4MTU2NWI4MDE1NjEyYmQyNTc4MDYwMWYxMDYxMmJhNzU3NjEwMTAwODA4MzU0MDQwMjgzNTI5MTYwMjAwMTkxNjEyYmQyNTY1YjgyMDE5MTkwNjAwMDUyNjAyMDYwMDAyMDkwNWI4MTU0ODE1MjkwNjAwMTAxOTA2MDIwMDE4MDgzMTE2MTJiYjU1NzgyOTAwMzYwMWYxNjgyMDE5MTViNTA1MDUwOTE4MzUyNTA1MDYwMDI4MDU0NjEyYmU3OTA2MTNmODE1NjViODA2MDFmMDE2MDIwODA5MTA0MDI2MDIwMDE2MDQwNTE5MDgxMDE2MDQwNTI4MDkyOTE5MDgxODE1MjYwMjAwMTgyODA1NDYxMmMxMzkwNjEzZjgxNTY1YjgwMTU2MTJjNjA1NzgwNjAxZjEwNjEyYzM1NTc2MTAxMDA4MDgzNTQwNDAyODM1MjkxNjAyMDAxOTE2MTJjNjA1NjViODIwMTkxOTA2MDAwNTI2MDIwNjAwMDIwOTA1YjgxNTQ4MTUyOTA2MDAxMDE5MDYwMjAwMTgwODMxMTYxMmM0MzU3ODI5MDAzNjAxZjE2ODIwMTkxNWI1MDUwNTA1MDUwNjAyMDgyMDE1MjMwNjA0MDgyMDE1MjYwZTA4MTAxODM5MDUyNjAwMTYwYzA4MjAxNTI2MDA0NTQ2MDA1NTQ2MDAwOTE4MjkxNjEyNzBhOTE4NTkxNjExZmNhNTY1YjYwNDA4MDUxNjAwMzgwODI1MjYwODA4MjAxOTA5MjUyNjA2MDkxODE2MDIwMDE1YjYxMmNiNDYxMzM4MzU2NWI4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTJjYWM1NzkwNTA1MDkwNTA2MDAwNjEyY2Q2ODc4Nzg1NjEzMmM1NTY1YjkwNTA2MDAwNjEyY2VhODg4ODg4NjAwMDYwMDE4OTYxMzI0ZDU2NWI5MDUwNjAwMDYxMmNmZDg5ODk4OTg5NjAwMDhhNjEzMjRkNTY1YjkwNTA4Mjg0NjAwMDgxNTE4MTEwNjEyZDEzNTc2MTJkMTM2MTNjNzU1NjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDgxODQ2MDAxODE1MTgxMTA2MTJkMzI1NzYxMmQzMjYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwODA4NDYwMDI4MTUxODExMDYxMmQ1MTU3NjEyZDUxNjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA1MDUwNTA5NTk0NTA1MDUwNTA1MDU2NWI2MDQwODA1MTYwMDE4MDgyNTI4MTgzMDE5MDkyNTI2MDYwOTE4MTYwMjAwMTViNjEyZDg3NjEzMzgzNTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMmQ3ZjU3OTA1MDUwOTA1MDYwMDA2MTIyZjY4NTg1ODU2MTMyYzU1NjViNjAwMDYxMmRiMzYxMzNiODU2NWI2MDAxODA1NDYxMmRjMDkwNjEzZjgxNTY1YjgwNjAxZjAxNjAyMDgwOTEwNDAyNjAyMDAxNjA0MDUxOTA4MTAxNjA0MDUyODA5MjkxOTA4MTgxNTI2MDIwMDE4MjgwNTQ2MTJkZWM5MDYxM2Y4MTU2NWI4MDE1NjEyZTM5NTc4MDYwMWYxMDYxMmUwZTU3NjEwMTAwODA4MzU0MDQwMjgzNTI5MTYwMjAwMTkxNjEyZTM5NTY1YjgyMDE5MTkwNjAwMDUyNjAyMDYwMDAyMDkwNWI4MTU0ODE1MjkwNjAwMTAxOTA2MDIwMDE4MDgzMTE2MTJlMWM1NzgyOTAwMzYwMWYxNjgyMDE5MTViNTA1MDUwOTE4MzUyNTA1MDYwMDI4MDU0NjEyZTRlOTA2MTNmODE1NjViODA2MDFmMDE2MDIwODA5MTA0MDI2MDIwMDE2MDQwNTE=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwttRDF2MjbWyqmxvwBmFZlhK0nQ4IdxjtHmMDS0djBSeSIkd965719W6B3n54n2Y/GgwI2rTkrQYQu+iuuAEiDwoJCJ605K0GEMcREgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQietOStBhDNERICGAISAhgDGPbR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxiTDCKAIDkwODEwMTYwNDA1MjgwOTI5MTkwODE4MTUyNjAyMDAxODI4MDU0NjEyZTdhOTA2MTNmODE1NjViODAxNTYxMmVjNzU3ODA2MDFmMTA2MTJlOWM1NzYxMDEwMDgwODM1NDA0MDI4MzUyOTE2MDIwMDE5MTYxMmVjNzU2NWI4MjAxOTE5MDYwMDA1MjYwMjA2MDAwMjA5MDViODE1NDgxNTI5MDYwMDEwMTkwNjAyMDAxODA4MzExNjEyZWFhNTc4MjkwMDM2MDFmMTY4MjAxOTE1YjUwNTA1MDUwNTA2MDIwODIwMTUyMzA2MDQwODA4MzAxOTE5MDkxNTI2MGUwODIwMTg0OTA1MjYwMDQ1NDYwMDU1NDkxNTE2MDAwOTI4MzkyNjEwMTY3OTI2Mzc4MTJhMDRiNjBlMDFiOTI2MTJmMGQ5Mjg4OTI5MDkxOTA2MDI0MDE2MTNlYWU1NjViNjA0MDgwNTE2MDFmMTk4MTg0MDMwMTgxNTI5MTgxNTI2MDIwODIwMTgwNTE2MDAxNjAwMTYwZTAxYjAzMTY2MDAxNjAwMTYwZTAxYjAzMTk5MDk0MTY5MzkwOTMxNzkwOTI1MjkwNTE2MTJmNGI5MTkwNjEzZWQzNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NjVhZjE5MTUwNTAzZDgwNjAwMDgxMTQ2MTJmODg1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTJmOGQ1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA2MDAwODA4MzYxMmZhMzU3NjAxNTYwMDA2MTJmYjc1NjViODI4MDYwMjAwMTkwNTE4MTAxOTA2MTJmYjc5MTkwNjE0MjIyNTY1YjkxNTA2MDAzMGI5MTUwNjAxNjYwMDMwYjgyMTQ2MTA4NTU1NzYwMDA4MGZkNWI2MDAwNjBmZjgyMTY2MTJmZTA1NzUwNjAwMTkxOTA1MDU2NWI4MTYwZmYxNjYwMDExNDE1NjEyZmY0NTc1MDYwMDI5MTkwNTA1NjViODE2MGZmMTY2MDAyMTQxNTYxMzAwODU3NTA2MDA0OTE5MDUwNTY1YjgxNjBmZjE2NjAwMzE0MTU2MTMwMWM1NzUwNjAwODkxOTA1MDU2NWI4MTYwZmYxNjYwMDQxNDE1NjEzMDMwNTc1MDYwMTA5MTkwNTA1NjViODE2MGZmMTY2MDA1MTQxNTYxMzA0NDU3NTA2MDIwOTE5MDUwNTY1YjgxNjBmZjE2NjAwNjE0MTU2MTMwNTg1NzUwNjA0MDkxOTA1MDU2NWI1MDYwMDA5MTkwNTA1NjViNjEzMDY4NjEzMzEyNTY1YjgyNjBmZjE2NjAwMTE0MTU2MTMwN2Q1NzYwMDE4MTUyNjEzMGVkNTY1YjgyNjBmZjE2NjAwMjE0MTU2MTMwOWY1NzYwMDA1NDYwMDE2MDAxNjBhMDFiMDMxNjYwMjA4MjAxNTI2MTMwZWQ1NjViODI2MGZmMTY2MDAzMTQxNTYxMzBiNzU3NjA0MDgxMDE4MjkwNTI2MTMwZWQ1NjViODI2MGZmMTY2MDA0MTQxNTYxMzBjZjU3NjA2MDgxMDE4MjkwNTI2MTMwZWQ1NjViODI2MGZmMTY2MDA1MTQxNTYxMzBlZDU3NjAwMDU0NjAwMTYwMDE2MGEwMWIwMzE2NjA4MDgyMDE1MjViOTI5MTUwNTA1NjViNjEzMGZiNjEzMzU1NTY1YjYzZmZmZmZmZmY5MDkzMTY4MzUyNjAwMTYwMDE2MGEwMWIwMzkxODIxNjYwMjA4NDAxNTIxNjYwODA4MjAxNTI5MDU2NWI2MTMxMjY2MTMzNTU1NjViNjNmZmZmZmZmZjkwOTIxNjgyNTI2MDAxNjA0MDgzMDE1MjYwMDE2MDAxNjBhMDFiMDMxNjYwODA4MjAxNTI5MDU2NWI2MTMxNTA2MTMzNTU1NjViNjNmZmZmZmZmZjkwOTIxNjgyNTI2MDAxNjA2MDgzMDE1MjYwMDE2MDAxNjBhMDFiMDMxNjYwODA4MjAxNTI5MDU2NWI2MTMxN2E2MTMzODM1NjViNjNmZmZmZmZmZjk2ODcxNjgxNTI5NDg2MTY2MDIwODYwMTUyOTI4NTE2NjA0MDg1MDE1MjkzMTY2MDYwODMwMTUyOTExNTE1NjA4MDgyMDE1MjYwMDE2MDAxNjBhMDFiMDM5MDkxMTY2MGEwODIwMTUyOTA1NjViNjAwMDYwMDE2MGZmODQxNjFiOTA1MDYwMDE2MGZmODMxNjFiODExNzYxMDYyYjU2NWI2MTMxZDc2MTMzMTI1NjViODI2MGZmMTY2MDAyMTQxNTYxMzFmNzU3NjAwMTYwMDE2MGEwMWIwMzgyMTY2MDIwODIwMTUyNjEzMGVkNTY1YjgyNjBmZjE2NjAwNTE0MTU2MTMwZWQ1NzYwMDE2MDAxNjBhMDFiMDM4MjE2NjA4MDgyMDE1MjkyOTE1MDUwNTY1YjYxMzIyMDYxMzM4MzU2NWI2M2ZmZmZmZmZmOTQ4NTE2ODE1MjkyOTA5MzE2NjAyMDgzMDE1MjE1MTU2MDgwODIwMTUyNjAwMTYwMDE2MGEwMWIwMzkwOTExNjYwYTA4MjAxNTI5MDU2NWI2MTMyNTU2MTMzODM1NjViNjNmZmZmZmZmZjk2ODcxNjgxNTI5NDg2MTY2MDIwODYwMTUyOTI5MDk0MTY2MDQwODQwMTUyNjAwMTYwMDE2MGEwMWIwMzkwODExNjYwNjA4NDAxNTI5MjE1MTU2MDgwODMwMTUyOTA5MTE2NjBhMDgyMDE1MjkwNTY1YjYxMzI5YjYxMzM1NTU2NWI2M2ZmZmZmZmZmOTA5MzE2ODM1MjYwMDE2MDAxNjBhMDFiMDM5MTgyMTY2MDIwODQwMTUyNjAwMTYwNDA4NDAxNTIxNjYwODA4MjAxNTI5MDU2NWI2MTMyY2Q2MTMzODM1NjViNjNmZmZmZmZmZjkzODQxNjgxNTI5MTkwOTIxNjYwMjA4MjAxNTI2MDAxNjAwMTYwYTAxYjAzOTA5MTE2NjBhMDgyMDE1MjkwNTY1YjYwNDA1MTgwNjA0MDAxNjA0MDUyODA2MDAwODE1MjYwMjAwMTYxMzMwZDYxMzMxMjU2NWI5MDUyOTA1NjViNjA0MDUxODA2MGEwMDE2MDQwNTI4MDYwMDAxNTE1ODE1MjYwMjAwMTYwMDA2MDAxNjAwMTYwYTAxYjAzMTY4MTUyNjAyMDAxNjA2MDgxNTI2MDIwMDE2MDYwODE1MjYwMjAwMTYwMDA2MDAxNjAwMTYwYTAxYjAzMTY4MTUyNTA5MDU2NWI2MDQwODA1MTYwYTA4MTAxODI1MjYwMDA4MDgyNTI2MDIwODIwMTgxOTA1MjkxODEwMTgyOTA1MjYwNjA4MTAxODI5MDUyNjA4MDgxMDE5MTkwOTE1MjkwNTY1YjYwNDA4MDUxNjBjMDgxMDE4MjUyNjAwMDgwODI1MjYwMjA4MjAxODE5MDUyOTE4MTAxODI5MDUyNjA2MDgxMDE4MjkwNTI2MDgwODEwMTgyOTA1MjYwYTA4MTAxOTE5MDkxNTI5MDU2NWI2MDQwNTE4MDYxMDEyMDAxNjA0MDUyODA2MDYwODE1MjYwMjAwMTYwNjA4MTUyNjAyMDAxNjAwMDYwMDE2MDAxNjBhMDFiMDMxNjgxNTI2MDIwMDE2MDYwODE1MjYwMjAwMTYwMDAxNTE1ODE1MjYwMjAwMTYwMDA2M2ZmZmZmZmZmMTY4MTUyNjAyMDAxNjAwMDE1MTU4MTUyNjAyMDAxNjA2MDgxNTI2MDIwMDE2MTMzMGQ2MDQwODA1MTYwNjA4MTAxODI1MjYwMDA4MDgyNTI2MDIwODIwMTgxOTA1MjkxODEwMTkxOTA5MTUyOTA1NjViNjM0ZTQ4N2I3MTYwZTAxYjYwMDA1MjYwNDE2MDA0NTI2MDI0NjAwMGZkNWI2MDQwNTE2MDFmODIwMTYwMWYxOTE2ODEwMTYwMDE2MDAxNjA0MDFiMDM4MTExODI4MjEwMTcxNTYxMzQ3MDU3NjEzNDcwNjEzNDMyNTY1YjYwNDA1MjkxOTA1MDU2NWI2MDAwNjAwMTYwMDE2MDQwMWIwMzgyMTExNTYxMzQ5MTU3NjEzNDkxNjEzNDMyNTY1YjUwNjAxZjAxNjAxZjE5MTY2MDIwMDE5MDU2NWI2MDAwODI2MDFmODMwMTEyNjEzNGIwNTc2MDAwODBmZDViODEzNTYxMzRjMzYxMzRiZTgyNjEzNDc4NTY1YjYxMzQ0ODU2NWI4MTgxNTI4NDYwMjA4Mzg2MDEwMTExMTU2MTM0ZDg1NzYwMDA4MGZkNWI4MTYwMjA4NTAxNjAyMDgzMDEzNzYwMDA5MTgxMDE2MDIwMDE5MTkwOTE1MjkzOTI1MDUwNTA1NjViNjAwMTYwMDE2MGEwMWIwMzgxMTY4MTE0NjEzNTBhNTc2MDAwODBmZDViNTA1NjViODAzNTYzZmZmZmZmZmY4MTE2ODExNDYxMzUyMTU3NjAwMDgwZmQ1YjkxOTA1MDU2NWI2MDAwODA2MDAwODA2MDAwNjBhMDg2ODgwMzEyMTU2MTM1M2U1NzYwMDA4MGZkNWI4NTM1NjAwMTYwMDE2MDQwMWIwMzgxMTExNTYxMzU1NDU3NjAwMDgwZmQ1YjYxMzU2MDg4ODI4OTAxNjEzNDlmNTY1Yjk1NTA1MDYwMjA4NjAxMzU2MTM1NzE4MTYxMzRmNTU2NWI5MzUwNjA0MDg2MDEzNTYxMzU4MTgxNjEzNGY1NTY1YjkyNTA2MDYwODYwMTM1NjEzNTkxODE2MTM0ZjU1NjViOTE1MDYxMzU5ZjYwODA4NzAxNjEzNTBkNTY1YjkwNTA5Mjk1NTA5Mjk1OTA5MzUwNTY1YjYwMDA4MDYwNDA4Mzg1MDMxMjE1NjEzNWJlNTc2MDAwODBmZDViNjEzNWM3ODM2MTM1MGQ1NjViOTE1MDYwMjA4MzAxMzU2MTM1ZDc4MTYxMzRmNTU2NWI4MDkxNTA1MDkyNTA5MjkwNTA1NjViNjAwMDgwNjAwMDgwNjAwMDgwNjAwMDgwNjEwMTAwODk4YjAzMTIxNTYxMzVmZjU3NjAwMDgwZmQ1Yjg4MzU2MTM2MGE4MTYxMzRmNTU2NWI5NzUwNjAyMDg5MDEzNTYwMDE2MDAxNjA0MDFiMDM4MDgyMTExNTYxMzYyNjU3NjAwMDgwZmQ1YjYxMzYzMjhjODM4ZDAxNjEzNDlmNTY1Yjk4NTA2MDQwOGIwMTM1OTE1MDgwODIxMTE1NjEzNjQ4NTc2MDAwODBmZDViNTA2MTM2NTU4YjgyOGMwMTYxMzQ5ZjU2NWI5NjUwNTA2MDYwODkwMTM1NjE=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwt9Ve9f2pIFWW/cSxC6G2Yxe31ayNwTXQRNBFB9WVTe1CTmPxHqVHbFtlsCbUcNCiGgwI2rTkrQYQi6GNnQMiDwoJCJ605K0GEM0REgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQiftOStBhDTERICGAISAhgDGPbR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxiTDCKAIDM2NjY4MTYxMzRmNTU2NWI5NDUwNjA4MDg5MDEzNTYxMzY3NjgxNjEzNGY1NTY1YjkzNTA2MGEwODkwMTM1NjEzNjg2ODE2MTM0ZjU1NjViOTI1MDYxMzY5NDYwYzA4YTAxNjEzNTBkNTY1YjkxNTA2MGUwODkwMTM1NjEzNmE0ODE2MTM0ZjU1NjViODA5MTUwNTA5Mjk1OTg1MDkyOTU5ODkwOTM5NjUwNTY1YjYwMDA4MDYwNDA4Mzg1MDMxMjE1NjEzNmM4NTc2MDAwODBmZDViODIzNTYxMzZkMzgxNjEzNGY1NTY1YjkxNTA2MTM2ZTE2MDIwODQwMTYxMzUwZDU2NWI5MDUwOTI1MDkyOTA1MDU2NWI2MDAwODA2MDAwNjA2MDg0ODYwMzEyMTU2MTM2ZmY1NzYwMDA4MGZkNWI4MzM1NjEzNzBhODE2MTM0ZjU1NjViOTI1MDYwMjA4NDAxMzU2MTM3MWE4MTYxMzRmNTU2NWI5MTUwNjEzNzI4NjA0MDg1MDE2MTM1MGQ1NjViOTA1MDkyNTA5MjUwOTI1NjViNjAwMDgwNjAwMDYwNjA4NDg2MDMxMjE1NjEzNzQ2NTc2MDAwODBmZDViNjEzNzRmODQ2MTM1MGQ1NjViOTI1MDYwMjA4NDAxMzU2MTM3NWY4MTYxMzRmNTU2NWI5MTUwNjA0MDg0MDEzNTYxMzc2ZjgxNjEzNGY1NTY1YjgwOTE1MDUwOTI1MDkyNTA5MjU2NWI4MDM1NjBmZjgxMTY4MTE0NjEzNTIxNTc2MDAwODBmZDViODAxNTE1ODExNDYxMzUwYTU3NjAwMDgwZmQ1YjYwMDA4MDYwMDA4MDYwMDA4MDYwMDA4MDYxMDEwMDg5OGIwMzEyMTU2MTM3YjY1NzYwMDA4MGZkNWI2MTM3YmY4OTYxMzc3YTU2NWI5NzUwNjEzN2NkNjAyMDhhMDE2MTM3N2E1NjViOTY1MDYxMzdkYjYwNDA4YTAxNjEzNTBkNTY1Yjk1NTA2MTM3ZTk2MDYwOGEwMTYxMzUwZDU2NWI5NDUwNjEzN2Y3NjA4MDhhMDE2MTM1MGQ1NjViOTM1MDYwYTA4OTAxMzU2MTM4MDc4MTYxMzc4YjU2NWI5MjUwNjBjMDg5MDEzNTYxMzY5NDgxNjEzNGY1NTY1YjYwMDA4MDYwMDA2MDYwODQ4NjAzMTIxNTYxMzgyYzU3NjAwMDgwZmQ1YjgzMzU2MDAxNjAwMTYwNDAxYjAzODExMTE1NjEzODQyNTc2MDAwODBmZDViNjEzODRlODY4Mjg3MDE2MTM0OWY1NjViOTM1MDUwNjAyMDg0MDEzNTYxMzcxYTgxNjEzNGY1NTY1YjYwMDA4MDYwMDA4MDYwMDA4MDYwYzA4Nzg5MDMxMjE1NjEzODc4NTc2MDAwODBmZDViODYzNTYxMzg4MzgxNjEzNGY1NTY1Yjk1NTA2MDIwODcwMTM1NjEzODkzODE2MTM0ZjU1NjViOTQ1MDYwNDA4NzAxMzU2MTM4YTM4MTYxMzRmNTU2NWI5MzUwNjA2MDg3MDEzNTYxMzhiMzgxNjEzNGY1NTY1YjkyNTA2MTM4YzE2MDgwODgwMTYxMzUwZDU2NWI5MTUwNjBhMDg3MDEzNTYwMDE2MDAxNjA0MDFiMDM4MTExMTU2MTM4ZGM1NzYwMDA4MGZkNWI2MTM4ZTg4OTgyOGEwMTYxMzQ5ZjU2NWI5MTUwNTA5Mjk1NTA5Mjk1NTA5Mjk1NTY1YjYwMDA4MDYwMDA4MDYwODA4NTg3MDMxMjE1NjEzOTBiNTc2MDAwODBmZDViNjEzOTE0ODU2MTM3N2E1NjViOTM1MDYxMzkyMjYwMjA4NjAxNjEzNzdhNTY1YjkyNTA2MTM5MzA2MDQwODYwMTYxMzc3YTU2NWI5MTUwNjA2MDg1MDEzNTYwMDE2MDAxNjA0MDFiMDM4MTExMTU2MTM5NGI1NzYwMDA4MGZkNWI2MTM5NTc4NzgyODgwMTYxMzQ5ZjU2NWI5MTUwNTA5Mjk1OTE5NDUwOTI1MDU2NWI2MDAwODA2MDAwODA2MDgwODU4NzAzMTIxNTYxMzk3OTU3NjAwMDgwZmQ1Yjg0MzU2MTM5ODQ4MTYxMzRmNTU2NWI5MzUwNjAyMDg1MDEzNTYwMDE2MDAxNjA0MDFiMDM4MTExMTU2MTM5OWY1NzYwMDA4MGZkNWI2MTM5YWI4NzgyODgwMTYxMzQ5ZjU2NWI5MzUwNTA2MDQwODUwMTM1NjEzOWJjODE2MTM0ZjU1NjViOTE1MDYxMzljYTYwNjA4NjAxNjEzNTBkNTY1YjkwNTA5Mjk1OTE5NDUwOTI1MDU2NWI2MDAwODA2MDAwODA2MDgwODU4NzAzMTIxNTYxMzllYjU3NjAwMDgwZmQ1YjYxMzlmNDg1NjEzNTBkNTY1YjkzNTA2MTNhMDI2MDIwODYwMTYxMzUwZDU2NWI5MjUwNjA0MDg1MDEzNTYxM2ExMjgxNjEzNzhiNTY1YjkxNTA2MDYwODUwMTM1NjEzYTIyODE2MTM0ZjU1NjViOTM5NjkyOTU1MDkwOTM1MDUwNTY1YjYwMDA4MDYwMDA2MDYwODQ4NjAzMTIxNTYxM2E0MjU3NjAwMDgwZmQ1YjgzMzU2MTNhNGQ4MTYxMzRmNTU2NWI5MjUwNjEzNzVmNjAyMDg1MDE2MTM1MGQ1NjViNjAwMDgwNjAwMDgwNjA4MDg1ODcwMzEyMTU2MTNhNzE1NzYwMDA4MGZkNWI4NDM1NjAwMTYwMDE2MDQwMWIwMzgxMTExNTYxM2E4NzU3NjAwMDgwZmQ1YjYxM2E5Mzg3ODI4ODAxNjEzNDlmNTY1Yjk0NTA1MDYwMjA4NTAxMzU2MTNhYTQ4MTYxMzRmNTU2NWI5MjUwNjA0MDg1MDEzNTYxMzliYzgxNjEzNGY1NTY1YjYwMDA4MDYwMDA2MDYwODQ4NjAzMTIxNTYxM2FjOTU3NjAwMDgwZmQ1YjYxM2FkMjg0NjEzNzdhNTY1YjkyNTA2MTNhZTA2MDIwODUwMTYxMzc3YTU2NWI5MTUwNjA0MDg0MDEzNTYwMDE2MDAxNjA0MDFiMDM4MTExMTU2MTNhZmI1NzYwMDA4MGZkNWI2MTNiMDc4NjgyODcwMTYxMzQ5ZjU2NWI5MTUwNTA5MjUwOTI1MDkyNTY1YjYwMDA4MDYwNDA4Mzg1MDMxMjE1NjEzYjI0NTc2MDAwODBmZDViNjEzYjJkODM2MTM3N2E1NjViOTE1MDYwMjA4MzAxMzU2MDAxNjAwMTYwNDAxYjAzODExMTE1NjEzYjQ4NTc2MDAwODBmZDViNjEzYjU0ODU4Mjg2MDE2MTM0OWY1NjViOTE1MDUwOTI1MDkyOTA1MDU2NWI2MDAwODA2MDAwODA2MDAwODA2MGMwODc4OTAzMTIxNTYxM2I3NzU3NjAwMDgwZmQ1YjYxM2I4MDg3NjEzNTBkNTY1Yjk1NTA2MTNiOGU2MDIwODgwMTYxMzUwZDU2NWI5NDUwNjEzYjljNjA0MDg4MDE2MTM1MGQ1NjViOTM1MDYwNjA4NzAxMzU2MTNiYWM4MTYxMzc4YjU2NWI5MjUwNjA4MDg3MDEzNTYxM2JiYzgxNjEzNGY1NTY1YjkxNTA2MGEwODcwMTM1NjEzYmNjODE2MTM0ZjU1NjViODA5MTUwNTA5Mjk1NTA5Mjk1NTA5Mjk1NTY1YjYwMDA4MDYwMDA4MDYwODA4NTg3MDMxMjE1NjEzYmYwNTc2MDAwODBmZDViNjEzYmY5ODU2MTM1MGQ1NjViOTM1MDYwMjA4NTAxMzU2MTNjMDk4MTYxMzRmNTU2NWI5MjUwNjA0MDg1MDEzNTYxM2ExMjgxNjEzNGY1NTY1YjYwMDA4MDYwMDA4MDYwMDA4MDYwYzA4Nzg5MDMxMjE1NjEzYzMyNTc2MDAwODBmZDViNjEzYzNiODc2MTM1MGQ1NjViOTU1MDYxM2M0OTYwMjA4ODAxNjEzNTBkNTY1Yjk0NTA2MTNjNTc2MDQwODgwMTYxMzUwZDU2NWI5MzUwNjEzYzY1NjA2MDg4MDE2MTM1MGQ1NjViOTI1MDYwODA4NzAxMzU2MTNiYmM4MTYxMzc4YjU2NWI2MzRlNDg3YjcxNjBlMDFiNjAwMDUyNjAzMjYwMDQ1MjYwMjQ2MDAwZmQ1YjYwMDA1YjgzODExMDE1NjEzY2E2NTc4MTgxMDE1MTgzODIwMTUyNjAyMDAxNjEzYzhlNTY1YjgzODExMTE1NjEzY2I1NTc2MDAwODQ4NDAxNTI1YjUwNTA1MDUwNTY1YjYwMDA4MTUxODA4NDUyNjEzY2QzODE2MDIwODYwMTYwMjA4NjAxNjEzYzhiNTY1YjYwMWYwMTYwMWYxOTE2OTI5MDkyMDE2MDIwMDE5MjkxNTA1MDU2NWI2MDAwODE1MTgwODQ1MjYwMjA4MDg1MDE4MDgxOTY1MDgzNjAwNTFiODEwMTkxNTA4Mjg2MDE2MDAwNWI4NTgxMTAxNTYxM2Q5ZTU3ODI4NDAzODk1MjgxNTE2MDQwODE1MTg2NTI4NjgyMDE1MTkxNTA4MDg3ODcwMTUyODE1MTE1MTU4MTg3MDE1Mjg2ODIwMTUxNjA2MDYwMDE2MDAxNjBhMDFiMDM4MDgzMTY4MjhhMDE1MjgzODUwMTUxOTM1MDYwYTA5MjUwNjA4MDgzODE4YjAxNTI2MTNkNjA2MGUwOGIwMTg2NjEzY2JiNTY1YjkyODYwMTUxOGE4NDAzNjAzZjE5MDE4NThjMDE1MjkyOTQ1MDYxM2Q3Yzg1ODQ2MTNjYmI1NjViOTUwMTUxMTY2MGMwOTg5MDk4MDE5NzkwOTc1MjUwNTA5ODg1MDE5ODkzNTA5MDg0MDE5MDYwMDEwMTYxM2QwNTU2NWI1MDkxOTc5NjUwNTA1MDUwNTA1MDUwNTY1YjYwMDA2MTAxNjA4MjUxODE4NTUyNjEzZGMxODI4NjAxODI2MTNjYmI1NjViOTE1MDUwNjAyMDgzMDE1MTg0ODIwMzYwMjA4NjAxNTI2MTNkZGI4MjgyNjEzY2JiNTY1YjkxNTA1MDYwNDA4MzAxNTE2MTNkZjg2MDQwODYwMTgyNjAwMTYwMDE2MGEwMWIwMzE2OTA1MjU2NWI1MDYwNjA4MzAxNTE4NDgyMDM2MDYwODYwMTUyNjEzZTEwODI4MjYxM2NiYjU2NWI5MTUwNTA2MDgwODMwMTUxNjEzZTI2NjA4MDg2MDE4MjE1MTU5MDUyNTY1YjUwNjBhMDgzMDE1MTYxM2UzZTYwYTA4NjAxODI2M2ZmZmZmZmZmMTY5MDUyNTY1YjUwNjBjMDgzMDE1MTYxM2U1MjYwYzA4NjAxODIxNTE1OTA1MjU2NWI1MDYwZTA4MzAxNTE4NDgyMDM2MGUwODY=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw6GH5z+zGuuegT7+q28WNyuZ+83utaPcCoB4jjmJIMMGvJJLXzx6gprIl5LyaPxiqGgwI27TkrQYQy86JwgEiDwoJCJ+05K0GENMREgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQiftOStBhDZERICGAISAhgDGLXG8zkiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBpBcSAxiTDCKcFzAxNTI2MTNlNmE4MjgyNjEzY2U3NTY1YjYxMDEwMDg1ODEwMTUxODA1MTYzZmZmZmZmZmY5MDgxMTY4OTg0MDE1MjYwMjA4MjAxNTE2MDAxNjAwMTYwYTAxYjAzMTY2MTAxMjA4YTAxNTI2MDQwODIwMTUxMTY2MTAxNDA4OTAxNTI5MTkzNTA5MTUwNTA5MDk0OTM1MDUwNTA1MDU2NWI2MDYwODE1MjYwMDA2MTNlYzE2MDYwODMwMTg2NjEzZGFiNTY1YjYwMjA4MzAxOTQ5MDk0NTI1MDYwNDAwMTUyOTE5MDUwNTY1YjYwMDA4MjUxNjEzZWU1ODE4NDYwMjA4NzAxNjEzYzhiNTY1YjkxOTA5MTAxOTI5MTUwNTA1NjViNjAwMDgwNjA0MDgzODUwMzEyMTU2MTNmMDI1NzYwMDA4MGZkNWI4MjUxOTE1MDYwMjA4MzAxNTE2MTM1ZDc4MTYxMzRmNTU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTNmMjY1NzYwMDA4MGZkNWI4MTUxNjAwMTYwMDE2MDQwMWIwMzgxMTExNTYxM2YzYzU3NjAwMDgwZmQ1YjgyMDE2MDFmODEwMTg0MTM2MTNmNGQ1NzYwMDA4MGZkNWI4MDUxNjEzZjViNjEzNGJlODI2MTM0Nzg1NjViODE4MTUyODU2MDIwODM4NTAxMDExMTE1NjEzZjcwNTc2MDAwODBmZDViNjEwZmMyODI2MDIwODMwMTYwMjA4NjAxNjEzYzhiNTY1YjYwMDE4MTgxMWM5MDgyMTY4MDYxM2Y5NTU3NjA3ZjgyMTY5MTUwNWI2MDIwODIxMDgxMTQxNTYxM2ZiNjU3NjM0ZTQ4N2I3MTYwZTAxYjYwMDA1MjYwMjI2MDA0NTI2MDI0NjAwMGZkNWI1MDkxOTA1MDU2NWI2MDAwODA4MzU0ODE2MDAxODI4MTFjOTE1MDgwODMxNjgwNjEzZmQ4NTc2MDdmODMxNjkyNTA1YjYwMjA4MDg0MTA4MjE0MTU2MTNmZjg1NzYzNGU0ODdiNzE2MGUwMWI4NjUyNjAyMjYwMDQ1MjYwMjQ4NmZkNWI4MTgwMTU2MTQwMGM1NzYwMDE4MTE0NjE0MDFkNTc2MTQwNGE1NjViNjBmZjE5ODYxNjg5NTI4NDg5MDE5NjUwNjE0MDRhNTY1YjYwMDA4YTgxNTI2MDIwOTAyMDYwMDA1Yjg2ODExMDE1NjE0MDQyNTc4MTU0OGI4MjAxNTI5MDg1MDE5MDgzMDE2MTQwMjk1NjViNTA1MDg0ODkwMTk2NTA1YjUwOTQ5ODk3NTA1MDUwNTA1MDUwNTA1MDU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTQwNmE1NzYwMDA4MGZkNWI1MDUxOTE5MDUwNTY1YjYwMDA2MDIwODI4NDAzMTIxNTYxNDA4MzU3NjAwMDgwZmQ1YjgxNTE2MTA2MmI4MTYxMzc4YjU2NWI2MzRlNDg3YjcxNjBlMDFiNjAwMDUyNjAxMTYwMDQ1MjYwMjQ2MDAwZmQ1YjYwMDA2M2ZmZmZmZmZmODA4MzE2ODE4NTE2ODE4MzA0ODExMTgyMTUxNTE2MTU2MTQwYzc1NzYxNDBjNzYxNDA4ZTU2NWIwMjk0OTM1MDUwNTA1MDU2NWI2MDAwODE1MTgwODQ1MjYwMjA4MDg1MDE5NDUwODA4NDAxNjAwMDViODM4MTEwMTU2MTQxNDA1NzgxNTE4MDUxNjNmZmZmZmZmZjE2ODg1MjgzODEwMTUxNjAwMTYwMDE2MGEwMWIwMzkwODExNjg1OGEwMTUyNjA0MDgwODMwMTUxMTUxNTkwOGEwMTUyNjA2MDgwODMwMTUxMTUxNTkwOGEwMTUyNjA4MDkxODIwMTUxMTY5MDg4MDE1MjYwYTA5MDk2MDE5NTkwODIwMTkwNjAwMTAxNjE0MGU0NTY1YjUwOTQ5NTk0NTA1MDUwNTA1MDU2NWI2MDAwNjBhMDgwODM1MjYxNDE1ZTgxODQwMTg5NjEzZGFiNTY1YjYwMjA4ODgxODYwMTUyNjA0MDg4ODE4NzAxNTI2MDYwODY4NDAzODE4ODAxNTI2MTQxN2Y4NDhhNjE0MGQwNTY1YjkzNTA2MDgwODc4NTAzODE4OTAxNTI4NDg5NTE4MDg3NTI4NTg3MDE5MTUwODU4YjAxOTY1MDYwMDA1YjgxODExMDE1NjE0MWZjNTc4NzUxODA1MTYzZmZmZmZmZmY5MDgxMTY4NTUyODg4MjAxNTE4MTE2ODk4NjAxNTI4NzgyMDE1MTgxMTY4ODg2MDE1Mjg2ODIwMTUxMTY4Njg1MDE1Mjg0ODEwMTUxMTUxNTg1ODUwMTUyODkwMTUxNjAwMTYwMDE2MGEwMWIwMzE2ODk4NDAxNTI5Njg2MDE5NjYwYzA5MDkyMDE5MTYwMDEwMTYxNDE5ZDU2NWI1MDkwOWU5ZDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1NjViODA1MTYwMDM4MTkwMGI4MTE0NjEzNTIxNTc2MDAwODBmZDViNjAwMDgwNjA0MDgzODUwMzEyMTU2MTQyMzU1NzYwMDA4MGZkNWI2MTQyM2U4MzYxNDIxMDU2NWI5MTUwNjAyMDgzMDE1MTYxMzVkNzgxNjEzNGY1NTY1YjYwMDA2MDIwODI4NDAzMTIxNTYxNDI2MDU3NjAwMDgwZmQ1YjYxMDYyYjgyNjE0MjEwNTY1YjYwMDA2MDYwODIwMTYwMDE2MDAxNjBhMDFiMDM4NjE2ODM1MjYwMjA2MDAxNjAwMTYwNDAxYjAzODYxNjgxODUwMTUyNjA2MDYwNDA4NTAxNTI4MTg1NTE4MDg0NTI2MDgwODYwMTkxNTA4Mjg3MDE5MzUwNjAwMDViODE4MTEwMTU2MTQyYzU1Nzg0NTE2MDA3MGI4MzUyOTM4MzAxOTM5MTgzMDE5MTYwMDEwMTYxNDJhNjU2NWI1MDkwOTg5NzUwNTA1MDUwNTA1MDUwNTA1NjViNjAwMDgwNjA0MDgzODUwMzEyMTU2MTQyZTY1NzYwMDA4MGZkNWI2MTQyZWY4MzYxNDIxMDU2NWI5MTUwNjAyMDgzMDE1MTYwMDE2MDAxNjA0MDFiMDM4MTE2ODExNDYxMzVkNzU3NjAwMDgwZmQ1YjYwMDA2MGZmODIxNjYwZmY4MTE0MTU2MTQzMjI1NzYxNDMyMjYxNDA4ZTU2NWI2MDAxMDE5MjkxNTA1MDU2NWI2MDAwNjA2MDgwODM1MjYxNDMzZTgxODQwMTg3NjEzZGFiNTY1YjYwMjA4NDgyMDM4MTg2MDE1MjYxNDM1MTgyODg2MTQwZDA1NjViOTE1MDYwNDA4NTgzMDM4MTg3MDE1MjgyODc1MTgwODU1MjgzODUwMTkxNTA4Mzg5MDE5NDUwNjAwMDViODE4MTEwMTU2MTQzZDQ1Nzg1NTE4MDUxNjNmZmZmZmZmZjkwODExNjg1NTI4NjgyMDE1MTgxMTY4Nzg2MDE1Mjg1ODIwMTUxMTY4NTg1MDE1Mjg3ODEwMTUxNjAwMTYwMDE2MGEwMWIwMzkwODExNjg5ODYwMTUyNjA4MDgwODMwMTUxMTUxNTkwODYwMTUyNjBhMDkxODIwMTUxMTY5MDg0MDE1Mjk0ODQwMTk0NjBjMDkwOTIwMTkxNjAwMTAxNjE0MzZmNTY1YjUwOTA5YTk5NTA1MDUwNTA1MDUwNTA1MDUwNTA1NjViNjAyMDgxNTI2MDAwNjEwNjJiNjAyMDgzMDE4NDYxM2RhYjU2ZmVhMjY0Njk3MDY2NzM1ODIyMTIyMDE4MDgzNjFlNDFlNzhiYzE1YzFiZDA1ZDBmZjc3M2YyZDQ4YzU4M2E5ZDA2OGJmY2VkZmRmNmY0ZjRkODRhNTE2NDczNmY2YzYzNDMwMDA4MGIwMDMz","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwjyEqoEyro+TmKWPQD+RkoahfHQ20hnYo4WvWdmS2ygPb/LVUJoyPzywzTA9j77+GGgwI27TkrQYQ84T7pgMiDwoJCJ+05K0GENkREgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQigtOStBhDbERICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGJMMGiISIA0xWn6YjaV40xRUCluL+kRNi5XXE6/N9x0CNthn/EZzIMCEPUIFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"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"},{"b64Body":"Cg8KCQigtOStBhDdERICGAISAhgDGOKq+dYCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAS8KDkVYSVNUSU5HX1RPS0VOEghWQk9EVUxCTCCQTioCGAJqDAjcgr+xBhCYmtCeAw==","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGJUMEjA34PMfRr8On0EIVaCXHmk44VWm9yT9QiTHWHQ+YlTPuHSAsBQY0r99hKD/y/2B3SAaDAjctOStBhCj9rKwAyIPCgkIoLTkrQYQ3RESAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWg8KAxiVDBIICgIYAhCgnAFyCQoDGJUMEgIYAg=="},{"b64Body":"Cg8KCQihtOStBhDjERICGAISAhgDGOC2iyAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGJIMEgMYlQw=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwqyn5ZA9eK/9aMstlZ1DSc8uPfZZwqni1WjyTO18jK5ZyKSmzfMy4Vq/bT87//1MpGgwI3bTkrQYQ283ruAEiDwoJCKG05K0GEOMREgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"ChAKCQihtOStBhDlERIDGJEMEgIYAxjAv+0hIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46lgIKAxiUDBDAhD0YgKjWuQcihALSMk2wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABhQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABhEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHoSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBmiGmzYSddb/m+611NfNc4goP0e5aLUvVq5BpHSskaxA==","b64Record":"CiUIFiIDGJQMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjC6fz52qXz7SkzMHztEeC2RaUcCFTjdvl10DDpW9iW4AXudNw+BsaVeR1cJ3iGOZT0aDAjdtOStBhDTheG5AyIQCgkIobTkrQYQ5RESAxiRDCogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wgOaKGzquAgoDGJQMEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGFiKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAogOowUiYKCgoCGGIQ9PyfzAwKCwoDGJEMEP+bwqkPCgsKAxiUDBCMn6LdAg=="},{"b64Body":"ChIKCQihtOStBhDlERIDGJEMIAHqAaIBCgl0b2tlbk5hbWUSC3Rva2VuU3ltYm9sKgMYkgwyBQoDGJQMUiISIGaIabNhJ11v+b7rXU181ziCg/R7lotS9WrkGkdKyRrEcgMYkQx6BQiApOgDggEEbWVtb4gBAZABAZgBkAOqAQ0aAxiSDCIGCgQIBBAFqgERGgMYkgwiCgoECAQQBRICCAqqARYaAxiSDCIPCgQIBBAFEgcIChIDGJUM","b64Record":"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"}]},"CreateMinChargeIsTXGasUsedByContractCreate":{"placeholderNum":1559,"encodedItems":[{"b64Body":"Cg8KCQintOStBhCVEhICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAjjgr+xBhCYpqitAhptCiISIAlhmLMjYiS3dW1IJaRiGtCx8PQLPfMzEyH2Y2+Jbjz/CiM6IQMDfgvvp9oOCayKHxXSd7qObz1WxZ3EhebXNFzYvSvkiwoiEiCPGGMnfszsoZNc8gGjJrFkWiH6nF91byQnjoKyBiIRjCIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGJgMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBnuCudeGFdJlciGYusfvy8Iii9ZKpasTXuUSYlQqhbGKU0+Oj3TaOQYykRJrjL0zoaDAjjtOStBhDb9uDCAiIPCgkIp7TkrQYQlRISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiotOStBhCZEhICGAISAhgDGMr5hy0iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBwAEKAxiYDCK4ATYwODA2MDQwNTIzNDgwMTU2MDBmNTc2MDAwODBmZDViNTA2MDNmODA2MDFkNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyNjAwMDgwZmRmZWEyNjQ2OTcwNjY3MzU4MjIxMjIwOTg2N2JjOWUyMjJmMjU5Yjc4ODUwMzUwMjY4MjkzYTNmYzljMzk5YWY3ZTE3ODNkNjMzNDE2YzliMjljYmUxZTY0NzM2ZjZjNjM0MzAwMDgwNzAwMzM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwP7qqsA6GIWcAFrGGugBe4/1FHSUFGK1qe0fs3RzK1E1TD046jNKDWiWSG15g6tLPGgsI5LTkrQYQq+2MSyIPCgkIqLTkrQYQmRISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiotOStBhCbEhICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGJgMGiISIHx5rskxmEU/80RgsPZu+wJJrunkTgcXgDw5Fzg24fOLIOCnEkIFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGJkMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDcS+Yv/C0L37LX+qRMTJcA6kHcm4hh4yL/NvRLkBWJsZqeibyLNf7d1PxS7JU8gwYaDAjktOStBhCrl+fMAiIPCgkIqLTkrQYQmxISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDOg+wBQvMCCgMYmQwSP2CAYEBSYACA/f6iZGlwZnNYIhIgmGe8niIvJZt4hQNQJoKTo/ycOZr34Xg9YzQWybKcvh5kc29sY0MACAcAMyKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAowqkDOgMYmQxKFgoUAAAAAAAAAAAAAAAAAAAAAAAABhlyBwoDGJkMEAFSFgoJCgIYAhCbh9gDCgkKAhhiEJyH2AM="}]},"CreateGasLimitOverMaxGasLimitFailsPrecheck":{"placeholderNum":1562,"encodedItems":[{"b64Body":"Cg8KCQiutOStBhC5EhICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAjqgr+xBhCo4qHeARptCiISINU56wSWGGC6f6tZbjXmkKIEFnKzdl0yRPizbz433PvwCiM6IQKHnBEvGhBIV6WQUi2kxO0FDoiCQwCMoxSY4Vz0JJBpBQoiEiAkAiu5D0TTNfuw9XYRxEaban9o6PIijSQLEs4AbCMeYiIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGJsMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCti8GDtNPmtGW9qrTfeEjRDunoGm66UOHhDLZqsZd5ZJejhI4Zx+kkAnO4Kd/5XToaDAjqtOStBhDbnOj2ASIPCgkIrrTkrQYQuRISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiutOStBhC9EhICGAISAhgDGMr5hy0iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBwAEKAxibDCK4ATYwODA2MDQwNTIzNDgwMTU2MDBmNTc2MDAwODBmZDViNTA2MDNmODA2MDFkNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyNjAwMDgwZmRmZWEyNjQ2OTcwNjY3MzU4MjIxMjIwOTg2N2JjOWUyMjJmMjU5Yjc4ODUwMzUwMjY4MjkzYTNmYzljMzk5YWY3ZTE3ODNkNjMzNDE2YzliMjljYmUxZTY0NzM2ZjZjNjM0MzAwMDgwNzAwMzM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw3RCZuSVuQpfSblIKdw9U1JxOOzMfqZ5cEafHEx2sQTmSFQzRTTkv0B3LEkXE3R6lGgwI6rTkrQYQ063B2wMiDwoJCK605K0GEL0SEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="}]},"ContractCreationStoragePriceMatchesFinalExpiry":{"placeholderNum":1564,"encodedItems":[{"b64Body":"Cg8KCQi0tOStBhDZEhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIA6+6zWMQGxR/ceQDOz2OgX2mHC6vEgDbaZA/6MRFLt1EICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGJ0MKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCEQ1mwkK1A1KwDOETX+Utdgm9FnRfqEj5SaP6XP72dzKmEfc0xvi9/J2Bi7cU/iJgaDAjwtOStBhCrt9iFAyIPCgkItLTkrQYQ2RISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxidDBCAqNa5Bw=="},{"b64Body":"Cg8KCQi1tOStBhDbEhICGAISAhgDGP+T4hkiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloyCiISICe0lBaoQH0qRz5W8+OoocQxoefSDo/MdxnwF+0DrAOEEICU69wDSgYIgPjk8gI=","b64Record":"CiUIFhIDGJ4MKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDSzwK4HnNJOB/E9ClJkdQ6vKWyHZ2aRrfgEze7g2h5sAbMl6H7/uLeZUltfgrk8ywaDAjxtOStBhCjo8iqASIPCgkItbTkrQYQ2xISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxieDBCAqNa5Bw=="},{"b64Body":"Cg8KCQi1tOStBhDdEhICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAjxgr+xBhDIi/SEAxptCiISID5Vcjz7oytgJI7M7DV8BSjv6pTtn7YykrUPwaJg4VuaCiM6IQOipVK8tcACFxg1FRP/PyM8n559fhBb6ZdMi+4Pa0p/nwoiEiCmFgpU+4BUUq+avTxSmyQM3/wFtY1gVhHFl7p2QzgR6yIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGJ8MKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCvWtlo9+A4ZluvIfWU3Gi0ixqIGa0rgQh3313qxt8vLJnWeqsTnDW0FssQuUlP50MaDAjxtOStBhCbgoiPAyIPCgkItbTkrQYQ3RISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQi2tOStBhDhEhICGAISAhgDGOHA6C8iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBuAYKAxifDCKwBjYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMDE3ODgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDAyYjU3NjAwMDM1NjBlMDFjODA2M2M2ZGFkMDgyMTQ2MTAwMzA1NzViNjAwMDgwZmQ1YjYxMDAzODYxMDA0ZTU2NWI2MDQwNTE2MTAwNDU5MTkwNjEwMGNiNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYwMDA2MDQwNTE2MTAwNWM5MDYxMDA3ZTU2NWI2MDQwNTE4MDkxMDM5MDYwMDBmMDgwMTU4MDE1NjEwMDc4NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwOTA1MDkwNTY1YjYwNWM4MDYxMDBlNzgzMzkwMTkwNTY1YjYwMDA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MjE2OTA1MDkxOTA1MDU2NWI2MDAwNjEwMGI1ODI2MTAwOGE1NjViOTA1MDkxOTA1MDU2NWI2MTAwYzU4MTYxMDBhYTU2NWI4MjUyNTA1MDU2NWI2MDAwNjAyMDgyMDE5MDUwNjEwMGUwNjAwMDgzMDE4NDYxMDBiYzU2NWI5MjkxNTA1MDU2ZmU2MDgwNjA0MDUyMzQ4MDE1NjAwZjU3NjAwMDgwZmQ1YjUwNjAzZjgwNjAxZDYwMDAzOTYwMDBmM2ZlNjA4MDYwNDA1MjYwMDA4MGZkZmVhMjY0Njk3MDY2NzM1ODIyMTIyMDVjODNiOTljZDQyOGU2Y2Q3OWRkYTYxZGJmM2ZhMDVjYTRlNzIyYTdmN2M3ZTFjMmViY2Q0OWE4MmUxNWQ4MTU2NDczNmY2YzYzNDMwMDA4MGMwMDMzYTI2NDY5NzA2NjczNTgyMjEyMjBhNTIzZjI0ZmNiMDljNWViNzJlYTFjMGY4YzcwZDMxZTQxNzVkNzc4MDdiMWZmOTYzZGRiMzhjY2E4ODFkNDVjNjQ3MzZmNmM2MzQzMDAwODBjMDAzMw==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw/TQznPgrMh8z/WatxEXBNApo9cUhPzfWEQK5Vnwge48ozy4KLoO0TJraUIl/Af56GgwI8rTkrQYQw/DxswEiDwoJCLa05K0GEOESEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQi2tOStBhDjEhICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAjygr+xBhCggc6KAxptCiISIH0xhxW8gWTDP9U8wPlm2Cq++YOpqkAFUmNP93Bx3XBgCiM6IQODnrpZQXd9kiHhaPlLGSUzRnEm9KwGNlHASRynGa+ZYAoiEiBJJiO7duffcKpDODj599KSGSOfqv1+vL6PfNrDiutGryIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGKAMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBPxw9ub5ui3+PXL99hcv7G4TkyujN+d2MN2f2UU+sJSEf9478E2toHVQIx+mjQowwaDAjytOStBhCz55mZAyIPCgkItrTkrQYQ4xISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQi3tOStBhDnEhICGAISAhgDGKeakzEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoB6ggKAxigDCLiCDYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMDIxMTgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDAyYjU3NjAwMDM1NjBlMDFjODA2M2I2MjQwNTdiMTQ2MTAwMzA1NzViNjAwMDgwZmQ1YjYxMDA0YTYwMDQ4MDM2MDM4MTAxOTA2MTAwNDU5MTkwNjEwMTQyNTY1YjYxMDA2MDU2NWI2MDQwNTE2MTAwNTc5MTkwNjEwMTdlNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYwMDA4MDgyOTA1MDgwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2M2M2ZGFkMDgyNjA0MDUxODE2M2ZmZmZmZmZmMTY2MGUwMWI4MTUyNjAwNDAxNjAyMDYwNDA1MTgwODMwMzgxNjAwMDg3NWFmMTE1ODAxNTYxMDBiMzU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAxZjE5NjAxZjgyMDExNjgyMDE4MDYwNDA1MjUwODEwMTkwNjEwMGQ3OTE5MDYxMDFhZTU2NWI5MTUwNTA5MTkwNTA1NjViNjAwMDgwZmQ1YjYwMDA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MjE2OTA1MDkxOTA1MDU2NWI2MDAwNjEwMTBmODI2MTAwZTQ1NjViOTA1MDkxOTA1MDU2NWI2MTAxMWY4MTYxMDEwNDU2NWI4MTE0NjEwMTJhNTc2MDAwODBmZDViNTA1NjViNjAwMDgxMzU5MDUwNjEwMTNjODE2MTAxMTY1NjViOTI5MTUwNTA1NjViNjAwMDYwMjA4Mjg0MDMxMjE1NjEwMTU4NTc2MTAxNTc2MTAwZGY1NjViNWI2MDAwNjEwMTY2ODQ4Mjg1MDE2MTAxMmQ1NjViOTE1MDUwOTI5MTUwNTA1NjViNjEwMTc4ODE2MTAxMDQ1NjViODI1MjUwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDYxMDE5MzYwMDA4MzAxODQ2MTAxNmY1NjViOTI5MTUwNTA1NjViNjAwMDgxNTE5MDUwNjEwMWE4ODE2MTAxMTY1NjViOTI5MTUwNTA1NjViNjAwMDYwMjA4Mjg0MDMxMjE1NjEwMWM0NTc2MTAxYzM2MTAwZGY1NjViNWI2MDAwNjEwMWQyODQ4Mjg1MDE2MTAxOTk1NjViOTE1MDUwOTI5MTUwNTA1NmZlYTI2NDY5NzA2NjczNTgyMjEyMjAxMGFjMGEzOGRiM2Q2NTliOTc0MmQ5ZGJmODg4ODhhNmM0N2VlNTMzYmQxNzU0ZmFjYzVmZjJiYjQ0NGI3ZjE0NjQ3MzZmNmM2MzQzMDAwODBjMDAzMw==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwzp0cI7a+R1VJZAFuy/0un55cngEC46c6anpx7AuVX05J/DL8zhKtrK5EZMRsZ7kLGgwI87TkrQYQg7aovQEiDwoJCLe05K0GEOcSEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQi3tOStBhDpEhICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGJ8MGiISIAd7ByWqlq3eQpDPhs5f+XdU1X6/+Rl9cZLTS5AeOwCrIJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGKEMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjA+hk1V/HiaFo6NGOgtamkNI7ovrcnoTAyj8KjevUZ3Uj2lYTNFD1f2C6yxIPTwyaEaDAjztOStBhDzqP6hAyIPCgkIt7TkrQYQ6RISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQq0FCgMYoQwS+AJggGBAUjSAFWEAEFdgAID9W1BgBDYQYQArV2AANWDgHIBjxtrQghRhADBXW2AAgP1bYQA4YQBOVltgQFFhAEWRkGEAy1ZbYEBRgJEDkPNbYABgQFFhAFyQYQB+VltgQFGAkQOQYADwgBWAFWEAeFc9YACAPj1gAP1bUJBQkFZbYFyAYQDngzkBkFZbYABz//////////////////////////+CFpBQkZBQVltgAGEAtYJhAIpWW5BQkZBQVlthAMWBYQCqVluCUlBQVltgAGAgggGQUGEA4GAAgwGEYQC8VluSkVBQVv5ggGBAUjSAFWAPV2AAgP1bUGA/gGAdYAA5YADz/mCAYEBSYACA/f6iZGlwZnNYIhIgXIO5nNQo5s153aYdvz+gXKTnIqf3x+HC681JqC4V2BVkc29sY0MACAwAM6JkaXBmc1giEiClI/JPywnF63LqHA+McNMeQXXXeAex/5Y92zjMqIHUXGRzb2xjQwAIDAAzIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACjAmgw6AxihDEoWChQAAAAAAAAAAAAAAAAAAAAAAAAGIXIHCgMYoQwQAVIWCgkKAhgCEP+yxQ0KCQoCGGIQgLPFDQ=="},{"b64Body":"Cg8KCQi4tOStBhDrEhICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRgoDGKAMGiISIMvMmShIXgRLhMMXnYGBssXimj74+3ps6nG11ZXWAgpKIJChD0IGCID45PICUgBaAGoLY2VsbGFyIGRvb3I=","b64Record":"CiUIFiIDGKIMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDwFUeFeGUg18EH5eSq3L3Da71g/hNDw8+Xk5K8hE91Iq76lauWL6Ihm+n3bB0CDqEaDAj0tOStBhC7xePGASIPCgkIuLTkrQYQ6xISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQsYGCgMYogwSkQRggGBAUjSAFWEAEFdgAID9W1BgBDYQYQArV2AANWDgHIBjtiQFexRhADBXW2AAgP1bYQBKYASANgOBAZBhAEWRkGEBQlZbYQBgVltgQFFhAFeRkGEBflZbYEBRgJEDkPNbYACAgpBQgHP//////////////////////////xZjxtrQgmBAUYFj/////xZg4BuBUmAEAWAgYEBRgIMDgWAAh1rxFYAVYQCzVz1gAIA+PWAA/VtQUFBQYEBRPWAfGWAfggEWggGAYEBSUIEBkGEA15GQYQGuVluRUFCRkFBWW2AAgP1bYABz//////////////////////////+CFpBQkZBQVltgAGEBD4JhAORWW5BQkZBQVlthAR+BYQEEVluBFGEBKldgAID9W1BWW2AAgTWQUGEBPIFhARZWW5KRUFBWW2AAYCCChAMSFWEBWFdhAVdhAN9WW1tgAGEBZoSChQFhAS1WW5FQUJKRUFBWW2EBeIFhAQRWW4JSUFBWW2AAYCCCAZBQYQGTYACDAYRhAW9WW5KRUFBWW2AAgVGQUGEBqIFhARZWW5KRUFBWW2AAYCCChAMSFWEBxFdhAcNhAN9WW1tgAGEB0oSChQFhAZlWW5FQUJKRUFBW/qJkaXBmc1giEiAQrAo42z1lm5dC2dv4iIimxH7lM70XVPrMX/K7REt/FGRzb2xjQwAIDAAzIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACjAmgw6AxiiDEoWChQAAAAAAAAAAAAAAAAAAAAAAAAGInIHCgMYogwQAVIWCgkKAhgCEP+yxQ0KCQoCGGIQgLPFDQ=="},{"b64Body":"ChAKCQi4tOStBhDtEhIDGJ0MEgIYAxjgrLEDIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46DwoDGKEMEKCNBiIExtrQgg==","b64Record":"CiUIFiIDGKEMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBruH33yBJtEaEoAPqFPCp3tyqICmjAcSBpV8kYKlH+B+Z3g0cskVpB4WsJDv/J/8gaDAj0tOStBhDzzaqrAyIQCgkIuLTkrQYQ7RISAxidDCogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wgNfaAjrFAgoDGKEMEiAAAAAAAAAAAAAAAACioJCqr+DQuTP5mbJQM9Qn42WP2SKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAogPEEOgMYowxyBwoDGKEMEAJyBwoDGKMMEAFSFwoJCgIYYhCArrUFCgoKAxidDBD/rbUF"},{"b64Body":"ChIKCQi4tOStBhDtEhIDGJ0MIAFCOBoiEiAHewclqpat3kKQz4bOX/l3VNV+v/kZfXGS00uQHjsAq0IFCIDO2gNqC2NlbGxhciBkb29y","b64Record":"CgcIFiIDGKMMEjByXxSSn4pB6CAAT8Xp0ey9QhswsdXyrcFLFE5qyNEAoWWEyWYTM8qnEdB5LHTIR48aDAj0tOStBhD0zaqrAyISCgkIuLTkrQYQ7RISAxidDCABQh0KAxijDEoWChSioJCqr+DQuTP5mbJQM9Qn42WP2VIAegwI9LTkrQYQ882qqwM="},{"b64Body":"ChAKCQi5tOStBhDxEhIDGJ4MEgIYAxjgrLEDIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46DwoDGKEMEKCNBiIExtrQgg==","b64Record":"CiUIFiIDGKEMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjA2MFFOI69kpNrnzCSk62LAXVXy4EFi7mboqFSRccxBMt9hpryPw6JWAip1vA39BoAaDAj1tOStBhCD2420ASIQCgkIubTkrQYQ8RISAxieDCogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wgNfaAjrFAgoDGKEMEiAAAAAAAAAAAAAAAABfVshNqY/jzxYWO7yBDxa0Cx0C3iKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAogPEEOgMYpAxyBwoDGKEMEANyBwoDGKQMEAFSFwoJCgIYYhCArrUFCgoKAxieDBD/rbUF"},{"b64Body":"ChIKCQi5tOStBhDxEhIDGJ4MIAFCOBoiEiAHewclqpat3kKQz4bOX/l3VNV+v/kZfXGS00uQHjsAq0IFCIDO2gNqC2NlbGxhciBkb29y","b64Record":"CgcIFiIDGKQMEjAWnRi2lFsEg3ZAMqwyOmdMID4JG7y7hD/ptks749XPkj5LcguHlXKAFNOUhsAdgloaDAj1tOStBhCE2420ASISCgkIubTkrQYQ8RISAxieDCABQh0KAxikDEoWChRfVshNqY/jzxYWO7yBDxa0Cx0C3lIAegwI9bTkrQYQg9uNtAE="},{"b64Body":"ChAKCQi5tOStBhD1EhIDGJ4MEgIYAxjgrLEDIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46LwoDGKIMEKCNBiIktiQFewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYh","b64Record":"CiUIFiIDGKIMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDCudNWJqSJ6MaijW9bO7YlodHSreflzpXDyhreG5q0tmi2Llf/oxvgdsU+CRfkCHkaDAj1tOStBhCz3Jy1AyIQCgkIubTkrQYQ9RISAxieDCogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wgNfaAjrFAgoDGKIMEiAAAAAAAAAAAAAAAACzMwkOgH1sjFDvvPbiJaxw4SXJ/iKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAogPEEOgMYpQxyBwoDGKEMEARyBwoDGKUMEAFSFwoJCgIYYhCArrUFCgoKAxieDBD/rbUF"},{"b64Body":"ChIKCQi5tOStBhD1EhIDGJ4MIAFCOBoiEiAHewclqpat3kKQz4bOX/l3VNV+v/kZfXGS00uQHjsAq0IFCIDO2gNqC2NlbGxhciBkb29y","b64Record":"CgcIFiIDGKUMEjCQPWtqclkILbmIfaZXtXWF9zj1gD6nRzO3VtS2ZUNDzRPl3DsErPuUyJBnYjL6xKwaDAj1tOStBhC03Jy1AyISCgkIubTkrQYQ9RISAxieDCABQh0KAxilDEoWChSzMwkOgH1sjFDvvPbiJaxw4SXJ/lIAegwI9bTkrQYQs9yctQM="}]},"createTokenWithInvalidFixedFeeWithERC721Denomination":{"placeholderNum":1574,"encodedItems":[{"b64Body":"Cg8KCQjAtOStBhCVExICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiM6IQIaYDN4596Q7EUWMfD6Bte9H9NcHKfzEqykgOMRZLwseRCAgOmDsd4WSgUIgM7aAw==","b64Record":"CiUIFhIDGKcMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjChRE1aTbobkt+Jd2+0WLqprQtl9PvU1VpK0kozC58ldFCEfsNid39qdoxBLlU1FdMaCwj8tOStBhCrmdFnIg8KCQjAtOStBhCVExICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUh0KDAoCGAIQ///Rh+K8LQoNCgMYpwwQgIDSh+K8LQ=="},{"b64Body":"Cg8KCQjAtOStBhCXExICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIGuLei+iUePyGclizYiTmmaelK/T+7qg4f0/eH9iQk5vEIDIr6AlSgUIgM7aAw==","b64Record":"CiUIFhIDGKgMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDOiF0TmRunmPL4P1aefXawg8KpQAyiA4cD6xPf7PaxGo7XFMhqyKi4uyrVMvTUjFEaDAj8tOStBhCrt4nMAiIPCgkIwLTkrQYQlxMSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxioDBCAkN/ASg=="},{"b64Body":"Cg8KCQjBtOStBhCZExICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIL7NkDkTqrX2PG943+OmPV0mASSkewZAp0q1fGuwV/cAEIDIr6AlSgUIgM7aAw==","b64Record":"CiUIFhIDGKkMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjD1p4k7j4XvLhVpDtAm1dXrFd6cK+OoPVuOsWK7XTm3rVlgIU832oaV2sDrcOeWP3IaCwj9tOStBhDTzo9xIg8KCQjBtOStBhCZExICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUhkKCgoCGAIQ/4/fwEoKCwoDGKkMEICQ38BK"},{"b64Body":"Cg8KCQjBtOStBhCbExICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAj9gr+xBhC4wKPLAhptCiISILFFuRxkKWwnraor0Wy+mfGmjJfRMUlEzfl8xyLA/RYcCiM6IQJW8droaW8RFgsPZHbpZcefGHkb2DA7B2/bpiopdSuCNgoiEiDPatSbUFp+16SXJ8bTQgAQA5p5PMSpIGqkRAifCdlt4SIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGKoMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBKQ5Hp1gfmETGsHV3Uc/26JkyHbxbxxUcqfHfu2RGp02NxR1eKFsSmhg90L0c2IWEaDAj9tOStBhDLp9HVAiIPCgkIwbTkrQYQmxMSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjCtOStBhCfExICGAISAhgDGIudjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxiqDCKAIDYwYzA2MDQwNTI2MDA5NjA4MDgxOTA1MjY4NzQ2ZjZiNjU2ZTRlNjE2ZDY1NjBiODFiNjBhMDkwODE1MjYyMDAwMDJjOTE2MDAxOTE5MDYyMDAwMGFlNTY1YjUwNjA0MDgwNTE4MDgyMDE5MDkxNTI2MDBiODA4MjUyNmExZDFiZGFkOTViOTRkZTViNTg5YmRiNjBhYTFiNjAyMDkwOTIwMTkxODI1MjYyMDAwMDYxOTE2MDAyOTE2MjAwMDBhZTU2NWI1MDYwNDA4MDUxODA4MjAxOTA5MTUyNjAwNDgwODI1MjYzNmQ2NTZkNmY2MGUwMWI2MDIwOTA5MjAxOTE4MjUyNjIwMDAwOGY5MTYwMDM5MTYyMDAwMGFlNTY1YjUwNjBjODYwMDQ1NTYwMDg2MDA1NTUzNDgwMTU2MjAwMDBhNzU3NjAwMDgwZmQ1YjUwNjIwMDAxOTE1NjViODI4MDU0NjIwMDAwYmM5MDYyMDAwMTU0NTY1YjkwNjAwMDUyNjAyMDYwMDAyMDkwNjAxZjAxNjAyMDkwMDQ4MTAxOTI4MjYyMDAwMGUwNTc2MDAwODU1NTYyMDAwMTJiNTY1YjgyNjAxZjEwNjIwMDAwZmI1NzgwNTE2MGZmMTkxNjgzODAwMTE3ODU1NTYyMDAwMTJiNTY1YjgyODAwMTYwMDEwMTg1NTU4MjE1NjIwMDAxMmI1NzkxODIwMTViODI4MTExMTU2MjAwMDEyYjU3ODI1MTgyNTU5MTYwMjAwMTkxOTA2MDAxMDE5MDYyMDAwMTBlNTY1YjUwNjIwMDAxMzk5MjkxNTA2MjAwMDEzZDU2NWI1MDkwNTY1YjViODA4MjExMTU2MjAwMDEzOTU3NjAwMDgxNTU2MDAxMDE2MjAwMDEzZTU2NWI2MDAxODE4MTFjOTA4MjE2ODA2MjAwMDE2OTU3NjA3ZjgyMTY5MTUwNWI2MDIwODIxMDgxMTQxNTYyMDAwMThiNTc2MzRlNDg3YjcxNjBlMDFiNjAwMDUyNjAyMjYwMDQ1MjYwMjQ2MDAwZmQ1YjUwOTE5MDUwNTY1YjYxNDQyZDgwNjIwMDAxYTE2MDAwMzk2MDAwZjNmZTYwODA2MDQwNTI2MDA0MzYxMDYxMDFlZTU3NjAwMDM1NjBlMDFjODA2MzZmNThiOWQ5MTE2MTAxMGQ1NzgwNjNiYWZjYWY3YTExNjEwMGEwNTc4MDYzZDU3NDQ4YWExMTYxMDA2ZjU3ODA2M2Q1NzQ0OGFhMTQ2MTA0YmE1NzgwNjNkNmZhNDBhZTE0NjEwNGRhNTc4MDYzZTdiMDdjYjYxNDYxMDRlZDU3ODA2M2ZjOGRmMmRhMTQ2MTA1MGQ1NzgwNjNmZTczODZlMTE0NjEwNTIyNTc2MDAwODBmZDViODA2M2JhZmNhZjdhMTQ2MTA0NTI1NzgwNjNjNWNlOWVhNzE0NjEwNDcyNTc4MDYzYzcyZTk3ZjQxNDYxMDQ5MjU3ODA2M2QyMzI0ZGIwMTQ2MTA0YTc1NzYwMDA4MGZkNWI4MDYzOTBlZjc5YzIxMTYxMDBkYzU3ODA2MzkwZWY3OWMyMTQ2MTAzZWE1NzgwNjM5ZDU2MGNiNDE0NjEwM2YyNTc4MDYzYWI4ZDMwZmQxNDYxMDQxMjU3ODA2M2I5MTRiYjc5MTQ2MTA0MzI1NzYwMDA4MGZkNWI4MDYzNmY1OGI5ZDkxNDYxMDNhNzU3ODA2Mzc3ZWQ0YWIyMTQ2MTAzYWY1NzgwNjM4MDFlY2RiZjE0NjEwM2MyNTc4MDYzOGU5M2JjMzMxNDYxMDNjYTU3NjAwMDgwZmQ1YjgwNjMxZmRjODE3ZTExNjEwMTg1NTc4MDYzMzljNDA1MmMxMTYxMDE1NDU3ODA2MzM5YzQwNTJjMTQ2MTAzMzQ1NzgwNjM0NzUzMzdhZDE0NjEwMzU0NTc4MDYzNTUxNjdmMGUxNDYxMDM2NzU3ODA2MzViZTJhMDI2MTQ2MTAzODc1NzYwMDA4MGZkNWI4MDYzMWZkYzgxN2UxNDYxMDJkYjU3ODA2MzI0NTUzMjA2MTQ2MTAyZWU1NzgwNjMyZjNlMGMxMjE0NjEwMzAxNTc4MDYzMzc3YTMyOWYxNDYxMDMxNDU3NjAwMDgwZmQ1YjgwNjMxMmI4OTk0NjExNjEwMWMxNTc4MDYzMTJiODk5NDYxNDYxMDI2ODU3ODA2MzE1MGE5ZmY1MTQ2MTAyODg1NzgwNjMxYzk4NDUwNTE0NjEwMmE4NTc4MDYzMWZhNmE2OTYxNDYxMDJiYjU3NjAwMDgwZmQ1YjgwNjMwOTFjYzg5OTE0NjEwMWYzNTc4MDYzMTE2ODRmNTMxNDYxMDIyMjU3ODA2MzExOTFhMjcyMTQ2MTAyNDI1NzgwNjMxMjk1MTIzYzE0NjEwMjU1NTc1YjYwMDA4MGZkNWI2MTAyMDY2MTAyMDEzNjYwMDQ2MTM1MjY1NjViNjEwNTM3NTY1YjYwNDA1MTYwMDE2MDAxNjBhMDFiMDM5MDkxMTY4MTUyNjAyMDAxNjA0MDUxODA5MTAzOTBmMzViMzQ4MDE1NjEwMjJlNTc2MDAwODBmZDViNTA2MTAyMDY2MTAyM2QzNjYwMDQ2MTM1YWI1NjViNjEwNjA3NTY1YjYxMDIwNjYxMDI1MDM2NjAwNDYxMzVlMjU2NWI2MTA2MzI1NjViNjEwMjA2NjEwMjYzMzY2MDA0NjEzNmI1NTY1YjYxMDdlNzU2NWIzNDgwMTU2MTAyNzQ1NzYwMDA4MGZkNWI1MDYxMDIwNjYxMDI4MzM2NjAwNDYxMzZlYTU2NWI2MTA4NWY1NjViMzQ4MDE1NjEwMjk0NTc2MDAwODBmZDViNTA2MTAyMDY2MTAyYTMzNjYwMDQ2MTM3MzE1NjViNjEwOWQ1NTY1YjYxMDIwNjYxMDJiNjM2NjAwNDYxMzZiNTU2NWI2MTA5ZjU1NjViMzQ4MDE1NjEwMmM3NTc2MDAwODBmZDViNTA2MTAyMDY2MTAyZDYzNjYwMDQ2MTM3OTk1NjViNjEwYWI1NTY1YjYxMDIwNjYxMDJlOTM2NjAwNDYxMzZiNTU2NWI2MTBhZGE1NjViNjEwMjA2NjEwMmZjMzY2MDA0NjEzODE3NTY1YjYxMGI2MzU2NWI2MTAyMDY2MTAzMGYzNjYwMDQ2MTM4NWY1NjViNjEwZWExNTY1YjM0ODAxNTYxMDMyMDU3NjAwMDgwZmQ1YjUwNjEwMjA2NjEwMzJmMzY2MDA0NjEzOGY1NTY1YjYxMGZhYzU2NWIzNDgwMTU2MTAzNDA1NzYwMDA4MGZkNWI1MDYxMDIwNjYxMDM0ZjM2NjAwNDYxMzczMTU2NWI2MTBmY2I1NjViNjEwMjA2NjEwMzYyMzY2MDA0NjEzOTYzNTY1YjYxMGZlNTU2NWIzNDgwMTU2MTAzNzM1NzYwMDA4MGZkNWI1MDYxMDIwNjYxMDM4MjM2NjAwNDYxMzlkNTU2NWI2MTEwMjg1NjViMzQ4MDE1NjEwMzkzNTc2MDAwODBmZDViNTA2MTAyMDY2MTAzYTIzNjYwMDQ2MTNhMmQ1NjViNjExMDQzNTY1YjYxMDIwNjYxMTA1YjU2NWI2MTAyMDY2MTAzYmQzNjYwMDQ2MTNhNWI1NjViNjExMDZkNTY1YjYxMDIwNjYxMTFjYjU2NWIzNDgwMTU2MTAzZDY1NzYwMDA4MGZkNWI1MDYxMDIwNjYxMDNlNTM2NjAwNDYxM2FiNDU2NWI2MTEzMWI1NjViNjEwMjA2NjExMzJiNTY1YjM0ODAxNTYxMDNmZTU3NjAwMDgwZmQ1YjUwNjEwMjA2NjEwNDBkMzY2MDA0NjEzYjExNTY1YjYxMTM0NDU2NWIzNDgwMTU2MTA0MWU1NzYwMDA4MGZkNWI1MDYxMDIwNjYxMDQyZDM2NjAwNDYxM2I1ZTU2NWI2MTEzNTM1NjViMzQ4MDE1NjEwNDNlNTc2MDAwODBmZDViNTA2MTAyMDY2MTA0NGQzNjYwMDQ2MTNiZGE1NjViNjExMzgxNTY1YjM0ODAxNTYxMDQ1ZTU3NjAwMDgwZmQ1YjUwNjEwMjA2NjEwNDZkMzY2MDA0NjEzNWFiNTY1YjYxMTM5YTU2NWIzNDgwMTU2MTA0N2U1NzYwMDA4MGZkNWI1MDYxMDIwNjYxMDQ4ZDM2NjAwNDYxM2MxOTU2NWI2MTEzYjE1NjViMzQ4MDE1NjEwNDllNTc2MDAwODBmZDViNTA2MTAyMDY2MTEzY2U1NjViNjEwMjA2NjEwNGI1MzY2MDA0NjEzODVmNTY1YjYxMTNlMDU2NWIzNDgwMTU2MTA0YzY1NzYwMDA4MGZkNWI1MDYxMDIwNjYxMDRkNTM2NjAwNDYxMzczMTU2NWI2MTE0ZWE1NjViNjEwMjA2NjEwNGU4MzY2MDA0NjEzNmVhNTY1YjYxMTUwMjU2NWIzNDgwMTU2MTA0Zjk1NzYwMDA4MGZkNWI1MDYxMDIwNjYxMDUwODM2NjAwNDYxMzVhYjU2NWI2MTE3YTk1NjViMzQ4MDE1NjEwNTE5NTc2MDAwODBmZDViNTA2MTAyMDY2MTE3YzA1NjViMzQ4MDE1NjEwNTJlNTc2MDAwODBmZDViNTA2MTAyMDY2MTE3ZDI1NjViNjA0MDgwNTE2MDAxODA4MjUyODE4MzAxOTA5MjUyNjAwMDkxODI5MTkwODE2MDIwMDE1YjYxMDU1OTYxMzJmMzU2NWI4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTA1NTE1NzkwNTA1MDkwNTA2MTA1N2I2MDAwNjAwNDg5NjExN2YzNTY1YjgxNjAwMDgxNTE4MTEwNjEwNThlNTc2MTA1OGU2MTNjNzU1NjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDYwMDA2MTA1YTkzMDYwMDA4Nzg3ODY2MTE4Mjg1NjViOTA1MDYwMDA2MTA1Yjk2MDAxODg4YTYxMWEzNTU2NWI5MDUwNjAwMDYxMDVkMDYwMDQ2MDA1NjAwYTYwMWU2MDAxOGU2MTFiMTA1NjViOTA1MDYwMDA4MDYxMDVlNjg1NjAwNDU0NjAwNTU0ODc4NzYxMWI4MDU2NWI5MDkyNTA5MDUwNjAxNjgyMTQ2MTA1Zjg1NzYwMDA4MGZkNWI5YjlhNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDU2NWI2MDAwNjEwNjJiNjEwNjE0NjExY2I0NTY1YjYxMDYxZTg1ODU2MTFkN2E1NjViNjEwNjI2NjExZGUyNTY1YjYxMWUxYjU2NWI5MzkyNTA1MDUwNTY1YjYwNDA4MDUxNjAwNTgwODI1MjYwYzA4MjAxOTA5MjUyNjAwMDkxODI5MTkwODE2MDIwMDE1YjYxMDY1NTYxMzJmMzU2NWI4MTUyNjAyMDAxOTA2MDAxOTA=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwWm8tfO33Sxbn/qtjOYuBpIOckDbWaJ4jJu91+b1c+osv67D6dTHNqMJSSmwhVCvbGgsI/rTkrQYQ8+OheiIPCgkIwrTkrQYQnxMSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjCtOStBhClExICGAISAhgDGPjR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxiqDCKAIDAzOTA4MTYxMDY0ZDU3OTA1MDUwOTA1MDYxMDY3OTYwMDA2MDAxNjAwMzhjNjExZjY4NTY1YjgxNjAwMDgxNTE4MTEwNjEwNjhjNTc2MTA2OGM2MTNjNzU1NjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDYxMDZhNjYwMDI2MDAzNjAwNDhiNjExZjY4NTY1YjgxNjAwMTgxNTE4MTEwNjEwNmI5NTc2MTA2Yjk2MTNjNzU1NjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDYxMDZkMTYwMDQ2MDAyODk2MTFmOWY1NjViODE2MDAyODE1MTgxMTA2MTA2ZTQ1NzYxMDZlNDYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNjEwNmZiNjAwNTgwODg2MTFmOWY1NjViODE2MDAzODE1MTgxMTA2MTA3MGU1NzYxMDcwZTYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNjEwNzM1NjAwNjYwMDE2MDQwNTE4MDYwMjAwMTYwNDA1MjgwNjAwMDgxNTI1MDYxMTdmMzU2NWI4MTYwMDQ4MTUxODExMDYxMDc0ODU3NjEwNzQ4NjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA2MDAwNjEwNzYzOGI2MDAwODg4ODg2NjExODI4NTY1YjkwNTA2MDAwODA2MTA3Nzc4MzYwMDQ1NDYwMDU1NDYxMWZjYTU2NWI5MDkyNTA5MDUwNjAxNjgyMTQ2MTA3ODk1NzYwMDA4MGZkNWI2MTA3OTM4NjgyNjEyMGY4NTY1YjkxNTA2MDE2ODIxNDYxMDdhMjU3NjAwMDgwZmQ1YjYwNDA4MDUxNjAwMDgwODI1MjYwMjA4MjAxOTA5MjUyODE5MDYxMDdjMjkwODQ5MDYwNjQ5MDYxMjFjYzU2NWI5MDkyNTA5MDUwNjAxNjgyMTQ2MTA3ZDQ1NzYwMDA4MGZkNWI1MDkwOWQ5YzUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTY1YjYwNDA4MDUxNjAwMjgwODI1MjYwNjA4MjAxOTA5MjUyNjAwMDkxODI5MTkwODE2MDIwMDE1YjYxMDgwYTYxMzJmMzU2NWI4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTA4MDI1NzkwNTA1MDkwNTA2MDAwNjEwODJmMzA2MDAwODc4Nzg2NjExODI4NTY1YjkwNTA2MDAwODA2MTA4NDM4MzYwMDQ1NDYwMDU1NDYxMWZjYTU2NWI5MDkyNTA5MDUwNjAxNjgyMTQ2MTA4NTU1NzYwMDA4MGZkNWI5Njk1NTA1MDUwNTA1MDUwNTY1YjYwNDA4MDUxNjAwMTgwODI1MjgxODMwMTkwOTI1MjYwMDA5MTgyOTE5MDgxNjAyMDAxNWI2MTA4ODE2MTMyZjM1NjViODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjEwODc5NTc5MDUwNTA5MDUwNjEwOGIyNjAwMDYwMDE2MDQwNTE4MDYwMjAwMTYwNDA1MjgwNjAwMDgxNTI1MDYxMTdmMzU2NWI4MTYwMDA4MTUxODExMDYxMDhjNTU3NjEwOGM1NjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA2MDAwNjEwOGUwODY2MDAwODc4Nzg2NjExODI4NTY1YjkwNTA2MDAwODA2MTAxNjc2MDAxNjAwMTYwYTAxYjAzMTY2Mzc4MTJhMDRiNjBlMDFiODQ2MDA0NTQ2MDA1NTQ2MDQwNTE2MDI0MDE2MTA5MTI5MzkyOTE5MDYxM2VhZTU2NWI2MDQwODA1MTYwMWYxOTgxODQwMzAxODE1MjkxODE1MjYwMjA4MjAxODA1MTYwMDE2MDAxNjBlMDFiMDMxNjYwMDE2MDAxNjBlMDFiMDMxOTkwOTQxNjkzOTA5MzE3OTA5MjUyOTA1MTYxMDk1MDkxOTA2MTNlZDM1NjViNjAwMDYwNDA1MTgwODMwMzgxODU1YWY0OTE1MDUwM2Q4MDYwMDA4MTE0NjEwOThiNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjEwOTkwNTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTA5OWY1NzYwMDA4MGZkNWI2MDAwODA4MjgwNjAyMDAxOTA1MTgxMDE5MDYxMDliNjkxOTA2MTNlZWY1NjViOTA5MjUwOTA1MDYwMTY4MjE0NjEwOWM4NTc2MDAwODBmZDViOTk5ODUwNTA1MDUwNTA1MDUwNTA1MDU2NWI2MDAwNjEwOWVkNjEwOWUyNjExY2I0NTY1YjYxMDYxZTg2ODY4NjYxMjJiNTU2NWI5NDkzNTA1MDUwNTA1NjViNjA0MDgwNTE2MDAxODA4MjUyODE4MzAxOTA5MjUyNjAwMDkxODI5MTkwODE2MDIwMDE1YjYxMGExNzYxMzJmMzU2NWI4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTBhMGY1NzkwNTA1MDkwNTA2MTBhMzQ2MTMyZjM1NjViNjAwNDgxNTI2MTBhNDA2MTMzMTI1NjViMzA2MDIwODA4MzAxOTE5MDkxNTI2MDAxODI1MjgyMDE4MTkwNTI4MjUxODI5MDg0OTA2MDAwOTA2MTBhNjg1NzYxMGE2ODYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNjAwMDYxMGE4MzMwNjAwMDg5ODk4ODYxMTgyODU2NWI5MDUwNjAwMDgwNjEwYTk3ODM2MDA0NTQ2MDA1NTQ2MTFmY2E1NjViOTA5MjUwOTA1MDYwMTY4MjE0NjEwYWE5NTc2MDAwODBmZDViOTg5NzUwNTA1MDUwNTA1MDUwNTA1NjViNjAwMDYxMDljODYxMGFjMjYxMWNiNDU2NWI2MTBhY2Q4YjhhODc2MTIzMWY1NjViNjEwNjI2OGI4YThhOGE4OTYxMjNkNDU2NWI2MDAwODA2MTBiMjQzMDgyODY4NjgyNjA0MDUxOTA4MDgyNTI4MDYwMjAwMjYwMjAwMTgyMDE2MDQwNTI4MDE1NjEwYjFlNTc4MTYwMjAwMTViNjEwYjBiNjEzMmYzNTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMGIwMzU3OTA1MDViNTA2MTE4Mjg1NjViOTA1MDYxMGI0OTYwNDA4MDUxNjA2MDgxMDE4MjUyNjAwMDgwODI1MjYwMjA4MjAxODE5MDUyOTE4MTAxOTE5MDkxNTI5MDU2NWI2MDM3ODE1MjYxMDEwMDgyMDE4MTkwNTI2MDAwODA2MTA4NDM4NDgyODA2MTFmY2E1NjViNjA0MDgwNTE2MDAzODA4MjUyNjA4MDgyMDE5MDkyNTI2MDAwOTE4MjkxOTA4MTYwMjAwMTViNjEwYjg2NjEzMmYzNTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMGI3ZTU3OTA1MDUwOTA1MDYxMGJhODYwMDA2MDAzODc2MTE3ZjM1NjViODE2MDAwODE1MTgxMTA2MTBiYmI1NzYxMGJiYjYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNjEwYmQzNjAwNDYwMDIzMDYxMWY5ZjU2NWI4MTYwMDE4MTUxODExMDYxMGJlNjU3NjEwYmU2NjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA2MTBiZmU2MDA2NjAwMjMwNjExZjlmNTY1YjgxNjAwMjgxNTE4MTEwNjEwYzExNTc2MTBjMTE2MTNjNzU1NjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDYwMDA2MTBjMmMzMDYwMDA4Nzg3ODY2MTE4Mjg1NjViOTA1MDYwMDA4MDYxMGMzZTgzNjAxZTYwMDg2MTFmY2E1NjViOTA5MjUwOTA1MDYwMTY4MjE0NjEwYzUwNTc2MDAwODBmZDViODA5NDUwNjAwMDgxNjAwMTYwMDE2MGEwMWIwMzE2NjMwNmZkZGUwMzYwNDA1MTgxNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYwMDA2MDQwNTE4MDgzMDM4MTg2NWFmYTE1ODAxNTYxMGM5MzU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAwMDgyM2U2MDFmM2Q5MDgxMDE2MDFmMTkxNjgyMDE2MDQwNTI2MTBjYmI5MTkwODEwMTkwNjEzZjE0NTY1YjkwNTA2MDAxNjA0MDUxNjEwY2NjOTE5MDYxM2ZiYzU2NWI2MDQwNTE4MDkxMDM5MDIwODE4MDUxOTA2MDIwMDEyMDE0NjEwZDI0NTc2MDQwNTE2MjQ2MWJjZDYwZTUxYjgxNTI2MDIwNjAwNDgyMDE1MjYwMTM2MDI0ODIwMTUyNzIxMzk4NWI1OTQ4MWE1Y2M4MWI5YmRkMDgxOGRiZGM5Yzk5NThkZDYwNmExYjYwNDQ4MjAxNTI2MDY0MDE1YjYwNDA1MTgwOTEwMzkwZmQ1YjYwMDA4MjYwMDE2MDAxNjBhMDFiMDMxNjYzMTgxNjBkZGQ2MDQwNTE4MTYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MDIwNjA0MDUxODA4MzAzODE4NjVhZmExNTgwMTU2MTBkNjQ1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA2MDQwNTEzZDYwMWYxOTYwMWY4MjAxMTY4MjAxODA2MDQwNTI1MDgxMDE5MDYxMGQ4ODkxOTA2MTQwNTg1NjViOTA1MDgwNjAxZTE0NjEwZGRhNTc2MDQwNTE2MjQ2MWJjZDYwZTUxYjgxNTI2MDIwNjAwNDgyMDE1MjYwMWI2MDI0ODIwMTUyN2Y1NDZmNzQ2MTZjMjA3Mzc1NzA3MDZjNzkyMDY5NzMyMDZlNmY3NDIwNjM2ZjcyNzI2NTYzNzQwMDAwMDAwMDAwNjA0NDgyMDE1MjYwNjQwMTYxMGQxYjU2NWI2MDQwNTE2M2E5MDU5Y2JiNjBlMDFiODE1MjYwMDE2MDAxNjBhMDFiMDM4YTgxMTY2MDA0ODMwMTUyNjAxNDYwMjQ4MzAxNTI2MDAwOTE5MDg1MTY5MDYzYTkwNTljYmI5MDYwNDQwMTYwMjA2MDQwNTE4MDgzMDM4MTYwMDA4NzVhZjExNTgwMTU2MTBlMmQ1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA2MDQwNTEzZDYwMWYxOTYwMWY4MjAxMTY4MjAxODA2MDQwNTI1MDgxMDE5MDYxMGU1MTkxOTA2MTQwNzE1NjViOTA1MDgwNjEwZTkzNTc2MDQwNTE2MjQ2MWI=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwdb45xLdCKqSeIMyKdd6Y/xm15IU+GW4uO8a1ez/WExfykwWEz25rzoNcAZLLikSuGgwI/rTkrQYQu9yx3wIiDwoJCMK05K0GEKUTEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjDtOStBhCrExICGAISAhgDGPfR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxiqDCKAIGNkNjBlNTFiODE1MjYwMjA2MDA0ODIwMTUyNjAxMDYwMjQ4MjAxNTI2ZjU0NzI2MTZlNzM2NjY1NzIyMDY2NjE2OTZjNjU2NDIxNjA4MDFiNjA0NDgyMDE1MjYwNjQwMTYxMGQxYjU2NWI1MDUwNTA1MDUwNTA1MDkzOTI1MDUwNTA1NjViNjA0MDgwNTE2MDAyODA4MjUyNjA2MDgyMDE5MDkyNTI2MDAwOTE4MjkxOTA4MTYwMjAwMTViNjEwZWM0NjEzMmYzNTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMGViYzU3OTA1MDUwOTA1MDYxMGVlNjYwMDA2MDAyOGE2MTFmOWY1NjViODE2MDAwODE1MTgxMTA2MTBlZjk1NzYxMGVmOTYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNjEwZjExNjAwNDYwMDM4NTYxMTdmMzU2NWI4MTYwMDE4MTUxODExMDYxMGYyNDU3NjEwZjI0NjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA2MDAwNjEwZjNmODg2MDAwODg4ODg2NjExODI4NTY1YjYwMDE2MDgwODIwMTUyNjEwMTkwNjBhMDgyMDE1MjkwNTA2MDAwNjEwZjYyNjAwNDYwMDU4MzhiODE4ZTYxMjQ4ZDU2NWI5MDUwNjAwMDgwNjEwNWU2ODQ4MjYwNDA1MTkwODA4MjUyODA2MDIwMDI2MDIwMDE4MjAxNjA0MDUyODAxNTYxMGZhNTU3ODE2MDIwMDE1YjYxMGY5MjYxMzM1NTU2NWI4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTBmOGE1NzkwNTA1YjUwODU2MTI0ZDE1NjViNjAwMDYxMGZjMjYxMGZiZDg2ODY4Njg2NjEyNTQ0NTY1YjYxMjVjNTU2NWI5NTk0NTA1MDUwNTA1MDU2NWI2MDAwNjEwOWVkNjEwZmQ4NjExY2I0NTY1YjYxMDYxZTg2ODY4NjYwMDA2MTI3MWM1NjViNjAwMDgwNjEwZmYzNjAwMzg2NjEyN2MwNTY1YjkwNTA2MDAwNjExMDA1ODc2MDAwODc4Nzg2NjExODI4NTY1YjYwMDE2MDgwODIwMTgxOTA1MjYwMGE2MGEwODMwMTUyNjBjMDgyMDE1MjkwNTA2MDAwODA2MTBhOTc4MzYxMjgzZDU2NWI2MDAwNjEwZmMyNjExMDM1NjExY2I0NTY1YjYwNjA2MTA2MjY4ODg4ODg4ODYxMjk2NTU2NWI2MDAwNjEwOWVkNjExMDUwNjExY2I0NTY1YjYxMDYxZTg1ODc4NjYxMjlkMTU2NWI2MDAwNjExMDY4NjEwZmJkNjExY2I0NTY1YjkwNTA5MDU2NWI2MDQwODA1MTYwMDE4MDgyNTI4MTgzMDE5MDkyNTI2MDAwOTE4MjkxOTA4MTYwMjAwMTViNjExMDhmNjEzMmYzNTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMTA4NzU3OTA1MDUwOTA1MDYxMTBiMTYwMDA2MDA0ODg2MTE3ZjM1NjViODE2MDAwODE1MTgxMTA2MTEwYzQ1NzYxMTBjNDYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNjAwMDYxMTBkZjMwNjAwMDg3ODc4NjYxMTgyODU2NWI5MDUwNjAwMDYxMTBlZTYwMDE4ODYxMmExMjU2NWI2MDQwODA1MTYwMDE4MDgyNTI4MTgzMDE5MDkyNTI5MTkyNTA2MDAwOTE5MDgxNjAyMDAxNWI2MTExMTE2MTMzNTU1NjViODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjExMTA5NTc5MDUwNTA5MDUwODE4MTYwMDA4MTUxODExMDYxMTEzYTU3NjExMTNhNjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA2MDAwODA2MTExYWI4NTYwMDQ1NDYwMDU1NDg2NjAwMDYwMDE2MDAxNjA0MDFiMDM4MTExMTU2MTExNmM1NzYxMTE2YzYxMzQzMjU2NWI2MDQwNTE5MDgwODI1MjgwNjAyMDAyNjAyMDAxODIwMTYwNDA1MjgwMTU2MTExYTU1NzgxNjAyMDAxNWI2MTExOTI2MTMzODM1NjViODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjExMThhNTc5MDUwNWI1MDYxMWI4MDU2NWI5MDkyNTA5MDUwNjAxNjgyMTQ2MTExYmQ1NzYwMDA4MGZkNWI5YTk5NTA1MDUwNTA1MDUwNTA1MDUwNTA1NjViNjAwMDYxMTFkNTYxMzNiODU2NWI2MDAxODA1NDYxMTFlMjkwNjEzZjgxNTY1YjgwNjAxZjAxNjAyMDgwOTEwNDAyNjAyMDAxNjA0MDUxOTA4MTAxNjA0MDUyODA5MjkxOTA4MTgxNTI2MDIwMDE4MjgwNTQ2MTEyMGU5MDYxM2Y4MTU2NWI4MDE1NjExMjViNTc4MDYwMWYxMDYxMTIzMDU3NjEwMTAwODA4MzU0MDQwMjgzNTI5MTYwMjAwMTkxNjExMjViNTY1YjgyMDE5MTkwNjAwMDUyNjAyMDYwMDAyMDkwNWI4MTU0ODE1MjkwNjAwMTAxOTA2MDIwMDE4MDgzMTE2MTEyM2U1NzgyOTAwMzYwMWYxNjgyMDE5MTViNTA1MDUwOTE4MzUyNTA1MDYwMDI4MDU0NjExMjcwOTA2MTNmODE1NjViODA2MDFmMDE2MDIwODA5MTA0MDI2MDIwMDE2MDQwNTE5MDgxMDE2MDQwNTI4MDkyOTE5MDgxODE1MjYwMjAwMTgyODA1NDYxMTI5YzkwNjEzZjgxNTY1YjgwMTU2MTEyZTk1NzgwNjAxZjEwNjExMmJlNTc2MTAxMDA4MDgzNTQwNDAyODM1MjkxNjAyMDAxOTE2MTEyZTk1NjViODIwMTkxOTA2MDAwNTI2MDIwNjAwMDIwOTA1YjgxNTQ4MTUyOTA2MDAxMDE5MDYwMjAwMTgwODMxMTYxMTJjYzU3ODI5MDAzNjAxZjE2ODIwMTkxNWI1MDUwNTA1MDUwNjAyMDgyMDE1MjMwNjA0MDgyMDE1MjYwMDA4MDYxMTMwOTgzNjBjODYwMDg2MTFmY2E1NjViOTA5MjUwOTA1MDYwMTY4MjE0NjEwNjJiNTc2MDAwODBmZDViNjAwMDYxMDllZDYxMGZiZDg1ODU4NTYxMmE0MzU2NWI2MDAwNjExMzM1NjEzM2I4NTY1YjYwMDA4MDYxMTMwOTgzNjAwMDgwNjExZmNhNTY1YjYwMDA2MTA2MmI2MTBmYmQ4NDg0NjEyN2MwNTY1YjYwMDA2MTEzNzY2MTEzNjA2MTFjYjQ1NjViNjExMzZhODk4NjYxMmFjMjU2NWI2MTA2MjY4OTg5ODk4ODYxMjk2NTU2NWI5Nzk2NTA1MDUwNTA1MDUwNTA1NjViNjAwMDYxMGZjMjYxMTM4ZTYxMWNiNDU2NWI2MTA2MWU4Nzg3ODc4NzYxMjcxYzU2NWI2MDAwNjEwNjJiNjExM2E3NjExY2I0NTY1YjYxMDYxZTg1ODU2MTJiMDI1NjViNjAwMDYxMTM3NjYxMTNiZTYxMWNiNDU2NWI2MDYwNjEwNjI2OGE4YThhOGE4YThhNjExYjEwNTY1YjYwMDA2MTEwNjg2MTEzZGI2MTFjYjQ1NjViNjEyYjQyNTY1YjYwNDA4MDUxNjAwMjgwODI1MjYwNjA4MjAxOTA5MjUyNjAwMDkxODI5MTkwODE2MDIwMDE1YjYxMTQwMzYxMzJmMzU2NWI4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTEzZmI1NzkwNTA1MDkwNTA2MTE0MjU2MDAwNjAwMjhhNjExZjlmNTY1YjgxNjAwMDgxNTE4MTEwNjExNDM4NTc2MTE0Mzg2MTNjNzU1NjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDYxMTQ1MDYwMDQ2MDAzODU2MTE3ZjM1NjViODE2MDAxODE1MTgxMTA2MTE0NjM1NzYxMTQ2MzYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNjAwMDYxMTQ3ZTg4NjAwMDg4ODg4NjYxMTgyODU2NWI2MDAxNjA4MDgyMDE1MjYxMDE5MDYwYTA4MjAxNTI5MDUwNjAwMDYxMTRhMTYwMDQ2MDA1NjAwYThiOGQ2MTJjOTQ1NjViOTA1MDYwMDA4MDYxMDVlNjg0ODI2MDQwNTE5MDgwODI1MjgwNjAyMDAyNjAyMDAxODIwMTYwNDA1MjgwMTU2MTBmYTU1NzgxNjAyMDAxNWI2MTE0ZDE2MTMzNTU1NjViODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjExNGM5NTc5MDUwNTA4NTYxMjRkMTU2NWI2MDAwNjEwOWVkNjExNGY3NjExY2I0NTY1YjYxMDYxZTg2ODY4NjYxMWEzNTU2NWI2MDQwODA1MTYwMDI4MDgyNTI2MDYwODIwMTkwOTI1MjYwMDA5MTgyOTE5MDgxNjAyMDAxNWI2MTE1MjU2MTMyZjM1NjViODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjExNTFkNTc5MDUwNTA5MDUwNjExNTQ3NjAwMDYwMDI4NzYxMWY5ZjU2NWI4MTYwMDA4MTUxODExMDYxMTU1YTU3NjExNTVhNjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA2MTE1NzI2MDA0NjAwMjg3NjExZjlmNTY1YjgxNjAwMTgxNTE4MTEwNjExNTg1NTc2MTE1ODU2MTNjNzU1NjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDYwMDA2MTE1YTAzMDYwMDA4Nzg3ODY2MTE4Mjg1NjViOTA1MDYwMDA2MTE1YjE2MDA0NjAwNTg5NjEyZDY4NTY1YjkwNTA2MDAwODA2MTE1ZmE4NDgyNjA0MDUxOTA4MDgyNTI4MDYwMjAwMjYwMjAwMTgyMDE2MDQwNTI4MDE1NjEwZmE1NTc4MTYwMjAwMTViNjExNWUxNjEzMzU1NTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMTVkOTU3OTA1MDUwODU2MTI0ZDE1NjViOTA5MjUwOTA1MDYwMTY4MjE0NjExNjBjNTc2MDAwODBmZDViODA5NTUwNjAwMDgxNjAwMTYwMDE2MGEwMWIwMzE2NjMwNmZkZGUwMzYwNDA1MTgxNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYwMDA2MDQwNTE4MDgzMDM4MTg2NWFmYTE1ODAxNTYxMTY0ZjU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAwMDgyM2U2MDFmM2Q=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw4+Onvj/Y6jh9dpfRB9xbPqiiHPCz71cHhK7oS/DCatbzbhVr3j2qZT09BgPU0aFhGgwI/7TkrQYQ8+3WgwEiDwoJCMO05K0GEKsTEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjDtOStBhCxExICGAISAhgDGPfR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxiqDCKAIDkwODEwMTYwMWYxOTE2ODIwMTYwNDA1MjYxMTY3NzkxOTA4MTAxOTA2MTNmMTQ1NjViOTA1MDYwMDE2MDQwNTE2MTE2ODg5MTkwNjEzZmJjNTY1YjYwNDA1MTgwOTEwMzkwMjA4MTgwNTE5MDYwMjAwMTIwMTQ2MTE2ZGI1NzYwNDA1MTYyNDYxYmNkNjBlNTFiODE1MjYwMjA2MDA0ODIwMTUyNjAxMzYwMjQ4MjAxNTI3MjEzOTg1YjU5NDgxYTVjYzgxYjliZGQwODE4ZGJkYzljOTk1OGRkNjA2YTFiNjA0NDgyMDE1MjYwNjQwMTYxMGQxYjU2NWI2MDAwODI2MDAxNjAwMTYwYTAxYjAzMTY2Mzk1ZDg5YjQxNjA0MDUxODE2M2ZmZmZmZmZmMTY2MGUwMWI4MTUyNjAwNDAxNjAwMDYwNDA1MTgwODMwMzgxODY1YWZhMTU4MDE1NjExNzFiNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDAwODIzZTYwMWYzZDkwODEwMTYwMWYxOTE2ODIwMTYwNDA1MjYxMTc0MzkxOTA4MTAxOTA2MTNmMTQ1NjViOTA1MDYwMDI2MDQwNTE2MTE3NTQ5MTkwNjEzZmJjNTY1YjYwNDA1MTgwOTEwMzkwMjA4MTgwNTE5MDYwMjAwMTIwMTQ2MTBlOTM1NzYwNDA1MTYyNDYxYmNkNjBlNTFiODE1MjYwMjA2MDA0ODIwMTUyNjAxNTYwMjQ4MjAxNTI3NDE0ZGU1YjU4OWJkYjA4MWE1Y2M4MWI5YmRkMDgxOGRiZGM5Yzk5NThkZDYwNWExYjYwNDQ4MjAxNTI2MDY0MDE2MTBkMWI1NjViNjAwMDYxMDYyYjYxMTdiNjYxMWNiNDU2NWI2MTA2MWU4NTg1NjEyYWMyNTY1YjYwMDA2MTEwNjg2MTE3Y2Q2MTFjYjQ1NjViNjEyZGE5NTY1YjYwMDA2MTEwNjg2MTBmYmQ2MDA0NjAwMTYwNDA1MTgwNjAyMDAxNjA0MDUyODA2MDAwODE1MjUwNjEyYTQzNTY1YjYxMTdmYjYxMzJmMzU2NWI2MDQwNTE4MDYwNDAwMTYwNDA1MjgwNjExODBmODY2MTJmY2U1NjViODE1MjYwMjAwMTYxMTgxZTg1ODU2MTMwNjA1NjViOTA1Mjk0OTM1MDUwNTA1MDU2NWI2MTE4MzA2MTMzYjg1NjViNjA0MDgwNTE2MDYwODEwMTgyNTI2M2ZmZmZmZmZmODc4MTE2ODI1MjYwMDE2MDAxNjBhMDFiMDM4NzE2NjAyMDgzMDE1Mjg1MTY5MTgxMDE5MTkwOTE1MjYwMDE4MDU0NjExODY5OTA2MTNmODE1NjViODA2MDFmMDE2MDIwODA5MTA0MDI2MDIwMDE2MDQwNTE5MDgxMDE2MDQwNTI4MDkyOTE5MDgxODE1MjYwMjAwMTgyODA1NDYxMTg5NTkwNjEzZjgxNTY1YjgwMTU2MTE4ZTI1NzgwNjAxZjEwNjExOGI3NTc2MTAxMDA4MDgzNTQwNDAyODM1MjkxNjAyMDAxOTE2MTE4ZTI1NjViODIwMTkxOTA2MDAwNTI2MDIwNjAwMDIwOTA1YjgxNTQ4MTUyOTA2MDAxMDE5MDYwMjAwMTgwODMxMTYxMThjNTU3ODI5MDAzNjAxZjE2ODIwMTkxNWI1MDUwNTA5MTg0NTI1MDUwNjAwMjgwNTQ2MTE4Zjc5MDYxM2Y4MTU2NWI4MDYwMWYwMTYwMjA4MDkxMDQwMjYwMjAwMTYwNDA1MTkwODEwMTYwNDA1MjgwOTI5MTkwODE4MTUyNjAyMDAxODI4MDU0NjExOTIzOTA2MTNmODE1NjViODAxNTYxMTk3MDU3ODA2MDFmMTA2MTE5NDU1NzYxMDEwMDgwODM1NDA0MDI4MzUyOTE2MDIwMDE5MTYxMTk3MDU2NWI4MjAxOTE5MDYwMDA1MjYwMjA2MDAwMjA5MDViODE1NDgxNTI5MDYwMDEwMTkwNjAyMDAxODA4MzExNjExOTUzNTc4MjkwMDM2MDFmMTY4MjAxOTE1YjUwNTA1MDUwNTA2MDIwODMwMTUyNjAwMTYwMDE2MGEwMWIwMzg3MTY2MDQwODMwMTUyNjBlMDgyMDE4MzkwNTI2MTAxMDA4MjAxODE5MDUyNjAwMzgwNTQ2MTE5YTU5MDYxM2Y4MTU2NWI4MDYwMWYwMTYwMjA4MDkxMDQwMjYwMjAwMTYwNDA1MTkwODEwMTYwNDA1MjgwOTI5MTkwODE4MTUyNjAyMDAxODI4MDU0NjExOWQxOTA2MTNmODE1NjViODAxNTYxMWExZTU3ODA2MDFmMTA2MTE5ZjM1NzYxMDEwMDgwODM1NDA0MDI4MzUyOTE2MDIwMDE5MTYxMWExZTU2NWI4MjAxOTE5MDYwMDA1MjYwMjA2MDAwMjA5MDViODE1NDgxNTI5MDYwMDEwMTkwNjAyMDAxODA4MzExNjExYTAxNTc4MjkwMDM2MDFmMTY4MjAxOTE1YjUwNTA1MDUwNTA4MjYwNjAwMTgxOTA1MjUwNTA5NTk0NTA1MDUwNTA1MDU2NWI2MDQwODA1MTYwMDM4MDgyNTI2MDgwODIwMTkwOTI1MjYwNjA5MTgxNjAyMDAxNWI2MTFhNTU2MTMzNTU1NjViODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjExYTRkNTc5MDUwNTA5MDUwNjAwMDYxMWE3Nzg1ODU4NTYxMzBmMzU2NWI5MDUwNjAwMDYxMWE4ZjYxMWE4OTg3NjAwMjYxNDBhNDU2NWI4NTYxMzExZTU2NWI5MDUwNjAwMDYxMWFhNzYxMWFhMTg4NjAwNDYxNDBhNDU2NWI4NjYxMzE0ODU2NWI5MDUwODI4NDYwMDA4MTUxODExMDYxMWFiZDU3NjExYWJkNjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA4MTg0NjAwMTgxNTE4MTEwNjExYWRjNTc2MTFhZGM2MTNjNzU1NjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDgwODQ2MDAyODE1MTgxMTA2MTFhZmI1NzYxMWFmYjYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNTA1MDUwOTM5MjUwNTA1MDU2NWI2MDQwODA1MTYwMDE4MDgyNTI4MTgzMDE5MDkyNTI2MDYwOTE4MTYwMjAwMTViNjExYjJmNjEzMzgzNTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMWIyNzU3OTA1MDUwOTA1MDYwMDA2MTFiNTQ4ODg4ODg4ODg4ODg2MTMxNzI1NjViOTA1MDgwODI2MDAwODE1MTgxMTA2MTFiNmE1NzYxMWI2YTYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNTA5Njk1NTA1MDUwNTA1MDUwNTY1YjYwMDA4MDg2ODA2MTAxMDAwMTUxNjAwMDAxNTE2M2ZmZmZmZmZmMTY2MDAwMTQ4MDE1NjExYmIwNTc1MDYxMDEwMDgxMDE1MTYwNDAwMTUxNjNmZmZmZmZmZjE2MTU1YjE1NjExYmM2NTc2MTAxMDA4MTAxNTE2Mjc2YTcwMDYwNDA5MDkxMDE1MjViNjAwMDgwNjEwMTY3NjAwMTYwMDE2MGEwMWIwMzE2MzQ2MzRjMzgxYWU3NjBlMDFiOGM4YzhjOGM4YzYwNDA1MTYwMjQwMTYxMWJmNzk1OTQ5MzkyOTE5MDYxNDE0YjU2NWI2MDQwODA1MTYwMWYxOTgxODQwMzAxODE1MjkxODE1MjYwMjA4MjAxODA1MTYwMDE2MDAxNjBlMDFiMDMxNjYwMDE2MDAxNjBlMDFiMDMxOTkwOTQxNjkzOTA5MzE3OTA5MjUyOTA1MTYxMWMzNTkxOTA2MTNlZDM1NjViNjAwMDYwNDA1MTgwODMwMzgxODU4NzVhZjE5MjUwNTA1MDNkODA2MDAwODExNDYxMWM3MjU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMWM3NzU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjExYzhhNTc2MDE1NjAwMDYxMWM5ZTU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMWM5ZTkxOTA2MTQyMjI1NjViNjAwMzkxOTA5MTBiOWI5MDlhNTA5ODUwNTA1MDUwNTA1MDUwNTA1MDU2NWI2MDQwODA1MTYwMDI4MDgyNTI2MDYwODI4MTAxOTA5MzUyODE2MDIwMDE1YjYxMWNkMjYxMzJmMzU2NWI4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTFjY2E1NzkwNTA1MDkwNTA2MTFkMDI2MDAxODA2MDQwNTE4MDYwMjAwMTYwNDA1MjgwNjAwMDgxNTI1MDYxMTdmMzU2NWI4MTYwMDA4MTUxODExMDYxMWQxNTU3NjExZDE1NjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA2MDQwNTE4MDYwNDAwMTYwNDA1MjgwNjExZDM3NjAwNDYwMDY2MTMxYjY1NjViODE1MjYwMjAwMTYxMWQ1NjYwMDI2MDQwNTE4MDYwMjAwMTYwNDA1MjgwNjAwMDgxNTI1MDYxMzA2MDU2NWI4MTUyNTA4MTYwMDE4MTUxODExMDYxMWQ2YzU3NjExZDZjNjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA5MDU2NWI2MDQwODA1MTYwMDE4MDgyNTI4MTgzMDE5MDkyNTI2MDYwOTE4MTYwMjAwMTViNjExZDk5NjEzMzU1NTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMWQ5MTU3OTA1MDUwOTA1MDYwMDA2MTFkYmE4NDg0NjEzMTQ4NTY1YjkwNTA4MDgyNjAwMDgxNTE4MTEwNjExZGQwNTc2MTFkZDA2MTNjNzU1NjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDUwOTI5MTUwNTA1NjViNjA0MDgwNTE2MDAwODA4MjUyNjAyMDgyMDE5MDkyNTI2MDYwOTE2MTFlMTU1NjViNjExZTAyNjEzMzgzNTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMWRmYTU3OTA1MDViNTA5MDUwOTA1NjViNjAwMDYxMWUyNTYxMzNiODU2NWI2MDAxODA1NDYxMWUzMjkwNjEzZjgxNTY1YjgwNjAxZjAxNjAyMDgwOTEwNDAyNjAyMDAxNjA0MDUxOTA4MTAxNjA0MDUyODA5MjkxOTA4MTgxNTI2MDIwMDE4MjgwNTQ2MTFlNWU5MDYxM2Y4MTU2NWI=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwaAWoIfveCExRaAaF7MpwRb7wf2tmSn/PMW5UTufAX/eRLPnmfTeRADawla7y5jeiGgwI/7TkrQYQw+TK6AIiDwoJCMO05K0GELETEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjEtOStBhC3ExICGAISAhgDGPbR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxiqDCKAIDgwMTU2MTFlYWI1NzgwNjAxZjEwNjExZTgwNTc2MTAxMDA4MDgzNTQwNDAyODM1MjkxNjAyMDAxOTE2MTFlYWI1NjViODIwMTkxOTA2MDAwNTI2MDIwNjAwMDIwOTA1YjgxNTQ4MTUyOTA2MDAxMDE5MDYwMjAwMTgwODMxMTYxMWU4ZTU3ODI5MDAzNjAxZjE2ODIwMTkxNWI1MDUwNTA5MTgzNTI1MDUwNjAwMjgwNTQ2MTFlYzA5MDYxM2Y4MTU2NWI4MDYwMWYwMTYwMjA4MDkxMDQwMjYwMjAwMTYwNDA1MTkwODEwMTYwNDA1MjgwOTI5MTkwODE4MTUyNjAyMDAxODI4MDU0NjExZWVjOTA2MTNmODE1NjViODAxNTYxMWYzOTU3ODA2MDFmMTA2MTFmMGU1NzYxMDEwMDgwODM1NDA0MDI4MzUyOTE2MDIwMDE5MTYxMWYzOTU2NWI4MjAxOTE5MDYwMDA1MjYwMjA2MDAwMjA5MDViODE1NDgxNTI5MDYwMDEwMTkwNjAyMDAxODA4MzExNjExZjFjNTc4MjkwMDM2MDFmMTY4MjAxOTE1YjUwNTA1MDUwNTA2MDIwODIwMTUyMzA2MDQwODIwMTUyNjBlMDgxMDE4NTkwNTI2MDA0NTQ2MDA1NTQ2MDAwOTE4MjkxNjEwODQzOTE4NTkxODk4OTYxMWI4MDU2NWI2MTFmNzA2MTMyZjM1NjViNjA0MDUxODA2MDQwMDE2MDQwNTI4MDYxMWY4NTg3ODc2MTMxYjY1NjViODE1MjYwMjAwMTYxMWY5NDg1ODU2MTMwNjA1NjViOTA1Mjk1OTQ1MDUwNTA1MDUwNTY1YjYxMWZhNzYxMzJmMzU2NWI2MDQwNTE4MDYwNDAwMTYwNDA1MjgwNjExZmJiODY2MTJmY2U1NjViODE1MjYwMjAwMTYxMTgxZTg1ODU2MTMxY2Y1NjViNjAwMDgwODQ4MDYxMDEwMDAxNTE2MDAwMDE1MTYzZmZmZmZmZmYxNjYwMDAxNDgwMTU2MTFmZmE1NzUwNjEwMTAwODEwMTUxNjA0MDAxNTE2M2ZmZmZmZmZmMTYxNTViMTU2MTIwMTA1NzYxMDEwMDgxMDE1MTYyNzZhNzAwNjA0MDkwOTEwMTUyNWI2MDAwODA2MTAxNjc2MDAxNjAwMTYwYTAxYjAzMTYzNDYzNzgxMmEwNGI2MGUwMWI4YThhOGE2MDQwNTE2MDI0MDE2MTIwM2Q5MzkyOTE5MDYxM2VhZTU2NWI2MDQwODA1MTYwMWYxOTgxODQwMzAxODE1MjkxODE1MjYwMjA4MjAxODA1MTYwMDE2MDAxNjBlMDFiMDMxNjYwMDE2MDAxNjBlMDFiMDMxOTkwOTQxNjkzOTA5MzE3OTA5MjUyOTA1MTYxMjA3YjkxOTA2MTNlZDM1NjViNjAwMDYwNDA1MTgwODMwMzgxODU4NzVhZjE5MjUwNTA1MDNkODA2MDAwODExNDYxMjBiODU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMjBiZDU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEyMGQwNTc2MDE1NjAwMDYxMjBlNDU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMjBlNDkxOTA2MTQyMjI1NjViNjAwMzkxOTA5MTBiOTk5MDk4NTA5NjUwNTA1MDUwNTA1MDUwNTY1YjYwNDA4MDUxNjAwMTYwMDE2MGEwMWIwMzg0ODExNjYwMjQ4MzAxNTI4MzE2NjA0NDgwODMwMTkxOTA5MTUyODI1MTgwODMwMzkwOTEwMTgxNTI2MDY0OTA5MTAxODI1MjYwMjA4MTAxODA1MTYwMDE2MDAxNjBlMDFiMDMxNjYzMjQ4YTM1ZWY2MGUxMWIxNzkwNTI5MDUxNjAwMDkxODI5MTgyOTE2MTAxNjc5MTYxMjE1OTkxOTA2MTNlZDM1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMjE5NjU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMjE5YjU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEyMWFjNTc2MDE1NjEyMWMwNTY1YjgwODA2MDIwMDE5MDUxODEwMTkwNjEyMWMwOTE5MDYxNDI0ZTU2NWI2MDAzMGI5NTk0NTA1MDUwNTA1MDU2NWI2MDAwODA2MDAwODA2MTAxNjc2MDAxNjAwMTYwYTAxYjAzMTY2M2FjYjljZmY5NjBlMDFiODg4ODg4NjA0MDUxNjAyNDAxNjEyMWZiOTM5MjkxOTA2MTQyNjk1NjViNjA0MDgwNTE2MDFmMTk4MTg0MDMwMTgxNTI5MTgxNTI2MDIwODIwMTgwNTE2MDAxNjAwMTYwZTAxYjAzMTY2MDAxNjAwMTYwZTAxYjAzMTk5MDk0MTY5MzkwOTMxNzkwOTI1MjkwNTE2MTIyMzk5MTkwNjEzZWQzNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NjVhZjE5MTUwNTAzZDgwNjAwMDgxMTQ2MTIyNzY1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTIyN2I1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA4MTYxMjI4ZTU3NjAxNTYwMDA2MTIyYTI1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTIyYTI5MTkwNjE0MmQzNTY1YjYwMDM5MTkwOTEwYjk4OTA5NzUwOTU1MDUwNTA1MDUwNTA1NjViNjA0MDgwNTE2MDAxODA4MjUyODE4MzAxOTA5MjUyNjA2MDkxODE2MDIwMDE1YjYxMjJkNDYxMzM1NTU2NWI4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTIyY2M1NzkwNTA1MDkwNTA2MDAwNjEyMmY2ODU4NTg1NjEzMGYzNTY1YjkwNTA4MDgyNjAwMDgxNTE4MTEwNjEyMzBjNTc2MTIzMGM2MTNjNzU1NjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDUwOTM5MjUwNTA1MDU2NWI2MDYwODM2MGZmMTY2MDAxNjAwMTYwNDAxYjAzODExMTE1NjEyMzNjNTc2MTIzM2M2MTM0MzI1NjViNjA0MDUxOTA4MDgyNTI4MDYwMjAwMjYwMjAwMTgyMDE2MDQwNTI4MDE1NjEyMzc1NTc4MTYwMjAwMTViNjEyMzYyNjEzMzU1NTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMjM1YTU3OTA1MDViNTA5MDUwNjAwMDViODQ2MGZmMTY4MTYwZmYxNjEwMTU2MTIzY2M1NzYwMDA2MTIzOTU4NTg1NjEzMTFlNTY1YjkwNTA4MDgzODM2MGZmMTY4MTUxODExMDYxMjNhZDU3NjEyM2FkNjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA1MDgwODA2MTIzYzQ5MDYxNDMwYjU2NWI5MTUwNTA2MTIzN2I1NjViNTA5MzkyNTA1MDUwNTY1YjYwNjA4NTYwZmYxNjYwMDE2MDAxNjA0MDFiMDM4MTExMTU2MTIzZjE1NzYxMjNmMTYxMzQzMjU2NWI2MDQwNTE5MDgwODI1MjgwNjAyMDAyNjAyMDAxODIwMTYwNDA1MjgwMTU2MTI0MmE1NzgxNjAyMDAxNWI2MTI0MTc2MTMzODM1NjViODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjEyNDBmNTc5MDUwNWI1MDkwNTA2MDAwNWI4NjYwZmYxNjgxNjBmZjE2MTAxNTYxMjQ4MzU3NjAwMDYxMjQ0Yzg3ODc4Nzg3NjEzMjE4NTY1YjkwNTA4MDgzODM2MGZmMTY4MTUxODExMDYxMjQ2NDU3NjEyNDY0NjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA1MDgwODA2MTI0N2I5MDYxNDMwYjU2NWI5MTUwNTA2MTI0MzA1NjViNTA5NTk0NTA1MDUwNTA1MDU2NWI2MDQwODA1MTYwMDE4MDgyNTI4MTgzMDE5MDkyNTI2MDYwOTE4MTYwMjAwMTViNjEyNGFjNjEzMzgzNTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMjRhNDU3OTA1MDUwOTA1MDYwMDA2MTFiNTQ4ODg4ODg4ODg4ODg2MTMyNGQ1NjViNjAwMDgwODQ4MDYxMDEwMDAxNTE2MDAwMDE1MTYzZmZmZmZmZmYxNjYwMDAxNDgwMTU2MTI1MDE1NzUwNjEwMTAwODEwMTUxNjA0MDAxNTE2M2ZmZmZmZmZmMTYxNTViMTU2MTI1MTc1NzYxMDEwMDgxMDE1MTYyNzZhNzAwNjA0MDkwOTEwMTUyNWI2MDAwODA2MTAxNjc2MDAxNjAwMTYwYTAxYjAzMTYzNDYzNWJjN2MwZTY2MGUwMWI4YThhOGE2MDQwNTE2MDI0MDE2MTIwM2Q5MzkyOTE5MDYxNDMyYjU2NWI2MDQwODA1MTYwMDE4MDgyNTI4MTgzMDE5MDkyNTI2MDYwOTE4MTYwMjAwMTViNjEyNTYzNjEzMmYzNTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMjU1YjU3OTA1MDUwOTA1MDYwNDA1MTgwNjA0MDAxNjA0MDUyODA2MTI1OGQ4Nzg3NjEzMWI2NTY1YjgxNTI2MDIwMDE2MTI1OWM4NTg1NjEzMDYwNTY1YjgxNTI1MDgxNjAwMDgxNTE4MTEwNjEyNWIyNTc2MTI1YjI2MTNjNzU1NjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDk0OTM1MDUwNTA1MDU2NWI2MDAwNjEyNWNmNjEzM2I4NTY1YjYwMDE4MDU0NjEyNWRjOTA2MTNmODE1NjViODA2MDFmMDE2MDIwODA5MTA0MDI2MDIwMDE2MDQwNTE5MDgxMDE2MDQwNTI4MDkyOTE5MDgxODE1MjYwMjAwMTgyODA1NDYxMjYwODkwNjEzZjgxNTY1YjgwMTU2MTI2NTU1NzgwNjAxZjEwNjEyNjJhNTc2MTAxMDA4MDgzNTQwNDAyODM1MjkxNjAyMDAxOTE2MTI2NTU1NjViODIwMTkxOTA2MDAwNTI2MDIwNjAwMDIwOTA1YjgxNTQ4MTUyOTA2MDAxMDE5MDYwMjAwMTgwODMxMTYxMjYzODU3ODI5MDAzNjAxZjE2ODIwMTkxNWI1MDUwNTA5MTgzNTI1MDUwNjA=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwAsOALh/uo2/CjYbmFLB52flE5fIkcrFl2VvRFKH05p0VgAxhvq/GhYoDJrZwUtggGgwIgLXkrQYQw6PWjQEiDwoJCMS05K0GELcTEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjEtOStBhC9ExICGAISAhgDGPbR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxiqDCKAIDAyODA1NDYxMjY2YTkwNjEzZjgxNTY1YjgwNjAxZjAxNjAyMDgwOTEwNDAyNjAyMDAxNjA0MDUxOTA4MTAxNjA0MDUyODA5MjkxOTA4MTgxNTI2MDIwMDE4MjgwNTQ2MTI2OTY5MDYxM2Y4MTU2NWI4MDE1NjEyNmUzNTc4MDYwMWYxMDYxMjZiODU3NjEwMTAwODA4MzU0MDQwMjgzNTI5MTYwMjAwMTkxNjEyNmUzNTY1YjgyMDE5MTkwNjAwMDUyNjAyMDYwMDAyMDkwNWI4MTU0ODE1MjkwNjAwMTAxOTA2MDIwMDE4MDgzMTE2MTI2YzY1NzgyOTAwMzYwMWYxNjgyMDE5MTViNTA1MDUwNTA1MDYwMjA4MjAxNTIzMDYwNDA4MjAxNTI2MGUwODEwMTgzOTA1MjYwMDA4MDYxMjcwYTgzNjBjODYwMDg2MTFmY2E1NjViOTA5MjUwOTA1MDYwMTY4MjE0NjEwOWVkNTc2MDAwODBmZDViNjA0MDgwNTE2MDAxODA4MjUyODE4MzAxOTA5MjUyNjA2MDkxODE2MDIwMDE1YjYxMjczYjYxMzM1NTU2NWI4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTI3MzM1NzkwNTA1MDkwNTA2MDAwNjEyNzVkODY4Njg2NjEzMGYzNTY1YjkwNTA2MDAwNjEyNzc2NjEyNzZmODg2MDAyNjE0MGE0NTY1Yjg3ODY2MTMwZjM1NjViOTA1MDgxODM2MDAwODE1MTgxMTA2MTI3OGM1NzYxMjc4YzYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwODA4MzYwMDA4MTUxODExMDYxMjdhYjU3NjEyN2FiNjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA1MDUwOTQ5MzUwNTA1MDUwNTY1YjYwNDA4MDUxNjAwMTgwODI1MjgxODMwMTkwOTI1MjYwNjA5MTgxNjAyMDAxNWI2MTI3ZGY2MTMyZjM1NjViODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjEyN2Q3NTc5MDUwNTA5MDUwNjA0MDUxODA2MDQwMDE2MDQwNTI4MDYxMjgwNzYwN2Y5MDU2NWI4MTUyNjAyMDAxNjEyODE2ODU4NTYxMzA2MDU2NWI4MTUyNTA4MTYwMDA4MTUxODExMDYxMjgyYzU3NjEyODJjNjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA5MjkxNTA1MDU2NWI2MDAwODA4MjgwNjEwMTAwMDE1MTYwMDAwMTUxNjNmZmZmZmZmZjE2NjAwMDE0ODAxNTYxMjg2ZDU3NTA2MTAxMDA4MTAxNTE2MDQwMDE1MTYzZmZmZmZmZmYxNjE1NWIxNTYxMjg4MzU3NjEwMTAwODEwMTUxNjI3NmE3MDA2MDQwOTA5MTAxNTI1YjYwMDA4MDYxMDE2NzYwMDE2MDAxNjBhMDFiMDMxNjM0NjM5ZGM3MTFlMDYwZTAxYjg4NjA0MDUxNjAyNDAxNjEyOGFjOTE5MDYxNDNlNDU2NWI2MDQwODA1MTYwMWYxOTgxODQwMzAxODE1MjkxODE1MjYwMjA4MjAxODA1MTYwMDE2MDAxNjBlMDFiMDMxNjYwMDE2MDAxNjBlMDFiMDMxOTkwOTQxNjkzOTA5MzE3OTA5MjUyOTA1MTYxMjhlYTkxOTA2MTNlZDM1NjViNjAwMDYwNDA1MTgwODMwMzgxODU4NzVhZjE5MjUwNTA1MDNkODA2MDAwODExNDYxMjkyNzU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMjkyYzU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEyOTNmNTc2MDE1NjAwMDYxMjk1MzU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMjk1MzkxOTA2MTQyMjI1NjViNjAwMzkxOTA5MTBiOTc5MDk2NTA5NDUwNTA1MDUwNTA1NjViNjA0MDgwNTE2MDAxODA4MjUyODE4MzAxOTA5MjUyNjA2MDkxODE2MDIwMDE1YjYxMjk4NDYxMzM4MzU2NWI4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTI5N2M1NzkwNTA1MDkwNTA2MDAwNjEyOWE3ODY4Njg2ODY2MTMyMTg1NjViOTA1MDgwODI2MDAwODE1MTgxMTA2MTI5YmQ1NzYxMjliZDYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNTA5NDkzNTA1MDUwNTA1NjViNjA0MDgwNTE2MDAxODA4MjUyODE4MzAxOTA5MjUyNjA2MDkxODE2MDIwMDE1YjYxMjlmMDYxMzM1NTU2NWI4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTI5ZTg1NzkwNTA1MDkwNTA2MDAwNjEyMmY2ODU4NTg1NjEzMjkzNTY1YjYxMmExYTYxMzM1NTU2NWI2M2ZmZmZmZmZmOTA5MjE2ODI1MjYwMDE2MDQwODMwMTgxOTA1MjYwNjA4MzAxNTI2MDAxNjAwMTYwYTAxYjAzMTY2MDgwODIwMTUyOTA1NjViNjA0MDgwNTE2MDAxODA4MjUyODE4MzAxOTA5MjUyNjA2MDkxODE2MDIwMDE1YjYxMmE2MjYxMzJmMzU2NWI4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTJhNWE1NzkwNTA1MDkwNTA2MDQwNTE4MDYwNDAwMTYwNDA1MjgwNjEyYThiODY2MTJmY2U1NjViODE1MjYwMjAwMTYxMmE5YTg1ODU2MTMwNjA1NjViODE1MjUwODE2MDAwODE1MTgxMTA2MTJhYjA1NzYxMmFiMDYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwOTM5MjUwNTA1MDU2NWI2MDQwODA1MTYwMDE4MDgyNTI4MTgzMDE5MDkyNTI2MDYwOTE4MTYwMjAwMTViNjEyYWUxNjEzMzU1NTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMmFkOTU3OTA1MDUwOTA1MDYwMDA2MTFkYmE4NDg0NjEzMTFlNTY1YjYwNDA4MDUxNjAwMTgwODI1MjgxODMwMTkwOTI1MjYwNjA5MTgxNjAyMDAxNWI2MTJiMjE2MTMzNTU1NjViODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjEyYjE5NTc5MDUwNTA5MDUwNjAwMDYxMWRiYTg0ODQ2MTJhMTI1NjViNjAwMDYxMmI0YzYxMzNiODU2NWI2MDAxODA1NDYxMmI1OTkwNjEzZjgxNTY1YjgwNjAxZjAxNjAyMDgwOTEwNDAyNjAyMDAxNjA0MDUxOTA4MTAxNjA0MDUyODA5MjkxOTA4MTgxNTI2MDIwMDE4MjgwNTQ2MTJiODU5MDYxM2Y4MTU2NWI4MDE1NjEyYmQyNTc4MDYwMWYxMDYxMmJhNzU3NjEwMTAwODA4MzU0MDQwMjgzNTI5MTYwMjAwMTkxNjEyYmQyNTY1YjgyMDE5MTkwNjAwMDUyNjAyMDYwMDAyMDkwNWI4MTU0ODE1MjkwNjAwMTAxOTA2MDIwMDE4MDgzMTE2MTJiYjU1NzgyOTAwMzYwMWYxNjgyMDE5MTViNTA1MDUwOTE4MzUyNTA1MDYwMDI4MDU0NjEyYmU3OTA2MTNmODE1NjViODA2MDFmMDE2MDIwODA5MTA0MDI2MDIwMDE2MDQwNTE5MDgxMDE2MDQwNTI4MDkyOTE5MDgxODE1MjYwMjAwMTgyODA1NDYxMmMxMzkwNjEzZjgxNTY1YjgwMTU2MTJjNjA1NzgwNjAxZjEwNjEyYzM1NTc2MTAxMDA4MDgzNTQwNDAyODM1MjkxNjAyMDAxOTE2MTJjNjA1NjViODIwMTkxOTA2MDAwNTI2MDIwNjAwMDIwOTA1YjgxNTQ4MTUyOTA2MDAxMDE5MDYwMjAwMTgwODMxMTYxMmM0MzU3ODI5MDAzNjAxZjE2ODIwMTkxNWI1MDUwNTA1MDUwNjAyMDgyMDE1MjMwNjA0MDgyMDE1MjYwZTA4MTAxODM5MDUyNjAwMTYwYzA4MjAxNTI2MDA0NTQ2MDA1NTQ2MDAwOTE4MjkxNjEyNzBhOTE4NTkxNjExZmNhNTY1YjYwNDA4MDUxNjAwMzgwODI1MjYwODA4MjAxOTA5MjUyNjA2MDkxODE2MDIwMDE1YjYxMmNiNDYxMzM4MzU2NWI4MTUyNjAyMDAxOTA2MDAxOTAwMzkwODE2MTJjYWM1NzkwNTA1MDkwNTA2MDAwNjEyY2Q2ODc4Nzg1NjEzMmM1NTY1YjkwNTA2MDAwNjEyY2VhODg4ODg4NjAwMDYwMDE4OTYxMzI0ZDU2NWI5MDUwNjAwMDYxMmNmZDg5ODk4OTg5NjAwMDhhNjEzMjRkNTY1YjkwNTA4Mjg0NjAwMDgxNTE4MTEwNjEyZDEzNTc2MTJkMTM2MTNjNzU1NjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDgxODQ2MDAxODE1MTgxMTA2MTJkMzI1NzYxMmQzMjYxM2M3NTU2NWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwODA4NDYwMDI4MTUxODExMDYxMmQ1MTU3NjEyZDUxNjEzYzc1NTY1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA1MDUwNTA5NTk0NTA1MDUwNTA1MDU2NWI2MDQwODA1MTYwMDE4MDgyNTI4MTgzMDE5MDkyNTI2MDYwOTE4MTYwMjAwMTViNjEyZDg3NjEzMzgzNTY1YjgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMmQ3ZjU3OTA1MDUwOTA1MDYwMDA2MTIyZjY4NTg1ODU2MTMyYzU1NjViNjAwMDYxMmRiMzYxMzNiODU2NWI2MDAxODA1NDYxMmRjMDkwNjEzZjgxNTY1YjgwNjAxZjAxNjAyMDgwOTEwNDAyNjAyMDAxNjA0MDUxOTA4MTAxNjA0MDUyODA5MjkxOTA4MTgxNTI2MDIwMDE4MjgwNTQ2MTJkZWM5MDYxM2Y4MTU2NWI4MDE1NjEyZTM5NTc4MDYwMWYxMDYxMmUwZTU3NjEwMTAwODA4MzU0MDQwMjgzNTI5MTYwMjAwMTkxNjEyZTM5NTY1YjgyMDE5MTkwNjAwMDUyNjAyMDYwMDAyMDkwNWI4MTU0ODE1MjkwNjAwMTAxOTA2MDIwMDE4MDgzMTE2MTJlMWM1NzgyOTAwMzYwMWYxNjgyMDE5MTViNTA1MDUwOTE4MzUyNTA1MDYwMDI4MDU0NjEyZTRlOTA2MTNmODE1NjViODA2MDFmMDE2MDIwODA5MTA0MDI2MDIwMDE2MDQwNTE=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwxM5FMQNnLAs4l/+poUYzGBg/jm5GkQB14LWk27elZFV2e5SZZVkBJmryyKjS61hwGgwIgLXkrQYQk/DX8gIiDwoJCMS05K0GEL0TEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjFtOStBhDDExICGAISAhgDGPbR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxiqDCKAIDkwODEwMTYwNDA1MjgwOTI5MTkwODE4MTUyNjAyMDAxODI4MDU0NjEyZTdhOTA2MTNmODE1NjViODAxNTYxMmVjNzU3ODA2MDFmMTA2MTJlOWM1NzYxMDEwMDgwODM1NDA0MDI4MzUyOTE2MDIwMDE5MTYxMmVjNzU2NWI4MjAxOTE5MDYwMDA1MjYwMjA2MDAwMjA5MDViODE1NDgxNTI5MDYwMDEwMTkwNjAyMDAxODA4MzExNjEyZWFhNTc4MjkwMDM2MDFmMTY4MjAxOTE1YjUwNTA1MDUwNTA2MDIwODIwMTUyMzA2MDQwODA4MzAxOTE5MDkxNTI2MGUwODIwMTg0OTA1MjYwMDQ1NDYwMDU1NDkxNTE2MDAwOTI4MzkyNjEwMTY3OTI2Mzc4MTJhMDRiNjBlMDFiOTI2MTJmMGQ5Mjg4OTI5MDkxOTA2MDI0MDE2MTNlYWU1NjViNjA0MDgwNTE2MDFmMTk4MTg0MDMwMTgxNTI5MTgxNTI2MDIwODIwMTgwNTE2MDAxNjAwMTYwZTAxYjAzMTY2MDAxNjAwMTYwZTAxYjAzMTk5MDk0MTY5MzkwOTMxNzkwOTI1MjkwNTE2MTJmNGI5MTkwNjEzZWQzNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NjVhZjE5MTUwNTAzZDgwNjAwMDgxMTQ2MTJmODg1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTJmOGQ1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA2MDAwODA4MzYxMmZhMzU3NjAxNTYwMDA2MTJmYjc1NjViODI4MDYwMjAwMTkwNTE4MTAxOTA2MTJmYjc5MTkwNjE0MjIyNTY1YjkxNTA2MDAzMGI5MTUwNjAxNjYwMDMwYjgyMTQ2MTA4NTU1NzYwMDA4MGZkNWI2MDAwNjBmZjgyMTY2MTJmZTA1NzUwNjAwMTkxOTA1MDU2NWI4MTYwZmYxNjYwMDExNDE1NjEyZmY0NTc1MDYwMDI5MTkwNTA1NjViODE2MGZmMTY2MDAyMTQxNTYxMzAwODU3NTA2MDA0OTE5MDUwNTY1YjgxNjBmZjE2NjAwMzE0MTU2MTMwMWM1NzUwNjAwODkxOTA1MDU2NWI4MTYwZmYxNjYwMDQxNDE1NjEzMDMwNTc1MDYwMTA5MTkwNTA1NjViODE2MGZmMTY2MDA1MTQxNTYxMzA0NDU3NTA2MDIwOTE5MDUwNTY1YjgxNjBmZjE2NjAwNjE0MTU2MTMwNTg1NzUwNjA0MDkxOTA1MDU2NWI1MDYwMDA5MTkwNTA1NjViNjEzMDY4NjEzMzEyNTY1YjgyNjBmZjE2NjAwMTE0MTU2MTMwN2Q1NzYwMDE4MTUyNjEzMGVkNTY1YjgyNjBmZjE2NjAwMjE0MTU2MTMwOWY1NzYwMDA1NDYwMDE2MDAxNjBhMDFiMDMxNjYwMjA4MjAxNTI2MTMwZWQ1NjViODI2MGZmMTY2MDAzMTQxNTYxMzBiNzU3NjA0MDgxMDE4MjkwNTI2MTMwZWQ1NjViODI2MGZmMTY2MDA0MTQxNTYxMzBjZjU3NjA2MDgxMDE4MjkwNTI2MTMwZWQ1NjViODI2MGZmMTY2MDA1MTQxNTYxMzBlZDU3NjAwMDU0NjAwMTYwMDE2MGEwMWIwMzE2NjA4MDgyMDE1MjViOTI5MTUwNTA1NjViNjEzMGZiNjEzMzU1NTY1YjYzZmZmZmZmZmY5MDkzMTY4MzUyNjAwMTYwMDE2MGEwMWIwMzkxODIxNjYwMjA4NDAxNTIxNjYwODA4MjAxNTI5MDU2NWI2MTMxMjY2MTMzNTU1NjViNjNmZmZmZmZmZjkwOTIxNjgyNTI2MDAxNjA0MDgzMDE1MjYwMDE2MDAxNjBhMDFiMDMxNjYwODA4MjAxNTI5MDU2NWI2MTMxNTA2MTMzNTU1NjViNjNmZmZmZmZmZjkwOTIxNjgyNTI2MDAxNjA2MDgzMDE1MjYwMDE2MDAxNjBhMDFiMDMxNjYwODA4MjAxNTI5MDU2NWI2MTMxN2E2MTMzODM1NjViNjNmZmZmZmZmZjk2ODcxNjgxNTI5NDg2MTY2MDIwODYwMTUyOTI4NTE2NjA0MDg1MDE1MjkzMTY2MDYwODMwMTUyOTExNTE1NjA4MDgyMDE1MjYwMDE2MDAxNjBhMDFiMDM5MDkxMTY2MGEwODIwMTUyOTA1NjViNjAwMDYwMDE2MGZmODQxNjFiOTA1MDYwMDE2MGZmODMxNjFiODExNzYxMDYyYjU2NWI2MTMxZDc2MTMzMTI1NjViODI2MGZmMTY2MDAyMTQxNTYxMzFmNzU3NjAwMTYwMDE2MGEwMWIwMzgyMTY2MDIwODIwMTUyNjEzMGVkNTY1YjgyNjBmZjE2NjAwNTE0MTU2MTMwZWQ1NzYwMDE2MDAxNjBhMDFiMDM4MjE2NjA4MDgyMDE1MjkyOTE1MDUwNTY1YjYxMzIyMDYxMzM4MzU2NWI2M2ZmZmZmZmZmOTQ4NTE2ODE1MjkyOTA5MzE2NjAyMDgzMDE1MjE1MTU2MDgwODIwMTUyNjAwMTYwMDE2MGEwMWIwMzkwOTExNjYwYTA4MjAxNTI5MDU2NWI2MTMyNTU2MTMzODM1NjViNjNmZmZmZmZmZjk2ODcxNjgxNTI5NDg2MTY2MDIwODYwMTUyOTI5MDk0MTY2MDQwODQwMTUyNjAwMTYwMDE2MGEwMWIwMzkwODExNjYwNjA4NDAxNTI5MjE1MTU2MDgwODMwMTUyOTA5MTE2NjBhMDgyMDE1MjkwNTY1YjYxMzI5YjYxMzM1NTU2NWI2M2ZmZmZmZmZmOTA5MzE2ODM1MjYwMDE2MDAxNjBhMDFiMDM5MTgyMTY2MDIwODQwMTUyNjAwMTYwNDA4NDAxNTIxNjYwODA4MjAxNTI5MDU2NWI2MTMyY2Q2MTMzODM1NjViNjNmZmZmZmZmZjkzODQxNjgxNTI5MTkwOTIxNjYwMjA4MjAxNTI2MDAxNjAwMTYwYTAxYjAzOTA5MTE2NjBhMDgyMDE1MjkwNTY1YjYwNDA1MTgwNjA0MDAxNjA0MDUyODA2MDAwODE1MjYwMjAwMTYxMzMwZDYxMzMxMjU2NWI5MDUyOTA1NjViNjA0MDUxODA2MGEwMDE2MDQwNTI4MDYwMDAxNTE1ODE1MjYwMjAwMTYwMDA2MDAxNjAwMTYwYTAxYjAzMTY4MTUyNjAyMDAxNjA2MDgxNTI2MDIwMDE2MDYwODE1MjYwMjAwMTYwMDA2MDAxNjAwMTYwYTAxYjAzMTY4MTUyNTA5MDU2NWI2MDQwODA1MTYwYTA4MTAxODI1MjYwMDA4MDgyNTI2MDIwODIwMTgxOTA1MjkxODEwMTgyOTA1MjYwNjA4MTAxODI5MDUyNjA4MDgxMDE5MTkwOTE1MjkwNTY1YjYwNDA4MDUxNjBjMDgxMDE4MjUyNjAwMDgwODI1MjYwMjA4MjAxODE5MDUyOTE4MTAxODI5MDUyNjA2MDgxMDE4MjkwNTI2MDgwODEwMTgyOTA1MjYwYTA4MTAxOTE5MDkxNTI5MDU2NWI2MDQwNTE4MDYxMDEyMDAxNjA0MDUyODA2MDYwODE1MjYwMjAwMTYwNjA4MTUyNjAyMDAxNjAwMDYwMDE2MDAxNjBhMDFiMDMxNjgxNTI2MDIwMDE2MDYwODE1MjYwMjAwMTYwMDAxNTE1ODE1MjYwMjAwMTYwMDA2M2ZmZmZmZmZmMTY4MTUyNjAyMDAxNjAwMDE1MTU4MTUyNjAyMDAxNjA2MDgxNTI2MDIwMDE2MTMzMGQ2MDQwODA1MTYwNjA4MTAxODI1MjYwMDA4MDgyNTI2MDIwODIwMTgxOTA1MjkxODEwMTkxOTA5MTUyOTA1NjViNjM0ZTQ4N2I3MTYwZTAxYjYwMDA1MjYwNDE2MDA0NTI2MDI0NjAwMGZkNWI2MDQwNTE2MDFmODIwMTYwMWYxOTE2ODEwMTYwMDE2MDAxNjA0MDFiMDM4MTExODI4MjEwMTcxNTYxMzQ3MDU3NjEzNDcwNjEzNDMyNTY1YjYwNDA1MjkxOTA1MDU2NWI2MDAwNjAwMTYwMDE2MDQwMWIwMzgyMTExNTYxMzQ5MTU3NjEzNDkxNjEzNDMyNTY1YjUwNjAxZjAxNjAxZjE5MTY2MDIwMDE5MDU2NWI2MDAwODI2MDFmODMwMTEyNjEzNGIwNTc2MDAwODBmZDViODEzNTYxMzRjMzYxMzRiZTgyNjEzNDc4NTY1YjYxMzQ0ODU2NWI4MTgxNTI4NDYwMjA4Mzg2MDEwMTExMTU2MTM0ZDg1NzYwMDA4MGZkNWI4MTYwMjA4NTAxNjAyMDgzMDEzNzYwMDA5MTgxMDE2MDIwMDE5MTkwOTE1MjkzOTI1MDUwNTA1NjViNjAwMTYwMDE2MGEwMWIwMzgxMTY4MTE0NjEzNTBhNTc2MDAwODBmZDViNTA1NjViODAzNTYzZmZmZmZmZmY4MTE2ODExNDYxMzUyMTU3NjAwMDgwZmQ1YjkxOTA1MDU2NWI2MDAwODA2MDAwODA2MDAwNjBhMDg2ODgwMzEyMTU2MTM1M2U1NzYwMDA4MGZkNWI4NTM1NjAwMTYwMDE2MDQwMWIwMzgxMTExNTYxMzU1NDU3NjAwMDgwZmQ1YjYxMzU2MDg4ODI4OTAxNjEzNDlmNTY1Yjk1NTA1MDYwMjA4NjAxMzU2MTM1NzE4MTYxMzRmNTU2NWI5MzUwNjA0MDg2MDEzNTYxMzU4MTgxNjEzNGY1NTY1YjkyNTA2MDYwODYwMTM1NjEzNTkxODE2MTM0ZjU1NjViOTE1MDYxMzU5ZjYwODA4NzAxNjEzNTBkNTY1YjkwNTA5Mjk1NTA5Mjk1OTA5MzUwNTY1YjYwMDA4MDYwNDA4Mzg1MDMxMjE1NjEzNWJlNTc2MDAwODBmZDViNjEzNWM3ODM2MTM1MGQ1NjViOTE1MDYwMjA4MzAxMzU2MTM1ZDc4MTYxMzRmNTU2NWI4MDkxNTA1MDkyNTA5MjkwNTA1NjViNjAwMDgwNjAwMDgwNjAwMDgwNjAwMDgwNjEwMTAwODk4YjAzMTIxNTYxMzVmZjU3NjAwMDgwZmQ1Yjg4MzU2MTM2MGE4MTYxMzRmNTU2NWI5NzUwNjAyMDg5MDEzNTYwMDE2MDAxNjA0MDFiMDM4MDgyMTExNTYxMzYyNjU3NjAwMDgwZmQ1YjYxMzYzMjhjODM4ZDAxNjEzNDlmNTY1Yjk4NTA2MDQwOGIwMTM1OTE1MDgwODIxMTE1NjEzNjQ4NTc2MDAwODBmZDViNTA2MTM2NTU4YjgyOGMwMTYxMzQ5ZjU2NWI5NjUwNTA2MDYwODkwMTM1NjE=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwUqdmiAUiYEM5Vhitw/bdblq+FGJh6TOLPJcNA4bZaqp70bXwD9IY2MKaviRNVIVZGgwIgbXkrQYQu4HjlgEiDwoJCMW05K0GEMMTEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjFtOStBhDJExICGAISAhgDGPbR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxiqDCKAIDM2NjY4MTYxMzRmNTU2NWI5NDUwNjA4MDg5MDEzNTYxMzY3NjgxNjEzNGY1NTY1YjkzNTA2MGEwODkwMTM1NjEzNjg2ODE2MTM0ZjU1NjViOTI1MDYxMzY5NDYwYzA4YTAxNjEzNTBkNTY1YjkxNTA2MGUwODkwMTM1NjEzNmE0ODE2MTM0ZjU1NjViODA5MTUwNTA5Mjk1OTg1MDkyOTU5ODkwOTM5NjUwNTY1YjYwMDA4MDYwNDA4Mzg1MDMxMjE1NjEzNmM4NTc2MDAwODBmZDViODIzNTYxMzZkMzgxNjEzNGY1NTY1YjkxNTA2MTM2ZTE2MDIwODQwMTYxMzUwZDU2NWI5MDUwOTI1MDkyOTA1MDU2NWI2MDAwODA2MDAwNjA2MDg0ODYwMzEyMTU2MTM2ZmY1NzYwMDA4MGZkNWI4MzM1NjEzNzBhODE2MTM0ZjU1NjViOTI1MDYwMjA4NDAxMzU2MTM3MWE4MTYxMzRmNTU2NWI5MTUwNjEzNzI4NjA0MDg1MDE2MTM1MGQ1NjViOTA1MDkyNTA5MjUwOTI1NjViNjAwMDgwNjAwMDYwNjA4NDg2MDMxMjE1NjEzNzQ2NTc2MDAwODBmZDViNjEzNzRmODQ2MTM1MGQ1NjViOTI1MDYwMjA4NDAxMzU2MTM3NWY4MTYxMzRmNTU2NWI5MTUwNjA0MDg0MDEzNTYxMzc2ZjgxNjEzNGY1NTY1YjgwOTE1MDUwOTI1MDkyNTA5MjU2NWI4MDM1NjBmZjgxMTY4MTE0NjEzNTIxNTc2MDAwODBmZDViODAxNTE1ODExNDYxMzUwYTU3NjAwMDgwZmQ1YjYwMDA4MDYwMDA4MDYwMDA4MDYwMDA4MDYxMDEwMDg5OGIwMzEyMTU2MTM3YjY1NzYwMDA4MGZkNWI2MTM3YmY4OTYxMzc3YTU2NWI5NzUwNjEzN2NkNjAyMDhhMDE2MTM3N2E1NjViOTY1MDYxMzdkYjYwNDA4YTAxNjEzNTBkNTY1Yjk1NTA2MTM3ZTk2MDYwOGEwMTYxMzUwZDU2NWI5NDUwNjEzN2Y3NjA4MDhhMDE2MTM1MGQ1NjViOTM1MDYwYTA4OTAxMzU2MTM4MDc4MTYxMzc4YjU2NWI5MjUwNjBjMDg5MDEzNTYxMzY5NDgxNjEzNGY1NTY1YjYwMDA4MDYwMDA2MDYwODQ4NjAzMTIxNTYxMzgyYzU3NjAwMDgwZmQ1YjgzMzU2MDAxNjAwMTYwNDAxYjAzODExMTE1NjEzODQyNTc2MDAwODBmZDViNjEzODRlODY4Mjg3MDE2MTM0OWY1NjViOTM1MDUwNjAyMDg0MDEzNTYxMzcxYTgxNjEzNGY1NTY1YjYwMDA4MDYwMDA4MDYwMDA4MDYwYzA4Nzg5MDMxMjE1NjEzODc4NTc2MDAwODBmZDViODYzNTYxMzg4MzgxNjEzNGY1NTY1Yjk1NTA2MDIwODcwMTM1NjEzODkzODE2MTM0ZjU1NjViOTQ1MDYwNDA4NzAxMzU2MTM4YTM4MTYxMzRmNTU2NWI5MzUwNjA2MDg3MDEzNTYxMzhiMzgxNjEzNGY1NTY1YjkyNTA2MTM4YzE2MDgwODgwMTYxMzUwZDU2NWI5MTUwNjBhMDg3MDEzNTYwMDE2MDAxNjA0MDFiMDM4MTExMTU2MTM4ZGM1NzYwMDA4MGZkNWI2MTM4ZTg4OTgyOGEwMTYxMzQ5ZjU2NWI5MTUwNTA5Mjk1NTA5Mjk1NTA5Mjk1NTY1YjYwMDA4MDYwMDA4MDYwODA4NTg3MDMxMjE1NjEzOTBiNTc2MDAwODBmZDViNjEzOTE0ODU2MTM3N2E1NjViOTM1MDYxMzkyMjYwMjA4NjAxNjEzNzdhNTY1YjkyNTA2MTM5MzA2MDQwODYwMTYxMzc3YTU2NWI5MTUwNjA2MDg1MDEzNTYwMDE2MDAxNjA0MDFiMDM4MTExMTU2MTM5NGI1NzYwMDA4MGZkNWI2MTM5NTc4NzgyODgwMTYxMzQ5ZjU2NWI5MTUwNTA5Mjk1OTE5NDUwOTI1MDU2NWI2MDAwODA2MDAwODA2MDgwODU4NzAzMTIxNTYxMzk3OTU3NjAwMDgwZmQ1Yjg0MzU2MTM5ODQ4MTYxMzRmNTU2NWI5MzUwNjAyMDg1MDEzNTYwMDE2MDAxNjA0MDFiMDM4MTExMTU2MTM5OWY1NzYwMDA4MGZkNWI2MTM5YWI4NzgyODgwMTYxMzQ5ZjU2NWI5MzUwNTA2MDQwODUwMTM1NjEzOWJjODE2MTM0ZjU1NjViOTE1MDYxMzljYTYwNjA4NjAxNjEzNTBkNTY1YjkwNTA5Mjk1OTE5NDUwOTI1MDU2NWI2MDAwODA2MDAwODA2MDgwODU4NzAzMTIxNTYxMzllYjU3NjAwMDgwZmQ1YjYxMzlmNDg1NjEzNTBkNTY1YjkzNTA2MTNhMDI2MDIwODYwMTYxMzUwZDU2NWI5MjUwNjA0MDg1MDEzNTYxM2ExMjgxNjEzNzhiNTY1YjkxNTA2MDYwODUwMTM1NjEzYTIyODE2MTM0ZjU1NjViOTM5NjkyOTU1MDkwOTM1MDUwNTY1YjYwMDA4MDYwMDA2MDYwODQ4NjAzMTIxNTYxM2E0MjU3NjAwMDgwZmQ1YjgzMzU2MTNhNGQ4MTYxMzRmNTU2NWI5MjUwNjEzNzVmNjAyMDg1MDE2MTM1MGQ1NjViNjAwMDgwNjAwMDgwNjA4MDg1ODcwMzEyMTU2MTNhNzE1NzYwMDA4MGZkNWI4NDM1NjAwMTYwMDE2MDQwMWIwMzgxMTExNTYxM2E4NzU3NjAwMDgwZmQ1YjYxM2E5Mzg3ODI4ODAxNjEzNDlmNTY1Yjk0NTA1MDYwMjA4NTAxMzU2MTNhYTQ4MTYxMzRmNTU2NWI5MjUwNjA0MDg1MDEzNTYxMzliYzgxNjEzNGY1NTY1YjYwMDA4MDYwMDA2MDYwODQ4NjAzMTIxNTYxM2FjOTU3NjAwMDgwZmQ1YjYxM2FkMjg0NjEzNzdhNTY1YjkyNTA2MTNhZTA2MDIwODUwMTYxMzc3YTU2NWI5MTUwNjA0MDg0MDEzNTYwMDE2MDAxNjA0MDFiMDM4MTExMTU2MTNhZmI1NzYwMDA4MGZkNWI2MTNiMDc4NjgyODcwMTYxMzQ5ZjU2NWI5MTUwNTA5MjUwOTI1MDkyNTY1YjYwMDA4MDYwNDA4Mzg1MDMxMjE1NjEzYjI0NTc2MDAwODBmZDViNjEzYjJkODM2MTM3N2E1NjViOTE1MDYwMjA4MzAxMzU2MDAxNjAwMTYwNDAxYjAzODExMTE1NjEzYjQ4NTc2MDAwODBmZDViNjEzYjU0ODU4Mjg2MDE2MTM0OWY1NjViOTE1MDUwOTI1MDkyOTA1MDU2NWI2MDAwODA2MDAwODA2MDAwODA2MGMwODc4OTAzMTIxNTYxM2I3NzU3NjAwMDgwZmQ1YjYxM2I4MDg3NjEzNTBkNTY1Yjk1NTA2MTNiOGU2MDIwODgwMTYxMzUwZDU2NWI5NDUwNjEzYjljNjA0MDg4MDE2MTM1MGQ1NjViOTM1MDYwNjA4NzAxMzU2MTNiYWM4MTYxMzc4YjU2NWI5MjUwNjA4MDg3MDEzNTYxM2JiYzgxNjEzNGY1NTY1YjkxNTA2MGEwODcwMTM1NjEzYmNjODE2MTM0ZjU1NjViODA5MTUwNTA5Mjk1NTA5Mjk1NTA5Mjk1NTY1YjYwMDA4MDYwMDA4MDYwODA4NTg3MDMxMjE1NjEzYmYwNTc2MDAwODBmZDViNjEzYmY5ODU2MTM1MGQ1NjViOTM1MDYwMjA4NTAxMzU2MTNjMDk4MTYxMzRmNTU2NWI5MjUwNjA0MDg1MDEzNTYxM2ExMjgxNjEzNGY1NTY1YjYwMDA4MDYwMDA4MDYwMDA4MDYwYzA4Nzg5MDMxMjE1NjEzYzMyNTc2MDAwODBmZDViNjEzYzNiODc2MTM1MGQ1NjViOTU1MDYxM2M0OTYwMjA4ODAxNjEzNTBkNTY1Yjk0NTA2MTNjNTc2MDQwODgwMTYxMzUwZDU2NWI5MzUwNjEzYzY1NjA2MDg4MDE2MTM1MGQ1NjViOTI1MDYwODA4NzAxMzU2MTNiYmM4MTYxMzc4YjU2NWI2MzRlNDg3YjcxNjBlMDFiNjAwMDUyNjAzMjYwMDQ1MjYwMjQ2MDAwZmQ1YjYwMDA1YjgzODExMDE1NjEzY2E2NTc4MTgxMDE1MTgzODIwMTUyNjAyMDAxNjEzYzhlNTY1YjgzODExMTE1NjEzY2I1NTc2MDAwODQ4NDAxNTI1YjUwNTA1MDUwNTY1YjYwMDA4MTUxODA4NDUyNjEzY2QzODE2MDIwODYwMTYwMjA4NjAxNjEzYzhiNTY1YjYwMWYwMTYwMWYxOTE2OTI5MDkyMDE2MDIwMDE5MjkxNTA1MDU2NWI2MDAwODE1MTgwODQ1MjYwMjA4MDg1MDE4MDgxOTY1MDgzNjAwNTFiODEwMTkxNTA4Mjg2MDE2MDAwNWI4NTgxMTAxNTYxM2Q5ZTU3ODI4NDAzODk1MjgxNTE2MDQwODE1MTg2NTI4NjgyMDE1MTkxNTA4MDg3ODcwMTUyODE1MTE1MTU4MTg3MDE1Mjg2ODIwMTUxNjA2MDYwMDE2MDAxNjBhMDFiMDM4MDgzMTY4MjhhMDE1MjgzODUwMTUxOTM1MDYwYTA5MjUwNjA4MDgzODE4YjAxNTI2MTNkNjA2MGUwOGIwMTg2NjEzY2JiNTY1YjkyODYwMTUxOGE4NDAzNjAzZjE5MDE4NThjMDE1MjkyOTQ1MDYxM2Q3Yzg1ODQ2MTNjYmI1NjViOTUwMTUxMTY2MGMwOTg5MDk4MDE5NzkwOTc1MjUwNTA5ODg1MDE5ODkzNTA5MDg0MDE5MDYwMDEwMTYxM2QwNTU2NWI1MDkxOTc5NjUwNTA1MDUwNTA1MDUwNTY1YjYwMDA2MTAxNjA4MjUxODE4NTUyNjEzZGMxODI4NjAxODI2MTNjYmI1NjViOTE1MDUwNjAyMDgzMDE1MTg0ODIwMzYwMjA4NjAxNTI2MTNkZGI4MjgyNjEzY2JiNTY1YjkxNTA1MDYwNDA4MzAxNTE2MTNkZjg2MDQwODYwMTgyNjAwMTYwMDE2MGEwMWIwMzE2OTA1MjU2NWI1MDYwNjA4MzAxNTE4NDgyMDM2MDYwODYwMTUyNjEzZTEwODI4MjYxM2NiYjU2NWI5MTUwNTA2MDgwODMwMTUxNjEzZTI2NjA4MDg2MDE4MjE1MTU5MDUyNTY1YjUwNjBhMDgzMDE1MTYxM2UzZTYwYTA4NjAxODI2M2ZmZmZmZmZmMTY5MDUyNTY1YjUwNjBjMDgzMDE1MTYxM2U1MjYwYzA4NjAxODIxNTE1OTA1MjU2NWI1MDYwZTA4MzAxNTE4NDgyMDM2MGUwODY=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwKyBBo/L/LEGj2uhnU0VtDzMmDhFzc7MsAqkRw11FWBQBIH9iCPBxw64iIeX5eJ4UGgwIgbXkrQYQ85D4/AIiDwoJCMW05K0GEMkTEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjGtOStBhDPExICGAISAhgDGLXG8zkiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBpBcSAxiqDCKcFzAxNTI2MTNlNmE4MjgyNjEzY2U3NTY1YjYxMDEwMDg1ODEwMTUxODA1MTYzZmZmZmZmZmY5MDgxMTY4OTg0MDE1MjYwMjA4MjAxNTE2MDAxNjAwMTYwYTAxYjAzMTY2MTAxMjA4YTAxNTI2MDQwODIwMTUxMTY2MTAxNDA4OTAxNTI5MTkzNTA5MTUwNTA5MDk0OTM1MDUwNTA1MDU2NWI2MDYwODE1MjYwMDA2MTNlYzE2MDYwODMwMTg2NjEzZGFiNTY1YjYwMjA4MzAxOTQ5MDk0NTI1MDYwNDAwMTUyOTE5MDUwNTY1YjYwMDA4MjUxNjEzZWU1ODE4NDYwMjA4NzAxNjEzYzhiNTY1YjkxOTA5MTAxOTI5MTUwNTA1NjViNjAwMDgwNjA0MDgzODUwMzEyMTU2MTNmMDI1NzYwMDA4MGZkNWI4MjUxOTE1MDYwMjA4MzAxNTE2MTM1ZDc4MTYxMzRmNTU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTNmMjY1NzYwMDA4MGZkNWI4MTUxNjAwMTYwMDE2MDQwMWIwMzgxMTExNTYxM2YzYzU3NjAwMDgwZmQ1YjgyMDE2MDFmODEwMTg0MTM2MTNmNGQ1NzYwMDA4MGZkNWI4MDUxNjEzZjViNjEzNGJlODI2MTM0Nzg1NjViODE4MTUyODU2MDIwODM4NTAxMDExMTE1NjEzZjcwNTc2MDAwODBmZDViNjEwZmMyODI2MDIwODMwMTYwMjA4NjAxNjEzYzhiNTY1YjYwMDE4MTgxMWM5MDgyMTY4MDYxM2Y5NTU3NjA3ZjgyMTY5MTUwNWI2MDIwODIxMDgxMTQxNTYxM2ZiNjU3NjM0ZTQ4N2I3MTYwZTAxYjYwMDA1MjYwMjI2MDA0NTI2MDI0NjAwMGZkNWI1MDkxOTA1MDU2NWI2MDAwODA4MzU0ODE2MDAxODI4MTFjOTE1MDgwODMxNjgwNjEzZmQ4NTc2MDdmODMxNjkyNTA1YjYwMjA4MDg0MTA4MjE0MTU2MTNmZjg1NzYzNGU0ODdiNzE2MGUwMWI4NjUyNjAyMjYwMDQ1MjYwMjQ4NmZkNWI4MTgwMTU2MTQwMGM1NzYwMDE4MTE0NjE0MDFkNTc2MTQwNGE1NjViNjBmZjE5ODYxNjg5NTI4NDg5MDE5NjUwNjE0MDRhNTY1YjYwMDA4YTgxNTI2MDIwOTAyMDYwMDA1Yjg2ODExMDE1NjE0MDQyNTc4MTU0OGI4MjAxNTI5MDg1MDE5MDgzMDE2MTQwMjk1NjViNTA1MDg0ODkwMTk2NTA1YjUwOTQ5ODk3NTA1MDUwNTA1MDUwNTA1MDU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTQwNmE1NzYwMDA4MGZkNWI1MDUxOTE5MDUwNTY1YjYwMDA2MDIwODI4NDAzMTIxNTYxNDA4MzU3NjAwMDgwZmQ1YjgxNTE2MTA2MmI4MTYxMzc4YjU2NWI2MzRlNDg3YjcxNjBlMDFiNjAwMDUyNjAxMTYwMDQ1MjYwMjQ2MDAwZmQ1YjYwMDA2M2ZmZmZmZmZmODA4MzE2ODE4NTE2ODE4MzA0ODExMTgyMTUxNTE2MTU2MTQwYzc1NzYxNDBjNzYxNDA4ZTU2NWIwMjk0OTM1MDUwNTA1MDU2NWI2MDAwODE1MTgwODQ1MjYwMjA4MDg1MDE5NDUwODA4NDAxNjAwMDViODM4MTEwMTU2MTQxNDA1NzgxNTE4MDUxNjNmZmZmZmZmZjE2ODg1MjgzODEwMTUxNjAwMTYwMDE2MGEwMWIwMzkwODExNjg1OGEwMTUyNjA0MDgwODMwMTUxMTUxNTkwOGEwMTUyNjA2MDgwODMwMTUxMTUxNTkwOGEwMTUyNjA4MDkxODIwMTUxMTY5MDg4MDE1MjYwYTA5MDk2MDE5NTkwODIwMTkwNjAwMTAxNjE0MGU0NTY1YjUwOTQ5NTk0NTA1MDUwNTA1MDU2NWI2MDAwNjBhMDgwODM1MjYxNDE1ZTgxODQwMTg5NjEzZGFiNTY1YjYwMjA4ODgxODYwMTUyNjA0MDg4ODE4NzAxNTI2MDYwODY4NDAzODE4ODAxNTI2MTQxN2Y4NDhhNjE0MGQwNTY1YjkzNTA2MDgwODc4NTAzODE4OTAxNTI4NDg5NTE4MDg3NTI4NTg3MDE5MTUwODU4YjAxOTY1MDYwMDA1YjgxODExMDE1NjE0MWZjNTc4NzUxODA1MTYzZmZmZmZmZmY5MDgxMTY4NTUyODg4MjAxNTE4MTE2ODk4NjAxNTI4NzgyMDE1MTgxMTY4ODg2MDE1Mjg2ODIwMTUxMTY4Njg1MDE1Mjg0ODEwMTUxMTUxNTg1ODUwMTUyODkwMTUxNjAwMTYwMDE2MGEwMWIwMzE2ODk4NDAxNTI5Njg2MDE5NjYwYzA5MDkyMDE5MTYwMDEwMTYxNDE5ZDU2NWI1MDkwOWU5ZDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1NjViODA1MTYwMDM4MTkwMGI4MTE0NjEzNTIxNTc2MDAwODBmZDViNjAwMDgwNjA0MDgzODUwMzEyMTU2MTQyMzU1NzYwMDA4MGZkNWI2MTQyM2U4MzYxNDIxMDU2NWI5MTUwNjAyMDgzMDE1MTYxMzVkNzgxNjEzNGY1NTY1YjYwMDA2MDIwODI4NDAzMTIxNTYxNDI2MDU3NjAwMDgwZmQ1YjYxMDYyYjgyNjE0MjEwNTY1YjYwMDA2MDYwODIwMTYwMDE2MDAxNjBhMDFiMDM4NjE2ODM1MjYwMjA2MDAxNjAwMTYwNDAxYjAzODYxNjgxODUwMTUyNjA2MDYwNDA4NTAxNTI4MTg1NTE4MDg0NTI2MDgwODYwMTkxNTA4Mjg3MDE5MzUwNjAwMDViODE4MTEwMTU2MTQyYzU1Nzg0NTE2MDA3MGI4MzUyOTM4MzAxOTM5MTgzMDE5MTYwMDEwMTYxNDJhNjU2NWI1MDkwOTg5NzUwNTA1MDUwNTA1MDUwNTA1NjViNjAwMDgwNjA0MDgzODUwMzEyMTU2MTQyZTY1NzYwMDA4MGZkNWI2MTQyZWY4MzYxNDIxMDU2NWI5MTUwNjAyMDgzMDE1MTYwMDE2MDAxNjA0MDFiMDM4MTE2ODExNDYxMzVkNzU3NjAwMDgwZmQ1YjYwMDA2MGZmODIxNjYwZmY4MTE0MTU2MTQzMjI1NzYxNDMyMjYxNDA4ZTU2NWI2MDAxMDE5MjkxNTA1MDU2NWI2MDAwNjA2MDgwODM1MjYxNDMzZTgxODQwMTg3NjEzZGFiNTY1YjYwMjA4NDgyMDM4MTg2MDE1MjYxNDM1MTgyODg2MTQwZDA1NjViOTE1MDYwNDA4NTgzMDM4MTg3MDE1MjgyODc1MTgwODU1MjgzODUwMTkxNTA4Mzg5MDE5NDUwNjAwMDViODE4MTEwMTU2MTQzZDQ1Nzg1NTE4MDUxNjNmZmZmZmZmZjkwODExNjg1NTI4NjgyMDE1MTgxMTY4Nzg2MDE1Mjg1ODIwMTUxMTY4NTg1MDE1Mjg3ODEwMTUxNjAwMTYwMDE2MGEwMWIwMzkwODExNjg5ODYwMTUyNjA4MDgwODMwMTUxMTUxNTkwODYwMTUyNjBhMDkxODIwMTUxMTY5MDg0MDE1Mjk0ODQwMTk0NjBjMDkwOTIwMTkxNjAwMTAxNjE0MzZmNTY1YjUwOTA5YTk5NTA1MDUwNTA1MDUwNTA1MDUwNTA1NjViNjAyMDgxNTI2MDAwNjEwNjJiNjAyMDgzMDE4NDYxM2RhYjU2ZmVhMjY0Njk3MDY2NzM1ODIyMTIyMDE4MDgzNjFlNDFlNzhiYzE1YzFiZDA1ZDBmZjc3M2YyZDQ4YzU4M2E5ZDA2OGJmY2VkZmRmNmY0ZjRkODRhNTE2NDczNmY2YzYzNDMwMDA4MGIwMDMz","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwJCiqvJmQQvgRXFI32qnWJqpn+mAT/okdb7pxRKoRd5axpqNLRoTKOt+GoiePdmbHGgwIgrXkrQYQ+/KxoQEiDwoJCMa05K0GEM8TEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjGtOStBhDRExICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGKoMGiISINtXcDEP/GzgeIE81LQS9ydmIS7W41dHhHOxfi0P8VWFIMCEPUIFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"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"},{"b64Body":"Cg8KCQjHtOStBhDTExICGAISAhgDGO6Fg9cCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAVQKDkVYSVNUSU5HX1RPS0VOEghEV0FQVEZMVioCGAJSIzohAhpgM3jn3pDsRRYx8PoG170f01wcp/MSrKSA4xFkvCx5agwIg4O/sQYQyNKMiQGIAQE=","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGKwMEjAGFLNqCzeZPC5Z7KgbGg/ahLbtS8u/8gGBh/ATJPzBk1JYAtIPMWbyTP5ayC+1BLYaDAiDteStBhCbpb6NASIPCgkIx7TkrQYQ0xMSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAcgkKAxisDBICGAI="},{"b64Body":"ChAKCQjHtOStBhDVExIDGKcMEgIYAxjAv+0hIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46lgIKAxirDBDAhD0YgKjWuQcihAIJHMiZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABikAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHoSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhAhpgM3jn3pDsRRYx8PoG170f01wcp/MSrKSA4xFkvCx5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==","b64Record":"CiUIISIDGKsMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCn2PiTDf6gokGSjANRGFvo+0sLCGA6PGVu91ri3QHAFuJ1Po0qr8B/Vuz///biCuYaDAiDteStBhCr0rGPAyIQCgkIx7TkrQYQ1RMSAxinDCogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wgOaKGzoIGgIweCiA6jBSFwoJCgIYYhCAzJU2CgoKAxinDBD/y5U2"},{"b64Body":"ChIKCQjHtOStBhDVExIDGKcMIAHqAZsBCgl0b2tlbk5hbWUSC3Rva2VuU3ltYm9sGAggyAEqAxirDDIjOiECGmAzeOfekOxFFjHw+gbXvR/TXByn8xKspIDjEWS8LHlyAxipDHoFCICk6AOCAQRtZW1vqgEOCgcIARIDGKwMGgMYqAyqAQkKAggCGgMYqAyqAQsKBAgEEgAaAxioDKoBExIMCgQIBBAFEAoYHiABGgMYqAw=","b64Record":"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"}]},"MaxRefundIsMaxGasRefundConfiguredWhenTXGasPriceIsSmaller":{"placeholderNum":1582,"encodedItems":[{"b64Body":"Cg8KCQjNtOStBhD/ExICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAiJg7+xBhDI1L6DAhptCiISII24wj2bKbQSdU+DrVpwCVB17eESD0lf22KFerdpBxzFCiM6IQKzpf+nU04Z7oAhS78jECe6TlZEYj17GRcoMoDwn9XQ+woiEiA/FYLIL/F8rpJLSppJds3IhF8nW0zxYMgWjMPgRfg/wSIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGK8MKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBFPCkfvh3XrADxD2DKGzWqPhO9P9GhKIQNVYGO/n4licsdk7KLtPzt7RFbIMR8uj0aDAiJteStBhDL1P+XAiIPCgkIzbTkrQYQ/xMSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjOtOStBhCDFBICGAISAhgDGNvJ7TEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBjAoKAxivDCKECjYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMDI2MjgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDA0YzU3NjAwMDM1NjBlMDFjODA2MzFhYjA2ZWU1MTQ2MTAwNTE1NzgwNjNiOWNhZWJmNDE0NjEwMDZkNTc4MDYzYzMwMzY1ZDIxNDYxMDA4OTU3ODA2M2VkZWQ5N2ZhMTQ2MTAwYTc1NzViNjAwMDgwZmQ1YjYxMDA2YjYwMDQ4MDM2MDM4MTAxOTA2MTAwNjY5MTkwNjEwMTM3NTY1YjYxMDBjNTU2NWIwMDViNjEwMDg3NjAwNDgwMzYwMzgxMDE5MDYxMDA4MjkxOTA2MTAxZDU1NjViNjEwMGQ3NTY1YjAwNWI2MTAwOTE2MTAwZjA1NjViNjA0MDUxNjEwMDllOTE5MDYxMDIxMTU2NWI2MDQwNTE4MDkxMDM5MGYzNWI2MTAwYWY2MTAwZjY1NjViNjA0MDUxNjEwMGJjOTE5MDYxMDIxMTU2NWI2MDQwNTE4MDkxMDM5MGYzNWI4MTYwMDA4MTkwNTU1MDgwNjAwMTgxOTA1NTUwNTA1MDU2NWI4MDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ZmY1YjYwMDE1NDgxNTY1YjYwMDA1NDgxNTY1YjYwMDA4MGZkNWI2MDAwODE5MDUwOTE5MDUwNTY1YjYxMDExNDgxNjEwMTAxNTY1YjgxMTQ2MTAxMWY1NzYwMDA4MGZkNWI1MDU2NWI2MDAwODEzNTkwNTA2MTAxMzE4MTYxMDEwYjU2NWI5MjkxNTA1MDU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMDE0ZTU3NjEwMTRkNjEwMGZjNTY1YjViNjAwMDYxMDE1Yzg1ODI4NjAxNjEwMTIyNTY1YjkyNTA1MDYwMjA2MTAxNmQ4NTgyODYwMTYxMDEyMjU2NWI5MTUwNTA5MjUwOTI5MDUwNTY1YjYwMDA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MjE2OTA1MDkxOTA1MDU2NWI2MDAwNjEwMWEyODI2MTAxNzc1NjViOTA1MDkxOTA1MDU2NWI2MTAxYjI4MTYxMDE5NzU2NWI4MTE0NjEwMWJkNTc2MDAwODBmZDViNTA1NjViNjAwMDgxMzU5MDUwNjEwMWNmODE2MTAxYTk1NjViOTI5MTUwNTA1NjViNjAwMDYwMjA4Mjg0MDMxMjE1NjEwMWViNTc2MTAxZWE2MTAwZmM1NjViNWI2MDAwNjEwMWY5ODQ4Mjg1MDE2MTAxYzA1NjViOTE1MDUwOTI5MTUwNTA1NjViNjEwMjBiODE2MTAxMDE1NjViODI1MjUwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDYxMDIyNjYwMDA4MzAxODQ2MTAyMDI1NjViOTI5MTUwNTA1NmZlYTI2NDY5NzA2NjczNTgyMjEyMjA0NjJmNjM0OGJlN2RjNWQ0Y2IyZmRkMjE0MGFmOTQ3NzYzM2Y0MjJlMDg1ZmJmMWU1M2QxODlkMGUzYWQ1ODE5NjQ3MzZmNmM2MzQzMDAwODBjMDAzMw==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwPXahOm1onpesEVmxIvf86SRww+DIJ7ZNipn6jFSzLn3uXzgd/D49jMEKJEebuLEwGgsIirXkrQYQ6/rKICIPCgkIzrTkrQYQgxQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjOtOStBhCFFBICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGK8MGiISIMawf1YAyFLtDPM3M0dyXuYlrS7H7AhkBViQJ7ijtL1qIOCnEkIFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGLAMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBJDQgiJiAto8+oT5m4Z2gs4xLQIW8b8n2vhRtgA8VyMaemjYGgU8brBAKyE6dl3YEaDAiKteStBhCrgZ+hAiIPCgkIzrTkrQYQhRQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjD4hdMJQpcHCgMYsAwS4gRggGBAUjSAFWEAEFdgAID9W1BgBDYQYQBMV2AANWDgHIBjGrBu5RRhAFFXgGO5yuv0FGEAbVeAY8MDZdIUYQCJV4Bj7e2X+hRhAKdXW2AAgP1bYQBrYASANgOBAZBhAGaRkGEBN1ZbYQDFVlsAW2EAh2AEgDYDgQGQYQCCkZBhAdVWW2EA11ZbAFthAJFhAPBWW2BAUWEAnpGQYQIRVltgQFGAkQOQ81thAK9hAPZWW2BAUWEAvJGQYQIRVltgQFGAkQOQ81uBYACBkFVQgGABgZBVUFBQVluAc///////////////////////////Fv9bYAFUgVZbYABUgVZbYACA/VtgAIGQUJGQUFZbYQEUgWEBAVZbgRRhAR9XYACA/VtQVltgAIE1kFBhATGBYQELVluSkVBQVltgAIBgQIOFAxIVYQFOV2EBTWEA/FZbW2AAYQFchYKGAWEBIlZbklBQYCBhAW2FgoYBYQEiVluRUFCSUJKQUFZbYABz//////////////////////////+CFpBQkZBQVltgAGEBooJhAXdWW5BQkZBQVlthAbKBYQGXVluBFGEBvVdgAID9W1BWW2AAgTWQUGEBz4FhAalWW5KRUFBWW2AAYCCChAMSFWEB61dhAephAPxWW1tgAGEB+YSChQFhAcBWW5FQUJKRUFBWW2ECC4FhAQFWW4JSUFBWW2AAYCCCAZBQYQImYACDAYRhAgJWW5KRUFBW/qJkaXBmc1giEiBGL2NIvn3F1Msv3SFAr5R3Yz9CLghfvx5T0YnQ461YGWRzb2xjQwAIDAAzIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACjIshE6AxiwDEoWChQAAAAAAAAAAAAAAAAAAAAAAAAGMHIHCgMYsAwQAVIWCgkKAhgCEO+LphMKCQoCGGIQ8IumEw=="},{"b64Body":"Cg8KCQjPtOStBhCHFBICGAISAhgDGKCGlAoiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjpPCgMYsAwQ4KcSIkQasG7lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKg==","b64Record":"CiUIFiIDGLAMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAfOybR+/MXmRIA14kG2QbmWiz0osC9icD39OQJC1ZURkgGZpZ9DX0II9sZ2lp1pssaCwiLteStBhCjh4opIg8KCQjPtOStBhCHFBICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMPiF0wk6jAIKAxiwDCKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoyLIRUhYKCQoCGAIQ74umEwoJCgIYYhDwi6YT"}]},"etx026AccountWithoutAliasCanMakeEthTxnsDueToAutomaticAliasCreation":{"placeholderNum":1585,"encodedItems":[{"b64Body":"Cg8KCQjVtOStBhCrFBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloyCiM6IQLDdGdfUpBT6o1wGBtUSm++Vik51kj+7JjxQlKA3YAnyBCAyK+gJUoFCIDO2gM=","b64Record":"CiUIFhIDGLIMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBQxv9yTkQaOssvDX5ksVh4NUBgYkRzZcdy0dtp2+arkr0rw14zpxkmeUck4WsRa8saDAiRteStBhDriMXVASIPCgkI1bTkrQYQqxQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxiyDBCAkN/ASg=="}]},"CreateMaxRefundIsMaxGasRefundConfiguredWhenTXGasPriceIsSmaller":{"placeholderNum":1587,"encodedItems":[{"b64Body":"Cg8KCQjctOStBhDMFBICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjgESCwiYg7+xBhD4wuBtGm0KIhIgvz78nKPj2RM+Uqx/bK/6jCFax89MkaeNrDAX/mZKWBQKIzohA+IzQNgOgzPkngEOlkVGp1fMchuTGLsVsHQQCzBJIPAHCiISIFyoycvKsbk83TSPoTXw9/UPGWRP80BhAG+kiBTgpuUjIgxIZWxsbyBXb3JsZCEqADIA","b64Record":"CiUIFhoDGLQMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDlqHpl5RFJyqUlZ17EIc0iZ4nAfUUog9TYNhvKyCNS/QsrprjDL7gBw6tfDk99UzQaDAiYteStBhCrncCIASIPCgkI3LTkrQYQzBQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjctOStBhDQFBICGAISAhgDGMr5hy0iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBwAEKAxi0DCK4ATYwODA2MDQwNTIzNDgwMTU2MDBmNTc2MDAwODBmZDViNTA2MDNmODA2MDFkNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyNjAwMDgwZmRmZWEyNjQ2OTcwNjY3MzU4MjIxMjIwOTg2N2JjOWUyMjJmMjU5Yjc4ODUwMzUwMjY4MjkzYTNmYzljMzk5YWY3ZTE3ODNkNjMzNDE2YzliMjljYmUxZTY0NzM2ZjZjNjM0MzAwMDgwNzAwMzM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwJ4kl2u5TdwaxRSFXQNSsRpIxp/LVftDKPZLFHlu8Qq73SomcxAece/nfdXbpH4swGgwImLXkrQYQw5DX7QIiDwoJCNy05K0GENAUEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjdtOStBhDSFBICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGLQMGiISICm0jlFHHnkrGf2pOSySjMdzXHvQQylTZmkPpvNjClNhIOCnEkIFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGLUMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCKma33cwvOvif0VcmTkqv/EAJO7jJGAy7flfV/rFwahA224iFgIPEslnkln2MMeNIaDAiZteStBhCju4uSASIPCgkI3bTkrQYQ0hQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjD4hdMJQvMCCgMYtQwSP2CAYEBSYACA/f6iZGlwZnNYIhIgmGe8niIvJZt4hQNQJoKTo/ycOZr34Xg9YzQWybKcvh5kc29sY0MACAcAMyKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoyLIROgMYtQxKFgoUAAAAAAAAAAAAAAAAAAAAAAAABjVyBwoDGLUMEAFSFgoJCgIYAhDvi6YTCgkKAhhiEPCLphM="}]},"lazyCreateThroughPrecompileNotSupportedWhenFlagDisabled":{"placeholderNum":1590,"encodedItems":[{"b64Body":"Cg8KCQjjtOStBhD2FBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloyCiISIJlPiVZ70hU2oQEZ7LH7x1XvTqv04UvArCLd25pd2Lk1EIDQ28P0AkoFCIDO2gM=","b64Record":"CiUIFhIDGLcMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAfokyNpbn7mn4L7W4ygSKXnr6fCFVtKeeHSoxrn1rXAau7/QKku/mOoJNE33C1lcsaDAifteStBhDjrvqcAiIPCgkI47TkrQYQ9hQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIbCgsKAhgCEP+ft4fpBQoMCgMYtwwQgKC3h+kF"},{"b64Body":"Cg8KCQjktOStBhD4FBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIE6EpchYXPzBkgQaHsPTsfHpGN2ThXxCGryYHAr1RmeEEICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGLgMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjB5AfG34drBDyM96udVRlhhZ5/Y/1z0J6YkJ+bdoOfOwENv6Cdj1adTQq51NFuBt2oaCwigteStBhCzzJklIg8KCQjktOStBhD4FBICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUhkKCgoCGAIQ/6fWuQcKCwoDGLgMEICo1rkH"},{"b64Body":"Cg8KCQjktOStBhD6FBICGAISAhgDGPHv7egCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAS8KDWZ1bmdpYmxlVG9rZW4SCFVVTEFOQUZYIOgHKgMYuAxqDAigg7+xBhDYiOuTAg==","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGLkMEjBGW+QTycnAvhjV3KfdNtN5kLraqlFrddY6yQEtev25nPAwRyk0hzy+fPpNbj0xTFMaDAigteStBhDr6YKmAiIPCgkI5LTkrQYQ+hQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWg8KAxi5DBIICgMYuAwQ0A9yCgoDGLkMEgMYuAw="},{"b64Body":"Cg8KCQjltOStBhCAFRICGAISAhgDGOC2iyAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGLcMEgMYuQw=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw1p+LD0wdpr2lCyQyf6L0aBQzNmV0CJTOyPCTylqWXUUSzvvfCjWvkVj4lzJOb5WHGgsIobXkrQYQ06+SLiIPCgkI5bTkrQYQgBUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjltOStBhCCFRICGAISAhgDGOufNiICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOchsSGQoDGLkMEggKAxi4DBCPAxIICgMYtwwQkAM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw7qEdrXx0qTEAF2zuc4cJ1z4PkWm7TG7A07wCIhlRCyZY4Hg/QTwRvu5JbZBNvjinGgwIobXkrQYQo5S1rwIiDwoJCOW05K0GEIIVEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAFoZCgMYuQwSCAoDGLcMEJADEggKAxi4DBCPAw=="},{"b64Body":"Cg8KCQjmtOStBhCEFRICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjgESCwiig7+xBhDYppMzGm0KIhIgaX99YooCgRCgI+kjPYSLyQdMW/0y5l/27yu4nhUBLXsKIzohAoK/fAUoIc4M/tupIEHzWHOBLaBMpY6WoPoq3XxfFfP6CiISIJXI8AQXrrGigItBnZdiubsqpYYRPMa9gUk8Mxy9Jg/VIgxIZWxsbyBXb3JsZCEqADIA","b64Record":"CiUIFhoDGLoMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAtPfCIu9j4S5Y1TAAEvdJILSHxINieYc/q9QSdXRUTifIEdd3ATHQoPqpdK9k5V7EaCwiiteStBhDT4uM3Ig8KCQjmtOStBhCEFRICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgA="},{"b64Body":"Cg8KCQjmtOStBhCIFRICGAISAhgDGIydjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxi6DCKAIDYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMGRhNzgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDAzNjU3NjAwMDM1NjBlMDFjODA2MzBlZDA3Mjc2MTQ2MTAwM2I1NzgwNjM3YzQxYWQyYzE0NjEwMDU3NTc1YjYwMDA4MGZkNWI2MTAwNTU2MDA0ODAzNjAzODEwMTkwNjEwMDUwOTE5MDYxMDgwYTU2NWI2MTAwODc1NjViMDA1YjYxMDA3MTYwMDQ4MDM2MDM4MTAxOTA2MTAwNmM5MTkwNjEwODUzNTY1YjYxMDBkZTU2NWI2MDQwNTE2MTAwN2U5MTkwNjEwODk5NTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYwMDA2MTAwOTI4MjYxMDFmMzU2NWI5MDUwNjAxNjYwMDMwYjgxMTQ2MTAwZGE1NzYwNDA1MTdmMDhjMzc5YTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgxNTI2MDA0MDE2MTAwZDE5MDYxMDkxMTU2NWI2MDQwNTE4MDkxMDM5MGZkNWI1MDUwNTY1YjYwMDA4MDYwMDA2MTAxNjc3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzN2M0MWFkMmM2MGUwMWI4NTYwNDA1MTYwMjQwMTYxMDExNTkxOTA2MTA5NDA1NjViNjA0MDUxNjAyMDgxODMwMzAzODE1MjkwNjA0MDUyOTA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjEwMTdmOTE5MDYxMDljYzU2NWI2MDAwNjA0MDUxODA4MzAzODE2MDAwODY1YWYxOTE1MDUwM2Q4MDYwMDA4MTE0NjEwMWJjNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjEwMWMxNTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTAxZDI1NzYwMTU2MTAxZTc1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTAxZTY5MTkwNjEwYTFjNTY1YjViNjAwMzBiOTI1MDUwNTA5MTkwNTA1NjViNjAwMDgwNjAwMDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjMxODlhNTU0YzYwZTAxYjg1NjA0MDUxNjAyNDAxNjEwMjJhOTE5MDYxMGQ0ZjU2NWI2MDQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI5MDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTAyOTQ5MTkwNjEwOWNjNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NjVhZjE5MTUwNTAzZDgwNjAwMDgxMTQ2MTAyZDE1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTAyZDY1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA4MTYxMDJlNzU3NjAxNTYxMDJmYzU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMDJmYjkxOTA2MTBhMWM1NjViNWI2MDAzMGI5MjUwNTA1MDkxOTA1MDU2NWI2MDAwNjA0MDUxOTA1MDkwNTY1YjYwMDA4MGZkNWI2MDAwODBmZDViNjAwMDgwZmQ1YjYwMDA2MDFmMTk2MDFmODMwMTE2OTA1MDkxOTA1MDU2NWI3ZjRlNDg3YjcxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MDAwNTI2MDQxNjAwNDUyNjAyNDYwMDBmZDViNjEwMzZhODI2MTAzMjE1NjViODEwMTgxODExMDY3ZmZmZmZmZmZmZmZmZmZmZjgyMTExNzE1NjEwMzg5NTc2MTAzODg2MTAzMzI1NjViNWI4MDYwNDA1MjUwNTA1MDU2NWI2MDAwNjEwMzljNjEwMzA4NTY1YjkwNTA2MTAzYTg4MjgyNjEwMzYxNTY1YjkxOTA1MDU2NWI2MDAwNjdmZmZmZmZmZmZmZmZmZmZmODIxMTE1NjEwM2M4NTc2MTAzYzc2MTAzMzI1NjViNWI2MDIwODIwMjkwNTA2MDIwODEwMTkwNTA5MTkwNTA1NjViNjAwMDgwZmQ1YjYwMDA4MGZkNWI2MDAwODBmZDViNjAwMDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgyMTY5MDUwOTE5MDUwNTY1YjYwMDA2MTA0MTM4MjYxMDNlODU2NWI5MDUwOTE5MDUwNTY1YjYxMDQyMzgxNjEwNDA4NTY1YjgxMTQ2MTA0MmU1NzYwMDA4MGZkNWI1MDU2NWI2MDAwODEzNTkwNTA2MTA0NDA4MTYxMDQxYTU2NWI5MjkxNTA1MDU2NWI2MDAwNjdmZmZmZmZmZmZmZmZmZmZmODIxMTE1NjEwNDYxNTc2MTA0NjA2MTAzMzI1NjViNWI2MDIwODIwMjkwNTA2MDIwODEwMTkwNTA5MTkwNTA1NjViNjAwMDgxNjAwNzBiOTA1MDkxOTA1MDU2NWI2MTA0ODg4MTYxMDQ3MjU2NWI4MTE0NjEwNDkzNTc2MDAwODBmZDViNTA1NjViNjAwMDgxMzU5MDUwNjEwNGE1ODE2MTA0N2Y1NjViOTI5MTUwNTA1NjViNjAwMDYwNDA4Mjg0MDMxMjE1NjEwNGMxNTc2MTA0YzA2MTAzZGU1NjViNWI2MTA0Y2I2MDQwNjEwMzkyNTY1YjkwNTA2MDAwNjEwNGRiODQ4Mjg1MDE2MTA0MzE1NjViNjAwMDgzMDE1MjUwNjAyMDYxMDRlZjg0ODI4NTAxNjEwNDk2NTY1YjYwMjA4MzAxNTI1MDkyOTE1MDUwNTY1YjYwMDA2MTA1MGU2MTA1MDk4NDYxMDQ0NjU2NWI2MTAzOTI1NjViOTA1MDgwODM4MjUyNjAyMDgyMDE5MDUwNjA0MDg0MDI4MzAxODU4MTExMTU2MTA1MzE1NzYxMDUzMDYxMDNkOTU2NWI1YjgzNWI4MTgxMTAxNTYxMDU1YTU3ODA2MTA1NDY4ODgyNjEwNGFiNTY1Yjg0NTI2MDIwODQwMTkzNTA1MDYwNDA4MTAxOTA1MDYxMDUzMzU2NWI1MDUwNTA5MzkyNTA1MDUwNTY1YjYwMDA4MjYwMWY4MzAxMTI2MTA1Nzk1NzYxMDU3ODYxMDMxYzU2NWI1YjgxMzU2MTA1ODk4NDgyNjAyMDg2MDE2MTA0ZmI1NjViOTE1MDUwOTI5MTUwNTA1NjViNjAwMDY3ZmZmZmZmZmZmZmZmZmZmZjgyMTExNTYxMDVhZDU3NjEwNWFjNjEwMzMyNTY1YjViNjAyMDgyMDI5MDUwNjAyMDgxMDE5MDUwOTE5MDUwNTY1YjYwMDA2MDYwODI4NDAzMTIxNTYxMDVkNDU3NjEwNWQzNjEwM2RlNTY1YjViNjEwNWRlNjA2MDYxMDM5MjU2NWI5MDUwNjAwMDYxMDVlZTg0ODI4NTAxNjEwNDMxNTY1YjYwMDA4MzAxNTI1MDYwMjA2MTA2MDI4NDgyODUwMTYxMDQzMTU2NWI2MDIwODMwMTUyNTA2MDQwNjEwNjE2ODQ4Mjg1MDE2MTA0OTY1NjViNjA0MDgzMDE1MjUwOTI5MTUwNTA1NjViNjAwMDYxMDYzNTYxMDYzMDg0NjEwNTkyNTY1YjYxMDM5MjU2NWI5MDUwODA4MzgyNTI2MDIwODIwMTkwNTA2MDYwODQwMjgzMDE4NTgxMTExNTYxMDY1ODU3NjEwNjU3NjEwM2Q5NTY1YjViODM1YjgxODExMDE1NjEwNjgxNTc4MDYxMDY2ZDg4ODI2MTA1YmU1NjViODQ1MjYwMjA4NDAxOTM1MDUwNjA2MDgxMDE5MDUwNjEwNjVhNTY1YjUwNTA1MDkzOTI1MDUwNTA1NjViNjAwMDgyNjAxZjgzMDExMjYxMDZhMDU3NjEwNjlmNjEwMzFjNTY1YjViODEzNTYxMDZiMDg0ODI2MDIwODYwMTYxMDYyMjU2NWI5MTUwNTA5MjkxNTA1MDU2NWI2MDAwNjA2MDgyODQwMzEyMTU2MTA2Y2Y1NzYxMDZjZTYxMDNkZTU2NWI1YjYxMDZkOTYwNjA2MTAzOTI1NjViOTA1MDYwMDA2MTA2ZTk4NDgyODUwMTYxMDQzMTU2NWI2MDAwODMwMTUyNTA2MDIwODIwMTM1NjdmZmZmZmZmZmZmZmZmZmZmODExMTE1NjEwNzBkNTc2MTA3MGM2MTAzZTM1NjViNWI2MTA3MTk4NDgyODUwMTYxMDU2NDU2NWI2MDIwODMwMTUyNTA2MDQwODIwMTM1NjdmZmZmZmZmZmZmZmZmZmZmODExMTE1NjEwNzNkNTc2MTA3M2M2MTAzZTM1NjViNWI2MTA3NDk4NDgyODUwMTYxMDY4YjU2NWI2MDQwODMwMTUyNTA5MjkxNTA1MDU2NWI2MDAwNjEwNzY4NjEwNzYzODQ2MTAzYWQ1NjViNjEwMzkyNTY1YjkwNTA4MDgzODI1MjYwMjA4MjAxOTA1MDYwMjA4NDAyODMwMTg1ODExMTE1NjEwNzhiNTc2MTA3OGE2MTAzZDk1NjViNWI4MzViODE4MTEwMTU2MTA3ZDI1NzgwMzU2N2ZmZmZmZmZmZmZmZmZmZmY4MTExMTU2MTA3YjA1NzYxMDdhZjYxMDMxYzU2NWI1YjgwODYwMTYxMDdiZDg5ODI2MTA2Yjk1NjViODU1MjYwMjA4NTAxOTQ1MDUwNTA2MDIwODEwMTkwNTA2MTA3OGQ1NjViNTA1MDUwOTM5MjUwNTA1MDU2NWI2MDAwODI=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwh2RMexl20cxRv78Mv/2n7vdRtdy+w86XMBiVJVscEQWLkZ1YiDFwTxBuCt1lSD6zGgwIorXkrQYQ65SPuQIiDwoJCOa05K0GEIgVEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjntOStBhCOFRICGAISAhgDGKPY6zkiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBlhcSAxi6DCKOFzYwMWY4MzAxMTI2MTA3ZjE1NzYxMDdmMDYxMDMxYzU2NWI1YjgxMzU2MTA4MDE4NDgyNjAyMDg2MDE2MTA3NTU1NjViOTE1MDUwOTI5MTUwNTA1NjViNjAwMDYwMjA4Mjg0MDMxMjE1NjEwODIwNTc2MTA4MWY2MTAzMTI1NjViNWI2MDAwODIwMTM1NjdmZmZmZmZmZmZmZmZmZmZmODExMTE1NjEwODNlNTc2MTA4M2Q2MTAzMTc1NjViNWI2MTA4NGE4NDgyODUwMTYxMDdkYzU2NWI5MTUwNTA5MjkxNTA1MDU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTA4Njk1NzYxMDg2ODYxMDMxMjU2NWI1YjYwMDA2MTA4Nzc4NDgyODUwMTYxMDQzMTU2NWI5MTUwNTA5MjkxNTA1MDU2NWI2MDAwODE5MDUwOTE5MDUwNTY1YjYxMDg5MzgxNjEwODgwNTY1YjgyNTI1MDUwNTY1YjYwMDA2MDIwODIwMTkwNTA2MTA4YWU2MDAwODMwMTg0NjEwODhhNTY1YjkyOTE1MDUwNTY1YjYwMDA4MjgyNTI2MDIwODIwMTkwNTA5MjkxNTA1MDU2NWI3ZjQzNzI3OTcwNzQ2ZjIwNTQ3MjYxNmU3MzY2NjU3MjIwNDY2MTY5NmM2NTY0MDAwMDAwMDAwMDAwMDAwMDAwMDA2MDAwODIwMTUyNTA1NjViNjAwMDYxMDhmYjYwMTY4MzYxMDhiNDU2NWI5MTUwNjEwOTA2ODI2MTA4YzU1NjViNjAyMDgyMDE5MDUwOTE5MDUwNTY1YjYwMDA2MDIwODIwMTkwNTA4MTgxMDM2MDAwODMwMTUyNjEwOTJhODE2MTA4ZWU1NjViOTA1MDkxOTA1MDU2NWI2MTA5M2E4MTYxMDQwODU2NWI4MjUyNTA1MDU2NWI2MDAwNjAyMDgyMDE5MDUwNjEwOTU1NjAwMDgzMDE4NDYxMDkzMTU2NWI5MjkxNTA1MDU2NWI2MDAwODE1MTkwNTA5MTkwNTA1NjViNjAwMDgxOTA1MDkyOTE1MDUwNTY1YjYwMDA1YjgzODExMDE1NjEwOThmNTc4MDgyMDE1MTgxODQwMTUyNjAyMDgxMDE5MDUwNjEwOTc0NTY1YjYwMDA4NDg0MDE1MjUwNTA1MDUwNTY1YjYwMDA2MTA5YTY4MjYxMDk1YjU2NWI2MTA5YjA4MTg1NjEwOTY2NTY1YjkzNTA2MTA5YzA4MTg1NjAyMDg2MDE2MTA5NzE1NjViODA4NDAxOTE1MDUwOTI5MTUwNTA1NjViNjAwMDYxMDlkODgyODQ2MTA5OWI1NjViOTE1MDgxOTA1MDkyOTE1MDUwNTY1YjYwMDA4MTYwMDMwYjkwNTA5MTkwNTA1NjViNjEwOWY5ODE2MTA5ZTM1NjViODExNDYxMGEwNDU3NjAwMDgwZmQ1YjUwNTY1YjYwMDA4MTUxOTA1MDYxMGExNjgxNjEwOWYwNTY1YjkyOTE1MDUwNTY1YjYwMDA2MDIwODI4NDAzMTIxNTYxMGEzMjU3NjEwYTMxNjEwMzEyNTY1YjViNjAwMDYxMGE0MDg0ODI4NTAxNjEwYTA3NTY1YjkxNTA1MDkyOTE1MDUwNTY1YjYwMDA4MTUxOTA1MDkxOTA1MDU2NWI2MDAwODI4MjUyNjAyMDgyMDE5MDUwOTI5MTUwNTA1NjViNjAwMDgxOTA1MDYwMjA4MjAxOTA1MDkxOTA1MDU2NWI2MTBhN2U4MTYxMDQwODU2NWI4MjUyNTA1MDU2NWI2MDAwODE1MTkwNTA5MTkwNTA1NjViNjAwMDgyODI1MjYwMjA4MjAxOTA1MDkyOTE1MDUwNTY1YjYwMDA4MTkwNTA2MDIwODIwMTkwNTA5MTkwNTA1NjViNjEwYWI5ODE2MTA0NzI1NjViODI1MjUwNTA1NjViNjA0MDgyMDE2MDAwODIwMTUxNjEwYWQ1NjAwMDg1MDE4MjYxMGE3NTU2NWI1MDYwMjA4MjAxNTE2MTBhZTg2MDIwODUwMTgyNjEwYWIwNTY1YjUwNTA1MDUwNTY1YjYwMDA2MTBhZmE4MzgzNjEwYWJmNTY1YjYwNDA4MzAxOTA1MDkyOTE1MDUwNTY1YjYwMDA2MDIwODIwMTkwNTA5MTkwNTA1NjViNjAwMDYxMGIxZTgyNjEwYTg0NTY1YjYxMGIyODgxODU2MTBhOGY1NjViOTM1MDYxMGIzMzgzNjEwYWEwNTY1YjgwNjAwMDViODM4MTEwMTU2MTBiNjQ1NzgxNTE2MTBiNGI4ODgyNjEwYWVlNTY1Yjk3NTA2MTBiNTY4MzYxMGIwNjU2NWI5MjUwNTA2MDAxODEwMTkwNTA2MTBiMzc1NjViNTA4NTkzNTA1MDUwNTA5MjkxNTA1MDU2NWI2MDAwODE1MTkwNTA5MTkwNTA1NjViNjAwMDgyODI1MjYwMjA4MjAxOTA1MDkyOTE1MDUwNTY1YjYwMDA4MTkwNTA2MDIwODIwMTkwNTA5MTkwNTA1NjViNjA2MDgyMDE2MDAwODIwMTUxNjEwYmIzNjAwMDg1MDE4MjYxMGE3NTU2NWI1MDYwMjA4MjAxNTE2MTBiYzY2MDIwODUwMTgyNjEwYTc1NTY1YjUwNjA0MDgyMDE1MTYxMGJkOTYwNDA4NTAxODI2MTBhYjA1NjViNTA1MDUwNTA1NjViNjAwMDYxMGJlYjgzODM2MTBiOWQ1NjViNjA2MDgzMDE5MDUwOTI5MTUwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDkxOTA1MDU2NWI2MDAwNjEwYzBmODI2MTBiNzE1NjViNjEwYzE5ODE4NTYxMGI3YzU2NWI5MzUwNjEwYzI0ODM2MTBiOGQ1NjViODA2MDAwNWI4MzgxMTAxNTYxMGM1NTU3ODE1MTYxMGMzYzg4ODI2MTBiZGY1NjViOTc1MDYxMGM0NzgzNjEwYmY3NTY1YjkyNTA1MDYwMDE4MTAxOTA1MDYxMGMyODU2NWI1MDg1OTM1MDUwNTA1MDkyOTE1MDUwNTY1YjYwMDA2MDYwODMwMTYwMDA4MzAxNTE2MTBjN2E2MDAwODYwMTgyNjEwYTc1NTY1YjUwNjAyMDgzMDE1MTg0ODIwMzYwMjA4NjAxNTI2MTBjOTI4MjgyNjEwYjEzNTY1YjkxNTA1MDYwNDA4MzAxNTE4NDgyMDM2MDQwODYwMTUyNjEwY2FjODI4MjYxMGMwNDU2NWI5MTUwNTA4MDkxNTA1MDkyOTE1MDUwNTY1YjYwMDA2MTBjYzU4MzgzNjEwYzYyNTY1YjkwNTA5MjkxNTA1MDU2NWI2MDAwNjAyMDgyMDE5MDUwOTE5MDUwNTY1YjYwMDA2MTBjZTU4MjYxMGE0OTU2NWI2MTBjZWY4MTg1NjEwYTU0NTY1YjkzNTA4MzYwMjA4MjAyODUwMTYxMGQwMTg1NjEwYTY1NTY1YjgwNjAwMDViODU4MTEwMTU2MTBkM2Q1Nzg0ODQwMzg5NTI4MTUxNjEwZDFlODU4MjYxMGNiOTU2NWI5NDUwNjEwZDI5ODM2MTBjY2Q1NjViOTI1MDYwMjA4YTAxOTk1MDUwNjAwMTgxMDE5MDUwNjEwZDA1NTY1YjUwODI5NzUwODc5NTUwNTA1MDUwNTA1MDkyOTE1MDUwNTY1YjYwMDA2MDIwODIwMTkwNTA4MTgxMDM2MDAwODMwMTUyNjEwZDY5ODE4NDYxMGNkYTU2NWI5MDUwOTI5MTUwNTA1NmZlYTI2NDY5NzA2NjczNTgyMjEyMjAxODI5MWU4ZjA2YmY3ZTNjMzc3OGEyMGUwNjhhZWY0NDAyODE4NWQyOGVkNWQyYWU3MzMxNDNiNTg4Zjc2MTYwNjQ3MzZmNmM2MzQzMDAwODEwMDAzMw==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwwtPklWCxaxjTYVWQYTZ3whvjYWfDP/Ozp0nKQcjUkh5m5Kef12Ij5CTUH6aov/pwGgsIo7XkrQYQ+7KZQSIPCgkI57TkrQYQjhUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjntOStBhCQFRICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRwoDGLoMGiISIBmeMcyGqf2u4PqKcscTR8z88YfdE1MZF/4mFcZs1DPWIJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcnAB","b64Record":"CiUIFiIDGLsMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAtGAXDgMYpxca7d/NxKVhGE8brPRO0WvfTH5GWhFn6P218X3youx3RkUrnbCA6IRIaDAijteStBhDD/LfCAiIPCgkI57TkrQYQkBUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQtwdCgMYuwwSpxtggGBAUjSAFWEAEFdgAID9W1BgBDYQYQA2V2AANWDgHIBjDtBydhRhADtXgGN8Qa0sFGEAV1dbYACA/VthAFVgBIA2A4EBkGEAUJGQYQgKVlthAIdWWwBbYQBxYASANgOBAZBhAGyRkGEIU1ZbYQDeVltgQFFhAH6RkGEImVZbYEBRgJEDkPNbYABhAJKCYQHzVluQUGAWYAMLgRRhANpXYEBRfwjDeaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgVJgBAFhANGQYQkRVltgQFGAkQOQ/VtQUFZbYACAYABhAWdz//////////////////////////8WY3xBrSxg4BuFYEBRYCQBYQEVkZBhCUBWW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEBf5GQYQnMVltgAGBAUYCDA4FgAIZa8ZFQUD2AYACBFGEBvFdgQFGRUGAfGWA/PQEWggFgQFI9glI9YABgIIQBPmEBwVZbYGCRUFtQkVCRUIFhAdJXYBVhAedWW4CAYCABkFGBAZBhAeaRkGEKHFZbW2ADC5JQUFCRkFBWW2AAgGAAYQFnc///////////////////////////FmMYmlVMYOAbhWBAUWAkAWECKpGQYQ1PVltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhApSRkGEJzFZbYABgQFGAgwOBYACGWvGRUFA9gGAAgRRhAtFXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hAtZWW2BgkVBbUJFQ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VltgAIFgAwuQUJGQUFZbYQn5gWEJ41ZbgRRhCgRXYACA/VtQVltgAIFRkFBhChaBYQnwVluSkVBQVltgAGAggoQDEhVhCjJXYQoxYQMSVltbYABhCkCEgoUBYQoHVluRUFCSkVBQVltgAIFRkFCRkFBWW2AAgoJSYCCCAZBQkpFQUFZbYACBkFBgIIIBkFCRkFBWW2EKfoFhBAhWW4JSUFBWW2AAgVGQUJGQUFZbYACCglJgIIIBkFCSkVBQVltgAIGQUGAgggGQUJGQUFZbYQq5gWEEclZbglJQUFZbYECCAWAAggFRYQrVYACFAYJhCnVWW1BgIIIBUWEK6GAghQGCYQqwVltQUFBQVltgAGEK+oODYQq/VltgQIMBkFCSkVBQVltgAGAgggGQUJGQUFZbYABhCx6CYQqEVlthCyiBhWEKj1Zbk1BhCzODYQqgVluAYABbg4EQFWELZFeBUWELS4iCYQruVluXUGELVoNhCwZWW5JQUGABgQGQUGELN1ZbUIWTUFBQUJKRUFBWW2AAgVGQUJGQUFZbYACCglJgIIIBkFCSkVBQVltgAIGQUGAgggGQUJGQUFZbYGCCAWAAggFRYQuzYACFAYJhCnVWW1BgIIIBUWELxmAghQGCYQp1VltQYECCAVFhC9lgQIUBgmEKsFZbUFBQUFZbYABhC+uDg2ELnVZbYGCDAZBQkpFQUFZbYABgIIIBkFCRkFBWW2AAYQwPgmELcVZbYQwZgYVhC3xWW5NQYQwkg2ELjVZbgGAAW4OBEBVhDFVXgVFhDDyIgmEL31Zbl1BhDEeDYQv3VluSUFBgAYEBkFBhDChWW1CFk1BQUFCSkVBQVltgAGBggwFgAIMBUWEMemAAhgGCYQp1VltQYCCDAVGEggNgIIYBUmEMkoKCYQsTVluRUFBgQIMBUYSCA2BAhgFSYQysgoJhDARWW5FQUICRUFCSkVBQVltgAGEMxYODYQxiVluQUJKRUFBWW2AAYCCCAZBQkZBQVltgAGEM5YJhCklWW2EM74GFYQpUVluTUINgIIIChQFhDQGFYQplVluAYABbhYEQFWENPVeEhAOJUoFRYQ0ehYJhDLlWW5RQYQ0pg2EMzVZbklBgIIoBmVBQYAGBAZBQYQ0FVltQgpdQh5VQUFBQUFCSkVBQVltgAGAgggGQUIGBA2AAgwFSYQ1pgYRhDNpWW5BQkpFQUFb+omRpcGZzWCISIBgpHo8Gv348N3iiDgaK70QCgYXSjtXSrnMxQ7WI92FgZHNvbGNDAAgQADMigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMCaDDoDGLsMShYKFAAAAAAAAAAAAAAAAAAAAAAAAAY7cgcKAxi7DBABUhYKCQoCGAIQ/7LFDQoJCgIYYhCAs8UN"},{"b64Body":"Cg8KCQjotOStBhCcFRICGAISAhgDGMrzGCICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOejgSAxi3DBoxKi8IARIrCiISINokD7WuSlpjGYLx+ZN8g+XdjdI/Pdtph2gDkW+yB7SQCgVCAxi7DA==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwVnx85PM5O3qHZkrqR5xOPHzb5r7gzA2pWmDoLQbBfk+guYMUS81jNsngdsMrhx8sGgsIpLXkrQYQk72eZyIPCgkI6LTkrQYQnBUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjotOStBhCeFRICGAISAhgDGMC/7SEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjqQAwoDGLsMEMCEPSKEAw7QcnYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGOQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY3/////////////////////////////////////////84AAAAAAAAAAAAAAACce+ZZaB9a1+xkiLVLkRz0jZiDXwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=","b64Record":"CiUIISIDGLsMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDxdjT5LKSCuMzBK/DADVazyuZO/xiWoW4t8M3n4cB8LO1ewwZCPY+upNvPSSaf4R0aDAikteStBhCb1rjMAiIPCgkI6LTkrQYQnhUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCA5oobOtEBGsoBMHgwOGMzNzlhMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE2NDM3Mjc5NzA3NDZmMjA1NDcyNjE2ZTczNjY2NTcyMjA0NjYxNjk2YzY1NjQwMDAwMDAwMDAwMDAwMDAwMDAwMCiA6jBSFgoJCgIYAhD/y5U2CgkKAhhiEIDMlTY="}]},"evmLazyCreateViaSolidityCall":{"placeholderNum":1596,"encodedItems":[{"b64Body":"Cg8KCQjutOStBhDDFRICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAiqg7+xBhCoyZLKARptCiISIMI6VQCr1oD6SGfnn5P6ma+K/AR0VuGXpWj2T8eliiOGCiM6IQMX5gRGpxbV60vBRI+DEVz+NYCWoGdDOY4hFG6P7rSu1AoiEiCmVI8j1e4wW9zoCzBsmGr3XG90aGMqRiiddno5Dya8ySIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGL0MKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCJ69nntXKbLOMEchDC1p7MoFCDt0oIcQ1MQUn++U3SxnDfsZWqcuBx7AsHPer3RmUaDAiqteStBhCb9IrbASIPCgkI7rTkrQYQwxUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjutOStBhDHFRICGAISAhgDGIydjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxi9DCKAIDYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYwNDA1MTYxMDAxZDkwNjEwMDVmNTY1YjYwNDA1MTgwOTEwMzkwNjAwMGYwODAxNTgwMTU2MTAwMzk1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA2MDAwODA1NDYwMDE2MDAxNjBhMDFiMDMxOTE2NjAwMTYwMDE2MGEwMWIwMzkyOTA5MjE2OTE5MDkxMTc5MDU1NjEwMDZjNTY1YjYxMDI2MTgwNjExNDgxODMzOTAxOTA1NjViNjExNDA2ODA2MTAwN2I2MDAwMzk2MDAwZjNmZTYwODA2MDQwNTI2MDA0MzYxMDYxMDBhNzU3NjAwMDM1NjBlMDFjODA2MzhmOGQ3Zjk5MTE2MTAwNjQ1NzgwNjM4ZjhkN2Y5OTE0NjEwMTk1NTc4MDYzOWYxY2RkZmMxNDYxMDFiNTU3ODA2M2FhM2VkOTA4MTQ2MTAxYzg1NzgwNjNhZjk5YzYzMzE0NjEwMWRiNTc4MDYzZDYxNGNkYjgxNDYxMDFmYjU3ODA2M2YyYzMxZmY0MTQ2MTAyMjk1NzYwMDA4MGZkNWI4MDYzMmM1MjNkZDMxNDYxMDBhYzU3ODA2MzNiM2JmZjBmMTQ2MTAwYzE1NzgwNjMzYzRkZDMyZTE0NjEwMGY0NTc4MDYzNTkzZDZlODIxNDYxMDEyMjU3ODA2MzZmYzNjYmFmMTQ2MTAxNDI1NzgwNjM3YzQxYWQyYzE0NjEwMTc1NTc1YjYwMDA4MGZkNWI2MTAwYmY2MTAwYmEzNjYwMDQ2MTBhYjI1NjViNjEwMjYzNTY1YjAwNWIzNDgwMTU2MTAwY2Q1NzYwMDA4MGZkNWI1MDYxMDBlMTYxMDBkYzM2NjAwNDYxMGFiMjU2NWI2MTA0MjI1NjViNjA0MDUxOTA4MTUyNjAyMDAxNWI2MDQwNTE4MDkxMDM5MGYzNWIzNDgwMTU2MTAxMDA1NzYwMDA4MGZkNWI1MDYxMDExNDYxMDEwZjM2NjAwNDYxMGFlNjU2NWI2MTA0ZmM1NjViNjA0MDUxNjEwMGViOTI5MTkwNjEwYmQ5NTY1YjM0ODAxNTYxMDEyZTU3NjAwMDgwZmQ1YjUwNjEwMGUxNjEwMTNkMzY2MDA0NjEwY2M1NTY1YjYxMDVlMzU2NWIzNDgwMTU2MTAxNGU1NzYwMDA4MGZkNWI1MDYxMDE2MjYxMDE1ZDM2NjAwNDYxMGRmMjU2NWI2MTA2YzA1NjViNjA0MDUxNjAwNzkxOTA5MTBiODE1MjYwMjAwMTYxMDBlYjU2NWIzNDgwMTU2MTAxODE1NzYwMDA4MGZkNWI1MDYxMDBlMTYxMDE5MDM2NjAwNDYxMGFiMjU2NWI2MTA2ZWM1NjViMzQ4MDE1NjEwMWExNTc2MDAwODBmZDViNTA2MTAxNjI2MTAxYjAzNjYwMDQ2MTBmOGY1NjViNjEwNzFhNTY1YjYxMDBiZjYxMDFjMzM2NjAwNDYxMGFiMjU2NWI2MTA3NTA1NjViNjEwMGJmNjEwMWQ2MzY2MDA0NjEwZmM4NTY1YjYxMDdiNDU2NWIzNDgwMTU2MTAxZTc1NzYwMDA4MGZkNWI1MDYxMDE2MjYxMDFmNjM2NjAwNDYxMGY4ZjU2NWI2MTA4NGM1NjViMzQ4MDE1NjEwMjA3NTc2MDAwODBmZDViNTA2MTAyMWI2MTAyMTYzNjYwMDQ2MTBhYjI1NjViNjEwODgyNTY1YjYwNDA1MTYxMDBlYjkyOTE5MDYxMTA2MjU2NWIzNDgwMTU2MTAyMzU1NzYwMDA4MGZkNWI1MDYxMDI0OTYxMDI0NDM2NjAwNDYxMGY4ZjU2NWI2MTA5OGM1NjViNjA0MDgwNTE2MDA3OTM5MDkzMGI4MzUyOTAxNTE1NjAyMDgzMDE1MjAxNjEwMGViNTY1YjYwMDA1NDYwMDE2MDAxNjBhMDFiMDMxNjYzOTkwNDdmMDI2MTAyN2Y2MDAyMzQ2MTEwOWM1NjViNjA0MDUxNjAwMTYwMDE2MGUwMWIwMzE5NjBlMDg0OTAxYjE2ODE1MjYwMDE2MDAxNjBhMDFiMDM4NTE2NjAwNDgyMDE1MjYwMjQwMTYwMDA2MDQwNTE4MDgzMDM4MTg1ODg4MDNiMTU4MDE1NjEwMmJlNTc2MDAwODBmZDViNTA1YWYxMTU4MDE1NjEwMmQyNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNTA2MDAwODE2MDAxNjAwMTYwYTAxYjAzMTY2MDA0MzQ2MTAyZjA5MTkwNjExMDljNTY1YjYwNDA1MTYwMDA4MTgxODE4NTg3NWFmMTkyNTA1MDUwM2Q4MDYwMDA4MTE0NjEwMzJjNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjEwMzMxNTY1YjYwNjA5MTUwNWI1MDUwOTA1MDgwNjEwMzdlNTc2MDQwNTE2MjQ2MWJjZDYwZTUxYjgxNTI2MDIwNjAwNDgyMDE1MjYwMTQ2MDI0ODIwMTUyNzMyMzMwYjRiNjMyYjIxMDNhMzc5MDM5YjJiNzMyMTAyMmJhMzQzMmI5NjA2MTFiNjA0NDgyMDE1MjYwNjQwMTViNjA0MDUxODA5MTAzOTBmZDViNjAwMTYwMDE2MGEwMWIwMzgyMTY2MTAzOTM2MDA0MzQ2MTEwOWM1NjViNjA0MDUxNjAwMDgxODE4MTg1ODc1YWYxOTI1MDUwNTAzZDgwNjAwMDgxMTQ2MTAzY2Y1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTAzZDQ1NjViNjA2MDkxNTA1YjUwNTA4MDkxNTA1MDgwNjEwNDFlNTc2MDQwNTE2MjQ2MWJjZDYwZTUxYjgxNTI2MDIwNjAwNDgyMDE1MjYwMTQ2MDI0ODIwMTUyNzMyMzMwYjRiNjMyYjIxMDNhMzc5MDM5YjJiNzMyMTAyMmJhMzQzMmI5NjA2MTFiNjA0NDgyMDE1MjYwNjQwMTYxMDM3NTU2NWI1MDUwNTY1YjYwNDA1MTYwMDE2MDAxNjBhMDFiMDM4MjE2NjAyNDgyMDE1MjYwMDA5MDgxOTA4MTkwNjEwMTY3OTA2MzNiM2JmZjBmNjBlMDFiOTA2MDQ0MDE1YjYwNDA4MDUxNjAxZjE5ODE4NDAzMDE4MTUyOTE4MTUyNjAyMDgyMDE4MDUxNjAwMTYwMDE2MGUwMWIwMzE2NjAwMTYwMDE2MGUwMWIwMzE5OTA5NDE2OTM5MDkzMTc5MDkyNTI5MDUxNjEwNDhhOTE5MDYxMTBiZTU2NWI2MDAwNjA0MDUxODA4MzAzODE2MDAwODY1YWYxOTE1MDUwM2Q4MDYwMDA4MTE0NjEwNGM3NTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjEwNGNjNTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTA0ZGQ1NzYwMTU2MTA0ZjE1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTA0ZjE5MTkwNjExMGVjNTY1YjYwMDMwYjk0OTM1MDUwNTA1MDU2NWI2MDAwNjEwNTA2NjEwYTU3NTY1YjYwNDA4MDUxNjAwMTYwMDE2MGEwMWIwMzg2MTY2MDI0ODIwMTUyNjA0NDgwODIwMTg2OTA1MjgyNTE4MDgzMDM5MDkxMDE4MTUyNjA2NDkwOTEwMTgyNTI2MDIwODEwMTgwNTE2MDAxNjAwMTYwZTAxYjAzMTY2MzFlMjZlOTk3NjBlMTFiMTc5MDUyOTA1MTYwMDA5MTgyOTE2MTAxNjc5MTYxMDU2MDkxNjExMGJlNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NjVhZjE5MTUwNTAzZDgwNjAwMDgxMTQ2MTA1OWQ1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTA1YTI1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA2MTA1YWY2MTBhNTc1NjViODI2MTA1YmM1NzYwMTU4MTYxMDVkMDU2NWI4MTgwNjAyMDAxOTA1MTgxMDE5MDYxMDVkMDkxOTA2MTExNTc1NjViNjAwMzkxOTA5MTBiOTg5MDk3NTA5NTUwNTA1MDUwNTA1MDU2NWI2MDAwODA2MDAwNjEwMTY3NjAwMTYwMDE2MGEwMWIwMzE2NjM1OTNkNmU4MjYwZTAxYjg2ODY2MDQwNTE2MDI0MDE2MTA2MGY5MjkxOTA2MTEyMzI1NjViNjA0MDgwNTE2MDFmMTk4MTg0MDMwMTgxNTI5MTgxNTI2MDIwODIwMTgwNTE2MDAxNjAwMTYwZTAxYjAzMTY2MDAxNjAwMTYwZTAxYjAzMTk5MDk0MTY5MzkwOTMxNzkwOTI1MjkwNTE2MTA2NGQ5MTkwNjExMGJlNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NjVhZjE5MTUwNTAzZDgwNjAwMDgxMTQ2MTA2OGE1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTA2OGY1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA4MTYxMDZhMDU3NjAxNTYxMDZiNDU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMDZiNDkxOTA2MTEwZWM1NjViNjAwMzBiOTU5NDUwNTA1MDUwNTA1NjViNjAwMDgwNjAwMDYxMDE2NzYwMDE2MDAxNjBhMDFiMDMxNjYzNmZjM2NiYWY2MGUwMWI4Njg2NjA0MDUxNjAyNDAxNjEwNjBmOTI5MTkwNjExMjc1NTY1YjYwNDA1MTYwMDE2MDAxNjBhMDFiMDM4MjE2NjAyNDgyMDE1MjYwMDA5MDgxOTA4MTkwNjEwMTY3OTA2MzFmMTA2YjRiNjBlMjFiOTA2MDQ0MDE2MTA0NGM1NjViNjA0MDUxNjAwMTYwMDE2MGEwMWIwMzgzODExNjYwMjQ4MzAxNTI4MjE2NjA0NDgyMDE1MjYwMDA5MDgxOTA4MTkwNjEwMTY3OTA2MzhmOGQ3Zjk5NjBlMDFiOTA2MDY0MDE2MTA2MGY1NjViNjAwMDU0NjA0MDUxNjMyYzE2NWFjNTYwZTIxYjgxNTI2MDAxNjAwMTYwYTAxYjAzODM4MTE2NjAwNDgzMDE1MjkwOTExNjkwNjNiMDU5NmIxNDkwMzQ5MDYwMjQwMTYwMDA2MDQwNTE=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw67iswx6UJ76Tna/1z3zlv4CJMfT1sUu6hpT3+KcZg7qDJB9H2Ffh4JrSCH+KmXxfGgwIqrXkrQYQg6zm2wMiDwoJCO605K0GEMcVEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjvtOStBhDNFRICGAISAhgDGPjR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxi9DCKAIDgwODMwMzgxODU4ODgwM2IxNTgwMTU2MTA3OTg1NzYwMDA4MGZkNWI1MDVhZjExNTgwMTU2MTA3YWM1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA1MDUwNTY1YjgwNTE2MDAwNWI4MTgxMTAxNTYxMDg0NzU3ODI4MTgxNTE4MTEwNjEwN2QzNTc2MTA3ZDM2MTEyZmE1NjViNjAyMDAyNjAyMDAxMDE1MTYwMDE2MDAxNjBhMDFiMDMxNjgyMzQ2MTA3ZjA5MTkwNjExMDljNTY1YjYwNDA1MTYwMDA4MTgxODE4NTg3NWFmMTkyNTA1MDUwM2Q4MDYwMDA4MTE0NjEwODJjNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjEwODMxNTY1YjYwNjA5MTUwNWI1MDUwNTA4MDgwNjEwODNmOTA2MTEzMTA1NjViOTE1MDUwNjEwN2I5NTY1YjUwNTA1MDU2NWI2MDQwNTE2MDAxNjAwMTYwYTAxYjAzODM4MTE2NjAyNDgzMDE1MjgyMTY2MDQ0ODIwMTUyNjAwMDkwODE5MDgxOTA2MTAxNjc5MDYzYWY5OWM2MzM2MGUwMWI5MDYwNjQwMTYxMDYwZjU2NWI2MDQwODA1MTYwNjA4MTAxODI1MjYwMDA4MDgyNTI2MDIwODA4MzAxODI5MDUyODI4NDAxODI5MDUyODM1MTYwMDE2MDAxNjBhMDFiMDM4NjE2NjAyNDgwODMwMTkxOTA5MTUyODU1MTgwODMwMzkwOTEwMTgxNTI2MDQ0OTA5MTAxODU1MjkwODEwMTgwNTE2MDAxNjAwMTYwZTAxYjAzMTY2MzFhYzI5OWI3NjBlMzFiMTc5MDUyOTI1MTkwOTI4MzkxODI5MTYxMDE2NzkxNjEwOGY0OTE5MDYxMTBiZTU2NWI2MDAwNjA0MDUxODA4MzAzODE2MDAwODY1YWYxOTE1MDUwM2Q4MDYwMDA4MTE0NjEwOTMxNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjEwOTM2NTY1YjYwNjA5MTUwNWI1MDYwNDA4MDUxNjA2MDgxMDE4MjUyNjAwMDgwODI1MjYwMjA4MjAxODE5MDUyOTE4MTAxOTE5MDkxNTI5MTkzNTA5MTUwODI2MTA5NjY1NzYwMTU4MTYxMDk3YTU2NWI4MTgwNjAyMDAxOTA1MTgxMDE5MDYxMDk3YTkxOTA2MTEzMzk1NjViNjAwMzkxOTA5MTBiOTc5MDk2NTA5NDUwNTA1MDUwNTA1NjViNjA0MDgwNTE2MDAxNjAwMTYwYTAxYjAzODQ4MTE2NjAyNDgzMDE1MjgzMTY2MDQ0ODA4MzAxOTE5MDkxNTI4MjUxODA4MzAzOTA5MTAxODE1MjYwNjQ5MDkxMDE4MjUyNjAyMDgxMDE4MDUxNjAwMTYwMDE2MGUwMWIwMzE2NjMzY2IwYzdmZDYwZTIxYjE3OTA1MjkwNTE2MDAwOTE4MjkxODI5MTgyOTE2MTAxNjc5MTYxMDllZTkxNjExMGJlNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NjVhZjE5MTUwNTAzZDgwNjAwMDgxMTQ2MTBhMmI1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTBhMzA1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA4MTYxMGE0MzU3NjAxNTYwMDA2MTA5N2E1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTA5N2E5MTkwNjExM2E0NTY1YjYwNDA1MTgwNjBhMDAxNjA0MDUyODA2MDAwMTUxNTgxNTI2MDIwMDE2MDAwNjAwMTYwMDE2MGEwMWIwMzE2ODE1MjYwMjAwMTYwNjA4MTUyNjAyMDAxNjA2MDgxNTI2MDIwMDE2MDAwNjAwMTYwMDE2MGEwMWIwMzE2ODE1MjUwOTA1NjViNjAwMTYwMDE2MGEwMWIwMzgxMTY4MTE0NjEwYWFmNTc2MDAwODBmZDViNTA1NjViNjAwMDYwMjA4Mjg0MDMxMjE1NjEwYWM0NTc2MDAwODBmZDViODEzNTYxMGFjZjgxNjEwYTlhNTY1YjkzOTI1MDUwNTA1NjViODAzNTYxMGFlMTgxNjEwYTlhNTY1YjkxOTA1MDU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMGFmOTU3NjAwMDgwZmQ1YjgyMzU2MTBiMDQ4MTYxMGE5YTU2NWI5NDYwMjA5MzkwOTMwMTM1OTM1MDUwNTA1NjViNjAwMDViODM4MTEwMTU2MTBiMmQ1NzgxODEwMTUxODM4MjAxNTI2MDIwMDE2MTBiMTU1NjViODM4MTExMTU2MTBiM2M1NzYwMDA4NDg0MDE1MjViNTA1MDUwNTA1NjViNjAwMDgxNTE4MDg0NTI2MTBiNWE4MTYwMjA4NjAxNjAyMDg2MDE2MTBiMTI1NjViNjAxZjAxNjAxZjE5MTY5MjkwOTIwMTYwMjAwMTkyOTE1MDUwNTY1YjgwNTExNTE1ODI1MjYwMDA2MDIwODIwMTUxNjAwMTYwMDE2MGEwMWIwMzgwODIxNjYwMjA4NjAxNTI2MDQwODQwMTUxOTE1MDYwYTA2MDQwODYwMTUyNjEwYmE2NjBhMDg2MDE4MzYxMGI0MjU2NWI5MTUwNjA2MDg0MDE1MTg1ODMwMzYwNjA4NzAxNTI2MTBiYmY4MzgyNjEwYjQyNTY1YjkyNTA1MDgwNjA4MDg1MDE1MTE2NjA4MDg2MDE1MjUwODA5MTUwNTA5MjkxNTA1MDU2NWI4MjYwMDcwYjgxNTI2MDQwNjAyMDgyMDE1MjYwMDA2MTBiZjU2MDQwODMwMTg0NjEwYjZlNTY1Yjk0OTM1MDUwNTA1MDU2NWI2MzRlNDg3YjcxNjBlMDFiNjAwMDUyNjA0MTYwMDQ1MjYwMjQ2MDAwZmQ1YjYwNDA1MTYwNjA4MTAxNjdmZmZmZmZmZmZmZmZmZmZmODExMTgyODIxMDE3MTU2MTBjMzY1NzYxMGMzNjYxMGJmZDU2NWI2MDQwNTI5MDU2NWI2MDQwODA1MTkwODEwMTY3ZmZmZmZmZmZmZmZmZmZmZjgxMTE4MjgyMTAxNzE1NjEwYzM2NTc2MTBjMzY2MTBiZmQ1NjViNjA0MDUxNjBhMDgxMDE2N2ZmZmZmZmZmZmZmZmZmZmY4MTExODI4MjEwMTcxNTYxMGMzNjU3NjEwYzM2NjEwYmZkNTY1YjYwNDA1MTYwMWY4MjAxNjAxZjE5MTY4MTAxNjdmZmZmZmZmZmZmZmZmZmZmODExMTgyODIxMDE3MTU2MTBjYWI1NzYxMGNhYjYxMGJmZDU2NWI2MDQwNTI5MTkwNTA1NjViNjNmZmZmZmZmZjgxMTY4MTE0NjEwYWFmNTc2MDAwODBmZDViNjAwMDgwODI4NDAzNjA4MDgxMTIxNTYxMGNkOTU3NjAwMDgwZmQ1YjgzMzU2MTBjZTQ4MTYxMGE5YTU2NWI5MjUwNjA2MDYwMWYxOTgyMDExMjE1NjEwY2Y4NTc2MDAwODBmZDViNTA2MTBkMDE2MTBjMTM1NjViNjAyMDg0MDEzNTYxMGQwZjgxNjEwY2IzNTY1YjgxNTI2MDQwODQwMTM1NjEwZDFmODE2MTBhOWE1NjViNjAyMDgyMDE1MjYwNjA4NDAxMzU2MTBkMzI4MTYxMGNiMzU2NWI2MDQwODIwMTUyOTE5NDkxOTM1MDkwOTE1MDUwNTY1YjYwMDA2N2ZmZmZmZmZmZmZmZmZmZmY4MjExMTU2MTBkNWM1NzYxMGQ1YzYxMGJmZDU2NWI1MDYwMDUxYjYwMjAwMTkwNTY1YjgwMTUxNTgxMTQ2MTBhYWY1NzYwMDA4MGZkNWI2MDAwNjdmZmZmZmZmZmZmZmZmZmZmODIxMTE1NjEwZDhlNTc2MTBkOGU2MTBiZmQ1NjViNTA2MDFmMDE2MDFmMTkxNjYwMjAwMTkwNTY1YjYwMDA4MjYwMWY4MzAxMTI2MTBkYWQ1NzYwMDA4MGZkNWI4MTM1NjEwZGMwNjEwZGJiODI2MTBkNzQ1NjViNjEwYzgyNTY1YjgxODE1Mjg0NjAyMDgzODYwMTAxMTExNTYxMGRkNTU3NjAwMDgwZmQ1YjgxNjAyMDg1MDE2MDIwODMwMTM3NjAwMDkxODEwMTYwMjAwMTkxOTA5MTUyOTM5MjUwNTA1MDU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMGUwNTU3NjAwMDgwZmQ1YjYxMGUwZjgzMzU2MTBhOWE1NjViODIzNTkxNTA2MDIwODMwMTM1NjdmZmZmZmZmZmZmZmZmZmZmODA4MjExMTU2MTBlMmU1NzYwMDA4MGZkNWI4MTg1MDE5MTUwODU2MDFmODMwMTEyNjEwZTQyNTc2MDAwODBmZDViNjEwZTRmNjEwZGJiODMzNTYxMGQ0MjU2NWI4MjM1ODA4MjUyNjAyMDgwODMwMTkyOTE2MDA1MWI4NTAxMDE4ODgxMTExNTYxMGU2ZTU3NjAwMDgwZmQ1YjYwMjA4NTAxNWI4MTgxMTAxNTYxMGY4MDU3ODQ4MTM1MTExNTYxMGU4OTU3NjAwMDgwZmQ1YjgwMzU4NjAxNjAxZjE5NjA0MDgyOGQwMzgyMDExMjE1NjEwZWEyNTc2MDAwODBmZDViNjEwZWFhNjEwYzNjNTY1YjYwMjA4MzAxMzU4MTUyNjA0MDgzMDEzNTg4ODExMTE1NjEwZWMzNTc2MDAwODBmZDViOTI5MDkyMDE5MTYwYTA4MzhlMDM4MzAxMTIxNTYxMGVkYTU3NjAwMDgwZmQ1YjYxMGVlMjYxMGM1ZjU2NWI5MTUwNjAyMDgzMDEzNTYxMGVmMjgxNjEwZDY2NTY1YjgyNTI2MDQwODMwMTM1NjEwZjAyODE2MTBhOWE1NjViNjAyMDgzMDE1MjYwNjA4MzAxMzU4ODgxMTExNTYxMGYxOTU3NjAwMDgwZmQ1YjYxMGYyODhlNjAyMDgzODcwMTAxNjEwZDljNTY1YjYwNDA4NDAxNTI1MDYwODA4MzAxMzU4ODgxMTExNTYxMGY0MDU3NjAwMDgwZmQ1YjYxMGY0ZjhlNjAyMDgzODcwMTAxNjEwZDljNTY1YjYwNjA4NDAxNTI1MDYxMGY2MTYwYTA4NDAxNjEwYWQ2NTY1YjYwODA4MzAxNTI2MDIwODE4MTAxOTI5MDkyNTI4NjUyOTQ4NTAxOTQ5MTkwOTEwMTkwNTA2MTBlNzM1NjViNTA5NTk4OTA=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIweplgWnA7jmbNi4oVdLihosbn16XUKGgCnNBcVk+LZaOVgaFSR/9C4Shpq8+jc6BlGgwIq7XkrQYQ67e14wEiDwoJCO+05K0GEM0VEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjvtOStBhDTFRICGAISAhgDGL+9qTwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBzBsSAxi9DCLEGzk3NTA5NTUwNTA1MDUwNTA1MDU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMGZhMjU3NjAwMDgwZmQ1YjgyMzU2MTBmYWQ4MTYxMGE5YTU2NWI5MTUwNjAyMDgzMDEzNTYxMGZiZDgxNjEwYTlhNTY1YjgwOTE1MDUwOTI1MDkyOTA1MDU2NWI2MDAwNjAyMDgwODM4NTAzMTIxNTYxMGZkYjU3NjAwMDgwZmQ1YjgyMzU2N2ZmZmZmZmZmZmZmZmZmZmY4MTExMTU2MTBmZjI1NzYwMDA4MGZkNWI4MzAxNjAxZjgxMDE4NTEzNjExMDAzNTc2MDAwODBmZDViODAzNTYxMTAxMTYxMGRiYjgyNjEwZDQyNTY1YjgxODE1MjYwMDU5MTkwOTExYjgyMDE4MzAxOTA4MzgxMDE5MDg3ODMxMTE1NjExMDMwNTc2MDAwODBmZDViOTI4NDAxOTI1YjgyODQxMDE1NjExMDU3NTc4MzM1NjExMDQ4ODE2MTBhOWE1NjViODI1MjkyODQwMTkyOTA4NDAxOTA2MTEwMzU1NjViOTc5NjUwNTA1MDUwNTA1MDUwNTY1YjgyODE1MjYwODA4MTAxNjEwYWNmNjAyMDgzMDE4NDgwNTE2M2ZmZmZmZmZmOTA4MTE2ODM1MjYwMjA4MDgzMDE1MTYwMDE2MDAxNjBhMDFiMDMxNjkwODQwMTUyNjA0MDkxODIwMTUxMTY5MTAxNTI1NjViNjAwMDgyNjExMGI5NTc2MzRlNDg3YjcxNjBlMDFiNjAwMDUyNjAxMjYwMDQ1MjYwMjQ2MDAwZmQ1YjUwMDQ5MDU2NWI2MDAwODI1MTYxMTBkMDgxODQ2MDIwODcwMTYxMGIxMjU2NWI5MTkwOTEwMTkyOTE1MDUwNTY1YjgwNTE2MDAzODE5MDBiODExNDYxMGFlMTU3NjAwMDgwZmQ1YjYwMDA2MDIwODI4NDAzMTIxNTYxMTBmZTU3NjAwMDgwZmQ1YjYxMGFjZjgyNjExMGRhNTY1YjgwNTE2MTBhZTE4MTYxMGE5YTU2NWI2MDAwODI2MDFmODMwMTEyNjExMTIzNTc2MDAwODBmZDViODE1MTYxMTEzMTYxMGRiYjgyNjEwZDc0NTY1YjgxODE1Mjg0NjAyMDgzODYwMTAxMTExNTYxMTE0NjU3NjAwMDgwZmQ1YjYxMGJmNTgyNjAyMDgzMDE2MDIwODcwMTYxMGIxMjU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMTE2YTU3NjAwMDgwZmQ1YjYxMTE3MzgzNjExMGRhNTY1YjkxNTA2MDIwODMwMTUxNjdmZmZmZmZmZmZmZmZmZmZmODA4MjExMTU2MTExOTA1NzYwMDA4MGZkNWI5MDg0MDE5MDYwYTA4Mjg3MDMxMjE1NjExMWE0NTc2MDAwODBmZDViNjExMWFjNjEwYzVmNTY1YjgyNTE2MTExYjc4MTYxMGQ2NjU2NWI4MTUyNjAyMDgzMDE1MTYxMTFjNzgxNjEwYTlhNTY1YjYwMjA4MjAxNTI2MDQwODMwMTUxODI4MTExMTU2MTExZGU1NzYwMDA4MGZkNWI2MTExZWE4ODgyODYwMTYxMTExMjU2NWI2MDQwODMwMTUyNTA2MDYwODMwMTUxODI4MTExMTU2MTEyMDI1NzYwMDA4MGZkNWI2MTEyMGU4ODgyODYwMTYxMTExMjU2NWI2MDYwODMwMTUyNTA2MTEyMjA2MDgwODQwMTYxMTEwNzU2NWI2MDgwODIwMTUyODA5MzUwNTA1MDUwOTI1MDkyOTA1MDU2NWI2MDAxNjAwMTYwYTAxYjAzODMxNjgxNTI2MDgwODEwMTYxMGFjZjYwMjA4MzAxODQ4MDUxNjNmZmZmZmZmZjkwODExNjgzNTI2MDIwODA4MzAxNTE2MDAxNjAwMTYwYTAxYjAzMTY5MDg0MDE1MjYwNDA5MTgyMDE1MTE2OTEwMTUyNTY1YjYwMDA2MDQwODA4MzAxNjAwMTYwMDE2MGEwMWIwMzg2MTY4NDUyNjAyMDgyODE4NjAxNTI4MTg2NTE4MDg0NTI2MDYwODcwMTkxNTA2MDYwODE2MDA1MWI4ODAxMDE5MzUwODI4ODAxNjAwMDViODI4MTEwMTU2MTEyZWI1Nzg4ODYwMzYwNWYxOTAxODQ1MjgxNTE4MDUxODc1Mjg1MDE1MTg1ODcwMTg4OTA1MjYxMTJkODg4ODgwMTgyNjEwYjZlNTY1Yjk2NTA1MDkyODQwMTkyOTA4NDAxOTA2MDAxMDE2MTEyYWM1NjViNTA5Mzk5OTg1MDUwNTA1MDUwNTA1MDUwNTA1NjViNjM0ZTQ4N2I3MTYwZTAxYjYwMDA1MjYwMzI2MDA0NTI2MDI0NjAwMGZkNWI2MDAwNjAwMDE5ODIxNDE1NjExMzMyNTc2MzRlNDg3YjcxNjBlMDFiNjAwMDUyNjAxMTYwMDQ1MjYwMjQ2MDAwZmQ1YjUwNjAwMTAxOTA1NjViNjAwMDgwODI4NDAzNjA4MDgxMTIxNTYxMTM0ZDU3NjAwMDgwZmQ1YjYxMTM1Njg0NjExMGRhNTY1YjkyNTA2MDYwNjAxZjE5ODIwMTEyMTU2MTEzNmE1NzYwMDA4MGZkNWI1MDYxMTM3MzYxMGMxMzU2NWI2MDIwODQwMTUxNjExMzgxODE2MTBjYjM1NjViODE1MjYwNDA4NDAxNTE2MTEzOTE4MTYxMGE5YTU2NWI2MDIwODIwMTUyNjA2MDg0MDE1MTYxMGQzMjgxNjEwY2IzNTY1YjYwMDA4MDYwNDA4Mzg1MDMxMjE1NjExM2I3NTc2MDAwODBmZDViNjExM2MwODM2MTEwZGE1NjViOTE1MDYwMjA4MzAxNTE2MTBmYmQ4MTYxMGQ2NjU2ZmVhMjY0Njk3MDY2NzM1ODIyMTIyMDc0MzVkMGU2YjI1MjM5Y2RiMTEwOTMyZDE4MmIzNWRjZDcyNTY1ZDRlZGM5NTJlNTUxMGUzMzI0NTY3YjgzODU2NDczNmY2YzYzNDMwMDA4MGIwMDMzNjA4MDYwNDA1MjM0ODAxNTYxMDAxMDU3NjAwMDgwZmQ1YjUwNjEwMjQxODA2MTAwMjA2MDAwMzk2MDAwZjNmZTYwODA2MDQwNTI2MDA0MzYxMDYxMDAyOTU3NjAwMDM1NjBlMDFjODA2Mzk5MDQ3ZjAyMTQ2MTAwMmU1NzgwNjNiMDU5NmIxNDE0NjEwMDQzNTc1YjYwMDA4MGZkNWI2MTAwNDE2MTAwM2MzNjYwMDQ2MTAxZGI1NjViNjEwMDU2NTY1YjAwNWI2MTAwNDE2MTAwNTEzNjYwMDQ2MTAxZGI1NjViNjEwMGY5NTY1YjYwMDA4MTYwMDE2MDAxNjBhMDFiMDMxNjM0NjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4NzVhZjE5MjUwNTA1MDNkODA2MDAwODExNDYxMDBhMzU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMDBhODU2NWI2MDYwOTE1MDViNTA1MDkwNTA4MDYxMDBmNTU3NjA0MDUxNjI0NjFiY2Q2MGU1MWI4MTUyNjAyMDYwMDQ4MjAxNTI2MDE0NjAyNDgyMDE1MjczMjMzMGI0YjYzMmIyMTAzYTM3OTAzOWIyYjczMjEwMjJiYTM0MzJiOTYwNjExYjYwNDQ4MjAxNTI2MDY0MDE1YjYwNDA1MTgwOTEwMzkwZmQ1YjUwNTA1NjViNjAwMDgxNjAwMTYwMDE2MGEwMWIwMzE2MzQ2MDQwNTE2MDAwNjA0MDUxODA4MzAzODE4NTg3NWFmMTkyNTA1MDUwM2Q4MDYwMDA4MTE0NjEwMTQ2NTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjEwMTRiNTY1YjYwNjA5MTUwNWI1MDUwOTA1MDgwNjEwMTkzNTc2MDQwNTE2MjQ2MWJjZDYwZTUxYjgxNTI2MDIwNjAwNDgyMDE1MjYwMTQ2MDI0ODIwMTUyNzMyMzMwYjRiNjMyYjIxMDNhMzc5MDM5YjJiNzMyMTAyMmJhMzQzMmI5NjA2MTFiNjA0NDgyMDE1MjYwNjQwMTYxMDBlYzU2NWI2MDQwNTE2MjQ2MWJjZDYwZTUxYjgxNTI2MDIwNjAwNDgyMDE1MjYwMTg2MDI0ODIwMTUyN2Y1MzZmNzI3Mjc5MmMyMDZlNmY3NDIwNjc2ZjZlNmU2MTIwNjg2MTcwNzA2NTZlMjEwMDAwMDAwMDAwMDAwMDAwNjA0NDgyMDE1MjYwNjQwMTYxMDBlYzU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTAxZWQ1NzYwMDA4MGZkNWI4MTM1NjAwMTYwMDE2MGEwMWIwMzgxMTY4MTE0NjEwMjA0NTc2MDAwODBmZDViOTM5MjUwNTA1MDU2ZmVhMjY0Njk3MDY2NzM1ODIyMTIyMDg4NzQ0N2UwZjMwYzVjYTBkYWM3MTM2N2I0ZTJlMTI3MWEwODc3NWE0NDdhZDZmYjAzYzhhMjJlZTI5ZDQzZGU2NDczNmY2YzYzNDMwMDA4MGIwMDMz","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIws7Nb8j3sBJ3I42pvZNADx6OEE3m736HX4RvxdV+SPrxXZ3GCLLCDnA6SOBMdVieBGgwIq7XkrQYQu8f3xwMiDwoJCO+05K0GENMVEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjwtOStBhDVFRICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGL0MGiISII1mEwV3TXxcEqeO+t1k8VJNhl9cDhap+H4A62Jg68aeIJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"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"},{"b64Body":"ChEKCQjwtOStBhDVFRICGAIgAUI4GiISII1mEwV3TXxcEqeO+t1k8VJNhl9cDhap+H4A62Jg68aeQgUIgM7aA2oLY2VsbGFyIGRvb3I=","b64Record":"CgcIFiIDGL8MEjAAEmd3m5gSk73CIj9YwOta4M5odl7AJRbCU6u04i5QBTArQ0t38v2jS90/3ICgC8kaDAisteStBhD8lensASIRCgkI8LTkrQYQ1RUSAhgCIAFCHQoDGL8MShYKFK5L5k6XOOYasQAuLx4+Mg7fwElIUgB6DAisteStBhD7lensAQ=="},{"b64Body":"Cg8KCQjwtOStBhDbFRICGAISAhgDGID9kMsBIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46MwoDGL4MEICb7gIY6AciJCxSPdMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASZYC0g==","b64Record":"CiUIISIDGL4MKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDBigL5UHK39JY6Mq6nKH5M+ba/ZVoyGQbJrPl07TylaDwHrnufXmCZRvfel1It9y8aDAisteStBhCjkcTRAyIPCgkI8LTkrQYQ2xUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDEpP3HAToJGgIweCicw+gCUhgKCgoCGAIQh8n6jwMKCgoCGGIQiMn6jwM="},{"b64Body":"Cg8KCQjxtOStBhDlFRICGAISAhgDGID9kMsBIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46MwoDGL4MEICb7gIY6AciJJ8c3fwAAAAAAAAAAAAAAAD5bgg3kMs9RzI1OrnQrs8uyM1Ruw==","b64Record":"CiUIISIDGL4MKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjD7J7H9/ciOvqXgNyPpvX9Bynzb1wEUZF2vmqpAqPhNsEf3eRADIvyx/Z8EKxEnd74aDAitteStBhCT07T2ASIPCgkI8bTkrQYQ5RUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCA5MCiATrSARrKATB4MDhjMzc5YTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxODUzNmY3MjcyNzkyYzIwNmU2Zjc0MjA2NzZmNmU2ZTYxMjA2ODYxNzA3MDY1NmUyMTAwMDAwMDAwMDAwMDAwMDAogPykAlIYCgoKAhgCEP/HgcUCCgoKAhhiEIDIgcUC"},{"b64Body":"ChEKCQjytOStBhDvFRICGAIgAVo4CgIyAEoFCIDO2gNqFGxhenktY3JlYXRlZCBhY2NvdW50kgEU+W4IN5DLPUcyNTq50K7PLsjNUbs=","b64Record":"CgcIFhIDGMEMEjAyzWsR++TkLyP5LjDCvXog9aGXMR+sATNY0wSzwBjr5oRq3VwBrlZmPfql4JupYxMaCwiuteStBhCCv5cbIhEKCQjytOStBhDvFRICGAIgASoUbGF6eS1jcmVhdGVkIGFjY291bnRSAA=="},{"b64Body":"Cg8KCQjytOStBhDvFRICGAISAhgDGID9kMsBIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46MwoDGL4MEICb7gIY6AciJCxSPdMAAAAAAAAAAAAAAAD5bgg3kMs9RzI1OrnQrs8uyM1Ruw==","b64Record":"CiUIFiIDGL4MKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCOQPuGvrCxXDWRdnyanvzT2tmA+6oCt2sJsJFWgFuTfWUkwc3Ua+maGshj1YaxCM8aCwiuteStBhCDv5cbIg8KCQjytOStBhDvFRICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMIDkwKIBOo0CCgMYvgwigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKID8pAJSIgoKCgIYAhDP14HFAgoKCgIYYhCAyIHFAgoICgMYwQwQ0A8="}]},"evmLazyCreateViaSolidityCallTooManyCreatesFails":{"placeholderNum":1602,"encodedItems":[{"b64Body":"Cg8KCQj4tOStBhCTFhICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAi0g7+xBhDA/cSJARptCiISIBY/PlQ+kLfqxX9T3U+lbkPch9GrvhMN9aDo9minTaceCiM6IQLLNwIA8vOQeNpXIiBKZ9JSf1almwTFvxlbHi4vT63KcQoiEiCvXl20CM71/AKR0qWJ4GOHrSivlR6qPm+fl2jpbt/m2SIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGMMMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDJcf5tES6gG0geJR7n2873Tpf7mnLKF5TuarOVz2kA99BaHY5IN9p4g1AfM51HJwoaDAi0teStBhCZ/fSNASIPCgkI+LTkrQYQkxYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQj4tOStBhCXFhICGAISAhgDGIydjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxjDDCKAIDYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYwNDA1MTYxMDAxZDkwNjEwMDVmNTY1YjYwNDA1MTgwOTEwMzkwNjAwMGYwODAxNTgwMTU2MTAwMzk1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA2MDAwODA1NDYwMDE2MDAxNjBhMDFiMDMxOTE2NjAwMTYwMDE2MGEwMWIwMzkyOTA5MjE2OTE5MDkxMTc5MDU1NjEwMDZjNTY1YjYxMDI2MTgwNjExNDgxODMzOTAxOTA1NjViNjExNDA2ODA2MTAwN2I2MDAwMzk2MDAwZjNmZTYwODA2MDQwNTI2MDA0MzYxMDYxMDBhNzU3NjAwMDM1NjBlMDFjODA2MzhmOGQ3Zjk5MTE2MTAwNjQ1NzgwNjM4ZjhkN2Y5OTE0NjEwMTk1NTc4MDYzOWYxY2RkZmMxNDYxMDFiNTU3ODA2M2FhM2VkOTA4MTQ2MTAxYzg1NzgwNjNhZjk5YzYzMzE0NjEwMWRiNTc4MDYzZDYxNGNkYjgxNDYxMDFmYjU3ODA2M2YyYzMxZmY0MTQ2MTAyMjk1NzYwMDA4MGZkNWI4MDYzMmM1MjNkZDMxNDYxMDBhYzU3ODA2MzNiM2JmZjBmMTQ2MTAwYzE1NzgwNjMzYzRkZDMyZTE0NjEwMGY0NTc4MDYzNTkzZDZlODIxNDYxMDEyMjU3ODA2MzZmYzNjYmFmMTQ2MTAxNDI1NzgwNjM3YzQxYWQyYzE0NjEwMTc1NTc1YjYwMDA4MGZkNWI2MTAwYmY2MTAwYmEzNjYwMDQ2MTBhYjI1NjViNjEwMjYzNTY1YjAwNWIzNDgwMTU2MTAwY2Q1NzYwMDA4MGZkNWI1MDYxMDBlMTYxMDBkYzM2NjAwNDYxMGFiMjU2NWI2MTA0MjI1NjViNjA0MDUxOTA4MTUyNjAyMDAxNWI2MDQwNTE4MDkxMDM5MGYzNWIzNDgwMTU2MTAxMDA1NzYwMDA4MGZkNWI1MDYxMDExNDYxMDEwZjM2NjAwNDYxMGFlNjU2NWI2MTA0ZmM1NjViNjA0MDUxNjEwMGViOTI5MTkwNjEwYmQ5NTY1YjM0ODAxNTYxMDEyZTU3NjAwMDgwZmQ1YjUwNjEwMGUxNjEwMTNkMzY2MDA0NjEwY2M1NTY1YjYxMDVlMzU2NWIzNDgwMTU2MTAxNGU1NzYwMDA4MGZkNWI1MDYxMDE2MjYxMDE1ZDM2NjAwNDYxMGRmMjU2NWI2MTA2YzA1NjViNjA0MDUxNjAwNzkxOTA5MTBiODE1MjYwMjAwMTYxMDBlYjU2NWIzNDgwMTU2MTAxODE1NzYwMDA4MGZkNWI1MDYxMDBlMTYxMDE5MDM2NjAwNDYxMGFiMjU2NWI2MTA2ZWM1NjViMzQ4MDE1NjEwMWExNTc2MDAwODBmZDViNTA2MTAxNjI2MTAxYjAzNjYwMDQ2MTBmOGY1NjViNjEwNzFhNTY1YjYxMDBiZjYxMDFjMzM2NjAwNDYxMGFiMjU2NWI2MTA3NTA1NjViNjEwMGJmNjEwMWQ2MzY2MDA0NjEwZmM4NTY1YjYxMDdiNDU2NWIzNDgwMTU2MTAxZTc1NzYwMDA4MGZkNWI1MDYxMDE2MjYxMDFmNjM2NjAwNDYxMGY4ZjU2NWI2MTA4NGM1NjViMzQ4MDE1NjEwMjA3NTc2MDAwODBmZDViNTA2MTAyMWI2MTAyMTYzNjYwMDQ2MTBhYjI1NjViNjEwODgyNTY1YjYwNDA1MTYxMDBlYjkyOTE5MDYxMTA2MjU2NWIzNDgwMTU2MTAyMzU1NzYwMDA4MGZkNWI1MDYxMDI0OTYxMDI0NDM2NjAwNDYxMGY4ZjU2NWI2MTA5OGM1NjViNjA0MDgwNTE2MDA3OTM5MDkzMGI4MzUyOTAxNTE1NjAyMDgzMDE1MjAxNjEwMGViNTY1YjYwMDA1NDYwMDE2MDAxNjBhMDFiMDMxNjYzOTkwNDdmMDI2MTAyN2Y2MDAyMzQ2MTEwOWM1NjViNjA0MDUxNjAwMTYwMDE2MGUwMWIwMzE5NjBlMDg0OTAxYjE2ODE1MjYwMDE2MDAxNjBhMDFiMDM4NTE2NjAwNDgyMDE1MjYwMjQwMTYwMDA2MDQwNTE4MDgzMDM4MTg1ODg4MDNiMTU4MDE1NjEwMmJlNTc2MDAwODBmZDViNTA1YWYxMTU4MDE1NjEwMmQyNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNTA2MDAwODE2MDAxNjAwMTYwYTAxYjAzMTY2MDA0MzQ2MTAyZjA5MTkwNjExMDljNTY1YjYwNDA1MTYwMDA4MTgxODE4NTg3NWFmMTkyNTA1MDUwM2Q4MDYwMDA4MTE0NjEwMzJjNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjEwMzMxNTY1YjYwNjA5MTUwNWI1MDUwOTA1MDgwNjEwMzdlNTc2MDQwNTE2MjQ2MWJjZDYwZTUxYjgxNTI2MDIwNjAwNDgyMDE1MjYwMTQ2MDI0ODIwMTUyNzMyMzMwYjRiNjMyYjIxMDNhMzc5MDM5YjJiNzMyMTAyMmJhMzQzMmI5NjA2MTFiNjA0NDgyMDE1MjYwNjQwMTViNjA0MDUxODA5MTAzOTBmZDViNjAwMTYwMDE2MGEwMWIwMzgyMTY2MTAzOTM2MDA0MzQ2MTEwOWM1NjViNjA0MDUxNjAwMDgxODE4MTg1ODc1YWYxOTI1MDUwNTAzZDgwNjAwMDgxMTQ2MTAzY2Y1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTAzZDQ1NjViNjA2MDkxNTA1YjUwNTA4MDkxNTA1MDgwNjEwNDFlNTc2MDQwNTE2MjQ2MWJjZDYwZTUxYjgxNTI2MDIwNjAwNDgyMDE1MjYwMTQ2MDI0ODIwMTUyNzMyMzMwYjRiNjMyYjIxMDNhMzc5MDM5YjJiNzMyMTAyMmJhMzQzMmI5NjA2MTFiNjA0NDgyMDE1MjYwNjQwMTYxMDM3NTU2NWI1MDUwNTY1YjYwNDA1MTYwMDE2MDAxNjBhMDFiMDM4MjE2NjAyNDgyMDE1MjYwMDA5MDgxOTA4MTkwNjEwMTY3OTA2MzNiM2JmZjBmNjBlMDFiOTA2MDQ0MDE1YjYwNDA4MDUxNjAxZjE5ODE4NDAzMDE4MTUyOTE4MTUyNjAyMDgyMDE4MDUxNjAwMTYwMDE2MGUwMWIwMzE2NjAwMTYwMDE2MGUwMWIwMzE5OTA5NDE2OTM5MDkzMTc5MDkyNTI5MDUxNjEwNDhhOTE5MDYxMTBiZTU2NWI2MDAwNjA0MDUxODA4MzAzODE2MDAwODY1YWYxOTE1MDUwM2Q4MDYwMDA4MTE0NjEwNGM3NTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjEwNGNjNTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTA0ZGQ1NzYwMTU2MTA0ZjE1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTA0ZjE5MTkwNjExMGVjNTY1YjYwMDMwYjk0OTM1MDUwNTA1MDU2NWI2MDAwNjEwNTA2NjEwYTU3NTY1YjYwNDA4MDUxNjAwMTYwMDE2MGEwMWIwMzg2MTY2MDI0ODIwMTUyNjA0NDgwODIwMTg2OTA1MjgyNTE4MDgzMDM5MDkxMDE4MTUyNjA2NDkwOTEwMTgyNTI2MDIwODEwMTgwNTE2MDAxNjAwMTYwZTAxYjAzMTY2MzFlMjZlOTk3NjBlMTFiMTc5MDUyOTA1MTYwMDA5MTgyOTE2MTAxNjc5MTYxMDU2MDkxNjExMGJlNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NjVhZjE5MTUwNTAzZDgwNjAwMDgxMTQ2MTA1OWQ1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTA1YTI1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA2MTA1YWY2MTBhNTc1NjViODI2MTA1YmM1NzYwMTU4MTYxMDVkMDU2NWI4MTgwNjAyMDAxOTA1MTgxMDE5MDYxMDVkMDkxOTA2MTExNTc1NjViNjAwMzkxOTA5MTBiOTg5MDk3NTA5NTUwNTA1MDUwNTA1MDU2NWI2MDAwODA2MDAwNjEwMTY3NjAwMTYwMDE2MGEwMWIwMzE2NjM1OTNkNmU4MjYwZTAxYjg2ODY2MDQwNTE2MDI0MDE2MTA2MGY5MjkxOTA2MTEyMzI1NjViNjA0MDgwNTE2MDFmMTk4MTg0MDMwMTgxNTI5MTgxNTI2MDIwODIwMTgwNTE2MDAxNjAwMTYwZTAxYjAzMTY2MDAxNjAwMTYwZTAxYjAzMTk5MDk0MTY5MzkwOTMxNzkwOTI1MjkwNTE2MTA2NGQ5MTkwNjExMGJlNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NjVhZjE5MTUwNTAzZDgwNjAwMDgxMTQ2MTA2OGE1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTA2OGY1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA4MTYxMDZhMDU3NjAxNTYxMDZiNDU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMDZiNDkxOTA2MTEwZWM1NjViNjAwMzBiOTU5NDUwNTA1MDUwNTA1NjViNjAwMDgwNjAwMDYxMDE2NzYwMDE2MDAxNjBhMDFiMDMxNjYzNmZjM2NiYWY2MGUwMWI4Njg2NjA0MDUxNjAyNDAxNjEwNjBmOTI5MTkwNjExMjc1NTY1YjYwNDA1MTYwMDE2MDAxNjBhMDFiMDM4MjE2NjAyNDgyMDE1MjYwMDA5MDgxOTA4MTkwNjEwMTY3OTA2MzFmMTA2YjRiNjBlMjFiOTA2MDQ0MDE2MTA0NGM1NjViNjA0MDUxNjAwMTYwMDE2MGEwMWIwMzgzODExNjYwMjQ4MzAxNTI4MjE2NjA0NDgyMDE1MjYwMDA5MDgxOTA4MTkwNjEwMTY3OTA2MzhmOGQ3Zjk5NjBlMDFiOTA2MDY0MDE2MTA2MGY1NjViNjAwMDU0NjA0MDUxNjMyYzE2NWFjNTYwZTIxYjgxNTI2MDAxNjAwMTYwYTAxYjAzODM4MTE2NjAwNDgzMDE1MjkwOTExNjkwNjNiMDU5NmIxNDkwMzQ5MDYwMjQwMTYwMDA2MDQwNTE=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwvbDjpcRKPs/e34eWksj4kPem7h/I526lvSeJ6mpCyl9y6y7MM0sxgcOKm6O9+Bp6GgwItLXkrQYQgZ6rjwMiDwoJCPi05K0GEJcWEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQj5tOStBhCdFhICGAISAhgDGPjR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxjDDCKAIDgwODMwMzgxODU4ODgwM2IxNTgwMTU2MTA3OTg1NzYwMDA4MGZkNWI1MDVhZjExNTgwMTU2MTA3YWM1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA1MDUwNTY1YjgwNTE2MDAwNWI4MTgxMTAxNTYxMDg0NzU3ODI4MTgxNTE4MTEwNjEwN2QzNTc2MTA3ZDM2MTEyZmE1NjViNjAyMDAyNjAyMDAxMDE1MTYwMDE2MDAxNjBhMDFiMDMxNjgyMzQ2MTA3ZjA5MTkwNjExMDljNTY1YjYwNDA1MTYwMDA4MTgxODE4NTg3NWFmMTkyNTA1MDUwM2Q4MDYwMDA4MTE0NjEwODJjNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjEwODMxNTY1YjYwNjA5MTUwNWI1MDUwNTA4MDgwNjEwODNmOTA2MTEzMTA1NjViOTE1MDUwNjEwN2I5NTY1YjUwNTA1MDU2NWI2MDQwNTE2MDAxNjAwMTYwYTAxYjAzODM4MTE2NjAyNDgzMDE1MjgyMTY2MDQ0ODIwMTUyNjAwMDkwODE5MDgxOTA2MTAxNjc5MDYzYWY5OWM2MzM2MGUwMWI5MDYwNjQwMTYxMDYwZjU2NWI2MDQwODA1MTYwNjA4MTAxODI1MjYwMDA4MDgyNTI2MDIwODA4MzAxODI5MDUyODI4NDAxODI5MDUyODM1MTYwMDE2MDAxNjBhMDFiMDM4NjE2NjAyNDgwODMwMTkxOTA5MTUyODU1MTgwODMwMzkwOTEwMTgxNTI2MDQ0OTA5MTAxODU1MjkwODEwMTgwNTE2MDAxNjAwMTYwZTAxYjAzMTY2MzFhYzI5OWI3NjBlMzFiMTc5MDUyOTI1MTkwOTI4MzkxODI5MTYxMDE2NzkxNjEwOGY0OTE5MDYxMTBiZTU2NWI2MDAwNjA0MDUxODA4MzAzODE2MDAwODY1YWYxOTE1MDUwM2Q4MDYwMDA4MTE0NjEwOTMxNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjEwOTM2NTY1YjYwNjA5MTUwNWI1MDYwNDA4MDUxNjA2MDgxMDE4MjUyNjAwMDgwODI1MjYwMjA4MjAxODE5MDUyOTE4MTAxOTE5MDkxNTI5MTkzNTA5MTUwODI2MTA5NjY1NzYwMTU4MTYxMDk3YTU2NWI4MTgwNjAyMDAxOTA1MTgxMDE5MDYxMDk3YTkxOTA2MTEzMzk1NjViNjAwMzkxOTA5MTBiOTc5MDk2NTA5NDUwNTA1MDUwNTA1NjViNjA0MDgwNTE2MDAxNjAwMTYwYTAxYjAzODQ4MTE2NjAyNDgzMDE1MjgzMTY2MDQ0ODA4MzAxOTE5MDkxNTI4MjUxODA4MzAzOTA5MTAxODE1MjYwNjQ5MDkxMDE4MjUyNjAyMDgxMDE4MDUxNjAwMTYwMDE2MGUwMWIwMzE2NjMzY2IwYzdmZDYwZTIxYjE3OTA1MjkwNTE2MDAwOTE4MjkxODI5MTgyOTE2MTAxNjc5MTYxMDllZTkxNjExMGJlNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NjVhZjE5MTUwNTAzZDgwNjAwMDgxMTQ2MTBhMmI1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTBhMzA1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA4MTYxMGE0MzU3NjAxNTYwMDA2MTA5N2E1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTA5N2E5MTkwNjExM2E0NTY1YjYwNDA1MTgwNjBhMDAxNjA0MDUyODA2MDAwMTUxNTgxNTI2MDIwMDE2MDAwNjAwMTYwMDE2MGEwMWIwMzE2ODE1MjYwMjAwMTYwNjA4MTUyNjAyMDAxNjA2MDgxNTI2MDIwMDE2MDAwNjAwMTYwMDE2MGEwMWIwMzE2ODE1MjUwOTA1NjViNjAwMTYwMDE2MGEwMWIwMzgxMTY4MTE0NjEwYWFmNTc2MDAwODBmZDViNTA1NjViNjAwMDYwMjA4Mjg0MDMxMjE1NjEwYWM0NTc2MDAwODBmZDViODEzNTYxMGFjZjgxNjEwYTlhNTY1YjkzOTI1MDUwNTA1NjViODAzNTYxMGFlMTgxNjEwYTlhNTY1YjkxOTA1MDU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMGFmOTU3NjAwMDgwZmQ1YjgyMzU2MTBiMDQ4MTYxMGE5YTU2NWI5NDYwMjA5MzkwOTMwMTM1OTM1MDUwNTA1NjViNjAwMDViODM4MTEwMTU2MTBiMmQ1NzgxODEwMTUxODM4MjAxNTI2MDIwMDE2MTBiMTU1NjViODM4MTExMTU2MTBiM2M1NzYwMDA4NDg0MDE1MjViNTA1MDUwNTA1NjViNjAwMDgxNTE4MDg0NTI2MTBiNWE4MTYwMjA4NjAxNjAyMDg2MDE2MTBiMTI1NjViNjAxZjAxNjAxZjE5MTY5MjkwOTIwMTYwMjAwMTkyOTE1MDUwNTY1YjgwNTExNTE1ODI1MjYwMDA2MDIwODIwMTUxNjAwMTYwMDE2MGEwMWIwMzgwODIxNjYwMjA4NjAxNTI2MDQwODQwMTUxOTE1MDYwYTA2MDQwODYwMTUyNjEwYmE2NjBhMDg2MDE4MzYxMGI0MjU2NWI5MTUwNjA2MDg0MDE1MTg1ODMwMzYwNjA4NzAxNTI2MTBiYmY4MzgyNjEwYjQyNTY1YjkyNTA1MDgwNjA4MDg1MDE1MTE2NjA4MDg2MDE1MjUwODA5MTUwNTA5MjkxNTA1MDU2NWI4MjYwMDcwYjgxNTI2MDQwNjAyMDgyMDE1MjYwMDA2MTBiZjU2MDQwODMwMTg0NjEwYjZlNTY1Yjk0OTM1MDUwNTA1MDU2NWI2MzRlNDg3YjcxNjBlMDFiNjAwMDUyNjA0MTYwMDQ1MjYwMjQ2MDAwZmQ1YjYwNDA1MTYwNjA4MTAxNjdmZmZmZmZmZmZmZmZmZmZmODExMTgyODIxMDE3MTU2MTBjMzY1NzYxMGMzNjYxMGJmZDU2NWI2MDQwNTI5MDU2NWI2MDQwODA1MTkwODEwMTY3ZmZmZmZmZmZmZmZmZmZmZjgxMTE4MjgyMTAxNzE1NjEwYzM2NTc2MTBjMzY2MTBiZmQ1NjViNjA0MDUxNjBhMDgxMDE2N2ZmZmZmZmZmZmZmZmZmZmY4MTExODI4MjEwMTcxNTYxMGMzNjU3NjEwYzM2NjEwYmZkNTY1YjYwNDA1MTYwMWY4MjAxNjAxZjE5MTY4MTAxNjdmZmZmZmZmZmZmZmZmZmZmODExMTgyODIxMDE3MTU2MTBjYWI1NzYxMGNhYjYxMGJmZDU2NWI2MDQwNTI5MTkwNTA1NjViNjNmZmZmZmZmZjgxMTY4MTE0NjEwYWFmNTc2MDAwODBmZDViNjAwMDgwODI4NDAzNjA4MDgxMTIxNTYxMGNkOTU3NjAwMDgwZmQ1YjgzMzU2MTBjZTQ4MTYxMGE5YTU2NWI5MjUwNjA2MDYwMWYxOTgyMDExMjE1NjEwY2Y4NTc2MDAwODBmZDViNTA2MTBkMDE2MTBjMTM1NjViNjAyMDg0MDEzNTYxMGQwZjgxNjEwY2IzNTY1YjgxNTI2MDQwODQwMTM1NjEwZDFmODE2MTBhOWE1NjViNjAyMDgyMDE1MjYwNjA4NDAxMzU2MTBkMzI4MTYxMGNiMzU2NWI2MDQwODIwMTUyOTE5NDkxOTM1MDkwOTE1MDUwNTY1YjYwMDA2N2ZmZmZmZmZmZmZmZmZmZmY4MjExMTU2MTBkNWM1NzYxMGQ1YzYxMGJmZDU2NWI1MDYwMDUxYjYwMjAwMTkwNTY1YjgwMTUxNTgxMTQ2MTBhYWY1NzYwMDA4MGZkNWI2MDAwNjdmZmZmZmZmZmZmZmZmZmZmODIxMTE1NjEwZDhlNTc2MTBkOGU2MTBiZmQ1NjViNTA2MDFmMDE2MDFmMTkxNjYwMjAwMTkwNTY1YjYwMDA4MjYwMWY4MzAxMTI2MTBkYWQ1NzYwMDA4MGZkNWI4MTM1NjEwZGMwNjEwZGJiODI2MTBkNzQ1NjViNjEwYzgyNTY1YjgxODE1Mjg0NjAyMDgzODYwMTAxMTExNTYxMGRkNTU3NjAwMDgwZmQ1YjgxNjAyMDg1MDE2MDIwODMwMTM3NjAwMDkxODEwMTYwMjAwMTkxOTA5MTUyOTM5MjUwNTA1MDU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMGUwNTU3NjAwMDgwZmQ1YjYxMGUwZjgzMzU2MTBhOWE1NjViODIzNTkxNTA2MDIwODMwMTM1NjdmZmZmZmZmZmZmZmZmZmZmODA4MjExMTU2MTBlMmU1NzYwMDA4MGZkNWI4MTg1MDE5MTUwODU2MDFmODMwMTEyNjEwZTQyNTc2MDAwODBmZDViNjEwZTRmNjEwZGJiODMzNTYxMGQ0MjU2NWI4MjM1ODA4MjUyNjAyMDgwODMwMTkyOTE2MDA1MWI4NTAxMDE4ODgxMTExNTYxMGU2ZTU3NjAwMDgwZmQ1YjYwMjA4NTAxNWI4MTgxMTAxNTYxMGY4MDU3ODQ4MTM1MTExNTYxMGU4OTU3NjAwMDgwZmQ1YjgwMzU4NjAxNjAxZjE5NjA0MDgyOGQwMzgyMDExMjE1NjEwZWEyNTc2MDAwODBmZDViNjEwZWFhNjEwYzNjNTY1YjYwMjA4MzAxMzU4MTUyNjA0MDgzMDEzNTg4ODExMTE1NjEwZWMzNTc2MDAwODBmZDViOTI5MDkyMDE5MTYwYTA4MzhlMDM4MzAxMTIxNTYxMGVkYTU3NjAwMDgwZmQ1YjYxMGVlMjYxMGM1ZjU2NWI5MTUwNjAyMDgzMDEzNTYxMGVmMjgxNjEwZDY2NTY1YjgyNTI2MDQwODMwMTM1NjEwZjAyODE2MTBhOWE1NjViNjAyMDgzMDE1MjYwNjA4MzAxMzU4ODgxMTExNTYxMGYxOTU3NjAwMDgwZmQ1YjYxMGYyODhlNjAyMDgzODcwMTAxNjEwZDljNTY1YjYwNDA4NDAxNTI1MDYwODA4MzAxMzU4ODgxMTExNTYxMGY0MDU3NjAwMDgwZmQ1YjYxMGY0ZjhlNjAyMDgzODcwMTAxNjEwZDljNTY1YjYwNjA4NDAxNTI1MDYxMGY2MTYwYTA4NDAxNjEwYWQ2NTY1YjYwODA4MzAxNTI2MDIwODE4MTAxOTI5MDkyNTI4NjUyOTQ4NTAxOTQ5MTkwOTEwMTkwNTA2MTBlNzM1NjViNTA5NTk4OTA=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwZT0Cpm6n0zZ/1cwoYL7N5iTMxq0I9dbTF8KaqEVd2oeNQu0lH/CsAB50lI8N6gVVGgwItbXkrQYQ8bWDlwEiDwoJCPm05K0GEJ0WEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQj5tOStBhCjFhICGAISAhgDGL+9qTwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBzBsSAxjDDCLEGzk3NTA5NTUwNTA1MDUwNTA1MDU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMGZhMjU3NjAwMDgwZmQ1YjgyMzU2MTBmYWQ4MTYxMGE5YTU2NWI5MTUwNjAyMDgzMDEzNTYxMGZiZDgxNjEwYTlhNTY1YjgwOTE1MDUwOTI1MDkyOTA1MDU2NWI2MDAwNjAyMDgwODM4NTAzMTIxNTYxMGZkYjU3NjAwMDgwZmQ1YjgyMzU2N2ZmZmZmZmZmZmZmZmZmZmY4MTExMTU2MTBmZjI1NzYwMDA4MGZkNWI4MzAxNjAxZjgxMDE4NTEzNjExMDAzNTc2MDAwODBmZDViODAzNTYxMTAxMTYxMGRiYjgyNjEwZDQyNTY1YjgxODE1MjYwMDU5MTkwOTExYjgyMDE4MzAxOTA4MzgxMDE5MDg3ODMxMTE1NjExMDMwNTc2MDAwODBmZDViOTI4NDAxOTI1YjgyODQxMDE1NjExMDU3NTc4MzM1NjExMDQ4ODE2MTBhOWE1NjViODI1MjkyODQwMTkyOTA4NDAxOTA2MTEwMzU1NjViOTc5NjUwNTA1MDUwNTA1MDUwNTY1YjgyODE1MjYwODA4MTAxNjEwYWNmNjAyMDgzMDE4NDgwNTE2M2ZmZmZmZmZmOTA4MTE2ODM1MjYwMjA4MDgzMDE1MTYwMDE2MDAxNjBhMDFiMDMxNjkwODQwMTUyNjA0MDkxODIwMTUxMTY5MTAxNTI1NjViNjAwMDgyNjExMGI5NTc2MzRlNDg3YjcxNjBlMDFiNjAwMDUyNjAxMjYwMDQ1MjYwMjQ2MDAwZmQ1YjUwMDQ5MDU2NWI2MDAwODI1MTYxMTBkMDgxODQ2MDIwODcwMTYxMGIxMjU2NWI5MTkwOTEwMTkyOTE1MDUwNTY1YjgwNTE2MDAzODE5MDBiODExNDYxMGFlMTU3NjAwMDgwZmQ1YjYwMDA2MDIwODI4NDAzMTIxNTYxMTBmZTU3NjAwMDgwZmQ1YjYxMGFjZjgyNjExMGRhNTY1YjgwNTE2MTBhZTE4MTYxMGE5YTU2NWI2MDAwODI2MDFmODMwMTEyNjExMTIzNTc2MDAwODBmZDViODE1MTYxMTEzMTYxMGRiYjgyNjEwZDc0NTY1YjgxODE1Mjg0NjAyMDgzODYwMTAxMTExNTYxMTE0NjU3NjAwMDgwZmQ1YjYxMGJmNTgyNjAyMDgzMDE2MDIwODcwMTYxMGIxMjU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMTE2YTU3NjAwMDgwZmQ1YjYxMTE3MzgzNjExMGRhNTY1YjkxNTA2MDIwODMwMTUxNjdmZmZmZmZmZmZmZmZmZmZmODA4MjExMTU2MTExOTA1NzYwMDA4MGZkNWI5MDg0MDE5MDYwYTA4Mjg3MDMxMjE1NjExMWE0NTc2MDAwODBmZDViNjExMWFjNjEwYzVmNTY1YjgyNTE2MTExYjc4MTYxMGQ2NjU2NWI4MTUyNjAyMDgzMDE1MTYxMTFjNzgxNjEwYTlhNTY1YjYwMjA4MjAxNTI2MDQwODMwMTUxODI4MTExMTU2MTExZGU1NzYwMDA4MGZkNWI2MTExZWE4ODgyODYwMTYxMTExMjU2NWI2MDQwODMwMTUyNTA2MDYwODMwMTUxODI4MTExMTU2MTEyMDI1NzYwMDA4MGZkNWI2MTEyMGU4ODgyODYwMTYxMTExMjU2NWI2MDYwODMwMTUyNTA2MTEyMjA2MDgwODQwMTYxMTEwNzU2NWI2MDgwODIwMTUyODA5MzUwNTA1MDUwOTI1MDkyOTA1MDU2NWI2MDAxNjAwMTYwYTAxYjAzODMxNjgxNTI2MDgwODEwMTYxMGFjZjYwMjA4MzAxODQ4MDUxNjNmZmZmZmZmZjkwODExNjgzNTI2MDIwODA4MzAxNTE2MDAxNjAwMTYwYTAxYjAzMTY5MDg0MDE1MjYwNDA5MTgyMDE1MTE2OTEwMTUyNTY1YjYwMDA2MDQwODA4MzAxNjAwMTYwMDE2MGEwMWIwMzg2MTY4NDUyNjAyMDgyODE4NjAxNTI4MTg2NTE4MDg0NTI2MDYwODcwMTkxNTA2MDYwODE2MDA1MWI4ODAxMDE5MzUwODI4ODAxNjAwMDViODI4MTEwMTU2MTEyZWI1Nzg4ODYwMzYwNWYxOTAxODQ1MjgxNTE4MDUxODc1Mjg1MDE1MTg1ODcwMTg4OTA1MjYxMTJkODg4ODgwMTgyNjEwYjZlNTY1Yjk2NTA1MDkyODQwMTkyOTA4NDAxOTA2MDAxMDE2MTEyYWM1NjViNTA5Mzk5OTg1MDUwNTA1MDUwNTA1MDUwNTA1NjViNjM0ZTQ4N2I3MTYwZTAxYjYwMDA1MjYwMzI2MDA0NTI2MDI0NjAwMGZkNWI2MDAwNjAwMDE5ODIxNDE1NjExMzMyNTc2MzRlNDg3YjcxNjBlMDFiNjAwMDUyNjAxMTYwMDQ1MjYwMjQ2MDAwZmQ1YjUwNjAwMTAxOTA1NjViNjAwMDgwODI4NDAzNjA4MDgxMTIxNTYxMTM0ZDU3NjAwMDgwZmQ1YjYxMTM1Njg0NjExMGRhNTY1YjkyNTA2MDYwNjAxZjE5ODIwMTEyMTU2MTEzNmE1NzYwMDA4MGZkNWI1MDYxMTM3MzYxMGMxMzU2NWI2MDIwODQwMTUxNjExMzgxODE2MTBjYjM1NjViODE1MjYwNDA4NDAxNTE2MTEzOTE4MTYxMGE5YTU2NWI2MDIwODIwMTUyNjA2MDg0MDE1MTYxMGQzMjgxNjEwY2IzNTY1YjYwMDA4MDYwNDA4Mzg1MDMxMjE1NjExM2I3NTc2MDAwODBmZDViNjExM2MwODM2MTEwZGE1NjViOTE1MDYwMjA4MzAxNTE2MTBmYmQ4MTYxMGQ2NjU2ZmVhMjY0Njk3MDY2NzM1ODIyMTIyMDc0MzVkMGU2YjI1MjM5Y2RiMTEwOTMyZDE4MmIzNWRjZDcyNTY1ZDRlZGM5NTJlNTUxMGUzMzI0NTY3YjgzODU2NDczNmY2YzYzNDMwMDA4MGIwMDMzNjA4MDYwNDA1MjM0ODAxNTYxMDAxMDU3NjAwMDgwZmQ1YjUwNjEwMjQxODA2MTAwMjA2MDAwMzk2MDAwZjNmZTYwODA2MDQwNTI2MDA0MzYxMDYxMDAyOTU3NjAwMDM1NjBlMDFjODA2Mzk5MDQ3ZjAyMTQ2MTAwMmU1NzgwNjNiMDU5NmIxNDE0NjEwMDQzNTc1YjYwMDA4MGZkNWI2MTAwNDE2MTAwM2MzNjYwMDQ2MTAxZGI1NjViNjEwMDU2NTY1YjAwNWI2MTAwNDE2MTAwNTEzNjYwMDQ2MTAxZGI1NjViNjEwMGY5NTY1YjYwMDA4MTYwMDE2MDAxNjBhMDFiMDMxNjM0NjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4NzVhZjE5MjUwNTA1MDNkODA2MDAwODExNDYxMDBhMzU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMDBhODU2NWI2MDYwOTE1MDViNTA1MDkwNTA4MDYxMDBmNTU3NjA0MDUxNjI0NjFiY2Q2MGU1MWI4MTUyNjAyMDYwMDQ4MjAxNTI2MDE0NjAyNDgyMDE1MjczMjMzMGI0YjYzMmIyMTAzYTM3OTAzOWIyYjczMjEwMjJiYTM0MzJiOTYwNjExYjYwNDQ4MjAxNTI2MDY0MDE1YjYwNDA1MTgwOTEwMzkwZmQ1YjUwNTA1NjViNjAwMDgxNjAwMTYwMDE2MGEwMWIwMzE2MzQ2MDQwNTE2MDAwNjA0MDUxODA4MzAzODE4NTg3NWFmMTkyNTA1MDUwM2Q4MDYwMDA4MTE0NjEwMTQ2NTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjEwMTRiNTY1YjYwNjA5MTUwNWI1MDUwOTA1MDgwNjEwMTkzNTc2MDQwNTE2MjQ2MWJjZDYwZTUxYjgxNTI2MDIwNjAwNDgyMDE1MjYwMTQ2MDI0ODIwMTUyNzMyMzMwYjRiNjMyYjIxMDNhMzc5MDM5YjJiNzMyMTAyMmJhMzQzMmI5NjA2MTFiNjA0NDgyMDE1MjYwNjQwMTYxMDBlYzU2NWI2MDQwNTE2MjQ2MWJjZDYwZTUxYjgxNTI2MDIwNjAwNDgyMDE1MjYwMTg2MDI0ODIwMTUyN2Y1MzZmNzI3Mjc5MmMyMDZlNmY3NDIwNjc2ZjZlNmU2MTIwNjg2MTcwNzA2NTZlMjEwMDAwMDAwMDAwMDAwMDAwNjA0NDgyMDE1MjYwNjQwMTYxMDBlYzU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTAxZWQ1NzYwMDA4MGZkNWI4MTM1NjAwMTYwMDE2MGEwMWIwMzgxMTY4MTE0NjEwMjA0NTc2MDAwODBmZDViOTM5MjUwNTA1MDU2ZmVhMjY0Njk3MDY2NzM1ODIyMTIyMDg4NzQ0N2UwZjMwYzVjYTBkYWM3MTM2N2I0ZTJlMTI3MWEwODc3NWE0NDdhZDZmYjAzYzhhMjJlZTI5ZDQzZGU2NDczNmY2YzYzNDMwMDA4MGIwMDMz","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwgKCTXrwQfLza7M9K0ndjqQ6rx2pCDEA2HNaAeP2oK2Gf7OjgH13zE0duRfI2o9poGgwItbXkrQYQ0ZfBmAMiDwoJCPm05K0GEKMWEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQj6tOStBhClFhICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGMMMGiISIOKu95BDT4uSGo16z34h//64gQQ1Zd8Vebten5LwfunRIJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"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"},{"b64Body":"ChEKCQj6tOStBhClFhICGAIgAUI4GiISIOKu95BDT4uSGo16z34h//64gQQ1Zd8Vebten5LwfunRQgUIgM7aA2oLY2VsbGFyIGRvb3I=","b64Record":"CgcIFiIDGMUMEjBS3JyLiIJaMWv7lQHuFNhWO8DYRJzgMX55crzJCxUYjFl3NflVSGjl2e9f4Yur8MUaDAi2teStBhDSvdigASIRCgkI+rTkrQYQpRYSAhgCIAFCHQoDGMUMShYKFPXF/aapEZyS0uMWgUwoOdvubwVzUgB6DAi2teStBhDRvdigAQ=="},{"b64Body":"Cg8KCQj6tOStBhCrFhICGAISAhgDGID9kMsBIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46lAEKAxjEDBCAm+4CGOgHIoQBqj7ZCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAABhjTQD9ieAkSDovHvGWNHFaYuI1wAAAAAAAAAAAAAAAANBGrMXLRVrlRFlRiiUwX4N4P8z","b64Record":"CiYIyAIiAxjEDCocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwgTu1a6OloPLrc6ox0+uQq93dQ42vI/vZof/av/E+frDAzzhu74f4jgmwQiae1De1GgwItrXkrQYQ8bH7oQMiDwoJCPq05K0GEKsWEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wgP2QywE6PRo2MHg0ZDQxNTg1ZjQzNDg0OTRjNDQ1ZjUyNDU0MzRmNTI0NDUzNWY0NTU4NDM0NTQ1NDQ0NTQ0KICb7gJSGAoKCgIYAhD/+aGWAwoKCgIYYhCA+qGWAw=="}]},"erc20TransferFromDoesNotWorkIfFlagIsDisabled":{"placeholderNum":1608,"encodedItems":[{"b64Body":"Cg8KCQiBteStBhDWFhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloyCiISIAQ1jCmJWndQ3Z8ZjbaIiHdErV++5pfDz5jaxgfweEKzEICglKWNHUoFCIDO2gM=","b64Record":"CiUIFhIDGMkMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBZi3fpbJWZmIfj1LRF7Ssq8wK2f3LrwZMx5zwLuUscMtTEgbt0RzI+iViHnqpbogwaCwi9teStBhDr6LFUIg8KCQiBteStBhDWFhICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUhsKCwoCGAIQ/7+oypo6CgwKAxjJDBCAwKjKmjo="},{"b64Body":"Cg8KCQiBteStBhDYFhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISILDHdNIExbxpj+dNsx8ZuCcR7nNTXBiAw7GCor2Wj179EICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGMoMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCQs/SrEzrw0wE6OD9sGAq9T0xc8ur+jJSLITOoobwhH/sDvobhzXA7NJihC2lS3KcaDAi9teStBhCDwqe5AiIPCgkIgbXkrQYQ2BYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxjKDBCAqNa5Bw=="},{"b64Body":"Cg8KCQiCteStBhDaFhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISICvLIoQiW92C0EiXSJgFC+Pz/8ttCM5DsTxPzbAYs7CCEICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGMsMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAPW7G0JsU8SioaHT1+VBSQ7dPSWHQ4BUa7aXztRRUahUGJ9tjhNQSPwYGSnzxpqh8aCwi+teStBhDriI1BIg8KCQiCteStBhDaFhICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUhkKCgoCGAIQ/6fWuQcKCwoDGMsMEICo1rkH"},{"b64Body":"Cg8KCQiCteStBhDcFhICGAISAhgDGL7W8vsCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAX0KDWZ1bmdpYmxlVG9rZW4SCE9CSFFVR0xPIAoqAxjLDDIiEiDb5Xa3n/03fcJf4aKPrCiv8kUYz/1O6A7GUo1H/r6p21IiEiDb5Xa3n/03fcJf4aKPrCiv8kUYz/1O6A7GUo1H/r6p22oMCL6Dv7EGENju77ACkAEBmAHoBw==","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGMwMEjC7cjzM1rvrrGQsVSz3Xs1H99zULnXZuHPVJ8s72m6NgsqvueeeSmVLWF5I1JvdUTcaDAi+teStBhDz3+XCAiIPCgkIgrXkrQYQ3BYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWg4KAxjMDBIHCgMYywwQFHIKCgMYzAwSAxjLDA=="},{"b64Body":"Cg8KCQiDteStBhDeFhICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjgESCwi/g7+xBhCA8oVFGm0KIhIgbloewmuERD43JI4PztjgnOpGoPXvHvAQ5eXxcvpnj3sKIzohA+VtwulTCxColcWFOaGWLBXKvNwBpJMfndIW95EZ3XFwCiISIGLPZdlZiRAylHXLVzArbuVAr9f7qfh0QinCTxSj/5eFIgxIZWxsbyBXb3JsZCEqADIA","b64Record":"CiUIFhoDGM0MKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCTGvPj60rUPUXA0a6eCDAbB8fgtf9GzQYSIuFyJOYYk9o8tRp0QyWzTAHShWjC/xkaCwi/teStBhC71oFMIg8KCQiDteStBhDeFhICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgA="},{"b64Body":"Cg8KCQiDteStBhDiFhICGAISAhgDGIydjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxjNDCKAIDYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMGE1NzgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDBjZjU3NjAwMDM1NjBlMDFjODA2M2JlYWJhY2M4MTE2MTAwOGM1NzgwNjNlNGRjMmFhNDExNjEwMDY2NTc4MDYzZTRkYzJhYTQxNDYxMDE4MTU3ODA2M2Y0Yjc5ZGE1MTQ2MTAxOTQ1NzgwNjNmNzg4OGFlYzE0NjEwMWE3NTc4MDYzZjc5Yzc1NjgxNDYxMDFiYTU3NjAwMDgwZmQ1YjgwNjNiZWFiYWNjODE0NjEwMTQ4NTc4MDYzZDQ0OWE4MzIxNDYxMDE1YjU3ODA2M2UxZjIxYzY3MTQ2MTAxNmU1NzYwMDA4MGZkNWI4MDYzMDE5ODQ4OTIxNDYxMDBkNDU3ODA2MzE1ZGFjYmVhMTQ2MTAwZTk1NzgwNjMxZjg0YjJiNzE0NjEwMGZjNTc4MDYzOTI3ZGExMDUxNDYxMDEwZjU3ODA2Mzk4ZGNhNWJlMTQ2MTAxMjI1NzgwNjNhODZlMzU3NjE0NjEwMTM1NTc1YjYwMDA4MGZkNWI2MTAwZTc2MTAwZTIzNjYwMDQ2MTA3NDY1NjViNjEwMWNkNTY1YjAwNWI2MTAwZTc2MTAwZjczNjYwMDQ2MTA3Njg1NjViNjEwMjM3NTY1YjYxMDBlNzYxMDEwYTM2NjAwNDYxMDdiMzU2NWI2MTAyYjk1NjViNjEwMGU3NjEwMTFkMzY2MDA0NjEwN2VmNTY1YjYxMDMzMzU2NWI2MTAwZTc2MTAxMzAzNjYwMDQ2MTA3Njg1NjViNjEwM2FiNTY1YjYxMDBlNzYxMDE0MzM2NjAwNDYxMDc0NjU2NWI2MTAzZTg1NjViNjEwMGU3NjEwMTU2MzY2MDA0NjEwN2IzNTY1YjYxMDQyNjU2NWI2MTAwZTc2MTAxNjkzNjYwMDQ2MTA3NDY1NjViNjEwNDlhNTY1YjYxMDBlNzYxMDE3YzM2NjAwNDYxMDdiMzU2NWI2MTA0ZmM1NjViNjEwMGU3NjEwMThmMzY2MDA0NjEwNzQ2NTY1YjYxMDUzMTU2NWI2MTAwZTc2MTAxYTIzNjYwMDQ2MTA3YjM1NjViNjEwNTkzNTY1YjYxMDBlNzYxMDFiNTM2NjAwNDYxMDgzMjU2NWI2MTA2Mzc1NjViNjEwMGU3NjEwMWM4MzY2MDA0NjEwODY1NTY1YjYxMDZhNjU2NWI4MDYwMDE2MDAxNjBhMDFiMDMxNjYzMDZmZGRlMDM2MDQwNTE4MTYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MDAwNjA0MDUxODA4MzAzODE4NjVhZmExNTgwMTU2MTAyMGI1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA2MDQwNTEzZDYwMDA4MjNlNjAxZjNkOTA4MTAxNjAxZjE5MTY4MjAxNjA0MDUyNjEwMjMzOTE5MDgxMDE5MDYxMDhkMTU2NWI1MDUwNTY1YjYwNDA1MTYzMjNiODcyZGQ2MGUwMWI4MTUyNjAwMTYwMDE2MGEwMWIwMzg0ODExNjYwMDQ4MzAxNTI4MzgxMTY2MDI0ODMwMTUyNjA0NDgyMDE4MzkwNTI4NTE2OTA2MzIzYjg3MmRkOTA2MDY0MDE2MDIwNjA0MDUxODA4MzAzODE2MDAwODc1YWYxMTU4MDE1NjEwMjhlNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTAyYjI5MTkwNjEwOTdlNTY1YjUwNTA1MDUwNTA1NjViNjA0MDUxNjNhOTA1OWNiYjYwZTAxYjgxNTI2MDAxNjAwMTYwYTAxYjAzODM4MTE2NjAwNDgzMDE1MjYwMjQ4MjAxODM5MDUyODQxNjkwNjNhOTA1OWNiYjkwNjA0NDAxNWI2MDIwNjA0MDUxODA4MzAzODE2MDAwODc1YWYxMTU4MDE1NjEwMzA5NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTAzMmQ5MTkwNjEwOTdlNTY1YjUwNjAwMDgwZmQ1YjYwNDA1MTYzNmViMTc2OWY2MGUxMWI4MTUyNjAwMTYwMDE2MGEwMWIwMzgzODExNjYwMDQ4MzAxNTI4MjgxMTY2MDI0ODMwMTUyODQxNjkwNjNkZDYyZWQzZTkwNjA0NDAxNjAyMDYwNDA1MTgwODMwMzgxODY1YWZhMTU4MDE1NjEwMzgxNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTAzYTU5MTkwNjEwOWEwNTY1YjUwNTA1MDUwNTY1YjYwNDA1MTYzMjNiODcyZGQ2MGUwMWI4MTUyNjAwMTYwMDE2MGEwMWIwMzg0ODExNjYwMDQ4MzAxNTI4MzgxMTY2MDI0ODMwMTUyNjA0NDgyMDE4MzkwNTI4NTE2OTA2MzIzYjg3MmRkOTA2MDY0MDE2MTAyZWE1NjViODA2MDAxNjAwMTYwYTAxYjAzMTY2Mzk1ZDg5YjQxNjA0MDUxODE2M2ZmZmZmZmZmMTY2MGUwMWI4MTUyNjAwNDAxNjAwMDYwNDA1MTgwODMwMzgxODY1YWZhMTU4MDE1NjEwMjBiNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjYwNDA1MTYzYTkwNTljYmI2MGUwMWI4MTUyNjAwMTYwMDE2MGEwMWIwMzgzODExNjYwMDQ4MzAxNTI2MDI0ODIwMTgzOTA1Mjg0MTY5MDYzYTkwNTljYmI5MDYwNDQwMTViNjAyMDYwNDA1MTgwODMwMzgxNjAwMDg3NWFmMTE1ODAxNTYxMDQ3NjU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAxZjE5NjAxZjgyMDExNjgyMDE4MDYwNDA1MjUwODEwMTkwNjEwM2E1OTE5MDYxMDk3ZTU2NWI4MDYwMDE2MDAxNjBhMDFiMDMxNjYzMzEzY2U1Njc2MDQwNTE4MTYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MDIwNjA0MDUxODA4MzAzODE4NjVhZmExNTgwMTU2MTA0ZDg1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA2MDQwNTEzZDYwMWYxOTYwMWY4MjAxMTY4MjAxODA2MDQwNTI1MDgxMDE5MDYxMDIzMzkxOTA2MTA5Yjk1NjViNjA0MDUxNjMwOTVlYTdiMzYwZTAxYjgxNTI2MDAxNjAwMTYwYTAxYjAzODM4MTE2NjAwNDgzMDE1MjYwMjQ4MjAxODM5MDUyODQxNjkwNjMwOTVlYTdiMzkwNjA0NDAxNjEwNDU3NTY1YjgwNjAwMTYwMDE2MGEwMWIwMzE2NjMxODE2MGRkZDYwNDA1MTgxNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYwMjA2MDQwNTE4MDgzMDM4MTg2NWFmYTE1ODAxNTYxMDU2ZjU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAxZjE5NjAxZjgyMDExNjgyMDE4MDYwNDA1MjUwODEwMTkwNjEwMjMzOTE5MDYxMDlhMDU2NWI2MDQwNTE2MDAxNjAwMTYwYTAxYjAzODM4MTE2NjAyNDgzMDE1MjYwNDQ4MjAxODM5MDUyNjAwMDkxODI5MTg2MTY5MDYwNjQwMTYwNDA4MDUxNjAxZjE5ODE4NDAzMDE4MTUyOTE4MTUyNjAyMDgyMDE4MDUxNjAwMTYwMDE2MGUwMWIwMzE2NjNhOTA1OWNiYjYwZTAxYjE3OTA1MjUxNjEwNWVkOTE5MDYxMDlkYzU2NWI2MDAwNjA0MDUxODA4MzAzODE4NTVhZjQ5MTUwNTAzZDgwNjAwMDgxMTQ2MTA2Mjg1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTA2MmQ1NjViNjA2MDkxNTA1YjUwNTA1MDUwNTA1MDUwNTA1NjViNjA0MDUxNjM3MGEwODIzMTYwZTAxYjgxNTI2MDAxNjAwMTYwYTAxYjAzODI4MTE2NjAwNDgzMDE1MjgzMTY5MDYzNzBhMDgyMzE5MDYwMjQwMTYwMjA2MDQwNTE4MDgzMDM4MTg2NWFmYTE1ODAxNTYxMDY3ZDU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAxZjE5NjAxZjgyMDExNjgyMDE4MDYwNDA1MjUwODEwMTkwNjEwNmExOTE5MDYxMDlhMDU2NWI1MDUwNTA1NjViNjAwMDViODE4MTEwMTU2MTA2YTE1NzgyNjAwMTYwMDE2MGEwMWIwMzE2NjMwNmZkZGUwMzYwNDA1MTgxNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYwMDA2MDQwNTE4MDgzMDM4MTg2NWFmYTE1ODAxNTYxMDZlZjU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAwMDgyM2U2MDFmM2Q5MDgxMDE2MDFmMTkxNjgyMDE2MDQwNTI2MTA3MTc5MTkwODEwMTkwNjEwOGQxNTY1YjUwODA2MTA3MjI4MTYxMDlmODU2NWI5MTUwNTA2MTA2YTk1NjViODAzNTYwMDE2MDAxNjBhMDFiMDM4MTE2ODExNDYxMDc0MTU3NjAwMDgwZmQ1YjkxOTA1MDU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTA3NTg1NzYwMDA4MGZkNWI2MTA3NjE4MjYxMDcyYTU2NWI5MzkyNTA1MDUwNTY1YjYwMDA4MDYwMDA4MDYwODA4NTg3MDMxMjE1NjEwNzdlNTc2MDAwODBmZDViNjEwNzg3ODU2MTA3MmE1NjViOTM1MDYxMDc5NTYwMjA4NjAxNjEwNzJhNTY1YjkyNTA2MTA3YTM2MDQwODYwMTYxMDcyYTU2NWI5Mzk2OTI5NTUwOTI5MzYwNjAwMTM1OTI1MDUwNTY1YjYwMDA4MDYwMDA2MDYwODQ4NjAzMTIxNTYxMDdjODU3NjAwMDgwZmQ1YjYxMDdkMTg0NjEwNzJhNTY1YjkyNTA2MTA3ZGY2MDIwODUwMTYxMDcyYTU2NWI=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwFdAMIE241mswIfLvR7LwF3dvvubBIUYK+vWXWC5t58dWkwUb1mqHfzRlHy7nZbouGgwIv7XkrQYQ0+iQzAIiDwoJCIO15K0GEOIWEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQiEteStBhDoFhICGAISAhgDGKq4szIiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIB9gkSAxjNDCLuCTkxNTA2MDQwODQwMTM1OTA1MDkyNTA5MjUwOTI1NjViNjAwMDgwNjAwMDYwNjA4NDg2MDMxMjE1NjEwODA0NTc2MDAwODBmZDViNjEwODBkODQ2MTA3MmE1NjViOTI1MDYxMDgxYjYwMjA4NTAxNjEwNzJhNTY1YjkxNTA2MTA4Mjk2MDQwODUwMTYxMDcyYTU2NWI5MDUwOTI1MDkyNTA5MjU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMDg0NTU3NjAwMDgwZmQ1YjYxMDg0ZTgzNjEwNzJhNTY1YjkxNTA2MTA4NWM2MDIwODQwMTYxMDcyYTU2NWI5MDUwOTI1MDkyOTA1MDU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMDg3ODU3NjAwMDgwZmQ1YjYxMDg4MTgzNjEwNzJhNTY1Yjk0NjAyMDkzOTA5MzAxMzU5MzUwNTA1MDU2NWI2MzRlNDg3YjcxNjBlMDFiNjAwMDUyNjA0MTYwMDQ1MjYwMjQ2MDAwZmQ1YjYwMDA1YjgzODExMDE1NjEwOGMwNTc4MTgxMDE1MTgzODIwMTUyNjAyMDAxNjEwOGE4NTY1YjgzODExMTE1NjEwM2E1NTc1MDUwNjAwMDkxMDE1MjU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTA4ZTM1NzYwMDA4MGZkNWI4MTUxNjdmZmZmZmZmZmZmZmZmZmZmODA4MjExMTU2MTA4ZmI1NzYwMDA4MGZkNWI4MTg0MDE5MTUwODQ2MDFmODMwMTEyNjEwOTBmNTc2MDAwODBmZDViODE1MTgxODExMTE1NjEwOTIxNTc2MTA5MjE2MTA4OGY1NjViNjA0MDUxNjAxZjgyMDE2MDFmMTk5MDgxMTY2MDNmMDExNjgxMDE5MDgzODIxMTgxODMxMDE3MTU2MTA5NDk1NzYxMDk0OTYxMDg4ZjU2NWI4MTYwNDA1MjgyODE1Mjg3NjAyMDg0ODcwMTAxMTExNTYxMDk2MjU3NjAwMDgwZmQ1YjYxMDk3MzgzNjAyMDgzMDE2MDIwODgwMTYxMDhhNTU2NWI5Nzk2NTA1MDUwNTA1MDUwNTA1NjViNjAwMDYwMjA4Mjg0MDMxMjE1NjEwOTkwNTc2MDAwODBmZDViODE1MTgwMTUxNTgxMTQ2MTA3NjE1NzYwMDA4MGZkNWI2MDAwNjAyMDgyODQwMzEyMTU2MTA5YjI1NzYwMDA4MGZkNWI1MDUxOTE5MDUwNTY1YjYwMDA2MDIwODI4NDAzMTIxNTYxMDljYjU3NjAwMDgwZmQ1YjgxNTE2MGZmODExNjgxMTQ2MTA3NjE1NzYwMDA4MGZkNWI2MDAwODI1MTYxMDllZTgxODQ2MDIwODcwMTYxMDhhNTU2NWI5MTkwOTEwMTkyOTE1MDUwNTY1YjYwMDA2MDAwMTk4MjE0MTU2MTBhMWE1NzYzNGU0ODdiNzE2MGUwMWI2MDAwNTI2MDExNjAwNDUyNjAyNDYwMDBmZDViNTA2MDAxMDE5MDU2ZmVhMjY0Njk3MDY2NzM1ODIyMTIyMDkzZGI3ZDJiZGQwOTYyNTBhZGQ4ZWZlNmNjOWJhNGExZjdjZjEzOGQ0MTBiNTQ0ODlmNmFlYmY0NDI5NmRmM2Y2NDczNmY2YzYzNDMwMDA4MGIwMDMz","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwIK0/N2GgWUJoAVAQl8mMFDj6NYigLIouKfxjvUH0Tb45ZVgm57kQeChs411og6VUGgsIwLXkrQYQ8/q4VCIPCgkIhLXkrQYQ6BYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiEteStBhDqFhICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGM0MGiISIAL03aA5QS4yRHPfVlrpFIqFyEOGco+pmeUUzQ4mzb5dIJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"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"},{"b64Body":"Cg8KCQiFteStBhDwFhICGAISAhgDGOC2iyAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGMkMEgMYzAw=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwuzZsnxKKzxbf62kMpifPYws/o2w82ZpEd4rVvZ0ktv7p2ocMF9vRNR9uznZTvppLGgsIwbXkrQYQ6+npXSIPCgkIhbXkrQYQ8BYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiFteStBhD2FhICGAISAhgDGOC2iyAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGMoMEgMYzAw=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw4o+FAsywcYYswLOPINbGl3KspdGeCFFf5JTby4AE1djZSDrMPd+kzaEYsjkOq02gGgwIwbXkrQYQq6jS3wIiDwoJCIW15K0GEPYWEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQiGteStBhD8FhICGAISAhgDGOC2iyAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGM4MEgMYzAw=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwM4mBqcU7XXanhJn6VpKBJr0yc+i26aUU/LzB5BAaIpkcpkkvQrFs6feCieHdpxMzGgsIwrXkrQYQq/ywZyIPCgkIhrXkrQYQ/BYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiGteStBhD+FhICGAISAhgDGOufNiICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOchkSFwoDGMwMEgcKAxjLDBATEgcKAxjJDBAU","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw6eYn3q8U1jBXzlJyO1v/agm51P/w0qEzzmelfNILsHFgFhxFs/3yVy8X42+M6tKkGgwIwrXkrQYQy4ye6QIiDwoJCIa15K0GEP4WEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAFoXCgMYzAwSBwoDGMkMEBQSBwoDGMsMEBM="},{"b64Body":"Cg8KCQiHteStBhCAFxICGAISAhgDGODf9hAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjqQAQoDGM4MEKDCHiKEARXay+oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg==","b64Record":"CiUIISIDGM4MKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBKmkloBaUjG6dGkYZKjwcMQ9noyOAvyhfbz/usVZBlu36w1cZZy0atUj22IlkrNbYaCwjDteStBhDzoqhxIg8KCQiHteStBhCAFxICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMJq8txA6CBoCMHgoltAdUhYKCQoCGAIQs/juIAoJCgIYYhC0+O4g"}]},"rejectsCreationAndUpdateOfAssociationsWhenFlagDisabled":{"placeholderNum":1615,"encodedItems":[{"b64Body":"Cg8KCQiMteStBhCfFxICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAjIg7+xBhDwy/HZAxptCiISIO9qYSGG7s+tL8eMpPUXshi7jTGInXf0WWmqoLl+08vfCiM6IQN4xqUDkLNVzwNi1dVyuLgN05r9wt4ouu2dUTKI6OfqiQoiEiCRpXEuRUhUivYy32XsYwkplSNJ6nfoNkTwcR+imaRFmiIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGNAMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAg9PGGon10CXJC3sPV0lVUnW6Zj08HAaS6Yn1ua1yCb4NK++zRaSji4rwtVjoi5qEaDAjIteStBhCL3bnbAyIPCgkIjLXkrQYQnxcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiNteStBhCjFxICGAISAhgDGMr5hy0iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBwAEKAxjQDCK4ATYwODA2MDQwNTIzNDgwMTU2MDBmNTc2MDAwODBmZDViNTA2MDNmODA2MDFkNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyNjAwMDgwZmRmZWEyNjQ2OTcwNjY3MzU4MjIxMjIwOTg2N2JjOWUyMjJmMjU5Yjc4ODUwMzUwMjY4MjkzYTNmYzljMzk5YWY3ZTE3ODNkNjMzNDE2YzliMjljYmUxZTY0NzM2ZjZjNjM0MzAwMDgwNzAwMzM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwQFKCgND4Uo+FndNNKzXwwCCTs6h+pUpxzRV8sjEjGQ7z04HsPN3CSsy8dnlSdUt2GgwIybXkrQYQ6+HQ/wEiDwoJCI215K0GEKMXEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQiOteStBhCnFxICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGNAMGiISIFm6g1ICuacKBicz68X9kxQScdamCkn/UqwnfW6lDYLhIJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGNEMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCaxDHhmGNYJ0OZ9PxMYu1YisM+NPip94MKCtHvQi0hh0MTCM15P9JwKvfFoLcWBJAaCwjKteStBhCDi44IIg8KCQiOteStBhCnFxICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMMDZ4gZC8wIKAxjRDBI/YIBgQFJgAID9/qJkaXBmc1giEiCYZ7yeIi8lm3iFA1AmgpOj/Jw5mvfheD1jNBbJspy+HmRzb2xjQwAIBwAzIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACjAmgw6AxjRDEoWChQAAAAAAAAAAAAAAAAAAAAAAAAGUXIHCgMY0QwQAVIWCgkKAhgCEP+yxQ0KCQoCGGIQgLPFDQ=="},{"b64Body":"Cg8KCQiOteStBhCzFxICGAISAhgDGNGF2hAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjkoOCgMY0QxSBwoFSG9sYSE=","b64Record":"CiUIFiIDGNEMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBiI83YhFop64WgK5/+FyBoWIvYxeIlKUMdwIggr4WHLE7BZlKw2WdSutkFtWXcV8QaDAjKteStBhCj9rOJAiIPCgkIjrXkrQYQsxcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"}]},"WhitelistPositiveCase":{"placeholderNum":1618,"encodedItems":[{"b64Body":"Cg8KCQiTteStBhDJFxICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIAi1/MGQagGCDXrapaRhKeTWeFSStbngr4+fg9X8qSw8EICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGNMMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAwUe+YlI7nhCAS3Xnp4gdpvBRNAVgQU8757zXaGtYSlGzJbDjghtMMX8ys6dekaQEaDAjPteStBhDDseaOAyIPCgkIk7XkrQYQyRcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxjTDBCAqNa5Bw=="},{"b64Body":"Cg8KCQiUteStBhDLFxICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISINvaTMKfpsLChd0Dqc3UjQ7hZEVlBvMCLIcDMqta8jjQEICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGNQMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDVcVzwi5beFbZQthIm7Ts0Ynm9ZjNBXOkQfYvMZPs9EsCp/K7PtV3CnpjoovPYcKwaDAjQteStBhDLpMSzASIPCgkIlLXkrQYQyxcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxjUDBCAqNa5Bw=="},{"b64Body":"Cg8KCQiUteStBhDNFxICGAISAhgDGPHv7egCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qATYKDWZ1bmdpYmxlVG9rZW4SCE1SU1lVWUZRIP//////////fyoDGNMMagwI0IO/sQYQiPnelAM=","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGNUMEjCQ+WXCubtdCTt0TWqLXNIr6V+2y75VRmZdII4FqMr5QBS5WAcnKH2Cup83BFPeShsaDAjQteStBhC779CYAyIPCgkIlLXkrQYQzRcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWhcKAxjVDBIQCgMY0wwQ/v//////////AXIKCgMY1QwSAxjTDA=="},{"b64Body":"Cg8KCQiVteStBhDPFxICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAjRg7+xBhDQ7NSqARptCiISIKELbCtjAVvxgoOwdxRD4W7cpjK6cL3aGkz7hGJlnVdmCiM6IQJMGYnjo5rrsH55GuYxTxYu+DK0aGHfzREIEnbHuft19AoiEiCe7YZyx3TMwqhrGlc1OAWBL9XyaYegUnL3AdbSCmguUyIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGNYMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjA1evGqC/x9kRQLMEd4DzmZ2365qUGHqtw6CWOa7YCluKNOJjimgNAcTlBK779Sw/0aDAjRteStBhDDyra9ASIPCgkIlbXkrQYQzxcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiVteStBhDTFxICGAISAhgDGK3i3jAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBjAgKAxjWDCKECDYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMDFlMjgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDAyYjU3NjAwMDM1NjBlMDFjODA2M2ZhNTBhYjIwMTQ2MTAwMzA1NzViNjAwMDgwZmQ1YjYxMDA0YTYwMDQ4MDM2MDM4MTAxOTA2MTAwNDU5MTkwNjEwMTIxNTY1YjYxMDA0YzU2NWIwMDViODI3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzZWZjMzg4MjY4MzgzNjA0MDUxODM2M2ZmZmZmZmZmMTY2MGUwMWI4MTUyNjAwNDAxNjEwMDg3OTI5MTkwNjEwMTgzNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NzgwM2IxNTgwMTU2MTAwYTE1NzYwMDA4MGZkNWI1MDVhZjExNTgwMTU2MTAwYjU1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA1MDUwNTA1NjViNjAwMDgwZmQ1YjYwMDA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MjE2OTA1MDkxOTA1MDU2NWI2MDAwNjEwMGVlODI2MTAwYzM1NjViOTA1MDkxOTA1MDU2NWI2MTAwZmU4MTYxMDBlMzU2NWI4MTE0NjEwMTA5NTc2MDAwODBmZDViNTA1NjViNjAwMDgxMzU5MDUwNjEwMTFiODE2MTAwZjU1NjViOTI5MTUwNTA1NjViNjAwMDgwNjAwMDYwNjA4NDg2MDMxMjE1NjEwMTNhNTc2MTAxMzk2MTAwYmU1NjViNWI2MDAwNjEwMTQ4ODY4Mjg3MDE2MTAxMGM1NjViOTM1MDUwNjAyMDYxMDE1OTg2ODI4NzAxNjEwMTBjNTY1YjkyNTA1MDYwNDA2MTAxNmE4NjgyODcwMTYxMDEwYzU2NWI5MTUwNTA5MjUwOTI1MDkyNTY1YjYxMDE3ZDgxNjEwMGUzNTY1YjgyNTI1MDUwNTY1YjYwMDA2MDQwODIwMTkwNTA2MTAxOTg2MDAwODMwMTg1NjEwMTc0NTY1YjYxMDFhNTYwMjA4MzAxODQ2MTAxNzQ1NjViOTM5MjUwNTA1MDU2ZmVhMjY0Njk3MDY2NzM1ODIyMTIyMDIwN2Y4OTNlMzNlMzI5ZWQ5ODBlNDExYmU3YTNhMGE4NjEzZmExZDFkZmYwMmIwMDM3MTY5YjkzYmIwYzcxMDA2NDczNmY2YzYzNDMwMDA4MTAwMDMz","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwnw86XcxfhldANZAolL9d6DERTlWvVvS7AuZU+6hszPzKsk0KWwSeP/tKZ9wXfSV7GgwI0bXkrQYQ69mxowMiDwoJCJW15K0GENMXEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQiWteStBhDVFxICGAISAhgDGIDa/6YBIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CSQoDGNYMGiYyJAoiEiAKqOIQZMYeq4biqcFkVltOeppBRhBuCmzQOow5WhEOkiCQoQ9CBQiAztoDUgBaAGoLY2VsbGFyIGRvb3I=","b64Record":"CiUIFiIDGNcMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDwfhYnra64lLg1rw9LxsdqZch/EgW+4pwhZg8l0AXsgCVsthqu3/tO9YqjydIWHV8aDAjSteStBhDrlO7GASIPCgkIlrXkrQYQ1RcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQpcGCgMY1wwS4gNggGBAUjSAFWEAEFdgAID9W1BgBDYQYQArV2AANWDgHIBj+lCrIBRhADBXW2AAgP1bYQBKYASANgOBAZBhAEWRkGEBIVZbYQBMVlsAW4Jz//////////////////////////8WY+/DiCaDg2BAUYNj/////xZg4BuBUmAEAWEAh5KRkGEBg1ZbYABgQFGAgwOBYACHgDsVgBVhAKFXYACA/VtQWvEVgBVhALVXPWAAgD49YAD9W1BQUFBQUFBWW2AAgP1bYABz//////////////////////////+CFpBQkZBQVltgAGEA7oJhAMNWW5BQkZBQVlthAP6BYQDjVluBFGEBCVdgAID9W1BWW2AAgTWQUGEBG4FhAPVWW5KRUFBWW2AAgGAAYGCEhgMSFWEBOldhATlhAL5WW1tgAGEBSIaChwFhAQxWW5NQUGAgYQFZhoKHAWEBDFZbklBQYEBhAWqGgocBYQEMVluRUFCSUJJQklZbYQF9gWEA41ZbglJQUFZbYABgQIIBkFBhAZhgAIMBhWEBdFZbYQGlYCCDAYRhAXRWW5OSUFBQVv6iZGlwZnNYIhIgIH+JPjPjKe2YDkEb56OgqGE/odHf8CsANxabk7sMcQBkc29sY0MACBAAMyKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAowJoMOgMY1wxKFgoUAAAAAAAAAAAAAAAAAAAAAAAABldyBwoDGNcMEAFSFgoJCgIYAhD/ssUNCgkKAhhiEICzxQ0="},{"b64Body":"Cg8KCQiWteStBhDXFxICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAjSg7+xBhDg49OuAxptCiISIBYUrCmJz36U+oBo/iSk61TM51H+CULlTqXPeC57CzwCCiM6IQL3BsCzNcF/im04H6dComnqB16iE0dgaDxo49lB7isADgoiEiA4d31T2Jvm3XU5JFB/qb/BcxtauIPrx5uUuy8DLrJwZSIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGNgMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBLN9gtmi4FV+H+uQNMvcfmtExnrgSZBR4NTRm8sXF1U3S7jEf1siD9JqYaF3aBCF8aDAjSteStBhDjnLuwAyIPCgkIlrXkrQYQ1xcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiXteStBhDbFxICGAISAhgDGOWwgzQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoB/g0KAxjYDCL2DTYwODA2MDQwNTI2MTAxNjc2MDAwODA2MTAxMDAwYTgxNTQ4MTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMTkxNjkwODM3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjAyMTc5MDU1NTAzNDgwMTU2MTAwNTI1NzYwMDA4MGZkNWI1MDYxMDMxOTgwNjEwMDYyNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDAyYjU3NjAwMDM1NjBlMDFjODA2M2VmYzM4ODI2MTQ2MTAwMzA1NzViNjAwMDgwZmQ1YjYxMDA0YTYwMDQ4MDM2MDM4MTAxOTA2MTAwNDU5MTkwNjEwMWJjNTY1YjYxMDA0YzU2NWIwMDViNjAwMDgwNTQ5MDYxMDEwMDBhOTAwNDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2M2UxZjIxYzY3NjBlMDFiODM4MzY3N2ZmZmZmZmZmZmZmZmZmZjYwNDA1MTYwMjQwMTYxMDBhODkzOTI5MTkwNjEwMjI0NTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMDExMjkxOTA2MTAyY2M1NjViNjAwMDYwNDA1MTgwODMwMzgxODU1YWY0OTE1MDUwM2Q4MDYwMDA4MTE0NjEwMTRkNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjEwMTUyNTY1YjYwNjA5MTUwNWI1MDUwNTA1MDUwNTY1YjYwMDA4MGZkNWI2MDAwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIxNjkwNTA5MTkwNTA1NjViNjAwMDYxMDE4OTgyNjEwMTVlNTY1YjkwNTA5MTkwNTA1NjViNjEwMTk5ODE2MTAxN2U1NjViODExNDYxMDFhNDU3NjAwMDgwZmQ1YjUwNTY1YjYwMDA4MTM1OTA1MDYxMDFiNjgxNjEwMTkwNTY1YjkyOTE1MDUwNTY1YjYwMDA4MDYwNDA4Mzg1MDMxMjE1NjEwMWQzNTc2MTAxZDI2MTAxNTk1NjViNWI2MDAwNjEwMWUxODU4Mjg2MDE2MTAxYTc1NjViOTI1MDUwNjAyMDYxMDFmMjg1ODI4NjAxNjEwMWE3NTY1YjkxNTA1MDkyNTA5MjkwNTA1NjViNjEwMjA1ODE2MTAxN2U1NjViODI1MjUwNTA1NjViNjAwMDgxOTA1MDkxOTA1MDU2NWI2MTAyMWU4MTYxMDIwYjU2NWI4MjUyNTA1MDU2NWI2MDAwNjA2MDgyMDE5MDUwNjEwMjM5NjAwMDgzMDE4NjYxMDFmYzU2NWI2MTAyNDY2MDIwODMwMTg1NjEwMWZjNTY1YjYxMDI1MzYwNDA4MzAxODQ2MTAyMTU1NjViOTQ5MzUwNTA1MDUwNTY1YjYwMDA4MTUxOTA1MDkxOTA1MDU2NWI2MDAwODE5MDUwOTI5MTUwNTA1NjViNjAwMDViODM4MTEwMTU2MTAyOGY1NzgwODIwMTUxODE4NDAxNTI2MDIwODEwMTkwNTA2MTAyNzQ1NjViNjAwMDg0ODQwMTUyNTA1MDUwNTA1NjViNjAwMDYxMDJhNjgyNjEwMjViNTY1YjYxMDJiMDgxODU2MTAyNjY1NjViOTM1MDYxMDJjMDgxODU2MDIwODYwMTYxMDI3MTU2NWI4MDg0MDE5MTUwNTA5MjkxNTA1MDU2NWI2MDAwNjEwMmQ4ODI4NDYxMDI5YjU2NWI5MTUwODE5MDUwOTI5MTUwNTA1NmZlYTI2NDY5NzA2NjczNTgyMjEyMjBmOWJlZmRjY2FkYzkyMjU2NGQ0MzY2NDdmM2UyMTdkNDVlMTZiNjNlNzMxNDRjNjEyOWMwYWFjNjYxM2E4ZTdjNjQ3MzZmNmM2MzQzMDAwODEwMDAzMw==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwpXUkoAK3dzHucizcfF/VZP6mqlR/MsKq5fFnTsTNB5sbUqw5wssZmtDqy0LyDAjNGgwI07XkrQYQy7er1QEiDwoJCJe15K0GENsXEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQiXteStBhDdFxICGAISAhgDGIDa/6YBIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CSQoDGNgMGiYyJAoiEiAKqOIQZMYeq4biqcFkVltOeppBRhBuCmzQOow5WhEOkiCQoQ9CBQiAztoDUgBaAGoLY2VsbGFyIGRvb3I=","b64Record":"CiUIFiIDGNkMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjD2l3cUq5bjgXCsqMQ3Bl0G+54pIFar0+e7kQMFLDLOale+wFDhWu6D1oBZVzJrxIwaDAjTteStBhDb7vHWAyIPCgkIl7XkrQYQ3RcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQs4ICgMY2QwSmQZggGBAUjSAFWEAEFdgAID9W1BgBDYQYQArV2AANWDgHIBj78OIJhRhADBXW2AAgP1bYQBKYASANgOBAZBhAEWRkGEBvFZbYQBMVlsAW2AAgFSQYQEACpAEc///////////////////////////FnP//////////////////////////xZj4fIcZ2DgG4ODZ3//////////YEBRYCQBYQCok5KRkGECJFZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQESkZBhAsxWW2AAYEBRgIMDgYVa9JFQUD2AYACBFGEBTVdgQFGRUGAfGWA/PQEWggFgQFI9glI9YABgIIQBPmEBUlZbYGCRUFtQUFBQUFZbYACA/VtgAHP//////////////////////////4IWkFCRkFBWW2AAYQGJgmEBXlZbkFCRkFBWW2EBmYFhAX5WW4EUYQGkV2AAgP1bUFZbYACBNZBQYQG2gWEBkFZbkpFQUFZbYACAYECDhQMSFWEB01dhAdJhAVlWW1tgAGEB4YWChgFhAadWW5JQUGAgYQHyhYKGAWEBp1ZbkVBQklCSkFBWW2ECBYFhAX5WW4JSUFBWW2AAgZBQkZBQVlthAh6BYQILVluCUlBQVltgAGBgggGQUGECOWAAgwGGYQH8VlthAkZgIIMBhWEB/FZbYQJTYECDAYRhAhVWW5STUFBQUFZbYACBUZBQkZBQVltgAIGQUJKRUFBWW2AAW4OBEBVhAo9XgIIBUYGEAVJgIIEBkFBhAnRWW2AAhIQBUlBQUFBWW2AAYQKmgmECW1ZbYQKwgYVhAmZWW5NQYQLAgYVgIIYBYQJxVluAhAGRUFCSkVBQVltgAGEC2IKEYQKbVluRUIGQUJKRUFBW/qJkaXBmc1giEiD5vv3MrckiVk1DZkfz4hfUXha2PnMUTGEpwKrGYTqOfGRzb2xjQwAIEAAzIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACjAmgw6AxjZDEoWChQAAAAAAAAAAAAAAAAAAAAAAAAGWXIHCgMY2QwQAVIWCgkKAhgCEP+yxQ0KCQoCGGIQgLPFDQ=="},{"b64Body":"Cg8KCQiYteStBhDjFxICGAISAhgDGL/TjhQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGNcMEgMY1Qw=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwLdHv8bzyhxnkoC7e3ukmIa+nJg4aVVExuSSng+OgZ+hCxefSo4q3KEWat8fSQOX6GgwI1LXkrQYQo/2I3wEiDwoJCJi15K0GEOMXEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQiYteStBhDpFxICGAISAhgDGL/TjhQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGNkMEgMY1Qw=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwK09ZIKrwLLj62aQOy6C4HkUP8sqBKtd/MD3Zd5DMt0gq+lk3+auU52e6P5Th5zQ6GgwI1LXkrQYQg6vbwwMiDwoJCJi15K0GEOkXEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQiZteStBhDwFxICGAISAhgDGMC9o6kBIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46cAoDGNcMEMCWsQIiZPpQqyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlQ=","b64Record":"CiUIFiIDGNcMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBmEKpyOtdbQtGgLPXh3b/Wh8Cc+FnUqQWGLgAGImoj7TRoRK/0doT/5+hrFKIouAsaDAjVteStBhDrgfrMAyIPCgkImbXkrQYQ8BcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCA/rWHATqgBQoDGNcMIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAgAAIAAACAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAgAAAAAAAAAAAAEAAAAAAAAAACiAkvQBMpADCgMY1QwSgAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAACAAAgAAAIAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAACAAAAAAAAAAAAAQAAAAAAAAAAGiCMW+Hl6+x9W9FPcUJ9HoTz3QMUwPeyKR5bIArIx8O5JRogAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlcaIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZUIiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//////////1IYCgoKAhgCEP/7644CCgoKAhhiEID8644C"},{"b64Body":"ChEKCQiZteStBhDwFxICGAIgAYIDGxoZCgMY1QwSAxjXDBoDGNQMIP//////////fw==","b64Record":"CgIIFhIwd9o2cL6cP3FTChGRe/xLRMv0LkG2ZjBBROpSPyosc+4s3iPwPCaB4GssfKzRRNp+GgwI1bXkrQYQ7IH6zAMiEQoJCJm15K0GEPAXEgIYAiABOrsBCgMY5wISQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEo4v0qUIXnpQJiZOHyHGcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/////////9qAxjXDFIAegwI1bXkrQYQ64H6zAM="}]},"WhitelistNegativeCases":{"placeholderNum":1626,"encodedItems":[{"b64Body":"Cg8KCQifteStBhCKGBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIFLp4Ro1Bj5cKuIZvNILQRj+0Ri9vieZ8KxiCm54/NT0EICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGNsMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBjveodmN4pfC26IWMomOKrYZnYgNXJqseV+gjtwF4gtMr0GwQawe5jxEZFiKJeyt4aCwjbteStBhCjteR1Ig8KCQifteStBhCKGBICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUhkKCgoCGAIQ/6fWuQcKCwoDGNsMEICo1rkH"},{"b64Body":"Cg8KCQifteStBhCMGBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIGR3OWCFPAJm24Vkxftt5D0uzmizX2q+uttw3zsfGmeJEICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGNwMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjA5Jbhw+wlFp14kxdr7dKUI3IzdNRz1rUINbk/4qrc/cqgvk/IosO721RO/2fYpMuIaDAjbteStBhD77c/aAiIPCgkIn7XkrQYQjBgSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxjcDBCAqNa5Bw=="},{"b64Body":"Cg8KCQigteStBhCOGBICGAISAhgDGPHv7egCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qATUKDWZ1bmdpYmxlVG9rZW4SCEFPUlFOVURDIP//////////fyoDGNsMagsI3IO/sQYQiLGMag==","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGN0MEjBu2EqeAz8/kRshcbQixXHsOopWr+7vZhDVn4G7vLnJUVUEPLceyVlDIirQDyOonWwaCwjcteStBhDz371/Ig8KCQigteStBhCOGBICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgBaFwoDGN0MEhAKAxjbDBD+//////////8BcgoKAxjdDBIDGNsM"},{"b64Body":"Cg8KCQigteStBhCQGBICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAjcg7+xBhCo7cfbAhptCiISIGX2H1+IBk+BlFxEYJS63xloFSV3SKzncWOxh1+U1eF7CiM6IQJ3J24TVIhY2Faf8EHe4SAH46D2nBgns7EKB5gAk3lUjgoiEiArhozNjmQClPfLCBG8cs2RlWfv5h/K+jTqdPeYKAXwwCIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGN4MKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjA4R1bwmvmJEMdKl/zpxNmvl7vo1G9hl28QISvS7liJK0ZmMn+shgn3Rmj1T76mMgEaDAjcteStBhCz6rrkAiIPCgkIoLXkrQYQkBgSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQihteStBhCUGBICGAISAhgDGK3i3jAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBjAgKAxjeDCKECDYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMDFlMjgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDAyYjU3NjAwMDM1NjBlMDFjODA2M2ZhNTBhYjIwMTQ2MTAwMzA1NzViNjAwMDgwZmQ1YjYxMDA0YTYwMDQ4MDM2MDM4MTAxOTA2MTAwNDU5MTkwNjEwMTIxNTY1YjYxMDA0YzU2NWIwMDViODI3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzZWZjMzg4MjY4MzgzNjA0MDUxODM2M2ZmZmZmZmZmMTY2MGUwMWI4MTUyNjAwNDAxNjEwMDg3OTI5MTkwNjEwMTgzNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NzgwM2IxNTgwMTU2MTAwYTE1NzYwMDA4MGZkNWI1MDVhZjExNTgwMTU2MTAwYjU1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA1MDUwNTA1NjViNjAwMDgwZmQ1YjYwMDA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MjE2OTA1MDkxOTA1MDU2NWI2MDAwNjEwMGVlODI2MTAwYzM1NjViOTA1MDkxOTA1MDU2NWI2MTAwZmU4MTYxMDBlMzU2NWI4MTE0NjEwMTA5NTc2MDAwODBmZDViNTA1NjViNjAwMDgxMzU5MDUwNjEwMTFiODE2MTAwZjU1NjViOTI5MTUwNTA1NjViNjAwMDgwNjAwMDYwNjA4NDg2MDMxMjE1NjEwMTNhNTc2MTAxMzk2MTAwYmU1NjViNWI2MDAwNjEwMTQ4ODY4Mjg3MDE2MTAxMGM1NjViOTM1MDUwNjAyMDYxMDE1OTg2ODI4NzAxNjEwMTBjNTY1YjkyNTA1MDYwNDA2MTAxNmE4NjgyODcwMTYxMDEwYzU2NWI5MTUwNTA5MjUwOTI1MDkyNTY1YjYxMDE3ZDgxNjEwMGUzNTY1YjgyNTI1MDUwNTY1YjYwMDA2MDQwODIwMTkwNTA2MTAxOTg2MDAwODMwMTg1NjEwMTc0NTY1YjYxMDFhNTYwMjA4MzAxODQ2MTAxNzQ1NjViOTM5MjUwNTA1MDU2ZmVhMjY0Njk3MDY2NzM1ODIyMTIyMDIwN2Y4OTNlMzNlMzI5ZWQ5ODBlNDExYmU3YTNhMGE4NjEzZmExZDFkZmYwMmIwMDM3MTY5YjkzYmIwYzcxMDA2NDczNmY2YzYzNDMwMDA4MTAwMDMz","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwb+CvRwbM2kMJsrnwm3fNjbOnYW2yyFm5YYpJ4oI/6fZGE3yHOHV6oVlL17tJGz++GgwI3bXkrQYQs++FiQEiDwoJCKG15K0GEJQYEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQihteStBhCWGBICGAISAhgDGIDa/6YBIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CSQoDGN4MGiYyJAoiEiAKqOIQZMYeq4biqcFkVltOeppBRhBuCmzQOow5WhEOkiCQoQ9CBQiAztoDUgBaAGoLY2VsbGFyIGRvb3I=","b64Record":"CiUIFiIDGN8MKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCDCoz72/IKxY2LFQdEyTdvph1ykNTdCpQQFbWo6NpEGEQ5/PiZX92qXrxgb/cTqNwaDAjdteStBhC7nMbtAiIPCgkIobXkrQYQlhgSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQpcGCgMY3wwS4gNggGBAUjSAFWEAEFdgAID9W1BgBDYQYQArV2AANWDgHIBj+lCrIBRhADBXW2AAgP1bYQBKYASANgOBAZBhAEWRkGEBIVZbYQBMVlsAW4Jz//////////////////////////8WY+/DiCaDg2BAUYNj/////xZg4BuBUmAEAWEAh5KRkGEBg1ZbYABgQFGAgwOBYACHgDsVgBVhAKFXYACA/VtQWvEVgBVhALVXPWAAgD49YAD9W1BQUFBQUFBWW2AAgP1bYABz//////////////////////////+CFpBQkZBQVltgAGEA7oJhAMNWW5BQkZBQVlthAP6BYQDjVluBFGEBCVdgAID9W1BWW2AAgTWQUGEBG4FhAPVWW5KRUFBWW2AAgGAAYGCEhgMSFWEBOldhATlhAL5WW1tgAGEBSIaChwFhAQxWW5NQUGAgYQFZhoKHAWEBDFZbklBQYEBhAWqGgocBYQEMVluRUFCSUJJQklZbYQF9gWEA41ZbglJQUFZbYABgQIIBkFBhAZhgAIMBhWEBdFZbYQGlYCCDAYRhAXRWW5OSUFBQVv6iZGlwZnNYIhIgIH+JPjPjKe2YDkEb56OgqGE/odHf8CsANxabk7sMcQBkc29sY0MACBAAMyKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAowJoMOgMY3wxKFgoUAAAAAAAAAAAAAAAAAAAAAAAABl9yBwoDGN8MEAFSFgoJCgIYAhD/ssUNCgkKAhhiEICzxQ0="},{"b64Body":"Cg8KCQiiteStBhCYGBICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjgESCwjeg7+xBhCwjOV0Gm0KIhIgD++k67gT/wmo8VAtE/pB2wolfG1wCOw6Pn/c6WqAebIKIzohAwz1d6gg7fDSZpV4z3WhvHSmfK9d/biOS2kBA4Jf/p0LCiISIBUovhBXzE9FXOqv2Y72JReTq8+Z9st0HEeOt/IkztkHIgxIZWxsbyBXb3JsZCEqADIA","b64Record":"CiUIFhoDGOAMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDzbSQbju27YoAebAu4kRFg6HtrfS8ZiT+xYYF7hI7Sg+H4g5dA1yOq4aGnFgksDVkaDAjeteStBhDz0rKSASIPCgkIorXkrQYQmBgSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiiteStBhCcGBICGAISAhgDGN6YhDMiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBmgwKAxjgDCKSDDYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMDJlOTgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDAyYjU3NjAwMDM1NjBlMDFjODA2M2VmYzM4ODI2MTQ2MTAwMzA1NzViNjAwMDgwZmQ1YjYxMDA0YTYwMDQ4MDM2MDM4MTAxOTA2MTAwNDU5MTkwNjEwMTlhNTY1YjYxMDA0YzU2NWIwMDViODE3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzMDk1ZWE3YjM2MGUwMWI4MjY3N2ZmZmZmZmZmZmZmZmZmZjYwNDA1MTYwMjQwMTYxMDA4NjkyOTE5MDYxMDIwMjU2NWI2MDQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI5MDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTAwZjA5MTkwNjEwMjljNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTg1NWFmNDkxNTA1MDNkODA2MDAwODExNDYxMDEyYjU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMDEzMDU2NWI2MDYwOTE1MDViNTA1MDUwNTA1MDU2NWI2MDAwODBmZDViNjAwMDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgyMTY5MDUwOTE5MDUwNTY1YjYwMDA2MTAxNjc4MjYxMDEzYzU2NWI5MDUwOTE5MDUwNTY1YjYxMDE3NzgxNjEwMTVjNTY1YjgxMTQ2MTAxODI1NzYwMDA4MGZkNWI1MDU2NWI2MDAwODEzNTkwNTA2MTAxOTQ4MTYxMDE2ZTU2NWI5MjkxNTA1MDU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMDFiMTU3NjEwMWIwNjEwMTM3NTY1YjViNjAwMDYxMDFiZjg1ODI4NjAxNjEwMTg1NTY1YjkyNTA1MDYwMjA2MTAxZDA4NTgyODYwMTYxMDE4NTU2NWI5MTUwNTA5MjUwOTI5MDUwNTY1YjYxMDFlMzgxNjEwMTVjNTY1YjgyNTI1MDUwNTY1YjYwMDA4MTkwNTA5MTkwNTA1NjViNjEwMWZjODE2MTAxZTk1NjViODI1MjUwNTA1NjViNjAwMDYwNDA4MjAxOTA1MDYxMDIxNzYwMDA4MzAxODU2MTAxZGE1NjViNjEwMjI0NjAyMDgzMDE4NDYxMDFmMzU2NWI5MzkyNTA1MDUwNTY1YjYwMDA4MTUxOTA1MDkxOTA1MDU2NWI2MDAwODE5MDUwOTI5MTUwNTA1NjViNjAwMDViODM4MTEwMTU2MTAyNWY1NzgwODIwMTUxODE4NDAxNTI2MDIwODEwMTkwNTA2MTAyNDQ1NjViNjAwMDg0ODQwMTUyNTA1MDUwNTA1NjViNjAwMDYxMDI3NjgyNjEwMjJiNTY1YjYxMDI4MDgxODU2MTAyMzY1NjViOTM1MDYxMDI5MDgxODU2MDIwODYwMTYxMDI0MTU2NWI4MDg0MDE5MTUwNTA5MjkxNTA1MDU2NWI2MDAwNjEwMmE4ODI4NDYxMDI2YjU2NWI5MTUwODE5MDUwOTI5MTUwNTA1NmZlYTI2NDY5NzA2NjczNTgyMjEyMjA2MzkxZWM5NTZlYjk4MzUwMmM4N2NjMTNmMTVhMGFjMjZjOGE2ZWU2NTFiZmJlMDE3NWMxYjViNTVjYWNkZTZkNjQ3MzZmNmM2MzQzMDAwODEwMDAzMw==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwb2FA5Osyjv/ftYLn+NkG6IYJrqdmXlNp1hl9cOhSTGDTBcOR8nGxJPiXnXd3u+WwGgwI3rXkrQYQu9nq9gIiDwoJCKK15K0GEJwYEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQijteStBhCeGBICGAISAhgDGIDa/6YBIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CSQoDGOAMGiYyJAoiEiAKqOIQZMYeq4biqcFkVltOeppBRhBuCmzQOow5WhEOkiCQoQ9CBQiAztoDUgBaAGoLY2VsbGFyIGRvb3I=","b64Record":"CiUIFiIDGOEMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAv0WkW69MPZf0o1RZwvLqdBi1QnVsh1WvrAkzn6QbxqizsYgKYJicbKobnimf5GZYaCwjfteStBhCLpqR/Ig8KCQijteStBhCeGBICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMMDZ4gZCnggKAxjhDBLpBWCAYEBSNIAVYQAQV2AAgP1bUGAENhBhACtXYAA1YOAcgGPvw4gmFGEAMFdbYACA/VthAEpgBIA2A4EBkGEARZGQYQGaVlthAExWWwBbgXP//////////////////////////xZjCV6ns2DgG4Jnf/////////9gQFFgJAFhAIaSkZBhAgJWW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEA8JGQYQKcVltgAGBAUYCDA4GFWvSRUFA9gGAAgRRhAStXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hATBWW2BgkVBbUFBQUFBWW2AAgP1bYABz//////////////////////////+CFpBQkZBQVltgAGEBZ4JhATxWW5BQkZBQVlthAXeBYQFcVluBFGEBgldgAID9W1BWW2AAgTWQUGEBlIFhAW5WW5KRUFBWW2AAgGBAg4UDEhVhAbFXYQGwYQE3VltbYABhAb+FgoYBYQGFVluSUFBgIGEB0IWChgFhAYVWW5FQUJJQkpBQVlthAeOBYQFcVluCUlBQVltgAIGQUJGQUFZbYQH8gWEB6VZbglJQUFZbYABgQIIBkFBhAhdgAIMBhWEB2lZbYQIkYCCDAYRhAfNWW5OSUFBQVltgAIFRkFCRkFBWW2AAgZBQkpFQUFZbYABbg4EQFWECX1eAggFRgYQBUmAggQGQUGECRFZbYACEhAFSUFBQUFZbYABhAnaCYQIrVlthAoCBhWECNlZbk1BhApCBhWAghgFhAkFWW4CEAZFQUJKRUFBWW2AAYQKogoRhAmtWW5FQgZBQkpFQUFb+omRpcGZzWCISIGOR7JVuuYNQLIfME/FaCsJsim7mUb++AXXBtbVcrN5tZHNvbGNDAAgQADMigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMCaDDoDGOEMShYKFAAAAAAAAAAAAAAAAAAAAAAAAAZhcgcKAxjhDBABUhYKCQoCGAIQ/7LFDQoJCgIYYhCAs8UN"},{"b64Body":"Cg8KCQijteStBhCgGBICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAjfg7+xBhCAr7LvAhptCiISIOItDx6coemMhnUYeziHJ2uGLstYzlw5opSPkBwY3s5ACiM6IQPtxCSwfXalYR+dfGSdFr/f1Nk3i31SPJM5sxYncY3aGgoiEiAQx4lijuPyBy5s+y5QOxom5KrulK0OIy799kjU8toiuiIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGOIMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAPYe8FggP18deA6rZf1qLADjfnI+QLtIrTQUtpVD6vsjqOQgJ4gdTet5/4VONRyLoaDAjfteStBhDD8dGAAyIPCgkIo7XkrQYQoBgSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQikteStBhCkGBICGAISAhgDGOWwgzQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoB/g0KAxjiDCL2DTYwODA2MDQwNTI2MTAxNjc2MDAwODA2MTAxMDAwYTgxNTQ4MTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMTkxNjkwODM3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjAyMTc5MDU1NTAzNDgwMTU2MTAwNTI1NzYwMDA4MGZkNWI1MDYxMDMxOTgwNjEwMDYyNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDAyYjU3NjAwMDM1NjBlMDFjODA2M2VmYzM4ODI2MTQ2MTAwMzA1NzViNjAwMDgwZmQ1YjYxMDA0YTYwMDQ4MDM2MDM4MTAxOTA2MTAwNDU5MTkwNjEwMWJjNTY1YjYxMDA0YzU2NWIwMDViNjAwMDgwNTQ5MDYxMDEwMDBhOTAwNDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2M2UxZjIxYzY3NjBlMDFiODM4MzY3N2ZmZmZmZmZmZmZmZmZmZjYwNDA1MTYwMjQwMTYxMDBhODkzOTI5MTkwNjEwMjI0NTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMDExMjkxOTA2MTAyY2M1NjViNjAwMDYwNDA1MTgwODMwMzgxODU1YWY0OTE1MDUwM2Q4MDYwMDA4MTE0NjEwMTRkNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjEwMTUyNTY1YjYwNjA5MTUwNWI1MDUwNTA1MDUwNTY1YjYwMDA4MGZkNWI2MDAwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIxNjkwNTA5MTkwNTA1NjViNjAwMDYxMDE4OTgyNjEwMTVlNTY1YjkwNTA5MTkwNTA1NjViNjEwMTk5ODE2MTAxN2U1NjViODExNDYxMDFhNDU3NjAwMDgwZmQ1YjUwNTY1YjYwMDA4MTM1OTA1MDYxMDFiNjgxNjEwMTkwNTY1YjkyOTE1MDUwNTY1YjYwMDA4MDYwNDA4Mzg1MDMxMjE1NjEwMWQzNTc2MTAxZDI2MTAxNTk1NjViNWI2MDAwNjEwMWUxODU4Mjg2MDE2MTAxYTc1NjViOTI1MDUwNjAyMDYxMDFmMjg1ODI4NjAxNjEwMWE3NTY1YjkxNTA1MDkyNTA5MjkwNTA1NjViNjEwMjA1ODE2MTAxN2U1NjViODI1MjUwNTA1NjViNjAwMDgxOTA1MDkxOTA1MDU2NWI2MTAyMWU4MTYxMDIwYjU2NWI4MjUyNTA1MDU2NWI2MDAwNjA2MDgyMDE5MDUwNjEwMjM5NjAwMDgzMDE4NjYxMDFmYzU2NWI2MTAyNDY2MDIwODMwMTg1NjEwMWZjNTY1YjYxMDI1MzYwNDA4MzAxODQ2MTAyMTU1NjViOTQ5MzUwNTA1MDUwNTY1YjYwMDA4MTUxOTA1MDkxOTA1MDU2NWI2MDAwODE5MDUwOTI5MTUwNTA1NjViNjAwMDViODM4MTEwMTU2MTAyOGY1NzgwODIwMTUxODE4NDAxNTI2MDIwODEwMTkwNTA2MTAyNzQ1NjViNjAwMDg0ODQwMTUyNTA1MDUwNTA1NjViNjAwMDYxMDJhNjgyNjEwMjViNTY1YjYxMDJiMDgxODU2MTAyNjY1NjViOTM1MDYxMDJjMDgxODU2MDIwODYwMTYxMDI3MTU2NWI4MDg0MDE5MTUwNTA5MjkxNTA1MDU2NWI2MDAwNjEwMmQ4ODI4NDYxMDI5YjU2NWI5MTUwODE5MDUwOTI5MTUwNTA1NmZlYTI2NDY5NzA2NjczNTgyMjEyMjBmOWJlZmRjY2FkYzkyMjU2NGQ0MzY2NDdmM2UyMTdkNDVlMTZiNjNlNzMxNDRjNjEyOWMwYWFjNjYxM2E4ZTdjNjQ3MzZmNmM2MzQzMDAwODEwMDAzMw==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwz/Wxg572sCSLh3oWoxbmjWiRNqR+hfeLpAnPOdOf9ZLYKFbxSGnP2D38JS6VbaSyGgwI4LXkrQYQ29TSiAEiDwoJCKS15K0GEKQYEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQikteStBhCmGBICGAISAhgDGIDa/6YBIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CSQoDGOIMGiYyJAoiEiAKqOIQZMYeq4biqcFkVltOeppBRhBuCmzQOow5WhEOkiCQoQ9CBQiAztoDUgBaAGoLY2VsbGFyIGRvb3I=","b64Record":"CiUIFiIDGOMMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBUvvyO5oyWnXGGNIwgYBcXuqROOFdI7JlSAwl9VmAsiOd+zirQmB39l+WfE7lw4ZwaDAjgteStBhDjodiKAyIPCgkIpLXkrQYQphgSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQs4ICgMY4wwSmQZggGBAUjSAFWEAEFdgAID9W1BgBDYQYQArV2AANWDgHIBj78OIJhRhADBXW2AAgP1bYQBKYASANgOBAZBhAEWRkGEBvFZbYQBMVlsAW2AAgFSQYQEACpAEc///////////////////////////FnP//////////////////////////xZj4fIcZ2DgG4ODZ3//////////YEBRYCQBYQCok5KRkGECJFZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQESkZBhAsxWW2AAYEBRgIMDgYVa9JFQUD2AYACBFGEBTVdgQFGRUGAfGWA/PQEWggFgQFI9glI9YABgIIQBPmEBUlZbYGCRUFtQUFBQUFZbYACA/VtgAHP//////////////////////////4IWkFCRkFBWW2AAYQGJgmEBXlZbkFCRkFBWW2EBmYFhAX5WW4EUYQGkV2AAgP1bUFZbYACBNZBQYQG2gWEBkFZbkpFQUFZbYACAYECDhQMSFWEB01dhAdJhAVlWW1tgAGEB4YWChgFhAadWW5JQUGAgYQHyhYKGAWEBp1ZbkVBQklCSkFBWW2ECBYFhAX5WW4JSUFBWW2AAgZBQkZBQVlthAh6BYQILVluCUlBQVltgAGBgggGQUGECOWAAgwGGYQH8VlthAkZgIIMBhWEB/FZbYQJTYECDAYRhAhVWW5STUFBQUFZbYACBUZBQkZBQVltgAIGQUJKRUFBWW2AAW4OBEBVhAo9XgIIBUYGEAVJgIIEBkFBhAnRWW2AAhIQBUlBQUFBWW2AAYQKmgmECW1ZbYQKwgYVhAmZWW5NQYQLAgYVgIIYBYQJxVluAhAGRUFCSkVBQVltgAGEC2IKEYQKbVluRUIGQUJKRUFBW/qJkaXBmc1giEiD5vv3MrckiVk1DZkfz4hfUXha2PnMUTGEpwKrGYTqOfGRzb2xjQwAIEAAzIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACjAmgw6AxjjDEoWChQAAAAAAAAAAAAAAAAAAAAAAAAGY3IHCgMY4wwQAVIWCgkKAhgCEP+yxQ0KCQoCGGIQgLPFDQ=="},{"b64Body":"Cg8KCQilteStBhCsGBICGAISAhgDGL/TjhQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGN8MEgMY3Qw=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwWFvoRMnQ9An4ZmsB6waotDh/CuUuK81D9bxa6joTIDIU8OkejzbJvv4Hu0ob5PQrGgwI4bXkrQYQo4ubkgEiDwoJCKW15K0GEKwYEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQilteStBhCyGBICGAISAhgDGL/TjhQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGOEMEgMY3Qw=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwYggrQZevT4fzCafnI9RIVajIm2nE7HRBBzfFoNZSH2lGMgaEYv5G5yUTXmyQNX0jGgwI4bXkrQYQy8GylAMiDwoJCKW15K0GELIYEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQimteStBhC4GBICGAISAhgDGL/TjhQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGOMMEgMY3Qw=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw9cj9rrQEAsvSRt07jgQC8j5tIOs8VcRUcRq/R1VCwf3sZD1HD2q1TFESlj7m+UVtGgwI4rXkrQYQg+fUmwEiDwoJCKa15K0GELgYEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQinteStBhC/GBICGAISAhgDGMC9o6kBIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46cAoDGN8MEMCWsQIiZPpQqyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGYwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlw=","b64Record":"CiUIFiIDGN8MKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDZ7iFWp0I67KXrxEB4qfUHHWd8BcodXTPjrEa8aAOCXeoyNGrCzOoAxgYIJuu1as4aDAjjteStBhDj4IGmASIPCgkIp7XkrQYQvxgSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDvgoikATqNAgoDGN8MIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACiZ46cCUhgKCgoCGAIQ3YWQyAIKCgoCGGIQ3oWQyAI="},{"b64Body":"Cg8KCQinteStBhDFGBICGAISAhgDGMC9o6kBIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46cAoDGN8MEMCWsQIiZPpQqyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlw=","b64Record":"CiUIFiIDGN8MKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAwH/dl9CdWdl22u3/N24TpLkhfrvNnBNQZl3HoChbLQkEDearEyG3kGcw5pyuVj1gaDAjjteStBhCTufSmAyIPCgkIp7XkrQYQxRgSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjD2ksKhATqNAgoDGN8MIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACjal6MCUhgKCgoCGAIQ66WEwwIKCgoCGGIQ7KWEwwI="}]},"RequiresTopLevelSignatureOrApprovalDependingOnControllingProperty":{"placeholderNum":1636,"encodedItems":[{"b64Body":"Cg8KCQitteStBhDfGBICGAISAhgDGMae0hUiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiM6IQNasvCPonQmpE9QHAt48Na9MyM+M1tgLE3Clfae92HwURCAlOvcA0oFCIDO2gNwAQ==","b64Record":"CiUIFhIDGOUMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjC1mid5VHrSo4+ZtgkdRuDTg/TD12gGzoblh/KxtJidX4wqaBau4n5nxC+KvLxBqa8aCwjpteStBhCLvbAzIg8KCQitteStBhDfGBICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUhkKCgoCGAIQ/6fWuQcKCwoDGOUMEICo1rkH"},{"b64Body":"Cg8KCQitteStBhDhGBICGAISAhgDGMae0hUiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiM6IQKkKt58jBVutZjBBnbptr3iGr1Bh93ZgFV68R4S7jMYCBCAlOvcA0oFCIDO2gNwAQ==","b64Record":"CiUIFhIDGOYMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBBliduB8G78oKurlRX0+dAfbhHBYucx4AFf+fIUlXUo2u/lTz6QZpUBRnsE8+YTVIaDAjpteStBhCDvruXAiIPCgkIrbXkrQYQ4RgSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxjmDBCAqNa5Bw=="},{"b64Body":"Cg8KCQiuteStBhDjGBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIOGQqo99t9qo8dnsK4bC7QA8hXH1YX0a83B/dJkysaMwEICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGOcMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCMTuJOY4+RqNlFAah/yoDKM7zugPJvrB5Ars7s9FMPUGQC4hYhadSI1boXofpfkC4aCwjqteStBhD7ho08Ig8KCQiuteStBhDjGBICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUhkKCgoCGAIQ/6fWuQcKCwoDGOcMEICo1rkH"},{"b64Body":"Cg8KCQiuteStBhDlGBICGAISAhgDGPHv7egCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAS8KDWZ1bmdpYmxlVG9rZW4SCE5QWElXWlZNIOgHKgMY5wxqDAjqg7+xBhCoxcGcAg==","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGOgMEjCUnqMEF/2JnniPqvE1QnF1Fngj4+I0GZMxj2JDlXNzRHjx0wiOnTKov4hvgRJArLYaDAjqteStBhCb+IehAiIPCgkIrrXkrQYQ5RgSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWg8KAxjoDBIICgMY5wwQ0A9yCgoDGOgMEgMY5ww="},{"b64Body":"Cg8KCQivteStBhDnGBICGAISAhgDGOufNiICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOchsSGQoDGOgMEggKAxjnDBCPAxIICgMY5QwQkAM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwrMqe4cBl65ptSuICjWLbWRrxaWCq9Pd8JpSZgXYsg5SOc0/TgfCw2vngVD9lBUoyGgsI67XkrQYQ48KxRiIPCgkIr7XkrQYQ5xgSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWhkKAxjoDBIICgMY5QwQkAMSCAoDGOcMEI8DcgoKAxjoDBIDGOUM"},{"b64Body":"Cg8KCQivteStBhDpGBICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAjrg7+xBhCox9KkAhptCiISIGfOVhIbrFOg3uqY+LXCu05aiRizORIlK2kN8KRRFhzPCiM6IQMu3Z2xXZxnBriNYps5c9M4TOOvl1q8Cq2k+bMplveY5AoiEiBEExVW+rwly8kiRBIMXboZHTR0FGD7a7+1en33uuaG/SIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGOkMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAup3D7GGV4wgMeEYPI3McaIPaXzhpOfXRGa1l66sMRS410O7gwfI5/Yd2b7/CM7SIaDAjrteStBhDLhYesAiIPCgkIr7XkrQYQ6RgSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiwteStBhDtGBICGAISAhgDGIudjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxjpDCKAIDYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMGRhNzgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDAzNjU3NjAwMDM1NjBlMDFjODA2MzBlZDA3Mjc2MTQ2MTAwM2I1NzgwNjM3YzQxYWQyYzE0NjEwMDU3NTc1YjYwMDA4MGZkNWI2MTAwNTU2MDA0ODAzNjAzODEwMTkwNjEwMDUwOTE5MDYxMDgwYTU2NWI2MTAwODc1NjViMDA1YjYxMDA3MTYwMDQ4MDM2MDM4MTAxOTA2MTAwNmM5MTkwNjEwODUzNTY1YjYxMDBkZTU2NWI2MDQwNTE2MTAwN2U5MTkwNjEwODk5NTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYwMDA2MTAwOTI4MjYxMDFmMzU2NWI5MDUwNjAxNjYwMDMwYjgxMTQ2MTAwZGE1NzYwNDA1MTdmMDhjMzc5YTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgxNTI2MDA0MDE2MTAwZDE5MDYxMDkxMTU2NWI2MDQwNTE4MDkxMDM5MGZkNWI1MDUwNTY1YjYwMDA4MDYwMDA2MTAxNjc3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzN2M0MWFkMmM2MGUwMWI4NTYwNDA1MTYwMjQwMTYxMDExNTkxOTA2MTA5NDA1NjViNjA0MDUxNjAyMDgxODMwMzAzODE1MjkwNjA0MDUyOTA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjEwMTdmOTE5MDYxMDljYzU2NWI2MDAwNjA0MDUxODA4MzAzODE2MDAwODY1YWYxOTE1MDUwM2Q4MDYwMDA4MTE0NjEwMWJjNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjEwMWMxNTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTAxZDI1NzYwMTU2MTAxZTc1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTAxZTY5MTkwNjEwYTFjNTY1YjViNjAwMzBiOTI1MDUwNTA5MTkwNTA1NjViNjAwMDgwNjAwMDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjMxODlhNTU0YzYwZTAxYjg1NjA0MDUxNjAyNDAxNjEwMjJhOTE5MDYxMGQ0ZjU2NWI2MDQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI5MDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTAyOTQ5MTkwNjEwOWNjNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NjVhZjE5MTUwNTAzZDgwNjAwMDgxMTQ2MTAyZDE1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTAyZDY1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA4MTYxMDJlNzU3NjAxNTYxMDJmYzU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMDJmYjkxOTA2MTBhMWM1NjViNWI2MDAzMGI5MjUwNTA1MDkxOTA1MDU2NWI2MDAwNjA0MDUxOTA1MDkwNTY1YjYwMDA4MGZkNWI2MDAwODBmZDViNjAwMDgwZmQ1YjYwMDA2MDFmMTk2MDFmODMwMTE2OTA1MDkxOTA1MDU2NWI3ZjRlNDg3YjcxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MDAwNTI2MDQxNjAwNDUyNjAyNDYwMDBmZDViNjEwMzZhODI2MTAzMjE1NjViODEwMTgxODExMDY3ZmZmZmZmZmZmZmZmZmZmZjgyMTExNzE1NjEwMzg5NTc2MTAzODg2MTAzMzI1NjViNWI4MDYwNDA1MjUwNTA1MDU2NWI2MDAwNjEwMzljNjEwMzA4NTY1YjkwNTA2MTAzYTg4MjgyNjEwMzYxNTY1YjkxOTA1MDU2NWI2MDAwNjdmZmZmZmZmZmZmZmZmZmZmODIxMTE1NjEwM2M4NTc2MTAzYzc2MTAzMzI1NjViNWI2MDIwODIwMjkwNTA2MDIwODEwMTkwNTA5MTkwNTA1NjViNjAwMDgwZmQ1YjYwMDA4MGZkNWI2MDAwODBmZDViNjAwMDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgyMTY5MDUwOTE5MDUwNTY1YjYwMDA2MTA0MTM4MjYxMDNlODU2NWI5MDUwOTE5MDUwNTY1YjYxMDQyMzgxNjEwNDA4NTY1YjgxMTQ2MTA0MmU1NzYwMDA4MGZkNWI1MDU2NWI2MDAwODEzNTkwNTA2MTA0NDA4MTYxMDQxYTU2NWI5MjkxNTA1MDU2NWI2MDAwNjdmZmZmZmZmZmZmZmZmZmZmODIxMTE1NjEwNDYxNTc2MTA0NjA2MTAzMzI1NjViNWI2MDIwODIwMjkwNTA2MDIwODEwMTkwNTA5MTkwNTA1NjViNjAwMDgxNjAwNzBiOTA1MDkxOTA1MDU2NWI2MTA0ODg4MTYxMDQ3MjU2NWI4MTE0NjEwNDkzNTc2MDAwODBmZDViNTA1NjViNjAwMDgxMzU5MDUwNjEwNGE1ODE2MTA0N2Y1NjViOTI5MTUwNTA1NjViNjAwMDYwNDA4Mjg0MDMxMjE1NjEwNGMxNTc2MTA0YzA2MTAzZGU1NjViNWI2MTA0Y2I2MDQwNjEwMzkyNTY1YjkwNTA2MDAwNjEwNGRiODQ4Mjg1MDE2MTA0MzE1NjViNjAwMDgzMDE1MjUwNjAyMDYxMDRlZjg0ODI4NTAxNjEwNDk2NTY1YjYwMjA4MzAxNTI1MDkyOTE1MDUwNTY1YjYwMDA2MTA1MGU2MTA1MDk4NDYxMDQ0NjU2NWI2MTAzOTI1NjViOTA1MDgwODM4MjUyNjAyMDgyMDE5MDUwNjA0MDg0MDI4MzAxODU4MTExMTU2MTA1MzE1NzYxMDUzMDYxMDNkOTU2NWI1YjgzNWI4MTgxMTAxNTYxMDU1YTU3ODA2MTA1NDY4ODgyNjEwNGFiNTY1Yjg0NTI2MDIwODQwMTkzNTA1MDYwNDA4MTAxOTA1MDYxMDUzMzU2NWI1MDUwNTA5MzkyNTA1MDUwNTY1YjYwMDA4MjYwMWY4MzAxMTI2MTA1Nzk1NzYxMDU3ODYxMDMxYzU2NWI1YjgxMzU2MTA1ODk4NDgyNjAyMDg2MDE2MTA0ZmI1NjViOTE1MDUwOTI5MTUwNTA1NjViNjAwMDY3ZmZmZmZmZmZmZmZmZmZmZjgyMTExNTYxMDVhZDU3NjEwNWFjNjEwMzMyNTY1YjViNjAyMDgyMDI5MDUwNjAyMDgxMDE5MDUwOTE5MDUwNTY1YjYwMDA2MDYwODI4NDAzMTIxNTYxMDVkNDU3NjEwNWQzNjEwM2RlNTY1YjViNjEwNWRlNjA2MDYxMDM5MjU2NWI5MDUwNjAwMDYxMDVlZTg0ODI4NTAxNjEwNDMxNTY1YjYwMDA4MzAxNTI1MDYwMjA2MTA2MDI4NDgyODUwMTYxMDQzMTU2NWI2MDIwODMwMTUyNTA2MDQwNjEwNjE2ODQ4Mjg1MDE2MTA0OTY1NjViNjA0MDgzMDE1MjUwOTI5MTUwNTA1NjViNjAwMDYxMDYzNTYxMDYzMDg0NjEwNTkyNTY1YjYxMDM5MjU2NWI5MDUwODA4MzgyNTI2MDIwODIwMTkwNTA2MDYwODQwMjgzMDE4NTgxMTExNTYxMDY1ODU3NjEwNjU3NjEwM2Q5NTY1YjViODM1YjgxODExMDE1NjEwNjgxNTc4MDYxMDY2ZDg4ODI2MTA1YmU1NjViODQ1MjYwMjA4NDAxOTM1MDUwNjA2MDgxMDE5MDUwNjEwNjVhNTY1YjUwNTA1MDkzOTI1MDUwNTA1NjViNjAwMDgyNjAxZjgzMDExMjYxMDZhMDU3NjEwNjlmNjEwMzFjNTY1YjViODEzNTYxMDZiMDg0ODI2MDIwODYwMTYxMDYyMjU2NWI5MTUwNTA5MjkxNTA1MDU2NWI2MDAwNjA2MDgyODQwMzEyMTU2MTA2Y2Y1NzYxMDZjZTYxMDNkZTU2NWI1YjYxMDZkOTYwNjA2MTAzOTI1NjViOTA1MDYwMDA2MTA2ZTk4NDgyODUwMTYxMDQzMTU2NWI2MDAwODMwMTUyNTA2MDIwODIwMTM1NjdmZmZmZmZmZmZmZmZmZmZmODExMTE1NjEwNzBkNTc2MTA3MGM2MTAzZTM1NjViNWI2MTA3MTk4NDgyODUwMTYxMDU2NDU2NWI2MDIwODMwMTUyNTA2MDQwODIwMTM1NjdmZmZmZmZmZmZmZmZmZmZmODExMTE1NjEwNzNkNTc2MTA3M2M2MTAzZTM1NjViNWI2MTA3NDk4NDgyODUwMTYxMDY4YjU2NWI2MDQwODMwMTUyNTA5MjkxNTA1MDU2NWI2MDAwNjEwNzY4NjEwNzYzODQ2MTAzYWQ1NjViNjEwMzkyNTY1YjkwNTA4MDgzODI1MjYwMjA4MjAxOTA1MDYwMjA4NDAyODMwMTg1ODExMTE1NjEwNzhiNTc2MTA3OGE2MTAzZDk1NjViNWI4MzViODE4MTEwMTU2MTA3ZDI1NzgwMzU2N2ZmZmZmZmZmZmZmZmZmZmY4MTExMTU2MTA3YjA1NzYxMDdhZjYxMDMxYzU2NWI1YjgwODYwMTYxMDdiZDg5ODI2MTA2Yjk1NjViODU1MjYwMjA4NTAxOTQ1MDUwNTA2MDIwODEwMTkwNTA2MTA3OGQ1NjViNTA1MDUwOTM5MjUwNTA1MDU2NWI2MDAwODI=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwH/eSAD1Jj5lPU05NTX5bjqk7Dd4Tnh0HR6rlUfklgBy2PnL07xyaltg5IZTECe7gGgsI7LXkrQYQ+8i7TyIPCgkIsLXkrQYQ7RgSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiwteStBhDzGBICGAISAhgDGKPY6zkiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBlhcSAxjpDCKOFzYwMWY4MzAxMTI2MTA3ZjE1NzYxMDdmMDYxMDMxYzU2NWI1YjgxMzU2MTA4MDE4NDgyNjAyMDg2MDE2MTA3NTU1NjViOTE1MDUwOTI5MTUwNTA1NjViNjAwMDYwMjA4Mjg0MDMxMjE1NjEwODIwNTc2MTA4MWY2MTAzMTI1NjViNWI2MDAwODIwMTM1NjdmZmZmZmZmZmZmZmZmZmZmODExMTE1NjEwODNlNTc2MTA4M2Q2MTAzMTc1NjViNWI2MTA4NGE4NDgyODUwMTYxMDdkYzU2NWI5MTUwNTA5MjkxNTA1MDU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTA4Njk1NzYxMDg2ODYxMDMxMjU2NWI1YjYwMDA2MTA4Nzc4NDgyODUwMTYxMDQzMTU2NWI5MTUwNTA5MjkxNTA1MDU2NWI2MDAwODE5MDUwOTE5MDUwNTY1YjYxMDg5MzgxNjEwODgwNTY1YjgyNTI1MDUwNTY1YjYwMDA2MDIwODIwMTkwNTA2MTA4YWU2MDAwODMwMTg0NjEwODhhNTY1YjkyOTE1MDUwNTY1YjYwMDA4MjgyNTI2MDIwODIwMTkwNTA5MjkxNTA1MDU2NWI3ZjQzNzI3OTcwNzQ2ZjIwNTQ3MjYxNmU3MzY2NjU3MjIwNDY2MTY5NmM2NTY0MDAwMDAwMDAwMDAwMDAwMDAwMDA2MDAwODIwMTUyNTA1NjViNjAwMDYxMDhmYjYwMTY4MzYxMDhiNDU2NWI5MTUwNjEwOTA2ODI2MTA4YzU1NjViNjAyMDgyMDE5MDUwOTE5MDUwNTY1YjYwMDA2MDIwODIwMTkwNTA4MTgxMDM2MDAwODMwMTUyNjEwOTJhODE2MTA4ZWU1NjViOTA1MDkxOTA1MDU2NWI2MTA5M2E4MTYxMDQwODU2NWI4MjUyNTA1MDU2NWI2MDAwNjAyMDgyMDE5MDUwNjEwOTU1NjAwMDgzMDE4NDYxMDkzMTU2NWI5MjkxNTA1MDU2NWI2MDAwODE1MTkwNTA5MTkwNTA1NjViNjAwMDgxOTA1MDkyOTE1MDUwNTY1YjYwMDA1YjgzODExMDE1NjEwOThmNTc4MDgyMDE1MTgxODQwMTUyNjAyMDgxMDE5MDUwNjEwOTc0NTY1YjYwMDA4NDg0MDE1MjUwNTA1MDUwNTY1YjYwMDA2MTA5YTY4MjYxMDk1YjU2NWI2MTA5YjA4MTg1NjEwOTY2NTY1YjkzNTA2MTA5YzA4MTg1NjAyMDg2MDE2MTA5NzE1NjViODA4NDAxOTE1MDUwOTI5MTUwNTA1NjViNjAwMDYxMDlkODgyODQ2MTA5OWI1NjViOTE1MDgxOTA1MDkyOTE1MDUwNTY1YjYwMDA4MTYwMDMwYjkwNTA5MTkwNTA1NjViNjEwOWY5ODE2MTA5ZTM1NjViODExNDYxMGEwNDU3NjAwMDgwZmQ1YjUwNTY1YjYwMDA4MTUxOTA1MDYxMGExNjgxNjEwOWYwNTY1YjkyOTE1MDUwNTY1YjYwMDA2MDIwODI4NDAzMTIxNTYxMGEzMjU3NjEwYTMxNjEwMzEyNTY1YjViNjAwMDYxMGE0MDg0ODI4NTAxNjEwYTA3NTY1YjkxNTA1MDkyOTE1MDUwNTY1YjYwMDA4MTUxOTA1MDkxOTA1MDU2NWI2MDAwODI4MjUyNjAyMDgyMDE5MDUwOTI5MTUwNTA1NjViNjAwMDgxOTA1MDYwMjA4MjAxOTA1MDkxOTA1MDU2NWI2MTBhN2U4MTYxMDQwODU2NWI4MjUyNTA1MDU2NWI2MDAwODE1MTkwNTA5MTkwNTA1NjViNjAwMDgyODI1MjYwMjA4MjAxOTA1MDkyOTE1MDUwNTY1YjYwMDA4MTkwNTA2MDIwODIwMTkwNTA5MTkwNTA1NjViNjEwYWI5ODE2MTA0NzI1NjViODI1MjUwNTA1NjViNjA0MDgyMDE2MDAwODIwMTUxNjEwYWQ1NjAwMDg1MDE4MjYxMGE3NTU2NWI1MDYwMjA4MjAxNTE2MTBhZTg2MDIwODUwMTgyNjEwYWIwNTY1YjUwNTA1MDUwNTY1YjYwMDA2MTBhZmE4MzgzNjEwYWJmNTY1YjYwNDA4MzAxOTA1MDkyOTE1MDUwNTY1YjYwMDA2MDIwODIwMTkwNTA5MTkwNTA1NjViNjAwMDYxMGIxZTgyNjEwYTg0NTY1YjYxMGIyODgxODU2MTBhOGY1NjViOTM1MDYxMGIzMzgzNjEwYWEwNTY1YjgwNjAwMDViODM4MTEwMTU2MTBiNjQ1NzgxNTE2MTBiNGI4ODgyNjEwYWVlNTY1Yjk3NTA2MTBiNTY4MzYxMGIwNjU2NWI5MjUwNTA2MDAxODEwMTkwNTA2MTBiMzc1NjViNTA4NTkzNTA1MDUwNTA5MjkxNTA1MDU2NWI2MDAwODE1MTkwNTA5MTkwNTA1NjViNjAwMDgyODI1MjYwMjA4MjAxOTA1MDkyOTE1MDUwNTY1YjYwMDA4MTkwNTA2MDIwODIwMTkwNTA5MTkwNTA1NjViNjA2MDgyMDE2MDAwODIwMTUxNjEwYmIzNjAwMDg1MDE4MjYxMGE3NTU2NWI1MDYwMjA4MjAxNTE2MTBiYzY2MDIwODUwMTgyNjEwYTc1NTY1YjUwNjA0MDgyMDE1MTYxMGJkOTYwNDA4NTAxODI2MTBhYjA1NjViNTA1MDUwNTA1NjViNjAwMDYxMGJlYjgzODM2MTBiOWQ1NjViNjA2MDgzMDE5MDUwOTI5MTUwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDkxOTA1MDU2NWI2MDAwNjEwYzBmODI2MTBiNzE1NjViNjEwYzE5ODE4NTYxMGI3YzU2NWI5MzUwNjEwYzI0ODM2MTBiOGQ1NjViODA2MDAwNWI4MzgxMTAxNTYxMGM1NTU3ODE1MTYxMGMzYzg4ODI2MTBiZGY1NjViOTc1MDYxMGM0NzgzNjEwYmY3NTY1YjkyNTA1MDYwMDE4MTAxOTA1MDYxMGMyODU2NWI1MDg1OTM1MDUwNTA1MDkyOTE1MDUwNTY1YjYwMDA2MDYwODMwMTYwMDA4MzAxNTE2MTBjN2E2MDAwODYwMTgyNjEwYTc1NTY1YjUwNjAyMDgzMDE1MTg0ODIwMzYwMjA4NjAxNTI2MTBjOTI4MjgyNjEwYjEzNTY1YjkxNTA1MDYwNDA4MzAxNTE4NDgyMDM2MDQwODYwMTUyNjEwY2FjODI4MjYxMGMwNDU2NWI5MTUwNTA4MDkxNTA1MDkyOTE1MDUwNTY1YjYwMDA2MTBjYzU4MzgzNjEwYzYyNTY1YjkwNTA5MjkxNTA1MDU2NWI2MDAwNjAyMDgyMDE5MDUwOTE5MDUwNTY1YjYwMDA2MTBjZTU4MjYxMGE0OTU2NWI2MTBjZWY4MTg1NjEwYTU0NTY1YjkzNTA4MzYwMjA4MjAyODUwMTYxMGQwMTg1NjEwYTY1NTY1YjgwNjAwMDViODU4MTEwMTU2MTBkM2Q1Nzg0ODQwMzg5NTI4MTUxNjEwZDFlODU4MjYxMGNiOTU2NWI5NDUwNjEwZDI5ODM2MTBjY2Q1NjViOTI1MDYwMjA4YTAxOTk1MDUwNjAwMTgxMDE5MDUwNjEwZDA1NTY1YjUwODI5NzUwODc5NTUwNTA1MDUwNTA1MDkyOTE1MDUwNTY1YjYwMDA2MDIwODIwMTkwNTA4MTgxMDM2MDAwODMwMTUyNjEwZDY5ODE4NDYxMGNkYTU2NWI5MDUwOTI5MTUwNTA1NmZlYTI2NDY5NzA2NjczNTgyMjEyMjAwMTg1Y2NkOGRiNzg5ZWQzMWVlYTNhNWFjYjQ4OTVhMzU4MzNkNjkzM2E0ODY5OTFkODZhMDBlMGE2ZDMxN2M5NjQ3MzZmNmM2MzQzMDAwODEwMDAzMw==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwetWsmRZyJTu6Fq8zK4DyXkIUFrFa0ctEN+ninsqqMwRBK2LZgt5al4SzziP9y/cVGgwI7LXkrQYQi8mXtAIiDwoJCLC15K0GEPMYEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQixteStBhD1GBICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGOkMGiISIM/3uW2amkFQwEzpscMT4mlwU1oI9QLys2ccx40wNMbsIJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGOoMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBh+y3AcxWBdv5er3REG6mLgvVtQ2fiP/YDuG42w0BXPiyxG9qGJdtGE0MtNEzOL78aCwjtteStBhCL2t5YIg8KCQixteStBhD1GBICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMMDZ4gZC3B0KAxjqDBKnG2CAYEBSNIAVYQAQV2AAgP1bUGAENhBhADZXYAA1YOAcgGMO0HJ2FGEAO1eAY3xBrSwUYQBXV1tgAID9W2EAVWAEgDYDgQGQYQBQkZBhCApWW2EAh1ZbAFthAHFgBIA2A4EBkGEAbJGQYQhTVlthAN5WW2BAUWEAfpGQYQiZVltgQFGAkQOQ81tgAGEAkoJhAfNWW5BQYBZgAwuBFGEA2ldgQFF/CMN5oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBUmAEAWEA0ZBhCRFWW2BAUYCRA5D9W1BQVltgAIBgAGEBZ3P//////////////////////////xZjfEGtLGDgG4VgQFFgJAFhARWRkGEJQFZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQF/kZBhCcxWW2AAYEBRgIMDgWAAhlrxkVBQPYBgAIEUYQG8V2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YQHBVltgYJFQW1CRUJFQgWEB0ldgFWEB51ZbgIBgIAGQUYEBkGEB5pGQYQocVltbYAMLklBQUJGQUFZbYACAYABhAWdz//////////////////////////8WYxiaVUxg4BuFYEBRYCQBYQIqkZBhDU9WW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEClJGQYQnMVltgAGBAUYCDA4FgAIZa8ZFQUD2AYACBFGEC0VdgQFGRUGAfGWA/PQEWggFgQFI9glI9YABgIIQBPmEC1lZbYGCRUFtQkVCR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W2AAgWADC5BQkZBQVlthCfmBYQnjVluBFGEKBFdgAID9W1BWW2AAgVGQUGEKFoFhCfBWW5KRUFBWW2AAYCCChAMSFWEKMldhCjFhAxJWW1tgAGEKQISChQFhCgdWW5FQUJKRUFBWW2AAgVGQUJGQUFZbYACCglJgIIIBkFCSkVBQVltgAIGQUGAgggGQUJGQUFZbYQp+gWEECFZbglJQUFZbYACBUZBQkZBQVltgAIKCUmAgggGQUJKRUFBWW2AAgZBQYCCCAZBQkZBQVlthCrmBYQRyVluCUlBQVltgQIIBYACCAVFhCtVgAIUBgmEKdVZbUGAgggFRYQroYCCFAYJhCrBWW1BQUFBWW2AAYQr6g4NhCr9WW2BAgwGQUJKRUFBWW2AAYCCCAZBQkZBQVltgAGELHoJhCoRWW2ELKIGFYQqPVluTUGELM4NhCqBWW4BgAFuDgRAVYQtkV4FRYQtLiIJhCu5WW5dQYQtWg2ELBlZbklBQYAGBAZBQYQs3VltQhZNQUFBQkpFQUFZbYACBUZBQkZBQVltgAIKCUmAgggGQUJKRUFBWW2AAgZBQYCCCAZBQkZBQVltgYIIBYACCAVFhC7NgAIUBgmEKdVZbUGAgggFRYQvGYCCFAYJhCnVWW1BgQIIBUWEL2WBAhQGCYQqwVltQUFBQVltgAGEL64ODYQudVltgYIMBkFCSkVBQVltgAGAgggGQUJGQUFZbYABhDA+CYQtxVlthDBmBhWELfFZbk1BhDCSDYQuNVluAYABbg4EQFWEMVVeBUWEMPIiCYQvfVluXUGEMR4NhC/dWW5JQUGABgQGQUGEMKFZbUIWTUFBQUJKRUFBWW2AAYGCDAWAAgwFRYQx6YACGAYJhCnVWW1BgIIMBUYSCA2AghgFSYQySgoJhCxNWW5FQUGBAgwFRhIIDYECGAVJhDKyCgmEMBFZbkVBQgJFQUJKRUFBWW2AAYQzFg4NhDGJWW5BQkpFQUFZbYABgIIIBkFCRkFBWW2AAYQzlgmEKSVZbYQzvgYVhClRWW5NQg2AgggKFAWENAYVhCmVWW4BgAFuFgRAVYQ09V4SEA4lSgVFhDR6FgmEMuVZblFBhDSmDYQzNVluSUGAgigGZUFBgAYEBkFBhDQVWW1CCl1CHlVBQUFBQUJKRUFBWW2AAYCCCAZBQgYEDYACDAVJhDWmBhGEM2lZbkFCSkVBQVv6iZGlwZnNYIhIgAYXM2Nt4ntMe6jpay0iVo1gz1pM6SGmR2GoA4KbTF8lkc29sY0MACBAAMyKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAowJoMOgMY6gxKFgoUAAAAAAAAAAAAAAAAAAAAAAAABmpyBwoDGOoMEAFSFgoJCgIYAhD/ssUNCgkKAhhiEICzxQ0="},{"b64Body":"Cg8KCQiyteStBhCBGRICGAISAhgDGMC/7SEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjqQAwoDGOoMEMCEPSKEAw7QcnYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZl/////////////////////////////////////////84AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=","b64Record":"CiUIISIDGOoMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBV5zUYFnZoP5ULoCdNIwGU7iPU/835/PRO7FfSI39LTy5URezXIWufcJAruzopa+saDAjuteStBhCr9ObCAiIPCgkIsrXkrQYQgRkSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCA5oobOtEBGsoBMHgwOGMzNzlhMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE2NDM3Mjc5NzA3NDZmMjA1NDcyNjE2ZTczNjY2NTcyMjA0NjYxNjk2YzY1NjQwMDAwMDAwMDAwMDAwMDAwMDAwMCiA6jBSFgoJCgIYAhD/y5U2CgkKAhhiEIDMlTY="},{"b64Body":"ChEKCQiyteStBhCBGRICGAIgAXIbEhkKAxjoDBIJCgMY5QwQYxgBEgcKAxjmDBBk","b64Record":"CgMIpAISMJlLKpFlvnC4iQNcJqbJv2ITb/SK5MH5QTKL8NhWdagcMk8CTrF0Da5exk8+cOfnBRoMCO615K0GEKz05sICIhEKCQiyteStBhCBGRICGAIgATrbAwoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABJBofU1BFTkRFUl9ET0VTX05PVF9IQVZFX0FMTE9XQU5DRSiFblCmhDpihAMYmlVMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGZf/////////////////////////////////////////OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAagMY6gxSAHoMCO615K0GEKv05sIC"},{"b64Body":"Cg8KCQizteStBhCIGRICGAISAhgDGMC/7SEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjqQAwoDGOoMEMCEPSKEAw7QcnYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZl/////////////////////////////////////////84AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=","b64Record":"CiUIFiIDGOoMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBeRhZoA8flWA0lg96yvwrjG0o4IQohnVoRnfpemhKmwuRxKtBLJtdRa9gQ5c2GjvkaDAjvteStBhCzgv7LAiIPCgkIs7XkrQYQiBkSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCA5oobOowCCgMY6gwigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKIDqMFIWCgkKAhgCEP/LlTYKCQoCGGIQgMyVNg=="},{"b64Body":"ChEKCQizteStBhCIGRICGAIgAXIZEhcKAxjoDBIHCgMY5QwQYxIHCgMY5gwQZA==","b64Record":"CgIIFhIwYMna3GBUxLzfC4sTJXRocXzLdj4Zb1LhM49nyz6iH094eEHNLWIoXbFZVqS7QJkWGgwI77XkrQYQtIL+ywIiEQoJCLO15K0GEIgZEgIYAiABOroDCgMY5wISIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWKIVuUKaEOmKEAxiaVUwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZl/////////////////////////////////////////84AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqAxjqDFIAWhcKAxjoDBIHCgMY5QwQYxIHCgMY5gwQZHIKCgMY6AwSAxjmDHoMCO+15K0GELOC/ssC"},{"b64Body":"ChAKCQi0teStBhCOGRIDGOUMEgIYAxjD6IkUIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6CAxQaEgoDGOgMEgMY5QwaAxjqDCDIAQ==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwJMxijmIw+fYqYvWf/OBmQi4fNNKS8f4cl+/Gsm4tjqlfn7123AwjNofj88qiFh8DGgsI8LXkrQYQ85qBcSIQCgkItLXkrQYQjhkSAxjlDCogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4ww+iJFFI6CgkKAhgDEPCPzQEKCQoCGGIQ4s3rHgoKCgMYoAYQ2rntAwoKCgMYoQYQ2rntAwoKCgMY5QwQhdGTKA=="},{"b64Body":"Cg8KCQi0teStBhCQGRICGAISAhgDGMC/7SEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjqQAwoDGOoMEMCEPSKEAw7QcnYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZl/////////////////////////////////////////84AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=","b64Record":"CiUIISIDGOoMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCRPPoYqCUVW7H9pyGhrnEwSQEvBjd4tCIDJpXsQ7wRhMmLgYd6ct5orc0eNc+8CbwaDAjwteStBhCDjbjVAiIPCgkItLXkrQYQkBkSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCA5oobOtEBGsoBMHgwOGMzNzlhMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE2NDM3Mjc5NzA3NDZmMjA1NDcyNjE2ZTczNjY2NTcyMjA0NjYxNjk2YzY1NjQwMDAwMDAwMDAwMDAwMDAwMDAwMCiA6jBSFgoJCgIYAhD/y5U2CgkKAhhiEIDMlTY="},{"b64Body":"ChEKCQi0teStBhCQGRICGAIgAXIZEhcKAxjoDBIHCgMY5QwQYxIHCgMY5gwQZA==","b64Record":"CgMIxgISMLkd16ef8Yt1gwooYR3EXM/Aoks7pQua5Ztc+8OzxmktZsS2cpN1ZABXJIZYDSVE2RoMCPC15K0GEISNuNUCIhEKCQi0teStBhCQGRICGAIgATroAwoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABRhosSU5WQUxJRF9GVUxMX1BSRUZJWF9TSUdOQVRVUkVfRk9SX1BSRUNPTVBJTEUohW5QpoQ6YoQDGJpVTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmX/////////////////////////////////////////zgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGoDGOoMUgB6DAjwteStBhCDjbjVAg=="},{"b64Body":"Cg8KCQi1teStBhCXGRICGAISAhgDGMC/7SEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjqQAwoDGOoMEMCEPSKEAw7QcnYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZl/////////////////////////////////////////84AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=","b64Record":"CiUIFiIDGOoMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjD09Kd7FMGIiaFOYpxTVqoX34MOdHQ+6cSUnwh61hkLr100TfwUZbZI0Dr/f95frOUaDAjxteStBhDrw7TfAiIPCgkItbXkrQYQlxkSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCA5oobOowCCgMY6gwigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKIDqMFIWCgkKAhgCEP/LlTYKCQoCGGIQgMyVNg=="},{"b64Body":"ChEKCQi1teStBhCXGRICGAIgAXIbEhkKAxjoDBIJCgMY5QwQYxgBEgcKAxjmDBBk","b64Record":"CgIIFhIwW/4cFzTaNLNelpew94pxA1t3UyCoM21miiloLBQY+5gmxSN9CDEUB2EQLm4kCqdrGgwI8bXkrQYQ7MO03wIiEQoJCLW15K0GEJcZEgIYAiABOroDCgMY5wISIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWKIVuUKaEOmKEAxiaVUwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZl/////////////////////////////////////////84AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqAxjqDFIAWhcKAxjoDBIHCgMY5QwQYxIHCgMY5gwQZHoMCPG15K0GEOvDtN8C"}]},"transferWorksWithTopLevelSignatures":{"placeholderNum":1643,"encodedItems":[{"b64Body":"Cg8KCQi7teStBhDOGRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIGuSPnaKXtsogxJP8gEFbhb/h2/o/BjZwAlInXXa9aQrEICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGOwMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBeqxUwOsYocMfNVrx40z2D+ZrH8YXRzgekvO5rby28Ig4/d9p7Nq8LMTeav46qSbUaDAj3teStBhDztfvsASIPCgkIu7XkrQYQzhkSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxjsDBCAqNa5Bw=="},{"b64Body":"Cg8KCQi7teStBhDQGRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIDP8DAnahFf3dhqRwG4Kwu7TO6E0zdPZjN0xjgKGVEk3EICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGO0MKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjC2umTyFtpi8mcdc08WhpDqCRE5Nf86tbREOJ5u8PKixDN19q/2fGEYJVb69/obrmsaDAj3teStBhDDvunRAyIPCgkIu7XkrQYQ0BkSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxjtDBCAqNa5Bw=="},{"b64Body":"Cg8KCQi8teStBhDSGRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISILL6xGzJSCVge5Xl0a8pjegp0CkIfV+27OLQtjKM+iALEICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGO4MKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCjo0sg4c46GcxIc1DiXRo6Ctiz37CKEIOZ1junEJstLRFnonnXxZH8mX43Nha6DtIaDAj4teStBhCjrbH2ASIPCgkIvLXkrQYQ0hkSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxjuDBCAqNa5Bw=="},{"b64Body":"Cg8KCQi8teStBhDUGRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIFPz1GwQoKXhqRtCfealjinNeJBzZJJEMY+z+LIU71g7EICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGO8MKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAP84LbJawT9NBVoAPutz2IW8ILFpjiN54P75dZuf5JcoL2+xf5F1VRP0Q8G8s7LnwaDAj4teStBhDr8KjbAyIPCgkIvLXkrQYQ1BkSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxjvDBCAqNa5Bw=="},{"b64Body":"Cg8KCQi9teStBhDWGRICGAISAhgDGIWupekCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAUwKBlRva2VuRBIIV0lESktYWlIg6AcqAxjtDFIiEiCoozo84CJvzBu8K6gI4T7CC9+uBWNluCv6e7qWGFmbTmoMCPmDv7EGENiin+QB","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGPAMEjAw5Q6kuSR/H5ljVujUYGWXuZkEmd9sTk2jsnVghkBVsw0Ih/RPZxUsxgsbtUqJlsgaDAj5teStBhCLsOv/ASIPCgkIvbXkrQYQ1hkSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWg8KAxjwDBIICgMY7QwQ0A9yCgoDGPAMEgMY7Qw="},{"b64Body":"Cg8KCQi9teStBhDYGRICGAISAhgDGP7v5OgCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAUwKBlRva2VuQxIISkpaQ1JVWVQqAxjtDFIiEiCoozo84CJvzBu8K6gI4T7CC9+uBWNluCv6e7qWGFmbTmoMCPmDv7EGEIDH7NYDiAEB","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGPEMEjCw/l/P6M2mfJU3eJ/ocoXjkmNzR2jrI1SZWvo2UEQS7wxNgEJ9Vg6rUG02MFuQyZYaCwj6teStBhDD9v8HIg8KCQi9teStBhDYGRICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgByCgoDGPEMEgMY7Qw="},{"b64Body":"Cg8KCQi+teStBhDeGRICGAISAhgDGMHw7CAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICDwoDGOwMEgMY8AwSAxjxDA==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIweI3aNSsxWpZEOuuNfdcqsYdU8EUU510iEpRnhVr+PPr0yOnnrNuBBr4/e8yP467jGgwI+rXkrQYQ85Cx7QEiDwoJCL615K0GEN4ZEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQi/teStBhDkGRICGAISAhgDGMHw7CAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICDwoDGO4MEgMY8AwSAxjxDA==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwdn3bZgPRRNGRMO9KXdfM6CF/XMCk9wcQ1mxKkfNK61zO8VD/JhRFQ1YUd3i0rSWeGgsI+7XkrQYQq7ilESIPCgkIv7XkrQYQ5BkSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQi/teStBhDqGRICGAISAhgDGMHw7CAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICDwoDGO8MEgMY8AwSAxjxDA==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwjkNV4K05ccIoc3DA0pqqd/clp3HdCZGz58i2w+rsT+ZRBu44Otf+h4fSPHCDnrxBGgwI+7XkrQYQ25K+kwIiDwoJCL+15K0GEOoZEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjAteStBhDwGRICGAISAhgDGNPOgyAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjqoCIwoDGPEMGgRkYXJrGgZtYXR0ZXIaBWRhcmsxGgdtYXR0ZXIx","b64Record":"CigIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1gEcgQBAgMEEjD/Su/4An9XK3mUAYof631x/rPG/j66NSgkA1wvnA0Wa7bI1DDYsMa++5STWwYzopIaCwj8teStBhCTu9wbIg8KCQjAteStBhDwGRICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgBaOQoDGPEMGgsKAhgAEgMY7QwYARoLCgIYABIDGO0MGAIaCwoCGAASAxjtDBgDGgsKAhgAEgMY7QwYBA=="},{"b64Body":"Cg8KCQjAteStBhD0GRICGAISAhgDGOufNiICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOchsSGQoDGPAMEggKAxjtDBDnBxIICgMY7AwQ6Ac=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwlszqBDadCe1LWM3Z7oHzBDsxQw7oJXf9baEw4N0Ss26fKMmGpuvOHpTYUPQHM7KtGgwI/LXkrQYQw/aunAIiDwoJCMC15K0GEPQZEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAFoZCgMY8AwSCAoDGOwMEOgHEggKAxjtDBDnBw=="},{"b64Body":"Cg8KCQjBteStBhD2GRICGAISAhgDGPqZPSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj8SPQoDGPEMGgwKAxjtDBIDGOwMGAEaDAoDGO0MEgMY7AwYAhoMCgMY7QwSAxjsDBgDGgwKAxjtDBIDGOwMGAQ=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwVs8CJ5Kw1mITWCqsIRHyHE0T3rvCXmszVSQm785rU0zGMbcZj9T2F+AioG6POn60GgsI/bXkrQYQu4PrJCIPCgkIwbXkrQYQ9hkSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWj0KAxjxDBoMCgMY7QwSAxjsDBgBGgwKAxjtDBIDGOwMGAIaDAoDGO0MEgMY7AwYAxoMCgMY7QwSAxjsDBgE"},{"b64Body":"Cg8KCQjBteStBhD4GRICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAj9g7+xBhCAyueHAhptCiISIMTfPTHfbtMWaL7U0b/UkAYLT7vxwSN1jl7y9huHCs2hCiM6IQJqiQogma2N4tf+b0StP+xUUK1rCiusZq7kVQ/zccfjlQoiEiBCIIIUjpsGlUKLnZbgp9TxjYPUMS8enXa/BB4zm7tmfyIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGPIMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjALV71b+Cp7dEYEvXPOujJiao+zc0uBXXCSjg+QMhJzJPzXr+ke8W8PTFifWVBVjh8aDAj9teStBhDbhLeJAiIPCgkIwbXkrQYQ+BkSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjCteStBhD8GRICGAISAhgDGIudjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxjyDCKAIDYwODA2MDQwNTIzNDgwMTU2MjAwMDAxMTU3NjAwMDgwZmQ1YjUwNjAwMTgwNjAwMDgwNjAwNjgxMTExNTYyMDAwMDJkNTc2MjAwMDAyYzYyMDAwMWYxNTY1YjViNjAwNjgxMTExNTYyMDAwMDQyNTc2MjAwMDA0MTYyMDAwMWYxNTY1YjViODE1MjYwMjAwMTkwODE1MjYwMjAwMTYwMDAyMDgxOTA1NTUwNjAwMjYwMDE2MDAwNjAwMTYwMDY4MTExMTU2MjAwMDA3MTU3NjIwMDAwNzA2MjAwMDFmMTU2NWI1YjYwMDY4MTExMTU2MjAwMDA4NjU3NjIwMDAwODU2MjAwMDFmMTU2NWI1YjgxNTI2MDIwMDE5MDgxNTI2MDIwMDE2MDAwMjA4MTkwNTU1MDYwMDQ2MDAxNjAwMDYwMDI2MDA2ODExMTE1NjIwMDAwYjU1NzYyMDAwMGI0NjIwMDAxZjE1NjViNWI2MDA2ODExMTE1NjIwMDAwY2E1NzYyMDAwMGM5NjIwMDAxZjE1NjViNWI4MTUyNjAyMDAxOTA4MTUyNjAyMDAxNjAwMDIwODE5MDU1NTA2MDA4NjAwMTYwMDA2MDAzNjAwNjgxMTExNTYyMDAwMGY5NTc2MjAwMDBmODYyMDAwMWYxNTY1YjViNjAwNjgxMTExNTYyMDAwMTBlNTc2MjAwMDEwZDYyMDAwMWYxNTY1YjViODE1MjYwMjAwMTkwODE1MjYwMjAwMTYwMDAyMDgxOTA1NTUwNjAxMDYwMDE2MDAwNjAwNDYwMDY4MTExMTU2MjAwMDEzZDU3NjIwMDAxM2M2MjAwMDFmMTU2NWI1YjYwMDY4MTExMTU2MjAwMDE1MjU3NjIwMDAxNTE2MjAwMDFmMTU2NWI1YjgxNTI2MDIwMDE5MDgxNTI2MDIwMDE2MDAwMjA4MTkwNTU1MDYwMjA2MDAxNjAwMDYwMDU2MDA2ODExMTE1NjIwMDAxODE1NzYyMDAwMTgwNjIwMDAxZjE1NjViNWI2MDA2ODExMTE1NjIwMDAxOTY1NzYyMDAwMTk1NjIwMDAxZjE1NjViNWI4MTUyNjAyMDAxOTA4MTUyNjAyMDAxNjAwMDIwODE5MDU1NTA2MDQwNjAwMTYwMDA2MDA2ODA4MTExMTU2MjAwMDFjNDU3NjIwMDAxYzM2MjAwMDFmMTU2NWI1YjYwMDY4MTExMTU2MjAwMDFkOTU3NjIwMDAxZDg2MjAwMDFmMTU2NWI1YjgxNTI2MDIwMDE5MDgxNTI2MDIwMDE2MDAwMjA4MTkwNTU1MDYyMDAwMjIwNTY1YjdmNGU0ODdiNzEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYwMDA1MjYwMjE2MDA0NTI2MDI0NjAwMGZkNWI2MTMwOTU4MDYyMDAwMjMwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDExNjU3NjAwMDM1NjBlMDFjODA2MzliMjNkM2Q5MTE2MTAwYTI1NzgwNjNkZjZjMDZmNTExNjEwMDcxNTc4MDYzZGY2YzA2ZjUxNDYxMDM4YjU3ODA2M2VhYzZmM2ZlMTQ2MTAzYmI1NzgwNjNlZjc4MzliNjE0NjEwM2ViNTc4MDYzZjI1YjEyMDAxNDYxMDQxYjU3ODA2M2Y4NDhmZWM0MTQ2MTA0NGI1NzYxMDExNjU2NWI4MDYzOWIyM2QzZDkxNDYxMDJjYjU3ODA2M2FjMzZlZmI0MTQ2MTAyZmI1NzgwNjNjNzY2MjBjYTE0NjEwMzJiNTc4MDYzY2MyNTI4ZjAxNDYxMDM1YjU3NjEwMTE2NTY1YjgwNjM2YzQwYTc3NzExNjEwMGU5NTc4MDYzNmM0MGE3NzcxNDYxMDFkYjU3ODA2MzZkYTZiMWYwMTQ2MTAyMGI1NzgwNjM4NDJiNzFkYjE0NjEwMjNiNTc4MDYzOTQyZTAxYTMxNDYxMDI2YjU3ODA2Mzk3MGUyM2QyMTQ2MTAyOWI1NzYxMDExNjU2NWI4MDYzMTFlMWZjMDcxNDYxMDExYjU3ODA2MzE1ZGFjYmVhMTQ2MTAxNGI1NzgwNjM0YmE2NzAzNTE0NjEwMTdiNTc4MDYzNTgxMzE1NTExNDYxMDFhYjU3NWI2MDAwODBmZDViNjEwMTM1NjAwNDgwMzYwMzgxMDE5MDYxMDEzMDkxOTA2MTIyYjY1NjViNjEwNDdiNTY1YjYwNDA1MTYxMDE0MjkxOTA2MTJiZjQ1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMTY1NjAwNDgwMzYwMzgxMDE5MDYxMDE2MDkxOTA2MTIyYjY1NjViNjEwNTk3NTY1YjYwNDA1MTYxMDE3MjkxOTA2MTJiZjQ1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMTk1NjAwNDgwMzYwMzgxMDE5MDYxMDE5MDkxOTA2MTIyNGY1NjViNjEwNmI1NTY1YjYwNDA1MTYxMDFhMjkxOTA2MTJiYmU1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMWM1NjAwNDgwMzYwMzgxMDE5MDYxMDFjMDkxOTA2MTI0N2U1NjViNjEwNzE0NTY1YjYwNDA1MTYxMDFkMjkxOTA2MTJiYmU1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMWY1NjAwNDgwMzYwMzgxMDE5MDYxMDFmMDkxOTA2MTIyYjY1NjViNjEwNzcxNTY1YjYwNDA1MTYxMDIwMjkxOTA2MTJiZjQ1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMjI1NjAwNDgwMzYwMzgxMDE5MDYxMDIyMDkxOTA2MTIyNGY1NjViNjEwODU4NTY1YjYwNDA1MTYxMDIzMjkxOTA2MTJiYmU1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMjU1NjAwNDgwMzYwMzgxMDE5MDYxMDI1MDkxOTA2MTIyYjY1NjViNjEwOGI3NTY1YjYwNDA1MTYxMDI2MjkxOTA2MTJiZjQ1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMjg1NjAwNDgwMzYwMzgxMDE5MDYxMDI4MDkxOTA2MTIzNzA1NjViNjEwOTllNTY1YjYwNDA1MTYxMDI5MjkxOTA2MTJiYmU1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMmI1NjAwNDgwMzYwMzgxMDE5MDYxMDJiMDkxOTA2MTI1NjM1NjViNjEwOWZiNTY1YjYwNDA1MTYxMDJjMjkxOTA2MTJiYmU1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMmU1NjAwNDgwMzYwMzgxMDE5MDYxMDJlMDkxOTA2MTIyYjY1NjViNjEwYTZjNTY1YjYwNDA1MTYxMDJmMjkxOTA2MTJiZjQ1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMzE1NjAwNDgwMzYwMzgxMDE5MDYxMDMxMDkxOTA2MTI1NjM1NjViNjEwYjhhNTY1YjYwNDA1MTYxMDMyMjkxOTA2MTJiYmU1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMzQ1NjAwNDgwMzYwMzgxMDE5MDYxMDM0MDkxOTA2MTIzMWQ1NjViNjEwYmZiNTY1YjYwNDA1MTYxMDM1MjkxOTA2MTJiYmU1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMzc1NjAwNDgwMzYwMzgxMDE5MDYxMDM3MDkxOTA2MTIzYzM1NjViNjEwYzU4NTY1YjYwNDA1MTYxMDM4MjkxOTA2MTJiYmU1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwM2E1NjAwNDgwMzYwMzgxMDE5MDYxMDNhMDkxOTA2MTIzNzA1NjViNjEwY2I3NTY1YjYwNDA1MTYxMDNiMjkxOTA2MTJiYmU1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwM2Q1NjAwNDgwMzYwMzgxMDE5MDYxMDNkMDkxOTA2MTIyYjY1NjViNjEwZDE0NTY1YjYwNDA1MTYxMDNlMjkxOTA2MTJiZjQ1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwNDA1NjAwNDgwMzYwMzgxMDE5MDYxMDQwMDkxOTA2MTIzNzA1NjViNjEwZTMwNTY1YjYwNDA1MTYxMDQxMjkxOTA2MTJiYmU1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwNDM1NjAwNDgwMzYwMzgxMDE5MDYxMDQzMDkxOTA2MTIzMWQ1NjViNjEwZThkNTY1YjYwNDA1MTYxMDQ0MjkxOTA2MTJiYmU1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwNDY1NjAwNDgwMzYwMzgxMDE5MDYxMDQ2MDkxOTA2MTIzNzA1NjViNjEwZWVhNTY1YjYwNDA1MTYxMDQ3MjkxOTA2MTJiYmU1NjViNjA0MDUxODA5MTAzOTBmMzViNjAwMDgwNjAwMDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjM5YjIzZDNkOTYwZTAxYjg4ODg4ODg4NjA0MDUxNjAyNDAxNjEwNGI4OTQ5MzkyOTE5MDYxMmE2YzU2NWI2MDQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI5MDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTA1MjI5MTkwNjEyYTEwNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTg1NWFmNDkxNTA1MDNkODA2MDAwODExNDYxMDU1ZDU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMDU2MjU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEwNTczNTc2MDE1NjEwNTg4NTY1YjgwODA2MDIwMDE5MDUxODEwMTkwNjEwNTg3OTE5MDYxMjUwOTU2NWI1YjYwMDMwYjkyNTA1MDUwOTQ5MzUwNTA1MDUwNTY1YjYwMDA4MDYwMDA2MTAxNjc3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzMTVkYWNiZWE2MGUwMWI4ODg4ODg4ODYwNDA1MTYwMjQwMTYxMDVkNDk0OTM5MjkxOTA=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwSPFgkmft7BAl8sHmMJhNsZxUrX5GbyNYYWEXBUkT2DUkua0vtCtC2hnz2HlsWfpAGgsI/rXkrQYQq677LSIPCgkIwrXkrQYQ/BkSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjCteStBhCCGhICGAISAhgDGPjR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxjyDCKAIDYxMmE2YzU2NWI2MDQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI5MDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTA2M2U5MTkwNjEyYTEwNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NjVhZjE5MTUwNTAzZDgwNjAwMDgxMTQ2MTA2N2I1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTA2ODA1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA4MTYxMDY5MTU3NjAxNTYxMDZhNjU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMDZhNTkxOTA2MTI1MDk1NjViNWI2MDAzMGI5MjUwNTA1MDk0OTM1MDUwNTA1MDU2NWI2MDAwNjEwNmMzODU4NTg1ODU2MTBmNDc1NjViOTA1MDdmOTBhNWNmNGNmZmU4OGI0ZWRiYjA0MWNmYzdhOGE4MTJjNDhhNWVjMzBiODQ2NDBmYjM3NjkwODc1MTY4ZTNhYTgxNjA0MDUxNjEwNmY0OTE5MDYxMmJiZTU2NWI2MDQwNTE4MDkxMDM5MGExNjAxNjYwMDMwYjgxMTQ2MTA3MGM1NzYwMDA4MGZkNWI5NDkzNTA1MDUwNTA1NjViNjAwMDYxMDcyMTg0ODQ4NDYxMTA2NTU2NWI5MDUwN2Y5MGE1Y2Y0Y2ZmZTg4YjRlZGJiMDQxY2ZjN2E4YTgxMmM0OGE1ZWMzMGI4NDY0MGZiMzc2OTA4NzUxNjhlM2FhODE2MDQwNTE2MTA3NTI5MTkwNjEyYmJlNTY1YjYwNDA1MTgwOTEwMzkwYTE2MDE2NjAwMzBiODExNDYxMDc2YTU3NjAwMDgwZmQ1YjkzOTI1MDUwNTA1NjViNjAwMDMwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MzliMjNkM2Q5ODY4Njg2ODY2MDQwNTE4NTYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MTA3YjI5NDkzOTI5MTkwNjEyYTZjNTY1YjYwMjA2MDQwNTE4MDgzMDM4MTYwMDA4NzgwM2IxNTgwMTU2MTA3Y2M1NzYwMDA4MGZkNWI1MDVhZjExNTgwMTU2MTA3ZTA1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA2MDQwNTEzZDYwMWYxOTYwMWY4MjAxMTY4MjAxODA2MDQwNTI1MDgxMDE5MDYxMDgwNDkxOTA2MTI1MzY1NjViOTA1MDdmOTBhNWNmNGNmZmU4OGI0ZWRiYjA0MWNmYzdhOGE4MTJjNDhhNWVjMzBiODQ2NDBmYjM3NjkwODc1MTY4ZTNhYTgxNjA0MDUxNjEwODM1OTE5MDYxMmJkOTU2NWI2MDQwNTE4MDkxMDM5MGExNjAxNjYwMDMwYjgxNjAwNzBiMTQ2MTA4NTA1NzYwMDA4MGZkNWI5NDkzNTA1MDUwNTA1NjViNjAwMDYxMDg2Njg1ODU4NTg1NjExMTgwNTY1YjkwNTA3ZjkwYTVjZjRjZmZlODhiNGVkYmIwNDFjZmM3YThhODEyYzQ4YTVlYzMwYjg0NjQwZmIzNzY5MDg3NTE2OGUzYWE4MTYwNDA1MTYxMDg5NzkxOTA2MTJiYmU1NjViNjA0MDUxODA5MTAzOTBhMTYwMTY2MDAzMGI4MTE0NjEwOGFmNTc2MDAwODBmZDViOTQ5MzUwNTA1MDUwNTY1YjYwMDAzMDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjMxNWRhY2JlYTg2ODY4Njg2NjA0MDUxODU2M2ZmZmZmZmZmMTY2MGUwMWI4MTUyNjAwNDAxNjEwOGY4OTQ5MzkyOTE5MDYxMmE2YzU2NWI2MDIwNjA0MDUxODA4MzAzODE2MDAwODc4MDNiMTU4MDE1NjEwOTEyNTc2MDAwODBmZDViNTA1YWYxMTU4MDE1NjEwOTI2NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTA5NGE5MTkwNjEyNTM2NTY1YjkwNTA3ZjkwYTVjZjRjZmZlODhiNGVkYmIwNDFjZmM3YThhODEyYzQ4YTVlYzMwYjg0NjQwZmIzNzY5MDg3NTE2OGUzYWE4MTYwNDA1MTYxMDk3YjkxOTA2MTJiZDk1NjViNjA0MDUxODA5MTAzOTBhMTYwMTY2MDAzMGI4MTYwMDcwYjE0NjEwOTk2NTc2MDAwODBmZDViOTQ5MzUwNTA1MDUwNTY1YjYwMDA2MTA5YWI4NDg0ODQ2MTEyOWU1NjViOTA1MDdmOTBhNWNmNGNmZmU4OGI0ZWRiYjA0MWNmYzdhOGE4MTJjNDhhNWVjMzBiODQ2NDBmYjM3NjkwODc1MTY4ZTNhYTgxNjA0MDUxNjEwOWRjOTE5MDYxMmJiZTU2NWI2MDQwNTE4MDkxMDM5MGExNjAxNjYwMDMwYjgxMTQ2MTA5ZjQ1NzYwMDA4MGZkNWI5MzkyNTA1MDUwNTY1YjYwMDA2MTBhMWM4NDYxMGEwYTkwNjEyZjBkNTY1Yjg0ODQ5MDYxMGExNzkxOTA2MTJlZTY1NjViNjExM2I3NTY1YjkwNTA3ZjkwYTVjZjRjZmZlODhiNGVkYmIwNDFjZmM3YThhODEyYzQ4YTVlYzMwYjg0NjQwZmIzNzY5MDg3NTE2OGUzYWE4MTYwNDA1MTYxMGE0ZDkxOTA2MTJiYmU1NjViNjA0MDUxODA5MTAzOTBhMTYwMTY2MDAzMGI4MTE0NjEwYTY1NTc2MDAwODBmZDViOTM5MjUwNTA1MDU2NWI2MDAwODA2MDAwNjEwMTY3NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MzliMjNkM2Q5NjBlMDFiODg4ODg4ODg2MDQwNTE2MDI0MDE2MTBhYTk5NDkzOTI5MTkwNjEyYTZjNTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMGIxMzkxOTA2MTJhMTA1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMGI1MDU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMGI1NTU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEwYjY2NTc2MDE1NjEwYjdiNTY1YjgwODA2MDIwMDE5MDUxODEwMTkwNjEwYjdhOTE5MDYxMjUwOTU2NWI1YjYwMDMwYjkyNTA1MDUwOTQ5MzUwNTA1MDUwNTY1YjYwMDA2MTBiYWI4NDYxMGI5OTkwNjEyZjBkNTY1Yjg0ODQ5MDYxMGJhNjkxOTA2MTJlZTY1NjViNjExNGNmNTY1YjkwNTA3ZjkwYTVjZjRjZmZlODhiNGVkYmIwNDFjZmM3YThhODEyYzQ4YTVlYzMwYjg0NjQwZmIzNzY5MDg3NTE2OGUzYWE4MTYwNDA1MTYxMGJkYzkxOTA2MTJiYmU1NjViNjA0MDUxODA5MTAzOTBhMTYwMTY2MDAzMGI4MTE0NjEwYmY0NTc2MDAwODBmZDViOTM5MjUwNTA1MDU2NWI2MDAwNjEwYzA4ODQ4NDg0NjExNWU1NTY1YjkwNTA3ZjkwYTVjZjRjZmZlODhiNGVkYmIwNDFjZmM3YThhODEyYzQ4YTVlYzMwYjg0NjQwZmIzNzY5MDg3NTE2OGUzYWE4MTYwNDA1MTYxMGMzOTkxOTA2MTJiYmU1NjViNjA0MDUxODA5MTAzOTBhMTYwMTY2MDAzMGI4MTE0NjEwYzUxNTc2MDAwODBmZDViOTM5MjUwNTA1MDU2NWI2MDAwNjEwYzY2ODU4NTg1ODU2MTE2ZmU1NjViOTA1MDdmOTBhNWNmNGNmZmU4OGI0ZWRiYjA0MWNmYzdhOGE4MTJjNDhhNWVjMzBiODQ2NDBmYjM3NjkwODc1MTY4ZTNhYTgxNjA0MDUxNjEwYzk3OTE5MDYxMmJiZTU2NWI2MDQwNTE4MDkxMDM5MGExNjAxNjYwMDMwYjgxMTQ2MTBjYWY1NzYwMDA4MGZkNWI5NDkzNTA1MDUwNTA1NjViNjAwMDYxMGNjNDg0ODQ4NDYxMTgxYzU2NWI5MDUwN2Y5MGE1Y2Y0Y2ZmZTg4YjRlZGJiMDQxY2ZjN2E4YTgxMmM0OGE1ZWMzMGI4NDY0MGZiMzc2OTA4NzUxNjhlM2FhODE2MDQwNTE2MTBjZjU5MTkwNjEyYmJlNTY1YjYwNDA1MTgwOTEwMzkwYTE2MDE2NjAwMzBiODExNDYxMGQwZDU3NjAwMDgwZmQ1YjkzOTI1MDUwNTA1NjViNjAwMDgwNjAwMDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjMxNWRhY2JlYTYwZTAxYjg4ODg4ODg4NjA0MDUxNjAyNDAxNjEwZDUxOTQ5MzkyOTE5MDYxMmE2YzU2NWI2MDQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI5MDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTBkYmI5MTkwNjEyYTEwNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTg1NWFmNDkxNTA1MDNkODA2MDAwODE=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwCeh/lhcfbPLvOuXTZN8NvJlR1Em0l8rLrItJU5cyGp2xY7kxJiggmQt+0fhwg6d+GgwI/rXkrQYQs9yOkwIiDwoJCMK15K0GEIIaEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjDteStBhCIGhICGAISAhgDGPfR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxjyDCKAIDE0NjEwZGY2NTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjEwZGZiNTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTBlMGM1NzYwMTU2MTBlMjE1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTBlMjA5MTkwNjEyNTA5NTY1YjViNjAwMzBiOTI1MDUwNTA5NDkzNTA1MDUwNTA1NjViNjAwMDYxMGUzZDg0ODQ4NDYxMTkzNzU2NWI5MDUwN2Y5MGE1Y2Y0Y2ZmZTg4YjRlZGJiMDQxY2ZjN2E4YTgxMmM0OGE1ZWMzMGI4NDY0MGZiMzc2OTA4NzUxNjhlM2FhODE2MDQwNTE2MTBlNmU5MTkwNjEyYmJlNTY1YjYwNDA1MTgwOTEwMzkwYTE2MDE2NjAwMzBiODExNDYxMGU4NjU3NjAwMDgwZmQ1YjkzOTI1MDUwNTA1NjViNjAwMDYxMGU5YTg0ODQ4NDYxMWE1MDU2NWI5MDUwN2Y5MGE1Y2Y0Y2ZmZTg4YjRlZGJiMDQxY2ZjN2E4YTgxMmM0OGE1ZWMzMGI4NDY0MGZiMzc2OTA4NzUxNjhlM2FhODE2MDQwNTE2MTBlY2I5MTkwNjEyYmJlNTY1YjYwNDA1MTgwOTEwMzkwYTE2MDE2NjAwMzBiODExNDYxMGVlMzU3NjAwMDgwZmQ1YjkzOTI1MDUwNTA1NjViNjAwMDYxMGVmNzg0ODQ4NDYxMWI2YjU2NWI5MDUwN2Y5MGE1Y2Y0Y2ZmZTg4YjRlZGJiMDQxY2ZjN2E4YTgxMmM0OGE1ZWMzMGI4NDY0MGZiMzc2OTA4NzUxNjhlM2FhODE2MDQwNTE2MTBmMjg5MTkwNjEyYmJlNTY1YjYwNDA1MTgwOTEwMzkwYTE2MDE2NjAwMzBiODExNDYxMGY0MDU3NjAwMDgwZmQ1YjkzOTI1MDUwNTA1NjViNjAwMDgwNjAwMDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjNlY2EzNjkxNzYwZTAxYjg4ODg4ODg4NjA0MDUxNjAyNDAxNjEwZjg0OTQ5MzkyOTE5MDYxMmEyNzU2NWI2MDQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI5MDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTBmZWU5MTkwNjEyYTEwNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NjVhZjE5MTUwNTAzZDgwNjAwMDgxMTQ2MTEwMmI1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTEwMzA1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA4MTYxMTA0MTU3NjAxNTYxMTA1NjU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMTA1NTkxOTA2MTI1MDk1NjViNWI2MDAzMGI5MjUwNTA1MDk0OTM1MDUwNTA1MDU2NWI2MDAwODA2MDAwNjEwMTY3NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MzgyYmJhNDkzNjBlMDFiODc4Nzg3NjA0MDUxNjAyNDAxNjExMGEwOTM5MjkxOTA2MTJiNzk1NjViNjA0MDUxNjAyMDgxODMwMzAzODE1MjkwNjA0MDUyOTA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjExMTBhOTE5MDYxMmExMDU2NWI2MDAwNjA0MDUxODA4MzAzODE2MDAwODY1YWYxOTE1MDUwM2Q4MDYwMDA4MTE0NjExMTQ3NTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjExMTRjNTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTExNWQ1NzYwMTU2MTExNzI1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTExNzE5MTkwNjEyNTA5NTY1YjViNjAwMzBiOTI1MDUwNTA5MzkyNTA1MDUwNTY1YjYwMDA4MDYwMDA2MTAxNjc3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzNWNmYzkwMTE2MGUwMWI4ODg4ODg4ODYwNDA1MTYwMjQwMTYxMTFiZDk0OTM5MjkxOTA2MTJhMjc1NjViNjA0MDUxNjAyMDgxODMwMzAzODE1MjkwNjA0MDUyOTA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjExMjI3OTE5MDYxMmExMDU2NWI2MDAwNjA0MDUxODA4MzAzODE2MDAwODY1YWYxOTE1MDUwM2Q4MDYwMDA4MTE0NjExMjY0NTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjExMjY5NTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTEyN2E1NzYwMTU2MTEyOGY1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTEyOGU5MTkwNjEyNTA5NTY1YjViNjAwMzBiOTI1MDUwNTA5NDkzNTA1MDUwNTA1NjViNjAwMDgwNjAwMDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjM3MzM2YWFmMDYwZTAxYjg3ODc4NzYwNDA1MTYwMjQwMTYxMTJkOTkzOTI5MTkwNjEyYWU4NTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMTM0MzkxOTA2MTJhMTA1NjViNjAwMDYwNDA1MTgwODMwMzgxODU1YWY0OTE1MDUwM2Q4MDYwMDA4MTE0NjExMzdlNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjExMzgzNTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTEzOTQ1NzYwMTU2MTEzYTk1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTEzYTg5MTkwNjEyNTA5NTY1YjViNjAwMzBiOTI1MDUwNTA5MzkyNTA1MDUwNTY1YjYwMDA4MDYwMDA2MTAxNjc3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzMGU3MTgwNGY2MGUwMWI4Njg2NjA0MDUxNjAyNDAxNjExM2YwOTI5MTkwNjEyYzBmNTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMTQ1YTkxOTA2MTJhMTA1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMTQ5NzU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMTQ5YzU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjExNGFkNTc2MDE1NjExNGMyNTY1YjgwODA2MDIwMDE5MDUxODEwMTkwNjExNGMxOTE5MDYxMjUwOTU2NWI1YjYwMDMwYjkyNTA1MDUwOTI5MTUwNTA1NjViNjAwMDgwNjAwMDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjMwZTcxODA0ZjYwZTAxYjg2ODY2MDQwNTE2MDI0MDE2MTE1MDg5MjkxOTA2MTJjMGY1NjViNjA0MDUxNjAyMDgxODMwMzAzODE1MjkwNjA0MDUyOTA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjExNTcyOTE5MDYxMmExMDU2NWI2MDAwNjA0MDUxODA4MzAzODE4NTVhZjQ5MTUwNTAzZDgwNjAwMDgxMTQ2MTE1YWQ1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTE1YjI1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA4MTYxMTVjMzU3NjAxNTYxMTVkODU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMTU=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwhX3ANV+3stZYAzyFNMPgXiXfI4BO7xtzMhbfnA+j1rdyC3d7PTw12wwrcTUmEIzzGgsI/7XkrQYQ4/vLNyIPCgkIw7XkrQYQiBoSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjDteStBhCOGhICGAISAhgDGPfR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxjyDCKAIGQ3OTE5MDYxMjUwOTU2NWI1YjYwMDMwYjkyNTA1MDUwOTI5MTUwNTA1NjViNjAwMDgwNjAwMDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjMzNjc2MDVjYTYwZTAxYjg3ODc4NzYwNDA1MTYwMjQwMTYxMTYyMDkzOTI5MTkwNjEyYWIxNTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMTY4YTkxOTA2MTJhMTA1NjViNjAwMDYwNDA1MTgwODMwMzgxODU1YWY0OTE1MDUwM2Q4MDYwMDA4MTE0NjExNmM1NTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjExNmNhNTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTE2ZGI1NzYwMTU2MTE2ZjA1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTE2ZWY5MTkwNjEyNTA5NTY1YjViNjAwMzBiOTI1MDUwNTA5MzkyNTA1MDUwNTY1YjYwMDA4MDYwMDA2MTAxNjc3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzMmM0YmExOTE2MGUwMWI4ODg4ODg4ODYwNDA1MTYwMjQwMTYxMTczYjk0OTM5MjkxOTA2MTJiMWY1NjViNjA0MDUxNjAyMDgxODMwMzAzODE1MjkwNjA0MDUyOTA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjExN2E1OTE5MDYxMmExMDU2NWI2MDAwNjA0MDUxODA4MzAzODE2MDAwODY1YWYxOTE1MDUwM2Q4MDYwMDA4MTE0NjExN2UyNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjExN2U3NTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTE3Zjg1NzYwMTU2MTE4MGQ1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTE4MGM5MTkwNjEyNTA5NTY1YjViNjAwMzBiOTI1MDUwNTA5NDkzNTA1MDUwNTA1NjViNjAwMDgwNjAwMDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjM3MzM2YWFmMDYwZTAxYjg3ODc4NzYwNDA1MTYwMjQwMTYxMTg1NzkzOTI5MTkwNjEyYWU4NTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMThjMTkxOTA2MTJhMTA1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMThmZTU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMTkwMzU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjExOTE0NTc2MDE1NjExOTI5NTY1YjgwODA2MDIwMDE5MDUxODEwMTkwNjExOTI4OTE5MDYxMjUwOTU2NWI1YjYwMDMwYjkyNTA1MDUwOTM5MjUwNTA1MDU2NWI2MDAwODA2MDAwNjEwMTY3NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2M2UxZjIxYzY3NjBlMDFiODc4Nzg3NjA0MDUxNjAyNDAxNjExOTcyOTM5MjkxOTA2MTJhZTg1NjViNjA0MDUxNjAyMDgxODMwMzAzODE1MjkwNjA0MDUyOTA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjExOWRjOTE5MDYxMmExMDU2NWI2MDAwNjA0MDUxODA4MzAzODE4NTVhZjQ5MTUwNTAzZDgwNjAwMDgxMTQ2MTFhMTc1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTFhMWM1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA4MTYxMWEyZDU3NjAxNTYxMWE0MjU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMWE0MTkxOTA2MTI1MDk1NjViNWI2MDAzMGI5MjUwNTA1MDkzOTI1MDUwNTA1NjViNjAwMDgwNjAwMDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjMzNjc2MDVjYTYwZTAxYjg3ODc4NzYwNDA1MTYwMjQwMTYxMWE4YjkzOTI5MTkwNjEyYWIxNTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMWFmNTkxOTA2MTJhMTA1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMWIzMjU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMWIzNzU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjExYjQ4NTc2MDE1NjExYjVkNTY1YjgwODA2MDIwMDE5MDUxODEwMTkwNjExYjVjOTE5MDYxMjUwOTU2NWI1YjYwMDMwYjkyNTA1MDUwOTM5MjUwNTA1MDU2NWI2MDAwODA2MDAwNjEwMTY3NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2M2UxZjIxYzY3NjBlMDFiODc4Nzg3NjA0MDUxNjAyNDAxNjExYmE2OTM5MjkxOTA2MTJhZTg1NjViNjA0MDUxNjAyMDgxODMwMzAzODE1MjkwNjA0MDUyOTA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjExYzEwOTE5MDYxMmExMDU2NWI2MDAwNjA0MDUxODA4MzAzODE2MDAwODY1YWYxOTE1MDUwM2Q4MDYwMDA4MTE0NjExYzRkNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjExYzUyNTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTFjNjM1NzYwMTU2MTFjNzg1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTFjNzc5MTkwNjEyNTA5NTY1YjViNjAwMzBiOTI1MDUwNTA5MzkyNTA1MDUwNTY1YjYwMDA2MTFjOTk2MTFjOTQ4NDYxMmM2YjU2NWI2MTJjNDY1NjViOTA1MDgwODM4MjUyNjAyMDgyMDE5MDUwODI4NTYwMjA4NjAyODIwMTExMTU2MTFjYmM1NzYxMWNiYjYxMmZjYzU2NWI1YjYwMDA1Yjg1ODExMDE1NjExY2VjNTc4MTYxMWNkMjg4ODI2MTFlZDQ1NjViODQ1MjYwMjA4NDAxOTM1MDYwMjA4MzAxOTI1MDUwNjAwMTgxMDE5MDUwNjExY2JmNTY1YjUwNTA1MDkzOTI1MDUwNTA1NjViNjAwMDYxMWQwOTYxMWQwNDg0NjEyYzk3NTY1YjYxMmM0NjU2NWI5MDUwODA4MzgyNTI2MDIwODIwMTkwNTA4Mjg1NjAyMDg2MDI4MjAxMTExNTYxMWQyYzU3NjExZDJiNjEyZmNjNTY1YjViNjAwMDViODU4MTEwMTU2MTFkNWM1NzgxNjExZDQyODg4MjYxMjAyMTU2NWI4NDUyNjAyMDg0MDE5MzUwNjAyMDgzMDE5MjUwNTA2MDAxODEwMTkwNTA2MTFkMmY1NjViNTA1MDUwOTM5MjUwNTA1MDU2NWI2MDAwNjExZDc5NjExZDc0ODQ2MTJjYzM1NjViNjEyYzQ2NTY1YjkwNTA4MDgzODI1MjYwMjA4MjAxOTA1MDgyODU2MDYwODYwMjgyMDExMTE1NjExZDljNTc2MTFkOWI2MTJmY2M1NjViNWI2MDAwNWI4NTgxMTAxNTYxMWRjYzU3ODE2MTFkYjI4ODgyNjEyMDRiNTY1Yjg0NTI2MDIwODQwMTkzNTA2MDYwODMwMTkyNTA1MDYwMDE4MTAxOTA1MDYxMWQ5ZjU2NWI1MDUwNTA=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwsCRUo7XDyJsANTBnTT2C1gS10cuTxgV1ZgRHKX7NnSPbLkLaJa43RQNzfzC9y9mMGgwI/7XkrQYQk56knQIiDwoJCMO15K0GEI4aEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjEteStBhCUGhICGAISAhgDGPbR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxjyDCKAIDkzOTI1MDUwNTA1NjViNjAwMDYxMWRlOTYxMWRlNDg0NjEyY2VmNTY1YjYxMmM0NjU2NWI5MDUwODA4MzgyNTI2MDIwODIwMTkwNTA4Mjg1NjA4MDg2MDI4MjAxMTExNTYxMWUwYzU3NjExZTBiNjEyZmNjNTY1YjViNjAwMDViODU4MTEwMTU2MTFlM2M1NzgxNjExZTIyODg4MjYxMjBhZjU2NWI4NDUyNjAyMDg0MDE5MzUwNjA4MDgzMDE5MjUwNTA2MDAxODEwMTkwNTA2MTFlMGY1NjViNTA1MDUwOTM5MjUwNTA1MDU2NWI2MDAwNjExZTU5NjExZTU0ODQ2MTJkMWI1NjViNjEyYzQ2NTY1YjkwNTA4MDgzODI1MjYwMjA4MjAxOTA1MDgyODU2MDIwODYwMjgyMDExMTE1NjExZTdjNTc2MTFlN2I2MTJmY2M1NjViNWI2MDAwNWI4NTgxMTAxNTYxMWVjYTU3ODEzNTY3ZmZmZmZmZmZmZmZmZmZmZjgxMTExNTYxMWVhMjU3NjExZWExNjEyZmI4NTY1YjViODA4NjAxNjExZWFmODk4MjYxMjEyNzU2NWI4NTUyNjAyMDg1MDE5NDUwNjAyMDg0MDE5MzUwNTA1MDYwMDE4MTAxOTA1MDYxMWU3ZjU2NWI1MDUwNTA5MzkyNTA1MDUwNTY1YjYwMDA4MTM1OTA1MDYxMWVlMzgxNjEyZmVjNTY1YjkyOTE1MDUwNTY1YjYwMDA4MjYwMWY4MzAxMTI2MTFlZmU1NzYxMWVmZDYxMmZiODU2NWI1YjgxMzU2MTFmMGU4NDgyNjAyMDg2MDE2MTFjODY1NjViOTE1MDUwOTI5MTUwNTA1NjViNjAwMDgyNjAxZjgzMDExMjYxMWYyYzU3NjExZjJiNjEyZmI4NTY1YjViODEzNTYxMWYzYzg0ODI2MDIwODYwMTYxMWNmNjU2NWI5MTUwNTA5MjkxNTA1MDU2NWI2MDAwODI2MDFmODMwMTEyNjExZjVhNTc2MTFmNTk2MTJmYjg1NjViNWI4MTM1NjExZjZhODQ4MjYwMjA4NjAxNjExZDY2NTY1YjkxNTA1MDkyOTE1MDUwNTY1YjYwMDA4MjYwMWY4MzAxMTI2MTFmODg1NzYxMWY4NzYxMmZiODU2NWI1YjgxMzU2MTFmOTg4NDgyNjAyMDg2MDE2MTFkZDY1NjViOTE1MDUwOTI5MTUwNTA1NjViNjAwMDgwODM2MDFmODQwMTEyNjExZmI3NTc2MTFmYjY2MTJmYjg1NjViNWI4MjM1OTA1MDY3ZmZmZmZmZmZmZmZmZmZmZjgxMTExNTYxMWZkNDU3NjExZmQzNjEyZmIzNTY1YjViNjAyMDgzMDE5MTUwODM2MDIwODIwMjgzMDExMTE1NjExZmYwNTc2MTFmZWY2MTJmY2M1NjViNWI5MjUwOTI5MDUwNTY1YjYwMDA4MTM1OTA1MDYxMjAwNjgxNjEzMDAzNTY1YjkyOTE1MDUwNTY1YjYwMDA4MTUxOTA1MDYxMjAxYjgxNjEzMDFhNTY1YjkyOTE1MDUwNTY1YjYwMDA4MTM1OTA1MDYxMjAzMDgxNjEzMDMxNTY1YjkyOTE1MDUwNTY1YjYwMDA4MTUxOTA1MDYxMjA0NTgxNjEzMDMxNTY1YjkyOTE1MDUwNTY1YjYwMDA2MDYwODI4NDAzMTIxNTYxMjA2MTU3NjEyMDYwNjEyZmMyNTY1YjViNjEyMDZiNjA2MDYxMmM0NjU2NWI5MDUwNjAwMDYxMjA3Yjg0ODI4NTAxNjExZWQ0NTY1YjYwMDA4MzAxNTI1MDYwMjA2MTIwOGY4NDgyODUwMTYxMjAyMTU2NWI2MDIwODMwMTUyNTA2MDQwNjEyMGEzODQ4Mjg1MDE2MTFmZjc1NjViNjA0MDgzMDE1MjUwOTI5MTUwNTA1NjViNjAwMDYwODA4Mjg0MDMxMjE1NjEyMGM1NTc2MTIwYzQ2MTJmYzI1NjViNWI2MTIwY2Y2MDgwNjEyYzQ2NTY1YjkwNTA2MDAwNjEyMGRmODQ4Mjg1MDE2MTFlZDQ1NjViNjAwMDgzMDE1MjUwNjAyMDYxMjBmMzg0ODI4NTAxNjExZWQ0NTY1YjYwMjA4MzAxNTI1MDYwNDA2MTIxMDc4NDgyODUwMTYxMjAyMTU2NWI2MDQwODMwMTUyNTA2MDYwNjEyMTFiODQ4Mjg1MDE2MTFmZjc1NjViNjA2MDgzMDE1MjUwOTI5MTUwNTA1NjViNjAwMDYwNjA4Mjg0MDMxMjE1NjEyMTNkNTc2MTIxM2M2MTJmYzI1NjViNWI2MTIxNDc2MDYwNjEyYzQ2NTY1YjkwNTA2MDAwNjEyMTU3ODQ4Mjg1MDE2MTFlZDQ1NjViNjAwMDgzMDE1MjUwNjAyMDgyMDEzNTY3ZmZmZmZmZmZmZmZmZmZmZjgxMTExNTYxMjE3YjU3NjEyMTdhNjEyZmM3NTY1YjViNjEyMTg3ODQ4Mjg1MDE2MTFmNDU1NjViNjAyMDgzMDE1MjUwNjA0MDgyMDEzNTY3ZmZmZmZmZmZmZmZmZmZmZjgxMTExNTYxMjFhYjU3NjEyMWFhNjEyZmM3NTY1YjViNjEyMWI3ODQ4Mjg1MDE2MTFmNzM1NjViNjA0MDgzMDE1MjUwOTI5MTUwNTA1NjViNjAwMDYwMjA4Mjg0MDMxMjE1NjEyMWQ5NTc2MTIxZDg2MTJmYmQ1NjViNWI4MTkwNTA5MjkxNTA1MDU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTIxZjg1NzYxMjFmNzYxMmZjMjU2NWI1YjYxMjIwMjYwMjA2MTJjNDY1NjViOTA1MDYwMDA4MjAxMzU2N2ZmZmZmZmZmZmZmZmZmZmY4MTExMTU2MTIyMjI1NzYxMjIyMTYxMmZjNzU2NWI1YjYxMjIyZTg0ODI4NTAxNjExZjQ1NTY1YjYwMDA4MzAxNTI1MDkyOTE1MDUwNTY1YjYwMDA4MTM1OTA1MDYxMjI0OTgxNjEzMDQ4NTY1YjkyOTE1MDUwNTY1YjYwMDA4MDYwMDA4MDYwODA4NTg3MDMxMjE1NjEyMjY5NTc2MTIyNjg2MTJmZDY1NjViNWI2MDAwNjEyMjc3ODc4Mjg4MDE2MTFlZDQ1NjViOTQ1MDUwNjAyMDYxMjI4ODg3ODI4ODAxNjExZWQ0NTY1YjkzNTA1MDYwNDA2MTIyOTk4NzgyODgwMTYxMWVkNDU2NWI5MjUwNTA2MDYwNjEyMmFhODc4Mjg4MDE2MTIwMjE1NjViOTE1MDUwOTI5NTkxOTQ1MDkyNTA1NjViNjAwMDgwNjAwMDgwNjA4MDg1ODcwMzEyMTU2MTIyZDA1NzYxMjJjZjYxMmZkNjU2NWI1YjYwMDA2MTIyZGU4NzgyODgwMTYxMWVkNDU2NWI5NDUwNTA2MDIwNjEyMmVmODc4Mjg4MDE2MTFlZDQ1NjViOTM1MDUwNjA0MDYxMjMwMDg3ODI4ODAxNjExZWQ0NTY1YjkyNTA1MDYwNjA2MTIzMTE4NzgyODgwMTYxMjIzYTU2NWI5MTUwNTA5Mjk1OTE5NDUwOTI1MDU2NWI2MDAwODA2MDAwNjA2MDg0ODYwMzEyMTU2MTIzMzY1NzYxMjMzNTYxMmZkNjU2NWI1YjYwMDA2MTIzNDQ4NjgyODcwMTYxMWVkNDU2NWI5MzUwNTA2MDIwNjEyMzU1ODY4Mjg3MDE2MTFlZDQ1NjViOTI1MDUwNjA0MDYxMjM2Njg2ODI4NzAxNjExZmY3NTY1YjkxNTA1MDkyNTA5MjUwOTI1NjViNjAwMDgwNjAwMDYwNjA4NDg2MDMxMjE1NjEyMzg5NTc2MTIzODg2MTJmZDY1NjViNWI2MDAwNjEyMzk3ODY4Mjg3MDE2MTFlZDQ1NjViOTM1MDUwNjAyMDYxMjNhODg2ODI4NzAxNjExZWQ0NTY1YjkyNTA1MDYwNDA2MTIzYjk4NjgyODcwMTYxMjIzYTU2NWI5MTUwNTA5MjUwOTI1MDkyNTY1YjYwMDA4MDYwMDA4MDYwODA4NTg3MDMxMjE1NjEyM2RkNTc2MTIzZGM2MTJmZDY1NjViNWI2MDAwNjEyM2ViODc4Mjg4MDE2MTFlZDQ1NjViOTQ1MDUwNjAyMDg1MDEzNTY3ZmZmZmZmZmZmZmZmZmZmZjgxMTExNTYxMjQwYzU3NjEyNDBiNjEyZmQxNTY1YjViNjEyNDE4ODc4Mjg4MDE2MTFlZTk1NjViOTM1MDUwNjA0MDg1MDEzNTY3ZmZmZmZmZmZmZmZmZmZmZjgxMTExNTYxMjQzOTU3NjEyNDM4NjEyZmQxNTY1YjViNjEyNDQ1ODc4Mjg4MDE2MTFlZTk1NjViOTI1MDUwNjA2MDg1MDEzNTY3ZmZmZmZmZmZmZmZmZmZmZjgxMTExNTYxMjQ2NjU3NjEyNDY1NjEyZmQxNTY1YjViNjEyNDcyODc4Mjg4MDE2MTFmMTc1NjViOTE1MDUwOTI5NTkxOTQ1MDkyNTA1NjViNjAwMDgwNjAwMDYwNjA4NDg2MDMxMjE1NjEyNDk3NTc2MTI0OTY2MTJmZDY1NjViNWI2MDAwNjEyNGE1ODY4Mjg3MDE2MTFlZDQ1NjViOTM1MDUwNjAyMDg0MDEzNTY3ZmZmZmZmZmZmZmZmZmZmZjgxMTExNTYxMjRjNjU3NjEyNGM1NjEyZmQxNTY1YjViNjEyNGQyODY4Mjg3MDE2MTFlZTk1NjViOTI1MDUwNjA0MDg0MDEzNTY3ZmZmZmZmZmZmZmZmZmZmZjgxMTExNTYxMjRmMzU3NjEyNGYyNjEyZmQxNTY1YjViNjEyNGZmODY4Mjg3MDE2MTFmMTc1NjViOTE1MDUwOTI1MDkyNTA5MjU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTI1MWY1NzYxMjUxZTYxMmZkNjU2NWI1YjYwMDA2MTI1MmQ4NDgyODUwMTYxMjAwYzU2NWI5MTUwNTA5MjkxNTA1MDU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTI1NGM1NzYxMjU0YjYxMmZkNjU2NWI1YjYwMDA2MTI1NWE4NDgyODUwMTYxMjAzNjU2NWI5MTUwNTA5MjkxNTA1MDU2NWI2MDAwODA2MDAwNjA0MDg0ODYwMzEyMTU2MTI1N2M1NzYxMjU3YjYxMmZkNjU2NWI1YjYwMDA4NDAxMzU2N2ZmZmZmZmZmZmZmZmZmZmY4MTExMTU2MTI1OWE1NzYxMjU5OTYxMmZkMTU2NWI1YjYxMjVhNjg2ODI4NzAxNjEyMWMzNTY1YjkzNTA1MDYwMjA4NDAxMzU2N2ZmZmZmZmZmZmZmZmZmZmY4MTExMTU2MTI1Yzc1NzYxMjVjNjYxMmZkMTU2NWI1YjYxMjVkMzg2ODI4NzAxNjE=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwl7RN8IUUkf9R/OKRhztaaMM+Pp+/i2Lati+2/Z7RMGiYOKgY3no0QZYrI0CXpuZOGgsIgLbkrQYQ69zxQCIPCgkIxLXkrQYQlBoSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjEteStBhCaGhICGAISAhgDGPbR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxjyDCKAIDFmYTE1NjViOTI1MDkyNTA1MDkyNTA5MjUwOTI1NjViNjAwMDYxMjVlYjgzODM2MTI2NTM1NjViNjAyMDgzMDE5MDUwOTI5MTUwNTA1NjViNjAwMDYxMjYwMzgzODM2MTI4Y2I1NjViNjAyMDgzMDE5MDUwOTI5MTUwNTA1NjViNjAwMDYxMjYxYjgzODM2MTI4ZTk1NjViNjA2MDgzMDE5MDUwOTI5MTUwNTA1NjViNjAwMDYxMjYzMzgzODM2MTI5MmI1NjViNjA4MDgzMDE5MDUwOTI5MTUwNTA1NjViNjAwMDYxMjY0YjgzODM2MTI5ODA1NjViOTA1MDkyOTE1MDUwNTY1YjYxMjY1YzgxNjEyZTdhNTY1YjgyNTI1MDUwNTY1YjYxMjY2YjgxNjEyZTdhNTY1YjgyNTI1MDUwNTY1YjYwMDA2MTI2N2M4MjYxMmQ5NzU2NWI2MTI2ODY4MTg1NjEyZTFhNTY1YjkzNTA2MTI2OTE4MzYxMmQ0NzU2NWI4MDYwMDA1YjgzODExMDE1NjEyNmMyNTc4MTUxNjEyNmE5ODg4MjYxMjVkZjU2NWI5NzUwNjEyNmI0ODM2MTJkZDk1NjViOTI1MDUwNjAwMTgxMDE5MDUwNjEyNjk1NTY1YjUwODU5MzUwNTA1MDUwOTI5MTUwNTA1NjViNjAwMDYxMjZkYTgyNjEyZGEyNTY1YjYxMjZlNDgxODU2MTJlMmI1NjViOTM1MDYxMjZlZjgzNjEyZDU3NTY1YjgwNjAwMDViODM4MTEwMTU2MTI3MjA1NzgxNTE2MTI3MDc4ODgyNjEyNWY3NTY1Yjk3NTA2MTI3MTI4MzYxMmRlNjU2NWI5MjUwNTA2MDAxODEwMTkwNTA2MTI2ZjM1NjViNTA4NTkzNTA1MDUwNTA5MjkxNTA1MDU2NWI2MDAwNjEyNzM4ODI2MTJkYWQ1NjViNjEyNzQyODE4NTYxMmUzYzU2NWI5MzUwNjEyNzRkODM2MTJkNjc1NjViODA2MDAwNWI4MzgxMTAxNTYxMjc3ZTU3ODE1MTYxMjc2NTg4ODI2MTI2MGY1NjViOTc1MDYxMjc3MDgzNjEyZGYzNTY1YjkyNTA1MDYwMDE4MTAxOTA1MDYxMjc1MTU2NWI1MDg1OTM1MDUwNTA1MDkyOTE1MDUwNTY1YjYwMDA2MTI3OTY4MjYxMmRiODU2NWI2MTI3YTA4MTg1NjEyZTRkNTY1YjkzNTA2MTI3YWI4MzYxMmQ3NzU2NWI4MDYwMDA1YjgzODExMDE1NjEyN2RjNTc4MTUxNjEyN2MzODg4MjYxMjYyNzU2NWI5NzUwNjEyN2NlODM2MTJlMDA1NjViOTI1MDUwNjAwMTgxMDE5MDUwNjEyN2FmNTY1YjUwODU5MzUwNTA1MDUwOTI5MTUwNTA1NjViNjAwMDYxMjdmNDgyNjEyZGMzNTY1YjYxMjdmZTgxODU2MTJlNWU1NjViOTM1MDgzNjAyMDgyMDI4NTAxNjEyODEwODU2MTJkODc1NjViODA2MDAwNWI4NTgxMTAxNTYxMjg0YzU3ODQ4NDAzODk1MjgxNTE2MTI4MmQ4NTgyNjEyNjNmNTY1Yjk0NTA2MTI4Mzg4MzYxMmUwZDU2NWI5MjUwNjAyMDhhMDE5OTUwNTA2MDAxODEwMTkwNTA2MTI4MTQ1NjViNTA4Mjk3NTA4Nzk1NTA1MDUwNTA1MDUwOTI5MTUwNTA1NjViNjEyODY3ODE2MTJlOGM1NjViODI1MjUwNTA1NjViNjEyODc2ODE2MTJlOGM1NjViODI1MjUwNTA1NjViNjAwMDYxMjg4NzgyNjEyZGNlNTY1YjYxMjg5MTgxODU2MTJlNmY1NjViOTM1MDYxMjhhMTgxODU2MDIwODYwMTYxMmYyMDU2NWI4MDg0MDE5MTUwNTA5MjkxNTA1MDU2NWI2MTI4YjY4MTYxMmU5ODU2NWI4MjUyNTA1MDU2NWI2MTI4YzU4MTYxMmVmYjU2NWI4MjUyNTA1MDU2NWI2MTI4ZDQ4MTYxMmVhZjU2NWI4MjUyNTA1MDU2NWI2MTI4ZTM4MTYxMmVhZjU2NWI4MjUyNTA1MDU2NWI2MDYwODIwMTYwMDA4MjAxNTE2MTI4ZmY2MDAwODUwMTgyNjEyNjUzNTY1YjUwNjAyMDgyMDE1MTYxMjkxMjYwMjA4NTAxODI2MTI4Y2I1NjViNTA2MDQwODIwMTUxNjEyOTI1NjA0MDg1MDE4MjYxMjg1ZTU2NWI1MDUwNTA1MDU2NWI2MDgwODIwMTYwMDA4MjAxNTE2MTI5NDE2MDAwODUwMTgyNjEyNjUzNTY1YjUwNjAyMDgyMDE1MTYxMjk1NDYwMjA4NTAxODI2MTI2NTM1NjViNTA2MDQwODIwMTUxNjEyOTY3NjA0MDg1MDE4MjYxMjhjYjU2NWI1MDYwNjA4MjAxNTE2MTI5N2E2MDYwODUwMTgyNjEyODVlNTY1YjUwNTA1MDUwNTY1YjYwMDA2MDYwODMwMTYwMDA4MzAxNTE2MTI5OTg2MDAwODYwMTgyNjEyNjUzNTY1YjUwNjAyMDgzMDE1MTg0ODIwMzYwMjA4NjAxNTI2MTI5YjA4MjgyNjEyNzJkNTY1YjkxNTA1MDYwNDA4MzAxNTE4NDgyMDM2MDQwODYwMTUyNjEyOWNhODI4MjYxMjc4YjU2NWI5MTUwNTA4MDkxNTA1MDkyOTE1MDUwNTY1YjYwMDA2MDIwODMwMTYwMDA4MzAxNTE4NDgyMDM2MDAwODYwMTUyNjEyOWY0ODI4MjYxMjcyZDU2NWI5MTUwNTA4MDkxNTA1MDkyOTE1MDUwNTY1YjYxMmEwYTgxNjEyZWRjNTY1YjgyNTI1MDUwNTY1YjYwMDA2MTJhMWM4Mjg0NjEyODdjNTY1YjkxNTA4MTkwNTA5MjkxNTA1MDU2NWI2MDAwNjA4MDgyMDE5MDUwNjEyYTNjNjAwMDgzMDE4NzYxMjY2MjU2NWI2MTJhNDk2MDIwODMwMTg2NjEyNjYyNTY1YjYxMmE1NjYwNDA4MzAxODU2MTI2NjI1NjViNjEyYTYzNjA2MDgzMDE4NDYxMjhkYTU2NWI5NTk0NTA1MDUwNTA1MDU2NWI2MDAwNjA4MDgyMDE5MDUwNjEyYTgxNjAwMDgzMDE4NzYxMjY2MjU2NWI2MTJhOGU2MDIwODMwMTg2NjEyNjYyNTY1YjYxMmE5YjYwNDA4MzAxODU2MTI2NjI1NjViNjEyYWE4NjA2MDgzMDE4NDYxMmEwMTU2NWI5NTk0NTA1MDUwNTA1MDU2NWI2MDAwNjA2MDgyMDE5MDUwNjEyYWM2NjAwMDgzMDE4NjYxMjY2MjU2NWI2MTJhZDM2MDIwODMwMTg1NjEyNjYyNTY1YjYxMmFlMDYwNDA4MzAxODQ2MTI4NmQ1NjViOTQ5MzUwNTA1MDUwNTY1YjYwMDA2MDYwODIwMTkwNTA2MTJhZmQ2MDAwODMwMTg2NjEyNjYyNTY1YjYxMmIwYTYwMjA4MzAxODU2MTI2NjI1NjViNjEyYjE3NjA0MDgzMDE4NDYxMmEwMTU2NWI5NDkzNTA1MDUwNTA1NjViNjAwMDYwODA4MjAxOTA1MDYxMmIzNDYwMDA4MzAxODc2MTI2NjI1NjViODE4MTAzNjAyMDgzMDE1MjYxMmI0NjgxODY2MTI2NzE1NjViOTA1MDgxODEwMzYwNDA4MzAxNTI2MTJiNWE4MTg1NjEyNjcxNTY1YjkwNTA4MTgxMDM2MDYwODMwMTUyNjEyYjZlODE4NDYxMjZjZjU2NWI5MDUwOTU5NDUwNTA1MDUwNTA1NjViNjAwMDYwNjA4MjAxOTA1MDYxMmI4ZTYwMDA4MzAxODY2MTI2NjI1NjViODE4MTAzNjAyMDgzMDE1MjYxMmJhMDgxODU2MTI2NzE1NjViOTA1MDgxODEwMzYwNDA4MzAxNTI2MTJiYjQ4MTg0NjEyNmNmNTY1YjkwNTA5NDkzNTA1MDUwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDYxMmJkMzYwMDA4MzAxODQ2MTI4YWQ1NjViOTI5MTUwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDYxMmJlZTYwMDA4MzAxODQ2MTI4YmM1NjViOTI5MTUwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDYxMmMwOTYwMDA4MzAxODQ2MTI4ZGE1NjViOTI5MTUwNTA1NjViNjAwMDYwNDA4MjAxOTA1MDgxODEwMzYwMDA4MzAxNTI2MTJjMjk4MTg1NjEyOWQ3NTY1YjkwNTA4MTgxMDM2MDIwODMwMTUyNjEyYzNkODE4NDYxMjdlOTU2NWI5MDUwOTM5MjUwNTA1MDU2NWI2MDAwNjEyYzUwNjEyYzYxNTY1YjkwNTA2MTJjNWM4MjgyNjEyZjUzNTY1YjkxOTA1MDU2NWI2MDAwNjA0MDUxOTA1MDkwNTY1YjYwMDA2N2ZmZmZmZmZmZmZmZmZmZmY4MjExMTU2MTJjODY1NzYxMmM4NTYxMmY4NDU2NWI1YjYwMjA4MjAyOTA1MDYwMjA4MTAxOTA1MDkxOTA1MDU2NWI2MDAwNjdmZmZmZmZmZmZmZmZmZmZmODIxMTE1NjEyY2IyNTc2MTJjYjE2MTJmODQ1NjViNWI2MDIwODIwMjkwNTA2MDIwODEwMTkwNTA5MTkwNTA1NjViNjAwMDY3ZmZmZmZmZmZmZmZmZmZmZjgyMTExNTYxMmNkZTU3NjEyY2RkNjEyZjg0NTY1YjViNjAyMDgyMDI5MDUwNjAyMDgxMDE5MDUwOTE5MDUwNTY1YjYwMDA2N2ZmZmZmZmZmZmZmZmZmZmY4MjExMTU2MTJkMGE1NzYxMmQwOTYxMmY4NDU2NWI1YjYwMjA4MjAyOTA1MDYwMjA4MTAxOTA1MDkxOTA1MDU2NWI2MDAwNjdmZmZmZmZmZmZmZmZmZmZmODIxMTE1NjEyZDM2NTc2MTJkMzU2MTJmODQ1NjViNWI2MDIwODIwMjkwNTA2MDIwODEwMTkwNTA5MTkwNTA1NjViNjAwMDgxOTA1MDYwMjA4MjAxOTA1MDkxOTA1MDU2NWI2MDAwODE5MDUwNjAyMDgyMDE5MDUwOTE5MDUwNTY1YjYwMDA4MTkwNTA2MDIwODIwMTkwNTA5MTkwNTA1NjViNjAwMDgxOTA1MDYwMjA4MjAxOTA1MDkxOTA1MDU2NWI2MDAwODE5MDUwNjAyMDgyMDE5MDUwOTE5MDUwNTY1YjYwMDA4MTUxOTA1MDkxOTA1MDU2NWI2MDAwODE1MTkwNTA5MTkwNTA1NjViNjAwMDgxNTE5MDUwOTE5MDUwNTY1YjYwMDA4MTUxOTA1MDkxOTA1MDU2NWI2MDAwODE1MTkwNTA5MTkwNTA1NjViNjA=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwoC8nUXYelqqit2RLiKiyMUraM8mqAsmkUgr4gSSrvoDxpS5wf8+Jz2Q9yYqj9MgtGgwIgLbkrQYQy5GSpwIiDwoJCMS15K0GEJoaEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjFteStBhCgGhICGAISAhgDGNyDizMiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBkgsSAxjyDCKKCzAwODE1MTkwNTA5MTkwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDkxOTA1MDU2NWI2MDAwNjAyMDgyMDE5MDUwOTE5MDUwNTY1YjYwMDA2MDIwODIwMTkwNTA5MTkwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDkxOTA1MDU2NWI2MDAwNjAyMDgyMDE5MDUwOTE5MDUwNTY1YjYwMDA4MjgyNTI2MDIwODIwMTkwNTA5MjkxNTA1MDU2NWI2MDAwODI4MjUyNjAyMDgyMDE5MDUwOTI5MTUwNTA1NjViNjAwMDgyODI1MjYwMjA4MjAxOTA1MDkyOTE1MDUwNTY1YjYwMDA4MjgyNTI2MDIwODIwMTkwNTA5MjkxNTA1MDU2NWI2MDAwODI4MjUyNjAyMDgyMDE5MDUwOTI5MTUwNTA1NjViNjAwMDgxOTA1MDkyOTE1MDUwNTY1YjYwMDA2MTJlODU4MjYxMmViYzU2NWI5MDUwOTE5MDUwNTY1YjYwMDA4MTE1MTU5MDUwOTE5MDUwNTY1YjYwMDA4MTkwNTA5MTkwNTA1NjViNjAwMDgxNjAwMzBiOTA1MDkxOTA1MDU2NWI2MDAwODE2MDA3MGI5MDUwOTE5MDUwNTY1YjYwMDA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MjE2OTA1MDkxOTA1MDU2NWI2MDAwODE5MDUwOTE5MDUwNTY1YjYwMDA2MTJlZjMzNjg0ODQ2MTFlNDY1NjViOTA1MDkyOTE1MDUwNTY1YjYwMDA2MTJmMDY4MjYxMmVhZjU2NWI5MDUwOTE5MDUwNTY1YjYwMDA2MTJmMTkzNjgzNjEyMWUyNTY1YjkwNTA5MTkwNTA1NjViNjAwMDViODM4MTEwMTU2MTJmM2U1NzgwODIwMTUxODE4NDAxNTI2MDIwODEwMTkwNTA2MTJmMjM1NjViODM4MTExMTU2MTJmNGQ1NzYwMDA4NDg0MDE1MjViNTA1MDUwNTA1NjViNjEyZjVjODI2MTJmZGI1NjViODEwMTgxODExMDY3ZmZmZmZmZmZmZmZmZmZmZjgyMTExNzE1NjEyZjdiNTc2MTJmN2E2MTJmODQ1NjViNWI4MDYwNDA1MjUwNTA1MDU2NWI3ZjRlNDg3YjcxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MDAwNTI2MDQxNjAwNDUyNjAyNDYwMDBmZDViNjAwMDgwZmQ1YjYwMDA4MGZkNWI2MDAwODBmZDViNjAwMDgwZmQ1YjYwMDA4MGZkNWI2MDAwODBmZDViNjAwMDgwZmQ1YjYwMDA4MGZkNWI2MDAwNjAxZjE5NjAxZjgzMDExNjkwNTA5MTkwNTA1NjViNjEyZmY1ODE2MTJlN2E1NjViODExNDYxMzAwMDU3NjAwMDgwZmQ1YjUwNTY1YjYxMzAwYzgxNjEyZThjNTY1YjgxMTQ2MTMwMTc1NzYwMDA4MGZkNWI1MDU2NWI2MTMwMjM4MTYxMmVhMjU2NWI4MTE0NjEzMDJlNTc2MDAwODBmZDViNTA1NjViNjEzMDNhODE2MTJlYWY1NjViODExNDYxMzA0NTU3NjAwMDgwZmQ1YjUwNTY1YjYxMzA1MTgxNjEyZWRjNTY1YjgxMTQ2MTMwNWM1NzYwMDA4MGZkNWI1MDU2ZmVhMjY0Njk3MDY2NzM1ODIyMTIyMGZiNWJkY2E2MmRjYzhjNWNjYjczNmE1NTZhZjEwZDRlNGI4ZTRlYjQzZGQyMjI3NGUxYmVlZmIxMWY1YTBiMTY2NDczNmY2YzYzNDMwMDA4MDcwMDMz","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwNaIh3sLsA6aD0wlkv/foEIKuK3w771heHWbDHtEoeFThg+bPWk/OSwsMh09rly05GgsIgbbkrQYQk9/ASiIPCgkIxbXkrQYQoBoSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjFteStBhCiGhICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGPIMGiISIJuoG/Aj2KYxIxCs6zvVQJ+swm+mkUFr8OeMnwTuoZAaIKDCHkIFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGPMMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBnQqW23t/NqAwJwbE0ei1ABbx5vFG1V/7Svw8+/esHU5wvIn5+C2NWWNRwy6Gm54gaDAiBtuStBhDD1KqvAiIPCgkIxbXkrQYQohoSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDwvYIOQspjCgMY8wwSlWFggGBAUjSAFWEAEFdgAID9W1BgBDYQYQEWV2AANWDgHIBjmyPT2RFhAKJXgGPfbAb1EWEAcVeAY99sBvUUYQOLV4Bj6sbz/hRhA7tXgGPveDm2FGED61eAY/JbEgAUYQQbV4Bj+Ej+xBRhBEtXYQEWVluAY5sj09kUYQLLV4BjrDbvtBRhAvtXgGPHZiDKFGEDK1eAY8wlKPAUYQNbV2EBFlZbgGNsQKd3EWEA6VeAY2xAp3cUYQHbV4Bjbaax8BRhAgtXgGOEK3HbFGECO1eAY5QuAaMUYQJrV4Bjlw4j0hRhAptXYQEWVluAYxHh/AcUYQEbV4BjFdrL6hRhAUtXgGNLpnA1FGEBe1eAY1gTFVEUYQGrV1tgAID9W2EBNWAEgDYDgQGQYQEwkZBhIrZWW2EEe1ZbYEBRYQFCkZBhK/RWW2BAUYCRA5DzW2EBZWAEgDYDgQGQYQFgkZBhIrZWW2EFl1ZbYEBRYQFykZBhK/RWW2BAUYCRA5DzW2EBlWAEgDYDgQGQYQGQkZBhIk9WW2EGtVZbYEBRYQGikZBhK75WW2BAUYCRA5DzW2EBxWAEgDYDgQGQYQHAkZBhJH5WW2EHFFZbYEBRYQHSkZBhK75WW2BAUYCRA5DzW2EB9WAEgDYDgQGQYQHwkZBhIrZWW2EHcVZbYEBRYQICkZBhK/RWW2BAUYCRA5DzW2ECJWAEgDYDgQGQYQIgkZBhIk9WW2EIWFZbYEBRYQIykZBhK75WW2BAUYCRA5DzW2ECVWAEgDYDgQGQYQJQkZBhIrZWW2EIt1ZbYEBRYQJikZBhK/RWW2BAUYCRA5DzW2EChWAEgDYDgQGQYQKAkZBhI3BWW2EJnlZbYEBRYQKSkZBhK75WW2BAUYCRA5DzW2ECtWAEgDYDgQGQYQKwkZBhJWNWW2EJ+1ZbYEBRYQLCkZBhK75WW2BAUYCRA5DzW2EC5WAEgDYDgQGQYQLgkZBhIrZWW2EKbFZbYEBRYQLykZBhK/RWW2BAUYCRA5DzW2EDFWAEgDYDgQGQYQMQkZBhJWNWW2ELilZbYEBRYQMikZBhK75WW2BAUYCRA5DzW2EDRWAEgDYDgQGQYQNAkZBhIx1WW2EL+1ZbYEBRYQNSkZBhK75WW2BAUYCRA5DzW2EDdWAEgDYDgQGQYQNwkZBhI8NWW2EMWFZbYEBRYQOCkZBhK75WW2BAUYCRA5DzW2EDpWAEgDYDgQGQYQOgkZBhI3BWW2EMt1ZbYEBRYQOykZBhK75WW2BAUYCRA5DzW2ED1WAEgDYDgQGQYQPQkZBhIrZWW2ENFFZbYEBRYQPikZBhK/RWW2BAUYCRA5DzW2EEBWAEgDYDgQGQYQQAkZBhI3BWW2EOMFZbYEBRYQQSkZBhK75WW2BAUYCRA5DzW2EENWAEgDYDgQGQYQQwkZBhIx1WW2EOjVZbYEBRYQRCkZBhK75WW2BAUYCRA5DzW2EEZWAEgDYDgQGQYQRgkZBhI3BWW2EO6lZbYEBRYQRykZBhK75WW2BAUYCRA5DzW2AAgGAAYQFnc///////////////////////////FmObI9PZYOAbiIiIiGBAUWAkAWEEuJSTkpGQYSpsVltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhBSKRkGEqEFZbYABgQFGAgwOBhVr0kVBQPYBgAIEUYQVdV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YQViVltgYJFQW1CRUJFQgWEFc1dgFWEFiFZbgIBgIAGQUYEBkGEFh5GQYSUJVltbYAMLklBQUJSTUFBQUFZbYACAYABhAWdz//////////////////////////8WYxXay+pg4BuIiIiIYEBRYCQBYQXUlJOSkZBhKmxWW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEGPpGQYSoQVltgAGBAUYCDA4FgAIZa8ZFQUD2AYACBFGEGe1dgQFGRUGAfGWA/PQEWggFgQFI9glI9YABgIIQBPmEGgFZbYGCRUFtQkVCRUIFhBpFXYBVhBqZWW4CAYCABkFGBAZBhBqWRkGElCVZbW2ADC5JQUFCUk1BQUFBWW2AAYQbDhYWFhWEPR1ZbkFB/kKXPTP/oi07bsEHPx6ioEsSKXsMLhGQPs3aQh1Fo46qBYEBRYQb0kZBhK75WW2BAUYCRA5ChYBZgAwuBFGEHDFdgAID9W5STUFBQUFZbYABhByGEhIRhEGVWW5BQf5Clz0z/6ItO27BBz8eoqBLEil7DC4RkD7N2kIdRaOOqgWBAUWEHUpGQYSu+VltgQFGAkQOQoWAWYAMLgRRhB2pXYACA/VuTklBQUFZbYAAwc///////////////////////////FmObI9PZhoaGhmBAUYVj/////xZg4BuBUmAEAWEHspSTkpGQYSpsVltgIGBAUYCDA4FgAIeAOxWAFWEHzFdgAID9W1Ba8RWAFWEH4Fc9YACAPj1gAP1bUFBQUGBAUT1gHxlgH4IBFoIBgGBAUlCBAZBhCASRkGElNlZbkFB/kKXPTP/oi07bsEHPx6ioEsSKXsMLhGQPs3aQh1Fo46qBYEBRYQg1kZBhK9lWW2BAUYCRA5ChYBZgAwuBYAcLFGEIUFdgAID9W5STUFBQUFZbYABhCGaFhYWFYRGAVluQUH+Qpc9M/+iLTtuwQc/HqKgSxIpewwuEZA+zdpCHUWjjqoFgQFFhCJeRkGErvlZbYEBRgJEDkKFgFmADC4EUYQivV2AAgP1blJNQUFBQVltgADBz//////////////////////////8WYxXay+qGhoaGYEBRhWP/////FmDgG4FSYAQBYQj4lJOSkZBhKmxWW2AgYEBRgIMDgWAAh4A7FYAVYQkSV2AAgP1bUFrxFYAVYQkmVz1gAIA+PWAA/VtQUFBQYEBRPWAfGWAfggEWggGAYEBSUIEBkGEJSpGQYSU2VluQUH+Qpc9M/+iLTtuwQc/HqKgSxIpewwuEZA+zdpCHUWjjqoFgQFFhCXuRkGEr2VZbYEBRgJEDkKFgFmADC4FgBwsUYQmWV2AAgP1blJNQUFBQVltgAGEJq4SEhGESnlZbkFB/kKXPTP/oi07bsEHPx6ioEsSKXsMLhGQPs3aQh1Fo46qBYEBRYQnckZBhK75WW2BAUYCRA5ChYBZgAwuBFGEJ9FdgAID9W5OSUFBQVltgAGEKHIRhCgqQYS8NVluEhJBhCheRkGEu5lZbYRO3VluQUH+Qpc9M/+iLTtuwQc/HqKgSxIpewwuEZA+zdpCHUWjjqoFgQFFhCk2RkGErvlZbYEBRgJEDkKFgFmADC4EUYQplV2AAgP1bk5JQUFBWW2AAgGAAYQFnc///////////////////////////FmObI9PZYOAbiIiIiGBAUWAkAWEKqZSTkpGQYSpsVltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhCxORkGEqEFZbYABgQFGAgwOBYACGWvGRUFA9gGAAgRRhC1BXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hC1VWW2BgkVBbUJFQkVCBYQtmV2AVYQt7VluAgGAgAZBRgQGQYQt6kZBhJQlWW1tgAwuSUFBQlJNQUFBQVltgAGELq4RhC5mQYS8NVluEhJBhC6aRkGEu5lZbYRTPVluQUH+Qpc9M/+iLTtuwQc/HqKgSxIpewwuEZA+zdpCHUWjjqoFgQFFhC9yRkGErvlZbYEBRgJEDkKFgFmADC4EUYQv0V2AAgP1bk5JQUFBWW2AAYQwIhISEYRXlVluQUH+Qpc9M/+iLTtuwQc/HqKgSxIpewwuEZA+zdpCHUWjjqoFgQFFhDDmRkGErvlZbYEBRgJEDkKFgFmADC4EUYQxRV2AAgP1bk5JQUFBWW2AAYQxmhYWFhWEW/lZbkFB/kKXPTP/oi07bsEHPx6ioEsSKXsMLhGQPs3aQh1Fo46qBYEBRYQyXkZBhK75WW2BAUYCRA5ChYBZgAwuBFGEMr1dgAID9W5STUFBQUFZbYABhDMSEhIRhGBxWW5BQf5Clz0z/6ItO27BBz8eoqBLEil7DC4RkD7N2kIdRaOOqgWBAUWEM9ZGQYSu+VltgQFGAkQOQoWAWYAMLgRRhDQ1XYACA/VuTklBQUFZbYACAYABhAWdz//////////////////////////8WYxXay+pg4BuIiIiIYEBRYCQBYQ1RlJOSkZBhKmxWW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWENu5GQYSoQVltgAGBAUYCDA4GFWvSRUFA9gGAAgRRhDfZXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hDftWW2BgkVBbUJFQkVCBYQ4MV2AVYQ4hVluAgGAgAZBRgQGQYQ4gkZBhJQlWW1tgAwuSUFBQlJNQUFBQVltgAGEOPYSEhGEZN1ZbkFB/kKXPTP/oi07bsEHPx6ioEsSKXsMLhGQPs3aQh1Fo46qBYEBRYQ5ukZBhK75WW2BAUYCRA5ChYBZgAwuBFGEOhldgAID9W5OSUFBQVltgAGEOmoSEhGEaUFZbkFB/kKXPTP/oi07bsEHPx6ioEsSKXsMLhGQPs3aQh1Fo46qBYEBRYQ7LkZBhK75WW2BAUYCRA5ChYBZgAwuBFGEO41dgAID9W5OSUFBQVltgAGEO94SEhGEba1ZbkFB/kKXPTP/oi07bsEHPx6ioEsSKXsMLhGQPs3aQh1Fo46qBYEBRYQ8okZBhK75WW2BAUYCRA5ChYBZgAwuBFGEPQFdgAID9W5OSUFBQVltgAIBgAGEBZ3P//////////////////////////xZj7KNpF2DgG4iIiIhgQFFgJAFhD4SUk5KRkGEqJ1ZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQ/ukZBhKhBWW2AAYEBRgIMDgWAAhlrxkVBQPYBgAIEUYRArV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YRAwVltgYJFQW1CRUJFQgWEQQVdgFWEQVlZbgIBgIAGQUYEBkGEQVZGQYSUJVltbYAMLklBQUJSTUFBQUFZbYACAYABhAWdz//////////////////////////8WY4K7pJNg4BuHh4dgQFFgJAFhEKCTkpGQYSt5VltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhEQqRkGEqEFZbYABgQFGAgwOBYACGWvGRUFA9gGAAgRRhEUdXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hEUxWW2BgkVBbUJFQkVCBYRFdV2AVYRFyVluAgGAgAZBRgQGQYRFxkZBhJQlWW1tgAwuSUFBQk5JQUFBWW2AAgGAAYQFnc///////////////////////////FmNc/JARYOAbiIiIiGBAUWAkAWERvZSTkpGQYSonVltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhEieRkGEqEFZbYABgQFGAgwOBYACGWvGRUFA9gGAAgRRhEmRXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hEmlWW2BgkVBbUJFQkVCBYRJ6V2AVYRKPVluAgGAgAZBRgQGQYRKOkZBhJQlWW1tgAwuSUFBQlJNQUFBQVltgAIBgAGEBZ3P//////////////////////////xZjczaq8GDgG4eHh2BAUWAkAWES2ZOSkZBhKuhWW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWETQ5GQYSoQVltgAGBAUYCDA4GFWvSRUFA9gGAAgRRhE35XYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hE4NWW2BgkVBbUJFQkVCBYROUV2AVYROpVluAgGAgAZBRgQGQYROokZBhJQlWW1tgAwuSUFBQk5JQUFBWW2AAgGAAYQFnc///////////////////////////FmMOcYBPYOAbhoZgQFFgJAFhE/CSkZBhLA9WW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEUWpGQYSoQVltgAGBAUYCDA4FgAIZa8ZFQUD2AYACBFGEUl1dgQFGRUGAfGWA/PQEWggFgQFI9glI9YABgIIQBPmEUnFZbYGCRUFtQkVCRUIFhFK1XYBVhFMJWW4CAYCABkFGBAZBhFMGRkGElCVZbW2ADC5JQUFCSkVBQVltgAIBgAGEBZ3P//////////////////////////xZjDnGAT2DgG4aGYEBRYCQBYRUIkpGQYSwPVltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhFXKRkGEqEFZbYABgQFGAgwOBhVr0kVBQPYBgAIEUYRWtV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YRWyVltgYJFQW1CRUJFQgWEVw1dgFWEV2FZbgIBgIAGQUYEBkGEV15GQYSUJVltbYAMLklBQUJKRUFBWW2AAgGAAYQFnc///////////////////////////FmM2dgXKYOAbh4eHYEBRYCQBYRYgk5KRkGEqsVZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYRaKkZBhKhBWW2AAYEBRgIMDgYVa9JFQUD2AYACBFGEWxVdgQFGRUGAfGWA/PQEWggFgQFI9glI9YABgIIQBPmEWylZbYGCRUFtQkVCRUIFhFttXYBVhFvBWW4CAYCABkFGBAZBhFu+RkGElCVZbW2ADC5JQUFCTklBQUFZbYACAYABhAWdz//////////////////////////8WYyxLoZFg4BuIiIiIYEBRYCQBYRc7lJOSkZBhKx9WW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEXpZGQYSoQVltgAGBAUYCDA4FgAIZa8ZFQUD2AYACBFGEX4ldgQFGRUGAfGWA/PQEWggFgQFI9glI9YABgIIQBPmEX51ZbYGCRUFtQkVCRUIFhF/hXYBVhGA1WW4CAYCABkFGBAZBhGAyRkGElCVZbW2ADC5JQUFCUk1BQUFBWW2AAgGAAYQFnc///////////////////////////FmNzNqrwYOAbh4eHYEBRYCQBYRhXk5KRkGEq6FZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYRjBkZBhKhBWW2AAYEBRgIMDgWAAhlrxkVBQPYBgAIEUYRj+V2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YRkDVltgYJFQW1CRUJFQgWEZFFdgFWEZKVZbgIBgIAGQUYEBkGEZKJGQYSUJVltbYAMLklBQUJOSUFBQVltgAIBgAGEBZ3P//////////////////////////xZj4fIcZ2DgG4eHh2BAUWAkAWEZcpOSkZBhKuhWW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEZ3JGQYSoQVltgAGBAUYCDA4GFWvSRUFA9gGAAgRRhGhdXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hGhxWW2BgkVBbUJFQkVCBYRotV2AVYRpCVluAgGAgAZBRgQGQYRpBkZBhJQlWW1tgAwuSUFBQk5JQUFBWW2AAgGAAYQFnc///////////////////////////FmM2dgXKYOAbh4eHYEBRYCQBYRqLk5KRkGEqsVZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYRr1kZBhKhBWW2AAYEBRgIMDgWAAhlrxkVBQPYBgAIEUYRsyV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YRs3VltgYJFQW1CRUJFQgWEbSFdgFWEbXVZbgIBgIAGQUYEBkGEbXJGQYSUJVltbYAMLklBQUJOSUFBQVltgAIBgAGEBZ3P//////////////////////////xZj4fIcZ2DgG4eHh2BAUWAkAWEbppOSkZBhKuhWW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEcEJGQYSoQVltgAGBAUYCDA4FgAIZa8ZFQUD2AYACBFGEcTVdgQFGRUGAfGWA/PQEWggFgQFI9glI9YABgIIQBPmEcUlZbYGCRUFtQkVCRUIFhHGNXYBVhHHhWW4CAYCABkFGBAZBhHHeRkGElCVZbW2ADC5JQUFCTklBQUFZbYABhHJlhHJSEYSxrVlthLEZWW5BQgIOCUmAgggGQUIKFYCCGAoIBERVhHLxXYRy7YS/MVltbYABbhYEQFWEc7FeBYRzSiIJhHtRWW4RSYCCEAZNQYCCDAZJQUGABgQGQUGEcv1ZbUFBQk5JQUFBWW2AAYR0JYR0EhGEsl1ZbYSxGVluQUICDglJgIIIBkFCChWAghgKCAREVYR0sV2EdK2EvzFZbW2AAW4WBEBVhHVxXgWEdQoiCYSAhVluEUmAghAGTUGAggwGSUFBgAYEBkFBhHS9WW1BQUJOSUFBQVltgAGEdeWEddIRhLMNWW2EsRlZbkFCAg4JSYCCCAZBQgoVgYIYCggERFWEdnFdhHZthL8xWW1tgAFuFgRAVYR3MV4FhHbKIgmEgS1ZbhFJgIIQBk1BgYIMBklBQYAGBAZBQYR2fVltQUFCTklBQUFZbYABhHelhHeSEYSzvVlthLEZWW5BQgIOCUmAgggGQUIKFYICGAoIBERVhHgxXYR4LYS/MVltbYABbhYEQFWEePFeBYR4iiIJhIK9WW4RSYCCEAZNQYICDAZJQUGABgQGQUGEeD1ZbUFBQk5JQUFBWW2AAYR5ZYR5UhGEtG1ZbYSxGVluQUICDglJgIIIBkFCChWAghgKCAREVYR58V2Eee2EvzFZbW2AAW4WBEBVhHspXgTVn//////////+BERVhHqJXYR6hYS+4VltbgIYBYR6viYJhISdWW4VSYCCFAZRQYCCEAZNQUFBgAYEBkFBhHn9WW1BQUJOSUFBQVltgAIE1kFBhHuOBYS/sVluSkVBQVltgAIJgH4MBEmEe/ldhHv1hL7hWW1uBNWEfDoSCYCCGAWEchlZbkVBQkpFQUFZbYACCYB+DARJhHyxXYR8rYS+4VltbgTVhHzyEgmAghgFhHPZWW5FQUJKRUFBWW2AAgmAfgwESYR9aV2EfWWEvuFZbW4E1YR9qhIJgIIYBYR1mVluRUFCSkVBQVltgAIJgH4MBEmEfiFdhH4dhL7hWW1uBNWEfmISCYCCGAWEd1lZbkVBQkpFQUFZbYACAg2AfhAESYR+3V2EftmEvuFZbW4I1kFBn//////////+BERVhH9RXYR/TYS+zVltbYCCDAZFQg2AgggKDAREVYR/wV2Ef72EvzFZbW5JQkpBQVltgAIE1kFBhIAaBYTADVluSkVBQVltgAIFRkFBhIBuBYTAaVluSkVBQVltgAIE1kFBhIDCBYTAxVluSkVBQVltgAIFRkFBhIEWBYTAxVluSkVBQVltgAGBggoQDEhVhIGFXYSBgYS/CVltbYSBrYGBhLEZWW5BQYABhIHuEgoUBYR7UVltgAIMBUlBgIGEgj4SChQFhICFWW2AggwFSUGBAYSCjhIKFAWEf91ZbYECDAVJQkpFQUFZbYABggIKEAxIVYSDFV2EgxGEvwlZbW2Egz2CAYSxGVluQUGAAYSDfhIKFAWEe1FZbYACDAVJQYCBhIPOEgoUBYR7UVltgIIMBUlBgQGEhB4SChQFhICFWW2BAgwFSUGBgYSEbhIKFAWEf91ZbYGCDAVJQkpFQUFZbYABgYIKEAxIVYSE9V2EhPGEvwlZbW2EhR2BgYSxGVluQUGAAYSFXhIKFAWEe1FZbYACDAVJQYCCCATVn//////////+BERVhIXtXYSF6YS/HVltbYSGHhIKFAWEfRVZbYCCDAVJQYECCATVn//////////+BERVhIatXYSGqYS/HVltbYSG3hIKFAWEfc1ZbYECDAVJQkpFQUFZbYABgIIKEAxIVYSHZV2Eh2GEvvVZbW4GQUJKRUFBWW2AAYCCChAMSFWEh+FdhIfdhL8JWW1thIgJgIGEsRlZbkFBgAIIBNWf//////////4ERFWEiIldhIiFhL8dWW1thIi6EgoUBYR9FVltgAIMBUlCSkVBQVltgAIE1kFBhIkmBYTBIVluSkVBQVltgAIBgAIBggIWHAxIVYSJpV2EiaGEv1lZbW2AAYSJ3h4KIAWEe1FZblFBQYCBhIoiHgogBYR7UVluTUFBgQGEimYeCiAFhHtRWW5JQUGBgYSKqh4KIAWEgIVZbkVBQkpWRlFCSUFZbYACAYACAYICFhwMSFWEi0FdhIs9hL9ZWW1tgAGEi3oeCiAFhHtRWW5RQUGAgYSLvh4KIAWEe1FZbk1BQYEBhIwCHgogBYR7UVluSUFBgYGEjEYeCiAFhIjpWW5FQUJKVkZRQklBWW2AAgGAAYGCEhgMSFWEjNldhIzVhL9ZWW1tgAGEjRIaChwFhHtRWW5NQUGAgYSNVhoKHAWEe1FZbklBQYEBhI2aGgocBYR/3VluRUFCSUJJQklZbYACAYABgYISGAxIVYSOJV2EjiGEv1lZbW2AAYSOXhoKHAWEe1FZbk1BQYCBhI6iGgocBYR7UVluSUFBgQGEjuYaChwFhIjpWW5FQUJJQklCSVltgAIBgAIBggIWHAxIVYSPdV2Ej3GEv1lZbW2AAYSPrh4KIAWEe1FZblFBQYCCFATVn//////////+BERVhJAxXYSQLYS/RVltbYSQYh4KIAWEe6VZbk1BQYECFATVn//////////+BERVhJDlXYSQ4YS/RVltbYSRFh4KIAWEe6VZbklBQYGCFATVn//////////+BERVhJGZXYSRlYS/RVltbYSRyh4KIAWEfF1ZbkVBQkpWRlFCSUFZbYACAYABgYISGAxIVYSSXV2EklmEv1lZbW2AAYSSlhoKHAWEe1FZbk1BQYCCEATVn//////////+BERVhJMZXYSTFYS/RVltbYSTShoKHAWEe6VZbklBQYECEATVn//////////+BERVhJPNXYSTyYS/RVltbYST/hoKHAWEfF1ZbkVBQklCSUJJWW2AAYCCChAMSFWElH1dhJR5hL9ZWW1tgAGElLYSChQFhIAxWW5FQUJKRUFBWW2AAYCCChAMSFWElTFdhJUthL9ZWW1tgAGElWoSChQFhIDZWW5FQUJKRUFBWW2AAgGAAYECEhgMSFWElfFdhJXthL9ZWW1tgAIQBNWf//////////4ERFWElmldhJZlhL9FWW1thJaaGgocBYSHDVluTUFBgIIQBNWf//////////4ERFWElx1dhJcZhL9FWW1thJdOGgocBYR+hVluSUJJQUJJQklCSVltgAGEl64ODYSZTVltgIIMBkFCSkVBQVltgAGEmA4ODYSjLVltgIIMBkFCSkVBQVltgAGEmG4ODYSjpVltgYIMBkFCSkVBQVltgAGEmM4ODYSkrVltggIMBkFCSkVBQVltgAGEmS4ODYSmAVluQUJKRUFBWW2EmXIFhLnpWW4JSUFBWW2Ema4FhLnpWW4JSUFBWW2AAYSZ8gmEtl1ZbYSaGgYVhLhpWW5NQYSaRg2EtR1ZbgGAAW4OBEBVhJsJXgVFhJqmIgmEl31Zbl1BhJrSDYS3ZVluSUFBgAYEBkFBhJpVWW1CFk1BQUFCSkVBQVltgAGEm2oJhLaJWW2Em5IGFYS4rVluTUGEm74NhLVdWW4BgAFuDgRAVYScgV4FRYScHiIJhJfdWW5dQYScSg2Et5lZbklBQYAGBAZBQYSbzVltQhZNQUFBQkpFQUFZbYABhJziCYS2tVlthJ0KBhWEuPFZbk1BhJ02DYS1nVluAYABbg4EQFWEnfleBUWEnZYiCYSYPVluXUGEncINhLfNWW5JQUGABgQGQUGEnUVZbUIWTUFBQUJKRUFBWW2AAYSeWgmEtuFZbYSeggYVhLk1WW5NQYSerg2Etd1ZbgGAAW4OBEBVhJ9xXgVFhJ8OIgmEmJ1Zbl1BhJ86DYS4AVluSUFBgAYEBkFBhJ69WW1CFk1BQUFCSkVBQVltgAGEn9IJhLcNWW2En/oGFYS5eVluTUINgIIIChQFhKBCFYS2HVluAYABbhYEQFWEoTFeEhAOJUoFRYSgthYJhJj9WW5RQYSg4g2EuDVZbklBgIIoBmVBQYAGBAZBQYSgUVltQgpdQh5VQUFBQUFCSkVBQVlthKGeBYS6MVluCUlBQVlthKHaBYS6MVluCUlBQVltgAGEoh4JhLc5WW2EokYGFYS5vVluTUGEooYGFYCCGAWEvIFZbgIQBkVBQkpFQUFZbYSi2gWEumFZbglJQUFZbYSjFgWEu+1ZbglJQUFZbYSjUgWEur1ZbglJQUFZbYSjjgWEur1ZbglJQUFZbYGCCAWAAggFRYSj/YACFAYJhJlNWW1BgIIIBUWEpEmAghQGCYSjLVltQYECCAVFhKSVgQIUBgmEoXlZbUFBQUFZbYICCAWAAggFRYSlBYACFAYJhJlNWW1BgIIIBUWEpVGAghQGCYSZTVltQYECCAVFhKWdgQIUBgmEoy1ZbUGBgggFRYSl6YGCFAYJhKF5WW1BQUFBWW2AAYGCDAWAAgwFRYSmYYACGAYJhJlNWW1BgIIMBUYSCA2AghgFSYSmwgoJhJy1WW5FQUGBAgwFRhIIDYECGAVJhKcqCgmEni1ZbkVBQgJFQUJKRUFBWW2AAYCCDAWAAgwFRhIIDYACGAVJhKfSCgmEnLVZbkVBQgJFQUJKRUFBWW2EqCoFhLtxWW4JSUFBWW2AAYSocgoRhKHxWW5FQgZBQkpFQUFZbYABggIIBkFBhKjxgAIMBh2EmYlZbYSpJYCCDAYZhJmJWW2EqVmBAgwGFYSZiVlthKmNgYIMBhGEo2lZblZRQUFBQUFZbYABggIIBkFBhKoFgAIMBh2EmYlZbYSqOYCCDAYZhJmJWW2Eqm2BAgwGFYSZiVlthKqhgYIMBhGEqAVZblZRQUFBQUFZbYABgYIIBkFBhKsZgAIMBhmEmYlZbYSrTYCCDAYVhJmJWW2Eq4GBAgwGEYShtVluUk1BQUFBWW2AAYGCCAZBQYSr9YACDAYZhJmJWW2ErCmAggwGFYSZiVlthKxdgQIMBhGEqAVZblJNQUFBQVltgAGCAggGQUGErNGAAgwGHYSZiVluBgQNgIIMBUmErRoGGYSZxVluQUIGBA2BAgwFSYStagYVhJnFWW5BQgYEDYGCDAVJhK26BhGEmz1ZbkFCVlFBQUFBQVltgAGBgggGQUGErjmAAgwGGYSZiVluBgQNgIIMBUmEroIGFYSZxVluQUIGBA2BAgwFSYSu0gYRhJs9WW5BQlJNQUFBQVltgAGAgggGQUGEr02AAgwGEYSitVluSkVBQVltgAGAgggGQUGEr7mAAgwGEYSi8VluSkVBQVltgAGAgggGQUGEsCWAAgwGEYSjaVluSkVBQVltgAGBAggGQUIGBA2AAgwFSYSwpgYVhKddWW5BQgYEDYCCDAVJhLD2BhGEn6VZbkFCTklBQUFZbYABhLFBhLGFWW5BQYSxcgoJhL1NWW5GQUFZbYABgQFGQUJBWW2AAZ///////////ghEVYSyGV2EshWEvhFZbW2AgggKQUGAggQGQUJGQUFZbYABn//////////+CERVhLLJXYSyxYS+EVltbYCCCApBQYCCBAZBQkZBQVltgAGf//////////4IRFWEs3ldhLN1hL4RWW1tgIIICkFBgIIEBkFCRkFBWW2AAZ///////////ghEVYS0KV2EtCWEvhFZbW2AgggKQUGAggQGQUJGQUFZbYABn//////////+CERVhLTZXYS01YS+EVltbYCCCApBQYCCBAZBQkZBQVltgAIGQUGAgggGQUJGQUFZbYACBkFBgIIIBkFCRkFBWW2AAgZBQYCCCAZBQkZBQVltgAIGQUGAgggGQUJGQUFZbYACBkFBgIIIBkFCRkFBWW2AAgVGQUJGQUFZbYACBUZBQkZBQVltgAIFRkFCRkFBWW2AAgVGQUJGQUFZbYACBUZBQkZBQVltgAIFRkFCRkFBWW2AAYCCCAZBQkZBQVltgAGAgggGQUJGQUFZbYABgIIIBkFCRkFBWW2AAYCCCAZBQkZBQVltgAGAgggGQUJGQUFZbYACCglJgIIIBkFCSkVBQVltgAIKCUmAgggGQUJKRUFBWW2AAgoJSYCCCAZBQkpFQUFZbYACCglJgIIIBkFCSkVBQVltgAIKCUmAgggGQUJKRUFBWW2AAgZBQkpFQUFZbYABhLoWCYS68VluQUJGQUFZbYACBFRWQUJGQUFZbYACBkFCRkFBWW2AAgWADC5BQkZBQVltgAIFgBwuQUJGQUFZbYABz//////////////////////////+CFpBQkZBQVltgAIGQUJGQUFZbYABhLvM2hIRhHkZWW5BQkpFQUFZbYABhLwaCYS6vVluQUJGQUFZbYABhLxk2g2Eh4lZbkFCRkFBWW2AAW4OBEBVhLz5XgIIBUYGEAVJgIIEBkFBhLyNWW4OBERVhL01XYACEhAFSW1BQUFBWW2EvXIJhL9tWW4EBgYEQZ///////////ghEXFWEve1dhL3phL4RWW1uAYEBSUFBQVlt/Tkh7cQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAFJgQWAEUmAkYAD9W2AAgP1bYACA/VtgAID9W2AAgP1bYACA/VtgAID9W2AAgP1bYACA/VtgAGAfGWAfgwEWkFCRkFBWW2Ev9YFhLnpWW4EUYTAAV2AAgP1bUFZbYTAMgWEujFZbgRRhMBdXYACA/VtQVlthMCOBYS6iVluBFGEwLldgAID9W1BWW2EwOoFhLq9WW4EUYTBFV2AAgP1bUFZbYTBRgWEu3FZbgRRhMFxXYACA/VtQVv6iZGlwZnNYIhIg+1vcpi3MjFzLc2pVavENTkuOTrQ90iJ04b7vsR9aCxZkc29sY0MACAcAMyKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAokKMZOgMY8wxKFgoUAAAAAAAAAAAAAAAAAAAAAAAABnNyBwoDGPMMEAFSFgoJCgIYAhDf+4QcCgkKAhhiEOD7hBw="},{"b64Body":"ChAKCQjGteStBhCkGhIDGOwMEgIYAxjAv+0hIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46kAEKAxjzDBDAhD0ihAFLpnA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABnAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU=","b64Record":"CiUIFiIDGPMMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAsZ6A/Mgmv6ltN0pv/K+UACK2f3a44F/Xz4sMcBNzE2NbWoKuj3Np4Jr4/2pZWufkaCwiCtuStBhCT4qFUIhAKCQjGteStBhCkGhIDGOwMKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCA5oobOv0ECgMY8wwSIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWIoACAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAACiA6jAyzAIKAxjzDBKAAgAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAaIJClz0z/6ItO27BBz8eoqBLEil7DC4RkD7N2kIdRaOOqIiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFlIXCgkKAhhiEIDMlTYKCgoDGOwMEP/LlTY="},{"b64Body":"ChIKCQjGteStBhCkGhIDGOwMIAFyGRIXCgMY8AwSBwoDGOwMEAkSBwoDGO4MEAo=","b64Record":"CgIIFhIw7ubCbsBKoEBKjqe8BGjqcryaKZD1Ka/2HCMGcTYp9byEgnK7EmROmpJjxOND7++EGgsIgrbkrQYQlOKhVCISCgkIxrXkrQYQpBoSAxjsDCABOroBCgMY5wISIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWKLpmUJu7OmKEAeyjaRcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABm4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABWoDGPMMUgBaFwoDGPAMEgcKAxjsDBAJEgcKAxjuDBAKegsIgrbkrQYQk+KhVA=="},{"b64Body":"ChAKCQjGteStBhCmGhIDGOwMEgIYAxjAv+0hIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo468AIKAxjzDBDAhD0i5AJYExVRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABnAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABm8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////////////////////////////////////2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQ==","b64Record":"CiUIFiIDGPMMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCzWwO6/2n4hGlC8VCX2oLT/NGe0lJ5PBNyoqnghtZmno9uRHdE4X/W1G/+m8O+sKkaDAiCtuStBhDDm5+5AiIQCgkIxrXkrQYQphoSAxjsDCogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wgOaKGzr9BAoDGPMMEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFiKAAgAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAogOowMswCCgMY8wwSgAIAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAGiCQpc9M/+iLTtuwQc/HqKgSxIpewwuEZA+zdpCHUWjjqiIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABZSFwoJCgIYYhCAzJU2CgoKAxjsDBD/y5U2"},{"b64Body":"ChIKCQjGteStBhCmGhIDGOwMIAFyIhIgCgMY8AwSBwoDGOwMEBMSBwoDGO4MEAoSBwoDGO8MEAo=","b64Record":"CgIIFhIwDn3KeatLLNe7Nb+Fgp5/XAIy+sOUrtosiytgaDRLCNVmC2Rk8jjnTzgDfEe9LJPPGgwIgrbkrQYQxJufuQIiEgoJCMa15K0GEKYaEgMY7AwgATqbAwoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFiiHpQFQ1Ys6YuQCgrukkwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/////////////////////////////////////////9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVqAxjzDFIAWiAKAxjwDBIHCgMY7AwQExIHCgMY7gwQChIHCgMY7wwQCnoMCIK25K0GEMObn7kC"},{"b64Body":"ChAKCQjHteStBhCoGhIDGOwMEgIYAxjAv+0hIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46kAEKAxjzDBDAhD0ihAFtprHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABnEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE=","b64Record":"CiUIFiIDGPMMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDCqrYuXd5ZG4hjUdRKdbHf7lcZvDiFo6RU+07FajLI8haSsbVmUg0WDJjSNmXXXGwaCwiDtuStBhCj2M1dIhAKCQjHteStBhCoGhIDGOwMKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCA5oobOv0ECgMY8wwSIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWIoACAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAACiA6jAyzAIKAxjzDBKAAgAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAaIJClz0z/6ItO27BBz8eoqBLEil7DC4RkD7N2kIdRaOOqIiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFlIXCgkKAhhiEIDMlTYKCgoDGOwMEP/LlTY="},{"b64Body":"ChIKCQjHteStBhCoGhIDGOwMIAFyFRITCgMY8QwaDAoDGOwMEgMY7gwYAQ==","b64Record":"CgIIFhIwH8BJ8Ft4Aw9Do2sAzXFOh7mBIq/hrPK1IMSgnYGmeJcg0etIutdac1PUPXqlU4TuGgsIg7bkrQYQpNjNXSISCgkIx7XkrQYQqBoSAxjsDCABOroBCgMY5wISIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWKIVuULG7OmKEAVz8kBEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABm4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWoDGPMMUgBaEwoDGPEMGgwKAxjsDBIDGO4MGAF6CwiDtuStBhCj2M1d"},{"b64Body":"ChAKCQjHteStBhCqGhIDGOwMEgIYAxjAv+0hIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46sAMKAxjzDBDAhD0ipAPMJSjwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABnEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABm8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM=","b64Record":"CiUIFiIDGPMMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjA9qnvVuvwCTIGOIlsh8qWsDYBJqXRwtE+DKW6ctFSO5IVK3c9jy+UjUSO+zPtE834aDAiDtuStBhDz0OrCAiIQCgkIx7XkrQYQqhoSAxjsDCogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wgOaKGzr9BAoDGPMMEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFiKAAgAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAogOowMswCCgMY8wwSgAIAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAGiCQpc9M/+iLTtuwQc/HqKgSxIpewwuEZA+zdpCHUWjjqiIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABZSFwoJCgIYYhCAzJU2CgoKAxjsDBD/y5U2"},{"b64Body":"ChIKCQjHteStBhCqGhIDGOwMIAFyIxIhCgMY8QwaDAoDGOwMEgMY7wwYAhoMCgMY7AwSAxjvDBgD","b64Record":"CgIIFhIwhDNnuAi1rqwupTKzONJ7JAkUEh99PdjmrYbGITB/X0hFmC+EZ6EIytzY3nR+xZDGGgwIg7bkrQYQ9NDqwgIiEgoJCMe15K0GEKoaEgMY7AwgATrbAwoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFiiK3AFQhYM6YqQDLEuhkQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADagMY8wxSAFohCgMY8QwaDAoDGOwMEgMY7wwYAhoMCgMY7AwSAxjvDBgDegwIg7bkrQYQ89DqwgI="}]},"transferFailsWithIncorrectAmounts":{"placeholderNum":1652,"encodedItems":[{"b64Body":"Cg8KCQjNteStBhD7GhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIA11fn2qPmdiwzy1SvMC6H4kAP31GvgckYFHDtUveQdBEICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGPUMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBZamSjqZJt8U9FDkKFr/OMLYx3lz6qJLvYh7VlCZUzrf0lS6Dml7zFfTeitCSdyW4aDAiJtuStBhDr79+zASIPCgkIzbXkrQYQ+xoSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxj1DBCAqNa5Bw=="},{"b64Body":"Cg8KCQjNteStBhD9GhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISICTesSozMPAJU610WvempxnpgEnx2lLQ4qtIj5PpVLxuEICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGPYMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjC5SXJefdGBYV7pTt8QZxXF70LCEM689DHuX0yLAMTtMtKv/1OLiIRA0Qjr7VlMbGMaDAiJtuStBhCLjvW0AyIPCgkIzbXkrQYQ/RoSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxj2DBCAqNa5Bw=="},{"b64Body":"Cg8KCQjOteStBhD/GhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIObQUipzRq9GqEnoI84h9g6R8cj2Lsxnb1AKBXR8AVy4EICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGPcMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBXEUN1TgMQKQqAkvuVDbx9xub9Io5O8OkJ0OrtiYq6tn9WW6+yAB0JDmJfN2mRZo8aDAiKtuStBhDjhYS9ASIPCgkIzrXkrQYQ/xoSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxj3DBCAqNa5Bw=="},{"b64Body":"Cg8KCQjOteStBhCBGxICGAISAhgDGIWupekCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAUwKBlRva2VuRBIIT1ZIWUpWV04g6AcqAxj2DFIiEiA+ipNhjX0BuNWhLYljHpE6MdZgMhfuRfKHFPD9RWLQgGoMCIqEv7EGEPiQlqED","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGPgMEjCxWJlLCAn4ohF0miWtGoK9G4ss8DyzT6jJ/CnpMqrLZ85qCVts/TQl/NOWf0S+W58aDAiKtuStBhCLu8i+AyIPCgkIzrXkrQYQgRsSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWg8KAxj4DBIICgMY9gwQ0A9yCgoDGPgMEgMY9gw="},{"b64Body":"Cg8KCQjPteStBhCHGxICGAISAhgDGOC2iyAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGPUMEgMY+Aw=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwN6UOiaMucbuAaeeK1jE4Sjuc3GDRyDqksBX0Fat9MKe7jdgUM558gnXP3wk4oHwIGgwIi7bkrQYQw7fLxgEiDwoJCM+15K0GEIcbEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjPteStBhCNGxICGAISAhgDGOC2iyAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGPcMEgMY+Aw=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwJqulxpCzrFhy+xK1HqYZhW0qSum0cI9pVPrAAbQN4NN7+NL9SqtcI9VYPhsHNuhqGgwIi7bkrQYQu9/GqwMiDwoJCM+15K0GEI0bEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjQteStBhCPGxICGAISAhgDGOufNiICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOchsSGQoDGPgMEggKAxj2DBDnBxIICgMY9QwQ6Ac=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwYMo35ZclXTTcVMK3aQqtdK/hmFrgojBMNC+3+ekrciwX46zdUh73laMUeCQC7nVpGgwIjLbkrQYQi4+G0QEiDwoJCNC15K0GEI8bEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAFoZCgMY+AwSCAoDGPUMEOgHEggKAxj2DBDnBw=="},{"b64Body":"Cg8KCQjQteStBhCRGxICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAiMhL+xBhDg9p2wAxptCiISIIpml6dUBZcAsnPVLTK30sKhtaVhc2iSvXCqRXiYAdZMCiM6IQNGNkKLrBpBjzKF8RUmTzonO4R1IctLkm1mKa1toXrKVQoiEiDegNJS7vyOkXcAnlv1XD2llcqZ5vSMQmdB0a2MdFagmCIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGPkMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDGOAzVKEaIbLf4Lp9Ci1abG9Mpz8WwpE3WEKPKhqdtiylOoyH2p37u03UoqQKKb5kaDAiMtuStBhDjnYK1AyIPCgkI0LXkrQYQkRsSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjRteStBhCVGxICGAISAhgDGIudjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxj5DCKAIDYwODA2MDQwNTIzNDgwMTU2MjAwMDAxMTU3NjAwMDgwZmQ1YjUwNjAwMTgwNjAwMDgwNjAwNjgxMTExNTYyMDAwMDJkNTc2MjAwMDAyYzYyMDAwMWYxNTY1YjViNjAwNjgxMTExNTYyMDAwMDQyNTc2MjAwMDA0MTYyMDAwMWYxNTY1YjViODE1MjYwMjAwMTkwODE1MjYwMjAwMTYwMDAyMDgxOTA1NTUwNjAwMjYwMDE2MDAwNjAwMTYwMDY4MTExMTU2MjAwMDA3MTU3NjIwMDAwNzA2MjAwMDFmMTU2NWI1YjYwMDY4MTExMTU2MjAwMDA4NjU3NjIwMDAwODU2MjAwMDFmMTU2NWI1YjgxNTI2MDIwMDE5MDgxNTI2MDIwMDE2MDAwMjA4MTkwNTU1MDYwMDQ2MDAxNjAwMDYwMDI2MDA2ODExMTE1NjIwMDAwYjU1NzYyMDAwMGI0NjIwMDAxZjE1NjViNWI2MDA2ODExMTE1NjIwMDAwY2E1NzYyMDAwMGM5NjIwMDAxZjE1NjViNWI4MTUyNjAyMDAxOTA4MTUyNjAyMDAxNjAwMDIwODE5MDU1NTA2MDA4NjAwMTYwMDA2MDAzNjAwNjgxMTExNTYyMDAwMGY5NTc2MjAwMDBmODYyMDAwMWYxNTY1YjViNjAwNjgxMTExNTYyMDAwMTBlNTc2MjAwMDEwZDYyMDAwMWYxNTY1YjViODE1MjYwMjAwMTkwODE1MjYwMjAwMTYwMDAyMDgxOTA1NTUwNjAxMDYwMDE2MDAwNjAwNDYwMDY4MTExMTU2MjAwMDEzZDU3NjIwMDAxM2M2MjAwMDFmMTU2NWI1YjYwMDY4MTExMTU2MjAwMDE1MjU3NjIwMDAxNTE2MjAwMDFmMTU2NWI1YjgxNTI2MDIwMDE5MDgxNTI2MDIwMDE2MDAwMjA4MTkwNTU1MDYwMjA2MDAxNjAwMDYwMDU2MDA2ODExMTE1NjIwMDAxODE1NzYyMDAwMTgwNjIwMDAxZjE1NjViNWI2MDA2ODExMTE1NjIwMDAxOTY1NzYyMDAwMTk1NjIwMDAxZjE1NjViNWI4MTUyNjAyMDAxOTA4MTUyNjAyMDAxNjAwMDIwODE5MDU1NTA2MDQwNjAwMTYwMDA2MDA2ODA4MTExMTU2MjAwMDFjNDU3NjIwMDAxYzM2MjAwMDFmMTU2NWI1YjYwMDY4MTExMTU2MjAwMDFkOTU3NjIwMDAxZDg2MjAwMDFmMTU2NWI1YjgxNTI2MDIwMDE5MDgxNTI2MDIwMDE2MDAwMjA4MTkwNTU1MDYyMDAwMjIwNTY1YjdmNGU0ODdiNzEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYwMDA1MjYwMjE2MDA0NTI2MDI0NjAwMGZkNWI2MTMwOTU4MDYyMDAwMjMwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDExNjU3NjAwMDM1NjBlMDFjODA2MzliMjNkM2Q5MTE2MTAwYTI1NzgwNjNkZjZjMDZmNTExNjEwMDcxNTc4MDYzZGY2YzA2ZjUxNDYxMDM4YjU3ODA2M2VhYzZmM2ZlMTQ2MTAzYmI1NzgwNjNlZjc4MzliNjE0NjEwM2ViNTc4MDYzZjI1YjEyMDAxNDYxMDQxYjU3ODA2M2Y4NDhmZWM0MTQ2MTA0NGI1NzYxMDExNjU2NWI4MDYzOWIyM2QzZDkxNDYxMDJjYjU3ODA2M2FjMzZlZmI0MTQ2MTAyZmI1NzgwNjNjNzY2MjBjYTE0NjEwMzJiNTc4MDYzY2MyNTI4ZjAxNDYxMDM1YjU3NjEwMTE2NTY1YjgwNjM2YzQwYTc3NzExNjEwMGU5NTc4MDYzNmM0MGE3NzcxNDYxMDFkYjU3ODA2MzZkYTZiMWYwMTQ2MTAyMGI1NzgwNjM4NDJiNzFkYjE0NjEwMjNiNTc4MDYzOTQyZTAxYTMxNDYxMDI2YjU3ODA2Mzk3MGUyM2QyMTQ2MTAyOWI1NzYxMDExNjU2NWI4MDYzMTFlMWZjMDcxNDYxMDExYjU3ODA2MzE1ZGFjYmVhMTQ2MTAxNGI1NzgwNjM0YmE2NzAzNTE0NjEwMTdiNTc4MDYzNTgxMzE1NTExNDYxMDFhYjU3NWI2MDAwODBmZDViNjEwMTM1NjAwNDgwMzYwMzgxMDE5MDYxMDEzMDkxOTA2MTIyYjY1NjViNjEwNDdiNTY1YjYwNDA1MTYxMDE0MjkxOTA2MTJiZjQ1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMTY1NjAwNDgwMzYwMzgxMDE5MDYxMDE2MDkxOTA2MTIyYjY1NjViNjEwNTk3NTY1YjYwNDA1MTYxMDE3MjkxOTA2MTJiZjQ1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMTk1NjAwNDgwMzYwMzgxMDE5MDYxMDE5MDkxOTA2MTIyNGY1NjViNjEwNmI1NTY1YjYwNDA1MTYxMDFhMjkxOTA2MTJiYmU1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMWM1NjAwNDgwMzYwMzgxMDE5MDYxMDFjMDkxOTA2MTI0N2U1NjViNjEwNzE0NTY1YjYwNDA1MTYxMDFkMjkxOTA2MTJiYmU1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMWY1NjAwNDgwMzYwMzgxMDE5MDYxMDFmMDkxOTA2MTIyYjY1NjViNjEwNzcxNTY1YjYwNDA1MTYxMDIwMjkxOTA2MTJiZjQ1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMjI1NjAwNDgwMzYwMzgxMDE5MDYxMDIyMDkxOTA2MTIyNGY1NjViNjEwODU4NTY1YjYwNDA1MTYxMDIzMjkxOTA2MTJiYmU1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMjU1NjAwNDgwMzYwMzgxMDE5MDYxMDI1MDkxOTA2MTIyYjY1NjViNjEwOGI3NTY1YjYwNDA1MTYxMDI2MjkxOTA2MTJiZjQ1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMjg1NjAwNDgwMzYwMzgxMDE5MDYxMDI4MDkxOTA2MTIzNzA1NjViNjEwOTllNTY1YjYwNDA1MTYxMDI5MjkxOTA2MTJiYmU1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMmI1NjAwNDgwMzYwMzgxMDE5MDYxMDJiMDkxOTA2MTI1NjM1NjViNjEwOWZiNTY1YjYwNDA1MTYxMDJjMjkxOTA2MTJiYmU1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMmU1NjAwNDgwMzYwMzgxMDE5MDYxMDJlMDkxOTA2MTIyYjY1NjViNjEwYTZjNTY1YjYwNDA1MTYxMDJmMjkxOTA2MTJiZjQ1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMzE1NjAwNDgwMzYwMzgxMDE5MDYxMDMxMDkxOTA2MTI1NjM1NjViNjEwYjhhNTY1YjYwNDA1MTYxMDMyMjkxOTA2MTJiYmU1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMzQ1NjAwNDgwMzYwMzgxMDE5MDYxMDM0MDkxOTA2MTIzMWQ1NjViNjEwYmZiNTY1YjYwNDA1MTYxMDM1MjkxOTA2MTJiYmU1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMzc1NjAwNDgwMzYwMzgxMDE5MDYxMDM3MDkxOTA2MTIzYzM1NjViNjEwYzU4NTY1YjYwNDA1MTYxMDM4MjkxOTA2MTJiYmU1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwM2E1NjAwNDgwMzYwMzgxMDE5MDYxMDNhMDkxOTA2MTIzNzA1NjViNjEwY2I3NTY1YjYwNDA1MTYxMDNiMjkxOTA2MTJiYmU1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwM2Q1NjAwNDgwMzYwMzgxMDE5MDYxMDNkMDkxOTA2MTIyYjY1NjViNjEwZDE0NTY1YjYwNDA1MTYxMDNlMjkxOTA2MTJiZjQ1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwNDA1NjAwNDgwMzYwMzgxMDE5MDYxMDQwMDkxOTA2MTIzNzA1NjViNjEwZTMwNTY1YjYwNDA1MTYxMDQxMjkxOTA2MTJiYmU1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwNDM1NjAwNDgwMzYwMzgxMDE5MDYxMDQzMDkxOTA2MTIzMWQ1NjViNjEwZThkNTY1YjYwNDA1MTYxMDQ0MjkxOTA2MTJiYmU1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwNDY1NjAwNDgwMzYwMzgxMDE5MDYxMDQ2MDkxOTA2MTIzNzA1NjViNjEwZWVhNTY1YjYwNDA1MTYxMDQ3MjkxOTA2MTJiYmU1NjViNjA0MDUxODA5MTAzOTBmMzViNjAwMDgwNjAwMDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjM5YjIzZDNkOTYwZTAxYjg4ODg4ODg4NjA0MDUxNjAyNDAxNjEwNGI4OTQ5MzkyOTE5MDYxMmE2YzU2NWI2MDQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI5MDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTA1MjI5MTkwNjEyYTEwNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTg1NWFmNDkxNTA1MDNkODA2MDAwODExNDYxMDU1ZDU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMDU2MjU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEwNTczNTc2MDE1NjEwNTg4NTY1YjgwODA2MDIwMDE5MDUxODEwMTkwNjEwNTg3OTE5MDYxMjUwOTU2NWI1YjYwMDMwYjkyNTA1MDUwOTQ5MzUwNTA1MDUwNTY1YjYwMDA4MDYwMDA2MTAxNjc3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzMTVkYWNiZWE2MGUwMWI4ODg4ODg4ODYwNDA1MTYwMjQwMTYxMDVkNDk0OTM5MjkxOTA=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwN0orI8NC55aMAoTKCgKBhSApYnFwBpKiiWZWDQZnGg//6Y3jv8Ijku06j24nkUbVGgwIjbbkrQYQ0+/D2QEiDwoJCNG15K0GEJUbEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjRteStBhCbGxICGAISAhgDGPjR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxj5DCKAIDYxMmE2YzU2NWI2MDQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI5MDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTA2M2U5MTkwNjEyYTEwNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NjVhZjE5MTUwNTAzZDgwNjAwMDgxMTQ2MTA2N2I1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTA2ODA1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA4MTYxMDY5MTU3NjAxNTYxMDZhNjU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMDZhNTkxOTA2MTI1MDk1NjViNWI2MDAzMGI5MjUwNTA1MDk0OTM1MDUwNTA1MDU2NWI2MDAwNjEwNmMzODU4NTg1ODU2MTBmNDc1NjViOTA1MDdmOTBhNWNmNGNmZmU4OGI0ZWRiYjA0MWNmYzdhOGE4MTJjNDhhNWVjMzBiODQ2NDBmYjM3NjkwODc1MTY4ZTNhYTgxNjA0MDUxNjEwNmY0OTE5MDYxMmJiZTU2NWI2MDQwNTE4MDkxMDM5MGExNjAxNjYwMDMwYjgxMTQ2MTA3MGM1NzYwMDA4MGZkNWI5NDkzNTA1MDUwNTA1NjViNjAwMDYxMDcyMTg0ODQ4NDYxMTA2NTU2NWI5MDUwN2Y5MGE1Y2Y0Y2ZmZTg4YjRlZGJiMDQxY2ZjN2E4YTgxMmM0OGE1ZWMzMGI4NDY0MGZiMzc2OTA4NzUxNjhlM2FhODE2MDQwNTE2MTA3NTI5MTkwNjEyYmJlNTY1YjYwNDA1MTgwOTEwMzkwYTE2MDE2NjAwMzBiODExNDYxMDc2YTU3NjAwMDgwZmQ1YjkzOTI1MDUwNTA1NjViNjAwMDMwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MzliMjNkM2Q5ODY4Njg2ODY2MDQwNTE4NTYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MTA3YjI5NDkzOTI5MTkwNjEyYTZjNTY1YjYwMjA2MDQwNTE4MDgzMDM4MTYwMDA4NzgwM2IxNTgwMTU2MTA3Y2M1NzYwMDA4MGZkNWI1MDVhZjExNTgwMTU2MTA3ZTA1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA2MDQwNTEzZDYwMWYxOTYwMWY4MjAxMTY4MjAxODA2MDQwNTI1MDgxMDE5MDYxMDgwNDkxOTA2MTI1MzY1NjViOTA1MDdmOTBhNWNmNGNmZmU4OGI0ZWRiYjA0MWNmYzdhOGE4MTJjNDhhNWVjMzBiODQ2NDBmYjM3NjkwODc1MTY4ZTNhYTgxNjA0MDUxNjEwODM1OTE5MDYxMmJkOTU2NWI2MDQwNTE4MDkxMDM5MGExNjAxNjYwMDMwYjgxNjAwNzBiMTQ2MTA4NTA1NzYwMDA4MGZkNWI5NDkzNTA1MDUwNTA1NjViNjAwMDYxMDg2Njg1ODU4NTg1NjExMTgwNTY1YjkwNTA3ZjkwYTVjZjRjZmZlODhiNGVkYmIwNDFjZmM3YThhODEyYzQ4YTVlYzMwYjg0NjQwZmIzNzY5MDg3NTE2OGUzYWE4MTYwNDA1MTYxMDg5NzkxOTA2MTJiYmU1NjViNjA0MDUxODA5MTAzOTBhMTYwMTY2MDAzMGI4MTE0NjEwOGFmNTc2MDAwODBmZDViOTQ5MzUwNTA1MDUwNTY1YjYwMDAzMDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjMxNWRhY2JlYTg2ODY4Njg2NjA0MDUxODU2M2ZmZmZmZmZmMTY2MGUwMWI4MTUyNjAwNDAxNjEwOGY4OTQ5MzkyOTE5MDYxMmE2YzU2NWI2MDIwNjA0MDUxODA4MzAzODE2MDAwODc4MDNiMTU4MDE1NjEwOTEyNTc2MDAwODBmZDViNTA1YWYxMTU4MDE1NjEwOTI2NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTA5NGE5MTkwNjEyNTM2NTY1YjkwNTA3ZjkwYTVjZjRjZmZlODhiNGVkYmIwNDFjZmM3YThhODEyYzQ4YTVlYzMwYjg0NjQwZmIzNzY5MDg3NTE2OGUzYWE4MTYwNDA1MTYxMDk3YjkxOTA2MTJiZDk1NjViNjA0MDUxODA5MTAzOTBhMTYwMTY2MDAzMGI4MTYwMDcwYjE0NjEwOTk2NTc2MDAwODBmZDViOTQ5MzUwNTA1MDUwNTY1YjYwMDA2MTA5YWI4NDg0ODQ2MTEyOWU1NjViOTA1MDdmOTBhNWNmNGNmZmU4OGI0ZWRiYjA0MWNmYzdhOGE4MTJjNDhhNWVjMzBiODQ2NDBmYjM3NjkwODc1MTY4ZTNhYTgxNjA0MDUxNjEwOWRjOTE5MDYxMmJiZTU2NWI2MDQwNTE4MDkxMDM5MGExNjAxNjYwMDMwYjgxMTQ2MTA5ZjQ1NzYwMDA4MGZkNWI5MzkyNTA1MDUwNTY1YjYwMDA2MTBhMWM4NDYxMGEwYTkwNjEyZjBkNTY1Yjg0ODQ5MDYxMGExNzkxOTA2MTJlZTY1NjViNjExM2I3NTY1YjkwNTA3ZjkwYTVjZjRjZmZlODhiNGVkYmIwNDFjZmM3YThhODEyYzQ4YTVlYzMwYjg0NjQwZmIzNzY5MDg3NTE2OGUzYWE4MTYwNDA1MTYxMGE0ZDkxOTA2MTJiYmU1NjViNjA0MDUxODA5MTAzOTBhMTYwMTY2MDAzMGI4MTE0NjEwYTY1NTc2MDAwODBmZDViOTM5MjUwNTA1MDU2NWI2MDAwODA2MDAwNjEwMTY3NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MzliMjNkM2Q5NjBlMDFiODg4ODg4ODg2MDQwNTE2MDI0MDE2MTBhYTk5NDkzOTI5MTkwNjEyYTZjNTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMGIxMzkxOTA2MTJhMTA1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMGI1MDU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMGI1NTU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEwYjY2NTc2MDE1NjEwYjdiNTY1YjgwODA2MDIwMDE5MDUxODEwMTkwNjEwYjdhOTE5MDYxMjUwOTU2NWI1YjYwMDMwYjkyNTA1MDUwOTQ5MzUwNTA1MDUwNTY1YjYwMDA2MTBiYWI4NDYxMGI5OTkwNjEyZjBkNTY1Yjg0ODQ5MDYxMGJhNjkxOTA2MTJlZTY1NjViNjExNGNmNTY1YjkwNTA3ZjkwYTVjZjRjZmZlODhiNGVkYmIwNDFjZmM3YThhODEyYzQ4YTVlYzMwYjg0NjQwZmIzNzY5MDg3NTE2OGUzYWE4MTYwNDA1MTYxMGJkYzkxOTA2MTJiYmU1NjViNjA0MDUxODA5MTAzOTBhMTYwMTY2MDAzMGI4MTE0NjEwYmY0NTc2MDAwODBmZDViOTM5MjUwNTA1MDU2NWI2MDAwNjEwYzA4ODQ4NDg0NjExNWU1NTY1YjkwNTA3ZjkwYTVjZjRjZmZlODhiNGVkYmIwNDFjZmM3YThhODEyYzQ4YTVlYzMwYjg0NjQwZmIzNzY5MDg3NTE2OGUzYWE4MTYwNDA1MTYxMGMzOTkxOTA2MTJiYmU1NjViNjA0MDUxODA5MTAzOTBhMTYwMTY2MDAzMGI4MTE0NjEwYzUxNTc2MDAwODBmZDViOTM5MjUwNTA1MDU2NWI2MDAwNjEwYzY2ODU4NTg1ODU2MTE2ZmU1NjViOTA1MDdmOTBhNWNmNGNmZmU4OGI0ZWRiYjA0MWNmYzdhOGE4MTJjNDhhNWVjMzBiODQ2NDBmYjM3NjkwODc1MTY4ZTNhYTgxNjA0MDUxNjEwYzk3OTE5MDYxMmJiZTU2NWI2MDQwNTE4MDkxMDM5MGExNjAxNjYwMDMwYjgxMTQ2MTBjYWY1NzYwMDA4MGZkNWI5NDkzNTA1MDUwNTA1NjViNjAwMDYxMGNjNDg0ODQ4NDYxMTgxYzU2NWI5MDUwN2Y5MGE1Y2Y0Y2ZmZTg4YjRlZGJiMDQxY2ZjN2E4YTgxMmM0OGE1ZWMzMGI4NDY0MGZiMzc2OTA4NzUxNjhlM2FhODE2MDQwNTE2MTBjZjU5MTkwNjEyYmJlNTY1YjYwNDA1MTgwOTEwMzkwYTE2MDE2NjAwMzBiODExNDYxMGQwZDU3NjAwMDgwZmQ1YjkzOTI1MDUwNTA1NjViNjAwMDgwNjAwMDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjMxNWRhY2JlYTYwZTAxYjg4ODg4ODg4NjA0MDUxNjAyNDAxNjEwZDUxOTQ5MzkyOTE5MDYxMmE2YzU2NWI2MDQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI5MDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTBkYmI5MTkwNjEyYTEwNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTg1NWFmNDkxNTA1MDNkODA2MDAwODE=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw4MMkN5JXo4aWFGZ/sG4WKmnYi0VJA+tPTp7esO54A7QtR2noLYAnuiK3mnTsQsY6GgwIjbbkrQYQo5f4vwMiDwoJCNG15K0GEJsbEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjSteStBhChGxICGAISAhgDGPfR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxj5DCKAIDE0NjEwZGY2NTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjEwZGZiNTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTBlMGM1NzYwMTU2MTBlMjE1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTBlMjA5MTkwNjEyNTA5NTY1YjViNjAwMzBiOTI1MDUwNTA5NDkzNTA1MDUwNTA1NjViNjAwMDYxMGUzZDg0ODQ4NDYxMTkzNzU2NWI5MDUwN2Y5MGE1Y2Y0Y2ZmZTg4YjRlZGJiMDQxY2ZjN2E4YTgxMmM0OGE1ZWMzMGI4NDY0MGZiMzc2OTA4NzUxNjhlM2FhODE2MDQwNTE2MTBlNmU5MTkwNjEyYmJlNTY1YjYwNDA1MTgwOTEwMzkwYTE2MDE2NjAwMzBiODExNDYxMGU4NjU3NjAwMDgwZmQ1YjkzOTI1MDUwNTA1NjViNjAwMDYxMGU5YTg0ODQ4NDYxMWE1MDU2NWI5MDUwN2Y5MGE1Y2Y0Y2ZmZTg4YjRlZGJiMDQxY2ZjN2E4YTgxMmM0OGE1ZWMzMGI4NDY0MGZiMzc2OTA4NzUxNjhlM2FhODE2MDQwNTE2MTBlY2I5MTkwNjEyYmJlNTY1YjYwNDA1MTgwOTEwMzkwYTE2MDE2NjAwMzBiODExNDYxMGVlMzU3NjAwMDgwZmQ1YjkzOTI1MDUwNTA1NjViNjAwMDYxMGVmNzg0ODQ4NDYxMWI2YjU2NWI5MDUwN2Y5MGE1Y2Y0Y2ZmZTg4YjRlZGJiMDQxY2ZjN2E4YTgxMmM0OGE1ZWMzMGI4NDY0MGZiMzc2OTA4NzUxNjhlM2FhODE2MDQwNTE2MTBmMjg5MTkwNjEyYmJlNTY1YjYwNDA1MTgwOTEwMzkwYTE2MDE2NjAwMzBiODExNDYxMGY0MDU3NjAwMDgwZmQ1YjkzOTI1MDUwNTA1NjViNjAwMDgwNjAwMDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjNlY2EzNjkxNzYwZTAxYjg4ODg4ODg4NjA0MDUxNjAyNDAxNjEwZjg0OTQ5MzkyOTE5MDYxMmEyNzU2NWI2MDQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI5MDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTBmZWU5MTkwNjEyYTEwNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NjVhZjE5MTUwNTAzZDgwNjAwMDgxMTQ2MTEwMmI1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTEwMzA1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA4MTYxMTA0MTU3NjAxNTYxMTA1NjU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMTA1NTkxOTA2MTI1MDk1NjViNWI2MDAzMGI5MjUwNTA1MDk0OTM1MDUwNTA1MDU2NWI2MDAwODA2MDAwNjEwMTY3NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MzgyYmJhNDkzNjBlMDFiODc4Nzg3NjA0MDUxNjAyNDAxNjExMGEwOTM5MjkxOTA2MTJiNzk1NjViNjA0MDUxNjAyMDgxODMwMzAzODE1MjkwNjA0MDUyOTA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjExMTBhOTE5MDYxMmExMDU2NWI2MDAwNjA0MDUxODA4MzAzODE2MDAwODY1YWYxOTE1MDUwM2Q4MDYwMDA4MTE0NjExMTQ3NTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjExMTRjNTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTExNWQ1NzYwMTU2MTExNzI1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTExNzE5MTkwNjEyNTA5NTY1YjViNjAwMzBiOTI1MDUwNTA5MzkyNTA1MDUwNTY1YjYwMDA4MDYwMDA2MTAxNjc3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzNWNmYzkwMTE2MGUwMWI4ODg4ODg4ODYwNDA1MTYwMjQwMTYxMTFiZDk0OTM5MjkxOTA2MTJhMjc1NjViNjA0MDUxNjAyMDgxODMwMzAzODE1MjkwNjA0MDUyOTA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjExMjI3OTE5MDYxMmExMDU2NWI2MDAwNjA0MDUxODA4MzAzODE2MDAwODY1YWYxOTE1MDUwM2Q4MDYwMDA4MTE0NjExMjY0NTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjExMjY5NTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTEyN2E1NzYwMTU2MTEyOGY1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTEyOGU5MTkwNjEyNTA5NTY1YjViNjAwMzBiOTI1MDUwNTA5NDkzNTA1MDUwNTA1NjViNjAwMDgwNjAwMDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjM3MzM2YWFmMDYwZTAxYjg3ODc4NzYwNDA1MTYwMjQwMTYxMTJkOTkzOTI5MTkwNjEyYWU4NTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMTM0MzkxOTA2MTJhMTA1NjViNjAwMDYwNDA1MTgwODMwMzgxODU1YWY0OTE1MDUwM2Q4MDYwMDA4MTE0NjExMzdlNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjExMzgzNTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTEzOTQ1NzYwMTU2MTEzYTk1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTEzYTg5MTkwNjEyNTA5NTY1YjViNjAwMzBiOTI1MDUwNTA5MzkyNTA1MDUwNTY1YjYwMDA4MDYwMDA2MTAxNjc3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzMGU3MTgwNGY2MGUwMWI4Njg2NjA0MDUxNjAyNDAxNjExM2YwOTI5MTkwNjEyYzBmNTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMTQ1YTkxOTA2MTJhMTA1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMTQ5NzU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMTQ5YzU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjExNGFkNTc2MDE1NjExNGMyNTY1YjgwODA2MDIwMDE5MDUxODEwMTkwNjExNGMxOTE5MDYxMjUwOTU2NWI1YjYwMDMwYjkyNTA1MDUwOTI5MTUwNTA1NjViNjAwMDgwNjAwMDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjMwZTcxODA0ZjYwZTAxYjg2ODY2MDQwNTE2MDI0MDE2MTE1MDg5MjkxOTA2MTJjMGY1NjViNjA0MDUxNjAyMDgxODMwMzAzODE1MjkwNjA0MDUyOTA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjExNTcyOTE5MDYxMmExMDU2NWI2MDAwNjA0MDUxODA4MzAzODE4NTVhZjQ5MTUwNTAzZDgwNjAwMDgxMTQ2MTE1YWQ1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTE1YjI1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA4MTYxMTVjMzU3NjAxNTYxMTVkODU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMTU=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwvp6EHXp2z+0pReU9aAX/6HFDkGmgpk1tOWigj+SZH/se0LhiVcL7NhH+d+1HCLu2GgwIjrbkrQYQ86+b4wEiDwoJCNK15K0GEKEbEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjSteStBhCnGxICGAISAhgDGPfR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxj5DCKAIGQ3OTE5MDYxMjUwOTU2NWI1YjYwMDMwYjkyNTA1MDUwOTI5MTUwNTA1NjViNjAwMDgwNjAwMDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjMzNjc2MDVjYTYwZTAxYjg3ODc4NzYwNDA1MTYwMjQwMTYxMTYyMDkzOTI5MTkwNjEyYWIxNTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMTY4YTkxOTA2MTJhMTA1NjViNjAwMDYwNDA1MTgwODMwMzgxODU1YWY0OTE1MDUwM2Q4MDYwMDA4MTE0NjExNmM1NTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjExNmNhNTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTE2ZGI1NzYwMTU2MTE2ZjA1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTE2ZWY5MTkwNjEyNTA5NTY1YjViNjAwMzBiOTI1MDUwNTA5MzkyNTA1MDUwNTY1YjYwMDA4MDYwMDA2MTAxNjc3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzMmM0YmExOTE2MGUwMWI4ODg4ODg4ODYwNDA1MTYwMjQwMTYxMTczYjk0OTM5MjkxOTA2MTJiMWY1NjViNjA0MDUxNjAyMDgxODMwMzAzODE1MjkwNjA0MDUyOTA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjExN2E1OTE5MDYxMmExMDU2NWI2MDAwNjA0MDUxODA4MzAzODE2MDAwODY1YWYxOTE1MDUwM2Q4MDYwMDA4MTE0NjExN2UyNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjExN2U3NTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTE3Zjg1NzYwMTU2MTE4MGQ1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTE4MGM5MTkwNjEyNTA5NTY1YjViNjAwMzBiOTI1MDUwNTA5NDkzNTA1MDUwNTA1NjViNjAwMDgwNjAwMDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjM3MzM2YWFmMDYwZTAxYjg3ODc4NzYwNDA1MTYwMjQwMTYxMTg1NzkzOTI5MTkwNjEyYWU4NTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMThjMTkxOTA2MTJhMTA1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMThmZTU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMTkwMzU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjExOTE0NTc2MDE1NjExOTI5NTY1YjgwODA2MDIwMDE5MDUxODEwMTkwNjExOTI4OTE5MDYxMjUwOTU2NWI1YjYwMDMwYjkyNTA1MDUwOTM5MjUwNTA1MDU2NWI2MDAwODA2MDAwNjEwMTY3NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2M2UxZjIxYzY3NjBlMDFiODc4Nzg3NjA0MDUxNjAyNDAxNjExOTcyOTM5MjkxOTA2MTJhZTg1NjViNjA0MDUxNjAyMDgxODMwMzAzODE1MjkwNjA0MDUyOTA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjExOWRjOTE5MDYxMmExMDU2NWI2MDAwNjA0MDUxODA4MzAzODE4NTVhZjQ5MTUwNTAzZDgwNjAwMDgxMTQ2MTFhMTc1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTFhMWM1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA4MTYxMWEyZDU3NjAxNTYxMWE0MjU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMWE0MTkxOTA2MTI1MDk1NjViNWI2MDAzMGI5MjUwNTA1MDkzOTI1MDUwNTA1NjViNjAwMDgwNjAwMDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjMzNjc2MDVjYTYwZTAxYjg3ODc4NzYwNDA1MTYwMjQwMTYxMWE4YjkzOTI5MTkwNjEyYWIxNTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMWFmNTkxOTA2MTJhMTA1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMWIzMjU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMWIzNzU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjExYjQ4NTc2MDE1NjExYjVkNTY1YjgwODA2MDIwMDE5MDUxODEwMTkwNjExYjVjOTE5MDYxMjUwOTU2NWI1YjYwMDMwYjkyNTA1MDUwOTM5MjUwNTA1MDU2NWI2MDAwODA2MDAwNjEwMTY3NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2M2UxZjIxYzY3NjBlMDFiODc4Nzg3NjA0MDUxNjAyNDAxNjExYmE2OTM5MjkxOTA2MTJhZTg1NjViNjA0MDUxNjAyMDgxODMwMzAzODE1MjkwNjA0MDUyOTA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjExYzEwOTE5MDYxMmExMDU2NWI2MDAwNjA0MDUxODA4MzAzODE2MDAwODY1YWYxOTE1MDUwM2Q4MDYwMDA4MTE0NjExYzRkNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjExYzUyNTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTFjNjM1NzYwMTU2MTFjNzg1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTFjNzc5MTkwNjEyNTA5NTY1YjViNjAwMzBiOTI1MDUwNTA5MzkyNTA1MDUwNTY1YjYwMDA2MTFjOTk2MTFjOTQ4NDYxMmM2YjU2NWI2MTJjNDY1NjViOTA1MDgwODM4MjUyNjAyMDgyMDE5MDUwODI4NTYwMjA4NjAyODIwMTExMTU2MTFjYmM1NzYxMWNiYjYxMmZjYzU2NWI1YjYwMDA1Yjg1ODExMDE1NjExY2VjNTc4MTYxMWNkMjg4ODI2MTFlZDQ1NjViODQ1MjYwMjA4NDAxOTM1MDYwMjA4MzAxOTI1MDUwNjAwMTgxMDE5MDUwNjExY2JmNTY1YjUwNTA1MDkzOTI1MDUwNTA1NjViNjAwMDYxMWQwOTYxMWQwNDg0NjEyYzk3NTY1YjYxMmM0NjU2NWI5MDUwODA4MzgyNTI2MDIwODIwMTkwNTA4Mjg1NjAyMDg2MDI4MjAxMTExNTYxMWQyYzU3NjExZDJiNjEyZmNjNTY1YjViNjAwMDViODU4MTEwMTU2MTFkNWM1NzgxNjExZDQyODg4MjYxMjAyMTU2NWI4NDUyNjAyMDg0MDE5MzUwNjAyMDgzMDE5MjUwNTA2MDAxODEwMTkwNTA2MTFkMmY1NjViNTA1MDUwOTM5MjUwNTA1MDU2NWI2MDAwNjExZDc5NjExZDc0ODQ2MTJjYzM1NjViNjEyYzQ2NTY1YjkwNTA4MDgzODI1MjYwMjA4MjAxOTA1MDgyODU2MDYwODYwMjgyMDExMTE1NjExZDljNTc2MTFkOWI2MTJmY2M1NjViNWI2MDAwNWI4NTgxMTAxNTYxMWRjYzU3ODE2MTFkYjI4ODgyNjEyMDRiNTY1Yjg0NTI2MDIwODQwMTkzNTA2MDYwODMwMTkyNTA1MDYwMDE4MTAxOTA1MDYxMWQ5ZjU2NWI1MDUwNTA=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwCByhcXQDpciE2+ivIyKMDhdYpfNYRKND9uKwdCvopTfhdO9VziCNgeUsepizmUHeGgwIjrbkrQYQo+HxxwMiDwoJCNK15K0GEKcbEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjTteStBhCtGxICGAISAhgDGPbR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxj5DCKAIDkzOTI1MDUwNTA1NjViNjAwMDYxMWRlOTYxMWRlNDg0NjEyY2VmNTY1YjYxMmM0NjU2NWI5MDUwODA4MzgyNTI2MDIwODIwMTkwNTA4Mjg1NjA4MDg2MDI4MjAxMTExNTYxMWUwYzU3NjExZTBiNjEyZmNjNTY1YjViNjAwMDViODU4MTEwMTU2MTFlM2M1NzgxNjExZTIyODg4MjYxMjBhZjU2NWI4NDUyNjAyMDg0MDE5MzUwNjA4MDgzMDE5MjUwNTA2MDAxODEwMTkwNTA2MTFlMGY1NjViNTA1MDUwOTM5MjUwNTA1MDU2NWI2MDAwNjExZTU5NjExZTU0ODQ2MTJkMWI1NjViNjEyYzQ2NTY1YjkwNTA4MDgzODI1MjYwMjA4MjAxOTA1MDgyODU2MDIwODYwMjgyMDExMTE1NjExZTdjNTc2MTFlN2I2MTJmY2M1NjViNWI2MDAwNWI4NTgxMTAxNTYxMWVjYTU3ODEzNTY3ZmZmZmZmZmZmZmZmZmZmZjgxMTExNTYxMWVhMjU3NjExZWExNjEyZmI4NTY1YjViODA4NjAxNjExZWFmODk4MjYxMjEyNzU2NWI4NTUyNjAyMDg1MDE5NDUwNjAyMDg0MDE5MzUwNTA1MDYwMDE4MTAxOTA1MDYxMWU3ZjU2NWI1MDUwNTA5MzkyNTA1MDUwNTY1YjYwMDA4MTM1OTA1MDYxMWVlMzgxNjEyZmVjNTY1YjkyOTE1MDUwNTY1YjYwMDA4MjYwMWY4MzAxMTI2MTFlZmU1NzYxMWVmZDYxMmZiODU2NWI1YjgxMzU2MTFmMGU4NDgyNjAyMDg2MDE2MTFjODY1NjViOTE1MDUwOTI5MTUwNTA1NjViNjAwMDgyNjAxZjgzMDExMjYxMWYyYzU3NjExZjJiNjEyZmI4NTY1YjViODEzNTYxMWYzYzg0ODI2MDIwODYwMTYxMWNmNjU2NWI5MTUwNTA5MjkxNTA1MDU2NWI2MDAwODI2MDFmODMwMTEyNjExZjVhNTc2MTFmNTk2MTJmYjg1NjViNWI4MTM1NjExZjZhODQ4MjYwMjA4NjAxNjExZDY2NTY1YjkxNTA1MDkyOTE1MDUwNTY1YjYwMDA4MjYwMWY4MzAxMTI2MTFmODg1NzYxMWY4NzYxMmZiODU2NWI1YjgxMzU2MTFmOTg4NDgyNjAyMDg2MDE2MTFkZDY1NjViOTE1MDUwOTI5MTUwNTA1NjViNjAwMDgwODM2MDFmODQwMTEyNjExZmI3NTc2MTFmYjY2MTJmYjg1NjViNWI4MjM1OTA1MDY3ZmZmZmZmZmZmZmZmZmZmZjgxMTExNTYxMWZkNDU3NjExZmQzNjEyZmIzNTY1YjViNjAyMDgzMDE5MTUwODM2MDIwODIwMjgzMDExMTE1NjExZmYwNTc2MTFmZWY2MTJmY2M1NjViNWI5MjUwOTI5MDUwNTY1YjYwMDA4MTM1OTA1MDYxMjAwNjgxNjEzMDAzNTY1YjkyOTE1MDUwNTY1YjYwMDA4MTUxOTA1MDYxMjAxYjgxNjEzMDFhNTY1YjkyOTE1MDUwNTY1YjYwMDA4MTM1OTA1MDYxMjAzMDgxNjEzMDMxNTY1YjkyOTE1MDUwNTY1YjYwMDA4MTUxOTA1MDYxMjA0NTgxNjEzMDMxNTY1YjkyOTE1MDUwNTY1YjYwMDA2MDYwODI4NDAzMTIxNTYxMjA2MTU3NjEyMDYwNjEyZmMyNTY1YjViNjEyMDZiNjA2MDYxMmM0NjU2NWI5MDUwNjAwMDYxMjA3Yjg0ODI4NTAxNjExZWQ0NTY1YjYwMDA4MzAxNTI1MDYwMjA2MTIwOGY4NDgyODUwMTYxMjAyMTU2NWI2MDIwODMwMTUyNTA2MDQwNjEyMGEzODQ4Mjg1MDE2MTFmZjc1NjViNjA0MDgzMDE1MjUwOTI5MTUwNTA1NjViNjAwMDYwODA4Mjg0MDMxMjE1NjEyMGM1NTc2MTIwYzQ2MTJmYzI1NjViNWI2MTIwY2Y2MDgwNjEyYzQ2NTY1YjkwNTA2MDAwNjEyMGRmODQ4Mjg1MDE2MTFlZDQ1NjViNjAwMDgzMDE1MjUwNjAyMDYxMjBmMzg0ODI4NTAxNjExZWQ0NTY1YjYwMjA4MzAxNTI1MDYwNDA2MTIxMDc4NDgyODUwMTYxMjAyMTU2NWI2MDQwODMwMTUyNTA2MDYwNjEyMTFiODQ4Mjg1MDE2MTFmZjc1NjViNjA2MDgzMDE1MjUwOTI5MTUwNTA1NjViNjAwMDYwNjA4Mjg0MDMxMjE1NjEyMTNkNTc2MTIxM2M2MTJmYzI1NjViNWI2MTIxNDc2MDYwNjEyYzQ2NTY1YjkwNTA2MDAwNjEyMTU3ODQ4Mjg1MDE2MTFlZDQ1NjViNjAwMDgzMDE1MjUwNjAyMDgyMDEzNTY3ZmZmZmZmZmZmZmZmZmZmZjgxMTExNTYxMjE3YjU3NjEyMTdhNjEyZmM3NTY1YjViNjEyMTg3ODQ4Mjg1MDE2MTFmNDU1NjViNjAyMDgzMDE1MjUwNjA0MDgyMDEzNTY3ZmZmZmZmZmZmZmZmZmZmZjgxMTExNTYxMjFhYjU3NjEyMWFhNjEyZmM3NTY1YjViNjEyMWI3ODQ4Mjg1MDE2MTFmNzM1NjViNjA0MDgzMDE1MjUwOTI5MTUwNTA1NjViNjAwMDYwMjA4Mjg0MDMxMjE1NjEyMWQ5NTc2MTIxZDg2MTJmYmQ1NjViNWI4MTkwNTA5MjkxNTA1MDU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTIxZjg1NzYxMjFmNzYxMmZjMjU2NWI1YjYxMjIwMjYwMjA2MTJjNDY1NjViOTA1MDYwMDA4MjAxMzU2N2ZmZmZmZmZmZmZmZmZmZmY4MTExMTU2MTIyMjI1NzYxMjIyMTYxMmZjNzU2NWI1YjYxMjIyZTg0ODI4NTAxNjExZjQ1NTY1YjYwMDA4MzAxNTI1MDkyOTE1MDUwNTY1YjYwMDA4MTM1OTA1MDYxMjI0OTgxNjEzMDQ4NTY1YjkyOTE1MDUwNTY1YjYwMDA4MDYwMDA4MDYwODA4NTg3MDMxMjE1NjEyMjY5NTc2MTIyNjg2MTJmZDY1NjViNWI2MDAwNjEyMjc3ODc4Mjg4MDE2MTFlZDQ1NjViOTQ1MDUwNjAyMDYxMjI4ODg3ODI4ODAxNjExZWQ0NTY1YjkzNTA1MDYwNDA2MTIyOTk4NzgyODgwMTYxMWVkNDU2NWI5MjUwNTA2MDYwNjEyMmFhODc4Mjg4MDE2MTIwMjE1NjViOTE1MDUwOTI5NTkxOTQ1MDkyNTA1NjViNjAwMDgwNjAwMDgwNjA4MDg1ODcwMzEyMTU2MTIyZDA1NzYxMjJjZjYxMmZkNjU2NWI1YjYwMDA2MTIyZGU4NzgyODgwMTYxMWVkNDU2NWI5NDUwNTA2MDIwNjEyMmVmODc4Mjg4MDE2MTFlZDQ1NjViOTM1MDUwNjA0MDYxMjMwMDg3ODI4ODAxNjExZWQ0NTY1YjkyNTA1MDYwNjA2MTIzMTE4NzgyODgwMTYxMjIzYTU2NWI5MTUwNTA5Mjk1OTE5NDUwOTI1MDU2NWI2MDAwODA2MDAwNjA2MDg0ODYwMzEyMTU2MTIzMzY1NzYxMjMzNTYxMmZkNjU2NWI1YjYwMDA2MTIzNDQ4NjgyODcwMTYxMWVkNDU2NWI5MzUwNTA2MDIwNjEyMzU1ODY4Mjg3MDE2MTFlZDQ1NjViOTI1MDUwNjA0MDYxMjM2Njg2ODI4NzAxNjExZmY3NTY1YjkxNTA1MDkyNTA5MjUwOTI1NjViNjAwMDgwNjAwMDYwNjA4NDg2MDMxMjE1NjEyMzg5NTc2MTIzODg2MTJmZDY1NjViNWI2MDAwNjEyMzk3ODY4Mjg3MDE2MTFlZDQ1NjViOTM1MDUwNjAyMDYxMjNhODg2ODI4NzAxNjExZWQ0NTY1YjkyNTA1MDYwNDA2MTIzYjk4NjgyODcwMTYxMjIzYTU2NWI5MTUwNTA5MjUwOTI1MDkyNTY1YjYwMDA4MDYwMDA4MDYwODA4NTg3MDMxMjE1NjEyM2RkNTc2MTIzZGM2MTJmZDY1NjViNWI2MDAwNjEyM2ViODc4Mjg4MDE2MTFlZDQ1NjViOTQ1MDUwNjAyMDg1MDEzNTY3ZmZmZmZmZmZmZmZmZmZmZjgxMTExNTYxMjQwYzU3NjEyNDBiNjEyZmQxNTY1YjViNjEyNDE4ODc4Mjg4MDE2MTFlZTk1NjViOTM1MDUwNjA0MDg1MDEzNTY3ZmZmZmZmZmZmZmZmZmZmZjgxMTExNTYxMjQzOTU3NjEyNDM4NjEyZmQxNTY1YjViNjEyNDQ1ODc4Mjg4MDE2MTFlZTk1NjViOTI1MDUwNjA2MDg1MDEzNTY3ZmZmZmZmZmZmZmZmZmZmZjgxMTExNTYxMjQ2NjU3NjEyNDY1NjEyZmQxNTY1YjViNjEyNDcyODc4Mjg4MDE2MTFmMTc1NjViOTE1MDUwOTI5NTkxOTQ1MDkyNTA1NjViNjAwMDgwNjAwMDYwNjA4NDg2MDMxMjE1NjEyNDk3NTc2MTI0OTY2MTJmZDY1NjViNWI2MDAwNjEyNGE1ODY4Mjg3MDE2MTFlZDQ1NjViOTM1MDUwNjAyMDg0MDEzNTY3ZmZmZmZmZmZmZmZmZmZmZjgxMTExNTYxMjRjNjU3NjEyNGM1NjEyZmQxNTY1YjViNjEyNGQyODY4Mjg3MDE2MTFlZTk1NjViOTI1MDUwNjA0MDg0MDEzNTY3ZmZmZmZmZmZmZmZmZmZmZjgxMTExNTYxMjRmMzU3NjEyNGYyNjEyZmQxNTY1YjViNjEyNGZmODY4Mjg3MDE2MTFmMTc1NjViOTE1MDUwOTI1MDkyNTA5MjU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTI1MWY1NzYxMjUxZTYxMmZkNjU2NWI1YjYwMDA2MTI1MmQ4NDgyODUwMTYxMjAwYzU2NWI5MTUwNTA5MjkxNTA1MDU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTI1NGM1NzYxMjU0YjYxMmZkNjU2NWI1YjYwMDA2MTI1NWE4NDgyODUwMTYxMjAzNjU2NWI5MTUwNTA5MjkxNTA1MDU2NWI2MDAwODA2MDAwNjA0MDg0ODYwMzEyMTU2MTI1N2M1NzYxMjU3YjYxMmZkNjU2NWI1YjYwMDA4NDAxMzU2N2ZmZmZmZmZmZmZmZmZmZmY4MTExMTU2MTI1OWE1NzYxMjU5OTYxMmZkMTU2NWI1YjYxMjVhNjg2ODI4NzAxNjEyMWMzNTY1YjkzNTA1MDYwMjA4NDAxMzU2N2ZmZmZmZmZmZmZmZmZmZmY4MTExMTU2MTI1Yzc1NzYxMjVjNjYxMmZkMTU2NWI1YjYxMjVkMzg2ODI4NzAxNjE=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwFx1SzjW41I0cJ/+cXDf4oDPOlpY1xNq1GvBz2w+C9tzLfb2r34UOpb+VDKpvGHocGgwIj7bkrQYQ++717AEiDwoJCNO15K0GEK0bEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjTteStBhCzGxICGAISAhgDGPbR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxj5DCKAIDFmYTE1NjViOTI1MDkyNTA1MDkyNTA5MjUwOTI1NjViNjAwMDYxMjVlYjgzODM2MTI2NTM1NjViNjAyMDgzMDE5MDUwOTI5MTUwNTA1NjViNjAwMDYxMjYwMzgzODM2MTI4Y2I1NjViNjAyMDgzMDE5MDUwOTI5MTUwNTA1NjViNjAwMDYxMjYxYjgzODM2MTI4ZTk1NjViNjA2MDgzMDE5MDUwOTI5MTUwNTA1NjViNjAwMDYxMjYzMzgzODM2MTI5MmI1NjViNjA4MDgzMDE5MDUwOTI5MTUwNTA1NjViNjAwMDYxMjY0YjgzODM2MTI5ODA1NjViOTA1MDkyOTE1MDUwNTY1YjYxMjY1YzgxNjEyZTdhNTY1YjgyNTI1MDUwNTY1YjYxMjY2YjgxNjEyZTdhNTY1YjgyNTI1MDUwNTY1YjYwMDA2MTI2N2M4MjYxMmQ5NzU2NWI2MTI2ODY4MTg1NjEyZTFhNTY1YjkzNTA2MTI2OTE4MzYxMmQ0NzU2NWI4MDYwMDA1YjgzODExMDE1NjEyNmMyNTc4MTUxNjEyNmE5ODg4MjYxMjVkZjU2NWI5NzUwNjEyNmI0ODM2MTJkZDk1NjViOTI1MDUwNjAwMTgxMDE5MDUwNjEyNjk1NTY1YjUwODU5MzUwNTA1MDUwOTI5MTUwNTA1NjViNjAwMDYxMjZkYTgyNjEyZGEyNTY1YjYxMjZlNDgxODU2MTJlMmI1NjViOTM1MDYxMjZlZjgzNjEyZDU3NTY1YjgwNjAwMDViODM4MTEwMTU2MTI3MjA1NzgxNTE2MTI3MDc4ODgyNjEyNWY3NTY1Yjk3NTA2MTI3MTI4MzYxMmRlNjU2NWI5MjUwNTA2MDAxODEwMTkwNTA2MTI2ZjM1NjViNTA4NTkzNTA1MDUwNTA5MjkxNTA1MDU2NWI2MDAwNjEyNzM4ODI2MTJkYWQ1NjViNjEyNzQyODE4NTYxMmUzYzU2NWI5MzUwNjEyNzRkODM2MTJkNjc1NjViODA2MDAwNWI4MzgxMTAxNTYxMjc3ZTU3ODE1MTYxMjc2NTg4ODI2MTI2MGY1NjViOTc1MDYxMjc3MDgzNjEyZGYzNTY1YjkyNTA1MDYwMDE4MTAxOTA1MDYxMjc1MTU2NWI1MDg1OTM1MDUwNTA1MDkyOTE1MDUwNTY1YjYwMDA2MTI3OTY4MjYxMmRiODU2NWI2MTI3YTA4MTg1NjEyZTRkNTY1YjkzNTA2MTI3YWI4MzYxMmQ3NzU2NWI4MDYwMDA1YjgzODExMDE1NjEyN2RjNTc4MTUxNjEyN2MzODg4MjYxMjYyNzU2NWI5NzUwNjEyN2NlODM2MTJlMDA1NjViOTI1MDUwNjAwMTgxMDE5MDUwNjEyN2FmNTY1YjUwODU5MzUwNTA1MDUwOTI5MTUwNTA1NjViNjAwMDYxMjdmNDgyNjEyZGMzNTY1YjYxMjdmZTgxODU2MTJlNWU1NjViOTM1MDgzNjAyMDgyMDI4NTAxNjEyODEwODU2MTJkODc1NjViODA2MDAwNWI4NTgxMTAxNTYxMjg0YzU3ODQ4NDAzODk1MjgxNTE2MTI4MmQ4NTgyNjEyNjNmNTY1Yjk0NTA2MTI4Mzg4MzYxMmUwZDU2NWI5MjUwNjAyMDhhMDE5OTUwNTA2MDAxODEwMTkwNTA2MTI4MTQ1NjViNTA4Mjk3NTA4Nzk1NTA1MDUwNTA1MDUwOTI5MTUwNTA1NjViNjEyODY3ODE2MTJlOGM1NjViODI1MjUwNTA1NjViNjEyODc2ODE2MTJlOGM1NjViODI1MjUwNTA1NjViNjAwMDYxMjg4NzgyNjEyZGNlNTY1YjYxMjg5MTgxODU2MTJlNmY1NjViOTM1MDYxMjhhMTgxODU2MDIwODYwMTYxMmYyMDU2NWI4MDg0MDE5MTUwNTA5MjkxNTA1MDU2NWI2MTI4YjY4MTYxMmU5ODU2NWI4MjUyNTA1MDU2NWI2MTI4YzU4MTYxMmVmYjU2NWI4MjUyNTA1MDU2NWI2MTI4ZDQ4MTYxMmVhZjU2NWI4MjUyNTA1MDU2NWI2MTI4ZTM4MTYxMmVhZjU2NWI4MjUyNTA1MDU2NWI2MDYwODIwMTYwMDA4MjAxNTE2MTI4ZmY2MDAwODUwMTgyNjEyNjUzNTY1YjUwNjAyMDgyMDE1MTYxMjkxMjYwMjA4NTAxODI2MTI4Y2I1NjViNTA2MDQwODIwMTUxNjEyOTI1NjA0MDg1MDE4MjYxMjg1ZTU2NWI1MDUwNTA1MDU2NWI2MDgwODIwMTYwMDA4MjAxNTE2MTI5NDE2MDAwODUwMTgyNjEyNjUzNTY1YjUwNjAyMDgyMDE1MTYxMjk1NDYwMjA4NTAxODI2MTI2NTM1NjViNTA2MDQwODIwMTUxNjEyOTY3NjA0MDg1MDE4MjYxMjhjYjU2NWI1MDYwNjA4MjAxNTE2MTI5N2E2MDYwODUwMTgyNjEyODVlNTY1YjUwNTA1MDUwNTY1YjYwMDA2MDYwODMwMTYwMDA4MzAxNTE2MTI5OTg2MDAwODYwMTgyNjEyNjUzNTY1YjUwNjAyMDgzMDE1MTg0ODIwMzYwMjA4NjAxNTI2MTI5YjA4MjgyNjEyNzJkNTY1YjkxNTA1MDYwNDA4MzAxNTE4NDgyMDM2MDQwODYwMTUyNjEyOWNhODI4MjYxMjc4YjU2NWI5MTUwNTA4MDkxNTA1MDkyOTE1MDUwNTY1YjYwMDA2MDIwODMwMTYwMDA4MzAxNTE4NDgyMDM2MDAwODYwMTUyNjEyOWY0ODI4MjYxMjcyZDU2NWI5MTUwNTA4MDkxNTA1MDkyOTE1MDUwNTY1YjYxMmEwYTgxNjEyZWRjNTY1YjgyNTI1MDUwNTY1YjYwMDA2MTJhMWM4Mjg0NjEyODdjNTY1YjkxNTA4MTkwNTA5MjkxNTA1MDU2NWI2MDAwNjA4MDgyMDE5MDUwNjEyYTNjNjAwMDgzMDE4NzYxMjY2MjU2NWI2MTJhNDk2MDIwODMwMTg2NjEyNjYyNTY1YjYxMmE1NjYwNDA4MzAxODU2MTI2NjI1NjViNjEyYTYzNjA2MDgzMDE4NDYxMjhkYTU2NWI5NTk0NTA1MDUwNTA1MDU2NWI2MDAwNjA4MDgyMDE5MDUwNjEyYTgxNjAwMDgzMDE4NzYxMjY2MjU2NWI2MTJhOGU2MDIwODMwMTg2NjEyNjYyNTY1YjYxMmE5YjYwNDA4MzAxODU2MTI2NjI1NjViNjEyYWE4NjA2MDgzMDE4NDYxMmEwMTU2NWI5NTk0NTA1MDUwNTA1MDU2NWI2MDAwNjA2MDgyMDE5MDUwNjEyYWM2NjAwMDgzMDE4NjYxMjY2MjU2NWI2MTJhZDM2MDIwODMwMTg1NjEyNjYyNTY1YjYxMmFlMDYwNDA4MzAxODQ2MTI4NmQ1NjViOTQ5MzUwNTA1MDUwNTY1YjYwMDA2MDYwODIwMTkwNTA2MTJhZmQ2MDAwODMwMTg2NjEyNjYyNTY1YjYxMmIwYTYwMjA4MzAxODU2MTI2NjI1NjViNjEyYjE3NjA0MDgzMDE4NDYxMmEwMTU2NWI5NDkzNTA1MDUwNTA1NjViNjAwMDYwODA4MjAxOTA1MDYxMmIzNDYwMDA4MzAxODc2MTI2NjI1NjViODE4MTAzNjAyMDgzMDE1MjYxMmI0NjgxODY2MTI2NzE1NjViOTA1MDgxODEwMzYwNDA4MzAxNTI2MTJiNWE4MTg1NjEyNjcxNTY1YjkwNTA4MTgxMDM2MDYwODMwMTUyNjEyYjZlODE4NDYxMjZjZjU2NWI5MDUwOTU5NDUwNTA1MDUwNTA1NjViNjAwMDYwNjA4MjAxOTA1MDYxMmI4ZTYwMDA4MzAxODY2MTI2NjI1NjViODE4MTAzNjAyMDgzMDE1MjYxMmJhMDgxODU2MTI2NzE1NjViOTA1MDgxODEwMzYwNDA4MzAxNTI2MTJiYjQ4MTg0NjEyNmNmNTY1YjkwNTA5NDkzNTA1MDUwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDYxMmJkMzYwMDA4MzAxODQ2MTI4YWQ1NjViOTI5MTUwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDYxMmJlZTYwMDA4MzAxODQ2MTI4YmM1NjViOTI5MTUwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDYxMmMwOTYwMDA4MzAxODQ2MTI4ZGE1NjViOTI5MTUwNTA1NjViNjAwMDYwNDA4MjAxOTA1MDgxODEwMzYwMDA4MzAxNTI2MTJjMjk4MTg1NjEyOWQ3NTY1YjkwNTA4MTgxMDM2MDIwODMwMTUyNjEyYzNkODE4NDYxMjdlOTU2NWI5MDUwOTM5MjUwNTA1MDU2NWI2MDAwNjEyYzUwNjEyYzYxNTY1YjkwNTA2MTJjNWM4MjgyNjEyZjUzNTY1YjkxOTA1MDU2NWI2MDAwNjA0MDUxOTA1MDkwNTY1YjYwMDA2N2ZmZmZmZmZmZmZmZmZmZmY4MjExMTU2MTJjODY1NzYxMmM4NTYxMmY4NDU2NWI1YjYwMjA4MjAyOTA1MDYwMjA4MTAxOTA1MDkxOTA1MDU2NWI2MDAwNjdmZmZmZmZmZmZmZmZmZmZmODIxMTE1NjEyY2IyNTc2MTJjYjE2MTJmODQ1NjViNWI2MDIwODIwMjkwNTA2MDIwODEwMTkwNTA5MTkwNTA1NjViNjAwMDY3ZmZmZmZmZmZmZmZmZmZmZjgyMTExNTYxMmNkZTU3NjEyY2RkNjEyZjg0NTY1YjViNjAyMDgyMDI5MDUwNjAyMDgxMDE5MDUwOTE5MDUwNTY1YjYwMDA2N2ZmZmZmZmZmZmZmZmZmZmY4MjExMTU2MTJkMGE1NzYxMmQwOTYxMmY4NDU2NWI1YjYwMjA4MjAyOTA1MDYwMjA4MTAxOTA1MDkxOTA1MDU2NWI2MDAwNjdmZmZmZmZmZmZmZmZmZmZmODIxMTE1NjEyZDM2NTc2MTJkMzU2MTJmODQ1NjViNWI2MDIwODIwMjkwNTA2MDIwODEwMTkwNTA5MTkwNTA1NjViNjAwMDgxOTA1MDYwMjA4MjAxOTA1MDkxOTA1MDU2NWI2MDAwODE5MDUwNjAyMDgyMDE5MDUwOTE5MDUwNTY1YjYwMDA4MTkwNTA2MDIwODIwMTkwNTA5MTkwNTA1NjViNjAwMDgxOTA1MDYwMjA4MjAxOTA1MDkxOTA1MDU2NWI2MDAwODE5MDUwNjAyMDgyMDE5MDUwOTE5MDUwNTY1YjYwMDA4MTUxOTA1MDkxOTA1MDU2NWI2MDAwODE1MTkwNTA5MTkwNTA1NjViNjAwMDgxNTE5MDUwOTE5MDUwNTY1YjYwMDA4MTUxOTA1MDkxOTA1MDU2NWI2MDAwODE1MTkwNTA5MTkwNTA1NjViNjA=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwWkhgoIZF3VrEOcAbFjqWkfFhkw6ohE+74q7prOERLCTLeJDpkWaEI/hS55f3Qg7XGgwIj7bkrQYQ+8Dw0QMiDwoJCNO15K0GELMbEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjUteStBhC5GxICGAISAhgDGNyDizMiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBkgsSAxj5DCKKCzAwODE1MTkwNTA5MTkwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDkxOTA1MDU2NWI2MDAwNjAyMDgyMDE5MDUwOTE5MDUwNTY1YjYwMDA2MDIwODIwMTkwNTA5MTkwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDkxOTA1MDU2NWI2MDAwNjAyMDgyMDE5MDUwOTE5MDUwNTY1YjYwMDA4MjgyNTI2MDIwODIwMTkwNTA5MjkxNTA1MDU2NWI2MDAwODI4MjUyNjAyMDgyMDE5MDUwOTI5MTUwNTA1NjViNjAwMDgyODI1MjYwMjA4MjAxOTA1MDkyOTE1MDUwNTY1YjYwMDA4MjgyNTI2MDIwODIwMTkwNTA5MjkxNTA1MDU2NWI2MDAwODI4MjUyNjAyMDgyMDE5MDUwOTI5MTUwNTA1NjViNjAwMDgxOTA1MDkyOTE1MDUwNTY1YjYwMDA2MTJlODU4MjYxMmViYzU2NWI5MDUwOTE5MDUwNTY1YjYwMDA4MTE1MTU5MDUwOTE5MDUwNTY1YjYwMDA4MTkwNTA5MTkwNTA1NjViNjAwMDgxNjAwMzBiOTA1MDkxOTA1MDU2NWI2MDAwODE2MDA3MGI5MDUwOTE5MDUwNTY1YjYwMDA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MjE2OTA1MDkxOTA1MDU2NWI2MDAwODE5MDUwOTE5MDUwNTY1YjYwMDA2MTJlZjMzNjg0ODQ2MTFlNDY1NjViOTA1MDkyOTE1MDUwNTY1YjYwMDA2MTJmMDY4MjYxMmVhZjU2NWI5MDUwOTE5MDUwNTY1YjYwMDA2MTJmMTkzNjgzNjEyMWUyNTY1YjkwNTA5MTkwNTA1NjViNjAwMDViODM4MTEwMTU2MTJmM2U1NzgwODIwMTUxODE4NDAxNTI2MDIwODEwMTkwNTA2MTJmMjM1NjViODM4MTExMTU2MTJmNGQ1NzYwMDA4NDg0MDE1MjViNTA1MDUwNTA1NjViNjEyZjVjODI2MTJmZGI1NjViODEwMTgxODExMDY3ZmZmZmZmZmZmZmZmZmZmZjgyMTExNzE1NjEyZjdiNTc2MTJmN2E2MTJmODQ1NjViNWI4MDYwNDA1MjUwNTA1MDU2NWI3ZjRlNDg3YjcxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MDAwNTI2MDQxNjAwNDUyNjAyNDYwMDBmZDViNjAwMDgwZmQ1YjYwMDA4MGZkNWI2MDAwODBmZDViNjAwMDgwZmQ1YjYwMDA4MGZkNWI2MDAwODBmZDViNjAwMDgwZmQ1YjYwMDA4MGZkNWI2MDAwNjAxZjE5NjAxZjgzMDExNjkwNTA5MTkwNTA1NjViNjEyZmY1ODE2MTJlN2E1NjViODExNDYxMzAwMDU3NjAwMDgwZmQ1YjUwNTY1YjYxMzAwYzgxNjEyZThjNTY1YjgxMTQ2MTMwMTc1NzYwMDA4MGZkNWI1MDU2NWI2MTMwMjM4MTYxMmVhMjU2NWI4MTE0NjEzMDJlNTc2MDAwODBmZDViNTA1NjViNjEzMDNhODE2MTJlYWY1NjViODExNDYxMzA0NTU3NjAwMDgwZmQ1YjUwNTY1YjYxMzA1MTgxNjEyZWRjNTY1YjgxMTQ2MTMwNWM1NzYwMDA4MGZkNWI1MDU2ZmVhMjY0Njk3MDY2NzM1ODIyMTIyMGZiNWJkY2E2MmRjYzhjNWNjYjczNmE1NTZhZjEwZDRlNGI4ZTRlYjQzZGQyMjI3NGUxYmVlZmIxMWY1YTBiMTY2NDczNmY2YzYzNDMwMDA4MDcwMDMz","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw7ufnKf+bG0HOFnn+m/kUUCX1ln64/yrvNz+HjPduOcvwD6STAkikH89NWDt0DN9nGgwIkLbkrQYQs8mY9gEiDwoJCNS15K0GELkbEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjUteStBhC7GxICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGPkMGiISIEqSL/MlaBViFf21lqsRKtk+Gs5C6PmGa9tg+Qr7AwvDIKDCHkIFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGPoMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBlk8rJC5TEq6CbJ12Zb10uZqz2HrqlrZJvGPAKJY0wkR23BmG0KpQr5yS0vOS3CMIaDAiQtuStBhCzpJDbAyIPCgkI1LXkrQYQuxsSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDwvYIOQspjCgMY+gwSlWFggGBAUjSAFWEAEFdgAID9W1BgBDYQYQEWV2AANWDgHIBjmyPT2RFhAKJXgGPfbAb1EWEAcVeAY99sBvUUYQOLV4Bj6sbz/hRhA7tXgGPveDm2FGED61eAY/JbEgAUYQQbV4Bj+Ej+xBRhBEtXYQEWVluAY5sj09kUYQLLV4BjrDbvtBRhAvtXgGPHZiDKFGEDK1eAY8wlKPAUYQNbV2EBFlZbgGNsQKd3EWEA6VeAY2xAp3cUYQHbV4Bjbaax8BRhAgtXgGOEK3HbFGECO1eAY5QuAaMUYQJrV4Bjlw4j0hRhAptXYQEWVluAYxHh/AcUYQEbV4BjFdrL6hRhAUtXgGNLpnA1FGEBe1eAY1gTFVEUYQGrV1tgAID9W2EBNWAEgDYDgQGQYQEwkZBhIrZWW2EEe1ZbYEBRYQFCkZBhK/RWW2BAUYCRA5DzW2EBZWAEgDYDgQGQYQFgkZBhIrZWW2EFl1ZbYEBRYQFykZBhK/RWW2BAUYCRA5DzW2EBlWAEgDYDgQGQYQGQkZBhIk9WW2EGtVZbYEBRYQGikZBhK75WW2BAUYCRA5DzW2EBxWAEgDYDgQGQYQHAkZBhJH5WW2EHFFZbYEBRYQHSkZBhK75WW2BAUYCRA5DzW2EB9WAEgDYDgQGQYQHwkZBhIrZWW2EHcVZbYEBRYQICkZBhK/RWW2BAUYCRA5DzW2ECJWAEgDYDgQGQYQIgkZBhIk9WW2EIWFZbYEBRYQIykZBhK75WW2BAUYCRA5DzW2ECVWAEgDYDgQGQYQJQkZBhIrZWW2EIt1ZbYEBRYQJikZBhK/RWW2BAUYCRA5DzW2EChWAEgDYDgQGQYQKAkZBhI3BWW2EJnlZbYEBRYQKSkZBhK75WW2BAUYCRA5DzW2ECtWAEgDYDgQGQYQKwkZBhJWNWW2EJ+1ZbYEBRYQLCkZBhK75WW2BAUYCRA5DzW2EC5WAEgDYDgQGQYQLgkZBhIrZWW2EKbFZbYEBRYQLykZBhK/RWW2BAUYCRA5DzW2EDFWAEgDYDgQGQYQMQkZBhJWNWW2ELilZbYEBRYQMikZBhK75WW2BAUYCRA5DzW2EDRWAEgDYDgQGQYQNAkZBhIx1WW2EL+1ZbYEBRYQNSkZBhK75WW2BAUYCRA5DzW2EDdWAEgDYDgQGQYQNwkZBhI8NWW2EMWFZbYEBRYQOCkZBhK75WW2BAUYCRA5DzW2EDpWAEgDYDgQGQYQOgkZBhI3BWW2EMt1ZbYEBRYQOykZBhK75WW2BAUYCRA5DzW2ED1WAEgDYDgQGQYQPQkZBhIrZWW2ENFFZbYEBRYQPikZBhK/RWW2BAUYCRA5DzW2EEBWAEgDYDgQGQYQQAkZBhI3BWW2EOMFZbYEBRYQQSkZBhK75WW2BAUYCRA5DzW2EENWAEgDYDgQGQYQQwkZBhIx1WW2EOjVZbYEBRYQRCkZBhK75WW2BAUYCRA5DzW2EEZWAEgDYDgQGQYQRgkZBhI3BWW2EO6lZbYEBRYQRykZBhK75WW2BAUYCRA5DzW2AAgGAAYQFnc///////////////////////////FmObI9PZYOAbiIiIiGBAUWAkAWEEuJSTkpGQYSpsVltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhBSKRkGEqEFZbYABgQFGAgwOBhVr0kVBQPYBgAIEUYQVdV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YQViVltgYJFQW1CRUJFQgWEFc1dgFWEFiFZbgIBgIAGQUYEBkGEFh5GQYSUJVltbYAMLklBQUJSTUFBQUFZbYACAYABhAWdz//////////////////////////8WYxXay+pg4BuIiIiIYEBRYCQBYQXUlJOSkZBhKmxWW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEGPpGQYSoQVltgAGBAUYCDA4FgAIZa8ZFQUD2AYACBFGEGe1dgQFGRUGAfGWA/PQEWggFgQFI9glI9YABgIIQBPmEGgFZbYGCRUFtQkVCRUIFhBpFXYBVhBqZWW4CAYCABkFGBAZBhBqWRkGElCVZbW2ADC5JQUFCUk1BQUFBWW2AAYQbDhYWFhWEPR1ZbkFB/kKXPTP/oi07bsEHPx6ioEsSKXsMLhGQPs3aQh1Fo46qBYEBRYQb0kZBhK75WW2BAUYCRA5ChYBZgAwuBFGEHDFdgAID9W5STUFBQUFZbYABhByGEhIRhEGVWW5BQf5Clz0z/6ItO27BBz8eoqBLEil7DC4RkD7N2kIdRaOOqgWBAUWEHUpGQYSu+VltgQFGAkQOQoWAWYAMLgRRhB2pXYACA/VuTklBQUFZbYAAwc///////////////////////////FmObI9PZhoaGhmBAUYVj/////xZg4BuBUmAEAWEHspSTkpGQYSpsVltgIGBAUYCDA4FgAIeAOxWAFWEHzFdgAID9W1Ba8RWAFWEH4Fc9YACAPj1gAP1bUFBQUGBAUT1gHxlgH4IBFoIBgGBAUlCBAZBhCASRkGElNlZbkFB/kKXPTP/oi07bsEHPx6ioEsSKXsMLhGQPs3aQh1Fo46qBYEBRYQg1kZBhK9lWW2BAUYCRA5ChYBZgAwuBYAcLFGEIUFdgAID9W5STUFBQUFZbYABhCGaFhYWFYRGAVluQUH+Qpc9M/+iLTtuwQc/HqKgSxIpewwuEZA+zdpCHUWjjqoFgQFFhCJeRkGErvlZbYEBRgJEDkKFgFmADC4EUYQivV2AAgP1blJNQUFBQVltgADBz//////////////////////////8WYxXay+qGhoaGYEBRhWP/////FmDgG4FSYAQBYQj4lJOSkZBhKmxWW2AgYEBRgIMDgWAAh4A7FYAVYQkSV2AAgP1bUFrxFYAVYQkmVz1gAIA+PWAA/VtQUFBQYEBRPWAfGWAfggEWggGAYEBSUIEBkGEJSpGQYSU2VluQUH+Qpc9M/+iLTtuwQc/HqKgSxIpewwuEZA+zdpCHUWjjqoFgQFFhCXuRkGEr2VZbYEBRgJEDkKFgFmADC4FgBwsUYQmWV2AAgP1blJNQUFBQVltgAGEJq4SEhGESnlZbkFB/kKXPTP/oi07bsEHPx6ioEsSKXsMLhGQPs3aQh1Fo46qBYEBRYQnckZBhK75WW2BAUYCRA5ChYBZgAwuBFGEJ9FdgAID9W5OSUFBQVltgAGEKHIRhCgqQYS8NVluEhJBhCheRkGEu5lZbYRO3VluQUH+Qpc9M/+iLTtuwQc/HqKgSxIpewwuEZA+zdpCHUWjjqoFgQFFhCk2RkGErvlZbYEBRgJEDkKFgFmADC4EUYQplV2AAgP1bk5JQUFBWW2AAgGAAYQFnc///////////////////////////FmObI9PZYOAbiIiIiGBAUWAkAWEKqZSTkpGQYSpsVltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhCxORkGEqEFZbYABgQFGAgwOBYACGWvGRUFA9gGAAgRRhC1BXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hC1VWW2BgkVBbUJFQkVCBYQtmV2AVYQt7VluAgGAgAZBRgQGQYQt6kZBhJQlWW1tgAwuSUFBQlJNQUFBQVltgAGELq4RhC5mQYS8NVluEhJBhC6aRkGEu5lZbYRTPVluQUH+Qpc9M/+iLTtuwQc/HqKgSxIpewwuEZA+zdpCHUWjjqoFgQFFhC9yRkGErvlZbYEBRgJEDkKFgFmADC4EUYQv0V2AAgP1bk5JQUFBWW2AAYQwIhISEYRXlVluQUH+Qpc9M/+iLTtuwQc/HqKgSxIpewwuEZA+zdpCHUWjjqoFgQFFhDDmRkGErvlZbYEBRgJEDkKFgFmADC4EUYQxRV2AAgP1bk5JQUFBWW2AAYQxmhYWFhWEW/lZbkFB/kKXPTP/oi07bsEHPx6ioEsSKXsMLhGQPs3aQh1Fo46qBYEBRYQyXkZBhK75WW2BAUYCRA5ChYBZgAwuBFGEMr1dgAID9W5STUFBQUFZbYABhDMSEhIRhGBxWW5BQf5Clz0z/6ItO27BBz8eoqBLEil7DC4RkD7N2kIdRaOOqgWBAUWEM9ZGQYSu+VltgQFGAkQOQoWAWYAMLgRRhDQ1XYACA/VuTklBQUFZbYACAYABhAWdz//////////////////////////8WYxXay+pg4BuIiIiIYEBRYCQBYQ1RlJOSkZBhKmxWW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWENu5GQYSoQVltgAGBAUYCDA4GFWvSRUFA9gGAAgRRhDfZXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hDftWW2BgkVBbUJFQkVCBYQ4MV2AVYQ4hVluAgGAgAZBRgQGQYQ4gkZBhJQlWW1tgAwuSUFBQlJNQUFBQVltgAGEOPYSEhGEZN1ZbkFB/kKXPTP/oi07bsEHPx6ioEsSKXsMLhGQPs3aQh1Fo46qBYEBRYQ5ukZBhK75WW2BAUYCRA5ChYBZgAwuBFGEOhldgAID9W5OSUFBQVltgAGEOmoSEhGEaUFZbkFB/kKXPTP/oi07bsEHPx6ioEsSKXsMLhGQPs3aQh1Fo46qBYEBRYQ7LkZBhK75WW2BAUYCRA5ChYBZgAwuBFGEO41dgAID9W5OSUFBQVltgAGEO94SEhGEba1ZbkFB/kKXPTP/oi07bsEHPx6ioEsSKXsMLhGQPs3aQh1Fo46qBYEBRYQ8okZBhK75WW2BAUYCRA5ChYBZgAwuBFGEPQFdgAID9W5OSUFBQVltgAIBgAGEBZ3P//////////////////////////xZj7KNpF2DgG4iIiIhgQFFgJAFhD4SUk5KRkGEqJ1ZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQ/ukZBhKhBWW2AAYEBRgIMDgWAAhlrxkVBQPYBgAIEUYRArV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YRAwVltgYJFQW1CRUJFQgWEQQVdgFWEQVlZbgIBgIAGQUYEBkGEQVZGQYSUJVltbYAMLklBQUJSTUFBQUFZbYACAYABhAWdz//////////////////////////8WY4K7pJNg4BuHh4dgQFFgJAFhEKCTkpGQYSt5VltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhEQqRkGEqEFZbYABgQFGAgwOBYACGWvGRUFA9gGAAgRRhEUdXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hEUxWW2BgkVBbUJFQkVCBYRFdV2AVYRFyVluAgGAgAZBRgQGQYRFxkZBhJQlWW1tgAwuSUFBQk5JQUFBWW2AAgGAAYQFnc///////////////////////////FmNc/JARYOAbiIiIiGBAUWAkAWERvZSTkpGQYSonVltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhEieRkGEqEFZbYABgQFGAgwOBYACGWvGRUFA9gGAAgRRhEmRXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hEmlWW2BgkVBbUJFQkVCBYRJ6V2AVYRKPVluAgGAgAZBRgQGQYRKOkZBhJQlWW1tgAwuSUFBQlJNQUFBQVltgAIBgAGEBZ3P//////////////////////////xZjczaq8GDgG4eHh2BAUWAkAWES2ZOSkZBhKuhWW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWETQ5GQYSoQVltgAGBAUYCDA4GFWvSRUFA9gGAAgRRhE35XYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hE4NWW2BgkVBbUJFQkVCBYROUV2AVYROpVluAgGAgAZBRgQGQYROokZBhJQlWW1tgAwuSUFBQk5JQUFBWW2AAgGAAYQFnc///////////////////////////FmMOcYBPYOAbhoZgQFFgJAFhE/CSkZBhLA9WW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEUWpGQYSoQVltgAGBAUYCDA4FgAIZa8ZFQUD2AYACBFGEUl1dgQFGRUGAfGWA/PQEWggFgQFI9glI9YABgIIQBPmEUnFZbYGCRUFtQkVCRUIFhFK1XYBVhFMJWW4CAYCABkFGBAZBhFMGRkGElCVZbW2ADC5JQUFCSkVBQVltgAIBgAGEBZ3P//////////////////////////xZjDnGAT2DgG4aGYEBRYCQBYRUIkpGQYSwPVltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhFXKRkGEqEFZbYABgQFGAgwOBhVr0kVBQPYBgAIEUYRWtV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YRWyVltgYJFQW1CRUJFQgWEVw1dgFWEV2FZbgIBgIAGQUYEBkGEV15GQYSUJVltbYAMLklBQUJKRUFBWW2AAgGAAYQFnc///////////////////////////FmM2dgXKYOAbh4eHYEBRYCQBYRYgk5KRkGEqsVZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYRaKkZBhKhBWW2AAYEBRgIMDgYVa9JFQUD2AYACBFGEWxVdgQFGRUGAfGWA/PQEWggFgQFI9glI9YABgIIQBPmEWylZbYGCRUFtQkVCRUIFhFttXYBVhFvBWW4CAYCABkFGBAZBhFu+RkGElCVZbW2ADC5JQUFCTklBQUFZbYACAYABhAWdz//////////////////////////8WYyxLoZFg4BuIiIiIYEBRYCQBYRc7lJOSkZBhKx9WW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEXpZGQYSoQVltgAGBAUYCDA4FgAIZa8ZFQUD2AYACBFGEX4ldgQFGRUGAfGWA/PQEWggFgQFI9glI9YABgIIQBPmEX51ZbYGCRUFtQkVCRUIFhF/hXYBVhGA1WW4CAYCABkFGBAZBhGAyRkGElCVZbW2ADC5JQUFCUk1BQUFBWW2AAgGAAYQFnc///////////////////////////FmNzNqrwYOAbh4eHYEBRYCQBYRhXk5KRkGEq6FZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYRjBkZBhKhBWW2AAYEBRgIMDgWAAhlrxkVBQPYBgAIEUYRj+V2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YRkDVltgYJFQW1CRUJFQgWEZFFdgFWEZKVZbgIBgIAGQUYEBkGEZKJGQYSUJVltbYAMLklBQUJOSUFBQVltgAIBgAGEBZ3P//////////////////////////xZj4fIcZ2DgG4eHh2BAUWAkAWEZcpOSkZBhKuhWW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEZ3JGQYSoQVltgAGBAUYCDA4GFWvSRUFA9gGAAgRRhGhdXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hGhxWW2BgkVBbUJFQkVCBYRotV2AVYRpCVluAgGAgAZBRgQGQYRpBkZBhJQlWW1tgAwuSUFBQk5JQUFBWW2AAgGAAYQFnc///////////////////////////FmM2dgXKYOAbh4eHYEBRYCQBYRqLk5KRkGEqsVZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYRr1kZBhKhBWW2AAYEBRgIMDgWAAhlrxkVBQPYBgAIEUYRsyV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YRs3VltgYJFQW1CRUJFQgWEbSFdgFWEbXVZbgIBgIAGQUYEBkGEbXJGQYSUJVltbYAMLklBQUJOSUFBQVltgAIBgAGEBZ3P//////////////////////////xZj4fIcZ2DgG4eHh2BAUWAkAWEbppOSkZBhKuhWW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEcEJGQYSoQVltgAGBAUYCDA4FgAIZa8ZFQUD2AYACBFGEcTVdgQFGRUGAfGWA/PQEWggFgQFI9glI9YABgIIQBPmEcUlZbYGCRUFtQkVCRUIFhHGNXYBVhHHhWW4CAYCABkFGBAZBhHHeRkGElCVZbW2ADC5JQUFCTklBQUFZbYABhHJlhHJSEYSxrVlthLEZWW5BQgIOCUmAgggGQUIKFYCCGAoIBERVhHLxXYRy7YS/MVltbYABbhYEQFWEc7FeBYRzSiIJhHtRWW4RSYCCEAZNQYCCDAZJQUGABgQGQUGEcv1ZbUFBQk5JQUFBWW2AAYR0JYR0EhGEsl1ZbYSxGVluQUICDglJgIIIBkFCChWAghgKCAREVYR0sV2EdK2EvzFZbW2AAW4WBEBVhHVxXgWEdQoiCYSAhVluEUmAghAGTUGAggwGSUFBgAYEBkFBhHS9WW1BQUJOSUFBQVltgAGEdeWEddIRhLMNWW2EsRlZbkFCAg4JSYCCCAZBQgoVgYIYCggERFWEdnFdhHZthL8xWW1tgAFuFgRAVYR3MV4FhHbKIgmEgS1ZbhFJgIIQBk1BgYIMBklBQYAGBAZBQYR2fVltQUFCTklBQUFZbYABhHelhHeSEYSzvVlthLEZWW5BQgIOCUmAgggGQUIKFYICGAoIBERVhHgxXYR4LYS/MVltbYABbhYEQFWEePFeBYR4iiIJhIK9WW4RSYCCEAZNQYICDAZJQUGABgQGQUGEeD1ZbUFBQk5JQUFBWW2AAYR5ZYR5UhGEtG1ZbYSxGVluQUICDglJgIIIBkFCChWAghgKCAREVYR58V2Eee2EvzFZbW2AAW4WBEBVhHspXgTVn//////////+BERVhHqJXYR6hYS+4VltbgIYBYR6viYJhISdWW4VSYCCFAZRQYCCEAZNQUFBgAYEBkFBhHn9WW1BQUJOSUFBQVltgAIE1kFBhHuOBYS/sVluSkVBQVltgAIJgH4MBEmEe/ldhHv1hL7hWW1uBNWEfDoSCYCCGAWEchlZbkVBQkpFQUFZbYACCYB+DARJhHyxXYR8rYS+4VltbgTVhHzyEgmAghgFhHPZWW5FQUJKRUFBWW2AAgmAfgwESYR9aV2EfWWEvuFZbW4E1YR9qhIJgIIYBYR1mVluRUFCSkVBQVltgAIJgH4MBEmEfiFdhH4dhL7hWW1uBNWEfmISCYCCGAWEd1lZbkVBQkpFQUFZbYACAg2AfhAESYR+3V2EftmEvuFZbW4I1kFBn//////////+BERVhH9RXYR/TYS+zVltbYCCDAZFQg2AgggKDAREVYR/wV2Ef72EvzFZbW5JQkpBQVltgAIE1kFBhIAaBYTADVluSkVBQVltgAIFRkFBhIBuBYTAaVluSkVBQVltgAIE1kFBhIDCBYTAxVluSkVBQVltgAIFRkFBhIEWBYTAxVluSkVBQVltgAGBggoQDEhVhIGFXYSBgYS/CVltbYSBrYGBhLEZWW5BQYABhIHuEgoUBYR7UVltgAIMBUlBgIGEgj4SChQFhICFWW2AggwFSUGBAYSCjhIKFAWEf91ZbYECDAVJQkpFQUFZbYABggIKEAxIVYSDFV2EgxGEvwlZbW2Egz2CAYSxGVluQUGAAYSDfhIKFAWEe1FZbYACDAVJQYCBhIPOEgoUBYR7UVltgIIMBUlBgQGEhB4SChQFhICFWW2BAgwFSUGBgYSEbhIKFAWEf91ZbYGCDAVJQkpFQUFZbYABgYIKEAxIVYSE9V2EhPGEvwlZbW2EhR2BgYSxGVluQUGAAYSFXhIKFAWEe1FZbYACDAVJQYCCCATVn//////////+BERVhIXtXYSF6YS/HVltbYSGHhIKFAWEfRVZbYCCDAVJQYECCATVn//////////+BERVhIatXYSGqYS/HVltbYSG3hIKFAWEfc1ZbYECDAVJQkpFQUFZbYABgIIKEAxIVYSHZV2Eh2GEvvVZbW4GQUJKRUFBWW2AAYCCChAMSFWEh+FdhIfdhL8JWW1thIgJgIGEsRlZbkFBgAIIBNWf//////////4ERFWEiIldhIiFhL8dWW1thIi6EgoUBYR9FVltgAIMBUlCSkVBQVltgAIE1kFBhIkmBYTBIVluSkVBQVltgAIBgAIBggIWHAxIVYSJpV2EiaGEv1lZbW2AAYSJ3h4KIAWEe1FZblFBQYCBhIoiHgogBYR7UVluTUFBgQGEimYeCiAFhHtRWW5JQUGBgYSKqh4KIAWEgIVZbkVBQkpWRlFCSUFZbYACAYACAYICFhwMSFWEi0FdhIs9hL9ZWW1tgAGEi3oeCiAFhHtRWW5RQUGAgYSLvh4KIAWEe1FZbk1BQYEBhIwCHgogBYR7UVluSUFBgYGEjEYeCiAFhIjpWW5FQUJKVkZRQklBWW2AAgGAAYGCEhgMSFWEjNldhIzVhL9ZWW1tgAGEjRIaChwFhHtRWW5NQUGAgYSNVhoKHAWEe1FZbklBQYEBhI2aGgocBYR/3VluRUFCSUJJQklZbYACAYABgYISGAxIVYSOJV2EjiGEv1lZbW2AAYSOXhoKHAWEe1FZbk1BQYCBhI6iGgocBYR7UVluSUFBgQGEjuYaChwFhIjpWW5FQUJJQklCSVltgAIBgAIBggIWHAxIVYSPdV2Ej3GEv1lZbW2AAYSPrh4KIAWEe1FZblFBQYCCFATVn//////////+BERVhJAxXYSQLYS/RVltbYSQYh4KIAWEe6VZbk1BQYECFATVn//////////+BERVhJDlXYSQ4YS/RVltbYSRFh4KIAWEe6VZbklBQYGCFATVn//////////+BERVhJGZXYSRlYS/RVltbYSRyh4KIAWEfF1ZbkVBQkpWRlFCSUFZbYACAYABgYISGAxIVYSSXV2EklmEv1lZbW2AAYSSlhoKHAWEe1FZbk1BQYCCEATVn//////////+BERVhJMZXYSTFYS/RVltbYSTShoKHAWEe6VZbklBQYECEATVn//////////+BERVhJPNXYSTyYS/RVltbYST/hoKHAWEfF1ZbkVBQklCSUJJWW2AAYCCChAMSFWElH1dhJR5hL9ZWW1tgAGElLYSChQFhIAxWW5FQUJKRUFBWW2AAYCCChAMSFWElTFdhJUthL9ZWW1tgAGElWoSChQFhIDZWW5FQUJKRUFBWW2AAgGAAYECEhgMSFWElfFdhJXthL9ZWW1tgAIQBNWf//////////4ERFWElmldhJZlhL9FWW1thJaaGgocBYSHDVluTUFBgIIQBNWf//////////4ERFWElx1dhJcZhL9FWW1thJdOGgocBYR+hVluSUJJQUJJQklCSVltgAGEl64ODYSZTVltgIIMBkFCSkVBQVltgAGEmA4ODYSjL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"},{"b64Body":"ChAKCQjVteStBhC9GxIDGPUMEgIYAxjAv+0hIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46kAEKAxj6DBDAhD0ihAFLpnA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABngAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGdQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZ3//////////////////////////////////////////8=","b64Record":"CiUIISIDGPoMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCn5bfmfCQHjTRw2ECJ4qhXKvBhDty4EcnIAF6e3Vj92wxQ/MYj/17UVgv1RbYGz9AaDAiRtuStBhCztIGAAiIQCgkI1bXkrQYQvRsSAxj1DCogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4w7b+xIToIGgIweCirmDxSFwoJCgIYYhDa/+JCCgoKAxj1DBDZ/+JC"}]},"transferDontWorkWithoutTopLevelSignatures":{"placeholderNum":1659,"encodedItems":[{"b64Body":"Cg8KCQjbteStBhDgGxICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISILcEZ9XWhrJ/gbav9J/AMmsPFR3h/3FvfBosZBfPhUaLEICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGPwMKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBPyPVLjVIgMen7+JMRsQkb0CH60Mkl7YMH9b9j44XN4a4qJqhkzo0hPGPPENXo150aCwiXtuStBhDT5odxIg8KCQjbteStBhDgGxICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUhkKCgoCGAIQ/6fWuQcKCwoDGPwMEICo1rkH"},{"b64Body":"Cg8KCQjbteStBhDiGxICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISICzq1GXeL0YZE9O87yhqj6mM6vs68kuMM63allkGK2CFEICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGP0MKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDIEuyZEpd5ykXuE97OvroFk+P8PTk94Zg78rUUgeVuONxzzSA62P6zZvlu/HsvQfMaDAiXtuStBhDbgKHyAiIPCgkI27XkrQYQ4hsSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxj9DBCAqNa5Bw=="},{"b64Body":"Cg8KCQjcteStBhDkGxICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIBjaHe2pPRxIu99b0ZmDP8ZaVGdSIgCxityRL4FmSuy3EICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGP4MKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjB97Rn82nBlqabrNxZ3LEorM7CcFxU9eTkatAKTdmMy/LYZ4Ehb301xxt8UcLw+RBMaCwiYtuStBhCLzaZ6Ig8KCQjcteStBhDkGxICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUhkKCgoCGAIQ/6fWuQcKCwoDGP4MEICo1rkH"},{"b64Body":"Cg8KCQjcteStBhDmGxICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIEbMNdT7TDzs8+S0civoqZ6uglqeX33XpLiZnXQTQgVAEICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGP8MKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDvuo5yFeLUNg2CivADqjcZ9Qoj/Mi4pPIN6F+mvYDvQD9kHPztceaxqBJWu4nDygYaDAiYtuStBhCLkMCAAyIPCgkI3LXkrQYQ5hsSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxj/DBCAqNa5Bw=="},{"b64Body":"Cg8KCQjdteStBhDoGxICGAISAhgDGIWupekCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAUsKBlRva2VuRBIIU0JRT1BVU1og6AcqAxj9DFIiEiACtnc8JdWJAC9lupemyvoI5d/TCwavWhi7qerH0BEXd2oLCJmEv7EGEPDxw3s=","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGIANEjDu7pVqsxLgoltnPwes18YIS9GUQwhHh6L+FD6Kd3bJCUdcy8dz1qjWELZKuCkMQgkaDAiZtuStBhDbgcSIASIPCgkI3bXkrQYQ6BsSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWg8KAxiADRIICgMY/QwQ0A9yCgoDGIANEgMY/Qw="},{"b64Body":"Cg8KCQjdteStBhDqGxICGAISAhgDGP7v5OgCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAUwKBlRva2VuQxIIVVFJVUtaREsqAxj9DFIiEiACtnc8JdWJAC9lupemyvoI5d/TCwavWhi7qerH0BEXd2oMCJmEv7EGEIDoqOwCiAEB","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGIENEjAoA7Alh5ysI8GW66Avo7GiQtG6jQEOFibP5gjzASLN3l6ZxxXhTNEB62MWRqFqNKgaDAiZtuStBhCD4qftAiIPCgkI3bXkrQYQ6hsSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAcgoKAxiBDRIDGP0M"},{"b64Body":"Cg8KCQjeteStBhDwGxICGAISAhgDGMHw7CAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICDwoDGPwMEgMYgA0SAxiBDQ==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwZ1p1rL3xypycKHMQ2tSquHJDvk9si7+udgd2jwUmPG1IGOCRiOL1KUX+Rhu4IdvuGgwImrbkrQYQ49uVkgEiDwoJCN615K0GEPAbEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjeteStBhD2GxICGAISAhgDGMHw7CAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICDwoDGP4MEgMYgA0SAxiBDQ==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwb4dETrXmnF7V2SJ54F31V+m3juF/qmwZvNATXpGD6bNTBgJyCFx4SzA7g3glKT04GgwImrbkrQYQq7Ot+AIiDwoJCN615K0GEPYbEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjfteStBhD8GxICGAISAhgDGMHw7CAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICDwoDGP8MEgMYgA0SAxiBDQ==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw2v/MmH5RTNRKCq7RAYFlkoG9jaXEz8XWlaENmIM1rrjwLWm7xx5+B3ZSZBBVqg4OGgwIm7bkrQYQi8nrmwEiDwoJCN+15K0GEPwbEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjfteStBhCCHBICGAISAhgDGNPOgyAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjqoCIwoDGIENGgRkYXJrGgZtYXR0ZXIaBWRhcmsxGgdtYXR0ZXIx","b64Record":"CigIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1gEcgQBAgMEEjAgtrO79Y/Io7V5+j2+rgZmZ3SPZ/lh9PcMsWXfFV7LnMfTs7Pm2qs4LXhDQJdw8hoaDAibtuStBhC738qAAyIPCgkI37XkrQYQghwSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWjkKAxiBDRoLCgIYABIDGP0MGAEaCwoCGAASAxj9DBgCGgsKAhgAEgMY/QwYAxoLCgIYABIDGP0MGAQ="},{"b64Body":"Cg8KCQjgteStBhCGHBICGAISAhgDGOufNiICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOchsSGQoDGIANEggKAxj9DBDnBxIICgMY/AwQ6Ac=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwbjUmxHwaIyq1tB/DXxyJKCjmDJLzAbiTHedsYiAoE96mQw6rtJaAf5WAYcHSZk9eGgwInLbkrQYQo5u/oAEiDwoJCOC15K0GEIYcEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAFoZCgMYgA0SCAoDGPwMEOgHEggKAxj9DBDnBw=="},{"b64Body":"Cg8KCQjgteStBhCIHBICGAISAhgDGPqZPSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj8SPQoDGIENGgwKAxj9DBIDGPwMGAEaDAoDGP0MEgMY/AwYAhoMCgMY/QwSAxj8DBgDGgwKAxj9DBIDGPwMGAQ=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwont9SJfSYgdICiZySkiWZbxp8yJYi3OpilIQxbLAiXYOpSbwnZHJKWNwXA4aSC1lGgwInLbkrQYQu4OwhQMiDwoJCOC15K0GEIgcEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAFo9CgMYgQ0aDAoDGP0MEgMY/AwYARoMCgMY/QwSAxj8DBgCGgwKAxj9DBIDGPwMGAMaDAoDGP0MEgMY/AwYBA=="},{"b64Body":"Cg8KCQjhteStBhCKHBICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAidhL+xBhCQqJWWARptCiISIGL3j/zVfPn+80lDyyF4uDE1wVYPagSBhuv2XQqPxhYqCiM6IQKrXSMALQTEw9sUPvcYQk3G2bfFF4c4fDS1lhb/ctYcLAoiEiBTjvq+NlNpVYR3zK3c9TBT1tZfbolZFrHOWm+vq9kGvyIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGIINKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCCz1CbPjf4x7Uwhj1HUEv2S4iHSVRoPm0aAust21GTDzXilo8ALWwDdVtRJcDZQ0MaDAidtuStBhCT2MaqASIPCgkI4bXkrQYQihwSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjhteStBhCOHBICGAISAhgDGIydjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxiCDSKAIDYwODA2MDQwNTIzNDgwMTU2MjAwMDAxMTU3NjAwMDgwZmQ1YjUwNjAwMTgwNjAwMDgwNjAwNjgxMTExNTYyMDAwMDJkNTc2MjAwMDAyYzYyMDAwMWYxNTY1YjViNjAwNjgxMTExNTYyMDAwMDQyNTc2MjAwMDA0MTYyMDAwMWYxNTY1YjViODE1MjYwMjAwMTkwODE1MjYwMjAwMTYwMDAyMDgxOTA1NTUwNjAwMjYwMDE2MDAwNjAwMTYwMDY4MTExMTU2MjAwMDA3MTU3NjIwMDAwNzA2MjAwMDFmMTU2NWI1YjYwMDY4MTExMTU2MjAwMDA4NjU3NjIwMDAwODU2MjAwMDFmMTU2NWI1YjgxNTI2MDIwMDE5MDgxNTI2MDIwMDE2MDAwMjA4MTkwNTU1MDYwMDQ2MDAxNjAwMDYwMDI2MDA2ODExMTE1NjIwMDAwYjU1NzYyMDAwMGI0NjIwMDAxZjE1NjViNWI2MDA2ODExMTE1NjIwMDAwY2E1NzYyMDAwMGM5NjIwMDAxZjE1NjViNWI4MTUyNjAyMDAxOTA4MTUyNjAyMDAxNjAwMDIwODE5MDU1NTA2MDA4NjAwMTYwMDA2MDAzNjAwNjgxMTExNTYyMDAwMGY5NTc2MjAwMDBmODYyMDAwMWYxNTY1YjViNjAwNjgxMTExNTYyMDAwMTBlNTc2MjAwMDEwZDYyMDAwMWYxNTY1YjViODE1MjYwMjAwMTkwODE1MjYwMjAwMTYwMDAyMDgxOTA1NTUwNjAxMDYwMDE2MDAwNjAwNDYwMDY4MTExMTU2MjAwMDEzZDU3NjIwMDAxM2M2MjAwMDFmMTU2NWI1YjYwMDY4MTExMTU2MjAwMDE1MjU3NjIwMDAxNTE2MjAwMDFmMTU2NWI1YjgxNTI2MDIwMDE5MDgxNTI2MDIwMDE2MDAwMjA4MTkwNTU1MDYwMjA2MDAxNjAwMDYwMDU2MDA2ODExMTE1NjIwMDAxODE1NzYyMDAwMTgwNjIwMDAxZjE1NjViNWI2MDA2ODExMTE1NjIwMDAxOTY1NzYyMDAwMTk1NjIwMDAxZjE1NjViNWI4MTUyNjAyMDAxOTA4MTUyNjAyMDAxNjAwMDIwODE5MDU1NTA2MDQwNjAwMTYwMDA2MDA2ODA4MTExMTU2MjAwMDFjNDU3NjIwMDAxYzM2MjAwMDFmMTU2NWI1YjYwMDY4MTExMTU2MjAwMDFkOTU3NjIwMDAxZDg2MjAwMDFmMTU2NWI1YjgxNTI2MDIwMDE5MDgxNTI2MDIwMDE2MDAwMjA4MTkwNTU1MDYyMDAwMjIwNTY1YjdmNGU0ODdiNzEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYwMDA1MjYwMjE2MDA0NTI2MDI0NjAwMGZkNWI2MTMwOTU4MDYyMDAwMjMwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDExNjU3NjAwMDM1NjBlMDFjODA2MzliMjNkM2Q5MTE2MTAwYTI1NzgwNjNkZjZjMDZmNTExNjEwMDcxNTc4MDYzZGY2YzA2ZjUxNDYxMDM4YjU3ODA2M2VhYzZmM2ZlMTQ2MTAzYmI1NzgwNjNlZjc4MzliNjE0NjEwM2ViNTc4MDYzZjI1YjEyMDAxNDYxMDQxYjU3ODA2M2Y4NDhmZWM0MTQ2MTA0NGI1NzYxMDExNjU2NWI4MDYzOWIyM2QzZDkxNDYxMDJjYjU3ODA2M2FjMzZlZmI0MTQ2MTAyZmI1NzgwNjNjNzY2MjBjYTE0NjEwMzJiNTc4MDYzY2MyNTI4ZjAxNDYxMDM1YjU3NjEwMTE2NTY1YjgwNjM2YzQwYTc3NzExNjEwMGU5NTc4MDYzNmM0MGE3NzcxNDYxMDFkYjU3ODA2MzZkYTZiMWYwMTQ2MTAyMGI1NzgwNjM4NDJiNzFkYjE0NjEwMjNiNTc4MDYzOTQyZTAxYTMxNDYxMDI2YjU3ODA2Mzk3MGUyM2QyMTQ2MTAyOWI1NzYxMDExNjU2NWI4MDYzMTFlMWZjMDcxNDYxMDExYjU3ODA2MzE1ZGFjYmVhMTQ2MTAxNGI1NzgwNjM0YmE2NzAzNTE0NjEwMTdiNTc4MDYzNTgxMzE1NTExNDYxMDFhYjU3NWI2MDAwODBmZDViNjEwMTM1NjAwNDgwMzYwMzgxMDE5MDYxMDEzMDkxOTA2MTIyYjY1NjViNjEwNDdiNTY1YjYwNDA1MTYxMDE0MjkxOTA2MTJiZjQ1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMTY1NjAwNDgwMzYwMzgxMDE5MDYxMDE2MDkxOTA2MTIyYjY1NjViNjEwNTk3NTY1YjYwNDA1MTYxMDE3MjkxOTA2MTJiZjQ1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMTk1NjAwNDgwMzYwMzgxMDE5MDYxMDE5MDkxOTA2MTIyNGY1NjViNjEwNmI1NTY1YjYwNDA1MTYxMDFhMjkxOTA2MTJiYmU1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMWM1NjAwNDgwMzYwMzgxMDE5MDYxMDFjMDkxOTA2MTI0N2U1NjViNjEwNzE0NTY1YjYwNDA1MTYxMDFkMjkxOTA2MTJiYmU1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMWY1NjAwNDgwMzYwMzgxMDE5MDYxMDFmMDkxOTA2MTIyYjY1NjViNjEwNzcxNTY1YjYwNDA1MTYxMDIwMjkxOTA2MTJiZjQ1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMjI1NjAwNDgwMzYwMzgxMDE5MDYxMDIyMDkxOTA2MTIyNGY1NjViNjEwODU4NTY1YjYwNDA1MTYxMDIzMjkxOTA2MTJiYmU1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMjU1NjAwNDgwMzYwMzgxMDE5MDYxMDI1MDkxOTA2MTIyYjY1NjViNjEwOGI3NTY1YjYwNDA1MTYxMDI2MjkxOTA2MTJiZjQ1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMjg1NjAwNDgwMzYwMzgxMDE5MDYxMDI4MDkxOTA2MTIzNzA1NjViNjEwOTllNTY1YjYwNDA1MTYxMDI5MjkxOTA2MTJiYmU1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMmI1NjAwNDgwMzYwMzgxMDE5MDYxMDJiMDkxOTA2MTI1NjM1NjViNjEwOWZiNTY1YjYwNDA1MTYxMDJjMjkxOTA2MTJiYmU1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMmU1NjAwNDgwMzYwMzgxMDE5MDYxMDJlMDkxOTA2MTIyYjY1NjViNjEwYTZjNTY1YjYwNDA1MTYxMDJmMjkxOTA2MTJiZjQ1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMzE1NjAwNDgwMzYwMzgxMDE5MDYxMDMxMDkxOTA2MTI1NjM1NjViNjEwYjhhNTY1YjYwNDA1MTYxMDMyMjkxOTA2MTJiYmU1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMzQ1NjAwNDgwMzYwMzgxMDE5MDYxMDM0MDkxOTA2MTIzMWQ1NjViNjEwYmZiNTY1YjYwNDA1MTYxMDM1MjkxOTA2MTJiYmU1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMzc1NjAwNDgwMzYwMzgxMDE5MDYxMDM3MDkxOTA2MTIzYzM1NjViNjEwYzU4NTY1YjYwNDA1MTYxMDM4MjkxOTA2MTJiYmU1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwM2E1NjAwNDgwMzYwMzgxMDE5MDYxMDNhMDkxOTA2MTIzNzA1NjViNjEwY2I3NTY1YjYwNDA1MTYxMDNiMjkxOTA2MTJiYmU1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwM2Q1NjAwNDgwMzYwMzgxMDE5MDYxMDNkMDkxOTA2MTIyYjY1NjViNjEwZDE0NTY1YjYwNDA1MTYxMDNlMjkxOTA2MTJiZjQ1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwNDA1NjAwNDgwMzYwMzgxMDE5MDYxMDQwMDkxOTA2MTIzNzA1NjViNjEwZTMwNTY1YjYwNDA1MTYxMDQxMjkxOTA2MTJiYmU1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwNDM1NjAwNDgwMzYwMzgxMDE5MDYxMDQzMDkxOTA2MTIzMWQ1NjViNjEwZThkNTY1YjYwNDA1MTYxMDQ0MjkxOTA2MTJiYmU1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwNDY1NjAwNDgwMzYwMzgxMDE5MDYxMDQ2MDkxOTA2MTIzNzA1NjViNjEwZWVhNTY1YjYwNDA1MTYxMDQ3MjkxOTA2MTJiYmU1NjViNjA0MDUxODA5MTAzOTBmMzViNjAwMDgwNjAwMDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjM5YjIzZDNkOTYwZTAxYjg4ODg4ODg4NjA0MDUxNjAyNDAxNjEwNGI4OTQ5MzkyOTE5MDYxMmE2YzU2NWI2MDQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI5MDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTA1MjI5MTkwNjEyYTEwNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTg1NWFmNDkxNTA1MDNkODA2MDAwODExNDYxMDU1ZDU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMDU2MjU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEwNTczNTc2MDE1NjEwNTg4NTY1YjgwODA2MDIwMDE5MDUxODEwMTkwNjEwNTg3OTE5MDYxMjUwOTU2NWI1YjYwMDMwYjkyNTA1MDUwOTQ5MzUwNTA1MDUwNTY1YjYwMDA4MDYwMDA2MTAxNjc3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzMTVkYWNiZWE2MGUwMWI4ODg4ODg4ODYwNDA1MTYwMjQwMTYxMDVkNDk0OTM5MjkxOTA=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwC+/AO0Q4jQtiEPdVaW2qVvWpsJ3h8lFz6nvMWoxZ8/iyyfKTijMN5v9ESCf5fb4gGgwInbbkrQYQ44jvkwMiDwoJCOG15K0GEI4cEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjiteStBhCUHBICGAISAhgDGPjR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxiCDSKAIDYxMmE2YzU2NWI2MDQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI5MDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTA2M2U5MTkwNjEyYTEwNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NjVhZjE5MTUwNTAzZDgwNjAwMDgxMTQ2MTA2N2I1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTA2ODA1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA4MTYxMDY5MTU3NjAxNTYxMDZhNjU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMDZhNTkxOTA2MTI1MDk1NjViNWI2MDAzMGI5MjUwNTA1MDk0OTM1MDUwNTA1MDU2NWI2MDAwNjEwNmMzODU4NTg1ODU2MTBmNDc1NjViOTA1MDdmOTBhNWNmNGNmZmU4OGI0ZWRiYjA0MWNmYzdhOGE4MTJjNDhhNWVjMzBiODQ2NDBmYjM3NjkwODc1MTY4ZTNhYTgxNjA0MDUxNjEwNmY0OTE5MDYxMmJiZTU2NWI2MDQwNTE4MDkxMDM5MGExNjAxNjYwMDMwYjgxMTQ2MTA3MGM1NzYwMDA4MGZkNWI5NDkzNTA1MDUwNTA1NjViNjAwMDYxMDcyMTg0ODQ4NDYxMTA2NTU2NWI5MDUwN2Y5MGE1Y2Y0Y2ZmZTg4YjRlZGJiMDQxY2ZjN2E4YTgxMmM0OGE1ZWMzMGI4NDY0MGZiMzc2OTA4NzUxNjhlM2FhODE2MDQwNTE2MTA3NTI5MTkwNjEyYmJlNTY1YjYwNDA1MTgwOTEwMzkwYTE2MDE2NjAwMzBiODExNDYxMDc2YTU3NjAwMDgwZmQ1YjkzOTI1MDUwNTA1NjViNjAwMDMwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MzliMjNkM2Q5ODY4Njg2ODY2MDQwNTE4NTYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MTA3YjI5NDkzOTI5MTkwNjEyYTZjNTY1YjYwMjA2MDQwNTE4MDgzMDM4MTYwMDA4NzgwM2IxNTgwMTU2MTA3Y2M1NzYwMDA4MGZkNWI1MDVhZjExNTgwMTU2MTA3ZTA1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA2MDQwNTEzZDYwMWYxOTYwMWY4MjAxMTY4MjAxODA2MDQwNTI1MDgxMDE5MDYxMDgwNDkxOTA2MTI1MzY1NjViOTA1MDdmOTBhNWNmNGNmZmU4OGI0ZWRiYjA0MWNmYzdhOGE4MTJjNDhhNWVjMzBiODQ2NDBmYjM3NjkwODc1MTY4ZTNhYTgxNjA0MDUxNjEwODM1OTE5MDYxMmJkOTU2NWI2MDQwNTE4MDkxMDM5MGExNjAxNjYwMDMwYjgxNjAwNzBiMTQ2MTA4NTA1NzYwMDA4MGZkNWI5NDkzNTA1MDUwNTA1NjViNjAwMDYxMDg2Njg1ODU4NTg1NjExMTgwNTY1YjkwNTA3ZjkwYTVjZjRjZmZlODhiNGVkYmIwNDFjZmM3YThhODEyYzQ4YTVlYzMwYjg0NjQwZmIzNzY5MDg3NTE2OGUzYWE4MTYwNDA1MTYxMDg5NzkxOTA2MTJiYmU1NjViNjA0MDUxODA5MTAzOTBhMTYwMTY2MDAzMGI4MTE0NjEwOGFmNTc2MDAwODBmZDViOTQ5MzUwNTA1MDUwNTY1YjYwMDAzMDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjMxNWRhY2JlYTg2ODY4Njg2NjA0MDUxODU2M2ZmZmZmZmZmMTY2MGUwMWI4MTUyNjAwNDAxNjEwOGY4OTQ5MzkyOTE5MDYxMmE2YzU2NWI2MDIwNjA0MDUxODA4MzAzODE2MDAwODc4MDNiMTU4MDE1NjEwOTEyNTc2MDAwODBmZDViNTA1YWYxMTU4MDE1NjEwOTI2NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTA5NGE5MTkwNjEyNTM2NTY1YjkwNTA3ZjkwYTVjZjRjZmZlODhiNGVkYmIwNDFjZmM3YThhODEyYzQ4YTVlYzMwYjg0NjQwZmIzNzY5MDg3NTE2OGUzYWE4MTYwNDA1MTYxMDk3YjkxOTA2MTJiZDk1NjViNjA0MDUxODA5MTAzOTBhMTYwMTY2MDAzMGI4MTYwMDcwYjE0NjEwOTk2NTc2MDAwODBmZDViOTQ5MzUwNTA1MDUwNTY1YjYwMDA2MTA5YWI4NDg0ODQ2MTEyOWU1NjViOTA1MDdmOTBhNWNmNGNmZmU4OGI0ZWRiYjA0MWNmYzdhOGE4MTJjNDhhNWVjMzBiODQ2NDBmYjM3NjkwODc1MTY4ZTNhYTgxNjA0MDUxNjEwOWRjOTE5MDYxMmJiZTU2NWI2MDQwNTE4MDkxMDM5MGExNjAxNjYwMDMwYjgxMTQ2MTA5ZjQ1NzYwMDA4MGZkNWI5MzkyNTA1MDUwNTY1YjYwMDA2MTBhMWM4NDYxMGEwYTkwNjEyZjBkNTY1Yjg0ODQ5MDYxMGExNzkxOTA2MTJlZTY1NjViNjExM2I3NTY1YjkwNTA3ZjkwYTVjZjRjZmZlODhiNGVkYmIwNDFjZmM3YThhODEyYzQ4YTVlYzMwYjg0NjQwZmIzNzY5MDg3NTE2OGUzYWE4MTYwNDA1MTYxMGE0ZDkxOTA2MTJiYmU1NjViNjA0MDUxODA5MTAzOTBhMTYwMTY2MDAzMGI4MTE0NjEwYTY1NTc2MDAwODBmZDViOTM5MjUwNTA1MDU2NWI2MDAwODA2MDAwNjEwMTY3NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MzliMjNkM2Q5NjBlMDFiODg4ODg4ODg2MDQwNTE2MDI0MDE2MTBhYTk5NDkzOTI5MTkwNjEyYTZjNTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMGIxMzkxOTA2MTJhMTA1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMGI1MDU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMGI1NTU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEwYjY2NTc2MDE1NjEwYjdiNTY1YjgwODA2MDIwMDE5MDUxODEwMTkwNjEwYjdhOTE5MDYxMjUwOTU2NWI1YjYwMDMwYjkyNTA1MDUwOTQ5MzUwNTA1MDUwNTY1YjYwMDA2MTBiYWI4NDYxMGI5OTkwNjEyZjBkNTY1Yjg0ODQ5MDYxMGJhNjkxOTA2MTJlZTY1NjViNjExNGNmNTY1YjkwNTA3ZjkwYTVjZjRjZmZlODhiNGVkYmIwNDFjZmM3YThhODEyYzQ4YTVlYzMwYjg0NjQwZmIzNzY5MDg3NTE2OGUzYWE4MTYwNDA1MTYxMGJkYzkxOTA2MTJiYmU1NjViNjA0MDUxODA5MTAzOTBhMTYwMTY2MDAzMGI4MTE0NjEwYmY0NTc2MDAwODBmZDViOTM5MjUwNTA1MDU2NWI2MDAwNjEwYzA4ODQ4NDg0NjExNWU1NTY1YjkwNTA3ZjkwYTVjZjRjZmZlODhiNGVkYmIwNDFjZmM3YThhODEyYzQ4YTVlYzMwYjg0NjQwZmIzNzY5MDg3NTE2OGUzYWE4MTYwNDA1MTYxMGMzOTkxOTA2MTJiYmU1NjViNjA0MDUxODA5MTAzOTBhMTYwMTY2MDAzMGI4MTE0NjEwYzUxNTc2MDAwODBmZDViOTM5MjUwNTA1MDU2NWI2MDAwNjEwYzY2ODU4NTg1ODU2MTE2ZmU1NjViOTA1MDdmOTBhNWNmNGNmZmU4OGI0ZWRiYjA0MWNmYzdhOGE4MTJjNDhhNWVjMzBiODQ2NDBmYjM3NjkwODc1MTY4ZTNhYTgxNjA0MDUxNjEwYzk3OTE5MDYxMmJiZTU2NWI2MDQwNTE4MDkxMDM5MGExNjAxNjYwMDMwYjgxMTQ2MTBjYWY1NzYwMDA4MGZkNWI5NDkzNTA1MDUwNTA1NjViNjAwMDYxMGNjNDg0ODQ4NDYxMTgxYzU2NWI5MDUwN2Y5MGE1Y2Y0Y2ZmZTg4YjRlZGJiMDQxY2ZjN2E4YTgxMmM0OGE1ZWMzMGI4NDY0MGZiMzc2OTA4NzUxNjhlM2FhODE2MDQwNTE2MTBjZjU5MTkwNjEyYmJlNTY1YjYwNDA1MTgwOTEwMzkwYTE2MDE2NjAwMzBiODExNDYxMGQwZDU3NjAwMDgwZmQ1YjkzOTI1MDUwNTA1NjViNjAwMDgwNjAwMDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjMxNWRhY2JlYTYwZTAxYjg4ODg4ODg4NjA0MDUxNjAyNDAxNjEwZDUxOTQ5MzkyOTE5MDYxMmE2YzU2NWI2MDQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI5MDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTBkYmI5MTkwNjEyYTEwNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTg1NWFmNDkxNTA1MDNkODA2MDAwODE=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwvFI6cRK6ifCNn/VXZAC2eVfJrxTHJP7QVVVBqUFHGH3jV0j8GUeX90Lz25iSMxnYGgwInrbkrQYQg8rauAEiDwoJCOK15K0GEJQcEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjiteStBhCaHBICGAISAhgDGPjR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxiCDSKAIDE0NjEwZGY2NTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjEwZGZiNTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTBlMGM1NzYwMTU2MTBlMjE1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTBlMjA5MTkwNjEyNTA5NTY1YjViNjAwMzBiOTI1MDUwNTA5NDkzNTA1MDUwNTA1NjViNjAwMDYxMGUzZDg0ODQ4NDYxMTkzNzU2NWI5MDUwN2Y5MGE1Y2Y0Y2ZmZTg4YjRlZGJiMDQxY2ZjN2E4YTgxMmM0OGE1ZWMzMGI4NDY0MGZiMzc2OTA4NzUxNjhlM2FhODE2MDQwNTE2MTBlNmU5MTkwNjEyYmJlNTY1YjYwNDA1MTgwOTEwMzkwYTE2MDE2NjAwMzBiODExNDYxMGU4NjU3NjAwMDgwZmQ1YjkzOTI1MDUwNTA1NjViNjAwMDYxMGU5YTg0ODQ4NDYxMWE1MDU2NWI5MDUwN2Y5MGE1Y2Y0Y2ZmZTg4YjRlZGJiMDQxY2ZjN2E4YTgxMmM0OGE1ZWMzMGI4NDY0MGZiMzc2OTA4NzUxNjhlM2FhODE2MDQwNTE2MTBlY2I5MTkwNjEyYmJlNTY1YjYwNDA1MTgwOTEwMzkwYTE2MDE2NjAwMzBiODExNDYxMGVlMzU3NjAwMDgwZmQ1YjkzOTI1MDUwNTA1NjViNjAwMDYxMGVmNzg0ODQ4NDYxMWI2YjU2NWI5MDUwN2Y5MGE1Y2Y0Y2ZmZTg4YjRlZGJiMDQxY2ZjN2E4YTgxMmM0OGE1ZWMzMGI4NDY0MGZiMzc2OTA4NzUxNjhlM2FhODE2MDQwNTE2MTBmMjg5MTkwNjEyYmJlNTY1YjYwNDA1MTgwOTEwMzkwYTE2MDE2NjAwMzBiODExNDYxMGY0MDU3NjAwMDgwZmQ1YjkzOTI1MDUwNTA1NjViNjAwMDgwNjAwMDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjNlY2EzNjkxNzYwZTAxYjg4ODg4ODg4NjA0MDUxNjAyNDAxNjEwZjg0OTQ5MzkyOTE5MDYxMmEyNzU2NWI2MDQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI5MDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTBmZWU5MTkwNjEyYTEwNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NjVhZjE5MTUwNTAzZDgwNjAwMDgxMTQ2MTEwMmI1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTEwMzA1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA4MTYxMTA0MTU3NjAxNTYxMTA1NjU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMTA1NTkxOTA2MTI1MDk1NjViNWI2MDAzMGI5MjUwNTA1MDk0OTM1MDUwNTA1MDU2NWI2MDAwODA2MDAwNjEwMTY3NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MzgyYmJhNDkzNjBlMDFiODc4Nzg3NjA0MDUxNjAyNDAxNjExMGEwOTM5MjkxOTA2MTJiNzk1NjViNjA0MDUxNjAyMDgxODMwMzAzODE1MjkwNjA0MDUyOTA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjExMTBhOTE5MDYxMmExMDU2NWI2MDAwNjA0MDUxODA4MzAzODE2MDAwODY1YWYxOTE1MDUwM2Q4MDYwMDA4MTE0NjExMTQ3NTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjExMTRjNTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTExNWQ1NzYwMTU2MTExNzI1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTExNzE5MTkwNjEyNTA5NTY1YjViNjAwMzBiOTI1MDUwNTA5MzkyNTA1MDUwNTY1YjYwMDA4MDYwMDA2MTAxNjc3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzNWNmYzkwMTE2MGUwMWI4ODg4ODg4ODYwNDA1MTYwMjQwMTYxMTFiZDk0OTM5MjkxOTA2MTJhMjc1NjViNjA0MDUxNjAyMDgxODMwMzAzODE1MjkwNjA0MDUyOTA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjExMjI3OTE5MDYxMmExMDU2NWI2MDAwNjA0MDUxODA4MzAzODE2MDAwODY1YWYxOTE1MDUwM2Q4MDYwMDA4MTE0NjExMjY0NTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjExMjY5NTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTEyN2E1NzYwMTU2MTEyOGY1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTEyOGU5MTkwNjEyNTA5NTY1YjViNjAwMzBiOTI1MDUwNTA5NDkzNTA1MDUwNTA1NjViNjAwMDgwNjAwMDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjM3MzM2YWFmMDYwZTAxYjg3ODc4NzYwNDA1MTYwMjQwMTYxMTJkOTkzOTI5MTkwNjEyYWU4NTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMTM0MzkxOTA2MTJhMTA1NjViNjAwMDYwNDA1MTgwODMwMzgxODU1YWY0OTE1MDUwM2Q4MDYwMDA4MTE0NjExMzdlNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjExMzgzNTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTEzOTQ1NzYwMTU2MTEzYTk1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTEzYTg5MTkwNjEyNTA5NTY1YjViNjAwMzBiOTI1MDUwNTA5MzkyNTA1MDUwNTY1YjYwMDA4MDYwMDA2MTAxNjc3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzMGU3MTgwNGY2MGUwMWI4Njg2NjA0MDUxNjAyNDAxNjExM2YwOTI5MTkwNjEyYzBmNTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMTQ1YTkxOTA2MTJhMTA1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMTQ5NzU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMTQ5YzU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjExNGFkNTc2MDE1NjExNGMyNTY1YjgwODA2MDIwMDE5MDUxODEwMTkwNjExNGMxOTE5MDYxMjUwOTU2NWI1YjYwMDMwYjkyNTA1MDUwOTI5MTUwNTA1NjViNjAwMDgwNjAwMDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjMwZTcxODA0ZjYwZTAxYjg2ODY2MDQwNTE2MDI0MDE2MTE1MDg5MjkxOTA2MTJjMGY1NjViNjA0MDUxNjAyMDgxODMwMzAzODE1MjkwNjA0MDUyOTA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjExNTcyOTE5MDYxMmExMDU2NWI2MDAwNjA0MDUxODA4MzAzODE4NTVhZjQ5MTUwNTAzZDgwNjAwMDgxMTQ2MTE1YWQ1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTE1YjI1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA4MTYxMTVjMzU3NjAxNTYxMTVkODU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMTU=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwEZNQtm4NmSyda8l+DeWalAdQXFVqopPTKwzeerGqXJ4IBgRwjAJ4X0TzUGp0yrf3GgwInrbkrQYQu46OnQMiDwoJCOK15K0GEJocEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjjteStBhCgHBICGAISAhgDGPfR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxiCDSKAIGQ3OTE5MDYxMjUwOTU2NWI1YjYwMDMwYjkyNTA1MDUwOTI5MTUwNTA1NjViNjAwMDgwNjAwMDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjMzNjc2MDVjYTYwZTAxYjg3ODc4NzYwNDA1MTYwMjQwMTYxMTYyMDkzOTI5MTkwNjEyYWIxNTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMTY4YTkxOTA2MTJhMTA1NjViNjAwMDYwNDA1MTgwODMwMzgxODU1YWY0OTE1MDUwM2Q4MDYwMDA4MTE0NjExNmM1NTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjExNmNhNTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTE2ZGI1NzYwMTU2MTE2ZjA1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTE2ZWY5MTkwNjEyNTA5NTY1YjViNjAwMzBiOTI1MDUwNTA5MzkyNTA1MDUwNTY1YjYwMDA4MDYwMDA2MTAxNjc3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzMmM0YmExOTE2MGUwMWI4ODg4ODg4ODYwNDA1MTYwMjQwMTYxMTczYjk0OTM5MjkxOTA2MTJiMWY1NjViNjA0MDUxNjAyMDgxODMwMzAzODE1MjkwNjA0MDUyOTA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjExN2E1OTE5MDYxMmExMDU2NWI2MDAwNjA0MDUxODA4MzAzODE2MDAwODY1YWYxOTE1MDUwM2Q4MDYwMDA4MTE0NjExN2UyNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjExN2U3NTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTE3Zjg1NzYwMTU2MTE4MGQ1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTE4MGM5MTkwNjEyNTA5NTY1YjViNjAwMzBiOTI1MDUwNTA5NDkzNTA1MDUwNTA1NjViNjAwMDgwNjAwMDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjM3MzM2YWFmMDYwZTAxYjg3ODc4NzYwNDA1MTYwMjQwMTYxMTg1NzkzOTI5MTkwNjEyYWU4NTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMThjMTkxOTA2MTJhMTA1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMThmZTU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMTkwMzU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjExOTE0NTc2MDE1NjExOTI5NTY1YjgwODA2MDIwMDE5MDUxODEwMTkwNjExOTI4OTE5MDYxMjUwOTU2NWI1YjYwMDMwYjkyNTA1MDUwOTM5MjUwNTA1MDU2NWI2MDAwODA2MDAwNjEwMTY3NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2M2UxZjIxYzY3NjBlMDFiODc4Nzg3NjA0MDUxNjAyNDAxNjExOTcyOTM5MjkxOTA2MTJhZTg1NjViNjA0MDUxNjAyMDgxODMwMzAzODE1MjkwNjA0MDUyOTA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjExOWRjOTE5MDYxMmExMDU2NWI2MDAwNjA0MDUxODA4MzAzODE4NTVhZjQ5MTUwNTAzZDgwNjAwMDgxMTQ2MTFhMTc1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTFhMWM1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA4MTYxMWEyZDU3NjAxNTYxMWE0MjU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMWE0MTkxOTA2MTI1MDk1NjViNWI2MDAzMGI5MjUwNTA1MDkzOTI1MDUwNTA1NjViNjAwMDgwNjAwMDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjMzNjc2MDVjYTYwZTAxYjg3ODc4NzYwNDA1MTYwMjQwMTYxMWE4YjkzOTI5MTkwNjEyYWIxNTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMWFmNTkxOTA2MTJhMTA1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMWIzMjU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMWIzNzU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjExYjQ4NTc2MDE1NjExYjVkNTY1YjgwODA2MDIwMDE5MDUxODEwMTkwNjExYjVjOTE5MDYxMjUwOTU2NWI1YjYwMDMwYjkyNTA1MDUwOTM5MjUwNTA1MDU2NWI2MDAwODA2MDAwNjEwMTY3NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2M2UxZjIxYzY3NjBlMDFiODc4Nzg3NjA0MDUxNjAyNDAxNjExYmE2OTM5MjkxOTA2MTJhZTg1NjViNjA0MDUxNjAyMDgxODMwMzAzODE1MjkwNjA0MDUyOTA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjExYzEwOTE5MDYxMmExMDU2NWI2MDAwNjA0MDUxODA4MzAzODE2MDAwODY1YWYxOTE1MDUwM2Q4MDYwMDA4MTE0NjExYzRkNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDYwMDA2MDIwODQwMTNlNjExYzUyNTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE2MTFjNjM1NzYwMTU2MTFjNzg1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTFjNzc5MTkwNjEyNTA5NTY1YjViNjAwMzBiOTI1MDUwNTA5MzkyNTA1MDUwNTY1YjYwMDA2MTFjOTk2MTFjOTQ4NDYxMmM2YjU2NWI2MTJjNDY1NjViOTA1MDgwODM4MjUyNjAyMDgyMDE5MDUwODI4NTYwMjA4NjAyODIwMTExMTU2MTFjYmM1NzYxMWNiYjYxMmZjYzU2NWI1YjYwMDA1Yjg1ODExMDE1NjExY2VjNTc4MTYxMWNkMjg4ODI2MTFlZDQ1NjViODQ1MjYwMjA4NDAxOTM1MDYwMjA4MzAxOTI1MDUwNjAwMTgxMDE5MDUwNjExY2JmNTY1YjUwNTA1MDkzOTI1MDUwNTA1NjViNjAwMDYxMWQwOTYxMWQwNDg0NjEyYzk3NTY1YjYxMmM0NjU2NWI5MDUwODA4MzgyNTI2MDIwODIwMTkwNTA4Mjg1NjAyMDg2MDI4MjAxMTExNTYxMWQyYzU3NjExZDJiNjEyZmNjNTY1YjViNjAwMDViODU4MTEwMTU2MTFkNWM1NzgxNjExZDQyODg4MjYxMjAyMTU2NWI4NDUyNjAyMDg0MDE5MzUwNjAyMDgzMDE5MjUwNTA2MDAxODEwMTkwNTA2MTFkMmY1NjViNTA1MDUwOTM5MjUwNTA1MDU2NWI2MDAwNjExZDc5NjExZDc0ODQ2MTJjYzM1NjViNjEyYzQ2NTY1YjkwNTA4MDgzODI1MjYwMjA4MjAxOTA1MDgyODU2MDYwODYwMjgyMDExMTE1NjExZDljNTc2MTFkOWI2MTJmY2M1NjViNWI2MDAwNWI4NTgxMTAxNTYxMWRjYzU3ODE2MTFkYjI4ODgyNjEyMDRiNTY1Yjg0NTI2MDIwODQwMTkzNTA2MDYwODMwMTkyNTA1MDYwMDE4MTAxOTA1MDYxMWQ5ZjU2NWI1MDUwNTA=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwLIL5N3uAuDSK9RxHx0eCPNiv9IMQvj9PwYg8MaeOMR7aKNgoIXdZGxigsqHAHnhAGgwIn7bkrQYQm/z/wQEiDwoJCOO15K0GEKAcEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjjteStBhCmHBICGAISAhgDGPfR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxiCDSKAIDkzOTI1MDUwNTA1NjViNjAwMDYxMWRlOTYxMWRlNDg0NjEyY2VmNTY1YjYxMmM0NjU2NWI5MDUwODA4MzgyNTI2MDIwODIwMTkwNTA4Mjg1NjA4MDg2MDI4MjAxMTExNTYxMWUwYzU3NjExZTBiNjEyZmNjNTY1YjViNjAwMDViODU4MTEwMTU2MTFlM2M1NzgxNjExZTIyODg4MjYxMjBhZjU2NWI4NDUyNjAyMDg0MDE5MzUwNjA4MDgzMDE5MjUwNTA2MDAxODEwMTkwNTA2MTFlMGY1NjViNTA1MDUwOTM5MjUwNTA1MDU2NWI2MDAwNjExZTU5NjExZTU0ODQ2MTJkMWI1NjViNjEyYzQ2NTY1YjkwNTA4MDgzODI1MjYwMjA4MjAxOTA1MDgyODU2MDIwODYwMjgyMDExMTE1NjExZTdjNTc2MTFlN2I2MTJmY2M1NjViNWI2MDAwNWI4NTgxMTAxNTYxMWVjYTU3ODEzNTY3ZmZmZmZmZmZmZmZmZmZmZjgxMTExNTYxMWVhMjU3NjExZWExNjEyZmI4NTY1YjViODA4NjAxNjExZWFmODk4MjYxMjEyNzU2NWI4NTUyNjAyMDg1MDE5NDUwNjAyMDg0MDE5MzUwNTA1MDYwMDE4MTAxOTA1MDYxMWU3ZjU2NWI1MDUwNTA5MzkyNTA1MDUwNTY1YjYwMDA4MTM1OTA1MDYxMWVlMzgxNjEyZmVjNTY1YjkyOTE1MDUwNTY1YjYwMDA4MjYwMWY4MzAxMTI2MTFlZmU1NzYxMWVmZDYxMmZiODU2NWI1YjgxMzU2MTFmMGU4NDgyNjAyMDg2MDE2MTFjODY1NjViOTE1MDUwOTI5MTUwNTA1NjViNjAwMDgyNjAxZjgzMDExMjYxMWYyYzU3NjExZjJiNjEyZmI4NTY1YjViODEzNTYxMWYzYzg0ODI2MDIwODYwMTYxMWNmNjU2NWI5MTUwNTA5MjkxNTA1MDU2NWI2MDAwODI2MDFmODMwMTEyNjExZjVhNTc2MTFmNTk2MTJmYjg1NjViNWI4MTM1NjExZjZhODQ4MjYwMjA4NjAxNjExZDY2NTY1YjkxNTA1MDkyOTE1MDUwNTY1YjYwMDA4MjYwMWY4MzAxMTI2MTFmODg1NzYxMWY4NzYxMmZiODU2NWI1YjgxMzU2MTFmOTg4NDgyNjAyMDg2MDE2MTFkZDY1NjViOTE1MDUwOTI5MTUwNTA1NjViNjAwMDgwODM2MDFmODQwMTEyNjExZmI3NTc2MTFmYjY2MTJmYjg1NjViNWI4MjM1OTA1MDY3ZmZmZmZmZmZmZmZmZmZmZjgxMTExNTYxMWZkNDU3NjExZmQzNjEyZmIzNTY1YjViNjAyMDgzMDE5MTUwODM2MDIwODIwMjgzMDExMTE1NjExZmYwNTc2MTFmZWY2MTJmY2M1NjViNWI5MjUwOTI5MDUwNTY1YjYwMDA4MTM1OTA1MDYxMjAwNjgxNjEzMDAzNTY1YjkyOTE1MDUwNTY1YjYwMDA4MTUxOTA1MDYxMjAxYjgxNjEzMDFhNTY1YjkyOTE1MDUwNTY1YjYwMDA4MTM1OTA1MDYxMjAzMDgxNjEzMDMxNTY1YjkyOTE1MDUwNTY1YjYwMDA4MTUxOTA1MDYxMjA0NTgxNjEzMDMxNTY1YjkyOTE1MDUwNTY1YjYwMDA2MDYwODI4NDAzMTIxNTYxMjA2MTU3NjEyMDYwNjEyZmMyNTY1YjViNjEyMDZiNjA2MDYxMmM0NjU2NWI5MDUwNjAwMDYxMjA3Yjg0ODI4NTAxNjExZWQ0NTY1YjYwMDA4MzAxNTI1MDYwMjA2MTIwOGY4NDgyODUwMTYxMjAyMTU2NWI2MDIwODMwMTUyNTA2MDQwNjEyMGEzODQ4Mjg1MDE2MTFmZjc1NjViNjA0MDgzMDE1MjUwOTI5MTUwNTA1NjViNjAwMDYwODA4Mjg0MDMxMjE1NjEyMGM1NTc2MTIwYzQ2MTJmYzI1NjViNWI2MTIwY2Y2MDgwNjEyYzQ2NTY1YjkwNTA2MDAwNjEyMGRmODQ4Mjg1MDE2MTFlZDQ1NjViNjAwMDgzMDE1MjUwNjAyMDYxMjBmMzg0ODI4NTAxNjExZWQ0NTY1YjYwMjA4MzAxNTI1MDYwNDA2MTIxMDc4NDgyODUwMTYxMjAyMTU2NWI2MDQwODMwMTUyNTA2MDYwNjEyMTFiODQ4Mjg1MDE2MTFmZjc1NjViNjA2MDgzMDE1MjUwOTI5MTUwNTA1NjViNjAwMDYwNjA4Mjg0MDMxMjE1NjEyMTNkNTc2MTIxM2M2MTJmYzI1NjViNWI2MTIxNDc2MDYwNjEyYzQ2NTY1YjkwNTA2MDAwNjEyMTU3ODQ4Mjg1MDE2MTFlZDQ1NjViNjAwMDgzMDE1MjUwNjAyMDgyMDEzNTY3ZmZmZmZmZmZmZmZmZmZmZjgxMTExNTYxMjE3YjU3NjEyMTdhNjEyZmM3NTY1YjViNjEyMTg3ODQ4Mjg1MDE2MTFmNDU1NjViNjAyMDgzMDE1MjUwNjA0MDgyMDEzNTY3ZmZmZmZmZmZmZmZmZmZmZjgxMTExNTYxMjFhYjU3NjEyMWFhNjEyZmM3NTY1YjViNjEyMWI3ODQ4Mjg1MDE2MTFmNzM1NjViNjA0MDgzMDE1MjUwOTI5MTUwNTA1NjViNjAwMDYwMjA4Mjg0MDMxMjE1NjEyMWQ5NTc2MTIxZDg2MTJmYmQ1NjViNWI4MTkwNTA5MjkxNTA1MDU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTIxZjg1NzYxMjFmNzYxMmZjMjU2NWI1YjYxMjIwMjYwMjA2MTJjNDY1NjViOTA1MDYwMDA4MjAxMzU2N2ZmZmZmZmZmZmZmZmZmZmY4MTExMTU2MTIyMjI1NzYxMjIyMTYxMmZjNzU2NWI1YjYxMjIyZTg0ODI4NTAxNjExZjQ1NTY1YjYwMDA4MzAxNTI1MDkyOTE1MDUwNTY1YjYwMDA4MTM1OTA1MDYxMjI0OTgxNjEzMDQ4NTY1YjkyOTE1MDUwNTY1YjYwMDA4MDYwMDA4MDYwODA4NTg3MDMxMjE1NjEyMjY5NTc2MTIyNjg2MTJmZDY1NjViNWI2MDAwNjEyMjc3ODc4Mjg4MDE2MTFlZDQ1NjViOTQ1MDUwNjAyMDYxMjI4ODg3ODI4ODAxNjExZWQ0NTY1YjkzNTA1MDYwNDA2MTIyOTk4NzgyODgwMTYxMWVkNDU2NWI5MjUwNTA2MDYwNjEyMmFhODc4Mjg4MDE2MTIwMjE1NjViOTE1MDUwOTI5NTkxOTQ1MDkyNTA1NjViNjAwMDgwNjAwMDgwNjA4MDg1ODcwMzEyMTU2MTIyZDA1NzYxMjJjZjYxMmZkNjU2NWI1YjYwMDA2MTIyZGU4NzgyODgwMTYxMWVkNDU2NWI5NDUwNTA2MDIwNjEyMmVmODc4Mjg4MDE2MTFlZDQ1NjViOTM1MDUwNjA0MDYxMjMwMDg3ODI4ODAxNjExZWQ0NTY1YjkyNTA1MDYwNjA2MTIzMTE4NzgyODgwMTYxMjIzYTU2NWI5MTUwNTA5Mjk1OTE5NDUwOTI1MDU2NWI2MDAwODA2MDAwNjA2MDg0ODYwMzEyMTU2MTIzMzY1NzYxMjMzNTYxMmZkNjU2NWI1YjYwMDA2MTIzNDQ4NjgyODcwMTYxMWVkNDU2NWI5MzUwNTA2MDIwNjEyMzU1ODY4Mjg3MDE2MTFlZDQ1NjViOTI1MDUwNjA0MDYxMjM2Njg2ODI4NzAxNjExZmY3NTY1YjkxNTA1MDkyNTA5MjUwOTI1NjViNjAwMDgwNjAwMDYwNjA4NDg2MDMxMjE1NjEyMzg5NTc2MTIzODg2MTJmZDY1NjViNWI2MDAwNjEyMzk3ODY4Mjg3MDE2MTFlZDQ1NjViOTM1MDUwNjAyMDYxMjNhODg2ODI4NzAxNjExZWQ0NTY1YjkyNTA1MDYwNDA2MTIzYjk4NjgyODcwMTYxMjIzYTU2NWI5MTUwNTA5MjUwOTI1MDkyNTY1YjYwMDA4MDYwMDA4MDYwODA4NTg3MDMxMjE1NjEyM2RkNTc2MTIzZGM2MTJmZDY1NjViNWI2MDAwNjEyM2ViODc4Mjg4MDE2MTFlZDQ1NjViOTQ1MDUwNjAyMDg1MDEzNTY3ZmZmZmZmZmZmZmZmZmZmZjgxMTExNTYxMjQwYzU3NjEyNDBiNjEyZmQxNTY1YjViNjEyNDE4ODc4Mjg4MDE2MTFlZTk1NjViOTM1MDUwNjA0MDg1MDEzNTY3ZmZmZmZmZmZmZmZmZmZmZjgxMTExNTYxMjQzOTU3NjEyNDM4NjEyZmQxNTY1YjViNjEyNDQ1ODc4Mjg4MDE2MTFlZTk1NjViOTI1MDUwNjA2MDg1MDEzNTY3ZmZmZmZmZmZmZmZmZmZmZjgxMTExNTYxMjQ2NjU3NjEyNDY1NjEyZmQxNTY1YjViNjEyNDcyODc4Mjg4MDE2MTFmMTc1NjViOTE1MDUwOTI5NTkxOTQ1MDkyNTA1NjViNjAwMDgwNjAwMDYwNjA4NDg2MDMxMjE1NjEyNDk3NTc2MTI0OTY2MTJmZDY1NjViNWI2MDAwNjEyNGE1ODY4Mjg3MDE2MTFlZDQ1NjViOTM1MDUwNjAyMDg0MDEzNTY3ZmZmZmZmZmZmZmZmZmZmZjgxMTExNTYxMjRjNjU3NjEyNGM1NjEyZmQxNTY1YjViNjEyNGQyODY4Mjg3MDE2MTFlZTk1NjViOTI1MDUwNjA0MDg0MDEzNTY3ZmZmZmZmZmZmZmZmZmZmZjgxMTExNTYxMjRmMzU3NjEyNGYyNjEyZmQxNTY1YjViNjEyNGZmODY4Mjg3MDE2MTFmMTc1NjViOTE1MDUwOTI1MDkyNTA5MjU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTI1MWY1NzYxMjUxZTYxMmZkNjU2NWI1YjYwMDA2MTI1MmQ4NDgyODUwMTYxMjAwYzU2NWI5MTUwNTA5MjkxNTA1MDU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTI1NGM1NzYxMjU0YjYxMmZkNjU2NWI1YjYwMDA2MTI1NWE4NDgyODUwMTYxMjAzNjU2NWI5MTUwNTA5MjkxNTA1MDU2NWI2MDAwODA2MDAwNjA0MDg0ODYwMzEyMTU2MTI1N2M1NzYxMjU3YjYxMmZkNjU2NWI1YjYwMDA4NDAxMzU2N2ZmZmZmZmZmZmZmZmZmZmY4MTExMTU2MTI1OWE1NzYxMjU5OTYxMmZkMTU2NWI1YjYxMjVhNjg2ODI4NzAxNjEyMWMzNTY1YjkzNTA1MDYwMjA4NDAxMzU2N2ZmZmZmZmZmZmZmZmZmZmY4MTExMTU2MTI1Yzc1NzYxMjVjNjYxMmZkMTU2NWI1YjYxMjVkMzg2ODI4NzAxNjE=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwNAGv+MHflPcWDI7eVReU2HO3Cmj5/yRSxCdsSpMtqrCH/Wj+5M2XmANjYB0ZBU5kGgwIn7bkrQYQk67OpgMiDwoJCOO15K0GEKYcEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjkteStBhCsHBICGAISAhgDGPbR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxiCDSKAIDFmYTE1NjViOTI1MDkyNTA1MDkyNTA5MjUwOTI1NjViNjAwMDYxMjVlYjgzODM2MTI2NTM1NjViNjAyMDgzMDE5MDUwOTI5MTUwNTA1NjViNjAwMDYxMjYwMzgzODM2MTI4Y2I1NjViNjAyMDgzMDE5MDUwOTI5MTUwNTA1NjViNjAwMDYxMjYxYjgzODM2MTI4ZTk1NjViNjA2MDgzMDE5MDUwOTI5MTUwNTA1NjViNjAwMDYxMjYzMzgzODM2MTI5MmI1NjViNjA4MDgzMDE5MDUwOTI5MTUwNTA1NjViNjAwMDYxMjY0YjgzODM2MTI5ODA1NjViOTA1MDkyOTE1MDUwNTY1YjYxMjY1YzgxNjEyZTdhNTY1YjgyNTI1MDUwNTY1YjYxMjY2YjgxNjEyZTdhNTY1YjgyNTI1MDUwNTY1YjYwMDA2MTI2N2M4MjYxMmQ5NzU2NWI2MTI2ODY4MTg1NjEyZTFhNTY1YjkzNTA2MTI2OTE4MzYxMmQ0NzU2NWI4MDYwMDA1YjgzODExMDE1NjEyNmMyNTc4MTUxNjEyNmE5ODg4MjYxMjVkZjU2NWI5NzUwNjEyNmI0ODM2MTJkZDk1NjViOTI1MDUwNjAwMTgxMDE5MDUwNjEyNjk1NTY1YjUwODU5MzUwNTA1MDUwOTI5MTUwNTA1NjViNjAwMDYxMjZkYTgyNjEyZGEyNTY1YjYxMjZlNDgxODU2MTJlMmI1NjViOTM1MDYxMjZlZjgzNjEyZDU3NTY1YjgwNjAwMDViODM4MTEwMTU2MTI3MjA1NzgxNTE2MTI3MDc4ODgyNjEyNWY3NTY1Yjk3NTA2MTI3MTI4MzYxMmRlNjU2NWI5MjUwNTA2MDAxODEwMTkwNTA2MTI2ZjM1NjViNTA4NTkzNTA1MDUwNTA5MjkxNTA1MDU2NWI2MDAwNjEyNzM4ODI2MTJkYWQ1NjViNjEyNzQyODE4NTYxMmUzYzU2NWI5MzUwNjEyNzRkODM2MTJkNjc1NjViODA2MDAwNWI4MzgxMTAxNTYxMjc3ZTU3ODE1MTYxMjc2NTg4ODI2MTI2MGY1NjViOTc1MDYxMjc3MDgzNjEyZGYzNTY1YjkyNTA1MDYwMDE4MTAxOTA1MDYxMjc1MTU2NWI1MDg1OTM1MDUwNTA1MDkyOTE1MDUwNTY1YjYwMDA2MTI3OTY4MjYxMmRiODU2NWI2MTI3YTA4MTg1NjEyZTRkNTY1YjkzNTA2MTI3YWI4MzYxMmQ3NzU2NWI4MDYwMDA1YjgzODExMDE1NjEyN2RjNTc4MTUxNjEyN2MzODg4MjYxMjYyNzU2NWI5NzUwNjEyN2NlODM2MTJlMDA1NjViOTI1MDUwNjAwMTgxMDE5MDUwNjEyN2FmNTY1YjUwODU5MzUwNTA1MDUwOTI5MTUwNTA1NjViNjAwMDYxMjdmNDgyNjEyZGMzNTY1YjYxMjdmZTgxODU2MTJlNWU1NjViOTM1MDgzNjAyMDgyMDI4NTAxNjEyODEwODU2MTJkODc1NjViODA2MDAwNWI4NTgxMTAxNTYxMjg0YzU3ODQ4NDAzODk1MjgxNTE2MTI4MmQ4NTgyNjEyNjNmNTY1Yjk0NTA2MTI4Mzg4MzYxMmUwZDU2NWI5MjUwNjAyMDhhMDE5OTUwNTA2MDAxODEwMTkwNTA2MTI4MTQ1NjViNTA4Mjk3NTA4Nzk1NTA1MDUwNTA1MDUwOTI5MTUwNTA1NjViNjEyODY3ODE2MTJlOGM1NjViODI1MjUwNTA1NjViNjEyODc2ODE2MTJlOGM1NjViODI1MjUwNTA1NjViNjAwMDYxMjg4NzgyNjEyZGNlNTY1YjYxMjg5MTgxODU2MTJlNmY1NjViOTM1MDYxMjhhMTgxODU2MDIwODYwMTYxMmYyMDU2NWI4MDg0MDE5MTUwNTA5MjkxNTA1MDU2NWI2MTI4YjY4MTYxMmU5ODU2NWI4MjUyNTA1MDU2NWI2MTI4YzU4MTYxMmVmYjU2NWI4MjUyNTA1MDU2NWI2MTI4ZDQ4MTYxMmVhZjU2NWI4MjUyNTA1MDU2NWI2MTI4ZTM4MTYxMmVhZjU2NWI4MjUyNTA1MDU2NWI2MDYwODIwMTYwMDA4MjAxNTE2MTI4ZmY2MDAwODUwMTgyNjEyNjUzNTY1YjUwNjAyMDgyMDE1MTYxMjkxMjYwMjA4NTAxODI2MTI4Y2I1NjViNTA2MDQwODIwMTUxNjEyOTI1NjA0MDg1MDE4MjYxMjg1ZTU2NWI1MDUwNTA1MDU2NWI2MDgwODIwMTYwMDA4MjAxNTE2MTI5NDE2MDAwODUwMTgyNjEyNjUzNTY1YjUwNjAyMDgyMDE1MTYxMjk1NDYwMjA4NTAxODI2MTI2NTM1NjViNTA2MDQwODIwMTUxNjEyOTY3NjA0MDg1MDE4MjYxMjhjYjU2NWI1MDYwNjA4MjAxNTE2MTI5N2E2MDYwODUwMTgyNjEyODVlNTY1YjUwNTA1MDUwNTY1YjYwMDA2MDYwODMwMTYwMDA4MzAxNTE2MTI5OTg2MDAwODYwMTgyNjEyNjUzNTY1YjUwNjAyMDgzMDE1MTg0ODIwMzYwMjA4NjAxNTI2MTI5YjA4MjgyNjEyNzJkNTY1YjkxNTA1MDYwNDA4MzAxNTE4NDgyMDM2MDQwODYwMTUyNjEyOWNhODI4MjYxMjc4YjU2NWI5MTUwNTA4MDkxNTA1MDkyOTE1MDUwNTY1YjYwMDA2MDIwODMwMTYwMDA4MzAxNTE4NDgyMDM2MDAwODYwMTUyNjEyOWY0ODI4MjYxMjcyZDU2NWI5MTUwNTA4MDkxNTA1MDkyOTE1MDUwNTY1YjYxMmEwYTgxNjEyZWRjNTY1YjgyNTI1MDUwNTY1YjYwMDA2MTJhMWM4Mjg0NjEyODdjNTY1YjkxNTA4MTkwNTA5MjkxNTA1MDU2NWI2MDAwNjA4MDgyMDE5MDUwNjEyYTNjNjAwMDgzMDE4NzYxMjY2MjU2NWI2MTJhNDk2MDIwODMwMTg2NjEyNjYyNTY1YjYxMmE1NjYwNDA4MzAxODU2MTI2NjI1NjViNjEyYTYzNjA2MDgzMDE4NDYxMjhkYTU2NWI5NTk0NTA1MDUwNTA1MDU2NWI2MDAwNjA4MDgyMDE5MDUwNjEyYTgxNjAwMDgzMDE4NzYxMjY2MjU2NWI2MTJhOGU2MDIwODMwMTg2NjEyNjYyNTY1YjYxMmE5YjYwNDA4MzAxODU2MTI2NjI1NjViNjEyYWE4NjA2MDgzMDE4NDYxMmEwMTU2NWI5NTk0NTA1MDUwNTA1MDU2NWI2MDAwNjA2MDgyMDE5MDUwNjEyYWM2NjAwMDgzMDE4NjYxMjY2MjU2NWI2MTJhZDM2MDIwODMwMTg1NjEyNjYyNTY1YjYxMmFlMDYwNDA4MzAxODQ2MTI4NmQ1NjViOTQ5MzUwNTA1MDUwNTY1YjYwMDA2MDYwODIwMTkwNTA2MTJhZmQ2MDAwODMwMTg2NjEyNjYyNTY1YjYxMmIwYTYwMjA4MzAxODU2MTI2NjI1NjViNjEyYjE3NjA0MDgzMDE4NDYxMmEwMTU2NWI5NDkzNTA1MDUwNTA1NjViNjAwMDYwODA4MjAxOTA1MDYxMmIzNDYwMDA4MzAxODc2MTI2NjI1NjViODE4MTAzNjAyMDgzMDE1MjYxMmI0NjgxODY2MTI2NzE1NjViOTA1MDgxODEwMzYwNDA4MzAxNTI2MTJiNWE4MTg1NjEyNjcxNTY1YjkwNTA4MTgxMDM2MDYwODMwMTUyNjEyYjZlODE4NDYxMjZjZjU2NWI5MDUwOTU5NDUwNTA1MDUwNTA1NjViNjAwMDYwNjA4MjAxOTA1MDYxMmI4ZTYwMDA4MzAxODY2MTI2NjI1NjViODE4MTAzNjAyMDgzMDE1MjYxMmJhMDgxODU2MTI2NzE1NjViOTA1MDgxODEwMzYwNDA4MzAxNTI2MTJiYjQ4MTg0NjEyNmNmNTY1YjkwNTA5NDkzNTA1MDUwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDYxMmJkMzYwMDA4MzAxODQ2MTI4YWQ1NjViOTI5MTUwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDYxMmJlZTYwMDA4MzAxODQ2MTI4YmM1NjViOTI5MTUwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDYxMmMwOTYwMDA4MzAxODQ2MTI4ZGE1NjViOTI5MTUwNTA1NjViNjAwMDYwNDA4MjAxOTA1MDgxODEwMzYwMDA4MzAxNTI2MTJjMjk4MTg1NjEyOWQ3NTY1YjkwNTA4MTgxMDM2MDIwODMwMTUyNjEyYzNkODE4NDYxMjdlOTU2NWI5MDUwOTM5MjUwNTA1MDU2NWI2MDAwNjEyYzUwNjEyYzYxNTY1YjkwNTA2MTJjNWM4MjgyNjEyZjUzNTY1YjkxOTA1MDU2NWI2MDAwNjA0MDUxOTA1MDkwNTY1YjYwMDA2N2ZmZmZmZmZmZmZmZmZmZmY4MjExMTU2MTJjODY1NzYxMmM4NTYxMmY4NDU2NWI1YjYwMjA4MjAyOTA1MDYwMjA4MTAxOTA1MDkxOTA1MDU2NWI2MDAwNjdmZmZmZmZmZmZmZmZmZmZmODIxMTE1NjEyY2IyNTc2MTJjYjE2MTJmODQ1NjViNWI2MDIwODIwMjkwNTA2MDIwODEwMTkwNTA5MTkwNTA1NjViNjAwMDY3ZmZmZmZmZmZmZmZmZmZmZjgyMTExNTYxMmNkZTU3NjEyY2RkNjEyZjg0NTY1YjViNjAyMDgyMDI5MDUwNjAyMDgxMDE5MDUwOTE5MDUwNTY1YjYwMDA2N2ZmZmZmZmZmZmZmZmZmZmY4MjExMTU2MTJkMGE1NzYxMmQwOTYxMmY4NDU2NWI1YjYwMjA4MjAyOTA1MDYwMjA4MTAxOTA1MDkxOTA1MDU2NWI2MDAwNjdmZmZmZmZmZmZmZmZmZmZmODIxMTE1NjEyZDM2NTc2MTJkMzU2MTJmODQ1NjViNWI2MDIwODIwMjkwNTA2MDIwODEwMTkwNTA5MTkwNTA1NjViNjAwMDgxOTA1MDYwMjA4MjAxOTA1MDkxOTA1MDU2NWI2MDAwODE5MDUwNjAyMDgyMDE5MDUwOTE5MDUwNTY1YjYwMDA4MTkwNTA2MDIwODIwMTkwNTA5MTkwNTA1NjViNjAwMDgxOTA1MDYwMjA4MjAxOTA1MDkxOTA1MDU2NWI2MDAwODE5MDUwNjAyMDgyMDE5MDUwOTE5MDUwNTY1YjYwMDA4MTUxOTA1MDkxOTA1MDU2NWI2MDAwODE1MTkwNTA5MTkwNTA1NjViNjAwMDgxNTE5MDUwOTE5MDUwNTY1YjYwMDA4MTUxOTA1MDkxOTA1MDU2NWI2MDAwODE1MTkwNTA5MTkwNTA1NjViNjA=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw1ZBMumHFz41/RQCoEHpfCoypjjglL/SsMIKGgQ4WmnyZCxJgXo3HftitPcz9KXbtGgwIoLbkrQYQw+eDrwEiDwoJCOS15K0GEKwcEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjkteStBhCyHBICGAISAhgDGNyDizMiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBkgsSAxiCDSKKCzAwODE1MTkwNTA5MTkwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDkxOTA1MDU2NWI2MDAwNjAyMDgyMDE5MDUwOTE5MDUwNTY1YjYwMDA2MDIwODIwMTkwNTA5MTkwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDkxOTA1MDU2NWI2MDAwNjAyMDgyMDE5MDUwOTE5MDUwNTY1YjYwMDA4MjgyNTI2MDIwODIwMTkwNTA5MjkxNTA1MDU2NWI2MDAwODI4MjUyNjAyMDgyMDE5MDUwOTI5MTUwNTA1NjViNjAwMDgyODI1MjYwMjA4MjAxOTA1MDkyOTE1MDUwNTY1YjYwMDA4MjgyNTI2MDIwODIwMTkwNTA5MjkxNTA1MDU2NWI2MDAwODI4MjUyNjAyMDgyMDE5MDUwOTI5MTUwNTA1NjViNjAwMDgxOTA1MDkyOTE1MDUwNTY1YjYwMDA2MTJlODU4MjYxMmViYzU2NWI5MDUwOTE5MDUwNTY1YjYwMDA4MTE1MTU5MDUwOTE5MDUwNTY1YjYwMDA4MTkwNTA5MTkwNTA1NjViNjAwMDgxNjAwMzBiOTA1MDkxOTA1MDU2NWI2MDAwODE2MDA3MGI5MDUwOTE5MDUwNTY1YjYwMDA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MjE2OTA1MDkxOTA1MDU2NWI2MDAwODE5MDUwOTE5MDUwNTY1YjYwMDA2MTJlZjMzNjg0ODQ2MTFlNDY1NjViOTA1MDkyOTE1MDUwNTY1YjYwMDA2MTJmMDY4MjYxMmVhZjU2NWI5MDUwOTE5MDUwNTY1YjYwMDA2MTJmMTkzNjgzNjEyMWUyNTY1YjkwNTA5MTkwNTA1NjViNjAwMDViODM4MTEwMTU2MTJmM2U1NzgwODIwMTUxODE4NDAxNTI2MDIwODEwMTkwNTA2MTJmMjM1NjViODM4MTExMTU2MTJmNGQ1NzYwMDA4NDg0MDE1MjViNTA1MDUwNTA1NjViNjEyZjVjODI2MTJmZGI1NjViODEwMTgxODExMDY3ZmZmZmZmZmZmZmZmZmZmZjgyMTExNzE1NjEyZjdiNTc2MTJmN2E2MTJmODQ1NjViNWI4MDYwNDA1MjUwNTA1MDU2NWI3ZjRlNDg3YjcxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MDAwNTI2MDQxNjAwNDUyNjAyNDYwMDBmZDViNjAwMDgwZmQ1YjYwMDA4MGZkNWI2MDAwODBmZDViNjAwMDgwZmQ1YjYwMDA4MGZkNWI2MDAwODBmZDViNjAwMDgwZmQ1YjYwMDA4MGZkNWI2MDAwNjAxZjE5NjAxZjgzMDExNjkwNTA5MTkwNTA1NjViNjEyZmY1ODE2MTJlN2E1NjViODExNDYxMzAwMDU3NjAwMDgwZmQ1YjUwNTY1YjYxMzAwYzgxNjEyZThjNTY1YjgxMTQ2MTMwMTc1NzYwMDA4MGZkNWI1MDU2NWI2MTMwMjM4MTYxMmVhMjU2NWI4MTE0NjEzMDJlNTc2MDAwODBmZDViNTA1NjViNjEzMDNhODE2MTJlYWY1NjViODExNDYxMzA0NTU3NjAwMDgwZmQ1YjUwNTY1YjYxMzA1MTgxNjEyZWRjNTY1YjgxMTQ2MTMwNWM1NzYwMDA4MGZkNWI1MDU2ZmVhMjY0Njk3MDY2NzM1ODIyMTIyMGZiNWJkY2E2MmRjYzhjNWNjYjczNmE1NTZhZjEwZDRlNGI4ZTRlYjQzZGQyMjI3NGUxYmVlZmIxMWY1YTBiMTY2NDczNmY2YzYzNDMwMDA4MDcwMDMz","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwNIHqwDBSkGMO7SYOb3Abqkx28JxJf8jSsA0NYPMnr+cyNVktBpsitdsKgZb/YWkJGgwIoLbkrQYQ24S2sAMiDwoJCOS15K0GELIcEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjlteStBhC0HBICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGIINGiISIBvMfcjFbds4L8pKYlV4oaGpxkaLjOvgx2fD3R26RSBxIKDCHkIFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGIMNKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCo+qADZvcjriz9v4OLq4mfqraZI6uIvkJHLmWZD0TsIrdoiYRGaaSLTmD2JX/arbsaDAihtuStBhCr28K4ASIPCgkI5bXkrQYQtBwSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDwvYIOQspjCgMYgw0SlWFggGBAUjSAFWEAEFdgAID9W1BgBDYQYQEWV2AANWDgHIBjmyPT2RFhAKJXgGPfbAb1EWEAcVeAY99sBvUUYQOLV4Bj6sbz/hRhA7tXgGPveDm2FGED61eAY/JbEgAUYQQbV4Bj+Ej+xBRhBEtXYQEWVluAY5sj09kUYQLLV4BjrDbvtBRhAvtXgGPHZiDKFGEDK1eAY8wlKPAUYQNbV2EBFlZbgGNsQKd3EWEA6VeAY2xAp3cUYQHbV4Bjbaax8BRhAgtXgGOEK3HbFGECO1eAY5QuAaMUYQJrV4Bjlw4j0hRhAptXYQEWVluAYxHh/AcUYQEbV4BjFdrL6hRhAUtXgGNLpnA1FGEBe1eAY1gTFVEUYQGrV1tgAID9W2EBNWAEgDYDgQGQYQEwkZBhIrZWW2EEe1ZbYEBRYQFCkZBhK/RWW2BAUYCRA5DzW2EBZWAEgDYDgQGQYQFgkZBhIrZWW2EFl1ZbYEBRYQFykZBhK/RWW2BAUYCRA5DzW2EBlWAEgDYDgQGQYQGQkZBhIk9WW2EGtVZbYEBRYQGikZBhK75WW2BAUYCRA5DzW2EBxWAEgDYDgQGQYQHAkZBhJH5WW2EHFFZbYEBRYQHSkZBhK75WW2BAUYCRA5DzW2EB9WAEgDYDgQGQYQHwkZBhIrZWW2EHcVZbYEBRYQICkZBhK/RWW2BAUYCRA5DzW2ECJWAEgDYDgQGQYQIgkZBhIk9WW2EIWFZbYEBRYQIykZBhK75WW2BAUYCRA5DzW2ECVWAEgDYDgQGQYQJQkZBhIrZWW2EIt1ZbYEBRYQJikZBhK/RWW2BAUYCRA5DzW2EChWAEgDYDgQGQYQKAkZBhI3BWW2EJnlZbYEBRYQKSkZBhK75WW2BAUYCRA5DzW2ECtWAEgDYDgQGQYQKwkZBhJWNWW2EJ+1ZbYEBRYQLCkZBhK75WW2BAUYCRA5DzW2EC5WAEgDYDgQGQYQLgkZBhIrZWW2EKbFZbYEBRYQLykZBhK/RWW2BAUYCRA5DzW2EDFWAEgDYDgQGQYQMQkZBhJWNWW2ELilZbYEBRYQMikZBhK75WW2BAUYCRA5DzW2EDRWAEgDYDgQGQYQNAkZBhIx1WW2EL+1ZbYEBRYQNSkZBhK75WW2BAUYCRA5DzW2EDdWAEgDYDgQGQYQNwkZBhI8NWW2EMWFZbYEBRYQOCkZBhK75WW2BAUYCRA5DzW2EDpWAEgDYDgQGQYQOgkZBhI3BWW2EMt1ZbYEBRYQOykZBhK75WW2BAUYCRA5DzW2ED1WAEgDYDgQGQYQPQkZBhIrZWW2ENFFZbYEBRYQPikZBhK/RWW2BAUYCRA5DzW2EEBWAEgDYDgQGQYQQAkZBhI3BWW2EOMFZbYEBRYQQSkZBhK75WW2BAUYCRA5DzW2EENWAEgDYDgQGQYQQwkZBhIx1WW2EOjVZbYEBRYQRCkZBhK75WW2BAUYCRA5DzW2EEZWAEgDYDgQGQYQRgkZBhI3BWW2EO6lZbYEBRYQRykZBhK75WW2BAUYCRA5DzW2AAgGAAYQFnc///////////////////////////FmObI9PZYOAbiIiIiGBAUWAkAWEEuJSTkpGQYSpsVltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhBSKRkGEqEFZbYABgQFGAgwOBhVr0kVBQPYBgAIEUYQVdV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YQViVltgYJFQW1CRUJFQgWEFc1dgFWEFiFZbgIBgIAGQUYEBkGEFh5GQYSUJVltbYAMLklBQUJSTUFBQUFZbYACAYABhAWdz//////////////////////////8WYxXay+pg4BuIiIiIYEBRYCQBYQXUlJOSkZBhKmxWW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEGPpGQYSoQVltgAGBAUYCDA4FgAIZa8ZFQUD2AYACBFGEGe1dgQFGRUGAfGWA/PQEWggFgQFI9glI9YABgIIQBPmEGgFZbYGCRUFtQkVCRUIFhBpFXYBVhBqZWW4CAYCABkFGBAZBhBqWRkGElCVZbW2ADC5JQUFCUk1BQUFBWW2AAYQbDhYWFhWEPR1ZbkFB/kKXPTP/oi07bsEHPx6ioEsSKXsMLhGQPs3aQh1Fo46qBYEBRYQb0kZBhK75WW2BAUYCRA5ChYBZgAwuBFGEHDFdgAID9W5STUFBQUFZbYABhByGEhIRhEGVWW5BQf5Clz0z/6ItO27BBz8eoqBLEil7DC4RkD7N2kIdRaOOqgWBAUWEHUpGQYSu+VltgQFGAkQOQoWAWYAMLgRRhB2pXYACA/VuTklBQUFZbYAAwc///////////////////////////FmObI9PZhoaGhmBAUYVj/////xZg4BuBUmAEAWEHspSTkpGQYSpsVltgIGBAUYCDA4FgAIeAOxWAFWEHzFdgAID9W1Ba8RWAFWEH4Fc9YACAPj1gAP1bUFBQUGBAUT1gHxlgH4IBFoIBgGBAUlCBAZBhCASRkGElNlZbkFB/kKXPTP/oi07bsEHPx6ioEsSKXsMLhGQPs3aQh1Fo46qBYEBRYQg1kZBhK9lWW2BAUYCRA5ChYBZgAwuBYAcLFGEIUFdgAID9W5STUFBQUFZbYABhCGaFhYWFYRGAVluQUH+Qpc9M/+iLTtuwQc/HqKgSxIpewwuEZA+zdpCHUWjjqoFgQFFhCJeRkGErvlZbYEBRgJEDkKFgFmADC4EUYQivV2AAgP1blJNQUFBQVltgADBz//////////////////////////8WYxXay+qGhoaGYEBRhWP/////FmDgG4FSYAQBYQj4lJOSkZBhKmxWW2AgYEBRgIMDgWAAh4A7FYAVYQkSV2AAgP1bUFrxFYAVYQkmVz1gAIA+PWAA/VtQUFBQYEBRPWAfGWAfggEWggGAYEBSUIEBkGEJSpGQYSU2VluQUH+Qpc9M/+iLTtuwQc/HqKgSxIpewwuEZA+zdpCHUWjjqoFgQFFhCXuRkGEr2VZbYEBRgJEDkKFgFmADC4FgBwsUYQmWV2AAgP1blJNQUFBQVltgAGEJq4SEhGESnlZbkFB/kKXPTP/oi07bsEHPx6ioEsSKXsMLhGQPs3aQh1Fo46qBYEBRYQnckZBhK75WW2BAUYCRA5ChYBZgAwuBFGEJ9FdgAID9W5OSUFBQVltgAGEKHIRhCgqQYS8NVluEhJBhCheRkGEu5lZbYRO3VluQUH+Qpc9M/+iLTtuwQc/HqKgSxIpewwuEZA+zdpCHUWjjqoFgQFFhCk2RkGErvlZbYEBRgJEDkKFgFmADC4EUYQplV2AAgP1bk5JQUFBWW2AAgGAAYQFnc///////////////////////////FmObI9PZYOAbiIiIiGBAUWAkAWEKqZSTkpGQYSpsVltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhCxORkGEqEFZbYABgQFGAgwOBYACGWvGRUFA9gGAAgRRhC1BXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hC1VWW2BgkVBbUJFQkVCBYQtmV2AVYQt7VluAgGAgAZBRgQGQYQt6kZBhJQlWW1tgAwuSUFBQlJNQUFBQVltgAGELq4RhC5mQYS8NVluEhJBhC6aRkGEu5lZbYRTPVluQUH+Qpc9M/+iLTtuwQc/HqKgSxIpewwuEZA+zdpCHUWjjqoFgQFFhC9yRkGErvlZbYEBRgJEDkKFgFmADC4EUYQv0V2AAgP1bk5JQUFBWW2AAYQwIhISEYRXlVluQUH+Qpc9M/+iLTtuwQc/HqKgSxIpewwuEZA+zdpCHUWjjqoFgQFFhDDmRkGErvlZbYEBRgJEDkKFgFmADC4EUYQxRV2AAgP1bk5JQUFBWW2AAYQxmhYWFhWEW/lZbkFB/kKXPTP/oi07bsEHPx6ioEsSKXsMLhGQPs3aQh1Fo46qBYEBRYQyXkZBhK75WW2BAUYCRA5ChYBZgAwuBFGEMr1dgAID9W5STUFBQUFZbYABhDMSEhIRhGBxWW5BQf5Clz0z/6ItO27BBz8eoqBLEil7DC4RkD7N2kIdRaOOqgWBAUWEM9ZGQYSu+VltgQFGAkQOQoWAWYAMLgRRhDQ1XYACA/VuTklBQUFZbYACAYABhAWdz//////////////////////////8WYxXay+pg4BuIiIiIYEBRYCQBYQ1RlJOSkZBhKmxWW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWENu5GQYSoQVltgAGBAUYCDA4GFWvSRUFA9gGAAgRRhDfZXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hDftWW2BgkVBbUJFQkVCBYQ4MV2AVYQ4hVluAgGAgAZBRgQGQYQ4gkZBhJQlWW1tgAwuSUFBQlJNQUFBQVltgAGEOPYSEhGEZN1ZbkFB/kKXPTP/oi07bsEHPx6ioEsSKXsMLhGQPs3aQh1Fo46qBYEBRYQ5ukZBhK75WW2BAUYCRA5ChYBZgAwuBFGEOhldgAID9W5OSUFBQVltgAGEOmoSEhGEaUFZbkFB/kKXPTP/oi07bsEHPx6ioEsSKXsMLhGQPs3aQh1Fo46qBYEBRYQ7LkZBhK75WW2BAUYCRA5ChYBZgAwuBFGEO41dgAID9W5OSUFBQVltgAGEO94SEhGEba1ZbkFB/kKXPTP/oi07bsEHPx6ioEsSKXsMLhGQPs3aQh1Fo46qBYEBRYQ8okZBhK75WW2BAUYCRA5ChYBZgAwuBFGEPQFdgAID9W5OSUFBQVltgAIBgAGEBZ3P//////////////////////////xZj7KNpF2DgG4iIiIhgQFFgJAFhD4SUk5KRkGEqJ1ZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQ/ukZBhKhBWW2AAYEBRgIMDgWAAhlrxkVBQPYBgAIEUYRArV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YRAwVltgYJFQW1CRUJFQgWEQQVdgFWEQVlZbgIBgIAGQUYEBkGEQVZGQYSUJVltbYAMLklBQUJSTUFBQUFZbYACAYABhAWdz//////////////////////////8WY4K7pJNg4BuHh4dgQFFgJAFhEKCTkpGQYSt5VltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhEQqRkGEqEFZbYABgQFGAgwOBYACGWvGRUFA9gGAAgRRhEUdXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hEUxWW2BgkVBbUJFQkVCBYRFdV2AVYRFyVluAgGAgAZBRgQGQYRFxkZBhJQlWW1tgAwuSUFBQk5JQUFBWW2AAgGAAYQFnc///////////////////////////FmNc/JARYOAbiIiIiGBAUWAkAWERvZSTkpGQYSonVltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhEieRkGEqEFZbYABgQFGAgwOBYACGWvGRUFA9gGAAgRRhEmRXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hEmlWW2BgkVBbUJFQkVCBYRJ6V2AVYRKPVluAgGAgAZBRgQGQYRKOkZBhJQlWW1tgAwuSUFBQlJNQUFBQVltgAIBgAGEBZ3P//////////////////////////xZjczaq8GDgG4eHh2BAUWAkAWES2ZOSkZBhKuhWW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWETQ5GQYSoQVltgAGBAUYCDA4GFWvSRUFA9gGAAgRRhE35XYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hE4NWW2BgkVBbUJFQkVCBYROUV2AVYROpVluAgGAgAZBRgQGQYROokZBhJQlWW1tgAwuSUFBQk5JQUFBWW2AAgGAAYQFnc///////////////////////////FmMOcYBPYOAbhoZgQFFgJAFhE/CSkZBhLA9WW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEUWpGQYSoQVltgAGBAUYCDA4FgAIZa8ZFQUD2AYACBFGEUl1dgQFGRUGAfGWA/PQEWggFgQFI9glI9YABgIIQBPmEUnFZbYGCRUFtQkVCRUIFhFK1XYBVhFMJWW4CAYCABkFGBAZBhFMGRkGElCVZbW2ADC5JQUFCSkVBQVltgAIBgAGEBZ3P//////////////////////////xZjDnGAT2DgG4aGYEBRYCQBYRUIkpGQYSwPVltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhFXKRkGEqEFZbYABgQFGAgwOBhVr0kVBQPYBgAIEUYRWtV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YRWyVltgYJFQW1CRUJFQgWEVw1dgFWEV2FZbgIBgIAGQUYEBkGEV15GQYSUJVltbYAMLklBQUJKRUFBWW2AAgGAAYQFnc///////////////////////////FmM2dgXKYOAbh4eHYEBRYCQBYRYgk5KRkGEqsVZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYRaKkZBhKhBWW2AAYEBRgIMDgYVa9JFQUD2AYACBFGEWxVdgQFGRUGAfGWA/PQEWggFgQFI9glI9YABgIIQBPmEWylZbYGCRUFtQkVCRUIFhFttXYBVhFvBWW4CAYCABkFGBAZBhFu+RkGElCVZbW2ADC5JQUFCTklBQUFZbYACAYABhAWdz//////////////////////////8WYyxLoZFg4BuIiIiIYEBRYCQBYRc7lJOSkZBhKx9WW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEXpZGQYSoQVltgAGBAUYCDA4FgAIZa8ZFQUD2AYACBFGEX4ldgQFGRUGAfGWA/PQEWggFgQFI9glI9YABgIIQBPmEX51ZbYGCRUFtQkVCRUIFhF/hXYBVhGA1WW4CAYCABkFGBAZBhGAyRkGElCVZbW2ADC5JQUFCUk1BQUFBWW2AAgGAAYQFnc///////////////////////////FmNzNqrwYOAbh4eHYEBRYCQBYRhXk5KRkGEq6FZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYRjBkZBhKhBWW2AAYEBRgIMDgWAAhlrxkVBQPYBgAIEUYRj+V2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YRkDVltgYJFQW1CRUJFQgWEZFFdgFWEZKVZbgIBgIAGQUYEBkGEZKJGQYSUJVltbYAMLklBQUJOSUFBQVltgAIBgAGEBZ3P//////////////////////////xZj4fIcZ2DgG4eHh2BAUWAkAWEZcpOSkZBhKuhWW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEZ3JGQYSoQVltgAGBAUYCDA4GFWvSRUFA9gGAAgRRhGhdXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hGhxWW2BgkVBbUJFQkVCBYRotV2AVYRpCVluAgGAgAZBRgQGQYRpBkZBhJQlWW1tgAwuSUFBQk5JQUFBWW2AAgGAAYQFnc///////////////////////////FmM2dgXKYOAbh4eHYEBRYCQBYRqLk5KRkGEqsVZbYEBRYCCBgwMDgVKQYEBSkHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYRr1kZBhKhBWW2AAYEBRgIMDgWAAhlrxkVBQPYBgAIEUYRsyV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1gAGAghAE+YRs3VltgYJFQW1CRUJFQgWEbSFdgFWEbXVZbgIBgIAGQUYEBkGEbXJGQYSUJVltbYAMLklBQUJOSUFBQVltgAIBgAGEBZ3P//////////////////////////xZj4fIcZ2DgG4eHh2BAUWAkAWEbppOSkZBhKuhWW2BAUWAggYMDA4FSkGBAUpB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEcEJGQYSoQVltgAGBAUYCDA4FgAIZa8ZFQUD2AYACBFGEcTVdgQFGRUGAfGWA/PQEWggFgQFI9glI9YABgIIQBPmEcUlZbYGCRUFtQkVCRUIFhHGNXYBVhHHhWW4CAYCABkFGBAZBhHHeRkGElCVZbW2ADC5JQUFCTklBQUFZbYABhHJlhHJSEYSxrVlthLEZWW5BQgIOCUmAgggGQUIKFYCCGAoIBERVhHLxXYRy7YS/MVltbYABbhYEQFWEc7FeBYRzSiIJhHtRWW4RSYCCEAZNQYCCDAZJQUGABgQGQUGEcv1ZbUFBQk5JQUFBWW2AAYR0JYR0EhGEsl1ZbYSxGVluQUICDglJgIIIBkFCChWAghgKCAREVYR0sV2EdK2EvzFZbW2AAW4WBEBVhHVxXgWEdQoiCYSAhVluEUmAghAGTUGAggwGSUFBgAYEBkFBhHS9WW1BQUJOSUFBQVltgAGEdeWEddIRhLMNWW2EsRlZbkFCAg4JSYCCCAZBQgoVgYIYCggERFWEdnFdhHZthL8xWW1tgAFuFgRAVYR3MV4FhHbKIgmEgS1ZbhFJgIIQBk1BgYIMBklBQYAGBAZBQYR2fVltQUFCTklBQUFZbYABhHelhHeSEYSzvVlthLEZWW5BQgIOCUmAgggGQUIKFYICGAoIBERVhHgxXYR4LYS/MVltbYABbhYEQFWEePFeBYR4iiIJhIK9WW4RSYCCEAZNQYICDAZJQUGABgQGQUGEeD1ZbUFBQk5JQUFBWW2AAYR5ZYR5UhGEtG1ZbYSxGVluQUICDglJgIIIBkFCChWAghgKCAREVYR58V2Eee2EvzFZbW2AAW4WBEBVhHspXgTVn//////////+BERVhHqJXYR6hYS+4VltbgIYBYR6viYJhISdWW4VSYCCFAZRQYCCEAZNQUFBgAYEBkFBhHn9WW1BQUJOSUFBQVltgAIE1kFBhHuOBYS/sVluSkVBQVltgAIJgH4MBEmEe/ldhHv1hL7hWW1uBNWEfDoSCYCCGAWEchlZbkVBQkpFQUFZbYACCYB+DARJhHyxXYR8rYS+4VltbgTVhHzyEgmAghgFhHPZWW5FQUJKRUFBWW2AAgmAfgwESYR9aV2EfWWEvuFZbW4E1YR9qhIJgIIYBYR1mVluRUFCSkVBQVltgAIJgH4MBEmEfiFdhH4dhL7hWW1uBNWEfmISCYCCGAWEd1lZbkVBQkpFQUFZbYACAg2AfhAESYR+3V2EftmEvuFZbW4I1kFBn//////////+BERVhH9RXYR/TYS+zVltbYCCDAZFQg2AgggKDAREVYR/wV2Ef72EvzFZbW5JQkpBQVltgAIE1kFBhIAaBYTADVluSkVBQVltgAIFRkFBhIBuBYTAaVluSkVBQVltgAIE1kFBhIDCBYTAxVluSkVBQVltgAIFRkFBhIEWBYTAxVluSkVBQVltgAGBggoQDEhVhIGFXYSBgYS/CVltbYSBrYGBhLEZWW5BQYABhIHuEgoUBYR7UVltgAIMBUlBgIGEgj4SChQFhICFWW2AggwFSUGBAYSCjhIKFAWEf91ZbYECDAVJQkpFQUFZbYABggIKEAxIVYSDFV2EgxGEvwlZbW2Egz2CAYSxGVluQUGAAYSDfhIKFAWEe1FZbYACDAVJQYCBhIPOEgoUBYR7UVltgIIMBUlBgQGEhB4SChQFhICFWW2BAgwFSUGBgYSEbhIKFAWEf91ZbYGCDAVJQkpFQUFZbYABgYIKEAxIVYSE9V2EhPGEvwlZbW2EhR2BgYSxGVluQUGAAYSFXhIKFAWEe1FZbYACDAVJQYCCCATVn//////////+BERVhIXtXYSF6YS/HVltbYSGHhIKFAWEfRVZbYCCDAVJQYECCATVn//////////+BERVhIatXYSGqYS/HVltbYSG3hIKFAWEfc1ZbYECDAVJQkpFQUFZbYABgIIKEAxIVYSHZV2Eh2GEvvVZbW4GQUJKRUFBWW2AAYCCChAMSFWEh+FdhIfdhL8JWW1thIgJgIGEsRlZbkFBgAIIBNWf//////////4ERFWEiIldhIiFhL8dWW1thIi6EgoUBYR9FVltgAIMBUlCSkVBQVltgAIE1kFBhIkmBYTBIVluSkVBQVltgAIBgAIBggIWHAxIVYSJpV2EiaGEv1lZbW2AAYSJ3h4KIAWEe1FZblFBQYCBhIoiHgogBYR7UVluTUFBgQGEimYeCiAFhHtRWW5JQUGBgYSKqh4KIAWEgIVZbkVBQkpWRlFCSUFZbYACAYACAYICFhwMSFWEi0FdhIs9hL9ZWW1tgAGEi3oeCiAFhHtRWW5RQUGAgYSLvh4KIAWEe1FZbk1BQYEBhIwCHgogBYR7UVluSUFBgYGEjEYeCiAFhIjpWW5FQUJKVkZRQklBWW2AAgGAAYGCEhgMSFWEjNldhIzVhL9ZWW1tgAGEjRIaChwFhHtRWW5NQUGAgYSNVhoKHAWEe1FZbklBQYEBhI2aGgocBYR/3VluRUFCSUJJQklZbYACAYABgYISGAxIVYSOJV2EjiGEv1lZbW2AAYSOXhoKHAWEe1FZbk1BQYCBhI6iGgocBYR7UVluSUFBgQGEjuYaChwFhIjpWW5FQUJJQklCSVltgAIBgAIBggIWHAxIVYSPdV2Ej3GEv1lZbW2AAYSPrh4KIAWEe1FZblFBQYCCFATVn//////////+BERVhJAxXYSQLYS/RVltbYSQYh4KIAWEe6VZbk1BQYECFATVn//////////+BERVhJDlXYSQ4YS/RVltbYSRFh4KIAWEe6VZbklBQYGCFATVn//////////+BERVhJGZXYSRlYS/RVltbYSRyh4KIAWEfF1ZbkVBQkpWRlFCSUFZbYACAYABgYISGAxIVYSSXV2EklmEv1lZbW2AAYSSlhoKHAWEe1FZbk1BQYCCEATVn//////////+BERVhJMZXYSTFYS/RVltbYSTShoKHAWEe6VZbklBQYECEATVn//////////+BERVhJPNXYSTyYS/RVltbYST/hoKHAWEfF1ZbkVBQklCSUJJWW2AAYCCChAMSFWElH1dhJR5hL9ZWW1tgAGElLYSChQFhIAxWW5FQUJKRUFBWW2AAYCCChAMSFWElTFdhJUthL9ZWW1tgAGElWoSChQFhIDZWW5FQUJKRUFBWW2AAgGAAYECEhgMSFWElfFdhJXthL9ZWW1tgAIQBNWf//////////4ERFWElmldhJZlhL9FWW1thJaaGgocBYSHDVluTUFBgIIQBNWf//////////4ERFWElx1dhJcZhL9FWW1thJdOGgocBYR+hVluSUJJQUJJQklCSVltgAGEl64ODYSZTVltgIIMBkFCSkVBQVltgAGEmA4ODYSjL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"},{"b64Body":"ChAKCQjlteStBhC2HBIDGPwMEgIYAxjAv+0hIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46kAEKAxiDDRDAhD0ihAFLpnA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZ+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU=","b64Record":"CiUIISIDGIMNKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjB7Ua6NQaZAaeskiunbowz6xf+PXqlj7/CyPv6evGmv8kQUX76oKzYYqfadnDY+R3IaDAihtuStBhDr6Oe5AyIQCgkI5bXkrQYQthwSAxj8DCogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wgOaKGzoIGgIweCiA6jBSFwoJCgIYYhCAzJU2CgoKAxj8DBD/y5U2"},{"b64Body":"ChIKCQjlteStBhC2HBIDGPwMIAFyGxIZCgMYgA0SCQoDGPwMEAkYARIHCgMY/gwQCg==","b64Record":"CgMIpAISMEIKAmr4qDk8FY4Vv2sH03IjPbP2+8Y6dVDGx68lFgsEPHYeKvYXcTatQp4Z7PCzcxoMCKG25K0GEOzo57kDIhIKCQjlteStBhC2HBIDGPwMIAE62wEKAxjnAhIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASQaH1NQRU5ERVJfRE9FU19OT1RfSEFWRV9BTExPV0FOQ0UoumZQm7s6YoQB7KNpFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABnwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFagMYgw1SAHoMCKG25K0GEOvo57kD"},{"b64Body":"ChAKCQjmteStBhC4HBIDGPwMEgIYAxjAv+0hIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo468AIKAxiDDRDAhD0i5AJYExVRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZ+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABn8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////////////////////////////////////2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQ==","b64Record":"CiUIISIDGIMNKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBOpOFJiwZ1s3g9byixg7w+/v0mi8nK1PI1o7PH+gg/4/neUzcncu5VSGfAS+qty6waDAiituStBhD7uIvCASIQCgkI5rXkrQYQuBwSAxj8DCogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wgOaKGzoIGgIweCiA6jBSFwoJCgIYYhCAzJU2CgoKAxj8DBD/y5U2"},{"b64Body":"ChIKCQjmteStBhC4HBIDGPwMIAFyJBIiCgMYgA0SCQoDGPwMEBMYARIHCgMY/gwQChIHCgMY/wwQCg==","b64Record":"CgMIpAISMNwG/csK2a3dcBtVQRsqQbt9w/u+pKlqayecneFQ5tsO4GgEYh+bivYcorVGO2m2vxoMCKK25K0GEPy4i8IBIhIKCQjmteStBhC4HBIDGPwMIAE6vAMKAxjnAhIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASQaH1NQRU5ERVJfRE9FU19OT1RfSEFWRV9BTExPV0FOQ0Uoh6UBUNWLOmLkAoK7pJMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZ8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABn4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//////////////////////////////////////////YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFagMYgw1SAHoMCKK25K0GEPu4i8IB"},{"b64Body":"ChAKCQjmteStBhC6HBIDGPwMEgIYAxjAv+0hIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46kAEKAxiDDRDAhD0ihAFtprHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZ+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE=","b64Record":"CiUIISIDGIMNKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAgy34+9aXePSPwdeRrnl4U1n8Y9izFqdRHkFBlcyO0fX1l0D0AkfXgUZlA0uwjcS0aDAiituStBhDDkaXDAyIQCgkI5rXkrQYQuhwSAxj8DCogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wgOaKGzoIGgIweCiA6jBSFwoJCgIYYhCAzJU2CgoKAxj8DBD/y5U2"},{"b64Body":"ChIKCQjmteStBhC6HBIDGPwMIAFyFxIVCgMYgQ0aDgoDGPwMEgMY/gwYASAB","b64Record":"CgMIpAISMAXmrwz4P6rX/4GbNhb4RpDoVeqRCELlc+emeQgn2hFjnCAuGGLcZ7KgrCOF086eeRoMCKK25K0GEMSRpcMDIhIKCQjmteStBhC6HBIDGPwMIAE62wEKAxjnAhIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASQaH1NQRU5ERVJfRE9FU19OT1RfSEFWRV9BTExPV0FOQ0UohW5Qsbs6YoQBXPyQEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABnwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABagMYgw1SAHoMCKK25K0GEMORpcMD"},{"b64Body":"ChAKCQjnteStBhC8HBIDGPwMEgIYAxjAv+0hIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46sAMKAxiDDRDAhD0ipAPMJSjwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZ8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABnwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZ/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABn8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM=","b64Record":"CiUIISIDGIMNKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAliDrV0vj8apFBLBKP5pv71OoIyupmZHL80IeIyUK+UeFgw/kMplo2Kg1wz9vdVngaDAijtuStBhCTwb7LASIQCgkI57XkrQYQvBwSAxj8DCogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wgOaKGzoIGgIweCiA6jBSFwoJCgIYYhCAzJU2CgoKAxj8DBD/y5U2"},{"b64Body":"ChIKCQjnteStBhC8HBIDGPwMIAFyJxIlCgMYgQ0aDgoDGPwMEgMY/wwYAiABGg4KAxj8DBIDGP8MGAMgAQ==","b64Record":"CgMIpAISMA/zUMrMFmOKDJCACNVsyafamMep5WgL+L8XlgfHust00saNdBF/V2dEkF2ShnPntBoMCKO25K0GEJTBvssBIhIKCQjnteStBhC8HBIDGPwMIAE6/AMKAxjnAhIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASQaH1NQRU5ERVJfRE9FU19OT1RfSEFWRV9BTExPV0FOQ0UoitwBUIWDOmKkAyxLoZEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABnwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABn8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2oDGIMNUgB6DAijtuStBhCTwb7LAQ=="}]},"TransferErc20TokenFromContractWithApproval":{"placeholderNum":1668,"encodedItems":[{"b64Body":"Cg8KCQjsteStBhCEHRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIExGn73pv9KP/1RNp9kTSgG2nq75WrtQz2380MDLWI6KEICAmqbqr+MBSgUIgM7aAw==","b64Record":"CiUIFhIDGIUNKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDyEFoFG0q5dSkVxi0L/0sVLDWlrMDH9EWrpGioxxPxmY8YwIPCDL7feHJ4jk0KEaMaDAiotuStBhCzsra0AiIPCgkI7LXkrQYQhB0SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIfCg0KAhgCEP//s8zU38YDCg4KAxiFDRCAgLTM1N/GAw=="},{"b64Body":"Cg8KCQjtteStBhCGHRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIKg6hDFJYbrbKc7buyj2UnPGlNesfXJWkX4aImRQs7EjEICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGIYNKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDeD9ezdki20guJPD/INkgSjSuhAbpB5Yd/5o0Tnvp3yyWYDI/wtgjDTifhamptbEoaCwiptuStBhDb5t9YIg8KCQjtteStBhCGHRICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUhkKCgoCGAIQ/6fWuQcKCwoDGIYNEICo1rkH"},{"b64Body":"Cg8KCQjtteStBhCIHRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISID/fFweDbXy5Zv6tpvC++bs0GjG7U+Ll9Ieu40/Y6IwkEICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGIcNKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCqZNh36tS19As5XFC1Rlk1J0PcsQrOQ6SKyMaWSfe/ik3U0O0GugR9G6Hy7YI8KswaDAiptuStBhDDmrq+AiIPCgkI7bXkrQYQiB0SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxiHDRCAqNa5Bw=="},{"b64Body":"Cg8KCQjuteStBhCKHRICGAISAhgDGL7W8vsCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAXUKDWZ1bmdpYmxlVG9rZW4SCE9YTEpMTEpBICMqAxiHDTIiEiAa8A+kO5EcBm8HL9NRs0ywUFXs2bx30ABF/xf2yKH4GFIiEiAa8A+kO5EcBm8HL9NRs0ywUFXs2bx30ABF/xf2yKH4GGoLCKqEv7EGEPiEz0I=","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGIgNEjCPE2dkOXuiPAhoY5BmtZv6DCw/5Hb5JjdYmt1omadhSlyghFn6RsE05hmLFs1DlekaCwiqtuStBhDz5exFIg8KCQjuteStBhCKHRICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgBaDgoDGIgNEgcKAxiHDRBGcgoKAxiIDRIDGIcN"},{"b64Body":"Cg8KCQjuteStBhCMHRICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAiqhL+xBhDIxoO0AhptCiISIONDdm/06yUUzq1DVfaafLj2fpDLVvVY2c25Y8mA25bACiM6IQLf56lZmuzH3+FSNS4QHknpT/59uQBIsOC17znE6z1ZNQoiEiD47SnDBYOC/OxT50RRfxfJxBKrVXbPGciVnnjtR2yyiyIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGIkNKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBK8qfdTa9l60VAGBWrELJUjTJ90zOEbsNydPTEDuVOcSfbiHNMmfR/jOY/AFkczoEaDAiqtuStBhDj37zHAiIPCgkI7rXkrQYQjB0SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjvteStBhCQHRICGAISAhgDGIudjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxiJDSKAIDYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMGE1NzgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDBjZjU3NjAwMDM1NjBlMDFjODA2M2JlYWJhY2M4MTE2MTAwOGM1NzgwNjNlNGRjMmFhNDExNjEwMDY2NTc4MDYzZTRkYzJhYTQxNDYxMDE4MTU3ODA2M2Y0Yjc5ZGE1MTQ2MTAxOTQ1NzgwNjNmNzg4OGFlYzE0NjEwMWE3NTc4MDYzZjc5Yzc1NjgxNDYxMDFiYTU3NjAwMDgwZmQ1YjgwNjNiZWFiYWNjODE0NjEwMTQ4NTc4MDYzZDQ0OWE4MzIxNDYxMDE1YjU3ODA2M2UxZjIxYzY3MTQ2MTAxNmU1NzYwMDA4MGZkNWI4MDYzMDE5ODQ4OTIxNDYxMDBkNDU3ODA2MzE1ZGFjYmVhMTQ2MTAwZTk1NzgwNjMxZjg0YjJiNzE0NjEwMGZjNTc4MDYzOTI3ZGExMDUxNDYxMDEwZjU3ODA2Mzk4ZGNhNWJlMTQ2MTAxMjI1NzgwNjNhODZlMzU3NjE0NjEwMTM1NTc1YjYwMDA4MGZkNWI2MTAwZTc2MTAwZTIzNjYwMDQ2MTA3NDY1NjViNjEwMWNkNTY1YjAwNWI2MTAwZTc2MTAwZjczNjYwMDQ2MTA3Njg1NjViNjEwMjM3NTY1YjYxMDBlNzYxMDEwYTM2NjAwNDYxMDdiMzU2NWI2MTAyYjk1NjViNjEwMGU3NjEwMTFkMzY2MDA0NjEwN2VmNTY1YjYxMDMzMzU2NWI2MTAwZTc2MTAxMzAzNjYwMDQ2MTA3Njg1NjViNjEwM2FiNTY1YjYxMDBlNzYxMDE0MzM2NjAwNDYxMDc0NjU2NWI2MTAzZTg1NjViNjEwMGU3NjEwMTU2MzY2MDA0NjEwN2IzNTY1YjYxMDQyNjU2NWI2MTAwZTc2MTAxNjkzNjYwMDQ2MTA3NDY1NjViNjEwNDlhNTY1YjYxMDBlNzYxMDE3YzM2NjAwNDYxMDdiMzU2NWI2MTA0ZmM1NjViNjEwMGU3NjEwMThmMzY2MDA0NjEwNzQ2NTY1YjYxMDUzMTU2NWI2MTAwZTc2MTAxYTIzNjYwMDQ2MTA3YjM1NjViNjEwNTkzNTY1YjYxMDBlNzYxMDFiNTM2NjAwNDYxMDgzMjU2NWI2MTA2Mzc1NjViNjEwMGU3NjEwMWM4MzY2MDA0NjEwODY1NTY1YjYxMDZhNjU2NWI4MDYwMDE2MDAxNjBhMDFiMDMxNjYzMDZmZGRlMDM2MDQwNTE4MTYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MDAwNjA0MDUxODA4MzAzODE4NjVhZmExNTgwMTU2MTAyMGI1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA2MDQwNTEzZDYwMDA4MjNlNjAxZjNkOTA4MTAxNjAxZjE5MTY4MjAxNjA0MDUyNjEwMjMzOTE5MDgxMDE5MDYxMDhkMTU2NWI1MDUwNTY1YjYwNDA1MTYzMjNiODcyZGQ2MGUwMWI4MTUyNjAwMTYwMDE2MGEwMWIwMzg0ODExNjYwMDQ4MzAxNTI4MzgxMTY2MDI0ODMwMTUyNjA0NDgyMDE4MzkwNTI4NTE2OTA2MzIzYjg3MmRkOTA2MDY0MDE2MDIwNjA0MDUxODA4MzAzODE2MDAwODc1YWYxMTU4MDE1NjEwMjhlNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTAyYjI5MTkwNjEwOTdlNTY1YjUwNTA1MDUwNTA1NjViNjA0MDUxNjNhOTA1OWNiYjYwZTAxYjgxNTI2MDAxNjAwMTYwYTAxYjAzODM4MTE2NjAwNDgzMDE1MjYwMjQ4MjAxODM5MDUyODQxNjkwNjNhOTA1OWNiYjkwNjA0NDAxNWI2MDIwNjA0MDUxODA4MzAzODE2MDAwODc1YWYxMTU4MDE1NjEwMzA5NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTAzMmQ5MTkwNjEwOTdlNTY1YjUwNjAwMDgwZmQ1YjYwNDA1MTYzNmViMTc2OWY2MGUxMWI4MTUyNjAwMTYwMDE2MGEwMWIwMzgzODExNjYwMDQ4MzAxNTI4MjgxMTY2MDI0ODMwMTUyODQxNjkwNjNkZDYyZWQzZTkwNjA0NDAxNjAyMDYwNDA1MTgwODMwMzgxODY1YWZhMTU4MDE1NjEwMzgxNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTAzYTU5MTkwNjEwOWEwNTY1YjUwNTA1MDUwNTY1YjYwNDA1MTYzMjNiODcyZGQ2MGUwMWI4MTUyNjAwMTYwMDE2MGEwMWIwMzg0ODExNjYwMDQ4MzAxNTI4MzgxMTY2MDI0ODMwMTUyNjA0NDgyMDE4MzkwNTI4NTE2OTA2MzIzYjg3MmRkOTA2MDY0MDE2MTAyZWE1NjViODA2MDAxNjAwMTYwYTAxYjAzMTY2Mzk1ZDg5YjQxNjA0MDUxODE2M2ZmZmZmZmZmMTY2MGUwMWI4MTUyNjAwNDAxNjAwMDYwNDA1MTgwODMwMzgxODY1YWZhMTU4MDE1NjEwMjBiNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjYwNDA1MTYzYTkwNTljYmI2MGUwMWI4MTUyNjAwMTYwMDE2MGEwMWIwMzgzODExNjYwMDQ4MzAxNTI2MDI0ODIwMTgzOTA1Mjg0MTY5MDYzYTkwNTljYmI5MDYwNDQwMTViNjAyMDYwNDA1MTgwODMwMzgxNjAwMDg3NWFmMTE1ODAxNTYxMDQ3NjU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAxZjE5NjAxZjgyMDExNjgyMDE4MDYwNDA1MjUwODEwMTkwNjEwM2E1OTE5MDYxMDk3ZTU2NWI4MDYwMDE2MDAxNjBhMDFiMDMxNjYzMzEzY2U1Njc2MDQwNTE4MTYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MDIwNjA0MDUxODA4MzAzODE4NjVhZmExNTgwMTU2MTA0ZDg1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA2MDQwNTEzZDYwMWYxOTYwMWY4MjAxMTY4MjAxODA2MDQwNTI1MDgxMDE5MDYxMDIzMzkxOTA2MTA5Yjk1NjViNjA0MDUxNjMwOTVlYTdiMzYwZTAxYjgxNTI2MDAxNjAwMTYwYTAxYjAzODM4MTE2NjAwNDgzMDE1MjYwMjQ4MjAxODM5MDUyODQxNjkwNjMwOTVlYTdiMzkwNjA0NDAxNjEwNDU3NTY1YjgwNjAwMTYwMDE2MGEwMWIwMzE2NjMxODE2MGRkZDYwNDA1MTgxNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYwMjA2MDQwNTE4MDgzMDM4MTg2NWFmYTE1ODAxNTYxMDU2ZjU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAxZjE5NjAxZjgyMDExNjgyMDE4MDYwNDA1MjUwODEwMTkwNjEwMjMzOTE5MDYxMDlhMDU2NWI2MDQwNTE2MDAxNjAwMTYwYTAxYjAzODM4MTE2NjAyNDgzMDE1MjYwNDQ4MjAxODM5MDUyNjAwMDkxODI5MTg2MTY5MDYwNjQwMTYwNDA4MDUxNjAxZjE5ODE4NDAzMDE4MTUyOTE4MTUyNjAyMDgyMDE4MDUxNjAwMTYwMDE2MGUwMWIwMzE2NjNhOTA1OWNiYjYwZTAxYjE3OTA1MjUxNjEwNWVkOTE5MDYxMDlkYzU2NWI2MDAwNjA0MDUxODA4MzAzODE4NTVhZjQ5MTUwNTAzZDgwNjAwMDgxMTQ2MTA2Mjg1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTA2MmQ1NjViNjA2MDkxNTA1YjUwNTA1MDUwNTA1MDUwNTA1NjViNjA0MDUxNjM3MGEwODIzMTYwZTAxYjgxNTI2MDAxNjAwMTYwYTAxYjAzODI4MTE2NjAwNDgzMDE1MjgzMTY5MDYzNzBhMDgyMzE5MDYwMjQwMTYwMjA2MDQwNTE4MDgzMDM4MTg2NWFmYTE1ODAxNTYxMDY3ZDU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAxZjE5NjAxZjgyMDExNjgyMDE4MDYwNDA1MjUwODEwMTkwNjEwNmExOTE5MDYxMDlhMDU2NWI1MDUwNTA1NjViNjAwMDViODE4MTEwMTU2MTA2YTE1NzgyNjAwMTYwMDE2MGEwMWIwMzE2NjMwNmZkZGUwMzYwNDA1MTgxNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYwMDA2MDQwNTE4MDgzMDM4MTg2NWFmYTE1ODAxNTYxMDZlZjU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAwMDgyM2U2MDFmM2Q5MDgxMDE2MDFmMTkxNjgyMDE2MDQwNTI2MTA3MTc5MTkwODEwMTkwNjEwOGQxNTY1YjUwODA2MTA3MjI4MTYxMDlmODU2NWI5MTUwNTA2MTA2YTk1NjViODAzNTYwMDE2MDAxNjBhMDFiMDM4MTE2ODExNDYxMDc0MTU3NjAwMDgwZmQ1YjkxOTA1MDU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTA3NTg1NzYwMDA4MGZkNWI2MTA3NjE4MjYxMDcyYTU2NWI5MzkyNTA1MDUwNTY1YjYwMDA4MDYwMDA4MDYwODA4NTg3MDMxMjE1NjEwNzdlNTc2MDAwODBmZDViNjEwNzg3ODU2MTA3MmE1NjViOTM1MDYxMDc5NTYwMjA4NjAxNjEwNzJhNTY1YjkyNTA2MTA3YTM2MDQwODYwMTYxMDcyYTU2NWI5Mzk2OTI5NTUwOTI5MzYwNjAwMTM1OTI1MDUwNTY1YjYwMDA4MDYwMDA2MDYwODQ4NjAzMTIxNTYxMDdjODU3NjAwMDgwZmQ1YjYxMDdkMTg0NjEwNzJhNTY1YjkyNTA2MTA3ZGY2MDIwODUwMTYxMDcyYTU2NWI=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwBoQ7JMGTxLSWpwCYkmByNIUlAbDa1lUnUuL8E9hrnweq1RPB+jsB5UfazyiirmQKGgsIq7bkrQYQ6+LCTyIPCgkI77XkrQYQkB0SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjvteStBhCWHRICGAISAhgDGKq4szIiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIB9gkSAxiJDSLuCTkxNTA2MDQwODQwMTM1OTA1MDkyNTA5MjUwOTI1NjViNjAwMDgwNjAwMDYwNjA4NDg2MDMxMjE1NjEwODA0NTc2MDAwODBmZDViNjEwODBkODQ2MTA3MmE1NjViOTI1MDYxMDgxYjYwMjA4NTAxNjEwNzJhNTY1YjkxNTA2MTA4Mjk2MDQwODUwMTYxMDcyYTU2NWI5MDUwOTI1MDkyNTA5MjU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMDg0NTU3NjAwMDgwZmQ1YjYxMDg0ZTgzNjEwNzJhNTY1YjkxNTA2MTA4NWM2MDIwODQwMTYxMDcyYTU2NWI5MDUwOTI1MDkyOTA1MDU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMDg3ODU3NjAwMDgwZmQ1YjYxMDg4MTgzNjEwNzJhNTY1Yjk0NjAyMDkzOTA5MzAxMzU5MzUwNTA1MDU2NWI2MzRlNDg3YjcxNjBlMDFiNjAwMDUyNjA0MTYwMDQ1MjYwMjQ2MDAwZmQ1YjYwMDA1YjgzODExMDE1NjEwOGMwNTc4MTgxMDE1MTgzODIwMTUyNjAyMDAxNjEwOGE4NTY1YjgzODExMTE1NjEwM2E1NTc1MDUwNjAwMDkxMDE1MjU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTA4ZTM1NzYwMDA4MGZkNWI4MTUxNjdmZmZmZmZmZmZmZmZmZmZmODA4MjExMTU2MTA4ZmI1NzYwMDA4MGZkNWI4MTg0MDE5MTUwODQ2MDFmODMwMTEyNjEwOTBmNTc2MDAwODBmZDViODE1MTgxODExMTE1NjEwOTIxNTc2MTA5MjE2MTA4OGY1NjViNjA0MDUxNjAxZjgyMDE2MDFmMTk5MDgxMTY2MDNmMDExNjgxMDE5MDgzODIxMTgxODMxMDE3MTU2MTA5NDk1NzYxMDk0OTYxMDg4ZjU2NWI4MTYwNDA1MjgyODE1Mjg3NjAyMDg0ODcwMTAxMTExNTYxMDk2MjU3NjAwMDgwZmQ1YjYxMDk3MzgzNjAyMDgzMDE2MDIwODgwMTYxMDhhNTU2NWI5Nzk2NTA1MDUwNTA1MDUwNTA1NjViNjAwMDYwMjA4Mjg0MDMxMjE1NjEwOTkwNTc2MDAwODBmZDViODE1MTgwMTUxNTgxMTQ2MTA3NjE1NzYwMDA4MGZkNWI2MDAwNjAyMDgyODQwMzEyMTU2MTA5YjI1NzYwMDA4MGZkNWI1MDUxOTE5MDUwNTY1YjYwMDA2MDIwODI4NDAzMTIxNTYxMDljYjU3NjAwMDgwZmQ1YjgxNTE2MGZmODExNjgxMTQ2MTA3NjE1NzYwMDA4MGZkNWI2MDAwODI1MTYxMDllZTgxODQ2MDIwODcwMTYxMDhhNTU2NWI5MTkwOTEwMTkyOTE1MDUwNTY1YjYwMDA2MDAwMTk4MjE0MTU2MTBhMWE1NzYzNGU0ODdiNzE2MGUwMWI2MDAwNTI2MDExNjAwNDUyNjAyNDYwMDBmZDViNTA2MDAxMDE5MDU2ZmVhMjY0Njk3MDY2NzM1ODIyMTIyMDkzZGI3ZDJiZGQwOTYyNTBhZGQ4ZWZlNmNjOWJhNGExZjdjZjEzOGQ0MTBiNTQ0ODlmNmFlYmY0NDI5NmRmM2Y2NDczNmY2YzYzNDMwMDA4MGIwMDMz","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwONT3TUEDND0Jc64eyPqVOxXo0X9/1GVXkmN8eAIRm28og5YEnFzt9BQ8ZtUbyy3tGgwIq7bkrQYQo5n30AIiDwoJCO+15K0GEJYdEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjwteStBhCYHRICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjgESCwishL+xBhD4oqRNGm0KIhIgkACRM3ImpDnVvAwwnSfvUpRSCmTKQEpKe7/eqRrkMSYKIzohAk1qsli+HKwv+LZ7Ncon2dQjRiPV2m13rbgrPgfzLKjfCiISIHMG7/SbAv3puBQcy5nuRaPDIf7OfFbwijZgiXVjiNEKIgxIZWxsbyBXb3JsZCEqADIA","b64Record":"CiUIFhoDGIoNKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAcdsSA4/Xqh+JB2gFjgSnFhFp92+IniAqHtkBQR8uST5mwasHoBmO2wK9pKtobvA4aCwistuStBhC7gvZYIg8KCQjwteStBhCYHRICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgA="},{"b64Body":"Cg8KCQjwteStBhCcHRICGAISAhgDGMr5hy0iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBwAEKAxiKDSK4ATYwODA2MDQwNTIzNDgwMTU2MDBmNTc2MDAwODBmZDViNTA2MDNmODA2MDFkNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyNjAwMDgwZmRmZWEyNjQ2OTcwNjY3MzU4MjIxMjIwMWY2ZjM3YTU0ZjBkM2I2NGE1MDQ4MjQ3NDYyYjhmZjk4OTJlYTkyMjJkNWRiMjBhZDU0NGVjYWU2NTU2MWRiYTY0NzM2ZjZjNjM0MzAwMDgwYzAwMzM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwjDZOafIfiFtesRsFa/Ru4hWeokG+zRgHJyVFcaAb/9gn3xpnxqJROlXBhGG2Idf1GgwIrLbkrQYQs7i/2gIiDwoJCPC15K0GEJwdEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjxteStBhCeHRICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGIkNGiISIOYkNdhzI5FVfd5QcmmgOeHWjf39jdE5s1CzeSyRudn1IJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"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"},{"b64Body":"Cg8KCQjxteStBhCgHRICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGIoNGiISIOYkNdhzI5FVfd5QcmmgOeHWjf39jdE5s1CzeSyRudn1IJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGIwNKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAMFMdDB9ExeGeoSsFJZ6I/mAUK+Qu4sBKK++Ls5uuPYcxH89ATMmdQthDFPBkq0gsaDAittuStBhDD/KjHAiIPCgkI8bXkrQYQoB0SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQvMCCgMYjA0SP2CAYEBSYACA/f6iZGlwZnNYIhIgH283pU8NO2SlBIJHRiuP+YkuqSItXbIK1UTsrmVWHbpkc29sY0MACAwAMyKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAowJoMOgMYjA1KFgoUAAAAAAAAAAAAAAAAAAAAAAAABoxyBwoDGIwNEAFSFgoJCgIYAhD/ssUNCgkKAhhiEICzxQ0="},{"b64Body":"Cg8KCQjyteStBhCrHRICGAISAhgDGOC2iyAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGIUNEgMYiA0=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwN+L8wHtUP4Vfr9MgL2ZuTp8PKqWlQFzEryiQKIwlgNiiJ1pSh894H0c5HH/AiFVzGgwIrrbkrQYQu4L80AIiDwoJCPK15K0GEKsdEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjzteStBhCxHRICGAISAhgDGOC2iyAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGIYNEgMYiA0=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwIgMAuXzekcZZ+arpgbD/2KA6YXC2au4zfQxc3nPVEWNZDrWC5VMaJCxFfasP/2S/GgsIr7bkrQYQg/7rdSIPCgkI87XkrQYQsR0SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjzteStBhC3HRICGAISAhgDGOC2iyAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGIsNEgMYiA0=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw39VwIJniDks3hUGkaBJuDRzD5uWHsJ2yRJ7cxtWWrGxqwyMvD6ys75QjjJ1GfXE6GgwIr7bkrQYQq4rr2gIiDwoJCPO15K0GELcdEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQj0teStBhC9HRICGAISAhgDGOC2iyAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGIwNEgMYiA0=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw46yJaUzENsVaXstfnC5ASlv3PyqbB/Qv3bt5xrbLiF6aMTre/ARCs86BlfPViTu6GgsIsLbkrQYQm4f1fiIPCgkI9LXkrQYQvR0SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"ChAKCQj0teStBhC/HRIDGIUNEgIYAxjrnzYiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjnIZEhcKAxiIDRIHCgMYhw0QJxIHCgMYiw0QKA==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwxWdyrrOR6uZqRc4Gm8EbL0Mi9gBO25zjhFUkKqoQ5yAMm2Yy48L0qT5F/RpK54faGgwIsLbkrQYQ+/ys5AIiEAoJCPS15K0GEL8dEgMYhQ0qIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMOufNlI1CggKAhgDEPDjBAoICgIYYhDS/FIKCQoDGKAGEMqvCgoJCgMYoQYQyq8KCgkKAxiFDRDVv2xaFwoDGIgNEgcKAxiHDRAnEgcKAxiLDRAo"},{"b64Body":"ChAKCQj1teStBhDBHRIDGIUNEgIYAxjAv+0hIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46bwoDGIsNEMCEPSJk4fIcZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABosAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFA==","b64Record":"CiUIFiIDGIsNKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjD2Sqdx6EgXESMoyeb4xJXSyk418uQU//lqi7Zk7x+0B8eaq9/4TUuhYmuF9LO7fsgaDAixtuStBhDLvMCIASIQCgkI9bXkrQYQwR0SAxiFDSogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wgOaKGzqfBQoDGIsNIoACAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAACAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACiA6jAykAMKAxiIDRKAAgAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAgAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaIIxb4eXr7H1b0U9xQn0ehPPdAxTA97IpHlsgCsjHw7klGiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGixogAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABosiIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUUhcKCQoCGGIQgMyVNgoKCgMYhQ0Q/8uVNg=="},{"b64Body":"ChIKCQj1teStBhDBHRIDGIUNIAGCAxMaEQoDGIgNEgMYiw0aAxiLDSAU","b64Record":"CgIIFhIwW5aIDNCizJ3uJlnUDaHCPugjGrfJSygJLYX+tmLoPFk36zsNjcR8qme01aNuxaDlGgwIsbbkrQYQzLzAiAEiEgoJCPW15K0GEMEdEgMYhQ0gATqSAQoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASji/SpQlsI5YlxhjcZeAAAAAAAAAAAAAAAAAAAAAAAABogJXqezAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABosAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFGoDGIsNUgB6DAixtuStBhDLvMCIAQ=="},{"b64Body":"Cg8KCQj1teStBhDDHRICGAISAhgDGOCssQMiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjqQAQoDGIsNEKCNBiKEARXay+oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABowAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQ==","b64Record":"CiUIFiIDGIsNKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCcEJ3pX7fG9h1QyS1qCOlHlErxfOnEkEIwxvecZRQ//1QxeV1x8wwuuh30+8Kw1cUaDAixtuStBhCzv9ftAiIPCgkI9bXkrQYQwx0SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCA19oCOp8FCgMYiw0igAIAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIACAAAAAAAAAgAAAAAAAAAAQAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKIDxBDKQAwoDGIgNEoACAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAgAAAAAAAAIAAAAAAAAAAEAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABog3fJSrRviyJtpwrBo/DeNqpUrp/FjxKEWKPVaTfUjs+8aIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaLGiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGjCIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVSFgoJCgIYAhD/rbUFCgkKAhhiEICutQU="},{"b64Body":"ChEKCQj1teStBhDDHRICGAIgAXIbEhkKAxiIDRIHCgMYjA0QChIJCgMYiw0QCRgB","b64Record":"CgIIFhIwwJBkBRa4QmbsrC2IXVmXpUoprGv17Kjl7x8tZ5rs6vh53OAmx8phBOtEigjJHAVwGgwIsbbkrQYQtL/X7QIiEQoJCPW15K0GEMMdEgIYAiABOrEBCgMY5wISIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKIVuUKCjBGJ8YY3GXgAAAAAAAAAAAAAAAAAAAAAAAAaII7hy3QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABowAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABWoDGIsNUgBaFwoDGIgNEgcKAxiLDRAJEgcKAxiMDRAKegwIsbbkrQYQs7/X7QI="},{"b64Body":"ChAKCQj2teStBhDFHRIDGIUNEgIYAxjgrLEDIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46kAEKAxiLDRCgjQYihAEV2svqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABogAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGiwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU=","b64Record":"CiUIFiIDGIsNKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDz+2N9gr1FRVPoskgio2j1djlPV0RXREF5dEsSJvS2bc/FUqx/OoDV3gZBh0NURckaCwiytuStBhCDlLt1IhAKCQj2teStBhDFHRIDGIUNKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCA19oCOp8FCgMYiw0igAIAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIACAAAAAAAAAgAAAAAAAAAAQAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKIDxBDKQAwoDGIgNEoACAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAgAAAAAAAAIAAAAAAAAAAEAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABog3fJSrRviyJtpwrBo/DeNqpUrp/FjxKEWKPVaTfUjs+8aIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaLGiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGjCIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVSFwoJCgIYYhCArrUFCgoKAxiFDRD/rbUF"},{"b64Body":"ChIKCQj2teStBhDFHRIDGIUNIAFyGxIZCgMYiA0SBwoDGIwNEAoSCQoDGIsNEAkYAQ==","b64Record":"CgIIFhIwA0s1OVdu6UYf3GkC3R2B3j8Wp7WX5qfUzem9c3SMOpvF26lp31PDt14AvsmeEJlQGgsIsrbkrQYQhJS7dSISCgkI9rXkrQYQxR0SAxiFDSABOrEBCgMY5wISIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKIVuUKCjBGJ8YY3GXgAAAAAAAAAAAAAAAAAAAAAAAAaII7hy3QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABowAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABWoDGIsNUgBaFwoDGIgNEgcKAxiLDRAJEgcKAxiMDRAKegsIsrbkrQYQg5S7dQ=="}]},"transferErc20TokenFromErc721TokenFails":{"placeholderNum":1677,"encodedItems":[{"b64Body":"Cg8KCQj8teStBhCIHhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIFCRgk3H0AvXmKDJ0oPUQz8K4khlh4TAPkipmjWe9WD8EICAhP6m3uERSgUIgM7aAw==","b64Record":"CiUIFhIDGI4NKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAafXKc+KZbkbXozx3zIRC66YSKI85aUnXBw2tEEsDmsX+5fhVXUTPCu81xDZN2E0IaCwi4tuStBhCjkc8DIg8KCQj8teStBhCIHhICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUh8KDQoCGAIQ//+H/M28wyMKDgoDGI4NEICAiPzNvMMj"},{"b64Body":"Cg8KCQj8teStBhCKHhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISINL0lHWJlIywiEig3u1dhCilXBckyI+atfqr15G6zDbrEICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGI8NKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAEQQ6BRwqBXL46128dm6BoO4Ud3RIaQ0js5qmSY0gUYUwVzRvQ7xVeGO1vqN2JaCQaDAi4tuStBhDL/deEAiIPCgkI/LXkrQYQih4SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxiPDRCAqNa5Bw=="},{"b64Body":"Cg8KCQj9teStBhCMHhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIPGdGPU5MoTd/sRNmq5PNSpcdlSOjzyjdiCVLKRGI4bFEICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGJANKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAXZTbUFMLQjvOBNrzV49VawQFGe1YZ5CprYKVTQwBVYA5MZ/A6HK2ec9UEDAAvmoQaCwi5tuStBhD7sI8NIg8KCQj9teStBhCMHhICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUhkKCgoCGAIQ/6fWuQcKCwoDGJANEICo1rkH"},{"b64Body":"Cg8KCQj9teStBhCOHhICGAISAhgDGMXCtfsCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAXoKEG5vbkZ1bmdpYmxlVG9rZW4SCEhQSFJUSkNJKgMYkA0yIhIgMBr/cl3TXoUtZSB6Ia0yw+xHsdnhfhZkF4g6TW4zIdZSIhIgMBr/cl3TXoUtZSB6Ia0yw+xHsdnhfhZkF4g6TW4zIdZqDAi5hL+xBhDQ9eH4AYgBAQ==","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGJENEjAlDYHCxQVh7GZSv2gAtBU6ODXq2U589/GKbY6MVTe2aFIUf8LX4MACDwdEdFBp2NMaDAi5tuStBhDrsbOOAiIPCgkI/bXkrQYQjh4SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAcgoKAxiRDRIDGJAN"},{"b64Body":"Cg8KCQj+teStBhCUHhICGAISAhgDGNPtlwgiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjqoCDAoDGJENGgVGSVJTVA==","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1gBcgEBEjCW30yyJv5OYyzOk0afJeP/e+gTau2nzEjDkfFlOk4otc9tsnVEY/Svg1OBTxoQmWAaCwi6tuStBhCz9I8WIg8KCQj+teStBhCUHhICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgBaEgoDGJENGgsKAhgAEgMYkA0YAQ=="},{"b64Body":"Cg8KCQj+teStBhCcHhICGAISAhgDGOC2iyAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGI4NEgMYkQ0=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwUWoHLVzc8VbBxrc1YG2H4v/KfHSxGlo1IM4tAUBod0Rbn5qm/X86Uxk8S5ePpngHGgwIurbkrQYQg431lwIiDwoJCP615K0GEJweEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQj/teStBhCiHhICGAISAhgDGOC2iyAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGI8NEgMYkQ0=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwXQiFuJ0J/uuy3K4xbQRY9QMMDe8Msm3vm5AllH1tyxNzd2ReSce1At0jsZo8ZEe3GgsIu7bkrQYQ25P/HyIPCgkI/7XkrQYQoh4SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"ChAKCQj/teStBhCkHhIDGI4NEgIYAxiNxjwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjnIVEhMKAxiRDRoMCgMYkA0SAxiODRgB","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwC/Q06bFtzmq+K8yae2ZSPI6HgK6uEUE7Pd0NriMDeyEeiK9JMnS3mvxXUDrzxB4qGgwIu7bkrQYQs+qJoQIiEAoJCP+15K0GEKQeEgMYjg0qIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMI3GPFI1CggKAhgDEOLUBAoICgIYYhDgkl0KCQoDGKAGEKzSCwoJCgMYoQYQrNILCgkKAxiODRCZjHlaEwoDGJENGgwKAxiQDRIDGI4NGAE="},{"b64Body":"Cg8KCQiAtuStBhCmHhICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjgESCwi8hL+xBhDIoMAcGm0KIhIgHTQzytvn27SNGmo9arjO0FJyb+Ql9sm7iRC/somsd9oKIzohAlYackn/9eGbxF+NJMzfpKonRTtBTy3i1S2v1rAu4uFZCiISINxlNrVKK0RA3xTWRirpP8lSILHV0ntdGdv96wZgU3J+IgxIZWxsbyBXb3JsZCEqADIA","b64Record":"CiUIFhoDGJINKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjABjSqQQxP1xOQ6vsTbMh8mGZRB5mSrAPv+YHIN0aQvcLJCxwX3vBn7FP81szUSQ2waCwi8tuStBhC7qs8pIg8KCQiAtuStBhCmHhICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgA="},{"b64Body":"Cg8KCQiAtuStBhCqHhICGAISAhgDGIydjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxiSDSKAIDYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMGE1NzgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDBjZjU3NjAwMDM1NjBlMDFjODA2M2JlYWJhY2M4MTE2MTAwOGM1NzgwNjNlNGRjMmFhNDExNjEwMDY2NTc4MDYzZTRkYzJhYTQxNDYxMDE4MTU3ODA2M2Y0Yjc5ZGE1MTQ2MTAxOTQ1NzgwNjNmNzg4OGFlYzE0NjEwMWE3NTc4MDYzZjc5Yzc1NjgxNDYxMDFiYTU3NjAwMDgwZmQ1YjgwNjNiZWFiYWNjODE0NjEwMTQ4NTc4MDYzZDQ0OWE4MzIxNDYxMDE1YjU3ODA2M2UxZjIxYzY3MTQ2MTAxNmU1NzYwMDA4MGZkNWI4MDYzMDE5ODQ4OTIxNDYxMDBkNDU3ODA2MzE1ZGFjYmVhMTQ2MTAwZTk1NzgwNjMxZjg0YjJiNzE0NjEwMGZjNTc4MDYzOTI3ZGExMDUxNDYxMDEwZjU3ODA2Mzk4ZGNhNWJlMTQ2MTAxMjI1NzgwNjNhODZlMzU3NjE0NjEwMTM1NTc1YjYwMDA4MGZkNWI2MTAwZTc2MTAwZTIzNjYwMDQ2MTA3NDY1NjViNjEwMWNkNTY1YjAwNWI2MTAwZTc2MTAwZjczNjYwMDQ2MTA3Njg1NjViNjEwMjM3NTY1YjYxMDBlNzYxMDEwYTM2NjAwNDYxMDdiMzU2NWI2MTAyYjk1NjViNjEwMGU3NjEwMTFkMzY2MDA0NjEwN2VmNTY1YjYxMDMzMzU2NWI2MTAwZTc2MTAxMzAzNjYwMDQ2MTA3Njg1NjViNjEwM2FiNTY1YjYxMDBlNzYxMDE0MzM2NjAwNDYxMDc0NjU2NWI2MTAzZTg1NjViNjEwMGU3NjEwMTU2MzY2MDA0NjEwN2IzNTY1YjYxMDQyNjU2NWI2MTAwZTc2MTAxNjkzNjYwMDQ2MTA3NDY1NjViNjEwNDlhNTY1YjYxMDBlNzYxMDE3YzM2NjAwNDYxMDdiMzU2NWI2MTA0ZmM1NjViNjEwMGU3NjEwMThmMzY2MDA0NjEwNzQ2NTY1YjYxMDUzMTU2NWI2MTAwZTc2MTAxYTIzNjYwMDQ2MTA3YjM1NjViNjEwNTkzNTY1YjYxMDBlNzYxMDFiNTM2NjAwNDYxMDgzMjU2NWI2MTA2Mzc1NjViNjEwMGU3NjEwMWM4MzY2MDA0NjEwODY1NTY1YjYxMDZhNjU2NWI4MDYwMDE2MDAxNjBhMDFiMDMxNjYzMDZmZGRlMDM2MDQwNTE4MTYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MDAwNjA0MDUxODA4MzAzODE4NjVhZmExNTgwMTU2MTAyMGI1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA2MDQwNTEzZDYwMDA4MjNlNjAxZjNkOTA4MTAxNjAxZjE5MTY4MjAxNjA0MDUyNjEwMjMzOTE5MDgxMDE5MDYxMDhkMTU2NWI1MDUwNTY1YjYwNDA1MTYzMjNiODcyZGQ2MGUwMWI4MTUyNjAwMTYwMDE2MGEwMWIwMzg0ODExNjYwMDQ4MzAxNTI4MzgxMTY2MDI0ODMwMTUyNjA0NDgyMDE4MzkwNTI4NTE2OTA2MzIzYjg3MmRkOTA2MDY0MDE2MDIwNjA0MDUxODA4MzAzODE2MDAwODc1YWYxMTU4MDE1NjEwMjhlNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTAyYjI5MTkwNjEwOTdlNTY1YjUwNTA1MDUwNTA1NjViNjA0MDUxNjNhOTA1OWNiYjYwZTAxYjgxNTI2MDAxNjAwMTYwYTAxYjAzODM4MTE2NjAwNDgzMDE1MjYwMjQ4MjAxODM5MDUyODQxNjkwNjNhOTA1OWNiYjkwNjA0NDAxNWI2MDIwNjA0MDUxODA4MzAzODE2MDAwODc1YWYxMTU4MDE1NjEwMzA5NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTAzMmQ5MTkwNjEwOTdlNTY1YjUwNjAwMDgwZmQ1YjYwNDA1MTYzNmViMTc2OWY2MGUxMWI4MTUyNjAwMTYwMDE2MGEwMWIwMzgzODExNjYwMDQ4MzAxNTI4MjgxMTY2MDI0ODMwMTUyODQxNjkwNjNkZDYyZWQzZTkwNjA0NDAxNjAyMDYwNDA1MTgwODMwMzgxODY1YWZhMTU4MDE1NjEwMzgxNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTAzYTU5MTkwNjEwOWEwNTY1YjUwNTA1MDUwNTY1YjYwNDA1MTYzMjNiODcyZGQ2MGUwMWI4MTUyNjAwMTYwMDE2MGEwMWIwMzg0ODExNjYwMDQ4MzAxNTI4MzgxMTY2MDI0ODMwMTUyNjA0NDgyMDE4MzkwNTI4NTE2OTA2MzIzYjg3MmRkOTA2MDY0MDE2MTAyZWE1NjViODA2MDAxNjAwMTYwYTAxYjAzMTY2Mzk1ZDg5YjQxNjA0MDUxODE2M2ZmZmZmZmZmMTY2MGUwMWI4MTUyNjAwNDAxNjAwMDYwNDA1MTgwODMwMzgxODY1YWZhMTU4MDE1NjEwMjBiNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjYwNDA1MTYzYTkwNTljYmI2MGUwMWI4MTUyNjAwMTYwMDE2MGEwMWIwMzgzODExNjYwMDQ4MzAxNTI2MDI0ODIwMTgzOTA1Mjg0MTY5MDYzYTkwNTljYmI5MDYwNDQwMTViNjAyMDYwNDA1MTgwODMwMzgxNjAwMDg3NWFmMTE1ODAxNTYxMDQ3NjU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAxZjE5NjAxZjgyMDExNjgyMDE4MDYwNDA1MjUwODEwMTkwNjEwM2E1OTE5MDYxMDk3ZTU2NWI4MDYwMDE2MDAxNjBhMDFiMDMxNjYzMzEzY2U1Njc2MDQwNTE4MTYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MDIwNjA0MDUxODA4MzAzODE4NjVhZmExNTgwMTU2MTA0ZDg1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA2MDQwNTEzZDYwMWYxOTYwMWY4MjAxMTY4MjAxODA2MDQwNTI1MDgxMDE5MDYxMDIzMzkxOTA2MTA5Yjk1NjViNjA0MDUxNjMwOTVlYTdiMzYwZTAxYjgxNTI2MDAxNjAwMTYwYTAxYjAzODM4MTE2NjAwNDgzMDE1MjYwMjQ4MjAxODM5MDUyODQxNjkwNjMwOTVlYTdiMzkwNjA0NDAxNjEwNDU3NTY1YjgwNjAwMTYwMDE2MGEwMWIwMzE2NjMxODE2MGRkZDYwNDA1MTgxNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYwMjA2MDQwNTE4MDgzMDM4MTg2NWFmYTE1ODAxNTYxMDU2ZjU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAxZjE5NjAxZjgyMDExNjgyMDE4MDYwNDA1MjUwODEwMTkwNjEwMjMzOTE5MDYxMDlhMDU2NWI2MDQwNTE2MDAxNjAwMTYwYTAxYjAzODM4MTE2NjAyNDgzMDE1MjYwNDQ4MjAxODM5MDUyNjAwMDkxODI5MTg2MTY5MDYwNjQwMTYwNDA4MDUxNjAxZjE5ODE4NDAzMDE4MTUyOTE4MTUyNjAyMDgyMDE4MDUxNjAwMTYwMDE2MGUwMWIwMzE2NjNhOTA1OWNiYjYwZTAxYjE3OTA1MjUxNjEwNWVkOTE5MDYxMDlkYzU2NWI2MDAwNjA0MDUxODA4MzAzODE4NTVhZjQ5MTUwNTAzZDgwNjAwMDgxMTQ2MTA2Mjg1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTA2MmQ1NjViNjA2MDkxNTA1YjUwNTA1MDUwNTA1MDUwNTA1NjViNjA0MDUxNjM3MGEwODIzMTYwZTAxYjgxNTI2MDAxNjAwMTYwYTAxYjAzODI4MTE2NjAwNDgzMDE1MjgzMTY5MDYzNzBhMDgyMzE5MDYwMjQwMTYwMjA2MDQwNTE4MDgzMDM4MTg2NWFmYTE1ODAxNTYxMDY3ZDU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAxZjE5NjAxZjgyMDExNjgyMDE4MDYwNDA1MjUwODEwMTkwNjEwNmExOTE5MDYxMDlhMDU2NWI1MDUwNTA1NjViNjAwMDViODE4MTEwMTU2MTA2YTE1NzgyNjAwMTYwMDE2MGEwMWIwMzE2NjMwNmZkZGUwMzYwNDA1MTgxNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYwMDA2MDQwNTE4MDgzMDM4MTg2NWFmYTE1ODAxNTYxMDZlZjU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAwMDgyM2U2MDFmM2Q5MDgxMDE2MDFmMTkxNjgyMDE2MDQwNTI2MTA3MTc5MTkwODEwMTkwNjEwOGQxNTY1YjUwODA2MTA3MjI4MTYxMDlmODU2NWI5MTUwNTA2MTA2YTk1NjViODAzNTYwMDE2MDAxNjBhMDFiMDM4MTE2ODExNDYxMDc0MTU3NjAwMDgwZmQ1YjkxOTA1MDU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTA3NTg1NzYwMDA4MGZkNWI2MTA3NjE4MjYxMDcyYTU2NWI5MzkyNTA1MDUwNTY1YjYwMDA4MDYwMDA4MDYwODA4NTg3MDMxMjE1NjEwNzdlNTc2MDAwODBmZDViNjEwNzg3ODU2MTA3MmE1NjViOTM1MDYxMDc5NTYwMjA4NjAxNjEwNzJhNTY1YjkyNTA2MTA3YTM2MDQwODYwMTYxMDcyYTU2NWI5Mzk2OTI5NTUwOTI5MzYwNjAwMTM1OTI1MDUwNTY1YjYwMDA4MDYwMDA2MDYwODQ4NjAzMTIxNTYxMDdjODU3NjAwMDgwZmQ1YjYxMDdkMTg0NjEwNzJhNTY1YjkyNTA2MTA3ZGY2MDIwODUwMTYxMDcyYTU2NWI=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw99x3k9CNv5LRfUY4rzMm0TIxP9VKTqk0/pp1/VkZgYIDEG6r5/4/OJh85Ci+0qRMGgwIvLbkrQYQ+86WqwIiDwoJCIC25K0GEKoeEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQiBtuStBhCwHhICGAISAhgDGKq4szIiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIB9gkSAxiSDSLuCTkxNTA2MDQwODQwMTM1OTA1MDkyNTA5MjUwOTI1NjViNjAwMDgwNjAwMDYwNjA4NDg2MDMxMjE1NjEwODA0NTc2MDAwODBmZDViNjEwODBkODQ2MTA3MmE1NjViOTI1MDYxMDgxYjYwMjA4NTAxNjEwNzJhNTY1YjkxNTA2MTA4Mjk2MDQwODUwMTYxMDcyYTU2NWI5MDUwOTI1MDkyNTA5MjU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMDg0NTU3NjAwMDgwZmQ1YjYxMDg0ZTgzNjEwNzJhNTY1YjkxNTA2MTA4NWM2MDIwODQwMTYxMDcyYTU2NWI5MDUwOTI1MDkyOTA1MDU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMDg3ODU3NjAwMDgwZmQ1YjYxMDg4MTgzNjEwNzJhNTY1Yjk0NjAyMDkzOTA5MzAxMzU5MzUwNTA1MDU2NWI2MzRlNDg3YjcxNjBlMDFiNjAwMDUyNjA0MTYwMDQ1MjYwMjQ2MDAwZmQ1YjYwMDA1YjgzODExMDE1NjEwOGMwNTc4MTgxMDE1MTgzODIwMTUyNjAyMDAxNjEwOGE4NTY1YjgzODExMTE1NjEwM2E1NTc1MDUwNjAwMDkxMDE1MjU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTA4ZTM1NzYwMDA4MGZkNWI4MTUxNjdmZmZmZmZmZmZmZmZmZmZmODA4MjExMTU2MTA4ZmI1NzYwMDA4MGZkNWI4MTg0MDE5MTUwODQ2MDFmODMwMTEyNjEwOTBmNTc2MDAwODBmZDViODE1MTgxODExMTE1NjEwOTIxNTc2MTA5MjE2MTA4OGY1NjViNjA0MDUxNjAxZjgyMDE2MDFmMTk5MDgxMTY2MDNmMDExNjgxMDE5MDgzODIxMTgxODMxMDE3MTU2MTA5NDk1NzYxMDk0OTYxMDg4ZjU2NWI4MTYwNDA1MjgyODE1Mjg3NjAyMDg0ODcwMTAxMTExNTYxMDk2MjU3NjAwMDgwZmQ1YjYxMDk3MzgzNjAyMDgzMDE2MDIwODgwMTYxMDhhNTU2NWI5Nzk2NTA1MDUwNTA1MDUwNTA1NjViNjAwMDYwMjA4Mjg0MDMxMjE1NjEwOTkwNTc2MDAwODBmZDViODE1MTgwMTUxNTgxMTQ2MTA3NjE1NzYwMDA4MGZkNWI2MDAwNjAyMDgyODQwMzEyMTU2MTA5YjI1NzYwMDA4MGZkNWI1MDUxOTE5MDUwNTY1YjYwMDA2MDIwODI4NDAzMTIxNTYxMDljYjU3NjAwMDgwZmQ1YjgxNTE2MGZmODExNjgxMTQ2MTA3NjE1NzYwMDA4MGZkNWI2MDAwODI1MTYxMDllZTgxODQ2MDIwODcwMTYxMDhhNTU2NWI5MTkwOTEwMTkyOTE1MDUwNTY1YjYwMDA2MDAwMTk4MjE0MTU2MTBhMWE1NzYzNGU0ODdiNzE2MGUwMWI2MDAwNTI2MDExNjAwNDUyNjAyNDYwMDBmZDViNTA2MDAxMDE5MDU2ZmVhMjY0Njk3MDY2NzM1ODIyMTIyMDkzZGI3ZDJiZGQwOTYyNTBhZGQ4ZWZlNmNjOWJhNGExZjdjZjEzOGQ0MTBiNTQ0ODlmNmFlYmY0NDI5NmRmM2Y2NDczNmY2YzYzNDMwMDA4MGIwMDMz","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwq5eiUW413ele7FP8StPtgJ2hS8fGtFKyjS41dA5IeFcCAHQcrRQcfdRf/GVN3mWLGgsIvbbkrQYQ4/+sMyIPCgkIgbbkrQYQsB4SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiBtuStBhCyHhICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGJINGiISIC4RV66rdtwrSeZEWkK/QrJ4YZfIiJVIV8do6qtlMCYVIJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"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"},{"b64Body":"ChAKCQiCtuStBhC0HhIDGI4NEgIYAxjAv+0hIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46bwoDGJMNEMCEPSJkvqusyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABo8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg==","b64Record":"CiUIISIDGJMNKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAUeGDxjtuXS3F5VnX0fJlA28yFiPu6gMuPKKgtWY1bMZoYKSNspFVFtrvkleVpqWAaCwi+tuStBhDThKA8IhAKCQiCtuStBhC0HhIDGI4NKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCZgOsgOggaAjB4KJ+ZO1IXCgkKAhhiELKA1kEKCgoDGI4NELGA1kE="}]},"ContractCreateNoncesExternalizationHappyPath":{"placeholderNum":1684,"encodedItems":[{"b64Body":"Cg8KCQiHtuStBhDTHhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloyCiISIHiYyBXfwKiucQrg0MlTTUBdpZKz30BXhKJy2U0LJp/FEIDQ28P0AkoFCIDO2gM=","b64Record":"CiUIFhIDGJUNKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDeQwq+9CoJ83ItyEOV/dej3yBiuC1niaSTLgaIqosuEJXKLLJ9mG/7DVfxVLcrXJ8aDAjDtuStBhCTtMymAyIPCgkIh7bkrQYQ0x4SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIbCgsKAhgCEP+ft4fpBQoMCgMYlQ0QgKC3h+kF"},{"b64Body":"Cg8KCQiItuStBhDVHhICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAjEhL+xBhCgnNO1ARptCiISIEp+netfP0UX1EYxJ/S3LaOjrfkd75U9en7nXSN6NR6GCiM6IQKhaI5sO4V+HyrKKRSMHiv3yKx08QIj3T7bhg6Yc2/V/QoiEiA+zXN7rUwCMzBhbeLAwcDZpvRiY/VnBPUnJzuQjcIBzyIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGJYNKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDeO0nF/EWxypx3cvqGUPOdb73EB8uT2hyzVTSlohqgmIAhSRtYjLrSiKpj8NvwcFQaDAjEtuStBhDrsKzLASIPCgkIiLbkrQYQ1R4SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiItuStBhDZHhICGAISAhgDGIydjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxiWDSKAIDYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYwMDA2MDQwNTE2MTAwMWY5MDYxMDFiNzU2NWI2MDQwNTE4MDkxMDM5MDYwMDBmMDgwMTU4MDE1NjEwMDNiNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwOTA4MDYwMDE4MTU0MDE4MDgyNTU4MDkxNTA1MDYwMDE5MDAzOTA2MDAwNTI2MDIwNjAwMDIwMDE2MDAwOTA5MTkwOTE5MDkxNjEwMTAwMGE4MTU0ODE3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjE5MTY5MDgzNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTYwMjE3OTA1NTUwNjAwMDYwNDA1MTYxMDBhYTkwNjEwMWI3NTY1YjYwNDA1MTgwOTEwMzkwNjAwMGYwODAxNTgwMTU2MTAwYzY1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA5MDgwNjAwMTgxNTQwMTgwODI1NTgwOTE1MDUwNjAwMTkwMDM5MDYwMDA1MjYwMjA2MDAwMjAwMTYwMDA5MDkxOTA5MTkwOTE2MTAxMDAwYTgxNTQ4MTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMTkxNjkwODM3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjAyMTc5MDU1NTA2MDAwNjA0MDUxNjEwMTM1OTA2MTAxYjc1NjViNjA0MDUxODA5MTAzOTA2MDAwZjA4MDE1ODAxNTYxMDE1MTU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDkwODA2MDAxODE1NDAxODA4MjU1ODA5MTUwNTA2MDAxOTAwMzkwNjAwMDUyNjAyMDYwMDAyMDAxNjAwMDkwOTE5MDkxOTA5MTYxMDEwMDBhODE1NDgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIxOTE2OTA4MzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2MDIxNzkwNTU1MDYxMDFjNDU2NWI2MTAxZGM4MDYxMGE2YjgzMzkwMTkwNTY1YjYxMDg5ODgwNjEwMWQzNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDA4ODU3NjAwMDM1NjBlMDFjODA2M2FlM2VhNTA4MTE2MTAwNWI1NzgwNjNhZTNlYTUwODE0NjEwMGVmNTc4MDYzYjY3OGMzOGExNDYxMDExZjU3ODA2M2QwMjY2OWFkMTQ2MTAxM2I1NzgwNjNkMDQzMjY1MjE0NjEwMTU3NTc2MTAwODg1NjViODA2MzA2ZGYxZDM0MTQ2MTAwOGQ1NzgwNjM1NmFkMGU4ODE0NjEwMGJkNTc4MDYzNWE1NWI1NzcxNDYxMDBkYjU3ODA2M2FkZDcwMmYwMTQ2MTAwZTU1NzViNjAwMDgwZmQ1YjYxMDBhNzYwMDQ4MDM2MDM4MTAxOTA2MTAwYTI5MTkwNjEwNTRiNTY1YjYxMDE3NTU2NWI2MDQwNTE2MTAwYjQ5MTkwNjEwNWI5NTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDBjNTYxMDFiYzU2NWI2MDQwNTE2MTAwZDI5MTkwNjEwNWUzNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDBlMzYxMDFjODU2NWIwMDViNjEwMGVkNjEwMjViNTY1YjAwNWI2MTAxMDk2MDA0ODAzNjAzODEwMTkwNjEwMTA0OTE5MDYxMDU0YjU2NWI2MTAyZWY1NjViNjA0MDUxNjEwMTE2OTE5MDYxMDViOTU2NWI2MDQwNTE4MDkxMDM5MGYzNWI2MTAxMzk2MDA0ODAzNjAzODEwMTkwNjEwMTM0OTE5MDYxMDU0YjU2NWI2MTAzMzc1NjViMDA1YjYxMDE1NTYwMDQ4MDM2MDM4MTAxOTA2MTAxNTA5MTkwNjEwNTRiNTY1YjYxMDQ1NjU2NWIwMDViNjEwMTVmNjEwNGY2NTY1YjYwNDA1MTYxMDE2YzkxOTA2MTA1ZTM1NjViNjA0MDUxODA5MTAzOTBmMzViNjAwMDgwODI4MTU0ODExMDYxMDE4YTU3NjEwMTg5NjEwNWZlNTY1YjViOTA2MDAwNTI2MDIwNjAwMDIwMDE2MDAwOTA1NDkwNjEwMTAwMGE5MDA0NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY5MDUwOTE5MDUwNTY1YjYwMDA4MDgwNTQ5MDUwOTA1MDkwNTY1YjYwMDA2MDQwNTE2MTAxZDY5MDYxMDUwMzU2NWI2MDQwNTE4MDkxMDM5MDYwMDBmMDgwMTU4MDE1NjEwMWYyNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwOTA1MDYwMDA4MTkwODA2MDAxODE1NDAxODA4MjU1ODA5MTUwNTA2MDAxOTAwMzkwNjAwMDUyNjAyMDYwMDAyMDAxNjAwMDkwOTE5MDkxOTA5MTYxMDEwMDBhODE1NDgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIxOTE2OTA4MzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2MDIxNzkwNTU1MDUwNTY1YjYwMDA2MDQwNTE2MTAyNjk5MDYxMDUwMzU2NWI2MDQwNTE4MDkxMDM5MDYwMDBmMDgwMTU4MDE1NjEwMjg1NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwOTA1MDYwMDA4MTkwODA2MDAxODE1NDAxODA4MjU1ODA5MTUwNTA2MDAxOTAwMzkwNjAwMDUyNjAyMDYwMDAyMDAxNjAwMDkwOTE5MDkxOTA5MTYxMDEwMDBhODE1NDgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIxOTE2OTA4MzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2MDIxNzkwNTU2MDAwODBmZDViNjAwMDYwMDE4MjgxNTQ4MTEwNjEwMzA1NTc2MTAzMDQ2MTA1ZmU1NjViNWI5MDYwMDA1MjYwMjA2MDAwMjAwMTYwMDA5MDU0OTA2MTAxMDAwYTkwMDQ3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjkwNTA5MTkwNTA1NjViNjAwMDgwODI4MTU0ODExMDYxMDM0YzU3NjEwMzRiNjEwNWZlNTY1YjViOTA2MDAwNTI2MDIwNjAwMDIwMDE2MDAwOTA1NDkwNjEwMTAwMGE5MDA0NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY5MDUwNjAwMDgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2M2MzNGMwNDFjNjA0MDUxODE2M2ZmZmZmZmZmMTY2MGUwMWI4MTUyNjAwNDAxNjAyMDYwNDA1MTgwODMwMzgxNjAwMDg3NWFmMTE1ODAxNTYxMDNjODU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAxZjE5NjAxZjgyMDExNjgyMDE4MDYwNDA1MjUwODEwMTkwNjEwM2VjOTE5MDYxMDY1OTU2NWI5MDUwNjAwMTgxOTA4MDYwMDE4MTU0MDE4MDgyNTU4MDkxNTA1MDYwMDE5MDAzOTA2MDAwNTI2MDIwNjAwMDIwMDE2MDAwOTA5MTkwOTE5MDkxNjEwMTAwMGE4MTU0ODE3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjE5MTY5MDgzNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTYwMjE3OTA1NTUwNTA1MDUwNTY1YjYwMDA4MDgyODE1NDgxMTA2MTA0NmI1NzYxMDQ2YTYxMDVmZTU2NWI1YjkwNjAwMDUyNjAyMDYwMDAyMDAxNjAwMDkwNTQ5MDYxMDEwMDBhOTAwNDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2OTA1MDgwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2Mzk3MTBkYmQ5NjA0MDUxODE2M2ZmZmZmZmZmMTY2MGUwMWI4MTUyNjAwNDAxNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg3ODAzYjE1ODAxNTYxMDRlMDU3NjAwMDgwZmQ1YjUwNWFmMTkyNTA1MDUwODAxNTYxMDRmMTU3NTA2MDAxNWI1MDUwNTA1NjViNjAwMDYwMDE4MDU0OTA1MDkwNTA5MDU2NWI2MTAxZGM4MDYxMDY4NzgzMzkwMTkwNTY1YjYwMDA4MGZkNWI2MDAwODE5MDUwOTE5MDUwNTY1YjYxMDUyODgxNjEwNTE1NTY1YjgxMTQ2MTA1MzM1NzYwMDA4MGZkNWI1MDU2NWI2MDAwODEzNTkwNTA2MTA1NDU4MTYxMDUxZjU2NWI5MjkxNTA1MDU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTA1NjE1NzYxMDU2MDYxMDUxMDU2NWI1YjYwMDA2MTA1NmY4NDgyODUwMTYxMDUzNjU2NWI5MTUwNTA5MjkxNTA1MDU2NWI2MDAwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIxNjkwNTA5MTkwNTA1NjViNjAwMDYxMDVhMzgyNjEwNTc4NTY1YjkwNTA5MTkwNTA1NjViNjEwNWIzODE2MTA1OTg1NjViODI1MjUwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDYxMDVjZTYwMDA4MzAxODQ2MTA1YWE1NjViOTI5MTUwNTA1NjViNjEwNWRkODE2MTA1MTU1NjViODI1MjUwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDYxMDVmODYwMDA4MzAxODQ2MTA1ZDQ1NjViOTI5MTUwNTA1NjViN2Y0ZTQ4N2I3MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjAwMDUyNjAzMjYwMDQ1MjYwMjQ2MDAwZmQ=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwZpLzcqtOkHvItI9B7jUDlcv3UaHr4BnJbsEmPWCTMaVyw7Xs7RQEMzSfX8A6hrDqGgwIxLbkrQYQm8C3sAMiDwoJCIi25K0GENkeEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQiJtuStBhDfHhICGAISAhgDGN29vDYiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBlhESAxiWDSKOETViNjEwNjM2ODE2MTA1OTg1NjViODExNDYxMDY0MTU3NjAwMDgwZmQ1YjUwNTY1YjYwMDA4MTUxOTA1MDYxMDY1MzgxNjEwNjJkNTY1YjkyOTE1MDUwNTY1YjYwMDA2MDIwODI4NDAzMTIxNTYxMDY2ZjU3NjEwNjZlNjEwNTEwNTY1YjViNjAwMDYxMDY3ZDg0ODI4NTAxNjEwNjQ0NTY1YjkxNTA1MDkyOTE1MDUwNTZmZTYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMDFiYzgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDAzNjU3NjAwMDM1NjBlMDFjODA2Mzk3MTBkYmQ5MTQ2MTAwM2I1NzgwNjNjMzRjMDQxYzE0NjEwMDQ1NTc1YjYwMDA4MGZkNWI2MTAwNDM2MTAwNjM1NjViMDA1YjYxMDA0ZDYxMDA5MjU2NWI2MDQwNTE2MTAwNWE5MTkwNjEwMTBmNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYwMDA2MDQwNTE2MTAwNzE5MDYxMDBjMjU2NWI2MDQwNTE4MDkxMDM5MDYwMDBmMDgwMTU4MDE1NjEwMDhkNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjYwMDA4MGZkNWI2MDAwNjA0MDUxNjEwMGEwOTA2MTAwYzI1NjViNjA0MDUxODA5MTAzOTA2MDAwZjA4MDE1ODAxNTYxMDBiYzU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDkwNTA5MDU2NWI2MDVjODA2MTAxMmI4MzM5MDE5MDU2NWI2MDAwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIxNjkwNTA5MTkwNTA1NjViNjAwMDYxMDBmOTgyNjEwMGNlNTY1YjkwNTA5MTkwNTA1NjViNjEwMTA5ODE2MTAwZWU1NjViODI1MjUwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDYxMDEyNDYwMDA4MzAxODQ2MTAxMDA1NjViOTI5MTUwNTA1NmZlNjA4MDYwNDA1MjM0ODAxNTYwMGY1NzYwMDA4MGZkNWI1MDYwM2Y4MDYwMWQ2MDAwMzk2MDAwZjNmZTYwODA2MDQwNTI2MDAwODBmZGZlYTI2NDY5NzA2NjczNTgyMjEyMjBlMzRmMjZjNjM5YjEyMmMyOGJlZGIzOTM0Y2RkZWQ3NjA2MTBkOGQ4NTJlNTViZGI2MGM4OTcwYmRhMGRlOWU2NjQ3MzZmNmM2MzQzMDAwODEwMDAzM2EyNjQ2OTcwNjY3MzU4MjIxMjIwNjNhMzliNDk0NjEzYzA4YzQ1MjA3ZDk0YTRlYmIxMTg1ZGE4NzcxNjg3MmQ0M2QyNmNiMmU1ZDRlYzFiYzY5MjY0NzM2ZjZjNjM0MzAwMDgxMDAwMzNhMjY0Njk3MDY2NzM1ODIyMTIyMDJlYjc1MzIzMTk0MjdkZDAwZWY1Njg0YzYzOWMyZmY1OWNkOTZkN2E2ZjY0MTUyMTEzZTgxMWNlOWY4MzE2MzM2NDczNmY2YzYzNDMwMDA4MTAwMDMzNjA4MDYwNDA1MjM0ODAxNTYxMDAxMDU3NjAwMDgwZmQ1YjUwNjEwMWJjODA2MTAwMjA2MDAwMzk2MDAwZjNmZTYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYwMDQzNjEwNjEwMDM2NTc2MDAwMzU2MGUwMWM4MDYzOTcxMGRiZDkxNDYxMDAzYjU3ODA2M2MzNGMwNDFjMTQ2MTAwNDU1NzViNjAwMDgwZmQ1YjYxMDA0MzYxMDA2MzU2NWIwMDViNjEwMDRkNjEwMDkyNTY1YjYwNDA1MTYxMDA1YTkxOTA2MTAxMGY1NjViNjA0MDUxODA5MTAzOTBmMzViNjAwMDYwNDA1MTYxMDA3MTkwNjEwMGMyNTY1YjYwNDA1MTgwOTEwMzkwNjAwMGYwODAxNTgwMTU2MTAwOGQ1NzNkNjAwMDgwM2UzZDYwMDBmZDViNjAwMDgwZmQ1YjYwMDA2MDQwNTE2MTAwYTA5MDYxMDBjMjU2NWI2MDQwNTE4MDkxMDM5MDYwMDBmMDgwMTU4MDE1NjEwMGJjNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwOTA1MDkwNTY1YjYwNWM4MDYxMDEyYjgzMzkwMTkwNTY1YjYwMDA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MjE2OTA1MDkxOTA1MDU2NWI2MDAwNjEwMGY5ODI2MTAwY2U1NjViOTA1MDkxOTA1MDU2NWI2MTAxMDk4MTYxMDBlZTU2NWI4MjUyNTA1MDU2NWI2MDAwNjAyMDgyMDE5MDUwNjEwMTI0NjAwMDgzMDE4NDYxMDEwMDU2NWI5MjkxNTA1MDU2ZmU2MDgwNjA0MDUyMzQ4MDE1NjAwZjU3NjAwMDgwZmQ1YjUwNjAzZjgwNjAxZDYwMDAzOTYwMDBmM2ZlNjA4MDYwNDA1MjYwMDA4MGZkZmVhMjY0Njk3MDY2NzM1ODIyMTIyMGUzNGYyNmM2MzliMTIyYzI4YmVkYjM5MzRjZGRlZDc2MDYxMGQ4ZDg1MmU1NWJkYjYwYzg5NzBiZGEwZGU5ZTY2NDczNmY2YzYzNDMwMDA4MTAwMDMzYTI2NDY5NzA2NjczNTgyMjEyMjA2M2EzOWI0OTQ2MTNjMDhjNDUyMDdkOTRhNGViYjExODVkYTg3NzE2ODcyZDQzZDI2Y2IyZTVkNGVjMWJjNjkyNjQ3MzZmNmM2MzQzMDAwODEwMDAzMw==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwb4+QVMjikayAv2bd79jDNm3SC0kbLNpMmjERXgAlRmPQWX+7siQTpju8duch/HSZGgwIxbbkrQYQy6+E1QEiDwoJCIm25K0GEN8eEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQiJtuStBhDhHhICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGJYNGiISIE+7ne254fqQSJXF8p2OfVpEbgelkrLzcO2MrQUB/DnNIKDCHkIFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGJcNKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDyUSCEZbdICuoxATffMq2CEeo64ZNa/XRgvmvb8YQX5t1GNhUKVuBTjzAHtD/VHc8aDAjFtuStBhCrppK6AyIPCgkIibbkrQYQ4R4SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCAs8UNQvcTCgMYlw0SmBFggGBAUjSAFWEAEFdgAID9W1BgBDYQYQCIV2AANWDgHIBjrj6lCBFhAFtXgGOuPqUIFGEA71eAY7Z4w4oUYQEfV4Bj0CZprRRhATtXgGPQQyZSFGEBV1dhAIhWW4BjBt8dNBRhAI1XgGNWrQ6IFGEAvVeAY1pVtXcUYQDbV4BjrdcC8BRhAOVXW2AAgP1bYQCnYASANgOBAZBhAKKRkGEFS1ZbYQF1VltgQFFhALSRkGEFuVZbYEBRgJEDkPNbYQDFYQG8VltgQFFhANKRkGEF41ZbYEBRgJEDkPNbYQDjYQHIVlsAW2EA7WECW1ZbAFthAQlgBIA2A4EBkGEBBJGQYQVLVlthAu9WW2BAUWEBFpGQYQW5VltgQFGAkQOQ81thATlgBIA2A4EBkGEBNJGQYQVLVlthAzdWWwBbYQFVYASANgOBAZBhAVCRkGEFS1ZbYQRWVlsAW2EBX2EE9lZbYEBRYQFskZBhBeNWW2BAUYCRA5DzW2AAgIKBVIEQYQGKV2EBiWEF/lZbW5BgAFJgIGAAIAFgAJBUkGEBAAqQBHP//////////////////////////xaQUJGQUFZbYACAgFSQUJBQkFZbYABgQFFhAdaQYQUDVltgQFGAkQOQYADwgBWAFWEB8lc9YACAPj1gAP1bUJBQYACBkIBgAYFUAYCCVYCRUFBgAZADkGAAUmAgYAAgAWAAkJGQkZCRYQEACoFUgXP//////////////////////////wIZFpCDc///////////////////////////FgIXkFVQUFZbYABgQFFhAmmQYQUDVltgQFGAkQOQYADwgBWAFWEChVc9YACAPj1gAP1bUJBQYACBkIBgAYFUAYCCVYCRUFBgAZADkGAAUmAgYAAgAWAAkJGQkZCRYQEACoFUgXP//////////////////////////wIZFpCDc///////////////////////////FgIXkFVgAID9W2AAYAGCgVSBEGEDBVdhAwRhBf5WW1uQYABSYCBgACABYACQVJBhAQAKkARz//////////////////////////8WkFCRkFBWW2AAgIKBVIEQYQNMV2EDS2EF/lZbW5BgAFJgIGAAIAFgAJBUkGEBAAqQBHP//////////////////////////xaQUGAAgXP//////////////////////////xZjw0wEHGBAUYFj/////xZg4BuBUmAEAWAgYEBRgIMDgWAAh1rxFYAVYQPIVz1gAIA+PWAA/VtQUFBQYEBRPWAfGWAfggEWggGAYEBSUIEBkGED7JGQYQZZVluQUGABgZCAYAGBVAGAglWAkVBQYAGQA5BgAFJgIGAAIAFgAJCRkJGQkWEBAAqBVIFz//////////////////////////8CGRaQg3P//////////////////////////xYCF5BVUFBQUFZbYACAgoFUgRBhBGtXYQRqYQX+VltbkGAAUmAgYAAgAWAAkFSQYQEACpAEc///////////////////////////FpBQgHP//////////////////////////xZjlxDb2WBAUYFj/////xZg4BuBUmAEAWAAYEBRgIMDgWAAh4A7FYAVYQTgV2AAgP1bUFrxklBQUIAVYQTxV1BgAVtQUFBWW2AAYAGAVJBQkFCQVlthAdyAYQaHgzkBkFZbYACA/VtgAIGQUJGQUFZbYQUogWEFFVZbgRRhBTNXYACA/VtQVltgAIE1kFBhBUWBYQUfVluSkVBQVltgAGAggoQDEhVhBWFXYQVgYQUQVltbYABhBW+EgoUBYQU2VluRUFCSkVBQVltgAHP//////////////////////////4IWkFCRkFBWW2AAYQWjgmEFeFZbkFCRkFBWW2EFs4FhBZhWW4JSUFBWW2AAYCCCAZBQYQXOYACDAYRhBapWW5KRUFBWW2EF3YFhBRVWW4JSUFBWW2AAYCCCAZBQYQX4YACDAYRhBdRWW5KRUFBWW39OSHtxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAUmAyYARSYCRgAP1bYQY2gWEFmFZbgRRhBkFXYACA/VtQVltgAIFRkFBhBlOBYQYtVluSkVBQVltgAGAggoQDEhVhBm9XYQZuYQUQVltbYABhBn2EgoUBYQZEVluRUFCSkVBQVv5ggGBAUjSAFWEAEFdgAID9W1BhAbyAYQAgYAA5YADz/mCAYEBSNIAVYQAQV2AAgP1bUGAENhBhADZXYAA1YOAcgGOXENvZFGEAO1eAY8NMBBwUYQBFV1tgAID9W2EAQ2EAY1ZbAFthAE1hAJJWW2BAUWEAWpGQYQEPVltgQFGAkQOQ81tgAGBAUWEAcZBhAMJWW2BAUYCRA5BgAPCAFYAVYQCNVz1gAIA+PWAA/VtgAID9W2AAYEBRYQCgkGEAwlZbYEBRgJEDkGAA8IAVgBVhALxXPWAAgD49YAD9W1CQUJBWW2BcgGEBK4M5AZBWW2AAc///////////////////////////ghaQUJGQUFZbYABhAPmCYQDOVluQUJGQUFZbYQEJgWEA7lZbglJQUFZbYABgIIIBkFBhASRgAIMBhGEBAFZbkpFQUFb+YIBgQFI0gBVgD1dgAID9W1BgP4BgHWAAOWAA8/5ggGBAUmAAgP3+omRpcGZzWCISIONPJsY5sSLCi+2zk0zd7XYGENjYUuVb22DIlwvaDenmZHNvbGNDAAgQADOiZGlwZnNYIhIgY6ObSUYTwIxFIH2UpOuxGF2odxaHLUPSbLLl1OwbxpJkc29sY0MACBAAM6JkaXBmc1giEiAut1MjGUJ90A71aExjnC/1nNltem9kFSET6BHOn4MWM2Rzb2xjQwAIEAAzIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACiAtRg6AxiXDToDGJgNOgMYmQ06AxiaDUoWChQAAAAAAAAAAAAAAAAAAAAAAAAGl3IHCgMYlw0QBHIHCgMYmA0QAXIHCgMYmQ0QAXIHCgMYmg0QAVIWCgkKAhgCEP/lihsKCQoCGGIQgOaKGw=="},{"b64Body":"ChEKCQiJtuStBhDhHhICGAIgAUI4GiISIE+7ne254fqQSJXF8p2OfVpEbgelkrLzcO2MrQUB/DnNQgUIgM7aA2oLY2VsbGFyIGRvb3I=","b64Record":"CgcIFiIDGJgNEjB47YTwpir7su0PjODv4uvVNuNx7Lz7eYn4hWbJCBX5Ugsf2snPXe6Aw7GZvHBLsuYaDAjFtuStBhCsppK6AyIRCgkIibbkrQYQ4R4SAhgCIAFCHQoDGJgNShYKFMdJgmL2KNhljbCDFqxfjas4od7WUgB6DAjFtuStBhCrppK6Aw=="},{"b64Body":"ChEKCQiJtuStBhDhHhICGAIgAkI4GiISIE+7ne254fqQSJXF8p2OfVpEbgelkrLzcO2MrQUB/DnNQgUIgM7aA2oLY2VsbGFyIGRvb3I=","b64Record":"CgcIFiIDGJkNEjBsCHeqxNK7lq7wZrdfrJgWonGK0z5bnzN4ULwq3TuMY4Qg+qXBI1R9b/sGnNAsb+waDAjFtuStBhCtppK6AyIRCgkIibbkrQYQ4R4SAhgCIAJCHQoDGJkNShYKFFppFqjr3+ifFXgtRb0lNq6EsXImUgB6DAjFtuStBhCrppK6Aw=="},{"b64Body":"ChEKCQiJtuStBhDhHhICGAIgA0I4GiISIE+7ne254fqQSJXF8p2OfVpEbgelkrLzcO2MrQUB/DnNQgUIgM7aA2oLY2VsbGFyIGRvb3I=","b64Record":"CgcIFiIDGJoNEjB82MS5fcMMOm12D4HIllBGCKGMt3996Spkx0UiXTdGjlLq8T4DcBM6Foss2GYF0kQaDAjFtuStBhCuppK6AyIRCgkIibbkrQYQ4R4SAhgCIANCHQoDGJoNShYKFO1hTzHnTvHgB1SETBJUtGkXoecLUgB6DAjFtuStBhCrppK6Aw=="}]},"contractCreateFollowedByContractCallNoncesExternalization":{"placeholderNum":1691,"encodedItems":[{"b64Body":"Cg8KCQiPtuStBhCQHxICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloyCiISIA+9Zm5rBeIOij5G3d6LRvM8/YhIA85gT2NKojNfalP3EIDQ28P0AkoFCIDO2gM=","b64Record":"CiUIFhIDGJwNKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDRI3slclJwwhQ5HCck00zqZ9LJlTw+fZ1gUZMMeTqY5MM8O5MlxJM1oSDQr5Bb14kaDAjLtuStBhD7vO7jAiIPCgkIj7bkrQYQkB8SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIbCgsKAhgCEP+ft4fpBQoMCgMYnA0QgKC3h+kF"},{"b64Body":"Cg8KCQiQtuStBhCSHxICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjgESCwjMhL+xBhDQstFsGm0KIhIg3fnhufq5WkUQZdOCuTuftzMgfXos+NwGyejeHSm0ZsMKIzohA7JPzY+IIOIq62YyFCkV2zrrmgAdfJ0Mx0TiBwJqV8NMCiISIMh/v1D0AXm6E+HOWROtTwxdDh04qRAukcpWiuhDyPFWIgxIZWxsbyBXb3JsZCEqADIA","b64Record":"CiUIFhoDGJ0NKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDi+f3XZLgpKx2PNg1tMwbCSd8TqzCuchQI9TPakSJrAnQUpxG68O0IWWTQ4Z8mewcaDAjMtuStBhCj1cqIASIPCgkIkLbkrQYQkh8SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiQtuStBhCWHxICGAISAhgDGIydjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxidDSKAIDYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYwMDA2MDQwNTE2MTAwMWY5MDYxMDFiNzU2NWI2MDQwNTE4MDkxMDM5MDYwMDBmMDgwMTU4MDE1NjEwMDNiNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwOTA4MDYwMDE4MTU0MDE4MDgyNTU4MDkxNTA1MDYwMDE5MDAzOTA2MDAwNTI2MDIwNjAwMDIwMDE2MDAwOTA5MTkwOTE5MDkxNjEwMTAwMGE4MTU0ODE3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjE5MTY5MDgzNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTYwMjE3OTA1NTUwNjAwMDYwNDA1MTYxMDBhYTkwNjEwMWI3NTY1YjYwNDA1MTgwOTEwMzkwNjAwMGYwODAxNTgwMTU2MTAwYzY1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA5MDgwNjAwMTgxNTQwMTgwODI1NTgwOTE1MDUwNjAwMTkwMDM5MDYwMDA1MjYwMjA2MDAwMjAwMTYwMDA5MDkxOTA5MTkwOTE2MTAxMDAwYTgxNTQ4MTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMTkxNjkwODM3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjAyMTc5MDU1NTA2MDAwNjA0MDUxNjEwMTM1OTA2MTAxYjc1NjViNjA0MDUxODA5MTAzOTA2MDAwZjA4MDE1ODAxNTYxMDE1MTU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDkwODA2MDAxODE1NDAxODA4MjU1ODA5MTUwNTA2MDAxOTAwMzkwNjAwMDUyNjAyMDYwMDAyMDAxNjAwMDkwOTE5MDkxOTA5MTYxMDEwMDBhODE1NDgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIxOTE2OTA4MzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2MDIxNzkwNTU1MDYxMDFjNDU2NWI2MTAxZGM4MDYxMGE2YjgzMzkwMTkwNTY1YjYxMDg5ODgwNjEwMWQzNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDA4ODU3NjAwMDM1NjBlMDFjODA2M2FlM2VhNTA4MTE2MTAwNWI1NzgwNjNhZTNlYTUwODE0NjEwMGVmNTc4MDYzYjY3OGMzOGExNDYxMDExZjU3ODA2M2QwMjY2OWFkMTQ2MTAxM2I1NzgwNjNkMDQzMjY1MjE0NjEwMTU3NTc2MTAwODg1NjViODA2MzA2ZGYxZDM0MTQ2MTAwOGQ1NzgwNjM1NmFkMGU4ODE0NjEwMGJkNTc4MDYzNWE1NWI1NzcxNDYxMDBkYjU3ODA2M2FkZDcwMmYwMTQ2MTAwZTU1NzViNjAwMDgwZmQ1YjYxMDBhNzYwMDQ4MDM2MDM4MTAxOTA2MTAwYTI5MTkwNjEwNTRiNTY1YjYxMDE3NTU2NWI2MDQwNTE2MTAwYjQ5MTkwNjEwNWI5NTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDBjNTYxMDFiYzU2NWI2MDQwNTE2MTAwZDI5MTkwNjEwNWUzNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDBlMzYxMDFjODU2NWIwMDViNjEwMGVkNjEwMjViNTY1YjAwNWI2MTAxMDk2MDA0ODAzNjAzODEwMTkwNjEwMTA0OTE5MDYxMDU0YjU2NWI2MTAyZWY1NjViNjA0MDUxNjEwMTE2OTE5MDYxMDViOTU2NWI2MDQwNTE4MDkxMDM5MGYzNWI2MTAxMzk2MDA0ODAzNjAzODEwMTkwNjEwMTM0OTE5MDYxMDU0YjU2NWI2MTAzMzc1NjViMDA1YjYxMDE1NTYwMDQ4MDM2MDM4MTAxOTA2MTAxNTA5MTkwNjEwNTRiNTY1YjYxMDQ1NjU2NWIwMDViNjEwMTVmNjEwNGY2NTY1YjYwNDA1MTYxMDE2YzkxOTA2MTA1ZTM1NjViNjA0MDUxODA5MTAzOTBmMzViNjAwMDgwODI4MTU0ODExMDYxMDE4YTU3NjEwMTg5NjEwNWZlNTY1YjViOTA2MDAwNTI2MDIwNjAwMDIwMDE2MDAwOTA1NDkwNjEwMTAwMGE5MDA0NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY5MDUwOTE5MDUwNTY1YjYwMDA4MDgwNTQ5MDUwOTA1MDkwNTY1YjYwMDA2MDQwNTE2MTAxZDY5MDYxMDUwMzU2NWI2MDQwNTE4MDkxMDM5MDYwMDBmMDgwMTU4MDE1NjEwMWYyNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwOTA1MDYwMDA4MTkwODA2MDAxODE1NDAxODA4MjU1ODA5MTUwNTA2MDAxOTAwMzkwNjAwMDUyNjAyMDYwMDAyMDAxNjAwMDkwOTE5MDkxOTA5MTYxMDEwMDBhODE1NDgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIxOTE2OTA4MzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2MDIxNzkwNTU1MDUwNTY1YjYwMDA2MDQwNTE2MTAyNjk5MDYxMDUwMzU2NWI2MDQwNTE4MDkxMDM5MDYwMDBmMDgwMTU4MDE1NjEwMjg1NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwOTA1MDYwMDA4MTkwODA2MDAxODE1NDAxODA4MjU1ODA5MTUwNTA2MDAxOTAwMzkwNjAwMDUyNjAyMDYwMDAyMDAxNjAwMDkwOTE5MDkxOTA5MTYxMDEwMDBhODE1NDgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIxOTE2OTA4MzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2MDIxNzkwNTU2MDAwODBmZDViNjAwMDYwMDE4MjgxNTQ4MTEwNjEwMzA1NTc2MTAzMDQ2MTA1ZmU1NjViNWI5MDYwMDA1MjYwMjA2MDAwMjAwMTYwMDA5MDU0OTA2MTAxMDAwYTkwMDQ3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjkwNTA5MTkwNTA1NjViNjAwMDgwODI4MTU0ODExMDYxMDM0YzU3NjEwMzRiNjEwNWZlNTY1YjViOTA2MDAwNTI2MDIwNjAwMDIwMDE2MDAwOTA1NDkwNjEwMTAwMGE5MDA0NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY5MDUwNjAwMDgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2M2MzNGMwNDFjNjA0MDUxODE2M2ZmZmZmZmZmMTY2MGUwMWI4MTUyNjAwNDAxNjAyMDYwNDA1MTgwODMwMzgxNjAwMDg3NWFmMTE1ODAxNTYxMDNjODU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAxZjE5NjAxZjgyMDExNjgyMDE4MDYwNDA1MjUwODEwMTkwNjEwM2VjOTE5MDYxMDY1OTU2NWI5MDUwNjAwMTgxOTA4MDYwMDE4MTU0MDE4MDgyNTU4MDkxNTA1MDYwMDE5MDAzOTA2MDAwNTI2MDIwNjAwMDIwMDE2MDAwOTA5MTkwOTE5MDkxNjEwMTAwMGE4MTU0ODE3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjE5MTY5MDgzNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTYwMjE3OTA1NTUwNTA1MDUwNTY1YjYwMDA4MDgyODE1NDgxMTA2MTA0NmI1NzYxMDQ2YTYxMDVmZTU2NWI1YjkwNjAwMDUyNjAyMDYwMDAyMDAxNjAwMDkwNTQ5MDYxMDEwMDBhOTAwNDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2OTA1MDgwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2Mzk3MTBkYmQ5NjA0MDUxODE2M2ZmZmZmZmZmMTY2MGUwMWI4MTUyNjAwNDAxNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg3ODAzYjE1ODAxNTYxMDRlMDU3NjAwMDgwZmQ1YjUwNWFmMTkyNTA1MDUwODAxNTYxMDRmMTU3NTA2MDAxNWI1MDUwNTA1NjViNjAwMDYwMDE4MDU0OTA1MDkwNTA5MDU2NWI2MTAxZGM4MDYxMDY4NzgzMzkwMTkwNTY1YjYwMDA4MGZkNWI2MDAwODE5MDUwOTE5MDUwNTY1YjYxMDUyODgxNjEwNTE1NTY1YjgxMTQ2MTA1MzM1NzYwMDA4MGZkNWI1MDU2NWI2MDAwODEzNTkwNTA2MTA1NDU4MTYxMDUxZjU2NWI5MjkxNTA1MDU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTA1NjE1NzYxMDU2MDYxMDUxMDU2NWI1YjYwMDA2MTA1NmY4NDgyODUwMTYxMDUzNjU2NWI5MTUwNTA5MjkxNTA1MDU2NWI2MDAwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIxNjkwNTA5MTkwNTA1NjViNjAwMDYxMDVhMzgyNjEwNTc4NTY1YjkwNTA5MTkwNTA1NjViNjEwNWIzODE2MTA1OTg1NjViODI1MjUwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDYxMDVjZTYwMDA4MzAxODQ2MTA1YWE1NjViOTI5MTUwNTA1NjViNjEwNWRkODE2MTA1MTU1NjViODI1MjUwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDYxMDVmODYwMDA4MzAxODQ2MTA1ZDQ1NjViOTI5MTUwNTA1NjViN2Y0ZTQ4N2I3MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjAwMDUyNjAzMjYwMDQ1MjYwMjQ2MDAwZmQ=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwrneSIkvCsV/KzqjeZppV55ZAMsqLjS27XJrNy6Z89CJeOuK+4OjAj5fBbHG8lKmdGgwIzLbkrQYQg73d7QIiDwoJCJC25K0GEJYfEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQiRtuStBhCcHxICGAISAhgDGN29vDYiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBlhESAxidDSKOETViNjEwNjM2ODE2MTA1OTg1NjViODExNDYxMDY0MTU3NjAwMDgwZmQ1YjUwNTY1YjYwMDA4MTUxOTA1MDYxMDY1MzgxNjEwNjJkNTY1YjkyOTE1MDUwNTY1YjYwMDA2MDIwODI4NDAzMTIxNTYxMDY2ZjU3NjEwNjZlNjEwNTEwNTY1YjViNjAwMDYxMDY3ZDg0ODI4NTAxNjEwNjQ0NTY1YjkxNTA1MDkyOTE1MDUwNTZmZTYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMDFiYzgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDAzNjU3NjAwMDM1NjBlMDFjODA2Mzk3MTBkYmQ5MTQ2MTAwM2I1NzgwNjNjMzRjMDQxYzE0NjEwMDQ1NTc1YjYwMDA4MGZkNWI2MTAwNDM2MTAwNjM1NjViMDA1YjYxMDA0ZDYxMDA5MjU2NWI2MDQwNTE2MTAwNWE5MTkwNjEwMTBmNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYwMDA2MDQwNTE2MTAwNzE5MDYxMDBjMjU2NWI2MDQwNTE4MDkxMDM5MDYwMDBmMDgwMTU4MDE1NjEwMDhkNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjYwMDA4MGZkNWI2MDAwNjA0MDUxNjEwMGEwOTA2MTAwYzI1NjViNjA0MDUxODA5MTAzOTA2MDAwZjA4MDE1ODAxNTYxMDBiYzU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDkwNTA5MDU2NWI2MDVjODA2MTAxMmI4MzM5MDE5MDU2NWI2MDAwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIxNjkwNTA5MTkwNTA1NjViNjAwMDYxMDBmOTgyNjEwMGNlNTY1YjkwNTA5MTkwNTA1NjViNjEwMTA5ODE2MTAwZWU1NjViODI1MjUwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDYxMDEyNDYwMDA4MzAxODQ2MTAxMDA1NjViOTI5MTUwNTA1NmZlNjA4MDYwNDA1MjM0ODAxNTYwMGY1NzYwMDA4MGZkNWI1MDYwM2Y4MDYwMWQ2MDAwMzk2MDAwZjNmZTYwODA2MDQwNTI2MDAwODBmZGZlYTI2NDY5NzA2NjczNTgyMjEyMjBlMzRmMjZjNjM5YjEyMmMyOGJlZGIzOTM0Y2RkZWQ3NjA2MTBkOGQ4NTJlNTViZGI2MGM4OTcwYmRhMGRlOWU2NjQ3MzZmNmM2MzQzMDAwODEwMDAzM2EyNjQ2OTcwNjY3MzU4MjIxMjIwNjNhMzliNDk0NjEzYzA4YzQ1MjA3ZDk0YTRlYmIxMTg1ZGE4NzcxNjg3MmQ0M2QyNmNiMmU1ZDRlYzFiYzY5MjY0NzM2ZjZjNjM0MzAwMDgxMDAwMzNhMjY0Njk3MDY2NzM1ODIyMTIyMDJlYjc1MzIzMTk0MjdkZDAwZWY1Njg0YzYzOWMyZmY1OWNkOTZkN2E2ZjY0MTUyMTEzZTgxMWNlOWY4MzE2MzM2NDczNmY2YzYzNDMwMDA4MTAwMDMzNjA4MDYwNDA1MjM0ODAxNTYxMDAxMDU3NjAwMDgwZmQ1YjUwNjEwMWJjODA2MTAwMjA2MDAwMzk2MDAwZjNmZTYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYwMDQzNjEwNjEwMDM2NTc2MDAwMzU2MGUwMWM4MDYzOTcxMGRiZDkxNDYxMDAzYjU3ODA2M2MzNGMwNDFjMTQ2MTAwNDU1NzViNjAwMDgwZmQ1YjYxMDA0MzYxMDA2MzU2NWIwMDViNjEwMDRkNjEwMDkyNTY1YjYwNDA1MTYxMDA1YTkxOTA2MTAxMGY1NjViNjA0MDUxODA5MTAzOTBmMzViNjAwMDYwNDA1MTYxMDA3MTkwNjEwMGMyNTY1YjYwNDA1MTgwOTEwMzkwNjAwMGYwODAxNTgwMTU2MTAwOGQ1NzNkNjAwMDgwM2UzZDYwMDBmZDViNjAwMDgwZmQ1YjYwMDA2MDQwNTE2MTAwYTA5MDYxMDBjMjU2NWI2MDQwNTE4MDkxMDM5MDYwMDBmMDgwMTU4MDE1NjEwMGJjNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwOTA1MDkwNTY1YjYwNWM4MDYxMDEyYjgzMzkwMTkwNTY1YjYwMDA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MjE2OTA1MDkxOTA1MDU2NWI2MDAwNjEwMGY5ODI2MTAwY2U1NjViOTA1MDkxOTA1MDU2NWI2MTAxMDk4MTYxMDBlZTU2NWI4MjUyNTA1MDU2NWI2MDAwNjAyMDgyMDE5MDUwNjEwMTI0NjAwMDgzMDE4NDYxMDEwMDU2NWI5MjkxNTA1MDU2ZmU2MDgwNjA0MDUyMzQ4MDE1NjAwZjU3NjAwMDgwZmQ1YjUwNjAzZjgwNjAxZDYwMDAzOTYwMDBmM2ZlNjA4MDYwNDA1MjYwMDA4MGZkZmVhMjY0Njk3MDY2NzM1ODIyMTIyMGUzNGYyNmM2MzliMTIyYzI4YmVkYjM5MzRjZGRlZDc2MDYxMGQ4ZDg1MmU1NWJkYjYwYzg5NzBiZGEwZGU5ZTY2NDczNmY2YzYzNDMwMDA4MTAwMDMzYTI2NDY5NzA2NjczNTgyMjEyMjA2M2EzOWI0OTQ2MTNjMDhjNDUyMDdkOTRhNGViYjExODVkYTg3NzE2ODcyZDQzZDI2Y2IyZTVkNGVjMWJjNjkyNjQ3MzZmNmM2MzQzMDAwODEwMDAzMw==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwKsHzBc0Upx7EfqB9N2g2SxZJIcVruCPJB4MpfXKfJfuC2pgJxXrbpo2kfBzrP+UoGgwIzbbkrQYQ44qwkgEiDwoJCJG25K0GEJwfEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQiRtuStBhCeHxICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGJ0NGiISIKnv417yajXv37gXS1SOVuQDUPZLQQWi1/6uu+G0PAJYIKDCHkIFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGJ4NKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDqwRLgZqs4FsfRSR/ZEgGJ8U8hI85C6n7PyLK+la0tNO7YZFJiOyC9/n2j44Xpj2IaDAjNtuStBhDDqLH3AiIPCgkIkbbkrQYQnh8SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCAs8UNQvcTCgMYng0SmBFggGBAUjSAFWEAEFdgAID9W1BgBDYQYQCIV2AANWDgHIBjrj6lCBFhAFtXgGOuPqUIFGEA71eAY7Z4w4oUYQEfV4Bj0CZprRRhATtXgGPQQyZSFGEBV1dhAIhWW4BjBt8dNBRhAI1XgGNWrQ6IFGEAvVeAY1pVtXcUYQDbV4BjrdcC8BRhAOVXW2AAgP1bYQCnYASANgOBAZBhAKKRkGEFS1ZbYQF1VltgQFFhALSRkGEFuVZbYEBRgJEDkPNbYQDFYQG8VltgQFFhANKRkGEF41ZbYEBRgJEDkPNbYQDjYQHIVlsAW2EA7WECW1ZbAFthAQlgBIA2A4EBkGEBBJGQYQVLVlthAu9WW2BAUWEBFpGQYQW5VltgQFGAkQOQ81thATlgBIA2A4EBkGEBNJGQYQVLVlthAzdWWwBbYQFVYASANgOBAZBhAVCRkGEFS1ZbYQRWVlsAW2EBX2EE9lZbYEBRYQFskZBhBeNWW2BAUYCRA5DzW2AAgIKBVIEQYQGKV2EBiWEF/lZbW5BgAFJgIGAAIAFgAJBUkGEBAAqQBHP//////////////////////////xaQUJGQUFZbYACAgFSQUJBQkFZbYABgQFFhAdaQYQUDVltgQFGAkQOQYADwgBWAFWEB8lc9YACAPj1gAP1bUJBQYACBkIBgAYFUAYCCVYCRUFBgAZADkGAAUmAgYAAgAWAAkJGQkZCRYQEACoFUgXP//////////////////////////wIZFpCDc///////////////////////////FgIXkFVQUFZbYABgQFFhAmmQYQUDVltgQFGAkQOQYADwgBWAFWEChVc9YACAPj1gAP1bUJBQYACBkIBgAYFUAYCCVYCRUFBgAZADkGAAUmAgYAAgAWAAkJGQkZCRYQEACoFUgXP//////////////////////////wIZFpCDc///////////////////////////FgIXkFVgAID9W2AAYAGCgVSBEGEDBVdhAwRhBf5WW1uQYABSYCBgACABYACQVJBhAQAKkARz//////////////////////////8WkFCRkFBWW2AAgIKBVIEQYQNMV2EDS2EF/lZbW5BgAFJgIGAAIAFgAJBUkGEBAAqQBHP//////////////////////////xaQUGAAgXP//////////////////////////xZjw0wEHGBAUYFj/////xZg4BuBUmAEAWAgYEBRgIMDgWAAh1rxFYAVYQPIVz1gAIA+PWAA/VtQUFBQYEBRPWAfGWAfggEWggGAYEBSUIEBkGED7JGQYQZZVluQUGABgZCAYAGBVAGAglWAkVBQYAGQA5BgAFJgIGAAIAFgAJCRkJGQkWEBAAqBVIFz//////////////////////////8CGRaQg3P//////////////////////////xYCF5BVUFBQUFZbYACAgoFUgRBhBGtXYQRqYQX+VltbkGAAUmAgYAAgAWAAkFSQYQEACpAEc///////////////////////////FpBQgHP//////////////////////////xZjlxDb2WBAUYFj/////xZg4BuBUmAEAWAAYEBRgIMDgWAAh4A7FYAVYQTgV2AAgP1bUFrxklBQUIAVYQTxV1BgAVtQUFBWW2AAYAGAVJBQkFCQVlthAdyAYQaHgzkBkFZbYACA/VtgAIGQUJGQUFZbYQUogWEFFVZbgRRhBTNXYACA/VtQVltgAIE1kFBhBUWBYQUfVluSkVBQVltgAGAggoQDEhVhBWFXYQVgYQUQVltbYABhBW+EgoUBYQU2VluRUFCSkVBQVltgAHP//////////////////////////4IWkFCRkFBWW2AAYQWjgmEFeFZbkFCRkFBWW2EFs4FhBZhWW4JSUFBWW2AAYCCCAZBQYQXOYACDAYRhBapWW5KRUFBWW2EF3YFhBRVWW4JSUFBWW2AAYCCCAZBQYQX4YACDAYRhBdRWW5KRUFBWW39OSHtxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAUmAyYARSYCRgAP1bYQY2gWEFmFZbgRRhBkFXYACA/VtQVltgAIFRkFBhBlOBYQYtVluSkVBQVltgAGAggoQDEhVhBm9XYQZuYQUQVltbYABhBn2EgoUBYQZEVluRUFCSkVBQVv5ggGBAUjSAFWEAEFdgAID9W1BhAbyAYQAgYAA5YADz/mCAYEBSNIAVYQAQV2AAgP1bUGAENhBhADZXYAA1YOAcgGOXENvZFGEAO1eAY8NMBBwUYQBFV1tgAID9W2EAQ2EAY1ZbAFthAE1hAJJWW2BAUWEAWpGQYQEPVltgQFGAkQOQ81tgAGBAUWEAcZBhAMJWW2BAUYCRA5BgAPCAFYAVYQCNVz1gAIA+PWAA/VtgAID9W2AAYEBRYQCgkGEAwlZbYEBRgJEDkGAA8IAVgBVhALxXPWAAgD49YAD9W1CQUJBWW2BcgGEBK4M5AZBWW2AAc///////////////////////////ghaQUJGQUFZbYABhAPmCYQDOVluQUJGQUFZbYQEJgWEA7lZbglJQUFZbYABgIIIBkFBhASRgAIMBhGEBAFZbkpFQUFb+YIBgQFI0gBVgD1dgAID9W1BgP4BgHWAAOWAA8/5ggGBAUmAAgP3+omRpcGZzWCISIONPJsY5sSLCi+2zk0zd7XYGENjYUuVb22DIlwvaDenmZHNvbGNDAAgQADOiZGlwZnNYIhIgY6ObSUYTwIxFIH2UpOuxGF2odxaHLUPSbLLl1OwbxpJkc29sY0MACBAAM6JkaXBmc1giEiAut1MjGUJ90A71aExjnC/1nNltem9kFSET6BHOn4MWM2Rzb2xjQwAIEAAzIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACiAtRg6AxieDToDGJ8NOgMYoA06AxihDUoWChQAAAAAAAAAAAAAAAAAAAAAAAAGnnIHCgMYng0QBHIHCgMYnw0QAXIHCgMYoA0QAXIHCgMYoQ0QAVIWCgkKAhgCEP/lihsKCQoCGGIQgOaKGw=="},{"b64Body":"ChEKCQiRtuStBhCeHxICGAIgAUI4GiISIKnv417yajXv37gXS1SOVuQDUPZLQQWi1/6uu+G0PAJYQgUIgM7aA2oLY2VsbGFyIGRvb3I=","b64Record":"CgcIFiIDGJ8NEjB/TniZv02nPJkCVNy9NQ4qomZGCISFsUSwtDTcIxZ1eOfb7qfAUH5ouNj6ErWtQegaDAjNtuStBhDEqLH3AiIRCgkIkbbkrQYQnh8SAhgCIAFCHQoDGJ8NShYKFH49Xg9rqU4yNuAqA3pv4dIWfD2RUgB6DAjNtuStBhDDqLH3Ag=="},{"b64Body":"ChEKCQiRtuStBhCeHxICGAIgAkI4GiISIKnv417yajXv37gXS1SOVuQDUPZLQQWi1/6uu+G0PAJYQgUIgM7aA2oLY2VsbGFyIGRvb3I=","b64Record":"CgcIFiIDGKANEjDAKqXUZpAh9YvOdpD9S5bkxde1NUB4IbZUWE/dNW5vEM4+Nt87AqPmk1bA6LYkrE8aDAjNtuStBhDFqLH3AiIRCgkIkbbkrQYQnh8SAhgCIAJCHQoDGKANShYKFG8i+5dSVWltSJcYbnW9hsCXcU8BUgB6DAjNtuStBhDDqLH3Ag=="},{"b64Body":"ChEKCQiRtuStBhCeHxICGAIgA0I4GiISIKnv417yajXv37gXS1SOVuQDUPZLQQWi1/6uu+G0PAJYQgUIgM7aA2oLY2VsbGFyIGRvb3I=","b64Record":"CgcIFiIDGKENEjB/hNvKGFYHsjjxr5S2DUqo8W6/ddpafLxgGqv3rBz22SXWxm9cu+yFUymxkvpiNJwaDAjNtuStBhDGqLH3AiIRCgkIkbbkrQYQnh8SAhgCIANCHQoDGKENShYKFP2lYNLc3tWpA6VQ3FgZpCUHeNTYUgB6DAjNtuStBhDDqLH3Ag=="},{"b64Body":"ChAKCQiStuStBhCgHxIDGJwNEgIYAxjAv+0hIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46DwoDGJ4NEMCEPSIEWlW1dw==","b64Record":"CiUIFiIDGJ4NKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjA2XdLCT+k/wckmgcUC+6nlYa9mGV4anS6Lm/0vPeHlQPLkHF/HfUR92CYupb7TthIaCwjOtuStBhCDspN/IhAKCQiStuStBhCgHxIDGJwNKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCA5oobOqMCCgMYng0igAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKIDqMDoDGKINcgcKAxieDRAFcgcKAxiiDRABUhcKCQoCGGIQgMyVNgoKCgMYnA0Q/8uVNg=="},{"b64Body":"ChIKCQiStuStBhCgHxIDGJwNIAFCOBoiEiCp7+Ne8mo179+4F0tUjlbkA1D2S0EFotf+rrvhtDwCWEIFCIDO2gNqC2NlbGxhciBkb29y","b64Record":"CgcIFiIDGKINEjACwEK4qo55sQYmxN0g51PInbmxuZohzDeCfJr2v0CdJC4VsKOFjeybhiu7Cfs8oMYaCwjOtuStBhCEspN/IhIKCQiStuStBhCgHxIDGJwNIAFCHQoDGKINShYKFBYowORcrGWXK/q5ebWrnxFM5Bb6UgB6CwjOtuStBhCDspN/"},{"b64Body":"Cg8KCQiStuStBhCqHxICGAISAhgDGMC/7SEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjovCgMYng0QwIQ9IiS2eMOKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=","b64Record":"CiUIFiIDGJ4NKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBjD23AJdQZxGHykuoglTKSF08V8ovaMbaqDdPYot7eOlOVwS4NFIQN/PVcIaaDAWwaDAjOtuStBhDzq+OAAyIPCgkIkrbkrQYQqh8SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCA5oobOqMCCgMYng0igAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKIDqMDoDGKMNcgcKAxifDRACcgcKAxijDRABUhYKCQoCGAIQ/8uVNgoJCgIYYhCAzJU2"},{"b64Body":"ChEKCQiStuStBhCqHxICGAIgAUI4GiISIKnv417yajXv37gXS1SOVuQDUPZLQQWi1/6uu+G0PAJYQgUIgM7aA2oLY2VsbGFyIGRvb3I=","b64Record":"CgcIFiIDGKMNEjAIVxGZjr5y+0eaay6utA0KuA9TzufypAeeRy4syURgWcA4AR70MuaO7eqBPBuB1YMaDAjOtuStBhD0q+OAAyIRCgkIkrbkrQYQqh8SAhgCIAFCHQoDGKMNShYKFG9zYXoBD8SzOO9MhNJkDjH/2+UwUgB6DAjOtuStBhDzq+OAAw=="},{"b64Body":"Cg8KCQiTtuStBhC0HxICGAISAhgDGMC/7SEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjovCgMYng0QwIQ9IiTQJmmtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE=","b64Record":"CiUIFiIDGJ4NKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjApvgIYK8z6ylfsvoZb03awd4FqmD0C/u9n/g5+/keVBWHOqZLO+LgqESV/TFn7bjoaDAjPtuStBhDrhq+lASIPCgkIk7bkrQYQtB8SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCA5oobOowCCgMYng0igAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKIDqMFIWCgkKAhgCEP/LlTYKCQoCGGIQgMyVNg=="}]},"shouldReturnNullWhenContractsNoncesExternalizationFlagIsDisabled":{"placeholderNum":1700,"encodedItems":[{"b64Body":"Cg8KCQiZtuStBhDXHxICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloyCiISIMYrhvx90fqtueAs6ZdISbO/m2A5l2EnMop+Y17gRFVbEIDQ28P0AkoFCIDO2gM=","b64Record":"CiUIFhIDGKUNKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBYj0pkn3CIb8Nln+fdBjQSmqfdp+1eBlc/Jy+7f4adoEJR4p0cN7BljGiVytfHjhgaCwjVtuStBhDr0ssyIg8KCQiZtuStBhDXHxICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUhsKCwoCGAIQ/5+3h+kFCgwKAxilDRCAoLeH6QU="},{"b64Body":"Cg8KCQiZtuStBhDZHxICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAjVhL+xBhDQjuuOAhptCiISIKKXZZBsEPrz4JNakMitWXgu8Bmpi7MbR15k01BLWYcnCiM6IQLhrGI/blALA4LU4rASWYC1LK6oQWDGHYujrAUx8vL7IgoiEiAxLVBbMl6rbdqhJArr+cAk4xRExUlUZW38u2oM42PXGCIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGKYNKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjATlUZkxoYpbPavhA68M77L9EjTvBS4I4zOi6VpAZ+Q2ho2YYuDVnZVMiWoxhFik34aDAjVtuStBhCDivaXAiIPCgkImbbkrQYQ2R8SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiatuStBhDdHxICGAISAhgDGIudjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAximDSKAIDYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYwMDA2MDQwNTE2MTAwMWY5MDYxMDFiNzU2NWI2MDQwNTE4MDkxMDM5MDYwMDBmMDgwMTU4MDE1NjEwMDNiNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwOTA4MDYwMDE4MTU0MDE4MDgyNTU4MDkxNTA1MDYwMDE5MDAzOTA2MDAwNTI2MDIwNjAwMDIwMDE2MDAwOTA5MTkwOTE5MDkxNjEwMTAwMGE4MTU0ODE3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjE5MTY5MDgzNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTYwMjE3OTA1NTUwNjAwMDYwNDA1MTYxMDBhYTkwNjEwMWI3NTY1YjYwNDA1MTgwOTEwMzkwNjAwMGYwODAxNTgwMTU2MTAwYzY1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA5MDgwNjAwMTgxNTQwMTgwODI1NTgwOTE1MDUwNjAwMTkwMDM5MDYwMDA1MjYwMjA2MDAwMjAwMTYwMDA5MDkxOTA5MTkwOTE2MTAxMDAwYTgxNTQ4MTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMTkxNjkwODM3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjAyMTc5MDU1NTA2MDAwNjA0MDUxNjEwMTM1OTA2MTAxYjc1NjViNjA0MDUxODA5MTAzOTA2MDAwZjA4MDE1ODAxNTYxMDE1MTU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDkwODA2MDAxODE1NDAxODA4MjU1ODA5MTUwNTA2MDAxOTAwMzkwNjAwMDUyNjAyMDYwMDAyMDAxNjAwMDkwOTE5MDkxOTA5MTYxMDEwMDBhODE1NDgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIxOTE2OTA4MzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2MDIxNzkwNTU1MDYxMDFjNDU2NWI2MTAxZGM4MDYxMGE2YjgzMzkwMTkwNTY1YjYxMDg5ODgwNjEwMWQzNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDA4ODU3NjAwMDM1NjBlMDFjODA2M2FlM2VhNTA4MTE2MTAwNWI1NzgwNjNhZTNlYTUwODE0NjEwMGVmNTc4MDYzYjY3OGMzOGExNDYxMDExZjU3ODA2M2QwMjY2OWFkMTQ2MTAxM2I1NzgwNjNkMDQzMjY1MjE0NjEwMTU3NTc2MTAwODg1NjViODA2MzA2ZGYxZDM0MTQ2MTAwOGQ1NzgwNjM1NmFkMGU4ODE0NjEwMGJkNTc4MDYzNWE1NWI1NzcxNDYxMDBkYjU3ODA2M2FkZDcwMmYwMTQ2MTAwZTU1NzViNjAwMDgwZmQ1YjYxMDBhNzYwMDQ4MDM2MDM4MTAxOTA2MTAwYTI5MTkwNjEwNTRiNTY1YjYxMDE3NTU2NWI2MDQwNTE2MTAwYjQ5MTkwNjEwNWI5NTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDBjNTYxMDFiYzU2NWI2MDQwNTE2MTAwZDI5MTkwNjEwNWUzNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDBlMzYxMDFjODU2NWIwMDViNjEwMGVkNjEwMjViNTY1YjAwNWI2MTAxMDk2MDA0ODAzNjAzODEwMTkwNjEwMTA0OTE5MDYxMDU0YjU2NWI2MTAyZWY1NjViNjA0MDUxNjEwMTE2OTE5MDYxMDViOTU2NWI2MDQwNTE4MDkxMDM5MGYzNWI2MTAxMzk2MDA0ODAzNjAzODEwMTkwNjEwMTM0OTE5MDYxMDU0YjU2NWI2MTAzMzc1NjViMDA1YjYxMDE1NTYwMDQ4MDM2MDM4MTAxOTA2MTAxNTA5MTkwNjEwNTRiNTY1YjYxMDQ1NjU2NWIwMDViNjEwMTVmNjEwNGY2NTY1YjYwNDA1MTYxMDE2YzkxOTA2MTA1ZTM1NjViNjA0MDUxODA5MTAzOTBmMzViNjAwMDgwODI4MTU0ODExMDYxMDE4YTU3NjEwMTg5NjEwNWZlNTY1YjViOTA2MDAwNTI2MDIwNjAwMDIwMDE2MDAwOTA1NDkwNjEwMTAwMGE5MDA0NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY5MDUwOTE5MDUwNTY1YjYwMDA4MDgwNTQ5MDUwOTA1MDkwNTY1YjYwMDA2MDQwNTE2MTAxZDY5MDYxMDUwMzU2NWI2MDQwNTE4MDkxMDM5MDYwMDBmMDgwMTU4MDE1NjEwMWYyNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwOTA1MDYwMDA4MTkwODA2MDAxODE1NDAxODA4MjU1ODA5MTUwNTA2MDAxOTAwMzkwNjAwMDUyNjAyMDYwMDAyMDAxNjAwMDkwOTE5MDkxOTA5MTYxMDEwMDBhODE1NDgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIxOTE2OTA4MzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2MDIxNzkwNTU1MDUwNTY1YjYwMDA2MDQwNTE2MTAyNjk5MDYxMDUwMzU2NWI2MDQwNTE4MDkxMDM5MDYwMDBmMDgwMTU4MDE1NjEwMjg1NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwOTA1MDYwMDA4MTkwODA2MDAxODE1NDAxODA4MjU1ODA5MTUwNTA2MDAxOTAwMzkwNjAwMDUyNjAyMDYwMDAyMDAxNjAwMDkwOTE5MDkxOTA5MTYxMDEwMDBhODE1NDgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIxOTE2OTA4MzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2MDIxNzkwNTU2MDAwODBmZDViNjAwMDYwMDE4MjgxNTQ4MTEwNjEwMzA1NTc2MTAzMDQ2MTA1ZmU1NjViNWI5MDYwMDA1MjYwMjA2MDAwMjAwMTYwMDA5MDU0OTA2MTAxMDAwYTkwMDQ3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjkwNTA5MTkwNTA1NjViNjAwMDgwODI4MTU0ODExMDYxMDM0YzU3NjEwMzRiNjEwNWZlNTY1YjViOTA2MDAwNTI2MDIwNjAwMDIwMDE2MDAwOTA1NDkwNjEwMTAwMGE5MDA0NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY5MDUwNjAwMDgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2M2MzNGMwNDFjNjA0MDUxODE2M2ZmZmZmZmZmMTY2MGUwMWI4MTUyNjAwNDAxNjAyMDYwNDA1MTgwODMwMzgxNjAwMDg3NWFmMTE1ODAxNTYxMDNjODU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAxZjE5NjAxZjgyMDExNjgyMDE4MDYwNDA1MjUwODEwMTkwNjEwM2VjOTE5MDYxMDY1OTU2NWI5MDUwNjAwMTgxOTA4MDYwMDE4MTU0MDE4MDgyNTU4MDkxNTA1MDYwMDE5MDAzOTA2MDAwNTI2MDIwNjAwMDIwMDE2MDAwOTA5MTkwOTE5MDkxNjEwMTAwMGE4MTU0ODE3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjE5MTY5MDgzNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTYwMjE3OTA1NTUwNTA1MDUwNTY1YjYwMDA4MDgyODE1NDgxMTA2MTA0NmI1NzYxMDQ2YTYxMDVmZTU2NWI1YjkwNjAwMDUyNjAyMDYwMDAyMDAxNjAwMDkwNTQ5MDYxMDEwMDBhOTAwNDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2OTA1MDgwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2Mzk3MTBkYmQ5NjA0MDUxODE2M2ZmZmZmZmZmMTY2MGUwMWI4MTUyNjAwNDAxNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg3ODAzYjE1ODAxNTYxMDRlMDU3NjAwMDgwZmQ1YjUwNWFmMTkyNTA1MDUwODAxNTYxMDRmMTU3NTA2MDAxNWI1MDUwNTA1NjViNjAwMDYwMDE4MDU0OTA1MDkwNTA5MDU2NWI2MTAxZGM4MDYxMDY4NzgzMzkwMTkwNTY1YjYwMDA4MGZkNWI2MDAwODE5MDUwOTE5MDUwNTY1YjYxMDUyODgxNjEwNTE1NTY1YjgxMTQ2MTA1MzM1NzYwMDA4MGZkNWI1MDU2NWI2MDAwODEzNTkwNTA2MTA1NDU4MTYxMDUxZjU2NWI5MjkxNTA1MDU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTA1NjE1NzYxMDU2MDYxMDUxMDU2NWI1YjYwMDA2MTA1NmY4NDgyODUwMTYxMDUzNjU2NWI5MTUwNTA5MjkxNTA1MDU2NWI2MDAwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIxNjkwNTA5MTkwNTA1NjViNjAwMDYxMDVhMzgyNjEwNTc4NTY1YjkwNTA5MTkwNTA1NjViNjEwNWIzODE2MTA1OTg1NjViODI1MjUwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDYxMDVjZTYwMDA4MzAxODQ2MTA1YWE1NjViOTI5MTUwNTA1NjViNjEwNWRkODE2MTA1MTU1NjViODI1MjUwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDYxMDVmODYwMDA4MzAxODQ2MTA1ZDQ1NjViOTI5MTUwNTA1NjViN2Y0ZTQ4N2I3MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjAwMDUyNjAzMjYwMDQ1MjYwMjQ2MDAwZmQ=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwYRiAHoSo9y3+6ARTBkibR6fRa/6CxN8+uf/zHb0u2GYiogcBezPEgkhyQ44UCK+GGgsI1rbkrQYQm93OPCIPCgkImrbkrQYQ3R8SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiatuStBhDjHxICGAISAhgDGN29vDYiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBlhESAximDSKOETViNjEwNjM2ODE2MTA1OTg1NjViODExNDYxMDY0MTU3NjAwMDgwZmQ1YjUwNTY1YjYwMDA4MTUxOTA1MDYxMDY1MzgxNjEwNjJkNTY1YjkyOTE1MDUwNTY1YjYwMDA2MDIwODI4NDAzMTIxNTYxMDY2ZjU3NjEwNjZlNjEwNTEwNTY1YjViNjAwMDYxMDY3ZDg0ODI4NTAxNjEwNjQ0NTY1YjkxNTA1MDkyOTE1MDUwNTZmZTYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMDFiYzgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDAzNjU3NjAwMDM1NjBlMDFjODA2Mzk3MTBkYmQ5MTQ2MTAwM2I1NzgwNjNjMzRjMDQxYzE0NjEwMDQ1NTc1YjYwMDA4MGZkNWI2MTAwNDM2MTAwNjM1NjViMDA1YjYxMDA0ZDYxMDA5MjU2NWI2MDQwNTE2MTAwNWE5MTkwNjEwMTBmNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYwMDA2MDQwNTE2MTAwNzE5MDYxMDBjMjU2NWI2MDQwNTE4MDkxMDM5MDYwMDBmMDgwMTU4MDE1NjEwMDhkNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjYwMDA4MGZkNWI2MDAwNjA0MDUxNjEwMGEwOTA2MTAwYzI1NjViNjA0MDUxODA5MTAzOTA2MDAwZjA4MDE1ODAxNTYxMDBiYzU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDkwNTA5MDU2NWI2MDVjODA2MTAxMmI4MzM5MDE5MDU2NWI2MDAwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIxNjkwNTA5MTkwNTA1NjViNjAwMDYxMDBmOTgyNjEwMGNlNTY1YjkwNTA5MTkwNTA1NjViNjEwMTA5ODE2MTAwZWU1NjViODI1MjUwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDYxMDEyNDYwMDA4MzAxODQ2MTAxMDA1NjViOTI5MTUwNTA1NmZlNjA4MDYwNDA1MjM0ODAxNTYwMGY1NzYwMDA4MGZkNWI1MDYwM2Y4MDYwMWQ2MDAwMzk2MDAwZjNmZTYwODA2MDQwNTI2MDAwODBmZGZlYTI2NDY5NzA2NjczNTgyMjEyMjBlMzRmMjZjNjM5YjEyMmMyOGJlZGIzOTM0Y2RkZWQ3NjA2MTBkOGQ4NTJlNTViZGI2MGM4OTcwYmRhMGRlOWU2NjQ3MzZmNmM2MzQzMDAwODEwMDAzM2EyNjQ2OTcwNjY3MzU4MjIxMjIwNjNhMzliNDk0NjEzYzA4YzQ1MjA3ZDk0YTRlYmIxMTg1ZGE4NzcxNjg3MmQ0M2QyNmNiMmU1ZDRlYzFiYzY5MjY0NzM2ZjZjNjM0MzAwMDgxMDAwMzNhMjY0Njk3MDY2NzM1ODIyMTIyMDJlYjc1MzIzMTk0MjdkZDAwZWY1Njg0YzYzOWMyZmY1OWNkOTZkN2E2ZjY0MTUyMTEzZTgxMWNlOWY4MzE2MzM2NDczNmY2YzYzNDMwMDA4MTAwMDMzNjA4MDYwNDA1MjM0ODAxNTYxMDAxMDU3NjAwMDgwZmQ1YjUwNjEwMWJjODA2MTAwMjA2MDAwMzk2MDAwZjNmZTYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYwMDQzNjEwNjEwMDM2NTc2MDAwMzU2MGUwMWM4MDYzOTcxMGRiZDkxNDYxMDAzYjU3ODA2M2MzNGMwNDFjMTQ2MTAwNDU1NzViNjAwMDgwZmQ1YjYxMDA0MzYxMDA2MzU2NWIwMDViNjEwMDRkNjEwMDkyNTY1YjYwNDA1MTYxMDA1YTkxOTA2MTAxMGY1NjViNjA0MDUxODA5MTAzOTBmMzViNjAwMDYwNDA1MTYxMDA3MTkwNjEwMGMyNTY1YjYwNDA1MTgwOTEwMzkwNjAwMGYwODAxNTgwMTU2MTAwOGQ1NzNkNjAwMDgwM2UzZDYwMDBmZDViNjAwMDgwZmQ1YjYwMDA2MDQwNTE2MTAwYTA5MDYxMDBjMjU2NWI2MDQwNTE4MDkxMDM5MDYwMDBmMDgwMTU4MDE1NjEwMGJjNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwOTA1MDkwNTY1YjYwNWM4MDYxMDEyYjgzMzkwMTkwNTY1YjYwMDA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MjE2OTA1MDkxOTA1MDU2NWI2MDAwNjEwMGY5ODI2MTAwY2U1NjViOTA1MDkxOTA1MDU2NWI2MTAxMDk4MTYxMDBlZTU2NWI4MjUyNTA1MDU2NWI2MDAwNjAyMDgyMDE5MDUwNjEwMTI0NjAwMDgzMDE4NDYxMDEwMDU2NWI5MjkxNTA1MDU2ZmU2MDgwNjA0MDUyMzQ4MDE1NjAwZjU3NjAwMDgwZmQ1YjUwNjAzZjgwNjAxZDYwMDAzOTYwMDBmM2ZlNjA4MDYwNDA1MjYwMDA4MGZkZmVhMjY0Njk3MDY2NzM1ODIyMTIyMGUzNGYyNmM2MzliMTIyYzI4YmVkYjM5MzRjZGRlZDc2MDYxMGQ4ZDg1MmU1NWJkYjYwYzg5NzBiZGEwZGU5ZTY2NDczNmY2YzYzNDMwMDA4MTAwMDMzYTI2NDY5NzA2NjczNTgyMjEyMjA2M2EzOWI0OTQ2MTNjMDhjNDUyMDdkOTRhNGViYjExODVkYTg3NzE2ODcyZDQzZDI2Y2IyZTVkNGVjMWJjNjkyNjQ3MzZmNmM2MzQzMDAwODEwMDAzMw==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwB9smD5ywM/an5ELQzFmDwqS9OtsHULViINxsHOxHfRlWRhWpb35sP/vyeEH7IQiSGgwI1rbkrQYQ07fOoQIiDwoJCJq25K0GEOMfEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQibtuStBhDlHxICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGKYNGiISIBSJ/eh9iwXPlNdjiuD2E8WQxYSS1hYSkx1yOj69o70aIKDCHkIFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGKcNKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAi0Xx84NQX5lE6gU4cZ+q84wYUi0zrwgqzLxQGYTmf211f7Pz+kC9HlktCWts5vZkaCwjXtuStBhD70IBGIg8KCQibtuStBhDlHxICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMICzxQ1C0xMKAxinDRKYEWCAYEBSNIAVYQAQV2AAgP1bUGAENhBhAIhXYAA1YOAcgGOuPqUIEWEAW1eAY64+pQgUYQDvV4BjtnjDihRhAR9XgGPQJmmtFGEBO1eAY9BDJlIUYQFXV2EAiFZbgGMG3x00FGEAjVeAY1atDogUYQC9V4BjWlW1dxRhANtXgGOt1wLwFGEA5VdbYACA/VthAKdgBIA2A4EBkGEAopGQYQVLVlthAXVWW2BAUWEAtJGQYQW5VltgQFGAkQOQ81thAMVhAbxWW2BAUWEA0pGQYQXjVltgQFGAkQOQ81thAONhAchWWwBbYQDtYQJbVlsAW2EBCWAEgDYDgQGQYQEEkZBhBUtWW2EC71ZbYEBRYQEWkZBhBblWW2BAUYCRA5DzW2EBOWAEgDYDgQGQYQE0kZBhBUtWW2EDN1ZbAFthAVVgBIA2A4EBkGEBUJGQYQVLVlthBFZWWwBbYQFfYQT2VltgQFFhAWyRkGEF41ZbYEBRgJEDkPNbYACAgoFUgRBhAYpXYQGJYQX+VltbkGAAUmAgYAAgAWAAkFSQYQEACpAEc///////////////////////////FpBQkZBQVltgAICAVJBQkFCQVltgAGBAUWEB1pBhBQNWW2BAUYCRA5BgAPCAFYAVYQHyVz1gAIA+PWAA/VtQkFBgAIGQgGABgVQBgIJVgJFQUGABkAOQYABSYCBgACABYACQkZCRkJFhAQAKgVSBc///////////////////////////AhkWkINz//////////////////////////8WAheQVVBQVltgAGBAUWECaZBhBQNWW2BAUYCRA5BgAPCAFYAVYQKFVz1gAIA+PWAA/VtQkFBgAIGQgGABgVQBgIJVgJFQUGABkAOQYABSYCBgACABYACQkZCRkJFhAQAKgVSBc///////////////////////////AhkWkINz//////////////////////////8WAheQVWAAgP1bYABgAYKBVIEQYQMFV2EDBGEF/lZbW5BgAFJgIGAAIAFgAJBUkGEBAAqQBHP//////////////////////////xaQUJGQUFZbYACAgoFUgRBhA0xXYQNLYQX+VltbkGAAUmAgYAAgAWAAkFSQYQEACpAEc///////////////////////////FpBQYACBc///////////////////////////FmPDTAQcYEBRgWP/////FmDgG4FSYAQBYCBgQFGAgwOBYACHWvEVgBVhA8hXPWAAgD49YAD9W1BQUFBgQFE9YB8ZYB+CARaCAYBgQFJQgQGQYQPskZBhBllWW5BQYAGBkIBgAYFUAYCCVYCRUFBgAZADkGAAUmAgYAAgAWAAkJGQkZCRYQEACoFUgXP//////////////////////////wIZFpCDc///////////////////////////FgIXkFVQUFBQVltgAICCgVSBEGEEa1dhBGphBf5WW1uQYABSYCBgACABYACQVJBhAQAKkARz//////////////////////////8WkFCAc///////////////////////////FmOXENvZYEBRgWP/////FmDgG4FSYAQBYABgQFGAgwOBYACHgDsVgBVhBOBXYACA/VtQWvGSUFBQgBVhBPFXUGABW1BQUFZbYABgAYBUkFCQUJBWW2EB3IBhBoeDOQGQVltgAID9W2AAgZBQkZBQVlthBSiBYQUVVluBFGEFM1dgAID9W1BWW2AAgTWQUGEFRYFhBR9WW5KRUFBWW2AAYCCChAMSFWEFYVdhBWBhBRBWW1tgAGEFb4SChQFhBTZWW5FQUJKRUFBWW2AAc///////////////////////////ghaQUJGQUFZbYABhBaOCYQV4VluQUJGQUFZbYQWzgWEFmFZbglJQUFZbYABgIIIBkFBhBc5gAIMBhGEFqlZbkpFQUFZbYQXdgWEFFVZbglJQUFZbYABgIIIBkFBhBfhgAIMBhGEF1FZbkpFQUFZbf05Ie3EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYABSYDJgBFJgJGAA/VthBjaBYQWYVluBFGEGQVdgAID9W1BWW2AAgVGQUGEGU4FhBi1WW5KRUFBWW2AAYCCChAMSFWEGb1dhBm5hBRBWW1tgAGEGfYSChQFhBkRWW5FQUJKRUFBW/mCAYEBSNIAVYQAQV2AAgP1bUGEBvIBhACBgADlgAPP+YIBgQFI0gBVhABBXYACA/VtQYAQ2EGEANldgADVg4ByAY5cQ29kUYQA7V4Bjw0wEHBRhAEVXW2AAgP1bYQBDYQBjVlsAW2EATWEAklZbYEBRYQBakZBhAQ9WW2BAUYCRA5DzW2AAYEBRYQBxkGEAwlZbYEBRgJEDkGAA8IAVgBVhAI1XPWAAgD49YAD9W2AAgP1bYABgQFFhAKCQYQDCVltgQFGAkQOQYADwgBWAFWEAvFc9YACAPj1gAP1bUJBQkFZbYFyAYQErgzkBkFZbYABz//////////////////////////+CFpBQkZBQVltgAGEA+YJhAM5WW5BQkZBQVlthAQmBYQDuVluCUlBQVltgAGAgggGQUGEBJGAAgwGEYQEAVluSkVBQVv5ggGBAUjSAFWAPV2AAgP1bUGA/gGAdYAA5YADz/mCAYEBSYACA/f6iZGlwZnNYIhIg408mxjmxIsKL7bOTTN3tdgYQ2NhS5VvbYMiXC9oN6eZkc29sY0MACBAAM6JkaXBmc1giEiBjo5tJRhPAjEUgfZSk67EYXah3FoctQ9JssuXU7BvGkmRzb2xjQwAIEAAzomRpcGZzWCISIC63UyMZQn3QDvVoTGOcL/Wc2W16b2QVIRPoEc6fgxYzZHNvbGNDAAgQADMigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKIC1GDoDGKcNOgMYqA06AxipDToDGKoNShYKFAAAAAAAAAAAAAAAAAAAAAAAAAanUhYKCQoCGAIQ/+WKGwoJCgIYYhCA5oob"},{"b64Body":"ChEKCQibtuStBhDlHxICGAIgAUI4GiISIBSJ/eh9iwXPlNdjiuD2E8WQxYSS1hYSkx1yOj69o70aQgUIgM7aA2oLY2VsbGFyIGRvb3I=","b64Record":"CgcIFiIDGKgNEjAYcQF4JkZmU8pWbTiTdJ7cCihwKRq+hwzfxlzibdg93AEPNyGKzo3ZuH2wrrn9GrQaCwjXtuStBhD80IBGIhEKCQibtuStBhDlHxICGAIgAUIdCgMYqA1KFgoUKsyVp7MIfZWDmwnSAGTe1cTU7AxSAHoLCNe25K0GEPvQgEY="},{"b64Body":"ChEKCQibtuStBhDlHxICGAIgAkI4GiISIBSJ/eh9iwXPlNdjiuD2E8WQxYSS1hYSkx1yOj69o70aQgUIgM7aA2oLY2VsbGFyIGRvb3I=","b64Record":"CgcIFiIDGKkNEjDG9ouoheMMemgy/lcuFqFnlCH2BBRYh5qls0x7tVMl29g125BhKSjZzUQ/Ghj5V64aCwjXtuStBhD90IBGIhEKCQibtuStBhDlHxICGAIgAkIdCgMYqQ1KFgoUah8DoUCdeEqBRnO1yqLNcIB7HY1SAHoLCNe25K0GEPvQgEY="},{"b64Body":"ChEKCQibtuStBhDlHxICGAIgA0I4GiISIBSJ/eh9iwXPlNdjiuD2E8WQxYSS1hYSkx1yOj69o70aQgUIgM7aA2oLY2VsbGFyIGRvb3I=","b64Record":"CgcIFiIDGKoNEjDqQSsdbpn5SFVblRphY2vsFuBIMAu75dPcGEhamYfqRH1puCAOy7/Tyu+/qtM9+HIaCwjXtuStBhD+0IBGIhEKCQibtuStBhDlHxICGAIgA0IdCgMYqg1KFgoU0lAfIPVmQo7QlLDJLt85ZTmse4RSAHoLCNe25K0GEPvQgEY="}]},"someErc721GetApprovedScenariosPass":{"placeholderNum":1707,"encodedItems":[{"b64Body":"Cg8KCQihtuStBhCJIBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISID0XIj8cmL94N2RetiMvtN/TIn0Tm46lIVHJjDlapgaiEICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGKwNKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBIBllakLKg5QxnKSqKDxDDUWoRRjttAvwyFbHKrhs8+QjZJjIVKumPcFIDGkETBxMaDAjdtuStBhC7+fvUASIPCgkIobbkrQYQiSASAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxisDRCAqNa5Bw=="},{"b64Body":"Cg8KCQihtuStBhCLIBICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAjdhL+xBhCAt/K6AxptCiISIFKScDAFCnD3vA0y+R4aHDG1vvsCwQPOp3lxi9tAQXekCiM6IQINvX95qUtWX+JbobuKoAcBh0DsyeLqiwnnSb3qnGNGmAoiEiCGJiKM32TcXv1XCF87n+FIy5+DTqIphB8vDJ6BV/c1EiIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGK0NKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAQTpx5o9vP7lQHOTBmyIuDOkNPiZc8haKf/Y8QnDq62zLFLV8WIdNCEH572S5VcU0aDAjdtuStBhD7xLbWAyIPCgkIobbkrQYQiyASAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiituStBhCPIBICGAISAhgDGIudjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxitDSKAIDYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMWI1NTgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDBiNDU3NjAwMDM1NjBlMDFjODA2MzU3YTlkMzU2MTE2MTAwNzE1NzgwNjM1N2E5ZDM1NjE0NjEwMTYxNTc4MDYzNjQzM2NkNWQxNDYxMDE5MTU3ODA2MzdjNDFhZDJjMTQ2MTAxYWQ1NzgwNjM5Yjg1ZmU2MDE0NjEwMWRkNTc4MDYzZDVkMDNlMjExNDYxMDFmOTU3ODA2M2YwYWU5NWFhMTQ2MTAyMTU1NzYxMDBiNDU2NWI4MDYzMDIwODM1OWQxNDYxMDBiOTU3ODA2MzE0NGZkNWU5MTQ2MTAwZDU1NzgwNjMxNWRhY2JlYTE0NjEwMGYxNTc4MDYzMjQ1MzQxYTExNDYxMDEwZDU3ODA2MzI4YTU5NTIwMTQ2MTAxMjk1NzgwNjM1MzI5MGI0NDE0NjEwMTQ1NTc1YjYwMDA4MGZkNWI2MTAwZDM2MDA0ODAzNjAzODEwMTkwNjEwMGNlOTE5MDYxMTAzMzU2NWI2MTAyNDU1NjViMDA1YjYxMDBlZjYwMDQ4MDM2MDM4MTAxOTA2MTAwZWE5MTkwNjExMDMzNTY1YjYxMDQ1OTU2NWIwMDViNjEwMTBiNjAwNDgwMzYwMzgxMDE5MDYxMDEwNjkxOTA2MTEwYTk1NjViNjEwNWVhNTY1YjAwNWI2MTAxMjc2MDA0ODAzNjAzODEwMTkwNjEwMTIyOTE5MDYxMTExMDU2NWI2MTA2NWY1NjViMDA1YjYxMDE0MzYwMDQ4MDM2MDM4MTAxOTA2MTAxM2U5MTkwNjExMTEwNTY1YjYxMDZkMTU2NWIwMDViNjEwMTVmNjAwNDgwMzYwMzgxMDE5MDYxMDE1YTkxOTA2MTEwMzM1NjViNjEwODAxNTY1YjAwNWI2MTAxN2I2MDA0ODAzNjAzODEwMTkwNjEwMTc2OTE5MDYxMTExMDU2NWI2MTA4ODA1NjViNjA0MDUxNjEwMTg4OTE5MDYxMTE1ZjU2NWI2MDQwNTE4MDkxMDM5MGYzNWI2MTAxYWI2MDA0ODAzNjAzODEwMTkwNjEwMWE2OTE5MDYxMTE3YTU2NWI2MTA5MDQ1NjViMDA1YjYxMDFjNzYwMDQ4MDM2MDM4MTAxOTA2MTAxYzI5MTkwNjExMWNkNTY1YjYxMDk3NjU2NWI2MDQwNTE2MTAxZDQ5MTkwNjExMjEzNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDFmNzYwMDQ4MDM2MDM4MTAxOTA2MTAxZjI5MTkwNjExMjY2NTY1YjYxMGE4YjU2NWIwMDViNjEwMjEzNjAwNDgwMzYwMzgxMDE5MDYxMDIwZTkxOTA2MTExMTA1NjViNjEwYWZkNTY1YjAwNWI2MTAyMmY2MDA0ODAzNjAzODEwMTkwNjEwMjJhOTE5MDYxMTJiOTU2NWI2MTBiN2M1NjViNjA0MDUxNjEwMjNjOTE5MDYxMTMxYjU2NWI2MDQwNTE4MDkxMDM5MGYzNWI2MDAwNjAwMjY3ZmZmZmZmZmZmZmZmZmZmZjgxMTExNTYxMDI2MjU3NjEwMjYxNjExMzM2NTY1YjViNjA0MDUxOTA4MDgyNTI4MDYwMjAwMjYwMjAwMTgyMDE2MDQwNTI4MDE1NjEwMjk1NTc4MTYwMjAwMTViNjA2MDgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMDI4MDU3OTA1MDViNTA5MDUwNjA0MDUxODA2MDQwMDE2MDQwNTI4MDYwMDE4MTUyNjAyMDAxN2ZlZTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODE1MjUwODE2MDAwODE1MTgxMTA2MTAyZTI1NzYxMDJlMTYxMTM2NTU2NWI1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA2MDQwNTE4MDYwNDAwMTYwNDA1MjgwNjAwMTgxNTI2MDIwMDE3ZmZmMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MTUyNTA4MTYwMDE4MTUxODExMDYxMDMzNzU3NjEwMzM2NjExMzY1NTY1YjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDYwMDAzMDkwNTA2MDAwODA2MTAzNTY4NjYwMDA4NjYxMGMwMzU2NWI5MjUwNTA5MTUwNjAxNjgyMTQ2MTAzNjg1NzYwMDA4MGZkNWI2MTAzOGY4Njg0ODc4NDYwMDA4MTUxODExMDYxMDM4MjU3NjEwMzgxNjExMzY1NTY1YjViNjAyMDAyNjAyMDAxMDE1MTYxMGQ3YjU2NWI5MTUwNjAxNjgyMTQ2MTAzOWU1NzYwMDA4MGZkNWI2MTAzYzU4Njg0ODc4NDYwMDE4MTUxODExMDYxMDNiODU3NjEwM2I3NjExMzY1NTY1YjViNjAyMDAyNjAyMDAxMDE1MTYxMGQ3YjU2NWI5MTUwNjAxNjgyMTQ2MTAzZDQ1NzYwMDA4MGZkNWI2MTAzZmI4Njg2ODU4NDYwMDA4MTUxODExMDYxMDNlZTU3NjEwM2VkNjExMzY1NTY1YjViNjAyMDAyNjAyMDAxMDE1MTYxMGQ3YjU2NWI5MTUwNjAxNjgyMTQ2MTA0MGE1NzYwMDA4MGZkNWI2MTA0MzE4Njg2ODU4NDYwMDE4MTUxODExMDYxMDQyNDU3NjEwNDIzNjExMzY1NTY1YjViNjAyMDAyNjAyMDAxMDE1MTYxMGQ3YjU2NWI5MTUwNjAxNjgyMTQ2MTA0NDA1NzYwMDA4MGZkNWI2MTA0NGM4NjYwMDA4MzYxMGU5OTU2NWI1MDgwOTI1MDUwNTA1MDUwNTA1MDUwNTY1YjYwMDA2MDAyNjdmZmZmZmZmZmZmZmZmZmZmODExMTE1NjEwNDc2NTc2MTA0NzU2MTEzMzY1NjViNWI2MDQwNTE5MDgwODI1MjgwNjAyMDAyNjAyMDAxODIwMTYwNDA1MjgwMTU2MTA0YTk1NzgxNjAyMDAxNWI2MDYwODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjEwNDk0NTc5MDUwNWI1MDkwNTA2MDQwNTE4MDYwNDAwMTYwNDA1MjgwNjAwMTgxNTI2MDIwMDE3ZmVlMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MTUyNTA4MTYwMDA4MTUxODExMDYxMDRmNjU3NjEwNGY1NjExMzY1NTY1YjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDYwNDA1MTgwNjA0MDAxNjA0MDUyODA2MDAxODE1MjYwMjAwMTdmZmYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgxNTI1MDgxNjAwMTgxNTE4MTEwNjEwNTRiNTc2MTA1NGE2MTEzNjU1NjViNWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNjAwMDgwNjEwNTY1ODU2MDAwODU2MTBjMDM1NjViOTI1MDUwOTE1MDYwMTY4MjE0NjEwNTc3NTc2MDAwODBmZDViNjEwNTllODUzMDg2ODQ2MDAwODE1MTgxMTA2MTA1OTE1NzYxMDU5MDYxMTM2NTU2NWI1YjYwMjAwMjYwMjAwMTAxNTE2MTBkN2I1NjViOTE1MDYwMTY4MjE0NjEwNWFkNTc2MDAwODBmZDViNjEwNWQ0ODUzMDg2ODQ2MDAxODE1MTgxMTA2MTA1Yzc1NzYxMDVjNjYxMTM2NTU2NWI1YjYwMjAwMjYwMjAwMTAxNTE2MTBkN2I1NjViOTE1MDYwMTY4MjE0NjEwNWUzNTc2MDAwODBmZDViNTA1MDUwNTA1MDU2NWI4MzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjMyM2I4NzJkZDg0ODQ4NDYwNDA1MTg0NjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYxMDYyNzkzOTI5MTkwNjExM2EzNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NzgwM2IxNTgwMTU2MTA2NDE1NzYwMDA4MGZkNWI1MDVhZjExNTgwMTU2MTA2NTU1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA1MDUwNTA1MDU2NWI4MTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjMwOTVlYTdiMzYwMDA4MzYwNDA1MTgzNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYxMDY5YjkyOTE5MDYxMTNkYTU2NWI2MDAwNjA0MDUxODA4MzAzODE2MDAwODc4MDNiMTU4MDE1NjEwNmI1NTc2MDAwODBmZDViNTA1YWYxMTU4MDE1NjEwNmM5NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNTA1MDU2NWI2MDAwMzA5MDUwODI3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzMjNiODcyZGQ4MjMzODU2MDQwNTE4NDYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MTA3MTM5MzkyOTE5MDYxMTNhMzU2NWI2MDAwNjA0MDUxODA4MzAzODE2MDAwODc4MDNiMTU4MDE1NjEwNzJkNTc2MDAwODBmZDViNTA1YWYxMTU4MDE1NjEwNzQxNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjAwMDgzNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MzYzNTIyMTFlODQ2MDQwNTE4MjYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MTA3ODA5MTkwNjExNDAzNTY1YjYwMjA2MDQwNTE4MDgzMDM4MTg2NWFmYTE1ODAxNTYxMDc5ZDU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAxZjE5NjAxZjgyMDExNjgyMDE4MDYwNDA1MjUwODEwMTkwNjEwN2MxOTE5MDYxMTQzMzU2NWI5MDUwMzM3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjgxNzNmZmZmZmY=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwUbhEnDTJJTnyUa/bzZjbo4856s5Bpos3F5k5ZKfjpg07SBiLtw8/FJbV3R5W3VYcGgwI3rbkrQYQm4rO3gEiDwoJCKK25K0GEI8gEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQiituStBhCVIBICGAISAhgDGPjR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxitDSKAIGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjE0NjEwN2ZiNTc2MDAwODBmZDViNTA1MDUwNTA1NjViODE3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzNzBhMDgyMzE4MjYwNDA1MTgyNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYxMDgzYTkxOTA2MTExNWY1NjViNjAyMDYwNDA1MTgwODMwMzgxODY1YWZhMTU4MDE1NjEwODU3NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTA4N2I5MTkwNjExNDc1NTY1YjUwNTA1MDU2NWI2MDAwODI3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzMDgxODEyZmM4MzYwNDA1MTgyNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYxMDhiYjkxOTA2MTE0MDM1NjViNjAyMDYwNDA1MTgwODMwMzgxODY1YWZhMTU4MDE1NjEwOGQ4NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTA4ZmM5MTkwNjExNDMzNTY1YjkwNTA5MjkxNTA1MDU2NWI4MjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjMwOTVlYTdiMzgzODM2MDQwNTE4MzYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MTA5M2Y5MjkxOTA2MTEzZGE1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg3ODAzYjE1ODAxNTYxMDk1OTU3NjAwMDgwZmQ1YjUwNWFmMTE1ODAxNTYxMDk2ZDU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDUwNTA1MDU2NWI2MDAwODA2MDAwNjEwMTY3NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MzdjNDFhZDJjNjBlMDFiODU2MDQwNTE2MDI0MDE2MTA5YWQ5MTkwNjExMTVmNTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMGExNzkxOTA2MTE1MTM1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMGE1NDU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMGE1OTU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEwYTZhNTc2MDE1NjEwYTdmNTY1YjgwODA2MDIwMDE5MDUxODEwMTkwNjEwYTdlOTE5MDYxMTU2MzU2NWI1YjYwMDMwYjkyNTA1MDUwOTE5MDUwNTY1YjgyNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2M2EyMmNiNDY1ODM4MzYwNDA1MTgzNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYxMGFjNjkyOTE5MDYxMTU5MDU2NWI2MDAwNjA0MDUxODA4MzAzODE2MDAwODc4MDNiMTU4MDE1NjEwYWUwNTc2MDAwODBmZDViNTA1YWYxMTU4MDE1NjEwYWY0NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNTA1MDUwNTY1YjgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MzYzNTIyMTFlODI2MDQwNTE4MjYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MTBiMzY5MTkwNjExNDAzNTY1YjYwMjA2MDQwNTE4MDgzMDM4MTg2NWFmYTE1ODAxNTYxMGI1MzU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAxZjE5NjAxZjgyMDExNjgyMDE4MDYwNDA1MjUwODEwMTkwNjEwYjc3OTE5MDYxMTQzMzU2NWI1MDUwNTA1NjViNjAwMDgzNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2M2U5ODVlOWM1ODQ4NDYwNDA1MTgzNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYxMGJiOTkyOTE5MDYxMTViOTU2NWI2MDIwNjA0MDUxODA4MzAzODE4NjVhZmExNTgwMTU2MTBiZDY1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA2MDQwNTEzZDYwMWYxOTYwMWY4MjAxMTY4MjAxODA2MDQwNTI1MDgxMDE5MDYxMGJmYTkxOTA2MTE1Zjc1NjViOTA1MDkzOTI1MDUwNTA1NjViNjAwMDgwNjA2MDYwMDA4MDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjMyNzhlMGI4ODYwZTAxYjg5ODk4OTYwNDA1MTYwMjQwMTYxMGM0MTkzOTI5MTkwNjExNzY0NTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMGNhYjkxOTA2MTE1MTM1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMGNlODU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMGNlZDU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEwZDQ5NTc2MDE1NjAwMDgwNjdmZmZmZmZmZmZmZmZmZmZmODExMTE1NjEwZDE1NTc2MTBkMTQ2MTEzMzY1NjViNWI2MDQwNTE5MDgwODI1MjgwNjAyMDAyNjAyMDAxODIwMTYwNDA1MjgwMTU2MTBkNDM1NzgxNjAyMDAxNjAyMDgyMDI4MDM2ODMzNzgwODIwMTkxNTA1MDkwNTA1YjUwNjEwZDVlNTY1YjgwODA2MDIwMDE5MDUxODEwMTkwNjEwZDVkOTE5MDYxMTkyMDU2NWI1YjgyNjAwMzBiOTI1MDgwOTU1MDgxOTY1MDgyOTc1MDUwNTA1MDUwNTA5MzUwOTM1MDkzOTA1MDU2NWI2MDAwODA2MDAwNjEwMTY3NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MzVjZmM5MDExNjBlMDFiODg4ODg4ODg2MDQwNTE2MDI0MDE2MTBkYjg5NDkzOTI5MTkwNjExOTllNTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMGUyMjkxOTA2MTE1MTM1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMGU1ZjU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMGU2NDU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEwZTc1NTc2MDE1NjEwZThhNTY1YjgwODA2MDIwMDE5MDUxODEwMTkwNjEwZTg5OTE5MDYxMTU2MzU2NWI1YjYwMDMwYjkyNTA1MDUwOTQ5MzUwNTA1MDUwNTY1YjYwMDA4MDYwMDA4MDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjNhY2I5Y2ZmOTYwZTAxYjg4ODg4ODYwNDA1MTYwMjQwMTYxMGVkNTkzOTI5MTkwNjExYWExNTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMGYzZjkxOTA2MTE1MTM1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMGY3YzU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMGY4MTU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEwZjk0NTc2MDE1NjAwMDYxMGZhOTU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMGZhODkxOTA2MTFhZGY1NjViNWI4MTYwMDMwYjkxNTA4MDk0NTA4MTk1NTA1MDUwNTA1MDkzNTA5MzkxNTA1MDU2NWI2MDAwNjA0MDUxOTA1MDkwNTY1YjYwMDA4MGZkNWI2MDAwODBmZDViNjAwMDczZmZmZmZmZmZmZmZmZmY=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwagWnbgQ4nYxnGtSqHDqU2dx3C6Sh/yl950X/xWxBBk/v0aVe87ZUWFw3csNmZL4sGgwI3rbkrQYQu+SmwwMiDwoJCKK25K0GEJUgEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQijtuStBhCbIBICGAISAhgDGPfR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxitDSKAIGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIxNjkwNTA5MTkwNTA1NjViNjAwMDYxMTAwMDgyNjEwZmQ1NTY1YjkwNTA5MTkwNTA1NjViNjExMDEwODE2MTBmZjU1NjViODExNDYxMTAxYjU3NjAwMDgwZmQ1YjUwNTY1YjYwMDA4MTM1OTA1MDYxMTAyZDgxNjExMDA3NTY1YjkyOTE1MDUwNTY1YjYwMDA4MDYwNDA4Mzg1MDMxMjE1NjExMDRhNTc2MTEwNDk2MTBmY2I1NjViNWI2MDAwNjExMDU4ODU4Mjg2MDE2MTEwMWU1NjViOTI1MDUwNjAyMDYxMTA2OTg1ODI4NjAxNjExMDFlNTY1YjkxNTA1MDkyNTA5MjkwNTA1NjViNjAwMDgxOTA1MDkxOTA1MDU2NWI2MTEwODY4MTYxMTA3MzU2NWI4MTE0NjExMDkxNTc2MDAwODBmZDViNTA1NjViNjAwMDgxMzU5MDUwNjExMGEzODE2MTEwN2Q1NjViOTI5MTUwNTA1NjViNjAwMDgwNjAwMDgwNjA4MDg1ODcwMzEyMTU2MTEwYzM1NzYxMTBjMjYxMGZjYjU2NWI1YjYwMDA2MTEwZDE4NzgyODgwMTYxMTAxZTU2NWI5NDUwNTA2MDIwNjExMGUyODc4Mjg4MDE2MTEwMWU1NjViOTM1MDUwNjA0MDYxMTBmMzg3ODI4ODAxNjExMDFlNTY1YjkyNTA1MDYwNjA2MTExMDQ4NzgyODgwMTYxMTA5NDU2NWI5MTUwNTA5Mjk1OTE5NDUwOTI1MDU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMTEyNzU3NjExMTI2NjEwZmNiNTY1YjViNjAwMDYxMTEzNTg1ODI4NjAxNjExMDFlNTY1YjkyNTA1MDYwMjA2MTExNDY4NTgyODYwMTYxMTA5NDU2NWI5MTUwNTA5MjUwOTI5MDUwNTY1YjYxMTE1OTgxNjEwZmY1NTY1YjgyNTI1MDUwNTY1YjYwMDA2MDIwODIwMTkwNTA2MTExNzQ2MDAwODMwMTg0NjExMTUwNTY1YjkyOTE1MDUwNTY1YjYwMDA4MDYwMDA2MDYwODQ4NjAzMTIxNTYxMTE5MzU3NjExMTkyNjEwZmNiNTY1YjViNjAwMDYxMTFhMTg2ODI4NzAxNjExMDFlNTY1YjkzNTA1MDYwMjA2MTExYjI4NjgyODcwMTYxMTAxZTU2NWI5MjUwNTA2MDQwNjExMWMzODY4Mjg3MDE2MTEwOTQ1NjViOTE1MDUwOTI1MDkyNTA5MjU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTExZTM1NzYxMTFlMjYxMGZjYjU2NWI1YjYwMDA2MTExZjE4NDgyODUwMTYxMTAxZTU2NWI5MTUwNTA5MjkxNTA1MDU2NWI2MDAwODE5MDUwOTE5MDUwNTY1YjYxMTIwZDgxNjExMWZhNTY1YjgyNTI1MDUwNTY1YjYwMDA2MDIwODIwMTkwNTA2MTEyMjg2MDAwODMwMTg0NjExMjA0NTY1YjkyOTE1MDUwNTY1YjYwMDA4MTE1MTU5MDUwOTE5MDUwNTY1YjYxMTI0MzgxNjExMjJlNTY1YjgxMTQ2MTEyNGU1NzYwMDA4MGZkNWI1MDU2NWI2MDAwODEzNTkwNTA2MTEyNjA4MTYxMTIzYTU2NWI5MjkxNTA1MDU2NWI2MDAwODA2MDAwNjA2MDg0ODYwMzEyMTU2MTEyN2Y1NzYxMTI3ZTYxMGZjYjU2NWI1YjYwMDA2MTEyOGQ4NjgyODcwMTYxMTAxZTU2NWI5MzUwNTA2MDIwNjExMjllODY4Mjg3MDE2MTEwMWU1NjViOTI1MDUwNjA0MDYxMTJhZjg2ODI4NzAxNjExMjUxNTY1YjkxNTA1MDkyNTA5MjUwOTI1NjViNjAwMDgwNjAwMDYwNjA4NDg2MDMxMjE1NjExMmQyNTc2MTEyZDE2MTBmY2I1NjViNWI2MDAwNjExMmUwODY4Mjg3MDE2MTEwMWU1NjViOTM1MDUwNjAyMDYxMTJmMTg2ODI4NzAxNjExMDFlNTY1YjkyNTA1MDYwNDA2MTEzMDI4NjgyODcwMTYxMTAxZTU2NWI5MTUwNTA5MjUwOTI1MDkyNTY1YjYxMTMxNTgxNjExMjJlNTY1YjgyNTI1MDUwNTY1YjYwMDA2MDIwODIwMTkwNTA2MTEzMzA2MDAwODMwMTg0NjExMzBjNTY1YjkyOTE1MDUwNTY1YjdmNGU0ODdiNzEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYwMDA1MjYwNDE2MDA0NTI2MDI0NjAwMGZkNWI3ZjRlNDg3YjcxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MDAwNTI2MDMyNjAwNDUyNjAyNDYwMDBmZDViNjExMzlkODE2MTEwNzM1NjViODI1MjUwNTA1NjViNjAwMDYwNjA4MjAxOTA1MDYxMTNiODYwMDA4MzAxODY2MTExNTA1NjViNjExM2M1NjAyMDgzMDE4NTYxMTE1MDU2NWI2MTEzZDI2MDQwODMwMTg0NjExMzk0NTY1Yjk0OTM1MDUwNTA1MDU2NWI2MDAwNjA0MDgyMDE5MDUwNjExM2VmNjAwMDgzMDE4NTYxMTE1MDU2NWI2MTEzZmM2MDIwODMwMTg0NjExMzk0NTY1YjkzOTI1MDUwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDYxMTQxODYwMDA4MzAxODQ2MTEzOTQ1NjViOTI5MTUwNTA1NjViNjAwMDgxNTE5MDUwNjExNDJkODE2MTEwMDc1NjViOTI5MTUwNTA1NjViNjAwMDYwMjA4Mjg0MDMxMjE1NjExNDQ5NTc2MTE0NDg2MTBmY2I1NjViNWI2MDAwNjExNDU3ODQ4Mjg1MDE2MTE0MWU1NjViOTE1MDUwOTI5MTUwNTA1NjViNjAwMDgxNTE5MDUwNjExNDZmODE2MTEwN2Q1NjViOTI5MTUwNTA1NjViNjAwMDYwMjA4Mjg0MDMxMjE1NjExNDhiNTc2MTE0OGE2MTBmY2I1NjViNWI2MDAwNjExNDk5ODQ4Mjg1MDE2MTE0NjA1NjViOTE1MDUwOTI5MTUwNTA1NjViNjAwMDgxNTE5MDUwOTE5MDUwNTY1YjYwMDA4MTkwNTA5MjkxNTA1MDU2NWI2MDAwNWI4MzgxMTAxNTYxMTRkNjU3ODA4MjAxNTE4MTg0MDE1MjYwMjA4MTAxOTA1MDYxMTRiYjU2NWI2MDAwODQ4NDAxNTI1MDUwNTA1MDU2NWI2MDAwNjExNGVkODI2MTE0YTI1NjViNjExNGY3ODE4NTYxMTRhZDU2NWI5MzUwNjExNTA3ODE4NTYwMjA4NjAxNjExNGI4NTY1YjgwODQwMTkxNTA1MDkyOTE1MDUwNTY1YjYwMDA2MTE1MWY4Mjg0NjExNGUyNTY1YjkxNTA4MTkwNTA5MjkxNTA1MDU2NWI2MDAwODE2MDAzMGI5MDUwOTE5MDUwNTY1YjYxMTU0MDgxNjExNTJhNTY1YjgxMTQ2MTE1NGI1NzYwMDA4MGZkNWI1MDU2NWI2MDAwODE1MTkwNTA2MTE1NWQ4MTYxMTUzNzU2NWI5MjkxNTA1MDU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTE1Nzk1NzYxMTU3ODYxMGZjYjU2NWI1YjYwMDA2MTE1ODc4NDgyODUwMTYxMTU0ZTU2NWI5MTUwNTA5MjkxNTA1MDU2NWI2MDAwNjA0MDgyMDE5MDUwNjExNWE1NjAwMDgzMDE4NTYxMTE1MDU2NWI2MTE1YjI2MDIwODMwMTg0NjExMzBjNTY1YjkzOTI1MDUwNTA1NjViNjAwMDYwNDA4MjAxOTA1MDYxMTVjZTYwMDA4MzAxODU2MTExNTA1NjViNjExNWRiNjAyMDgzMDE4NDYxMTE1MDU2NWI5MzkyNTA1MDUwNTY1YjYwMDA4MTUxOTA1MDYxMTVmMTgxNjExMjNhNTY1YjkyOTE1MDUwNTY1YjYwMDA2MDIwODI4NDAzMTIxNTYxMTYwZDU3NjExNjBjNjEwZmNiNTY1YjViNjAwMDYxMTYxYjg0ODI4NTAxNjExNWUyNTY1YjkxNTA1MDkyOTE1MDUwNTY1YjYwMDA2N2ZmZmZmZmZmZmZmZmZmZmY4MjE2OTA1MDkxOTA1MDU2NWI2MTE2NDE4MTYxMTYyNDU2NWI4MjUyNTA1MDU2NWI2MDAwODE1MTkwNTA5MTkwNTA1NjViNjAwMDgyODI1MjYwMjA4MjAxOTA1MDkyOTE1MDUwNTY1YjYwMDA4MTkwNTA2MDIwODIwMTkwNTA5MTkwNTA1NjViNjAwMDgyODI1MjYwMjA4MjAxOTA1MDkyOTE1MDUwNTY1YjYwMDA2MDFmMTk2MDFmODMwMTE2OTA1MDkxOTA1MDU2NWI2MDAwNjExNmEwODI2MTE0YTI1NjViNjExNmFhODE4NTYxMTY3MzU2NWI5MzUwNjExNmJhODE4NTYwMjA4NjAxNjExNGI4NTY1YjYxMTZjMzgxNjExNjg0NTY1Yjg0MDE5MTUwNTA5MjkxNTA1MDU2NWI2MDAwNjExNmRhODM4MzYxMTY5NTU2NWI5MDUwOTI5MTUwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDkxOTA1MDU2NWI2MDAwNjExNmZhODI2MTE2NDc1NjViNjExNzA0ODE4NTYxMTY1MjU2NWI5MzUwODM2MDIwODIwMjg1MDE2MTE3MTY4NTYxMTY2MzU2NWI4MDYwMDA1Yjg1ODExMDE1NjExNzUyNTc4NDg0MDM4OTUyODE1MTYxMTczMzg1ODI2MTE2Y2U1NjViOTQ1MDYxMTczZTgzNjExNmUyNTY1YjkyNTA2MDIwOGEwMTk5NTA1MDYwMDE4MTAxOTA1MDYxMTcxYTU2NWI1MDgyOTc1MDg3OTU1MDUwNTA1MDUwNTA5MjkxNTA1MDU2NWI2MDAwNjA2MDgyMDE5MDUwNjExNzc5NjAwMDgzMDE4NjYxMTE1MDU2NWI2MTE3ODY2MDIwODMwMTg1NjExNjM4NTY1YjgxODEwMzYwNDA4MzAxNTI2MTE3OTg4MTg0NjExNmVmNTY1YjkwNTA5NDkzNTA1MDUwNTA1NjViNjExN2FiODE2MTE2MjQ1NjViODExNDYxMTdiNjU3NjAwMDgwZmQ1YjUwNTY1YjYwMDA4MTUxOTA1MDYxMTdjODgxNjExN2EyNTY1YjkyOTE1MDUwNTY1YjYwMDA4MGZkNWI2MTE3ZGM4MjYxMTY4NDU2NWI4MTAxODE=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwYL90dm6AuPPHOLshycdFQPW9rEmxZLpt+k3F2uxuYkJE10tWDCd6v9FNceHzq+RmGgwI37bkrQYQm4iH6AEiDwoJCKO25K0GEJsgEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQijtuStBhChIBICGAISAhgDGJvV0DQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIB8g0SAxitDSLqDTgxMTA2N2ZmZmZmZmZmZmZmZmZmZmY4MjExMTcxNTYxMTdmYjU3NjExN2ZhNjExMzM2NTY1YjViODA2MDQwNTI1MDUwNTA1NjViNjAwMDYxMTgwZTYxMGZjMTU2NWI5MDUwNjExODFhODI4MjYxMTdkMzU2NWI5MTkwNTA1NjViNjAwMDY3ZmZmZmZmZmZmZmZmZmZmZjgyMTExNTYxMTgzYTU3NjExODM5NjExMzM2NTY1YjViNjAyMDgyMDI5MDUwNjAyMDgxMDE5MDUwOTE5MDUwNTY1YjYwMDA4MGZkNWI2MDAwODE2MDA3MGI5MDUwOTE5MDUwNTY1YjYxMTg2NjgxNjExODUwNTY1YjgxMTQ2MTE4NzE1NzYwMDA4MGZkNWI1MDU2NWI2MDAwODE1MTkwNTA2MTE4ODM4MTYxMTg1ZDU2NWI5MjkxNTA1MDU2NWI2MDAwNjExODljNjExODk3ODQ2MTE4MWY1NjViNjExODA0NTY1YjkwNTA4MDgzODI1MjYwMjA4MjAxOTA1MDYwMjA4NDAyODMwMTg1ODExMTE1NjExOGJmNTc2MTE4YmU2MTE4NGI1NjViNWI4MzViODE4MTEwMTU2MTE4ZTg1NzgwNjExOGQ0ODg4MjYxMTg3NDU2NWI4NDUyNjAyMDg0MDE5MzUwNTA2MDIwODEwMTkwNTA2MTE4YzE1NjViNTA1MDUwOTM5MjUwNTA1MDU2NWI2MDAwODI2MDFmODMwMTEyNjExOTA3NTc2MTE5MDY2MTE3Y2U1NjViNWI4MTUxNjExOTE3ODQ4MjYwMjA4NjAxNjExODg5NTY1YjkxNTA1MDkyOTE1MDUwNTY1YjYwMDA4MDYwMDA2MDYwODQ4NjAzMTIxNTYxMTkzOTU3NjExOTM4NjEwZmNiNTY1YjViNjAwMDYxMTk0Nzg2ODI4NzAxNjExNTRlNTY1YjkzNTA1MDYwMjA2MTE5NTg4NjgyODcwMTYxMTdiOTU2NWI5MjUwNTA2MDQwODQwMTUxNjdmZmZmZmZmZmZmZmZmZmZmODExMTE1NjExOTc5NTc2MTE5Nzg2MTBmZDA1NjViNWI2MTE5ODU4NjgyODcwMTYxMThmMjU2NWI5MTUwNTA5MjUwOTI1MDkyNTY1YjYxMTk5ODgxNjExODUwNTY1YjgyNTI1MDUwNTY1YjYwMDA2MDgwODIwMTkwNTA2MTE5YjM2MDAwODMwMTg3NjExMTUwNTY1YjYxMTljMDYwMjA4MzAxODY2MTExNTA1NjViNjExOWNkNjA0MDgzMDE4NTYxMTE1MDU2NWI2MTE5ZGE2MDYwODMwMTg0NjExOThmNTY1Yjk1OTQ1MDUwNTA1MDUwNTY1YjYwMDA4MTUxOTA1MDkxOTA1MDU2NWI2MDAwODI4MjUyNjAyMDgyMDE5MDUwOTI5MTUwNTA1NjViNjAwMDgxOTA1MDYwMjA4MjAxOTA1MDkxOTA1MDU2NWI2MTFhMTg4MTYxMTg1MDU2NWI4MjUyNTA1MDU2NWI2MDAwNjExYTJhODM4MzYxMWEwZjU2NWI2MDIwODMwMTkwNTA5MjkxNTA1MDU2NWI2MDAwNjAyMDgyMDE5MDUwOTE5MDUwNTY1YjYwMDA2MTFhNGU4MjYxMTllMzU2NWI2MTFhNTg4MTg1NjExOWVlNTY1YjkzNTA2MTFhNjM4MzYxMTlmZjU2NWI4MDYwMDA1YjgzODExMDE1NjExYTk0NTc4MTUxNjExYTdiODg4MjYxMWExZTU2NWI5NzUwNjExYTg2ODM2MTFhMzY1NjViOTI1MDUwNjAwMTgxMDE5MDUwNjExYTY3NTY1YjUwODU5MzUwNTA1MDUwOTI5MTUwNTA1NjViNjAwMDYwNjA4MjAxOTA1MDYxMWFiNjYwMDA4MzAxODY2MTExNTA1NjViNjExYWMzNjAyMDgzMDE4NTYxMTYzODU2NWI4MTgxMDM2MDQwODMwMTUyNjExYWQ1ODE4NDYxMWE0MzU2NWI5MDUwOTQ5MzUwNTA1MDUwNTY1YjYwMDA4MDYwNDA4Mzg1MDMxMjE1NjExYWY2NTc2MTFhZjU2MTBmY2I1NjViNWI2MDAwNjExYjA0ODU4Mjg2MDE2MTE1NGU1NjViOTI1MDUwNjAyMDYxMWIxNTg1ODI4NjAxNjExN2I5NTY1YjkxNTA1MDkyNTA5MjkwNTA1NmZlYTI2NDY5NzA2NjczNTgyMjEyMjBjZWNjNjNhM2ZlZjIwMThhNWMzODQ1OGEzMDZhMWIzMTFhMDZlNTUzYTg4ZDlkMWNjZTAwMDdiNzkyYTk2NGNmNjQ3MzZmNmM2MzQzMDAwODEwMDAzMw==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwCuQisMeYfkEDWPm9W8VbZNbKypCLQM5HL3eAMZhyJx3eE1akULusPWWTmTYolk0LGgwI37bkrQYQ+9L5zAMiDwoJCKO25K0GEKEgEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQiktuStBhCjIBICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGK0NGiISIPAcGa3fxAS6ck76lSnWBDrcFyAbXQKXjN8OkDSss4KsIJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGK4NKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCY7swcFGsLem+o9l9AAz4xyFRExhtxvB+nOYoXl6hUvcWFqqYyB5rP34PV/794PfEaDAjgtuStBhDTsrbyASIPCgkIpLbkrQYQoyASAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQoo5CgMYrg0S1TZggGBAUjSAFWEAEFdgAID9W1BgBDYQYQC0V2AANWDgHIBjV6nTVhFhAHFXgGNXqdNWFGEBYVeAY2QzzV0UYQGRV4BjfEGtLBRhAa1XgGObhf5gFGEB3VeAY9XQPiEUYQH5V4Bj8K6VqhRhAhVXYQC0VluAYwIINZ0UYQC5V4BjFE/V6RRhANVXgGMV2svqFGEA8VeAYyRTQaEUYQENV4BjKKWVIBRhASlXgGNTKQtEFGEBRVdbYACA/VthANNgBIA2A4EBkGEAzpGQYRAzVlthAkVWWwBbYQDvYASANgOBAZBhAOqRkGEQM1ZbYQRZVlsAW2EBC2AEgDYDgQGQYQEGkZBhEKlWW2EF6lZbAFthASdgBIA2A4EBkGEBIpGQYREQVlthBl9WWwBbYQFDYASANgOBAZBhAT6RkGEREFZbYQbRVlsAW2EBX2AEgDYDgQGQYQFakZBhEDNWW2EIAVZbAFthAXtgBIA2A4EBkGEBdpGQYREQVlthCIBWW2BAUWEBiJGQYRFfVltgQFGAkQOQ81thAatgBIA2A4EBkGEBppGQYRF6VlthCQRWWwBbYQHHYASANgOBAZBhAcKRkGERzVZbYQl2VltgQFFhAdSRkGESE1ZbYEBRgJEDkPNbYQH3YASANgOBAZBhAfKRkGESZlZbYQqLVlsAW2ECE2AEgDYDgQGQYQIOkZBhERBWW2EK/VZbAFthAi9gBIA2A4EBkGECKpGQYRK5VlthC3xWW2BAUWECPJGQYRMbVltgQFGAkQOQ81tgAGACZ///////////gREVYQJiV2ECYWETNlZbW2BAUZCAglKAYCACYCABggFgQFKAFWEClVeBYCABW2BggVJgIAGQYAGQA5CBYQKAV5BQW1CQUGBAUYBgQAFgQFKAYAGBUmAgAX/uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIFSUIFgAIFRgRBhAuJXYQLhYRNlVltbYCACYCABAYGQUlBgQFGAYEABYEBSgGABgVJgIAF//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBUlCBYAGBUYEQYQM3V2EDNmETZVZbW2AgAmAgAQGBkFJQYAAwkFBgAIBhA1aGYACGYQwDVluSUFCRUGAWghRhA2hXYACA/VthA4+GhIeEYACBUYEQYQOCV2EDgWETZVZbW2AgAmAgAQFRYQ17VluRUGAWghRhA55XYACA/VthA8WGhIeEYAGBUYEQYQO4V2EDt2ETZVZbW2AgAmAgAQFRYQ17VluRUGAWghRhA9RXYACA/VthA/uGhoWEYACBUYEQYQPuV2ED7WETZVZbW2AgAmAgAQFRYQ17VluRUGAWghRhBApXYACA/VthBDGGhoWEYAGBUYEQYQQkV2EEI2ETZVZbW2AgAmAgAQFRYQ17VluRUGAWghRhBEBXYACA/VthBEyGYACDYQ6ZVltQgJJQUFBQUFBQUFZbYABgAmf//////////4ERFWEEdldhBHVhEzZWW1tgQFGQgIJSgGAgAmAgAYIBYEBSgBVhBKlXgWAgAVtgYIFSYCABkGABkAOQgWEElFeQUFtQkFBgQFGAYEABYEBSgGABgVJgIAF/7gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBUlCBYACBUYEQYQT2V2EE9WETZVZbW2AgAmAgAQGBkFJQYEBRgGBAAWBAUoBgAYFSYCABf/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgVJQgWABgVGBEGEFS1dhBUphE2VWW1tgIAJgIAEBgZBSUGAAgGEFZYVgAIVhDANWW5JQUJFQYBaCFGEFd1dgAID9W2EFnoUwhoRgAIFRgRBhBZFXYQWQYRNlVltbYCACYCABAVFhDXtWW5FQYBaCFGEFrVdgAID9W2EF1IUwhoRgAYFRgRBhBcdXYQXGYRNlVltbYCACYCABAVFhDXtWW5FQYBaCFGEF41dgAID9W1BQUFBQVluDc///////////////////////////FmMjuHLdhISEYEBRhGP/////FmDgG4FSYAQBYQYnk5KRkGETo1ZbYABgQFGAgwOBYACHgDsVgBVhBkFXYACA/VtQWvEVgBVhBlVXPWAAgD49YAD9W1BQUFBQUFBQVluBc///////////////////////////FmMJXqezYACDYEBRg2P/////FmDgG4FSYAQBYQabkpGQYRPaVltgAGBAUYCDA4FgAIeAOxWAFWEGtVdgAID9W1Ba8RWAFWEGyVc9YACAPj1gAP1bUFBQUFBQVltgADCQUIJz//////////////////////////8WYyO4ct2CM4VgQFGEY/////8WYOAbgVJgBAFhBxOTkpGQYROjVltgAGBAUYCDA4FgAIeAOxWAFWEHLVdgAID9W1Ba8RWAFWEHQVc9YACAPj1gAP1bUFBQUGAAg3P//////////////////////////xZjY1IhHoRgQFGCY/////8WYOAbgVJgBAFhB4CRkGEUA1ZbYCBgQFGAgwOBhlr6FYAVYQedVz1gAIA+PWAA/VtQUFBQYEBRPWAfGWAfggEWggGAYEBSUIEBkGEHwZGQYRQzVluQUDNz//////////////////////////8WgXP//////////////////////////xYUYQf7V2AAgP1bUFBQUFZbgXP//////////////////////////xZjcKCCMYJgQFGCY/////8WYOAbgVJgBAFhCDqRkGERX1ZbYCBgQFGAgwOBhlr6FYAVYQhXVz1gAIA+PWAA/VtQUFBQYEBRPWAfGWAfggEWggGAYEBSUIEBkGEIe5GQYRR1VltQUFBWW2AAgnP//////////////////////////xZjCBgS/INgQFGCY/////8WYOAbgVJgBAFhCLuRkGEUA1ZbYCBgQFGAgwOBhlr6FYAVYQjYVz1gAIA+PWAA/VtQUFBQYEBRPWAfGWAfggEWggGAYEBSUIEBkGEI/JGQYRQzVluQUJKRUFBWW4Jz//////////////////////////8WYwlep7ODg2BAUYNj/////xZg4BuBUmAEAWEJP5KRkGET2lZbYABgQFGAgwOBYACHgDsVgBVhCVlXYACA/VtQWvEVgBVhCW1XPWAAgD49YAD9W1BQUFBQUFBWW2AAgGAAYQFnc///////////////////////////FmN8Qa0sYOAbhWBAUWAkAWEJrZGQYRFfVltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhCheRkGEVE1ZbYABgQFGAgwOBYACGWvGRUFA9gGAAgRRhClRXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hCllWW2BgkVBbUJFQkVCBYQpqV2AVYQp/VluAgGAgAZBRgQGQYQp+kZBhFWNWW1tgAwuSUFBQkZBQVluCc///////////////////////////FmOiLLRlg4NgQFGDY/////8WYOAbgVJgBAFhCsaSkZBhFZBWW2AAYEBRgIMDgWAAh4A7FYAVYQrgV2AAgP1bUFrxFYAVYQr0Vz1gAIA+PWAA/VtQUFBQUFBQVluBc///////////////////////////FmNjUiEegmBAUYJj/////xZg4BuBUmAEAWELNpGQYRQDVltgIGBAUYCDA4GGWvoVgBVhC1NXPWAAgD49YAD9W1BQUFBgQFE9YB8ZYB+CARaCAYBgQFJQgQGQYQt3kZBhFDNWW1BQUFZbYACDc///////////////////////////FmPphenFhIRgQFGDY/////8WYOAbgVJgBAFhC7mSkZBhFblWW2AgYEBRgIMDgYZa+hWAFWEL1lc9YACAPj1gAP1bUFBQUGBAUT1gHxlgH4IBFoIBgGBAUlCBAZBhC/qRkGEV91ZbkFCTklBQUFZbYACAYGBgAIBhAWdz//////////////////////////8WYyeOC4hg4BuJiYlgQFFgJAFhDEGTkpGQYRdkVltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhDKuRkGEVE1ZbYABgQFGAgwOBYACGWvGRUFA9gGAAgRRhDOhXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hDO1WW2BgkVBbUJFQkVCBYQ1JV2AVYACAZ///////////gREVYQ0VV2ENFGETNlZbW2BAUZCAglKAYCACYCABggFgQFKAFWENQ1eBYCABYCCCAoA2gzeAggGRUFCQUFtQYQ1eVluAgGAgAZBRgQGQYQ1dkZBhGSBWW1uCYAMLklCAlVCBllCCl1BQUFBQUJNQk1CTkFBWW2AAgGAAYQFnc///////////////////////////FmNc/JARYOAbiIiIiGBAUWAkAWENuJSTkpGQYRmeVltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhDiKRkGEVE1ZbYABgQFGAgwOBYACGWvGRUFA9gGAAgRRhDl9XYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hDmRWW2BgkVBbUJFQkVCBYQ51V2AVYQ6KVluAgGAgAZBRgQGQYQ6JkZBhFWNWW1tgAwuSUFBQlJNQUFBQVltgAIBgAIBhAWdz//////////////////////////8WY6y5z/lg4BuIiIhgQFFgJAFhDtWTkpGQYRqhVltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhDz+RkGEVE1ZbYABgQFGAgwOBYACGWvGRUFA9gGAAgRRhD3xXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hD4FWW2BgkVBbUJFQkVCBYQ+UV2AVYABhD6lWW4CAYCABkFGBAZBhD6iRkGEa31ZbW4FgAwuRUICUUIGVUFBQUFCTUJORUFBWW2AAYEBRkFCQVltgAID9W2AAgP1bYABz//////////////////////////+CFpBQkZBQVltgAGEQAIJhD9VWW5BQkZBQVlthEBCBYQ/1VluBFGEQG1dgAID9W1BWW2AAgTWQUGEQLYFhEAdWW5KRUFBWW2AAgGBAg4UDEhVhEEpXYRBJYQ/LVltbYABhEFiFgoYBYRAeVluSUFBgIGEQaYWChgFhEB5WW5FQUJJQkpBQVltgAIGQUJGQUFZbYRCGgWEQc1ZbgRRhEJFXYACA/VtQVltgAIE1kFBhEKOBYRB9VluSkVBQVltgAIBgAIBggIWHAxIVYRDDV2EQwmEPy1ZbW2AAYRDRh4KIAWEQHlZblFBQYCBhEOKHgogBYRAeVluTUFBgQGEQ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"},{"b64Body":"Cg8KCQiktuStBhClIBICGAISAhgDGNaL5+gCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAU0KB25mVG9rZW4SCFlaTFNBVVBCKgMYrg1SIhIg8BwZrd/EBLpyTvqVKdYEOtwXIBtdApeM3w6QNKyzgqxqDAjghL+xBhCgovTNA4gBAQ==","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGK8NEjAeKKkNnwZ0HZK/eWSbV7+voNF8AnLAlPFKG+VaOQZZ3vbjxkMie8Y4QnlYsrs7muUaDAjgtuStBhDbz6jWAyIPCgkIpLbkrQYQpSASAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAcgoKAxivDRIDGK4N"},{"b64Body":"Cg8KCQiltuStBhCrIBICGAISAhgDGP2NkRAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjqoCCwoDGK8NGgFBGgFC","b64Record":"CiYIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1gCcgIBAhIwGCyNHLUM3SWl48gYDLjhleV2R9G2W/U4jiXdnLAPnLGDDpUkOTqzbOWWHGQIMoauGgwI4bbkrQYQ25ex+wEiDwoJCKW25K0GEKsgEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAFofCgMYrw0aCwoCGAASAxiuDRgBGgsKAhgAEgMYrg0YAg=="},{"b64Body":"Cg8KCQiltuStBhCzIBICGAISAhgDGOC2iyAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGKwNEgMYrw0=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw/I9dsIUK7fkTHuqX2u764da7le6nKprdE3iU3RRVTxlZaUZJB+VrOa9ivtKXNsjjGgsI4rbkrQYQw8T1AiIPCgkIpbbkrQYQsyASAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQimtuStBhC1IBICGAISAhgDGMC/7SEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjpPCgMYrg0QwIQ9IkRXqdNWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKLCoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQ==","b64Record":"CiUIHSIDGK4NKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBmNO2j7WZaVzRrIoGx0idZLvSOC5/Gu+OC4sEyxZZIW9Xjj9rallrbIggGczw8qwwaDAjituStBhDbsOGEAiIPCgkIprbkrQYQtSASAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDAv+0hOh4aGElOVkFMSURfU09MSURJVFlfQUREUkVTUyjAhD1SFgoJCgIYAhD//tpDCgkKAhhiEID/2kM="},{"b64Body":"Cg8KCQimtuStBhC3IBICGAISAhgDGMC/7SEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjpvCgMYrg0QwIQ9ImRkM81dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABq8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB","b64Record":"CiUIFiIDGK4NKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBC4DwGI+OYdTQr85t0QVWC8RSjIE5OxhDYH2nFec4xaU+Pv1sh3P3LfxWz43BkanoaCwjjtuStBhCj5usMIg8KCQimtuStBhC3IBICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMIDmihs6nwUKAxiuDSKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAgAEAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQACEAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAEAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAogOowMpADCgMYrw0SgAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAIABAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAEAAhAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAABAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGiCMW+Hl6+x9W9FPcUJ9HoTz3QMUwPeyKR5bIArIx8O5JRogAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABq4aIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAasGiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVIWCgkKAhgCEP/LlTYKCQoCGGIQgMyVNg=="},{"b64Body":"ChEKCQimtuStBhC3IBICGAIgAYIDFBISCgMYrw0SAxiuDRoDGKwNIgEB","b64Record":"CgIIFhIwLtpG9myBSQMJBXNP3tp2KEY2DfpPpubEslgttSE4UUqyid3L0lqf1sjyp4OVX7LEGgsI47bkrQYQpObrDCIRCgkIprbkrQYQtyASAhgCIAE6kgEKAxjnAhIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEo4v0qUMy8OWJcYY3GXgAAAAAAAAAAAAAAAAAAAAAAAAavCV6nswAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAasAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFqAxiuDVIAegsI47bkrQYQo+brDA=="},{"b64Body":"Cg8KCQintuStBhC5IBICGAISAhgDGMC/7SEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjpPCgMYrg0QwIQ9IkRXqdNWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABq8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANw==","b64Record":"CiUIISIDGK4NKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAmxNeDAYnSP+7KWM4Teo2bmYmuN2MAaJL2sL26LTwwMHoA/opgc7taWQ5WM6cP4QAaDAjjtuStBhDb9tnxASIPCgkIp7bkrQYQuSASAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCA5oobOggaAjB4KIDqMFIWCgkKAhgCEP/LlTYKCQoCGGIQgMyVNg=="},{"b64Body":"Cg8KCQiotuStBhC/IBICGAISAhgDGMC/7SEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjpPCgMYrg0QwIQ9IkRXqdNWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABq8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg==","b64Record":"CiUIFiIDGK4NKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAHakxBwv5Q8Zb20Tyh9doZ6fkdnYaXmwKfYcwOFXEKgRmgpM2K+gCeFdBPB5BG/4caCwjktuStBhDbtJIWIg8KCQiotuStBhC/IBICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMIDmihs6rgIKAxiuDRIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKIDqMFIWCgkKAhgCEP/LlTYKCQoCGGIQgMyVNg=="},{"b64Body":"ChEKCQiotuStBhC/IBICGAIgATpFCgMY5wIQASI8YY3GXgAAAAAAAAAAAAAAAAAAAAAAAAavCBgS/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC","b64Record":"CgIIFhIw8M0agLXKguiO9kdnNPoeZono/ZXaJeIxB3rCetsDHOsH/Pn/5Whly9T5QpCVUOl7GgsI5LbkrQYQ3LSSFiIRCgkIqLbkrQYQvyASAhgCIAE6LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYrg1SAHoLCOS25K0GENu0khY="},{"b64Body":"Cg8KCQiotuStBhDBIBICGAISAhgDGMC/7SEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjpPCgMYrg0QwIQ9IkRXqdNWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABq8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQ==","b64Record":"CiUIFiIDGK4NKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBTBS7p2A8I12zWGXWU9j1hY6VRpdsC9HM2UXz1pLuXv5qhl3PPZE5C043I4kAClkcaDAjktuStBhDLluqXAiIPCgkIqLbkrQYQwSASAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCA5oobOq4CCgMYrg0SIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAasIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACiA6jBSFgoJCgIYAhD/y5U2CgkKAhhiEIDMlTY="},{"b64Body":"ChEKCQiotuStBhDBIBICGAIgATpFCgMY5wIQASI8YY3GXgAAAAAAAAAAAAAAAAAAAAAAAAavCBgS/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB","b64Record":"CgIIFhIw4c/0a+1AsYffYoqqat81ROod29O/6ywlMXHqPXn5dy5YvKSPA3UBwfBQ84IHHDskGgwI5LbkrQYQzJbqlwIiEQoJCKi25K0GEMEgEgIYAiABOi4KAxjnAhIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqwoZGoDGK4NUgB6DAjktuStBhDLluqXAg=="}]},"someErc721OwnerOfScenariosPass":{"placeholderNum":1712,"encodedItems":[{"b64Body":"Cg8KCQiutuStBhD5IBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISILBiajhKPK677ByjT/dln8U2Icw/Oyqeujv5phbtvXeyEICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGLENKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjC0FBHkWxTUsCIVyYca5MYg/FBAEWgI7vm+jySe78nqFeW/bE0bjmQtSbleePiV87QaDAjqtuStBhDb48SFAyIPCgkIrrbkrQYQ+SASAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxixDRCAqNa5Bw=="},{"b64Body":"Cg8KCQivtuStBhD7IBICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAjrhL+xBhDglP2TARptCiISIPiRUkNOi/rf9u0yziurGnBQ8U+7/kCS06i57hYO2cgpCiM6IQLYpdCaFMX1YbyOtqe9YUgLf80Ilo1SfJxmQdUVFzFIgQoiEiA5P9DVkDYUHtFxjEp/Q3XYnstB4NYTKWOcIN4A0kqDPCIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGLINKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCZfmO7/cwn+hxFUKIvm4g8Zo0uP54nphf5j8L4gIDxhW6vihyHdTaxVIbLk12HtJYaDAjrtuStBhDj2vepASIPCgkIr7bkrQYQ+yASAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQivtuStBhD/IBICGAISAhgDGIydjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxiyDSKAIDYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMWI1NTgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDBiNDU3NjAwMDM1NjBlMDFjODA2MzU3YTlkMzU2MTE2MTAwNzE1NzgwNjM1N2E5ZDM1NjE0NjEwMTYxNTc4MDYzNjQzM2NkNWQxNDYxMDE5MTU3ODA2MzdjNDFhZDJjMTQ2MTAxYWQ1NzgwNjM5Yjg1ZmU2MDE0NjEwMWRkNTc4MDYzZDVkMDNlMjExNDYxMDFmOTU3ODA2M2YwYWU5NWFhMTQ2MTAyMTU1NzYxMDBiNDU2NWI4MDYzMDIwODM1OWQxNDYxMDBiOTU3ODA2MzE0NGZkNWU5MTQ2MTAwZDU1NzgwNjMxNWRhY2JlYTE0NjEwMGYxNTc4MDYzMjQ1MzQxYTExNDYxMDEwZDU3ODA2MzI4YTU5NTIwMTQ2MTAxMjk1NzgwNjM1MzI5MGI0NDE0NjEwMTQ1NTc1YjYwMDA4MGZkNWI2MTAwZDM2MDA0ODAzNjAzODEwMTkwNjEwMGNlOTE5MDYxMTAzMzU2NWI2MTAyNDU1NjViMDA1YjYxMDBlZjYwMDQ4MDM2MDM4MTAxOTA2MTAwZWE5MTkwNjExMDMzNTY1YjYxMDQ1OTU2NWIwMDViNjEwMTBiNjAwNDgwMzYwMzgxMDE5MDYxMDEwNjkxOTA2MTEwYTk1NjViNjEwNWVhNTY1YjAwNWI2MTAxMjc2MDA0ODAzNjAzODEwMTkwNjEwMTIyOTE5MDYxMTExMDU2NWI2MTA2NWY1NjViMDA1YjYxMDE0MzYwMDQ4MDM2MDM4MTAxOTA2MTAxM2U5MTkwNjExMTEwNTY1YjYxMDZkMTU2NWIwMDViNjEwMTVmNjAwNDgwMzYwMzgxMDE5MDYxMDE1YTkxOTA2MTEwMzM1NjViNjEwODAxNTY1YjAwNWI2MTAxN2I2MDA0ODAzNjAzODEwMTkwNjEwMTc2OTE5MDYxMTExMDU2NWI2MTA4ODA1NjViNjA0MDUxNjEwMTg4OTE5MDYxMTE1ZjU2NWI2MDQwNTE4MDkxMDM5MGYzNWI2MTAxYWI2MDA0ODAzNjAzODEwMTkwNjEwMWE2OTE5MDYxMTE3YTU2NWI2MTA5MDQ1NjViMDA1YjYxMDFjNzYwMDQ4MDM2MDM4MTAxOTA2MTAxYzI5MTkwNjExMWNkNTY1YjYxMDk3NjU2NWI2MDQwNTE2MTAxZDQ5MTkwNjExMjEzNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDFmNzYwMDQ4MDM2MDM4MTAxOTA2MTAxZjI5MTkwNjExMjY2NTY1YjYxMGE4YjU2NWIwMDViNjEwMjEzNjAwNDgwMzYwMzgxMDE5MDYxMDIwZTkxOTA2MTExMTA1NjViNjEwYWZkNTY1YjAwNWI2MTAyMmY2MDA0ODAzNjAzODEwMTkwNjEwMjJhOTE5MDYxMTJiOTU2NWI2MTBiN2M1NjViNjA0MDUxNjEwMjNjOTE5MDYxMTMxYjU2NWI2MDQwNTE4MDkxMDM5MGYzNWI2MDAwNjAwMjY3ZmZmZmZmZmZmZmZmZmZmZjgxMTExNTYxMDI2MjU3NjEwMjYxNjExMzM2NTY1YjViNjA0MDUxOTA4MDgyNTI4MDYwMjAwMjYwMjAwMTgyMDE2MDQwNTI4MDE1NjEwMjk1NTc4MTYwMjAwMTViNjA2MDgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMDI4MDU3OTA1MDViNTA5MDUwNjA0MDUxODA2MDQwMDE2MDQwNTI4MDYwMDE4MTUyNjAyMDAxN2ZlZTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODE1MjUwODE2MDAwODE1MTgxMTA2MTAyZTI1NzYxMDJlMTYxMTM2NTU2NWI1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA2MDQwNTE4MDYwNDAwMTYwNDA1MjgwNjAwMTgxNTI2MDIwMDE3ZmZmMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MTUyNTA4MTYwMDE4MTUxODExMDYxMDMzNzU3NjEwMzM2NjExMzY1NTY1YjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDYwMDAzMDkwNTA2MDAwODA2MTAzNTY4NjYwMDA4NjYxMGMwMzU2NWI5MjUwNTA5MTUwNjAxNjgyMTQ2MTAzNjg1NzYwMDA4MGZkNWI2MTAzOGY4Njg0ODc4NDYwMDA4MTUxODExMDYxMDM4MjU3NjEwMzgxNjExMzY1NTY1YjViNjAyMDAyNjAyMDAxMDE1MTYxMGQ3YjU2NWI5MTUwNjAxNjgyMTQ2MTAzOWU1NzYwMDA4MGZkNWI2MTAzYzU4Njg0ODc4NDYwMDE4MTUxODExMDYxMDNiODU3NjEwM2I3NjExMzY1NTY1YjViNjAyMDAyNjAyMDAxMDE1MTYxMGQ3YjU2NWI5MTUwNjAxNjgyMTQ2MTAzZDQ1NzYwMDA4MGZkNWI2MTAzZmI4Njg2ODU4NDYwMDA4MTUxODExMDYxMDNlZTU3NjEwM2VkNjExMzY1NTY1YjViNjAyMDAyNjAyMDAxMDE1MTYxMGQ3YjU2NWI5MTUwNjAxNjgyMTQ2MTA0MGE1NzYwMDA4MGZkNWI2MTA0MzE4Njg2ODU4NDYwMDE4MTUxODExMDYxMDQyNDU3NjEwNDIzNjExMzY1NTY1YjViNjAyMDAyNjAyMDAxMDE1MTYxMGQ3YjU2NWI5MTUwNjAxNjgyMTQ2MTA0NDA1NzYwMDA4MGZkNWI2MTA0NGM4NjYwMDA4MzYxMGU5OTU2NWI1MDgwOTI1MDUwNTA1MDUwNTA1MDUwNTY1YjYwMDA2MDAyNjdmZmZmZmZmZmZmZmZmZmZmODExMTE1NjEwNDc2NTc2MTA0NzU2MTEzMzY1NjViNWI2MDQwNTE5MDgwODI1MjgwNjAyMDAyNjAyMDAxODIwMTYwNDA1MjgwMTU2MTA0YTk1NzgxNjAyMDAxNWI2MDYwODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjEwNDk0NTc5MDUwNWI1MDkwNTA2MDQwNTE4MDYwNDAwMTYwNDA1MjgwNjAwMTgxNTI2MDIwMDE3ZmVlMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MTUyNTA4MTYwMDA4MTUxODExMDYxMDRmNjU3NjEwNGY1NjExMzY1NTY1YjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDYwNDA1MTgwNjA0MDAxNjA0MDUyODA2MDAxODE1MjYwMjAwMTdmZmYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgxNTI1MDgxNjAwMTgxNTE4MTEwNjEwNTRiNTc2MTA1NGE2MTEzNjU1NjViNWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNjAwMDgwNjEwNTY1ODU2MDAwODU2MTBjMDM1NjViOTI1MDUwOTE1MDYwMTY4MjE0NjEwNTc3NTc2MDAwODBmZDViNjEwNTllODUzMDg2ODQ2MDAwODE1MTgxMTA2MTA1OTE1NzYxMDU5MDYxMTM2NTU2NWI1YjYwMjAwMjYwMjAwMTAxNTE2MTBkN2I1NjViOTE1MDYwMTY4MjE0NjEwNWFkNTc2MDAwODBmZDViNjEwNWQ0ODUzMDg2ODQ2MDAxODE1MTgxMTA2MTA1Yzc1NzYxMDVjNjYxMTM2NTU2NWI1YjYwMjAwMjYwMjAwMTAxNTE2MTBkN2I1NjViOTE1MDYwMTY4MjE0NjEwNWUzNTc2MDAwODBmZDViNTA1MDUwNTA1MDU2NWI4MzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjMyM2I4NzJkZDg0ODQ4NDYwNDA1MTg0NjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYxMDYyNzkzOTI5MTkwNjExM2EzNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NzgwM2IxNTgwMTU2MTA2NDE1NzYwMDA4MGZkNWI1MDVhZjExNTgwMTU2MTA2NTU1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA1MDUwNTA1MDU2NWI4MTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjMwOTVlYTdiMzYwMDA4MzYwNDA1MTgzNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYxMDY5YjkyOTE5MDYxMTNkYTU2NWI2MDAwNjA0MDUxODA4MzAzODE2MDAwODc4MDNiMTU4MDE1NjEwNmI1NTc2MDAwODBmZDViNTA1YWYxMTU4MDE1NjEwNmM5NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNTA1MDU2NWI2MDAwMzA5MDUwODI3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzMjNiODcyZGQ4MjMzODU2MDQwNTE4NDYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MTA3MTM5MzkyOTE5MDYxMTNhMzU2NWI2MDAwNjA0MDUxODA4MzAzODE2MDAwODc4MDNiMTU4MDE1NjEwNzJkNTc2MDAwODBmZDViNTA1YWYxMTU4MDE1NjEwNzQxNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjAwMDgzNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MzYzNTIyMTFlODQ2MDQwNTE4MjYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MTA3ODA5MTkwNjExNDAzNTY1YjYwMjA2MDQwNTE4MDgzMDM4MTg2NWFmYTE1ODAxNTYxMDc5ZDU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAxZjE5NjAxZjgyMDExNjgyMDE4MDYwNDA1MjUwODEwMTkwNjEwN2MxOTE5MDYxMTQzMzU2NWI5MDUwMzM3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjgxNzNmZmZmZmY=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwJytKkSnDr+HyfaM8tEuj2TbnWlzIBCKVCMBO+x5k3p4+lOZ2HmhIzWHgKw+muC9OGgwI67bkrQYQw5bvjgMiDwoJCK+25K0GEP8gEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQiwtuStBhCFIRICGAISAhgDGPjR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxiyDSKAIGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjE0NjEwN2ZiNTc2MDAwODBmZDViNTA1MDUwNTA1NjViODE3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzNzBhMDgyMzE4MjYwNDA1MTgyNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYxMDgzYTkxOTA2MTExNWY1NjViNjAyMDYwNDA1MTgwODMwMzgxODY1YWZhMTU4MDE1NjEwODU3NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTA4N2I5MTkwNjExNDc1NTY1YjUwNTA1MDU2NWI2MDAwODI3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzMDgxODEyZmM4MzYwNDA1MTgyNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYxMDhiYjkxOTA2MTE0MDM1NjViNjAyMDYwNDA1MTgwODMwMzgxODY1YWZhMTU4MDE1NjEwOGQ4NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTA4ZmM5MTkwNjExNDMzNTY1YjkwNTA5MjkxNTA1MDU2NWI4MjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjMwOTVlYTdiMzgzODM2MDQwNTE4MzYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MTA5M2Y5MjkxOTA2MTEzZGE1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg3ODAzYjE1ODAxNTYxMDk1OTU3NjAwMDgwZmQ1YjUwNWFmMTE1ODAxNTYxMDk2ZDU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDUwNTA1MDU2NWI2MDAwODA2MDAwNjEwMTY3NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MzdjNDFhZDJjNjBlMDFiODU2MDQwNTE2MDI0MDE2MTA5YWQ5MTkwNjExMTVmNTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMGExNzkxOTA2MTE1MTM1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMGE1NDU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMGE1OTU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEwYTZhNTc2MDE1NjEwYTdmNTY1YjgwODA2MDIwMDE5MDUxODEwMTkwNjEwYTdlOTE5MDYxMTU2MzU2NWI1YjYwMDMwYjkyNTA1MDUwOTE5MDUwNTY1YjgyNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2M2EyMmNiNDY1ODM4MzYwNDA1MTgzNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYxMGFjNjkyOTE5MDYxMTU5MDU2NWI2MDAwNjA0MDUxODA4MzAzODE2MDAwODc4MDNiMTU4MDE1NjEwYWUwNTc2MDAwODBmZDViNTA1YWYxMTU4MDE1NjEwYWY0NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNTA1MDUwNTY1YjgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MzYzNTIyMTFlODI2MDQwNTE4MjYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MTBiMzY5MTkwNjExNDAzNTY1YjYwMjA2MDQwNTE4MDgzMDM4MTg2NWFmYTE1ODAxNTYxMGI1MzU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAxZjE5NjAxZjgyMDExNjgyMDE4MDYwNDA1MjUwODEwMTkwNjEwYjc3OTE5MDYxMTQzMzU2NWI1MDUwNTA1NjViNjAwMDgzNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2M2U5ODVlOWM1ODQ4NDYwNDA1MTgzNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYxMGJiOTkyOTE5MDYxMTViOTU2NWI2MDIwNjA0MDUxODA4MzAzODE4NjVhZmExNTgwMTU2MTBiZDY1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA2MDQwNTEzZDYwMWYxOTYwMWY4MjAxMTY4MjAxODA2MDQwNTI1MDgxMDE5MDYxMGJmYTkxOTA2MTE1Zjc1NjViOTA1MDkzOTI1MDUwNTA1NjViNjAwMDgwNjA2MDYwMDA4MDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjMyNzhlMGI4ODYwZTAxYjg5ODk4OTYwNDA1MTYwMjQwMTYxMGM0MTkzOTI5MTkwNjExNzY0NTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMGNhYjkxOTA2MTE1MTM1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMGNlODU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMGNlZDU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEwZDQ5NTc2MDE1NjAwMDgwNjdmZmZmZmZmZmZmZmZmZmZmODExMTE1NjEwZDE1NTc2MTBkMTQ2MTEzMzY1NjViNWI2MDQwNTE5MDgwODI1MjgwNjAyMDAyNjAyMDAxODIwMTYwNDA1MjgwMTU2MTBkNDM1NzgxNjAyMDAxNjAyMDgyMDI4MDM2ODMzNzgwODIwMTkxNTA1MDkwNTA1YjUwNjEwZDVlNTY1YjgwODA2MDIwMDE5MDUxODEwMTkwNjEwZDVkOTE5MDYxMTkyMDU2NWI1YjgyNjAwMzBiOTI1MDgwOTU1MDgxOTY1MDgyOTc1MDUwNTA1MDUwNTA5MzUwOTM1MDkzOTA1MDU2NWI2MDAwODA2MDAwNjEwMTY3NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MzVjZmM5MDExNjBlMDFiODg4ODg4ODg2MDQwNTE2MDI0MDE2MTBkYjg5NDkzOTI5MTkwNjExOTllNTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMGUyMjkxOTA2MTE1MTM1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMGU1ZjU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMGU2NDU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEwZTc1NTc2MDE1NjEwZThhNTY1YjgwODA2MDIwMDE5MDUxODEwMTkwNjEwZTg5OTE5MDYxMTU2MzU2NWI1YjYwMDMwYjkyNTA1MDUwOTQ5MzUwNTA1MDUwNTY1YjYwMDA4MDYwMDA4MDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjNhY2I5Y2ZmOTYwZTAxYjg4ODg4ODYwNDA1MTYwMjQwMTYxMGVkNTkzOTI5MTkwNjExYWExNTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMGYzZjkxOTA2MTE1MTM1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMGY3YzU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMGY4MTU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEwZjk0NTc2MDE1NjAwMDYxMGZhOTU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMGZhODkxOTA2MTFhZGY1NjViNWI4MTYwMDMwYjkxNTA4MDk0NTA4MTk1NTA1MDUwNTA1MDkzNTA5MzkxNTA1MDU2NWI2MDAwNjA0MDUxOTA1MDkwNTY1YjYwMDA4MGZkNWI2MDAwODBmZDViNjAwMDczZmZmZmZmZmZmZmZmZmY=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwemE4YSTH2sd5ypdjiI0qFCIJmtYB8xNQmfaoQ3GVSOzwbpDXYxCGQLyVbgdbHApgGgwI7LbkrQYQm/vWswEiDwoJCLC25K0GEIUhEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQiwtuStBhCLIRICGAISAhgDGPjR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxiyDSKAIGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIxNjkwNTA5MTkwNTA1NjViNjAwMDYxMTAwMDgyNjEwZmQ1NTY1YjkwNTA5MTkwNTA1NjViNjExMDEwODE2MTBmZjU1NjViODExNDYxMTAxYjU3NjAwMDgwZmQ1YjUwNTY1YjYwMDA4MTM1OTA1MDYxMTAyZDgxNjExMDA3NTY1YjkyOTE1MDUwNTY1YjYwMDA4MDYwNDA4Mzg1MDMxMjE1NjExMDRhNTc2MTEwNDk2MTBmY2I1NjViNWI2MDAwNjExMDU4ODU4Mjg2MDE2MTEwMWU1NjViOTI1MDUwNjAyMDYxMTA2OTg1ODI4NjAxNjExMDFlNTY1YjkxNTA1MDkyNTA5MjkwNTA1NjViNjAwMDgxOTA1MDkxOTA1MDU2NWI2MTEwODY4MTYxMTA3MzU2NWI4MTE0NjExMDkxNTc2MDAwODBmZDViNTA1NjViNjAwMDgxMzU5MDUwNjExMGEzODE2MTEwN2Q1NjViOTI5MTUwNTA1NjViNjAwMDgwNjAwMDgwNjA4MDg1ODcwMzEyMTU2MTEwYzM1NzYxMTBjMjYxMGZjYjU2NWI1YjYwMDA2MTEwZDE4NzgyODgwMTYxMTAxZTU2NWI5NDUwNTA2MDIwNjExMGUyODc4Mjg4MDE2MTEwMWU1NjViOTM1MDUwNjA0MDYxMTBmMzg3ODI4ODAxNjExMDFlNTY1YjkyNTA1MDYwNjA2MTExMDQ4NzgyODgwMTYxMTA5NDU2NWI5MTUwNTA5Mjk1OTE5NDUwOTI1MDU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMTEyNzU3NjExMTI2NjEwZmNiNTY1YjViNjAwMDYxMTEzNTg1ODI4NjAxNjExMDFlNTY1YjkyNTA1MDYwMjA2MTExNDY4NTgyODYwMTYxMTA5NDU2NWI5MTUwNTA5MjUwOTI5MDUwNTY1YjYxMTE1OTgxNjEwZmY1NTY1YjgyNTI1MDUwNTY1YjYwMDA2MDIwODIwMTkwNTA2MTExNzQ2MDAwODMwMTg0NjExMTUwNTY1YjkyOTE1MDUwNTY1YjYwMDA4MDYwMDA2MDYwODQ4NjAzMTIxNTYxMTE5MzU3NjExMTkyNjEwZmNiNTY1YjViNjAwMDYxMTFhMTg2ODI4NzAxNjExMDFlNTY1YjkzNTA1MDYwMjA2MTExYjI4NjgyODcwMTYxMTAxZTU2NWI5MjUwNTA2MDQwNjExMWMzODY4Mjg3MDE2MTEwOTQ1NjViOTE1MDUwOTI1MDkyNTA5MjU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTExZTM1NzYxMTFlMjYxMGZjYjU2NWI1YjYwMDA2MTExZjE4NDgyODUwMTYxMTAxZTU2NWI5MTUwNTA5MjkxNTA1MDU2NWI2MDAwODE5MDUwOTE5MDUwNTY1YjYxMTIwZDgxNjExMWZhNTY1YjgyNTI1MDUwNTY1YjYwMDA2MDIwODIwMTkwNTA2MTEyMjg2MDAwODMwMTg0NjExMjA0NTY1YjkyOTE1MDUwNTY1YjYwMDA4MTE1MTU5MDUwOTE5MDUwNTY1YjYxMTI0MzgxNjExMjJlNTY1YjgxMTQ2MTEyNGU1NzYwMDA4MGZkNWI1MDU2NWI2MDAwODEzNTkwNTA2MTEyNjA4MTYxMTIzYTU2NWI5MjkxNTA1MDU2NWI2MDAwODA2MDAwNjA2MDg0ODYwMzEyMTU2MTEyN2Y1NzYxMTI3ZTYxMGZjYjU2NWI1YjYwMDA2MTEyOGQ4NjgyODcwMTYxMTAxZTU2NWI5MzUwNTA2MDIwNjExMjllODY4Mjg3MDE2MTEwMWU1NjViOTI1MDUwNjA0MDYxMTJhZjg2ODI4NzAxNjExMjUxNTY1YjkxNTA1MDkyNTA5MjUwOTI1NjViNjAwMDgwNjAwMDYwNjA4NDg2MDMxMjE1NjExMmQyNTc2MTEyZDE2MTBmY2I1NjViNWI2MDAwNjExMmUwODY4Mjg3MDE2MTEwMWU1NjViOTM1MDUwNjAyMDYxMTJmMTg2ODI4NzAxNjExMDFlNTY1YjkyNTA1MDYwNDA2MTEzMDI4NjgyODcwMTYxMTAxZTU2NWI5MTUwNTA5MjUwOTI1MDkyNTY1YjYxMTMxNTgxNjExMjJlNTY1YjgyNTI1MDUwNTY1YjYwMDA2MDIwODIwMTkwNTA2MTEzMzA2MDAwODMwMTg0NjExMzBjNTY1YjkyOTE1MDUwNTY1YjdmNGU0ODdiNzEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYwMDA1MjYwNDE2MDA0NTI2MDI0NjAwMGZkNWI3ZjRlNDg3YjcxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MDAwNTI2MDMyNjAwNDUyNjAyNDYwMDBmZDViNjExMzlkODE2MTEwNzM1NjViODI1MjUwNTA1NjViNjAwMDYwNjA4MjAxOTA1MDYxMTNiODYwMDA4MzAxODY2MTExNTA1NjViNjExM2M1NjAyMDgzMDE4NTYxMTE1MDU2NWI2MTEzZDI2MDQwODMwMTg0NjExMzk0NTY1Yjk0OTM1MDUwNTA1MDU2NWI2MDAwNjA0MDgyMDE5MDUwNjExM2VmNjAwMDgzMDE4NTYxMTE1MDU2NWI2MTEzZmM2MDIwODMwMTg0NjExMzk0NTY1YjkzOTI1MDUwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDYxMTQxODYwMDA4MzAxODQ2MTEzOTQ1NjViOTI5MTUwNTA1NjViNjAwMDgxNTE5MDUwNjExNDJkODE2MTEwMDc1NjViOTI5MTUwNTA1NjViNjAwMDYwMjA4Mjg0MDMxMjE1NjExNDQ5NTc2MTE0NDg2MTBmY2I1NjViNWI2MDAwNjExNDU3ODQ4Mjg1MDE2MTE0MWU1NjViOTE1MDUwOTI5MTUwNTA1NjViNjAwMDgxNTE5MDUwNjExNDZmODE2MTEwN2Q1NjViOTI5MTUwNTA1NjViNjAwMDYwMjA4Mjg0MDMxMjE1NjExNDhiNTc2MTE0OGE2MTBmY2I1NjViNWI2MDAwNjExNDk5ODQ4Mjg1MDE2MTE0NjA1NjViOTE1MDUwOTI5MTUwNTA1NjViNjAwMDgxNTE5MDUwOTE5MDUwNTY1YjYwMDA4MTkwNTA5MjkxNTA1MDU2NWI2MDAwNWI4MzgxMTAxNTYxMTRkNjU3ODA4MjAxNTE4MTg0MDE1MjYwMjA4MTAxOTA1MDYxMTRiYjU2NWI2MDAwODQ4NDAxNTI1MDUwNTA1MDU2NWI2MDAwNjExNGVkODI2MTE0YTI1NjViNjExNGY3ODE4NTYxMTRhZDU2NWI5MzUwNjExNTA3ODE4NTYwMjA4NjAxNjExNGI4NTY1YjgwODQwMTkxNTA1MDkyOTE1MDUwNTY1YjYwMDA2MTE1MWY4Mjg0NjExNGUyNTY1YjkxNTA4MTkwNTA5MjkxNTA1MDU2NWI2MDAwODE2MDAzMGI5MDUwOTE5MDUwNTY1YjYxMTU0MDgxNjExNTJhNTY1YjgxMTQ2MTE1NGI1NzYwMDA4MGZkNWI1MDU2NWI2MDAwODE1MTkwNTA2MTE1NWQ4MTYxMTUzNzU2NWI5MjkxNTA1MDU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTE1Nzk1NzYxMTU3ODYxMGZjYjU2NWI1YjYwMDA2MTE1ODc4NDgyODUwMTYxMTU0ZTU2NWI5MTUwNTA5MjkxNTA1MDU2NWI2MDAwNjA0MDgyMDE5MDUwNjExNWE1NjAwMDgzMDE4NTYxMTE1MDU2NWI2MTE1YjI2MDIwODMwMTg0NjExMzBjNTY1YjkzOTI1MDUwNTA1NjViNjAwMDYwNDA4MjAxOTA1MDYxMTVjZTYwMDA4MzAxODU2MTExNTA1NjViNjExNWRiNjAyMDgzMDE4NDYxMTE1MDU2NWI5MzkyNTA1MDUwNTY1YjYwMDA4MTUxOTA1MDYxMTVmMTgxNjExMjNhNTY1YjkyOTE1MDUwNTY1YjYwMDA2MDIwODI4NDAzMTIxNTYxMTYwZDU3NjExNjBjNjEwZmNiNTY1YjViNjAwMDYxMTYxYjg0ODI4NTAxNjExNWUyNTY1YjkxNTA1MDkyOTE1MDUwNTY1YjYwMDA2N2ZmZmZmZmZmZmZmZmZmZmY4MjE2OTA1MDkxOTA1MDU2NWI2MTE2NDE4MTYxMTYyNDU2NWI4MjUyNTA1MDU2NWI2MDAwODE1MTkwNTA5MTkwNTA1NjViNjAwMDgyODI1MjYwMjA4MjAxOTA1MDkyOTE1MDUwNTY1YjYwMDA4MTkwNTA2MDIwODIwMTkwNTA5MTkwNTA1NjViNjAwMDgyODI1MjYwMjA4MjAxOTA1MDkyOTE1MDUwNTY1YjYwMDA2MDFmMTk2MDFmODMwMTE2OTA1MDkxOTA1MDU2NWI2MDAwNjExNmEwODI2MTE0YTI1NjViNjExNmFhODE4NTYxMTY3MzU2NWI5MzUwNjExNmJhODE4NTYwMjA4NjAxNjExNGI4NTY1YjYxMTZjMzgxNjExNjg0NTY1Yjg0MDE5MTUwNTA5MjkxNTA1MDU2NWI2MDAwNjExNmRhODM4MzYxMTY5NTU2NWI5MDUwOTI5MTUwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDkxOTA1MDU2NWI2MDAwNjExNmZhODI2MTE2NDc1NjViNjExNzA0ODE4NTYxMTY1MjU2NWI5MzUwODM2MDIwODIwMjg1MDE2MTE3MTY4NTYxMTY2MzU2NWI4MDYwMDA1Yjg1ODExMDE1NjExNzUyNTc4NDg0MDM4OTUyODE1MTYxMTczMzg1ODI2MTE2Y2U1NjViOTQ1MDYxMTczZTgzNjExNmUyNTY1YjkyNTA2MDIwOGEwMTk5NTA1MDYwMDE4MTAxOTA1MDYxMTcxYTU2NWI1MDgyOTc1MDg3OTU1MDUwNTA1MDUwNTA5MjkxNTA1MDU2NWI2MDAwNjA2MDgyMDE5MDUwNjExNzc5NjAwMDgzMDE4NjYxMTE1MDU2NWI2MTE3ODY2MDIwODMwMTg1NjExNjM4NTY1YjgxODEwMzYwNDA4MzAxNTI2MTE3OTg4MTg0NjExNmVmNTY1YjkwNTA5NDkzNTA1MDUwNTA1NjViNjExN2FiODE2MTE2MjQ1NjViODExNDYxMTdiNjU3NjAwMDgwZmQ1YjUwNTY1YjYwMDA4MTUxOTA1MDYxMTdjODgxNjExN2EyNTY1YjkyOTE1MDUwNTY1YjYwMDA4MGZkNWI2MTE3ZGM4MjYxMTY4NDU2NWI4MTAxODE=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw04dQ3hUaeaG4FWbjdYu7833hqBZUad8OIpGTNvrYCH4P+G8Fju/WR5ZRVwWayO7jGgwI7LbkrQYQ256imAMiDwoJCLC25K0GEIshEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQixtuStBhCRIRICGAISAhgDGJvV0DQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIB8g0SAxiyDSLqDTgxMTA2N2ZmZmZmZmZmZmZmZmZmZmY4MjExMTcxNTYxMTdmYjU3NjExN2ZhNjExMzM2NTY1YjViODA2MDQwNTI1MDUwNTA1NjViNjAwMDYxMTgwZTYxMGZjMTU2NWI5MDUwNjExODFhODI4MjYxMTdkMzU2NWI5MTkwNTA1NjViNjAwMDY3ZmZmZmZmZmZmZmZmZmZmZjgyMTExNTYxMTgzYTU3NjExODM5NjExMzM2NTY1YjViNjAyMDgyMDI5MDUwNjAyMDgxMDE5MDUwOTE5MDUwNTY1YjYwMDA4MGZkNWI2MDAwODE2MDA3MGI5MDUwOTE5MDUwNTY1YjYxMTg2NjgxNjExODUwNTY1YjgxMTQ2MTE4NzE1NzYwMDA4MGZkNWI1MDU2NWI2MDAwODE1MTkwNTA2MTE4ODM4MTYxMTg1ZDU2NWI5MjkxNTA1MDU2NWI2MDAwNjExODljNjExODk3ODQ2MTE4MWY1NjViNjExODA0NTY1YjkwNTA4MDgzODI1MjYwMjA4MjAxOTA1MDYwMjA4NDAyODMwMTg1ODExMTE1NjExOGJmNTc2MTE4YmU2MTE4NGI1NjViNWI4MzViODE4MTEwMTU2MTE4ZTg1NzgwNjExOGQ0ODg4MjYxMTg3NDU2NWI4NDUyNjAyMDg0MDE5MzUwNTA2MDIwODEwMTkwNTA2MTE4YzE1NjViNTA1MDUwOTM5MjUwNTA1MDU2NWI2MDAwODI2MDFmODMwMTEyNjExOTA3NTc2MTE5MDY2MTE3Y2U1NjViNWI4MTUxNjExOTE3ODQ4MjYwMjA4NjAxNjExODg5NTY1YjkxNTA1MDkyOTE1MDUwNTY1YjYwMDA4MDYwMDA2MDYwODQ4NjAzMTIxNTYxMTkzOTU3NjExOTM4NjEwZmNiNTY1YjViNjAwMDYxMTk0Nzg2ODI4NzAxNjExNTRlNTY1YjkzNTA1MDYwMjA2MTE5NTg4NjgyODcwMTYxMTdiOTU2NWI5MjUwNTA2MDQwODQwMTUxNjdmZmZmZmZmZmZmZmZmZmZmODExMTE1NjExOTc5NTc2MTE5Nzg2MTBmZDA1NjViNWI2MTE5ODU4NjgyODcwMTYxMThmMjU2NWI5MTUwNTA5MjUwOTI1MDkyNTY1YjYxMTk5ODgxNjExODUwNTY1YjgyNTI1MDUwNTY1YjYwMDA2MDgwODIwMTkwNTA2MTE5YjM2MDAwODMwMTg3NjExMTUwNTY1YjYxMTljMDYwMjA4MzAxODY2MTExNTA1NjViNjExOWNkNjA0MDgzMDE4NTYxMTE1MDU2NWI2MTE5ZGE2MDYwODMwMTg0NjExOThmNTY1Yjk1OTQ1MDUwNTA1MDUwNTY1YjYwMDA4MTUxOTA1MDkxOTA1MDU2NWI2MDAwODI4MjUyNjAyMDgyMDE5MDUwOTI5MTUwNTA1NjViNjAwMDgxOTA1MDYwMjA4MjAxOTA1MDkxOTA1MDU2NWI2MTFhMTg4MTYxMTg1MDU2NWI4MjUyNTA1MDU2NWI2MDAwNjExYTJhODM4MzYxMWEwZjU2NWI2MDIwODMwMTkwNTA5MjkxNTA1MDU2NWI2MDAwNjAyMDgyMDE5MDUwOTE5MDUwNTY1YjYwMDA2MTFhNGU4MjYxMTllMzU2NWI2MTFhNTg4MTg1NjExOWVlNTY1YjkzNTA2MTFhNjM4MzYxMTlmZjU2NWI4MDYwMDA1YjgzODExMDE1NjExYTk0NTc4MTUxNjExYTdiODg4MjYxMWExZTU2NWI5NzUwNjExYTg2ODM2MTFhMzY1NjViOTI1MDUwNjAwMTgxMDE5MDUwNjExYTY3NTY1YjUwODU5MzUwNTA1MDUwOTI5MTUwNTA1NjViNjAwMDYwNjA4MjAxOTA1MDYxMWFiNjYwMDA4MzAxODY2MTExNTA1NjViNjExYWMzNjAyMDgzMDE4NTYxMTYzODU2NWI4MTgxMDM2MDQwODMwMTUyNjExYWQ1ODE4NDYxMWE0MzU2NWI5MDUwOTQ5MzUwNTA1MDUwNTY1YjYwMDA4MDYwNDA4Mzg1MDMxMjE1NjExYWY2NTc2MTFhZjU2MTBmY2I1NjViNWI2MDAwNjExYjA0ODU4Mjg2MDE2MTE1NGU1NjViOTI1MDUwNjAyMDYxMWIxNTg1ODI4NjAxNjExN2I5NTY1YjkxNTA1MDkyNTA5MjkwNTA1NmZlYTI2NDY5NzA2NjczNTgyMjEyMjBjZWNjNjNhM2ZlZjIwMThhNWMzODQ1OGEzMDZhMWIzMTFhMDZlNTUzYTg4ZDlkMWNjZTAwMDdiNzkyYTk2NGNmNjQ3MzZmNmM2MzQzMDAwODEwMDAzMw==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwIqZRNQuWcZZHq2pVoy9jZhvGjGfYZEcDH9sIsrprqu8bhocCnObX0gY9BGMLDzt2GgwI7bbkrQYQ0561vQEiDwoJCLG25K0GEJEhEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQixtuStBhCTIRICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGLINGiISIMJJeBM87a9AKJmIxLpwcghUh52MHfKpHSA1d8mRzdo9IJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"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VluBc///////////////////////////FmMJXqezYACDYEBRg2P/////FmDgG4FSYAQBYQabkpGQYRPaVltgAGBAUYCDA4FgAIeAOxWAFWEGtVdgAID9W1Ba8RWAFWEGyVc9YACAPj1gAP1bUFBQUFBQVltgADCQUIJz//////////////////////////8WYyO4ct2CM4VgQFGEY/////8WYOAbgVJgBAFhBxOTkpGQYROjVltgAGBAUYCDA4FgAIeAOxWAFWEHLVdgAID9W1Ba8RWAFWEHQVc9YACAPj1gAP1bUFBQUGAAg3P//////////////////////////xZjY1IhHoRgQFGCY/////8WYOAbgVJgBAFhB4CRkGEUA1ZbYCBgQFGAgwOBhlr6FYAVYQedVz1gAIA+PWAA/VtQUFBQYEBRPWAfGWAfggEWggGAYEBSUIEBkGEHwZGQYRQzVluQUDNz//////////////////////////8WgXP//////////////////////////xYUYQf7V2AAgP1bUFBQUFZbgXP//////////////////////////xZjcKCCMYJgQFGCY/////8WYOAbgVJgBAFhCDqRkGERX1ZbYCBgQFGAgwOBhlr6FYAVYQhXVz1gAIA+PWAA/VtQUFBQYEBRPWAfGWAfggEWggGAYEBSUIEBkGEIe5GQYRR1VltQUFBWW2AAgnP//////////////////////////xZjCBgS/INgQFGCY/////8WYOAbgVJgBAFhCLuRkGEUA1ZbYCBgQFGAgwOBhlr6FYAVYQjYVz1gAIA+PWAA/VtQUFBQYEBRPWAfGWAfggEWggGAYEBSUIEBkGEI/JGQYRQzVluQUJKRUFBWW4Jz//////////////////////////8WYwlep7ODg2BAUYNj/////xZg4BuBUmAEAWEJP5KRkGET2lZbYABgQFGAgwOBYACHgDsVgBVhCVlXYACA/VtQWvEVgBVhCW1XPWAAgD49YAD9W1BQUFBQUFBWW2AAgGAAYQFnc///////////////////////////FmN8Qa0sYOAbhWBAUWAkAWEJrZGQYRFfVltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhCheRkGEVE1ZbYABgQFGAgwOBYACGWvGRUFA9gGAAgRRhClRXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hCllWW2BgkVBbUJFQkVCBYQpqV2AVYQp/VluAgGAgAZBRgQGQYQp+kZBhFWNWW1tgAwuSUFBQkZBQVluCc///////////////////////////FmOiLLRlg4NgQFGDY/////8WYOAbgVJgBAFhCsaSkZBhFZBWW2AAYEBRgIMDgWAAh4A7FYAVYQrgV2AAgP1bUFrxFYAVYQr0Vz1gAIA+PWAA/VtQUFBQUFBQVluBc///////////////////////////FmNjUiEegmBAUYJj/////xZg4BuBUmAEAWELNpGQYRQDVltgIGBAUYCDA4GGWvoVgBVhC1NXPWAAgD49YAD9W1BQUFBgQFE9YB8ZYB+CARaCAYBgQFJQgQGQYQt3kZBhFDNWW1BQUFZbYACDc///////////////////////////FmPphenFhIRgQFGDY/////8WYOAbgVJgBAFhC7mSkZBhFblWW2AgYEBRgIMDgYZa+hWAFWEL1lc9YACAPj1gAP1bUFBQUGBAUT1gHxlgH4IBFoIBgGBAUlCBAZBhC/qRkGEV91ZbkFCTklBQUFZbYACAYGBgAIBhAWdz//////////////////////////8WYyeOC4hg4BuJiYlgQFFgJAFhDEGTkpGQYRdkVltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhDKuRkGEVE1ZbYABgQFGAgwOBYACGWvGRUFA9gGAAgRRhDOhXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hDO1WW2BgkVBbUJFQkVCBYQ1JV2AVYACAZ///////////gREVYQ0VV2ENFGETNlZbW2BAUZCAglKAYCACYCABggFgQFKAFWENQ1eBYCABYCCCAoA2gzeAggGRUFCQUFtQYQ1eVluAgGAgAZBRgQGQYQ1dkZBhGSBWW1uCYAMLklCAlVCBllCCl1BQUFBQUJNQk1CTkFBWW2AAgGAAYQFnc///////////////////////////FmNc/JARYOAbiIiIiGBAUWAkAWENuJSTkpGQYRmeVltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhDiKRkGEVE1ZbYABgQFGAgwOBYACGWvGRUFA9gGAAgRRhDl9XYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hDmRWW2BgkVBbUJFQkVCBYQ51V2AVYQ6KVluAgGAgAZBRgQGQYQ6JkZBhFWNWW1tgAwuSUFBQlJNQUFBQVltgAIBgAIBhAWdz//////////////////////////8WY6y5z/lg4BuIiIhgQFFgJAFhDtWTkpGQYRqhVltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhDz+RkGEVE1ZbYABgQFGAgwOBYACGWvGRUFA9gGAAgRRhD3xXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hD4FWW2BgkVBbUJFQkVCBYQ+UV2AVYABhD6lWW4CAYCABkFGBAZBhD6iRkGEa31ZbW4FgAwuRUICUUIGVUFBQUFCTUJORUFBWW2AAYEBRkFCQVltgAID9W2AAgP1bYABz//////////////////////////+CFpBQkZBQVltgAGEQAIJhD9VWW5BQkZBQVlthEBCBYQ/1VluBFGEQG1dgAID9W1BWW2AAgTWQUGEQLYFhEAdWW5KRUFBWW2AAgGBAg4UDEhVhEEpXYRBJYQ/LVltbYABhEFiFgoYBYRAeVluSUFBgIGEQaYWChgFhEB5WW5FQUJJQkpBQVltgAIGQUJGQUFZbYRCGgWEQc1ZbgRRhEJFXYACA/VtQVltgAIE1kFBhEKOBYRB9VluSkVBQVltgAIBgAIBggIWHAxIVYRDDV2EQwmEPy1ZbW2AAYRDRh4KIAWEQHlZblFBQYCBhEOKHgogBYRAeVluTUFBgQGEQ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"},{"b64Body":"Cg8KCQiytuStBhCVIRICGAISAhgDGNaL5+gCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAU0KB25mVG9rZW4SCFVHU05DUkJNKgMYsw1SIhIgwkl4Ezztr0AomYjEunByCFSHnYwd8qkdIDV3yZHN2j1qDAjuhL+xBhC4q6KnAYgBAQ==","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGLQNEjBPgl+/zwHzGXuUiMCpzATqjiJjFIkQmUzeNpyhRnWt2yTDOU4WRb38cV8+EW8XLk4aDAjutuStBhDbtvapASIPCgkIsrbkrQYQlSESAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAcgoKAxi0DRIDGLMN"},{"b64Body":"Cg8KCQiytuStBhCbIRICGAISAhgDGP2NkRAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjqoCCwoDGLQNGgFBGgFC","b64Record":"CiYIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1gCcgIBAhIwWJY1HGvWltn+WPgCM8olfaCxcyeCK9W+koUbKM+usXRgmKQkeID4H/zmMYc+8Qn3GgwI7rbkrQYQ84HtqwMiDwoJCLK25K0GEJshEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAFofCgMYtA0aCwoCGAASAxizDRgBGgsKAhgAEgMYsw0YAg=="},{"b64Body":"Cg8KCQiztuStBhCjIRICGAISAhgDGOC2iyAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGLENEgMYtA0=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwOoehhxQVUEjyBVor/XgdZSX9ZRerc7DthZMUGxIqpRhXygmuVExQNBiXEIwPKu+bGgwI77bkrQYQ2/jCswEiDwoJCLO25K0GEKMhEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQiztuStBhClIRICGAISAhgDGMC/7SEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjpPCgMYsw0QwIQ9IkTV0D4hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKLCoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQ==","b64Record":"CiUIHSIDGLMNKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAOBrldTsbVtXNoAfDK+JunveKPMMDXM7Y9PGse4R57rWrX7N/NCYN9di4UT3VEp2IaDAjvtuStBhCT+YW2AyIPCgkIs7bkrQYQpSESAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDAv+0hOh4aGElOVkFMSURfU09MSURJVFlfQUREUkVTUyjAhD1SFgoJCgIYAhD//tpDCgkKAhhiEID/2kM="},{"b64Body":"Cg8KCQi0tuStBhCnIRICGAISAhgDGMC/7SEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjpPCgMYsw0QwIQ9IkTV0D4hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABrQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANw==","b64Record":"CiUIISIDGLMNKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjD7pH83RpD3GuU8ohwb0ilaT2PP79vRxsLvuugmv1lYazbwCyqqDJ5l9Kst8Yjaq+IaDAjwtuStBhCjquC9ASIPCgkItLbkrQYQpyESAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCA5oobOggaAjB4KIDqMFIWCgkKAhgCEP/LlTYKCQoCGGIQgMyVNg=="},{"b64Body":"Cg8KCQi0tuStBhCpIRICGAISAhgDGMC/7SEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjpPCgMYsw0QwIQ9IkTV0D4hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABrQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg==","b64Record":"CiUIFiIDGLMNKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjB8IOzvivrh0LOG00W0zaW0EeKn/swMjQfsAEjrjHVUzS6hQy813vTDXBmNPu7go5IaDAjwtuStBhDD+bu+AyIPCgkItLbkrQYQqSESAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCA5oobOowCCgMYsw0igAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKIDqMFIWCgkKAhgCEP/LlTYKCQoCGGIQgMyVNg=="},{"b64Body":"ChEKCQi0tuStBhCpIRICGAIgATpFCgMY5wIQASI8YY3GXgAAAAAAAAAAAAAAAAAAAAAAAAa0Y1IhHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC","b64Record":"CgIIFhIwhCNULHI7huuXcVWETimVacyV3fxswn5evW7VIJdPSVKvfTE9oOIq2C0TaLE7cQw8GgwI8LbkrQYQxPm7vgMiEQoJCLS25K0GEKkhEgIYAiABOi4KAxjnAhIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABrMoZGoDGLMNUgB6DAjwtuStBhDD+bu+Aw=="},{"b64Body":"Cg8KCQi1tuStBhCrIRICGAISAhgDGI3GPCICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOchUSEwoDGLQNGgwKAxizDRIDGLENGAE=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw2JQYvAhSYwHFBiac0d5mjq1ibTZWkbBFVeEMHaAQakt6S9Tnl/dwpoXGxjMka/kCGgwI8bbkrQYQg//IxgEiDwoJCLW25K0GEKshEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAFoTCgMYtA0aDAoDGLMNEgMYsQ0YAQ=="},{"b64Body":"Cg8KCQi1tuStBhCtIRICGAISAhgDGMC/7SEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjpPCgMYsw0QwIQ9IkTV0D4hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABrQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQ==","b64Record":"CiUIFiIDGLMNKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAB0wR/0+N9nOlY2wFs6cVfg2jJajs7WR8V0qVy/wbSEwRVGq2DvT7aorYk0Sp8HgQaDAjxtuStBhCL48qrAyIPCgkItbbkrQYQrSESAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCA5oobOowCCgMYsw0igAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKIDqMFIWCgkKAhgCEP/LlTYKCQoCGGIQgMyVNg=="},{"b64Body":"ChEKCQi1tuStBhCtIRICGAIgATpFCgMY5wIQASI8YY3GXgAAAAAAAAAAAAAAAAAAAAAAAAa0Y1IhHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB","b64Record":"CgIIFhIwlfwo/akkR5haY4YOqdytG35jAlPkUaA6afeRxK6TlkW15uYFpNLlnBWOVWAmmdpSGgwI8bbkrQYQjOPKqwMiEQoJCLW25K0GEK0hEgIYAiABOi4KAxjnAhIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABrEoZGoDGLMNUgB6DAjxtuStBhCL48qrAw=="}]},"someErc721BalanceOfScenariosPass":{"placeholderNum":1717,"encodedItems":[{"b64Body":"Cg8KCQi8tuStBhDdIRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISILhvxPgI/BPCD3mdLcsjIMjumlAlfGcdCxUEkEtU1czfEICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGLYNKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBVbc//tWVT0xUQqsGJc1kosw29bsjO8MYTAHnnRgaVtsT/D0iGrGiQc64xMP2Sy6kaCwj4tuStBhCjsdpdIg8KCQi8tuStBhDdIRICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUhkKCgoCGAIQ/6fWuQcKCwoDGLYNEICo1rkH"},{"b64Body":"Cg8KCQi8tuStBhDfIRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIEf9LzOWJ47uQFa5v+bWd5OHe2a+OSrRq+3sfPGRZhPcEICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGLcNKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCwZEuAPy4SnOxj6eqkCpo++ZW7wQdj7jdfxJC21oJZTOiO8fes465rHf6a6L4YDlQaDAj4tuStBhCz4/XfAiIPCgkIvLbkrQYQ3yESAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxi3DRCAqNa5Bw=="},{"b64Body":"Cg8KCQi9tuStBhDhIRICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjgESCwj5hL+xBhDwr8JZGm0KIhIg9SIaK8rXubVMwjoBv1Phy6EHdwm0kvIKulDY4ZNgQMcKIzohAvBcbc/hHkhLFtZTlxfA0Gs420grKcjkZ4AP3HVdNKgUCiISIGJKJNhXH0CPNyVNAglyv7HoTKGWNsAkhmYFu/EJJY6ZIgxIZWxsbyBXb3JsZCEqADIA","b64Record":"CiUIFhoDGLgNKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDhWYFLBtV4Z1ssEJp5A3LqVliA4MUolFajJA+Ztr1V5dN+M+6UEGc7T/rlSQPSQdgaCwj5tuStBhDb+6tnIg8KCQi9tuStBhDhIRICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgA="},{"b64Body":"Cg8KCQi9tuStBhDlIRICGAISAhgDGIydjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxi4DSKAIDYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMWI1NTgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDBiNDU3NjAwMDM1NjBlMDFjODA2MzU3YTlkMzU2MTE2MTAwNzE1NzgwNjM1N2E5ZDM1NjE0NjEwMTYxNTc4MDYzNjQzM2NkNWQxNDYxMDE5MTU3ODA2MzdjNDFhZDJjMTQ2MTAxYWQ1NzgwNjM5Yjg1ZmU2MDE0NjEwMWRkNTc4MDYzZDVkMDNlMjExNDYxMDFmOTU3ODA2M2YwYWU5NWFhMTQ2MTAyMTU1NzYxMDBiNDU2NWI4MDYzMDIwODM1OWQxNDYxMDBiOTU3ODA2MzE0NGZkNWU5MTQ2MTAwZDU1NzgwNjMxNWRhY2JlYTE0NjEwMGYxNTc4MDYzMjQ1MzQxYTExNDYxMDEwZDU3ODA2MzI4YTU5NTIwMTQ2MTAxMjk1NzgwNjM1MzI5MGI0NDE0NjEwMTQ1NTc1YjYwMDA4MGZkNWI2MTAwZDM2MDA0ODAzNjAzODEwMTkwNjEwMGNlOTE5MDYxMTAzMzU2NWI2MTAyNDU1NjViMDA1YjYxMDBlZjYwMDQ4MDM2MDM4MTAxOTA2MTAwZWE5MTkwNjExMDMzNTY1YjYxMDQ1OTU2NWIwMDViNjEwMTBiNjAwNDgwMzYwMzgxMDE5MDYxMDEwNjkxOTA2MTEwYTk1NjViNjEwNWVhNTY1YjAwNWI2MTAxMjc2MDA0ODAzNjAzODEwMTkwNjEwMTIyOTE5MDYxMTExMDU2NWI2MTA2NWY1NjViMDA1YjYxMDE0MzYwMDQ4MDM2MDM4MTAxOTA2MTAxM2U5MTkwNjExMTEwNTY1YjYxMDZkMTU2NWIwMDViNjEwMTVmNjAwNDgwMzYwMzgxMDE5MDYxMDE1YTkxOTA2MTEwMzM1NjViNjEwODAxNTY1YjAwNWI2MTAxN2I2MDA0ODAzNjAzODEwMTkwNjEwMTc2OTE5MDYxMTExMDU2NWI2MTA4ODA1NjViNjA0MDUxNjEwMTg4OTE5MDYxMTE1ZjU2NWI2MDQwNTE4MDkxMDM5MGYzNWI2MTAxYWI2MDA0ODAzNjAzODEwMTkwNjEwMWE2OTE5MDYxMTE3YTU2NWI2MTA5MDQ1NjViMDA1YjYxMDFjNzYwMDQ4MDM2MDM4MTAxOTA2MTAxYzI5MTkwNjExMWNkNTY1YjYxMDk3NjU2NWI2MDQwNTE2MTAxZDQ5MTkwNjExMjEzNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDFmNzYwMDQ4MDM2MDM4MTAxOTA2MTAxZjI5MTkwNjExMjY2NTY1YjYxMGE4YjU2NWIwMDViNjEwMjEzNjAwNDgwMzYwMzgxMDE5MDYxMDIwZTkxOTA2MTExMTA1NjViNjEwYWZkNTY1YjAwNWI2MTAyMmY2MDA0ODAzNjAzODEwMTkwNjEwMjJhOTE5MDYxMTJiOTU2NWI2MTBiN2M1NjViNjA0MDUxNjEwMjNjOTE5MDYxMTMxYjU2NWI2MDQwNTE4MDkxMDM5MGYzNWI2MDAwNjAwMjY3ZmZmZmZmZmZmZmZmZmZmZjgxMTExNTYxMDI2MjU3NjEwMjYxNjExMzM2NTY1YjViNjA0MDUxOTA4MDgyNTI4MDYwMjAwMjYwMjAwMTgyMDE2MDQwNTI4MDE1NjEwMjk1NTc4MTYwMjAwMTViNjA2MDgxNTI2MDIwMDE5MDYwMDE5MDAzOTA4MTYxMDI4MDU3OTA1MDViNTA5MDUwNjA0MDUxODA2MDQwMDE2MDQwNTI4MDYwMDE4MTUyNjAyMDAxN2ZlZTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODE1MjUwODE2MDAwODE1MTgxMTA2MTAyZTI1NzYxMDJlMTYxMTM2NTU2NWI1YjYwMjAwMjYwMjAwMTAxODE5MDUyNTA2MDQwNTE4MDYwNDAwMTYwNDA1MjgwNjAwMTgxNTI2MDIwMDE3ZmZmMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MTUyNTA4MTYwMDE4MTUxODExMDYxMDMzNzU3NjEwMzM2NjExMzY1NTY1YjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDYwMDAzMDkwNTA2MDAwODA2MTAzNTY4NjYwMDA4NjYxMGMwMzU2NWI5MjUwNTA5MTUwNjAxNjgyMTQ2MTAzNjg1NzYwMDA4MGZkNWI2MTAzOGY4Njg0ODc4NDYwMDA4MTUxODExMDYxMDM4MjU3NjEwMzgxNjExMzY1NTY1YjViNjAyMDAyNjAyMDAxMDE1MTYxMGQ3YjU2NWI5MTUwNjAxNjgyMTQ2MTAzOWU1NzYwMDA4MGZkNWI2MTAzYzU4Njg0ODc4NDYwMDE4MTUxODExMDYxMDNiODU3NjEwM2I3NjExMzY1NTY1YjViNjAyMDAyNjAyMDAxMDE1MTYxMGQ3YjU2NWI5MTUwNjAxNjgyMTQ2MTAzZDQ1NzYwMDA4MGZkNWI2MTAzZmI4Njg2ODU4NDYwMDA4MTUxODExMDYxMDNlZTU3NjEwM2VkNjExMzY1NTY1YjViNjAyMDAyNjAyMDAxMDE1MTYxMGQ3YjU2NWI5MTUwNjAxNjgyMTQ2MTA0MGE1NzYwMDA4MGZkNWI2MTA0MzE4Njg2ODU4NDYwMDE4MTUxODExMDYxMDQyNDU3NjEwNDIzNjExMzY1NTY1YjViNjAyMDAyNjAyMDAxMDE1MTYxMGQ3YjU2NWI5MTUwNjAxNjgyMTQ2MTA0NDA1NzYwMDA4MGZkNWI2MTA0NGM4NjYwMDA4MzYxMGU5OTU2NWI1MDgwOTI1MDUwNTA1MDUwNTA1MDUwNTY1YjYwMDA2MDAyNjdmZmZmZmZmZmZmZmZmZmZmODExMTE1NjEwNDc2NTc2MTA0NzU2MTEzMzY1NjViNWI2MDQwNTE5MDgwODI1MjgwNjAyMDAyNjAyMDAxODIwMTYwNDA1MjgwMTU2MTA0YTk1NzgxNjAyMDAxNWI2MDYwODE1MjYwMjAwMTkwNjAwMTkwMDM5MDgxNjEwNDk0NTc5MDUwNWI1MDkwNTA2MDQwNTE4MDYwNDAwMTYwNDA1MjgwNjAwMTgxNTI2MDIwMDE3ZmVlMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MTUyNTA4MTYwMDA4MTUxODExMDYxMDRmNjU3NjEwNGY1NjExMzY1NTY1YjViNjAyMDAyNjAyMDAxMDE4MTkwNTI1MDYwNDA1MTgwNjA0MDAxNjA0MDUyODA2MDAxODE1MjYwMjAwMTdmZmYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgxNTI1MDgxNjAwMTgxNTE4MTEwNjEwNTRiNTc2MTA1NGE2MTEzNjU1NjViNWI2MDIwMDI2MDIwMDEwMTgxOTA1MjUwNjAwMDgwNjEwNTY1ODU2MDAwODU2MTBjMDM1NjViOTI1MDUwOTE1MDYwMTY4MjE0NjEwNTc3NTc2MDAwODBmZDViNjEwNTllODUzMDg2ODQ2MDAwODE1MTgxMTA2MTA1OTE1NzYxMDU5MDYxMTM2NTU2NWI1YjYwMjAwMjYwMjAwMTAxNTE2MTBkN2I1NjViOTE1MDYwMTY4MjE0NjEwNWFkNTc2MDAwODBmZDViNjEwNWQ0ODUzMDg2ODQ2MDAxODE1MTgxMTA2MTA1Yzc1NzYxMDVjNjYxMTM2NTU2NWI1YjYwMjAwMjYwMjAwMTAxNTE2MTBkN2I1NjViOTE1MDYwMTY4MjE0NjEwNWUzNTc2MDAwODBmZDViNTA1MDUwNTA1MDU2NWI4MzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjMyM2I4NzJkZDg0ODQ4NDYwNDA1MTg0NjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYxMDYyNzkzOTI5MTkwNjExM2EzNTY1YjYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NzgwM2IxNTgwMTU2MTA2NDE1NzYwMDA4MGZkNWI1MDVhZjExNTgwMTU2MTA2NTU1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA1MDUwNTA1MDU2NWI4MTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjMwOTVlYTdiMzYwMDA4MzYwNDA1MTgzNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYxMDY5YjkyOTE5MDYxMTNkYTU2NWI2MDAwNjA0MDUxODA4MzAzODE2MDAwODc4MDNiMTU4MDE1NjEwNmI1NTc2MDAwODBmZDViNTA1YWYxMTU4MDE1NjEwNmM5NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNTA1MDU2NWI2MDAwMzA5MDUwODI3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzMjNiODcyZGQ4MjMzODU2MDQwNTE4NDYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MTA3MTM5MzkyOTE5MDYxMTNhMzU2NWI2MDAwNjA0MDUxODA4MzAzODE2MDAwODc4MDNiMTU4MDE1NjEwNzJkNTc2MDAwODBmZDViNTA1YWYxMTU4MDE1NjEwNzQxNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjAwMDgzNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MzYzNTIyMTFlODQ2MDQwNTE4MjYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MTA3ODA5MTkwNjExNDAzNTY1YjYwMjA2MDQwNTE4MDgzMDM4MTg2NWFmYTE1ODAxNTYxMDc5ZDU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAxZjE5NjAxZjgyMDExNjgyMDE4MDYwNDA1MjUwODEwMTkwNjEwN2MxOTE5MDYxMTQzMzU2NWI5MDUwMzM3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjgxNzNmZmZmZmY=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw0W0Nyd/AsNaL/KtducTMrOus2e4d2U1g0LnoToEFF9LPpy8rNp+xg1F0MQ5kZY1NGgwI+bbkrQYQy/7PzAIiDwoJCL225K0GEOUhEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQi+tuStBhDrIRICGAISAhgDGPjR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxi4DSKAIGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjE0NjEwN2ZiNTc2MDAwODBmZDViNTA1MDUwNTA1NjViODE3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzNzBhMDgyMzE4MjYwNDA1MTgyNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYxMDgzYTkxOTA2MTExNWY1NjViNjAyMDYwNDA1MTgwODMwMzgxODY1YWZhMTU4MDE1NjEwODU3NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTA4N2I5MTkwNjExNDc1NTY1YjUwNTA1MDU2NWI2MDAwODI3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzMDgxODEyZmM4MzYwNDA1MTgyNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYxMDhiYjkxOTA2MTE0MDM1NjViNjAyMDYwNDA1MTgwODMwMzgxODY1YWZhMTU4MDE1NjEwOGQ4NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTA4ZmM5MTkwNjExNDMzNTY1YjkwNTA5MjkxNTA1MDU2NWI4MjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjMwOTVlYTdiMzgzODM2MDQwNTE4MzYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MTA5M2Y5MjkxOTA2MTEzZGE1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg3ODAzYjE1ODAxNTYxMDk1OTU3NjAwMDgwZmQ1YjUwNWFmMTE1ODAxNTYxMDk2ZDU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDUwNTA1MDU2NWI2MDAwODA2MDAwNjEwMTY3NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MzdjNDFhZDJjNjBlMDFiODU2MDQwNTE2MDI0MDE2MTA5YWQ5MTkwNjExMTVmNTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMGExNzkxOTA2MTE1MTM1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMGE1NDU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMGE1OTU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEwYTZhNTc2MDE1NjEwYTdmNTY1YjgwODA2MDIwMDE5MDUxODEwMTkwNjEwYTdlOTE5MDYxMTU2MzU2NWI1YjYwMDMwYjkyNTA1MDUwOTE5MDUwNTY1YjgyNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2M2EyMmNiNDY1ODM4MzYwNDA1MTgzNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYxMGFjNjkyOTE5MDYxMTU5MDU2NWI2MDAwNjA0MDUxODA4MzAzODE2MDAwODc4MDNiMTU4MDE1NjEwYWUwNTc2MDAwODBmZDViNTA1YWYxMTU4MDE1NjEwYWY0NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNTA1MDUwNTY1YjgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MzYzNTIyMTFlODI2MDQwNTE4MjYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MTBiMzY5MTkwNjExNDAzNTY1YjYwMjA2MDQwNTE4MDgzMDM4MTg2NWFmYTE1ODAxNTYxMGI1MzU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAxZjE5NjAxZjgyMDExNjgyMDE4MDYwNDA1MjUwODEwMTkwNjEwYjc3OTE5MDYxMTQzMzU2NWI1MDUwNTA1NjViNjAwMDgzNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2M2U5ODVlOWM1ODQ4NDYwNDA1MTgzNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYxMGJiOTkyOTE5MDYxMTViOTU2NWI2MDIwNjA0MDUxODA4MzAzODE4NjVhZmExNTgwMTU2MTBiZDY1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA2MDQwNTEzZDYwMWYxOTYwMWY4MjAxMTY4MjAxODA2MDQwNTI1MDgxMDE5MDYxMGJmYTkxOTA2MTE1Zjc1NjViOTA1MDkzOTI1MDUwNTA1NjViNjAwMDgwNjA2MDYwMDA4MDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjMyNzhlMGI4ODYwZTAxYjg5ODk4OTYwNDA1MTYwMjQwMTYxMGM0MTkzOTI5MTkwNjExNzY0NTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMGNhYjkxOTA2MTE1MTM1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMGNlODU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMGNlZDU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEwZDQ5NTc2MDE1NjAwMDgwNjdmZmZmZmZmZmZmZmZmZmZmODExMTE1NjEwZDE1NTc2MTBkMTQ2MTEzMzY1NjViNWI2MDQwNTE5MDgwODI1MjgwNjAyMDAyNjAyMDAxODIwMTYwNDA1MjgwMTU2MTBkNDM1NzgxNjAyMDAxNjAyMDgyMDI4MDM2ODMzNzgwODIwMTkxNTA1MDkwNTA1YjUwNjEwZDVlNTY1YjgwODA2MDIwMDE5MDUxODEwMTkwNjEwZDVkOTE5MDYxMTkyMDU2NWI1YjgyNjAwMzBiOTI1MDgwOTU1MDgxOTY1MDgyOTc1MDUwNTA1MDUwNTA5MzUwOTM1MDkzOTA1MDU2NWI2MDAwODA2MDAwNjEwMTY3NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MzVjZmM5MDExNjBlMDFiODg4ODg4ODg2MDQwNTE2MDI0MDE2MTBkYjg5NDkzOTI5MTkwNjExOTllNTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMGUyMjkxOTA2MTE1MTM1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMGU1ZjU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMGU2NDU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEwZTc1NTc2MDE1NjEwZThhNTY1YjgwODA2MDIwMDE5MDUxODEwMTkwNjEwZTg5OTE5MDYxMTU2MzU2NWI1YjYwMDMwYjkyNTA1MDUwOTQ5MzUwNTA1MDUwNTY1YjYwMDA4MDYwMDA4MDYxMDE2NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjNhY2I5Y2ZmOTYwZTAxYjg4ODg4ODYwNDA1MTYwMjQwMTYxMGVkNTkzOTI5MTkwNjExYWExNTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjkwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMGYzZjkxOTA2MTE1MTM1NjViNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg2NWFmMTkxNTA1MDNkODA2MDAwODExNDYxMGY3YzU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q2MDAwNjAyMDg0MDEzZTYxMGY4MTU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxNjEwZjk0NTc2MDE1NjAwMDYxMGZhOTU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMGZhODkxOTA2MTFhZGY1NjViNWI4MTYwMDMwYjkxNTA4MDk0NTA4MTk1NTA1MDUwNTA1MDkzNTA5MzkxNTA1MDU2NWI2MDAwNjA0MDUxOTA1MDkwNTY1YjYwMDA4MGZkNWI2MDAwODBmZDViNjAwMDczZmZmZmZmZmZmZmZmZmY=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwX4nzHRZkgl7d6s25TZLx4dMO6NlqaUd8GUsI0zcfs//R7brHhayzA8HYJu1N96l8GgsI+rbkrQYQw4K4cSIPCgkIvrbkrQYQ6yESAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQi+tuStBhDxIRICGAISAhgDGPjR6j4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBiCASAxi4DSKAIGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIxNjkwNTA5MTkwNTA1NjViNjAwMDYxMTAwMDgyNjEwZmQ1NTY1YjkwNTA5MTkwNTA1NjViNjExMDEwODE2MTBmZjU1NjViODExNDYxMTAxYjU3NjAwMDgwZmQ1YjUwNTY1YjYwMDA4MTM1OTA1MDYxMTAyZDgxNjExMDA3NTY1YjkyOTE1MDUwNTY1YjYwMDA4MDYwNDA4Mzg1MDMxMjE1NjExMDRhNTc2MTEwNDk2MTBmY2I1NjViNWI2MDAwNjExMDU4ODU4Mjg2MDE2MTEwMWU1NjViOTI1MDUwNjAyMDYxMTA2OTg1ODI4NjAxNjExMDFlNTY1YjkxNTA1MDkyNTA5MjkwNTA1NjViNjAwMDgxOTA1MDkxOTA1MDU2NWI2MTEwODY4MTYxMTA3MzU2NWI4MTE0NjExMDkxNTc2MDAwODBmZDViNTA1NjViNjAwMDgxMzU5MDUwNjExMGEzODE2MTEwN2Q1NjViOTI5MTUwNTA1NjViNjAwMDgwNjAwMDgwNjA4MDg1ODcwMzEyMTU2MTEwYzM1NzYxMTBjMjYxMGZjYjU2NWI1YjYwMDA2MTEwZDE4NzgyODgwMTYxMTAxZTU2NWI5NDUwNTA2MDIwNjExMGUyODc4Mjg4MDE2MTEwMWU1NjViOTM1MDUwNjA0MDYxMTBmMzg3ODI4ODAxNjExMDFlNTY1YjkyNTA1MDYwNjA2MTExMDQ4NzgyODgwMTYxMTA5NDU2NWI5MTUwNTA5Mjk1OTE5NDUwOTI1MDU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMTEyNzU3NjExMTI2NjEwZmNiNTY1YjViNjAwMDYxMTEzNTg1ODI4NjAxNjExMDFlNTY1YjkyNTA1MDYwMjA2MTExNDY4NTgyODYwMTYxMTA5NDU2NWI5MTUwNTA5MjUwOTI5MDUwNTY1YjYxMTE1OTgxNjEwZmY1NTY1YjgyNTI1MDUwNTY1YjYwMDA2MDIwODIwMTkwNTA2MTExNzQ2MDAwODMwMTg0NjExMTUwNTY1YjkyOTE1MDUwNTY1YjYwMDA4MDYwMDA2MDYwODQ4NjAzMTIxNTYxMTE5MzU3NjExMTkyNjEwZmNiNTY1YjViNjAwMDYxMTFhMTg2ODI4NzAxNjExMDFlNTY1YjkzNTA1MDYwMjA2MTExYjI4NjgyODcwMTYxMTAxZTU2NWI5MjUwNTA2MDQwNjExMWMzODY4Mjg3MDE2MTEwOTQ1NjViOTE1MDUwOTI1MDkyNTA5MjU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTExZTM1NzYxMTFlMjYxMGZjYjU2NWI1YjYwMDA2MTExZjE4NDgyODUwMTYxMTAxZTU2NWI5MTUwNTA5MjkxNTA1MDU2NWI2MDAwODE5MDUwOTE5MDUwNTY1YjYxMTIwZDgxNjExMWZhNTY1YjgyNTI1MDUwNTY1YjYwMDA2MDIwODIwMTkwNTA2MTEyMjg2MDAwODMwMTg0NjExMjA0NTY1YjkyOTE1MDUwNTY1YjYwMDA4MTE1MTU5MDUwOTE5MDUwNTY1YjYxMTI0MzgxNjExMjJlNTY1YjgxMTQ2MTEyNGU1NzYwMDA4MGZkNWI1MDU2NWI2MDAwODEzNTkwNTA2MTEyNjA4MTYxMTIzYTU2NWI5MjkxNTA1MDU2NWI2MDAwODA2MDAwNjA2MDg0ODYwMzEyMTU2MTEyN2Y1NzYxMTI3ZTYxMGZjYjU2NWI1YjYwMDA2MTEyOGQ4NjgyODcwMTYxMTAxZTU2NWI5MzUwNTA2MDIwNjExMjllODY4Mjg3MDE2MTEwMWU1NjViOTI1MDUwNjA0MDYxMTJhZjg2ODI4NzAxNjExMjUxNTY1YjkxNTA1MDkyNTA5MjUwOTI1NjViNjAwMDgwNjAwMDYwNjA4NDg2MDMxMjE1NjExMmQyNTc2MTEyZDE2MTBmY2I1NjViNWI2MDAwNjExMmUwODY4Mjg3MDE2MTEwMWU1NjViOTM1MDUwNjAyMDYxMTJmMTg2ODI4NzAxNjExMDFlNTY1YjkyNTA1MDYwNDA2MTEzMDI4NjgyODcwMTYxMTAxZTU2NWI5MTUwNTA5MjUwOTI1MDkyNTY1YjYxMTMxNTgxNjExMjJlNTY1YjgyNTI1MDUwNTY1YjYwMDA2MDIwODIwMTkwNTA2MTEzMzA2MDAwODMwMTg0NjExMzBjNTY1YjkyOTE1MDUwNTY1YjdmNGU0ODdiNzEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYwMDA1MjYwNDE2MDA0NTI2MDI0NjAwMGZkNWI3ZjRlNDg3YjcxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MDAwNTI2MDMyNjAwNDUyNjAyNDYwMDBmZDViNjExMzlkODE2MTEwNzM1NjViODI1MjUwNTA1NjViNjAwMDYwNjA4MjAxOTA1MDYxMTNiODYwMDA4MzAxODY2MTExNTA1NjViNjExM2M1NjAyMDgzMDE4NTYxMTE1MDU2NWI2MTEzZDI2MDQwODMwMTg0NjExMzk0NTY1Yjk0OTM1MDUwNTA1MDU2NWI2MDAwNjA0MDgyMDE5MDUwNjExM2VmNjAwMDgzMDE4NTYxMTE1MDU2NWI2MTEzZmM2MDIwODMwMTg0NjExMzk0NTY1YjkzOTI1MDUwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDYxMTQxODYwMDA4MzAxODQ2MTEzOTQ1NjViOTI5MTUwNTA1NjViNjAwMDgxNTE5MDUwNjExNDJkODE2MTEwMDc1NjViOTI5MTUwNTA1NjViNjAwMDYwMjA4Mjg0MDMxMjE1NjExNDQ5NTc2MTE0NDg2MTBmY2I1NjViNWI2MDAwNjExNDU3ODQ4Mjg1MDE2MTE0MWU1NjViOTE1MDUwOTI5MTUwNTA1NjViNjAwMDgxNTE5MDUwNjExNDZmODE2MTEwN2Q1NjViOTI5MTUwNTA1NjViNjAwMDYwMjA4Mjg0MDMxMjE1NjExNDhiNTc2MTE0OGE2MTBmY2I1NjViNWI2MDAwNjExNDk5ODQ4Mjg1MDE2MTE0NjA1NjViOTE1MDUwOTI5MTUwNTA1NjViNjAwMDgxNTE5MDUwOTE5MDUwNTY1YjYwMDA4MTkwNTA5MjkxNTA1MDU2NWI2MDAwNWI4MzgxMTAxNTYxMTRkNjU3ODA4MjAxNTE4MTg0MDE1MjYwMjA4MTAxOTA1MDYxMTRiYjU2NWI2MDAwODQ4NDAxNTI1MDUwNTA1MDU2NWI2MDAwNjExNGVkODI2MTE0YTI1NjViNjExNGY3ODE4NTYxMTRhZDU2NWI5MzUwNjExNTA3ODE4NTYwMjA4NjAxNjExNGI4NTY1YjgwODQwMTkxNTA1MDkyOTE1MDUwNTY1YjYwMDA2MTE1MWY4Mjg0NjExNGUyNTY1YjkxNTA4MTkwNTA5MjkxNTA1MDU2NWI2MDAwODE2MDAzMGI5MDUwOTE5MDUwNTY1YjYxMTU0MDgxNjExNTJhNTY1YjgxMTQ2MTE1NGI1NzYwMDA4MGZkNWI1MDU2NWI2MDAwODE1MTkwNTA2MTE1NWQ4MTYxMTUzNzU2NWI5MjkxNTA1MDU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTE1Nzk1NzYxMTU3ODYxMGZjYjU2NWI1YjYwMDA2MTE1ODc4NDgyODUwMTYxMTU0ZTU2NWI5MTUwNTA5MjkxNTA1MDU2NWI2MDAwNjA0MDgyMDE5MDUwNjExNWE1NjAwMDgzMDE4NTYxMTE1MDU2NWI2MTE1YjI2MDIwODMwMTg0NjExMzBjNTY1YjkzOTI1MDUwNTA1NjViNjAwMDYwNDA4MjAxOTA1MDYxMTVjZTYwMDA4MzAxODU2MTExNTA1NjViNjExNWRiNjAyMDgzMDE4NDYxMTE1MDU2NWI5MzkyNTA1MDUwNTY1YjYwMDA4MTUxOTA1MDYxMTVmMTgxNjExMjNhNTY1YjkyOTE1MDUwNTY1YjYwMDA2MDIwODI4NDAzMTIxNTYxMTYwZDU3NjExNjBjNjEwZmNiNTY1YjViNjAwMDYxMTYxYjg0ODI4NTAxNjExNWUyNTY1YjkxNTA1MDkyOTE1MDUwNTY1YjYwMDA2N2ZmZmZmZmZmZmZmZmZmZmY4MjE2OTA1MDkxOTA1MDU2NWI2MTE2NDE4MTYxMTYyNDU2NWI4MjUyNTA1MDU2NWI2MDAwODE1MTkwNTA5MTkwNTA1NjViNjAwMDgyODI1MjYwMjA4MjAxOTA1MDkyOTE1MDUwNTY1YjYwMDA4MTkwNTA2MDIwODIwMTkwNTA5MTkwNTA1NjViNjAwMDgyODI1MjYwMjA4MjAxOTA1MDkyOTE1MDUwNTY1YjYwMDA2MDFmMTk2MDFmODMwMTE2OTA1MDkxOTA1MDU2NWI2MDAwNjExNmEwODI2MTE0YTI1NjViNjExNmFhODE4NTYxMTY3MzU2NWI5MzUwNjExNmJhODE4NTYwMjA4NjAxNjExNGI4NTY1YjYxMTZjMzgxNjExNjg0NTY1Yjg0MDE5MTUwNTA5MjkxNTA1MDU2NWI2MDAwNjExNmRhODM4MzYxMTY5NTU2NWI5MDUwOTI5MTUwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDkxOTA1MDU2NWI2MDAwNjExNmZhODI2MTE2NDc1NjViNjExNzA0ODE4NTYxMTY1MjU2NWI5MzUwODM2MDIwODIwMjg1MDE2MTE3MTY4NTYxMTY2MzU2NWI4MDYwMDA1Yjg1ODExMDE1NjExNzUyNTc4NDg0MDM4OTUyODE1MTYxMTczMzg1ODI2MTE2Y2U1NjViOTQ1MDYxMTczZTgzNjExNmUyNTY1YjkyNTA2MDIwOGEwMTk5NTA1MDYwMDE4MTAxOTA1MDYxMTcxYTU2NWI1MDgyOTc1MDg3OTU1MDUwNTA1MDUwNTA5MjkxNTA1MDU2NWI2MDAwNjA2MDgyMDE5MDUwNjExNzc5NjAwMDgzMDE4NjYxMTE1MDU2NWI2MTE3ODY2MDIwODMwMTg1NjExNjM4NTY1YjgxODEwMzYwNDA4MzAxNTI2MTE3OTg4MTg0NjExNmVmNTY1YjkwNTA5NDkzNTA1MDUwNTA1NjViNjExN2FiODE2MTE2MjQ1NjViODExNDYxMTdiNjU3NjAwMDgwZmQ1YjUwNTY1YjYwMDA4MTUxOTA1MDYxMTdjODgxNjExN2EyNTY1YjkyOTE1MDUwNTY1YjYwMDA4MGZkNWI2MTE3ZGM4MjYxMTY4NDU2NWI4MTAxODE=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwv1CUHQcA8qQ1ZqZQ7l74Q4++lU04sTOHyBSwDOjFIISCPHPBayO/nClVOUzqUEieGgwI+rbkrQYQw/Wn1gIiDwoJCL625K0GEPEhEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQi/tuStBhD3IRICGAISAhgDGJvV0DQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIB8g0SAxi4DSLqDTgxMTA2N2ZmZmZmZmZmZmZmZmZmZmY4MjExMTcxNTYxMTdmYjU3NjExN2ZhNjExMzM2NTY1YjViODA2MDQwNTI1MDUwNTA1NjViNjAwMDYxMTgwZTYxMGZjMTU2NWI5MDUwNjExODFhODI4MjYxMTdkMzU2NWI5MTkwNTA1NjViNjAwMDY3ZmZmZmZmZmZmZmZmZmZmZjgyMTExNTYxMTgzYTU3NjExODM5NjExMzM2NTY1YjViNjAyMDgyMDI5MDUwNjAyMDgxMDE5MDUwOTE5MDUwNTY1YjYwMDA4MGZkNWI2MDAwODE2MDA3MGI5MDUwOTE5MDUwNTY1YjYxMTg2NjgxNjExODUwNTY1YjgxMTQ2MTE4NzE1NzYwMDA4MGZkNWI1MDU2NWI2MDAwODE1MTkwNTA2MTE4ODM4MTYxMTg1ZDU2NWI5MjkxNTA1MDU2NWI2MDAwNjExODljNjExODk3ODQ2MTE4MWY1NjViNjExODA0NTY1YjkwNTA4MDgzODI1MjYwMjA4MjAxOTA1MDYwMjA4NDAyODMwMTg1ODExMTE1NjExOGJmNTc2MTE4YmU2MTE4NGI1NjViNWI4MzViODE4MTEwMTU2MTE4ZTg1NzgwNjExOGQ0ODg4MjYxMTg3NDU2NWI4NDUyNjAyMDg0MDE5MzUwNTA2MDIwODEwMTkwNTA2MTE4YzE1NjViNTA1MDUwOTM5MjUwNTA1MDU2NWI2MDAwODI2MDFmODMwMTEyNjExOTA3NTc2MTE5MDY2MTE3Y2U1NjViNWI4MTUxNjExOTE3ODQ4MjYwMjA4NjAxNjExODg5NTY1YjkxNTA1MDkyOTE1MDUwNTY1YjYwMDA4MDYwMDA2MDYwODQ4NjAzMTIxNTYxMTkzOTU3NjExOTM4NjEwZmNiNTY1YjViNjAwMDYxMTk0Nzg2ODI4NzAxNjExNTRlNTY1YjkzNTA1MDYwMjA2MTE5NTg4NjgyODcwMTYxMTdiOTU2NWI5MjUwNTA2MDQwODQwMTUxNjdmZmZmZmZmZmZmZmZmZmZmODExMTE1NjExOTc5NTc2MTE5Nzg2MTBmZDA1NjViNWI2MTE5ODU4NjgyODcwMTYxMThmMjU2NWI5MTUwNTA5MjUwOTI1MDkyNTY1YjYxMTk5ODgxNjExODUwNTY1YjgyNTI1MDUwNTY1YjYwMDA2MDgwODIwMTkwNTA2MTE5YjM2MDAwODMwMTg3NjExMTUwNTY1YjYxMTljMDYwMjA4MzAxODY2MTExNTA1NjViNjExOWNkNjA0MDgzMDE4NTYxMTE1MDU2NWI2MTE5ZGE2MDYwODMwMTg0NjExOThmNTY1Yjk1OTQ1MDUwNTA1MDUwNTY1YjYwMDA4MTUxOTA1MDkxOTA1MDU2NWI2MDAwODI4MjUyNjAyMDgyMDE5MDUwOTI5MTUwNTA1NjViNjAwMDgxOTA1MDYwMjA4MjAxOTA1MDkxOTA1MDU2NWI2MTFhMTg4MTYxMTg1MDU2NWI4MjUyNTA1MDU2NWI2MDAwNjExYTJhODM4MzYxMWEwZjU2NWI2MDIwODMwMTkwNTA5MjkxNTA1MDU2NWI2MDAwNjAyMDgyMDE5MDUwOTE5MDUwNTY1YjYwMDA2MTFhNGU4MjYxMTllMzU2NWI2MTFhNTg4MTg1NjExOWVlNTY1YjkzNTA2MTFhNjM4MzYxMTlmZjU2NWI4MDYwMDA1YjgzODExMDE1NjExYTk0NTc4MTUxNjExYTdiODg4MjYxMWExZTU2NWI5NzUwNjExYTg2ODM2MTFhMzY1NjViOTI1MDUwNjAwMTgxMDE5MDUwNjExYTY3NTY1YjUwODU5MzUwNTA1MDUwOTI5MTUwNTA1NjViNjAwMDYwNjA4MjAxOTA1MDYxMWFiNjYwMDA4MzAxODY2MTExNTA1NjViNjExYWMzNjAyMDgzMDE4NTYxMTYzODU2NWI4MTgxMDM2MDQwODMwMTUyNjExYWQ1ODE4NDYxMWE0MzU2NWI5MDUwOTQ5MzUwNTA1MDUwNTY1YjYwMDA4MDYwNDA4Mzg1MDMxMjE1NjExYWY2NTc2MTFhZjU2MTBmY2I1NjViNWI2MDAwNjExYjA0ODU4Mjg2MDE2MTE1NGU1NjViOTI1MDUwNjAyMDYxMWIxNTg1ODI4NjAxNjExN2I5NTY1YjkxNTA1MDkyNTA5MjkwNTA1NmZlYTI2NDY5NzA2NjczNTgyMjEyMjBjZWNjNjNhM2ZlZjIwMThhNWMzODQ1OGEzMDZhMWIzMTFhMDZlNTUzYTg4ZDlkMWNjZTAwMDdiNzkyYTk2NGNmNjQ3MzZmNmM2MzQzMDAwODEwMDAzMw==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwxpqIeJItADM7IIWnrw8hN2xBGgd8hcZx7WaXBxMuYomrygWmI/0o9l8XbmmcrY3iGgsI+7bkrQYQ08qfeiIPCgkIv7bkrQYQ9yESAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQi/tuStBhD5IRICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGLgNGiISIJNifoqxCE3XlPTQdNYjy+UHu7tmIZ/LDq4Yr1wlc2XFIJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"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VluBc///////////////////////////FmMJXqezYACDYEBRg2P/////FmDgG4FSYAQBYQabkpGQYRPaVltgAGBAUYCDA4FgAIeAOxWAFWEGtVdgAID9W1Ba8RWAFWEGyVc9YACAPj1gAP1bUFBQUFBQVltgADCQUIJz//////////////////////////8WYyO4ct2CM4VgQFGEY/////8WYOAbgVJgBAFhBxOTkpGQYROjVltgAGBAUYCDA4FgAIeAOxWAFWEHLVdgAID9W1Ba8RWAFWEHQVc9YACAPj1gAP1bUFBQUGAAg3P//////////////////////////xZjY1IhHoRgQFGCY/////8WYOAbgVJgBAFhB4CRkGEUA1ZbYCBgQFGAgwOBhlr6FYAVYQedVz1gAIA+PWAA/VtQUFBQYEBRPWAfGWAfggEWggGAYEBSUIEBkGEHwZGQYRQzVluQUDNz//////////////////////////8WgXP//////////////////////////xYUYQf7V2AAgP1bUFBQUFZbgXP//////////////////////////xZjcKCCMYJgQFGCY/////8WYOAbgVJgBAFhCDqRkGERX1ZbYCBgQFGAgwOBhlr6FYAVYQhXVz1gAIA+PWAA/VtQUFBQYEBRPWAfGWAfggEWggGAYEBSUIEBkGEIe5GQYRR1VltQUFBWW2AAgnP//////////////////////////xZjCBgS/INgQFGCY/////8WYOAbgVJgBAFhCLuRkGEUA1ZbYCBgQFGAgwOBhlr6FYAVYQjYVz1gAIA+PWAA/VtQUFBQYEBRPWAfGWAfggEWggGAYEBSUIEBkGEI/JGQYRQzVluQUJKRUFBWW4Jz//////////////////////////8WYwlep7ODg2BAUYNj/////xZg4BuBUmAEAWEJP5KRkGET2lZbYABgQFGAgwOBYACHgDsVgBVhCVlXYACA/VtQWvEVgBVhCW1XPWAAgD49YAD9W1BQUFBQUFBWW2AAgGAAYQFnc///////////////////////////FmN8Qa0sYOAbhWBAUWAkAWEJrZGQYRFfVltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhCheRkGEVE1ZbYABgQFGAgwOBYACGWvGRUFA9gGAAgRRhClRXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hCllWW2BgkVBbUJFQkVCBYQpqV2AVYQp/VluAgGAgAZBRgQGQYQp+kZBhFWNWW1tgAwuSUFBQkZBQVluCc///////////////////////////FmOiLLRlg4NgQFGDY/////8WYOAbgVJgBAFhCsaSkZBhFZBWW2AAYEBRgIMDgWAAh4A7FYAVYQrgV2AAgP1bUFrxFYAVYQr0Vz1gAIA+PWAA/VtQUFBQUFBQVluBc///////////////////////////FmNjUiEegmBAUYJj/////xZg4BuBUmAEAWELNpGQYRQDVltgIGBAUYCDA4GGWvoVgBVhC1NXPWAAgD49YAD9W1BQUFBgQFE9YB8ZYB+CARaCAYBgQFJQgQGQYQt3kZBhFDNWW1BQUFZbYACDc///////////////////////////FmPphenFhIRgQFGDY/////8WYOAbgVJgBAFhC7mSkZBhFblWW2AgYEBRgIMDgYZa+hWAFWEL1lc9YACAPj1gAP1bUFBQUGBAUT1gHxlgH4IBFoIBgGBAUlCBAZBhC/qRkGEV91ZbkFCTklBQUFZbYACAYGBgAIBhAWdz//////////////////////////8WYyeOC4hg4BuJiYlgQFFgJAFhDEGTkpGQYRdkVltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhDKuRkGEVE1ZbYABgQFGAgwOBYACGWvGRUFA9gGAAgRRhDOhXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hDO1WW2BgkVBbUJFQkVCBYQ1JV2AVYACAZ///////////gREVYQ0VV2ENFGETNlZbW2BAUZCAglKAYCACYCABggFgQFKAFWENQ1eBYCABYCCCAoA2gzeAggGRUFCQUFtQYQ1eVluAgGAgAZBRgQGQYQ1dkZBhGSBWW1uCYAMLklCAlVCBllCCl1BQUFBQUJNQk1CTkFBWW2AAgGAAYQFnc///////////////////////////FmNc/JARYOAbiIiIiGBAUWAkAWENuJSTkpGQYRmeVltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhDiKRkGEVE1ZbYABgQFGAgwOBYACGWvGRUFA9gGAAgRRhDl9XYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hDmRWW2BgkVBbUJFQkVCBYQ51V2AVYQ6KVluAgGAgAZBRgQGQYQ6JkZBhFWNWW1tgAwuSUFBQlJNQUFBQVltgAIBgAIBhAWdz//////////////////////////8WY6y5z/lg4BuIiIhgQFFgJAFhDtWTkpGQYRqhVltgQFFgIIGDAwOBUpBgQFKQe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhDz+RkGEVE1ZbYABgQFGAgwOBYACGWvGRUFA9gGAAgRRhD3xXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPWAAYCCEAT5hD4FWW2BgkVBbUJFQkVCBYQ+UV2AVYABhD6lWW4CAYCABkFGBAZBhD6iRkGEa31ZbW4FgAwuRUICUUIGVUFBQUFCTUJORUFBWW2AAYEBRkFCQVltgAID9W2AAgP1bYABz//////////////////////////+CFpBQkZBQVltgAGEQAIJhD9VWW5BQkZBQVlthEBCBYQ/1VluBFGEQG1dgAID9W1BWW2AAgTWQUGEQLYFhEAdWW5KRUFBWW2AAgGBAg4UDEhVhEEpXYRBJYQ/LVltbYABhEFiFgoYBYRAeVluSUFBgIGEQaYWChgFhEB5WW5FQUJJQkpBQVltgAIGQUJGQUFZbYRCGgWEQc1ZbgRRhEJFXYACA/VtQVltgAIE1kFBhEKOBYRB9VluSkVBQVltgAIBgAIBggIWHAxIVYRDDV2EQwmEPy1ZbW2AAYRDRh4KIAWEQHlZblFBQYCBhEOKHgogBYRAeVluTUFBgQGEQ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"},{"b64Body":"Cg8KCQjAtuStBhD7IRICGAISAhgDGNaL5+gCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAUwKB25mVG9rZW4SCE9QSEFPVlVNKgMYuQ1SIhIgk2J+irEITdeU9NB01iPL5Qe7u2Yhn8sOrhivXCVzZcVqCwj8hL+xBhDY99BpiAEB","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGLoNEjDV9cWyCKv7Pe8tCkxqEO58LNQAMbqwKDTb4bXygR8ozmUphB9mPrYYXn/1wb1WStIaDAj8tuStBhDD9NmDASIPCgkIwLbkrQYQ+yESAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAcgoKAxi6DRIDGLkN"},{"b64Body":"Cg8KCQjAtuStBhCBIhICGAISAhgDGP2NkRAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjqoCCwoDGLoNGgFBGgFC","b64Record":"CiYIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1gCcgIBAhIwOwi+jHZTxqOurCiNxmleXiPDdRU5f8jnPq0Fvw82fd91fvtkLipOqdcx5SbP2WImGgwI/LbkrQYQg6bK6AIiDwoJCMC25K0GEIEiEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAFofCgMYug0aCwoCGAASAxi5DRgBGgsKAhgAEgMYuQ0YAg=="},{"b64Body":"Cg8KCQjBtuStBhCJIhICGAISAhgDGOC2iyAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGLYNEgMYug0=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw/+VwWUq76CsJ8JF6nWXnOhrl2QXv9MwW3g0fMpJuD2wqBidKszmTVSb8v1QtGzo2GgsI/bbkrQYQ8+jncCIPCgkIwbbkrQYQiSISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjBtuStBhCLIhICGAISAhgDGIfiPCICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOciMSIQoDGLoNGgwKAxi5DRIDGLYNGAEaDAoDGLkNEgMYtg0YAg==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw6f7WYyc4XXKqDGvwPFRI9bmh+GRpCs0XUPRdXeJNDCm009WbcRQHgLAKaQ1BVKvxGgwI/bbkrQYQ09yf8gIiDwoJCMG25K0GEIsiEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAFohCgMYug0aDAoDGLkNEgMYtg0YARoMCgMYuQ0SAxi2DRgC"},{"b64Body":"Cg8KCQjCtuStBhCNIhICGAISAhgDGMC/7SEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjpPCgMYuQ0QwIQ9IkRTKQtEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABroAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGtg==","b64Record":"CiUIFiIDGLkNKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCG4CcRO0uEoE/Zp2peg9xK6BA//xiKUJKRy0IcgW+Yaiy05Oh0K2qmPnLwQ0sj7K4aCwj+tuStBhCThqF6Ig8KCQjCtuStBhCNIhICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMIDmihs6jAIKAxi5DSKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAogOowUhYKCQoCGAIQ/8uVNgoJCgIYYhCAzJU2"},{"b64Body":"ChEKCQjCtuStBhCNIhICGAIgATpFCgMY5wIQASI8YY3GXgAAAAAAAAAAAAAAAAAAAAAAAAa6cKCCMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAa2","b64Record":"CgIIFhIwW5oM0VImqlPd6sPMVdW1R26ZUZTjFuU/ceiNIpfAGf/lGn/a6+hT/ae+1OVGndFIGgsI/rbkrQYQlIaheiIRCgkIwrbkrQYQjSISAhgCIAE6LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAihkagMYuQ1SAHoLCP625K0GEJOGoXo="},{"b64Body":"Cg8KCQjCtuStBhCPIhICGAISAhgDGMC/7SEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjpPCgMYuQ0QwIQ9IkRTKQtEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKLCoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGtg==","b64Record":"CiUIHSIDGLkNKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjC6+kn7CD7OWAVPIUjqnOxZtIE6Zw+qL2BlYzA46JBX240ilPyC6+gaYg4vF5oVgRMaDAj+tuStBhDzr8T8AiIPCgkIwrbkrQYQjyISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDAv+0hOh4aGElOVkFMSURfU09MSURJVFlfQUREUkVTUyjAhD1SFgoJCgIYAhD//tpDCgkKAhhiEID/2kM="},{"b64Body":"Cg8KCQjDtuStBhCRIhICGAISAhgDGMC/7SEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjpPCgMYuQ0QwIQ9IkRTKQtEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABroAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGtw==","b64Record":"CiUIFiIDGLkNKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjC3MX2OsqceirD9qJ3VdUbx8+s+UDN8190zxv0HPZVdFEh2RM49ycVwvN/PpeZtea8aDAj/tuStBhCzmt2DASIPCgkIw7bkrQYQkSISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCA5oobOowCCgMYuQ0igAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKIDqMFIWCgkKAhgCEP/LlTYKCQoCGGIQgMyVNg=="},{"b64Body":"ChEKCQjDtuStBhCRIhICGAIgATpFCgMY5wIQASI8YY3GXgAAAAAAAAAAAAAAAAAAAAAAAAa6cKCCMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAa3","b64Record":"CgIIFhIwj/o7UTSKQq4xdxgO0X61s3ujwxl5hvEIYAnlShOEGlHncuLk/yVd9+wB0XHXGTzYGgwI/7bkrQYQtJrdgwEiEQoJCMO25K0GEJEiEgIYAiABOi4KAxjnAhIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoZGoDGLkNUgB6DAj/tuStBhCzmt2DAQ=="}]},"callToNonExistingContractFailsGracefully":{"placeholderNum":1723,"encodedItems":[{"b64Body":"Cg8KCQjJtuStBhDBIhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIBF9WUtsKphKkNK5XsBteDNirLXLmfL6CNdqgzEgrsbrEICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGLwNKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDW1H2O8GL4mmOpXzL9FXkf/ZkR05GmIj2voZih29G/BSYPxj9/XFC09X7ZgNhACPgaDAiFt+StBhDDp5CTAiIPCgkIybbkrQYQwSISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIfCg0KAhgCEP//663M7JACCg4KAxi8DRCAgOytzOyQAg=="},{"b64Body":"Cg8KCQjKtuStBhDDIhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIDvh6VBsqsubNj2dYcPfGdPk7WmKtUMwYLsQ52NaBiV9EICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGL0NKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBcRsOWhJunwJL07cxffviToxqUzXwcRVp+AXQyCbifStQaYHDBGmblaJAvi/ARUEgaCwiGt+StBhCD4IwbIg8KCQjKtuStBhDDIhICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUhkKCgoCGAIQ/6fWuQcKCwoDGL0NEICo1rkH"},{"b64Body":"ChEKCQjKtuStBhDFIhICGAIgAVpoCiM6IQPQs42yAwobPIu4xVDUHxlMVJ78Llfh7/BbWjGTc6n5j0oFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiED0LONsgMKGzyLuMVQ1B8ZTFSe/C5X4e/wW1oxk3Op+Y8=","b64Record":"CgcIFhIDGL4NEjAEoJAGZ5jSYP71KQYRECxRaFpYb9rjtipF1VxepGG1KmEh1+tFBlye20mAux0PhdQaDAiGt+StBhCKq+mcAiIRCgkIyrbkrQYQxSISAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARRIbUgGwAzsyKpjFgD7z0gsJ7KODg=="},{"b64Body":"Cg8KCQjKtuStBhDFIhICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohA9CzjbIDChs8i7jFUNQfGUxUnvwuV+Hv8FtaMZNzqfmPEICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwVh3qXZ5xNLLvaUHNg66Hzh5Y6QN/uf/XVeenToGpGGvmlo3h+GUv27zUMrvgwuN5GgwIhrfkrQYQi6vpnAIiDwoJCMq25K0GEMUiEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SGQoKCgIYAhD/j9/ASgoLCgMYvg0QgJDfwEo="}]},"getErc20TokenNameExceedingLimits":{"placeholderNum":1727,"encodedItems":[{"b64Body":"Cg8KCQjPtuStBhDgIhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloyCiISIJblrSODBxmEEkpw00b+bX0sf/UFBmZHEDl4P/1xfZY2EICglKWNHUoFCIDO2gM=","b64Record":"CiUIFhIDGMANKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAFCIT/1Kh07oX/pTtuz157dCQu5iN1kAyV02OC32L5mS0bmV+qNb/Iqhvdg4j9lhkaDAiLt+StBhDL7aOiAyIPCgkIz7bkrQYQ4CISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIbCgsKAhgCEP+/qMqaOgoMCgMYwA0QgMCoypo6"},{"b64Body":"Cg8KCQjQtuStBhDiIhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIB28bZ19WAcOfKg0XBoHc7Jxuz1142UYt+hsG+E4wVALEICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGMENKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjB7B8ra5vZGP6jKCrZ3NrTT2V6LeNq6QrKf71nFwQwXUSnxMNGzQqCdUZkkQ5DgT9QaDAiMt+StBhCrmavHASIPCgkI0LbkrQYQ4iISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxjBDRCAqNa5Bw=="},{"b64Body":"Cg8KCQjQtuStBhDkIhICGAISAhgDGJPm6fsCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAXIKCXRva2VuTmFtZRIIQUZSUElXV0EgBSoDGMENMiISIGw/6Is7V/lZ2bH15eAD/WUsElU7l3dY0XjxesCXTRALUiISIGw/6Is7V/lZ2bH15eAD/WUsElU7l3dY0XjxesCXTRALagwIjIW/sQYQwOa5pQM=","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGMINEjDVB8nSw3NGF+PnpxC62k/pMs1p0Ryk0unl+dItAoX4h6BxMemXipaLFsENSRQMGEAaDAiMt+StBhCj4cirAyIPCgkI0LbkrQYQ5CISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWg4KAxjCDRIHCgMYwQ0QCnIKCgMYwg0SAxjBDQ=="},{"b64Body":"Cg8KCQjRtuStBhDmIhICGAISAhgDGLXNziwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAiNhb+xBhCA+se5ARptCiISIJJqAQKVxqAX2i+3ZKCrLvTWOIUlkXHyy9cIFuG94z2HCiM6IQKsyXZXC0ccXK56cQIhrYeVaVeLunO0Et9yamqsbnHplgoiEiAKd34VCCpWYhUy5u06Ke7RAGBloVXqWFA2j7lExM3a6SIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGMMNKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBY9AaXVTcSKjO9VbE77W+PqWiUdwtSWYtlRvLHdjgdpob3B92E/NwddHMnF0EnRBIaDAiNt+StBhCT66HQASIPCgkI0bbkrQYQ5iISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjRtuStBhDqIhICGAISAhgDGN2ejz4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxjDDSKAIDYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMGE1NzgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDA0MzYxMDYxMDBjZjU3NjAwMDM1NjBlMDFjODA2M2JlYWJhY2M4MTE2MTAwOGM1NzgwNjNlNGRjMmFhNDExNjEwMDY2NTc4MDYzZTRkYzJhYTQxNDYxMDE4MTU3ODA2M2Y0Yjc5ZGE1MTQ2MTAxOTQ1NzgwNjNmNzg4OGFlYzE0NjEwMWE3NTc4MDYzZjc5Yzc1NjgxNDYxMDFiYTU3NjAwMDgwZmQ1YjgwNjNiZWFiYWNjODE0NjEwMTQ4NTc4MDYzZDQ0OWE4MzIxNDYxMDE1YjU3ODA2M2UxZjIxYzY3MTQ2MTAxNmU1NzYwMDA4MGZkNWI4MDYzMDE5ODQ4OTIxNDYxMDBkNDU3ODA2MzE1ZGFjYmVhMTQ2MTAwZTk1NzgwNjMxZjg0YjJiNzE0NjEwMGZjNTc4MDYzOTI3ZGExMDUxNDYxMDEwZjU3ODA2Mzk4ZGNhNWJlMTQ2MTAxMjI1NzgwNjNhODZlMzU3NjE0NjEwMTM1NTc1YjYwMDA4MGZkNWI2MTAwZTc2MTAwZTIzNjYwMDQ2MTA3NDY1NjViNjEwMWNkNTY1YjAwNWI2MTAwZTc2MTAwZjczNjYwMDQ2MTA3Njg1NjViNjEwMjM3NTY1YjYxMDBlNzYxMDEwYTM2NjAwNDYxMDdiMzU2NWI2MTAyYjk1NjViNjEwMGU3NjEwMTFkMzY2MDA0NjEwN2VmNTY1YjYxMDMzMzU2NWI2MTAwZTc2MTAxMzAzNjYwMDQ2MTA3Njg1NjViNjEwM2FiNTY1YjYxMDBlNzYxMDE0MzM2NjAwNDYxMDc0NjU2NWI2MTAzZTg1NjViNjEwMGU3NjEwMTU2MzY2MDA0NjEwN2IzNTY1YjYxMDQyNjU2NWI2MTAwZTc2MTAxNjkzNjYwMDQ2MTA3NDY1NjViNjEwNDlhNTY1YjYxMDBlNzYxMDE3YzM2NjAwNDYxMDdiMzU2NWI2MTA0ZmM1NjViNjEwMGU3NjEwMThmMzY2MDA0NjEwNzQ2NTY1YjYxMDUzMTU2NWI2MTAwZTc2MTAxYTIzNjYwMDQ2MTA3YjM1NjViNjEwNTkzNTY1YjYxMDBlNzYxMDFiNTM2NjAwNDYxMDgzMjU2NWI2MTA2Mzc1NjViNjEwMGU3NjEwMWM4MzY2MDA0NjEwODY1NTY1YjYxMDZhNjU2NWI4MDYwMDE2MDAxNjBhMDFiMDMxNjYzMDZmZGRlMDM2MDQwNTE4MTYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MDAwNjA0MDUxODA4MzAzODE4NjVhZmExNTgwMTU2MTAyMGI1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA2MDQwNTEzZDYwMDA4MjNlNjAxZjNkOTA4MTAxNjAxZjE5MTY4MjAxNjA0MDUyNjEwMjMzOTE5MDgxMDE5MDYxMDhkMTU2NWI1MDUwNTY1YjYwNDA1MTYzMjNiODcyZGQ2MGUwMWI4MTUyNjAwMTYwMDE2MGEwMWIwMzg0ODExNjYwMDQ4MzAxNTI4MzgxMTY2MDI0ODMwMTUyNjA0NDgyMDE4MzkwNTI4NTE2OTA2MzIzYjg3MmRkOTA2MDY0MDE2MDIwNjA0MDUxODA4MzAzODE2MDAwODc1YWYxMTU4MDE1NjEwMjhlNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTAyYjI5MTkwNjEwOTdlNTY1YjUwNTA1MDUwNTA1NjViNjA0MDUxNjNhOTA1OWNiYjYwZTAxYjgxNTI2MDAxNjAwMTYwYTAxYjAzODM4MTE2NjAwNDgzMDE1MjYwMjQ4MjAxODM5MDUyODQxNjkwNjNhOTA1OWNiYjkwNjA0NDAxNWI2MDIwNjA0MDUxODA4MzAzODE2MDAwODc1YWYxMTU4MDE1NjEwMzA5NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTAzMmQ5MTkwNjEwOTdlNTY1YjUwNjAwMDgwZmQ1YjYwNDA1MTYzNmViMTc2OWY2MGUxMWI4MTUyNjAwMTYwMDE2MGEwMWIwMzgzODExNjYwMDQ4MzAxNTI4MjgxMTY2MDI0ODMwMTUyODQxNjkwNjNkZDYyZWQzZTkwNjA0NDAxNjAyMDYwNDA1MTgwODMwMzgxODY1YWZhMTU4MDE1NjEwMzgxNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTAzYTU5MTkwNjEwOWEwNTY1YjUwNTA1MDUwNTY1YjYwNDA1MTYzMjNiODcyZGQ2MGUwMWI4MTUyNjAwMTYwMDE2MGEwMWIwMzg0ODExNjYwMDQ4MzAxNTI4MzgxMTY2MDI0ODMwMTUyNjA0NDgyMDE4MzkwNTI4NTE2OTA2MzIzYjg3MmRkOTA2MDY0MDE2MTAyZWE1NjViODA2MDAxNjAwMTYwYTAxYjAzMTY2Mzk1ZDg5YjQxNjA0MDUxODE2M2ZmZmZmZmZmMTY2MGUwMWI4MTUyNjAwNDAxNjAwMDYwNDA1MTgwODMwMzgxODY1YWZhMTU4MDE1NjEwMjBiNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjYwNDA1MTYzYTkwNTljYmI2MGUwMWI4MTUyNjAwMTYwMDE2MGEwMWIwMzgzODExNjYwMDQ4MzAxNTI2MDI0ODIwMTgzOTA1Mjg0MTY5MDYzYTkwNTljYmI5MDYwNDQwMTViNjAyMDYwNDA1MTgwODMwMzgxNjAwMDg3NWFmMTE1ODAxNTYxMDQ3NjU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAxZjE5NjAxZjgyMDExNjgyMDE4MDYwNDA1MjUwODEwMTkwNjEwM2E1OTE5MDYxMDk3ZTU2NWI4MDYwMDE2MDAxNjBhMDFiMDMxNjYzMzEzY2U1Njc2MDQwNTE4MTYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MDIwNjA0MDUxODA4MzAzODE4NjVhZmExNTgwMTU2MTA0ZDg1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA2MDQwNTEzZDYwMWYxOTYwMWY4MjAxMTY4MjAxODA2MDQwNTI1MDgxMDE5MDYxMDIzMzkxOTA2MTA5Yjk1NjViNjA0MDUxNjMwOTVlYTdiMzYwZTAxYjgxNTI2MDAxNjAwMTYwYTAxYjAzODM4MTE2NjAwNDgzMDE1MjYwMjQ4MjAxODM5MDUyODQxNjkwNjMwOTVlYTdiMzkwNjA0NDAxNjEwNDU3NTY1YjgwNjAwMTYwMDE2MGEwMWIwMzE2NjMxODE2MGRkZDYwNDA1MTgxNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYwMjA2MDQwNTE4MDgzMDM4MTg2NWFmYTE1ODAxNTYxMDU2ZjU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAxZjE5NjAxZjgyMDExNjgyMDE4MDYwNDA1MjUwODEwMTkwNjEwMjMzOTE5MDYxMDlhMDU2NWI2MDQwNTE2MDAxNjAwMTYwYTAxYjAzODM4MTE2NjAyNDgzMDE1MjYwNDQ4MjAxODM5MDUyNjAwMDkxODI5MTg2MTY5MDYwNjQwMTYwNDA4MDUxNjAxZjE5ODE4NDAzMDE4MTUyOTE4MTUyNjAyMDgyMDE4MDUxNjAwMTYwMDE2MGUwMWIwMzE2NjNhOTA1OWNiYjYwZTAxYjE3OTA1MjUxNjEwNWVkOTE5MDYxMDlkYzU2NWI2MDAwNjA0MDUxODA4MzAzODE4NTVhZjQ5MTUwNTAzZDgwNjAwMDgxMTQ2MTA2Mjg1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNjAwMDYwMjA4NDAxM2U2MTA2MmQ1NjViNjA2MDkxNTA1YjUwNTA1MDUwNTA1MDUwNTA1NjViNjA0MDUxNjM3MGEwODIzMTYwZTAxYjgxNTI2MDAxNjAwMTYwYTAxYjAzODI4MTE2NjAwNDgzMDE1MjgzMTY5MDYzNzBhMDgyMzE5MDYwMjQwMTYwMjA2MDQwNTE4MDgzMDM4MTg2NWFmYTE1ODAxNTYxMDY3ZDU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAxZjE5NjAxZjgyMDExNjgyMDE4MDYwNDA1MjUwODEwMTkwNjEwNmExOTE5MDYxMDlhMDU2NWI1MDUwNTA1NjViNjAwMDViODE4MTEwMTU2MTA2YTE1NzgyNjAwMTYwMDE2MGEwMWIwMzE2NjMwNmZkZGUwMzYwNDA1MTgxNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYwMDA2MDQwNTE4MDgzMDM4MTg2NWFmYTE1ODAxNTYxMDZlZjU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwNDA1MTNkNjAwMDgyM2U2MDFmM2Q5MDgxMDE2MDFmMTkxNjgyMDE2MDQwNTI2MTA3MTc5MTkwODEwMTkwNjEwOGQxNTY1YjUwODA2MTA3MjI4MTYxMDlmODU2NWI5MTUwNTA2MTA2YTk1NjViODAzNTYwMDE2MDAxNjBhMDFiMDM4MTE2ODExNDYxMDc0MTU3NjAwMDgwZmQ1YjkxOTA1MDU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTA3NTg1NzYwMDA4MGZkNWI2MTA3NjE4MjYxMDcyYTU2NWI5MzkyNTA1MDUwNTY1YjYwMDA4MDYwMDA4MDYwODA4NTg3MDMxMjE1NjEwNzdlNTc2MDAwODBmZDViNjEwNzg3ODU2MTA3MmE1NjViOTM1MDYxMDc5NTYwMjA4NjAxNjEwNzJhNTY1YjkyNTA2MTA3YTM2MDQwODYwMTYxMDcyYTU2NWI5Mzk2OTI5NTUwOTI5MzYwNjAwMTM1OTI1MDUwNTY1YjYwMDA4MDYwMDA2MDYwODQ4NjAzMTIxNTYxMDdjODU3NjAwMDgwZmQ1YjYxMDdkMTg0NjEwNzJhNTY1YjkyNTA2MTA3ZGY2MDIwODUwMTYxMDcyYTU2NWI=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw6007e7T7qqDkSjTxvpg1qkUJWbM2PzdD6gT+48TpmiMpfiQmvGZ5DjQB7kuThXiCGgwIjbfkrQYQg8HUtQMiDwoJCNG25K0GEOoiEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjStuStBhDwIhICGAISAhgDGNS6tDIiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIB9gkSAxjDDSLuCTkxNTA2MDQwODQwMTM1OTA1MDkyNTA5MjUwOTI1NjViNjAwMDgwNjAwMDYwNjA4NDg2MDMxMjE1NjEwODA0NTc2MDAwODBmZDViNjEwODBkODQ2MTA3MmE1NjViOTI1MDYxMDgxYjYwMjA4NTAxNjEwNzJhNTY1YjkxNTA2MTA4Mjk2MDQwODUwMTYxMDcyYTU2NWI5MDUwOTI1MDkyNTA5MjU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMDg0NTU3NjAwMDgwZmQ1YjYxMDg0ZTgzNjEwNzJhNTY1YjkxNTA2MTA4NWM2MDIwODQwMTYxMDcyYTU2NWI5MDUwOTI1MDkyOTA1MDU2NWI2MDAwODA2MDQwODM4NTAzMTIxNTYxMDg3ODU3NjAwMDgwZmQ1YjYxMDg4MTgzNjEwNzJhNTY1Yjk0NjAyMDkzOTA5MzAxMzU5MzUwNTA1MDU2NWI2MzRlNDg3YjcxNjBlMDFiNjAwMDUyNjA0MTYwMDQ1MjYwMjQ2MDAwZmQ1YjYwMDA1YjgzODExMDE1NjEwOGMwNTc4MTgxMDE1MTgzODIwMTUyNjAyMDAxNjEwOGE4NTY1YjgzODExMTE1NjEwM2E1NTc1MDUwNjAwMDkxMDE1MjU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTA4ZTM1NzYwMDA4MGZkNWI4MTUxNjdmZmZmZmZmZmZmZmZmZmZmODA4MjExMTU2MTA4ZmI1NzYwMDA4MGZkNWI4MTg0MDE5MTUwODQ2MDFmODMwMTEyNjEwOTBmNTc2MDAwODBmZDViODE1MTgxODExMTE1NjEwOTIxNTc2MTA5MjE2MTA4OGY1NjViNjA0MDUxNjAxZjgyMDE2MDFmMTk5MDgxMTY2MDNmMDExNjgxMDE5MDgzODIxMTgxODMxMDE3MTU2MTA5NDk1NzYxMDk0OTYxMDg4ZjU2NWI4MTYwNDA1MjgyODE1Mjg3NjAyMDg0ODcwMTAxMTExNTYxMDk2MjU3NjAwMDgwZmQ1YjYxMDk3MzgzNjAyMDgzMDE2MDIwODgwMTYxMDhhNTU2NWI5Nzk2NTA1MDUwNTA1MDUwNTA1NjViNjAwMDYwMjA4Mjg0MDMxMjE1NjEwOTkwNTc2MDAwODBmZDViODE1MTgwMTUxNTgxMTQ2MTA3NjE1NzYwMDA4MGZkNWI2MDAwNjAyMDgyODQwMzEyMTU2MTA5YjI1NzYwMDA4MGZkNWI1MDUxOTE5MDUwNTY1YjYwMDA2MDIwODI4NDAzMTIxNTYxMDljYjU3NjAwMDgwZmQ1YjgxNTE2MGZmODExNjgxMTQ2MTA3NjE1NzYwMDA4MGZkNWI2MDAwODI1MTYxMDllZTgxODQ2MDIwODcwMTYxMDhhNTU2NWI5MTkwOTEwMTkyOTE1MDUwNTY1YjYwMDA2MDAwMTk4MjE0MTU2MTBhMWE1NzYzNGU0ODdiNzE2MGUwMWI2MDAwNTI2MDExNjAwNDUyNjAyNDYwMDBmZDViNTA2MDAxMDE5MDU2ZmVhMjY0Njk3MDY2NzM1ODIyMTIyMDkzZGI3ZDJiZGQwOTYyNTBhZGQ4ZWZlNmNjOWJhNGExZjdjZjEzOGQ0MTBiNTQ0ODlmNmFlYmY0NDI5NmRmM2Y2NDczNmY2YzYzNDMwMDA4MGIwMDMz","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwvLZdrOYpsjfVHp4CoJDVIppE+TlV+DX6mn4vIOZF+yov4nt7v2krSoAoYBB9xAMrGgwIjrfkrQYQu8/62QEiDwoJCNK25K0GEPAiEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjStuStBhDyIhICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGMMNGiISIFGXPvtJkbx9QIgxBlVM/pAj3EnIKUYrVAtcls65PVvoIJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"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"},{"b64Body":"ChAKCQjftuStBhCUIxIDGMANEgIYAxiA/rWHASICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOOlAKAxjEDRCAkvQBIkT3nHVoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMw==","b64Record":"CiYIyAIiAxjEDSocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw47LRsYwkbY3aKp9JcqR7Puj4H5oD1tmluBSoW9KE0ccLZMrPwhuvHPI/HTjMMr8IGgsInLfkrQYQ+4SDCCIQCgkI37bkrQYQlCMSAxjADSogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wgP61hwE6PRo2MHg0ZDQxNTg1ZjQzNDg0OTRjNDQ1ZjUyNDU0MzRmNTI0NDUzNWY0NTU4NDM0NTQ1NDQ0NTQ0KICS9AFSGQoKCgIYYhCA/OuOAgoLCgMYwA0Q//vrjgI="},{"b64Body":"ChIKCQjftuStBhCUIxIDGMANIAE6JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAGwgb93gM=","b64Record":"CgMImAISMB9Uf9l+96HomeaMQP1AinTrCOErk6rkIxydY9D+Dzh3QQC7TZRoLlb2fJFIHzSLbRoLCJy35K0GEPyEgwgiEgoJCN+25K0GEJQjEgMYwA0gATpuCgMY5wISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0b2tlbk5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYxA1SAHoLCJy35K0GEPuEgwg="},{"b64Body":"ChIKCQjftuStBhCUIxIDGMANIAI6JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAGwgb93gM=","b64Record":"CgMImAISMLfw0e5SJVhiGmWuNy9EmVGFUr4+9HiAg0dn3KY8HKvO9yVVYfpjvOXhC2NSzhKVXxoLCJy35K0GEP2EgwgiEgoJCN+25K0GEJQjEgMYwA0gAjpuCgMY5wISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0b2tlbk5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYxA1SAHoLCJy35K0GEPuEgwg="},{"b64Body":"ChIKCQjftuStBhCUIxIDGMANIAM6JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAGwgb93gM=","b64Record":"CgMImAISMAlOD+VB9FY0edY8IJLR7zYXqPWdgv2CF7/bAK8pxASdjENGY8DbvtADQCjhsIrmPhoLCJy35K0GEP6EgwgiEgoJCN+25K0GEJQjEgMYwA0gAzpuCgMY5wISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0b2tlbk5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYxA1SAHoLCJy35K0GEPuEgwg="},{"b64Body":"ChIKCQjftuStBhCUIxIDGMANIAQ6JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAGwgb93gM=","b64Record":"CgMImAISMIbwpmRPdCzFCgr4gv9o32Yg0QpleJCea8gvrMW3IPjyxDgA+xND9As/vwCwE/8e6RoLCJy35K0GEP+EgwgiEgoJCN+25K0GEJQjEgMYwA0gBDpuCgMY5wISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0b2tlbk5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYxA1SAHoLCJy35K0GEPuEgwg="},{"b64Body":"ChIKCQjftuStBhCUIxIDGMANIAU6JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAGwgb93gM=","b64Record":"CgMImAISMEbRfUiAIzghO2ShZ5E1XHbgDjuFlP6C5xRS2tDBh6FfCPsnQmbn4LWR4o+SzP6vaRoLCJy35K0GEICFgwgiEgoJCN+25K0GEJQjEgMYwA0gBTpuCgMY5wISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0b2tlbk5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYxA1SAHoLCJy35K0GEPuEgwg="},{"b64Body":"ChIKCQjftuStBhCUIxIDGMANIAY6JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAGwgb93gM=","b64Record":"CgMImAISMP12BQD9iWQ0vqsg6ZNaK0Cv7hoYtRt2hcz6UuPtdFMnpC7BB2cGFGo5xDqpJvVhAhoLCJy35K0GEIGFgwgiEgoJCN+25K0GEJQjEgMYwA0gBjpuCgMY5wISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0b2tlbk5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYxA1SAHoLCJy35K0GEPuEgwg="},{"b64Body":"ChIKCQjftuStBhCUIxIDGMANIAc6JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAGwgb93gM=","b64Record":"CgMImAISMEN0KloTW8T47wpprAiTjExASMGTQnfRpW3ADBS7FhvOGCoMWNU1y5JO3CNO+i1swhoLCJy35K0GEIKFgwgiEgoJCN+25K0GEJQjEgMYwA0gBzpuCgMY5wISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0b2tlbk5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYxA1SAHoLCJy35K0GEPuEgwg="},{"b64Body":"ChIKCQjftuStBhCUIxIDGMANIAg6JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAGwgb93gM=","b64Record":"CgMImAISMExQkkkHEft5H0zQbnn/9OvScv+kgNCL4oSmY0HZBKVidKSbDASuk3ukhhNoR7looxoLCJy35K0GEIOFgwgiEgoJCN+25K0GEJQjEgMYwA0gCDpuCgMY5wISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0b2tlbk5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYxA1SAHoLCJy35K0GEPuEgwg="},{"b64Body":"ChIKCQjftuStBhCUIxIDGMANIAk6JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAGwgb93gM=","b64Record":"CgMImAISMOIgB6DAJb/MYo8diBURkSvE5PnbJ70i/4yGCl5Jbj+nMlga4tMdXLTEUhO5Dp7sjhoLCJy35K0GEISFgwgiEgoJCN+25K0GEJQjEgMYwA0gCTpuCgMY5wISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0b2tlbk5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYxA1SAHoLCJy35K0GEPuEgwg="},{"b64Body":"ChIKCQjftuStBhCUIxIDGMANIAo6JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAGwgb93gM=","b64Record":"CgMImAISMOgt3loAzKdgiw5l/j1Q8fle4Z0iojyUDbljkXBnISPS7uIgpzjIsRwHZ3Ee6FYwmBoLCJy35K0GEIWFgwgiEgoJCN+25K0GEJQjEgMYwA0gCjpuCgMY5wISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0b2tlbk5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYxA1SAHoLCJy35K0GEPuEgwg="},{"b64Body":"ChIKCQjftuStBhCUIxIDGMANIAs6JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAGwgb93gM=","b64Record":"CgMImAISMFApQ7Gy7CduYppO07tuz/4XbTqOId5LnmBFgLJEB3Zh7/7uxaqkoaZqn3bCQtGz4xoLCJy35K0GEIaFgwgiEgoJCN+25K0GEJQjEgMYwA0gCzpuCgMY5wISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0b2tlbk5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYxA1SAHoLCJy35K0GEPuEgwg="},{"b64Body":"ChIKCQjftuStBhCUIxIDGMANIAw6JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAGwgb93gM=","b64Record":"CgMImAISMMpGu6hZkYJgVwcc9EouUoIculvs2afcGQX8ykXnBJfzWW9gZEOFHvUSXRguTkH1cxoLCJy35K0GEIeFgwgiEgoJCN+25K0GEJQjEgMYwA0gDDpuCgMY5wISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0b2tlbk5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYxA1SAHoLCJy35K0GEPuEgwg="},{"b64Body":"ChIKCQjftuStBhCUIxIDGMANIA06JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAGwgb93gM=","b64Record":"CgMImAISMCBndPQIjtBS47PcLbmHU8CoJ+MZ1fFJbZHhZIgNdBCLD1DgkeIrr4HaUEu7iJ8TFhoLCJy35K0GEIiFgwgiEgoJCN+25K0GEJQjEgMYwA0gDTpuCgMY5wISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0b2tlbk5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYxA1SAHoLCJy35K0GEPuEgwg="},{"b64Body":"ChIKCQjftuStBhCUIxIDGMANIA46JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAGwgb93gM=","b64Record":"CgMImAISMLg7/I3lFmtQhw3xtQSh1ctHkrcdyaxCkDPsaBOvW8rG4MVcsYxgh0ppoZKsy/U0PxoLCJy35K0GEImFgwgiEgoJCN+25K0GEJQjEgMYwA0gDjpuCgMY5wISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0b2tlbk5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYxA1SAHoLCJy35K0GEPuEgwg="},{"b64Body":"ChIKCQjftuStBhCUIxIDGMANIA86JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAGwgb93gM=","b64Record":"CgMImAISMOS1jekT1GWF3vQLIt2a7k5fvf+43cqW2szL1SdCmRiRFKbvryfUjBwWh2Gyu49slxoLCJy35K0GEIqFgwgiEgoJCN+25K0GEJQjEgMYwA0gDzpuCgMY5wISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0b2tlbk5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYxA1SAHoLCJy35K0GEPuEgwg="},{"b64Body":"ChIKCQjftuStBhCUIxIDGMANIBA6JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAGwgb93gM=","b64Record":"CgMImAISMKnT85CKrQBxS7orkNROvkmk6z8kBQ0VfoZbsfDT9XJPPW8+jqCL8vfcnCCp57oSrRoLCJy35K0GEIuFgwgiEgoJCN+25K0GEJQjEgMYwA0gEDpuCgMY5wISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0b2tlbk5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYxA1SAHoLCJy35K0GEPuEgwg="},{"b64Body":"ChIKCQjftuStBhCUIxIDGMANIBE6JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAGwgb93gM=","b64Record":"CgMImAISMAb9f7DN1OD9CZw4wZJFCQQF3aXtmBGq4IZcbkNtA55p5uCoAYVSP727KOBRthvRKhoLCJy35K0GEIyFgwgiEgoJCN+25K0GEJQjEgMYwA0gETpuCgMY5wISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0b2tlbk5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYxA1SAHoLCJy35K0GEPuEgwg="},{"b64Body":"ChIKCQjftuStBhCUIxIDGMANIBI6JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAGwgb93gM=","b64Record":"CgMImAISMB8FyGOwzHu2McMhT4Qb8E1T8TUm5hhc9NEXLbtzuIuqCy0SomfnOkk5YBI38RxVUxoLCJy35K0GEI2FgwgiEgoJCN+25K0GEJQjEgMYwA0gEjpuCgMY5wISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0b2tlbk5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYxA1SAHoLCJy35K0GEPuEgwg="},{"b64Body":"ChIKCQjftuStBhCUIxIDGMANIBM6JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAGwgb93gM=","b64Record":"CgMImAISMAjdx6EaVQ3xpfr7F3kdGxGVo4bZvgEv5PXo3UxfsFOF8wwgp9qm85EJgr+iXvmzeRoLCJy35K0GEI6FgwgiEgoJCN+25K0GEJQjEgMYwA0gEzpuCgMY5wISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0b2tlbk5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYxA1SAHoLCJy35K0GEPuEgwg="},{"b64Body":"ChIKCQjftuStBhCUIxIDGMANIBQ6JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAGwgb93gM=","b64Record":"CgMImAISMKadGkAG76oGwwyJ4rxNlVgyHKe3p1193Q4OMBPe+I+yrK4f4D4NlKfFIvYXUGMeIhoLCJy35K0GEI+FgwgiEgoJCN+25K0GEJQjEgMYwA0gFDpuCgMY5wISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0b2tlbk5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYxA1SAHoLCJy35K0GEPuEgwg="},{"b64Body":"ChIKCQjftuStBhCUIxIDGMANIBU6JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAGwgb93gM=","b64Record":"CgMImAISMGs8kvYSjV2wH/KKGbGZSWoDg/eMQwDr6EGIuMqqH//WBzA45KvWKdVZYsjV+80t2BoLCJy35K0GEJCFgwgiEgoJCN+25K0GEJQjEgMYwA0gFTpuCgMY5wISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0b2tlbk5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYxA1SAHoLCJy35K0GEPuEgwg="},{"b64Body":"ChIKCQjftuStBhCUIxIDGMANIBY6JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAGwgb93gM=","b64Record":"CgMImAISMLyW7WwClRxdU4q/Ls/mP8WRSBNZpzB/HzBMQnfW7BZAoeL8584lCO7GaK8+4Umh4RoLCJy35K0GEJGFgwgiEgoJCN+25K0GEJQjEgMYwA0gFjpuCgMY5wISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0b2tlbk5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYxA1SAHoLCJy35K0GEPuEgwg="},{"b64Body":"ChIKCQjftuStBhCUIxIDGMANIBc6JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAGwgb93gM=","b64Record":"CgMImAISMIYPqQ6ULoTER1YbALrJ6NA5topLXiUKzmilHJp2laxvd/Fx7Wq8Oai9KSN9MRW3TBoLCJy35K0GEJKFgwgiEgoJCN+25K0GEJQjEgMYwA0gFzpuCgMY5wISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0b2tlbk5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYxA1SAHoLCJy35K0GEPuEgwg="},{"b64Body":"ChIKCQjftuStBhCUIxIDGMANIBg6JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAGwgb93gM=","b64Record":"CgMImAISMLwDRMZ4APL2wMzTXs3OjQLX/9K0n8W71I+VqizVhIDXLvwxz/r90R/Ip8hrylzbMhoLCJy35K0GEJOFgwgiEgoJCN+25K0GEJQjEgMYwA0gGDpuCgMY5wISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0b2tlbk5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYxA1SAHoLCJy35K0GEPuEgwg="},{"b64Body":"ChIKCQjftuStBhCUIxIDGMANIBk6JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAGwgb93gM=","b64Record":"CgMImAISMHM3eGStAA6C69oRu0wwZglBpxfysAJYmZdJ8STpEKfybr3MlFDF9n9m+bTXgD6fJRoLCJy35K0GEJSFgwgiEgoJCN+25K0GEJQjEgMYwA0gGTpuCgMY5wISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0b2tlbk5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYxA1SAHoLCJy35K0GEPuEgwg="},{"b64Body":"ChIKCQjftuStBhCUIxIDGMANIBo6JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAGwgb93gM=","b64Record":"CgMImAISMIUxo2a9FeQxHfBP6IzPWexpXLj/Bx+zV/zVvIoIDvlgLPG7O5RJHgHUGe807qTTiBoLCJy35K0GEJWFgwgiEgoJCN+25K0GEJQjEgMYwA0gGjpuCgMY5wISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0b2tlbk5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYxA1SAHoLCJy35K0GEPuEgwg="},{"b64Body":"ChIKCQjftuStBhCUIxIDGMANIBs6JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAGwgb93gM=","b64Record":"CgMImAISMPC9RM4a6P8oaf8PKKSPSnEXnFxl8kP1e9cl62AEwKma0uVZmaSGCLQW22Vx10XZghoLCJy35K0GEJaFgwgiEgoJCN+25K0GEJQjEgMYwA0gGzpuCgMY5wISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0b2tlbk5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYxA1SAHoLCJy35K0GEPuEgwg="},{"b64Body":"ChIKCQjftuStBhCUIxIDGMANIBw6JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAGwgb93gM=","b64Record":"CgMImAISMC2NCbf3tuSyRm0Az85t7EZ4x8uxEbYq2f6AkzAKqPVNXzSBOj3kKWKbabJf78waGBoLCJy35K0GEJeFgwgiEgoJCN+25K0GEJQjEgMYwA0gHDpuCgMY5wISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0b2tlbk5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYxA1SAHoLCJy35K0GEPuEgwg="},{"b64Body":"ChIKCQjftuStBhCUIxIDGMANIB06JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAGwgb93gM=","b64Record":"CgMImAISMIPRqQiXEeuRYnr3Q8WNe1yUsCZeKGdQMaixiX3V29TkuyMvtL4Es0ABsPlW6gTK4RoLCJy35K0GEJiFgwgiEgoJCN+25K0GEJQjEgMYwA0gHTpuCgMY5wISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0b2tlbk5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYxA1SAHoLCJy35K0GEPuEgwg="},{"b64Body":"ChIKCQjftuStBhCUIxIDGMANIB46JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAGwgb93gM=","b64Record":"CgMImAISMOkh554oVZYJqidA0FrL3CVH79zgcp3mWRLGkcW/I8qWcx/gYOi2KsNTv4mtowaVJhoLCJy35K0GEJmFgwgiEgoJCN+25K0GEJQjEgMYwA0gHjpuCgMY5wISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0b2tlbk5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYxA1SAHoLCJy35K0GEPuEgwg="},{"b64Body":"ChIKCQjftuStBhCUIxIDGMANIB86JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAGwgb93gM=","b64Record":"CgMImAISMK+7ddD76oOupB/IEJV8OmiCiHJvmkJzs6r/SA1y54VPerC+6hG5ZRwWzJwHutqDeRoLCJy35K0GEJqFgwgiEgoJCN+25K0GEJQjEgMYwA0gHzpuCgMY5wISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0b2tlbk5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYxA1SAHoLCJy35K0GEPuEgwg="},{"b64Body":"ChIKCQjftuStBhCUIxIDGMANICA6JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAGwgb93gM=","b64Record":"CgMImAISMLcIQ9rttBN+c2oQuRbX60WNTmKz49E3h8giLFMTABJ0FpPcYu5Wupb7cyS3fhRh4xoLCJy35K0GEJuFgwgiEgoJCN+25K0GEJQjEgMYwA0gIDpuCgMY5wISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0b2tlbk5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYxA1SAHoLCJy35K0GEPuEgwg="},{"b64Body":"ChIKCQjftuStBhCUIxIDGMANICE6JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAGwgb93gM=","b64Record":"CgMImAISMIkmbLvdKpfH16F7cT+jJTCmtpN2u3hR5EJffFEHvS7SmnRUPaJPJPYUObeFqrevrhoLCJy35K0GEJyFgwgiEgoJCN+25K0GEJQjEgMYwA0gITpuCgMY5wISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0b2tlbk5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYxA1SAHoLCJy35K0GEPuEgwg="},{"b64Body":"ChIKCQjftuStBhCUIxIDGMANICI6JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAGwgb93gM=","b64Record":"CgMImAISMKkQaHZ4e3pmcrB1jbfgMO1buh/Vrb5AuB/RGvp/OZFN+IGeZ2J40AcvTIIE3MbN7BoLCJy35K0GEJ2FgwgiEgoJCN+25K0GEJQjEgMYwA0gIjpuCgMY5wISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0b2tlbk5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYxA1SAHoLCJy35K0GEPuEgwg="},{"b64Body":"ChIKCQjftuStBhCUIxIDGMANICM6JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAGwgb93gM=","b64Record":"CgMImAISMDjZ4WEHLqsKN6V1e++JoMJwKhddJMYk6wx1jatLuwMBeTAQhvVTw1aoLFGMlJnSkhoLCJy35K0GEJ6FgwgiEgoJCN+25K0GEJQjEgMYwA0gIzpuCgMY5wISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0b2tlbk5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYxA1SAHoLCJy35K0GEPuEgwg="},{"b64Body":"ChIKCQjftuStBhCUIxIDGMANICQ6JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAGwgb93gM=","b64Record":"CgMImAISMPYQGbSxn8Ps/0mpC7rnCIg1YX81CtX41f9+59HCuyMQ0PvjzNYq6suyd3dqpxkTuRoLCJy35K0GEJ+FgwgiEgoJCN+25K0GEJQjEgMYwA0gJDpuCgMY5wISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0b2tlbk5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYxA1SAHoLCJy35K0GEPuEgwg="},{"b64Body":"ChIKCQjftuStBhCUIxIDGMANICU6JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAGwgb93gM=","b64Record":"CgMImAISMNACq+raSh26wJucHoEjUQJ6GS8IYJ8oVU/xHRF+hYmTnESpiuBMNDbpaXdvOZqanBoLCJy35K0GEKCFgwgiEgoJCN+25K0GEJQjEgMYwA0gJTpuCgMY5wISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0b2tlbk5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYxA1SAHoLCJy35K0GEPuEgwg="},{"b64Body":"ChIKCQjftuStBhCUIxIDGMANICY6JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAGwgb93gM=","b64Record":"CgMImAISMLlrjiWviYo7l/D3GfTUvorfQP6VNR2qlE6e4cprmu+cwGBFoYIngSxL0xoxjT3zThoLCJy35K0GEKGFgwgiEgoJCN+25K0GEJQjEgMYwA0gJjpuCgMY5wISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0b2tlbk5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYxA1SAHoLCJy35K0GEPuEgwg="},{"b64Body":"ChIKCQjftuStBhCUIxIDGMANICc6JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAGwgb93gM=","b64Record":"CgMImAISMJbuwfGydoMpAq7KAKuZHLU5Y45gIn8uNWcHbUnkalTlYlfBxwFxo/WdvKVlBE4znhoLCJy35K0GEKKFgwgiEgoJCN+25K0GEJQjEgMYwA0gJzpuCgMY5wISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0b2tlbk5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYxA1SAHoLCJy35K0GEPuEgwg="},{"b64Body":"ChIKCQjftuStBhCUIxIDGMANICg6JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAGwgb93gM=","b64Record":"CgMImAISMILegNF9vwYqr1aplMZrio0abXAZrz23yPNpGn+PMFiC4vZWiEyu2U/b+1dLs5FGZhoLCJy35K0GEKOFgwgiEgoJCN+25K0GEJQjEgMYwA0gKDpuCgMY5wISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0b2tlbk5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYxA1SAHoLCJy35K0GEPuEgwg="},{"b64Body":"ChIKCQjftuStBhCUIxIDGMANICk6JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAGwgb93gM=","b64Record":"CgMImAISME2/Q4lDEE4t3Hdczz+fTYjEI1pF7ur2+LnToNq3GgE9/BH4Im51IyY7/bLnf0Y8DxoLCJy35K0GEKSFgwgiEgoJCN+25K0GEJQjEgMYwA0gKTpuCgMY5wISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0b2tlbk5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYxA1SAHoLCJy35K0GEPuEgwg="},{"b64Body":"ChIKCQjftuStBhCUIxIDGMANICo6JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAGwgb93gM=","b64Record":"CgMImAISMOEQGkivysuNAqrYzOkjSIM3uOAAMBY3daHLnmg6gz97sT0hRJiiVJZtgJFDnMRxixoLCJy35K0GEKWFgwgiEgoJCN+25K0GEJQjEgMYwA0gKjpuCgMY5wISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0b2tlbk5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYxA1SAHoLCJy35K0GEPuEgwg="},{"b64Body":"ChIKCQjftuStBhCUIxIDGMANICs6JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAGwgb93gM=","b64Record":"CgMImAISMLExxmlVmi1CGNfz4lXq6jstrzIQJkhj+kjfb+xBFd9r6PmHuaBBeIkoCcRbayZLbRoLCJy35K0GEKaFgwgiEgoJCN+25K0GEJQjEgMYwA0gKzpuCgMY5wISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0b2tlbk5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYxA1SAHoLCJy35K0GEPuEgwg="},{"b64Body":"ChIKCQjftuStBhCUIxIDGMANICw6JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAGwgb93gM=","b64Record":"CgMImAISMGVhn1guhfo0LyswVdNozh9ycL7WYURp0vNZMhp1pERC9desk9anfF3tx978h8zxjBoLCJy35K0GEKeFgwgiEgoJCN+25K0GEJQjEgMYwA0gLDpuCgMY5wISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0b2tlbk5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYxA1SAHoLCJy35K0GEPuEgwg="},{"b64Body":"ChIKCQjftuStBhCUIxIDGMANIC06JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAGwgb93gM=","b64Record":"CgMImAISMAckjsJKSXvCB1Dq8OTmNmq7WNBm657A8bCPWz0LkR8ae03xJjby+sS2r0DGCsTLsxoLCJy35K0GEKiFgwgiEgoJCN+25K0GEJQjEgMYwA0gLTpuCgMY5wISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0b2tlbk5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYxA1SAHoLCJy35K0GEPuEgwg="},{"b64Body":"ChIKCQjftuStBhCUIxIDGMANIC46JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAGwgb93gM=","b64Record":"CgMImAISMJP9DNT//Et7ZMLD0yLstHcslShQIAphe75HY+oLRMLdESHAKBFcBksfx50aeRNVDRoLCJy35K0GEKmFgwgiEgoJCN+25K0GEJQjEgMYwA0gLjpuCgMY5wISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0b2tlbk5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYxA1SAHoLCJy35K0GEPuEgwg="},{"b64Body":"ChIKCQjftuStBhCUIxIDGMANIC86JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAGwgb93gM=","b64Record":"CgMImAISMKYPI+yYtW6R50q4Xg9ZnBTyXRhSPkGOKJXj5LoIIkQyJNMxHgVSZAF4A2BzDObX+xoLCJy35K0GEKqFgwgiEgoJCN+25K0GEJQjEgMYwA0gLzpuCgMY5wISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0b2tlbk5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYxA1SAHoLCJy35K0GEPuEgwg="},{"b64Body":"ChIKCQjftuStBhCUIxIDGMANIDA6JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAGwgb93gM=","b64Record":"CgMImAISMMg1qjtEwXDTQh6l+JElHiPaCJrs9kJMjtbQPGYGOycSr+yqOeYpLFl/i0ahN0ixPBoLCJy35K0GEKuFgwgiEgoJCN+25K0GEJQjEgMYwA0gMDpuCgMY5wISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0b2tlbk5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYxA1SAHoLCJy35K0GEPuEgwg="},{"b64Body":"ChIKCQjftuStBhCUIxIDGMANIDE6JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAGwgb93gM=","b64Record":"CgMImAISMAahSttYB6mHnsVDrHMdw64zMBS9hAtsqijU+L4XzjekbRfz9wu+opR5lDQqMsZNqBoLCJy35K0GEKyFgwgiEgoJCN+25K0GEJQjEgMYwA0gMTpuCgMY5wISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0b2tlbk5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYxA1SAHoLCJy35K0GEPuEgwg="},{"b64Body":"ChIKCQjftuStBhCUIxIDGMANIDI6JQoDGOcCEAEiHGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAGwgb93gM=","b64Record":"CgMImAISMD9JUnEjUUH5jbLABPmVGd3t/ZoJWbd3qiAgIy5Xig1sd4QRcR8Qgd90/teBoIc/kxoLCJy35K0GEK2FgwgiEgoJCN+25K0GEJQjEgMYwA0gMjpuCgMY5wISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl0b2tlbk5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChkagMYxA1SAHoLCJy35K0GEPuEgwg="}]},"relayerFeeAsExpectedIfSenderCoversGas":{"placeholderNum":1733,"encodedItems":[{"b64Body":"Cg8KCQjrtuStBhD6IxICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIKZGUjHYVnjJnJF0L4ClwbjTk+S4ax62/QqEyHr2eeHXEIDIr6AlSgUIgM7aAw==","b64Record":"CiUIFhIDGMYNKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBds1RzaBZOFGY5qtxRc/jB0IaqxcPuW3p+U0aNBzEBGLe64mHLQ8xL9W+0VBlHnyIaDAint+StBhDT0LPGASIPCgkI67bkrQYQ+iMSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxjGDRCAkN/ASg=="},{"b64Body":"ChEKCQjrtuStBhD8IxICGAIgAVpoCiM6IQN/otTSvMddEFVv3MZsZCVkjCzdqAjT8G2Dw/6RyLOzQkoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiEDf6LU0rzHXRBVb9zGbGQlZIws3agI0/Btg8P+kcizs0I=","b64Record":"CgcIFhIDGMcNEjANUgVRjjuzttZmnDkZ0nBkyGGSUbNLWP2vs8LLwL0Ys5TlTQXaqhEe7t4TQp/pmC8aDAint+StBhCan9GrAyIRCgkI67bkrQYQ/CMSAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARSeTwc0J3Rmw5dNig4OlJuj/W5R7Q=="},{"b64Body":"Cg8KCQjrtuStBhD8IxICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohA3+i1NK8x10QVW/cxmxkJWSMLN2oCNPwbYPD/pHIs7NCEICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwmyC42/xJASb1RWuoxp59EikMKBW+PfaDMnXtxD2X9DXBLgB6OYq76Drcqz01Fw15GgwIp7fkrQYQm5/RqwMiDwoJCOu25K0GEPwjEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SGQoKCgIYAhD/j9/ASgoLCgMYxw0QgJDfwEo="},{"b64Body":"Cg8KCQjstuStBhCCJBICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAiohb+xBhCIrImxARptCiISIKe662ea7Y4nzmAuAQRfockPzIwqEa+/e/vpidR/9I3oCiM6IQPosBwe/qugopS31oFc0Um/NGG4EUqmDOt3XCUYVLe/sgoiEiDJzjerpKlRo3/YiQFB2gd+EmJQcCX7ZaADn5nZhP4AjCIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGMgNKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBXk45jmQ2fn46g0xAkoPLZEYFowPv3YxUCx7Wse3gAM+bm6jX1FMRhGKbX4bVYFNwaDAiot+StBhC7ndazASIPCgkI7LbkrQYQgiQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjstuStBhCGJBICGAISAhgDGPa4sjEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBogkKAxjIDSKaCTYwODA2MDQwNTI2MTAyM2E4MDYxMDAxMzYwMDAzOTYwMDBmM2ZlNjA4MDYwNDA1MjYwMDQzNjEwNjEwMDNmNTc2MDAwMzU2MGUwMWM4MDYzMTIwNjVmZTAxNDYxMDA4ZjU3ODA2MzNjY2ZkNjBiMTQ2MTAwYmE1NzgwNjM2ZjY0MjM0ZTE0NjEwMGQxNTc4MDYzYjZiNTVmMjUxNDYxMDEyYzU3NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2N2ZmMWIwM2Y3MDhiOWMzOWY0NTNmZTNmMGNlZjg0MTY0YzdkNmY3ZGY4MzZkZjA3OTZlMWU5YzJiY2U2ZWUzOTdlMzQ2MDQwNTE4MDgyODE1MjYwMjAwMTkxNTA1MDYwNDA1MTgwOTEwMzkwYTIwMDViMzQ4MDE1NjEwMDliNTc2MDAwODBmZDViNTA2MTAwYTQ2MTAxNWE1NjViNjA0MDUxODA4MjgxNTI2MDIwMDE5MTUwNTA2MDQwNTE4MDkxMDM5MGYzNWIzNDgwMTU2MTAwYzY1NzYwMDA4MGZkNWI1MDYxMDBjZjYxMDE2MjU2NWIwMDViMzQ4MDE1NjEwMGRkNTc2MDAwODBmZDViNTA2MTAxMmE2MDA0ODAzNjAzNjA0MDgxMTAxNTYxMDBmNDU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2OTA2MDIwMDE5MDkyOTE5MDgwMzU5MDYwMjAwMTkwOTI5MTkwNTA1MDUwNjEwMWFiNTY1YjAwNWI2MTAxNTg2MDA0ODAzNjAzNjAyMDgxMTAxNTYxMDE0MjU3NjAwMDgwZmQ1YjgxMDE5MDgwODAzNTkwNjAyMDAxOTA5MjkxOTA1MDUwNTA2MTAxZjY1NjViMDA1YjYwMDA0NzkwNTA5MDU2NWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjEwOGZjNDc5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTU4MDE1NjEwMWE4NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTY1YjgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MTA4ZmM4MjkwODExNTAyOTA2MDQwNTE2MDAwNjA0MDUxODA4MzAzODE4NTg4ODhmMTkzNTA1MDUwNTAxNTgwMTU2MTAxZjE1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTY1YjgwMzQxNDYxMDIwMjU3NjAwMDgwZmQ1YjUwNTZmZWEyNjU2MjdhN2E3MjMxNTgyMGY4Zjg0ZmMzMWE4NDUwNjRiNTc4MWU5MDgzMTZmM2M1OTExNTc5NjJkZWFiYjBmZDQyNGVkNTRmMjU2NDAwZjk2NDczNmY2YzYzNDMwMDA1MTEwMDMy","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwTGBgwtsmD0KGsGoqhzqx6P2SUmTdCuZLW16tmtSgf8icsS1vKn0X2Ry43PMKDsmbGgwIqLfkrQYQ0+H7tAMiDwoJCOy25K0GEIYkEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjttuStBhCIJBICGAISAhgDGK/Dto0EIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5ClgEKAxjIDRpzKnEIAhJtCiISILgD0l6Puk8WJm5S1iKFkB+3NWeVHGYXAlqrEVJd6GHrCiM6IQN1OcMXT5u72yedjkqfgcV7VFnJEtU+4HKNUxroILJLbwoiEiDyJM1FfAWKSlyJvWvh1B4gULndfG9mYSMRG1qOEG2cpCCQoQ9CBQiAztoDUgBaAGoLY2VsbGFyIGRvb3I=","b64Record":"CiUIFiIDGMkNKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjD7IiohwfR7Aha3oA53RLxzZvgccqGCkKZbW04eI7/HFbKKLD6924ba6emVNYpRRJ8aDAipt+StBhCDjYy9ASIPCgkI7bbkrQYQiCQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDAr+tbQu8GCgMYyQ0SugRggGBAUmAENhBhAD9XYAA1YOAcgGMSBl/gFGEAj1eAYzzP1gsUYQC6V4Bjb2QjThRhANFXgGO2tV8lFGEBLFdbM3P//////////////////////////xZ/8bA/cIucOfRT/j8M74QWTH1vffg23weW4enCvObuOX40YEBRgIKBUmAgAZFQUGBAUYCRA5CiAFs0gBVhAJtXYACA/VtQYQCkYQFaVltgQFGAgoFSYCABkVBQYEBRgJEDkPNbNIAVYQDGV2AAgP1bUGEAz2EBYlZbAFs0gBVhAN1XYACA/VtQYQEqYASANgNgQIEQFWEA9FdgAID9W4EBkICANXP//////////////////////////xaQYCABkJKRkIA1kGAgAZCSkZBQUFBhAatWWwBbYQFYYASANgNgIIEQFWEBQldgAID9W4EBkICANZBgIAGQkpGQUFBQYQH2VlsAW2AAR5BQkFZbM3P//////////////////////////xZhCPxHkIEVApBgQFFgAGBAUYCDA4GFiIjxk1BQUFAVgBVhAahXPWAAgD49YAD9W1BWW4Fz//////////////////////////8WYQj8gpCBFQKQYEBRYABgQFGAgwOBhYiI8ZNQUFBQFYAVYQHxVz1gAIA+PWAA/VtQUFBWW4A0FGECAldgAID9W1BW/qJlYnp6cjFYIPj4T8MahFBktXgekIMW88WRFXli3quw/UJO1U8lZAD5ZHNvbGNDAAURADIigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMCaDDoDGMkNShYKFAAAAAAAAAAAAAAAAAAAAAAAAAbJcgcKAxjJDRABUhgKCgoCGAIQ/97WtwEKCgoCGGIQgN/WtwE="},{"b64Body":"ChAKCQjttuStBhCKJBIDGMYNEgIYAxiaiwUiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpID2wEK0gEC+M+CASqAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHoSAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOjUpRAAgw9CQJQAAAAAAAAAAAAAAAAAAAAAAAAGyYa15iD0gACktrVfJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE4gwAGgZDfG6MMnO8yY+btQIAAv8eWpOrY+CuokiLWil9xAUNWgTNVa96ekXz7CfmeGenOcPKx2/YtVxGRkkfIqY8y4L+oYgMq17gE=","b64Record":"CiUIFiIDGMkNKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAwkkk2cGwJTVjmEJSXECa+5v9IuoJJY1ncQH8NmHUstiYw2f3OWxOiP0Mjj2eWqfUaDAipt+StBhDjt4W/AyIQCgkI7bbkrQYQiiQSAxjGDSogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wmvGPGzq/AgoDGMkNIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACiA6jBQwIQ9WKCcAWIktrVfJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE4gagMYxw1SSgoHCgIYAxDWLgoJCgIYYhDOuJ02CggKAxigBhDIfQoICgMYoQYQyH0KCQoDGMYNELOWCgoKCgMYxw0Qv4SYNgoJCgMYyQ0QwLgCigEgHA+THx1e55Flv44lq0X04E51sHwif5ajKPHElYiIUjg="}]},"canMergeCreate2ChildWithHollowAccountAndSelfDestructInConstructor":{"placeholderNum":1738,"encodedItems":[{"b64Body":"Cg8KCQjztuStBhCpJBICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAivhb+xBhCQmMm7AhptCiISIGrrEHgQJZLKCOSWX8wQBae/NAsU2Kmw5FxL/k+vWqPbCiM6IQMA1918U0BDtCGA8ogRY1utXi45FFSi9YKu8IpfuGetAwoiEiA3RQkm5iSxOxpgggILLanxUstdD+DYTauDfBv6zauhxSIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGMsNKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCHGLVcr7uNt7T4blDqageO0yo3qNw0vbiYd6BWv6Lbh06kZplgtAPR4TrOeE0xBvUaDAivt+StBhCT+p/MAiIPCgkI87bkrQYQqSQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQj0tuStBhCtJBICGAISAhgDGIudjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxjLDSKAIDYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMDhiODgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyNjAwNDM2MTA2MTAwMzQ1NzYwMDAzNTYwZTAxYzgwNjM4MTg3MWNiYzE0NjEwMDM5NTc4MDYzOTRjYTJjYjUxNDYxMDA3NjU3ODA2MzljNGFlMmQwMTQ2MTAwYjM1NzViNjAwMDgwZmQ1YjM0ODAxNTYxMDA0NTU3NjAwMDgwZmQ1YjUwNjEwMDYwNjAwNDgwMzYwMzgxMDE5MDYxMDA1YjkxOTA2MTAyOGY1NjViNjEwMGNmNTY1YjYwNDA1MTYxMDA2ZDkxOTA2MTAzNWY1NjViNjA0MDUxODA5MTAzOTBmMzViMzQ4MDE1NjEwMDgyNTc2MDAwODBmZDViNTA2MTAwOWQ2MDA0ODAzNjAzODEwMTkwNjEwMDk4OTE5MDYxMDRiNjU2NWI2MTAxNDU1NjViNjA0MDUxNjEwMGFhOTE5MDYxMDUyMTU2NWI2MDQwNTE4MDkxMDM5MGYzNWI2MTAwY2Q2MDA0ODAzNjAzODEwMTkwNjEwMGM4OTE5MDYxMDRiNjU2NWI2MTAxOGY1NjViMDA1YjYwNjA2MDAwNjA0MDUxODA2MDIwMDE2MTAwZTM5MDYxMDFkYTU2NWI2MDIwODIwMTgxMDM4MjUyNjAxZjE5NjAxZjgyMDExNjYwNDA1MjUwOTA1MDgwODQ4NDYwNDA1MTYwMjAwMTYxMDEwZDkyOTE5MDYxMDU0YjU2NWI2MDQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI2MDQwNTE2MDIwMDE2MTAxMmQ5MjkxOTA2MTA1YjA1NjViNjA0MDUxNjAyMDgxODMwMzAzODE1MjkwNjA0MDUyOTE1MDUwOTI5MTUwNTA1NjViNjAwMDgwNjBmZjYwZjgxYjMwODQ4NjgwNTE5MDYwMjAwMTIwNjA0MDUxNjAyMDAxNjEwMTZhOTQ5MzkyOTE5MDYxMDZiNTU2NWI2MDQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI4MDUxOTA2MDIwMDEyMDkwNTA4MDYwMDAxYzkxNTA1MDkyOTE1MDUwNTY1YjYwMDA4MTgzNTE2MDIwODUwMTM0ZjU5MDUwN2ZiMDNjNTNiMjhlNzhhODhlMzE2MDdhMjdlMWZhNDgyMzRkY2UyOGQ1ZDlkOWVjN2IyOTVhZWIwMmU2NzRhMWUxODE4MzYwNDA1MTYxMDFjZDkyOTE5MDYxMDU0YjU2NWI2MDQwNTE4MDkxMDM5MGExNTA1MDUwNTY1YjYxMDE3ZjgwNjEwNzA0ODMzOTAxOTA1NjViNjAwMDYwNDA1MTkwNTA5MDU2NWI2MDAwODBmZDViNjAwMDgwZmQ1YjYwMDA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MjE2OTA1MDkxOTA1MDU2NWI2MDAwNjEwMjI2ODI2MTAxZmI1NjViOTA1MDkxOTA1MDU2NWI2MTAyMzY4MTYxMDIxYjU2NWI4MTE0NjEwMjQxNTc2MDAwODBmZDViNTA1NjViNjAwMDgxMzU5MDUwNjEwMjUzODE2MTAyMmQ1NjViOTI5MTUwNTA1NjViNjAwMDgxOTA1MDkxOTA1MDU2NWI2MTAyNmM4MTYxMDI1OTU2NWI4MTE0NjEwMjc3NTc2MDAwODBmZDViNTA1NjViNjAwMDgxMzU5MDUwNjEwMjg5ODE2MTAyNjM1NjViOTI5MTUwNTA1NjViNjAwMDgwNjA0MDgzODUwMzEyMTU2MTAyYTY1NzYxMDJhNTYxMDFmMTU2NWI1YjYwMDA2MTAyYjQ4NTgyODYwMTYxMDI0NDU2NWI5MjUwNTA2MDIwNjEwMmM1ODU4Mjg2MDE2MTAyN2E1NjViOTE1MDUwOTI1MDkyOTA1MDU2NWI2MDAwODE1MTkwNTA5MTkwNTA1NjViNjAwMDgyODI1MjYwMjA4MjAxOTA1MDkyOTE1MDUwNTY1YjYwMDA1YjgzODExMDE1NjEwMzA5NTc4MDgyMDE1MTgxODQwMTUyNjAyMDgxMDE5MDUwNjEwMmVlNTY1YjYwMDA4NDg0MDE1MjUwNTA1MDUwNTY1YjYwMDA2MDFmMTk2MDFmODMwMTE2OTA1MDkxOTA1MDU2NWI2MDAwNjEwMzMxODI2MTAyY2Y1NjViNjEwMzNiODE4NTYxMDJkYTU2NWI5MzUwNjEwMzRiODE4NTYwMjA4NjAxNjEwMmViNTY1YjYxMDM1NDgxNjEwMzE1NTY1Yjg0MDE5MTUwNTA5MjkxNTA1MDU2NWI2MDAwNjAyMDgyMDE5MDUwODE4MTAzNjAwMDgzMDE1MjYxMDM3OTgxODQ2MTAzMjY1NjViOTA1MDkyOTE1MDUwNTY1YjYwMDA4MGZkNWI2MDAwODBmZDViN2Y0ZTQ4N2I3MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjAwMDUyNjA0MTYwMDQ1MjYwMjQ2MDAwZmQ1YjYxMDNjMzgyNjEwMzE1NTY1YjgxMDE4MTgxMTA2N2ZmZmZmZmZmZmZmZmZmZmY4MjExMTcxNTYxMDNlMjU3NjEwM2UxNjEwMzhiNTY1YjViODA2MDQwNTI1MDUwNTA1NjViNjAwMDYxMDNmNTYxMDFlNzU2NWI5MDUwNjEwNDAxODI4MjYxMDNiYTU2NWI5MTkwNTA1NjViNjAwMDY3ZmZmZmZmZmZmZmZmZmZmZjgyMTExNTYxMDQyMTU3NjEwNDIwNjEwMzhiNTY1YjViNjEwNDJhODI2MTAzMTU1NjViOTA1MDYwMjA4MTAxOTA1MDkxOTA1MDU2NWI4MjgxODMzNzYwMDA4MzgzMDE1MjUwNTA1MDU2NWI2MDAwNjEwNDU5NjEwNDU0ODQ2MTA0MDY1NjViNjEwM2ViNTY1YjkwNTA4MjgxNTI2MDIwODEwMTg0ODQ4NDAxMTExNTYxMDQ3NTU3NjEwNDc0NjEwMzg2NTY1YjViNjEwNDgwODQ4Mjg1NjEwNDM3NTY1YjUwOTM5MjUwNTA1MDU2NWI2MDAwODI2MDFmODMwMTEyNjEwNDlkNTc2MTA0OWM2MTAzODE1NjViNWI4MTM1NjEwNGFkODQ4MjYwMjA4NjAxNjEwNDQ2NTY1YjkxNTA1MDkyOTE1MDUwNTY1YjYwMDA4MDYwNDA4Mzg1MDMxMjE1NjEwNGNkNTc2MTA0Y2M2MTAxZjE1NjViNWI2MDAwODMwMTM1NjdmZmZmZmZmZmZmZmZmZmZmODExMTE1NjEwNGViNTc2MTA0ZWE2MTAxZjY1NjViNWI2MTA0Zjc4NTgyODYwMTYxMDQ4ODU2NWI5MjUwNTA2MDIwNjEwNTA4ODU4Mjg2MDE2MTAyN2E1NjViOTE1MDUwOTI1MDkyOTA1MDU2NWI2MTA1MWI4MTYxMDIxYjU2NWI4MjUyNTA1MDU2NWI2MDAwNjAyMDgyMDE5MDUwNjEwNTM2NjAwMDgzMDE4NDYxMDUxMjU2NWI5MjkxNTA1MDU2NWI2MTA1NDU4MTYxMDI1OTU2NWI4MjUyNTA1MDU2NWI2MDAwNjA0MDgyMDE5MDUwNjEwNTYwNjAwMDgzMDE4NTYxMDUxMjU2NWI2MTA1NmQ2MDIwODMwMTg0NjEwNTNjNTY1YjkzOTI1MDUwNTA1NjViNjAwMDgxOTA1MDkyOTE1MDUwNTY1YjYwMDA2MTA1OGE4MjYxMDJjZjU2NWI2MTA1OTQ4MTg1NjEwNTc0NTY1YjkzNTA2MTA1YTQ4MTg1NjAyMDg2MDE2MTAyZWI1NjViODA4NDAxOTE1MDUwOTI5MTUwNTA1NjViNjAwMDYxMDViYzgyODU2MTA1N2Y1NjViOTE1MDYxMDVjODgyODQ2MTA1N2Y1NjViOTE1MDgxOTA1MDkzOTI1MDUwNTA1NjViNjAwMDdmZmYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgyMTY5MDUwOTE5MDUwNTY1YjYwMDA4MTkwNTA5MTkwNTA1NjViNjEwNjFiNjEwNjE2ODI2MTA1ZDQ1NjViNjEwNjAwNTY1YjgyNTI1MDUwNTY1YjYwMDA4MTYwNjAxYjkwNTA5MTkwNTA1NjViNjAwMDYxMDYzOTgyNjEwNjIxNTY1YjkwNTA5MTkwNTA1NjViNjAwMDYxMDY0YjgyNjEwNjJlNTY1YjkwNTA5MTkwNTA1NjViNjEwNjYzNjEwNjVlODI2MTAyMWI1NjViNjEwNjQwNTY1YjgyNTI1MDUwNTY1YjYwMDA4MTkwNTA5MTkwNTA1NjViNjEwNjg0NjEwNjdmODI2MTAyNTk1NjViNjEwNjY5NTY1YjgyNTI1MDUwNTY1YjYwMDA4MTkwNTA5MTkwNTA1NjViNjAwMDgxOTA1MDkxOTA1MDU2NWI2MTA2YWY2MTA2YWE4MjYxMDY4YTU2NWI2MTA2OTQ1NjViODI1MjUwNTA1NjViNjAwMDYxMDZjMTgyODc2MTA2MGE1NjViNjAwMTgyMDE5MTUwNjEwNmQxODI4NjYxMDY1MjU2NWI2MDE0ODIwMTkxNTA2MTA2ZTE4Mjg1NjEwNjczNTY1YjYwMjA4MjAxOTE1MDYxMDZmMTgyODQ2MTA2OWU1NjViNjAyMDgyMDE5MTUwODE5MDUwOTU5NDUwNTA1MDUwNTA1NmZlNjA4MDYwNDA1MjYwNDA1MTYxMDE3ZjM4MDM4MDYxMDE3ZjgzMzk4MTgxMDE2MDQwNTI4MTAxOTA2MTAwMjU5MTkwNjEwMTNlNTY1YjgxNjAwMDgwNjEwMTAwMGE4MTU0ODE3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjE5MTY5MDgzNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTYwMjE3OTA1NTUwODA2MDAxODE5MDU1NTA2MDAwODA1NDkwNjEwMTAwMGE5MDA0NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNmZmNWI2MDAwODBmZDViNjAwMDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgyMTY5MDUwOTE5MDUwNTY1YjYwMDA2MTAwZDU4MjYxMDBhYTU2NWI5MDUwOTE5MDUwNTY=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwsf/w2vjpbMdUsXvNhbS8QjR17smvHSKssc+qrp1M06ZCe/OZFJIc+rlWQSrasgQAGgsIsLfkrQYQi4uxVCIPCgkI9LbkrQYQrSQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQj0tuStBhCzJBICGAISAhgDGPy14S4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBuAMSAxjLDSKwAzViNjEwMGU1ODE2MTAwY2E1NjViODExNDYxMDBmMDU3NjAwMDgwZmQ1YjUwNTY1YjYwMDA4MTUxOTA1MDYxMDEwMjgxNjEwMGRjNTY1YjkyOTE1MDUwNTY1YjYwMDA4MTkwNTA5MTkwNTA1NjViNjEwMTFiODE2MTAxMDg1NjViODExNDYxMDEyNjU3NjAwMDgwZmQ1YjUwNTY1YjYwMDA4MTUxOTA1MDYxMDEzODgxNjEwMTEyNTY1YjkyOTE1MDUwNTY1YjYwMDA4MDYwNDA4Mzg1MDMxMjE1NjEwMTU1NTc2MTAxNTQ2MTAwYTU1NjViNWI2MDAwNjEwMTYzODU4Mjg2MDE2MTAwZjM1NjViOTI1MDUwNjAyMDYxMDE3NDg1ODI4NjAxNjEwMTI5NTY1YjkxNTA1MDkyNTA5MjkwNTA1NmZlYTI2NDY5NzA2NjczNTgyMjEyMjBlMTUzMzMzZDkyNTU3ZjAyOTlhN2EzN2YzODM1YzA0YjVjYzA2ZmFlYzM2NTM0Y2Y2NDg0OGI5ZjBmNTRlNmY5NjQ3MzZmNmM2MzQzMDAwODEyMDAzMw==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwKTZkUzcUUuuKbLfLktXA5ukIVFsPK8jPYY3lTnKveVljqFwk1pfLXltgracusKoQGgwIsLfkrQYQo6vi1QIiDwoJCPS25K0GELMkEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQj1tuStBhC1JBICGAISAhgDGIvbqJ0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRAoDGMsNGiISIByieWVVOMI1hZYO8xkbQXF8DmiDwz3JBA7JEFkGY3/+IJChD0IFCIDO2gNSAFoAagpKVVNUIERPIElU","b64Record":"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YQZAVluCUlBQVltgAIGQUJGQUFZbYQaEYQZ/gmECWVZbYQZpVluCUlBQVltgAIGQUJGQUFZbYACBkFCRkFBWW2EGr2EGqoJhBopWW2EGlFZbglJQUFZbYABhBsGCh2EGClZbYAGCAZFQYQbRgoZhBlJWW2AUggGRUGEG4YKFYQZzVltgIIIBkVBhBvGChGEGnlZbYCCCAZFQgZBQlZRQUFBQUFb+YIBgQFJgQFFhAX84A4BhAX+DOYGBAWBAUoEBkGEAJZGQYQE+VluBYACAYQEACoFUgXP//////////////////////////wIZFpCDc///////////////////////////FgIXkFVQgGABgZBVUGAAgFSQYQEACpAEc///////////////////////////FnP//////////////////////////xb/W2AAgP1bYABz//////////////////////////+CFpBQkZBQVltgAGEA1YJhAKpWW5BQkZBQVlthAOWBYQDKVluBFGEA8FdgAID9W1BWW2AAgVGQUGEBAoFhANxWW5KRUFBWW2AAgZBQkZBQVlthARuBYQEIVluBFGEBJldgAID9W1BWW2AAgVGQUGEBOIFhARJWW5KRUFBWW2AAgGBAg4UDEhVhAVVXYQFUYQClVltbYABhAWOFgoYBYQDzVluSUFBgIGEBdIWChgFhASlWW5FQUJJQkpBQVv6iZGlwZnNYIhIg4VMzPZJVfwKZp6N/ODXAS1zAb67DZTTPZISLnw9U5vlkc29sY0MACBIAMyKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAowJoMOgMYzA1KFgoUAAAAAAAAAAAAAAAAAAAAAAAABsxyBwoDGMwNEAFSGAoKCgIYAhD/3ta3AQoKCgIYYhCA39a3AQ=="},{"b64Body":"ChEKCQj1tuStBhC8JBICGAIgAVo4CgIyAEoFCIDO2gNqFGxhenktY3JlYXRlZCBhY2NvdW50kgEU+h0Gd9Mvd7DGeRhwgrNaXkRFRoM=","b64Record":"CgcIFhIDGM0NEjDjPU8v7c1pEUb58txWfSZMt4YOkcSEjRYI/EB4f25SyxY82DsnB8qoACTeFF4Uwh4aDAixt+StBhDql5nfAiIRCgkI9bbkrQYQvCQSAhgCIAEqFGxhenktY3JlYXRlZCBhY2NvdW50UgA="},{"b64Body":"Cg8KCQj1tuStBhC8JBICGAISAhgDGIDC1y8iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjnIsCioKHQoWIhT6HQZ30y93sMZ5GHCCs1peREVGgxCAhK9fCgkKAhgCEP+Dr18=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwkT0ZP34I5pgty09SjCOLot44jNkXhzo1lsoQ5f1kfB3QYLSj7KbixXHLFnYuxZb2GgwIsbfkrQYQ65eZ3wIiDwoJCPW25K0GELwkEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SFwoJCgIYAhD/g69fCgoKAxjNDRCAhK9f"},{"b64Body":"Cg8KCQj2tuStBhDIJBICGAISAhgDGJDYzZUBIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46tAQKAxjMDRCAkvQBGNIJIqQEnEri0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv2CAYEBSYEBRYQF/OAOAYQF/gzmBgQFgQFKBAZBhACWRkGEBPlZbgWAAgGEBAAqBVIFz//////////////////////////8CGRaQg3P//////////////////////////xYCF5BVUIBgAYGQVVBgAIBUkGEBAAqQBHP//////////////////////////xZz//////////////////////////8W/1tgAID9W2AAc///////////////////////////ghaQUJGQUFZbYABhANWCYQCqVluQUJGQUFZbYQDlgWEAylZbgRRhAPBXYACA/VtQVltgAIFRkFBhAQKBYQDcVluSkVBQVltgAIGQUJGQUFZbYQEbgWEBCFZbgRRhASZXYACA/VtQVltgAIFRkFBhATiBYQESVluSkVBQVltgAIBgQIOFAxIVYQFVV2EBVGEApVZbW2AAYQFjhYKGAWEA81ZbklBQYCBhAXSFgoYBYQEpVluRUFCSUJKQUFb+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABswAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKgA=","b64Record":"CiUIFiIDGMwNKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBIOo5960OpdJcmMHjhyWRaB80fKUeXUBr2MSk2RfnaV5fr71JnfioqNzC5wZIgT7QaCwiyt+StBhDb1LhnIg8KCQj2tuStBhDIJBICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMICYq2w6hQUKAxjMDSKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAogKjDATLsAgoDGMwNEoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABogsDxTso54qI4xYHon4fpII03OKNXZ2ex7KVrrAuZ0oeEiQAAAAAAAAAAAAAAAAPodBnfTL3ewxnkYcIKzWl5ERUaDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACpyBwoDGMwNEAJSMAoKCgIYAhCjw9bYAQoKCgIYYhCAsNbYAQoKCgMYzA0QpJevXwoKCgMYzQ0Q/4OvXw=="},{"b64Body":"ChEKCQj2tuStBhDIJBICGAIgAUI3GiISIByieWVVOMI1hZYO8xkbQXF8DmiDwz3JBA7JEFkGY3/+QgUIgM7aA2oKSlVTVCBETyBJVA==","b64Record":"CgcIFiIDGM0NEjD0dLrvTpnRtoB7iSyOhAt2PRG2la3gouIAQRZQzF5GFT+Ed5nAZ0Oc0Wp/8ZIYqM8aCwiyt+StBhDc1LhnIhEKCQj2tuStBhDIJBICGAIgAUIdCgMYzQ1KFgoU+h0Gd9Mvd7DGeRhwgrNaXkRFRoNSAHoLCLK35K0GENvUuGc="},{"b64Body":"Cg8KCQj2tuStBhDaJBICGAISAhgDGJDYzZUBIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46tAQKAxjMDRCAkvQBGNIJIqQEnEri0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv2CAYEBSYEBRYQF/OAOAYQF/gzmBgQFgQFKBAZBhACWRkGEBPlZbgWAAgGEBAAqBVIFz//////////////////////////8CGRaQg3P//////////////////////////xYCF5BVUIBgAYGQVVBgAIBUkGEBAAqQBHP//////////////////////////xZz//////////////////////////8W/1tgAID9W2AAc///////////////////////////ghaQUJGQUFZbYABhANWCYQCqVluQUJGQUFZbYQDlgWEAylZbgRRhAPBXYACA/VtQVltgAIFRkFBhAQKBYQDcVluSkVBQVltgAIGQUJGQUFZbYQEbgWEBCFZbgRRhASZXYACA/VtQVltgAIFRkFBhATiBYQESVluSkVBQVltgAIBgQIOFAxIVYQFVV2EBVGEApVZbW2AAYQFjhYKGAWEA81ZbklBQYCBhAXSFgoYBYQEpVluRUFCSUJKQUFb+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABswAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKgA=","b64Record":"CiUIFiIDGMwNKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDiAfbTwXRSeQD16sOsuiGo7VIwVt/d3Fwf6CKkMbfahKCptN2tsCF+UjubC17X1XEaDAiyt+StBhC71OzoAiIPCgkI9rbkrQYQ2iQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCAmKtsOooFCgMYzA0igAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKICowwEy7AIKAxjMDRKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaILA8U7KOeKiOMWB6J+H6SCNNzijV2dnseyla6wLmdKHhIkAAAAAAAAAAAAAAAAD6HQZ30y93sMZ5GHCCs1peREVGgwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqOgMYzw1yBwoDGMwNEANSIgoKCgIYAhCjw9bYAQoKCgIYYhCAsNbYAQoICgMYzA0QpBM="},{"b64Body":"ChEKCQj2tuStBhDaJBICGAIgAUI3GiISIByieWVVOMI1hZYO8xkbQXF8DmiDwz3JBA7JEFkGY3/+QgUIgM7aA2oKSlVTVCBETyBJVA==","b64Record":"CgcIFiIDGM8NEjC77QB+AV/ObPfPlIdX1zQILBIigZQawr3c03em+5e4yrh8SYsxTfDX7SpUYDIhm6caDAiyt+StBhC81OzoAiIRCgkI9rbkrQYQ2iQSAhgCIAFCHQoDGM8NShYKFPodBnfTL3ewxnkYcIKzWl5ERUaDUgB6DAiyt+StBhC71OzoAg=="}]},"InvalidContract":{"placeholderNum":1744,"encodedItems":[]},"htsTransferFromForNFTViaContractCreateLazyCreate":{"placeholderNum":1745,"encodedItems":[{"b64Body":"Cg8KCQiBt+StBhCUJRICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAi9hb+xBhCAr5ymARptCiISICBjfjG2uOro1BzT8tl36CkN3VK1uQv/gaAgbunNJAt9CiM6IQOH50ozxNGHqj2n+KICbpzoXVrBUsYTTetR9igBTtRXxwoiEiCQCgGEgb3KBlIORwNsQT8LJfUb57JGrIYUnXIFpRyFgyIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGNINKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjANl+NhqcftYVj8tCq5+rChSoS9kV4R5GzzVoZKDEOim8wBmon2aXmNnB5f3S2DeOYaDAi9t+StBhCDsMizASIPCgkIgbfkrQYQlCUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiBt+StBhCYJRICGAISAhgDGKHSxzEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoByAkKAxjSDSLACTYwODA2MDQwNTI2MDQwNTE2MTAyNjAzODAzODA2MTAyNjA4MzM5ODE4MTAxNjA0MDUyODEwMTkwNjEwMDI1OTE5MDYxMDEzMjU2NWI1ZjgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTYzNDYwNDA1MTYxMDA0YTkwNjEwMThhNTY1YjVmNjA0MDUxODA4MzAzODE4NTg3NWFmMTkyNTA1MDUwM2Q4MDVmODExNDYxMDA4NDU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q1ZjYwMjA4NDAxM2U2MTAwODk1NjViNjA2MDkxNTA1YjUwNTA5MDUwODA2MTAwY2Q1NzYwNDA1MTdmMDhjMzc5YTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgxNTI2MDA0MDE2MTAwYzQ5MDYxMDFmODU2NWI2MDQwNTE4MDkxMDM5MGZkNWI1MDUwNjEwMjE2NTY1YjVmODBmZDViNWY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MjE2OTA1MDkxOTA1MDU2NWI1ZjYxMDEwMTgyNjEwMGQ4NTY1YjkwNTA5MTkwNTA1NjViNjEwMTExODE2MTAwZjc1NjViODExNDYxMDExYjU3NWY4MGZkNWI1MDU2NWI1ZjgxNTE5MDUwNjEwMTJjODE2MTAxMDg1NjViOTI5MTUwNTA1NjViNWY2MDIwODI4NDAzMTIxNTYxMDE0NzU3NjEwMTQ2NjEwMGQ0NTY1YjViNWY2MTAxNTQ4NDgyODUwMTYxMDExZTU2NWI5MTUwNTA5MjkxNTA1MDU2NWI1ZjgxOTA1MDkyOTE1MDUwNTY1YjUwNTY1YjVmNjEwMTc1NWY4MzYxMDE1ZDU2NWI5MTUwNjEwMTgwODI2MTAxNjc1NjViNWY4MjAxOTA1MDkxOTA1MDU2NWI1ZjYxMDE5NDgyNjEwMTZhNTY1YjkxNTA4MTkwNTA5MTkwNTA1NjViNWY4MjgyNTI2MDIwODIwMTkwNTA5MjkxNTA1MDU2NWI3ZjQ2NjE2OTZjNjU2NDIwNzQ2ZjIwNzM2NTZlNjQyMDc2NjE2Yzc1NjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1ZjgyMDE1MjUwNTY1YjVmNjEwMWUyNjAxNDgzNjEwMTllNTY1YjkxNTA2MTAxZWQ4MjYxMDFhZTU2NWI2MDIwODIwMTkwNTA5MTkwNTA1NjViNWY2MDIwODIwMTkwNTA4MTgxMDM1ZjgzMDE1MjYxMDIwZjgxNjEwMWQ2NTY1YjkwNTA5MTkwNTA1NjViNjAzZTgwNjEwMjIyNWYzOTVmZjNmZTYwODA2MDQwNTI1ZjgwZmRmZWEyNjQ2OTcwNjY3MzU4MjIxMjIwMGM3ODg1ZmJlMmNmY2FmYzcyY2E4NGI4ZDY0N2UzZmIzNTI1YzEzYjIzYjcxZmI0NzVlODBhNmZhNjNjMTkzNjY0NzM2ZjZjNjM0MzAwMDgxNTAwMzM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwvdamptNQsfhTiRs7ah7stwFqeVTE6AdfgJFvLIEE5bcCOQZpJVmti+Adk5Lby1phGgwIvbfkrQYQo/r1tQMiDwoJCIG35K0GEJglEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"ChEKCQiCt+StBhCaJRICGAIgAVo4CgIyAEoFCIDO2gNqFGxhenktY3JlYXRlZCBhY2NvdW50kgEUlgBgjUms5Ck/AaffTql+GoEEu/k=","b64Record":"CgcIFhIDGNQNEjCeaCxIEezKKUYKR0jvxH5yHeyMqqJ4VUrwDXdvkUPxlf/KcvjmxBfbaTKk8wde0FAaDAi+t+StBhCKkJi9ASIRCgkIgrfkrQYQmiUSAhgCIAEqFGxhenktY3JlYXRlZCBhY2NvdW50UgA="},{"b64Body":"Cg8KCQiCt+StBhCaJRICGAISAhgDGPb99p4CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CagoDGNINGiISILeNBX01TvTVyjyA1NQW4Eyiwsx1j7oAzggcyGdH40NhIMCEPSjoB0IFCIDO2gNKIAAAAAAAAAAAAAAAAJYAYI1JrOQpPwGn306pfhqBBLv5UgBaAGoLY2VsbGFyIGRvb3I=","b64Record":"CiUIFiIDGNMNKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDgMCEDf7T5XfjhaRAax4TOU24P7mebcnK99Tb6e5hKkMk9SQTqVgPwuVPtb6ObkXUaDAi+t+StBhCLkJi9ASIPCgkIgrfkrQYQmiUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCAvq3vAkLyAgoDGNMNEj5ggGBAUl+A/f6iZGlwZnNYIhIgDHiF++LPyvxyyoS41kfj+zUlwTsjtx+0degKb6Y8GTZkc29sY0MACBUAMyKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAogOowOgMY0w1KFgoUAAAAAAAAAAAAAAAAAAAAAAAABtNyBwoDGNMNEAFSIgoKCgIYAhDPi9veBQoKCgIYYhCA/NreBQoICgMY1A0Q0A8="}]}}} \ No newline at end of file diff --git a/hedera-node/test-clients/record-snapshots/LeakyCryptoTests.json b/hedera-node/test-clients/record-snapshots/LeakyCryptoTests.json index 35263de2ef4d..887ba006e9e8 100644 --- a/hedera-node/test-clients/record-snapshots/LeakyCryptoTests.json +++ b/hedera-node/test-clients/record-snapshots/LeakyCryptoTests.json @@ -1 +1 @@ -{"specSnapshots":{"lazyCreateViaEthereumCryptoTransfer":{"placeholderNum":1155,"encodedItems":[{"b64Body":"Cg8KCQi20pGsBhDXCxICGAISAhgDIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6aAboECgIYeRILCPKg7K8GEOjnyjAipgQKKwolaGVkZXJhLmFsbG93YW5jZXMubWF4VHJhbnNhY3Rpb25MaW1pdBICMjAKJgoWdXBncmFkZS5hcnRpZmFjdHMucGF0aBIMZGF0YS91cGdyYWRlCh4KFWNvbnRyYWN0cy5ldm0udmVyc2lvbhIFdjAuMzQKMAoibGVkZ2VyLmF1dG9SZW5ld1BlcmlvZC5tYXhEdXJhdGlvbhIKMTAwMDAwMDAwMAoiChpsZWRnZXIubWF4QXV0b0Fzc29jaWF0aW9ucxIENTAwMAowChdiYWxhbmNlcy5leHBvcnREaXIucGF0aBIVZGF0YS9hY2NvdW50QmFsYW5jZXMvCi0KImxlZGdlci5hdXRvUmVuZXdQZXJpb2QubWluRHVyYXRpb24SBzY5OTk5OTkKJQodY3J5cHRvQ3JlYXRlV2l0aEFsaWFzLmVuYWJsZWQSBHRydWUKKAofZW50aXRpZXMubGltaXRUb2tlbkFzc29jaWF0aW9ucxIFZmFsc2UKJwofY29udHJhY3RzLmFsbG93QXV0b0Fzc29jaWF0aW9ucxIEdHJ1ZQocChRsYXp5Q3JlYXRpb24uZW5hYmxlZBIEdHJ1ZQoYChFjb250cmFjdHMuY2hhaW5JZBIDMjk4ChwKFHRva2Vucy5tYXhQZXJBY2NvdW50EgQxMDAwCigKIWhlZGVyYS5hbGxvd2FuY2VzLm1heEFjY291bnRMaW1pdBIDMTAw","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw2rDLxOtZFQMCwiwwfSMavBTm7BrtN3bTYYafYsDGuHq8RoreoeduC3knSFjZwkdiGgsI8tKRrAYQ4/jDOiIPCgkIttKRrAYQ1wsSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQi20pGsBhDZCxICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISILPgdPvcEq1GRU50fE06m4foLm8UokMXb5hIREEzPgeWEICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGIQJKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjApHQjwstYKfgRHyve/9nOWW2wX1ATd5OBFC+4KhGTdfERzc/e1kzdNlzFhyNEUi/IaDAjy0pGsBhCz2uS8AiIPCgkIttKRrAYQ2QsSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIfCg0KAhgCEP//663M7JACCg4KAxiECRCAgOytzOyQAg=="},{"b64Body":"ChEKCQi30pGsBhDbCxICGAIgAVpoCiM6IQOmvN/o1MoYnPcKEgZcSyVS9VermjAh8wgzWjBmS8DLKkoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiEDprzf6NTKGJz3ChIGXEslUvVXq5owIfMIM1owZkvAyyo=","b64Record":"CgcIFhIDGIUJEjCeFpR5KFMQCylcw5EPxd89pMA7iOuTUGeIfOeho0TvGE/3negPyU+KYkFcj6+Wvt0aCwjz0pGsBhD60IZEIhEKCQi30pGsBhDbCxICGAIgASoUYXV0by1jcmVhdGVkIGFjY291bnRSAKoBFMfR0783EfCTMbjvJQh2aGnnsRoF"},{"b64Body":"Cg8KCQi30pGsBhDbCxICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohA6a83+jUyhic9woSBlxLJVL1V6uaMCHzCDNaMGZLwMsqEICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw4eB5WkIjZRsj0UfMgFe1YYHT5AgXHzn9GD16alQFM8g85Uee+0lXhEuaqHwVun0HGgsI89KRrAYQ+9CGRCIPCgkIt9KRrAYQ2wsSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxiFCRCAkN/ASg=="},{"b64Body":"ChAKCQi30pGsBhDhCxIDGIQJEgIYAxjChwUiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpIDuQEKsAEC+K2CASqAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPooAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgwMNQJRT4IL57m1x4iLe1P/0fXXV3D++GIhFY5GCRPQAAIDAAaC/WZp3t1KVig1Y3fpJ7nrM5aiA88JjqB8TUAZkYtF67aB0wIlaxGUIDdqMdVswIeu1NMW5IjxLvNLYIyX039PYHBiAyrXuAQ==","b64Record":"CiAIHiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwsLvq1biaEzTAeS5Lrdq/g/ieQ4tAO5uDXpbt52626+BcJ3gu16HlPFi29KViWb9SGgwI89KRrAYQq/+DxgIiEAoJCLfSkawGEOELEgMYhAkqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMILh5wY6JRoQSU5TVUZGSUNJRU5UX0dBUyjAmgxQwJoMWIDKte4BagMYhQlSKgoHCgIYAxCeLgoJCgIYYhD2ls4NCggKAxigBhDwfAoKCgMYhAkQg8LPDYoBIOvvt4J9sCBr2foAKul3j4hFfZbOQhenmWRuIPdyTefq"},{"b64Body":"ChIKCQi40pGsBhDjCxIDGIQJIAFaOAoCMgBKBQiAztoDahRsYXp5LWNyZWF0ZWQgYWNjb3VudJIBFFPggvnubXHiIt7U//R9ddXcP74Y","b64Record":"CgcIFhIDGIcJEjDioi9aG9jWrcsGf0y1obT1xEZ5Uaomg0Fm3e7AywL4WNb9pm9DrTwsgg1ifcoo4gYaCwj00pGsBhDiqdpJIhIKCQi40pGsBhDjCxIDGIQJIAEqFGxhenktY3JlYXRlZCBhY2NvdW50MInK5RJSAA=="},{"b64Body":"ChAKCQi40pGsBhDjCxIDGIQJEgIYAxjChwUiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpIDuQEKsAEC+K2CASoBoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPooAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgx6EgJRT4IL57m1x4iLe1P/0fXXV3D++GIhFY5GCRPQAAIDAAaDCe+psti/ghMQLh5j3tzMFYW7ViXDEHynVTbKmNYfp9KB6BCgbe6r+R0soWNePmyDUisENdaLBImhdxATj/j7TNBiAyrXuAQ==","b64Record":"CiUIFiIDGIcJKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjD28eoGPGKreweEnp1faH5GW1kkWxivocVn47bYo9zxJEOxTbPJEAm807dh4bO84ngaCwj00pGsBhDjqdpJIhAKCQi40pGsBhDjCxIDGIQJKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDC05o2OpsCCgMYhwkigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKIDUYVCAiXpYgMq17gFqAxiFCVJECgcKAhgDEJ4uCgkKAhhiEPb7s2wKCAoDGKAGEPB8CgoKAxiECRCDp7VsCgsKAxiFCRD/k+vcAwoLCgMYhwkQgJTr3AOKASCHGy7uUcFh6xS1ZqwjLOF8p9inQSRqES4CwNcEu8pi5A=="},{"b64Body":"Cg8KCQi50pGsBhCGDBICGAISAhgDIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6aAboECgIYeRILCPWg7K8GENjtnzUipgQKKwolaGVkZXJhLmFsbG93YW5jZXMubWF4VHJhbnNhY3Rpb25MaW1pdBICMjAKJgoWdXBncmFkZS5hcnRpZmFjdHMucGF0aBIMZGF0YS91cGdyYWRlCh4KFWNvbnRyYWN0cy5ldm0udmVyc2lvbhIFdjAuMzgKMAoibGVkZ2VyLmF1dG9SZW5ld1BlcmlvZC5tYXhEdXJhdGlvbhIKMTAwMDAwMDAwMAoiChpsZWRnZXIubWF4QXV0b0Fzc29jaWF0aW9ucxIENTAwMAowChdiYWxhbmNlcy5leHBvcnREaXIucGF0aBIVZGF0YS9hY2NvdW50QmFsYW5jZXMvCi0KImxlZGdlci5hdXRvUmVuZXdQZXJpb2QubWluRHVyYXRpb24SBzY5OTk5OTkKJQodY3J5cHRvQ3JlYXRlV2l0aEFsaWFzLmVuYWJsZWQSBHRydWUKKAofZW50aXRpZXMubGltaXRUb2tlbkFzc29jaWF0aW9ucxIFZmFsc2UKJwofY29udHJhY3RzLmFsbG93QXV0b0Fzc29jaWF0aW9ucxIEdHJ1ZQocChRsYXp5Q3JlYXRpb24uZW5hYmxlZBIEdHJ1ZQoYChFjb250cmFjdHMuY2hhaW5JZBIDMjk4ChwKFHRva2Vucy5tYXhQZXJBY2NvdW50EgQxMDAwCigKIWhlZGVyYS5hbGxvd2FuY2VzLm1heEFjY291bnRMaW1pdBIDMTAw","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwtpaaLhWmJd20BeOJuuD1GOthZfZdheczN8KiHZeVOBpMskVKHeiK2gqhjeuLFlkSGgsI9dKRrAYQu6zUNSIPCgkIudKRrAYQhgwSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"}]}}} \ No newline at end of file +{"specSnapshots":{"MaxAutoAssociationSpec":{"placeholderNum":1001,"encodedItems":[{"b64Body":"Cg8KCQjMq+CsBhDqBRICGAISAhgDGKzpuVwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloyCiISINajony2INsulWKnRHmV7pF/oVZTIAm2HihbxVmTjKp/EIDC1y9KBQiAztoDcGQ=","b64Record":"CiUIFhIDGOoHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDIxlXHtm7QHgtzK0YdAdb9GovndxGJNmVcSyfnw7HSKnrV9Hw2s4Y8xTvWuOW6rycaDAiIrOCsBhDj06H7AiIPCgkIzKvgrAYQ6gUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIXCgkKAhgCEP+Dr18KCgoDGOoHEICEr18="}]},"CanDissociateFromMultipleExpiredTokens":{"placeholderNum":1003,"encodedItems":[{"b64Body":"Cg8KCQjSq+CsBhCIBhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISILzgBgmvcQULHH6KQV+u9Js9U2xlsTMlVXeQfEDzi0+9EICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGOwHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDJSBn6/3FvM2wMm/rMzGX7z6jwjs+JV8zAmnsR/pEFecdtlBh6EJ+jzOrHackGwWAaDAiOrOCsBhC7sM/PASIPCgkI0qvgrAYQiAYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxjsBxCAqNa5Bw=="},{"b64Body":"Cg8KCQjSq+CsBhCKBhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlorCiISINWeeF5j4NbS0uj6q4qyz0R+3BxwRh7IDCL4XnFw8k5aSgUIgM7aAw==","b64Record":"CiUIFhIDGO0HKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjASkl97/T0/CP/XnUvUzN4fjyVcCOC5SUUjEg8ITBL7k9n148iyiG6HdIkOYyeWLnwaDAiOrOCsBhCbrYTRAyIPCgkI0qvgrAYQigYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjTq+CsBhCMBhICGAISAhgDGJLY9OcCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qATIKCWZ1bmdpYmxlMBIITVZZSFZGUFQgZCoDGOwHagwIj/q6sAYQkNGPywFyAhgCegIIAQ==","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGO4HEjDm36GtAcYrAVKNQE+oejb1xovQs3vfDFn+iRj/qLRHfAttM3Wdf85zsvaFTxWfykIaDAiPrOCsBhCLrrfZASIPCgkI06vgrAYQjAYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWg8KAxjuBxIICgMY7AcQyAFyCgoDGO4HEgMY7Ac="},{"b64Body":"Cg8KCQjTq+CsBhCOBhICGAISAhgDGJLY9OcCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qATIKCWZ1bmdpYmxlMRIIRVBXREhaQk4gZCoDGOwHagwIj/q6sAYQmOaSxgNyAhgCegIIAQ==","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGO8HEjDC20XxoOubySDFM2GZBHvdeaCM/DKhYEqxUCrCIiaYmWmneBy6L+LTkmPzcczjWQMaDAiPrOCsBhC7g6jbAyIPCgkI06vgrAYQjgYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWg8KAxjvBxIICgMY7AcQyAFyCgoDGO8HEgMY7Ac="},{"b64Body":"Cg8KCQjUq+CsBhCQBhICGAISAhgDGJLY9OcCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qATIKCWZ1bmdpYmxlMhIIV1pFVUFKVVcgZCoDGOwHagwIkPq6sAYQgPi12wFyAhgCegIIAQ==","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGPAHEjCWaH2x0oxcbCu7YA68i3N9NCGVe4ifqLMHJvUmA5jqrjIsxjI4VWXkV54aoXPsx9caDAiQrOCsBhDDlNbiASIPCgkI1KvgrAYQkAYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWg8KAxjwBxIICgMY7AcQyAFyCgoDGPAHEgMY7Ac="},{"b64Body":"Cg8KCQjUq+CsBhCSBhICGAISAhgDGJLY9OcCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qATIKCWZ1bmdpYmxlMxIIVEtMVFFNRkogZCoDGOwHagwIkPq6sAYQ2K7OzQNyAhgCegIIAQ==","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGPEHEjCnhuLxc95HL+C2FEcX7ZjENFTMqzc6R66WWm8fHoK4aBix7un7SbRvTz2arxT7zN4aCwiRrOCsBhD7/9oHIg8KCQjUq+CsBhCSBhICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgBaDwoDGPEHEggKAxjsBxDIAXIKCgMY8QcSAxjsBw=="},{"b64Body":"Cg8KCQjVq+CsBhCUBhICGAISAhgDGJLY9OcCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qATIKCWZ1bmdpYmxlNBIIT1ZURUxVTVcgZCoDGOwHagwIkfq6sAYQmOPI5AFyAhgCegIIAQ==","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGPIHEjAUehsHaZVhkSPScEw+EOwN5mDf7RHKnszCZwXuAM0bXf06vEJFDTCjbyvI9jCertcaDAiRrOCsBhCDmKLsASIPCgkI1avgrAYQlAYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWg8KAxjyBxIICgMY7AcQyAFyCgoDGPIHEgMY7Ac="},{"b64Body":"Cg8KCQjVq+CsBhCWBhICGAISAhgDGJLY9OcCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qATIKCWZ1bmdpYmxlNRIISVZaSVVGVEUgZCoDGOwHagwIkfq6sAYQ2OGi1gNyAhgCegIIAQ==","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGPMHEjBR5QMupYOc+fwf/s+QDImxlOSocUGC+chJ5vq7WCEY2eshjHd/lhdwRzxBbS/+YbsaCwiSrOCsBhCLwsERIg8KCQjVq+CsBhCWBhICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgBaDwoDGPMHEggKAxjsBxDIAXIKCgMY8wcSAxjsBw=="},{"b64Body":"Cg8KCQjWq+CsBhCYBhICGAISAhgDGJLY9OcCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qATIKCWZ1bmdpYmxlNhIIWUhFUURaVkMgZCoDGOwHagwIkvq6sAYQ6J7P6wFyAhgCegIIAQ==","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGPQHEjAG/onC+0q6x5R62uXv1isry0hXTirH0zOhHnVSEBQpgm9Phv69eNu+XfQFObKD4gMaDAiSrOCsBhCLuYb2ASIPCgkI1qvgrAYQmAYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWg8KAxj0BxIICgMY7AcQyAFyCgoDGPQHEgMY7Ac="},{"b64Body":"Cg8KCQjXq+CsBhCaBhICGAISAhgDGJLY9OcCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qATEKCWZ1bmdpYmxlNxIIT0dRSk9ST0sgZCoDGOwHagsIk/q6sAYQwL/NAnICGAJ6AggB","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGPUHEjCyCEHUnFOQiFNmoYlkrkvF3uMkP9unwOYNePMOUjO+qVUFmtFXLsGXtvjijPpIilAaCwiTrOCsBhDD88caIg8KCQjXq+CsBhCaBhICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgBaDwoDGPUHEggKAxjsBxDIAXIKCgMY9QcSAxjsBw=="},{"b64Body":"Cg8KCQjXq+CsBhCcBhICGAISAhgDGJLY9OcCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qATIKCWZ1bmdpYmxlOBIIUEpOTEdHRlYgZCoDGOwHagwIk/q6sAYQ2KSV9QFyAhgCegIIAQ==","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGPYHEjAwivjl8dkBrlhKvaBXwGBWMMF1kjmhNqxm2dBnPxJu1gK0ljX1n43kuwgg8HrJH0waDAiTrOCsBhCDwYKAAiIPCgkI16vgrAYQnAYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWg8KAxj2BxIICgMY7AcQyAFyCgoDGPYHEgMY7Ac="},{"b64Body":"Cg8KCQjYq+CsBhCeBhICGAISAhgDGJLY9OcCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qATEKCWZ1bmdpYmxlORIITEpGRkREWEggZCoDGOwHagsIlPq6sAYQgNbpC3ICGAJ6AggB","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGPcHEjDIDVPJJt6NR/83O8CHknF0UmEthyPgUh/m38LqGStYmlUIv2fttxm7eQ4NZwCjLeAaCwiUrOCsBhCj/pskIg8KCQjYq+CsBhCeBhICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgBaDwoDGPcHEggKAxjsBxDIAXIKCgMY9wcSAxjsBw=="},{"b64Body":"Cg8KCQjYq+CsBhCkBhICGAISAhgDGKe++CYiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICNwoDGO0HEgMY7gcSAxjvBxIDGPAHEgMY8QcSAxjyBxIDGPMHEgMY9AcSAxj1BxIDGPYHEgMY9wc=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwUfWDiR5C0gIziulPVZVhAJ+YG8mL4s1FQILRyawgnndXSsoDt7MnHWbGQnPDWUGoGgwIlKzgrAYQi+qQiQIiDwoJCNir4KwGEKQGEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjZq+CsBhCmBhICGAISAhgDGOufNiICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOchkSFwoDGO4HEgcKAxjsBxATEgcKAxjtBxAU","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwdUhRAn4tpHlgawvxWaUHe4HQyqy9XsZifGAJjxlBz6HRfoSf8+yoPi6COQe76XW+GgsIlazgrAYQy5LlLSIPCgkI2avgrAYQpgYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWhcKAxjuBxIHCgMY7AcQExIHCgMY7QcQFA=="},{"b64Body":"Cg8KCQjZq+CsBhCoBhICGAISAhgDGOufNiICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOchkSFwoDGO8HEgcKAxjsBxATEgcKAxjtBxAU","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwA+Zv3bA+VLp/BG8SBKaK94a99N62mqu6XEF/LDT6GIKoOhrx3mLaQdQBkz0rijLpGgwIlazgrAYQo9T2rgIiDwoJCNmr4KwGEKgGEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAFoXCgMY7wcSBwoDGOwHEBMSBwoDGO0HEBQ="},{"b64Body":"Cg8KCQjaq+CsBhCqBhICGAISAhgDGOufNiICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOchkSFwoDGPAHEgcKAxjsBxATEgcKAxjtBxAU","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwzN+J6tdJnSRa1kyiQA2TuRmTDJLLSnrYUIJCHXbawqClOy8XNQ7EMqUr673SCaY6GgsIlqzgrAYQy+arNyIPCgkI2qvgrAYQqgYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWhcKAxjwBxIHCgMY7AcQExIHCgMY7QcQFA=="},{"b64Body":"Cg8KCQjaq+CsBhCsBhICGAISAhgDGOufNiICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOchkSFwoDGPEHEgcKAxjsBxATEgcKAxjtBxAU","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwPYKUx8jUb6VnSJODJ14MnARd4UMxBv7Q29u4bHH0w3wqeETlFIM2mgbKOwFzpNu/GgwIlqzgrAYQ+87suAIiDwoJCNqr4KwGEKwGEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAFoXCgMY8QcSBwoDGOwHEBMSBwoDGO0HEBQ="},{"b64Body":"Cg8KCQjbq+CsBhCuBhICGAISAhgDGOufNiICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOchkSFwoDGPIHEgcKAxjsBxATEgcKAxjtBxAU","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwlLmrxbVb0GJz+5z4dwj2j35p2UfjpBNTV8imaS3J+77pIbHeSnWaqgnRHQSwoyGVGgsIl6zgrAYQ0+ObQSIPCgkI26vgrAYQrgYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWhcKAxjyBxIHCgMY7AcQExIHCgMY7QcQFA=="},{"b64Body":"Cg8KCQjbq+CsBhCwBhICGAISAhgDGOufNiICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOchkSFwoDGPMHEgcKAxjsBxATEgcKAxjtBxAU","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwtF+0ach5F+N1TwydPYO0JP0sJPuXn8TGRpcrzFxcOCriOgzu2A7mOA+z4u2UznFtGgwIl6zgrAYQo56mpQIiDwoJCNur4KwGELAGEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAFoXCgMY8wcSBwoDGOwHEBMSBwoDGO0HEBQ="},{"b64Body":"Cg8KCQjcq+CsBhCyBhICGAISAhgDGOufNiICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOchkSFwoDGPQHEgcKAxjsBxATEgcKAxjtBxAU","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwrcH+UXsld74ZzJuuN+KU9+lV9RyxbjzvVbc3+NR5YhfO1H478h31fkqqFiCNOdYtGgsImKzgrAYQs8CrSiIPCgkI3KvgrAYQsgYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWhcKAxj0BxIHCgMY7AcQExIHCgMY7QcQFA=="},{"b64Body":"Cg8KCQjcq+CsBhC0BhICGAISAhgDGOufNiICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOchkSFwoDGPUHEgcKAxjsBxATEgcKAxjtBxAU","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwrflzV/lE+BCLOv6v8XSRLEPsdBAXfBBJnhh0MYXaz4aGM5lueNhm7wa1nsDo3/WOGgwImKzgrAYQy7qWrwIiDwoJCNyr4KwGELQGEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAFoXCgMY9QcSBwoDGOwHEBMSBwoDGO0HEBQ="},{"b64Body":"Cg8KCQjdq+CsBhC2BhICGAISAhgDGOufNiICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOchkSFwoDGPYHEgcKAxjsBxATEgcKAxjtBxAU","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwE/BsLdP6FEozt4RaXMBWIZE/bpgzobFBILwhUyy0u/pZDEh9u5oI1sDuGyURCaQyGgsImazgrAYQo5TYUyIPCgkI3avgrAYQtgYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWhcKAxj2BxIHCgMY7AcQExIHCgMY7QcQFA=="},{"b64Body":"Cg8KCQjdq+CsBhC4BhICGAISAhgDGOufNiICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOchkSFwoDGPcHEgcKAxjsBxATEgcKAxjtBxAU","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwHiGWBv8A6lRC4wJpeIOvaX5ROXXPg/UCJokHaJvePSTap6jQWvqoSiiyqb4EXnj/GgwImazgrAYQi4zJuAIiDwoJCN2r4KwGELgGEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAFoXCgMY9wcSBwoDGOwHEBMSBwoDGO0HEBQ="},{"b64Body":"Cg8KCQjfq+CsBhC6BhICGAISAhgDGNL2wCEiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsoCNwoDGO0HEgMY9wcSAxj2BxIDGPUHEgMY9AcSAxjzBxIDGPIHEgMY8QcSAxjwBxIDGO8HEgMY7gc=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwHWWW1oUGsZFnR11DyKCAAvOP1gEedbZHJGgI86Dke1WQPEEuCDxA1eHDylWczGMQGgsIm6zgrAYQy7f+ZiIPCgkI36vgrAYQugYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWhcKAxjuBxIHCgMY7AcQFBIHCgMY7QcQE1oXCgMY7wcSBwoDGOwHEBQSBwoDGO0HEBNaFwoDGPAHEgcKAxjsBxAUEgcKAxjtBxATWhcKAxjxBxIHCgMY7AcQFBIHCgMY7QcQE1oXCgMY8gcSBwoDGOwHEBQSBwoDGO0HEBNaFwoDGPMHEgcKAxjsBxAUEgcKAxjtBxATWhcKAxj0BxIHCgMY7AcQFBIHCgMY7QcQE1oXCgMY9QcSBwoDGOwHEBQSBwoDGO0HEBNaFwoDGPYHEgcKAxjsBxAUEgcKAxjtBxATWhcKAxj3BxIHCgMY7AcQFBIHCgMY7QcQEw=="}]},"CannotExceedAccountAllowanceLimit":{"placeholderNum":1016,"encodedItems":[{"b64Body":"Cg8KCQjkq+CsBhDYBhICGAISAhgDGNuZihwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlozCiISIHQP18tjGGraW0yJ/X9pyAmc5qgQIJqZPG47+o3nEihUEIDIr6AlSgUIgM7aA3AK","b64Record":"CiUIFhIDGPkHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCezCHW08J+kn9aQGOEdhx/PUxMZcMLAGy3BEl0ylKmCuN/geno/7n2TZB+BlPUBX0aDAigrOCsBhDTso/8AiIPCgkI5KvgrAYQ2AYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxj5BxCAkN/ASg=="},{"b64Body":"Cg8KCQjlq+CsBhDaBhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIOZ53eNGGRM4JX8FOmIhYiTsY0hwALz18XaB6RoD4UH7EIDIr6AlSgUIgM7aAw==","b64Record":"CiUIFhIDGPoHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjABvfhUhyEQv1pMgBz1RdZX5dm0eAdIJO2FDmV/wguSi4D4PvP6KN7gyHnzE3o8FBYaDAihrOCsBhCb4JihASIPCgkI5avgrAYQ2gYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxj6BxCAkN/ASg=="},{"b64Body":"Cg8KCQjlq+CsBhDcBhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIEoQNpEV366xhDX/yeXNukLk2JXr3UMwrdux+nJPqlkXEIDIr6AlSgUIgM7aAw==","b64Record":"CiUIFhIDGPsHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCD1JtOoF5EBxaCaiVxi+SQxqydztFoF93F7x9kyL/ptaTpNrnYFqMalPmzSeq0aekaDAihrOCsBhDL4f6FAyIPCgkI5avgrAYQ3AYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxj7BxCAkN/ASg=="},{"b64Body":"Cg8KCQjmq+CsBhDeBhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIHZLFrBB/F0Y2AiKJSvXa9yfpAf6Hw7TD1SZB5UPZ5dUEIDIr6AlSgUIgM7aAw==","b64Record":"CiUIFhIDGPwHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBPRUax73yET9LljPMY5jLMFHybYvZSqyAmVbkCivnO8P59uablG7ftkREo/KUSBcUaDAiirOCsBhDzjtepASIPCgkI5qvgrAYQ3gYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxj8BxCAkN/ASg=="},{"b64Body":"Cg8KCQjmq+CsBhDgBhICGAISAhgDGNuZihwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIB5nLVIV+ZlPAJcgGLIqZyIlmFH9+KVzETQQ+P55oRAIEICglKWNHUoFCIDO2gNwCg==","b64Record":"CiUIFhIDGP0HKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAigAak3ifCpRXIemk8L9NxAuh/YlFCM2XlLKi3e3h9CGmvUQSvhoeJthUWVP2aw2QaDAiirOCsBhD7y+KPAyIPCgkI5qvgrAYQ4AYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIbCgsKAhgCEP+/qMqaOgoMCgMY/QcQgMCoypo6"},{"b64Body":"Cg8KCQjnq+CsBhDiBhICGAISAhgDGJvmqekCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAVQKCGZ1bmdpYmxlEghaSUpQTkdaVSAKKgMY/QdSIhIgbWPnq8rJFpNOAI6M+NKW4lWjwj2RtAkljCrSsvYJ3ONqDAij+rqwBhD4y9mYAZABAZgB6Ac=","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGP4HEjDDj9IA1bTseBgqWXhcoUX5A1OQ4KtrMMqy46gk7J/i0UVyXGbN+lhy/tdPezgy0oQaDAijrOCsBhCj2vGyASIPCgkI56vgrAYQ4gYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWg4KAxj+BxIHCgMY/QcQFHIKCgMY/gcSAxj9Bw=="},{"b64Body":"Cg8KCQjnq+CsBhDkBhICGAISAhgDGLb67+gCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAVcKC25vbkZ1bmdpYmxlEghET1NNUlVRVyoDGP0HUiISIG1j56vKyRaTTgCOjPjSluJVo8I9kbQJJYwq0rL2CdzjagwIo/q6sAYQ4JayigOIAQGQAQGYAQo=","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGP8HEjB4eO+S1FEp5KHIt+36TiFjtnmxpM4a/BPjqfHkmWll2Mp2ySObe5zN00yObd/0mP4aDAijrOCsBhCz/5SYAyIPCgkI56vgrAYQ5AYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAcgoKAxj/BxIDGP0H"},{"b64Body":"Cg8KCQjoq+CsBhDqBhICGAISAhgDGOC2iyAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGPkHEgMY/gc=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwGtt5dYuvdwllWlKYkRRlk4NRQh14Iul8o4ejDc/V/sq1VNYeoCfwAEYb/+XGHGpUGgwIpKzgrAYQi8HevAEiDwoJCOir4KwGEOoGEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjoq+CsBhDwBhICGAISAhgDGOC2iyAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGPkHEgMY/wc=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwAAwCWzpMDABlfajnlkgJgCNIHQx27ia9I6Fgjd+uJMQKiu8+/3Qzs6158SoHNIpKGgwIpKzgrAYQ69XioQMiDwoJCOir4KwGEPAGEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjpq+CsBhD2BhICGAISAhgDGKmuihgiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjqoCDgoDGP8HGgFhGgFiGgFj","b64Record":"CicIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1gDcgMBAgMSMKBwuGoGb9OA+V0NY3x3SuG+D0qmJtNIm4GvO4L2V0mo+s45WHZEZyq6zaBXTvqDABoMCKWs4KwGEMu4rsYBIg8KCQjpq+CsBhD2BhICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgBaLAoDGP8HGgsKAhgAEgMY/QcYARoLCgIYABIDGP0HGAIaCwoCGAASAxj9BxgD"},{"b64Body":"Cg8KCQjpq+CsBhD+BhICGAISAhgDGO/KUiICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOqgIICgMY/gcQ9AM=","b64Record":"CiMIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1j+AxIw7lUFmNdDdPMi4AqCGwaQYXlhfe3GEWfOezdSyDoAlcVE4k9bQRIpuEjcjHCFnod1GgwIpazgrAYQw7C5qwMiDwoJCOmr4KwGEP4GEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAFoPCgMY/gcSCAoDGP0HEOgH"},{"b64Body":"Cg8KCQjqq+CsBhCCBxICGAISAhgDGID+PCICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcjESLwoDGP8HGgwKAxj9BxIDGPkHGAEaDAoDGP0HEgMY+QcYAhoMCgMY/QcSAxj5BxgD","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw9ZEM81L8TM+D74z577Y9FPgsNgzSEdoot6CB0uHKKL+pcMmRgFRBofdXCuF0qa5bGgwIpqzgrAYQq47qzwEiDwoJCOqr4KwGEIIHEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAFovCgMY/wcaDAoDGP0HEgMY+QcYARoMCgMY/QcSAxj5BxgCGgwKAxj9BxIDGPkHGAM="},{"b64Body":"ChAKCQjqq+CsBhCDBxIDGPkHEgIYAxiAwtcvIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6CA0UKDAoDGPkHEgMY+gcYZAoMCgMY+QcSAxj8BxhkEhQKAxj/BxIDGPkHGgMY+gciAQEqABoRCgMY/gcSAxj5BxoDGPoHIGQ=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwNl1EbL8Eb1SjaXAXHPgasbUGloz+hOeb84XiClJhdSgO/t7b7FoP1brcGp30hP3pGgwIpqzgrAYQy7el0QMiEAoJCOqr4KwGEIMHEgMY+QcqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMMbZsxVSOgoJCgIYAxC4ndQBCgkKAhhiEJDe9SAKCgoDGKAGEOLbjgQKCgoDGKEGEOLbjgQKCgoDGPkHEIuz5yo="},{"b64Body":"Cg8KCQjrq+CsBhCHBxICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIOVVnkYEgCFMBJijMu8IhIpBgNZDTAlBiwE9+VfZs3lhEIDIr6AlSgUIgM7aAw==","b64Record":"CiUIFhIDGIAIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCjZjJtoFjhouXTZ9Tam+is2VPG0vgLHK9/FazVTiECuiPFTH6l+fa4vwrknaLBpvwaDAinrOCsBhCj8PH1ASIPCgkI66vgrAYQhwcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxiACBCAkN/ASg=="}]},"CannotExceedAllowancesTransactionLimit":{"placeholderNum":1025,"encodedItems":[{"b64Body":"Cg8KCQjxq+CsBhCiBxICGAISAhgDGNuZihwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlozCiISINn16pjnd8pYujlJI7tB3G9TriI78vk/o6N44ZSwpBUjEIDIr6AlSgUIgM7aA3AK","b64Record":"CiUIFhIDGIIIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjC4oLaGkpN/XOvwtNiWSQdHeo7NdD1hohcRtsZM7GuImxC40HmNy7SVH476WK5nHcYaDAitrOCsBhCL7pbMAiIPCgkI8avgrAYQogcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxiCCBCAkN/ASg=="},{"b64Body":"Cg8KCQjyq+CsBhCkBxICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIJOYhYlL6GD5/DRnsOBnJm7c3ngk38lkTSg5MXzAI8Z2EIDIr6AlSgUIgM7aAw==","b64Record":"CiUIFhIDGIMIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjC35hmO7FXsFLkJI+h6j6moG98rni9D4Mq4hkpom1SI6T1ySps4vyzu8satAdz7D+caCwiurOCsBhD7r+FTIg8KCQjyq+CsBhCkBxICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUhkKCgoCGAIQ/4/fwEoKCwoDGIMIEICQ38BK"},{"b64Body":"Cg8KCQjyq+CsBhCmBxICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIHSfr+jEk1ukcdi5FHo9Q9TnIVAgTgrpTz91RWN4M26lEIDIr6AlSgUIgM7aAw==","b64Record":"CiUIFhIDGIQIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDHxau7Dt+xFDXdsguFusN+CEzb8Zu384dIp0/8wQaHkca6wIpLX8EYAhwwNilbV2saDAiurOCsBhCbpITVAiIPCgkI8qvgrAYQpgcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxiECBCAkN/ASg=="},{"b64Body":"Cg8KCQjzq+CsBhCoBxICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIOeDSMe1p6A0wucq89/cgV+ROS5+9V4ew/rl14YkTzpHEIDIr6AlSgUIgM7aAw==","b64Record":"CiUIFhIDGIUIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCvfHHYAkvQZYX5QVDlE5tsfjoAo+MgWpI//joE5fxCi+XxiIj/fT7ToZ7nztrDkEcaCwivrOCsBhCjhb9dIg8KCQjzq+CsBhCoBxICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUhkKCgoCGAIQ/4/fwEoKCwoDGIUIEICQ38BK"},{"b64Body":"Cg8KCQjzq+CsBhCqBxICGAISAhgDGNuZihwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIEIow76MhlNdw5j4sfkKSCzQb8IVnvOHQqrMzGmp6RgyEICglKWNHUoFCIDO2gNwCg==","b64Record":"CiUIFhIDGIYIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDZsjiQAr5LZSqSDZ0he2ROZcEhIVTuU3D3LFCfw96wGYJgzxLv2Opr6hv7snlc/h4aDAivrOCsBhD7uf7eAiIPCgkI86vgrAYQqgcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIbCgsKAhgCEP+/qMqaOgoMCgMYhggQgMCoypo6"},{"b64Body":"Cg8KCQj0q+CsBhCsBxICGAISAhgDGJvmqekCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAVMKCGZ1bmdpYmxlEghDT1BLWFNZVyAKKgMYhghSIhIgIERqhuRbWnDOcrkvD2+U0smH3fNlVzZ/JHmQjHZ+mLVqCwiw+rqwBhCYu6xZkAEBmAHoBw==","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGIcIEjA1yrEi8QZqt6/1Z9iVoWfn6PQn1ho5FMlOAXx5KkI3bcM1BHwcwfIas0xZokIaAZwaCwiwrOCsBhCTm9NnIg8KCQj0q+CsBhCsBxICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgBaDgoDGIcIEgcKAxiGCBAUcgoKAxiHCBIDGIYI"},{"b64Body":"Cg8KCQj0q+CsBhCuBxICGAISAhgDGLb67+gCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAVcKC25vbkZ1bmdpYmxlEghCWkVWWlNEVCoDGIYIUiISICBEaobkW1pwznK5Lw9vlNLJh93zZVc2fyR5kIx2fpi1agwIsPq6sAYQuMjKywKIAQGQAQGYAQo=","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGIgIEjDfGixQa4eyxRMc1Zvr3lMUi01mQQvZB5sg+v+n+qnCq6N4kSrP9oMtvboeS+ypeEwaDAiwrOCsBhDTwcboAiIPCgkI9KvgrAYQrgcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAcgoKAxiICBIDGIYI"},{"b64Body":"Cg8KCQj1q+CsBhC0BxICGAISAhgDGOC2iyAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGIIIEgMYhwg=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwJiYTnoFdbGeICzZczSZoqvukR6WVMYbQex55A0/1n5txABhmu/BFwOkYYhcsmoUlGgsIsazgrAYQk86ncCIPCgkI9avgrAYQtAcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQj1q+CsBhC6BxICGAISAhgDGOC2iyAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjsICCgoDGIIIEgMYiAg=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw3GVKrzS3M0+65VvCt3jbvosnjZhwor7dX81wIe4D7vSFF9eF7DQ/FrjtY3hWL2/YGgwIsazgrAYQ6+Tw8QIiDwoJCPWr4KwGELoHEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQj2q+CsBhDABxICGAISAhgDGKmuihgiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjqoCDgoDGIgIGgFhGgFiGgFj","b64Record":"CicIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1gDcgMBAgMSMMPZufcsnhcnvtKnp4xBPLsne9K5t0fRPo8CUM0anD88ufEL+CiGW1SxlvVckbnarhoLCLKs4KwGEIOt+nkiDwoJCPar4KwGEMAHEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAFosCgMYiAgaCwoCGAASAxiGCBgBGgsKAhgAEgMYhggYAhoLCgIYABIDGIYIGAM="},{"b64Body":"Cg8KCQj2q+CsBhDIBxICGAISAhgDGO/KUiICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOqgIICgMYhwgQ9AM=","b64Record":"CiMIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1j+AxIwvpG4pv8MJ6CMSzGdeTYaGLeK73pA3m2EcP69ubHxuCjN9lEihs1h5+IVSjNwJOdlGgwIsqzgrAYQk7uk+wIiDwoJCPar4KwGEMgHEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAFoPCgMYhwgSCAoDGIYIEOgH"},{"b64Body":"Cg8KCQj3q+CsBhDMBxICGAISAhgDGID+PCICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcjESLwoDGIgIGgwKAxiGCBIDGIIIGAEaDAoDGIYIEgMYgggYAhoMCgMYhggSAxiCCBgD","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwMH0xu3EJ0tuatLHrO5kP+HMjCGCIqxWCcPDOjnwLuLHLyK4meyW6CrQwWzZbmiFuGgwIs6zgrAYQm6ywgwEiDwoJCPer4KwGEMwHEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAFovCgMYiAgaDAoDGIYIEgMYgggYARoMCgMYhggSAxiCCBgCGgwKAxiGCBIDGIIIGAM="}]},"CreateAnAccountWithEVMAddressAliasAndECKey":{"placeholderNum":1033,"encodedItems":[{"b64Body":"Cg8KCQj9q+CsBhD/BxICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlpJCiM6IQMFdN7IkvLY8wTYth7KUuB7AY0yZw3xfPU5GcjR6HOZ0BCAyK+gJUoFCIDO2gOSART4bv6FEZ96rCuSZWQxNYVmLM+Kcw==","b64Record":"CiUIFhIDGIoIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjC2DQN8PFxnXLsOQIkiryYxL5nnIyXpohocPzl82dGL/fn0Lz3HgruZVBURUAJKF9caDAi5rOCsBhCzyPO8ASIPCgkI/avgrAYQ/wcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxiKCBCAkN/ASg=="},{"b64Body":"Cg8KCQj9q+CsBhCFCBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloyCiM6IQMFdN7IkvLY8wTYth7KUuB7AY0yZw3xfPU5GcjR6HOZ0BCAyK+gJUoFCIDO2gM=","b64Record":"CiUIFhIDGIsIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAe+BHiNVpPllnfdFMgfkeoiOjEXDzch5JxPM6gxVBL65lAWWWzZSEJNze4US0hAWUaDAi5rOCsBhDjsrehAyIPCgkI/avgrAYQhQgSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxiLCBCAkN/ASg=="}]},"CreateAnAccountWithEVMAddress":{"placeholderNum":1036,"encodedItems":[]},"txnsUsingHip583FunctionalitiesAreNotAcceptedWhenFlagsAreDisabled":{"placeholderNum":1047,"encodedItems":[{"b64Body":"Cg8KCQiQrOCsBhCaCRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloyCiM6IQLOnSVFT/TmEQE3y3IyZaaJeVsztJZEtz40m4oHK72jIhCAlOvcA0oFCIDO2gM=","b64Record":"CiUIFhIDGJgIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDoTlSS5a2YHmEsWTy3EEydo5FPc3GumQl4ODywYy7OqF/TVpGKxjEMitT2lOIglyQaDAjMrOCsBhD70OfxAiIPCgkIkKzgrAYQmgkSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+n1rkHCgsKAxiYCBCAqNa5Bw=="}]},"GetsInsufficientPayerBalanceIfSendingAccountCanPayEverythingButServiceFee":{"placeholderNum":1049,"encodedItems":[{"b64Body":"Cg8KCQiWrOCsBhCzCRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIFg8lh0HFFmqn3flukL88mHHzXDs4QSXpTGniIyU6GljEIDIr6AlSgUIgM7aAw==","b64Record":"CiUIFhIDGJoIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCILMGWTjxEkC3z1GPRA0MVCAUpULpG1NrELIRswd812z/RQmgANvRsv90zeJUNLSIaCwjSrOCsBhCLqf43Ig8KCQiWrOCsBhCzCRICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUhkKCgoCGAIQ/4/fwEoKCwoDGJoIEICQ38BK"},{"b64Body":"Cg8KCQiWrOCsBhC1CRICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAjS+rqwBhDIr76VAhptCiISIPDU48DOLcDlLHMlwAYM5tA04SbY1KODgKEgImwcQr07CiM6IQI+3QPseMvQhgJjR+0dcL5Y0PoVhe9Ej3Lj9nIOc/1HxwoiEiDMq7uHKJbfZf+IoMXhRhP3FdcdoM2yqr6gxDW+1AbZUyIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGJsIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjD/sf2B6Aobhr01lplcYSGxQkgxnBJYX5gpV58a8TcBbNEVxjyaxlMyzxANg91hEIMaDAjSrOCsBhCjp76cAiIPCgkIlqzgrAYQtQkSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiXrOCsBhC5CRICGAISAhgDGMr5hy0iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBwAEKAxibCCK4ATYwODA2MDQwNTIzNDgwMTU2MDBmNTc2MDAwODBmZDViNTA2MDNmODA2MDFkNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyNjAwMDgwZmRmZWEyNjQ2OTcwNjY3MzU4MjIxMjIwOTg2N2JjOWUyMjJmMjU5Yjc4ODUwMzUwMjY4MjkzYTNmYzljMzk5YWY3ZTE3ODNkNjMzNDE2YzliMjljYmUxZTY0NzM2ZjZjNjM0MzAwMDgwNzAwMzM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwNBlKFhxpBJiuxi1IoVmjEd2HMsfP2kzuelGlLT5mUDrbOl8X9GNw5CdXwTrm3j7yGgsI06zgrAYQ68aiQSIPCgkIl6zgrAYQuQkSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"ChAKCQiXrOCsBhC7CRIDGJoIEgIYAxiW+66dAiICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOQkUKAxibCBoiEiATEgFqoY8qV+Uj5dlIf/WXRm9x9dtCtnkAu0qo2asiOiCA6AdCBQiAztoDUgBaAGoLY2VsbGFyIGRvb3I=","b64Record":"CiUIFiIDGJwIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCVbQtLe2qShyYFwXXE36QKZYmWauQei2LoBwGGXt0Jrw2nE3wwzTzhQklZJLraiNUaDAjTrOCsBhDT2YqmAiIQCgkIl6zgrAYQuwkSAxiaCCogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wltvqoAJC8wIKAxicCBI/YIBgQFJgAID9/qJkaXBmc1giEiCYZ7yeIi8lm3iFA1AmgpOj/Jw5mvfheD1jNBbJspy+HmRzb2xjQwAIBwAzIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACiAoAY6AxicCEoWChQAAAAAAAAAAAAAAAAAAAAAAAAEHHIHCgMYnAgQAVI8CgkKAhgDEJjiiRQKCgoCGGIQ4Om6vwMKCgoDGKAGEJq1iDcKCgoDGKEGEJq1iDcKCwoDGJoIEKu21cEE"},{"b64Body":"Cg8KCQiYrOCsBhDBCRICGAISAhgDGKKmCCICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOchMKEQoGCgIYYhACCgcKAxiaCBAB","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw8NcZ1YBZ17W6aQOO0sDfXNn5PKXXqOWQ/gnGXYP1lOVdmt6oCeREcNq0vLgNMAenGgsI1KzgrAYQ+5/XZiIPCgkImKzgrAYQwQkSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIRCgYKAhhiEAIKBwoDGJoIEAE="}]},"HollowAccountCompletionNotAcceptedWhenFlagIsDisabled":{"placeholderNum":1053,"encodedItems":[{"b64Body":"Cg8KCQidrOCsBhDZCRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloyCiISIB3sZ7BB6RvPQhK3IrZdR5qgH8AcB4YV67ox3PV4jtShEIDQ28P0AkoFCIDO2gM=","b64Record":"CiUIFhIDGJ4IKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDS07co/hdj7boaPizUgnVQR30URcnKZYyRkNTB6W6O4AHWAoNYNn9c0Nt12YCM+ZEaDAjZrOCsBhC76bnQASIPCgkInazgrAYQ2QkSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIbCgsKAhgCEP+ft4fpBQoMCgMYnggQgKC3h+kF"},{"b64Body":"Cg8KCQidrOCsBhDbCRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloyCiISIDkeUpZxXiJT58FOy5FyEsBIWRvlGHyXkXKzQ9VoWxZAEIDQ28P0AkoFCIDO2gM=","b64Record":"CiUIFhIDGJ8IKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCfeq2JbYKpWEgKLXTRN7VdYd1ZJddKbyIB55OhqRCSY3Xd03Gc/Ekm2v703W6RKoQaDAjZrOCsBhCTwZrRAyIPCgkInazgrAYQ2wkSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIbCgsKAhgCEP+ft4fpBQoMCgMYnwgQgKC3h+kF"},{"b64Body":"ChEKCQierOCsBhDdCRICGAIgAVo4CgIyAEoFCIDO2gNqFGxhenktY3JlYXRlZCBhY2NvdW50kgEUCXFj8ffBdPXVVJELqFr47YNBL5w=","b64Record":"CgcIFhIDGKAIEjDHBSFqQdRPLYnOk8QgXeqQDEP5p/2UJKFc5hhvC9NYt3wop2LCrcVMjqt07N1kLRMaDAjarOCsBhCqgKTaASIRCgkInqzgrAYQ3QkSAhgCIAEqFGxhenktY3JlYXRlZCBhY2NvdW50UgA="},{"b64Body":"Cg8KCQierOCsBhDdCRICGAISAhgDGKKmCCICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOci8KLQoeChYiFAlxY/H3wXT11VSRC6ha+O2DQS+cEICQ38BKCgsKAxieCBD/j9/ASg==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwSFK8206pnxI+GeB2ojXvgmQiyKSjAP//ZlYS7VpA3O6uzE+3S44asUopsSOwguHyGgwI2qzgrAYQq4Ck2gEiDwoJCJ6s4KwGEN0JEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SGgoLCgMYnggQ/4/fwEoKCwoDGKAIEICQ38BK"}]},"HollowAccountCompletionWithEthereumTransaction":{"placeholderNum":1057,"encodedItems":[{"b64Body":"Cg8KCQikrOCsBhCHChICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIPQTkqpGlCy+tHz9KQc7VFpITddosnGT/0IZivRDGvvBEICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGKIIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDvnFd4iiyWIhyB7YfbnKk3yOTn7FEDm3nZYwTeozYnOMEWwfLM8BazxA3Qh6cZAN8aDAjgrOCsBhDj/J+FAyIPCgkIpKzgrAYQhwoSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIfCg0KAhgCEP//663M7JACCg4KAxiiCBCAgOytzOyQAg=="},{"b64Body":"Cg8KCQilrOCsBhCJChICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloyCiISIDq0PUE19qwPYigEPIxVLQc8zxx5S/vjlKfST4qpNxE9EIDQ28P0AkoFCIDO2gM=","b64Record":"CiUIFhIDGKMIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAphC0OaccO4RCo9VhtlO0k/wKpU8eO4EqBd2f4XXWoULKLQZg0l8xI3qrdHA8D3bEaDAjhrOCsBhDrhaSNASIPCgkIpazgrAYQiQoSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIbCgsKAhgCEP+ft4fpBQoMCgMYowgQgKC3h+kF"},{"b64Body":"Cg8KCQilrOCsBhCLChICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAjh+rqwBhCw47P1AhptCiISIJXsuepvfGn1r4fbVWRf9H1qGkFVt0JM6pZ2e9MEpErdCiM6IQPwI6GhBAJ5WvoIkOhUw2S11fTbc40L4Ug4KN3UT5yYAAoiEiD3byESrWWfBvbamM0iiywAo0FW4E/VHONUl+MlZhElviIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGKQIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCvkkUQIfi3ce0MIdFj3KmP4mf/cQGQU4JCRlR2i5ZwlvQG/j9dnAx41ZcdXRmT5s4aDAjhrOCsBhDj47OPAyIPCgkIpazgrAYQiwoSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQimrOCsBhCPChICGAISAhgDGILlpzoiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBoBkKAxikCCKYGTYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDMwNjAwMDYwNDA1MTYxMDAyMDkwNjEwMjViNTY1YjgwODM3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ODE1MjYwMjAwMTgyNjNmZmZmZmZmZjE2NjNmZmZmZmZmZjE2ODE1MjYwMjAwMTkyNTA1MDUwNjA0MDUxODA5MTAzOTA2MDAwZjA4MDE1ODAxNTYxMDA4NTU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDYwMDA4MDYwMDM4MTEwNjEwMDkzNTdmZTViMDE2MDAwNjEwMTAwMGE4MTU0ODE3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjE5MTY5MDgzNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTYwMjE3OTA1NTUwMzA2MDAxNjA0MDUxNjEwMGUxOTA2MTAyNWI1NjViODA4MzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4MTUyNjAyMDAxODI2M2ZmZmZmZmZmMTY2M2ZmZmZmZmZmMTY4MTUyNjAyMDAxOTI1MDUwNTA2MDQwNTE4MDkxMDM5MDYwMDBmMDgwMTU4MDE1NjEwMTQ2NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNjAwMDYwMDE2MDAzODExMDYxMDE1NTU3ZmU1YjAxNjAwMDYxMDEwMDBhODE1NDgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIxOTE2OTA4MzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2MDIxNzkwNTU1MDMwNjAwMjYwNDA1MTYxMDFhMzkwNjEwMjViNTY1YjgwODM3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ODE1MjYwMjAwMTgyNjNmZmZmZmZmZjE2NjNmZmZmZmZmZjE2ODE1MjYwMjAwMTkyNTA1MDUwNjA0MDUxODA5MTAzOTA2MDAwZjA4MDE1ODAxNTYxMDIwODU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDYwMDA2MDAyNjAwMzgxMTA2MTAyMTc1N2ZlNWIwMTYwMDA2MTAxMDAwYTgxNTQ4MTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMTkxNjkwODM3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjAyMTc5MDU1NTA2MTAyNjg1NjViNjEwMWI4ODA2MTA0OTQ4MzM5MDE5MDU2NWI2MTAyMWQ4MDYxMDI3NzYwMDAzOTYwMDBmM2ZlNjA4MDYwNDA1MjM0ODAxNTYxMDAxMDU3NjAwMDgwZmQ1YjUwNjAwNDM2MTA2MTAwMmI1NzYwMDAzNTYwZTAxYzgwNjM2NGRiZTc4YzE0NjEwMDMwNTc1YjYwMDA4MGZkNWI2MTAwMzg2MTAwM2E1NjViMDA1YjYwMDA4MDYwMDM4MTEwNjEwMDQ3NTdmZTViMDE2MDAwOTA1NDkwNjEwMTAwMGE5MDA0NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzYjhiM2RiYzY2MDQwNTE4MTYzZmZmZmZmZmYxNjYwZTAxYjgxNTI2MDA0MDE2MDAwNjA0MDUxODA4MzAzODE2MDAwODc4MDNiMTU4MDE1NjEwMGIwNTc2MDAwODBmZDViNTA1YWYxMTU4MDE1NjEwMGM0NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjAwMDYwMDE2MDAzODExMDYxMDBkNjU3ZmU1YjAxNjAwMDkwNTQ5MDYxMDEwMDBhOTAwNDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2M2I4YjNkYmM2NjA0MDUxODE2M2ZmZmZmZmZmMTY2MGUwMWI4MTUyNjAwNDAxNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg3ODAzYjE1ODAxNTYxMDEzZjU3NjAwMDgwZmQ1YjUwNWFmMTE1ODAxNTYxMDE1MzU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1MDYwMDA2MDAyNjAwMzgxMTA2MTAxNjU1N2ZlNWIwMTYwMDA5MDU0OTA2MTAxMDAwYTkwMDQ3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjNiOGIzZGJjNjYwNDA1MTgxNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NzgwM2IxNTgwMTU2MTAxY2U1NzYwMDA4MGZkNWI1MDVhZjExNTgwMTU2MTAxZTI1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDUwNTA1NmZlYTI2NTYyN2E3YTcyMzE1ODIwNmI1ODg3NjljODIzYmQ0MjMyMzRjYTY3MjI2MTdjOTE1NTkzNzc4NzczMjg5ZTVlYTY5NTdmNmIzMDgzYTcyNjY0NzM2ZjZjNjM0MzAwMDUxMTAwMzI2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDQwNTE2MTAxYjgzODAzODA2MTAxYjg4MzM5ODE4MTAxNjA0MDUyNjA0MDgxMTAxNTYxMDAzMzU3NjAwMDgwZmQ1YjgxMDE5MDgwODA1MTkwNjAyMDAxOTA5MjkxOTA4MDUxOTA2MDIwMDE5MDkyOTE5MDUwNTA1MDgxNjAwMDgwNjEwMTAwMGE4MTU0ODE3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjE5MTY5MDgzNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTYwMjE3OTA1NTUwODA2MDAwNjAxNDYxMDEwMDBhODE1NDgxNjNmZmZmZmZmZjAyMTkxNjkwODM2M2ZmZmZmZmZmMTYwMjE3OTA1NTUwNTA1MDYwZjk4MDYxMDBiZjYwMDAzOTYwMDBmM2ZlNjA4MDYwNDA1MjM0ODAxNTYwMGY1NzYwMDA4MGZkNWI1MDYwMDQzNjEwNjAyODU3NjAwMDM1NjBlMDFjODA2M2I4YjNkYmM2MTQ2MDJkNTc1YjYwMDA4MGZkNWI2MDMzNjAzNTU2NWIwMDViN2ZlZmVkZTI2ODc2NDE2MzM5YjBhNzg5ZGEzNTE3Njk0N2JkZDMwMmI4ZWE5ZDQ5NWRjZDZjMDg0ZWMzZDFjYzllNjAwMDYwMTQ5MDU0OTA2MTAxMDAwYTkwMDQ2M2ZmZmZmZmZmMTY2MDQwNTE4MDgyNjNmZmZmZmZmZjE2NjNmZmZmZmZmZjE2ODE1MjYwMjAwMTkxNTA1MDYwNDA1MTgwOTEwMzkwYTE2MDAwODA5MDU0OTA2MTAxMDAwYTkwMDQ3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ZmZmZWEyNjU2MjdhN2E3MjMxNTgyMGJiNGExZTEzMzZjMzRkNDc2NTQ3MWU5ODkzNDgxMDM3MTVhYzI0Nzk5NmU5YWM2ODYwZjRlYTQ1OWE5YjJiMDg2NDczNmY2YzYzNDMwMDA1MTEwMDMy","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw4DsCIE5YCD3MLUHV+WdfArqHcCpxNhiGti7nGqtzrR16/AJ9YjonD1Z0/AI1V8E4GgwI4qzgrAYQ+/mjlwEiDwoJCKas4KwGEI8KEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"ChEKCQimrOCsBhCRChICGAIgAVo4CgIyAEoFCIDO2gNqFGxhenktY3JlYXRlZCBhY2NvdW50kgEU7GRISNsK4xRxVDSUpI0NBCKcCCA=","b64Record":"CgcIFhIDGKUIEjDitYXcQ9OnO79CJ6WsjzIphBfDTFj+0xyY5vBfKWrou9v2mss5t/O9yl22G1QwYa0aDAjirOCsBhCK0YyYAyIRCgkIpqzgrAYQkQoSAhgCIAEqFGxhenktY3JlYXRlZCBhY2NvdW50UgA="},{"b64Body":"Cg8KCQimrOCsBhCRChICGAISAhgDGKKmCCICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcjEKLwofChYiFOxkSEjbCuMUcVQ0lKSNDQQinAggEICgvoGVAQoMCgMYowgQ/5++gZUB","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwDyJYCBUgCYu3Ulul7Gdt5LKBXKCyHZp2LDO9If1lOwUTiws7RAq0s0DzTIK0TgBjGgwI4qzgrAYQi9GMmAMiDwoJCKas4KwGEJEKEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SHAoMCgMYowgQ/5++gZUBCgwKAxilCBCAoL6BlQE="},{"b64Body":"ChIKCQinrOCsBhCXChIDGKIIIAF6KhIDGKUIGiM6IQNganuqA62xd40qL+ygckdiujZbxWkzENdz8neMr63vYQ==","b64Record":"CgcIFhIDGKUIEjC4pq/2WNKxFqr29YAmloOZPvw2LeAQKAVDJJXBr9zcpFdK98gyMSXstVIcUZOV9bkaDAjjrOCsBhCSoM2gASISCgkIp6zgrAYQlwoSAxiiCCABUgA="},{"b64Body":"ChAKCQinrOCsBhCXChIDGKIIEgIYAxi3sJAbIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA8gNCr8N+Qa8gKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0alKIAIMPQkCAgLkGTGCAYEBSNIAVYQAQV2AAgP1bUDBgAGBAUWEAIJBhAltWW4CDc///////////////////////////FnP//////////////////////////xaBUmAgAYJj/////xZj/////xaBUmAgAZJQUFBgQFGAkQOQYADwgBWAFWEAhVc9YACAPj1gAP1bUGAAgGADgRBhAJNX/lsBYABhAQAKgVSBc///////////////////////////AhkWkINz//////////////////////////8WAheQVVAwYAFgQFFhAOGQYQJbVluAg3P//////////////////////////xZz//////////////////////////8WgVJgIAGCY/////8WY/////8WgVJgIAGSUFBQYEBRgJEDkGAA8IAVgBVhAUZXPWAAgD49YAD9W1BgAGABYAOBEGEBVVf+WwFgAGEBAAqBVIFz//////////////////////////8CGRaQg3P//////////////////////////xYCF5BVUDBgAmBAUWEBo5BhAltWW4CDc///////////////////////////FnP//////////////////////////xaBUmAgAYJj/////xZj/////xaBUmAgAZJQUFBgQFGAkQOQYADwgBWAFWECCFc9YACAPj1gAP1bUGAAYAJgA4EQYQIXV/5bAWAAYQEACoFUgXP//////////////////////////wIZFpCDc///////////////////////////FgIXkFVQYQJoVlthAbiAYQSUgzkBkFZbYQIdgGECd2AAOWAA8/5ggGBAUjSAFWEAEFdgAID9W1BgBDYQYQArV2AANWDgHIBjZNvnjBRhADBXW2AAgP1bYQA4YQA6VlsAW2AAgGADgRBhAEdX/lsBYACQVJBhAQAKkARz//////////////////////////8Wc///////////////////////////FmO4s9vGYEBRgWP/////FmDgG4FSYAQBYABgQFGAgwOBYACHgDsVgBVhALBXYACA/VtQWvEVgBVhAMRXPWAAgD49YAD9W1BQUFBgAGABYAOBEGEA1lf+WwFgAJBUkGEBAAqQBHP//////////////////////////xZz//////////////////////////8WY7iz28ZgQFGBY/////8WYOAbgVJgBAFgAGBAUYCDA4FgAIeAOxWAFWEBP1dgAID9W1Ba8RWAFWEBU1c9YACAPj1gAP1bUFBQUGAAYAJgA4EQYQFlV/5bAWAAkFSQYQEACpAEc///////////////////////////FnP//////////////////////////xZjuLPbxmBAUYFj/////xZg4BuBUmAEAWAAYEBRgIMDgWAAh4A7FYAVYQHOV2AAgP1bUFrxFYAVYQHiVz1gAIA+PWAA/VtQUFBQVv6iZWJ6enIxWCBrWIdpyCO9QjI0ymciYXyRVZN3h3Monl6mlX9rMIOnJmRzb2xjQwAFEQAyYIBgQFI0gBVhABBXYACA/VtQYEBRYQG4OAOAYQG4gzmBgQFgQFJgQIEQFWEAM1dgAID9W4EBkICAUZBgIAGQkpGQgFGQYCABkJKRkFBQUIFgAIBhAQAKgVSBc///////////////////////////AhkWkINz//////////////////////////8WAheQVVCAYABgFGEBAAqBVIFj/////wIZFpCDY/////8WAheQVVBQUGD5gGEAv2AAOWAA8/5ggGBAUjSAFWAPV2AAgP1bUGAENhBgKFdgADVg4ByAY7iz28YUYC1XW2AAgP1bYDNgNVZbAFt/7+3iaHZBYzmwp4naNRdpR73TArjqnUldzWwITsPRzJ5gAGAUkFSQYQEACpAEY/////8WYEBRgIJj/////xZj/////xaBUmAgAZFQUGBAUYCRA5ChYACAkFSQYQEACpAEc///////////////////////////FnP//////////////////////////xb//qJlYnp6cjFYILtKHhM2w01HZUcemJNIEDcVrCR5lumsaGD06kWamysIZHNvbGNDAAURADKCAnigy8mrOMX3BB/RXBtKrfIrL5MzR2Y3uuGVvV53Wm/9uyygAkaqJ7re33uOPZkxmrCQYr8tFwWYdX4Ve3DBGriTYJwYgMivoCU=","b64Record":"CiUIFiIDGKYIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjD8i0QBz/prfdTD74Q1AB6wWRerA6ZbHXptQCk/7Ve0HUpoCoZsSHy6fCOVbMKfqlAaDAjjrOCsBhCToM2gASIQCgkIp6zgrAYQlwoSAxiiCCogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wt5abNkLUEwoDGKYIEp0EYIBgQFI0gBVhABBXYACA/VtQYAQ2EGEAK1dgADVg4ByAY2Tb54wUYQAwV1tgAID9W2EAOGEAOlZbAFtgAIBgA4EQYQBHV/5bAWAAkFSQYQEACpAEc///////////////////////////FnP//////////////////////////xZjuLPbxmBAUYFj/////xZg4BuBUmAEAWAAYEBRgIMDgWAAh4A7FYAVYQCwV2AAgP1bUFrxFYAVYQDEVz1gAIA+PWAA/VtQUFBQYABgAWADgRBhANZX/lsBYACQVJBhAQAKkARz//////////////////////////8Wc///////////////////////////FmO4s9vGYEBRgWP/////FmDgG4FSYAQBYABgQFGAgwOBYACHgDsVgBVhAT9XYACA/VtQWvEVgBVhAVNXPWAAgD49YAD9W1BQUFBgAGACYAOBEGEBZVf+WwFgAJBUkGEBAAqQBHP//////////////////////////xZz//////////////////////////8WY7iz28ZgQFGBY/////8WYOAbgVJgBAFgAGBAUYCDA4FgAIeAOxWAFWEBzldgAID9W1Ba8RWAFWEB4lc9YACAPj1gAP1bUFBQUFb+omVienpyMVgga1iHacgjvUIyNMpnImF8kVWTd4dzKJ5eppV/azCDpyZkc29sY0MABREAMiKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAogOowOgMYpgg6AxinCDoDGKgIOgMYqQhKFgoUexE1cKmlvXM8wvZtZ+BaNno59w1QwIQ9YswMYIBgQFI0gBVhABBXYACA/VtQMGAAYEBRYQAgkGECW1ZbgINz//////////////////////////8Wc///////////////////////////FoFSYCABgmP/////FmP/////FoFSYCABklBQUGBAUYCRA5BgAPCAFYAVYQCFVz1gAIA+PWAA/VtQYACAYAOBEGEAk1f+WwFgAGEBAAqBVIFz//////////////////////////8CGRaQg3P//////////////////////////xYCF5BVUDBgAWBAUWEA4ZBhAltWW4CDc///////////////////////////FnP//////////////////////////xaBUmAgAYJj/////xZj/////xaBUmAgAZJQUFBgQFGAkQOQYADwgBWAFWEBRlc9YACAPj1gAP1bUGAAYAFgA4EQYQFVV/5bAWAAYQEACoFUgXP//////////////////////////wIZFpCDc///////////////////////////FgIXkFVQMGACYEBRYQGjkGECW1ZbgINz//////////////////////////8Wc///////////////////////////FoFSYCABgmP/////FmP/////FoFSYCABklBQUGBAUYCRA5BgAPCAFYAVYQIIVz1gAIA+PWAA/VtQYABgAmADgRBhAhdX/lsBYABhAQAKgVSBc///////////////////////////AhkWkINz//////////////////////////8WAheQVVBhAmhWW2EBuIBhBJSDOQGQVlthAh2AYQJ3YAA5YADz/mCAYEBSNIAVYQAQV2AAgP1bUGAENhBhACtXYAA1YOAcgGNk2+eMFGEAMFdbYACA/VthADhhADpWWwBbYACAYAOBEGEAR1f+WwFgAJBUkGEBAAqQBHP//////////////////////////xZz//////////////////////////8WY7iz28ZgQFGBY/////8WYOAbgVJgBAFgAGBAUYCDA4FgAIeAOxWAFWEAsFdgAID9W1Ba8RWAFWEAxFc9YACAPj1gAP1bUFBQUGAAYAFgA4EQYQDWV/5bAWAAkFSQYQEACpAEc///////////////////////////FnP//////////////////////////xZjuLPbxmBAUYFj/////xZg4BuBUmAEAWAAYEBRgIMDgWAAh4A7FYAVYQE/V2AAgP1bUFrxFYAVYQFTVz1gAIA+PWAA/VtQUFBQYABgAmADgRBhAWVX/lsBYACQVJBhAQAKkARz//////////////////////////8Wc///////////////////////////FmO4s9vGYEBRgWP/////FmDgG4FSYAQBYABgQFGAgwOBYACHgDsVgBVhAc5XYACA/VtQWvEVgBVhAeJXPWAAgD49YAD9W1BQUFBW/qJlYnp6cjFYIGtYh2nII71CMjTKZyJhfJFVk3eHcyieXqaVf2swg6cmZHNvbGNDAAURADJggGBAUjSAFWEAEFdgAID9W1BgQFFhAbg4A4BhAbiDOYGBAWBAUmBAgRAVYQAzV2AAgP1bgQGQgIBRkGAgAZCSkZCAUZBgIAGQkpGQUFBQgWAAgGEBAAqBVIFz//////////////////////////8CGRaQg3P//////////////////////////xYCF5BVUIBgAGAUYQEACoFUgWP/////AhkWkINj/////xYCF5BVUFBQYPmAYQC/YAA5YADz/mCAYEBSNIAVYA9XYACA/VtQYAQ2EGAoV2AANWDgHIBjuLPbxhRgLVdbYACA/VtgM2A1VlsAW3/v7eJodkFjObCnido1F2lHvdMCuOqdSV3NbAhOw9HMnmAAYBSQVJBhAQAKkARj/////xZgQFGAgmP/////FmP/////FoFSYCABkVBQYEBRgJEDkKFgAICQVJBhAQAKkARz//////////////////////////8Wc///////////////////////////Fv/+omVienpyMVggu0oeEzbDTUdlRx6Yk0gQNxWsJHmW6axoYPTqRZqbKwhkc29sY0MABREAMmoDGKUIcgcKAximCBAEcgcKAxinCBABcgcKAxioCBABcgcKAxipCBABUkYKCQoCGAMQ8oWZAgoJCgIYYhCAyOhfCgoKAxigBhC+r5oFCgoKAxihBhC+r5oFCgoKAxiiCBDt6t48CgoKAxilCBD/wdcvigEgIpJcDL1iruX3jon2r91Mv8taa9LU7too3WgvlFaITB0="},{"b64Body":"ChIKCQinrOCsBhCXChIDGKIIIAJCHUIFCIDO2gNqFGxhenktY3JlYXRlZCBhY2NvdW50","b64Record":"CgcIFiIDGKcIEjAB4TWT5yR/WGhJJFQBT5yRUTELiqM1B4KJnIFazdy6x0CWXaNKEs9r/Mabp+njgzUaDAjjrOCsBhCUoM2gASISCgkIp6zgrAYQlwoSAxiiCCACQh0KAxinCEoWChR5g4GHpCQ47I/kLCT8mw3ZVKjHZVIAegwI46zgrAYQk6DNoAE="},{"b64Body":"ChIKCQinrOCsBhCXChIDGKIIIANCHUIFCIDO2gNqFGxhenktY3JlYXRlZCBhY2NvdW50","b64Record":"CgcIFiIDGKgIEjDmN7/XNOgcvbOWank1KGK3RUm8ajg4fuogDivBvgcH0fBYph+/j0euWBVikHIEsZwaDAjjrOCsBhCVoM2gASISCgkIp6zgrAYQlwoSAxiiCCADQh0KAxioCEoWChT4rj4s2GLHGqB1SKN15y7AsM76FFIAegwI46zgrAYQk6DNoAE="},{"b64Body":"ChIKCQinrOCsBhCXChIDGKIIIARCHUIFCIDO2gNqFGxhenktY3JlYXRlZCBhY2NvdW50","b64Record":"CgcIFiIDGKkIEjCBBixDC6lUhFtmxwRlGoZyosb/0tUjn87/qK9ivAFz8Y+DhJ0SZhUlCYCppXyelGwaDAjjrOCsBhCWoM2gASISCgkIp6zgrAYQlwoSAxiiCCAEQh0KAxipCEoWChRdmwvTOp+/sXDvPOt1poPVsoSRe1IAegwI46zgrAYQk6DNoAE="},{"b64Body":"ChIKCQinrOCsBhCXChIDGKIIIAVCHUIFCIDO2gNqFGxhenktY3JlYXRlZCBhY2NvdW50","b64Record":"CgcIFiIDGKYIEjBOjY06jvkVrovbOmmHwME/OarTQdBqBpFerIm/BQV7n2uYGnZnHrQbR0ZG0N+jR7gaDAjjrOCsBhCXoM2gASISCgkIp6zgrAYQlwoSAxiiCCAFQh0KAximCEoWChR7ETVwqaW9czzC9m1n4Fo2ejn3DVIAegwI46zgrAYQk6DNoAE="}]},"hollowAccountCreationChargesExpectedFees":{"placeholderNum":1066,"encodedItems":[{"b64Body":"Cg8KCQitrOCsBhC6ChICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlorCiISIKzUAbevtD4vyqwgsFjKmlpRqJT8WIucibU17AeG1M4zSgUIgM7aAw==","b64Record":"CiUIFhIDGKsIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCgk8/TBKpQ51whIV7KM0LPwd30m3nxJyGBTUgCxp5D9Y12InncacDNvMl2jw5+3XoaCwjprOCsBhDD8s9PIg8KCQitrOCsBhC6ChICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgA="},{"b64Body":"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","b64Record":"CiAIaCocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIww9MbLAi1UoHVr/Cq66re+CRZNnZFNW4dtd3ZmJMGI2NJkZvapl1+A3Pii4mIVeX6GgwI86zgrAYQg+u3vQIiDwoJCLes4KwGEMIKEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"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","b64Record":"CiAIaCocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwyqwiux1cis75JzwAop6uDbOf/Nq9qT8QbAfWZ6WD8lOq+Wqj/dwEkAdt31c/Fjk8GgsI9KzgrAYQy7eNYiIPCgkIuKzgrAYQyAoSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQi4rOCsBhDOChICGAISAhgDGMLemjciAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBhyASAhhvIoAgBjCD6AM4zSRAnJAmUImB1yxY6vyOAQqQAQgMGosBCikQgICapuqv4wEYgrbUvAIgpuZAKO/+zfEJMMQFODVApjdQpuZAWK7PARIuEICAmqbqr+MBGJ3gxsonIOHkjAgo7u3fmZ4BMLxYONEGQN30BlDh5IwIWNz1GRouEICAmqbqr+MBGJ3gxsonIOHkjAgo7u3fmZ4BMLxYONEGQN30BlDh5IwIWNz1GQqaAQgKGpUBCi0QgICapuqv4wEYttDTjQsgwvWiAijloP+xLDDqGDjuAUCg+AFQwvWiAlj4ogcSMRCAgJqm6q/jARjAyIiR3gEgrK66LSjqj/Hn9wYwwPADOJ4lQIDlJlCsrrotWOG6kQEaMRCAgJqm6q/jARjAyIiR3gEgrK66LSjqj/Hn9wYwwPADOJ4lQIDlJlCsrrotWOG6kQEKXwgXGlsKGRCAgJqm6q/jARi8nQQgbyiO9BBAAVBvWAMSHhCAgJqm6q/jARi810Mg7Q0o3cGOAjABQAxQ7Q1YLBoeEICAmqbqr+MBGLzXQyDtDSjdwY4CMAFADFDtDVgsCl8IGBpbChkQgICapuqv4wEYqKsEIHIouKsRQAFQclgDEh4QgICapuqv4wEY/bRFIJoOKIW3lQIwAUAMUJoOWC0aHhCAgJqm6q/jARj9tEUgmg4ohbeVAjABQAxQmg5YLQqaAQgjGpUBCi0QgICapuqv4wEYgfHZpBggyZL8BCiD0tqIYTCkNjiJBEDsngRQyZL8BFjV8w8SMRCAgJqm6q/jARiJkJ7LhAMgiqnCTyipoKqLkQwwxuQGOJJBQMDtQ1CKqcJPWNC6/gEaMRCAgJqm6q/jARiJkJ7LhAMgiqnCTyipoKqLkQwwxuQGOJJBQMDtQ1CKqcJPWNC6/gEKKwgUGicKCxCAgJqm6q/jARgBEgsQgICapuqv4wEYARoLEICAmqbqr+MBGAEKKwgkGicKCxCAgJqm6q/jARgBEgsQgICapuqv4wEYARoLEICAmqbqr+MBGAEKJQgcGiEKCRCAgJqm6q/jARIJEICAmqbqr+MBGgkQgICapuqv4wEKJQgdGiEKCRCAgJqm6q/jARIJEICAmqbqr+MBGgkQgICapuqv4wEKXwgZGlsKGRCAgJqm6q/jARjNqgMgVyiEqQ1AAVBXWAISHhCAgJqm6q/jARjVqTUg9QoovJDVATABQAlQ9QpYIxoeEICAmqbqr+MBGNWpNSD1Cii8kNUBMAFACVD1ClgjEgYIgJHQiQYSs0cKfwgbGnsKIxDAuwEYoZad2SogtogfKJjG4N4EMNMCOBlAwRpQtogfWLVjEikQoJkCGJa9x/jVBiDAqO0EKN77iudeMII1OP0DQJiSBFDAqO0EWJvEDxopEKCZAhiWvcf41QYgwKjtBCje+4rnXjCCNTj9A0CYkgRQwKjtBFibxA8KmgEIUhqVAQotEICAmqbqr+MBGOSYypEOIMGm8gIol5e4wDgwzR84rwJA/7sCUMGm8gJY+6AJEjEQgICapuqv4wEY0e/L35oCIJ6C7jkozs/jiOoIMP33BDizL0DnrzFQnoLuOVihk7kBGjEQgICapuqv4wEY0e/L35oCIJ6C7jkozs/jiOoIMP33BDizL0DnrzFQnoLuOVihk7kBCpoBCFEalQEKLRCAgJqm6q/jARjMwpGEDiC0xu8CKIWK24o4MK8fOK0CQNK5AlC0xu8CWJSYCRIxEICAmqbqr+MBGOqz3tKYAiCKgLc5KOTIndbhCDCl8wQ4hi9A7YAxUIqAtzlYmuO3ARoxEICAmqbqr+MBGOqz3tKYAiCKgLc5KOTIndbhCDCl8wQ4hi9A7YAxUIqAtzlYmuO3AQqBAQghGn0KJRCAgJqm6q/jARiOuMwcIIbtBSiJ7qVyMEA4BUD/BFCG7QVY3RISKRCAgJqm6q/jARjZgcfJAyDk0F0oj+HdpA4w/wc4TUDzT1Dk0F1Yz6sCGikQgICapuqv4wEY2YHHyQMg5NBdKI/h3aQOMP8HOE1A809Q5NBdWM+rAgpwCAIabAogEMC7ARijguMHIM/LASik64gfMBE4AUCuAVDPywFYjAUSIxCgmQIYw628mwEgpOgfKNLhsO0EMNwCOBpAkxtQpOgfWOdlGiMQoJkCGMOtvJsBIKToHyjS4bDtBDDcAjgaQJMbUKToH1jnZQqqBAgBGmcKHRDAuwEYzqfOAyDNXiiV3rcOMAg4AUBRUM1eWK8CEiIQoJkCGJWYnkggiuQOKJzb2qACMKEBOAxAzwxQiuQOWKcvGiIQoJkCGJWYnkggiuQOKJzb2qACMKEBOAxAzwxQiuQOWKcvGmkKHRDAuwEYn6PnAyDbYyiowpsPMAk4AUBVUNtjWL8CEiIQoJkCGO7AkUwgocoPKKquprACMKoBOA1Apg1QocoPWO4xGiIQoJkCGO7AkUwgocoPKKquprACMKoBOA1Apg1QocoPWO4xIAEabgogEMC7ARi9xs4HILfHASjOhLceMBE4AUCqAVC3xwFY/gQSIxCgmQIYy4GjmAEgwpQfKJLczOAEMNQCOBpAzBpQwpQfWNtjGiMQoJkCGMuBo5gBIMKUHyiS3MzgBDDUAjgaQMwaUMKUH1jbYyADGnAKIBDAuwEYstXxCiCYnQIo+pHCKzAYOAJA8wFQmJ0CWJEHEiQQoJkCGO6r4dkBIOnHLCiK56rmBjDnAzglQIMmUOnHLFjMjgEaJBCgmQIY7qvh2QEg6ccsKIrnquYGMOcDOCVAgyZQ6ccsWMyOASACGnAKIBDAuwEY3qrjFSCxugQo2qOEVzAxOARA5wNQsboEWKEOEiQQoJkCGNbWwrMDINOPWSj/ydXMDTDNBzhJQIdMUNOPWViYnQIaJBCgmQIY1tbCswMg049ZKP/J1cwNMM0HOElAh0xQ049ZWJidAiAECo4BCAMaiQEKKRCAgJqm6q/jARjj1uXgASCIgC4opZy5ggcw9gM4JkCgJ1CIgC5YmpMBEi0QgICapuqv4wEYrezajBwggIHgBSjOxJOncDDnPjjbBECI9ARQgIHgBVidsxIaLRCAgJqm6q/jARit7NqMHCCAgeAFKM7Ek6dwMOc+ONsEQIj0BFCAgeAFWJ2zEgqaAQgEGpUBCi0QgICapuqv4wEYquCC3BQg19ieBCi6hrznUjCoLji9A0CNzwNQ19ieBFjPyA0SMRCAgJqm6q/jARifhazAywIg84rrQyib58D3rAow+uQFOMk3QMjxOVDziutDWPCJ2QEaMRCAgJqm6q/jARifhazAywIg84rrQyib58D3rAow+uQFOMk3QMjxOVDziutDWPCJ2QEKjgEIBRqJAQopEICAmqbqr+MBGNzmtd8BIIncLSibpfr8BjDzAzglQIInUIncLVinkgESLRCAgJqm6q/jARi569z2GyCUwdsFKKnTpM9vMLY+ONcEQJzwBFCUwdsFWOqkEhotEICAmqbqr+MBGLnr3PYbIJTB2wUoqdOkz28wtj441wRAnPAEUJTB2wVY6qQSCl8IFRpbChkQgICapuqv4wEYrswDIF4o+q8OQAFQXlgCEh4QgICapuqv4wEY5sU5IOMLKKD/5QEwAUAKUOMLWCYaHhCAgJqm6q/jARjmxTkg4wsooP/lATABQApQ4wtYJgpXCA4aUwoXEICAmqbqr+MBGJysASAjKKmwBVAjWAESGxCAgJqm6q/jARjEwxUgtAQomIVWQARQtARYDhobEICAmqbqr+MBGMTDFSC0BCiYhVZABFC0BFgOCl8IDRpbChkQgICapuqv4wEYppkEIG4ouuMQQAFQblgDEh4QgICapuqv4wEY5ZRDIN8NKJ63jAIwAUAMUN8NWCwaHhCAgJqm6q/jARjllEMg3w0onreMAjABQAxQ3w1YLApfCA8aWwoZEICAmqbqr+MBGPbzAyBmKIjOD0ABUGZYAxIeEICAmqbqr+MBGOG+PiDlDCiG4fkBMAFAC1DlDFgpGh4QgICapuqv4wEY4b4+IOUMKIbh+QEwAUALUOUMWCkKVggWGlIKFhCAgJqm6q/jARiTdyAYKJncA1AYWAESGxCAgJqm6q/jARir8g4ghgMok8M7QANQhgNYChobEICAmqbqr+MBGKvyDiCGAyiTwztAA1CGA1gKCpABCDIaiwEKKRCAgJqm6q/jARiWz7i3AyCu9lkonNur3A0w1gc4SkDeTFCu9llY4Z8CEi4QgICapuqv4wEY3PKJ9zYg4eWeCyi7s7vF2wEw43o4mwlA48sJUOHlngtYkvwjGi4QgICapuqv4wEY3PKJ9zYg4eWeCyi7s7vF2wEw43o4mwlA48sJUOHlngtYkvwjCn8IMxp7CiUQgICapuqv4wEY9MPQCSCc/AEohI++JjAWOAJA1wFQnPwBWKcGEigQgICapuqv4wEYxr6ImgEgvcMfKMbw4ecEMNgCOBpA9BpQvcMfWPJkGigQgICapuqv4wEYxr6ImgEgvcMfKMbw4ecEMNgCOBpA9BpQvcMfWPJkCo4BCDQaiQEKKRCAgJqm6q/jARi43ZfiASDApC4o9OyAiAcw+gM4JkDAJ1DApC5YjpQBEi0QgICapuqv4wEYg9f7ohwg/MfkBSi8zo2AcTCZPzjfBED59wRQ/MfkBVjmwRIaLRCAgJqm6q/jARiD1/uiHCD8x+QFKLzOjYBxMJk/ON8EQPn3BFD8x+QFWObBEgp6CDYadgoiEICAmqbqr+MBGLq9tAQgwXMoh4vQETAKOAFAY1DBc1jyAhInEICAmqbqr+MBGKTXx0YgmLgOKPWwgZoCMJ4BOAxAqQxQmLgOWJouGicQgICapuqv4wEYpNfHRiCYuA4o9bCBmgIwngE4DECpDFCYuA5Ymi4KXwg1GlsKGRCAgJqm6q/jARj99QMgZyij1g9AAVBnWAMSHhCAgJqm6q/jARjQ3z4g7Awos+T6ATABQAtQ7AxYKRoeEICAmqbqr+MBGNDfPiDsDCiz5PoBMAFAC1DsDFgpCokBCFYahAEKJhCAgJqm6q/jARjyytskINnBByiFid+SATBSOAZAtQZQ2cEHWIUYEiwQgICapuqv4wEY7tmn3gUg76GWASjttO32FjDpDDh7QJ2AAVDvoZYBWOzgAxosEICAmqbqr+MBGO7Zp94FIO+hlgEo7bTt9hYw6Qw4e0CdgAFQ76GWAVjs4AMKhAUIOBqjAQovEICAmqbqr+MBGNDL6Oi6CyCwnqsIKKqgveyiATCJWzjqBkDbjgdQsJ6rCFiU1xoSNhCAgJqm6q/jARjI6KuwmOUBIL/f4KYBKMqGyfm4GTC2nQ44zogBQJemjgFQv9/gpgFYmM+VBBo2EICAmqbqr+MBGMjoq7CY5QEgv9/gpgEoyobJ+bgZMLadDjjOiAFAl6aOAVC/3+CmAViYz5UEIAMamAEKLhCAgJqm6q/jARiZgKaD3wUg3OWWBCj40g==","b64Record":"CiAIaCocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwqkNf5dub4d4OdFbGoWnL/OYmbxLJV+q6J4QOQqZwCKTMd+E4RtgwHBchtFBe46qIGgwI9KzgrAYQ08PYxgIiDwoJCLis4KwGEM4KEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"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QKCANAqYAQgIGpMBCi0QgICapuqv4wEYwvzFigkg2/LtASjFsrSmJDCmFDjDAUCBywFQ2/LtAVii+QUSMBCAgJqm6q/jARibyN+okQEgqqveHSjTqMbmxAQw58QCOK4YQIqwGVCqq94dWKSUXxowEICAmqbqr+MBGJvI36iRASCqq94dKNOoxubEBDDnxAI4rhhAirAZUKqr3h1YpJRfCpABCB4aiwEKKRCAgJqm6q/jARiCttS8AiCm5kAo7/7N8QkwxAU4NUCmN1Cm5kBYrs8BEi4QgICapuqv4wEYneDGyicg4eSMCCju7d+ZngEwvFg40QZA3fQGUOHkjAhY3PUZGi4QgICapuqv4wEYneDGyicg4eSMCCju7d+ZngEwvFg40QZA3fQGUOHkjAhY3PUZCikIBholCgkQgICapuqv4wESCRCAgJqm6q/jARoNEICAmqbqr+MBQKCANAptCFQaaQopEICAmqbqr+MBGIrd/LYMIMjIxQIo153d1jEw5Bs4iwJQyMjFAljokQgSLRCAgJqm6q/jARib0cvvxgEggInZKCj22tPrmgYwwbwDOKshUICJ2ShYg52CARoNEICAmqbqr+MBQKCANApfCBEaWwoZEICAmqbqr+MBGOeqBCByKLapEUABUHJYAxIeEICAmqbqr+MBGPSsRSCZDijklpUCMAFADFCZDlgtGh4QgICapuqv4wEY9KxFIJkOKOSWlQIwAUAMUJkOWC0KmAEIEBqTAQotEICAmg==","b64Record":"CiAIaCocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw8Ihfmoqc2r4XLgLys9GU8WTXk3CTuKpsoObnguBjBYNsvYaur7Dnhdf61BKvo6dmGgsI9azgrAYQ29KAbCIPCgkIuazgrAYQ1AoSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"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","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwiDlip4qdMeJg3iZUsHFIDiVPXLrJYFF2yVmJdZa5VA2aSiWQ3AGIINl5H9771T/cGgwI9azgrAYQ06Cc0AIiDwoJCLms4KwGENoKEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQi6rOCsBhDcChICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOchsKGQoLCgMYqwgQoJDfwEoKCgoCGAIQn5DfwEo=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw4zs/JDbOss7bAYCcDUw77zrYNDt69BNPsu9EGrrgPQ/Gdj0VmkIxA73RXSG92e7rGgsI9qzgrAYQw7/udCIPCgkIuqzgrAYQ3AoSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEJ+Q38BKCgsKAxirCBCgkN/ASg=="},{"b64Body":"Cg8KCQi7rOCsBhDiChICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOchMKEQoHCgMYqwgQIAoGCgIYAhAf","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwEzdZNlTHSFiA3R+MoIvEcs2CsavNVfqVh7rncSHLvFyHmUDsyIg/qbZECRwaQV4TGgsI96zgrAYQs53rfiIPCgkIu6zgrAYQ4goSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIRCgYKAhgCEB8KBwoDGKsIECA="},{"b64Body":"ChIKCQi7rOCsBhDkChIDGKsIIAFaOAoCMgBKBQiAztoDahRsYXp5LWNyZWF0ZWQgYWNjb3VudJIBFNgWlrYS6b9PzTgghcr+ecbO0pje","b64Record":"CgcIFhIDGK0IEjDSenktM0K+1Pok5EDuTMVOx3Y/vfIRWeXZpqV2KPUQ6exEemD57Z8MMicjy5VEudYaDAj3rOCsBhCyo6vjAiISCgkIu6zgrAYQ5AoSAxirCCABKhRsYXp5LWNyZWF0ZWQgYWNjb3VudDAQUgA="},{"b64Body":"ChAKCQi7rOCsBhDkChIDGKsIEgIYAxiqkAUiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjnIvCi0KHgoWIhTYFpa2Eum/T804IIXK/nnGztKY3hCAkN/ASgoLCgMYqwgQ/4/fwEo=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw2rjbr1bZknRgGay/ZDKzH43zos5dVKvhFZ2AZ5QWd4u5bPTps4Tbv0t/LKZlt9w2GgwI96zgrAYQs6Or4wIiEAoJCLus4KwGEOQKEgMYqwgqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMBhSPAoGCgIYAxAECgYKAhhiECgKBwoDGKAGEAIKBwoDGKEGEAIKCwoDGKsIEK+Q38BKCgsKAxitCBCAkN/ASg=="},{"b64Body":"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","b64Record":"CiAIaCocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwUStiMDKMHLjv8NrrdjNyvVGv77LP0CMPWwMz7f/AprsABWt0t2gOUIIwrycLCIcSGgwI+KzgrAYQ8/SbiAEiDwoJCLys4KwGEOwKEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"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","b64Record":"CiAIaCocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwDeX5w90jmJtxq+vs8pRw/pUvcRrq9Yzn96xbWAONd4xkXMt++s+fxDM7R7Jznx+ZGgwI+KzgrAYQ272YigMiDwoJCLys4KwGEPIKEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"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","b64Record":"CiAIaCocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw7xPETzCqY4csEsToszLWSxoIgeHQ6OdZMQ3MVnxgKypCOj9HpO1icxJMWtLChCdsGgwI+azgrAYQy47ekQEiDwoJCL2s4KwGEPgKEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"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","b64Record":"CiAIaCocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwzCKIX1e8KBu9fGNkBUlRGbO5Ha8bqg7uyc/lAoGTir8icBg26dJCwZJa+m0OnLCtGgwI+azgrAYQs8SNkwMiDwoJCL2s4KwGEP4KEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"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","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwUtuMYIxAQ1aa41YxdOgUeZ55ZmNDaiVIQp4zupfTf8xOwUNMrOjaZLdHuBD5wT8SGgwI+qzgrAYQu4TTmwEiDwoJCL6s4KwGEIQLEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQi+rOCsBhCMCxICGAISAhgDGMPq3R8iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBlSAKAhhvEgwI+vq6sAYQuLCPiwMigCAK40kKjwEIGxqKAQooEICAmqbqr+MBGKGWndkqILaIHyiYxuDeBDDTAjgZQMEaULaIH1i1YxIuEICAmqbqr+MBGJa9x/jVBiDAqO0EKN77iudeMII1OP0DQJiSBFDAqO0EWJvEDxouEICAmqbqr+MBGJa9x/jVBiDAqO0EKN77iudeMII1OP0DQJiSBFDAqO0EWJvEDwqaAQhSGpUBCi0QgICapuqv4wEY5JjKkQ4gwabyAiiXl7jAODDNHzivAkD/uwJQwabyAlj7oAkSMRCAgJqm6q/jARjR78vfmgIgnoLuOSjOz+OI6ggw/fcEOLMvQOevMVCegu45WKGTuQEaMRCAgJqm6q/jARjR78vfmgIgnoLuOSjOz+OI6ggw/fcEOLMvQOevMVCegu45WKGTuQEKmgEIURqVAQotEICAmqbqr+MBGMzCkYQOILTG7wIohYrbijgwrx84rQJA0rkCULTG7wJYlJgJEjEQgICapuqv4wEY6rPe0pgCIIqAtzko5Mid1uEIMKXzBDiGL0DtgDFQioC3OVia47cBGjEQgICapuqv4wEY6rPe0pgCIIqAtzko5Mid1uEIMKXzBDiGL0DtgDFQioC3OVia47cBCoEBCCEafQolEICAmqbqr+MBGI64zBwghu0FKInupXIwQDgFQP8EUIbtBVjdEhIpEICAmqbqr+MBGNmBx8kDIOTQXSiP4d2kDjD/BzhNQPNPUOTQXVjPqwIaKRCAgJqm6q/jARjZgcfJAyDk0F0oj+HdpA4w/wc4TUDzT1Dk0F1Yz6sCCn8IAhp7CiUQgICapuqv4wEYo4LjByDPywEopOuIHzAROAFArgFQz8sBWIwFEigQgICapuqv4wEYw628mwEgpOgfKNLhsO0EMNwCOBpAkxtQpOgfWOdlGigQgICapuqv4wEYw628mwEgpOgfKNLhsO0EMNwCOBpAkxtQpOgfWOdlCvUECAEadgoiEICAmqbqr+MBGM6nzgMgzV4old63DjAIOAFAUVDNXlivAhInEICAmqbqr+MBGJWYnkggiuQOKJzb2qACMKEBOAxAzwxQiuQOWKcvGicQgICapuqv4wEYlZieSCCK5A4onNvaoAIwoQE4DEDPDFCK5A5Ypy8aeAoiEICAmqbqr+MBGJ+j5wMg22MoqMKbDzAJOAFAVVDbY1i/AhInEICAmqbqr+MBGO7AkUwgocoPKKquprACMKoBOA1Apg1QocoPWO4xGicQgICapuqv4wEY7sCRTCChyg8oqq6msAIwqgE4DUCmDVChyg9Y7jEgARp9CiUQgICapuqv4wEYvcbOByC3xwEozoS3HjAROAFAqgFQt8cBWP4EEigQgICapuqv4wEYy4GjmAEgwpQfKJLczOAEMNQCOBpAzBpQwpQfWNtjGigQgICapuqv4wEYy4GjmAEgwpQfKJLczOAEMNQCOBpAzBpQwpQfWNtjIAMafwolEICAmqbqr+MBGLLV8QogmJ0CKPqRwiswGDgCQPMBUJidAliRBxIpEICAmqbqr+MBGO6r4dkBIOnHLCiK56rmBjDnAzglQIMmUOnHLFjMjgEaKRCAgJqm6q/jARjuq+HZASDpxywoiueq5gYw5wM4JUCDJlDpxyxYzI4BIAIafwolEICAmqbqr+MBGN6q4xUgsboEKNqjhFcwMTgEQOcDULG6BFihDhIpEICAmqbqr+MBGNbWwrMDINOPWSj/ydXMDTDNBzhJQIdMUNOPWViYnQIaKRCAgJqm6q/jARjW1sKzAyDTj1ko/8nVzA0wzQc4SUCHTFDTj1lYmJ0CIAQKjgEIAxqJAQopEICAmqbqr+MBGOPW5eABIIiALiilnLmCBzD2AzgmQKAnUIiALliakwESLRCAgJqm6q/jARit7NqMHCCAgeAFKM7Ek6dwMOc+ONsEQIj0BFCAgeAFWJ2zEhotEICAmqbqr+MBGK3s2owcIICB4AUozsSTp3Aw5z442wRAiPQEUICB4AVYnbMSCpoBCAQalQEKLRCAgJqm6q/jARiq4ILcFCDX2J4EKLqGvOdSMKguOL0DQI3PA1DX2J4EWM/IDRIxEICAmqbqr+MBGJ+FrMDLAiDziutDKJvnwPesCjD65AU4yTdAyPE5UPOK60NY8InZARoxEICAmqbqr+MBGJ+FrMDLAiDziutDKJvnwPesCjD65AU4yTdAyPE5UPOK60NY8InZAQqOAQgFGokBCikQgICapuqv4wEY3Oa13wEgidwtKJul+vwGMPMDOCVAgidQidwtWKeSARItEICAmqbqr+MBGLnr3PYbIJTB2wUoqdOkz28wtj441wRAnPAEUJTB2wVY6qQSGi0QgICapuqv4wEYuevc9hsglMHbBSip06TPbzC2PjjXBECc8ARQlMHbBVjqpBIKXwgVGlsKGRCAgJqm6q/jARiuzAMgXij6rw5AAVBeWAISHhCAgJqm6q/jARjmxTkg4wsooP/lATABQApQ4wtYJhoeEICAmqbqr+MBGObFOSDjCyig/+UBMAFAClDjC1gmClcIDhpTChcQgICapuqv4wEYnKwBICMoqbAFUCNYARIbEICAmqbqr+MBGMTDFSC0BCiYhVZABFC0BFgOGhsQgICapuqv4wEYxMMVILQEKJiFVkAEULQEWA4KXwgNGlsKGRCAgJqm6q/jARimmQQgbii64xBAAVBuWAMSHhCAgJqm6q/jARjllEMg3w0onreMAjABQAxQ3w1YLBoeEICAmqbqr+MBGOWUQyDfDSiet4wCMAFADFDfDVgsCl8IDxpbChkQgICapuqv4wEY9vMDIGYoiM4PQAFQZlgDEh4QgICapuqv4wEY4b4+IOUMKIbh+QEwAUALUOUMWCkaHhCAgJqm6q/jARjhvj4g5QwohuH5ATABQAtQ5QxYKQpWCBYaUgoWEICAmqbqr+MBGJN3IBgomdwDUBhYARIbEICAmqbqr+MBGKvyDiCGAyiTwztAA1CGA1gKGhsQgICapuqv4wEYq/IOIIYDKJPDO0ADUIYDWAoKkAEIMhqLAQopEICAmqbqr+MBGJbPuLcDIK72WSic26vcDTDWBzhKQN5MUK72WVjhnwISLhCAgJqm6q/jARjc8on3NiDh5Z4LKLuzu8XbATDjejibCUDjywlQ4eWeC1iS/CMaLhCAgJqm6q/jARjc8on3NiDh5Z4LKLuzu8XbATDjejibCUDjywlQ4eWeC1iS/CMKfwgzGnsKJRCAgJqm6q/jARj0w9AJIJz8ASiEj74mMBY4AkDXAVCc/AFYpwYSKBCAgJqm6q/jARjGvoiaASC9wx8oxvDh5wQw2AI4GkD0GlC9wx9Y8mQaKBCAgJqm6q/jARjGvoiaASC9wx8oxvDh5wQw2AI4GkD0GlC9wx9Y8mQKjgEINBqJAQopEICAmqbqr+MBGLjdl+IBIMCkLij07ICIBzD6AzgmQMAnUMCkLliOlAESLRCAgJqm6q/jARiD1/uiHCD8x+QFKLzOjYBxMJk/ON8EQPn3BFD8x+QFWObBEhotEICAmqbqr+MBGIPX+6IcIPzH5AUovM6NgHEwmT843wRA+fcEUPzH5AVY5sESCnoINhp2CiIQgICapuqv4wEYur20BCDBcyiHi9ARMAo4AUBjUMFzWPICEicQgICapuqv4wEYpNfHRiCYuA4o9bCBmgIwngE4DECpDFCYuA5Ymi4aJxCAgJqm6q/jARik18dGIJi4Dij1sIGaAjCeATgMQKkMUJi4DliaLgpfCDUaWwoZEICAmqbqr+MBGP31AyBnKKPWD0ABUGdYAxIeEICAmqbqr+MBGNDfPiDsDCiz5PoBMAFAC1DsDFgpGh4QgICapuqv4wEY0N8+IOwMKLPk+gEwAUALUOwMWCkKiQEIVhqEAQomEICAmqbqr+MBGPLK2yQg2cEHKIWJ35IBMFI4BkC1BlDZwQdYhRgSLBCAgJqm6q/jARju2afeBSDvoZYBKO207fYWMOkMOHtAnYABUO+hlgFY7OADGiwQgICapuqv4wEY7tmn3gUg76GWASjttO32FjDpDDh7QJ2AAVDvoZYBWOzgAwqEBQg4GqMBCi8QgICapuqv4wEY0Mvo6LoLILCeqwgoqqC97KIBMIlbOOoGQNuOB1CwnqsIWJTXGhI2EICAmqbqr+MBGMjoq7CY5QEgv9/gpgEoyobJ+bgZMLadDjjOiAFAl6aOAVC/3+CmAViYz5UEGjYQgICapuqv4wEYyOirsJjlASC/3+CmASjKhsn5uBkwtp0OOM6IAUCXpo4BUL/f4KYBWJjPlQQgAxqYAQouEICAmqbqr+MBGJmApoPfBSDc5ZYEKPjSms1RMNEtOLYDQK7IA1Dc5ZYEWKyvDRIxEICAmqbqr+MBGO6D+MHsciCq8sdTKOf6lIjgDDDckAc4ukRAladHUKryx1NY7rKLAhoxEICAmqbqr+MBGO6D+MHsciCq8sdTKOf6lIjgDDDckAc4ukRAladHUKryx1NY7rKLAiABGpgBCi4QgICapuqv4wEYm/6NgN4FIKKGlgQolLHSvlEwyS04tQNA3McDUKKGlgRY+qwNEjEQgICapuqv4wEYnNyXgthyIKn9uFMokNfv5N0MMLmPBziuREC4mkdQqf24U1iRg4sCGjEQgICapuqv4wEYnNyXgthyIKn9uFMokNfv5N0MMLmPBziuREC4mkdQqf24U1iRg4sCIAIaowEKLxCAgJqm6q/jARjN/8vjuAsgqOCpCCj4i73PogEw+Vo46QZAuY0HUKjgqQhYtNIaEjYQgICapuqv4wEYjfjvx+/kASCfhsOmASjl7sW1tBkw8ZoOOLWIAUDsjI4BUJ+Gw6YBWJTwlAQaNhCAgJqm6q/jARiN+O/H7+QBIJ+Gw6YBKOXuxbW0GTDxmg44tYgBQOyMjgFQn4bDpgFYlPCUBCAECocBCD8aggEKJhCAgJqm6q/jARiU3vosIM6ZCSihn9izATBkOAhA7QdQzpkJWLgdEisQgICapuqv4wEYvOKrzwUg5pmTASiQ9IO7FjDIDDh5QM59UOaZkwFYhtcDGisQgICapuqv4wEYvOKrzwUg5pmTASiQ9IO7FjDIDDh5QM59UOaZkwFYhtcDCocBCE0aggEKJhCAgJqm6q/jARiEwqQjIJ6cByjcsYONATBPOAZAlQZQnpwHWI4XEisQgICapuqv4wEYyajawQUg0LSQASi34sOEFjCpDDh2QJ57UNC0kAFYj84DGisQgICapuqv4wEYyajawQUg0LSQASi34sOEFjCpDDh2QJ57UNC0kAFYj84DCocBCEAaggEKJhCAgJqm6q/jARiZn+MsIOeUCSiYrfqyATBkOAhA6QdQ55QJWKkdEisQgICapuqv4wEYjfOzzAUg8cySASj90qWvFjDBDDh4QI19UPHMkgFYkNUDGisQgICapuqv4wEYjfOzzAUg8cySASj90qWv","b64Record":"CiAIaCocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwqgyBO0pPQBI2Q45Aj9zkXwbND+/bvEj7GRzsJcvbGftnDhW77dmx65rO1Dze0qufGgwI+qzgrAYQ6+yTnQMiDwoJCL6s4KwGEIwLEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQi/rOCsBhCSCxICGAISAhgDGL/emjciAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBhyASAhhvIoAgFjDBDDh4QI19UPHMkgFYkNUDCsgBCEEahAEKJhCAgJqm6q/jARjX9u4sIJmXCSijhqmzATBkOAhA6wdQmZcJWLEdEisQgICapuqv4wEY8uruzQUgkvOSASix5JC1FjDFDDh4QK19UJLzkgFYitYDGisQgICapuqv4wEY8uruzQUgkvOSASix5JC1FjDFDDh4QK19UJLzkgFYitYDIAEaPQoWEICAmqbqr+MBIICgvoGVASijhqmzARIWEICAmqbqr+MBIICA+YXUBCix5JC1FhoJEICAmqbqr+MBIAIKkAIIQhqEAQomEICAmqbqr+MBGNf27iwgmZcJKKOGqbMBMGQ4CEDrB1CZlwlYsR0SKxCAgJqm6q/jARjy6u7NBSCS85IBKLHkkLUWMMUMOHhArX1QkvOSAViK1gMaKxCAgJqm6q/jARjy6u7NBSCS85IBKLHkkLUWMMUMOHhArX1QkvOSAViK1gMgARqEAQomEICAmqbqr+MBGKODtSQg57kHKM36xJEBMFE4BkCuBlDnuQdY7BcSKxCAgJqm6q/jARi7waTYBSCHhJUBKP6T494WMNwMOHpAln9Qh4SVAVjz3AMaKxCAgJqm6q/jARi7waTYBSCHhJUBKP6T494WMNwMOHpAln9Qh4SVAVjz3AMgAgqaAQhEGpUBCi0QgICapuqv4wEY/YikhREgxq6+AyjOjIWORDCLJjjuAkDz/AJQxq6+A1ivlAsSMRCAgJqm6q/jARjRj8HUkAIg3ujlNyjgydHgwQgwuOEEONstQK3OL1De6OU3WOnFsgEaMRCAgJqm6q/jARjRj8HUkAIg3ujlNyjgydHgwQgwuOEEONstQK3OL1De6OU3WOnFsgEKmgEIRRqVAQotEICAmqbqr+MBGNzj+McRINCAzAMo8Zq8mEYwoCc4+QJAxYgDUNCAzANYgsALEjEQgICapuqv4wEYxbuM/5gCIICKwDkokK7Dh+MIMIj0BDiNL0DNiDFQgIrAOViggLgBGjEQgICapuqv4wEYxbuM/5gCIICKwDkokK7Dh+MIMIj0BDiNL0DNiDFQgIrAOViggLgBCocBCD0aggEKJhCAgJqm6q/jARjv3fosIM6ZCSiQntizATBkOAhA7QdQzpkJWLgdEisQgICapuqv4wEY9t2rzwUg5ZmTASj54YO7FjDIDDh5QM59UOWZkwFYhtcDGisQgICapuqv4wEY9t2rzwUg5ZmTASj54YO7FjDIDDh5QM59UOWZkwFYhtcDCocBCD4aggEKJhCAgJqm6q/jARjv3fosIM6ZCSiQntizATBkOAhA7QdQzpkJWLgdEisQgICapuqv4wEY9t2rzwUg5ZmTASj54YO7FjDIDDh5QM59UOWZkwFYhtcDGisQgICapuqv4wEY9t2rzwUg5ZmTASj54YO7FjDIDDh5QM59UOWZkwFYhtcDCocBCDsaggEKJhCAgJqm6q/jARil/qEkIPS1ByjK7viQATBROAZAqwZQ9LUHWOAXEisQgICapuqv4wEY5N2n1QUgkbaUASjQo/HSFjDVDDh6QNR+UJG2lAFY+toDGisQgICapuqv4wEY5N2n1QUgkbaUASjQo/HSFjDVDDh6QNR+UJG2lAFY+toDCocBCDwaggEKJhCAgJqm6q/jARil/qEkIPS1ByjK7viQATBROAZAqwZQ9LUHWOAXEisQgICapuqv4wEY5N2n1QUgkbaUASjQo/HSFjDVDDh6QNR+UJG2lAFY+toDGisQgICapuqv4wEY5N2n1QUgkbaUASjQo/HSFjDVDDh6QNR+UJG2lAFY+toDCocBCE8aggEKJhCAgJqm6q/jARjuzb4kIOK7Byj8oOuRATBSOAZAsAZQ4rsHWPIXEisQgICapuqv4wEYnpXk2QUgo6uVASiyk+HkFjDfDDh6QLh/UKOrlQFY8d0DGisQgICapuqv4wEYnpXk2QUgo6uVASiyk+HkFjDfDDh6QLh/UKOrlQFY8d0DCocBCFAaggEKJhCAgJqm6q/jARjuzb4kIOK7Byj8oOuRATBSOAZAsAZQ4rsHWPIXEisQgICapuqv4wEYnpXk2QUgo6uVASiyk+HkFjDfDDh6QLh/UKOrlQFY8d0DGisQgICapuqv4wEYnpXk2QUgo6uVASiyk+HkFjDfDDh6QLh/UKOrlQFY8d0DCpACCEMahAEKJhCAgJqm6q/jARjX9u4sIJmXCSijhqmzATBkOAhA6wdQmZcJWLEdEisQgICapuqv4wEY8uruzQUgkvOSASix5JC1FjDFDDh4QK19UJLzkgFYitYDGisQgICapuqv4wEY8uruzQUgkvOSASix5JC1FjDFDDh4QK19UJLzkgFYitYDIAEahAEKJhCAgJqm6q/jARijg7UkIOe5ByjN+sSRATBROAZArgZQ57kHWOwXEisQgICapuqv4wEYu8Gk2AUgh4SVASj+k+PeFjDcDDh6QJZ/UIeElQFY89wDGisQgICapuqv4wEYu8Gk2AUgh4SVASj+k+PeFjDcDDh6QJZ/UIeElQFY89wDIAIKXwg6GlsKGRCAgJqm6q/jARiV4gMgYyiMhw9AAVBjWAISHhCAgJqm6q/jARjSojwgqwwowPHwATABQAtQqwxYJxoeEICAmqbqr+MBGNKiPCCrDCjA8fABMAFAC1CrDFgnCiMISxofChkQgICapuqv4wEYzaoDIFcohKkNQAFQV1gCEgAaAAqXAghGGoABCiYQgICapuqv4wEY3MDckAggnPUFKPSuxXMwQTgFQIYFUJz1BVj3EhIqEICAmqbqr+MBGKiOus6iASCoqHYojarrhhIwjAo4YUD7ZFCoqHZYzvoCGioQgICapuqv4wEYqI66zqIBIKiodiiNquuGEjCMCjhhQPtkUKiodljO+gIajwEKKRCAgJqm6q/jARjk6fi9VSCbmT4o7qzkvgkwpwU4M0CKNVCbmT5YhMcBEi8QgICapuqv4wEYz8Pw1q0NIJX42wkomYHX570BMJNqOPsHQL+lCFCV+NsJWM2MHxovEICAmqbqr+MBGM/D8NatDSCV+NsJKJmB1+e9ATCTajj7B0C/pQhQlfjbCVjNjB8gBQqBAQhIGn0KJRCAgJqm6q/jARjTxNYbIPbUBSil0c5uMD44BUDrBFD21AVYkBISKRCAgJqm6q/jARi4yui6AyDgzloo0JTq6Q0w3gc4SkCqTVDgzlpY/KECGikQgICapuqv4wEYuMrougMg4M5aKNCU6ukNMN4HOEpAqk1Q4M5aWPyhAgqHAQhHGoIBCiYQgICapuqv4wEYhq68LSCFpwkoxcPetQEwZjgIQPgHUIWnCVjjHRIrEICAmqbqr+MBGOLgxdcFINXwlAEoz7jo2xYw2gw4ekCGf1DV8JQBWLXcAxorEICAmqbqr+MBGOLgxdcFINXwlAEoz7jo2xYw2gw4ekCGf1DV8JQBWLXcAwpfCEkaWwoZEICAmqbqr+MBGJGhAyBVKJiDDUABUFVYAhIeEICAmqbqr+MBGJeSNCDWCiiCs9ABMAFACVDWClgiGh4QgICapuqv4wEYl5I0INYKKIKz0AEwAUAJUNYKWCIKfQgHGnkKMBCAgJqm6q/jARjN8NK5qAEgw568IiiqlMSgoQUwwfgCOJ8cQI61HVDDnrwiWJWnbhI1EICAmqbqr+MBGM2JrpqHFSCw6MOnBCinxcKIlFQwl4gvOOjDA0Di0dYDULDow6cEWM7y5A0aDhCAgJqm6q/jAUDT+sEFCpgBCAgakwEKLRCAgJqm6q/jARjC/MWKCSDb8u0BKMWytKYkMKYUOMMBQIHLAVDb8u0BWKL5BRIwEICAmqbqr+MBGJvI36iRASCqq94dKNOoxubEBDDnxAI4rhhAirAZUKqr3h1YpJRfGjAQgICapuqv4wEYm8jfqJEBIKqr3h0o06jG5sQEMOfEAjiuGECKsBlQqqveHViklF8KkAEIHhqLAQopEICAmqbqr+MBGIK21LwCIKbmQCjv/s3xCTDEBTg1QKY3UKbmQFiuzwESLhCAgJqm6q/jARid4MbKJyDh5IwIKO7t35meATC8WDjRBkDd9AZQ4eSMCFjc9RkaLhCAgJqm6q/jARid4MbKJyDh5IwIKO7t35meATC8WDjRBkDd9AZQ4eSMCFjc9RkKdQgGGnEKLRCAgJqm6q/jARiK3fy2DCDIyMUCKNed3dYxMOQbOIsCQOmVAlDIyMUCWOiRCBIxEICAmqbqr+MBGJvRy+/GASCAidkoKPba0+uaBjDBvAM4qyFAid0iUICJ2ShYg52CARoNEICAmqbqr+MBQM6LNApdCFQaWQogEICAmqbqr+MBGL7U9QIgu0woxbbVCzAGQEFQu0xY9AESJhCAgJqm6q/jARjkx9ouILXHCSjX6Na6ATBoOAdAkwhQtccJWMoeGg0QgICapuqv4wFAzos0Cl8IERpbChkQgICapuqv4wEY56oEIHIotqkRQAFQclgDEh4QgICapuqv4wEY9KxFIJkOKOSWlQIwAUAMUJkOWC0aHhCAgJqm6q/jARj0rEUgmQ4o5JaVAjABQAxQmQ5YLQqYAQgQGpMBCi0QgICapuqv4wEYhvLL3Akg4df+ASj/+KnuJjDeFTjRAUCq2QFQ4df+AVj/rgYSMBCAgJqm6q/jARjgoL7JmwEgiPzqHyjtj5/l7QQw3tsCOIoaQKeVG1CI/OofWPPvZRowEICAmqbqr+MBGOCgvsmbASCI/OofKO2Pn+XtBDDe2wI4ihpAp5UbUIj86h9Y8+9lCq4BCBIaqQEKNRCAgJqm6q/jARil8JaOzAYghfHdrAEokeDT2a0aMNveDjjAjQFAjbOTAVCF8d2sAVjQ36gEEjcQgICapuqv4wEYy4Tu4sFpIMuQ3ssVKJCCvJrbpQMwruvrATiH2BFAzbG2ElDLkN7LFViC+otFGjcQgICapuqv4wEYy4Tu4sFpIMuQ3ssVKJCCvJrbpQMwruvrATiH2BFAzbG2ElDLkN7LFViC+otFCl8IExpbChkQgICapuqv4wEYiZ4EIG8owfYQQAFQb1gDEh4QgICapuqv4wEYiuFDIO8NKJLojgIwAUAMUO8NWCwaHhCAgJqm6q/jARiK4UMg7w0okuiOAjABQAxQ7w1YLApUCBoaUAoUEICAmqbqr+MBGO1OIBAok7sCUBASGxCAgJqm6q/jARjO7QkgggIorbInQAJQggJYBhobEICAmqbqr+MBGM7tCSCCAiitsidAAlCCAlgGCpoBCCIalQEKLRCAgJqm6q/jARiI84mNFCDyxI4EKPq7+atQMPcsOK8DQKjBA1DyxI4EWPaUDRIxEICAmqbqr+MBGKj9xYWSAyDh4aJSKICv/e7GDDDQggc4s0NAoJpGUOHholJYuaKHAhoxEICAmqbqr+MBGKj9xYWSAyDh4aJSKICv/e7GDDDQggc4s0NAoA==","b64Record":"CiAIaCocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw7JS7IIxlMiiVDTtFb+fqEO6yYnM16VRrOE5+5YYhFZ/Fz8IBnbKTi9S9uEREsYBOGgwI+6zgrAYQ27fbpAEiDwoJCL+s4KwGEJILEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQi/rOCsBhCYCxICGAISAhgDGL/emjciAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBhyASAhhvIoAgmkZQ4eGiUli5oocCCpoBCAkalQEKLRCAgJqm6q/jARi55vjPDSCn7+QCKPbzjbo2MLoeOKQCQMSwAlCn7+QCWP71CBIxEICAmqbqr+MBGI7njP/ZASDv9M0sKN6+3qHnBjCf5wM4xiRAu4gmUO/0zSxY3N+OARoxEICAmqbqr+MBGI7njP/ZASDv9M0sKN6+3qHnBjCf5wM4xiRAu4gmUO/0zSxY3N+OAQqaAQgLGpUBCi0QgICapuqv4wEYkbDc0g0gibjlAijkhpvFNjDAHjilAkCCsQJQibjlAljn9wgSMRCAgJqm6q/jARiJgsar2gEgiYHXLCi/7LDT6AYwg+gDOM0kQJyQJlCJgdcsWOr8jgEaMRCAgJqm6q/jARiJgsar2gEgiYHXLCi/7LDT6AYwg+gDOM0kQJyQJlCJgdcsWOr8jgEKkAEIDBqLAQopEICAmqbqr+MBGIK21LwCIKbmQCjv/s3xCTDEBTg1QKY3UKbmQFiuzwESLhCAgJqm6q/jARid4MbKJyDh5IwIKO7t35meATC8WDjRBkDd9AZQ4eSMCFjc9RkaLhCAgJqm6q/jARid4MbKJyDh5IwIKO7t35meATC8WDjRBkDd9AZQ4eSMCFjc9RkKmgEIChqVAQotEICAmqbqr+MBGLbQ040LIML1ogIo5aD/sSww6hg47gFAoPgBUML1ogJY+KIHEjEQgICapuqv4wEYwMiIkd4BIKyuui0o6o/x5/cGMMDwAzieJUCA5SZQrK66LVjhupEBGjEQgICapuqv4wEYwMiIkd4BIKyuui0o6o/x5/cGMMDwAzieJUCA5SZQrK66LVjhupEBCl8IFxpbChkQgICapuqv4wEYvJ0EIG8ojvQQQAFQb1gDEh4QgICapuqv4wEYvNdDIO0NKN3BjgIwAUAMUO0NWCwaHhCAgJqm6q/jARi810Mg7Q0o3cGOAjABQAxQ7Q1YLApfCBgaWwoZEICAmqbqr+MBGKirBCByKLirEUABUHJYAxIeEICAmqbqr+MBGP20RSCaDiiFt5UCMAFADFCaDlgtGh4QgICapuqv4wEY/bRFIJoOKIW3lQIwAUAMUJoOWC0KmgEIIxqVAQotEICAmqbqr+MBGIHx2aQYIMmS/AQog9LaiGEwpDY4iQRA7J4EUMmS/ARY1fMPEjEQgICapuqv4wEYiZCey4QDIIqpwk8oqaCqi5EMMMbkBjiSQUDA7UNQiqnCT1jQuv4BGjEQgICapuqv4wEYiZCey4QDIIqpwk8oqaCqi5EMMMbkBjiSQUDA7UNQiqnCT1jQuv4BCisIFBonCgsQgICapuqv4wEYARILEICAmqbqr+MBGAEaCxCAgJqm6q/jARgBCisIJBonCgsQgICapuqv4wEYARILEICAmqbqr+MBGAEaCxCAgJqm6q/jARgBCiUIHBohCgkQgICapuqv4wESCRCAgJqm6q/jARoJEICAmqbqr+MBCiUIHRohCgkQgICapuqv4wESCRCAgJqm6q/jARoJEICAmqbqr+MBCl8IGRpbChkQgICapuqv4wEYzaoDIFcohKkNQAFQV1gCEh4QgICapuqv4wEY1ak1IPUKKLyQ1QEwAUAJUPUKWCMaHhCAgJqm6q/jARjVqTUg9QoovJDVATABQAlQ9QpYIxIGCICR0IkGEuNJCo8BCBsaigEKKBCAgJqm6q/jARihlp3ZKiC2iB8omMbg3gQw0wI4GUDBGlC2iB9YtWMSLhCAgJqm6q/jARiWvcf41QYgwKjtBCje+4rnXjCCNTj9A0CYkgRQwKjtBFibxA8aLhCAgJqm6q/jARiWvcf41QYgwKjtBCje+4rnXjCCNTj9A0CYkgRQwKjtBFibxA8KmgEIUhqVAQotEICAmqbqr+MBGOSYypEOIMGm8gIol5e4wDgwzR84rwJA/7sCUMGm8gJY+6AJEjEQgICapuqv4wEY0e/L35oCIJ6C7jkozs/jiOoIMP33BDizL0DnrzFQnoLuOVihk7kBGjEQgICapuqv4wEY0e/L35oCIJ6C7jkozs/jiOoIMP33BDizL0DnrzFQnoLuOVihk7kBCpoBCFEalQEKLRCAgJqm6q/jARjMwpGEDiC0xu8CKIWK24o4MK8fOK0CQNK5AlC0xu8CWJSYCRIxEICAmqbqr+MBGOqz3tKYAiCKgLc5KOTIndbhCDCl8wQ4hi9A7YAxUIqAtzlYmuO3ARoxEICAmqbqr+MBGOqz3tKYAiCKgLc5KOTIndbhCDCl8wQ4hi9A7YAxUIqAtzlYmuO3AQqBAQghGn0KJRCAgJqm6q/jARiOuMwcIIbtBSiJ7qVyMEA4BUD/BFCG7QVY3RISKRCAgJqm6q/jARjZgcfJAyDk0F0oj+HdpA4w/wc4TUDzT1Dk0F1Yz6sCGikQgICapuqv4wEY2YHHyQMg5NBdKI/h3aQOMP8HOE1A809Q5NBdWM+rAgp/CAIaewolEICAmqbqr+MBGKOC4wcgz8sBKKTriB8wETgBQK4BUM/LAViMBRIoEICAmqbqr+MBGMOtvJsBIKToHyjS4bDtBDDcAjgaQJMbUKToH1jnZRooEICAmqbqr+MBGMOtvJsBIKToHyjS4bDtBDDcAjgaQJMbUKToH1jnZQr1BAgBGnYKIhCAgJqm6q/jARjOp84DIM1eKJXetw4wCDgBQFFQzV5YrwISJxCAgJqm6q/jARiVmJ5IIIrkDiic29qgAjChATgMQM8MUIrkDlinLxonEICAmqbqr+MBGJWYnkggiuQOKJzb2qACMKEBOAxAzwxQiuQOWKcvGngKIhCAgJqm6q/jARifo+cDINtjKKjCmw8wCTgBQFVQ22NYvwISJxCAgJqm6q/jARjuwJFMIKHKDyiqrqawAjCqATgNQKYNUKHKD1juMRonEICAmqbqr+MBGO7AkUwgocoPKKquprACMKoBOA1Apg1QocoPWO4xIAEafQolEICAmqbqr+MBGL3Gzgcgt8cBKM6Etx4wETgBQKoBULfHAVj+BBIoEICAmqbqr+MBGMuBo5gBIMKUHyiS3MzgBDDUAjgaQMwaUMKUH1jbYxooEICAmqbqr+MBGMuBo5gBIMKUHyiS3MzgBDDUAjgaQMwaUMKUH1jbYyADGn8KJRCAgJqm6q/jARiy1fEKIJidAij6kcIrMBg4AkDzAVCYnQJYkQcSKRCAgJqm6q/jARjuq+HZASDpxywoiueq5gYw5wM4JUCDJlDpxyxYzI4BGikQgICapuqv4wEY7qvh2QEg6ccsKIrnquYGMOcDOCVAgyZQ6ccsWMyOASACGn8KJRCAgJqm6q/jARjequMVILG6BCjao4RXMDE4BEDnA1CxugRYoQ4SKRCAgJqm6q/jARjW1sKzAyDTj1ko/8nVzA0wzQc4SUCHTFDTj1lYmJ0CGikQgICapuqv4wEY1tbCswMg049ZKP/J1cwNMM0HOElAh0xQ049ZWJidAiAECo4BCAMaiQEKKRCAgJqm6q/jARjj1uXgASCIgC4opZy5ggcw9gM4JkCgJ1CIgC5YmpMBEi0QgICapuqv4wEYrezajBwggIHgBSjOxJOncDDnPjjbBECI9ARQgIHgBVidsxIaLRCAgJqm6q/jARit7NqMHCCAgeAFKM7Ek6dwMOc+ONsEQIj0BFCAgeAFWJ2zEgqaAQgEGpUBCi0QgICapuqv4wEYquCC3BQg19ieBCi6hrznUjCoLji9A0CNzwNQ19ieBFjPyA0SMRCAgJqm6q/jARifhazAywIg84rrQyib58D3rAow+uQFOMk3QMjxOVDziutDWPCJ2QEaMRCAgJqm6q/jARifhazAywIg84rrQyib58D3rAow+uQFOMk3QMjxOVDziutDWPCJ2QEKjgEIBRqJAQopEICAmqbqr+MBGNzmtd8BIIncLSibpfr8BjDzAzglQIInUIncLVinkgESLRCAgJqm6q/jARi569z2GyCUwdsFKKnTpM9vMLY+ONcEQJzwBFCUwdsFWOqkEhotEICAmqbqr+MBGLnr3PYbIJTB2wUoqdOkz28wtj441wRAnPAEUJTB2wVY6qQSCl8IFRpbChkQgICapuqv4wEYrswDIF4o+q8OQAFQXlgCEh4QgICapuqv4wEY5sU5IOMLKKD/5QEwAUAKUOMLWCYaHhCAgJqm6q/jARjmxTkg4wsooP/lATABQApQ4wtYJgpXCA4aUwoXEICAmqbqr+MBGJysASAjKKmwBVAjWAESGxCAgJqm6q/jARjEwxUgtAQomIVWQARQtARYDhobEICAmqbqr+MBGMTDFSC0BCiYhVZABFC0BFgOCl8IDRpbChkQgICapuqv4wEYppkEIG4ouuMQQAFQblgDEh4QgICapuqv4wEY5ZRDIN8NKJ63jAIwAUAMUN8NWCwaHhCAgJqm6q/jARjllEMg3w0onreMAjABQAxQ3w1YLApfCA8aWwoZEICAmqbqr+MBGPbzAyBmKIjOD0ABUGZYAxIeEICAmqbqr+MBGOG+PiDlDCiG4fkBMAFAC1DlDFgpGh4QgICapuqv4wEY4b4+IOUMKIbh+QEwAUALUOUMWCkKVggWGlIKFhCAgJqm6q/jARiTdyAYKJncA1AYWAESGxCAgJqm6q/jARir8g4ghgMok8M7QANQhgNYChobEICAmqbqr+MBGKvyDiCGAyiTwztAA1CGA1gKCpABCDIaiwEKKRCAgJqm6q/jARiWz7i3AyCu9lkonNur3A0w1gc4SkDeTFCu9llY4Z8CEi4QgICapuqv4wEY3PKJ9zYg4eWeCyi7s7vF2wEw43o4mwlA48sJUOHlngtYkvwjGi4QgICapuqv4wEY3PKJ9zYg4eWeCyi7s7vF2wEw43o4mwlA48sJUOHlngtYkvwjCn8IMxp7CiUQgICapuqv4wEY9MPQCSCc/AEohI++JjAWOAJA1wFQnPwBWKcGEigQgICapuqv4wEYxr6ImgEgvcMfKMbw4ecEMNgCOBpA9BpQvcMfWPJkGigQgICapuqv4wEYxr6ImgEgvcMfKMbw4ecEMNgCOBpA9BpQvcMfWPJkCo4BCDQaiQEKKRCAgJqm6q/jARi43ZfiASDApC4o9OyAiAcw+gM4JkDAJ1DApC5YjpQBEi0QgICapuqv4wEYg9f7ohwg/MfkBSi8zo2AcTCZPzjfBED59wRQ/MfkBVjmwRIaLRCAgJqm6q/jARiD1/uiHCD8x+QFKLzOjYBxMJk/ON8EQPn3BFD8x+QFWObBEgp6CDYadgoiEICAmqbqr+MBGLq9tAQgwXMoh4vQETAKOAFAY1DBc1jyAhInEICAmqbqr+MBGKTXx0YgmLgOKPWwgZoCMJ4BOAxAqQxQmLgOWJouGicQgICapuqv4wEYpNfHRiCYuA4o9bCBmgIwngE4DECpDFCYuA5Ymi4KXwg1GlsKGRCAgJqm6q/jARj99QMgZyij1g==","b64Record":"CiAIaCocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwON0Yg/UkYdePXppDX8+bTlWZdWbNYJccbw4UuM84O+yoMCgK+/HxGbTuyZQWQ3DRGgwI+6zgrAYQo/ejpwMiDwoJCL+s4KwGEJgLEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"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","b64Record":"CiAIaCocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw6vgA6vwm+PYPurK/Edg4/dssgEwsuKCTTvV8X6/IBUViDz0Iyx1T0dxgKO6AcYVRGgwI/KzgrAYQ+9XnrgEiDwoJCMCs4KwGEJ4LEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjArOCsBhCkCxICGAISAhgDGPnL7SciAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIB0xMSAhhvIswTGML8xYoJINvy7QEoxbK0piQwphQ4wwFAgcsBUNvy7QFYovkFEjAQgICapuqv4wEYm8jfqJEBIKqr3h0o06jG5sQEMOfEAjiuGECKsBlQqqveHViklF8aMBCAgJqm6q/jARibyN+okQEgqqveHSjTqMbmxAQw58QCOK4YQIqwGVCqq94dWKSUXwqQAQgeGosBCikQgICapuqv4wEYgrbUvAIgpuZAKO/+zfEJMMQFODVApjdQpuZAWK7PARIuEICAmqbqr+MBGJ3gxsonIOHkjAgo7u3fmZ4BMLxYONEGQN30BlDh5IwIWNz1GRouEICAmqbqr+MBGJ3gxsonIOHkjAgo7u3fmZ4BMLxYONEGQN30BlDh5IwIWNz1GQp1CAYacQotEICAmqbqr+MBGIrd/LYMIMjIxQIo153d1jEw5Bs4iwJA6ZUCUMjIxQJY6JEIEjEQgICapuqv4wEYm9HL78YBIICJ2Sgo9trT65oGMMG8AzirIUCJ3SJQgInZKFiDnYIBGg0QgICapuqv4wFAzos0Cl0IVBpZCiAQgICapuqv4wEYvtT1AiC7TCjFttULMAZAQVC7TFj0ARImEICAmqbqr+MBGOTH2i4gtccJKNfo1roBMGg4B0CTCFC1xwlYyh4aDRCAgJqm6q/jAUDOizQKXwgRGlsKGRCAgJqm6q/jARjnqgQgcii2qRFAAVByWAMSHhCAgJqm6q/jARj0rEUgmQ4o5JaVAjABQAxQmQ5YLRoeEICAmqbqr+MBGPSsRSCZDijklpUCMAFADFCZDlgtCpgBCBAakwEKLRCAgJqm6q/jARiG8svcCSDh1/4BKP/4qe4mMN4VONEBQKrZAVDh1/4BWP+uBhIwEICAmqbqr+MBGOCgvsmbASCI/OofKO2Pn+XtBDDe2wI4ihpAp5UbUIj86h9Y8+9lGjAQgICapuqv4wEY4KC+yZsBIIj86h8o7Y+f5e0EMN7bAjiKGkCnlRtQiPzqH1jz72UKrgEIEhqpAQo1EICAmqbqr+MBGKXwlo7MBiCF8d2sASiR4NPZrRow294OOMCNAUCNs5MBUIXx3awBWNDfqAQSNxCAgJqm6q/jARjLhO7iwWkgy5DeyxUokIK8mtulAzCu6+sBOIfYEUDNsbYSUMuQ3ssVWIL6i0UaNxCAgJqm6q/jARjLhO7iwWkgy5DeyxUokIK8mtulAzCu6+sBOIfYEUDNsbYSUMuQ3ssVWIL6i0UKXwgTGlsKGRCAgJqm6q/jARiJngQgbyjB9hBAAVBvWAMSHhCAgJqm6q/jARiK4UMg7w0okuiOAjABQAxQ7w1YLBoeEICAmqbqr+MBGIrhQyDvDSiS6I4CMAFADFDvDVgsClQIGhpQChQQgICapuqv4wEY7U4gECiTuwJQEBIbEICAmqbqr+MBGM7tCSCCAiitsidAAlCCAlgGGhsQgICapuqv4wEYzu0JIIICKK2yJ0ACUIICWAYKmgEIIhqVAQotEICAmqbqr+MBGIjziY0UIPLEjgQo+rv5q1Aw9yw4rwNAqMEDUPLEjgRY9pQNEjEQgICapuqv4wEYqP3FhZIDIOHholIogK/97sYMMNCCBzizQ0CgmkZQ4eGiUli5oocCGjEQgICapuqv4wEYqP3FhZIDIOHholIogK/97sYMMNCCBzizQ0CgmkZQ4eGiUli5oocCCpoBCAkalQEKLRCAgJqm6q/jARi55vjPDSCn7+QCKPbzjbo2MLoeOKQCQMSwAlCn7+QCWP71CBIxEICAmqbqr+MBGI7njP/ZASDv9M0sKN6+3qHnBjCf5wM4xiRAu4gmUO/0zSxY3N+OARoxEICAmqbqr+MBGI7njP/ZASDv9M0sKN6+3qHnBjCf5wM4xiRAu4gmUO/0zSxY3N+OAQqaAQgLGpUBCi0QgICapuqv4wEYkbDc0g0gibjlAijkhpvFNjDAHjilAkCCsQJQibjlAljn9wgSMRCAgJqm6q/jARiJgsar2gEgiYHXLCi/7LDT6AYwg+gDOM0kQJyQJlCJgdcsWOr8jgEaMRCAgJqm6q/jARiJgsar2gEgiYHXLCi/7LDT6AYwg+gDOM0kQJyQJlCJgdcsWOr8jgEKkAEIDBqLAQopEICAmqbqr+MBGIK21LwCIKbmQCjv/s3xCTDEBTg1QKY3UKbmQFiuzwESLhCAgJqm6q/jARid4MbKJyDh5IwIKO7t35meATC8WDjRBkDd9AZQ4eSMCFjc9RkaLhCAgJqm6q/jARid4MbKJyDh5IwIKO7t35meATC8WDjRBkDd9AZQ4eSMCFjc9RkKmgEIChqVAQotEICAmqbqr+MBGLbQ040LIML1ogIo5aD/sSww6hg47gFAoPgBUML1ogJY+KIHEjEQgICapuqv4wEYwMiIkd4BIKyuui0o6o/x5/cGMMDwAzieJUCA5SZQrK66LVjhupEBGjEQgICapuqv4wEYwMiIkd4BIKyuui0o6o/x5/cGMMDwAzieJUCA5SZQrK66LVjhupEBCl8IFxpbChkQgICapuqv4wEYvJ0EIG8ojvQQQAFQb1gDEh4QgICapuqv4wEYvNdDIO0NKN3BjgIwAUAMUO0NWCwaHhCAgJqm6q/jARi810Mg7Q0o3cGOAjABQAxQ7Q1YLApfCBgaWwoZEICAmqbqr+MBGKirBCByKLirEUABUHJYAxIeEICAmqbqr+MBGP20RSCaDiiFt5UCMAFADFCaDlgtGh4QgICapuqv4wEY/bRFIJoOKIW3lQIwAUAMUJoOWC0KmgEIIxqVAQotEICAmqbqr+MBGIHx2aQYIMmS/AQog9LaiGEwpDY4iQRA7J4EUMmS/ARY1fMPEjEQgICapuqv4wEYiZCey4QDIIqpwk8oqaCqi5EMMMbkBjiSQUDA7UNQiqnCT1jQuv4BGjEQgICapuqv4wEYiZCey4QDIIqpwk8oqaCqi5EMMMbkBjiSQUDA7UNQiqnCT1jQuv4BCisIFBonCgsQgICapuqv4wEYARILEICAmqbqr+MBGAEaCxCAgJqm6q/jARgBCisIJBonCgsQgICapuqv4wEYARILEICAmqbqr+MBGAEaCxCAgJqm6q/jARgBCiUIHBohCgkQgICapuqv4wESCRCAgJqm6q/jARoJEICAmqbqr+MBCiUIHRohCgkQgICapuqv4wESCRCAgJqm6q/jARoJEICAmqbqr+MBCl8IGRpbChkQgICapuqv4wEYzaoDIFcohKkNQAFQV1gCEh4QgICapuqv4wEY1ak1IPUKKLyQ1QEwAUAJUPUKWCMaHhCAgJqm6q/jARjVqTUg9QoovJDVATABQAlQ9QpYIxIGCICr7ooG","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwhAa54D58YtObBVBWlr1rKg69ExQQaq5VmesXlpDAHaNGjGIG/ATVwxG1o8YpfyuvGgwI/KzgrAYQo5KAsAMiDwoJCMCs4KwGEKQLEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="}]},"lazyCreateViaEthereumCryptoTransfer":{"placeholderNum":1070,"encodedItems":[{"b64Body":"Cg8KCQjGrOCsBhDDCxICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIPWF9E2wtewFcG9YL6WbpelHErc0x+lrXWcpfVPGzO/REICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGK8IKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjC0Hawzm6zHn6/dlBxIjK4gg3NF4TTQvqcm0Qb9iLQ+9EBbHlT5x/YaWwRX0QIeBIEaDAiCreCsBhCb2+egAiIPCgkIxqzgrAYQwwsSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIfCg0KAhgCEP//663M7JACCg4KAxivCBCAgOytzOyQAg=="},{"b64Body":"ChEKCQjHrOCsBhDFCxICGAIgAVpoCiM6IQN3ongwrAHAVsGXtJfGOzliaaftdnrD6IfpFlQJOyYULUoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiEDd6J4MKwBwFbBl7SXxjs5Ymmn7XZ6w+iH6RZUCTsmFC0=","b64Record":"CgcIFhIDGLAIEjD9UqJSz47lg6UIPkQxukZFhyX/BGGwPmETcsHnhizptlWMN0zgPVQyBiW0Goj3VCcaCwiDreCsBhD6ztdFIhEKCQjHrOCsBhDFCxICGAIgASoUYXV0by1jcmVhdGVkIGFjY291bnRSAKoBFHk7G3CKuLgxD1x7zpAiAw+ywVgf"},{"b64Body":"Cg8KCQjHrOCsBhDFCxICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohA3eieDCsAcBWwZe0l8Y7OWJpp+12esPoh+kWVAk7JhQtEICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwjbLryLZ9yPNIcsgMNvzlnkBAKrWxn8vS6etk/hrOjuXOUxxUuIdwYTuHoUu4I+OsGgsIg63grAYQ+87XRSIPCgkIx6zgrAYQxQsSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxiwCBCAkN/ASg=="},{"b64Body":"ChAKCQjHrOCsBhDLCxIDGK8IEgIYAxjChwUiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpIDuQEKsAEC+K2CASqAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPooAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgwMNQJTNrej49GukB/4CE6nqfTN/rrGzTYhFY5GCRPQAAIDAgKA3rv4Uu+L4NjltJraU37s43cjaInjodxj4L5qZtjVjXKAWIT+FDUcEtsJJdsZ4vzHtlsOWdeyKbbM4eJ/w6kzF2xiAyrXuAQ==","b64Record":"CiAIHiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwPE55VZ74bP9/Ak7Pz3tQFAE9GFw1LAMou8aEVYYSxyDNfSLcSyqEbbjuuSJ6LhXkGgwIg63grAYQ44+EqwIiEAoJCMes4KwGEMsLEgMYrwgqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMILh5wY6JRoQSU5TVUZGSUNJRU5UX0dBUyjAmgxQwJoMWIDKte4BagMYsAhSNAoHCgIYAxCeLgoJCgIYYhCGms0NCggKAxigBhDwfAoICgMYoQYQ8HwKCgoDGK8IEIPCzw2KASAY5DxawblEPOdgfVM5V7SyV4nyMMbqUqidVlnBeOFZmg=="},{"b64Body":"ChIKCQjIrOCsBhDNCxIDGK8IIAFaOAoCMgBKBQiAztoDahRsYXp5LWNyZWF0ZWQgYWNjb3VudJIBFM2t6Pj0a6QH/gITqep9M3+usbNN","b64Record":"CgcIFhIDGLIIEjCcRzfPwU01srObxS/bnlj28dOsmZ2CE3zuSMWr+aa8YM8OnpvxCF8+vnycTfcnDQIaCwiEreCsBhCC05tPIhIKCQjIrOCsBhDNCxIDGK8IIAEqFGxhenktY3JlYXRlZCBhY2NvdW50MInK5RJSAA=="},{"b64Body":"ChAKCQjIrOCsBhDNCxIDGK8IEgIYAxjChwUiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpIDuQEKsAEC+K2CASoBoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPooAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgx6EgJTNrej49GukB/4CE6nqfTN/rrGzTYhFY5GCRPQAAIDAgKCId9DJByP/xDzJJ1ABya/aIrIW0+GVDYTbviZCdlG73KARfE3nYnzkmLztjgEJmaCpPXLr1n4GZhnB8UmQK50d0RiAyrXuAQ==","b64Record":"CiUIFiIDGLIIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBmP+T/2wGbpxs4p2a8ae+AK52zV9u7EkyKMBOeja1va/5AmFRygATlVKt9qsjNJ40aCwiEreCsBhCD05tPIhAKCQjIrOCsBhDNCxIDGK8IKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDC05o2OpsCCgMYsggigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKIDUYVCAiXpYgMq17gFqAxiwCFJOCgcKAhgDEJ4uCgkKAhhiEIb/smwKCAoDGKAGEPB8CggKAxihBhDwfAoKCgMYrwgQg6e1bAoLCgMYsAgQ/5Pr3AMKCwoDGLIIEICU69wDigEg7x5PYVuDfkLs86DEEGZU7WFhr6QzNZ+RNsS6aUmwcbk="}]},"hollowAccountCompletionWithSimultaniousPropertiesUpdate":{"placeholderNum":1075,"encodedItems":[{"b64Body":"Cg8KCQjNrOCsBhCEDBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloyCiISIK1JQqm+IYII/yOKFZ8GS0Mswh+jDvc0inH6A8ebBoO1EIDQ28P0AkoFCIDO2gM=","b64Record":"CiUIFhIDGLQIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBsHVEwbUqcjD+o3BLmFVoXcv6ueZjEAZjQH/x+OOGXwbdaUWYZLHBXDowdIt2YW4IaDAiJreCsBhDblejVAyIPCgkIzazgrAYQhAwSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIbCgsKAhgCEP+ft4fpBQoMCgMYtAgQgKC3h+kF"},{"b64Body":"Cg8KCQjOrOCsBhCGDBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloyCiISIEi2MfBpBb1oM2vHo0TciqxJ4fvY9+9GVJyj+OLXFRSuEIDQ28P0AkoFCIDO2gM=","b64Record":"CiUIFhIDGLUIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDXRcLZ7xlj+ZTJ/anridkJFN68VX4ZCBlHcaik//b2bmPAiOYfrrhaA2id4gq3I1QaDAiKreCsBhD7y4TeASIPCgkIzqzgrAYQhgwSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIbCgsKAhgCEP+ft4fpBQoMCgMYtQgQgKC3h+kF"},{"b64Body":"ChEKCQjOrOCsBhCIDBICGAIgAVo4CgIyAEoFCIDO2gNqFGxhenktY3JlYXRlZCBhY2NvdW50kgEURzjO/AHO0ypF45Pf/Lnith3WGcA=","b64Record":"CgcIFhIDGLYIEjDULynYL7V1TcKEsTgGXuigog5bsoGp+skFqi2m/MUYaIWK/sRoc/dN3lOe3d+N+R8aCwiLreCsBhD67e8CIhEKCQjOrOCsBhCIDBICGAIgASoUbGF6eS1jcmVhdGVkIGFjY291bnRSAA=="},{"b64Body":"Cg8KCQjOrOCsBhCIDBICGAISAhgDGKKmCCICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOci8KLQoeChYiFEc4zvwBztMqReOT3/y54rYd1hnAEICQ38BKCgsKAxi0CBD/j9/ASg==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwjJ+6aQ4YtCA9kSA9rzRndF0Bfg3ut2ux+Uh+hCGs6AH5fI790b6wVjHrrFbXyKZtGgsIi63grAYQ++3vAiIPCgkIzqzgrAYQiAwSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIaCgsKAxi0CBD/j9/ASgoLCgMYtggQgJDfwEo="}]},"contractDeployAfterEthereumTransferLazyCreate":{"placeholderNum":1079,"encodedItems":[{"b64Body":"Cg8KCQjVrOCsBhCxDBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISIM/2mY2orVFNZuDA6vpskJvDKdfnaFcS4bjCzhPi/zeMEICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGLgIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjA5Og0ehSc+wJUPDnURL/1RjAONoELQkB3s3BTfjoF4I3wXZZu+4dvlA4WOL5JA8M8aDAiRreCsBhDjjc2IASIPCgkI1azgrAYQsQwSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIfCg0KAhgCEP//663M7JACCg4KAxi4CBCAgOytzOyQAg=="},{"b64Body":"ChEKCQjVrOCsBhCzDBICGAIgAVpoCiM6IQIUzrXHOIXmrfON4BWDlbBif1sUZXFB10nOeqjNZ3ym60oFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiECFM61xziF5q3zjeAVg5WwYn9bFGVxQddJznqozWd8pus=","b64Record":"CgcIFhIDGLkIEjBSMU8bSWZxjdz4geOoMAJXvDYwzvcf3oLdBPRdqLO0+2zyM4BF0IANJWnTiOYHl9EaDAiRreCsBhDK0M6JAyIRCgkI1azgrAYQswwSAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqART+/ZZ2pezK33kJYRNGW4vF+rIVMw=="},{"b64Body":"Cg8KCQjVrOCsBhCzDBICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohAhTOtcc4heat843gFYOVsGJ/WxRlcUHXSc56qM1nfKbrEICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwXZCq0eXMnAYT4IuqXOGjA0rtcPLMbbOF9elGLvNWT+Hlgm+1vxSKSjtGfYxqqXLiGgwIka3grAYQy9DOiQMiDwoJCNWs4KwGELMMEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SGQoKCgIYAhD/j9/ASgoLCgMYuQgQgJDfwEo="},{"b64Body":"Cg8KCQjWrOCsBhC5DBICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAiS+7qwBhCo9d6QARptCiISIJjvBaE+w3IjOP47jfKxudXTjvags9eEgQOIcKM26N5YCiM6IQKNPxg6Q/hVBXog7fsjoyuCxUagHlReZx832ldIZeULXQoiEiBHNAmXLhpYQyvai+JzGk4T8u/Pvd/dqxKHKKsLB09bmSIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGLoIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBWLEwIy9nSJ877kXh1zba4MwtBW3vkQn+r5obG0NMOLRqIMvRgT4713ov3ZFnVAcMaDAiSreCsBhCLiPWRASIPCgkI1qzgrAYQuQwSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjWrOCsBhC9DBICGAISAhgDGIydjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxi6CCKAIDYwODA2MDQwNTI2MDAwNjA0MDUxNjEwMDEyOTA2MTAwYzA1NjViNjA0MDUxODA5MTAzOTA2MDAwZjA4MDE1ODAxNTYxMDAyZTU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDkwNTA4MDYwMDA4MDYwMDI4MTEwNjEwMDQ2NTc2MTAwNDU2MTAwY2M1NjViNWIwMTYwMDA2MTAxMDAwYTgxNTQ4MTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMTkxNjkwODM3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjAyMTc5MDU1NTA3ZjhmNWZkNmE3OGFjODU2ZGMyZDYyMmFiMGRiNjI2Y2Y5MTljMTkxMTEzM2Q0YjAzODE3MTUzNGVhNDc3ZTVkMTU2MDQwNTE2MTAwYjI5MDYxMDE1ODU2NWI2MDQwNTE4MDkxMDM5MGExNTA2MTAxNzg1NjViNjBmNzgwNjEwN2ZjODMzOTAxOTA1NjViN2Y0ZTQ4N2I3MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjAwMDUyNjAzMjYwMDQ1MjYwMjQ2MDAwZmQ1YjYwMDA4MjgyNTI2MDIwODIwMTkwNTA5MjkxNTA1MDU2NWI3ZjQzNzI2NTYxNzQ2NTY0MjA2NjY5NzI3Mzc0MjA2MzY4Njk2YzY0MjA2MzZmNmU3NDcyNjE2Mzc0MDAwMDAwMDA2MDAwODIwMTUyNTA1NjViNjAwMDYxMDE0MjYwMWM4MzYxMDBmYjU2NWI5MTUwNjEwMTRkODI2MTAxMGM1NjViNjAyMDgyMDE5MDUwOTE5MDUwNTY1YjYwMDA2MDIwODIwMTkwNTA4MTgxMDM2MDAwODMwMTUyNjEwMTcxODE2MTAxMzU1NjViOTA1MDkxOTA1MDU2NWI2MTA2NzU4MDYxMDE4NzYwMDAzOTYwMDBmM2ZlNjA4MDYwNDA1MjYwMDQzNjEwNjEwMDRlNTc2MDAwMzU2MGUwMWM4MDYzMDQxOWVjYTUxNDYxMDA1YTU3ODA2MzVlMDFlYjVhMTQ2MTAwOTc1NzgwNjM2ODk2ZmFiZjE0NjEwMGMyNTc4MDYzNzk5OGExYzQxNDYxMDBlZDU3ODA2MzgwNzA0NTBmMTQ2MTAxMTg1NzYxMDA1NTU2NWIzNjYxMDA1NTU3MDA1YjYwMDA4MGZkNWIzNDgwMTU2MTAwNjY1NzYwMDA4MGZkNWI1MDYxMDA4MTYwMDQ4MDM2MDM4MTAxOTA2MTAwN2M5MTkwNjEwMzkzNTY1YjYxMDE0MzU2NWI2MDQwNTE2MTAwOGU5MTkwNjEwNDAxNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjM0ODAxNTYxMDBhMzU3NjAwMDgwZmQ1YjUwNjEwMGFjNjEwMmJjNTY1YjYwNDA1MTYxMDBiOTkxOTA2MTA0MDE1NjViNjA0MDUxODA5MTAzOTBmMzViMzQ4MDE1NjEwMGNlNTc2MDAwODBmZDViNTA2MTAwZDc2MTAyYzQ1NjViNjA0MDUxNjEwMGU0OTE5MDYxMDQyYjU2NWI2MDQwNTE4MDkxMDM5MGYzNWIzNDgwMTU2MTAwZjk1NzYwMDA4MGZkNWI1MDYxMDEwMjYxMDMxODU2NWI2MDQwNTE2MTAxMGY5MTkwNjEwNDgxNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjM0ODAxNTYxMDEyNDU3NjAwMDgwZmQ1YjUwNjEwMTJkNjEwMzQzNTY1YjYwNDA1MTYxMDEzYTkxOTA2MTA0MmI1NjViNjA0MDUxODA5MTAzOTBmMzViNjAwMDYwNDA1MTYxMDE1MTkwNjEwMzRjNTY1YjYwNDA1MTgwOTEwMzkwNjAwMGYwODAxNTgwMTU2MTAxNmQ1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA2MDAwNjAwMTYwMDI4MTEwNjEwMTgzNTc2MTAxODI2MTA0OWM1NjViNWIwMTYwMDA2MTAxMDAwYTgxNTQ4MTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMTkxNjkwODM3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjAyMTc5MDU1NTA3ZjhmNWZkNmE3OGFjODU2ZGMyZDYyMmFiMGRiNjI2Y2Y5MTljMTkxMTEzM2Q0YjAzODE3MTUzNGVhNDc3ZTVkMTU2MDQwNTE2MTAxZWY5MDYxMDUyODU2NWI2MDQwNTE4MDkxMDM5MGExNjAwMDgyMTExNTYxMDI3ZTU3NjAwMDYwMDE2MDAyODExMDYxMDIxNTU3NjEwMjE0NjEwNDljNTY1YjViMDE2MDAwOTA1NDkwNjEwMTAwMGE5MDA0NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYxMDhmYzgzOTA4MTE1MDI5MDYwNDA1MTYwMDA2MDQwNTE4MDgzMDM4MTg1ODg4OGYxOTM1MDUwNTA1MDE1ODAxNTYxMDI3YzU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDViNjAwMDYwMDE2MDAyODExMDYxMDI5MzU3NjEwMjkyNjEwNDljNTY1YjViMDE2MDAwOTA1NDkwNjEwMTAwMGE5MDA0NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY5MDUwOTE5MDUwNTY1YjYwMDAzMzkwNTA5MDU2NWI2MDAwODA2MDAxNjAwMjgxMTA2MTAyZGE1NzYxMDJkOTYxMDQ5YzU2NWI1YjAxNjAwMDkwNTQ5MDYxMDEwMDBhOTAwNDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTYzMTkwNTA5MDU2NWI2MDAwODAzNTdmZmZmZmZmZmYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE2OTA1MDkwNTY1YjYwMDA2MDA0OTA1MDkwNTY1YjYwZjc4MDYxMDU0OTgzMzkwMTkwNTY1YjYwMDA4MGZkNWI2MDAwODE5MDUwOTE5MDUwNTY1YjYxMDM3MDgxNjEwMzVkNTY1YjgxMTQ2MTAzN2I1NzYwMDA4MGZkNWI1MDU2NWI2MDAwODEzNTkwNTA2MTAzOGQ4MTYxMDM2NzU2NWI5MjkxNTA1MDU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTAzYTk1NzYxMDNhODYxMDM1ODU2NWI1YjYwMDA2MTAzYjc4NDgyODUwMTYxMDM3ZTU2NWI5MTUwNTA5MjkxNTA1MDU2NWI2MDAwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIxNjkwNTA5MTkwNTA1NjViNjAwMDYxMDNlYjgyNjEwM2MwNTY1YjkwNTA5MTkwNTA1NjViNjEwM2ZiODE2MTAzZTA1NjViODI1MjUwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDYxMDQxNjYwMDA4MzAxODQ2MTAzZjI1NjViOTI5MTUwNTA1NjViNjEwNDI1ODE2MTAzNWQ1NjViODI1MjUwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDYxMDQ0MDYwMDA4MzAxODQ2MTA0MWM1NjViOTI5MTUwNTA1NjViNjAwMDdmZmZmZmZmZmYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgyMTY5MDUwOTE5MDUwNTY1YjYxMDQ3YjgxNjEwNDQ2NTY1YjgyNTI1MDUwNTY1YjYwMDA2MDIwODIwMTkwNTA2MTA0OTY2MDAwODMwMTg0NjEwNDcyNTY1YjkyOTE1MDUwNTY1YjdmNGU0ODdiNzEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYwMDA1MjYwMzI2MDA0NTI2MDI0NjAwMGZkNWI2MDAwODI4MjUyNjAyMDgyMDE5MDUwOTI5MTUwNTA1NjViN2Y0MzcyNjU2MTc0NjU2NDIwNzM2NTYzNmY2ZTY0MjA2MzY4Njk2YzY0MjA2MzZmNmU3NDcyNjE2Mzc0MDAwMDAwNjAwMDgyMDE1MjUwNTY1YjYwMDA2MTA1MTI2MDFkODM2MTA0Y2I1NjViOTE1MDYxMDUxZDgyNjEwNGRjNTY1YjYwMjA4MjAxOTA1MDkxOTA1MDU2NWI2MDAwNjAyMDgyMDE5MDUwODE4MTAzNjAwMDgzMDE1MjYxMDU0MTgxNjEwNTA1NTY1YjkwNTA5MTkwNTA1NmZlNjA4MDYwNDA1MjM0ODAxNTYxMDAxMDU3NjAwMDgwZmQ1YjUwNjBkODgwNjEwMDFmNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzY2MDZkNTczMDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2MzM3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjdmZGRmMjUyYWQxYmUyYzg5YjY5YzJiMDY4ZmMzNzhkYWE5NTJiYTdmMTYzYzRhMTE2MjhmNTVhNGRmNTIzYjNlZjM0NjA0MDUxNjA2MzkxOTA2MDg5NTY1YjYwNDA1MTgwOTEwMzkwYTMwMDViNjAwMDgwZmQ1YjYwMDA4MTkwNTA5MTkwNTA1NjViNjA4MzgxNjA3MjU2NWI4MjUyNTA1MDU2NWI2MDAwNjAyMDgyMDE5MDUwNjA5YzYwMDA4MzAxODQ2MDdjNTY1YjkyOTE1MDUwNTZmZWEyNjQ2OTcwNjY3MzU4MjIxMjIwOWZlYmJjYTI0NGI4NTQ2N2VjODY1OGZjYzI0NDMxNTZkZDRiMTY1Zjg3NjUzZWJhNmZiOGZkYWRlYTdiZDg3YzY0NzM2ZjZjNjM0MzAwMDgxMTAwMzNhMjY0Njk3MDY2NzM1ODIyMTIyMDVhNTY4MTlkYmQ3ODgzNmRkZWYwMmI1YmIxYTIxOTRhYWE1MDk3NDhkYTllZThkMWI2MTY3NmZkNGU4MjM0OTE2NDczNmY2YzYzNDMwMDA4MTEwMDMzNjA4MDYwNDA=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw0q2aMVNJERPRkiEasYpWS4UHfWOgRH7S8x7mtyubeIYdXm8m9HCVaAWNSYxP3aJ8GgwIkq3grAYQy+unkwMiDwoJCNas4KwGEL0MEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjXrOCsBhDDDBICGAISAhgDGOve/y4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIB7gMSAxi6CCLmAzUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MGQ4ODA2MTAwMWY2MDAwMzk2MDAwZjNmZTYwODA2MDQwNTIzNjYwNmQ1NzMwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTYzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2N2ZkZGYyNTJhZDFiZTJjODliNjljMmIwNjhmYzM3OGRhYTk1MmJhN2YxNjNjNGExMTYyOGY1NWE0ZGY1MjNiM2VmMzQ2MDQwNTE2MDYzOTE5MDYwODk1NjViNjA0MDUxODA5MTAzOTBhMzAwNWI2MDAwODBmZDViNjAwMDgxOTA1MDkxOTA1MDU2NWI2MDgzODE2MDcyNTY1YjgyNTI1MDUwNTY1YjYwMDA2MDIwODIwMTkwNTA2MDljNjAwMDgzMDE4NDYwN2M1NjViOTI5MTUwNTA1NmZlYTI2NDY5NzA2NjczNTgyMjEyMjA5ZmViYmNhMjQ0Yjg1NDY3ZWM4NjU4ZmNjMjQ0MzE1NmRkNGIxNjVmODc2NTNlYmE2ZmI4ZmRhZGVhN2JkODdjNjQ3MzZmNmM2MzQzMDAwODExMDAzMw==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwXk5rx8DgKa1IHcNjxZcW0Vs8B55Wenw8ZxMi+vQckU3vZB43iHiPfqkpeiqC1rt5GgwIk63grAYQ08WRmwEiDwoJCNes4KwGEMMMEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"ChIKCQjXrOCsBhDFDBIDGLgIIAFaOAoCMgBKBQiAztoDahRsYXp5LWNyZWF0ZWQgYWNjb3VudJIBFGG2ufbvkmnyZA2dcyiLSC6t5mNi","b64Record":"CgcIFhIDGLsIEjA4ZrxRz3z8gqTNzy4pvM+T6nRPqw1xxKY4euYRPjB1IAJ8Wea8keUB/6dPaKoSxP4aDAiTreCsBhCat/OdAyISCgkI16zgrAYQxQwSAxi4CCABKhRsYXp5LWNyZWF0ZWQgYWNjb3VudDCJyuUSUgA="},{"b64Body":"ChAKCQjXrOCsBhDFDBIDGLgIEgIYAxjChwUiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpIDuQEKsAEC+K2CASqAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPooAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgx6EgJRhtrn275Jp8mQNnXMoi0gureZjYohFY5GCRPQAAIDAAaDPWgINe9wuXXkYU5HjGfkk4pTrJiGMQUxutRQqmztS3KBR9eD6MJFJ1TRk0JkVjSLSN8zG9pOakU4qQcXBR7XqwxiAyrXuAQ==","b64Record":"CiUIFiIDGLsIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDT0DsbkQDoWfbrR/kogkk24cteYBr9wgmh2BZm75mZkmWTc7QSUVMBzlRJmLy1WJsaDAiTreCsBhCbt/OdAyIQCgkI16zgrAYQxQwSAxi4CCogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wwtOaNjqbAgoDGLsIIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACiA1GFQgIl6WIDKte4BagMYuQhSTgoHCgIYAxCeLgoJCgIYYhCG/7JsCggKAxigBhDwfAoICgMYoQYQ8HwKCgoDGLgIEIOntWwKCwoDGLkIEP+T69wDCgsKAxi7CBCAlOvcA4oBIGdeGALBy8KbCCeVx8iKFLF42NckvyIYCLDb9l5wCJkN"},{"b64Body":"Cg8KCQjYrOCsBhDLDBICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRwoDGLoIGiISIAskw14jaWmtjMTgMkPFMux2SoztWfcjicMxFoyNkulhIJChDygUQgUIgM7aA1IAWgBqC2NlbGxhciBkb29y","b64Record":"CiUIFiIDGLwIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjC1Jbiwl29fj12tLiHtBeJewFzZV04QAeGqrFPoaNqbHVhtFTzNjFPkUuVMazJIANAaDAiUreCsBhCLsdikASIPCgkI2KzgrAYQywwSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDAr+tbQscSCgMYvAgS9QxggGBAUmAENhBhAE5XYAA1YOAcgGMEGeylFGEAWleAY14B61oUYQCXV4BjaJb6vxRhAMJXgGN5mKHEFGEA7VeAY4BwRQ8UYQEYV2EAVVZbNmEAVVcAW2AAgP1bNIAVYQBmV2AAgP1bUGEAgWAEgDYDgQGQYQB8kZBhA5NWW2EBQ1ZbYEBRYQCOkZBhBAFWW2BAUYCRA5DzWzSAFWEAo1dgAID9W1BhAKxhArxWW2BAUWEAuZGQYQQBVltgQFGAkQOQ81s0gBVhAM5XYACA/VtQYQDXYQLEVltgQFFhAOSRkGEEK1ZbYEBRgJEDkPNbNIAVYQD5V2AAgP1bUGEBAmEDGFZbYEBRYQEPkZBhBIFWW2BAUYCRA5DzWzSAFWEBJFdgAID9W1BhAS1hA0NWW2BAUWEBOpGQYQQrVltgQFGAkQOQ81tgAGBAUWEBUZBhA0xWW2BAUYCRA5BgAPCAFYAVYQFtVz1gAIA+PWAA/VtQYABgAWACgRBhAYNXYQGCYQScVltbAWAAYQEACoFUgXP//////////////////////////wIZFpCDc///////////////////////////FgIXkFVQf49f1qeKyFbcLWIqsNtibPkZwZERM9SwOBcVNOpHfl0VYEBRYQHvkGEFKFZbYEBRgJEDkKFgAIIRFWECfldgAGABYAKBEGECFVdhAhRhBJxWW1sBYACQVJBhAQAKkARz//////////////////////////8Wc///////////////////////////FmEI/IOQgRUCkGBAUWAAYEBRgIMDgYWIiPGTUFBQUBWAFWECfFc9YACAPj1gAP1bUFtgAGABYAKBEGECk1dhApJhBJxWW1sBYACQVJBhAQAKkARz//////////////////////////8WkFCRkFBWW2AAM5BQkFZbYACAYAFgAoEQYQLaV2EC2WEEnFZbWwFgAJBUkGEBAAqQBHP//////////////////////////xZz//////////////////////////8WMZBQkFZbYACANX//////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABaQUJBWW2AAYASQUJBWW2D3gGEFSYM5AZBWW2AAgP1bYACBkFCRkFBWW2EDcIFhA11WW4EUYQN7V2AAgP1bUFZbYACBNZBQYQONgWEDZ1ZbkpFQUFZbYABgIIKEAxIVYQOpV2EDqGEDWFZbW2AAYQO3hIKFAWEDflZbkVBQkpFQUFZbYABz//////////////////////////+CFpBQkZBQVltgAGED64JhA8BWW5BQkZBQVlthA/uBYQPgVluCUlBQVltgAGAgggGQUGEEFmAAgwGEYQPyVluSkVBQVlthBCWBYQNdVluCUlBQVltgAGAgggGQUGEEQGAAgwGEYQQcVluSkVBQVltgAH//////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIIWkFCRkFBWW2EEe4FhBEZWW4JSUFBWW2AAYCCCAZBQYQSWYACDAYRhBHJWW5KRUFBWW39OSHtxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAUmAyYARSYCRgAP1bYACCglJgIIIBkFCSkVBQVlt/Q3JlYXRlZCBzZWNvbmQgY2hpbGQgY29udHJhY3QAAABgAIIBUlBWW2AAYQUSYB2DYQTLVluRUGEFHYJhBNxWW2AgggGQUJGQUFZbYABgIIIBkFCBgQNgAIMBUmEFQYFhBQVWW5BQkZBQVv5ggGBAUjSAFWEAEFdgAID9W1Bg2IBhAB9gADlgAPP+YIBgQFI2YG1XMHP//////////////////////////xYzc///////////////////////////Fn/d8lKtG+LIm2nCsGj8N42qlSun8WPEoRYo9VpN9SOz7zRgQFFgY5GQYIlWW2BAUYCRA5CjAFtgAID9W2AAgZBQkZBQVltgg4FgclZbglJQUFZbYABgIIIBkFBgnGAAgwGEYHxWW5KRUFBW/qJkaXBmc1giEiCf67yiRLhUZ+yGWPzCRDFW3UsWX4dlPrpvuP2t6nvYfGRzb2xjQwAIEQAzomRpcGZzWCISIFpWgZ29eINt3vArW7GiGUqqUJdI2p7o0bYWdv1OgjSRZHNvbGNDAAgRADMigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAKMCaDDKMAwoDGLwIEoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAABogj1/Wp4rIVtwtYiqw22Js+RnBkREz1LA4FxU06kd+XRUiYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABxDcmVhdGVkIGZpcnN0IGNoaWxkIGNvbnRyYWN0AAAAADoDGLwIOgMYvQhKFgoUAAAAAAAAAAAAAAAAAAAAAAAABDxyBwoDGLwIEAJyBwoDGL0IEAFSIQoKCgIYAhCn39a3AQoKCgIYYhCA39a3AQoHCgMYvAgQKA=="},{"b64Body":"ChEKCQjYrOCsBhDLDBICGAIgAUI4GiISIAskw14jaWmtjMTgMkPFMux2SoztWfcjicMxFoyNkulhQgUIgM7aA2oLY2VsbGFyIGRvb3I=","b64Record":"CgcIFiIDGL0IEjAf6tXTP7Arv4tI4Pd3QbWHdpDospo8bRVgrNUeb3c5X3hC5RLtpV9M5ICg5tUVUogaDAiUreCsBhCMsdikASIRCgkI2KzgrAYQywwSAhgCIAFCHQoDGL0IShYKFDkUGZ6yvTHAp7on2rKhgGo6aCcCUgB6DAiUreCsBhCLsdikAQ=="}]},"contractCallAfterEthereumTransferLazyCreate":{"placeholderNum":1086,"encodedItems":[{"b64Body":"Cg8KCQjerOCsBhDqDBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlo0CiISICGVfGIrRYM/4zgO5d2dqo7AljHjzhsIPi5xDuxnnc1qEICA9pamtogBSgUIgM7aAw==","b64Record":"CiUIFhIDGL8IKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjC0M+Cc8vwUbC2aof6M817YuPN9qdRHMpBHcs0ynXEEj7suWRO5shaaCfDJN4oOHMUaCwiareCsBhDbruZOIg8KCQjerOCsBhDqDBICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUh8KDQoCGAIQ///rrczskAIKDgoDGL8IEICA7K3M7JAC"},{"b64Body":"ChEKCQjerOCsBhDsDBICGAIgAVpoCiM6IQIvHbRzFOccI25C8lGspq7izaoyDhxC91/NUkmitT/2dEoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiECLx20cxTnHCNuQvJRrKau4s2qMg4cQvdfzVJJorU/9nQ=","b64Record":"CgcIFhIDGMAIEjBU4IksNAnHm5kVzv1d1eQaCMetChjTgzroHY8HKUvEg2hBIcblFlhNXkga8jraXe4aDAiareCsBhCCsZK0AiIRCgkI3qzgrAYQ7AwSAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARR6Y57RwNISoext7Gds1ptfC8hpTA=="},{"b64Body":"Cg8KCQjerOCsBhDsDBICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohAi8dtHMU5xwjbkLyUaymruLNqjIOHEL3X81SSaK1P/Z0EICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwLT0hHiYxWLTNP7df9FrPstZ0ZO69+9o9c4HYACp9CVUqgpxELAjxY9BaGeD7otpVGgwImq3grAYQg7GStAIiDwoJCN6s4KwGEOwMEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SGQoKCgIYAhD/j9/ASgoLCgMYwAgQgJDfwEo="},{"b64Body":"Cg8KCQjfrOCsBhDyDBICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjgESCwib+7qwBhCgy8ZFGm0KIhIg3p0m6eDSueQNsiYhTdQnL2znWIkv7ty3g8elCO6wm1IKIzohAmo2l9ZNiA9axlt1cGExQqInpI3H1Ag8Hpup2G1Frz0xCiISILCOdgl6a7D8DGw5yyTWlF7y6QLmrLskgp5Wm6MYkVBIIgxIZWxsbyBXb3JsZCEqADIA","b64Record":"CiUIFhoDGMEIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBIDG3rXzYw/YntxVuv8YJ9c28hJQXjoeYSg/XIIeEpNgEQr9S5eYRDDElTNBM+ytAaCwibreCsBhDDh65YIg8KCQjfrOCsBhDyDBICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgA="},{"b64Body":"Cg8KCQjfrOCsBhD2DBICGAISAhgDGIydjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxjBCCKAIDYwODA2MDQwNTI2MDAwNjA0MDUxNjEwMDEyOTA2MTAwYzA1NjViNjA0MDUxODA5MTAzOTA2MDAwZjA4MDE1ODAxNTYxMDAyZTU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDkwNTA4MDYwMDA4MDYwMDI4MTEwNjEwMDQ2NTc2MTAwNDU2MTAwY2M1NjViNWIwMTYwMDA2MTAxMDAwYTgxNTQ4MTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMTkxNjkwODM3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjAyMTc5MDU1NTA3ZjhmNWZkNmE3OGFjODU2ZGMyZDYyMmFiMGRiNjI2Y2Y5MTljMTkxMTEzM2Q0YjAzODE3MTUzNGVhNDc3ZTVkMTU2MDQwNTE2MTAwYjI5MDYxMDE1ODU2NWI2MDQwNTE4MDkxMDM5MGExNTA2MTAxNzg1NjViNjBmNzgwNjEwN2ZjODMzOTAxOTA1NjViN2Y0ZTQ4N2I3MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjAwMDUyNjAzMjYwMDQ1MjYwMjQ2MDAwZmQ1YjYwMDA4MjgyNTI2MDIwODIwMTkwNTA5MjkxNTA1MDU2NWI3ZjQzNzI2NTYxNzQ2NTY0MjA2NjY5NzI3Mzc0MjA2MzY4Njk2YzY0MjA2MzZmNmU3NDcyNjE2Mzc0MDAwMDAwMDA2MDAwODIwMTUyNTA1NjViNjAwMDYxMDE0MjYwMWM4MzYxMDBmYjU2NWI5MTUwNjEwMTRkODI2MTAxMGM1NjViNjAyMDgyMDE5MDUwOTE5MDUwNTY1YjYwMDA2MDIwODIwMTkwNTA4MTgxMDM2MDAwODMwMTUyNjEwMTcxODE2MTAxMzU1NjViOTA1MDkxOTA1MDU2NWI2MTA2NzU4MDYxMDE4NzYwMDAzOTYwMDBmM2ZlNjA4MDYwNDA1MjYwMDQzNjEwNjEwMDRlNTc2MDAwMzU2MGUwMWM4MDYzMDQxOWVjYTUxNDYxMDA1YTU3ODA2MzVlMDFlYjVhMTQ2MTAwOTc1NzgwNjM2ODk2ZmFiZjE0NjEwMGMyNTc4MDYzNzk5OGExYzQxNDYxMDBlZDU3ODA2MzgwNzA0NTBmMTQ2MTAxMTg1NzYxMDA1NTU2NWIzNjYxMDA1NTU3MDA1YjYwMDA4MGZkNWIzNDgwMTU2MTAwNjY1NzYwMDA4MGZkNWI1MDYxMDA4MTYwMDQ4MDM2MDM4MTAxOTA2MTAwN2M5MTkwNjEwMzkzNTY1YjYxMDE0MzU2NWI2MDQwNTE2MTAwOGU5MTkwNjEwNDAxNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjM0ODAxNTYxMDBhMzU3NjAwMDgwZmQ1YjUwNjEwMGFjNjEwMmJjNTY1YjYwNDA1MTYxMDBiOTkxOTA2MTA0MDE1NjViNjA0MDUxODA5MTAzOTBmMzViMzQ4MDE1NjEwMGNlNTc2MDAwODBmZDViNTA2MTAwZDc2MTAyYzQ1NjViNjA0MDUxNjEwMGU0OTE5MDYxMDQyYjU2NWI2MDQwNTE4MDkxMDM5MGYzNWIzNDgwMTU2MTAwZjk1NzYwMDA4MGZkNWI1MDYxMDEwMjYxMDMxODU2NWI2MDQwNTE2MTAxMGY5MTkwNjEwNDgxNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjM0ODAxNTYxMDEyNDU3NjAwMDgwZmQ1YjUwNjEwMTJkNjEwMzQzNTY1YjYwNDA1MTYxMDEzYTkxOTA2MTA0MmI1NjViNjA0MDUxODA5MTAzOTBmMzViNjAwMDYwNDA1MTYxMDE1MTkwNjEwMzRjNTY1YjYwNDA1MTgwOTEwMzkwNjAwMGYwODAxNTgwMTU2MTAxNmQ1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA2MDAwNjAwMTYwMDI4MTEwNjEwMTgzNTc2MTAxODI2MTA0OWM1NjViNWIwMTYwMDA2MTAxMDAwYTgxNTQ4MTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMTkxNjkwODM3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjAyMTc5MDU1NTA3ZjhmNWZkNmE3OGFjODU2ZGMyZDYyMmFiMGRiNjI2Y2Y5MTljMTkxMTEzM2Q0YjAzODE3MTUzNGVhNDc3ZTVkMTU2MDQwNTE2MTAxZWY5MDYxMDUyODU2NWI2MDQwNTE4MDkxMDM5MGExNjAwMDgyMTExNTYxMDI3ZTU3NjAwMDYwMDE2MDAyODExMDYxMDIxNTU3NjEwMjE0NjEwNDljNTY1YjViMDE2MDAwOTA1NDkwNjEwMTAwMGE5MDA0NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYxMDhmYzgzOTA4MTE1MDI5MDYwNDA1MTYwMDA2MDQwNTE4MDgzMDM4MTg1ODg4OGYxOTM1MDUwNTA1MDE1ODAxNTYxMDI3YzU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDViNjAwMDYwMDE2MDAyODExMDYxMDI5MzU3NjEwMjkyNjEwNDljNTY1YjViMDE2MDAwOTA1NDkwNjEwMTAwMGE5MDA0NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY5MDUwOTE5MDUwNTY1YjYwMDAzMzkwNTA5MDU2NWI2MDAwODA2MDAxNjAwMjgxMTA2MTAyZGE1NzYxMDJkOTYxMDQ5YzU2NWI1YjAxNjAwMDkwNTQ5MDYxMDEwMDBhOTAwNDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTYzMTkwNTA5MDU2NWI2MDAwODAzNTdmZmZmZmZmZmYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE2OTA1MDkwNTY1YjYwMDA2MDA0OTA1MDkwNTY1YjYwZjc4MDYxMDU0OTgzMzkwMTkwNTY1YjYwMDA4MGZkNWI2MDAwODE5MDUwOTE5MDUwNTY1YjYxMDM3MDgxNjEwMzVkNTY1YjgxMTQ2MTAzN2I1NzYwMDA4MGZkNWI1MDU2NWI2MDAwODEzNTkwNTA2MTAzOGQ4MTYxMDM2NzU2NWI5MjkxNTA1MDU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTAzYTk1NzYxMDNhODYxMDM1ODU2NWI1YjYwMDA2MTAzYjc4NDgyODUwMTYxMDM3ZTU2NWI5MTUwNTA5MjkxNTA1MDU2NWI2MDAwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIxNjkwNTA5MTkwNTA1NjViNjAwMDYxMDNlYjgyNjEwM2MwNTY1YjkwNTA5MTkwNTA1NjViNjEwM2ZiODE2MTAzZTA1NjViODI1MjUwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDYxMDQxNjYwMDA4MzAxODQ2MTAzZjI1NjViOTI5MTUwNTA1NjViNjEwNDI1ODE2MTAzNWQ1NjViODI1MjUwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDYxMDQ0MDYwMDA4MzAxODQ2MTA0MWM1NjViOTI5MTUwNTA1NjViNjAwMDdmZmZmZmZmZmYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgyMTY5MDUwOTE5MDUwNTY1YjYxMDQ3YjgxNjEwNDQ2NTY1YjgyNTI1MDUwNTY1YjYwMDA2MDIwODIwMTkwNTA2MTA0OTY2MDAwODMwMTg0NjEwNDcyNTY1YjkyOTE1MDUwNTY1YjdmNGU0ODdiNzEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYwMDA1MjYwMzI2MDA0NTI2MDI0NjAwMGZkNWI2MDAwODI4MjUyNjAyMDgyMDE5MDUwOTI5MTUwNTA1NjViN2Y0MzcyNjU2MTc0NjU2NDIwNzM2NTYzNmY2ZTY0MjA2MzY4Njk2YzY0MjA2MzZmNmU3NDcyNjE2Mzc0MDAwMDAwNjAwMDgyMDE1MjUwNTY1YjYwMDA2MTA1MTI2MDFkODM2MTA0Y2I1NjViOTE1MDYxMDUxZDgyNjEwNGRjNTY1YjYwMjA4MjAxOTA1MDkxOTA1MDU2NWI2MDAwNjAyMDgyMDE5MDUwODE4MTAzNjAwMDgzMDE1MjYxMDU0MTgxNjEwNTA1NTY1YjkwNTA5MTkwNTA1NmZlNjA4MDYwNDA1MjM0ODAxNTYxMDAxMDU3NjAwMDgwZmQ1YjUwNjBkODgwNjEwMDFmNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyMzY2MDZkNTczMDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2MzM3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjdmZGRmMjUyYWQxYmUyYzg5YjY5YzJiMDY4ZmMzNzhkYWE5NTJiYTdmMTYzYzRhMTE2MjhmNTVhNGRmNTIzYjNlZjM0NjA0MDUxNjA2MzkxOTA2MDg5NTY1YjYwNDA1MTgwOTEwMzkwYTMwMDViNjAwMDgwZmQ1YjYwMDA4MTkwNTA5MTkwNTA1NjViNjA4MzgxNjA3MjU2NWI4MjUyNTA1MDU2NWI2MDAwNjAyMDgyMDE5MDUwNjA5YzYwMDA4MzAxODQ2MDdjNTY1YjkyOTE1MDUwNTZmZWEyNjQ2OTcwNjY3MzU4MjIxMjIwOWZlYmJjYTI0NGI4NTQ2N2VjODY1OGZjYzI0NDMxNTZkZDRiMTY1Zjg3NjUzZWJhNmZiOGZkYWRlYTdiZDg3YzY0NzM2ZjZjNjM0MzAwMDgxMTAwMzNhMjY0Njk3MDY2NzM1ODIyMTIyMDVhNTY4MTlkYmQ3ODgzNmRkZWYwMmI1YmIxYTIxOTRhYWE1MDk3NDhkYTllZThkMWI2MTY3NmZkNGU4MjM0OTE2NDczNmY2YzYzNDMwMDA4MTEwMDMzNjA4MDYwNDA=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwKYsKNmJQL8CePzFKrzhZCkFQ/zACyyyGlaBapleJDpvvGpCmkKAznPHbQm6R/+z4GgwIm63grAYQq4icvQIiDwoJCN+s4KwGEPYMEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjgrOCsBhD8DBICGAISAhgDGOve/y4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIB7gMSAxjBCCLmAzUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MGQ4ODA2MTAwMWY2MDAwMzk2MDAwZjNmZTYwODA2MDQwNTIzNjYwNmQ1NzMwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTYzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2N2ZkZGYyNTJhZDFiZTJjODliNjljMmIwNjhmYzM3OGRhYTk1MmJhN2YxNjNjNGExMTYyOGY1NWE0ZGY1MjNiM2VmMzQ2MDQwNTE2MDYzOTE5MDYwODk1NjViNjA0MDUxODA5MTAzOTBhMzAwNWI2MDAwODBmZDViNjAwMDgxOTA1MDkxOTA1MDU2NWI2MDgzODE2MDcyNTY1YjgyNTI1MDUwNTY1YjYwMDA2MDIwODIwMTkwNTA2MDljNjAwMDgzMDE4NDYwN2M1NjViOTI5MTUwNTA1NmZlYTI2NDY5NzA2NjczNTgyMjEyMjA5ZmViYmNhMjQ0Yjg1NDY3ZWM4NjU4ZmNjMjQ0MzE1NmRkNGIxNjVmODc2NTNlYmE2ZmI4ZmRhZGVhN2JkODdjNjQ3MzZmNmM2MzQzMDAwODExMDAzMw==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwptshciT1/5+x1pzE+djBqrcM0clrcuuQHGLrSKM5FfKFkHQjRoxDYXXSTyJhKAvXGgsInK3grAYQ293EYiIPCgkI4KzgrAYQ/AwSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjgrOCsBhD+DBICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRwoDGMEIGiISIHhvPCbYv3NZSswvz6tmbV0/WcbxhDKvU3y0SjbpqSxFIJChDygUQgUIgM7aA1IAWgBqC2NlbGxhciBkb29y","b64Record":"CiUIFiIDGMIIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDKFvc4yba2yNHQEekNeIqh9vPLJ+E0Q6hy6nPDTY2v102AWTFRpdt82sdKP8RhuiAaDAicreCsBhCbkeHGAiIPCgkI4KzgrAYQ/gwSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDAr+tbQscSCgMYwggS9QxggGBAUmAENhBhAE5XYAA1YOAcgGMEGeylFGEAWleAY14B61oUYQCXV4BjaJb6vxRhAMJXgGN5mKHEFGEA7VeAY4BwRQ8UYQEYV2EAVVZbNmEAVVcAW2AAgP1bNIAVYQBmV2AAgP1bUGEAgWAEgDYDgQGQYQB8kZBhA5NWW2EBQ1ZbYEBRYQCOkZBhBAFWW2BAUYCRA5DzWzSAFWEAo1dgAID9W1BhAKxhArxWW2BAUWEAuZGQYQQBVltgQFGAkQOQ81s0gBVhAM5XYACA/VtQYQDXYQLEVltgQFFhAOSRkGEEK1ZbYEBRgJEDkPNbNIAVYQD5V2AAgP1bUGEBAmEDGFZbYEBRYQEPkZBhBIFWW2BAUYCRA5DzWzSAFWEBJFdgAID9W1BhAS1hA0NWW2BAUWEBOpGQYQQrVltgQFGAkQOQ81tgAGBAUWEBUZBhA0xWW2BAUYCRA5BgAPCAFYAVYQFtVz1gAIA+PWAA/VtQYABgAWACgRBhAYNXYQGCYQScVltbAWAAYQEACoFUgXP//////////////////////////wIZFpCDc///////////////////////////FgIXkFVQf49f1qeKyFbcLWIqsNtibPkZwZERM9SwOBcVNOpHfl0VYEBRYQHvkGEFKFZbYEBRgJEDkKFgAIIRFWECfldgAGABYAKBEGECFVdhAhRhBJxWW1sBYACQVJBhAQAKkARz//////////////////////////8Wc///////////////////////////FmEI/IOQgRUCkGBAUWAAYEBRgIMDgYWIiPGTUFBQUBWAFWECfFc9YACAPj1gAP1bUFtgAGABYAKBEGECk1dhApJhBJxWW1sBYACQVJBhAQAKkARz//////////////////////////8WkFCRkFBWW2AAM5BQkFZbYACAYAFgAoEQYQLaV2EC2WEEnFZbWwFgAJBUkGEBAAqQBHP//////////////////////////xZz//////////////////////////8WMZBQkFZbYACANX//////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABaQUJBWW2AAYASQUJBWW2D3gGEFSYM5AZBWW2AAgP1bYACBkFCRkFBWW2EDcIFhA11WW4EUYQN7V2AAgP1bUFZbYACBNZBQYQONgWEDZ1ZbkpFQUFZbYABgIIKEAxIVYQOpV2EDqGEDWFZbW2AAYQO3hIKFAWEDflZbkVBQkpFQUFZbYABz//////////////////////////+CFpBQkZBQVltgAGED64JhA8BWW5BQkZBQVlthA/uBYQPgVluCUlBQVltgAGAgggGQUGEEFmAAgwGEYQPyVluSkVBQVlthBCWBYQNdVluCUlBQVltgAGAgggGQUGEEQGAAgwGEYQQcVluSkVBQVltgAH//////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIIWkFCRkFBWW2EEe4FhBEZWW4JSUFBWW2AAYCCCAZBQYQSWYACDAYRhBHJWW5KRUFBWW39OSHtxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAUmAyYARSYCRgAP1bYACCglJgIIIBkFCSkVBQVlt/Q3JlYXRlZCBzZWNvbmQgY2hpbGQgY29udHJhY3QAAABgAIIBUlBWW2AAYQUSYB2DYQTLVluRUGEFHYJhBNxWW2AgggGQUJGQUFZbYABgIIIBkFCBgQNgAIMBUmEFQYFhBQVWW5BQkZBQVv5ggGBAUjSAFWEAEFdgAID9W1Bg2IBhAB9gADlgAPP+YIBgQFI2YG1XMHP//////////////////////////xYzc///////////////////////////Fn/d8lKtG+LIm2nCsGj8N42qlSun8WPEoRYo9VpN9SOz7zRgQFFgY5GQYIlWW2BAUYCRA5CjAFtgAID9W2AAgZBQkZBQVltgg4FgclZbglJQUFZbYABgIIIBkFBgnGAAgwGEYHxWW5KRUFBW/qJkaXBmc1giEiCf67yiRLhUZ+yGWPzCRDFW3UsWX4dlPrpvuP2t6nvYfGRzb2xjQwAIEQAzomRpcGZzWCISIFpWgZ29eINt3vArW7GiGUqqUJdI2p7o0bYWdv1OgjSRZHNvbGNDAAgRADMigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAKMCaDDKMAwoDGMIIEoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAABogj1/Wp4rIVtwtYiqw22Js+RnBkREz1LA4FxU06kd+XRUiYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABxDcmVhdGVkIGZpcnN0IGNoaWxkIGNvbnRyYWN0AAAAADoDGMIIOgMYwwhKFgoUAAAAAAAAAAAAAAAAAAAAAAAABEJyBwoDGMIIEAJyBwoDGMMIEAFSIQoKCgIYAhCn39a3AQoKCgIYYhCA39a3AQoHCgMYwggQKA=="},{"b64Body":"ChEKCQjgrOCsBhD+DBICGAIgAUI4GiISIHhvPCbYv3NZSswvz6tmbV0/WcbxhDKvU3y0SjbpqSxFQgUIgM7aA2oLY2VsbGFyIGRvb3I=","b64Record":"CgcIFiIDGMMIEjAklatFp2u5NOoWFVThNDH683jpzVFYRTWag8kzeQ6ObjEyXenqsPKDltd2saLqt7MaDAicreCsBhCckeHGAiIRCgkI4KzgrAYQ/gwSAhgCIAFCHQoDGMMIShYKFCP1STVLdEJp5YC3A5EKSSyvyoREUgB6DAicreCsBhCbkeHGAg=="},{"b64Body":"ChIKCQjhrOCsBhCADRIDGL8IIAFaOAoCMgBKBQiAztoDahRsYXp5LWNyZWF0ZWQgYWNjb3VudJIBFEG+lKmWU/bCpwp8D0+8Q9BS4tNR","b64Record":"CgcIFhIDGMQIEjCRAjLZ5eNKiAwaGy8yPMQs4SumQnch7UIkXjhK9BsQ0BsJvB2wKugArRrflnGpMMoaCwidreCsBhCyt8hrIhIKCQjhrOCsBhCADRIDGL8IIAEqFGxhenktY3JlYXRlZCBhY2NvdW50MInK5RJSAA=="},{"b64Body":"ChAKCQjhrOCsBhCADRIDGL8IEgIYAxjChwUiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpIDuQEKsAEC+K2CASqAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPooAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgx6EgJRBvpSpllP2wqcKfA9PvEPQUuLTUYhFY5GCRPQAAIDAAaA8y9EqxHych9LeIuITjazfJHh9zWtVmgiZ+Nvc3aZFO6BpbLXBDDIidKfmN/sE2WZdnE0IWtS5YRYuk+Jh2YYCChiAyrXuAQ==","b64Record":"CiUIFiIDGMQIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDN6lvG/uWfcj+doiLUMpUvSQRhxplH67k2wOuBWIrqM3vqSHSzeLsWOrS2GP58+FEaCwidreCsBhCzt8hrIhAKCQjhrOCsBhCADRIDGL8IKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDC05o2OpsCCgMYxAgigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKIDUYVCAiXpYgMq17gFqAxjACFJOCgcKAhgDEJ4uCgkKAhhiEIb/smwKCAoDGKAGEPB8CggKAxihBhDwfAoKCgMYvwgQg6e1bAoLCgMYwAgQ/5Pr3AMKCwoDGMQIEICU69wDigEgMQifgE5J/9emYPSZfN9KTIV+6U8uTxNeem+jK/0TlL8="},{"b64Body":"Cg8KCQjhrOCsBhCGDRICGAISAhgDGIuc2Q8iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjovCgMYwggQoI0GIiQEGeylAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAo=","b64Record":"CiUIFiIDGMIIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDkGR+690oON+1nMqC2OND/Jc5lL49k/H3qOC8MFNxU12CXV6NSgqCVahLsI6oILjkaDAidreCsBhD7yvjsAiIPCgkI4azgrAYQhg0SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDGq/oCOucICgMYwggSIAAAAAAAAAAAAAAAAGKsUFhUiBSBhTipCMR3tvKCJEaxIoACAAAAAABEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAQAAAACAAAAAAAAAAAAAAAAAAAAEACAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAACAgAAAAAAAAAAQAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAACiKqgUyjAMKAxjCCBKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAaII9f1qeKyFbcLWIqsNtibPkZwZERM9SwOBcVNOpHfl0VImAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdQ3JlYXRlZCBzZWNvbmQgY2hpbGQgY29udHJhY3QAAAAykAMKAxjFCBKAAgAAAAAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAgAAAAAAAAAAAAAAAAAAABAAgAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaIN3yUq0b4sibacKwaPw3jaqVK6fxY8ShFij1Wk31I7PvGiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQhogAAAAAAAAAAAAAAAAYqxQWFSIFIGFOKkIxHe28oIkRrEiIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKOgMYxQhyBwoDGMIIEANyBwoDGMUIEAFSKAoJCgIYAhCL1/QFCgkKAhhiEIzX9AUKBwoDGMIIEBMKBwoDGMUIEBQ="},{"b64Body":"ChEKCQjhrOCsBhCGDRICGAIgAUI4GiISIHhvPCbYv3NZSswvz6tmbV0/WcbxhDKvU3y0SjbpqSxFQgUIgM7aA2oLY2VsbGFyIGRvb3I=","b64Record":"CgcIFiIDGMUIEjCLiWorMt46VyanWfxrlbXQXuKaCVp1caZUbUn5Hj0bB3lWvbXwywTB39C7NmEncBwaDAidreCsBhD8yvjsAiIRCgkI4azgrAYQhg0SAhgCIAFCHQoDGMUIShYKFGKsUFhUiBSBhTipCMR3tvKCJEaxUgB6DAidreCsBhD7yvjsAg=="}]},"AutoAssociationPropertiesWorkAsExpected":{"placeholderNum":1094,"encodedItems":[{"b64Body":"Cg8KCQjnrOCsBhClDRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloyCiISIB65LXQbOv5+b9iQMFcztO9Z7l0wmP/EblriNJvJ1UmSEICglKWNHUoFCIDO2gM=","b64Record":"CiUIFhIDGMcIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAzl2ywEHBRei88XZcxRWRTVTroMhWF5x2tzuYnlay2tSgRgiJm+m8YdqYGRNJHuCQaDAijreCsBhCLg4n7ASIPCgkI56zgrAYQpQ0SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIbCgsKAhgCEP+/qMqaOgoMCgMYxwgQgMCoypo6"},{"b64Body":"Cg8KCQjnrOCsBhCnDRICGAISAhgDGK/07xQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlovCiISIG547i+YreD/ggwYc72Leq7DngCKqol4tjyQw3knV0aJEICglKWNHUoCCAE=","b64Record":"CiUIFhIDGMgIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAcFE4aGamToIZZ9RzYsd6wyP+qd33tQ2d2MtxRvDuxLA8V+PAv2WHW1IEP2A6jrukaCwikreCsBhDb2ZUDIg8KCQjnrOCsBhCnDRICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUhsKCwoCGAIQ/7+oypo6CgwKAxjICBCAwKjKmjo="},{"b64Body":"ChAKCQjprOCsBhCzDRIDGMgIEgIYAxjkwaAHIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo56CRIDGMgIegIICg==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwlYaiJa589mfC1DBNxhPD++zrsdRz+7MhpZMv6RNxwophH6WnlItlsW51cJljhv2vGgsIpa3grAYQu5TaDCIQCgkI6azgrAYQsw0SAxjICCogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4w5MGgB1I4CgcKAhgDEJxxCgkKAhhiEIz1zAsKCgoDGKAGENDOuQEKCgoDGKEGENDOuQEKCgoDGMgIEMeDwQ4="}]},"autoAssociationWorksForContracts":{"placeholderNum":1097,"encodedItems":[{"b64Body":"Cg8KCQjurOCsBhDSDRICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAiq+7qwBhCY55yLAxptCiISIEPYb9Nrw2arHT0VisAh/Tk3pG00gRi+F4IUYgSMTw5fCiM6IQI7oJZ+U/bItJr31J0DTA/KgoTUElCNN8WN/Mro1gpQNgoiEiDdy7M+Y+EFSgqpfkdLtc9Jkg9eSMsBKcoxp1hz0KOc/CIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGMoIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCHKAuzYr4qw6Nt7L5y8uM5l2ZG2SMxpCMAPpChSS0vlBRKcdUhMM9pQGFxMIvi4voaDAiqreCsBhDj5qOUAyIPCgkI7qzgrAYQ0g0SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjvrOCsBhDWDRICGAISAhgDGIudjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxjKCCKAIDYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMDg1MDgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyNjAwNDM2MTA2MTAwMzQ1NzYwMDAzNTYwZTAxYzgwNjMzODI3MmQzOTE0NjEwMDM5NTc4MDYzYTE1MDQyNzUxNDYxMDA1NTU3ODA2M2Q0NjYxMGMzMTQ2MTAwNzE1NzViNjAwMDgwZmQ1YjYxMDA1MzYwMDQ4MDM2MDM4MTAxOTA2MTAwNGU5MTkwNjEwMzFlNTY1YjYxMDA4ZDU2NWIwMDViNjEwMDZmNjAwNDgwMzYwMzgxMDE5MDYxMDA2YTkxOTA2MTAzMWU1NjViNjEwMTgwNTY1YjAwNWI2MTAwOGI2MDA0ODAzNjAzODEwMTkwNjEwMDg2OTE5MDYxMDMxZTU2NWI2MTAyNWY1NjViMDA1YjYwMDA2MGZmNjBmODFiMzA4MzYwNDA1MTgwNjAyMDAxNjEwMGE2OTA2MTAyY2M1NjViNjAyMDgyMDE4MTAzODI1MjYwMWYxOTYwMWY4MjAxMTY2MDQwNTI1MDYwNDA1MTYwMjAwMTYxMDBjYTkxOTA2MTAzYzU1NjViNjA0MDUxNjAyMDgxODMwMzAzODE1MjkwNjA0MDUyODA1MTkwNjAyMDAxMjA2MDQwNTE2MDIwMDE2MTAwZjM5NDkzOTI5MTkwNjEwNGM0NTY1YjYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjgwNTE5MDYwMjAwMTIwNjAwMDFjOTA1MDYwMDA4MjYwNjQ2MDQwNTE2MTAxMWY5MDYxMDJjYzU2NWI4MjkwNjA0MDUxODA5MTAzOTA4M2Y1OTA1MDkwNTA4MDE1ODAxNTYxMDE0MDU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDkwNTA4MTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ODE3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjE0NjEwMTdiNTc2MDAwODBmZDViNTA1MDUwNTY1YjMwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2M2Q0NjYxMGMzNjA2NDgzNjA0MDUxODM2M2ZmZmZmZmZmMTY2MGUwMWI4MTUyNjAwNDAxNjEwMWJiOTE5MDYxMDUyMTU2NWI2MDAwNjA0MDUxODA4MzAzODE4NTg4ODAzYjE1ODAxNTYxMDFkNDU3NjAwMDgwZmQ1YjUwNWFmMTkzNTA1MDUwNTA4MDE1NjEwMWU2NTc1MDYwMDE1YjYxMDIyOTU3NjEwMWYyNjEwNTQ5NTY1YjgwNjMwOGMzNzlhMDE0MTU2MTAyMTg1NzUwNjEwMjA3NjEwNWRjNTY1YjgwNjEwMjEyNTc1MDYxMDIxYTU2NWI1MDYxMDIyNDU2NWI1MDViM2Q2MDAwODAzZTNkNjAwMGZkNWI2MTAyMmE1NjViNWI4MDYwNjQ2MDQwNTE2MTAyMzk5MDYxMDJjYzU2NWI4MjkwNjA0MDUxODA5MTAzOTA4M2Y1OTA1MDkwNTA4MDE1ODAxNTYxMDI1YTU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTA1NjViODA2MDY0NjA0MDUxNjEwMjZlOTA2MTAyY2M1NjViODI5MDYwNDA1MTgwOTEwMzkwODNmNTkwNTA5MDUwODAxNTgwMTU2MTAyOGY1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDYwNDA1MTdmMDhjMzc5YTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgxNTI2MDA0MDE2MTAyYzM5MDYxMDZjZjU2NWI2MDQwNTE4MDkxMDM5MGZkNWI2MTAxMmI4MDYxMDZmMDgzMzkwMTkwNTY1YjYwMDA2MDQwNTE5MDUwOTA1NjViNjAwMDgwZmQ1YjYwMDA4MTkwNTA5MTkwNTA1NjViNjEwMmZiODE2MTAyZTg1NjViODExNDYxMDMwNjU3NjAwMDgwZmQ1YjUwNTY1YjYwMDA4MTM1OTA1MDYxMDMxODgxNjEwMmYyNTY1YjkyOTE1MDUwNTY1YjYwMDA2MDIwODI4NDAzMTIxNTYxMDMzNDU3NjEwMzMzNjEwMmUzNTY1YjViNjAwMDYxMDM0Mjg0ODI4NTAxNjEwMzA5NTY1YjkxNTA1MDkyOTE1MDUwNTY1YjYwMDA4MTUxOTA1MDkxOTA1MDU2NWI2MDAwODE5MDUwOTI5MTUwNTA1NjViNjAwMDViODM4MTEwMTU2MTAzN2Y1NzgwODIwMTUxODE4NDAxNTI2MDIwODEwMTkwNTA2MTAzNjQ1NjViODM4MTExMTU2MTAzOGU1NzYwMDA4NDg0MDE1MjViNTA1MDUwNTA1NjViNjAwMDYxMDM5ZjgyNjEwMzRiNTY1YjYxMDNhOTgxODU2MTAzNTY1NjViOTM1MDYxMDNiOTgxODU2MDIwODYwMTYxMDM2MTU2NWI4MDg0MDE5MTUwNTA5MjkxNTA1MDU2NWI2MDAwNjEwM2QxODI4NDYxMDM5NDU2NWI5MTUwODE5MDUwOTI5MTUwNTA1NjViNjAwMDdmZmYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgyMTY5MDUwOTE5MDUwNTY1YjYwMDA4MTkwNTA5MTkwNTA1NjViNjEwNDIzNjEwNDFlODI2MTAzZGM1NjViNjEwNDA4NTY1YjgyNTI1MDUwNTY1YjYwMDA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MjE2OTA1MDkxOTA1MDU2NWI2MDAwNjEwNDU0ODI2MTA0Mjk1NjViOTA1MDkxOTA1MDU2NWI2MDAwODE2MDYwMWI5MDUwOTE5MDUwNTY1YjYwMDA2MTA0NzM4MjYxMDQ1YjU2NWI5MDUwOTE5MDUwNTY1YjYwMDA2MTA0ODU4MjYxMDQ2ODU2NWI5MDUwOTE5MDUwNTY1YjYxMDQ5ZDYxMDQ5ODgyNjEwNDQ5NTY1YjYxMDQ3YTU2NWI4MjUyNTA1MDU2NWI2MDAwODE5MDUwOTE5MDUwNTY1YjYxMDRiZTYxMDRiOTgyNjEwMmU4NTY1YjYxMDRhMzU2NWI4MjUyNTA1MDU2NWI2MDAwNjEwNGQwODI4NzYxMDQxMjU2NWI2MDAxODIwMTkxNTA2MTA0ZTA4Mjg2NjEwNDhjNTY1YjYwMTQ4MjAxOTE1MDYxMDRmMDgyODU2MTA0YWQ1NjViNjAyMDgyMDE5MTUwNjEwNTAwODI4NDYxMDRhZDU2NWI2MDIwODIwMTkxNTA4MTkwNTA5NTk0NTA1MDUwNTA1MDU2NWI2MTA1MWI4MTYxMDJlODU2NWI4MjUyNTA1MDU2NWI2MDAwNjAyMDgyMDE5MDUwNjEwNTM2NjAwMDgzMDE4NDYxMDUxMjU2NWI5MjkxNTA1MDU2NWI2MDAwODE2MGUwMWM5MDUwOTE5MDUwNTY1YjYwMDA2MDAzM2QxMTE1NjEwNTY4NTc2MDA0NjAwMDgwM2U2MTA1NjU2MDAwNTE2MTA1M2M1NjViOTA1MDViOTA1NjViNjAwMDYwMWYxOTYwMWY4MzAxMTY5MDUwOTE5MDUwNTY1YjdmNGU0ODdiNzEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYwMDA1MjYwNDE2MDA0NTI2MDI0NjAwMGZkNWI2MTA1YjQ4MjYxMDU2YjU2NWI4MTAxODE4MTEwNjdmZmZmZmZmZmZmZmZmZmZmODIxMTE3MTU2MTA1ZDM1NzYxMDVkMjYxMDU3YzU2NWI1YjgwNjA0MDUyNTA1MDUwNTY1YjYwMDA2MDQ0M2QxMDE1NjEwNWVjNTc2MTA2NmY1NjViNjEwNWY0NjEwMmQ5NTY1YjYwMDQzZDAzNjAwNDgyM2U4MDUxM2Q2MDI0ODIwMTExNjdmZmZmZmZmZmZmZmZmZmZmODIxMTE3MTU2MTA2MWM1NzUwNTA2MTA2NmY1NjViODA4MjAxODA1MTY3ZmZmZmZmZmZmZmZmZmZmZjgxMTExNTYxMDYzYTU3NTA1MDUwNTA2MTA2NmY1NjViODA2MDIwODMwMTAxNjAwNDNkMDM4NTAxODExMTE1NjEwNjU3NTc1MDUwNTA1MDUwNjEwNjZmNTY1YjYxMDY2NjgyNjAyMDAxODUwMTg2NjEwNWFiNTY1YjgyOTU1MDUwNTA1MDUwNTA1YjkwNTY1YjYwMDA4MjgyNTI2MDIwODIwMTkwNTA5MjkxNTA1MDU2NWI3ZjRlNGY1MDQ1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MDAwODIwMTUyNTA1NjViNjAwMDYxMDZiOTYwMDQ4MzYxMDY3MjU2NWI5MTUwNjEwNmM0ODI2MTA2ODM1NjViNjAyMDgyMDE5MDUwOTE5MDUwNTY1YjYwMDA2MDIwODIwMTkwNTA4MTgxMDM2MDAwODMwMTUyNjEwNmU4ODE2MTA2YWM1NjViOTA1MDkxOTA1MDU2ZmU2MDgwNjA0MDUyNjEwMTE4ODA2MTAwMTM2MDAwMzk2MDAwZjNmZTYwODA2MDQwNTIzNDgwMTU2MDBmNTc2MDAwODBmZDViNTA2MDA0MzYxMDYwMjg1NzYwMDAzNTYwZTAxYzgwNjNhODkwMDBjODE0NjAyZDU3NWI2MDAwODBmZDViNjA0MzYwMDQ4MDM2MDM4MTAxOTA2MDNmOTE5MDYwYmE1NjViNjA0NTU2NWIwMDViODA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNmZmNWI2MDAwODBmZDViNjAwMDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgyMTY5MDUwOTE5MDUwNTY1YjYwMDA2MDhjODI2MDYzNTY1YjkwNTA5MTkwNTA1NjViNjA5YTgxNjA4MzU2NWI4MTE0NjBhNDU3NjAwMDgwZmQ1YjUwNTY1YjYwMDA4MTM1OTA1MDYwYjQ4MTYwOTM1NjViOTI5MTUwNTA1NjViNjAwMDYwMjA4Mjg0MDMxMjE1NjBjZDU3NjBjYzYwNWU1NjViNWI2MDAwNjBkOTg0ODI4NTAxNjBhNzU2NWI5MTUwNTA=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwqY4iIFcMvT49zDFPaPqJ71GJ0ZL48LByAhh4+ZSKPYbt/t/XKcBlOXlj6Mk117ynGgwIq63grAYQk+y/uAEiDwoJCO+s4KwGENYNEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjvrOCsBhDcDRICGAISAhgDGLrR7C0iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIB6AESAxjKCCLgATkyOTE1MDUwNTZmZWEyNjQ2OTcwNjY3MzU4MjIxMjIwNTA3NDA2MTAyMmUwZTY2ZTc0NzM1ZTk0NWY0ODU1ODU0ZDg5OTBiYWI0N2ZiZmM2MmI4NzE3ZjZjNzMyNDMxMzY0NzM2ZjZjNjM0MzAwMDgwYzAwMzNhMjY0Njk3MDY2NzM1ODIyMTIyMGVmYjAzOGVhMGM0NmMxNWFlMGEyOTg1MDZiZjgyYTQ5MzQ2YWEyYTRjNWNiZTYyMjJiNDhlMjkxYjFkMjg2ZWE2NDczNmY2YzYzNDMwMDA4MGMwMDMz","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwI5iZm17rbbMzjxNQipKtpOd9NPHEaXoDyJGf9X87/LRNQDWMntNvVSyYE1snfq+4GgwIq63grAYQg6XVnAMiDwoJCO+s4KwGENwNEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjwrOCsBhDeDRICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRwoDGMoIGiISINECvx/GOQXpvWliL7zCyWb/NMDHCR3wSVM43kJ0TXxPIJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcnAC","b64Record":"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"},{"b64Body":"Cg8KCQjwrOCsBhDgDRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIC3wdc+ZpAVcj9ThOjIYyDXpGFecYIKaH3lhGQMgvSOTEIDIr6AlSgUIgM7aAw==","b64Record":"CiUIFhIDGMwIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBklZGgw0FrFxBRhBThpVdKAUwIng5e9sAAn/d91m6Sy7Y+PXP339qJ2ZRXO9vCtMUaDAisreCsBhCjtpKmAyIPCgkI8KzgrAYQ4A0SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxjMCBCAkN/ASg=="},{"b64Body":"Cg8KCQjxrOCsBhDiDRICGAISAhgDGKWr3ugCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAS8KBnRva2VuQRIIWE5XVVdNUUIg//////////9/KgMYzAhqDAit+7qwBhDAksawAQ==","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGM0IEjCnDPrzuFBhg1HIOtvUM6IDPOfeJtesuSIyO3m+op5f+8SEEZaOYc8TcaRlQFiIdLMaDAitreCsBhC7nY7LASIPCgkI8azgrAYQ4g0SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWhcKAxjNCBIQCgMYzAgQ/v//////////AXIKCgMYzQgSAxjMCA=="},{"b64Body":"Cg8KCQjxrOCsBhDkDRICGAISAhgDGKWr3ugCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAS8KBnRva2VuQhIIQ1BIT0xDUkUg//////////9/KgMYzAhqDAit+7qwBhCA042hAw==","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGM4IEjC471JDXxK7buCRsjSeoGd3q0lHSzCaPlPMQykaOH39jhH9IoSJtVPJfCM2wTH5S5IaDAitreCsBhCD+6awAyIPCgkI8azgrAYQ5A0SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAWhcKAxjOCBIQCgMYzAgQ/v//////////AXIKCgMYzggSAxjMCA=="},{"b64Body":"Cg8KCQjyrOCsBhDmDRICGAISAhgDGP7v5OgCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAUwKBnVuaXF1ZRIIWU5FTFBYUFMqAxjMCFIiEiCw8VsmIBXL+PbLSNYSCpwFTl79Ciqna06IZ2+lsG1QYGoMCK77urAGEODvzLUBiAEB","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGM8IEjCrLBHvdKoXxQ9367MgQ6m30FA2Lz1ntllC3CCGDfreefiwDe7AdrW61jfaZUZJKjAaDAiureCsBhCjt8G4ASIPCgkI8qzgrAYQ5g0SAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIAcgoKAxjPCBIDGMwI"},{"b64Body":"Cg8KCQjyrOCsBhDsDRICGAISAhgDGP2NkRAiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjqoCDwoDGM8IGgNPTkUaA1RXTw==","b64Record":"CiYIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1gCcgIBAhIwfPQ7NTJSWU6/IjhfRfGSojvZvC/GSJjOEbqxAh0+Fcg/soL+U55WZFOmodW3NHDUGgwIrq3grAYQs9mRuQMiDwoJCPKs4KwGEOwNEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAFofCgMYzwgaCwoCGAASAxjMCBgBGgsKAhgAEgMYzAgYAg=="},{"b64Body":"Cg8KCQjzrOCsBhD4DRICGAISAhgDGOufNiICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOchkSFwoDGM0IEgcKAxjMCBABEgcKAxjLCBAC","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwMiarQNQv50K/HyyysSKiQhkY+d33B8Dyjma2e+7VJk0AI2qVfI7abziV3bu72WUkGgwIr63grAYQ07Gc3wEiDwoJCPOs4KwGEPgNEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAFoXCgMYzQgSBwoDGMsIEAISBwoDGMwIEAFyCgoDGM0IEgMYywg="},{"b64Body":"Cg8KCQjzrOCsBhCEDhICGAISAhgDGI3GPCICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOchUSEwoDGM8IGgwKAxjMCBIDGMsIGAE=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw0/hD5LWKA0nKzrCRXOK3061W0OYJWDTkcGXuuTEhorWyEHLr/uDGSRrC3CGoeB34GgwIr63grAYQ65+LxAMiDwoJCPOs4KwGEIQOEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAFoTCgMYzwgaDAoDGMwIEgMYywgYAXIKCgMYzwgSAxjLCA=="},{"b64Body":"Cg8KCQj0rOCsBhCMDhICGAISAhgDGOufNiICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOchkSFwoDGM4IEgcKAxjMCBABEgcKAxjLCBAC","b64Record":"CiEIhgIqHAoMCAEQDBoGCICumaQPEgwIARAPGgYIgK6ZpA8SMOrsrrSFuI7P6IKgyuSe5kdf6ot80GwqhMseSkLBp/CP2OYW8prwYAD14DB8Qgq5mhoMCLCt4KwGEMPoq+cBIg8KCQj0rOCsBhCMDhICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgA="}]}}} \ No newline at end of file diff --git a/hedera-node/test-clients/record-snapshots/Nonce.json b/hedera-node/test-clients/record-snapshots/Nonce.json new file mode 100644 index 000000000000..f4a93ac386b7 --- /dev/null +++ b/hedera-node/test-clients/record-snapshots/Nonce.json @@ -0,0 +1 @@ +{"specSnapshots":{"nonceNotUpdatedWhenSignerDoesExistPrecheckFailed":{"placeholderNum":1001,"encodedItems":[{"b64Body":"Cg8KCQjSqrOuBhCsARICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIHDHYtQLMP4LjpeM5Fm+d0iuMvXFT9WaQd1fNHzaakebEIDIr6AlSgUIgM7aAw==","b64Record":"CiUIFhIDGOoHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBTIyF4/pkEB1hiNpnLN9NGDnU2Vm9KRpmI5EJ6eaKLkyXIojr5Qang0p2DUzARLPoaDAiOq7OuBhClq96iAyIPCgkI0qqzrgYQrAESAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxjqBxCAkN/ASg=="},{"b64Body":"Cg8KCQjTqrOuBhCuARICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAiP+Y2yBhC92aaxARptCiISIAGDkFtAkjIefNzxILWJjxqsVdY/F7uvevOFZh5NVCXHCiM6IQOfunC456D/4VMbqwWy311f8p4aszH2uxt1Re0djBiaVAoiEiCRHvRZcH2T8PNkcRB8FjmfWHEkW166bjoVaEFsqgICrSIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGOsHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDGjJLk3oUEVpF8wsw7wBqPkhjEYdtjfoKo4GHWJgyNNNnirBU+0K7AImHyduJMsqIaDAiPq7OuBhDUiKfMASIPCgkI06qzrgYQrgESAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjTqrOuBhCyARICGAISAhgDGITr6jMiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoB0g0KAxjrByLKDTYwODA2MDQwNTI1ZjgwNTUzNDgwMTU2MTAwMTI1NzVmODBmZDViNTA2MTAzNDU4MDYxMDAyMDVmMzk1ZmYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDBmNTc1ZjgwZmQ1YjUwNjAwNDM2MTA2MTAwNGE1NzVmMzU2MGUwMWM4MDYzMTFmOTVmNmYxNDYxMDA0ZTU3ODA2MzNhMzJiNTQ5MTQ2MTAwNmM1NzgwNjNjZmM3MjAwNzE0NjEwMDhhNTc4MDYzZmY0ODlkMzExNDYxMDBhNjU3NWI1ZjgwZmQ1YjYxMDA1NjYxMDBjNDU2NWI2MDQwNTE2MTAwNjM5MTkwNjEwMTUwNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDA3NDYxMDEwMDU2NWI2MDQwNTE2MTAwODE5MTkwNjEwMTgxNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDBhNDYwMDQ4MDM2MDM4MTAxOTA2MTAwOWY5MTkwNjEwMWY4NTY1YjYxMDExOTU2NWIwMDViNjEwMGFlNjEwMTMyNTY1YjYwNDA1MTYxMDBiYjkxOTA2MTAxNTA1NjViNjA0MDUxODA5MTAzOTBmMzViNWY2MDQwNTE3ZjA4YzM3OWEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MTUyNjAwNDAxNjEwMGY3OTA2MTAyN2Q1NjViNjA0MDUxODA5MTAzOTBmZDViNWY4MDVmODE1NDYxMDEwZTkwNjEwMmM4NTY1YjkxOTA1MDgxOTA1NTkwNTA5MDU2NWI4MDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ZmY1YjVmODBmZDViNWY4MTE1MTU5MDUwOTE5MDUwNTY1YjYxMDE0YTgxNjEwMTM2NTY1YjgyNTI1MDUwNTY1YjVmNjAyMDgyMDE5MDUwNjEwMTYzNWY4MzAxODQ2MTAxNDE1NjViOTI5MTUwNTA1NjViNWY4MTkwNTA5MTkwNTA1NjViNjEwMTdiODE2MTAxNjk1NjViODI1MjUwNTA1NjViNWY2MDIwODIwMTkwNTA2MTAxOTQ1ZjgzMDE4NDYxMDE3MjU2NWI5MjkxNTA1MDU2NWI1ZjgwZmQ1YjVmNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIxNjkwNTA5MTkwNTA1NjViNWY2MTAxYzc4MjYxMDE5ZTU2NWI5MDUwOTE5MDUwNTY1YjYxMDFkNzgxNjEwMWJkNTY1YjgxMTQ2MTAxZTE1NzVmODBmZDViNTA1NjViNWY4MTM1OTA1MDYxMDFmMjgxNjEwMWNlNTY1YjkyOTE1MDUwNTY1YjVmNjAyMDgyODQwMzEyMTU2MTAyMGQ1NzYxMDIwYzYxMDE5YTU2NWI1YjVmNjEwMjFhODQ4Mjg1MDE2MTAxZTQ1NjViOTE1MDUwOTI5MTUwNTA1NjViNWY4MjgyNTI2MDIwODIwMTkwNTA5MjkxNTA1MDU2NWI3ZjUyNjU3NjY1NzI3NDUyNjU2MTczNmY2ZTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1ZjgyMDE1MjUwNTY1YjVmNjEwMjY3NjAwYzgzNjEwMjIzNTY1YjkxNTA2MTAyNzI4MjYxMDIzMzU2NWI2MDIwODIwMTkwNTA5MTkwNTA1NjViNWY2MDIwODIwMTkwNTA4MTgxMDM1ZjgzMDE1MjYxMDI5NDgxNjEwMjViNTY1YjkwNTA5MTkwNTA1NjViN2Y0ZTQ4N2I3MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNWY1MjYwMTE2MDA0NTI2MDI0NWZmZDViNWY2MTAyZDI4MjYxMDE2OTU2NWI5MTUwN2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIwMzYxMDMwNDU3NjEwMzAzNjEwMjliNTY1YjViNjAwMTgyMDE5MDUwOTE5MDUwNTZmZWEyNjQ2OTcwNjY3MzU4MjIxMjIwYmZmZTRkMzU2YzVjNjUyMWY2NzgxZmIxNDExOGI4ZWUxNDZiMGY0NmYxZjU1ODUxODI2YWIyOWIxZWU3YmMxMTY0NzM2ZjZjNjM0MzAwMDgxNjAwMzM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwbUnRJuBC89df89T7YLLUtiIikOqtOBkDfZXdn5p7SxB67Uk9mzL8gQ1sOiLUJIoFGgsIkKuzrgYQva6pEiIPCgkI06qzrgYQsgESAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjUqrOuBhC0ARICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGOsHGiISILAn6uoVWAuPZukU4DBPK+u9fFrZgGHUwDxbY91XuqjoIJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGOwHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDwtCPIZ8Z1TsiD6B4lShZb73pcjEFtXLc7moKBJQwXjGs6zGml+2m3lzNBfE/KblwaDAiQq7OuBhDhh4aUAiIPCgkI1KqzrgYQtAESAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQvoICgMY7AcSxQZggGBAUjSAFWEAD1dfgP1bUGAENhBhAEpXXzVg4ByAYxH5X28UYQBOV4BjOjK1SRRhAGxXgGPPxyAHFGEAileAY/9InTEUYQCmV1tfgP1bYQBWYQDEVltgQFFhAGORkGEBUFZbYEBRgJEDkPNbYQB0YQEAVltgQFFhAIGRkGEBgVZbYEBRgJEDkPNbYQCkYASANgOBAZBhAJ+RkGEB+FZbYQEZVlsAW2EArmEBMlZbYEBRYQC7kZBhAVBWW2BAUYCRA5DzW19gQFF/CMN5oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBUmAEAWEA95BhAn1WW2BAUYCRA5D9W1+AX4FUYQEOkGECyFZbkZBQgZBVkFCQVluAc///////////////////////////Fv9bX4D9W1+BFRWQUJGQUFZbYQFKgWEBNlZbglJQUFZbX2AgggGQUGEBY1+DAYRhAUFWW5KRUFBWW1+BkFCRkFBWW2EBe4FhAWlWW4JSUFBWW19gIIIBkFBhAZRfgwGEYQFyVluSkVBQVltfgP1bX3P//////////////////////////4IWkFCRkFBWW19hAceCYQGeVluQUJGQUFZbYQHXgWEBvVZbgRRhAeFXX4D9W1BWW1+BNZBQYQHygWEBzlZbkpFQUFZbX2AggoQDEhVhAg1XYQIMYQGaVltbX2ECGoSChQFhAeRWW5FQUJKRUFBWW1+CglJgIIIBkFCSkVBQVlt/UmV2ZXJ0UmVhc29uAAAAAAAAAAAAAAAAAAAAAAAAAABfggFSUFZbX2ECZ2AMg2ECI1ZbkVBhAnKCYQIzVltgIIIBkFCRkFBWW19gIIIBkFCBgQNfgwFSYQKUgWECW1ZbkFCRkFBWW39OSHtxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF9SYBFgBFJgJF/9W19hAtKCYQFpVluRUH///////////////////////////////////////////4IDYQMEV2EDA2ECm1ZbW2ABggGQUJGQUFb+omRpcGZzWCISIL/+TTVsXGUh9ngfsUEYuO4Uaw9G8fVYUYJqspse57wRZHNvbGNDAAgWADMigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMCaDDoDGOwHShYKFAAAAAAAAAAAAAAAAAAAAAAAAAPscgcKAxjsBxABUhYKCQoCGAIQ/7LFDQoJCgIYYhCAs8UN"}]},"nonceNotUpdatedWhenPayerHasInsufficientBalancePrecheckFailed":{"placeholderNum":1005,"encodedItems":[{"b64Body":"Cg8KCQjaqrOuBhDIARICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlotCiISIJSQK0zTMOEPdoSicGfvT7qm0ZU8IJVT1OCYvLVHLpIaEAFKBQiAztoD","b64Record":"CiUIFhIDGO4HKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCohwzbFQ4bi4lH4GSUUGlvrwhK73yNPOtEAgHHg98V023q+1JnAcZ3A2+N0vKp/eAaCwiWq7OuBhDE29hxIg8KCQjaqrOuBhDIARICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUhEKBgoCGAIQAQoHCgMY7gcQAg=="},{"b64Body":"ChEKCQjaqrOuBhDKARICGAIgAVpoCiM6IQLKt5kKFayr4DBFaN8knRMP9kc6rVfSI05UL9Pn4JjKT0oFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiECyreZChWsq+AwRWjfJJ0TD/ZHOq1X0iNOVC/T5+CYyk8=","b64Record":"CgcIFhIDGO8HEjDG3P3JqyX6OYXG4gfl7xSLFa2SgbuQDQ/PSDpqmaZkC7UwBIMtmKXs2Gj3ZpzDx70aDAiWq7OuBhC1n6TzAiIRCgkI2qqzrgYQygESAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqART/OpSzqhZDUF1GZMebXmiYvNFptA=="},{"b64Body":"Cg8KCQjaqrOuBhDKARICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcjsKOQoJCgIYAhD/g69fCiwKJSIjOiECyreZChWsq+AwRWjfJJ0TD/ZHOq1X0iNOVC/T5+CYyk8QgISvXw==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw9LVkVMV6/jQSMTwZZd7hNsjopJS4ZCi+f84myuc73uSqZruZ1CoJ1zomt96XT5KFGgwIlquzrgYQtp+k8wIiDwoJCNqqs64GEMoBEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SFwoJCgIYAhD/g69fCgoKAxjvBxCAhK9f"},{"b64Body":"Cg8KCQjbqrOuBhDMARICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjgESCwiX+Y2yBhDtrtJ6Gm0KIhIgRLQmLiFYA04tR9oA4J6nOQ0Nf11OaHXzNbjhYZpMWM0KIzohArnZNUlqtzecDUPKlWzLByjA24eIBZZIaYSFd7DlddFACiISIGiVhqIQ1B/7QfsyK2SQrW/yz3y+ZgAfGDxjZPsvlnNSIgxIZWxsbyBXb3JsZCEqADIA","b64Record":"CiUIFhoDGPAHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDdod41yXLiul/Zckk6Gp24lokQ9gvRhcDMW7UTFk2BprygKbVN0sDXsQmwYA4X0CUaDAiXq7OuBhC8iYmYASIPCgkI26qzrgYQzAESAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjbqrOuBhDQARICGAISAhgDGITr6jMiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoB0g0KAxjwByLKDTYwODA2MDQwNTI1ZjgwNTUzNDgwMTU2MTAwMTI1NzVmODBmZDViNTA2MTAzNDU4MDYxMDAyMDVmMzk1ZmYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDBmNTc1ZjgwZmQ1YjUwNjAwNDM2MTA2MTAwNGE1NzVmMzU2MGUwMWM4MDYzMTFmOTVmNmYxNDYxMDA0ZTU3ODA2MzNhMzJiNTQ5MTQ2MTAwNmM1NzgwNjNjZmM3MjAwNzE0NjEwMDhhNTc4MDYzZmY0ODlkMzExNDYxMDBhNjU3NWI1ZjgwZmQ1YjYxMDA1NjYxMDBjNDU2NWI2MDQwNTE2MTAwNjM5MTkwNjEwMTUwNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDA3NDYxMDEwMDU2NWI2MDQwNTE2MTAwODE5MTkwNjEwMTgxNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDBhNDYwMDQ4MDM2MDM4MTAxOTA2MTAwOWY5MTkwNjEwMWY4NTY1YjYxMDExOTU2NWIwMDViNjEwMGFlNjEwMTMyNTY1YjYwNDA1MTYxMDBiYjkxOTA2MTAxNTA1NjViNjA0MDUxODA5MTAzOTBmMzViNWY2MDQwNTE3ZjA4YzM3OWEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MTUyNjAwNDAxNjEwMGY3OTA2MTAyN2Q1NjViNjA0MDUxODA5MTAzOTBmZDViNWY4MDVmODE1NDYxMDEwZTkwNjEwMmM4NTY1YjkxOTA1MDgxOTA1NTkwNTA5MDU2NWI4MDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ZmY1YjVmODBmZDViNWY4MTE1MTU5MDUwOTE5MDUwNTY1YjYxMDE0YTgxNjEwMTM2NTY1YjgyNTI1MDUwNTY1YjVmNjAyMDgyMDE5MDUwNjEwMTYzNWY4MzAxODQ2MTAxNDE1NjViOTI5MTUwNTA1NjViNWY4MTkwNTA5MTkwNTA1NjViNjEwMTdiODE2MTAxNjk1NjViODI1MjUwNTA1NjViNWY2MDIwODIwMTkwNTA2MTAxOTQ1ZjgzMDE4NDYxMDE3MjU2NWI5MjkxNTA1MDU2NWI1ZjgwZmQ1YjVmNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIxNjkwNTA5MTkwNTA1NjViNWY2MTAxYzc4MjYxMDE5ZTU2NWI5MDUwOTE5MDUwNTY1YjYxMDFkNzgxNjEwMWJkNTY1YjgxMTQ2MTAxZTE1NzVmODBmZDViNTA1NjViNWY4MTM1OTA1MDYxMDFmMjgxNjEwMWNlNTY1YjkyOTE1MDUwNTY1YjVmNjAyMDgyODQwMzEyMTU2MTAyMGQ1NzYxMDIwYzYxMDE5YTU2NWI1YjVmNjEwMjFhODQ4Mjg1MDE2MTAxZTQ1NjViOTE1MDUwOTI5MTUwNTA1NjViNWY4MjgyNTI2MDIwODIwMTkwNTA5MjkxNTA1MDU2NWI3ZjUyNjU3NjY1NzI3NDUyNjU2MTczNmY2ZTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1ZjgyMDE1MjUwNTY1YjVmNjEwMjY3NjAwYzgzNjEwMjIzNTY1YjkxNTA2MTAyNzI4MjYxMDIzMzU2NWI2MDIwODIwMTkwNTA5MTkwNTA1NjViNWY2MDIwODIwMTkwNTA4MTgxMDM1ZjgzMDE1MjYxMDI5NDgxNjEwMjViNTY1YjkwNTA5MTkwNTA1NjViN2Y0ZTQ4N2I3MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNWY1MjYwMTE2MDA0NTI2MDI0NWZmZDViNWY2MTAyZDI4MjYxMDE2OTU2NWI5MTUwN2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIwMzYxMDMwNDU3NjEwMzAzNjEwMjliNTY1YjViNjAwMTgyMDE5MDUwOTE5MDUwNTZmZWEyNjQ2OTcwNjY3MzU4MjIxMjIwYmZmZTRkMzU2YzVjNjUyMWY2NzgxZmIxNDExOGI4ZWUxNDZiMGY0NmYxZjU1ODUxODI2YWIyOWIxZWU3YmMxMTY0NzM2ZjZjNjM0MzAwMDgxNjAwMzM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwVVlEG4ZP6MWIlZYT0r4+ajn3G43fkVqN573hzjLSq5PHctu4MfK0Fb+up+34ixWzGgwIl6uzrgYQ2I/w/AIiDwoJCNuqs64GENABEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjcqrOuBhDSARICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGPAHGiISIGfXpNGTaetjqEYeyMiN57/lx7Ce+i/gjv27dONVKGruIJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGPEHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCinPZ0v/Fi4DgsstM7b6+BL71WjUmDJQ/mQpJZxRSHuFYY2rjT3iryzpWF8Bd5IxoaDAiYq7OuBhCx5MihASIPCgkI3KqzrgYQ0gESAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQvoICgMY8QcSxQZggGBAUjSAFWEAD1dfgP1bUGAENhBhAEpXXzVg4ByAYxH5X28UYQBOV4BjOjK1SRRhAGxXgGPPxyAHFGEAileAY/9InTEUYQCmV1tfgP1bYQBWYQDEVltgQFFhAGORkGEBUFZbYEBRgJEDkPNbYQB0YQEAVltgQFFhAIGRkGEBgVZbYEBRgJEDkPNbYQCkYASANgOBAZBhAJ+RkGEB+FZbYQEZVlsAW2EArmEBMlZbYEBRYQC7kZBhAVBWW2BAUYCRA5DzW19gQFF/CMN5oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBUmAEAWEA95BhAn1WW2BAUYCRA5D9W1+AX4FUYQEOkGECyFZbkZBQgZBVkFCQVluAc///////////////////////////Fv9bX4D9W1+BFRWQUJGQUFZbYQFKgWEBNlZbglJQUFZbX2AgggGQUGEBY1+DAYRhAUFWW5KRUFBWW1+BkFCRkFBWW2EBe4FhAWlWW4JSUFBWW19gIIIBkFBhAZRfgwGEYQFyVluSkVBQVltfgP1bX3P//////////////////////////4IWkFCRkFBWW19hAceCYQGeVluQUJGQUFZbYQHXgWEBvVZbgRRhAeFXX4D9W1BWW1+BNZBQYQHygWEBzlZbkpFQUFZbX2AggoQDEhVhAg1XYQIMYQGaVltbX2ECGoSChQFhAeRWW5FQUJKRUFBWW1+CglJgIIIBkFCSkVBQVlt/UmV2ZXJ0UmVhc29uAAAAAAAAAAAAAAAAAAAAAAAAAABfggFSUFZbX2ECZ2AMg2ECI1ZbkVBhAnKCYQIzVltgIIIBkFCRkFBWW19gIIIBkFCBgQNfgwFSYQKUgWECW1ZbkFCRkFBWW39OSHtxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF9SYBFgBFJgJF/9W19hAtKCYQFpVluRUH///////////////////////////////////////////4IDYQMEV2EDA2ECm1ZbW2ABggGQUJGQUFb+omRpcGZzWCISIL/+TTVsXGUh9ngfsUEYuO4Uaw9G8fVYUYJqspse57wRZHNvbGNDAAgWADMigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMCaDDoDGPEHShYKFAAAAAAAAAAAAAAAAAAAAAAAAAPxcgcKAxjxBxABUhYKCQoCGAIQ/7LFDQoJCgIYYhCAs8UN"}]},"nonceNotUpdatedWhenNegativeMaxGasAllowancePrecheckFailed":{"placeholderNum":1010,"encodedItems":[{"b64Body":"Cg8KCQjhqrOuBhDoARICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIDLhPrsN0h1k9KTaZkKEggxNRteqb41FGeXPi2ogHhZ5EIDIr6AlSgUIgM7aAw==","b64Record":"CiUIFhIDGPMHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBxkYqD/IYD72xSSOshmp8fcl7nSvj3GW5dI7855lz4WTyvHlCplVjK3NXwwXExyHQaCwidq7OuBhD0nuQIIg8KCQjhqrOuBhDoARICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUhkKCgoCGAIQ/4/fwEoKCwoDGPMHEICQ38BK"},{"b64Body":"ChEKCQjhqrOuBhDqARICGAIgAVpoCiM6IQJoFlY7oMC+lS7Ki6vsDj0d531Yfr4fNChGygsRv6C6XUoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiECaBZWO6DAvpUuyour7A49Hed9WH6+HzQoRsoLEb+gul0=","b64Record":"CgcIFhIDGPQHEjDpiDJgaEuPklniLn8nXMniY+9nfqCr1dqBMU5IvV+dajsGxgsYVsaO4+FGMObWFMgaDAidq7OuBhCB/5OKAiIRCgkI4aqzrgYQ6gESAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARQSflGS3VlB9Nu86Wi9TS78GqAHvg=="},{"b64Body":"Cg8KCQjhqrOuBhDqARICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcjsKOQoJCgIYAhD/g69fCiwKJSIjOiECaBZWO6DAvpUuyour7A49Hed9WH6+HzQoRsoLEb+gul0QgISvXw==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwqrB/UbBJaLwmvlwpiDM/nKJWnYdFlqfvRf0/rk2OkY27Dg+DquFaR3zK8/1MlQjgGgwInauzrgYQgv+TigIiDwoJCOGqs64GEOoBEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SFwoJCgIYAhD/g69fCgoKAxj0BxCAhK9f"},{"b64Body":"Cg8KCQjiqrOuBhDsARICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjgESCwie+Y2yBhCViJ0RGm0KIhIg+e+3w6tqIFmCu41BqjpiF6z+pcOMc7gEkglRqp89LQkKIzohAiSaqSCMkXCREcdt6nHwceTvZtiIiB5iccb4qgeSnWb9CiISIKCMsbxQmixOJAXZsEcFlq/pGEfSCAfLhI+TFQ89RDMcIgxIZWxsbyBXb3JsZCEqADIA","b64Record":"CiUIFhoDGPUHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBoeD8smNCYkFr2aItvCa5fBA5NuzKoOAut+py9+RsgL8SIxjngJQjHIldO9LgvLyUaCwieq7OuBhChsZEvIg8KCQjiqrOuBhDsARICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgA="},{"b64Body":"Cg8KCQjiqrOuBhDwARICGAISAhgDGITr6jMiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoB0g0KAxj1ByLKDTYwODA2MDQwNTI1ZjgwNTUzNDgwMTU2MTAwMTI1NzVmODBmZDViNTA2MTAzNDU4MDYxMDAyMDVmMzk1ZmYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDBmNTc1ZjgwZmQ1YjUwNjAwNDM2MTA2MTAwNGE1NzVmMzU2MGUwMWM4MDYzMTFmOTVmNmYxNDYxMDA0ZTU3ODA2MzNhMzJiNTQ5MTQ2MTAwNmM1NzgwNjNjZmM3MjAwNzE0NjEwMDhhNTc4MDYzZmY0ODlkMzExNDYxMDBhNjU3NWI1ZjgwZmQ1YjYxMDA1NjYxMDBjNDU2NWI2MDQwNTE2MTAwNjM5MTkwNjEwMTUwNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDA3NDYxMDEwMDU2NWI2MDQwNTE2MTAwODE5MTkwNjEwMTgxNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDBhNDYwMDQ4MDM2MDM4MTAxOTA2MTAwOWY5MTkwNjEwMWY4NTY1YjYxMDExOTU2NWIwMDViNjEwMGFlNjEwMTMyNTY1YjYwNDA1MTYxMDBiYjkxOTA2MTAxNTA1NjViNjA0MDUxODA5MTAzOTBmMzViNWY2MDQwNTE3ZjA4YzM3OWEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MTUyNjAwNDAxNjEwMGY3OTA2MTAyN2Q1NjViNjA0MDUxODA5MTAzOTBmZDViNWY4MDVmODE1NDYxMDEwZTkwNjEwMmM4NTY1YjkxOTA1MDgxOTA1NTkwNTA5MDU2NWI4MDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ZmY1YjVmODBmZDViNWY4MTE1MTU5MDUwOTE5MDUwNTY1YjYxMDE0YTgxNjEwMTM2NTY1YjgyNTI1MDUwNTY1YjVmNjAyMDgyMDE5MDUwNjEwMTYzNWY4MzAxODQ2MTAxNDE1NjViOTI5MTUwNTA1NjViNWY4MTkwNTA5MTkwNTA1NjViNjEwMTdiODE2MTAxNjk1NjViODI1MjUwNTA1NjViNWY2MDIwODIwMTkwNTA2MTAxOTQ1ZjgzMDE4NDYxMDE3MjU2NWI5MjkxNTA1MDU2NWI1ZjgwZmQ1YjVmNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIxNjkwNTA5MTkwNTA1NjViNWY2MTAxYzc4MjYxMDE5ZTU2NWI5MDUwOTE5MDUwNTY1YjYxMDFkNzgxNjEwMWJkNTY1YjgxMTQ2MTAxZTE1NzVmODBmZDViNTA1NjViNWY4MTM1OTA1MDYxMDFmMjgxNjEwMWNlNTY1YjkyOTE1MDUwNTY1YjVmNjAyMDgyODQwMzEyMTU2MTAyMGQ1NzYxMDIwYzYxMDE5YTU2NWI1YjVmNjEwMjFhODQ4Mjg1MDE2MTAxZTQ1NjViOTE1MDUwOTI5MTUwNTA1NjViNWY4MjgyNTI2MDIwODIwMTkwNTA5MjkxNTA1MDU2NWI3ZjUyNjU3NjY1NzI3NDUyNjU2MTczNmY2ZTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1ZjgyMDE1MjUwNTY1YjVmNjEwMjY3NjAwYzgzNjEwMjIzNTY1YjkxNTA2MTAyNzI4MjYxMDIzMzU2NWI2MDIwODIwMTkwNTA5MTkwNTA1NjViNWY2MDIwODIwMTkwNTA4MTgxMDM1ZjgzMDE1MjYxMDI5NDgxNjEwMjViNTY1YjkwNTA5MTkwNTA1NjViN2Y0ZTQ4N2I3MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNWY1MjYwMTE2MDA0NTI2MDI0NWZmZDViNWY2MTAyZDI4MjYxMDE2OTU2NWI5MTUwN2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIwMzYxMDMwNDU3NjEwMzAzNjEwMjliNTY1YjViNjAwMTgyMDE5MDUwOTE5MDUwNTZmZWEyNjQ2OTcwNjY3MzU4MjIxMjIwYmZmZTRkMzU2YzVjNjUyMWY2NzgxZmIxNDExOGI4ZWUxNDZiMGY0NmYxZjU1ODUxODI2YWIyOWIxZWU3YmMxMTY0NzM2ZjZjNjM0MzAwMDgxNjAwMzM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwIoGnWCjOFhfd5euKGYrxXoy5OgX59wzWgfz9DGGDmTUjADWG23Pob91+tkahkQAqGgwInquzrgYQnYnekwIiDwoJCOKqs64GEPABEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjjqrOuBhDyARICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGPUHGiISICEncgedHNVavCXbdzhLrS4JilVEM9zUWCvQAtFUW1WVIJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGPYHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDxJJj0c4K92PcYmYcR4lLh95tPKlJtrh39XNT4j8F7qrqTOhmWYYZIcA4LQNs1Y58aCwifq7OuBhD3h7M4Ig8KCQjjqrOuBhDyARICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMMDZ4gZC+ggKAxj2BxLFBmCAYEBSNIAVYQAPV1+A/VtQYAQ2EGEASldfNWDgHIBjEflfbxRhAE5XgGM6MrVJFGEAbFeAY8/HIAcUYQCKV4Bj/0idMRRhAKZXW1+A/VthAFZhAMRWW2BAUWEAY5GQYQFQVltgQFGAkQOQ81thAHRhAQBWW2BAUWEAgZGQYQGBVltgQFGAkQOQ81thAKRgBIA2A4EBkGEAn5GQYQH4VlthARlWWwBbYQCuYQEyVltgQFFhALuRkGEBUFZbYEBRgJEDkPNbX2BAUX8Iw3mgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIFSYAQBYQD3kGECfVZbYEBRgJEDkP1bX4BfgVRhAQ6QYQLIVluRkFCBkFWQUJBWW4Bz//////////////////////////8W/1tfgP1bX4EVFZBQkZBQVlthAUqBYQE2VluCUlBQVltfYCCCAZBQYQFjX4MBhGEBQVZbkpFQUFZbX4GQUJGQUFZbYQF7gWEBaVZbglJQUFZbX2AgggGQUGEBlF+DAYRhAXJWW5KRUFBWW1+A/Vtfc///////////////////////////ghaQUJGQUFZbX2EBx4JhAZ5WW5BQkZBQVlthAdeBYQG9VluBFGEB4VdfgP1bUFZbX4E1kFBhAfKBYQHOVluSkVBQVltfYCCChAMSFWECDVdhAgxhAZpWW1tfYQIahIKFAWEB5FZbkVBQkpFQUFZbX4KCUmAgggGQUJKRUFBWW39SZXZlcnRSZWFzb24AAAAAAAAAAAAAAAAAAAAAAAAAAF+CAVJQVltfYQJnYAyDYQIjVluRUGECcoJhAjNWW2AgggGQUJGQUFZbX2AgggGQUIGBA1+DAVJhApSBYQJbVluQUJGQUFZbf05Ie3EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX1JgEWAEUmAkX/1bX2EC0oJhAWlWW5FQf///////////////////////////////////////////ggNhAwRXYQMDYQKbVltbYAGCAZBQkZBQVv6iZGlwZnNYIhIgv/5NNWxcZSH2eB+xQRi47hRrD0bx9VhRgmqymx7nvBFkc29sY0MACBYAMyKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAowJoMOgMY9gdKFgoUAAAAAAAAAAAAAAAAAAAAAAAAA/ZyBwoDGPYHEAFSFgoJCgIYAhD/ssUNCgkKAhhiEICzxQ0="}]},"nonceNotUpdatedWhenInsufficientIntrinsicGasPrecheckFailed":{"placeholderNum":1015,"encodedItems":[{"b64Body":"Cg8KCQjnqrOuBhCIAhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIPJvUpizprIyPgWRvGb26podwHgmnJ5BLEnn6cj6HHuVEIDIr6AlSgUIgM7aAw==","b64Record":"CiUIFhIDGPgHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjA6rrhvOncqVF9UEHlOxAHXp4yvbDRJF4qu20hBrnqvAq+mg6FuB2jkyiLgU2/bXVcaDAijq7OuBhD1r/S1AyIPCgkI56qzrgYQiAISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxj4BxCAkN/ASg=="},{"b64Body":"ChEKCQjoqrOuBhCKAhICGAIgAVpoCiM6IQNQADGBeMar6lhj/2Jc1ZcsFYnA0hcMcC0IDilQKeGmukoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiEDUAAxgXjGq+pYY/9iXNWXLBWJwNIXDHAtCA4pUCnhpro=","b64Record":"CgcIFhIDGPkHEjCM/Fa09NuUpORbRsmd63HkO6Zk7dOotWicW/4qHyHVjNiCE97pdNq9cVbsDfIep+waDAikq7OuBhCs6uu9ASIRCgkI6KqzrgYQigISAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARRQ6wOOBazfYBVrs5rPKEoIZEgcBw=="},{"b64Body":"Cg8KCQjoqrOuBhCKAhICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcjsKOQoJCgIYAhD/g69fCiwKJSIjOiEDUAAxgXjGq+pYY/9iXNWXLBWJwNIXDHAtCA4pUCnhproQgISvXw==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwqxtllyvttisC0RksS8lCGQCrlXOudqbClQoaVT8apLqZpWLlfqNdKh2RgoYZB57QGgwIpKuzrgYQrerrvQEiDwoJCOiqs64GEIoCEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SFwoJCgIYAhD/g69fCgoKAxj5BxCAhK9f"},{"b64Body":"Cg8KCQjoqrOuBhCMAhICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAik+Y2yBhDB9LGoAxptCiISIIHiJlOs2Y1bF141XZF6rFq8qZr7xik/v4rD0TqaQV+pCiM6IQMQ9+65jLRFf8O47hWlAkpUnrrkjjekO5gx8K58leY3hwoiEiAfLVdDpYiIZpbVCtwHAemR46FDWQPqDgugEZm+1RT0ZiIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGPoHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAZySGb06iHTd9y+OXiIowAJmvEz5zX1xzEYGmloiFH8GNTEFOlFYAmjEN9q/UhnBcaDAikq7OuBhDwn6q/AyIPCgkI6KqzrgYQjAISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjpqrOuBhCQAhICGAISAhgDGITr6jMiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoB0g0KAxj6ByLKDTYwODA2MDQwNTI1ZjgwNTUzNDgwMTU2MTAwMTI1NzVmODBmZDViNTA2MTAzNDU4MDYxMDAyMDVmMzk1ZmYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDBmNTc1ZjgwZmQ1YjUwNjAwNDM2MTA2MTAwNGE1NzVmMzU2MGUwMWM4MDYzMTFmOTVmNmYxNDYxMDA0ZTU3ODA2MzNhMzJiNTQ5MTQ2MTAwNmM1NzgwNjNjZmM3MjAwNzE0NjEwMDhhNTc4MDYzZmY0ODlkMzExNDYxMDBhNjU3NWI1ZjgwZmQ1YjYxMDA1NjYxMDBjNDU2NWI2MDQwNTE2MTAwNjM5MTkwNjEwMTUwNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDA3NDYxMDEwMDU2NWI2MDQwNTE2MTAwODE5MTkwNjEwMTgxNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDBhNDYwMDQ4MDM2MDM4MTAxOTA2MTAwOWY5MTkwNjEwMWY4NTY1YjYxMDExOTU2NWIwMDViNjEwMGFlNjEwMTMyNTY1YjYwNDA1MTYxMDBiYjkxOTA2MTAxNTA1NjViNjA0MDUxODA5MTAzOTBmMzViNWY2MDQwNTE3ZjA4YzM3OWEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MTUyNjAwNDAxNjEwMGY3OTA2MTAyN2Q1NjViNjA0MDUxODA5MTAzOTBmZDViNWY4MDVmODE1NDYxMDEwZTkwNjEwMmM4NTY1YjkxOTA1MDgxOTA1NTkwNTA5MDU2NWI4MDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ZmY1YjVmODBmZDViNWY4MTE1MTU5MDUwOTE5MDUwNTY1YjYxMDE0YTgxNjEwMTM2NTY1YjgyNTI1MDUwNTY1YjVmNjAyMDgyMDE5MDUwNjEwMTYzNWY4MzAxODQ2MTAxNDE1NjViOTI5MTUwNTA1NjViNWY4MTkwNTA5MTkwNTA1NjViNjEwMTdiODE2MTAxNjk1NjViODI1MjUwNTA1NjViNWY2MDIwODIwMTkwNTA2MTAxOTQ1ZjgzMDE4NDYxMDE3MjU2NWI5MjkxNTA1MDU2NWI1ZjgwZmQ1YjVmNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIxNjkwNTA5MTkwNTA1NjViNWY2MTAxYzc4MjYxMDE5ZTU2NWI5MDUwOTE5MDUwNTY1YjYxMDFkNzgxNjEwMWJkNTY1YjgxMTQ2MTAxZTE1NzVmODBmZDViNTA1NjViNWY4MTM1OTA1MDYxMDFmMjgxNjEwMWNlNTY1YjkyOTE1MDUwNTY1YjVmNjAyMDgyODQwMzEyMTU2MTAyMGQ1NzYxMDIwYzYxMDE5YTU2NWI1YjVmNjEwMjFhODQ4Mjg1MDE2MTAxZTQ1NjViOTE1MDUwOTI5MTUwNTA1NjViNWY4MjgyNTI2MDIwODIwMTkwNTA5MjkxNTA1MDU2NWI3ZjUyNjU3NjY1NzI3NDUyNjU2MTczNmY2ZTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1ZjgyMDE1MjUwNTY1YjVmNjEwMjY3NjAwYzgzNjEwMjIzNTY1YjkxNTA2MTAyNzI4MjYxMDIzMzU2NWI2MDIwODIwMTkwNTA5MTkwNTA1NjViNWY2MDIwODIwMTkwNTA4MTgxMDM1ZjgzMDE1MjYxMDI5NDgxNjEwMjViNTY1YjkwNTA5MTkwNTA1NjViN2Y0ZTQ4N2I3MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNWY1MjYwMTE2MDA0NTI2MDI0NWZmZDViNWY2MTAyZDI4MjYxMDE2OTU2NWI5MTUwN2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIwMzYxMDMwNDU3NjEwMzAzNjEwMjliNTY1YjViNjAwMTgyMDE5MDUwOTE5MDUwNTZmZWEyNjQ2OTcwNjY3MzU4MjIxMjIwYmZmZTRkMzU2YzVjNjUyMWY2NzgxZmIxNDExOGI4ZWUxNDZiMGY0NmYxZjU1ODUxODI2YWIyOWIxZWU3YmMxMTY0NzM2ZjZjNjM0MzAwMDgxNjAwMzM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw2eBiOiA9H/H7QKse1KwOxxampkGniVMMNEK+tlgsU16Aggd7c1sXSEBNZSCH/0t6GgwIpauzrgYQ/Obx6AEiDwoJCOmqs64GEJACEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjpqrOuBhCSAhICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGPoHGiISINtU2A/j1aBXIsgQvryUX+9tBCULMIVsNWNTBjnPuRCgIJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGPsHKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDqUug7Z1fq6o+n74VQpoa2K6a+K41fBRxpatd3kzqBsnspvLFGktG8C6BUAv+SGgsaDAilq7OuBhCB7vXNAyIPCgkI6aqzrgYQkgISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQvoICgMY+wcSxQZggGBAUjSAFWEAD1dfgP1bUGAENhBhAEpXXzVg4ByAYxH5X28UYQBOV4BjOjK1SRRhAGxXgGPPxyAHFGEAileAY/9InTEUYQCmV1tfgP1bYQBWYQDEVltgQFFhAGORkGEBUFZbYEBRgJEDkPNbYQB0YQEAVltgQFFhAIGRkGEBgVZbYEBRgJEDkPNbYQCkYASANgOBAZBhAJ+RkGEB+FZbYQEZVlsAW2EArmEBMlZbYEBRYQC7kZBhAVBWW2BAUYCRA5DzW19gQFF/CMN5oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBUmAEAWEA95BhAn1WW2BAUYCRA5D9W1+AX4FUYQEOkGECyFZbkZBQgZBVkFCQVluAc///////////////////////////Fv9bX4D9W1+BFRWQUJGQUFZbYQFKgWEBNlZbglJQUFZbX2AgggGQUGEBY1+DAYRhAUFWW5KRUFBWW1+BkFCRkFBWW2EBe4FhAWlWW4JSUFBWW19gIIIBkFBhAZRfgwGEYQFyVluSkVBQVltfgP1bX3P//////////////////////////4IWkFCRkFBWW19hAceCYQGeVluQUJGQUFZbYQHXgWEBvVZbgRRhAeFXX4D9W1BWW1+BNZBQYQHygWEBzlZbkpFQUFZbX2AggoQDEhVhAg1XYQIMYQGaVltbX2ECGoSChQFhAeRWW5FQUJKRUFBWW1+CglJgIIIBkFCSkVBQVlt/UmV2ZXJ0UmVhc29uAAAAAAAAAAAAAAAAAAAAAAAAAABfggFSUFZbX2ECZ2AMg2ECI1ZbkVBhAnKCYQIzVltgIIIBkFCRkFBWW19gIIIBkFCBgQNfgwFSYQKUgWECW1ZbkFCRkFBWW39OSHtxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF9SYBFgBFJgJF/9W19hAtKCYQFpVluRUH///////////////////////////////////////////4IDYQMEV2EDA2ECm1ZbW2ABggGQUJGQUFb+omRpcGZzWCISIL/+TTVsXGUh9ngfsUEYuO4Uaw9G8fVYUYJqspse57wRZHNvbGNDAAgWADMigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMCaDDoDGPsHShYKFAAAAAAAAAAAAAAAAAAAAAAAAAP7cgcKAxj7BxABUhYKCQoCGAIQ/7LFDQoJCgIYYhCAs8UN"}]},"nonceNotUpdatedWhenMaxGasPerSecPrecheckFailed":{"placeholderNum":1020,"encodedItems":[{"b64Body":"Cg8KCQjvqrOuBhCyAhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIBeO5AijOYTcudaiwWk1GuI8f3C7ziT0kIbbhHBFAYTPEIDIr6AlSgUIgM7aAw==","b64Record":"CiUIFhIDGP0HKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDX8oCuPbw4oevNw+E/ZRHQiCuR5VNU6DqO4dr3xlGQflek35CMhJDbIWzx1riiTYkaCwirq7OuBhDsqpt7Ig8KCQjvqrOuBhCyAhICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUhkKCgoCGAIQ/4/fwEoKCwoDGP0HEICQ38BK"},{"b64Body":"ChEKCQjvqrOuBhC0AhICGAIgAVpoCiM6IQL+BLtwEyuHXulTIr+HRPu35vZu0lo//6Ulv4hlsgYDd0oFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiEC/gS7cBMrh17pUyK/h0T7t+b2btJaP/+lJb+IZbIGA3c=","b64Record":"CgcIFhIDGP4HEjAi9ZYWIYFvqclA5b9VsxQ6vQb4EJHBD+149ZDMPQgZC9K7ymjqBny9b/GHkukcFxMaDAirq7OuBhDI7M78AiIRCgkI76qzrgYQtAISAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARTDCByyl8/jnNoaSeIyzOOn50gh8A=="},{"b64Body":"Cg8KCQjvqrOuBhC0AhICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcjsKOQoJCgIYAhD/g69fCiwKJSIjOiEC/gS7cBMrh17pUyK/h0T7t+b2btJaP/+lJb+IZbIGA3cQgISvXw==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwod6+rMPxPfUc74bK8YoANKifTfuTxlXFYb+6AhenQKShUFqrmzeDe6xMdoQHITyAGgwIq6uzrgYQyezO/AIiDwoJCO+qs64GELQCEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SFwoJCgIYAhD/g69fCgoKAxj+BxCAhK9f"},{"b64Body":"Cg8KCQjwqrOuBhC2AhICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjgESCwis+Y2yBhDftJ56Gm0KIhIgtA/j8C6lmrZLyQxiQ/bqXXR8APybhUDkrUL3Q4gvai4KIzohA0IcL7es8Epf9R6vZPXOQoHkpDfZ8mo40NXcoOlDWb8ACiISIPSPUbUOKgUGNRJXdHdn/ieHLQni3o2sOFjKkry8VaD9IgxIZWxsbyBXb3JsZCEqADIA","b64Record":"CiUIFhoDGP8HKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCeF8muwikCawMi/mKyBam7aBAWZODP1nkZovn/nTd3ptV9Ex1gSUgZ9uvDTnVHlHwaDAisq7OuBhCQ5/eEASIPCgkI8KqzrgYQtgISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjwqrOuBhC6AhICGAISAhgDGITr6jMiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoB0g0KAxj/ByLKDTYwODA2MDQwNTI1ZjgwNTUzNDgwMTU2MTAwMTI1NzVmODBmZDViNTA2MTAzNDU4MDYxMDAyMDVmMzk1ZmYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDBmNTc1ZjgwZmQ1YjUwNjAwNDM2MTA2MTAwNGE1NzVmMzU2MGUwMWM4MDYzMTFmOTVmNmYxNDYxMDA0ZTU3ODA2MzNhMzJiNTQ5MTQ2MTAwNmM1NzgwNjNjZmM3MjAwNzE0NjEwMDhhNTc4MDYzZmY0ODlkMzExNDYxMDBhNjU3NWI1ZjgwZmQ1YjYxMDA1NjYxMDBjNDU2NWI2MDQwNTE2MTAwNjM5MTkwNjEwMTUwNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDA3NDYxMDEwMDU2NWI2MDQwNTE2MTAwODE5MTkwNjEwMTgxNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDBhNDYwMDQ4MDM2MDM4MTAxOTA2MTAwOWY5MTkwNjEwMWY4NTY1YjYxMDExOTU2NWIwMDViNjEwMGFlNjEwMTMyNTY1YjYwNDA1MTYxMDBiYjkxOTA2MTAxNTA1NjViNjA0MDUxODA5MTAzOTBmMzViNWY2MDQwNTE3ZjA4YzM3OWEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MTUyNjAwNDAxNjEwMGY3OTA2MTAyN2Q1NjViNjA0MDUxODA5MTAzOTBmZDViNWY4MDVmODE1NDYxMDEwZTkwNjEwMmM4NTY1YjkxOTA1MDgxOTA1NTkwNTA5MDU2NWI4MDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ZmY1YjVmODBmZDViNWY4MTE1MTU5MDUwOTE5MDUwNTY1YjYxMDE0YTgxNjEwMTM2NTY1YjgyNTI1MDUwNTY1YjVmNjAyMDgyMDE5MDUwNjEwMTYzNWY4MzAxODQ2MTAxNDE1NjViOTI5MTUwNTA1NjViNWY4MTkwNTA5MTkwNTA1NjViNjEwMTdiODE2MTAxNjk1NjViODI1MjUwNTA1NjViNWY2MDIwODIwMTkwNTA2MTAxOTQ1ZjgzMDE4NDYxMDE3MjU2NWI5MjkxNTA1MDU2NWI1ZjgwZmQ1YjVmNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIxNjkwNTA5MTkwNTA1NjViNWY2MTAxYzc4MjYxMDE5ZTU2NWI5MDUwOTE5MDUwNTY1YjYxMDFkNzgxNjEwMWJkNTY1YjgxMTQ2MTAxZTE1NzVmODBmZDViNTA1NjViNWY4MTM1OTA1MDYxMDFmMjgxNjEwMWNlNTY1YjkyOTE1MDUwNTY1YjVmNjAyMDgyODQwMzEyMTU2MTAyMGQ1NzYxMDIwYzYxMDE5YTU2NWI1YjVmNjEwMjFhODQ4Mjg1MDE2MTAxZTQ1NjViOTE1MDUwOTI5MTUwNTA1NjViNWY4MjgyNTI2MDIwODIwMTkwNTA5MjkxNTA1MDU2NWI3ZjUyNjU3NjY1NzI3NDUyNjU2MTczNmY2ZTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1ZjgyMDE1MjUwNTY1YjVmNjEwMjY3NjAwYzgzNjEwMjIzNTY1YjkxNTA2MTAyNzI4MjYxMDIzMzU2NWI2MDIwODIwMTkwNTA5MTkwNTA1NjViNWY2MDIwODIwMTkwNTA4MTgxMDM1ZjgzMDE1MjYxMDI5NDgxNjEwMjViNTY1YjkwNTA5MTkwNTA1NjViN2Y0ZTQ4N2I3MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNWY1MjYwMTE2MDA0NTI2MDI0NWZmZDViNWY2MTAyZDI4MjYxMDE2OTU2NWI5MTUwN2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIwMzYxMDMwNDU3NjEwMzAzNjEwMjliNTY1YjViNjAwMTgyMDE5MDUwOTE5MDUwNTZmZWEyNjQ2OTcwNjY3MzU4MjIxMjIwYmZmZTRkMzU2YzVjNjUyMWY2NzgxZmIxNDExOGI4ZWUxNDZiMGY0NmYxZjU1ODUxODI2YWIyOWIxZWU3YmMxMTY0NzM2ZjZjNjM0MzAwMDgxNjAwMzM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwTlP8V+WunOQmV3A8Z2v5BL/OnjS/Ogi85xqEpcH/tJMU29mUbleNvRiT68kNml4OGgwIrKuzrgYQqPy7hgMiDwoJCPCqs64GELoCEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjxqrOuBhC8AhICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGP8HGiISIKg8vnut3QHwFlWsx6G2e1Xg0vcdWZYNUuiCMLdtPN7wIJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGIAIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjA45e64wUGCmM7ThrLgbi9L/f5+KewFLVp98Q7v2va6gHILZtYU3ufi2M4JVTDTMpoaDAitq7OuBhDY0LOOASIPCgkI8aqzrgYQvAISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQvoICgMYgAgSxQZggGBAUjSAFWEAD1dfgP1bUGAENhBhAEpXXzVg4ByAYxH5X28UYQBOV4BjOjK1SRRhAGxXgGPPxyAHFGEAileAY/9InTEUYQCmV1tfgP1bYQBWYQDEVltgQFFhAGORkGEBUFZbYEBRgJEDkPNbYQB0YQEAVltgQFFhAIGRkGEBgVZbYEBRgJEDkPNbYQCkYASANgOBAZBhAJ+RkGEB+FZbYQEZVlsAW2EArmEBMlZbYEBRYQC7kZBhAVBWW2BAUYCRA5DzW19gQFF/CMN5oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBUmAEAWEA95BhAn1WW2BAUYCRA5D9W1+AX4FUYQEOkGECyFZbkZBQgZBVkFCQVluAc///////////////////////////Fv9bX4D9W1+BFRWQUJGQUFZbYQFKgWEBNlZbglJQUFZbX2AgggGQUGEBY1+DAYRhAUFWW5KRUFBWW1+BkFCRkFBWW2EBe4FhAWlWW4JSUFBWW19gIIIBkFBhAZRfgwGEYQFyVluSkVBQVltfgP1bX3P//////////////////////////4IWkFCRkFBWW19hAceCYQGeVluQUJGQUFZbYQHXgWEBvVZbgRRhAeFXX4D9W1BWW1+BNZBQYQHygWEBzlZbkpFQUFZbX2AggoQDEhVhAg1XYQIMYQGaVltbX2ECGoSChQFhAeRWW5FQUJKRUFBWW1+CglJgIIIBkFCSkVBQVlt/UmV2ZXJ0UmVhc29uAAAAAAAAAAAAAAAAAAAAAAAAAABfggFSUFZbX2ECZ2AMg2ECI1ZbkVBhAnKCYQIzVltgIIIBkFCRkFBWW19gIIIBkFCBgQNfgwFSYQKUgWECW1ZbkFCRkFBWW39OSHtxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF9SYBFgBFJgJF/9W19hAtKCYQFpVluRUH///////////////////////////////////////////4IDYQMEV2EDA2ECm1ZbW2ABggGQUJGQUFb+omRpcGZzWCISIL/+TTVsXGUh9ngfsUEYuO4Uaw9G8fVYUYJqspse57wRZHNvbGNDAAgWADMigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMCaDDoDGIAIShYKFAAAAAAAAAAAAAAAAAAAAAAAAAQAcgcKAxiACBABUhYKCQoCGAIQ/7LFDQoJCgIYYhCAs8UN"}]},"nonceNotUpdatedWhenIntrinsicGasHandlerCheckFailed":{"placeholderNum":1025,"encodedItems":[{"b64Body":"Cg8KCQj2qrOuBhDXAhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIOdGedSzcWK+I7yjaJ4zc/btKfrEoPjAJ3jJ+nPxpdM7EIDIr6AlSgUIgM7aAw==","b64Record":"CiUIFhIDGIIIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjA3idGRsktJkUv5DMy9RwP84f9VrEBFduNmqyi/++v4rhaMsDSebsCUnIf44X+N/BoaDAiyq7OuBhCcytGAAiIPCgkI9qqzrgYQ1wISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxiCCBCAkN/ASg=="},{"b64Body":"ChEKCQj3qrOuBhDZAhICGAIgAVpoCiM6IQOTrRD2Z9qH1h0xEPbiCNHhGyhb+e+63MCB9xiofxpImkoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiEDk60Q9mfah9YdMRD24gjR4RsoW/nvutzAgfcYqH8aSJo=","b64Record":"CgcIFhIDGIMIEjBufhaRt4k8Vvy3BSGL8BdJp4UYhzunruw4PBVqhPZzNlwbMTODoH/69Fgo47bG4RIaCwizq7OuBhCGu9clIhEKCQj3qrOuBhDZAhICGAIgASoUYXV0by1jcmVhdGVkIGFjY291bnRSAKoBFD6q2OHgWzX2GCqOAqDKCA68TixP"},{"b64Body":"Cg8KCQj3qrOuBhDZAhICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcjsKOQoJCgIYAhD/g69fCiwKJSIjOiEDk60Q9mfah9YdMRD24gjR4RsoW/nvutzAgfcYqH8aSJoQgISvXw==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwPGVnFPfItQhcOG3cbNGtVyckom1+oDmw9Fk0DXasKxV3ejdYi5mR9ufWuo2k6BZDGgsIs6uzrgYQh7vXJSIPCgkI96qzrgYQ2QISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIXCgkKAhgCEP+Dr18KCgoDGIMIEICEr18="},{"b64Body":"Cg8KCQj3qrOuBhDbAhICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAiz+Y2yBhCVwfWOAhptCiISILPOYanpvq4oCmN40JEN6EpIgFVakl68GGinHwZoKAiNCiM6IQM4m4kjjewIpMOMgWM8n45IOB3fOgBsYG5GPpeWrfRwSAoiEiCaQAdZbQbGbk52O5903OQ8tz77uv74OFPgf7gv3HV5xiIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGIQIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCmsbCHW0uJuf8Z0k/0NyL8OuL+BunF9FpjFdsLfngIbbJHMqYvjjyTAtIw3CpXlpEaDAizq7OuBhDiwo+nAiIPCgkI96qzrgYQ2wISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQj4qrOuBhDfAhICGAISAhgDGITr6jMiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoB0g0KAxiECCLKDTYwODA2MDQwNTI1ZjgwNTUzNDgwMTU2MTAwMTI1NzVmODBmZDViNTA2MTAzNDU4MDYxMDAyMDVmMzk1ZmYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDBmNTc1ZjgwZmQ1YjUwNjAwNDM2MTA2MTAwNGE1NzVmMzU2MGUwMWM4MDYzMTFmOTVmNmYxNDYxMDA0ZTU3ODA2MzNhMzJiNTQ5MTQ2MTAwNmM1NzgwNjNjZmM3MjAwNzE0NjEwMDhhNTc4MDYzZmY0ODlkMzExNDYxMDBhNjU3NWI1ZjgwZmQ1YjYxMDA1NjYxMDBjNDU2NWI2MDQwNTE2MTAwNjM5MTkwNjEwMTUwNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDA3NDYxMDEwMDU2NWI2MDQwNTE2MTAwODE5MTkwNjEwMTgxNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDBhNDYwMDQ4MDM2MDM4MTAxOTA2MTAwOWY5MTkwNjEwMWY4NTY1YjYxMDExOTU2NWIwMDViNjEwMGFlNjEwMTMyNTY1YjYwNDA1MTYxMDBiYjkxOTA2MTAxNTA1NjViNjA0MDUxODA5MTAzOTBmMzViNWY2MDQwNTE3ZjA4YzM3OWEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MTUyNjAwNDAxNjEwMGY3OTA2MTAyN2Q1NjViNjA0MDUxODA5MTAzOTBmZDViNWY4MDVmODE1NDYxMDEwZTkwNjEwMmM4NTY1YjkxOTA1MDgxOTA1NTkwNTA5MDU2NWI4MDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ZmY1YjVmODBmZDViNWY4MTE1MTU5MDUwOTE5MDUwNTY1YjYxMDE0YTgxNjEwMTM2NTY1YjgyNTI1MDUwNTY1YjVmNjAyMDgyMDE5MDUwNjEwMTYzNWY4MzAxODQ2MTAxNDE1NjViOTI5MTUwNTA1NjViNWY4MTkwNTA5MTkwNTA1NjViNjEwMTdiODE2MTAxNjk1NjViODI1MjUwNTA1NjViNWY2MDIwODIwMTkwNTA2MTAxOTQ1ZjgzMDE4NDYxMDE3MjU2NWI5MjkxNTA1MDU2NWI1ZjgwZmQ1YjVmNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIxNjkwNTA5MTkwNTA1NjViNWY2MTAxYzc4MjYxMDE5ZTU2NWI5MDUwOTE5MDUwNTY1YjYxMDFkNzgxNjEwMWJkNTY1YjgxMTQ2MTAxZTE1NzVmODBmZDViNTA1NjViNWY4MTM1OTA1MDYxMDFmMjgxNjEwMWNlNTY1YjkyOTE1MDUwNTY1YjVmNjAyMDgyODQwMzEyMTU2MTAyMGQ1NzYxMDIwYzYxMDE5YTU2NWI1YjVmNjEwMjFhODQ4Mjg1MDE2MTAxZTQ1NjViOTE1MDUwOTI5MTUwNTA1NjViNWY4MjgyNTI2MDIwODIwMTkwNTA5MjkxNTA1MDU2NWI3ZjUyNjU3NjY1NzI3NDUyNjU2MTczNmY2ZTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1ZjgyMDE1MjUwNTY1YjVmNjEwMjY3NjAwYzgzNjEwMjIzNTY1YjkxNTA2MTAyNzI4MjYxMDIzMzU2NWI2MDIwODIwMTkwNTA5MTkwNTA1NjViNWY2MDIwODIwMTkwNTA4MTgxMDM1ZjgzMDE1MjYxMDI5NDgxNjEwMjViNTY1YjkwNTA5MTkwNTA1NjViN2Y0ZTQ4N2I3MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNWY1MjYwMTE2MDA0NTI2MDI0NWZmZDViNWY2MTAyZDI4MjYxMDE2OTU2NWI5MTUwN2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIwMzYxMDMwNDU3NjEwMzAzNjEwMjliNTY1YjViNjAwMTgyMDE5MDUwOTE5MDUwNTZmZWEyNjQ2OTcwNjY3MzU4MjIxMjIwYmZmZTRkMzU2YzVjNjUyMWY2NzgxZmIxNDExOGI4ZWUxNDZiMGY0NmYxZjU1ODUxODI2YWIyOWIxZWU3YmMxMTY0NzM2ZjZjNjM0MzAwMDgxNjAwMzM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw9jpGGONKuq4qqyr+q2ku312MSKsZCwyQXC7Z+gV7Lv/0OEN6QpbV9XPvNlpw3PfiGgsItKuzrgYQp9/9LiIPCgkI+KqzrgYQ3wISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQj4qrOuBhDhAhICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGIQIGiISILg2ojGj/Zs847m8qcbmhHj0kbspm0hPNb2q5pJ3ZzhlIJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGIUIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCjDuHPnGNbf8Q7N7ySWygpzFsZflCJUNIfAcqyacH/eFuhONmuVzX0D2vX9TkOur8aDAi0q7OuBhD9o7GwAiIPCgkI+KqzrgYQ4QISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQvoICgMYhQgSxQZggGBAUjSAFWEAD1dfgP1bUGAENhBhAEpXXzVg4ByAYxH5X28UYQBOV4BjOjK1SRRhAGxXgGPPxyAHFGEAileAY/9InTEUYQCmV1tfgP1bYQBWYQDEVltgQFFhAGORkGEBUFZbYEBRgJEDkPNbYQB0YQEAVltgQFFhAIGRkGEBgVZbYEBRgJEDkPNbYQCkYASANgOBAZBhAJ+RkGEB+FZbYQEZVlsAW2EArmEBMlZbYEBRYQC7kZBhAVBWW2BAUYCRA5DzW19gQFF/CMN5oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBUmAEAWEA95BhAn1WW2BAUYCRA5D9W1+AX4FUYQEOkGECyFZbkZBQgZBVkFCQVluAc///////////////////////////Fv9bX4D9W1+BFRWQUJGQUFZbYQFKgWEBNlZbglJQUFZbX2AgggGQUGEBY1+DAYRhAUFWW5KRUFBWW1+BkFCRkFBWW2EBe4FhAWlWW4JSUFBWW19gIIIBkFBhAZRfgwGEYQFyVluSkVBQVltfgP1bX3P//////////////////////////4IWkFCRkFBWW19hAceCYQGeVluQUJGQUFZbYQHXgWEBvVZbgRRhAeFXX4D9W1BWW1+BNZBQYQHygWEBzlZbkpFQUFZbX2AggoQDEhVhAg1XYQIMYQGaVltbX2ECGoSChQFhAeRWW5FQUJKRUFBWW1+CglJgIIIBkFCSkVBQVlt/UmV2ZXJ0UmVhc29uAAAAAAAAAAAAAAAAAAAAAAAAAABfggFSUFZbX2ECZ2AMg2ECI1ZbkVBhAnKCYQIzVltgIIIBkFCRkFBWW19gIIIBkFCBgQNfgwFSYQKUgWECW1ZbkFCRkFBWW39OSHtxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF9SYBFgBFJgJF/9W19hAtKCYQFpVluRUH///////////////////////////////////////////4IDYQMEV2EDA2ECm1ZbW2ABggGQUJGQUFb+omRpcGZzWCISIL/+TTVsXGUh9ngfsUEYuO4Uaw9G8fVYUYJqspse57wRZHNvbGNDAAgWADMigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMCaDDoDGIUIShYKFAAAAAAAAAAAAAAAAAAAAAAAAAQFcgcKAxiFCBABUhYKCQoCGAIQ/7LFDQoJCgIYYhCAs8UN"},{"b64Body":"ChAKCQj5qrOuBhDjAhIDGIIIEgIYAxib3MIVIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA7QBCqsBAvioggEqgKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0alKIAIJSCJQAAAAAAAAAAAAAAAAAAAAAAAAEBYCEOjK1ScABoDuq5cFFR6ZiOwrb+5YJkQEnjINUpusPEF92O4/6sbRjoDov5mhn8wZIO4Svznj48QKvEvhDkPScjgCBmbara1nTGIDKte4B","b64Record":"CiAIHiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwEUfhaVMmoPhnMR66YGlV0xRlOInOsZ1+45x/HCYud/q2Ow9b/l2P49qveNAEXs8eGgsItauzrgYQht/NOCIQCgkI+aqzrgYQ4wISAxiCCCogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wm9zCFTo1GiIweDQ5NGU1MzU1NDY0NjQ5NDM0OTQ1NGU1NDVmNDc0MTUzUIikAWIEOjK1SWoDGIMIegBSOgoJCgIYAxDmzsQBCgkKAhhiEKihmiEKCgoDGKAGEJSkkwQKCgoDGKEGEJSkkwQKCgoDGIIIELW4hSuKASBLmqC7lTLMy6a7XleJUEmK9oaJt7UVHE5B3DU61CkFgg=="}]},"nonceNotUpdatedWhenUserOfferedGasPriceAndAllowanceAreZeroHandlerCheckFailed":{"placeholderNum":1030,"encodedItems":[{"b64Body":"Cg8KCQj9qrOuBhD7AhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIAmXRWWOtt6qqGjWsR/iGoRmZDGm4FCXhobOEz7DZ7HOEIDIr6AlSgUIgM7aAw==","b64Record":"CiUIFhIDGIcIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAnG+MkP0Rcc6VFHxfNh4O1rR8XIoPHEeMF37qMjbM0VxIpp0IIx91NfN6u91l6J8oaDAi5q7OuBhCdoei6AyIPCgkI/aqzrgYQ+wISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxiHCBCAkN/ASg=="},{"b64Body":"ChEKCQj+qrOuBhD9AhICGAIgAVpoCiM6IQOillubb8zOS0LVupbTnsCJfFj7D63lhG+1UugSm5dKqUoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiEDopZbm2/MzktC1bqW057AiXxY+w+t5YRvtVLoEpuXSqk=","b64Record":"CgcIFhIDGIgIEjC/8ZSRREAaN3UXP55ptGeOmmt5OuQt5wKtwMxsGxPHVfPlZdcSgd7Q3mSq+lJ2NboaDAi6q7OuBhDV/tXCASIRCgkI/qqzrgYQ/QISAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARTIGszPTUX/nycjruPshRv/xPPgFw=="},{"b64Body":"Cg8KCQj+qrOuBhD9AhICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcjsKOQoJCgIYAhD/g69fCiwKJSIjOiEDopZbm2/MzktC1bqW057AiXxY+w+t5YRvtVLoEpuXSqkQgISvXw==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIweP1reKMryGIjJLV5aKIOdx+YCWFJV7T8Rz/cKU/iArh2Q9HmqzDANT6P9PaFrEbZGgwIuquzrgYQ1v7VwgEiDwoJCP6qs64GEP0CEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SFwoJCgIYAhD/g69fCgoKAxiICBCAhK9f"},{"b64Body":"Cg8KCQj+qrOuBhD/AhICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAi6+Y2yBhDQ0r+jAxptCiISIIIrVzZvdPGGTIAqvbxY03urAW6keWVk9r8h+OQxLuqoCiM6IQJLQq8YgQNfZRila2Iwc8iB0fYvfC7WCIHpYETggRdlmgoiEiAvOlyh/+ETTfG9Gba4pFyrQTNlSyXmHeqddwqeiGiiXyIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGIkIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDw7hWZwPPIE8agWGLutLipRW0i5YDlvRkfOQ0t1ZRDICgvOhZBAOFBRmy4AewWZBEaDAi6q7OuBhDK4OynAyIPCgkI/qqzrgYQ/wISAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQj/qrOuBhCDAxICGAISAhgDGITr6jMiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoB0g0KAxiJCCLKDTYwODA2MDQwNTI1ZjgwNTUzNDgwMTU2MTAwMTI1NzVmODBmZDViNTA2MTAzNDU4MDYxMDAyMDVmMzk1ZmYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDBmNTc1ZjgwZmQ1YjUwNjAwNDM2MTA2MTAwNGE1NzVmMzU2MGUwMWM4MDYzMTFmOTVmNmYxNDYxMDA0ZTU3ODA2MzNhMzJiNTQ5MTQ2MTAwNmM1NzgwNjNjZmM3MjAwNzE0NjEwMDhhNTc4MDYzZmY0ODlkMzExNDYxMDBhNjU3NWI1ZjgwZmQ1YjYxMDA1NjYxMDBjNDU2NWI2MDQwNTE2MTAwNjM5MTkwNjEwMTUwNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDA3NDYxMDEwMDU2NWI2MDQwNTE2MTAwODE5MTkwNjEwMTgxNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDBhNDYwMDQ4MDM2MDM4MTAxOTA2MTAwOWY5MTkwNjEwMWY4NTY1YjYxMDExOTU2NWIwMDViNjEwMGFlNjEwMTMyNTY1YjYwNDA1MTYxMDBiYjkxOTA2MTAxNTA1NjViNjA0MDUxODA5MTAzOTBmMzViNWY2MDQwNTE3ZjA4YzM3OWEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MTUyNjAwNDAxNjEwMGY3OTA2MTAyN2Q1NjViNjA0MDUxODA5MTAzOTBmZDViNWY4MDVmODE1NDYxMDEwZTkwNjEwMmM4NTY1YjkxOTA1MDgxOTA1NTkwNTA5MDU2NWI4MDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ZmY1YjVmODBmZDViNWY4MTE1MTU5MDUwOTE5MDUwNTY1YjYxMDE0YTgxNjEwMTM2NTY1YjgyNTI1MDUwNTY1YjVmNjAyMDgyMDE5MDUwNjEwMTYzNWY4MzAxODQ2MTAxNDE1NjViOTI5MTUwNTA1NjViNWY4MTkwNTA5MTkwNTA1NjViNjEwMTdiODE2MTAxNjk1NjViODI1MjUwNTA1NjViNWY2MDIwODIwMTkwNTA2MTAxOTQ1ZjgzMDE4NDYxMDE3MjU2NWI5MjkxNTA1MDU2NWI1ZjgwZmQ1YjVmNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIxNjkwNTA5MTkwNTA1NjViNWY2MTAxYzc4MjYxMDE5ZTU2NWI5MDUwOTE5MDUwNTY1YjYxMDFkNzgxNjEwMWJkNTY1YjgxMTQ2MTAxZTE1NzVmODBmZDViNTA1NjViNWY4MTM1OTA1MDYxMDFmMjgxNjEwMWNlNTY1YjkyOTE1MDUwNTY1YjVmNjAyMDgyODQwMzEyMTU2MTAyMGQ1NzYxMDIwYzYxMDE5YTU2NWI1YjVmNjEwMjFhODQ4Mjg1MDE2MTAxZTQ1NjViOTE1MDUwOTI5MTUwNTA1NjViNWY4MjgyNTI2MDIwODIwMTkwNTA5MjkxNTA1MDU2NWI3ZjUyNjU3NjY1NzI3NDUyNjU2MTczNmY2ZTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1ZjgyMDE1MjUwNTY1YjVmNjEwMjY3NjAwYzgzNjEwMjIzNTY1YjkxNTA2MTAyNzI4MjYxMDIzMzU2NWI2MDIwODIwMTkwNTA5MTkwNTA1NjViNWY2MDIwODIwMTkwNTA4MTgxMDM1ZjgzMDE1MjYxMDI5NDgxNjEwMjViNTY1YjkwNTA5MTkwNTA1NjViN2Y0ZTQ4N2I3MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNWY1MjYwMTE2MDA0NTI2MDI0NWZmZDViNWY2MTAyZDI4MjYxMDE2OTU2NWI5MTUwN2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIwMzYxMDMwNDU3NjEwMzAzNjEwMjliNTY1YjViNjAwMTgyMDE5MDUwOTE5MDUwNTZmZWEyNjQ2OTcwNjY3MzU4MjIxMjIwYmZmZTRkMzU2YzVjNjUyMWY2NzgxZmIxNDExOGI4ZWUxNDZiMGY0NmYxZjU1ODUxODI2YWIyOWIxZWU3YmMxMTY0NzM2ZjZjNjM0MzAwMDgxNjAwMzM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwWlHyRmAEURZQW3AeIwgSUCA+An2YaElzLlRVAFixi2YjVHs82cWDQka2vIhfNK/zGgwIu6uzrgYQlta3zAEiDwoJCP+qs64GEIMDEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQj/qrOuBhCFAxICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGIkIGiISIJjTSwt61TGVLxL4MSsFn7TEnXVp4pXXcutvVflFmRyGIJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGIoIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCG7mJ1WV3LEnSfGhB+IJT65ZeghNcmgxYsEZmQZD/HZqirn6oeKYXwdOkclSCr82AaDAi7q7OuBhC35uXNAyIPCgkI/6qzrgYQhQMSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQvoICgMYiggSxQZggGBAUjSAFWEAD1dfgP1bUGAENhBhAEpXXzVg4ByAYxH5X28UYQBOV4BjOjK1SRRhAGxXgGPPxyAHFGEAileAY/9InTEUYQCmV1tfgP1bYQBWYQDEVltgQFFhAGORkGEBUFZbYEBRgJEDkPNbYQB0YQEAVltgQFFhAIGRkGEBgVZbYEBRgJEDkPNbYQCkYASANgOBAZBhAJ+RkGEB+FZbYQEZVlsAW2EArmEBMlZbYEBRYQC7kZBhAVBWW2BAUYCRA5DzW19gQFF/CMN5oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBUmAEAWEA95BhAn1WW2BAUYCRA5D9W1+AX4FUYQEOkGECyFZbkZBQgZBVkFCQVluAc///////////////////////////Fv9bX4D9W1+BFRWQUJGQUFZbYQFKgWEBNlZbglJQUFZbX2AgggGQUGEBY1+DAYRhAUFWW5KRUFBWW1+BkFCRkFBWW2EBe4FhAWlWW4JSUFBWW19gIIIBkFBhAZRfgwGEYQFyVluSkVBQVltfgP1bX3P//////////////////////////4IWkFCRkFBWW19hAceCYQGeVluQUJGQUFZbYQHXgWEBvVZbgRRhAeFXX4D9W1BWW1+BNZBQYQHygWEBzlZbkpFQUFZbX2AggoQDEhVhAg1XYQIMYQGaVltbX2ECGoSChQFhAeRWW5FQUJKRUFBWW1+CglJgIIIBkFCSkVBQVlt/UmV2ZXJ0UmVhc29uAAAAAAAAAAAAAAAAAAAAAAAAAABfggFSUFZbX2ECZ2AMg2ECI1ZbkVBhAnKCYQIzVltgIIIBkFCRkFBWW19gIIIBkFCBgQNfgwFSYQKUgWECW1ZbkFCRkFBWW39OSHtxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF9SYBFgBFJgJF/9W19hAtKCYQFpVluRUH///////////////////////////////////////////4IDYQMEV2EDA2ECm1ZbW2ABggGQUJGQUFb+omRpcGZzWCISIL/+TTVsXGUh9ngfsUEYuO4Uaw9G8fVYUYJqspse57wRZHNvbGNDAAgWADMigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMCaDDoDGIoIShYKFAAAAAAAAAAAAAAAAAAAAAAAAAQKcgcKAxiKCBABUhYKCQoCGAIQ/7LFDQoJCgIYYhCAs8UN"}]},"nonceNotUpdatedWhenOfferedGasPriceIsLessThanCurrentAndSenderDoesNotHaveEnoughBalanceHandlerCheckFailed":{"placeholderNum":1035,"encodedItems":[{"b64Body":"Cg8KCQiFq7OuBhCfAxICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIFJe/Q2+bSkkgS3koD9EQLkfmniZ2AZvvGSdQSGvxVfxEIDIr6AlSgUIgM7aAw==","b64Record":"CiUIFhIDGIwIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBqL6lMDeiH+MpPrCOxjt6/yLcUWcTtQhBMQv2pw0glF8+s0a4aP6MIRf16H/25itMaCwjBq7OuBhCMm752Ig8KCQiFq7OuBhCfAxICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUhkKCgoCGAIQ/4/fwEoKCwoDGIwIEICQ38BK"},{"b64Body":"ChEKCQiFq7OuBhChAxICGAIgAVpoCiM6IQMnWcxCnizMEDzEqlybXXegCRbrryT/zes1PLfCXMHmTEoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiEDJ1nMQp4szBA8xKpcm113oAkW668k/83rNTy3wlzB5kw=","b64Record":"CgcIFhIDGI0IEjCuxnYX4NBLfVUGeVSvmEDwXBXCl2aq/wovYYHyxgS9YnQ/Q6vrczjMP06VYWELoZkaDAjBq7OuBhC72KjbAiIRCgkIhauzrgYQoQMSAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARR1GMW1QmnXV4hfOTON4ECjGlOY0w=="},{"b64Body":"Cg8KCQiFq7OuBhChAxICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcjUKMwoGCgIYAhABCikKJSIjOiEDJ1nMQp4szBA8xKpcm113oAkW668k/83rNTy3wlzB5kwQAg==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwDCys1zss+otjjoVi7uBEwA7rZJmBg53uWV2QQrGgUj1I0pRJ81cMKEkiOcQMAmmlGgwIwauzrgYQvNio2wIiDwoJCIWrs64GEKEDEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SEQoGCgIYAhABCgcKAxiNCBAC"},{"b64Body":"Cg8KCQiGq7OuBhCjAxICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjgESCwjC+Y2yBhCW7qpmGm0KIhIg5U3+YwtUM6mNr8FGO8otyg8go1cqTsmLI0LcpZWpF9UKIzohAusvji39Vq7CITqhlpdaawEYapGdzn3fSsMm24+14kmiCiISIDwcxf46bNW6O4oOs8cfWMf5EOml2AlGj2uD5QY2L2BIIgxIZWxsbyBXb3JsZCEqADIA","b64Record":"CiUIFhoDGI4IKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDEpnXyhJr2BLU9pacEGtsIbImCsjoEVvmNtJGoOLSbhy/KlHVi8QV+cPRvjhGpx68aCwjCq7OuBhDamux/Ig8KCQiGq7OuBhCjAxICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgA="},{"b64Body":"Cg8KCQiGq7OuBhCnAxICGAISAhgDGITr6jMiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoB0g0KAxiOCCLKDTYwODA2MDQwNTI1ZjgwNTUzNDgwMTU2MTAwMTI1NzVmODBmZDViNTA2MTAzNDU4MDYxMDAyMDVmMzk1ZmYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDBmNTc1ZjgwZmQ1YjUwNjAwNDM2MTA2MTAwNGE1NzVmMzU2MGUwMWM4MDYzMTFmOTVmNmYxNDYxMDA0ZTU3ODA2MzNhMzJiNTQ5MTQ2MTAwNmM1NzgwNjNjZmM3MjAwNzE0NjEwMDhhNTc4MDYzZmY0ODlkMzExNDYxMDBhNjU3NWI1ZjgwZmQ1YjYxMDA1NjYxMDBjNDU2NWI2MDQwNTE2MTAwNjM5MTkwNjEwMTUwNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDA3NDYxMDEwMDU2NWI2MDQwNTE2MTAwODE5MTkwNjEwMTgxNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDBhNDYwMDQ4MDM2MDM4MTAxOTA2MTAwOWY5MTkwNjEwMWY4NTY1YjYxMDExOTU2NWIwMDViNjEwMGFlNjEwMTMyNTY1YjYwNDA1MTYxMDBiYjkxOTA2MTAxNTA1NjViNjA0MDUxODA5MTAzOTBmMzViNWY2MDQwNTE3ZjA4YzM3OWEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MTUyNjAwNDAxNjEwMGY3OTA2MTAyN2Q1NjViNjA0MDUxODA5MTAzOTBmZDViNWY4MDVmODE1NDYxMDEwZTkwNjEwMmM4NTY1YjkxOTA1MDgxOTA1NTkwNTA5MDU2NWI4MDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ZmY1YjVmODBmZDViNWY4MTE1MTU5MDUwOTE5MDUwNTY1YjYxMDE0YTgxNjEwMTM2NTY1YjgyNTI1MDUwNTY1YjVmNjAyMDgyMDE5MDUwNjEwMTYzNWY4MzAxODQ2MTAxNDE1NjViOTI5MTUwNTA1NjViNWY4MTkwNTA5MTkwNTA1NjViNjEwMTdiODE2MTAxNjk1NjViODI1MjUwNTA1NjViNWY2MDIwODIwMTkwNTA2MTAxOTQ1ZjgzMDE4NDYxMDE3MjU2NWI5MjkxNTA1MDU2NWI1ZjgwZmQ1YjVmNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIxNjkwNTA5MTkwNTA1NjViNWY2MTAxYzc4MjYxMDE5ZTU2NWI5MDUwOTE5MDUwNTY1YjYxMDFkNzgxNjEwMWJkNTY1YjgxMTQ2MTAxZTE1NzVmODBmZDViNTA1NjViNWY4MTM1OTA1MDYxMDFmMjgxNjEwMWNlNTY1YjkyOTE1MDUwNTY1YjVmNjAyMDgyODQwMzEyMTU2MTAyMGQ1NzYxMDIwYzYxMDE5YTU2NWI1YjVmNjEwMjFhODQ4Mjg1MDE2MTAxZTQ1NjViOTE1MDUwOTI5MTUwNTA1NjViNWY4MjgyNTI2MDIwODIwMTkwNTA5MjkxNTA1MDU2NWI3ZjUyNjU3NjY1NzI3NDUyNjU2MTczNmY2ZTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1ZjgyMDE1MjUwNTY1YjVmNjEwMjY3NjAwYzgzNjEwMjIzNTY1YjkxNTA2MTAyNzI4MjYxMDIzMzU2NWI2MDIwODIwMTkwNTA5MTkwNTA1NjViNWY2MDIwODIwMTkwNTA4MTgxMDM1ZjgzMDE1MjYxMDI5NDgxNjEwMjViNTY1YjkwNTA5MTkwNTA1NjViN2Y0ZTQ4N2I3MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNWY1MjYwMTE2MDA0NTI2MDI0NWZmZDViNWY2MTAyZDI4MjYxMDE2OTU2NWI5MTUwN2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIwMzYxMDMwNDU3NjEwMzAzNjEwMjliNTY1YjViNjAwMTgyMDE5MDUwOTE5MDUwNTZmZWEyNjQ2OTcwNjY3MzU4MjIxMjIwYmZmZTRkMzU2YzVjNjUyMWY2NzgxZmIxNDExOGI4ZWUxNDZiMGY0NmYxZjU1ODUxODI2YWIyOWIxZWU3YmMxMTY0NzM2ZjZjNjM0MzAwMDgxNjAwMzM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwtpugyE/Zcwasyv0/nyHPaHkNZnGY86C6qRkRLmN7K51QxK/uYEuSMQDSzeiMFxWOGgwIwquzrgYQx/2C5QIiDwoJCIars64GEKcDEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQiHq7OuBhCpAxICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGI4IGiISIGZY+mOiiyPqJcs0OiYgIJItNlve7mM2ecbPeKUVPDPnIJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGI8IKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjC+UPQtFxyWgs10+tFCFGG64sYEFs60N72jGYucFeFyXy0JlaDsWHO382XxFHBwMQsaDAjDq7OuBhDQvcyJASIPCgkIh6uzrgYQqQMSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQvoICgMYjwgSxQZggGBAUjSAFWEAD1dfgP1bUGAENhBhAEpXXzVg4ByAYxH5X28UYQBOV4BjOjK1SRRhAGxXgGPPxyAHFGEAileAY/9InTEUYQCmV1tfgP1bYQBWYQDEVltgQFFhAGORkGEBUFZbYEBRgJEDkPNbYQB0YQEAVltgQFFhAIGRkGEBgVZbYEBRgJEDkPNbYQCkYASANgOBAZBhAJ+RkGEB+FZbYQEZVlsAW2EArmEBMlZbYEBRYQC7kZBhAVBWW2BAUYCRA5DzW19gQFF/CMN5oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBUmAEAWEA95BhAn1WW2BAUYCRA5D9W1+AX4FUYQEOkGECyFZbkZBQgZBVkFCQVluAc///////////////////////////Fv9bX4D9W1+BFRWQUJGQUFZbYQFKgWEBNlZbglJQUFZbX2AgggGQUGEBY1+DAYRhAUFWW5KRUFBWW1+BkFCRkFBWW2EBe4FhAWlWW4JSUFBWW19gIIIBkFBhAZRfgwGEYQFyVluSkVBQVltfgP1bX3P//////////////////////////4IWkFCRkFBWW19hAceCYQGeVluQUJGQUFZbYQHXgWEBvVZbgRRhAeFXX4D9W1BWW1+BNZBQYQHygWEBzlZbkpFQUFZbX2AggoQDEhVhAg1XYQIMYQGaVltbX2ECGoSChQFhAeRWW5FQUJKRUFBWW1+CglJgIIIBkFCSkVBQVlt/UmV2ZXJ0UmVhc29uAAAAAAAAAAAAAAAAAAAAAAAAAABfggFSUFZbX2ECZ2AMg2ECI1ZbkVBhAnKCYQIzVltgIIIBkFCRkFBWW19gIIIBkFCBgQNfgwFSYQKUgWECW1ZbkFCRkFBWW39OSHtxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF9SYBFgBFJgJF/9W19hAtKCYQFpVluRUH///////////////////////////////////////////4IDYQMEV2EDA2ECm1ZbW2ABggGQUJGQUFb+omRpcGZzWCISIL/+TTVsXGUh9ngfsUEYuO4Uaw9G8fVYUYJqspse57wRZHNvbGNDAAgWADMigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMCaDDoDGI8IShYKFAAAAAAAAAAAAAAAAAAAAAAAAAQPcgcKAxiPCBABUhYKCQoCGAIQ/7LFDQoJCgIYYhCAs8UN"}]},"nonceNotUpdatedWhenOfferedGasPriceIsLessThanCurrentAndGasAllowanceIsLessThanRemainingFeeHandlerCheckFailed":{"placeholderNum":1040,"encodedItems":[{"b64Body":"Cg8KCQiMq7OuBhDDAxICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIGVLOCRJUKGzHhz+6v+lxz6keazKB/QriRiVOUbciooKEIDIr6AlSgUIgM7aAw==","b64Record":"CiUIFhIDGJEIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAUNfgIxHWEF5IZN5DPvKuZVq8HavjAKUUtgQ2KzOWwCrzm2a1+O+gsLtQZieD4tFUaDAjIq7OuBhDFpp2PAiIPCgkIjKuzrgYQwwMSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxiRCBCAkN/ASg=="},{"b64Body":"ChEKCQiNq7OuBhDFAxICGAIgAVpoCiM6IQNz0fKUIQV7Wc+RK1QNTY0IkDXXrVhnXYjfWA0ErubO60oFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiEDc9HylCEFe1nPkStUDU2NCJA1161YZ12I31gNBK7mzus=","b64Record":"CgcIFhIDGJIIEjA2dEwNqRBZbdXLqL9TARRoqXOqX7hwQTRtWcXvmcnj5m1RaF7E/QNsf2tNs4ik0pYaCwjJq7OuBhD9vv4WIhEKCQiNq7OuBhDFAxICGAIgASoUYXV0by1jcmVhdGVkIGFjY291bnRSAKoBFKTW8FyfMsS7upSJE1q0uYP51RUY"},{"b64Body":"Cg8KCQiNq7OuBhDFAxICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcj0KOwoKCgIYAhD/j9/ASgotCiUiIzohA3PR8pQhBXtZz5ErVA1NjQiQNdetWGddiN9YDQSu5s7rEICQ38BK","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwAsFyEKmRJYOZn69gf7aiRQrtf+w7VdKKxHlkNR86cO2FCQldfdZKdX3ZQ8h0fmvAGgsIyauzrgYQ/r7+FiIPCgkIjauzrgYQxQMSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxiSCBCAkN/ASg=="},{"b64Body":"Cg8KCQiNq7OuBhDHAxICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAjJ+Y2yBhC+i6GBAhptCiISILwI+Et7yI9OMd9P5yOzZhTr/3rK9Axg/n/Nyiz232x0CiM6IQI5KWlpdIB5JHbG+VCQBhyNYMRv0yi0tnzB2SKaPrkqAgoiEiAGXeKzy++XwkexbzZjCmnu3KW1UWWoI8lil2aXUU8WDiIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGJMIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAuYkXDxychQdlJzw3EreArzkRQTBLqSErzk9q0ZCYbvAqzMCLBWm/yS5Ic57kxFPMaDAjJq7OuBhCLh7yYAiIPCgkIjauzrgYQxwMSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiOq7OuBhDLAxICGAISAhgDGITr6jMiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoB0g0KAxiTCCLKDTYwODA2MDQwNTI1ZjgwNTUzNDgwMTU2MTAwMTI1NzVmODBmZDViNTA2MTAzNDU4MDYxMDAyMDVmMzk1ZmYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDBmNTc1ZjgwZmQ1YjUwNjAwNDM2MTA2MTAwNGE1NzVmMzU2MGUwMWM4MDYzMTFmOTVmNmYxNDYxMDA0ZTU3ODA2MzNhMzJiNTQ5MTQ2MTAwNmM1NzgwNjNjZmM3MjAwNzE0NjEwMDhhNTc4MDYzZmY0ODlkMzExNDYxMDBhNjU3NWI1ZjgwZmQ1YjYxMDA1NjYxMDBjNDU2NWI2MDQwNTE2MTAwNjM5MTkwNjEwMTUwNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDA3NDYxMDEwMDU2NWI2MDQwNTE2MTAwODE5MTkwNjEwMTgxNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDBhNDYwMDQ4MDM2MDM4MTAxOTA2MTAwOWY5MTkwNjEwMWY4NTY1YjYxMDExOTU2NWIwMDViNjEwMGFlNjEwMTMyNTY1YjYwNDA1MTYxMDBiYjkxOTA2MTAxNTA1NjViNjA0MDUxODA5MTAzOTBmMzViNWY2MDQwNTE3ZjA4YzM3OWEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MTUyNjAwNDAxNjEwMGY3OTA2MTAyN2Q1NjViNjA0MDUxODA5MTAzOTBmZDViNWY4MDVmODE1NDYxMDEwZTkwNjEwMmM4NTY1YjkxOTA1MDgxOTA1NTkwNTA5MDU2NWI4MDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ZmY1YjVmODBmZDViNWY4MTE1MTU5MDUwOTE5MDUwNTY1YjYxMDE0YTgxNjEwMTM2NTY1YjgyNTI1MDUwNTY1YjVmNjAyMDgyMDE5MDUwNjEwMTYzNWY4MzAxODQ2MTAxNDE1NjViOTI5MTUwNTA1NjViNWY4MTkwNTA5MTkwNTA1NjViNjEwMTdiODE2MTAxNjk1NjViODI1MjUwNTA1NjViNWY2MDIwODIwMTkwNTA2MTAxOTQ1ZjgzMDE4NDYxMDE3MjU2NWI5MjkxNTA1MDU2NWI1ZjgwZmQ1YjVmNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIxNjkwNTA5MTkwNTA1NjViNWY2MTAxYzc4MjYxMDE5ZTU2NWI5MDUwOTE5MDUwNTY1YjYxMDFkNzgxNjEwMWJkNTY1YjgxMTQ2MTAxZTE1NzVmODBmZDViNTA1NjViNWY4MTM1OTA1MDYxMDFmMjgxNjEwMWNlNTY1YjkyOTE1MDUwNTY1YjVmNjAyMDgyODQwMzEyMTU2MTAyMGQ1NzYxMDIwYzYxMDE5YTU2NWI1YjVmNjEwMjFhODQ4Mjg1MDE2MTAxZTQ1NjViOTE1MDUwOTI5MTUwNTA1NjViNWY4MjgyNTI2MDIwODIwMTkwNTA5MjkxNTA1MDU2NWI3ZjUyNjU3NjY1NzI3NDUyNjU2MTczNmY2ZTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1ZjgyMDE1MjUwNTY1YjVmNjEwMjY3NjAwYzgzNjEwMjIzNTY1YjkxNTA2MTAyNzI4MjYxMDIzMzU2NWI2MDIwODIwMTkwNTA5MTkwNTA1NjViNWY2MDIwODIwMTkwNTA4MTgxMDM1ZjgzMDE1MjYxMDI5NDgxNjEwMjViNTY1YjkwNTA5MTkwNTA1NjViN2Y0ZTQ4N2I3MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNWY1MjYwMTE2MDA0NTI2MDI0NWZmZDViNWY2MTAyZDI4MjYxMDE2OTU2NWI5MTUwN2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIwMzYxMDMwNDU3NjEwMzAzNjEwMjliNTY1YjViNjAwMTgyMDE5MDUwOTE5MDUwNTZmZWEyNjQ2OTcwNjY3MzU4MjIxMjIwYmZmZTRkMzU2YzVjNjUyMWY2NzgxZmIxNDExOGI4ZWUxNDZiMGY0NmYxZjU1ODUxODI2YWIyOWIxZWU3YmMxMTY0NzM2ZjZjNjM0MzAwMDgxNjAwMzM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwz5q43SDeZgxS1PYDup6vnxsCsV1n8hPnwv7UJDkPNdbtyE50YvCh6sk5DctWFwbsGgsIyquzrgYQrcTZICIPCgkIjquzrgYQywMSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiOq7OuBhDNAxICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGJMIGiISILRjlgGQa6OGeAnehW5zdQuKI7CWOsBvldElUhU1gSnuIJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGJQIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBrajsb0h6BEskK3mpDywqCopuzGhMmyWJVLUKwRrCl5iUHOTLAQOTo80DNMrCg2vYaDAjKq7OuBhCJ27GiAiIPCgkIjquzrgYQzQMSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQvoICgMYlAgSxQZggGBAUjSAFWEAD1dfgP1bUGAENhBhAEpXXzVg4ByAYxH5X28UYQBOV4BjOjK1SRRhAGxXgGPPxyAHFGEAileAY/9InTEUYQCmV1tfgP1bYQBWYQDEVltgQFFhAGORkGEBUFZbYEBRgJEDkPNbYQB0YQEAVltgQFFhAIGRkGEBgVZbYEBRgJEDkPNbYQCkYASANgOBAZBhAJ+RkGEB+FZbYQEZVlsAW2EArmEBMlZbYEBRYQC7kZBhAVBWW2BAUYCRA5DzW19gQFF/CMN5oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBUmAEAWEA95BhAn1WW2BAUYCRA5D9W1+AX4FUYQEOkGECyFZbkZBQgZBVkFCQVluAc///////////////////////////Fv9bX4D9W1+BFRWQUJGQUFZbYQFKgWEBNlZbglJQUFZbX2AgggGQUGEBY1+DAYRhAUFWW5KRUFBWW1+BkFCRkFBWW2EBe4FhAWlWW4JSUFBWW19gIIIBkFBhAZRfgwGEYQFyVluSkVBQVltfgP1bX3P//////////////////////////4IWkFCRkFBWW19hAceCYQGeVluQUJGQUFZbYQHXgWEBvVZbgRRhAeFXX4D9W1BWW1+BNZBQYQHygWEBzlZbkpFQUFZbX2AggoQDEhVhAg1XYQIMYQGaVltbX2ECGoSChQFhAeRWW5FQUJKRUFBWW1+CglJgIIIBkFCSkVBQVlt/UmV2ZXJ0UmVhc29uAAAAAAAAAAAAAAAAAAAAAAAAAABfggFSUFZbX2ECZ2AMg2ECI1ZbkVBhAnKCYQIzVltgIIIBkFCRkFBWW19gIIIBkFCBgQNfgwFSYQKUgWECW1ZbkFCRkFBWW39OSHtxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF9SYBFgBFJgJF/9W19hAtKCYQFpVluRUH///////////////////////////////////////////4IDYQMEV2EDA2ECm1ZbW2ABggGQUJGQUFb+omRpcGZzWCISIL/+TTVsXGUh9ngfsUEYuO4Uaw9G8fVYUYJqspse57wRZHNvbGNDAAgWADMigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMCaDDoDGJQIShYKFAAAAAAAAAAAAAAAAAAAAAAAAAQUcgcKAxiUCBABUhYKCQoCGAIQ/7LFDQoJCgIYYhCAs8UN"}]},"nonceNotUpdatedWhenOfferedGasPriceIsBiggerThanCurrentAndSenderDoesNotHaveEnoughBalanceHandlerCheckFailed":{"placeholderNum":1045,"encodedItems":[{"b64Body":"Cg8KCQiTq7OuBhDnAxICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIKqpx7l1tA+oINqNibztBFJ/LaoHXSe9TT0SQmbCfMobEIDIr6AlSgUIgM7aAw==","b64Record":"CiUIFhIDGJYIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBYFcugKXAvi6F/6JkvGE6D2o7B2kAeU583cEcvIRc3rAaPcWiFDCuz22wKTd3WWfgaDAjPq7OuBhCn6N2nAyIPCgkIk6uzrgYQ5wMSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxiWCBCAkN/ASg=="},{"b64Body":"ChEKCQiUq7OuBhDpAxICGAIgAVpoCiM6IQMCckPpVCowFcyItJhl+nS5mAUlOA7vWl3ChtNHi6Itl0oFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiEDAnJD6VQqMBXMiLSYZfp0uZgFJTgO71pdwobTR4uiLZc=","b64Record":"CgcIFhIDGJcIEjAjB02o9os+blsqbSzaxfeN1zjlBh8zV+RcnJpr95mqY0nw8ZxNaaqFfchkvFN0q1waDAjQq7OuBhDJxM2vASIRCgkIlKuzrgYQ6QMSAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARS5/EEpRBJt4KSZ+yHBOuV20CchEQ=="},{"b64Body":"Cg8KCQiUq7OuBhDpAxICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcjUKMwoGCgIYAhABCikKJSIjOiEDAnJD6VQqMBXMiLSYZfp0uZgFJTgO71pdwobTR4uiLZcQAg==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw5TW7hoX10vdK3aH8RSnh0H1WSPJdDBZjdUzzMYbxhy6MhInggIYWpOsETW7oVKhUGgwI0KuzrgYQysTNrwEiDwoJCJSrs64GEOkDEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SEQoGCgIYAhABCgcKAxiXCBAC"},{"b64Body":"Cg8KCQiUq7OuBhDrAxICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAjQ+Y2yBhDzhfufAxptCiISIEzJbLlf6CxCat2W9k6Lt2r7+GnYciRl40aahcYjGm1sCiM6IQMalhuHYxe+iPwU56481HUJ5nexYayaAOEqVQByH/JYiAoiEiAhcMEtrpj3Ml8xqziVyW834/OMobXpjyFxoOubN93beCIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGJgIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAq10PJTZPVFH0Cr57CFiuawW7SudFaTfGlp/y1oqapS7nOPs3cq+n8wr9fajH6FxYaDAjQq7OuBhCtrKuxAyIPCgkIlKuzrgYQ6wMSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiVq7OuBhDvAxICGAISAhgDGITr6jMiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoB0g0KAxiYCCLKDTYwODA2MDQwNTI1ZjgwNTUzNDgwMTU2MTAwMTI1NzVmODBmZDViNTA2MTAzNDU4MDYxMDAyMDVmMzk1ZmYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDBmNTc1ZjgwZmQ1YjUwNjAwNDM2MTA2MTAwNGE1NzVmMzU2MGUwMWM4MDYzMTFmOTVmNmYxNDYxMDA0ZTU3ODA2MzNhMzJiNTQ5MTQ2MTAwNmM1NzgwNjNjZmM3MjAwNzE0NjEwMDhhNTc4MDYzZmY0ODlkMzExNDYxMDBhNjU3NWI1ZjgwZmQ1YjYxMDA1NjYxMDBjNDU2NWI2MDQwNTE2MTAwNjM5MTkwNjEwMTUwNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDA3NDYxMDEwMDU2NWI2MDQwNTE2MTAwODE5MTkwNjEwMTgxNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDBhNDYwMDQ4MDM2MDM4MTAxOTA2MTAwOWY5MTkwNjEwMWY4NTY1YjYxMDExOTU2NWIwMDViNjEwMGFlNjEwMTMyNTY1YjYwNDA1MTYxMDBiYjkxOTA2MTAxNTA1NjViNjA0MDUxODA5MTAzOTBmMzViNWY2MDQwNTE3ZjA4YzM3OWEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MTUyNjAwNDAxNjEwMGY3OTA2MTAyN2Q1NjViNjA0MDUxODA5MTAzOTBmZDViNWY4MDVmODE1NDYxMDEwZTkwNjEwMmM4NTY1YjkxOTA1MDgxOTA1NTkwNTA5MDU2NWI4MDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ZmY1YjVmODBmZDViNWY4MTE1MTU5MDUwOTE5MDUwNTY1YjYxMDE0YTgxNjEwMTM2NTY1YjgyNTI1MDUwNTY1YjVmNjAyMDgyMDE5MDUwNjEwMTYzNWY4MzAxODQ2MTAxNDE1NjViOTI5MTUwNTA1NjViNWY4MTkwNTA5MTkwNTA1NjViNjEwMTdiODE2MTAxNjk1NjViODI1MjUwNTA1NjViNWY2MDIwODIwMTkwNTA2MTAxOTQ1ZjgzMDE4NDYxMDE3MjU2NWI5MjkxNTA1MDU2NWI1ZjgwZmQ1YjVmNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIxNjkwNTA5MTkwNTA1NjViNWY2MTAxYzc4MjYxMDE5ZTU2NWI5MDUwOTE5MDUwNTY1YjYxMDFkNzgxNjEwMWJkNTY1YjgxMTQ2MTAxZTE1NzVmODBmZDViNTA1NjViNWY4MTM1OTA1MDYxMDFmMjgxNjEwMWNlNTY1YjkyOTE1MDUwNTY1YjVmNjAyMDgyODQwMzEyMTU2MTAyMGQ1NzYxMDIwYzYxMDE5YTU2NWI1YjVmNjEwMjFhODQ4Mjg1MDE2MTAxZTQ1NjViOTE1MDUwOTI5MTUwNTA1NjViNWY4MjgyNTI2MDIwODIwMTkwNTA5MjkxNTA1MDU2NWI3ZjUyNjU3NjY1NzI3NDUyNjU2MTczNmY2ZTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1ZjgyMDE1MjUwNTY1YjVmNjEwMjY3NjAwYzgzNjEwMjIzNTY1YjkxNTA2MTAyNzI4MjYxMDIzMzU2NWI2MDIwODIwMTkwNTA5MTkwNTA1NjViNWY2MDIwODIwMTkwNTA4MTgxMDM1ZjgzMDE1MjYxMDI5NDgxNjEwMjViNTY1YjkwNTA5MTkwNTA1NjViN2Y0ZTQ4N2I3MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNWY1MjYwMTE2MDA0NTI2MDI0NWZmZDViNWY2MTAyZDI4MjYxMDE2OTU2NWI5MTUwN2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIwMzYxMDMwNDU3NjEwMzAzNjEwMjliNTY1YjViNjAwMTgyMDE5MDUwOTE5MDUwNTZmZWEyNjQ2OTcwNjY3MzU4MjIxMjIwYmZmZTRkMzU2YzVjNjUyMWY2NzgxZmIxNDExOGI4ZWUxNDZiMGY0NmYxZjU1ODUxODI2YWIyOWIxZWU3YmMxMTY0NzM2ZjZjNjM0MzAwMDgxNjAwMzM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw9GfB92ENrMv/VADM6dF/UP1Vx6OSUAO4q6vDH1F10/VZ8b6sH3WPlHPDzeClMMpfGgwI0auzrgYQ8PyH1gEiDwoJCJWrs64GEO8DEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQiVq7OuBhDxAxICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGJgIGiISIC0iJ9Mqs2MP5HIR+OUMNJaHGKDUFlpc8EMoM7/n+G6/IJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGJkIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAV4+FIy/en8E5jqCuQoxfSrJR79V8+UiWuWMmZRbZlfY9Q7/LgTgLaW5oDEOq3kr8aDAjRq7OuBhCHg+S6AyIPCgkIlauzrgYQ8QMSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQvoICgMYmQgSxQZggGBAUjSAFWEAD1dfgP1bUGAENhBhAEpXXzVg4ByAYxH5X28UYQBOV4BjOjK1SRRhAGxXgGPPxyAHFGEAileAY/9InTEUYQCmV1tfgP1bYQBWYQDEVltgQFFhAGORkGEBUFZbYEBRgJEDkPNbYQB0YQEAVltgQFFhAIGRkGEBgVZbYEBRgJEDkPNbYQCkYASANgOBAZBhAJ+RkGEB+FZbYQEZVlsAW2EArmEBMlZbYEBRYQC7kZBhAVBWW2BAUYCRA5DzW19gQFF/CMN5oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBUmAEAWEA95BhAn1WW2BAUYCRA5D9W1+AX4FUYQEOkGECyFZbkZBQgZBVkFCQVluAc///////////////////////////Fv9bX4D9W1+BFRWQUJGQUFZbYQFKgWEBNlZbglJQUFZbX2AgggGQUGEBY1+DAYRhAUFWW5KRUFBWW1+BkFCRkFBWW2EBe4FhAWlWW4JSUFBWW19gIIIBkFBhAZRfgwGEYQFyVluSkVBQVltfgP1bX3P//////////////////////////4IWkFCRkFBWW19hAceCYQGeVluQUJGQUFZbYQHXgWEBvVZbgRRhAeFXX4D9W1BWW1+BNZBQYQHygWEBzlZbkpFQUFZbX2AggoQDEhVhAg1XYQIMYQGaVltbX2ECGoSChQFhAeRWW5FQUJKRUFBWW1+CglJgIIIBkFCSkVBQVlt/UmV2ZXJ0UmVhc29uAAAAAAAAAAAAAAAAAAAAAAAAAABfggFSUFZbX2ECZ2AMg2ECI1ZbkVBhAnKCYQIzVltgIIIBkFCRkFBWW19gIIIBkFCBgQNfgwFSYQKUgWECW1ZbkFCRkFBWW39OSHtxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF9SYBFgBFJgJF/9W19hAtKCYQFpVluRUH///////////////////////////////////////////4IDYQMEV2EDA2ECm1ZbW2ABggGQUJGQUFb+omRpcGZzWCISIL/+TTVsXGUh9ngfsUEYuO4Uaw9G8fVYUYJqspse57wRZHNvbGNDAAgWADMigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMCaDDoDGJkIShYKFAAAAAAAAAAAAAAAAAAAAAAAAAQZcgcKAxiZCBABUhYKCQoCGAIQ/7LFDQoJCgIYYhCAs8UN"}]},"nonceNotUpdatedWhenSenderDoesNotHaveEnoughBalanceHandlerCheckFailed":{"placeholderNum":1050,"encodedItems":[{"b64Body":"Cg8KCQibq7OuBhCLBBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIDV0/xFox65Faorzzxp5hQifUZ9NVteIujdApAraXyR2EIDIr6AlSgUIgM7aAw==","b64Record":"CiUIFhIDGJsIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjC/u4e1GXB4UX6/dCHx0X1Q0QcSWBfJoSxn7EB6XaR3AN6oKNj1UTBioMdmZt2TzIwaCwjXq7OuBhCHgKNjIg8KCQibq7OuBhCLBBICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUhkKCgoCGAIQ/4/fwEoKCwoDGJsIEICQ38BK"},{"b64Body":"ChEKCQibq7OuBhCNBBICGAIgAVpoCiM6IQOjBYFgZrMQnj6A3wsqmtgAMNRy5bR29J+sK4a+F8PkCEoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiEDowWBYGazEJ4+gN8LKprYADDUcuW0dvSfrCuGvhfD5Ag=","b64Record":"CgcIFhIDGJwIEjBaVsyd2pxBE11pqzmNdoE3/mndjc5Q/z1q0cyJhlJA0BfsW2zRZdRT3GgL4iF3NKEaDAjXq7OuBhCi2LbIAiIRCgkIm6uzrgYQjQQSAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARSvmBLk8chmYNHIOc0uQrjAtLxxeQ=="},{"b64Body":"Cg8KCQibq7OuBhCNBBICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcjUKMwoGCgIYAhABCikKJSIjOiEDowWBYGazEJ4+gN8LKprYADDUcuW0dvSfrCuGvhfD5AgQAg==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwDG8w5R6+7pM7sk7hXsc8mcBmdrquZpBwFEMjQmgNesYgODZSanRNcl1Rdczsjmy/GgwI16uzrgYQo9i2yAIiDwoJCJurs64GEI0EEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SEQoGCgIYAhABCgcKAxicCBAC"},{"b64Body":"Cg8KCQicq7OuBhCPBBICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjgESCwjY+Y2yBhDB1eZbGm0KIhIgFARBahQZpUiuhDzFbV/+TJQn8wdYb4sUEmxqxyXYUXoKIzohA/9P0Z4MIuu/MuXeleVHMo031zELkWzcfuFMlKkTfOQ8CiISIGw5vwsoZZHCwjg/oHZ7zNLDx2kNA4EBwR2EcoUxBmx4IgxIZWxsbyBXb3JsZCEqADIA","b64Record":"CiUIFhoDGJ0IKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjB2jQQNJF/dFPABC48roGbix9ksUl8P8ywpaVXFWG7WEMR8Q+DmIrfKZOjK+UjOEr0aCwjYq7OuBhCywo1tIg8KCQicq7OuBhCPBBICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgA="},{"b64Body":"Cg8KCQicq7OuBhCTBBICGAISAhgDGITr6jMiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoB0g0KAxidCCLKDTYwODA2MDQwNTI1ZjgwNTUzNDgwMTU2MTAwMTI1NzVmODBmZDViNTA2MTAzNDU4MDYxMDAyMDVmMzk1ZmYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDBmNTc1ZjgwZmQ1YjUwNjAwNDM2MTA2MTAwNGE1NzVmMzU2MGUwMWM4MDYzMTFmOTVmNmYxNDYxMDA0ZTU3ODA2MzNhMzJiNTQ5MTQ2MTAwNmM1NzgwNjNjZmM3MjAwNzE0NjEwMDhhNTc4MDYzZmY0ODlkMzExNDYxMDBhNjU3NWI1ZjgwZmQ1YjYxMDA1NjYxMDBjNDU2NWI2MDQwNTE2MTAwNjM5MTkwNjEwMTUwNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDA3NDYxMDEwMDU2NWI2MDQwNTE2MTAwODE5MTkwNjEwMTgxNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDBhNDYwMDQ4MDM2MDM4MTAxOTA2MTAwOWY5MTkwNjEwMWY4NTY1YjYxMDExOTU2NWIwMDViNjEwMGFlNjEwMTMyNTY1YjYwNDA1MTYxMDBiYjkxOTA2MTAxNTA1NjViNjA0MDUxODA5MTAzOTBmMzViNWY2MDQwNTE3ZjA4YzM3OWEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MTUyNjAwNDAxNjEwMGY3OTA2MTAyN2Q1NjViNjA0MDUxODA5MTAzOTBmZDViNWY4MDVmODE1NDYxMDEwZTkwNjEwMmM4NTY1YjkxOTA1MDgxOTA1NTkwNTA5MDU2NWI4MDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ZmY1YjVmODBmZDViNWY4MTE1MTU5MDUwOTE5MDUwNTY1YjYxMDE0YTgxNjEwMTM2NTY1YjgyNTI1MDUwNTY1YjVmNjAyMDgyMDE5MDUwNjEwMTYzNWY4MzAxODQ2MTAxNDE1NjViOTI5MTUwNTA1NjViNWY4MTkwNTA5MTkwNTA1NjViNjEwMTdiODE2MTAxNjk1NjViODI1MjUwNTA1NjViNWY2MDIwODIwMTkwNTA2MTAxOTQ1ZjgzMDE4NDYxMDE3MjU2NWI5MjkxNTA1MDU2NWI1ZjgwZmQ1YjVmNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIxNjkwNTA5MTkwNTA1NjViNWY2MTAxYzc4MjYxMDE5ZTU2NWI5MDUwOTE5MDUwNTY1YjYxMDFkNzgxNjEwMWJkNTY1YjgxMTQ2MTAxZTE1NzVmODBmZDViNTA1NjViNWY4MTM1OTA1MDYxMDFmMjgxNjEwMWNlNTY1YjkyOTE1MDUwNTY1YjVmNjAyMDgyODQwMzEyMTU2MTAyMGQ1NzYxMDIwYzYxMDE5YTU2NWI1YjVmNjEwMjFhODQ4Mjg1MDE2MTAxZTQ1NjViOTE1MDUwOTI5MTUwNTA1NjViNWY4MjgyNTI2MDIwODIwMTkwNTA5MjkxNTA1MDU2NWI3ZjUyNjU3NjY1NzI3NDUyNjU2MTczNmY2ZTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1ZjgyMDE1MjUwNTY1YjVmNjEwMjY3NjAwYzgzNjEwMjIzNTY1YjkxNTA2MTAyNzI4MjYxMDIzMzU2NWI2MDIwODIwMTkwNTA5MTkwNTA1NjViNWY2MDIwODIwMTkwNTA4MTgxMDM1ZjgzMDE1MjYxMDI5NDgxNjEwMjViNTY1YjkwNTA5MTkwNTA1NjViN2Y0ZTQ4N2I3MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNWY1MjYwMTE2MDA0NTI2MDI0NWZmZDViNWY2MTAyZDI4MjYxMDE2OTU2NWI5MTUwN2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIwMzYxMDMwNDU3NjEwMzAzNjEwMjliNTY1YjViNjAwMTgyMDE5MDUwOTE5MDUwNTZmZWEyNjQ2OTcwNjY3MzU4MjIxMjIwYmZmZTRkMzU2YzVjNjUyMWY2NzgxZmIxNDExOGI4ZWUxNDZiMGY0NmYxZjU1ODUxODI2YWIyOWIxZWU3YmMxMTY0NzM2ZjZjNjM0MzAwMDgxNjAwMzM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwZ8pOGOWTjTzBEzWV0+0BQ0tSUear1AXsDXlBY3KJsmKSPdbmDznEbQj4pAoZ8283GgwI2KuzrgYQvI667gIiDwoJCJyrs64GEJMEEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQidq7OuBhCVBBICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGJ0IGiISIG+7TAEnYD30cJzAQmA3hOERFWn8ePOyXstPAMZA1gW2IJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGJ4IKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBPiQFt4O8ppomno1nrhb45OmxpXe7iJFBqKVhohe2kNzhNUlpwvvseMTrIirSv0cwaCwjZq7OuBhDStK12Ig8KCQidq7OuBhCVBBICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMMDZ4gZC+ggKAxieCBLFBmCAYEBSNIAVYQAPV1+A/VtQYAQ2EGEASldfNWDgHIBjEflfbxRhAE5XgGM6MrVJFGEAbFeAY8/HIAcUYQCKV4Bj/0idMRRhAKZXW1+A/VthAFZhAMRWW2BAUWEAY5GQYQFQVltgQFGAkQOQ81thAHRhAQBWW2BAUWEAgZGQYQGBVltgQFGAkQOQ81thAKRgBIA2A4EBkGEAn5GQYQH4VlthARlWWwBbYQCuYQEyVltgQFFhALuRkGEBUFZbYEBRgJEDkPNbX2BAUX8Iw3mgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIFSYAQBYQD3kGECfVZbYEBRgJEDkP1bX4BfgVRhAQ6QYQLIVluRkFCBkFWQUJBWW4Bz//////////////////////////8W/1tfgP1bX4EVFZBQkZBQVlthAUqBYQE2VluCUlBQVltfYCCCAZBQYQFjX4MBhGEBQVZbkpFQUFZbX4GQUJGQUFZbYQF7gWEBaVZbglJQUFZbX2AgggGQUGEBlF+DAYRhAXJWW5KRUFBWW1+A/Vtfc///////////////////////////ghaQUJGQUFZbX2EBx4JhAZ5WW5BQkZBQVlthAdeBYQG9VluBFGEB4VdfgP1bUFZbX4E1kFBhAfKBYQHOVluSkVBQVltfYCCChAMSFWECDVdhAgxhAZpWW1tfYQIahIKFAWEB5FZbkVBQkpFQUFZbX4KCUmAgggGQUJKRUFBWW39SZXZlcnRSZWFzb24AAAAAAAAAAAAAAAAAAAAAAAAAAF+CAVJQVltfYQJnYAyDYQIjVluRUGECcoJhAjNWW2AgggGQUJGQUFZbX2AgggGQUIGBA1+DAVJhApSBYQJbVluQUJGQUFZbf05Ie3EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX1JgEWAEUmAkX/1bX2EC0oJhAWlWW5FQf///////////////////////////////////////////ggNhAwRXYQMDYQKbVltbYAGCAZBQkZBQVv6iZGlwZnNYIhIgv/5NNWxcZSH2eB+xQRi47hRrD0bx9VhRgmqymx7nvBFkc29sY0MACBYAMyKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAowJoMOgMYnghKFgoUAAAAAAAAAAAAAAAAAAAAAAAABB5yBwoDGJ4IEAFSFgoJCgIYAhD/ssUNCgkKAhhiEICzxQ0="}]},"nonceNotUpdatedForNonEthereumTransaction":{"placeholderNum":1055,"encodedItems":[{"b64Body":"Cg8KCQiiq7OuBhCvBBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIPMy1jCiFZoinB3AojFQxb3EiFtY5TCbQ2rrUHZW+5ihEIDIr6AlSgUIgM7aAw==","b64Record":"CiUIFhIDGKAIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjA95eArhB9tjbnPiXAGl+DKMIz/VMOgpuNm//l+sFKqw2V/d3MBZ/2z6DCSqRlPlFkaDAjeq7OuBhC7s4b8ASIPCgkIoquzrgYQrwQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxigCBCAkN/ASg=="},{"b64Body":"Cg8KCQijq7OuBhCxBBICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjgESCwjf+Y2yBhDeyLoHGm0KIhIgISKIkQv2j1ex+ldcrjyrvfYmB+pBDmT8VY7GdHjHXnYKIzohAm3cMhU2KTH24KzcKKeicweJSFJSyVxcNBCUrJMNLfWxCiISILSX8qIfmeunlQm/YDXJgawGm9qFIroEDynBp9enI7KfIgxIZWxsbyBXb3JsZCEqADIA","b64Record":"CiUIFhoDGKEIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjB4Sywwv1oBOjpUPUctgQINmYxy/sP4x/EuPCiJWDzzSaMZHHJ3mkDYdjhV4PxzlIsaCwjfq7OuBhDBkd0gIg8KCQijq7OuBhCxBBICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgA="},{"b64Body":"Cg8KCQijq7OuBhC1BBICGAISAhgDGITr6jMiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoB0g0KAxihCCLKDTYwODA2MDQwNTI1ZjgwNTUzNDgwMTU2MTAwMTI1NzVmODBmZDViNTA2MTAzNDU4MDYxMDAyMDVmMzk1ZmYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDBmNTc1ZjgwZmQ1YjUwNjAwNDM2MTA2MTAwNGE1NzVmMzU2MGUwMWM4MDYzMTFmOTVmNmYxNDYxMDA0ZTU3ODA2MzNhMzJiNTQ5MTQ2MTAwNmM1NzgwNjNjZmM3MjAwNzE0NjEwMDhhNTc4MDYzZmY0ODlkMzExNDYxMDBhNjU3NWI1ZjgwZmQ1YjYxMDA1NjYxMDBjNDU2NWI2MDQwNTE2MTAwNjM5MTkwNjEwMTUwNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDA3NDYxMDEwMDU2NWI2MDQwNTE2MTAwODE5MTkwNjEwMTgxNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDBhNDYwMDQ4MDM2MDM4MTAxOTA2MTAwOWY5MTkwNjEwMWY4NTY1YjYxMDExOTU2NWIwMDViNjEwMGFlNjEwMTMyNTY1YjYwNDA1MTYxMDBiYjkxOTA2MTAxNTA1NjViNjA0MDUxODA5MTAzOTBmMzViNWY2MDQwNTE3ZjA4YzM3OWEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MTUyNjAwNDAxNjEwMGY3OTA2MTAyN2Q1NjViNjA0MDUxODA5MTAzOTBmZDViNWY4MDVmODE1NDYxMDEwZTkwNjEwMmM4NTY1YjkxOTA1MDgxOTA1NTkwNTA5MDU2NWI4MDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ZmY1YjVmODBmZDViNWY4MTE1MTU5MDUwOTE5MDUwNTY1YjYxMDE0YTgxNjEwMTM2NTY1YjgyNTI1MDUwNTY1YjVmNjAyMDgyMDE5MDUwNjEwMTYzNWY4MzAxODQ2MTAxNDE1NjViOTI5MTUwNTA1NjViNWY4MTkwNTA5MTkwNTA1NjViNjEwMTdiODE2MTAxNjk1NjViODI1MjUwNTA1NjViNWY2MDIwODIwMTkwNTA2MTAxOTQ1ZjgzMDE4NDYxMDE3MjU2NWI5MjkxNTA1MDU2NWI1ZjgwZmQ1YjVmNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIxNjkwNTA5MTkwNTA1NjViNWY2MTAxYzc4MjYxMDE5ZTU2NWI5MDUwOTE5MDUwNTY1YjYxMDFkNzgxNjEwMWJkNTY1YjgxMTQ2MTAxZTE1NzVmODBmZDViNTA1NjViNWY4MTM1OTA1MDYxMDFmMjgxNjEwMWNlNTY1YjkyOTE1MDUwNTY1YjVmNjAyMDgyODQwMzEyMTU2MTAyMGQ1NzYxMDIwYzYxMDE5YTU2NWI1YjVmNjEwMjFhODQ4Mjg1MDE2MTAxZTQ1NjViOTE1MDUwOTI5MTUwNTA1NjViNWY4MjgyNTI2MDIwODIwMTkwNTA5MjkxNTA1MDU2NWI3ZjUyNjU3NjY1NzI3NDUyNjU2MTczNmY2ZTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1ZjgyMDE1MjUwNTY1YjVmNjEwMjY3NjAwYzgzNjEwMjIzNTY1YjkxNTA2MTAyNzI4MjYxMDIzMzU2NWI2MDIwODIwMTkwNTA5MTkwNTA1NjViNWY2MDIwODIwMTkwNTA4MTgxMDM1ZjgzMDE1MjYxMDI5NDgxNjEwMjViNTY1YjkwNTA5MTkwNTA1NjViN2Y0ZTQ4N2I3MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNWY1MjYwMTE2MDA0NTI2MDI0NWZmZDViNWY2MTAyZDI4MjYxMDE2OTU2NWI5MTUwN2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIwMzYxMDMwNDU3NjEwMzAzNjEwMjliNTY1YjViNjAwMTgyMDE5MDUwOTE5MDUwNTZmZWEyNjQ2OTcwNjY3MzU4MjIxMjIwYmZmZTRkMzU2YzVjNjUyMWY2NzgxZmIxNDExOGI4ZWUxNDZiMGY0NmYxZjU1ODUxODI2YWIyOWIxZWU3YmMxMTY0NzM2ZjZjNjM0MzAwMDgxNjAwMzM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwuZ2a3unZk2ing+n3Xl2ob1ok/DXxariGr1pMXu5pse3C1Xhz6eh7+7dn5TQs+c2dGgwI36uzrgYQhPjAhQIiDwoJCKOrs64GELUEEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQikq7OuBhC3BBICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGKEIGiISIDXLh9PyhvembFJPjTYA9lmGEBQR+yL17sQ4CeNxsqYfIJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGKIIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjC5435EV8NCYs/JugtiLAglJzkzOGk5y+YB9EGlkHOBlMZkGRkXv7Wm0RdlAHnY05saCwjgq7OuBhCpiY4qIg8KCQikq7OuBhC3BBICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMMDZ4gZC+ggKAxiiCBLFBmCAYEBSNIAVYQAPV1+A/VtQYAQ2EGEASldfNWDgHIBjEflfbxRhAE5XgGM6MrVJFGEAbFeAY8/HIAcUYQCKV4Bj/0idMRRhAKZXW1+A/VthAFZhAMRWW2BAUWEAY5GQYQFQVltgQFGAkQOQ81thAHRhAQBWW2BAUWEAgZGQYQGBVltgQFGAkQOQ81thAKRgBIA2A4EBkGEAn5GQYQH4VlthARlWWwBbYQCuYQEyVltgQFFhALuRkGEBUFZbYEBRgJEDkPNbX2BAUX8Iw3mgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIFSYAQBYQD3kGECfVZbYEBRgJEDkP1bX4BfgVRhAQ6QYQLIVluRkFCBkFWQUJBWW4Bz//////////////////////////8W/1tfgP1bX4EVFZBQkZBQVlthAUqBYQE2VluCUlBQVltfYCCCAZBQYQFjX4MBhGEBQVZbkpFQUFZbX4GQUJGQUFZbYQF7gWEBaVZbglJQUFZbX2AgggGQUGEBlF+DAYRhAXJWW5KRUFBWW1+A/Vtfc///////////////////////////ghaQUJGQUFZbX2EBx4JhAZ5WW5BQkZBQVlthAdeBYQG9VluBFGEB4VdfgP1bUFZbX4E1kFBhAfKBYQHOVluSkVBQVltfYCCChAMSFWECDVdhAgxhAZpWW1tfYQIahIKFAWEB5FZbkVBQkpFQUFZbX4KCUmAgggGQUJKRUFBWW39SZXZlcnRSZWFzb24AAAAAAAAAAAAAAAAAAAAAAAAAAF+CAVJQVltfYQJnYAyDYQIjVluRUGECcoJhAjNWW2AgggGQUJGQUFZbX2AgggGQUIGBA1+DAVJhApSBYQJbVluQUJGQUFZbf05Ie3EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX1JgEWAEUmAkX/1bX2EC0oJhAWlWW5FQf///////////////////////////////////////////ggNhAwRXYQMDYQKbVltbYAGCAZBQkZBQVv6iZGlwZnNYIhIgv/5NNWxcZSH2eB+xQRi47hRrD0bx9VhRgmqymx7nvBFkc29sY0MACBYAMyKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAowJoMOgMYoghKFgoUAAAAAAAAAAAAAAAAAAAAAAAABCJyBwoDGKIIEAFSFgoJCgIYAhD/ssUNCgkKAhhiEICzxQ0="},{"b64Body":"ChAKCQikq7OuBhC5BBIDGKAIEgIYAxiQg4oFIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo46DwoDGKIIEPCTCSIEOjK1SQ==","b64Record":"CiUIFiIDGKIIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBjSdaO2oTRrwVGTXvcBZMS0PSBFekNpzcdCZBvNXt/ih5s3KECJ4tx5eRp0C3OaFYaDAjgq7OuBhDsrZyPAiIQCgkIpKuzrgYQuQQSAxigCCogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wwIKIBDquAgoDGKIIEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAowKkHUhcKCQoCGGIQgIWQCAoKCgMYoAgQ/4SQCA=="}]},"nonceUpdatedAfterEvmReversionDueContractLogic":{"placeholderNum":1059,"encodedItems":[{"b64Body":"Cg8KCQipq7OuBhDNBBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISINThW0/hLs29dCqicvXZJrMnMHtKxFVonCibrleIEuP7EIDIr6AlSgUIgM7aAw==","b64Record":"CiUIFhIDGKQIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCr+EaNMcE+JK4tw7ENICNWbZPb4tgn8q8/EY8siUe60tmIFBP3G7OjeU/sPbcel64aDAjlq7OuBhDB3vKvASIPCgkIqauzrgYQzQQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxikCBCAkN/ASg=="},{"b64Body":"ChEKCQipq7OuBhDPBBICGAIgAVpoCiM6IQJzKmErMgRdZaE7Gcz8EZaeKrOatieODinEj3eNlRY5e0oFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiECcyphKzIEXWWhOxnM/BGWniqzmrYnjg4pxI93jZUWOXs=","b64Record":"CgcIFhIDGKUIEjDFS6vyn+/gvQUY0Py74+2Usbcj4aaxPHuR9JH8dIoxyRSpUupgS0JOj2Lm/5ApTkwaDAjlq7OuBhCNx8SUAyIRCgkIqauzrgYQzwQSAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARTVIdYOqGuwGF0rdf7podqtjCCVnA=="},{"b64Body":"Cg8KCQipq7OuBhDPBBICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcjsKOQoJCgIYAhD/g69fCiwKJSIjOiECcyphKzIEXWWhOxnM/BGWniqzmrYnjg4pxI93jZUWOXsQgISvXw==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw5KfC/yyNKBVwqDj2Pdg2YNXjAgNd2B2nijbGoUB5uDAQzPz53N+N0HWq2hPjNeSmGgwI5auzrgYQjsfElAMiDwoJCKmrs64GEM8EEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SFwoJCgIYAhD/g69fCgoKAxilCBCAhK9f"},{"b64Body":"Cg8KCQiqq7OuBhDRBBICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAjm+Y2yBhCRouKkARptCiISIBf+npkUCrhKhkCc8snKIdORvl1Tv8LiEZd4lfWren9MCiM6IQOA+HZ02MxsTcCt05RVasjSbxcFG/djli5w/GHAMNS1zwoiEiBAaRpYhfYlh+Dw6FRhj/oAsJOsVC5wMIU1HCZIswHmuCIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGKYIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBJLe9fRdbJolBcqMeycjUfvpSeO9fNB7FcsyWGlxWCfVJEnL+C5o78APQNyQ1XaI0aDAjmq7OuBhDqzZC5ASIPCgkIqquzrgYQ0QQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiqq7OuBhDVBBICGAISAhgDGITr6jMiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoB0g0KAximCCLKDTYwODA2MDQwNTI1ZjgwNTUzNDgwMTU2MTAwMTI1NzVmODBmZDViNTA2MTAzNDU4MDYxMDAyMDVmMzk1ZmYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDBmNTc1ZjgwZmQ1YjUwNjAwNDM2MTA2MTAwNGE1NzVmMzU2MGUwMWM4MDYzMTFmOTVmNmYxNDYxMDA0ZTU3ODA2MzNhMzJiNTQ5MTQ2MTAwNmM1NzgwNjNjZmM3MjAwNzE0NjEwMDhhNTc4MDYzZmY0ODlkMzExNDYxMDBhNjU3NWI1ZjgwZmQ1YjYxMDA1NjYxMDBjNDU2NWI2MDQwNTE2MTAwNjM5MTkwNjEwMTUwNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDA3NDYxMDEwMDU2NWI2MDQwNTE2MTAwODE5MTkwNjEwMTgxNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDBhNDYwMDQ4MDM2MDM4MTAxOTA2MTAwOWY5MTkwNjEwMWY4NTY1YjYxMDExOTU2NWIwMDViNjEwMGFlNjEwMTMyNTY1YjYwNDA1MTYxMDBiYjkxOTA2MTAxNTA1NjViNjA0MDUxODA5MTAzOTBmMzViNWY2MDQwNTE3ZjA4YzM3OWEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MTUyNjAwNDAxNjEwMGY3OTA2MTAyN2Q1NjViNjA0MDUxODA5MTAzOTBmZDViNWY4MDVmODE1NDYxMDEwZTkwNjEwMmM4NTY1YjkxOTA1MDgxOTA1NTkwNTA5MDU2NWI4MDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ZmY1YjVmODBmZDViNWY4MTE1MTU5MDUwOTE5MDUwNTY1YjYxMDE0YTgxNjEwMTM2NTY1YjgyNTI1MDUwNTY1YjVmNjAyMDgyMDE5MDUwNjEwMTYzNWY4MzAxODQ2MTAxNDE1NjViOTI5MTUwNTA1NjViNWY4MTkwNTA5MTkwNTA1NjViNjEwMTdiODE2MTAxNjk1NjViODI1MjUwNTA1NjViNWY2MDIwODIwMTkwNTA2MTAxOTQ1ZjgzMDE4NDYxMDE3MjU2NWI5MjkxNTA1MDU2NWI1ZjgwZmQ1YjVmNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIxNjkwNTA5MTkwNTA1NjViNWY2MTAxYzc4MjYxMDE5ZTU2NWI5MDUwOTE5MDUwNTY1YjYxMDFkNzgxNjEwMWJkNTY1YjgxMTQ2MTAxZTE1NzVmODBmZDViNTA1NjViNWY4MTM1OTA1MDYxMDFmMjgxNjEwMWNlNTY1YjkyOTE1MDUwNTY1YjVmNjAyMDgyODQwMzEyMTU2MTAyMGQ1NzYxMDIwYzYxMDE5YTU2NWI1YjVmNjEwMjFhODQ4Mjg1MDE2MTAxZTQ1NjViOTE1MDUwOTI5MTUwNTA1NjViNWY4MjgyNTI2MDIwODIwMTkwNTA5MjkxNTA1MDU2NWI3ZjUyNjU3NjY1NzI3NDUyNjU2MTczNmY2ZTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1ZjgyMDE1MjUwNTY1YjVmNjEwMjY3NjAwYzgzNjEwMjIzNTY1YjkxNTA2MTAyNzI4MjYxMDIzMzU2NWI2MDIwODIwMTkwNTA5MTkwNTA1NjViNWY2MDIwODIwMTkwNTA4MTgxMDM1ZjgzMDE1MjYxMDI5NDgxNjEwMjViNTY1YjkwNTA5MTkwNTA1NjViN2Y0ZTQ4N2I3MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNWY1MjYwMTE2MDA0NTI2MDI0NWZmZDViNWY2MTAyZDI4MjYxMDE2OTU2NWI5MTUwN2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIwMzYxMDMwNDU3NjEwMzAzNjEwMjliNTY1YjViNjAwMTgyMDE5MDUwOTE5MDUwNTZmZWEyNjQ2OTcwNjY3MzU4MjIxMjIwYmZmZTRkMzU2YzVjNjUyMWY2NzgxZmIxNDExOGI4ZWUxNDZiMGY0NmYxZjU1ODUxODI2YWIyOWIxZWU3YmMxMTY0NzM2ZjZjNjM0MzAwMDgxNjAwMzM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIweDHrjy/Ffd+8m2WnU4zSJHPRT6yIGbK5hiqW6L3Vg71rsLQN2loEPiQBN7qkTs6PGgwI5quzrgYQ2MaWngMiDwoJCKqrs64GENUEEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQirq7OuBhDXBBICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGKYIGiISIGKJbhi9Li6ZaMMQgDyhL8A8raEGpKEkVCx3PxWRySeYIJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGKcIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjANEk4fDPD8HcPrrUXZxvINiBMWwy9l90lfXRmZ1MW53RcPq0D9m4md02FZpXqT3T8aDAjnq7OuBhDpgtzCASIPCgkIq6uzrgYQ1wQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQvoICgMYpwgSxQZggGBAUjSAFWEAD1dfgP1bUGAENhBhAEpXXzVg4ByAYxH5X28UYQBOV4BjOjK1SRRhAGxXgGPPxyAHFGEAileAY/9InTEUYQCmV1tfgP1bYQBWYQDEVltgQFFhAGORkGEBUFZbYEBRgJEDkPNbYQB0YQEAVltgQFFhAIGRkGEBgVZbYEBRgJEDkPNbYQCkYASANgOBAZBhAJ+RkGEB+FZbYQEZVlsAW2EArmEBMlZbYEBRYQC7kZBhAVBWW2BAUYCRA5DzW19gQFF/CMN5oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBUmAEAWEA95BhAn1WW2BAUYCRA5D9W1+AX4FUYQEOkGECyFZbkZBQgZBVkFCQVluAc///////////////////////////Fv9bX4D9W1+BFRWQUJGQUFZbYQFKgWEBNlZbglJQUFZbX2AgggGQUGEBY1+DAYRhAUFWW5KRUFBWW1+BkFCRkFBWW2EBe4FhAWlWW4JSUFBWW19gIIIBkFBhAZRfgwGEYQFyVluSkVBQVltfgP1bX3P//////////////////////////4IWkFCRkFBWW19hAceCYQGeVluQUJGQUFZbYQHXgWEBvVZbgRRhAeFXX4D9W1BWW1+BNZBQYQHygWEBzlZbkpFQUFZbX2AggoQDEhVhAg1XYQIMYQGaVltbX2ECGoSChQFhAeRWW5FQUJKRUFBWW1+CglJgIIIBkFCSkVBQVlt/UmV2ZXJ0UmVhc29uAAAAAAAAAAAAAAAAAAAAAAAAAABfggFSUFZbX2ECZ2AMg2ECI1ZbkVBhAnKCYQIzVltgIIIBkFCRkFBWW19gIIIBkFCBgQNfgwFSYQKUgWECW1ZbkFCRkFBWW39OSHtxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF9SYBFgBFJgJF/9W19hAtKCYQFpVluRUH///////////////////////////////////////////4IDYQMEV2EDA2ECm1ZbW2ABggGQUJGQUFb+omRpcGZzWCISIL/+TTVsXGUh9ngfsUEYuO4Uaw9G8fVYUYJqspse57wRZHNvbGNDAAgWADMigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMCaDDoDGKcIShYKFAAAAAAAAAAAAAAAAAAAAAAAAAQncgcKAxinCBABUhYKCQoCGAIQ/7LFDQoJCgIYYhCAs8UN"},{"b64Body":"ChAKCQirq7OuBhDZBBIDGKQIEgIYAxigl8MVIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA7UBCqwBAvipggEqgKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0alKIAIMCSfCUAAAAAAAAAAAAAAAAAAAAAAAABCeAhBH5X2/AAaC+/T/l4zVqcduLaiyu3jf7F0vxNIfKDl0ONCJby55Gc6A3A2KfxDos9U2OFtTUp3CzUpMaauz+vH8Y0UaTIdcLYhiAyrXuAQ==","b64Record":"CiUIISIDGKcIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCY3QBcOg1jW5LdRBRhcFB6pMGbqsLiXTGUr67CLotFznOb6bz1wv7oY9k44ilLWlEaDAjnq7OuBhCR39SnAyIQCgkIq6uzrgYQ2QQSAxikCCogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4w4JnLGTrkARrKATB4MDhjMzc5YTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwYzUyNjU3NjY1NzI3NDUyNjU2MTczNmY2ZTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAowKkHUPCTCWIEEflfb2oDGKUIegIIAVJGCgkKAhgDEODVxAEKCQoCGGIQnP+qKQoKCgMYoAYQoq+TBAoKCgMYoQYQoq+TBAoKCgMYpAgQ/++CLAoKCgMYpQgQv8OTB4oBIKtfe7Yb6Poi60pEN58yEE4/IB7cqW/BcW6llkaK7BMW"}]},"nonceUpdatedAfterEvmReversionDueInsufficientGas":{"placeholderNum":1064,"encodedItems":[{"b64Body":"Cg8KCQiwq7OuBhDxBBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIEQnjiUPHwQVe4lU6pL+5KqmQ2G/zJCp5OyU7eEcFTMAEIDIr6AlSgUIgM7aAw==","b64Record":"CiUIFhIDGKkIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCcYk6TE9EhoqDutufFJpwIkoBdpBx8KWFtPwtJIhCxrNd4+y9fyk3tFdARGQFcGLQaDAjsq7OuBhDfiY7IAiIPCgkIsKuzrgYQ8QQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxipCBCAkN/ASg=="},{"b64Body":"ChEKCQixq7OuBhDzBBICGAIgAVpoCiM6IQO87NioSWHGi7myiKi+iPQp5aQn0V6/ramF0Q9I0Sxzp0oFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiEDvOzYqElhxou5soiovoj0KeWkJ9Fev62phdEPSNEsc6c=","b64Record":"CgcIFhIDGKoIEjABxL4YS1rO3r8RK3btVs9s0bSvLhY3k0TxVUXIcizDRo3QpZ0X1LJGcqZ/wCdnUY0aCwjtq7OuBhCsnrxQIhEKCQixq7OuBhDzBBICGAIgASoUYXV0by1jcmVhdGVkIGFjY291bnRSAKoBFBVJNr1sHNYObY1yLGvLGn1vjGsT"},{"b64Body":"Cg8KCQixq7OuBhDzBBICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcjsKOQoJCgIYAhD/g69fCiwKJSIjOiEDvOzYqElhxou5soiovoj0KeWkJ9Fev62phdEPSNEsc6cQgISvXw==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwG6Za8w6m0RzS6+pM8Fv75zfQVyeMba3n6lUjl+gXgmdvoa0hZUnIwcqMTQ8J4Uh0GgsI7auzrgYQrZ68UCIPCgkIsauzrgYQ8wQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIXCgkKAhgCEP+Dr18KCgoDGKoIEICEr18="},{"b64Body":"Cg8KCQixq7OuBhD1BBICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAjt+Y2yBhDZ5qTBAhptCiISIP56jxS/7bk27xay7Q8T+DBgwnmg9R5npC+zLtqjBLWWCiM6IQOVdhORzSgi1DL/7gDEnLoxvxKKrF4Foh7/0asPCIbxMgoiEiBQMkidcWRsMUOp/BCAMae14A4L+w1IYQ7tbV5vo+lsbyIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGKsIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCJl/kdtU5FfMCdBUd69BQaXKr0vxNXU5rCSA51uKe4qvQs2G5OpDa2fX9CsDFGthgaDAjtq7OuBhCXhebRAiIPCgkIsauzrgYQ9QQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiyq7OuBhD5BBICGAISAhgDGITr6jMiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoB0g0KAxirCCLKDTYwODA2MDQwNTI1ZjgwNTUzNDgwMTU2MTAwMTI1NzVmODBmZDViNTA2MTAzNDU4MDYxMDAyMDVmMzk1ZmYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDBmNTc1ZjgwZmQ1YjUwNjAwNDM2MTA2MTAwNGE1NzVmMzU2MGUwMWM4MDYzMTFmOTVmNmYxNDYxMDA0ZTU3ODA2MzNhMzJiNTQ5MTQ2MTAwNmM1NzgwNjNjZmM3MjAwNzE0NjEwMDhhNTc4MDYzZmY0ODlkMzExNDYxMDBhNjU3NWI1ZjgwZmQ1YjYxMDA1NjYxMDBjNDU2NWI2MDQwNTE2MTAwNjM5MTkwNjEwMTUwNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDA3NDYxMDEwMDU2NWI2MDQwNTE2MTAwODE5MTkwNjEwMTgxNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDBhNDYwMDQ4MDM2MDM4MTAxOTA2MTAwOWY5MTkwNjEwMWY4NTY1YjYxMDExOTU2NWIwMDViNjEwMGFlNjEwMTMyNTY1YjYwNDA1MTYxMDBiYjkxOTA2MTAxNTA1NjViNjA0MDUxODA5MTAzOTBmMzViNWY2MDQwNTE3ZjA4YzM3OWEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MTUyNjAwNDAxNjEwMGY3OTA2MTAyN2Q1NjViNjA0MDUxODA5MTAzOTBmZDViNWY4MDVmODE1NDYxMDEwZTkwNjEwMmM4NTY1YjkxOTA1MDgxOTA1NTkwNTA5MDU2NWI4MDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ZmY1YjVmODBmZDViNWY4MTE1MTU5MDUwOTE5MDUwNTY1YjYxMDE0YTgxNjEwMTM2NTY1YjgyNTI1MDUwNTY1YjVmNjAyMDgyMDE5MDUwNjEwMTYzNWY4MzAxODQ2MTAxNDE1NjViOTI5MTUwNTA1NjViNWY4MTkwNTA5MTkwNTA1NjViNjEwMTdiODE2MTAxNjk1NjViODI1MjUwNTA1NjViNWY2MDIwODIwMTkwNTA2MTAxOTQ1ZjgzMDE4NDYxMDE3MjU2NWI5MjkxNTA1MDU2NWI1ZjgwZmQ1YjVmNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIxNjkwNTA5MTkwNTA1NjViNWY2MTAxYzc4MjYxMDE5ZTU2NWI5MDUwOTE5MDUwNTY1YjYxMDFkNzgxNjEwMWJkNTY1YjgxMTQ2MTAxZTE1NzVmODBmZDViNTA1NjViNWY4MTM1OTA1MDYxMDFmMjgxNjEwMWNlNTY1YjkyOTE1MDUwNTY1YjVmNjAyMDgyODQwMzEyMTU2MTAyMGQ1NzYxMDIwYzYxMDE5YTU2NWI1YjVmNjEwMjFhODQ4Mjg1MDE2MTAxZTQ1NjViOTE1MDUwOTI5MTUwNTA1NjViNWY4MjgyNTI2MDIwODIwMTkwNTA5MjkxNTA1MDU2NWI3ZjUyNjU3NjY1NzI3NDUyNjU2MTczNmY2ZTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1ZjgyMDE1MjUwNTY1YjVmNjEwMjY3NjAwYzgzNjEwMjIzNTY1YjkxNTA2MTAyNzI4MjYxMDIzMzU2NWI2MDIwODIwMTkwNTA5MTkwNTA1NjViNWY2MDIwODIwMTkwNTA4MTgxMDM1ZjgzMDE1MjYxMDI5NDgxNjEwMjViNTY1YjkwNTA5MTkwNTA1NjViN2Y0ZTQ4N2I3MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNWY1MjYwMTE2MDA0NTI2MDI0NWZmZDViNWY2MTAyZDI4MjYxMDE2OTU2NWI5MTUwN2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIwMzYxMDMwNDU3NjEwMzAzNjEwMjliNTY1YjViNjAwMTgyMDE5MDUwOTE5MDUwNTZmZWEyNjQ2OTcwNjY3MzU4MjIxMjIwYmZmZTRkMzU2YzVjNjUyMWY2NzgxZmIxNDExOGI4ZWUxNDZiMGY0NmYxZjU1ODUxODI2YWIyOWIxZWU3YmMxMTY0NzM2ZjZjNjM0MzAwMDgxNjAwMzM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwkZyU7P6zkmjtqU9pk0D0KSBnLJ12B6YeIKZOiF1zZfFqHT8L8ZmHv0ol5/QS4chtGgsI7quzrgYQjI3KdiIPCgkIsquzrgYQ+QQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiyq7OuBhD7BBICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGKsIGiISIPXt010Y2GzV90rbIrMNdEoa8Sjh/GkzndzNsEoBO1PzIJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGKwIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBmdOSaFrhkkGi59bkwqV+lAWwLTAcxlXOJo5uY5jp/kbuIvxjgclGuDEcL0846OyQaDAjuq7OuBhCa9aXbAiIPCgkIsquzrgYQ+wQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQvoICgMYrAgSxQZggGBAUjSAFWEAD1dfgP1bUGAENhBhAEpXXzVg4ByAYxH5X28UYQBOV4BjOjK1SRRhAGxXgGPPxyAHFGEAileAY/9InTEUYQCmV1tfgP1bYQBWYQDEVltgQFFhAGORkGEBUFZbYEBRgJEDkPNbYQB0YQEAVltgQFFhAIGRkGEBgVZbYEBRgJEDkPNbYQCkYASANgOBAZBhAJ+RkGEB+FZbYQEZVlsAW2EArmEBMlZbYEBRYQC7kZBhAVBWW2BAUYCRA5DzW19gQFF/CMN5oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBUmAEAWEA95BhAn1WW2BAUYCRA5D9W1+AX4FUYQEOkGECyFZbkZBQgZBVkFCQVluAc///////////////////////////Fv9bX4D9W1+BFRWQUJGQUFZbYQFKgWEBNlZbglJQUFZbX2AgggGQUGEBY1+DAYRhAUFWW5KRUFBWW1+BkFCRkFBWW2EBe4FhAWlWW4JSUFBWW19gIIIBkFBhAZRfgwGEYQFyVluSkVBQVltfgP1bX3P//////////////////////////4IWkFCRkFBWW19hAceCYQGeVluQUJGQUFZbYQHXgWEBvVZbgRRhAeFXX4D9W1BWW1+BNZBQYQHygWEBzlZbkpFQUFZbX2AggoQDEhVhAg1XYQIMYQGaVltbX2ECGoSChQFhAeRWW5FQUJKRUFBWW1+CglJgIIIBkFCSkVBQVlt/UmV2ZXJ0UmVhc29uAAAAAAAAAAAAAAAAAAAAAAAAAABfggFSUFZbX2ECZ2AMg2ECI1ZbkVBhAnKCYQIzVltgIIIBkFCRkFBWW19gIIIBkFCBgQNfgwFSYQKUgWECW1ZbkFCRkFBWW39OSHtxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF9SYBFgBFJgJF/9W19hAtKCYQFpVluRUH///////////////////////////////////////////4IDYQMEV2EDA2ECm1ZbW2ABggGQUJGQUFb+omRpcGZzWCISIL/+TTVsXGUh9ngfsUEYuO4Uaw9G8fVYUYJqspse57wRZHNvbGNDAAgWADMigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMCaDDoDGKwIShYKFAAAAAAAAAAAAAAAAAAAAAAAAAQscgcKAxisCBABUhYKCQoCGAIQ/7LFDQoJCgIYYhCAs8UN"},{"b64Body":"ChAKCQizq7OuBhD9BBIDGKkIEgIYAxib3MIVIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA7QBCqsBAvioggEqgKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0alKIAIJSSJQAAAAAAAAAAAAAAAAAAAAAAAAELICEOjK1ScCAoP0SSPfRBtz3J4P++GammcNrx1TK2nzxRRMlg6kq9uewoGIdAhSZAy4qhuNjpP6T/aMc7gfwcJVssymdak3PM+p5GIDKte4B","b64Record":"CiUIHiIDGKwIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDpj7iCfhUXATA/jJHVuXPPJu7wkMCCXVRI8iuv3C/e7xRu/hcClscuSlbrkSKuQIwaCwjvq7OuBhCkiPh/IhAKCQizq7OuBhD9BBIDGKkIKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCTgJ4WOikaEElOU1VGRklDSUVOVF9HQVMoyKQBUMikAWIEOjK1SWoDGKoIegIIAVJGCgkKAhgDEObOxAEKCQoCGGIQmOnQIgoKCgMYoAYQlKSTBAoKCgMYoQYQlKSTBAoKCgMYqQgQhbi7KwoKCgMYqggQn8iAAYoBILBoSZW+Xk92TCqNkmfoHYwfVcapS4fv/Gy7MZNOB8hi"}]},"nonceUpdatedAfterEvmReversionDueInsufficientTransferAmount":{"placeholderNum":1069,"encodedItems":[{"b64Body":"Cg8KCQi3q7OuBhCVBRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlorCiISIFHiH4UqovT7TwCdeJbMYQ176NTM2BzLDIz8ruwC2MFqSgUIgM7aAw==","b64Record":"CiUIFhIDGK4IKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCR5EMG/yn8RbUWkqlgbZhFMZisNfq6fZxbNyuZ6jVMq5s3fgRMRic0SloHroE+eV4aCwj0q7OuBhCqs+MIIg8KCQi3q7OuBhCVBRICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgA="},{"b64Body":"Cg8KCQi4q7OuBhCXBRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIKgZy0DccgE/TNmPEbbAWQ3GsA0i3THM2ju22Y7bhWgPEIDIr6AlSgUIgM7aAw==","b64Record":"CiUIFhIDGK8IKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCAycbLUb/xCUhjtnvuPRMmEJhlMApnMsKBxqaPJSJl2UuBkriSdoel4KyigUgCjHAaDAj0q7OuBhDjx/PtASIPCgkIuKuzrgYQlwUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxivCBCAkN/ASg=="},{"b64Body":"ChEKCQi4q7OuBhCZBRICGAIgAVpoCiM6IQMl4Rn7vUUghCpgB5nZfEKqBwEmAOOtBzZYW2TbNB7rNkoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiEDJeEZ+71FIIQqYAeZ2XxCqgcBJgDjrQc2WFtk2zQe6zY=","b64Record":"CgcIFhIDGLAIEjBmoEtxcfVc39ZXu0HgLS7g68ORSz52IHvy5Uc6gPPyYIyVn1uGHdrmZ8z8gyasB+MaCwj1q7OuBhCxhZgSIhEKCQi4q7OuBhCZBRICGAIgASoUYXV0by1jcmVhdGVkIGFjY291bnRSAKoBFOwbIkKTO5eyDWjldKLUkvrhRoKp"},{"b64Body":"Cg8KCQi4q7OuBhCZBRICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcjsKOQoJCgIYAhD/g69fCiwKJSIjOiEDJeEZ+71FIIQqYAeZ2XxCqgcBJgDjrQc2WFtk2zQe6zYQgISvXw==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw9EYxkWkU6aWZqK4rY5M7BlK5DkdB7ozrUAojct/KfoufqIgWXmczaMfJArPMhx+oGgsI9auzrgYQsoWYEiIPCgkIuKuzrgYQmQUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIXCgkKAhgCEP+Dr18KCgoDGLAIEICEr18="},{"b64Body":"Cg8KCQi5q7OuBhCbBRICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAj1+Y2yBhDir87uARptCiISIPvhNoD/1ttlV4oVf44P6raBjK2Ly8KG6bmmOg73Je61CiM6IQMA7uXyX6oxEfZk3jmnCopBEd/txUHil8Mit4K1ALh1OwoiEiDQUAuQ7mrGUpIMN5wRddCS5vJQuRCq8kexF6eRF2ikOSIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGLEIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDrFNXQFrZ7ghiDMzdiXBNhxD+j5S+KbvCWJLK6nKzWBcPz/NWtW2nV2MpirpqWISgaDAj1q7OuBhD3/aP3ASIPCgkIuauzrgYQmwUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQi6q7OuBhCfBRICGAISAhgDGIudjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxixCCKAIDYwODA2MDQwNTI2MTBjOTI4MDYxMDAxMTVmMzk1ZmYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDBmNTc1ZjgwZmQ1YjUwNjAwNDM2MTA2MTAwYTc1NzVmMzU2MGUwMWM4MDYzYTAzZmE3ZTMxMTYxMDA2ZjU3ODA2M2EwM2ZhN2UzMTQ2MTAxNGI1NzgwNjNhNmEzYTMwMDE0NjEwMTY3NTc4MDYzY2MxOWYxM2YxNDYxMDE5NzU3ODA2M2NmYzcyMDA3MTQ2MTAxYjM1NzgwNjNkZDczMTM5NTE0NjEwMWNmNTc4MDYzZTZkMjUyNDUxNDYxMDFmZjU3NjEwMGE3NTY1YjgwNjMyZGExYjEzMDE0NjEwMGFiNTc4MDYzM2U2NTdkMGExNDYxMDBjNzU3ODA2MzdhMjIzYTc3MTQ2MTAwZTM1NzgwNjM3ZWM4NmY4OTE0NjEwMGZmNTc4MDYzOTBmMThkODMxNDYxMDExYjU3NWI1ZjgwZmQ1YjYxMDBjNTYwMDQ4MDM2MDM4MTAxOTA2MTAwYzA5MTkwNjEwYThjNTY1YjYxMDIxYjU2NWIwMDViNjEwMGUxNjAwNDgwMzYwMzgxMDE5MDYxMDBkYzkxOTA2MTBhOGM1NjViNjEwMjg1NTY1YjAwNWI2MTAwZmQ2MDA0ODAzNjAzODEwMTkwNjEwMGY4OTE5MDYxMGE4YzU2NWI2MTAzNzA1NjViMDA1YjYxMDExOTYwMDQ4MDM2MDM4MTAxOTA2MTAxMTQ5MTkwNjEwYThjNTY1YjYxMDQ1YTU2NWIwMDViNjEwMTM1NjAwNDgwMzYwMzgxMDE5MDYxMDEzMDkxOTA2MTBhOGM1NjViNjEwNTQ1NTY1YjYwNDA1MTYxMDE0MjkxOTA2MTBhY2Y1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMTY1NjAwNDgwMzYwMzgxMDE5MDYxMDE2MDkxOTA2MTBiMjM1NjViNjEwNjY3NTY1YjAwNWI2MTAxODE2MDA0ODAzNjAzODEwMTkwNjEwMTdjOTE5MDYxMGE4YzU2NWI2MTA2YWY1NjViNjA0MDUxNjEwMThlOTE5MDYxMGFjZjU2NWI2MDQwNTE4MDkxMDM5MGYzNWI2MTAxYjE2MDA0ODAzNjAzODEwMTkwNjEwMWFjOTE5MDYxMGE4YzU2NWI2MTA3ZDA1NjViMDA1YjYxMDFjZDYwMDQ4MDM2MDM4MTAxOTA2MTAxYzg5MTkwNjEwYjIzNTY1YjYxMDhiYjU2NWIwMDViNjEwMWU5NjAwNDgwMzYwMzgxMDE5MDYxMDFlNDkxOTA2MTBhOGM1NjViNjEwOGQ0NTY1YjYwNDA1MTYxMDFmNjkxOTA2MTBhY2Y1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMjE5NjAwNDgwMzYwMzgxMDE5MDYxMDIxNDkxOTA2MTBiMjM1NjViNjEwOWY1NTY1YjAwNWI4MDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjAwMTYwNDA1MTYxMDI0MDkwNjEwYjdiNTY1YjVmNjA0MDUxODA4MzAzODE4NTg3NWFmMTkyNTA1MDUwM2Q4MDVmODExNDYxMDI3YTU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q1ZjYwMjA4NDAxM2U2MTAyN2Y1NjViNjA2MDkxNTA1YjUwNTA1MDUwNTY1YjgwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MDQwNTE2MDI0MDE2MDQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI3ZmZmNDg5ZDMxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjEwMzJjOTE5MDYxMGJmMTU2NWI1ZjYwNDA1MTgwODMwMzgxNWY4NjVhZjE5MTUwNTAzZDgwNWY4MTE0NjEwMzY1NTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDVmNjAyMDg0MDEzZTYxMDM2YTU2NWI2MDYwOTE1MDViNTA1MDUwNTA1NjViODA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYwNDA1MTYwMjQwMTYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjdmNDc3Mzg3ZDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTA0MTc5MTkwNjEwYmYxNTY1YjVmNjA0MDUxODA4MzAzODE4NTVhZmE5MTUwNTAzZDgwNWY4MTE0NjEwNDRmNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDVmNjAyMDg0MDEzZTYxMDQ1NDU2NWI2MDYwOTE1MDViNTA1MDUwNTA1NjViODA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYwNDA1MTYwMjQwMTYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjdmMTFmOTVmNmYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTA1MDE5MTkwNjEwYmYxNTY1YjVmNjA0MDUxODA4MzAzODE1Zjg2NWFmMTkxNTA1MDNkODA1ZjgxMTQ2MTA1M2E1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNWY2MDIwODQwMTNlNjEwNTNmNTY1YjYwNjA5MTUwNWI1MDUwNTA1MDU2NWI1ZjgwNWY4MzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjA0MDUxNjAyNDAxNjA0MDUxNjAyMDgxODMwMzAzODE1MjkwNjA0MDUyN2YzYTMyYjU0OTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMDVlZjkxOTA2MTBiZjE1NjViNWY2MDQwNTE4MDgzMDM4MTVmODY1YWYxOTE1MDUwM2Q4MDVmODExNDYxMDYyODU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q1ZjYwMjA4NDAxM2U2MTA2MmQ1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA4MTgwMTU2MTA2M2Y1NzUwNWY4MTUxMTE1YjYxMDY0OTU3NWY2MTA2NWU1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTA2NWQ5MTkwNjEwYzMxNTY1YjViOTI1MDUwNTA5MTkwNTA1NjViODA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYxMDhmYzYwMDE5MDgxMTUwMjkwNjA0MDUxNWY2MDQwNTE4MDgzMDM4MTg1ODg4OGYxOTM1MDUwNTA1MDE1ODAxNTYxMDZhYjU3M2Q1ZjgwM2UzZDVmZmQ1YjUwNTA1NjViNWY4MDVmODM3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYwNDA1MTYwMjQwMTYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjdmM2EzMmI1NDkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTA3NTk5MTkwNjEwYmYxNTY1YjVmNjA0MDUxODA4MzAzODE4NTVhZmE5MTUwNTAzZDgwNWY4MTE0NjEwNzkxNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDVmNjAyMDg0MDEzZTYxMDc5NjU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxODAxNTYxMDdhODU3NTA1ZjgxNTExMTViNjEwN2IyNTc1ZjYxMDdjNzU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMDdjNjkxOTA2MTBjMzE1NjViNWI5MjUwNTA1MDkxOTA1MDU2NWI4MDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjA0MDUxNjAyNDAxNjA=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwwBJpf/aHPecYmC8GsXqN8AT4GcjWbVpcFowPV1lRYz+2QkCz+QaasLtlRvv71Vw8GgsI9quzrgYQ9uTlGyIPCgkIuquzrgYQnwUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQi6q7OuBhClBRICGAISAhgDGLblozciAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBzhISAxixCCLGEjQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI3ZjQ3NzM4N2QxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjEwODc3OTE5MDYxMGJmMTU2NWI1ZjYwNDA1MTgwODMwMzgxNWY4NjVhZjE5MTUwNTAzZDgwNWY4MTE0NjEwOGIwNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDVmNjAyMDg0MDEzZTYxMDhiNTU2NWI2MDYwOTE1MDViNTA1MDUwNTA1NjViODA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNmZmNWI1ZjgwNWY4MzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjA0MDUxNjAyNDAxNjA0MDUxNjAyMDgxODMwMzAzODE1MjkwNjA0MDUyN2YzYTMyYjU0OTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMDk3ZTkxOTA2MTBiZjE1NjViNWY2MDQwNTE4MDgzMDM4MTg1NWFmNDkxNTA1MDNkODA1ZjgxMTQ2MTA5YjY1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNWY2MDIwODQwMTNlNjEwOWJiNTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE4MDE1NjEwOWNkNTc1MDVmODE1MTExNWI2MTA5ZDc1NzVmNjEwOWVjNTY1YjgwODA2MDIwMDE5MDUxODEwMTkwNjEwOWViOTE5MDYxMGMzMTU2NWI1YjkyNTA1MDUwOTE5MDUwNTY1YjgwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MTA4ZmM2MDAxOTA4MTE1MDI5MDYwNDA1MTVmNjA0MDUxODA4MzAzODE4NTg4ODhmMTkzNTA1MDUwNTA1MDUwNTY1YjVmODBmZDViNWY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MjE2OTA1MDkxOTA1MDU2NWI1ZjYxMGE1YjgyNjEwYTMyNTY1YjkwNTA5MTkwNTA1NjViNjEwYTZiODE2MTBhNTE1NjViODExNDYxMGE3NTU3NWY4MGZkNWI1MDU2NWI1ZjgxMzU5MDUwNjEwYTg2ODE2MTBhNjI1NjViOTI5MTUwNTA1NjViNWY2MDIwODI4NDAzMTIxNTYxMGFhMTU3NjEwYWEwNjEwYTJlNTY1YjViNWY2MTBhYWU4NDgyODUwMTYxMGE3ODU2NWI5MTUwNTA5MjkxNTA1MDU2NWI1ZjgxOTA1MDkxOTA1MDU2NWI2MTBhYzk4MTYxMGFiNzU2NWI4MjUyNTA1MDU2NWI1ZjYwMjA4MjAxOTA1MDYxMGFlMjVmODMwMTg0NjEwYWMwNTY1YjkyOTE1MDUwNTY1YjVmNjEwYWYyODI2MTBhMzI1NjViOTA1MDkxOTA1MDU2NWI2MTBiMDI4MTYxMGFlODU2NWI4MTE0NjEwYjBjNTc1ZjgwZmQ1YjUwNTY1YjVmODEzNTkwNTA2MTBiMWQ4MTYxMGFmOTU2NWI5MjkxNTA1MDU2NWI1ZjYwMjA4Mjg0MDMxMjE1NjEwYjM4NTc2MTBiMzc2MTBhMmU1NjViNWI1ZjYxMGI0NTg0ODI4NTAxNjEwYjBmNTY1YjkxNTA1MDkyOTE1MDUwNTY1YjVmODE5MDUwOTI5MTUwNTA1NjViNTA1NjViNWY2MTBiNjY1ZjgzNjEwYjRlNTY1YjkxNTA2MTBiNzE4MjYxMGI1ODU2NWI1ZjgyMDE5MDUwOTE5MDUwNTY1YjVmNjEwYjg1ODI2MTBiNWI1NjViOTE1MDgxOTA1MDkxOTA1MDU2NWI1ZjgxNTE5MDUwOTE5MDUwNTY1YjVmNWI4MzgxMTAxNTYxMGJiNjU3ODA4MjAxNTE4MTg0MDE1MjYwMjA4MTAxOTA1MDYxMGI5YjU2NWI1Zjg0ODQwMTUyNTA1MDUwNTA1NjViNWY2MTBiY2I4MjYxMGI4ZjU2NWI2MTBiZDU4MTg1NjEwYjRlNTY1YjkzNTA2MTBiZTU4MTg1NjAyMDg2MDE2MTBiOTk1NjViODA4NDAxOTE1MDUwOTI5MTUwNTA1NjViNWY2MTBiZmM4Mjg0NjEwYmMxNTY1YjkxNTA4MTkwNTA5MjkxNTA1MDU2NWI2MTBjMTA4MTYxMGFiNzU2NWI4MTE0NjEwYzFhNTc1ZjgwZmQ1YjUwNTY1YjVmODE1MTkwNTA2MTBjMmI4MTYxMGMwNzU2NWI5MjkxNTA1MDU2NWI1ZjYwMjA4Mjg0MDMxMjE1NjEwYzQ2NTc2MTBjNDU2MTBhMmU1NjViNWI1ZjYxMGM1Mzg0ODI4NTAxNjEwYzFkNTY1YjkxNTA1MDkyOTE1MDUwNTZmZWEyNjQ2OTcwNjY3MzU4MjIxMjIwMWQ1NzM2ZDRiZjIyMTllZmU2NzcyYThiMWZjZWNlM2JhZTYzNDM1NDc1NzIzMWRhYjZiODJlZmEzNzMzYjY1YTY0NzM2ZjZjNjM0MzAwMDgxNjAwMzM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwLlEhtoR/mcVx5gaPBGmeh/EjEpl3X5yAiw5ve7aEA6QhedvAOsoUYqQopAq58F8GGgwI9quzrgYQoueanQIiDwoJCLqrs64GEKUFEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQi7q7OuBhCnBRICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGLEIGiISIBP9OmhKo6gVg3YbsYXoMrTvb3G53kH08Yf3Xag/s9BhIJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGLIIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBe2/UiHR85azJXcAjX1aoBmz3lEYy3Bsbk7AaU78pE6l6WeYN08ZLhKgKnw+S7IPMaCwj3q7OuBhDanrglIg8KCQi7q7OuBhCnBRICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMMDZ4gZCxxsKAxiyCBKSGWCAYEBSNIAVYQAPV1+A/VtQYAQ2EGEAp1dfNWDgHIBjoD+n4xFhAG9XgGOgP6fjFGEBS1eAY6ajowAUYQFnV4BjzBnxPxRhAZdXgGPPxyAHFGEBs1eAY91zE5UUYQHPV4Bj5tJSRRRhAf9XYQCnVluAYy2hsTAUYQCrV4BjPmV9ChRhAMdXgGN6Ijp3FGEA41eAY37Ib4kUYQD/V4BjkPGNgxRhARtXW1+A/VthAMVgBIA2A4EBkGEAwJGQYQqMVlthAhtWWwBbYQDhYASANgOBAZBhANyRkGEKjFZbYQKFVlsAW2EA/WAEgDYDgQGQYQD4kZBhCoxWW2EDcFZbAFthARlgBIA2A4EBkGEBFJGQYQqMVlthBFpWWwBbYQE1YASANgOBAZBhATCRkGEKjFZbYQVFVltgQFFhAUKRkGEKz1ZbYEBRgJEDkPNbYQFlYASANgOBAZBhAWCRkGELI1ZbYQZnVlsAW2EBgWAEgDYDgQGQYQF8kZBhCoxWW2EGr1ZbYEBRYQGOkZBhCs9WW2BAUYCRA5DzW2EBsWAEgDYDgQGQYQGskZBhCoxWW2EH0FZbAFthAc1gBIA2A4EBkGEByJGQYQsjVlthCLtWWwBbYQHpYASANgOBAZBhAeSRkGEKjFZbYQjUVltgQFFhAfaRkGEKz1ZbYEBRgJEDkPNbYQIZYASANgOBAZBhAhSRkGELI1ZbYQn1VlsAW4Bz//////////////////////////8WYAFgQFFhAkCQYQt7VltfYEBRgIMDgYWHWvGSUFBQPYBfgRRhAnpXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPV9gIIQBPmECf1ZbYGCRUFtQUFBQVluAc///////////////////////////FmBAUWAkAWBAUWAggYMDA4FSkGBAUn//SJ0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQMskZBhC/FWW19gQFGAgwOBX4Za8ZFQUD2AX4EUYQNlV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1fYCCEAT5hA2pWW2BgkVBbUFBQUFZbgHP//////////////////////////xZgQFFgJAFgQFFgIIGDAwOBUpBgQFJ/R3OH0QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEEF5GQYQvxVltfYEBRgIMDgYVa+pFQUD2AX4EUYQRPV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1fYCCEAT5hBFRWW2BgkVBbUFBQUFZbgHP//////////////////////////xZgQFFgJAFgQFFgIIGDAwOBUpBgQFJ/EflfbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEFAZGQYQvxVltfYEBRgIMDgV+GWvGRUFA9gF+BFGEFOldgQFGRUGAfGWA/PQEWggFgQFI9glI9X2AghAE+YQU/VltgYJFQW1BQUFBWW1+AX4Nz//////////////////////////8WYEBRYCQBYEBRYCCBgwMDgVKQYEBSfzoytUkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhBe+RkGEL8VZbX2BAUYCDA4FfhlrxkVBQPYBfgRRhBihXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPV9gIIQBPmEGLVZbYGCRUFtQkVCRUIGAFWEGP1dQX4FREVthBklXX2EGXlZbgIBgIAGQUYEBkGEGXZGQYQwxVltbklBQUJGQUFZbgHP//////////////////////////xZhCPxgAZCBFQKQYEBRX2BAUYCDA4GFiIjxk1BQUFAVgBVhBqtXPV+APj1f/VtQUFZbX4Bfg3P//////////////////////////xZgQFFgJAFgQFFgIIGDAwOBUpBgQFJ/OjK1SQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEHWZGQYQvxVltfYEBRgIMDgYVa+pFQUD2AX4EUYQeRV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1fYCCEAT5hB5ZWW2BgkVBbUJFQkVCBgBVhB6hXUF+BURFbYQeyV19hB8dWW4CAYCABkFGBAZBhB8aRkGEMMVZbW5JQUFCRkFBWW4Bz//////////////////////////8WYEBRYCQBYEBRYCCBgwMDgVKQYEBSf0dzh9EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhCHeRkGEL8VZbX2BAUYCDA4FfhlrxkVBQPYBfgRRhCLBXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPV9gIIQBPmEItVZbYGCRUFtQUFBQVluAc///////////////////////////Fv9bX4Bfg3P//////////////////////////xZgQFFgJAFgQFFgIIGDAwOBUpBgQFJ/OjK1SQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEJfpGQYQvxVltfYEBRgIMDgYVa9JFQUD2AX4EUYQm2V2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1fYCCEAT5hCbtWW2BgkVBbUJFQkVCBgBVhCc1XUF+BURFbYQnXV19hCexWW4CAYCABkFGBAZBhCeuRkGEMMVZbW5JQUFCRkFBWW4Bz//////////////////////////8WYQj8YAGQgRUCkGBAUV9gQFGAgwOBhYiI8ZNQUFBQUFBWW1+A/Vtfc///////////////////////////ghaQUJGQUFZbX2EKW4JhCjJWW5BQkZBQVlthCmuBYQpRVluBFGEKdVdfgP1bUFZbX4E1kFBhCoaBYQpiVluSkVBQVltfYCCChAMSFWEKoVdhCqBhCi5WW1tfYQquhIKFAWEKeFZbkVBQkpFQUFZbX4GQUJGQUFZbYQrJgWEKt1ZbglJQUFZbX2AgggGQUGEK4l+DAYRhCsBWW5KRUFBWW19hCvKCYQoyVluQUJGQUFZbYQsCgWEK6FZbgRRhCwxXX4D9W1BWW1+BNZBQYQsdgWEK+VZbkpFQUFZbX2AggoQDEhVhCzhXYQs3YQouVltbX2ELRYSChQFhCw9WW5FQUJKRUFBWW1+BkFCSkVBQVltQVltfYQtmX4NhC05WW5FQYQtxgmELWFZbX4IBkFCRkFBWW19hC4WCYQtbVluRUIGQUJGQUFZbX4FRkFCRkFBWW19bg4EQFWELtleAggFRgYQBUmAggQGQUGELm1ZbX4SEAVJQUFBQVltfYQvLgmELj1ZbYQvVgYVhC05WW5NQYQvlgYVgIIYBYQuZVluAhAGRUFCSkVBQVltfYQv8goRhC8FWW5FQgZBQkpFQUFZbYQwQgWEKt1ZbgRRhDBpXX4D9W1BWW1+BUZBQYQwrgWEMB1ZbkpFQUFZbX2AggoQDEhVhDEZXYQxFYQouVltbX2EMU4SChQFhDB1WW5FQUJKRUFBW/qJkaXBmc1giEiAdVzbUvyIZ7+Z3Kosfzs47rmNDVHVyMdq2uC76NzO2WmRzb2xjQwAIFgAzIoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACjAmgw6AxiyCEoWChQAAAAAAAAAAAAAAAAAAAAAAAAEMnIHCgMYsggQAVIWCgkKAhgCEP+yxQ0KCQoCGGIQgLPFDQ=="},{"b64Body":"ChAKCQi7q7OuBhCpBRIDGK8IEgIYAxiz+NEVIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA9UBCswBAvjJggEqgKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0alKIAIMCSfCUAAAAAAAAAAAAAAAAAAAAAAAABDKApKA/p+MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAELsABoHOsRHwtG21jOMvVGyJBbtoxYuu2CIAgqZi5yFkAnl3NoFOgDXy15pTpXEdh6IElJJF5HgDSLdc/Lc0yrZBWWmf5GIDKte4B","b64Record":"CiUIISIDGLIIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDBgiDgu0DBULN4C2TwW0YkxbC7m2aaIGPiO+o5OvVP9O1YuFuBUfCPpST3Ky4T2NcaDAj3q7OuBhCj+fqmAiIQCgkIu6uzrgYQqQUSAxivCCogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4w8/rZGTo7GgIweCjAqQdQ8JMJYiSgP6fjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABC5qAxiwCHoCCAFSRgoJCgIYAxCAtMYBCgkKAhhiEIacwSkKCgoDGKAGEPCSlgQKCgoDGKEGEPCSlgQKCgoDGK8IEKWyoCwKCgoDGLAIEL/DkweKASCHsplrkgIUZjA7XIbfnDiSjtGtSDdDM6Vk22tZ5usNDw=="}]},"nonceUpdatedAfterEvmReversionDueSendingValueToEthereumPrecompile0x2":{"placeholderNum":1075,"encodedItems":[{"b64Body":"Cg8KCQjAq7OuBhDBBRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIIAhubJXqcQx7Eb+fOljDSwp85FUZqLbs6hOtuiB2KvNEIDIr6AlSgUIgM7aAw==","b64Record":"CiUIFhIDGLQIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBiRPn3zv5TeiJqSwsAgsHDFQXtfqq78HSHDg0SgT6gqztvcEfe6Rr8uS1D0rIGkE4aDAj8q7OuBhDd1/OqASIPCgkIwKuzrgYQwQUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxi0CBCAkN/ASg=="},{"b64Body":"ChEKCQjAq7OuBhDDBRICGAIgAVpoCiM6IQOGDKehvRLnz1Dcs6V3m42mr6rXA1zjd4kchPY2c+7kg0oFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiEDhgynob0S589Q3LOld5uNpq+q1wNc43eJHIT2NnPu5IM=","b64Record":"CgcIFhIDGLUIEjDEJwXDlrjQMOeP3KT5Dl9RqRqsoE+34OwexpGNEqFS1JkCxgQLl1LJX+glOXAflfMaDAj8q7OuBhCQ6tePAyIRCgkIwKuzrgYQwwUSAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARQEzpTK9R5iMnyQQEC5Qb/WBJRCgw=="},{"b64Body":"Cg8KCQjAq7OuBhDDBRICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcjsKOQoJCgIYAhD/g69fCiwKJSIjOiEDhgynob0S589Q3LOld5uNpq+q1wNc43eJHIT2NnPu5IMQgISvXw==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwBQkbV/TNSlVTwv24k7Vq+v8IKmwM7nv6mnh9OumxkEEEMz9BZes1IrkGHuGRwzSCGgwI/KuzrgYQkerXjwMiDwoJCMCrs64GEMMFEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SFwoJCgIYAhD/g69fCgoKAxi1CBCAhK9f"},{"b64Body":"Cg8KCQjBq7OuBhDFBRICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAj9+Y2yBhDfhpedARptCiISII55Wu3YG6qkd08RqhSjPWt4IzBSopMtfAfx+4OhhUgWCiM6IQP6wBewJ1FqtUIRO3/k/om+mP2oHT5JFKOW+ZK5cFw2sQoiEiBavcv9t0RMCNzAk3QHk88FaxgnrouXHJYjBn/NB/AicyIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGLYIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjC3l/JcXjerHiwe7KhCmnpwb/tmIGVideFI7OuEx67kcaJNcQpOiW/XnP6J0csjnDAaDAj9q7OuBhDQ07S0ASIPCgkIwauzrgYQxQUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjBq7OuBhDJBRICGAISAhgDGIydjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxi2CCKAIDYwODA2MDQwNTI2MTBjOTI4MDYxMDAxMTVmMzk1ZmYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDBmNTc1ZjgwZmQ1YjUwNjAwNDM2MTA2MTAwYTc1NzVmMzU2MGUwMWM4MDYzYTAzZmE3ZTMxMTYxMDA2ZjU3ODA2M2EwM2ZhN2UzMTQ2MTAxNGI1NzgwNjNhNmEzYTMwMDE0NjEwMTY3NTc4MDYzY2MxOWYxM2YxNDYxMDE5NzU3ODA2M2NmYzcyMDA3MTQ2MTAxYjM1NzgwNjNkZDczMTM5NTE0NjEwMWNmNTc4MDYzZTZkMjUyNDUxNDYxMDFmZjU3NjEwMGE3NTY1YjgwNjMyZGExYjEzMDE0NjEwMGFiNTc4MDYzM2U2NTdkMGExNDYxMDBjNzU3ODA2MzdhMjIzYTc3MTQ2MTAwZTM1NzgwNjM3ZWM4NmY4OTE0NjEwMGZmNTc4MDYzOTBmMThkODMxNDYxMDExYjU3NWI1ZjgwZmQ1YjYxMDBjNTYwMDQ4MDM2MDM4MTAxOTA2MTAwYzA5MTkwNjEwYThjNTY1YjYxMDIxYjU2NWIwMDViNjEwMGUxNjAwNDgwMzYwMzgxMDE5MDYxMDBkYzkxOTA2MTBhOGM1NjViNjEwMjg1NTY1YjAwNWI2MTAwZmQ2MDA0ODAzNjAzODEwMTkwNjEwMGY4OTE5MDYxMGE4YzU2NWI2MTAzNzA1NjViMDA1YjYxMDExOTYwMDQ4MDM2MDM4MTAxOTA2MTAxMTQ5MTkwNjEwYThjNTY1YjYxMDQ1YTU2NWIwMDViNjEwMTM1NjAwNDgwMzYwMzgxMDE5MDYxMDEzMDkxOTA2MTBhOGM1NjViNjEwNTQ1NTY1YjYwNDA1MTYxMDE0MjkxOTA2MTBhY2Y1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMTY1NjAwNDgwMzYwMzgxMDE5MDYxMDE2MDkxOTA2MTBiMjM1NjViNjEwNjY3NTY1YjAwNWI2MTAxODE2MDA0ODAzNjAzODEwMTkwNjEwMTdjOTE5MDYxMGE4YzU2NWI2MTA2YWY1NjViNjA0MDUxNjEwMThlOTE5MDYxMGFjZjU2NWI2MDQwNTE4MDkxMDM5MGYzNWI2MTAxYjE2MDA0ODAzNjAzODEwMTkwNjEwMWFjOTE5MDYxMGE4YzU2NWI2MTA3ZDA1NjViMDA1YjYxMDFjZDYwMDQ4MDM2MDM4MTAxOTA2MTAxYzg5MTkwNjEwYjIzNTY1YjYxMDhiYjU2NWIwMDViNjEwMWU5NjAwNDgwMzYwMzgxMDE5MDYxMDFlNDkxOTA2MTBhOGM1NjViNjEwOGQ0NTY1YjYwNDA1MTYxMDFmNjkxOTA2MTBhY2Y1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMjE5NjAwNDgwMzYwMzgxMDE5MDYxMDIxNDkxOTA2MTBiMjM1NjViNjEwOWY1NTY1YjAwNWI4MDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjAwMTYwNDA1MTYxMDI0MDkwNjEwYjdiNTY1YjVmNjA0MDUxODA4MzAzODE4NTg3NWFmMTkyNTA1MDUwM2Q4MDVmODExNDYxMDI3YTU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q1ZjYwMjA4NDAxM2U2MTAyN2Y1NjViNjA2MDkxNTA1YjUwNTA1MDUwNTY1YjgwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MDQwNTE2MDI0MDE2MDQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI3ZmZmNDg5ZDMxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjEwMzJjOTE5MDYxMGJmMTU2NWI1ZjYwNDA1MTgwODMwMzgxNWY4NjVhZjE5MTUwNTAzZDgwNWY4MTE0NjEwMzY1NTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDVmNjAyMDg0MDEzZTYxMDM2YTU2NWI2MDYwOTE1MDViNTA1MDUwNTA1NjViODA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYwNDA1MTYwMjQwMTYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjdmNDc3Mzg3ZDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTA0MTc5MTkwNjEwYmYxNTY1YjVmNjA0MDUxODA4MzAzODE4NTVhZmE5MTUwNTAzZDgwNWY4MTE0NjEwNDRmNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDVmNjAyMDg0MDEzZTYxMDQ1NDU2NWI2MDYwOTE1MDViNTA1MDUwNTA1NjViODA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYwNDA1MTYwMjQwMTYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjdmMTFmOTVmNmYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTA1MDE5MTkwNjEwYmYxNTY1YjVmNjA0MDUxODA4MzAzODE1Zjg2NWFmMTkxNTA1MDNkODA1ZjgxMTQ2MTA1M2E1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNWY2MDIwODQwMTNlNjEwNTNmNTY1YjYwNjA5MTUwNWI1MDUwNTA1MDU2NWI1ZjgwNWY4MzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjA0MDUxNjAyNDAxNjA0MDUxNjAyMDgxODMwMzAzODE1MjkwNjA0MDUyN2YzYTMyYjU0OTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMDVlZjkxOTA2MTBiZjE1NjViNWY2MDQwNTE4MDgzMDM4MTVmODY1YWYxOTE1MDUwM2Q4MDVmODExNDYxMDYyODU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q1ZjYwMjA4NDAxM2U2MTA2MmQ1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA4MTgwMTU2MTA2M2Y1NzUwNWY4MTUxMTE1YjYxMDY0OTU3NWY2MTA2NWU1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTA2NWQ5MTkwNjEwYzMxNTY1YjViOTI1MDUwNTA5MTkwNTA1NjViODA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYxMDhmYzYwMDE5MDgxMTUwMjkwNjA0MDUxNWY2MDQwNTE4MDgzMDM4MTg1ODg4OGYxOTM1MDUwNTA1MDE1ODAxNTYxMDZhYjU3M2Q1ZjgwM2UzZDVmZmQ1YjUwNTA1NjViNWY4MDVmODM3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYwNDA1MTYwMjQwMTYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjdmM2EzMmI1NDkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTA3NTk5MTkwNjEwYmYxNTY1YjVmNjA0MDUxODA4MzAzODE4NTVhZmE5MTUwNTAzZDgwNWY4MTE0NjEwNzkxNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDVmNjAyMDg0MDEzZTYxMDc5NjU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxODAxNTYxMDdhODU3NTA1ZjgxNTExMTViNjEwN2IyNTc1ZjYxMDdjNzU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMDdjNjkxOTA2MTBjMzE1NjViNWI5MjUwNTA1MDkxOTA1MDU2NWI4MDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjA0MDUxNjAyNDAxNjA=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwq13J0ucIMk4P/IipxLdrgTLWac8V54Z/RVs35aLW7AzCNJIfDRF6dPQzd+H4jVTsGgwI/auzrgYQvOjBmQMiDwoJCMGrs64GEMkFEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjCq7OuBhDPBRICGAISAhgDGLblozciAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBzhISAxi2CCLGEjQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI3ZjQ3NzM4N2QxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjEwODc3OTE5MDYxMGJmMTU2NWI1ZjYwNDA1MTgwODMwMzgxNWY4NjVhZjE5MTUwNTAzZDgwNWY4MTE0NjEwOGIwNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDVmNjAyMDg0MDEzZTYxMDhiNTU2NWI2MDYwOTE1MDViNTA1MDUwNTA1NjViODA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNmZmNWI1ZjgwNWY4MzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjA0MDUxNjAyNDAxNjA0MDUxNjAyMDgxODMwMzAzODE1MjkwNjA0MDUyN2YzYTMyYjU0OTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMDk3ZTkxOTA2MTBiZjE1NjViNWY2MDQwNTE4MDgzMDM4MTg1NWFmNDkxNTA1MDNkODA1ZjgxMTQ2MTA5YjY1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNWY2MDIwODQwMTNlNjEwOWJiNTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE4MDE1NjEwOWNkNTc1MDVmODE1MTExNWI2MTA5ZDc1NzVmNjEwOWVjNTY1YjgwODA2MDIwMDE5MDUxODEwMTkwNjEwOWViOTE5MDYxMGMzMTU2NWI1YjkyNTA1MDUwOTE5MDUwNTY1YjgwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MTA4ZmM2MDAxOTA4MTE1MDI5MDYwNDA1MTVmNjA0MDUxODA4MzAzODE4NTg4ODhmMTkzNTA1MDUwNTA1MDUwNTY1YjVmODBmZDViNWY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MjE2OTA1MDkxOTA1MDU2NWI1ZjYxMGE1YjgyNjEwYTMyNTY1YjkwNTA5MTkwNTA1NjViNjEwYTZiODE2MTBhNTE1NjViODExNDYxMGE3NTU3NWY4MGZkNWI1MDU2NWI1ZjgxMzU5MDUwNjEwYTg2ODE2MTBhNjI1NjViOTI5MTUwNTA1NjViNWY2MDIwODI4NDAzMTIxNTYxMGFhMTU3NjEwYWEwNjEwYTJlNTY1YjViNWY2MTBhYWU4NDgyODUwMTYxMGE3ODU2NWI5MTUwNTA5MjkxNTA1MDU2NWI1ZjgxOTA1MDkxOTA1MDU2NWI2MTBhYzk4MTYxMGFiNzU2NWI4MjUyNTA1MDU2NWI1ZjYwMjA4MjAxOTA1MDYxMGFlMjVmODMwMTg0NjEwYWMwNTY1YjkyOTE1MDUwNTY1YjVmNjEwYWYyODI2MTBhMzI1NjViOTA1MDkxOTA1MDU2NWI2MTBiMDI4MTYxMGFlODU2NWI4MTE0NjEwYjBjNTc1ZjgwZmQ1YjUwNTY1YjVmODEzNTkwNTA2MTBiMWQ4MTYxMGFmOTU2NWI5MjkxNTA1MDU2NWI1ZjYwMjA4Mjg0MDMxMjE1NjEwYjM4NTc2MTBiMzc2MTBhMmU1NjViNWI1ZjYxMGI0NTg0ODI4NTAxNjEwYjBmNTY1YjkxNTA1MDkyOTE1MDUwNTY1YjVmODE5MDUwOTI5MTUwNTA1NjViNTA1NjViNWY2MTBiNjY1ZjgzNjEwYjRlNTY1YjkxNTA2MTBiNzE4MjYxMGI1ODU2NWI1ZjgyMDE5MDUwOTE5MDUwNTY1YjVmNjEwYjg1ODI2MTBiNWI1NjViOTE1MDgxOTA1MDkxOTA1MDU2NWI1ZjgxNTE5MDUwOTE5MDUwNTY1YjVmNWI4MzgxMTAxNTYxMGJiNjU3ODA4MjAxNTE4MTg0MDE1MjYwMjA4MTAxOTA1MDYxMGI5YjU2NWI1Zjg0ODQwMTUyNTA1MDUwNTA1NjViNWY2MTBiY2I4MjYxMGI4ZjU2NWI2MTBiZDU4MTg1NjEwYjRlNTY1YjkzNTA2MTBiZTU4MTg1NjAyMDg2MDE2MTBiOTk1NjViODA4NDAxOTE1MDUwOTI5MTUwNTA1NjViNWY2MTBiZmM4Mjg0NjEwYmMxNTY1YjkxNTA4MTkwNTA5MjkxNTA1MDU2NWI2MTBjMTA4MTYxMGFiNzU2NWI4MTE0NjEwYzFhNTc1ZjgwZmQ1YjUwNTY1YjVmODE1MTkwNTA2MTBjMmI4MTYxMGMwNzU2NWI5MjkxNTA1MDU2NWI1ZjYwMjA4Mjg0MDMxMjE1NjEwYzQ2NTc2MTBjNDU2MTBhMmU1NjViNWI1ZjYxMGM1Mzg0ODI4NTAxNjEwYzFkNTY1YjkxNTA1MDkyOTE1MDUwNTZmZWEyNjQ2OTcwNjY3MzU4MjIxMjIwMWQ1NzM2ZDRiZjIyMTllZmU2NzcyYThiMWZjZWNlM2JhZTYzNDM1NDc1NzIzMWRhYjZiODJlZmEzNzMzYjY1YTY0NzM2ZjZjNjM0MzAwMDgxNjAwMzM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwfpKjds/nLrbVfOYjek62opHYI2KzLUbyrzdFOzP12bpve7EzMCKs6yCQwnDr95DIGgwI/quzrgYQ4O6FvgEiDwoJCMKrs64GEM8FEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjCq7OuBhDRBRICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGLYIGiISILo6ouJ4ylEVD28neG4jYNAoQK6qljCuUWf9PdzUDkTdIJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGLcIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjA4FFMUy0Lmg29kiM7Ww5hCuEYZt+o5tDIszxiiIvuA55ZNH0O9Te0+30GcNJqRlbIaDAj+q7OuBhDAsZOjAyIPCgkIwquzrgYQ0QUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQscbCgMYtwgSkhlggGBAUjSAFWEAD1dfgP1bUGAENhBhAKdXXzVg4ByAY6A/p+MRYQBvV4BjoD+n4xRhAUtXgGOmo6MAFGEBZ1eAY8wZ8T8UYQGXV4Bjz8cgBxRhAbNXgGPdcxOVFGEBz1eAY+bSUkUUYQH/V2EAp1ZbgGMtobEwFGEAq1eAYz5lfQoUYQDHV4BjeiI6dxRhAONXgGN+yG+JFGEA/1eAY5DxjYMUYQEbV1tfgP1bYQDFYASANgOBAZBhAMCRkGEKjFZbYQIbVlsAW2EA4WAEgDYDgQGQYQDckZBhCoxWW2EChVZbAFthAP1gBIA2A4EBkGEA+JGQYQqMVlthA3BWWwBbYQEZYASANgOBAZBhARSRkGEKjFZbYQRaVlsAW2EBNWAEgDYDgQGQYQEwkZBhCoxWW2EFRVZbYEBRYQFCkZBhCs9WW2BAUYCRA5DzW2EBZWAEgDYDgQGQYQFgkZBhCyNWW2EGZ1ZbAFthAYFgBIA2A4EBkGEBfJGQYQqMVlthBq9WW2BAUWEBjpGQYQrPVltgQFGAkQOQ81thAbFgBIA2A4EBkGEBrJGQYQqMVlthB9BWWwBbYQHNYASANgOBAZBhAciRkGELI1ZbYQi7VlsAW2EB6WAEgDYDgQGQYQHkkZBhCoxWW2EI1FZbYEBRYQH2kZBhCs9WW2BAUYCRA5DzW2ECGWAEgDYDgQGQYQIUkZBhCyNWW2EJ9VZbAFuAc///////////////////////////FmABYEBRYQJAkGELe1ZbX2BAUYCDA4GFh1rxklBQUD2AX4EUYQJ6V2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1fYCCEAT5hAn9WW2BgkVBbUFBQUFZbgHP//////////////////////////xZgQFFgJAFgQFFgIIGDAwOBUpBgQFJ//0idMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEDLJGQYQvxVltfYEBRgIMDgV+GWvGRUFA9gF+BFGEDZVdgQFGRUGAfGWA/PQEWggFgQFI9glI9X2AghAE+YQNqVltgYJFQW1BQUFBWW4Bz//////////////////////////8WYEBRYCQBYEBRYCCBgwMDgVKQYEBSf0dzh9EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhBBeRkGEL8VZbX2BAUYCDA4GFWvqRUFA9gF+BFGEET1dgQFGRUGAfGWA/PQEWggFgQFI9glI9X2AghAE+YQRUVltgYJFQW1BQUFBWW4Bz//////////////////////////8WYEBRYCQBYEBRYCCBgwMDgVKQYEBSfxH5X28AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhBQGRkGEL8VZbX2BAUYCDA4FfhlrxkVBQPYBfgRRhBTpXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPV9gIIQBPmEFP1ZbYGCRUFtQUFBQVltfgF+Dc///////////////////////////FmBAUWAkAWBAUWAggYMDA4FSkGBAUn86MrVJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQXvkZBhC/FWW19gQFGAgwOBX4Za8ZFQUD2AX4EUYQYoV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1fYCCEAT5hBi1WW2BgkVBbUJFQkVCBgBVhBj9XUF+BURFbYQZJV19hBl5WW4CAYCABkFGBAZBhBl2RkGEMMVZbW5JQUFCRkFBWW4Bz//////////////////////////8WYQj8YAGQgRUCkGBAUV9gQFGAgwOBhYiI8ZNQUFBQFYAVYQarVz1fgD49X/1bUFBWW1+AX4Nz//////////////////////////8WYEBRYCQBYEBRYCCBgwMDgVKQYEBSfzoytUkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhB1mRkGEL8VZbX2BAUYCDA4GFWvqRUFA9gF+BFGEHkVdgQFGRUGAfGWA/PQEWggFgQFI9glI9X2AghAE+YQeWVltgYJFQW1CRUJFQgYAVYQeoV1BfgVERW2EHsldfYQfHVluAgGAgAZBRgQGQYQfGkZBhDDFWW1uSUFBQkZBQVluAc///////////////////////////FmBAUWAkAWBAUWAggYMDA4FSkGBAUn9Hc4fRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQh3kZBhC/FWW19gQFGAgwOBX4Za8ZFQUD2AX4EUYQiwV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1fYCCEAT5hCLVWW2BgkVBbUFBQUFZbgHP//////////////////////////xb/W1+AX4Nz//////////////////////////8WYEBRYCQBYEBRYCCBgwMDgVKQYEBSfzoytUkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhCX6RkGEL8VZbX2BAUYCDA4GFWvSRUFA9gF+BFGEJtldgQFGRUGAfGWA/PQEWggFgQFI9glI9X2AghAE+YQm7VltgYJFQW1CRUJFQgYAVYQnNV1BfgVERW2EJ11dfYQnsVluAgGAgAZBRgQGQYQnrkZBhDDFWW1uSUFBQkZBQVluAc///////////////////////////FmEI/GABkIEVApBgQFFfYEBRgIMDgYWIiPGTUFBQUFBQVltfgP1bX3P//////////////////////////4IWkFCRkFBWW19hCluCYQoyVluQUJGQUFZbYQprgWEKUVZbgRRhCnVXX4D9W1BWW1+BNZBQYQqGgWEKYlZbkpFQUFZbX2AggoQDEhVhCqFXYQqgYQouVltbX2EKroSChQFhCnhWW5FQUJKRUFBWW1+BkFCRkFBWW2EKyYFhCrdWW4JSUFBWW19gIIIBkFBhCuJfgwGEYQrAVluSkVBQVltfYQrygmEKMlZbkFCRkFBWW2ELAoFhCuhWW4EUYQsMV1+A/VtQVltfgTWQUGELHYFhCvlWW5KRUFBWW19gIIKEAxIVYQs4V2ELN2EKLlZbW19hC0WEgoUBYQsPVluRUFCSkVBQVltfgZBQkpFQUFZbUFZbX2ELZl+DYQtOVluRUGELcYJhC1hWW1+CAZBQkZBQVltfYQuFgmELW1ZbkVCBkFCRkFBWW1+BUZBQkZBQVltfW4OBEBVhC7ZXgIIBUYGEAVJgIIEBkFBhC5tWW1+EhAFSUFBQUFZbX2ELy4JhC49WW2EL1YGFYQtOVluTUGEL5YGFYCCGAWELmVZbgIQBkVBQkpFQUFZbX2EL/IKEYQvBVluRUIGQUJKRUFBWW2EMEIFhCrdWW4EUYQwaV1+A/VtQVltfgVGQUGEMK4FhDAdWW5KRUFBWW19gIIKEAxIVYQxGV2EMRWEKLlZbW19hDFOEgoUBYQwdVluRUFCSkVBQVv6iZGlwZnNYIhIgHVc21L8iGe/mdyqLH87OO65jQ1R1cjHatrgu+jcztlpkc29sY0MACBYAMyKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAowJoMOgMYtwhKFgoUAAAAAAAAAAAAAAAAAAAAAAAABDdyBwoDGLcIEAFSFgoJCgIYAhD/ssUNCgkKAhhiEICzxQ0="},{"b64Body":"ChAKCQjDq7OuBhDTBRIDGLQIEgIYAxiz+NEVIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA9UBCswBAvjJggEqgKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0alKIAIMCSfCUAAAAAAAAAAAAAAAAAAAAAAAABDeApKA/p+MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsABoB/5NoBXS4Cqhwrr4kExwxenrqE6w2/A1af58Y3tvUPpoBm4LLesTDr3pHufwbtkh9ZjMlVxT8zKR3yc2CTFsh1PGIDKte4B","b64Record":"CiUIISIDGLcIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAsGeEoxMKq14mQOVVhk4lnp5G9sQsqGEQPuvAsvGlESOKmififcm4+XmfXCFechjUaDAj/q7OuBhD29tTHASIQCgkIw6uzrgYQ0wUSAxi0CCogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4w8/rZGTo7GgIweCjAqQdQ8JMJYiSgP6fjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJqAxi1CHoCCAFSRgoJCgIYAxCAtMYBCgkKAhhiEIacwSkKCgoDGKAGEPCSlgQKCgoDGKEGEPCSlgQKCgoDGLQIEKWyoCwKCgoDGLUIEL/DkweKASCDeq8qsuqpPZkezeK37OJAAHhCoxNwShE0SEIU2V/zVg=="}]},"nonceUpdatedAfterEvmReversionDueSendingValueToHederaPrecompile0x167":{"placeholderNum":1080,"encodedItems":[{"b64Body":"Cg8KCQjIq7OuBhDrBRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISICCwebx8SB+mrZN2T+4FVDmhIgEefapdC5UuCdHgzWpuEIDIr6AlSgUIgM7aAw==","b64Record":"CiUIFhIDGLkIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDs3VFDDee7Q2oGZDR1i4uryuoFk8TUjhEo5kPZnlgpP6Kg1Q6R2xwn3Ds8ABoj9A4aCwiErLOuBhDe07BLIg8KCQjIq7OuBhDrBRICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUhkKCgoCGAIQ/4/fwEoKCwoDGLkIEICQ38BK"},{"b64Body":"ChEKCQjIq7OuBhDtBRICGAIgAVpoCiM6IQJKYNzFmp5aZSO/rncUee/0d2vvRU5EY49/u8uQHUMP/UoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiECSmDcxZqeWmUjv653FHnv9Hdr70VORGOPf7vLkB1DD/0=","b64Record":"CgcIFhIDGLoIEjAfP30EUwgDKBoyngKkhefydXoUahx5e51hMR3hhtWAnv1fztfjSOBPOUQw3G3WOQkaDAiErLOuBhC0xKPNAiIRCgkIyKuzrgYQ7QUSAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARTydAadXPmbj04HDKuBvTjsODwJaQ=="},{"b64Body":"Cg8KCQjIq7OuBhDtBRICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcjsKOQoJCgIYAhD/g69fCiwKJSIjOiECSmDcxZqeWmUjv653FHnv9Hdr70VORGOPf7vLkB1DD/0QgISvXw==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwFcXjzKR3Rwk7M7aRZcXOyyzjnHGkTj79uqny6lOoKVnDBMbowX5wJg++8G245vOJGgwIhKyzrgYQtcSjzQIiDwoJCMirs64GEO0FEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SFwoJCgIYAhD/g69fCgoKAxi6CBCAhK9f"},{"b64Body":"Cg8KCQjJq7OuBhDvBRICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjgESCwiF+o2yBhCNkrZHGm0KIhIgrJ+KUJyZaJbJt2jq4V0iFwU6qoLdZb9JdEM7THHAARUKIzohAzDf2JBnCWetmiDkZ8SOEf1A66A9ueDWm3n9uDkc8/NXCiISIH9D6vKuyrTHBYWWKuoRKX6kV3QPbiMbDhcRf3et5wfPIgxIZWxsbyBXb3JsZCEqADIA","b64Record":"CiUIFhoDGLsIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCvbFAgpWAXIRTdWeU4/Oy9efvchXWRAUUlyNxohMG623CapfpmK4d5vVp7T/0EUNwaCwiFrLOuBhDxy41VIg8KCQjJq7OuBhDvBRICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgA="},{"b64Body":"Cg8KCQjJq7OuBhDzBRICGAISAhgDGIydjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxi7CCKAIDYwODA2MDQwNTI2MTBjOTI4MDYxMDAxMTVmMzk1ZmYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDBmNTc1ZjgwZmQ1YjUwNjAwNDM2MTA2MTAwYTc1NzVmMzU2MGUwMWM4MDYzYTAzZmE3ZTMxMTYxMDA2ZjU3ODA2M2EwM2ZhN2UzMTQ2MTAxNGI1NzgwNjNhNmEzYTMwMDE0NjEwMTY3NTc4MDYzY2MxOWYxM2YxNDYxMDE5NzU3ODA2M2NmYzcyMDA3MTQ2MTAxYjM1NzgwNjNkZDczMTM5NTE0NjEwMWNmNTc4MDYzZTZkMjUyNDUxNDYxMDFmZjU3NjEwMGE3NTY1YjgwNjMyZGExYjEzMDE0NjEwMGFiNTc4MDYzM2U2NTdkMGExNDYxMDBjNzU3ODA2MzdhMjIzYTc3MTQ2MTAwZTM1NzgwNjM3ZWM4NmY4OTE0NjEwMGZmNTc4MDYzOTBmMThkODMxNDYxMDExYjU3NWI1ZjgwZmQ1YjYxMDBjNTYwMDQ4MDM2MDM4MTAxOTA2MTAwYzA5MTkwNjEwYThjNTY1YjYxMDIxYjU2NWIwMDViNjEwMGUxNjAwNDgwMzYwMzgxMDE5MDYxMDBkYzkxOTA2MTBhOGM1NjViNjEwMjg1NTY1YjAwNWI2MTAwZmQ2MDA0ODAzNjAzODEwMTkwNjEwMGY4OTE5MDYxMGE4YzU2NWI2MTAzNzA1NjViMDA1YjYxMDExOTYwMDQ4MDM2MDM4MTAxOTA2MTAxMTQ5MTkwNjEwYThjNTY1YjYxMDQ1YTU2NWIwMDViNjEwMTM1NjAwNDgwMzYwMzgxMDE5MDYxMDEzMDkxOTA2MTBhOGM1NjViNjEwNTQ1NTY1YjYwNDA1MTYxMDE0MjkxOTA2MTBhY2Y1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMTY1NjAwNDgwMzYwMzgxMDE5MDYxMDE2MDkxOTA2MTBiMjM1NjViNjEwNjY3NTY1YjAwNWI2MTAxODE2MDA0ODAzNjAzODEwMTkwNjEwMTdjOTE5MDYxMGE4YzU2NWI2MTA2YWY1NjViNjA0MDUxNjEwMThlOTE5MDYxMGFjZjU2NWI2MDQwNTE4MDkxMDM5MGYzNWI2MTAxYjE2MDA0ODAzNjAzODEwMTkwNjEwMWFjOTE5MDYxMGE4YzU2NWI2MTA3ZDA1NjViMDA1YjYxMDFjZDYwMDQ4MDM2MDM4MTAxOTA2MTAxYzg5MTkwNjEwYjIzNTY1YjYxMDhiYjU2NWIwMDViNjEwMWU5NjAwNDgwMzYwMzgxMDE5MDYxMDFlNDkxOTA2MTBhOGM1NjViNjEwOGQ0NTY1YjYwNDA1MTYxMDFmNjkxOTA2MTBhY2Y1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMjE5NjAwNDgwMzYwMzgxMDE5MDYxMDIxNDkxOTA2MTBiMjM1NjViNjEwOWY1NTY1YjAwNWI4MDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjAwMTYwNDA1MTYxMDI0MDkwNjEwYjdiNTY1YjVmNjA0MDUxODA4MzAzODE4NTg3NWFmMTkyNTA1MDUwM2Q4MDVmODExNDYxMDI3YTU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q1ZjYwMjA4NDAxM2U2MTAyN2Y1NjViNjA2MDkxNTA1YjUwNTA1MDUwNTY1YjgwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MDQwNTE2MDI0MDE2MDQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI3ZmZmNDg5ZDMxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjEwMzJjOTE5MDYxMGJmMTU2NWI1ZjYwNDA1MTgwODMwMzgxNWY4NjVhZjE5MTUwNTAzZDgwNWY4MTE0NjEwMzY1NTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDVmNjAyMDg0MDEzZTYxMDM2YTU2NWI2MDYwOTE1MDViNTA1MDUwNTA1NjViODA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYwNDA1MTYwMjQwMTYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjdmNDc3Mzg3ZDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTA0MTc5MTkwNjEwYmYxNTY1YjVmNjA0MDUxODA4MzAzODE4NTVhZmE5MTUwNTAzZDgwNWY4MTE0NjEwNDRmNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDVmNjAyMDg0MDEzZTYxMDQ1NDU2NWI2MDYwOTE1MDViNTA1MDUwNTA1NjViODA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYwNDA1MTYwMjQwMTYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjdmMTFmOTVmNmYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTA1MDE5MTkwNjEwYmYxNTY1YjVmNjA0MDUxODA4MzAzODE1Zjg2NWFmMTkxNTA1MDNkODA1ZjgxMTQ2MTA1M2E1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNWY2MDIwODQwMTNlNjEwNTNmNTY1YjYwNjA5MTUwNWI1MDUwNTA1MDU2NWI1ZjgwNWY4MzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjA0MDUxNjAyNDAxNjA0MDUxNjAyMDgxODMwMzAzODE1MjkwNjA0MDUyN2YzYTMyYjU0OTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMDVlZjkxOTA2MTBiZjE1NjViNWY2MDQwNTE4MDgzMDM4MTVmODY1YWYxOTE1MDUwM2Q4MDVmODExNDYxMDYyODU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q1ZjYwMjA4NDAxM2U2MTA2MmQ1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA4MTgwMTU2MTA2M2Y1NzUwNWY4MTUxMTE1YjYxMDY0OTU3NWY2MTA2NWU1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTA2NWQ5MTkwNjEwYzMxNTY1YjViOTI1MDUwNTA5MTkwNTA1NjViODA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYxMDhmYzYwMDE5MDgxMTUwMjkwNjA0MDUxNWY2MDQwNTE4MDgzMDM4MTg1ODg4OGYxOTM1MDUwNTA1MDE1ODAxNTYxMDZhYjU3M2Q1ZjgwM2UzZDVmZmQ1YjUwNTA1NjViNWY4MDVmODM3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYwNDA1MTYwMjQwMTYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjdmM2EzMmI1NDkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTA3NTk5MTkwNjEwYmYxNTY1YjVmNjA0MDUxODA4MzAzODE4NTVhZmE5MTUwNTAzZDgwNWY4MTE0NjEwNzkxNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDVmNjAyMDg0MDEzZTYxMDc5NjU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxODAxNTYxMDdhODU3NTA1ZjgxNTExMTViNjEwN2IyNTc1ZjYxMDdjNzU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMDdjNjkxOTA2MTBjMzE1NjViNWI5MjUwNTA1MDkxOTA1MDU2NWI4MDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjA0MDUxNjAyNDAxNjA=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwFwJZsE4aPiqF2Dkuj3lAziuHeYoFCBKZudOzbebcMsBhqqUoAQcMmRBuFn44zURAGgwIhayzrgYQ4ZjF1gIiDwoJCMmrs64GEPMFEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjKq7OuBhD5BRICGAISAhgDGLblozciAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBzhISAxi7CCLGEjQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI3ZjQ3NzM4N2QxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjEwODc3OTE5MDYxMGJmMTU2NWI1ZjYwNDA1MTgwODMwMzgxNWY4NjVhZjE5MTUwNTAzZDgwNWY4MTE0NjEwOGIwNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDVmNjAyMDg0MDEzZTYxMDhiNTU2NWI2MDYwOTE1MDViNTA1MDUwNTA1NjViODA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNmZmNWI1ZjgwNWY4MzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjA0MDUxNjAyNDAxNjA0MDUxNjAyMDgxODMwMzAzODE1MjkwNjA0MDUyN2YzYTMyYjU0OTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMDk3ZTkxOTA2MTBiZjE1NjViNWY2MDQwNTE4MDgzMDM4MTg1NWFmNDkxNTA1MDNkODA1ZjgxMTQ2MTA5YjY1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNWY2MDIwODQwMTNlNjEwOWJiNTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE4MDE1NjEwOWNkNTc1MDVmODE1MTExNWI2MTA5ZDc1NzVmNjEwOWVjNTY1YjgwODA2MDIwMDE5MDUxODEwMTkwNjEwOWViOTE5MDYxMGMzMTU2NWI1YjkyNTA1MDUwOTE5MDUwNTY1YjgwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MTA4ZmM2MDAxOTA4MTE1MDI5MDYwNDA1MTVmNjA0MDUxODA4MzAzODE4NTg4ODhmMTkzNTA1MDUwNTA1MDUwNTY1YjVmODBmZDViNWY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MjE2OTA1MDkxOTA1MDU2NWI1ZjYxMGE1YjgyNjEwYTMyNTY1YjkwNTA5MTkwNTA1NjViNjEwYTZiODE2MTBhNTE1NjViODExNDYxMGE3NTU3NWY4MGZkNWI1MDU2NWI1ZjgxMzU5MDUwNjEwYTg2ODE2MTBhNjI1NjViOTI5MTUwNTA1NjViNWY2MDIwODI4NDAzMTIxNTYxMGFhMTU3NjEwYWEwNjEwYTJlNTY1YjViNWY2MTBhYWU4NDgyODUwMTYxMGE3ODU2NWI5MTUwNTA5MjkxNTA1MDU2NWI1ZjgxOTA1MDkxOTA1MDU2NWI2MTBhYzk4MTYxMGFiNzU2NWI4MjUyNTA1MDU2NWI1ZjYwMjA4MjAxOTA1MDYxMGFlMjVmODMwMTg0NjEwYWMwNTY1YjkyOTE1MDUwNTY1YjVmNjEwYWYyODI2MTBhMzI1NjViOTA1MDkxOTA1MDU2NWI2MTBiMDI4MTYxMGFlODU2NWI4MTE0NjEwYjBjNTc1ZjgwZmQ1YjUwNTY1YjVmODEzNTkwNTA2MTBiMWQ4MTYxMGFmOTU2NWI5MjkxNTA1MDU2NWI1ZjYwMjA4Mjg0MDMxMjE1NjEwYjM4NTc2MTBiMzc2MTBhMmU1NjViNWI1ZjYxMGI0NTg0ODI4NTAxNjEwYjBmNTY1YjkxNTA1MDkyOTE1MDUwNTY1YjVmODE5MDUwOTI5MTUwNTA1NjViNTA1NjViNWY2MTBiNjY1ZjgzNjEwYjRlNTY1YjkxNTA2MTBiNzE4MjYxMGI1ODU2NWI1ZjgyMDE5MDUwOTE5MDUwNTY1YjVmNjEwYjg1ODI2MTBiNWI1NjViOTE1MDgxOTA1MDkxOTA1MDU2NWI1ZjgxNTE5MDUwOTE5MDUwNTY1YjVmNWI4MzgxMTAxNTYxMGJiNjU3ODA4MjAxNTE4MTg0MDE1MjYwMjA4MTAxOTA1MDYxMGI5YjU2NWI1Zjg0ODQwMTUyNTA1MDUwNTA1NjViNWY2MTBiY2I4MjYxMGI4ZjU2NWI2MTBiZDU4MTg1NjEwYjRlNTY1YjkzNTA2MTBiZTU4MTg1NjAyMDg2MDE2MTBiOTk1NjViODA4NDAxOTE1MDUwOTI5MTUwNTA1NjViNWY2MTBiZmM4Mjg0NjEwYmMxNTY1YjkxNTA4MTkwNTA5MjkxNTA1MDU2NWI2MTBjMTA4MTYxMGFiNzU2NWI4MTE0NjEwYzFhNTc1ZjgwZmQ1YjUwNTY1YjVmODE1MTkwNTA2MTBjMmI4MTYxMGMwNzU2NWI5MjkxNTA1MDU2NWI1ZjYwMjA4Mjg0MDMxMjE1NjEwYzQ2NTc2MTBjNDU2MTBhMmU1NjViNWI1ZjYxMGM1Mzg0ODI4NTAxNjEwYzFkNTY1YjkxNTA1MDkyOTE1MDUwNTZmZWEyNjQ2OTcwNjY3MzU4MjIxMjIwMWQ1NzM2ZDRiZjIyMTllZmU2NzcyYThiMWZjZWNlM2JhZTYzNDM1NDc1NzIzMWRhYjZiODJlZmEzNzMzYjY1YTY0NzM2ZjZjNjM0MzAwMDgxNjAwMzM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwOPe5z202BCz/8IOKpoP+FwwVO5Lpja2bD8CNBA9/eNBredujxSxYdloizEOYdcGvGgsIhqyzrgYQ6LvoXiIPCgkIyquzrgYQ+QUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjKq7OuBhD7BRICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGLsIGiISIJIJwhsmlbY/Ah2KIgg71oFbfLOHyWPdpA5THLjHbtC0IJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGLwIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBXkcfUvZwz31EzJqfPOvmIq2kK87fJWrR2ROkmpe1xa0Bl5eYVjQeJBDehVEXizdIaDAiGrLOuBhDpsangAiIPCgkIyquzrgYQ+wUSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQscbCgMYvAgSkhlggGBAUjSAFWEAD1dfgP1bUGAENhBhAKdXXzVg4ByAY6A/p+MRYQBvV4BjoD+n4xRhAUtXgGOmo6MAFGEBZ1eAY8wZ8T8UYQGXV4Bjz8cgBxRhAbNXgGPdcxOVFGEBz1eAY+bSUkUUYQH/V2EAp1ZbgGMtobEwFGEAq1eAYz5lfQoUYQDHV4BjeiI6dxRhAONXgGN+yG+JFGEA/1eAY5DxjYMUYQEbV1tfgP1bYQDFYASANgOBAZBhAMCRkGEKjFZbYQIbVlsAW2EA4WAEgDYDgQGQYQDckZBhCoxWW2EChVZbAFthAP1gBIA2A4EBkGEA+JGQYQqMVlthA3BWWwBbYQEZYASANgOBAZBhARSRkGEKjFZbYQRaVlsAW2EBNWAEgDYDgQGQYQEwkZBhCoxWW2EFRVZbYEBRYQFCkZBhCs9WW2BAUYCRA5DzW2EBZWAEgDYDgQGQYQFgkZBhCyNWW2EGZ1ZbAFthAYFgBIA2A4EBkGEBfJGQYQqMVlthBq9WW2BAUWEBjpGQYQrPVltgQFGAkQOQ81thAbFgBIA2A4EBkGEBrJGQYQqMVlthB9BWWwBbYQHNYASANgOBAZBhAciRkGELI1ZbYQi7VlsAW2EB6WAEgDYDgQGQYQHkkZBhCoxWW2EI1FZbYEBRYQH2kZBhCs9WW2BAUYCRA5DzW2ECGWAEgDYDgQGQYQIUkZBhCyNWW2EJ9VZbAFuAc///////////////////////////FmABYEBRYQJAkGELe1ZbX2BAUYCDA4GFh1rxklBQUD2AX4EUYQJ6V2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1fYCCEAT5hAn9WW2BgkVBbUFBQUFZbgHP//////////////////////////xZgQFFgJAFgQFFgIIGDAwOBUpBgQFJ//0idMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEDLJGQYQvxVltfYEBRgIMDgV+GWvGRUFA9gF+BFGEDZVdgQFGRUGAfGWA/PQEWggFgQFI9glI9X2AghAE+YQNqVltgYJFQW1BQUFBWW4Bz//////////////////////////8WYEBRYCQBYEBRYCCBgwMDgVKQYEBSf0dzh9EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhBBeRkGEL8VZbX2BAUYCDA4GFWvqRUFA9gF+BFGEET1dgQFGRUGAfGWA/PQEWggFgQFI9glI9X2AghAE+YQRUVltgYJFQW1BQUFBWW4Bz//////////////////////////8WYEBRYCQBYEBRYCCBgwMDgVKQYEBSfxH5X28AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhBQGRkGEL8VZbX2BAUYCDA4FfhlrxkVBQPYBfgRRhBTpXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPV9gIIQBPmEFP1ZbYGCRUFtQUFBQVltfgF+Dc///////////////////////////FmBAUWAkAWBAUWAggYMDA4FSkGBAUn86MrVJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQXvkZBhC/FWW19gQFGAgwOBX4Za8ZFQUD2AX4EUYQYoV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1fYCCEAT5hBi1WW2BgkVBbUJFQkVCBgBVhBj9XUF+BURFbYQZJV19hBl5WW4CAYCABkFGBAZBhBl2RkGEMMVZbW5JQUFCRkFBWW4Bz//////////////////////////8WYQj8YAGQgRUCkGBAUV9gQFGAgwOBhYiI8ZNQUFBQFYAVYQarVz1fgD49X/1bUFBWW1+AX4Nz//////////////////////////8WYEBRYCQBYEBRYCCBgwMDgVKQYEBSfzoytUkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhB1mRkGEL8VZbX2BAUYCDA4GFWvqRUFA9gF+BFGEHkVdgQFGRUGAfGWA/PQEWggFgQFI9glI9X2AghAE+YQeWVltgYJFQW1CRUJFQgYAVYQeoV1BfgVERW2EHsldfYQfHVluAgGAgAZBRgQGQYQfGkZBhDDFWW1uSUFBQkZBQVluAc///////////////////////////FmBAUWAkAWBAUWAggYMDA4FSkGBAUn9Hc4fRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQh3kZBhC/FWW19gQFGAgwOBX4Za8ZFQUD2AX4EUYQiwV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1fYCCEAT5hCLVWW2BgkVBbUFBQUFZbgHP//////////////////////////xb/W1+AX4Nz//////////////////////////8WYEBRYCQBYEBRYCCBgwMDgVKQYEBSfzoytUkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhCX6RkGEL8VZbX2BAUYCDA4GFWvSRUFA9gF+BFGEJtldgQFGRUGAfGWA/PQEWggFgQFI9glI9X2AghAE+YQm7VltgYJFQW1CRUJFQgYAVYQnNV1BfgVERW2EJ11dfYQnsVluAgGAgAZBRgQGQYQnrkZBhDDFWW1uSUFBQkZBQVluAc///////////////////////////FmEI/GABkIEVApBgQFFfYEBRgIMDgYWIiPGTUFBQUFBQVltfgP1bX3P//////////////////////////4IWkFCRkFBWW19hCluCYQoyVluQUJGQUFZbYQprgWEKUVZbgRRhCnVXX4D9W1BWW1+BNZBQYQqGgWEKYlZbkpFQUFZbX2AggoQDEhVhCqFXYQqgYQouVltbX2EKroSChQFhCnhWW5FQUJKRUFBWW1+BkFCRkFBWW2EKyYFhCrdWW4JSUFBWW19gIIIBkFBhCuJfgwGEYQrAVluSkVBQVltfYQrygmEKMlZbkFCRkFBWW2ELAoFhCuhWW4EUYQsMV1+A/VtQVltfgTWQUGELHYFhCvlWW5KRUFBWW19gIIKEAxIVYQs4V2ELN2EKLlZbW19hC0WEgoUBYQsPVluRUFCSkVBQVltfgZBQkpFQUFZbUFZbX2ELZl+DYQtOVluRUGELcYJhC1hWW1+CAZBQkZBQVltfYQuFgmELW1ZbkVCBkFCRkFBWW1+BUZBQkZBQVltfW4OBEBVhC7ZXgIIBUYGEAVJgIIEBkFBhC5tWW1+EhAFSUFBQUFZbX2ELy4JhC49WW2EL1YGFYQtOVluTUGEL5YGFYCCGAWELmVZbgIQBkVBQkpFQUFZbX2EL/IKEYQvBVluRUIGQUJKRUFBWW2EMEIFhCrdWW4EUYQwaV1+A/VtQVltfgVGQUGEMK4FhDAdWW5KRUFBWW19gIIKEAxIVYQxGV2EMRWEKLlZbW19hDFOEgoUBYQwdVluRUFCSkVBQVv6iZGlwZnNYIhIgHVc21L8iGe/mdyqLH87OO65jQ1R1cjHatrgu+jcztlpkc29sY0MACBYAMyKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAowJoMOgMYvAhKFgoUAAAAAAAAAAAAAAAAAAAAAAAABDxyBwoDGLwIEAFSFgoJCgIYAhD/ssUNCgkKAhhiEICzxQ0="},{"b64Body":"ChAKCQjLq7OuBhD9BRIDGLkIEgIYAxiz+NEVIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA9UBCswBAvjJggEqgKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0alKIAIMCSfCUAAAAAAAAAAAAAAAAAAAAAAAABDyApKA/p+MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsABoPWeHUpOErs+8CWnoD45qV85SgaCYecvMNc2WoBZ+ffFoBGqQMorzvhirQxLRNTwgZCkzIUiy0Uz90uW3hcyb2dAGIDKte4B","b64Record":"CiUIISIDGLwIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjB1GQFc8PiZdqjqA6ZHb2HyL8Asc8NuHxuCiuzKrXvvuOT5AGEDeV3BDrU2JadGXTMaCwiHrLOuBhDAzY5oIhAKCQjLq7OuBhD9BRIDGLkIKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDz+tkZOjsaAjB4KMCpB1DwkwliJKA/p+MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmoDGLoIegIIAVJGCgkKAhgDEIC0xgEKCQoCGGIQhpzBKQoKCgMYoAYQ8JKWBAoKCgMYoQYQ8JKWBAoKCgMYuQgQpbKgLAoKCgMYuggQv8OTB4oBIGvcFJfRfHxVrqoo3AxRWpfCBzvKHI1gtiWN5nmMG3zB"}]},"nonceUpdatedAfterEvmReversionDueMaxChildRecordsExceeded":{"placeholderNum":1085,"encodedItems":[{"b64Body":"Cg8KCQjPq7OuBhCVBhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIETh4YYoKopBvPDfdjPzqMQLLk6X2HLKvL29vygdgQLzEICU69wDSgUIgM7aAw==","b64Record":"CiUIFhIDGL4IKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAkNI5hcAituKiSuFJv+57oB7mkeITxeJnN8xkYSSGdqadGCVbdQGWf7viYqFPyL1IaCwiMrLOuBhCP44gJIg8KCQjPq7OuBhCVBhICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUhkKCgoCGAIQ/6fWuQcKCwoDGL4IEICo1rkH"},{"b64Body":"Cg8KCQjQq7OuBhCXBhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIDlOeBN389cIo2BnlUR8ch5n1ZQ94wGvZar10Z26p2VqEIDIr6AlSgUIgM7aAw==","b64Record":"CiUIFhIDGL8IKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAC5QRKDmYPuOT/URShsqhvQ6bAmNn1sCW6Mz73vjyQWBRtgSo1R91aQvFiwq5X9dwaDAiMrLOuBhD25tvtASIPCgkI0KuzrgYQlwYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxi/CBCAkN/ASg=="},{"b64Body":"ChEKCQjQq7OuBhCZBhICGAIgAVpoCiM6IQIjxPYNZAEQEYzZ1EN9qe2x/vip1TNvnPBzK93GWFCLEUoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiECI8T2DWQBEBGM2dRDfantsf74qdUzb5zwcyvdxlhQixE=","b64Record":"CgcIFhIDGMAIEjAznrE7ISNSaxfyJw73p+Mfb0xVsyEVAk+pcxUpwIHXoKWYATeweGcaxofC/eJsWoQaDAiMrLOuBhCk07PSAyIRCgkI0KuzrgYQmQYSAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARQaYv2tsAugteQmsvq21e2VYhlFww=="},{"b64Body":"Cg8KCQjQq7OuBhCZBhICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcjsKOQoJCgIYAhD/g69fCiwKJSIjOiECI8T2DWQBEBGM2dRDfantsf74qdUzb5zwcyvdxlhQixEQgISvXw==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwhYutoaUccn4vZyLjVw8COfHa8E2q1pXujx6mB95gCtaPcElfIDonPUZ4CGKodPZZGgwIjKyzrgYQpdOz0gMiDwoJCNCrs64GEJkGEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SFwoJCgIYAhD/g69fCgoKAxjACBCAhK9f"},{"b64Body":"Cg8KCQjRq7OuBhCbBhICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAiN+o2yBhDXoPjkARptCiISICFrmtElEXys3sgRSmgSOJipMO01xwKy3n2ELzL8MtE7CiM6IQKtQW1JcAJtqNs3zevbR2oWry+ho24u5sh/b17SThGWZgoiEiBlD85DsuL2Ig4X4rtPXqWcpVrdg68YYOWFHTL0gMviViIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGMEIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCDyVdfJhnSZ3L0OQUR5zxoPCOsc21dTwrkiLQ9mhB2FDLt0TGAQK04WmqzRNuYXPcaDAiNrLOuBhDQ3LX3ASIPCgkI0auzrgYQmwYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjRq7OuBhCfBhICGAISAhgDGMafiDkiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBghcKAxjBCCL6FjYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMDU5ZDgwNjEwMDIwNjAwMDM5NjAwMGYzZmU2MDgwNjA0MDUyNjAwNDM2MTA2MTAwMzQ1NzYwMDAzNTYwZTAxYzgwNjMyZTY4ZDA1MDE0NjEwMDM5NTc4MDYzNDQ2YWE4OGIxNDYxMDA2MjU3ODA2M2FmYTEwZGNhMTQ2MTAwN2U1NzViNjAwMDgwZmQ1YjM0ODAxNTYxMDA0NTU3NjAwMDgwZmQ1YjUwNjEwMDYwNjAwNDgwMzYwMzgxMDE5MDYxMDA1YjkxOTA2MTAyOGM1NjViNjEwMGE3NTY1YjAwNWI2MTAwN2M2MDA0ODAzNjAzODEwMTkwNjEwMDc3OTE5MDYxMDMxZDU2NWI2MTAxNDY1NjViMDA1YjM0ODAxNTYxMDA4YTU3NjAwMDgwZmQ1YjUwNjEwMGE1NjAwNDgwMzYwMzgxMDE5MDYxMDBhMDkxOTA2MTAzNGE1NjViNjEwMTkwNTY1YjAwNWI2MDAwNWI4MTgxMTAxNTYxMDE0MDU3ODM3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzNzBhMDgyMzE4NDYwNDA1MTgyNjNmZmZmZmZmZjE2NjBlMDFiODE1MjYwMDQwMTYxMDBlYjkxOTA2MTAzODY1NjViNjAyMDYwNDA1MTgwODMwMzgxODY1YWZhMTU4MDE1NjEwMTA4NTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1MDUwNjA0MDUxM2Q2MDFmMTk2MDFmODIwMTE2ODIwMTgwNjA0MDUyNTA4MTAxOTA2MTAxMmM5MTkwNjEwM2I2NTY1YjUwODA4MDYxMDEzODkwNjEwNDEyNTY1YjkxNTA1MDYxMDBhYTU2NWI1MDUwNTA1MDU2NWI4MDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjEwOGZjMzQ5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTU4MDE1NjEwMThjNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1NjViNjAwMDViODE4MTEwMTU2MTAxZTM1NzgwNjA0MDUxNjEwMWE4OTA2MTAxZTc1NjViNjEwMWIyOTE5MDYxMDQ2OTU2NWI2MDQwNTE4MDkxMDM5MDYwMDBmMDgwMTU4MDE1NjEwMWNlNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA4MDgwNjEwMWRiOTA2MTA0MTI1NjViOTE1MDUwNjEwMTkzNTY1YjUwNTA1NjViNjBlMzgwNjEwNDg1ODMzOTAxOTA1NjViNjAwMDgwZmQ1YjYwMDA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MjE2OTA1MDkxOTA1MDU2NWI2MDAwNjEwMjIzODI2MTAxZjg1NjViOTA1MDkxOTA1MDU2NWI2MTAyMzM4MTYxMDIxODU2NWI4MTE0NjEwMjNlNTc2MDAwODBmZDViNTA1NjViNjAwMDgxMzU5MDUwNjEwMjUwODE2MTAyMmE1NjViOTI5MTUwNTA1NjViNjAwMDgxOTA1MDkxOTA1MDU2NWI2MTAyNjk4MTYxMDI1NjU2NWI4MTE0NjEwMjc0NTc2MDAwODBmZDViNTA1NjViNjAwMDgxMzU5MDUwNjEwMjg2ODE2MTAyNjA1NjViOTI5MTUwNTA1NjViNjAwMDgwNjAwMDYwNjA4NDg2MDMxMjE1NjEwMmE1NTc2MTAyYTQ2MTAxZjM1NjViNWI2MDAwNjEwMmIzODY4Mjg3MDE2MTAyNDE1NjViOTM1MDUwNjAyMDYxMDJjNDg2ODI4NzAxNjEwMjQxNTY1YjkyNTA1MDYwNDA2MTAyZDU4NjgyODcwMTYxMDI3NzU2NWI5MTUwNTA5MjUwOTI1MDkyNTY1YjYwMDA2MTAyZWE4MjYxMDFmODU2NWI5MDUwOTE5MDUwNTY1YjYxMDJmYTgxNjEwMmRmNTY1YjgxMTQ2MTAzMDU1NzYwMDA4MGZkNWI1MDU2NWI2MDAwODEzNTkwNTA2MTAzMTc4MTYxMDJmMTU2NWI5MjkxNTA1MDU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTAzMzM1NzYxMDMzMjYxMDFmMzU2NWI1YjYwMDA2MTAzNDE4NDgyODUwMTYxMDMwODU2NWI5MTUwNTA5MjkxNTA1MDU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTAzNjA1NzYxMDM1ZjYxMDFmMzU2NWI1YjYwMDA2MTAzNmU4NDgyODUwMTYxMDI3NzU2NWI5MTUwNTA5MjkxNTA1MDU2NWI2MTAzODA4MTYxMDIxODU2NWI4MjUyNTA1MDU2NWI2MDAwNjAyMDgyMDE5MDUwNjEwMzliNjAwMDgzMDE4NDYxMDM3NzU2NWI5MjkxNTA1MDU2NWI2MDAwODE1MTkwNTA2MTAzYjA4MTYxMDI2MDU2NWI5MjkxNTA1MDU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MTAzY2M1NzYxMDNjYjYxMDFmMzU2NWI1YjYwMDA2MTAzZGE4NDgyODUwMTYxMDNhMTU2NWI5MTUwNTA5MjkxNTA1MDU2NWI3ZjRlNDg3YjcxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MDAwNTI2MDExNjAwNDUyNjAyNDYwMDBmZDViNjAwMDYxMDQxZDgyNjEwMjU2NTY1YjkxNTA3ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MjAzNjEwNDRmNTc2MTA0NGU2MTAzZTM1NjViNWI2MDAxODIwMTkwNTA5MTkwNTA1NjViNjEwNDYzODE2MTAyNTY1NjViODI1MjUwNTA1NjViNjAwMDYwMjA4MjAxOTA1MDYxMDQ3ZTYwMDA4MzAxODQ2MTA0NWE1NjViOTI5MTUwNTA1NmZlNjA4MDYwNDA1MjM0ODAxNTYwMGY1NzYwMDA4MGZkNWI1MDYwNDA1MTYwZTMzODAzODA2MGUzODMzOTgxODEwMTYwNDA1MjgxMDE5MDYwMmQ5MTkwNjA2ZjU2NWI4MDYwMDA4MTkwNTU1MDUwNjA5NzU2NWI2MDAwODBmZDViNjAwMDgxOTA1MDkxOTA1MDU2NWI2MDRmODE2MDNlNTY1YjgxMTQ2MDU5NTc2MDAwODBmZDViNTA1NjViNjAwMDgxNTE5MDUwNjA2OTgxNjA0ODU2NWI5MjkxNTA1MDU2NWI2MDAwNjAyMDgyODQwMzEyMTU2MDgyNTc2MDgxNjAzOTU2NWI1YjYwMDA2MDhlODQ4Mjg1MDE2MDVjNTY1YjkxNTA1MDkyOTE1MDUwNTY1YjYwM2Y4MDYwYTQ2MDAwMzk2MDAwZjNmZTYwODA2MDQwNTI2MDAwODBmZGZlYTI2NDY5NzA2NjczNTgyMjEyMjA3NWYzNmVkOWJhNzMxMTU4ZDFkMGQ5YWU5N2IzYzViOGQ4ZmViZGI0OGIwNTg5NTU1ZDQ2ZGJmYzdiYWI0NmNkNjQ3MzZmNmM2MzQzMDAwODEwMDAzM2EyNjQ2OTcwNjY3MzU4MjIxMjIwOTg5ZWUwNjZiNTU3ZjJlZmUzNzI1YjllMjhjNDk4MTUxYTAyZDM5OTAxNWE1ODc5YmI3ZDM0MGViMzZmY2M0MTY0NzM2ZjZjNjM0MzAwMDgxMDAwMzM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwCqLHnZtOMT/2+k0L6bOfKbN+6Bmuy43rwVmjqK5nfwu3CkTFeHQMBQppPzBpz0DRGgsIjqyzrgYQt7XuGyIPCgkI0auzrgYQnwYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjSq7OuBhChBhICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGMEIGiISIGAi0PHsUOslcXSMURAA6URMfJN3nxe+YY9tCdFffttdIJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"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"},{"b64Body":"Cg8KCQjTq7OuBhCjBhICGAISAhgDGPHv7egCIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo7qAS8KDWZ1bmdpYmxlVG9rZW4SCFFQU0tHRFFJIMCEPSoDGL4IagsIj/qNsgYQ7/3jBQ==","b64Record":"CiUIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkD1IDGMMIEjCLYEf1tWKCCAkfsslWQim/tI6FGPNSRZxFo+afRmZX8vzeQqDKY7+3hP/IosTdC8UaCwiPrLOuBhDt+KAlIg8KCQjTq7OuBhCjBhICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgBaEAoDGMMIEgkKAxi+CBCAiXpyCgoDGMMIEgMYvgg="},{"b64Body":"ChAKCQjTq7OuBhClBhIDGL8IEgIYAxjlsPAVIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA5cCCo4CAvkBCoIBKoCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+igAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdGpSiACDAknwlAAAAAAAAAAAAAAAAAAAAAAAAARCgLhkLmjQUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABD4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM8CAoHKcTga/DnSbpIQv6bE9VnA4dQ9CNdznOIy4t7iiWuDwoCSVOHjW8tqfHAMzCx6YeRsEgrw0xnDM0YBhJkLqPKcgGIDKte4B","b64Record":"CiYIyAIiAxjCCCocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwGCvMctb1v6mMtyiqnHI7HS2Dgs0EVll8TzdUgBAeRrRMKjtfreCQYbRlfqNK34vPGgwIj6yzrgYQvLa5igIiEAoJCNOrs64GEKUGEgMYvwgqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMPWz+ho6rwEaNjB4NGQ0MTU4NWY0MzQ4NDk0YzQ0NWY1MjQ1NDM0ZjUyNDQ1MzVmNDU1ODQzNDU0NTQ0NDU0NCjwkwlQ8JMJYmQuaNBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzagMYwAh6AggBUkYKCQoCGAMQtP7JAQoJCgIYYhDmiPMrCgoKAxigBhCo8JsECgoKAxihBhCo8JsECgoKAxi/CBCppOEuCgoKAxjACBC/w5MHigEgjm57btrGJ7WXFTBh7J0sHrDRsi+WvJrjOjq7MkP+3sU="},{"b64Body":"ChIKCQjTq7OuBhClBhIDGL8IIAE6RQoDGOcCEAEiPGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEQ3CggjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPg==","b64Record":"CgMImAISMPSlP0UiWKxz3bJadkHlBm7iI0m83e5bhaHK9XNSSthb59xWYegnTW93SO8XFFuQQRoMCI+ss64GEL22uYoCIhIKCQjTq7OuBhClBhIDGL8IIAE6LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQChkagMYwghSAHoMCI+ss64GELy2uYoC"},{"b64Body":"ChIKCQjTq7OuBhClBhIDGL8IIAI6RQoDGOcCEAEiPGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEQ3CggjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPg==","b64Record":"CgMImAISML2pO3kEYpjDHgeM9E/KvTx7fiAl4ch2VkVVdPyP+CWyCcZDeqdYZBserS8YqZC4NxoMCI+ss64GEL62uYoCIhIKCQjTq7OuBhClBhIDGL8IIAI6LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQChkagMYwghSAHoMCI+ss64GELy2uYoC"},{"b64Body":"ChIKCQjTq7OuBhClBhIDGL8IIAM6RQoDGOcCEAEiPGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEQ3CggjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPg==","b64Record":"CgMImAISMPy8X6f1I7fAzZhmYx6t5N8pzo8xIbiRyJSrORere8MWzPTNPaHBXTgViBFKqr8+PhoMCI+ss64GEL+2uYoCIhIKCQjTq7OuBhClBhIDGL8IIAM6LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQChkagMYwghSAHoMCI+ss64GELy2uYoC"},{"b64Body":"ChIKCQjTq7OuBhClBhIDGL8IIAQ6RQoDGOcCEAEiPGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEQ3CggjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPg==","b64Record":"CgMImAISMPJqjFQH5Z7Nck1JvEhjrRa4ZjBwTO9FyL2ZyqQlfP2bCRWDJO0KNiBycwx9m8JnQhoMCI+ss64GEMC2uYoCIhIKCQjTq7OuBhClBhIDGL8IIAQ6LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQChkagMYwghSAHoMCI+ss64GELy2uYoC"},{"b64Body":"ChIKCQjTq7OuBhClBhIDGL8IIAU6RQoDGOcCEAEiPGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEQ3CggjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPg==","b64Record":"CgMImAISMOaVcVhIklrskltgpjgUE9wfZa7JQAplhdYkY/2TgsBszV7xjwfqyxztdenlMTN2KBoMCI+ss64GEMG2uYoCIhIKCQjTq7OuBhClBhIDGL8IIAU6LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQChkagMYwghSAHoMCI+ss64GELy2uYoC"},{"b64Body":"ChIKCQjTq7OuBhClBhIDGL8IIAY6RQoDGOcCEAEiPGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEQ3CggjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPg==","b64Record":"CgMImAISMMX/92qj4Ttpxlh6g3BCmhxJumroBhtmQHjxcN7AYaF2tB7QhoGOoLrx4nJosBOv3BoMCI+ss64GEMK2uYoCIhIKCQjTq7OuBhClBhIDGL8IIAY6LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQChkagMYwghSAHoMCI+ss64GELy2uYoC"},{"b64Body":"ChIKCQjTq7OuBhClBhIDGL8IIAc6RQoDGOcCEAEiPGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEQ3CggjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPg==","b64Record":"CgMImAISMCKA9kOAEXBZzwgwM4+Rn3tJzbY49cNL23esGbTrkh1wxFqCF4x7J6WLyWdvvicINxoMCI+ss64GEMO2uYoCIhIKCQjTq7OuBhClBhIDGL8IIAc6LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQChkagMYwghSAHoMCI+ss64GELy2uYoC"},{"b64Body":"ChIKCQjTq7OuBhClBhIDGL8IIAg6RQoDGOcCEAEiPGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEQ3CggjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPg==","b64Record":"CgMImAISMFWmvyl7jhrDwYNRpovXk8jtjz69jKgwy77eoCr4QAMIReXYXn1e+LFcEaeqnM3RqxoMCI+ss64GEMS2uYoCIhIKCQjTq7OuBhClBhIDGL8IIAg6LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQChkagMYwghSAHoMCI+ss64GELy2uYoC"},{"b64Body":"ChIKCQjTq7OuBhClBhIDGL8IIAk6RQoDGOcCEAEiPGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEQ3CggjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPg==","b64Record":"CgMImAISMJq2y1qgnYkmOkjSnJzbPtRwL4kvbUZlJ90TJo6H+AIhFe+Le9RHMNLfj6xQl6VuwRoMCI+ss64GEMW2uYoCIhIKCQjTq7OuBhClBhIDGL8IIAk6LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQChkagMYwghSAHoMCI+ss64GELy2uYoC"},{"b64Body":"ChIKCQjTq7OuBhClBhIDGL8IIAo6RQoDGOcCEAEiPGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEQ3CggjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPg==","b64Record":"CgMImAISMEXXKxH72TsIGp+5V0Lf28QSz62j3N/GxxDz+dQp9iddyk82PcLe+VDy6hUGiKwQMxoMCI+ss64GEMa2uYoCIhIKCQjTq7OuBhClBhIDGL8IIAo6LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQChkagMYwghSAHoMCI+ss64GELy2uYoC"},{"b64Body":"ChIKCQjTq7OuBhClBhIDGL8IIAs6RQoDGOcCEAEiPGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEQ3CggjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPg==","b64Record":"CgMImAISMF2T7ZvBSb+zw4c+cGG/oqKEJUUXbWhHHdD2KuIeRwtQzlPIe6zQ8ky4mvj0L2HXJRoMCI+ss64GEMe2uYoCIhIKCQjTq7OuBhClBhIDGL8IIAs6LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQChkagMYwghSAHoMCI+ss64GELy2uYoC"},{"b64Body":"ChIKCQjTq7OuBhClBhIDGL8IIAw6RQoDGOcCEAEiPGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEQ3CggjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPg==","b64Record":"CgMImAISMAV9eZdt/UhC5WdS6Tv5hxNj7KUyFRTXoMtT4ZhVTaJXfujWOUV+Sn7CODhVOk69ZBoMCI+ss64GEMi2uYoCIhIKCQjTq7OuBhClBhIDGL8IIAw6LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQChkagMYwghSAHoMCI+ss64GELy2uYoC"},{"b64Body":"ChIKCQjTq7OuBhClBhIDGL8IIA06RQoDGOcCEAEiPGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEQ3CggjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPg==","b64Record":"CgMImAISMJjuMPszu/8rVnPRyvinTmTRjVX4gzL/yqVD4YL1P266tPPA/6/vuEpgb8ndELa98xoMCI+ss64GEMm2uYoCIhIKCQjTq7OuBhClBhIDGL8IIA06LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQChkagMYwghSAHoMCI+ss64GELy2uYoC"},{"b64Body":"ChIKCQjTq7OuBhClBhIDGL8IIA46RQoDGOcCEAEiPGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEQ3CggjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPg==","b64Record":"CgMImAISMAjJc4SDi5LueUcG9zT4EM2YTGK9pqzNnhGnl7JStSeEGxHxbt7r5OVPQdQiQYag2hoMCI+ss64GEMq2uYoCIhIKCQjTq7OuBhClBhIDGL8IIA46LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQChkagMYwghSAHoMCI+ss64GELy2uYoC"},{"b64Body":"ChIKCQjTq7OuBhClBhIDGL8IIA86RQoDGOcCEAEiPGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEQ3CggjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPg==","b64Record":"CgMImAISMAKUT/rVqnrWJZ24kK6lzqMLhBIgqVw1Y5gu/cVnK/+9nO6AeuK172uLyAPSKk9hmxoMCI+ss64GEMu2uYoCIhIKCQjTq7OuBhClBhIDGL8IIA86LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQChkagMYwghSAHoMCI+ss64GELy2uYoC"},{"b64Body":"ChIKCQjTq7OuBhClBhIDGL8IIBA6RQoDGOcCEAEiPGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEQ3CggjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPg==","b64Record":"CgMImAISMDf0j5FH7V0le4StNLntDP/GT+ZeBONm+hrgeQd0I5htCHjSfAV7nEvZSFpdsRaV1RoMCI+ss64GEMy2uYoCIhIKCQjTq7OuBhClBhIDGL8IIBA6LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQChkagMYwghSAHoMCI+ss64GELy2uYoC"},{"b64Body":"ChIKCQjTq7OuBhClBhIDGL8IIBE6RQoDGOcCEAEiPGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEQ3CggjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPg==","b64Record":"CgMImAISMHJe9DHh7/8sbirNMyVMz/dGBFVSD1TbLsOqN2DzKF3WJAxBaJC1Fg64IpgXQC09IBoMCI+ss64GEM22uYoCIhIKCQjTq7OuBhClBhIDGL8IIBE6LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQChkagMYwghSAHoMCI+ss64GELy2uYoC"},{"b64Body":"ChIKCQjTq7OuBhClBhIDGL8IIBI6RQoDGOcCEAEiPGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEQ3CggjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPg==","b64Record":"CgMImAISMPzrYQ4GbGvGQzfm9K8RNgDuaVvUmL6cPqPVq4JPvtnwonVZ96MmFCou3uCbR/4A7RoMCI+ss64GEM62uYoCIhIKCQjTq7OuBhClBhIDGL8IIBI6LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQChkagMYwghSAHoMCI+ss64GELy2uYoC"},{"b64Body":"ChIKCQjTq7OuBhClBhIDGL8IIBM6RQoDGOcCEAEiPGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEQ3CggjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPg==","b64Record":"CgMImAISMLew4+1SzjVEh758qV2pyxIxNSjO7tLY4SXx4/LlgXsZkPlonECrwYiJ//tHQFKfTxoMCI+ss64GEM+2uYoCIhIKCQjTq7OuBhClBhIDGL8IIBM6LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQChkagMYwghSAHoMCI+ss64GELy2uYoC"},{"b64Body":"ChIKCQjTq7OuBhClBhIDGL8IIBQ6RQoDGOcCEAEiPGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEQ3CggjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPg==","b64Record":"CgMImAISMHgly7e0j69wptzxkGIDgNvHnCBmTnt/3uBNpXjzpU9RnCxX7TU+wjoQnv51hHvaOhoMCI+ss64GENC2uYoCIhIKCQjTq7OuBhClBhIDGL8IIBQ6LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQChkagMYwghSAHoMCI+ss64GELy2uYoC"},{"b64Body":"ChIKCQjTq7OuBhClBhIDGL8IIBU6RQoDGOcCEAEiPGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEQ3CggjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPg==","b64Record":"CgMImAISMI1FISP7a6b78srP0mcTzHRmzbIWy2aTzZt8j3FDWTgaMTPS9r3palBVViN+S4SgPBoMCI+ss64GENG2uYoCIhIKCQjTq7OuBhClBhIDGL8IIBU6LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQChkagMYwghSAHoMCI+ss64GELy2uYoC"},{"b64Body":"ChIKCQjTq7OuBhClBhIDGL8IIBY6RQoDGOcCEAEiPGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEQ3CggjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPg==","b64Record":"CgMImAISMM2849ApMfssIuZXvRou/xAasG5MC/6X7qX8wxrR54HUqMaMXWSWCqUbbX9PO6Z5gRoMCI+ss64GENK2uYoCIhIKCQjTq7OuBhClBhIDGL8IIBY6LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQChkagMYwghSAHoMCI+ss64GELy2uYoC"},{"b64Body":"ChIKCQjTq7OuBhClBhIDGL8IIBc6RQoDGOcCEAEiPGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEQ3CggjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPg==","b64Record":"CgMImAISMEik42CpU/WcnT1ncszP5hXWTFSqw/4M2gdJNmxHd0QhsioWzPhhZXh9+le7M5DIPxoMCI+ss64GENO2uYoCIhIKCQjTq7OuBhClBhIDGL8IIBc6LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQChkagMYwghSAHoMCI+ss64GELy2uYoC"},{"b64Body":"ChIKCQjTq7OuBhClBhIDGL8IIBg6RQoDGOcCEAEiPGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEQ3CggjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPg==","b64Record":"CgMImAISMKnwI4lj8sYczbdvoh5kgTVwEhHBH2O6EYTPD2xuZ6fR4bCbgzckfxhDChIkX0WV2RoMCI+ss64GENS2uYoCIhIKCQjTq7OuBhClBhIDGL8IIBg6LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQChkagMYwghSAHoMCI+ss64GELy2uYoC"},{"b64Body":"ChIKCQjTq7OuBhClBhIDGL8IIBk6RQoDGOcCEAEiPGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEQ3CggjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPg==","b64Record":"CgMImAISMCM6QwSH3KlPUVLqnVi9GJ+5jBaAX06nB8bWlj0iKHUtvlU2sw1y7WBAp52Y+uf4KhoMCI+ss64GENW2uYoCIhIKCQjTq7OuBhClBhIDGL8IIBk6LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQChkagMYwghSAHoMCI+ss64GELy2uYoC"},{"b64Body":"ChIKCQjTq7OuBhClBhIDGL8IIBo6RQoDGOcCEAEiPGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEQ3CggjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPg==","b64Record":"CgMImAISMCLHyTPhP96HxfvR0mP0DLLaU6keun0q/pyOMpVP48TIg5C+JoOlhYo/5jSOk5ZZdhoMCI+ss64GENa2uYoCIhIKCQjTq7OuBhClBhIDGL8IIBo6LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQChkagMYwghSAHoMCI+ss64GELy2uYoC"},{"b64Body":"ChIKCQjTq7OuBhClBhIDGL8IIBs6RQoDGOcCEAEiPGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEQ3CggjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPg==","b64Record":"CgMImAISMCksnx2zWM5dKNm2oGhYCu3DwdfxZvVNVEqBJVe9xnVjCAIt0KHgfXQsioxayeFSHRoMCI+ss64GENe2uYoCIhIKCQjTq7OuBhClBhIDGL8IIBs6LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQChkagMYwghSAHoMCI+ss64GELy2uYoC"},{"b64Body":"ChIKCQjTq7OuBhClBhIDGL8IIBw6RQoDGOcCEAEiPGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEQ3CggjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPg==","b64Record":"CgMImAISMAeC8KzV1T/0NRTx9FwLASPHBgzfqmySbme8hX3Ge/8OF16sGJfjUcDWHvxFxH+gBBoMCI+ss64GENi2uYoCIhIKCQjTq7OuBhClBhIDGL8IIBw6LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQChkagMYwghSAHoMCI+ss64GELy2uYoC"},{"b64Body":"ChIKCQjTq7OuBhClBhIDGL8IIB06RQoDGOcCEAEiPGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEQ3CggjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPg==","b64Record":"CgMImAISMOyY9UvQOEW8fC3+Q3XRIZ5X9afIcGKx2V8iy3uDsdCCD8Jp3QIXFOboqqdfXP4ngxoMCI+ss64GENm2uYoCIhIKCQjTq7OuBhClBhIDGL8IIB06LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQChkagMYwghSAHoMCI+ss64GELy2uYoC"},{"b64Body":"ChIKCQjTq7OuBhClBhIDGL8IIB46RQoDGOcCEAEiPGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEQ3CggjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPg==","b64Record":"CgMImAISMHHVbSs10eZhzyHq2d74uqCMCA35mbOr0aW0Ydh/JJADmYO1CFJ5iXyocL5cjF7r+xoMCI+ss64GENq2uYoCIhIKCQjTq7OuBhClBhIDGL8IIB46LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQChkagMYwghSAHoMCI+ss64GELy2uYoC"},{"b64Body":"ChIKCQjTq7OuBhClBhIDGL8IIB86RQoDGOcCEAEiPGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEQ3CggjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPg==","b64Record":"CgMImAISMDQvuytoLax0Dsmfgw2LkzIwPYGUbBnoAF2HsfV1AWnE+cuqb62/fmIhxvnqc8+gMhoMCI+ss64GENu2uYoCIhIKCQjTq7OuBhClBhIDGL8IIB86LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQChkagMYwghSAHoMCI+ss64GELy2uYoC"},{"b64Body":"ChIKCQjTq7OuBhClBhIDGL8IICA6RQoDGOcCEAEiPGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEQ3CggjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPg==","b64Record":"CgMImAISMLrs55tj+hJHe//J9tfoHNqJT38bawsPn+7Du4m/l/T6EWoKTCJ73tqsZWZSp1BogxoMCI+ss64GENy2uYoCIhIKCQjTq7OuBhClBhIDGL8IICA6LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQChkagMYwghSAHoMCI+ss64GELy2uYoC"},{"b64Body":"ChIKCQjTq7OuBhClBhIDGL8IICE6RQoDGOcCEAEiPGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEQ3CggjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPg==","b64Record":"CgMImAISMLMMm2dN0qqDf5PKDST58X7RKNTjkt/L+23CL+z6ahJYat9bseyOBPScDcuG4dIYIRoMCI+ss64GEN22uYoCIhIKCQjTq7OuBhClBhIDGL8IICE6LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQChkagMYwghSAHoMCI+ss64GELy2uYoC"},{"b64Body":"ChIKCQjTq7OuBhClBhIDGL8IICI6RQoDGOcCEAEiPGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEQ3CggjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPg==","b64Record":"CgMImAISMCbYsaYj7u0kOzVFlyoUWK82SW1PffRIp1XcMfFk8O3Y+OR6QbxpLP+yPUEzMA0NKxoMCI+ss64GEN62uYoCIhIKCQjTq7OuBhClBhIDGL8IICI6LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQChkagMYwghSAHoMCI+ss64GELy2uYoC"},{"b64Body":"ChIKCQjTq7OuBhClBhIDGL8IICM6RQoDGOcCEAEiPGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEQ3CggjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPg==","b64Record":"CgMImAISMN5OdY8Tjh5Q6QKYZTATviQqxkVmJYfBJzYKWY+3DhtFzLwY/3dcyKfeSNJtvQswmRoMCI+ss64GEN+2uYoCIhIKCQjTq7OuBhClBhIDGL8IICM6LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQChkagMYwghSAHoMCI+ss64GELy2uYoC"},{"b64Body":"ChIKCQjTq7OuBhClBhIDGL8IICQ6RQoDGOcCEAEiPGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEQ3CggjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPg==","b64Record":"CgMImAISMKNlRdVpMMj+pDQowavCPSdV1xeuM3/OpGwOHqJ1f6XAv9O+r3Fkorsga1FEidJRbhoMCI+ss64GEOC2uYoCIhIKCQjTq7OuBhClBhIDGL8IICQ6LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQChkagMYwghSAHoMCI+ss64GELy2uYoC"},{"b64Body":"ChIKCQjTq7OuBhClBhIDGL8IICU6RQoDGOcCEAEiPGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEQ3CggjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPg==","b64Record":"CgMImAISMKGu1NeLDr16QqyGzhb81jfqL5e+2qOtVjVZKJ8DId1SJvB5wrsYWp5LRdZY1QD6YBoMCI+ss64GEOG2uYoCIhIKCQjTq7OuBhClBhIDGL8IICU6LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQChkagMYwghSAHoMCI+ss64GELy2uYoC"},{"b64Body":"ChIKCQjTq7OuBhClBhIDGL8IICY6RQoDGOcCEAEiPGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEQ3CggjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPg==","b64Record":"CgMImAISMInJPKJT+8WDRpn+jLhlipgV1ZDLTKCu/+xOL0ge53GL1tS0VS+ayx5kSR2j82NJIBoMCI+ss64GEOK2uYoCIhIKCQjTq7OuBhClBhIDGL8IICY6LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQChkagMYwghSAHoMCI+ss64GELy2uYoC"},{"b64Body":"ChIKCQjTq7OuBhClBhIDGL8IICc6RQoDGOcCEAEiPGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEQ3CggjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPg==","b64Record":"CgMImAISMMBzQvXwPc8ZJwr2xuXVhsETgYDDVmORgvGCosxvDmIdOPQv+18sU1p2fOObAd+kFhoMCI+ss64GEOO2uYoCIhIKCQjTq7OuBhClBhIDGL8IICc6LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQChkagMYwghSAHoMCI+ss64GELy2uYoC"},{"b64Body":"ChIKCQjTq7OuBhClBhIDGL8IICg6RQoDGOcCEAEiPGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEQ3CggjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPg==","b64Record":"CgMImAISMMAaHq+SANtBArwATIdxGL7fj7AjTvsMvkZg6f7MLv2UaKb+2OyU4SLu46T6rdyuxRoMCI+ss64GEOS2uYoCIhIKCQjTq7OuBhClBhIDGL8IICg6LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQChkagMYwghSAHoMCI+ss64GELy2uYoC"},{"b64Body":"ChIKCQjTq7OuBhClBhIDGL8IICk6RQoDGOcCEAEiPGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEQ3CggjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPg==","b64Record":"CgMImAISMAyq9UEs+Le34l5CrCmh4hRBOq21iszPB8130SljNPa6sVgoxYDV2dyG7PZJtdMH5hoMCI+ss64GEOW2uYoCIhIKCQjTq7OuBhClBhIDGL8IICk6LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQChkagMYwghSAHoMCI+ss64GELy2uYoC"},{"b64Body":"ChIKCQjTq7OuBhClBhIDGL8IICo6RQoDGOcCEAEiPGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEQ3CggjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPg==","b64Record":"CgMImAISMMVfCkJA+bTmHP6aHrGHSX8mqTKjktKkGMsh5lmEgV8VQczjTN0G/HzzHdNqCYRw/BoMCI+ss64GEOa2uYoCIhIKCQjTq7OuBhClBhIDGL8IICo6LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQChkagMYwghSAHoMCI+ss64GELy2uYoC"},{"b64Body":"ChIKCQjTq7OuBhClBhIDGL8IICs6RQoDGOcCEAEiPGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEQ3CggjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPg==","b64Record":"CgMImAISMKkzH5mqP2ZJbR+2ikaY5+RnyW+LPioQqR3gBVWAT0fruGU3SfXTq9q3m5y6bj7owxoMCI+ss64GEOe2uYoCIhIKCQjTq7OuBhClBhIDGL8IICs6LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQChkagMYwghSAHoMCI+ss64GELy2uYoC"},{"b64Body":"ChIKCQjTq7OuBhClBhIDGL8IICw6RQoDGOcCEAEiPGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEQ3CggjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPg==","b64Record":"CgMImAISMF2lF+HE9pnu7GyjcU2aUxGrhul//JaxZMrNl384yLjoGS7+Px2XaP5ZZkpSaMrYNxoMCI+ss64GEOi2uYoCIhIKCQjTq7OuBhClBhIDGL8IICw6LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQChkagMYwghSAHoMCI+ss64GELy2uYoC"},{"b64Body":"ChIKCQjTq7OuBhClBhIDGL8IIC06RQoDGOcCEAEiPGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEQ3CggjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPg==","b64Record":"CgMImAISMMGe+u65tI/xYdjGYamf2v086wqHggUAQ8WBDfxGGUD6YCnztyvDaQwGk2qf52VPFBoMCI+ss64GEOm2uYoCIhIKCQjTq7OuBhClBhIDGL8IIC06LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQChkagMYwghSAHoMCI+ss64GELy2uYoC"},{"b64Body":"ChIKCQjTq7OuBhClBhIDGL8IIC46RQoDGOcCEAEiPGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEQ3CggjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPg==","b64Record":"CgMImAISMLbpPyETm/ws9XqvTB/cTM2BLZQ0eCgJ+warxzLp7ZNDf7Mdr3BMP7vRt0VQ+VyDjhoMCI+ss64GEOq2uYoCIhIKCQjTq7OuBhClBhIDGL8IIC46LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQChkagMYwghSAHoMCI+ss64GELy2uYoC"},{"b64Body":"ChIKCQjTq7OuBhClBhIDGL8IIC86RQoDGOcCEAEiPGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEQ3CggjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPg==","b64Record":"CgMImAISMBArS6oVWvnF61wbp4UFE+NPVlBzzZBp5yPAy0L8W/w9035IwggbbKnE73Skg9988hoMCI+ss64GEOu2uYoCIhIKCQjTq7OuBhClBhIDGL8IIC86LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQChkagMYwghSAHoMCI+ss64GELy2uYoC"},{"b64Body":"ChIKCQjTq7OuBhClBhIDGL8IIDA6RQoDGOcCEAEiPGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEQ3CggjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPg==","b64Record":"CgMImAISMHjxYwtB1OgdD2hWephz9BcIx7jXheLF9iCsulumzSrK7fUkIryKFZuqIS3lrImtLRoMCI+ss64GEOy2uYoCIhIKCQjTq7OuBhClBhIDGL8IIDA6LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQChkagMYwghSAHoMCI+ss64GELy2uYoC"},{"b64Body":"ChIKCQjTq7OuBhClBhIDGL8IIDE6RQoDGOcCEAEiPGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEQ3CggjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPg==","b64Record":"CgMImAISMNcsxSUW+0kPgz30HB+kLG1JZB5j1QCbkkUvNSHfAkFwfu2CP85pC5UXbx3AKe729RoMCI+ss64GEO22uYoCIhIKCQjTq7OuBhClBhIDGL8IIDE6LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQChkagMYwghSAHoMCI+ss64GELy2uYoC"},{"b64Body":"ChIKCQjTq7OuBhClBhIDGL8IIDI6RQoDGOcCEAEiPGGNxl4AAAAAAAAAAAAAAAAAAAAAAAAEQ3CggjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPg==","b64Record":"CgMImAISMIsunZADSHqxp5RPsu+ybr6BDow55Z/THg0a+i9i9+2q6SVohRmBloFu3pXjpkwzKhoMCI+ss64GEO62uYoCIhIKCQjTq7OuBhClBhIDGL8IIDI6LgoDGOcCEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQChkagMYwghSAHoMCI+ss64GELy2uYoC"}]},"nonceUpdatedAfterSuccessfulInternalCall":{"placeholderNum":1092,"encodedItems":[{"b64Body":"Cg8KCQjYq7OuBhC9BhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISINSW11TspnW4mvAWzJfivx7fL4/M6IM0APqyuft7FBL3EIDIr6AlSgUIgM7aAw==","b64Record":"CiUIFhIDGMUIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCM9P2xFdyLeQ0YtLvbgwYf2RkT+NVe4kmpufYgNe29xAWJkaG1kdcINNQ7PQzNRbsaDAiUrLOuBhCs/7KOASIPCgkI2KuzrgYQvQYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxjFCBCAkN/ASg=="},{"b64Body":"ChEKCQjYq7OuBhC/BhICGAIgAVpoCiM6IQKxcEB+ZzDPfgBgMIBOBD4o4r+Jsu4HadHzU0Jz+2dKhUoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiECsXBAfmcwz34AYDCATgQ+KOK/ibLuB2nR81NCc/tnSoU=","b64Record":"CgcIFhIDGMYIEjDE7i/smREKsej2AAx9R3vdHXVjZru1NGVsrV/tWUmKSZhM9I60ivJSVJBz8S6wCMUaDAiUrLOuBhC/6N2PAyIRCgkI2KuzrgYQvwYSAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARTBt/NCy3/HJoFeufWStL6CijL9pw=="},{"b64Body":"Cg8KCQjYq7OuBhC/BhICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcjsKOQoJCgIYAhD/g69fCiwKJSIjOiECsXBAfmcwz34AYDCATgQ+KOK/ibLuB2nR81NCc/tnSoUQgISvXw==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwcO5zdXdFzAqpAPHthxDly77H+ZiZMOg/99aCulTTGmuPrlfKsu25TAl4/Oi7AOdqGgwIlKyzrgYQwOjdjwMiDwoJCNirs64GEL8GEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SFwoJCgIYAhD/g69fCgoKAxjGCBCAhK9f"},{"b64Body":"Cg8KCQjZq7OuBhDBBhICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAiV+o2yBhDe3/SPARptCiISIPOVql3z3V9vXqYlwX05Ck9xsmBTEFUbC8TydvBe0fFMCiM6IQJdOO5tsUxHqM95iKTwkniQNc7c1ZZrlJPfkJDyAMcEqQoiEiBHhSQ9/yFcuC5T5ykyhWneoeU/+j4Bjy3MuAVRBIcBUiIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGMcIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDQQSptksrlD8fT+8jT3RkdFQkBvffKD5ZZ03L61/uNmeu9iAAlKWP+BkGBnQmTKJIaDAiVrLOuBhC8go+YASIPCgkI2auzrgYQwQYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjZq7OuBhDFBhICGAISAhgDGITr6jMiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoB0g0KAxjHCCLKDTYwODA2MDQwNTI1ZjgwNTUzNDgwMTU2MTAwMTI1NzVmODBmZDViNTA2MTAzNDU4MDYxMDAyMDVmMzk1ZmYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDBmNTc1ZjgwZmQ1YjUwNjAwNDM2MTA2MTAwNGE1NzVmMzU2MGUwMWM4MDYzMTFmOTVmNmYxNDYxMDA0ZTU3ODA2MzNhMzJiNTQ5MTQ2MTAwNmM1NzgwNjNjZmM3MjAwNzE0NjEwMDhhNTc4MDYzZmY0ODlkMzExNDYxMDBhNjU3NWI1ZjgwZmQ1YjYxMDA1NjYxMDBjNDU2NWI2MDQwNTE2MTAwNjM5MTkwNjEwMTUwNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDA3NDYxMDEwMDU2NWI2MDQwNTE2MTAwODE5MTkwNjEwMTgxNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDBhNDYwMDQ4MDM2MDM4MTAxOTA2MTAwOWY5MTkwNjEwMWY4NTY1YjYxMDExOTU2NWIwMDViNjEwMGFlNjEwMTMyNTY1YjYwNDA1MTYxMDBiYjkxOTA2MTAxNTA1NjViNjA0MDUxODA5MTAzOTBmMzViNWY2MDQwNTE3ZjA4YzM3OWEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MTUyNjAwNDAxNjEwMGY3OTA2MTAyN2Q1NjViNjA0MDUxODA5MTAzOTBmZDViNWY4MDVmODE1NDYxMDEwZTkwNjEwMmM4NTY1YjkxOTA1MDgxOTA1NTkwNTA5MDU2NWI4MDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ZmY1YjVmODBmZDViNWY4MTE1MTU5MDUwOTE5MDUwNTY1YjYxMDE0YTgxNjEwMTM2NTY1YjgyNTI1MDUwNTY1YjVmNjAyMDgyMDE5MDUwNjEwMTYzNWY4MzAxODQ2MTAxNDE1NjViOTI5MTUwNTA1NjViNWY4MTkwNTA5MTkwNTA1NjViNjEwMTdiODE2MTAxNjk1NjViODI1MjUwNTA1NjViNWY2MDIwODIwMTkwNTA2MTAxOTQ1ZjgzMDE4NDYxMDE3MjU2NWI5MjkxNTA1MDU2NWI1ZjgwZmQ1YjVmNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIxNjkwNTA5MTkwNTA1NjViNWY2MTAxYzc4MjYxMDE5ZTU2NWI5MDUwOTE5MDUwNTY1YjYxMDFkNzgxNjEwMWJkNTY1YjgxMTQ2MTAxZTE1NzVmODBmZDViNTA1NjViNWY4MTM1OTA1MDYxMDFmMjgxNjEwMWNlNTY1YjkyOTE1MDUwNTY1YjVmNjAyMDgyODQwMzEyMTU2MTAyMGQ1NzYxMDIwYzYxMDE5YTU2NWI1YjVmNjEwMjFhODQ4Mjg1MDE2MTAxZTQ1NjViOTE1MDUwOTI5MTUwNTA1NjViNWY4MjgyNTI2MDIwODIwMTkwNTA5MjkxNTA1MDU2NWI3ZjUyNjU3NjY1NzI3NDUyNjU2MTczNmY2ZTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1ZjgyMDE1MjUwNTY1YjVmNjEwMjY3NjAwYzgzNjEwMjIzNTY1YjkxNTA2MTAyNzI4MjYxMDIzMzU2NWI2MDIwODIwMTkwNTA5MTkwNTA1NjViNWY2MDIwODIwMTkwNTA4MTgxMDM1ZjgzMDE1MjYxMDI5NDgxNjEwMjViNTY1YjkwNTA5MTkwNTA1NjViN2Y0ZTQ4N2I3MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNWY1MjYwMTE2MDA0NTI2MDI0NWZmZDViNWY2MTAyZDI4MjYxMDE2OTU2NWI5MTUwN2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIwMzYxMDMwNDU3NjEwMzAzNjEwMjliNTY1YjViNjAwMTgyMDE5MDUwOTE5MDUwNTZmZWEyNjQ2OTcwNjY3MzU4MjIxMjIwYmZmZTRkMzU2YzVjNjUyMWY2NzgxZmIxNDExOGI4ZWUxNDZiMGY0NmYxZjU1ODUxODI2YWIyOWIxZWU3YmMxMTY0NzM2ZjZjNjM0MzAwMDgxNjAwMzM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwcrxHevOdgS2Pr1dIfQFruYHtFXXPzd88eZPnnyuwuOAhHTQUi+NAgbc9PNSxqliaGgwIlayzrgYQ3ISVmQMiDwoJCNmrs64GEMUGEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjaq7OuBhDHBhICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGMcIGiISINxDkymZ5rUT+aoOFYMRIwf8EoqG0HE8uKWiQYe35yPFIJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"CiUIFiIDGMgIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCdVe04Dtvzlkfj/FgM+akQIfkhn2QI5HJZBJ0iVJKhQ8lw59s6vM8Vk273E/LJTasaDAiWrLOuBhDOn6uhASIPCgkI2quzrgYQxwYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQvoICgMYyAgSxQZggGBAUjSAFWEAD1dfgP1bUGAENhBhAEpXXzVg4ByAYxH5X28UYQBOV4BjOjK1SRRhAGxXgGPPxyAHFGEAileAY/9InTEUYQCmV1tfgP1bYQBWYQDEVltgQFFhAGORkGEBUFZbYEBRgJEDkPNbYQB0YQEAVltgQFFhAIGRkGEBgVZbYEBRgJEDkPNbYQCkYASANgOBAZBhAJ+RkGEB+FZbYQEZVlsAW2EArmEBMlZbYEBRYQC7kZBhAVBWW2BAUYCRA5DzW19gQFF/CMN5oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBUmAEAWEA95BhAn1WW2BAUYCRA5D9W1+AX4FUYQEOkGECyFZbkZBQgZBVkFCQVluAc///////////////////////////Fv9bX4D9W1+BFRWQUJGQUFZbYQFKgWEBNlZbglJQUFZbX2AgggGQUGEBY1+DAYRhAUFWW5KRUFBWW1+BkFCRkFBWW2EBe4FhAWlWW4JSUFBWW19gIIIBkFBhAZRfgwGEYQFyVluSkVBQVltfgP1bX3P//////////////////////////4IWkFCRkFBWW19hAceCYQGeVluQUJGQUFZbYQHXgWEBvVZbgRRhAeFXX4D9W1BWW1+BNZBQYQHygWEBzlZbkpFQUFZbX2AggoQDEhVhAg1XYQIMYQGaVltbX2ECGoSChQFhAeRWW5FQUJKRUFBWW1+CglJgIIIBkFCSkVBQVlt/UmV2ZXJ0UmVhc29uAAAAAAAAAAAAAAAAAAAAAAAAAABfggFSUFZbX2ECZ2AMg2ECI1ZbkVBhAnKCYQIzVltgIIIBkFCRkFBWW19gIIIBkFCBgQNfgwFSYQKUgWECW1ZbkFCRkFBWW39OSHtxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF9SYBFgBFJgJF/9W19hAtKCYQFpVluRUH///////////////////////////////////////////4IDYQMEV2EDA2ECm1ZbW2ABggGQUJGQUFb+omRpcGZzWCISIL/+TTVsXGUh9ngfsUEYuO4Uaw9G8fVYUYJqspse57wRZHNvbGNDAAgWADMigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMCaDDoDGMgIShYKFAAAAAAAAAAAAAAAAAAAAAAAAARIcgcKAxjICBABUhYKCQoCGAIQ/7LFDQoJCgIYYhCAs8UN"},{"b64Body":"ChAKCQjaq7OuBhDJBhIDGMUIEgIYAxigl8MVIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA7UBCqwBAvipggEqgKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0alKIAIMCSfCUAAAAAAAAAAAAAAAAAAAAAAAABEiAhDoytUnAgKAxlvn1VyQVQaEfkMe8/pxUxn3oGxldrL1qiEzl/UIWd6BAf/8mUnvVA0gE6IYySWzvvM/XagV6M0JCZULhCABG4BiAyrXuAQ==","b64Record":"CiUIFiIDGMgIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjALQgWSzkfYaNB5LVNO1oQTZZs1Z8B7+u0KMPqCuYPwRyoLLnqHJ2EGMf9u3+yDKfQaDAiWrLOuBhCx3+6iAyIQCgkI2quzrgYQyQYSAxjFCCogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4w4JnLGTrBAgoDGMgIEiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAowKkHUPCTCWIEOjK1SWoDGMYIegIIAVJGCgkKAhgDEODVxAEKCQoCGGIQnP+qKQoKCgMYoAYQoq+TBAoKCgMYoQYQoq+TBAoKCgMYxQgQ/++CLAoKCgMYxggQv8OTB4oBIHn6aT11/i3jBwiHjYa13vhSANeepW13QpSjYZkWp448"}]},"nonceUpdatedAfterSuccessfulInternalTransfer":{"placeholderNum":1097,"encodedItems":[{"b64Body":"Cg8KCQjfq7OuBhDhBhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlorCiISIGx5HZ+rXozsB1pZWO2MGTfoCyKFTSYUXYJp2riSivHeSgUIgM7aAw==","b64Record":"CiUIFhIDGMoIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAbW6bpmxvHzgELAk/APGs4cXy/cIDAzbwV1NOlygy2FEFp1ERscxdWiJSV4aNbkxcaDAibrLOuBhCKu4GnAiIPCgkI36uzrgYQ4QYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjgq7OuBhDjBhICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIH6mg5rUhc449RGbQS0dIkbE0lkjwXzVdg6d8IJoh87XEIDIr6AlSgUIgM7aAw==","b64Record":"CiUIFhIDGMsIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCitxuCJJ3gI781JdvsOuBKsUGk5fUt6rgoh61Ary0Nfz4IyF7e+1pSaRc9O59nAk4aCwicrLOuBhCClcxLIg8KCQjgq7OuBhDjBhICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUhkKCgoCGAIQ/4/fwEoKCwoDGMsIEICQ38BK"},{"b64Body":"ChEKCQjgq7OuBhDlBhICGAIgAVpoCiM6IQL7hz8NFcxkff/OZKKth/OZaG5crPsQlekbivByv5nL9EoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiEC+4c/DRXMZH3/zmSirYfzmWhuXKz7EJXpG4rwcr+Zy/Q=","b64Record":"CgcIFhIDGMwIEjAtMfZK/zKC3wJqDo8XnaF83dNiKwmbvELQASvN8vVlnoLIj/BLqVb7z7/e+TpGa/4aDAicrLOuBhDdmq61AiIRCgkI4KuzrgYQ5QYSAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARSgcbtDwLDveeVG45SljC+GZ1y8Ng=="},{"b64Body":"Cg8KCQjgq7OuBhDlBhICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcjsKOQoJCgIYAhD/g69fCiwKJSIjOiEC+4c/DRXMZH3/zmSirYfzmWhuXKz7EJXpG4rwcr+Zy/QQgISvXw==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwx7NnBTosEHSaN4ZFHiRVhx6XO0zazkbf+Do7SzDm/XjdT6efj8P0uFqALVH2KCrYGgwInKyzrgYQ3pqutQIiDwoJCOCrs64GEOUGEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SFwoJCgIYAhD/g69fCgoKAxjMCBCAhK9f"},{"b64Body":"Cg8KCQjhq7OuBhDnBhICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjgESCwid+o2yBhCPh65AGm0KIhIgrOFqYiOObpIPJCC4ETAbDDFsyUueZNPAtlkzvseIY/QKIzohAoKaAq6O8DoPRYGGzvBQ+osGrhhNTQXfhGCNRRTtnxLqCiISIPIOuRKJHrWzWVUAkC+B2o41fe7qXN4kk3IEAEBoKCnAIgxIZWxsbyBXb3JsZCEqADIA","b64Record":"CiUIFhoDGM0IKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAno3fmWH4Fjfd/O3uzwH8zkENESR2Td8a3VoApuBDewPPw+xP8w8BCYKtg42i8eXYaCwidrLOuBhC+modaIg8KCQjhq7OuBhDnBhICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgA="},{"b64Body":"Cg8KCQjhq7OuBhDrBhICGAISAhgDGIydjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxjNCCKAIDYwODA2MDQwNTI2MTBjOTI4MDYxMDAxMTVmMzk1ZmYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDBmNTc1ZjgwZmQ1YjUwNjAwNDM2MTA2MTAwYTc1NzVmMzU2MGUwMWM4MDYzYTAzZmE3ZTMxMTYxMDA2ZjU3ODA2M2EwM2ZhN2UzMTQ2MTAxNGI1NzgwNjNhNmEzYTMwMDE0NjEwMTY3NTc4MDYzY2MxOWYxM2YxNDYxMDE5NzU3ODA2M2NmYzcyMDA3MTQ2MTAxYjM1NzgwNjNkZDczMTM5NTE0NjEwMWNmNTc4MDYzZTZkMjUyNDUxNDYxMDFmZjU3NjEwMGE3NTY1YjgwNjMyZGExYjEzMDE0NjEwMGFiNTc4MDYzM2U2NTdkMGExNDYxMDBjNzU3ODA2MzdhMjIzYTc3MTQ2MTAwZTM1NzgwNjM3ZWM4NmY4OTE0NjEwMGZmNTc4MDYzOTBmMThkODMxNDYxMDExYjU3NWI1ZjgwZmQ1YjYxMDBjNTYwMDQ4MDM2MDM4MTAxOTA2MTAwYzA5MTkwNjEwYThjNTY1YjYxMDIxYjU2NWIwMDViNjEwMGUxNjAwNDgwMzYwMzgxMDE5MDYxMDBkYzkxOTA2MTBhOGM1NjViNjEwMjg1NTY1YjAwNWI2MTAwZmQ2MDA0ODAzNjAzODEwMTkwNjEwMGY4OTE5MDYxMGE4YzU2NWI2MTAzNzA1NjViMDA1YjYxMDExOTYwMDQ4MDM2MDM4MTAxOTA2MTAxMTQ5MTkwNjEwYThjNTY1YjYxMDQ1YTU2NWIwMDViNjEwMTM1NjAwNDgwMzYwMzgxMDE5MDYxMDEzMDkxOTA2MTBhOGM1NjViNjEwNTQ1NTY1YjYwNDA1MTYxMDE0MjkxOTA2MTBhY2Y1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMTY1NjAwNDgwMzYwMzgxMDE5MDYxMDE2MDkxOTA2MTBiMjM1NjViNjEwNjY3NTY1YjAwNWI2MTAxODE2MDA0ODAzNjAzODEwMTkwNjEwMTdjOTE5MDYxMGE4YzU2NWI2MTA2YWY1NjViNjA0MDUxNjEwMThlOTE5MDYxMGFjZjU2NWI2MDQwNTE4MDkxMDM5MGYzNWI2MTAxYjE2MDA0ODAzNjAzODEwMTkwNjEwMWFjOTE5MDYxMGE4YzU2NWI2MTA3ZDA1NjViMDA1YjYxMDFjZDYwMDQ4MDM2MDM4MTAxOTA2MTAxYzg5MTkwNjEwYjIzNTY1YjYxMDhiYjU2NWIwMDViNjEwMWU5NjAwNDgwMzYwMzgxMDE5MDYxMDFlNDkxOTA2MTBhOGM1NjViNjEwOGQ0NTY1YjYwNDA1MTYxMDFmNjkxOTA2MTBhY2Y1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMjE5NjAwNDgwMzYwMzgxMDE5MDYxMDIxNDkxOTA2MTBiMjM1NjViNjEwOWY1NTY1YjAwNWI4MDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjAwMTYwNDA1MTYxMDI0MDkwNjEwYjdiNTY1YjVmNjA0MDUxODA4MzAzODE4NTg3NWFmMTkyNTA1MDUwM2Q4MDVmODExNDYxMDI3YTU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q1ZjYwMjA4NDAxM2U2MTAyN2Y1NjViNjA2MDkxNTA1YjUwNTA1MDUwNTY1YjgwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MDQwNTE2MDI0MDE2MDQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI3ZmZmNDg5ZDMxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjEwMzJjOTE5MDYxMGJmMTU2NWI1ZjYwNDA1MTgwODMwMzgxNWY4NjVhZjE5MTUwNTAzZDgwNWY4MTE0NjEwMzY1NTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDVmNjAyMDg0MDEzZTYxMDM2YTU2NWI2MDYwOTE1MDViNTA1MDUwNTA1NjViODA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYwNDA1MTYwMjQwMTYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjdmNDc3Mzg3ZDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTA0MTc5MTkwNjEwYmYxNTY1YjVmNjA0MDUxODA4MzAzODE4NTVhZmE5MTUwNTAzZDgwNWY4MTE0NjEwNDRmNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDVmNjAyMDg0MDEzZTYxMDQ1NDU2NWI2MDYwOTE1MDViNTA1MDUwNTA1NjViODA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYwNDA1MTYwMjQwMTYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjdmMTFmOTVmNmYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTA1MDE5MTkwNjEwYmYxNTY1YjVmNjA0MDUxODA4MzAzODE1Zjg2NWFmMTkxNTA1MDNkODA1ZjgxMTQ2MTA1M2E1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNWY2MDIwODQwMTNlNjEwNTNmNTY1YjYwNjA5MTUwNWI1MDUwNTA1MDU2NWI1ZjgwNWY4MzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjA0MDUxNjAyNDAxNjA0MDUxNjAyMDgxODMwMzAzODE1MjkwNjA0MDUyN2YzYTMyYjU0OTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMDVlZjkxOTA2MTBiZjE1NjViNWY2MDQwNTE4MDgzMDM4MTVmODY1YWYxOTE1MDUwM2Q4MDVmODExNDYxMDYyODU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q1ZjYwMjA4NDAxM2U2MTA2MmQ1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA4MTgwMTU2MTA2M2Y1NzUwNWY4MTUxMTE1YjYxMDY0OTU3NWY2MTA2NWU1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTA2NWQ5MTkwNjEwYzMxNTY1YjViOTI1MDUwNTA5MTkwNTA1NjViODA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYxMDhmYzYwMDE5MDgxMTUwMjkwNjA0MDUxNWY2MDQwNTE4MDgzMDM4MTg1ODg4OGYxOTM1MDUwNTA1MDE1ODAxNTYxMDZhYjU3M2Q1ZjgwM2UzZDVmZmQ1YjUwNTA1NjViNWY4MDVmODM3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYwNDA1MTYwMjQwMTYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjdmM2EzMmI1NDkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTA3NTk5MTkwNjEwYmYxNTY1YjVmNjA0MDUxODA4MzAzODE4NTVhZmE5MTUwNTAzZDgwNWY4MTE0NjEwNzkxNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDVmNjAyMDg0MDEzZTYxMDc5NjU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxODAxNTYxMDdhODU3NTA1ZjgxNTExMTViNjEwN2IyNTc1ZjYxMDdjNzU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMDdjNjkxOTA2MTBjMzE1NjViNWI5MjUwNTA1MDkxOTA1MDU2NWI4MDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjA0MDUxNjAyNDAxNjA=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwSpA2HYOt+qoJZD7pOtmN3GiGqHjUsDeE6So/xRLo23SwoknlEU2C9saX40kMk7jNGgwInayzrgYQk6zJvgIiDwoJCOGrs64GEOsGEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQjiq7OuBhDxBhICGAISAhgDGLblozciAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBzhISAxjNCCLGEjQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI3ZjQ3NzM4N2QxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjEwODc3OTE5MDYxMGJmMTU2NWI1ZjYwNDA1MTgwODMwMzgxNWY4NjVhZjE5MTUwNTAzZDgwNWY4MTE0NjEwOGIwNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDVmNjAyMDg0MDEzZTYxMDhiNTU2NWI2MDYwOTE1MDViNTA1MDUwNTA1NjViODA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNmZmNWI1ZjgwNWY4MzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjA0MDUxNjAyNDAxNjA0MDUxNjAyMDgxODMwMzAzODE1MjkwNjA0MDUyN2YzYTMyYjU0OTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMDk3ZTkxOTA2MTBiZjE1NjViNWY2MDQwNTE4MDgzMDM4MTg1NWFmNDkxNTA1MDNkODA1ZjgxMTQ2MTA5YjY1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNWY2MDIwODQwMTNlNjEwOWJiNTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE4MDE1NjEwOWNkNTc1MDVmODE1MTExNWI2MTA5ZDc1NzVmNjEwOWVjNTY1YjgwODA2MDIwMDE5MDUxODEwMTkwNjEwOWViOTE5MDYxMGMzMTU2NWI1YjkyNTA1MDUwOTE5MDUwNTY1YjgwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MTA4ZmM2MDAxOTA4MTE1MDI5MDYwNDA1MTVmNjA0MDUxODA4MzAzODE4NTg4ODhmMTkzNTA1MDUwNTA1MDUwNTY1YjVmODBmZDViNWY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MjE2OTA1MDkxOTA1MDU2NWI1ZjYxMGE1YjgyNjEwYTMyNTY1YjkwNTA5MTkwNTA1NjViNjEwYTZiODE2MTBhNTE1NjViODExNDYxMGE3NTU3NWY4MGZkNWI1MDU2NWI1ZjgxMzU5MDUwNjEwYTg2ODE2MTBhNjI1NjViOTI5MTUwNTA1NjViNWY2MDIwODI4NDAzMTIxNTYxMGFhMTU3NjEwYWEwNjEwYTJlNTY1YjViNWY2MTBhYWU4NDgyODUwMTYxMGE3ODU2NWI5MTUwNTA5MjkxNTA1MDU2NWI1ZjgxOTA1MDkxOTA1MDU2NWI2MTBhYzk4MTYxMGFiNzU2NWI4MjUyNTA1MDU2NWI1ZjYwMjA4MjAxOTA1MDYxMGFlMjVmODMwMTg0NjEwYWMwNTY1YjkyOTE1MDUwNTY1YjVmNjEwYWYyODI2MTBhMzI1NjViOTA1MDkxOTA1MDU2NWI2MTBiMDI4MTYxMGFlODU2NWI4MTE0NjEwYjBjNTc1ZjgwZmQ1YjUwNTY1YjVmODEzNTkwNTA2MTBiMWQ4MTYxMGFmOTU2NWI5MjkxNTA1MDU2NWI1ZjYwMjA4Mjg0MDMxMjE1NjEwYjM4NTc2MTBiMzc2MTBhMmU1NjViNWI1ZjYxMGI0NTg0ODI4NTAxNjEwYjBmNTY1YjkxNTA1MDkyOTE1MDUwNTY1YjVmODE5MDUwOTI5MTUwNTA1NjViNTA1NjViNWY2MTBiNjY1ZjgzNjEwYjRlNTY1YjkxNTA2MTBiNzE4MjYxMGI1ODU2NWI1ZjgyMDE5MDUwOTE5MDUwNTY1YjVmNjEwYjg1ODI2MTBiNWI1NjViOTE1MDgxOTA1MDkxOTA1MDU2NWI1ZjgxNTE5MDUwOTE5MDUwNTY1YjVmNWI4MzgxMTAxNTYxMGJiNjU3ODA4MjAxNTE4MTg0MDE1MjYwMjA4MTAxOTA1MDYxMGI5YjU2NWI1Zjg0ODQwMTUyNTA1MDUwNTA1NjViNWY2MTBiY2I4MjYxMGI4ZjU2NWI2MTBiZDU4MTg1NjEwYjRlNTY1YjkzNTA2MTBiZTU4MTg1NjAyMDg2MDE2MTBiOTk1NjViODA4NDAxOTE1MDUwOTI5MTUwNTA1NjViNWY2MTBiZmM4Mjg0NjEwYmMxNTY1YjkxNTA4MTkwNTA5MjkxNTA1MDU2NWI2MTBjMTA4MTYxMGFiNzU2NWI4MTE0NjEwYzFhNTc1ZjgwZmQ1YjUwNTY1YjVmODE1MTkwNTA2MTBjMmI4MTYxMGMwNzU2NWI5MjkxNTA1MDU2NWI1ZjYwMjA4Mjg0MDMxMjE1NjEwYzQ2NTc2MTBjNDU2MTBhMmU1NjViNWI1ZjYxMGM1Mzg0ODI4NTAxNjEwYzFkNTY1YjkxNTA1MDkyOTE1MDUwNTZmZWEyNjQ2OTcwNjY3MzU4MjIxMjIwMWQ1NzM2ZDRiZjIyMTllZmU2NzcyYThiMWZjZWNlM2JhZTYzNDM1NDc1NzIzMWRhYjZiODJlZmEzNzMzYjY1YTY0NzM2ZjZjNjM0MzAwMDgxNjAwMzM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwuMSZoIon9aCEWB9TbUcxVH9GSF60B5/HeeDQfXmKzbw482aQrcCF24KokBkZmhpSGgsInqyzrgYQ4anMYyIPCgkI4quzrgYQ8QYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjiq7OuBhDzBhICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CSgoDGM0IGiISILtYv3wqjXq3nqBkK/8LMgzghbEo/APsZqK4g4cX0rfDIJChDyiAwtcvQgUIgM7aA1IAWgBqC2NlbGxhciBkb29y","b64Record":"CiUIFiIDGM4IKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCm+dgn2L/pjnV0W9oA3ypbo9PTGOcE3XwHljJGgnR1jDteJKKQAjxepPOc2A2easgaDAierLOuBhC9uZjIAiIPCgkI4quzrgYQ8wYSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQscbCgMYzggSkhlggGBAUjSAFWEAD1dfgP1bUGAENhBhAKdXXzVg4ByAY6A/p+MRYQBvV4BjoD+n4xRhAUtXgGOmo6MAFGEBZ1eAY8wZ8T8UYQGXV4Bjz8cgBxRhAbNXgGPdcxOVFGEBz1eAY+bSUkUUYQH/V2EAp1ZbgGMtobEwFGEAq1eAYz5lfQoUYQDHV4BjeiI6dxRhAONXgGN+yG+JFGEA/1eAY5DxjYMUYQEbV1tfgP1bYQDFYASANgOBAZBhAMCRkGEKjFZbYQIbVlsAW2EA4WAEgDYDgQGQYQDckZBhCoxWW2EChVZbAFthAP1gBIA2A4EBkGEA+JGQYQqMVlthA3BWWwBbYQEZYASANgOBAZBhARSRkGEKjFZbYQRaVlsAW2EBNWAEgDYDgQGQYQEwkZBhCoxWW2EFRVZbYEBRYQFCkZBhCs9WW2BAUYCRA5DzW2EBZWAEgDYDgQGQYQFgkZBhCyNWW2EGZ1ZbAFthAYFgBIA2A4EBkGEBfJGQYQqMVlthBq9WW2BAUWEBjpGQYQrPVltgQFGAkQOQ81thAbFgBIA2A4EBkGEBrJGQYQqMVlthB9BWWwBbYQHNYASANgOBAZBhAciRkGELI1ZbYQi7VlsAW2EB6WAEgDYDgQGQYQHkkZBhCoxWW2EI1FZbYEBRYQH2kZBhCs9WW2BAUYCRA5DzW2ECGWAEgDYDgQGQYQIUkZBhCyNWW2EJ9VZbAFuAc///////////////////////////FmABYEBRYQJAkGELe1ZbX2BAUYCDA4GFh1rxklBQUD2AX4EUYQJ6V2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1fYCCEAT5hAn9WW2BgkVBbUFBQUFZbgHP//////////////////////////xZgQFFgJAFgQFFgIIGDAwOBUpBgQFJ//0idMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEDLJGQYQvxVltfYEBRgIMDgV+GWvGRUFA9gF+BFGEDZVdgQFGRUGAfGWA/PQEWggFgQFI9glI9X2AghAE+YQNqVltgYJFQW1BQUFBWW4Bz//////////////////////////8WYEBRYCQBYEBRYCCBgwMDgVKQYEBSf0dzh9EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhBBeRkGEL8VZbX2BAUYCDA4GFWvqRUFA9gF+BFGEET1dgQFGRUGAfGWA/PQEWggFgQFI9glI9X2AghAE+YQRUVltgYJFQW1BQUFBWW4Bz//////////////////////////8WYEBRYCQBYEBRYCCBgwMDgVKQYEBSfxH5X28AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhBQGRkGEL8VZbX2BAUYCDA4FfhlrxkVBQPYBfgRRhBTpXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPV9gIIQBPmEFP1ZbYGCRUFtQUFBQVltfgF+Dc///////////////////////////FmBAUWAkAWBAUWAggYMDA4FSkGBAUn86MrVJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQXvkZBhC/FWW19gQFGAgwOBX4Za8ZFQUD2AX4EUYQYoV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1fYCCEAT5hBi1WW2BgkVBbUJFQkVCBgBVhBj9XUF+BURFbYQZJV19hBl5WW4CAYCABkFGBAZBhBl2RkGEMMVZbW5JQUFCRkFBWW4Bz//////////////////////////8WYQj8YAGQgRUCkGBAUV9gQFGAgwOBhYiI8ZNQUFBQFYAVYQarVz1fgD49X/1bUFBWW1+AX4Nz//////////////////////////8WYEBRYCQBYEBRYCCBgwMDgVKQYEBSfzoytUkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhB1mRkGEL8VZbX2BAUYCDA4GFWvqRUFA9gF+BFGEHkVdgQFGRUGAfGWA/PQEWggFgQFI9glI9X2AghAE+YQeWVltgYJFQW1CRUJFQgYAVYQeoV1BfgVERW2EHsldfYQfHVluAgGAgAZBRgQGQYQfGkZBhDDFWW1uSUFBQkZBQVluAc///////////////////////////FmBAUWAkAWBAUWAggYMDA4FSkGBAUn9Hc4fRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQh3kZBhC/FWW19gQFGAgwOBX4Za8ZFQUD2AX4EUYQiwV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1fYCCEAT5hCLVWW2BgkVBbUFBQUFZbgHP//////////////////////////xb/W1+AX4Nz//////////////////////////8WYEBRYCQBYEBRYCCBgwMDgVKQYEBSfzoytUkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhCX6RkGEL8VZbX2BAUYCDA4GFWvSRUFA9gF+BFGEJtldgQFGRUGAfGWA/PQEWggFgQFI9glI9X2AghAE+YQm7VltgYJFQW1CRUJFQgYAVYQnNV1BfgVERW2EJ11dfYQnsVluAgGAgAZBRgQGQYQnrkZBhDDFWW1uSUFBQkZBQVluAc///////////////////////////FmEI/GABkIEVApBgQFFfYEBRgIMDgYWIiPGTUFBQUFBQVltfgP1bX3P//////////////////////////4IWkFCRkFBWW19hCluCYQoyVluQUJGQUFZbYQprgWEKUVZbgRRhCnVXX4D9W1BWW1+BNZBQYQqGgWEKYlZbkpFQUFZbX2AggoQDEhVhCqFXYQqgYQouVltbX2EKroSChQFhCnhWW5FQUJKRUFBWW1+BkFCRkFBWW2EKyYFhCrdWW4JSUFBWW19gIIIBkFBhCuJfgwGEYQrAVluSkVBQVltfYQrygmEKMlZbkFCRkFBWW2ELAoFhCuhWW4EUYQsMV1+A/VtQVltfgTWQUGELHYFhCvlWW5KRUFBWW19gIIKEAxIVYQs4V2ELN2EKLlZbW19hC0WEgoUBYQsPVluRUFCSkVBQVltfgZBQkpFQUFZbUFZbX2ELZl+DYQtOVluRUGELcYJhC1hWW1+CAZBQkZBQVltfYQuFgmELW1ZbkVCBkFCRkFBWW1+BUZBQkZBQVltfW4OBEBVhC7ZXgIIBUYGEAVJgIIEBkFBhC5tWW1+EhAFSUFBQUFZbX2ELy4JhC49WW2EL1YGFYQtOVluTUGEL5YGFYCCGAWELmVZbgIQBkVBQkpFQUFZbX2EL/IKEYQvBVluRUIGQUJKRUFBWW2EMEIFhCrdWW4EUYQwaV1+A/VtQVltfgVGQUGEMK4FhDAdWW5KRUFBWW19gIIKEAxIVYQxGV2EMRWEKLlZbW19hDFOEgoUBYQwdVluRUFCSkVBQVv6iZGlwZnNYIhIgHVc21L8iGe/mdyqLH87OO65jQ1R1cjHatrgu+jcztlpkc29sY0MACBYAMyKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAowJoMOgMYzghKFgoUAAAAAAAAAAAAAAAAAAAAAAAABE5yBwoDGM4IEAFSIgoJCgIYAhD/tvRsCgkKAhhiEICzxQ0KCgoDGM4IEICEr18="},{"b64Body":"ChAKCQjjq7OuBhD1BhIDGMsIEgIYAxiz+NEVIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA9UBCswBAvjJggEqgKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0alKIAIMCSfCUAAAAAAAAAAAAAAAAAAAAAAAABE6ApKA/p+MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAESsCAoHYaUK5IKW43/yZC2x6LwnmWRR0bmembJeCMq4Xzn3YWoAYAShhXr/tSB1PR6/0uq115PyT9nsddtVmE+lZakPTbGIDKte4B","b64Record":"CiUIFiIDGM4IKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAklZ2qkwoU5qYkBaVnrICGPF2yc00fPnQZm5p58qfcAffFUSGGRSMYtdgqgQr3/4IaCwifrLOuBhCP6pZtIhAKCQjjq7OuBhD1BhIDGMsIKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDz+tkZOr8CCgMYzggigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMCpB1DwkwliJKA/p+MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAESmoDGMwIegIIAVJYCgkKAhgDEIC0xgEKCQoCGGIQhpzBKQoKCgMYoAYQ8JKWBAoKCgMYoQYQ8JKWBAoHCgMYyggQAgoKCgMYywgQpbKgLAoKCgMYzAgQv8OTBwoHCgMYzggQAYoBIHwfv4dHIvBhaC2BR5PIsSetjjpXJbbu8q02XFais6QK"}]},"nonceUpdatedAfterSuccessfulInternalContractDeployment":{"placeholderNum":1103,"encodedItems":[{"b64Body":"Cg8KCQjnq7OuBhCNBxICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlorCiISIOdJFvpkeu5066n9ELN+4AsdeafabJ+c80sngHjxX2n9SgUIgM7aAw==","b64Record":"CiUIFhIDGNAIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCtixa9G+RV8ApP4qhO4rS0TPPYF6z9LJ95bMoB9gIZNy+054Kk3s+y06yRp+17SewaDAijrLOuBhCLteDSAyIPCgkI56uzrgYQjQcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjoq7OuBhCPBxICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIFg1fuVJZP/CyCm8T6RQjVE0lnt+yL7r57XWzZAjfLUrEIDIr6AlSgUIgM7aAw==","b64Record":"CiUIFhIDGNEIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjASW+t/yuMfWCrnuD/KxYgriqqmqcsNTHxXI1gqojdtJGwO0dE7UCU7RFZsv7Sxa8saDAikrLOuBhCK+7vaASIPCgkI6KuzrgYQjwcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxjRCBCAkN/ASg=="},{"b64Body":"ChEKCQjoq7OuBhCRBxICGAIgAVpoCiM6IQLGbfr39caFlEtatRxK9HM0dqy3G1J7qpn3ys+HgBWVk0oFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiECxm369/XGhZRLWrUcSvRzNHastxtSe6qZ98rPh4AVlZM=","b64Record":"CgcIFhIDGNIIEjBESWeVZIkvSJKyvUDi1F5Jc3Fg5Kd5gR2vIM9mHK5qFIgtd9rl4eihK7GXq/Qd/iYaDAikrLOuBhCS6JrcAyIRCgkI6KuzrgYQkQcSAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqART/4EIcDR0iJimfTg9yF7vtxr+ttw=="},{"b64Body":"Cg8KCQjoq7OuBhCRBxICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcjsKOQoJCgIYAhD/g69fCiwKJSIjOiECxm369/XGhZRLWrUcSvRzNHastxtSe6qZ98rPh4AVlZMQgISvXw==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwyMr5+71NNOAZ+JArewgAqDxmF+xuMnxk6gI+RUSGb4b2EpPVaM+GQn4JQkzFjatdGgwIpKyzrgYQk+ia3AMiDwoJCOirs64GEJEHEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SFwoJCgIYAhD/g69fCgoKAxjSCBCAhK9f"},{"b64Body":"Cg8KCQjpq7OuBhCTBxICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAil+o2yBhDVj9faARptCiISICiTDWQZy7BAM9sSa5fdqo4XPGm16i9sNw76Y9r+mwF8CiM6IQO+JVqIX8Rq3P3YvGPrkmlTxTxuIfA6Boq5GZ5+H0jyFgoiEiC5skIBd3vtwKUpJUgAFOSQ0X8oazUSGss0V3KVbIbCNyIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGNMIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBPJVQK0pZ1o7DCpAwZoNwqUJB3VWCrFdbKKQy03pUbxFjAUWsmRIaG2dKdQJLgMGsaDAilrLOuBhD947XkASIPCgkI6auzrgYQkwcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjpq7OuBhCXBxICGAISAhgDGMLTyDgiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBkBYKAxjTCCKIFjYwODA2MDQwNTIzNDgwMTU2MTAwMTA1NzYwMDA4MGZkNWI1MDYxMDU2NDgwNjEwMDIwNjAwMDM5NjAwMGYzMDA2MDgwNjA0MDUyNjAwNDM2MTA2MTAwNmQ1NzYwMDAzNTdjMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkwMDQ2M2ZmZmZmZmZmMTY4MDYzMjliNGE3YTkxNDYxMDA3MjU3ODA2MzMwZjNmNzhkMTQ2MTAwODk1NzgwNjM0NjAwMDI4ZjE0NjEwMGEwNTc4MDYzNTc0NjUzMTExNDYxMDBiNzU3ODA2Mzk5ZWVmMDU1MTQ2MTAwY2U1NzViNjAwMDgwZmQ1YjM0ODAxNTYxMDA3ZTU3NjAwMDgwZmQ1YjUwNjEwMDg3NjEwMGU1NTY1YjAwNWIzNDgwMTU2MTAwOTU1NzYwMDA4MGZkNWI1MDYxMDA5ZTYxMDExYTU2NWIwMDViMzQ4MDE1NjEwMGFjNTc2MDAwODBmZDViNTA2MTAwYjU2MTAxNTI1NjViMDA1YjM0ODAxNTYxMDBjMzU3NjAwMDgwZmQ1YjUwNjEwMGNjNjEwMTdhNTY1YjAwNWIzNDgwMTU2MTAwZGE1NzYwMDA4MGZkNWI1MDYxMDBlMzYxMDFhMjU2NWIwMDViNjEwMGVkNjEwMWRhNTY1YjYwNDA1MTgwOTEwMzkwNjAwMGYwODAxNTgwMTU2MTAxMDk1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDYwMDAxNTE1NjEwMTE4NTc2MDAwODBmZDViNTY1YjYwMDA2MTAxMjQ2MTAxZTk1NjViODA4MjE1MTUxNTE1ODE1MjYwMjAwMTkxNTA1MDYwNDA1MTgwOTEwMzkwNjAwMGYwODAxNTgwMTU2MTAxNGU1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDU2NWI2MTAxNWE2MTAxZGE1NjViNjA0MDUxODA5MTAzOTA2MDAwZjA4MDE1ODAxNTYxMDE3NjU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTY1YjYxMDE4MjYxMDFmOTU2NWI2MDQwNTE4MDkxMDM5MDYwMDBmMDgwMTU4MDE1NjEwMTllNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA1NjViNjAwMTYxMDFhYzYxMDFlOTU2NWI4MDgyMTUxNTE1MTU4MTUyNjAyMDAxOTE1MDUwNjA0MDUxODA5MTAzOTA2MDAwZjA4MDE1ODAxNTYxMDFkNjU3M2Q2MDAwODAzZTNkNjAwMGZkNWI1MDUwNTY1YjYwNDA1MTYwYzE4MDYxMDIwOTgzMzkwMTkwNTY1YjYwNDA1MTYxMDIxMTgwNjEwMmNhODMzOTAxOTA1NjViNjA0MDUxNjA1ZTgwNjEwNGRiODMzOTAxOTA1NjAwNjA4MDYwNDA1MjYwMDE2MDAwNTUzNDgwMTU2MDE0NTc2MDAwODBmZDViNTA2MDllODA2MTAwMjM2MDAwMzk2MDAwZjMwMDYwODA2MDQwNTI2MDA0MzYxMDYwM2Y1NzYwMDAzNTdjMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkwMDQ2M2ZmZmZmZmZmMTY4MDYzMDI2M2FkNmUxNDYwNDQ1NzViNjAwMDgwZmQ1YjM0ODAxNTYwNGY1NzYwMDA4MGZkNWI1MDYwNTY2MDZjNTY1YjYwNDA1MTgwODI4MTUyNjAyMDAxOTE1MDUwNjA0MDUxODA5MTAzOTBmMzViNjAwMDU0ODE1NjAwYTE2NTYyN2E3YTcyMzA1ODIwMWM5ZWQ5MzQ5NjU0YTVkYTNmZGI4MTc5ZGUyYTU1YTcyMDA0YTIwOGM1NGQxYjZmNjMxYjYxYTY3N2EyZGVkNzAwMjk2MDgwNjA0MDUyMzQ4MDE1NjEwMDEwNTc2MDAwODBmZDViNTA2MDQwNTE2MDIwODA2MTAyMTE4MzM5ODEwMTgwNjA0MDUyODEwMTkwODA4MDUxOTA2MDIwMDE5MDkyOTE5MDUwNTA1MDgwMTU2MTAwNjQ1NzYxMDA0MTYxMDA5MTU2NWI2MDQwNTE4MDkxMDM5MDYwMDBmMDgwMTU4MDE1NjEwMDVkNTczZDYwMDA4MDNlM2Q2MDAwZmQ1YjUwNTA2MTAwOGI1NjViNjEwMDZjNjEwMGEwNTY1YjYwNDA1MTgwOTEwMzkwNjAwMGYwODAxNTgwMTU2MTAwODg1NzNkNjAwMDgwM2UzZDYwMDBmZDViNTA1MDViNTA2MTAwYWY1NjViNjA0MDUxNjA1ZTgwNjEwMGYyODMzOTAxOTA1NjViNjA0MDUxNjBjMTgwNjEwMTUwODMzOTAxOTA1NjViNjAzNTgwNjEwMGJkNjAwMDM5NjAwMGYzMDA2MDgwNjA0MDUyNjAwMDgwZmQwMGExNjU2MjdhN2E3MjMwNTgyMDE1OGRhMDliMmQyMGQyNDRiOWE2NDlmMThmMGM5NzFmODhiZjE3Y2Y1ZWFkNzBkYzU4MTNlOGQzZjllNjBmZmQwMDI5NjA4MDYwNDA1MjM0ODAxNTYwMGY1NzYwMDA4MGZkNWI1MDYwMDAxNTE1NjAxYzU3NjAwMDgwZmQ1YjYwMzU4MDYwMjk2MDAwMzk2MDAwZjMwMDYwODA2MDQwNTI2MDAwODBmZDAwYTE2NTYyN2E3YTcyMzA1ODIwMzE4ZDE3OTZlYjQxODI2Nzk2NTBlZDFmMzY5ZThlNWJjZGFjM2U2NTRlNDJkZTYzNTExYzUxODRjYmI0NzM2YzAwMjk2MDgwNjA0MDUyNjAwMTYwMDA1NTM0ODAxNTYwMTQ1NzYwMDA4MGZkNWI1MDYwOWU4MDYxMDAyMzYwMDAzOTYwMDBmMzAwNjA4MDYwNDA1MjYwMDQzNjEwNjAzZjU3NjAwMDM1N2MwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTAwNDYzZmZmZmZmZmYxNjgwNjMwMjYzYWQ2ZTE0NjA0NDU3NWI2MDAwODBmZDViMzQ4MDE1NjA0ZjU3NjAwMDgwZmQ1YjUwNjA1NjYwNmM1NjViNjA0MDUxODA4MjgxNTI2MDIwMDE5MTUwNTA2MDQwNTE4MDkxMDM5MGYzNWI2MDAwNTQ4MTU2MDBhMTY1NjI3YTdhNzIzMDU4MjAxYzllZDkzNDk2NTRhNWRhM2ZkYjgxNzlkZTJhNTVhNzIwMDRhMjA4YzU0ZDFiNmY2MzFiNjFhNjc3YTJkZWQ3MDAyOTYwODA2MDQwNTIzNDgwMTU2MDBmNTc2MDAwODBmZDViNTA2MDAwMTUxNTYwMWM1NzYwMDA4MGZkNWI2MDM1ODA2MDI5NjAwMDM5NjAwMGYzMDA2MDgwNjA0MDUyNjAwMDgwZmQwMGExNjU2MjdhN2E3MjMwNTgyMDMxOGQxNzk2ZWI0MTgyNjc5NjUwZWQxZjM2OWU4ZTViY2RhYzNlNjU0ZTQyZGU2MzUxMWM1MTg0Y2JiNDczNmMwMDI5YTE2NTYyN2E3YTcyMzA1ODIwNTM0NmVhYjgxOGYwNGM0ZDQxNmZhMTBiN2ZjZjA5Yzc0MTNiYzBmNGMzZGViMTY2NDJjOGFkMzIxMDU4MmJmOTAwMjk=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwCjnZPOkUEoWnNMbsnAAmTbXp8+0ApPWAPOBPupLqJMlEXeWbDhAtyGIUdVK5iCOAGgsIpqyzrgYQ1Y7pCCIPCgkI6auzrgYQlwcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjqq7OuBhCZBxICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CRQoDGNMIGiISIDTgeNlSCrRkoOTe61QIejPWwlAcmXMJC406fQkJd3OQIJChD0IFCIDO2gNSAFoAagtjZWxsYXIgZG9vcg==","b64Record":"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"},{"b64Body":"ChAKCQjqq7OuBhCbBxIDGNEIEgIYAxigl8MVIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA7UBCqwBAvipggEqgKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0alKIAIMBhqCUAAAAAAAAAAAAAAAAAAAAAAAABFSAhEYAAo/AgKAPRtBDQVL8O20u4eCYYEHhlUQxdcC6wwhFVJwet1uesqBcK/0aS1uVmqkJDkru4eWUFoaOROPJvNHQipjM62qdkRiAyrXuAQ==","b64Record":"CiUIFiIDGNQIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAk44uet7Ow93+eOSTFW6/JFw4n8wQQyrrHpLzdpSgRdJW/nHqRgCSX6htbMAMIMv8aCwinrLOuBhCwi7ISIhAKCQjqq7OuBhCbBxIDGNEIKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjCg7p0YOrYCCgMY1AgigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKIDxBDoDGNUIUKCNBmIERgACj2oDGNIIcgcKAxjUCBACcgcKAxjVCBABegIIAVJGCgkKAhgDEODVxAEKCQoCGGIQnKjQJgoKCgMYoAYQoq+TBAoKCgMYoQYQoq+TBAoKCgMY0QgQv6/ZKwoKCgMY0ggQ/6ziBIoBIDTd2rBW87uiDyyirtrpEOORo1h+HvbFJrbukXrGUYhL"},{"b64Body":"ChIKCQjqq7OuBhCbBxIDGNEIIAFCOBoiEiA04HjZUgq0ZKDk3utUCHoz1sJQHJlzCQuNOn0JCXdzkEIFCIDO2gNqC2NlbGxhciBkb29y","b64Record":"CgcIFiIDGNUIEjDZyOc6WLAkViF02FHJ7/U9MjTQavykoSRhJlrCf9tOAGVE3vWkqdttX/2rLoDI+V0aCwinrLOuBhCxi7ISIhIKCQjqq7OuBhCbBxIDGNEIIAFCHQoDGNUIShYKFFweUnokjmHmHtB3h+GLeQS1sqjoUgB6CwinrLOuBhCwi7IS"}]},"nonceNotUpdatedWhenIntrinsicGasHandlerCheckFailedEthContractCreate":{"placeholderNum":1110,"encodedItems":[{"b64Body":"Cg8KCQjvq7OuBhCzBxICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlozCiISIO9kNd2FQwbR8C/tk94V6UHgKw8QCq2k9eweJcirnBepEICA6YOx3hZKBQiAztoD","b64Record":"CiUIFhIDGNcIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDXTljZxClc42w4fnqCxAS6gSb1NXtq/0V4rMwomCGpId4j/zkZ4C96F182sLjTX0waDAirrLOuBhDM7+iPAyIPCgkI76uzrgYQswcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIdCgwKAhgCEP//0YfivC0KDQoDGNcIEICA0ofivC0="},{"b64Body":"ChEKCQjwq7OuBhC1BxICGAIgAVpoCiM6IQMvf/7ORkd2TTqx/mxkZe3iqS71Ybrxg1fkw8mClljA60oFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiEDL3/+zkZHdk06sf5sZGXt4qku9WG68YNX5MPJgpZYwOs=","b64Record":"CgcIFhIDGNgIEjBXNQbPzKRO2IbxnAq7bhTHZCoDHPmNkayqoskFTgqYJCvwxG+P8xR+NN6lQlj2KyMaDAisrLOuBhCrlYCYASIRCgkI8KuzrgYQtQcSAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARTQrON3QdbkYguU/INQuIrWxIurKA=="},{"b64Body":"Cg8KCQjwq7OuBhC1BxICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOckEKPwoMCgIYAhD//9GH4rwtCi8KJSIjOiEDL3/+zkZHdk06sf5sZGXt4qku9WG68YNX5MPJgpZYwOsQgIDSh+K8LQ==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwEFQrh0Z+POjy1kce2XKyCrgVhMRRdHWUQEtSKkthYlMetm8UPVm16oUaCWTwwa5TGgwIrKyzrgYQrJWAmAEiDwoJCPCrs64GELUHEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SHQoMCgIYAhD//9GH4rwtCg0KAxjYCBCAgNKH4rwt"},{"b64Body":"Cg8KCQjwq7OuBhC3BxICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAis+o2yBhCrib74AhptCiISINiA9jaC94JAA49ndYLuvw5CWTnzPtb5TehwYC8wHY2QCiM6IQL+mPdoQlk1tjKam1O24tpwh0xDOBH19OQvyepu6DhOYAoiEiAh9ii6EMZqStEC9dR9SSPMMDfvbAdZYrkxMSqie+zJHyIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGNkIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBvaGywlNb77O2vVsrMDJFHXWMyAem0mjiRsMkD6U7XFUrDP55NPKN17puYResA+70aDAisrLOuBhC5zcj8AiIPCgkI8KuzrgYQtwcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQjxq7OuBhC7BxICGAISAhgDGITr6jMiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoB0g0KAxjZCCLKDTYwODA2MDQwNTI1ZjgwNTUzNDgwMTU2MTAwMTI1NzVmODBmZDViNTA2MTAzNDU4MDYxMDAyMDVmMzk1ZmYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDBmNTc1ZjgwZmQ1YjUwNjAwNDM2MTA2MTAwNGE1NzVmMzU2MGUwMWM4MDYzMTFmOTVmNmYxNDYxMDA0ZTU3ODA2MzNhMzJiNTQ5MTQ2MTAwNmM1NzgwNjNjZmM3MjAwNzE0NjEwMDhhNTc4MDYzZmY0ODlkMzExNDYxMDBhNjU3NWI1ZjgwZmQ1YjYxMDA1NjYxMDBjNDU2NWI2MDQwNTE2MTAwNjM5MTkwNjEwMTUwNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDA3NDYxMDEwMDU2NWI2MDQwNTE2MTAwODE5MTkwNjEwMTgxNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDBhNDYwMDQ4MDM2MDM4MTAxOTA2MTAwOWY5MTkwNjEwMWY4NTY1YjYxMDExOTU2NWIwMDViNjEwMGFlNjEwMTMyNTY1YjYwNDA1MTYxMDBiYjkxOTA2MTAxNTA1NjViNjA0MDUxODA5MTAzOTBmMzViNWY2MDQwNTE3ZjA4YzM3OWEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MTUyNjAwNDAxNjEwMGY3OTA2MTAyN2Q1NjViNjA0MDUxODA5MTAzOTBmZDViNWY4MDVmODE1NDYxMDEwZTkwNjEwMmM4NTY1YjkxOTA1MDgxOTA1NTkwNTA5MDU2NWI4MDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ZmY1YjVmODBmZDViNWY4MTE1MTU5MDUwOTE5MDUwNTY1YjYxMDE0YTgxNjEwMTM2NTY1YjgyNTI1MDUwNTY1YjVmNjAyMDgyMDE5MDUwNjEwMTYzNWY4MzAxODQ2MTAxNDE1NjViOTI5MTUwNTA1NjViNWY4MTkwNTA5MTkwNTA1NjViNjEwMTdiODE2MTAxNjk1NjViODI1MjUwNTA1NjViNWY2MDIwODIwMTkwNTA2MTAxOTQ1ZjgzMDE4NDYxMDE3MjU2NWI5MjkxNTA1MDU2NWI1ZjgwZmQ1YjVmNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIxNjkwNTA5MTkwNTA1NjViNWY2MTAxYzc4MjYxMDE5ZTU2NWI5MDUwOTE5MDUwNTY1YjYxMDFkNzgxNjEwMWJkNTY1YjgxMTQ2MTAxZTE1NzVmODBmZDViNTA1NjViNWY4MTM1OTA1MDYxMDFmMjgxNjEwMWNlNTY1YjkyOTE1MDUwNTY1YjVmNjAyMDgyODQwMzEyMTU2MTAyMGQ1NzYxMDIwYzYxMDE5YTU2NWI1YjVmNjEwMjFhODQ4Mjg1MDE2MTAxZTQ1NjViOTE1MDUwOTI5MTUwNTA1NjViNWY4MjgyNTI2MDIwODIwMTkwNTA5MjkxNTA1MDU2NWI3ZjUyNjU3NjY1NzI3NDUyNjU2MTczNmY2ZTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1ZjgyMDE1MjUwNTY1YjVmNjEwMjY3NjAwYzgzNjEwMjIzNTY1YjkxNTA2MTAyNzI4MjYxMDIzMzU2NWI2MDIwODIwMTkwNTA5MTkwNTA1NjViNWY2MDIwODIwMTkwNTA4MTgxMDM1ZjgzMDE1MjYxMDI5NDgxNjEwMjViNTY1YjkwNTA5MTkwNTA1NjViN2Y0ZTQ4N2I3MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNWY1MjYwMTE2MDA0NTI2MDI0NWZmZDViNWY2MTAyZDI4MjYxMDE2OTU2NWI5MTUwN2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIwMzYxMDMwNDU3NjEwMzAzNjEwMjliNTY1YjViNjAwMTgyMDE5MDUwOTE5MDUwNTZmZWEyNjQ2OTcwNjY3MzU4MjIxMjIwYmZmZTRkMzU2YzVjNjUyMWY2NzgxZmIxNDExOGI4ZWUxNDZiMGY0NmYxZjU1ODUxODI2YWIyOWIxZWU3YmMxMTY0NzM2ZjZjNjM0MzAwMDgxNjAwMzM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw8YFDyO+mRxF9ML92J+3FO3eJl/vMsyQAJ6Ls+MTEsQ9yJxWGbWcr4k3YbyOQgC9oGgwIrayzrgYQ1dLQoQEiDwoJCPGrs64GELsHEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"ChAKCQjxq7OuBhC9BxIDGNcIEgIYAxjt6skYIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA4QICvsHAvkD94IBKoCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATiCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdGpSiACCUgiAgLkDZWCAYEBSX4BVNIAVYQASV1+A/VtQYQNFgGEAIF85X/P+YIBgQFI0gBVhAA9XX4D9W1BgBDYQYQBKV181YOAcgGMR+V9vFGEATleAYzoytUkUYQBsV4Bjz8cgBxRhAIpXgGP/SJ0xFGEApldbX4D9W2EAVmEAxFZbYEBRYQBjkZBhAVBWW2BAUYCRA5DzW2EAdGEBAFZbYEBRYQCBkZBhAYFWW2BAUYCRA5DzW2EApGAEgDYDgQGQYQCfkZBhAfhWW2EBGVZbAFthAK5hATJWW2BAUWEAu5GQYQFQVltgQFGAkQOQ81tfYEBRfwjDeaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgVJgBAFhAPeQYQJ9VltgQFGAkQOQ/VtfgF+BVGEBDpBhAshWW5GQUIGQVZBQkFZbgHP//////////////////////////xb/W1+A/VtfgRUVkFCRkFBWW2EBSoFhATZWW4JSUFBWW19gIIIBkFBhAWNfgwGEYQFBVluSkVBQVltfgZBQkZBQVlthAXuBYQFpVluCUlBQVltfYCCCAZBQYQGUX4MBhGEBclZbkpFQUFZbX4D9W19z//////////////////////////+CFpBQkZBQVltfYQHHgmEBnlZbkFCRkFBWW2EB14FhAb1WW4EUYQHhV1+A/VtQVltfgTWQUGEB8oFhAc5WW5KRUFBWW19gIIKEAxIVYQINV2ECDGEBmlZbW19hAhqEgoUBYQHkVluRUFCSkVBQVltfgoJSYCCCAZBQkpFQUFZbf1JldmVydFJlYXNvbgAAAAAAAAAAAAAAAAAAAAAAAAAAX4IBUlBWW19hAmdgDINhAiNWW5FQYQJygmECM1ZbYCCCAZBQkZBQVltfYCCCAZBQgYEDX4MBUmEClIFhAltWW5BQkZBQVlt/Tkh7cQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfUmARYARSYCRf/VtfYQLSgmEBaVZbkVB///////////////////////////////////////////+CA2EDBFdhAwNhAptWW1tgAYIBkFCRkFBW/qJkaXBmc1giEiC//k01bFxlIfZ4H7FBGLjuFGsPRvH1WFGCarKbHue8EWRzb2xjQwAIFgAzwAGgLmUvynZ97pDEiO5WsmTAxLbEJw+DESybhFVySDo2eiygKI7CxG2diB4u2o0AEkR1m4onFqT4LgvVqAKNiEPUhagYgMivoCU=","b64Record":"CiAIHiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwu+I5IT4BPckrBn3URzoewAJXh6JxT4ue3Ru5O8XThtYst8wG/wi6uOFmr556I1SsGgwIrayzrgYQoq6khgMiEAoJCPGrs64GEL0HEgMY1wgqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMO3qyRg6lwcaIjB4NDk0ZTUzNTU0NjQ2NDk0MzQ5NDU0ZTU0NWY0NzQxNTNQiKQBYuUGYIBgQFJfgFU0gBVhABJXX4D9W1BhA0WAYQAgXzlf8/5ggGBAUjSAFWEAD1dfgP1bUGAENhBhAEpXXzVg4ByAYxH5X28UYQBOV4BjOjK1SRRhAGxXgGPPxyAHFGEAileAY/9InTEUYQCmV1tfgP1bYQBWYQDEVltgQFFhAGORkGEBUFZbYEBRgJEDkPNbYQB0YQEAVltgQFFhAIGRkGEBgVZbYEBRgJEDkPNbYQCkYASANgOBAZBhAJ+RkGEB+FZbYQEZVlsAW2EArmEBMlZbYEBRYQC7kZBhAVBWW2BAUYCRA5DzW19gQFF/CMN5oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBUmAEAWEA95BhAn1WW2BAUYCRA5D9W1+AX4FUYQEOkGECyFZbkZBQgZBVkFCQVluAc///////////////////////////Fv9bX4D9W1+BFRWQUJGQUFZbYQFKgWEBNlZbglJQUFZbX2AgggGQUGEBY1+DAYRhAUFWW5KRUFBWW1+BkFCRkFBWW2EBe4FhAWlWW4JSUFBWW19gIIIBkFBhAZRfgwGEYQFyVluSkVBQVltfgP1bX3P//////////////////////////4IWkFCRkFBWW19hAceCYQGeVluQUJGQUFZbYQHXgWEBvVZbgRRhAeFXX4D9W1BWW1+BNZBQYQHygWEBzlZbkpFQUFZbX2AggoQDEhVhAg1XYQIMYQGaVltbX2ECGoSChQFhAeRWW5FQUJKRUFBWW1+CglJgIIIBkFCSkVBQVlt/UmV2ZXJ0UmVhc29uAAAAAAAAAAAAAAAAAAAAAAAAAABfggFSUFZbX2ECZ2AMg2ECI1ZbkVBhAnKCYQIzVltgIIIBkFCRkFBWW19gIIIBkFCBgQNfgwFSYQKUgWECW1ZbkFCRkFBWW39OSHtxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF9SYBFgBFJgJF/9W19hAtKCYQFpVluRUH///////////////////////////////////////////4IDYQMEV2EDA2ECm1ZbW2ABggGQUJGQUFb+omRpcGZzWCISIL/+TTVsXGUh9ngfsUEYuO4Uaw9G8fVYUYJqspse57wRZHNvbGNDAAgWADNqAxjYCHoAUjoKCQoCGAMQxNDyAQoJCgIYYhDineclCgoKAxigBhDa89wECgoKAxihBhDa89wECgoKAxjXCBDZ1ZMxigEgNEYWS/RF9PmphntCVIn2FdoH7sbK9OD8Vf5EloPc1js="}]},"nonceNotUpdatedWhenUserOfferedGasPriceAndAllowanceAreZeroHandlerCheckFailedEthContractCreate":{"placeholderNum":1114,"encodedItems":[{"b64Body":"Cg8KCQj2q7OuBhDVBxICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlozCiISIIY82XJ+/fDGE/FSEQgH01jW/rXjf9rzU4ZflulVG3V7EICA6YOx3hZKBQiAztoD","b64Record":"CiUIFhIDGNsIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBQhP4pBWDyBQUZ4z88sEw64FB5dQ/LeeLmAdOc8jTEmCxfcdLk4kQS2NmPkGu0ztoaDAiyrLOuBhD47/erAiIPCgkI9quzrgYQ1QcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIdCgwKAhgCEP//0YfivC0KDQoDGNsIEICA0ofivC0="},{"b64Body":"ChEKCQj3q7OuBhDXBxICGAIgAVpoCiM6IQLhj9j/paoykNWkULyDWBcBIiU2oFwyfxC157w9DPo4GEoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiEC4Y/Y/6WqMpDVpFC8g1gXASIlNqBcMn8Qtee8PQz6OBg=","b64Record":"CgcIFhIDGNwIEjBALLTvucsY0+PgB7bHnnqkk1ab1cftDy5Q4zZRYd2Oj0ivbiqKCViGP4f3yAqlcc4aCwizrLOuBhCrroA0IhEKCQj3q7OuBhDXBxICGAIgASoUYXV0by1jcmVhdGVkIGFjY291bnRSAKoBFECmOmRsZ9vApEnsj66eqF1ba+pk"},{"b64Body":"Cg8KCQj3q7OuBhDXBxICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOckEKPwoMCgIYAhD//9GH4rwtCi8KJSIjOiEC4Y/Y/6WqMpDVpFC8g1gXASIlNqBcMn8Qtee8PQz6OBgQgIDSh+K8LQ==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwVaIVB5DJa17Eq3HwOBMDaAEJyBafTWskleV1tZZEjoqfKz4eZlGVkHF+B0qvRClDGgsIs6yzrgYQrK6ANCIPCgkI96uzrgYQ1wcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIdCgwKAhgCEP//0YfivC0KDQoDGNwIEICA0ofivC0="},{"b64Body":"Cg8KCQj3q7OuBhDZBxICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAiz+o2yBhCTwtqdAhptCiISIAwHR2wRWCANN5onW3cQZ7HKOKu2lk94+JrWqTgel9OMCiM6IQN1P7QcySfWwu5Ajb2c2hI6GsD9A6EHNpQ+up6xsg7X4QoiEiDHnxwNt/Mgdyn+ltJe2nTnF3qbOD70h3+tu3pZEliCayIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGN0IKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAQf1ry+jjuCEHz/JLE91GWDc24/ViekqmaTTcZSj8gB3q09foIdYMOaMQHhz0X9xcaDAizrLOuBhC4+5y1AiIPCgkI96uzrgYQ2QcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQj4q7OuBhDdBxICGAISAhgDGITr6jMiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoB0g0KAxjdCCLKDTYwODA2MDQwNTI1ZjgwNTUzNDgwMTU2MTAwMTI1NzVmODBmZDViNTA2MTAzNDU4MDYxMDAyMDVmMzk1ZmYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDBmNTc1ZjgwZmQ1YjUwNjAwNDM2MTA2MTAwNGE1NzVmMzU2MGUwMWM4MDYzMTFmOTVmNmYxNDYxMDA0ZTU3ODA2MzNhMzJiNTQ5MTQ2MTAwNmM1NzgwNjNjZmM3MjAwNzE0NjEwMDhhNTc4MDYzZmY0ODlkMzExNDYxMDBhNjU3NWI1ZjgwZmQ1YjYxMDA1NjYxMDBjNDU2NWI2MDQwNTE2MTAwNjM5MTkwNjEwMTUwNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDA3NDYxMDEwMDU2NWI2MDQwNTE2MTAwODE5MTkwNjEwMTgxNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDBhNDYwMDQ4MDM2MDM4MTAxOTA2MTAwOWY5MTkwNjEwMWY4NTY1YjYxMDExOTU2NWIwMDViNjEwMGFlNjEwMTMyNTY1YjYwNDA1MTYxMDBiYjkxOTA2MTAxNTA1NjViNjA0MDUxODA5MTAzOTBmMzViNWY2MDQwNTE3ZjA4YzM3OWEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MTUyNjAwNDAxNjEwMGY3OTA2MTAyN2Q1NjViNjA0MDUxODA5MTAzOTBmZDViNWY4MDVmODE1NDYxMDEwZTkwNjEwMmM4NTY1YjkxOTA1MDgxOTA1NTkwNTA5MDU2NWI4MDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ZmY1YjVmODBmZDViNWY4MTE1MTU5MDUwOTE5MDUwNTY1YjYxMDE0YTgxNjEwMTM2NTY1YjgyNTI1MDUwNTY1YjVmNjAyMDgyMDE5MDUwNjEwMTYzNWY4MzAxODQ2MTAxNDE1NjViOTI5MTUwNTA1NjViNWY4MTkwNTA5MTkwNTA1NjViNjEwMTdiODE2MTAxNjk1NjViODI1MjUwNTA1NjViNWY2MDIwODIwMTkwNTA2MTAxOTQ1ZjgzMDE4NDYxMDE3MjU2NWI5MjkxNTA1MDU2NWI1ZjgwZmQ1YjVmNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIxNjkwNTA5MTkwNTA1NjViNWY2MTAxYzc4MjYxMDE5ZTU2NWI5MDUwOTE5MDUwNTY1YjYxMDFkNzgxNjEwMWJkNTY1YjgxMTQ2MTAxZTE1NzVmODBmZDViNTA1NjViNWY4MTM1OTA1MDYxMDFmMjgxNjEwMWNlNTY1YjkyOTE1MDUwNTY1YjVmNjAyMDgyODQwMzEyMTU2MTAyMGQ1NzYxMDIwYzYxMDE5YTU2NWI1YjVmNjEwMjFhODQ4Mjg1MDE2MTAxZTQ1NjViOTE1MDUwOTI5MTUwNTA1NjViNWY4MjgyNTI2MDIwODIwMTkwNTA5MjkxNTA1MDU2NWI3ZjUyNjU3NjY1NzI3NDUyNjU2MTczNmY2ZTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1ZjgyMDE1MjUwNTY1YjVmNjEwMjY3NjAwYzgzNjEwMjIzNTY1YjkxNTA2MTAyNzI4MjYxMDIzMzU2NWI2MDIwODIwMTkwNTA5MTkwNTA1NjViNWY2MDIwODIwMTkwNTA4MTgxMDM1ZjgzMDE1MjYxMDI5NDgxNjEwMjViNTY1YjkwNTA5MTkwNTA1NjViN2Y0ZTQ4N2I3MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNWY1MjYwMTE2MDA0NTI2MDI0NWZmZDViNWY2MTAyZDI4MjYxMDE2OTU2NWI5MTUwN2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIwMzYxMDMwNDU3NjEwMzAzNjEwMjliNTY1YjViNjAwMTgyMDE5MDUwOTE5MDUwNTZmZWEyNjQ2OTcwNjY3MzU4MjIxMjIwYmZmZTRkMzU2YzVjNjUyMWY2NzgxZmIxNDExOGI4ZWUxNDZiMGY0NmYxZjU1ODUxODI2YWIyOWIxZWU3YmMxMTY0NzM2ZjZjNjM0MzAwMDgxNjAwMzM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwP406qDpEdOUYsV9b+nRUkdqkhKrhR9fV10Uy53hbqQNJMES0BbRyst+cli4EE5JMGgsItKyzrgYQi+S1PSIPCgkI+KuzrgYQ3QcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"}]},"nonceNotUpdatedWhenOfferedGasPriceIsLessThanCurrentAndSenderDoesNotHaveEnoughBalanceHandlerCheckFailedEthContractCreate":{"placeholderNum":1118,"encodedItems":[{"b64Body":"Cg8KCQj9q7OuBhD3BxICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlozCiISIF1NWGaRgdS0N/OhJ6gNdH5jqEaGvQuHezjHM7TUGLz5EICA6YOx3hZKBQiAztoD","b64Record":"CiUIFhIDGN8IKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDxdU1tAoqyZTrVmhv/OI5JRWgxWzBJUo124ybVojx6kWYA8pyPb0xS67bGKF/XhCQaDAi5rLOuBhDsqujaASIPCgkI/auzrgYQ9wcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIdCgwKAhgCEP//0YfivC0KDQoDGN8IEICA0ofivC0="},{"b64Body":"ChEKCQj9q7OuBhD5BxICGAIgAVpoCiM6IQJj1Gz+KLk0sO/oMU5c4OEtezSo5txK8S8a4gNJ5CVSU0oFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiECY9Rs/ii5NLDv6DFOXODhLXs0qObcSvEvGuIDSeQlUlM=","b64Record":"CgcIFhIDGOAIEjCBbqQP2Yd9Lr2O7ccO526W1bTiltxh3Qb2cPEo5lndptrT/0Oq1+6lGnQZyROMcE4aDAi5rLOuBhCeoqq/AyIRCgkI/auzrgYQ+QcSAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARQ6QWIOlQFKI1rtK6t6O9O6vJJCrw=="},{"b64Body":"Cg8KCQj9q7OuBhD5BxICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcjUKMwoGCgIYAhABCikKJSIjOiECY9Rs/ii5NLDv6DFOXODhLXs0qObcSvEvGuIDSeQlUlMQAg==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwqxpysKk4g52+aGeGHEn+LMH+9Tc5fclIN/DRzHChjQGnYNlmooN5RmB84Ofa0LeCGgwIuayzrgYQn6KqvwMiDwoJCP2rs64GEPkHEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SEQoGCgIYAhABCgcKAxjgCBAC"},{"b64Body":"Cg8KCQj+q7OuBhD7BxICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAi6+o2yBhDOn6HIARptCiISIAWwoYOIxC3zKZHuo9dgeZoRwrFG4cCLD6hWnyWmkqp1CiM6IQPlsUwgYtwLANedy6ThplD70YNufvlP6n/+Dn5teIeHhQoiEiBaADxCq8WE10q5viYn9a6x4Y15yHQtakLyHXLa3rpLFyIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGOEIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAe16SXreEOy8srOjO9s1yyxM3XCu5eGpkNIjv/Sk0GjSGO4WOPQdaEKjqVLxB3VHIaDAi6rLOuBhD+jpvkASIPCgkI/quzrgYQ+wcSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQj+q7OuBhD/BxICGAISAhgDGITr6jMiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoB0g0KAxjhCCLKDTYwODA2MDQwNTI1ZjgwNTUzNDgwMTU2MTAwMTI1NzVmODBmZDViNTA2MTAzNDU4MDYxMDAyMDVmMzk1ZmYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDBmNTc1ZjgwZmQ1YjUwNjAwNDM2MTA2MTAwNGE1NzVmMzU2MGUwMWM4MDYzMTFmOTVmNmYxNDYxMDA0ZTU3ODA2MzNhMzJiNTQ5MTQ2MTAwNmM1NzgwNjNjZmM3MjAwNzE0NjEwMDhhNTc4MDYzZmY0ODlkMzExNDYxMDBhNjU3NWI1ZjgwZmQ1YjYxMDA1NjYxMDBjNDU2NWI2MDQwNTE2MTAwNjM5MTkwNjEwMTUwNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDA3NDYxMDEwMDU2NWI2MDQwNTE2MTAwODE5MTkwNjEwMTgxNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDBhNDYwMDQ4MDM2MDM4MTAxOTA2MTAwOWY5MTkwNjEwMWY4NTY1YjYxMDExOTU2NWIwMDViNjEwMGFlNjEwMTMyNTY1YjYwNDA1MTYxMDBiYjkxOTA2MTAxNTA1NjViNjA0MDUxODA5MTAzOTBmMzViNWY2MDQwNTE3ZjA4YzM3OWEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MTUyNjAwNDAxNjEwMGY3OTA2MTAyN2Q1NjViNjA0MDUxODA5MTAzOTBmZDViNWY4MDVmODE1NDYxMDEwZTkwNjEwMmM4NTY1YjkxOTA1MDgxOTA1NTkwNTA5MDU2NWI4MDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ZmY1YjVmODBmZDViNWY4MTE1MTU5MDUwOTE5MDUwNTY1YjYxMDE0YTgxNjEwMTM2NTY1YjgyNTI1MDUwNTY1YjVmNjAyMDgyMDE5MDUwNjEwMTYzNWY4MzAxODQ2MTAxNDE1NjViOTI5MTUwNTA1NjViNWY4MTkwNTA5MTkwNTA1NjViNjEwMTdiODE2MTAxNjk1NjViODI1MjUwNTA1NjViNWY2MDIwODIwMTkwNTA2MTAxOTQ1ZjgzMDE4NDYxMDE3MjU2NWI5MjkxNTA1MDU2NWI1ZjgwZmQ1YjVmNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIxNjkwNTA5MTkwNTA1NjViNWY2MTAxYzc4MjYxMDE5ZTU2NWI5MDUwOTE5MDUwNTY1YjYxMDFkNzgxNjEwMWJkNTY1YjgxMTQ2MTAxZTE1NzVmODBmZDViNTA1NjViNWY4MTM1OTA1MDYxMDFmMjgxNjEwMWNlNTY1YjkyOTE1MDUwNTY1YjVmNjAyMDgyODQwMzEyMTU2MTAyMGQ1NzYxMDIwYzYxMDE5YTU2NWI1YjVmNjEwMjFhODQ4Mjg1MDE2MTAxZTQ1NjViOTE1MDUwOTI5MTUwNTA1NjViNWY4MjgyNTI2MDIwODIwMTkwNTA5MjkxNTA1MDU2NWI3ZjUyNjU3NjY1NzI3NDUyNjU2MTczNmY2ZTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1ZjgyMDE1MjUwNTY1YjVmNjEwMjY3NjAwYzgzNjEwMjIzNTY1YjkxNTA2MTAyNzI4MjYxMDIzMzU2NWI2MDIwODIwMTkwNTA5MTkwNTA1NjViNWY2MDIwODIwMTkwNTA4MTgxMDM1ZjgzMDE1MjYxMDI5NDgxNjEwMjViNTY1YjkwNTA5MTkwNTA1NjViN2Y0ZTQ4N2I3MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNWY1MjYwMTE2MDA0NTI2MDI0NWZmZDViNWY2MTAyZDI4MjYxMDE2OTU2NWI5MTUwN2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIwMzYxMDMwNDU3NjEwMzAzNjEwMjliNTY1YjViNjAwMTgyMDE5MDUwOTE5MDUwNTZmZWEyNjQ2OTcwNjY3MzU4MjIxMjIwYmZmZTRkMzU2YzVjNjUyMWY2NzgxZmIxNDExOGI4ZWUxNDZiMGY0NmYxZjU1ODUxODI2YWIyOWIxZWU3YmMxMTY0NzM2ZjZjNjM0MzAwMDgxNjAwMzM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwwz8eV7IpVQ7r8nNvWVFZvxDEWrRcC17wsR6bUg3I31nEiGy2jNMVX6D5tS0MwxA9GgwIuqyzrgYQisuWyQMiDwoJCP6rs64GEP8HEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="}]},"nonceNotUpdatedWhenOfferedGasPriceIsLessThanCurrentAndGasAllowanceIsLessThanRemainingFeeHandlerCheckFailedEthContractCreate":{"placeholderNum":1122,"encodedItems":[{"b64Body":"Cg8KCQiErLOuBhCZCBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlozCiISICwhiLTEK/dn3WWLosZ5l3AmzAIfZlfwRE0PKkVfXvjqEICA6YOx3hZKBQiAztoD","b64Record":"CiUIFhIDGOMIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBN1IdWE5496bBoheYozelQSGCnOnz4kwHIkD28cl+vpWrVJ/8MbIVpfY/49ZTTTkwaDAjArLOuBhDkjNaEASIPCgkIhKyzrgYQmQgSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIdCgwKAhgCEP//0YfivC0KDQoDGOMIEICA0ofivC0="},{"b64Body":"ChEKCQiErLOuBhCbCBICGAIgAVpoCiM6IQLOyyHjWlWIF0FEP9GNkvheDuphPGxwhdfUgMCXyqlwWUoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiECzssh41pViBdBRD/RjZL4Xg7qYTxscIXX1IDAl8qpcFk=","b64Record":"CgcIFhIDGOQIEjAs5eHxgfTomSUxgBZL1wtOC69gWD19P5RDFSfICSBESfkGJqlOmQaDN4XX2SF30boaDAjArLOuBhCfrK2BAyIRCgkIhKyzrgYQmwgSAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARSN0qP0Zjcvs0eLaX6xvuLAzM+5Xw=="},{"b64Body":"Cg8KCQiErLOuBhCbCBICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOckEKPwoMCgIYAhD//9GH4rwtCi8KJSIjOiECzssh41pViBdBRD/RjZL4Xg7qYTxscIXX1IDAl8qpcFkQgIDSh+K8LQ==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw6jQNl3adrJHz/qLMdAF1n0MMpGXaJiPiOOqV7bAB/Z4TeG5crHPUVGlrPLbaD6sHGgwIwKyzrgYQoKytgQMiDwoJCISss64GEJsIEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SHQoMCgIYAhD//9GH4rwtCg0KAxjkCBCAgNKH4rwt"},{"b64Body":"Cg8KCQiFrLOuBhCdCBICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjgESCwjB+o2yBhDHjYV3Gm0KIhIgO8EEgI4uxw+j25qQGuphgR4VOvOOaIks19LIRgNhseoKIzohAxy/17LuQwJBs6S8GA7OmmO02ZyViML0/wcFIO3xSogaCiISIP97monGy5GnvUaugcOjyJy+h17JO3AlhcHMXUN8sZ4KIgxIZWxsbyBXb3JsZCEqADIA","b64Record":"CiUIFhoDGOUIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDnY0fVhbnEEPSBM+7wIM+HNz76g6egMnVe/94pLBklH/UCp1tjz0zFPQ1yumcvVqUaDAjBrLOuBhC1lLyOASIPCgkIhayzrgYQnQgSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiFrLOuBhChCBICGAISAhgDGITr6jMiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoB0g0KAxjlCCLKDTYwODA2MDQwNTI1ZjgwNTUzNDgwMTU2MTAwMTI1NzVmODBmZDViNTA2MTAzNDU4MDYxMDAyMDVmMzk1ZmYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDBmNTc1ZjgwZmQ1YjUwNjAwNDM2MTA2MTAwNGE1NzVmMzU2MGUwMWM4MDYzMTFmOTVmNmYxNDYxMDA0ZTU3ODA2MzNhMzJiNTQ5MTQ2MTAwNmM1NzgwNjNjZmM3MjAwNzE0NjEwMDhhNTc4MDYzZmY0ODlkMzExNDYxMDBhNjU3NWI1ZjgwZmQ1YjYxMDA1NjYxMDBjNDU2NWI2MDQwNTE2MTAwNjM5MTkwNjEwMTUwNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDA3NDYxMDEwMDU2NWI2MDQwNTE2MTAwODE5MTkwNjEwMTgxNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDBhNDYwMDQ4MDM2MDM4MTAxOTA2MTAwOWY5MTkwNjEwMWY4NTY1YjYxMDExOTU2NWIwMDViNjEwMGFlNjEwMTMyNTY1YjYwNDA1MTYxMDBiYjkxOTA2MTAxNTA1NjViNjA0MDUxODA5MTAzOTBmMzViNWY2MDQwNTE3ZjA4YzM3OWEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MTUyNjAwNDAxNjEwMGY3OTA2MTAyN2Q1NjViNjA0MDUxODA5MTAzOTBmZDViNWY4MDVmODE1NDYxMDEwZTkwNjEwMmM4NTY1YjkxOTA1MDgxOTA1NTkwNTA5MDU2NWI4MDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ZmY1YjVmODBmZDViNWY4MTE1MTU5MDUwOTE5MDUwNTY1YjYxMDE0YTgxNjEwMTM2NTY1YjgyNTI1MDUwNTY1YjVmNjAyMDgyMDE5MDUwNjEwMTYzNWY4MzAxODQ2MTAxNDE1NjViOTI5MTUwNTA1NjViNWY4MTkwNTA5MTkwNTA1NjViNjEwMTdiODE2MTAxNjk1NjViODI1MjUwNTA1NjViNWY2MDIwODIwMTkwNTA2MTAxOTQ1ZjgzMDE4NDYxMDE3MjU2NWI5MjkxNTA1MDU2NWI1ZjgwZmQ1YjVmNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIxNjkwNTA5MTkwNTA1NjViNWY2MTAxYzc4MjYxMDE5ZTU2NWI5MDUwOTE5MDUwNTY1YjYxMDFkNzgxNjEwMWJkNTY1YjgxMTQ2MTAxZTE1NzVmODBmZDViNTA1NjViNWY4MTM1OTA1MDYxMDFmMjgxNjEwMWNlNTY1YjkyOTE1MDUwNTY1YjVmNjAyMDgyODQwMzEyMTU2MTAyMGQ1NzYxMDIwYzYxMDE5YTU2NWI1YjVmNjEwMjFhODQ4Mjg1MDE2MTAxZTQ1NjViOTE1MDUwOTI5MTUwNTA1NjViNWY4MjgyNTI2MDIwODIwMTkwNTA5MjkxNTA1MDU2NWI3ZjUyNjU3NjY1NzI3NDUyNjU2MTczNmY2ZTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1ZjgyMDE1MjUwNTY1YjVmNjEwMjY3NjAwYzgzNjEwMjIzNTY1YjkxNTA2MTAyNzI4MjYxMDIzMzU2NWI2MDIwODIwMTkwNTA5MTkwNTA1NjViNWY2MDIwODIwMTkwNTA4MTgxMDM1ZjgzMDE1MjYxMDI5NDgxNjEwMjViNTY1YjkwNTA5MTkwNTA1NjViN2Y0ZTQ4N2I3MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNWY1MjYwMTE2MDA0NTI2MDI0NWZmZDViNWY2MTAyZDI4MjYxMDE2OTU2NWI5MTUwN2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIwMzYxMDMwNDU3NjEwMzAzNjEwMjliNTY1YjViNjAwMTgyMDE5MDUwOTE5MDUwNTZmZWEyNjQ2OTcwNjY3MzU4MjIxMjIwYmZmZTRkMzU2YzVjNjUyMWY2NzgxZmIxNDExOGI4ZWUxNDZiMGY0NmYxZjU1ODUxODI2YWIyOWIxZWU3YmMxMTY0NzM2ZjZjNjM0MzAwMDgxNjAwMzM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwN5n/auL68lnnPlAcOmvUxQJQcKAt6iZ944d7Rha3/A+0UrUh+1Os/i7alfVEJdDpGgwIwayzrgYQkJW9mQMiDwoJCIWss64GEKEIEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="}]},"nonceNotUpdatedWhenOfferedGasPriceIsBiggerThanCurrentAndSenderDoesNotHaveEnoughBalanceHandlerCheckFailedEthContractCreate":{"placeholderNum":1126,"encodedItems":[{"b64Body":"Cg8KCQiLrLOuBhC7CBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlozCiISIHBLiiMm6+tmUCJWPSXXUEBJLoGm758bjS3rzGtciHQ5EICA6YOx3hZKBQiAztoD","b64Record":"CiUIFhIDGOcIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBw+s1gK9xU8rEqw4dqccGVv35VfmR2q8fz/k6a8kME3kcTxET9GKtOpNTI3UqAUisaCwjHrLOuBhCVrpUqIg8KCQiLrLOuBhC7CBICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUh0KDAoCGAIQ///Rh+K8LQoNCgMY5wgQgIDSh+K8LQ=="},{"b64Body":"ChEKCQiLrLOuBhC9CBICGAIgAVpoCiM6IQP80fnhtlqOtvsjX34MXqkvyKYNmF5ArZnpQgV4108tlUoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiED/NH54bZajrb7I19+DF6pL8imDZheQK2Z6UIFeNdPLZU=","b64Record":"CgcIFhIDGOgIEjCD5QzWVNr1e5GL7079DmpcT2cGMF9qBcwMfjvFZ0zyhe0pMAKwr1KOxtisRR+aPmUaDAjHrLOuBhDchKuPAiIRCgkIi6yzrgYQvQgSAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARRLa4hK4M8f3eNSYjg8gg8Sg8G35g=="},{"b64Body":"Cg8KCQiLrLOuBhC9CBICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcjUKMwoGCgIYAhABCikKJSIjOiED/NH54bZajrb7I19+DF6pL8imDZheQK2Z6UIFeNdPLZUQAg==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwhlYlj20ChMDHkhg/inZT1zti0JjGIBTLSvzNjoNMGNyRTqm9qhB29E0iEH7yMCl/GgwIx6yzrgYQ3YSrjwIiDwoJCIuss64GEL0IEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SEQoGCgIYAhABCgcKAxjoCBAC"},{"b64Body":"Cg8KCQiMrLOuBhC/CBICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjgESCwjI+o2yBhCatJ0iGm0KIhIgcPcRd4Fgb8X37xrWArxwGd57/iHGppcNvbaj1wd1F8QKIzohA3/xJBy3bDqu1FTBl4MDwXo9XXcm9bzxao7niXfdQ7l1CiISIOEWejLtteiHooTsw+oEJM/2UwkXh1PTFAL4Pb8xhtQFIgxIZWxsbyBXb3JsZCEqADIA","b64Record":"CiUIFhoDGOkIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCGIPbi7P3kFgavzwd2wroXtBO3IdyVka8dkF1x9P/T9qcZ1fu4ru8HaVqBApirq9IaCwjIrLOuBhDb2ugzIg8KCQiMrLOuBhC/CBICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgA="},{"b64Body":"Cg8KCQiMrLOuBhDDCBICGAISAhgDGITr6jMiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoB0g0KAxjpCCLKDTYwODA2MDQwNTI1ZjgwNTUzNDgwMTU2MTAwMTI1NzVmODBmZDViNTA2MTAzNDU4MDYxMDAyMDVmMzk1ZmYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDBmNTc1ZjgwZmQ1YjUwNjAwNDM2MTA2MTAwNGE1NzVmMzU2MGUwMWM4MDYzMTFmOTVmNmYxNDYxMDA0ZTU3ODA2MzNhMzJiNTQ5MTQ2MTAwNmM1NzgwNjNjZmM3MjAwNzE0NjEwMDhhNTc4MDYzZmY0ODlkMzExNDYxMDBhNjU3NWI1ZjgwZmQ1YjYxMDA1NjYxMDBjNDU2NWI2MDQwNTE2MTAwNjM5MTkwNjEwMTUwNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDA3NDYxMDEwMDU2NWI2MDQwNTE2MTAwODE5MTkwNjEwMTgxNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDBhNDYwMDQ4MDM2MDM4MTAxOTA2MTAwOWY5MTkwNjEwMWY4NTY1YjYxMDExOTU2NWIwMDViNjEwMGFlNjEwMTMyNTY1YjYwNDA1MTYxMDBiYjkxOTA2MTAxNTA1NjViNjA0MDUxODA5MTAzOTBmMzViNWY2MDQwNTE3ZjA4YzM3OWEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MTUyNjAwNDAxNjEwMGY3OTA2MTAyN2Q1NjViNjA0MDUxODA5MTAzOTBmZDViNWY4MDVmODE1NDYxMDEwZTkwNjEwMmM4NTY1YjkxOTA1MDgxOTA1NTkwNTA5MDU2NWI4MDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ZmY1YjVmODBmZDViNWY4MTE1MTU5MDUwOTE5MDUwNTY1YjYxMDE0YTgxNjEwMTM2NTY1YjgyNTI1MDUwNTY1YjVmNjAyMDgyMDE5MDUwNjEwMTYzNWY4MzAxODQ2MTAxNDE1NjViOTI5MTUwNTA1NjViNWY4MTkwNTA5MTkwNTA1NjViNjEwMTdiODE2MTAxNjk1NjViODI1MjUwNTA1NjViNWY2MDIwODIwMTkwNTA2MTAxOTQ1ZjgzMDE4NDYxMDE3MjU2NWI5MjkxNTA1MDU2NWI1ZjgwZmQ1YjVmNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIxNjkwNTA5MTkwNTA1NjViNWY2MTAxYzc4MjYxMDE5ZTU2NWI5MDUwOTE5MDUwNTY1YjYxMDFkNzgxNjEwMWJkNTY1YjgxMTQ2MTAxZTE1NzVmODBmZDViNTA1NjViNWY4MTM1OTA1MDYxMDFmMjgxNjEwMWNlNTY1YjkyOTE1MDUwNTY1YjVmNjAyMDgyODQwMzEyMTU2MTAyMGQ1NzYxMDIwYzYxMDE5YTU2NWI1YjVmNjEwMjFhODQ4Mjg1MDE2MTAxZTQ1NjViOTE1MDUwOTI5MTUwNTA1NjViNWY4MjgyNTI2MDIwODIwMTkwNTA5MjkxNTA1MDU2NWI3ZjUyNjU3NjY1NzI3NDUyNjU2MTczNmY2ZTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1ZjgyMDE1MjUwNTY1YjVmNjEwMjY3NjAwYzgzNjEwMjIzNTY1YjkxNTA2MTAyNzI4MjYxMDIzMzU2NWI2MDIwODIwMTkwNTA5MTkwNTA1NjViNWY2MDIwODIwMTkwNTA4MTgxMDM1ZjgzMDE1MjYxMDI5NDgxNjEwMjViNTY1YjkwNTA5MTkwNTA1NjViN2Y0ZTQ4N2I3MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNWY1MjYwMTE2MDA0NTI2MDI0NWZmZDViNWY2MTAyZDI4MjYxMDE2OTU2NWI5MTUwN2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIwMzYxMDMwNDU3NjEwMzAzNjEwMjliNTY1YjViNjAwMTgyMDE5MDUwOTE5MDUwNTZmZWEyNjQ2OTcwNjY3MzU4MjIxMjIwYmZmZTRkMzU2YzVjNjUyMWY2NzgxZmIxNDExOGI4ZWUxNDZiMGY0NmYxZjU1ODUxODI2YWIyOWIxZWU3YmMxMTY0NzM2ZjZjNjM0MzAwMDgxNjAwMzM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwZtatQT+PPIFN86EwP3f7pJwVBlME1NqBHFX7km266hG6IUtFVrZQItMOmI7S9fqsGgwIyKyzrgYQ1LK5mAIiDwoJCIyss64GEMMIEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="}]},"nonceNotUpdatedWhenSenderDoesNotHaveEnoughBalanceHandlerCheckFailedEthContractCreate":{"placeholderNum":1130,"encodedItems":[{"b64Body":"Cg8KCQiRrLOuBhDdCBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlozCiISIIWCQL8I/1/k1/w9YG3cUpeLcM/Xhwvt8coQmwWv0lWJEICA6YOx3hZKBQiAztoD","b64Record":"CiUIFhIDGOsIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBgb7p6kLiYu/jrdoQeV4iPrbzzBdpNdjumDUKDKFa0viyRedCg9i7KAQ24imWTcqsaDAjNrLOuBhDfqe66AyIPCgkIkayzrgYQ3QgSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIdCgwKAhgCEP//0YfivC0KDQoDGOsIEICA0ofivC0="},{"b64Body":"ChEKCQiSrLOuBhDfCBICGAIgAVpoCiM6IQPFyCZ8/gBmBCM9D/D1/tfso3Fihb0vO4tAURwl2o7rQUoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiEDxcgmfP4AZgQjPQ/w9f7X7KNxYoW9LzuLQFEcJdqO60E=","b64Record":"CgcIFhIDGOwIEjBOz2bVipz1XOACA1Ffcl9UWN/XQok2OU6nI2sbwZnl/XU1SPdNoJT69DY/fKJbLQEaDAjOrLOuBhDtvYDDASIRCgkIkqyzrgYQ3wgSAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARTloq7j6eBvf6YJdHNw0Dt9u67gyw=="},{"b64Body":"Cg8KCQiSrLOuBhDfCBICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOcjUKMwoGCgIYAhABCikKJSIjOiEDxcgmfP4AZgQjPQ/w9f7X7KNxYoW9LzuLQFEcJdqO60EQAg==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwA+bQONxUEMuJ+FaNgeMeCCVghx6HqV4NUDcQ9FlmhhcwLjaZQF1h7DV8yS1GyUIDGgwIzqyzrgYQ7r2AwwEiDwoJCJKss64GEN8IEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SEQoGCgIYAhABCgcKAxjsCBAC"},{"b64Body":"Cg8KCQiSrLOuBhDhCBICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAjO+o2yBhDSnaWnAxptCiISIIDuRL1Q7Zcp4G1TsmnVkrlXaT/U37Mhs10KK17+Af37CiM6IQLD0V7Ipi0a3XfB2vUZk5X8oEfyp9F4JLOyXz6DwTI7AAoiEiBdIne8Bq3+6IKcO7EHg1ky5ifakXRvd+8Wvpe91sYwXyIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGO0IKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCUeC8+WOM8PKKdFIly7e9D7e4jmBv6qCsdnaaNEaD+TlX0T4NgBxHEEjdD+m3pKUoaDAjOrLOuBhD9/6vEAyIPCgkIkqyzrgYQ4QgSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiTrLOuBhDlCBICGAISAhgDGITr6jMiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoB0g0KAxjtCCLKDTYwODA2MDQwNTI1ZjgwNTUzNDgwMTU2MTAwMTI1NzVmODBmZDViNTA2MTAzNDU4MDYxMDAyMDVmMzk1ZmYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDBmNTc1ZjgwZmQ1YjUwNjAwNDM2MTA2MTAwNGE1NzVmMzU2MGUwMWM4MDYzMTFmOTVmNmYxNDYxMDA0ZTU3ODA2MzNhMzJiNTQ5MTQ2MTAwNmM1NzgwNjNjZmM3MjAwNzE0NjEwMDhhNTc4MDYzZmY0ODlkMzExNDYxMDBhNjU3NWI1ZjgwZmQ1YjYxMDA1NjYxMDBjNDU2NWI2MDQwNTE2MTAwNjM5MTkwNjEwMTUwNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDA3NDYxMDEwMDU2NWI2MDQwNTE2MTAwODE5MTkwNjEwMTgxNTY1YjYwNDA1MTgwOTEwMzkwZjM1YjYxMDBhNDYwMDQ4MDM2MDM4MTAxOTA2MTAwOWY5MTkwNjEwMWY4NTY1YjYxMDExOTU2NWIwMDViNjEwMGFlNjEwMTMyNTY1YjYwNDA1MTYxMDBiYjkxOTA2MTAxNTA1NjViNjA0MDUxODA5MTAzOTBmMzViNWY2MDQwNTE3ZjA4YzM3OWEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MTUyNjAwNDAxNjEwMGY3OTA2MTAyN2Q1NjViNjA0MDUxODA5MTAzOTBmZDViNWY4MDVmODE1NDYxMDEwZTkwNjEwMmM4NTY1YjkxOTA1MDgxOTA1NTkwNTA5MDU2NWI4MDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ZmY1YjVmODBmZDViNWY4MTE1MTU5MDUwOTE5MDUwNTY1YjYxMDE0YTgxNjEwMTM2NTY1YjgyNTI1MDUwNTY1YjVmNjAyMDgyMDE5MDUwNjEwMTYzNWY4MzAxODQ2MTAxNDE1NjViOTI5MTUwNTA1NjViNWY4MTkwNTA5MTkwNTA1NjViNjEwMTdiODE2MTAxNjk1NjViODI1MjUwNTA1NjViNWY2MDIwODIwMTkwNTA2MTAxOTQ1ZjgzMDE4NDYxMDE3MjU2NWI5MjkxNTA1MDU2NWI1ZjgwZmQ1YjVmNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIxNjkwNTA5MTkwNTA1NjViNWY2MTAxYzc4MjYxMDE5ZTU2NWI5MDUwOTE5MDUwNTY1YjYxMDFkNzgxNjEwMWJkNTY1YjgxMTQ2MTAxZTE1NzVmODBmZDViNTA1NjViNWY4MTM1OTA1MDYxMDFmMjgxNjEwMWNlNTY1YjkyOTE1MDUwNTY1YjVmNjAyMDgyODQwMzEyMTU2MTAyMGQ1NzYxMDIwYzYxMDE5YTU2NWI1YjVmNjEwMjFhODQ4Mjg1MDE2MTAxZTQ1NjViOTE1MDUwOTI5MTUwNTA1NjViNWY4MjgyNTI2MDIwODIwMTkwNTA5MjkxNTA1MDU2NWI3ZjUyNjU3NjY1NzI3NDUyNjU2MTczNmY2ZTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1ZjgyMDE1MjUwNTY1YjVmNjEwMjY3NjAwYzgzNjEwMjIzNTY1YjkxNTA2MTAyNzI4MjYxMDIzMzU2NWI2MDIwODIwMTkwNTA5MTkwNTA1NjViNWY2MDIwODIwMTkwNTA4MTgxMDM1ZjgzMDE1MjYxMDI5NDgxNjEwMjViNTY1YjkwNTA5MTkwNTA1NjViN2Y0ZTQ4N2I3MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNWY1MjYwMTE2MDA0NTI2MDI0NWZmZDViNWY2MTAyZDI4MjYxMDE2OTU2NWI5MTUwN2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODIwMzYxMDMwNDU3NjEwMzAzNjEwMjliNTY1YjViNjAwMTgyMDE5MDUwOTE5MDUwNTZmZWEyNjQ2OTcwNjY3MzU4MjIxMjIwYmZmZTRkMzU2YzVjNjUyMWY2NzgxZmIxNDExOGI4ZWUxNDZiMGY0NmYxZjU1ODUxODI2YWIyOWIxZWU3YmMxMTY0NzM2ZjZjNjM0MzAwMDgxNjAwMzM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwmXW+68JFaMedk6NNZDnrwuqhBZDgQkDKyzl31A/mD22iT9rWwbX0kWOiLfiR7RIwGgwIz6yzrgYQ5dLFzAEiDwoJCJOss64GEOUIEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="}]},"nonceUpdatedAfterEvmReversionDueContractLogicEthContractCreate":{"placeholderNum":1134,"encodedItems":[{"b64Body":"Cg8KCQiYrLOuBhD/CBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlozCiISIH5rEovthzi/XpKdQeyGc+kk5oIq3Sj/ZiEEbQRYAfwjEICA6YOx3hZKBQiAztoD","b64Record":"CiUIFhIDGO8IKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDmZKws1hbnzX/bDgaMUHp+K8aRnq+ik+cxQsLyV+j389F+YuYgJ0ZshJB7CEd1pMcaDAjUrLOuBhDJ4PfRAiIPCgkImKyzrgYQ/wgSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIdCgwKAhgCEP//0YfivC0KDQoDGO8IEICA0ofivC0="},{"b64Body":"ChEKCQiZrLOuBhCBCRICGAIgAVpoCiM6IQIzsO+ZlBOI9fcufrAi71ukcwY6EidmqRDeD0cWwDUPlEoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiECM7DvmZQTiPX3Ln6wIu9bpHMGOhInZqkQ3g9HFsA1D5Q=","b64Record":"CgcIFhIDGPAIEjDpK57ChAiWHTIBt4s9gsDaoc2U/DNUapNkL/E0HKDg009FhckY+dMo2OYM1vqSHJwaCwjVrLOuBhDirax2IhEKCQiZrLOuBhCBCRICGAIgASoUYXV0by1jcmVhdGVkIGFjY291bnRSAKoBFF0ADQHYIsx3iTR9/Np3UzzH8RJ9"},{"b64Body":"Cg8KCQiZrLOuBhCBCRICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOckEKPwoMCgIYAhD//9GH4rwtCi8KJSIjOiECM7DvmZQTiPX3Ln6wIu9bpHMGOhInZqkQ3g9HFsA1D5QQgIDSh+K8LQ==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwIs3wJ2OGxgiS2iSyXKV9fxhU17R0coI7WUKYMQLkNeCld6FJqHqJdMGVfMQSkGNkGgsI1ayzrgYQ462sdiIPCgkImayzrgYQgQkSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIdCgwKAhgCEP//0YfivC0KDQoDGPAIEICA0ofivC0="},{"b64Body":"Cg8KCQiZrLOuBhCDCRICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAjV+o2yBhD4/6HRAhptCiISIOskTyAgC0HG8eF6UMY0zD2P1nukyk2QQdJCStMCs72zCiM6IQIt5ODLarYZvBtpzzQzjQMPxjpOic4An6E19cveAntN2goiEiDynAp85s90BaVRkCAqc3w/ePznFJW4ybNU+93L0lg+ICIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGPEIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBIJB1zXNa3OBu2/co0sj3BcGApZPjaSO+TG1wrMEAEdxEZOG6f7Ovdhzw+MWrruhAaDAjVrLOuBhDhnbLbAiIPCgkImayzrgYQgwkSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiarLOuBhCHCRICGAISAhgDGNHAtiwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBLQoDGPEIIiY2MDgwNjA0MDUyMzQ4MDE1NjAwZTU3NWY4MGZkNWI1ZjgwZmRmZQ==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwcXlAKX/Hh8RefisQIor3TlASLjJROfdJLx7/tfOU9aL1TfpdLg+O3wLF/23vTbT5GgwI1qyzrgYQgZCAgAEiDwoJCJqss64GEIcJEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"ChAKCQiarLOuBhCJCRIDGO8IEgIYAxiI8MAVIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA7ABCqcBAvikggEqgKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOIKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0alKIAIMCSfCAgJNggGBAUjSAFWAOV1+A/VtfgP3+wICgJWPpGscnrybiSqT3h1dek6m0Y9Aq4/iY253+/1t4CjegfHh5FVrYJpO7gomkpVHWS2sKZftykiAU5mUTENeV/wAYgMivoCU=","b64Record":"CiAIISocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwK3gN4kYFT6iDW7Yv1PtLujnQmNPk5TBcdedSynL5hde1te6pwkdaIM6uIVebp9oWGgwI1qyzrgYQ4aXi5AIiEAoJCJqss64GEIkJEgMY7wgqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMMjyyBlCKhoCMHgowKkHUPCTCWITYIBgQFI0gBVgDldfgP1bX4D9/moDGPAIegIIAVJGCgkKAhgDEIKzxAEKCQoCGGIQ2sKnKQoKCgMYoAYQ2veSBAoKCgMYoQYQ2veSBAoKCgMY7wgQz6H+KwoKCgMY8AgQv8OTB4oBID8UkzxG8X0bHKaWQvn2vWQfz17FgxrAEFbpmFM0cjQq"}]},"nonceUpdatedAfterEvmReversionDueInsufficientGasEthContractCreate":{"placeholderNum":1138,"encodedItems":[{"b64Body":"Cg8KCQifrLOuBhChCRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlozCiISIG/GVth8z+eUgwX5jOcGuKSk/qlUbwrc/sdozzI/NJ4fEICA6YOx3hZKBQiAztoD","b64Record":"CiUIFhIDGPMIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCVZ1y8Tkx/zknnFdHDvFnvP6DgwHpQ7KCYi8PbuuposakPB8PZG4f1/jpDrsGdEwAaDAjbrLOuBhDNx8eKAiIPCgkIn6yzrgYQoQkSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIdCgwKAhgCEP//0YfivC0KDQoDGPMIEICA0ofivC0="},{"b64Body":"ChEKCQigrLOuBhCjCRICGAIgAVpoCiM6IQNL0DvQ8HNf+Djxe5gVW+9AM6QJ7dWQIbXR8UM+bl1RlUoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiEDS9A70PBzX/g48XuYFVvvQDOkCe3VkCG10fFDPm5dUZU=","b64Record":"CgcIFhIDGPQIEjDBFuKU7S4JTTjj6Zeko6MepM0nAzsYw56v79EFex9xkBbGl4wApzX948EfXiieVPsaCwjcrLOuBhDPqZAvIhEKCQigrLOuBhCjCRICGAIgASoUYXV0by1jcmVhdGVkIGFjY291bnRSAKoBFK+6wTfEKPnhK8ZEw6xRGKf+J0Iy"},{"b64Body":"Cg8KCQigrLOuBhCjCRICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOckEKPwoMCgIYAhD//9GH4rwtCi8KJSIjOiEDS9A70PBzX/g48XuYFVvvQDOkCe3VkCG10fFDPm5dUZUQgIDSh+K8LQ==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwdsMKRGcvnw3rSopQR4Enar2kzoZSkwUxnI77XroUh2Z4sQGU2o8UbMW97G3KCNCTGgsI3KyzrgYQ0KmQLyIPCgkIoKyzrgYQowkSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIdCgwKAhgCEP//0YfivC0KDQoDGPQIEICA0ofivC0="},{"b64Body":"Cg8KCQigrLOuBhClCRICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAjc+o2yBhDdqr+IAhptCiISIF3sgWTzJHHX4oUisNOQrJQO+TGK0F2aApoNw/VXidMZCiM6IQN4ovAJbs8K+ifLhYBjYmD6UrIzX1mDWu/cEpBrB76dYQoiEiDGa8ZpfHFWE743sIucFg68/rD/0ob8E7ReS8XBP7RV/yIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGPUIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBIln9Pfk9BIcf34ixua/nX+D7zCFlJd16BLVhp5ixNCMOfUy/z6LqDvl3BgibRyGoaDAjcrLOuBhDH9IieAiIPCgkIoKyzrgYQpQkSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQihrLOuBhCpCRICGAISAhgDGLGKwy0iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBqgIKAxj1CCKiAjYwODA2MDQwNTIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjEwOGZjNjAwMTkwODExNTAyOTA2MDQwNTE1ZjYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTU4MDE1NjA0NzU3M2Q1ZjgwM2UzZDVmZmQ1YjUwNjAzZTgwNjA1MzVmMzk1ZmYzZmU2MDgwNjA0MDUyNWY4MGZkZmVhMjY0Njk3MDY2NzM1ODIyMTIyMGY3YTRiNWI1MThhNTkxMDk1YWIyYTM3MTYxYmZkZDliZGU2NWNmYjdkNmI0NmI2MzZiOWYzNmM2NjQ0NmM3MjM2NDczNmY2YzYzNDMwMDA4MTgwMDMz","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwdRrLnaHcm/5qdUgcGF82Vy9HKJn0S0zGPt4UTwd8daftB8nEGNTKcWwJGQikpIIZGgsI3ayzrgYQ17afLyIPCgkIoayzrgYQqQkSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"ChAKCQihrLOuBhCrCRIDGPMIEgIYAxjUufsVIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA68CCqYCAvkBIoIBKoCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATiCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdGpSiACC6mCAgLiRYIBgQFIzc///////////////////////////FmEI/GABkIEVApBgQFFfYEBRgIMDgYWIiPGTUFBQUBWAFWBHVz1fgD49X/1bUGA+gGBTXzlf8/5ggGBAUl+A/f6iZGlwZnNYIhIg96S1tRilkQlasqNxYb/dm95lz7fWtGtja582xmRGxyNkc29sY0MACBgAM8ABoNr/zUATiTU4MdFQhVWllqFzj8AgqxKajCJP1n51o2LMoAqfuEy5yEA9zIWkag0n7F3LsNotbEgrEqT1TXrgHMOxGIDIr6Al","b64Record":"CiAIHiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwu4Tk02DKtG0qI0bfcH/VPFQHYdLD55JMDJUMgXut6/v0Ghzr34gjLem7nC4t6D2gGgwI3ayzrgYQ0cCNtQIiEAoJCKGss64GEKsJEgMY8wgqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMPS6/xdCtwEaEElOU1VGRklDSUVOVF9HQVMo4NQDUODUA2KRAWCAYEBSM3P//////////////////////////xZhCPxgAZCBFQKQYEBRX2BAUYCDA4GFiIjxk1BQUFAVgBVgR1c9X4A+PV/9W1BgPoBgU185X/P+YIBgQFJfgP3+omRpcGZzWCISIPektbUYpZEJWrKjcWG/3ZveZc+31rRrY2ufNsZkRscjZHNvbGNDAAgYADNqAxj0CHoCCAFSRgoJCgIYAxCMpcsBCgkKAhhiENja9yUKCgoDGKAGEIL7nQQKCgoDGKEGEIL7nQQKCgoDGPMIEOfakC0KCgoDGPQIEP+a7gKKASA4Rx/SBjklratYsKj83jWDW5f7bajxowN/3/mjbAHxZA=="}]},"nonceUpdatedAfterEvmReversionDueInsufficientTransferAmountEthContractCreate":{"placeholderNum":1142,"encodedItems":[{"b64Body":"Cg8KCQimrLOuBhDDCRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlozCiISILj1BcCoXPr5rNCUKxwtxBEqI3SM0lUknN/Az30lnXfIEICA6YOx3hZKBQiAztoD","b64Record":"CiUIFhIDGPcIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBFFwkrwanhALsjdecl4ogpwbI51W5gzjIac/4RooQwMP1bx5UDzwyPpMNuvG0dHMoaDAjirLOuBhDCwse0ASIPCgkIpqyzrgYQwwkSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIdCgwKAhgCEP//0YfivC0KDQoDGPcIEICA0ofivC0="},{"b64Body":"ChEKCQimrLOuBhDFCRICGAIgAVpoCiM6IQIvFz0lIfm5p38QhNMCIufTxBKJhCqGLe+rwmz+2KU3bEoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiECLxc9JSH5uad/EITTAiLn08QSiYQqhi3vq8Js/tilN2w=","b64Record":"CgcIFhIDGPgIEjDLG3FHLJH/z55DoL5lT98xBOV2fsbpAiB5njvuc3aYTuLpibnigJMjRR1QjWxOWsAaDAjirLOuBhDNp5q2AyIRCgkIpqyzrgYQxQkSAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARSzTRAPutkiiB6j/qiEEFnJ+jmYnw=="},{"b64Body":"Cg8KCQimrLOuBhDFCRICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOckEKPwoMCgIYAhD//9GH4rwtCi8KJSIjOiECLxc9JSH5uad/EITTAiLn08QSiYQqhi3vq8Js/tilN2wQgIDSh+K8LQ==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwdTx/wrZ7/Pj8wHpB35NX4JAC8UZdTce7sx8v03KgdfBZ/8YX+GATvIzi40tsEoFkGgwI4qyzrgYQzqeatgMiDwoJCKass64GEMUJEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SHQoMCgIYAhD//9GH4rwtCg0KAxj4CBCAgNKH4rwt"},{"b64Body":"Cg8KCQinrLOuBhDHCRICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAjj+o2yBhCvv/OyARptCiISINXWkOKFgCdgj6G9d8vtOyRaEOJejEHb0eMPnYLBvGd3CiM6IQLj2o4mTTd1S1ThnSXheXr2hNMU+uus9mcukvEygEtxhQoiEiA+fMQDM+kM364m7S4pKyRD8D7RHxBlS90ugo0x/lhH0yIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGPkIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCMTqp1gKxbXZqpqBN9nmucumNlWI9x2KHFO7SElxdc1g96EAJhUix8Y6bZryMihKMaDAjjrLOuBhDVkIm+ASIPCgkIp6yzrgYQxwkSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQinrLOuBhDLCRICGAISAhgDGLGKwy0iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBqgIKAxj5CCKiAjYwODA2MDQwNTIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjEwOGZjNjAwMTkwODExNTAyOTA2MDQwNTE1ZjYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTU4MDE1NjA0NzU3M2Q1ZjgwM2UzZDVmZmQ1YjUwNjAzZTgwNjA1MzVmMzk1ZmYzZmU2MDgwNjA0MDUyNWY4MGZkZmVhMjY0Njk3MDY2NzM1ODIyMTIyMGY3YTRiNWI1MThhNTkxMDk1YWIyYTM3MTYxYmZkZDliZGU2NWNmYjdkNmI0NmI2MzZiOWYzNmM2NjQ0NmM3MjM2NDczNmY2YzYzNDMwMDA4MTgwMDMz","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwkqFfqEVOiYFjCGYOL2dAYAuZd42rNIKDQuEifanVva8uSk/v9lg+Vmq3aKk62g0fGgwI46yzrgYQwamXxAMiDwoJCKess64GEMsJEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"ChAKCQiorLOuBhDNCRIDGPcIEgIYAxjY9PsVIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA7ACCqcCAvkBI4IBKoCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATiCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdGpSiACDAknwgIC4kWCAYEBSM3P//////////////////////////xZhCPxgAZCBFQKQYEBRX2BAUYCDA4GFiIjxk1BQUFAVgBVgR1c9X4A+PV/9W1BgPoBgU185X/P+YIBgQFJfgP3+omRpcGZzWCISIPektbUYpZEJWrKjcWG/3ZveZc+31rRrY2ufNsZkRscjZHNvbGNDAAgYADPAgKAp/8e8nnifa2WsNJZh4D4qX0V/jCyOI4dEUINWPViwRqAfNG2TDbwa71Q4Rd/8fU5xiGngLclg3F3Dxoi0IaRFJhiAyK+gJQ==","b64Record":"CiAIISocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwcPrtvG8f3eVm26xN1eDLtviXg1mUweNrIdqlsUAMuftBHf4CQN0l0KS97r2hbmjSGgwI5KyzrgYQu7S+zAEiEAoJCKiss64GEM0JEgMY9wgqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOMJj3gxpCqQEaAjB4KMCpB1DwkwlikQFggGBAUjNz//////////////////////////8WYQj8YAGQgRUCkGBAUV9gQFGAgwOBhYiI8ZNQUFBQFYAVYEdXPV+APj1f/VtQYD6AYFNfOV/z/mCAYEBSX4D9/qJkaXBmc1giEiD3pLW1GKWRCVqyo3Fhv92b3mXPt9a0a2NrnzbGZEbHI2Rzb2xjQwAIGAAzagMY+Ah6AggBUkYKCQoCGAMQhKzLAQoJCgIYYhCMtoAqCgoKAxigBhCQhp4ECgoKAxihBhCQhp4ECgoKAxj3CBDvqvQsCgoKAxj4CBC/w5MHigEgKpWlDiNFE2LCB5njg5sJDxR8FabIAdhoKTZ1uYKH4YI="}]},"nonceUpdatedAfterEvmReversionDueSendingValueToEthereumPrecompileEthContractCreate":{"placeholderNum":1146,"encodedItems":[{"b64Body":"Cg8KCQitrLOuBhDlCRICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlozCiISIO+r6DwZv9b2S4tmGuca4FO74FgHX20gF3RBA6FJzHp9EICA6YOx3hZKBQiAztoD","b64Record":"CiUIFhIDGPsIKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBCBlVamGT9smSYLuHWK6Ft69GSXgFzBrVFgF7hS6S55WfSjZtuBKbW7Wwurr/XTjoaCwjprLOuBhCQhYRtIg8KCQitrLOuBhDlCRICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUh0KDAoCGAIQ///Rh+K8LQoNCgMY+wgQgIDSh+K8LQ=="},{"b64Body":"ChEKCQitrLOuBhDnCRICGAIgAVpoCiM6IQJQe6roNQuM6uEG36MQTl9gm36T6zmRROetJ3jmEyXclUoFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiECUHuq6DULjOrhBt+jEE5fYJt+k+s5kUTnrSd45hMl3JU=","b64Record":"CgcIFhIDGPwIEjC/CUjVctU59Iw5abVtBAzZzhIDVngYwRoFoezrgyw4b96TlN+PLq2pXrOawuI505caDAjprLOuBhDR5tfRAiIRCgkIrayzrgYQ5wkSAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARTI4Rg/YTs94D4hzCPOi/xQsGyP/w=="},{"b64Body":"Cg8KCQitrLOuBhDnCRICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOckEKPwoMCgIYAhD//9GH4rwtCi8KJSIjOiECUHuq6DULjOrhBt+jEE5fYJt+k+s5kUTnrSd45hMl3JUQgIDSh+K8LQ==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwoPrVSAHbytGFxxzEM/HcFL87NjXCcvsBhntF9R4O146kWMRU6QIRyMoOaxZFsoV8GgwI6ayzrgYQ0ubX0QIiDwoJCK2ss64GEOcJEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SHQoMCgIYAhD//9GH4rwtCg0KAxj8CBCAgNKH4rwt"},{"b64Body":"Cg8KCQiurLOuBhDpCRICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjgESCwjq+o2yBhDBv9NeGm0KIhIgTMJp9fm6JPZB1SD9TjFmGXJme0B+HLgm5uVVjh0szo4KIzohAqwy1Vkertl5h997RLQLLReaZ58HiApd7Uq1o1c1RqYfCiISICSLyA+8sD63cUWy6rsTRt6I85bISLFNngAwnInghOabIgxIZWxsbyBXb3JsZCEqADIA","b64Record":"CiUIFhoDGP0IKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDrJU1pKwKGjwP92AzUOlps0hEzZsWr6TgEQIHl4r7loAfVZejiUlTRbXflvfIj+3caCwjqrLOuBhD1wuF2Ig8KCQiurLOuBhDpCRICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgA="},{"b64Body":"Cg8KCQiurLOuBhDtCRICGAISAhgDGOW6ui4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBgAQKAxj9CCL4AzYwODA2MDQwNTI1ZjYwMDI3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYwMDE2MDQwNTE2MDI5OTA2MGEwNTY1YjVmNjA0MDUxODA4MzAzODE4NTg3NWFmMTkyNTA1MDUwM2Q4MDVmODExNDYwNjE1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNWY2MDIwODQwMTNlNjA2NjU2NWI2MDYwOTE1MDViNTA1MDkwNTA4MDYwNzI1NzVmODBmZDViNTA2MGIyNTY1YjVmODE5MDUwOTI5MTUwNTA1NjViNTA1NjViNWY2MDhkNWY4MzYwNzc1NjViOTE1MDYwOTY4MjYwODE1NjViNWY4MjAxOTA1MDkxOTA1MDU2NWI1ZjYwYTg4MjYwODQ1NjViOTE1MDgxOTA1MDkxOTA1MDU2NWI2MDNlODA2MTAwYmU1ZjM5NWZmM2ZlNjA4MDYwNDA1MjVmODBmZGZlYTI2NDY5NzA2NjczNTgyMjEyMjBjZmQ3NGVjNDMzMjYwYTI1NjMwNmVmMWRhNWM3NzA4NjIyNzMxNmQzNTM4YWJkYWM2YjQ2YmFhM2Q1Mzc5NjQxNjQ3MzZmNmM2MzQzMDAwODE4MDAzMw==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw/CY++g0BuMvRN1J2++/KeVes2XDWkA248FVkgQ86Kn/YnvrXilqrjf2YOCH698srGgwI6qyzrgYQjber2wIiDwoJCK6ss64GEO0JEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"ChAKCQivrLOuBhDvCRIDGPsIEgIYAxjeyK8WIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA6ADCpcDAvkBk4IBKoCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATiCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdGpSiACDAknwgIUCVAvkALj8YIBgQFJfYAJz//////////////////////////8WYAFgQFFgKZBgoFZbX2BAUYCDA4GFh1rxklBQUD2AX4EUYGFXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPV9gIIQBPmBmVltgYJFQW1BQkFCAYHJXX4D9W1BgslZbX4GQUJKRUFBWW1BWW19gjV+DYHdWW5FQYJaCYIFWW1+CAZBQkZBQVltfYKiCYIRWW5FQgZBQkZBQVltgPoBhAL5fOV/z/mCAYEBSX4D9/qJkaXBmc1giEiDP107EMyYKJWMG7x2lx3CGInMW01OKvaxrRrqj1TeWQWRzb2xjQwAIGAAzwICg0gW1GHpDxZlAuAm61WHyDIhG7T1oKG+2CdSDIaHN7GmgTuniP0dF8WsmTMg6gDQo/WDuzuSDfwXop8MCgPRIaugYgMivoCU=","b64Record":"CiAIISocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwq46SEKAFSf2O+fF/2/jUArchdCXMUZx0wVdktfpV2ZXCSHuOrPtf+wdHBzlrpHbNGgsI66yzrgYQg9nyfyIQCgkIr6yzrgYQ7wkSAxj7CCogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4wvqC0G0KWAhoCMHgooIoJUPCTCVgBYvwBYIBgQFJfYAJz//////////////////////////8WYAFgQFFgKZBgoFZbX2BAUYCDA4GFh1rxklBQUD2AX4EUYGFXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPV9gIIQBPmBmVltgYJFQW1BQkFCAYHJXX4D9W1BgslZbX4GQUJKRUFBWW1BWW19gjV+DYHdWW5FQYJaCYIFWW1+CAZBQkZBQVltfYKiCYIRWW5FQgZBQkZBQVltgPoBhAL5fOV/z/mCAYEBSX4D9/qJkaXBmc1giEiDP107EMyYKJWMG7x2lx3CGInMW01OKvaxrRrqj1TeWQWRzb2xjQwAIGAAzagMY/Ah6AggBUkYKCQoCGAMQ9rXRAQoJCgIYYhDGxccsCgoKAxigBhDg4qcECgoKAxihBhDg4qcECgoKAxj7CBC7/dQvCgoKAxj8CBC/w5MHigEg6StcTqv1pCAB+B6oL1PUHAjWd6x8r+aAvbDBJdP6HXY="}]},"nonceUpdatedAfterSuccessfulEthereumContractCreation":{"placeholderNum":1150,"encodedItems":[{"b64Body":"Cg8KCQi0rLOuBhCHChICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlozCiISICYVYvF2ALc0pEI5Qddx85jlcnIo5Yi0bYYpKIcGQm/pEICA6YOx3hZKBQiAztoD","b64Record":"CiUIFhIDGP8IKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBda04FFph1v4EYc33RAWbFMyYf2rfS5qfzWZzjxZVg0pDYcLcFP0716Wmc433mym0aCwjwrLOuBhCN9dMgIg8KCQi0rLOuBhCHChICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUh0KDAoCGAIQ///Rh+K8LQoNCgMY/wgQgIDSh+K8LQ=="},{"b64Body":"ChEKCQi0rLOuBhCJChICGAIgAVpoCiM6IQKrT32X0N8SVPoWESCZ6D11UxuHyWE/xzA0cIc44D8x+0oFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50kgEjOiECq099l9DfElT6FhEgmeg9dVMbh8lhP8cwNHCHOOA/Mfs=","b64Record":"CgcIFhIDGIAJEjCwwLsCWBSR9FX+kdNUUHJuZb6M7wK7Po90i9b3Q4rAJSmUPoe/LkWafeStHZFyWkwaDAjwrLOuBhCt2eiFAiIRCgkItKyzrgYQiQoSAhgCIAEqFGF1dG8tY3JlYXRlZCBhY2NvdW50UgCqARSP2nWd6RwqMXuq8MvlQgY5fOdMsw=="},{"b64Body":"Cg8KCQi0rLOuBhCJChICGAISAhgDGKqQBSICCHgyIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOckEKPwoMCgIYAhD//9GH4rwtCi8KJSIjOiECq099l9DfElT6FhEgmeg9dVMbh8lhP8cwNHCHOOA/MfsQgIDSh+K8LQ==","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwGBzRoGnBsjgH5J1VBvNqhuiJX+UDvucGngqHmLrcJfVPkwPkIhCjjb+OyKOXQardGgwI8KyzrgYQrtnohQIiDwoJCLSss64GEIkKEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SHQoMCgIYAhD//9GH4rwtCg0KAxiACRCAgNKH4rwt"},{"b64Body":"Cg8KCQi1rLOuBhCLChICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjgESCwjx+o2yBhCNrJQLGm0KIhIgn/7Zm3PIclRKFaYyyX/5EJSW47TbLbGd3rY0DP+PmEIKIzohAmtAfXYLF+SwTm/MZrd9lgfBJ+GNhRS/rF4Tj1TUeRu/CiISIHTDTSTVsaiPxFVDk3oO2NaGOkYoe78b0V3LZTLS7NnoIgxIZWxsbyBXb3JsZCEqADIA","b64Record":"CiUIFhoDGIEJKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDQu0jP5f0Bo/GUD0qn36XHcBKVHOzjkHSYuUQHvoJCTUW7ncotadPO4BmPqCncxKwaCwjxrLOuBhDppLoNIg8KCQi1rLOuBhCLChICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgA="},{"b64Body":"Cg8KCQi1rLOuBhCPChICGAISAhgDGIydjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxiBCSKAIDYwODA2MDQwNTI2MTBjOTI4MDYxMDAxMTVmMzk1ZmYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDBmNTc1ZjgwZmQ1YjUwNjAwNDM2MTA2MTAwYTc1NzVmMzU2MGUwMWM4MDYzYTAzZmE3ZTMxMTYxMDA2ZjU3ODA2M2EwM2ZhN2UzMTQ2MTAxNGI1NzgwNjNhNmEzYTMwMDE0NjEwMTY3NTc4MDYzY2MxOWYxM2YxNDYxMDE5NzU3ODA2M2NmYzcyMDA3MTQ2MTAxYjM1NzgwNjNkZDczMTM5NTE0NjEwMWNmNTc4MDYzZTZkMjUyNDUxNDYxMDFmZjU3NjEwMGE3NTY1YjgwNjMyZGExYjEzMDE0NjEwMGFiNTc4MDYzM2U2NTdkMGExNDYxMDBjNzU3ODA2MzdhMjIzYTc3MTQ2MTAwZTM1NzgwNjM3ZWM4NmY4OTE0NjEwMGZmNTc4MDYzOTBmMThkODMxNDYxMDExYjU3NWI1ZjgwZmQ1YjYxMDBjNTYwMDQ4MDM2MDM4MTAxOTA2MTAwYzA5MTkwNjEwYThjNTY1YjYxMDIxYjU2NWIwMDViNjEwMGUxNjAwNDgwMzYwMzgxMDE5MDYxMDBkYzkxOTA2MTBhOGM1NjViNjEwMjg1NTY1YjAwNWI2MTAwZmQ2MDA0ODAzNjAzODEwMTkwNjEwMGY4OTE5MDYxMGE4YzU2NWI2MTAzNzA1NjViMDA1YjYxMDExOTYwMDQ4MDM2MDM4MTAxOTA2MTAxMTQ5MTkwNjEwYThjNTY1YjYxMDQ1YTU2NWIwMDViNjEwMTM1NjAwNDgwMzYwMzgxMDE5MDYxMDEzMDkxOTA2MTBhOGM1NjViNjEwNTQ1NTY1YjYwNDA1MTYxMDE0MjkxOTA2MTBhY2Y1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMTY1NjAwNDgwMzYwMzgxMDE5MDYxMDE2MDkxOTA2MTBiMjM1NjViNjEwNjY3NTY1YjAwNWI2MTAxODE2MDA0ODAzNjAzODEwMTkwNjEwMTdjOTE5MDYxMGE4YzU2NWI2MTA2YWY1NjViNjA0MDUxNjEwMThlOTE5MDYxMGFjZjU2NWI2MDQwNTE4MDkxMDM5MGYzNWI2MTAxYjE2MDA0ODAzNjAzODEwMTkwNjEwMWFjOTE5MDYxMGE4YzU2NWI2MTA3ZDA1NjViMDA1YjYxMDFjZDYwMDQ4MDM2MDM4MTAxOTA2MTAxYzg5MTkwNjEwYjIzNTY1YjYxMDhiYjU2NWIwMDViNjEwMWU5NjAwNDgwMzYwMzgxMDE5MDYxMDFlNDkxOTA2MTBhOGM1NjViNjEwOGQ0NTY1YjYwNDA1MTYxMDFmNjkxOTA2MTBhY2Y1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMjE5NjAwNDgwMzYwMzgxMDE5MDYxMDIxNDkxOTA2MTBiMjM1NjViNjEwOWY1NTY1YjAwNWI4MDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjAwMTYwNDA1MTYxMDI0MDkwNjEwYjdiNTY1YjVmNjA0MDUxODA4MzAzODE4NTg3NWFmMTkyNTA1MDUwM2Q4MDVmODExNDYxMDI3YTU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q1ZjYwMjA4NDAxM2U2MTAyN2Y1NjViNjA2MDkxNTA1YjUwNTA1MDUwNTY1YjgwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MDQwNTE2MDI0MDE2MDQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI3ZmZmNDg5ZDMxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjEwMzJjOTE5MDYxMGJmMTU2NWI1ZjYwNDA1MTgwODMwMzgxNWY4NjVhZjE5MTUwNTAzZDgwNWY4MTE0NjEwMzY1NTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDVmNjAyMDg0MDEzZTYxMDM2YTU2NWI2MDYwOTE1MDViNTA1MDUwNTA1NjViODA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYwNDA1MTYwMjQwMTYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjdmNDc3Mzg3ZDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTA0MTc5MTkwNjEwYmYxNTY1YjVmNjA0MDUxODA4MzAzODE4NTVhZmE5MTUwNTAzZDgwNWY4MTE0NjEwNDRmNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDVmNjAyMDg0MDEzZTYxMDQ1NDU2NWI2MDYwOTE1MDViNTA1MDUwNTA1NjViODA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYwNDA1MTYwMjQwMTYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjdmMTFmOTVmNmYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTA1MDE5MTkwNjEwYmYxNTY1YjVmNjA0MDUxODA4MzAzODE1Zjg2NWFmMTkxNTA1MDNkODA1ZjgxMTQ2MTA1M2E1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNWY2MDIwODQwMTNlNjEwNTNmNTY1YjYwNjA5MTUwNWI1MDUwNTA1MDU2NWI1ZjgwNWY4MzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjA0MDUxNjAyNDAxNjA0MDUxNjAyMDgxODMwMzAzODE1MjkwNjA0MDUyN2YzYTMyYjU0OTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMDVlZjkxOTA2MTBiZjE1NjViNWY2MDQwNTE4MDgzMDM4MTVmODY1YWYxOTE1MDUwM2Q4MDVmODExNDYxMDYyODU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q1ZjYwMjA4NDAxM2U2MTA2MmQ1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA4MTgwMTU2MTA2M2Y1NzUwNWY4MTUxMTE1YjYxMDY0OTU3NWY2MTA2NWU1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTA2NWQ5MTkwNjEwYzMxNTY1YjViOTI1MDUwNTA5MTkwNTA1NjViODA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYxMDhmYzYwMDE5MDgxMTUwMjkwNjA0MDUxNWY2MDQwNTE4MDgzMDM4MTg1ODg4OGYxOTM1MDUwNTA1MDE1ODAxNTYxMDZhYjU3M2Q1ZjgwM2UzZDVmZmQ1YjUwNTA1NjViNWY4MDVmODM3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYwNDA1MTYwMjQwMTYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjdmM2EzMmI1NDkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTA3NTk5MTkwNjEwYmYxNTY1YjVmNjA0MDUxODA4MzAzODE4NTVhZmE5MTUwNTAzZDgwNWY4MTE0NjEwNzkxNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDVmNjAyMDg0MDEzZTYxMDc5NjU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxODAxNTYxMDdhODU3NTA1ZjgxNTExMTViNjEwN2IyNTc1ZjYxMDdjNzU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMDdjNjkxOTA2MTBjMzE1NjViNWI5MjUwNTA1MDkxOTA1MDU2NWI4MDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjA0MDUxNjAyNDAxNjA=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwa+8N8KL4Y+reO1Vqu/1NoG7FaIuJDcnTamCbd7539pCzSkyss7TzRetIaIMQqOURGgwI8ayzrgYQxun7jgIiDwoJCLWss64GEI8KEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQi2rLOuBhCVChICGAISAhgDGLblozciAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBzhISAxiBCSLGEjQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI3ZjQ3NzM4N2QxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjEwODc3OTE5MDYxMGJmMTU2NWI1ZjYwNDA1MTgwODMwMzgxNWY4NjVhZjE5MTUwNTAzZDgwNWY4MTE0NjEwOGIwNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDVmNjAyMDg0MDEzZTYxMDhiNTU2NWI2MDYwOTE1MDViNTA1MDUwNTA1NjViODA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNmZmNWI1ZjgwNWY4MzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjA0MDUxNjAyNDAxNjA0MDUxNjAyMDgxODMwMzAzODE1MjkwNjA0MDUyN2YzYTMyYjU0OTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMDk3ZTkxOTA2MTBiZjE1NjViNWY2MDQwNTE4MDgzMDM4MTg1NWFmNDkxNTA1MDNkODA1ZjgxMTQ2MTA5YjY1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNWY2MDIwODQwMTNlNjEwOWJiNTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE4MDE1NjEwOWNkNTc1MDVmODE1MTExNWI2MTA5ZDc1NzVmNjEwOWVjNTY1YjgwODA2MDIwMDE5MDUxODEwMTkwNjEwOWViOTE5MDYxMGMzMTU2NWI1YjkyNTA1MDUwOTE5MDUwNTY1YjgwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MTA4ZmM2MDAxOTA4MTE1MDI5MDYwNDA1MTVmNjA0MDUxODA4MzAzODE4NTg4ODhmMTkzNTA1MDUwNTA1MDUwNTY1YjVmODBmZDViNWY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MjE2OTA1MDkxOTA1MDU2NWI1ZjYxMGE1YjgyNjEwYTMyNTY1YjkwNTA5MTkwNTA1NjViNjEwYTZiODE2MTBhNTE1NjViODExNDYxMGE3NTU3NWY4MGZkNWI1MDU2NWI1ZjgxMzU5MDUwNjEwYTg2ODE2MTBhNjI1NjViOTI5MTUwNTA1NjViNWY2MDIwODI4NDAzMTIxNTYxMGFhMTU3NjEwYWEwNjEwYTJlNTY1YjViNWY2MTBhYWU4NDgyODUwMTYxMGE3ODU2NWI5MTUwNTA5MjkxNTA1MDU2NWI1ZjgxOTA1MDkxOTA1MDU2NWI2MTBhYzk4MTYxMGFiNzU2NWI4MjUyNTA1MDU2NWI1ZjYwMjA4MjAxOTA1MDYxMGFlMjVmODMwMTg0NjEwYWMwNTY1YjkyOTE1MDUwNTY1YjVmNjEwYWYyODI2MTBhMzI1NjViOTA1MDkxOTA1MDU2NWI2MTBiMDI4MTYxMGFlODU2NWI4MTE0NjEwYjBjNTc1ZjgwZmQ1YjUwNTY1YjVmODEzNTkwNTA2MTBiMWQ4MTYxMGFmOTU2NWI5MjkxNTA1MDU2NWI1ZjYwMjA4Mjg0MDMxMjE1NjEwYjM4NTc2MTBiMzc2MTBhMmU1NjViNWI1ZjYxMGI0NTg0ODI4NTAxNjEwYjBmNTY1YjkxNTA1MDkyOTE1MDUwNTY1YjVmODE5MDUwOTI5MTUwNTA1NjViNTA1NjViNWY2MTBiNjY1ZjgzNjEwYjRlNTY1YjkxNTA2MTBiNzE4MjYxMGI1ODU2NWI1ZjgyMDE5MDUwOTE5MDUwNTY1YjVmNjEwYjg1ODI2MTBiNWI1NjViOTE1MDgxOTA1MDkxOTA1MDU2NWI1ZjgxNTE5MDUwOTE5MDUwNTY1YjVmNWI4MzgxMTAxNTYxMGJiNjU3ODA4MjAxNTE4MTg0MDE1MjYwMjA4MTAxOTA1MDYxMGI5YjU2NWI1Zjg0ODQwMTUyNTA1MDUwNTA1NjViNWY2MTBiY2I4MjYxMGI4ZjU2NWI2MTBiZDU4MTg1NjEwYjRlNTY1YjkzNTA2MTBiZTU4MTg1NjAyMDg2MDE2MTBiOTk1NjViODA4NDAxOTE1MDUwOTI5MTUwNTA1NjViNWY2MTBiZmM4Mjg0NjEwYmMxNTY1YjkxNTA4MTkwNTA5MjkxNTA1MDU2NWI2MTBjMTA4MTYxMGFiNzU2NWI4MTE0NjEwYzFhNTc1ZjgwZmQ1YjUwNTY1YjVmODE1MTkwNTA2MTBjMmI4MTYxMGMwNzU2NWI5MjkxNTA1MDU2NWI1ZjYwMjA4Mjg0MDMxMjE1NjEwYzQ2NTc2MTBjNDU2MTBhMmU1NjViNWI1ZjYxMGM1Mzg0ODI4NTAxNjEwYzFkNTY1YjkxNTA1MDkyOTE1MDUwNTZmZWEyNjQ2OTcwNjY3MzU4MjIxMjIwMWQ1NzM2ZDRiZjIyMTllZmU2NzcyYThiMWZjZWNlM2JhZTYzNDM1NDc1NzIzMWRhYjZiODJlZmEzNzMzYjY1YTY0NzM2ZjZjNjM0MzAwMDgxNjAwMzM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwqSi6nndQxqCqrjmiIX048a2YuloZ0Hg0zxTfSLm07NBqoVejaFuGlrQCVsrDj1YcGgsI8qyzrgYQ6ML3MyIPCgkItqyzrgYQlQoSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"ChAKCQi2rLOuBhCXChIDGP8IEgIYAxixjrgVIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo6SA6IBCpQBAviRggEqgKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOIKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0alKIAIMCSfCAgIDAgKBTn2IHob8Z085J+eQrWNEwPJMakEnthRrpHgteCnL80KAZXPfcluYwMBCj2eCYXJAFsjidl3v8byhQuIP/5yCRwBIDGIEJGIDIr6Al","b64Record":"CiUIFiIDGIIJKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjAfq+IxTDCusGx7YJZ3DmM35H0tQIswikAHwP4rEB1tQSGKTIUE4kng59EpFFtyKj4aDAjyrLOuBhCplcOYAiIQCgkItqyzrgYQlwoSAxj/CCogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo4w8ZDAGUL6NAoDGIIJEpIZYIBgQFI0gBVhAA9XX4D9W1BgBDYQYQCnV181YOAcgGOgP6fjEWEAb1eAY6A/p+MUYQFLV4BjpqOjABRhAWdXgGPMGfE/FGEBl1eAY8/HIAcUYQGzV4Bj3XMTlRRhAc9XgGPm0lJFFGEB/1dhAKdWW4BjLaGxMBRhAKtXgGM+ZX0KFGEAx1eAY3oiOncUYQDjV4BjfshviRRhAP9XgGOQ8Y2DFGEBG1dbX4D9W2EAxWAEgDYDgQGQYQDAkZBhCoxWW2ECG1ZbAFthAOFgBIA2A4EBkGEA3JGQYQqMVlthAoVWWwBbYQD9YASANgOBAZBhAPiRkGEKjFZbYQNwVlsAW2EBGWAEgDYDgQGQYQEUkZBhCoxWW2EEWlZbAFthATVgBIA2A4EBkGEBMJGQYQqMVlthBUVWW2BAUWEBQpGQYQrPVltgQFGAkQOQ81thAWVgBIA2A4EBkGEBYJGQYQsjVlthBmdWWwBbYQGBYASANgOBAZBhAXyRkGEKjFZbYQavVltgQFFhAY6RkGEKz1ZbYEBRgJEDkPNbYQGxYASANgOBAZBhAayRkGEKjFZbYQfQVlsAW2EBzWAEgDYDgQGQYQHIkZBhCyNWW2EIu1ZbAFthAelgBIA2A4EBkGEB5JGQYQqMVlthCNRWW2BAUWEB9pGQYQrPVltgQFGAkQOQ81thAhlgBIA2A4EBkGECFJGQYQsjVlthCfVWWwBbgHP//////////////////////////xZgAWBAUWECQJBhC3tWW19gQFGAgwOBhYda8ZJQUFA9gF+BFGECeldgQFGRUGAfGWA/PQEWggFgQFI9glI9X2AghAE+YQJ/VltgYJFQW1BQUFBWW4Bz//////////////////////////8WYEBRYCQBYEBRYCCBgwMDgVKQYEBSf/9InTEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhAyyRkGEL8VZbX2BAUYCDA4FfhlrxkVBQPYBfgRRhA2VXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPV9gIIQBPmEDalZbYGCRUFtQUFBQVluAc///////////////////////////FmBAUWAkAWBAUWAggYMDA4FSkGBAUn9Hc4fRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQQXkZBhC/FWW19gQFGAgwOBhVr6kVBQPYBfgRRhBE9XYEBRkVBgHxlgPz0BFoIBYEBSPYJSPV9gIIQBPmEEVFZbYGCRUFtQUFBQVluAc///////////////////////////FmBAUWAkAWBAUWAggYMDA4FSkGBAUn8R+V9vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQUBkZBhC/FWW19gQFGAgwOBX4Za8ZFQUD2AX4EUYQU6V2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1fYCCEAT5hBT9WW2BgkVBbUFBQUFZbX4Bfg3P//////////////////////////xZgQFFgJAFgQFFgIIGDAwOBUpBgQFJ/OjK1SQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEF75GQYQvxVltfYEBRgIMDgV+GWvGRUFA9gF+BFGEGKFdgQFGRUGAfGWA/PQEWggFgQFI9glI9X2AghAE+YQYtVltgYJFQW1CRUJFQgYAVYQY/V1BfgVERW2EGSVdfYQZeVluAgGAgAZBRgQGQYQZdkZBhDDFWW1uSUFBQkZBQVluAc///////////////////////////FmEI/GABkIEVApBgQFFfYEBRgIMDgYWIiPGTUFBQUBWAFWEGq1c9X4A+PV/9W1BQVltfgF+Dc///////////////////////////FmBAUWAkAWBAUWAggYMDA4FSkGBAUn86MrVJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQdZkZBhC/FWW19gQFGAgwOBhVr6kVBQPYBfgRRhB5FXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPV9gIIQBPmEHllZbYGCRUFtQkVCRUIGAFWEHqFdQX4FREVthB7JXX2EHx1ZbgIBgIAGQUYEBkGEHxpGQYQwxVltbklBQUJGQUFZbgHP//////////////////////////xZgQFFgJAFgQFFgIIGDAwOBUpBgQFJ/R3OH0QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEId5GQYQvxVltfYEBRgIMDgV+GWvGRUFA9gF+BFGEIsFdgQFGRUGAfGWA/PQEWggFgQFI9glI9X2AghAE+YQi1VltgYJFQW1BQUFBWW4Bz//////////////////////////8W/1tfgF+Dc///////////////////////////FmBAUWAkAWBAUWAggYMDA4FSkGBAUn86MrVJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQl+kZBhC/FWW19gQFGAgwOBhVr0kVBQPYBfgRRhCbZXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPV9gIIQBPmEJu1ZbYGCRUFtQkVCRUIGAFWEJzVdQX4FREVthCddXX2EJ7FZbgIBgIAGQUYEBkGEJ65GQYQwxVltbklBQUJGQUFZbgHP//////////////////////////xZhCPxgAZCBFQKQYEBRX2BAUYCDA4GFiIjxk1BQUFBQUFZbX4D9W19z//////////////////////////+CFpBQkZBQVltfYQpbgmEKMlZbkFCRkFBWW2EKa4FhClFWW4EUYQp1V1+A/VtQVltfgTWQUGEKhoFhCmJWW5KRUFBWW19gIIKEAxIVYQqhV2EKoGEKLlZbW19hCq6EgoUBYQp4VluRUFCSkVBQVltfgZBQkZBQVlthCsmBYQq3VluCUlBQVltfYCCCAZBQYQriX4MBhGEKwFZbkpFQUFZbX2EK8oJhCjJWW5BQkZBQVlthCwKBYQroVluBFGELDFdfgP1bUFZbX4E1kFBhCx2BYQr5VluSkVBQVltfYCCChAMSFWELOFdhCzdhCi5WW1tfYQtFhIKFAWELD1ZbkVBQkpFQUFZbX4GQUJKRUFBWW1BWW19hC2Zfg2ELTlZbkVBhC3GCYQtYVltfggGQUJGQUFZbX2ELhYJhC1tWW5FQgZBQkZBQVltfgVGQUJGQUFZbX1uDgRAVYQu2V4CCAVGBhAFSYCCBAZBQYQubVltfhIQBUlBQUFBWW19hC8uCYQuPVlthC9WBhWELTlZbk1BhC+WBhWAghgFhC5lWW4CEAZFQUJKRUFBWW19hC/yChGELwVZbkVCBkFCSkVBQVlthDBCBYQq3VluBFGEMGldfgP1bUFZbX4FRkFBhDCuBYQwHVluSkVBQVltfYCCChAMSFWEMRldhDEVhCi5WW1tfYQxThIKFAWEMHVZbkVBQkpFQUFb+omRpcGZzWCISIB1XNtS/Ihnv5ncqix/OzjuuY0NUdXIx2ra4Lvo3M7ZaZHNvbGNDAAgWADMigAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMCpBzoDGIIJShYKFIHUrdD2VUVM2l56S3uvSl3q83AIUPCTCWKjGWCAYEBSYQySgGEAEV85X/P+YIBgQFI0gBVhAA9XX4D9W1BgBDYQYQCnV181YOAcgGOgP6fjEWEAb1eAY6A/p+MUYQFLV4BjpqOjABRhAWdXgGPMGfE/FGEBl1eAY8/HIAcUYQGzV4Bj3XMTlRRhAc9XgGPm0lJFFGEB/1dhAKdWW4BjLaGxMBRhAKtXgGM+ZX0KFGEAx1eAY3oiOncUYQDjV4BjfshviRRhAP9XgGOQ8Y2DFGEBG1dbX4D9W2EAxWAEgDYDgQGQYQDAkZBhCoxWW2ECG1ZbAFthAOFgBIA2A4EBkGEA3JGQYQqMVlthAoVWWwBbYQD9YASANgOBAZBhAPiRkGEKjFZbYQNwVlsAW2EBGWAEgDYDgQGQYQEUkZBhCoxWW2EEWlZbAFthATVgBIA2A4EBkGEBMJGQYQqMVlthBUVWW2BAUWEBQpGQYQrPVltgQFGAkQOQ81thAWVgBIA2A4EBkGEBYJGQYQsjVlthBmdWWwBbYQGBYASANgOBAZBhAXyRkGEKjFZbYQavVltgQFFhAY6RkGEKz1ZbYEBRgJEDkPNbYQGxYASANgOBAZBhAayRkGEKjFZbYQfQVlsAW2EBzWAEgDYDgQGQYQHIkZBhCyNWW2EIu1ZbAFthAelgBIA2A4EBkGEB5JGQYQqMVlthCNRWW2BAUWEB9pGQYQrPVltgQFGAkQOQ81thAhlgBIA2A4EBkGECFJGQYQsjVlthCfVWWwBbgHP//////////////////////////xZgAWBAUWECQJBhC3tWW19gQFGAgwOBhYda8ZJQUFA9gF+BFGECeldgQFGRUGAfGWA/PQEWggFgQFI9glI9X2AghAE+YQJ/VltgYJFQW1BQUFBWW4Bz//////////////////////////8WYEBRYCQBYEBRYCCBgwMDgVKQYEBSf/9InTEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhAyyRkGEL8VZbX2BAUYCDA4FfhlrxkVBQPYBfgRRhA2VXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPV9gIIQBPmEDalZbYGCRUFtQUFBQVluAc///////////////////////////FmBAUWAkAWBAUWAggYMDA4FSkGBAUn9Hc4fRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQQXkZBhC/FWW19gQFGAgwOBhVr6kVBQPYBfgRRhBE9XYEBRkVBgHxlgPz0BFoIBYEBSPYJSPV9gIIQBPmEEVFZbYGCRUFtQUFBQVluAc///////////////////////////FmBAUWAkAWBAUWAggYMDA4FSkGBAUn8R+V9vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQUBkZBhC/FWW19gQFGAgwOBX4Za8ZFQUD2AX4EUYQU6V2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1fYCCEAT5hBT9WW2BgkVBbUFBQUFZbX4Bfg3P//////////////////////////xZgQFFgJAFgQFFgIIGDAwOBUpBgQFJ/OjK1SQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEF75GQYQvxVltfYEBRgIMDgV+GWvGRUFA9gF+BFGEGKFdgQFGRUGAfGWA/PQEWggFgQFI9glI9X2AghAE+YQYtVltgYJFQW1CRUJFQgYAVYQY/V1BfgVERW2EGSVdfYQZeVluAgGAgAZBRgQGQYQZdkZBhDDFWW1uSUFBQkZBQVluAc///////////////////////////FmEI/GABkIEVApBgQFFfYEBRgIMDgYWIiPGTUFBQUBWAFWEGq1c9X4A+PV/9W1BQVltfgF+Dc///////////////////////////FmBAUWAkAWBAUWAggYMDA4FSkGBAUn86MrVJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQdZkZBhC/FWW19gQFGAgwOBhVr6kVBQPYBfgRRhB5FXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPV9gIIQBPmEHllZbYGCRUFtQkVCRUIGAFWEHqFdQX4FREVthB7JXX2EHx1ZbgIBgIAGQUYEBkGEHxpGQYQwxVltbklBQUJGQUFZbgHP//////////////////////////xZgQFFgJAFgQFFgIIGDAwOBUpBgQFJ/R3OH0QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEId5GQYQvxVltfYEBRgIMDgV+GWvGRUFA9gF+BFGEIsFdgQFGRUGAfGWA/PQEWggFgQFI9glI9X2AghAE+YQi1VltgYJFQW1BQUFBWW4Bz//////////////////////////8W/1tfgF+Dc///////////////////////////FmBAUWAkAWBAUWAggYMDA4FSkGBAUn86MrVJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQl+kZBhC/FWW19gQFGAgwOBhVr0kVBQPYBfgRRhCbZXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPV9gIIQBPmEJu1ZbYGCRUFtQkVCRUIGAFWEJzVdQX4FREVthCddXX2EJ7FZbgIBgIAGQUYEBkGEJ65GQYQwxVltbklBQUJGQUFZbgHP//////////////////////////xZhCPxgAZCBFQKQYEBRX2BAUYCDA4GFiIjxk1BQUFBQUFZbX4D9W19z//////////////////////////+CFpBQkZBQVltfYQpbgmEKMlZbkFCRkFBWW2EKa4FhClFWW4EUYQp1V1+A/VtQVltfgTWQUGEKhoFhCmJWW5KRUFBWW19gIIKEAxIVYQqhV2EKoGEKLlZbW19hCq6EgoUBYQp4VluRUFCSkVBQVltfgZBQkZBQVlthCsmBYQq3VluCUlBQVltfYCCCAZBQYQriX4MBhGEKwFZbkpFQUFZbX2EK8oJhCjJWW5BQkZBQVlthCwKBYQroVluBFGELDFdfgP1bUFZbX4E1kFBhCx2BYQr5VluSkVBQVltfYCCChAMSFWELOFdhCzdhCi5WW1tfYQtFhIKFAWELD1ZbkVBQkpFQUFZbX4GQUJKRUFBWW1BWW19hC2Zfg2ELTlZbkVBhC3GCYQtYVltfggGQUJGQUFZbX2ELhYJhC1tWW5FQgZBQkZBQVltfgVGQUJGQUFZbX1uDgRAVYQu2V4CCAVGBhAFSYCCBAZBQYQubVltfhIQBUlBQUFBWW19hC8uCYQuPVlthC9WBhWELTlZbk1BhC+WBhWAghgFhC5lWW4CEAZFQUJKRUFBWW19hC/yChGELwVZbkVCBkFCSkVBQVlthDBCBYQq3VluBFGEMGldfgP1bUFZbX4FRkFBhDCuBYQwHVluSkVBQVltfYCCChAMSFWEMRldhDEVhCi5WW1tfYQxThIKFAWEMHVZbkVBQkpFQUFb+omRpcGZzWCISIB1XNtS/Ihnv5ncqix/OzjuuY0NUdXIx2ra4Lvo3M7ZaZHNvbGNDAAgWADNqAxiACXIHCgMYggkQAXoCCAFSRgoJCgIYAxCIr8MBCgkKAhhiEMqpmikKCgoDGKAGEMikkQQKCgoDGKEGEMikkQQKCgoDGP8IEKHe7CsKCgoDGIAJEL/DkweKASBK3VRZ7p/oEz9/6djJ0aquU8rQINICf3liWcJHKw71Wg=="},{"b64Body":"ChIKCQi2rLOuBhCXChIDGP8IIAFCHUIFCIDO2gNqFGF1dG8tY3JlYXRlZCBhY2NvdW50","b64Record":"CgcIFiIDGIIJEjA1tw3ycDNvfFjXnT1OKMezEWTcS/FSMUE1QAJjiK+ZINCse1KZy7zIKM4XxKk2V5IaDAjyrLOuBhCqlcOYAiISCgkItqyzrgYQlwoSAxj/CCABQh0KAxiCCUoWChSB1K3Q9lVFTNpeekt7r0pd6vNwCFIAegwI8qyzrgYQqZXDmAI="}]},"failsWhenSenderDoesNotExist":{"placeholderNum":1155,"encodedItems":[{"b64Body":"Cg8KCQi7rLOuBhCvChICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlorCiISIBbkVGNZlhCzdyCGfyrqanHkEd/SbPVtHKodSuotnPtISgUIgM7aAw==","b64Record":"CiUIFhIDGIQJKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjC2Y/dGUSGelgCzp61qsljUQeziKXVS+qtG0oq8N+PV0ipWYXaJHmBBF0QzhWEgnMMaDAj3rLOuBhCtjqK5ASIPCgkIu6yzrgYQrwoSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQi7rLOuBhCxChICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIBm7ks9i7rfQSYYZNYm0A3ncQfKmn8hDKIamxmmQf/edEIDIr6AlSgUIgM7aAw==","b64Record":"CiUIFhIDGIUJKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjB2O8whPAd6wDdqQwFXiPI3u5BQSDOHSgMk4mBK4CYXPLpgp27G+thekYb0STVbOIgaDAj3rLOuBhDizaKeAyIPCgkIu6yzrgYQsQoSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxiFCRCAkN/ASg=="},{"b64Body":"Cg8KCQi8rLOuBhCzChICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjwESDAj4+o2yBhDR4b6kARptCiISINdvTN9ET9+RQVIgPtYmFDK/jqEcsIdXWSHn9w9nqeMyCiM6IQKxEtopstA/bzh5BvIAyH6Az5o/Wvn4fM8CTm3QbfFTtwoiEiASw2/itGkCdoozP6sqX589hrlZrHW7S1DkhrsKeBezDiIMSGVsbG8gV29ybGQhKgAyAA==","b64Record":"CiUIFhoDGIYJKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCDmyU3s/SHtXMpIKBNL0poYbjn0nIG3dUmnxrBL1bgpNGm67sCLvNPhHnwGSzk6FgaDAj4rLOuBhCX3bmmASIPCgkIvKyzrgYQswoSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQi8rLOuBhC3ChICGAISAhgDGIydjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxiGCSKAIDYwODA2MDQwNTI2MTBjOTI4MDYxMDAxMTVmMzk1ZmYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDBmNTc1ZjgwZmQ1YjUwNjAwNDM2MTA2MTAwYTc1NzVmMzU2MGUwMWM4MDYzYTAzZmE3ZTMxMTYxMDA2ZjU3ODA2M2EwM2ZhN2UzMTQ2MTAxNGI1NzgwNjNhNmEzYTMwMDE0NjEwMTY3NTc4MDYzY2MxOWYxM2YxNDYxMDE5NzU3ODA2M2NmYzcyMDA3MTQ2MTAxYjM1NzgwNjNkZDczMTM5NTE0NjEwMWNmNTc4MDYzZTZkMjUyNDUxNDYxMDFmZjU3NjEwMGE3NTY1YjgwNjMyZGExYjEzMDE0NjEwMGFiNTc4MDYzM2U2NTdkMGExNDYxMDBjNzU3ODA2MzdhMjIzYTc3MTQ2MTAwZTM1NzgwNjM3ZWM4NmY4OTE0NjEwMGZmNTc4MDYzOTBmMThkODMxNDYxMDExYjU3NWI1ZjgwZmQ1YjYxMDBjNTYwMDQ4MDM2MDM4MTAxOTA2MTAwYzA5MTkwNjEwYThjNTY1YjYxMDIxYjU2NWIwMDViNjEwMGUxNjAwNDgwMzYwMzgxMDE5MDYxMDBkYzkxOTA2MTBhOGM1NjViNjEwMjg1NTY1YjAwNWI2MTAwZmQ2MDA0ODAzNjAzODEwMTkwNjEwMGY4OTE5MDYxMGE4YzU2NWI2MTAzNzA1NjViMDA1YjYxMDExOTYwMDQ4MDM2MDM4MTAxOTA2MTAxMTQ5MTkwNjEwYThjNTY1YjYxMDQ1YTU2NWIwMDViNjEwMTM1NjAwNDgwMzYwMzgxMDE5MDYxMDEzMDkxOTA2MTBhOGM1NjViNjEwNTQ1NTY1YjYwNDA1MTYxMDE0MjkxOTA2MTBhY2Y1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMTY1NjAwNDgwMzYwMzgxMDE5MDYxMDE2MDkxOTA2MTBiMjM1NjViNjEwNjY3NTY1YjAwNWI2MTAxODE2MDA0ODAzNjAzODEwMTkwNjEwMTdjOTE5MDYxMGE4YzU2NWI2MTA2YWY1NjViNjA0MDUxNjEwMThlOTE5MDYxMGFjZjU2NWI2MDQwNTE4MDkxMDM5MGYzNWI2MTAxYjE2MDA0ODAzNjAzODEwMTkwNjEwMWFjOTE5MDYxMGE4YzU2NWI2MTA3ZDA1NjViMDA1YjYxMDFjZDYwMDQ4MDM2MDM4MTAxOTA2MTAxYzg5MTkwNjEwYjIzNTY1YjYxMDhiYjU2NWIwMDViNjEwMWU5NjAwNDgwMzYwMzgxMDE5MDYxMDFlNDkxOTA2MTBhOGM1NjViNjEwOGQ0NTY1YjYwNDA1MTYxMDFmNjkxOTA2MTBhY2Y1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMjE5NjAwNDgwMzYwMzgxMDE5MDYxMDIxNDkxOTA2MTBiMjM1NjViNjEwOWY1NTY1YjAwNWI4MDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjAwMTYwNDA1MTYxMDI0MDkwNjEwYjdiNTY1YjVmNjA0MDUxODA4MzAzODE4NTg3NWFmMTkyNTA1MDUwM2Q4MDVmODExNDYxMDI3YTU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q1ZjYwMjA4NDAxM2U2MTAyN2Y1NjViNjA2MDkxNTA1YjUwNTA1MDUwNTY1YjgwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MDQwNTE2MDI0MDE2MDQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI3ZmZmNDg5ZDMxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjEwMzJjOTE5MDYxMGJmMTU2NWI1ZjYwNDA1MTgwODMwMzgxNWY4NjVhZjE5MTUwNTAzZDgwNWY4MTE0NjEwMzY1NTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDVmNjAyMDg0MDEzZTYxMDM2YTU2NWI2MDYwOTE1MDViNTA1MDUwNTA1NjViODA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYwNDA1MTYwMjQwMTYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjdmNDc3Mzg3ZDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTA0MTc5MTkwNjEwYmYxNTY1YjVmNjA0MDUxODA4MzAzODE4NTVhZmE5MTUwNTAzZDgwNWY4MTE0NjEwNDRmNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDVmNjAyMDg0MDEzZTYxMDQ1NDU2NWI2MDYwOTE1MDViNTA1MDUwNTA1NjViODA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYwNDA1MTYwMjQwMTYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjdmMTFmOTVmNmYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTA1MDE5MTkwNjEwYmYxNTY1YjVmNjA0MDUxODA4MzAzODE1Zjg2NWFmMTkxNTA1MDNkODA1ZjgxMTQ2MTA1M2E1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNWY2MDIwODQwMTNlNjEwNTNmNTY1YjYwNjA5MTUwNWI1MDUwNTA1MDU2NWI1ZjgwNWY4MzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjA0MDUxNjAyNDAxNjA0MDUxNjAyMDgxODMwMzAzODE1MjkwNjA0MDUyN2YzYTMyYjU0OTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMDVlZjkxOTA2MTBiZjE1NjViNWY2MDQwNTE4MDgzMDM4MTVmODY1YWYxOTE1MDUwM2Q4MDVmODExNDYxMDYyODU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q1ZjYwMjA4NDAxM2U2MTA2MmQ1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA4MTgwMTU2MTA2M2Y1NzUwNWY4MTUxMTE1YjYxMDY0OTU3NWY2MTA2NWU1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTA2NWQ5MTkwNjEwYzMxNTY1YjViOTI1MDUwNTA5MTkwNTA1NjViODA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYxMDhmYzYwMDE5MDgxMTUwMjkwNjA0MDUxNWY2MDQwNTE4MDgzMDM4MTg1ODg4OGYxOTM1MDUwNTA1MDE1ODAxNTYxMDZhYjU3M2Q1ZjgwM2UzZDVmZmQ1YjUwNTA1NjViNWY4MDVmODM3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYwNDA1MTYwMjQwMTYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjdmM2EzMmI1NDkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTA3NTk5MTkwNjEwYmYxNTY1YjVmNjA0MDUxODA4MzAzODE4NTVhZmE5MTUwNTAzZDgwNWY4MTE0NjEwNzkxNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDVmNjAyMDg0MDEzZTYxMDc5NjU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxODAxNTYxMDdhODU3NTA1ZjgxNTExMTViNjEwN2IyNTc1ZjYxMDdjNzU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMDdjNjkxOTA2MTBjMzE1NjViNWI5MjUwNTA1MDkxOTA1MDU2NWI4MDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjA0MDUxNjAyNDAxNjA=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwrXELjA4221OhYE8ri3s+On+X9OqMBPXpmhsfGza1hN/T6xBb69ypIbEcL1GYDtZFGgwI+KyzrgYQhNrVpwMiDwoJCLyss64GELcKEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQi9rLOuBhC9ChICGAISAhgDGLblozciAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBzhISAxiGCSLGEjQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI3ZjQ3NzM4N2QxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjEwODc3OTE5MDYxMGJmMTU2NWI1ZjYwNDA1MTgwODMwMzgxNWY4NjVhZjE5MTUwNTAzZDgwNWY4MTE0NjEwOGIwNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDVmNjAyMDg0MDEzZTYxMDhiNTU2NWI2MDYwOTE1MDViNTA1MDUwNTA1NjViODA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNmZmNWI1ZjgwNWY4MzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjA0MDUxNjAyNDAxNjA0MDUxNjAyMDgxODMwMzAzODE1MjkwNjA0MDUyN2YzYTMyYjU0OTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMDk3ZTkxOTA2MTBiZjE1NjViNWY2MDQwNTE4MDgzMDM4MTg1NWFmNDkxNTA1MDNkODA1ZjgxMTQ2MTA5YjY1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNWY2MDIwODQwMTNlNjEwOWJiNTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE4MDE1NjEwOWNkNTc1MDVmODE1MTExNWI2MTA5ZDc1NzVmNjEwOWVjNTY1YjgwODA2MDIwMDE5MDUxODEwMTkwNjEwOWViOTE5MDYxMGMzMTU2NWI1YjkyNTA1MDUwOTE5MDUwNTY1YjgwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MTA4ZmM2MDAxOTA4MTE1MDI5MDYwNDA1MTVmNjA0MDUxODA4MzAzODE4NTg4ODhmMTkzNTA1MDUwNTA1MDUwNTY1YjVmODBmZDViNWY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MjE2OTA1MDkxOTA1MDU2NWI1ZjYxMGE1YjgyNjEwYTMyNTY1YjkwNTA5MTkwNTA1NjViNjEwYTZiODE2MTBhNTE1NjViODExNDYxMGE3NTU3NWY4MGZkNWI1MDU2NWI1ZjgxMzU5MDUwNjEwYTg2ODE2MTBhNjI1NjViOTI5MTUwNTA1NjViNWY2MDIwODI4NDAzMTIxNTYxMGFhMTU3NjEwYWEwNjEwYTJlNTY1YjViNWY2MTBhYWU4NDgyODUwMTYxMGE3ODU2NWI5MTUwNTA5MjkxNTA1MDU2NWI1ZjgxOTA1MDkxOTA1MDU2NWI2MTBhYzk4MTYxMGFiNzU2NWI4MjUyNTA1MDU2NWI1ZjYwMjA4MjAxOTA1MDYxMGFlMjVmODMwMTg0NjEwYWMwNTY1YjkyOTE1MDUwNTY1YjVmNjEwYWYyODI2MTBhMzI1NjViOTA1MDkxOTA1MDU2NWI2MTBiMDI4MTYxMGFlODU2NWI4MTE0NjEwYjBjNTc1ZjgwZmQ1YjUwNTY1YjVmODEzNTkwNTA2MTBiMWQ4MTYxMGFmOTU2NWI5MjkxNTA1MDU2NWI1ZjYwMjA4Mjg0MDMxMjE1NjEwYjM4NTc2MTBiMzc2MTBhMmU1NjViNWI1ZjYxMGI0NTg0ODI4NTAxNjEwYjBmNTY1YjkxNTA1MDkyOTE1MDUwNTY1YjVmODE5MDUwOTI5MTUwNTA1NjViNTA1NjViNWY2MTBiNjY1ZjgzNjEwYjRlNTY1YjkxNTA2MTBiNzE4MjYxMGI1ODU2NWI1ZjgyMDE5MDUwOTE5MDUwNTY1YjVmNjEwYjg1ODI2MTBiNWI1NjViOTE1MDgxOTA1MDkxOTA1MDU2NWI1ZjgxNTE5MDUwOTE5MDUwNTY1YjVmNWI4MzgxMTAxNTYxMGJiNjU3ODA4MjAxNTE4MTg0MDE1MjYwMjA4MTAxOTA1MDYxMGI5YjU2NWI1Zjg0ODQwMTUyNTA1MDUwNTA1NjViNWY2MTBiY2I4MjYxMGI4ZjU2NWI2MTBiZDU4MTg1NjEwYjRlNTY1YjkzNTA2MTBiZTU4MTg1NjAyMDg2MDE2MTBiOTk1NjViODA4NDAxOTE1MDUwOTI5MTUwNTA1NjViNWY2MTBiZmM4Mjg0NjEwYmMxNTY1YjkxNTA4MTkwNTA5MjkxNTA1MDU2NWI2MTBjMTA4MTYxMGFiNzU2NWI4MTE0NjEwYzFhNTc1ZjgwZmQ1YjUwNTY1YjVmODE1MTkwNTA2MTBjMmI4MTYxMGMwNzU2NWI5MjkxNTA1MDU2NWI1ZjYwMjA4Mjg0MDMxMjE1NjEwYzQ2NTc2MTBjNDU2MTBhMmU1NjViNWI1ZjYxMGM1Mzg0ODI4NTAxNjEwYzFkNTY1YjkxNTA1MDkyOTE1MDUwNTZmZWEyNjQ2OTcwNjY3MzU4MjIxMjIwMWQ1NzM2ZDRiZjIyMTllZmU2NzcyYThiMWZjZWNlM2JhZTYzNDM1NDc1NzIzMWRhYjZiODJlZmEzNzMzYjY1YTY0NzM2ZjZjNjM0MzAwMDgxNjAwMzM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw/70IpIcor+NslvhzU3g46p2zrIseQPYEjGqq2G9Ggyf6W49AwdxF1+G5EXRaEEw1GgwI+ayzrgYQ5NburwEiDwoJCL2ss64GEL0KEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQi9rLOuBhC/ChICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CSgoDGIYJGiISIMXj5mHKfT9y9TTA1QqW6lo150Zlb6LhOzvO7TEVoFKbIJChDyiAwtcvQgUIgM7aA1IAWgBqC2NlbGxhciBkb29y","b64Record":"CiUIFiIDGIcJKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBCap6mF6NVtJdgcqrt+ouOszv+rQDot+U0WRKOegzpfLJPzVL7zI3NMpDlCuwdyyIaDAj5rLOuBhCTpI6xAyIPCgkIvayzrgYQvwoSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQscbCgMYhwkSkhlggGBAUjSAFWEAD1dfgP1bUGAENhBhAKdXXzVg4ByAY6A/p+MRYQBvV4BjoD+n4xRhAUtXgGOmo6MAFGEBZ1eAY8wZ8T8UYQGXV4Bjz8cgBxRhAbNXgGPdcxOVFGEBz1eAY+bSUkUUYQH/V2EAp1ZbgGMtobEwFGEAq1eAYz5lfQoUYQDHV4BjeiI6dxRhAONXgGN+yG+JFGEA/1eAY5DxjYMUYQEbV1tfgP1bYQDFYASANgOBAZBhAMCRkGEKjFZbYQIbVlsAW2EA4WAEgDYDgQGQYQDckZBhCoxWW2EChVZbAFthAP1gBIA2A4EBkGEA+JGQYQqMVlthA3BWWwBbYQEZYASANgOBAZBhARSRkGEKjFZbYQRaVlsAW2EBNWAEgDYDgQGQYQEwkZBhCoxWW2EFRVZbYEBRYQFCkZBhCs9WW2BAUYCRA5DzW2EBZWAEgDYDgQGQYQFgkZBhCyNWW2EGZ1ZbAFthAYFgBIA2A4EBkGEBfJGQYQqMVlthBq9WW2BAUWEBjpGQYQrPVltgQFGAkQOQ81thAbFgBIA2A4EBkGEBrJGQYQqMVlthB9BWWwBbYQHNYASANgOBAZBhAciRkGELI1ZbYQi7VlsAW2EB6WAEgDYDgQGQYQHkkZBhCoxWW2EI1FZbYEBRYQH2kZBhCs9WW2BAUYCRA5DzW2ECGWAEgDYDgQGQYQIUkZBhCyNWW2EJ9VZbAFuAc///////////////////////////FmABYEBRYQJAkGELe1ZbX2BAUYCDA4GFh1rxklBQUD2AX4EUYQJ6V2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1fYCCEAT5hAn9WW2BgkVBbUFBQUFZbgHP//////////////////////////xZgQFFgJAFgQFFgIIGDAwOBUpBgQFJ//0idMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEDLJGQYQvxVltfYEBRgIMDgV+GWvGRUFA9gF+BFGEDZVdgQFGRUGAfGWA/PQEWggFgQFI9glI9X2AghAE+YQNqVltgYJFQW1BQUFBWW4Bz//////////////////////////8WYEBRYCQBYEBRYCCBgwMDgVKQYEBSf0dzh9EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhBBeRkGEL8VZbX2BAUYCDA4GFWvqRUFA9gF+BFGEET1dgQFGRUGAfGWA/PQEWggFgQFI9glI9X2AghAE+YQRUVltgYJFQW1BQUFBWW4Bz//////////////////////////8WYEBRYCQBYEBRYCCBgwMDgVKQYEBSfxH5X28AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhBQGRkGEL8VZbX2BAUYCDA4FfhlrxkVBQPYBfgRRhBTpXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPV9gIIQBPmEFP1ZbYGCRUFtQUFBQVltfgF+Dc///////////////////////////FmBAUWAkAWBAUWAggYMDA4FSkGBAUn86MrVJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQXvkZBhC/FWW19gQFGAgwOBX4Za8ZFQUD2AX4EUYQYoV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1fYCCEAT5hBi1WW2BgkVBbUJFQkVCBgBVhBj9XUF+BURFbYQZJV19hBl5WW4CAYCABkFGBAZBhBl2RkGEMMVZbW5JQUFCRkFBWW4Bz//////////////////////////8WYQj8YAGQgRUCkGBAUV9gQFGAgwOBhYiI8ZNQUFBQFYAVYQarVz1fgD49X/1bUFBWW1+AX4Nz//////////////////////////8WYEBRYCQBYEBRYCCBgwMDgVKQYEBSfzoytUkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhB1mRkGEL8VZbX2BAUYCDA4GFWvqRUFA9gF+BFGEHkVdgQFGRUGAfGWA/PQEWggFgQFI9glI9X2AghAE+YQeWVltgYJFQW1CRUJFQgYAVYQeoV1BfgVERW2EHsldfYQfHVluAgGAgAZBRgQGQYQfGkZBhDDFWW1uSUFBQkZBQVluAc///////////////////////////FmBAUWAkAWBAUWAggYMDA4FSkGBAUn9Hc4fRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQh3kZBhC/FWW19gQFGAgwOBX4Za8ZFQUD2AX4EUYQiwV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1fYCCEAT5hCLVWW2BgkVBbUFBQUFZbgHP//////////////////////////xb/W1+AX4Nz//////////////////////////8WYEBRYCQBYEBRYCCBgwMDgVKQYEBSfzoytUkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhCX6RkGEL8VZbX2BAUYCDA4GFWvSRUFA9gF+BFGEJtldgQFGRUGAfGWA/PQEWggFgQFI9glI9X2AghAE+YQm7VltgYJFQW1CRUJFQgYAVYQnNV1BfgVERW2EJ11dfYQnsVluAgGAgAZBRgQGQYQnrkZBhDDFWW1uSUFBQkZBQVluAc///////////////////////////FmEI/GABkIEVApBgQFFfYEBRgIMDgYWIiPGTUFBQUFBQVltfgP1bX3P//////////////////////////4IWkFCRkFBWW19hCluCYQoyVluQUJGQUFZbYQprgWEKUVZbgRRhCnVXX4D9W1BWW1+BNZBQYQqGgWEKYlZbkpFQUFZbX2AggoQDEhVhCqFXYQqgYQouVltbX2EKroSChQFhCnhWW5FQUJKRUFBWW1+BkFCRkFBWW2EKyYFhCrdWW4JSUFBWW19gIIIBkFBhCuJfgwGEYQrAVluSkVBQVltfYQrygmEKMlZbkFCRkFBWW2ELAoFhCuhWW4EUYQsMV1+A/VtQVltfgTWQUGELHYFhCvlWW5KRUFBWW19gIIKEAxIVYQs4V2ELN2EKLlZbW19hC0WEgoUBYQsPVluRUFCSkVBQVltfgZBQkpFQUFZbUFZbX2ELZl+DYQtOVluRUGELcYJhC1hWW1+CAZBQkZBQVltfYQuFgmELW1ZbkVCBkFCRkFBWW1+BUZBQkZBQVltfW4OBEBVhC7ZXgIIBUYGEAVJgIIEBkFBhC5tWW1+EhAFSUFBQUFZbX2ELy4JhC49WW2EL1YGFYQtOVluTUGEL5YGFYCCGAWELmVZbgIQBkVBQkpFQUFZbX2EL/IKEYQvBVluRUIGQUJKRUFBWW2EMEIFhCrdWW4EUYQwaV1+A/VtQVltfgVGQUGEMK4FhDAdWW5KRUFBWW19gIIKEAxIVYQxGV2EMRWEKLlZbW19hDFOEgoUBYQwdVluRUFCSkVBQVv6iZGlwZnNYIhIgHVc21L8iGe/mdyqLH87OO65jQ1R1cjHatrgu+jcztlpkc29sY0MACBYAMyKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAowJoMOgMYhwlKFgoUAAAAAAAAAAAAAAAAAAAAAAAABIdyBwoDGIcJEAFSIgoJCgIYAhD/tvRsCgkKAhhiEICzxQ0KCgoDGIcJEICEr18="}]},"revertsWhenSenderDoesNotExist":{"placeholderNum":1160,"encodedItems":[{"b64Body":"Cg8KCQiDr7OuBhCcBBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlorCiISIL/mwoKBwJn0FRBG2pZwJ5/PYbRBh81CgCnmEebb6ZbpSgUIgM7aAw==","b64Record":"CiUIFhIDGIkJKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjCLNNe3KuJ0eXuaxENPBZwEGp2YgVxB+GD0bpAQguWTZC2JbFSOf8/JDIiT8My0W7oaCwi/r7OuBhDoqdNGIg8KCQiDr7OuBhCcBBICGAIqIMODwq7DgsK3w4PCuXRGOMOCwq5Kw4PCi8ODwpDDg8KOUgA="},{"b64Body":"Cg8KCQiDr7OuBhCeBBICGAISAhgDGPuV9hQiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjloxCiISIBZR8Gu1bmsIw0kP330MMb3ktjX5xCadnpy1GBYHivyaEIDIr6AlSgUIgM7aAw==","b64Record":"CiUIFhIDGIoJKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDzhJZhHr3i5W6lNllwmQyCBpkmwk7smnU84O8FzKI6bDI0egoz23Mk6Tn/P8RpyP0aDAi/r7OuBhCbkpLIAiIPCgkIg6+zrgYQngQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIZCgoKAhgCEP+P38BKCgsKAxiKCRCAkN/ASg=="},{"b64Body":"Cg8KCQiEr7OuBhCgBBICGAISAhgDGP7LzSwiAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjooBjgESCwjA/Y2yBhCi6MtfGm0KIhIg6aebHWl33E5r14muqEOsqkqCZxYzF7QPeUV0MkXZGEcKIzohA+D9dGUD0WIYU3JEs8RqAaWB7JnnJ70TrhR1lPl9WsRoCiISIF1psO8pXjvhTuhkYq1jqWuiOzDYzO38r5ZDu9H18FwTIgxIZWxsbyBXb3JsZCEqADIA","b64Record":"CiUIFhoDGIsJKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjDTyU7u2iWlPa+l+jMnpHnTXY26o2knNk4mMPhzuLGpXbAg6BTB5SVMYPpViURZn7MaDAjAr7OuBhDb8MGJASIPCgkIhK+zrgYQoAQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjlIA"},{"b64Body":"Cg8KCQiEr7OuBhCkBBICGAISAhgDGIydjj4iAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjpoBiCAKAxiLCSKAIDYwODA2MDQwNTI2MTBjOTI4MDYxMDAxMTVmMzk1ZmYzZmU2MDgwNjA0MDUyMzQ4MDE1NjEwMDBmNTc1ZjgwZmQ1YjUwNjAwNDM2MTA2MTAwYTc1NzVmMzU2MGUwMWM4MDYzYTAzZmE3ZTMxMTYxMDA2ZjU3ODA2M2EwM2ZhN2UzMTQ2MTAxNGI1NzgwNjNhNmEzYTMwMDE0NjEwMTY3NTc4MDYzY2MxOWYxM2YxNDYxMDE5NzU3ODA2M2NmYzcyMDA3MTQ2MTAxYjM1NzgwNjNkZDczMTM5NTE0NjEwMWNmNTc4MDYzZTZkMjUyNDUxNDYxMDFmZjU3NjEwMGE3NTY1YjgwNjMyZGExYjEzMDE0NjEwMGFiNTc4MDYzM2U2NTdkMGExNDYxMDBjNzU3ODA2MzdhMjIzYTc3MTQ2MTAwZTM1NzgwNjM3ZWM4NmY4OTE0NjEwMGZmNTc4MDYzOTBmMThkODMxNDYxMDExYjU3NWI1ZjgwZmQ1YjYxMDBjNTYwMDQ4MDM2MDM4MTAxOTA2MTAwYzA5MTkwNjEwYThjNTY1YjYxMDIxYjU2NWIwMDViNjEwMGUxNjAwNDgwMzYwMzgxMDE5MDYxMDBkYzkxOTA2MTBhOGM1NjViNjEwMjg1NTY1YjAwNWI2MTAwZmQ2MDA0ODAzNjAzODEwMTkwNjEwMGY4OTE5MDYxMGE4YzU2NWI2MTAzNzA1NjViMDA1YjYxMDExOTYwMDQ4MDM2MDM4MTAxOTA2MTAxMTQ5MTkwNjEwYThjNTY1YjYxMDQ1YTU2NWIwMDViNjEwMTM1NjAwNDgwMzYwMzgxMDE5MDYxMDEzMDkxOTA2MTBhOGM1NjViNjEwNTQ1NTY1YjYwNDA1MTYxMDE0MjkxOTA2MTBhY2Y1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMTY1NjAwNDgwMzYwMzgxMDE5MDYxMDE2MDkxOTA2MTBiMjM1NjViNjEwNjY3NTY1YjAwNWI2MTAxODE2MDA0ODAzNjAzODEwMTkwNjEwMTdjOTE5MDYxMGE4YzU2NWI2MTA2YWY1NjViNjA0MDUxNjEwMThlOTE5MDYxMGFjZjU2NWI2MDQwNTE4MDkxMDM5MGYzNWI2MTAxYjE2MDA0ODAzNjAzODEwMTkwNjEwMWFjOTE5MDYxMGE4YzU2NWI2MTA3ZDA1NjViMDA1YjYxMDFjZDYwMDQ4MDM2MDM4MTAxOTA2MTAxYzg5MTkwNjEwYjIzNTY1YjYxMDhiYjU2NWIwMDViNjEwMWU5NjAwNDgwMzYwMzgxMDE5MDYxMDFlNDkxOTA2MTBhOGM1NjViNjEwOGQ0NTY1YjYwNDA1MTYxMDFmNjkxOTA2MTBhY2Y1NjViNjA0MDUxODA5MTAzOTBmMzViNjEwMjE5NjAwNDgwMzYwMzgxMDE5MDYxMDIxNDkxOTA2MTBiMjM1NjViNjEwOWY1NTY1YjAwNWI4MDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjAwMTYwNDA1MTYxMDI0MDkwNjEwYjdiNTY1YjVmNjA0MDUxODA4MzAzODE4NTg3NWFmMTkyNTA1MDUwM2Q4MDVmODExNDYxMDI3YTU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q1ZjYwMjA4NDAxM2U2MTAyN2Y1NjViNjA2MDkxNTA1YjUwNTA1MDUwNTY1YjgwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MDQwNTE2MDI0MDE2MDQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI3ZmZmNDg5ZDMxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjEwMzJjOTE5MDYxMGJmMTU2NWI1ZjYwNDA1MTgwODMwMzgxNWY4NjVhZjE5MTUwNTAzZDgwNWY4MTE0NjEwMzY1NTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDVmNjAyMDg0MDEzZTYxMDM2YTU2NWI2MDYwOTE1MDViNTA1MDUwNTA1NjViODA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYwNDA1MTYwMjQwMTYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjdmNDc3Mzg3ZDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTA0MTc5MTkwNjEwYmYxNTY1YjVmNjA0MDUxODA4MzAzODE4NTVhZmE5MTUwNTAzZDgwNWY4MTE0NjEwNDRmNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDVmNjAyMDg0MDEzZTYxMDQ1NDU2NWI2MDYwOTE1MDViNTA1MDUwNTA1NjViODA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYwNDA1MTYwMjQwMTYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjdmMTFmOTVmNmYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTA1MDE5MTkwNjEwYmYxNTY1YjVmNjA0MDUxODA4MzAzODE1Zjg2NWFmMTkxNTA1MDNkODA1ZjgxMTQ2MTA1M2E1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNWY2MDIwODQwMTNlNjEwNTNmNTY1YjYwNjA5MTUwNWI1MDUwNTA1MDU2NWI1ZjgwNWY4MzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjA0MDUxNjAyNDAxNjA0MDUxNjAyMDgxODMwMzAzODE1MjkwNjA0MDUyN2YzYTMyYjU0OTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMDVlZjkxOTA2MTBiZjE1NjViNWY2MDQwNTE4MDgzMDM4MTVmODY1YWYxOTE1MDUwM2Q4MDVmODExNDYxMDYyODU3NjA0MDUxOTE1MDYwMWYxOTYwM2YzZDAxMTY4MjAxNjA0MDUyM2Q4MjUyM2Q1ZjYwMjA4NDAxM2U2MTA2MmQ1NjViNjA2MDkxNTA1YjUwOTE1MDkxNTA4MTgwMTU2MTA2M2Y1NzUwNWY4MTUxMTE1YjYxMDY0OTU3NWY2MTA2NWU1NjViODA4MDYwMjAwMTkwNTE4MTAxOTA2MTA2NWQ5MTkwNjEwYzMxNTY1YjViOTI1MDUwNTA5MTkwNTA1NjViODA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYxMDhmYzYwMDE5MDgxMTUwMjkwNjA0MDUxNWY2MDQwNTE4MDgzMDM4MTg1ODg4OGYxOTM1MDUwNTA1MDE1ODAxNTYxMDZhYjU3M2Q1ZjgwM2UzZDVmZmQ1YjUwNTA1NjViNWY4MDVmODM3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYwNDA1MTYwMjQwMTYwNDA1MTYwMjA4MTgzMDMwMzgxNTI5MDYwNDA1MjdmM2EzMmI1NDkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxOTE2NjAyMDgyMDE4MDUxN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgzODE4MzE2MTc4MzUyNTA1MDUwNTA2MDQwNTE2MTA3NTk5MTkwNjEwYmYxNTY1YjVmNjA0MDUxODA4MzAzODE4NTVhZmE5MTUwNTAzZDgwNWY4MTE0NjEwNzkxNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDVmNjAyMDg0MDEzZTYxMDc5NjU2NWI2MDYwOTE1MDViNTA5MTUwOTE1MDgxODAxNTYxMDdhODU3NTA1ZjgxNTExMTViNjEwN2IyNTc1ZjYxMDdjNzU2NWI4MDgwNjAyMDAxOTA1MTgxMDE5MDYxMDdjNjkxOTA2MTBjMzE1NjViNWI5MjUwNTA1MDkxOTA1MDU2NWI4MDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjA0MDUxNjAyNDAxNjA=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIwBqUFL22mW4r2ucBhmgtgV6N7dkt2pZBCf4JYbnK4B1Uvi+ui/GpKmrVd/7n7AGztGgwIwK+zrgYQxIj6igMiDwoJCISvs64GEKQEEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQiFr7OuBhCqBBICGAISAhgDGLblozciAgh4MiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjoIBzhISAxiLCSLGEjQwNTE2MDIwODE4MzAzMDM4MTUyOTA2MDQwNTI3ZjQ3NzM4N2QxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTkxNjYwMjA4MjAxODA1MTdiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MzgxODMxNjE3ODM1MjUwNTA1MDUwNjA0MDUxNjEwODc3OTE5MDYxMGJmMTU2NWI1ZjYwNDA1MTgwODMwMzgxNWY4NjVhZjE5MTUwNTAzZDgwNWY4MTE0NjEwOGIwNTc2MDQwNTE5MTUwNjAxZjE5NjAzZjNkMDExNjgyMDE2MDQwNTIzZDgyNTIzZDVmNjAyMDg0MDEzZTYxMDhiNTU2NWI2MDYwOTE1MDViNTA1MDUwNTA1NjViODA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNmZmNWI1ZjgwNWY4MzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjA0MDUxNjAyNDAxNjA0MDUxNjAyMDgxODMwMzAzODE1MjkwNjA0MDUyN2YzYTMyYjU0OTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN2JmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE5MTY2MDIwODIwMTgwNTE3YmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmODM4MTgzMTYxNzgzNTI1MDUwNTA1MDYwNDA1MTYxMDk3ZTkxOTA2MTBiZjE1NjViNWY2MDQwNTE4MDgzMDM4MTg1NWFmNDkxNTA1MDNkODA1ZjgxMTQ2MTA5YjY1NzYwNDA1MTkxNTA2MDFmMTk2MDNmM2QwMTE2ODIwMTYwNDA1MjNkODI1MjNkNWY2MDIwODQwMTNlNjEwOWJiNTY1YjYwNjA5MTUwNWI1MDkxNTA5MTUwODE4MDE1NjEwOWNkNTc1MDVmODE1MTExNWI2MTA5ZDc1NzVmNjEwOWVjNTY1YjgwODA2MDIwMDE5MDUxODEwMTkwNjEwOWViOTE5MDYxMGMzMTU2NWI1YjkyNTA1MDUwOTE5MDUwNTY1YjgwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MTA4ZmM2MDAxOTA4MTE1MDI5MDYwNDA1MTVmNjA0MDUxODA4MzAzODE4NTg4ODhmMTkzNTA1MDUwNTA1MDUwNTY1YjVmODBmZDViNWY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4MjE2OTA1MDkxOTA1MDU2NWI1ZjYxMGE1YjgyNjEwYTMyNTY1YjkwNTA5MTkwNTA1NjViNjEwYTZiODE2MTBhNTE1NjViODExNDYxMGE3NTU3NWY4MGZkNWI1MDU2NWI1ZjgxMzU5MDUwNjEwYTg2ODE2MTBhNjI1NjViOTI5MTUwNTA1NjViNWY2MDIwODI4NDAzMTIxNTYxMGFhMTU3NjEwYWEwNjEwYTJlNTY1YjViNWY2MTBhYWU4NDgyODUwMTYxMGE3ODU2NWI5MTUwNTA5MjkxNTA1MDU2NWI1ZjgxOTA1MDkxOTA1MDU2NWI2MTBhYzk4MTYxMGFiNzU2NWI4MjUyNTA1MDU2NWI1ZjYwMjA4MjAxOTA1MDYxMGFlMjVmODMwMTg0NjEwYWMwNTY1YjkyOTE1MDUwNTY1YjVmNjEwYWYyODI2MTBhMzI1NjViOTA1MDkxOTA1MDU2NWI2MTBiMDI4MTYxMGFlODU2NWI4MTE0NjEwYjBjNTc1ZjgwZmQ1YjUwNTY1YjVmODEzNTkwNTA2MTBiMWQ4MTYxMGFmOTU2NWI5MjkxNTA1MDU2NWI1ZjYwMjA4Mjg0MDMxMjE1NjEwYjM4NTc2MTBiMzc2MTBhMmU1NjViNWI1ZjYxMGI0NTg0ODI4NTAxNjEwYjBmNTY1YjkxNTA1MDkyOTE1MDUwNTY1YjVmODE5MDUwOTI5MTUwNTA1NjViNTA1NjViNWY2MTBiNjY1ZjgzNjEwYjRlNTY1YjkxNTA2MTBiNzE4MjYxMGI1ODU2NWI1ZjgyMDE5MDUwOTE5MDUwNTY1YjVmNjEwYjg1ODI2MTBiNWI1NjViOTE1MDgxOTA1MDkxOTA1MDU2NWI1ZjgxNTE5MDUwOTE5MDUwNTY1YjVmNWI4MzgxMTAxNTYxMGJiNjU3ODA4MjAxNTE4MTg0MDE1MjYwMjA4MTAxOTA1MDYxMGI5YjU2NWI1Zjg0ODQwMTUyNTA1MDUwNTA1NjViNWY2MTBiY2I4MjYxMGI4ZjU2NWI2MTBiZDU4MTg1NjEwYjRlNTY1YjkzNTA2MTBiZTU4MTg1NjAyMDg2MDE2MTBiOTk1NjViODA4NDAxOTE1MDUwOTI5MTUwNTA1NjViNWY2MTBiZmM4Mjg0NjEwYmMxNTY1YjkxNTA4MTkwNTA5MjkxNTA1MDU2NWI2MTBjMTA4MTYxMGFiNzU2NWI4MTE0NjEwYzFhNTc1ZjgwZmQ1YjUwNTY1YjVmODE1MTkwNTA2MTBjMmI4MTYxMGMwNzU2NWI5MjkxNTA1MDU2NWI1ZjYwMjA4Mjg0MDMxMjE1NjEwYzQ2NTc2MTBjNDU2MTBhMmU1NjViNWI1ZjYxMGM1Mzg0ODI4NTAxNjEwYzFkNTY1YjkxNTA1MDkyOTE1MDUwNTZmZWEyNjQ2OTcwNjY3MzU4MjIxMjIwMWQ1NzM2ZDRiZjIyMTllZmU2NzcyYThiMWZjZWNlM2JhZTYzNDM1NDc1NzIzMWRhYjZiODJlZmEzNzMzYjY1YTY0NzM2ZjZjNjM0MzAwMDgxNjAwMzM=","b64Record":"CiAIFiocCgwIARAMGgYIgK6ZpA8SDAgBEA8aBgiArpmkDxIw3tMqNFB2J4VKl5h4N2d9Q8ow39lvfzT+coG80+Ohffcaklra6b7wS06F2Kyqs+6KGgwIwa+zrgYQyJvErwEiDwoJCIWvs64GEKoEEgIYAiogw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5SAA=="},{"b64Body":"Cg8KCQiFr7OuBhCsBBICGAISAhgDGJb7rp0CIgIIeDIgw4PCrsOCwrfDg8K5dEY4w4LCrkrDg8KLw4PCkMODwo5CSgoDGIsJGiISIJFQDwezdPlRvremAzHJTUbc6WibFci0JeyC8FScBnUxIJChDyiAwtcvQgUIgM7aA1IAWgBqC2NlbGxhciBkb29y","b64Record":"CiUIFiIDGIwJKhwKDAgBEAwaBgiArpmkDxIMCAEQDxoGCICumaQPEjBLRyb4AL0YVhCIM9W/b0SqS1O2slBn1vUMCgvy5Np4kZJF94C2o371+XzabEvKODMaDAjBr7OuBhC2gJSxAyIPCgkIha+zrgYQrAQSAhgCKiDDg8Kuw4LCt8ODwrl0RjjDgsKuSsODwovDg8KQw4PCjjDA2eIGQscbCgMYjAkSkhlggGBAUjSAFWEAD1dfgP1bUGAENhBhAKdXXzVg4ByAY6A/p+MRYQBvV4BjoD+n4xRhAUtXgGOmo6MAFGEBZ1eAY8wZ8T8UYQGXV4Bjz8cgBxRhAbNXgGPdcxOVFGEBz1eAY+bSUkUUYQH/V2EAp1ZbgGMtobEwFGEAq1eAYz5lfQoUYQDHV4BjeiI6dxRhAONXgGN+yG+JFGEA/1eAY5DxjYMUYQEbV1tfgP1bYQDFYASANgOBAZBhAMCRkGEKjFZbYQIbVlsAW2EA4WAEgDYDgQGQYQDckZBhCoxWW2EChVZbAFthAP1gBIA2A4EBkGEA+JGQYQqMVlthA3BWWwBbYQEZYASANgOBAZBhARSRkGEKjFZbYQRaVlsAW2EBNWAEgDYDgQGQYQEwkZBhCoxWW2EFRVZbYEBRYQFCkZBhCs9WW2BAUYCRA5DzW2EBZWAEgDYDgQGQYQFgkZBhCyNWW2EGZ1ZbAFthAYFgBIA2A4EBkGEBfJGQYQqMVlthBq9WW2BAUWEBjpGQYQrPVltgQFGAkQOQ81thAbFgBIA2A4EBkGEBrJGQYQqMVlthB9BWWwBbYQHNYASANgOBAZBhAciRkGELI1ZbYQi7VlsAW2EB6WAEgDYDgQGQYQHkkZBhCoxWW2EI1FZbYEBRYQH2kZBhCs9WW2BAUYCRA5DzW2ECGWAEgDYDgQGQYQIUkZBhCyNWW2EJ9VZbAFuAc///////////////////////////FmABYEBRYQJAkGELe1ZbX2BAUYCDA4GFh1rxklBQUD2AX4EUYQJ6V2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1fYCCEAT5hAn9WW2BgkVBbUFBQUFZbgHP//////////////////////////xZgQFFgJAFgQFFgIIGDAwOBUpBgQFJ//0idMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB7/////////////////////////////////////xkWYCCCAYBRe/////////////////////////////////////+DgYMWF4NSUFBQUGBAUWEDLJGQYQvxVltfYEBRgIMDgV+GWvGRUFA9gF+BFGEDZVdgQFGRUGAfGWA/PQEWggFgQFI9glI9X2AghAE+YQNqVltgYJFQW1BQUFBWW4Bz//////////////////////////8WYEBRYCQBYEBRYCCBgwMDgVKQYEBSf0dzh9EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhBBeRkGEL8VZbX2BAUYCDA4GFWvqRUFA9gF+BFGEET1dgQFGRUGAfGWA/PQEWggFgQFI9glI9X2AghAE+YQRUVltgYJFQW1BQUFBWW4Bz//////////////////////////8WYEBRYCQBYEBRYCCBgwMDgVKQYEBSfxH5X28AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhBQGRkGEL8VZbX2BAUYCDA4FfhlrxkVBQPYBfgRRhBTpXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPV9gIIQBPmEFP1ZbYGCRUFtQUFBQVltfgF+Dc///////////////////////////FmBAUWAkAWBAUWAggYMDA4FSkGBAUn86MrVJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQXvkZBhC/FWW19gQFGAgwOBX4Za8ZFQUD2AX4EUYQYoV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1fYCCEAT5hBi1WW2BgkVBbUJFQkVCBgBVhBj9XUF+BURFbYQZJV19hBl5WW4CAYCABkFGBAZBhBl2RkGEMMVZbW5JQUFCRkFBWW4Bz//////////////////////////8WYQj8YAGQgRUCkGBAUV9gQFGAgwOBhYiI8ZNQUFBQFYAVYQarVz1fgD49X/1bUFBWW1+AX4Nz//////////////////////////8WYEBRYCQBYEBRYCCBgwMDgVKQYEBSfzoytUkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhB1mRkGEL8VZbX2BAUYCDA4GFWvqRUFA9gF+BFGEHkVdgQFGRUGAfGWA/PQEWggFgQFI9glI9X2AghAE+YQeWVltgYJFQW1CRUJFQgYAVYQeoV1BfgVERW2EHsldfYQfHVluAgGAgAZBRgQGQYQfGkZBhDDFWW1uSUFBQkZBQVluAc///////////////////////////FmBAUWAkAWBAUWAggYMDA4FSkGBAUn9Hc4fRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHv/////////////////////////////////////GRZgIIIBgFF7/////////////////////////////////////4OBgxYXg1JQUFBQYEBRYQh3kZBhC/FWW19gQFGAgwOBX4Za8ZFQUD2AX4EUYQiwV2BAUZFQYB8ZYD89ARaCAWBAUj2CUj1fYCCEAT5hCLVWW2BgkVBbUFBQUFZbgHP//////////////////////////xb/W1+AX4Nz//////////////////////////8WYEBRYCQBYEBRYCCBgwMDgVKQYEBSfzoytUkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAe/////////////////////////////////////8ZFmAgggGAUXv/////////////////////////////////////g4GDFheDUlBQUFBgQFFhCX6RkGEL8VZbX2BAUYCDA4GFWvSRUFA9gF+BFGEJtldgQFGRUGAfGWA/PQEWggFgQFI9glI9X2AghAE+YQm7VltgYJFQW1CRUJFQgYAVYQnNV1BfgVERW2EJ11dfYQnsVluAgGAgAZBRgQGQYQnrkZBhDDFWW1uSUFBQkZBQVluAc///////////////////////////FmEI/GABkIEVApBgQFFfYEBRgIMDgYWIiPGTUFBQUFBQVltfgP1bX3P//////////////////////////4IWkFCRkFBWW19hCluCYQoyVluQUJGQUFZbYQprgWEKUVZbgRRhCnVXX4D9W1BWW1+BNZBQYQqGgWEKYlZbkpFQUFZbX2AggoQDEhVhCqFXYQqgYQouVltbX2EKroSChQFhCnhWW5FQUJKRUFBWW1+BkFCRkFBWW2EKyYFhCrdWW4JSUFBWW19gIIIBkFBhCuJfgwGEYQrAVluSkVBQVltfYQrygmEKMlZbkFCRkFBWW2ELAoFhCuhWW4EUYQsMV1+A/VtQVltfgTWQUGELHYFhCvlWW5KRUFBWW19gIIKEAxIVYQs4V2ELN2EKLlZbW19hC0WEgoUBYQsPVluRUFCSkVBQVltfgZBQkpFQUFZbUFZbX2ELZl+DYQtOVluRUGELcYJhC1hWW1+CAZBQkZBQVltfYQuFgmELW1ZbkVCBkFCRkFBWW1+BUZBQkZBQVltfW4OBEBVhC7ZXgIIBUYGEAVJgIIEBkFBhC5tWW1+EhAFSUFBQUFZbX2ELy4JhC49WW2EL1YGFYQtOVluTUGEL5YGFYCCGAWELmVZbgIQBkVBQkpFQUFZbX2EL/IKEYQvBVluRUIGQUJKRUFBWW2EMEIFhCrdWW4EUYQwaV1+A/VtQVltfgVGQUGEMK4FhDAdWW5KRUFBWW19gIIKEAxIVYQxGV2EMRWEKLlZbW19hDFOEgoUBYQwdVluRUFCSkVBQVv6iZGlwZnNYIhIgHVc21L8iGe/mdyqLH87OO65jQ1R1cjHatrgu+jcztlpkc29sY0MACBYAMyKAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAowJoMOgMYjAlKFgoUAAAAAAAAAAAAAAAAAAAAAAAABIxyBwoDGIwJEAFSIgoJCgIYAhD/tvRsCgkKAhhiEICzxQ0KCgoDGIwJEICEr18="}]}}} \ No newline at end of file diff --git a/hedera-node/test-clients/scripts/local_circleci.sh b/hedera-node/test-clients/scripts/local_circleci.sh deleted file mode 100755 index 35a3817d1c52..000000000000 --- a/hedera-node/test-clients/scripts/local_circleci.sh +++ /dev/null @@ -1,42 +0,0 @@ - -#!/usr/bin/env bash - -# script to run most circleci test at local macOS in batch mode -# -# Steps -# launch HGCApp -# run -# ./scripts/local_circleci.sh -# from test-clients/ -# -# - -mvn exec:java -Dexec.mainClass=com.hedera.services.bdd.suites.SuiteRunner -Dexec.args='0 3 TopicCreateSpecs' -Dexec.cleanupDaemonThreads=false - -mvn exec:java -Dexec.mainClass=com.hedera.services.bdd.suites.SuiteRunner -Dexec.args='0 3 TopicUpdateSpecs' -Dexec.cleanupDaemonThreads=false - -mvn exec:java -Dexec.mainClass=com.hedera.services.bdd.suites.SuiteRunner -Dexec.args='0 3 TopicDeleteSpecs' -Dexec.cleanupDaemonThreads=false - -mvn exec:java -Dexec.mainClass=com.hedera.services.bdd.suites.SuiteRunner -Dexec.args='0 3 SubmitMessageSpecs' -Dexec.cleanupDaemonThreads=false - -mvn exec:java -Dexec.mainClass=com.hedera.services.bdd.suites.SuiteRunner -Dexec.args='0 3 TopicGetInfoSpecs' -Dexec.cleanupDaemonThreads=false - -mvn exec:java -Dexec.mainClass=com.hedera.services.bdd.suites.SuiteRunner -Dexec.args='0 3 ConsensusThrottlesSpecs' -Dexec.cleanupDaemonThreads=false - -mvn exec:java -Dexec.mainClass=com.hedera.services.bdd.suites.SuiteRunner -Dexec.args='0 3 ControlAccountsExemptForUpdates' -Dexec.cleanupDaemonThreads=false - -mvn exec:java -Dexec.mainClass=com.hedera.services.bdd.suites.SuiteRunner -Dexec.args='0 3 CryptoCreateSuite' -Dexec.cleanupDaemonThreads=false - -mvn exec:java -Dexec.mainClass=com.hedera.services.bdd.suites.SuiteRunner -Dexec.args='0 3 CryptoRecordSanityChecks' -Dexec.cleanupDaemonThreads=false - -mvn exec:java -Dexec.mainClass=com.hedera.services.bdd.suites.SuiteRunner -Dexec.args='0 3 SuperusersAreNeverThrottled' -Dexec.cleanupDaemonThreads=false - -# non ETT - -mvn exec:java -Dexec.mainClass=MultipleCryptoTransfers -Dexec.args='0 3 ' -Dexec.cleanupDaemonThreads=false - -mvn exec:java -Dexec.mainClass=TxRecordTest -Dexec.args='0 3 ' -Dexec.cleanupDaemonThreads=false - -mvn exec:java -Dexec.mainClass=NegativeAccountCreateTest -Dexec.args='0 3 ' -Dexec.cleanupDaemonThreads=false - -mvn exec:java -Dexec.mainClass=NegativeCryptoQueryTest -Dexec.args='0 3 ' -Dexec.cleanupDaemonThreads=false diff --git a/hedera-node/test-clients/src/itest/java/ConcurrentSuites.java b/hedera-node/test-clients/src/itest/java/ConcurrentSuites.java index 8aa9bfbb23bd..c5bcc9e3e9eb 100644 --- a/hedera-node/test-clients/src/itest/java/ConcurrentSuites.java +++ b/hedera-node/test-clients/src/itest/java/ConcurrentSuites.java @@ -73,6 +73,7 @@ import com.hedera.services.bdd.suites.crypto.HollowAccountFinalizationSuite; import com.hedera.services.bdd.suites.ethereum.EthereumSuite; import com.hedera.services.bdd.suites.ethereum.HelloWorldEthereumSuite; +import com.hedera.services.bdd.suites.ethereum.NonceSuite; import com.hedera.services.bdd.suites.file.FileAppendSuite; import com.hedera.services.bdd.suites.file.FileCreateSuite; import com.hedera.services.bdd.suites.file.PermissionSemanticsSpec; @@ -178,7 +179,8 @@ static Supplier[] all() { HelloWorldEthereumSuite::new, // network info VersionInfoSpec::new, - Evm46ValidationSuite::new + Evm46ValidationSuite::new, + NonceSuite::new }; } diff --git a/hedera-node/test-clients/src/itest/java/SequentialSuites.java b/hedera-node/test-clients/src/itest/java/SequentialSuites.java index b75d36e5432c..9041d8eefb2e 100644 --- a/hedera-node/test-clients/src/itest/java/SequentialSuites.java +++ b/hedera-node/test-clients/src/itest/java/SequentialSuites.java @@ -23,6 +23,7 @@ import com.hedera.services.bdd.suites.leaky.FeatureFlagSuite; import com.hedera.services.bdd.suites.leaky.LeakyContractTestsSuite; import com.hedera.services.bdd.suites.leaky.LeakyCryptoTestsSuite; +import com.hedera.services.bdd.suites.leaky.LeakyEthereumTestsSuite; import com.hedera.services.bdd.suites.leaky.LeakySecurityModelV1Suite; import com.hedera.services.bdd.suites.misc.CannotDeleteSystemEntitiesSuite; import com.hedera.services.bdd.suites.regression.TargetNetworkPrep; @@ -48,6 +49,7 @@ static Supplier[] sequentialSuites() { TraceabilitySuite::new, LeakyContractTestsSuite::new, LeakyCryptoTestsSuite::new, + LeakyEthereumTestsSuite::new, LeakySecurityModelV1Suite::new, Create2OperationSuite::new, CannotDeleteSystemEntitiesSuite::new, diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/junit/BalanceReconciliationValidator.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/junit/BalanceReconciliationValidator.java index 19af6c2cda99..a588b61f78c9 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/junit/BalanceReconciliationValidator.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/junit/BalanceReconciliationValidator.java @@ -16,11 +16,13 @@ package com.hedera.services.bdd.junit; +import static com.hedera.services.bdd.junit.HapiTestEngine.runSpec; import static com.hedera.services.bdd.junit.TestBase.concurrentExecutionOf; import com.hedera.services.bdd.junit.utils.AccountClassifier; import com.hedera.services.bdd.suites.records.BalanceValidation; import com.hedera.services.stream.proto.RecordStreamItem; +import java.lang.reflect.InvocationTargetException; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -54,6 +56,16 @@ public void validateRecordsAndSidecars(final List recordsWit concurrentExecutionOf(validationSpecs); } + @Override + public void validateRecordsAndSidecarsHapi( + final HapiTestEnv env, final List recordsWithSidecars) + throws InvocationTargetException, IllegalAccessException { + getExpectedBalanceFrom(recordsWithSidecars); + System.out.println("Expected balances: " + expectedBalances); + + runSpec(env, new BalanceValidation(expectedBalances, accountClassifier), "validateBalances"); + } + private void getExpectedBalanceFrom(final List recordsWithSidecars) { for (final var recordWithSidecars : recordsWithSidecars) { final var items = recordWithSidecars.recordFile().getRecordStreamItemsList(); diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/junit/HapiTestEngine.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/junit/HapiTestEngine.java index cf7c50680c94..330864b94b9b 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/junit/HapiTestEngine.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/junit/HapiTestEngine.java @@ -18,17 +18,21 @@ import static com.hedera.services.bdd.junit.HapiTestEnv.HapiTestNodesType.IN_PROCESS_ALICE; import static com.hedera.services.bdd.junit.HapiTestEnv.HapiTestNodesType.OUT_OF_PROCESS_ALICE; +import static com.hedera.services.bdd.junit.RecordStreamAccess.RECORD_STREAM_ACCESS; import static org.junit.platform.commons.support.AnnotationSupport.findAnnotation; import static org.junit.platform.commons.support.AnnotationSupport.isAnnotated; import static org.junit.platform.commons.support.HierarchyTraversalMode.TOP_DOWN; import com.hedera.node.app.Hedera; +import com.hedera.services.bdd.junit.validators.BlockNoValidator; import com.hedera.services.bdd.spec.HapiSpec; import com.hedera.services.bdd.spec.props.JutilPropertySource; import com.hedera.services.bdd.suites.BddMethodIsNotATest; import com.hedera.services.bdd.suites.HapiSuite; import com.hedera.services.bdd.suites.TargetNetworkType; +import com.hedera.services.bdd.suites.records.ClosingTime; import edu.umd.cs.findbugs.annotations.NonNull; +import java.io.File; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.net.URI; @@ -41,6 +45,7 @@ import java.util.Map; import java.util.Set; import java.util.function.Predicate; +import java.util.stream.Stream; import org.apache.logging.log4j.Level; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -147,6 +152,11 @@ public TestDescriptor discover(EngineDiscoveryRequest discoveryRequest, UniqueId suites.sort(SUITE_DESCRIPTOR_COMPARATOR); suites.forEach(engineDescriptor::addChild); + // if hapi test suites are being run, add record stream validation to the engineDescriptor as well + if (!suites.isEmpty()) { + engineDescriptor.addChild(new RecordStreamValidationTestDescriptor(engineDescriptor)); + } + return engineDescriptor; } @@ -437,6 +447,112 @@ public Set getTags() { } } + private static final class RecordStreamValidationTestDescriptor extends AbstractTestDescriptor + implements Node { + + private final Logger classLogger = LogManager.getLogger(getClass()); + + private static final long MIN_GZIP_SIZE_IN_BYTES = 26; + + private static final String HAPI_TEST_STREAMS_LOC_TPL = + "hedera-node/test-clients/build/hapi-test/node%d/data/recordStreams/record0.0.%d"; + + private static final List validators = List.of( + new BlockNoValidator(), + new TransactionBodyValidator(), + new ExpiryRecordsValidator(), + new BalanceReconciliationValidator(), + new TokenReconciliationValidator()); + + public RecordStreamValidationTestDescriptor(TestDescriptor parent) { + super(parent.getUniqueId().append("validation", "recordStream"), "recordStreamValidation"); + setParent(parent); + } + + @Override + public Set getTags() { + return Set.of(TestTag.create("RECORD_STREAM_VALIDATION")); + } + + @Override + public Type getType() { + return Type.TEST; + } + + @Override + public HapiTestEngineExecutionContext execute( + HapiTestEngineExecutionContext context, DynamicTestExecutor dynamicTestExecutor) throws Exception { + final var env = context.getEnv(); + // run closing time specs + runSpec(env, new ClosingTime(), "closeLastStreamFileWithNoBalanceImpact"); + + // read record stream data + var recordLocs = hapiTestStreamLocs(); + RecordStreamAccess.Data data = RecordStreamAccess.Data.EMPTY_DATA; + for (final var recordLoc : recordLocs) { + try { + classLogger.info("Trying to read record files from {}", recordLoc); + data = RECORD_STREAM_ACCESS.readStreamDataFrom( + recordLoc, "sidecar", f -> new File(f).length() > MIN_GZIP_SIZE_IN_BYTES); + classLogger.info( + "Read {} record files from {}", data.records().size(), recordLoc); + } catch (Exception ignore) { + // We will try the next location, if any + } + if (!data.records().isEmpty()) { + break; + } + } + + // assert validators pass + final var streamData = data; + final var errorsIfAny = validators.stream() + .flatMap(v -> { + try { + // The validator will complete silently if no errors are + // found + v.validateFiles(streamData.files()); + v.validateRecordsAndSidecarsHapi(env, streamData.records()); + return Stream.empty(); + } catch (final Throwable t) { + return Stream.of(t); + } + }) + .map(Throwable::getMessage) + .toList(); + if (!errorsIfAny.isEmpty()) { + throw new AssertionError("Record stream validation failed with the following errors:\n - " + + String.join("\n - ", errorsIfAny)); + } + + return Node.super.execute(context, dynamicTestExecutor); + } + + private List hapiTestStreamLocs() { + final List locs = new ArrayList<>(HapiTestEngine.NODE_COUNT); + for (int i = 0; i < HapiTestEngine.NODE_COUNT; i++) { + locs.add(String.format(HAPI_TEST_STREAMS_LOC_TPL, i, i + 3)); + } + return locs; + } + } + + public static void runSpec(HapiTestEnv env, HapiSuite suite, String specName) + throws InvocationTargetException, IllegalAccessException { + // Get the method + final var testMethod = + ReflectionSupport.findMethod(suite.getClass(), specName).get(); + // Call the method to get the HapiSpec + testMethod.setAccessible(true); + final var spec = (HapiSpec) testMethod.invoke(suite); + spec.setTargetNetworkType(TargetNetworkType.HAPI_TEST_NETWORK); + final var result = suite.runSpecSync(spec, env.getNodes()); + // Report the result. YAY!! + if (result == HapiSuite.FinalOutcome.SUITE_FAILED) { + throw new AssertionError(spec.getName() + ": " + spec.getCause()); + } + } + private static Set getTagsIfAny(Class testClass) { // When a class has a single @Tag annotation, we retrieve it by filtering for Tag.class. // In cases where a class has multiple @Tag annotations, we use Tags.class to access all of them. diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/junit/RecordStreamValidator.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/junit/RecordStreamValidator.java index 9056c04696a8..f06777290b3c 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/junit/RecordStreamValidator.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/junit/RecordStreamValidator.java @@ -17,6 +17,7 @@ package com.hedera.services.bdd.junit; import com.hedera.services.stream.proto.RecordStreamFile; +import java.lang.reflect.InvocationTargetException; import java.util.List; public interface RecordStreamValidator { @@ -27,4 +28,9 @@ default void validateFiles(List files) { default void validateRecordsAndSidecars(List records) { // No-op } + + default void validateRecordsAndSidecarsHapi(HapiTestEnv env, List records) + throws InvocationTargetException, IllegalAccessException { + // No-op + } } diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/junit/TokenReconciliationValidator.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/junit/TokenReconciliationValidator.java index 0e742072bc2a..923a2d2317d4 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/junit/TokenReconciliationValidator.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/junit/TokenReconciliationValidator.java @@ -16,11 +16,13 @@ package com.hedera.services.bdd.junit; +import static com.hedera.services.bdd.junit.HapiTestEngine.runSpec; import static com.hedera.services.bdd.junit.TestBase.concurrentExecutionOf; import com.hedera.services.bdd.junit.utils.AccountClassifier; import com.hedera.services.bdd.junit.validators.AccountNumTokenNum; import com.hedera.services.bdd.suites.records.TokenBalanceValidation; +import java.lang.reflect.InvocationTargetException; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -52,6 +54,15 @@ public void validateRecordsAndSidecars(final List recordsWit concurrentExecutionOf(validationSpecs); } + @Override + public void validateRecordsAndSidecarsHapi( + final HapiTestEnv env, final List recordsWithSidecars) + throws InvocationTargetException, IllegalAccessException { + getExpectedBalanceFrom(recordsWithSidecars); + + runSpec(env, new TokenBalanceValidation(expectedTokenBalances, accountClassifier), "validateTokenBalances"); + } + private void getExpectedBalanceFrom(final List recordsWithSidecars) { for (final var recordWithSidecars : recordsWithSidecars) { final var items = recordWithSidecars.recordFile().getRecordStreamItemsList(); diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/HapiSpecSetup.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/HapiSpecSetup.java index 0e9c5e6bc2e7..25b823dfbed0 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/HapiSpecSetup.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/HapiSpecSetup.java @@ -318,6 +318,16 @@ public boolean autoSnapshotManagement() { return props.getBoolean("recordStream.autoSnapshotManagement"); } + /** + * Returns whether a {@link HapiSpec} doing automatic snapshot management should + * override an existing snapshot. + * + * @return whether an auto-snapshot managing {@link HapiSpec} should override an existing snapshot + */ + public boolean overrideExistingSnapshot() { + return props.getBoolean("recordStream.overrideExistingSnapshot"); + } + /** * Returns the record stream source for the {@link HapiSpec} to use when automatically taking snapshots * with {@code recordStream.autoSnapshotManagement=true}. diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/assertions/ContractFnResultAsserts.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/assertions/ContractFnResultAsserts.java index 32729a992617..2675b80e8a6a 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/assertions/ContractFnResultAsserts.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/assertions/ContractFnResultAsserts.java @@ -364,4 +364,13 @@ public ContractFnResultAsserts contractWithNonce(final ContractID contractID, fi }); return this; } + + public ContractFnResultAsserts signerNonce(final Long expectedNonce) { + registerProvider((spec, o) -> { + ContractFunctionResult result = (ContractFunctionResult) o; + assertEquals( + expectedNonce.longValue(), result.getSignerNonce().getValue(), "Wrong signer nonce expectation"); + }); + return this; + } } diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/queries/contract/HapiContractCallLocal.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/queries/contract/HapiContractCallLocal.java index 9a18bcdc61d6..149d528fa696 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/queries/contract/HapiContractCallLocal.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/queries/contract/HapiContractCallLocal.java @@ -252,7 +252,7 @@ private Query getContractCallLocal(HapiSpec spec, Transaction payment, boolean c @Override protected long costOnlyNodePayment(HapiSpec spec) throws Throwable { - return spec.fees().forOp(HederaFunctionality.ContractCallLocal, FeeBuilder.getCostForQueryByIDOnly()); + return spec.fees().forOp(HederaFunctionality.ContractCallLocal, FeeBuilder.getCostForQueryByIdOnly()); } @Override diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/queries/contract/HapiGetContractBytecode.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/queries/contract/HapiGetContractBytecode.java index 7a619a10088b..b3a58558ecec 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/queries/contract/HapiGetContractBytecode.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/queries/contract/HapiGetContractBytecode.java @@ -125,7 +125,7 @@ private Query getContractBytecodeQuery(HapiSpec spec, Transaction payment, boole @Override protected long costOnlyNodePayment(HapiSpec spec) { - return spec.fees().forOp(HederaFunctionality.ContractGetBytecode, FeeBuilder.getCostForQueryByIDOnly()); + return spec.fees().forOp(HederaFunctionality.ContractGetBytecode, FeeBuilder.getCostForQueryByIdOnly()); } @Override diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/queries/contract/HapiGetContractRecords.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/queries/contract/HapiGetContractRecords.java index 5921b75b4b95..9e7652e4930e 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/queries/contract/HapiGetContractRecords.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/queries/contract/HapiGetContractRecords.java @@ -150,7 +150,7 @@ private Query getContractRecordsQuery(HapiSpec spec, Transaction payment, boolea @Override protected long costOnlyNodePayment(HapiSpec spec) throws Throwable { - return spec.fees().forOp(HederaFunctionality.ContractGetRecords, fees.getCostForQueryByIDOnly()); + return spec.fees().forOp(HederaFunctionality.ContractGetRecords, fees.getCostForQueryByIdOnly()); } @Override diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/queries/crypto/HapiGetAccountBalance.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/queries/crypto/HapiGetAccountBalance.java index 73f0381d0288..2a10b9a217c3 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/queries/crypto/HapiGetAccountBalance.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/queries/crypto/HapiGetAccountBalance.java @@ -20,7 +20,6 @@ import static com.hedera.services.bdd.spec.queries.QueryUtils.answerHeader; import static com.hedera.services.bdd.spec.transactions.TxnUtils.asTokenId; import static com.hedera.services.bdd.suites.HapiSuite.GENESIS; -import static com.hedera.services.yahcli.output.CommonMessages.COMMON_MESSAGES; import static org.junit.jupiter.api.Assertions.assertEquals; import com.google.common.base.MoreObjects; @@ -311,7 +310,7 @@ protected void submitWith(HapiSpec spec, Transaction payment) throws Throwable { log.info(message); } if (yahcliLogger) { - COMMON_MESSAGES.info(String.format("%20s | %20d |", repr, balance)); + System.out.println(".i. " + String.format("%20s | %20d |", repr, balance)); } } } diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/queries/meta/HapiGetTxnRecord.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/queries/meta/HapiGetTxnRecord.java index fe3490c9ff76..9a5a5210253b 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/queries/meta/HapiGetTxnRecord.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/queries/meta/HapiGetTxnRecord.java @@ -33,6 +33,7 @@ import static org.junit.jupiter.api.Assertions.assertArrayEquals; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertTrue; import com.esaulpaugh.headlong.abi.ABIJSON; @@ -94,6 +95,7 @@ public class HapiGetTxnRecord extends HapiQueryOp { private String txn; private boolean scheduled = false; + private boolean hasScheduledTransactionId = false; private boolean assertNothing = false; private boolean useDefaultTxnId = false; private boolean requestDuplicates = false; @@ -236,6 +238,11 @@ public HapiGetTxnRecord scheduled() { return this; } + public HapiGetTxnRecord hasScheduledTransactionId() { + hasScheduledTransactionId = true; + return this; + } + public HapiGetTxnRecord assertingOnlyPriority() { assertOnlyPriority = true; return this; @@ -706,6 +713,10 @@ private void assertCorrectRecord(final HapiSpec spec, final TransactionRecord ac assertTrue(actualByteString.isEmpty()); assertTrue(actualRandomNum >= 0 && actualRandomNum < pseudorandomNumberRange.get()); } + if (hasScheduledTransactionId) { + final var scheduledTransactionId = actualRecord.getReceipt().getScheduledTransactionID(); + assertNotNull(scheduledTransactionId); + } } private void assertNoStakingAccountFees(final TransferList transferList) { diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/queries/meta/HapiGetVersionInfo.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/queries/meta/HapiGetVersionInfo.java index 4bb09820c70d..d2d907d544fb 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/queries/meta/HapiGetVersionInfo.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/queries/meta/HapiGetVersionInfo.java @@ -18,7 +18,6 @@ import static com.hedera.services.bdd.spec.queries.QueryUtils.answerCostHeader; import static com.hedera.services.bdd.spec.queries.QueryUtils.answerHeader; -import static com.hedera.services.yahcli.output.CommonMessages.COMMON_MESSAGES; import com.google.common.base.MoreObjects; import com.hedera.services.bdd.spec.HapiSpec; @@ -106,9 +105,10 @@ protected void submitWith(HapiSpec spec, Transaction payment) { } if (yahcliLogger) { - COMMON_MESSAGES.info(String.format( - "Versions :: HAPI protobufs @ %s, Hedera Services @ %s", - asReadable(info.getHapiProtoVersion()), asReadable(info.getHederaServicesVersion()))); + System.out.println(".i. " + + String.format( + "Versions :: HAPI protobufs @ %s, Hedera Services @ %s", + asReadable(info.getHapiProtoVersion()), asReadable(info.getHederaServicesVersion()))); } } diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/transactions/contract/HapiEthereumCall.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/transactions/contract/HapiEthereumCall.java index 1b7aa96ff1dd..b735f0cd2a86 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/transactions/contract/HapiEthereumCall.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/transactions/contract/HapiEthereumCall.java @@ -53,6 +53,7 @@ import com.hederahashgraph.api.proto.java.TransactionRecord; import com.hederahashgraph.api.proto.java.TransactionResponse; import edu.umd.cs.findbugs.annotations.NonNull; +import edu.umd.cs.findbugs.annotations.Nullable; import java.math.BigInteger; import java.util.ArrayList; import java.util.Arrays; @@ -90,6 +91,7 @@ public class HapiEthereumCall extends HapiBaseCall { private String account = null; private ByteString alias = null; private byte[] explicitTo = null; + private Integer chainId = CHAIN_ID; public HapiEthereumCall withExplicitParams(final Supplier supplier) { explicitHexedParams = Optional.of(supplier); @@ -241,6 +243,11 @@ public HapiEthereumCall nonce(long nonce) { return this; } + public HapiEthereumCall chainId(@Nullable Integer chainId) { + this.chainId = chainId; + return this; + } + public HapiEthereumCall gasPrice(long gasPrice) { this.gasPrice = WEIBARS_TO_TINYBARS.multiply(BigInteger.valueOf(gasPrice)); return this; @@ -330,7 +337,7 @@ protected Consumer opBodyDef(HapiSpec spec) throws Thro final var ethTxData = new EthTxData( null, type, - Integers.toBytes(CHAIN_ID), + Integers.toBytes(chainId), nonce, gasPriceBytes, maxPriorityGasBytes, diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/transactions/contract/HapiEthereumContractCreate.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/transactions/contract/HapiEthereumContractCreate.java index a3f4581f08b5..fc8578c7eb2a 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/transactions/contract/HapiEthereumContractCreate.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/transactions/contract/HapiEthereumContractCreate.java @@ -58,12 +58,13 @@ public class HapiEthereumContractCreate extends HapiBaseContractCreate ethFileID = Optional.empty(); private boolean invalidateEthData = false; private Optional maxGasAllowance = Optional.of(ONE_HUNDRED_HBARS); private String privateKeyRef = SECP_256K1_SOURCE_KEY; + private Integer chainId = CHAIN_ID; @Nullable private BiConsumer spec; @@ -83,6 +84,11 @@ public HapiEthereumContractCreate advertisingCreation() { return this; } + public HapiEthereumContractCreate chainId(Integer chainId) { + this.chainId = chainId; + return this; + } + public HapiEthereumContractCreate(String contract) { super(contract); this.payer = Optional.of(RELAYER); @@ -173,6 +179,11 @@ public HapiEthereumContractCreate gasPrice(long gasPrice) { return this; } + public HapiEthereumContractCreate maxFeePerGas(long maxFeePerGas) { + this.maxFeePerGas = WEIBARS_TO_TINYBARS.multiply(BigInteger.valueOf(maxFeePerGas)); + return this; + } + public HapiEthereumContractCreate maxPriorityGas(long maxPriorityGas) { this.maxPriorityGas = maxPriorityGas; return this; @@ -212,7 +223,7 @@ protected Consumer opBodyDef(HapiSpec spec) throws Thro final var ethTxData = new EthTxData( null, type, - Integers.toBytes(CHAIN_ID), + Integers.toBytes(chainId), nonce, gasPriceBytes, maxPriorityGasBytes, diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/utilops/UtilVerbs.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/utilops/UtilVerbs.java index 5823e9b8482b..196539c0c294 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/utilops/UtilVerbs.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/utilops/UtilVerbs.java @@ -54,7 +54,6 @@ import static com.hedera.services.bdd.suites.TargetNetworkType.HAPI_TEST_NETWORK; import static com.hedera.services.bdd.suites.contract.Utils.asAddress; import static com.hedera.services.bdd.suites.contract.traceability.TraceabilitySuite.SIDECARS_PROP; -import static com.hedera.services.yahcli.output.CommonMessages.COMMON_MESSAGES; import static com.hederahashgraph.api.proto.java.FreezeType.FREEZE_ABORT; import static com.hederahashgraph.api.proto.java.FreezeType.FREEZE_ONLY; import static com.hederahashgraph.api.proto.java.FreezeType.FREEZE_UPGRADE; @@ -981,7 +980,7 @@ private static ByteString defaultFeeSchedules() { throw new IllegalArgumentException(e); } var stylized = new String(baos.toByteArray()); - return ByteString.copyFrom(serde.toRawFile(stylized)); + return ByteString.copyFrom(serde.toRawFile(stylized, null)); } public static HapiSpecOperation createLargeFile(String payer, String fileName, ByteString byteString) { @@ -1028,10 +1027,10 @@ public static HapiSpecOperation updateSpecialFile( uploadProgress.initializeFor(appendsRequired); if (appendsToSkip == 0) { - COMMON_MESSAGES.info( - "Beginning upload for " + fileName + " (" + appendsRequired + " appends required)"); + System.out.println( + ".i. Beginning upload for " + fileName + " (" + appendsRequired + " appends required)"); } else { - COMMON_MESSAGES.info("Continuing upload for " + System.out.println(".i. Continuing upload for " + fileName + " with " + appendsToSkip @@ -1048,9 +1047,9 @@ public static HapiSpecOperation updateSpecialFile( final var updateSubOp = fileUpdate(fileName) .fee(ONE_HUNDRED_HBARS) .contents(contents.substring(0, position)) - .alertingPre(fid -> - COMMON_MESSAGES.info("Submitting initial update for file" + " 0.0." + fid.getFileNum())) - .alertingPost(code -> COMMON_MESSAGES.info("Finished initial update with " + code)) + .alertingPre(fid -> System.out.println( + ".i. Submitting initial update for file" + " 0.0." + fid.getFileNum())) + .alertingPost(code -> System.out.println(".i. Finished initial update with " + code)) .noLogging() .payingWith(payer) .signedBy(payer); @@ -1132,8 +1131,8 @@ private static void finishAppendsFor( final var fixedAppendsHere = appendsHere.get() + 1; appendSubOp.alertingPre(fid -> { burstStart.set(Instant.now()); - COMMON_MESSAGES.info( - "Starting burst " + fixedBurstNo + "/" + numBursts + " (" + fixedAppendsHere + " ops)"); + System.out.println(".i. Starting burst " + fixedBurstNo + "/" + numBursts + " (" + + fixedAppendsHere + " ops)"); }); isFirstAppend = false; } @@ -1142,7 +1141,7 @@ private static void finishAppendsFor( appendSubOp.alertingPost(code -> { final var burstSecs = Duration.between(burstStart.get(), Instant.now()) .getSeconds(); - COMMON_MESSAGES.info("Completed burst #" + System.out.println(".i. Completed burst #" + fixedBurstNo + "/" + numBursts diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/utilops/domain/ParsedItem.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/utilops/domain/ParsedItem.java index d21eed81d5aa..446a09a444d6 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/utilops/domain/ParsedItem.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/utilops/domain/ParsedItem.java @@ -16,11 +16,13 @@ package com.hedera.services.bdd.spec.utilops.domain; +import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.FEE_SCHEDULE_FILE_PART_UPLOADED; import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.SUCCESS; import com.google.protobuf.InvalidProtocolBufferException; import com.hedera.services.stream.proto.RecordStreamItem; import com.hederahashgraph.api.proto.java.FileID; +import com.hederahashgraph.api.proto.java.ResponseCodeEnum; import com.hederahashgraph.api.proto.java.SignedTransaction; import com.hederahashgraph.api.proto.java.TransactionBody; import com.hederahashgraph.api.proto.java.TransactionRecord; @@ -35,6 +37,12 @@ public record ParsedItem(TransactionBody itemBody, TransactionRecord itemRecord) { private static final FileID PROPERTIES_FILE_ID = FileID.newBuilder().setFileNum(121).build(); + private static final FileID FEE_SCHEDULE_FILE_ID = + FileID.newBuilder().setFileNum(111).build(); + + public ResponseCodeEnum status() { + return itemRecord.getReceipt().getStatus(); + } public static ParsedItem parse(final RecordStreamItem item) throws InvalidProtocolBufferException { final var txn = item.getTransaction(); @@ -49,9 +57,21 @@ public static ParsedItem parse(final RecordStreamItem item) throws InvalidProtoc return new ParsedItem(body, item.getRecord()); } - public boolean isPropertyOverride() { - return itemRecord.getReceipt().getStatus() == SUCCESS - && itemBody.hasFileUpdate() - && PROPERTIES_FILE_ID.equals(itemBody.getFileUpdate().getFileID()); + public boolean isSpecialFileChange() { + var fileID = FileID.newBuilder().build(); + final boolean isFileUpdate = itemBody.hasFileUpdate(); + if (isFileUpdate) { + fileID = itemBody.getFileUpdate().getFileID(); + } + + final boolean isFileAppend = itemBody.hasFileAppend(); + if (isFileAppend) { + fileID = itemBody.getFileAppend().getFileID(); + } + + final var status = itemRecord.getReceipt().getStatus(); + return (status == SUCCESS || status == FEE_SCHEDULE_FILE_PART_UPLOADED) + && (isFileUpdate || isFileAppend) + && (PROPERTIES_FILE_ID.equals(fileID) || FEE_SCHEDULE_FILE_ID.equals(fileID)); } } diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/utilops/domain/RecordSnapshot.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/utilops/domain/RecordSnapshot.java index 8019de3d23d2..63a36090e2e7 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/utilops/domain/RecordSnapshot.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/utilops/domain/RecordSnapshot.java @@ -58,7 +58,7 @@ public void setEncodedItems(@NonNull final List encodedItems) { public List parsedItems() { return encodedItems.stream() .map(EncodedItem::asParsedItem) - .filter(pi -> !pi.isPropertyOverride()) + .filter(pi -> !pi.isSpecialFileChange()) .toList(); } } diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/utilops/inventory/AccessoryUtils.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/utilops/inventory/AccessoryUtils.java new file mode 100644 index 000000000000..ee2b23dca5aa --- /dev/null +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/utilops/inventory/AccessoryUtils.java @@ -0,0 +1,121 @@ +/* + * Copyright (C) 2024 Hedera Hashgraph, LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.hedera.services.bdd.spec.utilops.inventory; + +import com.hedera.services.bdd.spec.persistence.SpecKey; +import edu.umd.cs.findbugs.annotations.NonNull; +import java.io.BufferedReader; +import java.io.File; +import java.io.IOException; +import java.io.InputStreamReader; +import java.nio.file.Paths; +import java.util.List; +import java.util.Optional; +import org.apache.logging.log4j.Level; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.status.StatusConsoleListener; +import org.apache.logging.log4j.status.StatusLogger; + +public class AccessoryUtils { + private AccessoryUtils() { + throw new UnsupportedOperationException("Utility Class"); + } + + public static Optional keyFileAt(String sansExt) { + var pemFile = Paths.get(sansExt + ".pem").toFile(); + if (pemFile.exists()) { + return Optional.of(pemFile); + } + + var wordsFile = Paths.get(sansExt + ".words").toFile(); + if (wordsFile.exists()) { + return Optional.of(wordsFile); + } + + var hexedFile = Paths.get(sansExt + ".hex").toFile(); + if (hexedFile.exists()) { + return Optional.of(hexedFile); + } + + return Optional.empty(); + } + + public static boolean isValid(File keyFile, Optional passphrase) { + return passphrase.isPresent() && unlocks(keyFile, passphrase.get()); + } + + public static Optional passFileFor(File pemFile) { + var absPath = pemFile.getAbsolutePath(); + var passFile = new File(absPath.replace(".pem", ".pass")); + return passFile.exists() ? Optional.of(passFile) : Optional.empty(); + } + + public static void setLogLevels(Level logLevel, @NonNull final List> suites) { + final var statusLogger = StatusLogger.getLogger(); + statusLogger.registerListener(new StatusConsoleListener(logLevel)); + suites.forEach(cls -> setLogLevel(cls, logLevel)); + } + + public static Optional promptForPassphrase(String pemLoc, String prompt, int maxAttempts) { + var pemFile = new File(pemLoc); + String fullPrompt = prompt + ": "; + char[] passphrase; + while (maxAttempts-- > 0) { + passphrase = readCandidate(fullPrompt); + var asString = new String(passphrase); + if (unlocks(pemFile, asString)) { + return Optional.of(asString); + } else { + if (maxAttempts > 0) { + System.out.println( + "Sorry, that isn't it! (Don't worry, still " + maxAttempts + " attempts remaining.)"); + } else { + return Optional.empty(); + } + } + } + throw new AssertionError("Impossible!"); + } + + static boolean unlocks(File keyFile, String passphrase) { + try { + SpecKey.readFirstKpFromPem(keyFile, passphrase); + return true; + } catch (Exception ignore) { + return false; + } + } + + private static void setLogLevel(Class cls, Level logLevel) { + ((org.apache.logging.log4j.core.Logger) LogManager.getLogger(cls)).setLevel(logLevel); + } + + private static char[] readCandidate(String prompt) { + System.out.print(prompt); + System.out.flush(); + if (System.console() != null) { + return System.console().readPassword(); + } else { + var reader = new BufferedReader(new InputStreamReader(System.in)); + try { + return reader.readLine().toCharArray(); + } catch (IOException e) { + return new char[0]; + } + } + } +} diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/utilops/inventory/NewSpecKey.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/utilops/inventory/NewSpecKey.java index fb266783097d..04f781223efd 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/utilops/inventory/NewSpecKey.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/utilops/inventory/NewSpecKey.java @@ -18,7 +18,6 @@ import static com.hedera.services.bdd.spec.keys.DefaultKeyGen.DEFAULT_KEY_GEN; import static com.hedera.services.bdd.spec.keys.KeyFactory.KeyType; -import static com.hedera.services.yahcli.output.CommonMessages.COMMON_MESSAGES; import static com.swirlds.common.utility.CommonUtils.hex; import com.google.common.base.MoreObjects; @@ -144,7 +143,7 @@ protected boolean submitOp(HapiSpec spec) throws Throwable { final var exportPass = immediateExportPass.get(); exportWithPass(spec, name, exportLoc, exportPass); if (verboseLoggingOn && yahcliLogger) { - COMMON_MESSAGES.info("Exported a newly generated key in PEM format to " + exportLoc); + System.out.println(".i. Exported a newly generated key in PEM format to " + exportLoc); } } if (verboseLoggingOn && !yahcliLogger) { diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/utilops/inventory/SpecKeyFromFile.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/utilops/inventory/SpecKeyFromFile.java index b4268de04f17..cdf5b20bdbb2 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/utilops/inventory/SpecKeyFromFile.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/utilops/inventory/SpecKeyFromFile.java @@ -16,13 +16,14 @@ package com.hedera.services.bdd.spec.utilops.inventory; +import static com.hedera.services.bdd.spec.utilops.inventory.AccessoryUtils.isValid; +import static com.hedera.services.bdd.spec.utilops.inventory.AccessoryUtils.keyFileAt; +import static com.hedera.services.bdd.spec.utilops.inventory.AccessoryUtils.passFileFor; +import static com.hedera.services.bdd.spec.utilops.inventory.AccessoryUtils.promptForPassphrase; import static com.hedera.services.bdd.spec.utilops.inventory.NewSpecKey.exportWithPass; import static com.hedera.services.bdd.spec.utilops.inventory.SpecKeyFromMnemonic.createAndLinkFromMnemonic; import static com.hedera.services.bdd.spec.utilops.inventory.SpecKeyFromMnemonic.createAndLinkSimpleKey; import static com.hedera.services.bdd.spec.utilops.inventory.SpecKeyFromPem.incorporatePem; -import static com.hedera.services.yahcli.config.ConfigManager.isValid; -import static com.hedera.services.yahcli.config.ConfigUtils.*; -import static com.hedera.services.yahcli.output.CommonMessages.COMMON_MESSAGES; import com.google.common.base.MoreObjects; import com.hedera.services.bdd.spec.HapiSpec; @@ -116,7 +117,7 @@ protected boolean submitOp(HapiSpec spec) throws Throwable { final var exportPass = finalPassphrase.orElse(immediateExportPass.get()); exportWithPass(spec, name, exportLoc, exportPass); if (verboseLoggingOn && yahcliLogger) { - COMMON_MESSAGES.info("Exported key from " + flexLoc + " to " + exportLoc); + System.out.println(".i. Exported key from " + flexLoc + " to " + exportLoc); } } return false; diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/utilops/records/AutoSnapshotModeOp.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/utilops/records/AutoSnapshotModeOp.java index 24c799683c0c..8c19fd965ed2 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/utilops/records/AutoSnapshotModeOp.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/utilops/records/AutoSnapshotModeOp.java @@ -64,7 +64,7 @@ public AutoSnapshotModeOp( @Override protected boolean submitOp(@NonNull final HapiSpec spec) throws Throwable { final var maybeSnapshot = SnapshotModeOp.maybeLoadSnapshotFor(spec); - if (maybeSnapshot.isPresent()) { + if (maybeSnapshot.isPresent() && !spec.setup().overrideExistingSnapshot()) { final var snapshotMode = (autoMatchSource == MONO_SERVICE) ? SnapshotMode.FUZZY_MATCH_AGAINST_MONO_STREAMS : SnapshotMode.FUZZY_MATCH_AGAINST_HAPI_TEST_STREAMS; diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/utilops/records/SnapshotModeOp.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/utilops/records/SnapshotModeOp.java index af805f055aa5..82a329243566 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/utilops/records/SnapshotModeOp.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/utilops/records/SnapshotModeOp.java @@ -53,6 +53,7 @@ import com.hederahashgraph.api.proto.java.AccountID; import com.hederahashgraph.api.proto.java.ContractID; import com.hederahashgraph.api.proto.java.FileID; +import com.hederahashgraph.api.proto.java.ResponseCodeEnum; import com.hederahashgraph.api.proto.java.ScheduleID; import com.hederahashgraph.api.proto.java.TokenID; import com.hederahashgraph.api.proto.java.TopicID; @@ -184,8 +185,7 @@ public class SnapshotModeOp extends UtilOp implements SnapshotOp { public static void main(String... args) throws IOException { // Helper to review the snapshot saved for a particular HapiSuite-HapiSpec combination - final var snapshotFileMeta = - new SnapshotFileMeta("HelloWorldEthereum", "createWithSelfDestructInConstructorHasSaneRecord"); + final var snapshotFileMeta = new SnapshotFileMeta("ERCPrecompile", "getErc721TokenURIFromErc20TokenFails"); final var maybeSnapshot = suiteSnapshotsFrom( resourceLocOf(PROJECT_ROOT_SNAPSHOT_RESOURCES_LOC, snapshotFileMeta.suiteName())) .flatMap( @@ -256,8 +256,9 @@ static Optional maybeLoadSnapshotFor(@NonNull final HapiSpec spe @Override public boolean hasWorkToDo() { - // We leave the spec name null in submitOp() if we are running against a target network that - // doesn't match the SnapshotMode of this operation; or if the HapiSpec is non-deterministic + // We leave the snapshot file metadata null in submitOp() if we are running against a + // target network that doesn't match the SnapshotMode of this operation; or if the + // HapiSpec is non-deterministic return snapshotFileMeta != null; } @@ -290,10 +291,17 @@ public void finishLifecycle(@NonNull final HapiSpec spec) { .toList(); // We only want to snapshot or fuzzy-match the records that come after the placeholder creation boolean placeholderFound = false; + // For statuses that only mono-service rejects at ingest, we need to skip fuzzy-matching; + // unless there is some special case in the spec where mono-service will still use them + // (primarily because they appear in a contract operation's child records) + final Set statusesToIgnore = !matchModes.contains(EXPECT_STREAMLINED_INGEST_RECORDS) + ? spec.setup().streamlinedIngestChecks() + : EnumSet.noneOf(ResponseCodeEnum.class); for (final var item : allItems) { final var parsedItem = ParsedItem.parse(item); - if (parsedItem.isPropertyOverride()) { - // Property overrides vary with the previous contents of 0.0.121 + if (parsedItem.isSpecialFileChange()) { + // Special file changes vary from their previous contents e.g. file update or append to 0.0.121 or + // 0.0.111 continue; } final var body = parsedItem.itemBody(); @@ -301,14 +309,7 @@ public void finishLifecycle(@NonNull final HapiSpec spec) { // We cannot ever expect to match node stake update export sequencing continue; } - if (spec.setup() - .streamlinedIngestChecks() - .contains(parsedItem.itemRecord().getReceipt().getStatus()) - && !matchModes.contains(EXPECT_STREAMLINED_INGEST_RECORDS)) { - // There are no records written in mono-service when a transaction fails in ingest. - // But in modular service we write them. While validating fuzzy records, we always skip the records - // with status in spec.streamlinedIngestChecks. But for some error codes like INVALID_ACCOUNT_ID, - // which are thrown in both ingest and handle, we need to validate the records. + if (statusesToIgnore.contains(parsedItem.status())) { continue; } if (!placeholderFound) { diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/consensus/TopicDeleteSuite.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/consensus/TopicDeleteSuite.java index 9b54185e3461..6db8f32f3f1c 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/consensus/TopicDeleteSuite.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/consensus/TopicDeleteSuite.java @@ -73,6 +73,9 @@ final HapiSpec cannotDeleteAccountAsTopic() { @HapiTest final HapiSpec topicIdIsValidated() { + // Fully non-deterministic for fuzzy matching because the test uses an absolute entity number (i.e. + // 100.232.4534) + // but fuzzy matching compares relative entity numbers return defaultHapiSpec("topicIdIsValidated", FULLY_NONDETERMINISTIC) .given() .when() diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/evm/Evm46ValidationSuite.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/evm/Evm46ValidationSuite.java index 5689b24a4bc7..55871af07f0f 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/evm/Evm46ValidationSuite.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/evm/Evm46ValidationSuite.java @@ -125,7 +125,6 @@ public class Evm46ValidationSuite extends HapiSuite { private static final String DYNAMIC_EVM_PROPERTY = "contracts.evm.version.dynamic"; private static final String EVM_VERSION_046 = "v0.46"; private static final String BALANCE_OF = "balanceOf"; - public static final List nonExistingSystemAccounts = List.of(0L, 1L, 9L, 10L, 358L, 359L, 360L, 361L, 750L, 751L); public static final List existingSystemAccounts = List.of(999L, 1000L); diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/hapi/ContractCallLocalSuite.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/hapi/ContractCallLocalSuite.java index c8920c26b3a3..e67e07eeb84c 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/hapi/ContractCallLocalSuite.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/hapi/ContractCallLocalSuite.java @@ -45,10 +45,12 @@ import static com.hedera.services.bdd.suites.contract.Utils.getABIFor; import static com.hedera.services.bdd.suites.crypto.AutoCreateUtils.updateSpecFor; import static com.hedera.services.bdd.suites.utils.MiscEETUtils.metadata; +import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.BUSY; import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.CONTRACT_DELETED; import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.INSUFFICIENT_PAYER_BALANCE; import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.INSUFFICIENT_TX_FEE; import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.INVALID_CONTRACT_ID; +import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.OK; import static org.junit.jupiter.api.Assertions.assertEquals; import com.google.protobuf.ByteString; @@ -297,7 +299,9 @@ final HapiSpec callLocalDoesNotCheckSignaturesNorPayer() { .when(contractCall(CONTRACT, "create").gas(785_000)) .then(withOpContext((spec, opLog) -> IntStream.range(0, 2000).forEach(i -> { final var create = cryptoCreate("account #" + i).deferStatusResolution(); - final var callLocal = contractCallLocal(CONTRACT, "getIndirect"); + final var callLocal = contractCallLocal(CONTRACT, "getIndirect") + .nodePayment(ONE_HBAR) + .hasAnswerOnlyPrecheckFrom(OK, BUSY); allRunFor(spec, create, callLocal); }))); } diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/hapi/ContractCreateSuite.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/hapi/ContractCreateSuite.java index 6d5516a0b5a8..f54653396fda 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/hapi/ContractCreateSuite.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/hapi/ContractCreateSuite.java @@ -714,7 +714,7 @@ private EthTxData placeholderEthTx() { BigInteger.ONE.toByteArray(), BigInteger.ONE.toByteArray(), BigInteger.ONE.toByteArray(), - 1234, + 150_000, new byte[] {}, BigInteger.ONE, new byte[] {}, diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/opcodes/ExtCodeCopyOperationSuite.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/opcodes/ExtCodeCopyOperationSuite.java index 270bff9caab6..86c3d8a07780 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/opcodes/ExtCodeCopyOperationSuite.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/opcodes/ExtCodeCopyOperationSuite.java @@ -30,6 +30,9 @@ import static com.hedera.services.bdd.spec.utilops.CustomSpecAssert.allRunFor; import static com.hedera.services.bdd.spec.utilops.UtilVerbs.withOpContext; import static com.hedera.services.bdd.spec.utilops.records.SnapshotMatchMode.FULLY_NONDETERMINISTIC; +import static com.hedera.services.bdd.spec.utilops.records.SnapshotMatchMode.NONDETERMINISTIC_FUNCTION_PARAMETERS; +import static com.hedera.services.bdd.suites.contract.Utils.mirrorAddrWith; +import static com.hedera.services.bdd.suites.contract.evm.Evm46ValidationSuite.systemAccounts; import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.OK; import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.SUCCESS; @@ -37,6 +40,7 @@ import com.hedera.services.bdd.junit.HapiTest; import com.hedera.services.bdd.junit.HapiTestSuite; import com.hedera.services.bdd.spec.HapiSpec; +import com.hedera.services.bdd.spec.HapiSpecOperation; import com.hedera.services.bdd.suites.HapiSuite; import java.util.List; import org.apache.logging.log4j.LogManager; @@ -56,7 +60,7 @@ public static void main(String[] args) { @Override public List getSpecsInSuite() { - return List.of(verifiesExistence()); + return List.of(verifiesExistence(), testExtCodeCopyWithSystemAccounts()); } @Override @@ -123,6 +127,40 @@ contract, codeCopyOf, asHeadlongAddress(contractAddress)) })); } + @HapiTest + HapiSpec testExtCodeCopyWithSystemAccounts() { + final var contract = "ExtCodeOperationsChecker"; + final var emptyBytecode = ByteString.EMPTY; + final var codeCopyOf = "codeCopyOf"; + final var account = "account"; + final HapiSpecOperation[] opsArray = new HapiSpecOperation[systemAccounts.size() * 2]; + + for (int i = 0; i < systemAccounts.size(); i++) { + // add contract call for all accounts in the list + opsArray[i] = contractCall(contract, codeCopyOf, mirrorAddrWith(systemAccounts.get(i))) + .hasKnownStatus(SUCCESS); + + // add contract call local for all accounts in the list + int finalI = i; + opsArray[systemAccounts.size() + i] = withOpContext((spec, opLog) -> { + final var accountSolidityAddress = mirrorAddrWith(systemAccounts.get(finalI)); + + final var accountCodeCallLocal = contractCallLocal(contract, codeCopyOf, accountSolidityAddress) + .saveResultTo("accountCode"); + allRunFor(spec, accountCodeCallLocal); + + final var accountCode = spec.registry().getBytes("accountCode"); + + Assertions.assertArrayEquals(emptyBytecode.toByteArray(), accountCode); + }); + } + + return defaultHapiSpec("testExtCodeCopyWithSystemAccounts", NONDETERMINISTIC_FUNCTION_PARAMETERS) + .given(uploadInitCode(contract), contractCreate(contract), cryptoCreate(account)) + .when() + .then(opsArray); + } + @Override protected Logger getResultsLogger() { return LOG; diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/opcodes/ExtCodeHashOperationSuite.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/opcodes/ExtCodeHashOperationSuite.java index 3cd80d060e29..d00bfaffbe5e 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/opcodes/ExtCodeHashOperationSuite.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/opcodes/ExtCodeHashOperationSuite.java @@ -30,6 +30,10 @@ import static com.hedera.services.bdd.spec.utilops.CustomSpecAssert.allRunFor; import static com.hedera.services.bdd.spec.utilops.UtilVerbs.withOpContext; import static com.hedera.services.bdd.spec.utilops.records.SnapshotMatchMode.NONDETERMINISTIC_FUNCTION_PARAMETERS; +import static com.hedera.services.bdd.suites.contract.Utils.FunctionType.FUNCTION; +import static com.hedera.services.bdd.suites.contract.Utils.getABIFor; +import static com.hedera.services.bdd.suites.contract.Utils.mirrorAddrWith; +import static com.hedera.services.bdd.suites.contract.evm.Evm46ValidationSuite.systemAccounts; import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.OK; import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.SUCCESS; @@ -37,6 +41,8 @@ import com.hedera.services.bdd.junit.HapiTest; import com.hedera.services.bdd.junit.HapiTestSuite; import com.hedera.services.bdd.spec.HapiSpec; +import com.hedera.services.bdd.spec.HapiSpecOperation; +import com.hedera.services.bdd.spec.assertions.ContractFnResultAsserts; import com.hedera.services.bdd.suites.HapiSuite; import java.util.List; import org.apache.logging.log4j.LogManager; @@ -58,7 +64,7 @@ public static void main(String[] args) { @Override public List getSpecsInSuite() { - return List.of(verifiesExistence()); + return List.of(verifiesExistence(), testExtCodeHashWithSystemAccounts()); } @Override @@ -124,6 +130,33 @@ contract, hashOf, asHeadlongAddress(contractAddress)) })); } + @HapiTest + HapiSpec testExtCodeHashWithSystemAccounts() { + final var contract = "ExtCodeOperationsChecker"; + final var hashOf = "hashOf"; + final String account = "account"; + final HapiSpecOperation[] opsArray = new HapiSpecOperation[systemAccounts.size() * 2]; + + for (int i = 0; i < systemAccounts.size(); i++) { + // add contract call for all accounts in the list + opsArray[i] = contractCall(contract, hashOf, mirrorAddrWith(systemAccounts.get(i))) + .hasKnownStatus(SUCCESS); + + // add contract call local for all accounts in the list + opsArray[systemAccounts.size() + i] = contractCallLocal( + contract, hashOf, mirrorAddrWith(systemAccounts.get(i))) + .has(ContractFnResultAsserts.resultWith() + .resultThruAbi( + getABIFor(FUNCTION, hashOf, contract), + ContractFnResultAsserts.isLiteralResult(new Object[] {new byte[32]}))); + } + + return defaultHapiSpec("testExtCodeHashWithSystemAccounts", NONDETERMINISTIC_FUNCTION_PARAMETERS) + .given(uploadInitCode(contract), contractCreate(contract), cryptoCreate(account)) + .when() + .then(opsArray); + } + @Override protected Logger getResultsLogger() { return LOG; diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/opcodes/ExtCodeSizeOperationSuite.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/opcodes/ExtCodeSizeOperationSuite.java index 55a91aa00216..1c1d0c100f18 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/opcodes/ExtCodeSizeOperationSuite.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/opcodes/ExtCodeSizeOperationSuite.java @@ -35,12 +35,15 @@ import static com.hedera.services.bdd.spec.utilops.records.SnapshotMatchMode.NONDETERMINISTIC_FUNCTION_PARAMETERS; import static com.hedera.services.bdd.suites.contract.Utils.FunctionType.FUNCTION; import static com.hedera.services.bdd.suites.contract.Utils.getABIFor; +import static com.hedera.services.bdd.suites.contract.Utils.mirrorAddrWith; +import static com.hedera.services.bdd.suites.contract.evm.Evm46ValidationSuite.systemAccounts; import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.OK; import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.SUCCESS; import com.hedera.services.bdd.junit.HapiTest; import com.hedera.services.bdd.junit.HapiTestSuite; import com.hedera.services.bdd.spec.HapiSpec; +import com.hedera.services.bdd.spec.HapiSpecOperation; import com.hedera.services.bdd.spec.assertions.ContractFnResultAsserts; import com.hedera.services.bdd.suites.HapiSuite; import java.math.BigInteger; @@ -62,7 +65,7 @@ public static void main(String[] args) { @Override public List getSpecsInSuite() { - return List.of(verifiesExistence()); + return List.of(verifiesExistence(), testExtCodeSizeWithSystemAccounts()); } @Override @@ -128,6 +131,33 @@ contract, sizeOf, asHeadlongAddress(contractAddress)) })); } + @HapiTest + HapiSpec testExtCodeSizeWithSystemAccounts() { + final var contract = "ExtCodeOperationsChecker"; + final var sizeOf = "sizeOf"; + final var account = "account"; + final HapiSpecOperation[] opsArray = new HapiSpecOperation[systemAccounts.size() * 2]; + + for (int i = 0; i < systemAccounts.size(); i++) { + // add contract call for all accounts in the list + opsArray[i] = contractCall(contract, sizeOf, mirrorAddrWith(systemAccounts.get(i))) + .hasKnownStatus(SUCCESS); + + // add contract call local for all accounts in the list + opsArray[systemAccounts.size() + i] = contractCallLocal( + contract, sizeOf, mirrorAddrWith(systemAccounts.get(i))) + .has(ContractFnResultAsserts.resultWith() + .resultThruAbi( + getABIFor(FUNCTION, sizeOf, contract), + ContractFnResultAsserts.isLiteralResult(new Object[] {BigInteger.valueOf(0L)}))); + } + + return defaultHapiSpec("testExtCodeSizeWithSystemAccounts", NONDETERMINISTIC_FUNCTION_PARAMETERS) + .given(uploadInitCode(contract), contractCreate(contract), cryptoCreate(account)) + .when() + .then(opsArray); + } + @Override protected Logger getResultsLogger() { return LOG; diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/opcodes/SelfDestructSuite.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/opcodes/SelfDestructSuite.java index 007d9c90fbbf..e61d82f20dd7 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/opcodes/SelfDestructSuite.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/opcodes/SelfDestructSuite.java @@ -20,6 +20,7 @@ import static com.hedera.services.bdd.spec.HapiSpec.defaultHapiSpec; import static com.hedera.services.bdd.spec.assertions.AccountInfoAsserts.accountWith; import static com.hedera.services.bdd.spec.assertions.ContractInfoAsserts.contractWith; +import static com.hedera.services.bdd.spec.queries.QueryVerbs.contractCallLocal; import static com.hedera.services.bdd.spec.queries.QueryVerbs.getAccountInfo; import static com.hedera.services.bdd.spec.queries.QueryVerbs.getContractInfo; import static com.hedera.services.bdd.spec.transactions.TxnVerbs.contractCall; @@ -37,6 +38,7 @@ import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.ACCOUNT_DELETED; import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.INVALID_SIGNATURE; import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.INVALID_SOLIDITY_ADDRESS; +import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.LOCAL_CALL_MODIFICATION_EXCEPTION; import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.SUCCESS; import com.hedera.services.bdd.junit.HapiTest; @@ -76,6 +78,7 @@ public List getSpecsInSuite() { hscsEvm008SelfDestructInConstructorWorks(), hscsEvm008SelfDestructWhenCalling(), selfDestructFailsWhenBeneficiaryHasReceiverSigRequiredAndHasNotSignedTheTxn(), + selfDestructViaCallLocalWithAccount999ResultsInLocalCallModificationPrecheckFailed(), testSelfDestructForSystemAccounts()); } @@ -148,6 +151,18 @@ final HapiSpec selfDestructFailsWhenBeneficiaryHasReceiverSigRequiredAndHasNotSi .has(contractWith().balance(ONE_HBAR))); } + @HapiTest + final HapiSpec selfDestructViaCallLocalWithAccount999ResultsInLocalCallModificationPrecheckFailed() { + return defaultHapiSpec("selfDestructViaCallLocalWithAccount999ResultsInLocalCallModificationPrecheckFailed") + .given( + uploadInitCode(SELF_DESTRUCT_CALLABLE_CONTRACT), + contractCreate(SELF_DESTRUCT_CALLABLE_CONTRACT).balance(ONE_HBAR)) + .when(contractCallLocal( + SELF_DESTRUCT_CALLABLE_CONTRACT, "destroyExplicitBeneficiary", mirrorAddrWith(999L)) + .hasAnswerOnlyPrecheck(LOCAL_CALL_MODIFICATION_EXCEPTION)) + .then(); + } + @HapiTest final HapiSpec testSelfDestructForSystemAccounts() { final AtomicLong deployer = new AtomicLong(); diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/precompile/ApproveAllowanceSuite.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/precompile/ApproveAllowanceSuite.java index e5ce69926f66..06fe3e7e7c79 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/precompile/ApproveAllowanceSuite.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/precompile/ApproveAllowanceSuite.java @@ -43,8 +43,13 @@ import static com.hedera.services.bdd.spec.utilops.CustomSpecAssert.allRunFor; import static com.hedera.services.bdd.spec.utilops.UtilVerbs.childRecordsCheck; import static com.hedera.services.bdd.spec.utilops.UtilVerbs.newKeyNamed; +import static com.hedera.services.bdd.spec.utilops.UtilVerbs.overriding; import static com.hedera.services.bdd.spec.utilops.UtilVerbs.sourcing; import static com.hedera.services.bdd.spec.utilops.UtilVerbs.withOpContext; +import static com.hedera.services.bdd.spec.utilops.records.SnapshotMatchMode.HIGHLY_NON_DETERMINISTIC_FEES; +import static com.hedera.services.bdd.spec.utilops.records.SnapshotMatchMode.NONDETERMINISTIC_CONTRACT_CALL_RESULTS; +import static com.hedera.services.bdd.spec.utilops.records.SnapshotMatchMode.NONDETERMINISTIC_FUNCTION_PARAMETERS; +import static com.hedera.services.bdd.spec.utilops.records.SnapshotMatchMode.NONDETERMINISTIC_TRANSACTION_FEES; import static com.hedera.services.bdd.suites.contract.Utils.asAddress; import static com.hedera.services.bdd.suites.contract.Utils.asToken; import static com.hedera.services.bdd.suites.contract.Utils.eventSignatureOf; @@ -75,7 +80,7 @@ import org.apache.logging.log4j.Logger; import org.junit.jupiter.api.Tag; -@HapiTestSuite +@HapiTestSuite(fuzzyMatch = true) @Tag(SMART_CONTRACT) public class ApproveAllowanceSuite extends HapiSuite { @@ -127,7 +132,7 @@ public List getSpecsInSuite() { final HapiSpec nftAutoCreationIncludeAllowanceCheck() { final var ownerAccount = "owningAlias"; final var receivingAlias = "receivingAlias"; - return defaultHapiSpec("NftAutoCreationIncludeAllowanceCheck") + return defaultHapiSpec("NftAutoCreationIncludeAllowanceCheck", NONDETERMINISTIC_TRANSACTION_FEES) .given( newKeyNamed(MULTI_KEY), cryptoCreate(ownerAccount), @@ -183,7 +188,11 @@ final HapiSpec htsTokenApproveToInnerContract() { final var nestedContract = DIRECT_ERC_CALLEE; final var theSpender = SPENDER; - return defaultHapiSpec("htsTokenApproveToInnerContract") + return defaultHapiSpec( + "htsTokenApproveToInnerContract", + NONDETERMINISTIC_FUNCTION_PARAMETERS, + NONDETERMINISTIC_CONTRACT_CALL_RESULTS, + HIGHLY_NON_DETERMINISTIC_FEES) .given( newKeyNamed(MULTI_KEY), cryptoCreate(OWNER).balance(100 * ONE_HUNDRED_HBARS), @@ -248,8 +257,9 @@ final HapiSpec htsTokenApproveToInnerContract() { final HapiSpec htsTokenAllowance() { final var theSpender = SPENDER; final var allowanceTxn = ALLOWANCE_TX; + final var notAnAddress = new byte[20]; - return defaultHapiSpec("htsTokenAllowance") + return defaultHapiSpec("htsTokenAllowance", NONDETERMINISTIC_FUNCTION_PARAMETERS, HIGHLY_NON_DETERMINISTIC_FEES) .given( newKeyNamed(MULTI_KEY), cryptoCreate(OWNER).balance(100 * ONE_HUNDRED_HBARS), @@ -286,7 +296,20 @@ final HapiSpec htsTokenAllowance() { asAddress(spec.registry().getAccountID(theSpender)))) .payingWith(OWNER) .via(allowanceTxn) - .hasKnownStatus(SUCCESS)))) + .hasKnownStatus(SUCCESS) + // ,contractCall( + // HTS_APPROVE_ALLOWANCE_CONTRACT, + // "htsAllowance", + // asHeadlongAddress( + // + // asAddress(spec.registry().getTokenID(FUNGIBLE_TOKEN))), + // HapiParserUtil.asHeadlongAddress(notAnAddress), + // asHeadlongAddress( + // + // asAddress(spec.registry().getAccountID(theSpender)))) + // .payingWith(OWNER) + // .via("fakeAddressAllowance") + ))) .then( getTxnRecord(allowanceTxn).andAllChildRecords(), childRecordsCheck( @@ -298,7 +321,20 @@ final HapiSpec htsTokenAllowance() { .contractCallResult(htsPrecompileResult() .forFunction(FunctionType.HAPI_ALLOWANCE) .withStatus(SUCCESS) - .withAllowance(2))))); + .withAllowance(2)))) + // ,childRecordsCheck( + // "fakeAddressAllowance", + // SUCCESS, + // recordWith() + // .status(INVALID_ALLOWANCE_OWNER_ID) + // .contractCallResult(resultWith() + // .contractCallResult(htsPrecompileResult() + // + // .forFunction(FunctionType.HAPI_ALLOWANCE) + // + // .withStatus(INVALID_ALLOWANCE_OWNER_ID) + // .withAllowance(0)))) + ); } @HapiTest @@ -306,7 +342,11 @@ final HapiSpec htsTokenApprove() { final var approveTxn = "approveTxn"; final var theSpender = SPENDER; - return defaultHapiSpec("htsTokenApprove") + return defaultHapiSpec( + "htsTokenApprove", + NONDETERMINISTIC_FUNCTION_PARAMETERS, + NONDETERMINISTIC_CONTRACT_CALL_RESULTS, + HIGHLY_NON_DETERMINISTIC_FEES) .given( newKeyNamed(MULTI_KEY), cryptoCreate(OWNER).balance(100 * ONE_HUNDRED_HBARS), @@ -366,9 +406,12 @@ final HapiSpec htsTokenApprove() { final HapiSpec hapiNftIsApprovedForAll() { final var notApprovedTxn = "notApprovedTxn"; final var approvedForAllTxn = "approvedForAllTxn"; + final var notAnAddress = new byte[20]; - return defaultHapiSpec("hapiNftIsApprovedForAll") + return defaultHapiSpec( + "hapiNftIsApprovedForAll", NONDETERMINISTIC_FUNCTION_PARAMETERS, HIGHLY_NON_DETERMINISTIC_FEES) .given( + overriding("staking.fees.nodeRewardPercentage", "10"), newKeyNamed(MULTI_KEY), cryptoCreate(OWNER).balance(100 * ONE_HUNDRED_HBARS), cryptoCreate(RECIPIENT).balance(100 * ONE_HUNDRED_HBARS), @@ -428,7 +471,22 @@ final HapiSpec hapiNftIsApprovedForAll() { .payingWith(OWNER) .via(notApprovedTxn) .hasKnownStatus(SUCCESS) - .gas(GAS_TO_OFFER)))) + .gas(GAS_TO_OFFER) + // ,contractCall( + // HTS_APPROVE_ALLOWANCE_CONTRACT, + // "htsIsApprovedForAll", + // asHeadlongAddress( + // + // asAddress(spec.registry().getTokenID(NON_FUNGIBLE_TOKEN))), + // HapiParserUtil.asHeadlongAddress(notAnAddress), + // asHeadlongAddress( + // asAddress(spec.registry().getAccountID(ACCOUNT)))) + // .payingWith(OWNER) + // .via("fakeAddressIsApprovedForAll") + // .hasKnownStatus(SUCCESS) + // .gas(GAS_TO_OFFER) + + ))) .then( childRecordsCheck( approvedForAllTxn, @@ -447,7 +505,19 @@ final HapiSpec hapiNftIsApprovedForAll() { .contractCallResult(resultWith() .contractCallResult(htsPrecompileResult() .forFunction(FunctionType.HAPI_IS_APPROVED_FOR_ALL) - .withIsApprovedForAll(SUCCESS, false))))); + .withIsApprovedForAll(SUCCESS, false)))) + // ,childRecordsCheck( + // "fakeAddressIsApprovedForAll", + // SUCCESS, + // recordWith() + // .status(SUCCESS) + // .contractCallResult(resultWith() + // .contractCallResult(htsPrecompileResult() + // + // .forFunction(FunctionType.HAPI_IS_APPROVED_FOR_ALL) + // .withIsApprovedForAll(SUCCESS, + // false)))) + ); } @HapiTest @@ -455,8 +525,13 @@ final HapiSpec hapiNftGetApproved() { final var theSpender = SPENDER; final var theSpender2 = "spender2"; final var allowanceTxn = ALLOWANCE_TX; + final var notAnAddress = new byte[20]; - return defaultHapiSpec("hapiNftGetApproved") + return defaultHapiSpec( + "hapiNftGetApproved", + NONDETERMINISTIC_CONTRACT_CALL_RESULTS, + NONDETERMINISTIC_FUNCTION_PARAMETERS, + HIGHLY_NON_DETERMINISTIC_FEES) .given( newKeyNamed(MULTI_KEY), cryptoCreate(OWNER).balance(100 * ONE_HUNDRED_HBARS).maxAutomaticTokenAssociations(10), @@ -492,7 +567,15 @@ final HapiSpec hapiNftGetApproved() { BigInteger.ONE) .payingWith(OWNER) .via(allowanceTxn) - .hasKnownStatus(SUCCESS)))) + .hasKnownStatus(SUCCESS) + // ,contractCall( + // HTS_APPROVE_ALLOWANCE_CONTRACT, + // "htsGetApproved", + // HapiParserUtil.asHeadlongAddress(notAnAddress), + // BigInteger.ONE) + // .via("fakeAddressGetApproved") + // .payingWith(OWNER) + ))) .then(withOpContext((spec, opLog) -> allRunFor( spec, childRecordsCheck( @@ -507,7 +590,23 @@ final HapiSpec hapiNftGetApproved() { SUCCESS, asAddress( spec.registry() - .getAccountID(theSpender))))))))); + .getAccountID(theSpender)))))) + // ,childRecordsCheck( + // "fakeAddressGetApproved", + // SUCCESS, + // recordWith() + // .status(INVALID_TOKEN_NFT_SERIAL_NUMBER) + // .contractCallResult(resultWith() + // .contractCallResult(htsPrecompileResult() + // + // .forFunction(FunctionType.HAPI_GET_APPROVED) + // .withApproved( + // + // INVALID_TOKEN_NFT_SERIAL_NUMBER, + // + // asAddress(AccountID.getDefaultInstance()) + // )))) + ))); } @HapiTest @@ -516,7 +615,11 @@ final HapiSpec hapiNftSetApprovalForAll() { final var theSpender2 = "spender2"; final var allowanceTxn = ALLOWANCE_TX; - return defaultHapiSpec("hapiNftSetApprovalForAll") + return defaultHapiSpec( + "hapiNftSetApprovalForAll", + NONDETERMINISTIC_CONTRACT_CALL_RESULTS, + NONDETERMINISTIC_FUNCTION_PARAMETERS, + HIGHLY_NON_DETERMINISTIC_FEES) .given( newKeyNamed(MULTI_KEY), cryptoCreate(OWNER).balance(100 * ONE_HUNDRED_HBARS).maxAutomaticTokenAssociations(10), @@ -605,7 +708,11 @@ final HapiSpec testIndirectApprovalWith( final AtomicReference attackerMirrorAddr = new AtomicReference<>(); final AtomicReference calleeMirrorAddr = new AtomicReference<>(); - return defaultHapiSpec("testIndirectApprovalWith" + testName) + return defaultHapiSpec( + "testIndirectApprovalWith" + testName, + NONDETERMINISTIC_FUNCTION_PARAMETERS, + NONDETERMINISTIC_CONTRACT_CALL_RESULTS, + HIGHLY_NON_DETERMINISTIC_FEES) .given( cryptoCreate(TOKEN_TREASURY), cryptoCreate(PRETEND_ATTACKER) diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/precompile/DefaultTokenStatusSuite.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/precompile/DefaultTokenStatusSuite.java index 0286e60461af..c1f67bdc1a3d 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/precompile/DefaultTokenStatusSuite.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/precompile/DefaultTokenStatusSuite.java @@ -88,6 +88,7 @@ public boolean canRunConcurrent() { @HapiTest final HapiSpec getTokenDefaultFreezeStatus() { final AtomicReference vanillaTokenID = new AtomicReference<>(); + final var notAnAddress = new byte[20]; return defaultHapiSpec( "GetTokenDefaultFreezeStatus", @@ -115,25 +116,47 @@ final HapiSpec getTokenDefaultFreezeStatus() { .payingWith(ACCOUNT) .via("GetTokenDefaultFreezeStatusTx") .gas(GAS_TO_OFFER), + // ,contractCall( + // TOKEN_DEFAULT_KYC_FREEZE_STATUS_CONTRACT, + // GET_TOKEN_DEFAULT_FREEZE, + // HapiParserUtil.asHeadlongAddress(notAnAddress)) + // .payingWith(ACCOUNT) + // .via("fakeAddressDefaultFreezeStatus") + // .hasKnownStatus(CONTRACT_REVERT_EXECUTED), contractCallLocal( TOKEN_DEFAULT_KYC_FREEZE_STATUS_CONTRACT, GET_TOKEN_DEFAULT_FREEZE, HapiParserUtil.asHeadlongAddress(asAddress(vanillaTokenID.get())))))) - .then(childRecordsCheck( - "GetTokenDefaultFreezeStatusTx", - SUCCESS, - recordWith() - .status(SUCCESS) - .contractCallResult(resultWith() - .contractCallResult(htsPrecompileResult() - .forFunction(FunctionType.GET_TOKEN_DEFAULT_FREEZE_STATUS) - .withStatus(SUCCESS) - .withTokenDefaultFreezeStatus(true))))); + .then( + childRecordsCheck( + "GetTokenDefaultFreezeStatusTx", + SUCCESS, + recordWith() + .status(SUCCESS) + .contractCallResult(resultWith() + .contractCallResult(htsPrecompileResult() + .forFunction(FunctionType.GET_TOKEN_DEFAULT_FREEZE_STATUS) + .withStatus(SUCCESS) + .withTokenDefaultFreezeStatus(true)))) + // ,childRecordsCheck( + // "fakeAddressDefaultFreezeStatus", + // CONTRACT_REVERT_EXECUTED, + // recordWith() + // .status(FAIL_INVALID) + // .contractCallResult(resultWith() + // .contractCallResult(htsPrecompileResult() + // + // .forFunction(FunctionType.GET_TOKEN_DEFAULT_FREEZE_STATUS) + // .withStatus(FAIL_INVALID) + // + // .withTokenDefaultFreezeStatus(false)))) + ); } @HapiTest final HapiSpec getTokenDefaultKycStatus() { final AtomicReference vanillaTokenID = new AtomicReference<>(); + final var notAnAddress = new byte[20]; return defaultHapiSpec( "GetTokenDefaultKycStatus", @@ -161,19 +184,40 @@ final HapiSpec getTokenDefaultKycStatus() { .payingWith(ACCOUNT) .via("GetTokenDefaultKycStatusTx") .gas(GAS_TO_OFFER), + // ,contractCall( + // TOKEN_DEFAULT_KYC_FREEZE_STATUS_CONTRACT, + // GET_TOKEN_DEFAULT_KYC, + // HapiParserUtil.asHeadlongAddress(notAnAddress)) + // .payingWith(ACCOUNT) + // .via("fakeAddressDefaultKycStatus") + // .hasKnownStatus(CONTRACT_REVERT_EXECUTED), contractCallLocal( TOKEN_DEFAULT_KYC_FREEZE_STATUS_CONTRACT, GET_TOKEN_DEFAULT_KYC, HapiParserUtil.asHeadlongAddress(asAddress(vanillaTokenID.get())))))) - .then(childRecordsCheck( - "GetTokenDefaultKycStatusTx", - SUCCESS, - recordWith() - .status(SUCCESS) - .contractCallResult(resultWith() - .contractCallResult(htsPrecompileResult() - .forFunction(FunctionType.GET_TOKEN_DEFAULT_KYC_STATUS) - .withStatus(SUCCESS) - .withTokenDefaultKycStatus(false))))); + .then( + childRecordsCheck( + "GetTokenDefaultKycStatusTx", + SUCCESS, + recordWith() + .status(SUCCESS) + .contractCallResult(resultWith() + .contractCallResult(htsPrecompileResult() + .forFunction(FunctionType.GET_TOKEN_DEFAULT_KYC_STATUS) + .withStatus(SUCCESS) + .withTokenDefaultKycStatus(false)))) + // ,childRecordsCheck( + // "fakeAddressDefaultKycStatus", + // CONTRACT_REVERT_EXECUTED, + // recordWith() + // .status(FAIL_INVALID) + // .contractCallResult(resultWith() + // .contractCallResult(htsPrecompileResult() + // + // .forFunction(FunctionType.GET_TOKEN_DEFAULT_KYC_STATUS) + // .withStatus(FAIL_INVALID) + // + // .withTokenDefaultFreezeStatus(false)))) + ); } } diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/precompile/ERCPrecompileSuite.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/precompile/ERCPrecompileSuite.java index 38880b858de1..0113cf12c45f 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/precompile/ERCPrecompileSuite.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/precompile/ERCPrecompileSuite.java @@ -913,7 +913,7 @@ final HapiSpec getErc20TokenDecimalsFromErc721TokenFails() { @HapiTest final HapiSpec getErc721TokenName() { return defaultHapiSpec( - "getErc721TokenName", NONDETERMINISTIC_TRANSACTION_FEES, NONDETERMINISTIC_FUNCTION_PARAMETERS) + "getErc721TokenName", HIGHLY_NON_DETERMINISTIC_FEES, NONDETERMINISTIC_FUNCTION_PARAMETERS) .given( newKeyNamed(MULTI_KEY), cryptoCreate(ACCOUNT).balance(100 * ONE_HUNDRED_HBARS), diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/precompile/FreezeUnfreezeTokenPrecompileSuite.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/precompile/FreezeUnfreezeTokenPrecompileSuite.java index ab1bf2ddb411..8e144581d337 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/precompile/FreezeUnfreezeTokenPrecompileSuite.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/precompile/FreezeUnfreezeTokenPrecompileSuite.java @@ -146,6 +146,7 @@ final HapiSpec isFrozenHappyPathWithAliasLocalCall() { final AtomicReference vanillaTokenID = new AtomicReference<>(); final AtomicReference autoCreatedAccountId = new AtomicReference<>(); final String accountAlias = "accountAlias"; + final var notAnAddress = new byte[20]; return defaultHapiSpec("isFrozenHappyPathWithAliasLocalCall", NONDETERMINISTIC_FUNCTION_PARAMETERS) .given( @@ -163,13 +164,40 @@ final HapiSpec isFrozenHappyPathWithAliasLocalCall() { .exposingCreatedIdTo(id -> vanillaTokenID.set(asToken(id))), uploadInitCode(FREEZE_CONTRACT), contractCreate(FREEZE_CONTRACT)) - .when(withOpContext((spec, opLog) -> allRunFor( - spec, - contractCallLocal( - FREEZE_CONTRACT, - IS_FROZEN_FUNC, - HapiParserUtil.asHeadlongAddress(asAddress(vanillaTokenID.get())), - HapiParserUtil.asHeadlongAddress(autoCreatedAccountId.get()))))) - .then(); + .when( + withOpContext((spec, opLog) -> allRunFor( + spec, + contractCallLocal( + FREEZE_CONTRACT, + IS_FROZEN_FUNC, + HapiParserUtil.asHeadlongAddress(asAddress(vanillaTokenID.get())), + HapiParserUtil.asHeadlongAddress(autoCreatedAccountId.get())))) + // ,contractCall( + // FREEZE_CONTRACT, + // IS_FROZEN_FUNC, + // HapiParserUtil.asHeadlongAddress(notAnAddress), + // HapiParserUtil.asHeadlongAddress(notAnAddress)) + // .payingWith(GENESIS) + // .gas(GAS_TO_OFFER) + // .via("fakeAddressIsFrozen") + // .hasKnownStatus(CONTRACT_REVERT_EXECUTED) + + ) + .then( + // withOpContext(((spec, assertLog) -> allRunFor( + // spec, + // childRecordsCheck( + // "fakeAddressIsFrozen", + // CONTRACT_REVERT_EXECUTED, + // recordWith() + // .status(INVALID_TOKEN_ID) + // .contractCallResult(resultWith() + // + // .contractCallResult(htsPrecompileResult() + // + // .forFunction(FunctionType.HAPI_IS_FROZEN) + // .withStatus(INVALID_TOKEN_ID) + // .withIsFrozen(false))))))) + ); } } diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/precompile/GrantRevokeKycSuite.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/precompile/GrantRevokeKycSuite.java index 2c9306d35ee2..7bccaf51b493 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/precompile/GrantRevokeKycSuite.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/precompile/GrantRevokeKycSuite.java @@ -277,6 +277,7 @@ final HapiSpec grantRevokeKycSpecWithAliasLocalCall() { final AtomicReference vanillaTokenID = new AtomicReference<>(); final AtomicReference autoCreatedAccountId = new AtomicReference<>(); final String accountAlias = "accountAlias"; + final var notAnAddress = new byte[20]; return defaultHapiSpec("grantRevokeKycSpecWithAliasLocalCall") .given( @@ -294,13 +295,40 @@ final HapiSpec grantRevokeKycSpecWithAliasLocalCall() { .exposingCreatedIdTo(id -> vanillaTokenID.set(asToken(id))), uploadInitCode(GRANT_REVOKE_KYC_CONTRACT), contractCreate(GRANT_REVOKE_KYC_CONTRACT)) - .when(withOpContext((spec, opLog) -> allRunFor( - spec, - contractCallLocal( - GRANT_REVOKE_KYC_CONTRACT, - IS_KYC_GRANTED, - HapiParserUtil.asHeadlongAddress(asAddress(vanillaTokenID.get())), - HapiParserUtil.asHeadlongAddress(autoCreatedAccountId.get()))))) - .then(); + .when( + withOpContext((spec, opLog) -> allRunFor( + spec, + contractCallLocal( + GRANT_REVOKE_KYC_CONTRACT, + IS_KYC_GRANTED, + HapiParserUtil.asHeadlongAddress(asAddress(vanillaTokenID.get())), + HapiParserUtil.asHeadlongAddress(autoCreatedAccountId.get())))) + // ,contractCall( + // GRANT_REVOKE_KYC_CONTRACT, + // IS_KYC_GRANTED, + // HapiParserUtil.asHeadlongAddress(notAnAddress), + // HapiParserUtil.asHeadlongAddress(notAnAddress)) + // .payingWith(GENESIS) + // .gas(GAS_TO_OFFER) + // .via("fakeAddressIsKyc") + // .hasKnownStatus(CONTRACT_REVERT_EXECUTED) + + ) + .then( + // withOpContext(((spec, assertLog) -> allRunFor( + // spec, + // childRecordsCheck( + // "fakeAddressIsKyc", + // CONTRACT_REVERT_EXECUTED, + // recordWith() + // .status(INVALID_TOKEN_ID) + // .contractCallResult(resultWith() + // + // .contractCallResult(htsPrecompileResult() + // + // .forFunction(FunctionType.HAPI_IS_KYC) + // .withStatus(INVALID_TOKEN_ID) + // .withIsFrozen(false))))))) + ); } } diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/precompile/HRCPrecompileSuite.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/precompile/HRCPrecompileSuite.java index a82e1d5bc369..839142b8f593 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/precompile/HRCPrecompileSuite.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/precompile/HRCPrecompileSuite.java @@ -35,6 +35,10 @@ import static com.hedera.services.bdd.spec.utilops.UtilVerbs.newKeyNamed; import static com.hedera.services.bdd.spec.utilops.UtilVerbs.overriding; import static com.hedera.services.bdd.spec.utilops.UtilVerbs.withOpContext; +import static com.hedera.services.bdd.spec.utilops.records.SnapshotMatchMode.NONDETERMINISTIC_ETHEREUM_DATA; +import static com.hedera.services.bdd.spec.utilops.records.SnapshotMatchMode.NONDETERMINISTIC_FUNCTION_PARAMETERS; +import static com.hedera.services.bdd.spec.utilops.records.SnapshotMatchMode.NONDETERMINISTIC_NONCE; +import static com.hedera.services.bdd.spec.utilops.records.SnapshotMatchMode.NONDETERMINISTIC_TRANSACTION_FEES; import static com.hedera.services.bdd.suites.contract.Utils.asHexedAddress; import static com.hedera.services.bdd.suites.contract.Utils.asToken; import static com.hedera.services.bdd.suites.contract.Utils.getABIFor; @@ -57,7 +61,7 @@ import org.apache.logging.log4j.Logger; import org.junit.jupiter.api.Tag; -@HapiTestSuite +@HapiTestSuite(fuzzyMatch = true) @Tag(SMART_CONTRACT) public class HRCPrecompileSuite extends HapiSuite { @@ -106,7 +110,7 @@ final HapiSpec hrcNftAndFungibleTokenAssociateFromEOA() { final AtomicReference fungibleTokenNum = new AtomicReference<>(); final AtomicReference nonfungibleTokenNum = new AtomicReference<>(); - return defaultHapiSpec("hrcNftAndFungibleTokenAssociateFromEOA") + return defaultHapiSpec("hrcNftAndFungibleTokenAssociateFromEOA", NONDETERMINISTIC_FUNCTION_PARAMETERS) .given( newKeyNamed(MULTI_KEY), cryptoCreate(ACCOUNT).balance(100 * ONE_HUNDRED_HBARS), @@ -215,7 +219,11 @@ final HapiSpec hrcNftAndFungibleTokenAssociateFromEOA() { @HapiTest final HapiSpec hrcNFTAndFungibleTokenAssociateFromContract() { - return defaultHapiSpec("hrcNFTAndFungibleTokenAssociateFromContract") + return defaultHapiSpec( + "hrcNFTAndFungibleTokenAssociateFromContract", + NONDETERMINISTIC_TRANSACTION_FEES, + NONDETERMINISTIC_FUNCTION_PARAMETERS, + NONDETERMINISTIC_NONCE) .given( newKeyNamed(MULTI_KEY), cryptoCreate(ACCOUNT).balance(100 * ONE_HUNDRED_HBARS), @@ -324,7 +332,10 @@ final HapiSpec hrcNFTAndFungibleTokenAssociateFromContract() { final HapiSpec hrcTokenAssociateFromSameEOATwiceShouldFail() { final AtomicReference fungibleTokenNum = new AtomicReference<>(); - return defaultHapiSpec("hrcTokenAssociateFromSameEOATwiceShouldFail") + return defaultHapiSpec( + "hrcTokenAssociateFromSameEOATwiceShouldFail", + NONDETERMINISTIC_FUNCTION_PARAMETERS, + NONDETERMINISTIC_NONCE) .given( newKeyNamed(MULTI_KEY), newKeyNamed(RANDOM_KEY), @@ -390,7 +401,7 @@ final HapiSpec hrcTokenAssociateFromSameEOATwiceShouldFail() { final HapiSpec hrcTokenDissociateWhenNotAssociatedShouldFail() { final AtomicReference fungibleTokenNum = new AtomicReference<>(); - return defaultHapiSpec("hrcTokenDissociateWhenNotAssociatedShouldFail") + return defaultHapiSpec("hrcTokenDissociateWhenNotAssociatedShouldFail", NONDETERMINISTIC_TRANSACTION_FEES) .given( newKeyNamed(MULTI_KEY), newKeyNamed(RANDOM_KEY), @@ -438,7 +449,10 @@ final HapiSpec hrcTokenDissociateWhenNotAssociatedShouldFail() { final HapiSpec hrcTokenDissociateWhenBalanceNotZeroShouldFail() { final AtomicReference fungibleTokenNum = new AtomicReference<>(); - return defaultHapiSpec("hrcTokenDissociateWhenBalanceNotZeroShouldFail") + return defaultHapiSpec( + "hrcTokenDissociateWhenBalanceNotZeroShouldFail", + NONDETERMINISTIC_FUNCTION_PARAMETERS, + NONDETERMINISTIC_ETHEREUM_DATA) .given( newKeyNamed(MULTI_KEY), newKeyNamed(RANDOM_KEY), @@ -508,7 +522,10 @@ final HapiSpec hrcTooManyTokenAssociateShouldFail() { final AtomicReference fungibleTokenNum2 = new AtomicReference<>(); final AtomicReference fungibleTokenNum3 = new AtomicReference<>(); - return defaultHapiSpec("hrcTooManyTokenAssociateShouldFail") + return defaultHapiSpec( + "hrcTooManyTokenAssociateShouldFail", + NONDETERMINISTIC_FUNCTION_PARAMETERS, + NONDETERMINISTIC_TRANSACTION_FEES) .given( overriding("tokens.maxPerAccount", "2"), overriding("entities.limitTokenAssociations", "true"), diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/precompile/LazyCreateThroughPrecompileSuite.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/precompile/LazyCreateThroughPrecompileSuite.java index 822c050a2d33..6d7f15f6077c 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/precompile/LazyCreateThroughPrecompileSuite.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/precompile/LazyCreateThroughPrecompileSuite.java @@ -30,6 +30,7 @@ import static com.hedera.services.bdd.spec.queries.QueryVerbs.getAliasedAccountInfo; import static com.hedera.services.bdd.spec.queries.QueryVerbs.getLiteralAliasAccountInfo; import static com.hedera.services.bdd.spec.queries.QueryVerbs.getTokenNftInfo; +import static com.hedera.services.bdd.spec.queries.QueryVerbs.getTxnRecord; import static com.hedera.services.bdd.spec.transactions.TxnVerbs.contractCall; import static com.hedera.services.bdd.spec.transactions.TxnVerbs.contractCreate; import static com.hedera.services.bdd.spec.transactions.TxnVerbs.cryptoApproveAllowance; @@ -48,8 +49,17 @@ import static com.hedera.services.bdd.spec.utilops.UtilVerbs.ifNotHapiTest; import static com.hedera.services.bdd.spec.utilops.UtilVerbs.inParallel; import static com.hedera.services.bdd.spec.utilops.UtilVerbs.newKeyNamed; +import static com.hedera.services.bdd.spec.utilops.UtilVerbs.snapshotMode; import static com.hedera.services.bdd.spec.utilops.UtilVerbs.sourcing; import static com.hedera.services.bdd.spec.utilops.UtilVerbs.withOpContext; +import static com.hedera.services.bdd.spec.utilops.records.SnapshotMatchMode.ACCEPTED_MONO_GAS_CALCULATION_DIFFERENCE; +import static com.hedera.services.bdd.spec.utilops.records.SnapshotMatchMode.ALLOW_SKIPPED_ENTITY_IDS; +import static com.hedera.services.bdd.spec.utilops.records.SnapshotMatchMode.FULLY_NONDETERMINISTIC; +import static com.hedera.services.bdd.spec.utilops.records.SnapshotMatchMode.NONDETERMINISTIC_CONTRACT_CALL_RESULTS; +import static com.hedera.services.bdd.spec.utilops.records.SnapshotMatchMode.NONDETERMINISTIC_FUNCTION_PARAMETERS; +import static com.hedera.services.bdd.spec.utilops.records.SnapshotMatchMode.NONDETERMINISTIC_NONCE; +import static com.hedera.services.bdd.spec.utilops.records.SnapshotMatchMode.NONDETERMINISTIC_TRANSACTION_FEES; +import static com.hedera.services.bdd.spec.utilops.records.SnapshotMode.FUZZY_MATCH_AGAINST_HAPI_TEST_STREAMS; import static com.hedera.services.bdd.suites.contract.Utils.asAddress; import static com.hedera.services.bdd.suites.contract.Utils.headlongFromHexed; import static com.hedera.services.bdd.suites.contract.Utils.mirrorAddrWith; @@ -93,7 +103,7 @@ import org.apache.tuweni.bytes.Bytes; import org.junit.jupiter.api.Tag; -@HapiTestSuite +@HapiTestSuite(fuzzyMatch = true) @Tag(SMART_CONTRACT) public class LazyCreateThroughPrecompileSuite extends HapiSuite { @@ -169,7 +179,10 @@ HapiSpec resourceLimitExceededRevertsAllRecords() { final AtomicLong civilianId = new AtomicLong(); final AtomicReference nftMirrorAddr = new AtomicReference<>(); - return defaultHapiSpec("ResourceLimitExceededRevertsAllRecords") + return defaultHapiSpec( + "ResourceLimitExceededRevertsAllRecords", + FULLY_NONDETERMINISTIC) // marked as fully non-deterministic due to difference between mono and + // mod, see use of ifHapiTest() / ifNotHapiTest() below .given( newKeyNamed(nftKey), uploadInitCode(AUTO_CREATION_MODES), @@ -230,7 +243,7 @@ HapiSpec autoCreationFailsWithMirrorAddress() { final AtomicLong civilianId = new AtomicLong(); final AtomicReference nftMirrorAddr = new AtomicReference<>(); - return defaultHapiSpec("AutoCreationFailsWithMirrorAddress") + return defaultHapiSpec("AutoCreationFailsWithMirrorAddress", NONDETERMINISTIC_FUNCTION_PARAMETERS) .given( newKeyNamed(nftKey), uploadInitCode(AUTO_CREATION_MODES), @@ -265,7 +278,13 @@ HapiSpec autoCreationFailsWithMirrorAddress() { final HapiSpec erc20TransferLazyCreate() { final AtomicReference tokenAddr = new AtomicReference<>(); - return defaultHapiSpec("erc20TransferLazyCreate") + return defaultHapiSpec( + "erc20TransferLazyCreate", + NONDETERMINISTIC_FUNCTION_PARAMETERS, + NONDETERMINISTIC_CONTRACT_CALL_RESULTS, + NONDETERMINISTIC_TRANSACTION_FEES, + ACCEPTED_MONO_GAS_CALCULATION_DIFFERENCE, + ALLOW_SKIPPED_ENTITY_IDS) .given( newKeyNamed(ECDSA_KEY).shape(SECP_256K1_SHAPE), newKeyNamed(MULTI_KEY), @@ -334,7 +353,13 @@ final HapiSpec erc20TransferLazyCreate() { // Expected INSUFFICIENT_GAS but was REVERTED_SUCCESS @HapiTest final HapiSpec erc20TransferFromLazyCreate() { - return defaultHapiSpec("erc20TransferFromLazyCreate") + return defaultHapiSpec( + "erc20TransferFromLazyCreate", + NONDETERMINISTIC_TRANSACTION_FEES, + NONDETERMINISTIC_FUNCTION_PARAMETERS, + ACCEPTED_MONO_GAS_CALCULATION_DIFFERENCE, + NONDETERMINISTIC_CONTRACT_CALL_RESULTS, + ALLOW_SKIPPED_ENTITY_IDS) .given( newKeyNamed(MULTI_KEY), newKeyNamed(ECDSA_KEY).shape(SECP_256K1_SHAPE), @@ -437,7 +462,13 @@ final HapiSpec erc20TransferFromLazyCreate() { @HapiTest final HapiSpec erc721TransferFromLazyCreate() { - return defaultHapiSpec("erc721TransferFromLazyCreate") + return defaultHapiSpec( + "erc721TransferFromLazyCreate", + NONDETERMINISTIC_FUNCTION_PARAMETERS, + NONDETERMINISTIC_CONTRACT_CALL_RESULTS, + NONDETERMINISTIC_TRANSACTION_FEES, + ACCEPTED_MONO_GAS_CALCULATION_DIFFERENCE, + ALLOW_SKIPPED_ENTITY_IDS) .given( newKeyNamed(ECDSA_KEY).shape(SECP_256K1_SHAPE), newKeyNamed(MULTI_KEY), @@ -522,7 +553,12 @@ final HapiSpec erc721TransferFromLazyCreate() { final HapiSpec htsTransferFromFungibleTokenLazyCreate() { final var allowance = 10L; final var successfulTransferFromTxn = "txn"; - return defaultHapiSpec("htsTransferFromFungibleTokenLazyCreate") + return defaultHapiSpec( + "htsTransferFromFungibleTokenLazyCreate", + NONDETERMINISTIC_FUNCTION_PARAMETERS, + NONDETERMINISTIC_TRANSACTION_FEES, + NONDETERMINISTIC_CONTRACT_CALL_RESULTS, + NONDETERMINISTIC_NONCE) .given( newKeyNamed(ECDSA_KEY).shape(SECP_256K1_SHAPE), newKeyNamed(MULTI_KEY), @@ -593,7 +629,11 @@ final HapiSpec htsTransferFromFungibleTokenLazyCreate() { @HapiTest final HapiSpec htsTransferFromForNFTLazyCreate() { - return defaultHapiSpec("htsTransferFromForNFTLazyCreate") + return defaultHapiSpec( + "htsTransferFromForNFTLazyCreate", + NONDETERMINISTIC_FUNCTION_PARAMETERS, + NONDETERMINISTIC_CONTRACT_CALL_RESULTS, + ACCEPTED_MONO_GAS_CALCULATION_DIFFERENCE) .given( newKeyNamed(ECDSA_KEY).shape(SECP_256K1_SHAPE), newKeyNamed(MULTI_KEY), @@ -655,4 +695,62 @@ final HapiSpec htsTransferFromForNFTLazyCreate() { })) .then(); } + + @HapiTest + final HapiSpec revertedAutoCreationRollsBackEvenIfTopLevelSucceeds() { + return defaultHapiSpec("revertedAutoCreationRollsBackEvenIfTopLevelSucceeds") + .given( + snapshotMode( + FUZZY_MATCH_AGAINST_HAPI_TEST_STREAMS, + NONDETERMINISTIC_FUNCTION_PARAMETERS, + ACCEPTED_MONO_GAS_CALCULATION_DIFFERENCE), + newKeyNamed(ECDSA_KEY).shape(SECP_256K1_SHAPE), + newKeyNamed(MULTI_KEY), + cryptoCreate(OWNER).balance(100 * ONE_HUNDRED_HBARS).maxAutomaticTokenAssociations(5), + tokenCreate(NFT_TOKEN) + .tokenType(TokenType.NON_FUNGIBLE_UNIQUE) + .treasury(OWNER) + .initialSupply(0L) + .supplyKey(MULTI_KEY), + uploadInitCode(AUTO_CREATION_MODES), + contractCreate(AUTO_CREATION_MODES), + mintToken(NFT_TOKEN, List.of(META1, META2)), + cryptoApproveAllowance() + .payingWith(DEFAULT_PAYER) + .addNftAllowance(OWNER, NFT_TOKEN, AUTO_CREATION_MODES, false, List.of(2L)) + .via(BASE_APPROVE_TXN) + .signedBy(DEFAULT_PAYER, OWNER) + .fee(ONE_HBAR)) + .when(withOpContext((spec, opLog) -> { + final var ecdsaKey = spec.registry().getKey(ECDSA_KEY); + final var tmp = ecdsaKey.getECDSASecp256K1().toByteArray(); + final var addressBytes = recoverAddressFromPubKey(tmp); + allRunFor( + spec, + // transfer allowed NFT + contractCall( + AUTO_CREATION_MODES, + "createIndirectlyRevertingAndRecover", + HapiParserUtil.asHeadlongAddress( + asAddress(spec.registry().getTokenID(NFT_TOKEN))), + HapiParserUtil.asHeadlongAddress( + asAddress(spec.registry().getAccountID(OWNER))), + HapiParserUtil.asHeadlongAddress(addressBytes), + 2L) + .gas(GAS_TO_OFFER) + .via(TRANSFER_TXN) + .alsoSigningWithFullPrefix(OWNER) + .hasKnownStatus(SUCCESS)); + })) + .then( + getTxnRecord(TRANSFER_TXN).hasNonStakingChildRecordCount(1), + childRecordsCheck( + TRANSFER_TXN, + SUCCESS, + recordWith() + .status(REVERTED_SUCCESS) + .contractCallResult(resultWith() + .contractCallResult( + htsPrecompileResult().withStatus(SUCCESS))))); + } } diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/precompile/TokenAndTypeCheckSuite.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/precompile/TokenAndTypeCheckSuite.java index 04935015cc34..56d7ccac0a51 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/precompile/TokenAndTypeCheckSuite.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/precompile/TokenAndTypeCheckSuite.java @@ -16,6 +16,7 @@ package com.hedera.services.bdd.suites.contract.precompile; +import static com.hedera.node.app.hapi.utils.contracts.ParsingConstants.FunctionType.HAPI_IS_TOKEN; import static com.hedera.services.bdd.junit.TestTags.SMART_CONTRACT; import static com.hedera.services.bdd.spec.HapiSpec.defaultHapiSpec; import static com.hedera.services.bdd.spec.assertions.ContractFnResultAsserts.isLiteralResult; @@ -40,7 +41,6 @@ import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.SUCCESS; import static com.hederahashgraph.api.proto.java.TokenType.FUNGIBLE_COMMON; -import com.hedera.node.app.hapi.utils.contracts.ParsingConstants; import com.hedera.services.bdd.junit.HapiTest; import com.hedera.services.bdd.junit.HapiTestSuite; import com.hedera.services.bdd.spec.HapiSpec; @@ -169,12 +169,19 @@ final HapiSpec checkTokenAndTypeNegativeCases() { .status(SUCCESS) .contractCallResult(resultWith() .contractCallResult(htsPrecompileResult() - .forFunction(ParsingConstants.FunctionType.HAPI_IS_TOKEN) + .forFunction(HAPI_IS_TOKEN) .withStatus(SUCCESS) .withIsToken(false)))), childRecordsCheck( "FakeAddressTokenTypeCheckTx", CONTRACT_REVERT_EXECUTED, - recordWith().status(INVALID_TOKEN_ID))); + recordWith().status(INVALID_TOKEN_ID) + // .contractCallResult(resultWith() + // + // .contractCallResult(htsPrecompileResult() + // .forFunction(HAPI_IS_TOKEN) + // .withStatus(INVALID_TOKEN_ID) + // .withIsToken(false))) + )); } } diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/precompile/TokenExpiryInfoSuite.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/precompile/TokenExpiryInfoSuite.java index f64d810f9d9f..2f972aa524d5 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/precompile/TokenExpiryInfoSuite.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/precompile/TokenExpiryInfoSuite.java @@ -137,7 +137,16 @@ final HapiSpec getExpiryInfoForToken() { childRecordsCheck( "expiryForInvalidTokenIDTxn", CONTRACT_REVERT_EXECUTED, - recordWith().status(INVALID_TOKEN_ID)), + recordWith().status(INVALID_TOKEN_ID) + // .contractCallResult(resultWith() + // + // .contractCallResult(htsPrecompileResult() + // + // .forFunction(FunctionType.HAPI_GET_TOKEN_EXPIRY_INFO) + // .withStatus(INVALID_TOKEN_ID) + // .withExpiry(0, + // AccountID.getDefaultInstance(), 0))) + ), withOpContext((spec, opLog) -> { final var getTokenInfoQuery = getTokenInfo(VANILLA_TOKEN); allRunFor(spec, getTokenInfoQuery); diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/precompile/TokenInfoHTSSuite.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/precompile/TokenInfoHTSSuite.java index 94479cc6242e..9d14e8b45448 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/precompile/TokenInfoHTSSuite.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/precompile/TokenInfoHTSSuite.java @@ -50,6 +50,7 @@ import static com.hedera.services.bdd.spec.utilops.records.SnapshotMatchMode.NONDETERMINISTIC_FUNCTION_PARAMETERS; import static com.hedera.services.bdd.suites.contract.Utils.asAddress; import static com.hedera.services.bdd.suites.utils.contracts.precompile.HTSPrecompileResult.htsPrecompileResult; +import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.CONTRACT_REVERT_EXECUTED; import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.SUCCESS; import com.google.protobuf.ByteString; @@ -560,17 +561,65 @@ final HapiSpec getInfoOnInvalidFungibleTokenFails() { HapiParserUtil.asHeadlongAddress(new byte[20])) .via(TOKEN_INFO_TXN + 1) .gas(1_000_000L) - .hasKnownStatus(ResponseCodeEnum.CONTRACT_REVERT_EXECUTED), + .hasKnownStatus(CONTRACT_REVERT_EXECUTED), contractCall( TOKEN_INFO_CONTRACT, GET_INFORMATION_FOR_FUNGIBLE_TOKEN, HapiParserUtil.asHeadlongAddress(new byte[20])) .via(TOKEN_INFO_TXN + 2) .gas(1_000_000L) - .hasKnownStatus(ResponseCodeEnum.CONTRACT_REVERT_EXECUTED)))) - .then( + .hasKnownStatus(CONTRACT_REVERT_EXECUTED)))) + .then(withOpContext((spec, opLog) -> allRunFor( + spec, getTxnRecord(TOKEN_INFO_TXN + 1).andAllChildRecords().logged(), - getTxnRecord(TOKEN_INFO_TXN + 2).andAllChildRecords().logged()); + getTxnRecord(TOKEN_INFO_TXN + 2).andAllChildRecords().logged() + + // ,childRecordsCheck( + // TOKEN_INFO_TXN + 2, + // CONTRACT_REVERT_EXECUTED, + // recordWith() + // .status(INVALID_TOKEN_ID) + // .contractCallResult(resultWith() + // .contractCallResult(htsPrecompileResult() + // + // .forFunction(FunctionType.HAPI_GET_FUNGIBLE_TOKEN_INFO) + // .withStatus(INVALID_TOKEN_ID) + // + // .withTokenInfo(getTokenInfoStructForEmptyFungibleToken( + // "", + // "", + // "", + // + // AccountID.getDefaultInstance(), + // 0, + // ByteString.EMPTY + // ))))) + // ,childRecordsCheck( + // TOKEN_INFO_TXN + 1, + // CONTRACT_REVERT_EXECUTED, + // recordWith() + // .status(INVALID_TOKEN_ID) + // + // .contractCallResult(resultWith() + // + // .contractCallResult(htsPrecompileResult() + // + // .forFunction(FunctionType.HAPI_GET_TOKEN_INFO) + // + // .withStatus(INVALID_TOKEN_ID) + // + // .withTokenInfo(getTokenInfoStructForEmptyFungibleToken( + // "", + // "", + // "", + // + // AccountID.getDefaultInstance(), + // 0, + // + // ByteString.EMPTY + // ))))) + + ))); } @HapiTest @@ -655,7 +704,7 @@ final HapiSpec getInfoOnInvalidNonFungibleTokenFails() { 1L) .via(NON_FUNGIBLE_TOKEN_INFO_TXN + 1) .gas(1_000_000L) - .hasKnownStatus(ResponseCodeEnum.CONTRACT_REVERT_EXECUTED), + .hasKnownStatus(CONTRACT_REVERT_EXECUTED), contractCall( TOKEN_INFO_CONTRACT, GET_INFORMATION_FOR_NON_FUNGIBLE_TOKEN, @@ -664,11 +713,37 @@ final HapiSpec getInfoOnInvalidNonFungibleTokenFails() { 2L) .via(NON_FUNGIBLE_TOKEN_INFO_TXN + 2) .gas(1_000_000L) - .hasKnownStatus(ResponseCodeEnum.CONTRACT_REVERT_EXECUTED)))) + .hasKnownStatus(CONTRACT_REVERT_EXECUTED)))) .then( getTxnRecord(NON_FUNGIBLE_TOKEN_INFO_TXN + 1) .andAllChildRecords() .logged(), + // ,childRecordsCheck( + // NON_FUNGIBLE_TOKEN_INFO_TXN + 1, + // CONTRACT_REVERT_EXECUTED, + // recordWith() + // .status(INVALID_TOKEN_ID) + // + // .contractCallResult(resultWith() + // + // .contractCallResult(htsPrecompileResult() + // + // .forFunction(FunctionType.HAPI_GET_NON_FUNGIBLE_TOKEN_INFO) + // + // .withStatus(INVALID_TOKEN_ID) + // + // .withTokenInfo(getTokenInfoStructForEmptyFungibleToken( + // "", + // "", + // "", + // + // AccountID.getDefaultInstance(), + // 0, + // + // ByteString.EMPTY + // )) + // + // .withNftTokenInfo(getEmptyNft())))), getTxnRecord(NON_FUNGIBLE_TOKEN_INFO_TXN + 2) .andAllChildRecords() .logged()); @@ -714,6 +789,13 @@ final HapiSpec happyPathGetTokenCustomFees() { asAddress(spec.registry().getTokenID(PRIMARY_TOKEN_NAME)))) .via(TOKEN_INFO_TXN) .gas(1_000_000L), + // , contractCall( + // TOKEN_INFO_CONTRACT, + // GET_CUSTOM_FEES_FOR_TOKEN, + // HapiParserUtil.asHeadlongAddress(new byte[20])) + // .via("fakeAddressTokenInfo") + // .gas(1_000_000L) + // .hasKnownStatus(CONTRACT_REVERT_EXECUTED), contractCallLocal( TOKEN_INFO_CONTRACT, GET_CUSTOM_FEES_FOR_TOKEN, @@ -731,7 +813,19 @@ final HapiSpec happyPathGetTokenCustomFees() { .contractCallResult(htsPrecompileResult() .forFunction(FunctionType.HAPI_GET_TOKEN_CUSTOM_FEES) .withStatus(SUCCESS) - .withCustomFees(getExpectedCustomFees(spec)))))))); + .withCustomFees(getExpectedCustomFees(spec))))) + // ,childRecordsCheck( + // "fakeAddressTokenInfo", + // CONTRACT_REVERT_EXECUTED, + // recordWith() + // .status(INVALID_TOKEN_ID) + // .contractCallResult(resultWith() + // .contractCallResult(htsPrecompileResult() + // + // .forFunction(FunctionType.HAPI_GET_TOKEN_CUSTOM_FEES) + // .withStatus(INVALID_TOKEN_ID) + // .withCustomFees(new ArrayList<>())))) + ))); } @HapiTest @@ -834,6 +928,17 @@ private TokenNftInfo getTokenNftInfoForCheck( .build(); } + private TokenNftInfo getEmptyNft() { + return TokenNftInfo.newBuilder() + .setLedgerId(ByteString.empty()) + .setNftID(NftID.getDefaultInstance()) + .setAccountID(AccountID.getDefaultInstance()) + .setCreationTime(Timestamp.newBuilder().build()) + .setMetadata(ByteString.empty()) + .setSpenderId(AccountID.getDefaultInstance()) + .build(); + } + private TokenInfo getTokenInfoStructForFungibleToken( final HapiSpec spec, final String tokenName, @@ -871,6 +976,39 @@ private TokenInfo getTokenInfoStructForFungibleToken( .build(); } + private TokenInfo getTokenInfoStructForEmptyFungibleToken( + final String tokenName, + final String symbol, + final String memo, + final AccountID treasury, + final long expirySecond, + ByteString ledgerId) { + + final ArrayList customFees = new ArrayList<>(); + + return TokenInfo.newBuilder() + .setLedgerId(ledgerId) + .setSupplyTypeValue(0) + .setExpiry(Timestamp.newBuilder().setSeconds(expirySecond)) + .setAutoRenewAccount(AccountID.getDefaultInstance()) + .setAutoRenewPeriod(Duration.newBuilder().setSeconds(0).build()) + .setSymbol(symbol) + .setName(tokenName) + .setMemo(memo) + .setTreasury(treasury) + .setTotalSupply(0) + .setMaxSupply(0) + .addAllCustomFees(customFees) + .setAdminKey(Key.newBuilder().build()) + .setKycKey(Key.newBuilder().build()) + .setFreezeKey(Key.newBuilder().build()) + .setWipeKey(Key.newBuilder().build()) + .setSupplyKey(Key.newBuilder().build()) + .setFeeScheduleKey(Key.newBuilder().build()) + .setPauseKey(Key.newBuilder().build()) + .build(); + } + @NonNull private ArrayList getExpectedCustomFees(final HapiSpec spec) { final var fixedFee = FixedFee.newBuilder().setAmount(500L).build(); diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/precompile/TokenUpdatePrecompileSuite.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/precompile/TokenUpdatePrecompileSuite.java index cd1a7a3c51b9..05128cbdfa16 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/precompile/TokenUpdatePrecompileSuite.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/precompile/TokenUpdatePrecompileSuite.java @@ -18,6 +18,7 @@ import static com.hedera.services.bdd.junit.TestTags.SMART_CONTRACT; import static com.hedera.services.bdd.spec.HapiSpec.defaultHapiSpec; +import static com.hedera.services.bdd.spec.assertions.TransactionRecordAsserts.recordWith; import static com.hedera.services.bdd.spec.keys.KeyShape.CONTRACT; import static com.hedera.services.bdd.spec.keys.KeyShape.DELEGATE_CONTRACT; import static com.hedera.services.bdd.spec.keys.KeyShape.ED25519; @@ -42,6 +43,7 @@ import static com.hedera.services.bdd.spec.utilops.UtilVerbs.withOpContext; import static com.hedera.services.bdd.suites.contract.Utils.asAddress; import static com.hedera.services.bdd.suites.contract.Utils.asToken; +import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.BUSY; import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.CONTRACT_REVERT_EXECUTED; import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.INVALID_TOKEN_ID; import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.KEY_NOT_PROVIDED; @@ -52,7 +54,6 @@ import com.hedera.services.bdd.junit.HapiTest; import com.hedera.services.bdd.junit.HapiTestSuite; import com.hedera.services.bdd.spec.HapiSpec; -import com.hedera.services.bdd.spec.assertions.TransactionRecordAsserts; import com.hedera.services.bdd.spec.transactions.contract.HapiParserUtil; import com.hedera.services.bdd.suites.HapiSuite; import com.hederahashgraph.api.proto.java.TokenID; @@ -161,6 +162,7 @@ final HapiSpec updateTokenWithInvalidKeyValues() { .via(UPDATE_TXN) .gas(GAS_TO_OFFER) .sending(DEFAULT_AMOUNT_TO_SEND) + .hasRetryPrecheckFrom(BUSY) .payingWith(ACCOUNT) .hasKnownStatus(CONTRACT_REVERT_EXECUTED), newKeyNamed(DELEGATE_KEY).shape(DELEGATE_CONTRACT.signedWith(TOKEN_UPDATE_CONTRACT)), @@ -214,6 +216,7 @@ public HapiSpec updateNftTokenKeysWithWrongTokenIdAndMissingAdminKey() { .via(UPDATE_TXN) .gas(GAS_TO_OFFER) .sending(DEFAULT_AMOUNT_TO_SEND) + .hasRetryPrecheckFrom(BUSY) .payingWith(ACCOUNT) .hasKnownStatus(CONTRACT_REVERT_EXECUTED), contractCall( @@ -233,6 +236,7 @@ public HapiSpec updateNftTokenKeysWithWrongTokenIdAndMissingAdminKey() { .via(NO_ADMIN_KEY) .gas(GAS_TO_OFFER) .sending(DEFAULT_AMOUNT_TO_SEND) + .hasRetryPrecheckFrom(BUSY) .payingWith(ACCOUNT) .hasKnownStatus(CONTRACT_REVERT_EXECUTED)))) .then(withOpContext((spec, opLog) -> allRunFor( @@ -240,11 +244,11 @@ public HapiSpec updateNftTokenKeysWithWrongTokenIdAndMissingAdminKey() { childRecordsCheck( UPDATE_TXN, CONTRACT_REVERT_EXECUTED, - TransactionRecordAsserts.recordWith().status(INVALID_TOKEN_ID)), + recordWith().status(INVALID_TOKEN_ID)), childRecordsCheck( NO_ADMIN_KEY, CONTRACT_REVERT_EXECUTED, - TransactionRecordAsserts.recordWith().status(TOKEN_IS_IMMUTABLE))))); + recordWith().status(TOKEN_IS_IMMUTABLE))))); } @HapiTest @@ -298,10 +302,19 @@ public HapiSpec getTokenKeyForNonFungibleNegative() { childRecordsCheck( "InvalidTokenId", CONTRACT_REVERT_EXECUTED, - TransactionRecordAsserts.recordWith().status(INVALID_TOKEN_ID)), + recordWith().status(INVALID_TOKEN_ID)), childRecordsCheck( NO_ADMIN_KEY, CONTRACT_REVERT_EXECUTED, - TransactionRecordAsserts.recordWith().status(KEY_NOT_PROVIDED))))); + recordWith().status(KEY_NOT_PROVIDED) + // .contractCallResult(ContractFnResultAsserts.resultWith() + // + // .contractCallResult(htsPrecompileResult() + // + // .forFunction(FunctionType.HAPI_GET_TOKEN_KEY) + // .withStatus(KEY_NOT_PROVIDED) + // + // .withTokenKeyValue(Key.newBuilder().build())))) + )))); } } diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/precompile/TopLevelSigsCanBeToggledByPrecompileTypeSuite.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/precompile/TopLevelSigsCanBeToggledByPrecompileTypeSuite.java index 6ac80887cc2a..22f2ab795555 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/precompile/TopLevelSigsCanBeToggledByPrecompileTypeSuite.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/precompile/TopLevelSigsCanBeToggledByPrecompileTypeSuite.java @@ -45,7 +45,6 @@ import static com.hedera.services.bdd.suites.contract.Utils.asToken; import static com.hedera.services.bdd.suites.contract.precompile.AssociatePrecompileSuite.THE_CONTRACT; import static com.hedera.services.bdd.suites.contract.precompile.AssociatePrecompileSuite.TOKEN_ASSOCIATE_FUNCTION; -import static com.hedera.services.bdd.suites.contract.precompile.ContractBurnHTSSuite.ALICE; import static com.hedera.services.bdd.suites.contract.precompile.ContractBurnHTSSuite.BURN_TOKEN_WITH_EVENT; import static com.hedera.services.bdd.suites.contract.precompile.ContractBurnHTSSuite.CREATION_TX; import static com.hedera.services.bdd.suites.contract.precompile.ContractBurnHTSSuite.THE_BURN_CONTRACT; @@ -78,7 +77,6 @@ import static com.hedera.services.bdd.suites.crypto.CryptoApproveAllowanceSuite.PAUSE_KEY; import static com.hedera.services.bdd.suites.token.TokenAssociationSpecs.VANILLA_TOKEN; import static com.hedera.services.bdd.suites.token.TokenTransactSpecs.SUPPLY_KEY; -import static com.hedera.services.yahcli.commands.validation.ValidationCommand.TOKEN; import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.CONTRACT_REVERT_EXECUTED; import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.INVALID_FULL_PREFIX_SIGNATURE_FOR_PRECOMPILE; import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.INVALID_SIGNATURE; @@ -108,6 +106,7 @@ public class TopLevelSigsCanBeToggledByPrecompileTypeSuite extends HapiSuite { public static final String TOKEN_DELETE_FUNCTION = "tokenDelete"; public static final String WIPE_CONTRACT = "WipeTokenAccount"; public static final String ADMIN_ACCOUNT = "admin"; + public static final String TOKEN = "yahcliToken"; private static final String ACCOUNT = "anybody"; private static final String SECOND_ACCOUNT = "anybodySecond"; public static final String WIPE_KEY = "wipeKey"; diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/crypto/CryptoTransferSuite.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/crypto/CryptoTransferSuite.java index f3e1686ac4c0..e901338a92b0 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/crypto/CryptoTransferSuite.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/crypto/CryptoTransferSuite.java @@ -97,12 +97,14 @@ import static com.hedera.services.bdd.suites.contract.Utils.aaWith; import static com.hedera.services.bdd.suites.contract.Utils.accountId; import static com.hedera.services.bdd.suites.contract.Utils.captureOneChildCreate2MetaFor; +import static com.hedera.services.bdd.suites.contract.Utils.mirrorAddrWith; import static com.hedera.services.bdd.suites.contract.Utils.ocWith; import static com.hedera.services.bdd.suites.file.FileUpdateSuite.CIVILIAN; import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.ACCOUNT_FROZEN_FOR_TOKEN; import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.ACCOUNT_KYC_NOT_GRANTED_FOR_TOKEN; import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.ACCOUNT_REPEATED_IN_ACCOUNT_AMOUNTS; import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.AMOUNT_EXCEEDS_ALLOWANCE; +import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.CONTRACT_REVERT_EXECUTED; import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.INSUFFICIENT_SENDER_ACCOUNT_BALANCE_FOR_CUSTOM_FEE; import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.INSUFFICIENT_TOKEN_BALANCE; import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.INVALID_ACCOUNT_AMOUNTS; @@ -112,6 +114,7 @@ import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.INVALID_AUTORENEW_ACCOUNT; import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.INVALID_CUSTOM_FEE_COLLECTOR; import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.INVALID_SIGNATURE; +import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.INVALID_TOKEN_ID; import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.NO_REMAINING_AUTOMATIC_ASSOCIATIONS; import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.REQUESTED_NUM_AUTOMATIC_ASSOCIATIONS_EXCEEDS_ASSOCIATION_LIMIT; import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.SPENDER_DOES_NOT_HAVE_ALLOWANCE; @@ -142,6 +145,7 @@ import com.hederahashgraph.api.proto.java.TokenTransferList; import com.hederahashgraph.api.proto.java.TokenType; import com.hederahashgraph.api.proto.java.TransferList; +import java.math.BigInteger; import java.util.List; import java.util.OptionalLong; import java.util.concurrent.atomic.AtomicReference; @@ -241,7 +245,10 @@ public List getSpecsInSuite() { hapiTransferFromForFungibleTokenWithCustomFeesWithAllowance(), okToRepeatSerialNumbersInWipeList(), okToRepeatSerialNumbersInBurnList(), - canUseAliasAndAccountCombinations()); + canUseAliasAndAccountCombinations(), + testTransferToSystemAccounts(), + testTransferToSystemAccountsAndCheckSenderBalance(), + transferInvalidTokenIdWithDecimals()); } @Override @@ -2114,6 +2121,82 @@ final HapiSpec hapiTransferFromForFungibleTokenWithCustomFeesWithAllowance() { .then(); } + @HapiTest + final HapiSpec testTransferToSystemAccounts() { + final var contract = "CryptoTransfer"; + final var systemAccounts = List.of(359L, 360L, 361L); + final HapiSpecOperation[] opsArray = new HapiSpecOperation[systemAccounts.size() * 3]; + + for (int i = 0; i < systemAccounts.size(); i++) { + opsArray[i] = contractCall(contract, "sendViaTransfer", mirrorAddrWith(systemAccounts.get(i))) + .payingWith(SENDER) + .sending(ONE_HBAR * 10) + .gas(100000) + .hasKnownStatus(CONTRACT_REVERT_EXECUTED); + + opsArray[systemAccounts.size() + i] = contractCall( + contract, "sendViaSend", mirrorAddrWith(systemAccounts.get(i))) + .payingWith(SENDER) + .sending(ONE_HBAR * 10) + .gas(100000) + .hasKnownStatus(CONTRACT_REVERT_EXECUTED); + + opsArray[systemAccounts.size() * 2 + i] = contractCall( + contract, "sendViaCall", mirrorAddrWith(systemAccounts.get(i))) + .payingWith(SENDER) + .sending(ONE_HBAR * 10) + .gas(100000) + .hasKnownStatus(CONTRACT_REVERT_EXECUTED); + } + + return defaultHapiSpec("testTransferToSystemAccounts", EXPECT_STREAMLINED_INGEST_RECORDS) + .given( + cryptoCreate(SENDER).balance(ONE_HUNDRED_HBARS), + uploadInitCode(contract), + contractCreate(contract)) + .when(opsArray) + .then(); + } + + @HapiTest + final HapiSpec testTransferToSystemAccountsAndCheckSenderBalance() { + final var transferContract = "CryptoTransfer"; + final var balanceContract = "BalanceChecker46Version"; + final var senderAccount = "detachedSenderAccount"; + return defaultHapiSpec("testTransferToSystemAccountsAndCheckSenderBalance", EXPECT_STREAMLINED_INGEST_RECORDS) + .given( + cryptoCreate(senderAccount).balance(ONE_HUNDRED_HBARS), + uploadInitCode(transferContract), + contractCreate(transferContract).balance(ONE_HBAR), + uploadInitCode(balanceContract), + contractCreate(balanceContract)) + .when(contractCall( + transferContract, + "sendViaTransferWithAmount", + mirrorAddrWith(359L), + BigInteger.valueOf(15L)) + .payingWith(senderAccount) + .hasKnownStatus(CONTRACT_REVERT_EXECUTED)) + .then(getAccountBalance(transferContract, true).hasTinyBars(ONE_HBAR)); + } + + @HapiTest + final HapiSpec transferInvalidTokenIdWithDecimals() { + return defaultHapiSpec("transferInvalidTokenIdWithDecimals", FULLY_NONDETERMINISTIC) + .given(cryptoCreate(TREASURY), withOpContext((spec, opLog) -> { + final var acctCreate = cryptoCreate(PAYER).balance(ONE_HUNDRED_HBARS); + allRunFor(spec, acctCreate); + // Here we take an account ID and store it as a token ID in the registry, so that when the "token + // number" is submitted by the test client, it will recreate the bug scenario: + final var bogusTokenId = TokenID.newBuilder().setTokenNum(acctCreate.numOfCreatedAccount()); + spec.registry().saveTokenId("nonexistent", bogusTokenId.build()); + })) + .when() + .then(sourcing(() -> cryptoTransfer( + movingWithDecimals(1L, "nonexistent", 2).betweenWithDecimals(PAYER, TREASURY)) + .hasKnownStatus(INVALID_TOKEN_ID))); + } + @Override protected Logger getResultsLogger() { return LOG; diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/ethereum/EthereumSuite.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/ethereum/EthereumSuite.java index 20762b51555d..a93239a6b47b 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/ethereum/EthereumSuite.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/ethereum/EthereumSuite.java @@ -173,7 +173,8 @@ public List getSpecsInSuite() { transferHbarsViaEip2930TxSuccessfully(), callToTokenAddressViaEip2930TxSuccessfully(), transferTokensViaEip2930TxSuccessfully(), - accountDeletionResetsTheAliasNonce())) + accountDeletionResetsTheAliasNonce(), + legacyUnprotectedEtxBeforeEIP155WithDefaultChainId())) .toList(); } @@ -1128,6 +1129,48 @@ final HapiSpec accountDeletionResetsTheAliasNonce() { })); } + // test unprotected legacy ethereum transactions before EIP155, + // without changing `CHAIN_ID` bootstrap property + // this tests the behaviour when the `v` field + // is calculated -> v = {0,1} + 27 + // source: https://eips.ethereum.org/EIPS/eip-155 + @HapiTest + HapiSpec legacyUnprotectedEtxBeforeEIP155WithDefaultChainId() { + final String DEPOSIT = "deposit"; + final long depositAmount = 20_000L; + final Integer chainId = 0; + + return defaultHapiSpec( + "legacyUnprotectedEtxBeforeEIP155WithDefaultChainId", + NONDETERMINISTIC_ETHEREUM_DATA, + NONDETERMINISTIC_CONTRACT_CALL_RESULTS) + .given( + newKeyNamed(SECP_256K1_SOURCE_KEY).shape(SECP_256K1_SHAPE), + cryptoCreate(RELAYER).balance(6 * ONE_MILLION_HBARS), + cryptoTransfer(tinyBarsFromAccountToAlias(GENESIS, SECP_256K1_SOURCE_KEY, ONE_HUNDRED_HBARS)) + .via("autoAccount"), + getTxnRecord("autoAccount").andAllChildRecords(), + uploadInitCode(PAY_RECEIVABLE_CONTRACT), + contractCreate(PAY_RECEIVABLE_CONTRACT).adminKey(THRESHOLD)) + .when(ethereumCall(PAY_RECEIVABLE_CONTRACT, DEPOSIT, BigInteger.valueOf(depositAmount)) + .type(EthTransactionType.LEGACY_ETHEREUM) + .signingWith(SECP_256K1_SOURCE_KEY) + .payingWith(RELAYER) + .via("legacyBeforeEIP155") + .nonce(0) + .chainId(chainId) + .gasPrice(50L) + .maxPriorityGas(2L) + .gasLimit(1_000_000L) + .sending(depositAmount) + .hasKnownStatus(ResponseCodeEnum.SUCCESS)) + .then(withOpContext((spec, opLog) -> allRunFor( + spec, + getTxnRecord("legacyBeforeEIP155") + .logged() + .hasPriority(recordWith().status(SUCCESS))))); + } + @Override protected Logger getResultsLogger() { return log; diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/ethereum/NonceSuite.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/ethereum/NonceSuite.java new file mode 100644 index 000000000000..48773dc2d61a --- /dev/null +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/ethereum/NonceSuite.java @@ -0,0 +1,1136 @@ +/* + * Copyright (C) 2022-2024 Hedera Hashgraph, LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.hedera.services.bdd.suites.ethereum; + +import static com.hedera.services.bdd.junit.TestTags.SMART_CONTRACT; +import static com.hedera.services.bdd.spec.HapiPropertySource.asHexedSolidityAddress; +import static com.hedera.services.bdd.spec.HapiSpec.defaultHapiSpec; +import static com.hedera.services.bdd.spec.assertions.AccountInfoAsserts.accountWith; +import static com.hedera.services.bdd.spec.assertions.ContractFnResultAsserts.resultWith; +import static com.hedera.services.bdd.spec.assertions.TransactionRecordAsserts.recordWith; +import static com.hedera.services.bdd.spec.queries.QueryVerbs.getAccountInfo; +import static com.hedera.services.bdd.spec.queries.QueryVerbs.getAliasedAccountInfo; +import static com.hedera.services.bdd.spec.queries.QueryVerbs.getTxnRecord; +import static com.hedera.services.bdd.spec.transactions.TxnVerbs.contractCall; +import static com.hedera.services.bdd.spec.transactions.TxnVerbs.contractCreate; +import static com.hedera.services.bdd.spec.transactions.TxnVerbs.cryptoCreate; +import static com.hedera.services.bdd.spec.transactions.TxnVerbs.cryptoTransfer; +import static com.hedera.services.bdd.spec.transactions.TxnVerbs.ethereumCall; +import static com.hedera.services.bdd.spec.transactions.TxnVerbs.ethereumContractCreate; +import static com.hedera.services.bdd.spec.transactions.TxnVerbs.tokenCreate; +import static com.hedera.services.bdd.spec.transactions.TxnVerbs.uploadInitCode; +import static com.hedera.services.bdd.spec.transactions.contract.HapiParserUtil.asHeadlongAddress; +import static com.hedera.services.bdd.spec.transactions.crypto.HapiCryptoTransfer.tinyBarsFromAccountToAlias; +import static com.hedera.services.bdd.spec.utilops.CustomSpecAssert.allRunFor; +import static com.hedera.services.bdd.spec.utilops.UtilVerbs.newKeyNamed; +import static com.hedera.services.bdd.spec.utilops.UtilVerbs.overriding; +import static com.hedera.services.bdd.spec.utilops.UtilVerbs.overridingAllOfDeferred; +import static com.hedera.services.bdd.spec.utilops.UtilVerbs.recordSystemProperty; +import static com.hedera.services.bdd.spec.utilops.UtilVerbs.remembering; +import static com.hedera.services.bdd.spec.utilops.UtilVerbs.sourcing; +import static com.hedera.services.bdd.spec.utilops.UtilVerbs.withOpContext; +import static com.hedera.services.bdd.spec.utilops.records.SnapshotMatchMode.HIGHLY_NON_DETERMINISTIC_FEES; +import static com.hedera.services.bdd.spec.utilops.records.SnapshotMatchMode.NONDETERMINISTIC_ETHEREUM_DATA; +import static com.hedera.services.bdd.spec.utilops.records.SnapshotMatchMode.NONDETERMINISTIC_FUNCTION_PARAMETERS; +import static com.hedera.services.bdd.spec.utilops.records.SnapshotMatchMode.NONDETERMINISTIC_TRANSACTION_FEES; +import static com.hedera.services.bdd.suites.contract.Utils.mirrorAddrWith; +import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.BUSY; +import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.CONTRACT_REVERT_EXECUTED; +import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.INSUFFICIENT_GAS; +import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.INSUFFICIENT_PAYER_BALANCE; +import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.INSUFFICIENT_TX_FEE; +import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.INVALID_ACCOUNT_ID; +import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.MAX_CHILD_RECORDS_EXCEEDED; +import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.MAX_GAS_LIMIT_EXCEEDED; +import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.NEGATIVE_ALLOWANCE_AMOUNT; +import static com.hederahashgraph.api.proto.java.TokenType.FUNGIBLE_COMMON; + +import com.hedera.node.app.hapi.utils.ethereum.EthTxData; +import com.hedera.node.app.hapi.utils.ethereum.EthTxData.EthTransactionType; +import com.hedera.services.bdd.junit.HapiTest; +import com.hedera.services.bdd.junit.HapiTestSuite; +import com.hedera.services.bdd.spec.HapiPropertySource; +import com.hedera.services.bdd.spec.HapiSpec; +import com.hedera.services.bdd.spec.HapiSpecSetup; +import com.hedera.services.bdd.suites.HapiSuite; +import com.hederahashgraph.api.proto.java.AccountID; +import java.math.BigInteger; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.atomic.AtomicLong; +import java.util.concurrent.atomic.AtomicReference; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.junit.jupiter.api.Tag; + +@HapiTestSuite(fuzzyMatch = true) +@Tag(SMART_CONTRACT) +@SuppressWarnings("java:S5960") +public class NonceSuite extends HapiSuite { + + private static final Logger log = LogManager.getLogger(NonceSuite.class); + private static final long LOW_GAS_PRICE = 1L; + private static final long ENOUGH_GAS_PRICE = 75L; + private static final long ENOUGH_GAS_LIMIT = 150_000L; + private static final String RECEIVER = "receiver"; + private static final String INTERNAL_CALLEE_CONTRACT = "InternalCallee"; + private static final String INTERNAL_CALLER_CONTRACT = "InternalCaller"; + private static final String MANY_CHILDREN_CONTRACT = "ManyChildren"; + private static final String FACTORY_CONTRACT = "FactoryContract"; + private static final String REVERTER_CONSTRUCTOR_CONTRACT = "ReverterConstructor"; + private static final String REVERTER_CONSTRUCTOR_TRANSFER_CONTRACT = "ReverterConstructorTransfer"; + private static final String REVERTER_CONSTRUCTOR_CALL_WITH_VALUE_TO_ETH_PRECOMPILE_CONTRACT = + "ConsValueEthPrecompile"; + private static final String REVERTER_CONSTRUCTOR_CALL_WITH_VALUE_TO_HEDERA_PRECOMPILE_CONTRACT = + "ConsValueSysContract"; + private static final String EXTERNAL_FUNCTION = "externalFunction"; + private static final String REVERT_WITH_REVERT_REASON_FUNCTION = "revertWithRevertReason"; + private static final String TRANSFER_TO_FUNCTION = "transferTo"; + private static final String DEPLOYMENT_SUCCESS_FUNCTION = "deploymentSuccess"; + private static final String CHECK_BALANCE_REPEATEDLY_FUNCTION = "checkBalanceRepeatedly"; + private static final String TX = "tx"; + + public static void main(String... args) { + new NonceSuite().runSuiteAsync(); + } + + @Override + public boolean canRunConcurrent() { + return true; + } + + @Override + public List getSpecsInSuite() { + return List.of( + // pre-checks + nonceNotUpdatedWhenSignerDoesExistPrecheckFailed(), + nonceNotUpdatedWhenPayerHasInsufficientBalancePrecheckFailed(), + nonceNotUpdatedWhenNegativeMaxGasAllowancePrecheckFailed(), + nonceNotUpdatedWhenInsufficientIntrinsicGasPrecheckFailed(), + nonceNotUpdatedWhenMaxGasPerSecPrecheckFailed(), + // handler checks + nonceNotUpdatedWhenIntrinsicGasHandlerCheckFailed(), + nonceNotUpdatedWhenUserOfferedGasPriceAndAllowanceAreZeroHandlerCheckFailed(), + nonceNotUpdatedWhenOfferedGasPriceIsLessThanCurrentAndSenderDoesNotHaveEnoughBalanceHandlerCheckFailed(), + nonceNotUpdatedWhenOfferedGasPriceIsLessThanCurrentAndGasAllowanceIsLessThanRemainingFeeHandlerCheckFailed(), + nonceNotUpdatedWhenOfferedGasPriceIsBiggerThanCurrentAndSenderDoesNotHaveEnoughBalanceHandlerCheckFailed(), + nonceNotUpdatedWhenSenderDoesNotHaveEnoughBalanceHandlerCheckFailed(), + nonceNotUpdatedForNonEthereumTransaction(), + revertsWhenSenderDoesNotExist(), + // evm smart contract reversions + nonceUpdatedAfterEvmReversionDueContractLogic(), + nonceUpdatedAfterEvmReversionDueInsufficientGas(), + nonceUpdatedAfterEvmReversionDueInsufficientTransferAmount(), + // evm hedera specific reversions + nonceUpdatedAfterEvmReversionDueSendingValueToEthereumPrecompile0x2(), + nonceUpdatedAfterEvmReversionDueSendingValueToHederaPrecompile0x167(), + // evm hedera specific resource validation reversions + nonceUpdatedAfterEvmReversionDueMaxChildRecordsExceeded(), + // successful ethereum transactions via internal calls + nonceUpdatedAfterSuccessfulInternalCall(), + nonceUpdatedAfterSuccessfulInternalTransfer(), + nonceUpdatedAfterSuccessfulInternalContractDeployment(), + // handler checks for contract creation + nonceNotUpdatedWhenIntrinsicGasHandlerCheckFailedEthContractCreate(), + nonceNotUpdatedWhenUserOfferedGasPriceAndAllowanceAreZeroHandlerCheckFailedEthContractCreate(), + nonceNotUpdatedWhenOfferedGasPriceIsLessThanCurrentAndSenderDoesNotHaveEnoughBalanceHandlerCheckFailedEthContractCreate(), + nonceNotUpdatedWhenOfferedGasPriceIsLessThanCurrentAndGasAllowanceIsLessThanRemainingFeeHandlerCheckFailedEthContractCreate(), + nonceNotUpdatedWhenOfferedGasPriceIsBiggerThanCurrentAndSenderDoesNotHaveEnoughBalanceHandlerCheckFailedEthContractCreate(), + nonceNotUpdatedWhenSenderDoesNotHaveEnoughBalanceHandlerCheckFailedEthContractCreate(), + // evm smart contract reversions for contract creation + nonceUpdatedAfterEvmReversionDueContractLogicEthContractCreate(), + nonceUpdatedAfterEvmReversionDueInsufficientGasEthContractCreate(), + nonceUpdatedAfterEvmReversionDueInsufficientTransferAmountEthContractCreate(), + // evm hedera specific reversions for contract creation + nonceUpdatedAfterEvmReversionDueSendingValueToEthereumPrecompileEthContractCreate(), + // successful ethereum contract deploy + nonceUpdatedAfterSuccessfulEthereumContractCreation()); + } + + @HapiTest + HapiSpec nonceNotUpdatedWhenSignerDoesExistPrecheckFailed() { + return defaultHapiSpec("nonceNotUpdatedWhenSignerDoesExistPrecheckFailed", NONDETERMINISTIC_TRANSACTION_FEES) + .given( + newKeyNamed(SECP_256K1_SOURCE_KEY).shape(SECP_256K1_SHAPE), + cryptoCreate(RELAYER).balance(ONE_HUNDRED_HBARS), + uploadInitCode(INTERNAL_CALLEE_CONTRACT), + contractCreate(INTERNAL_CALLEE_CONTRACT)) + .when(ethereumCall(INTERNAL_CALLEE_CONTRACT, EXTERNAL_FUNCTION) + .type(EthTransactionType.EIP1559) + .signingWith(SECP_256K1_SOURCE_KEY) + .payingWith(RELAYER) + .nonce(0) + .gasLimit(ENOUGH_GAS_LIMIT) + .hasPrecheck(INVALID_ACCOUNT_ID)) + .then(getAliasedAccountInfo(SECP_256K1_SOURCE_KEY).hasCostAnswerPrecheck(INVALID_ACCOUNT_ID)); + } + + @HapiTest + HapiSpec nonceNotUpdatedWhenPayerHasInsufficientBalancePrecheckFailed() { + return defaultHapiSpec( + "nonceNotUpdatedWhenPayerHasInsufficientBalancePrecheckFailed", + NONDETERMINISTIC_TRANSACTION_FEES) + .given( + newKeyNamed(SECP_256K1_SOURCE_KEY).shape(SECP_256K1_SHAPE), + cryptoCreate(RELAYER).balance(1L), + cryptoTransfer(tinyBarsFromAccountToAlias(GENESIS, SECP_256K1_SOURCE_KEY, ONE_HBAR)), + uploadInitCode(INTERNAL_CALLEE_CONTRACT), + contractCreate(INTERNAL_CALLEE_CONTRACT)) + .when(ethereumCall(INTERNAL_CALLEE_CONTRACT, EXTERNAL_FUNCTION) + .type(EthTransactionType.EIP1559) + .signingWith(SECP_256K1_SOURCE_KEY) + .payingWith(RELAYER) + .nonce(5644L) + .gasLimit(ENOUGH_GAS_LIMIT) + .hasPrecheck(INSUFFICIENT_PAYER_BALANCE)) + .then(getAliasedAccountInfo(SECP_256K1_SOURCE_KEY) + .has(accountWith().nonce(0L))); + } + + @HapiTest + HapiSpec nonceNotUpdatedWhenNegativeMaxGasAllowancePrecheckFailed() { + return defaultHapiSpec( + "nonceNotUpdatedWhenNegativeMaxGasAllowancePrecheckFailed", NONDETERMINISTIC_TRANSACTION_FEES) + .given( + newKeyNamed(SECP_256K1_SOURCE_KEY).shape(SECP_256K1_SHAPE), + cryptoCreate(RELAYER).balance(ONE_HUNDRED_HBARS), + cryptoTransfer(tinyBarsFromAccountToAlias(GENESIS, SECP_256K1_SOURCE_KEY, ONE_HBAR)), + uploadInitCode(INTERNAL_CALLEE_CONTRACT), + contractCreate(INTERNAL_CALLEE_CONTRACT)) + .when(ethereumCall(INTERNAL_CALLEE_CONTRACT, EXTERNAL_FUNCTION) + .type(EthTransactionType.EIP1559) + .signingWith(SECP_256K1_SOURCE_KEY) + .payingWith(RELAYER) + .nonce(0) + .maxGasAllowance(-1L) + .gasLimit(ENOUGH_GAS_LIMIT) + .hasPrecheck(NEGATIVE_ALLOWANCE_AMOUNT)) + .then(getAliasedAccountInfo(SECP_256K1_SOURCE_KEY) + .has(accountWith().nonce(0L))); + } + + @HapiTest + HapiSpec nonceNotUpdatedWhenInsufficientIntrinsicGasPrecheckFailed() { + return defaultHapiSpec( + "nonceNotUpdatedWhenInsufficientIntrinsicGasPrecheckFailed", NONDETERMINISTIC_TRANSACTION_FEES) + .given( + newKeyNamed(SECP_256K1_SOURCE_KEY).shape(SECP_256K1_SHAPE), + cryptoCreate(RELAYER).balance(ONE_HUNDRED_HBARS), + cryptoTransfer(tinyBarsFromAccountToAlias(GENESIS, SECP_256K1_SOURCE_KEY, ONE_HBAR)), + uploadInitCode(INTERNAL_CALLEE_CONTRACT), + contractCreate(INTERNAL_CALLEE_CONTRACT)) + .when(ethereumCall(INTERNAL_CALLEE_CONTRACT, EXTERNAL_FUNCTION) + .type(EthTransactionType.EIP1559) + .signingWith(SECP_256K1_SOURCE_KEY) + .payingWith(RELAYER) + .nonce(0) + .gasLimit(0L) + .hasPrecheck(INSUFFICIENT_GAS)) + .then(getAliasedAccountInfo(SECP_256K1_SOURCE_KEY) + .has(accountWith().nonce(0L))); + } + + @HapiTest + HapiSpec nonceNotUpdatedWhenMaxGasPerSecPrecheckFailed() { + final Map startingProps = new HashMap<>(); + final String USE_GAS_THROTTLE_PROP = "contracts.throttle.throttleByGas"; + AtomicLong maxGasPerSec = new AtomicLong(); + return defaultHapiSpec("nonceNotUpdatedWhenMaxGasPerSecPrecheckFailed", NONDETERMINISTIC_TRANSACTION_FEES) + .given( + remembering(startingProps, USE_GAS_THROTTLE_PROP), + overriding(USE_GAS_THROTTLE_PROP, "true"), + recordSystemProperty("contracts.maxGasPerSec", Long::parseLong, maxGasPerSec::set), + newKeyNamed(SECP_256K1_SOURCE_KEY).shape(SECP_256K1_SHAPE), + cryptoCreate(RELAYER).balance(ONE_HUNDRED_HBARS), + cryptoTransfer(tinyBarsFromAccountToAlias(GENESIS, SECP_256K1_SOURCE_KEY, ONE_HBAR)), + uploadInitCode(INTERNAL_CALLEE_CONTRACT), + contractCreate(INTERNAL_CALLEE_CONTRACT)) + .when(sourcing(() -> ethereumCall(INTERNAL_CALLEE_CONTRACT, EXTERNAL_FUNCTION) + .type(EthTransactionType.EIP1559) + .signingWith(SECP_256K1_SOURCE_KEY) + .payingWith(RELAYER) + .nonce(0) + .gasLimit(maxGasPerSec.get() + 1L) + .hasPrecheckFrom(MAX_GAS_LIMIT_EXCEEDED, BUSY))) + .then( + overridingAllOfDeferred(() -> startingProps), + getAliasedAccountInfo(SECP_256K1_SOURCE_KEY) + .has(accountWith().nonce(0L))); + } + + @HapiTest + HapiSpec nonceNotUpdatedWhenIntrinsicGasHandlerCheckFailed() { + return defaultHapiSpec( + "nonceNotUpdatedWhenIntrinsicGasHandlerCheckFailed", + NONDETERMINISTIC_TRANSACTION_FEES, + NONDETERMINISTIC_ETHEREUM_DATA) + .given( + newKeyNamed(SECP_256K1_SOURCE_KEY).shape(SECP_256K1_SHAPE), + cryptoCreate(RELAYER).balance(ONE_HUNDRED_HBARS), + cryptoTransfer(tinyBarsFromAccountToAlias(GENESIS, SECP_256K1_SOURCE_KEY, ONE_HBAR)), + uploadInitCode(INTERNAL_CALLEE_CONTRACT), + contractCreate(INTERNAL_CALLEE_CONTRACT)) + .when(ethereumCall(INTERNAL_CALLEE_CONTRACT, EXTERNAL_FUNCTION) + .type(EthTransactionType.EIP1559) + .signingWith(SECP_256K1_SOURCE_KEY) + .payingWith(RELAYER) + .nonce(0) + .gasLimit(21_000L) + .hasKnownStatus(INSUFFICIENT_GAS) + .via(TX)) + .then( + getAliasedAccountInfo(SECP_256K1_SOURCE_KEY) + .has(accountWith().nonce(0L)), + getTxnRecord(TX) + .hasPriority(recordWith() + .status(INSUFFICIENT_GAS) + .contractCallResult(resultWith().signerNonce(0L)))); + } + + @HapiTest + HapiSpec nonceNotUpdatedWhenUserOfferedGasPriceAndAllowanceAreZeroHandlerCheckFailed() { + return defaultHapiSpec( + "nonceNotUpdatedWhenUserOfferedGasPriceAndAllowanceAreZeroHandlerCheckFailed", + NONDETERMINISTIC_TRANSACTION_FEES) + .given( + newKeyNamed(SECP_256K1_SOURCE_KEY).shape(SECP_256K1_SHAPE), + cryptoCreate(RELAYER).balance(ONE_HUNDRED_HBARS), + cryptoTransfer(tinyBarsFromAccountToAlias(GENESIS, SECP_256K1_SOURCE_KEY, ONE_HBAR)), + uploadInitCode(INTERNAL_CALLEE_CONTRACT), + contractCreate(INTERNAL_CALLEE_CONTRACT)) + .when(ethereumCall(INTERNAL_CALLEE_CONTRACT, EXTERNAL_FUNCTION) + .type(EthTransactionType.EIP1559) + .signingWith(SECP_256K1_SOURCE_KEY) + .payingWith(RELAYER) + .nonce(0) + .gasLimit(ENOUGH_GAS_LIMIT) + .maxFeePerGas(0L) + .maxGasAllowance(0L) + .hasKnownStatus(INSUFFICIENT_TX_FEE) + .via(TX)) + .then( + getAliasedAccountInfo(SECP_256K1_SOURCE_KEY) + .has(accountWith().nonce(0L)), + getTxnRecord(TX) + .hasPriority(recordWith() + .status(INSUFFICIENT_TX_FEE) + .contractCallResult(resultWith().signerNonce(0L)))); + } + + @HapiTest + HapiSpec nonceNotUpdatedWhenOfferedGasPriceIsLessThanCurrentAndSenderDoesNotHaveEnoughBalanceHandlerCheckFailed() { + return defaultHapiSpec( + "nonceNotUpdatedWhenOfferedGasPriceIsLessThanCurrentAndSenderDoesNotHaveEnoughBalanceHandlerCheckFailed", + NONDETERMINISTIC_TRANSACTION_FEES) + .given( + newKeyNamed(SECP_256K1_SOURCE_KEY).shape(SECP_256K1_SHAPE), + cryptoCreate(RELAYER).balance(ONE_HUNDRED_HBARS), + cryptoTransfer(tinyBarsFromAccountToAlias(GENESIS, SECP_256K1_SOURCE_KEY, 1L)), + uploadInitCode(INTERNAL_CALLEE_CONTRACT), + contractCreate(INTERNAL_CALLEE_CONTRACT)) + .when(ethereumCall(INTERNAL_CALLEE_CONTRACT, EXTERNAL_FUNCTION) + .type(EthTransactionType.EIP1559) + .signingWith(SECP_256K1_SOURCE_KEY) + .payingWith(RELAYER) + .nonce(0) + .gasLimit(ENOUGH_GAS_LIMIT) + .maxFeePerGas(LOW_GAS_PRICE) + .hasKnownStatus(INSUFFICIENT_PAYER_BALANCE) + .via(TX)) + .then( + getAliasedAccountInfo(SECP_256K1_SOURCE_KEY) + .has(accountWith().nonce(0L)), + getTxnRecord(TX) + .hasPriority(recordWith() + .status(INSUFFICIENT_PAYER_BALANCE) + .contractCallResult(resultWith().signerNonce(0L)))); + } + + @HapiTest + HapiSpec + nonceNotUpdatedWhenOfferedGasPriceIsLessThanCurrentAndGasAllowanceIsLessThanRemainingFeeHandlerCheckFailed() { + return defaultHapiSpec( + "nonceNotUpdatedWhenOfferedGasPriceIsLessThanCurrentAndGasAllowanceIsLessThanRemainingFeeHandlerCheckFailed", + NONDETERMINISTIC_TRANSACTION_FEES) + .given( + newKeyNamed(SECP_256K1_SOURCE_KEY).shape(SECP_256K1_SHAPE), + cryptoCreate(RELAYER).balance(ONE_HUNDRED_HBARS), + cryptoTransfer(tinyBarsFromAccountToAlias(GENESIS, SECP_256K1_SOURCE_KEY, ONE_HUNDRED_HBARS)), + uploadInitCode(INTERNAL_CALLEE_CONTRACT), + contractCreate(INTERNAL_CALLEE_CONTRACT)) + .when(ethereumCall(INTERNAL_CALLEE_CONTRACT, EXTERNAL_FUNCTION) + .type(EthTransactionType.EIP1559) + .signingWith(SECP_256K1_SOURCE_KEY) + .payingWith(RELAYER) + .nonce(0) + .gasLimit(ENOUGH_GAS_LIMIT) + .maxFeePerGas(LOW_GAS_PRICE) + .maxGasAllowance(0L) + .hasKnownStatus(INSUFFICIENT_TX_FEE) + .via(TX)) + .then( + getAliasedAccountInfo(SECP_256K1_SOURCE_KEY) + .has(accountWith().nonce(0L)), + getTxnRecord(TX) + .hasPriority(recordWith() + .status(INSUFFICIENT_TX_FEE) + .contractCallResult(resultWith().signerNonce(0L)))); + } + + @HapiTest + HapiSpec + nonceNotUpdatedWhenOfferedGasPriceIsBiggerThanCurrentAndSenderDoesNotHaveEnoughBalanceHandlerCheckFailed() { + return defaultHapiSpec( + "nonceNotUpdatedWhenOfferedGasPriceIsBiggerThanCurrentAndSenderDoesNotHaveEnoughBalanceHandlerCheckFailed", + NONDETERMINISTIC_TRANSACTION_FEES) + .given( + newKeyNamed(SECP_256K1_SOURCE_KEY).shape(SECP_256K1_SHAPE), + cryptoCreate(RELAYER).balance(ONE_HUNDRED_HBARS), + cryptoTransfer(tinyBarsFromAccountToAlias(GENESIS, SECP_256K1_SOURCE_KEY, 1L)), + uploadInitCode(INTERNAL_CALLEE_CONTRACT), + contractCreate(INTERNAL_CALLEE_CONTRACT)) + .when(ethereumCall(INTERNAL_CALLEE_CONTRACT, EXTERNAL_FUNCTION) + .type(EthTransactionType.EIP1559) + .signingWith(SECP_256K1_SOURCE_KEY) + .payingWith(RELAYER) + .nonce(0) + .gasLimit(ENOUGH_GAS_LIMIT) + .maxFeePerGas(ENOUGH_GAS_PRICE) + .hasKnownStatus(INSUFFICIENT_PAYER_BALANCE) + .via(TX)) + .then( + getAliasedAccountInfo(SECP_256K1_SOURCE_KEY) + .has(accountWith().nonce(0L)), + getTxnRecord(TX) + .hasPriority(recordWith() + .status(INSUFFICIENT_PAYER_BALANCE) + .contractCallResult(resultWith().signerNonce(0L)))); + } + + @HapiTest + HapiSpec nonceNotUpdatedWhenSenderDoesNotHaveEnoughBalanceHandlerCheckFailed() { + return defaultHapiSpec( + "nonceNotUpdatedWhenSenderDoesNotHaveEnoughBalanceHandlerCheckFailed", + NONDETERMINISTIC_TRANSACTION_FEES) + .given( + newKeyNamed(SECP_256K1_SOURCE_KEY).shape(SECP_256K1_SHAPE), + cryptoCreate(RELAYER).balance(ONE_HUNDRED_HBARS), + cryptoTransfer(tinyBarsFromAccountToAlias(GENESIS, SECP_256K1_SOURCE_KEY, 1L)), + uploadInitCode(INTERNAL_CALLEE_CONTRACT), + contractCreate(INTERNAL_CALLEE_CONTRACT)) + .when(ethereumCall(INTERNAL_CALLEE_CONTRACT, EXTERNAL_FUNCTION) + .type(EthTransactionType.EIP1559) + .signingWith(SECP_256K1_SOURCE_KEY) + .payingWith(RELAYER) + .nonce(0) + .gasLimit(ENOUGH_GAS_LIMIT) + .maxFeePerGas(0L) + .sending(5L) + .hasKnownStatus(INSUFFICIENT_PAYER_BALANCE) + .via(TX)) + .then( + getAliasedAccountInfo(SECP_256K1_SOURCE_KEY) + .has(accountWith().nonce(0L)), + getTxnRecord(TX) + .hasPriority(recordWith() + .status(INSUFFICIENT_PAYER_BALANCE) + .contractCallResult(resultWith().signerNonce(0L)))); + } + + @HapiTest + HapiSpec nonceNotUpdatedForNonEthereumTransaction() { + return defaultHapiSpec("nonceNotUpdatedForNonEthereumTransaction") + .given( + cryptoCreate(RELAYER).balance(ONE_HUNDRED_HBARS), + uploadInitCode(INTERNAL_CALLEE_CONTRACT), + contractCreate(INTERNAL_CALLEE_CONTRACT)) + .when(contractCall(INTERNAL_CALLEE_CONTRACT, EXTERNAL_FUNCTION) + .gas(ENOUGH_GAS_LIMIT) + .payingWith(RELAYER) + .signingWith(RELAYER) + .via(TX)) + .then(getAccountInfo(RELAYER).has(accountWith().nonce(0L))); + } + + @HapiTest + HapiSpec nonceUpdatedAfterSuccessfulInternalCall() { + return defaultHapiSpec( + "nonceUpdatedAfterSuccessfulInternalCall", + NONDETERMINISTIC_ETHEREUM_DATA, + NONDETERMINISTIC_TRANSACTION_FEES) + .given( + newKeyNamed(SECP_256K1_SOURCE_KEY).shape(SECP_256K1_SHAPE), + cryptoCreate(RELAYER).balance(ONE_HUNDRED_HBARS), + cryptoTransfer(tinyBarsFromAccountToAlias(GENESIS, SECP_256K1_SOURCE_KEY, ONE_HBAR)), + uploadInitCode(INTERNAL_CALLEE_CONTRACT), + contractCreate(INTERNAL_CALLEE_CONTRACT)) + .when(ethereumCall(INTERNAL_CALLEE_CONTRACT, EXTERNAL_FUNCTION) + .type(EthTransactionType.EIP1559) + .signingWith(SECP_256K1_SOURCE_KEY) + .payingWith(RELAYER) + .nonce(0) + .gasLimit(ENOUGH_GAS_LIMIT) + .via(TX)) + .then( + getAliasedAccountInfo(SECP_256K1_SOURCE_KEY) + .has(accountWith().nonce(1L)), + getTxnRecord(TX) + .hasPriority(recordWith() + .contractCallResult(resultWith().signerNonce(1L)))); + } + + @HapiTest + HapiSpec nonceUpdatedAfterEvmReversionDueContractLogic() { + return defaultHapiSpec( + "nonceUpdatedAfterEvmReversionDueContractLogic", + NONDETERMINISTIC_ETHEREUM_DATA, + HIGHLY_NON_DETERMINISTIC_FEES) + .given( + newKeyNamed(SECP_256K1_SOURCE_KEY).shape(SECP_256K1_SHAPE), + cryptoCreate(RELAYER).balance(ONE_HUNDRED_HBARS), + cryptoTransfer(tinyBarsFromAccountToAlias(GENESIS, SECP_256K1_SOURCE_KEY, ONE_HBAR)), + uploadInitCode(INTERNAL_CALLEE_CONTRACT), + contractCreate(INTERNAL_CALLEE_CONTRACT)) + .when(ethereumCall(INTERNAL_CALLEE_CONTRACT, REVERT_WITH_REVERT_REASON_FUNCTION) + .type(EthTransactionType.EIP1559) + .signingWith(SECP_256K1_SOURCE_KEY) + .payingWith(RELAYER) + .nonce(0) + .gasLimit(ENOUGH_GAS_LIMIT) + .hasKnownStatus(CONTRACT_REVERT_EXECUTED) + .via(TX)) + .then( + getAliasedAccountInfo(SECP_256K1_SOURCE_KEY) + .has(accountWith().nonce(1L)), + getTxnRecord(TX) + .hasPriority(recordWith() + .status(CONTRACT_REVERT_EXECUTED) + .contractCallResult(resultWith().signerNonce(1L)))); + } + + @HapiTest + HapiSpec nonceUpdatedAfterEvmReversionDueInsufficientGas() { + return defaultHapiSpec("nonceUpdatedAfterEvmReversionDueInsufficientGas", NONDETERMINISTIC_ETHEREUM_DATA) + .given( + newKeyNamed(SECP_256K1_SOURCE_KEY).shape(SECP_256K1_SHAPE), + cryptoCreate(RELAYER).balance(ONE_HUNDRED_HBARS), + cryptoTransfer(tinyBarsFromAccountToAlias(GENESIS, SECP_256K1_SOURCE_KEY, ONE_HBAR)), + uploadInitCode(INTERNAL_CALLEE_CONTRACT), + contractCreate(INTERNAL_CALLEE_CONTRACT)) + .when(ethereumCall(INTERNAL_CALLEE_CONTRACT, EXTERNAL_FUNCTION) + .type(EthTransactionType.EIP1559) + .signingWith(SECP_256K1_SOURCE_KEY) + .payingWith(RELAYER) + .nonce(0) + .gasLimit(21_064L) + .hasKnownStatus(INSUFFICIENT_GAS) + .via(TX)) + .then( + getAliasedAccountInfo(SECP_256K1_SOURCE_KEY) + .has(accountWith().nonce(1L)), + getTxnRecord(TX) + // .andAllChildRecords() + // .logged() + .hasPriority(recordWith() + .status(INSUFFICIENT_GAS) + .contractCallResult(resultWith().signerNonce(1L)))); + } + + @HapiTest + HapiSpec nonceUpdatedAfterEvmReversionDueInsufficientTransferAmount() { + AtomicReference receiverId = new AtomicReference<>(); + return defaultHapiSpec( + "nonceUpdatedAfterEvmReversionDueInsufficientTransferAmount", + NONDETERMINISTIC_ETHEREUM_DATA, + NONDETERMINISTIC_FUNCTION_PARAMETERS, + HIGHLY_NON_DETERMINISTIC_FEES) + .given( + cryptoCreate(RECEIVER).balance(0L).exposingCreatedIdTo(receiverId::set), + newKeyNamed(SECP_256K1_SOURCE_KEY).shape(SECP_256K1_SHAPE), + cryptoCreate(RELAYER).balance(ONE_HUNDRED_HBARS), + cryptoTransfer(tinyBarsFromAccountToAlias(GENESIS, SECP_256K1_SOURCE_KEY, ONE_HBAR)), + uploadInitCode(INTERNAL_CALLER_CONTRACT), + contractCreate(INTERNAL_CALLER_CONTRACT)) + .when(withOpContext((spec, op) -> allRunFor( + spec, + ethereumCall( + INTERNAL_CALLER_CONTRACT, + TRANSFER_TO_FUNCTION, + mirrorAddrWith(receiverId.get().getAccountNum())) + .type(EthTransactionType.EIP1559) + .signingWith(SECP_256K1_SOURCE_KEY) + .payingWith(RELAYER) + .nonce(0) + .gasLimit(ENOUGH_GAS_LIMIT) + .hasKnownStatus(CONTRACT_REVERT_EXECUTED) + .via(TX)))) + .then( + getAliasedAccountInfo(SECP_256K1_SOURCE_KEY) + .has(accountWith().nonce(1L)), + getTxnRecord(TX) + .hasPriority(recordWith() + .status(CONTRACT_REVERT_EXECUTED) + .contractCallResult(resultWith().signerNonce(1L)))); + } + + @HapiTest + HapiSpec nonceUpdatedAfterEvmReversionDueSendingValueToEthereumPrecompile0x2() { + AccountID eth0x2 = AccountID.newBuilder().setAccountNum(2).build(); + return defaultHapiSpec( + "nonceUpdatedAfterEvmReversionDueSendingValueToEthereumPrecompile0x2", + NONDETERMINISTIC_ETHEREUM_DATA, + NONDETERMINISTIC_TRANSACTION_FEES) + .given( + newKeyNamed(SECP_256K1_SOURCE_KEY).shape(SECP_256K1_SHAPE), + cryptoCreate(RELAYER).balance(ONE_HUNDRED_HBARS), + cryptoTransfer(tinyBarsFromAccountToAlias(GENESIS, SECP_256K1_SOURCE_KEY, ONE_HBAR)), + uploadInitCode(INTERNAL_CALLER_CONTRACT), + contractCreate(INTERNAL_CALLER_CONTRACT)) + .when(withOpContext((spec, op) -> allRunFor( + spec, + ethereumCall( + INTERNAL_CALLER_CONTRACT, + TRANSFER_TO_FUNCTION, + mirrorAddrWith(eth0x2.getAccountNum())) + .type(EthTransactionType.EIP1559) + .signingWith(SECP_256K1_SOURCE_KEY) + .payingWith(RELAYER) + .nonce(0) + .gasLimit(ENOUGH_GAS_LIMIT) + .hasKnownStatus(CONTRACT_REVERT_EXECUTED) + .via(TX)))) + .then( + getAliasedAccountInfo(SECP_256K1_SOURCE_KEY) + .has(accountWith().nonce(1L)), + getTxnRecord(TX) + .hasPriority(recordWith() + .status(CONTRACT_REVERT_EXECUTED) + .contractCallResult(resultWith().signerNonce(1L)))); + } + + @HapiTest + HapiSpec nonceUpdatedAfterEvmReversionDueSendingValueToHederaPrecompile0x167() { + AccountID eth0x167 = AccountID.newBuilder().setAccountNum(2).build(); + return defaultHapiSpec( + "nonceUpdatedAfterEvmReversionDueSendingValueToHederaPrecompile0x167", + NONDETERMINISTIC_ETHEREUM_DATA, + NONDETERMINISTIC_TRANSACTION_FEES) + .given( + newKeyNamed(SECP_256K1_SOURCE_KEY).shape(SECP_256K1_SHAPE), + cryptoCreate(RELAYER).balance(ONE_HUNDRED_HBARS), + cryptoTransfer(tinyBarsFromAccountToAlias(GENESIS, SECP_256K1_SOURCE_KEY, ONE_HBAR)), + uploadInitCode(INTERNAL_CALLER_CONTRACT), + contractCreate(INTERNAL_CALLER_CONTRACT)) + .when(withOpContext((spec, op) -> allRunFor( + spec, + ethereumCall( + INTERNAL_CALLER_CONTRACT, + TRANSFER_TO_FUNCTION, + mirrorAddrWith(eth0x167.getAccountNum())) + .type(EthTransactionType.EIP1559) + .signingWith(SECP_256K1_SOURCE_KEY) + .payingWith(RELAYER) + .nonce(0) + .gasLimit(ENOUGH_GAS_LIMIT) + .hasKnownStatus(CONTRACT_REVERT_EXECUTED) + .via(TX)))) + .then( + getAliasedAccountInfo(SECP_256K1_SOURCE_KEY) + .has(accountWith().nonce(1L)), + getTxnRecord(TX) + .hasPriority(recordWith() + .status(CONTRACT_REVERT_EXECUTED) + .contractCallResult(resultWith().signerNonce(1L)))); + } + + @HapiTest + HapiSpec nonceUpdatedAfterEvmReversionDueMaxChildRecordsExceeded() { + final String TOKEN_TREASURY = "treasury"; + final String FUNGIBLE_TOKEN = "fungibleToken"; + final AtomicReference treasuryMirrorAddr = new AtomicReference<>(); + final AtomicReference tokenMirrorAddr = new AtomicReference<>(); + final var illegalNumChildren = + HapiSpecSetup.getDefaultNodeProps().getInteger("consensus.handle.maxFollowingRecords") + 1; + return defaultHapiSpec( + "nonceUpdatedAfterEvmReversionDueMaxChildRecordsExceeded", + NONDETERMINISTIC_ETHEREUM_DATA, + NONDETERMINISTIC_FUNCTION_PARAMETERS, + NONDETERMINISTIC_TRANSACTION_FEES) + .given( + cryptoCreate(TOKEN_TREASURY) + .exposingCreatedIdTo(id -> treasuryMirrorAddr.set(asHexedSolidityAddress(id))), + newKeyNamed(SECP_256K1_SOURCE_KEY).shape(SECP_256K1_SHAPE), + cryptoCreate(RELAYER).balance(ONE_HUNDRED_HBARS), + cryptoTransfer(tinyBarsFromAccountToAlias(GENESIS, SECP_256K1_SOURCE_KEY, ONE_HBAR)), + uploadInitCode(MANY_CHILDREN_CONTRACT), + contractCreate(MANY_CHILDREN_CONTRACT), + tokenCreate(FUNGIBLE_TOKEN) + .tokenType(FUNGIBLE_COMMON) + .treasury(TOKEN_TREASURY) + .initialSupply(1_000_000L) + .exposingCreatedIdTo(id -> + tokenMirrorAddr.set(asHexedSolidityAddress(HapiPropertySource.asToken(id))))) + .when(withOpContext((spec, op) -> allRunFor( + spec, + ethereumCall( + MANY_CHILDREN_CONTRACT, + CHECK_BALANCE_REPEATEDLY_FUNCTION, + asHeadlongAddress(tokenMirrorAddr.get()), + asHeadlongAddress(treasuryMirrorAddr.get()), + BigInteger.valueOf(illegalNumChildren)) + .type(EthTransactionType.EIP1559) + .signingWith(SECP_256K1_SOURCE_KEY) + .payingWith(RELAYER) + .nonce(0) + .gasLimit(ENOUGH_GAS_LIMIT) + .hasKnownStatus(MAX_CHILD_RECORDS_EXCEEDED) + .via(TX)))) + .then( + getAliasedAccountInfo(SECP_256K1_SOURCE_KEY) + .has(accountWith().nonce(1L)), + getTxnRecord(TX) + .hasPriority(recordWith() + .status(MAX_CHILD_RECORDS_EXCEEDED) + .contractCallResult(resultWith().signerNonce(1L)))); + } + + @HapiTest + HapiSpec nonceUpdatedAfterSuccessfulInternalTransfer() { + AtomicReference receiverId = new AtomicReference<>(); + return defaultHapiSpec( + "nonceUpdatedAfterSuccessfulInternalTransfer", + NONDETERMINISTIC_ETHEREUM_DATA, + NONDETERMINISTIC_FUNCTION_PARAMETERS, + NONDETERMINISTIC_TRANSACTION_FEES) + .given( + cryptoCreate(RECEIVER).balance(0L).exposingCreatedIdTo(receiverId::set), + newKeyNamed(SECP_256K1_SOURCE_KEY).shape(SECP_256K1_SHAPE), + cryptoCreate(RELAYER).balance(ONE_HUNDRED_HBARS), + cryptoTransfer(tinyBarsFromAccountToAlias(GENESIS, SECP_256K1_SOURCE_KEY, ONE_HBAR)), + uploadInitCode(INTERNAL_CALLER_CONTRACT), + contractCreate(INTERNAL_CALLER_CONTRACT).balance(ONE_HBAR)) + .when(withOpContext((spec, op) -> allRunFor( + spec, + ethereumCall( + INTERNAL_CALLER_CONTRACT, + TRANSFER_TO_FUNCTION, + mirrorAddrWith(receiverId.get().getAccountNum())) + .type(EthTransactionType.EIP1559) + .signingWith(SECP_256K1_SOURCE_KEY) + .payingWith(RELAYER) + .nonce(0) + .gasLimit(ENOUGH_GAS_LIMIT) + .via(TX)))) + .then( + getAliasedAccountInfo(SECP_256K1_SOURCE_KEY) + .has(accountWith().nonce(1L)), + getTxnRecord(TX) + .hasPriority(recordWith() + .contractCallResult(resultWith().signerNonce(1L)))); + } + + @HapiTest + HapiSpec nonceUpdatedAfterSuccessfulInternalContractDeployment() { + return defaultHapiSpec("nonceUpdatedAfterSuccessfulInternalContractDeployment", NONDETERMINISTIC_ETHEREUM_DATA) + .given( + cryptoCreate(RECEIVER).balance(0L), + newKeyNamed(SECP_256K1_SOURCE_KEY).shape(SECP_256K1_SHAPE), + cryptoCreate(RELAYER).balance(ONE_HUNDRED_HBARS), + cryptoTransfer(tinyBarsFromAccountToAlias(GENESIS, SECP_256K1_SOURCE_KEY, ONE_HBAR)), + uploadInitCode(FACTORY_CONTRACT), + contractCreate(FACTORY_CONTRACT)) + .when(withOpContext((spec, op) -> allRunFor( + spec, + ethereumCall(FACTORY_CONTRACT, DEPLOYMENT_SUCCESS_FUNCTION) + .type(EthTransactionType.EIP1559) + .signingWith(SECP_256K1_SOURCE_KEY) + .payingWith(RELAYER) + .nonce(0) + .via(TX)))) + .then( + getAliasedAccountInfo(SECP_256K1_SOURCE_KEY) + .has(accountWith().nonce(1L)), + getTxnRecord(TX) + .hasPriority(recordWith() + .contractCallResult(resultWith().signerNonce(1L)))); + } + + @HapiTest + HapiSpec nonceNotUpdatedWhenIntrinsicGasHandlerCheckFailedEthContractCreate() { + return defaultHapiSpec( + "nonceNotUpdatedWhenIntrinsicGasHandlerCheckFailedEthContractCreate", + NONDETERMINISTIC_TRANSACTION_FEES, + NONDETERMINISTIC_ETHEREUM_DATA) + .given( + newKeyNamed(SECP_256K1_SOURCE_KEY).shape(SECP_256K1_SHAPE), + cryptoCreate(RELAYER).balance(ONE_MILLION_HBARS), + cryptoTransfer(tinyBarsFromAccountToAlias(GENESIS, SECP_256K1_SOURCE_KEY, ONE_MILLION_HBARS)), + uploadInitCode(INTERNAL_CALLEE_CONTRACT)) + .when(ethereumContractCreate(INTERNAL_CALLEE_CONTRACT) + .type(EthTransactionType.EIP1559) + .signingWith(SECP_256K1_SOURCE_KEY) + .payingWith(RELAYER) + .nonce(0) + .gasLimit(21_000L) + .hasKnownStatus(INSUFFICIENT_GAS) + .via(TX)) + .then( + getAliasedAccountInfo(SECP_256K1_SOURCE_KEY) + .has(accountWith().nonce(0L)), + getTxnRecord(TX) + .hasPriority(recordWith() + .status(INSUFFICIENT_GAS) + .contractCallResult(resultWith().signerNonce(0L)))); + } + + @HapiTest + HapiSpec nonceNotUpdatedWhenUserOfferedGasPriceAndAllowanceAreZeroHandlerCheckFailedEthContractCreate() { + return defaultHapiSpec( + "nonceNotUpdatedWhenUserOfferedGasPriceAndAllowanceAreZeroHandlerCheckFailedEthContractCreate", + NONDETERMINISTIC_TRANSACTION_FEES) + .given( + newKeyNamed(SECP_256K1_SOURCE_KEY).shape(SECP_256K1_SHAPE), + cryptoCreate(RELAYER).balance(ONE_MILLION_HBARS), + cryptoTransfer(tinyBarsFromAccountToAlias(GENESIS, SECP_256K1_SOURCE_KEY, ONE_MILLION_HBARS)), + uploadInitCode(INTERNAL_CALLEE_CONTRACT)) + .when(ethereumContractCreate(INTERNAL_CALLEE_CONTRACT) + .type(EthTransactionType.EIP1559) + .signingWith(SECP_256K1_SOURCE_KEY) + .payingWith(RELAYER) + .nonce(0) + .gasLimit(ENOUGH_GAS_LIMIT) + .maxFeePerGas(0L) + .maxGasAllowance(0L) + .hasKnownStatus(INSUFFICIENT_TX_FEE) + .via(TX)) + .then( + getAliasedAccountInfo(SECP_256K1_SOURCE_KEY) + .has(accountWith().nonce(0L)), + getTxnRecord(TX) + .hasPriority(recordWith() + .status(INSUFFICIENT_TX_FEE) + .contractCallResult(resultWith().signerNonce(0L)))); + } + + @HapiTest + HapiSpec + nonceNotUpdatedWhenOfferedGasPriceIsLessThanCurrentAndSenderDoesNotHaveEnoughBalanceHandlerCheckFailedEthContractCreate() { + return defaultHapiSpec( + "nonceNotUpdatedWhenOfferedGasPriceIsLessThanCurrentAndSenderDoesNotHaveEnoughBalanceHandlerCheckFailedEthContractCreate") + .given( + newKeyNamed(SECP_256K1_SOURCE_KEY).shape(SECP_256K1_SHAPE), + cryptoCreate(RELAYER).balance(ONE_MILLION_HBARS), + cryptoTransfer(tinyBarsFromAccountToAlias(GENESIS, SECP_256K1_SOURCE_KEY, 1L)), + uploadInitCode(INTERNAL_CALLEE_CONTRACT)) + .when(ethereumContractCreate(INTERNAL_CALLEE_CONTRACT) + .type(EthTransactionType.EIP1559) + .signingWith(SECP_256K1_SOURCE_KEY) + .payingWith(RELAYER) + .nonce(0) + .gasLimit(ENOUGH_GAS_LIMIT) + .maxFeePerGas(LOW_GAS_PRICE) + .hasKnownStatus(INSUFFICIENT_PAYER_BALANCE) + .via(TX)) + .then( + getAliasedAccountInfo(SECP_256K1_SOURCE_KEY) + .has(accountWith().nonce(0L)), + getTxnRecord(TX) + .hasPriority(recordWith() + .status(INSUFFICIENT_PAYER_BALANCE) + .contractCallResult(resultWith().signerNonce(0L)))); + } + + @HapiTest + HapiSpec + nonceNotUpdatedWhenOfferedGasPriceIsLessThanCurrentAndGasAllowanceIsLessThanRemainingFeeHandlerCheckFailedEthContractCreate() { + return defaultHapiSpec( + "nonceNotUpdatedWhenOfferedGasPriceIsLessThanCurrentAndGasAllowanceIsLessThanRemainingFeeHandlerCheckFailedEthContractCreate", + HIGHLY_NON_DETERMINISTIC_FEES) + .given( + newKeyNamed(SECP_256K1_SOURCE_KEY).shape(SECP_256K1_SHAPE), + cryptoCreate(RELAYER).balance(ONE_MILLION_HBARS), + cryptoTransfer(tinyBarsFromAccountToAlias(GENESIS, SECP_256K1_SOURCE_KEY, ONE_MILLION_HBARS)), + uploadInitCode(INTERNAL_CALLEE_CONTRACT)) + .when(ethereumContractCreate(INTERNAL_CALLEE_CONTRACT) + .type(EthTransactionType.EIP1559) + .signingWith(SECP_256K1_SOURCE_KEY) + .payingWith(RELAYER) + .nonce(0) + .gasLimit(ENOUGH_GAS_LIMIT) + .maxFeePerGas(LOW_GAS_PRICE) + .maxGasAllowance(0L) + .hasKnownStatus(INSUFFICIENT_TX_FEE) + .via(TX)) + .then( + getAliasedAccountInfo(SECP_256K1_SOURCE_KEY) + .has(accountWith().nonce(0L)), + getTxnRecord(TX) + .hasPriority(recordWith() + .status(INSUFFICIENT_TX_FEE) + .contractCallResult(resultWith().signerNonce(0L)))); + } + + @HapiTest + HapiSpec + nonceNotUpdatedWhenOfferedGasPriceIsBiggerThanCurrentAndSenderDoesNotHaveEnoughBalanceHandlerCheckFailedEthContractCreate() { + return defaultHapiSpec( + "nonceNotUpdatedWhenOfferedGasPriceIsBiggerThanCurrentAndSenderDoesNotHaveEnoughBalanceHandlerCheckFailedEthContractCreate") + .given( + newKeyNamed(SECP_256K1_SOURCE_KEY).shape(SECP_256K1_SHAPE), + cryptoCreate(RELAYER).balance(ONE_MILLION_HBARS), + cryptoTransfer(tinyBarsFromAccountToAlias(GENESIS, SECP_256K1_SOURCE_KEY, 1L)), + uploadInitCode(INTERNAL_CALLEE_CONTRACT)) + .when(ethereumContractCreate(INTERNAL_CALLEE_CONTRACT) + .type(EthTransactionType.EIP1559) + .signingWith(SECP_256K1_SOURCE_KEY) + .payingWith(RELAYER) + .nonce(0) + .gasLimit(ENOUGH_GAS_LIMIT) + .maxFeePerGas(ENOUGH_GAS_PRICE) + .hasKnownStatus(INSUFFICIENT_PAYER_BALANCE) + .via(TX)) + .then( + getAliasedAccountInfo(SECP_256K1_SOURCE_KEY) + .has(accountWith().nonce(0L)), + getTxnRecord(TX) + .hasPriority(recordWith() + .status(INSUFFICIENT_PAYER_BALANCE) + .contractCallResult(resultWith().signerNonce(0L)))); + } + + @HapiTest + HapiSpec nonceNotUpdatedWhenSenderDoesNotHaveEnoughBalanceHandlerCheckFailedEthContractCreate() { + return defaultHapiSpec( + "nonceNotUpdatedWhenSenderDoesNotHaveEnoughBalanceHandlerCheckFailedEthContractCreate", + NONDETERMINISTIC_TRANSACTION_FEES) + .given( + newKeyNamed(SECP_256K1_SOURCE_KEY).shape(SECP_256K1_SHAPE), + cryptoCreate(RELAYER).balance(ONE_MILLION_HBARS), + cryptoTransfer(tinyBarsFromAccountToAlias(GENESIS, SECP_256K1_SOURCE_KEY, 1L)), + uploadInitCode(INTERNAL_CALLEE_CONTRACT)) + .when(ethereumContractCreate(INTERNAL_CALLEE_CONTRACT) + .type(EthTransactionType.EIP1559) + .signingWith(SECP_256K1_SOURCE_KEY) + .payingWith(RELAYER) + .nonce(0) + .gasLimit(ENOUGH_GAS_LIMIT) + .maxFeePerGas(0L) + .balance(5L) + .hasKnownStatus(INSUFFICIENT_PAYER_BALANCE) + .via(TX)) + .then( + getAliasedAccountInfo(SECP_256K1_SOURCE_KEY) + .has(accountWith().nonce(0L)), + getTxnRecord(TX) + .hasPriority(recordWith() + .status(INSUFFICIENT_PAYER_BALANCE) + .contractCallResult(resultWith().signerNonce(0L)))); + } + + @HapiTest + HapiSpec nonceUpdatedAfterEvmReversionDueContractLogicEthContractCreate() { + return defaultHapiSpec( + "nonceUpdatedAfterEvmReversionDueContractLogicEthContractCreate", + NONDETERMINISTIC_ETHEREUM_DATA, + NONDETERMINISTIC_TRANSACTION_FEES) + .given( + newKeyNamed(SECP_256K1_SOURCE_KEY).shape(SECP_256K1_SHAPE), + cryptoCreate(RELAYER).balance(ONE_MILLION_HBARS), + cryptoTransfer(tinyBarsFromAccountToAlias(GENESIS, SECP_256K1_SOURCE_KEY, ONE_MILLION_HBARS)), + uploadInitCode(REVERTER_CONSTRUCTOR_CONTRACT)) + .when(ethereumContractCreate(REVERTER_CONSTRUCTOR_CONTRACT) + .type(EthTransactionType.EIP1559) + .signingWith(SECP_256K1_SOURCE_KEY) + .payingWith(RELAYER) + .nonce(0) + .gasLimit(ENOUGH_GAS_LIMIT) + .hasKnownStatus(CONTRACT_REVERT_EXECUTED) + .via(TX)) + .then( + getAliasedAccountInfo(SECP_256K1_SOURCE_KEY) + .has(accountWith().nonce(1L)), + getTxnRecord(TX) + .hasPriority(recordWith() + .status(CONTRACT_REVERT_EXECUTED) + .contractCreateResult(resultWith().signerNonce(1L)))); + } + + @HapiTest + HapiSpec nonceUpdatedAfterEvmReversionDueInsufficientGasEthContractCreate() { + return defaultHapiSpec( + "nonceUpdatedAfterEvmReversionDueInsufficientGasEthContractCreate", + NONDETERMINISTIC_ETHEREUM_DATA) + .given( + newKeyNamed(SECP_256K1_SOURCE_KEY).shape(SECP_256K1_SHAPE), + cryptoCreate(RELAYER).balance(ONE_MILLION_HBARS), + cryptoTransfer(tinyBarsFromAccountToAlias(GENESIS, SECP_256K1_SOURCE_KEY, ONE_MILLION_HBARS)), + uploadInitCode(REVERTER_CONSTRUCTOR_TRANSFER_CONTRACT)) + .when(ethereumContractCreate(REVERTER_CONSTRUCTOR_TRANSFER_CONTRACT) + .type(EthTransactionType.EIP1559) + .signingWith(SECP_256K1_SOURCE_KEY) + .payingWith(RELAYER) + .nonce(0) + .gasLimit(60_000L) + .hasKnownStatus(INSUFFICIENT_GAS) + .via(TX)) + .then( + getAliasedAccountInfo(SECP_256K1_SOURCE_KEY) + .has(accountWith().nonce(1L)), + getTxnRecord(TX) + .hasPriority(recordWith() + .status(INSUFFICIENT_GAS) + .contractCreateResult(resultWith().signerNonce(1L)))); + } + + @HapiTest + HapiSpec nonceUpdatedAfterEvmReversionDueInsufficientTransferAmountEthContractCreate() { + return defaultHapiSpec( + "nonceUpdatedAfterEvmReversionDueInsufficientTransferAmountEthContractCreate", + NONDETERMINISTIC_ETHEREUM_DATA) + .given( + newKeyNamed(SECP_256K1_SOURCE_KEY).shape(SECP_256K1_SHAPE), + cryptoCreate(RELAYER).balance(ONE_MILLION_HBARS), + cryptoTransfer(tinyBarsFromAccountToAlias(GENESIS, SECP_256K1_SOURCE_KEY, ONE_MILLION_HBARS)), + uploadInitCode(REVERTER_CONSTRUCTOR_TRANSFER_CONTRACT)) + .when(ethereumContractCreate(REVERTER_CONSTRUCTOR_TRANSFER_CONTRACT) + .type(EthTransactionType.EIP1559) + .signingWith(SECP_256K1_SOURCE_KEY) + .payingWith(RELAYER) + .nonce(0) + .gasLimit(ENOUGH_GAS_LIMIT) + .hasKnownStatus(CONTRACT_REVERT_EXECUTED) + .via(TX)) + .then( + getAliasedAccountInfo(SECP_256K1_SOURCE_KEY) + .has(accountWith().nonce(1L)), + getTxnRecord(TX) + .hasPriority(recordWith() + .contractCreateResult(resultWith().signerNonce(1L)))); + } + + @HapiTest + HapiSpec nonceUpdatedAfterEvmReversionDueSendingValueToEthereumPrecompileEthContractCreate() { + return defaultHapiSpec( + "nonceUpdatedAfterEvmReversionDueSendingValueToEthereumPrecompileEthContractCreate", + NONDETERMINISTIC_ETHEREUM_DATA) + .given( + newKeyNamed(SECP_256K1_SOURCE_KEY).shape(SECP_256K1_SHAPE), + cryptoCreate(RELAYER).balance(ONE_MILLION_HBARS), + cryptoTransfer(tinyBarsFromAccountToAlias(GENESIS, SECP_256K1_SOURCE_KEY, ONE_MILLION_HBARS)), + uploadInitCode(REVERTER_CONSTRUCTOR_CALL_WITH_VALUE_TO_ETH_PRECOMPILE_CONTRACT)) + .when(ethereumContractCreate(REVERTER_CONSTRUCTOR_CALL_WITH_VALUE_TO_ETH_PRECOMPILE_CONTRACT) + .balance(1L) + .type(EthTransactionType.EIP1559) + .signingWith(SECP_256K1_SOURCE_KEY) + .payingWith(RELAYER) + .nonce(0) + .gasLimit(ENOUGH_GAS_LIMIT) + .hasKnownStatus(CONTRACT_REVERT_EXECUTED) + .via(TX)) + .then( + getAliasedAccountInfo(SECP_256K1_SOURCE_KEY) + .has(accountWith().nonce(1L)), + getTxnRecord(TX) + .hasPriority(recordWith() + .status(CONTRACT_REVERT_EXECUTED) + .contractCreateResult(resultWith().signerNonce(1L)))); + } + + // depends on https://github.com/hashgraph/hedera-services/pull/11359 + @HapiTest + HapiSpec nonceUpdatedAfterEvmReversionDueSendingValueToHederaPrecompileEthContractCreate() { + return defaultHapiSpec("nonceUpdatedAfterEvmReversionDueSendingValueToHederaPrecompileEthContractCreate") + .given( + newKeyNamed(SECP_256K1_SOURCE_KEY).shape(SECP_256K1_SHAPE), + cryptoCreate(RELAYER).balance(ONE_MILLION_HBARS), + cryptoTransfer(tinyBarsFromAccountToAlias(GENESIS, SECP_256K1_SOURCE_KEY, ONE_MILLION_HBARS)), + uploadInitCode(REVERTER_CONSTRUCTOR_CALL_WITH_VALUE_TO_HEDERA_PRECOMPILE_CONTRACT)) + .when(ethereumContractCreate(REVERTER_CONSTRUCTOR_CALL_WITH_VALUE_TO_HEDERA_PRECOMPILE_CONTRACT) + .balance(1L) + .type(EthTransactionType.EIP1559) + .signingWith(SECP_256K1_SOURCE_KEY) + .payingWith(RELAYER) + .nonce(0) + .gasLimit(ENOUGH_GAS_LIMIT) + .hasKnownStatus(CONTRACT_REVERT_EXECUTED) + .via(TX)) + .then( + getAliasedAccountInfo(SECP_256K1_SOURCE_KEY) + .has(accountWith().nonce(1L)), + getTxnRecord(TX) + .hasPriority(recordWith() + .status(CONTRACT_REVERT_EXECUTED) + .contractCreateResult(resultWith().signerNonce(1L)))); + } + + @HapiTest + HapiSpec nonceUpdatedAfterSuccessfulEthereumContractCreation() { + return defaultHapiSpec("nonceUpdatedAfterSuccessfulEthereumContractCreation", NONDETERMINISTIC_ETHEREUM_DATA) + .given( + newKeyNamed(SECP_256K1_SOURCE_KEY).shape(SECP_256K1_SHAPE), + cryptoCreate(RELAYER).balance(ONE_MILLION_HBARS), + cryptoTransfer(tinyBarsFromAccountToAlias(GENESIS, SECP_256K1_SOURCE_KEY, ONE_MILLION_HBARS)), + uploadInitCode(INTERNAL_CALLER_CONTRACT)) + .when(ethereumContractCreate(INTERNAL_CALLER_CONTRACT) + .type(EthTxData.EthTransactionType.EIP1559) + .signingWith(SECP_256K1_SOURCE_KEY) + .payingWith(RELAYER) + .nonce(0) + .gasLimit(ENOUGH_GAS_LIMIT) + .via(TX)) + .then( + getAliasedAccountInfo(SECP_256K1_SOURCE_KEY) + .has(accountWith().nonce(1L)), + getTxnRecord(TX) + .hasPriority(recordWith() + .contractCreateResult(resultWith().signerNonce(1L)))); + } + + @HapiTest + HapiSpec revertsWhenSenderDoesNotExist() { + AtomicReference receiverId = new AtomicReference<>(); + return defaultHapiSpec("revertsWhenSenderDoesNotExist") + .given( + cryptoCreate(RECEIVER).balance(0L).exposingCreatedIdTo(receiverId::set), + newKeyNamed(SECP_256K1_SOURCE_KEY).shape(SECP_256K1_SHAPE), + cryptoCreate(RELAYER).balance(ONE_HUNDRED_HBARS), + uploadInitCode(INTERNAL_CALLER_CONTRACT), + contractCreate(INTERNAL_CALLER_CONTRACT).balance(ONE_HBAR)) + .when(withOpContext((spec, op) -> allRunFor( + spec, + ethereumCall( + INTERNAL_CALLER_CONTRACT, + TRANSFER_TO_FUNCTION, + mirrorAddrWith(receiverId.get().getAccountNum())) + .type(EthTransactionType.EIP1559) + .signingWith(SECP_256K1_SOURCE_KEY) + .payingWith(RELAYER) + .nonce(0) + .gasLimit(ENOUGH_GAS_LIMIT) + .hasKnownStatus(INVALID_ACCOUNT_ID) + .via(TX)))) + .then(getTxnRecord(TX) + .hasPriority( + recordWith().contractCallResult(resultWith().signerNonce(0L)))); + } + + @Override + protected Logger getResultsLogger() { + return log; + } +} diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/issues/Issue2319Spec.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/issues/Issue2319Spec.java index 2201fce434d3..091dabbba4b0 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/issues/Issue2319Spec.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/issues/Issue2319Spec.java @@ -23,7 +23,8 @@ import static com.hedera.services.bdd.spec.transactions.TxnVerbs.cryptoUpdate; import static com.hedera.services.bdd.spec.transactions.TxnVerbs.fileUpdate; import static com.hedera.services.bdd.spec.transactions.crypto.HapiCryptoTransfer.tinyBarsFromTo; -import static com.hedera.services.bdd.spec.utilops.UtilVerbs.keyFromPem; +import static com.hedera.services.bdd.spec.utilops.UtilVerbs.newKeyListNamed; +import static com.hedera.services.bdd.spec.utilops.UtilVerbs.newKeyNamed; import static com.hedera.services.bdd.spec.utilops.UtilVerbs.withOpContext; import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.AUTHORIZATION_FAILED; @@ -38,11 +39,13 @@ import java.util.concurrent.atomic.AtomicReference; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.junit.jupiter.api.Disabled; @HapiTestSuite public class Issue2319Spec extends HapiSuite { private static final Logger log = LogManager.getLogger(Issue2319Spec.class); + private static final String NON_TREASURY_KEY = "nonTreasuryKey"; + private static final String NON_TREASURY_ADMIN_KEY = "nonTreasuryAdminKey"; + private static final String DEFAULT_ADMIN_KEY = "defaultAdminKey"; public static void main(String... args) { new Issue2319Spec().runSuiteSync(); @@ -51,29 +54,27 @@ public static void main(String... args) { @Override public List getSpecsInSuite() { return List.of(new HapiSpec[] { - sysFileSigReqsWaivedForMasterAndTreasury(), - sysAccountSigReqsWaivedForMasterAndTreasury(), - propsPermissionsSigReqsWaivedForAddressBookAdmin(), sysFileImmutabilityWaivedForMasterAndTreasury(), + propsPermissionsSigReqsWaivedForAddressBookAdmin(), + sysAccountSigReqsWaivedForMasterAndTreasury(), + sysFileSigReqsWaivedForMasterAndTreasury() }); } @HapiTest - @Disabled("Failing or intermittently failing HAPI Test") final HapiSpec propsPermissionsSigReqsWaivedForAddressBookAdmin() { - var pemLoc = ""; - return defaultHapiSpec("PropsPermissionsSigReqsWaivedForAddressBookAdmin") .given( - keyFromPem(pemLoc).name("persistent").simpleWacl().passphrase(""), + newKeyNamed(NON_TREASURY_KEY), + newKeyListNamed(NON_TREASURY_ADMIN_KEY, List.of(NON_TREASURY_KEY)), cryptoTransfer(tinyBarsFromTo(GENESIS, ADDRESS_BOOK_CONTROL, 1_000_000_000_000L))) .when( fileUpdate(APP_PROPERTIES) .payingWith(ADDRESS_BOOK_CONTROL) - .wacl("persistent"), + .wacl(NON_TREASURY_ADMIN_KEY), fileUpdate(API_PERMISSIONS) .payingWith(ADDRESS_BOOK_CONTROL) - .wacl("persistent")) + .wacl(NON_TREASURY_ADMIN_KEY)) .then( fileUpdate(APP_PROPERTIES) .payingWith(ADDRESS_BOOK_CONTROL) @@ -89,7 +90,7 @@ final HapiSpec propsPermissionsSigReqsWaivedForAddressBookAdmin() { @HapiTest final HapiSpec sysFileImmutabilityWaivedForMasterAndTreasury() { - return defaultHapiSpec("SysAccountSigReqsWaivedForMasterAndTreasury") + return defaultHapiSpec("sysFileImmutabilityWaivedForMasterAndTreasury") .given( cryptoCreate("civilian"), cryptoTransfer(tinyBarsFromTo(GENESIS, SYSTEM_ADMIN, 1_000_000_000_000L))) @@ -112,16 +113,17 @@ final HapiSpec sysFileImmutabilityWaivedForMasterAndTreasury() { } @HapiTest - @Disabled("Failing or intermittently failing HAPI Test") final HapiSpec sysAccountSigReqsWaivedForMasterAndTreasury() { - var pemLoc = ""; - return defaultHapiSpec("SysAccountSigReqsWaivedForMasterAndTreasury") .given( + newKeyNamed(NON_TREASURY_KEY), + newKeyListNamed(NON_TREASURY_ADMIN_KEY, List.of(NON_TREASURY_KEY)), + newKeyListNamed(DEFAULT_ADMIN_KEY, List.of(GENESIS)), cryptoCreate("civilian"), - keyFromPem(pemLoc).name("persistent").passphrase(""), cryptoTransfer(tinyBarsFromTo(GENESIS, SYSTEM_ADMIN, 1_000_000_000_000L))) - .when(cryptoUpdate(EXCHANGE_RATE_CONTROL).key("persistent")) + .when(cryptoUpdate(EXCHANGE_RATE_CONTROL) + .key(NON_TREASURY_ADMIN_KEY) + .receiverSigRequired(true)) .then( cryptoUpdate(EXCHANGE_RATE_CONTROL) .payingWith(SYSTEM_ADMIN) @@ -133,25 +135,26 @@ final HapiSpec sysAccountSigReqsWaivedForMasterAndTreasury() { .receiverSigRequired(true), cryptoUpdate(EXCHANGE_RATE_CONTROL) .payingWith("civilian") - .signedBy("civilian", GENESIS, "persistent") - .receiverSigRequired(true) - .hasPrecheck(AUTHORIZATION_FAILED), - cryptoUpdate(EXCHANGE_RATE_CONTROL).key("persistent").receiverSigRequired(false)); + .signedBy("civilian", GENESIS, NON_TREASURY_ADMIN_KEY) + .receiverSigRequired(true), + + // reset EXCHANGE_RATE_CONTROL to default state + cryptoUpdate(EXCHANGE_RATE_CONTROL) + .key(DEFAULT_ADMIN_KEY) + .receiverSigRequired(false) + .payingWith(GENESIS) + .signedBy(GENESIS)); } @HapiTest - @Disabled("Failing or intermittently failing HAPI Test") final HapiSpec sysFileSigReqsWaivedForMasterAndTreasury() { - var pemLoc = ""; var validRates = new AtomicReference(); return defaultHapiSpec("SysFileSigReqsWaivedForMasterAndTreasury") .given( cryptoCreate("civilian"), - keyFromPem(pemLoc) - .name("persistent") - .passphrase("") - .simpleWacl(), + newKeyNamed(NON_TREASURY_KEY), + newKeyListNamed(NON_TREASURY_ADMIN_KEY, List.of(NON_TREASURY_KEY)), withOpContext((spec, opLog) -> { var fetch = getFileContents(EXCHANGE_RATES); CustomSpecAssert.allRunFor(spec, fetch); @@ -163,7 +166,7 @@ final HapiSpec sysFileSigReqsWaivedForMasterAndTreasury() { cryptoTransfer(tinyBarsFromTo(GENESIS, SYSTEM_ADMIN, 1_000_000_000_000L))) .when(fileUpdate(EXCHANGE_RATES) .payingWith(EXCHANGE_RATE_CONTROL) - .wacl("persistent")) + .wacl(NON_TREASURY_ADMIN_KEY)) .then( fileUpdate(EXCHANGE_RATES) .payingWith(SYSTEM_ADMIN) @@ -175,7 +178,7 @@ final HapiSpec sysFileSigReqsWaivedForMasterAndTreasury() { .contents(ignore -> validRates.get()), fileUpdate(EXCHANGE_RATES) .payingWith("civilian") - .signedBy("civilian", GENESIS, "persistent") + .signedBy("civilian", GENESIS, NON_TREASURY_ADMIN_KEY) .contents(ignore -> validRates.get()) .hasPrecheck(AUTHORIZATION_FAILED), fileUpdate(EXCHANGE_RATES).payingWith(GENESIS).wacl(GENESIS)); diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/leaky/LeakyContractTestsSuite.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/leaky/LeakyContractTestsSuite.java index 069a5381f18a..c2dc3245ff90 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/leaky/LeakyContractTestsSuite.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/leaky/LeakyContractTestsSuite.java @@ -104,7 +104,18 @@ import static com.hedera.services.bdd.spec.utilops.UtilVerbs.uploadDefaultFeeSchedules; import static com.hedera.services.bdd.spec.utilops.UtilVerbs.usableTxnIdNamed; import static com.hedera.services.bdd.spec.utilops.UtilVerbs.withOpContext; +import static com.hedera.services.bdd.spec.utilops.records.SnapshotMatchMode.ACCEPTED_MONO_GAS_CALCULATION_DIFFERENCE; +import static com.hedera.services.bdd.spec.utilops.records.SnapshotMatchMode.ALLOW_SKIPPED_ENTITY_IDS; +import static com.hedera.services.bdd.spec.utilops.records.SnapshotMatchMode.EXPECT_STREAMLINED_INGEST_RECORDS; +import static com.hedera.services.bdd.spec.utilops.records.SnapshotMatchMode.FULLY_NONDETERMINISTIC; +import static com.hedera.services.bdd.spec.utilops.records.SnapshotMatchMode.HIGHLY_NON_DETERMINISTIC_FEES; +import static com.hedera.services.bdd.spec.utilops.records.SnapshotMatchMode.NONDETERMINISTIC_CONSTRUCTOR_PARAMETERS; +import static com.hedera.services.bdd.spec.utilops.records.SnapshotMatchMode.NONDETERMINISTIC_CONTRACT_CALL_RESULTS; +import static com.hedera.services.bdd.spec.utilops.records.SnapshotMatchMode.NONDETERMINISTIC_ETHEREUM_DATA; +import static com.hedera.services.bdd.spec.utilops.records.SnapshotMatchMode.NONDETERMINISTIC_FUNCTION_PARAMETERS; +import static com.hedera.services.bdd.spec.utilops.records.SnapshotMatchMode.NONDETERMINISTIC_LOG_DATA; import static com.hedera.services.bdd.spec.utilops.records.SnapshotMatchMode.NONDETERMINISTIC_NONCE; +import static com.hedera.services.bdd.spec.utilops.records.SnapshotMatchMode.NONDETERMINISTIC_TRANSACTION_FEES; import static com.hedera.services.bdd.suites.contract.Utils.FunctionType.FUNCTION; import static com.hedera.services.bdd.suites.contract.Utils.aaWith; import static com.hedera.services.bdd.suites.contract.Utils.asAddress; @@ -165,14 +176,11 @@ import static com.hedera.services.bdd.suites.crypto.AutoCreateUtils.updateSpecFor; import static com.hedera.services.bdd.suites.crypto.CryptoApproveAllowanceSuite.ADMIN_KEY; import static com.hedera.services.bdd.suites.ethereum.EthereumSuite.GAS_LIMIT; -import static com.hedera.services.bdd.suites.ethereum.HelloWorldEthereumSuite.depositAmount; import static com.hedera.services.bdd.suites.token.TokenAssociationSpecs.KNOWABLE_TOKEN; import static com.hedera.services.bdd.suites.token.TokenAssociationSpecs.VANILLA_TOKEN; import static com.hedera.services.bdd.suites.token.TokenTransactSpecs.SUPPLY_KEY; import static com.hedera.services.bdd.suites.utils.contracts.AddressResult.hexedAddress; import static com.hedera.services.bdd.suites.utils.contracts.precompile.HTSPrecompileResult.htsPrecompileResult; -import static com.hedera.services.yahcli.commands.validation.ValidationCommand.RECEIVER; -import static com.hedera.services.yahcli.commands.validation.ValidationCommand.SENDER; import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.CONTRACT_EXECUTION_EXCEPTION; import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.CONTRACT_REVERT_EXECUTED; import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.CUSTOM_FEE_DENOMINATION_MUST_BE_FUNGIBLE_COMMON; @@ -248,8 +256,14 @@ import org.apache.logging.log4j.Logger; import org.apache.tuweni.bytes.Bytes; import org.junit.jupiter.api.Assertions; - -@HapiTestSuite +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.TestMethodOrder; + +@HapiTestSuite(fuzzyMatch = true) +@TestMethodOrder( + MethodOrderer.OrderAnnotation + .class) // define same running order for mod specs as in getSpecsInSuite() definition used in mono @SuppressWarnings("java:S1192") // "string literal should not be duplicated" - this rule makes test suites worse public class LeakyContractTestsSuite extends HapiSuite { public static final String CONTRACTS_MAX_REFUND_PERCENT_OF_GAS_LIMIT1 = "contracts.maxRefundPercentOfGasLimit"; @@ -260,6 +274,8 @@ public class LeakyContractTestsSuite extends HapiSuite { public static final int GAS_TO_OFFER = 1_000_000; private static final Logger log = LogManager.getLogger(LeakyContractTestsSuite.class); private static final String PAYER = "payer"; + public static final String SENDER = "yahcliSender"; + public static final String RECEIVER = "yahcliReceiver"; private static final String CONTRACTS_NONCES_EXTERNALIZATION_ENABLED = "contracts.nonces.externalization.enabled"; private static final KeyShape DELEGATE_CONTRACT_KEY_SHAPE = KeyShape.threshOf(1, KeyShape.SIMPLE, DELEGATE_CONTRACT); @@ -361,12 +377,13 @@ public List getSpecsInSuite() { getErc20TokenNameExceedingLimits(), relayerFeeAsExpectedIfSenderCoversGas(), canMergeCreate2ChildWithHollowAccountAndSelfDestructInConstructor(), - getErc20TokenNameExceedingLimits(), - invalidContract()); + invalidContract(), + htsTransferFromForNFTViaContractCreateLazyCreate()); } @SuppressWarnings("java:S5960") @HapiTest + @Order(37) final HapiSpec canMergeCreate2ChildWithHollowAccountAndSelfDestructInConstructor() { final var tcValue = 1_234L; final var contract = "Create2SelfDestructContract"; @@ -382,7 +399,12 @@ final HapiSpec canMergeCreate2ChildWithHollowAccountAndSelfDestructInConstructor final AtomicReference mergedMirrorAddr2 = new AtomicReference<>(); final AtomicReference testContractInitcode = new AtomicReference<>(); - return propertyPreservingHapiSpec("canMergeCreate2ChildWithHollowAccountAndSelfDestructInConstructor") + return propertyPreservingHapiSpec( + "canMergeCreate2ChildWithHollowAccountAndSelfDestructInConstructor", + NONDETERMINISTIC_FUNCTION_PARAMETERS, + NONDETERMINISTIC_CONTRACT_CALL_RESULTS, + NONDETERMINISTIC_TRANSACTION_FEES, + NONDETERMINISTIC_NONCE) .preserving(LAZY_CREATION_ENABLED) .given( overriding(LAZY_CREATION_ENABLED, TRUE), @@ -464,8 +486,13 @@ contract, GET_BYTECODE, asHeadlongAddress(factoryEvmAddress.get()), salt) } @HapiTest + @Order(27) final HapiSpec transferErc20TokenFromErc721TokenFails() { - return propertyPreservingHapiSpec("transferErc20TokenFromErc721TokenFails") + return propertyPreservingHapiSpec( + "transferErc20TokenFromErc721TokenFails", + NONDETERMINISTIC_FUNCTION_PARAMETERS, + NONDETERMINISTIC_TRANSACTION_FEES, + NONDETERMINISTIC_NONCE) .preserving(HEDERA_ALLOWANCES_IS_ENABLED) .given( overriding(HEDERA_ALLOWANCES_IS_ENABLED, "true"), @@ -505,11 +532,17 @@ final HapiSpec transferErc20TokenFromErc721TokenFails() { } @HapiTest + @Order(26) final HapiSpec transferErc20TokenFromContractWithApproval() { final var transferFromOtherContractWithSignaturesTxn = "transferFromOtherContractWithSignaturesTxn"; final var nestedContract = "NestedERC20Contract"; - return propertyPreservingHapiSpec("TransferErc20TokenFromContractWithApproval") + return propertyPreservingHapiSpec( + "TransferErc20TokenFromContractWithApproval", + NONDETERMINISTIC_FUNCTION_PARAMETERS, + NONDETERMINISTIC_LOG_DATA, + NONDETERMINISTIC_TRANSACTION_FEES, + NONDETERMINISTIC_NONCE) .preserving(CONTRACTS_ALLOW_SYSTEM_USE_OF_HAPI_SIGS) .given( newKeyNamed(MULTI_KEY), @@ -632,6 +665,7 @@ final HapiSpec transferErc20TokenFromContractWithApproval() { } @HapiTest + @Order(25) final HapiSpec transferDontWorkWithoutTopLevelSignatures() { final var transferTokenTxn = "transferTokenTxn"; final var transferTokensTxn = "transferTokensTxn"; @@ -642,7 +676,12 @@ final HapiSpec transferDontWorkWithoutTopLevelSignatures() { final AtomicReference accountID = new AtomicReference<>(); final AtomicReference vanillaTokenID = new AtomicReference<>(); final AtomicReference vanillaNftID = new AtomicReference<>(); - return propertyPreservingHapiSpec("transferDontWorkWithoutTopLevelSignatures") + return propertyPreservingHapiSpec( + "transferDontWorkWithoutTopLevelSignatures", + NONDETERMINISTIC_FUNCTION_PARAMETERS, + NONDETERMINISTIC_TRANSACTION_FEES, + ACCEPTED_MONO_GAS_CALCULATION_DIFFERENCE, + NONDETERMINISTIC_NONCE) .preserving(CONTRACTS_ALLOW_SYSTEM_USE_OF_HAPI_SIGS) .given( // disable top level signatures for all functions @@ -782,7 +821,10 @@ final HapiSpec transferWorksWithTopLevelSignatures() { final AtomicReference accountID = new AtomicReference<>(); final AtomicReference vanillaTokenID = new AtomicReference<>(); final AtomicReference vanillaNftID = new AtomicReference<>(); - return propertyPreservingHapiSpec("transferWorksWithTopLevelSignatures") + return propertyPreservingHapiSpec( + "transferWorksWithTopLevelSignatures", + NONDETERMINISTIC_TRANSACTION_FEES, + NONDETERMINISTIC_NONCE) .preserving(CONTRACTS_ALLOW_SYSTEM_USE_OF_HAPI_SIGS, CONTRACTS_MAX_NUM_WITH_HAPI_SIGS_ACCESS) .given( // enable top level signatures for @@ -935,13 +977,18 @@ final HapiSpec transferWorksWithTopLevelSignatures() { } @HapiTest + @Order(24) final HapiSpec transferFailsWithIncorrectAmounts() { final var transferTokenWithNegativeAmountTxn = "transferTokenWithNegativeAmountTxn"; final var contract = TOKEN_TRANSFER_CONTRACT; final AtomicReference accountID = new AtomicReference<>(); final AtomicReference vanillaTokenID = new AtomicReference<>(); - return propertyPreservingHapiSpec("transferFailsWithIncorrectAmounts") + return propertyPreservingHapiSpec( + "transferFailsWithIncorrectAmounts", + NONDETERMINISTIC_FUNCTION_PARAMETERS, + NONDETERMINISTIC_TRANSACTION_FEES, + NONDETERMINISTIC_NONCE) .preserving(CONTRACTS_ALLOW_SYSTEM_USE_OF_HAPI_SIGS) .given( overriding(CONTRACTS_ALLOW_SYSTEM_USE_OF_HAPI_SIGS, CRYPTO_TRANSFER), @@ -988,12 +1035,17 @@ final HapiSpec transferFailsWithIncorrectAmounts() { } @HapiTest + @Order(35) final HapiSpec getErc20TokenNameExceedingLimits() { final var REDUCED_NETWORK_FEE = 1L; final var REDUCED_NODE_FEE = 1L; final var REDUCED_SERVICE_FEE = 1L; final var INIT_ACCOUNT_BALANCE = 100 * ONE_HUNDRED_HBARS; - return defaultHapiSpec("getErc20TokenNameExceedingLimits") + return defaultHapiSpec( + "getErc20TokenNameExceedingLimits", + NONDETERMINISTIC_FUNCTION_PARAMETERS, + NONDETERMINISTIC_TRANSACTION_FEES, + NONDETERMINISTIC_NONCE) .given( newKeyNamed(MULTI_KEY), cryptoCreate(ACCOUNT).balance(INIT_ACCOUNT_BALANCE), @@ -1046,12 +1098,13 @@ final HapiSpec getErc20TokenNameExceedingLimits() { } @HapiTest + @Order(2) HapiSpec payerCannotOverSendValue() { final var payerBalance = 666 * ONE_HBAR; final var overdraftAmount = payerBalance + ONE_HBAR; final var overAmbitiousPayer = "overAmbitiousPayer"; final var uncheckedCC = "uncheckedCC"; - return defaultHapiSpec("PayerCannotOverSendValue") + return defaultHapiSpec("PayerCannotOverSendValue", NONDETERMINISTIC_TRANSACTION_FEES, NONDETERMINISTIC_NONCE) .given( uploadInitCode(PAY_RECEIVABLE_CONTRACT), contractCreate(PAY_RECEIVABLE_CONTRACT).adminKey(THRESHOLD)) @@ -1077,8 +1130,11 @@ HapiSpec payerCannotOverSendValue() { } @HapiTest + @Order(9) final HapiSpec createTokenWithInvalidFeeCollector() { - return propertyPreservingHapiSpec("createTokenWithInvalidFeeCollector") + // Fully non-deterministic for fuzzy matching because the test uses an absolute account number (i.e. 15252L) + // but fuzzy matching compares relative account numbers + return propertyPreservingHapiSpec("createTokenWithInvalidFeeCollector", FULLY_NONDETERMINISTIC) .preserving(CRYPTO_CREATE_WITH_ALIAS_ENABLED, CONTRACTS_MAX_NUM_WITH_HAPI_SIGS_ACCESS) .given( overriding(CRYPTO_CREATE_WITH_ALIAS_ENABLED, FALSE_VALUE), @@ -1128,7 +1184,12 @@ final HapiSpec createTokenWithInvalidFeeCollector() { final HapiSpec createTokenWithInvalidFixedFeeWithERC721Denomination() { final String feeCollector = ACCOUNT_2; final String someARAccount = "someARAccount"; - return propertyPreservingHapiSpec("createTokenWithInvalidFixedFeeWithERC721Denomination") + return propertyPreservingHapiSpec( + "createTokenWithInvalidFixedFeeWithERC721Denomination", + NONDETERMINISTIC_FUNCTION_PARAMETERS, + ACCEPTED_MONO_GAS_CALCULATION_DIFFERENCE, + NONDETERMINISTIC_TRANSACTION_FEES, + NONDETERMINISTIC_NONCE) .preserving(CRYPTO_CREATE_WITH_ALIAS_ENABLED, CONTRACTS_MAX_NUM_WITH_HAPI_SIGS_ACCESS) .given( overriding(CRYPTO_CREATE_WITH_ALIAS_ENABLED, FALSE_VALUE), @@ -1185,7 +1246,12 @@ final HapiSpec createTokenWithInvalidRoyaltyFee() { final String feeCollector = ACCOUNT_2; AtomicReference existingToken = new AtomicReference<>(); final String treasuryAndFeeCollectorKey = "treasuryAndFeeCollectorKey"; - return propertyPreservingHapiSpec("createTokenWithInvalidRoyaltyFee") + return propertyPreservingHapiSpec( + "createTokenWithInvalidRoyaltyFee", + NONDETERMINISTIC_FUNCTION_PARAMETERS, + NONDETERMINISTIC_TRANSACTION_FEES, + NONDETERMINISTIC_NONCE, + ACCEPTED_MONO_GAS_CALCULATION_DIFFERENCE) .preserving(CRYPTO_CREATE_WITH_ALIAS_ENABLED, CONTRACTS_MAX_NUM_WITH_HAPI_SIGS_ACCESS) .given( overriding(CRYPTO_CREATE_WITH_ALIAS_ENABLED, FALSE_VALUE), @@ -1245,7 +1311,12 @@ final HapiSpec nonFungibleTokenCreateWithFeesHappyPath() { final var createTokenNum = new AtomicLong(); final var feeCollector = ACCOUNT_2; final var treasuryAndFeeCollectorKey = "treasuryAndFeeCollectorKey"; - return propertyPreservingHapiSpec("nonFungibleTokenCreateWithFeesHappyPath") + return propertyPreservingHapiSpec( + "nonFungibleTokenCreateWithFeesHappyPath", + NONDETERMINISTIC_FUNCTION_PARAMETERS, + NONDETERMINISTIC_TRANSACTION_FEES, + ACCEPTED_MONO_GAS_CALCULATION_DIFFERENCE, + NONDETERMINISTIC_NONCE) .preserving(CRYPTO_CREATE_WITH_ALIAS_ENABLED, CONTRACTS_MAX_NUM_WITH_HAPI_SIGS_ACCESS) .given( overriding(CRYPTO_CREATE_WITH_ALIAS_ENABLED, FALSE_VALUE), @@ -1333,7 +1404,12 @@ final HapiSpec fungibleTokenCreateWithFeesHappyPath() { final var feeCollector = "feeCollector"; final var arEd25519Key = "arEd25519Key"; final var initialAutoRenewAccount = "initialAutoRenewAccount"; - return propertyPreservingHapiSpec("fungibleTokenCreateWithFeesHappyPath") + return propertyPreservingHapiSpec( + "fungibleTokenCreateWithFeesHappyPath", + NONDETERMINISTIC_FUNCTION_PARAMETERS, + ACCEPTED_MONO_GAS_CALCULATION_DIFFERENCE, + NONDETERMINISTIC_TRANSACTION_FEES, + NONDETERMINISTIC_NONCE) .preserving(CRYPTO_CREATE_WITH_ALIAS_ENABLED, CONTRACTS_MAX_NUM_WITH_HAPI_SIGS_ACCESS) .given( overriding(CRYPTO_CREATE_WITH_ALIAS_ENABLED, FALSE_VALUE), @@ -1412,9 +1488,11 @@ final HapiSpec fungibleTokenCreateWithFeesHappyPath() { } @HapiTest + @Order(15) final HapiSpec etx026AccountWithoutAliasCanMakeEthTxnsDueToAutomaticAliasCreation() { final String ACCOUNT = "account"; - return propertyPreservingHapiSpec("etx026AccountWithoutAliasCanMakeEthTxnsDueToAutomaticAliasCreation") + return propertyPreservingHapiSpec( + "etx026AccountWithoutAliasCanMakeEthTxnsDueToAutomaticAliasCreation", NONDETERMINISTIC_NONCE) .preserving(CRYPTO_CREATE_WITH_ALIAS_ENABLED, CONTRACTS_MAX_NUM_WITH_HAPI_SIGS_ACCESS) .given( overriding(CRYPTO_CREATE_WITH_ALIAS_ENABLED, FALSE_VALUE), @@ -1433,10 +1511,11 @@ final HapiSpec etx026AccountWithoutAliasCanMakeEthTxnsDueToAutomaticAliasCreatio } @HapiTest + @Order(0) final HapiSpec transferToCaller() { final var transferTxn = TRANSFER_TXN; final var sender = "sender"; - return defaultHapiSpec("transferToCaller") + return defaultHapiSpec("transferToCaller", NONDETERMINISTIC_TRANSACTION_FEES, NONDETERMINISTIC_NONCE) .given( uploadInitCode(TRANSFERRING_CONTRACT), contractCreate(TRANSFERRING_CONTRACT).balance(10_000L), @@ -1475,8 +1554,12 @@ final HapiSpec transferToCaller() { } @HapiTest + @Order(14) final HapiSpec maxRefundIsMaxGasRefundConfiguredWhenTXGasPriceIsSmaller() { - return defaultHapiSpec("MaxRefundIsMaxGasRefundConfiguredWhenTXGasPriceIsSmaller") + return defaultHapiSpec( + "MaxRefundIsMaxGasRefundConfiguredWhenTXGasPriceIsSmaller", + NONDETERMINISTIC_TRANSACTION_FEES, + NONDETERMINISTIC_NONCE) .given( overriding(CONTRACTS_MAX_REFUND_PERCENT_OF_GAS_LIMIT, "5"), uploadInitCode(SIMPLE_UPDATE_CONTRACT)) @@ -1500,6 +1583,7 @@ final HapiSpec maxRefundIsMaxGasRefundConfiguredWhenTXGasPriceIsSmaller() { } @HapiTest + @Order(13) @SuppressWarnings("java:S5960") final HapiSpec contractCreationStoragePriceMatchesFinalExpiry() { final var toyMaker = "ToyMaker"; @@ -1511,7 +1595,12 @@ final HapiSpec contractCreationStoragePriceMatchesFinalExpiry() { final AtomicLong longLivedPayerGasUsed = new AtomicLong(); final AtomicReference toyMakerMirror = new AtomicReference<>(); - return defaultHapiSpec("ContractCreationStoragePriceMatchesFinalExpiry") + return defaultHapiSpec( + "ContractCreationStoragePriceMatchesFinalExpiry", + NONDETERMINISTIC_CONTRACT_CALL_RESULTS, + NONDETERMINISTIC_FUNCTION_PARAMETERS, + NONDETERMINISTIC_TRANSACTION_FEES, + NONDETERMINISTIC_NONCE) .given( overriding(LEDGER_AUTO_RENEW_PERIOD_MAX_DURATION, "" + longLifetime), cryptoCreate(normalPayer), @@ -1542,8 +1631,12 @@ final HapiSpec contractCreationStoragePriceMatchesFinalExpiry() { } @HapiTest + @Order(10) final HapiSpec gasLimitOverMaxGasLimitFailsPrecheck() { - return defaultHapiSpec("GasLimitOverMaxGasLimitFailsPrecheck") + return defaultHapiSpec( + "GasLimitOverMaxGasLimitFailsPrecheck", + NONDETERMINISTIC_TRANSACTION_FEES, + NONDETERMINISTIC_NONCE) .given( uploadInitCode(SIMPLE_UPDATE_CONTRACT), contractCreate(SIMPLE_UPDATE_CONTRACT).gas(300_000L), @@ -1557,8 +1650,12 @@ final HapiSpec gasLimitOverMaxGasLimitFailsPrecheck() { } @HapiTest + @Order(12) final HapiSpec createGasLimitOverMaxGasLimitFailsPrecheck() { - return defaultHapiSpec("CreateGasLimitOverMaxGasLimitFailsPrecheck") + return defaultHapiSpec( + "CreateGasLimitOverMaxGasLimitFailsPrecheck", + NONDETERMINISTIC_TRANSACTION_FEES, + NONDETERMINISTIC_NONCE) .given(overriding("contracts.maxGasPerSec", "100"), uploadInitCode(EMPTY_CONSTRUCTOR_CONTRACT)) .when() .then( @@ -1567,9 +1664,10 @@ final HapiSpec createGasLimitOverMaxGasLimitFailsPrecheck() { } @HapiTest + @Order(5) final HapiSpec transferZeroHbarsToCaller() { final var transferTxn = TRANSFER_TXN; - return defaultHapiSpec("transferZeroHbarsToCaller") + return defaultHapiSpec("transferZeroHbarsToCaller", NONDETERMINISTIC_TRANSACTION_FEES, NONDETERMINISTIC_NONCE) .given( uploadInitCode(TRANSFERRING_CONTRACT), contractCreate(TRANSFERRING_CONTRACT).balance(10_000L), @@ -1610,6 +1708,7 @@ final HapiSpec transferZeroHbarsToCaller() { } @HapiTest + @Order(1) final HapiSpec resultSizeAffectsFees() { final var contract = "VerboseDeposit"; final var TRANSFER_AMOUNT = 1_000L; @@ -1625,7 +1724,7 @@ final HapiSpec resultSizeAffectsFees() { txnLog.info(" Literally :: {}", result); }; - return defaultHapiSpec("ResultSizeAffectsFees") + return defaultHapiSpec("ResultSizeAffectsFees", NONDETERMINISTIC_TRANSACTION_FEES, NONDETERMINISTIC_NONCE) .given( overriding(CONTRACTS_MAX_REFUND_PERCENT_OF_GAS_LIMIT, "100"), uploadInitCode(contract), @@ -1663,11 +1762,12 @@ final HapiSpec resultSizeAffectsFees() { } @HapiTest + @Order(8) final HapiSpec autoAssociationSlotsAppearsInInfo() { final int maxAutoAssociations = 100; final String CONTRACT = "Multipurpose"; - return propertyPreservingHapiSpec("autoAssociationSlotsAppearsInInfo") + return propertyPreservingHapiSpec("autoAssociationSlotsAppearsInInfo", NONDETERMINISTIC_NONCE) .preserving(CONTRACT_ALLOW_ASSOCIATIONS_PROPERTY) .given(overriding(CONTRACT_ALLOW_ASSOCIATIONS_PROPERTY, "true")) .when() @@ -1681,8 +1781,12 @@ final HapiSpec autoAssociationSlotsAppearsInInfo() { } @HapiTest + @Order(16) final HapiSpec createMaxRefundIsMaxGasRefundConfiguredWhenTXGasPriceIsSmaller() { - return defaultHapiSpec("CreateMaxRefundIsMaxGasRefundConfiguredWhenTXGasPriceIsSmaller") + return defaultHapiSpec( + "CreateMaxRefundIsMaxGasRefundConfiguredWhenTXGasPriceIsSmaller", + NONDETERMINISTIC_TRANSACTION_FEES, + NONDETERMINISTIC_NONCE) .given( overriding(CONTRACTS_MAX_REFUND_PERCENT_OF_GAS_LIMIT1, "5"), uploadInitCode(EMPTY_CONSTRUCTOR_CONTRACT)) @@ -1702,8 +1806,12 @@ final HapiSpec createMaxRefundIsMaxGasRefundConfiguredWhenTXGasPriceIsSmaller() } @HapiTest + @Order(11) final HapiSpec createMinChargeIsTXGasUsedByContractCreate() { - return defaultHapiSpec("CreateMinChargeIsTXGasUsedByContractCreate") + return defaultHapiSpec( + "CreateMinChargeIsTXGasUsedByContractCreate", + NONDETERMINISTIC_TRANSACTION_FEES, + NONDETERMINISTIC_NONCE) .given( overriding(CONTRACTS_MAX_REFUND_PERCENT_OF_GAS_LIMIT1, "100"), uploadInitCode(EMPTY_CONSTRUCTOR_CONTRACT)) @@ -1723,6 +1831,7 @@ final HapiSpec createMinChargeIsTXGasUsedByContractCreate() { } @HapiTest + @Order(3) HapiSpec propagatesNestedCreations() { final var call = "callTxn"; final var creation = "createTxn"; @@ -1736,7 +1845,10 @@ HapiSpec propagatesNestedCreations() { final AtomicReference expectedChildAddress = new AtomicReference<>(); final AtomicReference expectedParentAddress = new AtomicReference<>(); - return defaultHapiSpec("PropagatesNestedCreations") + // Fully non-deterministic for fuzzy matching because mod-service externalizes + // nested contract creations in the order they are ATTEMPTED; while mono-service + // externalizes them in the order they are COMPLETED + return defaultHapiSpec("PropagatesNestedCreations", FULLY_NONDETERMINISTIC) .given( newKeyNamed(adminKey), uploadInitCode(contract), @@ -1802,9 +1914,10 @@ HapiSpec propagatesNestedCreations() { } @HapiTest + @Order(4) HapiSpec temporarySStoreRefundTest() { final var contract = "TemporarySStoreRefund"; - return defaultHapiSpec("TemporarySStoreRefundTest") + return defaultHapiSpec("TemporarySStoreRefundTest", NONDETERMINISTIC_TRANSACTION_FEES, NONDETERMINISTIC_NONCE) .given( overriding(CONTRACTS_MAX_REFUND_PERCENT_OF_GAS_LIMIT1, "100"), uploadInitCode(contract), @@ -1841,10 +1954,15 @@ HapiSpec temporarySStoreRefundTest() { } @HapiTest + @Order(7) final HapiSpec deletedContractsCannotBeUpdated() { final var contract = "SelfDestructCallable"; final var beneficiary = "beneficiary"; - return defaultHapiSpec("DeletedContractsCannotBeUpdated") + return defaultHapiSpec( + "DeletedContractsCannotBeUpdated", + EXPECT_STREAMLINED_INGEST_RECORDS, + NONDETERMINISTIC_TRANSACTION_FEES, + NONDETERMINISTIC_NONCE) .given( uploadInitCode(contract), contractCreate(contract).gas(300_000), @@ -1854,6 +1972,7 @@ final HapiSpec deletedContractsCannotBeUpdated() { } @HapiTest + @Order(6) final HapiSpec canCallPendingContractSafely() { final var numSlots = 64L; final var createBurstSize = 500; @@ -1863,7 +1982,7 @@ final HapiSpec canCallPendingContractSafely() { final var contract = "FibonacciPlus"; final var expiry = Instant.now().getEpochSecond() + 7776000; - return defaultHapiSpec("CanCallPendingContractSafely") + return defaultHapiSpec("CanCallPendingContractSafely", FULLY_NONDETERMINISTIC) .given( uploadSingleInitCode(contract, expiry, GENESIS, createdFileNum::set), inParallel(IntStream.range(0, createBurstSize) @@ -1898,6 +2017,7 @@ final HapiSpec canCallPendingContractSafely() { } @HapiTest + @Order(17) final HapiSpec lazyCreateThroughPrecompileNotSupportedWhenFlagDisabled() { final var CONTRACT = CRYPTO_TRANSFER; final var SENDER = "sender"; @@ -1907,7 +2027,11 @@ final HapiSpec lazyCreateThroughPrecompileNotSupportedWhenFlagDisabled() { final var TOTAL_SUPPLY = 1_000; final var ALLOW_AUTO_ASSOCIATIONS_PROPERTY = CONTRACT_ALLOW_ASSOCIATIONS_PROPERTY; - return propertyPreservingHapiSpec("lazyCreateThroughPrecompileNotSupportedWhenFlagDisabled") + return propertyPreservingHapiSpec( + "lazyCreateThroughPrecompileNotSupportedWhenFlagDisabled", + NONDETERMINISTIC_FUNCTION_PARAMETERS, + NONDETERMINISTIC_TRANSACTION_FEES, + NONDETERMINISTIC_NONCE) .preserving(ALLOW_AUTO_ASSOCIATIONS_PROPERTY, LAZY_CREATION_ENABLED) .given( overriding(ALLOW_AUTO_ASSOCIATIONS_PROPERTY, "true"), @@ -1963,6 +2087,7 @@ final HapiSpec lazyCreateThroughPrecompileNotSupportedWhenFlagDisabled() { } @HapiTest + @Order(18) final HapiSpec evmLazyCreateViaSolidityCall() { final var LAZY_CREATE_CONTRACT = "NestedLazyCreateContract"; final var ECDSA_KEY = "ECDSAKey"; @@ -1975,7 +2100,12 @@ final HapiSpec evmLazyCreateViaSolidityCall() { final var depositAmount = 1000; final var payTxn = "payTxn"; - return propertyPreservingHapiSpec("evmLazyCreateViaSolidityCall") + return propertyPreservingHapiSpec( + "evmLazyCreateViaSolidityCall", + NONDETERMINISTIC_FUNCTION_PARAMETERS, + ALLOW_SKIPPED_ENTITY_IDS, + NONDETERMINISTIC_TRANSACTION_FEES, + NONDETERMINISTIC_NONCE) .preserving(lazyCreationProperty, contractsEvmVersionProperty, contractsEvmVersionDynamicProperty) .given( overridingThree( @@ -2039,7 +2169,10 @@ final HapiSpec requiresTopLevelSignatureOrApprovalDependingOnControllingProperty final AtomicReference receiverAddress = new AtomicReference<>(); final AtomicReference

tokenAddress = new AtomicReference<>(); final var amountPerTransfer = 50L; - return propertyPreservingHapiSpec("RequiresTopLevelSignatureOrApprovalDependingOnControllingProperty") + return propertyPreservingHapiSpec( + "RequiresTopLevelSignatureOrApprovalDependingOnControllingProperty", + NONDETERMINISTIC_TRANSACTION_FEES, + NONDETERMINISTIC_NONCE) .preserving(CONTRACTS_ALLOW_SYSTEM_USE_OF_HAPI_SIGS, CONTRACTS_MAX_NUM_WITH_HAPI_SIGS_ACCESS) .given( cryptoCreate(SENDER) @@ -2155,6 +2288,7 @@ final HapiSpec requiresTopLevelSignatureOrApprovalDependingOnControllingProperty } @HapiTest + @Order(19) final HapiSpec evmLazyCreateViaSolidityCallTooManyCreatesFails() { final var LAZY_CREATE_CONTRACT = "NestedLazyCreateContract"; final var ECDSA_KEY = "ECDSAKey"; @@ -2165,7 +2299,11 @@ final HapiSpec evmLazyCreateViaSolidityCallTooManyCreatesFails() { final var contractsEvmVersionDynamicProperty = "contracts.evm.version.dynamic"; final var maxPrecedingRecords = "consensus.handle.maxPrecedingRecords"; final var depositAmount = 1000; - return propertyPreservingHapiSpec("evmLazyCreateViaSolidityCallTooManyCreatesFails") + return propertyPreservingHapiSpec( + "evmLazyCreateViaSolidityCallTooManyCreatesFails", + NONDETERMINISTIC_FUNCTION_PARAMETERS, + NONDETERMINISTIC_TRANSACTION_FEES, + NONDETERMINISTIC_NONCE) .preserving( lazyCreationProperty, maxPrecedingRecords, @@ -2207,8 +2345,12 @@ final HapiSpec evmLazyCreateViaSolidityCallTooManyCreatesFails() { } @HapiTest + @Order(21) final HapiSpec rejectsCreationAndUpdateOfAssociationsWhenFlagDisabled() { - return propertyPreservingHapiSpec("rejectsCreationAndUpdateOfAssociationsWhenFlagDisabled") + return propertyPreservingHapiSpec( + "rejectsCreationAndUpdateOfAssociationsWhenFlagDisabled", + NONDETERMINISTIC_TRANSACTION_FEES, + NONDETERMINISTIC_NONCE) .preserving(CONTRACT_ALLOW_ASSOCIATIONS_PROPERTY) .given(overriding(CONTRACT_ALLOW_ASSOCIATIONS_PROPERTY, FALSE)) .when(uploadInitCode(EMPTY_CONSTRUCTOR_CONTRACT)) @@ -2224,8 +2366,13 @@ final HapiSpec rejectsCreationAndUpdateOfAssociationsWhenFlagDisabled() { } @HapiTest + @Order(20) final HapiSpec erc20TransferFromDoesNotWorkIfFlagIsDisabled() { - return defaultHapiSpec("erc20TransferFromDoesNotWorkIfFlagIsDisabled") + return defaultHapiSpec( + "erc20TransferFromDoesNotWorkIfFlagIsDisabled", + NONDETERMINISTIC_TRANSACTION_FEES, + NONDETERMINISTIC_FUNCTION_PARAMETERS, + NONDETERMINISTIC_NONCE) .given( overriding(HEDERA_ALLOWANCES_IS_ENABLED, FALSE), newKeyNamed(MULTI_KEY), @@ -2269,13 +2416,19 @@ final HapiSpec erc20TransferFromDoesNotWorkIfFlagIsDisabled() { } @HapiTest + @Order(22) final HapiSpec whitelistPositiveCase() { final AtomicLong whitelistedCalleeMirrorNum = new AtomicLong(); final AtomicReference tokenID = new AtomicReference<>(); final AtomicReference attackerMirrorAddr = new AtomicReference<>(); final AtomicReference whitelistedCalleeMirrorAddr = new AtomicReference<>(); - return propertyPreservingHapiSpec("WhitelistPositiveCase") + return propertyPreservingHapiSpec( + "WhitelistPositiveCase", + NONDETERMINISTIC_FUNCTION_PARAMETERS, + NONDETERMINISTIC_CONTRACT_CALL_RESULTS, + NONDETERMINISTIC_TRANSACTION_FEES, + NONDETERMINISTIC_NONCE) .preserving(CONTRACTS_PERMITTED_DELEGATE_CALLERS) .given( cryptoCreate(TOKEN_TREASURY), @@ -2320,6 +2473,7 @@ final HapiSpec whitelistPositiveCase() { } @HapiTest + @Order(23) final HapiSpec whitelistNegativeCases() { final AtomicLong unlistedCalleeMirrorNum = new AtomicLong(); final AtomicLong whitelistedCalleeMirrorNum = new AtomicLong(); @@ -2328,7 +2482,11 @@ final HapiSpec whitelistNegativeCases() { final AtomicReference unListedCalleeMirrorAddr = new AtomicReference<>(); final AtomicReference whitelistedCalleeMirrorAddr = new AtomicReference<>(); - return propertyPreservingHapiSpec("WhitelistNegativeCases") + return propertyPreservingHapiSpec( + "WhitelistNegativeCases", + NONDETERMINISTIC_FUNCTION_PARAMETERS, + NONDETERMINISTIC_TRANSACTION_FEES, + NONDETERMINISTIC_NONCE) .preserving(CONTRACTS_PERMITTED_DELEGATE_CALLERS) .given( cryptoCreate(TOKEN_TREASURY), @@ -2395,11 +2553,15 @@ final HapiSpec whitelistNegativeCases() { } @HapiTest + @Order(28) final HapiSpec contractCreateNoncesExternalizationHappyPath() { final var contract = "NoncesExternalization"; final var contractCreateTxn = "contractCreateTxn"; - return propertyPreservingHapiSpec("ContractCreateNoncesExternalizationHappyPath") + return propertyPreservingHapiSpec( + "ContractCreateNoncesExternalizationHappyPath", + NONDETERMINISTIC_TRANSACTION_FEES, + NONDETERMINISTIC_NONCE) .preserving(CONTRACTS_NONCES_EXTERNALIZATION_ENABLED) .given( overriding(CONTRACTS_NONCES_EXTERNALIZATION_ENABLED, "true"), @@ -2442,6 +2604,7 @@ final HapiSpec contractCreateNoncesExternalizationHappyPath() { } @HapiTest + @Order(29) final HapiSpec contractCreateFollowedByContractCallNoncesExternalization() { final var contract = "NoncesExternalization"; final var payer = "payer"; @@ -2457,7 +2620,10 @@ final HapiSpec contractCreateFollowedByContractCallNoncesExternalization() { final var committedInnerCreationTx = "committedInnerCreationTx"; final var revertedInnerCreationTx = "revertedInnerCreationTx"; - return propertyPreservingHapiSpec("contractCreateFollowedByContractCallNoncesExternalization") + return propertyPreservingHapiSpec( + "contractCreateFollowedByContractCallNoncesExternalization", + NONDETERMINISTIC_TRANSACTION_FEES, + NONDETERMINISTIC_NONCE) .preserving(CONTRACTS_NONCES_EXTERNALIZATION_ENABLED) .given( overriding(CONTRACTS_NONCES_EXTERNALIZATION_ENABLED, "true"), @@ -2544,11 +2710,15 @@ final HapiSpec contractCreateFollowedByContractCallNoncesExternalization() { } @HapiTest + @Order(30) final HapiSpec shouldReturnNullWhenContractsNoncesExternalizationFlagIsDisabled() { final var contract = "NoncesExternalization"; final var payer = "payer"; - return propertyPreservingHapiSpec("shouldReturnNullWhenContractsNoncesExternalizationFlagIsDisabled") + return propertyPreservingHapiSpec( + "shouldReturnNullWhenContractsNoncesExternalizationFlagIsDisabled", + NONDETERMINISTIC_TRANSACTION_FEES, + NONDETERMINISTIC_NONCE) .preserving(CONTRACTS_NONCES_EXTERNALIZATION_ENABLED) .given( overriding(CONTRACTS_NONCES_EXTERNALIZATION_ENABLED, "false"), @@ -2569,13 +2739,18 @@ final HapiSpec shouldReturnNullWhenContractsNoncesExternalizationFlagIsDisabled( } @HapiTest - private HapiSpec someErc721GetApprovedScenariosPass() { + @Order(31) + HapiSpec someErc721GetApprovedScenariosPass() { final AtomicReference tokenMirrorAddr = new AtomicReference<>(); final AtomicReference aCivilianMirrorAddr = new AtomicReference<>(); final AtomicReference zCivilianMirrorAddr = new AtomicReference<>(); final AtomicReference zTokenMirrorAddr = new AtomicReference<>(); - return propertyPreservingHapiSpec("someErc721GetApprovedScenariosPass") + return propertyPreservingHapiSpec( + "someErc721GetApprovedScenariosPass", + NONDETERMINISTIC_FUNCTION_PARAMETERS, + NONDETERMINISTIC_CONTRACT_CALL_RESULTS, + NONDETERMINISTIC_NONCE) .preserving(EVM_VERSION_PROPERTY, DYNAMIC_EVM_PROPERTY) .given( overriding(DYNAMIC_EVM_PROPERTY, "true"), @@ -2681,13 +2856,18 @@ private HapiSpec someErc721GetApprovedScenariosPass() { } @HapiTest - private HapiSpec someErc721BalanceOfScenariosPass() { + @Order(33) + HapiSpec someErc721BalanceOfScenariosPass() { final AtomicReference tokenMirrorAddr = new AtomicReference<>(); final AtomicReference aCivilianMirrorAddr = new AtomicReference<>(); final AtomicReference bCivilianMirrorAddr = new AtomicReference<>(); final AtomicReference zTokenMirrorAddr = new AtomicReference<>(); - return propertyPreservingHapiSpec("someErc721BalanceOfScenariosPass") + return propertyPreservingHapiSpec( + "someErc721BalanceOfScenariosPass", + NONDETERMINISTIC_FUNCTION_PARAMETERS, + NONDETERMINISTIC_TRANSACTION_FEES, + NONDETERMINISTIC_NONCE) .preserving(EVM_VERSION_PROPERTY, DYNAMIC_EVM_PROPERTY) .given( overriding(DYNAMIC_EVM_PROPERTY, "true"), @@ -2764,13 +2944,19 @@ private HapiSpec someErc721BalanceOfScenariosPass() { } @HapiTest - private HapiSpec someErc721OwnerOfScenariosPass() { + @Order(32) + HapiSpec someErc721OwnerOfScenariosPass() { final AtomicReference tokenMirrorAddr = new AtomicReference<>(); final AtomicReference aCivilianMirrorAddr = new AtomicReference<>(); final AtomicReference zCivilianMirrorAddr = new AtomicReference<>(); final AtomicReference zTokenMirrorAddr = new AtomicReference<>(); - return propertyPreservingHapiSpec("someErc721OwnerOfScenariosPass") + return propertyPreservingHapiSpec( + "someErc721OwnerOfScenariosPass", + NONDETERMINISTIC_FUNCTION_PARAMETERS, + NONDETERMINISTIC_CONTRACT_CALL_RESULTS, + NONDETERMINISTIC_TRANSACTION_FEES, + NONDETERMINISTIC_NONCE) .preserving(EVM_VERSION_PROPERTY, DYNAMIC_EVM_PROPERTY) .given( overriding(DYNAMIC_EVM_PROPERTY, "true"), @@ -2859,9 +3045,14 @@ private HapiSpec someErc721OwnerOfScenariosPass() { spec.registry().getAccountID(A_CIVILIAN))))))))); } + @HapiTest + @Order(34) HapiSpec callToNonExistingContractFailsGracefully() { - - return propertyPreservingHapiSpec("callToNonExistingContractFailsGracefully") + return propertyPreservingHapiSpec( + "callToNonExistingContractFailsGracefully", + NONDETERMINISTIC_ETHEREUM_DATA, + NONDETERMINISTIC_NONCE, + EXPECT_STREAMLINED_INGEST_RECORDS) .preserving(EVM_VERSION_PROPERTY, DYNAMIC_EVM_PROPERTY) .given( overriding(DYNAMIC_EVM_PROPERTY, "true"), @@ -2889,11 +3080,16 @@ HapiSpec callToNonExistingContractFailsGracefully() { .then(); } + @Order(36) @HapiTest HapiSpec relayerFeeAsExpectedIfSenderCoversGas() { final var canonicalTxn = "canonical"; - return propertyPreservingHapiSpec("relayerFeeAsExpectedIfSenderCoversGas") + return propertyPreservingHapiSpec( + "relayerFeeAsExpectedIfSenderCoversGas", + NONDETERMINISTIC_TRANSACTION_FEES, + NONDETERMINISTIC_ETHEREUM_DATA, + NONDETERMINISTIC_NONCE) .preserving(EVM_VERSION_PROPERTY, DYNAMIC_EVM_PROPERTY, CHAIN_ID_PROP) .given( overriding(DYNAMIC_EVM_PROPERTY, "true"), @@ -2927,6 +3123,7 @@ HapiSpec relayerFeeAsExpectedIfSenderCoversGas() { } @HapiTest + @Order(38) HapiSpec invalidContract() { final var function = getABIFor(FUNCTION, "getIndirect", "CreateTrivial"); @@ -2945,11 +3142,16 @@ HapiSpec invalidContract() { .then(); } + @Order(39) @HapiTest final HapiSpec htsTransferFromForNFTViaContractCreateLazyCreate() { final var depositAmount = 1000; - return defaultHapiSpec("htsTransferFromForNFTViaContractCreateLazyCreate", NONDETERMINISTIC_NONCE) + return defaultHapiSpec( + "htsTransferFromForNFTViaContractCreateLazyCreate", + NONDETERMINISTIC_NONCE, + NONDETERMINISTIC_CONSTRUCTOR_PARAMETERS, + HIGHLY_NON_DETERMINISTIC_FEES) .given( newKeyNamed(ECDSA_KEY).shape(SECP_256K1_SHAPE), uploadInitCode(NESTED_LAZY_CREATE_VIA_CONSTRUCTOR)) diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/leaky/LeakyCryptoTestsSuite.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/leaky/LeakyCryptoTestsSuite.java index 280163bdd6da..0308da0e742f 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/leaky/LeakyCryptoTestsSuite.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/leaky/LeakyCryptoTestsSuite.java @@ -84,6 +84,12 @@ import static com.hedera.services.bdd.spec.utilops.UtilVerbs.uploadDefaultFeeSchedules; import static com.hedera.services.bdd.spec.utilops.UtilVerbs.validateChargedUsd; import static com.hedera.services.bdd.spec.utilops.UtilVerbs.withOpContext; +import static com.hedera.services.bdd.spec.utilops.records.SnapshotMatchMode.ALLOW_SKIPPED_ENTITY_IDS; +import static com.hedera.services.bdd.spec.utilops.records.SnapshotMatchMode.FULLY_NONDETERMINISTIC; +import static com.hedera.services.bdd.spec.utilops.records.SnapshotMatchMode.NONDETERMINISTIC_CONTRACT_CALL_RESULTS; +import static com.hedera.services.bdd.spec.utilops.records.SnapshotMatchMode.NONDETERMINISTIC_ETHEREUM_DATA; +import static com.hedera.services.bdd.spec.utilops.records.SnapshotMatchMode.NONDETERMINISTIC_NONCE; +import static com.hedera.services.bdd.spec.utilops.records.SnapshotMatchMode.NONDETERMINISTIC_TRANSACTION_FEES; import static com.hedera.services.bdd.suites.contract.Utils.aaWith; import static com.hedera.services.bdd.suites.contract.Utils.getABIFor; import static com.hedera.services.bdd.suites.contract.Utils.mirrorAddrWith; @@ -115,13 +121,13 @@ import static com.hedera.services.bdd.suites.crypto.CryptoCreateSuite.ED_25519_KEY; import static com.hedera.services.bdd.suites.crypto.CryptoCreateSuite.LAZY_CREATION_ENABLED; import static com.hedera.services.bdd.suites.file.FileUpdateSuite.CIVILIAN; +import static com.hedera.services.bdd.suites.leaky.LeakyContractTestsSuite.RECEIVER; import static com.hedera.services.bdd.suites.token.TokenPauseSpecs.DEFAULT_MIN_AUTO_RENEW_PERIOD; import static com.hedera.services.bdd.suites.token.TokenPauseSpecs.LEDGER_AUTO_RENEW_PERIOD_MIN_DURATION; import static com.hedera.services.bdd.suites.token.TokenPauseSpecs.TokenIdOrderingAsserts.withOrderedTokenIds; import static com.hedera.services.bdd.suites.token.TokenTransactSpecs.SUPPLY_KEY; import static com.hedera.services.bdd.suites.token.TokenTransactSpecs.TRANSFER_TXN; import static com.hedera.services.bdd.suites.token.TokenTransactSpecs.UNIQUE; -import static com.hedera.services.yahcli.commands.validation.ValidationCommand.RECEIVER; import static com.hederahashgraph.api.proto.java.HederaFunctionality.ContractCreate; import static com.hederahashgraph.api.proto.java.HederaFunctionality.CryptoCreate; import static com.hederahashgraph.api.proto.java.HederaFunctionality.CryptoTransfer; @@ -183,8 +189,14 @@ import java.util.stream.IntStream; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.TestMethodOrder; -@HapiTestSuite +@HapiTestSuite(fuzzyMatch = true) +@TestMethodOrder( + MethodOrderer.OrderAnnotation + .class) // define same running order for mod specs as in getSpecsInSuite() definition used in mono public class LeakyCryptoTestsSuite extends HapiSuite { private static final Logger log = LogManager.getLogger(LeakyCryptoTestsSuite.class); private static final String ASSOCIATIONS_LIMIT_PROPERTY = "entities.limitTokenAssociations"; @@ -234,6 +246,7 @@ public List getSpecsInSuite() { } @HapiTest + @Order(16) final HapiSpec autoAssociationPropertiesWorkAsExpected() { final var minAutoRenewPeriodPropertyName = "ledger.autoRenewPeriod.minDuration"; final var maxAssociationsPropertyName = "ledger.maxAutoAssociations"; @@ -270,6 +283,7 @@ final HapiSpec autoAssociationPropertiesWorkAsExpected() { } @HapiTest + @Order(8) final HapiSpec getsInsufficientPayerBalanceIfSendingAccountCanPayEverythingButServiceFee() { final var civilian = "civilian"; final var creation = "creation"; @@ -280,7 +294,9 @@ final HapiSpec getsInsufficientPayerBalanceIfSendingAccountCanPayEverythingButSe final AtomicLong nodeAndNetworkFee = new AtomicLong(); final AtomicLong maxSendable = new AtomicLong(); - return defaultHapiSpec("GetsInsufficientPayerBalanceIfSendingAccountCanPayEverythingButServiceFee") + return defaultHapiSpec( + "GetsInsufficientPayerBalanceIfSendingAccountCanPayEverythingButServiceFee", + NONDETERMINISTIC_TRANSACTION_FEES) .given(cryptoCreate(civilian).balance(civilianStartBalance), uploadInitCode(EMPTY_CONSTRUCTOR_CONTRACT)) .when( contractCreate(EMPTY_CONSTRUCTOR_CONTRACT) @@ -329,6 +345,7 @@ final HapiSpec getsInsufficientPayerBalanceIfSendingAccountCanPayEverythingButSe } @BddMethodIsNotATest + @Order(6) final HapiSpec scheduledCryptoApproveAllowanceWaitForExpiryTrue() { return defaultHapiSpec("ScheduledCryptoApproveAllowanceWaitForExpiryTrue") .given( @@ -408,6 +425,7 @@ final HapiSpec scheduledCryptoApproveAllowanceWaitForExpiryTrue() { } // @HapiTest // will be enabled in next PR + @Order(7) final HapiSpec txnsUsingHip583FunctionalitiesAreNotAcceptedWhenFlagsAreDisabled() { return propertyPreservingHapiSpec("txnsUsingHip583FunctionalitiesAreNotAcceptedWhenFlagsAreDisabled") .preserving(LAZY_CREATION_ENABLED, CRYPTO_CREATE_WITH_ALIAS_ENABLED) @@ -457,6 +475,7 @@ final HapiSpec txnsUsingHip583FunctionalitiesAreNotAcceptedWhenFlagsAreDisabled( } @BddMethodIsNotATest + @Order(0) final HapiSpec maxAutoAssociationSpec() { final int MONOGAMOUS_NETWORK = 1; final int maxAutoAssociations = 100; @@ -481,6 +500,7 @@ final HapiSpec maxAutoAssociationSpec() { } @BddMethodIsNotATest + @Order(1) public HapiSpec canDissociateFromMultipleExpiredTokens() { final var civilian = "civilian"; final long initialSupply = 100L; @@ -518,8 +538,9 @@ public HapiSpec canDissociateFromMultipleExpiredTokens() { } @HapiTest + @Order(2) final HapiSpec cannotExceedAccountAllowanceLimit() { - return defaultHapiSpec("CannotExceedAccountAllowanceLimit") + return defaultHapiSpec("CannotExceedAccountAllowanceLimit", NONDETERMINISTIC_TRANSACTION_FEES) .given( overridingTwo( HEDERA_ALLOWANCES_MAX_ACCOUNT_LIMIT, "3", @@ -586,6 +607,7 @@ final HapiSpec cannotExceedAccountAllowanceLimit() { } @HapiTest + @Order(4) final HapiSpec createAnAccountWithEVMAddressAliasAndECKey() { return propertyPreservingHapiSpec("CreateAnAccountWithEVMAddressAliasAndECKey") .preserving(LAZY_CREATION_ENABLED, CRYPTO_CREATE_WITH_ALIAS_ENABLED) @@ -645,6 +667,7 @@ final HapiSpec createAnAccountWithEVMAddressAliasAndECKey() { } @HapiTest + @Order(5) final HapiSpec createAnAccountWithEVMAddress() { return propertyPreservingHapiSpec("CreateAnAccountWithEVMAddress") .preserving(LAZY_CREATION_ENABLED, CRYPTO_CREATE_WITH_ALIAS_ENABLED) @@ -667,8 +690,9 @@ final HapiSpec createAnAccountWithEVMAddress() { } @HapiTest + @Order(3) final HapiSpec cannotExceedAllowancesTransactionLimit() { - return defaultHapiSpec("CannotExceedAllowancesTransactionLimit") + return defaultHapiSpec("CannotExceedAllowancesTransactionLimit", NONDETERMINISTIC_TRANSACTION_FEES) .given( newKeyNamed(SUPPLY_KEY), overridingTwo( @@ -748,6 +772,7 @@ final HapiSpec cannotExceedAllowancesTransactionLimit() { } @HapiTest + @Order(9) final HapiSpec hollowAccountCompletionNotAcceptedWhenFlagIsDisabled() { return propertyPreservingHapiSpec("HollowAccountCompletionNotAcceptedWhenFlagIsDisabled") .preserving(LAZY_CREATION_ENABLED) @@ -796,6 +821,7 @@ final HapiSpec hollowAccountCompletionNotAcceptedWhenFlagIsDisabled() { } @HapiTest + @Order(11) final HapiSpec hollowAccountCreationChargesExpectedFees() { final long REDUCED_NODE_FEE = 2L; final long REDUCED_NETWORK_FEE = 3L; @@ -803,7 +829,10 @@ final HapiSpec hollowAccountCreationChargesExpectedFees() { final long REDUCED_TOTAL_FEE = REDUCED_NODE_FEE + REDUCED_NETWORK_FEE + REDUCED_SERVICE_FEE; final var payer = "payer"; final var secondKey = "secondKey"; - return propertyPreservingHapiSpec("hollowAccountCreationChargesExpectedFees") + return propertyPreservingHapiSpec( + "hollowAccountCreationChargesExpectedFees", + NONDETERMINISTIC_TRANSACTION_FEES, + ALLOW_SKIPPED_ENTITY_IDS) .preserving(LAZY_CREATION_ENABLED, CRYPTO_CREATE_WITH_ALIAS_ENABLED) .given( overridingTwo(LAZY_CREATION_ENABLED, "true", CRYPTO_CREATE_WITH_ALIAS_ENABLED, "true"), @@ -863,10 +892,12 @@ final HapiSpec hollowAccountCreationChargesExpectedFees() { .then(uploadDefaultFeeSchedules(GENESIS)); } // @HapiTest /// will be enabled after EthereumTransaction hollow account finalization is implemented + @Order(10) final HapiSpec hollowAccountCompletionWithEthereumTransaction() { final Map startingProps = new HashMap<>(); final String CONTRACT = "Fuse"; - return propertyPreservingHapiSpec("HollowAccountCompletionWithEthereumTransaction") + return propertyPreservingHapiSpec( + "HollowAccountCompletionWithEthereumTransaction", NONDETERMINISTIC_ETHEREUM_DATA) .preserving(LAZY_CREATION_ENABLED, CHAIN_ID_PROP) .given( overridingTwo(LAZY_CREATION_ENABLED, TRUE, CHAIN_ID_PROP, "298"), @@ -915,10 +946,14 @@ final HapiSpec hollowAccountCompletionWithEthereumTransaction() { } @HapiTest + @Order(14) final HapiSpec contractDeployAfterEthereumTransferLazyCreate() { final var RECIPIENT_KEY = LAZY_ACCOUNT_RECIPIENT; final var lazyCreateTxn = PAY_TXN; - return propertyPreservingHapiSpec("contractDeployAfterEthereumTransferLazyCreate") + return propertyPreservingHapiSpec( + "contractDeployAfterEthereumTransferLazyCreate", + NONDETERMINISTIC_ETHEREUM_DATA, + NONDETERMINISTIC_NONCE) .preserving(CHAIN_ID_PROP, LAZY_CREATE_PROPERTY_NAME, CONTRACTS_EVM_VERSION_PROP) .given( overridingThree( @@ -965,10 +1000,16 @@ final HapiSpec contractDeployAfterEthereumTransferLazyCreate() { } @HapiTest + @Order(15) final HapiSpec contractCallAfterEthereumTransferLazyCreate() { final var RECIPIENT_KEY = LAZY_ACCOUNT_RECIPIENT; final var lazyCreateTxn = PAY_TXN; - return propertyPreservingHapiSpec("contractCallAfterEthereumTransferLazyCreate") + return propertyPreservingHapiSpec( + "contractCallAfterEthereumTransferLazyCreate", + NONDETERMINISTIC_ETHEREUM_DATA, + NONDETERMINISTIC_TRANSACTION_FEES, + NONDETERMINISTIC_CONTRACT_CALL_RESULTS, + NONDETERMINISTIC_NONCE) .preserving(CHAIN_ID_PROP, LAZY_CREATE_PROPERTY_NAME, CONTRACTS_EVM_VERSION_PROP) .given( overridingThree( @@ -1015,11 +1056,16 @@ final HapiSpec contractCallAfterEthereumTransferLazyCreate() { } @HapiTest + @Order(12) final HapiSpec lazyCreateViaEthereumCryptoTransfer() { final var RECIPIENT_KEY = LAZY_ACCOUNT_RECIPIENT; final var lazyCreateTxn = PAY_TXN; final var failedLazyCreateTxn = "failedLazyCreateTxn"; - return propertyPreservingHapiSpec("lazyCreateViaEthereumCryptoTransfer") + return propertyPreservingHapiSpec( + "lazyCreateViaEthereumCryptoTransfer", + ALLOW_SKIPPED_ENTITY_IDS, + NONDETERMINISTIC_ETHEREUM_DATA, + NONDETERMINISTIC_NONCE) .preserving(CHAIN_ID_PROP, LAZY_CREATE_PROPERTY_NAME, CONTRACTS_EVM_VERSION_PROP) .given( overridingThree( @@ -1099,8 +1145,10 @@ final HapiSpec lazyCreateViaEthereumCryptoTransfer() { } @HapiTest + @Order(13) final HapiSpec hollowAccountCompletionWithSimultaneousPropertiesUpdate() { - return propertyPreservingHapiSpec("hollowAccountCompletionWithSimultaniousPropertiesUpdate") + return propertyPreservingHapiSpec( + "hollowAccountCompletionWithSimultaniousPropertiesUpdate", NONDETERMINISTIC_TRANSACTION_FEES) .preserving(LAZY_CREATION_ENABLED) .given( overriding(LAZY_CREATION_ENABLED, TRUE), @@ -1146,6 +1194,7 @@ final HapiSpec hollowAccountCompletionWithSimultaneousPropertiesUpdate() { } @HapiTest + @Order(17) public HapiSpec autoAssociationWorksForContracts() { final var theContract = "CreateDonor"; final String tokenA = "tokenA"; @@ -1155,7 +1204,7 @@ public HapiSpec autoAssociationWorksForContracts() { final String tokenBcreateTxn = "tokenBCreate"; final String transferToFU = "transferToFU"; - return propertyPreservingHapiSpec("autoAssociationWorksForContracts") + return propertyPreservingHapiSpec("autoAssociationWorksForContracts", NONDETERMINISTIC_TRANSACTION_FEES) .preserving("contracts.allowAutoAssociations") .given( overriding("contracts.allowAutoAssociations", "true"), @@ -1213,6 +1262,7 @@ public HapiSpec autoAssociationWorksForContracts() { } @HapiTest + @Order(18) final HapiSpec customFeesHaveExpectedAutoCreateInteractions() { final var nftWithRoyaltyNoFallback = "nftWithRoyaltyNoFallback"; final var nftWithRoyaltyPlusHtsFallback = "nftWithRoyaltyPlusFallback"; @@ -1223,7 +1273,7 @@ final HapiSpec customFeesHaveExpectedAutoCreateInteractions() { final var otherCollector = "otherCollector"; final var finalTxn = "finalTxn"; - return propertyPreservingHapiSpec("CustomFeesHaveExpectedAutoCreateInteractions") + return propertyPreservingHapiSpec("CustomFeesHaveExpectedAutoCreateInteractions", FULLY_NONDETERMINISTIC) .preserving("contracts.allowAutoAssociations") .given( overriding("contracts.allowAutoAssociations", "true"), diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/leaky/LeakyEthereumTestsSuite.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/leaky/LeakyEthereumTestsSuite.java new file mode 100644 index 000000000000..678e34d64c6e --- /dev/null +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/leaky/LeakyEthereumTestsSuite.java @@ -0,0 +1,173 @@ +/* + * Copyright (C) 2022-2024 Hedera Hashgraph, LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.hedera.services.bdd.suites.leaky; + +import static com.hedera.services.bdd.junit.TestTags.SMART_CONTRACT; +import static com.hedera.services.bdd.spec.HapiSpec.propertyPreservingHapiSpec; +import static com.hedera.services.bdd.spec.assertions.TransactionRecordAsserts.recordWith; +import static com.hedera.services.bdd.spec.keys.KeyFactory.KeyType.THRESHOLD; +import static com.hedera.services.bdd.spec.queries.QueryVerbs.getTxnRecord; +import static com.hedera.services.bdd.spec.transactions.TxnVerbs.contractCreate; +import static com.hedera.services.bdd.spec.transactions.TxnVerbs.cryptoCreate; +import static com.hedera.services.bdd.spec.transactions.TxnVerbs.cryptoTransfer; +import static com.hedera.services.bdd.spec.transactions.TxnVerbs.ethereumCall; +import static com.hedera.services.bdd.spec.transactions.TxnVerbs.uploadInitCode; +import static com.hedera.services.bdd.spec.transactions.crypto.HapiCryptoTransfer.tinyBarsFromAccountToAlias; +import static com.hedera.services.bdd.spec.utilops.CustomSpecAssert.allRunFor; +import static com.hedera.services.bdd.spec.utilops.UtilVerbs.newKeyNamed; +import static com.hedera.services.bdd.spec.utilops.UtilVerbs.overriding; +import static com.hedera.services.bdd.spec.utilops.UtilVerbs.resetToDefault; +import static com.hedera.services.bdd.spec.utilops.UtilVerbs.withOpContext; +import static com.hedera.services.bdd.spec.utilops.records.SnapshotMatchMode.NONDETERMINISTIC_CONTRACT_CALL_RESULTS; +import static com.hedera.services.bdd.spec.utilops.records.SnapshotMatchMode.NONDETERMINISTIC_ETHEREUM_DATA; +import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.SUCCESS; + +import com.hedera.node.app.hapi.utils.ethereum.EthTxData.EthTransactionType; +import com.hedera.services.bdd.junit.HapiTest; +import com.hedera.services.bdd.junit.HapiTestSuite; +import com.hedera.services.bdd.spec.HapiSpec; +import com.hedera.services.bdd.suites.HapiSuite; +import com.hederahashgraph.api.proto.java.ResponseCodeEnum; +import java.math.BigInteger; +import java.util.List; +import java.util.stream.Stream; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.junit.jupiter.api.Tag; + +@HapiTestSuite +@Tag(SMART_CONTRACT) +@SuppressWarnings("java:S5960") +public class LeakyEthereumTestsSuite extends HapiSuite { + + private static final String PAY_RECEIVABLE_CONTRACT = "PayReceivable"; + private static final Logger log = LogManager.getLogger(LeakyEthereumTestsSuite.class); + + public static void main(String... args) { + new LeakyEthereumTestsSuite().runSuiteAsync(); + } + + @Override + public boolean canRunConcurrent() { + return true; + } + + @Override + public List getSpecsInSuite() { + return Stream.of(legacyUnprotectedEtxBeforeEIP155(), legacyEtxAfterEIP155()) + .toList(); + } + + // test unprotected legacy ethereum transactions before EIP155 + // this tests the behaviour when the `v` field is 27 or 28 + // in this case the passed chainId = 0 so ETX is before EIP155 + // and so `v` is calculated -> v = {0,1} + 27 + // source: https://eips.ethereum.org/EIPS/eip-155 + @HapiTest + HapiSpec legacyUnprotectedEtxBeforeEIP155() { + final String DEPOSIT = "deposit"; + final long depositAmount = 20_000L; + final Integer chainId = 0; + + return propertyPreservingHapiSpec( + "legacyUnprotectedEtxBeforeEIP155", + NONDETERMINISTIC_ETHEREUM_DATA, + NONDETERMINISTIC_CONTRACT_CALL_RESULTS) + .preserving(CHAIN_ID_PROP) + .given( + overriding(CHAIN_ID_PROP, "" + chainId), + newKeyNamed(SECP_256K1_SOURCE_KEY).shape(SECP_256K1_SHAPE), + cryptoCreate(RELAYER).balance(6 * ONE_MILLION_HBARS), + cryptoTransfer(tinyBarsFromAccountToAlias(GENESIS, SECP_256K1_SOURCE_KEY, ONE_HUNDRED_HBARS)) + .via("autoAccount"), + getTxnRecord("autoAccount").andAllChildRecords(), + uploadInitCode(PAY_RECEIVABLE_CONTRACT), + contractCreate(PAY_RECEIVABLE_CONTRACT).adminKey(THRESHOLD)) + .when( + overriding(CHAIN_ID_PROP, "" + chainId), + ethereumCall(PAY_RECEIVABLE_CONTRACT, DEPOSIT, BigInteger.valueOf(depositAmount)) + .type(EthTransactionType.LEGACY_ETHEREUM) + .signingWith(SECP_256K1_SOURCE_KEY) + .payingWith(RELAYER) + .via("legacyBeforeEIP155") + .nonce(0) + .chainId(chainId) + .gasPrice(50L) + .maxPriorityGas(2L) + .gasLimit(1_000_000L) + .sending(depositAmount) + .hasKnownStatus(ResponseCodeEnum.SUCCESS)) + .then( + withOpContext((spec, opLog) -> allRunFor( + spec, + getTxnRecord("legacyBeforeEIP155") + .logged() + .hasPriority(recordWith().status(SUCCESS)))), + resetToDefault(CHAIN_ID_PROP)); + } + + // test legacy ethereum transactions after EIP155 + // this tests the behaviour when the `v` field is 37 or 38 + // in this case the passed chainId = 1 so ETX is after EIP155 + // and so `v` is calculated -> v = {0,1} + CHAIN_ID * 2 + 35 + // source: https://eips.ethereum.org/EIPS/eip-155 + @HapiTest + HapiSpec legacyEtxAfterEIP155() { + final String DEPOSIT = "deposit"; + final long depositAmount = 20_000L; + final Integer chainId = 1; + + return propertyPreservingHapiSpec( + "legacyEtxAfterEIP155", NONDETERMINISTIC_ETHEREUM_DATA, NONDETERMINISTIC_CONTRACT_CALL_RESULTS) + .preserving(CHAIN_ID_PROP) + .given( + overriding(CHAIN_ID_PROP, "" + chainId), + newKeyNamed(SECP_256K1_SOURCE_KEY).shape(SECP_256K1_SHAPE), + cryptoCreate(RELAYER).balance(6 * ONE_MILLION_HBARS), + cryptoTransfer(tinyBarsFromAccountToAlias(GENESIS, SECP_256K1_SOURCE_KEY, ONE_HUNDRED_HBARS)) + .via("autoAccount"), + getTxnRecord("autoAccount").andAllChildRecords(), + uploadInitCode(PAY_RECEIVABLE_CONTRACT), + contractCreate(PAY_RECEIVABLE_CONTRACT).adminKey(THRESHOLD)) + .when( + overriding(CHAIN_ID_PROP, "" + chainId), + ethereumCall(PAY_RECEIVABLE_CONTRACT, DEPOSIT, BigInteger.valueOf(depositAmount)) + .type(EthTransactionType.LEGACY_ETHEREUM) + .signingWith(SECP_256K1_SOURCE_KEY) + .payingWith(RELAYER) + .via("legacyAfterEIP155") + .nonce(0) + .chainId(chainId) + .gasPrice(50L) + .maxPriorityGas(2L) + .gasLimit(1_000_000L) + .sending(depositAmount) + .hasKnownStatus(ResponseCodeEnum.SUCCESS)) + .then( + withOpContext((spec, opLog) -> allRunFor( + spec, + getTxnRecord("legacyAfterEIP155") + .logged() + .hasPriority(recordWith().status(SUCCESS)))), + resetToDefault(CHAIN_ID_PROP)); + } + + @Override + protected Logger getResultsLogger() { + return log; + } +} diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/leaky/package-info.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/leaky/package-info.java index 109be714a8d6..561809ef031a 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/leaky/package-info.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/leaky/package-info.java @@ -7,7 +7,9 @@ * * *

An example of the first kind is a test like {@link - * com.hedera.services.bdd.suites.file.FileUpdateSuite#chainIdChangesDynamically()} that changes the + * com.hedera.services.bdd.suites.file.FileUpdateSuite#chainIdChangesDynamically(), {@link + * com.hedera.services.bdd.suites.leaky.LeakyEthereumTestsSuite#legacyUnprotectedEtxBeforeEIP155() and {@link + * com.hedera.services.bdd.suites.leaky.LeakyEthereumTestsSuite#legacyEtxAfterEIP155()}}} that changes the * network's EVM {@code chainid} to a non-standard value. Any concurrent {@code EthereumCall} that * uses the standard dev {@code 298} chainid will now fail. The updated {@code chainid} "leaked" * out! Any test that updates system files for properties, permissions, fees, or throttles can have diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/regression/TargetNetworkPrep.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/regression/TargetNetworkPrep.java index 4f096ede19e2..a7053763649d 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/regression/TargetNetworkPrep.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/regression/TargetNetworkPrep.java @@ -93,7 +93,7 @@ final HapiSpec ensureSystemStateAsExpectedWithSystemDefaultFiles() { uploadDefaultFeeSchedules(GENESIS), fileUpdate(API_PERMISSIONS) .payingWith(GENESIS) - .contents(serde.toValidatedRawFile(stylized121)), + .contents(serde.toValidatedRawFile(stylized121, null)), overridingAllOf(Map.of( "scheduling.whitelist", "ConsensusSubmitMessage,CryptoTransfer,TokenMint,TokenBurn,CryptoApproveAllowance,CryptoUpdate", diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/schedule/ScheduleSignSpecs.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/schedule/ScheduleSignSpecs.java index 373568635169..075901af08e3 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/schedule/ScheduleSignSpecs.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/schedule/ScheduleSignSpecs.java @@ -256,7 +256,8 @@ final HapiSpec reductionInSigningReqsAllowsTxnToGoThrough() { .sigControl(forKey(NEW_SENDER_KEY, firstSigThree)), getAccountBalance(receiver).hasTinyBars(0L), cryptoUpdate(sender).key(NEW_SENDER_KEY), - scheduleSign(schedule), + scheduleSign(schedule).via("signTxn"), + getTxnRecord("signTxn").hasScheduledTransactionId().logged(), getAccountBalance(receiver).hasTinyBars(1L)) .then( scheduleSign(schedule) diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/token/Hip17UnhappyTokensSuite.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/token/Hip17UnhappyTokensSuite.java index 9148e31be01f..b764f4e40f30 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/token/Hip17UnhappyTokensSuite.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/token/Hip17UnhappyTokensSuite.java @@ -41,6 +41,7 @@ import static com.hedera.services.bdd.spec.transactions.token.TokenMovement.movingUnique; import static com.hedera.services.bdd.spec.utilops.UtilVerbs.newKeyNamed; import static com.hedera.services.bdd.spec.utilops.UtilVerbs.sleepFor; +import static com.hedera.services.bdd.spec.utilops.UtilVerbs.sourcing; import static com.hedera.services.bdd.suites.autorenew.AutoRenewConfigChoices.disablingAutoRenewWithDefaults; import static com.hedera.services.bdd.suites.perf.PerfUtilOps.tokenOpsEnablement; import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.INVALID_ZERO_BYTE_IN_STRING; @@ -436,13 +437,13 @@ final HapiSpec cannotGetNftInfoWhenExpired() { .overridingProps(AutoRenewConfigChoices.propsForAccountAutoRenewOnWith(1, 0L, 2, 2)), newKeyNamed(SUPPLY_KEY), cryptoCreate(TOKEN_TREASURY), - tokenCreate(NFTexpired) + sourcing(() -> tokenCreate(NFTexpired) .tokenType(NON_FUNGIBLE_UNIQUE) .supplyType(TokenSupplyType.INFINITE) .supplyKey(SUPPLY_KEY) .initialSupply(0) .expiry(Instant.now().getEpochSecond() + 5L) - .treasury(TOKEN_TREASURY), + .treasury(TOKEN_TREASURY)), mintToken(NFTexpired, List.of(metadata(FIRST_MEMO)))) .when(sleepFor(6000)) .then(getTokenNftInfo(NFTexpired, 1).hasCostAnswerPrecheckFrom(OK)); diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/utils/sysfiles/BookEntryPojo.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/utils/sysfiles/BookEntryPojo.java index ab24d1046e09..4ce962142471 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/utils/sysfiles/BookEntryPojo.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/utils/sysfiles/BookEntryPojo.java @@ -20,9 +20,9 @@ import com.google.protobuf.ByteString; import com.hedera.node.app.hapi.utils.CommonUtils; import com.hedera.services.bdd.spec.HapiPropertySource; -import com.hedera.services.yahcli.commands.files.SysFileUploadCommand; import com.hederahashgraph.api.proto.java.NodeAddress; import com.hederahashgraph.api.proto.java.ServiceEndpoint; +import edu.umd.cs.findbugs.annotations.Nullable; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; @@ -147,7 +147,7 @@ public void setDescription(final String description) { } @SuppressWarnings("java:S1874") - public Stream toGrpcStream() { + public Stream toGrpcStream(@Nullable final String srcDir) { final var grpc = NodeAddress.newBuilder(); if (deprecatedIp != null) { @@ -161,7 +161,10 @@ public Stream toGrpcStream() { if (rsaPubKey != null) { if (rsaPubKey.equals(SENTINEL_REPLACEMENT_VALUE)) { - final var baseDir = SysFileUploadCommand.activeSrcDir.get() + File.separator + "pubkeys"; + if (srcDir == null) { + throw new IllegalStateException("No source directory given for RSA pub key replacement"); + } + final var baseDir = srcDir + File.separator + "pubkeys"; final var computedKey = asHexEncodedDerPubKey(baseDir, grpc.getNodeId()); grpc.setRSAPubKey(computedKey); } else { @@ -173,7 +176,10 @@ public Stream toGrpcStream() { } if (!certHash.equals(MISSING_CERT_HASH)) { if (certHash.equals(SENTINEL_REPLACEMENT_VALUE)) { - final var baseDir = SysFileUploadCommand.activeSrcDir.get() + File.separator + "certs"; + if (srcDir == null) { + throw new IllegalStateException("No source directory given for RSA cert replacement"); + } + final var baseDir = srcDir + File.separator + "certs"; final var computedHash = asHexEncodedSha384HashFor(baseDir, grpc.getNodeId()); grpc.setNodeCertHash(ByteString.copyFromUtf8(computedHash)); } else { diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/utils/sysfiles/serdes/AddrBkJsonToGrpcBytes.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/utils/sysfiles/serdes/AddrBkJsonToGrpcBytes.java index d9d908b8ab25..500a145618ca 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/utils/sysfiles/serdes/AddrBkJsonToGrpcBytes.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/utils/sysfiles/serdes/AddrBkJsonToGrpcBytes.java @@ -24,6 +24,8 @@ import com.hedera.services.bdd.suites.utils.sysfiles.AddressBookPojo; import com.hedera.services.bdd.suites.utils.sysfiles.BookEntryPojo; import com.hederahashgraph.api.proto.java.NodeAddressBook; +import edu.umd.cs.findbugs.annotations.NonNull; +import edu.umd.cs.findbugs.annotations.Nullable; import java.io.IOException; public class AddrBkJsonToGrpcBytes implements SysFileSerde { @@ -40,19 +42,19 @@ public String fromRawFile(byte[] bytes) { } @Override - public byte[] toRawFile(String styledFile) { - return grpcBytesFromPojo(pojoFrom(styledFile)); + public byte[] toRawFile(String styledFile, @Nullable String interpolatedSrcDir) { + return grpcBytesFromPojo(pojoFrom(styledFile), interpolatedSrcDir); } @Override - public byte[] toValidatedRawFile(String styledFile) { + public byte[] toValidatedRawFile(String styledFile, @Nullable String interpolatedSrcDir) { var pojo = pojoFrom(styledFile); for (var entry : pojo.getEntries()) { for (BookEntryPojo.EndpointPojo endpointPojo : entry.getEndpoints()) { validateIPandPort(endpointPojo.getIpAddressV4(), endpointPojo.getPort()); } } - return grpcBytesFromPojo(pojo); + return grpcBytesFromPojo(pojo, interpolatedSrcDir); } private void validateIPandPort(String IpV4Address, Integer portNum) { @@ -79,10 +81,11 @@ private AddressBookPojo pojoFrom(String styledFile) { } } - private byte[] grpcBytesFromPojo(AddressBookPojo pojoBook) { + private byte[] grpcBytesFromPojo( + @NonNull final AddressBookPojo pojoBook, @Nullable final String interpolatedSrcDir) { NodeAddressBook.Builder addressBookForClients = NodeAddressBook.newBuilder(); pojoBook.getEntries().stream() - .flatMap(BookEntryPojo::toGrpcStream) + .flatMap(pojo -> pojo.toGrpcStream(interpolatedSrcDir)) .forEach(addressBookForClients::addNodeAddress); return addressBookForClients.build().toByteArray(); } diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/utils/sysfiles/serdes/FeesJsonToGrpcBytes.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/utils/sysfiles/serdes/FeesJsonToGrpcBytes.java index 6e3d867873b3..76cee0131d9f 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/utils/sysfiles/serdes/FeesJsonToGrpcBytes.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/utils/sysfiles/serdes/FeesJsonToGrpcBytes.java @@ -22,6 +22,7 @@ import com.hedera.node.app.hapi.utils.sysfiles.serdes.FeesJsonToProtoSerde; import com.hedera.services.bdd.suites.utils.sysfiles.FeeSchedulesListEntry; import com.hederahashgraph.api.proto.java.CurrentAndNextFeeSchedule; +import edu.umd.cs.findbugs.annotations.Nullable; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; @@ -32,7 +33,7 @@ public class FeesJsonToGrpcBytes implements SysFileSerde { public static void main(String... args) { var subject = new FeesJsonToGrpcBytes(); try { - var grpcBytes = subject.toRawFile(Files.readString(Paths.get("src/main/resource/FeeSchedule.json"))); + var grpcBytes = subject.toRawFile(Files.readString(Paths.get("src/main/resource/FeeSchedule.json")), null); var grpc = CurrentAndNextFeeSchedule.parseFrom(grpcBytes); System.out.println(grpc.toString()); var json = subject.fromRawFile(grpcBytes); @@ -64,7 +65,7 @@ public String fromRawFile(byte[] bytes) { } @Override - public byte[] toRawFile(String styledFile) { + public byte[] toRawFile(String styledFile, @Nullable String interpolatedSrcDir) { try { return FeesJsonToProtoSerde.parseFeeScheduleFromJson(styledFile).toByteArray(); } catch (Exception e) { diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/utils/sysfiles/serdes/JutilPropsToSvcCfgBytes.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/utils/sysfiles/serdes/JutilPropsToSvcCfgBytes.java index 83852af1ef9c..4efe1d600eae 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/utils/sysfiles/serdes/JutilPropsToSvcCfgBytes.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/utils/sysfiles/serdes/JutilPropsToSvcCfgBytes.java @@ -19,6 +19,7 @@ import com.google.protobuf.InvalidProtocolBufferException; import com.hederahashgraph.api.proto.java.ServicesConfigurationList; import com.hederahashgraph.api.proto.java.Setting; +import edu.umd.cs.findbugs.annotations.Nullable; import java.io.IOException; import java.io.StringReader; import java.util.Comparator; @@ -47,7 +48,7 @@ public String fromRawFile(byte[] bytes) { } @Override - public byte[] toRawFile(String styledFile) { + public byte[] toRawFile(String styledFile, @Nullable String interpolatedSrcDir) { var jutilConfig = new Properties(); try { jutilConfig.load(new StringReader(styledFile)); diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/utils/sysfiles/serdes/NodesJsonToGrpcBytes.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/utils/sysfiles/serdes/NodesJsonToGrpcBytes.java index 20ec0bd37500..4e05adc65be3 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/utils/sysfiles/serdes/NodesJsonToGrpcBytes.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/utils/sysfiles/serdes/NodesJsonToGrpcBytes.java @@ -22,8 +22,8 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.google.protobuf.InvalidProtocolBufferException; import com.hedera.services.bdd.suites.utils.sysfiles.AddressBookPojo; -import com.hedera.services.bdd.suites.utils.sysfiles.BookEntryPojo; import com.hederahashgraph.api.proto.java.NodeAddressBook; +import edu.umd.cs.findbugs.annotations.Nullable; import java.io.IOException; public class NodesJsonToGrpcBytes implements SysFileSerde { @@ -40,11 +40,13 @@ public String fromRawFile(byte[] bytes) { } @Override - public byte[] toRawFile(String styledFile) { + public byte[] toRawFile(String styledFile, @Nullable String interpolatedSrcDir) { try { var pojoBook = mapper.readValue(styledFile, AddressBookPojo.class); NodeAddressBook.Builder addressBook = NodeAddressBook.newBuilder(); - pojoBook.getEntries().stream().flatMap(BookEntryPojo::toGrpcStream).forEach(addressBook::addNodeAddress); + pojoBook.getEntries().stream() + .flatMap(pojo -> pojo.toGrpcStream(interpolatedSrcDir)) + .forEach(addressBook::addNodeAddress); return addressBook.build().toByteArray(); } catch (IOException ex) { throw new IllegalArgumentException("Not a Node Details file!", ex); diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/utils/sysfiles/serdes/SysFileSerde.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/utils/sysfiles/serdes/SysFileSerde.java index fc3aff5ddbf6..597003732f5e 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/utils/sysfiles/serdes/SysFileSerde.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/utils/sysfiles/serdes/SysFileSerde.java @@ -16,14 +16,16 @@ package com.hedera.services.bdd.suites.utils.sysfiles.serdes; +import edu.umd.cs.findbugs.annotations.Nullable; + public interface SysFileSerde { T fromRawFile(byte[] bytes); - byte[] toRawFile(T styledFile); + byte[] toRawFile(T styledFile, @Nullable String interpolatedSrcDir); String preferredFileName(); - default byte[] toValidatedRawFile(T styledFile) { - return toRawFile(styledFile); + default byte[] toValidatedRawFile(T styledFile, @Nullable String interpolatedSrcDir) { + return toRawFile(styledFile, null); } } diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/utils/sysfiles/serdes/ThrottlesJsonToGrpcBytes.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/utils/sysfiles/serdes/ThrottlesJsonToGrpcBytes.java index 8c5b2f5c1dfe..4df60dcbd0f7 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/utils/sysfiles/serdes/ThrottlesJsonToGrpcBytes.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/utils/sysfiles/serdes/ThrottlesJsonToGrpcBytes.java @@ -20,6 +20,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.google.protobuf.InvalidProtocolBufferException; import com.hederahashgraph.api.proto.java.ThrottleDefinitions; +import edu.umd.cs.findbugs.annotations.Nullable; public class ThrottlesJsonToGrpcBytes implements SysFileSerde { private static final int MINIMUM_NETWORK_SIZE = 1; @@ -51,12 +52,12 @@ public String fromRawFile(byte[] bytes) { } @Override - public byte[] toRawFile(String styledFile) { + public byte[] toRawFile(String styledFile, @Nullable String interpolatedSrcDir) { return toPojo(styledFile).toProto().toByteArray(); } @Override - public byte[] toValidatedRawFile(String styledFile) { + public byte[] toValidatedRawFile(String styledFile, @Nullable String interpolatedSrcDir) { var pojo = toPojo(styledFile); for (var bucket : pojo.getBuckets()) { bucket.asThrottleMapping(believedNetworkSize); diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/utils/sysfiles/serdes/XRatesJsonToGrpcBytes.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/utils/sysfiles/serdes/XRatesJsonToGrpcBytes.java index 4c6efe630443..f35140579fab 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/utils/sysfiles/serdes/XRatesJsonToGrpcBytes.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/utils/sysfiles/serdes/XRatesJsonToGrpcBytes.java @@ -21,6 +21,7 @@ import com.google.protobuf.InvalidProtocolBufferException; import com.hedera.services.bdd.suites.utils.sysfiles.ExchangeRatesPojo; import com.hederahashgraph.api.proto.java.ExchangeRateSet; +import edu.umd.cs.findbugs.annotations.Nullable; import java.io.IOException; public class XRatesJsonToGrpcBytes implements SysFileSerde { @@ -37,7 +38,7 @@ public String fromRawFile(byte[] bytes) { } @Override - public byte[] toRawFile(String styledFile) { + public byte[] toRawFile(String styledFile, @Nullable String interpolatedSrcDir) { try { var pojoRates = mapper.readValue(styledFile, ExchangeRatesPojo.class); return pojoRates.toProto().toByteArray(); diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/utils/validation/ValidationScenarios.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/utils/validation/ValidationScenarios.java index 6cba2b1c7f1e..220b74de7962 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/utils/validation/ValidationScenarios.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/utils/validation/ValidationScenarios.java @@ -764,7 +764,7 @@ private static ByteString appropriateContents(long fileNum) { String loc = FILES + params.getTargetNetwork() + "-" + name; try { var stylized = Files.readString(Paths.get(loc)); - return ByteString.copyFrom(serde.toRawFile(stylized)); + return ByteString.copyFrom(serde.toRawFile(stylized, null)); } catch (IOException e) { throw new IllegalStateException("Cannot read update file @ '" + loc + "'!", e); } @@ -781,7 +781,7 @@ private static HapiSpecOperation appropriateQuery(SysFilesDownScenario sys, long if (SysFilesDownScenario.COMPARE_EVAL_MODE.equals(sys.getEvalMode())) { String actualLoc = "files/actual-" + fqn; try { - byte[] expected = serde.toRawFile(readString(Paths.get(loc))); + byte[] expected = serde.toRawFile(readString(Paths.get(loc)), null); return getFileContents(fid) .payingWith(SCENARIO_PAYER_NAME) .saveReadableTo(serde::fromRawFile, actualLoc) diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/config/ConfigUtils.java b/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/config/ConfigUtils.java deleted file mode 100644 index 5e5c998e4329..000000000000 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/config/ConfigUtils.java +++ /dev/null @@ -1,190 +0,0 @@ -/* - * Copyright (C) 2021-2024 Hedera Hashgraph, LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.hedera.services.yahcli.config; - -import static com.hedera.services.bdd.spec.persistence.SpecKey.readFirstKpFromPem; -import static com.hedera.services.yahcli.output.CommonMessages.COMMON_MESSAGES; - -import com.hedera.services.bdd.spec.HapiSpec; -import com.hedera.services.bdd.spec.fees.FeesAndRatesProvider; -import com.hedera.services.bdd.spec.infrastructure.HapiApiClients; -import com.hedera.services.bdd.spec.props.MapPropertySource; -import com.hedera.services.bdd.spec.queries.HapiQueryOp; -import com.hedera.services.bdd.spec.queries.file.HapiGetFileContents; -import com.hedera.services.bdd.spec.transactions.HapiTxnOp; -import com.hedera.services.bdd.spec.utilops.CustomSpecAssert; -import com.hedera.services.bdd.suites.meta.VersionInfoSpec; -import com.hedera.services.yahcli.Yahcli; -import com.hedera.services.yahcli.suites.*; -import java.io.BufferedReader; -import java.io.File; -import java.io.IOException; -import java.io.InputStreamReader; -import java.nio.file.Paths; -import java.util.List; -import java.util.Optional; -import org.apache.logging.log4j.Level; -import org.apache.logging.log4j.LogManager; - -public class ConfigUtils { - public static String asId(String entity) { - try { - int number = Integer.parseInt(entity); - return "0.0." + number; - } catch (NumberFormatException ignore) { - } - return entity; - } - - public static boolean isLiteral(String entity) { - return entity.startsWith("0.0."); - } - - public static Optional keyFileFor(String keysLoc, String typedNum) { - return keyFileAt(keysLoc + File.separator + typedNum); - } - - public static File uncheckedKeyFileFor(String keysLoc, String typedNum) { - final var fileLoc = keysLoc + File.separator + typedNum; - final var file = keyFileAt(fileLoc); - if (file.isEmpty()) { - throw new IllegalArgumentException("No such key file " + fileLoc); - } else { - return file.get(); - } - } - - public static Optional keyFileAt(String sansExt) { - var pemFile = Paths.get(sansExt + ".pem").toFile(); - if (pemFile.exists()) { - return Optional.of(pemFile); - } - - var wordsFile = Paths.get(sansExt + ".words").toFile(); - if (wordsFile.exists()) { - return Optional.of(wordsFile); - } - - var hexedFile = Paths.get(sansExt + ".hex").toFile(); - if (hexedFile.exists()) { - return Optional.of(hexedFile); - } - - return Optional.empty(); - } - - public static Optional passFileFor(File pemFile) { - var absPath = pemFile.getAbsolutePath(); - var passFile = new File(absPath.replace(".pem", ".pass")); - return passFile.exists() ? Optional.of(passFile) : Optional.empty(); - } - - public static void ensureDir(String loc) { - File f = new File(loc); - if (!f.exists()) { - if (!f.mkdirs()) { - throw new IllegalStateException("Failed to create directory: " + f.getAbsolutePath()); - } - } - } - - public static Optional promptForPassphrase(String pemLoc, String prompt, int maxAttempts) { - var pemFile = new File(pemLoc); - String fullPrompt = prompt + ": "; - char[] passphrase; - while (maxAttempts-- > 0) { - passphrase = readCandidate(fullPrompt); - var asString = new String(passphrase); - if (unlocks(pemFile, asString)) { - return Optional.of(asString); - } else { - if (maxAttempts > 0) { - System.out.println( - "Sorry, that isn't it! (Don't worry, still " + maxAttempts + " attempts remaining.)"); - } else { - return Optional.empty(); - } - } - } - throw new AssertionError("Impossible!"); - } - - static boolean unlocks(File keyFile, String passphrase) { - try { - readFirstKpFromPem(keyFile, passphrase); - return true; - } catch (Exception ignore) { - return false; - } - } - - private static char[] readCandidate(String prompt) { - System.out.print(prompt); - System.out.flush(); - if (System.console() != null) { - return System.console().readPassword(); - } else { - var reader = new BufferedReader(new InputStreamReader(System.in)); - try { - return reader.readLine().toCharArray(); - } catch (IOException e) { - return new char[0]; - } - } - } - - public static ConfigManager configFrom(Yahcli yahcli) throws IOException { - System.out.println("Log level is " + yahcli.getLogLevel()); - setLogLevels(yahcli.getLogLevel()); - var config = ConfigManager.from(yahcli); - config.assertNoMissingDefaults(); - COMMON_MESSAGES.printGlobalInfo(config); - return config; - } - - public static void setLogLevels(Level logLevel) { - List.of( - BalanceSuite.class, - RekeySuite.class, - SysFileUploadSuite.class, - SysFileDownloadSuite.class, - SchedulesValidationSuite.class, - FreezeHelperSuite.class, - UpgradeHelperSuite.class, - CostOfEveryThingSuite.class, - MapPropertySource.class, - HapiApiClients.class, - FeesAndRatesProvider.class, - HapiQueryOp.class, - HapiTxnOp.class, - HapiGetFileContents.class, - HapiSpec.class, - VersionInfoSpec.class, - SendSuite.class, - ScheduleSuite.class, - CreateSuite.class, - SpecialFileHashSuite.class, - StakeSuite.class, - StakeSetupSuite.class, - CustomSpecAssert.class) - .forEach(cls -> setLogLevel(cls, logLevel)); - } - - private static void setLogLevel(Class cls, Level logLevel) { - ((org.apache.logging.log4j.core.Logger) LogManager.getLogger(cls)).setLevel(logLevel); - } -} diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/SchedulesValidationSuite.java b/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/SchedulesValidationSuite.java deleted file mode 100644 index 22f0b9210dc7..000000000000 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/SchedulesValidationSuite.java +++ /dev/null @@ -1,146 +0,0 @@ -/* - * Copyright (C) 2021-2024 Hedera Hashgraph, LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.hedera.services.yahcli.suites; - -import static com.hedera.services.bdd.spec.HapiSpec.customHapiSpec; -import static com.hedera.services.bdd.spec.persistence.SpecKey.adminKeyFor; -import static com.hedera.services.bdd.spec.persistence.SpecKey.submitKeyFor; -import static com.hedera.services.bdd.spec.queries.QueryVerbs.getScheduleInfo; -import static com.hedera.services.bdd.spec.queries.QueryVerbs.getTopicInfo; -import static com.hedera.services.bdd.spec.queries.QueryVerbs.getTxnRecord; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.scheduleCreate; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.scheduleDelete; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.scheduleSign; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.submitMessageTo; -import static com.hedera.services.bdd.spec.transactions.schedule.HapiScheduleCreate.correspondingScheduledTxnId; -import static com.hedera.services.bdd.spec.utilops.UtilVerbs.logIt; -import static com.hedera.services.yahcli.commands.validation.ValidationCommand.IMMUTABLE_SCHEDULE; -import static com.hedera.services.yahcli.commands.validation.ValidationCommand.MUTABLE_SCHEDULE; -import static com.hedera.services.yahcli.commands.validation.ValidationCommand.PAYER; -import static com.hedera.services.yahcli.commands.validation.ValidationCommand.SENDER; -import static com.hedera.services.yahcli.commands.validation.ValidationCommand.TOPIC; -import static com.hedera.services.yahcli.commands.validation.ValidationCommand.checkBoxed; -import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.IDENTICAL_SCHEDULE_ALREADY_CREATED; -import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.INVALID_SIGNATURE; -import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.SCHEDULE_ALREADY_DELETED; -import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.SCHEDULE_ALREADY_EXECUTED; -import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.SCHEDULE_IS_IMMUTABLE; - -import com.hedera.services.bdd.spec.HapiSpec; -import com.hedera.services.bdd.suites.HapiSuite; -import java.util.List; -import java.util.Map; -import java.util.concurrent.atomic.AtomicLong; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - -public class SchedulesValidationSuite extends HapiSuite { - private static final Logger log = LogManager.getLogger(SchedulesValidationSuite.class); - - private final Map specConfig; - - public SchedulesValidationSuite(Map specConfig) { - this.specConfig = specConfig; - } - - @Override - public List getSpecsInSuite() { - return List.of(new HapiSpec[] { - validateScheduling(), - }); - } - - private HapiSpec validateScheduling() { - String inSpecSchedule = "forImmediateExecution"; - AtomicLong seqNo = new AtomicLong(); - - return customHapiSpec("ValidateScheduling") - .withProperties(specConfig) - .given( - getScheduleInfo(MUTABLE_SCHEDULE) - .payingWith(PAYER) - .isNotExecuted() - .hasEntityMemo("When love with one another so / Inter-animates two souls") - .hasAdminKey(MUTABLE_SCHEDULE), - getScheduleInfo(IMMUTABLE_SCHEDULE) - .payingWith(PAYER) - .isNotExecuted() - .hasEntityMemo("That abler soul, which thence doth flow / Defects of" - + " loneliness controls"), - getTopicInfo(TOPIC).savingSeqNoTo(seqNo::set), - scheduleDelete(IMMUTABLE_SCHEDULE).payingWith(PAYER).hasKnownStatus(SCHEDULE_IS_IMMUTABLE), - logIt(checkBoxed("Schedule creation looks good"))) - .when( - scheduleDelete(MUTABLE_SCHEDULE) - .signedBy(PAYER) - .payingWith(PAYER) - .hasKnownStatus(INVALID_SIGNATURE), - scheduleDelete(MUTABLE_SCHEDULE) - .signedBy(PAYER, adminKeyFor(MUTABLE_SCHEDULE)) - .payingWith(PAYER), - scheduleSign(MUTABLE_SCHEDULE) - .alsoSigningWith(SENDER) - .payingWith(PAYER) - .hasKnownStatus(SCHEDULE_ALREADY_DELETED), - scheduleSign(IMMUTABLE_SCHEDULE) - .alsoSigningWith(SENDER) - .savingScheduledTxnId() - .payingWith(PAYER), - scheduleCreate( - inSpecSchedule, - submitMessageTo(TOPIC).message("We then who are this new soul know")) - .payingWith(PAYER) - .adminKey(adminKeyFor(MUTABLE_SCHEDULE)) - .alsoSigningWith(submitKeyFor(TOPIC)) - .withEntityMemo("Of what we are composed and made") - .savingExpectedScheduledTxnId(), - scheduleCreate( - inSpecSchedule, - submitMessageTo(TOPIC).message("We then who are this new soul know")) - .payingWith(PAYER) - .designatingPayer(PAYER) - .adminKey(adminKeyFor(MUTABLE_SCHEDULE)) - .alsoSigningWith(submitKeyFor(TOPIC)) - .withEntityMemo("Of what we are composed and made") - .hasKnownStatus(IDENTICAL_SCHEDULE_ALREADY_CREATED), - scheduleDelete(inSpecSchedule) - .signedBy(PAYER, adminKeyFor(MUTABLE_SCHEDULE)) - .payingWith(PAYER) - .hasKnownStatus(SCHEDULE_ALREADY_EXECUTED), - logIt(checkBoxed("Schedule management and execution look good"))) - .then( - getTopicInfo(TOPIC) - .payingWith(PAYER) - .hasSeqNo(() -> seqNo.get() + 1) - .logged(), - getScheduleInfo(inSpecSchedule).payingWith(PAYER).isExecuted(), - getTxnRecord(correspondingScheduledTxnId(IMMUTABLE_SCHEDULE)) - .payingWith(PAYER) - .logged() - .assertingNothingAboutHashes(), - getTxnRecord(correspondingScheduledTxnId(inSpecSchedule)) - .payingWith(PAYER) - .logged() - .assertingNothingAboutHashes(), - logIt(checkBoxed("Schedule records look good"))); - } - - @Override - protected Logger getResultsLogger() { - return log; - } -} diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/TokenValidationSuite.java b/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/TokenValidationSuite.java deleted file mode 100644 index 8c03ac2cd984..000000000000 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/TokenValidationSuite.java +++ /dev/null @@ -1,127 +0,0 @@ -/* - * Copyright (C) 2021-2024 Hedera Hashgraph, LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.hedera.services.yahcli.suites; - -import static com.hedera.services.bdd.spec.HapiSpec.customHapiSpec; -import static com.hedera.services.bdd.spec.queries.QueryVerbs.getAccountBalance; -import static com.hedera.services.bdd.spec.queries.QueryVerbs.getTokenInfo; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.burnToken; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.cryptoTransfer; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.grantTokenKyc; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.mintToken; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.tokenAssociate; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.tokenDissociate; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.tokenFreeze; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.tokenUnfreeze; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.wipeTokenAccount; -import static com.hedera.services.bdd.spec.transactions.token.TokenMovement.moving; -import static com.hedera.services.bdd.spec.utilops.UtilVerbs.logIt; -import static com.hedera.services.bdd.spec.utilops.UtilVerbs.sourcing; -import static com.hedera.services.yahcli.commands.validation.ValidationCommand.PAYER; -import static com.hedera.services.yahcli.commands.validation.ValidationCommand.RECEIVER; -import static com.hedera.services.yahcli.commands.validation.ValidationCommand.TOKEN; -import static com.hedera.services.yahcli.commands.validation.ValidationCommand.TREASURY; -import static com.hedera.services.yahcli.commands.validation.ValidationCommand.checkBoxed; -import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.ACCOUNT_FROZEN_FOR_TOKEN; -import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.ACCOUNT_KYC_NOT_GRANTED_FOR_TOKEN; -import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.SUCCESS; -import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.TOKEN_NOT_ASSOCIATED_TO_ACCOUNT; -import static com.hederahashgraph.api.proto.java.TokenFreezeStatus.Unfrozen; -import static com.hederahashgraph.api.proto.java.TokenKycStatus.Revoked; - -import com.hedera.services.bdd.spec.HapiSpec; -import com.hedera.services.bdd.suites.HapiSuite; -import java.util.List; -import java.util.Map; -import java.util.concurrent.atomic.AtomicLong; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - -public class TokenValidationSuite extends HapiSuite { - private static final Logger log = LogManager.getLogger(TokenValidationSuite.class); - - private final Map specConfig; - - public TokenValidationSuite(Map specConfig) { - this.specConfig = specConfig; - } - - @Override - public List getSpecsInSuite() { - return List.of(new HapiSpec[] { - validateTokens(), - }); - } - - private HapiSpec validateTokens() { - AtomicLong initialTreasuryBalance = new AtomicLong(); - return customHapiSpec("validateTokens") - .withProperties(specConfig) - .given( - getTokenInfo(TOKEN) - .payingWith(PAYER) - .hasName("Hedera Post-Update Validation Token") - .hasSymbol("TACOCAT") - .hasTreasury(TREASURY) - .hasFreezeDefault(Unfrozen) - .hasKycDefault(Revoked) - .hasWipeKey(TOKEN) - .hasSupplyKey(TOKEN) - .hasFreezeKey(TOKEN) - .hasAdminKey(TOKEN) - .hasKycKey(TOKEN), - getAccountBalance(TREASURY) - .payingWith(PAYER) - .savingTokenBalance(TOKEN, initialTreasuryBalance::set), - logIt(checkBoxed("Token entities look good"))) - .when( - tokenDissociate(RECEIVER, TOKEN) - .payingWith(PAYER) - .hasKnownStatusFrom(TOKEN_NOT_ASSOCIATED_TO_ACCOUNT, SUCCESS), - tokenAssociate(RECEIVER, TOKEN).payingWith(PAYER), - tokenFreeze(TOKEN, RECEIVER).payingWith(PAYER), - cryptoTransfer(moving(1, TOKEN).between(TREASURY, RECEIVER)) - .payingWith(PAYER) - .hasKnownStatus(ACCOUNT_FROZEN_FOR_TOKEN), - tokenUnfreeze(TOKEN, RECEIVER).payingWith(PAYER), - cryptoTransfer(moving(1, TOKEN).between(TREASURY, RECEIVER)) - .payingWith(PAYER) - .hasKnownStatus(ACCOUNT_KYC_NOT_GRANTED_FOR_TOKEN), - grantTokenKyc(TOKEN, RECEIVER).payingWith(PAYER), - mintToken(TOKEN, 2).payingWith(PAYER), - cryptoTransfer(moving(1, TOKEN).between(TREASURY, RECEIVER)) - .payingWith(PAYER), - logIt(checkBoxed("Token management looks good"))) - .then( - getAccountBalance(RECEIVER).payingWith(PAYER).hasTokenBalance(TOKEN, 1L), - sourcing(() -> getAccountBalance(TREASURY) - .payingWith(PAYER) - .hasTokenBalance(TOKEN, 1L + initialTreasuryBalance.get())), - wipeTokenAccount(TOKEN, RECEIVER, 1).payingWith(PAYER), - burnToken(TOKEN, 1L).payingWith(PAYER), - getAccountBalance(RECEIVER).payingWith(PAYER).hasTokenBalance(TOKEN, 0L), - sourcing(() -> getAccountBalance(TREASURY) - .payingWith(PAYER) - .hasTokenBalance(TOKEN, initialTreasuryBalance.get())), - logIt(checkBoxed("Token balance changes looks good"))); - } - - @Override - protected Logger getResultsLogger() { - return log; - } -} diff --git a/hedera-node/test-clients/src/main/java/module-info.java b/hedera-node/test-clients/src/main/java/module-info.java index 7b6b195b5469..3953918ef441 100644 --- a/hedera-node/test-clients/src/main/java/module-info.java +++ b/hedera-node/test-clients/src/main/java/module-info.java @@ -1,27 +1,59 @@ module com.hedera.node.test.clients { exports com.hedera.services.bdd.spec.utilops.records; + exports com.hedera.services.bdd.spec.utilops.inventory; + exports com.hedera.services.bdd.suites; + exports com.hedera.services.bdd.suites.utils.sysfiles.serdes; + exports com.hedera.services.bdd.spec; + exports com.hedera.services.bdd.spec.persistence; + exports com.hedera.services.bdd.spec.infrastructure; + exports com.hedera.services.bdd.spec.props; + exports com.hedera.services.bdd.spec.queries; + exports com.hedera.services.bdd.spec.queries.file; + exports com.hedera.services.bdd.spec.queries.meta; + exports com.hedera.services.bdd.spec.queries.token; + exports com.hedera.services.bdd.spec.queries.crypto; + exports com.hedera.services.bdd.spec.queries.schedule; + exports com.hedera.services.bdd.spec.queries.consensus; + exports com.hedera.services.bdd.spec.queries.contract; + exports com.hedera.services.bdd.spec.transactions; + exports com.hedera.services.bdd.spec.utilops; + exports com.hedera.services.bdd.suites.meta; + exports com.hedera.services.bdd.spec.keys.deterministic; + exports com.hedera.services.bdd.spec.transactions.file; + exports com.hedera.services.bdd.spec.transactions.token; + exports com.hedera.services.bdd.spec.keys; + exports com.hedera.services.bdd.spec.transactions.crypto; + exports com.hedera.services.bdd.spec.transactions.schedule; + exports com.hedera.services.bdd.spec.transactions.consensus; + exports com.hedera.services.bdd.spec.transactions.contract; + exports com.hedera.services.bdd.spec.transactions.system; + exports com.hedera.services.bdd.suites.crypto.staking; + exports com.hedera.services.bdd.spec.fees; + requires transitive com.hedera.node.app.hapi.fees; + requires transitive com.hedera.node.app.hapi.utils; requires transitive com.hedera.node.hapi; requires transitive com.fasterxml.jackson.annotation; + requires transitive com.google.common; requires transitive com.google.protobuf; requires transitive com.swirlds.common; + requires transitive headlong; requires transitive info.picocli; + requires transitive io.grpc; + requires transitive net.i2p.crypto.eddsa; requires transitive org.apache.commons.io; + requires transitive org.apache.logging.log4j; requires transitive org.junit.jupiter.api; requires transitive org.junit.platform.commons; requires transitive org.junit.platform.engine; requires transitive org.testcontainers; requires transitive org.yaml.snakeyaml; - requires com.hedera.node.app.hapi.fees; - requires com.hedera.node.app.hapi.utils; - requires com.hedera.node.app.service.contract.impl; requires com.hedera.node.app.service.evm; requires com.hedera.node.app; requires com.hedera.node.config; requires com.fasterxml.jackson.core; requires com.fasterxml.jackson.databind; requires com.github.docker.java.api; - requires com.google.common; requires com.hedera.pbj.runtime; requires com.swirlds.base; requires com.swirlds.config.api; @@ -29,14 +61,10 @@ requires com.swirlds.platform.core; requires grpc.netty; requires grpc.stub; - requires headlong; - requires io.grpc; requires io.netty.handler; requires java.net.http; - requires net.i2p.crypto.eddsa; requires org.apache.commons.lang3; requires org.apache.logging.log4j.core; - requires org.apache.logging.log4j; requires org.bouncycastle.provider; requires org.hyperledger.besu.datatypes; requires org.hyperledger.besu.evm; diff --git a/hedera-node/test-clients/src/main/resource/contract/contracts/ConsValueEthPrecompile/ConsValueEthPrecompile.bin b/hedera-node/test-clients/src/main/resource/contract/contracts/ConsValueEthPrecompile/ConsValueEthPrecompile.bin new file mode 100644 index 000000000000..3294ec887680 --- /dev/null +++ b/hedera-node/test-clients/src/main/resource/contract/contracts/ConsValueEthPrecompile/ConsValueEthPrecompile.bin @@ -0,0 +1 @@ +60806040526000600273ffffffffffffffffffffffffffffffffffffffff166001604051602a9060a9565b60006040518083038185875af1925050503d80600081146065576040519150601f19603f3d011682016040523d82523d6000602084013e606a565b606091505b5050905080607757600080fd5b5060bc565b600081905092915050565b50565b60006095600083607c565b9150609e826087565b600082019050919050565b600060b282608a565b9150819050919050565b603f806100ca6000396000f3fe6080604052600080fdfea26469706673582212202e3dbdaadc75b74c9ba208a4c6c96908ac667757b0d65fd655aa27a769943a0f64736f6c63430008100033 \ No newline at end of file diff --git a/hedera-node/test-clients/src/main/resource/contract/contracts/ConsValueEthPrecompile/ConsValueEthPrecompile.json b/hedera-node/test-clients/src/main/resource/contract/contracts/ConsValueEthPrecompile/ConsValueEthPrecompile.json new file mode 100644 index 000000000000..1e0e4702cb5d --- /dev/null +++ b/hedera-node/test-clients/src/main/resource/contract/contracts/ConsValueEthPrecompile/ConsValueEthPrecompile.json @@ -0,0 +1 @@ +[{"inputs":[],"stateMutability":"payable","type":"constructor"}] \ No newline at end of file diff --git a/hedera-node/test-clients/src/main/resource/contract/contracts/ConsValueEthPrecompile/ConsValueEthPrecompile.sol b/hedera-node/test-clients/src/main/resource/contract/contracts/ConsValueEthPrecompile/ConsValueEthPrecompile.sol new file mode 100644 index 000000000000..2b05a7ea01d8 --- /dev/null +++ b/hedera-node/test-clients/src/main/resource/contract/contracts/ConsValueEthPrecompile/ConsValueEthPrecompile.sol @@ -0,0 +1,10 @@ +// SPDX-License-Identifier: Apache-2.0 +pragma solidity ^0.8.0; + +contract ConsValueEthPrecompile { + constructor() payable { + (bool success,) = address(0x2).call{value: 1}(""); + + require(success); + } +} diff --git a/hedera-node/test-clients/src/main/resource/contract/contracts/ConsValueSysContract/ConsValueSysContract.bin b/hedera-node/test-clients/src/main/resource/contract/contracts/ConsValueSysContract/ConsValueSysContract.bin new file mode 100644 index 000000000000..095553eda2ae --- /dev/null +++ b/hedera-node/test-clients/src/main/resource/contract/contracts/ConsValueSysContract/ConsValueSysContract.bin @@ -0,0 +1 @@ +6080604052600061016773ffffffffffffffffffffffffffffffffffffffff166001604051602b9060aa565b60006040518083038185875af1925050503d80600081146066576040519150601f19603f3d011682016040523d82523d6000602084013e606b565b606091505b5050905080607857600080fd5b5060bd565b600081905092915050565b50565b60006096600083607d565b9150609f826088565b600082019050919050565b600060b382608b565b9150819050919050565b603f806100cb6000396000f3fe6080604052600080fdfea2646970667358221220c8954bc418cec31160f47872a782f65cf40e0f0489c4b1977afcfa0caaf0628b64736f6c63430008100033 \ No newline at end of file diff --git a/hedera-node/test-clients/src/main/resource/contract/contracts/ConsValueSysContract/ConsValueSysContract.json b/hedera-node/test-clients/src/main/resource/contract/contracts/ConsValueSysContract/ConsValueSysContract.json new file mode 100644 index 000000000000..1e0e4702cb5d --- /dev/null +++ b/hedera-node/test-clients/src/main/resource/contract/contracts/ConsValueSysContract/ConsValueSysContract.json @@ -0,0 +1 @@ +[{"inputs":[],"stateMutability":"payable","type":"constructor"}] \ No newline at end of file diff --git a/hedera-node/test-clients/src/main/resource/contract/contracts/ConsValueSysContract/ConsValueSysContract.sol b/hedera-node/test-clients/src/main/resource/contract/contracts/ConsValueSysContract/ConsValueSysContract.sol new file mode 100644 index 000000000000..c09f264a8227 --- /dev/null +++ b/hedera-node/test-clients/src/main/resource/contract/contracts/ConsValueSysContract/ConsValueSysContract.sol @@ -0,0 +1,10 @@ +// SPDX-License-Identifier: Apache-2.0 +pragma solidity ^0.8.0; + +contract ConsValueSysContract { + constructor() payable { + (bool success,) = address(0x167).call{value: 1}(""); + + require(success); + } +} diff --git a/hedera-node/test-clients/src/main/resource/contract/contracts/CryptoTransfer/CryptoTransfer.bin b/hedera-node/test-clients/src/main/resource/contract/contracts/CryptoTransfer/CryptoTransfer.bin index 2b833ca2f8bd..94491d7e662b 100644 --- a/hedera-node/test-clients/src/main/resource/contract/contracts/CryptoTransfer/CryptoTransfer.bin +++ b/hedera-node/test-clients/src/main/resource/contract/contracts/CryptoTransfer/CryptoTransfer.bin @@ -1 +1 @@ -608060405234801561001057600080fd5b50610da7806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80630ed072761461003b5780637c41ad2c14610057575b600080fd5b6100556004803603810190610050919061080a565b610087565b005b610071600480360381019061006c9190610853565b6100de565b60405161007e9190610899565b60405180910390f35b6000610092826101f3565b9050601660030b81146100da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100d190610911565b60405180910390fd5b5050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16637c41ad2c60e01b856040516024016101159190610940565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161017f91906109cc565b6000604051808303816000865af19150503d80600081146101bc576040519150601f19603f3d011682016040523d82523d6000602084013e6101c1565b606091505b5091509150816101d25760156101e7565b808060200190518101906101e69190610a1c565b5b60030b92505050919050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff1663189a554c60e01b8560405160240161022a9190610d4f565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161029491906109cc565b6000604051808303816000865af19150503d80600081146102d1576040519150601f19603f3d011682016040523d82523d6000602084013e6102d6565b606091505b5091509150816102e75760156102fc565b808060200190518101906102fb9190610a1c565b5b60030b92505050919050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61036a82610321565b810181811067ffffffffffffffff8211171561038957610388610332565b5b80604052505050565b600061039c610308565b90506103a88282610361565b919050565b600067ffffffffffffffff8211156103c8576103c7610332565b5b602082029050602081019050919050565b600080fd5b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610413826103e8565b9050919050565b61042381610408565b811461042e57600080fd5b50565b6000813590506104408161041a565b92915050565b600067ffffffffffffffff82111561046157610460610332565b5b602082029050602081019050919050565b60008160070b9050919050565b61048881610472565b811461049357600080fd5b50565b6000813590506104a58161047f565b92915050565b6000604082840312156104c1576104c06103de565b5b6104cb6040610392565b905060006104db84828501610431565b60008301525060206104ef84828501610496565b60208301525092915050565b600061050e61050984610446565b610392565b90508083825260208201905060408402830185811115610531576105306103d9565b5b835b8181101561055a578061054688826104ab565b845260208401935050604081019050610533565b5050509392505050565b600082601f8301126105795761057861031c565b5b81356105898482602086016104fb565b91505092915050565b600067ffffffffffffffff8211156105ad576105ac610332565b5b602082029050602081019050919050565b6000606082840312156105d4576105d36103de565b5b6105de6060610392565b905060006105ee84828501610431565b600083015250602061060284828501610431565b602083015250604061061684828501610496565b60408301525092915050565b600061063561063084610592565b610392565b90508083825260208201905060608402830185811115610658576106576103d9565b5b835b81811015610681578061066d88826105be565b84526020840193505060608101905061065a565b5050509392505050565b600082601f8301126106a05761069f61031c565b5b81356106b0848260208601610622565b91505092915050565b6000606082840312156106cf576106ce6103de565b5b6106d96060610392565b905060006106e984828501610431565b600083015250602082013567ffffffffffffffff81111561070d5761070c6103e3565b5b61071984828501610564565b602083015250604082013567ffffffffffffffff81111561073d5761073c6103e3565b5b6107498482850161068b565b60408301525092915050565b6000610768610763846103ad565b610392565b9050808382526020820190506020840283018581111561078b5761078a6103d9565b5b835b818110156107d257803567ffffffffffffffff8111156107b0576107af61031c565b5b8086016107bd89826106b9565b8552602085019450505060208101905061078d565b5050509392505050565b600082601f8301126107f1576107f061031c565b5b8135610801848260208601610755565b91505092915050565b6000602082840312156108205761081f610312565b5b600082013567ffffffffffffffff81111561083e5761083d610317565b5b61084a848285016107dc565b91505092915050565b60006020828403121561086957610868610312565b5b600061087784828501610431565b91505092915050565b6000819050919050565b61089381610880565b82525050565b60006020820190506108ae600083018461088a565b92915050565b600082825260208201905092915050565b7f43727970746f205472616e73666572204661696c656400000000000000000000600082015250565b60006108fb6016836108b4565b9150610906826108c5565b602082019050919050565b6000602082019050818103600083015261092a816108ee565b9050919050565b61093a81610408565b82525050565b60006020820190506109556000830184610931565b92915050565b600081519050919050565b600081905092915050565b60005b8381101561098f578082015181840152602081019050610974565b60008484015250505050565b60006109a68261095b565b6109b08185610966565b93506109c0818560208601610971565b80840191505092915050565b60006109d8828461099b565b915081905092915050565b60008160030b9050919050565b6109f9816109e3565b8114610a0457600080fd5b50565b600081519050610a16816109f0565b92915050565b600060208284031215610a3257610a31610312565b5b6000610a4084828501610a07565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b610a7e81610408565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b610ab981610472565b82525050565b604082016000820151610ad56000850182610a75565b506020820151610ae86020850182610ab0565b50505050565b6000610afa8383610abf565b60408301905092915050565b6000602082019050919050565b6000610b1e82610a84565b610b288185610a8f565b9350610b3383610aa0565b8060005b83811015610b64578151610b4b8882610aee565b9750610b5683610b06565b925050600181019050610b37565b5085935050505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b606082016000820151610bb36000850182610a75565b506020820151610bc66020850182610a75565b506040820151610bd96040850182610ab0565b50505050565b6000610beb8383610b9d565b60608301905092915050565b6000602082019050919050565b6000610c0f82610b71565b610c198185610b7c565b9350610c2483610b8d565b8060005b83811015610c55578151610c3c8882610bdf565b9750610c4783610bf7565b925050600181019050610c28565b5085935050505092915050565b6000606083016000830151610c7a6000860182610a75565b5060208301518482036020860152610c928282610b13565b91505060408301518482036040860152610cac8282610c04565b9150508091505092915050565b6000610cc58383610c62565b905092915050565b6000602082019050919050565b6000610ce582610a49565b610cef8185610a54565b935083602082028501610d0185610a65565b8060005b85811015610d3d5784840389528151610d1e8582610cb9565b9450610d2983610ccd565b925060208a01995050600181019050610d05565b50829750879550505050505092915050565b60006020820190508181036000830152610d698184610cda565b90509291505056fea264697066735822122018291e8f06bf7e3c3778a20e068aef44028185d28ed5d2ae733143b588f7616064736f6c63430008100033 \ No newline at end of file +608060405261111f806100115f395ff3fe608060405260043610610054575f3560e01c80630ed0727614610058578063636e082b1461008057806374be48061461009c5780637c41ad2c146100b8578063830c29ae146100f4578063f5daadc214610110575b5f80fd5b348015610063575f80fd5b5061007e60048036038101906100799190610a43565b610138565b005b61009a60048036038101906100959190610ac5565b61018e565b005b6100b660048036038101906100b19190610ac5565b6101d5565b005b3480156100c3575f80fd5b506100de60048036038101906100d99190610af0565b610250565b6040516100eb9190610b33565b60405180910390f35b61010e60048036038101906101099190610ac5565b61035f565b005b34801561011b575f80fd5b5061013660048036038101906101319190610b7f565b61040e565b005b5f61014282610456565b9050601660030b811461018a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018190610c17565b60405180910390fd5b5050565b8073ffffffffffffffffffffffffffffffffffffffff166108fc3490811502906040515f60405180830381858888f193505050501580156101d1573d5f803e3d5ffd5b5050565b5f8173ffffffffffffffffffffffffffffffffffffffff166108fc3490811502906040515f60405180830381858888f1935050505090508061024c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161024390610c7f565b60405180910390fd5b5050565b5f805f61016773ffffffffffffffffffffffffffffffffffffffff16637c41ad2c60e01b856040516024016102859190610cac565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516102ef9190610d31565b5f604051808303815f865af19150503d805f8114610328576040519150601f19603f3d011682016040523d82523d5f602084013e61032d565b606091505b50915091508161033e576015610353565b808060200190518101906103529190610d7d565b5b60030b92505050919050565b5f808273ffffffffffffffffffffffffffffffffffffffff163460405161038590610dcb565b5f6040518083038185875af1925050503d805f81146103bf576040519150601f19603f3d011682016040523d82523d5f602084013e6103c4565b606091505b509150915081610409576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040090610c7f565b60405180910390fd5b505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015610451573d5f803e3d5ffd5b505050565b5f805f61016773ffffffffffffffffffffffffffffffffffffffff1663189a554c60e01b8560405160240161048b91906110c9565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516104f59190610d31565b5f604051808303815f865af19150503d805f811461052e576040519150601f19603f3d011682016040523d82523d5f602084013e610533565b606091505b509150915081610544576015610559565b808060200190518101906105589190610d7d565b5b60030b92505050919050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6105c08261057a565b810181811067ffffffffffffffff821117156105df576105de61058a565b5b80604052505050565b5f6105f1610565565b90506105fd82826105b7565b919050565b5f67ffffffffffffffff82111561061c5761061b61058a565b5b602082029050602081019050919050565b5f80fd5b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61066282610639565b9050919050565b61067281610658565b811461067c575f80fd5b50565b5f8135905061068d81610669565b92915050565b5f67ffffffffffffffff8211156106ad576106ac61058a565b5b602082029050602081019050919050565b5f8160070b9050919050565b6106d3816106be565b81146106dd575f80fd5b50565b5f813590506106ee816106ca565b92915050565b5f6040828403121561070957610708610631565b5b61071360406105e8565b90505f6107228482850161067f565b5f830152506020610735848285016106e0565b60208301525092915050565b5f61075361074e84610693565b6105e8565b905080838252602082019050604084028301858111156107765761077561062d565b5b835b8181101561079f578061078b88826106f4565b845260208401935050604081019050610778565b5050509392505050565b5f82601f8301126107bd576107bc610576565b5b81356107cd848260208601610741565b91505092915050565b5f67ffffffffffffffff8211156107f0576107ef61058a565b5b602082029050602081019050919050565b5f6060828403121561081657610815610631565b5b61082060606105e8565b90505f61082f8482850161067f565b5f8301525060206108428482850161067f565b6020830152506040610856848285016106e0565b60408301525092915050565b5f61087461086f846107d6565b6105e8565b905080838252602082019050606084028301858111156108975761089661062d565b5b835b818110156108c057806108ac8882610801565b845260208401935050606081019050610899565b5050509392505050565b5f82601f8301126108de576108dd610576565b5b81356108ee848260208601610862565b91505092915050565b5f6060828403121561090c5761090b610631565b5b61091660606105e8565b90505f6109258482850161067f565b5f83015250602082013567ffffffffffffffff81111561094857610947610635565b5b610954848285016107a9565b602083015250604082013567ffffffffffffffff81111561097857610977610635565b5b610984848285016108ca565b60408301525092915050565b5f6109a261099d84610602565b6105e8565b905080838252602082019050602084028301858111156109c5576109c461062d565b5b835b81811015610a0c57803567ffffffffffffffff8111156109ea576109e9610576565b5b8086016109f789826108f7565b855260208501945050506020810190506109c7565b5050509392505050565b5f82601f830112610a2a57610a29610576565b5b8135610a3a848260208601610990565b91505092915050565b5f60208284031215610a5857610a5761056e565b5b5f82013567ffffffffffffffff811115610a7557610a74610572565b5b610a8184828501610a16565b91505092915050565b5f610a9482610639565b9050919050565b610aa481610a8a565b8114610aae575f80fd5b50565b5f81359050610abf81610a9b565b92915050565b5f60208284031215610ada57610ad961056e565b5b5f610ae784828501610ab1565b91505092915050565b5f60208284031215610b0557610b0461056e565b5b5f610b128482850161067f565b91505092915050565b5f819050919050565b610b2d81610b1b565b82525050565b5f602082019050610b465f830184610b24565b92915050565b5f819050919050565b610b5e81610b4c565b8114610b68575f80fd5b50565b5f81359050610b7981610b55565b92915050565b5f8060408385031215610b9557610b9461056e565b5b5f610ba285828601610ab1565b9250506020610bb385828601610b6b565b9150509250929050565b5f82825260208201905092915050565b7f43727970746f205472616e73666572204661696c6564000000000000000000005f82015250565b5f610c01601683610bbd565b9150610c0c82610bcd565b602082019050919050565b5f6020820190508181035f830152610c2e81610bf5565b9050919050565b7f4661696c656420746f2073656e642045746865720000000000000000000000005f82015250565b5f610c69601483610bbd565b9150610c7482610c35565b602082019050919050565b5f6020820190508181035f830152610c9681610c5d565b9050919050565b610ca681610658565b82525050565b5f602082019050610cbf5f830184610c9d565b92915050565b5f81519050919050565b5f81905092915050565b5f5b83811015610cf6578082015181840152602081019050610cdb565b5f8484015250505050565b5f610d0b82610cc5565b610d158185610ccf565b9350610d25818560208601610cd9565b80840191505092915050565b5f610d3c8284610d01565b915081905092915050565b5f8160030b9050919050565b610d5c81610d47565b8114610d66575f80fd5b50565b5f81519050610d7781610d53565b92915050565b5f60208284031215610d9257610d9161056e565b5b5f610d9f84828501610d69565b91505092915050565b50565b5f610db65f83610ccf565b9150610dc182610da8565b5f82019050919050565b5f610dd582610dab565b9150819050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b610e1181610658565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b610e49816106be565b82525050565b604082015f820151610e635f850182610e08565b506020820151610e766020850182610e40565b50505050565b5f610e878383610e4f565b60408301905092915050565b5f602082019050919050565b5f610ea982610e17565b610eb38185610e21565b9350610ebe83610e31565b805f5b83811015610eee578151610ed58882610e7c565b9750610ee083610e93565b925050600181019050610ec1565b5085935050505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b606082015f820151610f385f850182610e08565b506020820151610f4b6020850182610e08565b506040820151610f5e6040850182610e40565b50505050565b5f610f6f8383610f24565b60608301905092915050565b5f602082019050919050565b5f610f9182610efb565b610f9b8185610f05565b9350610fa683610f15565b805f5b83811015610fd6578151610fbd8882610f64565b9750610fc883610f7b565b925050600181019050610fa9565b5085935050505092915050565b5f606083015f830151610ff85f860182610e08565b50602083015184820360208601526110108282610e9f565b9150506040830151848203604086015261102a8282610f87565b9150508091505092915050565b5f6110428383610fe3565b905092915050565b5f602082019050919050565b5f61106082610ddf565b61106a8185610de9565b93508360208202850161107c85610df9565b805f5b858110156110b757848403895281516110988582611037565b94506110a38361104a565b925060208a0199505060018101905061107f565b50829750879550505050505092915050565b5f6020820190508181035f8301526110e18184611056565b90509291505056fea264697066735822122027ad6ff4c8ec2fefc01be9fb723594bdd035f08f626d7946b8bf8af11d8968cf64736f6c63430008180033 \ No newline at end of file diff --git a/hedera-node/test-clients/src/main/resource/contract/contracts/CryptoTransfer/CryptoTransfer.json b/hedera-node/test-clients/src/main/resource/contract/contracts/CryptoTransfer/CryptoTransfer.json index 14a4a0b16f4d..de709e3db5ea 100644 --- a/hedera-node/test-clients/src/main/resource/contract/contracts/CryptoTransfer/CryptoTransfer.json +++ b/hedera-node/test-clients/src/main/resource/contract/contracts/CryptoTransfer/CryptoTransfer.json @@ -1,9 +1,85 @@ [ { "inputs": [], - "stateMutability": "nonpayable", + "stateMutability": "payable", "type": "constructor" }, + { + "inputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + } + ], + "name": "pauseToken", + "outputs": [ + { + "internalType": "int256", + "name": "responseCode", + "type": "int256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address payable", + "name": "_to", + "type": "address" + } + ], + "name": "sendViaCall", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address payable", + "name": "_to", + "type": "address" + } + ], + "name": "sendViaSend", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address payable", + "name": "_to", + "type": "address" + } + ], + "name": "sendViaTransfer", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address payable", + "name": "_to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "sendViaTransferWithAmount", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { diff --git a/hedera-node/test-clients/src/main/resource/contract/contracts/CryptoTransfer/CryptoTransfer.sol b/hedera-node/test-clients/src/main/resource/contract/contracts/CryptoTransfer/CryptoTransfer.sol index 35c0e08164eb..184abb2ca14d 100644 --- a/hedera-node/test-clients/src/main/resource/contract/contracts/CryptoTransfer/CryptoTransfer.sol +++ b/hedera-node/test-clients/src/main/resource/contract/contracts/CryptoTransfer/CryptoTransfer.sol @@ -6,7 +6,7 @@ import "./HederaTokenService.sol"; contract CryptoTransfer is HederaTokenService { - constructor() public { + constructor() public payable { } function transferMultipleTokens(IHederaTokenService.TokenTransferList[] memory tokenTransfers) external { @@ -15,4 +15,22 @@ contract CryptoTransfer is HederaTokenService { revert ("Crypto Transfer Failed"); } } + + function sendViaTransferWithAmount(address payable _to, uint256 amount) public { + _to.transfer(amount); + } + + function sendViaTransfer(address payable _to) public payable { + _to.transfer(msg.value); + } + + function sendViaSend(address payable _to) public payable { + bool sent = _to.send(msg.value); + require(sent, "Failed to send Ether"); + } + + function sendViaCall(address payable _to) public payable { + (bool sent, bytes memory data) = _to.call{value: msg.value}(""); + require(sent, "Failed to send Ether"); + } } \ No newline at end of file diff --git a/hedera-node/test-clients/src/main/resource/contract/contracts/ReverterConstructor/ReverterConstructor.bin b/hedera-node/test-clients/src/main/resource/contract/contracts/ReverterConstructor/ReverterConstructor.bin new file mode 100644 index 000000000000..77d04f83b3a6 --- /dev/null +++ b/hedera-node/test-clients/src/main/resource/contract/contracts/ReverterConstructor/ReverterConstructor.bin @@ -0,0 +1 @@ +6080604052348015600e575f80fd5b5f80fdfe \ No newline at end of file diff --git a/hedera-node/test-clients/src/main/resource/contract/contracts/ReverterConstructor/ReverterConstructor.json b/hedera-node/test-clients/src/main/resource/contract/contracts/ReverterConstructor/ReverterConstructor.json new file mode 100644 index 000000000000..b9a2575bb60b --- /dev/null +++ b/hedera-node/test-clients/src/main/resource/contract/contracts/ReverterConstructor/ReverterConstructor.json @@ -0,0 +1,7 @@ +[ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + } +] diff --git a/hedera-node/test-clients/src/main/resource/contract/contracts/ReverterConstructor/ReverterConstructor.sol b/hedera-node/test-clients/src/main/resource/contract/contracts/ReverterConstructor/ReverterConstructor.sol new file mode 100644 index 000000000000..39d920dd31f8 --- /dev/null +++ b/hedera-node/test-clients/src/main/resource/contract/contracts/ReverterConstructor/ReverterConstructor.sol @@ -0,0 +1,8 @@ +// SPDX-License-Identifier: Apache-2.0 +pragma solidity ^0.8.20; + +contract ReverterConstructor { + constructor() { + revert(); + } +} diff --git a/hedera-node/test-clients/src/main/resource/contract/contracts/ReverterConstructorTransfer/ReverterConstructorTransfer.bin b/hedera-node/test-clients/src/main/resource/contract/contracts/ReverterConstructorTransfer/ReverterConstructorTransfer.bin new file mode 100644 index 000000000000..1327b73d5de1 --- /dev/null +++ b/hedera-node/test-clients/src/main/resource/contract/contracts/ReverterConstructorTransfer/ReverterConstructorTransfer.bin @@ -0,0 +1 @@ +60806040523373ffffffffffffffffffffffffffffffffffffffff166108fc600190811502906040515f60405180830381858888f193505050501580156047573d5f803e3d5ffd5b50603e8060535f395ff3fe60806040525f80fdfea2646970667358221220f7a4b5b518a591095ab2a37161bfdd9bde65cfb7d6b46b636b9f36c66446c72364736f6c63430008180033 \ No newline at end of file diff --git a/hedera-node/test-clients/src/main/resource/contract/contracts/ReverterConstructorTransfer/ReverterConstructorTransfer.json b/hedera-node/test-clients/src/main/resource/contract/contracts/ReverterConstructorTransfer/ReverterConstructorTransfer.json new file mode 100644 index 000000000000..5fa856267a8b --- /dev/null +++ b/hedera-node/test-clients/src/main/resource/contract/contracts/ReverterConstructorTransfer/ReverterConstructorTransfer.json @@ -0,0 +1,7 @@ +[ + { + "inputs": [], + "stateMutability": "payable", + "type": "constructor" + } +] \ No newline at end of file diff --git a/hedera-node/test-clients/src/main/resource/contract/contracts/ReverterConstructorTransfer/ReverterConstructorTransfer.sol b/hedera-node/test-clients/src/main/resource/contract/contracts/ReverterConstructorTransfer/ReverterConstructorTransfer.sol new file mode 100644 index 000000000000..4d3c179d60ee --- /dev/null +++ b/hedera-node/test-clients/src/main/resource/contract/contracts/ReverterConstructorTransfer/ReverterConstructorTransfer.sol @@ -0,0 +1,8 @@ +// SPDX-License-Identifier: Apache-2.0 +pragma solidity ^0.8.20; + +contract ReverterConstructorTransfer { + constructor() payable { + payable(msg.sender).transfer(1); + } +} diff --git a/hedera-node/test-clients/src/main/resource/spec-default.properties b/hedera-node/test-clients/src/main/resource/spec-default.properties index 19469637b562..34521826ed66 100644 --- a/hedera-node/test-clients/src/main/resource/spec-default.properties +++ b/hedera-node/test-clients/src/main/resource/spec-default.properties @@ -38,6 +38,7 @@ default.nodePayment.tinyBars=5000 default.payer=0.0.2 recordStream.path=hedera-node/hedera-app/build/node/data/recordStreams/record0.0.3 recordStream.autoSnapshotManagement=false +recordStream.overrideExistingSnapshot=false #recordStream.autoSnapshotTarget=MONO_SERVICE recordStream.autoMatchTarget=HAPI_TEST recordStream.autoSnapshotTarget=MONO_SERVICE @@ -110,7 +111,7 @@ num.opFinisher.threads=8 persistentEntities.dir.path= persistentEntities.updateCreatedManifests=true spec.autoScheduledTxns= -spec.streamlinedIngestChecks=INVALID_FILE_ID,ENTITY_NOT_ALLOWED_TO_DELETE,AUTHORIZATION_FAILED,INVALID_PRNG_RANGE,INVALID_STAKING_ID,NOT_SUPPORTED,TOKEN_ID_REPEATED_IN_TOKEN_LIST,ALIAS_ALREADY_ASSIGNED,INVALID_ALIAS_KEY,KEY_REQUIRED,BAD_ENCODING,AUTORENEW_DURATION_NOT_IN_RANGE,INVALID_ZERO_BYTE_IN_STRING,INVALID_ADMIN_KEY,ACCOUNT_DELETED,BUSY,INSUFFICIENT_PAYER_BALANCE,INSUFFICIENT_TX_FEE,INVALID_ACCOUNT_ID,INVALID_NODE_ACCOUNT,INVALID_SIGNATURE,INVALID_TRANSACTION,INVALID_TRANSACTION_BODY,INVALID_TRANSACTION_DURATION,INVALID_TRANSACTION_ID,INVALID_TRANSACTION_START,KEY_PREFIX_MISMATCH,MEMO_TOO_LONG,PAYER_ACCOUNT_NOT_FOUND,PLATFORM_NOT_ACTIVE,TRANSACTION_EXPIRED,TRANSACTION_HAS_UNKNOWN_FIELDS,TRANSACTION_ID_FIELD_NOT_ALLOWED,TRANSACTION_OVERSIZE,TRANSFER_ACCOUNT_SAME_AS_DELETE_ACCOUNT,EMPTY_ALLOWANCES,REQUESTED_NUM_AUTOMATIC_ASSOCIATIONS_EXCEEDS_ASSOCIATION_LIMIT,TOKEN_HAS_NO_FREEZE_KEY,TOKEN_HAS_NO_SUPPLY_KEY,INVALID_TOKEN_INITIAL_SUPPLY,INVALID_TOKEN_DECIMALS,INVALID_TOKEN_MAX_SUPPLY,ACCOUNT_REPEATED_IN_ACCOUNT_AMOUNTS,TRANSFERS_NOT_ZERO_SUM_FOR_TOKEN,INVALID_ACCOUNT_AMOUNTS,TOKEN_NAME_TOO_LONG,TOKEN_SYMBOL_TOO_LONG,INVALID_TOKEN_NFT_SERIAL_NUMBER,PERMANENT_REMOVAL_REQUIRES_SYSTEM_INITIATION,MISSING_TOKEN_SYMBOL,MISSING_TOKEN_NAME,INVALID_EXPIRATION_TIME,EMPTY_TOKEN_TRANSFER_ACCOUNT_AMOUNTS,INVALID_ALLOWANCE_OWNER_ID,FUNGIBLE_TOKEN_IN_NFT_ALLOWANCES,TOKEN_NOT_ASSOCIATED_TO_ACCOUNT,MAX_ALLOWANCES_EXCEEDED,INVALID_ALLOWANCE_SPENDER_ID,AMOUNT_EXCEEDS_TOKEN_MAX_SUPPLY,NFT_IN_FUNGIBLE_TOKEN_ALLOWANCES,NEGATIVE_ALLOWANCE_AMOUNT,DELEGATING_SPENDER_DOES_NOT_HAVE_APPROVE_FOR_ALL,DELEGATING_SPENDER_CANNOT_GRANT_APPROVE_FOR_ALL,INVALID_TOKEN_MINT_AMOUNT,INVALID_TOKEN_BURN_AMOUNT,INVALID_WIPING_AMOUNT,INVALID_NFT_ID,BATCH_SIZE_LIMIT_EXCEEDED,METADATA_TOO_LONG,INVALID_RENEWAL_PERIOD,INVALID_CUSTOM_FEE_SCHEDULE_KEY,MAX_GAS_LIMIT_EXCEEDED,CONTRACT_DELETED,INVALID_ETHEREUM_TRANSACTION +spec.streamlinedIngestChecks=INVALID_FILE_ID,ENTITY_NOT_ALLOWED_TO_DELETE,AUTHORIZATION_FAILED,INVALID_PRNG_RANGE,INVALID_STAKING_ID,NOT_SUPPORTED,TOKEN_ID_REPEATED_IN_TOKEN_LIST,ALIAS_ALREADY_ASSIGNED,INVALID_ALIAS_KEY,KEY_REQUIRED,BAD_ENCODING,AUTORENEW_DURATION_NOT_IN_RANGE,INVALID_ZERO_BYTE_IN_STRING,INVALID_ADMIN_KEY,ACCOUNT_DELETED,BUSY,INSUFFICIENT_PAYER_BALANCE,INSUFFICIENT_TX_FEE,INVALID_ACCOUNT_ID,INVALID_NODE_ACCOUNT,INVALID_SIGNATURE,INVALID_TRANSACTION,INVALID_TRANSACTION_BODY,INVALID_TRANSACTION_DURATION,INVALID_TRANSACTION_ID,INVALID_TRANSACTION_START,KEY_PREFIX_MISMATCH,MEMO_TOO_LONG,PAYER_ACCOUNT_NOT_FOUND,PLATFORM_NOT_ACTIVE,TRANSACTION_EXPIRED,TRANSACTION_HAS_UNKNOWN_FIELDS,TRANSACTION_ID_FIELD_NOT_ALLOWED,TRANSACTION_OVERSIZE,TRANSFER_ACCOUNT_SAME_AS_DELETE_ACCOUNT,EMPTY_ALLOWANCES,REQUESTED_NUM_AUTOMATIC_ASSOCIATIONS_EXCEEDS_ASSOCIATION_LIMIT,TOKEN_HAS_NO_FREEZE_KEY,TOKEN_HAS_NO_SUPPLY_KEY,INVALID_TOKEN_INITIAL_SUPPLY,INVALID_TOKEN_DECIMALS,INVALID_TOKEN_MAX_SUPPLY,ACCOUNT_REPEATED_IN_ACCOUNT_AMOUNTS,TRANSFERS_NOT_ZERO_SUM_FOR_TOKEN,INVALID_ACCOUNT_AMOUNTS,TOKEN_NAME_TOO_LONG,TOKEN_SYMBOL_TOO_LONG,INVALID_TOKEN_NFT_SERIAL_NUMBER,PERMANENT_REMOVAL_REQUIRES_SYSTEM_INITIATION,MISSING_TOKEN_SYMBOL,MISSING_TOKEN_NAME,INVALID_EXPIRATION_TIME,EMPTY_TOKEN_TRANSFER_ACCOUNT_AMOUNTS,INVALID_ALLOWANCE_OWNER_ID,FUNGIBLE_TOKEN_IN_NFT_ALLOWANCES,TOKEN_NOT_ASSOCIATED_TO_ACCOUNT,MAX_ALLOWANCES_EXCEEDED,INVALID_ALLOWANCE_SPENDER_ID,AMOUNT_EXCEEDS_TOKEN_MAX_SUPPLY,NFT_IN_FUNGIBLE_TOKEN_ALLOWANCES,NEGATIVE_ALLOWANCE_AMOUNT,DELEGATING_SPENDER_DOES_NOT_HAVE_APPROVE_FOR_ALL,DELEGATING_SPENDER_CANNOT_GRANT_APPROVE_FOR_ALL,INVALID_TOKEN_MINT_AMOUNT,INVALID_TOKEN_BURN_AMOUNT,INVALID_WIPING_AMOUNT,INVALID_NFT_ID,BATCH_SIZE_LIMIT_EXCEEDED,METADATA_TOO_LONG,INVALID_RENEWAL_PERIOD,INVALID_CUSTOM_FEE_SCHEDULE_KEY,MAX_GAS_LIMIT_EXCEEDED,CONTRACT_DELETED,INVALID_ETHEREUM_TRANSACTION,INSUFFICIENT_ACCOUNT_BALANCE,INVALID_CONTRACT_ID status.deferredResolves.doAsync=true status.preResolve.pause.ms=0 status.wait.sleep.ms=500 diff --git a/hedera-node/test-clients/src/main/resource/testfiles/config.txt b/hedera-node/test-clients/src/main/resource/testfiles/config.txt index 9b596e48e478..115c9a9b5b34 100644 --- a/hedera-node/test-clients/src/main/resource/testfiles/config.txt +++ b/hedera-node/test-clients/src/main/resource/testfiles/config.txt @@ -3,7 +3,6 @@ ############################################################################################### swirld, 123 -# app, HashgraphDemo.jar, 1,0,0,0,0,0,0,0,0,0, all # app, GameDemo.jar, 9000, 9000 # app, HelloSwirldDemo.jar # app, CryptocurrencyDemo.jar @@ -73,12 +72,6 @@ nextNodeId, 1 # # FilesystemDemo.jar parameters: none # -# HashGraphDemo.jar takes parameters that give the initial checkbox settings, -# in the same order they appear are on the screen, with 1 to check it -# and 0 to not check it, followed by the number of events to display -# (or “all”). The first parameter controls whether it runs -# slowly (1) or runs at full speed (0). -# # GameDemo.jar parameters: # height: height of the board (in cells). Player moves 1 cell at a time. # width: width of the board (in cells). Player moves 1 cell at a time. diff --git a/hedera-node/test-clients/src/main/resource/testfiles/updateFeature/updateConfigPortNumber/sdk/config.txt b/hedera-node/test-clients/src/main/resource/testfiles/updateFeature/updateConfigPortNumber/sdk/config.txt index f54750bfc290..356ee32f83dc 100755 --- a/hedera-node/test-clients/src/main/resource/testfiles/updateFeature/updateConfigPortNumber/sdk/config.txt +++ b/hedera-node/test-clients/src/main/resource/testfiles/updateFeature/updateConfigPortNumber/sdk/config.txt @@ -3,7 +3,6 @@ ############################################################################################### swirld, 123 -# app, HashgraphDemo.jar, 1,0,0,0,0,0,0,0,0,0, all # app, GameDemo.jar, 9000, 9000 # app, HelloSwirldDemo.jar # app, CryptocurrencyDemo.jar @@ -71,12 +70,6 @@ swirld, 123 # # FilesystemDemo.jar parameters: none # -# HashGraphDemo.jar takes parameters that give the initial checkbox settings, -# in the same order they appear are on the screen, with 1 to check it -# and 0 to not check it, followed by the number of events to display -# (or “all”). The first parameter controls whether it runs -# slowly (1) or runs at full speed (0). -# # GameDemo.jar parameters: # height: height of the board (in cells). Player moves 1 cell at a time. # width: width of the board (in cells). Player moves 1 cell at a time. diff --git a/hedera-node/test-clients/src/rcdiff/java/com/hedera/services/rcdiff/RcDiff.java b/hedera-node/test-clients/src/rcdiff/java/com/hedera/services/rcdiff/RcDiff.java index d4f0db8acb82..418585d80e99 100644 --- a/hedera-node/test-clients/src/rcdiff/java/com/hedera/services/rcdiff/RcDiff.java +++ b/hedera-node/test-clients/src/rcdiff/java/com/hedera/services/rcdiff/RcDiff.java @@ -16,12 +16,18 @@ package com.hedera.services.rcdiff; +import static com.hedera.node.app.hapi.utils.exports.recordstreaming.RecordStreamingUtils.orderedRecordFilesFrom; +import static com.hedera.node.app.hapi.utils.exports.recordstreaming.RecordStreamingUtils.parseRecordFileConsensusTime; import static com.hedera.node.app.hapi.utils.forensics.DifferingEntries.FirstEncounteredDifference.CONSENSUS_TIME_MISMATCH; import static com.hedera.node.app.hapi.utils.forensics.DifferingEntries.FirstEncounteredDifference.TRANSACTION_MISMATCH; import static com.hedera.node.app.hapi.utils.forensics.DifferingEntries.FirstEncounteredDifference.TRANSACTION_RECORD_MISMATCH; import static com.hedera.node.app.hapi.utils.forensics.OrderedComparison.findDifferencesBetweenV6; import static com.hedera.services.bdd.spec.utilops.records.SnapshotModeOp.exactMatch; -import static picocli.CommandLine.*; +import static picocli.CommandLine.Command; +import static picocli.CommandLine.Model; +import static picocli.CommandLine.Option; +import static picocli.CommandLine.ParameterException; +import static picocli.CommandLine.Spec; import com.hedera.node.app.hapi.utils.forensics.DifferingEntries; import com.hedera.node.app.hapi.utils.forensics.OrderedComparison; @@ -30,9 +36,13 @@ import java.io.UncheckedIOException; import java.nio.file.Files; import java.nio.file.Paths; +import java.time.Instant; +import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.Objects; import java.util.concurrent.Callable; +import java.util.function.Predicate; import picocli.CommandLine; @Command(name = "rcdiff", description = "Diffs two record streams") @@ -46,6 +56,12 @@ public class RcDiff implements Callable { defaultValue = "10") Long maxDiffsToExport; + @Option( + names = {"-l", "--len-of-diff-secs"}, + paramLabel = "number of seconds to diff at a time", + defaultValue = "300") + Long lenOfDiffSecs; + @Option( names = {"-e", "--expected-stream"}, paramLabel = "location of expected stream files") @@ -78,7 +94,7 @@ public Integer call() throws Exception { } throw new AssertionError("No difference to summarize"); }; - final var diffs = findDifferencesBetweenV6(expectedStreamsLoc, actualStreamsLoc, recordDiffSummarizer, null); + final var diffs = diffsGiven(recordDiffSummarizer); if (diffs.isEmpty()) { System.out.println("These streams are identical ☺️"); return 0; @@ -89,6 +105,48 @@ public Integer call() throws Exception { } } + private List diffsGiven( + @NonNull final OrderedComparison.RecordDiffSummarizer recordDiffSummarizer) throws IOException { + final var actualBoundaries = boundaryTimesFor(actualStreamsLoc); + final var expectedBoundaries = boundaryTimesFor(expectedStreamsLoc); + final var first = Collections.min(List.of(actualBoundaries.first, expectedBoundaries.first)); + final var last = Collections.max(List.of(actualBoundaries.last, expectedBoundaries.last)); + final List diffs = new ArrayList<>(); + for (Instant i = first; !i.isAfter(last); i = i.plusSeconds(lenOfDiffSecs)) { + final var start = i; + final var end = i.plusSeconds(lenOfDiffSecs); + // Include files in the range [start, end) + final Predicate inclusionTest = f -> { + final var consensusTime = parseRecordFileConsensusTime(f); + return !consensusTime.isBefore(start) && consensusTime.isBefore(end); + }; + final var diffsHere = findDifferencesBetweenV6( + expectedStreamsLoc, + actualStreamsLoc, + recordDiffSummarizer, + inclusionTest, + "from " + start + ", before " + end); + diffs.addAll(diffsHere); + } + return diffs; + } + + record BoundaryTimes(Instant first, Instant last) {} + + private static BoundaryTimes boundaryTimesFor(@NonNull final String loc) { + try { + final var orderedFiles = orderedRecordFilesFrom(loc, f -> true); + if (orderedFiles.isEmpty()) { + return new BoundaryTimes(Instant.MAX, Instant.EPOCH); + } + return new BoundaryTimes( + parseRecordFileConsensusTime(orderedFiles.getFirst()), + parseRecordFileConsensusTime(orderedFiles.getLast())); + } catch (IOException e) { + throw new UncheckedIOException(e); + } + } + private void throwOnInvalidCommandLine() { if (actualStreamsLoc == null) { throw new ParameterException(spec.commandLine(), "Please specify an actual stream location"); @@ -96,6 +154,9 @@ private void throwOnInvalidCommandLine() { if (expectedStreamsLoc == null) { throw new ParameterException(spec.commandLine(), "Please specify an expected stream location"); } + if (lenOfDiffSecs <= 0) { + throw new ParameterException(spec.commandLine(), "Please specify a positive length of diff in seconds"); + } } private void dumpDiffs(@NonNull final List diffs) { @@ -125,20 +186,17 @@ private String readableDiff(@NonNull final DifferingEntries diff) { if (firstEncounteredDifference == CONSENSUS_TIME_MISMATCH) { sb.append("➡️ Expected ") .append(Objects.requireNonNull(diff.firstEntry()).consensusTime()) - .append(" but was ") + .append("\n\n") + .append("➡️ but was ") .append(Objects.requireNonNull(diff.secondEntry()).consensusTime()); } else if (firstEncounteredDifference == TRANSACTION_RECORD_MISMATCH || firstEncounteredDifference == TRANSACTION_MISMATCH) { sb.append("\nFor body,\n") .append(Objects.requireNonNull(diff.firstEntry()).body()); - sb.append("➡️ Expected Receipt ") - .append(Objects.requireNonNull(diff.firstEntry()) - .transactionRecord() - .getReceipt()) + sb.append("➡️ Expected Record ") + .append(Objects.requireNonNull(diff.firstEntry()).transactionRecord()) .append(" but was ") - .append(Objects.requireNonNull(diff.secondEntry()) - .transactionRecord() - .getReceipt()); + .append(Objects.requireNonNull(diff.secondEntry()).transactionRecord()); } return sb.toString(); } diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/Yahcli.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/Yahcli.java similarity index 100% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/Yahcli.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/Yahcli.java diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/accounts/AccountsCommand.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/accounts/AccountsCommand.java similarity index 100% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/accounts/AccountsCommand.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/accounts/AccountsCommand.java diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/accounts/BalanceCommand.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/accounts/BalanceCommand.java similarity index 93% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/accounts/BalanceCommand.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/accounts/BalanceCommand.java index 5a8cba348dfc..21571238ee0f 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/accounts/BalanceCommand.java +++ b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/accounts/BalanceCommand.java @@ -16,8 +16,7 @@ package com.hedera.services.yahcli.commands.accounts; -import static com.hedera.services.yahcli.config.ConfigUtils.configFrom; - +import com.hedera.services.yahcli.config.ConfigUtils; import com.hedera.services.yahcli.suites.BalanceSuite; import java.util.concurrent.Callable; import picocli.CommandLine.Command; @@ -38,7 +37,7 @@ public class BalanceCommand implements Callable { @Override public Integer call() throws Exception { - var config = configFrom(accountsCommand.getYahcli()); + var config = ConfigUtils.configFrom(accountsCommand.getYahcli()); StringBuilder balanceRegister = new StringBuilder(); String serviceBorder = "---------------------|----------------------|"; diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/accounts/CreateCommand.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/accounts/CreateCommand.java similarity index 93% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/accounts/CreateCommand.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/accounts/CreateCommand.java index ea520c7d5063..cb1af467b6ea 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/accounts/CreateCommand.java +++ b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/accounts/CreateCommand.java @@ -16,12 +16,12 @@ package com.hedera.services.yahcli.commands.accounts; -import static com.hedera.services.bdd.spec.HapiSpec.SpecStatus.PASSED; -import static com.hedera.services.yahcli.config.ConfigUtils.configFrom; import static com.hedera.services.yahcli.output.CommonMessages.COMMON_MESSAGES; import static com.hedera.services.yahcli.suites.CreateSuite.NOVELTY; +import com.hedera.services.bdd.spec.HapiSpec; import com.hedera.services.bdd.suites.HapiSuite; +import com.hedera.services.yahcli.config.ConfigUtils; import com.hedera.services.yahcli.suites.CreateSuite; import java.io.File; import java.util.concurrent.Callable; @@ -70,7 +70,7 @@ public class CreateCommand implements Callable { @Override public Integer call() throws Exception { final var yahcli = accountsCommand.getYahcli(); - var config = configFrom(yahcli); + var config = ConfigUtils.configFrom(yahcli); final var noveltyLoc = config.keysLoc() + File.separator + NOVELTY + ".pem"; final var effectiveMemo = memo != null ? memo : ""; @@ -82,7 +82,7 @@ public Integer call() throws Exception { config.asSpecConfig(), amount, effectiveMemo, noveltyLoc, retries, effectiveReceiverSigRequired); delegate.runSuiteSync(); - if (delegate.getFinalSpecs().get(0).getStatus() == PASSED) { + if (delegate.getFinalSpecs().get(0).getStatus() == HapiSpec.SpecStatus.PASSED) { COMMON_MESSAGES.info("SUCCESS - account " + HapiSuite.DEFAULT_SHARD_REALM + +delegate.getCreatedNo().get() diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/accounts/InfoCommand.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/accounts/InfoCommand.java similarity index 93% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/accounts/InfoCommand.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/accounts/InfoCommand.java index 0a7fe15ae9e9..46a819ceb1cb 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/accounts/InfoCommand.java +++ b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/accounts/InfoCommand.java @@ -16,8 +16,7 @@ package com.hedera.services.yahcli.commands.accounts; -import static com.hedera.services.yahcli.config.ConfigUtils.configFrom; - +import com.hedera.services.yahcli.config.ConfigUtils; import com.hedera.services.yahcli.suites.InfoSuite; import java.util.concurrent.Callable; import picocli.CommandLine.Command; @@ -38,7 +37,7 @@ public class InfoCommand implements Callable { @Override public Integer call() throws Exception { - var config = configFrom(accountsCommand.getYahcli()); + var config = ConfigUtils.configFrom(accountsCommand.getYahcli()); StringBuilder balanceRegister = new StringBuilder(); String serviceBorder = "---------------------|----------------------|"; diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/accounts/RekeyCommand.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/accounts/RekeyCommand.java similarity index 91% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/accounts/RekeyCommand.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/accounts/RekeyCommand.java index 2bf43adad8d2..82ea3716cae3 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/accounts/RekeyCommand.java +++ b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/accounts/RekeyCommand.java @@ -16,11 +16,11 @@ package com.hedera.services.yahcli.commands.accounts; -import static com.hedera.services.bdd.spec.HapiSpec.SpecStatus.PASSED; -import static com.hedera.services.yahcli.config.ConfigUtils.configFrom; import static com.hedera.services.yahcli.output.CommonMessages.COMMON_MESSAGES; import com.google.common.io.Files; +import com.hedera.services.bdd.spec.HapiSpec; +import com.hedera.services.bdd.spec.utilops.inventory.AccessoryUtils; import com.hedera.services.yahcli.config.ConfigManager; import com.hedera.services.yahcli.config.ConfigUtils; import com.hedera.services.yahcli.suites.RekeySuite; @@ -56,7 +56,7 @@ public class RekeyCommand implements Callable { @Override public Integer call() throws Exception { - var config = configFrom(accountsCommand.getYahcli()); + var config = ConfigUtils.configFrom(accountsCommand.getYahcli()); if ("".equals(replKeyLoc) && !genNewKey) { throw new CommandLine.ParameterException( @@ -72,7 +72,7 @@ public Integer call() throws Exception { final var delegate = new RekeySuite(config.asSpecConfig(), accountNum, replKeyLoc, genNewKey, replTarget); delegate.runSuiteSync(); - if (delegate.getFinalSpecs().get(0).getStatus() == PASSED) { + if (delegate.getFinalSpecs().get(0).getStatus() == HapiSpec.SpecStatus.PASSED) { COMMON_MESSAGES.info("SUCCESS - account 0.0." + accountNum + " has been re-keyed"); } else { COMMON_MESSAGES.warn("FAILED to re-key account 0.0." + accountNum); @@ -90,7 +90,7 @@ private Optional backupCurrentAssets(ConfigManager configManager, String n final var backupLoc = keyLoc + ".bkup"; Files.copy(keyFile, java.nio.file.Files.newOutputStream(Paths.get(backupLoc))); if (keyLoc.endsWith(".pem")) { - final var optPassFile = ConfigUtils.passFileFor(keyFile); + final var optPassFile = AccessoryUtils.passFileFor(keyFile); if (optPassFile.isPresent()) { final var passFile = optPassFile.get(); final var passBackupLoc = passFile.getAbsolutePath() + ".bkup"; diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/accounts/SendCommand.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/accounts/SendCommand.java similarity index 95% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/accounts/SendCommand.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/accounts/SendCommand.java index f87057d35f9a..6246f1e062f3 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/accounts/SendCommand.java +++ b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/accounts/SendCommand.java @@ -16,11 +16,11 @@ package com.hedera.services.yahcli.commands.accounts; -import static com.hedera.services.bdd.spec.HapiSpec.SpecStatus.PASSED; -import static com.hedera.services.yahcli.config.ConfigUtils.configFrom; import static com.hedera.services.yahcli.output.CommonMessages.COMMON_MESSAGES; +import com.hedera.services.bdd.spec.HapiSpec; import com.hedera.services.yahcli.Yahcli; +import com.hedera.services.yahcli.config.ConfigUtils; import com.hedera.services.yahcli.suites.SendSuite; import com.hedera.services.yahcli.suites.Utils; import java.util.concurrent.Callable; @@ -71,7 +71,7 @@ public class SendCommand implements Callable { @Override public Integer call() throws Exception { - var config = configFrom(accountsCommand.getYahcli()); + var config = ConfigUtils.configFrom(accountsCommand.getYahcli()); if (!config.isAllowListEmptyOrContainsAccount(Long.parseLong(beneficiary))) { throw new CommandLine.ParameterException( @@ -98,7 +98,7 @@ public Integer call() throws Exception { accountsCommand.getYahcli().isScheduled()); delegate.runSuiteSync(); - if (delegate.getFinalSpecs().get(0).getStatus() == PASSED) { + if (delegate.getFinalSpecs().get(0).getStatus() == HapiSpec.SpecStatus.PASSED) { COMMON_MESSAGES.info("SUCCESS - " + "sent " + amountRepr diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/accounts/SetupStakeCommand.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/accounts/SetupStakeCommand.java similarity index 90% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/accounts/SetupStakeCommand.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/accounts/SetupStakeCommand.java index 53b89d4ecc2f..80b650980091 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/accounts/SetupStakeCommand.java +++ b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/accounts/SetupStakeCommand.java @@ -16,13 +16,12 @@ package com.hedera.services.yahcli.commands.accounts; -import static com.hedera.services.bdd.spec.HapiSpec.SpecStatus.PASSED; -import static com.hedera.services.bdd.suites.HapiSuite.ONE_HBAR; -import static com.hedera.services.bdd.suites.HapiSuite.ONE_MILLION_HBARS; -import static com.hedera.services.yahcli.config.ConfigUtils.configFrom; import static com.hedera.services.yahcli.output.CommonMessages.COMMON_MESSAGES; +import com.hedera.services.bdd.spec.HapiSpec; +import com.hedera.services.bdd.suites.HapiSuite; import com.hedera.services.yahcli.Yahcli; +import com.hedera.services.yahcli.config.ConfigUtils; import com.hedera.services.yahcli.suites.StakeSetupSuite; import java.util.Map; import java.util.concurrent.Callable; @@ -34,7 +33,7 @@ description = "Activates staking on the target network (requires 0.0.2 payer)") public class SetupStakeCommand implements Callable { private static final long CANONICAL_REWARD_RATE = 273972602739726L; - private static final long CANONICAL_800_START_BALANCE = 250 * ONE_MILLION_HBARS; + private static final long CANONICAL_800_START_BALANCE = 250 * HapiSuite.ONE_MILLION_HBARS; private static final long TOTAL_HBAR_SUPPLY = 50_000_000_000L * 100_000_000L; @CommandLine.ParentCommand @@ -56,14 +55,14 @@ public class SetupStakeCommand implements Callable { String rewardAccountBalance; private static final Map SUFFIX_SCALES = Map.of( - "h", ONE_HBAR, - "kh", 1_000L * ONE_HBAR, - "mh", 1_000_000L * ONE_HBAR, - "bh", 1_000_000_000L * ONE_HBAR); + "h", HapiSuite.ONE_HBAR, + "kh", 1_000L * HapiSuite.ONE_HBAR, + "mh", 1_000_000L * HapiSuite.ONE_HBAR, + "bh", 1_000_000_000L * HapiSuite.ONE_HBAR); @Override public Integer call() throws Exception { - final var config = configFrom(yahcli); + final var config = ConfigUtils.configFrom(yahcli); try { assertValidParams(); } catch (Exception any) { @@ -85,7 +84,7 @@ public Integer call() throws Exception { final var delegate = new StakeSetupSuite(stakePerNode, rewardRate, start800Balance, config); delegate.runSuiteSync(); - if (delegate.getFinalSpecs().get(0).getStatus() == PASSED) { + if (delegate.getFinalSpecs().get(0).getStatus() == HapiSpec.SpecStatus.PASSED) { final var msgSb = new StringBuilder("SUCCESS - staking activated on network '") .append(config.getTargetName()) .append("' with,\n.i. * Reward rate of ") diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/accounts/StakeCommand.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/accounts/StakeCommand.java similarity index 96% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/accounts/StakeCommand.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/accounts/StakeCommand.java index 59b205c0930c..d961b80d3a0b 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/accounts/StakeCommand.java +++ b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/accounts/StakeCommand.java @@ -16,10 +16,9 @@ package com.hedera.services.yahcli.commands.accounts; -import static com.hedera.services.bdd.spec.HapiSpec.SpecStatus.PASSED; -import static com.hedera.services.yahcli.config.ConfigUtils.configFrom; import static com.hedera.services.yahcli.output.CommonMessages.COMMON_MESSAGES; +import com.hedera.services.bdd.spec.HapiSpec; import com.hedera.services.yahcli.config.ConfigUtils; import com.hedera.services.yahcli.suites.StakeSuite; import com.hedera.services.yahcli.suites.Utils; @@ -59,7 +58,7 @@ public class StakeCommand implements Callable { @Override public Integer call() throws Exception { - final var config = configFrom(accountsCommand.getYahcli()); + final var config = ConfigUtils.configFrom(accountsCommand.getYahcli()); assertValidParams(); final String target; final StakeSuite.TargetType type; @@ -86,7 +85,7 @@ public Integer call() throws Exception { if (stakedAccountNum == null) { stakedAccountNum = ConfigUtils.asId(config.getDefaultPayer()); } - if (delegate.getFinalSpecs().get(0).getStatus() == PASSED) { + if (delegate.getFinalSpecs().get(0).getStatus() == HapiSpec.SpecStatus.PASSED) { final var msgSb = new StringBuilder("SUCCESS - account ") .append(Utils.extractAccount(stakedAccountNum)) .append(" updated"); diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/accounts/UpdateCommand.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/accounts/UpdateCommand.java similarity index 93% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/accounts/UpdateCommand.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/accounts/UpdateCommand.java index 3a0beef2ea52..10abeca66a9f 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/accounts/UpdateCommand.java +++ b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/accounts/UpdateCommand.java @@ -16,13 +16,13 @@ package com.hedera.services.yahcli.commands.accounts; -import static com.hedera.services.bdd.spec.HapiSpec.SpecStatus.PASSED; -import static com.hedera.services.yahcli.config.ConfigUtils.configFrom; import static com.hedera.services.yahcli.output.CommonMessages.COMMON_MESSAGES; import com.google.common.collect.Lists; import com.google.common.io.Files; import com.google.protobuf.ByteString; +import com.hedera.services.bdd.spec.HapiSpec; +import com.hedera.services.yahcli.config.ConfigUtils; import com.hedera.services.yahcli.suites.UpdateSuite; import com.hederahashgraph.api.proto.java.Key; import com.swirlds.common.utility.CommonUtils; @@ -65,7 +65,7 @@ public class UpdateCommand implements Callable { @Override public Integer call() throws Exception { - var config = configFrom(accountsCommand.getYahcli()); + var config = ConfigUtils.configFrom(accountsCommand.getYahcli()); final var effectiveMemo = memo != null ? memo : ""; final var effectiveTargetAccount = targetAccount != null ? targetAccount : ""; @@ -85,7 +85,7 @@ public Integer call() throws Exception { accountsCommand.getYahcli().isScheduled()); delegate.runSuiteSync(); - if (delegate.getFinalSpecs().get(0).getStatus() == PASSED) { + if (delegate.getFinalSpecs().get(0).getStatus() == HapiSpec.SpecStatus.PASSED) { COMMON_MESSAGES.info("SUCCESS - " + "Scheduled update account " + effectiveTargetAccount diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/fees/FeeBasePriceCommand.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/fees/FeeBasePriceCommand.java similarity index 94% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/fees/FeeBasePriceCommand.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/fees/FeeBasePriceCommand.java index 3f19115cff6f..47ad6bb39784 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/fees/FeeBasePriceCommand.java +++ b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/fees/FeeBasePriceCommand.java @@ -16,8 +16,7 @@ package com.hedera.services.yahcli.commands.fees; -import static com.hedera.services.yahcli.config.ConfigUtils.configFrom; - +import com.hedera.services.yahcli.config.ConfigUtils; import com.hedera.services.yahcli.suites.CostOfEveryThingSuite; import java.util.concurrent.Callable; import picocli.CommandLine; @@ -39,7 +38,7 @@ public class FeeBasePriceCommand implements Callable { @Override public Integer call() throws Exception { - var config = configFrom(feesCommand.getYahcli()); + var config = ConfigUtils.configFrom(feesCommand.getYahcli()); StringBuilder feeTableSB = new StringBuilder(); String serviceBorder = "-------------------------------|-----------------|\n"; diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/fees/FeesCommand.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/fees/FeesCommand.java similarity index 100% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/fees/FeesCommand.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/fees/FeesCommand.java diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/files/SpecialFileHashCommand.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/files/SpecialFileHashCommand.java similarity index 83% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/files/SpecialFileHashCommand.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/files/SpecialFileHashCommand.java index d3b221f2e319..bc6923b50166 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/files/SpecialFileHashCommand.java +++ b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/files/SpecialFileHashCommand.java @@ -16,9 +16,8 @@ package com.hedera.services.yahcli.commands.files; -import static com.hedera.services.bdd.spec.HapiSpec.SpecStatus.PASSED; -import static com.hedera.services.yahcli.config.ConfigUtils.configFrom; - +import com.hedera.services.bdd.spec.HapiSpec; +import com.hedera.services.yahcli.config.ConfigUtils; import com.hedera.services.yahcli.suites.SpecialFileHashSuite; import java.util.concurrent.Callable; import picocli.CommandLine.Command; @@ -38,11 +37,11 @@ public class SpecialFileHashCommand implements Callable { @Override public Integer call() throws Exception { - var config = configFrom(sysFilesCommand.getYahcli()); + var config = ConfigUtils.configFrom(sysFilesCommand.getYahcli()); var delegate = new SpecialFileHashSuite(config.asSpecConfig(), specialFile); delegate.runSuiteSync(); - return (delegate.getFinalSpecs().get(0).getStatus() == PASSED) ? 0 : 1; + return (delegate.getFinalSpecs().get(0).getStatus() == HapiSpec.SpecStatus.PASSED) ? 0 : 1; } } diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/files/SysFileDownloadCommand.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/files/SysFileDownloadCommand.java similarity index 89% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/files/SysFileDownloadCommand.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/files/SysFileDownloadCommand.java index 6976251fe24f..31f439950155 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/files/SysFileDownloadCommand.java +++ b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/files/SysFileDownloadCommand.java @@ -16,10 +16,10 @@ package com.hedera.services.yahcli.commands.files; -import static com.hedera.services.bdd.spec.HapiSpec.SpecStatus.PASSED; -import static com.hedera.services.yahcli.config.ConfigUtils.configFrom; import static com.hedera.services.yahcli.output.CommonMessages.COMMON_MESSAGES; +import com.hedera.services.bdd.spec.HapiSpec; +import com.hedera.services.yahcli.config.ConfigUtils; import com.hedera.services.yahcli.suites.SysFileDownloadSuite; import java.util.concurrent.Callable; import picocli.CommandLine; @@ -52,13 +52,13 @@ public class SysFileDownloadCommand implements Callable { @Override public Integer call() throws Exception { - var config = configFrom(sysFilesCommand.getYahcli()); + var config = ConfigUtils.configFrom(sysFilesCommand.getYahcli()); destDir = SysFilesCommand.resolvedDir(destDir, config); var delegate = new SysFileDownloadSuite(destDir, config.asSpecConfig(), sysFiles); delegate.runSuiteSync(); - if (delegate.getFinalSpecs().get(0).getStatus() == PASSED) { + if (delegate.getFinalSpecs().get(0).getStatus() == HapiSpec.SpecStatus.PASSED) { COMMON_MESSAGES.info("SUCCESS - downloaded all requested system files"); } else { COMMON_MESSAGES.warn("FAILED downloading requested system files"); diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/files/SysFileUploadCommand.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/files/SysFileUploadCommand.java similarity index 90% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/files/SysFileUploadCommand.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/files/SysFileUploadCommand.java index 376a799111e2..e9768e1fad93 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/files/SysFileUploadCommand.java +++ b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/files/SysFileUploadCommand.java @@ -16,12 +16,11 @@ package com.hedera.services.yahcli.commands.files; -import static com.hedera.services.bdd.spec.HapiSpec.SpecStatus.PASSED; -import static com.hedera.services.bdd.spec.transactions.TxnUtils.BYTES_4K; -import static com.hedera.services.yahcli.commands.files.SysFilesCommand.resolvedDir; -import static com.hedera.services.yahcli.config.ConfigUtils.configFrom; import static com.hedera.services.yahcli.output.CommonMessages.COMMON_MESSAGES; +import com.hedera.services.bdd.spec.HapiSpec; +import com.hedera.services.bdd.spec.transactions.TxnUtils; +import com.hedera.services.yahcli.config.ConfigUtils; import com.hedera.services.yahcli.suites.SysFileUploadSuite; import java.util.concurrent.Callable; import java.util.concurrent.atomic.AtomicReference; @@ -32,7 +31,7 @@ subcommands = {picocli.CommandLine.HelpCommand.class}, description = "Uploads a system file") public class SysFileUploadCommand implements Callable { - private static final int DEFAULT_BYTES_PER_APPEND = BYTES_4K; + private static final int DEFAULT_BYTES_PER_APPEND = TxnUtils.BYTES_4K; private static final int DEFAULT_APPENDS_PER_BURST = 256; public static AtomicReference activeSrcDir = new AtomicReference<>(); @@ -81,13 +80,13 @@ public class SysFileUploadCommand implements Callable { @Override public Integer call() throws Exception { - var config = configFrom(sysFilesCommand.getYahcli()); - srcDir = resolvedDir(srcDir, config); + var config = ConfigUtils.configFrom(sysFilesCommand.getYahcli()); + srcDir = SysFilesCommand.resolvedDir(srcDir, config); activeSrcDir.set(srcDir); if (isSpecialFile()) { if (bytesPerAppend == null) { - bytesPerAppend = BYTES_4K; + bytesPerAppend = TxnUtils.BYTES_4K; } if (appendsPerBurst == null) { appendsPerBurst = DEFAULT_APPENDS_PER_BURST; @@ -128,7 +127,7 @@ public Integer call() throws Exception { final var finalSpecs = delegate.getFinalSpecs(); if (!finalSpecs.isEmpty()) { - if (finalSpecs.get(0).getStatus() == PASSED) { + if (finalSpecs.get(0).getStatus() == HapiSpec.SpecStatus.PASSED) { COMMON_MESSAGES.info("SUCCESS - Uploaded all requested system files"); } else { COMMON_MESSAGES.warn("FAILED Uploading requested system files"); diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/files/SysFilesCommand.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/files/SysFilesCommand.java similarity index 100% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/files/SysFilesCommand.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/files/SysFilesCommand.java diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/keys/ExtractDetailsCommand.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/keys/ExtractDetailsCommand.java similarity index 92% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/keys/ExtractDetailsCommand.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/keys/ExtractDetailsCommand.java index 019b9164730d..7fe422ba6a47 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/keys/ExtractDetailsCommand.java +++ b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/keys/ExtractDetailsCommand.java @@ -16,11 +16,12 @@ package com.hedera.services.yahcli.commands.keys; -import static com.hedera.services.yahcli.config.ConfigUtils.setLogLevels; +import static com.hedera.services.yahcli.config.ConfigUtils.YAHCLI_LOGGING_CLASSES; import static com.hedera.services.yahcli.output.CommonMessages.COMMON_MESSAGES; import com.hedera.node.app.hapi.utils.keys.Ed25519Utils; import com.hedera.services.bdd.spec.keys.deterministic.Bip0032; +import com.hedera.services.bdd.spec.utilops.inventory.AccessoryUtils; import com.swirlds.common.utility.CommonUtils; import java.io.File; import java.nio.file.Files; @@ -52,7 +53,7 @@ public class ExtractDetailsCommand implements Callable { @Override public Integer call() throws Exception { - setLogLevels(keysCommand.getYahcli().getLogLevel()); + AccessoryUtils.setLogLevels(keysCommand.getYahcli().getLogLevel(), YAHCLI_LOGGING_CLASSES); final EdDSAPrivateKey privateKey; if (loc.endsWith(".pem")) { diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/keys/ExtractPublicCommand.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/keys/ExtractPublicCommand.java similarity index 91% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/keys/ExtractPublicCommand.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/keys/ExtractPublicCommand.java index cf4c435fe9b7..1e38b1f444a4 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/keys/ExtractPublicCommand.java +++ b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/keys/ExtractPublicCommand.java @@ -16,7 +16,8 @@ package com.hedera.services.yahcli.commands.keys; -import static com.hedera.services.yahcli.config.ConfigUtils.setLogLevels; +import static com.hedera.services.bdd.spec.utilops.inventory.AccessoryUtils.setLogLevels; +import static com.hedera.services.yahcli.config.ConfigUtils.YAHCLI_LOGGING_CLASSES; import static com.hedera.services.yahcli.output.CommonMessages.COMMON_MESSAGES; import com.hedera.node.app.hapi.utils.keys.Ed25519Utils; @@ -50,8 +51,7 @@ public class ExtractPublicCommand implements Callable { @Override public Integer call() throws Exception { - setLogLevels(keysCommand.getYahcli().getLogLevel()); - + setLogLevels(keysCommand.getYahcli().getLogLevel(), YAHCLI_LOGGING_CLASSES); final EdDSAPrivateKey privateKey; if (loc.endsWith(".pem")) { if (passphrase == null) { diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/keys/KeysCommand.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/keys/KeysCommand.java similarity index 100% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/keys/KeysCommand.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/keys/KeysCommand.java diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/keys/NewPemCommand.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/keys/NewPemCommand.java similarity index 87% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/keys/NewPemCommand.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/keys/NewPemCommand.java index 9b4e318070ba..0829c8be0fae 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/keys/NewPemCommand.java +++ b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/keys/NewPemCommand.java @@ -16,15 +16,15 @@ package com.hedera.services.yahcli.commands.keys; -import static com.hedera.services.yahcli.commands.keys.ExtractDetailsCommand.DER_EDDSA_PREFIX; -import static com.hedera.services.yahcli.config.ConfigUtils.ensureDir; -import static com.hedera.services.yahcli.config.ConfigUtils.setLogLevels; +import static com.hedera.services.bdd.spec.utilops.inventory.AccessoryUtils.setLogLevels; +import static com.hedera.services.yahcli.config.ConfigUtils.YAHCLI_LOGGING_CLASSES; import static com.hedera.services.yahcli.output.CommonMessages.COMMON_MESSAGES; import com.hedera.node.app.hapi.utils.keys.Ed25519Utils; import com.hedera.services.bdd.spec.keys.deterministic.Bip0032; import com.hedera.services.bdd.spec.persistence.SpecKey; import com.hedera.services.bdd.spec.transactions.TxnUtils; +import com.hedera.services.yahcli.config.ConfigUtils; import com.swirlds.common.utility.CommonUtils; import java.io.File; import java.nio.file.Files; @@ -54,10 +54,10 @@ public class NewPemCommand implements Callable { @Override public Integer call() throws Exception { - setLogLevels(keysCommand.getYahcli().getLogLevel()); + setLogLevels(keysCommand.getYahcli().getLogLevel(), YAHCLI_LOGGING_CLASSES); final var lastSepI = loc.lastIndexOf(File.separator); if (lastSepI != -1) { - ensureDir(loc.substring(0, lastSepI)); + ConfigUtils.ensureDir(loc.substring(0, lastSepI)); } final var mnemonic = SpecKey.randomMnemonic(); @@ -71,7 +71,7 @@ public Integer call() throws Exception { Files.writeString(Paths.get(pubKeyLoc), hexedPubKey + "\n"); final var privKeyLoc = loc.replace(".pem", ".privkey"); final var hexedPrivKey = CommonUtils.hex(privateKey.getSeed()); - Files.writeString(Paths.get(privKeyLoc), DER_EDDSA_PREFIX + hexedPrivKey + "\n"); + Files.writeString(Paths.get(privKeyLoc), ExtractDetailsCommand.DER_EDDSA_PREFIX + hexedPrivKey + "\n"); COMMON_MESSAGES.info(" - The public key is: " + hexedPubKey); if (passphrase == null) { passphrase = TxnUtils.randomAlphaNumeric(12); diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/schedules/ScheduleCommand.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/schedules/ScheduleCommand.java similarity index 100% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/schedules/ScheduleCommand.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/schedules/ScheduleCommand.java diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/schedules/SignCommand.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/schedules/SignCommand.java similarity index 93% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/schedules/SignCommand.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/schedules/SignCommand.java index 45dc3b41f385..03f144b11d70 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/schedules/SignCommand.java +++ b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/schedules/SignCommand.java @@ -16,10 +16,10 @@ package com.hedera.services.yahcli.commands.schedules; -import static com.hedera.services.bdd.spec.HapiSpec.SpecStatus.PASSED; import static com.hedera.services.yahcli.config.ConfigUtils.configFrom; import static com.hedera.services.yahcli.output.CommonMessages.COMMON_MESSAGES; +import com.hedera.services.bdd.spec.HapiSpec; import com.hedera.services.yahcli.suites.ScheduleSuite; import java.util.concurrent.Callable; import picocli.CommandLine; @@ -50,7 +50,7 @@ public Integer call() throws Exception { var delegate = new ScheduleSuite(config.asSpecConfig(), effectiveScheduleId); delegate.runSuiteSync(); - if (delegate.getFinalSpecs().get(0).getStatus() == PASSED) { + if (delegate.getFinalSpecs().get(0).getStatus() == HapiSpec.SpecStatus.PASSED) { COMMON_MESSAGES.info("SUCCESS - " + "scheduleId " + effectiveScheduleId + " " + " signed"); } else { COMMON_MESSAGES.warn("FAILED - " + "could not sign scheduleId " + effectiveScheduleId); diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/system/FreezeAbortCommand.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/system/FreezeAbortCommand.java similarity index 87% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/system/FreezeAbortCommand.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/system/FreezeAbortCommand.java index 59ceb0287241..59356af279b0 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/system/FreezeAbortCommand.java +++ b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/system/FreezeAbortCommand.java @@ -16,11 +16,11 @@ package com.hedera.services.yahcli.commands.system; -import static com.hedera.services.bdd.spec.HapiSpec.SpecStatus.PASSED; -import static com.hedera.services.yahcli.config.ConfigUtils.configFrom; import static com.hedera.services.yahcli.output.CommonMessages.COMMON_MESSAGES; +import com.hedera.services.bdd.spec.HapiSpec; import com.hedera.services.yahcli.Yahcli; +import com.hedera.services.yahcli.config.ConfigUtils; import com.hedera.services.yahcli.suites.FreezeHelperSuite; import java.util.concurrent.Callable; import picocli.CommandLine; @@ -35,13 +35,13 @@ public class FreezeAbortCommand implements Callable { @Override public Integer call() throws Exception { - final var config = configFrom(yahcli); + final var config = ConfigUtils.configFrom(yahcli); final var delegate = new FreezeHelperSuite(config.asSpecConfig(), null, true); delegate.runSuiteSync(); - if (delegate.getFinalSpecs().get(0).getStatus() == PASSED) { + if (delegate.getFinalSpecs().get(0).getStatus() == HapiSpec.SpecStatus.PASSED) { COMMON_MESSAGES.info("SUCCESS - freeze aborted and/or staged upgrade discarded"); } else { COMMON_MESSAGES.warn( diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/system/FreezeOnlyCommand.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/system/FreezeOnlyCommand.java similarity index 88% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/system/FreezeOnlyCommand.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/system/FreezeOnlyCommand.java index c9e01ef269e2..641c892aaab5 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/system/FreezeOnlyCommand.java +++ b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/system/FreezeOnlyCommand.java @@ -16,11 +16,11 @@ package com.hedera.services.yahcli.commands.system; -import static com.hedera.services.bdd.spec.HapiSpec.SpecStatus.PASSED; -import static com.hedera.services.yahcli.config.ConfigUtils.configFrom; import static com.hedera.services.yahcli.output.CommonMessages.COMMON_MESSAGES; +import com.hedera.services.bdd.spec.HapiSpec; import com.hedera.services.yahcli.Yahcli; +import com.hedera.services.yahcli.config.ConfigUtils; import com.hedera.services.yahcli.suites.FreezeHelperSuite; import com.hedera.services.yahcli.suites.Utils; import java.util.concurrent.Callable; @@ -42,14 +42,14 @@ public class FreezeOnlyCommand implements Callable { @Override public Integer call() throws Exception { - final var config = configFrom(yahcli); + final var config = ConfigUtils.configFrom(yahcli); final var freezeStartTime = Utils.parseFormattedInstant(startTime); final var delegate = new FreezeHelperSuite(config.asSpecConfig(), freezeStartTime, false); delegate.runSuiteSync(); - if (delegate.getFinalSpecs().get(0).getStatus() == PASSED) { + if (delegate.getFinalSpecs().get(0).getStatus() == HapiSpec.SpecStatus.PASSED) { COMMON_MESSAGES.info("SUCCESS - " + "freeze scheduled for " + startTime); } else { COMMON_MESSAGES.warn("FAILED - freeze is not scheduled for " + startTime); diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/system/FreezeUpgradeCommand.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/system/FreezeUpgradeCommand.java similarity index 90% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/system/FreezeUpgradeCommand.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/system/FreezeUpgradeCommand.java index a883fbacbdb2..edc6fce02840 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/system/FreezeUpgradeCommand.java +++ b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/system/FreezeUpgradeCommand.java @@ -16,11 +16,11 @@ package com.hedera.services.yahcli.commands.system; -import static com.hedera.services.bdd.spec.HapiSpec.SpecStatus.PASSED; -import static com.hedera.services.yahcli.config.ConfigUtils.configFrom; import static com.hedera.services.yahcli.output.CommonMessages.COMMON_MESSAGES; +import com.hedera.services.bdd.spec.HapiSpec; import com.hedera.services.yahcli.Yahcli; +import com.hedera.services.yahcli.config.ConfigUtils; import com.hedera.services.yahcli.suites.UpgradeHelperSuite; import com.hedera.services.yahcli.suites.Utils; import com.swirlds.common.utility.CommonUtils; @@ -53,7 +53,7 @@ public class FreezeUpgradeCommand implements Callable { @Override public Integer call() throws Exception { - final var config = configFrom(yahcli); + final var config = ConfigUtils.configFrom(yahcli); final var upgradeFile = "0.0." + upgradeFileNum; final var unhexedHash = CommonUtils.unhex(upgradeFileHash); @@ -62,7 +62,7 @@ public Integer call() throws Exception { delegate.runSuiteSync(); - if (delegate.getFinalSpecs().get(0).getStatus() == PASSED) { + if (delegate.getFinalSpecs().get(0).getStatus() == HapiSpec.SpecStatus.PASSED) { COMMON_MESSAGES.info("SUCCESS - NMT software upgrade in motion from " + upgradeFile + " artifacts ZIP"); } else { COMMON_MESSAGES.warn("FAILED - NMT software upgrade is not in motion "); diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/system/PrepareUpgradeCommand.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/system/PrepareUpgradeCommand.java similarity index 89% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/system/PrepareUpgradeCommand.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/system/PrepareUpgradeCommand.java index 9b16e8ee3faf..ea7f1b01b65f 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/system/PrepareUpgradeCommand.java +++ b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/system/PrepareUpgradeCommand.java @@ -16,11 +16,11 @@ package com.hedera.services.yahcli.commands.system; -import static com.hedera.services.bdd.spec.HapiSpec.SpecStatus.PASSED; -import static com.hedera.services.yahcli.config.ConfigUtils.configFrom; import static com.hedera.services.yahcli.output.CommonMessages.COMMON_MESSAGES; +import com.hedera.services.bdd.spec.HapiSpec; import com.hedera.services.yahcli.Yahcli; +import com.hedera.services.yahcli.config.ConfigUtils; import com.hedera.services.yahcli.suites.UpgradeHelperSuite; import com.swirlds.common.utility.CommonUtils; import java.util.concurrent.Callable; @@ -47,7 +47,7 @@ public class PrepareUpgradeCommand implements Callable { @Override public Integer call() throws Exception { - final var config = configFrom(yahcli); + final var config = ConfigUtils.configFrom(yahcli); final var upgradeFile = "0.0." + upgradeFileNum; final var unhexedHash = CommonUtils.unhex(upgradeFileHash); @@ -55,7 +55,7 @@ public Integer call() throws Exception { delegate.runSuiteSync(); - if (delegate.getFinalSpecs().get(0).getStatus() == PASSED) { + if (delegate.getFinalSpecs().get(0).getStatus() == HapiSpec.SpecStatus.PASSED) { COMMON_MESSAGES.info("SUCCESS - NMT upgrade staged from " + upgradeFile + " artifacts ZIP"); } else { COMMON_MESSAGES.warn("FAILED - NMT software upgrade is not in staged "); diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/system/TelemetryUpgradeCommand.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/system/TelemetryUpgradeCommand.java similarity index 91% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/system/TelemetryUpgradeCommand.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/system/TelemetryUpgradeCommand.java index a8d5da9be065..f6cf1b0e72bc 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/system/TelemetryUpgradeCommand.java +++ b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/system/TelemetryUpgradeCommand.java @@ -16,11 +16,11 @@ package com.hedera.services.yahcli.commands.system; -import static com.hedera.services.bdd.spec.HapiSpec.SpecStatus.PASSED; -import static com.hedera.services.yahcli.config.ConfigUtils.configFrom; import static com.hedera.services.yahcli.output.CommonMessages.COMMON_MESSAGES; +import com.hedera.services.bdd.spec.HapiSpec; import com.hedera.services.yahcli.Yahcli; +import com.hedera.services.yahcli.config.ConfigUtils; import com.hedera.services.yahcli.suites.UpgradeHelperSuite; import com.hedera.services.yahcli.suites.Utils; import com.swirlds.common.utility.CommonUtils; @@ -53,7 +53,7 @@ public class TelemetryUpgradeCommand implements Callable { @Override public Integer call() throws Exception { - final var config = configFrom(yahcli); + final var config = ConfigUtils.configFrom(yahcli); final var upgradeFile = "0.0." + upgradeFileNum; final var unhexedHash = CommonUtils.unhex(upgradeFileHash); @@ -63,7 +63,7 @@ public Integer call() throws Exception { delegate.runSuiteSync(); - if (delegate.getFinalSpecs().get(0).getStatus() == PASSED) { + if (delegate.getFinalSpecs().get(0).getStatus() == HapiSpec.SpecStatus.PASSED) { COMMON_MESSAGES.info("SUCCESS - NMT telemetry upgrade in motion from " + upgradeFile + " artifacts ZIP"); } else { COMMON_MESSAGES.warn("FAILED - NMT telemetry upgrade is not in motion "); diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/system/VersionInfoCommand.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/system/VersionInfoCommand.java similarity index 91% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/system/VersionInfoCommand.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/system/VersionInfoCommand.java index 84948a7f19fe..2cefacf8ad5f 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/system/VersionInfoCommand.java +++ b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/system/VersionInfoCommand.java @@ -16,10 +16,9 @@ package com.hedera.services.yahcli.commands.system; -import static com.hedera.services.yahcli.config.ConfigUtils.configFrom; - import com.hedera.services.bdd.suites.meta.VersionInfoSpec; import com.hedera.services.yahcli.Yahcli; +import com.hedera.services.yahcli.config.ConfigUtils; import java.util.concurrent.Callable; import picocli.CommandLine; @@ -33,7 +32,7 @@ public final class VersionInfoCommand implements Callable { @Override public Integer call() throws Exception { - final var config = configFrom(yahcli); + final var config = ConfigUtils.configFrom(yahcli); final var delegate = new VersionInfoSpec(config.asSpecConfig()); diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/validation/ValidationCommand.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/validation/ValidationCommand.java similarity index 87% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/validation/ValidationCommand.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/validation/ValidationCommand.java index 548339e050ac..6248bc499a88 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/commands/validation/ValidationCommand.java +++ b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/commands/validation/ValidationCommand.java @@ -16,13 +16,10 @@ package com.hedera.services.yahcli.commands.validation; -import static com.hedera.services.bdd.spec.persistence.EntityManager.accountLoc; -import static com.hedera.services.bdd.spec.persistence.EntityManager.scheduleLoc; -import static com.hedera.services.bdd.spec.persistence.EntityManager.tokenLoc; -import static com.hedera.services.bdd.spec.persistence.EntityManager.topicLoc; import static com.hedera.services.yahcli.config.ConfigUtils.configFrom; import static com.hedera.services.yahcli.output.CommonMessages.COMMON_MESSAGES; +import com.hedera.services.bdd.spec.persistence.EntityManager; import com.hedera.services.yahcli.Yahcli; import com.hedera.services.yahcli.suites.PayerFundingSuite; import com.hedera.services.yahcli.suites.SchedulesValidationSuite; @@ -109,16 +106,16 @@ private void validateTokens(Map specConfig) { private String[] usuallyPersistentTokenEntities(String persistenceDir) { return new String[] { - accountLoc(persistenceDir, yaml(PAYER)), - tokenLoc(persistenceDir, yaml(TOKEN)), - accountLoc(persistenceDir, yaml(TREASURY)), - accountLoc(persistenceDir, yaml(RECEIVER)), + EntityManager.accountLoc(persistenceDir, yaml(PAYER)), + EntityManager.tokenLoc(persistenceDir, yaml(TOKEN)), + EntityManager.accountLoc(persistenceDir, yaml(TREASURY)), + EntityManager.accountLoc(persistenceDir, yaml(RECEIVER)), }; } private void ensurePayerBalance(Map specConfig) { var persistenceDir = specConfig.get("persistentEntities.dir.path"); - var persistent = new String[] {accountLoc(persistenceDir, yaml(PAYER))}; + var persistent = new String[] {EntityManager.accountLoc(persistenceDir, yaml(PAYER))}; if (shouldResetEntities) { ensureNoTemplatesExistFor(persistent); } @@ -138,18 +135,19 @@ private void validateScheduling(Map specConfig) { private String[] usuallyPersistentScheduleEntities(String persistenceDir) { return new String[] { - accountLoc(persistenceDir, yaml(PAYER)), - accountLoc(persistenceDir, yaml(SENDER)), - accountLoc(persistenceDir, yaml(RECEIVER)), - topicLoc(persistenceDir, yaml(TOPIC)), - scheduleLoc(persistenceDir, yaml(MUTABLE_SCHEDULE)), - scheduleLoc(persistenceDir, yaml(IMMUTABLE_SCHEDULE)) + EntityManager.accountLoc(persistenceDir, yaml(PAYER)), + EntityManager.accountLoc(persistenceDir, yaml(SENDER)), + EntityManager.accountLoc(persistenceDir, yaml(RECEIVER)), + EntityManager.topicLoc(persistenceDir, yaml(TOPIC)), + EntityManager.scheduleLoc(persistenceDir, yaml(MUTABLE_SCHEDULE)), + EntityManager.scheduleLoc(persistenceDir, yaml(IMMUTABLE_SCHEDULE)) }; } private String[] alwaysResetScheduleEntities(String persistenceDir) { return new String[] { - scheduleLoc(persistenceDir, yaml(MUTABLE_SCHEDULE)), scheduleLoc(persistenceDir, yaml(IMMUTABLE_SCHEDULE)) + EntityManager.scheduleLoc(persistenceDir, yaml(MUTABLE_SCHEDULE)), + EntityManager.scheduleLoc(persistenceDir, yaml(IMMUTABLE_SCHEDULE)) }; } diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/config/ConfigManager.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/config/ConfigManager.java similarity index 90% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/config/ConfigManager.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/config/ConfigManager.java index 453127c4730c..f011c3569b01 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/config/ConfigManager.java +++ b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/config/ConfigManager.java @@ -16,12 +16,11 @@ package com.hedera.services.yahcli.config; -import static com.hedera.services.bdd.spec.HapiPropertySource.asDotDelimitedLongArray; import static com.hedera.services.yahcli.config.ConfigUtils.*; -import static java.util.Objects.requireNonNull; -import static java.util.stream.Collectors.toList; -import static java.util.stream.Collectors.toSet; +import com.hedera.services.bdd.spec.HapiPropertySource; +import com.hedera.services.bdd.spec.persistence.SpecKey; +import com.hedera.services.bdd.spec.utilops.inventory.AccessoryUtils; import com.hedera.services.bdd.suites.utils.sysfiles.serdes.StandardSerdes; import com.hedera.services.bdd.suites.utils.sysfiles.serdes.ThrottlesJsonToGrpcBytes; import com.hedera.services.yahcli.Yahcli; @@ -35,6 +34,7 @@ import java.nio.file.Files; import java.nio.file.Paths; import java.util.*; +import java.util.stream.Collectors; import org.yaml.snakeyaml.LoaderOptions; import org.yaml.snakeyaml.Yaml; import org.yaml.snakeyaml.constructor.Constructor; @@ -124,7 +124,7 @@ private Optional getFinalPassphrase(File keyFile) { return Optional.of(fromEnv); } Optional finalPassphrase = Optional.empty(); - var optPassFile = ConfigUtils.passFileFor(keyFile); + var optPassFile = AccessoryUtils.passFileFor(keyFile); if (optPassFile.isPresent()) { try { finalPassphrase = @@ -136,7 +136,7 @@ private Optional getFinalPassphrase(File keyFile) { } if (!isValid(keyFile, finalPassphrase)) { var prompt = "Please enter the passphrase for key file " + keyFile; - finalPassphrase = promptForPassphrase(keyFile.getPath(), prompt, 3); + finalPassphrase = AccessoryUtils.promptForPassphrase(keyFile.getPath(), prompt, 3); } return finalPassphrase; } @@ -145,6 +145,15 @@ public static boolean isValid(File keyFile, Optional passphrase) { return passphrase.isPresent() && unlocks(keyFile, passphrase.get()); } + static boolean unlocks(File keyFile, String passphrase) { + try { + SpecKey.readFirstKpFromPem(keyFile, passphrase); + return true; + } catch (Exception ignore) { + return false; + } + } + public String keysLoc() { return targetName + "/keys"; } @@ -165,7 +174,8 @@ public int numNodesInTargetNet() { } catch (IOException e) { throw new UncheckedIOException(e); } - final var baseNetwork = requireNonNull(freshConfig.global.getNetworks().get(targetName)); + final var baseNetwork = + Objects.requireNonNull(freshConfig.global.getNetworks().get(targetName)); return baseNetwork.getNodes().size(); } @@ -177,11 +187,12 @@ public Set nodeIdsInTargetNet() { } catch (IOException e) { throw new UncheckedIOException(e); } - final var baseNetwork = requireNonNull(freshConfig.global.getNetworks().get(targetName)); + final var baseNetwork = + Objects.requireNonNull(freshConfig.global.getNetworks().get(targetName)); return baseNetwork.getNodes().stream() .map(NodeConfig::getId) .map(i -> (long) i) - .collect(toSet()); + .collect(Collectors.toSet()); } public void assertNoMissingDefaults() { @@ -222,14 +233,14 @@ private void assertTargetNetIsKnown() { yahcli.getConfigLoc(), global.getNetworks().keySet().stream() .map(s -> "'" + s + "'") - .collect(toList()))); + .collect(Collectors.toList()))); } targetNet = global.getNetworks().get(targetName); if (yahcli.getNodeIpv4Addr() != null) { final var ip = yahcli.getNodeIpv4Addr(); var nodeAccount = (yahcli.getNodeAccount() == null) ? MISSING_NODE_ACCOUNT - : asDotDelimitedLongArray(yahcli.getNodeAccount())[2]; + : HapiPropertySource.asDotDelimitedLongArray(yahcli.getNodeAccount())[2]; final var nodes = targetNet.getNodes(); if (nodeAccount == MISSING_NODE_ACCOUNT) { for (final var node : nodes) { diff --git a/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/config/ConfigUtils.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/config/ConfigUtils.java new file mode 100644 index 000000000000..d9bee12ec24e --- /dev/null +++ b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/config/ConfigUtils.java @@ -0,0 +1,113 @@ +/* + * Copyright (C) 2021-2024 Hedera Hashgraph, LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.hedera.services.yahcli.config; + +import static com.hedera.services.bdd.spec.utilops.inventory.AccessoryUtils.keyFileAt; +import static com.hedera.services.yahcli.output.CommonMessages.COMMON_MESSAGES; + +import com.hedera.services.bdd.spec.HapiSpec; +import com.hedera.services.bdd.spec.fees.FeesAndRatesProvider; +import com.hedera.services.bdd.spec.infrastructure.HapiApiClients; +import com.hedera.services.bdd.spec.props.MapPropertySource; +import com.hedera.services.bdd.spec.queries.HapiQueryOp; +import com.hedera.services.bdd.spec.queries.file.HapiGetFileContents; +import com.hedera.services.bdd.spec.transactions.HapiTxnOp; +import com.hedera.services.bdd.spec.utilops.CustomSpecAssert; +import com.hedera.services.bdd.spec.utilops.inventory.AccessoryUtils; +import com.hedera.services.bdd.suites.meta.VersionInfoSpec; +import com.hedera.services.yahcli.Yahcli; +import com.hedera.services.yahcli.suites.*; +import java.io.File; +import java.io.IOException; +import java.util.List; +import java.util.Optional; + +public class ConfigUtils { + private ConfigUtils() { + throw new UnsupportedOperationException("Utility Class"); + } + + public static String asId(String entity) { + try { + int number = Integer.parseInt(entity); + return "0.0." + number; + } catch (NumberFormatException ignore) { + } + return entity; + } + + public static boolean isLiteral(String entity) { + return entity.startsWith("0.0."); + } + + public static Optional keyFileFor(String keysLoc, String typedNum) { + return keyFileAt(keysLoc + File.separator + typedNum); + } + + public static File uncheckedKeyFileFor(String keysLoc, String typedNum) { + final var fileLoc = keysLoc + File.separator + typedNum; + final var file = keyFileAt(fileLoc); + if (file.isEmpty()) { + throw new IllegalArgumentException("No such key file " + fileLoc); + } else { + return file.get(); + } + } + + public static void ensureDir(String loc) { + File f = new File(loc); + if (!f.exists()) { + if (!f.mkdirs()) { + throw new IllegalStateException("Failed to create directory: " + f.getAbsolutePath()); + } + } + } + + public static ConfigManager configFrom(Yahcli yahcli) throws IOException { + System.out.println("Log level is " + yahcli.getLogLevel()); + AccessoryUtils.setLogLevels(yahcli.getLogLevel(), YAHCLI_LOGGING_CLASSES); + var config = ConfigManager.from(yahcli); + config.assertNoMissingDefaults(); + COMMON_MESSAGES.printGlobalInfo(config); + return config; + } + + public static List> YAHCLI_LOGGING_CLASSES = List.of( + BalanceSuite.class, + RekeySuite.class, + SysFileUploadSuite.class, + SysFileDownloadSuite.class, + SchedulesValidationSuite.class, + FreezeHelperSuite.class, + UpgradeHelperSuite.class, + CostOfEveryThingSuite.class, + MapPropertySource.class, + HapiApiClients.class, + FeesAndRatesProvider.class, + HapiQueryOp.class, + HapiTxnOp.class, + HapiGetFileContents.class, + HapiSpec.class, + VersionInfoSpec.class, + SendSuite.class, + ScheduleSuite.class, + CreateSuite.class, + SpecialFileHashSuite.class, + StakeSuite.class, + StakeSetupSuite.class, + CustomSpecAssert.class); +} diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/config/domain/GlobalConfig.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/config/domain/GlobalConfig.java similarity index 100% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/config/domain/GlobalConfig.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/config/domain/GlobalConfig.java diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/config/domain/NetConfig.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/config/domain/NetConfig.java similarity index 96% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/config/domain/NetConfig.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/config/domain/NetConfig.java index 14c04f8548b6..4327026da917 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/config/domain/NetConfig.java +++ b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/config/domain/NetConfig.java @@ -16,13 +16,12 @@ package com.hedera.services.yahcli.config.domain; -import static java.util.stream.Collectors.joining; - import com.google.common.base.MoreObjects; import com.hedera.services.yahcli.output.CommonMessages; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; public class NetConfig { public static final Integer TRADITIONAL_DEFAULT_NODE_ACCOUNT = 3; @@ -70,7 +69,7 @@ public String fqDefaultNodeAccount() { public Map toSpecProperties() { Map customProps = new HashMap<>(); - customProps.put("nodes", nodes.stream().map(NodeConfig::asNodesItem).collect(joining(","))); + customProps.put("nodes", nodes.stream().map(NodeConfig::asNodesItem).collect(Collectors.joining(","))); return customProps; } diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/config/domain/NodeConfig.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/config/domain/NodeConfig.java similarity index 100% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/config/domain/NodeConfig.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/config/domain/NodeConfig.java diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/output/CommonMessages.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/output/CommonMessages.java similarity index 89% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/output/CommonMessages.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/output/CommonMessages.java index 17d61ab035c1..8382b33fdaf3 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/output/CommonMessages.java +++ b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/output/CommonMessages.java @@ -16,10 +16,9 @@ package com.hedera.services.yahcli.output; -import static com.hedera.services.bdd.spec.queries.QueryUtils.reflectForPrecheck; -import static com.hedera.services.yahcli.config.ConfigUtils.asId; - +import com.hedera.services.bdd.spec.queries.QueryUtils; import com.hedera.services.yahcli.config.ConfigManager; +import com.hedera.services.yahcli.config.ConfigUtils; import com.hedera.services.yahcli.suites.Utils; import com.hederahashgraph.api.proto.java.FileID; import com.hederahashgraph.api.proto.java.Response; @@ -37,7 +36,8 @@ public void info(String notice) { } public void printGlobalInfo(ConfigManager config) { - var msg = String.format("Targeting %s, paying with %s", config.getTargetName(), asId(config.getDefaultPayer())); + var msg = String.format( + "Targeting %s, paying with %s", config.getTargetName(), ConfigUtils.asId(config.getDefaultPayer())); System.out.println(msg); } @@ -78,7 +78,7 @@ public void downloadBeginning(FileID target) { public void downloadEnding(Response response) { try { - var precheck = reflectForPrecheck(response); + var precheck = QueryUtils.reflectForPrecheck(response); System.out.println(precheck.toString()); } catch (Throwable throwable) { throwable.printStackTrace(); diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/BalanceSuite.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/BalanceSuite.java similarity index 100% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/BalanceSuite.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/BalanceSuite.java diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/CostOfEveryThingSuite.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/CostOfEveryThingSuite.java similarity index 59% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/CostOfEveryThingSuite.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/CostOfEveryThingSuite.java index cc3ff472b4b7..de02a2667fce 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/CostOfEveryThingSuite.java +++ b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/CostOfEveryThingSuite.java @@ -16,63 +16,19 @@ package com.hedera.services.yahcli.suites; -import static com.hedera.services.bdd.spec.HapiSpec.CostSnapshotMode.TAKE; -import static com.hedera.services.bdd.spec.keys.KeyShape.SIMPLE; -import static com.hedera.services.bdd.spec.keys.KeyShape.listOf; -import static com.hedera.services.bdd.spec.queries.QueryVerbs.contractCallLocal; -import static com.hedera.services.bdd.spec.queries.QueryVerbs.getAccountInfo; -import static com.hedera.services.bdd.spec.queries.QueryVerbs.getAccountRecords; -import static com.hedera.services.bdd.spec.queries.QueryVerbs.getContractBytecode; -import static com.hedera.services.bdd.spec.queries.QueryVerbs.getContractInfo; -import static com.hedera.services.bdd.spec.queries.QueryVerbs.getFileContents; -import static com.hedera.services.bdd.spec.queries.QueryVerbs.getFileInfo; -import static com.hedera.services.bdd.spec.queries.QueryVerbs.getScheduleInfo; -import static com.hedera.services.bdd.spec.queries.QueryVerbs.getTokenInfo; -import static com.hedera.services.bdd.spec.queries.QueryVerbs.getTopicInfo; -import static com.hedera.services.bdd.spec.transactions.TxnUtils.randomUtf8Bytes; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.burnToken; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.contractCall; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.contractCreate; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.contractDelete; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.contractUpdate; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.createTopic; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.cryptoCreate; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.cryptoDelete; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.cryptoTransfer; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.cryptoUpdate; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.deleteTopic; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.fileAppend; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.fileCreate; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.fileDelete; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.fileUpdate; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.grantTokenKyc; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.mintToken; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.revokeTokenKyc; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.scheduleCreate; import static com.hedera.services.bdd.spec.transactions.TxnVerbs.scheduleDelete; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.scheduleSign; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.submitMessageTo; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.tokenAssociate; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.tokenCreate; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.tokenDelete; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.tokenDissociate; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.tokenFreeze; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.tokenUnfreeze; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.tokenUpdate; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.updateTopic; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.uploadInitCode; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.wipeTokenAccount; -import static com.hedera.services.bdd.spec.transactions.crypto.HapiCryptoTransfer.tinyBarsFromTo; -import static com.hedera.services.bdd.spec.transactions.token.TokenMovement.moving; import static com.hedera.services.bdd.spec.utilops.UtilVerbs.getTransactionFee; -import static com.hedera.services.bdd.spec.utilops.UtilVerbs.newKeyListNamed; -import static com.hedera.services.bdd.spec.utilops.UtilVerbs.newKeyNamed; import static com.hedera.services.bdd.spec.utilops.UtilVerbs.withOpContext; import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.SUCCESS; -import static java.util.Optional.ofNullable; -import static java.util.stream.Collectors.toList; import com.hedera.services.bdd.spec.HapiSpec; +import com.hedera.services.bdd.spec.keys.KeyShape; +import com.hedera.services.bdd.spec.queries.QueryVerbs; +import com.hedera.services.bdd.spec.transactions.TxnUtils; +import com.hedera.services.bdd.spec.transactions.TxnVerbs; +import com.hedera.services.bdd.spec.transactions.crypto.HapiCryptoTransfer; +import com.hedera.services.bdd.spec.transactions.token.TokenMovement; +import com.hedera.services.bdd.spec.utilops.UtilVerbs; import com.hedera.services.bdd.suites.HapiSuite; import java.nio.charset.StandardCharsets; import java.time.Instant; @@ -80,6 +36,7 @@ import java.util.List; import java.util.Map; import java.util.Optional; +import java.util.stream.Collectors; import java.util.stream.Stream; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -99,7 +56,7 @@ public class CostOfEveryThingSuite extends HapiSuite { private static final String TEST_TOKEN = "testToken"; private static final String CANONICAL_ACCOUNT = "canonicalAccount"; - HapiSpec.CostSnapshotMode costSnapshotMode = TAKE; + HapiSpec.CostSnapshotMode costSnapshotMode = HapiSpec.CostSnapshotMode.TAKE; private final Map specConfig; private final EnumSet ServiceTypes; private StringBuilder feeTableBuilder; @@ -125,57 +82,67 @@ protected Logger getResultsLogger() { @Override public List getSpecsInSuite() { return Stream.of( - ofNullable(ServiceTypes.contains(Utils.ServiceType.CRYPTO) ? canonicalCryptoOps() : null), - ofNullable(ServiceTypes.contains(Utils.ServiceType.CONSENSUS) ? canonicalTopicOps() : null), - ofNullable(ServiceTypes.contains(Utils.ServiceType.TOKEN) ? canonicalTokenOps() : null), - ofNullable(ServiceTypes.contains(Utils.ServiceType.FILE) ? canonicalFileOps() : null), - ofNullable(ServiceTypes.contains(Utils.ServiceType.CONTRACT) ? canonicalContractOps() : null), - ofNullable(ServiceTypes.contains(Utils.ServiceType.SCHEDULED) ? canonicalScheduleOps() : null)) + Optional.ofNullable( + ServiceTypes.contains(Utils.ServiceType.CRYPTO) ? canonicalCryptoOps() : null), + Optional.ofNullable( + ServiceTypes.contains(Utils.ServiceType.CONSENSUS) ? canonicalTopicOps() : null), + Optional.ofNullable( + ServiceTypes.contains(Utils.ServiceType.TOKEN) ? canonicalTokenOps() : null), + Optional.ofNullable(ServiceTypes.contains(Utils.ServiceType.FILE) ? canonicalFileOps() : null), + Optional.ofNullable( + ServiceTypes.contains(Utils.ServiceType.CONTRACT) ? canonicalContractOps() : null), + Optional.ofNullable( + ServiceTypes.contains(Utils.ServiceType.SCHEDULED) ? canonicalScheduleOps() : null)) .flatMap(Optional::stream) - .collect(toList()); + .collect(Collectors.toList()); } HapiSpec canonicalContractOps() { return HapiSpec.customHapiSpec("canonicalContractOps") .withProperties(specConfig, Map.of(COST_SNAPSHOT_MODE, costSnapshotMode.toString())) .given( - newKeyNamed("key").shape(SIMPLE), - cryptoCreate(PAYER).key("key").balance(10_000_000_000L), - fileCreate("contractFile") + UtilVerbs.newKeyNamed("key").shape(KeyShape.SIMPLE), + TxnVerbs.cryptoCreate(PAYER).key("key").balance(10_000_000_000L), + TxnVerbs.fileCreate("contractFile") .payingWith(PAYER) .fromResource("contract/contracts/CreateTrivial/CreateTrivial.bin")) .when( - uploadInitCode(contract), - contractCreate(contract) + TxnVerbs.uploadInitCode(contract), + TxnVerbs.contractCreate(contract) .blankMemo() .entityMemo("") .bytecode("contractFile") .adminKey("key") - .autoRenewSecs(THREE_MONTHS_IN_SECONDS - 1) + .autoRenewSecs(HapiSuite.THREE_MONTHS_IN_SECONDS - 1) .gas(30000) .payingWith(PAYER) .hasKnownStatus(SUCCESS) .via("canonicalContractCreate"), - contractUpdate(contract) + TxnVerbs.contractUpdate(contract) .newMemo("") .blankMemo() .payingWith(PAYER) .newKey("key") - .newExpirySecs(THREE_MONTHS_IN_SECONDS) + .newExpirySecs(HapiSuite.THREE_MONTHS_IN_SECONDS) .via("canonicalContractUpdate"), - contractCall(contract, "create") + TxnVerbs.contractCall(contract, "create") .blankMemo() .payingWith(PAYER) .gas(100000) .via("canonicalContractCall"), - getContractInfo(contract).payingWith(PAYER).via("canonicalGetContractInfo"), - contractCallLocal(contract, "getIndirect") + QueryVerbs.getContractInfo(contract).payingWith(PAYER).via("canonicalGetContractInfo"), + QueryVerbs.contractCallLocal(contract, "getIndirect") .payingWith(PAYER) .nodePayment(100_000_000) .gas(50000) .via("canonicalContractCallLocal"), - getContractBytecode(contract).payingWith(PAYER).via("canonicalGetContractByteCode"), - contractDelete(contract).blankMemo().payingWith(PAYER).via("canonicalContractDelete")) + QueryVerbs.getContractBytecode(contract) + .payingWith(PAYER) + .via("canonicalGetContractByteCode"), + TxnVerbs.contractDelete(contract) + .blankMemo() + .payingWith(PAYER) + .via("canonicalContractDelete")) .then( withOpContext((spec, log) -> appendServiceName("Smart Contract Service")), getTransactionFee("canonicalContractCreate", feeTableBuilder, "contractCreate"), @@ -189,39 +156,42 @@ HapiSpec canonicalContractOps() { HapiSpec canonicalFileOps() { int fileSize = 1000; - final byte[] first = randomUtf8Bytes(fileSize); - final byte[] next = randomUtf8Bytes(fileSize); + final byte[] first = TxnUtils.randomUtf8Bytes(fileSize); + final byte[] next = TxnUtils.randomUtf8Bytes(fileSize); return HapiSpec.customHapiSpec("canonicalFileOps") .withProperties(specConfig, Map.of(COST_SNAPSHOT_MODE, costSnapshotMode.toString())) .given( - newKeyNamed("key").shape(SIMPLE), - cryptoCreate(PAYER).key("key").balance(1_000_000_000L), - newKeyListNamed("WACL", List.of(PAYER)), - fileCreate(MEMORABLE) + UtilVerbs.newKeyNamed("key").shape(KeyShape.SIMPLE), + TxnVerbs.cryptoCreate(PAYER).key("key").balance(1_000_000_000L), + UtilVerbs.newKeyListNamed("WACL", List.of(PAYER)), + TxnVerbs.fileCreate(MEMORABLE) .blankMemo() .entityMemo("") .payingWith(PAYER) .key("WACL") - .expiry(Instant.now().getEpochSecond() + THREE_MONTHS_IN_SECONDS - 1) + .expiry(Instant.now().getEpochSecond() + HapiSuite.THREE_MONTHS_IN_SECONDS - 1) .contents(first) .via("canonicalFileCreate")) .when( - fileAppend(MEMORABLE) + TxnVerbs.fileAppend(MEMORABLE) .blankMemo() .payingWith(PAYER) .content(next) .via("canonicalFileAppend"), - fileUpdate(MEMORABLE) + TxnVerbs.fileUpdate(MEMORABLE) .blankMemo() .entityMemo("") .payingWith(PAYER) .contents(next) .extendingExpiryBy(1L) .via("canonicalFileUpdate"), - getFileContents(MEMORABLE).via("canonicalGetFileContents"), - getFileInfo(MEMORABLE).via("canonicalGetFileInfo"), - fileDelete(MEMORABLE).blankMemo().payingWith(PAYER).via("canonicalFileDelete")) + QueryVerbs.getFileContents(MEMORABLE).via("canonicalGetFileContents"), + QueryVerbs.getFileInfo(MEMORABLE).via("canonicalGetFileInfo"), + TxnVerbs.fileDelete(MEMORABLE) + .blankMemo() + .payingWith(PAYER) + .via("canonicalFileDelete")) .then( withOpContext((spec, log) -> appendServiceName("File Service")), getTransactionFee("canonicalFileCreate", feeTableBuilder, "fileCreate"), @@ -236,29 +206,29 @@ HapiSpec canonicalTopicOps() { return HapiSpec.customHapiSpec("canonicalTopicOps") .withProperties(specConfig, Map.of(COST_SNAPSHOT_MODE, costSnapshotMode.toString())) .given( - newKeyNamed("key").shape(SIMPLE), - cryptoCreate(PAYER).key("key").balance(100_000_000L)) + UtilVerbs.newKeyNamed("key").shape(KeyShape.SIMPLE), + TxnVerbs.cryptoCreate(PAYER).key("key").balance(100_000_000L)) .when( - createTopic(TEST_TOPIC) + TxnVerbs.createTopic(TEST_TOPIC) .blankMemo() .topicMemo("") - .autoRenewPeriod(THREE_MONTHS_IN_SECONDS - 1) + .autoRenewPeriod(HapiSuite.THREE_MONTHS_IN_SECONDS - 1) .adminKeyName(PAYER) .payingWith(PAYER) .via("canonicalTopicCreate"), - updateTopic(TEST_TOPIC) + TxnVerbs.updateTopic(TEST_TOPIC) .blankMemo() .topicMemo("") .payingWith(PAYER) - .autoRenewPeriod(THREE_MONTHS_IN_SECONDS) + .autoRenewPeriod(HapiSuite.THREE_MONTHS_IN_SECONDS) .via("canonicalTopicUpdate"), - submitMessageTo(TEST_TOPIC) + TxnVerbs.submitMessageTo(TEST_TOPIC) .message("testMessage") .payingWith(PAYER) .hasKnownStatus(SUCCESS) .via("canonicalSubmitMessage"), - getTopicInfo(TEST_TOPIC).payingWith(PAYER).via("canonicalGetTopicInfo"), - deleteTopic(TEST_TOPIC).payingWith(PAYER).via("canonicalTopicDelete")) + QueryVerbs.getTopicInfo(TEST_TOPIC).payingWith(PAYER).via("canonicalGetTopicInfo"), + TxnVerbs.deleteTopic(TEST_TOPIC).payingWith(PAYER).via("canonicalTopicDelete")) .then( withOpContext((spec, log) -> appendServiceName("Consensus Service")), getTransactionFee("canonicalTopicCreate", feeTableBuilder, "consensusCreateTopic"), @@ -272,39 +242,41 @@ HapiSpec canonicalTokenOps() { return HapiSpec.customHapiSpec("canonicalTokenOps") .withProperties(specConfig, Map.of(COST_SNAPSHOT_MODE, costSnapshotMode.toString())) .given( - newKeyNamed("key").shape(SIMPLE), - newKeyNamed(ADMIN_KEY).shape(listOf(3)), - newKeyNamed("freezeKey"), - newKeyNamed("kycKey"), - newKeyNamed("supplyKey"), - newKeyNamed("wipeKey"), - cryptoCreate(TOKEN_TREASURY).key("key").balance(1_000 * ONE_HBAR), - cryptoCreate(AUTO_RENEW_ACCOUNT).key(ADMIN_KEY).balance(0L), - cryptoCreate(TEST_ACCOUNT_A).key(ADMIN_KEY)) + UtilVerbs.newKeyNamed("key").shape(KeyShape.SIMPLE), + UtilVerbs.newKeyNamed(ADMIN_KEY).shape(KeyShape.listOf(3)), + UtilVerbs.newKeyNamed("freezeKey"), + UtilVerbs.newKeyNamed("kycKey"), + UtilVerbs.newKeyNamed("supplyKey"), + UtilVerbs.newKeyNamed("wipeKey"), + TxnVerbs.cryptoCreate(HapiSuite.TOKEN_TREASURY) + .key("key") + .balance(1_000 * HapiSuite.ONE_HBAR), + TxnVerbs.cryptoCreate(AUTO_RENEW_ACCOUNT).key(ADMIN_KEY).balance(0L), + TxnVerbs.cryptoCreate(TEST_ACCOUNT_A).key(ADMIN_KEY)) .when( - tokenCreate("primary") + TxnVerbs.tokenCreate("primary") .entityMemo("") .blankMemo() - .name(new String(randomUtf8Bytes(12), StandardCharsets.UTF_8)) - .symbol(new String(randomUtf8Bytes(4), StandardCharsets.UTF_8)) - .treasury(TOKEN_TREASURY) + .name(new String(TxnUtils.randomUtf8Bytes(12), StandardCharsets.UTF_8)) + .symbol(new String(TxnUtils.randomUtf8Bytes(4), StandardCharsets.UTF_8)) + .treasury(HapiSuite.TOKEN_TREASURY) .autoRenewAccount(AUTO_RENEW_ACCOUNT) - .autoRenewPeriod(THREE_MONTHS_IN_SECONDS - 1) + .autoRenewPeriod(HapiSuite.THREE_MONTHS_IN_SECONDS - 1) .adminKey(ADMIN_KEY) - .payingWith(TOKEN_TREASURY) + .payingWith(HapiSuite.TOKEN_TREASURY) .via("canonicalTokenCreate"), - tokenUpdate("primary") + TxnVerbs.tokenUpdate("primary") .entityMemo("") .blankMemo() - .payingWith(TOKEN_TREASURY) - .autoRenewPeriod(THREE_MONTHS_IN_SECONDS) + .payingWith(HapiSuite.TOKEN_TREASURY) + .autoRenewPeriod(HapiSuite.THREE_MONTHS_IN_SECONDS) .via("canonicalTokenUpdate"), - tokenCreate(TEST_TOKEN) + TxnVerbs.tokenCreate(TEST_TOKEN) .entityMemo("") .name("testCoin") - .treasury(TOKEN_TREASURY) + .treasury(HapiSuite.TOKEN_TREASURY) .autoRenewAccount(AUTO_RENEW_ACCOUNT) - .autoRenewPeriod(THREE_MONTHS_IN_SECONDS) + .autoRenewPeriod(HapiSuite.THREE_MONTHS_IN_SECONDS) .initialSupply(500) .decimals(1) .adminKey(ADMIN_KEY) @@ -312,50 +284,53 @@ HapiSpec canonicalTokenOps() { .kycKey("kycKey") .supplyKey("supplyKey") .wipeKey("wipeKey"), - mintToken(TEST_TOKEN, 1) + TxnVerbs.mintToken(TEST_TOKEN, 1) .blankMemo() - .payingWith(TOKEN_TREASURY) + .payingWith(HapiSuite.TOKEN_TREASURY) .via("cannonicalMintToken"), - burnToken(TEST_TOKEN, 1) + TxnVerbs.burnToken(TEST_TOKEN, 1) .blankMemo() - .payingWith(TOKEN_TREASURY) + .payingWith(HapiSuite.TOKEN_TREASURY) .via("canonicalBurnToken"), - tokenAssociate(TEST_ACCOUNT_A, TEST_TOKEN) + TxnVerbs.tokenAssociate(TEST_ACCOUNT_A, TEST_TOKEN) .blankMemo() - .payingWith(TOKEN_TREASURY) + .payingWith(HapiSuite.TOKEN_TREASURY) .via("canonicalTokenAssociation"), - revokeTokenKyc(TEST_TOKEN, TEST_ACCOUNT_A) + TxnVerbs.revokeTokenKyc(TEST_TOKEN, TEST_ACCOUNT_A) .blankMemo() - .payingWith(TOKEN_TREASURY) + .payingWith(HapiSuite.TOKEN_TREASURY) .via("canonicalTokenRevokeKyc"), - grantTokenKyc(TEST_TOKEN, TEST_ACCOUNT_A) + TxnVerbs.grantTokenKyc(TEST_TOKEN, TEST_ACCOUNT_A) .blankMemo() - .payingWith(TOKEN_TREASURY) + .payingWith(HapiSuite.TOKEN_TREASURY) .via("canonicalTokenGrantKyc"), - tokenFreeze(TEST_TOKEN, TEST_ACCOUNT_A) + TxnVerbs.tokenFreeze(TEST_TOKEN, TEST_ACCOUNT_A) .blankMemo() - .payingWith(TOKEN_TREASURY) + .payingWith(HapiSuite.TOKEN_TREASURY) .via("canonicalTokenFreeze"), - tokenUnfreeze(TEST_TOKEN, TEST_ACCOUNT_A) + TxnVerbs.tokenUnfreeze(TEST_TOKEN, TEST_ACCOUNT_A) .blankMemo() - .payingWith(TOKEN_TREASURY) + .payingWith(HapiSuite.TOKEN_TREASURY) .via("canonicalTokenUnFreeze"), - cryptoTransfer(moving(1, TEST_TOKEN).between(TOKEN_TREASURY, TEST_ACCOUNT_A)) + TxnVerbs.cryptoTransfer(TokenMovement.moving(1, TEST_TOKEN) + .between(HapiSuite.TOKEN_TREASURY, TEST_ACCOUNT_A)) .blankMemo() - .payingWith(TOKEN_TREASURY) + .payingWith(HapiSuite.TOKEN_TREASURY) .via("canonicalTokenTransfer"), - wipeTokenAccount(TEST_TOKEN, TEST_ACCOUNT_A, 1) - .payingWith(TOKEN_TREASURY) + TxnVerbs.wipeTokenAccount(TEST_TOKEN, TEST_ACCOUNT_A, 1) + .payingWith(HapiSuite.TOKEN_TREASURY) .blankMemo() .via("canonicalTokenWipe"), - tokenDissociate(TEST_ACCOUNT_A, TEST_TOKEN) + TxnVerbs.tokenDissociate(TEST_ACCOUNT_A, TEST_TOKEN) .blankMemo() - .payingWith(TOKEN_TREASURY) + .payingWith(HapiSuite.TOKEN_TREASURY) .via("canonicalTokenDissociation"), - getTokenInfo(TEST_TOKEN).payingWith(TOKEN_TREASURY).via("canonicalTokenGetInfo"), - tokenDelete(TEST_TOKEN) + QueryVerbs.getTokenInfo(TEST_TOKEN) + .payingWith(HapiSuite.TOKEN_TREASURY) + .via("canonicalTokenGetInfo"), + TxnVerbs.tokenDelete(TEST_TOKEN) .blankMemo() - .payingWith(TOKEN_TREASURY) + .payingWith(HapiSuite.TOKEN_TREASURY) .via("canonicalTokenDelete")) .then( withOpContext((spec, log) -> appendServiceName("Token Service")), @@ -380,35 +355,35 @@ HapiSpec canonicalCryptoOps() { return HapiSpec.customHapiSpec("canonicalCryptoOps") .withProperties(specConfig, Map.of(COST_SNAPSHOT_MODE, costSnapshotMode.toString())) .given( - newKeyNamed("key").shape(SIMPLE), - cryptoCreate(PAYER).key("key").balance(1_000 * ONE_HBAR)) + UtilVerbs.newKeyNamed("key").shape(KeyShape.SIMPLE), + TxnVerbs.cryptoCreate(PAYER).key("key").balance(1_000 * HapiSuite.ONE_HBAR)) .when( - cryptoCreate(CANONICAL_ACCOUNT) + TxnVerbs.cryptoCreate(CANONICAL_ACCOUNT) .key("key") .blankMemo() - .balance(100 * ONE_HBAR) + .balance(100 * HapiSuite.ONE_HBAR) .entityMemo("") - .autoRenewSecs(THREE_MONTHS_IN_SECONDS) + .autoRenewSecs(HapiSuite.THREE_MONTHS_IN_SECONDS) .payingWith(PAYER) .via("canonicalCryptoCreation"), - cryptoUpdate(CANONICAL_ACCOUNT) + TxnVerbs.cryptoUpdate(CANONICAL_ACCOUNT) .payingWith(CANONICAL_ACCOUNT) .blankMemo() - .expiring(Instant.now().getEpochSecond() + THREE_MONTHS_IN_SECONDS) + .expiring(Instant.now().getEpochSecond() + HapiSuite.THREE_MONTHS_IN_SECONDS) .entityMemo("") .via("canonicalCryptoUpdate"), - cryptoCreate("testAccount").key("key"), - cryptoTransfer(tinyBarsFromTo(CANONICAL_ACCOUNT, "testAccount", 1L)) + TxnVerbs.cryptoCreate("testAccount").key("key"), + TxnVerbs.cryptoTransfer(HapiCryptoTransfer.tinyBarsFromTo(CANONICAL_ACCOUNT, "testAccount", 1L)) .payingWith(CANONICAL_ACCOUNT) .blankMemo() .via("canonicalCryptoTransfer"), - getAccountRecords(CANONICAL_ACCOUNT).via("canonicalGetRecords"), - getAccountInfo(CANONICAL_ACCOUNT).via("canonicalGetAccountInfo"), - cryptoCreate("canonicalAccountTBD") + QueryVerbs.getAccountRecords(CANONICAL_ACCOUNT).via("canonicalGetRecords"), + QueryVerbs.getAccountInfo(CANONICAL_ACCOUNT).via("canonicalGetAccountInfo"), + TxnVerbs.cryptoCreate("canonicalAccountTBD") .blankMemo() .entityMemo("") .payingWith(PAYER), - cryptoDelete("canonicalAccountTBD") + TxnVerbs.cryptoDelete("canonicalAccountTBD") .blankMemo() .payingWith(PAYER) .via("canonicalCryptoDeletion")) @@ -426,27 +401,29 @@ HapiSpec canonicalScheduleOps() { return HapiSpec.customHapiSpec("canonicalScheduleOps") .withProperties(specConfig, Map.of(COST_SNAPSHOT_MODE, costSnapshotMode.toString())) .given( - cryptoCreate(PAYING_SENDER).balance(ONE_HUNDRED_HBARS), - cryptoCreate(RECEIVER).balance(0L).receiverSigRequired(true)) + TxnVerbs.cryptoCreate(PAYING_SENDER).balance(HapiSuite.ONE_HUNDRED_HBARS), + TxnVerbs.cryptoCreate(RECEIVER).balance(0L).receiverSigRequired(true)) .when( - scheduleCreate( + TxnVerbs.scheduleCreate( CANONICAL_SCHEDULE, - cryptoTransfer(tinyBarsFromTo(PAYING_SENDER, RECEIVER, 1L)) + TxnVerbs.cryptoTransfer( + HapiCryptoTransfer.tinyBarsFromTo(PAYING_SENDER, RECEIVER, 1L)) .memo("") - .fee(ONE_HBAR)) + .fee(HapiSuite.ONE_HBAR)) .via("canonicalScheduleCreation") .payingWith(PAYING_SENDER) .adminKey(PAYING_SENDER), - getScheduleInfo(CANONICAL_SCHEDULE).payingWith(PAYING_SENDER), - scheduleSign(CANONICAL_SCHEDULE) + QueryVerbs.getScheduleInfo(CANONICAL_SCHEDULE).payingWith(PAYING_SENDER), + TxnVerbs.scheduleSign(CANONICAL_SCHEDULE) .via("canonicalScheduleSigning") .payingWith(PAYING_SENDER) .alsoSigningWith(RECEIVER), - scheduleCreate( + TxnVerbs.scheduleCreate( "tbd", - cryptoTransfer(tinyBarsFromTo(PAYING_SENDER, RECEIVER, 1L)) + TxnVerbs.cryptoTransfer( + HapiCryptoTransfer.tinyBarsFromTo(PAYING_SENDER, RECEIVER, 1L)) .memo("") - .fee(ONE_HBAR) + .fee(HapiSuite.ONE_HBAR) .signedBy(PAYING_SENDER)) .payingWith(PAYING_SENDER) .adminKey(PAYING_SENDER), diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/CreateSuite.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/CreateSuite.java similarity index 88% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/CreateSuite.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/CreateSuite.java index 5d9294f58012..bb4904336ab2 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/CreateSuite.java +++ b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/CreateSuite.java @@ -16,16 +16,15 @@ package com.hedera.services.yahcli.suites; -import static com.hedera.services.bdd.spec.keys.SigControl.ED25519_ON; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.cryptoCreate; -import static com.hedera.services.bdd.spec.utilops.CustomSpecAssert.allRunFor; -import static com.hedera.services.bdd.spec.utilops.UtilVerbs.newKeyNamed; -import static com.hedera.services.bdd.spec.utilops.UtilVerbs.withOpContext; import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.BUSY; import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.OK; import com.hedera.services.bdd.spec.HapiSpec; +import com.hedera.services.bdd.spec.keys.SigControl; import com.hedera.services.bdd.spec.transactions.TxnUtils; +import com.hedera.services.bdd.spec.transactions.TxnVerbs; +import com.hedera.services.bdd.spec.utilops.CustomSpecAssert; +import com.hedera.services.bdd.spec.utilops.UtilVerbs; import com.hedera.services.bdd.suites.HapiSuite; import java.io.File; import java.nio.file.Files; @@ -84,15 +83,15 @@ private HapiSpec doCreate() { final var novelPass = TxnUtils.randomAlphaNumeric(12); return HapiSpec.customHapiSpec("DoCreate") .withProperties(specConfig) - .given(newKeyNamed(newKey) - .shape(ED25519_ON) + .given(UtilVerbs.newKeyNamed(newKey) + .shape(SigControl.ED25519_ON) .exportingTo(novelTarget, novelPass) .includingEd25519Mnemonic()) - .when(withOpContext((spec, opLog) -> { + .when(UtilVerbs.withOpContext((spec, opLog) -> { int attemptNo = 1; do { System.out.print("Creation attempt #" + attemptNo + "..."); - final var creation = cryptoCreate(newAccount) + final var creation = TxnVerbs.cryptoCreate(newAccount) .balance(initialBalance) .blankMemo() .entityMemo(memo) @@ -101,7 +100,7 @@ private HapiSpec doCreate() { .hasPrecheckFrom(OK, BUSY) .exposingCreatedIdTo(id -> createdNo.set(id.getAccountNum())) .noLogging(); - allRunFor(spec, creation); + CustomSpecAssert.allRunFor(spec, creation); if (creation.getActualPrecheck() == OK) { System.out.println("SUCCESS"); success.set(true); @@ -115,7 +114,7 @@ private HapiSpec doCreate() { } } while (attemptNo++ <= numBusyRetries); })) - .then(withOpContext((spec, opLog) -> { + .then(UtilVerbs.withOpContext((spec, opLog) -> { if (success.get()) { final var locs = new String[] { novelTarget, novelTarget.replace(".pem", ".pass"), novelTarget.replace(".pem", ".words"), diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/FreezeHelperSuite.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/FreezeHelperSuite.java similarity index 87% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/FreezeHelperSuite.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/FreezeHelperSuite.java index c5e0c1a3bb07..127c64064b90 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/FreezeHelperSuite.java +++ b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/FreezeHelperSuite.java @@ -16,11 +16,9 @@ package com.hedera.services.yahcli.suites; -import static com.hedera.services.bdd.spec.utilops.UtilVerbs.freezeAbort; -import static com.hedera.services.bdd.spec.utilops.UtilVerbs.freezeOnly; - import com.hedera.services.bdd.spec.HapiSpec; import com.hedera.services.bdd.spec.HapiSpecOperation; +import com.hedera.services.bdd.spec.utilops.UtilVerbs; import com.hedera.services.bdd.suites.HapiSuite; import java.time.Instant; import java.util.List; @@ -58,8 +56,8 @@ private HapiSpec doFreeze() { private HapiSpecOperation requestedFreezeOp() { return isAbort - ? freezeAbort().noLogging().yahcliLogging() - : freezeOnly().startingAt(freezeStartTime).noLogging(); + ? UtilVerbs.freezeAbort().noLogging().yahcliLogging() + : UtilVerbs.freezeOnly().startingAt(freezeStartTime).noLogging(); } @Override diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/InfoSuite.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/InfoSuite.java similarity index 100% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/InfoSuite.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/InfoSuite.java diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/PayerFundingSuite.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/PayerFundingSuite.java similarity index 60% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/PayerFundingSuite.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/PayerFundingSuite.java index 647f97325af5..7d586dff0ee0 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/PayerFundingSuite.java +++ b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/PayerFundingSuite.java @@ -16,18 +16,14 @@ package com.hedera.services.yahcli.suites; -import static com.hedera.services.bdd.spec.HapiSpec.customHapiSpec; -import static com.hedera.services.bdd.spec.queries.QueryVerbs.getAccountBalance; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.cryptoTransfer; -import static com.hedera.services.bdd.spec.transactions.crypto.HapiCryptoTransfer.tinyBarsFromTo; -import static com.hedera.services.bdd.spec.utilops.CustomSpecAssert.allRunFor; -import static com.hedera.services.bdd.spec.utilops.UtilVerbs.logIt; -import static com.hedera.services.bdd.spec.utilops.UtilVerbs.withOpContext; -import static com.hedera.services.yahcli.commands.validation.ValidationCommand.PAYER; -import static com.hedera.services.yahcli.commands.validation.ValidationCommand.checkBoxed; - import com.hedera.services.bdd.spec.HapiSpec; +import com.hedera.services.bdd.spec.queries.QueryVerbs; +import com.hedera.services.bdd.spec.transactions.TxnVerbs; +import com.hedera.services.bdd.spec.transactions.crypto.HapiCryptoTransfer; +import com.hedera.services.bdd.spec.utilops.CustomSpecAssert; +import com.hedera.services.bdd.spec.utilops.UtilVerbs; import com.hedera.services.bdd.suites.HapiSuite; +import com.hedera.services.yahcli.commands.validation.ValidationCommand; import java.util.List; import java.util.Map; import org.apache.logging.log4j.LogManager; @@ -52,20 +48,21 @@ public List getSpecsInSuite() { } private HapiSpec fundPayer() { - return customHapiSpec("FundPayer") + return HapiSpec.customHapiSpec("FundPayer") .withProperties(specConfig) - .given(withOpContext((spec, opLog) -> { - var subOp = getAccountBalance(PAYER); - allRunFor(spec, subOp); + .given(UtilVerbs.withOpContext((spec, opLog) -> { + var subOp = QueryVerbs.getAccountBalance(ValidationCommand.PAYER); + CustomSpecAssert.allRunFor(spec, subOp); var balance = subOp.getResponse().getCryptogetAccountBalance().getBalance(); if (balance < guaranteedBalance) { - var funding = cryptoTransfer(tinyBarsFromTo(DEFAULT_PAYER, PAYER, guaranteedBalance - balance)); - allRunFor(spec, funding); + var funding = TxnVerbs.cryptoTransfer(HapiCryptoTransfer.tinyBarsFromTo( + HapiSuite.DEFAULT_PAYER, ValidationCommand.PAYER, guaranteedBalance - balance)); + CustomSpecAssert.allRunFor(spec, funding); } })) .when() - .then(logIt(checkBoxed("Payer has at least " + guaranteedBalance + " tℏ"))); + .then(UtilVerbs.logIt(ValidationCommand.checkBoxed("Payer has at least " + guaranteedBalance + " tℏ"))); } @Override diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/RekeySuite.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/RekeySuite.java similarity index 83% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/RekeySuite.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/RekeySuite.java index 9aadbc9e6336..c7cf12e5186e 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/RekeySuite.java +++ b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/RekeySuite.java @@ -16,15 +16,13 @@ package com.hedera.services.yahcli.suites; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.cryptoUpdate; -import static com.hedera.services.bdd.spec.utilops.UtilVerbs.keyFromFile; -import static com.hedera.services.bdd.spec.utilops.UtilVerbs.newKeyNamed; -import static com.hedera.services.bdd.spec.utilops.UtilVerbs.withOpContext; import static com.hedera.services.yahcli.suites.Utils.extractAccount; import com.hedera.services.bdd.spec.HapiSpec; import com.hedera.services.bdd.spec.keys.SigControl; import com.hedera.services.bdd.spec.transactions.TxnUtils; +import com.hedera.services.bdd.spec.transactions.TxnVerbs; +import com.hedera.services.bdd.spec.utilops.UtilVerbs; import com.hedera.services.bdd.suites.HapiSuite; import java.io.File; import java.util.List; @@ -64,19 +62,19 @@ private HapiSpec rekey() { .withProperties(specConfig) .given( genNewKey - ? newKeyNamed(replKey) + ? UtilVerbs.newKeyNamed(replKey) .shape(SigControl.ED25519_ON) .exportingTo(newKeyLoc, newKeyPass) .yahcliLogged() - : keyFromFile(replKey, replKeyLoc) + : UtilVerbs.keyFromFile(replKey, replKeyLoc) .exportingTo(newKeyLoc, newKeyPass) .yahcliLogged()) - .when(cryptoUpdate(account) - .signedBy(DEFAULT_PAYER, replKey) + .when(TxnVerbs.cryptoUpdate(account) + .signedBy(HapiSuite.DEFAULT_PAYER, replKey) .key(replKey) .noLogging() .yahcliLogging()) - .then(withOpContext((spec, opLog) -> { + .then(UtilVerbs.withOpContext((spec, opLog) -> { if (replTarget.endsWith(".words")) { new File(replTarget).delete(); } diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/ScheduleSuite.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/ScheduleSuite.java similarity index 95% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/ScheduleSuite.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/ScheduleSuite.java index 530e85b1bc51..4a551d7d399e 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/ScheduleSuite.java +++ b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/ScheduleSuite.java @@ -41,7 +41,7 @@ public List getSpecsInSuite() { } private HapiSpec doSchedule() { - var schedule = new HapiScheduleSign(DEFAULT_SHARD_REALM + scheduleId); + var schedule = new HapiScheduleSign(HapiSuite.DEFAULT_SHARD_REALM + scheduleId); return HapiSpec.customHapiSpec("DoSchedule") .withProperties(specConfig) .given() diff --git a/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/SchedulesValidationSuite.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/SchedulesValidationSuite.java new file mode 100644 index 000000000000..76bbdb662aad --- /dev/null +++ b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/SchedulesValidationSuite.java @@ -0,0 +1,143 @@ +/* + * Copyright (C) 2021-2024 Hedera Hashgraph, LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.hedera.services.yahcli.suites; + +import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.IDENTICAL_SCHEDULE_ALREADY_CREATED; +import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.SCHEDULE_ALREADY_EXECUTED; + +import com.hedera.services.bdd.spec.HapiSpec; +import com.hedera.services.bdd.spec.persistence.SpecKey; +import com.hedera.services.bdd.spec.queries.QueryVerbs; +import com.hedera.services.bdd.spec.transactions.TxnVerbs; +import com.hedera.services.bdd.spec.transactions.schedule.HapiScheduleCreate; +import com.hedera.services.bdd.spec.utilops.UtilVerbs; +import com.hedera.services.bdd.suites.HapiSuite; +import com.hedera.services.yahcli.commands.validation.ValidationCommand; +import com.hederahashgraph.api.proto.java.ResponseCodeEnum; +import java.util.List; +import java.util.Map; +import java.util.concurrent.atomic.AtomicLong; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +public class SchedulesValidationSuite extends HapiSuite { + private static final Logger log = LogManager.getLogger(SchedulesValidationSuite.class); + + private final Map specConfig; + + public SchedulesValidationSuite(Map specConfig) { + this.specConfig = specConfig; + } + + @Override + public List getSpecsInSuite() { + return List.of(new HapiSpec[] { + validateScheduling(), + }); + } + + private HapiSpec validateScheduling() { + String inSpecSchedule = "forImmediateExecution"; + AtomicLong seqNo = new AtomicLong(); + + return HapiSpec.customHapiSpec("ValidateScheduling") + .withProperties(specConfig) + .given( + QueryVerbs.getScheduleInfo(ValidationCommand.MUTABLE_SCHEDULE) + .payingWith(ValidationCommand.PAYER) + .isNotExecuted() + .hasEntityMemo("When love with one another so / Inter-animates two souls") + .hasAdminKey(ValidationCommand.MUTABLE_SCHEDULE), + QueryVerbs.getScheduleInfo(ValidationCommand.IMMUTABLE_SCHEDULE) + .payingWith(ValidationCommand.PAYER) + .isNotExecuted() + .hasEntityMemo("That abler soul, which thence doth flow / Defects of" + + " loneliness controls"), + QueryVerbs.getTopicInfo(ValidationCommand.TOPIC).savingSeqNoTo(seqNo::set), + TxnVerbs.scheduleDelete(ValidationCommand.IMMUTABLE_SCHEDULE) + .payingWith(ValidationCommand.PAYER) + .hasKnownStatus(ResponseCodeEnum.SCHEDULE_IS_IMMUTABLE), + UtilVerbs.logIt(ValidationCommand.checkBoxed("Schedule creation looks good"))) + .when( + TxnVerbs.scheduleDelete(ValidationCommand.MUTABLE_SCHEDULE) + .signedBy(ValidationCommand.PAYER) + .payingWith(ValidationCommand.PAYER) + .hasKnownStatus(ResponseCodeEnum.INVALID_SIGNATURE), + TxnVerbs.scheduleDelete(ValidationCommand.MUTABLE_SCHEDULE) + .signedBy( + ValidationCommand.PAYER, + SpecKey.adminKeyFor(ValidationCommand.MUTABLE_SCHEDULE)) + .payingWith(ValidationCommand.PAYER), + TxnVerbs.scheduleSign(ValidationCommand.MUTABLE_SCHEDULE) + .alsoSigningWith(ValidationCommand.SENDER) + .payingWith(ValidationCommand.PAYER) + .hasKnownStatus(ResponseCodeEnum.SCHEDULE_ALREADY_DELETED), + TxnVerbs.scheduleSign(ValidationCommand.IMMUTABLE_SCHEDULE) + .alsoSigningWith(ValidationCommand.SENDER) + .savingScheduledTxnId() + .payingWith(ValidationCommand.PAYER), + TxnVerbs.scheduleCreate( + inSpecSchedule, + TxnVerbs.submitMessageTo(ValidationCommand.TOPIC) + .message("We then who are this new soul know")) + .payingWith(ValidationCommand.PAYER) + .adminKey(SpecKey.adminKeyFor(ValidationCommand.MUTABLE_SCHEDULE)) + .alsoSigningWith(SpecKey.submitKeyFor(ValidationCommand.TOPIC)) + .withEntityMemo("Of what we are composed and made") + .savingExpectedScheduledTxnId(), + TxnVerbs.scheduleCreate( + inSpecSchedule, + TxnVerbs.submitMessageTo(ValidationCommand.TOPIC) + .message("We then who are this new soul know")) + .payingWith(ValidationCommand.PAYER) + .designatingPayer(ValidationCommand.PAYER) + .adminKey(SpecKey.adminKeyFor(ValidationCommand.MUTABLE_SCHEDULE)) + .alsoSigningWith(SpecKey.submitKeyFor(ValidationCommand.TOPIC)) + .withEntityMemo("Of what we are composed and made") + .hasKnownStatus(IDENTICAL_SCHEDULE_ALREADY_CREATED), + TxnVerbs.scheduleDelete(inSpecSchedule) + .signedBy( + ValidationCommand.PAYER, + SpecKey.adminKeyFor(ValidationCommand.MUTABLE_SCHEDULE)) + .payingWith(ValidationCommand.PAYER) + .hasKnownStatus(SCHEDULE_ALREADY_EXECUTED), + UtilVerbs.logIt(ValidationCommand.checkBoxed("Schedule management and execution look good"))) + .then( + QueryVerbs.getTopicInfo(ValidationCommand.TOPIC) + .payingWith(ValidationCommand.PAYER) + .hasSeqNo(() -> seqNo.get() + 1) + .logged(), + QueryVerbs.getScheduleInfo(inSpecSchedule) + .payingWith(ValidationCommand.PAYER) + .isExecuted(), + QueryVerbs.getTxnRecord(HapiScheduleCreate.correspondingScheduledTxnId( + ValidationCommand.IMMUTABLE_SCHEDULE)) + .payingWith(ValidationCommand.PAYER) + .logged() + .assertingNothingAboutHashes(), + QueryVerbs.getTxnRecord(HapiScheduleCreate.correspondingScheduledTxnId(inSpecSchedule)) + .payingWith(ValidationCommand.PAYER) + .logged() + .assertingNothingAboutHashes(), + UtilVerbs.logIt(ValidationCommand.checkBoxed("Schedule records look good"))); + } + + @Override + protected Logger getResultsLogger() { + return log; + } +} diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/SendSuite.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/SendSuite.java similarity index 75% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/SendSuite.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/SendSuite.java index 3a9e9d5d2799..39241719989c 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/SendSuite.java +++ b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/SendSuite.java @@ -16,13 +16,11 @@ package com.hedera.services.yahcli.suites; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.cryptoTransfer; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.scheduleCreate; -import static com.hedera.services.bdd.spec.transactions.crypto.HapiCryptoTransfer.tinyBarsFromTo; -import static com.hedera.services.bdd.spec.transactions.token.TokenMovement.moving; - import com.hedera.services.bdd.spec.HapiSpec; import com.hedera.services.bdd.spec.transactions.HapiTxnOp; +import com.hedera.services.bdd.spec.transactions.TxnVerbs; +import com.hedera.services.bdd.spec.transactions.crypto.HapiCryptoTransfer; +import com.hedera.services.bdd.spec.transactions.token.TokenMovement; import com.hedera.services.bdd.suites.HapiSuite; import edu.umd.cs.findbugs.annotations.Nullable; import java.util.List; @@ -65,17 +63,18 @@ public List getSpecsInSuite() { private HapiSpec doSend() { var transfer = denomination == null - ? (HapiTxnOp) cryptoTransfer(tinyBarsFromTo(DEFAULT_PAYER, beneficiary, unitsToSend)) + ? (HapiTxnOp) TxnVerbs.cryptoTransfer( + HapiCryptoTransfer.tinyBarsFromTo(HapiSuite.DEFAULT_PAYER, beneficiary, unitsToSend)) + .memo(memo) + .signedBy(HapiSuite.DEFAULT_PAYER) + : (HapiTxnOp) TxnVerbs.cryptoTransfer(TokenMovement.moving(unitsToSend, denomination) + .between(HapiSuite.DEFAULT_PAYER, beneficiary)) .memo(memo) - .signedBy(DEFAULT_PAYER) - : (HapiTxnOp) - cryptoTransfer(moving(unitsToSend, denomination).between(DEFAULT_PAYER, beneficiary)) - .memo(memo) - .signedBy(DEFAULT_PAYER); + .signedBy(HapiSuite.DEFAULT_PAYER); // flag that transferred as parameter to schedule a transaction or to execute right away if (schedule) { - transfer = scheduleCreate("original", transfer).logged(); + transfer = TxnVerbs.scheduleCreate("original", transfer).logged(); } return HapiSpec.customHapiSpec("DoSend") diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/SpecialFileHashSuite.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/SpecialFileHashSuite.java similarity index 83% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/SpecialFileHashSuite.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/SpecialFileHashSuite.java index 861527498256..65285b197a04 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/SpecialFileHashSuite.java +++ b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/SpecialFileHashSuite.java @@ -16,12 +16,12 @@ package com.hedera.services.yahcli.suites; -import static com.hedera.services.bdd.spec.queries.QueryVerbs.getFileInfo; -import static com.hedera.services.bdd.spec.utilops.CustomSpecAssert.allRunFor; -import static com.hedera.services.bdd.spec.utilops.UtilVerbs.withOpContext; import static com.hedera.services.yahcli.output.CommonMessages.COMMON_MESSAGES; import com.hedera.services.bdd.spec.HapiSpec; +import com.hedera.services.bdd.spec.queries.QueryVerbs; +import com.hedera.services.bdd.spec.utilops.CustomSpecAssert; +import com.hedera.services.bdd.spec.utilops.UtilVerbs; import com.hedera.services.bdd.suites.HapiSuite; import java.util.List; import java.util.Map; @@ -51,9 +51,9 @@ private HapiSpec getSpecialFileHash() { .withProperties(specConfig) .given() .when() - .then(withOpContext((spec, opLog) -> { - final var lookup = getFileInfo("0.0." + target); - allRunFor(spec, lookup); + .then(UtilVerbs.withOpContext((spec, opLog) -> { + final var lookup = QueryVerbs.getFileInfo("0.0." + target); + CustomSpecAssert.allRunFor(spec, lookup); final var synthMemo = lookup.getResponse().getFileGetInfo().getFileInfo().getMemo(); COMMON_MESSAGES.info("The SHA-384 hash of the " + specialFile + " is:\n" + synthMemo); diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/StakeSetupSuite.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/StakeSetupSuite.java similarity index 74% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/StakeSetupSuite.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/StakeSetupSuite.java index ba12a9541aca..23742fe89d31 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/StakeSetupSuite.java +++ b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/StakeSetupSuite.java @@ -16,17 +16,15 @@ package com.hedera.services.yahcli.suites; -import static com.hedera.services.bdd.spec.HapiSpec.customHapiSpec; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.cryptoCreate; -import static com.hedera.services.bdd.spec.transactions.TxnVerbs.cryptoTransfer; -import static com.hedera.services.bdd.spec.transactions.crypto.HapiCryptoTransfer.tinyBarsFromTo; -import static com.hedera.services.bdd.spec.utilops.UtilVerbs.inParallel; import static com.hedera.services.bdd.spec.utilops.UtilVerbs.overriding; -import static com.hedera.services.bdd.suites.crypto.staking.StakingSuite.STAKING_REWARD_RATE; import com.hedera.services.bdd.spec.HapiSpec; import com.hedera.services.bdd.spec.HapiSpecOperation; +import com.hedera.services.bdd.spec.transactions.TxnVerbs; +import com.hedera.services.bdd.spec.transactions.crypto.HapiCryptoTransfer; +import com.hedera.services.bdd.spec.utilops.UtilVerbs; import com.hedera.services.bdd.suites.HapiSuite; +import com.hedera.services.bdd.suites.crypto.staking.StakingSuite; import com.hedera.services.yahcli.config.ConfigManager; import edu.umd.cs.findbugs.annotations.NonNull; import java.util.HashMap; @@ -67,17 +65,18 @@ public List getSpecsInSuite() { } private HapiSpec startStakingAndExportCreatedStakers() { - return customHapiSpec("StartStakingAndExportCreatedStakers") + return HapiSpec.customHapiSpec("StartStakingAndExportCreatedStakers") .withProperties(specConfig) .given( - overriding(STAKING_REWARD_RATE, String.valueOf(stakingRewardRate)), - cryptoTransfer(tinyBarsFromTo(DEFAULT_PAYER, STAKING_REWARD, rewardAccountBalance))) + overriding(StakingSuite.STAKING_REWARD_RATE, String.valueOf(stakingRewardRate)), + TxnVerbs.cryptoTransfer(HapiCryptoTransfer.tinyBarsFromTo( + HapiSuite.DEFAULT_PAYER, HapiSuite.STAKING_REWARD, rewardAccountBalance))) .when() - .then(inParallel(configManager.nodeIdsInTargetNet().stream() - .map(nodeId -> cryptoCreate("stakerFor" + nodeId) + .then(UtilVerbs.inParallel(configManager.nodeIdsInTargetNet().stream() + .map(nodeId -> TxnVerbs.cryptoCreate("stakerFor" + nodeId) .stakedNodeId(nodeId) .balance(stakePerNode) - .key(DEFAULT_PAYER) + .key(HapiSuite.DEFAULT_PAYER) .exposingCreatedIdTo( id -> accountsToStakedNodes.put("0.0." + id.getAccountNum(), nodeId))) .toArray(HapiSpecOperation[]::new))); diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/StakeSuite.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/StakeSuite.java similarity index 83% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/StakeSuite.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/StakeSuite.java index e8f1430567f7..b4cecbdb1288 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/StakeSuite.java +++ b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/StakeSuite.java @@ -16,15 +16,12 @@ package com.hedera.services.yahcli.suites; -import static com.hedera.services.bdd.spec.HapiSpec.customHapiSpec; import static com.hedera.services.bdd.spec.transactions.TxnVerbs.cryptoUpdate; -import static com.hedera.services.bdd.spec.utilops.UtilVerbs.keyFromFile; -import static com.hedera.services.bdd.spec.utilops.UtilVerbs.noOp; -import static com.hedera.services.yahcli.config.ConfigUtils.uncheckedKeyFileFor; import com.hedera.services.bdd.spec.HapiSpec; import com.hedera.services.bdd.spec.HapiSpecOperation; import com.hedera.services.bdd.spec.transactions.crypto.HapiCryptoUpdate; +import com.hedera.services.bdd.spec.utilops.UtilVerbs; import com.hedera.services.bdd.suites.HapiSuite; import com.hedera.services.yahcli.config.ConfigManager; import com.hedera.services.yahcli.config.ConfigUtils; @@ -73,11 +70,12 @@ public List getSpecsInSuite() { private HapiSpecOperation importKeyIfNecessary() { if (stakingAccount == null) { - return noOp(); + return UtilVerbs.noOp(); } else { - return keyFromFile( + return UtilVerbs.keyFromFile( STAKER_KEY_IF_NEEDED, - uncheckedKeyFileFor(configManager.keysLoc(), "account" + numberOf(stakingAccount)) + ConfigUtils.uncheckedKeyFileFor( + configManager.keysLoc(), "account" + numberOf(stakingAccount)) .getAbsolutePath()) .yahcliLogged(); } @@ -88,8 +86,8 @@ private long numberOf(final String id) { } private HapiSpec doStake() { - final var toUpdate = stakingAccount == null ? DEFAULT_PAYER : stakingAccount; - return customHapiSpec("DoStake") + final var toUpdate = stakingAccount == null ? HapiSuite.DEFAULT_PAYER : stakingAccount; + return HapiSpec.customHapiSpec("DoStake") .withProperties(specConfig) .given(importKeyIfNecessary()) .when() @@ -106,11 +104,11 @@ private HapiCryptoUpdate customized(final HapiCryptoUpdate baseUpdate) { baseUpdate.newDeclinedReward(declineRewards); } if (stakingAccount == null) { - baseUpdate.signedBy(DEFAULT_PAYER); + baseUpdate.signedBy(HapiSuite.DEFAULT_PAYER); } else { - baseUpdate.signedBy(DEFAULT_PAYER, STAKER_KEY_IF_NEEDED); + baseUpdate.signedBy(HapiSuite.DEFAULT_PAYER, STAKER_KEY_IF_NEEDED); } - return baseUpdate.fee(ONE_HBAR); + return baseUpdate.fee(HapiSuite.ONE_HBAR); } @Override diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/SysFileDownloadSuite.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/SysFileDownloadSuite.java similarity index 90% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/SysFileDownloadSuite.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/SysFileDownloadSuite.java index 53b0f331179e..921e2ebdd1d7 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/SysFileDownloadSuite.java +++ b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/SysFileDownloadSuite.java @@ -16,14 +16,14 @@ package com.hedera.services.yahcli.suites; -import static com.hedera.services.bdd.spec.queries.QueryVerbs.getFileContents; -import static com.hedera.services.bdd.suites.utils.sysfiles.serdes.StandardSerdes.SYS_FILE_SERDES; import static com.hedera.services.yahcli.output.CommonMessages.COMMON_MESSAGES; import com.hedera.services.bdd.spec.HapiSpec; import com.hedera.services.bdd.spec.HapiSpecOperation; +import com.hedera.services.bdd.spec.queries.QueryVerbs; import com.hedera.services.bdd.spec.queries.file.HapiGetFileContents; import com.hedera.services.bdd.suites.HapiSuite; +import com.hedera.services.bdd.suites.utils.sysfiles.serdes.StandardSerdes; import com.hedera.services.bdd.suites.utils.sysfiles.serdes.SysFileSerde; import java.io.File; import java.util.Arrays; @@ -66,14 +66,14 @@ private HapiGetFileContents appropriateQuery(final long fileNum) { final String fid = String.format("0.0.%d", fileNum); if (Utils.isSpecialFile(fileNum)) { final String fqLoc = Utils.specialFileLoc(destDir, fileNum); - return getFileContents(fid) + return QueryVerbs.getFileContents(fid) .alertingPre(COMMON_MESSAGES::downloadBeginning) .alertingPost(COMMON_MESSAGES::downloadEnding) .saveTo(fqLoc); } - final SysFileSerde serde = SYS_FILE_SERDES.get(fileNum); + final SysFileSerde serde = StandardSerdes.SYS_FILE_SERDES.get(fileNum); final String fqLoc = destDir + File.separator + serde.preferredFileName(); - return getFileContents(fid) + return QueryVerbs.getFileContents(fid) .alertingPre(COMMON_MESSAGES::downloadBeginning) .alertingPost(COMMON_MESSAGES::downloadEnding) .saveReadableTo(serde::fromRawFile, fqLoc); diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/SysFileUploadSuite.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/SysFileUploadSuite.java similarity index 81% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/SysFileUploadSuite.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/SysFileUploadSuite.java index 27501a463e72..36d3c30c184d 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/SysFileUploadSuite.java +++ b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/SysFileUploadSuite.java @@ -16,22 +16,19 @@ package com.hedera.services.yahcli.suites; -import static com.hedera.services.bdd.spec.HapiSpec.customHapiSpec; -import static com.hedera.services.bdd.spec.queries.QueryVerbs.getFileInfo; -import static com.hedera.services.bdd.spec.utilops.CustomSpecAssert.allRunFor; -import static com.hedera.services.bdd.spec.utilops.UtilVerbs.sourcing; -import static com.hedera.services.bdd.spec.utilops.UtilVerbs.updateLargeFile; -import static com.hedera.services.bdd.spec.utilops.UtilVerbs.updateSpecialFile; -import static com.hedera.services.bdd.spec.utilops.UtilVerbs.withOpContext; -import static com.hedera.services.bdd.suites.utils.sysfiles.serdes.StandardSerdes.SYS_FILE_SERDES; -import static com.hedera.services.yahcli.output.CommonMessages.COMMON_MESSAGES; import static com.hedera.services.yahcli.suites.Utils.isSpecialFile; import com.google.protobuf.ByteString; import com.hedera.node.app.hapi.utils.ByteStringUtils; import com.hedera.services.bdd.spec.HapiSpec; +import com.hedera.services.bdd.spec.queries.QueryVerbs; +import com.hedera.services.bdd.spec.utilops.CustomSpecAssert; +import com.hedera.services.bdd.spec.utilops.UtilVerbs; import com.hedera.services.bdd.suites.HapiSuite; +import com.hedera.services.bdd.suites.utils.sysfiles.serdes.StandardSerdes; import com.hedera.services.bdd.suites.utils.sysfiles.serdes.SysFileSerde; +import com.hedera.services.yahcli.commands.files.SysFileUploadCommand; +import com.hedera.services.yahcli.output.CommonMessages; import com.swirlds.common.utility.CommonUtils; import java.io.File; import java.io.IOException; @@ -99,37 +96,39 @@ private HapiSpec uploadSysFiles() { final var isSpecial = isSpecialFile(sysFileId); final AtomicInteger wrappedAppendsToSkip = new AtomicInteger(); - return customHapiSpec(name) + return HapiSpec.customHapiSpec(name) .withProperties(specConfig) - .given(withOpContext((spec, opLog) -> { + .given(UtilVerbs.withOpContext((spec, opLog) -> { if (!restartFromFailure) { return; } - final var lookup = getFileInfo("0.0." + sysFileId); - allRunFor(spec, lookup); + final var lookup = QueryVerbs.getFileInfo("0.0." + sysFileId); + CustomSpecAssert.allRunFor(spec, lookup); final var currentHash = lookup.getResponse().getFileGetInfo().getFileInfo().getMemo(); wrappedAppendsToSkip.set(skippedAppendsFor(currentHash)); })) .when() - .then(sourcing(() -> isSpecial - ? updateSpecialFile( - DEFAULT_PAYER, + .then(UtilVerbs.sourcing(() -> isSpecial + ? UtilVerbs.updateSpecialFile( + HapiSuite.DEFAULT_PAYER, fileId, uploadData, bytesPerOp, appendsPerBurst, wrappedAppendsToSkip.get()) - : updateLargeFile( - DEFAULT_PAYER, + : UtilVerbs.updateLargeFile( + HapiSuite.DEFAULT_PAYER, fileId, uploadData, true, OptionalLong.of(10_000_000_000L), - updateOp -> updateOp.alertingPre(COMMON_MESSAGES::uploadBeginning) - .alertingPost(COMMON_MESSAGES::uploadEnding), - (appendOp, appendsLeft) -> appendOp.alertingPre(COMMON_MESSAGES::appendBeginning) - .alertingPost(code -> COMMON_MESSAGES.appendEnding(code, appendsLeft))))); + updateOp -> updateOp.alertingPre(CommonMessages.COMMON_MESSAGES::uploadBeginning) + .alertingPost(CommonMessages.COMMON_MESSAGES::uploadEnding), + (appendOp, appendsLeft) -> appendOp.alertingPre( + CommonMessages.COMMON_MESSAGES::appendBeginning) + .alertingPost(code -> + CommonMessages.COMMON_MESSAGES.appendEnding(code, appendsLeft))))); } private ByteString appropriateContents(final Long fileNum) { @@ -137,12 +136,13 @@ private ByteString appropriateContents(final Long fileNum) { return specialFileContents(fileNum); } - final SysFileSerde serde = SYS_FILE_SERDES.get(fileNum); + final SysFileSerde serde = StandardSerdes.SYS_FILE_SERDES.get(fileNum); final String name = serde.preferredFileName(); final String loc = srcDir + File.separator + name; try { final var stylized = Files.readString(Paths.get(loc)); - final var contents = ByteString.copyFrom(serde.toValidatedRawFile(stylized)); + final var contents = + ByteString.copyFrom(serde.toValidatedRawFile(stylized, SysFileUploadCommand.activeSrcDir.get())); if (isDryRun) { final var contentsLoc = binVersionOfPath(loc); Files.write(Paths.get(contentsLoc), contents.toByteArray()); diff --git a/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/TokenValidationSuite.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/TokenValidationSuite.java new file mode 100644 index 000000000000..e063a2deeb1c --- /dev/null +++ b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/TokenValidationSuite.java @@ -0,0 +1,121 @@ +/* + * Copyright (C) 2021-2024 Hedera Hashgraph, LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.hedera.services.yahcli.suites; + +import com.hedera.services.bdd.spec.HapiSpec; +import com.hedera.services.bdd.spec.queries.QueryVerbs; +import com.hedera.services.bdd.spec.transactions.TxnVerbs; +import com.hedera.services.bdd.spec.transactions.token.TokenMovement; +import com.hedera.services.bdd.spec.utilops.UtilVerbs; +import com.hedera.services.bdd.suites.HapiSuite; +import com.hedera.services.yahcli.commands.validation.ValidationCommand; +import com.hederahashgraph.api.proto.java.ResponseCodeEnum; +import com.hederahashgraph.api.proto.java.TokenFreezeStatus; +import com.hederahashgraph.api.proto.java.TokenKycStatus; +import java.util.List; +import java.util.Map; +import java.util.concurrent.atomic.AtomicLong; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +public class TokenValidationSuite extends HapiSuite { + private static final Logger log = LogManager.getLogger(TokenValidationSuite.class); + + private final Map specConfig; + + public TokenValidationSuite(Map specConfig) { + this.specConfig = specConfig; + } + + @Override + public List getSpecsInSuite() { + return List.of(new HapiSpec[] { + validateTokens(), + }); + } + + private HapiSpec validateTokens() { + AtomicLong initialTreasuryBalance = new AtomicLong(); + return HapiSpec.customHapiSpec("validateTokens") + .withProperties(specConfig) + .given( + QueryVerbs.getTokenInfo(ValidationCommand.TOKEN) + .payingWith(ValidationCommand.PAYER) + .hasName("Hedera Post-Update Validation Token") + .hasSymbol("TACOCAT") + .hasTreasury(ValidationCommand.TREASURY) + .hasFreezeDefault(TokenFreezeStatus.Unfrozen) + .hasKycDefault(TokenKycStatus.Revoked) + .hasWipeKey(ValidationCommand.TOKEN) + .hasSupplyKey(ValidationCommand.TOKEN) + .hasFreezeKey(ValidationCommand.TOKEN) + .hasAdminKey(ValidationCommand.TOKEN) + .hasKycKey(ValidationCommand.TOKEN), + QueryVerbs.getAccountBalance(ValidationCommand.TREASURY) + .payingWith(ValidationCommand.PAYER) + .savingTokenBalance(ValidationCommand.TOKEN, initialTreasuryBalance::set), + UtilVerbs.logIt(ValidationCommand.checkBoxed("Token entities look good"))) + .when( + TxnVerbs.tokenDissociate(ValidationCommand.RECEIVER, ValidationCommand.TOKEN) + .payingWith(ValidationCommand.PAYER) + .hasKnownStatusFrom( + ResponseCodeEnum.TOKEN_NOT_ASSOCIATED_TO_ACCOUNT, ResponseCodeEnum.SUCCESS), + TxnVerbs.tokenAssociate(ValidationCommand.RECEIVER, ValidationCommand.TOKEN) + .payingWith(ValidationCommand.PAYER), + TxnVerbs.tokenFreeze(ValidationCommand.TOKEN, ValidationCommand.RECEIVER) + .payingWith(ValidationCommand.PAYER), + TxnVerbs.cryptoTransfer(TokenMovement.moving(1, ValidationCommand.TOKEN) + .between(ValidationCommand.TREASURY, ValidationCommand.RECEIVER)) + .payingWith(ValidationCommand.PAYER) + .hasKnownStatus(ResponseCodeEnum.ACCOUNT_FROZEN_FOR_TOKEN), + TxnVerbs.tokenUnfreeze(ValidationCommand.TOKEN, ValidationCommand.RECEIVER) + .payingWith(ValidationCommand.PAYER), + TxnVerbs.cryptoTransfer(TokenMovement.moving(1, ValidationCommand.TOKEN) + .between(ValidationCommand.TREASURY, ValidationCommand.RECEIVER)) + .payingWith(ValidationCommand.PAYER) + .hasKnownStatus(ResponseCodeEnum.ACCOUNT_KYC_NOT_GRANTED_FOR_TOKEN), + TxnVerbs.grantTokenKyc(ValidationCommand.TOKEN, ValidationCommand.RECEIVER) + .payingWith(ValidationCommand.PAYER), + TxnVerbs.mintToken(ValidationCommand.TOKEN, 2).payingWith(ValidationCommand.PAYER), + TxnVerbs.cryptoTransfer(TokenMovement.moving(1, ValidationCommand.TOKEN) + .between(ValidationCommand.TREASURY, ValidationCommand.RECEIVER)) + .payingWith(ValidationCommand.PAYER), + UtilVerbs.logIt(ValidationCommand.checkBoxed("Token management looks good"))) + .then( + QueryVerbs.getAccountBalance(ValidationCommand.RECEIVER) + .payingWith(ValidationCommand.PAYER) + .hasTokenBalance(ValidationCommand.TOKEN, 1L), + UtilVerbs.sourcing(() -> QueryVerbs.getAccountBalance(ValidationCommand.TREASURY) + .payingWith(ValidationCommand.PAYER) + .hasTokenBalance(ValidationCommand.TOKEN, 1L + initialTreasuryBalance.get())), + TxnVerbs.wipeTokenAccount(ValidationCommand.TOKEN, ValidationCommand.RECEIVER, 1) + .payingWith(ValidationCommand.PAYER), + TxnVerbs.burnToken(ValidationCommand.TOKEN, 1L).payingWith(ValidationCommand.PAYER), + QueryVerbs.getAccountBalance(ValidationCommand.RECEIVER) + .payingWith(ValidationCommand.PAYER) + .hasTokenBalance(ValidationCommand.TOKEN, 0L), + UtilVerbs.sourcing(() -> QueryVerbs.getAccountBalance(ValidationCommand.TREASURY) + .payingWith(ValidationCommand.PAYER) + .hasTokenBalance(ValidationCommand.TOKEN, initialTreasuryBalance.get())), + UtilVerbs.logIt(ValidationCommand.checkBoxed("Token balance changes looks good"))); + } + + @Override + protected Logger getResultsLogger() { + return log; + } +} diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/UpdateSuite.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/UpdateSuite.java similarity index 94% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/UpdateSuite.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/UpdateSuite.java index 98fa7e14572a..4e670b4a7b4c 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/UpdateSuite.java +++ b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/UpdateSuite.java @@ -59,8 +59,8 @@ private HapiSpec doUpdate() { Key newList = Key.newBuilder() .setKeyList(KeyList.newBuilder().addAllKeys(keys)) .build(); - HapiTxnOp update = new HapiCryptoUpdate(DEFAULT_SHARD_REALM + targetAccount) - .signedBy(DEFAULT_PAYER) + HapiTxnOp update = new HapiCryptoUpdate(HapiSuite.DEFAULT_SHARD_REALM + targetAccount) + .signedBy(HapiSuite.DEFAULT_PAYER) .protoKey(newList) .blankMemo() .entityMemo(memo); diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/UpgradeHelperSuite.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/UpgradeHelperSuite.java similarity index 89% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/UpgradeHelperSuite.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/UpgradeHelperSuite.java index a0bdc7adb744..3a2be3f31ec1 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/UpgradeHelperSuite.java +++ b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/UpgradeHelperSuite.java @@ -16,12 +16,9 @@ package com.hedera.services.yahcli.suites; -import static com.hedera.services.bdd.spec.utilops.UtilVerbs.freezeUpgrade; -import static com.hedera.services.bdd.spec.utilops.UtilVerbs.prepareUpgrade; -import static com.hedera.services.bdd.spec.utilops.UtilVerbs.telemetryUpgrade; - import com.hedera.services.bdd.spec.HapiSpec; import com.hedera.services.bdd.spec.HapiSpecOperation; +import com.hedera.services.bdd.spec.utilops.UtilVerbs; import com.hedera.services.bdd.suites.HapiSuite; import edu.umd.cs.findbugs.annotations.Nullable; import java.time.Instant; @@ -75,15 +72,18 @@ private HapiSpec doStagingAction() { final HapiSpecOperation op; if (startTime == null) { - op = prepareUpgrade().noLogging().withUpdateFile(upgradeFile).havingHash(upgradeFileHash); + op = UtilVerbs.prepareUpgrade() + .noLogging() + .withUpdateFile(upgradeFile) + .havingHash(upgradeFileHash); } else if (isTelemetryUpgrade) { - op = telemetryUpgrade() + op = UtilVerbs.telemetryUpgrade() .noLogging() .startingAt(startTime) .withUpdateFile(upgradeFile) .havingHash(upgradeFileHash); } else { - op = freezeUpgrade() + op = UtilVerbs.freezeUpgrade() .noLogging() .startingAt(startTime) .withUpdateFile(upgradeFile) diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/Utils.java b/hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/Utils.java similarity index 100% rename from hedera-node/test-clients/src/main/java/com/hedera/services/yahcli/suites/Utils.java rename to hedera-node/test-clients/src/yahcli/java/com/hedera/services/yahcli/suites/Utils.java diff --git a/hedera-node/test-clients/src/yahcli/java/module-info.java b/hedera-node/test-clients/src/yahcli/java/module-info.java new file mode 100644 index 000000000000..71653f02665a --- /dev/null +++ b/hedera-node/test-clients/src/yahcli/java/module-info.java @@ -0,0 +1,11 @@ +module com.hedera.node.test.clients.yahcli { + requires com.hedera.node.app.hapi.utils; + requires com.hedera.node.hapi; + requires com.hedera.node.test.clients; + requires com.github.spotbugs.annotations; + requires com.google.common; + requires com.swirlds.common; + requires info.picocli; + requires net.i2p.crypto.eddsa; + requires org.apache.logging.log4j; +} diff --git a/hedera-node/test-clients/testfiles/config.txt b/hedera-node/test-clients/testfiles/config.txt index 586238c48b8f..a788f583b5eb 100644 --- a/hedera-node/test-clients/testfiles/config.txt +++ b/hedera-node/test-clients/testfiles/config.txt @@ -3,7 +3,6 @@ ############################################################################################### swirld, 123 -# app, HashgraphDemo.jar, 1,0,0,0,0,0,0,0,0,0, all # app, GameDemo.jar, 9000, 9000 # app, HelloSwirldDemo.jar # app, CryptocurrencyDemo.jar @@ -72,12 +71,6 @@ nextNodeId, 1 # # FilesystemDemo.jar parameters: none # -# HashGraphDemo.jar takes parameters that give the initial checkbox settings, -# in the same order they appear are on the screen, with 1 to check it -# and 0 to not check it, followed by the number of events to display -# (or “all”). The first parameter controls whether it runs -# slowly (1) or runs at full speed (0). -# # GameDemo.jar parameters: # height: height of the board (in cells). Player moves 1 cell at a time. # width: width of the board (in cells). Player moves 1 cell at a time. diff --git a/hedera-node/test-clients/yahcli/Dockerfile b/hedera-node/test-clients/yahcli/Dockerfile index bbc894bf6927..75a292bd5051 100644 --- a/hedera-node/test-clients/yahcli/Dockerfile +++ b/hedera-node/test-clients/yahcli/Dockerfile @@ -1,63 +1,4 @@ -FROM ubuntu:22.04 -# JDK -ENV JAVA_HOME /opt/java/openjdk -ENV PATH $JAVA_HOME/bin:$PATH - -# Default to UTF-8 file.encoding -ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8' - -RUN apt-get update \ - && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends tzdata curl wget ca-certificates fontconfig locales binutils \ - && echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen \ - && locale-gen en_US.UTF-8 \ - && rm -rf /var/lib/apt/lists/* - -ENV JAVA_VERSION jdk-17.0.5+8 - -RUN set -eux; \ - ARCH="$(dpkg --print-architecture)"; \ - case "${ARCH}" in \ - aarch64|arm64) \ - ESUM='34d6414710db27cd7760fe369135f3b9927ccc81410280606613166d4106d60a'; \ - BINARY_URL='https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.5%2B8/OpenJDK17U-jre_aarch64_linux_hotspot_17.0.5_8.tar.gz'; \ - ;; \ - armhf|arm) \ - ESUM='9e0d1745139fe502f22df1e261d2ed1ad807085dd75a8b333d481289b579870d'; \ - BINARY_URL='https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.5%2B8/OpenJDK17U-jre_arm_linux_hotspot_17.0.5_8.tar.gz'; \ - ;; \ - ppc64el|powerpc:common64) \ - ESUM='51dd491505bd2e096676b9dc8ecaf196d78993215af16c0f9dfddfe3dbc0205b'; \ - BINARY_URL='https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.5%2B8/OpenJDK17U-jre_ppc64le_linux_hotspot_17.0.5_8.tar.gz'; \ - ;; \ - s390x|s390:64-bit) \ - ESUM='eeb1e92b8267e7e015908f3e3b80e48f418b37a2b4491f65290bc5d25e5daf93'; \ - BINARY_URL='https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.5%2B8/OpenJDK17U-jre_s390x_linux_hotspot_17.0.5_8.tar.gz'; \ - ;; \ - amd64|i386:x86-64) \ - ESUM='11326464a14b63e6328d1d2088a23fb559c0e36b3f380e4c1f8dcbe160a8b95e'; \ - BINARY_URL='https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.5%2B8/OpenJDK17U-jre_x64_linux_hotspot_17.0.5_8.tar.gz'; \ - ;; \ - *) \ - echo "Unsupported arch: ${ARCH}"; \ - exit 1; \ - ;; \ - esac; \ - wget -O /tmp/openjdk.tar.gz ${BINARY_URL}; \ - echo "${ESUM} */tmp/openjdk.tar.gz" | sha256sum -c -; \ - mkdir -p "$JAVA_HOME"; \ - tar --extract \ - --file /tmp/openjdk.tar.gz \ - --directory "$JAVA_HOME" \ - --strip-components 1 \ - --no-same-owner \ - ; \ - rm /tmp/openjdk.tar.gz; \ -# https://github.com/docker-library/openjdk/issues/331#issuecomment-498834472 - find "$JAVA_HOME/lib" -name '*.so' -exec dirname '{}' ';' | sort -u > /etc/ld.so.conf.d/docker-openjdk.conf; \ - ldconfig; \ -# https://github.com/docker-library/openjdk/issues/212#issuecomment-420979840 -# https://openjdk.java.net/jeps/341 - java -Xshare:dump; +FROM eclipse-temurin:21-jdk RUN mkdir -p /launch /opt/bin diff --git a/hedera-node/test-clients/yahcli/localhost/keys/account55.pass b/hedera-node/test-clients/yahcli/localhost/keys/account55.pass index 7c79971d1d61..ab22d1b2d68c 100644 --- a/hedera-node/test-clients/yahcli/localhost/keys/account55.pass +++ b/hedera-node/test-clients/yahcli/localhost/keys/account55.pass @@ -1 +1 @@ -swirlds +myOHiYnunypq \ No newline at end of file diff --git a/hedera-node/test-clients/yahcli/localhost/keys/account55.pem b/hedera-node/test-clients/yahcli/localhost/keys/account55.pem index dd125904da11..36ea3c303bb1 100644 --- a/hedera-node/test-clients/yahcli/localhost/keys/account55.pem +++ b/hedera-node/test-clients/yahcli/localhost/keys/account55.pem @@ -1,7 +1,7 @@ -----BEGIN ENCRYPTED PRIVATE KEY----- -MIHDMH8GCSqGSIb3DQEFDTByMFEGCSqGSIb3DQEFDDBEBDAqNosoP7Vz+faodhk1 -2N4Lykgs3AjiaZws0sajodGNLax8pG0FIFarGWtJyRPSKvgCAicQMAwGCCqGSIb3 -DQIKBQAwHQYJYIZIAWUDBAEqBBC6ckCkLqfdzlIynrvwtracBECvr1K4KI1PWJ5z -YY7WKfjy57ffuuQ2GlNZUrp6yylRlRPGqZ015XT2Cbph6sZNE4xwn0NMxGp7Wf2f -j0A8/Il/ +MIHDMH8GCSqGSIb3DQEFDTByMFEGCSqGSIb3DQEFDDBEBDAAjYrJqdRn+yhHliur +S1x8C89N3CTmjwLsB6C5n2fLs8oaB+7SpgDBkWibsrlc8+ACAicQMAwGCCqGSIb3 +DQIKBQAwHQYJYIZIAWUDBAEqBBCRaztcTLabmkKgzlaF4vP9BEBb9fqmaZXq86dr +SnlCMX1xu5+zz0sJIYTT9oV4tVvqeW+CLT8FdReh3Zu86T6IoGN4sCU9C/FmyhOZ +JZlpLoFO -----END ENCRYPTED PRIVATE KEY----- diff --git a/platform-sdk/docs/base/logging/logging.md b/platform-sdk/docs/base/logging/logging.md index bd7eceb387d5..427dd1e41e12 100644 --- a/platform-sdk/docs/base/logging/logging.md +++ b/platform-sdk/docs/base/logging/logging.md @@ -143,10 +143,13 @@ logging.level.com.hashgraph = WARN logging.marker.CONFIG = ENABLED ``` -### Handlers +## Handlers + +### Introduction To further refine our logging system, we have incorporated handlers for more granular control over logging behavior. -Each handler can be distinctly named and configured using the prefix `logging.handler.NAME`, where `NAME` serves as a unique identifier. +Each handler can be distinctly named and configured using the prefix `logging.handler.NAME`, where `NAME` serves as a unique identifier. +Two fields are required: `logging.handler.NAME.type`, to specify the type of the handler, and `logging.handler.NAME.enabled` must be set to `true` to activate the handler. The default value for all `logging.handler.NAME.enabled` properties is `false`. This structure allows for the application of handler-specific settings. For instance, `logging.handler.NAME.level` is used to set the logging level for a specific handler, ensuring that all previously discussed features such as marker filters and log level settings are compatible. This setup is instrumental in creating dedicated log files or outputs for specific types of log messages, offering a focused view that is particularly useful in complex systems or during targeted analyses. @@ -162,6 +165,8 @@ For example, if you need a handler that only logs entries marked with the `CRYPT ```properties # Handler specific for CRYPTO marker +logging.handler.CRYPTO_FILE.enabled = true +logging.handler.CRYPTO_FILE.type = file logging.handler.CRYPTO_FILE.inheritLevels = false logging.handler.CRYPTO_FILE.level = OFF logging.handler.CRYPTO_FILE.marker.CRYPTO = ENABLED @@ -169,6 +174,22 @@ logging.handler.CRYPTO_FILE.marker.CRYPTO = ENABLED In this configuration, the `CRYPTO_FILE` handler is set to ignore the global log level settings (`level = OFF`) but is specifically enabled to log messages tagged with the `CRYPTO` marker (`marker.CRYPTO = ENABLED`). + +### File Handler + +Configure your file handlers with these properties to control logging behavior: + +- **File Path (`logging.handler.NAME.file`)**: Specifies the file to write logs to. +- **Append Mode (`logging.handler.NAME.append`)**: If `true` (default), logs are appended to the file; if `false`, the file is overwritten on new logs. + +**Examples:** +```yaml +logging.handler.NAME.file: /path/to/logfile.log +logging.handler.NAME.append: true +``` +> [!NOTE] +> Adjust `NAME` to your handler's name. The default settings are optimized for general use. + --- ## Test Support with `WithLoggingMirror` diff --git a/platform-sdk/platform-apps/demos/HashgraphDemo/src/main/java/com/swirlds/demo/hashgraph/HashgraphDemoMain.java b/platform-sdk/platform-apps/demos/HashgraphDemo/src/main/java/com/swirlds/demo/hashgraph/HashgraphDemoMain.java deleted file mode 100644 index c2ea1f496fd1..000000000000 --- a/platform-sdk/platform-apps/demos/HashgraphDemo/src/main/java/com/swirlds/demo/hashgraph/HashgraphDemoMain.java +++ /dev/null @@ -1,506 +0,0 @@ -/* - * Copyright (C) 2022-2024 Hedera Hashgraph, LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.swirlds.demo.hashgraph; -/* - * This file is public domain. - * - * SWIRLDS MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF - * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED - * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A - * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SWIRLDS SHALL NOT BE LIABLE FOR - * ANY DAMAGES SUFFERED AS A RESULT OF USING, MODIFYING OR - * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. - */ - -import static com.swirlds.metrics.api.Metrics.PLATFORM_CATEGORY; - -import com.swirlds.common.platform.NodeId; -import com.swirlds.metrics.api.Metrics; -import com.swirlds.platform.Browser; -import com.swirlds.platform.ParameterProvider; -import com.swirlds.platform.gui.GuiPlatformAccessor; -import com.swirlds.platform.gui.SwirldsGui; -import com.swirlds.platform.gui.model.GuiModel; -import com.swirlds.platform.network.Network; -import com.swirlds.platform.state.address.AddressBookNetworkUtils; -import com.swirlds.platform.system.BasicSoftwareVersion; -import com.swirlds.platform.system.Platform; -import com.swirlds.platform.system.SwirldMain; -import com.swirlds.platform.system.SwirldState; -import com.swirlds.platform.system.address.Address; -import com.swirlds.platform.system.address.AddressBook; -import com.swirlds.platform.system.events.PlatformEvent; -import java.awt.Checkbox; -import java.awt.Color; -import java.awt.Component; -import java.awt.Font; -import java.awt.FontMetrics; -import java.awt.Graphics; -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; -import java.awt.Insets; -import java.awt.Label; -import java.awt.TextField; -import java.awt.geom.Rectangle2D; -import java.time.Instant; -import java.time.ZoneId; -import java.time.format.DateTimeFormatter; -import java.util.Arrays; -import java.util.Locale; -import java.util.function.BiFunction; -import javax.swing.JFrame; -import javax.swing.JPanel; - -/** - * This app draws the hashgraph on the screen. Events are circles, with earlier ones lower. Events are color - * coded: A non-witness is gray, and a witness has a color of green (famous), blue (not famous) or red - * (undecided fame). When the event becomes part of the consensus, its color becomes darker. - */ -public class HashgraphDemoMain implements SwirldMain { - /** delay after each screen update in milliseconds (250 means update 4 times per second) */ - private static final long screenUpdateDelay = 250; - - /** color for outline of labels */ - static final Color LABEL_OUTLINE = new Color(255, 255, 255); - /** color for unknown-fame witness, non-consensus */ - static final Color LIGHT_RED = new Color(192, 0, 0); - /** color for unknown-fame witness, consensus (which never happens) */ - static final Color DARK_RED = new Color(128, 0, 0); - /** color for famous witness, non-consensus */ - static final Color LIGHT_GREEN = new Color(0, 192, 0); - /** color for famous witness, consensus */ - static final Color DARK_GREEN = new Color(0, 128, 0); - /** color for non-famous witness, non-consensus */ - static final Color LIGHT_BLUE = new Color(0, 0, 192); - /** color for non-famous witness, consensus */ - static final Color DARK_BLUE = new Color(0, 0, 128); - /** color for non-witness, non-consensus */ - static final Color LIGHT_GRAY = new Color(160, 160, 160); - /** non-witness, consensus */ - static final Color DARK_GRAY = new Color(0, 0, 0); - /** the app is run by this */ - public Platform platform; - /** ID for this member */ - public NodeId selfId; - /** the entire window, including Swirlds menu, Picture, checkboxes */ - JFrame window; - /** the JFrame with the hashgraph */ - Picture picture; - /** a copy of the set of events at one moment, which paintComponent will draw */ - private PlatformEvent[] eventsCache; - /** the number of members in the addressBook */ - private int numMembers = -1; - /** number of columns (equals number of members) */ - private int numColumns; - /** the nicknames of all the members */ - private String[] names; - - /** if checked, this member calls to gossip once per second */ - private Checkbox slowCheckbox; - /** if checked, freeze the display (don't update it) */ - private Checkbox freezeCheckbox; - /** if checked, color vertices only green (non-consensus) or blue (consensus) */ - private Checkbox simpleColorsCheckbox; - - // the following checkboxes control which labels to print on each vertex - - /** the round number for the event */ - private Checkbox labelRoundCheckbox; - /** the consensus round received for the event */ - private Checkbox labelRoundRecCheckbox; - /** the consensus order number for the event */ - private Checkbox labelConsOrderCheckbox; - /** the consensus time stamp for the event */ - private Checkbox labelConsTimestampCheckbox; - /** the generation number for the event */ - private Checkbox labelGenerationCheckbox; - /** the ID number of the member who created the event */ - private Checkbox labelCreatorCheckbox; - - /** only draw this many events, at most */ - private TextField eventLimit; - - /** format the consensusTimestamp label */ - DateTimeFormatter formatter = - DateTimeFormatter.ofPattern("H:m:s.n").withLocale(Locale.US).withZone(ZoneId.systemDefault()); - - private static final BasicSoftwareVersion softwareVersion = new BasicSoftwareVersion(1); - - /** - * Return the color for an event based on calculations in the consensus algorithm A non-witness is gray, - * and a witness has a color of green (famous), blue (not famous) or red (undecided fame). When the - * event becomes part of the consensus, its color becomes darker. - * - * @param event - * the event to color - * @return its color - */ - private Color eventColor(final PlatformEvent event) { - if (simpleColorsCheckbox.getState()) { // if checkbox checked - return event.isConsensus() ? LIGHT_BLUE : LIGHT_GREEN; - } - if (!event.isWitness()) { - return event.isConsensus() ? DARK_GRAY : LIGHT_GRAY; - } - if (!event.isFameDecided()) { - return event.isConsensus() ? DARK_RED : LIGHT_RED; - } - if (event.isFamous()) { - return event.isConsensus() ? DARK_GREEN : LIGHT_GREEN; - } - return event.isConsensus() ? DARK_BLUE : LIGHT_BLUE; - } - - /** - * This panel has the statistics and hashgraph picture, and appears in the window below all the - * settings, right below "display last ___ events". - */ - private class Picture extends JPanel { - private static final long serialVersionUID = 1L; - int ymin, ymax, width, n; - double r; - long minGen, maxGen; - /** row to draw next in the window */ - int row; - /** column to draw next in the window */ - int col; - /** font height, in pixels */ - int textLineHeight; - - /** - * find x position on the screen for the given event event - * - * @param event - * the event (displayed as a circle on the screen) - * @return the x coordinate for that event - */ - private int xpos(final PlatformEvent event) { - // To support Noncontiguous NodeId, the index of the NodeId in the address book is used. - final int nodeIndex = platform.getAddressBook().getIndexOfNodeId(event.getCreatorId()); - return (nodeIndex + 1) * width / (numColumns + 1); - } - - /** - * find y position on the screen for the given event event - * - * @param event - * the event (displayed as a circle on the screen) - * @return the y coordinate for that event - */ - private int ypos(final PlatformEvent event) { - return (event == null) ? -100 : (int) (ymax - r * (1 + 2 * (event.getGeneration() - minGen))); - } - - /** - * called by paintComponent to draw text at the top of the window - * - * @param g - * the graphics context passed to paintComponent - * @param text - * a String.format formatting string - * @param value - * the value to pass to String.format to be formatted - */ - private void print(final Graphics g, final String text, final double value) { - g.drawString(String.format(text, value), col, row++ * textLineHeight - 3); - } - - /** {@inheritDoc} */ - public void paintComponent(final Graphics g) { - super.paintComponent(g); - g.setFont(new Font(Font.MONOSPACED, 12, 12)); - final FontMetrics fm = g.getFontMetrics(); - final int fa = fm.getMaxAscent(); - final int fd = fm.getMaxDescent(); - textLineHeight = fa + fd; - final int numMem = platform.getAddressBook().getSize(); - calcNames(); - width = getWidth(); - - row = 1; - col = 10; - final Metrics metrics = platform.getContext().getMetrics(); - final double createCons = (double) metrics.getValue(PLATFORM_CATEGORY, "secC2C"); - final double recCons = (double) metrics.getValue(PLATFORM_CATEGORY, "secR2C"); - - print(g, "%5.0f trans_per_sec", (double) metrics.getValue(PLATFORM_CATEGORY, "trans_per_sec")); - print(g, "%5.0f events_per_sec", (double) metrics.getValue(PLATFORM_CATEGORY, "events_per_sec")); - print(g, "%4.0f%% duplicate events", (double) metrics.getValue(PLATFORM_CATEGORY, "dupEvPercent")); - - print(g, "%5.3f sec, propagation time", createCons - recCons); - print(g, "%5.3f sec, create to consensus", createCons); - print(g, "%5.3f sec, receive to consensus", recCons); - final Address address = platform.getAddressBook().getAddress(platform.getSelfId()); - print(g, "Internal: " + Network.getInternalIPAddress() + " : " + address.getPortInternal(), 0); - - final int height1 = (row - 1) * textLineHeight; // text area at the top - final int height2 = getHeight() - height1; // the main display, below the text - g.setColor(Color.BLACK); - ymin = (int) Math.round(height1 + 0.025 * height2); - ymax = (int) Math.round(height1 + 0.975 * height2) - textLineHeight; - for (int i = 0; i < numColumns; i++) { - final int x = (i + 1) * width / (numColumns + 1); - g.drawLine(x, ymin, x, ymax); - final Rectangle2D rect = fm.getStringBounds(names[i], g); - g.drawString(names[i], (int) (x - rect.getWidth() / 2), (int) (ymax + rect.getHeight())); - } - - PlatformEvent[] events = eventsCache; - if (events == null) { // in case a screen refresh happens before any events - return; - } - int maxEvents; - try { - maxEvents = Math.max(0, Integer.parseInt(eventLimit.getText())); - } catch (final NumberFormatException err) { - maxEvents = 0; - } - - if (maxEvents > 0) { - events = Arrays.copyOfRange(events, Math.max(0, events.length - maxEvents), events.length); - } - - minGen = Integer.MAX_VALUE; - maxGen = Integer.MIN_VALUE; - for (final PlatformEvent event : events) { - minGen = Math.min(minGen, event.getGeneration()); - maxGen = Math.max(maxGen, event.getGeneration()); - } - maxGen = Math.max(maxGen, minGen + 2); - n = numMem + 1; - final double gens = maxGen - minGen; - final double dy = (ymax - ymin) * (gens - 1) / gens; - r = Math.min(width / n / 4, dy / gens / 2); - final int d = (int) (2 * r); - - // for each event, draw 2 downward lines to its parents - for (final PlatformEvent event : events) { - g.setColor(eventColor(event)); - final PlatformEvent e1 = event.getSelfParent(); - final PlatformEvent e2 = event.getOtherParent(); - if (e1 != null && e1.getGeneration() >= minGen) { - g.drawLine(xpos(event), ypos(event), xpos(event), ypos(e1)); - } - if (e2 != null && e2.getGeneration() >= minGen) { - g.drawLine(xpos(event), ypos(event), xpos(e2), ypos(e2)); - } - } - - // for each event, draw its circle - for (final PlatformEvent event : events) { - final PlatformEvent e1 = event.getSelfParent(); - final PlatformEvent e2 = event.getOtherParent(); - if (e1 == null || e2 == null) { - continue; // discarded events have no parents, so skip them - } - final Color color = eventColor(event); - g.setColor(color); - g.fillOval(xpos(event) - d / 2, ypos(event) - d / 2, d, d); - g.setFont(g.getFont().deriveFont(Font.BOLD)); - - String s = ""; - - if (labelRoundCheckbox.getState()) { - s += " " + event.getRoundCreated(); - } - if (labelRoundRecCheckbox.getState() && event.getRoundReceived() > 0) { - s += " " + event.getRoundReceived(); - } - // if not consensus, then there's no order yet - if (labelConsOrderCheckbox.getState() && event.isConsensus()) { - s += " " + event.getConsensusOrder(); - } - if (labelConsTimestampCheckbox.getState()) { - final Instant t = event.getConsensusTimestamp(); - if (t != null) { - s += " " + formatter.format(t); - } - } - if (labelGenerationCheckbox.getState()) { - s += " " + event.getGeneration(); - } - if (labelCreatorCheckbox.getState()) { - s += " " + event.getCreatorId(); // ID number of member who created it - } - if (s != "") { - final Rectangle2D rect = fm.getStringBounds(s, g); - final int x = (int) (xpos(event) - rect.getWidth() / 2. - fa / 4.); - final int y = (int) (ypos(event) + rect.getHeight() / 2. - fd / 2); - g.setColor(LABEL_OUTLINE); - g.drawString(s, x - 1, y - 1); - g.drawString(s, x + 1, y - 1); - g.drawString(s, x - 1, y + 1); - g.drawString(s, x + 1, y + 1); - g.setColor(color); - g.drawString(s, x, y); - } - } - } - } - - /** - * This is just for debugging: it allows the app to run in Eclipse. If the config.txt exists and lists a - * particular SwirldMain class as the one to run, then it can run in Eclipse (with the green triangle - * icon). - * - * @param args - * these are not used - */ - public static void main(final String[] args) { - Browser.parseCommandLineArgsAndLaunch(args); - } - - /** Fill in the names array, with the name of each member. Also set numColumns and numMembers. */ - private void calcNames() { - final AddressBook addressBook = platform.getAddressBook(); - numColumns = addressBook.getSize(); - if (numColumns != numMembers) { - numMembers = numColumns; - names = new String[numColumns]; - for (int i = 0; i < numColumns; i++) { - final NodeId nodeId = addressBook.getNodeId(i); - names[i] = addressBook.getAddress(nodeId).getNickname(); - } - } - } - - // //////////////////////////////////////////////////////////////////// - // the following are the methods required by the SwirldState interface - // //////////////////////////////////////////////////////////////////// - - @Override - public void init(final Platform platform, final NodeId id) { - this.platform = platform; - this.selfId = id; - final String[] parameters = ParameterProvider.getInstance().getParameters(); - - GuiModel.getInstance() - .setAbout( - platform.getSelfId(), - "Hashgraph Demo v. 1.1\n" + "\n" - + "trans_per_sec = # transactions added to the hashgraph per second\n" - + "events_per_sec = # events added to the hashgraph per second\n" - + "duplicate events = percentage of events a member receives that they already know.\n" - + "bad events_per_sec = number of events per second received by a member that are invalid.\n" - + "propagation time = average seconds from creating a new event to a given member receiving it.\n" - + "create to consensus = average seconds from creating a new event to knowing its consensus order.\n" - + "receive to consensus = average seconds from receiving an event to knowing its consensus order.\n" - + "Witnesses are colored circles, non-witnesses are black/gray.\n" - + "Dark circles are part of the consensus, light are not.\n" - + "Fame is true for green, false for blue, unknown for red.\n"); - final Address address = platform.getAddressBook().getAddress(platform.getSelfId()); - final int winCount = AddressBookNetworkUtils.getLocalAddressCount(platform.getAddressBook()); - final int winNum = GuiModel.getInstance().getInstanceNumber(platform.getSelfId()); - window = SwirldsGui.createWindow( - platform, address, winCount, winNum, false); // Uses BorderLayout. Size is chosen by the Platform - window.setLayout(new GridBagLayout()); // use a layout more powerful than BorderLayout - int p = 0; // which parameter to use - final BiFunction cb = (n, s) -> new Checkbox( - s, null, parameters.length > n && parameters[n].trim().equals("1")); - - slowCheckbox = cb.apply(p++, "Slow: this member initiates gossip once a second"); - freezeCheckbox = cb.apply(p++, "Freeze: don't change this window"); - simpleColorsCheckbox = cb.apply(p++, "Simple colors: blue for consensus, green for not"); - labelRoundCheckbox = cb.apply(p++, "Labels: Round created"); - labelRoundRecCheckbox = cb.apply(p++, "Labels: Round received (consensus)"); - labelConsOrderCheckbox = cb.apply(p++, "Labels: Order (consensus)"); - labelConsTimestampCheckbox = cb.apply(p++, "Labels: Timestamp (consensus)"); - labelGenerationCheckbox = cb.apply(p++, "Labels: Generation"); - labelCreatorCheckbox = cb.apply(p++, "Labels: Creator ID"); - - eventLimit = new TextField(parameters.length <= p ? "" : parameters[p].trim(), 5); - p++; - - final GridBagConstraints constr = new GridBagConstraints(); - constr.fill = GridBagConstraints.NONE; // don't stretch components - constr.gridwidth = GridBagConstraints.REMAINDER; // each component uses all cells in a row - constr.anchor = GridBagConstraints.WEST; // left align each component in its cell - constr.weightx = 0; // don't put extra space in the middle - constr.weighty = 0; - constr.gridx = 0; // start in upper-left cell - constr.gridy = 0; - constr.insets = new Insets(0, 10, -4, 0); // add external padding on left, remove from bottom - - final Component[] comps = new Component[] { - slowCheckbox, - freezeCheckbox, - simpleColorsCheckbox, - labelRoundCheckbox, - labelRoundRecCheckbox, - labelConsOrderCheckbox, - labelConsTimestampCheckbox, - labelGenerationCheckbox, - labelCreatorCheckbox - }; - for (final Component c : comps) { - window.add(c, constr); - constr.gridy++; - } - constr.gridwidth = 1; // each component is one cell - window.add(new Label("Display the last "), constr); - constr.gridx++; - constr.insets = new Insets(0, 0, -4, 0); // don't pad on left - window.add(eventLimit, constr); - constr.gridx++; - window.add(new Label(" events"), constr); - constr.gridx = 0; - constr.gridy++; // skip a line betwen settings and stats - window.add(new Label(" "), constr); - constr.gridy++; - constr.weighty = 1.0; // give the picture all leftover space - constr.weightx = 1.0; - constr.fill = GridBagConstraints.BOTH; // stretch the picture to fit - constr.gridwidth = GridBagConstraints.REMAINDER; // picture uses a whole row - picture = new Picture(); - window.add(picture, constr); - window.setVisible(true); - } - - @Override - public void run() { - while (true) { - if (window != null && !freezeCheckbox.getState()) { - eventsCache = GuiPlatformAccessor.getInstance().getAllEvents(platform.getSelfId()); - // after this getAllEvents call, the set of events to draw is frozen - // for the duration of this screen redraw. But their status (consensus or not) may change - // while it is being drawn. If an event is discarded while being drawn, then it forgets its - // parents, and won't be drawn here. - window.repaint(); - // the network will stop creating events if there are no user transactions. We will submit 1 byte - // transactions in order to have events created continuously - platform.createTransaction(new byte[1]); - } - try { - Thread.sleep(screenUpdateDelay); - } catch (final Exception e) { - } - } - } - - @Override - public SwirldState newState() { - return new HashgraphDemoState(); - } - - /** - * {@inheritDoc} - */ - @Override - public BasicSoftwareVersion getSoftwareVersion() { - return softwareVersion; - } -} diff --git a/platform-sdk/platform-apps/demos/HashgraphDemo/src/main/java/com/swirlds/demo/hashgraph/HashgraphDemoState.java b/platform-sdk/platform-apps/demos/HashgraphDemo/src/main/java/com/swirlds/demo/hashgraph/HashgraphDemoState.java deleted file mode 100644 index 0bbe6c55cdb4..000000000000 --- a/platform-sdk/platform-apps/demos/HashgraphDemo/src/main/java/com/swirlds/demo/hashgraph/HashgraphDemoState.java +++ /dev/null @@ -1,116 +0,0 @@ -/* - * Copyright (C) 2016-2024 Hedera Hashgraph, LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.swirlds.demo.hashgraph; -/* - * This file is public domain. - * - * SWIRLDS MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF - * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED - * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A - * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SWIRLDS SHALL NOT BE LIABLE FOR - * ANY DAMAGES SUFFERED AS A RESULT OF USING, MODIFYING OR - * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. - */ - -import com.swirlds.common.io.streams.SerializableDataInputStream; -import com.swirlds.common.io.streams.SerializableDataOutputStream; -import com.swirlds.common.merkle.MerkleLeaf; -import com.swirlds.common.merkle.impl.PartialMerkleLeaf; -import com.swirlds.platform.state.PlatformState; -import com.swirlds.platform.system.Round; -import com.swirlds.platform.system.SwirldState; - -/** - * The state for the hashgraph demo. See the comments for com.swirlds.demos.HashgraphDemoMain - */ -public class HashgraphDemoState extends PartialMerkleLeaf implements SwirldState, MerkleLeaf { - - /** - * The version history of this class. - * Versions that have been released must NEVER be given a different value. - */ - private static class ClassVersion { - /** - * In this version, serialization was performed by copyTo/copyToExtra and deserialization was performed by - * copyFrom/copyFromExtra. This version is not supported by later deserialization methods and must be handled - * specially by the platform. - */ - public static final int ORIGINAL = 1; - /** - * In this version, serialization was performed by serialize/deserialize. - */ - public static final int MIGRATE_TO_SERIALIZABLE = 2; - } - - private static final long CLASS_ID = 0xe8cc5e77ddbe70e4L; - - // /////////////////////////////////////////////////////////////////// - - public HashgraphDemoState() {} - - private HashgraphDemoState(final HashgraphDemoState sourceState) { - super(sourceState); - } - - @Override - public synchronized void handleConsensusRound(final Round round, final PlatformState platformState) {} - - /** - * {@inheritDoc} - */ - @Override - public synchronized HashgraphDemoState copy() { - throwIfImmutable(); - return new HashgraphDemoState(this); - } - - /** - * {@inheritDoc} - */ - @Override - public void serialize(final SerializableDataOutputStream out) {} - - /** - * {@inheritDoc} - */ - @Override - public void deserialize(final SerializableDataInputStream in, final int version) {} - - /** - * {@inheritDoc} - */ - @Override - public long getClassId() { - return CLASS_ID; - } - - /** - * {@inheritDoc} - */ - @Override - public int getVersion() { - return ClassVersion.MIGRATE_TO_SERIALIZABLE; - } - - /** - * {@inheritDoc} - */ - @Override - public int getMinimumSupportedVersion() { - return ClassVersion.MIGRATE_TO_SERIALIZABLE; - } -} diff --git a/platform-sdk/platform-apps/demos/HashgraphDemo/src/main/java/module-info.java b/platform-sdk/platform-apps/demos/HashgraphDemo/src/main/java/module-info.java deleted file mode 100644 index 838c2212dc87..000000000000 --- a/platform-sdk/platform-apps/demos/HashgraphDemo/src/main/java/module-info.java +++ /dev/null @@ -1,6 +0,0 @@ -module com.swirlds.demo.hashgraph { - requires com.swirlds.common; - requires com.swirlds.metrics.api; - requires com.swirlds.platform.core; - requires java.desktop; -} diff --git a/platform-sdk/platform-apps/tests/AddressBookTestingTool/README.md b/platform-sdk/platform-apps/tests/AddressBookTestingTool/README.md index b79276dc6957..61cd869e44a8 100644 --- a/platform-sdk/platform-apps/tests/AddressBookTestingTool/README.md +++ b/platform-sdk/platform-apps/tests/AddressBookTestingTool/README.md @@ -9,7 +9,7 @@ Be sure to clean and assemble the whole project if the java files have been modi ### config.txt comment out the current app ``` -# app, HashgraphDemo.jar, 1,0,0,0,0,0,0,0,0,0, all +# app, StatsDemo.jar, 1, 3000, 0, 100, -1, 200 ``` uncomment the AddressBookTestingTool.jar ``` diff --git a/platform-sdk/platform-apps/tests/MigrationTestingTool/src/main/java/com/swirlds/demo/migration/MigrationTestingToolMain.java b/platform-sdk/platform-apps/tests/MigrationTestingTool/src/main/java/com/swirlds/demo/migration/MigrationTestingToolMain.java index 9321491975a7..4d03521f4f80 100644 --- a/platform-sdk/platform-apps/tests/MigrationTestingTool/src/main/java/com/swirlds/demo/migration/MigrationTestingToolMain.java +++ b/platform-sdk/platform-apps/tests/MigrationTestingTool/src/main/java/com/swirlds/demo/migration/MigrationTestingToolMain.java @@ -56,7 +56,7 @@ public class MigrationTestingToolMain implements SwirldMain { private double toCreate = 0; private long lastEventTime = System.nanoTime(); - public static final long SOFTWARE_VERSION = 4L; + public static final long SOFTWARE_VERSION = 5L; public static final BasicSoftwareVersion PREVIOUS_SOFTWARE_VERSION = new BasicSoftwareVersion(SOFTWARE_VERSION - 1); private final BasicSoftwareVersion softwareVersion = new BasicSoftwareVersion(SOFTWARE_VERSION); diff --git a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/merkle/map/FCMConfig.java b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/merkle/map/FCMConfig.java index 61736b8d4f03..01bbe062f974 100644 --- a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/merkle/map/FCMConfig.java +++ b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/merkle/map/FCMConfig.java @@ -18,14 +18,14 @@ import static com.swirlds.demo.platform.PAYLOAD_TYPE.TYPE_FCM_CREATE; import static com.swirlds.demo.platform.PAYLOAD_TYPE.TYPE_VIRTUAL_MERKLE_CREATE; -import static com.swirlds.merkle.map.test.lifecycle.EntityType.Crypto; -import static com.swirlds.merkle.map.test.lifecycle.EntityType.FCQ; -import static com.swirlds.merkle.map.test.lifecycle.EntityType.VIRTUAL_MERKLE_ACCOUNT; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.EntityType.Crypto; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.EntityType.FCQ; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.EntityType.VIRTUAL_MERKLE_ACCOUNT; import com.swirlds.demo.platform.PAYLOAD_TYPE; import com.swirlds.demo.virtualmerkle.config.TransactionRequestConfig; import com.swirlds.demo.virtualmerkle.config.VirtualMerkleConfig; -import com.swirlds.merkle.map.test.lifecycle.EntityType; +import com.swirlds.merkle.test.fixtures.map.lifecycle.EntityType; import java.io.Serializable; import java.util.ArrayList; import java.util.Arrays; diff --git a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/merkle/map/FCMFamily.java b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/merkle/map/FCMFamily.java index 4da8e9b41aee..1a4287c70785 100644 --- a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/merkle/map/FCMFamily.java +++ b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/merkle/map/FCMFamily.java @@ -20,9 +20,9 @@ import com.swirlds.common.merkle.MerkleNode; import com.swirlds.common.merkle.impl.PartialNaryMerkleInternal; import com.swirlds.merkle.map.MerkleMap; -import com.swirlds.merkle.map.test.lifecycle.EntityType; -import com.swirlds.merkle.map.test.pta.MapKey; -import com.swirlds.merkle.map.test.pta.TransactionRecord; +import com.swirlds.merkle.test.fixtures.map.lifecycle.EntityType; +import com.swirlds.merkle.test.fixtures.map.pta.MapKey; +import com.swirlds.merkle.test.fixtures.map.pta.TransactionRecord; import java.util.Map; public class FCMFamily extends PartialNaryMerkleInternal implements MerkleInternal { diff --git a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/merkle/map/FCMTransactionHandler.java b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/merkle/map/FCMTransactionHandler.java index 396b49d01b80..9271ba4e13ac 100644 --- a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/merkle/map/FCMTransactionHandler.java +++ b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/merkle/map/FCMTransactionHandler.java @@ -19,11 +19,11 @@ import static com.swirlds.base.units.UnitConstants.MILLISECONDS_TO_NANOSECONDS; import static com.swirlds.demo.merkle.map.FCMTransactionPool.DEMO_TRANSACTION_INFO; import static com.swirlds.logging.legacy.LogMarker.EXCEPTION; -import static com.swirlds.merkle.map.test.lifecycle.TransactionState.HANDLED; -import static com.swirlds.merkle.map.test.lifecycle.TransactionType.Create; -import static com.swirlds.merkle.map.test.lifecycle.TransactionType.Delete; -import static com.swirlds.merkle.map.test.lifecycle.TransactionType.Transfer; -import static com.swirlds.merkle.map.test.lifecycle.TransactionType.Update; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionState.HANDLED; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType.Create; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType.Delete; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType.Transfer; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType.Update; import com.swirlds.base.utility.Pair; import com.swirlds.common.merkle.utility.MerkleLong; @@ -52,10 +52,10 @@ import com.swirlds.demo.platform.nft.NftLedger; import com.swirlds.demo.platform.nft.ReferenceNftLedger; import com.swirlds.merkle.map.MerkleMap; -import com.swirlds.merkle.map.test.lifecycle.EntityType; -import com.swirlds.merkle.map.test.pta.MapKey; -import com.swirlds.merkle.map.test.pta.MapValue; -import com.swirlds.merkle.map.test.pta.TransactionRecord; +import com.swirlds.merkle.test.fixtures.map.lifecycle.EntityType; +import com.swirlds.merkle.test.fixtures.map.pta.MapKey; +import com.swirlds.merkle.test.fixtures.map.pta.MapValue; +import com.swirlds.merkle.test.fixtures.map.pta.TransactionRecord; import java.io.IOException; import java.util.ArrayList; import java.util.List; diff --git a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/merkle/map/FCMTransactionPool.java b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/merkle/map/FCMTransactionPool.java index 7404b14a651b..f4a1756f11fb 100644 --- a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/merkle/map/FCMTransactionPool.java +++ b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/merkle/map/FCMTransactionPool.java @@ -24,12 +24,12 @@ import static com.swirlds.demo.platform.PAYLOAD_TYPE.TYPE_FCM_UPDATE_FCQ; import static com.swirlds.demo.platform.TransactionSubmitter.USE_DEFAULT_TPS; import static com.swirlds.logging.legacy.LogMarker.EXCEPTION; -import static com.swirlds.merkle.map.test.lifecycle.EntityType.Crypto; -import static com.swirlds.merkle.map.test.lifecycle.EntityType.FCQ; -import static com.swirlds.merkle.map.test.lifecycle.TransactionType.Create; -import static com.swirlds.merkle.map.test.lifecycle.TransactionType.Delete; -import static com.swirlds.merkle.map.test.lifecycle.TransactionType.Transfer; -import static com.swirlds.merkle.map.test.lifecycle.TransactionType.Update; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.EntityType.Crypto; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.EntityType.FCQ; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType.Create; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType.Delete; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType.Transfer; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType.Update; import com.google.protobuf.ByteString; import com.swirlds.base.utility.Pair; @@ -63,12 +63,12 @@ import com.swirlds.demo.platform.fs.stresstest.proto.UpdateAccount; import com.swirlds.demo.platform.fs.stresstest.proto.UpdateAccountFCQ; import com.swirlds.demo.platform.nft.NftId; -import com.swirlds.merkle.map.test.lifecycle.EntityType; -import com.swirlds.merkle.map.test.lifecycle.ExpectedValue; -import com.swirlds.merkle.map.test.lifecycle.LifecycleStatus; -import com.swirlds.merkle.map.test.lifecycle.TransactionState; -import com.swirlds.merkle.map.test.lifecycle.TransactionType; -import com.swirlds.merkle.map.test.pta.MapKey; +import com.swirlds.merkle.test.fixtures.map.lifecycle.EntityType; +import com.swirlds.merkle.test.fixtures.map.lifecycle.ExpectedValue; +import com.swirlds.merkle.test.fixtures.map.lifecycle.LifecycleStatus; +import com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionState; +import com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType; +import com.swirlds.merkle.test.fixtures.map.pta.MapKey; import com.swirlds.platform.system.Platform; import java.time.Instant; import java.util.ArrayList; diff --git a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/merkle/map/FCMTransactionUtils.java b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/merkle/map/FCMTransactionUtils.java index fe62823472ac..3c7c149fe21d 100644 --- a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/merkle/map/FCMTransactionUtils.java +++ b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/merkle/map/FCMTransactionUtils.java @@ -17,14 +17,14 @@ package com.swirlds.demo.merkle.map; import static com.swirlds.logging.legacy.LogMarker.EXCEPTION; -import static com.swirlds.merkle.map.test.lifecycle.TransactionType.Append; -import static com.swirlds.merkle.map.test.lifecycle.TransactionType.BurnToken; -import static com.swirlds.merkle.map.test.lifecycle.TransactionType.Create; -import static com.swirlds.merkle.map.test.lifecycle.TransactionType.Delete; -import static com.swirlds.merkle.map.test.lifecycle.TransactionType.MintToken; -import static com.swirlds.merkle.map.test.lifecycle.TransactionType.Transfer; -import static com.swirlds.merkle.map.test.lifecycle.TransactionType.TransferToken; -import static com.swirlds.merkle.map.test.lifecycle.TransactionType.Update; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType.Append; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType.BurnToken; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType.Create; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType.Delete; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType.MintToken; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType.Transfer; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType.TransferToken; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType.Update; import com.swirlds.demo.platform.fs.stresstest.proto.BurnToken; import com.swirlds.demo.platform.fs.stresstest.proto.FCMTransaction; @@ -34,9 +34,9 @@ import com.swirlds.demo.platform.fs.stresstest.proto.TransferBalance; import com.swirlds.demo.platform.fs.stresstest.proto.TransferBalanceFCQ; import com.swirlds.demo.platform.fs.stresstest.proto.TransferToken; -import com.swirlds.merkle.map.test.lifecycle.EntityType; -import com.swirlds.merkle.map.test.lifecycle.TransactionType; -import com.swirlds.merkle.map.test.pta.MapKey; +import com.swirlds.merkle.test.fixtures.map.lifecycle.EntityType; +import com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType; +import com.swirlds.merkle.test.fixtures.map.pta.MapKey; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.ArrayList; diff --git a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/merkle/map/MapValueData.java b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/merkle/map/MapValueData.java index 6ed93605ac1c..1dc4b658e0a7 100644 --- a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/merkle/map/MapValueData.java +++ b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/merkle/map/MapValueData.java @@ -23,8 +23,8 @@ import com.swirlds.common.merkle.MerkleLeaf; import com.swirlds.common.merkle.impl.PartialMerkleLeaf; import com.swirlds.common.merkle.utility.Keyed; -import com.swirlds.merkle.map.test.pta.MapKey; -import com.swirlds.merkle.map.test.pta.MapValue; +import com.swirlds.merkle.test.fixtures.map.pta.MapKey; +import com.swirlds.merkle.test.fixtures.map.pta.MapValue; import java.io.IOException; import java.io.Serializable; import java.util.Objects; diff --git a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/merkle/map/MapValueFCQ.java b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/merkle/map/MapValueFCQ.java index 7f7e698b96b2..1528557dd9b5 100644 --- a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/merkle/map/MapValueFCQ.java +++ b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/merkle/map/MapValueFCQ.java @@ -28,10 +28,10 @@ import com.swirlds.demo.platform.expiration.ExpirationRecordEntry; import com.swirlds.demo.platform.expiration.ExpirationUtils; import com.swirlds.fcqueue.FCQueue; -import com.swirlds.merkle.map.test.pta.MapKey; -import com.swirlds.merkle.map.test.pta.MapValue; -import com.swirlds.merkle.map.test.pta.MerkleMapKey; -import com.swirlds.merkle.map.test.pta.TransactionRecord; +import com.swirlds.merkle.test.fixtures.map.pta.MapKey; +import com.swirlds.merkle.test.fixtures.map.pta.MapValue; +import com.swirlds.merkle.test.fixtures.map.pta.MerkleMapKey; +import com.swirlds.merkle.test.fixtures.map.pta.TransactionRecord; import java.util.Collection; import java.util.Objects; import java.util.Set; diff --git a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/merkle/map/internal/DummyExpectedFCMFamily.java b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/merkle/map/internal/DummyExpectedFCMFamily.java index 686121a67c29..ba1066a3ded0 100644 --- a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/merkle/map/internal/DummyExpectedFCMFamily.java +++ b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/merkle/map/internal/DummyExpectedFCMFamily.java @@ -24,13 +24,13 @@ import com.swirlds.demo.platform.PayloadCfgSimple; import com.swirlds.demo.platform.PayloadConfig; import com.swirlds.demo.platform.nft.NftId; -import com.swirlds.merkle.map.test.lifecycle.EntityType; -import com.swirlds.merkle.map.test.lifecycle.ExpectedValue; -import com.swirlds.merkle.map.test.lifecycle.LifecycleStatus; -import com.swirlds.merkle.map.test.lifecycle.TransactionState; -import com.swirlds.merkle.map.test.lifecycle.TransactionType; -import com.swirlds.merkle.map.test.pta.MapKey; -import com.swirlds.merkle.map.test.pta.MapValue; +import com.swirlds.merkle.test.fixtures.map.lifecycle.EntityType; +import com.swirlds.merkle.test.fixtures.map.lifecycle.ExpectedValue; +import com.swirlds.merkle.test.fixtures.map.lifecycle.LifecycleStatus; +import com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionState; +import com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType; +import com.swirlds.merkle.test.fixtures.map.pta.MapKey; +import com.swirlds.merkle.test.fixtures.map.pta.MapValue; import java.security.SecureRandom; import java.util.HashMap; import java.util.List; diff --git a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/merkle/map/internal/ExpectedFCMFamily.java b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/merkle/map/internal/ExpectedFCMFamily.java index c4fd9467c979..e8918f75ee1b 100644 --- a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/merkle/map/internal/ExpectedFCMFamily.java +++ b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/merkle/map/internal/ExpectedFCMFamily.java @@ -22,13 +22,13 @@ import com.swirlds.demo.platform.PayloadCfgSimple; import com.swirlds.demo.platform.PayloadConfig; import com.swirlds.demo.platform.nft.NftId; -import com.swirlds.merkle.map.test.lifecycle.EntityType; -import com.swirlds.merkle.map.test.lifecycle.ExpectedValue; -import com.swirlds.merkle.map.test.lifecycle.LifecycleStatus; -import com.swirlds.merkle.map.test.lifecycle.TransactionState; -import com.swirlds.merkle.map.test.lifecycle.TransactionType; -import com.swirlds.merkle.map.test.pta.MapKey; -import com.swirlds.merkle.map.test.pta.MapValue; +import com.swirlds.merkle.test.fixtures.map.lifecycle.EntityType; +import com.swirlds.merkle.test.fixtures.map.lifecycle.ExpectedValue; +import com.swirlds.merkle.test.fixtures.map.lifecycle.LifecycleStatus; +import com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionState; +import com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType; +import com.swirlds.merkle.test.fixtures.map.pta.MapKey; +import com.swirlds.merkle.test.fixtures.map.pta.MapValue; import java.io.Serializable; import java.util.List; import java.util.Map; diff --git a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/merkle/map/internal/ExpectedFCMFamilyImpl.java b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/merkle/map/internal/ExpectedFCMFamilyImpl.java index 66e5669103f9..9ac7f090e0ba 100644 --- a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/merkle/map/internal/ExpectedFCMFamilyImpl.java +++ b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/merkle/map/internal/ExpectedFCMFamilyImpl.java @@ -18,15 +18,15 @@ import static com.swirlds.common.utility.CommonUtils.hex; import static com.swirlds.logging.legacy.LogMarker.EXCEPTION; -import static com.swirlds.merkle.map.test.lifecycle.EntityType.Crypto; -import static com.swirlds.merkle.map.test.lifecycle.EntityType.FCQ; -import static com.swirlds.merkle.map.test.lifecycle.EntityType.NFT; -import static com.swirlds.merkle.map.test.lifecycle.EntityType.VIRTUAL_MERKLE_ACCOUNT; -import static com.swirlds.merkle.map.test.lifecycle.TransactionState.INITIALIZED; -import static com.swirlds.merkle.map.test.lifecycle.TransactionType.Create; -import static com.swirlds.merkle.map.test.lifecycle.TransactionType.Delete; -import static com.swirlds.merkle.map.test.lifecycle.TransactionType.Expire; -import static com.swirlds.merkle.map.test.lifecycle.TransactionType.Rebuild; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.EntityType.Crypto; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.EntityType.FCQ; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.EntityType.NFT; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.EntityType.VIRTUAL_MERKLE_ACCOUNT; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionState.INITIALIZED; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType.Create; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType.Delete; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType.Expire; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType.Rebuild; import com.google.protobuf.InvalidProtocolBufferException; import com.swirlds.common.crypto.Hash; @@ -41,13 +41,13 @@ import com.swirlds.demo.platform.fs.stresstest.proto.TestTransaction; import com.swirlds.demo.platform.fs.stresstest.proto.TestTransactionWrapper; import com.swirlds.demo.platform.nft.NftId; -import com.swirlds.merkle.map.test.lifecycle.EntityType; -import com.swirlds.merkle.map.test.lifecycle.ExpectedValue; -import com.swirlds.merkle.map.test.lifecycle.LifecycleStatus; -import com.swirlds.merkle.map.test.lifecycle.TransactionState; -import com.swirlds.merkle.map.test.lifecycle.TransactionType; -import com.swirlds.merkle.map.test.pta.MapKey; -import com.swirlds.merkle.map.test.pta.MapValue; +import com.swirlds.merkle.test.fixtures.map.lifecycle.EntityType; +import com.swirlds.merkle.test.fixtures.map.lifecycle.ExpectedValue; +import com.swirlds.merkle.test.fixtures.map.lifecycle.LifecycleStatus; +import com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionState; +import com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType; +import com.swirlds.merkle.test.fixtures.map.pta.MapKey; +import com.swirlds.merkle.test.fixtures.map.pta.MapValue; import java.io.IOException; import java.security.SecureRandom; import java.time.Instant; diff --git a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/merkle/map/internal/ExpectedMapUtils.java b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/merkle/map/internal/ExpectedMapUtils.java index e3d1f9f50bdb..996d1679ec61 100644 --- a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/merkle/map/internal/ExpectedMapUtils.java +++ b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/merkle/map/internal/ExpectedMapUtils.java @@ -24,10 +24,10 @@ import com.swirlds.demo.platform.SuperConfig; import com.swirlds.demo.platform.Triple; import com.swirlds.demo.platform.UnsafeMutablePTTStateAccessor; -import com.swirlds.merkle.map.test.lifecycle.ExpectedValue; -import com.swirlds.merkle.map.test.lifecycle.LifecycleStatus; -import com.swirlds.merkle.map.test.lifecycle.TransactionState; -import com.swirlds.merkle.map.test.pta.MapKey; +import com.swirlds.merkle.test.fixtures.map.lifecycle.ExpectedValue; +import com.swirlds.merkle.test.fixtures.map.lifecycle.LifecycleStatus; +import com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionState; +import com.swirlds.merkle.test.fixtures.map.pta.MapKey; import com.swirlds.platform.listeners.ReconnectCompleteNotification; import com.swirlds.platform.system.Platform; import java.time.Instant; diff --git a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/platform/FCMQueryController.java b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/platform/FCMQueryController.java index fa95cbb4595a..50b3121855f8 100644 --- a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/platform/FCMQueryController.java +++ b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/platform/FCMQueryController.java @@ -26,10 +26,10 @@ import com.swirlds.demo.merkle.map.FCMConfig; import com.swirlds.demo.merkle.map.MapValueData; import com.swirlds.demo.merkle.map.internal.ExpectedFCMFamily; -import com.swirlds.merkle.map.test.lifecycle.EntityType; -import com.swirlds.merkle.map.test.lifecycle.ExpectedValue; -import com.swirlds.merkle.map.test.lifecycle.TransactionType; -import com.swirlds.merkle.map.test.pta.MapKey; +import com.swirlds.merkle.test.fixtures.map.lifecycle.EntityType; +import com.swirlds.merkle.test.fixtures.map.lifecycle.ExpectedValue; +import com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType; +import com.swirlds.merkle.test.fixtures.map.pta.MapKey; import com.swirlds.platform.system.Platform; import java.util.Optional; import java.util.concurrent.ExecutorService; diff --git a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/platform/PayloadCfgSimple.java b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/platform/PayloadCfgSimple.java index 05e6a795e9f0..759054d4549f 100644 --- a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/platform/PayloadCfgSimple.java +++ b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/platform/PayloadCfgSimple.java @@ -16,7 +16,7 @@ package com.swirlds.demo.platform; -import static com.swirlds.merkle.map.test.pta.TransactionRecord.DEFAULT_EXPIRATION_TIME; +import static com.swirlds.merkle.test.fixtures.map.pta.TransactionRecord.DEFAULT_EXPIRATION_TIME; import com.swirlds.common.io.streams.SerializableDataInputStream; import com.swirlds.common.io.streams.SerializableDataOutputStream; diff --git a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/platform/PlatformTestingToolMain.java b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/platform/PlatformTestingToolMain.java index b882599dfa50..ca02a00be38a 100644 --- a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/platform/PlatformTestingToolMain.java +++ b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/platform/PlatformTestingToolMain.java @@ -30,10 +30,10 @@ import static com.swirlds.common.threading.manager.AdHocThreadManager.getStaticThreadManager; import static com.swirlds.logging.legacy.LogMarker.DEMO_INFO; import static com.swirlds.logging.legacy.LogMarker.EXCEPTION; -import static com.swirlds.merkle.map.test.lifecycle.EntityType.Crypto; -import static com.swirlds.merkle.map.test.lifecycle.SaveExpectedMapHandler.STORAGE_DIRECTORY; -import static com.swirlds.merkle.map.test.lifecycle.SaveExpectedMapHandler.createExpectedMapName; -import static com.swirlds.merkle.map.test.lifecycle.SaveExpectedMapHandler.serialize; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.EntityType.Crypto; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.SaveExpectedMapHandler.STORAGE_DIRECTORY; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.SaveExpectedMapHandler.createExpectedMapName; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.SaveExpectedMapHandler.serialize; import static com.swirlds.metrics.api.FloatFormats.FORMAT_6_2; import static com.swirlds.metrics.api.FloatFormats.FORMAT_9_6; import static java.lang.System.exit; @@ -69,8 +69,8 @@ import com.swirlds.logging.legacy.payload.ApplicationFinishedPayload; import com.swirlds.logging.legacy.payload.CreateTransactionFailedPayload; import com.swirlds.merkle.map.MerkleMap; -import com.swirlds.merkle.map.test.pta.MapKey; -import com.swirlds.merkle.map.test.pta.TransactionRecord; +import com.swirlds.merkle.test.fixtures.map.pta.MapKey; +import com.swirlds.merkle.test.fixtures.map.pta.TransactionRecord; import com.swirlds.metrics.api.Counter; import com.swirlds.metrics.api.Metrics; import com.swirlds.platform.Browser; diff --git a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/platform/PlatformTestingToolState.java b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/platform/PlatformTestingToolState.java index 9a7e50dc9e4e..dc0aab031a2a 100644 --- a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/platform/PlatformTestingToolState.java +++ b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/platform/PlatformTestingToolState.java @@ -24,9 +24,9 @@ import static com.swirlds.logging.legacy.LogMarker.DEMO_INFO; import static com.swirlds.logging.legacy.LogMarker.EXCEPTION; import static com.swirlds.logging.legacy.LogMarker.TESTING_EXCEPTIONS_ACCEPTABLE_RECONNECT; -import static com.swirlds.merkle.map.test.lifecycle.SaveExpectedMapHandler.STORAGE_DIRECTORY; -import static com.swirlds.merkle.map.test.lifecycle.SaveExpectedMapHandler.createExpectedMapName; -import static com.swirlds.merkle.map.test.lifecycle.SaveExpectedMapHandler.serialize; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.SaveExpectedMapHandler.STORAGE_DIRECTORY; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.SaveExpectedMapHandler.createExpectedMapName; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.SaveExpectedMapHandler.serialize; import static com.swirlds.metrics.api.FloatFormats.FORMAT_11_0; import com.fasterxml.jackson.annotation.JsonIgnore; @@ -78,10 +78,10 @@ import com.swirlds.demo.virtualmerkle.transaction.handler.VirtualMerkleTransactionHandler; import com.swirlds.logging.legacy.payload.ApplicationDualStatePayload; import com.swirlds.logging.legacy.payload.SoftwareVersionPayload; -import com.swirlds.merkle.map.test.lifecycle.EntityType; -import com.swirlds.merkle.map.test.lifecycle.TransactionState; -import com.swirlds.merkle.map.test.lifecycle.TransactionType; -import com.swirlds.merkle.map.test.pta.MapKey; +import com.swirlds.merkle.test.fixtures.map.lifecycle.EntityType; +import com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionState; +import com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType; +import com.swirlds.merkle.test.fixtures.map.pta.MapKey; import com.swirlds.platform.ParameterProvider; import com.swirlds.platform.Utilities; import com.swirlds.platform.state.PlatformState; @@ -241,6 +241,8 @@ public class PlatformTestingToolState extends PartialNaryMerkleInternal implemen */ private QuorumTriggeredAction controlQuorum; + private long transactionsIgnoredByExpectedMap = 0; + public PlatformTestingToolState() { super(ChildIndices.CHILD_COUNT); @@ -538,7 +540,7 @@ public void setFcmFamily(final FCMFamily fcmFamily) { setChild(ChildIndices.FCM_FAMILY, fcmFamily); } - public List getTransactionCounter() { + public TransactionCounterList getTransactionCounter() { return getChild(ChildIndices.TRANSACTION_COUNTER); } @@ -651,6 +653,12 @@ public synchronized PlatformTestingToolState copy() { throwIfImmutable(); roundCounter++; + logger.info( + DEMO_INFO.getMarker(), + "Copying round {}, transactions ignored by expected map: {}." + " This log is added to debug #11254", + roundCounter, + transactionsIgnoredByExpectedMap); + final PlatformTestingToolState mutableCopy = new PlatformTestingToolState(this); if (platform != null) { @@ -883,6 +891,7 @@ private void handleFCMTransaction( if (!expectedFCMFamily.shouldHandleForKeys( keys, transactionType, getConfig(), entityType, epochMillis, originId) && entityType != EntityType.NFT) { + transactionsIgnoredByExpectedMap++; return; } diff --git a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/platform/PttTransactionPool.java b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/platform/PttTransactionPool.java index 3676000f8b49..a41add61b21a 100644 --- a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/platform/PttTransactionPool.java +++ b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/platform/PttTransactionPool.java @@ -42,7 +42,7 @@ import com.swirlds.demo.platform.iss.IssConfig; import com.swirlds.demo.virtualmerkle.config.VirtualMerkleConfig; import com.swirlds.demo.virtualmerkle.transaction.pool.VirtualMerkleTransactionPool; -import com.swirlds.merkle.map.test.pta.MapKey; +import com.swirlds.merkle.test.fixtures.map.pta.MapKey; import com.swirlds.platform.Utilities; import com.swirlds.platform.system.Platform; import java.time.Instant; diff --git a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/platform/expiration/ExpirationRecordEntry.java b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/platform/expiration/ExpirationRecordEntry.java index 45b024e64f53..2f60814cf2de 100644 --- a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/platform/expiration/ExpirationRecordEntry.java +++ b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/platform/expiration/ExpirationRecordEntry.java @@ -16,7 +16,7 @@ package com.swirlds.demo.platform.expiration; -import com.swirlds.merkle.map.test.pta.MapKey; +import com.swirlds.merkle.test.fixtures.map.pta.MapKey; import java.util.Objects; /** diff --git a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/platform/expiration/ExpirationUtils.java b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/platform/expiration/ExpirationUtils.java index 9427d7be2819..bd8ce09e667d 100644 --- a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/platform/expiration/ExpirationUtils.java +++ b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/platform/expiration/ExpirationUtils.java @@ -26,9 +26,9 @@ import com.swirlds.demo.merkle.map.internal.ExpectedFCMFamily; import com.swirlds.fcqueue.FCQueue; import com.swirlds.merkle.map.MerkleMap; -import com.swirlds.merkle.map.test.lifecycle.ExpectedValue; -import com.swirlds.merkle.map.test.pta.MapKey; -import com.swirlds.merkle.map.test.pta.TransactionRecord; +import com.swirlds.merkle.test.fixtures.map.lifecycle.ExpectedValue; +import com.swirlds.merkle.test.fixtures.map.pta.MapKey; +import com.swirlds.merkle.test.fixtures.map.pta.TransactionRecord; import java.util.Map; import java.util.Set; import java.util.concurrent.BlockingQueue; diff --git a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/platform/nft/Nft.java b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/platform/nft/Nft.java index ee051977740f..abe4cae3935e 100644 --- a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/platform/nft/Nft.java +++ b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/platform/nft/Nft.java @@ -22,7 +22,7 @@ import com.swirlds.common.merkle.MerkleLeaf; import com.swirlds.common.merkle.impl.PartialMerkleLeaf; import com.swirlds.common.merkle.utility.Keyed; -import com.swirlds.merkle.map.test.pta.MapKey; +import com.swirlds.merkle.test.fixtures.map.pta.MapKey; import java.io.IOException; import java.util.Objects; diff --git a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/platform/nft/NftLedger.java b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/platform/nft/NftLedger.java index 8c6bb1e9bc45..9057bef931b3 100644 --- a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/platform/nft/NftLedger.java +++ b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/platform/nft/NftLedger.java @@ -23,7 +23,7 @@ import com.swirlds.common.utility.StopWatch; import com.swirlds.fchashmap.FCOneToManyRelation; import com.swirlds.merkle.map.MerkleMap; -import com.swirlds.merkle.map.test.pta.MapKey; +import com.swirlds.merkle.test.fixtures.map.pta.MapKey; import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit; diff --git a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/platform/nft/NftSimpleQuerier.java b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/platform/nft/NftSimpleQuerier.java index 33ef4e8ddca7..ea3071b448e4 100644 --- a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/platform/nft/NftSimpleQuerier.java +++ b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/platform/nft/NftSimpleQuerier.java @@ -24,7 +24,7 @@ import com.swirlds.common.utility.StopWatch; import com.swirlds.demo.platform.PlatformTestingToolState; import com.swirlds.demo.platform.nft.config.NftQueryConfig; -import com.swirlds.merkle.map.test.pta.MapKey; +import com.swirlds.merkle.test.fixtures.map.pta.MapKey; import com.swirlds.platform.system.Platform; import java.security.SecureRandom; import java.util.Objects; diff --git a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/platform/nft/ReferenceNftLedger.java b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/platform/nft/ReferenceNftLedger.java index d10cad380542..7dc453e6c9e8 100644 --- a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/platform/nft/ReferenceNftLedger.java +++ b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/platform/nft/ReferenceNftLedger.java @@ -16,7 +16,7 @@ package com.swirlds.demo.platform.nft; -import com.swirlds.merkle.map.test.pta.MapKey; +import com.swirlds.merkle.test.fixtures.map.pta.MapKey; import java.util.HashMap; import java.util.HashSet; import java.util.List; diff --git a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/platform/stream/AccountBalanceExport.java b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/platform/stream/AccountBalanceExport.java index c950f8ba6389..970a0750e838 100644 --- a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/platform/stream/AccountBalanceExport.java +++ b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/platform/stream/AccountBalanceExport.java @@ -24,7 +24,7 @@ import com.swirlds.demo.merkle.map.MapValueData; import com.swirlds.demo.platform.PlatformTestingToolState; import com.swirlds.merkle.map.MerkleMap; -import com.swirlds.merkle.map.test.pta.MapKey; +import com.swirlds.merkle.test.fixtures.map.pta.MapKey; import com.swirlds.platform.system.Platform; import com.swirlds.platform.system.address.Address; import com.swirlds.platform.system.address.AddressBook; diff --git a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/virtualmerkle/transaction/handler/VirtualMerkleTransactionHandler.java b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/virtualmerkle/transaction/handler/VirtualMerkleTransactionHandler.java index ebb16837f252..291996a48e1a 100644 --- a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/virtualmerkle/transaction/handler/VirtualMerkleTransactionHandler.java +++ b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/virtualmerkle/transaction/handler/VirtualMerkleTransactionHandler.java @@ -17,13 +17,13 @@ package com.swirlds.demo.virtualmerkle.transaction.handler; import static com.swirlds.logging.legacy.LogMarker.DEMO_INFO; -import static com.swirlds.merkle.map.test.lifecycle.TransactionState.HANDLED; -import static com.swirlds.merkle.map.test.lifecycle.TransactionType.Create; -import static com.swirlds.merkle.map.test.lifecycle.TransactionType.CreateExistingAccount; -import static com.swirlds.merkle.map.test.lifecycle.TransactionType.Delete; -import static com.swirlds.merkle.map.test.lifecycle.TransactionType.DeleteNotExistentAccount; -import static com.swirlds.merkle.map.test.lifecycle.TransactionType.Update; -import static com.swirlds.merkle.map.test.lifecycle.TransactionType.UpdateNotExistentAccount; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionState.HANDLED; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType.Create; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType.CreateExistingAccount; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType.Delete; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType.DeleteNotExistentAccount; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType.Update; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType.UpdateNotExistentAccount; import com.swirlds.demo.merkle.map.MapValueData; import com.swirlds.demo.merkle.map.internal.ExpectedFCMFamily; @@ -42,9 +42,9 @@ import com.swirlds.demo.virtualmerkle.map.smartcontracts.data.SmartContractMapValue; import com.swirlds.demo.virtualmerkle.random.PTTRandom; import com.swirlds.logging.legacy.LogMarker; -import com.swirlds.merkle.map.test.lifecycle.EntityType; -import com.swirlds.merkle.map.test.lifecycle.TransactionType; -import com.swirlds.merkle.map.test.pta.MapKey; +import com.swirlds.merkle.test.fixtures.map.lifecycle.EntityType; +import com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType; +import com.swirlds.merkle.test.fixtures.map.pta.MapKey; import com.swirlds.virtualmap.VirtualMap; import com.swirlds.virtualmap.VirtualValue; import java.time.Instant; diff --git a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/virtualmerkle/transaction/pool/AccountTransactionFactory.java b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/virtualmerkle/transaction/pool/AccountTransactionFactory.java index effb00316d65..6491ddb2caf8 100644 --- a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/virtualmerkle/transaction/pool/AccountTransactionFactory.java +++ b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/virtualmerkle/transaction/pool/AccountTransactionFactory.java @@ -16,7 +16,7 @@ package com.swirlds.demo.virtualmerkle.transaction.pool; -import static com.swirlds.merkle.map.test.lifecycle.TransactionType.Create; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType.Create; import com.swirlds.base.utility.Pair; import com.swirlds.demo.merkle.map.internal.ExpectedFCMFamily; @@ -26,12 +26,12 @@ import com.swirlds.demo.platform.fs.stresstest.proto.UpdateAccount; import com.swirlds.demo.platform.fs.stresstest.proto.VirtualMerkleTransaction; import com.swirlds.demo.virtualmerkle.random.PTTRandom; -import com.swirlds.merkle.map.test.lifecycle.EntityType; -import com.swirlds.merkle.map.test.lifecycle.ExpectedValue; -import com.swirlds.merkle.map.test.lifecycle.LifecycleStatus; -import com.swirlds.merkle.map.test.lifecycle.TransactionState; -import com.swirlds.merkle.map.test.lifecycle.TransactionType; -import com.swirlds.merkle.map.test.pta.MapKey; +import com.swirlds.merkle.test.fixtures.map.lifecycle.EntityType; +import com.swirlds.merkle.test.fixtures.map.lifecycle.ExpectedValue; +import com.swirlds.merkle.test.fixtures.map.lifecycle.LifecycleStatus; +import com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionState; +import com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType; +import com.swirlds.merkle.test.fixtures.map.pta.MapKey; import java.time.Instant; import java.util.ArrayList; diff --git a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/virtualmerkle/transaction/pool/VirtualMerkleTransactionPool.java b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/virtualmerkle/transaction/pool/VirtualMerkleTransactionPool.java index 965229075598..fec61c422887 100644 --- a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/virtualmerkle/transaction/pool/VirtualMerkleTransactionPool.java +++ b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/com/swirlds/demo/virtualmerkle/transaction/pool/VirtualMerkleTransactionPool.java @@ -32,7 +32,7 @@ import com.swirlds.demo.virtualmerkle.config.TransactionRequestSupplierFactory; import com.swirlds.demo.virtualmerkle.config.VirtualMerkleConfig; import com.swirlds.demo.virtualmerkle.random.PTTRandom; -import com.swirlds.merkle.map.test.pta.MapKey; +import com.swirlds.merkle.test.fixtures.map.pta.MapKey; import java.util.function.Supplier; /** diff --git a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/module-info.java b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/module-info.java index 25a98080e9ff..a24e1d4751fb 100644 --- a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/module-info.java +++ b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/java/module-info.java @@ -34,7 +34,7 @@ requires com.swirlds.fchashmap; requires com.swirlds.fcqueue; requires com.swirlds.logging; - requires com.swirlds.merkle.test; + requires com.swirlds.merkle.test.fixtures; requires com.swirlds.merkle; requires com.swirlds.merkledb; requires com.swirlds.metrics.api; diff --git a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/test/java/com/swirlds/demo/merkle/map/FCMConfigTest.java b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/test/java/com/swirlds/demo/merkle/map/FCMConfigTest.java index 7e0538cecc45..a9f806fd75b3 100644 --- a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/test/java/com/swirlds/demo/merkle/map/FCMConfigTest.java +++ b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/test/java/com/swirlds/demo/merkle/map/FCMConfigTest.java @@ -16,8 +16,8 @@ package com.swirlds.demo.merkle.map; -import static com.swirlds.merkle.map.test.lifecycle.EntityType.Crypto; -import static com.swirlds.merkle.map.test.lifecycle.EntityType.FCQ; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.EntityType.Crypto; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.EntityType.FCQ; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; @@ -25,7 +25,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.swirlds.demo.platform.SuperConfig; import com.swirlds.demo.platform.TestUtil; -import com.swirlds.merkle.map.test.lifecycle.EntityType; +import com.swirlds.merkle.test.fixtures.map.lifecycle.EntityType; import java.io.IOException; import java.util.HashMap; import java.util.Map; diff --git a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/test/java/com/swirlds/demo/merkle/map/FCMTransactionUtilsTest.java b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/test/java/com/swirlds/demo/merkle/map/FCMTransactionUtilsTest.java index 41de755c85b0..f70e7cac68bb 100644 --- a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/test/java/com/swirlds/demo/merkle/map/FCMTransactionUtilsTest.java +++ b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/test/java/com/swirlds/demo/merkle/map/FCMTransactionUtilsTest.java @@ -16,13 +16,13 @@ package com.swirlds.demo.merkle.map; -import static com.swirlds.merkle.map.test.lifecycle.EntityType.Crypto; -import static com.swirlds.merkle.map.test.lifecycle.EntityType.FCQ; -import static com.swirlds.merkle.map.test.lifecycle.TransactionType.Append; -import static com.swirlds.merkle.map.test.lifecycle.TransactionType.Create; -import static com.swirlds.merkle.map.test.lifecycle.TransactionType.Delete; -import static com.swirlds.merkle.map.test.lifecycle.TransactionType.Transfer; -import static com.swirlds.merkle.map.test.lifecycle.TransactionType.Update; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.EntityType.Crypto; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.EntityType.FCQ; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType.Append; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType.Create; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType.Delete; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType.Transfer; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType.Update; import static org.junit.jupiter.api.Assertions.assertEquals; import com.swirlds.demo.platform.Triple; @@ -36,9 +36,9 @@ import com.swirlds.demo.platform.fs.stresstest.proto.TransferBalanceFCQ; import com.swirlds.demo.platform.fs.stresstest.proto.UpdateAccount; import com.swirlds.demo.platform.fs.stresstest.proto.UpdateAccountFCQ; -import com.swirlds.merkle.map.test.lifecycle.EntityType; -import com.swirlds.merkle.map.test.lifecycle.TransactionType; -import com.swirlds.merkle.map.test.pta.MapKey; +import com.swirlds.merkle.test.fixtures.map.lifecycle.EntityType; +import com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType; +import com.swirlds.merkle.test.fixtures.map.pta.MapKey; import java.util.ArrayList; import java.util.List; import java.util.concurrent.atomic.AtomicInteger; diff --git a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/test/java/com/swirlds/demo/merkle/map/MapValueFCQTests.java b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/test/java/com/swirlds/demo/merkle/map/MapValueFCQTests.java index 862d8d3d38c1..36ddb9eaabdb 100644 --- a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/test/java/com/swirlds/demo/merkle/map/MapValueFCQTests.java +++ b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/test/java/com/swirlds/demo/merkle/map/MapValueFCQTests.java @@ -21,7 +21,7 @@ import static com.swirlds.demo.platform.TestUtil.generateRandomContent; import static com.swirlds.demo.platform.TestUtil.generateTxRecord; import static com.swirlds.demo.platform.TestUtil.getExpirationTime; -import static com.swirlds.merkle.map.test.lifecycle.EntityType.FCQ; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.EntityType.FCQ; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotEquals; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -36,9 +36,9 @@ import com.swirlds.demo.platform.PlatformTestingToolState; import com.swirlds.demo.platform.expiration.ExpirationUtils; import com.swirlds.merkle.map.MerkleMap; -import com.swirlds.merkle.map.test.lifecycle.ExpectedValue; -import com.swirlds.merkle.map.test.pta.MapKey; -import com.swirlds.merkle.map.test.pta.TransactionRecord; +import com.swirlds.merkle.test.fixtures.map.lifecycle.ExpectedValue; +import com.swirlds.merkle.test.fixtures.map.pta.MapKey; +import com.swirlds.merkle.test.fixtures.map.pta.TransactionRecord; import com.swirlds.platform.state.PlatformState; import com.swirlds.platform.system.InitTrigger; import com.swirlds.platform.system.Platform; diff --git a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/test/java/com/swirlds/demo/merkle/map/SaveExpectedMapHandlerTest.java b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/test/java/com/swirlds/demo/merkle/map/SaveExpectedMapHandlerTest.java index 6102a6e57357..3c537292fbce 100644 --- a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/test/java/com/swirlds/demo/merkle/map/SaveExpectedMapHandlerTest.java +++ b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/test/java/com/swirlds/demo/merkle/map/SaveExpectedMapHandlerTest.java @@ -16,19 +16,19 @@ package com.swirlds.demo.merkle.map; -import static com.swirlds.merkle.map.test.lifecycle.SaveExpectedMapHandler.deserialize; -import static com.swirlds.merkle.map.test.lifecycle.SaveExpectedMapHandler.serialize; -import static com.swirlds.merkle.map.test.lifecycle.TransactionType.Update; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.SaveExpectedMapHandler.deserialize; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.SaveExpectedMapHandler.serialize; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType.Update; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; import com.swirlds.common.crypto.Hash; -import com.swirlds.merkle.map.test.lifecycle.EntityType; -import com.swirlds.merkle.map.test.lifecycle.ExpectedValue; -import com.swirlds.merkle.map.test.lifecycle.LifecycleStatus; -import com.swirlds.merkle.map.test.lifecycle.SaveExpectedMapHandler; -import com.swirlds.merkle.map.test.lifecycle.TransactionState; -import com.swirlds.merkle.map.test.pta.MapKey; +import com.swirlds.merkle.test.fixtures.map.lifecycle.EntityType; +import com.swirlds.merkle.test.fixtures.map.lifecycle.ExpectedValue; +import com.swirlds.merkle.test.fixtures.map.lifecycle.LifecycleStatus; +import com.swirlds.merkle.test.fixtures.map.lifecycle.SaveExpectedMapHandler; +import com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionState; +import com.swirlds.merkle.test.fixtures.map.pta.MapKey; import java.io.File; import java.time.Instant; import java.util.HashMap; diff --git a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/test/java/com/swirlds/demo/merkle/map/internal/ExpectedFCMFamilyTest.java b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/test/java/com/swirlds/demo/merkle/map/internal/ExpectedFCMFamilyTest.java index fc27a481079b..d938b4d0aced 100644 --- a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/test/java/com/swirlds/demo/merkle/map/internal/ExpectedFCMFamilyTest.java +++ b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/test/java/com/swirlds/demo/merkle/map/internal/ExpectedFCMFamilyTest.java @@ -17,18 +17,18 @@ package com.swirlds.demo.merkle.map.internal; import static com.swirlds.demo.platform.TestUtil.signTransaction; -import static com.swirlds.merkle.map.test.lifecycle.EntityType.Crypto; -import static com.swirlds.merkle.map.test.lifecycle.EntityType.FCQ; -import static com.swirlds.merkle.map.test.lifecycle.TransactionState.HANDLED; -import static com.swirlds.merkle.map.test.lifecycle.TransactionState.HANDLE_FAILED; -import static com.swirlds.merkle.map.test.lifecycle.TransactionState.HANDLE_REJECTED; -import static com.swirlds.merkle.map.test.lifecycle.TransactionState.INITIALIZED; -import static com.swirlds.merkle.map.test.lifecycle.TransactionType.Create; -import static com.swirlds.merkle.map.test.lifecycle.TransactionType.Delete; -import static com.swirlds.merkle.map.test.lifecycle.TransactionType.Expire; -import static com.swirlds.merkle.map.test.lifecycle.TransactionType.Transfer; -import static com.swirlds.merkle.map.test.lifecycle.TransactionType.Update; -import static com.swirlds.merkle.map.test.pta.TransactionRecord.DEFAULT_EXPIRATION_TIME; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.EntityType.Crypto; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.EntityType.FCQ; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionState.HANDLED; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionState.HANDLE_FAILED; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionState.HANDLE_REJECTED; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionState.INITIALIZED; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType.Create; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType.Delete; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType.Expire; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType.Transfer; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType.Update; +import static com.swirlds.merkle.test.fixtures.map.pta.TransactionRecord.DEFAULT_EXPIRATION_TIME; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertNotEquals; @@ -59,13 +59,13 @@ import com.swirlds.demo.virtualmerkle.config.VirtualMerkleConfig; import com.swirlds.fcqueue.FCQueue; import com.swirlds.merkle.map.MerkleMap; -import com.swirlds.merkle.map.test.lifecycle.EntityType; -import com.swirlds.merkle.map.test.lifecycle.ExpectedValue; -import com.swirlds.merkle.map.test.lifecycle.LifecycleStatus; -import com.swirlds.merkle.map.test.lifecycle.TransactionState; -import com.swirlds.merkle.map.test.lifecycle.TransactionType; -import com.swirlds.merkle.map.test.pta.MapKey; -import com.swirlds.merkle.map.test.pta.TransactionRecord; +import com.swirlds.merkle.test.fixtures.map.lifecycle.EntityType; +import com.swirlds.merkle.test.fixtures.map.lifecycle.ExpectedValue; +import com.swirlds.merkle.test.fixtures.map.lifecycle.LifecycleStatus; +import com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionState; +import com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType; +import com.swirlds.merkle.test.fixtures.map.pta.MapKey; +import com.swirlds.merkle.test.fixtures.map.pta.TransactionRecord; import com.swirlds.platform.system.Platform; import java.io.IOException; import java.security.Security; diff --git a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/test/java/com/swirlds/demo/platform/MapValueSerializableTest.java b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/test/java/com/swirlds/demo/platform/MapValueSerializableTest.java index 715c5e25f7dc..2e3292d9aec1 100644 --- a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/test/java/com/swirlds/demo/platform/MapValueSerializableTest.java +++ b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/test/java/com/swirlds/demo/platform/MapValueSerializableTest.java @@ -17,7 +17,7 @@ package com.swirlds.demo.platform; import static com.swirlds.common.test.fixtures.junit.tags.TestQualifierTags.TIME_CONSUMING; -import static com.swirlds.merkle.map.test.pta.TransactionRecord.DEFAULT_EXPIRATION_TIME; +import static com.swirlds.merkle.test.fixtures.map.pta.TransactionRecord.DEFAULT_EXPIRATION_TIME; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -39,10 +39,10 @@ import com.swirlds.demo.merkle.map.internal.ExpectedFCMFamily; import com.swirlds.demo.platform.expiration.ExpirationRecordEntry; import com.swirlds.merkle.map.MerkleMap; -import com.swirlds.merkle.map.test.lifecycle.ExpectedValue; -import com.swirlds.merkle.map.test.pta.MapKey; -import com.swirlds.merkle.map.test.pta.MapValue; -import com.swirlds.merkle.map.test.pta.TransactionRecord; +import com.swirlds.merkle.test.fixtures.map.lifecycle.ExpectedValue; +import com.swirlds.merkle.test.fixtures.map.pta.MapKey; +import com.swirlds.merkle.test.fixtures.map.pta.MapValue; +import com.swirlds.merkle.test.fixtures.map.pta.TransactionRecord; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; diff --git a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/test/java/com/swirlds/demo/platform/NftLedgerTests.java b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/test/java/com/swirlds/demo/platform/NftLedgerTests.java index d615b4e3e78b..e8c6c4384f3f 100644 --- a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/test/java/com/swirlds/demo/platform/NftLedgerTests.java +++ b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/test/java/com/swirlds/demo/platform/NftLedgerTests.java @@ -31,7 +31,7 @@ import com.swirlds.demo.platform.nft.NftId; import com.swirlds.demo.platform.nft.NftLedger; import com.swirlds.demo.platform.nft.ReferenceNftLedger; -import com.swirlds.merkle.map.test.pta.MapKey; +import com.swirlds.merkle.test.fixtures.map.pta.MapKey; import com.swirlds.merkle.tree.MerkleTreeInternalNode; import java.util.HashSet; import java.util.LinkedList; diff --git a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/test/java/com/swirlds/demo/platform/PttTransactionPoolTest.java b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/test/java/com/swirlds/demo/platform/PttTransactionPoolTest.java index 5be149661b77..b61d00bdf0c1 100644 --- a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/test/java/com/swirlds/demo/platform/PttTransactionPoolTest.java +++ b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/test/java/com/swirlds/demo/platform/PttTransactionPoolTest.java @@ -18,12 +18,12 @@ import static com.swirlds.common.test.fixtures.junit.tags.TestQualifierTags.TIME_CONSUMING; import static com.swirlds.demo.platform.TestUtil.addRecord; -import static com.swirlds.merkle.map.test.lifecycle.EntityType.FCQ; -import static com.swirlds.merkle.map.test.lifecycle.TransactionState.HANDLED; -import static com.swirlds.merkle.map.test.lifecycle.TransactionType.Create; -import static com.swirlds.merkle.map.test.lifecycle.TransactionType.Delete; -import static com.swirlds.merkle.map.test.lifecycle.TransactionType.Update; -import static com.swirlds.merkle.map.test.pta.TransactionRecord.DEFAULT_EXPIRATION_TIME; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.EntityType.FCQ; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionState.HANDLED; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType.Create; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType.Delete; +import static com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionType.Update; +import static com.swirlds.merkle.test.fixtures.map.pta.TransactionRecord.DEFAULT_EXPIRATION_TIME; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -41,10 +41,10 @@ import com.swirlds.demo.platform.fs.stresstest.proto.DeleteFCQNode; import com.swirlds.demo.platform.fs.stresstest.proto.FCMTransaction; import com.swirlds.demo.virtualmerkle.config.VirtualMerkleConfig; -import com.swirlds.merkle.map.test.lifecycle.ExpectedValue; -import com.swirlds.merkle.map.test.lifecycle.LifecycleStatus; -import com.swirlds.merkle.map.test.lifecycle.TransactionState; -import com.swirlds.merkle.map.test.pta.MapKey; +import com.swirlds.merkle.test.fixtures.map.lifecycle.ExpectedValue; +import com.swirlds.merkle.test.fixtures.map.lifecycle.LifecycleStatus; +import com.swirlds.merkle.test.fixtures.map.lifecycle.TransactionState; +import com.swirlds.merkle.test.fixtures.map.pta.MapKey; import com.swirlds.platform.system.Platform; import java.io.IOException; import java.time.Instant; diff --git a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/test/java/com/swirlds/demo/platform/TestUtil.java b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/test/java/com/swirlds/demo/platform/TestUtil.java index e070c63f219b..2fa3fe32d177 100644 --- a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/test/java/com/swirlds/demo/platform/TestUtil.java +++ b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/test/java/com/swirlds/demo/platform/TestUtil.java @@ -20,7 +20,7 @@ import com.swirlds.demo.merkle.map.MapValueFCQ; import com.swirlds.demo.platform.fs.stresstest.proto.AppTransactionSignatureType; -import com.swirlds.merkle.map.test.pta.TransactionRecord; +import com.swirlds.merkle.test.fixtures.map.pta.TransactionRecord; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; diff --git a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/test/java/com/swirlds/demo/virtualmerkle/transaction/pool/AccountTransactionFactoryTests.java b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/test/java/com/swirlds/demo/virtualmerkle/transaction/pool/AccountTransactionFactoryTests.java index a5fd09f6fd8f..3cd5e2fdb9b4 100644 --- a/platform-sdk/platform-apps/tests/PlatformTestingTool/src/test/java/com/swirlds/demo/virtualmerkle/transaction/pool/AccountTransactionFactoryTests.java +++ b/platform-sdk/platform-apps/tests/PlatformTestingTool/src/test/java/com/swirlds/demo/virtualmerkle/transaction/pool/AccountTransactionFactoryTests.java @@ -24,7 +24,7 @@ import com.swirlds.demo.platform.HotspotConfiguration; import com.swirlds.demo.platform.fs.stresstest.proto.VirtualMerkleTransaction; import com.swirlds.demo.virtualmerkle.random.PTTRandom; -import com.swirlds.merkle.map.test.pta.MapKey; +import com.swirlds.merkle.test.fixtures.map.pta.MapKey; import java.util.ArrayList; import java.util.List; import org.junit.jupiter.api.Disabled; diff --git a/platform-sdk/sdk/config.txt b/platform-sdk/sdk/config.txt index fd344d3b4180..45efeda015ad 100644 --- a/platform-sdk/sdk/config.txt +++ b/platform-sdk/sdk/config.txt @@ -3,10 +3,9 @@ ############################################################################################### swirld, 123 - app, HashgraphDemo.jar, 1,0,0,0,0,0,0,0,0,0, all # app, HelloSwirldDemo.jar # app, CryptocurrencyDemo.jar -# app, StatsDemo.jar, 1, 3000, 0, 100, -1, 200 + app, StatsDemo.jar, 1, 3000, 0, 100, -1, 200 # ** BEGIN REMOVE FROM SDK RELEASES ** @@ -95,12 +94,6 @@ nextNodeId, 4 # # FilesystemDemo.jar parameters: none # -# HashGraphDemo.jar takes parameters that give the initial checkbox settings, -# in the same order they appear are on the screen, with 1 to check it -# and 0 to not check it, followed by the number of events to display -# (or “all”). The first parameter controls whether it runs -# slowly (1) or runs at full speed (0). -# # GameDemo.jar parameters: # height: height of the board (in cells). Player moves 1 cell at a time. # width: width of the board (in cells). Player moves 1 cell at a time. diff --git a/platform-sdk/sdk/docs/acknowledgments.html b/platform-sdk/sdk/docs/acknowledgments.html index be1747362537..993ec59317be 100644 --- a/platform-sdk/sdk/docs/acknowledgments.html +++ b/platform-sdk/sdk/docs/acknowledgments.html @@ -786,40 +786,6 @@

JUnit - copyright 2018 - -

PostgreSQL Java Driver - copyright 1997, PostgreSQL Global Development Group - - github.com/pgjdbc/pgjdbc/blob/master/LICENSE -

- -
- -
-Copyright (c) 1997, PostgreSQL Global Development Group
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-1. Redistributions of source code must retain the above copyright notice,
-   this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright notice,
-   this list of conditions and the following disclaimer in the documentation
-   and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-
-
-
-

Jackson JSON Processor - copyright FasterXML - github.com/FasterXML/jackson

diff --git a/platform-sdk/sdk/docs/index.html b/platform-sdk/sdk/docs/index.html index 1bfac215d3ae..934d96505d65 100644 --- a/platform-sdk/sdk/docs/index.html +++ b/platform-sdk/sdk/docs/index.html @@ -51,9 +51,6 @@

Useful documentation

The Swirlds SDK demo apps

- How to install / recompile the example apps in Eclipse -

- How to install / recompile the example apps from the command line

diff --git a/platform-sdk/sdk/docs/installCLI.html b/platform-sdk/sdk/docs/installCLI.html index 355dc5f580d8..cb85d9534b33 100755 --- a/platform-sdk/sdk/docs/installCLI.html +++ b/platform-sdk/sdk/docs/installCLI.html @@ -86,8 +86,8 @@

How to install / recompile the example apps from the command line

nano config.txt -
  • The file has a line near the top starting with HashgraphDemo, and another line near it starting with # - HelloSwirldDemo. Add a # character at the start of the HashgraphDemo line to comment it out, and +
  • The file has a line near the top starting with StatsDemo, and another line near it starting with # + HelloSwirldDemo. Add a # character at the start of the StatsDemo line to comment it out, and delete the # from the start of the HelloSwirldDemo line to uncomment it.
  • @@ -123,8 +123,7 @@

    How to install / recompile the example apps from the command line

    that output, it needs to be run from a console rather than by double clicking on the swirlds.jar file icon.
  • The above steps can be repeated to develop a new app, entirely from the command line. Though it may be easier to - use an Integrated Development Environment (IDE), such as developing the app in - Eclipse. + use an Integrated Development Environment (IDE).
  • diff --git a/platform-sdk/sdk/docs/installEclipse.html b/platform-sdk/sdk/docs/installEclipse.html deleted file mode 100755 index 8204044a563f..000000000000 --- a/platform-sdk/sdk/docs/installEclipse.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - - - -

    How to install / recompile the example apps in Eclipse

    - -These versions (or later) should be downloaded and installed: - - - -

    The above link is to OpenJDK 12, which is free. Oracle JDK 11+ requires a paid license.

    - -

    If the Swirlds browser freezes when it is first launched, it is possible that the operating system needs a utility - installed to collect entropy, such as the utilities for - Debian - or - Raspbian, which may also work on other versions of Linux or Unix. - -

    The examples below use slashes in paths, but on Windows they will be backslashes.

    - -Eclipse creates a workspace directory on your drive. Find it and ensure the files from the SDK are there. The sdk -directory should be put somewhere in the directory tree under the Eclipse workspace directory. For example, the -needed files might be put here: -
      -
    • workspace/git/sdk/data/apps/
    • -
    • workspace/git/sdk/swirlds.jar
    • -
    • workspace/git/sdk/config.txt
    • -
    - -

    The last one, config.txt, is used to make the Swirlds browser automatically run a particular app. It can even - make multiple instances of it run and communicate with each other, as if they were on multiple machines. The - comments in the file explain how to change it.

    - -

    The demo apps are now ready to run.

    - -

    The apps come with source code, and can be recompiled in Eclipse. To import the projects into Eclipse and recompile - them:

    - -
      - -
    • - import the demo projects -
        -
      • choose menu WINDOW > SHOW VIEW > OTHER > JAVA > PACKAGE EXPLORER (if the package explorer isn't already - visible) -
      • -
      • select menu FILE > IMPORT
      • -
      • click the triangle by MAVEN if it doesn't have entries under it
      • -
      • click EXISTING MAVEN PROJECTS
      • -
      • click NEXT
      • -
      • click the BROWSE button in the upper-right, on the same line as ROOT DIRECTORY
      • -
      • go to and select the sdk directory, such as workspace/git/sdk/
      • -
      • click OPEN
      • -
      • make sure the checkboxes by all the listed projects are checked
      • -
      • click FINISH
      • -
      -
    • - -
    • - recompile and run HashgraphDemo -
        -
      • edit the config.txt file to choose which app to run. The instructions are given as comments in - the file. -
      • -
      • in the package explorer, click on the triangle by HashgraphDemo to open it -
      • right click on the pom.xml under HashgraphDemo and choose RUN AS > MAVEN INSTALL
      • -
      • click on src under HashgraphDemo to select it
      • -
      • click the green arrow button on the top bar to run it
      • -
      • if it asks, click JAVA APPLICATION and click OK
      • -
      • it won't run yet, but that's ok
      • -
      • select menu RUN > RUN CONFIGURATIONS
      • -
      • select the ARGUMENTS tab
      • -
      • under WORKING DIRECTORY select OTHER
      • -
      • click FILESYSTEM and navigate to just inside the sdk directory
      • -
      • click OPEN
      • -
      • click APPLY
      • -
      • click CLOSE
      • -
      • in the package explorer click on src under HashgraphDemo to select it
      • -
      • click the green arrow button on the top bar to run it
      • -
      • the app should run. When you are done with it, choose QUIT under its menu, or close its window.
      • -
      -
    • -
    • recompile and run each of the other demos, using the above steps -
    - -

    At this point, all of the demos have been recompiled, and their new .jar files have been stored in the data/apps - folder for the browser to use. If you change the source code of one of the apps, repeat the above steps to recompile - it (do a MAVEN INSTALL) and run it (click the green arrow). It is possible to - run the new app, either in the browser, or from the command line, or in Eclipse - itself.

    - -

    - Back -

    - \ No newline at end of file diff --git a/platform-sdk/sdk/docs/runBrowser.html b/platform-sdk/sdk/docs/runBrowser.html index 2ae809061926..2c7a7b7ce15c 100644 --- a/platform-sdk/sdk/docs/runBrowser.html +++ b/platform-sdk/sdk/docs/runBrowser.html @@ -35,7 +35,6 @@

    Install Java and Swirlds

    The Swirlds browser needs both the Java runtime and the Swirlds SDK to be installed. This can be done by following the instructions for either -installing with Eclipse or installing with Maven. To simply run the apps without creating new apps, there is no need to install Eclipse or Maven. It is sufficient to just follow the installation instructions for the Java SDK and the JCE security policy file. diff --git a/platform-sdk/swirlds-base/build.gradle.kts b/platform-sdk/swirlds-base/build.gradle.kts index 45d362a9590b..3d553020a65f 100644 --- a/platform-sdk/swirlds-base/build.gradle.kts +++ b/platform-sdk/swirlds-base/build.gradle.kts @@ -18,7 +18,10 @@ plugins { id("com.hedera.hashgraph.sdk.conventions") id("com.hedera.hashgraph.platform-maven-publish") id("com.hedera.hashgraph.benchmark-conventions") - id("java-test-fixtures") + id("com.hedera.hashgraph.java-test-fixtures") } -testModuleInfo { requires("org.junit.jupiter.api") } +testModuleInfo { + requires("org.junit.jupiter.api") + requires("org.assertj.core") +} diff --git a/platform-sdk/swirlds-base/src/main/java/com/swirlds/base/context/Context.java b/platform-sdk/swirlds-base/src/main/java/com/swirlds/base/context/Context.java index 68031879fe21..737430ac1b04 100644 --- a/platform-sdk/swirlds-base/src/main/java/com/swirlds/base/context/Context.java +++ b/platform-sdk/swirlds-base/src/main/java/com/swirlds/base/context/Context.java @@ -40,13 +40,6 @@ public interface Context { */ AutoCloseable add(@NonNull String key, @NonNull String value); - /** - * remove a key-value pair from the context if available. - * - * @param key the key to remove - */ - void remove(@NonNull String key); - /** * Adds a key-value pair to the context. * @@ -102,6 +95,13 @@ default AutoCloseable add(@NonNull String key, boolean value) { return add(key, Boolean.toString(value)); } + /** + * remove a key-value pair from the context if available. + * + * @param key the key to remove + */ + void remove(@NonNull String key); + /** * Returns the global context. The content of the global context is shared by all threads. The global context can be * used to store global values like the node id or the ip address of the node. diff --git a/platform-sdk/swirlds-base/src/main/java/com/swirlds/base/function/BooleanFunction.java b/platform-sdk/swirlds-base/src/main/java/com/swirlds/base/function/BooleanFunction.java index 024481c11580..0fba2489c947 100644 --- a/platform-sdk/swirlds-base/src/main/java/com/swirlds/base/function/BooleanFunction.java +++ b/platform-sdk/swirlds-base/src/main/java/com/swirlds/base/function/BooleanFunction.java @@ -32,5 +32,5 @@ public interface BooleanFunction { * @param object the object to apply * @return true if success, false otherwise */ - boolean apply(@Nullable final T object); + boolean apply(@Nullable T object); } diff --git a/platform-sdk/swirlds-base/src/main/java/com/swirlds/base/function/CheckedConsumer.java b/platform-sdk/swirlds-base/src/main/java/com/swirlds/base/function/CheckedConsumer.java index cd3ebb286e05..7d511ccb3fc9 100644 --- a/platform-sdk/swirlds-base/src/main/java/com/swirlds/base/function/CheckedConsumer.java +++ b/platform-sdk/swirlds-base/src/main/java/com/swirlds/base/function/CheckedConsumer.java @@ -33,10 +33,10 @@ public interface CheckedConsumer { /** * Accept the value. * - * @param t the value to accept + * @param value the value to accept * @throws E the exception type thrown by the consumer */ - void accept(@Nullable T t) throws E; + void accept(@Nullable T value) throws E; /** * Convert a {@link Consumer} to a {@link CheckedConsumer}. diff --git a/platform-sdk/swirlds-base/src/main/java/com/swirlds/base/function/CheckedFunction.java b/platform-sdk/swirlds-base/src/main/java/com/swirlds/base/function/CheckedFunction.java index 033178e94598..d98dbe96ce7d 100644 --- a/platform-sdk/swirlds-base/src/main/java/com/swirlds/base/function/CheckedFunction.java +++ b/platform-sdk/swirlds-base/src/main/java/com/swirlds/base/function/CheckedFunction.java @@ -34,12 +34,12 @@ public interface CheckedFunction { /** * Apply the function. * - * @param t the input to the function + * @param value the input to the function * @return the value returned by the function * @throws E the exception type thrown by the function */ @Nullable - R apply(@Nullable T t) throws E; + R apply(@Nullable T value) throws E; /** * Convert a {@link Function} to a {@link CheckedFunction}. diff --git a/platform-sdk/swirlds-base/src/main/java/com/swirlds/base/state/LifecycleException.java b/platform-sdk/swirlds-base/src/main/java/com/swirlds/base/state/LifecycleException.java index 95e569b88e47..6a8d8d66d60c 100644 --- a/platform-sdk/swirlds-base/src/main/java/com/swirlds/base/state/LifecycleException.java +++ b/platform-sdk/swirlds-base/src/main/java/com/swirlds/base/state/LifecycleException.java @@ -23,8 +23,8 @@ */ public class LifecycleException extends IllegalStateException { - public LifecycleException(@NonNull final String s) { - super(s); + public LifecycleException(@NonNull final String message) { + super(message); } public LifecycleException(@NonNull final String message, @NonNull final Throwable cause) { diff --git a/platform-sdk/swirlds-base/src/main/java/com/swirlds/base/state/Mutable.java b/platform-sdk/swirlds-base/src/main/java/com/swirlds/base/state/Mutable.java index b9cdcf4a2c3d..0c4268a5d023 100644 --- a/platform-sdk/swirlds-base/src/main/java/com/swirlds/base/state/Mutable.java +++ b/platform-sdk/swirlds-base/src/main/java/com/swirlds/base/state/Mutable.java @@ -40,8 +40,7 @@ default boolean isMutable() { } /** - * @throws MutabilityException - * if {@link #isImmutable()}} returns {@code true} + * @throws MutabilityException if {@link #isImmutable()}} returns {@code true} */ default void throwIfImmutable() { throwIfImmutable("This operation is not permitted on an immutable object."); @@ -58,8 +57,7 @@ default void throwIfImmutable(@NonNull final String errorMessage) { } /** - * @throws MutabilityException - * if {@link #isMutable()} returns {@code true} + * @throws MutabilityException if {@link #isMutable()} returns {@code true} */ default void throwIfMutable() { throwIfMutable("This operation is not permitted on a mutable object."); diff --git a/platform-sdk/swirlds-base/src/main/java/com/swirlds/base/time/NanoClock.java b/platform-sdk/swirlds-base/src/main/java/com/swirlds/base/time/NanoClock.java index c32d77b48349..24da46a92868 100644 --- a/platform-sdk/swirlds-base/src/main/java/com/swirlds/base/time/NanoClock.java +++ b/platform-sdk/swirlds-base/src/main/java/com/swirlds/base/time/NanoClock.java @@ -33,14 +33,15 @@ public final class NanoClock extends Clock { private final Instant initialInstant; /** - * Creates a NanoClock for UTC time + * Creates a NanoClock for UTC time. */ public NanoClock() { this(Clock.systemUTC()); } /** - * Creates a new NanoClock wrapping a {@code Clock} instance + * Creates a new NanoClock wrapping a {@code Clock} instance. + * * @param clock clock to use as source for a new NanoClock instance * @throws NullPointerException if {@code clock} is {@code null} */ @@ -70,7 +71,7 @@ public Instant instant() { /** * @param zone the time-zone to change to, not null - * @return Returns a copy of this clock with a different time-zone. + * @return Returns a copy of this clock with a different time-zone * @throws NullPointerException if {@code zone} is {@code null} */ @Override diff --git a/platform-sdk/swirlds-base/src/main/java/com/swirlds/base/time/Time.java b/platform-sdk/swirlds-base/src/main/java/com/swirlds/base/time/Time.java index 8894928ff7be..0f757fbd6cc1 100644 --- a/platform-sdk/swirlds-base/src/main/java/com/swirlds/base/time/Time.java +++ b/platform-sdk/swirlds-base/src/main/java/com/swirlds/base/time/Time.java @@ -51,7 +51,7 @@ public interface Time { Instant now(); /** - * Returns a {@link Time} instance + * Returns a {@link Time} instance. * * @return a {@link Time} instance */ diff --git a/platform-sdk/swirlds-base/src/main/java/com/swirlds/base/units/UnitConstants.java b/platform-sdk/swirlds-base/src/main/java/com/swirlds/base/units/UnitConstants.java index 3ec3bf856ce0..9e829622253d 100644 --- a/platform-sdk/swirlds-base/src/main/java/com/swirlds/base/units/UnitConstants.java +++ b/platform-sdk/swirlds-base/src/main/java/com/swirlds/base/units/UnitConstants.java @@ -27,22 +27,22 @@ public final class UnitConstants { private UnitConstants() {} /** - * Unit of nanoseconds + * Unit of nanoseconds. */ public static final String NANOSECOND_UNIT = "ns"; /** - * Unit of microseconds + * Unit of microseconds. */ public static final String MICROSECOND_UNIT = "µs"; /** - * Unit of milliseconds + * Unit of milliseconds. */ public static final String MILLISECOND_UNIT = "ms"; /** - * Unit of seconds + * Unit of seconds. */ public static final String SECOND_UNIT = "s"; diff --git a/platform-sdk/swirlds-base/src/main/java/com/swirlds/base/utility/Pair.java b/platform-sdk/swirlds-base/src/main/java/com/swirlds/base/utility/Pair.java index 64093d7e757f..c241f18b27a0 100644 --- a/platform-sdk/swirlds-base/src/main/java/com/swirlds/base/utility/Pair.java +++ b/platform-sdk/swirlds-base/src/main/java/com/swirlds/base/utility/Pair.java @@ -44,7 +44,7 @@ public static Pair of(@Nullable final L left, @Nullable final R rig } /** - * Convenience method to reference the left site as key + * Convenience method to reference the left site as key. * * @return the left side of the pair */ @@ -53,7 +53,7 @@ public L key() { } /** - * Convenience method to reference the right site as value + * Convenience method to reference the right site as value. * * @return the right side of the pair */ diff --git a/platform-sdk/swirlds-base/src/main/java/com/swirlds/base/utility/ToStringBuilder.java b/platform-sdk/swirlds-base/src/main/java/com/swirlds/base/utility/ToStringBuilder.java index 71890338a825..bb8246595183 100644 --- a/platform-sdk/swirlds-base/src/main/java/com/swirlds/base/utility/ToStringBuilder.java +++ b/platform-sdk/swirlds-base/src/main/java/com/swirlds/base/utility/ToStringBuilder.java @@ -144,7 +144,8 @@ public String toString() { } /** - * Format the given class name to remove the package prefix and replace inner class separators with "." + * Format the given class name to remove the package prefix and replace inner class separators with a period (".") + * character. *

    * For example, "com.hedera.services.legacy.core.jproto.JKeyList$JKeyListObject" becomes "JKeyList.JKeyListObject" * @param input the class name to format diff --git a/platform-sdk/swirlds-base/src/test/java/com/swirlds/base/test/internal/fixtures/ConcurrentTestSupportTest.java b/platform-sdk/swirlds-base/src/test/java/com/swirlds/base/test/internal/fixtures/ConcurrentTestSupportTest.java new file mode 100644 index 000000000000..0d7651399472 --- /dev/null +++ b/platform-sdk/swirlds-base/src/test/java/com/swirlds/base/test/internal/fixtures/ConcurrentTestSupportTest.java @@ -0,0 +1,188 @@ +/* + * Copyright (C) 2024 Hedera Hashgraph, LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.swirlds.base.test.internal.fixtures; + +import static java.util.concurrent.CompletableFuture.runAsync; +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatNoException; +import static org.assertj.core.api.Assertions.assertThatThrownBy; + +import com.swirlds.base.test.fixtures.concurrent.internal.ConcurrentTestSupport; +import java.time.Duration; +import java.util.List; +import java.util.concurrent.Callable; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeoutException; +import java.util.stream.IntStream; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.Timeout; + +@Timeout(15) +class ConcurrentTestSupportTest { + + @Test + void testATaskThatRunsShort() { + // given + try (ConcurrentTestSupport concurrentTestSupport = new ConcurrentTestSupport(Duration.ofSeconds(1))) { + final Runnable runnable = () -> sleep(10); + + // then + assertThatNoException().isThrownBy(() -> concurrentTestSupport.executeAndWait(runnable)); + } + } + + @Test + void testMultipleTasksThatRunsShort() { + // given + try (ConcurrentTestSupport concurrentTestSupport = new ConcurrentTestSupport(Duration.ofSeconds(1))) { + final List runnables = IntStream.range(10, 20) + .mapToObj(i -> (Runnable) () -> sleep(i)) + .toList(); + + // then + assertThatNoException().isThrownBy(() -> concurrentTestSupport.executeAndWait(runnables)); + } + } + + @Test + void testATaskThatRunsTooLong() { + // given + try (ConcurrentTestSupport concurrentTestSupport = new ConcurrentTestSupport(Duration.ofMillis(500))) { + final Runnable runnable = () -> sleep(1_010); + + // then + assertThatThrownBy(() -> concurrentTestSupport.executeAndWait(runnable)) + .isInstanceOf(RuntimeException.class); + } + } + + @Test + void testMultipleTasksThatRunsTooLong() { + // given + try (ConcurrentTestSupport concurrentTestSupport = new ConcurrentTestSupport(Duration.ofSeconds(1)); ) { + final List runnables = IntStream.range(0, 10) + .mapToObj(i -> (Runnable) () -> sleep(2000)) + .toList(); + + // then + assertThatThrownBy(() -> concurrentTestSupport.executeAndWait(runnables)) + .isInstanceOf(RuntimeException.class); + } + } + + @Test + void testMultipleCallsInOneConcurrentTestSupport() { + // given + try (ConcurrentTestSupport concurrentTestSupport = new ConcurrentTestSupport(Duration.ofSeconds(1)); ) { + final Runnable shortRunningTask = () -> sleep(10); + final Runnable longRunningTask = () -> sleep(2_000); + final ExecutorService executor = Executors.newFixedThreadPool(2); + + // when + runAllAndWait( + runAsync( + () -> assertThatThrownBy(() -> concurrentTestSupport.executeAndWait(longRunningTask)) + .isInstanceOf(RuntimeException.class) + .hasCauseInstanceOf(TimeoutException.class), + executor), + runAsync( + () -> assertThatNoException() + .isThrownBy(() -> concurrentTestSupport.executeAndWait(shortRunningTask)), + executor)); + } + } + + @Test + void testMultipleCallsInMultipleConcurrentTestSupport() { + // given + try (ConcurrentTestSupport concurrentTestSupport = new ConcurrentTestSupport(Duration.ofSeconds(1)); + ConcurrentTestSupport concurrentTestSupport2 = new ConcurrentTestSupport(Duration.ofSeconds(1)); ) { + final Runnable shortRunningTask = () -> sleep(100); + final Runnable longRunningTask = () -> sleep(2_000); + final ExecutorService executor = Executors.newFixedThreadPool(4); + + // then + runAllAndWait( + runAsync( + () -> assertThatNoException() + .isThrownBy(() -> concurrentTestSupport.executeAndWait(shortRunningTask)), + executor), + runAsync( + () -> assertThatNoException() + .isThrownBy(() -> concurrentTestSupport2.executeAndWait(shortRunningTask)), + executor), + runAsync( + () -> assertThatThrownBy(() -> concurrentTestSupport.executeAndWait(longRunningTask)) + .isInstanceOf(RuntimeException.class) + .hasCauseInstanceOf(TimeoutException.class), + executor), + runAsync( + () -> assertThatThrownBy(() -> concurrentTestSupport2.executeAndWait(longRunningTask)) + .isInstanceOf(RuntimeException.class) + .hasCauseInstanceOf(TimeoutException.class), + executor)); + } + } + + @Test + void testMultipleCallable() { + // given + try (ConcurrentTestSupport concurrentTestSupport = new ConcurrentTestSupport(Duration.ofSeconds(1))) { + final Callable shortCallableTask = () -> getAfter(100, new Object()); + final Callable longCallableTask = () -> getAfter(2_000, new Object()); + + assertThatNoException().isThrownBy(() -> concurrentTestSupport.submitAndWait(shortCallableTask)); + + assertThatThrownBy(() -> concurrentTestSupport.submitAndWait(longCallableTask)) + .isInstanceOf(RuntimeException.class) + .hasCauseInstanceOf(TimeoutException.class); + } + } + + @Test + void testShortCallable() { + // given + try (ConcurrentTestSupport concurrentTestSupport = new ConcurrentTestSupport(Duration.ofSeconds(1))) { + Object value = new Object(); + final Callable shortCallableTask = () -> getAfter(100, value); + + // then + assertThat(concurrentTestSupport.submitAndWait(shortCallableTask)) + .contains(value) + .hasSize(1); + } + } + + private static void runAllAndWait(CompletableFuture... futures) { + CompletableFuture.allOf(futures).join(); + } + + private static void sleep(long ms) { + try { + Thread.sleep(ms); + } catch (InterruptedException e) { + System.err.println("interrupted"); + } + } + + private static V getAfter(long ms, V value) { + sleep(ms); + return value; + } +} diff --git a/platform-sdk/swirlds-base/src/testFixtures/java/com/swirlds/base/test/fixtures/concurrent/TestExecutor.java b/platform-sdk/swirlds-base/src/testFixtures/java/com/swirlds/base/test/fixtures/concurrent/TestExecutor.java index e8c538a84394..846108a1f896 100644 --- a/platform-sdk/swirlds-base/src/testFixtures/java/com/swirlds/base/test/fixtures/concurrent/TestExecutor.java +++ b/platform-sdk/swirlds-base/src/testFixtures/java/com/swirlds/base/test/fixtures/concurrent/TestExecutor.java @@ -16,6 +16,8 @@ package com.swirlds.base.test.fixtures.concurrent; +import edu.umd.cs.findbugs.annotations.NonNull; +import edu.umd.cs.findbugs.annotations.Nullable; import java.util.Collection; import java.util.List; import java.util.concurrent.Callable; @@ -36,7 +38,7 @@ public interface TestExecutor { * * @param runnables the runnables to execute */ - void executeAndWait(Collection runnables); + void executeAndWait(@NonNull Collection runnables); /** * Executes the given runnables in parallel. This method will block until all the callables have completed. If the @@ -45,7 +47,7 @@ public interface TestExecutor { * * @param runnables the runnables to execute */ - void executeAndWait(Runnable... runnables); + void executeAndWait(@NonNull Runnable... runnables); /** * Executes the given callables in parallel. This method will block until all the callables have completed. If the @@ -56,16 +58,16 @@ public interface TestExecutor { * @param the type of the callable result * @return the results of the callables */ - List submitAndWait(Collection> callables); + @NonNull List submitAndWait(Collection> callables); /** - * Executes the given callables in parallel. This method will block until all the callables have completed. If the - * callables do not return within the maximum wait time, then the callables will be cancelled and a + * Executes the given callable in parallel. This method will block until all the callable have completed. If the + * callable do not return within the maximum wait time, then the callable will be cancelled and a * {@link TimeoutException} will be thrown. * - * @param callables the callables to execute - * @param the type of the callable result - * @return the results of the callables + * @param callable a callable array to execute + * @param the type of the callable result + * @return the result of the callable */ - List submitAndWait(Callable... callables); + @Nullable List submitAndWait(@NonNull Callable... callable); } diff --git a/platform-sdk/swirlds-base/src/testFixtures/java/com/swirlds/base/test/fixtures/concurrent/internal/ConcurrentTestSupport.java b/platform-sdk/swirlds-base/src/testFixtures/java/com/swirlds/base/test/fixtures/concurrent/internal/ConcurrentTestSupport.java index 6c83051622c0..280c9c130df7 100644 --- a/platform-sdk/swirlds-base/src/testFixtures/java/com/swirlds/base/test/fixtures/concurrent/internal/ConcurrentTestSupport.java +++ b/platform-sdk/swirlds-base/src/testFixtures/java/com/swirlds/base/test/fixtures/concurrent/internal/ConcurrentTestSupport.java @@ -21,53 +21,45 @@ import com.swirlds.base.test.fixtures.concurrent.TestExecutor; import edu.umd.cs.findbugs.annotations.NonNull; import java.time.Duration; -import java.util.ArrayList; -import java.util.Arrays; +import java.util.ArrayDeque; import java.util.Collection; +import java.util.Deque; import java.util.List; import java.util.Objects; import java.util.concurrent.Callable; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ConcurrentLinkedDeque; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; -import java.util.concurrent.Future; import java.util.concurrent.TimeoutException; -import java.util.concurrent.atomic.AtomicLong; -import java.util.concurrent.locks.Condition; -import java.util.concurrent.locks.Lock; -import java.util.concurrent.locks.ReentrantLock; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.stream.Collectors; /** * A utility class for executing and waiting for concurrent tasks using a thread pool. */ -public class ConcurrentTestSupport implements TestExecutor { +public class ConcurrentTestSupport implements TestExecutor, AutoCloseable { - private static final ExecutorService SINGLE_EXECUTOR = Executors.newSingleThreadExecutor(r -> { - final Thread thread = new Thread(r); - thread.setName("ParallelStressTester-SingleExecutor"); - thread.setDaemon(true); - return thread; - }); - - private final AtomicLong poolThreadCounter = new AtomicLong(0); - - private final ExecutorService poolExecutor = Executors.newCachedThreadPool(r -> { - final Thread thread = new Thread(r); - thread.setName("ParallelStressTester-Pool-" + poolThreadCounter.getAndIncrement()); - thread.setDaemon(true); - return thread; - }); + private static final String NAME_PREFIX = ConcurrentTestSupport.class.getSimpleName(); + private static final AtomicInteger ID = new AtomicInteger(0); private final Duration maxWaitTime; + private final ExecutorService executorService; /** * Constructs a ConcurrentTestSupport instance with the specified maximum wait time. * - * @param maxWaitTime The maximum time to wait for task completion. - * Must not be null. + * @param maxWaitTime The maximum time to wait for task completion. Must not be null. */ public ConcurrentTestSupport(@NonNull final Duration maxWaitTime) { this.maxWaitTime = Objects.requireNonNull(maxWaitTime, "maxWaitTime must not be null"); + this.executorService = Executors.newCachedThreadPool(r -> { + final Thread thread = new Thread(r); + thread.setName(NAME_PREFIX + "-pool-" + this.hashCode() + ID.getAndDecrement()); + thread.setDaemon(true); + return thread; + }); } /** @@ -78,27 +70,30 @@ public ConcurrentTestSupport() { } /** - * Executes a collection of Runnables concurrently and waits for their completion. + * Executes a collection of {@code Runnable} concurrently and waits for their completion. * - * @param runnables The collection of Runnables to execute. + * @param runnables The collection of {@code Runnable} to execute. */ public void executeAndWait(@NonNull final Collection runnables) { - final List> callables = runnables.stream() - .map(r -> (Callable) () -> { - r.run(); - return null; - }) - .toList(); - submitAndWait(callables); + Objects.requireNonNull(runnables, "runnables must not be null"); + try { + CompletableFuture.allOf(runnables.stream() + .map(r -> CompletableFuture.runAsync(r, executorService)) + .toArray(CompletableFuture[]::new)) + .get(maxWaitTime.toMillis(), MILLISECONDS); + } catch (ExecutionException | InterruptedException | TimeoutException e) { + throw new RuntimeException(e.getClass().getSimpleName() + " in submitAndWait", e); + } } /** * Executes an array of Runnables concurrently and waits for their completion. * - * @param runnable An array of Runnables to execute. + * @param runnables An array of Runnables to execute. + * @see ConcurrentTestSupport#executeAndWait(Collection) */ - public void executeAndWait(@NonNull final Runnable... runnable) { - executeAndWait(List.of(runnable)); + public void executeAndWait(@NonNull final Runnable... runnables) { + executeAndWait(List.of(Objects.requireNonNull(runnables, "runnables must not be null"))); } /** @@ -106,100 +101,56 @@ public void executeAndWait(@NonNull final Runnable... runnable) { * * @param callables The collection of Callables to submit. * @param The type of the results returned by the Callables. - * @return A list of results from the executed Callables. + * @return A list of results from the executed Callables. The order of the elements in the list is not guaranteed + * @see ConcurrentTestSupport#executeAndWait(Collection) */ - @SuppressWarnings("unchecked") @NonNull public List submitAndWait(@NonNull final Collection> callables) { Objects.requireNonNull(callables, "callables must not be null"); - return submitAndWait(callables.toArray(new Callable[0])); + final Deque result = callables.size() > 1 ? new ConcurrentLinkedDeque<>() : new ArrayDeque<>(); + executeAndWait(callablesToRunners(callables, result)); + return List.copyOf(result); } /** - * Submits an array of Callables for execution concurrently and waits for their results. + * Submits a Callable for execution concurrently and waits for its results. * - * @param callables An array of Callables to submit. - * @param The type of the results returned by the Callables. - * @return A list of results from the executed Callables. + * @param callable A callable to submit. + * @param The type of the results returned by the Callables. + * @return result from the executed Callables. It can be null. + * @see ConcurrentTestSupport#executeAndWait(Runnable...) */ - @SafeVarargs @NonNull - public final List submitAndWait(@NonNull final Callable... callables) { - final Lock callLock = new ReentrantLock(); - final Condition allPassedToExecutor = callLock.newCondition(); - callLock.lock(); - try { - final Future> futureForAll = SINGLE_EXECUTOR.submit(() -> { - final List> futures = new ArrayList<>(); - callLock.lock(); - try { - Arrays.stream(callables).map(poolExecutor::submit).forEach(futures::add); - allPassedToExecutor.signal(); // now all futures in results and the original method can return - // In the single executor singleton we will wait until all tasks are done. - // By doing so we ensure that only 1 call to this utils is executed in parallel. All other calls - // will be queued. - try { - return waitForAllDone(futures); - } catch (Exception e) { - futures.forEach(f -> f.cancel(true)); - throw new RuntimeException("Error in wait", e); - } - } finally { - callLock.unlock(); - } - }); - allPassedToExecutor.await(); - try { - return waitForDone(futureForAll); - } catch (Exception e) { - throw new RuntimeException("Error in wait", e); - } - } catch (Exception e) { - throw new RuntimeException("Error in parallel execution", e); - } finally { - callLock.unlock(); - } + @SafeVarargs + public final List submitAndWait(@NonNull final Callable... callable) { + Objects.requireNonNull(callable, "callable must not be null"); + return submitAndWait(List.of(callable)); } /** - * Waits for the completion of a Future and retrieves its result. - * - * @param future The Future to wait for. - * @param The type of the result. - * @return The result of the Future. - * @throws InterruptedException If the waiting thread is interrupted. - * @throws ExecutionException If an exception occurs while executing the Future. - * @throws TimeoutException If the waiting time exceeds the maximum wait time. + * Closes this the underlying executorService so all pending activity is finished before finishing the test */ - @NonNull - private T waitForDone(@NonNull final Future future) - throws InterruptedException, ExecutionException, TimeoutException { - return waitForAllDone(List.of(future)).get(0); + @Override + public void close() { + executorService.close(); } - /** - * Waits for the completion of a list of Futures and retrieves their results. - * - * @param futures The list of Futures to wait for. - * @param The type of the results. - * @return A list of results from the Futures. - * @throws InterruptedException If the waiting thread is interrupted. - * @throws ExecutionException If an exception occurs while executing any of the Futures. - * @throws TimeoutException If the waiting time exceeds the maximum wait time. - */ - @NonNull - private List waitForAllDone(@NonNull final List> futures) - throws InterruptedException, ExecutionException, TimeoutException { - final List results = new ArrayList<>(); - final long startTime = System.currentTimeMillis(); - if (futures.isEmpty()) { - return List.of(); - } - for (final Future future : futures) { - final long maxWaitTimeMs = maxWaitTime.toMillis() - (System.currentTimeMillis() - startTime); - final T val = future.get(maxWaitTimeMs, MILLISECONDS); - results.add(val); - } - return results; + // Return a collections of runners from a collection of callables. + // Results are accumulated in result + private static Collection callablesToRunners( + final Collection> callables, final Collection result) { + return callables.stream().map(c -> toRunnable(c, result)).collect(Collectors.toList()); + } + + // Return a runners from a callable. + // The result is accumulated in result + private static Runnable toRunnable(final Callable callable, final Collection result) { + return () -> { + try { + result.add(callable.call()); + } catch (Exception e) { + throw new RuntimeException("Error in submitAndWait", e); + } + }; } } diff --git a/platform-sdk/swirlds-base/src/testFixtures/java/com/swirlds/base/test/fixtures/concurrent/internal/TestExecutorExtension.java b/platform-sdk/swirlds-base/src/testFixtures/java/com/swirlds/base/test/fixtures/concurrent/internal/TestExecutorExtension.java index bfefa272ff12..9c9526b4af14 100644 --- a/platform-sdk/swirlds-base/src/testFixtures/java/com/swirlds/base/test/fixtures/concurrent/internal/TestExecutorExtension.java +++ b/platform-sdk/swirlds-base/src/testFixtures/java/com/swirlds/base/test/fixtures/concurrent/internal/TestExecutorExtension.java @@ -29,13 +29,12 @@ import org.junit.jupiter.api.extension.ReflectiveInvocationContext; /** - * The TestExecutorExtension is a JUnit 5 extension designed to facilitate the integration of - * a {@link TestExecutor} into your test classes. It serves as both an {@link InvocationInterceptor} and a - * {@link ParameterResolver}, enabling seamless injection of a {@code TestExecutor} instance and supporting its - * use within your test methods. + * The TestExecutorExtension is a JUnit 5 extension designed to facilitate the integration of a {@link TestExecutor} + * into your test classes. It serves as both an {@link InvocationInterceptor} and a {@link ParameterResolver}, enabling + * seamless injection of a {@code TestExecutor} instance and supporting its use within your test methods. *

    - * When applied, this extension injects a {@code TestExecutor} instance into the test class, allowing - * you to execute tests in a controlled manner, such as concurrently or with customized behaviors. + * When applied, this extension injects a {@code TestExecutor} instance into the test class, allowing you to execute + * tests in a controlled manner, such as concurrently or with customized behaviors. * * @see TestExecutor * @see InvocationInterceptor @@ -44,12 +43,11 @@ public class TestExecutorExtension implements InvocationInterceptor, ParameterResolver { /** - * Intercept the execution of a test method and inject a TestExecutor instance into the - * current test context. + * Intercept the execution of a test method and inject a TestExecutor instance into the current test context. * - * @param invocation The invocation of the test method. - * @param invocationContext The context of the method invocation. - * @param extensionContext The context of the test extension. + * @param invocation The invocation of the test method. + * @param invocationContext The context of the method invocation. + * @param extensionContext The context of the test extension. * @throws Throwable if an error occurs during method interception. */ @Override @@ -61,16 +59,17 @@ public void interceptTestMethod( Objects.requireNonNull(invocation, "invocation must not be null"); Objects.requireNonNull(extensionContext, "extensionContext must not be null"); - TestInjector.injectInTest(TestExecutor.class, () -> new ConcurrentTestSupport(), extensionContext); - - invocation.proceed(); + try (ConcurrentTestSupport concurrentTestSupport = new ConcurrentTestSupport()) { + TestInjector.injectInTest(TestExecutor.class, () -> concurrentTestSupport, extensionContext); + invocation.proceed(); + } } /** * Check if this extension supports parameter resolution for the given parameter context. * - * @param parameterContext The context of the parameter to be resolved. - * @param extensionContext The context of the test extension. + * @param parameterContext The context of the parameter to be resolved. + * @param extensionContext The context of the test extension. * @return true if parameter resolution is supported, false otherwise. * @throws ParameterResolutionException if an error occurs during parameter resolution. */ @@ -83,14 +82,14 @@ public boolean supportsParameter(ParameterContext parameterContext, ExtensionCon /** * Resolve the parameter of a test method, providing a TestExecutor instance when needed. * - * @param parameterContext The context of the parameter to be resolved. - * @param extensionContext The context of the test extension. + * @param parameterContext The context of the parameter to be resolved. + * @param extensionContext The context of the test extension. * @return The resolved parameter value. * @throws ParameterResolutionException if an error occurs during parameter resolution. */ @Override public Object resolveParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException { - return TestInjector.resolveParameter(parameterContext, () -> new ConcurrentTestSupport()); + return TestInjector.resolveParameter(parameterContext, ConcurrentTestSupport::new); } } diff --git a/platform-sdk/swirlds-common/build.gradle.kts b/platform-sdk/swirlds-common/build.gradle.kts index 2db78a006d6e..3709fc79ad37 100644 --- a/platform-sdk/swirlds-common/build.gradle.kts +++ b/platform-sdk/swirlds-common/build.gradle.kts @@ -17,7 +17,7 @@ plugins { id("com.hedera.hashgraph.sdk.conventions") id("com.hedera.hashgraph.platform-maven-publish") - id("java-test-fixtures") + id("com.hedera.hashgraph.java-test-fixtures") } mainModuleInfo { diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/crypto/Cryptography.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/crypto/Cryptography.java index caff54334224..ba8cab1a2938 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/crypto/Cryptography.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/crypto/Cryptography.java @@ -18,7 +18,6 @@ import com.swirlds.common.io.SelfSerializable; import java.util.List; -import java.util.concurrent.Future; public interface Cryptography { /** The default value for the setHash argument */ @@ -27,90 +26,12 @@ public interface Cryptography { DigestType DEFAULT_DIGEST_TYPE = DigestType.SHA_384; /** - * Computes a cryptographic hash (message digest) for the given message. The resulting hash value will be returned - * by the {@link Message#getHash()} method once the future (accessible from {@link Message#getFuture()}) has been - * completed. + * Computes a cryptographic hash (message digest) for the given message. Convenience method that defaults to + * {@link DigestType#SHA_384} message digests. * - * Note: This implementation is non-blocking and returns almost immediately. - * - * @param message - * the message to be hashed - */ - void digestAsync(final Message message); - - /** - * Computes a cryptographic hash (message digest) for the given list of messages. The resulting hash value will be - * returned by the {@link Message#getHash()} method once the future (accessible from {@link Message#getFuture()}) - * has been completed. - * - * Note: This implementation is non-blocking and returns almost immediately. - * - * @param messages - * a list of messages to be hashed - */ - void digestAsync(final List messages); - - /** - * Computes a cryptographic hash (message digest) for the given message. Convenience method that defaults to {@link - * DigestType#SHA_384} message digests. - * - * Note: This implementation is non-blocking and returns almost immediately. - * - * @param message - * the message contents to be hashed - * @return a {@link Future} containing the cryptographic hash for the given message contents when resolved - */ - default Future digestAsync(final byte[] message) { - return digestAsync(message, DEFAULT_DIGEST_TYPE); - } - - /** - * Computes a cryptographic hash (message digest) for the given message. - * - * Note: This implementation is non-blocking and returns almost immediately. - * - * @param message - * the message contents to be hashed - * @param digestType - * the type of digest used to compute the hash - * @return a {@link Future} containing the cryptographic hash for the given message contents when resolved - */ - Future digestAsync(final byte[] message, final DigestType digestType); - - /** - * Computes a cryptographic hash (message digest) for the given message. The resulting hash value will be - * returned by the {@link Message#getHash()} method once the future (accessible from {@link Message#getFuture()}) - * has been completed. - * - * @param message - * the message to be hashed - * @return the cryptographic hash for the given message - * @throws CryptographyException - * if an unrecoverable error occurs while computing the digest - */ - Hash digestSync(final Message message); - - /** - * Computes a cryptographic hash (message digest) for the given list of messages. The resulting hash value will be - * returned by the {@link Message#getHash()} method once the future (accessible from {@link Message#getFuture()}) - * has been completed. - * - * @param messages - * a list of messages to be hashed - * @throws CryptographyException - * if an unrecoverable error occurs while computing the digest - */ - void digestSync(final List messages); - - /** - * Computes a cryptographic hash (message digest) for the given message. Convenience method that defaults to {@link - * DigestType#SHA_384} message digests. - * - * @param message - * the message contents to be hashed + * @param message the message contents to be hashed * @return the cryptographic hash for the given message contents - * @throws CryptographyException - * if an unrecoverable error occurs while computing the digest + * @throws CryptographyException if an unrecoverable error occurs while computing the digest */ default Hash digestSync(final byte[] message) { return digestSync(message, DEFAULT_DIGEST_TYPE); @@ -119,21 +40,17 @@ default Hash digestSync(final byte[] message) { /** * Computes a cryptographic hash (message digest) for the given message. * - * @param message - * the message contents to be hashed - * @param digestType - * the type of digest used to compute the hash + * @param message the message contents to be hashed + * @param digestType the type of digest used to compute the hash * @return the cryptographic hash for the given message contents - * @throws CryptographyException - * if an unrecoverable error occurs while computing the digest + * @throws CryptographyException if an unrecoverable error occurs while computing the digest */ Hash digestSync(final byte[] message, final DigestType digestType); /** * Same as {@link #digestSync(SelfSerializable, DigestType)} with DigestType set to SHA_384 * - * @param serializable - * the object to be hashed + * @param serializable the object to be hashed * @return the cryptographic hash for the {@link SelfSerializable} object */ default Hash digestSync(final SelfSerializable serializable) { @@ -141,24 +58,20 @@ default Hash digestSync(final SelfSerializable serializable) { } /** - * Computes a cryptographic hash for the {@link SelfSerializable} instance by serializing it and hashing the - * bytes. The hash is then returned by this method + * Computes a cryptographic hash for the {@link SelfSerializable} instance by serializing it and hashing the bytes. + * The hash is then returned by this method * - * @param serializable - * the object to be hashed - * @param digestType - * the type of digest used to compute the hash + * @param serializable the object to be hashed + * @param digestType the type of digest used to compute the hash * @return the cryptographic hash for the {@link SelfSerializable} object - * @throws CryptographyException - * if an unrecoverable error occurs while computing the digest + * @throws CryptographyException if an unrecoverable error occurs while computing the digest */ Hash digestSync(final SelfSerializable serializable, final DigestType digestType); /** * Same as {@link #digestSync(SerializableHashable, DigestType)} with DigestType set to SHA_384 * - * @param serializableHashable - * the object to be hashed + * @param serializableHashable the object to be hashed */ default Hash digestSync(final SerializableHashable serializableHashable) { return digestSync(serializableHashable, DEFAULT_DIGEST_TYPE); @@ -175,15 +88,12 @@ default Hash digestSync(final SerializableHashable serializableHashable, final D * Computes a cryptographic hash for the {@link SerializableHashable} instance by serializing it and hashing the * bytes. The hash is then passed to the object by calling {@link Hashable#setHash(Hash)} if setHash is true. * - * @param serializableHashable - * the object to be hashed - * @param digestType - * the type of digest used to compute the hash - * @param setHash - * should be set to true if the calculated should be assigned to the serializableHashable object + * @param serializableHashable the object to be hashed + * @param digestType the type of digest used to compute the hash + * @param setHash should be set to true if the calculated should be assigned to the + * serializableHashable object * @return the cryptographic hash for the {@link SelfSerializable} object - * @throws CryptographyException - * if an unrecoverable error occurs while computing the digest + * @throws CryptographyException if an unrecoverable error occurs while computing the digest */ Hash digestSync(final SerializableHashable serializableHashable, final DigestType digestType, boolean setHash); @@ -195,33 +105,15 @@ default Hash getNullHash() { } /** - * @param digestType - * the type of digest used to compute the hash + * @param digestType the type of digest used to compute the hash * @return the hash for a null value. */ Hash getNullHash(final DigestType digestType); - /** - * Verifies the given digital signature for authenticity. The result of the verification will be returned by the - * {@link TransactionSignature#getSignatureStatus()} method once the future (available via {@link - * TransactionSignature#getFuture()}) has been completed. - *

    - * Note: This implementation is non-blocking and returns almost immediately. - *

    - * Starting in version 0.43 and onwards, the {@link SignatureType#ECDSA_SECP256K1} signature algorithm requires the - * payload to be a KECCAK-256 hash of the original message. Verification will fail if the message is not 32 bytes in - * length and the output of 256-bit hashing function. - * - * @param signature - * the signature to be verified - */ - void verifyAsync(final TransactionSignature signature); - /** * Verifies the given digital signatures for authenticity. The result of the verification will be returned by the - * {@link TransactionSignature#getSignatureStatus()} method once the future (available via {@link - * TransactionSignature#getFuture()}) has - * been completed. + * {@link TransactionSignature#getSignatureStatus()} method once the future (available via + * {@link TransactionSignature#getFuture()}) has been completed. *

    * Note: This implementation is non-blocking and returns almost immediately. *

    @@ -229,106 +121,52 @@ default Hash getNullHash() { * payload to be a KECCAK-256 hash of the original message. Verification will fail if the message is not 32 bytes in * length and the output of 256-bit hashing function. * - * @param signatures - * a list of signatures to be verified + * @param signatures a list of signatures to be verified + * @deprecated use {@link #verifySync(List)} instead, asynchronous verification is a feature that is scheduled for + * removal */ + @Deprecated(forRemoval = true) void verifyAsync(final List signatures); - /** - * Verifies the given digital signature for authenticity. Convenience method that defaults to {@link - * SignatureType#ED25519} signatures. - *

    - * Note: This implementation is non-blocking and returns almost immediately. - *

    - * Starting in version 0.43 and onwards, the {@link SignatureType#ECDSA_SECP256K1} signature algorithm requires the - * payload to be a KECCAK-256 hash of the original message. Verification will fail if the message is not 32 bytes in - * length and the output of 256-bit hashing function. - * - * @param data - * the original contents that the signature should be verified against - * @param signature - * the signature to be verified - * @param publicKey - * the public key required to validate the signature - * @return a {@link Future} that will contain the true if the signature is valid; otherwise false when - * resolved - */ - default Future verifyAsync(final byte[] data, final byte[] signature, final byte[] publicKey) { - return verifyAsync(data, signature, publicKey, SignatureType.ED25519); - } - - /** - * Verifies the given digital signature for authenticity. - *

    - * Note: This implementation is non-blocking and returns almost immediately. - *

    - * Starting in version 0.43 and onwards, the {@link SignatureType#ECDSA_SECP256K1} signature algorithm requires the - * payload to be a KECCAK-256 hash of the original message. Verification will fail if the message is not 32 bytes in - * length and the output of 256-bit hashing function. - * - * @param data - * the original contents that the signature should be verified against - * @param signature - * the signature to be verified - * @param publicKey - * the public key required to validate the signature - * @param signatureType - * the type of signature to be verified - * @return a {@link Future} that will contain the true if the signature is valid; otherwise false when - * resolved - */ - Future verifyAsync( - final byte[] data, final byte[] signature, final byte[] publicKey, final SignatureType signatureType); - /** * Verifies the given digital signature for authenticity. The result of the verification will be returned by the - * {@link TransactionSignature#getSignatureStatus()} method once the future (available via {@link - * TransactionSignature#getFuture()}) has - * been completed. + * {@link TransactionSignature#getSignatureStatus()} method once the future (available via + * {@link TransactionSignature#getFuture()}) has been completed. *

    * Starting in version 0.43 and onwards, the {@link SignatureType#ECDSA_SECP256K1} signature algorithm requires the * payload to be a KECCAK-256 hash of the original message. Verification will fail if the message is not 32 bytes in * length and the output of 256-bit hashing function. * - * @param signature - * the signature to be verified + * @param signature the signature to be verified * @return true if the signature is valid; otherwise false - * @throws CryptographyException - * if an unrecoverable error occurs while computing the digest + * @throws CryptographyException if an unrecoverable error occurs while computing the digest */ boolean verifySync(final TransactionSignature signature); /** * Verifies the given digital signatures for authenticity. The result of the verification will be returned by the - * {@link TransactionSignature#getSignatureStatus()} method once the future (available via {@link - * TransactionSignature#getFuture()}) has - * been completed. + * {@link TransactionSignature#getSignatureStatus()} method once the future (available via + * {@link TransactionSignature#getFuture()}) has been completed. *

    * Starting in version 0.43 and onwards, the {@link SignatureType#ECDSA_SECP256K1} signature algorithm requires the * payload to be a KECCAK-256 hash of the original message. Verification will fail if the message is not 32 bytes in * length and the output of 256-bit hashing function. * - * @param signatures - * a list of signatures to be verified + * @param signatures a list of signatures to be verified * @return true if all the signatures are valid; otherwise false - * @throws CryptographyException - * if an unrecoverable error occurs while computing the digest + * @throws CryptographyException if an unrecoverable error occurs while computing the digest */ boolean verifySync(final List signatures); /** - * Verifies the given digital signature for authenticity. Convenience method that defaults to {@link - * SignatureType#ED25519} signatures. + * Verifies the given digital signature for authenticity. Convenience method that defaults to + * {@link SignatureType#ED25519} signatures. * - * @param data - * the original contents that the signature should be verified against - * @param signature - * the signature to be verified - * @param publicKey - * the public key required to validate the signature + * @param data the original contents that the signature should be verified against + * @param signature the signature to be verified + * @param publicKey the public key required to validate the signature * @return true if the signature is valid; otherwise false - * @throws CryptographyException - * if an unrecoverable error occurs while computing the digest + * @throws CryptographyException if an unrecoverable error occurs while computing the digest */ default boolean verifySync(final byte[] data, final byte[] signature, final byte[] publicKey) { return verifySync(data, signature, publicKey, SignatureType.ED25519); @@ -337,32 +175,23 @@ default boolean verifySync(final byte[] data, final byte[] signature, final byte /** * Verifies the given digital signature for authenticity. * - * @param data - * the original contents that the signature should be verified against - * @param signature - * the signature to be verified - * @param publicKey - * the public key required to validate the signature - * @param signatureType - * the type of signature to be verified + * @param data the original contents that the signature should be verified against + * @param signature the signature to be verified + * @param publicKey the public key required to validate the signature + * @param signatureType the type of signature to be verified * @return true if the signature is valid; otherwise false - * @throws CryptographyException - * if an unrecoverable error occurs while computing the digest + * @throws CryptographyException if an unrecoverable error occurs while computing the digest */ boolean verifySync( final byte[] data, final byte[] signature, final byte[] publicKey, final SignatureType signatureType); /** - * Computes a cryptographic hash for the concatenation of current running Hash and - * the given newHashToAdd. - * return the calculated running Hash + * Computes a cryptographic hash for the concatenation of current running Hash and the given newHashToAdd. return + * the calculated running Hash * - * @param runningHash - * the calculated running {@code Hash} - * @param newHashToAdd - * a Hash for updating the runningHash - * @param digestType - * the digest type used to compute runningHash + * @param runningHash the calculated running {@code Hash} + * @param newHashToAdd a Hash for updating the runningHash + * @param digestType the digest type used to compute runningHash * @return calculated running Hash */ Hash calcRunningHash(final Hash runningHash, final Hash newHashToAdd, final DigestType digestType); diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/crypto/engine/CryptoEngine.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/crypto/engine/CryptoEngine.java index a4b4e338a4a6..e419c128d525 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/crypto/engine/CryptoEngine.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/crypto/engine/CryptoEngine.java @@ -31,15 +31,12 @@ import com.swirlds.common.threading.futures.StandardFuture; import com.swirlds.common.threading.manager.ThreadManager; import com.swirlds.logging.legacy.LogMarker; -import java.nio.ByteBuffer; +import edu.umd.cs.findbugs.annotations.NonNull; import java.security.NoSuchAlgorithmException; import java.security.Security; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Queue; -import java.util.concurrent.ConcurrentLinkedQueue; import java.util.concurrent.Future; import org.bouncycastle.jce.provider.BouncyCastleProvider; @@ -86,30 +83,11 @@ public class CryptoEngine implements Cryptography { */ private final DelegatingVerificationProvider delegatingVerificationProvider; - /** - * the total number of available physical processors and physical processor cores - */ - private final int availableCpuCount; - /** * The intake dispatcher instance that handles asynchronous signature verification */ private volatile IntakeDispatcher verificationDispatcher; - /** - * the intake dispatcher instance that handles asynchronous message digests - */ - private volatile IntakeDispatcher digestDispatcher; - - /** - * the {@link ConcurrentLinkedQueue} instance of {@link TransactionSignature} waiting for verification - */ - private volatile Queue> verificationQueue; - - /** - * the {@link ConcurrentLinkedQueue} instance of {@link Message} pending message digest computation - */ - private volatile Queue> digestQueue; /** * the current configuration settings @@ -135,7 +113,6 @@ public class CryptoEngine implements Cryptography { public CryptoEngine(final ThreadManager threadManager, final CryptoConfig config) { this.threadManager = threadManager; this.config = config; - this.availableCpuCount = Runtime.getRuntime().availableProcessors(); this.digestProvider = new DigestProvider(); this.ed25519VerificationProvider = new Ed25519VerificationProvider(); @@ -165,64 +142,6 @@ private static AsyncVerificationHandler verificationHandler( return new AsyncVerificationHandler(workItems, provider); } - /** - * Efficiently builds a {@link TransactionSignature} instance from the supplied components. - * - * @param data the original contents that the signature should be verified against - * @param signature the signature to be verified - * @param publicKey the public key required to validate the signature - * @param signatureType the type of signature to be verified - * @return a {@link TransactionSignature} containing the provided components - */ - private static TransactionSignature wrap( - final byte[] data, final byte[] signature, final byte[] publicKey, final SignatureType signatureType) { - if (data == null || data.length == 0) { - throw new IllegalArgumentException("data"); - } - - if (signature == null || signature.length == 0) { - throw new IllegalArgumentException("signature"); - } - - if (publicKey == null || publicKey.length == 0) { - throw new IllegalArgumentException("publicKey"); - } - - final ByteBuffer buffer = ByteBuffer.allocate(data.length + signature.length + publicKey.length); - final int sigOffset = data.length; - final int pkOffset = sigOffset + signature.length; - - buffer.put(data).put(signature).put(publicKey); - - return new TransactionSignature( - buffer.array(), sigOffset, signature.length, pkOffset, publicKey.length, 0, data.length, signatureType); - } - - /** - * Common private utility method for performing synchronous digest computations. - * - * @param message the message contents to be hashed - * @param provider the underlying provider to be used - * @param future the {@link Future} to be associated with the {@link Message} - * @return the cryptographic hash for the given message contents - */ - private static Hash digestSyncInternal( - final Message message, final DigestProvider provider, final StandardFuture future) { - final Hash hash; - - try { - hash = provider.compute(message, message.getDigestType()); - message.setHash(hash); - } catch (final NoSuchAlgorithmException ex) { - message.setFuture(future); - throw new CryptographyException(ex, LogMarker.EXCEPTION); - } - - message.setFuture(future); - - return hash; - } - /** * Common private utility method for performing synchronous signature verification. * @@ -249,24 +168,6 @@ private static boolean verifySyncInternal( return isValid; } - /** - * Indicates whether a supported OpenCL framework is installed and available on this system. - * - * @return true if OpenCL is available; false otherwise - */ - public boolean isOpenCLAvailable() { - return false; - } - - /** - * Indicates whether a support GPU is available on this system. - * - * @return true if a support GPU is available; false otherwise - */ - public boolean isGpuAvailable() { - return false; - } - /** * Getter for the current configuration settings used by the {@link CryptoEngine}. * @@ -286,88 +187,6 @@ public synchronized void setSettings(final CryptoConfig config) { applySettings(); } - /** - * Returns the total number of physical processors and physical processor cores available. - * - * @return the total number of physical processors and physical cores - */ - public int getAvailableCpuCount() { - return availableCpuCount; - } - - /** - * {@inheritDoc} - */ - @Override - public void digestAsync(final Message message) { - final boolean added = digestQueue.add(Collections.singletonList(message)); - if (!added) { - // This should never happen, since the queue is unbounded - throw new RuntimeException("Unable to add to the digest queue"); - } - } - - /** - * {@inheritDoc} - */ - @Override - public void digestAsync(final List messages) { - final boolean added = digestQueue.add(messages); - if (!added) { - // This should never happen, since the queue is unbounded - throw new RuntimeException("Unable to add to the digest queue"); - } - } - - /** - * {@inheritDoc} - */ - @Override - public Future digestAsync(final byte[] message, final DigestType digestType) { - final Message wrappedMessage = new Message(message, digestType); - final boolean added = digestQueue.add(Collections.singletonList(wrappedMessage)); - if (!added) { - // This should never happen, since the queue is unbounded - throw new RuntimeException("Unable to add to the digest queue"); - } - - return new WrappingLambdaFuture<>( - () -> { - try { - return wrappedMessage.waitForFuture(); - } catch (final InterruptedException ex) { - Thread.currentThread().interrupt(); - return null; - } - }, - wrappedMessage::getHash); - } - - /** - * {@inheritDoc} - */ - @Override - public Hash digestSync(final Message message) { - final DigestProvider provider = new DigestProvider(); - final StandardFuture future = new StandardFuture<>(); - future.complete(null); - - return digestSyncInternal(message, provider, future); - } - - /** - * {@inheritDoc} - */ - @Override - public void digestSync(final List messages) { - final StandardFuture future = new StandardFuture<>(); - future.complete(null); - - for (final Message message : messages) { - digestSyncInternal(message, digestProvider, future); - } - } - /** * {@inheritDoc} */ @@ -428,49 +247,8 @@ public Hash getNullHash(final DigestType digestType) { * {@inheritDoc} */ @Override - public void verifyAsync(final TransactionSignature signature) { - final boolean added = verificationQueue.add(Collections.singletonList(signature)); - if (!added) { - // This should never happen, since the queue is unbounded - throw new RuntimeException("Unable to add to the verification queue"); - } - } - - /** - * {@inheritDoc} - */ - @Override - public void verifyAsync(final List signatures) { - final boolean added = verificationQueue.add(signatures); - if (!added) { - // This should never happen, since the queue is unbounded - throw new RuntimeException("Unable to add to the verification queue"); - } - } - - /** - * {@inheritDoc} - */ - @Override - public Future verifyAsync( - final byte[] data, final byte[] signature, final byte[] publicKey, final SignatureType signatureType) { - final TransactionSignature wrappedSignature = wrap(data, signature, publicKey, signatureType); - final boolean added = verificationQueue.add(Collections.singletonList(wrappedSignature)); - if (!added) { - // This should never happen, since the queue is unbounded - throw new RuntimeException("Unable to add to the verification queue"); - } - - return new WrappingLambdaFuture<>( - () -> { - try { - return wrappedSignature.waitForFuture(); - } catch (final InterruptedException ex) { - Thread.currentThread().interrupt(); - return null; - } - }, - () -> wrappedSignature.getSignatureStatus() == VerificationStatus.VALID); + public void verifyAsync(@NonNull final List signatures) { + verificationDispatcher.submit(signatures); } /** @@ -549,56 +327,13 @@ protected synchronized void applySettings() { this.verificationDispatcher = null; } - if (this.digestDispatcher != null) { - this.digestDispatcher.shutdown(); - this.digestDispatcher = null; - } - - // Resize the dispatcher queues - final Queue> oldVerifierQueue = this.verificationQueue; - this.verificationQueue = new ConcurrentLinkedQueue<>(); - - final Queue> oldDigestQueue = this.digestQueue; - this.digestQueue = new ConcurrentLinkedQueue<>(); - - if (oldVerifierQueue != null && oldVerifierQueue.size() > 0) { - this.verificationQueue.addAll(oldVerifierQueue); - } - - if (oldDigestQueue != null && oldDigestQueue.size() > 0) { - this.digestQueue.addAll(oldDigestQueue); - } - // Launch new background threads with the new settings this.verificationDispatcher = new IntakeDispatcher<>( threadManager, TransactionSignature.class, - this.verificationQueue, this.delegatingVerificationProvider, config.computeCpuVerifierThreadCount(), CryptoEngine::verificationHandler); - - this.digestDispatcher = new IntakeDispatcher<>( - threadManager, - Message.class, - this.digestQueue, - this.digestProvider, - config.computeCpuDigestThreadCount(), - this::digestHandler); - } - - /** - * Supplier implementation for {@link AsyncDigestHandler} used by the - * {@link #CryptoEngine(ThreadManager, CryptoConfig)} constructor. - * - * @param provider the required {@link OperationProvider} to be used while performing the cryptographic - * transformations - * @param workItems the {@link List} of items to be processed by the created {@link AsyncOperationHandler} - * implementation - * @return an {@link AsyncOperationHandler} implementation - */ - private AsyncDigestHandler digestHandler(final DigestProvider provider, final List workItems) { - return new AsyncDigestHandler(workItems, provider); } /** diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/crypto/engine/IntakeDispatcher.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/crypto/engine/IntakeDispatcher.java index ef38e33641e7..4f3b8e37923b 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/crypto/engine/IntakeDispatcher.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/crypto/engine/IntakeDispatcher.java @@ -21,6 +21,7 @@ import com.swirlds.common.threading.framework.config.ThreadConfiguration; import com.swirlds.common.threading.manager.ThreadManager; +import edu.umd.cs.findbugs.annotations.NonNull; import java.util.List; import java.util.Queue; import java.util.concurrent.ExecutorService; @@ -42,17 +43,6 @@ public class IntakeDispatcher> backingQueue; - /** * The underlying {@link OperationProvider} to use for handling the work items. */ @@ -69,11 +59,6 @@ public class IntakeDispatcher elementType, - final Queue> backingQueue, final Provider provider, final int parallelism, final BiFunction, Handler> handlerSupplier) { - this.backingQueue = backingQueue; this.provider = provider; this.handlerSupplier = handlerSupplier; @@ -109,51 +91,30 @@ public IntakeDispatcher( .buildFactory(); this.executorService = Executors.newFixedThreadPool(parallelism, threadFactory); - - this.worker = new ThreadConfiguration(threadManager) - .setDaemon(true) - .setPriority(Thread.NORM_PRIORITY) - .setComponent(THREAD_COMPONENT_NAME) - .setThreadName(String.format("%s intake dispatcher", elementType.getSimpleName())) - .setExceptionHandler(this::handleThreadException) - .setRunnable(this::execute) - .build(); - - this.worker.start(); } /** * Attempts to forcibly terminate all running threads and free any acquired resources. */ public void shutdown() { - this.running = false; - this.worker.interrupt(); - this.executorService.shutdown(); try { if (!this.executorService.awaitTermination(5, TimeUnit.SECONDS)) { this.executorService.shutdownNow(); } - } catch (InterruptedException ex) { + } catch (final InterruptedException ex) { this.executorService.shutdownNow(); Thread.currentThread().interrupt(); } } /** - * The main dispatcher thread entry point. + * Submits a list of work items to the dispatcher thread pool for processing. */ - private void execute() { - while (running) { - final List workItems = backingQueue.poll(); - if (workItems == null) { - Thread.onSpinWait(); - continue; - } - if (!workItems.isEmpty()) { - executorService.submit(handlerSupplier.apply(provider, workItems)); - } + public void submit(@NonNull final List element) { + if (!element.isEmpty()) { + executorService.submit(handlerSupplier.apply(provider, element)); } } diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/merkle/synchronization/LearningSynchronizer.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/merkle/synchronization/LearningSynchronizer.java index d003f7be14aa..37f6eaa450ba 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/merkle/synchronization/LearningSynchronizer.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/merkle/synchronization/LearningSynchronizer.java @@ -47,6 +47,7 @@ import java.util.Queue; import java.util.concurrent.ExecutionException; import java.util.concurrent.atomic.AtomicReference; +import java.util.function.Function; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -259,7 +260,13 @@ private MerkleNode receiveTree(final MerkleNode root) throws InterruptedExce root == null ? "(unknown)" : root.getClass().getName(), root == null ? "[]" : root.getRoute()); - final StandardWorkGroup workGroup = new StandardWorkGroup(threadManager, WORK_GROUP_NAME, breakConnection); + final AtomicReference firstReconnectException = new AtomicReference<>(); + final Function reconnectExceptionListener = t -> { + firstReconnectException.compareAndSet(null, t); + return false; + }; + final StandardWorkGroup workGroup = + new StandardWorkGroup(threadManager, WORK_GROUP_NAME, breakConnection, reconnectExceptionListener); final LearnerTreeView view; if (root == null || !root.hasCustomReconnectView()) { @@ -304,7 +311,8 @@ private MerkleNode receiveTree(final MerkleNode root) throws InterruptedExce if (interruptException != null) { throw interruptException; } - throw new MerkleSynchronizationException("Synchronization failed with exceptions"); + throw new MerkleSynchronizationException( + "Synchronization failed with exceptions", firstReconnectException.get()); } viewsToInitialize.addFirst(view); diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/merkle/synchronization/TeachingSynchronizer.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/merkle/synchronization/TeachingSynchronizer.java index 5d929dd81a4e..0bb2de325753 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/merkle/synchronization/TeachingSynchronizer.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/merkle/synchronization/TeachingSynchronizer.java @@ -43,6 +43,7 @@ import java.util.Objects; import java.util.Queue; import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicReference; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -153,6 +154,7 @@ private void sendTree(final MerkleNode root, final TeacherTreeView view) root == null ? null : root.getClass().getName(), root == null ? "[]" : root.getRoute()); + final AtomicReference firstReconnectException = new AtomicReference<>(); // A future improvement might be to reuse threads between subtrees. final StandardWorkGroup workGroup = new StandardWorkGroup(threadManager, WORK_GROUP_NAME, breakConnection, ex -> { @@ -172,6 +174,7 @@ private void sendTree(final MerkleNode root, final TeacherTreeView view) } cause = cause.getCause(); } + firstReconnectException.compareAndSet(null, ex); // Let StandardWorkGroup log it as an error using the EXCEPTION marker return false; }); @@ -192,7 +195,8 @@ private void sendTree(final MerkleNode root, final TeacherTreeView view) workGroup.waitForTermination(); if (workGroup.hasExceptions()) { - throw new MerkleSynchronizationException("Synchronization failed with exceptions"); + throw new MerkleSynchronizationException( + "Synchronization failed with exceptions", firstReconnectException.get()); } logger.info(RECONNECT.getMarker(), "finished sending tree"); diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/DurationGauge.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/DurationGauge.java index a4b290e88de7..a8e4f80679bd 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/DurationGauge.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/DurationGauge.java @@ -18,7 +18,6 @@ import static com.swirlds.metrics.api.Metric.ValueType.VALUE; -import com.swirlds.base.ArgumentUtils; import com.swirlds.base.units.UnitConstants; import com.swirlds.metrics.api.FloatFormats; import com.swirlds.metrics.api.Metric; @@ -37,6 +36,7 @@ public interface DurationGauge extends Metric { /** * {@inheritDoc} */ + @NonNull @Override default MetricType getMetricType() { return MetricType.GAUGE; @@ -45,6 +45,7 @@ default MetricType getMetricType() { /** * {@inheritDoc} */ + @NonNull @Override default DataType getDataType() { return DataType.FLOAT; @@ -53,6 +54,7 @@ default DataType getDataType() { /** * {@inheritDoc} */ + @NonNull @Override default EnumSet getValueTypes() { return EnumSet.of(VALUE); @@ -61,9 +63,10 @@ default EnumSet getValueTypes() { /** * {@inheritDoc} */ + @NonNull @Override default Double get(@NonNull final ValueType valueType) { - Objects.requireNonNull(valueType, "valueType"); + Objects.requireNonNull(valueType, "valueType must not be null"); if (valueType == VALUE) { return get(); } @@ -94,10 +97,9 @@ default Double get(@NonNull final ValueType valueType) { */ final class Config extends PlatformMetricConfig { - private static final String TIME_UNIT = "timeUnit"; private static final String UNSUPPORTED_TIME_UNIT = "Unsupported time unit: "; - private final ChronoUnit timeUnit; + private final @NonNull ChronoUnit timeUnit; /** * Constructor of {@code DoubleGauge.Config} @@ -105,22 +107,29 @@ final class Config extends PlatformMetricConfig { * @param category the kind of metric (metrics are grouped or filtered by this) * @param name a short name for the metric * @param timeUnit the time unit in which to display this duration - * @throws IllegalArgumentException if one of the parameters is {@code null} or consists only of whitespaces + * @throws NullPointerException if one of the parameters is {@code null} + * @throws IllegalArgumentException if one of the parameters consists only of whitespaces */ - public Config(@NonNull final String category, @NonNull final String name, final ChronoUnit timeUnit) { - super(category, fixName(name, timeUnit), getFormat(timeUnit)); + public Config(@NonNull final String category, @NonNull final String name, final @NonNull ChronoUnit timeUnit) { + super(category, name, name, getUnit(timeUnit), getFormat(timeUnit)); this.timeUnit = timeUnit; } - private static String fixName(@NonNull final String name, final ChronoUnit timeUnit) { - return ArgumentUtils.throwArgBlank(name, "name") + " " + getAppendix(timeUnit); - } - + /** + * Constructor of {@code DoubleGauge.Config} + * + * @param category the kind of metric (metrics are grouped or filtered by this) + * @param name a short name for the metric + * @param description metric description + * @param timeUnit the time unit in which to display this duration + * @throws NullPointerException if one of the parameters is {@code null} + * @throws IllegalArgumentException if one of the parameters consists only of whitespaces + */ private Config( @NonNull final String category, @NonNull final String name, @NonNull final String description, - final ChronoUnit timeUnit) { + final @NonNull ChronoUnit timeUnit) { super(category, name, description, getUnit(timeUnit), getFormat(timeUnit)); // at this point, timeUnit was checked for null in getUnit() and getFormat() this.timeUnit = timeUnit; @@ -129,6 +138,7 @@ private Config( /** * {@inheritDoc} */ + @NonNull @Override public DurationGauge.Config withDescription(@NonNull final String description) { return new DurationGauge.Config(getCategory(), getName(), description, getTimeUnit()); @@ -138,6 +148,7 @@ public DurationGauge.Config withDescription(@NonNull final String description) { * The unit of a {@link DurationGauge} depends on the configured {@link ChronoUnit}. Therefore, it is not * possible to specify the unit and this method throws an {@link UnsupportedOperationException} */ + @NonNull @Override public DurationGauge.Config withUnit(@NonNull final String unit) { throw new UnsupportedOperationException("a String unit is not compatible with this class"); @@ -148,6 +159,7 @@ public DurationGauge.Config withUnit(@NonNull final String unit) { * * @return the {@code timeUnit} */ + @NonNull public ChronoUnit getTimeUnit() { return timeUnit; } @@ -155,6 +167,7 @@ public ChronoUnit getTimeUnit() { /** * {@inheritDoc} */ + @NonNull @Override public Class getResultClass() { return DurationGauge.class; @@ -171,7 +184,7 @@ public DurationGauge create(@NonNull final PlatformMetricsFactory factory) { @NonNull private static String getFormat(@NonNull final ChronoUnit timeUnit) { - Objects.requireNonNull(timeUnit, TIME_UNIT); + Objects.requireNonNull(timeUnit, "timeUnit must not be null"); return switch (timeUnit) { case NANOS, MICROS -> FloatFormats.FORMAT_DECIMAL_0; case MILLIS, SECONDS -> FloatFormats.FORMAT_DECIMAL_3; @@ -181,7 +194,7 @@ private static String getFormat(@NonNull final ChronoUnit timeUnit) { @NonNull private static String getUnit(final ChronoUnit timeUnit) { - Objects.requireNonNull(timeUnit, TIME_UNIT); + Objects.requireNonNull(timeUnit, "timeUnit must not be null"); return switch (timeUnit) { case NANOS -> UnitConstants.NANOSECOND_UNIT; case MICROS -> UnitConstants.MICROSECOND_UNIT; @@ -190,17 +203,5 @@ private static String getUnit(final ChronoUnit timeUnit) { default -> throw new IllegalArgumentException(UNSUPPORTED_TIME_UNIT + timeUnit); }; } - - @NonNull - private static String getAppendix(final ChronoUnit timeUnit) { - Objects.requireNonNull(timeUnit, TIME_UNIT); - return switch (timeUnit) { - case NANOS -> "(nanos)"; - case MICROS -> "(micros)"; - case MILLIS -> "(millis)"; - case SECONDS -> "(sec)"; - default -> throw new IllegalArgumentException(UNSUPPORTED_TIME_UNIT + timeUnit); - }; - } } } diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/FunctionGauge.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/FunctionGauge.java index 724390b3f0ee..4cb90d4b3b9d 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/FunctionGauge.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/FunctionGauge.java @@ -41,6 +41,7 @@ public interface FunctionGauge extends Metric { /** * {@inheritDoc} */ + @NonNull @Override default MetricType getMetricType() { return MetricType.GAUGE; @@ -49,6 +50,7 @@ default MetricType getMetricType() { /** * {@inheritDoc} */ + @NonNull @Override default EnumSet getValueTypes() { return EnumSet.of(VALUE); @@ -57,9 +59,10 @@ default EnumSet getValueTypes() { /** * {@inheritDoc} */ + @NonNull @Override - default T get(final ValueType valueType) { - Objects.requireNonNull(valueType, "valueType"); + default T get(@NonNull final ValueType valueType) { + Objects.requireNonNull(valueType, "valueType must not be null"); if (valueType == VALUE) { return get(); } @@ -94,8 +97,8 @@ final class Config extends PlatformMetricConfig, Config> * the type of the values this {@code FunctionGauge} returns * @param supplier * the {@code Supplier} of the value of this {@code Gauge} - * @throws IllegalArgumentException - * if one of the parameters is {@code null} or consists only of whitespaces + * @throws NullPointerException if one of the parameters is {@code null} + * @throws IllegalArgumentException if one of the parameters consists only of whitespaces */ public Config( @NonNull final String category, @@ -103,10 +106,26 @@ public Config( @NonNull final Class type, @NonNull final Supplier supplier) { super(category, name, "%s"); - this.type = Objects.requireNonNull(type, "type"); - this.supplier = Objects.requireNonNull(supplier, "supplier"); + this.type = Objects.requireNonNull(type, "type must not be null"); + this.supplier = Objects.requireNonNull(supplier, "supplier must not be null"); } + /** + * Constructor of {@code FunctionGauge.Config} + * + * @param category + * the kind of metric (metrics are grouped or filtered by this) + * @param name + * a short name for the metric + * @param description metric description + * @param unit the unit for metric + * @param format the format for metric + * @param type + * the type of the values this {@code FunctionGauge} returns + * @param supplier the format for metric + * @throws NullPointerException if one of the parameters is {@code null} + * @throws IllegalArgumentException if one of the parameters consists only of whitespaces + */ private Config( @NonNull final String category, @NonNull final String name, @@ -116,13 +135,14 @@ private Config( @NonNull final Class type, @NonNull final Supplier supplier) { super(category, name, description, unit, format); - this.type = Objects.requireNonNull(type, "type"); - this.supplier = Objects.requireNonNull(supplier, "supplier"); + this.type = Objects.requireNonNull(type, "type must not be null"); + this.supplier = Objects.requireNonNull(supplier, "supplier must not be null"); } /** * {@inheritDoc} */ + @NonNull @Override public FunctionGauge.Config withDescription(@NonNull final String description) { return new FunctionGauge.Config<>( @@ -132,6 +152,7 @@ public FunctionGauge.Config withDescription(@NonNull final String description /** * {@inheritDoc} */ + @NonNull @Override public FunctionGauge.Config withUnit(@NonNull final String unit) { return new FunctionGauge.Config<>( @@ -176,6 +197,7 @@ public Supplier getSupplier() { /** * {@inheritDoc} */ + @NonNull @SuppressWarnings("unchecked") @Override public Class> getResultClass() { diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/IntegerPairAccumulator.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/IntegerPairAccumulator.java index ea7462d7801d..639bba26706d 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/IntegerPairAccumulator.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/IntegerPairAccumulator.java @@ -47,6 +47,7 @@ public interface IntegerPairAccumulator extends Metric { return ((double) sum) / count; }; + @NonNull @Override default MetricType getMetricType() { return MetricType.ACCUMULATOR; @@ -55,6 +56,7 @@ default MetricType getMetricType() { /** * {@inheritDoc} */ + @NonNull @Override default EnumSet getValueTypes() { return EnumSet.of(VALUE); @@ -63,9 +65,10 @@ default EnumSet getValueTypes() { /** * {@inheritDoc} */ + @NonNull @Override default T get(@NonNull final ValueType valueType) { - Objects.requireNonNull(valueType, "valueType"); + Objects.requireNonNull(valueType, "valueType must not be null"); if (valueType == VALUE) { return get(); } @@ -77,6 +80,7 @@ default T get(@NonNull final ValueType valueType) { * * @return the current value */ + @NonNull T get(); /** @@ -110,15 +114,15 @@ default T get(@NonNull final ValueType valueType) { */ final class Config extends PlatformMetricConfig, Config> { - private final Class type; + private final @NonNull Class type; - private final BiFunction resultFunction; + private final @NonNull BiFunction resultFunction; - private final IntBinaryOperator leftAccumulator; - private final IntBinaryOperator rightAccumulator; + private final @NonNull IntBinaryOperator leftAccumulator; + private final @NonNull IntBinaryOperator rightAccumulator; - private final IntSupplier leftInitializer; - private final IntSupplier rightInitializer; + private final @NonNull IntSupplier leftInitializer; + private final @NonNull IntSupplier rightInitializer; private static final IntSupplier DEFAULT_INITIALIZER = () -> 0; @@ -140,14 +144,33 @@ public Config( @NonNull final BiFunction resultFunction) { super(category, name, "%s"); - this.type = Objects.requireNonNull(type, "type"); - this.resultFunction = Objects.requireNonNull(resultFunction, "resultFunction"); + this.type = Objects.requireNonNull(type, "type must not be null"); + this.resultFunction = Objects.requireNonNull(resultFunction, "resultFunction must not be null"); this.leftAccumulator = Integer::sum; this.rightAccumulator = Integer::sum; this.leftInitializer = DEFAULT_INITIALIZER; this.rightInitializer = DEFAULT_INITIALIZER; } + /** + * Constructor of {@code IntegerPairAccumulator.Config} + *

    + * The accumulators are by default set to {@code Integer::sum}. + * + * @param category the kind of metric (metrics are grouped or filtered by this) + * @param name a short name for the metric + * @param description metric description + * @param unit the unit for metric + * @param format the format for metric + * @param type the type of the values this {@code IntegerPairAccumulator} returns + * @param resultFunction the function that is used to calculate the {@code IntegerAccumulator}'s value. + * @param leftAccumulator the leftAccumulator for metric + * @param rightAccumulator the rightAccumulator for metric + * @param leftInitializer the leftInitializer for metric + * @param rightInitializer the rightInitializer for metric + * @throws NullPointerException if one of the parameters is {@code null} + * @throws IllegalArgumentException if one of the parameters consists only of whitespaces + */ private Config( @NonNull final String category, @NonNull final String name, @@ -163,16 +186,17 @@ private Config( super(category, name, description, unit, format); this.type = Objects.requireNonNull(type, "type"); - this.resultFunction = Objects.requireNonNull(resultFunction, "resultFunction"); - this.leftAccumulator = Objects.requireNonNull(leftAccumulator, "leftAccumulator"); - this.rightAccumulator = Objects.requireNonNull(rightAccumulator, "rightAccumulator"); - this.leftInitializer = Objects.requireNonNull(leftInitializer, "leftInitializer"); - this.rightInitializer = Objects.requireNonNull(rightInitializer, "rightInitializer"); + this.resultFunction = Objects.requireNonNull(resultFunction, "resultFunction must not be null"); + this.leftAccumulator = Objects.requireNonNull(leftAccumulator, "leftAccumulator must not be null"); + this.rightAccumulator = Objects.requireNonNull(rightAccumulator, "rightAccumulator must not be null"); + this.leftInitializer = Objects.requireNonNull(leftInitializer, "leftInitializer must not be null"); + this.rightInitializer = Objects.requireNonNull(rightInitializer, "rightInitializer must not be null"); } /** * {@inheritDoc} */ + @NonNull @Override public IntegerPairAccumulator.Config withDescription(@NonNull final String description) { return new IntegerPairAccumulator.Config<>( @@ -192,6 +216,7 @@ public IntegerPairAccumulator.Config withDescription(@NonNull final String de /** * {@inheritDoc} */ + @NonNull @Override public IntegerPairAccumulator.Config withUnit(@NonNull final String unit) { return new IntegerPairAccumulator.Config<>( @@ -213,7 +238,9 @@ public IntegerPairAccumulator.Config withUnit(@NonNull final String unit) { * * @param format the format-string * @return a new configuration-object with updated {@code format} - * @throws IllegalArgumentException if {@code format} is {@code null} or consists only of whitespaces + * @throws NullPointerException if one of the parameters is {@code null} + * @throws IllegalArgumentException if one of the parameters consists only of whitespaces + * */ @NonNull public IntegerPairAccumulator.Config withFormat(@NonNull final String format) { @@ -427,6 +454,7 @@ public IntegerPairAccumulator.Config withRightInitialValue(final int rightIni /** * {@inheritDoc} */ + @NonNull @SuppressWarnings("unchecked") @Override public Class> getResultClass() { diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/PlatformMetric.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/PlatformMetric.java index 0f230ba0dff7..aba547388c84 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/PlatformMetric.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/PlatformMetric.java @@ -18,6 +18,7 @@ import com.swirlds.common.metrics.statistics.StatsBuffered; import com.swirlds.metrics.api.Metric; +import edu.umd.cs.findbugs.annotations.Nullable; /** * This class is only used to simplify the migration and will be removed afterwards. @@ -35,5 +36,6 @@ public interface PlatformMetric extends Metric { * @return the {@code StatsBuffered}, if there is one, {@code null} otherwise * @deprecated This method is only temporary and will be removed during the Metric overhaul. */ + @Nullable StatsBuffered getStatsBuffered(); } diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/PlatformMetricConfig.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/PlatformMetricConfig.java index 908d31c30873..ab76101c7d32 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/PlatformMetricConfig.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/PlatformMetricConfig.java @@ -68,6 +68,7 @@ protected PlatformMetricConfig( */ public abstract T create(@NonNull final PlatformMetricsFactory factory); + @NonNull @Override public final T create(@NonNull MetricsFactory factory) { if (factory instanceof PlatformMetricsFactory) { diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/PlatformMetricsProvider.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/PlatformMetricsProvider.java index cfb5bd2a475f..7bce251b2323 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/PlatformMetricsProvider.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/PlatformMetricsProvider.java @@ -18,6 +18,7 @@ import com.swirlds.common.platform.NodeId; import com.swirlds.metrics.api.Metrics; +import edu.umd.cs.findbugs.annotations.NonNull; /** * An implementation of this class is responsible for creating {@link Metrics}-implementations. @@ -35,6 +36,7 @@ public interface PlatformMetricsProvider { * * @return the new instance of {@code Metrics} */ + @NonNull Metrics createGlobalMetrics(); /** @@ -44,5 +46,6 @@ public interface PlatformMetricsProvider { * the {@link NodeId} of the platform * @return the new instance of {@code Metrics} */ - Metrics createPlatformMetrics(NodeId selfId); + @NonNull + Metrics createPlatformMetrics(final @NonNull NodeId selfId); } diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/RunningAverageMetric.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/RunningAverageMetric.java index 15f3199669fe..65b75192cb62 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/RunningAverageMetric.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/RunningAverageMetric.java @@ -39,6 +39,7 @@ public interface RunningAverageMetric extends Metric { /** * {@inheritDoc} */ + @NonNull @Override default MetricType getMetricType() { return MetricType.RUNNING_AVERAGE; @@ -47,6 +48,7 @@ default MetricType getMetricType() { /** * {@inheritDoc} */ + @NonNull @Override default DataType getDataType() { return DataType.FLOAT; @@ -55,6 +57,7 @@ default DataType getDataType() { /** * {@inheritDoc} */ + @NonNull default EnumSet getValueTypes() { return EnumSet.of(VALUE, MAX, MIN, STD_DEV); } @@ -62,8 +65,9 @@ default EnumSet getValueTypes() { /** * {@inheritDoc} */ + @NonNull @Override - Double get(final ValueType valueType); + Double get(@NonNull final ValueType valueType); /** * Getter of the {@code halfLife} @@ -116,8 +120,8 @@ final class Config extends PlatformMetricConfig { * the kind of metric (stats are grouped or filtered by this) * @param name * a short name for the statistic - * @throws IllegalArgumentException - * if one of the parameters is {@code null} or consists only of whitespaces + * @throws NullPointerException if one of the parameters is {@code null} + * @throws IllegalArgumentException if one of the parameters consists only of whitespaces */ public Config(@NonNull final String category, @NonNull final String name) { super(category, name, FloatFormats.FORMAT_11_3); @@ -125,6 +129,26 @@ public Config(@NonNull final String category, @NonNull final String name) { this.useDefaultHalfLife = true; } + /** + * Constructor of {@code RunningAverageMetric.Config} + * + * The {@code useDefaultHalfLife} determines whether the default {@code halfLife} value + * (see {@link MetricsConfig#halfLife()}) should be used during the creation of a metric based on + * this configuration. If set to {@code false}, the specific {@code halfLife} defined in this configuration will + * be used instead. + * + * @param category + * the kind of metric (stats are grouped or filtered by this) + * @param name + * a short name for the statistic + * @param description metric description + * @param unit metric unit + * @param format metric format + * @param halfLife metric halfLife + * @param useDefaultHalfLife if a default should be used + * @throws NullPointerException if one of the parameters is {@code null} + * @throws IllegalArgumentException if one of the parameters consists only of whitespaces + */ private Config( @NonNull final String category, @NonNull final String name, @@ -142,6 +166,7 @@ private Config( /** * {@inheritDoc} */ + @NonNull @Override public RunningAverageMetric.Config withDescription(@NonNull final String description) { return new RunningAverageMetric.Config( @@ -157,6 +182,7 @@ public RunningAverageMetric.Config withDescription(@NonNull final String descrip /** * {@inheritDoc} */ + @NonNull @Override public RunningAverageMetric.Config withUnit(@NonNull final String unit) { return new RunningAverageMetric.Config( @@ -175,8 +201,8 @@ public RunningAverageMetric.Config withUnit(@NonNull final String unit) { * @param format * the format-string * @return a new configuration-object with updated {@code format} - * @throws IllegalArgumentException - * if {@code format} is {@code null} or consists only of whitespaces + * @throws NullPointerException if one of the parameters is {@code null} + * @throws IllegalArgumentException if one of the parameters consists only of whitespaces */ @NonNull public RunningAverageMetric.Config withFormat(@NonNull final String format) { @@ -224,6 +250,7 @@ public RunningAverageMetric.Config withHalfLife(final double halfLife) { /** * {@inheritDoc} */ + @NonNull @Override public Class getResultClass() { return RunningAverageMetric.class; diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/SpeedometerMetric.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/SpeedometerMetric.java index 50ccabe79c6d..4c8e9404961d 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/SpeedometerMetric.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/SpeedometerMetric.java @@ -41,6 +41,7 @@ public interface SpeedometerMetric extends Metric { /** * {@inheritDoc} */ + @NonNull @Override default MetricType getMetricType() { return MetricType.SPEEDOMETER; @@ -49,6 +50,7 @@ default MetricType getMetricType() { /** * {@inheritDoc} */ + @NonNull @Override default DataType getDataType() { return DataType.FLOAT; @@ -57,6 +59,7 @@ default DataType getDataType() { /** * {@inheritDoc} */ + @NonNull default EnumSet getValueTypes() { return EnumSet.of(VALUE, MAX, MIN, STD_DEV); } @@ -64,8 +67,9 @@ default EnumSet getValueTypes() { /** * {@inheritDoc} */ + @NonNull @Override - Double get(final ValueType valueType); + Double get(@NonNull final ValueType valueType); /** * Getter of the {@code halfLife} @@ -150,6 +154,7 @@ private Config( /** * {@inheritDoc} */ + @NonNull @Override public SpeedometerMetric.Config withDescription(@NonNull final String description) { return new SpeedometerMetric.Config( @@ -165,6 +170,7 @@ public SpeedometerMetric.Config withDescription(@NonNull final String descriptio /** * {@inheritDoc} */ + @NonNull @Override public SpeedometerMetric.Config withUnit(@NonNull final String unit) { return new SpeedometerMetric.Config( @@ -232,6 +238,7 @@ public SpeedometerMetric.Config withHalfLife(final double halfLife) { /** * {@inheritDoc} */ + @NonNull @Override public Class getResultClass() { return SpeedometerMetric.class; diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/StatEntry.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/StatEntry.java index 754ec6f683c4..273f77b84e5c 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/StatEntry.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/StatEntry.java @@ -45,6 +45,7 @@ public interface StatEntry extends Metric { /** * {@inheritDoc} */ + @NonNull @Override default MetricType getMetricType() { return MetricType.STAT_ENTRY; @@ -53,6 +54,7 @@ default MetricType getMetricType() { /** * {@inheritDoc} */ + @NonNull @Override default EnumSet getValueTypes() { return getBuffered() == null ? EnumSet.of(VALUE) : EnumSet.of(VALUE, MAX, MIN, STD_DEV); @@ -61,9 +63,10 @@ default EnumSet getValueTypes() { /** * {@inheritDoc} */ + @NonNull @Override default Object get(@NonNull final ValueType valueType) { - Objects.requireNonNull(valueType, "valueType"); + Objects.requireNonNull(valueType, "valueType must not be null"); if (getBuffered() == null) { if (valueType == VALUE) { return getStatsStringSupplier().get(); @@ -85,6 +88,7 @@ default Object get(@NonNull final ValueType valueType) { * * @return the {@link StatsBuffered}, if available, otherwise {@code null} */ + @Nullable StatsBuffered getBuffered(); /** @@ -92,6 +96,7 @@ default Object get(@NonNull final ValueType valueType) { * * @return the reset-lambda, if available, otherwise {@code null} */ + @Nullable Consumer getReset(); /** @@ -99,6 +104,7 @@ default Object get(@NonNull final ValueType valueType) { * * @return the lambda */ + @NonNull Supplier getStatsStringSupplier(); /** @@ -107,6 +113,7 @@ default Object get(@NonNull final ValueType valueType) { * * @return the lambda */ + @NonNull Supplier getResetStatsStringSupplier(); /** @@ -116,12 +123,12 @@ default Object get(@NonNull final ValueType valueType) { */ final class Config extends PlatformMetricConfig> { - private final Class type; - private final StatsBuffered buffered; - private final Function init; - private final Consumer reset; - private final Supplier statsStringSupplier; - private final Supplier resetStatsStringSupplier; + private final @NonNull Class type; + private final @Nullable StatsBuffered buffered; + private final @Nullable Function init; + private final @Nullable Consumer reset; + private final @NonNull Supplier statsStringSupplier; + private final @NonNull Supplier resetStatsStringSupplier; private final double halfLife; /** @@ -145,15 +152,30 @@ public Config( @NonNull final Supplier statsStringSupplier) { super(category, name, FloatFormats.FORMAT_11_3); - this.type = Objects.requireNonNull(type, "type"); + this.type = Objects.requireNonNull(type, "type must not be null"); this.buffered = null; this.init = null; this.reset = null; - this.statsStringSupplier = Objects.requireNonNull(statsStringSupplier, "statsStringSupplier"); + this.statsStringSupplier = + Objects.requireNonNull(statsStringSupplier, "statsStringSupplier must not be null"); this.resetStatsStringSupplier = statsStringSupplier; this.halfLife = -1; } + /** + * stores all the parameters, which can be accessed directly + * + * @param category + * the kind of metric (metrics are grouped or filtered by this) + * @param name + * a short name for the metric + * @param type + * the type of the values this {@code StatEntry} returns + * @param statsStringSupplier + * a lambda that returns the metric string + * @throws IllegalArgumentException + * if one of the parameters is {@code null} or consists only of whitespaces + */ @SuppressWarnings("java:S107") private Config( @NonNull final String category, @@ -169,19 +191,21 @@ private Config( @NonNull final Supplier resetStatsStringSupplier, final double halfLife) { super(category, name, description, unit, format); - this.type = Objects.requireNonNull(type, "type"); + this.type = Objects.requireNonNull(type, "type must not be null"); this.buffered = buffered; this.init = init; this.reset = reset; - this.statsStringSupplier = Objects.requireNonNull(statsStringSupplier, "statsStringSupplier"); + this.statsStringSupplier = + Objects.requireNonNull(statsStringSupplier, "statsStringSupplier must not be null"); this.resetStatsStringSupplier = - Objects.requireNonNull(resetStatsStringSupplier, "resetStatsStringSupplier"); + Objects.requireNonNull(resetStatsStringSupplier, "resetStatsStringSupplier must not be null"); this.halfLife = halfLife; } /** * {@inheritDoc} */ + @NonNull @Override public StatEntry.Config withDescription(@NonNull final String description) { return new StatEntry.Config<>( @@ -202,6 +226,7 @@ public StatEntry.Config withDescription(@NonNull final String description) { /** * {@inheritDoc} */ + @NonNull @Override public StatEntry.Config withUnit(@NonNull final String unit) { return new StatEntry.Config<>( @@ -404,6 +429,7 @@ public StatEntry.Config withResetStatsStringSupplier(@NonNull final Supplier< /** * {@inheritDoc} */ + @NonNull @Override public Class getResultClass() { return StatEntry.class; diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/noop/NoOpMetrics.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/noop/NoOpMetrics.java index fab767de4ad0..bc46eb90980d 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/noop/NoOpMetrics.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/noop/NoOpMetrics.java @@ -22,11 +22,14 @@ import com.swirlds.metrics.api.Metric; import com.swirlds.metrics.api.MetricConfig; import com.swirlds.metrics.api.Metrics; +import edu.umd.cs.findbugs.annotations.NonNull; +import edu.umd.cs.findbugs.annotations.Nullable; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Objects; /** * A no-op {@link Metrics} implementation. @@ -39,7 +42,7 @@ public class NoOpMetrics implements PlatformMetrics { private final Map> metrics = new HashMap<>(); - private static final NoOpMetricsFactory factory = new NoOpMetricsFactory(); + private static final NoOpMetricsFactory FACTORY = new NoOpMetricsFactory(); @Override public NodeId getNodeId() { @@ -60,7 +63,7 @@ public boolean isPlatformMetrics() { * {@inheritDoc} */ @Override - public synchronized Metric getMetric(final String category, final String name) { + public synchronized @Nullable Metric getMetric(@NonNull final String category, @NonNull final String name) { final Map metricsInCategory = metrics.get(category); if (metricsInCategory == null) { return null; @@ -71,8 +74,9 @@ public synchronized Metric getMetric(final String category, final String name) { /** * {@inheritDoc} */ + @NonNull @Override - public synchronized Collection findMetricsByCategory(final String category) { + public synchronized Collection findMetricsByCategory(@NonNull final String category) { final Map metricsInCategory = metrics.get(category); if (metricsInCategory == null) { return List.of(); @@ -83,6 +87,7 @@ public synchronized Collection findMetricsByCategory(final String catego /** * {@inheritDoc} */ + @NonNull @Override public synchronized Collection getAll() { // Not very efficient, but the no-op metrics doesn't do snapshotting, so this should rarely (if ever) be called. @@ -96,22 +101,25 @@ public synchronized Collection getAll() { /** * {@inheritDoc} */ + @NonNull @SuppressWarnings("unchecked") @Override - public synchronized T getOrCreate(final MetricConfig config) { - + public synchronized T getOrCreate(@NonNull final MetricConfig config) { + Objects.requireNonNull(config, "config must not be null"); final String category = config.getCategory(); final String name = config.getName(); final Map metricsInCategory = metrics.computeIfAbsent(category, k -> new HashMap<>()); - return (T) metricsInCategory.computeIfAbsent(name, k -> factory.createMetric(config)); + return (T) metricsInCategory.computeIfAbsent(name, k -> FACTORY.createMetric(config)); } /** * {@inheritDoc} */ @Override - public synchronized void remove(final String category, final String name) { + public synchronized void remove(@NonNull final String category, @NonNull final String name) { + Objects.requireNonNull(category, "category must not be null"); + Objects.requireNonNull(name, "name must not be null"); final Map metricsInCategory = metrics.get(category); if (metricsInCategory == null) { @@ -129,7 +137,8 @@ public synchronized void remove(final String category, final String name) { * {@inheritDoc} */ @Override - public void remove(final Metric metric) { + public void remove(@NonNull final Metric metric) { + Objects.requireNonNull(metric, "metric must not be null"); remove(metric.getCategory(), metric.getName()); } @@ -137,7 +146,8 @@ public void remove(final Metric metric) { * {@inheritDoc} */ @Override - public void remove(final MetricConfig config) { + public void remove(@NonNull final MetricConfig config) { + Objects.requireNonNull(config, "config must not be null"); remove(config.getCategory(), config.getName()); } @@ -145,7 +155,8 @@ public void remove(final MetricConfig config) { * {@inheritDoc} */ @Override - public void addUpdater(final Runnable updater) { + public void addUpdater(@NonNull final Runnable updater) { + Objects.requireNonNull(updater, "updater must not be null"); // Intentional no-op } @@ -153,7 +164,8 @@ public void addUpdater(final Runnable updater) { * {@inheritDoc} */ @Override - public void removeUpdater(final Runnable updater) { + public void removeUpdater(@NonNull final Runnable updater) { + Objects.requireNonNull(updater, "updater must not be null"); // Intentional no-op } diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/noop/internal/AbstractNoOpMetric.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/noop/internal/AbstractNoOpMetric.java index 4bbb576fe733..b14223b0f4fc 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/noop/internal/AbstractNoOpMetric.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/noop/internal/AbstractNoOpMetric.java @@ -20,6 +20,7 @@ import com.swirlds.common.metrics.statistics.StatsBuffered; import com.swirlds.metrics.api.Metric; import com.swirlds.metrics.api.MetricConfig; +import edu.umd.cs.findbugs.annotations.NonNull; import java.util.EnumSet; /** @@ -36,6 +37,7 @@ protected AbstractNoOpMetric(final MetricConfig config) { /** * {@inheritDoc} */ + @NonNull @Override public String getCategory() { return config.getCategory(); @@ -44,6 +46,7 @@ public String getCategory() { /** * {@inheritDoc} */ + @NonNull @Override public String getName() { return config.getName(); @@ -52,6 +55,7 @@ public String getName() { /** * {@inheritDoc} */ + @NonNull @Override public String getDescription() { return config.getDescription(); @@ -60,6 +64,7 @@ public String getDescription() { /** * {@inheritDoc} */ + @NonNull @Override public String getUnit() { return config.getUnit(); @@ -68,6 +73,7 @@ public String getUnit() { /** * {@inheritDoc} */ + @NonNull @Override public String getFormat() { return config.getFormat(); @@ -76,6 +82,7 @@ public String getFormat() { /** * {@inheritDoc} */ + @NonNull @Override public EnumSet getValueTypes() { return EnumSet.noneOf(ValueType.class); @@ -92,6 +99,7 @@ public void reset() { /** * {@inheritDoc} */ + @NonNull @Override public StatsBuffered getStatsBuffered() { return new NoOpStatsBuffered(); diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/noop/internal/NoOpCounter.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/noop/internal/NoOpCounter.java index cea48cfce62f..2df6f6c896f8 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/noop/internal/NoOpCounter.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/noop/internal/NoOpCounter.java @@ -18,13 +18,14 @@ import com.swirlds.metrics.api.Counter; import com.swirlds.metrics.api.MetricConfig; +import edu.umd.cs.findbugs.annotations.NonNull; /** * A no-op counter. */ public class NoOpCounter extends AbstractNoOpMetric implements Counter { - public NoOpCounter(final MetricConfig config) { + public NoOpCounter(final @NonNull MetricConfig config) { super(config); } diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/noop/internal/NoOpDoubleAccumulator.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/noop/internal/NoOpDoubleAccumulator.java index 993545d164a9..707554344f27 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/noop/internal/NoOpDoubleAccumulator.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/noop/internal/NoOpDoubleAccumulator.java @@ -18,13 +18,14 @@ import com.swirlds.metrics.api.DoubleAccumulator; import com.swirlds.metrics.api.MetricConfig; +import edu.umd.cs.findbugs.annotations.NonNull; /** * A no-op double accumulator. */ public class NoOpDoubleAccumulator extends AbstractNoOpMetric implements DoubleAccumulator { - public NoOpDoubleAccumulator(final MetricConfig config) { + public NoOpDoubleAccumulator(final @NonNull MetricConfig config) { super(config); } diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/noop/internal/NoOpDoubleGauge.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/noop/internal/NoOpDoubleGauge.java index 769f45ee5d6e..ea892ab7aa8e 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/noop/internal/NoOpDoubleGauge.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/noop/internal/NoOpDoubleGauge.java @@ -18,13 +18,14 @@ import com.swirlds.metrics.api.DoubleGauge; import com.swirlds.metrics.api.MetricConfig; +import edu.umd.cs.findbugs.annotations.NonNull; /** * A no-op implementation of a double gauge. */ public class NoOpDoubleGauge extends AbstractNoOpMetric implements DoubleGauge { - public NoOpDoubleGauge(final MetricConfig config) { + public NoOpDoubleGauge(final @NonNull MetricConfig config) { super(config); } diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/noop/internal/NoOpDurationGauge.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/noop/internal/NoOpDurationGauge.java index 2f9e63253e95..1897845c3b11 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/noop/internal/NoOpDurationGauge.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/noop/internal/NoOpDurationGauge.java @@ -18,6 +18,7 @@ import com.swirlds.common.metrics.DurationGauge; import com.swirlds.metrics.api.MetricConfig; +import edu.umd.cs.findbugs.annotations.NonNull; import java.time.Duration; /** @@ -25,7 +26,7 @@ */ public class NoOpDurationGauge extends AbstractNoOpMetric implements DurationGauge { - public NoOpDurationGauge(final MetricConfig config) { + public NoOpDurationGauge(final @NonNull MetricConfig config) { super(config); } diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/noop/internal/NoOpFunctionGauge.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/noop/internal/NoOpFunctionGauge.java index 6c2cac4f40a5..27249adc3b66 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/noop/internal/NoOpFunctionGauge.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/noop/internal/NoOpFunctionGauge.java @@ -18,6 +18,7 @@ import com.swirlds.common.metrics.FunctionGauge; import com.swirlds.metrics.api.MetricConfig; +import edu.umd.cs.findbugs.annotations.NonNull; /** * A no-op implementation of a function gauge. @@ -29,7 +30,7 @@ public class NoOpFunctionGauge extends AbstractNoOpMetric implements Function private final T value; - public NoOpFunctionGauge(final MetricConfig config, final T value) { + public NoOpFunctionGauge(final @NonNull MetricConfig config, final @NonNull T value) { super(config); this.value = value; } @@ -38,6 +39,7 @@ public NoOpFunctionGauge(final MetricConfig config, final T value) { * {@inheritDoc} */ @Override + @NonNull public T get() { return value; } @@ -45,6 +47,7 @@ public T get() { /** * {@inheritDoc} */ + @NonNull @Override public DataType getDataType() { return DataType.INT; diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/noop/internal/NoOpIntegerPairAccumulator.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/noop/internal/NoOpIntegerPairAccumulator.java index 1f68064a96a9..7686c0cf596a 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/noop/internal/NoOpIntegerPairAccumulator.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/noop/internal/NoOpIntegerPairAccumulator.java @@ -18,15 +18,16 @@ import com.swirlds.common.metrics.IntegerPairAccumulator; import com.swirlds.metrics.api.MetricConfig; +import edu.umd.cs.findbugs.annotations.NonNull; /** * A no-op implementation of an integer pair accumulator. */ public class NoOpIntegerPairAccumulator extends AbstractNoOpMetric implements IntegerPairAccumulator { - private final T value; + private final @NonNull T value; - public NoOpIntegerPairAccumulator(final MetricConfig config, final T value) { + public NoOpIntegerPairAccumulator(final @NonNull MetricConfig config, final @NonNull T value) { super(config); this.value = value; } @@ -34,6 +35,7 @@ public NoOpIntegerPairAccumulator(final MetricConfig config, final T value /** * {@inheritDoc} */ + @NonNull @Override public T get() { return value; @@ -64,6 +66,7 @@ public void update(final int leftValue, final int rightValue) {} /** * {@inheritDoc} */ + @NonNull @Override public DataType getDataType() { return DataType.INT; diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/noop/internal/NoOpMetricsFactory.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/noop/internal/NoOpMetricsFactory.java index f5574dc7d1db..43dcc261c915 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/noop/internal/NoOpMetricsFactory.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/noop/internal/NoOpMetricsFactory.java @@ -30,6 +30,7 @@ import com.swirlds.metrics.api.IntegerGauge; import com.swirlds.metrics.api.LongAccumulator; import com.swirlds.metrics.api.LongGauge; +import edu.umd.cs.findbugs.annotations.NonNull; /** * Builds no-op metrics. @@ -40,7 +41,7 @@ public class NoOpMetricsFactory implements PlatformMetricsFactory { * {@inheritDoc} */ @Override - public Counter createCounter(final Counter.Config config) { + public @NonNull Counter createCounter(final @NonNull Counter.Config config) { return new NoOpCounter(config); } @@ -48,7 +49,7 @@ public Counter createCounter(final Counter.Config config) { * {@inheritDoc} */ @Override - public DoubleAccumulator createDoubleAccumulator(final DoubleAccumulator.Config config) { + public @NonNull DoubleAccumulator createDoubleAccumulator(final @NonNull DoubleAccumulator.Config config) { return new NoOpDoubleAccumulator(config); } @@ -56,7 +57,7 @@ public DoubleAccumulator createDoubleAccumulator(final DoubleAccumulator.Config * {@inheritDoc} */ @Override - public DoubleGauge createDoubleGauge(final DoubleGauge.Config config) { + public @NonNull DoubleGauge createDoubleGauge(final @NonNull DoubleGauge.Config config) { return new NoOpDoubleGauge(config); } @@ -64,7 +65,7 @@ public DoubleGauge createDoubleGauge(final DoubleGauge.Config config) { * {@inheritDoc} */ @Override - public DurationGauge createDurationGauge(final DurationGauge.Config config) { + public @NonNull DurationGauge createDurationGauge(final @NonNull DurationGauge.Config config) { return new NoOpDurationGauge(config); } @@ -72,7 +73,7 @@ public DurationGauge createDurationGauge(final DurationGauge.Config config) { * {@inheritDoc} */ @Override - public FunctionGauge createFunctionGauge(final FunctionGauge.Config config) { + public @NonNull FunctionGauge createFunctionGauge(final @NonNull FunctionGauge.Config config) { return new NoOpFunctionGauge<>(config, config.getSupplier().get()); } @@ -80,7 +81,7 @@ public FunctionGauge createFunctionGauge(final FunctionGauge.Config co * {@inheritDoc} */ @Override - public IntegerAccumulator createIntegerAccumulator(final IntegerAccumulator.Config config) { + public @NonNull IntegerAccumulator createIntegerAccumulator(final @NonNull IntegerAccumulator.Config config) { return new NoOpIntegerAccumulator(config); } @@ -88,7 +89,7 @@ public IntegerAccumulator createIntegerAccumulator(final IntegerAccumulator.Conf * {@inheritDoc} */ @Override - public IntegerGauge createIntegerGauge(final IntegerGauge.Config config) { + public @NonNull IntegerGauge createIntegerGauge(final @NonNull IntegerGauge.Config config) { return new NoOpIntegerGauge(config); } @@ -96,7 +97,8 @@ public IntegerGauge createIntegerGauge(final IntegerGauge.Config config) { * {@inheritDoc} */ @Override - public IntegerPairAccumulator createIntegerPairAccumulator(final IntegerPairAccumulator.Config config) { + public @NonNull IntegerPairAccumulator createIntegerPairAccumulator( + final @NonNull IntegerPairAccumulator.Config config) { return new NoOpIntegerPairAccumulator<>( config, config.getResultFunction().apply(0, 0)); } @@ -105,7 +107,7 @@ public IntegerPairAccumulator createIntegerPairAccumulator(final IntegerP * {@inheritDoc} */ @Override - public LongAccumulator createLongAccumulator(final LongAccumulator.Config config) { + public @NonNull LongAccumulator createLongAccumulator(final @NonNull LongAccumulator.Config config) { return new NoOpLongAccumulator(config); } @@ -113,7 +115,7 @@ public LongAccumulator createLongAccumulator(final LongAccumulator.Config config * {@inheritDoc} */ @Override - public LongGauge createLongGauge(final LongGauge.Config config) { + public @NonNull LongGauge createLongGauge(final @NonNull LongGauge.Config config) { return new NoOpLongGauge(config); } @@ -121,7 +123,7 @@ public LongGauge createLongGauge(final LongGauge.Config config) { * {@inheritDoc} */ @Override - public RunningAverageMetric createRunningAverageMetric(final RunningAverageMetric.Config config) { + public @NonNull RunningAverageMetric createRunningAverageMetric(final @NonNull RunningAverageMetric.Config config) { return new NoOpRunningAverageMetric(config); } @@ -129,7 +131,7 @@ public RunningAverageMetric createRunningAverageMetric(final RunningAverageMetri * {@inheritDoc} */ @Override - public SpeedometerMetric createSpeedometerMetric(final SpeedometerMetric.Config config) { + public @NonNull SpeedometerMetric createSpeedometerMetric(final @NonNull SpeedometerMetric.Config config) { return new NoOpSpeedometerMetric(config); } @@ -137,7 +139,7 @@ public SpeedometerMetric createSpeedometerMetric(final SpeedometerMetric.Config * {@inheritDoc} */ @Override - public StatEntry createStatEntry(final StatEntry.Config config) { + public @NonNull StatEntry createStatEntry(final @NonNull StatEntry.Config config) { return new NoOpStatEntry(config); } } diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/noop/internal/NoOpRunningAverageMetric.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/noop/internal/NoOpRunningAverageMetric.java index 9b181561fdde..5c23e1115963 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/noop/internal/NoOpRunningAverageMetric.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/noop/internal/NoOpRunningAverageMetric.java @@ -18,21 +18,23 @@ import com.swirlds.common.metrics.RunningAverageMetric; import com.swirlds.metrics.api.MetricConfig; +import edu.umd.cs.findbugs.annotations.NonNull; /** * A no-op implementation of a running average metric. */ public class NoOpRunningAverageMetric extends AbstractNoOpMetric implements RunningAverageMetric { - public NoOpRunningAverageMetric(final MetricConfig config) { + public NoOpRunningAverageMetric(final @NonNull MetricConfig config) { super(config); } /** * {@inheritDoc} */ + @NonNull @Override - public Double get(final ValueType valueType) { + public Double get(@NonNull final ValueType valueType) { return 0.0; } diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/noop/internal/NoOpSpeedometerMetric.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/noop/internal/NoOpSpeedometerMetric.java index 298f36e46470..fba84fdfdbb5 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/noop/internal/NoOpSpeedometerMetric.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/noop/internal/NoOpSpeedometerMetric.java @@ -18,21 +18,23 @@ import com.swirlds.common.metrics.SpeedometerMetric; import com.swirlds.metrics.api.MetricConfig; +import edu.umd.cs.findbugs.annotations.NonNull; /** * A no-op implementation of a speedometer metric. */ public class NoOpSpeedometerMetric extends AbstractNoOpMetric implements SpeedometerMetric { - public NoOpSpeedometerMetric(final MetricConfig config) { + public NoOpSpeedometerMetric(final @NonNull MetricConfig config) { super(config); } /** * {@inheritDoc} */ + @NonNull @Override - public Double get(final ValueType valueType) { + public Double get(final @NonNull ValueType valueType) { return 0.0; } diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/noop/internal/NoOpStatEntry.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/noop/internal/NoOpStatEntry.java index bf0574e9e94f..0dc81f516acd 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/noop/internal/NoOpStatEntry.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/noop/internal/NoOpStatEntry.java @@ -21,6 +21,7 @@ import com.swirlds.common.metrics.StatEntry; import com.swirlds.common.metrics.statistics.StatsBuffered; import com.swirlds.metrics.api.MetricConfig; +import edu.umd.cs.findbugs.annotations.NonNull; import java.util.function.Consumer; import java.util.function.Supplier; @@ -29,13 +30,14 @@ */ public class NoOpStatEntry extends AbstractNoOpMetric implements StatEntry { - public NoOpStatEntry(final MetricConfig config) { + public NoOpStatEntry(final @NonNull MetricConfig config) { super(config); } /** * {@inheritDoc} */ + @NonNull @Override public DataType getDataType() { return INT; @@ -45,6 +47,7 @@ public DataType getDataType() { * {@inheritDoc} */ @Override + @NonNull public StatsBuffered getBuffered() { return new NoOpStatsBuffered(); } @@ -53,6 +56,7 @@ public StatsBuffered getBuffered() { * {@inheritDoc} */ @Override + @NonNull public Consumer getReset() { return x -> {}; } @@ -60,6 +64,7 @@ public Consumer getReset() { /** * {@inheritDoc} */ + @NonNull @Override public Supplier getStatsStringSupplier() { return () -> ""; @@ -68,6 +73,7 @@ public Supplier getStatsStringSupplier() { /** * {@inheritDoc} */ + @NonNull @Override public Supplier getResetStatsStringSupplier() { return () -> ""; diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/AbstractDistributionMetric.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/AbstractDistributionMetric.java index a8beea5dc6ac..562a7d2efdfd 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/AbstractDistributionMetric.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/AbstractDistributionMetric.java @@ -19,6 +19,7 @@ import com.swirlds.common.metrics.platform.Snapshot.SnapshotEntry; import com.swirlds.common.metrics.statistics.StatsBuffered; import com.swirlds.metrics.api.MetricConfig; +import edu.umd.cs.findbugs.annotations.NonNull; import java.util.List; import java.util.Objects; @@ -56,8 +57,9 @@ public double getHalfLife() { /** * {@inheritDoc} */ + @NonNull @Override - public Double get(final ValueType valueType) { + public Double get(@NonNull final ValueType valueType) { Objects.requireNonNull(valueType, "valueType must not be null"); return switch (valueType) { case VALUE -> get(); @@ -71,6 +73,7 @@ public Double get(final ValueType valueType) { /** * {@inheritDoc} */ + @NonNull @Override public List takeSnapshot() { final StatsBuffered statsBuffered = getStatsBuffered(); diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultCounter.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultCounter.java index 2ce1f0c9728a..d5fe0a754440 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultCounter.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultCounter.java @@ -21,6 +21,7 @@ import com.swirlds.base.utility.ToStringBuilder; import com.swirlds.common.metrics.platform.Snapshot.SnapshotEntry; import com.swirlds.metrics.api.Counter; +import edu.umd.cs.findbugs.annotations.NonNull; import java.util.List; import java.util.concurrent.atomic.LongAdder; @@ -40,6 +41,7 @@ public DefaultCounter(final Counter.Config config) { /** * {@inheritDoc} */ + @NonNull @Override public List takeSnapshot() { return List.of(new SnapshotEntry(VALUE, get())); diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultDoubleAccumulator.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultDoubleAccumulator.java index 3d504cf6c5d9..ec78040c7afb 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultDoubleAccumulator.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultDoubleAccumulator.java @@ -32,9 +32,9 @@ */ public class DefaultDoubleAccumulator extends DefaultMetric implements DoubleAccumulator { - private final AtomicDouble container; - private final DoubleBinaryOperator accumulator; - private final DoubleSupplier initializer; + private final @NonNull AtomicDouble container; + private final @NonNull DoubleBinaryOperator accumulator; + private final @NonNull DoubleSupplier initializer; public DefaultDoubleAccumulator(@NonNull final Config config) { super(config); @@ -58,6 +58,7 @@ public double getInitialValue() { * {@inheritDoc} */ @Override + @NonNull public List takeSnapshot() { return List.of(new SnapshotEntry(VALUE, container.getAndSet(initializer.getAsDouble()))); } diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultDoubleGauge.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultDoubleGauge.java index 6b259ff06a04..52b2cdda9e39 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultDoubleGauge.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultDoubleGauge.java @@ -22,6 +22,7 @@ import com.swirlds.common.metrics.platform.Snapshot.SnapshotEntry; import com.swirlds.common.threading.atomic.AtomicDouble; import com.swirlds.metrics.api.DoubleGauge; +import edu.umd.cs.findbugs.annotations.NonNull; import java.util.List; /** @@ -39,6 +40,7 @@ public DefaultDoubleGauge(final DoubleGauge.Config config) { /** * {@inheritDoc} */ + @NonNull @Override public List takeSnapshot() { return List.of(new SnapshotEntry(VALUE, get())); diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultDurationGauge.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultDurationGauge.java index 4d5b27038c81..dfc26f154f55 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultDurationGauge.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultDurationGauge.java @@ -19,6 +19,7 @@ import static com.swirlds.metrics.api.Metric.ValueType.VALUE; import com.swirlds.common.metrics.DurationGauge; +import edu.umd.cs.findbugs.annotations.NonNull; import java.time.Duration; import java.time.temporal.ChronoUnit; import java.util.List; @@ -40,6 +41,7 @@ public DefaultDurationGauge(final DurationGauge.Config config) { /** * {@inheritDoc} */ + @NonNull @Override public List takeSnapshot() { return List.of(new Snapshot.SnapshotEntry(VALUE, get())); diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultFunctionGauge.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultFunctionGauge.java index b6e2bc7568df..be70cda11c9e 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultFunctionGauge.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultFunctionGauge.java @@ -22,6 +22,7 @@ import com.swirlds.common.metrics.FunctionGauge; import com.swirlds.common.metrics.platform.Snapshot.SnapshotEntry; import com.swirlds.metrics.api.MetricConfig; +import edu.umd.cs.findbugs.annotations.NonNull; import java.util.List; import java.util.function.Supplier; @@ -42,6 +43,7 @@ public DefaultFunctionGauge(final FunctionGauge.Config config) { /** * {@inheritDoc} */ + @NonNull @Override public DataType getDataType() { return dataType; @@ -50,6 +52,7 @@ public DataType getDataType() { /** * {@inheritDoc} */ + @NonNull @Override public List takeSnapshot() { return List.of(new SnapshotEntry(VALUE, get())); diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultIntegerAccumulator.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultIntegerAccumulator.java index 8c306ecdd458..da7e81f64b61 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultIntegerAccumulator.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultIntegerAccumulator.java @@ -21,6 +21,7 @@ import com.swirlds.base.utility.ToStringBuilder; import com.swirlds.common.metrics.platform.Snapshot.SnapshotEntry; import com.swirlds.metrics.api.IntegerAccumulator; +import edu.umd.cs.findbugs.annotations.NonNull; import java.util.List; import java.util.concurrent.atomic.AtomicInteger; import java.util.function.IntBinaryOperator; @@ -54,6 +55,7 @@ public int getInitialValue() { /** * {@inheritDoc} */ + @NonNull @Override public List takeSnapshot() { return List.of(new SnapshotEntry(VALUE, container.getAndSet(initializer.getAsInt()))); diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultIntegerGauge.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultIntegerGauge.java index a6a379a71b2a..d06189eac45c 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultIntegerGauge.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultIntegerGauge.java @@ -21,6 +21,7 @@ import com.swirlds.base.utility.ToStringBuilder; import com.swirlds.common.metrics.platform.Snapshot.SnapshotEntry; import com.swirlds.metrics.api.IntegerGauge; +import edu.umd.cs.findbugs.annotations.NonNull; import java.util.List; import java.util.concurrent.atomic.AtomicInteger; @@ -39,6 +40,7 @@ public DefaultIntegerGauge(final IntegerGauge.Config config) { /** * {@inheritDoc} */ + @NonNull @Override public List takeSnapshot() { return List.of(new SnapshotEntry(VALUE, get())); diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultIntegerPairAccumulator.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultIntegerPairAccumulator.java index 2fd40e5a6f91..bd84d7208cee 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultIntegerPairAccumulator.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultIntegerPairAccumulator.java @@ -23,6 +23,7 @@ import com.swirlds.common.metrics.platform.Snapshot.SnapshotEntry; import com.swirlds.common.threading.atomic.AtomicIntPair; import com.swirlds.metrics.api.MetricConfig; +import edu.umd.cs.findbugs.annotations.NonNull; import java.util.List; import java.util.function.BiFunction; import java.util.function.IntSupplier; @@ -52,6 +53,7 @@ public DefaultIntegerPairAccumulator(final Config config) { /** * {@inheritDoc} */ + @NonNull @Override public DataType getDataType() { return dataType; @@ -60,6 +62,7 @@ public DataType getDataType() { /** * {@inheritDoc} */ + @NonNull @Override public List takeSnapshot() { final T result = @@ -70,6 +73,7 @@ public List takeSnapshot() { /** * {@inheritDoc} */ + @NonNull @Override public T get() { return container.compute(resultFunction); diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultLongAccumulator.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultLongAccumulator.java index 348f43bc57d0..66e37bd4b725 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultLongAccumulator.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultLongAccumulator.java @@ -21,6 +21,7 @@ import com.swirlds.base.utility.ToStringBuilder; import com.swirlds.common.metrics.platform.Snapshot.SnapshotEntry; import com.swirlds.metrics.api.LongAccumulator; +import edu.umd.cs.findbugs.annotations.NonNull; import java.util.List; import java.util.concurrent.atomic.AtomicLong; import java.util.function.LongBinaryOperator; @@ -56,6 +57,7 @@ public long getInitialValue() { /** * {@inheritDoc} */ + @NonNull @Override public List takeSnapshot() { return List.of(new SnapshotEntry(VALUE, container.getAndSet(initializer.getAsLong()))); diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultLongGauge.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultLongGauge.java index 869de86e1ccc..e0cfd48b62ff 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultLongGauge.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultLongGauge.java @@ -21,6 +21,7 @@ import com.swirlds.base.utility.ToStringBuilder; import com.swirlds.common.metrics.platform.Snapshot.SnapshotEntry; import com.swirlds.metrics.api.LongGauge; +import edu.umd.cs.findbugs.annotations.NonNull; import java.util.List; import java.util.concurrent.atomic.AtomicLong; @@ -39,6 +40,7 @@ public DefaultLongGauge(final Config config) { /** * {@inheritDoc} */ + @NonNull @Override public List takeSnapshot() { return List.of(new SnapshotEntry(VALUE, get())); diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultMetric.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultMetric.java index 1aa7c664a75b..821660ead4c1 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultMetric.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultMetric.java @@ -22,6 +22,8 @@ import com.swirlds.common.metrics.statistics.StatsBuffered; import com.swirlds.metrics.api.Metric; import com.swirlds.metrics.api.MetricConfig; +import edu.umd.cs.findbugs.annotations.NonNull; +import edu.umd.cs.findbugs.annotations.Nullable; import java.util.List; import java.util.Objects; @@ -48,6 +50,7 @@ public abstract class DefaultMetric implements Metric, PlatformMetric { /** * {@inheritDoc} */ + @NonNull @Override public String getCategory() { return category; @@ -56,6 +59,7 @@ public String getCategory() { /** * {@inheritDoc} */ + @NonNull @Override public String getName() { return name; @@ -65,11 +69,13 @@ public String getName() { * {@inheritDoc} */ @Override + @NonNull public String getDescription() { return description; } @Override + @NonNull public String getUnit() { return unit; } @@ -78,6 +84,7 @@ public String getUnit() { * {@inheritDoc} */ @Override + @NonNull public String getFormat() { return format; } @@ -89,7 +96,7 @@ public String getFormat() { * * @return the list of {@code ValueTypes} with their current values */ - public abstract List takeSnapshot(); + public abstract @NonNull List takeSnapshot(); /** * {@inheritDoc} @@ -102,6 +109,7 @@ public void reset() { /** * {@inheritDoc} */ + @Nullable @SuppressWarnings("removal") @Override public StatsBuffered getStatsBuffered() { diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultMetrics.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultMetrics.java index 2f096664c24b..214684d4016e 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultMetrics.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultMetrics.java @@ -26,6 +26,8 @@ import com.swirlds.metrics.api.Metric; import com.swirlds.metrics.api.MetricConfig; import com.swirlds.metrics.api.Metrics; +import edu.umd.cs.findbugs.annotations.NonNull; +import edu.umd.cs.findbugs.annotations.Nullable; import java.util.Collection; import java.util.Collections; import java.util.Map; @@ -50,57 +52,52 @@ public class DefaultMetrics implements PlatformMetrics { public static final int EXCEPTION_RATE_THRESHOLD = 10; // A reference to the NodeId of the current node - private final NodeId selfId; + private final @Nullable NodeId selfId; // The MetricKeyRegistry ensures that no two conflicting metrics with the same key exist - private final MetricKeyRegistry metricKeyRegistry; + private final @NonNull MetricKeyRegistry metricKeyRegistry; // A map of metric-keys to metrics - private final NavigableMap metricMap = new ConcurrentSkipListMap<>(); + private final @NonNull NavigableMap metricMap = new ConcurrentSkipListMap<>(); // A read-only view of all registered metrics - private final Collection metricsView = Collections.unmodifiableCollection(metricMap.values()); + private final @NonNull Collection metricsView = Collections.unmodifiableCollection(metricMap.values()); // A map of all global metrics in the system (only used if this instance maintains platform metrics - private final Map globalMetricKeys = new ConcurrentHashMap<>(); + private final @NonNull Map globalMetricKeys = new ConcurrentHashMap<>(); // Factory that creates specific implementation of Metric - private final PlatformMetricsFactory factory; + private final @NonNull PlatformMetricsFactory factory; // Helper-class that implements the Observer-pattern for MetricsEvents - private final MetricsEventBus eventBus; + private final @NonNull MetricsEventBus eventBus; // Helper class that maintains a list of all metrics, which need to be updated in regular intervals - private final MetricsUpdateService updateService; + private final @Nullable MetricsUpdateService updateService; /** * Constructor of {@code DefaultMetrics} * - * @param selfId - * the {@link NodeId} of the platform, {@code null} if these are the global metrics - * @param metricKeyRegistry - * the {@link MetricKeyRegistry} that ensures no conflicting metrics are registered - * @param executor - * the {@link ScheduledExecutorService} that will be used by this {@code DefaultMetrics} - * @param factory - * the {@link PlatformMetricsFactory} that will be used to create new instances of {@link Metric} - * @param metricsConfig - * the {@link MetricsConfig} for metrics configuration + * @param selfId the {@link NodeId} of the platform, {@code null} if these are the global metrics + * @param metricKeyRegistry the {@link MetricKeyRegistry} that ensures no conflicting metrics are registered + * @param executor the {@link ScheduledExecutorService} that will be used by this {@code DefaultMetrics} + * @param factory the {@link PlatformMetricsFactory} that will be used to create new instances of + * {@link Metric} + * @param metricsConfig the {@link MetricsConfig} for metrics configuration * @throws NullPointerException if any of the following parameters are {@code null}. - *
      - *
    • {@code metricKeyRegistry}
    • - *
    • {@code executor}
    • - *
    • {@code factory}
    • - *
    • {@code metricsConfig}
    • - *
    - * + *
      + *
    • {@code metricKeyRegistry}
    • + *
    • {@code executor}
    • + *
    • {@code factory}
    • + *
    • {@code metricsConfig}
    • + *
    */ public DefaultMetrics( - final NodeId selfId, - final MetricKeyRegistry metricKeyRegistry, - final ScheduledExecutorService executor, - final PlatformMetricsFactory factory, - final MetricsConfig metricsConfig) { + final @Nullable NodeId selfId, + final @NonNull MetricKeyRegistry metricKeyRegistry, + final @NonNull ScheduledExecutorService executor, + final @NonNull PlatformMetricsFactory factory, + final @NonNull MetricsConfig metricsConfig) { this.selfId = selfId; this.metricKeyRegistry = Objects.requireNonNull(metricKeyRegistry, "metricsKeyRegistry must not be null"); this.factory = Objects.requireNonNull(factory, "factory must not be null"); @@ -124,7 +121,7 @@ public NodeId getNodeId() { * {@inheritDoc} */ @Override - public Metric getMetric(final String category, final String name) { + public Metric getMetric(final @NonNull String category, final @NonNull String name) { Objects.requireNonNull(category, "category must not be null"); Objects.requireNonNull(name, "name must not be null"); return metricMap.get(calculateMetricKey(category, name)); @@ -133,8 +130,9 @@ public Metric getMetric(final String category, final String name) { /** * {@inheritDoc} */ + @NonNull @Override - public Collection findMetricsByCategory(final String category) { + public Collection findMetricsByCategory(final @NonNull String category) { Objects.requireNonNull(category, "category must not be null"); final String start = category + "."; // The character '/' is the successor of '.' in Unicode. We use it to define the first metric-key, @@ -146,6 +144,7 @@ public Collection findMetricsByCategory(final String category) { /** * {@inheritDoc} */ + @NonNull @Override public Collection getAll() { return metricsView; @@ -156,14 +155,13 @@ public Collection getAll() { *

    * A new subscriber will immediately receive ADD-events for all metrics, that are already registered. *

    - * If the list of metrics is modified while a new subscriber is added, it may happen, that the new subscriber - * gets two ADD-events for the same {@code Metric} or a REMOVE-event for a {@code Metric} that was not added before. + * If the list of metrics is modified while a new subscriber is added, it may happen, that the new subscriber gets + * two ADD-events for the same {@code Metric} or a REMOVE-event for a {@code Metric} that was not added before. * - * @param subscriber - * the new {@code subscriber} + * @param subscriber the new {@code subscriber} * @return a {@link Runnable} that, when called, unsubscribes the subscriber */ - public Runnable subscribe(final Consumer subscriber) { + public @NonNull Runnable subscribe(final @NonNull Consumer subscriber) { final Supplier> previousEventsSupplier = () -> metricMap.values().stream().map(metric -> new MetricsEvent(ADDED, selfId, metric)); return eventBus.subscribe(subscriber, previousEventsSupplier); @@ -172,8 +170,9 @@ public Runnable subscribe(final Consumer subscriber) { /** * {@inheritDoc} */ + @NonNull @Override - public T getOrCreate(final MetricConfig config) { + public T getOrCreate(final @NonNull MetricConfig config) { Objects.requireNonNull(config, "config must not be null"); // first we check the happy path, if the metric is already registered @@ -213,7 +212,7 @@ public T getOrCreate(final MetricConfig config) { * {@inheritDoc} */ @Override - public void remove(final String category, final String name) { + public void remove(final @NonNull String category, final @NonNull String name) { Objects.requireNonNull(category, "category must not be null"); Objects.requireNonNull(name, "name must not be null"); final String metricKey = calculateMetricKey(category, name); @@ -230,7 +229,7 @@ public void remove(final String category, final String name) { * {@inheritDoc} */ @Override - public void remove(final Metric metric) { + public void remove(final @NonNull Metric metric) { Objects.requireNonNull(metric, "metric must not be null"); final String metricKey = calculateMetricKey(metric); throwIfGlobal(metricKey); @@ -246,7 +245,7 @@ public void remove(final Metric metric) { * {@inheritDoc} */ @Override - public void remove(final MetricConfig config) { + public void remove(final @NonNull MetricConfig config) { Objects.requireNonNull(config, "config must not be null"); final String metricKey = calculateMetricKey(config); throwIfGlobal(metricKey); @@ -272,7 +271,7 @@ private void throwIfGlobal(final String metricKey) { * {@inheritDoc} */ @Override - public void addUpdater(final Runnable updater) { + public void addUpdater(final @NonNull Runnable updater) { Objects.requireNonNull(updater, "updater must not be null"); if (updateService != null) { updateService.addUpdater(updater); @@ -283,7 +282,7 @@ public void addUpdater(final Runnable updater) { * {@inheritDoc} */ @Override - public void removeUpdater(final Runnable updater) { + public void removeUpdater(final @NonNull Runnable updater) { Objects.requireNonNull(updater, "updater must not be null"); if (updateService != null) { updateService.removeUpdater(updater); @@ -304,8 +303,7 @@ public void start() { * Shuts down the service * * @return {@code true} if the shutdown finished on time, {@code false} if the call ran into a timeout - * @throws InterruptedException - * if the current thread was interrupted while waiting + * @throws InterruptedException if the current thread was interrupted while waiting */ public boolean shutdown() throws InterruptedException { metricMap.entrySet().stream() @@ -321,13 +319,11 @@ public boolean shutdown() throws InterruptedException { * The generated key is compatible with keys generated by {@link #calculateMetricKey(Metric)} and * {@link #calculateMetricKey(MetricConfig)}. * - * @param category - * the {@code category} used in the key - * @param name - * the {@code name} used in the key + * @param category the {@code category} used in the key + * @param name the {@code name} used in the key * @return the calculated key */ - public static String calculateMetricKey(final String category, final String name) { + public static String calculateMetricKey(final @NonNull String category, final @NonNull String name) { return category + "." + name; } @@ -337,11 +333,10 @@ public static String calculateMetricKey(final String category, final String name * The generated key is compatible with keys generated by {@link #calculateMetricKey(String, String)} and * {@link #calculateMetricKey(MetricConfig)}. * - * @param metric - * the {@code Metric} for which the key should be calculated + * @param metric the {@code Metric} for which the key should be calculated * @return the calculated key */ - public static String calculateMetricKey(final Metric metric) { + public static @NonNull String calculateMetricKey(final @NonNull Metric metric) { return calculateMetricKey(metric.getCategory(), metric.getName()); } @@ -351,21 +346,19 @@ public static String calculateMetricKey(final Metric metric) { * The generated key is compatible with keys generated by {@link #calculateMetricKey(String, String)} and * {@link #calculateMetricKey(Metric)}. * - * @param config - * the {@code MetricConfig} for which the key should be calculated + * @param config the {@code MetricConfig} for which the key should be calculated * @return the calculated key */ - public static String calculateMetricKey(final MetricConfig config) { + public static @NonNull String calculateMetricKey(final @NonNull MetricConfig config) { return calculateMetricKey(config.getCategory(), config.getName()); } /** * Handles new and removed global metrics. * - * @param event - * The {@link MetricsEvent} with information about the change + * @param event The {@link MetricsEvent} with information about the change */ - public void handleGlobalMetrics(final MetricsEvent event) { + public void handleGlobalMetrics(final @NonNull MetricsEvent event) { final Metric metric = event.metric(); final String metricKey = calculateMetricKey(metric); switch (event.type()) { diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultMetricsProvider.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultMetricsProvider.java index ad09d6fc2d82..368a4f0b266c 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultMetricsProvider.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultMetricsProvider.java @@ -32,6 +32,7 @@ import com.swirlds.config.api.Configuration; import com.swirlds.metrics.api.Metrics; import edu.umd.cs.findbugs.annotations.NonNull; +import edu.umd.cs.findbugs.annotations.Nullable; import java.io.IOException; import java.net.InetSocketAddress; import java.nio.file.Path; @@ -50,25 +51,25 @@ public class DefaultMetricsProvider implements PlatformMetricsProvider, Lifecycl private static final Logger logger = LogManager.getLogger(DefaultMetricsProvider.class); - private final PlatformMetricsFactory factory; - private final ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor( + private final @NonNull PlatformMetricsFactory factory; + private final @NonNull ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor( getStaticThreadManager().createThreadFactory("platform-core", "MetricsThread")); - private final MetricKeyRegistry metricKeyRegistry = new MetricKeyRegistry(); - private final DefaultMetrics globalMetrics; - private final ConcurrentMap platformMetrics = new ConcurrentHashMap<>(); - private final PrometheusEndpoint prometheusEndpoint; - private final SnapshotService snapshotService; - private final MetricsConfig metricsConfig; - private final Configuration configuration; + private final @NonNull MetricKeyRegistry metricKeyRegistry = new MetricKeyRegistry(); + private final @NonNull DefaultMetrics globalMetrics; + private final @NonNull ConcurrentMap platformMetrics = new ConcurrentHashMap<>(); + private final @Nullable PrometheusEndpoint prometheusEndpoint; + private final @NonNull SnapshotService snapshotService; + private final @NonNull MetricsConfig metricsConfig; + private final @NonNull Configuration configuration; - private LifecyclePhase lifecyclePhase = LifecyclePhase.NOT_STARTED; + private @NonNull LifecyclePhase lifecyclePhase = LifecyclePhase.NOT_STARTED; /** * Constructor of {@code DefaultMetricsProvider} */ public DefaultMetricsProvider(@NonNull final Configuration configuration) { - this.configuration = Objects.requireNonNull(configuration, "configuration is null"); + this.configuration = Objects.requireNonNull(configuration, "configuration must not be null"); metricsConfig = configuration.getConfigData(MetricsConfig.class); final PrometheusConfig prometheusConfig = configuration.getConfigData(PrometheusConfig.class); @@ -100,16 +101,16 @@ public DefaultMetricsProvider(@NonNull final Configuration configuration) { * {@inheritDoc} */ @Override - public Metrics createGlobalMetrics() { - return globalMetrics; + public @NonNull Metrics createGlobalMetrics() { + return this.globalMetrics; } /** * {@inheritDoc} */ @Override - public Metrics createPlatformMetrics(@NonNull final NodeId nodeId) { - Objects.requireNonNull(nodeId, "selfId is null"); + public @NonNull Metrics createPlatformMetrics(@NonNull final NodeId nodeId) { + Objects.requireNonNull(nodeId, "selfId must not be null"); final DefaultMetrics newMetrics = new DefaultMetrics(nodeId, metricKeyRegistry, executor, factory, metricsConfig); @@ -145,7 +146,7 @@ public Metrics createPlatformMetrics(@NonNull final NodeId nodeId) { } @Override - public LifecyclePhase getLifecyclePhase() { + public @NonNull LifecyclePhase getLifecyclePhase() { return lifecyclePhase; } @@ -171,7 +172,9 @@ public void start() { public void stop() { if (lifecyclePhase == LifecyclePhase.STARTED) { snapshotService.shutdown(); - prometheusEndpoint.close(); + if (prometheusEndpoint != null) { + prometheusEndpoint.close(); + } lifecyclePhase = LifecyclePhase.STOPPED; } } diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultRunningAverageMetric.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultRunningAverageMetric.java index efd1ffc3f5d4..e408df1cae3e 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultRunningAverageMetric.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultRunningAverageMetric.java @@ -21,6 +21,7 @@ import com.swirlds.common.metrics.RunningAverageMetric; import com.swirlds.common.metrics.statistics.StatsBuffered; import com.swirlds.common.metrics.statistics.StatsRunningAverage; +import edu.umd.cs.findbugs.annotations.NonNull; /** * Platform-implementation of {@link RunningAverageMetric} @@ -29,7 +30,7 @@ public class DefaultRunningAverageMetric extends AbstractDistributionMetric implements RunningAverageMetric { @SuppressWarnings("removal") - private final StatsRunningAverage runningAverage; + private final @NonNull StatsRunningAverage runningAverage; public DefaultRunningAverageMetric(final RunningAverageMetric.Config config) { this(config, Time.getCurrent()); @@ -47,6 +48,7 @@ public DefaultRunningAverageMetric(final RunningAverageMetric.Config config, fin /** * {@inheritDoc} */ + @NonNull @SuppressWarnings("removal") @Override public StatsBuffered getStatsBuffered() { diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultSpeedometerMetric.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultSpeedometerMetric.java index 6b9c673d3f34..92e5d74491c8 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultSpeedometerMetric.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultSpeedometerMetric.java @@ -21,6 +21,7 @@ import com.swirlds.common.metrics.SpeedometerMetric; import com.swirlds.common.metrics.statistics.StatsBuffered; import com.swirlds.common.metrics.statistics.StatsSpeedometer; +import edu.umd.cs.findbugs.annotations.NonNull; /** * Platform-implementation of {@link SpeedometerMetric} @@ -46,6 +47,7 @@ public DefaultSpeedometerMetric(final SpeedometerMetric.Config config, final Tim /** * {@inheritDoc} */ + @NonNull @SuppressWarnings("removal") @Override public StatsBuffered getStatsBuffered() { diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultStatEntry.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultStatEntry.java index 0310c796a308..23dcfda3b78e 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultStatEntry.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/DefaultStatEntry.java @@ -26,6 +26,8 @@ import com.swirlds.common.metrics.platform.Snapshot.SnapshotEntry; import com.swirlds.common.metrics.statistics.StatsBuffered; import com.swirlds.metrics.api.MetricConfig; +import edu.umd.cs.findbugs.annotations.NonNull; +import edu.umd.cs.findbugs.annotations.Nullable; import java.util.List; import java.util.function.Consumer; import java.util.function.Supplier; @@ -36,23 +38,23 @@ @SuppressWarnings("removal") public class DefaultStatEntry extends DefaultMetric implements StatEntry { - private final DataType dataType; + private final @NonNull DataType dataType; /** * the statistics object (if it implements StatsBuffered), else null */ - private final StatsBuffered buffered; + private final @Nullable StatsBuffered buffered; /** * a lambda that resets the statistic, using the given half life */ - private final Consumer reset; + private final @Nullable Consumer reset; /** * a lambda that returns the statistic string */ - private final Supplier statsStringSupplier; + private final @NonNull Supplier statsStringSupplier; /** * a lambda that returns the statistic string and resets it at the same time */ - private final Supplier resetStatsStringSupplier; + private final @NonNull Supplier resetStatsStringSupplier; /** * the half life of the statistic, in seconds @@ -76,6 +78,7 @@ public DefaultStatEntry(final StatEntry.Config config) { /** * {@inheritDoc} */ + @NonNull @Override public DataType getDataType() { return dataType; @@ -85,6 +88,7 @@ public DataType getDataType() { * {@inheritDoc} */ @Override + @Nullable public StatsBuffered getBuffered() { return buffered; } @@ -92,6 +96,7 @@ public StatsBuffered getBuffered() { /** * {@inheritDoc} */ + @Nullable @Override public Consumer getReset() { return reset; @@ -100,6 +105,7 @@ public Consumer getReset() { /** * {@inheritDoc} */ + @NonNull @Override public Supplier getStatsStringSupplier() { return statsStringSupplier; @@ -108,6 +114,7 @@ public Supplier getStatsStringSupplier() { /** * {@inheritDoc} */ + @NonNull @Override public Supplier getResetStatsStringSupplier() { return resetStatsStringSupplier; @@ -116,6 +123,7 @@ public Supplier getResetStatsStringSupplier() { /** * {@inheritDoc} */ + @NonNull @Override public List takeSnapshot() { if (buffered == null) { @@ -148,6 +156,7 @@ public void reset() { /** * {@inheritDoc} */ + @Nullable @SuppressWarnings("removal") @Override public StatsBuffered getStatsBuffered() { diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/LegacyCsvWriter.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/LegacyCsvWriter.java index 103e84f4b2a3..daf765d22198 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/LegacyCsvWriter.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/metrics/platform/LegacyCsvWriter.java @@ -50,12 +50,13 @@ import java.util.Objects; import java.util.concurrent.atomic.AtomicBoolean; import java.util.function.Function; +import java.util.stream.Collectors; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; /** - * A {@code LegacyCsvWriter} writes the current CSV-format. It is called "legacy", because - * we plan to replace the CSV-format with something that is closer to the CSV standard. + * A {@code LegacyCsvWriter} writes the current CSV-format. It is called "legacy", because we plan to replace the + * CSV-format with something that is closer to the CSV standard. *

    * The {@code LegacyCsvWriter} can be configured with the following settings: *

    @@ -94,16 +95,14 @@ public class LegacyCsvWriter { new ThresholdLimitingHandler<>(1, Function.identity()); private final AtomicBoolean initialized = new AtomicBoolean(); + private final AtomicBoolean inconsistent = new AtomicBoolean(); /** * Constructor of a {@code LegacyCsvWriter} * - * @param selfId - * {@link NodeId} of the platform for which the CSV-file is written - * @param folderPath - * {@link Path} to the folder where the file should be stored - * @param configuration - * the configuration + * @param selfId {@link NodeId} of the platform for which the CSV-file is written + * @param folderPath {@link Path} to the folder where the file should be stored + * @param configuration the configuration */ public LegacyCsvWriter( @NonNull final NodeId selfId, @NonNull final Path folderPath, @NonNull final Configuration configuration) { @@ -128,11 +127,10 @@ public Path getCsvFilePath() { } /** - * Initializes the file with all known metrics. Once writing metrics to a legacy CSV-file has started, - * it is not possible to add new metrics. + * Initializes the file with all known metrics. Once writing metrics to a legacy CSV-file has started, it is not + * possible to add new metrics. * - * @param snapshots - * {@link List} of {@link Snapshot}s of all known metrics at this point in time + * @param snapshots {@link List} of {@link Snapshot}s of all known metrics at this point in time */ private void init(final Collection snapshots) { logger.info( @@ -234,8 +232,7 @@ private static void addAllSupportedTypes( /** * Handle notification with new snapshots * - * @param snapshotEvent - * the {@link SnapshotEvent} + * @param snapshotEvent the {@link SnapshotEvent} */ public void handleSnapshots(final SnapshotEvent snapshotEvent) { if (snapshotEvent.nodeId() != selfId) { @@ -247,13 +244,19 @@ public void handleSnapshots(final SnapshotEvent snapshotEvent) { init(snapshots); } final Snapshot[] sortedSnapshots = new Snapshot[indexLookup.size()]; + boolean changedAfterInit = indexLookup.size() != snapshots.size(); for (final Snapshot snapshot : snapshots) { final Metric metric = snapshot.metric(); final Integer index = indexLookup.get(Pair.of(metric.getCategory(), metric.getName())); if (index != null) { sortedSnapshots[index] = snapshot; + } else { + changedAfterInit = true; } } + if (changedAfterInit && inconsistent.compareAndSet(false, changedAfterInit)) { + reportInconsistentState(snapshots); + } final ContentBuilder builder = new ContentBuilder(); @@ -279,6 +282,22 @@ public void handleSnapshots(final SnapshotEvent snapshotEvent) { } } + private void reportInconsistentState(final Collection snapshots) { + logger.warn("Some metrics were not exported due to changes after LegacyCsvWriter initialization."); + if (logger.isTraceEnabled()) { + // Collect metrics that will not be exported + final String willNotBeExported = snapshots.stream() + .map(Snapshot::metric) + .map(m -> Pair.of(m.getCategory(), m.getName())) + .filter(p -> !indexLookup.containsKey(p)) + .map(p -> "[" + p.key() + "-" + p.right() + "]") + .collect(Collectors.joining(",")); + logger.trace( + "The following metrics will not be exported because they were not part of the initialization:{}", + willNotBeExported); + } + } + private void addSnapshotData(final ContentBuilder builder, final Snapshot snapshot) { if (showAllEntries(snapshot.metric())) { // add all supported value-types diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/stream/EventStreamManager.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/stream/EventStreamManager.java index e810b3c1599c..4637c30bb5b3 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/stream/EventStreamManager.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/stream/EventStreamManager.java @@ -18,6 +18,7 @@ import static com.swirlds.base.units.UnitConstants.SECONDS_TO_MILLISECONDS; import static com.swirlds.logging.legacy.LogMarker.EVENT_STREAM; +import static com.swirlds.logging.legacy.LogMarker.EXCEPTION; import static com.swirlds.metrics.api.Metrics.INFO_CATEGORY; import com.swirlds.base.time.Time; @@ -47,7 +48,6 @@ * runningHash for consensus Events. */ public class EventStreamManager { - /** use this for all logging, as controlled by the optional data/log4j2.xml file */ private static final Logger logger = LogManager.getLogger(EventStreamManager.class); /** @@ -59,18 +59,21 @@ public class EventStreamManager isLastEventInFreezeCheck; - /** receives consensus events from multiStream, then passes to hashCalculator */ + /** + * receives consensus events from multiStream, then passes to hashCalculator + */ private QueueThreadObjectStream hashQueueThread; /** - * receives consensus events from hashQueueThread, calculates this event's Hash, then passes to - * runningHashCalculator + * receives consensus events from multiStream, then passes to streamFileWriter */ - private HashCalculatorForStream hashCalculator; - /** receives consensus events from multiStream, then passes to streamFileWriter */ private QueueThreadObjectStream writeQueueThread; - /** receives consensus events from writeQueueThread, serializes consensus events to event stream files */ + /** + * receives consensus events from writeQueueThread, serializes consensus events to event stream files + */ private TimestampStreamFileWriter streamFileWriter; - /** initialHash loaded from signed state */ + /** + * initialHash loaded from signed state + */ private Hash initialHash = new ImmutableHash(new byte[DigestType.SHA_384.digestLength()]); /** * When we freeze the platform, the last event to be written to EventStream file is the last event in the freeze @@ -121,9 +124,9 @@ public EventStreamManager( eventStreamDir, eventsLogPeriod * SECONDS_TO_MILLISECONDS, signer, - /** when event streaming is started after reconnect, or at state recovering, - * startWriteAtCompleteWindow should be set to be true; when event streaming is started after - * restart, it should be set to be false */ + // when event streaming is started after reconnect, or at state recovering, + // startWriteAtCompleteWindow should be set to be true; when event streaming is started after + // restart, it should be set to be false false, EventStreamType.getInstance()); @@ -153,7 +156,10 @@ public EventStreamManager( // receives consensus events from hashCalculator, calculates and set runningHash for this event final RunningHashCalculatorForStream runningHashCalculator = new RunningHashCalculatorForStream<>(); - hashCalculator = new HashCalculatorForStream<>(runningHashCalculator); + + // receives consensus events from hashQueueThread, calculates this event's Hash, then passes to + // runningHashCalculator + final HashCalculatorForStream hashCalculator = new HashCalculatorForStream<>(runningHashCalculator); hashQueueThread = new QueueThreadObjectStreamConfiguration(threadManager) .setNodeId(selfId) .setComponent("event-stream") @@ -197,42 +203,61 @@ public void stop() { multiStream.close(); } - public void addEvents(final List events) { - events.forEach(this::addEvent); - } - /** - * receives a consensus event from ConsensusRoundHandler each time, sends it to multiStream which then sends to two - * queueThread for calculating runningHash and writing to file + * Adds a list of events to the event stream. * - * @param event the consensus event to be added + * @param events the list of events to add */ - public void addEvent(final T event) { - if (!freezePeriodStarted) { - multiStream.addObject(event); - if (isLastEventInFreezeCheck.test(event)) { - freezePeriodStarted = true; - logger.info( - EVENT_STREAM.getMarker(), - "ConsensusTimestamp of the last Event to be written into file before restarting: " + "{}", - event::getTimestamp); - multiStream.close(); + public void addEvents(@NonNull final List events) { + events.forEach(event -> { + if (!freezePeriodStarted) { + multiStream.addObject(event); + if (isLastEventInFreezeCheck.test(event)) { + freezePeriodStarted = true; + logger.info( + EVENT_STREAM.getMarker(), + "ConsensusTimestamp of the last Event to be written into file before restarting: {}", + event::getTimestamp); + multiStream.close(); + } + } else { + eventAfterFreezeLogger.warn( + EVENT_STREAM.getMarker(), "Event {} dropped after freezePeriodStarted!", event.getTimestamp()); } - } else { - eventAfterFreezeLogger.warn( - EVENT_STREAM.getMarker(), "Event {} dropped after freezePeriodStarted!", event.getTimestamp()); - } + }); } /** - * sets startWriteAtCompleteWindow: it should be set to be true after reconnect, or at state recovering; it should - * be set to be false at restart + * Updates the running hash with the given event hash. Called when a state is loaded. * - * @param startWriteAtCompleteWindow whether the writer should not write until the first complete window + * @param runningEventHashUpdate the hash to update the running hash with */ - public void setStartWriteAtCompleteWindow(final boolean startWriteAtCompleteWindow) { + public void updateRunningHash(@NonNull final RunningEventHashUpdate runningEventHashUpdate) { + try { + if (hashQueueThread != null) { + hashQueueThread.pause(); + } + if (writeQueueThread != null) { + writeQueueThread.pause(); + } + } catch (final InterruptedException e) { + logger.error(EXCEPTION.getMarker(), "Failed to pause queue threads", e); + Thread.currentThread().interrupt(); + } + if (streamFileWriter != null) { - streamFileWriter.setStartWriteAtCompleteWindow(startWriteAtCompleteWindow); + streamFileWriter.setStartWriteAtCompleteWindow(runningEventHashUpdate.isReconnect()); + } + + initialHash = new Hash(runningEventHashUpdate.runningEventHash()); + logger.info(EVENT_STREAM.getMarker(), "EventStreamManager::updateRunningHash: {}", initialHash); + multiStream.setRunningHash(initialHash); + + if (hashQueueThread != null) { + hashQueueThread.resume(); + } + if (writeQueueThread != null) { + writeQueueThread.resume(); } } @@ -241,11 +266,8 @@ public void setStartWriteAtCompleteWindow(final boolean startWriteAtCompleteWind * * @return current size of working queue for calculating hash and runningHash */ - public int getHashQueueSize() { - if (hashQueueThread == null) { - return 0; - } - return hashQueueThread.getQueue().size(); + private int getHashQueueSize() { + return hashQueueThread == null ? 0 : hashQueueThread.getQueue().size(); } /** @@ -253,63 +275,7 @@ public int getHashQueueSize() { * * @return current size of working queue for writing to event stream files */ - public int getEventStreamingQueueSize() { + private int getEventStreamingQueueSize() { return writeQueueThread == null ? 0 : writeQueueThread.getQueue().size(); } - - /** - * for unit testing - * - * @return current multiStream instance - */ - public MultiStream getMultiStream() { - return multiStream; - } - - /** - * for unit testing - * - * @return current TimestampStreamFileWriter instance - */ - public TimestampStreamFileWriter getStreamFileWriter() { - return streamFileWriter; - } - - /** - * for unit testing - * - * @return current HashCalculatorForStream instance - */ - public HashCalculatorForStream getHashCalculator() { - return hashCalculator; - } - - /** - * for unit testing - * - * @return whether freeze period has started - */ - public boolean getFreezePeriodStarted() { - return freezePeriodStarted; - } - - /** - * for unit testing - * - * @return a copy of initialHash - */ - public Hash getInitialHash() { - return new Hash(initialHash); - } - - /** - * sets initialHash after loading from signed state - * - * @param initialHash current runningHash of all consensus events - */ - public void setInitialHash(final Hash initialHash) { - this.initialHash = initialHash; - logger.info(EVENT_STREAM.getMarker(), "EventStreamManager::setInitialHash: {}", () -> initialHash); - multiStream.setRunningHash(initialHash); - } } diff --git a/platform-sdk/swirlds-platform-core/src/main/java/com/swirlds/platform/dispatch/triggers/flow/StateHashedTrigger.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/stream/RunningEventHashUpdate.java similarity index 53% rename from platform-sdk/swirlds-platform-core/src/main/java/com/swirlds/platform/dispatch/triggers/flow/StateHashedTrigger.java rename to platform-sdk/swirlds-common/src/main/java/com/swirlds/common/stream/RunningEventHashUpdate.java index 71c362c685f3..1620192f3587 100644 --- a/platform-sdk/swirlds-platform-core/src/main/java/com/swirlds/platform/dispatch/triggers/flow/StateHashedTrigger.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/stream/RunningEventHashUpdate.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2016-2024 Hedera Hashgraph, LLC + * Copyright (C) 2024 Hedera Hashgraph, LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,25 +14,15 @@ * limitations under the License. */ -package com.swirlds.platform.dispatch.triggers.flow; +package com.swirlds.common.stream; import com.swirlds.common.crypto.Hash; -import com.swirlds.platform.dispatch.types.TriggerTwo; +import edu.umd.cs.findbugs.annotations.NonNull; /** - * Sends dispatches when a state is hashed. + * A record used to update the running event hash on various components when a new state is loaded + * + * @param runningEventHash the running event hash of the loaded state + * @param isReconnect whether or not this is a reconnect state */ -@FunctionalInterface -public interface StateHashedTrigger extends TriggerTwo { - - /** - * Signal that a state has been fully hashed. - * - * @param round - * the round of the state - * @param hash - * the hash of the state - */ - @Override - void dispatch(Long round, Hash hash); -} +public record RunningEventHashUpdate(@NonNull Hash runningEventHash, boolean isReconnect) {} diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/wiring/counters/BackpressureObjectCounter.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/wiring/counters/BackpressureObjectCounter.java index bfa5e4f771f7..cea374c1c2ce 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/wiring/counters/BackpressureObjectCounter.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/wiring/counters/BackpressureObjectCounter.java @@ -21,6 +21,7 @@ import java.util.Objects; import java.util.concurrent.ForkJoinPool; import java.util.concurrent.ForkJoinPool.ManagedBlocker; +import java.util.concurrent.RejectedExecutionException; import java.util.concurrent.atomic.AtomicLong; /** @@ -72,38 +73,44 @@ public BackpressureObjectCounter( */ @Override public void onRamp() { - final long currentCount = count.get(); - if (currentCount < capacity) { - final boolean success = count.compareAndSet(currentCount, currentCount + 1); - if (success) { - return; + while (true) { + final long currentCount = count.get(); + if (currentCount < capacity) { + final boolean success = count.compareAndSet(currentCount, currentCount + 1); + if (success) { + return; + } } - } - - // Slow case. Capacity wasn't reserved, so we may need to block. - try { - // This will block until capacity is available and the count has been incremented. - // - // This is logically equivalent to the following pseudocode. - // Note that the managed block is thread safe when onRamp() is being called from multiple threads, - // even though this pseudocode is not. - // - // while (count >= capacity) { - // Thread.sleep(sleepNanos); - // } - // count++; - // - // The reason why we use the managedBlock() strategy instead of something simpler has to do with - // the fork join pool paradigm. Unlike traditional thread pools where we have more threads than - // CPUs, blocking (e.g. Thread.sleep()) on a fork join pool may monopolize an entire CPU core. - // The managedBlock() pattern allows us to block while yielding the physical CPU core to other - // tasks. - ForkJoinPool.managedBlock(onRampBlocker); - } catch (final InterruptedException ex) { - // This should be impossible. - Thread.currentThread().interrupt(); - throw new IllegalStateException("Interrupted while blocking on an onRamp() for " + name); + // Slow case. Capacity wasn't reserved, so we may need to block. + + try { + // This will block until capacity is available and the count has been incremented. + // + // This is logically equivalent to the following pseudocode. + // Note that the managed block is thread safe when onRamp() is being called from multiple threads, + // even though this pseudocode is not. + // + // while (count >= capacity) { + // Thread.sleep(sleepNanos); + // } + // count++; + // + // The reason why we use the managedBlock() strategy instead of something simpler has to do with + // the fork join pool paradigm. Unlike traditional thread pools where we have more threads than + // CPUs, blocking (e.g. Thread.sleep()) on a fork join pool may monopolize an entire CPU core. + // The managedBlock() pattern allows us to block while yielding the physical CPU core to other + // tasks. + ForkJoinPool.managedBlock(onRampBlocker); + return; + } catch (final InterruptedException ex) { + // This should be impossible. + Thread.currentThread().interrupt(); + throw new IllegalStateException("Interrupted while blocking on an onRamp() for " + name); + } catch (final RejectedExecutionException ex) { + // We've exhausted our supply of background threads, we have no choice but to busy wait. + Thread.onSpinWait(); + } } } diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/wiring/model/internal/DirectSchedulerChecks.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/wiring/model/internal/DirectSchedulerChecks.java index 269516eee446..f94c9297a386 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/wiring/model/internal/DirectSchedulerChecks.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/wiring/model/internal/DirectSchedulerChecks.java @@ -59,7 +59,7 @@ private DirectSchedulerChecks() {} * Calling into a component A with type * {@link TaskSchedulerType#DIRECT DIRECT} from component B with type * {@link TaskSchedulerType#DIRECT DIRECT} or type - * {@link TaskSchedulerType#DIRECT_STATELESS DIRECT_STATELESS} counts as a call + * {@link TaskSchedulerType#DIRECT_THREADSAFE DIRECT_THREADSAFE} counts as a call * into B from all components calling into component A. * * @@ -81,7 +81,7 @@ public static boolean checkForIllegalDirectSchedulerUse(@NonNull final Collectio for (final ModelVertex vertex : vertices) { final TaskSchedulerType vertexType = vertex.getType(); - if (vertexType == TaskSchedulerType.DIRECT || vertexType == TaskSchedulerType.DIRECT_STATELESS) { + if (vertexType == TaskSchedulerType.DIRECT || vertexType == TaskSchedulerType.DIRECT_THREADSAFE) { // we can ignore direct schedulers at this phase. We care about calls INTO direct schedulers, // not calls OUT OF direct schedulers. continue; @@ -156,7 +156,7 @@ private static Set collectDirectVerticesAccessedByScheduler(@NonNul final TaskSchedulerType destinationType = destination.getType(); if (destinationType != TaskSchedulerType.DIRECT - && destinationType != TaskSchedulerType.DIRECT_STATELESS) { + && destinationType != TaskSchedulerType.DIRECT_THREADSAFE) { // we don't need to traverse edges that lead into non-direct schedulers continue; } diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/wiring/model/internal/StandardVertex.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/wiring/model/internal/StandardVertex.java index 0e73b37be162..a01d32a83f50 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/wiring/model/internal/StandardVertex.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/wiring/model/internal/StandardVertex.java @@ -171,7 +171,7 @@ private String generateStyle() { case GROUP -> GROUP_COLOR; case SCHEDULER -> switch (type) { case DIRECT -> DIRECT_SCHEDULER_COLOR; - case DIRECT_STATELESS -> DIRECT_SCHEDULER_COLOR; + case DIRECT_THREADSAFE -> DIRECT_SCHEDULER_COLOR; default -> SCHEDULER_COLOR; }; }; @@ -200,7 +200,7 @@ public void render( switch (type) { case CONCURRENT -> sb.append("[["); case DIRECT -> sb.append("[/"); - case DIRECT_STATELESS -> sb.append("{{"); + case DIRECT_THREADSAFE -> sb.append("{{"); default -> sb.append("["); } } @@ -222,7 +222,7 @@ public void render( switch (type) { case CONCURRENT -> sb.append("]]"); case DIRECT -> sb.append("/]"); - case DIRECT_STATELESS -> sb.append("}}"); + case DIRECT_THREADSAFE -> sb.append("}}"); default -> sb.append("]"); } } diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/wiring/model/internal/WiringFlowchart.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/wiring/model/internal/WiringFlowchart.java index 2bc3481922d1..f02698efbd65 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/wiring/model/internal/WiringFlowchart.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/wiring/model/internal/WiringFlowchart.java @@ -20,7 +20,7 @@ import static com.swirlds.common.wiring.model.internal.ModelVertexMetaType.SUBSTITUTION; import static com.swirlds.common.wiring.schedulers.builders.TaskSchedulerType.CONCURRENT; import static com.swirlds.common.wiring.schedulers.builders.TaskSchedulerType.DIRECT; -import static com.swirlds.common.wiring.schedulers.builders.TaskSchedulerType.DIRECT_STATELESS; +import static com.swirlds.common.wiring.schedulers.builders.TaskSchedulerType.DIRECT_THREADSAFE; import static com.swirlds.common.wiring.schedulers.builders.TaskSchedulerType.SEQUENTIAL; import static com.swirlds.common.wiring.schedulers.builders.TaskSchedulerType.SEQUENTIAL_THREAD; @@ -316,7 +316,7 @@ private TaskSchedulerType getSchedulerTypeOfCollapsedGroup(@NonNull final List *
  • Unscheduled: the task has not been passed to the scheduler yet (e.g. via {@link InputWire#put(Object)})
  • *
  • Scheduled but not processed: the task has been passed to the scheduler but the corresponding handler has not - * yet returned (either because the handler has not yet been called or because the handler has been called but hasn't finished - * yet)
  • + * yet returned (either because the handler has not yet been called or because the handler has been called but hasn't + * finished yet) *
  • Processed: the corresponding handle method for the task has been called and has returned.
  • * * @@ -56,6 +59,12 @@ public abstract class TaskScheduler extends TaskSchedulerInput { private final StandardOutputWire primaryOutputWire; private final boolean insertionIsBlocking; + /** + * Handles squelching for this task scheduler. Will be a valid object whether or not squelching is enabled for this + * task scheduler. + */ + private final Squelcher squelcher; + /** * Constructor. * @@ -63,6 +72,7 @@ public abstract class TaskScheduler extends TaskSchedulerInput { * @param name the name of the task scheduler * @param type the type of task scheduler * @param flushEnabled if true, then {@link #flush()} will be enabled, otherwise it will throw. + * @param squelchingEnabled if true, then squelching will be enabled, otherwise trying to squelch will throw. * @param insertionIsBlocking when data is inserted into this task scheduler, will it block until capacity is * available? */ @@ -71,12 +81,20 @@ protected TaskScheduler( @NonNull final String name, @NonNull final TaskSchedulerType type, final boolean flushEnabled, + final boolean squelchingEnabled, final boolean insertionIsBlocking) { this.model = Objects.requireNonNull(model); this.name = Objects.requireNonNull(name); this.type = Objects.requireNonNull(type); this.flushEnabled = flushEnabled; + + if (squelchingEnabled) { + this.squelcher = new DefaultSquelcher(); + } else { + this.squelcher = new ThrowingSquelcher(); + } + primaryOutputWire = new StandardOutputWire<>(model, name); this.insertionIsBlocking = insertionIsBlocking; } @@ -218,7 +236,8 @@ public final TaskScheduler cast() { * tasks. Schedulers do not track the number of unprocessed tasks by default. This method will always return * {@link ObjectCounter#COUNT_UNDEFINED} unless one of the following is true: *
      - *
    • {@link TaskSchedulerMetricsBuilder#withUnhandledTaskMetricEnabled(boolean)} is called with the value true
    • + *
    • {@link TaskSchedulerMetricsBuilder#withUnhandledTaskMetricEnabled(boolean)} is called with the value + * true
    • *
    • {@link TaskSchedulerBuilder#withUnhandledTaskCapacity(long)} is passed a positive value
    • *
    • {@link TaskSchedulerBuilder#withOnRamp(ObjectCounter)} is passed a counter that is not a no op counter
    • *
    @@ -251,6 +270,35 @@ protected final void throwIfFlushDisabled() { } } + /** + * Start squelching, and continue doing so until {@link #stopSquelching()} is called. + * + * @throws UnsupportedOperationException if squelching is not supported by this scheduler + * @throws IllegalStateException if scheduler is already squelching + */ + public void startSquelching() { + squelcher.startSquelching(); + } + + /** + * Stop squelching. + * + * @throws UnsupportedOperationException if squelching is not supported by this scheduler + * @throws IllegalStateException if scheduler is not currently squelching + */ + public void stopSquelching() { + squelcher.stopSquelching(); + } + + /** + * Get whether or not this task scheduler is currently squelching. + * + * @return true if this task scheduler is currently squelching, false otherwise + */ + public final boolean currentlySquelching() { + return squelcher.shouldSquelch(); + } + /** * {@inheritDoc} */ diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/wiring/schedulers/builders/TaskSchedulerBuilder.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/wiring/schedulers/builders/TaskSchedulerBuilder.java index cb2066473378..0b20e22100a8 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/wiring/schedulers/builders/TaskSchedulerBuilder.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/wiring/schedulers/builders/TaskSchedulerBuilder.java @@ -59,6 +59,7 @@ public class TaskSchedulerBuilder { private TaskSchedulerMetricsBuilder metricsBuilder; private long unhandledTaskCapacity = UNLIMITED_CAPACITY; private boolean flushingEnabled = false; + private boolean squelchingEnabled = false; private boolean externalBackPressure = false; private ObjectCounter onRamp; private ObjectCounter offRamp; @@ -84,8 +85,8 @@ public TaskSchedulerBuilder( // The reason why wire names have a restricted character set is because downstream consumers of metrics // are very fussy about what characters are allowed in metric names. if (!name.matches("^[a-zA-Z0-9_]*$")) { - throw new IllegalArgumentException( - "Task Schedulers name must only contain alphanumeric characters and underscores"); + throw new IllegalArgumentException("Illegal name: \"" + name + + "\". Task Schedulers name must only contain alphanumeric characters and underscores"); } if (name.isEmpty()) { throw new IllegalArgumentException("TaskScheduler name must not be empty"); @@ -131,6 +132,22 @@ public TaskSchedulerBuilder withFlushingEnabled(final boolean requireFlushCap return this; } + /** + * Set whether the task scheduler should enable squelching. Default false. Enabling squelching may add overhead. + *

    + * IMPORTANT: you must not enable squelching if the scheduler handles tasks that require special cleanup. If + * squelching is enabled and activated, all existing and incoming tasks will be unceremoniously dumped into the + * void! + * + * @param squelchingEnabled true if the scheduler should enable squelching, false otherwise. + * @return this + */ + @NonNull + public TaskSchedulerBuilder withSquelchingEnabled(final boolean squelchingEnabled) { + this.squelchingEnabled = squelchingEnabled; + return this; + } + /** * Specify an object counter that should be notified when data is added to the task scheduler. This is useful for * implementing backpressure that spans multiple schedulers. @@ -340,6 +357,7 @@ public TaskScheduler build() { counters.onRamp(), counters.offRamp(), flushingEnabled, + squelchingEnabled, insertionIsBlocking); case SEQUENTIAL -> new SequentialTaskScheduler<>( model, @@ -350,6 +368,7 @@ public TaskScheduler build() { counters.offRamp(), busyFractionTimer, flushingEnabled, + squelchingEnabled, insertionIsBlocking); case SEQUENTIAL_THREAD -> new SequentialThreadTaskScheduler<>( model, @@ -360,6 +379,7 @@ public TaskScheduler build() { busyFractionTimer, sleepDuration, flushingEnabled, + squelchingEnabled, insertionIsBlocking); case DIRECT -> new DirectTaskScheduler<>( model, @@ -367,14 +387,16 @@ public TaskScheduler build() { buildUncaughtExceptionHandler(), counters.onRamp(), counters.offRamp(), + squelchingEnabled, busyFractionTimer, false); - case DIRECT_STATELESS -> new DirectTaskScheduler<>( + case DIRECT_THREADSAFE -> new DirectTaskScheduler<>( model, name, buildUncaughtExceptionHandler(), counters.onRamp(), counters.offRamp(), + squelchingEnabled, busyFractionTimer, true); }; diff --git a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/wiring/schedulers/builders/TaskSchedulerType.java b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/wiring/schedulers/builders/TaskSchedulerType.java index e1033d2073ae..1c87ab825f77 100644 --- a/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/wiring/schedulers/builders/TaskSchedulerType.java +++ b/platform-sdk/swirlds-common/src/main/java/com/swirlds/common/wiring/schedulers/builders/TaskSchedulerType.java @@ -53,7 +53,7 @@ public enum TaskSchedulerType { *