diff --git a/.github/workflows/manual-broadcast.yaml b/.github/workflows/manual-broadcast.yaml index 3601df07..86753512 100644 --- a/.github/workflows/manual-broadcast.yaml +++ b/.github/workflows/manual-broadcast.yaml @@ -37,14 +37,14 @@ on: - 'hyperevm' # Dispatches an operational broadcast script from `script/` and sends the # resulting transactions from the CI deploy key (`secrets.PRIVATE_KEY`, -# the same secret `manual-sol-artifacts.yaml` uses for Zoltu impl deploys). +# the same secret `manual-sol-artifacts-0-1-1.yaml` uses for Zoltu impl deploys). # # When to use this dispatcher vs. run-script.yaml: # - `run-script.yaml` is for scripts that emit off-chain artifacts # (Safe Tx Builder JSON) for a Safe multisig to sign later. Runs # without `--broadcast`. # - THIS workflow is for scripts that broadcast on-chain directly from -# the deploy key — same key that runs `manual-sol-artifacts.yaml` for +# the deploy key — same key that runs `manual-sol-artifacts-0-1-1.yaml` for # impl deploys. Runs with `--broadcast`. # # The `slow` flag makes forge wait for each tx to confirm before sending @@ -84,7 +84,7 @@ jobs: SCRIPT: ${{ inputs.script }} NETWORK: ${{ inputs.network }} # PRIVATE_KEY is only available inside this step — matching - # `manual-sol-artifacts.yaml`. The workflow file itself does not + # `manual-sol-artifacts-0-1-1.yaml`. The workflow file itself does not # persist it anywhere else. PRIVATE_KEY: ${{ secrets.PRIVATE_KEY }} run: | diff --git a/.github/workflows/manual-sol-artifacts.yaml b/.github/workflows/manual-sol-artifacts.yaml deleted file mode 100644 index ab2cb8a7..00000000 --- a/.github/workflows/manual-sol-artifacts.yaml +++ /dev/null @@ -1,60 +0,0 @@ -name: Manual sol artifacts -on: - workflow_dispatch: - inputs: - suite: - description: 'Suite to deploy (one contract per suite, deploy in listed order)' - required: true - type: choice - options: - # =================================================================== - # One suite per contract. Suite ids carry no version — the deploy - # script handles versioning and always deploys the current source, - # asserting the current release's pins. Deploy in the listed order; - # later entries reference earlier ones via dependency pointers so an - # out-of-order run trips the dep-codehash check. - # =================================================================== - # 1. Implementations and beacons with no on-chain dependencies, plus - # the wrapped-token-vault chain (vault -> beacon -> beacon-set - # deployer) and the two authorizers. - - stox-receipt - - stox-wrapped-token-vault - - stox-wrapped-token-vault-beacon - - stox-wrapped-token-vault-beacon-set-deployer - - stox-offchain-asset-receipt-vault-authorizer-v1 - - stox-offchain-asset-receipt-vault-payment-mint-authorizer-v1 - # 2. Corporate-actions facet (no on-chain dependencies — the - # receipt-vault impl hardcodes its address but doesn't link to it - # at deploy time). - - stox-corporate-actions-facet - # 3. Receipt vault (no on-chain dependencies). - - stox-receipt-vault - # 4. OARV beacon-set deployer (depends on the receipt and - # receipt-vault impls above). - - stox-offchain-asset-receipt-vault-beacon-set-deployer - # 5. Unified deployer (depends on the two set-deployers above). - - stox-unified-deployer - # 6. Orchestrator (no on-chain dependencies) and its beacon-set - # deployer (depends on the orchestrator impl). - - st0x-orchestrator - - st0x-orchestrator-beacon-set-deployer -jobs: - deploy: - uses: rainlanguage/rainix/.github/workflows/rainix-manual-sol-artifacts.yaml@main - with: - suite: ${{ inputs.suite }} - # The reusable workflow lives in a different org (rainlanguage), so - # `secrets: inherit` does not forward this repo's secrets to it — they must - # be passed explicitly. Only the secrets this repo actually holds are - # listed; the reusable workflow declares the full set as optional and falls - # back to `|| vars.* || ''` for any it isn't given. - secrets: - PRIVATE_KEY: ${{ secrets.PRIVATE_KEY }} - RPC_URL_ARBITRUM_FORK: ${{ secrets.RPC_URL_ARBITRUM_FORK }} - RPC_URL_BASE_FORK: ${{ secrets.RPC_URL_BASE_FORK }} - RPC_URL_BASE_SEPOLIA_FORK: ${{ secrets.RPC_URL_BASE_SEPOLIA_FORK }} - RPC_URL_ETHEREUM_FORK: ${{ secrets.RPC_URL_ETHEREUM_FORK }} - RPC_URL_FLARE_FORK: ${{ secrets.RPC_URL_FLARE_FORK }} - RPC_URL_POLYGON_FORK: ${{ secrets.RPC_URL_POLYGON_FORK }} - CI_DEPLOY_BASE_ETHERSCAN_API_KEY: ${{ secrets.CI_DEPLOY_BASE_ETHERSCAN_API_KEY }} - CI_DEPLOY_ETHEREUM_ETHERSCAN_API_KEY: ${{ secrets.CI_DEPLOY_ETHEREUM_ETHERSCAN_API_KEY }} diff --git a/.github/workflows/package-release.yaml b/.github/workflows/package-release.yaml index 0a6038a0..c6711c2d 100644 --- a/.github/workflows/package-release.yaml +++ b/.github/workflows/package-release.yaml @@ -1,37 +1,45 @@ name: Package Release on: push: - branches: - - main + tags: + - sol-v* jobs: release: - # rainix-autopublish's job requests contents: write (to push the version- - # bump commit + tag) and id-token: write. This repo's default workflow-token - # permission is read-only, so without granting these here the reusable's - # request exceeds the caller and the run fails at startup. Grant exactly the - # scopes the reusable needs, per workflow, rather than flipping the whole - # repo default to write. + # rainix-tag-release verifies the tag, publishes to soldeer, freezes the + # candidate snapshot into a numbered release dir, and commits it back — so it + # needs contents: write (push the release commit). This repo's default + # workflow-token permission is read-only, so grant that scope here or the + # reusable's request exceeds the caller and the run fails at startup. No + # id-token: nothing in the reusable uses OIDC (Soldeer publishes via + # SOLDEER_API_TOKEN). permissions: contents: write - id-token: write - uses: rainlanguage/rainix/.github/workflows/rainix-autopublish.yaml@main + # A DEPLOY repo is on the tag-release lifecycle, not autopublish. A release + # is cut by pushing a `sol-vX.Y.Z` tag (never on merge); deployment is a + # separate manual step. `[package].version` is the LAST released version and + # moves only at release, in lockstep with the frozen snapshot the tag cuts. + # This is the counterpart to library repos, which use rainix-autopublish and + # bump a next-version slot on every merge. Mirrors the rain.factory.deploy + # caller. `cut-release.sh` freezes `src/generated/candidate/` into + # `src/generated//` (see the script) then regenerates the libs. + uses: rainlanguage/rainix/.github/workflows/rainix-tag-release.yaml@main with: - # `foundry.toml` version is the NEXT (in-development) release (see #244). On - # merge, publish that version and bump to the next — the bump no longer - # generates artifacts (rainix#267). A version's deploy-pin snapshot is built - # by the PR that changes the bytecode: run - # `forge script ./script/BuildPointers.sol` (after `forge soldeer install`) - # and commit the new `src/generated//` snapshot + regenerated deploy - # libs. The LibProdDeploy fork/deploy tests fail if a snapshot is stale, and - # the rainix append-only check (rainix#268) rejects any change to a snapshot - # already on main, so snapshots stay frozen once merged. soldeer-package: st0x-deploy - # Secrets are passed explicitly (not `inherit`), mirroring this repo's other - # cross-org rainix callers (e.g. rainix-sol.yaml). Only SOLDEER_API_TOKEN is - # required for the publish; the rest are optional and fall back cleanly when - # empty (bot git identity; GITHUB_TOKEN push, since main is unprotected). + tag-prefix: sol-v + snapshot-generate-cmd: bash script/cut-release.sh + # Secrets passed explicitly (not `inherit`), mirroring this repo's other + # cross-org rainix callers — exactly the set rainix-tag-release declares. The + # RPC_URL_*_FORK secrets are what its verify step forks with; omitting them + # reintroduces the "env var not found" verify failure. secrets: SOLDEER_API_TOKEN: ${{ secrets.SOLDEER_API_TOKEN }} PUBLISH_PRIVATE_KEY: ${{ secrets.PUBLISH_PRIVATE_KEY }} CI_GIT_EMAIL: ${{ secrets.CI_GIT_EMAIL }} CI_GIT_USER: ${{ secrets.CI_GIT_USER }} + RPC_URL_ARBITRUM_FORK: ${{ secrets.RPC_URL_ARBITRUM_FORK }} + RPC_URL_BASE_FORK: ${{ secrets.RPC_URL_BASE_FORK }} + RPC_URL_BASE_SEPOLIA_FORK: ${{ secrets.RPC_URL_BASE_SEPOLIA_FORK }} + RPC_URL_ETHEREUM_FORK: ${{ secrets.RPC_URL_ETHEREUM_FORK }} + RPC_URL_FLARE_FORK: ${{ secrets.RPC_URL_FLARE_FORK }} + RPC_URL_POLYGON_FORK: ${{ secrets.RPC_URL_POLYGON_FORK }} + CACHIX_AUTH_TOKEN: ${{ secrets.CACHIX_AUTH_TOKEN }} diff --git a/CLAUDE.md b/CLAUDE.md index d58a6b50..51c90053 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -283,36 +283,28 @@ library. When making changes to contract source: ## Deployment -`script/Deploy.sol` dispatches based on `DEPLOYMENT_SUITE` env var. One contract -per suite to avoid Zoltu factory nonce issues. Every suite targets the -`LibProdDeployV4` (rain.vats 0.1.6) pins and broadcasts to every network in -`LibStoxDeployNetworks.supportedNetworks()` (Base + Ethereum mainnet) — the -Zoltu deploy is idempotent per network, so a suite run skips networks that -already carry the artifact and deploys the identical bytecode to the ones that -don't. The frozen V1/V2 deployments in `LibProdDeployV1` / `LibProdDeployV2` are -an audit trail and are not redeployable from the current source. - -- `stox-receipt-v4` — deploys StoxReceipt -- `stox-receipt-vault-v4` — deploys StoxReceiptVault -- `stox-wrapped-token-vault-v4` — deploys StoxWrappedTokenVault -- `stox-wrapped-token-vault-beacon-v4` — deploys StoxWrappedTokenVaultBeacon - (depends on StoxWrappedTokenVault) -- `stox-wrapped-token-vault-beacon-set-deployer-v4` — deploys - StoxWrappedTokenVaultBeaconSetDeployer (depends on beacon) -- `stox-offchain-asset-receipt-vault-beacon-set-deployer-v4` — deploys - StoxOffchainAssetReceiptVaultBeaconSetDeployer (depends on StoxReceipt, - StoxReceiptVault) -- `stox-unified-deployer-v4` — deploys StoxUnifiedDeployer (depends on both - beacon-set deployers) -- `stox-offchain-asset-receipt-vault-authorizer-v1-v4` — deploys - StoxOffchainAssetReceiptVaultAuthorizerV1 -- `stox-offchain-asset-receipt-vault-payment-mint-authorizer-v1-v4` — deploys - StoxOffchainAssetReceiptVaultPaymentMintAuthorizerV1 -- `stox-corporate-actions-facet-v4` — deploys StoxCorporateActionsFacet - -Manual deployment runs via the GitHub Actions workflow -(`manual-sol-artifacts.yaml`), which broadcasts each suite to every supported -network in one run. +Production deploys run the audited, version-specific script +`script/DeployProdV4_0_1_1.sol` — never the current source. It ships the stored +audited-0.1.1 creation bytecode (`LibProdDeployV4.*_CREATION_CODE_0_1_1`, the +exact bytes the 0.1.1 audit covers) and asserts each contract against its +`_0_1_1` address/codehash pin, so the on-chain result is the audited deployment +regardless of what the current source compiles to. Each dispatch deploys one +contract suite (`DEPLOYMENT_SUITE`, one contract per suite to avoid Zoltu +factory nonce issues) to a single bootstrap network (`DEPLOYMENT_NETWORK` — +Ethereum or HyperEVM), via the `manual-sol-artifacts-0-1-1.yaml` GitHub Actions +workflow; the Zoltu deploy is idempotent per network. Suites are deployed in the +workflow's listed order — later suites reference earlier ones via dependency +pointers, so an out-of-order run trips the dep-codehash check. The orchestrator +(introduced at 0.1.2) is not part of the audited 0.1.1 set. + +The rolling `candidate` snapshot (`src/generated/candidate/`) is NEVER a deploy +target — it exists only so tests exercise the current source and +`testCandidateSelfConsistent` pins source↔snapshot integrity. When a later +version is audited it gets its own frozen numbered snapshot (cut from +`candidate` by a `sol-vX.Y.Z` release tag; see `script/cut-release.sh`) and its +own `script/DeployProdV4_0_1_N.sol`. The frozen V1/V2 deployments in +`LibProdDeployV1` / `LibProdDeployV2` are an audit trail and are not +redeployable from the current source. ## Naming Conventions diff --git a/script/20260619-deploy-v4-authoriser-clone.s.sol b/script/20260619-deploy-v4-authoriser-clone.s.sol index 1c819f66..78ce2b52 100644 --- a/script/20260619-deploy-v4-authoriser-clone.s.sol +++ b/script/20260619-deploy-v4-authoriser-clone.s.sol @@ -98,7 +98,7 @@ error GrantsSliceOutOfRange(uint256 startIndex, uint256 sliceLength, uint256 gra /// key executes them in sequence in one `forge script --broadcast` /// invocation. Dispatched via `.github/workflows/manual-broadcast.yaml`, /// which broadcasts as `secrets.PRIVATE_KEY` — the same CI-held deploy -/// key `manual-sol-artifacts.yaml` uses for Zoltu impl deploys. The Safe +/// key `manual-sol-artifacts-0-1-1.yaml` uses for Zoltu impl deploys. The Safe /// never signs anything for this deploy: the whole clone-configuration /// ceremony collapses into a workflow-dispatch broadcast matching the /// impl-deploy pattern the ops flow already uses. diff --git a/script/BuildPointers.sol b/script/BuildPointers.sol index de679adf..c3642ef4 100644 --- a/script/BuildPointers.sol +++ b/script/BuildPointers.sol @@ -29,19 +29,26 @@ import {ST0xOrchestrator} from "../src/concrete/ST0xOrchestrator.sol"; import {ST0xOrchestratorBeaconSetDeployer} from "../src/concrete/deploy/ST0xOrchestratorBeaconSetDeployer.sol"; contract BuildPointers is Script { - /// @notice The canonical release tag. Read from `foundry.toml` - /// `[package].version` — the single source of truth — with dots converted - /// to underscores for the Solidity constant/dir form (`0.1.3` -> `0_1_3`). - /// Everything version-dependent (the `/` snapshot dir, `DEPLOY_TAG`, - /// the current-release aliases) derives from this. - function deployTag() internal view returns (string memory) { - string memory version = vm.parseTomlString(vm.readFile("foundry.toml"), ".package.version"); - bytes memory b = bytes(version); - bytes memory out = new bytes(b.length); - for (uint256 i = 0; i < b.length; i++) { - out[i] = b[i] == "." ? bytes1("_") : b[i]; - } - return string(out); + /// @notice The rolling "current source" snapshot tag — always `candidate`, + /// never a version number. `src/generated/candidate/` is regenerated from + /// the current source on every run; a numbered snapshot is frozen only when + /// a release tag promotes `candidate` (see `script/cut-release.sh`). Source + /// self-references (`LibProdDeployCurrent`) always resolve to `candidate`, + /// so they track whatever the source currently compiles to, while numbered + /// snapshots (`0_1_1`, …) stay frozen and are never regenerated here. + string constant CANDIDATE_TAG = "candidate"; + + function deployTag() internal pure returns (string memory) { + return CANDIDATE_TAG; + } + + /// @notice The constant-name suffix for a tag dir. Numbered tags use the tag + /// verbatim (`0_1_1`); the rolling `candidate` dir uses `CANDIDATE`, so its + /// generated constants read `STOX_RECEIPT_CANDIDATE` rather than the + /// lowercase dir name. + function tagSuffix(string memory tag) internal pure returns (string memory) { + if (keccak256(bytes(tag)) == keccak256(bytes(CANDIDATE_TAG))) return "CANDIDATE"; + return tag; } function addressConstantString(address addr) internal pure returns (string memory) { @@ -60,10 +67,10 @@ contract BuildPointers is Script { /// `RUNTIME_CODE` constants. /// @param name Must exactly match the contract's Solidity filename (without /// `.sol`), as it determines the generated pointer file path under - /// `src/generated//` — the frozen per-release snapshot for the current - /// `deployTag()` (read from the canonical `foundry.toml` version). Historical - /// tags are never regenerated; a release bump writes a new `/` snapshot - /// beside them. + /// `src/generated//` — the rolling `candidate` snapshot for the + /// current `deployTag()`. Numbered release snapshots are frozen and never + /// regenerated here; a release freezes a copy of `candidate` beside them + /// (see `script/cut-release.sh`). /// @param creationCode The creation bytecode of the contract, typically /// obtained via `type(ContractName).creationCode`. function buildContractPointers(string memory name, bytes memory creationCode) internal { @@ -88,8 +95,8 @@ contract BuildPointers is Script { function run() external { LibRainDeploy.etchZoltuFactory(vm); - // A fresh next-version slot has no `/` dir yet, and `vm.writeFile` - // won't create one. + // Regenerate the rolling `candidate/` snapshot from current source. + // `vm.writeFile` won't create the dir, so ensure it exists first. vm.createDir(string.concat("src/generated/", deployTag()), true); buildContractPointers("StoxCorporateActionsFacet", type(StoxCorporateActionsFacet).creationCode); @@ -215,7 +222,10 @@ contract BuildPointers is Script { } /// @notice A monotonic sort key for an `a_b_c` tag (each component < 1e6). + /// The non-numeric `candidate` tag sorts last (the rolling head after every + /// frozen numbered release). function tagKey(string memory name) internal pure returns (uint256 key) { + if (keccak256(bytes(name)) == keccak256(bytes(CANDIDATE_TAG))) return type(uint256).max; bytes memory b = bytes(name); uint256 num = 0; for (uint256 i = 0; i < b.length; i++) { @@ -239,7 +249,7 @@ contract BuildPointers is Script { for (uint256 i = 0; i < entries.length; i++) { if (!entries[i].isDir) continue; string memory name = baseName(entries[i].path); - if (isTagName(name)) { + if (isTagName(name) || keccak256(bytes(name)) == keccak256(bytes(CANDIDATE_TAG))) { tmp[n] = name; n++; } @@ -278,31 +288,36 @@ contract BuildPointers is Script { pure returns (string memory) { + string memory suffix = tagSuffix(tag); string memory head = - string.concat("import {DEPLOYED_ADDRESS as ", base, "_ADDRESS_", tag, "_GEN, BYTECODE_HASH as ", base); + string.concat("import {DEPLOYED_ADDRESS as ", base, "_ADDRESS_", suffix, "_GEN, BYTECODE_HASH as ", base); string memory mid = string.concat( - "_CODEHASH_", tag, "_GEN, CREATION_CODE as ", base, "_CREATION_", tag, "_GEN, RUNTIME_CODE as ", base + "_CODEHASH_", suffix, "_GEN, CREATION_CODE as ", base, "_CREATION_", suffix, "_GEN, RUNTIME_CODE as ", base ); - string memory tail = string.concat("_RUNTIME_", tag, '_GEN} from "./', tag, "/", name, '.pointers.sol";'); + string memory tail = string.concat("_RUNTIME_", suffix, '_GEN} from "./', tag, "/", name, '.pointers.sol";'); return string.concat(head, mid, tail); } /// @notice Emit the four aliased constants for one (tag, contract). function emitV4Constants(string memory tag, string memory base) internal { + string memory suffix = tagSuffix(tag); vm.writeLine( - GEN_V4_PATH, string.concat("address constant ", base, "_", tag, " = ", base, "_ADDRESS_", tag, "_GEN;") + GEN_V4_PATH, + string.concat("address constant ", base, "_", suffix, " = ", base, "_ADDRESS_", suffix, "_GEN;") ); vm.writeLine( GEN_V4_PATH, - string.concat("bytes32 constant ", base, "_CODEHASH_", tag, " = ", base, "_CODEHASH_", tag, "_GEN;") + string.concat("bytes32 constant ", base, "_CODEHASH_", suffix, " = ", base, "_CODEHASH_", suffix, "_GEN;") ); vm.writeLine( GEN_V4_PATH, - string.concat("bytes constant ", base, "_CREATION_CODE_", tag, " = ", base, "_CREATION_", tag, "_GEN;") + string.concat( + "bytes constant ", base, "_CREATION_CODE_", suffix, " = ", base, "_CREATION_", suffix, "_GEN;" + ) ); vm.writeLine( GEN_V4_PATH, - string.concat("bytes constant ", base, "_RUNTIME_CODE_", tag, " = ", base, "_RUNTIME_", tag, "_GEN;") + string.concat("bytes constant ", base, "_RUNTIME_CODE_", suffix, " = ", base, "_RUNTIME_", suffix, "_GEN;") ); } @@ -357,6 +372,7 @@ contract BuildPointers is Script { /// current release tag. function genCurrent() internal { string memory tag = deployTag(); + string memory suffix = tagSuffix(tag); require(vm.exists(string.concat("src/generated/", tag)), "BuildPointers: current tag dir missing"); string[12] memory names = contractNames(); string[12] memory bases = contractBases(); @@ -379,11 +395,14 @@ contract BuildPointers is Script { if (!pointerExists(tag, names[c])) continue; string memory base = bases[c]; vm.writeLine( - GEN_CURRENT_PATH, string.concat("address constant ", base, " = LibProdDeployV4.", base, "_", tag, ";") + GEN_CURRENT_PATH, + string.concat("address constant ", base, " = LibProdDeployV4.", base, "_", suffix, ";") ); vm.writeLine( GEN_CURRENT_PATH, - string.concat("bytes32 constant ", base, "_CODEHASH = LibProdDeployV4.", base, "_CODEHASH_", tag, ";") + string.concat( + "bytes32 constant ", base, "_CODEHASH = LibProdDeployV4.", base, "_CODEHASH_", suffix, ";" + ) ); } vm.writeLine(GEN_CURRENT_PATH, "}"); diff --git a/script/Deploy.sol b/script/Deploy.sol deleted file mode 100644 index 9b5c1d4b..00000000 --- a/script/Deploy.sol +++ /dev/null @@ -1,255 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity =0.8.25; - -import {Script, console2} from "forge-std-1.16.1/src/Script.sol"; - -import {LibRainDeploy} from "rain-deploy-0.1.4/src/lib/LibRainDeploy.sol"; -import {LibProdDeployV4} from "../src/generated/LibProdDeployV4.sol"; -import {LibStoxDeployNetworks} from "../src/lib/LibStoxDeployNetworks.sol"; -import {StoxReceipt} from "../src/concrete/StoxReceipt.sol"; -import {StoxReceiptVault} from "../src/concrete/StoxReceiptVault.sol"; -import {StoxWrappedTokenVault} from "../src/concrete/StoxWrappedTokenVault.sol"; -import {StoxWrappedTokenVaultBeacon} from "../src/concrete/StoxWrappedTokenVaultBeacon.sol"; -import { - StoxWrappedTokenVaultBeaconSetDeployer -} from "../src/concrete/deploy/StoxWrappedTokenVaultBeaconSetDeployer.sol"; -import {StoxUnifiedDeployer} from "../src/concrete/deploy/StoxUnifiedDeployer.sol"; -import { - StoxOffchainAssetReceiptVaultBeaconSetDeployer -} from "../src/concrete/deploy/StoxOffchainAssetReceiptVaultBeaconSetDeployer.sol"; -import { - StoxOffchainAssetReceiptVaultAuthorizerV1 -} from "../src/concrete/authorize/StoxOffchainAssetReceiptVaultAuthorizerV1.sol"; -import { - StoxOffchainAssetReceiptVaultPaymentMintAuthorizerV1 -} from "../src/concrete/authorize/StoxOffchainAssetReceiptVaultPaymentMintAuthorizerV1.sol"; -import {StoxCorporateActionsFacet} from "../src/concrete/StoxCorporateActionsFacet.sol"; -import {ST0xOrchestrator} from "../src/concrete/ST0xOrchestrator.sol"; -import {ST0xOrchestratorBeaconSetDeployer} from "../src/concrete/deploy/ST0xOrchestratorBeaconSetDeployer.sol"; - -/// @dev Error thrown when the DEPLOYMENT_SUITE env var does not match any -/// known suite. -error UnknownDeploymentSuite(bytes32 suite); - -// One suite per contract to avoid Zoltu factory nonce issues. -// -// Suite ids carry no version: the deploy script itself handles versioning, so a -// suite is stable across releases and always deploys the current source. Each -// suite asserts against the corresponding `LibProdDeployV4` pin for the current -// release (0.1.3) so a mid-deploy bytecode drift trips the codehash check -// before broadcast. A historical tag only needs deploying once and is kept for -// downstream consumers. The frozen pre-V4 deployments live in `LibProdDeployV1` -// / `LibProdDeployV2` as an audit trail and are not redeployable from the -// current source. - -bytes32 constant DEPLOYMENT_SUITE_STOX_RECEIPT = keccak256("stox-receipt"); -bytes32 constant DEPLOYMENT_SUITE_STOX_RECEIPT_VAULT = keccak256("stox-receipt-vault"); -bytes32 constant DEPLOYMENT_SUITE_STOX_WRAPPED_TOKEN_VAULT = keccak256("stox-wrapped-token-vault"); -bytes32 constant DEPLOYMENT_SUITE_STOX_WRAPPED_TOKEN_VAULT_BEACON = keccak256("stox-wrapped-token-vault-beacon"); -bytes32 constant DEPLOYMENT_SUITE_STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER = - keccak256("stox-wrapped-token-vault-beacon-set-deployer"); -bytes32 constant DEPLOYMENT_SUITE_STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER = - keccak256("stox-offchain-asset-receipt-vault-beacon-set-deployer"); -bytes32 constant DEPLOYMENT_SUITE_STOX_UNIFIED_DEPLOYER = keccak256("stox-unified-deployer"); -bytes32 constant DEPLOYMENT_SUITE_STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1 = - keccak256("stox-offchain-asset-receipt-vault-authorizer-v1"); -bytes32 constant DEPLOYMENT_SUITE_STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1 = - keccak256("stox-offchain-asset-receipt-vault-payment-mint-authorizer-v1"); -bytes32 constant DEPLOYMENT_SUITE_STOX_CORPORATE_ACTIONS_FACET = keccak256("stox-corporate-actions-facet"); -bytes32 constant DEPLOYMENT_SUITE_ST0X_ORCHESTRATOR = keccak256("st0x-orchestrator"); -bytes32 constant DEPLOYMENT_SUITE_ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER = - keccak256("st0x-orchestrator-beacon-set-deployer"); - -contract Deploy is Script { - /// @dev Deploys a single contract via the Zoltu deterministic deployer on - /// Base. Reads `DEPLOYMENT_KEY` from the environment, logs diagnostic - /// information (expected address, codehash, dependency state), then - /// delegates to `LibRainDeploy.deployAndBroadcast`. - /// @param creationCode The creation bytecode of the contract to deploy. - /// @param contractPath Fully qualified contract path - /// (e.g. "src/concrete/StoxReceipt.sol:StoxReceipt"). - /// @param expectedAddress The deterministic address the contract must - /// deploy to. - /// @param expectedCodeHash The expected codehash of the deployed runtime - /// bytecode. - /// @param dependencies Addresses of contracts that must already be deployed - /// on the target network before this contract is deployed. - function deploySuite( - bytes memory creationCode, - string memory contractPath, - address expectedAddress, - bytes32 expectedCodeHash, - address[] memory dependencies - ) internal { - string[] memory networks = LibStoxDeployNetworks.supportedNetworks(); - uint256 deployerPrivateKey = vm.envUint("DEPLOYMENT_KEY"); - - console2.log("Suite deploying:", contractPath); - console2.log("Expected address:", expectedAddress); - console2.log("Expected codehash:"); - console2.logBytes32(expectedCodeHash); - console2.log("Chain ID:", block.chainid); - console2.log("Block number:", block.number); - console2.log("Dependencies count:", dependencies.length); - for (uint256 i = 0; i < dependencies.length; i++) { - console2.log(" Dep address:", dependencies[i]); - console2.log(" Dep code length:", dependencies[i].code.length); - console2.log(" Dep codehash:"); - console2.logBytes32(dependencies[i].codehash); - } - - LibRainDeploy.deployAndBroadcast( - vm, - networks, - deployerPrivateKey, - creationCode, - contractPath, - expectedAddress, - expectedCodeHash, - dependencies - ); - } - - /// @notice Entry point for the deployment script. - /// @dev Requires env vars: - /// - `DEPLOYMENT_KEY`: private key for the deployer account. - /// - `DEPLOYMENT_SUITE`: which contract to deploy (e.g. "stox-receipt", - /// "stox-wrapped-token-vault-beacon", etc.). One contract per run. - function run() public { - bytes32 suite = keccak256(bytes(vm.envString("DEPLOYMENT_SUITE"))); - address[] memory noDeps = new address[](0); - - if (suite == DEPLOYMENT_SUITE_STOX_RECEIPT) { - deploySuite( - type(StoxReceipt).creationCode, - "src/concrete/StoxReceipt.sol:StoxReceipt", - LibProdDeployV4.STOX_RECEIPT_0_1_3, - LibProdDeployV4.STOX_RECEIPT_CODEHASH_0_1_3, - noDeps - ); - } else if (suite == DEPLOYMENT_SUITE_STOX_RECEIPT_VAULT) { - // StoxReceiptVault impl. Its `fallback()` delegatecalls the - // hardcoded corporate-actions facet, and a delegatecall to a - // code-less address silently no-ops — so the facet must already be - // on-chain. Declare it as a dependency: LibRainDeploy reverts - // MissingDependency if the facet is not yet deployed on the target - // network, enforcing the order structurally rather than by runbook. - address[] memory deps = new address[](1); - deps[0] = LibProdDeployV4.STOX_CORPORATE_ACTIONS_FACET_0_1_3; - deploySuite( - type(StoxReceiptVault).creationCode, - "src/concrete/StoxReceiptVault.sol:StoxReceiptVault", - LibProdDeployV4.STOX_RECEIPT_VAULT_0_1_3, - LibProdDeployV4.STOX_RECEIPT_VAULT_CODEHASH_0_1_3, - deps - ); - } else if (suite == DEPLOYMENT_SUITE_STOX_WRAPPED_TOKEN_VAULT) { - deploySuite( - type(StoxWrappedTokenVault).creationCode, - "src/concrete/StoxWrappedTokenVault.sol:StoxWrappedTokenVault", - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_0_1_3, - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_CODEHASH_0_1_3, - noDeps - ); - } else if (suite == DEPLOYMENT_SUITE_STOX_WRAPPED_TOKEN_VAULT_BEACON) { - address[] memory deps = new address[](1); - deps[0] = LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_0_1_3; - deploySuite( - type(StoxWrappedTokenVaultBeacon).creationCode, - "src/concrete/StoxWrappedTokenVaultBeacon.sol:StoxWrappedTokenVaultBeacon", - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_0_1_3, - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_CODEHASH_0_1_3, - deps - ); - } else if (suite == DEPLOYMENT_SUITE_STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER) { - address[] memory deps = new address[](1); - deps[0] = LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_0_1_3; - deploySuite( - type(StoxWrappedTokenVaultBeaconSetDeployer).creationCode, - "src/concrete/deploy/StoxWrappedTokenVaultBeaconSetDeployer.sol:StoxWrappedTokenVaultBeaconSetDeployer", - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_0_1_3, - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_3, - deps - ); - } else if (suite == DEPLOYMENT_SUITE_STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER) { - // Its constructor bakes beacons over the StoxReceipt and - // StoxReceiptVault impls, both of which must already have code. - address[] memory deps = new address[](2); - deps[0] = LibProdDeployV4.STOX_RECEIPT_0_1_3; - deps[1] = LibProdDeployV4.STOX_RECEIPT_VAULT_0_1_3; - deploySuite( - type(StoxOffchainAssetReceiptVaultBeaconSetDeployer).creationCode, - "src/concrete/deploy/StoxOffchainAssetReceiptVaultBeaconSetDeployer.sol:StoxOffchainAssetReceiptVaultBeaconSetDeployer", - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_0_1_3, - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_3, - deps - ); - } else if (suite == DEPLOYMENT_SUITE_STOX_UNIFIED_DEPLOYER) { - // Embeds the OARV beacon-set deployer and the wrapped-token-vault - // beacon-set deployer it drives; both must already have code. - address[] memory deps = new address[](2); - deps[0] = LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_0_1_3; - deps[1] = LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_0_1_3; - deploySuite( - type(StoxUnifiedDeployer).creationCode, - "src/concrete/deploy/StoxUnifiedDeployer.sol:StoxUnifiedDeployer", - LibProdDeployV4.STOX_UNIFIED_DEPLOYER_0_1_3, - LibProdDeployV4.STOX_UNIFIED_DEPLOYER_CODEHASH_0_1_3, - deps - ); - } else if (suite == DEPLOYMENT_SUITE_STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1) { - deploySuite( - type(StoxOffchainAssetReceiptVaultAuthorizerV1).creationCode, - "src/concrete/authorize/StoxOffchainAssetReceiptVaultAuthorizerV1.sol:StoxOffchainAssetReceiptVaultAuthorizerV1", - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_0_1_3, - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CODEHASH_0_1_3, - noDeps - ); - } else if (suite == DEPLOYMENT_SUITE_STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1) { - deploySuite( - type(StoxOffchainAssetReceiptVaultPaymentMintAuthorizerV1).creationCode, - "src/concrete/authorize/StoxOffchainAssetReceiptVaultPaymentMintAuthorizerV1.sol:StoxOffchainAssetReceiptVaultPaymentMintAuthorizerV1", - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_0_1_3, - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CODEHASH_0_1_3, - noDeps - ); - } else if (suite == DEPLOYMENT_SUITE_STOX_CORPORATE_ACTIONS_FACET) { - // StoxCorporateActionsFacet impl. No on-chain dependencies (the - // receipt-vault impl hardcodes its address but does not link to it - // at deploy time). - deploySuite( - type(StoxCorporateActionsFacet).creationCode, - "src/concrete/StoxCorporateActionsFacet.sol:StoxCorporateActionsFacet", - LibProdDeployV4.STOX_CORPORATE_ACTIONS_FACET_0_1_3, - LibProdDeployV4.STOX_CORPORATE_ACTIONS_FACET_CODEHASH_0_1_3, - noDeps - ); - } else if (suite == DEPLOYMENT_SUITE_ST0X_ORCHESTRATOR) { - // ST0xOrchestrator impl — parameterless (Initializable), depends on - // nothing at deploy time. Embeds the OARV beacon-set deployer and - // receipt-vault addresses, checked at runtime. - deploySuite( - type(ST0xOrchestrator).creationCode, - "src/concrete/ST0xOrchestrator.sol:ST0xOrchestrator", - LibProdDeployV4.ST0X_ORCHESTRATOR_0_1_3, - LibProdDeployV4.ST0X_ORCHESTRATOR_CODEHASH_0_1_3, - noDeps - ); - } else if (suite == DEPLOYMENT_SUITE_ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER) { - // Its constructor bakes a beacon over the ST0xOrchestrator impl, - // which must already have code. - address[] memory deps = new address[](1); - deps[0] = LibProdDeployV4.ST0X_ORCHESTRATOR_0_1_3; - deploySuite( - type(ST0xOrchestratorBeaconSetDeployer).creationCode, - "src/concrete/deploy/ST0xOrchestratorBeaconSetDeployer.sol:ST0xOrchestratorBeaconSetDeployer", - LibProdDeployV4.ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_0_1_3, - LibProdDeployV4.ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CODEHASH_0_1_3, - deps - ); - } else { - revert UnknownDeploymentSuite(suite); - } - } -} diff --git a/script/DeployProdV4_0_1_1.sol b/script/DeployProdV4_0_1_1.sol index 95bf4183..9338d998 100644 --- a/script/DeployProdV4_0_1_1.sol +++ b/script/DeployProdV4_0_1_1.sol @@ -19,11 +19,9 @@ error UnknownDeploymentNetwork(string network); // One suite per contract to avoid Zoltu factory nonce issues. // // This script ships the audited 0.1.1 production set to one bootstrap network -// per dispatch, selected by `DEPLOYMENT_NETWORK`. Unlike -// `script/Deploy.sol`, which deploys the CURRENT source (the 0.1.3 pins) -// to `LibStoxDeployNetworks.supportedNetworks()`, each suite here deploys the -// stored `LibProdDeployV4.*_CREATION_CODE_0_1_1` bytecode — the exact bytes the -// 0.1.1 audit covers — and asserts against the `_0_1_1` address/codehash pins. +// per dispatch, selected by `DEPLOYMENT_NETWORK`. Each suite deploys the stored +// `LibProdDeployV4.*_CREATION_CODE_0_1_1` bytecode — the exact bytes the 0.1.1 +// audit covers — and asserts against the `_0_1_1` address/codehash pins. // Deploying stored creation code (not `type(T).creationCode`) reproduces the // audited 0.1.1 deployment regardless of what the current source compiles to. // diff --git a/script/cut-release.sh b/script/cut-release.sh new file mode 100755 index 00000000..5a78fb73 --- /dev/null +++ b/script/cut-release.sh @@ -0,0 +1,52 @@ +#!/usr/bin/env bash +# SPDX-License-Identifier: LicenseRef-DCL-1.0 +# SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd +# Freeze the rolling `candidate` snapshot as a numbered release snapshot, then +# regenerate the deploy pointer libs. +# +# Invoked by rainix-tag-release as its `snapshot-generate-cmd`, AFTER the +# reusable has resolved the release version from the pushed `sol-vX.Y.Z` tag and +# written it to `foundry.toml` `[package].version`. So the version is read from +# `foundry.toml` here — the single source of truth at this point. +# +# Model: `src/generated/candidate/` is the rolling snapshot of what the current +# source compiles to (regenerated every BuildPointers run). A numbered snapshot +# (`0_1_4/`, …) is a FROZEN copy of `candidate` taken at the instant a tag +# releases it — it never changes again (the frozen-snapshots-append-only gate +# enforces this). This script performs that copy, then re-runs BuildPointers so +# the pointer libs pick up the new numbered alias set alongside `candidate`. +set -euo pipefail + +VERSION="$(grep -m1 -E '^version = ' foundry.toml | sed -E 's/^version = "([^"]+)"/\1/')" +if [ -z "$VERSION" ]; then + echo "cut-release: could not read [package].version from foundry.toml" >&2 + exit 1 +fi +# Strict X.Y.Z only: anything else (rc/pre-release suffixes, extra components) +# would freeze a dir like `0_1_30-rc1` that the generator's numeric tag filter +# ignores forever — an orphan snapshot. Refuse instead. +if ! [[ "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + echo "cut-release: version '${VERSION}' is not strict X.Y.Z — refusing to cut a snapshot the generator would ignore" >&2 + exit 1 +fi +TAG="${VERSION//./_}" + +if [ ! -d src/generated/candidate ]; then + echo "cut-release: src/generated/candidate is missing — nothing to freeze" >&2 + exit 1 +fi + +# Frozen releases are append-only: re-cutting an existing version must fail +# loudly rather than clobber a frozen (audited) snapshot with candidate. +if [ -d "src/generated/${TAG}" ]; then + echo "cut-release: src/generated/${TAG} already exists — refusing to overwrite a frozen release snapshot" >&2 + exit 1 +fi + +echo "cut-release: freezing candidate -> src/generated/${TAG}" +cp -r src/generated/candidate "src/generated/${TAG}" + +# Regenerate candidate (idempotent — source unchanged) and the pointer libs, +# which now emit the new numbered alias set in addition to `candidate`. +forge script ./script/BuildPointers.sol +forge fmt diff --git a/src/generated/0_1_2/ST0xOrchestrator.pointers.sol b/src/generated/0_1_2/ST0xOrchestrator.pointers.sol deleted file mode 100644 index 03e00d65..00000000 --- a/src/generated/0_1_2/ST0xOrchestrator.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0xf05134e6b0ac1a88a8ba69eba472e651ee204c60914782543bcf339bcf273b7a); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x77ab9b240caC5F37a5D4d51651936ea1d61DF1A2); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"6080604052348015600e575f80fd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b613174806100d65f395ff3fe608060405260043610610191575f3560e01c8063742fabb3116100dc578063b930908f11610087578063d547741f11610062578063d547741f14610594578063e9a9c850146105b3578063f14893a7146105e6578063f23a6e6114610605575f80fd5b8063b930908f146104f2578063bc197c8114610525578063c4d66de814610575575f80fd5b806391d14854116100b757806391d148541461045d5780639cb887f8146104c0578063a217fddf146104df575f80fd5b8063742fabb3146103cf578063752c9cf51461042257806384b0196e14610436575f80fd5b80633b94a0dd1161013c57806344d171871161011757806344d1718714610372578063584f418e14610391578063671d083f146103b0575f80fd5b80633b94a0dd146103015780633e81e40d146103345780633f6fc76f14610353575f80fd5b8063248a9ca31161016c578063248a9ca3146102745780632f2ff15d146102c157806336568abe146102e2575f80fd5b806301ffc9a71461019c5780630e230f97146101d057806320df435914610233575f80fd5b3661019857005b5f80fd5b3480156101a7575f80fd5b506101bb6101b63660046128f8565b610624565b60405190151581526020015b60405180910390f35b3480156101db575f80fd5b506101bb6101ea366004612927565b6001600160a01b03919091165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be70160209081526040808320938352929052205460ff1690565b34801561023e575f80fd5b506102667f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de81565b6040519081526020016101c7565b34801561027f575f80fd5b5061026661028e366004612951565b5f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b3480156102cc575f80fd5b506102e06102db366004612968565b61067f565b005b3480156102ed575f80fd5b506102e06102fc366004612968565b6106c8565b34801561030c575f80fd5b506102667f8381bcc05e5203d9456aa7185a19b2be5d4af37909fecf63a6f2016c1bf8413381565b34801561033f575f80fd5b5061026661034e366004612996565b610719565b34801561035e575f80fd5b506102e061036d3660046129d9565b61072f565b34801561037d575f80fd5b506102e061038c366004612a5d565b6107ca565b34801561039c575f80fd5b506102e06103ab366004612ab5565b61092d565b3480156103bb575f80fd5b506102e06103ca366004612afc565b610aa7565b3480156103da575f80fd5b506102666103e9366004612b96565b6001600160a01b03165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be700602052604090205490565b34801561042d575f80fd5b506101bb610c70565b348015610441575f80fd5b5061044a610e65565b6040516101c79796959493929190612bdf565b348015610468575f80fd5b506101bb610477366004612968565b5f9182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3480156104cb575f80fd5b506102e06104da366004612927565b610ec3565b3480156104ea575f80fd5b506102665f81565b3480156104fd575f80fd5b506102667f04c6a47ae7910ef8b295215a97e8495a9eaf57b7b05bfd8bf951edb3fd4a16a381565b348015610530575f80fd5b5061054461053f366004612cd3565b610f79565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016101c7565b348015610580575f80fd5b506102e061058f366004612b96565b611008565b34801561059f575f80fd5b506102e06105ae366004612968565b611237565b3480156105be575f80fd5b506102667ffdf81848136595c31bb5f76217767372bc4bf906663038eb38381131ea27ecba81565b3480156105f1575f80fd5b506102e0610600366004612ab5565b61127a565b348015610610575f80fd5b5061054461061f366004612d8a565b611382565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f4e2312e00000000000000000000000000000000000000000000000000000000014806106795750610679826113bf565b92915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680060205260409020600101546106b881611455565b6106c28383611462565b50505050565b6001600160a01b038116331461070a576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610714828261152e565b505050565b5f610726858585856115d2565b95945050505050565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de61075981611455565b610761611648565b6107756001600160a01b038516838561167f565b816001600160a01b0316846001600160a01b03167f4810d2f105dcba10d740b4ac1d8fa8454dd37014b2051bace1edb1d903c440c4856040516107ba91815260200190565b60405180910390a36106c26116cd565b7f04c6a47ae7910ef8b295215a97e8495a9eaf57b7b05bfd8bf951edb3fd4a16a36107f481611455565b6107fc6116f7565b610804611648565b835f0361083d576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108526001600160a01b038616333087611989565b6001600160a01b0385165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be70060209081526040808320548151601f870184900484028101840190925285825292916108cb91899189919089908990819084018382808284375f920191909152506119d892505050565b60408051888152602081018590529081018290529091506001600160a01b0388169033907f112766730ce440487945c01048dacfc6d04340403f675871e96c4e28cf622ecc9060600160405180910390a350506109266116cd565b5050505050565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de61095781611455565b61095f611648565b846001600160a01b031663e1e6b8986040518163ffffffff1660e01b8152600401602060405180830381865afa15801561099b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109bf9190612def565b6040517ff242432a0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038481166024830152604482018790526064820186905260a060848301525f60a4830152919091169063f242432a9060c4015f604051808303815f87803b158015610a3b575f80fd5b505af1158015610a4d573d5f803e3d5ffd5b5050505083826001600160a01b0316866001600160a01b03167fc9e640d2eb1b8469e42f60a66fef6a05cfd27ee3757e48f3f8ba04ecbc8a51b086604051610a9791815260200190565b60405180910390a46109266116cd565b7ffdf81848136595c31bb5f76217767372bc4bf906663038eb38381131ea27ecba610ad181611455565b610ad96116f7565b610ae1611648565b845f03610b1a576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b2687878787611d0b565b6040517fc77b66c20000000000000000000000000000000000000000000000000000000081525f906001600160a01b0389169063c77b66c290610b75908990309086908a908a90600401612e0a565b6020604051808303815f875af1158015610b91573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bb59190612e56565b9050858114610bff576040517fbe40f1fc00000000000000000000000000000000000000000000000000000000815260048101879052602481018290526044015b60405180910390fd5b610c136001600160a01b038916888861167f565b60408051878152863560208201526001600160a01b03808a1692908b169133917f7c0eac1a8d30fbe7a577affc3b588a0b7d965a6133d12097cfac0760f2f2b617910160405180910390a450610c676116cd565b50505050505050565b5f8073d64246e6b25f745f005e6233e050c9b879e660dc9050732bcced626566ef1e65f922dd03748c5c7aa2d7486001600160a01b0316816001600160a01b0316632f77a1c16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ce3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d079190612def565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d42573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d669190612def565b6001600160a01b0316148015610e5f5750732df5cfe6d688ef9ff1b7c59a499d254b1527b2866001600160a01b0316816001600160a01b0316632c9b7f406040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dd1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610df59190612def565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e30573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e549190612def565b6001600160a01b0316145b91505090565b5f6060805f805f6060610e76611e49565b610e7e611f1c565b604080515f808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009b939a50919850469750309650945092509050565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de610eed81611455565b610ef5611648565b5f7f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be7006001600160a01b0385165f818152602083815260409182902080549088905582518181529182018890529394507fc6ce8282d3b57b159503fa5566e612aeb9f30c8e20c882398c9cb293c1ba6d68910160405180910390a250506107146116cd565b5f805b86811015610fd9578481108015610faa57505f868683818110610fa157610fa1612e9a565b90506020020135115b15610fd157610fd133898984818110610fc557610fc5612e9a565b90506020020135611f6d565b600101610f7c565b507fbc197c81000000000000000000000000000000000000000000000000000000009998505050505050505050565b5f6110116121d6565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f8115801561103d5750825b90505f8267ffffffffffffffff1660011480156110595750303b155b905081158015611067575080155b1561109e576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156110ff5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6001600160a01b03861661113f576040517f9905827b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111476116f7565b61114f6121fe565b6111c36040518060400160405280601081526020017f535430784f7263686573747261746f72000000000000000000000000000000008152506040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250612206565b6111cd5f87611462565b50831561122f5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015461127081611455565b6106c2838361152e565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de6112a481611455565b6112ac611648565b6040517ff242432a0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038381166024830152604482018690526064820185905260a060848301525f60a483015286169063f242432a9060c4015f604051808303815f87803b158015611326575f80fd5b505af1158015611338573d5f803e3d5ffd5b5050505083826001600160a01b0316866001600160a01b03167f78b19b4b6e69e380c3c303d1e889d510ee3ee409219c1c014d97a0a607b6c6a686604051610a9791815260200190565b5f8315611393576113933386611f6d565b507ff23a6e61000000000000000000000000000000000000000000000000000000009695505050505050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061067957507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610679565b61145f813361221c565b50565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff16611525575f848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556114db3390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610679565b5f915050610679565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff1615611525575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610679565b604080517f8381bcc05e5203d9456aa7185a19b2be5d4af37909fecf63a6f2016c1bf8413360208201526001600160a01b038087169282019290925290841660608201526080810183905260a081018290525f906107269060c001604051602081830303815290604052805190602001206122a8565b6116506122ef565b61167d60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005b90612348565b565b61168c838383600161234f565b610714576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610bf6565b61167d5f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00611677565b5f73d64246e6b25f745f005e6233e050c9b879e660dc90505f816001600160a01b0316632f77a1c16040518163ffffffff1660e01b8152600401602060405180830381865afa15801561174c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117709190612def565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117ab573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117cf9190612def565b90506001600160a01b038116732bcced626566ef1e65f922dd03748c5c7aa2d7481461184c576040517fdfdb61b7000000000000000000000000000000000000000000000000000000008152732bcced626566ef1e65f922dd03748c5c7aa2d74860048201526001600160a01b0382166024820152604401610bf6565b5f826001600160a01b0316632c9b7f406040518163ffffffff1660e01b8152600401602060405180830381865afa158015611889573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118ad9190612def565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061190c9190612def565b90506001600160a01b038116732df5cfe6d688ef9ff1b7c59a499d254b1527b28614610714576040517f3e4077b3000000000000000000000000000000000000000000000000000000008152732df5cfe6d688ef9ff1b7c59a499d254b1527b28660048201526001600160a01b0382166024820152604401610bf6565b6119978484848460016123ca565b6106c2576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610bf6565b5f808490505f816001600160a01b031663e1e6b8986040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a1a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a3e9190612def565b90507f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be7005f015f876001600160a01b03166001600160a01b031681526020019081526020015f205492505f826001600160a01b031663f5d214f56040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ac4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ae89190612e56565b90505b8515611cc65780841115611b3d576040517f66a21a2d0000000000000000000000000000000000000000000000000000000081526001600160a01b038816600482015260248101879052604401610bf6565b6040517efdd58e000000000000000000000000000000000000000000000000000000008152306004820152602481018590525f906001600160a01b0384169062fdd58e90604401602060405180830381865afa158015611b9f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bc39190612e56565b9050805f03611bd85750600190930192611aeb565b5f818810611be65781611be8565b875b90505f856001600160a01b031663921a4c428330308b8d6040518663ffffffff1660e01b8152600401611c1f959493929190612ec7565b6020604051808303815f875af1158015611c3b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c5f9190612e56565b9050818114611ca4576040517fbe40f1fc0000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610bf6565b611cae828a612f09565b9850828203611cbe576001909601955b505050611aeb565b5050506001600160a01b03939093165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be700602052604090208390555090919050565b6001600160a01b0383165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be70160209081526040808320843584529091529020547f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be7009060ff1615611dbc576040517f59c210430000000000000000000000000000000000000000000000000000000081526001600160a01b038516600482015282356024820152604401610bf6565b6001600160a01b0384165f90815260018281016020908152604080842086358086529252909220805460ff19169091179055610926908590611e03908890839088906115d2565b611e106020860186612f41565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061245092505050565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10280546060917fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10091611e9a90612fa2565b80601f0160208091040260200160405190810160405280929190818152602001828054611ec690612fa2565b8015611f115780601f10611ee857610100808354040283529160200191611f11565b820191905f5260205f20905b815481529060010190602001808311611ef457829003601f168201915b505050505091505090565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10380546060917fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10091611e9a90612fa2565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f481c6a750000000000000000000000000000000000000000000000000000000017905290515f9182916001600160a01b03861691611fdd91612ff3565b5f60405180830381855afa9150503d805f8114612015576040519150601f19603f3d011682016040523d82523d5f602084013e61201a565b606091505b509150915081158061202e57508051602014155b156120395750505050565b5f61204382613009565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe1e6b8980000000000000000000000000000000000000000000000000000000017905290519192506001600160a01b038316916120b39190612ff3565b5f60405180830381855afa9150503d805f81146120eb576040519150601f19603f3d011682016040523d82523d5f602084013e6120f0565b606091505b50909350915082158061210557508151602014155b15612111575050505050565b6001600160a01b03851661212483613009565b6001600160a01b031614612139575050505050565b6001600160a01b0381165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be700602081905260409091205480861015610c67576001600160a01b0383165f818152602084815260409182902089905581518481529081018990527f2008c207f65bedc2bb65dc8ac34aee36a37cd43a50152d574107c63ace7e07c6910160405180910390a250505050505050565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610679565b61167d61257f565b61220e61257f565b61221882826125bd565b5050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038516845290915290205460ff16612218576040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015260248101839052604401610bf6565b5f6106796122b4612620565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c1561167d576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80825d5050565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f511483166123be5783831516156123b2573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b6040517f23b872dd000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038781166004528616602452604485905291602083606481808c5af1925060015f5114831661243f578383151615612433573d5f823e3d81fd5b5f883b113d1516831692505b604052505f60605295945050505050565b8051156124985761246283838361262e565b610714576040517f19ab93cc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f642ddf3a0000000000000000000000000000000000000000000000000000000080825260048201849052906001600160a01b0385169063642ddf3a906024016020604051808303815f875af11580156124f7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061251b919061302c565b7fffffffff000000000000000000000000000000000000000000000000000000001614610714576040517f22b89c080000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610bf6565b6125876126a1565b61167d576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6125c561257f565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1007fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d102612611848261308b565b50600381016106c2838261308b565b5f6126296126bf565b905090565b5f836001600160a01b03163b5f0361268c575f8061264c8585612732565b5090925090505f81600381111561266557612665613147565b1480156126835750856001600160a01b0316826001600160a01b0316145b9250505061269a565b61269784848461277b565b90505b9392505050565b5f6126aa6121d6565b5468010000000000000000900460ff16919050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6126e96127e5565b6126f16127fa565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f805f8351604103612769576020840151604085015160608601515f1a61275b88828585612803565b955095509550505050612774565b505081515f91506002905b9250925092565b8051604080517f1626ba7e000000000000000000000000000000000000000000000000000000008082526004820186905260248201929092525f92906020820185604483015e60205f60648401838a5afa9050825f5114601f3d1116811693505050509392505050565b5f6127ee611e49565b80519060200120905090565b5f6127ee611f1c565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561283c57505f915060039050826128c1565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa15801561288d573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b0381166128b857505f9250600191508290506128c1565b92505f91508190505b9450945094915050565b7fffffffff000000000000000000000000000000000000000000000000000000008116811461145f575f80fd5b5f60208284031215612908575f80fd5b813561269a816128cb565b6001600160a01b038116811461145f575f80fd5b5f8060408385031215612938575f80fd5b823561294381612913565b946020939093013593505050565b5f60208284031215612961575f80fd5b5035919050565b5f8060408385031215612979575f80fd5b82359150602083013561298b81612913565b809150509250929050565b5f805f80608085870312156129a9575f80fd5b84356129b481612913565b935060208501356129c481612913565b93969395505050506040820135916060013590565b5f805f606084860312156129eb575f80fd5b83356129f681612913565b9250602084013591506040840135612a0d81612913565b809150509250925092565b5f8083601f840112612a28575f80fd5b50813567ffffffffffffffff811115612a3f575f80fd5b602083019150836020828501011115612a56575f80fd5b9250929050565b5f805f8060608587031215612a70575f80fd5b8435612a7b81612913565b935060208501359250604085013567ffffffffffffffff811115612a9d575f80fd5b612aa987828801612a18565b95989497509550505050565b5f805f8060808587031215612ac8575f80fd5b8435612ad381612913565b935060208501359250604085013591506060850135612af181612913565b939692955090935050565b5f805f805f8060a08789031215612b11575f80fd5b8635612b1c81612913565b95506020870135612b2c81612913565b945060408701359350606087013567ffffffffffffffff80821115612b4f575f80fd5b908801906040828b031215612b62575f80fd5b90935060808801359080821115612b77575f80fd5b50612b8489828a01612a18565b979a9699509497509295939492505050565b5f60208284031215612ba6575f80fd5b813561269a81612913565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b7fff00000000000000000000000000000000000000000000000000000000000000881681525f602060e06020840152612c1b60e084018a612bb1565b8381036040850152612c2d818a612bb1565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825260208088019350909101905f5b81811015612c8057835183529284019291840191600101612c64565b50909c9b505050505050505050505050565b5f8083601f840112612ca2575f80fd5b50813567ffffffffffffffff811115612cb9575f80fd5b6020830191508360208260051b8501011115612a56575f80fd5b5f805f805f805f8060a0898b031215612cea575f80fd5b8835612cf581612913565b97506020890135612d0581612913565b9650604089013567ffffffffffffffff80821115612d21575f80fd5b612d2d8c838d01612c92565b909850965060608b0135915080821115612d45575f80fd5b612d518c838d01612c92565b909650945060808b0135915080821115612d69575f80fd5b50612d768b828c01612a18565b999c989b5096995094979396929594505050565b5f805f805f8060a08789031215612d9f575f80fd5b8635612daa81612913565b95506020870135612dba81612913565b94506040870135935060608701359250608087013567ffffffffffffffff811115612de3575f80fd5b612b8489828a01612a18565b5f60208284031215612dff575f80fd5b815161269a81612913565b8581526001600160a01b038516602082015283604082015260806060820152816080820152818360a08301375f81830160a090810191909152601f909201601f19160101949350505050565b5f60208284031215612e66575f80fd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b8581525f6001600160a01b03808716602084015280861660408401525083606083015260a06080830152612efe60a0830184612bb1565b979650505050505050565b81810381811115610679577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612f74575f80fd5b83018035915067ffffffffffffffff821115612f8e575f80fd5b602001915036819003821315612a56575f80fd5b600181811c90821680612fb657607f821691505b602082108103612fed577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b5f82518060208501845e5f920191825250919050565b80516020808301519190811015612fed575f1960209190910360031b1b16919050565b5f6020828403121561303c575f80fd5b815161269a816128cb565b601f82111561071457805f5260205f20601f840160051c8101602085101561306c5750805b601f840160051c820191505b81811015610926575f8155600101613078565b815167ffffffffffffffff8111156130a5576130a5612e6d565b6130b9816130b38454612fa2565b84613047565b602080601f8311600181146130ec575f84156130d55750858301515b5f19600386901b1c1916600185901b17855561122f565b5f85815260208120601f198616915b8281101561311a578886015182559484019460019091019084016130fb565b508582101561313757878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405260043610610191575f3560e01c8063742fabb3116100dc578063b930908f11610087578063d547741f11610062578063d547741f14610594578063e9a9c850146105b3578063f14893a7146105e6578063f23a6e6114610605575f80fd5b8063b930908f146104f2578063bc197c8114610525578063c4d66de814610575575f80fd5b806391d14854116100b757806391d148541461045d5780639cb887f8146104c0578063a217fddf146104df575f80fd5b8063742fabb3146103cf578063752c9cf51461042257806384b0196e14610436575f80fd5b80633b94a0dd1161013c57806344d171871161011757806344d1718714610372578063584f418e14610391578063671d083f146103b0575f80fd5b80633b94a0dd146103015780633e81e40d146103345780633f6fc76f14610353575f80fd5b8063248a9ca31161016c578063248a9ca3146102745780632f2ff15d146102c157806336568abe146102e2575f80fd5b806301ffc9a71461019c5780630e230f97146101d057806320df435914610233575f80fd5b3661019857005b5f80fd5b3480156101a7575f80fd5b506101bb6101b63660046128f8565b610624565b60405190151581526020015b60405180910390f35b3480156101db575f80fd5b506101bb6101ea366004612927565b6001600160a01b03919091165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be70160209081526040808320938352929052205460ff1690565b34801561023e575f80fd5b506102667f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de81565b6040519081526020016101c7565b34801561027f575f80fd5b5061026661028e366004612951565b5f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b3480156102cc575f80fd5b506102e06102db366004612968565b61067f565b005b3480156102ed575f80fd5b506102e06102fc366004612968565b6106c8565b34801561030c575f80fd5b506102667f8381bcc05e5203d9456aa7185a19b2be5d4af37909fecf63a6f2016c1bf8413381565b34801561033f575f80fd5b5061026661034e366004612996565b610719565b34801561035e575f80fd5b506102e061036d3660046129d9565b61072f565b34801561037d575f80fd5b506102e061038c366004612a5d565b6107ca565b34801561039c575f80fd5b506102e06103ab366004612ab5565b61092d565b3480156103bb575f80fd5b506102e06103ca366004612afc565b610aa7565b3480156103da575f80fd5b506102666103e9366004612b96565b6001600160a01b03165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be700602052604090205490565b34801561042d575f80fd5b506101bb610c70565b348015610441575f80fd5b5061044a610e65565b6040516101c79796959493929190612bdf565b348015610468575f80fd5b506101bb610477366004612968565b5f9182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3480156104cb575f80fd5b506102e06104da366004612927565b610ec3565b3480156104ea575f80fd5b506102665f81565b3480156104fd575f80fd5b506102667f04c6a47ae7910ef8b295215a97e8495a9eaf57b7b05bfd8bf951edb3fd4a16a381565b348015610530575f80fd5b5061054461053f366004612cd3565b610f79565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016101c7565b348015610580575f80fd5b506102e061058f366004612b96565b611008565b34801561059f575f80fd5b506102e06105ae366004612968565b611237565b3480156105be575f80fd5b506102667ffdf81848136595c31bb5f76217767372bc4bf906663038eb38381131ea27ecba81565b3480156105f1575f80fd5b506102e0610600366004612ab5565b61127a565b348015610610575f80fd5b5061054461061f366004612d8a565b611382565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f4e2312e00000000000000000000000000000000000000000000000000000000014806106795750610679826113bf565b92915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680060205260409020600101546106b881611455565b6106c28383611462565b50505050565b6001600160a01b038116331461070a576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610714828261152e565b505050565b5f610726858585856115d2565b95945050505050565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de61075981611455565b610761611648565b6107756001600160a01b038516838561167f565b816001600160a01b0316846001600160a01b03167f4810d2f105dcba10d740b4ac1d8fa8454dd37014b2051bace1edb1d903c440c4856040516107ba91815260200190565b60405180910390a36106c26116cd565b7f04c6a47ae7910ef8b295215a97e8495a9eaf57b7b05bfd8bf951edb3fd4a16a36107f481611455565b6107fc6116f7565b610804611648565b835f0361083d576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108526001600160a01b038616333087611989565b6001600160a01b0385165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be70060209081526040808320548151601f870184900484028101840190925285825292916108cb91899189919089908990819084018382808284375f920191909152506119d892505050565b60408051888152602081018590529081018290529091506001600160a01b0388169033907f112766730ce440487945c01048dacfc6d04340403f675871e96c4e28cf622ecc9060600160405180910390a350506109266116cd565b5050505050565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de61095781611455565b61095f611648565b846001600160a01b031663e1e6b8986040518163ffffffff1660e01b8152600401602060405180830381865afa15801561099b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109bf9190612def565b6040517ff242432a0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038481166024830152604482018790526064820186905260a060848301525f60a4830152919091169063f242432a9060c4015f604051808303815f87803b158015610a3b575f80fd5b505af1158015610a4d573d5f803e3d5ffd5b5050505083826001600160a01b0316866001600160a01b03167fc9e640d2eb1b8469e42f60a66fef6a05cfd27ee3757e48f3f8ba04ecbc8a51b086604051610a9791815260200190565b60405180910390a46109266116cd565b7ffdf81848136595c31bb5f76217767372bc4bf906663038eb38381131ea27ecba610ad181611455565b610ad96116f7565b610ae1611648565b845f03610b1a576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b2687878787611d0b565b6040517fc77b66c20000000000000000000000000000000000000000000000000000000081525f906001600160a01b0389169063c77b66c290610b75908990309086908a908a90600401612e0a565b6020604051808303815f875af1158015610b91573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bb59190612e56565b9050858114610bff576040517fbe40f1fc00000000000000000000000000000000000000000000000000000000815260048101879052602481018290526044015b60405180910390fd5b610c136001600160a01b038916888861167f565b60408051878152863560208201526001600160a01b03808a1692908b169133917f7c0eac1a8d30fbe7a577affc3b588a0b7d965a6133d12097cfac0760f2f2b617910160405180910390a450610c676116cd565b50505050505050565b5f8073d64246e6b25f745f005e6233e050c9b879e660dc9050732bcced626566ef1e65f922dd03748c5c7aa2d7486001600160a01b0316816001600160a01b0316632f77a1c16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ce3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d079190612def565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d42573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d669190612def565b6001600160a01b0316148015610e5f5750732df5cfe6d688ef9ff1b7c59a499d254b1527b2866001600160a01b0316816001600160a01b0316632c9b7f406040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dd1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610df59190612def565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e30573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e549190612def565b6001600160a01b0316145b91505090565b5f6060805f805f6060610e76611e49565b610e7e611f1c565b604080515f808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009b939a50919850469750309650945092509050565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de610eed81611455565b610ef5611648565b5f7f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be7006001600160a01b0385165f818152602083815260409182902080549088905582518181529182018890529394507fc6ce8282d3b57b159503fa5566e612aeb9f30c8e20c882398c9cb293c1ba6d68910160405180910390a250506107146116cd565b5f805b86811015610fd9578481108015610faa57505f868683818110610fa157610fa1612e9a565b90506020020135115b15610fd157610fd133898984818110610fc557610fc5612e9a565b90506020020135611f6d565b600101610f7c565b507fbc197c81000000000000000000000000000000000000000000000000000000009998505050505050505050565b5f6110116121d6565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f8115801561103d5750825b90505f8267ffffffffffffffff1660011480156110595750303b155b905081158015611067575080155b1561109e576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156110ff5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6001600160a01b03861661113f576040517f9905827b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111476116f7565b61114f6121fe565b6111c36040518060400160405280601081526020017f535430784f7263686573747261746f72000000000000000000000000000000008152506040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250612206565b6111cd5f87611462565b50831561122f5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015461127081611455565b6106c2838361152e565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de6112a481611455565b6112ac611648565b6040517ff242432a0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038381166024830152604482018690526064820185905260a060848301525f60a483015286169063f242432a9060c4015f604051808303815f87803b158015611326575f80fd5b505af1158015611338573d5f803e3d5ffd5b5050505083826001600160a01b0316866001600160a01b03167f78b19b4b6e69e380c3c303d1e889d510ee3ee409219c1c014d97a0a607b6c6a686604051610a9791815260200190565b5f8315611393576113933386611f6d565b507ff23a6e61000000000000000000000000000000000000000000000000000000009695505050505050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061067957507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610679565b61145f813361221c565b50565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff16611525575f848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556114db3390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610679565b5f915050610679565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff1615611525575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610679565b604080517f8381bcc05e5203d9456aa7185a19b2be5d4af37909fecf63a6f2016c1bf8413360208201526001600160a01b038087169282019290925290841660608201526080810183905260a081018290525f906107269060c001604051602081830303815290604052805190602001206122a8565b6116506122ef565b61167d60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005b90612348565b565b61168c838383600161234f565b610714576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610bf6565b61167d5f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00611677565b5f73d64246e6b25f745f005e6233e050c9b879e660dc90505f816001600160a01b0316632f77a1c16040518163ffffffff1660e01b8152600401602060405180830381865afa15801561174c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117709190612def565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117ab573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117cf9190612def565b90506001600160a01b038116732bcced626566ef1e65f922dd03748c5c7aa2d7481461184c576040517fdfdb61b7000000000000000000000000000000000000000000000000000000008152732bcced626566ef1e65f922dd03748c5c7aa2d74860048201526001600160a01b0382166024820152604401610bf6565b5f826001600160a01b0316632c9b7f406040518163ffffffff1660e01b8152600401602060405180830381865afa158015611889573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118ad9190612def565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061190c9190612def565b90506001600160a01b038116732df5cfe6d688ef9ff1b7c59a499d254b1527b28614610714576040517f3e4077b3000000000000000000000000000000000000000000000000000000008152732df5cfe6d688ef9ff1b7c59a499d254b1527b28660048201526001600160a01b0382166024820152604401610bf6565b6119978484848460016123ca565b6106c2576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610bf6565b5f808490505f816001600160a01b031663e1e6b8986040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a1a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a3e9190612def565b90507f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be7005f015f876001600160a01b03166001600160a01b031681526020019081526020015f205492505f826001600160a01b031663f5d214f56040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ac4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ae89190612e56565b90505b8515611cc65780841115611b3d576040517f66a21a2d0000000000000000000000000000000000000000000000000000000081526001600160a01b038816600482015260248101879052604401610bf6565b6040517efdd58e000000000000000000000000000000000000000000000000000000008152306004820152602481018590525f906001600160a01b0384169062fdd58e90604401602060405180830381865afa158015611b9f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bc39190612e56565b9050805f03611bd85750600190930192611aeb565b5f818810611be65781611be8565b875b90505f856001600160a01b031663921a4c428330308b8d6040518663ffffffff1660e01b8152600401611c1f959493929190612ec7565b6020604051808303815f875af1158015611c3b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c5f9190612e56565b9050818114611ca4576040517fbe40f1fc0000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610bf6565b611cae828a612f09565b9850828203611cbe576001909601955b505050611aeb565b5050506001600160a01b03939093165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be700602052604090208390555090919050565b6001600160a01b0383165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be70160209081526040808320843584529091529020547f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be7009060ff1615611dbc576040517f59c210430000000000000000000000000000000000000000000000000000000081526001600160a01b038516600482015282356024820152604401610bf6565b6001600160a01b0384165f90815260018281016020908152604080842086358086529252909220805460ff19169091179055610926908590611e03908890839088906115d2565b611e106020860186612f41565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061245092505050565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10280546060917fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10091611e9a90612fa2565b80601f0160208091040260200160405190810160405280929190818152602001828054611ec690612fa2565b8015611f115780601f10611ee857610100808354040283529160200191611f11565b820191905f5260205f20905b815481529060010190602001808311611ef457829003601f168201915b505050505091505090565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10380546060917fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10091611e9a90612fa2565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f481c6a750000000000000000000000000000000000000000000000000000000017905290515f9182916001600160a01b03861691611fdd91612ff3565b5f60405180830381855afa9150503d805f8114612015576040519150601f19603f3d011682016040523d82523d5f602084013e61201a565b606091505b509150915081158061202e57508051602014155b156120395750505050565b5f61204382613009565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe1e6b8980000000000000000000000000000000000000000000000000000000017905290519192506001600160a01b038316916120b39190612ff3565b5f60405180830381855afa9150503d805f81146120eb576040519150601f19603f3d011682016040523d82523d5f602084013e6120f0565b606091505b50909350915082158061210557508151602014155b15612111575050505050565b6001600160a01b03851661212483613009565b6001600160a01b031614612139575050505050565b6001600160a01b0381165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be700602081905260409091205480861015610c67576001600160a01b0383165f818152602084815260409182902089905581518481529081018990527f2008c207f65bedc2bb65dc8ac34aee36a37cd43a50152d574107c63ace7e07c6910160405180910390a250505050505050565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610679565b61167d61257f565b61220e61257f565b61221882826125bd565b5050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038516845290915290205460ff16612218576040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015260248101839052604401610bf6565b5f6106796122b4612620565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c1561167d576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80825d5050565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f511483166123be5783831516156123b2573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b6040517f23b872dd000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038781166004528616602452604485905291602083606481808c5af1925060015f5114831661243f578383151615612433573d5f823e3d81fd5b5f883b113d1516831692505b604052505f60605295945050505050565b8051156124985761246283838361262e565b610714576040517f19ab93cc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f642ddf3a0000000000000000000000000000000000000000000000000000000080825260048201849052906001600160a01b0385169063642ddf3a906024016020604051808303815f875af11580156124f7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061251b919061302c565b7fffffffff000000000000000000000000000000000000000000000000000000001614610714576040517f22b89c080000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610bf6565b6125876126a1565b61167d576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6125c561257f565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1007fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d102612611848261308b565b50600381016106c2838261308b565b5f6126296126bf565b905090565b5f836001600160a01b03163b5f0361268c575f8061264c8585612732565b5090925090505f81600381111561266557612665613147565b1480156126835750856001600160a01b0316826001600160a01b0316145b9250505061269a565b61269784848461277b565b90505b9392505050565b5f6126aa6121d6565b5468010000000000000000900460ff16919050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6126e96127e5565b6126f16127fa565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f805f8351604103612769576020840151604085015160608601515f1a61275b88828585612803565b955095509550505050612774565b505081515f91506002905b9250925092565b8051604080517f1626ba7e000000000000000000000000000000000000000000000000000000008082526004820186905260248201929092525f92906020820185604483015e60205f60648401838a5afa9050825f5114601f3d1116811693505050509392505050565b5f6127ee611e49565b80519060200120905090565b5f6127ee611f1c565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561283c57505f915060039050826128c1565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa15801561288d573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b0381166128b857505f9250600191508290506128c1565b92505f91508190505b9450945094915050565b7fffffffff000000000000000000000000000000000000000000000000000000008116811461145f575f80fd5b5f60208284031215612908575f80fd5b813561269a816128cb565b6001600160a01b038116811461145f575f80fd5b5f8060408385031215612938575f80fd5b823561294381612913565b946020939093013593505050565b5f60208284031215612961575f80fd5b5035919050565b5f8060408385031215612979575f80fd5b82359150602083013561298b81612913565b809150509250929050565b5f805f80608085870312156129a9575f80fd5b84356129b481612913565b935060208501356129c481612913565b93969395505050506040820135916060013590565b5f805f606084860312156129eb575f80fd5b83356129f681612913565b9250602084013591506040840135612a0d81612913565b809150509250925092565b5f8083601f840112612a28575f80fd5b50813567ffffffffffffffff811115612a3f575f80fd5b602083019150836020828501011115612a56575f80fd5b9250929050565b5f805f8060608587031215612a70575f80fd5b8435612a7b81612913565b935060208501359250604085013567ffffffffffffffff811115612a9d575f80fd5b612aa987828801612a18565b95989497509550505050565b5f805f8060808587031215612ac8575f80fd5b8435612ad381612913565b935060208501359250604085013591506060850135612af181612913565b939692955090935050565b5f805f805f8060a08789031215612b11575f80fd5b8635612b1c81612913565b95506020870135612b2c81612913565b945060408701359350606087013567ffffffffffffffff80821115612b4f575f80fd5b908801906040828b031215612b62575f80fd5b90935060808801359080821115612b77575f80fd5b50612b8489828a01612a18565b979a9699509497509295939492505050565b5f60208284031215612ba6575f80fd5b813561269a81612913565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b7fff00000000000000000000000000000000000000000000000000000000000000881681525f602060e06020840152612c1b60e084018a612bb1565b8381036040850152612c2d818a612bb1565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825260208088019350909101905f5b81811015612c8057835183529284019291840191600101612c64565b50909c9b505050505050505050505050565b5f8083601f840112612ca2575f80fd5b50813567ffffffffffffffff811115612cb9575f80fd5b6020830191508360208260051b8501011115612a56575f80fd5b5f805f805f805f8060a0898b031215612cea575f80fd5b8835612cf581612913565b97506020890135612d0581612913565b9650604089013567ffffffffffffffff80821115612d21575f80fd5b612d2d8c838d01612c92565b909850965060608b0135915080821115612d45575f80fd5b612d518c838d01612c92565b909650945060808b0135915080821115612d69575f80fd5b50612d768b828c01612a18565b999c989b5096995094979396929594505050565b5f805f805f8060a08789031215612d9f575f80fd5b8635612daa81612913565b95506020870135612dba81612913565b94506040870135935060608701359250608087013567ffffffffffffffff811115612de3575f80fd5b612b8489828a01612a18565b5f60208284031215612dff575f80fd5b815161269a81612913565b8581526001600160a01b038516602082015283604082015260806060820152816080820152818360a08301375f81830160a090810191909152601f909201601f19160101949350505050565b5f60208284031215612e66575f80fd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b8581525f6001600160a01b03808716602084015280861660408401525083606083015260a06080830152612efe60a0830184612bb1565b979650505050505050565b81810381811115610679577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612f74575f80fd5b83018035915067ffffffffffffffff821115612f8e575f80fd5b602001915036819003821315612a56575f80fd5b600181811c90821680612fb657607f821691505b602082108103612fed577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b5f82518060208501845e5f920191825250919050565b80516020808301519190811015612fed575f1960209190910360031b1b16919050565b5f6020828403121561303c575f80fd5b815161269a816128cb565b601f82111561071457805f5260205f20601f840160051c8101602085101561306c5750805b601f840160051c820191505b81811015610926575f8155600101613078565b815167ffffffffffffffff8111156130a5576130a5612e6d565b6130b9816130b38454612fa2565b84613047565b602080601f8311600181146130ec575f84156130d55750858301515b5f19600386901b1c1916600185901b17855561122f565b5f85815260208120601f198616915b8281101561311a578886015182559484019460019091019084016130fb565b508582101561313757878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd"; diff --git a/src/generated/0_1_2/ST0xOrchestratorBeaconSetDeployer.pointers.sol b/src/generated/0_1_2/ST0xOrchestratorBeaconSetDeployer.pointers.sol deleted file mode 100644 index 24163260..00000000 --- a/src/generated/0_1_2/ST0xOrchestratorBeaconSetDeployer.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x61d4098eb564665d48f4ca6fefa6396b6ecd3ff9cb72df7760f06e80ca56292b); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0xBd81E4B0992E6fA49812e341f917c05f5c97728d); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"60a0604052348015600e575f80fd5b507377ab9b240cac5f37a5d4d51651936ea1d61df1a2738e4bdeec7ceb9570d440676345da1dce10329f5b6040516043906083565b6001600160a01b03928316815291166020820152604001604051809103905ff0801580156072573d5f803e3d5ffd5b506001600160a01b03166080526090565b6104f7806109d083390190565b6080516109226100ae5f395f81816070015261025201526109225ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c806301ffc9a714610043578063429b15441461006b5780634c96a389146100b7575b5f80fd5b610056610051366004610309565b6100ca565b60405190151581526020015b60405180910390f35b6100927f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610062565b6100926100c536600461034f565b610162565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f4c96a38900000000000000000000000000000000000000000000000000000000148061015c57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82166101b0576040517f9905827b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405173ffffffffffffffffffffffffffffffffffffffff831660248201525f90604401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc4d66de800000000000000000000000000000000000000000000000000000000179052519091505f907f000000000000000000000000000000000000000000000000000000000000000090839061027d906102fc565b610288929190610382565b604051809103905ff0801580156102a1573d5f803e3d5ffd5b5060405173ffffffffffffffffffffffffffffffffffffffff86811682529192509082169033907fa0d99d93cf7a5f89661fa0829369a7e4896e755871efe65440bab2429387d55b9060200160405180910390a39392505050565b61052f806103f383390190565b5f60208284031215610319575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610348575f80fd5b9392505050565b5f6020828403121561035f575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610348575f80fd5b73ffffffffffffffffffffffffffffffffffffffff83168152604060208201525f82518060408401528060208501606085015e5f6060828501015260607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f830116840101915050939250505056fe60a060405260405161052f38038061052f83398101604081905261002291610331565b61002c828261003e565b506001600160a01b031660805261040d565b610047826100fb565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a28051156100ef576100ea826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e491906103ed565b82610209565b505050565b6100f76102aa565b5050565b806001600160a01b03163b5f0361013557604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b815290515f92841691635c60da1b9160048083019260209291908290030181865afa1580156101ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d291906103ed565b9050806001600160a01b03163b5f036100f757604051634c9c8ce360e01b81526001600160a01b038216600482015260240161012c565b60605f61021684846102cb565b905080801561023757505f3d118061023757505f846001600160a01b03163b115b1561024c576102446102de565b9150506102a4565b801561027657604051639996b31560e01b81526001600160a01b038516600482015260240161012c565b3d15610289576102846102f7565b6102a2565b60405163d6bda27560e01b815260040160405180910390fd5b505b92915050565b34156102c95760405163b398979f60e01b815260040160405180910390fd5b565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b6040513d5f823e3d81fd5b80516001600160a01b0381168114610318575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215610342575f80fd5b61034b83610302565b60208401519092506001600160401b0380821115610367575f80fd5b818501915085601f83011261037a575f80fd5b81518181111561038c5761038c61031d565b604051601f8201601f19908116603f011681019083821181831017156103b4576103b461031d565b816040528281528860208487010111156103cc575f80fd5b8260208601602083015e5f6020848301015280955050505050509250929050565b5f602082840312156103fd575f80fd5b61040682610302565b9392505050565b60805161010b6104245f395f6023015261010b5ff3fe608060405261000c61000e565b005b61001e610019610020565b6100b3565b565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561008a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100ae91906100d1565b905090565b365f80375f80365f845af43d5f803e8080156100cd573d5ff35b3d5ffd5b5f602082840312156100e1575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610104575f80fd5b939250505056608060405234801561000f575f80fd5b506040516104f73803806104f783398101604081905261002e9161015f565b806001600160a01b03811661005d57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b61006681610077565b50610070826100c6565b5050610190565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b806001600160a01b03163b5f036100fb5760405163211eb15960e21b81526001600160a01b0382166004820152602401610054565b600180546001600160a01b0319166001600160a01b0383169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b80516001600160a01b038116811461015a575f80fd5b919050565b5f8060408385031215610170575f80fd5b61017983610144565b915061018760208401610144565b90509250929050565b61035a8061019d5f395ff3fe608060405234801561000f575f80fd5b5060043610610064575f3560e01c8063715018a61161004d578063715018a6146100c05780638da5cb5b146100c8578063f2fde38b146100e5575f80fd5b80633659cfe6146100685780635c60da1b1461007d575b5f80fd5b61007b610076366004610320565b6100f8565b005b60015473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61007b61010c565b5f5473ffffffffffffffffffffffffffffffffffffffff16610097565b61007b6100f3366004610320565b61011f565b610100610184565b610109816101d6565b50565b610114610184565b61011d5f6102ac565b565b610127610184565b73ffffffffffffffffffffffffffffffffffffffff811661017b576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f60048201526024015b60405180910390fd5b610109816102ac565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461011d576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610172565b8073ffffffffffffffffffffffffffffffffffffffff163b5f0361023e576040517f847ac56400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602401610172565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f60208284031215610330575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610353575f80fd5b939250505056"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b506004361061003f575f3560e01c806301ffc9a714610043578063429b15441461006b5780634c96a389146100b7575b5f80fd5b610056610051366004610309565b6100ca565b60405190151581526020015b60405180910390f35b6100927f000000000000000000000000a94ab2bedc6a50d86af29343d4bfda01cd27150981565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610062565b6100926100c536600461034f565b610162565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f4c96a38900000000000000000000000000000000000000000000000000000000148061015c57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82166101b0576040517f9905827b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405173ffffffffffffffffffffffffffffffffffffffff831660248201525f90604401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc4d66de800000000000000000000000000000000000000000000000000000000179052519091505f907f000000000000000000000000a94ab2bedc6a50d86af29343d4bfda01cd27150990839061027d906102fc565b610288929190610382565b604051809103905ff0801580156102a1573d5f803e3d5ffd5b5060405173ffffffffffffffffffffffffffffffffffffffff86811682529192509082169033907fa0d99d93cf7a5f89661fa0829369a7e4896e755871efe65440bab2429387d55b9060200160405180910390a39392505050565b61052f806103f383390190565b5f60208284031215610319575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610348575f80fd5b9392505050565b5f6020828403121561035f575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610348575f80fd5b73ffffffffffffffffffffffffffffffffffffffff83168152604060208201525f82518060408401528060208501606085015e5f6060828501015260607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f830116840101915050939250505056fe60a060405260405161052f38038061052f83398101604081905261002291610331565b61002c828261003e565b506001600160a01b031660805261040d565b610047826100fb565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a28051156100ef576100ea826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e491906103ed565b82610209565b505050565b6100f76102aa565b5050565b806001600160a01b03163b5f0361013557604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b815290515f92841691635c60da1b9160048083019260209291908290030181865afa1580156101ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d291906103ed565b9050806001600160a01b03163b5f036100f757604051634c9c8ce360e01b81526001600160a01b038216600482015260240161012c565b60605f61021684846102cb565b905080801561023757505f3d118061023757505f846001600160a01b03163b115b1561024c576102446102de565b9150506102a4565b801561027657604051639996b31560e01b81526001600160a01b038516600482015260240161012c565b3d15610289576102846102f7565b6102a2565b60405163d6bda27560e01b815260040160405180910390fd5b505b92915050565b34156102c95760405163b398979f60e01b815260040160405180910390fd5b565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b6040513d5f823e3d81fd5b80516001600160a01b0381168114610318575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215610342575f80fd5b61034b83610302565b60208401519092506001600160401b0380821115610367575f80fd5b818501915085601f83011261037a575f80fd5b81518181111561038c5761038c61031d565b604051601f8201601f19908116603f011681019083821181831017156103b4576103b461031d565b816040528281528860208487010111156103cc575f80fd5b8260208601602083015e5f6020848301015280955050505050509250929050565b5f602082840312156103fd575f80fd5b61040682610302565b9392505050565b60805161010b6104245f395f6023015261010b5ff3fe608060405261000c61000e565b005b61001e610019610020565b6100b3565b565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561008a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100ae91906100d1565b905090565b365f80375f80365f845af43d5f803e8080156100cd573d5ff35b3d5ffd5b5f602082840312156100e1575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610104575f80fd5b939250505056"; diff --git a/src/generated/0_1_2/StoxCorporateActionsFacet.pointers.sol b/src/generated/0_1_2/StoxCorporateActionsFacet.pointers.sol deleted file mode 100644 index a7169c16..00000000 --- a/src/generated/0_1_2/StoxCorporateActionsFacet.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x2a67c52129dff74d956bb7dcde1aac598c28dd29685237aca56dccb1d49bd6f8); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x51f78B77EdffDB62b8AeB753066C318a46D05D74); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"60a0604052348015600e575f80fd5b50306080526080516120b461005c5f395f8181610177015281816101e5015281816102c201528181610325015281816103970152818161055f015281816105c301526106fa01526120b45ff3fe608060405234801561000f575f80fd5b5060043610610085575f3560e01c8063b21a249411610058578063b21a249414610101578063bb7bb45a14610121578063dad601be14610137578063e388df491461014a575f80fd5b80631cb5642f14610089578063358116b9146100c65780634e6c280e146100db57806379ba4305146100ee575b5f80fd5b61009c610097366004611b4b565b61015d565b60408051938452602084019290925267ffffffffffffffff16908201526060015b60405180910390f35b6100d96100d4366004611b75565b6101ce565b005b61009c6100e9366004611b4b565b6102a8565b61009c6100fc366004611b8c565b61030b565b61011461010f366004611b75565b61037e565b6040516100bd9190611bec565b610129610547565b6040519081526020016100bd565b610129610145366004611bfe565b6105ab565b61009c610158366004611b8c565b6106e0565b5f808073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036101b6576040516309e815f560e01b815260040160405180910390fd5b6101c08585610744565b9250925092505b9250925092565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610224576040516309e815f560e01b815260040160405180910390fd5b610270337f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e78360405160200161025c91815260200190565b604051602081830303815290604052610772565b6102798161086c565b604051819033907f94041431cee1a4c20be97117d396e73eb1e601e124b48fbc5dc07397c31d5f8a905f90a350565b5f808073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610301576040516309e815f560e01b815260040160405180910390fd5b6101c08585610a49565b5f808073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610364576040516309e815f560e01b815260040160405180910390fd5b61036f868686610a59565b92509250925093509350939050565b606073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036103d6576040516309e815f560e01b815260040160405180910390fd5b5f6103df610a87565b60028101549091508310610427576040517f029c6c35000000000000000000000000000000000000000000000000000000008152600481018490526024015b60405180910390fd5b80600201838154811061043c5761043c611c86565b5f918252602082206001600590920201015467ffffffffffffffff169003610493576040517f029c6c350000000000000000000000000000000000000000000000000000000081526004810184905260240161041e565b8060020183815481106104a8576104a8611c86565b905f5260205f20906005020160040180546104c290611cb3565b80601f01602080910402602001604051908101604052809291908181526020018280546104ee90611cb3565b80156105395780601f1061051057610100808354040283529160200191610539565b820191905f5260205f20905b81548152906001019060200180831161051c57829003601f168201915b50505050509150505b919050565b5f73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016300361059e576040516309e815f560e01b815260040160405180910390fd5b6105a6610b06565b905090565b5f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610602576040516309e815f560e01b815260040160405180910390fd5b61063e337ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f898787878760405160200161025c9493929190611cfe565b5f61064a868585610b61565b90505f61068d828787878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610c1392505050565b6040805184815267ffffffffffffffff89166020820152919250829133917fa9c7784142e419f4660627c0c145b3873c2a415ce062f5c81bc19e6850f873d8910160405180910390a39695505050505050565b5f808073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610739576040516309e815f560e01b815260040160405180910390fd5b61036f868686610d2d565b5f805f806107545f198787610d38565b90505f8061076183610e40565b939650945091925050509250925092565b5f3073ffffffffffffffffffffffffffffffffffffffff1663d09edf316040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107bc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107e09190611d44565b6040517f59f89dda00000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff8216906359f89dda9061083990879087908790600401611d77565b5f604051808303815f87803b158015610850575f80fd5b505af1158015610862573d5f803e3d5ffd5b5050505050505050565b5f610875610a87565b600281015490915082106108b8576040517f029c6c350000000000000000000000000000000000000000000000000000000081526004810183905260240161041e565b5f8160020183815481106108ce576108ce611c86565b5f9182526020822060016005909202019081015490925067ffffffffffffffff16900361092a576040517f029c6c350000000000000000000000000000000000000000000000000000000081526004810184905260240161041e565b60018101544267ffffffffffffffff90911611610976576040517f99fa8c690000000000000000000000000000000000000000000000000000000081526004810184905260240161041e565b600281015460038201545f1982146109b6578084600201838154811061099e5761099e611c86565b905f5260205f209060050201600301819055506109ba565b8084555b5f1981146109f057818460020182815481106109d8576109d8611c86565b905f5260205f209060050201600201819055506109f8565b600184018290555b5f196002840181905560038401556001830180547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001690555f808455610a42906004850190611aeb565b5050505050565b5f805f806107545f198787610e9e565b5f805f80610a68878787610e9e565b90505f80610a7583610e40565b939a9099509297509195505050505050565b5f807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00610ad560017f2f8f8ecf1b7a1a3ceda8d15a9a2247a2377b3434535a87f1728021c13fec2e71611dd8565b604051602001610ae791815260200190565b60408051601f1981840301815291905280516020909101201692915050565b5f610b0f610a87565b600201545f03610b1e57505f90565b60065f80610b2f5f19846001610e9e565b90505b5f198114610b5a5781610b4481611deb565b925050610b5381846001610e9e565b9050610b32565b5092915050565b5f7f4548e57ae2f1604df75a3d17fecaff7dd11ad7a93d9f8a0dc05e7144f46f3f7c8403610bd757610bcf610bca84848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610f9092505050565b610fab565b506002610c0c565b6040517ff17c1d460000000000000000000000000000000000000000000000000000000081526004810185905260240161041e565b9392505050565b5f428367ffffffffffffffff1611610c69576040517fc0851c8a00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff8416600482015242602482015260440161041e565b5f610c72610a87565b9050610c7d816110ab565b60028101805460019081018083555f928352610c999190611dd8565b90505f826002018281548110610cb157610cb1611c86565b5f91825260209091206005909102018781556001810180547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff8916179055905060048101610d098682611e79565b505f19600282018190556003820155610d23838388611154565b5095945050505050565b5f805f80610a688787875b5f600783168103610d75576040517fbf3cad0b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f610d7e610a87565b60028101549091505f03610d96575f19915050610c0c565b5f5f198614610dc957816002018681548110610db457610db4611c86565b905f5260205f20906005020160020154610dcf565b81600101545b90506001846002811115610de557610de5611f35565b03610e0757610dfe82610df8848461129e565b87611318565b92505050610c0c565b6002846002811115610e1b57610e1b611f35565b03610e2b57610dfe828287611370565b610e36828287611318565b9695505050505050565b5f805f198303610e5457505f928392509050565b5f610e5d610a87565b6002018481548110610e7157610e71611c86565b5f91825260209091206005909102018054600190910154909567ffffffffffffffff909116945092505050565b5f600783168103610edb576040517fbf3cad0b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f610ee4610a87565b60028101549091505f03610efc575f19915050610c0c565b5f5f198614610f2f57816002018681548110610f1a57610f1a611c86565b905f5260205f20906005020160030154610f32565b81545b90506002846002811115610f4857610f48611f35565b03610f6157610dfe82610f5b84846113dc565b87611451565b6001846002811115610f7557610f75611f35565b03610f8557610dfe82828761149f565b610e36828287611451565b5f81806020019051810190610fa59190611f62565b92915050565b610fb5815f61150c565b15610fec576040517f018d151200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f610ff63061155c565b90505f611004600183611606565b9050611010838261162a565b1561104a576040517f06c327120000000000000000000000000000000000000000000000000000000081526004810184905260240161041e565b5f61105f61105984600a612059565b5f611606565b905061106b8482611679565b156110a5576040517fd24a8af10000000000000000000000000000000000000000000000000000000081526004810185905260240161041e565b50505050565b6002810154156110b85750565b6002810180546001018082555f828152919082906110d8576110d8611c86565b5f9182526020909120600160059092020181815590810180547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff161790555f1960028201819055600382015590506111396116c8565b5f808052600484016020526040902055505f19600590910155565b5f83600201838154811061116a5761116a611c86565b905f5260205f20906005020190505f846001015490505b5f198114610a42578267ffffffffffffffff168560020182815481106111a9576111a9611c86565b5f91825260209091206001600590920201015467ffffffffffffffff1611611272575f8560020182815481106111e1576111e1611c86565b905f5260205f2090600502016003015490508486600201838154811061120957611209611c86565b5f918252602090912060036005909202018101919091556002840183905583018190555f198114611262578486600201828154811061124a5761124a611c86565b905f5260205f2090600502016002018190555061126a565b600186018590555b505050505050565b84600201818154811061128757611287611c86565b905f5260205f209060050201600201549050611181565b5f5b5f1982141580156112e15750428360020183815481106112c2576112c2611c86565b5f91825260209091206001600590920201015467ffffffffffffffff16115b15611312578260020182815481106112fb576112fb611c86565b905f5260205f2090600502016002015491506112a0565b50919050565b5f5b5f198314611366575f84600201848154811061133857611338611c86565b905f5260205f209060050201905082815f0154165f1461135b5783915050610c0c565b60020154925061131a565b505f199392505050565b5f5b5f198314611366575f84600201848154811061139057611390611c86565b5f918252602090912060059091020160018101549091504267ffffffffffffffff909116116113bf5750611366565b80548316156113d15783915050610c0c565b600201549250611372565b5f5b5f19821415801561142057504283600201838154811061140057611400611c86565b5f91825260209091206001600590920201015467ffffffffffffffff1611155b156113125782600201828154811061143a5761143a611c86565b905f5260205f2090600502016003015491506113de565b5f5b5f198314611366575f84600201848154811061147157611471611c86565b905f5260205f209060050201905082815f0154165f146114945783915050610c0c565b600301549250611453565b5f5b5f198314611366575f8460020184815481106114bf576114bf611c86565b5f918252602090912060059091020160018101549091504267ffffffffffffffff90911611156114ef5750611366565b80548316156115015783915050610c0c565b6003015492506114a1565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d61154f8484848461174b565b1215979650505050505050565b5f611565611828565b6040517f54636d2b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316600482015273200e12d10bb0c5e4a17e7018f0f1161919bb9389906354636d2b906024016020604051808303815f875af11580156115e2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fa59190612067565b5f805f61161385856118ce565b915091506116218282611932565b95945050505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d61166d8484848461174b565b13979650505050505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d6116bc8484848461174b565b12979650505050505050565b5f807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0061171660017fb750591399365444a618527b69a54ce09476c8bde1ecff60f5aa1fe2b52605ff611dd8565b60405160200161172891815260200190565b60408051808303601f190181529190528051602090910120166002015492915050565b5f8085158415178187128286121817858414178015611770578685925092505061181f565b505f85841315611784575092949193919260015b8386035f8112604c82131780156117b75782156117a9575f899450945050505061181f565b885f9450945050505061181f565b600a82900a8981028a8282816117cf576117cf612087565b05146117fb5784156117eb575f8b96509650505050505061181f565b8a5f96509650505050505061181f565b841561181057889650945061181f9350505050565b955087945061181f9350505050565b94509492505050565b73200e12d10bb0c5e4a17e7018f0f1161919bb93893b158061187f575073200e12d10bb0c5e4a17e7018f0f1161919bb93893f7f1de7d717526cba131d684e312dedbf0852adef9cced9e36798ae4937f7145d4114155b156118cc576040517f73e6d7b300000000000000000000000000000000000000000000000000000000815273200e12d10bb0c5e4a17e7018f0f1161919bb9389600482015260240161041e565b565b5f805f805f6118dd878761198c565b92509250925080611924576040517fc4717966000000000000000000000000000000000000000000000000000000008152600481018490526024810183905260440161041e565b5090925090505b9250929050565b5f805f61193f85856119e5565b9150915080611984576040517f22c9f7bb000000000000000000000000000000000000000000000000000000008152600481018690526024810185905260440161041e565b509392505050565b5f808060ff841681037f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8611156119d757600a860460018201600a88065f14935093509350506101c7565b8593509150600190506101c7565b5f601b83900b8314838382611a49577d90e40fbeea1d3a4abc8955e946fe31cdcf66f634e1000000000000000000860515611a2957620186a0860595506005850194505b8586601b0b14611a4457600a86059550846001019450611a29565b611a5f565b855f03611a5f57505f92506001915061192b9050565b848560030b14611abb575f851215611a7f57505f925082915061192b9050565b6040517fd556b111000000000000000000000000000000000000000000000000000000008152600481018390526024810182905260440161041e565b50507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841660e084901b1791509250929050565b508054611af790611cb3565b5f825580601f10611b06575050565b601f0160209004905f5260205f2090810190611b229190611b25565b50565b5b80821115611b39575f8155600101611b26565b5090565b803560038110610542575f80fd5b5f8060408385031215611b5c575f80fd5b82359150611b6c60208401611b3d565b90509250929050565b5f60208284031215611b85575f80fd5b5035919050565b5f805f60608486031215611b9e575f80fd5b8335925060208401359150611bb560408501611b3d565b90509250925092565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610c0c6020830184611bbe565b5f805f8060608587031215611c11575f80fd5b84359350602085013567ffffffffffffffff8082168214611c30575f80fd5b90935060408601359080821115611c45575f80fd5b818701915087601f830112611c58575f80fd5b813581811115611c66575f80fd5b886020828501011115611c77575f80fd5b95989497505060200194505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b600181811c90821680611cc757607f821691505b602082108103611312577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b84815267ffffffffffffffff8416602082015260606040820152816060820152818360808301375f818301608090810191909152601f909201601f191601019392505050565b5f60208284031215611d54575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610c0c575f80fd5b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f6116216060830184611bbe565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b81810381811115610fa557610fa5611dab565b5f5f198203611dfc57611dfc611dab565b5060010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b601f821115611e7457805f5260205f20601f840160051c81016020851015611e555750805b601f840160051c820191505b81811015610a42575f8155600101611e61565b505050565b815167ffffffffffffffff811115611e9357611e93611e03565b611ea781611ea18454611cb3565b84611e30565b602080601f831160018114611eda575f8415611ec35750858301515b5f19600386901b1c1916600185901b17855561126a565b5f85815260208120601f198616915b82811015611f0857888601518255948401946001909101908401611ee9565b5085821015611f2557878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f60208284031215611f72575f80fd5b5051919050565b600181815b80851115611fb357815f1904821115611f9957611f99611dab565b80851615611fa657918102915b93841c9390800290611f7e565b509250929050565b5f82611fc957506001610fa5565b81611fd557505f610fa5565b8160018114611feb5760028114611ff557612011565b6001915050610fa5565b60ff84111561200657612006611dab565b50506001821b610fa5565b5060208310610133831016604e8410600b8410161715612034575081810a610fa5565b61203e8383611f79565b805f190482111561205157612051611dab565b029392505050565b5f610c0c60ff841683611fbb565b5f60208284031215612077575f80fd5b815160ff81168114610c0c575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b5060043610610085575f3560e01c8063b21a249411610058578063b21a249414610101578063bb7bb45a14610121578063dad601be14610137578063e388df491461014a575f80fd5b80631cb5642f14610089578063358116b9146100c65780634e6c280e146100db57806379ba4305146100ee575b5f80fd5b61009c610097366004611b4b565b61015d565b60408051938452602084019290925267ffffffffffffffff16908201526060015b60405180910390f35b6100d96100d4366004611b75565b6101ce565b005b61009c6100e9366004611b4b565b6102a8565b61009c6100fc366004611b8c565b61030b565b61011461010f366004611b75565b61037e565b6040516100bd9190611bec565b610129610547565b6040519081526020016100bd565b610129610145366004611bfe565b6105ab565b61009c610158366004611b8c565b6106e0565b5f808073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000051f78b77edffdb62b8aeb753066c318a46d05d741630036101b6576040516309e815f560e01b815260040160405180910390fd5b6101c08585610744565b9250925092505b9250925092565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000051f78b77edffdb62b8aeb753066c318a46d05d74163003610224576040516309e815f560e01b815260040160405180910390fd5b610270337f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e78360405160200161025c91815260200190565b604051602081830303815290604052610772565b6102798161086c565b604051819033907f94041431cee1a4c20be97117d396e73eb1e601e124b48fbc5dc07397c31d5f8a905f90a350565b5f808073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000051f78b77edffdb62b8aeb753066c318a46d05d74163003610301576040516309e815f560e01b815260040160405180910390fd5b6101c08585610a49565b5f808073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000051f78b77edffdb62b8aeb753066c318a46d05d74163003610364576040516309e815f560e01b815260040160405180910390fd5b61036f868686610a59565b92509250925093509350939050565b606073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000051f78b77edffdb62b8aeb753066c318a46d05d741630036103d6576040516309e815f560e01b815260040160405180910390fd5b5f6103df610a87565b60028101549091508310610427576040517f029c6c35000000000000000000000000000000000000000000000000000000008152600481018490526024015b60405180910390fd5b80600201838154811061043c5761043c611c86565b5f918252602082206001600590920201015467ffffffffffffffff169003610493576040517f029c6c350000000000000000000000000000000000000000000000000000000081526004810184905260240161041e565b8060020183815481106104a8576104a8611c86565b905f5260205f20906005020160040180546104c290611cb3565b80601f01602080910402602001604051908101604052809291908181526020018280546104ee90611cb3565b80156105395780601f1061051057610100808354040283529160200191610539565b820191905f5260205f20905b81548152906001019060200180831161051c57829003601f168201915b50505050509150505b919050565b5f73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000051f78b77edffdb62b8aeb753066c318a46d05d7416300361059e576040516309e815f560e01b815260040160405180910390fd5b6105a6610b06565b905090565b5f73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000051f78b77edffdb62b8aeb753066c318a46d05d74163003610602576040516309e815f560e01b815260040160405180910390fd5b61063e337ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f898787878760405160200161025c9493929190611cfe565b5f61064a868585610b61565b90505f61068d828787878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610c1392505050565b6040805184815267ffffffffffffffff89166020820152919250829133917fa9c7784142e419f4660627c0c145b3873c2a415ce062f5c81bc19e6850f873d8910160405180910390a39695505050505050565b5f808073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000051f78b77edffdb62b8aeb753066c318a46d05d74163003610739576040516309e815f560e01b815260040160405180910390fd5b61036f868686610d2d565b5f805f806107545f198787610d38565b90505f8061076183610e40565b939650945091925050509250925092565b5f3073ffffffffffffffffffffffffffffffffffffffff1663d09edf316040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107bc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107e09190611d44565b6040517f59f89dda00000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff8216906359f89dda9061083990879087908790600401611d77565b5f604051808303815f87803b158015610850575f80fd5b505af1158015610862573d5f803e3d5ffd5b5050505050505050565b5f610875610a87565b600281015490915082106108b8576040517f029c6c350000000000000000000000000000000000000000000000000000000081526004810183905260240161041e565b5f8160020183815481106108ce576108ce611c86565b5f9182526020822060016005909202019081015490925067ffffffffffffffff16900361092a576040517f029c6c350000000000000000000000000000000000000000000000000000000081526004810184905260240161041e565b60018101544267ffffffffffffffff90911611610976576040517f99fa8c690000000000000000000000000000000000000000000000000000000081526004810184905260240161041e565b600281015460038201545f1982146109b6578084600201838154811061099e5761099e611c86565b905f5260205f209060050201600301819055506109ba565b8084555b5f1981146109f057818460020182815481106109d8576109d8611c86565b905f5260205f209060050201600201819055506109f8565b600184018290555b5f196002840181905560038401556001830180547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001690555f808455610a42906004850190611aeb565b5050505050565b5f805f806107545f198787610e9e565b5f805f80610a68878787610e9e565b90505f80610a7583610e40565b939a9099509297509195505050505050565b5f807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00610ad560017f2f8f8ecf1b7a1a3ceda8d15a9a2247a2377b3434535a87f1728021c13fec2e71611dd8565b604051602001610ae791815260200190565b60408051601f1981840301815291905280516020909101201692915050565b5f610b0f610a87565b600201545f03610b1e57505f90565b60065f80610b2f5f19846001610e9e565b90505b5f198114610b5a5781610b4481611deb565b925050610b5381846001610e9e565b9050610b32565b5092915050565b5f7f4548e57ae2f1604df75a3d17fecaff7dd11ad7a93d9f8a0dc05e7144f46f3f7c8403610bd757610bcf610bca84848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610f9092505050565b610fab565b506002610c0c565b6040517ff17c1d460000000000000000000000000000000000000000000000000000000081526004810185905260240161041e565b9392505050565b5f428367ffffffffffffffff1611610c69576040517fc0851c8a00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff8416600482015242602482015260440161041e565b5f610c72610a87565b9050610c7d816110ab565b60028101805460019081018083555f928352610c999190611dd8565b90505f826002018281548110610cb157610cb1611c86565b5f91825260209091206005909102018781556001810180547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff8916179055905060048101610d098682611e79565b505f19600282018190556003820155610d23838388611154565b5095945050505050565b5f805f80610a688787875b5f600783168103610d75576040517fbf3cad0b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f610d7e610a87565b60028101549091505f03610d96575f19915050610c0c565b5f5f198614610dc957816002018681548110610db457610db4611c86565b905f5260205f20906005020160020154610dcf565b81600101545b90506001846002811115610de557610de5611f35565b03610e0757610dfe82610df8848461129e565b87611318565b92505050610c0c565b6002846002811115610e1b57610e1b611f35565b03610e2b57610dfe828287611370565b610e36828287611318565b9695505050505050565b5f805f198303610e5457505f928392509050565b5f610e5d610a87565b6002018481548110610e7157610e71611c86565b5f91825260209091206005909102018054600190910154909567ffffffffffffffff909116945092505050565b5f600783168103610edb576040517fbf3cad0b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f610ee4610a87565b60028101549091505f03610efc575f19915050610c0c565b5f5f198614610f2f57816002018681548110610f1a57610f1a611c86565b905f5260205f20906005020160030154610f32565b81545b90506002846002811115610f4857610f48611f35565b03610f6157610dfe82610f5b84846113dc565b87611451565b6001846002811115610f7557610f75611f35565b03610f8557610dfe82828761149f565b610e36828287611451565b5f81806020019051810190610fa59190611f62565b92915050565b610fb5815f61150c565b15610fec576040517f018d151200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f610ff63061155c565b90505f611004600183611606565b9050611010838261162a565b1561104a576040517f06c327120000000000000000000000000000000000000000000000000000000081526004810184905260240161041e565b5f61105f61105984600a612059565b5f611606565b905061106b8482611679565b156110a5576040517fd24a8af10000000000000000000000000000000000000000000000000000000081526004810185905260240161041e565b50505050565b6002810154156110b85750565b6002810180546001018082555f828152919082906110d8576110d8611c86565b5f9182526020909120600160059092020181815590810180547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff161790555f1960028201819055600382015590506111396116c8565b5f808052600484016020526040902055505f19600590910155565b5f83600201838154811061116a5761116a611c86565b905f5260205f20906005020190505f846001015490505b5f198114610a42578267ffffffffffffffff168560020182815481106111a9576111a9611c86565b5f91825260209091206001600590920201015467ffffffffffffffff1611611272575f8560020182815481106111e1576111e1611c86565b905f5260205f2090600502016003015490508486600201838154811061120957611209611c86565b5f918252602090912060036005909202018101919091556002840183905583018190555f198114611262578486600201828154811061124a5761124a611c86565b905f5260205f2090600502016002018190555061126a565b600186018590555b505050505050565b84600201818154811061128757611287611c86565b905f5260205f209060050201600201549050611181565b5f5b5f1982141580156112e15750428360020183815481106112c2576112c2611c86565b5f91825260209091206001600590920201015467ffffffffffffffff16115b15611312578260020182815481106112fb576112fb611c86565b905f5260205f2090600502016002015491506112a0565b50919050565b5f5b5f198314611366575f84600201848154811061133857611338611c86565b905f5260205f209060050201905082815f0154165f1461135b5783915050610c0c565b60020154925061131a565b505f199392505050565b5f5b5f198314611366575f84600201848154811061139057611390611c86565b5f918252602090912060059091020160018101549091504267ffffffffffffffff909116116113bf5750611366565b80548316156113d15783915050610c0c565b600201549250611372565b5f5b5f19821415801561142057504283600201838154811061140057611400611c86565b5f91825260209091206001600590920201015467ffffffffffffffff1611155b156113125782600201828154811061143a5761143a611c86565b905f5260205f2090600502016003015491506113de565b5f5b5f198314611366575f84600201848154811061147157611471611c86565b905f5260205f209060050201905082815f0154165f146114945783915050610c0c565b600301549250611453565b5f5b5f198314611366575f8460020184815481106114bf576114bf611c86565b5f918252602090912060059091020160018101549091504267ffffffffffffffff90911611156114ef5750611366565b80548316156115015783915050610c0c565b6003015492506114a1565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d61154f8484848461174b565b1215979650505050505050565b5f611565611828565b6040517f54636d2b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316600482015273200e12d10bb0c5e4a17e7018f0f1161919bb9389906354636d2b906024016020604051808303815f875af11580156115e2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fa59190612067565b5f805f61161385856118ce565b915091506116218282611932565b95945050505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d61166d8484848461174b565b13979650505050505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d6116bc8484848461174b565b12979650505050505050565b5f807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0061171660017fb750591399365444a618527b69a54ce09476c8bde1ecff60f5aa1fe2b52605ff611dd8565b60405160200161172891815260200190565b60408051808303601f190181529190528051602090910120166002015492915050565b5f8085158415178187128286121817858414178015611770578685925092505061181f565b505f85841315611784575092949193919260015b8386035f8112604c82131780156117b75782156117a9575f899450945050505061181f565b885f9450945050505061181f565b600a82900a8981028a8282816117cf576117cf612087565b05146117fb5784156117eb575f8b96509650505050505061181f565b8a5f96509650505050505061181f565b841561181057889650945061181f9350505050565b955087945061181f9350505050565b94509492505050565b73200e12d10bb0c5e4a17e7018f0f1161919bb93893b158061187f575073200e12d10bb0c5e4a17e7018f0f1161919bb93893f7f1de7d717526cba131d684e312dedbf0852adef9cced9e36798ae4937f7145d4114155b156118cc576040517f73e6d7b300000000000000000000000000000000000000000000000000000000815273200e12d10bb0c5e4a17e7018f0f1161919bb9389600482015260240161041e565b565b5f805f805f6118dd878761198c565b92509250925080611924576040517fc4717966000000000000000000000000000000000000000000000000000000008152600481018490526024810183905260440161041e565b5090925090505b9250929050565b5f805f61193f85856119e5565b9150915080611984576040517f22c9f7bb000000000000000000000000000000000000000000000000000000008152600481018690526024810185905260440161041e565b509392505050565b5f808060ff841681037f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8611156119d757600a860460018201600a88065f14935093509350506101c7565b8593509150600190506101c7565b5f601b83900b8314838382611a49577d90e40fbeea1d3a4abc8955e946fe31cdcf66f634e1000000000000000000860515611a2957620186a0860595506005850194505b8586601b0b14611a4457600a86059550846001019450611a29565b611a5f565b855f03611a5f57505f92506001915061192b9050565b848560030b14611abb575f851215611a7f57505f925082915061192b9050565b6040517fd556b111000000000000000000000000000000000000000000000000000000008152600481018390526024810182905260440161041e565b50507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841660e084901b1791509250929050565b508054611af790611cb3565b5f825580601f10611b06575050565b601f0160209004905f5260205f2090810190611b229190611b25565b50565b5b80821115611b39575f8155600101611b26565b5090565b803560038110610542575f80fd5b5f8060408385031215611b5c575f80fd5b82359150611b6c60208401611b3d565b90509250929050565b5f60208284031215611b85575f80fd5b5035919050565b5f805f60608486031215611b9e575f80fd5b8335925060208401359150611bb560408501611b3d565b90509250925092565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610c0c6020830184611bbe565b5f805f8060608587031215611c11575f80fd5b84359350602085013567ffffffffffffffff8082168214611c30575f80fd5b90935060408601359080821115611c45575f80fd5b818701915087601f830112611c58575f80fd5b813581811115611c66575f80fd5b886020828501011115611c77575f80fd5b95989497505060200194505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b600181811c90821680611cc757607f821691505b602082108103611312577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b84815267ffffffffffffffff8416602082015260606040820152816060820152818360808301375f818301608090810191909152601f909201601f191601019392505050565b5f60208284031215611d54575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610c0c575f80fd5b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f6116216060830184611bbe565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b81810381811115610fa557610fa5611dab565b5f5f198203611dfc57611dfc611dab565b5060010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b601f821115611e7457805f5260205f20601f840160051c81016020851015611e555750805b601f840160051c820191505b81811015610a42575f8155600101611e61565b505050565b815167ffffffffffffffff811115611e9357611e93611e03565b611ea781611ea18454611cb3565b84611e30565b602080601f831160018114611eda575f8415611ec35750858301515b5f19600386901b1c1916600185901b17855561126a565b5f85815260208120601f198616915b82811015611f0857888601518255948401946001909101908401611ee9565b5085821015611f2557878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f60208284031215611f72575f80fd5b5051919050565b600181815b80851115611fb357815f1904821115611f9957611f99611dab565b80851615611fa657918102915b93841c9390800290611f7e565b509250929050565b5f82611fc957506001610fa5565b81611fd557505f610fa5565b8160018114611feb5760028114611ff557612011565b6001915050610fa5565b60ff84111561200657612006611dab565b50506001821b610fa5565b5060208310610133831016604e8410600b8410161715612034575081810a610fa5565b61203e8383611f79565b805f190482111561205157612051611dab565b029392505050565b5f610c0c60ff841683611fbb565b5f60208284031215612077575f80fd5b815160ff81168114610c0c575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd"; diff --git a/src/generated/0_1_2/StoxOffchainAssetReceiptVaultAuthorizerV1.pointers.sol b/src/generated/0_1_2/StoxOffchainAssetReceiptVaultAuthorizerV1.pointers.sol deleted file mode 100644 index e161c73a..00000000 --- a/src/generated/0_1_2/StoxOffchainAssetReceiptVaultAuthorizerV1.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0xf8a1d9b2fa068bae3c1a607434db48364a5cdab3020bd7e315ed2662a3b35b5f); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x2EA0d35d0B1F57C42e6130f298930228bCbFDe9b); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"6080604052348015600e575f80fd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b611746806100d65f395ff3fe608060405234801561000f575f80fd5b506004361061009f575f3560e01c8063439fab911161007257806391d148541161005857806391d1485414610168578063a217fddf146101cc578063d547741f146101d3575f80fd5b8063439fab911461014257806359f89dda14610155575f80fd5b806301ffc9a7146100a3578063248a9ca3146100cb5780632f2ff15d1461011a57806336568abe1461012f575b5f80fd5b6100b66100b13660046112aa565b6101e6565b60405190151581526020015b60405180910390f35b61010c6100d93660046112f0565b5f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b6040519081526020016100c2565b61012d610128366004611328565b6102d9565b005b61012d61013d366004611328565b610322565b61010c610150366004611449565b610380565b61012d610163366004611483565b6106a0565b6100b6610176366004611328565b5f9182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b61010c5f81565b61012d6101e1366004611328565b610a49565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f59f89dda00000000000000000000000000000000000000000000000000000000148061027857507fffffffff0000000000000000000000000000000000000000000000000000000082167f439fab9100000000000000000000000000000000000000000000000000000000145b806102c457507fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000145b806102d357506102d382610a8c565b92915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015461031281610b22565b61031c8383610b2f565b50505050565b73ffffffffffffffffffffffffffffffffffffffff81163314610371576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61037b8282610c4d565b505050565b5f8061038a610d29565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156103b65750825b90505f8267ffffffffffffffff1660011480156103d25750303b155b9050811580156103e0575080155b15610417576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156104785784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b5f8780602001905181019061048d91906114d8565b90505f61049982610d51565b90507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc381146104cb5796506106359050565b6105157ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f897fd6075ca92e18a15ce0e8ecaaae57a112072844045d11beeb264aac5f85e0daf26110f9565b61053f7fd6075ca92e18a15ce0e8ecaaae57a112072844045d11beeb264aac5f85e0daf2806110f9565b6105897f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e77fe25ff801c3c463dad5f8999289b7b43090e0f6f5039ae7c220cbb762fe8ff3736110f9565b6105b37fe25ff801c3c463dad5f8999289b7b43090e0f6f5039ae7c220cbb762fe8ff373806110f9565b6105e07fd6075ca92e18a15ce0e8ecaaae57a112072844045d11beeb264aac5f85e0daf2835f0151610b2f565b5061060e7fe25ff801c3c463dad5f8999289b7b43090e0f6f5039ae7c220cbb762fe8ff373835f0151610b2f565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc3975050505b83156106965784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a8214806106ed57507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a4882145b156109b6575f805f7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a850361074d575f848060200190518101906107319190611536565b9050805f01519350806020015192508060600151915050610779565b5f84806020019051810190610762919061162b565b805160208201516080909201519095509093509150505b80156109ae5773ffffffffffffffffffffffffffffffffffffffff83161580156107e6575073ffffffffffffffffffffffffffffffffffffffff82165f9081527f96f78a99f93d631b75bc050854c9b764642c10564e41ed27c197a36ddabb1df9602052604090205460ff165b80610853575073ffffffffffffffffffffffffffffffffffffffff8216158015610853575073ffffffffffffffffffffffffffffffffffffffff83165f9081527f3907f76fa0fb1e5d0f263c5c4fe4316026052cf960c55a1c768106d8b9701c10602052604090205460ff165b1561086057505050505050565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a851480156108d2575073ffffffffffffffffffffffffffffffffffffffff86165f9081527f6ba48721fcbb2613af13d8285fe9ee4a081f7995464037bb5ea27397912881d2602052604090205460ff165b8061094a57507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a488514801561094a575073ffffffffffffffffffffffffffffffffffffffff86165f9081527f29e42896fa6edf5a5d7ff0bcd00acffbece6eb6cc7b44d0807bfd84929cc6e1b602052604090205460ff165b1561095757505050505050565b6040517ffe720f7800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8085166004830152831660248201526044015b60405180910390fd5b505050505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915290205460ff1615610a1157505050565b8282826040517f3ae4063b0000000000000000000000000000000000000000000000000000000081526004016109a5939291906116ed565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020526040902060010154610a8281610b22565b61031c8383610c4d565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806102d357507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146102d3565b610b2c813361119a565b50565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020818152604080842073ffffffffffffffffffffffffffffffffffffffff8616855290915282205460ff16610c44575f8481526020828152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610be03390565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506102d3565b5f9150506102d3565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020818152604080842073ffffffffffffffffffffffffffffffffffffffff8616855290915282205460ff1615610c44575f8481526020828152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506102d3565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006102d3565b5f610d5a611244565b815173ffffffffffffffffffffffffffffffffffffffff16610da8576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610df27f50a07cb25d0d864370863300b20987dfdae089abad71b607faf639d09d0533917f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b6110f9565b610e1c7f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b806110f9565b610e667f3dd35eca0ca8a128757fa464a5dfa4ad6cc4853cad96dce4e90fdbea4f0a52e37f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d6110f9565b610e907f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d806110f9565b610eda7f54f0af3716c79b30b8c228679d31d77a1a5f526c16af3262730e0a8de4363fed7fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c6110f9565b610f047fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c806110f9565b610f4e7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8217f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc026110f9565b610f787f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02806110f9565b610fc27f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e9828697fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d36110f9565b610fec7fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3806110f9565b6110197f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b835f0151610b2f565b506110477f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d835f0151610b2f565b506110757fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c835f0151610b2f565b506110a37f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02835f0151610b2f565b506110d17fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3835f0151610b2f565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc392915050565b7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268005f611152845f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b5f85815260208490526040808220600101869055519192508491839187917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a450505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16611240576040517fe2517d3f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602481018390526044016109a5565b5050565b61124c61124e565b565b61125661128c565b61124c576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f611295610d29565b5468010000000000000000900460ff16919050565b5f602082840312156112ba575f80fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146112e9575f80fd5b9392505050565b5f60208284031215611300575f80fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff81168114610b2c575f80fd5b5f8060408385031215611339575f80fd5b82359150602083013561134b81611307565b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60405160a0810167ffffffffffffffff811182821017156113a6576113a6611356565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156113d5576113d5611356565b604052919050565b5f82601f8301126113ec575f80fd5b813567ffffffffffffffff81111561140657611406611356565b6114196020601f19601f840116016113ac565b81815284602083860101111561142d575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60208284031215611459575f80fd5b813567ffffffffffffffff81111561146f575f80fd5b61147b848285016113dd565b949350505050565b5f805f60608486031215611495575f80fd5b83356114a081611307565b925060208401359150604084013567ffffffffffffffff8111156114c2575f80fd5b6114ce868287016113dd565b9150509250925092565b5f602082840312156114e8575f80fd5b6040516020810181811067ffffffffffffffff8211171561150b5761150b611356565b604052825161151981611307565b81529392505050565b80518015158114611531575f80fd5b919050565b5f60808284031215611546575f80fd5b6040516080810181811067ffffffffffffffff8211171561156957611569611356565b604052825161157781611307565b8152602083015161158781611307565b6020820152604083810151908201526115a260608401611522565b60608201529392505050565b5f82601f8301126115bd575f80fd5b8151602067ffffffffffffffff8211156115d9576115d9611356565b8160051b6115e88282016113ac565b9283528481018201928281019087851115611601575f80fd5b83870192505b8483101561162057825182529183019190830190611607565b979650505050505050565b5f6020828403121561163b575f80fd5b815167ffffffffffffffff80821115611652575f80fd5b9083019060a08286031215611665575f80fd5b61166d611383565b825161167881611307565b8152602083015161168881611307565b602082015260408301518281111561169e575f80fd5b6116aa878286016115ae565b6040830152506060830151828111156116c1575f80fd5b6116cd878286016115ae565b6060830152506116df60808401611522565b608082015295945050505050565b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f82518060608401528060208501608085015e5f608082850101526080601f19601f83011684010191505094935050505056"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b506004361061009f575f3560e01c8063439fab911161007257806391d148541161005857806391d1485414610168578063a217fddf146101cc578063d547741f146101d3575f80fd5b8063439fab911461014257806359f89dda14610155575f80fd5b806301ffc9a7146100a3578063248a9ca3146100cb5780632f2ff15d1461011a57806336568abe1461012f575b5f80fd5b6100b66100b13660046112aa565b6101e6565b60405190151581526020015b60405180910390f35b61010c6100d93660046112f0565b5f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b6040519081526020016100c2565b61012d610128366004611328565b6102d9565b005b61012d61013d366004611328565b610322565b61010c610150366004611449565b610380565b61012d610163366004611483565b6106a0565b6100b6610176366004611328565b5f9182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b61010c5f81565b61012d6101e1366004611328565b610a49565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f59f89dda00000000000000000000000000000000000000000000000000000000148061027857507fffffffff0000000000000000000000000000000000000000000000000000000082167f439fab9100000000000000000000000000000000000000000000000000000000145b806102c457507fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000145b806102d357506102d382610a8c565b92915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015461031281610b22565b61031c8383610b2f565b50505050565b73ffffffffffffffffffffffffffffffffffffffff81163314610371576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61037b8282610c4d565b505050565b5f8061038a610d29565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156103b65750825b90505f8267ffffffffffffffff1660011480156103d25750303b155b9050811580156103e0575080155b15610417576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156104785784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b5f8780602001905181019061048d91906114d8565b90505f61049982610d51565b90507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc381146104cb5796506106359050565b6105157ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f897fd6075ca92e18a15ce0e8ecaaae57a112072844045d11beeb264aac5f85e0daf26110f9565b61053f7fd6075ca92e18a15ce0e8ecaaae57a112072844045d11beeb264aac5f85e0daf2806110f9565b6105897f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e77fe25ff801c3c463dad5f8999289b7b43090e0f6f5039ae7c220cbb762fe8ff3736110f9565b6105b37fe25ff801c3c463dad5f8999289b7b43090e0f6f5039ae7c220cbb762fe8ff373806110f9565b6105e07fd6075ca92e18a15ce0e8ecaaae57a112072844045d11beeb264aac5f85e0daf2835f0151610b2f565b5061060e7fe25ff801c3c463dad5f8999289b7b43090e0f6f5039ae7c220cbb762fe8ff373835f0151610b2f565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc3975050505b83156106965784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a8214806106ed57507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a4882145b156109b6575f805f7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a850361074d575f848060200190518101906107319190611536565b9050805f01519350806020015192508060600151915050610779565b5f84806020019051810190610762919061162b565b805160208201516080909201519095509093509150505b80156109ae5773ffffffffffffffffffffffffffffffffffffffff83161580156107e6575073ffffffffffffffffffffffffffffffffffffffff82165f9081527f96f78a99f93d631b75bc050854c9b764642c10564e41ed27c197a36ddabb1df9602052604090205460ff165b80610853575073ffffffffffffffffffffffffffffffffffffffff8216158015610853575073ffffffffffffffffffffffffffffffffffffffff83165f9081527f3907f76fa0fb1e5d0f263c5c4fe4316026052cf960c55a1c768106d8b9701c10602052604090205460ff165b1561086057505050505050565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a851480156108d2575073ffffffffffffffffffffffffffffffffffffffff86165f9081527f6ba48721fcbb2613af13d8285fe9ee4a081f7995464037bb5ea27397912881d2602052604090205460ff165b8061094a57507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a488514801561094a575073ffffffffffffffffffffffffffffffffffffffff86165f9081527f29e42896fa6edf5a5d7ff0bcd00acffbece6eb6cc7b44d0807bfd84929cc6e1b602052604090205460ff165b1561095757505050505050565b6040517ffe720f7800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8085166004830152831660248201526044015b60405180910390fd5b505050505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915290205460ff1615610a1157505050565b8282826040517f3ae4063b0000000000000000000000000000000000000000000000000000000081526004016109a5939291906116ed565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020526040902060010154610a8281610b22565b61031c8383610c4d565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806102d357507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146102d3565b610b2c813361119a565b50565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020818152604080842073ffffffffffffffffffffffffffffffffffffffff8616855290915282205460ff16610c44575f8481526020828152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610be03390565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506102d3565b5f9150506102d3565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020818152604080842073ffffffffffffffffffffffffffffffffffffffff8616855290915282205460ff1615610c44575f8481526020828152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506102d3565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006102d3565b5f610d5a611244565b815173ffffffffffffffffffffffffffffffffffffffff16610da8576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610df27f50a07cb25d0d864370863300b20987dfdae089abad71b607faf639d09d0533917f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b6110f9565b610e1c7f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b806110f9565b610e667f3dd35eca0ca8a128757fa464a5dfa4ad6cc4853cad96dce4e90fdbea4f0a52e37f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d6110f9565b610e907f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d806110f9565b610eda7f54f0af3716c79b30b8c228679d31d77a1a5f526c16af3262730e0a8de4363fed7fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c6110f9565b610f047fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c806110f9565b610f4e7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8217f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc026110f9565b610f787f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02806110f9565b610fc27f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e9828697fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d36110f9565b610fec7fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3806110f9565b6110197f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b835f0151610b2f565b506110477f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d835f0151610b2f565b506110757fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c835f0151610b2f565b506110a37f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02835f0151610b2f565b506110d17fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3835f0151610b2f565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc392915050565b7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268005f611152845f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b5f85815260208490526040808220600101869055519192508491839187917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a450505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16611240576040517fe2517d3f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602481018390526044016109a5565b5050565b61124c61124e565b565b61125661128c565b61124c576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f611295610d29565b5468010000000000000000900460ff16919050565b5f602082840312156112ba575f80fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146112e9575f80fd5b9392505050565b5f60208284031215611300575f80fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff81168114610b2c575f80fd5b5f8060408385031215611339575f80fd5b82359150602083013561134b81611307565b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60405160a0810167ffffffffffffffff811182821017156113a6576113a6611356565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156113d5576113d5611356565b604052919050565b5f82601f8301126113ec575f80fd5b813567ffffffffffffffff81111561140657611406611356565b6114196020601f19601f840116016113ac565b81815284602083860101111561142d575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60208284031215611459575f80fd5b813567ffffffffffffffff81111561146f575f80fd5b61147b848285016113dd565b949350505050565b5f805f60608486031215611495575f80fd5b83356114a081611307565b925060208401359150604084013567ffffffffffffffff8111156114c2575f80fd5b6114ce868287016113dd565b9150509250925092565b5f602082840312156114e8575f80fd5b6040516020810181811067ffffffffffffffff8211171561150b5761150b611356565b604052825161151981611307565b81529392505050565b80518015158114611531575f80fd5b919050565b5f60808284031215611546575f80fd5b6040516080810181811067ffffffffffffffff8211171561156957611569611356565b604052825161157781611307565b8152602083015161158781611307565b6020820152604083810151908201526115a260608401611522565b60608201529392505050565b5f82601f8301126115bd575f80fd5b8151602067ffffffffffffffff8211156115d9576115d9611356565b8160051b6115e88282016113ac565b9283528481018201928281019087851115611601575f80fd5b83870192505b8483101561162057825182529183019190830190611607565b979650505050505050565b5f6020828403121561163b575f80fd5b815167ffffffffffffffff80821115611652575f80fd5b9083019060a08286031215611665575f80fd5b61166d611383565b825161167881611307565b8152602083015161168881611307565b602082015260408301518281111561169e575f80fd5b6116aa878286016115ae565b6040830152506060830151828111156116c1575f80fd5b6116cd878286016115ae565b6060830152506116df60808401611522565b608082015295945050505050565b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f82518060608401528060208501608085015e5f608082850101526080601f19601f83011684010191505094935050505056"; diff --git a/src/generated/0_1_2/StoxOffchainAssetReceiptVaultBeaconSetDeployer.pointers.sol b/src/generated/0_1_2/StoxOffchainAssetReceiptVaultBeaconSetDeployer.pointers.sol deleted file mode 100644 index 084be0fb..00000000 --- a/src/generated/0_1_2/StoxOffchainAssetReceiptVaultBeaconSetDeployer.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x621c1edbd850939acba8bcd999812a83999b5680d4ca6804e1995b95f138b9e5); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0xd64246e6b25F745f005E6233e050C9B879E660Dc); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"60c060405234801561000f575f80fd5b5060408051606081018252738e4bdeec7ceb9570d440676345da1dce10329f5b808252732df5cfe6d688ef9ff1b7c59a499d254b1527b28660208301819052732bcced626566ef1e65f922dd03748c5c7aa2d7488385015292519192916100759061010b565b6001600160a01b03928316815291166020820152604001604051809103905ff0801580156100a5573d5f803e3d5ffd5b506001600160a01b0316608052604080820151825191519091906100c89061010b565b6001600160a01b03928316815291166020820152604001604051809103905ff0801580156100f8573d5f803e3d5ffd5b506001600160a01b031660a05250610118565b6104f780610fd783390190565b60805160a051610e926101455f395f818160c701526102d801525f8181607b01526102630152610e925ff3fe608060405234801561000f575f80fd5b506004361061004a575f3560e01c806301ffc9a71461004e5780632c9b7f40146100765780632f77a1c1146100c25780634904fab3146100e9575b5f80fd5b61006161005c3660046105d0565b6100fc565b60405190151581526020015b60405180910390f35b61009d7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161006d565b61009d7f000000000000000000000000000000000000000000000000000000000000000081565b61009d6100f736600461075e565b610194565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f4ae8243200000000000000000000000000000000000000000000000000000000148061018e57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b6020810151606001515f9073ffffffffffffffffffffffffffffffffffffffff1615610212576020820151606001516040517ffc47d97600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116600482015260240160405180910390fd5b815173ffffffffffffffffffffffffffffffffffffffff16610260576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7f000000000000000000000000000000000000000000000000000000000000000060405161028e906105c3565b73ffffffffffffffffffffffffffffffffffffffff90911681526040602082018190525f90820152606001604051809103905ff0801580156102d2573d5f803e3d5ffd5b5090505f7f0000000000000000000000000000000000000000000000000000000000000000604051610303906105c3565b73ffffffffffffffffffffffffffffffffffffffff90911681526040602082018190525f90820152606001604051809103905ff080158015610347573d5f803e3d5ffd5b506040805173ffffffffffffffffffffffffffffffffffffffff80841660208301529293507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc39285169163439fab9191016040516020818303038152906040526040518263ffffffff1660e01b81526004016103c39190610894565b6020604051808303815f875af11580156103df573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061040391906108a6565b1461043a576040517f0219069c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8184602001516060019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc38173ffffffffffffffffffffffffffffffffffffffff1663439fab91866040516020016104c491906108bd565b6040516020818303038152906040526040518263ffffffff1660e01b81526004016104ef9190610894565b6020604051808303815f875af115801561050b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061052f91906108a6565b14610566576040517f09c5931500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805133815273ffffffffffffffffffffffffffffffffffffffff838116602083015284168183015290517fa0d99d93cf7a5f89661fa0829369a7e4896e755871efe65440bab2429387d55b9181900360600190a19392505050565b61052f8061096383390190565b5f602082840312156105e0575f80fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461060f575f80fd5b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff8111828210171561066657610666610616565b60405290565b6040516080810167ffffffffffffffff8111828210171561066657610666610616565b803573ffffffffffffffffffffffffffffffffffffffff811681146106b2575f80fd5b919050565b5f82601f8301126106c6575f80fd5b813567ffffffffffffffff808211156106e1576106e1610616565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561072757610727610616565b8160405283815286602085880101111561073f575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f6020828403121561076e575f80fd5b813567ffffffffffffffff80821115610785575f80fd5b9083019060408286031215610798575f80fd5b6107a0610643565b6107a98361068f565b81526020830135828111156107bc575f80fd5b9290920191608083870312156107d0575f80fd5b6107d861066c565b6107e18461068f565b81526020840135838111156107f4575f80fd5b610800888287016106b7565b602083015250604084013583811115610817575f80fd5b610823888287016106b7565b6040830152506108356060850161068f565b6060820152602082015295945050505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f61060f6020830184610848565b5f602082840312156108b6575f80fd5b5051919050565b602081525f73ffffffffffffffffffffffffffffffffffffffff8084511660208401526020840151604080850152818151166060850152602081015160808086015261090c60e0860182610848565b905060408201517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08683030160a08701526109478282610848565b9150508260608301511660c08601528093505050509291505056fe60a060405260405161052f38038061052f83398101604081905261002291610331565b61002c828261003e565b506001600160a01b031660805261040d565b610047826100fb565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a28051156100ef576100ea826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e491906103ed565b82610209565b505050565b6100f76102aa565b5050565b806001600160a01b03163b5f0361013557604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b815290515f92841691635c60da1b9160048083019260209291908290030181865afa1580156101ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d291906103ed565b9050806001600160a01b03163b5f036100f757604051634c9c8ce360e01b81526001600160a01b038216600482015260240161012c565b60605f61021684846102cb565b905080801561023757505f3d118061023757505f846001600160a01b03163b115b1561024c576102446102de565b9150506102a4565b801561027657604051639996b31560e01b81526001600160a01b038516600482015260240161012c565b3d15610289576102846102f7565b6102a2565b60405163d6bda27560e01b815260040160405180910390fd5b505b92915050565b34156102c95760405163b398979f60e01b815260040160405180910390fd5b565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b6040513d5f823e3d81fd5b80516001600160a01b0381168114610318575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215610342575f80fd5b61034b83610302565b60208401519092506001600160401b0380821115610367575f80fd5b818501915085601f83011261037a575f80fd5b81518181111561038c5761038c61031d565b604051601f8201601f19908116603f011681019083821181831017156103b4576103b461031d565b816040528281528860208487010111156103cc575f80fd5b8260208601602083015e5f6020848301015280955050505050509250929050565b5f602082840312156103fd575f80fd5b61040682610302565b9392505050565b60805161010b6104245f395f6023015261010b5ff3fe608060405261000c61000e565b005b61001e610019610020565b6100b3565b565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561008a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100ae91906100d1565b905090565b365f80375f80365f845af43d5f803e8080156100cd573d5ff35b3d5ffd5b5f602082840312156100e1575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610104575f80fd5b939250505056608060405234801561000f575f80fd5b506040516104f73803806104f783398101604081905261002e9161015f565b806001600160a01b03811661005d57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b61006681610077565b50610070826100c6565b5050610190565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b806001600160a01b03163b5f036100fb5760405163211eb15960e21b81526001600160a01b0382166004820152602401610054565b600180546001600160a01b0319166001600160a01b0383169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b80516001600160a01b038116811461015a575f80fd5b919050565b5f8060408385031215610170575f80fd5b61017983610144565b915061018760208401610144565b90509250929050565b61035a8061019d5f395ff3fe608060405234801561000f575f80fd5b5060043610610064575f3560e01c8063715018a61161004d578063715018a6146100c05780638da5cb5b146100c8578063f2fde38b146100e5575f80fd5b80633659cfe6146100685780635c60da1b1461007d575b5f80fd5b61007b610076366004610320565b6100f8565b005b60015473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61007b61010c565b5f5473ffffffffffffffffffffffffffffffffffffffff16610097565b61007b6100f3366004610320565b61011f565b610100610184565b610109816101d6565b50565b610114610184565b61011d5f6102ac565b565b610127610184565b73ffffffffffffffffffffffffffffffffffffffff811661017b576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f60048201526024015b60405180910390fd5b610109816102ac565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461011d576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610172565b8073ffffffffffffffffffffffffffffffffffffffff163b5f0361023e576040517f847ac56400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602401610172565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f60208284031215610330575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610353575f80fd5b939250505056"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b506004361061004a575f3560e01c806301ffc9a71461004e5780632c9b7f40146100765780632f77a1c1146100c25780634904fab3146100e9575b5f80fd5b61006161005c3660046105d0565b6100fc565b60405190151581526020015b60405180910390f35b61009d7f000000000000000000000000ace121ae30d754536863a546f41b147be11202db81565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161006d565b61009d7f00000000000000000000000024e98b8f8f951b1868df88762cef589aedbc01eb81565b61009d6100f736600461075e565b610194565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f4ae8243200000000000000000000000000000000000000000000000000000000148061018e57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b6020810151606001515f9073ffffffffffffffffffffffffffffffffffffffff1615610212576020820151606001516040517ffc47d97600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116600482015260240160405180910390fd5b815173ffffffffffffffffffffffffffffffffffffffff16610260576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7f000000000000000000000000ace121ae30d754536863a546f41b147be11202db60405161028e906105c3565b73ffffffffffffffffffffffffffffffffffffffff90911681526040602082018190525f90820152606001604051809103905ff0801580156102d2573d5f803e3d5ffd5b5090505f7f00000000000000000000000024e98b8f8f951b1868df88762cef589aedbc01eb604051610303906105c3565b73ffffffffffffffffffffffffffffffffffffffff90911681526040602082018190525f90820152606001604051809103905ff080158015610347573d5f803e3d5ffd5b506040805173ffffffffffffffffffffffffffffffffffffffff80841660208301529293507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc39285169163439fab9191016040516020818303038152906040526040518263ffffffff1660e01b81526004016103c39190610894565b6020604051808303815f875af11580156103df573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061040391906108a6565b1461043a576040517f0219069c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8184602001516060019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc38173ffffffffffffffffffffffffffffffffffffffff1663439fab91866040516020016104c491906108bd565b6040516020818303038152906040526040518263ffffffff1660e01b81526004016104ef9190610894565b6020604051808303815f875af115801561050b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061052f91906108a6565b14610566576040517f09c5931500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805133815273ffffffffffffffffffffffffffffffffffffffff838116602083015284168183015290517fa0d99d93cf7a5f89661fa0829369a7e4896e755871efe65440bab2429387d55b9181900360600190a19392505050565b61052f8061096383390190565b5f602082840312156105e0575f80fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461060f575f80fd5b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff8111828210171561066657610666610616565b60405290565b6040516080810167ffffffffffffffff8111828210171561066657610666610616565b803573ffffffffffffffffffffffffffffffffffffffff811681146106b2575f80fd5b919050565b5f82601f8301126106c6575f80fd5b813567ffffffffffffffff808211156106e1576106e1610616565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561072757610727610616565b8160405283815286602085880101111561073f575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f6020828403121561076e575f80fd5b813567ffffffffffffffff80821115610785575f80fd5b9083019060408286031215610798575f80fd5b6107a0610643565b6107a98361068f565b81526020830135828111156107bc575f80fd5b9290920191608083870312156107d0575f80fd5b6107d861066c565b6107e18461068f565b81526020840135838111156107f4575f80fd5b610800888287016106b7565b602083015250604084013583811115610817575f80fd5b610823888287016106b7565b6040830152506108356060850161068f565b6060820152602082015295945050505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f61060f6020830184610848565b5f602082840312156108b6575f80fd5b5051919050565b602081525f73ffffffffffffffffffffffffffffffffffffffff8084511660208401526020840151604080850152818151166060850152602081015160808086015261090c60e0860182610848565b905060408201517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08683030160a08701526109478282610848565b9150508260608301511660c08601528093505050509291505056fe60a060405260405161052f38038061052f83398101604081905261002291610331565b61002c828261003e565b506001600160a01b031660805261040d565b610047826100fb565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a28051156100ef576100ea826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e491906103ed565b82610209565b505050565b6100f76102aa565b5050565b806001600160a01b03163b5f0361013557604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b815290515f92841691635c60da1b9160048083019260209291908290030181865afa1580156101ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d291906103ed565b9050806001600160a01b03163b5f036100f757604051634c9c8ce360e01b81526001600160a01b038216600482015260240161012c565b60605f61021684846102cb565b905080801561023757505f3d118061023757505f846001600160a01b03163b115b1561024c576102446102de565b9150506102a4565b801561027657604051639996b31560e01b81526001600160a01b038516600482015260240161012c565b3d15610289576102846102f7565b6102a2565b60405163d6bda27560e01b815260040160405180910390fd5b505b92915050565b34156102c95760405163b398979f60e01b815260040160405180910390fd5b565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b6040513d5f823e3d81fd5b80516001600160a01b0381168114610318575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215610342575f80fd5b61034b83610302565b60208401519092506001600160401b0380821115610367575f80fd5b818501915085601f83011261037a575f80fd5b81518181111561038c5761038c61031d565b604051601f8201601f19908116603f011681019083821181831017156103b4576103b461031d565b816040528281528860208487010111156103cc575f80fd5b8260208601602083015e5f6020848301015280955050505050509250929050565b5f602082840312156103fd575f80fd5b61040682610302565b9392505050565b60805161010b6104245f395f6023015261010b5ff3fe608060405261000c61000e565b005b61001e610019610020565b6100b3565b565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561008a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100ae91906100d1565b905090565b365f80375f80365f845af43d5f803e8080156100cd573d5ff35b3d5ffd5b5f602082840312156100e1575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610104575f80fd5b939250505056"; diff --git a/src/generated/0_1_2/StoxOffchainAssetReceiptVaultPaymentMintAuthorizerV1.pointers.sol b/src/generated/0_1_2/StoxOffchainAssetReceiptVaultPaymentMintAuthorizerV1.pointers.sol deleted file mode 100644 index f343350f..00000000 --- a/src/generated/0_1_2/StoxOffchainAssetReceiptVaultPaymentMintAuthorizerV1.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x4d94318cde48f1bc20f97e00aefad84bfb7c9db15c81b882862e127b05e06e15); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0xeaD68E489Cb19453b294dc46a3A5710b0d46d17F); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"6080604052348015600e575f80fd5b506015601f565b601b601f565b60cf565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615606e5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460cc5780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b612650806100dc5f395ff3fe608060405234801561000f575f80fd5b5060043610610115575f3560e01c806359f89dda116100ad578063a086e1751161007d578063a4c9d30011610063578063a4c9d3001461030a578063d547741f14610312578063f2fde38b14610325575f80fd5b8063a086e175146102fb578063a217fddf14610303575f80fd5b806359f89dda14610281578063715018a6146102945780638da5cb5b1461029c57806391d14854146102a4575f80fd5b80633013ce29116100e85780633013ce29146101c8578063325cd7961461020c57806336568abe1461025b578063439fab911461026e575f80fd5b806301ffc9a71461011957806304a0db2014610141578063248a9ca3146101725780632f2ff15d146101b3575b5f80fd5b61012c610127366004611eec565b610338565b60405190151581526020015b60405180910390f35b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3202545b604051908152602001610138565b610164610180366004611f2b565b5f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b6101c66101c1366004611f56565b61042b565b005b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3201546001600160a01b03165b6040516001600160a01b039091168152602001610138565b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b32015474010000000000000000000000000000000000000000900460ff1660405160ff9091168152602001610138565b6101c6610269366004611f56565b610474565b61016461027c3660046120a7565b6104c5565b6101c661028f3660046120d9565b610a55565b6101c6610e31565b6101f4610e44565b61012c6102b2366004611f56565b5f9182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6101f4610e78565b6101645f81565b6101c6610ea0565b6101c6610320366004611f56565b610f69565b6101c661033336600461212e565b610fac565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f59f89dda0000000000000000000000000000000000000000000000000000000014806103ca57507fffffffff0000000000000000000000000000000000000000000000000000000082167f439fab9100000000000000000000000000000000000000000000000000000000145b8061041657507fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000145b80610425575061042582610fff565b92915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015461046481611095565b61046e838361109f565b50505050565b6001600160a01b03811633146104b6576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104c08282611190565b505050565b5f806104cf611252565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156104fb5750825b90505f8267ffffffffffffffff1660011480156105175750303b155b905081158015610525575080155b1561055c576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156105bd5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b5f878060200190518101906105d29190612149565b80519091506001600160a01b0316610616576040517fa7d26c7300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60208101516001600160a01b031661065a576040517f364467d300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408101516001600160a01b031661069e576040517f3731597600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60608101516001600160a01b03166106e2576040517ff10d418200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80608001515f0361071f576040517f7e0eb2bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80517f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b320080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b039384161782556020808501517f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b32038054841691861691909117905560608501517f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b320180549093169416938417909155604080517f313ce567000000000000000000000000000000000000000000000000000000008152905192935f93909263313ce56792600480820193918290030181865afa158015610830573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061085491906121ba565b6001830180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000060ff8416021790556080840151600284015560408401519091506108b59061127a565b7fbf322f47f534976d35baa3292f4fd04bf379264783a734383401b0e6e51cb16d835f0151846020015185604001518660600151858860800151604051610939969594939291906001600160a01b039687168152948616602086015292851660408501529316606083015260ff92909216608082015260a081019190915260c00190565b60405180910390a1610965604051806020016040528085604001516001600160a01b031681525061128b565b506109947f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc028460400151611190565b506109c37fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d38460400151611190565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc398505050508315610a4b5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b320080546001600160a01b0316338114610ac9578484846040517f3ae4063b000000000000000000000000000000000000000000000000000000008152600401610ac0939291906121da565b60405180910390fd5b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8218403610e1f575f83806020019051810190610b059190612226565b60018481015460808301519293506001600160a01b038116927401000000000000000000000000000000000000000090910460ff16915f91610b48918490611626565b90505f836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b87573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bab91906121ba565b60ff169050828114610bf3576040517fe420d7af0000000000000000000000000000000000000000000000000000000081526004810184905260248101829052604401610ac0565b5f866001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c30573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c549190612312565b90508760020154811115610ca45760028801546040517f86529caa000000000000000000000000000000000000000000000000000000008152600481019190915260248101829052604401610ac0565b825f03610d045785516040517f3ae4063b000000000000000000000000000000000000000000000000000000008152610ac091907f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f821908c906004016121da565b8551610d1c906001600160a01b0387169030866116ad565b600388015486516040517fdb8554fc0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201524260248201525f92919091169063db8554fc90604401602060405180830381865afa158015610d8a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dae9190612312565b905060028114610e115786516040517f3ae4063b000000000000000000000000000000000000000000000000000000008152610ac091907f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f821908d906004016121da565b505050505050505050505050565b610e2a8585856116fc565b5050505050565b610e39611a38565b610e425f611a83565b565b5f807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b5f807f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3200610e68565b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3200610f66610ecc610e44565b60018301546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015610f2d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f519190612312565b60018401546001600160a01b03169190611b0b565b50565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020526040902060010154610fa281611095565b61046e8383611190565b610fb4611a38565b6001600160a01b038116610ff6576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f6004820152602401610ac0565b610f6681611a83565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061042557507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610425565b610f668133611b59565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff16611180575f848152602082815260408083206001600160a01b0387168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556111363390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610425565b5f915050610425565b5092915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff1615611180575f848152602082815260408083206001600160a01b038716808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610425565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610425565b611282611be9565b610f6681611c27565b5f611294611c2f565b81516001600160a01b03166112d5576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61131f7f50a07cb25d0d864370863300b20987dfdae089abad71b607faf639d09d0533917f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b611c37565b6113497f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b80611c37565b6113937f3dd35eca0ca8a128757fa464a5dfa4ad6cc4853cad96dce4e90fdbea4f0a52e37f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d611c37565b6113bd7f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d80611c37565b6114077f54f0af3716c79b30b8c228679d31d77a1a5f526c16af3262730e0a8de4363fed7fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c611c37565b6114317fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c80611c37565b61147b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8217f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02611c37565b6114a57f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc0280611c37565b6114ef7f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e9828697fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3611c37565b6115197fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d380611c37565b6115467f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b835f015161109f565b506115747f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d835f015161109f565b506115a27fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c835f015161109f565b506115d07f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02835f015161109f565b506115fe7fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3835f015161109f565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc392915050565b5f826012111561165a5760128390036001831615611650576116488582611cd8565b9150506116a6565b6116488582611d24565b60128311156116a3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee83016002831615611699576116488582611d4e565b6116488582611d9e565b50825b9392505050565b6116bb848484846001611dcd565b61046e576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610ac0565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a82148061174957507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a4882145b156119b2575f805f7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a85036117a9575f8480602001905181019061178d919061233d565b9050805f015193508060200151925080606001519150506117d5565b5f848060200190518101906117be9190612432565b805160208201516080909201519095509093509150505b80156119aa576001600160a01b03831615801561182857506001600160a01b0382165f9081527f96f78a99f93d631b75bc050854c9b764642c10564e41ed27c197a36ddabb1df9602052604090205460ff165b8061187b57506001600160a01b03821615801561187b57506001600160a01b0383165f9081527f3907f76fa0fb1e5d0f263c5c4fe4316026052cf960c55a1c768106d8b9701c10602052604090205460ff165b1561188857505050505050565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a851480156118ed57506001600160a01b0386165f9081527f6ba48721fcbb2613af13d8285fe9ee4a081f7995464037bb5ea27397912881d2602052604090205460ff165b8061195857507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a488514801561195857506001600160a01b0386165f9081527f29e42896fa6edf5a5d7ff0bcd00acffbece6eb6cc7b44d0807bfd84929cc6e1b602052604090205460ff165b1561196557505050505050565b6040517ffe720f780000000000000000000000000000000000000000000000000000000081526001600160a01b03808516600483015283166024820152604401610ac0565b505050505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038716845290915290205460ff1615611a0057505050565b8282826040517f3ae4063b000000000000000000000000000000000000000000000000000000008152600401610ac0939291906121da565b33611a41610e44565b6001600160a01b031614610e42576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610ac0565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b611b188383836001611e53565b6104c0576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610ac0565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038516845290915290205460ff16611be5576040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015260248101839052604401610ac0565b5050565b611bf1611ece565b610e42576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fb4611be9565b610e42611be9565b7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268005f611c90845f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b5f85815260208490526040808220600101869055519192508491839187917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a450505050565b5f604e8210611cfa578215611cee576001611cf0565b5f5b60ff169050610425565b600a82900a808481611d0e57611d0e6124f4565b0491508082028414611189575060010192915050565b5f604e821015611d465781600a0a8381611d4057611d406124f4565b046116a6565b5f9392505050565b5f604e8210611d6d578215611d64575f19611d66565b5f5b9050610425565b50600a81900a8281029083818381611d8757611d876124f4565b0414611d94575f19611d96565b815b949350505050565b600a81900a611dad818461254e565b9050604e8210610425578215611d4657611dc882600a612645565b6116a6565b6040517f23b872dd000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038781166004528616602452604485905291602083606481808c5af1925060015f51148316611e42578383151615611e36573d5f823e3d81fd5b5f883b113d1516831692505b604052505f60605295945050505050565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f51148316611ec2578383151615611eb6573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b5f611ed7611252565b5468010000000000000000900460ff16919050565b5f60208284031215611efc575f80fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146116a6575f80fd5b5f60208284031215611f3b575f80fd5b5035919050565b6001600160a01b0381168114610f66575f80fd5b5f8060408385031215611f67575f80fd5b823591506020830135611f7981611f42565b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60405160a0810167ffffffffffffffff81118282101715611fd457611fd4611f84565b60405290565b60405160c0810167ffffffffffffffff81118282101715611fd457611fd4611f84565b604051601f8201601f1916810167ffffffffffffffff8111828210171561202657612026611f84565b604052919050565b5f67ffffffffffffffff82111561204757612047611f84565b50601f01601f191660200190565b5f82601f830112612064575f80fd5b81356120776120728261202e565b611ffd565b81815284602083860101111561208b575f80fd5b816020850160208301375f918101602001919091529392505050565b5f602082840312156120b7575f80fd5b813567ffffffffffffffff8111156120cd575f80fd5b611d9684828501612055565b5f805f606084860312156120eb575f80fd5b83356120f681611f42565b925060208401359150604084013567ffffffffffffffff811115612118575f80fd5b61212486828701612055565b9150509250925092565b5f6020828403121561213e575f80fd5b81356116a681611f42565b5f60a08284031215612159575f80fd5b612161611fb1565b825161216c81611f42565b8152602083015161217c81611f42565b6020820152604083015161218f81611f42565b604082015260608301516121a281611f42565b60608201526080928301519281019290925250919050565b5f602082840312156121ca575f80fd5b815160ff811681146116a6575f80fd5b6001600160a01b0384168152826020820152606060408201525f82518060608401528060208501608085015e5f608082850101526080601f19601f830116840101915050949350505050565b5f6020808385031215612237575f80fd5b825167ffffffffffffffff8082111561224e575f80fd5b9084019060c08287031215612261575f80fd5b612269611fda565b825161227481611f42565b81528284015161228381611f42565b80858301525060408301516040820152606083015160608201526080830151608082015260a0830151828111156122b8575f80fd5b80840193505086601f8401126122cc575f80fd5b825191506122dc6120728361202e565b82815287858486010111156122ef575f80fd5b828585018683015e5f8584830101528060a0830152508094505050505092915050565b5f60208284031215612322575f80fd5b5051919050565b80518015158114612338575f80fd5b919050565b5f6080828403121561234d575f80fd5b6040516080810181811067ffffffffffffffff8211171561237057612370611f84565b604052825161237e81611f42565b8152602083015161238e81611f42565b6020820152604083810151908201526123a960608401612329565b60608201529392505050565b5f82601f8301126123c4575f80fd5b8151602067ffffffffffffffff8211156123e0576123e0611f84565b8160051b6123ef828201611ffd565b9283528481018201928281019087851115612408575f80fd5b83870192505b848310156124275782518252918301919083019061240e565b979650505050505050565b5f60208284031215612442575f80fd5b815167ffffffffffffffff80821115612459575f80fd5b9083019060a0828603121561246c575f80fd5b612474611fb1565b825161247f81611f42565b8152602083015161248f81611f42565b60208201526040830151828111156124a5575f80fd5b6124b1878286016123b5565b6040830152506060830151828111156124c8575f80fd5b6124d4878286016123b5565b6060830152506124e660808401612329565b608082015295945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b808202811582820484141761042557610425612521565b600181815b8085111561259f57815f190482111561258557612585612521565b8085161561259257918102915b93841c939080029061256a565b509250929050565b5f826125b557506001610425565b816125c157505f610425565b81600181146125d757600281146125e1576125fd565b6001915050610425565b60ff8411156125f2576125f2612521565b50506001821b610425565b5060208310610133831016604e8410600b8410161715612620575081810a610425565b61262a8383612565565b805f190482111561263d5761263d612521565b029392505050565b5f6116a683836125a756"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b5060043610610115575f3560e01c806359f89dda116100ad578063a086e1751161007d578063a4c9d30011610063578063a4c9d3001461030a578063d547741f14610312578063f2fde38b14610325575f80fd5b8063a086e175146102fb578063a217fddf14610303575f80fd5b806359f89dda14610281578063715018a6146102945780638da5cb5b1461029c57806391d14854146102a4575f80fd5b80633013ce29116100e85780633013ce29146101c8578063325cd7961461020c57806336568abe1461025b578063439fab911461026e575f80fd5b806301ffc9a71461011957806304a0db2014610141578063248a9ca3146101725780632f2ff15d146101b3575b5f80fd5b61012c610127366004611eec565b610338565b60405190151581526020015b60405180910390f35b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3202545b604051908152602001610138565b610164610180366004611f2b565b5f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b6101c66101c1366004611f56565b61042b565b005b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3201546001600160a01b03165b6040516001600160a01b039091168152602001610138565b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b32015474010000000000000000000000000000000000000000900460ff1660405160ff9091168152602001610138565b6101c6610269366004611f56565b610474565b61016461027c3660046120a7565b6104c5565b6101c661028f3660046120d9565b610a55565b6101c6610e31565b6101f4610e44565b61012c6102b2366004611f56565b5f9182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6101f4610e78565b6101645f81565b6101c6610ea0565b6101c6610320366004611f56565b610f69565b6101c661033336600461212e565b610fac565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f59f89dda0000000000000000000000000000000000000000000000000000000014806103ca57507fffffffff0000000000000000000000000000000000000000000000000000000082167f439fab9100000000000000000000000000000000000000000000000000000000145b8061041657507fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000145b80610425575061042582610fff565b92915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015461046481611095565b61046e838361109f565b50505050565b6001600160a01b03811633146104b6576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104c08282611190565b505050565b5f806104cf611252565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156104fb5750825b90505f8267ffffffffffffffff1660011480156105175750303b155b905081158015610525575080155b1561055c576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156105bd5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b5f878060200190518101906105d29190612149565b80519091506001600160a01b0316610616576040517fa7d26c7300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60208101516001600160a01b031661065a576040517f364467d300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408101516001600160a01b031661069e576040517f3731597600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60608101516001600160a01b03166106e2576040517ff10d418200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80608001515f0361071f576040517f7e0eb2bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80517f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b320080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b039384161782556020808501517f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b32038054841691861691909117905560608501517f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b320180549093169416938417909155604080517f313ce567000000000000000000000000000000000000000000000000000000008152905192935f93909263313ce56792600480820193918290030181865afa158015610830573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061085491906121ba565b6001830180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000060ff8416021790556080840151600284015560408401519091506108b59061127a565b7fbf322f47f534976d35baa3292f4fd04bf379264783a734383401b0e6e51cb16d835f0151846020015185604001518660600151858860800151604051610939969594939291906001600160a01b039687168152948616602086015292851660408501529316606083015260ff92909216608082015260a081019190915260c00190565b60405180910390a1610965604051806020016040528085604001516001600160a01b031681525061128b565b506109947f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc028460400151611190565b506109c37fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d38460400151611190565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc398505050508315610a4b5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b320080546001600160a01b0316338114610ac9578484846040517f3ae4063b000000000000000000000000000000000000000000000000000000008152600401610ac0939291906121da565b60405180910390fd5b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8218403610e1f575f83806020019051810190610b059190612226565b60018481015460808301519293506001600160a01b038116927401000000000000000000000000000000000000000090910460ff16915f91610b48918490611626565b90505f836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b87573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bab91906121ba565b60ff169050828114610bf3576040517fe420d7af0000000000000000000000000000000000000000000000000000000081526004810184905260248101829052604401610ac0565b5f866001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c30573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c549190612312565b90508760020154811115610ca45760028801546040517f86529caa000000000000000000000000000000000000000000000000000000008152600481019190915260248101829052604401610ac0565b825f03610d045785516040517f3ae4063b000000000000000000000000000000000000000000000000000000008152610ac091907f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f821908c906004016121da565b8551610d1c906001600160a01b0387169030866116ad565b600388015486516040517fdb8554fc0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201524260248201525f92919091169063db8554fc90604401602060405180830381865afa158015610d8a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dae9190612312565b905060028114610e115786516040517f3ae4063b000000000000000000000000000000000000000000000000000000008152610ac091907f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f821908d906004016121da565b505050505050505050505050565b610e2a8585856116fc565b5050505050565b610e39611a38565b610e425f611a83565b565b5f807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b5f807f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3200610e68565b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3200610f66610ecc610e44565b60018301546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015610f2d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f519190612312565b60018401546001600160a01b03169190611b0b565b50565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020526040902060010154610fa281611095565b61046e8383611190565b610fb4611a38565b6001600160a01b038116610ff6576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f6004820152602401610ac0565b610f6681611a83565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061042557507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610425565b610f668133611b59565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff16611180575f848152602082815260408083206001600160a01b0387168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556111363390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610425565b5f915050610425565b5092915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff1615611180575f848152602082815260408083206001600160a01b038716808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610425565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610425565b611282611be9565b610f6681611c27565b5f611294611c2f565b81516001600160a01b03166112d5576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61131f7f50a07cb25d0d864370863300b20987dfdae089abad71b607faf639d09d0533917f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b611c37565b6113497f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b80611c37565b6113937f3dd35eca0ca8a128757fa464a5dfa4ad6cc4853cad96dce4e90fdbea4f0a52e37f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d611c37565b6113bd7f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d80611c37565b6114077f54f0af3716c79b30b8c228679d31d77a1a5f526c16af3262730e0a8de4363fed7fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c611c37565b6114317fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c80611c37565b61147b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8217f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02611c37565b6114a57f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc0280611c37565b6114ef7f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e9828697fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3611c37565b6115197fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d380611c37565b6115467f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b835f015161109f565b506115747f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d835f015161109f565b506115a27fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c835f015161109f565b506115d07f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02835f015161109f565b506115fe7fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3835f015161109f565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc392915050565b5f826012111561165a5760128390036001831615611650576116488582611cd8565b9150506116a6565b6116488582611d24565b60128311156116a3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee83016002831615611699576116488582611d4e565b6116488582611d9e565b50825b9392505050565b6116bb848484846001611dcd565b61046e576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610ac0565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a82148061174957507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a4882145b156119b2575f805f7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a85036117a9575f8480602001905181019061178d919061233d565b9050805f015193508060200151925080606001519150506117d5565b5f848060200190518101906117be9190612432565b805160208201516080909201519095509093509150505b80156119aa576001600160a01b03831615801561182857506001600160a01b0382165f9081527f96f78a99f93d631b75bc050854c9b764642c10564e41ed27c197a36ddabb1df9602052604090205460ff165b8061187b57506001600160a01b03821615801561187b57506001600160a01b0383165f9081527f3907f76fa0fb1e5d0f263c5c4fe4316026052cf960c55a1c768106d8b9701c10602052604090205460ff165b1561188857505050505050565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a851480156118ed57506001600160a01b0386165f9081527f6ba48721fcbb2613af13d8285fe9ee4a081f7995464037bb5ea27397912881d2602052604090205460ff165b8061195857507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a488514801561195857506001600160a01b0386165f9081527f29e42896fa6edf5a5d7ff0bcd00acffbece6eb6cc7b44d0807bfd84929cc6e1b602052604090205460ff165b1561196557505050505050565b6040517ffe720f780000000000000000000000000000000000000000000000000000000081526001600160a01b03808516600483015283166024820152604401610ac0565b505050505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038716845290915290205460ff1615611a0057505050565b8282826040517f3ae4063b000000000000000000000000000000000000000000000000000000008152600401610ac0939291906121da565b33611a41610e44565b6001600160a01b031614610e42576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610ac0565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b611b188383836001611e53565b6104c0576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610ac0565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038516845290915290205460ff16611be5576040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015260248101839052604401610ac0565b5050565b611bf1611ece565b610e42576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fb4611be9565b610e42611be9565b7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268005f611c90845f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b5f85815260208490526040808220600101869055519192508491839187917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a450505050565b5f604e8210611cfa578215611cee576001611cf0565b5f5b60ff169050610425565b600a82900a808481611d0e57611d0e6124f4565b0491508082028414611189575060010192915050565b5f604e821015611d465781600a0a8381611d4057611d406124f4565b046116a6565b5f9392505050565b5f604e8210611d6d578215611d64575f19611d66565b5f5b9050610425565b50600a81900a8281029083818381611d8757611d876124f4565b0414611d94575f19611d96565b815b949350505050565b600a81900a611dad818461254e565b9050604e8210610425578215611d4657611dc882600a612645565b6116a6565b6040517f23b872dd000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038781166004528616602452604485905291602083606481808c5af1925060015f51148316611e42578383151615611e36573d5f823e3d81fd5b5f883b113d1516831692505b604052505f60605295945050505050565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f51148316611ec2578383151615611eb6573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b5f611ed7611252565b5468010000000000000000900460ff16919050565b5f60208284031215611efc575f80fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146116a6575f80fd5b5f60208284031215611f3b575f80fd5b5035919050565b6001600160a01b0381168114610f66575f80fd5b5f8060408385031215611f67575f80fd5b823591506020830135611f7981611f42565b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60405160a0810167ffffffffffffffff81118282101715611fd457611fd4611f84565b60405290565b60405160c0810167ffffffffffffffff81118282101715611fd457611fd4611f84565b604051601f8201601f1916810167ffffffffffffffff8111828210171561202657612026611f84565b604052919050565b5f67ffffffffffffffff82111561204757612047611f84565b50601f01601f191660200190565b5f82601f830112612064575f80fd5b81356120776120728261202e565b611ffd565b81815284602083860101111561208b575f80fd5b816020850160208301375f918101602001919091529392505050565b5f602082840312156120b7575f80fd5b813567ffffffffffffffff8111156120cd575f80fd5b611d9684828501612055565b5f805f606084860312156120eb575f80fd5b83356120f681611f42565b925060208401359150604084013567ffffffffffffffff811115612118575f80fd5b61212486828701612055565b9150509250925092565b5f6020828403121561213e575f80fd5b81356116a681611f42565b5f60a08284031215612159575f80fd5b612161611fb1565b825161216c81611f42565b8152602083015161217c81611f42565b6020820152604083015161218f81611f42565b604082015260608301516121a281611f42565b60608201526080928301519281019290925250919050565b5f602082840312156121ca575f80fd5b815160ff811681146116a6575f80fd5b6001600160a01b0384168152826020820152606060408201525f82518060608401528060208501608085015e5f608082850101526080601f19601f830116840101915050949350505050565b5f6020808385031215612237575f80fd5b825167ffffffffffffffff8082111561224e575f80fd5b9084019060c08287031215612261575f80fd5b612269611fda565b825161227481611f42565b81528284015161228381611f42565b80858301525060408301516040820152606083015160608201526080830151608082015260a0830151828111156122b8575f80fd5b80840193505086601f8401126122cc575f80fd5b825191506122dc6120728361202e565b82815287858486010111156122ef575f80fd5b828585018683015e5f8584830101528060a0830152508094505050505092915050565b5f60208284031215612322575f80fd5b5051919050565b80518015158114612338575f80fd5b919050565b5f6080828403121561234d575f80fd5b6040516080810181811067ffffffffffffffff8211171561237057612370611f84565b604052825161237e81611f42565b8152602083015161238e81611f42565b6020820152604083810151908201526123a960608401612329565b60608201529392505050565b5f82601f8301126123c4575f80fd5b8151602067ffffffffffffffff8211156123e0576123e0611f84565b8160051b6123ef828201611ffd565b9283528481018201928281019087851115612408575f80fd5b83870192505b848310156124275782518252918301919083019061240e565b979650505050505050565b5f60208284031215612442575f80fd5b815167ffffffffffffffff80821115612459575f80fd5b9083019060a0828603121561246c575f80fd5b612474611fb1565b825161247f81611f42565b8152602083015161248f81611f42565b60208201526040830151828111156124a5575f80fd5b6124b1878286016123b5565b6040830152506060830151828111156124c8575f80fd5b6124d4878286016123b5565b6060830152506124e660808401612329565b608082015295945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b808202811582820484141761042557610425612521565b600181815b8085111561259f57815f190482111561258557612585612521565b8085161561259257918102915b93841c939080029061256a565b509250929050565b5f826125b557506001610425565b816125c157505f610425565b81600181146125d757600281146125e1576125fd565b6001915050610425565b60ff8411156125f2576125f2612521565b50506001821b610425565b5060208310610133831016604e8410600b8410161715612620575081810a610425565b61262a8383612565565b805f190482111561263d5761263d612521565b029392505050565b5f6116a683836125a756"; diff --git a/src/generated/0_1_2/StoxReceipt.pointers.sol b/src/generated/0_1_2/StoxReceipt.pointers.sol deleted file mode 100644 index ff38583a..00000000 --- a/src/generated/0_1_2/StoxReceipt.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x06fffbad12ea80897d55aab5d4f1cd3f34f674237db44a148cc133334a0cca54); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x2dF5cFE6d688EF9fF1B7c59A499D254b1527b286); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"6080604052348015600e575f80fd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6136e3806100d65f395ff3fe608060405234801561000f575f80fd5b50600436106100fa575f3560e01c8063481c6a7511610093578063a22cb46511610063578063a22cb46514610232578063c2530e3914610245578063e985e9c514610258578063f242432a146102b2575f80fd5b8063481c6a75146101bd5780634e1273f4146101f75780636d5b3f781461021757806395d89b411461022a575f80fd5b80630e89341c116100ce5780630e89341c14610171578063177769cb146101845780632eb2c2d614610197578063439fab91146101aa575f80fd5b8062fdd58e146100fe57806301ffc9a714610124578063043fa9871461014757806306fdde031461015c575b5f80fd5b61011161010c366004612a49565b6102c5565b6040519081526020015b60405180910390f35b610137610132366004612aa0565b6102e1565b604051901515815260200161011b565b61015a610155366004612b79565b6103c3565b005b61016461046a565b60405161011b9190612c29565b61016461017f366004612c3b565b6104cf565b61015a610192366004612c52565b610580565b61015a6101a5366004612d20565b61058f565b6101116101b8366004612dc7565b6105ae565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc200546040516001600160a01b03909116815260200161011b565b61020a610205366004612e01565b6107ae565b60405161011b9190612eed565b61015a610225366004612eff565b6108c5565b610164610975565b61015a610240366004612f63565b6109c6565b61015a610253366004612eff565b6109d1565b610137610266366004612f9e565b6001600160a01b039182165f9081527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45016020908152604080832093909416825291909152205460ff1690565b61015a6102c0366004612eff565b610a37565b5f6102d883836102d3610a4d565b610ab3565b90505b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a2600000000000000000000000000000000000000000000000000000000148061037357507fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000145b806102db57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146102db565b6103cb610b07565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038816179055856104208686868686610b6e565b6104617fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19169055565b50505050505050565b6060610474610c25565b6040518060400160405280600881526020017f20526563656970740000000000000000000000000000000000000000000000008152506040516020016104bb929190612fe1565b604051602081830303815290604052905090565b60605f6104e56104dd610cd3565b60ff16610d78565b6104ed610c25565b6104f5610e15565b6104fd61046a565b6040516020016105109493929190612ff5565b60408051601f19818403018152828201909152601d82527f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c0000006020830152915061055882610ef5565b604051602001610569929190612fe1565b604051602081830303815290604052915050919050565b61058b338383610f01565b5050565b61059a335b86610f49565b6105a78585858585610ff9565b5050505050565b5f806105b861108c565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156105e45750825b90505f8267ffffffffffffffff1660011480156106005750303b155b90508115801561060e575080155b15610645576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156106a65784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6106bd60405180602001604052805f8152506110b4565b5f7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc20090505f888060200190518101906106f69190613137565b825473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039190911617909155507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc3955083156107a45784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b606081518351146107fd57815183516040517f5b059991000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044015b60405180910390fd5b5f610806610a4d565b90505f845167ffffffffffffffff81111561082357610823612abb565b60405190808252806020026020018201604052801561084c578160200160208202803683370190505b5090505f5b85518110156108bc5761089786828151811061086f5761086f613152565b602002602001015186838151811061088957610889613152565b602002602001015185610ab3565b8282815181106108a9576108a9613152565b6020908102919091010152600101610851565b50949350505050565b6108cd610b07565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03871617905584610920868584610f01565b61092c858585856110c5565b61096d7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19169055565b505050505050565b606061097f610c25565b6040518060400160405280600581526020017f20524350540000000000000000000000000000000000000000000000000000008152506040516020016104bb929190612fe1565b61058b33838361113a565b6109d9610b07565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03871617905584610a2c868584610f01565b61092c85858561124e565b610a4033610594565b6105a78585858585610b6e565b5f306001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a8a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aae9190613137565b905090565b5f80610abf85856112cf565b90505f610aca6112e4565b6001600160a01b0387165f90815260209182526040808220888352909252908120549150610af9838387611345565b5093505050505b9392505050565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc20080546001600160a01b03163314610b6b576040517fc0b2335a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b6001600160a01b038416610bb0576040517f57f447ce0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b038516610bf2576040517f01a835140000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6040805160018082526020820186905281830190815260608201859052608082019092529061046187878484875f6115ed565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc2008054604080517f95d89b410000000000000000000000000000000000000000000000000000000081529051606093926001600160a01b0316916395d89b41916004808301925f9291908290030181865afa158015610ca6573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610ccd919081019061319c565b91505090565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc2008054604080517f313ce56700000000000000000000000000000000000000000000000000000000815290515f93926001600160a01b03169163313ce5679160048083019260209291908290030181865afa158015610d54573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ccd91906131e1565b60605f610d8483611645565b60010190505f8167ffffffffffffffff811115610da357610da3612abb565b6040519080825280601f01601f191660200182016040528015610dcd576020820181803683370190505b5090508181016020015b5f19017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084610dd757509392505050565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc2008054604080517f38d52e0f0000000000000000000000000000000000000000000000000000000081529051606093926001600160a01b0316916338d52e0f9160048083019260209291908290030181865afa158015610e97573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ebb9190613137565b6001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015610ca6573d5f803e3d5ffd5b60606102db825f611726565b805115610f44577fd66d6a9810a5cef78b704e7e04334961e997c81d337f029f74637f060f3d8d65838383604051610f3b93929190613215565b60405180910390a15b505050565b816001600160a01b0316816001600160a01b031614158015610faf57506001600160a01b038082165f9081527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4501602090815260408083209386168352929052205460ff16155b1561058b576040517fe237d9220000000000000000000000000000000000000000000000000000000081526001600160a01b038084166004830152821660248201526044016107f4565b6001600160a01b03841661103b576040517f57f447ce0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b03851661107d576040517f01a835140000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6105a7858585858560016115ed565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006102db565b6110bc6118a5565b610b6b816118e5565b6001600160a01b038416611107576040517f57f447ce0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6040805160018082526020820186905281830190815260608201859052608082019092529061096d5f87848487846115ed565b7f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45006001600160a01b03841661119d576040517f3e31884e0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b0383166111df576040517fced3e1000000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b038481165f818152600184016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a350505050565b6001600160a01b038316611290576040517f01a835140000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b604080516001808252602082018590528183019081526060820184905260a082019092525f608082018181529192916105a791879185908590836115ed565b5f806112db84846118f6565b54949350505050565b5f8060ff1961131460017fedb99b3af8e1c50d494d6f1b4c75245a0b733cb90baa42bfe0e2f5bc8b000f82613259565b60405160200161132691815260200190565b60408051601f1981840301815291905280516020909101201692915050565b6040517f79ba43050000000000000000000000000000000000000000000000000000000081525f9081908490829081906001600160a01b038716906379ba43059061139a90869060039060019060040161326c565b606060405180830381865afa1580156113b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113d991906132a4565b5091509150875f03611496575b5f198214611488576040517f79ba430500000000000000000000000000000000000000000000000000000000815291925082916001600160a01b038716906379ba43059061143e90859060039060019060040161326c565b606060405180830381865afa158015611459573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061147d91906132a4565b5090925090506113e6565b5f83945094505050506115e5565b875b5f1983146115dd5782935060028203611548576040517fb21a2494000000000000000000000000000000000000000000000000000000008152600481018490525f90611538906001600160a01b038a169063b21a2494906024015f60405180830381865afa15801561150c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611533919081019061319c565b61196a565b9050611544828261197f565b9150505b6040517f79ba43050000000000000000000000000000000000000000000000000000000081526001600160a01b038816906379ba43059061159390869060039060019060040161326c565b606060405180830381865afa1580156115ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115d291906132a4565b509093509150611498565b945091925050505b935093915050565b6115f9868686866119fa565b6001600160a01b0385161561096d573381156116225761161d818888888888611a5f565b610461565b6020858101519085015161163a838a8a85858a611bfc565b505050505050505050565b5f807a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061168d577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef810000000083106116b9576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106116d757662386f26fc10000830492506010015b6305f5e10083106116ef576305f5e100830492506008015b612710831061170357612710830492506004015b60648310611715576064830492506002015b600a83106102db5760010192915050565b606082515f03611744575060408051602081019091525f81526102db565b5f826117745760038451600261175a91906132e6565b61176491906132f9565b61176f906004613318565b611799565b6003845160046117849190613318565b61178f9060026132e6565b61179991906132f9565b905060405191507f4142434445464748494a4b4c4d4e4f505152535455565758595a616263646566601f5261067083027f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f18603f526020820181810185865187016020810180515f82525b82841015611857576003840193508351603f8160121c16518753600187019650603f81600c1c16518753600187019650603f8160061c16518753600187019650603f811651875350600186019550611804565b9052508590506118985760038651066001811461187b576002811461188e57611896565b603d6001840353603d6002840353611896565b603d60018403535b505b9183525060405292915050565b6118ad611d46565b6118e3576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6118ed6118a5565b610b6b81611d64565b5f8060ff1961192660017f3a8e79826d53842322cdcc810d4a989eb01ac46cfabfd48dcc021625ce13c2d7613259565b60405160200161193891815260200190565b60408051808303601f1901815291815281516020928301205f9687529290921681528185209585529490945250502090565b5f818060200190518101906102db919061332f565b5f7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8311156119dd576040517fbf463fe9000000000000000000000000000000000000000000000000000000008152600481018490526024016107f4565b5f6108bc6119f46119ee865f611db0565b85611e0a565b5f611e6c565b5f611a03610a4d565b90505f5b8351811015611a5257611a3486858381518110611a2657611a26613152565b602002602001015184611eae565b611a4a85858381518110611a2657611a26613152565b600101611a07565b506105a785858585611fb0565b6001600160a01b0384163b1561096d576040517fbc197c810000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063bc197c8190611abc9089908990889088908890600401613346565b6020604051808303815f875af1925050508015611af6575060408051601f3d908101601f19168201909252611af3918101906133a3565b60015b611b76573d808015611b23576040519150601f19603f3d011682016040523d82523d5f602084013e611b28565b606091505b5080515f03611b6e576040517f57f447ce0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024016107f4565b805160208201fd5b7fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014610461576040517f57f447ce0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024016107f4565b6001600160a01b0384163b1561096d576040517ff23a6e610000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063f23a6e6190611c5990899089908890889088906004016133be565b6020604051808303815f875af1925050508015611c93575060408051601f3d908101601f19168201909252611c90918101906133a3565b60015b611cc0573d808015611b23576040519150601f19603f3d011682016040523d82523d5f602084013e611b28565b7fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014610461576040517f57f447ce0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024016107f4565b5f611d4f61108c565b5468010000000000000000900460ff16919050565b7f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45007f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4502610f44838261347c565b5f805f611dbd8585612063565b9150915080611e02576040517f22c9f7bb00000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016107f4565b509392505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d8480611e4f86868686612169565b915091505f611e5e8383612288565b9a9950505050505050505050565b5f807bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8416601b0b60e085901d611ea08282876122e6565b9350935050505b9250929050565b6001600160a01b038316611ec157505050565b5f611eca6112e4565b6001600160a01b0385165f90815260208281526040808320878452909152812054919250611ef886866112cf565b90505f80611f07838588611345565b91509150838103611f1c575050505050505050565b6001600160a01b0388165f908152602086815260408083208a84529091529020819055818314611f5157611f518888846124ce565b60408051858152602081018390529081018490526060810183905287906001600160a01b038a16907f956b049289f8dbe8716375414d9fa6bf32cde65ec1b7e102623775cacc66a6999060800160405180910390a35050505050505050565b5f611fb96124e2565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc200546040517fe5be7d900000000000000000000000000000000000000000000000000000000081529192506001600160a01b03169063e5be7d909061202a9084908990899089908990600401613538565b5f604051808303815f87803b158015612041575f80fd5b505af1158015612053573d5f803e3d5ffd5b505050506105a785858585612563565b5f601b83900b83148383826120c7577d90e40fbeea1d3a4abc8955e946fe31cdcf66f634e10000000000000000008605156120a757620186a0860595506005850194505b8586601b0b146120c257600a860595508460010194506120a7565b6120dd565b855f036120dd57505f925060019150611ea79050565b848560030b14612139575f8512156120fd57505f9250829150611ea79050565b6040517fd556b11100000000000000000000000000000000000000000000000000000000815260048101839052602481018290526044016107f4565b50507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841660e084901b1791509250929050565b5f8085158415178015612181575f92505f915061227e565b61218b848761357d565b91505f612197886127c7565b90505f6121a3876127c7565b90505f6121b08383612828565b5090505f6f0785ee10d5da46d900f436a0000000008211156121e5576f0785ee10d5da46d900f436a000000000820491506025015b670de0b6b3a764000082111561220657670de0b6b3a7640000820491506012015b633b9aca0082111561221f57633b9aca00820491506009015b61271082111561223457612710820491506004015b811561224857600a82049150600101612234565b612252818761357d565b95506122748b8a61226e878761226987600a613684565b612844565b89612929565b9097509550505050505b5094509492505050565b5f805f6122958585612063565b91509150801580156122a5575081155b15611e02576040517f8eba4d0700000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016107f4565b5f805f85121561232c576040517f4a7d166b00000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016107f4565b845f0361233e57505f905060016115e5565b8460ff8416850185811215612389576040517fd556b11100000000000000000000000000000000000000000000000000000000815260048101889052602481018790526044016107f4565b5f805f8312156123f3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb38312156123ca575f8095509550505050506115e5565b825f03600a0a91508184816123e1576123e1613201565b04955050840290911491506115e59050565b5f8313156124be57604d831315612449576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff881660448201526064016107f4565b82600a0a9150815f198161245f5761245f613201565b048411156124ac576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff881660448201526064016107f4565b50919091029250600191506115e59050565b83600195509550505050506115e5565b5f6124d984846118f6565b91909155505050565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201545f907fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc200906001600160a01b03168061253e57339250505090565b6001909101805473ffffffffffffffffffffffffffffffffffffffff19169055919050565b805182517f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c450091146125cd57825182516040517f5b059991000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016107f4565b335f5b84518110156126e8576020818102868101820151908601909101516001600160a01b0389161561269a575f828152602086815260408083206001600160a01b038d16845290915290205481811015612674576040517f03dee4c50000000000000000000000000000000000000000000000000000000081526001600160a01b038b1660048201526024810182905260448101839052606481018490526084016107f4565b5f838152602087815260408083206001600160a01b038e16845290915290209082900390555b6001600160a01b038816156126de575f828152602086815260408083206001600160a01b038c168452909152812080548392906126d89084906132e6565b90915550505b50506001016125d0565b5083516001036127685760208401515f906020850151909150866001600160a01b0316886001600160a01b0316846001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051612759929190918252602082015260400190565b60405180910390a4505061096d565b846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516127b792919061368f565b60405180910390a4505050505050565b5f80821215612824577f8000000000000000000000000000000000000000000000000000000000000000820361281e57507f8000000000000000000000000000000000000000000000000000000000000000919050565b505f0390565b5090565b5f805f1983850993909202808410938190039390930393915050565b5f805f6128518686612828565b91509150815f036128755783818161286b5761286b613201565b0492505050610b00565b8382106128bf576040517f6c59da120000000000000000000000000000000000000000000000000000000081526004810187905260248101869052604481018590526064016107f4565b5f84868809600186198101871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103025f82900382900490920185841190960395909502919093039390930492909217029150509392505050565b5f805f85871812156129f3577f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8411156129e0576129887f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60016132e6565b84036129b857507f8000000000000000000000000000000000000000000000000000000000000000905081612a2c565b6129c3600a856132f9565b6129cc906136b3565b6129d784600161357d565b91509150612a2c565b6129e9846136b3565b8391509150612a2c565b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841115612a26576129cc600a856132f9565b50829050815b94509492505050565b6001600160a01b0381168114610b6b575f80fd5b5f8060408385031215612a5a575f80fd5b8235612a6581612a35565b946020939093013593505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114610b6b575f80fd5b5f60208284031215612ab0575f80fd5b8135610b0081612a73565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612af857612af8612abb565b604052919050565b5f67ffffffffffffffff821115612b1957612b19612abb565b50601f01601f191660200190565b5f82601f830112612b36575f80fd5b8135612b49612b4482612b00565b612acf565b818152846020838601011115612b5d575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f8060c08789031215612b8e575f80fd5b8635612b9981612a35565b95506020870135612ba981612a35565b94506040870135612bb981612a35565b9350606087013592506080870135915060a087013567ffffffffffffffff811115612be2575f80fd5b612bee89828a01612b27565b9150509295509295509295565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6102d86020830184612bfb565b5f60208284031215612c4b575f80fd5b5035919050565b5f8060408385031215612c63575f80fd5b82359150602083013567ffffffffffffffff811115612c80575f80fd5b612c8c85828601612b27565b9150509250929050565b5f67ffffffffffffffff821115612caf57612caf612abb565b5060051b60200190565b5f82601f830112612cc8575f80fd5b81356020612cd8612b4483612c96565b8083825260208201915060208460051b870101935086841115612cf9575f80fd5b602086015b84811015612d155780358352918301918301612cfe565b509695505050505050565b5f805f805f60a08688031215612d34575f80fd5b8535612d3f81612a35565b94506020860135612d4f81612a35565b9350604086013567ffffffffffffffff80821115612d6b575f80fd5b612d7789838a01612cb9565b94506060880135915080821115612d8c575f80fd5b612d9889838a01612cb9565b93506080880135915080821115612dad575f80fd5b50612dba88828901612b27565b9150509295509295909350565b5f60208284031215612dd7575f80fd5b813567ffffffffffffffff811115612ded575f80fd5b612df984828501612b27565b949350505050565b5f8060408385031215612e12575f80fd5b823567ffffffffffffffff80821115612e29575f80fd5b818501915085601f830112612e3c575f80fd5b81356020612e4c612b4483612c96565b82815260059290921b84018101918181019089841115612e6a575f80fd5b948201945b83861015612e91578535612e8281612a35565b82529482019490820190612e6f565b96505086013592505080821115612ea6575f80fd5b50612c8c85828601612cb9565b5f815180845260208085019450602084015f5b83811015612ee257815187529582019590820190600101612ec6565b509495945050505050565b602081525f6102d86020830184612eb3565b5f805f805f60a08688031215612f13575f80fd5b8535612f1e81612a35565b94506020860135612f2e81612a35565b93506040860135925060608601359150608086013567ffffffffffffffff811115612f57575f80fd5b612dba88828901612b27565b5f8060408385031215612f74575f80fd5b8235612f7f81612a35565b915060208301358015158114612f93575f80fd5b809150509250929050565b5f8060408385031215612faf575f80fd5b8235612fba81612a35565b91506020830135612f9381612a35565b5f81518060208401855e5f93019283525090919050565b5f612df9612fef8386612fca565b84612fca565b7f7b22646563696d616c73223a000000000000000000000000000000000000000081525f613026600c830187612fca565b7f2c226465736372697074696f6e223a2231206f6620746865736520726563656981527f7074732063616e206265206275726e656420616c6f6e67736964652031200000602082015261307c603e820187612fca565b90507f20746f2072656465656d2000000000000000000000000000000000000000000081526130ae600b820186612fca565b90507f2066726f6d20746865207661756c742e222c000000000000000000000000000081527f226e616d65223a220000000000000000000000000000000000000000000000006012820152613106601a820185612fca565b7f227d0000000000000000000000000000000000000000000000000000000000008152600201979650505050505050565b5f60208284031215613147575f80fd5b8151610b0081612a35565b634e487b7160e01b5f52603260045260245ffd5b5f613173612b4484612b00565b9050828152838383011115613186575f80fd5b8282602083015e5f602084830101529392505050565b5f602082840312156131ac575f80fd5b815167ffffffffffffffff8111156131c2575f80fd5b8201601f810184136131d2575f80fd5b612df984825160208401613166565b5f602082840312156131f1575f80fd5b815160ff81168114610b00575f80fd5b634e487b7160e01b5f52601260045260245ffd5b6001600160a01b0384168152826020820152606060408201525f61323c6060830184612bfb565b95945050505050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156102db576102db613245565b83815260208101839052606081016003831061329657634e487b7160e01b5f52602160045260245ffd5b826040830152949350505050565b5f805f606084860312156132b6575f80fd5b8351925060208401519150604084015167ffffffffffffffff811681146132db575f80fd5b809150509250925092565b808201808211156102db576102db613245565b5f8261331357634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176102db576102db613245565b5f6020828403121561333f575f80fd5b5051919050565b5f6001600160a01b03808816835280871660208401525060a0604083015261337160a0830186612eb3565b82810360608401526133838186612eb3565b905082810360808401526133978185612bfb565b98975050505050505050565b5f602082840312156133b3575f80fd5b8151610b0081612a73565b5f6001600160a01b03808816835280871660208401525084604083015283606083015260a060808301526133f560a0830184612bfb565b979650505050505050565b600181811c9082168061341457607f821691505b60208210810361343257634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115610f4457805f5260205f20601f840160051c8101602085101561345d5750805b601f840160051c820191505b818110156105a7575f8155600101613469565b815167ffffffffffffffff81111561349657613496612abb565b6134aa816134a48454613400565b84613438565b602080601f8311600181146134dd575f84156134c65750858301515b5f19600386901b1c1916600185901b17855561096d565b5f85815260208120601f198616915b8281101561350b578886015182559484019460019091019084016134ec565b508582101561352857878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f6001600160a01b038088168352808716602084015280861660408401525060a0606083015261356b60a0830185612eb3565b82810360808401526133978185612eb3565b8082018281125f83128015821682158216171561359c5761359c613245565b505092915050565b600181815b808511156135de57815f19048211156135c4576135c4613245565b808516156135d157918102915b93841c93908002906135a9565b509250929050565b5f826135f4575060016102db565b8161360057505f6102db565b816001811461361657600281146136205761363c565b60019150506102db565b60ff84111561363157613631613245565b50506001821b6102db565b5060208310610133831016604e8410600b841016171561365f575081810a6102db565b61366983836135a4565b805f190482111561367c5761367c613245565b029392505050565b5f6102d883836135e6565b604081525f6136a16040830185612eb3565b828103602084015261323c8185612eb3565b5f7f8000000000000000000000000000000000000000000000000000000000000000820361281e5761281e61324556"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b50600436106100fa575f3560e01c8063481c6a7511610093578063a22cb46511610063578063a22cb46514610232578063c2530e3914610245578063e985e9c514610258578063f242432a146102b2575f80fd5b8063481c6a75146101bd5780634e1273f4146101f75780636d5b3f781461021757806395d89b411461022a575f80fd5b80630e89341c116100ce5780630e89341c14610171578063177769cb146101845780632eb2c2d614610197578063439fab91146101aa575f80fd5b8062fdd58e146100fe57806301ffc9a714610124578063043fa9871461014757806306fdde031461015c575b5f80fd5b61011161010c366004612a49565b6102c5565b6040519081526020015b60405180910390f35b610137610132366004612aa0565b6102e1565b604051901515815260200161011b565b61015a610155366004612b79565b6103c3565b005b61016461046a565b60405161011b9190612c29565b61016461017f366004612c3b565b6104cf565b61015a610192366004612c52565b610580565b61015a6101a5366004612d20565b61058f565b6101116101b8366004612dc7565b6105ae565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc200546040516001600160a01b03909116815260200161011b565b61020a610205366004612e01565b6107ae565b60405161011b9190612eed565b61015a610225366004612eff565b6108c5565b610164610975565b61015a610240366004612f63565b6109c6565b61015a610253366004612eff565b6109d1565b610137610266366004612f9e565b6001600160a01b039182165f9081527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45016020908152604080832093909416825291909152205460ff1690565b61015a6102c0366004612eff565b610a37565b5f6102d883836102d3610a4d565b610ab3565b90505b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a2600000000000000000000000000000000000000000000000000000000148061037357507fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000145b806102db57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146102db565b6103cb610b07565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038816179055856104208686868686610b6e565b6104617fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19169055565b50505050505050565b6060610474610c25565b6040518060400160405280600881526020017f20526563656970740000000000000000000000000000000000000000000000008152506040516020016104bb929190612fe1565b604051602081830303815290604052905090565b60605f6104e56104dd610cd3565b60ff16610d78565b6104ed610c25565b6104f5610e15565b6104fd61046a565b6040516020016105109493929190612ff5565b60408051601f19818403018152828201909152601d82527f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c0000006020830152915061055882610ef5565b604051602001610569929190612fe1565b604051602081830303815290604052915050919050565b61058b338383610f01565b5050565b61059a335b86610f49565b6105a78585858585610ff9565b5050505050565b5f806105b861108c565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156105e45750825b90505f8267ffffffffffffffff1660011480156106005750303b155b90508115801561060e575080155b15610645576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156106a65784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6106bd60405180602001604052805f8152506110b4565b5f7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc20090505f888060200190518101906106f69190613137565b825473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039190911617909155507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc3955083156107a45784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b606081518351146107fd57815183516040517f5b059991000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044015b60405180910390fd5b5f610806610a4d565b90505f845167ffffffffffffffff81111561082357610823612abb565b60405190808252806020026020018201604052801561084c578160200160208202803683370190505b5090505f5b85518110156108bc5761089786828151811061086f5761086f613152565b602002602001015186838151811061088957610889613152565b602002602001015185610ab3565b8282815181106108a9576108a9613152565b6020908102919091010152600101610851565b50949350505050565b6108cd610b07565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03871617905584610920868584610f01565b61092c858585856110c5565b61096d7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19169055565b505050505050565b606061097f610c25565b6040518060400160405280600581526020017f20524350540000000000000000000000000000000000000000000000000000008152506040516020016104bb929190612fe1565b61058b33838361113a565b6109d9610b07565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03871617905584610a2c868584610f01565b61092c85858561124e565b610a4033610594565b6105a78585858585610b6e565b5f306001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a8a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aae9190613137565b905090565b5f80610abf85856112cf565b90505f610aca6112e4565b6001600160a01b0387165f90815260209182526040808220888352909252908120549150610af9838387611345565b5093505050505b9392505050565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc20080546001600160a01b03163314610b6b576040517fc0b2335a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b6001600160a01b038416610bb0576040517f57f447ce0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b038516610bf2576040517f01a835140000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6040805160018082526020820186905281830190815260608201859052608082019092529061046187878484875f6115ed565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc2008054604080517f95d89b410000000000000000000000000000000000000000000000000000000081529051606093926001600160a01b0316916395d89b41916004808301925f9291908290030181865afa158015610ca6573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610ccd919081019061319c565b91505090565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc2008054604080517f313ce56700000000000000000000000000000000000000000000000000000000815290515f93926001600160a01b03169163313ce5679160048083019260209291908290030181865afa158015610d54573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ccd91906131e1565b60605f610d8483611645565b60010190505f8167ffffffffffffffff811115610da357610da3612abb565b6040519080825280601f01601f191660200182016040528015610dcd576020820181803683370190505b5090508181016020015b5f19017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084610dd757509392505050565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc2008054604080517f38d52e0f0000000000000000000000000000000000000000000000000000000081529051606093926001600160a01b0316916338d52e0f9160048083019260209291908290030181865afa158015610e97573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ebb9190613137565b6001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015610ca6573d5f803e3d5ffd5b60606102db825f611726565b805115610f44577fd66d6a9810a5cef78b704e7e04334961e997c81d337f029f74637f060f3d8d65838383604051610f3b93929190613215565b60405180910390a15b505050565b816001600160a01b0316816001600160a01b031614158015610faf57506001600160a01b038082165f9081527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4501602090815260408083209386168352929052205460ff16155b1561058b576040517fe237d9220000000000000000000000000000000000000000000000000000000081526001600160a01b038084166004830152821660248201526044016107f4565b6001600160a01b03841661103b576040517f57f447ce0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b03851661107d576040517f01a835140000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6105a7858585858560016115ed565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006102db565b6110bc6118a5565b610b6b816118e5565b6001600160a01b038416611107576040517f57f447ce0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6040805160018082526020820186905281830190815260608201859052608082019092529061096d5f87848487846115ed565b7f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45006001600160a01b03841661119d576040517f3e31884e0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b0383166111df576040517fced3e1000000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b038481165f818152600184016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a350505050565b6001600160a01b038316611290576040517f01a835140000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b604080516001808252602082018590528183019081526060820184905260a082019092525f608082018181529192916105a791879185908590836115ed565b5f806112db84846118f6565b54949350505050565b5f8060ff1961131460017fedb99b3af8e1c50d494d6f1b4c75245a0b733cb90baa42bfe0e2f5bc8b000f82613259565b60405160200161132691815260200190565b60408051601f1981840301815291905280516020909101201692915050565b6040517f79ba43050000000000000000000000000000000000000000000000000000000081525f9081908490829081906001600160a01b038716906379ba43059061139a90869060039060019060040161326c565b606060405180830381865afa1580156113b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113d991906132a4565b5091509150875f03611496575b5f198214611488576040517f79ba430500000000000000000000000000000000000000000000000000000000815291925082916001600160a01b038716906379ba43059061143e90859060039060019060040161326c565b606060405180830381865afa158015611459573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061147d91906132a4565b5090925090506113e6565b5f83945094505050506115e5565b875b5f1983146115dd5782935060028203611548576040517fb21a2494000000000000000000000000000000000000000000000000000000008152600481018490525f90611538906001600160a01b038a169063b21a2494906024015f60405180830381865afa15801561150c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611533919081019061319c565b61196a565b9050611544828261197f565b9150505b6040517f79ba43050000000000000000000000000000000000000000000000000000000081526001600160a01b038816906379ba43059061159390869060039060019060040161326c565b606060405180830381865afa1580156115ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115d291906132a4565b509093509150611498565b945091925050505b935093915050565b6115f9868686866119fa565b6001600160a01b0385161561096d573381156116225761161d818888888888611a5f565b610461565b6020858101519085015161163a838a8a85858a611bfc565b505050505050505050565b5f807a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061168d577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef810000000083106116b9576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106116d757662386f26fc10000830492506010015b6305f5e10083106116ef576305f5e100830492506008015b612710831061170357612710830492506004015b60648310611715576064830492506002015b600a83106102db5760010192915050565b606082515f03611744575060408051602081019091525f81526102db565b5f826117745760038451600261175a91906132e6565b61176491906132f9565b61176f906004613318565b611799565b6003845160046117849190613318565b61178f9060026132e6565b61179991906132f9565b905060405191507f4142434445464748494a4b4c4d4e4f505152535455565758595a616263646566601f5261067083027f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f18603f526020820181810185865187016020810180515f82525b82841015611857576003840193508351603f8160121c16518753600187019650603f81600c1c16518753600187019650603f8160061c16518753600187019650603f811651875350600186019550611804565b9052508590506118985760038651066001811461187b576002811461188e57611896565b603d6001840353603d6002840353611896565b603d60018403535b505b9183525060405292915050565b6118ad611d46565b6118e3576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6118ed6118a5565b610b6b81611d64565b5f8060ff1961192660017f3a8e79826d53842322cdcc810d4a989eb01ac46cfabfd48dcc021625ce13c2d7613259565b60405160200161193891815260200190565b60408051808303601f1901815291815281516020928301205f9687529290921681528185209585529490945250502090565b5f818060200190518101906102db919061332f565b5f7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8311156119dd576040517fbf463fe9000000000000000000000000000000000000000000000000000000008152600481018490526024016107f4565b5f6108bc6119f46119ee865f611db0565b85611e0a565b5f611e6c565b5f611a03610a4d565b90505f5b8351811015611a5257611a3486858381518110611a2657611a26613152565b602002602001015184611eae565b611a4a85858381518110611a2657611a26613152565b600101611a07565b506105a785858585611fb0565b6001600160a01b0384163b1561096d576040517fbc197c810000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063bc197c8190611abc9089908990889088908890600401613346565b6020604051808303815f875af1925050508015611af6575060408051601f3d908101601f19168201909252611af3918101906133a3565b60015b611b76573d808015611b23576040519150601f19603f3d011682016040523d82523d5f602084013e611b28565b606091505b5080515f03611b6e576040517f57f447ce0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024016107f4565b805160208201fd5b7fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014610461576040517f57f447ce0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024016107f4565b6001600160a01b0384163b1561096d576040517ff23a6e610000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063f23a6e6190611c5990899089908890889088906004016133be565b6020604051808303815f875af1925050508015611c93575060408051601f3d908101601f19168201909252611c90918101906133a3565b60015b611cc0573d808015611b23576040519150601f19603f3d011682016040523d82523d5f602084013e611b28565b7fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014610461576040517f57f447ce0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024016107f4565b5f611d4f61108c565b5468010000000000000000900460ff16919050565b7f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45007f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4502610f44838261347c565b5f805f611dbd8585612063565b9150915080611e02576040517f22c9f7bb00000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016107f4565b509392505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d8480611e4f86868686612169565b915091505f611e5e8383612288565b9a9950505050505050505050565b5f807bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8416601b0b60e085901d611ea08282876122e6565b9350935050505b9250929050565b6001600160a01b038316611ec157505050565b5f611eca6112e4565b6001600160a01b0385165f90815260208281526040808320878452909152812054919250611ef886866112cf565b90505f80611f07838588611345565b91509150838103611f1c575050505050505050565b6001600160a01b0388165f908152602086815260408083208a84529091529020819055818314611f5157611f518888846124ce565b60408051858152602081018390529081018490526060810183905287906001600160a01b038a16907f956b049289f8dbe8716375414d9fa6bf32cde65ec1b7e102623775cacc66a6999060800160405180910390a35050505050505050565b5f611fb96124e2565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc200546040517fe5be7d900000000000000000000000000000000000000000000000000000000081529192506001600160a01b03169063e5be7d909061202a9084908990899089908990600401613538565b5f604051808303815f87803b158015612041575f80fd5b505af1158015612053573d5f803e3d5ffd5b505050506105a785858585612563565b5f601b83900b83148383826120c7577d90e40fbeea1d3a4abc8955e946fe31cdcf66f634e10000000000000000008605156120a757620186a0860595506005850194505b8586601b0b146120c257600a860595508460010194506120a7565b6120dd565b855f036120dd57505f925060019150611ea79050565b848560030b14612139575f8512156120fd57505f9250829150611ea79050565b6040517fd556b11100000000000000000000000000000000000000000000000000000000815260048101839052602481018290526044016107f4565b50507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841660e084901b1791509250929050565b5f8085158415178015612181575f92505f915061227e565b61218b848761357d565b91505f612197886127c7565b90505f6121a3876127c7565b90505f6121b08383612828565b5090505f6f0785ee10d5da46d900f436a0000000008211156121e5576f0785ee10d5da46d900f436a000000000820491506025015b670de0b6b3a764000082111561220657670de0b6b3a7640000820491506012015b633b9aca0082111561221f57633b9aca00820491506009015b61271082111561223457612710820491506004015b811561224857600a82049150600101612234565b612252818761357d565b95506122748b8a61226e878761226987600a613684565b612844565b89612929565b9097509550505050505b5094509492505050565b5f805f6122958585612063565b91509150801580156122a5575081155b15611e02576040517f8eba4d0700000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016107f4565b5f805f85121561232c576040517f4a7d166b00000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016107f4565b845f0361233e57505f905060016115e5565b8460ff8416850185811215612389576040517fd556b11100000000000000000000000000000000000000000000000000000000815260048101889052602481018790526044016107f4565b5f805f8312156123f3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb38312156123ca575f8095509550505050506115e5565b825f03600a0a91508184816123e1576123e1613201565b04955050840290911491506115e59050565b5f8313156124be57604d831315612449576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff881660448201526064016107f4565b82600a0a9150815f198161245f5761245f613201565b048411156124ac576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff881660448201526064016107f4565b50919091029250600191506115e59050565b83600195509550505050506115e5565b5f6124d984846118f6565b91909155505050565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201545f907fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc200906001600160a01b03168061253e57339250505090565b6001909101805473ffffffffffffffffffffffffffffffffffffffff19169055919050565b805182517f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c450091146125cd57825182516040517f5b059991000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016107f4565b335f5b84518110156126e8576020818102868101820151908601909101516001600160a01b0389161561269a575f828152602086815260408083206001600160a01b038d16845290915290205481811015612674576040517f03dee4c50000000000000000000000000000000000000000000000000000000081526001600160a01b038b1660048201526024810182905260448101839052606481018490526084016107f4565b5f838152602087815260408083206001600160a01b038e16845290915290209082900390555b6001600160a01b038816156126de575f828152602086815260408083206001600160a01b038c168452909152812080548392906126d89084906132e6565b90915550505b50506001016125d0565b5083516001036127685760208401515f906020850151909150866001600160a01b0316886001600160a01b0316846001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051612759929190918252602082015260400190565b60405180910390a4505061096d565b846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516127b792919061368f565b60405180910390a4505050505050565b5f80821215612824577f8000000000000000000000000000000000000000000000000000000000000000820361281e57507f8000000000000000000000000000000000000000000000000000000000000000919050565b505f0390565b5090565b5f805f1983850993909202808410938190039390930393915050565b5f805f6128518686612828565b91509150815f036128755783818161286b5761286b613201565b0492505050610b00565b8382106128bf576040517f6c59da120000000000000000000000000000000000000000000000000000000081526004810187905260248101869052604481018590526064016107f4565b5f84868809600186198101871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103025f82900382900490920185841190960395909502919093039390930492909217029150509392505050565b5f805f85871812156129f3577f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8411156129e0576129887f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60016132e6565b84036129b857507f8000000000000000000000000000000000000000000000000000000000000000905081612a2c565b6129c3600a856132f9565b6129cc906136b3565b6129d784600161357d565b91509150612a2c565b6129e9846136b3565b8391509150612a2c565b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841115612a26576129cc600a856132f9565b50829050815b94509492505050565b6001600160a01b0381168114610b6b575f80fd5b5f8060408385031215612a5a575f80fd5b8235612a6581612a35565b946020939093013593505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114610b6b575f80fd5b5f60208284031215612ab0575f80fd5b8135610b0081612a73565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612af857612af8612abb565b604052919050565b5f67ffffffffffffffff821115612b1957612b19612abb565b50601f01601f191660200190565b5f82601f830112612b36575f80fd5b8135612b49612b4482612b00565b612acf565b818152846020838601011115612b5d575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f8060c08789031215612b8e575f80fd5b8635612b9981612a35565b95506020870135612ba981612a35565b94506040870135612bb981612a35565b9350606087013592506080870135915060a087013567ffffffffffffffff811115612be2575f80fd5b612bee89828a01612b27565b9150509295509295509295565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6102d86020830184612bfb565b5f60208284031215612c4b575f80fd5b5035919050565b5f8060408385031215612c63575f80fd5b82359150602083013567ffffffffffffffff811115612c80575f80fd5b612c8c85828601612b27565b9150509250929050565b5f67ffffffffffffffff821115612caf57612caf612abb565b5060051b60200190565b5f82601f830112612cc8575f80fd5b81356020612cd8612b4483612c96565b8083825260208201915060208460051b870101935086841115612cf9575f80fd5b602086015b84811015612d155780358352918301918301612cfe565b509695505050505050565b5f805f805f60a08688031215612d34575f80fd5b8535612d3f81612a35565b94506020860135612d4f81612a35565b9350604086013567ffffffffffffffff80821115612d6b575f80fd5b612d7789838a01612cb9565b94506060880135915080821115612d8c575f80fd5b612d9889838a01612cb9565b93506080880135915080821115612dad575f80fd5b50612dba88828901612b27565b9150509295509295909350565b5f60208284031215612dd7575f80fd5b813567ffffffffffffffff811115612ded575f80fd5b612df984828501612b27565b949350505050565b5f8060408385031215612e12575f80fd5b823567ffffffffffffffff80821115612e29575f80fd5b818501915085601f830112612e3c575f80fd5b81356020612e4c612b4483612c96565b82815260059290921b84018101918181019089841115612e6a575f80fd5b948201945b83861015612e91578535612e8281612a35565b82529482019490820190612e6f565b96505086013592505080821115612ea6575f80fd5b50612c8c85828601612cb9565b5f815180845260208085019450602084015f5b83811015612ee257815187529582019590820190600101612ec6565b509495945050505050565b602081525f6102d86020830184612eb3565b5f805f805f60a08688031215612f13575f80fd5b8535612f1e81612a35565b94506020860135612f2e81612a35565b93506040860135925060608601359150608086013567ffffffffffffffff811115612f57575f80fd5b612dba88828901612b27565b5f8060408385031215612f74575f80fd5b8235612f7f81612a35565b915060208301358015158114612f93575f80fd5b809150509250929050565b5f8060408385031215612faf575f80fd5b8235612fba81612a35565b91506020830135612f9381612a35565b5f81518060208401855e5f93019283525090919050565b5f612df9612fef8386612fca565b84612fca565b7f7b22646563696d616c73223a000000000000000000000000000000000000000081525f613026600c830187612fca565b7f2c226465736372697074696f6e223a2231206f6620746865736520726563656981527f7074732063616e206265206275726e656420616c6f6e67736964652031200000602082015261307c603e820187612fca565b90507f20746f2072656465656d2000000000000000000000000000000000000000000081526130ae600b820186612fca565b90507f2066726f6d20746865207661756c742e222c000000000000000000000000000081527f226e616d65223a220000000000000000000000000000000000000000000000006012820152613106601a820185612fca565b7f227d0000000000000000000000000000000000000000000000000000000000008152600201979650505050505050565b5f60208284031215613147575f80fd5b8151610b0081612a35565b634e487b7160e01b5f52603260045260245ffd5b5f613173612b4484612b00565b9050828152838383011115613186575f80fd5b8282602083015e5f602084830101529392505050565b5f602082840312156131ac575f80fd5b815167ffffffffffffffff8111156131c2575f80fd5b8201601f810184136131d2575f80fd5b612df984825160208401613166565b5f602082840312156131f1575f80fd5b815160ff81168114610b00575f80fd5b634e487b7160e01b5f52601260045260245ffd5b6001600160a01b0384168152826020820152606060408201525f61323c6060830184612bfb565b95945050505050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156102db576102db613245565b83815260208101839052606081016003831061329657634e487b7160e01b5f52602160045260245ffd5b826040830152949350505050565b5f805f606084860312156132b6575f80fd5b8351925060208401519150604084015167ffffffffffffffff811681146132db575f80fd5b809150509250925092565b808201808211156102db576102db613245565b5f8261331357634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176102db576102db613245565b5f6020828403121561333f575f80fd5b5051919050565b5f6001600160a01b03808816835280871660208401525060a0604083015261337160a0830186612eb3565b82810360608401526133838186612eb3565b905082810360808401526133978185612bfb565b98975050505050505050565b5f602082840312156133b3575f80fd5b8151610b0081612a73565b5f6001600160a01b03808816835280871660208401525084604083015283606083015260a060808301526133f560a0830184612bfb565b979650505050505050565b600181811c9082168061341457607f821691505b60208210810361343257634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115610f4457805f5260205f20601f840160051c8101602085101561345d5750805b601f840160051c820191505b818110156105a7575f8155600101613469565b815167ffffffffffffffff81111561349657613496612abb565b6134aa816134a48454613400565b84613438565b602080601f8311600181146134dd575f84156134c65750858301515b5f19600386901b1c1916600185901b17855561096d565b5f85815260208120601f198616915b8281101561350b578886015182559484019460019091019084016134ec565b508582101561352857878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f6001600160a01b038088168352808716602084015280861660408401525060a0606083015261356b60a0830185612eb3565b82810360808401526133978185612eb3565b8082018281125f83128015821682158216171561359c5761359c613245565b505092915050565b600181815b808511156135de57815f19048211156135c4576135c4613245565b808516156135d157918102915b93841c93908002906135a9565b509250929050565b5f826135f4575060016102db565b8161360057505f6102db565b816001811461361657600281146136205761363c565b60019150506102db565b60ff84111561363157613631613245565b50506001821b6102db565b5060208310610133831016604e8410600b841016171561365f575081810a6102db565b61366983836135a4565b805f190482111561367c5761367c613245565b029392505050565b5f6102d883836135e6565b604081525f6136a16040830185612eb3565b828103602084015261323c8185612eb3565b5f7f8000000000000000000000000000000000000000000000000000000000000000820361281e5761281e61324556"; diff --git a/src/generated/0_1_2/StoxReceiptVault.pointers.sol b/src/generated/0_1_2/StoxReceiptVault.pointers.sol deleted file mode 100644 index d455ad4a..00000000 --- a/src/generated/0_1_2/StoxReceiptVault.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x11da975b8024dd98441bfdf42a68462fa5db9bd4e3af348f05928ef359924671); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x2BCcEd626566Ef1e65F922DD03748C5C7aa2d748); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"608060405234801561000f575f80fd5b5060017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005561003c610041565b6100f3565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100915760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100f05780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b615ffa806101005f395ff3fe608060405260043610610337575f3560e01c8063715018a6116101af578063bbec4d06116100eb578063dd62ed3e11610094578063e70689f51161006e578063e70689f5146109ab578063f2fde38b146109ca578063f5647943146109e9578063f5d214f514610a1e5761033e565b8063dd62ed3e146108ed578063e1e6b89814610950578063e5be7d901461098c5761033e565b8063c77b66c2116100c5578063c77b66c2146108b3578063d09edf31146108c6578063db2088f4146108da5761033e565b8063bbec4d0614610875578063c54cafee14610894578063c63d75b6146105635761033e565b80638da5cb5b11610158578063a9059cbb11610132578063a9059cbb146107b8578063ac9650d8146107d7578063ae57de0c14610803578063ae98b39f146108225761033e565b80638da5cb5b14610771578063921a4c421461078557806395d89b41146107a45761033e565b80637a7af70d116101895780637a7af70d1461072057806381c3fcb91461073357806385b68756146107525761033e565b8063715018a6146106ce578063770afee1146106e2578063786cd916146107015761033e565b8063276b11401161027e5780634abe413711610227578063633ac71711610201578063633ac7171461061e5780636ba235211461063d5780636c876b941461069057806370a08231146106af5761033e565b80634abe4137146105c157806356db02e8146105e057806359f89dda146105ff5761033e565b8063402d267d11610258578063402d267d14610563578063439fab9114610583578063488bd7b0146105a25761033e565b8063276b1140146104fe578063313ce5671461051157806338d52e0f146105375761033e565b806318160ddd116102e05780631f6759d3116102ba5780631f6759d31461048d57806323b872dd146104c05780632755c6c7146104df5761033e565b806318160ddd1461043b578063181e7b3b1461044f5780631e4344a11461046e5761033e565b806306fdde031161031157806306fdde03146103e8578063095ea7b3146104095780631423feba146104285761033e565b806301e1d1141461037357806301ffc9a71461039a578063058a628f146103c95761033e565b3661033e57005b7351f78b77edffdb62b8aeb753066c318a46d05d74365f80375f80365f845af43d5f803e80801561036d573d5ff35b3d5ffd5b005b34801561037e575f80fd5b50610387610a51565b6040519081526020015b60405180910390f35b3480156103a5575f80fd5b506103b96103b4366004614f0e565b610a5f565b6040519015158152602001610391565b3480156103d4575f80fd5b506103716103e3366004614f61565b610aba565b3480156103f3575f80fd5b506103fc610ce3565b6040516103919190614faa565b348015610414575f80fd5b506103b9610423366004614fbc565b610db6565b610387610436366004615109565b610dcd565b348015610446575f80fd5b50610387610e17565b34801561045a575f80fd5b50610387610469366004615168565b610e20565b348015610479575f80fd5b50610371610488366004615188565b610e3f565b348015610498575f80fd5b507f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70054610387565b3480156104cb575f80fd5b506103b96104da36600461519f565b610ecb565b3480156104ea575f80fd5b506103716104f9366004614fbc565b610eee565b61038761050c366004615168565b611028565b34801561051c575f80fd5b50610525611053565b60405160ff9091168152602001610391565b348015610542575f80fd5b5061054b6110f8565b6040516001600160a01b039091168152602001610391565b34801561056e575f80fd5b5061038761057d366004614f61565b505f1990565b34801561058e575f80fd5b5061038761059d3660046151dd565b61112c565b3480156105ad575f80fd5b506103876105bc366004615168565b6113d1565b3480156105cc575f80fd5b506103876105db366004614fbc565b6113e9565b3480156105eb575f80fd5b506103876105fa36600461520f565b6114a3565b34801561060a575f80fd5b50610371610619366004615256565b6117e4565b348015610629575f80fd5b50610371610638366004614f61565b61181c565b348015610648575f80fd5b50610387610657366004614f61565b6001600160a01b03165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be701602052604090205490565b34801561069b575f80fd5b506103716106aa366004614f61565b611949565b3480156106ba575f80fd5b506103876106c9366004614f61565b611a49565b3480156106d9575f80fd5b50610371611a92565b3480156106ed575f80fd5b506103876106fc366004615256565b611aa5565b34801561070c575f80fd5b5061037161071b366004614fbc565b611c5f565b61038761072e366004615168565b611d90565b34801561073e575f80fd5b5061037161074d3660046151dd565b611da5565b34801561075d575f80fd5b5061038761076c366004614fbc565b611de1565b34801561077c575f80fd5b5061054b611ec4565b348015610790575f80fd5b5061038761079f3660046152ab565b611ecd565b3480156107af575f80fd5b506103fc611efa565b3480156107c3575f80fd5b506103b96107d2366004614fbc565b611f4b565b3480156107e2575f80fd5b506107f66107f136600461531c565b611f58565b604051610391919061538b565b34801561080e575f80fd5b5061038761081d3660046152ab565b61203e565b34801561082d575f80fd5b5061038761083c366004614f61565b6001600160a01b03165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be702602052604090205490565b348015610880575f80fd5b5061038761088f366004615168565b612061565b34801561089f575f80fd5b506103876108ae366004615449565b61206f565b6103876108c1366004615109565b612157565b3480156108d1575f80fd5b5061054b612186565b6103876108e8366004615168565b6121ae565b3480156108f8575f80fd5b506103876109073660046154ae565b6001600160a01b039182165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b34801561095b575f80fd5b507f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031661054b565b348015610997575f80fd5b506103716109a6366004615557565b6121c2565b3480156109b6575f80fd5b506103716109c53660046155ed565b6122f9565b3480156109d5575f80fd5b506103716109e4366004614f61565b612462565b3480156109f4575f80fd5b507fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd025442116103b9565b348015610a29575f80fd5b507fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0154610387565b5f610a5a610e17565b905090565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f59f89dda000000000000000000000000000000000000000000000000000000001480610ab45750610ab4826124b8565b92915050565b6040517f248a9ca30000000000000000000000000000000000000000000000000000000081527ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f8960048201525f906001600160a01b0383169063248a9ca390602401602060405180830381865afa158015610b37573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b5b9190615645565b905080610bca576040517f76728ed90000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201527ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f8960248201526044015b60405180910390fd5b6040517f248a9ca30000000000000000000000000000000000000000000000000000000081527f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e760048201525f906001600160a01b0384169063248a9ca390602401602060405180830381865afa158015610c47573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c6b9190615645565b905080610cd5576040517f76728ed90000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201527f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e76024820152604401610bc1565b610cde836125e6565b505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0380546060917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0091610d349061565c565b80601f0160208091040260200160405190810160405280929190818152602001828054610d609061565c565b8015610dab5780601f10610d8257610100808354040283529160200191610dab565b820191905f5260205f20905b815481529060010190602001808311610d8e57829003601f168201915b505050505091505090565b5f33610dc38185856125f7565b5060019392505050565b5f80610dd7612604565b90505f610df187610deb335b89865f61265b565b8761266f565b9050610e008787838588612685565b610e0b335b476128ac565b9150505b949350505050565b5f610a5a612955565b5f610e3883670de0b6b3a7640000612ab4565b612ab4565b9392505050565b610e47612ac0565b7f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be7008054821115610e75578181555b7fff9fd4facd8bd30d905cc7ffbd03e8829a414df4c6554d155d132c3377868a42610e9e611ec4565b8254604080516001600160a01b039093168352602083018690528201526060015b60405180910390a15050565b5f33610ed8858285612b0b565b610ee3858585612bbf565b506001949350505050565b610ef6612ac0565b805f03610f3a576040517f5a6084530000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610bc1565b6001600160a01b0382165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70260205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70090821115610fb7576001600160a01b0383165f90815260028201602052604090208290555b7fa1e5b368dc99c8558f28b1e7e8cb7ab542c989a4b697628ba7bfffe0aeaccffd610fe0611ec4565b6001600160a01b038581165f818152600286016020908152604091829020548251959094168552840191909152820185905260608201526080015b60405180910390a1505050565b5f8061104884611042335b3361103c612604565b5f61265b565b85612c4e565b9050610e3833610e05565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f308970152310243260080545f91906001600160a01b0316803b806110905760126110f0565b816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110f091906156a7565b935050505090565b5f807f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f30897015231024326005b546001600160a01b031692915050565b5f80611136612c65565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156111625750825b90505f8267ffffffffffffffff16600114801561117e5750303b155b90508115801561118c575080155b156111c3576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156112245784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b61122c612c8d565b5f878060200190518101906112419190615714565b90506112508160200151612cc6565b6020810151516001600160a01b031615611296576040517f8951799200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80516001600160a01b03166112d7576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6112e030612e39565b80516112eb90612f99565b7ffa89761502e992c8c755fba778ced00f4562485023f656906eb76f5dd65a9fe53360408051808201825284516001600160a01b0316815260208086015190820152905161133a92919061580b565b60405180910390a17fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc396505083156113c75784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b5f610e38836113e4335b3386600161265b565b613021565b5f61141b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031690565b6040517efdd58e0000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015260248201859052919091169062fdd58e90604401602060405180830381865afa15801561147f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e389190615645565b5f6114ac61302e565b825f036114e5576040517f312497b000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6115a98461151b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031690565b6040517efdd58e0000000000000000000000000000000000000000000000000000000081526001600160a01b038a81166004830152602482018a9052919091169062fdd58e90604401602060405180830381865afa15801561157f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115a39190615645565b9061305c565b905080156116c6577f88e2280ece62e9296d3578b77647db2c11f9fa7e42578e2db5d4262123ffae3e3387878785886040516115ea969594939291906158af565b60405180910390a17f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b03166001600160a01b031663043fa98733883360405160e085901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b03938416600482015291831660248301529091166044820152606481018890526084810184905260c060a48201525f60c482015260e4015f604051808303815f87803b1580156116af575f80fd5b505af11580156116c1573d5f803e3d5ffd5b505050505b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f3dd35eca0ca8a128757fa464a5dfa4ad6cc4853cad96dce4e90fdbea4f0a52e36040518060a001604052808c6001600160a01b031681526020018b81526020018a81526020018781526020018981525060405160200161175d91906158f8565b6040516020818303038152906040526040518463ffffffff1660e01b815260040161178a93929190615943565b5f604051808303815f87803b1580156117a1575f80fd5b505af11580156117b3573d5f803e3d5ffd5b5093945050505050610e0f60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b8282826040517f3ae4063b000000000000000000000000000000000000000000000000000000008152600401610bc193929190615943565b611824612ac0565b6001600160a01b0381165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70260205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be7009042116118d9576001600160a01b0382165f818152600283016020526040908190205490517f81a7897700000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610bc1565b6001600160a01b0382165f9081526002820160205260408120557fa1e5b368dc99c8558f28b1e7e8cb7ab542c989a4b697628ba7bfffe0aeaccffd61191c611ec4565b604080516001600160a01b03928316815291851660208301525f9082018190526060820152608001610ebf565b611951612ac0565b6001600160a01b0381165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70160205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be700904211611a06576001600160a01b0382165f818152600183016020526040908190205490517ff1b01b5400000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610bc1565b6001600160a01b0382165f9081526001820160205260408120557fd08871fffa9d03c01fcba597af5dfbe64cb26f207debdae1af2532695447499161191c611ec4565b5f80611a548361306b565b90505f611a5f61307e565b6001600160a01b0385165f90815260038201602052604081205491925090611a889084906130df565b5095945050505050565b611a9a612ac0565b611aa35f612f99565b565b5f611aae61302e565b825f03611ae7576040517f312497b000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f611af5846115a387611a49565b90508015611b47577f3fc1c49e72362e91416388fe7a107b92db924642476e83e701eeeb6256d7249e3386868487604051611b3495949392919061596a565b60405180910390a1611b47853383612bbf565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f54f0af3716c79b30b8c228679d31d77a1a5f526c16af3262730e0a8de4363fed60405180608001604052808b6001600160a01b031681526020018a815260200187815260200189815250604051602001611bd891906159a1565b6040516020818303038152906040526040518463ffffffff1660e01b8152600401611c0593929190615943565b5f604051808303815f87803b158015611c1c575f80fd5b505af1158015611c2e573d5f803e3d5ffd5b5093945050505050610e3860017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b611c67612ac0565b805f03611cab576040517ffd86061b0000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610bc1565b6001600160a01b0382165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70160205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70090821115611d28576001600160a01b0383165f90815260018201602052604090208290555b7fd08871fffa9d03c01fcba597af5dfbe64cb26f207debdae1af25326954474991611d51611ec4565b6001600160a01b038581165f8181526001860160209081526040918290205482519590941685528401919091528201859052606082015260800161101b565b5f8061104884611d9f33611033565b8561266f565b7fdaffad82f53a38a62340f14cdd6fd3b437c5dcda6b32029dac1e661dbce28b2d3382604051611dd69291906159e2565b60405180910390a150565b5f80611df0848585600161265b565b9050805f03611e02575f915050610ab4565b610e0f611e367f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031690565b6040517efdd58e0000000000000000000000000000000000000000000000000000000081526001600160a01b03878116600483015260248201879052919091169062fdd58e90604401602060405180830381865afa158015611e9a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ebe9190615645565b82612ab4565b5f610a5a61318d565b5f80611ee087610e33878988600161265b565b9050611ef08187878a88886131b5565b9695505050505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0480546060917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0091610d349061565c565b5f33610dc3818585612bbf565b604080515f8152602081019091526060908267ffffffffffffffff811115611f8257611f82614fe6565b604051908082528060200260200182016040528015611fb557816020015b6060815260200190600190039081611fa05790505b5091505f5b838110156120365761201130868684818110611fd857611fd8615a43565b9050602002810190611fea9190615a70565b85604051602001611ffd93929190615ad1565b60405160208183030381529060405261357b565b83828151811061202357612023615a43565b6020908102919091010152600101611fba565b505092915050565b5f80612051876113e4878988600161265b565b9050611ef08787878488886131b5565b5f610e3883610e33336113db565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd01545f907fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd00908511156120f1576040517fe4a4718200000000000000000000000000000000000000000000000000000000815260048101869052602401610bc1565b5f61210888612102338a8a5f61265b565b5f61266f565b905061214c8888838989898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061268592505050565b979650505050505050565b5f80612161612604565b90505f6121778761217133610de3565b87612c4e565b9050610e008187898588612685565b5f807fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0061111c565b5f8061104884670de0b6b3a7640000612102565b6121cf8585858585613616565b6121d98484613679565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080546040805160a0810182526001600160a01b0388811682528781166020830152918101869052606081018590529116906359f89dda9088907f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a4890608081016122837fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0254421190565b151590526040516122979190602001615b2e565b6040516020818303038152906040526040518463ffffffff1660e01b81526004016122c493929190615943565b5f604051808303815f87803b1580156122db575f80fd5b505af11580156122ed573d5f803e3d5ffd5b50505050505050505050565b835f03612332576040517f8672985d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0090505f6040518060a001604052808360020154815260200183600201548152602001878152602001861515815260200185858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152505050915250905084806123cc5750816002015486115b156123e05760028201869055602081018690525b7f7ef5cae78e9bd364afb19bb0f8a881a6d156e35a119e28c0d17524e5079581583387878787604051612417959493929190615ba0565b60405180910390a181546001600160a01b03166359f89dda337f50a07cb25d0d864370863300b20987dfdae089abad71b607faf639d09d053391846040516020016122979190615bee565b61246a612ac0565b6001600160a01b0381166124ac576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6124b581612f99565b50565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fe5be7d9000000000000000000000000000000000000000000000000000000000148061254a57507fffffffff0000000000000000000000000000000000000000000000000000000082167f439fab9100000000000000000000000000000000000000000000000000000000145b8061259657507fffffffff0000000000000000000000000000000000000000000000000000000082167fe1e6b89800000000000000000000000000000000000000000000000000000000145b80610ab457507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610ab4565b6125ee612ac0565b6124b581612e39565b610cde8383836001613739565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd01545f907fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0090612655906001615c32565b91505090565b5f670de0b6b3a76400005b95945050505050565b5f61267a8284613861565b610e0f84845f6138a5565b61268d61302e565b845f036126c6576040517fc7838b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825f036126ff576040517ffc8c806300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03841661273f576040517f6ba9ecd800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f0361277a576040517fe4a471820000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b7f3377bcbed49a0c0005e53931cd8fe7334b5371523e5de784c0d0d3d01089cfea3385878686866040516127b3969594939291906158af565b60405180910390a16127c885858585856138ba565b6127d28484613915565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546040517f6d5b3f780000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690636d5b3f7890612842903390889087908990889060040161596a565b5f604051808303815f87803b158015612859575f80fd5b505af115801561286b573d5f803e3d5ffd5b5050505061287c8585858585613962565b6128a560017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5050505050565b804710156128ef576040517fcf47918100000000000000000000000000000000000000000000000000000000815247600482015260248101829052604401610bc1565b612908828260405180602001604052805f815250613a0e565b15612911575050565b3d156129235761291f613a23565b5050565b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8061295f61307e565b60028101549091505f0361297557612655613a2e565b5f6129845f1960036001613a93565b90505f5b5f198214610e38575f8360020183815481106129a6576129a6615a43565b905f5260205f2090600502015f0154905060028103612a83575f612a738560020185815481106129d8576129d8615a43565b905f5260205f20906005020160040180546129f29061565c565b80601f0160208091040260200160405190810160405280929190818152602001828054612a1e9061565c565b8015612a695780601f10612a4057610100808354040283529160200191612a69565b820191905f5260205f20905b815481529060010190602001808311612a4c57829003601f168201915b5050505050613b8e565b9050612a7f8382613ba3565b9250505b5f838152600485016020526040902054612a9d9083615c32565b9150612aac8360036001613a93565b925050612988565b5f610e38838383613c27565b33612ac9611ec4565b6001600160a01b031614611aa3576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610bc1565b6001600160a01b038381165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160209081526040808320938616835292905220545f19811015612bb95781811015612bab576040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201526024810182905260448101839052606401610bc1565b612bb984848484035f613739565b50505050565b6001600160a01b038316612c01576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6001600160a01b038216612c43576040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b610cde838383613c3c565b5f612c598284613861565b610e0f84846001613c27565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610ab4565b425f03611aa3576040517f789a532d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612cce613c8f565b612ce081602001518260400151613c97565b80517f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f308970152310243260080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b0393841617825560608401517f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601805490921693169283179055604080517f481c6a75000000000000000000000000000000000000000000000000000000008152905191925f92909163481c6a759160048083019260209291908290030181865afa158015612dc0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612de49190615c45565b90506001600160a01b0381163014610cde576040517f7935475e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b0382166024820152604401610bc1565b6040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f59f89dda0000000000000000000000000000000000000000000000000000000060048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa158015612eb4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ed89190615c60565b612f0e576040517ffd12061600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03831690811782556040805133815260208101929092527fa8c713fe8fb360697fc0daab836d85208a605d485fbc265aea0f773fc6cdd71a9101610ebf565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f610e38838360016138a5565b613036613ca9565b60027f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5f828218828410028218610e38565b5f8061307683613d04565b549392505050565b5f8060ff196130ae60017f2f8f8ecf1b7a1a3ceda8d15a9a2247a2377b3434535a87f1728021c13fec2e71615a30565b6040516020016130c091815260200190565b60408051601f1981840301815291905280516020909101201692915050565b5f8082816130eb61307e565b9050855f6130fc8760036001613a93565b90505b5f19811461317e57925082811580159061313c5750600283600201828154811061312b5761312b615a43565b905f5260205f2090600502015f0154145b1561316a575f61315a8460020183815481106129d8576129d8615a43565b90506131668382613ba3565b9250505b6131778160036001613a93565b90506130ff565b509350909150505b9250929050565b5f807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930061111c565b6131bd61302e565b855f036131f6576040517fc7838b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825f0361322f576040517ffc8c806300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03851661326f576040517f6ba9ecd800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0384166132af576040517f9905827b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f036132eb576040517fe4a4718200000000000000000000000000000000000000000000000000000000815260048101839052602401610bc1565b7f2845b9458bcc357e1abfe8de7f6832dfe7220596a053496b33d0deb6577d8d2a338686898787876040516133269796959493929190615c7b565b60405180910390a16001600160a01b038416331461349557613349843385612b0b565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b03166001600160a01b031663e985e9c585336040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa1580156133e5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134099190615c60565b613495576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60448201527f6572206f7220617070726f7665640000000000000000000000000000000000006064820152608401610bc1565b61349f8484613d71565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546040517fc2530e390000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063c2530e399061350f903390889087908990889060040161596a565b5f604051808303815f87803b158015613526575f80fd5b505af1158015613538573d5f803e3d5ffd5b5050505061354a868686868686613dbe565b61357360017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b505050505050565b60605f6135888484613ec7565b90508080156135a957505f3d11806135a957505f846001600160a01b03163b115b156135be576135b6613eda565b915050610ab4565b8015613601576040517f9996b3150000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610bc1565b3d156129235761360f613a23565b5092915050565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031633146128a5576040517f8813aac300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be700805442118015906136c257506001600160a01b0383165f908152600182016020526040902054155b80156136e557506001600160a01b0382165f908152600282016020526040902054155b15610cde5780546040517f79d7155100000000000000000000000000000000000000000000000000000000815260048101919091526001600160a01b03808516602483015283166044820152606401610bc1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b03851661379c576040517fe602df050000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6001600160a01b0384166137de576040517f94280d620000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6001600160a01b038086165f908152600183016020908152604080832093881683529290522083905581156128a557836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258560405161385291815260200190565b60405180910390a35050505050565b8181101561291f576040517fa3e322340000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610bc1565b5f610e0f8484670de0b6b3a764000085613ef3565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd01547fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd00906139089084613f35565b6001909101555050505050565b6001600160a01b038216613957576040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b61291f5f8383613c3c565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8216040518060c001604052806139cb3390565b6001600160a01b031681526020018a6001600160a01b031681526020018881526020018b8152602001898152602001878152506040516020016122979190615d20565b5f805f83516020850186885af1949350505050565b6040513d5f823e3d81fd5b5f8060ff19613a5e60017fb750591399365444a618527b69a54ce09476c8bde1ecff60f5aa1fe2b52605ff615a30565b604051602001613a7091815260200190565b60408051808303601f190181529190528051602090910120166002015492915050565b5f600783168103613ad0576040517fbf3cad0b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f613ad961307e565b60028101549091505f03613af1575f19915050610e38565b5f5f198614613b2457816002018681548110613b0f57613b0f615a43565b905f5260205f20906005020160030154613b27565b81545b90506002846002811115613b3d57613b3d615d32565b03613b5f57613b5682613b508484613f44565b87613fbf565b92505050610e38565b6001846002811115613b7357613b73615d32565b03613b8357613b56828287614017565b611ef0828287613fbf565b5f81806020019051810190610ab49190615645565b5f7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115613c01576040517fbf463fe900000000000000000000000000000000000000000000000000000000815260048101849052602401610bc1565b5f613c1e613c18613c12865f614084565b856140de565b5f614140565b50949350505050565b5f610e0f84670de0b6b3a76400008585613ef3565b613c44614181565b613c4d836141e7565b613c56826141e7565b613c618383836142d4565b6001600160a01b038316613c7857610cde81614434565b6001600160a01b038216610cde57610cde81614477565b611aa36144b1565b613c9f6144b1565b61291f82826144ef565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0054600203611aa3576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8060ff19613d3460017fb750591399365444a618527b69a54ce09476c8bde1ecff60f5aa1fe2b52605ff615a30565b604051602001613d4691815260200190565b60408051601f1981840301815291815281516020928301205f96875292909216905290922092915050565b6001600160a01b038216613db3576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b61291f825f83613c3c565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e9828696040518060c001604052808a6001600160a01b031681526020018b6001600160a01b031681526020018881526020018c815260200189815260200187815250604051602001613e649190615d20565b6040516020818303038152906040526040518463ffffffff1660e01b8152600401613e9193929190615943565b5f604051808303815f87803b158015613ea8575f80fd5b505af1158015613eba573d5f803e3d5ffd5b5050505050505050505050565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b5f613f20613f0083614552565b8015613f1b57505f8480613f1657613f16615d5f565b868809115b151590565b613f2b86868661457e565b6126669190615c32565b5f828218828411028218610e38565b5f5b5f198214158015613f88575042836002018381548110613f6857613f68615a43565b5f91825260209091206001600590920201015467ffffffffffffffff1611155b15613fb957826002018281548110613fa257613fa2615a43565b905f5260205f209060050201600301549150613f46565b50919050565b5f5b5f19831461400d575f846002018481548110613fdf57613fdf615a43565b905f5260205f209060050201905082815f0154165f146140025783915050610e38565b600301549250613fc1565b505f199392505050565b5f5b5f19831461400d575f84600201848154811061403757614037615a43565b5f918252602090912060059091020160018101549091504267ffffffffffffffff9091161115614067575061400d565b80548316156140795783915050610e38565b600301549250614019565b5f805f614091858561462e565b91509150806140d6576040517f22c9f7bb0000000000000000000000000000000000000000000000000000000081526004810186905260248101859052604401610bc1565b509392505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d848061412386868686614734565b915091505f6141328383614853565b9a9950505050505050505050565b5f807bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8416601b0b60e085901d6141748282876148b1565b9350935050509250929050565b5f61418a61307e565b60028101549091505f0361419b5750565b5f6141b0826005015460026001176001613a93565b90505f195b5f1982146141d35750806141cc8160036001613a93565b91506141b5565b5f198114610cde5760058301819055505050565b6001600160a01b0381166141f85750565b5f61420161307e565b6001600160a01b0383165f9081526003820160205260408120549192506142278461306b565b90505f8061423583856130df565b9150915083810361424857505050505050565b6001600160a01b0386165f9081526003860160205260409020819055818314614275576142758683614a9c565b6040805185815260208101839052908101849052606081018390526001600160a01b038716907f36a2eb39b73568d38e98721588b15b309c9380e1b1ab575c2c3d71d5148ccb4a9060800160405180910390a261357384848385614aae565b6142de8383613679565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a6040518060800160405280896001600160a01b03168152602001886001600160a01b0316815260200187815260200161438e7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0254421190565b151590526040805182516001600160a01b03908116602080840191909152840151168183015290820151606080830191909152909101511515608082015260a0016040516020818303038152906040526040518463ffffffff1660e01b81526004016143fc93929190615943565b5f604051808303815f87803b158015614413575f80fd5b505af1158015614425573d5f803e3d5ffd5b50505050612bb9848484614b0b565b5f61443d61307e565b60028101549091501561291f5760058101545f9081526004820160205260408120805484929061446e908490615c32565b90915550505050565b5f61448061307e565b60028101549091501561291f5760058101545f9081526004820160205260408120805484929061446e908490615a30565b6144b9614b16565b611aa3576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6144f76144b1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace007f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace036145438482615dd0565b5060048101612bb98382615dd0565b5f600282600381111561456757614567615d32565b6145719190615e8c565b60ff166001149050919050565b5f805f61458b8686614b34565b91509150815f036145af578381816145a5576145a5615d5f565b0492505050610e38565b8184116145c6576145c66003851502601118614b50565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010185841190960395909502919093039390930492909217029150509392505050565b5f601b83900b8314838382614692577d90e40fbeea1d3a4abc8955e946fe31cdcf66f634e100000000000000000086051561467257620186a0860595506005850194505b8586601b0b1461468d57600a86059550846001019450614672565b6146a8565b855f036146a857505f9250600191506131869050565b848560030b14614704575f8512156146c857505f92508291506131869050565b6040517fd556b1110000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610bc1565b50507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841660e084901b1791509250929050565b5f808515841517801561474c575f92505f9150614849565b6147568487615ead565b91505f61476288614b61565b90505f61476e87614b61565b90505f61477b8383614b34565b5090505f6f0785ee10d5da46d900f436a0000000008211156147b0576f0785ee10d5da46d900f436a000000000820491506025015b670de0b6b3a76400008211156147d157670de0b6b3a7640000820491506012015b633b9aca008211156147ea57633b9aca00820491506009015b6127108211156147ff57612710820491506004015b811561481357600a820491506001016147ff565b61481d8187615ead565b955061483f8b8a614839878761483487600a615fac565b614bc2565b89614c9d565b9097509550505050505b5094509492505050565b5f805f614860858561462e565b9150915080158015614870575081155b156140d6576040517f8eba4d070000000000000000000000000000000000000000000000000000000081526004810186905260248101859052604401610bc1565b5f805f8512156148f7576040517f4a7d166b0000000000000000000000000000000000000000000000000000000081526004810186905260248101859052604401610bc1565b845f0361490957505f90506001614a94565b8460ff8416850185811215614954576040517fd556b1110000000000000000000000000000000000000000000000000000000081526004810188905260248101879052604401610bc1565b5f805f8312156149be577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb3831215614995575f809550955050505050614a94565b825f03600a0a91508184816149ac576149ac615d5f565b0495505084029091149150614a949050565b5f831315614a8957604d831315614a14576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff88166044820152606401610bc1565b82600a0a9150815f1981614a2a57614a2a615d5f565b04841115614a77576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff88166044820152606401610bc1565b5091909102925060019150614a949050565b509193506001925050505b935093915050565b5f614aa683613d04565b919091555050565b5f614ab761307e565b905083816004015f8781526020019081526020015f205f828254614adb9190615a30565b90915550505f83815260048201602052604081208054849290614aff908490615c32565b90915550505050505050565b610cde838383614da9565b5f614b1f612c65565b5468010000000000000000900460ff16919050565b5f805f1983850993909202808410938190039390930393915050565b634e487b715f52806020526024601cfd5b5f80821215614bbe577f80000000000000000000000000000000000000000000000000000000000000008203614bb857507f8000000000000000000000000000000000000000000000000000000000000000919050565b505f0390565b5090565b5f805f614bcf8686614b34565b91509150815f03614be9578381816145a5576145a5615d5f565b838210614c33576040517f6c59da12000000000000000000000000000000000000000000000000000000008152600481018790526024810186905260448101859052606401610bc1565b5f84868809600186198101871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103025f82900382900490920185841190960395909502919093039390930492909217029150509392505050565b5f805f8587181215614d67577f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841115614d5457614cfc7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001615c32565b8403614d2c57507f8000000000000000000000000000000000000000000000000000000000000000905081614da0565b614d37600a85615fb7565b614d4090615fca565b614d4b846001615ead565b91509150614da0565b614d5d84615fca565b8391509150614da0565b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841115614d9a57614d40600a85615fb7565b50829050815b94509492505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b038416614df65781816002015f828254614deb9190615c32565b90915550614e7f9050565b6001600160a01b0384165f9081526020829052604090205482811015614e61576040517fe450d38c0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024810182905260448101849052606401610bc1565b6001600160a01b0385165f9081526020839052604090209083900390555b6001600160a01b038316614e9d576002810180548390039055614ebb565b6001600160a01b0383165f9081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051614f0091815260200190565b60405180910390a350505050565b5f60208284031215614f1e575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610e38575f80fd5b6001600160a01b03811681146124b5575f80fd5b5f60208284031215614f71575f80fd5b8135610e3881614f4d565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610e386020830184614f7c565b5f8060408385031215614fcd575f80fd5b8235614fd881614f4d565b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff8111828210171561503657615036614fe6565b60405290565b6040516080810167ffffffffffffffff8111828210171561503657615036614fe6565b604051601f8201601f1916810167ffffffffffffffff8111828210171561508857615088614fe6565b604052919050565b5f67ffffffffffffffff8211156150a9576150a9614fe6565b50601f01601f191660200190565b5f82601f8301126150c6575f80fd5b81356150d96150d482615090565b61505f565b8181528460208386010111156150ed575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f806080858703121561511c575f80fd5b84359350602085013561512e81614f4d565b925060408501359150606085013567ffffffffffffffff811115615150575f80fd5b61515c878288016150b7565b91505092959194509250565b5f8060408385031215615179575f80fd5b50508035926020909101359150565b5f60208284031215615198575f80fd5b5035919050565b5f805f606084860312156151b1575f80fd5b83356151bc81614f4d565b925060208401356151cc81614f4d565b929592945050506040919091013590565b5f602082840312156151ed575f80fd5b813567ffffffffffffffff811115615203575f80fd5b610e0f848285016150b7565b5f805f8060808587031215615222575f80fd5b843561522d81614f4d565b93506020850135925060408501359150606085013567ffffffffffffffff811115615150575f80fd5b5f805f60608486031215615268575f80fd5b833561527381614f4d565b925060208401359150604084013567ffffffffffffffff811115615295575f80fd5b6152a1868287016150b7565b9150509250925092565b5f805f805f60a086880312156152bf575f80fd5b8535945060208601356152d181614f4d565b935060408601356152e181614f4d565b925060608601359150608086013567ffffffffffffffff811115615303575f80fd5b61530f888289016150b7565b9150509295509295909350565b5f806020838503121561532d575f80fd5b823567ffffffffffffffff80821115615344575f80fd5b818501915085601f830112615357575f80fd5b813581811115615365575f80fd5b8660208260051b8501011115615379575f80fd5b60209290920196919550909350505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b828110156153fe577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08886030184526153ec858351614f7c565b945092850192908501906001016153b2565b5092979650505050505050565b5f8083601f84011261541b575f80fd5b50813567ffffffffffffffff811115615432575f80fd5b602083019150836020828501011115613186575f80fd5b5f805f805f6080868803121561545d575f80fd5b85359450602086013561546f81614f4d565b935060408601359250606086013567ffffffffffffffff811115615491575f80fd5b61549d8882890161540b565b969995985093965092949392505050565b5f80604083850312156154bf575f80fd5b82356154ca81614f4d565b915060208301356154da81614f4d565b809150509250929050565b5f82601f8301126154f4575f80fd5b8135602067ffffffffffffffff82111561551057615510614fe6565b8160051b61551f82820161505f565b9283528481018201928281019087851115615538575f80fd5b83870192505b8483101561214c5782358252918301919083019061553e565b5f805f805f60a0868803121561556b575f80fd5b853561557681614f4d565b9450602086013561558681614f4d565b9350604086013561559681614f4d565b9250606086013567ffffffffffffffff808211156155b2575f80fd5b6155be89838a016154e5565b935060808801359150808211156155d3575f80fd5b5061530f888289016154e5565b80151581146124b5575f80fd5b5f805f8060608587031215615600575f80fd5b843593506020850135615612816155e0565b9250604085013567ffffffffffffffff81111561562d575f80fd5b6156398782880161540b565b95989497509550505050565b5f60208284031215615655575f80fd5b5051919050565b600181811c9082168061567057607f821691505b602082108103613fb9577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f602082840312156156b7575f80fd5b815160ff81168114610e38575f80fd5b5f82601f8301126156d6575f80fd5b81516156e46150d482615090565b8181528460208386010111156156f8575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f60208284031215615724575f80fd5b815167ffffffffffffffff8082111561573b575f80fd5b908301906040828603121561574e575f80fd5b615756615013565b825161576181614f4d565b8152602083015182811115615774575f80fd5b929092019160808387031215615788575f80fd5b61579061503c565b835161579b81614f4d565b81526020840151838111156157ae575f80fd5b6157ba888287016156c7565b6020830152506040840151838111156157d1575f80fd5b6157dd888287016156c7565b604083015250606084015193506157f384614f4d565b60608101939093526020810192909252509392505050565b5f6001600160a01b038085168352604060208401528084511660408401526020840151604060608501528181511660808501526020810151608060a0860152615858610100860182614f7c565b905060408201517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808683030160c08701526158938282614f7c565b9150508260608301511660e08601528093505050509392505050565b5f6001600160a01b03808916835280881660208401525085604083015284606083015283608083015260c060a08301526158ec60c0830184614f7c565b98975050505050505050565b602081526001600160a01b0382511660208201526020820151604082015260408201516060820152606082015160808201525f608083015160a080840152610e0f60c0840182614f7c565b6001600160a01b0384168152826020820152606060408201525f6126666060830184614f7c565b5f6001600160a01b03808816835280871660208401525084604083015283606083015260a0608083015261214c60a0830184614f7c565b602081526001600160a01b03825116602082015260208201516040820152604082015160608201525f6060830151608080840152610e0f60a0840182614f7c565b6001600160a01b0383168152604060208201525f610e0f6040830184614f7c565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b81810381811115610ab457610ab4615a03565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112615aa3575f80fd5b83018035915067ffffffffffffffff821115615abd575f80fd5b602001915036819003821315613186575f80fd5b828482375f8382015f815283518060208601835e5f910190815295945050505050565b5f815180845260208085019450602084015f5b83811015615b2357815187529582019590820190600101615b07565b509495945050505050565b602081525f6001600160a01b0380845116602084015280602085015116604084015250604083015160a06060840152615b6a60c0840182615af4565b90506060840151601f19848303016080850152615b878282615af4565b9150506080840151151560a08401528091505092915050565b6001600160a01b0386168152846020820152831515604082015260806060820152816080820152818360a08301375f81830160a090810191909152601f909201601f19160101949350505050565b602081528151602082015260208201516040820152604082015160608201526060820151151560808201525f608083015160a080840152610e0f60c0840182614f7c565b80820180821115610ab457610ab4615a03565b5f60208284031215615c55575f80fd5b8151610e3881614f4d565b5f60208284031215615c70575f80fd5b8151610e38816155e0565b5f6001600160a01b03808a16835280891660208401528088166040840152508560608301528460808301528360a083015260e060c0830152615cc060e0830184614f7c565b9998505050505050505050565b5f6001600160a01b038083511684528060208401511660208501525060408201516040840152606082015160608401526080820151608084015260a082015160c060a0850152610e0f60c0850182614f7c565b602081525f610e386020830184615ccd565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b601f821115610cde57805f5260205f20601f840160051c81016020851015615db15750805b601f840160051c820191505b818110156128a5575f8155600101615dbd565b815167ffffffffffffffff811115615dea57615dea614fe6565b615dfe81615df8845461565c565b84615d8c565b602080601f831160018114615e31575f8415615e1a5750858301515b5f19600386901b1c1916600185901b178555613573565b5f85815260208120601f198616915b82811015615e5f57888601518255948401946001909101908401615e40565b5085821015615e7c57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f60ff831680615e9e57615e9e615d5f565b8060ff84160691505092915050565b8082018281125f83128015821682158216171561203657612036615a03565b600181815b80851115615f0657815f1904821115615eec57615eec615a03565b80851615615ef957918102915b93841c9390800290615ed1565b509250929050565b5f82615f1c57506001610ab4565b81615f2857505f610ab4565b8160018114615f3e5760028114615f4857615f64565b6001915050610ab4565b60ff841115615f5957615f59615a03565b50506001821b610ab4565b5060208310610133831016604e8410600b8410161715615f87575081810a610ab4565b615f918383615ecc565b805f1904821115615fa457615fa4615a03565b029392505050565b5f610e388383615f0e565b5f82615fc557615fc5615d5f565b500490565b5f7f80000000000000000000000000000000000000000000000000000000000000008203614bb857614bb8615a0356"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405260043610610337575f3560e01c8063715018a6116101af578063bbec4d06116100eb578063dd62ed3e11610094578063e70689f51161006e578063e70689f5146109ab578063f2fde38b146109ca578063f5647943146109e9578063f5d214f514610a1e5761033e565b8063dd62ed3e146108ed578063e1e6b89814610950578063e5be7d901461098c5761033e565b8063c77b66c2116100c5578063c77b66c2146108b3578063d09edf31146108c6578063db2088f4146108da5761033e565b8063bbec4d0614610875578063c54cafee14610894578063c63d75b6146105635761033e565b80638da5cb5b11610158578063a9059cbb11610132578063a9059cbb146107b8578063ac9650d8146107d7578063ae57de0c14610803578063ae98b39f146108225761033e565b80638da5cb5b14610771578063921a4c421461078557806395d89b41146107a45761033e565b80637a7af70d116101895780637a7af70d1461072057806381c3fcb91461073357806385b68756146107525761033e565b8063715018a6146106ce578063770afee1146106e2578063786cd916146107015761033e565b8063276b11401161027e5780634abe413711610227578063633ac71711610201578063633ac7171461061e5780636ba235211461063d5780636c876b941461069057806370a08231146106af5761033e565b80634abe4137146105c157806356db02e8146105e057806359f89dda146105ff5761033e565b8063402d267d11610258578063402d267d14610563578063439fab9114610583578063488bd7b0146105a25761033e565b8063276b1140146104fe578063313ce5671461051157806338d52e0f146105375761033e565b806318160ddd116102e05780631f6759d3116102ba5780631f6759d31461048d57806323b872dd146104c05780632755c6c7146104df5761033e565b806318160ddd1461043b578063181e7b3b1461044f5780631e4344a11461046e5761033e565b806306fdde031161031157806306fdde03146103e8578063095ea7b3146104095780631423feba146104285761033e565b806301e1d1141461037357806301ffc9a71461039a578063058a628f146103c95761033e565b3661033e57005b7351f78b77edffdb62b8aeb753066c318a46d05d74365f80375f80365f845af43d5f803e80801561036d573d5ff35b3d5ffd5b005b34801561037e575f80fd5b50610387610a51565b6040519081526020015b60405180910390f35b3480156103a5575f80fd5b506103b96103b4366004614f0e565b610a5f565b6040519015158152602001610391565b3480156103d4575f80fd5b506103716103e3366004614f61565b610aba565b3480156103f3575f80fd5b506103fc610ce3565b6040516103919190614faa565b348015610414575f80fd5b506103b9610423366004614fbc565b610db6565b610387610436366004615109565b610dcd565b348015610446575f80fd5b50610387610e17565b34801561045a575f80fd5b50610387610469366004615168565b610e20565b348015610479575f80fd5b50610371610488366004615188565b610e3f565b348015610498575f80fd5b507f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70054610387565b3480156104cb575f80fd5b506103b96104da36600461519f565b610ecb565b3480156104ea575f80fd5b506103716104f9366004614fbc565b610eee565b61038761050c366004615168565b611028565b34801561051c575f80fd5b50610525611053565b60405160ff9091168152602001610391565b348015610542575f80fd5b5061054b6110f8565b6040516001600160a01b039091168152602001610391565b34801561056e575f80fd5b5061038761057d366004614f61565b505f1990565b34801561058e575f80fd5b5061038761059d3660046151dd565b61112c565b3480156105ad575f80fd5b506103876105bc366004615168565b6113d1565b3480156105cc575f80fd5b506103876105db366004614fbc565b6113e9565b3480156105eb575f80fd5b506103876105fa36600461520f565b6114a3565b34801561060a575f80fd5b50610371610619366004615256565b6117e4565b348015610629575f80fd5b50610371610638366004614f61565b61181c565b348015610648575f80fd5b50610387610657366004614f61565b6001600160a01b03165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be701602052604090205490565b34801561069b575f80fd5b506103716106aa366004614f61565b611949565b3480156106ba575f80fd5b506103876106c9366004614f61565b611a49565b3480156106d9575f80fd5b50610371611a92565b3480156106ed575f80fd5b506103876106fc366004615256565b611aa5565b34801561070c575f80fd5b5061037161071b366004614fbc565b611c5f565b61038761072e366004615168565b611d90565b34801561073e575f80fd5b5061037161074d3660046151dd565b611da5565b34801561075d575f80fd5b5061038761076c366004614fbc565b611de1565b34801561077c575f80fd5b5061054b611ec4565b348015610790575f80fd5b5061038761079f3660046152ab565b611ecd565b3480156107af575f80fd5b506103fc611efa565b3480156107c3575f80fd5b506103b96107d2366004614fbc565b611f4b565b3480156107e2575f80fd5b506107f66107f136600461531c565b611f58565b604051610391919061538b565b34801561080e575f80fd5b5061038761081d3660046152ab565b61203e565b34801561082d575f80fd5b5061038761083c366004614f61565b6001600160a01b03165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be702602052604090205490565b348015610880575f80fd5b5061038761088f366004615168565b612061565b34801561089f575f80fd5b506103876108ae366004615449565b61206f565b6103876108c1366004615109565b612157565b3480156108d1575f80fd5b5061054b612186565b6103876108e8366004615168565b6121ae565b3480156108f8575f80fd5b506103876109073660046154ae565b6001600160a01b039182165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b34801561095b575f80fd5b507f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031661054b565b348015610997575f80fd5b506103716109a6366004615557565b6121c2565b3480156109b6575f80fd5b506103716109c53660046155ed565b6122f9565b3480156109d5575f80fd5b506103716109e4366004614f61565b612462565b3480156109f4575f80fd5b507fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd025442116103b9565b348015610a29575f80fd5b507fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0154610387565b5f610a5a610e17565b905090565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f59f89dda000000000000000000000000000000000000000000000000000000001480610ab45750610ab4826124b8565b92915050565b6040517f248a9ca30000000000000000000000000000000000000000000000000000000081527ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f8960048201525f906001600160a01b0383169063248a9ca390602401602060405180830381865afa158015610b37573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b5b9190615645565b905080610bca576040517f76728ed90000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201527ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f8960248201526044015b60405180910390fd5b6040517f248a9ca30000000000000000000000000000000000000000000000000000000081527f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e760048201525f906001600160a01b0384169063248a9ca390602401602060405180830381865afa158015610c47573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c6b9190615645565b905080610cd5576040517f76728ed90000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201527f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e76024820152604401610bc1565b610cde836125e6565b505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0380546060917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0091610d349061565c565b80601f0160208091040260200160405190810160405280929190818152602001828054610d609061565c565b8015610dab5780601f10610d8257610100808354040283529160200191610dab565b820191905f5260205f20905b815481529060010190602001808311610d8e57829003601f168201915b505050505091505090565b5f33610dc38185856125f7565b5060019392505050565b5f80610dd7612604565b90505f610df187610deb335b89865f61265b565b8761266f565b9050610e008787838588612685565b610e0b335b476128ac565b9150505b949350505050565b5f610a5a612955565b5f610e3883670de0b6b3a7640000612ab4565b612ab4565b9392505050565b610e47612ac0565b7f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be7008054821115610e75578181555b7fff9fd4facd8bd30d905cc7ffbd03e8829a414df4c6554d155d132c3377868a42610e9e611ec4565b8254604080516001600160a01b039093168352602083018690528201526060015b60405180910390a15050565b5f33610ed8858285612b0b565b610ee3858585612bbf565b506001949350505050565b610ef6612ac0565b805f03610f3a576040517f5a6084530000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610bc1565b6001600160a01b0382165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70260205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70090821115610fb7576001600160a01b0383165f90815260028201602052604090208290555b7fa1e5b368dc99c8558f28b1e7e8cb7ab542c989a4b697628ba7bfffe0aeaccffd610fe0611ec4565b6001600160a01b038581165f818152600286016020908152604091829020548251959094168552840191909152820185905260608201526080015b60405180910390a1505050565b5f8061104884611042335b3361103c612604565b5f61265b565b85612c4e565b9050610e3833610e05565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f308970152310243260080545f91906001600160a01b0316803b806110905760126110f0565b816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110f091906156a7565b935050505090565b5f807f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f30897015231024326005b546001600160a01b031692915050565b5f80611136612c65565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156111625750825b90505f8267ffffffffffffffff16600114801561117e5750303b155b90508115801561118c575080155b156111c3576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156112245784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b61122c612c8d565b5f878060200190518101906112419190615714565b90506112508160200151612cc6565b6020810151516001600160a01b031615611296576040517f8951799200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80516001600160a01b03166112d7576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6112e030612e39565b80516112eb90612f99565b7ffa89761502e992c8c755fba778ced00f4562485023f656906eb76f5dd65a9fe53360408051808201825284516001600160a01b0316815260208086015190820152905161133a92919061580b565b60405180910390a17fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc396505083156113c75784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b5f610e38836113e4335b3386600161265b565b613021565b5f61141b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031690565b6040517efdd58e0000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015260248201859052919091169062fdd58e90604401602060405180830381865afa15801561147f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e389190615645565b5f6114ac61302e565b825f036114e5576040517f312497b000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6115a98461151b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031690565b6040517efdd58e0000000000000000000000000000000000000000000000000000000081526001600160a01b038a81166004830152602482018a9052919091169062fdd58e90604401602060405180830381865afa15801561157f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115a39190615645565b9061305c565b905080156116c6577f88e2280ece62e9296d3578b77647db2c11f9fa7e42578e2db5d4262123ffae3e3387878785886040516115ea969594939291906158af565b60405180910390a17f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b03166001600160a01b031663043fa98733883360405160e085901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b03938416600482015291831660248301529091166044820152606481018890526084810184905260c060a48201525f60c482015260e4015f604051808303815f87803b1580156116af575f80fd5b505af11580156116c1573d5f803e3d5ffd5b505050505b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f3dd35eca0ca8a128757fa464a5dfa4ad6cc4853cad96dce4e90fdbea4f0a52e36040518060a001604052808c6001600160a01b031681526020018b81526020018a81526020018781526020018981525060405160200161175d91906158f8565b6040516020818303038152906040526040518463ffffffff1660e01b815260040161178a93929190615943565b5f604051808303815f87803b1580156117a1575f80fd5b505af11580156117b3573d5f803e3d5ffd5b5093945050505050610e0f60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b8282826040517f3ae4063b000000000000000000000000000000000000000000000000000000008152600401610bc193929190615943565b611824612ac0565b6001600160a01b0381165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70260205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be7009042116118d9576001600160a01b0382165f818152600283016020526040908190205490517f81a7897700000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610bc1565b6001600160a01b0382165f9081526002820160205260408120557fa1e5b368dc99c8558f28b1e7e8cb7ab542c989a4b697628ba7bfffe0aeaccffd61191c611ec4565b604080516001600160a01b03928316815291851660208301525f9082018190526060820152608001610ebf565b611951612ac0565b6001600160a01b0381165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70160205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be700904211611a06576001600160a01b0382165f818152600183016020526040908190205490517ff1b01b5400000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610bc1565b6001600160a01b0382165f9081526001820160205260408120557fd08871fffa9d03c01fcba597af5dfbe64cb26f207debdae1af2532695447499161191c611ec4565b5f80611a548361306b565b90505f611a5f61307e565b6001600160a01b0385165f90815260038201602052604081205491925090611a889084906130df565b5095945050505050565b611a9a612ac0565b611aa35f612f99565b565b5f611aae61302e565b825f03611ae7576040517f312497b000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f611af5846115a387611a49565b90508015611b47577f3fc1c49e72362e91416388fe7a107b92db924642476e83e701eeeb6256d7249e3386868487604051611b3495949392919061596a565b60405180910390a1611b47853383612bbf565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f54f0af3716c79b30b8c228679d31d77a1a5f526c16af3262730e0a8de4363fed60405180608001604052808b6001600160a01b031681526020018a815260200187815260200189815250604051602001611bd891906159a1565b6040516020818303038152906040526040518463ffffffff1660e01b8152600401611c0593929190615943565b5f604051808303815f87803b158015611c1c575f80fd5b505af1158015611c2e573d5f803e3d5ffd5b5093945050505050610e3860017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b611c67612ac0565b805f03611cab576040517ffd86061b0000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610bc1565b6001600160a01b0382165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70160205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70090821115611d28576001600160a01b0383165f90815260018201602052604090208290555b7fd08871fffa9d03c01fcba597af5dfbe64cb26f207debdae1af25326954474991611d51611ec4565b6001600160a01b038581165f8181526001860160209081526040918290205482519590941685528401919091528201859052606082015260800161101b565b5f8061104884611d9f33611033565b8561266f565b7fdaffad82f53a38a62340f14cdd6fd3b437c5dcda6b32029dac1e661dbce28b2d3382604051611dd69291906159e2565b60405180910390a150565b5f80611df0848585600161265b565b9050805f03611e02575f915050610ab4565b610e0f611e367f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031690565b6040517efdd58e0000000000000000000000000000000000000000000000000000000081526001600160a01b03878116600483015260248201879052919091169062fdd58e90604401602060405180830381865afa158015611e9a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ebe9190615645565b82612ab4565b5f610a5a61318d565b5f80611ee087610e33878988600161265b565b9050611ef08187878a88886131b5565b9695505050505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0480546060917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0091610d349061565c565b5f33610dc3818585612bbf565b604080515f8152602081019091526060908267ffffffffffffffff811115611f8257611f82614fe6565b604051908082528060200260200182016040528015611fb557816020015b6060815260200190600190039081611fa05790505b5091505f5b838110156120365761201130868684818110611fd857611fd8615a43565b9050602002810190611fea9190615a70565b85604051602001611ffd93929190615ad1565b60405160208183030381529060405261357b565b83828151811061202357612023615a43565b6020908102919091010152600101611fba565b505092915050565b5f80612051876113e4878988600161265b565b9050611ef08787878488886131b5565b5f610e3883610e33336113db565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd01545f907fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd00908511156120f1576040517fe4a4718200000000000000000000000000000000000000000000000000000000815260048101869052602401610bc1565b5f61210888612102338a8a5f61265b565b5f61266f565b905061214c8888838989898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061268592505050565b979650505050505050565b5f80612161612604565b90505f6121778761217133610de3565b87612c4e565b9050610e008187898588612685565b5f807fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0061111c565b5f8061104884670de0b6b3a7640000612102565b6121cf8585858585613616565b6121d98484613679565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080546040805160a0810182526001600160a01b0388811682528781166020830152918101869052606081018590529116906359f89dda9088907f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a4890608081016122837fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0254421190565b151590526040516122979190602001615b2e565b6040516020818303038152906040526040518463ffffffff1660e01b81526004016122c493929190615943565b5f604051808303815f87803b1580156122db575f80fd5b505af11580156122ed573d5f803e3d5ffd5b50505050505050505050565b835f03612332576040517f8672985d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0090505f6040518060a001604052808360020154815260200183600201548152602001878152602001861515815260200185858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152505050915250905084806123cc5750816002015486115b156123e05760028201869055602081018690525b7f7ef5cae78e9bd364afb19bb0f8a881a6d156e35a119e28c0d17524e5079581583387878787604051612417959493929190615ba0565b60405180910390a181546001600160a01b03166359f89dda337f50a07cb25d0d864370863300b20987dfdae089abad71b607faf639d09d053391846040516020016122979190615bee565b61246a612ac0565b6001600160a01b0381166124ac576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6124b581612f99565b50565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fe5be7d9000000000000000000000000000000000000000000000000000000000148061254a57507fffffffff0000000000000000000000000000000000000000000000000000000082167f439fab9100000000000000000000000000000000000000000000000000000000145b8061259657507fffffffff0000000000000000000000000000000000000000000000000000000082167fe1e6b89800000000000000000000000000000000000000000000000000000000145b80610ab457507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610ab4565b6125ee612ac0565b6124b581612e39565b610cde8383836001613739565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd01545f907fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0090612655906001615c32565b91505090565b5f670de0b6b3a76400005b95945050505050565b5f61267a8284613861565b610e0f84845f6138a5565b61268d61302e565b845f036126c6576040517fc7838b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825f036126ff576040517ffc8c806300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03841661273f576040517f6ba9ecd800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f0361277a576040517fe4a471820000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b7f3377bcbed49a0c0005e53931cd8fe7334b5371523e5de784c0d0d3d01089cfea3385878686866040516127b3969594939291906158af565b60405180910390a16127c885858585856138ba565b6127d28484613915565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546040517f6d5b3f780000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690636d5b3f7890612842903390889087908990889060040161596a565b5f604051808303815f87803b158015612859575f80fd5b505af115801561286b573d5f803e3d5ffd5b5050505061287c8585858585613962565b6128a560017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5050505050565b804710156128ef576040517fcf47918100000000000000000000000000000000000000000000000000000000815247600482015260248101829052604401610bc1565b612908828260405180602001604052805f815250613a0e565b15612911575050565b3d156129235761291f613a23565b5050565b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8061295f61307e565b60028101549091505f0361297557612655613a2e565b5f6129845f1960036001613a93565b90505f5b5f198214610e38575f8360020183815481106129a6576129a6615a43565b905f5260205f2090600502015f0154905060028103612a83575f612a738560020185815481106129d8576129d8615a43565b905f5260205f20906005020160040180546129f29061565c565b80601f0160208091040260200160405190810160405280929190818152602001828054612a1e9061565c565b8015612a695780601f10612a4057610100808354040283529160200191612a69565b820191905f5260205f20905b815481529060010190602001808311612a4c57829003601f168201915b5050505050613b8e565b9050612a7f8382613ba3565b9250505b5f838152600485016020526040902054612a9d9083615c32565b9150612aac8360036001613a93565b925050612988565b5f610e38838383613c27565b33612ac9611ec4565b6001600160a01b031614611aa3576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610bc1565b6001600160a01b038381165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160209081526040808320938616835292905220545f19811015612bb95781811015612bab576040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201526024810182905260448101839052606401610bc1565b612bb984848484035f613739565b50505050565b6001600160a01b038316612c01576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6001600160a01b038216612c43576040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b610cde838383613c3c565b5f612c598284613861565b610e0f84846001613c27565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610ab4565b425f03611aa3576040517f789a532d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612cce613c8f565b612ce081602001518260400151613c97565b80517f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f308970152310243260080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b0393841617825560608401517f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601805490921693169283179055604080517f481c6a75000000000000000000000000000000000000000000000000000000008152905191925f92909163481c6a759160048083019260209291908290030181865afa158015612dc0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612de49190615c45565b90506001600160a01b0381163014610cde576040517f7935475e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b0382166024820152604401610bc1565b6040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f59f89dda0000000000000000000000000000000000000000000000000000000060048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa158015612eb4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ed89190615c60565b612f0e576040517ffd12061600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03831690811782556040805133815260208101929092527fa8c713fe8fb360697fc0daab836d85208a605d485fbc265aea0f773fc6cdd71a9101610ebf565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f610e38838360016138a5565b613036613ca9565b60027f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5f828218828410028218610e38565b5f8061307683613d04565b549392505050565b5f8060ff196130ae60017f2f8f8ecf1b7a1a3ceda8d15a9a2247a2377b3434535a87f1728021c13fec2e71615a30565b6040516020016130c091815260200190565b60408051601f1981840301815291905280516020909101201692915050565b5f8082816130eb61307e565b9050855f6130fc8760036001613a93565b90505b5f19811461317e57925082811580159061313c5750600283600201828154811061312b5761312b615a43565b905f5260205f2090600502015f0154145b1561316a575f61315a8460020183815481106129d8576129d8615a43565b90506131668382613ba3565b9250505b6131778160036001613a93565b90506130ff565b509350909150505b9250929050565b5f807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930061111c565b6131bd61302e565b855f036131f6576040517fc7838b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825f0361322f576040517ffc8c806300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03851661326f576040517f6ba9ecd800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0384166132af576040517f9905827b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f036132eb576040517fe4a4718200000000000000000000000000000000000000000000000000000000815260048101839052602401610bc1565b7f2845b9458bcc357e1abfe8de7f6832dfe7220596a053496b33d0deb6577d8d2a338686898787876040516133269796959493929190615c7b565b60405180910390a16001600160a01b038416331461349557613349843385612b0b565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b03166001600160a01b031663e985e9c585336040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa1580156133e5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134099190615c60565b613495576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60448201527f6572206f7220617070726f7665640000000000000000000000000000000000006064820152608401610bc1565b61349f8484613d71565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546040517fc2530e390000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063c2530e399061350f903390889087908990889060040161596a565b5f604051808303815f87803b158015613526575f80fd5b505af1158015613538573d5f803e3d5ffd5b5050505061354a868686868686613dbe565b61357360017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b505050505050565b60605f6135888484613ec7565b90508080156135a957505f3d11806135a957505f846001600160a01b03163b115b156135be576135b6613eda565b915050610ab4565b8015613601576040517f9996b3150000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610bc1565b3d156129235761360f613a23565b5092915050565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031633146128a5576040517f8813aac300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be700805442118015906136c257506001600160a01b0383165f908152600182016020526040902054155b80156136e557506001600160a01b0382165f908152600282016020526040902054155b15610cde5780546040517f79d7155100000000000000000000000000000000000000000000000000000000815260048101919091526001600160a01b03808516602483015283166044820152606401610bc1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b03851661379c576040517fe602df050000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6001600160a01b0384166137de576040517f94280d620000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6001600160a01b038086165f908152600183016020908152604080832093881683529290522083905581156128a557836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258560405161385291815260200190565b60405180910390a35050505050565b8181101561291f576040517fa3e322340000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610bc1565b5f610e0f8484670de0b6b3a764000085613ef3565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd01547fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd00906139089084613f35565b6001909101555050505050565b6001600160a01b038216613957576040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b61291f5f8383613c3c565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8216040518060c001604052806139cb3390565b6001600160a01b031681526020018a6001600160a01b031681526020018881526020018b8152602001898152602001878152506040516020016122979190615d20565b5f805f83516020850186885af1949350505050565b6040513d5f823e3d81fd5b5f8060ff19613a5e60017fb750591399365444a618527b69a54ce09476c8bde1ecff60f5aa1fe2b52605ff615a30565b604051602001613a7091815260200190565b60408051808303601f190181529190528051602090910120166002015492915050565b5f600783168103613ad0576040517fbf3cad0b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f613ad961307e565b60028101549091505f03613af1575f19915050610e38565b5f5f198614613b2457816002018681548110613b0f57613b0f615a43565b905f5260205f20906005020160030154613b27565b81545b90506002846002811115613b3d57613b3d615d32565b03613b5f57613b5682613b508484613f44565b87613fbf565b92505050610e38565b6001846002811115613b7357613b73615d32565b03613b8357613b56828287614017565b611ef0828287613fbf565b5f81806020019051810190610ab49190615645565b5f7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115613c01576040517fbf463fe900000000000000000000000000000000000000000000000000000000815260048101849052602401610bc1565b5f613c1e613c18613c12865f614084565b856140de565b5f614140565b50949350505050565b5f610e0f84670de0b6b3a76400008585613ef3565b613c44614181565b613c4d836141e7565b613c56826141e7565b613c618383836142d4565b6001600160a01b038316613c7857610cde81614434565b6001600160a01b038216610cde57610cde81614477565b611aa36144b1565b613c9f6144b1565b61291f82826144ef565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0054600203611aa3576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8060ff19613d3460017fb750591399365444a618527b69a54ce09476c8bde1ecff60f5aa1fe2b52605ff615a30565b604051602001613d4691815260200190565b60408051601f1981840301815291815281516020928301205f96875292909216905290922092915050565b6001600160a01b038216613db3576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b61291f825f83613c3c565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e9828696040518060c001604052808a6001600160a01b031681526020018b6001600160a01b031681526020018881526020018c815260200189815260200187815250604051602001613e649190615d20565b6040516020818303038152906040526040518463ffffffff1660e01b8152600401613e9193929190615943565b5f604051808303815f87803b158015613ea8575f80fd5b505af1158015613eba573d5f803e3d5ffd5b5050505050505050505050565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b5f613f20613f0083614552565b8015613f1b57505f8480613f1657613f16615d5f565b868809115b151590565b613f2b86868661457e565b6126669190615c32565b5f828218828411028218610e38565b5f5b5f198214158015613f88575042836002018381548110613f6857613f68615a43565b5f91825260209091206001600590920201015467ffffffffffffffff1611155b15613fb957826002018281548110613fa257613fa2615a43565b905f5260205f209060050201600301549150613f46565b50919050565b5f5b5f19831461400d575f846002018481548110613fdf57613fdf615a43565b905f5260205f209060050201905082815f0154165f146140025783915050610e38565b600301549250613fc1565b505f199392505050565b5f5b5f19831461400d575f84600201848154811061403757614037615a43565b5f918252602090912060059091020160018101549091504267ffffffffffffffff9091161115614067575061400d565b80548316156140795783915050610e38565b600301549250614019565b5f805f614091858561462e565b91509150806140d6576040517f22c9f7bb0000000000000000000000000000000000000000000000000000000081526004810186905260248101859052604401610bc1565b509392505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d848061412386868686614734565b915091505f6141328383614853565b9a9950505050505050505050565b5f807bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8416601b0b60e085901d6141748282876148b1565b9350935050509250929050565b5f61418a61307e565b60028101549091505f0361419b5750565b5f6141b0826005015460026001176001613a93565b90505f195b5f1982146141d35750806141cc8160036001613a93565b91506141b5565b5f198114610cde5760058301819055505050565b6001600160a01b0381166141f85750565b5f61420161307e565b6001600160a01b0383165f9081526003820160205260408120549192506142278461306b565b90505f8061423583856130df565b9150915083810361424857505050505050565b6001600160a01b0386165f9081526003860160205260409020819055818314614275576142758683614a9c565b6040805185815260208101839052908101849052606081018390526001600160a01b038716907f36a2eb39b73568d38e98721588b15b309c9380e1b1ab575c2c3d71d5148ccb4a9060800160405180910390a261357384848385614aae565b6142de8383613679565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a6040518060800160405280896001600160a01b03168152602001886001600160a01b0316815260200187815260200161438e7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0254421190565b151590526040805182516001600160a01b03908116602080840191909152840151168183015290820151606080830191909152909101511515608082015260a0016040516020818303038152906040526040518463ffffffff1660e01b81526004016143fc93929190615943565b5f604051808303815f87803b158015614413575f80fd5b505af1158015614425573d5f803e3d5ffd5b50505050612bb9848484614b0b565b5f61443d61307e565b60028101549091501561291f5760058101545f9081526004820160205260408120805484929061446e908490615c32565b90915550505050565b5f61448061307e565b60028101549091501561291f5760058101545f9081526004820160205260408120805484929061446e908490615a30565b6144b9614b16565b611aa3576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6144f76144b1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace007f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace036145438482615dd0565b5060048101612bb98382615dd0565b5f600282600381111561456757614567615d32565b6145719190615e8c565b60ff166001149050919050565b5f805f61458b8686614b34565b91509150815f036145af578381816145a5576145a5615d5f565b0492505050610e38565b8184116145c6576145c66003851502601118614b50565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010185841190960395909502919093039390930492909217029150509392505050565b5f601b83900b8314838382614692577d90e40fbeea1d3a4abc8955e946fe31cdcf66f634e100000000000000000086051561467257620186a0860595506005850194505b8586601b0b1461468d57600a86059550846001019450614672565b6146a8565b855f036146a857505f9250600191506131869050565b848560030b14614704575f8512156146c857505f92508291506131869050565b6040517fd556b1110000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610bc1565b50507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841660e084901b1791509250929050565b5f808515841517801561474c575f92505f9150614849565b6147568487615ead565b91505f61476288614b61565b90505f61476e87614b61565b90505f61477b8383614b34565b5090505f6f0785ee10d5da46d900f436a0000000008211156147b0576f0785ee10d5da46d900f436a000000000820491506025015b670de0b6b3a76400008211156147d157670de0b6b3a7640000820491506012015b633b9aca008211156147ea57633b9aca00820491506009015b6127108211156147ff57612710820491506004015b811561481357600a820491506001016147ff565b61481d8187615ead565b955061483f8b8a614839878761483487600a615fac565b614bc2565b89614c9d565b9097509550505050505b5094509492505050565b5f805f614860858561462e565b9150915080158015614870575081155b156140d6576040517f8eba4d070000000000000000000000000000000000000000000000000000000081526004810186905260248101859052604401610bc1565b5f805f8512156148f7576040517f4a7d166b0000000000000000000000000000000000000000000000000000000081526004810186905260248101859052604401610bc1565b845f0361490957505f90506001614a94565b8460ff8416850185811215614954576040517fd556b1110000000000000000000000000000000000000000000000000000000081526004810188905260248101879052604401610bc1565b5f805f8312156149be577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb3831215614995575f809550955050505050614a94565b825f03600a0a91508184816149ac576149ac615d5f565b0495505084029091149150614a949050565b5f831315614a8957604d831315614a14576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff88166044820152606401610bc1565b82600a0a9150815f1981614a2a57614a2a615d5f565b04841115614a77576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff88166044820152606401610bc1565b5091909102925060019150614a949050565b509193506001925050505b935093915050565b5f614aa683613d04565b919091555050565b5f614ab761307e565b905083816004015f8781526020019081526020015f205f828254614adb9190615a30565b90915550505f83815260048201602052604081208054849290614aff908490615c32565b90915550505050505050565b610cde838383614da9565b5f614b1f612c65565b5468010000000000000000900460ff16919050565b5f805f1983850993909202808410938190039390930393915050565b634e487b715f52806020526024601cfd5b5f80821215614bbe577f80000000000000000000000000000000000000000000000000000000000000008203614bb857507f8000000000000000000000000000000000000000000000000000000000000000919050565b505f0390565b5090565b5f805f614bcf8686614b34565b91509150815f03614be9578381816145a5576145a5615d5f565b838210614c33576040517f6c59da12000000000000000000000000000000000000000000000000000000008152600481018790526024810186905260448101859052606401610bc1565b5f84868809600186198101871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103025f82900382900490920185841190960395909502919093039390930492909217029150509392505050565b5f805f8587181215614d67577f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841115614d5457614cfc7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001615c32565b8403614d2c57507f8000000000000000000000000000000000000000000000000000000000000000905081614da0565b614d37600a85615fb7565b614d4090615fca565b614d4b846001615ead565b91509150614da0565b614d5d84615fca565b8391509150614da0565b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841115614d9a57614d40600a85615fb7565b50829050815b94509492505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b038416614df65781816002015f828254614deb9190615c32565b90915550614e7f9050565b6001600160a01b0384165f9081526020829052604090205482811015614e61576040517fe450d38c0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024810182905260448101849052606401610bc1565b6001600160a01b0385165f9081526020839052604090209083900390555b6001600160a01b038316614e9d576002810180548390039055614ebb565b6001600160a01b0383165f9081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051614f0091815260200190565b60405180910390a350505050565b5f60208284031215614f1e575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610e38575f80fd5b6001600160a01b03811681146124b5575f80fd5b5f60208284031215614f71575f80fd5b8135610e3881614f4d565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610e386020830184614f7c565b5f8060408385031215614fcd575f80fd5b8235614fd881614f4d565b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff8111828210171561503657615036614fe6565b60405290565b6040516080810167ffffffffffffffff8111828210171561503657615036614fe6565b604051601f8201601f1916810167ffffffffffffffff8111828210171561508857615088614fe6565b604052919050565b5f67ffffffffffffffff8211156150a9576150a9614fe6565b50601f01601f191660200190565b5f82601f8301126150c6575f80fd5b81356150d96150d482615090565b61505f565b8181528460208386010111156150ed575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f806080858703121561511c575f80fd5b84359350602085013561512e81614f4d565b925060408501359150606085013567ffffffffffffffff811115615150575f80fd5b61515c878288016150b7565b91505092959194509250565b5f8060408385031215615179575f80fd5b50508035926020909101359150565b5f60208284031215615198575f80fd5b5035919050565b5f805f606084860312156151b1575f80fd5b83356151bc81614f4d565b925060208401356151cc81614f4d565b929592945050506040919091013590565b5f602082840312156151ed575f80fd5b813567ffffffffffffffff811115615203575f80fd5b610e0f848285016150b7565b5f805f8060808587031215615222575f80fd5b843561522d81614f4d565b93506020850135925060408501359150606085013567ffffffffffffffff811115615150575f80fd5b5f805f60608486031215615268575f80fd5b833561527381614f4d565b925060208401359150604084013567ffffffffffffffff811115615295575f80fd5b6152a1868287016150b7565b9150509250925092565b5f805f805f60a086880312156152bf575f80fd5b8535945060208601356152d181614f4d565b935060408601356152e181614f4d565b925060608601359150608086013567ffffffffffffffff811115615303575f80fd5b61530f888289016150b7565b9150509295509295909350565b5f806020838503121561532d575f80fd5b823567ffffffffffffffff80821115615344575f80fd5b818501915085601f830112615357575f80fd5b813581811115615365575f80fd5b8660208260051b8501011115615379575f80fd5b60209290920196919550909350505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b828110156153fe577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08886030184526153ec858351614f7c565b945092850192908501906001016153b2565b5092979650505050505050565b5f8083601f84011261541b575f80fd5b50813567ffffffffffffffff811115615432575f80fd5b602083019150836020828501011115613186575f80fd5b5f805f805f6080868803121561545d575f80fd5b85359450602086013561546f81614f4d565b935060408601359250606086013567ffffffffffffffff811115615491575f80fd5b61549d8882890161540b565b969995985093965092949392505050565b5f80604083850312156154bf575f80fd5b82356154ca81614f4d565b915060208301356154da81614f4d565b809150509250929050565b5f82601f8301126154f4575f80fd5b8135602067ffffffffffffffff82111561551057615510614fe6565b8160051b61551f82820161505f565b9283528481018201928281019087851115615538575f80fd5b83870192505b8483101561214c5782358252918301919083019061553e565b5f805f805f60a0868803121561556b575f80fd5b853561557681614f4d565b9450602086013561558681614f4d565b9350604086013561559681614f4d565b9250606086013567ffffffffffffffff808211156155b2575f80fd5b6155be89838a016154e5565b935060808801359150808211156155d3575f80fd5b5061530f888289016154e5565b80151581146124b5575f80fd5b5f805f8060608587031215615600575f80fd5b843593506020850135615612816155e0565b9250604085013567ffffffffffffffff81111561562d575f80fd5b6156398782880161540b565b95989497509550505050565b5f60208284031215615655575f80fd5b5051919050565b600181811c9082168061567057607f821691505b602082108103613fb9577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f602082840312156156b7575f80fd5b815160ff81168114610e38575f80fd5b5f82601f8301126156d6575f80fd5b81516156e46150d482615090565b8181528460208386010111156156f8575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f60208284031215615724575f80fd5b815167ffffffffffffffff8082111561573b575f80fd5b908301906040828603121561574e575f80fd5b615756615013565b825161576181614f4d565b8152602083015182811115615774575f80fd5b929092019160808387031215615788575f80fd5b61579061503c565b835161579b81614f4d565b81526020840151838111156157ae575f80fd5b6157ba888287016156c7565b6020830152506040840151838111156157d1575f80fd5b6157dd888287016156c7565b604083015250606084015193506157f384614f4d565b60608101939093526020810192909252509392505050565b5f6001600160a01b038085168352604060208401528084511660408401526020840151604060608501528181511660808501526020810151608060a0860152615858610100860182614f7c565b905060408201517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808683030160c08701526158938282614f7c565b9150508260608301511660e08601528093505050509392505050565b5f6001600160a01b03808916835280881660208401525085604083015284606083015283608083015260c060a08301526158ec60c0830184614f7c565b98975050505050505050565b602081526001600160a01b0382511660208201526020820151604082015260408201516060820152606082015160808201525f608083015160a080840152610e0f60c0840182614f7c565b6001600160a01b0384168152826020820152606060408201525f6126666060830184614f7c565b5f6001600160a01b03808816835280871660208401525084604083015283606083015260a0608083015261214c60a0830184614f7c565b602081526001600160a01b03825116602082015260208201516040820152604082015160608201525f6060830151608080840152610e0f60a0840182614f7c565b6001600160a01b0383168152604060208201525f610e0f6040830184614f7c565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b81810381811115610ab457610ab4615a03565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112615aa3575f80fd5b83018035915067ffffffffffffffff821115615abd575f80fd5b602001915036819003821315613186575f80fd5b828482375f8382015f815283518060208601835e5f910190815295945050505050565b5f815180845260208085019450602084015f5b83811015615b2357815187529582019590820190600101615b07565b509495945050505050565b602081525f6001600160a01b0380845116602084015280602085015116604084015250604083015160a06060840152615b6a60c0840182615af4565b90506060840151601f19848303016080850152615b878282615af4565b9150506080840151151560a08401528091505092915050565b6001600160a01b0386168152846020820152831515604082015260806060820152816080820152818360a08301375f81830160a090810191909152601f909201601f19160101949350505050565b602081528151602082015260208201516040820152604082015160608201526060820151151560808201525f608083015160a080840152610e0f60c0840182614f7c565b80820180821115610ab457610ab4615a03565b5f60208284031215615c55575f80fd5b8151610e3881614f4d565b5f60208284031215615c70575f80fd5b8151610e38816155e0565b5f6001600160a01b03808a16835280891660208401528088166040840152508560608301528460808301528360a083015260e060c0830152615cc060e0830184614f7c565b9998505050505050505050565b5f6001600160a01b038083511684528060208401511660208501525060408201516040840152606082015160608401526080820151608084015260a082015160c060a0850152610e0f60c0850182614f7c565b602081525f610e386020830184615ccd565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b601f821115610cde57805f5260205f20601f840160051c81016020851015615db15750805b601f840160051c820191505b818110156128a5575f8155600101615dbd565b815167ffffffffffffffff811115615dea57615dea614fe6565b615dfe81615df8845461565c565b84615d8c565b602080601f831160018114615e31575f8415615e1a5750858301515b5f19600386901b1c1916600185901b178555613573565b5f85815260208120601f198616915b82811015615e5f57888601518255948401946001909101908401615e40565b5085821015615e7c57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f60ff831680615e9e57615e9e615d5f565b8060ff84160691505092915050565b8082018281125f83128015821682158216171561203657612036615a03565b600181815b80851115615f0657815f1904821115615eec57615eec615a03565b80851615615ef957918102915b93841c9390800290615ed1565b509250929050565b5f82615f1c57506001610ab4565b81615f2857505f610ab4565b8160018114615f3e5760028114615f4857615f64565b6001915050610ab4565b60ff841115615f5957615f59615a03565b50506001821b610ab4565b5060208310610133831016604e8410600b8410161715615f87575081810a610ab4565b615f918383615ecc565b805f1904821115615fa457615fa4615a03565b029392505050565b5f610e388383615f0e565b5f82615fc557615fc5615d5f565b500490565b5f7f80000000000000000000000000000000000000000000000000000000000000008203614bb857614bb8615a0356"; diff --git a/src/generated/0_1_2/StoxUnifiedDeployer.pointers.sol b/src/generated/0_1_2/StoxUnifiedDeployer.pointers.sol deleted file mode 100644 index e0587d20..00000000 --- a/src/generated/0_1_2/StoxUnifiedDeployer.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x91035080d8e610cc0657d7f44efa8fbf57ce5800e6a35694d107c05987d24e3f); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x81D0ecD58346bf2d484E7774f55EABc1AA3F4bcc); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"6080604052348015600e575f80fd5b506106308061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c806301ffc9a714610038578063733e1f8d1461005f575b5f80fd5b61004b6100463660046102a3565b610074565b604051901515815260200160405180910390f35b61007261006d36600461042d565b61010c565b005b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f733e1f8d00000000000000000000000000000000000000000000000000000000148061010657507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b6040517f4904fab30000000000000000000000000000000000000000000000000000000081525f9073d64246e6b25f745f005e6233e050c9b879e660dc90634904fab39061015e908590600401610570565b6020604051808303815f875af115801561017a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061019e9190610615565b6040517fd786858b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201529091505f9073be5f05c4576e6d3e7bccb4e64f08fc4f46adf0ca9063d786858b906024016020604051808303815f875af1158015610220573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102449190610615565b6040805133815273ffffffffffffffffffffffffffffffffffffffff858116602083015283168183015290519192507fa0d99d93cf7a5f89661fa0829369a7e4896e755871efe65440bab2429387d55b919081900360600190a1505050565b5f602082840312156102b3575f80fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146102e2575f80fd5b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff81118282101715610339576103396102e9565b60405290565b6040516080810167ffffffffffffffff81118282101715610339576103396102e9565b73ffffffffffffffffffffffffffffffffffffffff81168114610383575f80fd5b50565b5f82601f830112610395575f80fd5b813567ffffffffffffffff808211156103b0576103b06102e9565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156103f6576103f66102e9565b8160405283815286602085880101111561040e575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f6020828403121561043d575f80fd5b813567ffffffffffffffff80821115610454575f80fd5b9083019060408286031215610467575f80fd5b61046f610316565b823561047a81610362565b815260208301358281111561048d575f80fd5b9290920191608083870312156104a1575f80fd5b6104a961033f565b83356104b481610362565b81526020840135838111156104c7575f80fd5b6104d388828701610386565b6020830152506040840135838111156104ea575f80fd5b6104f688828701610386565b6040830152506060840135935061050c84610362565b60608101939093526020810192909252509392505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f73ffffffffffffffffffffffffffffffffffffffff808451166020840152602084015160408085015281815116606085015260208101516080808601526105bf60e0860182610524565b905060408201517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08683030160a08701526105fa8282610524565b9150508260608301511660c086015280935050505092915050565b5f60208284031215610625575f80fd5b81516102e28161036256"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b5060043610610034575f3560e01c806301ffc9a714610038578063733e1f8d1461005f575b5f80fd5b61004b6100463660046102a3565b610074565b604051901515815260200160405180910390f35b61007261006d36600461042d565b61010c565b005b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f733e1f8d00000000000000000000000000000000000000000000000000000000148061010657507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b6040517f4904fab30000000000000000000000000000000000000000000000000000000081525f9073d64246e6b25f745f005e6233e050c9b879e660dc90634904fab39061015e908590600401610570565b6020604051808303815f875af115801561017a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061019e9190610615565b6040517fd786858b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201529091505f9073be5f05c4576e6d3e7bccb4e64f08fc4f46adf0ca9063d786858b906024016020604051808303815f875af1158015610220573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102449190610615565b6040805133815273ffffffffffffffffffffffffffffffffffffffff858116602083015283168183015290519192507fa0d99d93cf7a5f89661fa0829369a7e4896e755871efe65440bab2429387d55b919081900360600190a1505050565b5f602082840312156102b3575f80fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146102e2575f80fd5b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff81118282101715610339576103396102e9565b60405290565b6040516080810167ffffffffffffffff81118282101715610339576103396102e9565b73ffffffffffffffffffffffffffffffffffffffff81168114610383575f80fd5b50565b5f82601f830112610395575f80fd5b813567ffffffffffffffff808211156103b0576103b06102e9565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156103f6576103f66102e9565b8160405283815286602085880101111561040e575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f6020828403121561043d575f80fd5b813567ffffffffffffffff80821115610454575f80fd5b9083019060408286031215610467575f80fd5b61046f610316565b823561047a81610362565b815260208301358281111561048d575f80fd5b9290920191608083870312156104a1575f80fd5b6104a961033f565b83356104b481610362565b81526020840135838111156104c7575f80fd5b6104d388828701610386565b6020830152506040840135838111156104ea575f80fd5b6104f688828701610386565b6040830152506060840135935061050c84610362565b60608101939093526020810192909252509392505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f73ffffffffffffffffffffffffffffffffffffffff808451166020840152602084015160408085015281815116606085015260208101516080808601526105bf60e0860182610524565b905060408201517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08683030160a08701526105fa8282610524565b9150508260608301511660c086015280935050505092915050565b5f60208284031215610625575f80fd5b81516102e28161036256"; diff --git a/src/generated/0_1_2/StoxWrappedTokenVault.pointers.sol b/src/generated/0_1_2/StoxWrappedTokenVault.pointers.sol deleted file mode 100644 index 18c6e307..00000000 --- a/src/generated/0_1_2/StoxWrappedTokenVault.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x6de4c556c1811293da4ad2e509ee476f3eb635f019845087e1d2777a1b272034); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x0D99e0174DbF885ceD6AE8dEb939b0F890450099); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"6080604052348015600e575f80fd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b611de4806100d65f395ff3fe608060405234801561000f575f80fd5b50600436106101b0575f3560e01c806370a08231116100f3578063c4d66de811610093578063ce96cb771161006e578063ce96cb77146103c9578063d905777e146103dc578063dd62ed3e146103ef578063ef8b30f7146103b6575f80fd5b8063c4d66de8146103a3578063c63d75b6146102bb578063c6e6f592146103b6575f80fd5b8063a9059cbb116100ce578063a9059cbb14610357578063b3d7f6b91461036a578063b460af941461037d578063ba08765214610390575f80fd5b806370a08231146102f557806394bf804d1461033c57806395d89b411461034f575f80fd5b806323b872dd1161015e578063402d267d11610139578063402d267d146102bb578063439fab91146102cf5780634cdad506146101e45780636e553f65146102e2575f80fd5b806323b872dd14610254578063313ce5671461026757806338d52e0f14610281575f80fd5b8063095ea7b31161018e578063095ea7b3146101f75780630a28a4771461021a57806318160ddd1461022d575f80fd5b806301e1d114146101b457806306fdde03146101cf57806307a2d13a146101e4575b5f80fd5b6101bc610446565b6040519081526020015b60405180910390f35b6101d76104fe565b6040516101c69190611758565b6101bc6101f236600461178d565b6105b6565b61020a6102053660046117b8565b6105c7565b60405190151581526020016101c6565b6101bc61022836600461178d565b6105de565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02546101bc565b61020a6102623660046117e2565b6105ea565b61026f61060f565b60405160ff90911681526020016101c6565b7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546040516001600160a01b0390911681526020016101c6565b6101bc6102c9366004611820565b505f1990565b6101bc6102dd36600461183b565b610662565b6101bc6102f03660046118a7565b61089d565b6101bc610303366004611820565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00602052604090205490565b6101bc61034a3660046118a7565b6108ce565b6101d76108e9565b61020a6103653660046117b8565b61098d565b6101bc61037836600461178d565b61099a565b6101bc61038b3660046118d5565b6109a6565b6101bc61039e3660046118d5565b610a28565b6101bc6103b1366004611820565b610aa1565b6101bc6103c436600461178d565b610ad4565b6101bc6103d7366004611820565b610adf565b6101bc6103ea366004611820565b610ae8565b6101bc6103fd366004611914565b6001600160a01b039182165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b5f6104787f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa1580156104d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104f99190611940565b905090565b60606105317f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b6001600160a01b03166306fdde036040518163ffffffff1660e01b81526004015f60405180830381865afa15801561056b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526105929190810190611984565b6040516020016105a29190611a46565b604051602081830303815290604052905090565b5f6105c1825f610b24565b92915050565b5f336105d4818585610b7b565b5060019392505050565b5f6105c1826001610b8d565b5f336105f7858285610bdb565b610602858585610c8f565b60019150505b9392505050565b5f807f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e0090505f815461065c919074010000000000000000000000000000000000000000900460ff16611aa4565b91505090565b5f8061066c610d1e565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156106985750825b90505f8267ffffffffffffffff1660011480156106b45750303b155b9050811580156106c2575080155b156106f9576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166001178555831561075a5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b5f610767888a018a611820565b90506001600160a01b0381166107a9576040517f7cde9b7200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107b281610d46565b6107d860405180602001604052805f81525060405180602001604052805f815250610d5a565b6040516001600160a01b0382169033907fdf5fabff9e49f8c35d69a1f2d0c5e80c933c31cf836cf70de57e3a6e7dc86ebb905f90a37fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc396505083156108925784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505092915050565b5f5f196108ae565b60405180910390fd5b5f6108b885610ad4565b90506108c633858784610d70565b949350505050565b5f5f195f6108db8561099a565b90506108c633858388610d70565b606061091c7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b6001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015610956573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261097d9190810190611984565b6040516020016105a29190611abd565b5f336105d4818585610c8f565b5f6105c1826001610b24565b5f806109b183610adf565b905080851115610a06576040517ffe9cceec0000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101869052604481018290526064016108a5565b5f610a10866105de565b9050610a1f3386868985610de0565b95945050505050565b5f80610a3383610ae8565b905080851115610a88576040517fb94abeec0000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101869052604481018290526064016108a5565b5f610a92866105b6565b9050610a1f338686848a610de0565b5f6040517faf1fbb2100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6105c1825f610b8d565b5f6105c16101f2835b6001600160a01b0381165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0060205260408120546105c1565b5f610608610b30610446565b610b3b906001611aee565b610b465f600a611be1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254610b729190611aee565b85919085610e7f565b610b888383836001610ec1565b505050565b5f610608610b9c82600a611be1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254610bc89190611aee565b610bd0610446565b610b72906001611aee565b6001600160a01b038381165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160209081526040808320938616835292905220545f19811015610c895781811015610c7b576040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101829052604481018390526064016108a5565b610c8984848484035f610ec1565b50505050565b6001600160a01b038316610cd1576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b6001600160a01b038216610d13576040517fec442f050000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b610b88838383610fea565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006105c1565b610d4e611141565b610d5781611181565b50565b610d62611141565b610d6c8282611245565b5050565b610d7a84836112a8565b610d8483826112e4565b826001600160a01b0316846001600160a01b03167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d78484604051610dd2929190918252602082015260400190565b60405180910390a350505050565b826001600160a01b0316856001600160a01b031614610e0457610e04838683610bdb565b610e0e8382611331565b610e18848361137e565b826001600160a01b0316846001600160a01b0316866001600160a01b03167ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db8585604051610e70929190918252602082015260400190565b60405180910390a45050505050565b5f610eac610e8c836113b9565b8015610ea757505f8480610ea257610ea2611bef565b868809115b151590565b610eb78686866113e5565b610a1f9190611aee565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b038516610f24576040517fe602df050000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b6001600160a01b038416610f66576040517f94280d620000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b6001600160a01b038086165f90815260018301602090815260408083209388168352929052208390558115610fe357836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92585604051610fda91815260200190565b60405180910390a35b5050505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b0384166110375781816002015f82825461102c9190611aee565b909155506110c09050565b6001600160a01b0384165f90815260208290526040902054828110156110a2576040517fe450d38c0000000000000000000000000000000000000000000000000000000081526001600160a01b038616600482015260248101829052604481018490526064016108a5565b6001600160a01b0385165f9081526020839052604090209083900390555b6001600160a01b0383166110de5760028101805483900390556110fc565b6001600160a01b0383165f9081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610dd291815260200190565b611149611495565b61117f576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b611189611141565b7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e005f806111b5846114b3565b91509150816111c55760126111c7565b805b83547fffffffffffffffffffffff000000000000000000000000000000000000000000167401000000000000000000000000000000000000000060ff92909216919091027fffffffffffffffffffffffff000000000000000000000000000000000000000016176001600160a01b0394909416939093179091555050565b61124d611141565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace007f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace036112998482611cb1565b5060048101610c898382611cb1565b610d6c6112dc7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b83308461156c565b6001600160a01b038216611326576040517fec442f050000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b610d6c5f8383610fea565b6001600160a01b038216611373576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b610d6c825f83610fea565b610d6c6113b27f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b83836115bb565b5f60028260038111156113ce576113ce611d71565b6113d89190611d9e565b60ff166001149050919050565b5f805f6113f28686611609565b91509150815f036114165783818161140c5761140c611bef565b0492505050610608565b81841161142d5761142d6003851502601118611625565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010185841190960395909502919093039390930492909217029150509392505050565b5f61149e610d1e565b5468010000000000000000900460ff16919050565b5f805f6114bf60405190565b6040805160048152602481019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f313ce567000000000000000000000000000000000000000000000000000000001790529091505f908190611528908790611636565b509150915061153683604052565b818015611544575060203d10155b8015611551575060ff8111155b61155c575f80611560565b6001815b94509450505050915091565b61157a848484846001611657565b610c89576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b03851660048201526024016108a5565b6115c883838360016116dd565b610b88576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201526024016108a5565b5f805f1983850993909202808410938190039390930393915050565b634e487b715f52806020526024601cfd5b5f805f60405f855160208701885afa92505f51915060205190509250925092565b6040517f23b872dd000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038781166004528616602452604485905291602083606481808c5af1925060015f511483166116cc5783831516156116c0573d5f823e3d81fd5b5f883b113d1516831692505b604052505f60605295945050505050565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f5114831661174c578383151615611740573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f6020828403121561179d575f80fd5b5035919050565b6001600160a01b0381168114610d57575f80fd5b5f80604083850312156117c9575f80fd5b82356117d4816117a4565b946020939093013593505050565b5f805f606084860312156117f4575f80fd5b83356117ff816117a4565b9250602084013561180f816117a4565b929592945050506040919091013590565b5f60208284031215611830575f80fd5b8135610608816117a4565b5f806020838503121561184c575f80fd5b823567ffffffffffffffff80821115611863575f80fd5b818501915085601f830112611876575f80fd5b813581811115611884575f80fd5b866020828501011115611895575f80fd5b60209290920196919550909350505050565b5f80604083850312156118b8575f80fd5b8235915060208301356118ca816117a4565b809150509250929050565b5f805f606084860312156118e7575f80fd5b8335925060208401356118f9816117a4565b91506040840135611909816117a4565b809150509250925092565b5f8060408385031215611925575f80fd5b8235611930816117a4565b915060208301356118ca816117a4565b5f60208284031215611950575f80fd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f60208284031215611994575f80fd5b815167ffffffffffffffff808211156119ab575f80fd5b818401915084601f8301126119be575f80fd5b8151818111156119d0576119d0611957565b604051601f8201601f19908116603f011681019083821181831017156119f8576119f8611957565b81604052828152876020848701011115611a10575f80fd5b8260208601602083015e5f928101602001929092525095945050505050565b5f81518060208401855e5f93019283525090919050565b7f577261707065642000000000000000000000000000000000000000000000000081525f6106086008830184611a2f565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60ff81811683821601908111156105c1576105c1611a77565b7f770000000000000000000000000000000000000000000000000000000000000081525f6106086001830184611a2f565b808201808211156105c1576105c1611a77565b600181815b80851115611b3b57815f1904821115611b2157611b21611a77565b80851615611b2e57918102915b93841c9390800290611b06565b509250929050565b5f82611b51575060016105c1565b81611b5d57505f6105c1565b8160018114611b735760028114611b7d57611b99565b60019150506105c1565b60ff841115611b8e57611b8e611a77565b50506001821b6105c1565b5060208310610133831016604e8410600b8410161715611bbc575081810a6105c1565b611bc68383611b01565b805f1904821115611bd957611bd9611a77565b029392505050565b5f61060860ff841683611b43565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b600181811c90821680611c3057607f821691505b602082108103611c67577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b601f821115610b8857805f5260205f20601f840160051c81016020851015611c925750805b601f840160051c820191505b81811015610fe3575f8155600101611c9e565b815167ffffffffffffffff811115611ccb57611ccb611957565b611cdf81611cd98454611c1c565b84611c6d565b602080601f831160018114611d12575f8415611cfb5750858301515b5f19600386901b1c1916600185901b178555611d69565b5f85815260208120601f198616915b82811015611d4057888601518255948401946001909101908401611d21565b5085821015611d5d57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f60ff831680611dd5577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b8060ff8416069150509291505056"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b50600436106101b0575f3560e01c806370a08231116100f3578063c4d66de811610093578063ce96cb771161006e578063ce96cb77146103c9578063d905777e146103dc578063dd62ed3e146103ef578063ef8b30f7146103b6575f80fd5b8063c4d66de8146103a3578063c63d75b6146102bb578063c6e6f592146103b6575f80fd5b8063a9059cbb116100ce578063a9059cbb14610357578063b3d7f6b91461036a578063b460af941461037d578063ba08765214610390575f80fd5b806370a08231146102f557806394bf804d1461033c57806395d89b411461034f575f80fd5b806323b872dd1161015e578063402d267d11610139578063402d267d146102bb578063439fab91146102cf5780634cdad506146101e45780636e553f65146102e2575f80fd5b806323b872dd14610254578063313ce5671461026757806338d52e0f14610281575f80fd5b8063095ea7b31161018e578063095ea7b3146101f75780630a28a4771461021a57806318160ddd1461022d575f80fd5b806301e1d114146101b457806306fdde03146101cf57806307a2d13a146101e4575b5f80fd5b6101bc610446565b6040519081526020015b60405180910390f35b6101d76104fe565b6040516101c69190611758565b6101bc6101f236600461178d565b6105b6565b61020a6102053660046117b8565b6105c7565b60405190151581526020016101c6565b6101bc61022836600461178d565b6105de565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02546101bc565b61020a6102623660046117e2565b6105ea565b61026f61060f565b60405160ff90911681526020016101c6565b7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546040516001600160a01b0390911681526020016101c6565b6101bc6102c9366004611820565b505f1990565b6101bc6102dd36600461183b565b610662565b6101bc6102f03660046118a7565b61089d565b6101bc610303366004611820565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00602052604090205490565b6101bc61034a3660046118a7565b6108ce565b6101d76108e9565b61020a6103653660046117b8565b61098d565b6101bc61037836600461178d565b61099a565b6101bc61038b3660046118d5565b6109a6565b6101bc61039e3660046118d5565b610a28565b6101bc6103b1366004611820565b610aa1565b6101bc6103c436600461178d565b610ad4565b6101bc6103d7366004611820565b610adf565b6101bc6103ea366004611820565b610ae8565b6101bc6103fd366004611914565b6001600160a01b039182165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b5f6104787f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa1580156104d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104f99190611940565b905090565b60606105317f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b6001600160a01b03166306fdde036040518163ffffffff1660e01b81526004015f60405180830381865afa15801561056b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526105929190810190611984565b6040516020016105a29190611a46565b604051602081830303815290604052905090565b5f6105c1825f610b24565b92915050565b5f336105d4818585610b7b565b5060019392505050565b5f6105c1826001610b8d565b5f336105f7858285610bdb565b610602858585610c8f565b60019150505b9392505050565b5f807f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e0090505f815461065c919074010000000000000000000000000000000000000000900460ff16611aa4565b91505090565b5f8061066c610d1e565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156106985750825b90505f8267ffffffffffffffff1660011480156106b45750303b155b9050811580156106c2575080155b156106f9576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166001178555831561075a5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b5f610767888a018a611820565b90506001600160a01b0381166107a9576040517f7cde9b7200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107b281610d46565b6107d860405180602001604052805f81525060405180602001604052805f815250610d5a565b6040516001600160a01b0382169033907fdf5fabff9e49f8c35d69a1f2d0c5e80c933c31cf836cf70de57e3a6e7dc86ebb905f90a37fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc396505083156108925784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505092915050565b5f5f196108ae565b60405180910390fd5b5f6108b885610ad4565b90506108c633858784610d70565b949350505050565b5f5f195f6108db8561099a565b90506108c633858388610d70565b606061091c7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b6001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015610956573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261097d9190810190611984565b6040516020016105a29190611abd565b5f336105d4818585610c8f565b5f6105c1826001610b24565b5f806109b183610adf565b905080851115610a06576040517ffe9cceec0000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101869052604481018290526064016108a5565b5f610a10866105de565b9050610a1f3386868985610de0565b95945050505050565b5f80610a3383610ae8565b905080851115610a88576040517fb94abeec0000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101869052604481018290526064016108a5565b5f610a92866105b6565b9050610a1f338686848a610de0565b5f6040517faf1fbb2100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6105c1825f610b8d565b5f6105c16101f2835b6001600160a01b0381165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0060205260408120546105c1565b5f610608610b30610446565b610b3b906001611aee565b610b465f600a611be1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254610b729190611aee565b85919085610e7f565b610b888383836001610ec1565b505050565b5f610608610b9c82600a611be1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254610bc89190611aee565b610bd0610446565b610b72906001611aee565b6001600160a01b038381165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160209081526040808320938616835292905220545f19811015610c895781811015610c7b576040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101829052604481018390526064016108a5565b610c8984848484035f610ec1565b50505050565b6001600160a01b038316610cd1576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b6001600160a01b038216610d13576040517fec442f050000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b610b88838383610fea565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006105c1565b610d4e611141565b610d5781611181565b50565b610d62611141565b610d6c8282611245565b5050565b610d7a84836112a8565b610d8483826112e4565b826001600160a01b0316846001600160a01b03167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d78484604051610dd2929190918252602082015260400190565b60405180910390a350505050565b826001600160a01b0316856001600160a01b031614610e0457610e04838683610bdb565b610e0e8382611331565b610e18848361137e565b826001600160a01b0316846001600160a01b0316866001600160a01b03167ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db8585604051610e70929190918252602082015260400190565b60405180910390a45050505050565b5f610eac610e8c836113b9565b8015610ea757505f8480610ea257610ea2611bef565b868809115b151590565b610eb78686866113e5565b610a1f9190611aee565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b038516610f24576040517fe602df050000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b6001600160a01b038416610f66576040517f94280d620000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b6001600160a01b038086165f90815260018301602090815260408083209388168352929052208390558115610fe357836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92585604051610fda91815260200190565b60405180910390a35b5050505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b0384166110375781816002015f82825461102c9190611aee565b909155506110c09050565b6001600160a01b0384165f90815260208290526040902054828110156110a2576040517fe450d38c0000000000000000000000000000000000000000000000000000000081526001600160a01b038616600482015260248101829052604481018490526064016108a5565b6001600160a01b0385165f9081526020839052604090209083900390555b6001600160a01b0383166110de5760028101805483900390556110fc565b6001600160a01b0383165f9081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610dd291815260200190565b611149611495565b61117f576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b611189611141565b7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e005f806111b5846114b3565b91509150816111c55760126111c7565b805b83547fffffffffffffffffffffff000000000000000000000000000000000000000000167401000000000000000000000000000000000000000060ff92909216919091027fffffffffffffffffffffffff000000000000000000000000000000000000000016176001600160a01b0394909416939093179091555050565b61124d611141565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace007f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace036112998482611cb1565b5060048101610c898382611cb1565b610d6c6112dc7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b83308461156c565b6001600160a01b038216611326576040517fec442f050000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b610d6c5f8383610fea565b6001600160a01b038216611373576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b610d6c825f83610fea565b610d6c6113b27f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b83836115bb565b5f60028260038111156113ce576113ce611d71565b6113d89190611d9e565b60ff166001149050919050565b5f805f6113f28686611609565b91509150815f036114165783818161140c5761140c611bef565b0492505050610608565b81841161142d5761142d6003851502601118611625565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010185841190960395909502919093039390930492909217029150509392505050565b5f61149e610d1e565b5468010000000000000000900460ff16919050565b5f805f6114bf60405190565b6040805160048152602481019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f313ce567000000000000000000000000000000000000000000000000000000001790529091505f908190611528908790611636565b509150915061153683604052565b818015611544575060203d10155b8015611551575060ff8111155b61155c575f80611560565b6001815b94509450505050915091565b61157a848484846001611657565b610c89576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b03851660048201526024016108a5565b6115c883838360016116dd565b610b88576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201526024016108a5565b5f805f1983850993909202808410938190039390930393915050565b634e487b715f52806020526024601cfd5b5f805f60405f855160208701885afa92505f51915060205190509250925092565b6040517f23b872dd000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038781166004528616602452604485905291602083606481808c5af1925060015f511483166116cc5783831516156116c0573d5f823e3d81fd5b5f883b113d1516831692505b604052505f60605295945050505050565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f5114831661174c578383151615611740573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f6020828403121561179d575f80fd5b5035919050565b6001600160a01b0381168114610d57575f80fd5b5f80604083850312156117c9575f80fd5b82356117d4816117a4565b946020939093013593505050565b5f805f606084860312156117f4575f80fd5b83356117ff816117a4565b9250602084013561180f816117a4565b929592945050506040919091013590565b5f60208284031215611830575f80fd5b8135610608816117a4565b5f806020838503121561184c575f80fd5b823567ffffffffffffffff80821115611863575f80fd5b818501915085601f830112611876575f80fd5b813581811115611884575f80fd5b866020828501011115611895575f80fd5b60209290920196919550909350505050565b5f80604083850312156118b8575f80fd5b8235915060208301356118ca816117a4565b809150509250929050565b5f805f606084860312156118e7575f80fd5b8335925060208401356118f9816117a4565b91506040840135611909816117a4565b809150509250925092565b5f8060408385031215611925575f80fd5b8235611930816117a4565b915060208301356118ca816117a4565b5f60208284031215611950575f80fd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f60208284031215611994575f80fd5b815167ffffffffffffffff808211156119ab575f80fd5b818401915084601f8301126119be575f80fd5b8151818111156119d0576119d0611957565b604051601f8201601f19908116603f011681019083821181831017156119f8576119f8611957565b81604052828152876020848701011115611a10575f80fd5b8260208601602083015e5f928101602001929092525095945050505050565b5f81518060208401855e5f93019283525090919050565b7f577261707065642000000000000000000000000000000000000000000000000081525f6106086008830184611a2f565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60ff81811683821601908111156105c1576105c1611a77565b7f770000000000000000000000000000000000000000000000000000000000000081525f6106086001830184611a2f565b808201808211156105c1576105c1611a77565b600181815b80851115611b3b57815f1904821115611b2157611b21611a77565b80851615611b2e57918102915b93841c9390800290611b06565b509250929050565b5f82611b51575060016105c1565b81611b5d57505f6105c1565b8160018114611b735760028114611b7d57611b99565b60019150506105c1565b60ff841115611b8e57611b8e611a77565b50506001821b6105c1565b5060208310610133831016604e8410600b8410161715611bbc575081810a6105c1565b611bc68383611b01565b805f1904821115611bd957611bd9611a77565b029392505050565b5f61060860ff841683611b43565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b600181811c90821680611c3057607f821691505b602082108103611c67577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b601f821115610b8857805f5260205f20601f840160051c81016020851015611c925750805b601f840160051c820191505b81811015610fe3575f8155600101611c9e565b815167ffffffffffffffff811115611ccb57611ccb611957565b611cdf81611cd98454611c1c565b84611c6d565b602080601f831160018114611d12575f8415611cfb5750858301515b5f19600386901b1c1916600185901b178555611d69565b5f85815260208120601f198616915b82811015611d4057888601518255948401946001909101908401611d21565b5085821015611d5d57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f60ff831680611dd5577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b8060ff8416069150509291505056"; diff --git a/src/generated/0_1_2/StoxWrappedTokenVaultBeacon.pointers.sol b/src/generated/0_1_2/StoxWrappedTokenVaultBeacon.pointers.sol deleted file mode 100644 index 438a674d..00000000 --- a/src/generated/0_1_2/StoxWrappedTokenVaultBeacon.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x8e95867e52db417944afd90f3b6c3c980962831e8a944e7f6958ba8f8cc10630); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x9FD790f65CA3aF2772358c653F097f0a4c7EE7d2); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"608060405234801561000f575f80fd5b50730d99e0174dbf885ced6ae8deb939b0f890450099738e4bdeec7ceb9570d440676345da1dce10329f5b80610049565b60405180910390fd5b61005281610063565b5061005c826100b2565b5050610130565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b806001600160a01b03163b5f036100e75760405163211eb15960e21b81526001600160a01b0382166004820152602401610040565b600180546001600160a01b0319166001600160a01b0383169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b61035a8061013d5f395ff3fe608060405234801561000f575f80fd5b5060043610610064575f3560e01c8063715018a61161004d578063715018a6146100c05780638da5cb5b146100c8578063f2fde38b146100e5575f80fd5b80633659cfe6146100685780635c60da1b1461007d575b5f80fd5b61007b610076366004610320565b6100f8565b005b60015473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61007b61010c565b5f5473ffffffffffffffffffffffffffffffffffffffff16610097565b61007b6100f3366004610320565b61011f565b610100610184565b610109816101d6565b50565b610114610184565b61011d5f6102ac565b565b610127610184565b73ffffffffffffffffffffffffffffffffffffffff811661017b576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f60048201526024015b60405180910390fd5b610109816102ac565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461011d576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610172565b8073ffffffffffffffffffffffffffffffffffffffff163b5f0361023e576040517f847ac56400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602401610172565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f60208284031215610330575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610353575f80fd5b939250505056"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b5060043610610064575f3560e01c8063715018a61161004d578063715018a6146100c05780638da5cb5b146100c8578063f2fde38b146100e5575f80fd5b80633659cfe6146100685780635c60da1b1461007d575b5f80fd5b61007b610076366004610320565b6100f8565b005b60015473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61007b61010c565b5f5473ffffffffffffffffffffffffffffffffffffffff16610097565b61007b6100f3366004610320565b61011f565b610100610184565b610109816101d6565b50565b610114610184565b61011d5f6102ac565b565b610127610184565b73ffffffffffffffffffffffffffffffffffffffff811661017b576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f60048201526024015b60405180910390fd5b610109816102ac565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461011d576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610172565b8073ffffffffffffffffffffffffffffffffffffffff163b5f0361023e576040517f847ac56400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602401610172565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f60208284031215610330575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610353575f80fd5b939250505056"; diff --git a/src/generated/0_1_2/StoxWrappedTokenVaultBeaconSetDeployer.pointers.sol b/src/generated/0_1_2/StoxWrappedTokenVaultBeaconSetDeployer.pointers.sol deleted file mode 100644 index 5f540f51..00000000 --- a/src/generated/0_1_2/StoxWrappedTokenVaultBeaconSetDeployer.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0xa2c4bd29f36bc6636938f3ad66e6de5d126ce41ed3134bed166cde259d5775ad); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0xbe5f05C4576e6D3e7bCCb4E64f08fc4F46Adf0cA); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"6080604052348015600e575f80fd5b506109468061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c806301ffc9a714610038578063d786858b14610060575b5f80fd5b61004b610046366004610333565b610098565b60405190151581526020015b60405180910390f35b61007361006e366004610379565b610130565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610057565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fd786858b00000000000000000000000000000000000000000000000000000000148061012a57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff821661017e576040517fe51a7ce200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f739fd790f65ca3af2772358c653f097f0a4c7ee7d26040516101a090610326565b73ffffffffffffffffffffffffffffffffffffffff90911681526040602082018190525f90820152606001604051809103905ff0801580156101e4573d5f803e3d5ffd5b506040805133815273ffffffffffffffffffffffffffffffffffffffff831660208201529192507f82488d8ab594db2178e4a45b7106aaa804836e608f001b5d7fcb6c3514730b3e910160405180910390a16040805173ffffffffffffffffffffffffffffffffffffffff85811660208301527fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc3929084169163439fab9191016040516020818303038152906040526040518263ffffffff1660e01b81526004016102af91906103ac565b6020604051808303815f875af11580156102cb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ef91906103ff565b1461012a576040517f09c5931500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61052f8061041783390190565b5f60208284031215610343575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610372575f80fd5b9392505050565b5f60208284031215610389575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610372575f80fd5b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b5f6020828403121561040f575f80fd5b505191905056fe60a060405260405161052f38038061052f83398101604081905261002291610331565b61002c828261003e565b506001600160a01b031660805261040d565b610047826100fb565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a28051156100ef576100ea826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e491906103ed565b82610209565b505050565b6100f76102aa565b5050565b806001600160a01b03163b5f0361013557604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b815290515f92841691635c60da1b9160048083019260209291908290030181865afa1580156101ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d291906103ed565b9050806001600160a01b03163b5f036100f757604051634c9c8ce360e01b81526001600160a01b038216600482015260240161012c565b60605f61021684846102cb565b905080801561023757505f3d118061023757505f846001600160a01b03163b115b1561024c576102446102de565b9150506102a4565b801561027657604051639996b31560e01b81526001600160a01b038516600482015260240161012c565b3d15610289576102846102f7565b6102a2565b60405163d6bda27560e01b815260040160405180910390fd5b505b92915050565b34156102c95760405163b398979f60e01b815260040160405180910390fd5b565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b6040513d5f823e3d81fd5b80516001600160a01b0381168114610318575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215610342575f80fd5b61034b83610302565b60208401519092506001600160401b0380821115610367575f80fd5b818501915085601f83011261037a575f80fd5b81518181111561038c5761038c61031d565b604051601f8201601f19908116603f011681019083821181831017156103b4576103b461031d565b816040528281528860208487010111156103cc575f80fd5b8260208601602083015e5f6020848301015280955050505050509250929050565b5f602082840312156103fd575f80fd5b61040682610302565b9392505050565b60805161010b6104245f395f6023015261010b5ff3fe608060405261000c61000e565b005b61001e610019610020565b6100b3565b565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561008a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100ae91906100d1565b905090565b365f80375f80365f845af43d5f803e8080156100cd573d5ff35b3d5ffd5b5f602082840312156100e1575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610104575f80fd5b939250505056"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b5060043610610034575f3560e01c806301ffc9a714610038578063d786858b14610060575b5f80fd5b61004b610046366004610333565b610098565b60405190151581526020015b60405180910390f35b61007361006e366004610379565b610130565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610057565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fd786858b00000000000000000000000000000000000000000000000000000000148061012a57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff821661017e576040517fe51a7ce200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f739fd790f65ca3af2772358c653f097f0a4c7ee7d26040516101a090610326565b73ffffffffffffffffffffffffffffffffffffffff90911681526040602082018190525f90820152606001604051809103905ff0801580156101e4573d5f803e3d5ffd5b506040805133815273ffffffffffffffffffffffffffffffffffffffff831660208201529192507f82488d8ab594db2178e4a45b7106aaa804836e608f001b5d7fcb6c3514730b3e910160405180910390a16040805173ffffffffffffffffffffffffffffffffffffffff85811660208301527fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc3929084169163439fab9191016040516020818303038152906040526040518263ffffffff1660e01b81526004016102af91906103ac565b6020604051808303815f875af11580156102cb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ef91906103ff565b1461012a576040517f09c5931500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61052f8061041783390190565b5f60208284031215610343575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610372575f80fd5b9392505050565b5f60208284031215610389575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610372575f80fd5b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b5f6020828403121561040f575f80fd5b505191905056fe60a060405260405161052f38038061052f83398101604081905261002291610331565b61002c828261003e565b506001600160a01b031660805261040d565b610047826100fb565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a28051156100ef576100ea826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e491906103ed565b82610209565b505050565b6100f76102aa565b5050565b806001600160a01b03163b5f0361013557604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b815290515f92841691635c60da1b9160048083019260209291908290030181865afa1580156101ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d291906103ed565b9050806001600160a01b03163b5f036100f757604051634c9c8ce360e01b81526001600160a01b038216600482015260240161012c565b60605f61021684846102cb565b905080801561023757505f3d118061023757505f846001600160a01b03163b115b1561024c576102446102de565b9150506102a4565b801561027657604051639996b31560e01b81526001600160a01b038516600482015260240161012c565b3d15610289576102846102f7565b6102a2565b60405163d6bda27560e01b815260040160405180910390fd5b505b92915050565b34156102c95760405163b398979f60e01b815260040160405180910390fd5b565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b6040513d5f823e3d81fd5b80516001600160a01b0381168114610318575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215610342575f80fd5b61034b83610302565b60208401519092506001600160401b0380821115610367575f80fd5b818501915085601f83011261037a575f80fd5b81518181111561038c5761038c61031d565b604051601f8201601f19908116603f011681019083821181831017156103b4576103b461031d565b816040528281528860208487010111156103cc575f80fd5b8260208601602083015e5f6020848301015280955050505050509250929050565b5f602082840312156103fd575f80fd5b61040682610302565b9392505050565b60805161010b6104245f395f6023015261010b5ff3fe608060405261000c61000e565b005b61001e610019610020565b6100b3565b565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561008a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100ae91906100d1565b905090565b365f80375f80365f845af43d5f803e8080156100cd573d5ff35b3d5ffd5b5f602082840312156100e1575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610104575f80fd5b939250505056"; diff --git a/src/generated/0_1_3/ST0xOrchestrator.pointers.sol b/src/generated/0_1_3/ST0xOrchestrator.pointers.sol deleted file mode 100644 index 9fe30271..00000000 --- a/src/generated/0_1_3/ST0xOrchestrator.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x7537448e8cbb200d25651a941a39e465e2ef7a549fe8245d83774bef485629e6); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x0099FcB947Cc31E21C631478A2a9E2E591cd4010); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"6080604052348015600e575f80fd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6131c0806100d65f395ff3fe608060405260043610610191575f3560e01c8063742fabb3116100dc578063b930908f11610087578063d547741f11610062578063d547741f14610594578063e9a9c850146105b3578063f14893a7146105e6578063f23a6e6114610605575f80fd5b8063b930908f146104f2578063bc197c8114610525578063c4d66de814610575575f80fd5b806391d14854116100b757806391d148541461045d5780639cb887f8146104c0578063a217fddf146104df575f80fd5b8063742fabb3146103cf578063752c9cf51461042257806384b0196e14610436575f80fd5b80633b94a0dd1161013c57806344d171871161011757806344d1718714610372578063584f418e14610391578063671d083f146103b0575f80fd5b80633b94a0dd146103015780633e81e40d146103345780633f6fc76f14610353575f80fd5b8063248a9ca31161016c578063248a9ca3146102745780632f2ff15d146102c157806336568abe146102e2575f80fd5b806301ffc9a71461019c5780630e230f97146101d057806320df435914610233575f80fd5b3661019857005b5f80fd5b3480156101a7575f80fd5b506101bb6101b6366004612944565b610624565b60405190151581526020015b60405180910390f35b3480156101db575f80fd5b506101bb6101ea366004612973565b6001600160a01b03919091165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be70160209081526040808320938352929052205460ff1690565b34801561023e575f80fd5b506102667f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de81565b6040519081526020016101c7565b34801561027f575f80fd5b5061026661028e36600461299d565b5f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b3480156102cc575f80fd5b506102e06102db3660046129b4565b6106cb565b005b3480156102ed575f80fd5b506102e06102fc3660046129b4565b610714565b34801561030c575f80fd5b506102667f8381bcc05e5203d9456aa7185a19b2be5d4af37909fecf63a6f2016c1bf8413381565b34801561033f575f80fd5b5061026661034e3660046129e2565b610765565b34801561035e575f80fd5b506102e061036d366004612a25565b61077b565b34801561037d575f80fd5b506102e061038c366004612aa9565b610816565b34801561039c575f80fd5b506102e06103ab366004612b01565b610979565b3480156103bb575f80fd5b506102e06103ca366004612b48565b610af3565b3480156103da575f80fd5b506102666103e9366004612be2565b6001600160a01b03165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be700602052604090205490565b34801561042d575f80fd5b506101bb610cbc565b348015610441575f80fd5b5061044a610eb1565b6040516101c79796959493929190612c2b565b348015610468575f80fd5b506101bb6104773660046129b4565b5f9182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3480156104cb575f80fd5b506102e06104da366004612973565b610f0f565b3480156104ea575f80fd5b506102665f81565b3480156104fd575f80fd5b506102667f04c6a47ae7910ef8b295215a97e8495a9eaf57b7b05bfd8bf951edb3fd4a16a381565b348015610530575f80fd5b5061054461053f366004612d1f565b610fc5565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016101c7565b348015610580575f80fd5b506102e061058f366004612be2565b611054565b34801561059f575f80fd5b506102e06105ae3660046129b4565b611283565b3480156105be575f80fd5b506102667ffdf81848136595c31bb5f76217767372bc4bf906663038eb38381131ea27ecba81565b3480156105f1575f80fd5b506102e0610600366004612b01565b6112c6565b348015610610575f80fd5b5061054461061f366004612dd6565b6113ce565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f4e2312e00000000000000000000000000000000000000000000000000000000014806106b657507fffffffff0000000000000000000000000000000000000000000000000000000082167f18bd37da00000000000000000000000000000000000000000000000000000000145b806106c557506106c58261140b565b92915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020526040902060010154610704816114a1565b61070e83836114ae565b50505050565b6001600160a01b0381163314610756576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610760828261157a565b505050565b5f6107728585858561161e565b95945050505050565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de6107a5816114a1565b6107ad611694565b6107c16001600160a01b03851683856116cb565b816001600160a01b0316846001600160a01b03167f4810d2f105dcba10d740b4ac1d8fa8454dd37014b2051bace1edb1d903c440c48560405161080691815260200190565b60405180910390a361070e611719565b7f04c6a47ae7910ef8b295215a97e8495a9eaf57b7b05bfd8bf951edb3fd4a16a3610840816114a1565b610848611743565b610850611694565b835f03610889576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61089e6001600160a01b0386163330876119d5565b6001600160a01b0385165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be70060209081526040808320548151601f8701849004840281018401909252858252929161091791899189919089908990819084018382808284375f92019190915250611a2492505050565b60408051888152602081018590529081018290529091506001600160a01b0388169033907f112766730ce440487945c01048dacfc6d04340403f675871e96c4e28cf622ecc9060600160405180910390a35050610972611719565b5050505050565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de6109a3816114a1565b6109ab611694565b846001600160a01b031663e1e6b8986040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109e7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a0b9190612e3b565b6040517ff242432a0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038481166024830152604482018790526064820186905260a060848301525f60a4830152919091169063f242432a9060c4015f604051808303815f87803b158015610a87575f80fd5b505af1158015610a99573d5f803e3d5ffd5b5050505083826001600160a01b0316866001600160a01b03167fc9e640d2eb1b8469e42f60a66fef6a05cfd27ee3757e48f3f8ba04ecbc8a51b086604051610ae391815260200190565b60405180910390a4610972611719565b7ffdf81848136595c31bb5f76217767372bc4bf906663038eb38381131ea27ecba610b1d816114a1565b610b25611743565b610b2d611694565b845f03610b66576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b7287878787611d57565b6040517fc77b66c20000000000000000000000000000000000000000000000000000000081525f906001600160a01b0389169063c77b66c290610bc1908990309086908a908a90600401612e56565b6020604051808303815f875af1158015610bdd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c019190612ea2565b9050858114610c4b576040517fbe40f1fc00000000000000000000000000000000000000000000000000000000815260048101879052602481018290526044015b60405180910390fd5b610c5f6001600160a01b03891688886116cb565b60408051878152863560208201526001600160a01b03808a1692908b169133917f7c0eac1a8d30fbe7a577affc3b588a0b7d965a6133d12097cfac0760f2f2b617910160405180910390a450610cb3611719565b50505050505050565b5f8073679ab223dab158ea93e1a4f49104de436c58eab8905073d7f91c1c6e6e651ec3f1fd707af7cbb7526206e16001600160a01b0316816001600160a01b0316632f77a1c16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d2f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d539190612e3b565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d8e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610db29190612e3b565b6001600160a01b0316148015610eab5750732df5cfe6d688ef9ff1b7c59a499d254b1527b2866001600160a01b0316816001600160a01b0316632c9b7f406040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e1d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e419190612e3b565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e7c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ea09190612e3b565b6001600160a01b0316145b91505090565b5f6060805f805f6060610ec2611e95565b610eca611f68565b604080515f808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009b939a50919850469750309650945092509050565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de610f39816114a1565b610f41611694565b5f7f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be7006001600160a01b0385165f818152602083815260409182902080549088905582518181529182018890529394507fc6ce8282d3b57b159503fa5566e612aeb9f30c8e20c882398c9cb293c1ba6d68910160405180910390a25050610760611719565b5f805b86811015611025578481108015610ff657505f868683818110610fed57610fed612ee6565b90506020020135115b1561101d5761101d3389898481811061101157611011612ee6565b90506020020135611fb9565b600101610fc8565b507fbc197c81000000000000000000000000000000000000000000000000000000009998505050505050505050565b5f61105d612222565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156110895750825b90505f8267ffffffffffffffff1660011480156110a55750303b155b9050811580156110b3575080155b156110ea576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166001178555831561114b5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6001600160a01b03861661118b576040517f9905827b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611193611743565b61119b61224a565b61120f6040518060400160405280601081526020017f535430784f7263686573747261746f72000000000000000000000000000000008152506040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250612252565b6112195f876114ae565b50831561127b5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680060205260409020600101546112bc816114a1565b61070e838361157a565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de6112f0816114a1565b6112f8611694565b6040517ff242432a0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038381166024830152604482018690526064820185905260a060848301525f60a483015286169063f242432a9060c4015f604051808303815f87803b158015611372575f80fd5b505af1158015611384573d5f803e3d5ffd5b5050505083826001600160a01b0316866001600160a01b03167f78b19b4b6e69e380c3c303d1e889d510ee3ee409219c1c014d97a0a607b6c6a686604051610ae391815260200190565b5f83156113df576113df3386611fb9565b507ff23a6e61000000000000000000000000000000000000000000000000000000009695505050505050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806106c557507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146106c5565b6114ab8133612268565b50565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff16611571575f848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556115273390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506106c5565b5f9150506106c5565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff1615611571575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506106c5565b604080517f8381bcc05e5203d9456aa7185a19b2be5d4af37909fecf63a6f2016c1bf8413360208201526001600160a01b038087169282019290925290841660608201526080810183905260a081018290525f906107729060c001604051602081830303815290604052805190602001206122f4565b61169c61233b565b6116c960017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005b90612394565b565b6116d8838383600161239b565b610760576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610c42565b6116c95f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f006116c3565b5f73679ab223dab158ea93e1a4f49104de436c58eab890505f816001600160a01b0316632f77a1c16040518163ffffffff1660e01b8152600401602060405180830381865afa158015611798573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117bc9190612e3b565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117f7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061181b9190612e3b565b90506001600160a01b03811673d7f91c1c6e6e651ec3f1fd707af7cbb7526206e114611898576040517fdfdb61b700000000000000000000000000000000000000000000000000000000815273d7f91c1c6e6e651ec3f1fd707af7cbb7526206e160048201526001600160a01b0382166024820152604401610c42565b5f826001600160a01b0316632c9b7f406040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118f99190612e3b565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611934573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119589190612e3b565b90506001600160a01b038116732df5cfe6d688ef9ff1b7c59a499d254b1527b28614610760576040517f3e4077b3000000000000000000000000000000000000000000000000000000008152732df5cfe6d688ef9ff1b7c59a499d254b1527b28660048201526001600160a01b0382166024820152604401610c42565b6119e3848484846001612416565b61070e576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610c42565b5f808490505f816001600160a01b031663e1e6b8986040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a66573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a8a9190612e3b565b90507f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be7005f015f876001600160a01b03166001600160a01b031681526020019081526020015f205492505f826001600160a01b031663f5d214f56040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b10573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b349190612ea2565b90505b8515611d125780841115611b89576040517f66a21a2d0000000000000000000000000000000000000000000000000000000081526001600160a01b038816600482015260248101879052604401610c42565b6040517efdd58e000000000000000000000000000000000000000000000000000000008152306004820152602481018590525f906001600160a01b0384169062fdd58e90604401602060405180830381865afa158015611beb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c0f9190612ea2565b9050805f03611c245750600190930192611b37565b5f818810611c325781611c34565b875b90505f856001600160a01b031663921a4c428330308b8d6040518663ffffffff1660e01b8152600401611c6b959493929190612f13565b6020604051808303815f875af1158015611c87573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cab9190612ea2565b9050818114611cf0576040517fbe40f1fc0000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610c42565b611cfa828a612f55565b9850828203611d0a576001909601955b505050611b37565b5050506001600160a01b03939093165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be700602052604090208390555090919050565b6001600160a01b0383165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be70160209081526040808320843584529091529020547f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be7009060ff1615611e08576040517f59c210430000000000000000000000000000000000000000000000000000000081526001600160a01b038516600482015282356024820152604401610c42565b6001600160a01b0384165f90815260018281016020908152604080842086358086529252909220805460ff19169091179055610972908590611e4f9088908390889061161e565b611e5c6020860186612f8d565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061249c92505050565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10280546060917fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10091611ee690612fee565b80601f0160208091040260200160405190810160405280929190818152602001828054611f1290612fee565b8015611f5d5780601f10611f3457610100808354040283529160200191611f5d565b820191905f5260205f20905b815481529060010190602001808311611f4057829003601f168201915b505050505091505090565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10380546060917fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10091611ee690612fee565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f481c6a750000000000000000000000000000000000000000000000000000000017905290515f9182916001600160a01b038616916120299161303f565b5f60405180830381855afa9150503d805f8114612061576040519150601f19603f3d011682016040523d82523d5f602084013e612066565b606091505b509150915081158061207a57508051602014155b156120855750505050565b5f61208f82613055565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe1e6b8980000000000000000000000000000000000000000000000000000000017905290519192506001600160a01b038316916120ff919061303f565b5f60405180830381855afa9150503d805f8114612137576040519150601f19603f3d011682016040523d82523d5f602084013e61213c565b606091505b50909350915082158061215157508151602014155b1561215d575050505050565b6001600160a01b03851661217083613055565b6001600160a01b031614612185575050505050565b6001600160a01b0381165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be700602081905260409091205480861015610cb3576001600160a01b0383165f818152602084815260409182902089905581518481529081018990527f2008c207f65bedc2bb65dc8ac34aee36a37cd43a50152d574107c63ace7e07c6910160405180910390a250505050505050565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006106c5565b6116c96125cb565b61225a6125cb565b6122648282612609565b5050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038516845290915290205460ff16612264576040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015260248101839052604401610c42565b5f6106c561230061266c565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c156116c9576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80825d5050565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f5114831661240a5783831516156123fe573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b6040517f23b872dd000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038781166004528616602452604485905291602083606481808c5af1925060015f5114831661248b57838315161561247f573d5f823e3d81fd5b5f883b113d1516831692505b604052505f60605295945050505050565b8051156124e4576124ae83838361267a565b610760576040517f19ab93cc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f642ddf3a0000000000000000000000000000000000000000000000000000000080825260048201849052906001600160a01b0385169063642ddf3a906024016020604051808303815f875af1158015612543573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125679190613078565b7fffffffff000000000000000000000000000000000000000000000000000000001614610760576040517f22b89c080000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610c42565b6125d36126ed565b6116c9576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6126116125cb565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1007fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10261265d84826130d7565b506003810161070e83826130d7565b5f61267561270b565b905090565b5f836001600160a01b03163b5f036126d8575f80612698858561277e565b5090925090505f8160038111156126b1576126b1613193565b1480156126cf5750856001600160a01b0316826001600160a01b0316145b925050506126e6565b6126e38484846127c7565b90505b9392505050565b5f6126f6612222565b5468010000000000000000900460ff16919050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f612735612831565b61273d612846565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f805f83516041036127b5576020840151604085015160608601515f1a6127a78882858561284f565b9550955095505050506127c0565b505081515f91506002905b9250925092565b8051604080517f1626ba7e000000000000000000000000000000000000000000000000000000008082526004820186905260248201929092525f92906020820185604483015e60205f60648401838a5afa9050825f5114601f3d1116811693505050509392505050565b5f61283a611e95565b80519060200120905090565b5f61283a611f68565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561288857505f9150600390508261290d565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa1580156128d9573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b03811661290457505f92506001915082905061290d565b92505f91508190505b9450945094915050565b7fffffffff00000000000000000000000000000000000000000000000000000000811681146114ab575f80fd5b5f60208284031215612954575f80fd5b81356126e681612917565b6001600160a01b03811681146114ab575f80fd5b5f8060408385031215612984575f80fd5b823561298f8161295f565b946020939093013593505050565b5f602082840312156129ad575f80fd5b5035919050565b5f80604083850312156129c5575f80fd5b8235915060208301356129d78161295f565b809150509250929050565b5f805f80608085870312156129f5575f80fd5b8435612a008161295f565b93506020850135612a108161295f565b93969395505050506040820135916060013590565b5f805f60608486031215612a37575f80fd5b8335612a428161295f565b9250602084013591506040840135612a598161295f565b809150509250925092565b5f8083601f840112612a74575f80fd5b50813567ffffffffffffffff811115612a8b575f80fd5b602083019150836020828501011115612aa2575f80fd5b9250929050565b5f805f8060608587031215612abc575f80fd5b8435612ac78161295f565b935060208501359250604085013567ffffffffffffffff811115612ae9575f80fd5b612af587828801612a64565b95989497509550505050565b5f805f8060808587031215612b14575f80fd5b8435612b1f8161295f565b935060208501359250604085013591506060850135612b3d8161295f565b939692955090935050565b5f805f805f8060a08789031215612b5d575f80fd5b8635612b688161295f565b95506020870135612b788161295f565b945060408701359350606087013567ffffffffffffffff80821115612b9b575f80fd5b908801906040828b031215612bae575f80fd5b90935060808801359080821115612bc3575f80fd5b50612bd089828a01612a64565b979a9699509497509295939492505050565b5f60208284031215612bf2575f80fd5b81356126e68161295f565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b7fff00000000000000000000000000000000000000000000000000000000000000881681525f602060e06020840152612c6760e084018a612bfd565b8381036040850152612c79818a612bfd565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825260208088019350909101905f5b81811015612ccc57835183529284019291840191600101612cb0565b50909c9b505050505050505050505050565b5f8083601f840112612cee575f80fd5b50813567ffffffffffffffff811115612d05575f80fd5b6020830191508360208260051b8501011115612aa2575f80fd5b5f805f805f805f8060a0898b031215612d36575f80fd5b8835612d418161295f565b97506020890135612d518161295f565b9650604089013567ffffffffffffffff80821115612d6d575f80fd5b612d798c838d01612cde565b909850965060608b0135915080821115612d91575f80fd5b612d9d8c838d01612cde565b909650945060808b0135915080821115612db5575f80fd5b50612dc28b828c01612a64565b999c989b5096995094979396929594505050565b5f805f805f8060a08789031215612deb575f80fd5b8635612df68161295f565b95506020870135612e068161295f565b94506040870135935060608701359250608087013567ffffffffffffffff811115612e2f575f80fd5b612bd089828a01612a64565b5f60208284031215612e4b575f80fd5b81516126e68161295f565b8581526001600160a01b038516602082015283604082015260806060820152816080820152818360a08301375f81830160a090810191909152601f909201601f19160101949350505050565b5f60208284031215612eb2575f80fd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b8581525f6001600160a01b03808716602084015280861660408401525083606083015260a06080830152612f4a60a0830184612bfd565b979650505050505050565b818103818111156106c5577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612fc0575f80fd5b83018035915067ffffffffffffffff821115612fda575f80fd5b602001915036819003821315612aa2575f80fd5b600181811c9082168061300257607f821691505b602082108103613039577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b5f82518060208501845e5f920191825250919050565b80516020808301519190811015613039575f1960209190910360031b1b16919050565b5f60208284031215613088575f80fd5b81516126e681612917565b601f82111561076057805f5260205f20601f840160051c810160208510156130b85750805b601f840160051c820191505b81811015610972575f81556001016130c4565b815167ffffffffffffffff8111156130f1576130f1612eb9565b613105816130ff8454612fee565b84613093565b602080601f831160018114613138575f84156131215750858301515b5f19600386901b1c1916600185901b17855561127b565b5f85815260208120601f198616915b8281101561316657888601518255948401946001909101908401613147565b508582101561318357878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405260043610610191575f3560e01c8063742fabb3116100dc578063b930908f11610087578063d547741f11610062578063d547741f14610594578063e9a9c850146105b3578063f14893a7146105e6578063f23a6e6114610605575f80fd5b8063b930908f146104f2578063bc197c8114610525578063c4d66de814610575575f80fd5b806391d14854116100b757806391d148541461045d5780639cb887f8146104c0578063a217fddf146104df575f80fd5b8063742fabb3146103cf578063752c9cf51461042257806384b0196e14610436575f80fd5b80633b94a0dd1161013c57806344d171871161011757806344d1718714610372578063584f418e14610391578063671d083f146103b0575f80fd5b80633b94a0dd146103015780633e81e40d146103345780633f6fc76f14610353575f80fd5b8063248a9ca31161016c578063248a9ca3146102745780632f2ff15d146102c157806336568abe146102e2575f80fd5b806301ffc9a71461019c5780630e230f97146101d057806320df435914610233575f80fd5b3661019857005b5f80fd5b3480156101a7575f80fd5b506101bb6101b6366004612944565b610624565b60405190151581526020015b60405180910390f35b3480156101db575f80fd5b506101bb6101ea366004612973565b6001600160a01b03919091165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be70160209081526040808320938352929052205460ff1690565b34801561023e575f80fd5b506102667f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de81565b6040519081526020016101c7565b34801561027f575f80fd5b5061026661028e36600461299d565b5f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b3480156102cc575f80fd5b506102e06102db3660046129b4565b6106cb565b005b3480156102ed575f80fd5b506102e06102fc3660046129b4565b610714565b34801561030c575f80fd5b506102667f8381bcc05e5203d9456aa7185a19b2be5d4af37909fecf63a6f2016c1bf8413381565b34801561033f575f80fd5b5061026661034e3660046129e2565b610765565b34801561035e575f80fd5b506102e061036d366004612a25565b61077b565b34801561037d575f80fd5b506102e061038c366004612aa9565b610816565b34801561039c575f80fd5b506102e06103ab366004612b01565b610979565b3480156103bb575f80fd5b506102e06103ca366004612b48565b610af3565b3480156103da575f80fd5b506102666103e9366004612be2565b6001600160a01b03165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be700602052604090205490565b34801561042d575f80fd5b506101bb610cbc565b348015610441575f80fd5b5061044a610eb1565b6040516101c79796959493929190612c2b565b348015610468575f80fd5b506101bb6104773660046129b4565b5f9182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3480156104cb575f80fd5b506102e06104da366004612973565b610f0f565b3480156104ea575f80fd5b506102665f81565b3480156104fd575f80fd5b506102667f04c6a47ae7910ef8b295215a97e8495a9eaf57b7b05bfd8bf951edb3fd4a16a381565b348015610530575f80fd5b5061054461053f366004612d1f565b610fc5565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016101c7565b348015610580575f80fd5b506102e061058f366004612be2565b611054565b34801561059f575f80fd5b506102e06105ae3660046129b4565b611283565b3480156105be575f80fd5b506102667ffdf81848136595c31bb5f76217767372bc4bf906663038eb38381131ea27ecba81565b3480156105f1575f80fd5b506102e0610600366004612b01565b6112c6565b348015610610575f80fd5b5061054461061f366004612dd6565b6113ce565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f4e2312e00000000000000000000000000000000000000000000000000000000014806106b657507fffffffff0000000000000000000000000000000000000000000000000000000082167f18bd37da00000000000000000000000000000000000000000000000000000000145b806106c557506106c58261140b565b92915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020526040902060010154610704816114a1565b61070e83836114ae565b50505050565b6001600160a01b0381163314610756576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610760828261157a565b505050565b5f6107728585858561161e565b95945050505050565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de6107a5816114a1565b6107ad611694565b6107c16001600160a01b03851683856116cb565b816001600160a01b0316846001600160a01b03167f4810d2f105dcba10d740b4ac1d8fa8454dd37014b2051bace1edb1d903c440c48560405161080691815260200190565b60405180910390a361070e611719565b7f04c6a47ae7910ef8b295215a97e8495a9eaf57b7b05bfd8bf951edb3fd4a16a3610840816114a1565b610848611743565b610850611694565b835f03610889576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61089e6001600160a01b0386163330876119d5565b6001600160a01b0385165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be70060209081526040808320548151601f8701849004840281018401909252858252929161091791899189919089908990819084018382808284375f92019190915250611a2492505050565b60408051888152602081018590529081018290529091506001600160a01b0388169033907f112766730ce440487945c01048dacfc6d04340403f675871e96c4e28cf622ecc9060600160405180910390a35050610972611719565b5050505050565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de6109a3816114a1565b6109ab611694565b846001600160a01b031663e1e6b8986040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109e7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a0b9190612e3b565b6040517ff242432a0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038481166024830152604482018790526064820186905260a060848301525f60a4830152919091169063f242432a9060c4015f604051808303815f87803b158015610a87575f80fd5b505af1158015610a99573d5f803e3d5ffd5b5050505083826001600160a01b0316866001600160a01b03167fc9e640d2eb1b8469e42f60a66fef6a05cfd27ee3757e48f3f8ba04ecbc8a51b086604051610ae391815260200190565b60405180910390a4610972611719565b7ffdf81848136595c31bb5f76217767372bc4bf906663038eb38381131ea27ecba610b1d816114a1565b610b25611743565b610b2d611694565b845f03610b66576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b7287878787611d57565b6040517fc77b66c20000000000000000000000000000000000000000000000000000000081525f906001600160a01b0389169063c77b66c290610bc1908990309086908a908a90600401612e56565b6020604051808303815f875af1158015610bdd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c019190612ea2565b9050858114610c4b576040517fbe40f1fc00000000000000000000000000000000000000000000000000000000815260048101879052602481018290526044015b60405180910390fd5b610c5f6001600160a01b03891688886116cb565b60408051878152863560208201526001600160a01b03808a1692908b169133917f7c0eac1a8d30fbe7a577affc3b588a0b7d965a6133d12097cfac0760f2f2b617910160405180910390a450610cb3611719565b50505050505050565b5f8073679ab223dab158ea93e1a4f49104de436c58eab8905073d7f91c1c6e6e651ec3f1fd707af7cbb7526206e16001600160a01b0316816001600160a01b0316632f77a1c16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d2f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d539190612e3b565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d8e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610db29190612e3b565b6001600160a01b0316148015610eab5750732df5cfe6d688ef9ff1b7c59a499d254b1527b2866001600160a01b0316816001600160a01b0316632c9b7f406040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e1d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e419190612e3b565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e7c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ea09190612e3b565b6001600160a01b0316145b91505090565b5f6060805f805f6060610ec2611e95565b610eca611f68565b604080515f808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009b939a50919850469750309650945092509050565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de610f39816114a1565b610f41611694565b5f7f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be7006001600160a01b0385165f818152602083815260409182902080549088905582518181529182018890529394507fc6ce8282d3b57b159503fa5566e612aeb9f30c8e20c882398c9cb293c1ba6d68910160405180910390a25050610760611719565b5f805b86811015611025578481108015610ff657505f868683818110610fed57610fed612ee6565b90506020020135115b1561101d5761101d3389898481811061101157611011612ee6565b90506020020135611fb9565b600101610fc8565b507fbc197c81000000000000000000000000000000000000000000000000000000009998505050505050505050565b5f61105d612222565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156110895750825b90505f8267ffffffffffffffff1660011480156110a55750303b155b9050811580156110b3575080155b156110ea576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166001178555831561114b5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6001600160a01b03861661118b576040517f9905827b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611193611743565b61119b61224a565b61120f6040518060400160405280601081526020017f535430784f7263686573747261746f72000000000000000000000000000000008152506040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250612252565b6112195f876114ae565b50831561127b5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680060205260409020600101546112bc816114a1565b61070e838361157a565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de6112f0816114a1565b6112f8611694565b6040517ff242432a0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038381166024830152604482018690526064820185905260a060848301525f60a483015286169063f242432a9060c4015f604051808303815f87803b158015611372575f80fd5b505af1158015611384573d5f803e3d5ffd5b5050505083826001600160a01b0316866001600160a01b03167f78b19b4b6e69e380c3c303d1e889d510ee3ee409219c1c014d97a0a607b6c6a686604051610ae391815260200190565b5f83156113df576113df3386611fb9565b507ff23a6e61000000000000000000000000000000000000000000000000000000009695505050505050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806106c557507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146106c5565b6114ab8133612268565b50565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff16611571575f848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556115273390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506106c5565b5f9150506106c5565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff1615611571575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506106c5565b604080517f8381bcc05e5203d9456aa7185a19b2be5d4af37909fecf63a6f2016c1bf8413360208201526001600160a01b038087169282019290925290841660608201526080810183905260a081018290525f906107729060c001604051602081830303815290604052805190602001206122f4565b61169c61233b565b6116c960017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005b90612394565b565b6116d8838383600161239b565b610760576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610c42565b6116c95f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f006116c3565b5f73679ab223dab158ea93e1a4f49104de436c58eab890505f816001600160a01b0316632f77a1c16040518163ffffffff1660e01b8152600401602060405180830381865afa158015611798573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117bc9190612e3b565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117f7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061181b9190612e3b565b90506001600160a01b03811673d7f91c1c6e6e651ec3f1fd707af7cbb7526206e114611898576040517fdfdb61b700000000000000000000000000000000000000000000000000000000815273d7f91c1c6e6e651ec3f1fd707af7cbb7526206e160048201526001600160a01b0382166024820152604401610c42565b5f826001600160a01b0316632c9b7f406040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118f99190612e3b565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611934573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119589190612e3b565b90506001600160a01b038116732df5cfe6d688ef9ff1b7c59a499d254b1527b28614610760576040517f3e4077b3000000000000000000000000000000000000000000000000000000008152732df5cfe6d688ef9ff1b7c59a499d254b1527b28660048201526001600160a01b0382166024820152604401610c42565b6119e3848484846001612416565b61070e576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610c42565b5f808490505f816001600160a01b031663e1e6b8986040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a66573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a8a9190612e3b565b90507f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be7005f015f876001600160a01b03166001600160a01b031681526020019081526020015f205492505f826001600160a01b031663f5d214f56040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b10573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b349190612ea2565b90505b8515611d125780841115611b89576040517f66a21a2d0000000000000000000000000000000000000000000000000000000081526001600160a01b038816600482015260248101879052604401610c42565b6040517efdd58e000000000000000000000000000000000000000000000000000000008152306004820152602481018590525f906001600160a01b0384169062fdd58e90604401602060405180830381865afa158015611beb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c0f9190612ea2565b9050805f03611c245750600190930192611b37565b5f818810611c325781611c34565b875b90505f856001600160a01b031663921a4c428330308b8d6040518663ffffffff1660e01b8152600401611c6b959493929190612f13565b6020604051808303815f875af1158015611c87573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cab9190612ea2565b9050818114611cf0576040517fbe40f1fc0000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610c42565b611cfa828a612f55565b9850828203611d0a576001909601955b505050611b37565b5050506001600160a01b03939093165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be700602052604090208390555090919050565b6001600160a01b0383165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be70160209081526040808320843584529091529020547f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be7009060ff1615611e08576040517f59c210430000000000000000000000000000000000000000000000000000000081526001600160a01b038516600482015282356024820152604401610c42565b6001600160a01b0384165f90815260018281016020908152604080842086358086529252909220805460ff19169091179055610972908590611e4f9088908390889061161e565b611e5c6020860186612f8d565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061249c92505050565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10280546060917fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10091611ee690612fee565b80601f0160208091040260200160405190810160405280929190818152602001828054611f1290612fee565b8015611f5d5780601f10611f3457610100808354040283529160200191611f5d565b820191905f5260205f20905b815481529060010190602001808311611f4057829003601f168201915b505050505091505090565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10380546060917fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10091611ee690612fee565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f481c6a750000000000000000000000000000000000000000000000000000000017905290515f9182916001600160a01b038616916120299161303f565b5f60405180830381855afa9150503d805f8114612061576040519150601f19603f3d011682016040523d82523d5f602084013e612066565b606091505b509150915081158061207a57508051602014155b156120855750505050565b5f61208f82613055565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe1e6b8980000000000000000000000000000000000000000000000000000000017905290519192506001600160a01b038316916120ff919061303f565b5f60405180830381855afa9150503d805f8114612137576040519150601f19603f3d011682016040523d82523d5f602084013e61213c565b606091505b50909350915082158061215157508151602014155b1561215d575050505050565b6001600160a01b03851661217083613055565b6001600160a01b031614612185575050505050565b6001600160a01b0381165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be700602081905260409091205480861015610cb3576001600160a01b0383165f818152602084815260409182902089905581518481529081018990527f2008c207f65bedc2bb65dc8ac34aee36a37cd43a50152d574107c63ace7e07c6910160405180910390a250505050505050565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006106c5565b6116c96125cb565b61225a6125cb565b6122648282612609565b5050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038516845290915290205460ff16612264576040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015260248101839052604401610c42565b5f6106c561230061266c565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c156116c9576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80825d5050565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f5114831661240a5783831516156123fe573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b6040517f23b872dd000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038781166004528616602452604485905291602083606481808c5af1925060015f5114831661248b57838315161561247f573d5f823e3d81fd5b5f883b113d1516831692505b604052505f60605295945050505050565b8051156124e4576124ae83838361267a565b610760576040517f19ab93cc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f642ddf3a0000000000000000000000000000000000000000000000000000000080825260048201849052906001600160a01b0385169063642ddf3a906024016020604051808303815f875af1158015612543573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125679190613078565b7fffffffff000000000000000000000000000000000000000000000000000000001614610760576040517f22b89c080000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610c42565b6125d36126ed565b6116c9576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6126116125cb565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1007fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10261265d84826130d7565b506003810161070e83826130d7565b5f61267561270b565b905090565b5f836001600160a01b03163b5f036126d8575f80612698858561277e565b5090925090505f8160038111156126b1576126b1613193565b1480156126cf5750856001600160a01b0316826001600160a01b0316145b925050506126e6565b6126e38484846127c7565b90505b9392505050565b5f6126f6612222565b5468010000000000000000900460ff16919050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f612735612831565b61273d612846565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f805f83516041036127b5576020840151604085015160608601515f1a6127a78882858561284f565b9550955095505050506127c0565b505081515f91506002905b9250925092565b8051604080517f1626ba7e000000000000000000000000000000000000000000000000000000008082526004820186905260248201929092525f92906020820185604483015e60205f60648401838a5afa9050825f5114601f3d1116811693505050509392505050565b5f61283a611e95565b80519060200120905090565b5f61283a611f68565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561288857505f9150600390508261290d565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa1580156128d9573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b03811661290457505f92506001915082905061290d565b92505f91508190505b9450945094915050565b7fffffffff00000000000000000000000000000000000000000000000000000000811681146114ab575f80fd5b5f60208284031215612954575f80fd5b81356126e681612917565b6001600160a01b03811681146114ab575f80fd5b5f8060408385031215612984575f80fd5b823561298f8161295f565b946020939093013593505050565b5f602082840312156129ad575f80fd5b5035919050565b5f80604083850312156129c5575f80fd5b8235915060208301356129d78161295f565b809150509250929050565b5f805f80608085870312156129f5575f80fd5b8435612a008161295f565b93506020850135612a108161295f565b93969395505050506040820135916060013590565b5f805f60608486031215612a37575f80fd5b8335612a428161295f565b9250602084013591506040840135612a598161295f565b809150509250925092565b5f8083601f840112612a74575f80fd5b50813567ffffffffffffffff811115612a8b575f80fd5b602083019150836020828501011115612aa2575f80fd5b9250929050565b5f805f8060608587031215612abc575f80fd5b8435612ac78161295f565b935060208501359250604085013567ffffffffffffffff811115612ae9575f80fd5b612af587828801612a64565b95989497509550505050565b5f805f8060808587031215612b14575f80fd5b8435612b1f8161295f565b935060208501359250604085013591506060850135612b3d8161295f565b939692955090935050565b5f805f805f8060a08789031215612b5d575f80fd5b8635612b688161295f565b95506020870135612b788161295f565b945060408701359350606087013567ffffffffffffffff80821115612b9b575f80fd5b908801906040828b031215612bae575f80fd5b90935060808801359080821115612bc3575f80fd5b50612bd089828a01612a64565b979a9699509497509295939492505050565b5f60208284031215612bf2575f80fd5b81356126e68161295f565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b7fff00000000000000000000000000000000000000000000000000000000000000881681525f602060e06020840152612c6760e084018a612bfd565b8381036040850152612c79818a612bfd565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825260208088019350909101905f5b81811015612ccc57835183529284019291840191600101612cb0565b50909c9b505050505050505050505050565b5f8083601f840112612cee575f80fd5b50813567ffffffffffffffff811115612d05575f80fd5b6020830191508360208260051b8501011115612aa2575f80fd5b5f805f805f805f8060a0898b031215612d36575f80fd5b8835612d418161295f565b97506020890135612d518161295f565b9650604089013567ffffffffffffffff80821115612d6d575f80fd5b612d798c838d01612cde565b909850965060608b0135915080821115612d91575f80fd5b612d9d8c838d01612cde565b909650945060808b0135915080821115612db5575f80fd5b50612dc28b828c01612a64565b999c989b5096995094979396929594505050565b5f805f805f8060a08789031215612deb575f80fd5b8635612df68161295f565b95506020870135612e068161295f565b94506040870135935060608701359250608087013567ffffffffffffffff811115612e2f575f80fd5b612bd089828a01612a64565b5f60208284031215612e4b575f80fd5b81516126e68161295f565b8581526001600160a01b038516602082015283604082015260806060820152816080820152818360a08301375f81830160a090810191909152601f909201601f19160101949350505050565b5f60208284031215612eb2575f80fd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b8581525f6001600160a01b03808716602084015280861660408401525083606083015260a06080830152612f4a60a0830184612bfd565b979650505050505050565b818103818111156106c5577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612fc0575f80fd5b83018035915067ffffffffffffffff821115612fda575f80fd5b602001915036819003821315612aa2575f80fd5b600181811c9082168061300257607f821691505b602082108103613039577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b5f82518060208501845e5f920191825250919050565b80516020808301519190811015613039575f1960209190910360031b1b16919050565b5f60208284031215613088575f80fd5b81516126e681612917565b601f82111561076057805f5260205f20601f840160051c810160208510156130b85750805b601f840160051c820191505b81811015610972575f81556001016130c4565b815167ffffffffffffffff8111156130f1576130f1612eb9565b613105816130ff8454612fee565b84613093565b602080601f831160018114613138575f84156131215750858301515b5f19600386901b1c1916600185901b17855561127b565b5f85815260208120601f198616915b8281101561316657888601518255948401946001909101908401613147565b508582101561318357878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd"; diff --git a/src/generated/0_1_3/ST0xOrchestratorBeaconSetDeployer.pointers.sol b/src/generated/0_1_3/ST0xOrchestratorBeaconSetDeployer.pointers.sol deleted file mode 100644 index 53ee4a14..00000000 --- a/src/generated/0_1_3/ST0xOrchestratorBeaconSetDeployer.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x2149474f3f4539b44296101ca3ffafb1ebd7f212b90b5fc9d8d28a4d010ca4eb); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0xBff92564aeffe44C85A9153B9f2dB13e47A22435); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"60a0604052348015600e575f80fd5b507299fcb947cc31e21c631478a2a9e2e591cd4010738e4bdeec7ceb9570d440676345da1dce10329f5b6040516042906082565b6001600160a01b03928316815291166020820152604001604051809103905ff0801580156071573d5f803e3d5ffd5b506001600160a01b0316608052608f565b6104f7806109cf83390190565b6080516109226100ad5f395f81816070015261025201526109225ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c806301ffc9a714610043578063429b15441461006b5780634c96a389146100b7575b5f80fd5b610056610051366004610309565b6100ca565b60405190151581526020015b60405180910390f35b6100927f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610062565b6100926100c536600461034f565b610162565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f4c96a38900000000000000000000000000000000000000000000000000000000148061015c57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82166101b0576040517f9905827b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405173ffffffffffffffffffffffffffffffffffffffff831660248201525f90604401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc4d66de800000000000000000000000000000000000000000000000000000000179052519091505f907f000000000000000000000000000000000000000000000000000000000000000090839061027d906102fc565b610288929190610382565b604051809103905ff0801580156102a1573d5f803e3d5ffd5b5060405173ffffffffffffffffffffffffffffffffffffffff86811682529192509082169033907fa0d99d93cf7a5f89661fa0829369a7e4896e755871efe65440bab2429387d55b9060200160405180910390a39392505050565b61052f806103f383390190565b5f60208284031215610319575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610348575f80fd5b9392505050565b5f6020828403121561035f575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610348575f80fd5b73ffffffffffffffffffffffffffffffffffffffff83168152604060208201525f82518060408401528060208501606085015e5f6060828501015260607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f830116840101915050939250505056fe60a060405260405161052f38038061052f83398101604081905261002291610331565b61002c828261003e565b506001600160a01b031660805261040d565b610047826100fb565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a28051156100ef576100ea826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e491906103ed565b82610209565b505050565b6100f76102aa565b5050565b806001600160a01b03163b5f0361013557604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b815290515f92841691635c60da1b9160048083019260209291908290030181865afa1580156101ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d291906103ed565b9050806001600160a01b03163b5f036100f757604051634c9c8ce360e01b81526001600160a01b038216600482015260240161012c565b60605f61021684846102cb565b905080801561023757505f3d118061023757505f846001600160a01b03163b115b1561024c576102446102de565b9150506102a4565b801561027657604051639996b31560e01b81526001600160a01b038516600482015260240161012c565b3d15610289576102846102f7565b6102a2565b60405163d6bda27560e01b815260040160405180910390fd5b505b92915050565b34156102c95760405163b398979f60e01b815260040160405180910390fd5b565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b6040513d5f823e3d81fd5b80516001600160a01b0381168114610318575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215610342575f80fd5b61034b83610302565b60208401519092506001600160401b0380821115610367575f80fd5b818501915085601f83011261037a575f80fd5b81518181111561038c5761038c61031d565b604051601f8201601f19908116603f011681019083821181831017156103b4576103b461031d565b816040528281528860208487010111156103cc575f80fd5b8260208601602083015e5f6020848301015280955050505050509250929050565b5f602082840312156103fd575f80fd5b61040682610302565b9392505050565b60805161010b6104245f395f6023015261010b5ff3fe608060405261000c61000e565b005b61001e610019610020565b6100b3565b565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561008a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100ae91906100d1565b905090565b365f80375f80365f845af43d5f803e8080156100cd573d5ff35b3d5ffd5b5f602082840312156100e1575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610104575f80fd5b939250505056608060405234801561000f575f80fd5b506040516104f73803806104f783398101604081905261002e9161015f565b806001600160a01b03811661005d57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b61006681610077565b50610070826100c6565b5050610190565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b806001600160a01b03163b5f036100fb5760405163211eb15960e21b81526001600160a01b0382166004820152602401610054565b600180546001600160a01b0319166001600160a01b0383169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b80516001600160a01b038116811461015a575f80fd5b919050565b5f8060408385031215610170575f80fd5b61017983610144565b915061018760208401610144565b90509250929050565b61035a8061019d5f395ff3fe608060405234801561000f575f80fd5b5060043610610064575f3560e01c8063715018a61161004d578063715018a6146100c05780638da5cb5b146100c8578063f2fde38b146100e5575f80fd5b80633659cfe6146100685780635c60da1b1461007d575b5f80fd5b61007b610076366004610320565b6100f8565b005b60015473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61007b61010c565b5f5473ffffffffffffffffffffffffffffffffffffffff16610097565b61007b6100f3366004610320565b61011f565b610100610184565b610109816101d6565b50565b610114610184565b61011d5f6102ac565b565b610127610184565b73ffffffffffffffffffffffffffffffffffffffff811661017b576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f60048201526024015b60405180910390fd5b610109816102ac565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461011d576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610172565b8073ffffffffffffffffffffffffffffffffffffffff163b5f0361023e576040517f847ac56400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602401610172565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f60208284031215610330575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610353575f80fd5b939250505056"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b506004361061003f575f3560e01c806301ffc9a714610043578063429b15441461006b5780634c96a389146100b7575b5f80fd5b610056610051366004610309565b6100ca565b60405190151581526020015b60405180910390f35b6100927f000000000000000000000000ba0d89f6e84a201cd2c720a91911fdadbbb2ad4881565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610062565b6100926100c536600461034f565b610162565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f4c96a38900000000000000000000000000000000000000000000000000000000148061015c57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82166101b0576040517f9905827b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405173ffffffffffffffffffffffffffffffffffffffff831660248201525f90604401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc4d66de800000000000000000000000000000000000000000000000000000000179052519091505f907f000000000000000000000000ba0d89f6e84a201cd2c720a91911fdadbbb2ad4890839061027d906102fc565b610288929190610382565b604051809103905ff0801580156102a1573d5f803e3d5ffd5b5060405173ffffffffffffffffffffffffffffffffffffffff86811682529192509082169033907fa0d99d93cf7a5f89661fa0829369a7e4896e755871efe65440bab2429387d55b9060200160405180910390a39392505050565b61052f806103f383390190565b5f60208284031215610319575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610348575f80fd5b9392505050565b5f6020828403121561035f575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610348575f80fd5b73ffffffffffffffffffffffffffffffffffffffff83168152604060208201525f82518060408401528060208501606085015e5f6060828501015260607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f830116840101915050939250505056fe60a060405260405161052f38038061052f83398101604081905261002291610331565b61002c828261003e565b506001600160a01b031660805261040d565b610047826100fb565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a28051156100ef576100ea826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e491906103ed565b82610209565b505050565b6100f76102aa565b5050565b806001600160a01b03163b5f0361013557604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b815290515f92841691635c60da1b9160048083019260209291908290030181865afa1580156101ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d291906103ed565b9050806001600160a01b03163b5f036100f757604051634c9c8ce360e01b81526001600160a01b038216600482015260240161012c565b60605f61021684846102cb565b905080801561023757505f3d118061023757505f846001600160a01b03163b115b1561024c576102446102de565b9150506102a4565b801561027657604051639996b31560e01b81526001600160a01b038516600482015260240161012c565b3d15610289576102846102f7565b6102a2565b60405163d6bda27560e01b815260040160405180910390fd5b505b92915050565b34156102c95760405163b398979f60e01b815260040160405180910390fd5b565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b6040513d5f823e3d81fd5b80516001600160a01b0381168114610318575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215610342575f80fd5b61034b83610302565b60208401519092506001600160401b0380821115610367575f80fd5b818501915085601f83011261037a575f80fd5b81518181111561038c5761038c61031d565b604051601f8201601f19908116603f011681019083821181831017156103b4576103b461031d565b816040528281528860208487010111156103cc575f80fd5b8260208601602083015e5f6020848301015280955050505050509250929050565b5f602082840312156103fd575f80fd5b61040682610302565b9392505050565b60805161010b6104245f395f6023015261010b5ff3fe608060405261000c61000e565b005b61001e610019610020565b6100b3565b565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561008a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100ae91906100d1565b905090565b365f80375f80365f845af43d5f803e8080156100cd573d5ff35b3d5ffd5b5f602082840312156100e1575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610104575f80fd5b939250505056"; diff --git a/src/generated/0_1_3/StoxCorporateActionsFacet.pointers.sol b/src/generated/0_1_3/StoxCorporateActionsFacet.pointers.sol deleted file mode 100644 index aef0d95d..00000000 --- a/src/generated/0_1_3/StoxCorporateActionsFacet.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0xd91520075de1eb2e8fdf042fde3475ee89feb3942306e5d6d5c710273fefc080); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0xB7e24412126ad6A2Ce19cbd79FD11B68e7F30cf6); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"60a0604052348015600e575f80fd5b503060805260805161268d6100635f395f81816101970152818161031b0152818161038901528181610466015281816104c90152818161053b0152818161070301528181610767015261089e015261268d5ff3fe608060405234801561000f575f80fd5b506004361061009f575f3560e01c806379ba430511610072578063bb7bb45a11610058578063bb7bb45a14610151578063dad601be14610159578063e388df491461016c575f80fd5b806379ba43051461011e578063b21a249414610131575f80fd5b80630d1e0432146100a35780631cb5642f146100be578063358116b9146100f65780634e6c280e1461010b575b5f80fd5b6100ab61017f565b6040519081526020015b60405180910390f35b6100d16100cc366004612126565b610301565b60408051938452602084019290925267ffffffffffffffff16908201526060016100b5565b610109610104366004612150565b610372565b005b6100d1610119366004612126565b61044c565b6100d161012c366004612167565b6104af565b61014461013f366004612150565b610522565b6040516100b591906121c7565b6100ab6106eb565b6100ab6101673660046121d9565b61074f565b6100d161017a366004612167565b610884565b5f73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036101d6576040516309e815f560e01b815260040160405180910390fd5b5f6101df6108e8565b905060015f6101f15f19600384610967565b90505b5f1981146102fa57600283600201828154811061021357610213612261565b905f5260205f2090600502015f0154036102e6576102e3826102de85600201848154811061024357610243612261565b905f5260205f209060050201600401805461025d90612275565b80601f016020809104026020016040519081016040528092919081815260200182805461028990612275565b80156102d45780601f106102ab576101008083540402835291602001916102d4565b820191905f5260205f20905b8154815290600101906020018083116102b757829003601f168201915b5050505050610a6e565b610a89565b91505b6102f38160036001610967565b90506101f4565b5091505090565b5f808073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016300361035a576040516309e815f560e01b815260040160405180910390fd5b6103648585610aeb565b9250925092505b9250925092565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036103c8576040516309e815f560e01b815260040160405180910390fd5b610414337f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e78360405160200161040091815260200190565b604051602081830303815290604052610b19565b61041d81610c13565b604051819033907f94041431cee1a4c20be97117d396e73eb1e601e124b48fbc5dc07397c31d5f8a905f90a350565b5f808073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036104a5576040516309e815f560e01b815260040160405180910390fd5b6103648585610df0565b5f808073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610508576040516309e815f560e01b815260040160405180910390fd5b610513868686610e00565b92509250925093509350939050565b606073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016300361057a576040516309e815f560e01b815260040160405180910390fd5b5f6105836108e8565b600281015490915083106105cb576040517f029c6c35000000000000000000000000000000000000000000000000000000008152600481018490526024015b60405180910390fd5b8060020183815481106105e0576105e0612261565b5f918252602082206001600590920201015467ffffffffffffffff169003610637576040517f029c6c35000000000000000000000000000000000000000000000000000000008152600481018490526024016105c2565b80600201838154811061064c5761064c612261565b905f5260205f209060050201600401805461066690612275565b80601f016020809104026020016040519081016040528092919081815260200182805461069290612275565b80156106dd5780601f106106b4576101008083540402835291602001916106dd565b820191905f5260205f20905b8154815290600101906020018083116106c057829003601f168201915b50505050509150505b919050565b5f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610742576040516309e815f560e01b815260040160405180910390fd5b61074a610e2e565b905090565b5f73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036107a6576040516309e815f560e01b815260040160405180910390fd5b6107e2337ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f898787878760405160200161040094939291906122a7565b5f6107ee868585610e82565b90505f610831828787878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610f2d92505050565b6040805184815267ffffffffffffffff89166020820152919250829133917fa9c7784142e419f4660627c0c145b3873c2a415ce062f5c81bc19e6850f873d8910160405180910390a39695505050505050565b5f808073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036108dd576040516309e815f560e01b815260040160405180910390fd5b610513868686611047565b5f807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0061093660017f2f8f8ecf1b7a1a3ceda8d15a9a2247a2377b3434535a87f1728021c13fec2e71612301565b60405160200161094891815260200190565b60408051601f1981840301815291905280516020909101201692915050565b5f6007831681036109a4576040517fbf3cad0b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6109ad6108e8565b60028101549091505f036109c5575f19915050610a67565b5f5f1986146109f8578160020186815481106109e3576109e3612261565b905f5260205f209060050201600301546109fb565b81545b90506002846002811115610a1157610a11612314565b03610a3357610a2a82610a248484611056565b876110d1565b92505050610a67565b6001846002811115610a4757610a47612314565b03610a5757610a2a828287611129565b610a628282876110d1565b925050505b9392505050565b5f81806020019051810190610a839190612328565b92915050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d8480610ace86868686611196565b915091505f610add83836112b5565b9a9950505050505050505050565b5f805f80610afb5f19878761131b565b90505f80610b0883611410565b939650945091925050509250925092565b5f3073ffffffffffffffffffffffffffffffffffffffff1663d09edf316040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b63573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b87919061233f565b6040517f59f89dda00000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff8216906359f89dda90610be090879087908790600401612372565b5f604051808303815f87803b158015610bf7575f80fd5b505af1158015610c09573d5f803e3d5ffd5b5050505050505050565b5f610c1c6108e8565b60028101549091508210610c5f576040517f029c6c35000000000000000000000000000000000000000000000000000000008152600481018390526024016105c2565b5f816002018381548110610c7557610c75612261565b5f9182526020822060016005909202019081015490925067ffffffffffffffff169003610cd1576040517f029c6c35000000000000000000000000000000000000000000000000000000008152600481018490526024016105c2565b60018101544267ffffffffffffffff90911611610d1d576040517f99fa8c69000000000000000000000000000000000000000000000000000000008152600481018490526024016105c2565b600281015460038201545f198214610d5d5780846002018381548110610d4557610d45612261565b905f5260205f20906005020160030181905550610d61565b8084555b5f198114610d975781846002018281548110610d7f57610d7f612261565b905f5260205f20906005020160020181905550610d9f565b600184018290555b5f196002840181905560038401556001830180547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001690555f808455610de99060048501906120ca565b5050505050565b5f805f80610afb5f198787610967565b5f805f80610e0f878787610967565b90505f80610e1c83611410565b939a9099509297509195505050505050565b5f610e376108e8565b600201545f03610e4657505f90565b60065f80610e575f19846001610967565b90505b5f1981146102fa5781610e6c816123a6565b925050610e7b81846001610967565b9050610e5a565b5f7f4548e57ae2f1604df75a3d17fecaff7dd11ad7a93d9f8a0dc05e7144f46f3f7c8403610ef857610ef0610eeb84848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610a6e92505050565b61146e565b506002610a67565b6040517ff17c1d46000000000000000000000000000000000000000000000000000000008152600481018590526024016105c2565b5f428367ffffffffffffffff1611610f83576040517fc0851c8a00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff841660048201524260248201526044016105c2565b5f610f8c6108e8565b9050610f978161156e565b60028101805460019081018083555f928352610fb39190612301565b90505f826002018281548110610fcb57610fcb612261565b5f91825260209091206005909102018781556001810180547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff8916179055905060048101611023868261241b565b505f1960028201819055600382015561103d838388611617565b5095945050505050565b5f805f80610e0f87878761131b565b5f5b5f19821415801561109a57504283600201838154811061107a5761107a612261565b5f91825260209091206001600590920201015467ffffffffffffffff1611155b156110cb578260020182815481106110b4576110b4612261565b905f5260205f209060050201600301549150611058565b50919050565b5f5b5f19831461111f575f8460020184815481106110f1576110f1612261565b905f5260205f209060050201905082815f0154165f146111145783915050610a67565b6003015492506110d3565b505f199392505050565b5f5b5f19831461111f575f84600201848154811061114957611149612261565b5f918252602090912060059091020160018101549091504267ffffffffffffffff9091161115611179575061111f565b805483161561118b5783915050610a67565b60030154925061112b565b5f80851584151780156111ae575f92505f91506112ab565b6111b884876124d7565b91505f6111c488611761565b90505f6111d087611761565b90505f6111dd83836117c2565b5090505f6f0785ee10d5da46d900f436a000000000821115611212576f0785ee10d5da46d900f436a000000000820491506025015b670de0b6b3a764000082111561123357670de0b6b3a7640000820491506012015b633b9aca0082111561124c57633b9aca00820491506009015b61271082111561126157612710820491506004015b811561127557600a82049150600101611261565b61127f81876124d7565b95506112a18b8a61129b878761129687600a6125f2565b6117de565b896118c3565b9097509550505050505b5094509492505050565b5f805f6112c285856119cf565b91509150801580156112d2575081155b15611313576040517f8eba4d0700000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016105c2565b509392505050565b5f600783168103611358576040517fbf3cad0b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6113616108e8565b60028101549091505f03611379575f19915050610a67565b5f5f1986146113ac5781600201868154811061139757611397612261565b905f5260205f209060050201600201546113b2565b81600101545b905060018460028111156113c8576113c8612314565b036113e157610a2a826113db8484611ad6565b87611b4a565b60028460028111156113f5576113f5612314565b0361140557610a2a828287611b98565b610a62828287611b4a565b5f805f19830361142457505f928392509050565b5f61142d6108e8565b600201848154811061144157611441612261565b5f91825260209091206005909102018054600190910154909567ffffffffffffffff909116945092505050565b611478815f611c04565b156114af576040517f018d151200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6114b930611c54565b90505f6114c7600183611cfe565b90506114d38382611d22565b1561150d576040517f06c32712000000000000000000000000000000000000000000000000000000008152600481018490526024016105c2565b5f61152261151c84600a6125fd565b5f611cfe565b905061152e8482611d71565b15611568576040517fd24a8af1000000000000000000000000000000000000000000000000000000008152600481018590526024016105c2565b50505050565b60028101541561157b5750565b6002810180546001018082555f8281529190829061159b5761159b612261565b5f9182526020909120600160059092020181815590810180547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff161790555f1960028201819055600382015590506115fc611dc0565b5f808052600484016020526040902055505f19600590910155565b5f83600201838154811061162d5761162d612261565b905f5260205f20906005020190505f846001015490505b5f198114610de9578267ffffffffffffffff1685600201828154811061166c5761166c612261565b5f91825260209091206001600590920201015467ffffffffffffffff1611611735575f8560020182815481106116a4576116a4612261565b905f5260205f209060050201600301549050848660020183815481106116cc576116cc612261565b5f918252602090912060036005909202018101919091556002840183905583018190555f198114611725578486600201828154811061170d5761170d612261565b905f5260205f2090600502016002018190555061172d565b600186018590555b505050505050565b84600201818154811061174a5761174a612261565b905f5260205f209060050201600201549050611644565b5f808212156117be577f800000000000000000000000000000000000000000000000000000000000000082036117b857507f8000000000000000000000000000000000000000000000000000000000000000919050565b505f0390565b5090565b5f805f1983850993909202808410938190039390930393915050565b5f805f6117eb86866117c2565b91509150815f0361180f57838181611805576118056124fe565b0492505050610a67565b838210611859576040517f6c59da120000000000000000000000000000000000000000000000000000000081526004810187905260248101869052604481018590526064016105c2565b5f84868809600186198101871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103025f82900382900490920185841190960395909502919093039390930492909217029150509392505050565b5f805f858718121561198d577f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84111561197a576119227f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600161260b565b840361195257507f80000000000000000000000000000000000000000000000000000000000000009050816119c6565b61195d600a8561261e565b6119669061263d565b6119718460016124d7565b915091506119c6565b6119838461263d565b83915091506119c6565b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8411156119c057611966600a8561261e565b50829050815b94509492505050565b5f601b83900b8314838382611a33577d90e40fbeea1d3a4abc8955e946fe31cdcf66f634e1000000000000000000860515611a1357620186a0860595506005850194505b8586601b0b14611a2e57600a86059550846001019450611a13565b611a49565b855f03611a4957505f925060019150611acf9050565b848560030b14611aa5575f851215611a6957505f9250829150611acf9050565b6040517fd556b11100000000000000000000000000000000000000000000000000000000815260048101839052602481018290526044016105c2565b50507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841660e084901b1791505b9250929050565b5f5b5f198214158015611b19575042836002018381548110611afa57611afa612261565b5f91825260209091206001600590920201015467ffffffffffffffff16115b156110cb57826002018281548110611b3357611b33612261565b905f5260205f209060050201600201549150611ad8565b5f5b5f19831461111f575f846002018481548110611b6a57611b6a612261565b905f5260205f209060050201905082815f0154165f14611b8d5783915050610a67565b600201549250611b4c565b5f5b5f19831461111f575f846002018481548110611bb857611bb8612261565b5f918252602090912060059091020160018101549091504267ffffffffffffffff90911611611be7575061111f565b8054831615611bf95783915050610a67565b600201549250611b9a565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d611c4784848484611e43565b1215979650505050505050565b5f611c5d611f17565b6040517f54636d2b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316600482015273200e12d10bb0c5e4a17e7018f0f1161919bb9389906354636d2b906024016020604051808303815f875af1158015611cda573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a83919061266d565b5f805f611d0b8585611fbd565b91509150611d19828261201f565b95945050505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d611d6584848484611e43565b13979650505050505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d611db484848484611e43565b12979650505050505050565b5f807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00611e0e60017fb750591399365444a618527b69a54ce09476c8bde1ecff60f5aa1fe2b52605ff612301565b604051602001611e2091815260200190565b60408051808303601f190181529190528051602090910120166002015492915050565b5f8085158415178187128286121817858414178015611e6857868592509250506119c6565b505f85841315611e7c575092949193919260015b8386035f8112604c8213178015611eaf578215611ea1575f89945094505050506119c6565b885f945094505050506119c6565b600a82900a8981028a828281611ec757611ec76124fe565b0514611ef3578415611ee3575f8b9650965050505050506119c6565b8a5f9650965050505050506119c6565b8415611f085788965094506119c69350505050565b95508794506119c69350505050565b73200e12d10bb0c5e4a17e7018f0f1161919bb93893b1580611f6e575073200e12d10bb0c5e4a17e7018f0f1161919bb93893f7f1de7d717526cba131d684e312dedbf0852adef9cced9e36798ae4937f7145d4114155b15611fbb576040517f73e6d7b300000000000000000000000000000000000000000000000000000000815273200e12d10bb0c5e4a17e7018f0f1161919bb938960048201526024016105c2565b565b5f805f805f611fcc8787612071565b92509250925080612013576040517fc471796600000000000000000000000000000000000000000000000000000000815260048101849052602481018390526044016105c2565b50909590945092505050565b5f805f61202c85856119cf565b9150915080611313576040517f22c9f7bb00000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016105c2565b5f808060ff841681037f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8611156120bc57600a860460018201600a88065f149350935093505061036b565b85935091506001905061036b565b5080546120d690612275565b5f825580601f106120e5575050565b601f0160209004905f5260205f20908101906121019190612104565b50565b5b808211156117be575f8155600101612105565b8035600381106106e6575f80fd5b5f8060408385031215612137575f80fd5b8235915061214760208401612118565b90509250929050565b5f60208284031215612160575f80fd5b5035919050565b5f805f60608486031215612179575f80fd5b833592506020840135915061219060408501612118565b90509250925092565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610a676020830184612199565b5f805f80606085870312156121ec575f80fd5b84359350602085013567ffffffffffffffff808216821461220b575f80fd5b90935060408601359080821115612220575f80fd5b818701915087601f830112612233575f80fd5b813581811115612241575f80fd5b886020828501011115612252575f80fd5b95989497505060200194505050565b634e487b7160e01b5f52603260045260245ffd5b600181811c9082168061228957607f821691505b6020821081036110cb57634e487b7160e01b5f52602260045260245ffd5b84815267ffffffffffffffff8416602082015260606040820152816060820152818360808301375f818301608090810191909152601f909201601f191601019392505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610a8357610a836122ed565b634e487b7160e01b5f52602160045260245ffd5b5f60208284031215612338575f80fd5b5051919050565b5f6020828403121561234f575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610a67575f80fd5b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f611d196060830184612199565b5f5f1982036123b7576123b76122ed565b5060010190565b634e487b7160e01b5f52604160045260245ffd5b601f82111561241657805f5260205f20601f840160051c810160208510156123f75750805b601f840160051c820191505b81811015610de9575f8155600101612403565b505050565b815167ffffffffffffffff811115612435576124356123be565b612449816124438454612275565b846123d2565b602080601f83116001811461247c575f84156124655750858301515b5f19600386901b1c1916600185901b17855561172d565b5f85815260208120601f198616915b828110156124aa5788860151825594840194600190910190840161248b565b50858210156124c757878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b8082018281125f8312801582168215821617156124f6576124f66122ed565b505092915050565b634e487b7160e01b5f52601260045260245ffd5b600181815b8085111561254c57815f1904821115612532576125326122ed565b8085161561253f57918102915b93841c9390800290612517565b509250929050565b5f8261256257506001610a83565b8161256e57505f610a83565b8160018114612584576002811461258e576125aa565b6001915050610a83565b60ff84111561259f5761259f6122ed565b50506001821b610a83565b5060208310610133831016604e8410600b84101617156125cd575081810a610a83565b6125d78383612512565b805f19048211156125ea576125ea6122ed565b029392505050565b5f610a678383612554565b5f610a6760ff841683612554565b80820180821115610a8357610a836122ed565b5f8261263857634e487b7160e01b5f52601260045260245ffd5b500490565b5f7f800000000000000000000000000000000000000000000000000000000000000082036117b8576117b86122ed565b5f6020828403121561267d575f80fd5b815160ff81168114610a67575f80fd"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b506004361061009f575f3560e01c806379ba430511610072578063bb7bb45a11610058578063bb7bb45a14610151578063dad601be14610159578063e388df491461016c575f80fd5b806379ba43051461011e578063b21a249414610131575f80fd5b80630d1e0432146100a35780631cb5642f146100be578063358116b9146100f65780634e6c280e1461010b575b5f80fd5b6100ab61017f565b6040519081526020015b60405180910390f35b6100d16100cc366004612126565b610301565b60408051938452602084019290925267ffffffffffffffff16908201526060016100b5565b610109610104366004612150565b610372565b005b6100d1610119366004612126565b61044c565b6100d161012c366004612167565b6104af565b61014461013f366004612150565b610522565b6040516100b591906121c7565b6100ab6106eb565b6100ab6101673660046121d9565b61074f565b6100d161017a366004612167565b610884565b5f73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf61630036101d6576040516309e815f560e01b815260040160405180910390fd5b5f6101df6108e8565b905060015f6101f15f19600384610967565b90505b5f1981146102fa57600283600201828154811061021357610213612261565b905f5260205f2090600502015f0154036102e6576102e3826102de85600201848154811061024357610243612261565b905f5260205f209060050201600401805461025d90612275565b80601f016020809104026020016040519081016040528092919081815260200182805461028990612275565b80156102d45780601f106102ab576101008083540402835291602001916102d4565b820191905f5260205f20905b8154815290600101906020018083116102b757829003601f168201915b5050505050610a6e565b610a89565b91505b6102f38160036001610967565b90506101f4565b5091505090565b5f808073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf616300361035a576040516309e815f560e01b815260040160405180910390fd5b6103648585610aeb565b9250925092505b9250925092565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf61630036103c8576040516309e815f560e01b815260040160405180910390fd5b610414337f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e78360405160200161040091815260200190565b604051602081830303815290604052610b19565b61041d81610c13565b604051819033907f94041431cee1a4c20be97117d396e73eb1e601e124b48fbc5dc07397c31d5f8a905f90a350565b5f808073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf61630036104a5576040516309e815f560e01b815260040160405180910390fd5b6103648585610df0565b5f808073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf6163003610508576040516309e815f560e01b815260040160405180910390fd5b610513868686610e00565b92509250925093509350939050565b606073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf616300361057a576040516309e815f560e01b815260040160405180910390fd5b5f6105836108e8565b600281015490915083106105cb576040517f029c6c35000000000000000000000000000000000000000000000000000000008152600481018490526024015b60405180910390fd5b8060020183815481106105e0576105e0612261565b5f918252602082206001600590920201015467ffffffffffffffff169003610637576040517f029c6c35000000000000000000000000000000000000000000000000000000008152600481018490526024016105c2565b80600201838154811061064c5761064c612261565b905f5260205f209060050201600401805461066690612275565b80601f016020809104026020016040519081016040528092919081815260200182805461069290612275565b80156106dd5780601f106106b4576101008083540402835291602001916106dd565b820191905f5260205f20905b8154815290600101906020018083116106c057829003601f168201915b50505050509150505b919050565b5f73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf6163003610742576040516309e815f560e01b815260040160405180910390fd5b61074a610e2e565b905090565b5f73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf61630036107a6576040516309e815f560e01b815260040160405180910390fd5b6107e2337ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f898787878760405160200161040094939291906122a7565b5f6107ee868585610e82565b90505f610831828787878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610f2d92505050565b6040805184815267ffffffffffffffff89166020820152919250829133917fa9c7784142e419f4660627c0c145b3873c2a415ce062f5c81bc19e6850f873d8910160405180910390a39695505050505050565b5f808073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf61630036108dd576040516309e815f560e01b815260040160405180910390fd5b610513868686611047565b5f807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0061093660017f2f8f8ecf1b7a1a3ceda8d15a9a2247a2377b3434535a87f1728021c13fec2e71612301565b60405160200161094891815260200190565b60408051601f1981840301815291905280516020909101201692915050565b5f6007831681036109a4576040517fbf3cad0b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6109ad6108e8565b60028101549091505f036109c5575f19915050610a67565b5f5f1986146109f8578160020186815481106109e3576109e3612261565b905f5260205f209060050201600301546109fb565b81545b90506002846002811115610a1157610a11612314565b03610a3357610a2a82610a248484611056565b876110d1565b92505050610a67565b6001846002811115610a4757610a47612314565b03610a5757610a2a828287611129565b610a628282876110d1565b925050505b9392505050565b5f81806020019051810190610a839190612328565b92915050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d8480610ace86868686611196565b915091505f610add83836112b5565b9a9950505050505050505050565b5f805f80610afb5f19878761131b565b90505f80610b0883611410565b939650945091925050509250925092565b5f3073ffffffffffffffffffffffffffffffffffffffff1663d09edf316040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b63573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b87919061233f565b6040517f59f89dda00000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff8216906359f89dda90610be090879087908790600401612372565b5f604051808303815f87803b158015610bf7575f80fd5b505af1158015610c09573d5f803e3d5ffd5b5050505050505050565b5f610c1c6108e8565b60028101549091508210610c5f576040517f029c6c35000000000000000000000000000000000000000000000000000000008152600481018390526024016105c2565b5f816002018381548110610c7557610c75612261565b5f9182526020822060016005909202019081015490925067ffffffffffffffff169003610cd1576040517f029c6c35000000000000000000000000000000000000000000000000000000008152600481018490526024016105c2565b60018101544267ffffffffffffffff90911611610d1d576040517f99fa8c69000000000000000000000000000000000000000000000000000000008152600481018490526024016105c2565b600281015460038201545f198214610d5d5780846002018381548110610d4557610d45612261565b905f5260205f20906005020160030181905550610d61565b8084555b5f198114610d975781846002018281548110610d7f57610d7f612261565b905f5260205f20906005020160020181905550610d9f565b600184018290555b5f196002840181905560038401556001830180547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001690555f808455610de99060048501906120ca565b5050505050565b5f805f80610afb5f198787610967565b5f805f80610e0f878787610967565b90505f80610e1c83611410565b939a9099509297509195505050505050565b5f610e376108e8565b600201545f03610e4657505f90565b60065f80610e575f19846001610967565b90505b5f1981146102fa5781610e6c816123a6565b925050610e7b81846001610967565b9050610e5a565b5f7f4548e57ae2f1604df75a3d17fecaff7dd11ad7a93d9f8a0dc05e7144f46f3f7c8403610ef857610ef0610eeb84848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610a6e92505050565b61146e565b506002610a67565b6040517ff17c1d46000000000000000000000000000000000000000000000000000000008152600481018590526024016105c2565b5f428367ffffffffffffffff1611610f83576040517fc0851c8a00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff841660048201524260248201526044016105c2565b5f610f8c6108e8565b9050610f978161156e565b60028101805460019081018083555f928352610fb39190612301565b90505f826002018281548110610fcb57610fcb612261565b5f91825260209091206005909102018781556001810180547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff8916179055905060048101611023868261241b565b505f1960028201819055600382015561103d838388611617565b5095945050505050565b5f805f80610e0f87878761131b565b5f5b5f19821415801561109a57504283600201838154811061107a5761107a612261565b5f91825260209091206001600590920201015467ffffffffffffffff1611155b156110cb578260020182815481106110b4576110b4612261565b905f5260205f209060050201600301549150611058565b50919050565b5f5b5f19831461111f575f8460020184815481106110f1576110f1612261565b905f5260205f209060050201905082815f0154165f146111145783915050610a67565b6003015492506110d3565b505f199392505050565b5f5b5f19831461111f575f84600201848154811061114957611149612261565b5f918252602090912060059091020160018101549091504267ffffffffffffffff9091161115611179575061111f565b805483161561118b5783915050610a67565b60030154925061112b565b5f80851584151780156111ae575f92505f91506112ab565b6111b884876124d7565b91505f6111c488611761565b90505f6111d087611761565b90505f6111dd83836117c2565b5090505f6f0785ee10d5da46d900f436a000000000821115611212576f0785ee10d5da46d900f436a000000000820491506025015b670de0b6b3a764000082111561123357670de0b6b3a7640000820491506012015b633b9aca0082111561124c57633b9aca00820491506009015b61271082111561126157612710820491506004015b811561127557600a82049150600101611261565b61127f81876124d7565b95506112a18b8a61129b878761129687600a6125f2565b6117de565b896118c3565b9097509550505050505b5094509492505050565b5f805f6112c285856119cf565b91509150801580156112d2575081155b15611313576040517f8eba4d0700000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016105c2565b509392505050565b5f600783168103611358576040517fbf3cad0b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6113616108e8565b60028101549091505f03611379575f19915050610a67565b5f5f1986146113ac5781600201868154811061139757611397612261565b905f5260205f209060050201600201546113b2565b81600101545b905060018460028111156113c8576113c8612314565b036113e157610a2a826113db8484611ad6565b87611b4a565b60028460028111156113f5576113f5612314565b0361140557610a2a828287611b98565b610a62828287611b4a565b5f805f19830361142457505f928392509050565b5f61142d6108e8565b600201848154811061144157611441612261565b5f91825260209091206005909102018054600190910154909567ffffffffffffffff909116945092505050565b611478815f611c04565b156114af576040517f018d151200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6114b930611c54565b90505f6114c7600183611cfe565b90506114d38382611d22565b1561150d576040517f06c32712000000000000000000000000000000000000000000000000000000008152600481018490526024016105c2565b5f61152261151c84600a6125fd565b5f611cfe565b905061152e8482611d71565b15611568576040517fd24a8af1000000000000000000000000000000000000000000000000000000008152600481018590526024016105c2565b50505050565b60028101541561157b5750565b6002810180546001018082555f8281529190829061159b5761159b612261565b5f9182526020909120600160059092020181815590810180547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff161790555f1960028201819055600382015590506115fc611dc0565b5f808052600484016020526040902055505f19600590910155565b5f83600201838154811061162d5761162d612261565b905f5260205f20906005020190505f846001015490505b5f198114610de9578267ffffffffffffffff1685600201828154811061166c5761166c612261565b5f91825260209091206001600590920201015467ffffffffffffffff1611611735575f8560020182815481106116a4576116a4612261565b905f5260205f209060050201600301549050848660020183815481106116cc576116cc612261565b5f918252602090912060036005909202018101919091556002840183905583018190555f198114611725578486600201828154811061170d5761170d612261565b905f5260205f2090600502016002018190555061172d565b600186018590555b505050505050565b84600201818154811061174a5761174a612261565b905f5260205f209060050201600201549050611644565b5f808212156117be577f800000000000000000000000000000000000000000000000000000000000000082036117b857507f8000000000000000000000000000000000000000000000000000000000000000919050565b505f0390565b5090565b5f805f1983850993909202808410938190039390930393915050565b5f805f6117eb86866117c2565b91509150815f0361180f57838181611805576118056124fe565b0492505050610a67565b838210611859576040517f6c59da120000000000000000000000000000000000000000000000000000000081526004810187905260248101869052604481018590526064016105c2565b5f84868809600186198101871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103025f82900382900490920185841190960395909502919093039390930492909217029150509392505050565b5f805f858718121561198d577f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84111561197a576119227f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600161260b565b840361195257507f80000000000000000000000000000000000000000000000000000000000000009050816119c6565b61195d600a8561261e565b6119669061263d565b6119718460016124d7565b915091506119c6565b6119838461263d565b83915091506119c6565b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8411156119c057611966600a8561261e565b50829050815b94509492505050565b5f601b83900b8314838382611a33577d90e40fbeea1d3a4abc8955e946fe31cdcf66f634e1000000000000000000860515611a1357620186a0860595506005850194505b8586601b0b14611a2e57600a86059550846001019450611a13565b611a49565b855f03611a4957505f925060019150611acf9050565b848560030b14611aa5575f851215611a6957505f9250829150611acf9050565b6040517fd556b11100000000000000000000000000000000000000000000000000000000815260048101839052602481018290526044016105c2565b50507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841660e084901b1791505b9250929050565b5f5b5f198214158015611b19575042836002018381548110611afa57611afa612261565b5f91825260209091206001600590920201015467ffffffffffffffff16115b156110cb57826002018281548110611b3357611b33612261565b905f5260205f209060050201600201549150611ad8565b5f5b5f19831461111f575f846002018481548110611b6a57611b6a612261565b905f5260205f209060050201905082815f0154165f14611b8d5783915050610a67565b600201549250611b4c565b5f5b5f19831461111f575f846002018481548110611bb857611bb8612261565b5f918252602090912060059091020160018101549091504267ffffffffffffffff90911611611be7575061111f565b8054831615611bf95783915050610a67565b600201549250611b9a565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d611c4784848484611e43565b1215979650505050505050565b5f611c5d611f17565b6040517f54636d2b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316600482015273200e12d10bb0c5e4a17e7018f0f1161919bb9389906354636d2b906024016020604051808303815f875af1158015611cda573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a83919061266d565b5f805f611d0b8585611fbd565b91509150611d19828261201f565b95945050505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d611d6584848484611e43565b13979650505050505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d611db484848484611e43565b12979650505050505050565b5f807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00611e0e60017fb750591399365444a618527b69a54ce09476c8bde1ecff60f5aa1fe2b52605ff612301565b604051602001611e2091815260200190565b60408051808303601f190181529190528051602090910120166002015492915050565b5f8085158415178187128286121817858414178015611e6857868592509250506119c6565b505f85841315611e7c575092949193919260015b8386035f8112604c8213178015611eaf578215611ea1575f89945094505050506119c6565b885f945094505050506119c6565b600a82900a8981028a828281611ec757611ec76124fe565b0514611ef3578415611ee3575f8b9650965050505050506119c6565b8a5f9650965050505050506119c6565b8415611f085788965094506119c69350505050565b95508794506119c69350505050565b73200e12d10bb0c5e4a17e7018f0f1161919bb93893b1580611f6e575073200e12d10bb0c5e4a17e7018f0f1161919bb93893f7f1de7d717526cba131d684e312dedbf0852adef9cced9e36798ae4937f7145d4114155b15611fbb576040517f73e6d7b300000000000000000000000000000000000000000000000000000000815273200e12d10bb0c5e4a17e7018f0f1161919bb938960048201526024016105c2565b565b5f805f805f611fcc8787612071565b92509250925080612013576040517fc471796600000000000000000000000000000000000000000000000000000000815260048101849052602481018390526044016105c2565b50909590945092505050565b5f805f61202c85856119cf565b9150915080611313576040517f22c9f7bb00000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016105c2565b5f808060ff841681037f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8611156120bc57600a860460018201600a88065f149350935093505061036b565b85935091506001905061036b565b5080546120d690612275565b5f825580601f106120e5575050565b601f0160209004905f5260205f20908101906121019190612104565b50565b5b808211156117be575f8155600101612105565b8035600381106106e6575f80fd5b5f8060408385031215612137575f80fd5b8235915061214760208401612118565b90509250929050565b5f60208284031215612160575f80fd5b5035919050565b5f805f60608486031215612179575f80fd5b833592506020840135915061219060408501612118565b90509250925092565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610a676020830184612199565b5f805f80606085870312156121ec575f80fd5b84359350602085013567ffffffffffffffff808216821461220b575f80fd5b90935060408601359080821115612220575f80fd5b818701915087601f830112612233575f80fd5b813581811115612241575f80fd5b886020828501011115612252575f80fd5b95989497505060200194505050565b634e487b7160e01b5f52603260045260245ffd5b600181811c9082168061228957607f821691505b6020821081036110cb57634e487b7160e01b5f52602260045260245ffd5b84815267ffffffffffffffff8416602082015260606040820152816060820152818360808301375f818301608090810191909152601f909201601f191601019392505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610a8357610a836122ed565b634e487b7160e01b5f52602160045260245ffd5b5f60208284031215612338575f80fd5b5051919050565b5f6020828403121561234f575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610a67575f80fd5b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f611d196060830184612199565b5f5f1982036123b7576123b76122ed565b5060010190565b634e487b7160e01b5f52604160045260245ffd5b601f82111561241657805f5260205f20601f840160051c810160208510156123f75750805b601f840160051c820191505b81811015610de9575f8155600101612403565b505050565b815167ffffffffffffffff811115612435576124356123be565b612449816124438454612275565b846123d2565b602080601f83116001811461247c575f84156124655750858301515b5f19600386901b1c1916600185901b17855561172d565b5f85815260208120601f198616915b828110156124aa5788860151825594840194600190910190840161248b565b50858210156124c757878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b8082018281125f8312801582168215821617156124f6576124f66122ed565b505092915050565b634e487b7160e01b5f52601260045260245ffd5b600181815b8085111561254c57815f1904821115612532576125326122ed565b8085161561253f57918102915b93841c9390800290612517565b509250929050565b5f8261256257506001610a83565b8161256e57505f610a83565b8160018114612584576002811461258e576125aa565b6001915050610a83565b60ff84111561259f5761259f6122ed565b50506001821b610a83565b5060208310610133831016604e8410600b84101617156125cd575081810a610a83565b6125d78383612512565b805f19048211156125ea576125ea6122ed565b029392505050565b5f610a678383612554565b5f610a6760ff841683612554565b80820180821115610a8357610a836122ed565b5f8261263857634e487b7160e01b5f52601260045260245ffd5b500490565b5f7f800000000000000000000000000000000000000000000000000000000000000082036117b8576117b86122ed565b5f6020828403121561267d575f80fd5b815160ff81168114610a67575f80fd"; diff --git a/src/generated/0_1_3/StoxOffchainAssetReceiptVaultAuthorizerV1.pointers.sol b/src/generated/0_1_3/StoxOffchainAssetReceiptVaultAuthorizerV1.pointers.sol deleted file mode 100644 index e161c73a..00000000 --- a/src/generated/0_1_3/StoxOffchainAssetReceiptVaultAuthorizerV1.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0xf8a1d9b2fa068bae3c1a607434db48364a5cdab3020bd7e315ed2662a3b35b5f); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x2EA0d35d0B1F57C42e6130f298930228bCbFDe9b); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"6080604052348015600e575f80fd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b611746806100d65f395ff3fe608060405234801561000f575f80fd5b506004361061009f575f3560e01c8063439fab911161007257806391d148541161005857806391d1485414610168578063a217fddf146101cc578063d547741f146101d3575f80fd5b8063439fab911461014257806359f89dda14610155575f80fd5b806301ffc9a7146100a3578063248a9ca3146100cb5780632f2ff15d1461011a57806336568abe1461012f575b5f80fd5b6100b66100b13660046112aa565b6101e6565b60405190151581526020015b60405180910390f35b61010c6100d93660046112f0565b5f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b6040519081526020016100c2565b61012d610128366004611328565b6102d9565b005b61012d61013d366004611328565b610322565b61010c610150366004611449565b610380565b61012d610163366004611483565b6106a0565b6100b6610176366004611328565b5f9182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b61010c5f81565b61012d6101e1366004611328565b610a49565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f59f89dda00000000000000000000000000000000000000000000000000000000148061027857507fffffffff0000000000000000000000000000000000000000000000000000000082167f439fab9100000000000000000000000000000000000000000000000000000000145b806102c457507fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000145b806102d357506102d382610a8c565b92915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015461031281610b22565b61031c8383610b2f565b50505050565b73ffffffffffffffffffffffffffffffffffffffff81163314610371576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61037b8282610c4d565b505050565b5f8061038a610d29565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156103b65750825b90505f8267ffffffffffffffff1660011480156103d25750303b155b9050811580156103e0575080155b15610417576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156104785784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b5f8780602001905181019061048d91906114d8565b90505f61049982610d51565b90507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc381146104cb5796506106359050565b6105157ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f897fd6075ca92e18a15ce0e8ecaaae57a112072844045d11beeb264aac5f85e0daf26110f9565b61053f7fd6075ca92e18a15ce0e8ecaaae57a112072844045d11beeb264aac5f85e0daf2806110f9565b6105897f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e77fe25ff801c3c463dad5f8999289b7b43090e0f6f5039ae7c220cbb762fe8ff3736110f9565b6105b37fe25ff801c3c463dad5f8999289b7b43090e0f6f5039ae7c220cbb762fe8ff373806110f9565b6105e07fd6075ca92e18a15ce0e8ecaaae57a112072844045d11beeb264aac5f85e0daf2835f0151610b2f565b5061060e7fe25ff801c3c463dad5f8999289b7b43090e0f6f5039ae7c220cbb762fe8ff373835f0151610b2f565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc3975050505b83156106965784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a8214806106ed57507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a4882145b156109b6575f805f7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a850361074d575f848060200190518101906107319190611536565b9050805f01519350806020015192508060600151915050610779565b5f84806020019051810190610762919061162b565b805160208201516080909201519095509093509150505b80156109ae5773ffffffffffffffffffffffffffffffffffffffff83161580156107e6575073ffffffffffffffffffffffffffffffffffffffff82165f9081527f96f78a99f93d631b75bc050854c9b764642c10564e41ed27c197a36ddabb1df9602052604090205460ff165b80610853575073ffffffffffffffffffffffffffffffffffffffff8216158015610853575073ffffffffffffffffffffffffffffffffffffffff83165f9081527f3907f76fa0fb1e5d0f263c5c4fe4316026052cf960c55a1c768106d8b9701c10602052604090205460ff165b1561086057505050505050565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a851480156108d2575073ffffffffffffffffffffffffffffffffffffffff86165f9081527f6ba48721fcbb2613af13d8285fe9ee4a081f7995464037bb5ea27397912881d2602052604090205460ff165b8061094a57507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a488514801561094a575073ffffffffffffffffffffffffffffffffffffffff86165f9081527f29e42896fa6edf5a5d7ff0bcd00acffbece6eb6cc7b44d0807bfd84929cc6e1b602052604090205460ff165b1561095757505050505050565b6040517ffe720f7800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8085166004830152831660248201526044015b60405180910390fd5b505050505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915290205460ff1615610a1157505050565b8282826040517f3ae4063b0000000000000000000000000000000000000000000000000000000081526004016109a5939291906116ed565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020526040902060010154610a8281610b22565b61031c8383610c4d565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806102d357507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146102d3565b610b2c813361119a565b50565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020818152604080842073ffffffffffffffffffffffffffffffffffffffff8616855290915282205460ff16610c44575f8481526020828152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610be03390565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506102d3565b5f9150506102d3565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020818152604080842073ffffffffffffffffffffffffffffffffffffffff8616855290915282205460ff1615610c44575f8481526020828152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506102d3565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006102d3565b5f610d5a611244565b815173ffffffffffffffffffffffffffffffffffffffff16610da8576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610df27f50a07cb25d0d864370863300b20987dfdae089abad71b607faf639d09d0533917f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b6110f9565b610e1c7f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b806110f9565b610e667f3dd35eca0ca8a128757fa464a5dfa4ad6cc4853cad96dce4e90fdbea4f0a52e37f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d6110f9565b610e907f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d806110f9565b610eda7f54f0af3716c79b30b8c228679d31d77a1a5f526c16af3262730e0a8de4363fed7fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c6110f9565b610f047fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c806110f9565b610f4e7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8217f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc026110f9565b610f787f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02806110f9565b610fc27f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e9828697fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d36110f9565b610fec7fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3806110f9565b6110197f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b835f0151610b2f565b506110477f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d835f0151610b2f565b506110757fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c835f0151610b2f565b506110a37f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02835f0151610b2f565b506110d17fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3835f0151610b2f565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc392915050565b7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268005f611152845f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b5f85815260208490526040808220600101869055519192508491839187917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a450505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16611240576040517fe2517d3f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602481018390526044016109a5565b5050565b61124c61124e565b565b61125661128c565b61124c576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f611295610d29565b5468010000000000000000900460ff16919050565b5f602082840312156112ba575f80fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146112e9575f80fd5b9392505050565b5f60208284031215611300575f80fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff81168114610b2c575f80fd5b5f8060408385031215611339575f80fd5b82359150602083013561134b81611307565b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60405160a0810167ffffffffffffffff811182821017156113a6576113a6611356565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156113d5576113d5611356565b604052919050565b5f82601f8301126113ec575f80fd5b813567ffffffffffffffff81111561140657611406611356565b6114196020601f19601f840116016113ac565b81815284602083860101111561142d575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60208284031215611459575f80fd5b813567ffffffffffffffff81111561146f575f80fd5b61147b848285016113dd565b949350505050565b5f805f60608486031215611495575f80fd5b83356114a081611307565b925060208401359150604084013567ffffffffffffffff8111156114c2575f80fd5b6114ce868287016113dd565b9150509250925092565b5f602082840312156114e8575f80fd5b6040516020810181811067ffffffffffffffff8211171561150b5761150b611356565b604052825161151981611307565b81529392505050565b80518015158114611531575f80fd5b919050565b5f60808284031215611546575f80fd5b6040516080810181811067ffffffffffffffff8211171561156957611569611356565b604052825161157781611307565b8152602083015161158781611307565b6020820152604083810151908201526115a260608401611522565b60608201529392505050565b5f82601f8301126115bd575f80fd5b8151602067ffffffffffffffff8211156115d9576115d9611356565b8160051b6115e88282016113ac565b9283528481018201928281019087851115611601575f80fd5b83870192505b8483101561162057825182529183019190830190611607565b979650505050505050565b5f6020828403121561163b575f80fd5b815167ffffffffffffffff80821115611652575f80fd5b9083019060a08286031215611665575f80fd5b61166d611383565b825161167881611307565b8152602083015161168881611307565b602082015260408301518281111561169e575f80fd5b6116aa878286016115ae565b6040830152506060830151828111156116c1575f80fd5b6116cd878286016115ae565b6060830152506116df60808401611522565b608082015295945050505050565b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f82518060608401528060208501608085015e5f608082850101526080601f19601f83011684010191505094935050505056"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b506004361061009f575f3560e01c8063439fab911161007257806391d148541161005857806391d1485414610168578063a217fddf146101cc578063d547741f146101d3575f80fd5b8063439fab911461014257806359f89dda14610155575f80fd5b806301ffc9a7146100a3578063248a9ca3146100cb5780632f2ff15d1461011a57806336568abe1461012f575b5f80fd5b6100b66100b13660046112aa565b6101e6565b60405190151581526020015b60405180910390f35b61010c6100d93660046112f0565b5f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b6040519081526020016100c2565b61012d610128366004611328565b6102d9565b005b61012d61013d366004611328565b610322565b61010c610150366004611449565b610380565b61012d610163366004611483565b6106a0565b6100b6610176366004611328565b5f9182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b61010c5f81565b61012d6101e1366004611328565b610a49565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f59f89dda00000000000000000000000000000000000000000000000000000000148061027857507fffffffff0000000000000000000000000000000000000000000000000000000082167f439fab9100000000000000000000000000000000000000000000000000000000145b806102c457507fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000145b806102d357506102d382610a8c565b92915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015461031281610b22565b61031c8383610b2f565b50505050565b73ffffffffffffffffffffffffffffffffffffffff81163314610371576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61037b8282610c4d565b505050565b5f8061038a610d29565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156103b65750825b90505f8267ffffffffffffffff1660011480156103d25750303b155b9050811580156103e0575080155b15610417576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156104785784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b5f8780602001905181019061048d91906114d8565b90505f61049982610d51565b90507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc381146104cb5796506106359050565b6105157ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f897fd6075ca92e18a15ce0e8ecaaae57a112072844045d11beeb264aac5f85e0daf26110f9565b61053f7fd6075ca92e18a15ce0e8ecaaae57a112072844045d11beeb264aac5f85e0daf2806110f9565b6105897f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e77fe25ff801c3c463dad5f8999289b7b43090e0f6f5039ae7c220cbb762fe8ff3736110f9565b6105b37fe25ff801c3c463dad5f8999289b7b43090e0f6f5039ae7c220cbb762fe8ff373806110f9565b6105e07fd6075ca92e18a15ce0e8ecaaae57a112072844045d11beeb264aac5f85e0daf2835f0151610b2f565b5061060e7fe25ff801c3c463dad5f8999289b7b43090e0f6f5039ae7c220cbb762fe8ff373835f0151610b2f565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc3975050505b83156106965784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a8214806106ed57507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a4882145b156109b6575f805f7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a850361074d575f848060200190518101906107319190611536565b9050805f01519350806020015192508060600151915050610779565b5f84806020019051810190610762919061162b565b805160208201516080909201519095509093509150505b80156109ae5773ffffffffffffffffffffffffffffffffffffffff83161580156107e6575073ffffffffffffffffffffffffffffffffffffffff82165f9081527f96f78a99f93d631b75bc050854c9b764642c10564e41ed27c197a36ddabb1df9602052604090205460ff165b80610853575073ffffffffffffffffffffffffffffffffffffffff8216158015610853575073ffffffffffffffffffffffffffffffffffffffff83165f9081527f3907f76fa0fb1e5d0f263c5c4fe4316026052cf960c55a1c768106d8b9701c10602052604090205460ff165b1561086057505050505050565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a851480156108d2575073ffffffffffffffffffffffffffffffffffffffff86165f9081527f6ba48721fcbb2613af13d8285fe9ee4a081f7995464037bb5ea27397912881d2602052604090205460ff165b8061094a57507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a488514801561094a575073ffffffffffffffffffffffffffffffffffffffff86165f9081527f29e42896fa6edf5a5d7ff0bcd00acffbece6eb6cc7b44d0807bfd84929cc6e1b602052604090205460ff165b1561095757505050505050565b6040517ffe720f7800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8085166004830152831660248201526044015b60405180910390fd5b505050505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915290205460ff1615610a1157505050565b8282826040517f3ae4063b0000000000000000000000000000000000000000000000000000000081526004016109a5939291906116ed565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020526040902060010154610a8281610b22565b61031c8383610c4d565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806102d357507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146102d3565b610b2c813361119a565b50565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020818152604080842073ffffffffffffffffffffffffffffffffffffffff8616855290915282205460ff16610c44575f8481526020828152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610be03390565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506102d3565b5f9150506102d3565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020818152604080842073ffffffffffffffffffffffffffffffffffffffff8616855290915282205460ff1615610c44575f8481526020828152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506102d3565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006102d3565b5f610d5a611244565b815173ffffffffffffffffffffffffffffffffffffffff16610da8576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610df27f50a07cb25d0d864370863300b20987dfdae089abad71b607faf639d09d0533917f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b6110f9565b610e1c7f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b806110f9565b610e667f3dd35eca0ca8a128757fa464a5dfa4ad6cc4853cad96dce4e90fdbea4f0a52e37f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d6110f9565b610e907f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d806110f9565b610eda7f54f0af3716c79b30b8c228679d31d77a1a5f526c16af3262730e0a8de4363fed7fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c6110f9565b610f047fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c806110f9565b610f4e7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8217f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc026110f9565b610f787f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02806110f9565b610fc27f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e9828697fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d36110f9565b610fec7fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3806110f9565b6110197f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b835f0151610b2f565b506110477f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d835f0151610b2f565b506110757fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c835f0151610b2f565b506110a37f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02835f0151610b2f565b506110d17fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3835f0151610b2f565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc392915050565b7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268005f611152845f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b5f85815260208490526040808220600101869055519192508491839187917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a450505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16611240576040517fe2517d3f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602481018390526044016109a5565b5050565b61124c61124e565b565b61125661128c565b61124c576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f611295610d29565b5468010000000000000000900460ff16919050565b5f602082840312156112ba575f80fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146112e9575f80fd5b9392505050565b5f60208284031215611300575f80fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff81168114610b2c575f80fd5b5f8060408385031215611339575f80fd5b82359150602083013561134b81611307565b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60405160a0810167ffffffffffffffff811182821017156113a6576113a6611356565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156113d5576113d5611356565b604052919050565b5f82601f8301126113ec575f80fd5b813567ffffffffffffffff81111561140657611406611356565b6114196020601f19601f840116016113ac565b81815284602083860101111561142d575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60208284031215611459575f80fd5b813567ffffffffffffffff81111561146f575f80fd5b61147b848285016113dd565b949350505050565b5f805f60608486031215611495575f80fd5b83356114a081611307565b925060208401359150604084013567ffffffffffffffff8111156114c2575f80fd5b6114ce868287016113dd565b9150509250925092565b5f602082840312156114e8575f80fd5b6040516020810181811067ffffffffffffffff8211171561150b5761150b611356565b604052825161151981611307565b81529392505050565b80518015158114611531575f80fd5b919050565b5f60808284031215611546575f80fd5b6040516080810181811067ffffffffffffffff8211171561156957611569611356565b604052825161157781611307565b8152602083015161158781611307565b6020820152604083810151908201526115a260608401611522565b60608201529392505050565b5f82601f8301126115bd575f80fd5b8151602067ffffffffffffffff8211156115d9576115d9611356565b8160051b6115e88282016113ac565b9283528481018201928281019087851115611601575f80fd5b83870192505b8483101561162057825182529183019190830190611607565b979650505050505050565b5f6020828403121561163b575f80fd5b815167ffffffffffffffff80821115611652575f80fd5b9083019060a08286031215611665575f80fd5b61166d611383565b825161167881611307565b8152602083015161168881611307565b602082015260408301518281111561169e575f80fd5b6116aa878286016115ae565b6040830152506060830151828111156116c1575f80fd5b6116cd878286016115ae565b6060830152506116df60808401611522565b608082015295945050505050565b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f82518060608401528060208501608085015e5f608082850101526080601f19601f83011684010191505094935050505056"; diff --git a/src/generated/0_1_3/StoxOffchainAssetReceiptVaultBeaconSetDeployer.pointers.sol b/src/generated/0_1_3/StoxOffchainAssetReceiptVaultBeaconSetDeployer.pointers.sol deleted file mode 100644 index 31a0f1ac..00000000 --- a/src/generated/0_1_3/StoxOffchainAssetReceiptVaultBeaconSetDeployer.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x4637b099fe9279a8d4d88d9176ccadf92b20970eaf0b57b51997756d479ef43b); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x679ab223dAb158Ea93e1a4F49104DE436C58eAb8); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"60c060405234801561000f575f80fd5b5060408051606081018252738e4bdeec7ceb9570d440676345da1dce10329f5b808252732df5cfe6d688ef9ff1b7c59a499d254b1527b2866020830181905273d7f91c1c6e6e651ec3f1fd707af7cbb7526206e18385015292519192916100759061010b565b6001600160a01b03928316815291166020820152604001604051809103905ff0801580156100a5573d5f803e3d5ffd5b506001600160a01b0316608052604080820151825191519091906100c89061010b565b6001600160a01b03928316815291166020820152604001604051809103905ff0801580156100f8573d5f803e3d5ffd5b506001600160a01b031660a05250610118565b6104f780610fd783390190565b60805160a051610e926101455f395f818160c701526102d801525f8181607b01526102630152610e925ff3fe608060405234801561000f575f80fd5b506004361061004a575f3560e01c806301ffc9a71461004e5780632c9b7f40146100765780632f77a1c1146100c25780634904fab3146100e9575b5f80fd5b61006161005c3660046105d0565b6100fc565b60405190151581526020015b60405180910390f35b61009d7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161006d565b61009d7f000000000000000000000000000000000000000000000000000000000000000081565b61009d6100f736600461075e565b610194565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f4ae8243200000000000000000000000000000000000000000000000000000000148061018e57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b6020810151606001515f9073ffffffffffffffffffffffffffffffffffffffff1615610212576020820151606001516040517ffc47d97600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116600482015260240160405180910390fd5b815173ffffffffffffffffffffffffffffffffffffffff16610260576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7f000000000000000000000000000000000000000000000000000000000000000060405161028e906105c3565b73ffffffffffffffffffffffffffffffffffffffff90911681526040602082018190525f90820152606001604051809103905ff0801580156102d2573d5f803e3d5ffd5b5090505f7f0000000000000000000000000000000000000000000000000000000000000000604051610303906105c3565b73ffffffffffffffffffffffffffffffffffffffff90911681526040602082018190525f90820152606001604051809103905ff080158015610347573d5f803e3d5ffd5b506040805173ffffffffffffffffffffffffffffffffffffffff80841660208301529293507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc39285169163439fab9191016040516020818303038152906040526040518263ffffffff1660e01b81526004016103c39190610894565b6020604051808303815f875af11580156103df573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061040391906108a6565b1461043a576040517f0219069c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8184602001516060019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc38173ffffffffffffffffffffffffffffffffffffffff1663439fab91866040516020016104c491906108bd565b6040516020818303038152906040526040518263ffffffff1660e01b81526004016104ef9190610894565b6020604051808303815f875af115801561050b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061052f91906108a6565b14610566576040517f09c5931500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805133815273ffffffffffffffffffffffffffffffffffffffff838116602083015284168183015290517fa0d99d93cf7a5f89661fa0829369a7e4896e755871efe65440bab2429387d55b9181900360600190a19392505050565b61052f8061096383390190565b5f602082840312156105e0575f80fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461060f575f80fd5b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff8111828210171561066657610666610616565b60405290565b6040516080810167ffffffffffffffff8111828210171561066657610666610616565b803573ffffffffffffffffffffffffffffffffffffffff811681146106b2575f80fd5b919050565b5f82601f8301126106c6575f80fd5b813567ffffffffffffffff808211156106e1576106e1610616565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561072757610727610616565b8160405283815286602085880101111561073f575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f6020828403121561076e575f80fd5b813567ffffffffffffffff80821115610785575f80fd5b9083019060408286031215610798575f80fd5b6107a0610643565b6107a98361068f565b81526020830135828111156107bc575f80fd5b9290920191608083870312156107d0575f80fd5b6107d861066c565b6107e18461068f565b81526020840135838111156107f4575f80fd5b610800888287016106b7565b602083015250604084013583811115610817575f80fd5b610823888287016106b7565b6040830152506108356060850161068f565b6060820152602082015295945050505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f61060f6020830184610848565b5f602082840312156108b6575f80fd5b5051919050565b602081525f73ffffffffffffffffffffffffffffffffffffffff8084511660208401526020840151604080850152818151166060850152602081015160808086015261090c60e0860182610848565b905060408201517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08683030160a08701526109478282610848565b9150508260608301511660c08601528093505050509291505056fe60a060405260405161052f38038061052f83398101604081905261002291610331565b61002c828261003e565b506001600160a01b031660805261040d565b610047826100fb565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a28051156100ef576100ea826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e491906103ed565b82610209565b505050565b6100f76102aa565b5050565b806001600160a01b03163b5f0361013557604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b815290515f92841691635c60da1b9160048083019260209291908290030181865afa1580156101ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d291906103ed565b9050806001600160a01b03163b5f036100f757604051634c9c8ce360e01b81526001600160a01b038216600482015260240161012c565b60605f61021684846102cb565b905080801561023757505f3d118061023757505f846001600160a01b03163b115b1561024c576102446102de565b9150506102a4565b801561027657604051639996b31560e01b81526001600160a01b038516600482015260240161012c565b3d15610289576102846102f7565b6102a2565b60405163d6bda27560e01b815260040160405180910390fd5b505b92915050565b34156102c95760405163b398979f60e01b815260040160405180910390fd5b565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b6040513d5f823e3d81fd5b80516001600160a01b0381168114610318575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215610342575f80fd5b61034b83610302565b60208401519092506001600160401b0380821115610367575f80fd5b818501915085601f83011261037a575f80fd5b81518181111561038c5761038c61031d565b604051601f8201601f19908116603f011681019083821181831017156103b4576103b461031d565b816040528281528860208487010111156103cc575f80fd5b8260208601602083015e5f6020848301015280955050505050509250929050565b5f602082840312156103fd575f80fd5b61040682610302565b9392505050565b60805161010b6104245f395f6023015261010b5ff3fe608060405261000c61000e565b005b61001e610019610020565b6100b3565b565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561008a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100ae91906100d1565b905090565b365f80375f80365f845af43d5f803e8080156100cd573d5ff35b3d5ffd5b5f602082840312156100e1575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610104575f80fd5b939250505056608060405234801561000f575f80fd5b506040516104f73803806104f783398101604081905261002e9161015f565b806001600160a01b03811661005d57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b61006681610077565b50610070826100c6565b5050610190565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b806001600160a01b03163b5f036100fb5760405163211eb15960e21b81526001600160a01b0382166004820152602401610054565b600180546001600160a01b0319166001600160a01b0383169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b80516001600160a01b038116811461015a575f80fd5b919050565b5f8060408385031215610170575f80fd5b61017983610144565b915061018760208401610144565b90509250929050565b61035a8061019d5f395ff3fe608060405234801561000f575f80fd5b5060043610610064575f3560e01c8063715018a61161004d578063715018a6146100c05780638da5cb5b146100c8578063f2fde38b146100e5575f80fd5b80633659cfe6146100685780635c60da1b1461007d575b5f80fd5b61007b610076366004610320565b6100f8565b005b60015473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61007b61010c565b5f5473ffffffffffffffffffffffffffffffffffffffff16610097565b61007b6100f3366004610320565b61011f565b610100610184565b610109816101d6565b50565b610114610184565b61011d5f6102ac565b565b610127610184565b73ffffffffffffffffffffffffffffffffffffffff811661017b576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f60048201526024015b60405180910390fd5b610109816102ac565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461011d576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610172565b8073ffffffffffffffffffffffffffffffffffffffff163b5f0361023e576040517f847ac56400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602401610172565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f60208284031215610330575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610353575f80fd5b939250505056"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b506004361061004a575f3560e01c806301ffc9a71461004e5780632c9b7f40146100765780632f77a1c1146100c25780634904fab3146100e9575b5f80fd5b61006161005c3660046105d0565b6100fc565b60405190151581526020015b60405180910390f35b61009d7f000000000000000000000000913f9edb29dd88314ee1559c18495b5332464d3b81565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161006d565b61009d7f000000000000000000000000bc924b1c3d3f3e038d5bf85710f695bcb22e715281565b61009d6100f736600461075e565b610194565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f4ae8243200000000000000000000000000000000000000000000000000000000148061018e57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b6020810151606001515f9073ffffffffffffffffffffffffffffffffffffffff1615610212576020820151606001516040517ffc47d97600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116600482015260240160405180910390fd5b815173ffffffffffffffffffffffffffffffffffffffff16610260576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7f000000000000000000000000913f9edb29dd88314ee1559c18495b5332464d3b60405161028e906105c3565b73ffffffffffffffffffffffffffffffffffffffff90911681526040602082018190525f90820152606001604051809103905ff0801580156102d2573d5f803e3d5ffd5b5090505f7f000000000000000000000000bc924b1c3d3f3e038d5bf85710f695bcb22e7152604051610303906105c3565b73ffffffffffffffffffffffffffffffffffffffff90911681526040602082018190525f90820152606001604051809103905ff080158015610347573d5f803e3d5ffd5b506040805173ffffffffffffffffffffffffffffffffffffffff80841660208301529293507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc39285169163439fab9191016040516020818303038152906040526040518263ffffffff1660e01b81526004016103c39190610894565b6020604051808303815f875af11580156103df573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061040391906108a6565b1461043a576040517f0219069c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8184602001516060019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc38173ffffffffffffffffffffffffffffffffffffffff1663439fab91866040516020016104c491906108bd565b6040516020818303038152906040526040518263ffffffff1660e01b81526004016104ef9190610894565b6020604051808303815f875af115801561050b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061052f91906108a6565b14610566576040517f09c5931500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805133815273ffffffffffffffffffffffffffffffffffffffff838116602083015284168183015290517fa0d99d93cf7a5f89661fa0829369a7e4896e755871efe65440bab2429387d55b9181900360600190a19392505050565b61052f8061096383390190565b5f602082840312156105e0575f80fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461060f575f80fd5b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff8111828210171561066657610666610616565b60405290565b6040516080810167ffffffffffffffff8111828210171561066657610666610616565b803573ffffffffffffffffffffffffffffffffffffffff811681146106b2575f80fd5b919050565b5f82601f8301126106c6575f80fd5b813567ffffffffffffffff808211156106e1576106e1610616565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561072757610727610616565b8160405283815286602085880101111561073f575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f6020828403121561076e575f80fd5b813567ffffffffffffffff80821115610785575f80fd5b9083019060408286031215610798575f80fd5b6107a0610643565b6107a98361068f565b81526020830135828111156107bc575f80fd5b9290920191608083870312156107d0575f80fd5b6107d861066c565b6107e18461068f565b81526020840135838111156107f4575f80fd5b610800888287016106b7565b602083015250604084013583811115610817575f80fd5b610823888287016106b7565b6040830152506108356060850161068f565b6060820152602082015295945050505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f61060f6020830184610848565b5f602082840312156108b6575f80fd5b5051919050565b602081525f73ffffffffffffffffffffffffffffffffffffffff8084511660208401526020840151604080850152818151166060850152602081015160808086015261090c60e0860182610848565b905060408201517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08683030160a08701526109478282610848565b9150508260608301511660c08601528093505050509291505056fe60a060405260405161052f38038061052f83398101604081905261002291610331565b61002c828261003e565b506001600160a01b031660805261040d565b610047826100fb565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a28051156100ef576100ea826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e491906103ed565b82610209565b505050565b6100f76102aa565b5050565b806001600160a01b03163b5f0361013557604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b815290515f92841691635c60da1b9160048083019260209291908290030181865afa1580156101ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d291906103ed565b9050806001600160a01b03163b5f036100f757604051634c9c8ce360e01b81526001600160a01b038216600482015260240161012c565b60605f61021684846102cb565b905080801561023757505f3d118061023757505f846001600160a01b03163b115b1561024c576102446102de565b9150506102a4565b801561027657604051639996b31560e01b81526001600160a01b038516600482015260240161012c565b3d15610289576102846102f7565b6102a2565b60405163d6bda27560e01b815260040160405180910390fd5b505b92915050565b34156102c95760405163b398979f60e01b815260040160405180910390fd5b565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b6040513d5f823e3d81fd5b80516001600160a01b0381168114610318575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215610342575f80fd5b61034b83610302565b60208401519092506001600160401b0380821115610367575f80fd5b818501915085601f83011261037a575f80fd5b81518181111561038c5761038c61031d565b604051601f8201601f19908116603f011681019083821181831017156103b4576103b461031d565b816040528281528860208487010111156103cc575f80fd5b8260208601602083015e5f6020848301015280955050505050509250929050565b5f602082840312156103fd575f80fd5b61040682610302565b9392505050565b60805161010b6104245f395f6023015261010b5ff3fe608060405261000c61000e565b005b61001e610019610020565b6100b3565b565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561008a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100ae91906100d1565b905090565b365f80375f80365f845af43d5f803e8080156100cd573d5ff35b3d5ffd5b5f602082840312156100e1575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610104575f80fd5b939250505056"; diff --git a/src/generated/0_1_3/StoxOffchainAssetReceiptVaultPaymentMintAuthorizerV1.pointers.sol b/src/generated/0_1_3/StoxOffchainAssetReceiptVaultPaymentMintAuthorizerV1.pointers.sol deleted file mode 100644 index f343350f..00000000 --- a/src/generated/0_1_3/StoxOffchainAssetReceiptVaultPaymentMintAuthorizerV1.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x4d94318cde48f1bc20f97e00aefad84bfb7c9db15c81b882862e127b05e06e15); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0xeaD68E489Cb19453b294dc46a3A5710b0d46d17F); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"6080604052348015600e575f80fd5b506015601f565b601b601f565b60cf565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615606e5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460cc5780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b612650806100dc5f395ff3fe608060405234801561000f575f80fd5b5060043610610115575f3560e01c806359f89dda116100ad578063a086e1751161007d578063a4c9d30011610063578063a4c9d3001461030a578063d547741f14610312578063f2fde38b14610325575f80fd5b8063a086e175146102fb578063a217fddf14610303575f80fd5b806359f89dda14610281578063715018a6146102945780638da5cb5b1461029c57806391d14854146102a4575f80fd5b80633013ce29116100e85780633013ce29146101c8578063325cd7961461020c57806336568abe1461025b578063439fab911461026e575f80fd5b806301ffc9a71461011957806304a0db2014610141578063248a9ca3146101725780632f2ff15d146101b3575b5f80fd5b61012c610127366004611eec565b610338565b60405190151581526020015b60405180910390f35b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3202545b604051908152602001610138565b610164610180366004611f2b565b5f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b6101c66101c1366004611f56565b61042b565b005b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3201546001600160a01b03165b6040516001600160a01b039091168152602001610138565b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b32015474010000000000000000000000000000000000000000900460ff1660405160ff9091168152602001610138565b6101c6610269366004611f56565b610474565b61016461027c3660046120a7565b6104c5565b6101c661028f3660046120d9565b610a55565b6101c6610e31565b6101f4610e44565b61012c6102b2366004611f56565b5f9182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6101f4610e78565b6101645f81565b6101c6610ea0565b6101c6610320366004611f56565b610f69565b6101c661033336600461212e565b610fac565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f59f89dda0000000000000000000000000000000000000000000000000000000014806103ca57507fffffffff0000000000000000000000000000000000000000000000000000000082167f439fab9100000000000000000000000000000000000000000000000000000000145b8061041657507fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000145b80610425575061042582610fff565b92915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015461046481611095565b61046e838361109f565b50505050565b6001600160a01b03811633146104b6576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104c08282611190565b505050565b5f806104cf611252565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156104fb5750825b90505f8267ffffffffffffffff1660011480156105175750303b155b905081158015610525575080155b1561055c576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156105bd5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b5f878060200190518101906105d29190612149565b80519091506001600160a01b0316610616576040517fa7d26c7300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60208101516001600160a01b031661065a576040517f364467d300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408101516001600160a01b031661069e576040517f3731597600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60608101516001600160a01b03166106e2576040517ff10d418200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80608001515f0361071f576040517f7e0eb2bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80517f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b320080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b039384161782556020808501517f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b32038054841691861691909117905560608501517f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b320180549093169416938417909155604080517f313ce567000000000000000000000000000000000000000000000000000000008152905192935f93909263313ce56792600480820193918290030181865afa158015610830573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061085491906121ba565b6001830180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000060ff8416021790556080840151600284015560408401519091506108b59061127a565b7fbf322f47f534976d35baa3292f4fd04bf379264783a734383401b0e6e51cb16d835f0151846020015185604001518660600151858860800151604051610939969594939291906001600160a01b039687168152948616602086015292851660408501529316606083015260ff92909216608082015260a081019190915260c00190565b60405180910390a1610965604051806020016040528085604001516001600160a01b031681525061128b565b506109947f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc028460400151611190565b506109c37fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d38460400151611190565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc398505050508315610a4b5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b320080546001600160a01b0316338114610ac9578484846040517f3ae4063b000000000000000000000000000000000000000000000000000000008152600401610ac0939291906121da565b60405180910390fd5b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8218403610e1f575f83806020019051810190610b059190612226565b60018481015460808301519293506001600160a01b038116927401000000000000000000000000000000000000000090910460ff16915f91610b48918490611626565b90505f836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b87573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bab91906121ba565b60ff169050828114610bf3576040517fe420d7af0000000000000000000000000000000000000000000000000000000081526004810184905260248101829052604401610ac0565b5f866001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c30573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c549190612312565b90508760020154811115610ca45760028801546040517f86529caa000000000000000000000000000000000000000000000000000000008152600481019190915260248101829052604401610ac0565b825f03610d045785516040517f3ae4063b000000000000000000000000000000000000000000000000000000008152610ac091907f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f821908c906004016121da565b8551610d1c906001600160a01b0387169030866116ad565b600388015486516040517fdb8554fc0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201524260248201525f92919091169063db8554fc90604401602060405180830381865afa158015610d8a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dae9190612312565b905060028114610e115786516040517f3ae4063b000000000000000000000000000000000000000000000000000000008152610ac091907f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f821908d906004016121da565b505050505050505050505050565b610e2a8585856116fc565b5050505050565b610e39611a38565b610e425f611a83565b565b5f807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b5f807f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3200610e68565b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3200610f66610ecc610e44565b60018301546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015610f2d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f519190612312565b60018401546001600160a01b03169190611b0b565b50565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020526040902060010154610fa281611095565b61046e8383611190565b610fb4611a38565b6001600160a01b038116610ff6576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f6004820152602401610ac0565b610f6681611a83565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061042557507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610425565b610f668133611b59565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff16611180575f848152602082815260408083206001600160a01b0387168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556111363390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610425565b5f915050610425565b5092915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff1615611180575f848152602082815260408083206001600160a01b038716808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610425565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610425565b611282611be9565b610f6681611c27565b5f611294611c2f565b81516001600160a01b03166112d5576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61131f7f50a07cb25d0d864370863300b20987dfdae089abad71b607faf639d09d0533917f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b611c37565b6113497f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b80611c37565b6113937f3dd35eca0ca8a128757fa464a5dfa4ad6cc4853cad96dce4e90fdbea4f0a52e37f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d611c37565b6113bd7f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d80611c37565b6114077f54f0af3716c79b30b8c228679d31d77a1a5f526c16af3262730e0a8de4363fed7fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c611c37565b6114317fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c80611c37565b61147b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8217f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02611c37565b6114a57f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc0280611c37565b6114ef7f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e9828697fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3611c37565b6115197fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d380611c37565b6115467f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b835f015161109f565b506115747f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d835f015161109f565b506115a27fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c835f015161109f565b506115d07f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02835f015161109f565b506115fe7fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3835f015161109f565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc392915050565b5f826012111561165a5760128390036001831615611650576116488582611cd8565b9150506116a6565b6116488582611d24565b60128311156116a3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee83016002831615611699576116488582611d4e565b6116488582611d9e565b50825b9392505050565b6116bb848484846001611dcd565b61046e576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610ac0565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a82148061174957507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a4882145b156119b2575f805f7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a85036117a9575f8480602001905181019061178d919061233d565b9050805f015193508060200151925080606001519150506117d5565b5f848060200190518101906117be9190612432565b805160208201516080909201519095509093509150505b80156119aa576001600160a01b03831615801561182857506001600160a01b0382165f9081527f96f78a99f93d631b75bc050854c9b764642c10564e41ed27c197a36ddabb1df9602052604090205460ff165b8061187b57506001600160a01b03821615801561187b57506001600160a01b0383165f9081527f3907f76fa0fb1e5d0f263c5c4fe4316026052cf960c55a1c768106d8b9701c10602052604090205460ff165b1561188857505050505050565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a851480156118ed57506001600160a01b0386165f9081527f6ba48721fcbb2613af13d8285fe9ee4a081f7995464037bb5ea27397912881d2602052604090205460ff165b8061195857507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a488514801561195857506001600160a01b0386165f9081527f29e42896fa6edf5a5d7ff0bcd00acffbece6eb6cc7b44d0807bfd84929cc6e1b602052604090205460ff165b1561196557505050505050565b6040517ffe720f780000000000000000000000000000000000000000000000000000000081526001600160a01b03808516600483015283166024820152604401610ac0565b505050505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038716845290915290205460ff1615611a0057505050565b8282826040517f3ae4063b000000000000000000000000000000000000000000000000000000008152600401610ac0939291906121da565b33611a41610e44565b6001600160a01b031614610e42576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610ac0565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b611b188383836001611e53565b6104c0576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610ac0565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038516845290915290205460ff16611be5576040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015260248101839052604401610ac0565b5050565b611bf1611ece565b610e42576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fb4611be9565b610e42611be9565b7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268005f611c90845f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b5f85815260208490526040808220600101869055519192508491839187917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a450505050565b5f604e8210611cfa578215611cee576001611cf0565b5f5b60ff169050610425565b600a82900a808481611d0e57611d0e6124f4565b0491508082028414611189575060010192915050565b5f604e821015611d465781600a0a8381611d4057611d406124f4565b046116a6565b5f9392505050565b5f604e8210611d6d578215611d64575f19611d66565b5f5b9050610425565b50600a81900a8281029083818381611d8757611d876124f4565b0414611d94575f19611d96565b815b949350505050565b600a81900a611dad818461254e565b9050604e8210610425578215611d4657611dc882600a612645565b6116a6565b6040517f23b872dd000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038781166004528616602452604485905291602083606481808c5af1925060015f51148316611e42578383151615611e36573d5f823e3d81fd5b5f883b113d1516831692505b604052505f60605295945050505050565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f51148316611ec2578383151615611eb6573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b5f611ed7611252565b5468010000000000000000900460ff16919050565b5f60208284031215611efc575f80fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146116a6575f80fd5b5f60208284031215611f3b575f80fd5b5035919050565b6001600160a01b0381168114610f66575f80fd5b5f8060408385031215611f67575f80fd5b823591506020830135611f7981611f42565b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60405160a0810167ffffffffffffffff81118282101715611fd457611fd4611f84565b60405290565b60405160c0810167ffffffffffffffff81118282101715611fd457611fd4611f84565b604051601f8201601f1916810167ffffffffffffffff8111828210171561202657612026611f84565b604052919050565b5f67ffffffffffffffff82111561204757612047611f84565b50601f01601f191660200190565b5f82601f830112612064575f80fd5b81356120776120728261202e565b611ffd565b81815284602083860101111561208b575f80fd5b816020850160208301375f918101602001919091529392505050565b5f602082840312156120b7575f80fd5b813567ffffffffffffffff8111156120cd575f80fd5b611d9684828501612055565b5f805f606084860312156120eb575f80fd5b83356120f681611f42565b925060208401359150604084013567ffffffffffffffff811115612118575f80fd5b61212486828701612055565b9150509250925092565b5f6020828403121561213e575f80fd5b81356116a681611f42565b5f60a08284031215612159575f80fd5b612161611fb1565b825161216c81611f42565b8152602083015161217c81611f42565b6020820152604083015161218f81611f42565b604082015260608301516121a281611f42565b60608201526080928301519281019290925250919050565b5f602082840312156121ca575f80fd5b815160ff811681146116a6575f80fd5b6001600160a01b0384168152826020820152606060408201525f82518060608401528060208501608085015e5f608082850101526080601f19601f830116840101915050949350505050565b5f6020808385031215612237575f80fd5b825167ffffffffffffffff8082111561224e575f80fd5b9084019060c08287031215612261575f80fd5b612269611fda565b825161227481611f42565b81528284015161228381611f42565b80858301525060408301516040820152606083015160608201526080830151608082015260a0830151828111156122b8575f80fd5b80840193505086601f8401126122cc575f80fd5b825191506122dc6120728361202e565b82815287858486010111156122ef575f80fd5b828585018683015e5f8584830101528060a0830152508094505050505092915050565b5f60208284031215612322575f80fd5b5051919050565b80518015158114612338575f80fd5b919050565b5f6080828403121561234d575f80fd5b6040516080810181811067ffffffffffffffff8211171561237057612370611f84565b604052825161237e81611f42565b8152602083015161238e81611f42565b6020820152604083810151908201526123a960608401612329565b60608201529392505050565b5f82601f8301126123c4575f80fd5b8151602067ffffffffffffffff8211156123e0576123e0611f84565b8160051b6123ef828201611ffd565b9283528481018201928281019087851115612408575f80fd5b83870192505b848310156124275782518252918301919083019061240e565b979650505050505050565b5f60208284031215612442575f80fd5b815167ffffffffffffffff80821115612459575f80fd5b9083019060a0828603121561246c575f80fd5b612474611fb1565b825161247f81611f42565b8152602083015161248f81611f42565b60208201526040830151828111156124a5575f80fd5b6124b1878286016123b5565b6040830152506060830151828111156124c8575f80fd5b6124d4878286016123b5565b6060830152506124e660808401612329565b608082015295945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b808202811582820484141761042557610425612521565b600181815b8085111561259f57815f190482111561258557612585612521565b8085161561259257918102915b93841c939080029061256a565b509250929050565b5f826125b557506001610425565b816125c157505f610425565b81600181146125d757600281146125e1576125fd565b6001915050610425565b60ff8411156125f2576125f2612521565b50506001821b610425565b5060208310610133831016604e8410600b8410161715612620575081810a610425565b61262a8383612565565b805f190482111561263d5761263d612521565b029392505050565b5f6116a683836125a756"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b5060043610610115575f3560e01c806359f89dda116100ad578063a086e1751161007d578063a4c9d30011610063578063a4c9d3001461030a578063d547741f14610312578063f2fde38b14610325575f80fd5b8063a086e175146102fb578063a217fddf14610303575f80fd5b806359f89dda14610281578063715018a6146102945780638da5cb5b1461029c57806391d14854146102a4575f80fd5b80633013ce29116100e85780633013ce29146101c8578063325cd7961461020c57806336568abe1461025b578063439fab911461026e575f80fd5b806301ffc9a71461011957806304a0db2014610141578063248a9ca3146101725780632f2ff15d146101b3575b5f80fd5b61012c610127366004611eec565b610338565b60405190151581526020015b60405180910390f35b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3202545b604051908152602001610138565b610164610180366004611f2b565b5f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b6101c66101c1366004611f56565b61042b565b005b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3201546001600160a01b03165b6040516001600160a01b039091168152602001610138565b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b32015474010000000000000000000000000000000000000000900460ff1660405160ff9091168152602001610138565b6101c6610269366004611f56565b610474565b61016461027c3660046120a7565b6104c5565b6101c661028f3660046120d9565b610a55565b6101c6610e31565b6101f4610e44565b61012c6102b2366004611f56565b5f9182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6101f4610e78565b6101645f81565b6101c6610ea0565b6101c6610320366004611f56565b610f69565b6101c661033336600461212e565b610fac565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f59f89dda0000000000000000000000000000000000000000000000000000000014806103ca57507fffffffff0000000000000000000000000000000000000000000000000000000082167f439fab9100000000000000000000000000000000000000000000000000000000145b8061041657507fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000145b80610425575061042582610fff565b92915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015461046481611095565b61046e838361109f565b50505050565b6001600160a01b03811633146104b6576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104c08282611190565b505050565b5f806104cf611252565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156104fb5750825b90505f8267ffffffffffffffff1660011480156105175750303b155b905081158015610525575080155b1561055c576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156105bd5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b5f878060200190518101906105d29190612149565b80519091506001600160a01b0316610616576040517fa7d26c7300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60208101516001600160a01b031661065a576040517f364467d300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408101516001600160a01b031661069e576040517f3731597600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60608101516001600160a01b03166106e2576040517ff10d418200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80608001515f0361071f576040517f7e0eb2bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80517f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b320080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b039384161782556020808501517f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b32038054841691861691909117905560608501517f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b320180549093169416938417909155604080517f313ce567000000000000000000000000000000000000000000000000000000008152905192935f93909263313ce56792600480820193918290030181865afa158015610830573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061085491906121ba565b6001830180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000060ff8416021790556080840151600284015560408401519091506108b59061127a565b7fbf322f47f534976d35baa3292f4fd04bf379264783a734383401b0e6e51cb16d835f0151846020015185604001518660600151858860800151604051610939969594939291906001600160a01b039687168152948616602086015292851660408501529316606083015260ff92909216608082015260a081019190915260c00190565b60405180910390a1610965604051806020016040528085604001516001600160a01b031681525061128b565b506109947f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc028460400151611190565b506109c37fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d38460400151611190565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc398505050508315610a4b5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b320080546001600160a01b0316338114610ac9578484846040517f3ae4063b000000000000000000000000000000000000000000000000000000008152600401610ac0939291906121da565b60405180910390fd5b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8218403610e1f575f83806020019051810190610b059190612226565b60018481015460808301519293506001600160a01b038116927401000000000000000000000000000000000000000090910460ff16915f91610b48918490611626565b90505f836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b87573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bab91906121ba565b60ff169050828114610bf3576040517fe420d7af0000000000000000000000000000000000000000000000000000000081526004810184905260248101829052604401610ac0565b5f866001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c30573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c549190612312565b90508760020154811115610ca45760028801546040517f86529caa000000000000000000000000000000000000000000000000000000008152600481019190915260248101829052604401610ac0565b825f03610d045785516040517f3ae4063b000000000000000000000000000000000000000000000000000000008152610ac091907f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f821908c906004016121da565b8551610d1c906001600160a01b0387169030866116ad565b600388015486516040517fdb8554fc0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201524260248201525f92919091169063db8554fc90604401602060405180830381865afa158015610d8a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dae9190612312565b905060028114610e115786516040517f3ae4063b000000000000000000000000000000000000000000000000000000008152610ac091907f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f821908d906004016121da565b505050505050505050505050565b610e2a8585856116fc565b5050505050565b610e39611a38565b610e425f611a83565b565b5f807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b5f807f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3200610e68565b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3200610f66610ecc610e44565b60018301546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015610f2d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f519190612312565b60018401546001600160a01b03169190611b0b565b50565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020526040902060010154610fa281611095565b61046e8383611190565b610fb4611a38565b6001600160a01b038116610ff6576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f6004820152602401610ac0565b610f6681611a83565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061042557507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610425565b610f668133611b59565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff16611180575f848152602082815260408083206001600160a01b0387168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556111363390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610425565b5f915050610425565b5092915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff1615611180575f848152602082815260408083206001600160a01b038716808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610425565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610425565b611282611be9565b610f6681611c27565b5f611294611c2f565b81516001600160a01b03166112d5576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61131f7f50a07cb25d0d864370863300b20987dfdae089abad71b607faf639d09d0533917f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b611c37565b6113497f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b80611c37565b6113937f3dd35eca0ca8a128757fa464a5dfa4ad6cc4853cad96dce4e90fdbea4f0a52e37f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d611c37565b6113bd7f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d80611c37565b6114077f54f0af3716c79b30b8c228679d31d77a1a5f526c16af3262730e0a8de4363fed7fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c611c37565b6114317fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c80611c37565b61147b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8217f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02611c37565b6114a57f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc0280611c37565b6114ef7f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e9828697fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3611c37565b6115197fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d380611c37565b6115467f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b835f015161109f565b506115747f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d835f015161109f565b506115a27fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c835f015161109f565b506115d07f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02835f015161109f565b506115fe7fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3835f015161109f565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc392915050565b5f826012111561165a5760128390036001831615611650576116488582611cd8565b9150506116a6565b6116488582611d24565b60128311156116a3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee83016002831615611699576116488582611d4e565b6116488582611d9e565b50825b9392505050565b6116bb848484846001611dcd565b61046e576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610ac0565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a82148061174957507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a4882145b156119b2575f805f7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a85036117a9575f8480602001905181019061178d919061233d565b9050805f015193508060200151925080606001519150506117d5565b5f848060200190518101906117be9190612432565b805160208201516080909201519095509093509150505b80156119aa576001600160a01b03831615801561182857506001600160a01b0382165f9081527f96f78a99f93d631b75bc050854c9b764642c10564e41ed27c197a36ddabb1df9602052604090205460ff165b8061187b57506001600160a01b03821615801561187b57506001600160a01b0383165f9081527f3907f76fa0fb1e5d0f263c5c4fe4316026052cf960c55a1c768106d8b9701c10602052604090205460ff165b1561188857505050505050565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a851480156118ed57506001600160a01b0386165f9081527f6ba48721fcbb2613af13d8285fe9ee4a081f7995464037bb5ea27397912881d2602052604090205460ff165b8061195857507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a488514801561195857506001600160a01b0386165f9081527f29e42896fa6edf5a5d7ff0bcd00acffbece6eb6cc7b44d0807bfd84929cc6e1b602052604090205460ff165b1561196557505050505050565b6040517ffe720f780000000000000000000000000000000000000000000000000000000081526001600160a01b03808516600483015283166024820152604401610ac0565b505050505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038716845290915290205460ff1615611a0057505050565b8282826040517f3ae4063b000000000000000000000000000000000000000000000000000000008152600401610ac0939291906121da565b33611a41610e44565b6001600160a01b031614610e42576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610ac0565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b611b188383836001611e53565b6104c0576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610ac0565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038516845290915290205460ff16611be5576040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015260248101839052604401610ac0565b5050565b611bf1611ece565b610e42576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fb4611be9565b610e42611be9565b7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268005f611c90845f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b5f85815260208490526040808220600101869055519192508491839187917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a450505050565b5f604e8210611cfa578215611cee576001611cf0565b5f5b60ff169050610425565b600a82900a808481611d0e57611d0e6124f4565b0491508082028414611189575060010192915050565b5f604e821015611d465781600a0a8381611d4057611d406124f4565b046116a6565b5f9392505050565b5f604e8210611d6d578215611d64575f19611d66565b5f5b9050610425565b50600a81900a8281029083818381611d8757611d876124f4565b0414611d94575f19611d96565b815b949350505050565b600a81900a611dad818461254e565b9050604e8210610425578215611d4657611dc882600a612645565b6116a6565b6040517f23b872dd000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038781166004528616602452604485905291602083606481808c5af1925060015f51148316611e42578383151615611e36573d5f823e3d81fd5b5f883b113d1516831692505b604052505f60605295945050505050565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f51148316611ec2578383151615611eb6573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b5f611ed7611252565b5468010000000000000000900460ff16919050565b5f60208284031215611efc575f80fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146116a6575f80fd5b5f60208284031215611f3b575f80fd5b5035919050565b6001600160a01b0381168114610f66575f80fd5b5f8060408385031215611f67575f80fd5b823591506020830135611f7981611f42565b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60405160a0810167ffffffffffffffff81118282101715611fd457611fd4611f84565b60405290565b60405160c0810167ffffffffffffffff81118282101715611fd457611fd4611f84565b604051601f8201601f1916810167ffffffffffffffff8111828210171561202657612026611f84565b604052919050565b5f67ffffffffffffffff82111561204757612047611f84565b50601f01601f191660200190565b5f82601f830112612064575f80fd5b81356120776120728261202e565b611ffd565b81815284602083860101111561208b575f80fd5b816020850160208301375f918101602001919091529392505050565b5f602082840312156120b7575f80fd5b813567ffffffffffffffff8111156120cd575f80fd5b611d9684828501612055565b5f805f606084860312156120eb575f80fd5b83356120f681611f42565b925060208401359150604084013567ffffffffffffffff811115612118575f80fd5b61212486828701612055565b9150509250925092565b5f6020828403121561213e575f80fd5b81356116a681611f42565b5f60a08284031215612159575f80fd5b612161611fb1565b825161216c81611f42565b8152602083015161217c81611f42565b6020820152604083015161218f81611f42565b604082015260608301516121a281611f42565b60608201526080928301519281019290925250919050565b5f602082840312156121ca575f80fd5b815160ff811681146116a6575f80fd5b6001600160a01b0384168152826020820152606060408201525f82518060608401528060208501608085015e5f608082850101526080601f19601f830116840101915050949350505050565b5f6020808385031215612237575f80fd5b825167ffffffffffffffff8082111561224e575f80fd5b9084019060c08287031215612261575f80fd5b612269611fda565b825161227481611f42565b81528284015161228381611f42565b80858301525060408301516040820152606083015160608201526080830151608082015260a0830151828111156122b8575f80fd5b80840193505086601f8401126122cc575f80fd5b825191506122dc6120728361202e565b82815287858486010111156122ef575f80fd5b828585018683015e5f8584830101528060a0830152508094505050505092915050565b5f60208284031215612322575f80fd5b5051919050565b80518015158114612338575f80fd5b919050565b5f6080828403121561234d575f80fd5b6040516080810181811067ffffffffffffffff8211171561237057612370611f84565b604052825161237e81611f42565b8152602083015161238e81611f42565b6020820152604083810151908201526123a960608401612329565b60608201529392505050565b5f82601f8301126123c4575f80fd5b8151602067ffffffffffffffff8211156123e0576123e0611f84565b8160051b6123ef828201611ffd565b9283528481018201928281019087851115612408575f80fd5b83870192505b848310156124275782518252918301919083019061240e565b979650505050505050565b5f60208284031215612442575f80fd5b815167ffffffffffffffff80821115612459575f80fd5b9083019060a0828603121561246c575f80fd5b612474611fb1565b825161247f81611f42565b8152602083015161248f81611f42565b60208201526040830151828111156124a5575f80fd5b6124b1878286016123b5565b6040830152506060830151828111156124c8575f80fd5b6124d4878286016123b5565b6060830152506124e660808401612329565b608082015295945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b808202811582820484141761042557610425612521565b600181815b8085111561259f57815f190482111561258557612585612521565b8085161561259257918102915b93841c939080029061256a565b509250929050565b5f826125b557506001610425565b816125c157505f610425565b81600181146125d757600281146125e1576125fd565b6001915050610425565b60ff8411156125f2576125f2612521565b50506001821b610425565b5060208310610133831016604e8410600b8410161715612620575081810a610425565b61262a8383612565565b805f190482111561263d5761263d612521565b029392505050565b5f6116a683836125a756"; diff --git a/src/generated/0_1_3/StoxReceipt.pointers.sol b/src/generated/0_1_3/StoxReceipt.pointers.sol deleted file mode 100644 index ff38583a..00000000 --- a/src/generated/0_1_3/StoxReceipt.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x06fffbad12ea80897d55aab5d4f1cd3f34f674237db44a148cc133334a0cca54); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x2dF5cFE6d688EF9fF1B7c59A499D254b1527b286); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"6080604052348015600e575f80fd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6136e3806100d65f395ff3fe608060405234801561000f575f80fd5b50600436106100fa575f3560e01c8063481c6a7511610093578063a22cb46511610063578063a22cb46514610232578063c2530e3914610245578063e985e9c514610258578063f242432a146102b2575f80fd5b8063481c6a75146101bd5780634e1273f4146101f75780636d5b3f781461021757806395d89b411461022a575f80fd5b80630e89341c116100ce5780630e89341c14610171578063177769cb146101845780632eb2c2d614610197578063439fab91146101aa575f80fd5b8062fdd58e146100fe57806301ffc9a714610124578063043fa9871461014757806306fdde031461015c575b5f80fd5b61011161010c366004612a49565b6102c5565b6040519081526020015b60405180910390f35b610137610132366004612aa0565b6102e1565b604051901515815260200161011b565b61015a610155366004612b79565b6103c3565b005b61016461046a565b60405161011b9190612c29565b61016461017f366004612c3b565b6104cf565b61015a610192366004612c52565b610580565b61015a6101a5366004612d20565b61058f565b6101116101b8366004612dc7565b6105ae565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc200546040516001600160a01b03909116815260200161011b565b61020a610205366004612e01565b6107ae565b60405161011b9190612eed565b61015a610225366004612eff565b6108c5565b610164610975565b61015a610240366004612f63565b6109c6565b61015a610253366004612eff565b6109d1565b610137610266366004612f9e565b6001600160a01b039182165f9081527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45016020908152604080832093909416825291909152205460ff1690565b61015a6102c0366004612eff565b610a37565b5f6102d883836102d3610a4d565b610ab3565b90505b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a2600000000000000000000000000000000000000000000000000000000148061037357507fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000145b806102db57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146102db565b6103cb610b07565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038816179055856104208686868686610b6e565b6104617fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19169055565b50505050505050565b6060610474610c25565b6040518060400160405280600881526020017f20526563656970740000000000000000000000000000000000000000000000008152506040516020016104bb929190612fe1565b604051602081830303815290604052905090565b60605f6104e56104dd610cd3565b60ff16610d78565b6104ed610c25565b6104f5610e15565b6104fd61046a565b6040516020016105109493929190612ff5565b60408051601f19818403018152828201909152601d82527f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c0000006020830152915061055882610ef5565b604051602001610569929190612fe1565b604051602081830303815290604052915050919050565b61058b338383610f01565b5050565b61059a335b86610f49565b6105a78585858585610ff9565b5050505050565b5f806105b861108c565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156105e45750825b90505f8267ffffffffffffffff1660011480156106005750303b155b90508115801561060e575080155b15610645576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156106a65784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6106bd60405180602001604052805f8152506110b4565b5f7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc20090505f888060200190518101906106f69190613137565b825473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039190911617909155507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc3955083156107a45784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b606081518351146107fd57815183516040517f5b059991000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044015b60405180910390fd5b5f610806610a4d565b90505f845167ffffffffffffffff81111561082357610823612abb565b60405190808252806020026020018201604052801561084c578160200160208202803683370190505b5090505f5b85518110156108bc5761089786828151811061086f5761086f613152565b602002602001015186838151811061088957610889613152565b602002602001015185610ab3565b8282815181106108a9576108a9613152565b6020908102919091010152600101610851565b50949350505050565b6108cd610b07565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03871617905584610920868584610f01565b61092c858585856110c5565b61096d7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19169055565b505050505050565b606061097f610c25565b6040518060400160405280600581526020017f20524350540000000000000000000000000000000000000000000000000000008152506040516020016104bb929190612fe1565b61058b33838361113a565b6109d9610b07565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03871617905584610a2c868584610f01565b61092c85858561124e565b610a4033610594565b6105a78585858585610b6e565b5f306001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a8a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aae9190613137565b905090565b5f80610abf85856112cf565b90505f610aca6112e4565b6001600160a01b0387165f90815260209182526040808220888352909252908120549150610af9838387611345565b5093505050505b9392505050565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc20080546001600160a01b03163314610b6b576040517fc0b2335a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b6001600160a01b038416610bb0576040517f57f447ce0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b038516610bf2576040517f01a835140000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6040805160018082526020820186905281830190815260608201859052608082019092529061046187878484875f6115ed565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc2008054604080517f95d89b410000000000000000000000000000000000000000000000000000000081529051606093926001600160a01b0316916395d89b41916004808301925f9291908290030181865afa158015610ca6573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610ccd919081019061319c565b91505090565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc2008054604080517f313ce56700000000000000000000000000000000000000000000000000000000815290515f93926001600160a01b03169163313ce5679160048083019260209291908290030181865afa158015610d54573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ccd91906131e1565b60605f610d8483611645565b60010190505f8167ffffffffffffffff811115610da357610da3612abb565b6040519080825280601f01601f191660200182016040528015610dcd576020820181803683370190505b5090508181016020015b5f19017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084610dd757509392505050565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc2008054604080517f38d52e0f0000000000000000000000000000000000000000000000000000000081529051606093926001600160a01b0316916338d52e0f9160048083019260209291908290030181865afa158015610e97573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ebb9190613137565b6001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015610ca6573d5f803e3d5ffd5b60606102db825f611726565b805115610f44577fd66d6a9810a5cef78b704e7e04334961e997c81d337f029f74637f060f3d8d65838383604051610f3b93929190613215565b60405180910390a15b505050565b816001600160a01b0316816001600160a01b031614158015610faf57506001600160a01b038082165f9081527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4501602090815260408083209386168352929052205460ff16155b1561058b576040517fe237d9220000000000000000000000000000000000000000000000000000000081526001600160a01b038084166004830152821660248201526044016107f4565b6001600160a01b03841661103b576040517f57f447ce0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b03851661107d576040517f01a835140000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6105a7858585858560016115ed565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006102db565b6110bc6118a5565b610b6b816118e5565b6001600160a01b038416611107576040517f57f447ce0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6040805160018082526020820186905281830190815260608201859052608082019092529061096d5f87848487846115ed565b7f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45006001600160a01b03841661119d576040517f3e31884e0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b0383166111df576040517fced3e1000000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b038481165f818152600184016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a350505050565b6001600160a01b038316611290576040517f01a835140000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b604080516001808252602082018590528183019081526060820184905260a082019092525f608082018181529192916105a791879185908590836115ed565b5f806112db84846118f6565b54949350505050565b5f8060ff1961131460017fedb99b3af8e1c50d494d6f1b4c75245a0b733cb90baa42bfe0e2f5bc8b000f82613259565b60405160200161132691815260200190565b60408051601f1981840301815291905280516020909101201692915050565b6040517f79ba43050000000000000000000000000000000000000000000000000000000081525f9081908490829081906001600160a01b038716906379ba43059061139a90869060039060019060040161326c565b606060405180830381865afa1580156113b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113d991906132a4565b5091509150875f03611496575b5f198214611488576040517f79ba430500000000000000000000000000000000000000000000000000000000815291925082916001600160a01b038716906379ba43059061143e90859060039060019060040161326c565b606060405180830381865afa158015611459573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061147d91906132a4565b5090925090506113e6565b5f83945094505050506115e5565b875b5f1983146115dd5782935060028203611548576040517fb21a2494000000000000000000000000000000000000000000000000000000008152600481018490525f90611538906001600160a01b038a169063b21a2494906024015f60405180830381865afa15801561150c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611533919081019061319c565b61196a565b9050611544828261197f565b9150505b6040517f79ba43050000000000000000000000000000000000000000000000000000000081526001600160a01b038816906379ba43059061159390869060039060019060040161326c565b606060405180830381865afa1580156115ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115d291906132a4565b509093509150611498565b945091925050505b935093915050565b6115f9868686866119fa565b6001600160a01b0385161561096d573381156116225761161d818888888888611a5f565b610461565b6020858101519085015161163a838a8a85858a611bfc565b505050505050505050565b5f807a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061168d577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef810000000083106116b9576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106116d757662386f26fc10000830492506010015b6305f5e10083106116ef576305f5e100830492506008015b612710831061170357612710830492506004015b60648310611715576064830492506002015b600a83106102db5760010192915050565b606082515f03611744575060408051602081019091525f81526102db565b5f826117745760038451600261175a91906132e6565b61176491906132f9565b61176f906004613318565b611799565b6003845160046117849190613318565b61178f9060026132e6565b61179991906132f9565b905060405191507f4142434445464748494a4b4c4d4e4f505152535455565758595a616263646566601f5261067083027f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f18603f526020820181810185865187016020810180515f82525b82841015611857576003840193508351603f8160121c16518753600187019650603f81600c1c16518753600187019650603f8160061c16518753600187019650603f811651875350600186019550611804565b9052508590506118985760038651066001811461187b576002811461188e57611896565b603d6001840353603d6002840353611896565b603d60018403535b505b9183525060405292915050565b6118ad611d46565b6118e3576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6118ed6118a5565b610b6b81611d64565b5f8060ff1961192660017f3a8e79826d53842322cdcc810d4a989eb01ac46cfabfd48dcc021625ce13c2d7613259565b60405160200161193891815260200190565b60408051808303601f1901815291815281516020928301205f9687529290921681528185209585529490945250502090565b5f818060200190518101906102db919061332f565b5f7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8311156119dd576040517fbf463fe9000000000000000000000000000000000000000000000000000000008152600481018490526024016107f4565b5f6108bc6119f46119ee865f611db0565b85611e0a565b5f611e6c565b5f611a03610a4d565b90505f5b8351811015611a5257611a3486858381518110611a2657611a26613152565b602002602001015184611eae565b611a4a85858381518110611a2657611a26613152565b600101611a07565b506105a785858585611fb0565b6001600160a01b0384163b1561096d576040517fbc197c810000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063bc197c8190611abc9089908990889088908890600401613346565b6020604051808303815f875af1925050508015611af6575060408051601f3d908101601f19168201909252611af3918101906133a3565b60015b611b76573d808015611b23576040519150601f19603f3d011682016040523d82523d5f602084013e611b28565b606091505b5080515f03611b6e576040517f57f447ce0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024016107f4565b805160208201fd5b7fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014610461576040517f57f447ce0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024016107f4565b6001600160a01b0384163b1561096d576040517ff23a6e610000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063f23a6e6190611c5990899089908890889088906004016133be565b6020604051808303815f875af1925050508015611c93575060408051601f3d908101601f19168201909252611c90918101906133a3565b60015b611cc0573d808015611b23576040519150601f19603f3d011682016040523d82523d5f602084013e611b28565b7fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014610461576040517f57f447ce0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024016107f4565b5f611d4f61108c565b5468010000000000000000900460ff16919050565b7f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45007f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4502610f44838261347c565b5f805f611dbd8585612063565b9150915080611e02576040517f22c9f7bb00000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016107f4565b509392505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d8480611e4f86868686612169565b915091505f611e5e8383612288565b9a9950505050505050505050565b5f807bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8416601b0b60e085901d611ea08282876122e6565b9350935050505b9250929050565b6001600160a01b038316611ec157505050565b5f611eca6112e4565b6001600160a01b0385165f90815260208281526040808320878452909152812054919250611ef886866112cf565b90505f80611f07838588611345565b91509150838103611f1c575050505050505050565b6001600160a01b0388165f908152602086815260408083208a84529091529020819055818314611f5157611f518888846124ce565b60408051858152602081018390529081018490526060810183905287906001600160a01b038a16907f956b049289f8dbe8716375414d9fa6bf32cde65ec1b7e102623775cacc66a6999060800160405180910390a35050505050505050565b5f611fb96124e2565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc200546040517fe5be7d900000000000000000000000000000000000000000000000000000000081529192506001600160a01b03169063e5be7d909061202a9084908990899089908990600401613538565b5f604051808303815f87803b158015612041575f80fd5b505af1158015612053573d5f803e3d5ffd5b505050506105a785858585612563565b5f601b83900b83148383826120c7577d90e40fbeea1d3a4abc8955e946fe31cdcf66f634e10000000000000000008605156120a757620186a0860595506005850194505b8586601b0b146120c257600a860595508460010194506120a7565b6120dd565b855f036120dd57505f925060019150611ea79050565b848560030b14612139575f8512156120fd57505f9250829150611ea79050565b6040517fd556b11100000000000000000000000000000000000000000000000000000000815260048101839052602481018290526044016107f4565b50507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841660e084901b1791509250929050565b5f8085158415178015612181575f92505f915061227e565b61218b848761357d565b91505f612197886127c7565b90505f6121a3876127c7565b90505f6121b08383612828565b5090505f6f0785ee10d5da46d900f436a0000000008211156121e5576f0785ee10d5da46d900f436a000000000820491506025015b670de0b6b3a764000082111561220657670de0b6b3a7640000820491506012015b633b9aca0082111561221f57633b9aca00820491506009015b61271082111561223457612710820491506004015b811561224857600a82049150600101612234565b612252818761357d565b95506122748b8a61226e878761226987600a613684565b612844565b89612929565b9097509550505050505b5094509492505050565b5f805f6122958585612063565b91509150801580156122a5575081155b15611e02576040517f8eba4d0700000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016107f4565b5f805f85121561232c576040517f4a7d166b00000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016107f4565b845f0361233e57505f905060016115e5565b8460ff8416850185811215612389576040517fd556b11100000000000000000000000000000000000000000000000000000000815260048101889052602481018790526044016107f4565b5f805f8312156123f3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb38312156123ca575f8095509550505050506115e5565b825f03600a0a91508184816123e1576123e1613201565b04955050840290911491506115e59050565b5f8313156124be57604d831315612449576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff881660448201526064016107f4565b82600a0a9150815f198161245f5761245f613201565b048411156124ac576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff881660448201526064016107f4565b50919091029250600191506115e59050565b83600195509550505050506115e5565b5f6124d984846118f6565b91909155505050565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201545f907fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc200906001600160a01b03168061253e57339250505090565b6001909101805473ffffffffffffffffffffffffffffffffffffffff19169055919050565b805182517f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c450091146125cd57825182516040517f5b059991000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016107f4565b335f5b84518110156126e8576020818102868101820151908601909101516001600160a01b0389161561269a575f828152602086815260408083206001600160a01b038d16845290915290205481811015612674576040517f03dee4c50000000000000000000000000000000000000000000000000000000081526001600160a01b038b1660048201526024810182905260448101839052606481018490526084016107f4565b5f838152602087815260408083206001600160a01b038e16845290915290209082900390555b6001600160a01b038816156126de575f828152602086815260408083206001600160a01b038c168452909152812080548392906126d89084906132e6565b90915550505b50506001016125d0565b5083516001036127685760208401515f906020850151909150866001600160a01b0316886001600160a01b0316846001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051612759929190918252602082015260400190565b60405180910390a4505061096d565b846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516127b792919061368f565b60405180910390a4505050505050565b5f80821215612824577f8000000000000000000000000000000000000000000000000000000000000000820361281e57507f8000000000000000000000000000000000000000000000000000000000000000919050565b505f0390565b5090565b5f805f1983850993909202808410938190039390930393915050565b5f805f6128518686612828565b91509150815f036128755783818161286b5761286b613201565b0492505050610b00565b8382106128bf576040517f6c59da120000000000000000000000000000000000000000000000000000000081526004810187905260248101869052604481018590526064016107f4565b5f84868809600186198101871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103025f82900382900490920185841190960395909502919093039390930492909217029150509392505050565b5f805f85871812156129f3577f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8411156129e0576129887f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60016132e6565b84036129b857507f8000000000000000000000000000000000000000000000000000000000000000905081612a2c565b6129c3600a856132f9565b6129cc906136b3565b6129d784600161357d565b91509150612a2c565b6129e9846136b3565b8391509150612a2c565b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841115612a26576129cc600a856132f9565b50829050815b94509492505050565b6001600160a01b0381168114610b6b575f80fd5b5f8060408385031215612a5a575f80fd5b8235612a6581612a35565b946020939093013593505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114610b6b575f80fd5b5f60208284031215612ab0575f80fd5b8135610b0081612a73565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612af857612af8612abb565b604052919050565b5f67ffffffffffffffff821115612b1957612b19612abb565b50601f01601f191660200190565b5f82601f830112612b36575f80fd5b8135612b49612b4482612b00565b612acf565b818152846020838601011115612b5d575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f8060c08789031215612b8e575f80fd5b8635612b9981612a35565b95506020870135612ba981612a35565b94506040870135612bb981612a35565b9350606087013592506080870135915060a087013567ffffffffffffffff811115612be2575f80fd5b612bee89828a01612b27565b9150509295509295509295565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6102d86020830184612bfb565b5f60208284031215612c4b575f80fd5b5035919050565b5f8060408385031215612c63575f80fd5b82359150602083013567ffffffffffffffff811115612c80575f80fd5b612c8c85828601612b27565b9150509250929050565b5f67ffffffffffffffff821115612caf57612caf612abb565b5060051b60200190565b5f82601f830112612cc8575f80fd5b81356020612cd8612b4483612c96565b8083825260208201915060208460051b870101935086841115612cf9575f80fd5b602086015b84811015612d155780358352918301918301612cfe565b509695505050505050565b5f805f805f60a08688031215612d34575f80fd5b8535612d3f81612a35565b94506020860135612d4f81612a35565b9350604086013567ffffffffffffffff80821115612d6b575f80fd5b612d7789838a01612cb9565b94506060880135915080821115612d8c575f80fd5b612d9889838a01612cb9565b93506080880135915080821115612dad575f80fd5b50612dba88828901612b27565b9150509295509295909350565b5f60208284031215612dd7575f80fd5b813567ffffffffffffffff811115612ded575f80fd5b612df984828501612b27565b949350505050565b5f8060408385031215612e12575f80fd5b823567ffffffffffffffff80821115612e29575f80fd5b818501915085601f830112612e3c575f80fd5b81356020612e4c612b4483612c96565b82815260059290921b84018101918181019089841115612e6a575f80fd5b948201945b83861015612e91578535612e8281612a35565b82529482019490820190612e6f565b96505086013592505080821115612ea6575f80fd5b50612c8c85828601612cb9565b5f815180845260208085019450602084015f5b83811015612ee257815187529582019590820190600101612ec6565b509495945050505050565b602081525f6102d86020830184612eb3565b5f805f805f60a08688031215612f13575f80fd5b8535612f1e81612a35565b94506020860135612f2e81612a35565b93506040860135925060608601359150608086013567ffffffffffffffff811115612f57575f80fd5b612dba88828901612b27565b5f8060408385031215612f74575f80fd5b8235612f7f81612a35565b915060208301358015158114612f93575f80fd5b809150509250929050565b5f8060408385031215612faf575f80fd5b8235612fba81612a35565b91506020830135612f9381612a35565b5f81518060208401855e5f93019283525090919050565b5f612df9612fef8386612fca565b84612fca565b7f7b22646563696d616c73223a000000000000000000000000000000000000000081525f613026600c830187612fca565b7f2c226465736372697074696f6e223a2231206f6620746865736520726563656981527f7074732063616e206265206275726e656420616c6f6e67736964652031200000602082015261307c603e820187612fca565b90507f20746f2072656465656d2000000000000000000000000000000000000000000081526130ae600b820186612fca565b90507f2066726f6d20746865207661756c742e222c000000000000000000000000000081527f226e616d65223a220000000000000000000000000000000000000000000000006012820152613106601a820185612fca565b7f227d0000000000000000000000000000000000000000000000000000000000008152600201979650505050505050565b5f60208284031215613147575f80fd5b8151610b0081612a35565b634e487b7160e01b5f52603260045260245ffd5b5f613173612b4484612b00565b9050828152838383011115613186575f80fd5b8282602083015e5f602084830101529392505050565b5f602082840312156131ac575f80fd5b815167ffffffffffffffff8111156131c2575f80fd5b8201601f810184136131d2575f80fd5b612df984825160208401613166565b5f602082840312156131f1575f80fd5b815160ff81168114610b00575f80fd5b634e487b7160e01b5f52601260045260245ffd5b6001600160a01b0384168152826020820152606060408201525f61323c6060830184612bfb565b95945050505050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156102db576102db613245565b83815260208101839052606081016003831061329657634e487b7160e01b5f52602160045260245ffd5b826040830152949350505050565b5f805f606084860312156132b6575f80fd5b8351925060208401519150604084015167ffffffffffffffff811681146132db575f80fd5b809150509250925092565b808201808211156102db576102db613245565b5f8261331357634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176102db576102db613245565b5f6020828403121561333f575f80fd5b5051919050565b5f6001600160a01b03808816835280871660208401525060a0604083015261337160a0830186612eb3565b82810360608401526133838186612eb3565b905082810360808401526133978185612bfb565b98975050505050505050565b5f602082840312156133b3575f80fd5b8151610b0081612a73565b5f6001600160a01b03808816835280871660208401525084604083015283606083015260a060808301526133f560a0830184612bfb565b979650505050505050565b600181811c9082168061341457607f821691505b60208210810361343257634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115610f4457805f5260205f20601f840160051c8101602085101561345d5750805b601f840160051c820191505b818110156105a7575f8155600101613469565b815167ffffffffffffffff81111561349657613496612abb565b6134aa816134a48454613400565b84613438565b602080601f8311600181146134dd575f84156134c65750858301515b5f19600386901b1c1916600185901b17855561096d565b5f85815260208120601f198616915b8281101561350b578886015182559484019460019091019084016134ec565b508582101561352857878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f6001600160a01b038088168352808716602084015280861660408401525060a0606083015261356b60a0830185612eb3565b82810360808401526133978185612eb3565b8082018281125f83128015821682158216171561359c5761359c613245565b505092915050565b600181815b808511156135de57815f19048211156135c4576135c4613245565b808516156135d157918102915b93841c93908002906135a9565b509250929050565b5f826135f4575060016102db565b8161360057505f6102db565b816001811461361657600281146136205761363c565b60019150506102db565b60ff84111561363157613631613245565b50506001821b6102db565b5060208310610133831016604e8410600b841016171561365f575081810a6102db565b61366983836135a4565b805f190482111561367c5761367c613245565b029392505050565b5f6102d883836135e6565b604081525f6136a16040830185612eb3565b828103602084015261323c8185612eb3565b5f7f8000000000000000000000000000000000000000000000000000000000000000820361281e5761281e61324556"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b50600436106100fa575f3560e01c8063481c6a7511610093578063a22cb46511610063578063a22cb46514610232578063c2530e3914610245578063e985e9c514610258578063f242432a146102b2575f80fd5b8063481c6a75146101bd5780634e1273f4146101f75780636d5b3f781461021757806395d89b411461022a575f80fd5b80630e89341c116100ce5780630e89341c14610171578063177769cb146101845780632eb2c2d614610197578063439fab91146101aa575f80fd5b8062fdd58e146100fe57806301ffc9a714610124578063043fa9871461014757806306fdde031461015c575b5f80fd5b61011161010c366004612a49565b6102c5565b6040519081526020015b60405180910390f35b610137610132366004612aa0565b6102e1565b604051901515815260200161011b565b61015a610155366004612b79565b6103c3565b005b61016461046a565b60405161011b9190612c29565b61016461017f366004612c3b565b6104cf565b61015a610192366004612c52565b610580565b61015a6101a5366004612d20565b61058f565b6101116101b8366004612dc7565b6105ae565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc200546040516001600160a01b03909116815260200161011b565b61020a610205366004612e01565b6107ae565b60405161011b9190612eed565b61015a610225366004612eff565b6108c5565b610164610975565b61015a610240366004612f63565b6109c6565b61015a610253366004612eff565b6109d1565b610137610266366004612f9e565b6001600160a01b039182165f9081527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45016020908152604080832093909416825291909152205460ff1690565b61015a6102c0366004612eff565b610a37565b5f6102d883836102d3610a4d565b610ab3565b90505b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a2600000000000000000000000000000000000000000000000000000000148061037357507fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000145b806102db57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146102db565b6103cb610b07565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038816179055856104208686868686610b6e565b6104617fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19169055565b50505050505050565b6060610474610c25565b6040518060400160405280600881526020017f20526563656970740000000000000000000000000000000000000000000000008152506040516020016104bb929190612fe1565b604051602081830303815290604052905090565b60605f6104e56104dd610cd3565b60ff16610d78565b6104ed610c25565b6104f5610e15565b6104fd61046a565b6040516020016105109493929190612ff5565b60408051601f19818403018152828201909152601d82527f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c0000006020830152915061055882610ef5565b604051602001610569929190612fe1565b604051602081830303815290604052915050919050565b61058b338383610f01565b5050565b61059a335b86610f49565b6105a78585858585610ff9565b5050505050565b5f806105b861108c565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156105e45750825b90505f8267ffffffffffffffff1660011480156106005750303b155b90508115801561060e575080155b15610645576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156106a65784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6106bd60405180602001604052805f8152506110b4565b5f7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc20090505f888060200190518101906106f69190613137565b825473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039190911617909155507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc3955083156107a45784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b606081518351146107fd57815183516040517f5b059991000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044015b60405180910390fd5b5f610806610a4d565b90505f845167ffffffffffffffff81111561082357610823612abb565b60405190808252806020026020018201604052801561084c578160200160208202803683370190505b5090505f5b85518110156108bc5761089786828151811061086f5761086f613152565b602002602001015186838151811061088957610889613152565b602002602001015185610ab3565b8282815181106108a9576108a9613152565b6020908102919091010152600101610851565b50949350505050565b6108cd610b07565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03871617905584610920868584610f01565b61092c858585856110c5565b61096d7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19169055565b505050505050565b606061097f610c25565b6040518060400160405280600581526020017f20524350540000000000000000000000000000000000000000000000000000008152506040516020016104bb929190612fe1565b61058b33838361113a565b6109d9610b07565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03871617905584610a2c868584610f01565b61092c85858561124e565b610a4033610594565b6105a78585858585610b6e565b5f306001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a8a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aae9190613137565b905090565b5f80610abf85856112cf565b90505f610aca6112e4565b6001600160a01b0387165f90815260209182526040808220888352909252908120549150610af9838387611345565b5093505050505b9392505050565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc20080546001600160a01b03163314610b6b576040517fc0b2335a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b6001600160a01b038416610bb0576040517f57f447ce0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b038516610bf2576040517f01a835140000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6040805160018082526020820186905281830190815260608201859052608082019092529061046187878484875f6115ed565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc2008054604080517f95d89b410000000000000000000000000000000000000000000000000000000081529051606093926001600160a01b0316916395d89b41916004808301925f9291908290030181865afa158015610ca6573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610ccd919081019061319c565b91505090565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc2008054604080517f313ce56700000000000000000000000000000000000000000000000000000000815290515f93926001600160a01b03169163313ce5679160048083019260209291908290030181865afa158015610d54573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ccd91906131e1565b60605f610d8483611645565b60010190505f8167ffffffffffffffff811115610da357610da3612abb565b6040519080825280601f01601f191660200182016040528015610dcd576020820181803683370190505b5090508181016020015b5f19017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084610dd757509392505050565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc2008054604080517f38d52e0f0000000000000000000000000000000000000000000000000000000081529051606093926001600160a01b0316916338d52e0f9160048083019260209291908290030181865afa158015610e97573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ebb9190613137565b6001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015610ca6573d5f803e3d5ffd5b60606102db825f611726565b805115610f44577fd66d6a9810a5cef78b704e7e04334961e997c81d337f029f74637f060f3d8d65838383604051610f3b93929190613215565b60405180910390a15b505050565b816001600160a01b0316816001600160a01b031614158015610faf57506001600160a01b038082165f9081527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4501602090815260408083209386168352929052205460ff16155b1561058b576040517fe237d9220000000000000000000000000000000000000000000000000000000081526001600160a01b038084166004830152821660248201526044016107f4565b6001600160a01b03841661103b576040517f57f447ce0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b03851661107d576040517f01a835140000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6105a7858585858560016115ed565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006102db565b6110bc6118a5565b610b6b816118e5565b6001600160a01b038416611107576040517f57f447ce0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6040805160018082526020820186905281830190815260608201859052608082019092529061096d5f87848487846115ed565b7f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45006001600160a01b03841661119d576040517f3e31884e0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b0383166111df576040517fced3e1000000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b038481165f818152600184016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a350505050565b6001600160a01b038316611290576040517f01a835140000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b604080516001808252602082018590528183019081526060820184905260a082019092525f608082018181529192916105a791879185908590836115ed565b5f806112db84846118f6565b54949350505050565b5f8060ff1961131460017fedb99b3af8e1c50d494d6f1b4c75245a0b733cb90baa42bfe0e2f5bc8b000f82613259565b60405160200161132691815260200190565b60408051601f1981840301815291905280516020909101201692915050565b6040517f79ba43050000000000000000000000000000000000000000000000000000000081525f9081908490829081906001600160a01b038716906379ba43059061139a90869060039060019060040161326c565b606060405180830381865afa1580156113b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113d991906132a4565b5091509150875f03611496575b5f198214611488576040517f79ba430500000000000000000000000000000000000000000000000000000000815291925082916001600160a01b038716906379ba43059061143e90859060039060019060040161326c565b606060405180830381865afa158015611459573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061147d91906132a4565b5090925090506113e6565b5f83945094505050506115e5565b875b5f1983146115dd5782935060028203611548576040517fb21a2494000000000000000000000000000000000000000000000000000000008152600481018490525f90611538906001600160a01b038a169063b21a2494906024015f60405180830381865afa15801561150c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611533919081019061319c565b61196a565b9050611544828261197f565b9150505b6040517f79ba43050000000000000000000000000000000000000000000000000000000081526001600160a01b038816906379ba43059061159390869060039060019060040161326c565b606060405180830381865afa1580156115ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115d291906132a4565b509093509150611498565b945091925050505b935093915050565b6115f9868686866119fa565b6001600160a01b0385161561096d573381156116225761161d818888888888611a5f565b610461565b6020858101519085015161163a838a8a85858a611bfc565b505050505050505050565b5f807a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061168d577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef810000000083106116b9576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106116d757662386f26fc10000830492506010015b6305f5e10083106116ef576305f5e100830492506008015b612710831061170357612710830492506004015b60648310611715576064830492506002015b600a83106102db5760010192915050565b606082515f03611744575060408051602081019091525f81526102db565b5f826117745760038451600261175a91906132e6565b61176491906132f9565b61176f906004613318565b611799565b6003845160046117849190613318565b61178f9060026132e6565b61179991906132f9565b905060405191507f4142434445464748494a4b4c4d4e4f505152535455565758595a616263646566601f5261067083027f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f18603f526020820181810185865187016020810180515f82525b82841015611857576003840193508351603f8160121c16518753600187019650603f81600c1c16518753600187019650603f8160061c16518753600187019650603f811651875350600186019550611804565b9052508590506118985760038651066001811461187b576002811461188e57611896565b603d6001840353603d6002840353611896565b603d60018403535b505b9183525060405292915050565b6118ad611d46565b6118e3576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6118ed6118a5565b610b6b81611d64565b5f8060ff1961192660017f3a8e79826d53842322cdcc810d4a989eb01ac46cfabfd48dcc021625ce13c2d7613259565b60405160200161193891815260200190565b60408051808303601f1901815291815281516020928301205f9687529290921681528185209585529490945250502090565b5f818060200190518101906102db919061332f565b5f7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8311156119dd576040517fbf463fe9000000000000000000000000000000000000000000000000000000008152600481018490526024016107f4565b5f6108bc6119f46119ee865f611db0565b85611e0a565b5f611e6c565b5f611a03610a4d565b90505f5b8351811015611a5257611a3486858381518110611a2657611a26613152565b602002602001015184611eae565b611a4a85858381518110611a2657611a26613152565b600101611a07565b506105a785858585611fb0565b6001600160a01b0384163b1561096d576040517fbc197c810000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063bc197c8190611abc9089908990889088908890600401613346565b6020604051808303815f875af1925050508015611af6575060408051601f3d908101601f19168201909252611af3918101906133a3565b60015b611b76573d808015611b23576040519150601f19603f3d011682016040523d82523d5f602084013e611b28565b606091505b5080515f03611b6e576040517f57f447ce0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024016107f4565b805160208201fd5b7fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014610461576040517f57f447ce0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024016107f4565b6001600160a01b0384163b1561096d576040517ff23a6e610000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063f23a6e6190611c5990899089908890889088906004016133be565b6020604051808303815f875af1925050508015611c93575060408051601f3d908101601f19168201909252611c90918101906133a3565b60015b611cc0573d808015611b23576040519150601f19603f3d011682016040523d82523d5f602084013e611b28565b7fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014610461576040517f57f447ce0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024016107f4565b5f611d4f61108c565b5468010000000000000000900460ff16919050565b7f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45007f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4502610f44838261347c565b5f805f611dbd8585612063565b9150915080611e02576040517f22c9f7bb00000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016107f4565b509392505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d8480611e4f86868686612169565b915091505f611e5e8383612288565b9a9950505050505050505050565b5f807bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8416601b0b60e085901d611ea08282876122e6565b9350935050505b9250929050565b6001600160a01b038316611ec157505050565b5f611eca6112e4565b6001600160a01b0385165f90815260208281526040808320878452909152812054919250611ef886866112cf565b90505f80611f07838588611345565b91509150838103611f1c575050505050505050565b6001600160a01b0388165f908152602086815260408083208a84529091529020819055818314611f5157611f518888846124ce565b60408051858152602081018390529081018490526060810183905287906001600160a01b038a16907f956b049289f8dbe8716375414d9fa6bf32cde65ec1b7e102623775cacc66a6999060800160405180910390a35050505050505050565b5f611fb96124e2565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc200546040517fe5be7d900000000000000000000000000000000000000000000000000000000081529192506001600160a01b03169063e5be7d909061202a9084908990899089908990600401613538565b5f604051808303815f87803b158015612041575f80fd5b505af1158015612053573d5f803e3d5ffd5b505050506105a785858585612563565b5f601b83900b83148383826120c7577d90e40fbeea1d3a4abc8955e946fe31cdcf66f634e10000000000000000008605156120a757620186a0860595506005850194505b8586601b0b146120c257600a860595508460010194506120a7565b6120dd565b855f036120dd57505f925060019150611ea79050565b848560030b14612139575f8512156120fd57505f9250829150611ea79050565b6040517fd556b11100000000000000000000000000000000000000000000000000000000815260048101839052602481018290526044016107f4565b50507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841660e084901b1791509250929050565b5f8085158415178015612181575f92505f915061227e565b61218b848761357d565b91505f612197886127c7565b90505f6121a3876127c7565b90505f6121b08383612828565b5090505f6f0785ee10d5da46d900f436a0000000008211156121e5576f0785ee10d5da46d900f436a000000000820491506025015b670de0b6b3a764000082111561220657670de0b6b3a7640000820491506012015b633b9aca0082111561221f57633b9aca00820491506009015b61271082111561223457612710820491506004015b811561224857600a82049150600101612234565b612252818761357d565b95506122748b8a61226e878761226987600a613684565b612844565b89612929565b9097509550505050505b5094509492505050565b5f805f6122958585612063565b91509150801580156122a5575081155b15611e02576040517f8eba4d0700000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016107f4565b5f805f85121561232c576040517f4a7d166b00000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016107f4565b845f0361233e57505f905060016115e5565b8460ff8416850185811215612389576040517fd556b11100000000000000000000000000000000000000000000000000000000815260048101889052602481018790526044016107f4565b5f805f8312156123f3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb38312156123ca575f8095509550505050506115e5565b825f03600a0a91508184816123e1576123e1613201565b04955050840290911491506115e59050565b5f8313156124be57604d831315612449576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff881660448201526064016107f4565b82600a0a9150815f198161245f5761245f613201565b048411156124ac576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff881660448201526064016107f4565b50919091029250600191506115e59050565b83600195509550505050506115e5565b5f6124d984846118f6565b91909155505050565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201545f907fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc200906001600160a01b03168061253e57339250505090565b6001909101805473ffffffffffffffffffffffffffffffffffffffff19169055919050565b805182517f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c450091146125cd57825182516040517f5b059991000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016107f4565b335f5b84518110156126e8576020818102868101820151908601909101516001600160a01b0389161561269a575f828152602086815260408083206001600160a01b038d16845290915290205481811015612674576040517f03dee4c50000000000000000000000000000000000000000000000000000000081526001600160a01b038b1660048201526024810182905260448101839052606481018490526084016107f4565b5f838152602087815260408083206001600160a01b038e16845290915290209082900390555b6001600160a01b038816156126de575f828152602086815260408083206001600160a01b038c168452909152812080548392906126d89084906132e6565b90915550505b50506001016125d0565b5083516001036127685760208401515f906020850151909150866001600160a01b0316886001600160a01b0316846001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051612759929190918252602082015260400190565b60405180910390a4505061096d565b846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516127b792919061368f565b60405180910390a4505050505050565b5f80821215612824577f8000000000000000000000000000000000000000000000000000000000000000820361281e57507f8000000000000000000000000000000000000000000000000000000000000000919050565b505f0390565b5090565b5f805f1983850993909202808410938190039390930393915050565b5f805f6128518686612828565b91509150815f036128755783818161286b5761286b613201565b0492505050610b00565b8382106128bf576040517f6c59da120000000000000000000000000000000000000000000000000000000081526004810187905260248101869052604481018590526064016107f4565b5f84868809600186198101871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103025f82900382900490920185841190960395909502919093039390930492909217029150509392505050565b5f805f85871812156129f3577f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8411156129e0576129887f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60016132e6565b84036129b857507f8000000000000000000000000000000000000000000000000000000000000000905081612a2c565b6129c3600a856132f9565b6129cc906136b3565b6129d784600161357d565b91509150612a2c565b6129e9846136b3565b8391509150612a2c565b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841115612a26576129cc600a856132f9565b50829050815b94509492505050565b6001600160a01b0381168114610b6b575f80fd5b5f8060408385031215612a5a575f80fd5b8235612a6581612a35565b946020939093013593505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114610b6b575f80fd5b5f60208284031215612ab0575f80fd5b8135610b0081612a73565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612af857612af8612abb565b604052919050565b5f67ffffffffffffffff821115612b1957612b19612abb565b50601f01601f191660200190565b5f82601f830112612b36575f80fd5b8135612b49612b4482612b00565b612acf565b818152846020838601011115612b5d575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f8060c08789031215612b8e575f80fd5b8635612b9981612a35565b95506020870135612ba981612a35565b94506040870135612bb981612a35565b9350606087013592506080870135915060a087013567ffffffffffffffff811115612be2575f80fd5b612bee89828a01612b27565b9150509295509295509295565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6102d86020830184612bfb565b5f60208284031215612c4b575f80fd5b5035919050565b5f8060408385031215612c63575f80fd5b82359150602083013567ffffffffffffffff811115612c80575f80fd5b612c8c85828601612b27565b9150509250929050565b5f67ffffffffffffffff821115612caf57612caf612abb565b5060051b60200190565b5f82601f830112612cc8575f80fd5b81356020612cd8612b4483612c96565b8083825260208201915060208460051b870101935086841115612cf9575f80fd5b602086015b84811015612d155780358352918301918301612cfe565b509695505050505050565b5f805f805f60a08688031215612d34575f80fd5b8535612d3f81612a35565b94506020860135612d4f81612a35565b9350604086013567ffffffffffffffff80821115612d6b575f80fd5b612d7789838a01612cb9565b94506060880135915080821115612d8c575f80fd5b612d9889838a01612cb9565b93506080880135915080821115612dad575f80fd5b50612dba88828901612b27565b9150509295509295909350565b5f60208284031215612dd7575f80fd5b813567ffffffffffffffff811115612ded575f80fd5b612df984828501612b27565b949350505050565b5f8060408385031215612e12575f80fd5b823567ffffffffffffffff80821115612e29575f80fd5b818501915085601f830112612e3c575f80fd5b81356020612e4c612b4483612c96565b82815260059290921b84018101918181019089841115612e6a575f80fd5b948201945b83861015612e91578535612e8281612a35565b82529482019490820190612e6f565b96505086013592505080821115612ea6575f80fd5b50612c8c85828601612cb9565b5f815180845260208085019450602084015f5b83811015612ee257815187529582019590820190600101612ec6565b509495945050505050565b602081525f6102d86020830184612eb3565b5f805f805f60a08688031215612f13575f80fd5b8535612f1e81612a35565b94506020860135612f2e81612a35565b93506040860135925060608601359150608086013567ffffffffffffffff811115612f57575f80fd5b612dba88828901612b27565b5f8060408385031215612f74575f80fd5b8235612f7f81612a35565b915060208301358015158114612f93575f80fd5b809150509250929050565b5f8060408385031215612faf575f80fd5b8235612fba81612a35565b91506020830135612f9381612a35565b5f81518060208401855e5f93019283525090919050565b5f612df9612fef8386612fca565b84612fca565b7f7b22646563696d616c73223a000000000000000000000000000000000000000081525f613026600c830187612fca565b7f2c226465736372697074696f6e223a2231206f6620746865736520726563656981527f7074732063616e206265206275726e656420616c6f6e67736964652031200000602082015261307c603e820187612fca565b90507f20746f2072656465656d2000000000000000000000000000000000000000000081526130ae600b820186612fca565b90507f2066726f6d20746865207661756c742e222c000000000000000000000000000081527f226e616d65223a220000000000000000000000000000000000000000000000006012820152613106601a820185612fca565b7f227d0000000000000000000000000000000000000000000000000000000000008152600201979650505050505050565b5f60208284031215613147575f80fd5b8151610b0081612a35565b634e487b7160e01b5f52603260045260245ffd5b5f613173612b4484612b00565b9050828152838383011115613186575f80fd5b8282602083015e5f602084830101529392505050565b5f602082840312156131ac575f80fd5b815167ffffffffffffffff8111156131c2575f80fd5b8201601f810184136131d2575f80fd5b612df984825160208401613166565b5f602082840312156131f1575f80fd5b815160ff81168114610b00575f80fd5b634e487b7160e01b5f52601260045260245ffd5b6001600160a01b0384168152826020820152606060408201525f61323c6060830184612bfb565b95945050505050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156102db576102db613245565b83815260208101839052606081016003831061329657634e487b7160e01b5f52602160045260245ffd5b826040830152949350505050565b5f805f606084860312156132b6575f80fd5b8351925060208401519150604084015167ffffffffffffffff811681146132db575f80fd5b809150509250925092565b808201808211156102db576102db613245565b5f8261331357634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176102db576102db613245565b5f6020828403121561333f575f80fd5b5051919050565b5f6001600160a01b03808816835280871660208401525060a0604083015261337160a0830186612eb3565b82810360608401526133838186612eb3565b905082810360808401526133978185612bfb565b98975050505050505050565b5f602082840312156133b3575f80fd5b8151610b0081612a73565b5f6001600160a01b03808816835280871660208401525084604083015283606083015260a060808301526133f560a0830184612bfb565b979650505050505050565b600181811c9082168061341457607f821691505b60208210810361343257634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115610f4457805f5260205f20601f840160051c8101602085101561345d5750805b601f840160051c820191505b818110156105a7575f8155600101613469565b815167ffffffffffffffff81111561349657613496612abb565b6134aa816134a48454613400565b84613438565b602080601f8311600181146134dd575f84156134c65750858301515b5f19600386901b1c1916600185901b17855561096d565b5f85815260208120601f198616915b8281101561350b578886015182559484019460019091019084016134ec565b508582101561352857878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f6001600160a01b038088168352808716602084015280861660408401525060a0606083015261356b60a0830185612eb3565b82810360808401526133978185612eb3565b8082018281125f83128015821682158216171561359c5761359c613245565b505092915050565b600181815b808511156135de57815f19048211156135c4576135c4613245565b808516156135d157918102915b93841c93908002906135a9565b509250929050565b5f826135f4575060016102db565b8161360057505f6102db565b816001811461361657600281146136205761363c565b60019150506102db565b60ff84111561363157613631613245565b50506001821b6102db565b5060208310610133831016604e8410600b841016171561365f575081810a6102db565b61366983836135a4565b805f190482111561367c5761367c613245565b029392505050565b5f6102d883836135e6565b604081525f6136a16040830185612eb3565b828103602084015261323c8185612eb3565b5f7f8000000000000000000000000000000000000000000000000000000000000000820361281e5761281e61324556"; diff --git a/src/generated/0_1_3/StoxReceiptVault.pointers.sol b/src/generated/0_1_3/StoxReceiptVault.pointers.sol deleted file mode 100644 index 95c52050..00000000 --- a/src/generated/0_1_3/StoxReceiptVault.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x22aa77aa9ffec4d290a8cacbcd8444b85761b6a1fb77c3f1b1a73490a7d9f972); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0xD7f91c1C6e6e651Ec3F1Fd707aF7CbB7526206e1); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"608060405234801561000f575f80fd5b5060017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005561003c610041565b6100f3565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100915760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100f05780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b615ffa806101005f395ff3fe608060405260043610610337575f3560e01c8063715018a6116101af578063bbec4d06116100eb578063dd62ed3e11610094578063e70689f51161006e578063e70689f5146109ab578063f2fde38b146109ca578063f5647943146109e9578063f5d214f514610a1e5761033e565b8063dd62ed3e146108ed578063e1e6b89814610950578063e5be7d901461098c5761033e565b8063c77b66c2116100c5578063c77b66c2146108b3578063d09edf31146108c6578063db2088f4146108da5761033e565b8063bbec4d0614610875578063c54cafee14610894578063c63d75b6146105635761033e565b80638da5cb5b11610158578063a9059cbb11610132578063a9059cbb146107b8578063ac9650d8146107d7578063ae57de0c14610803578063ae98b39f146108225761033e565b80638da5cb5b14610771578063921a4c421461078557806395d89b41146107a45761033e565b80637a7af70d116101895780637a7af70d1461072057806381c3fcb91461073357806385b68756146107525761033e565b8063715018a6146106ce578063770afee1146106e2578063786cd916146107015761033e565b8063276b11401161027e5780634abe413711610227578063633ac71711610201578063633ac7171461061e5780636ba235211461063d5780636c876b941461069057806370a08231146106af5761033e565b80634abe4137146105c157806356db02e8146105e057806359f89dda146105ff5761033e565b8063402d267d11610258578063402d267d14610563578063439fab9114610583578063488bd7b0146105a25761033e565b8063276b1140146104fe578063313ce5671461051157806338d52e0f146105375761033e565b806318160ddd116102e05780631f6759d3116102ba5780631f6759d31461048d57806323b872dd146104c05780632755c6c7146104df5761033e565b806318160ddd1461043b578063181e7b3b1461044f5780631e4344a11461046e5761033e565b806306fdde031161031157806306fdde03146103e8578063095ea7b3146104095780631423feba146104285761033e565b806301e1d1141461037357806301ffc9a71461039a578063058a628f146103c95761033e565b3661033e57005b73b7e24412126ad6a2ce19cbd79fd11b68e7f30cf6365f80375f80365f845af43d5f803e80801561036d573d5ff35b3d5ffd5b005b34801561037e575f80fd5b50610387610a51565b6040519081526020015b60405180910390f35b3480156103a5575f80fd5b506103b96103b4366004614f0e565b610a5f565b6040519015158152602001610391565b3480156103d4575f80fd5b506103716103e3366004614f61565b610aba565b3480156103f3575f80fd5b506103fc610ce3565b6040516103919190614faa565b348015610414575f80fd5b506103b9610423366004614fbc565b610db6565b610387610436366004615109565b610dcd565b348015610446575f80fd5b50610387610e17565b34801561045a575f80fd5b50610387610469366004615168565b610e20565b348015610479575f80fd5b50610371610488366004615188565b610e3f565b348015610498575f80fd5b507f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70054610387565b3480156104cb575f80fd5b506103b96104da36600461519f565b610ecb565b3480156104ea575f80fd5b506103716104f9366004614fbc565b610eee565b61038761050c366004615168565b611028565b34801561051c575f80fd5b50610525611053565b60405160ff9091168152602001610391565b348015610542575f80fd5b5061054b6110f8565b6040516001600160a01b039091168152602001610391565b34801561056e575f80fd5b5061038761057d366004614f61565b505f1990565b34801561058e575f80fd5b5061038761059d3660046151dd565b61112c565b3480156105ad575f80fd5b506103876105bc366004615168565b6113d1565b3480156105cc575f80fd5b506103876105db366004614fbc565b6113e9565b3480156105eb575f80fd5b506103876105fa36600461520f565b6114a3565b34801561060a575f80fd5b50610371610619366004615256565b6117e4565b348015610629575f80fd5b50610371610638366004614f61565b61181c565b348015610648575f80fd5b50610387610657366004614f61565b6001600160a01b03165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be701602052604090205490565b34801561069b575f80fd5b506103716106aa366004614f61565b611949565b3480156106ba575f80fd5b506103876106c9366004614f61565b611a49565b3480156106d9575f80fd5b50610371611a92565b3480156106ed575f80fd5b506103876106fc366004615256565b611aa5565b34801561070c575f80fd5b5061037161071b366004614fbc565b611c5f565b61038761072e366004615168565b611d90565b34801561073e575f80fd5b5061037161074d3660046151dd565b611da5565b34801561075d575f80fd5b5061038761076c366004614fbc565b611de1565b34801561077c575f80fd5b5061054b611ec4565b348015610790575f80fd5b5061038761079f3660046152ab565b611ecd565b3480156107af575f80fd5b506103fc611efa565b3480156107c3575f80fd5b506103b96107d2366004614fbc565b611f4b565b3480156107e2575f80fd5b506107f66107f136600461531c565b611f58565b604051610391919061538b565b34801561080e575f80fd5b5061038761081d3660046152ab565b61203e565b34801561082d575f80fd5b5061038761083c366004614f61565b6001600160a01b03165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be702602052604090205490565b348015610880575f80fd5b5061038761088f366004615168565b612061565b34801561089f575f80fd5b506103876108ae366004615449565b61206f565b6103876108c1366004615109565b612157565b3480156108d1575f80fd5b5061054b612186565b6103876108e8366004615168565b6121ae565b3480156108f8575f80fd5b506103876109073660046154ae565b6001600160a01b039182165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b34801561095b575f80fd5b507f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031661054b565b348015610997575f80fd5b506103716109a6366004615557565b6121c2565b3480156109b6575f80fd5b506103716109c53660046155ed565b6122f9565b3480156109d5575f80fd5b506103716109e4366004614f61565b612462565b3480156109f4575f80fd5b507fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd025442116103b9565b348015610a29575f80fd5b507fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0154610387565b5f610a5a610e17565b905090565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f59f89dda000000000000000000000000000000000000000000000000000000001480610ab45750610ab4826124b8565b92915050565b6040517f248a9ca30000000000000000000000000000000000000000000000000000000081527ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f8960048201525f906001600160a01b0383169063248a9ca390602401602060405180830381865afa158015610b37573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b5b9190615645565b905080610bca576040517f76728ed90000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201527ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f8960248201526044015b60405180910390fd5b6040517f248a9ca30000000000000000000000000000000000000000000000000000000081527f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e760048201525f906001600160a01b0384169063248a9ca390602401602060405180830381865afa158015610c47573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c6b9190615645565b905080610cd5576040517f76728ed90000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201527f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e76024820152604401610bc1565b610cde836125e6565b505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0380546060917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0091610d349061565c565b80601f0160208091040260200160405190810160405280929190818152602001828054610d609061565c565b8015610dab5780601f10610d8257610100808354040283529160200191610dab565b820191905f5260205f20905b815481529060010190602001808311610d8e57829003601f168201915b505050505091505090565b5f33610dc38185856125f7565b5060019392505050565b5f80610dd7612604565b90505f610df187610deb335b89865f61265b565b8761266f565b9050610e008787838588612685565b610e0b335b476128ac565b9150505b949350505050565b5f610a5a612955565b5f610e3883670de0b6b3a7640000612ab4565b612ab4565b9392505050565b610e47612ac0565b7f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be7008054821115610e75578181555b7fff9fd4facd8bd30d905cc7ffbd03e8829a414df4c6554d155d132c3377868a42610e9e611ec4565b8254604080516001600160a01b039093168352602083018690528201526060015b60405180910390a15050565b5f33610ed8858285612b0b565b610ee3858585612bbf565b506001949350505050565b610ef6612ac0565b805f03610f3a576040517f5a6084530000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610bc1565b6001600160a01b0382165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70260205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70090821115610fb7576001600160a01b0383165f90815260028201602052604090208290555b7fa1e5b368dc99c8558f28b1e7e8cb7ab542c989a4b697628ba7bfffe0aeaccffd610fe0611ec4565b6001600160a01b038581165f818152600286016020908152604091829020548251959094168552840191909152820185905260608201526080015b60405180910390a1505050565b5f8061104884611042335b3361103c612604565b5f61265b565b85612c4e565b9050610e3833610e05565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f308970152310243260080545f91906001600160a01b0316803b806110905760126110f0565b816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110f091906156a7565b935050505090565b5f807f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f30897015231024326005b546001600160a01b031692915050565b5f80611136612c65565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156111625750825b90505f8267ffffffffffffffff16600114801561117e5750303b155b90508115801561118c575080155b156111c3576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156112245784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b61122c612c8d565b5f878060200190518101906112419190615714565b90506112508160200151612cc6565b6020810151516001600160a01b031615611296576040517f8951799200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80516001600160a01b03166112d7576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6112e030612e39565b80516112eb90612f99565b7ffa89761502e992c8c755fba778ced00f4562485023f656906eb76f5dd65a9fe53360408051808201825284516001600160a01b0316815260208086015190820152905161133a92919061580b565b60405180910390a17fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc396505083156113c75784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b5f610e38836113e4335b3386600161265b565b613021565b5f61141b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031690565b6040517efdd58e0000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015260248201859052919091169062fdd58e90604401602060405180830381865afa15801561147f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e389190615645565b5f6114ac61302e565b825f036114e5576040517f312497b000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6115a98461151b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031690565b6040517efdd58e0000000000000000000000000000000000000000000000000000000081526001600160a01b038a81166004830152602482018a9052919091169062fdd58e90604401602060405180830381865afa15801561157f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115a39190615645565b9061305c565b905080156116c6577f88e2280ece62e9296d3578b77647db2c11f9fa7e42578e2db5d4262123ffae3e3387878785886040516115ea969594939291906158af565b60405180910390a17f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b03166001600160a01b031663043fa98733883360405160e085901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b03938416600482015291831660248301529091166044820152606481018890526084810184905260c060a48201525f60c482015260e4015f604051808303815f87803b1580156116af575f80fd5b505af11580156116c1573d5f803e3d5ffd5b505050505b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f3dd35eca0ca8a128757fa464a5dfa4ad6cc4853cad96dce4e90fdbea4f0a52e36040518060a001604052808c6001600160a01b031681526020018b81526020018a81526020018781526020018981525060405160200161175d91906158f8565b6040516020818303038152906040526040518463ffffffff1660e01b815260040161178a93929190615943565b5f604051808303815f87803b1580156117a1575f80fd5b505af11580156117b3573d5f803e3d5ffd5b5093945050505050610e0f60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b8282826040517f3ae4063b000000000000000000000000000000000000000000000000000000008152600401610bc193929190615943565b611824612ac0565b6001600160a01b0381165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70260205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be7009042116118d9576001600160a01b0382165f818152600283016020526040908190205490517f81a7897700000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610bc1565b6001600160a01b0382165f9081526002820160205260408120557fa1e5b368dc99c8558f28b1e7e8cb7ab542c989a4b697628ba7bfffe0aeaccffd61191c611ec4565b604080516001600160a01b03928316815291851660208301525f9082018190526060820152608001610ebf565b611951612ac0565b6001600160a01b0381165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70160205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be700904211611a06576001600160a01b0382165f818152600183016020526040908190205490517ff1b01b5400000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610bc1565b6001600160a01b0382165f9081526001820160205260408120557fd08871fffa9d03c01fcba597af5dfbe64cb26f207debdae1af2532695447499161191c611ec4565b5f80611a548361306b565b90505f611a5f61307e565b6001600160a01b0385165f90815260038201602052604081205491925090611a889084906130df565b5095945050505050565b611a9a612ac0565b611aa35f612f99565b565b5f611aae61302e565b825f03611ae7576040517f312497b000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f611af5846115a387611a49565b90508015611b47577f3fc1c49e72362e91416388fe7a107b92db924642476e83e701eeeb6256d7249e3386868487604051611b3495949392919061596a565b60405180910390a1611b47853383612bbf565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f54f0af3716c79b30b8c228679d31d77a1a5f526c16af3262730e0a8de4363fed60405180608001604052808b6001600160a01b031681526020018a815260200187815260200189815250604051602001611bd891906159a1565b6040516020818303038152906040526040518463ffffffff1660e01b8152600401611c0593929190615943565b5f604051808303815f87803b158015611c1c575f80fd5b505af1158015611c2e573d5f803e3d5ffd5b5093945050505050610e3860017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b611c67612ac0565b805f03611cab576040517ffd86061b0000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610bc1565b6001600160a01b0382165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70160205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70090821115611d28576001600160a01b0383165f90815260018201602052604090208290555b7fd08871fffa9d03c01fcba597af5dfbe64cb26f207debdae1af25326954474991611d51611ec4565b6001600160a01b038581165f8181526001860160209081526040918290205482519590941685528401919091528201859052606082015260800161101b565b5f8061104884611d9f33611033565b8561266f565b7fdaffad82f53a38a62340f14cdd6fd3b437c5dcda6b32029dac1e661dbce28b2d3382604051611dd69291906159e2565b60405180910390a150565b5f80611df0848585600161265b565b9050805f03611e02575f915050610ab4565b610e0f611e367f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031690565b6040517efdd58e0000000000000000000000000000000000000000000000000000000081526001600160a01b03878116600483015260248201879052919091169062fdd58e90604401602060405180830381865afa158015611e9a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ebe9190615645565b82612ab4565b5f610a5a61318d565b5f80611ee087610e33878988600161265b565b9050611ef08187878a88886131b5565b9695505050505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0480546060917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0091610d349061565c565b5f33610dc3818585612bbf565b604080515f8152602081019091526060908267ffffffffffffffff811115611f8257611f82614fe6565b604051908082528060200260200182016040528015611fb557816020015b6060815260200190600190039081611fa05790505b5091505f5b838110156120365761201130868684818110611fd857611fd8615a43565b9050602002810190611fea9190615a70565b85604051602001611ffd93929190615ad1565b60405160208183030381529060405261357b565b83828151811061202357612023615a43565b6020908102919091010152600101611fba565b505092915050565b5f80612051876113e4878988600161265b565b9050611ef08787878488886131b5565b5f610e3883610e33336113db565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd01545f907fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd00908511156120f1576040517fe4a4718200000000000000000000000000000000000000000000000000000000815260048101869052602401610bc1565b5f61210888612102338a8a5f61265b565b5f61266f565b905061214c8888838989898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061268592505050565b979650505050505050565b5f80612161612604565b90505f6121778761217133610de3565b87612c4e565b9050610e008187898588612685565b5f807fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0061111c565b5f8061104884670de0b6b3a7640000612102565b6121cf8585858585613616565b6121d98484613679565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080546040805160a0810182526001600160a01b0388811682528781166020830152918101869052606081018590529116906359f89dda9088907f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a4890608081016122837fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0254421190565b151590526040516122979190602001615b2e565b6040516020818303038152906040526040518463ffffffff1660e01b81526004016122c493929190615943565b5f604051808303815f87803b1580156122db575f80fd5b505af11580156122ed573d5f803e3d5ffd5b50505050505050505050565b835f03612332576040517f8672985d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0090505f6040518060a001604052808360020154815260200183600201548152602001878152602001861515815260200185858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152505050915250905084806123cc5750816002015486115b156123e05760028201869055602081018690525b7f7ef5cae78e9bd364afb19bb0f8a881a6d156e35a119e28c0d17524e5079581583387878787604051612417959493929190615ba0565b60405180910390a181546001600160a01b03166359f89dda337f50a07cb25d0d864370863300b20987dfdae089abad71b607faf639d09d053391846040516020016122979190615bee565b61246a612ac0565b6001600160a01b0381166124ac576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6124b581612f99565b50565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fe5be7d9000000000000000000000000000000000000000000000000000000000148061254a57507fffffffff0000000000000000000000000000000000000000000000000000000082167f439fab9100000000000000000000000000000000000000000000000000000000145b8061259657507fffffffff0000000000000000000000000000000000000000000000000000000082167fe1e6b89800000000000000000000000000000000000000000000000000000000145b80610ab457507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610ab4565b6125ee612ac0565b6124b581612e39565b610cde8383836001613739565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd01545f907fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0090612655906001615c32565b91505090565b5f670de0b6b3a76400005b95945050505050565b5f61267a8284613861565b610e0f84845f6138a5565b61268d61302e565b845f036126c6576040517fc7838b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825f036126ff576040517ffc8c806300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03841661273f576040517f6ba9ecd800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f0361277a576040517fe4a471820000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b7f3377bcbed49a0c0005e53931cd8fe7334b5371523e5de784c0d0d3d01089cfea3385878686866040516127b3969594939291906158af565b60405180910390a16127c885858585856138ba565b6127d28484613915565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546040517f6d5b3f780000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690636d5b3f7890612842903390889087908990889060040161596a565b5f604051808303815f87803b158015612859575f80fd5b505af115801561286b573d5f803e3d5ffd5b5050505061287c8585858585613962565b6128a560017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5050505050565b804710156128ef576040517fcf47918100000000000000000000000000000000000000000000000000000000815247600482015260248101829052604401610bc1565b612908828260405180602001604052805f815250613a0e565b15612911575050565b3d156129235761291f613a23565b5050565b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8061295f61307e565b60028101549091505f0361297557612655613a2e565b5f6129845f1960036001613a93565b90505f5b5f198214610e38575f8360020183815481106129a6576129a6615a43565b905f5260205f2090600502015f0154905060028103612a83575f612a738560020185815481106129d8576129d8615a43565b905f5260205f20906005020160040180546129f29061565c565b80601f0160208091040260200160405190810160405280929190818152602001828054612a1e9061565c565b8015612a695780601f10612a4057610100808354040283529160200191612a69565b820191905f5260205f20905b815481529060010190602001808311612a4c57829003601f168201915b5050505050613b8e565b9050612a7f8382613ba3565b9250505b5f838152600485016020526040902054612a9d9083615c32565b9150612aac8360036001613a93565b925050612988565b5f610e38838383613c27565b33612ac9611ec4565b6001600160a01b031614611aa3576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610bc1565b6001600160a01b038381165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160209081526040808320938616835292905220545f19811015612bb95781811015612bab576040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201526024810182905260448101839052606401610bc1565b612bb984848484035f613739565b50505050565b6001600160a01b038316612c01576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6001600160a01b038216612c43576040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b610cde838383613c3c565b5f612c598284613861565b610e0f84846001613c27565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610ab4565b425f03611aa3576040517f789a532d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612cce613c8f565b612ce081602001518260400151613c97565b80517f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f308970152310243260080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b0393841617825560608401517f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601805490921693169283179055604080517f481c6a75000000000000000000000000000000000000000000000000000000008152905191925f92909163481c6a759160048083019260209291908290030181865afa158015612dc0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612de49190615c45565b90506001600160a01b0381163014610cde576040517f7935475e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b0382166024820152604401610bc1565b6040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f59f89dda0000000000000000000000000000000000000000000000000000000060048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa158015612eb4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ed89190615c60565b612f0e576040517ffd12061600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03831690811782556040805133815260208101929092527fa8c713fe8fb360697fc0daab836d85208a605d485fbc265aea0f773fc6cdd71a9101610ebf565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f610e38838360016138a5565b613036613ca9565b60027f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5f828218828410028218610e38565b5f8061307683613d04565b549392505050565b5f8060ff196130ae60017f2f8f8ecf1b7a1a3ceda8d15a9a2247a2377b3434535a87f1728021c13fec2e71615a30565b6040516020016130c091815260200190565b60408051601f1981840301815291905280516020909101201692915050565b5f8082816130eb61307e565b9050855f6130fc8760036001613a93565b90505b5f19811461317e57925082811580159061313c5750600283600201828154811061312b5761312b615a43565b905f5260205f2090600502015f0154145b1561316a575f61315a8460020183815481106129d8576129d8615a43565b90506131668382613ba3565b9250505b6131778160036001613a93565b90506130ff565b509350909150505b9250929050565b5f807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930061111c565b6131bd61302e565b855f036131f6576040517fc7838b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825f0361322f576040517ffc8c806300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03851661326f576040517f6ba9ecd800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0384166132af576040517f9905827b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f036132eb576040517fe4a4718200000000000000000000000000000000000000000000000000000000815260048101839052602401610bc1565b7f2845b9458bcc357e1abfe8de7f6832dfe7220596a053496b33d0deb6577d8d2a338686898787876040516133269796959493929190615c7b565b60405180910390a16001600160a01b038416331461349557613349843385612b0b565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b03166001600160a01b031663e985e9c585336040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa1580156133e5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134099190615c60565b613495576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60448201527f6572206f7220617070726f7665640000000000000000000000000000000000006064820152608401610bc1565b61349f8484613d71565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546040517fc2530e390000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063c2530e399061350f903390889087908990889060040161596a565b5f604051808303815f87803b158015613526575f80fd5b505af1158015613538573d5f803e3d5ffd5b5050505061354a868686868686613dbe565b61357360017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b505050505050565b60605f6135888484613ec7565b90508080156135a957505f3d11806135a957505f846001600160a01b03163b115b156135be576135b6613eda565b915050610ab4565b8015613601576040517f9996b3150000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610bc1565b3d156129235761360f613a23565b5092915050565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031633146128a5576040517f8813aac300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be700805442118015906136c257506001600160a01b0383165f908152600182016020526040902054155b80156136e557506001600160a01b0382165f908152600282016020526040902054155b15610cde5780546040517f79d7155100000000000000000000000000000000000000000000000000000000815260048101919091526001600160a01b03808516602483015283166044820152606401610bc1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b03851661379c576040517fe602df050000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6001600160a01b0384166137de576040517f94280d620000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6001600160a01b038086165f908152600183016020908152604080832093881683529290522083905581156128a557836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258560405161385291815260200190565b60405180910390a35050505050565b8181101561291f576040517fa3e322340000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610bc1565b5f610e0f8484670de0b6b3a764000085613ef3565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd01547fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd00906139089084613f35565b6001909101555050505050565b6001600160a01b038216613957576040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b61291f5f8383613c3c565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8216040518060c001604052806139cb3390565b6001600160a01b031681526020018a6001600160a01b031681526020018881526020018b8152602001898152602001878152506040516020016122979190615d20565b5f805f83516020850186885af1949350505050565b6040513d5f823e3d81fd5b5f8060ff19613a5e60017fb750591399365444a618527b69a54ce09476c8bde1ecff60f5aa1fe2b52605ff615a30565b604051602001613a7091815260200190565b60408051808303601f190181529190528051602090910120166002015492915050565b5f600783168103613ad0576040517fbf3cad0b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f613ad961307e565b60028101549091505f03613af1575f19915050610e38565b5f5f198614613b2457816002018681548110613b0f57613b0f615a43565b905f5260205f20906005020160030154613b27565b81545b90506002846002811115613b3d57613b3d615d32565b03613b5f57613b5682613b508484613f44565b87613fbf565b92505050610e38565b6001846002811115613b7357613b73615d32565b03613b8357613b56828287614017565b611ef0828287613fbf565b5f81806020019051810190610ab49190615645565b5f7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115613c01576040517fbf463fe900000000000000000000000000000000000000000000000000000000815260048101849052602401610bc1565b5f613c1e613c18613c12865f614084565b856140de565b5f614140565b50949350505050565b5f610e0f84670de0b6b3a76400008585613ef3565b613c44614181565b613c4d836141e7565b613c56826141e7565b613c618383836142d4565b6001600160a01b038316613c7857610cde81614434565b6001600160a01b038216610cde57610cde81614477565b611aa36144b1565b613c9f6144b1565b61291f82826144ef565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0054600203611aa3576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8060ff19613d3460017fb750591399365444a618527b69a54ce09476c8bde1ecff60f5aa1fe2b52605ff615a30565b604051602001613d4691815260200190565b60408051601f1981840301815291815281516020928301205f96875292909216905290922092915050565b6001600160a01b038216613db3576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b61291f825f83613c3c565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e9828696040518060c001604052808a6001600160a01b031681526020018b6001600160a01b031681526020018881526020018c815260200189815260200187815250604051602001613e649190615d20565b6040516020818303038152906040526040518463ffffffff1660e01b8152600401613e9193929190615943565b5f604051808303815f87803b158015613ea8575f80fd5b505af1158015613eba573d5f803e3d5ffd5b5050505050505050505050565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b5f613f20613f0083614552565b8015613f1b57505f8480613f1657613f16615d5f565b868809115b151590565b613f2b86868661457e565b6126669190615c32565b5f828218828411028218610e38565b5f5b5f198214158015613f88575042836002018381548110613f6857613f68615a43565b5f91825260209091206001600590920201015467ffffffffffffffff1611155b15613fb957826002018281548110613fa257613fa2615a43565b905f5260205f209060050201600301549150613f46565b50919050565b5f5b5f19831461400d575f846002018481548110613fdf57613fdf615a43565b905f5260205f209060050201905082815f0154165f146140025783915050610e38565b600301549250613fc1565b505f199392505050565b5f5b5f19831461400d575f84600201848154811061403757614037615a43565b5f918252602090912060059091020160018101549091504267ffffffffffffffff9091161115614067575061400d565b80548316156140795783915050610e38565b600301549250614019565b5f805f614091858561462e565b91509150806140d6576040517f22c9f7bb0000000000000000000000000000000000000000000000000000000081526004810186905260248101859052604401610bc1565b509392505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d848061412386868686614734565b915091505f6141328383614853565b9a9950505050505050505050565b5f807bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8416601b0b60e085901d6141748282876148b1565b9350935050509250929050565b5f61418a61307e565b60028101549091505f0361419b5750565b5f6141b0826005015460026001176001613a93565b90505f195b5f1982146141d35750806141cc8160036001613a93565b91506141b5565b5f198114610cde5760058301819055505050565b6001600160a01b0381166141f85750565b5f61420161307e565b6001600160a01b0383165f9081526003820160205260408120549192506142278461306b565b90505f8061423583856130df565b9150915083810361424857505050505050565b6001600160a01b0386165f9081526003860160205260409020819055818314614275576142758683614a9c565b6040805185815260208101839052908101849052606081018390526001600160a01b038716907f36a2eb39b73568d38e98721588b15b309c9380e1b1ab575c2c3d71d5148ccb4a9060800160405180910390a261357384848385614aae565b6142de8383613679565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a6040518060800160405280896001600160a01b03168152602001886001600160a01b0316815260200187815260200161438e7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0254421190565b151590526040805182516001600160a01b03908116602080840191909152840151168183015290820151606080830191909152909101511515608082015260a0016040516020818303038152906040526040518463ffffffff1660e01b81526004016143fc93929190615943565b5f604051808303815f87803b158015614413575f80fd5b505af1158015614425573d5f803e3d5ffd5b50505050612bb9848484614b0b565b5f61443d61307e565b60028101549091501561291f5760058101545f9081526004820160205260408120805484929061446e908490615c32565b90915550505050565b5f61448061307e565b60028101549091501561291f5760058101545f9081526004820160205260408120805484929061446e908490615a30565b6144b9614b16565b611aa3576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6144f76144b1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace007f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace036145438482615dd0565b5060048101612bb98382615dd0565b5f600282600381111561456757614567615d32565b6145719190615e8c565b60ff166001149050919050565b5f805f61458b8686614b34565b91509150815f036145af578381816145a5576145a5615d5f565b0492505050610e38565b8184116145c6576145c66003851502601118614b50565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010185841190960395909502919093039390930492909217029150509392505050565b5f601b83900b8314838382614692577d90e40fbeea1d3a4abc8955e946fe31cdcf66f634e100000000000000000086051561467257620186a0860595506005850194505b8586601b0b1461468d57600a86059550846001019450614672565b6146a8565b855f036146a857505f9250600191506131869050565b848560030b14614704575f8512156146c857505f92508291506131869050565b6040517fd556b1110000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610bc1565b50507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841660e084901b1791509250929050565b5f808515841517801561474c575f92505f9150614849565b6147568487615ead565b91505f61476288614b61565b90505f61476e87614b61565b90505f61477b8383614b34565b5090505f6f0785ee10d5da46d900f436a0000000008211156147b0576f0785ee10d5da46d900f436a000000000820491506025015b670de0b6b3a76400008211156147d157670de0b6b3a7640000820491506012015b633b9aca008211156147ea57633b9aca00820491506009015b6127108211156147ff57612710820491506004015b811561481357600a820491506001016147ff565b61481d8187615ead565b955061483f8b8a614839878761483487600a615fac565b614bc2565b89614c9d565b9097509550505050505b5094509492505050565b5f805f614860858561462e565b9150915080158015614870575081155b156140d6576040517f8eba4d070000000000000000000000000000000000000000000000000000000081526004810186905260248101859052604401610bc1565b5f805f8512156148f7576040517f4a7d166b0000000000000000000000000000000000000000000000000000000081526004810186905260248101859052604401610bc1565b845f0361490957505f90506001614a94565b8460ff8416850185811215614954576040517fd556b1110000000000000000000000000000000000000000000000000000000081526004810188905260248101879052604401610bc1565b5f805f8312156149be577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb3831215614995575f809550955050505050614a94565b825f03600a0a91508184816149ac576149ac615d5f565b0495505084029091149150614a949050565b5f831315614a8957604d831315614a14576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff88166044820152606401610bc1565b82600a0a9150815f1981614a2a57614a2a615d5f565b04841115614a77576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff88166044820152606401610bc1565b5091909102925060019150614a949050565b509193506001925050505b935093915050565b5f614aa683613d04565b919091555050565b5f614ab761307e565b905083816004015f8781526020019081526020015f205f828254614adb9190615a30565b90915550505f83815260048201602052604081208054849290614aff908490615c32565b90915550505050505050565b610cde838383614da9565b5f614b1f612c65565b5468010000000000000000900460ff16919050565b5f805f1983850993909202808410938190039390930393915050565b634e487b715f52806020526024601cfd5b5f80821215614bbe577f80000000000000000000000000000000000000000000000000000000000000008203614bb857507f8000000000000000000000000000000000000000000000000000000000000000919050565b505f0390565b5090565b5f805f614bcf8686614b34565b91509150815f03614be9578381816145a5576145a5615d5f565b838210614c33576040517f6c59da12000000000000000000000000000000000000000000000000000000008152600481018790526024810186905260448101859052606401610bc1565b5f84868809600186198101871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103025f82900382900490920185841190960395909502919093039390930492909217029150509392505050565b5f805f8587181215614d67577f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841115614d5457614cfc7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001615c32565b8403614d2c57507f8000000000000000000000000000000000000000000000000000000000000000905081614da0565b614d37600a85615fb7565b614d4090615fca565b614d4b846001615ead565b91509150614da0565b614d5d84615fca565b8391509150614da0565b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841115614d9a57614d40600a85615fb7565b50829050815b94509492505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b038416614df65781816002015f828254614deb9190615c32565b90915550614e7f9050565b6001600160a01b0384165f9081526020829052604090205482811015614e61576040517fe450d38c0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024810182905260448101849052606401610bc1565b6001600160a01b0385165f9081526020839052604090209083900390555b6001600160a01b038316614e9d576002810180548390039055614ebb565b6001600160a01b0383165f9081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051614f0091815260200190565b60405180910390a350505050565b5f60208284031215614f1e575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610e38575f80fd5b6001600160a01b03811681146124b5575f80fd5b5f60208284031215614f71575f80fd5b8135610e3881614f4d565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610e386020830184614f7c565b5f8060408385031215614fcd575f80fd5b8235614fd881614f4d565b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff8111828210171561503657615036614fe6565b60405290565b6040516080810167ffffffffffffffff8111828210171561503657615036614fe6565b604051601f8201601f1916810167ffffffffffffffff8111828210171561508857615088614fe6565b604052919050565b5f67ffffffffffffffff8211156150a9576150a9614fe6565b50601f01601f191660200190565b5f82601f8301126150c6575f80fd5b81356150d96150d482615090565b61505f565b8181528460208386010111156150ed575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f806080858703121561511c575f80fd5b84359350602085013561512e81614f4d565b925060408501359150606085013567ffffffffffffffff811115615150575f80fd5b61515c878288016150b7565b91505092959194509250565b5f8060408385031215615179575f80fd5b50508035926020909101359150565b5f60208284031215615198575f80fd5b5035919050565b5f805f606084860312156151b1575f80fd5b83356151bc81614f4d565b925060208401356151cc81614f4d565b929592945050506040919091013590565b5f602082840312156151ed575f80fd5b813567ffffffffffffffff811115615203575f80fd5b610e0f848285016150b7565b5f805f8060808587031215615222575f80fd5b843561522d81614f4d565b93506020850135925060408501359150606085013567ffffffffffffffff811115615150575f80fd5b5f805f60608486031215615268575f80fd5b833561527381614f4d565b925060208401359150604084013567ffffffffffffffff811115615295575f80fd5b6152a1868287016150b7565b9150509250925092565b5f805f805f60a086880312156152bf575f80fd5b8535945060208601356152d181614f4d565b935060408601356152e181614f4d565b925060608601359150608086013567ffffffffffffffff811115615303575f80fd5b61530f888289016150b7565b9150509295509295909350565b5f806020838503121561532d575f80fd5b823567ffffffffffffffff80821115615344575f80fd5b818501915085601f830112615357575f80fd5b813581811115615365575f80fd5b8660208260051b8501011115615379575f80fd5b60209290920196919550909350505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b828110156153fe577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08886030184526153ec858351614f7c565b945092850192908501906001016153b2565b5092979650505050505050565b5f8083601f84011261541b575f80fd5b50813567ffffffffffffffff811115615432575f80fd5b602083019150836020828501011115613186575f80fd5b5f805f805f6080868803121561545d575f80fd5b85359450602086013561546f81614f4d565b935060408601359250606086013567ffffffffffffffff811115615491575f80fd5b61549d8882890161540b565b969995985093965092949392505050565b5f80604083850312156154bf575f80fd5b82356154ca81614f4d565b915060208301356154da81614f4d565b809150509250929050565b5f82601f8301126154f4575f80fd5b8135602067ffffffffffffffff82111561551057615510614fe6565b8160051b61551f82820161505f565b9283528481018201928281019087851115615538575f80fd5b83870192505b8483101561214c5782358252918301919083019061553e565b5f805f805f60a0868803121561556b575f80fd5b853561557681614f4d565b9450602086013561558681614f4d565b9350604086013561559681614f4d565b9250606086013567ffffffffffffffff808211156155b2575f80fd5b6155be89838a016154e5565b935060808801359150808211156155d3575f80fd5b5061530f888289016154e5565b80151581146124b5575f80fd5b5f805f8060608587031215615600575f80fd5b843593506020850135615612816155e0565b9250604085013567ffffffffffffffff81111561562d575f80fd5b6156398782880161540b565b95989497509550505050565b5f60208284031215615655575f80fd5b5051919050565b600181811c9082168061567057607f821691505b602082108103613fb9577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f602082840312156156b7575f80fd5b815160ff81168114610e38575f80fd5b5f82601f8301126156d6575f80fd5b81516156e46150d482615090565b8181528460208386010111156156f8575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f60208284031215615724575f80fd5b815167ffffffffffffffff8082111561573b575f80fd5b908301906040828603121561574e575f80fd5b615756615013565b825161576181614f4d565b8152602083015182811115615774575f80fd5b929092019160808387031215615788575f80fd5b61579061503c565b835161579b81614f4d565b81526020840151838111156157ae575f80fd5b6157ba888287016156c7565b6020830152506040840151838111156157d1575f80fd5b6157dd888287016156c7565b604083015250606084015193506157f384614f4d565b60608101939093526020810192909252509392505050565b5f6001600160a01b038085168352604060208401528084511660408401526020840151604060608501528181511660808501526020810151608060a0860152615858610100860182614f7c565b905060408201517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808683030160c08701526158938282614f7c565b9150508260608301511660e08601528093505050509392505050565b5f6001600160a01b03808916835280881660208401525085604083015284606083015283608083015260c060a08301526158ec60c0830184614f7c565b98975050505050505050565b602081526001600160a01b0382511660208201526020820151604082015260408201516060820152606082015160808201525f608083015160a080840152610e0f60c0840182614f7c565b6001600160a01b0384168152826020820152606060408201525f6126666060830184614f7c565b5f6001600160a01b03808816835280871660208401525084604083015283606083015260a0608083015261214c60a0830184614f7c565b602081526001600160a01b03825116602082015260208201516040820152604082015160608201525f6060830151608080840152610e0f60a0840182614f7c565b6001600160a01b0383168152604060208201525f610e0f6040830184614f7c565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b81810381811115610ab457610ab4615a03565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112615aa3575f80fd5b83018035915067ffffffffffffffff821115615abd575f80fd5b602001915036819003821315613186575f80fd5b828482375f8382015f815283518060208601835e5f910190815295945050505050565b5f815180845260208085019450602084015f5b83811015615b2357815187529582019590820190600101615b07565b509495945050505050565b602081525f6001600160a01b0380845116602084015280602085015116604084015250604083015160a06060840152615b6a60c0840182615af4565b90506060840151601f19848303016080850152615b878282615af4565b9150506080840151151560a08401528091505092915050565b6001600160a01b0386168152846020820152831515604082015260806060820152816080820152818360a08301375f81830160a090810191909152601f909201601f19160101949350505050565b602081528151602082015260208201516040820152604082015160608201526060820151151560808201525f608083015160a080840152610e0f60c0840182614f7c565b80820180821115610ab457610ab4615a03565b5f60208284031215615c55575f80fd5b8151610e3881614f4d565b5f60208284031215615c70575f80fd5b8151610e38816155e0565b5f6001600160a01b03808a16835280891660208401528088166040840152508560608301528460808301528360a083015260e060c0830152615cc060e0830184614f7c565b9998505050505050505050565b5f6001600160a01b038083511684528060208401511660208501525060408201516040840152606082015160608401526080820151608084015260a082015160c060a0850152610e0f60c0850182614f7c565b602081525f610e386020830184615ccd565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b601f821115610cde57805f5260205f20601f840160051c81016020851015615db15750805b601f840160051c820191505b818110156128a5575f8155600101615dbd565b815167ffffffffffffffff811115615dea57615dea614fe6565b615dfe81615df8845461565c565b84615d8c565b602080601f831160018114615e31575f8415615e1a5750858301515b5f19600386901b1c1916600185901b178555613573565b5f85815260208120601f198616915b82811015615e5f57888601518255948401946001909101908401615e40565b5085821015615e7c57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f60ff831680615e9e57615e9e615d5f565b8060ff84160691505092915050565b8082018281125f83128015821682158216171561203657612036615a03565b600181815b80851115615f0657815f1904821115615eec57615eec615a03565b80851615615ef957918102915b93841c9390800290615ed1565b509250929050565b5f82615f1c57506001610ab4565b81615f2857505f610ab4565b8160018114615f3e5760028114615f4857615f64565b6001915050610ab4565b60ff841115615f5957615f59615a03565b50506001821b610ab4565b5060208310610133831016604e8410600b8410161715615f87575081810a610ab4565b615f918383615ecc565b805f1904821115615fa457615fa4615a03565b029392505050565b5f610e388383615f0e565b5f82615fc557615fc5615d5f565b500490565b5f7f80000000000000000000000000000000000000000000000000000000000000008203614bb857614bb8615a0356"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405260043610610337575f3560e01c8063715018a6116101af578063bbec4d06116100eb578063dd62ed3e11610094578063e70689f51161006e578063e70689f5146109ab578063f2fde38b146109ca578063f5647943146109e9578063f5d214f514610a1e5761033e565b8063dd62ed3e146108ed578063e1e6b89814610950578063e5be7d901461098c5761033e565b8063c77b66c2116100c5578063c77b66c2146108b3578063d09edf31146108c6578063db2088f4146108da5761033e565b8063bbec4d0614610875578063c54cafee14610894578063c63d75b6146105635761033e565b80638da5cb5b11610158578063a9059cbb11610132578063a9059cbb146107b8578063ac9650d8146107d7578063ae57de0c14610803578063ae98b39f146108225761033e565b80638da5cb5b14610771578063921a4c421461078557806395d89b41146107a45761033e565b80637a7af70d116101895780637a7af70d1461072057806381c3fcb91461073357806385b68756146107525761033e565b8063715018a6146106ce578063770afee1146106e2578063786cd916146107015761033e565b8063276b11401161027e5780634abe413711610227578063633ac71711610201578063633ac7171461061e5780636ba235211461063d5780636c876b941461069057806370a08231146106af5761033e565b80634abe4137146105c157806356db02e8146105e057806359f89dda146105ff5761033e565b8063402d267d11610258578063402d267d14610563578063439fab9114610583578063488bd7b0146105a25761033e565b8063276b1140146104fe578063313ce5671461051157806338d52e0f146105375761033e565b806318160ddd116102e05780631f6759d3116102ba5780631f6759d31461048d57806323b872dd146104c05780632755c6c7146104df5761033e565b806318160ddd1461043b578063181e7b3b1461044f5780631e4344a11461046e5761033e565b806306fdde031161031157806306fdde03146103e8578063095ea7b3146104095780631423feba146104285761033e565b806301e1d1141461037357806301ffc9a71461039a578063058a628f146103c95761033e565b3661033e57005b73b7e24412126ad6a2ce19cbd79fd11b68e7f30cf6365f80375f80365f845af43d5f803e80801561036d573d5ff35b3d5ffd5b005b34801561037e575f80fd5b50610387610a51565b6040519081526020015b60405180910390f35b3480156103a5575f80fd5b506103b96103b4366004614f0e565b610a5f565b6040519015158152602001610391565b3480156103d4575f80fd5b506103716103e3366004614f61565b610aba565b3480156103f3575f80fd5b506103fc610ce3565b6040516103919190614faa565b348015610414575f80fd5b506103b9610423366004614fbc565b610db6565b610387610436366004615109565b610dcd565b348015610446575f80fd5b50610387610e17565b34801561045a575f80fd5b50610387610469366004615168565b610e20565b348015610479575f80fd5b50610371610488366004615188565b610e3f565b348015610498575f80fd5b507f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70054610387565b3480156104cb575f80fd5b506103b96104da36600461519f565b610ecb565b3480156104ea575f80fd5b506103716104f9366004614fbc565b610eee565b61038761050c366004615168565b611028565b34801561051c575f80fd5b50610525611053565b60405160ff9091168152602001610391565b348015610542575f80fd5b5061054b6110f8565b6040516001600160a01b039091168152602001610391565b34801561056e575f80fd5b5061038761057d366004614f61565b505f1990565b34801561058e575f80fd5b5061038761059d3660046151dd565b61112c565b3480156105ad575f80fd5b506103876105bc366004615168565b6113d1565b3480156105cc575f80fd5b506103876105db366004614fbc565b6113e9565b3480156105eb575f80fd5b506103876105fa36600461520f565b6114a3565b34801561060a575f80fd5b50610371610619366004615256565b6117e4565b348015610629575f80fd5b50610371610638366004614f61565b61181c565b348015610648575f80fd5b50610387610657366004614f61565b6001600160a01b03165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be701602052604090205490565b34801561069b575f80fd5b506103716106aa366004614f61565b611949565b3480156106ba575f80fd5b506103876106c9366004614f61565b611a49565b3480156106d9575f80fd5b50610371611a92565b3480156106ed575f80fd5b506103876106fc366004615256565b611aa5565b34801561070c575f80fd5b5061037161071b366004614fbc565b611c5f565b61038761072e366004615168565b611d90565b34801561073e575f80fd5b5061037161074d3660046151dd565b611da5565b34801561075d575f80fd5b5061038761076c366004614fbc565b611de1565b34801561077c575f80fd5b5061054b611ec4565b348015610790575f80fd5b5061038761079f3660046152ab565b611ecd565b3480156107af575f80fd5b506103fc611efa565b3480156107c3575f80fd5b506103b96107d2366004614fbc565b611f4b565b3480156107e2575f80fd5b506107f66107f136600461531c565b611f58565b604051610391919061538b565b34801561080e575f80fd5b5061038761081d3660046152ab565b61203e565b34801561082d575f80fd5b5061038761083c366004614f61565b6001600160a01b03165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be702602052604090205490565b348015610880575f80fd5b5061038761088f366004615168565b612061565b34801561089f575f80fd5b506103876108ae366004615449565b61206f565b6103876108c1366004615109565b612157565b3480156108d1575f80fd5b5061054b612186565b6103876108e8366004615168565b6121ae565b3480156108f8575f80fd5b506103876109073660046154ae565b6001600160a01b039182165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b34801561095b575f80fd5b507f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031661054b565b348015610997575f80fd5b506103716109a6366004615557565b6121c2565b3480156109b6575f80fd5b506103716109c53660046155ed565b6122f9565b3480156109d5575f80fd5b506103716109e4366004614f61565b612462565b3480156109f4575f80fd5b507fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd025442116103b9565b348015610a29575f80fd5b507fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0154610387565b5f610a5a610e17565b905090565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f59f89dda000000000000000000000000000000000000000000000000000000001480610ab45750610ab4826124b8565b92915050565b6040517f248a9ca30000000000000000000000000000000000000000000000000000000081527ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f8960048201525f906001600160a01b0383169063248a9ca390602401602060405180830381865afa158015610b37573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b5b9190615645565b905080610bca576040517f76728ed90000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201527ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f8960248201526044015b60405180910390fd5b6040517f248a9ca30000000000000000000000000000000000000000000000000000000081527f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e760048201525f906001600160a01b0384169063248a9ca390602401602060405180830381865afa158015610c47573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c6b9190615645565b905080610cd5576040517f76728ed90000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201527f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e76024820152604401610bc1565b610cde836125e6565b505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0380546060917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0091610d349061565c565b80601f0160208091040260200160405190810160405280929190818152602001828054610d609061565c565b8015610dab5780601f10610d8257610100808354040283529160200191610dab565b820191905f5260205f20905b815481529060010190602001808311610d8e57829003601f168201915b505050505091505090565b5f33610dc38185856125f7565b5060019392505050565b5f80610dd7612604565b90505f610df187610deb335b89865f61265b565b8761266f565b9050610e008787838588612685565b610e0b335b476128ac565b9150505b949350505050565b5f610a5a612955565b5f610e3883670de0b6b3a7640000612ab4565b612ab4565b9392505050565b610e47612ac0565b7f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be7008054821115610e75578181555b7fff9fd4facd8bd30d905cc7ffbd03e8829a414df4c6554d155d132c3377868a42610e9e611ec4565b8254604080516001600160a01b039093168352602083018690528201526060015b60405180910390a15050565b5f33610ed8858285612b0b565b610ee3858585612bbf565b506001949350505050565b610ef6612ac0565b805f03610f3a576040517f5a6084530000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610bc1565b6001600160a01b0382165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70260205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70090821115610fb7576001600160a01b0383165f90815260028201602052604090208290555b7fa1e5b368dc99c8558f28b1e7e8cb7ab542c989a4b697628ba7bfffe0aeaccffd610fe0611ec4565b6001600160a01b038581165f818152600286016020908152604091829020548251959094168552840191909152820185905260608201526080015b60405180910390a1505050565b5f8061104884611042335b3361103c612604565b5f61265b565b85612c4e565b9050610e3833610e05565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f308970152310243260080545f91906001600160a01b0316803b806110905760126110f0565b816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110f091906156a7565b935050505090565b5f807f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f30897015231024326005b546001600160a01b031692915050565b5f80611136612c65565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156111625750825b90505f8267ffffffffffffffff16600114801561117e5750303b155b90508115801561118c575080155b156111c3576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156112245784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b61122c612c8d565b5f878060200190518101906112419190615714565b90506112508160200151612cc6565b6020810151516001600160a01b031615611296576040517f8951799200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80516001600160a01b03166112d7576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6112e030612e39565b80516112eb90612f99565b7ffa89761502e992c8c755fba778ced00f4562485023f656906eb76f5dd65a9fe53360408051808201825284516001600160a01b0316815260208086015190820152905161133a92919061580b565b60405180910390a17fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc396505083156113c75784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b5f610e38836113e4335b3386600161265b565b613021565b5f61141b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031690565b6040517efdd58e0000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015260248201859052919091169062fdd58e90604401602060405180830381865afa15801561147f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e389190615645565b5f6114ac61302e565b825f036114e5576040517f312497b000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6115a98461151b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031690565b6040517efdd58e0000000000000000000000000000000000000000000000000000000081526001600160a01b038a81166004830152602482018a9052919091169062fdd58e90604401602060405180830381865afa15801561157f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115a39190615645565b9061305c565b905080156116c6577f88e2280ece62e9296d3578b77647db2c11f9fa7e42578e2db5d4262123ffae3e3387878785886040516115ea969594939291906158af565b60405180910390a17f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b03166001600160a01b031663043fa98733883360405160e085901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b03938416600482015291831660248301529091166044820152606481018890526084810184905260c060a48201525f60c482015260e4015f604051808303815f87803b1580156116af575f80fd5b505af11580156116c1573d5f803e3d5ffd5b505050505b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f3dd35eca0ca8a128757fa464a5dfa4ad6cc4853cad96dce4e90fdbea4f0a52e36040518060a001604052808c6001600160a01b031681526020018b81526020018a81526020018781526020018981525060405160200161175d91906158f8565b6040516020818303038152906040526040518463ffffffff1660e01b815260040161178a93929190615943565b5f604051808303815f87803b1580156117a1575f80fd5b505af11580156117b3573d5f803e3d5ffd5b5093945050505050610e0f60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b8282826040517f3ae4063b000000000000000000000000000000000000000000000000000000008152600401610bc193929190615943565b611824612ac0565b6001600160a01b0381165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70260205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be7009042116118d9576001600160a01b0382165f818152600283016020526040908190205490517f81a7897700000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610bc1565b6001600160a01b0382165f9081526002820160205260408120557fa1e5b368dc99c8558f28b1e7e8cb7ab542c989a4b697628ba7bfffe0aeaccffd61191c611ec4565b604080516001600160a01b03928316815291851660208301525f9082018190526060820152608001610ebf565b611951612ac0565b6001600160a01b0381165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70160205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be700904211611a06576001600160a01b0382165f818152600183016020526040908190205490517ff1b01b5400000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610bc1565b6001600160a01b0382165f9081526001820160205260408120557fd08871fffa9d03c01fcba597af5dfbe64cb26f207debdae1af2532695447499161191c611ec4565b5f80611a548361306b565b90505f611a5f61307e565b6001600160a01b0385165f90815260038201602052604081205491925090611a889084906130df565b5095945050505050565b611a9a612ac0565b611aa35f612f99565b565b5f611aae61302e565b825f03611ae7576040517f312497b000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f611af5846115a387611a49565b90508015611b47577f3fc1c49e72362e91416388fe7a107b92db924642476e83e701eeeb6256d7249e3386868487604051611b3495949392919061596a565b60405180910390a1611b47853383612bbf565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f54f0af3716c79b30b8c228679d31d77a1a5f526c16af3262730e0a8de4363fed60405180608001604052808b6001600160a01b031681526020018a815260200187815260200189815250604051602001611bd891906159a1565b6040516020818303038152906040526040518463ffffffff1660e01b8152600401611c0593929190615943565b5f604051808303815f87803b158015611c1c575f80fd5b505af1158015611c2e573d5f803e3d5ffd5b5093945050505050610e3860017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b611c67612ac0565b805f03611cab576040517ffd86061b0000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610bc1565b6001600160a01b0382165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70160205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70090821115611d28576001600160a01b0383165f90815260018201602052604090208290555b7fd08871fffa9d03c01fcba597af5dfbe64cb26f207debdae1af25326954474991611d51611ec4565b6001600160a01b038581165f8181526001860160209081526040918290205482519590941685528401919091528201859052606082015260800161101b565b5f8061104884611d9f33611033565b8561266f565b7fdaffad82f53a38a62340f14cdd6fd3b437c5dcda6b32029dac1e661dbce28b2d3382604051611dd69291906159e2565b60405180910390a150565b5f80611df0848585600161265b565b9050805f03611e02575f915050610ab4565b610e0f611e367f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031690565b6040517efdd58e0000000000000000000000000000000000000000000000000000000081526001600160a01b03878116600483015260248201879052919091169062fdd58e90604401602060405180830381865afa158015611e9a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ebe9190615645565b82612ab4565b5f610a5a61318d565b5f80611ee087610e33878988600161265b565b9050611ef08187878a88886131b5565b9695505050505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0480546060917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0091610d349061565c565b5f33610dc3818585612bbf565b604080515f8152602081019091526060908267ffffffffffffffff811115611f8257611f82614fe6565b604051908082528060200260200182016040528015611fb557816020015b6060815260200190600190039081611fa05790505b5091505f5b838110156120365761201130868684818110611fd857611fd8615a43565b9050602002810190611fea9190615a70565b85604051602001611ffd93929190615ad1565b60405160208183030381529060405261357b565b83828151811061202357612023615a43565b6020908102919091010152600101611fba565b505092915050565b5f80612051876113e4878988600161265b565b9050611ef08787878488886131b5565b5f610e3883610e33336113db565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd01545f907fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd00908511156120f1576040517fe4a4718200000000000000000000000000000000000000000000000000000000815260048101869052602401610bc1565b5f61210888612102338a8a5f61265b565b5f61266f565b905061214c8888838989898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061268592505050565b979650505050505050565b5f80612161612604565b90505f6121778761217133610de3565b87612c4e565b9050610e008187898588612685565b5f807fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0061111c565b5f8061104884670de0b6b3a7640000612102565b6121cf8585858585613616565b6121d98484613679565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080546040805160a0810182526001600160a01b0388811682528781166020830152918101869052606081018590529116906359f89dda9088907f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a4890608081016122837fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0254421190565b151590526040516122979190602001615b2e565b6040516020818303038152906040526040518463ffffffff1660e01b81526004016122c493929190615943565b5f604051808303815f87803b1580156122db575f80fd5b505af11580156122ed573d5f803e3d5ffd5b50505050505050505050565b835f03612332576040517f8672985d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0090505f6040518060a001604052808360020154815260200183600201548152602001878152602001861515815260200185858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152505050915250905084806123cc5750816002015486115b156123e05760028201869055602081018690525b7f7ef5cae78e9bd364afb19bb0f8a881a6d156e35a119e28c0d17524e5079581583387878787604051612417959493929190615ba0565b60405180910390a181546001600160a01b03166359f89dda337f50a07cb25d0d864370863300b20987dfdae089abad71b607faf639d09d053391846040516020016122979190615bee565b61246a612ac0565b6001600160a01b0381166124ac576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6124b581612f99565b50565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fe5be7d9000000000000000000000000000000000000000000000000000000000148061254a57507fffffffff0000000000000000000000000000000000000000000000000000000082167f439fab9100000000000000000000000000000000000000000000000000000000145b8061259657507fffffffff0000000000000000000000000000000000000000000000000000000082167fe1e6b89800000000000000000000000000000000000000000000000000000000145b80610ab457507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610ab4565b6125ee612ac0565b6124b581612e39565b610cde8383836001613739565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd01545f907fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0090612655906001615c32565b91505090565b5f670de0b6b3a76400005b95945050505050565b5f61267a8284613861565b610e0f84845f6138a5565b61268d61302e565b845f036126c6576040517fc7838b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825f036126ff576040517ffc8c806300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03841661273f576040517f6ba9ecd800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f0361277a576040517fe4a471820000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b7f3377bcbed49a0c0005e53931cd8fe7334b5371523e5de784c0d0d3d01089cfea3385878686866040516127b3969594939291906158af565b60405180910390a16127c885858585856138ba565b6127d28484613915565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546040517f6d5b3f780000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690636d5b3f7890612842903390889087908990889060040161596a565b5f604051808303815f87803b158015612859575f80fd5b505af115801561286b573d5f803e3d5ffd5b5050505061287c8585858585613962565b6128a560017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5050505050565b804710156128ef576040517fcf47918100000000000000000000000000000000000000000000000000000000815247600482015260248101829052604401610bc1565b612908828260405180602001604052805f815250613a0e565b15612911575050565b3d156129235761291f613a23565b5050565b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8061295f61307e565b60028101549091505f0361297557612655613a2e565b5f6129845f1960036001613a93565b90505f5b5f198214610e38575f8360020183815481106129a6576129a6615a43565b905f5260205f2090600502015f0154905060028103612a83575f612a738560020185815481106129d8576129d8615a43565b905f5260205f20906005020160040180546129f29061565c565b80601f0160208091040260200160405190810160405280929190818152602001828054612a1e9061565c565b8015612a695780601f10612a4057610100808354040283529160200191612a69565b820191905f5260205f20905b815481529060010190602001808311612a4c57829003601f168201915b5050505050613b8e565b9050612a7f8382613ba3565b9250505b5f838152600485016020526040902054612a9d9083615c32565b9150612aac8360036001613a93565b925050612988565b5f610e38838383613c27565b33612ac9611ec4565b6001600160a01b031614611aa3576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610bc1565b6001600160a01b038381165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160209081526040808320938616835292905220545f19811015612bb95781811015612bab576040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201526024810182905260448101839052606401610bc1565b612bb984848484035f613739565b50505050565b6001600160a01b038316612c01576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6001600160a01b038216612c43576040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b610cde838383613c3c565b5f612c598284613861565b610e0f84846001613c27565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610ab4565b425f03611aa3576040517f789a532d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612cce613c8f565b612ce081602001518260400151613c97565b80517f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f308970152310243260080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b0393841617825560608401517f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601805490921693169283179055604080517f481c6a75000000000000000000000000000000000000000000000000000000008152905191925f92909163481c6a759160048083019260209291908290030181865afa158015612dc0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612de49190615c45565b90506001600160a01b0381163014610cde576040517f7935475e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b0382166024820152604401610bc1565b6040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f59f89dda0000000000000000000000000000000000000000000000000000000060048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa158015612eb4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ed89190615c60565b612f0e576040517ffd12061600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03831690811782556040805133815260208101929092527fa8c713fe8fb360697fc0daab836d85208a605d485fbc265aea0f773fc6cdd71a9101610ebf565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f610e38838360016138a5565b613036613ca9565b60027f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5f828218828410028218610e38565b5f8061307683613d04565b549392505050565b5f8060ff196130ae60017f2f8f8ecf1b7a1a3ceda8d15a9a2247a2377b3434535a87f1728021c13fec2e71615a30565b6040516020016130c091815260200190565b60408051601f1981840301815291905280516020909101201692915050565b5f8082816130eb61307e565b9050855f6130fc8760036001613a93565b90505b5f19811461317e57925082811580159061313c5750600283600201828154811061312b5761312b615a43565b905f5260205f2090600502015f0154145b1561316a575f61315a8460020183815481106129d8576129d8615a43565b90506131668382613ba3565b9250505b6131778160036001613a93565b90506130ff565b509350909150505b9250929050565b5f807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930061111c565b6131bd61302e565b855f036131f6576040517fc7838b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825f0361322f576040517ffc8c806300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03851661326f576040517f6ba9ecd800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0384166132af576040517f9905827b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f036132eb576040517fe4a4718200000000000000000000000000000000000000000000000000000000815260048101839052602401610bc1565b7f2845b9458bcc357e1abfe8de7f6832dfe7220596a053496b33d0deb6577d8d2a338686898787876040516133269796959493929190615c7b565b60405180910390a16001600160a01b038416331461349557613349843385612b0b565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b03166001600160a01b031663e985e9c585336040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa1580156133e5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134099190615c60565b613495576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60448201527f6572206f7220617070726f7665640000000000000000000000000000000000006064820152608401610bc1565b61349f8484613d71565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546040517fc2530e390000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063c2530e399061350f903390889087908990889060040161596a565b5f604051808303815f87803b158015613526575f80fd5b505af1158015613538573d5f803e3d5ffd5b5050505061354a868686868686613dbe565b61357360017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b505050505050565b60605f6135888484613ec7565b90508080156135a957505f3d11806135a957505f846001600160a01b03163b115b156135be576135b6613eda565b915050610ab4565b8015613601576040517f9996b3150000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610bc1565b3d156129235761360f613a23565b5092915050565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031633146128a5576040517f8813aac300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be700805442118015906136c257506001600160a01b0383165f908152600182016020526040902054155b80156136e557506001600160a01b0382165f908152600282016020526040902054155b15610cde5780546040517f79d7155100000000000000000000000000000000000000000000000000000000815260048101919091526001600160a01b03808516602483015283166044820152606401610bc1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b03851661379c576040517fe602df050000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6001600160a01b0384166137de576040517f94280d620000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6001600160a01b038086165f908152600183016020908152604080832093881683529290522083905581156128a557836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258560405161385291815260200190565b60405180910390a35050505050565b8181101561291f576040517fa3e322340000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610bc1565b5f610e0f8484670de0b6b3a764000085613ef3565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd01547fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd00906139089084613f35565b6001909101555050505050565b6001600160a01b038216613957576040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b61291f5f8383613c3c565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8216040518060c001604052806139cb3390565b6001600160a01b031681526020018a6001600160a01b031681526020018881526020018b8152602001898152602001878152506040516020016122979190615d20565b5f805f83516020850186885af1949350505050565b6040513d5f823e3d81fd5b5f8060ff19613a5e60017fb750591399365444a618527b69a54ce09476c8bde1ecff60f5aa1fe2b52605ff615a30565b604051602001613a7091815260200190565b60408051808303601f190181529190528051602090910120166002015492915050565b5f600783168103613ad0576040517fbf3cad0b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f613ad961307e565b60028101549091505f03613af1575f19915050610e38565b5f5f198614613b2457816002018681548110613b0f57613b0f615a43565b905f5260205f20906005020160030154613b27565b81545b90506002846002811115613b3d57613b3d615d32565b03613b5f57613b5682613b508484613f44565b87613fbf565b92505050610e38565b6001846002811115613b7357613b73615d32565b03613b8357613b56828287614017565b611ef0828287613fbf565b5f81806020019051810190610ab49190615645565b5f7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115613c01576040517fbf463fe900000000000000000000000000000000000000000000000000000000815260048101849052602401610bc1565b5f613c1e613c18613c12865f614084565b856140de565b5f614140565b50949350505050565b5f610e0f84670de0b6b3a76400008585613ef3565b613c44614181565b613c4d836141e7565b613c56826141e7565b613c618383836142d4565b6001600160a01b038316613c7857610cde81614434565b6001600160a01b038216610cde57610cde81614477565b611aa36144b1565b613c9f6144b1565b61291f82826144ef565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0054600203611aa3576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8060ff19613d3460017fb750591399365444a618527b69a54ce09476c8bde1ecff60f5aa1fe2b52605ff615a30565b604051602001613d4691815260200190565b60408051601f1981840301815291815281516020928301205f96875292909216905290922092915050565b6001600160a01b038216613db3576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b61291f825f83613c3c565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e9828696040518060c001604052808a6001600160a01b031681526020018b6001600160a01b031681526020018881526020018c815260200189815260200187815250604051602001613e649190615d20565b6040516020818303038152906040526040518463ffffffff1660e01b8152600401613e9193929190615943565b5f604051808303815f87803b158015613ea8575f80fd5b505af1158015613eba573d5f803e3d5ffd5b5050505050505050505050565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b5f613f20613f0083614552565b8015613f1b57505f8480613f1657613f16615d5f565b868809115b151590565b613f2b86868661457e565b6126669190615c32565b5f828218828411028218610e38565b5f5b5f198214158015613f88575042836002018381548110613f6857613f68615a43565b5f91825260209091206001600590920201015467ffffffffffffffff1611155b15613fb957826002018281548110613fa257613fa2615a43565b905f5260205f209060050201600301549150613f46565b50919050565b5f5b5f19831461400d575f846002018481548110613fdf57613fdf615a43565b905f5260205f209060050201905082815f0154165f146140025783915050610e38565b600301549250613fc1565b505f199392505050565b5f5b5f19831461400d575f84600201848154811061403757614037615a43565b5f918252602090912060059091020160018101549091504267ffffffffffffffff9091161115614067575061400d565b80548316156140795783915050610e38565b600301549250614019565b5f805f614091858561462e565b91509150806140d6576040517f22c9f7bb0000000000000000000000000000000000000000000000000000000081526004810186905260248101859052604401610bc1565b509392505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d848061412386868686614734565b915091505f6141328383614853565b9a9950505050505050505050565b5f807bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8416601b0b60e085901d6141748282876148b1565b9350935050509250929050565b5f61418a61307e565b60028101549091505f0361419b5750565b5f6141b0826005015460026001176001613a93565b90505f195b5f1982146141d35750806141cc8160036001613a93565b91506141b5565b5f198114610cde5760058301819055505050565b6001600160a01b0381166141f85750565b5f61420161307e565b6001600160a01b0383165f9081526003820160205260408120549192506142278461306b565b90505f8061423583856130df565b9150915083810361424857505050505050565b6001600160a01b0386165f9081526003860160205260409020819055818314614275576142758683614a9c565b6040805185815260208101839052908101849052606081018390526001600160a01b038716907f36a2eb39b73568d38e98721588b15b309c9380e1b1ab575c2c3d71d5148ccb4a9060800160405180910390a261357384848385614aae565b6142de8383613679565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a6040518060800160405280896001600160a01b03168152602001886001600160a01b0316815260200187815260200161438e7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0254421190565b151590526040805182516001600160a01b03908116602080840191909152840151168183015290820151606080830191909152909101511515608082015260a0016040516020818303038152906040526040518463ffffffff1660e01b81526004016143fc93929190615943565b5f604051808303815f87803b158015614413575f80fd5b505af1158015614425573d5f803e3d5ffd5b50505050612bb9848484614b0b565b5f61443d61307e565b60028101549091501561291f5760058101545f9081526004820160205260408120805484929061446e908490615c32565b90915550505050565b5f61448061307e565b60028101549091501561291f5760058101545f9081526004820160205260408120805484929061446e908490615a30565b6144b9614b16565b611aa3576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6144f76144b1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace007f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace036145438482615dd0565b5060048101612bb98382615dd0565b5f600282600381111561456757614567615d32565b6145719190615e8c565b60ff166001149050919050565b5f805f61458b8686614b34565b91509150815f036145af578381816145a5576145a5615d5f565b0492505050610e38565b8184116145c6576145c66003851502601118614b50565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010185841190960395909502919093039390930492909217029150509392505050565b5f601b83900b8314838382614692577d90e40fbeea1d3a4abc8955e946fe31cdcf66f634e100000000000000000086051561467257620186a0860595506005850194505b8586601b0b1461468d57600a86059550846001019450614672565b6146a8565b855f036146a857505f9250600191506131869050565b848560030b14614704575f8512156146c857505f92508291506131869050565b6040517fd556b1110000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610bc1565b50507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841660e084901b1791509250929050565b5f808515841517801561474c575f92505f9150614849565b6147568487615ead565b91505f61476288614b61565b90505f61476e87614b61565b90505f61477b8383614b34565b5090505f6f0785ee10d5da46d900f436a0000000008211156147b0576f0785ee10d5da46d900f436a000000000820491506025015b670de0b6b3a76400008211156147d157670de0b6b3a7640000820491506012015b633b9aca008211156147ea57633b9aca00820491506009015b6127108211156147ff57612710820491506004015b811561481357600a820491506001016147ff565b61481d8187615ead565b955061483f8b8a614839878761483487600a615fac565b614bc2565b89614c9d565b9097509550505050505b5094509492505050565b5f805f614860858561462e565b9150915080158015614870575081155b156140d6576040517f8eba4d070000000000000000000000000000000000000000000000000000000081526004810186905260248101859052604401610bc1565b5f805f8512156148f7576040517f4a7d166b0000000000000000000000000000000000000000000000000000000081526004810186905260248101859052604401610bc1565b845f0361490957505f90506001614a94565b8460ff8416850185811215614954576040517fd556b1110000000000000000000000000000000000000000000000000000000081526004810188905260248101879052604401610bc1565b5f805f8312156149be577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb3831215614995575f809550955050505050614a94565b825f03600a0a91508184816149ac576149ac615d5f565b0495505084029091149150614a949050565b5f831315614a8957604d831315614a14576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff88166044820152606401610bc1565b82600a0a9150815f1981614a2a57614a2a615d5f565b04841115614a77576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff88166044820152606401610bc1565b5091909102925060019150614a949050565b509193506001925050505b935093915050565b5f614aa683613d04565b919091555050565b5f614ab761307e565b905083816004015f8781526020019081526020015f205f828254614adb9190615a30565b90915550505f83815260048201602052604081208054849290614aff908490615c32565b90915550505050505050565b610cde838383614da9565b5f614b1f612c65565b5468010000000000000000900460ff16919050565b5f805f1983850993909202808410938190039390930393915050565b634e487b715f52806020526024601cfd5b5f80821215614bbe577f80000000000000000000000000000000000000000000000000000000000000008203614bb857507f8000000000000000000000000000000000000000000000000000000000000000919050565b505f0390565b5090565b5f805f614bcf8686614b34565b91509150815f03614be9578381816145a5576145a5615d5f565b838210614c33576040517f6c59da12000000000000000000000000000000000000000000000000000000008152600481018790526024810186905260448101859052606401610bc1565b5f84868809600186198101871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103025f82900382900490920185841190960395909502919093039390930492909217029150509392505050565b5f805f8587181215614d67577f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841115614d5457614cfc7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001615c32565b8403614d2c57507f8000000000000000000000000000000000000000000000000000000000000000905081614da0565b614d37600a85615fb7565b614d4090615fca565b614d4b846001615ead565b91509150614da0565b614d5d84615fca565b8391509150614da0565b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841115614d9a57614d40600a85615fb7565b50829050815b94509492505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b038416614df65781816002015f828254614deb9190615c32565b90915550614e7f9050565b6001600160a01b0384165f9081526020829052604090205482811015614e61576040517fe450d38c0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024810182905260448101849052606401610bc1565b6001600160a01b0385165f9081526020839052604090209083900390555b6001600160a01b038316614e9d576002810180548390039055614ebb565b6001600160a01b0383165f9081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051614f0091815260200190565b60405180910390a350505050565b5f60208284031215614f1e575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610e38575f80fd5b6001600160a01b03811681146124b5575f80fd5b5f60208284031215614f71575f80fd5b8135610e3881614f4d565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610e386020830184614f7c565b5f8060408385031215614fcd575f80fd5b8235614fd881614f4d565b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff8111828210171561503657615036614fe6565b60405290565b6040516080810167ffffffffffffffff8111828210171561503657615036614fe6565b604051601f8201601f1916810167ffffffffffffffff8111828210171561508857615088614fe6565b604052919050565b5f67ffffffffffffffff8211156150a9576150a9614fe6565b50601f01601f191660200190565b5f82601f8301126150c6575f80fd5b81356150d96150d482615090565b61505f565b8181528460208386010111156150ed575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f806080858703121561511c575f80fd5b84359350602085013561512e81614f4d565b925060408501359150606085013567ffffffffffffffff811115615150575f80fd5b61515c878288016150b7565b91505092959194509250565b5f8060408385031215615179575f80fd5b50508035926020909101359150565b5f60208284031215615198575f80fd5b5035919050565b5f805f606084860312156151b1575f80fd5b83356151bc81614f4d565b925060208401356151cc81614f4d565b929592945050506040919091013590565b5f602082840312156151ed575f80fd5b813567ffffffffffffffff811115615203575f80fd5b610e0f848285016150b7565b5f805f8060808587031215615222575f80fd5b843561522d81614f4d565b93506020850135925060408501359150606085013567ffffffffffffffff811115615150575f80fd5b5f805f60608486031215615268575f80fd5b833561527381614f4d565b925060208401359150604084013567ffffffffffffffff811115615295575f80fd5b6152a1868287016150b7565b9150509250925092565b5f805f805f60a086880312156152bf575f80fd5b8535945060208601356152d181614f4d565b935060408601356152e181614f4d565b925060608601359150608086013567ffffffffffffffff811115615303575f80fd5b61530f888289016150b7565b9150509295509295909350565b5f806020838503121561532d575f80fd5b823567ffffffffffffffff80821115615344575f80fd5b818501915085601f830112615357575f80fd5b813581811115615365575f80fd5b8660208260051b8501011115615379575f80fd5b60209290920196919550909350505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b828110156153fe577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08886030184526153ec858351614f7c565b945092850192908501906001016153b2565b5092979650505050505050565b5f8083601f84011261541b575f80fd5b50813567ffffffffffffffff811115615432575f80fd5b602083019150836020828501011115613186575f80fd5b5f805f805f6080868803121561545d575f80fd5b85359450602086013561546f81614f4d565b935060408601359250606086013567ffffffffffffffff811115615491575f80fd5b61549d8882890161540b565b969995985093965092949392505050565b5f80604083850312156154bf575f80fd5b82356154ca81614f4d565b915060208301356154da81614f4d565b809150509250929050565b5f82601f8301126154f4575f80fd5b8135602067ffffffffffffffff82111561551057615510614fe6565b8160051b61551f82820161505f565b9283528481018201928281019087851115615538575f80fd5b83870192505b8483101561214c5782358252918301919083019061553e565b5f805f805f60a0868803121561556b575f80fd5b853561557681614f4d565b9450602086013561558681614f4d565b9350604086013561559681614f4d565b9250606086013567ffffffffffffffff808211156155b2575f80fd5b6155be89838a016154e5565b935060808801359150808211156155d3575f80fd5b5061530f888289016154e5565b80151581146124b5575f80fd5b5f805f8060608587031215615600575f80fd5b843593506020850135615612816155e0565b9250604085013567ffffffffffffffff81111561562d575f80fd5b6156398782880161540b565b95989497509550505050565b5f60208284031215615655575f80fd5b5051919050565b600181811c9082168061567057607f821691505b602082108103613fb9577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f602082840312156156b7575f80fd5b815160ff81168114610e38575f80fd5b5f82601f8301126156d6575f80fd5b81516156e46150d482615090565b8181528460208386010111156156f8575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f60208284031215615724575f80fd5b815167ffffffffffffffff8082111561573b575f80fd5b908301906040828603121561574e575f80fd5b615756615013565b825161576181614f4d565b8152602083015182811115615774575f80fd5b929092019160808387031215615788575f80fd5b61579061503c565b835161579b81614f4d565b81526020840151838111156157ae575f80fd5b6157ba888287016156c7565b6020830152506040840151838111156157d1575f80fd5b6157dd888287016156c7565b604083015250606084015193506157f384614f4d565b60608101939093526020810192909252509392505050565b5f6001600160a01b038085168352604060208401528084511660408401526020840151604060608501528181511660808501526020810151608060a0860152615858610100860182614f7c565b905060408201517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808683030160c08701526158938282614f7c565b9150508260608301511660e08601528093505050509392505050565b5f6001600160a01b03808916835280881660208401525085604083015284606083015283608083015260c060a08301526158ec60c0830184614f7c565b98975050505050505050565b602081526001600160a01b0382511660208201526020820151604082015260408201516060820152606082015160808201525f608083015160a080840152610e0f60c0840182614f7c565b6001600160a01b0384168152826020820152606060408201525f6126666060830184614f7c565b5f6001600160a01b03808816835280871660208401525084604083015283606083015260a0608083015261214c60a0830184614f7c565b602081526001600160a01b03825116602082015260208201516040820152604082015160608201525f6060830151608080840152610e0f60a0840182614f7c565b6001600160a01b0383168152604060208201525f610e0f6040830184614f7c565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b81810381811115610ab457610ab4615a03565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112615aa3575f80fd5b83018035915067ffffffffffffffff821115615abd575f80fd5b602001915036819003821315613186575f80fd5b828482375f8382015f815283518060208601835e5f910190815295945050505050565b5f815180845260208085019450602084015f5b83811015615b2357815187529582019590820190600101615b07565b509495945050505050565b602081525f6001600160a01b0380845116602084015280602085015116604084015250604083015160a06060840152615b6a60c0840182615af4565b90506060840151601f19848303016080850152615b878282615af4565b9150506080840151151560a08401528091505092915050565b6001600160a01b0386168152846020820152831515604082015260806060820152816080820152818360a08301375f81830160a090810191909152601f909201601f19160101949350505050565b602081528151602082015260208201516040820152604082015160608201526060820151151560808201525f608083015160a080840152610e0f60c0840182614f7c565b80820180821115610ab457610ab4615a03565b5f60208284031215615c55575f80fd5b8151610e3881614f4d565b5f60208284031215615c70575f80fd5b8151610e38816155e0565b5f6001600160a01b03808a16835280891660208401528088166040840152508560608301528460808301528360a083015260e060c0830152615cc060e0830184614f7c565b9998505050505050505050565b5f6001600160a01b038083511684528060208401511660208501525060408201516040840152606082015160608401526080820151608084015260a082015160c060a0850152610e0f60c0850182614f7c565b602081525f610e386020830184615ccd565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b601f821115610cde57805f5260205f20601f840160051c81016020851015615db15750805b601f840160051c820191505b818110156128a5575f8155600101615dbd565b815167ffffffffffffffff811115615dea57615dea614fe6565b615dfe81615df8845461565c565b84615d8c565b602080601f831160018114615e31575f8415615e1a5750858301515b5f19600386901b1c1916600185901b178555613573565b5f85815260208120601f198616915b82811015615e5f57888601518255948401946001909101908401615e40565b5085821015615e7c57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f60ff831680615e9e57615e9e615d5f565b8060ff84160691505092915050565b8082018281125f83128015821682158216171561203657612036615a03565b600181815b80851115615f0657815f1904821115615eec57615eec615a03565b80851615615ef957918102915b93841c9390800290615ed1565b509250929050565b5f82615f1c57506001610ab4565b81615f2857505f610ab4565b8160018114615f3e5760028114615f4857615f64565b6001915050610ab4565b60ff841115615f5957615f59615a03565b50506001821b610ab4565b5060208310610133831016604e8410600b8410161715615f87575081810a610ab4565b615f918383615ecc565b805f1904821115615fa457615fa4615a03565b029392505050565b5f610e388383615f0e565b5f82615fc557615fc5615d5f565b500490565b5f7f80000000000000000000000000000000000000000000000000000000000000008203614bb857614bb8615a0356"; diff --git a/src/generated/0_1_3/StoxUnifiedDeployer.pointers.sol b/src/generated/0_1_3/StoxUnifiedDeployer.pointers.sol deleted file mode 100644 index 3819204f..00000000 --- a/src/generated/0_1_3/StoxUnifiedDeployer.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x76b90443c401cb2071b31fbf0596f931e01315c358b9db4e4db998107dc2e62c); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x48E1A9091E89f5500AfC9d42FBB85bE8b4f70203); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"6080604052348015600e575f80fd5b506106308061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c806301ffc9a714610038578063733e1f8d1461005f575b5f80fd5b61004b6100463660046102a3565b610074565b604051901515815260200160405180910390f35b61007261006d36600461042d565b61010c565b005b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f733e1f8d00000000000000000000000000000000000000000000000000000000148061010657507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6040517f4904fab30000000000000000000000000000000000000000000000000000000081525f9073679ab223dab158ea93e1a4f49104de436c58eab890634904fab39061015e908590600401610570565b6020604051808303815f875af115801561017a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061019e9190610615565b6040517fd786858b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201529091505f90736b4232f1046f1f1bb99a1184d886bbaf3cd7e15a9063d786858b906024016020604051808303815f875af1158015610220573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102449190610615565b6040805133815273ffffffffffffffffffffffffffffffffffffffff858116602083015283168183015290519192507fa0d99d93cf7a5f89661fa0829369a7e4896e755871efe65440bab2429387d55b919081900360600190a1505050565b5f602082840312156102b3575f80fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146102e2575f80fd5b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff81118282101715610339576103396102e9565b60405290565b6040516080810167ffffffffffffffff81118282101715610339576103396102e9565b73ffffffffffffffffffffffffffffffffffffffff81168114610383575f80fd5b50565b5f82601f830112610395575f80fd5b813567ffffffffffffffff808211156103b0576103b06102e9565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156103f6576103f66102e9565b8160405283815286602085880101111561040e575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f6020828403121561043d575f80fd5b813567ffffffffffffffff80821115610454575f80fd5b9083019060408286031215610467575f80fd5b61046f610316565b823561047a81610362565b815260208301358281111561048d575f80fd5b9290920191608083870312156104a1575f80fd5b6104a961033f565b83356104b481610362565b81526020840135838111156104c7575f80fd5b6104d388828701610386565b6020830152506040840135838111156104ea575f80fd5b6104f688828701610386565b6040830152506060840135935061050c84610362565b60608101939093526020810192909252509392505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f73ffffffffffffffffffffffffffffffffffffffff808451166020840152602084015160408085015281815116606085015260208101516080808601526105bf60e0860182610524565b905060408201517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08683030160a08701526105fa8282610524565b9150508260608301511660c086015280935050505092915050565b5f60208284031215610625575f80fd5b81516102e28161036256"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b5060043610610034575f3560e01c806301ffc9a714610038578063733e1f8d1461005f575b5f80fd5b61004b6100463660046102a3565b610074565b604051901515815260200160405180910390f35b61007261006d36600461042d565b61010c565b005b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f733e1f8d00000000000000000000000000000000000000000000000000000000148061010657507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6040517f4904fab30000000000000000000000000000000000000000000000000000000081525f9073679ab223dab158ea93e1a4f49104de436c58eab890634904fab39061015e908590600401610570565b6020604051808303815f875af115801561017a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061019e9190610615565b6040517fd786858b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201529091505f90736b4232f1046f1f1bb99a1184d886bbaf3cd7e15a9063d786858b906024016020604051808303815f875af1158015610220573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102449190610615565b6040805133815273ffffffffffffffffffffffffffffffffffffffff858116602083015283168183015290519192507fa0d99d93cf7a5f89661fa0829369a7e4896e755871efe65440bab2429387d55b919081900360600190a1505050565b5f602082840312156102b3575f80fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146102e2575f80fd5b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff81118282101715610339576103396102e9565b60405290565b6040516080810167ffffffffffffffff81118282101715610339576103396102e9565b73ffffffffffffffffffffffffffffffffffffffff81168114610383575f80fd5b50565b5f82601f830112610395575f80fd5b813567ffffffffffffffff808211156103b0576103b06102e9565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156103f6576103f66102e9565b8160405283815286602085880101111561040e575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f6020828403121561043d575f80fd5b813567ffffffffffffffff80821115610454575f80fd5b9083019060408286031215610467575f80fd5b61046f610316565b823561047a81610362565b815260208301358281111561048d575f80fd5b9290920191608083870312156104a1575f80fd5b6104a961033f565b83356104b481610362565b81526020840135838111156104c7575f80fd5b6104d388828701610386565b6020830152506040840135838111156104ea575f80fd5b6104f688828701610386565b6040830152506060840135935061050c84610362565b60608101939093526020810192909252509392505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f73ffffffffffffffffffffffffffffffffffffffff808451166020840152602084015160408085015281815116606085015260208101516080808601526105bf60e0860182610524565b905060408201517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08683030160a08701526105fa8282610524565b9150508260608301511660c086015280935050505092915050565b5f60208284031215610625575f80fd5b81516102e28161036256"; diff --git a/src/generated/0_1_3/StoxWrappedTokenVault.pointers.sol b/src/generated/0_1_3/StoxWrappedTokenVault.pointers.sol deleted file mode 100644 index 18c6e307..00000000 --- a/src/generated/0_1_3/StoxWrappedTokenVault.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x6de4c556c1811293da4ad2e509ee476f3eb635f019845087e1d2777a1b272034); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x0D99e0174DbF885ceD6AE8dEb939b0F890450099); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"6080604052348015600e575f80fd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b611de4806100d65f395ff3fe608060405234801561000f575f80fd5b50600436106101b0575f3560e01c806370a08231116100f3578063c4d66de811610093578063ce96cb771161006e578063ce96cb77146103c9578063d905777e146103dc578063dd62ed3e146103ef578063ef8b30f7146103b6575f80fd5b8063c4d66de8146103a3578063c63d75b6146102bb578063c6e6f592146103b6575f80fd5b8063a9059cbb116100ce578063a9059cbb14610357578063b3d7f6b91461036a578063b460af941461037d578063ba08765214610390575f80fd5b806370a08231146102f557806394bf804d1461033c57806395d89b411461034f575f80fd5b806323b872dd1161015e578063402d267d11610139578063402d267d146102bb578063439fab91146102cf5780634cdad506146101e45780636e553f65146102e2575f80fd5b806323b872dd14610254578063313ce5671461026757806338d52e0f14610281575f80fd5b8063095ea7b31161018e578063095ea7b3146101f75780630a28a4771461021a57806318160ddd1461022d575f80fd5b806301e1d114146101b457806306fdde03146101cf57806307a2d13a146101e4575b5f80fd5b6101bc610446565b6040519081526020015b60405180910390f35b6101d76104fe565b6040516101c69190611758565b6101bc6101f236600461178d565b6105b6565b61020a6102053660046117b8565b6105c7565b60405190151581526020016101c6565b6101bc61022836600461178d565b6105de565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02546101bc565b61020a6102623660046117e2565b6105ea565b61026f61060f565b60405160ff90911681526020016101c6565b7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546040516001600160a01b0390911681526020016101c6565b6101bc6102c9366004611820565b505f1990565b6101bc6102dd36600461183b565b610662565b6101bc6102f03660046118a7565b61089d565b6101bc610303366004611820565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00602052604090205490565b6101bc61034a3660046118a7565b6108ce565b6101d76108e9565b61020a6103653660046117b8565b61098d565b6101bc61037836600461178d565b61099a565b6101bc61038b3660046118d5565b6109a6565b6101bc61039e3660046118d5565b610a28565b6101bc6103b1366004611820565b610aa1565b6101bc6103c436600461178d565b610ad4565b6101bc6103d7366004611820565b610adf565b6101bc6103ea366004611820565b610ae8565b6101bc6103fd366004611914565b6001600160a01b039182165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b5f6104787f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa1580156104d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104f99190611940565b905090565b60606105317f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b6001600160a01b03166306fdde036040518163ffffffff1660e01b81526004015f60405180830381865afa15801561056b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526105929190810190611984565b6040516020016105a29190611a46565b604051602081830303815290604052905090565b5f6105c1825f610b24565b92915050565b5f336105d4818585610b7b565b5060019392505050565b5f6105c1826001610b8d565b5f336105f7858285610bdb565b610602858585610c8f565b60019150505b9392505050565b5f807f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e0090505f815461065c919074010000000000000000000000000000000000000000900460ff16611aa4565b91505090565b5f8061066c610d1e565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156106985750825b90505f8267ffffffffffffffff1660011480156106b45750303b155b9050811580156106c2575080155b156106f9576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166001178555831561075a5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b5f610767888a018a611820565b90506001600160a01b0381166107a9576040517f7cde9b7200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107b281610d46565b6107d860405180602001604052805f81525060405180602001604052805f815250610d5a565b6040516001600160a01b0382169033907fdf5fabff9e49f8c35d69a1f2d0c5e80c933c31cf836cf70de57e3a6e7dc86ebb905f90a37fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc396505083156108925784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505092915050565b5f5f196108ae565b60405180910390fd5b5f6108b885610ad4565b90506108c633858784610d70565b949350505050565b5f5f195f6108db8561099a565b90506108c633858388610d70565b606061091c7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b6001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015610956573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261097d9190810190611984565b6040516020016105a29190611abd565b5f336105d4818585610c8f565b5f6105c1826001610b24565b5f806109b183610adf565b905080851115610a06576040517ffe9cceec0000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101869052604481018290526064016108a5565b5f610a10866105de565b9050610a1f3386868985610de0565b95945050505050565b5f80610a3383610ae8565b905080851115610a88576040517fb94abeec0000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101869052604481018290526064016108a5565b5f610a92866105b6565b9050610a1f338686848a610de0565b5f6040517faf1fbb2100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6105c1825f610b8d565b5f6105c16101f2835b6001600160a01b0381165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0060205260408120546105c1565b5f610608610b30610446565b610b3b906001611aee565b610b465f600a611be1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254610b729190611aee565b85919085610e7f565b610b888383836001610ec1565b505050565b5f610608610b9c82600a611be1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254610bc89190611aee565b610bd0610446565b610b72906001611aee565b6001600160a01b038381165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160209081526040808320938616835292905220545f19811015610c895781811015610c7b576040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101829052604481018390526064016108a5565b610c8984848484035f610ec1565b50505050565b6001600160a01b038316610cd1576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b6001600160a01b038216610d13576040517fec442f050000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b610b88838383610fea565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006105c1565b610d4e611141565b610d5781611181565b50565b610d62611141565b610d6c8282611245565b5050565b610d7a84836112a8565b610d8483826112e4565b826001600160a01b0316846001600160a01b03167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d78484604051610dd2929190918252602082015260400190565b60405180910390a350505050565b826001600160a01b0316856001600160a01b031614610e0457610e04838683610bdb565b610e0e8382611331565b610e18848361137e565b826001600160a01b0316846001600160a01b0316866001600160a01b03167ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db8585604051610e70929190918252602082015260400190565b60405180910390a45050505050565b5f610eac610e8c836113b9565b8015610ea757505f8480610ea257610ea2611bef565b868809115b151590565b610eb78686866113e5565b610a1f9190611aee565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b038516610f24576040517fe602df050000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b6001600160a01b038416610f66576040517f94280d620000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b6001600160a01b038086165f90815260018301602090815260408083209388168352929052208390558115610fe357836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92585604051610fda91815260200190565b60405180910390a35b5050505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b0384166110375781816002015f82825461102c9190611aee565b909155506110c09050565b6001600160a01b0384165f90815260208290526040902054828110156110a2576040517fe450d38c0000000000000000000000000000000000000000000000000000000081526001600160a01b038616600482015260248101829052604481018490526064016108a5565b6001600160a01b0385165f9081526020839052604090209083900390555b6001600160a01b0383166110de5760028101805483900390556110fc565b6001600160a01b0383165f9081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610dd291815260200190565b611149611495565b61117f576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b611189611141565b7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e005f806111b5846114b3565b91509150816111c55760126111c7565b805b83547fffffffffffffffffffffff000000000000000000000000000000000000000000167401000000000000000000000000000000000000000060ff92909216919091027fffffffffffffffffffffffff000000000000000000000000000000000000000016176001600160a01b0394909416939093179091555050565b61124d611141565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace007f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace036112998482611cb1565b5060048101610c898382611cb1565b610d6c6112dc7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b83308461156c565b6001600160a01b038216611326576040517fec442f050000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b610d6c5f8383610fea565b6001600160a01b038216611373576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b610d6c825f83610fea565b610d6c6113b27f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b83836115bb565b5f60028260038111156113ce576113ce611d71565b6113d89190611d9e565b60ff166001149050919050565b5f805f6113f28686611609565b91509150815f036114165783818161140c5761140c611bef565b0492505050610608565b81841161142d5761142d6003851502601118611625565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010185841190960395909502919093039390930492909217029150509392505050565b5f61149e610d1e565b5468010000000000000000900460ff16919050565b5f805f6114bf60405190565b6040805160048152602481019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f313ce567000000000000000000000000000000000000000000000000000000001790529091505f908190611528908790611636565b509150915061153683604052565b818015611544575060203d10155b8015611551575060ff8111155b61155c575f80611560565b6001815b94509450505050915091565b61157a848484846001611657565b610c89576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b03851660048201526024016108a5565b6115c883838360016116dd565b610b88576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201526024016108a5565b5f805f1983850993909202808410938190039390930393915050565b634e487b715f52806020526024601cfd5b5f805f60405f855160208701885afa92505f51915060205190509250925092565b6040517f23b872dd000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038781166004528616602452604485905291602083606481808c5af1925060015f511483166116cc5783831516156116c0573d5f823e3d81fd5b5f883b113d1516831692505b604052505f60605295945050505050565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f5114831661174c578383151615611740573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f6020828403121561179d575f80fd5b5035919050565b6001600160a01b0381168114610d57575f80fd5b5f80604083850312156117c9575f80fd5b82356117d4816117a4565b946020939093013593505050565b5f805f606084860312156117f4575f80fd5b83356117ff816117a4565b9250602084013561180f816117a4565b929592945050506040919091013590565b5f60208284031215611830575f80fd5b8135610608816117a4565b5f806020838503121561184c575f80fd5b823567ffffffffffffffff80821115611863575f80fd5b818501915085601f830112611876575f80fd5b813581811115611884575f80fd5b866020828501011115611895575f80fd5b60209290920196919550909350505050565b5f80604083850312156118b8575f80fd5b8235915060208301356118ca816117a4565b809150509250929050565b5f805f606084860312156118e7575f80fd5b8335925060208401356118f9816117a4565b91506040840135611909816117a4565b809150509250925092565b5f8060408385031215611925575f80fd5b8235611930816117a4565b915060208301356118ca816117a4565b5f60208284031215611950575f80fd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f60208284031215611994575f80fd5b815167ffffffffffffffff808211156119ab575f80fd5b818401915084601f8301126119be575f80fd5b8151818111156119d0576119d0611957565b604051601f8201601f19908116603f011681019083821181831017156119f8576119f8611957565b81604052828152876020848701011115611a10575f80fd5b8260208601602083015e5f928101602001929092525095945050505050565b5f81518060208401855e5f93019283525090919050565b7f577261707065642000000000000000000000000000000000000000000000000081525f6106086008830184611a2f565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60ff81811683821601908111156105c1576105c1611a77565b7f770000000000000000000000000000000000000000000000000000000000000081525f6106086001830184611a2f565b808201808211156105c1576105c1611a77565b600181815b80851115611b3b57815f1904821115611b2157611b21611a77565b80851615611b2e57918102915b93841c9390800290611b06565b509250929050565b5f82611b51575060016105c1565b81611b5d57505f6105c1565b8160018114611b735760028114611b7d57611b99565b60019150506105c1565b60ff841115611b8e57611b8e611a77565b50506001821b6105c1565b5060208310610133831016604e8410600b8410161715611bbc575081810a6105c1565b611bc68383611b01565b805f1904821115611bd957611bd9611a77565b029392505050565b5f61060860ff841683611b43565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b600181811c90821680611c3057607f821691505b602082108103611c67577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b601f821115610b8857805f5260205f20601f840160051c81016020851015611c925750805b601f840160051c820191505b81811015610fe3575f8155600101611c9e565b815167ffffffffffffffff811115611ccb57611ccb611957565b611cdf81611cd98454611c1c565b84611c6d565b602080601f831160018114611d12575f8415611cfb5750858301515b5f19600386901b1c1916600185901b178555611d69565b5f85815260208120601f198616915b82811015611d4057888601518255948401946001909101908401611d21565b5085821015611d5d57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f60ff831680611dd5577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b8060ff8416069150509291505056"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b50600436106101b0575f3560e01c806370a08231116100f3578063c4d66de811610093578063ce96cb771161006e578063ce96cb77146103c9578063d905777e146103dc578063dd62ed3e146103ef578063ef8b30f7146103b6575f80fd5b8063c4d66de8146103a3578063c63d75b6146102bb578063c6e6f592146103b6575f80fd5b8063a9059cbb116100ce578063a9059cbb14610357578063b3d7f6b91461036a578063b460af941461037d578063ba08765214610390575f80fd5b806370a08231146102f557806394bf804d1461033c57806395d89b411461034f575f80fd5b806323b872dd1161015e578063402d267d11610139578063402d267d146102bb578063439fab91146102cf5780634cdad506146101e45780636e553f65146102e2575f80fd5b806323b872dd14610254578063313ce5671461026757806338d52e0f14610281575f80fd5b8063095ea7b31161018e578063095ea7b3146101f75780630a28a4771461021a57806318160ddd1461022d575f80fd5b806301e1d114146101b457806306fdde03146101cf57806307a2d13a146101e4575b5f80fd5b6101bc610446565b6040519081526020015b60405180910390f35b6101d76104fe565b6040516101c69190611758565b6101bc6101f236600461178d565b6105b6565b61020a6102053660046117b8565b6105c7565b60405190151581526020016101c6565b6101bc61022836600461178d565b6105de565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02546101bc565b61020a6102623660046117e2565b6105ea565b61026f61060f565b60405160ff90911681526020016101c6565b7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546040516001600160a01b0390911681526020016101c6565b6101bc6102c9366004611820565b505f1990565b6101bc6102dd36600461183b565b610662565b6101bc6102f03660046118a7565b61089d565b6101bc610303366004611820565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00602052604090205490565b6101bc61034a3660046118a7565b6108ce565b6101d76108e9565b61020a6103653660046117b8565b61098d565b6101bc61037836600461178d565b61099a565b6101bc61038b3660046118d5565b6109a6565b6101bc61039e3660046118d5565b610a28565b6101bc6103b1366004611820565b610aa1565b6101bc6103c436600461178d565b610ad4565b6101bc6103d7366004611820565b610adf565b6101bc6103ea366004611820565b610ae8565b6101bc6103fd366004611914565b6001600160a01b039182165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b5f6104787f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa1580156104d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104f99190611940565b905090565b60606105317f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b6001600160a01b03166306fdde036040518163ffffffff1660e01b81526004015f60405180830381865afa15801561056b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526105929190810190611984565b6040516020016105a29190611a46565b604051602081830303815290604052905090565b5f6105c1825f610b24565b92915050565b5f336105d4818585610b7b565b5060019392505050565b5f6105c1826001610b8d565b5f336105f7858285610bdb565b610602858585610c8f565b60019150505b9392505050565b5f807f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e0090505f815461065c919074010000000000000000000000000000000000000000900460ff16611aa4565b91505090565b5f8061066c610d1e565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156106985750825b90505f8267ffffffffffffffff1660011480156106b45750303b155b9050811580156106c2575080155b156106f9576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166001178555831561075a5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b5f610767888a018a611820565b90506001600160a01b0381166107a9576040517f7cde9b7200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107b281610d46565b6107d860405180602001604052805f81525060405180602001604052805f815250610d5a565b6040516001600160a01b0382169033907fdf5fabff9e49f8c35d69a1f2d0c5e80c933c31cf836cf70de57e3a6e7dc86ebb905f90a37fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc396505083156108925784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505092915050565b5f5f196108ae565b60405180910390fd5b5f6108b885610ad4565b90506108c633858784610d70565b949350505050565b5f5f195f6108db8561099a565b90506108c633858388610d70565b606061091c7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b6001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015610956573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261097d9190810190611984565b6040516020016105a29190611abd565b5f336105d4818585610c8f565b5f6105c1826001610b24565b5f806109b183610adf565b905080851115610a06576040517ffe9cceec0000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101869052604481018290526064016108a5565b5f610a10866105de565b9050610a1f3386868985610de0565b95945050505050565b5f80610a3383610ae8565b905080851115610a88576040517fb94abeec0000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101869052604481018290526064016108a5565b5f610a92866105b6565b9050610a1f338686848a610de0565b5f6040517faf1fbb2100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6105c1825f610b8d565b5f6105c16101f2835b6001600160a01b0381165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0060205260408120546105c1565b5f610608610b30610446565b610b3b906001611aee565b610b465f600a611be1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254610b729190611aee565b85919085610e7f565b610b888383836001610ec1565b505050565b5f610608610b9c82600a611be1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254610bc89190611aee565b610bd0610446565b610b72906001611aee565b6001600160a01b038381165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160209081526040808320938616835292905220545f19811015610c895781811015610c7b576040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101829052604481018390526064016108a5565b610c8984848484035f610ec1565b50505050565b6001600160a01b038316610cd1576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b6001600160a01b038216610d13576040517fec442f050000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b610b88838383610fea565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006105c1565b610d4e611141565b610d5781611181565b50565b610d62611141565b610d6c8282611245565b5050565b610d7a84836112a8565b610d8483826112e4565b826001600160a01b0316846001600160a01b03167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d78484604051610dd2929190918252602082015260400190565b60405180910390a350505050565b826001600160a01b0316856001600160a01b031614610e0457610e04838683610bdb565b610e0e8382611331565b610e18848361137e565b826001600160a01b0316846001600160a01b0316866001600160a01b03167ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db8585604051610e70929190918252602082015260400190565b60405180910390a45050505050565b5f610eac610e8c836113b9565b8015610ea757505f8480610ea257610ea2611bef565b868809115b151590565b610eb78686866113e5565b610a1f9190611aee565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b038516610f24576040517fe602df050000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b6001600160a01b038416610f66576040517f94280d620000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b6001600160a01b038086165f90815260018301602090815260408083209388168352929052208390558115610fe357836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92585604051610fda91815260200190565b60405180910390a35b5050505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b0384166110375781816002015f82825461102c9190611aee565b909155506110c09050565b6001600160a01b0384165f90815260208290526040902054828110156110a2576040517fe450d38c0000000000000000000000000000000000000000000000000000000081526001600160a01b038616600482015260248101829052604481018490526064016108a5565b6001600160a01b0385165f9081526020839052604090209083900390555b6001600160a01b0383166110de5760028101805483900390556110fc565b6001600160a01b0383165f9081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610dd291815260200190565b611149611495565b61117f576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b611189611141565b7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e005f806111b5846114b3565b91509150816111c55760126111c7565b805b83547fffffffffffffffffffffff000000000000000000000000000000000000000000167401000000000000000000000000000000000000000060ff92909216919091027fffffffffffffffffffffffff000000000000000000000000000000000000000016176001600160a01b0394909416939093179091555050565b61124d611141565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace007f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace036112998482611cb1565b5060048101610c898382611cb1565b610d6c6112dc7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b83308461156c565b6001600160a01b038216611326576040517fec442f050000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b610d6c5f8383610fea565b6001600160a01b038216611373576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b610d6c825f83610fea565b610d6c6113b27f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b83836115bb565b5f60028260038111156113ce576113ce611d71565b6113d89190611d9e565b60ff166001149050919050565b5f805f6113f28686611609565b91509150815f036114165783818161140c5761140c611bef565b0492505050610608565b81841161142d5761142d6003851502601118611625565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010185841190960395909502919093039390930492909217029150509392505050565b5f61149e610d1e565b5468010000000000000000900460ff16919050565b5f805f6114bf60405190565b6040805160048152602481019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f313ce567000000000000000000000000000000000000000000000000000000001790529091505f908190611528908790611636565b509150915061153683604052565b818015611544575060203d10155b8015611551575060ff8111155b61155c575f80611560565b6001815b94509450505050915091565b61157a848484846001611657565b610c89576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b03851660048201526024016108a5565b6115c883838360016116dd565b610b88576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201526024016108a5565b5f805f1983850993909202808410938190039390930393915050565b634e487b715f52806020526024601cfd5b5f805f60405f855160208701885afa92505f51915060205190509250925092565b6040517f23b872dd000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038781166004528616602452604485905291602083606481808c5af1925060015f511483166116cc5783831516156116c0573d5f823e3d81fd5b5f883b113d1516831692505b604052505f60605295945050505050565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f5114831661174c578383151615611740573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f6020828403121561179d575f80fd5b5035919050565b6001600160a01b0381168114610d57575f80fd5b5f80604083850312156117c9575f80fd5b82356117d4816117a4565b946020939093013593505050565b5f805f606084860312156117f4575f80fd5b83356117ff816117a4565b9250602084013561180f816117a4565b929592945050506040919091013590565b5f60208284031215611830575f80fd5b8135610608816117a4565b5f806020838503121561184c575f80fd5b823567ffffffffffffffff80821115611863575f80fd5b818501915085601f830112611876575f80fd5b813581811115611884575f80fd5b866020828501011115611895575f80fd5b60209290920196919550909350505050565b5f80604083850312156118b8575f80fd5b8235915060208301356118ca816117a4565b809150509250929050565b5f805f606084860312156118e7575f80fd5b8335925060208401356118f9816117a4565b91506040840135611909816117a4565b809150509250925092565b5f8060408385031215611925575f80fd5b8235611930816117a4565b915060208301356118ca816117a4565b5f60208284031215611950575f80fd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f60208284031215611994575f80fd5b815167ffffffffffffffff808211156119ab575f80fd5b818401915084601f8301126119be575f80fd5b8151818111156119d0576119d0611957565b604051601f8201601f19908116603f011681019083821181831017156119f8576119f8611957565b81604052828152876020848701011115611a10575f80fd5b8260208601602083015e5f928101602001929092525095945050505050565b5f81518060208401855e5f93019283525090919050565b7f577261707065642000000000000000000000000000000000000000000000000081525f6106086008830184611a2f565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60ff81811683821601908111156105c1576105c1611a77565b7f770000000000000000000000000000000000000000000000000000000000000081525f6106086001830184611a2f565b808201808211156105c1576105c1611a77565b600181815b80851115611b3b57815f1904821115611b2157611b21611a77565b80851615611b2e57918102915b93841c9390800290611b06565b509250929050565b5f82611b51575060016105c1565b81611b5d57505f6105c1565b8160018114611b735760028114611b7d57611b99565b60019150506105c1565b60ff841115611b8e57611b8e611a77565b50506001821b6105c1565b5060208310610133831016604e8410600b8410161715611bbc575081810a6105c1565b611bc68383611b01565b805f1904821115611bd957611bd9611a77565b029392505050565b5f61060860ff841683611b43565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b600181811c90821680611c3057607f821691505b602082108103611c67577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b601f821115610b8857805f5260205f20601f840160051c81016020851015611c925750805b601f840160051c820191505b81811015610fe3575f8155600101611c9e565b815167ffffffffffffffff811115611ccb57611ccb611957565b611cdf81611cd98454611c1c565b84611c6d565b602080601f831160018114611d12575f8415611cfb5750858301515b5f19600386901b1c1916600185901b178555611d69565b5f85815260208120601f198616915b82811015611d4057888601518255948401946001909101908401611d21565b5085821015611d5d57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f60ff831680611dd5577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b8060ff8416069150509291505056"; diff --git a/src/generated/0_1_3/StoxWrappedTokenVaultBeacon.pointers.sol b/src/generated/0_1_3/StoxWrappedTokenVaultBeacon.pointers.sol deleted file mode 100644 index 438a674d..00000000 --- a/src/generated/0_1_3/StoxWrappedTokenVaultBeacon.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x8e95867e52db417944afd90f3b6c3c980962831e8a944e7f6958ba8f8cc10630); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x9FD790f65CA3aF2772358c653F097f0a4c7EE7d2); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"608060405234801561000f575f80fd5b50730d99e0174dbf885ced6ae8deb939b0f890450099738e4bdeec7ceb9570d440676345da1dce10329f5b80610049565b60405180910390fd5b61005281610063565b5061005c826100b2565b5050610130565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b806001600160a01b03163b5f036100e75760405163211eb15960e21b81526001600160a01b0382166004820152602401610040565b600180546001600160a01b0319166001600160a01b0383169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b61035a8061013d5f395ff3fe608060405234801561000f575f80fd5b5060043610610064575f3560e01c8063715018a61161004d578063715018a6146100c05780638da5cb5b146100c8578063f2fde38b146100e5575f80fd5b80633659cfe6146100685780635c60da1b1461007d575b5f80fd5b61007b610076366004610320565b6100f8565b005b60015473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61007b61010c565b5f5473ffffffffffffffffffffffffffffffffffffffff16610097565b61007b6100f3366004610320565b61011f565b610100610184565b610109816101d6565b50565b610114610184565b61011d5f6102ac565b565b610127610184565b73ffffffffffffffffffffffffffffffffffffffff811661017b576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f60048201526024015b60405180910390fd5b610109816102ac565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461011d576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610172565b8073ffffffffffffffffffffffffffffffffffffffff163b5f0361023e576040517f847ac56400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602401610172565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f60208284031215610330575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610353575f80fd5b939250505056"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b5060043610610064575f3560e01c8063715018a61161004d578063715018a6146100c05780638da5cb5b146100c8578063f2fde38b146100e5575f80fd5b80633659cfe6146100685780635c60da1b1461007d575b5f80fd5b61007b610076366004610320565b6100f8565b005b60015473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61007b61010c565b5f5473ffffffffffffffffffffffffffffffffffffffff16610097565b61007b6100f3366004610320565b61011f565b610100610184565b610109816101d6565b50565b610114610184565b61011d5f6102ac565b565b610127610184565b73ffffffffffffffffffffffffffffffffffffffff811661017b576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f60048201526024015b60405180910390fd5b610109816102ac565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461011d576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610172565b8073ffffffffffffffffffffffffffffffffffffffff163b5f0361023e576040517f847ac56400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602401610172565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f60208284031215610330575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610353575f80fd5b939250505056"; diff --git a/src/generated/0_1_3/StoxWrappedTokenVaultBeaconSetDeployer.pointers.sol b/src/generated/0_1_3/StoxWrappedTokenVaultBeaconSetDeployer.pointers.sol deleted file mode 100644 index 231752f1..00000000 --- a/src/generated/0_1_3/StoxWrappedTokenVaultBeaconSetDeployer.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x940e3ab4278cf7ae44026596f4f32dc5c7f3facd99ef8070c63b5cfefd49a47c); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x6B4232f1046F1f1bb99a1184D886bBaF3Cd7e15A); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"6080604052348015600e575f80fd5b506109468061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c806301ffc9a714610038578063d786858b14610060575b5f80fd5b61004b610046366004610333565b610098565b60405190151581526020015b60405180910390f35b61007361006e366004610379565b610130565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610057565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fd786858b00000000000000000000000000000000000000000000000000000000148061012a57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff821661017e576040517fe51a7ce200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f739fd790f65ca3af2772358c653f097f0a4c7ee7d26040516101a090610326565b73ffffffffffffffffffffffffffffffffffffffff90911681526040602082018190525f90820152606001604051809103905ff0801580156101e4573d5f803e3d5ffd5b506040805133815273ffffffffffffffffffffffffffffffffffffffff831660208201529192507f82488d8ab594db2178e4a45b7106aaa804836e608f001b5d7fcb6c3514730b3e910160405180910390a16040805173ffffffffffffffffffffffffffffffffffffffff85811660208301527fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc3929084169163439fab9191016040516020818303038152906040526040518263ffffffff1660e01b81526004016102af91906103ac565b6020604051808303815f875af11580156102cb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ef91906103ff565b1461012a576040517f09c5931500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61052f8061041783390190565b5f60208284031215610343575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610372575f80fd5b9392505050565b5f60208284031215610389575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610372575f80fd5b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b5f6020828403121561040f575f80fd5b505191905056fe60a060405260405161052f38038061052f83398101604081905261002291610331565b61002c828261003e565b506001600160a01b031660805261040d565b610047826100fb565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a28051156100ef576100ea826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e491906103ed565b82610209565b505050565b6100f76102aa565b5050565b806001600160a01b03163b5f0361013557604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b815290515f92841691635c60da1b9160048083019260209291908290030181865afa1580156101ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d291906103ed565b9050806001600160a01b03163b5f036100f757604051634c9c8ce360e01b81526001600160a01b038216600482015260240161012c565b60605f61021684846102cb565b905080801561023757505f3d118061023757505f846001600160a01b03163b115b1561024c576102446102de565b9150506102a4565b801561027657604051639996b31560e01b81526001600160a01b038516600482015260240161012c565b3d15610289576102846102f7565b6102a2565b60405163d6bda27560e01b815260040160405180910390fd5b505b92915050565b34156102c95760405163b398979f60e01b815260040160405180910390fd5b565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b6040513d5f823e3d81fd5b80516001600160a01b0381168114610318575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215610342575f80fd5b61034b83610302565b60208401519092506001600160401b0380821115610367575f80fd5b818501915085601f83011261037a575f80fd5b81518181111561038c5761038c61031d565b604051601f8201601f19908116603f011681019083821181831017156103b4576103b461031d565b816040528281528860208487010111156103cc575f80fd5b8260208601602083015e5f6020848301015280955050505050509250929050565b5f602082840312156103fd575f80fd5b61040682610302565b9392505050565b60805161010b6104245f395f6023015261010b5ff3fe608060405261000c61000e565b005b61001e610019610020565b6100b3565b565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561008a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100ae91906100d1565b905090565b365f80375f80365f845af43d5f803e8080156100cd573d5ff35b3d5ffd5b5f602082840312156100e1575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610104575f80fd5b939250505056"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b5060043610610034575f3560e01c806301ffc9a714610038578063d786858b14610060575b5f80fd5b61004b610046366004610333565b610098565b60405190151581526020015b60405180910390f35b61007361006e366004610379565b610130565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610057565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fd786858b00000000000000000000000000000000000000000000000000000000148061012a57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff821661017e576040517fe51a7ce200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f739fd790f65ca3af2772358c653f097f0a4c7ee7d26040516101a090610326565b73ffffffffffffffffffffffffffffffffffffffff90911681526040602082018190525f90820152606001604051809103905ff0801580156101e4573d5f803e3d5ffd5b506040805133815273ffffffffffffffffffffffffffffffffffffffff831660208201529192507f82488d8ab594db2178e4a45b7106aaa804836e608f001b5d7fcb6c3514730b3e910160405180910390a16040805173ffffffffffffffffffffffffffffffffffffffff85811660208301527fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc3929084169163439fab9191016040516020818303038152906040526040518263ffffffff1660e01b81526004016102af91906103ac565b6020604051808303815f875af11580156102cb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ef91906103ff565b1461012a576040517f09c5931500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61052f8061041783390190565b5f60208284031215610343575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610372575f80fd5b9392505050565b5f60208284031215610389575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610372575f80fd5b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b5f6020828403121561040f575f80fd5b505191905056fe60a060405260405161052f38038061052f83398101604081905261002291610331565b61002c828261003e565b506001600160a01b031660805261040d565b610047826100fb565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a28051156100ef576100ea826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e491906103ed565b82610209565b505050565b6100f76102aa565b5050565b806001600160a01b03163b5f0361013557604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b815290515f92841691635c60da1b9160048083019260209291908290030181865afa1580156101ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d291906103ed565b9050806001600160a01b03163b5f036100f757604051634c9c8ce360e01b81526001600160a01b038216600482015260240161012c565b60605f61021684846102cb565b905080801561023757505f3d118061023757505f846001600160a01b03163b115b1561024c576102446102de565b9150506102a4565b801561027657604051639996b31560e01b81526001600160a01b038516600482015260240161012c565b3d15610289576102846102f7565b6102a2565b60405163d6bda27560e01b815260040160405180910390fd5b505b92915050565b34156102c95760405163b398979f60e01b815260040160405180910390fd5b565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b6040513d5f823e3d81fd5b80516001600160a01b0381168114610318575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215610342575f80fd5b61034b83610302565b60208401519092506001600160401b0380821115610367575f80fd5b818501915085601f83011261037a575f80fd5b81518181111561038c5761038c61031d565b604051601f8201601f19908116603f011681019083821181831017156103b4576103b461031d565b816040528281528860208487010111156103cc575f80fd5b8260208601602083015e5f6020848301015280955050505050509250929050565b5f602082840312156103fd575f80fd5b61040682610302565b9392505050565b60805161010b6104245f395f6023015261010b5ff3fe608060405261000c61000e565b005b61001e610019610020565b6100b3565b565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561008a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100ae91906100d1565b905090565b365f80375f80365f845af43d5f803e8080156100cd573d5ff35b3d5ffd5b5f602082840312156100e1575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610104575f80fd5b939250505056"; diff --git a/src/generated/0_1_4/ST0xOrchestrator.pointers.sol b/src/generated/0_1_4/ST0xOrchestrator.pointers.sol deleted file mode 100644 index 9fe30271..00000000 --- a/src/generated/0_1_4/ST0xOrchestrator.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x7537448e8cbb200d25651a941a39e465e2ef7a549fe8245d83774bef485629e6); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x0099FcB947Cc31E21C631478A2a9E2E591cd4010); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"6080604052348015600e575f80fd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6131c0806100d65f395ff3fe608060405260043610610191575f3560e01c8063742fabb3116100dc578063b930908f11610087578063d547741f11610062578063d547741f14610594578063e9a9c850146105b3578063f14893a7146105e6578063f23a6e6114610605575f80fd5b8063b930908f146104f2578063bc197c8114610525578063c4d66de814610575575f80fd5b806391d14854116100b757806391d148541461045d5780639cb887f8146104c0578063a217fddf146104df575f80fd5b8063742fabb3146103cf578063752c9cf51461042257806384b0196e14610436575f80fd5b80633b94a0dd1161013c57806344d171871161011757806344d1718714610372578063584f418e14610391578063671d083f146103b0575f80fd5b80633b94a0dd146103015780633e81e40d146103345780633f6fc76f14610353575f80fd5b8063248a9ca31161016c578063248a9ca3146102745780632f2ff15d146102c157806336568abe146102e2575f80fd5b806301ffc9a71461019c5780630e230f97146101d057806320df435914610233575f80fd5b3661019857005b5f80fd5b3480156101a7575f80fd5b506101bb6101b6366004612944565b610624565b60405190151581526020015b60405180910390f35b3480156101db575f80fd5b506101bb6101ea366004612973565b6001600160a01b03919091165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be70160209081526040808320938352929052205460ff1690565b34801561023e575f80fd5b506102667f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de81565b6040519081526020016101c7565b34801561027f575f80fd5b5061026661028e36600461299d565b5f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b3480156102cc575f80fd5b506102e06102db3660046129b4565b6106cb565b005b3480156102ed575f80fd5b506102e06102fc3660046129b4565b610714565b34801561030c575f80fd5b506102667f8381bcc05e5203d9456aa7185a19b2be5d4af37909fecf63a6f2016c1bf8413381565b34801561033f575f80fd5b5061026661034e3660046129e2565b610765565b34801561035e575f80fd5b506102e061036d366004612a25565b61077b565b34801561037d575f80fd5b506102e061038c366004612aa9565b610816565b34801561039c575f80fd5b506102e06103ab366004612b01565b610979565b3480156103bb575f80fd5b506102e06103ca366004612b48565b610af3565b3480156103da575f80fd5b506102666103e9366004612be2565b6001600160a01b03165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be700602052604090205490565b34801561042d575f80fd5b506101bb610cbc565b348015610441575f80fd5b5061044a610eb1565b6040516101c79796959493929190612c2b565b348015610468575f80fd5b506101bb6104773660046129b4565b5f9182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3480156104cb575f80fd5b506102e06104da366004612973565b610f0f565b3480156104ea575f80fd5b506102665f81565b3480156104fd575f80fd5b506102667f04c6a47ae7910ef8b295215a97e8495a9eaf57b7b05bfd8bf951edb3fd4a16a381565b348015610530575f80fd5b5061054461053f366004612d1f565b610fc5565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016101c7565b348015610580575f80fd5b506102e061058f366004612be2565b611054565b34801561059f575f80fd5b506102e06105ae3660046129b4565b611283565b3480156105be575f80fd5b506102667ffdf81848136595c31bb5f76217767372bc4bf906663038eb38381131ea27ecba81565b3480156105f1575f80fd5b506102e0610600366004612b01565b6112c6565b348015610610575f80fd5b5061054461061f366004612dd6565b6113ce565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f4e2312e00000000000000000000000000000000000000000000000000000000014806106b657507fffffffff0000000000000000000000000000000000000000000000000000000082167f18bd37da00000000000000000000000000000000000000000000000000000000145b806106c557506106c58261140b565b92915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020526040902060010154610704816114a1565b61070e83836114ae565b50505050565b6001600160a01b0381163314610756576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610760828261157a565b505050565b5f6107728585858561161e565b95945050505050565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de6107a5816114a1565b6107ad611694565b6107c16001600160a01b03851683856116cb565b816001600160a01b0316846001600160a01b03167f4810d2f105dcba10d740b4ac1d8fa8454dd37014b2051bace1edb1d903c440c48560405161080691815260200190565b60405180910390a361070e611719565b7f04c6a47ae7910ef8b295215a97e8495a9eaf57b7b05bfd8bf951edb3fd4a16a3610840816114a1565b610848611743565b610850611694565b835f03610889576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61089e6001600160a01b0386163330876119d5565b6001600160a01b0385165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be70060209081526040808320548151601f8701849004840281018401909252858252929161091791899189919089908990819084018382808284375f92019190915250611a2492505050565b60408051888152602081018590529081018290529091506001600160a01b0388169033907f112766730ce440487945c01048dacfc6d04340403f675871e96c4e28cf622ecc9060600160405180910390a35050610972611719565b5050505050565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de6109a3816114a1565b6109ab611694565b846001600160a01b031663e1e6b8986040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109e7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a0b9190612e3b565b6040517ff242432a0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038481166024830152604482018790526064820186905260a060848301525f60a4830152919091169063f242432a9060c4015f604051808303815f87803b158015610a87575f80fd5b505af1158015610a99573d5f803e3d5ffd5b5050505083826001600160a01b0316866001600160a01b03167fc9e640d2eb1b8469e42f60a66fef6a05cfd27ee3757e48f3f8ba04ecbc8a51b086604051610ae391815260200190565b60405180910390a4610972611719565b7ffdf81848136595c31bb5f76217767372bc4bf906663038eb38381131ea27ecba610b1d816114a1565b610b25611743565b610b2d611694565b845f03610b66576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b7287878787611d57565b6040517fc77b66c20000000000000000000000000000000000000000000000000000000081525f906001600160a01b0389169063c77b66c290610bc1908990309086908a908a90600401612e56565b6020604051808303815f875af1158015610bdd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c019190612ea2565b9050858114610c4b576040517fbe40f1fc00000000000000000000000000000000000000000000000000000000815260048101879052602481018290526044015b60405180910390fd5b610c5f6001600160a01b03891688886116cb565b60408051878152863560208201526001600160a01b03808a1692908b169133917f7c0eac1a8d30fbe7a577affc3b588a0b7d965a6133d12097cfac0760f2f2b617910160405180910390a450610cb3611719565b50505050505050565b5f8073679ab223dab158ea93e1a4f49104de436c58eab8905073d7f91c1c6e6e651ec3f1fd707af7cbb7526206e16001600160a01b0316816001600160a01b0316632f77a1c16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d2f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d539190612e3b565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d8e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610db29190612e3b565b6001600160a01b0316148015610eab5750732df5cfe6d688ef9ff1b7c59a499d254b1527b2866001600160a01b0316816001600160a01b0316632c9b7f406040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e1d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e419190612e3b565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e7c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ea09190612e3b565b6001600160a01b0316145b91505090565b5f6060805f805f6060610ec2611e95565b610eca611f68565b604080515f808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009b939a50919850469750309650945092509050565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de610f39816114a1565b610f41611694565b5f7f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be7006001600160a01b0385165f818152602083815260409182902080549088905582518181529182018890529394507fc6ce8282d3b57b159503fa5566e612aeb9f30c8e20c882398c9cb293c1ba6d68910160405180910390a25050610760611719565b5f805b86811015611025578481108015610ff657505f868683818110610fed57610fed612ee6565b90506020020135115b1561101d5761101d3389898481811061101157611011612ee6565b90506020020135611fb9565b600101610fc8565b507fbc197c81000000000000000000000000000000000000000000000000000000009998505050505050505050565b5f61105d612222565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156110895750825b90505f8267ffffffffffffffff1660011480156110a55750303b155b9050811580156110b3575080155b156110ea576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166001178555831561114b5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6001600160a01b03861661118b576040517f9905827b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611193611743565b61119b61224a565b61120f6040518060400160405280601081526020017f535430784f7263686573747261746f72000000000000000000000000000000008152506040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250612252565b6112195f876114ae565b50831561127b5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680060205260409020600101546112bc816114a1565b61070e838361157a565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de6112f0816114a1565b6112f8611694565b6040517ff242432a0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038381166024830152604482018690526064820185905260a060848301525f60a483015286169063f242432a9060c4015f604051808303815f87803b158015611372575f80fd5b505af1158015611384573d5f803e3d5ffd5b5050505083826001600160a01b0316866001600160a01b03167f78b19b4b6e69e380c3c303d1e889d510ee3ee409219c1c014d97a0a607b6c6a686604051610ae391815260200190565b5f83156113df576113df3386611fb9565b507ff23a6e61000000000000000000000000000000000000000000000000000000009695505050505050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806106c557507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146106c5565b6114ab8133612268565b50565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff16611571575f848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556115273390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506106c5565b5f9150506106c5565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff1615611571575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506106c5565b604080517f8381bcc05e5203d9456aa7185a19b2be5d4af37909fecf63a6f2016c1bf8413360208201526001600160a01b038087169282019290925290841660608201526080810183905260a081018290525f906107729060c001604051602081830303815290604052805190602001206122f4565b61169c61233b565b6116c960017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005b90612394565b565b6116d8838383600161239b565b610760576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610c42565b6116c95f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f006116c3565b5f73679ab223dab158ea93e1a4f49104de436c58eab890505f816001600160a01b0316632f77a1c16040518163ffffffff1660e01b8152600401602060405180830381865afa158015611798573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117bc9190612e3b565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117f7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061181b9190612e3b565b90506001600160a01b03811673d7f91c1c6e6e651ec3f1fd707af7cbb7526206e114611898576040517fdfdb61b700000000000000000000000000000000000000000000000000000000815273d7f91c1c6e6e651ec3f1fd707af7cbb7526206e160048201526001600160a01b0382166024820152604401610c42565b5f826001600160a01b0316632c9b7f406040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118f99190612e3b565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611934573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119589190612e3b565b90506001600160a01b038116732df5cfe6d688ef9ff1b7c59a499d254b1527b28614610760576040517f3e4077b3000000000000000000000000000000000000000000000000000000008152732df5cfe6d688ef9ff1b7c59a499d254b1527b28660048201526001600160a01b0382166024820152604401610c42565b6119e3848484846001612416565b61070e576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610c42565b5f808490505f816001600160a01b031663e1e6b8986040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a66573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a8a9190612e3b565b90507f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be7005f015f876001600160a01b03166001600160a01b031681526020019081526020015f205492505f826001600160a01b031663f5d214f56040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b10573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b349190612ea2565b90505b8515611d125780841115611b89576040517f66a21a2d0000000000000000000000000000000000000000000000000000000081526001600160a01b038816600482015260248101879052604401610c42565b6040517efdd58e000000000000000000000000000000000000000000000000000000008152306004820152602481018590525f906001600160a01b0384169062fdd58e90604401602060405180830381865afa158015611beb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c0f9190612ea2565b9050805f03611c245750600190930192611b37565b5f818810611c325781611c34565b875b90505f856001600160a01b031663921a4c428330308b8d6040518663ffffffff1660e01b8152600401611c6b959493929190612f13565b6020604051808303815f875af1158015611c87573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cab9190612ea2565b9050818114611cf0576040517fbe40f1fc0000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610c42565b611cfa828a612f55565b9850828203611d0a576001909601955b505050611b37565b5050506001600160a01b03939093165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be700602052604090208390555090919050565b6001600160a01b0383165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be70160209081526040808320843584529091529020547f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be7009060ff1615611e08576040517f59c210430000000000000000000000000000000000000000000000000000000081526001600160a01b038516600482015282356024820152604401610c42565b6001600160a01b0384165f90815260018281016020908152604080842086358086529252909220805460ff19169091179055610972908590611e4f9088908390889061161e565b611e5c6020860186612f8d565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061249c92505050565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10280546060917fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10091611ee690612fee565b80601f0160208091040260200160405190810160405280929190818152602001828054611f1290612fee565b8015611f5d5780601f10611f3457610100808354040283529160200191611f5d565b820191905f5260205f20905b815481529060010190602001808311611f4057829003601f168201915b505050505091505090565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10380546060917fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10091611ee690612fee565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f481c6a750000000000000000000000000000000000000000000000000000000017905290515f9182916001600160a01b038616916120299161303f565b5f60405180830381855afa9150503d805f8114612061576040519150601f19603f3d011682016040523d82523d5f602084013e612066565b606091505b509150915081158061207a57508051602014155b156120855750505050565b5f61208f82613055565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe1e6b8980000000000000000000000000000000000000000000000000000000017905290519192506001600160a01b038316916120ff919061303f565b5f60405180830381855afa9150503d805f8114612137576040519150601f19603f3d011682016040523d82523d5f602084013e61213c565b606091505b50909350915082158061215157508151602014155b1561215d575050505050565b6001600160a01b03851661217083613055565b6001600160a01b031614612185575050505050565b6001600160a01b0381165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be700602081905260409091205480861015610cb3576001600160a01b0383165f818152602084815260409182902089905581518481529081018990527f2008c207f65bedc2bb65dc8ac34aee36a37cd43a50152d574107c63ace7e07c6910160405180910390a250505050505050565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006106c5565b6116c96125cb565b61225a6125cb565b6122648282612609565b5050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038516845290915290205460ff16612264576040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015260248101839052604401610c42565b5f6106c561230061266c565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c156116c9576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80825d5050565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f5114831661240a5783831516156123fe573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b6040517f23b872dd000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038781166004528616602452604485905291602083606481808c5af1925060015f5114831661248b57838315161561247f573d5f823e3d81fd5b5f883b113d1516831692505b604052505f60605295945050505050565b8051156124e4576124ae83838361267a565b610760576040517f19ab93cc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f642ddf3a0000000000000000000000000000000000000000000000000000000080825260048201849052906001600160a01b0385169063642ddf3a906024016020604051808303815f875af1158015612543573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125679190613078565b7fffffffff000000000000000000000000000000000000000000000000000000001614610760576040517f22b89c080000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610c42565b6125d36126ed565b6116c9576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6126116125cb565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1007fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10261265d84826130d7565b506003810161070e83826130d7565b5f61267561270b565b905090565b5f836001600160a01b03163b5f036126d8575f80612698858561277e565b5090925090505f8160038111156126b1576126b1613193565b1480156126cf5750856001600160a01b0316826001600160a01b0316145b925050506126e6565b6126e38484846127c7565b90505b9392505050565b5f6126f6612222565b5468010000000000000000900460ff16919050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f612735612831565b61273d612846565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f805f83516041036127b5576020840151604085015160608601515f1a6127a78882858561284f565b9550955095505050506127c0565b505081515f91506002905b9250925092565b8051604080517f1626ba7e000000000000000000000000000000000000000000000000000000008082526004820186905260248201929092525f92906020820185604483015e60205f60648401838a5afa9050825f5114601f3d1116811693505050509392505050565b5f61283a611e95565b80519060200120905090565b5f61283a611f68565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561288857505f9150600390508261290d565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa1580156128d9573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b03811661290457505f92506001915082905061290d565b92505f91508190505b9450945094915050565b7fffffffff00000000000000000000000000000000000000000000000000000000811681146114ab575f80fd5b5f60208284031215612954575f80fd5b81356126e681612917565b6001600160a01b03811681146114ab575f80fd5b5f8060408385031215612984575f80fd5b823561298f8161295f565b946020939093013593505050565b5f602082840312156129ad575f80fd5b5035919050565b5f80604083850312156129c5575f80fd5b8235915060208301356129d78161295f565b809150509250929050565b5f805f80608085870312156129f5575f80fd5b8435612a008161295f565b93506020850135612a108161295f565b93969395505050506040820135916060013590565b5f805f60608486031215612a37575f80fd5b8335612a428161295f565b9250602084013591506040840135612a598161295f565b809150509250925092565b5f8083601f840112612a74575f80fd5b50813567ffffffffffffffff811115612a8b575f80fd5b602083019150836020828501011115612aa2575f80fd5b9250929050565b5f805f8060608587031215612abc575f80fd5b8435612ac78161295f565b935060208501359250604085013567ffffffffffffffff811115612ae9575f80fd5b612af587828801612a64565b95989497509550505050565b5f805f8060808587031215612b14575f80fd5b8435612b1f8161295f565b935060208501359250604085013591506060850135612b3d8161295f565b939692955090935050565b5f805f805f8060a08789031215612b5d575f80fd5b8635612b688161295f565b95506020870135612b788161295f565b945060408701359350606087013567ffffffffffffffff80821115612b9b575f80fd5b908801906040828b031215612bae575f80fd5b90935060808801359080821115612bc3575f80fd5b50612bd089828a01612a64565b979a9699509497509295939492505050565b5f60208284031215612bf2575f80fd5b81356126e68161295f565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b7fff00000000000000000000000000000000000000000000000000000000000000881681525f602060e06020840152612c6760e084018a612bfd565b8381036040850152612c79818a612bfd565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825260208088019350909101905f5b81811015612ccc57835183529284019291840191600101612cb0565b50909c9b505050505050505050505050565b5f8083601f840112612cee575f80fd5b50813567ffffffffffffffff811115612d05575f80fd5b6020830191508360208260051b8501011115612aa2575f80fd5b5f805f805f805f8060a0898b031215612d36575f80fd5b8835612d418161295f565b97506020890135612d518161295f565b9650604089013567ffffffffffffffff80821115612d6d575f80fd5b612d798c838d01612cde565b909850965060608b0135915080821115612d91575f80fd5b612d9d8c838d01612cde565b909650945060808b0135915080821115612db5575f80fd5b50612dc28b828c01612a64565b999c989b5096995094979396929594505050565b5f805f805f8060a08789031215612deb575f80fd5b8635612df68161295f565b95506020870135612e068161295f565b94506040870135935060608701359250608087013567ffffffffffffffff811115612e2f575f80fd5b612bd089828a01612a64565b5f60208284031215612e4b575f80fd5b81516126e68161295f565b8581526001600160a01b038516602082015283604082015260806060820152816080820152818360a08301375f81830160a090810191909152601f909201601f19160101949350505050565b5f60208284031215612eb2575f80fd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b8581525f6001600160a01b03808716602084015280861660408401525083606083015260a06080830152612f4a60a0830184612bfd565b979650505050505050565b818103818111156106c5577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612fc0575f80fd5b83018035915067ffffffffffffffff821115612fda575f80fd5b602001915036819003821315612aa2575f80fd5b600181811c9082168061300257607f821691505b602082108103613039577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b5f82518060208501845e5f920191825250919050565b80516020808301519190811015613039575f1960209190910360031b1b16919050565b5f60208284031215613088575f80fd5b81516126e681612917565b601f82111561076057805f5260205f20601f840160051c810160208510156130b85750805b601f840160051c820191505b81811015610972575f81556001016130c4565b815167ffffffffffffffff8111156130f1576130f1612eb9565b613105816130ff8454612fee565b84613093565b602080601f831160018114613138575f84156131215750858301515b5f19600386901b1c1916600185901b17855561127b565b5f85815260208120601f198616915b8281101561316657888601518255948401946001909101908401613147565b508582101561318357878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405260043610610191575f3560e01c8063742fabb3116100dc578063b930908f11610087578063d547741f11610062578063d547741f14610594578063e9a9c850146105b3578063f14893a7146105e6578063f23a6e6114610605575f80fd5b8063b930908f146104f2578063bc197c8114610525578063c4d66de814610575575f80fd5b806391d14854116100b757806391d148541461045d5780639cb887f8146104c0578063a217fddf146104df575f80fd5b8063742fabb3146103cf578063752c9cf51461042257806384b0196e14610436575f80fd5b80633b94a0dd1161013c57806344d171871161011757806344d1718714610372578063584f418e14610391578063671d083f146103b0575f80fd5b80633b94a0dd146103015780633e81e40d146103345780633f6fc76f14610353575f80fd5b8063248a9ca31161016c578063248a9ca3146102745780632f2ff15d146102c157806336568abe146102e2575f80fd5b806301ffc9a71461019c5780630e230f97146101d057806320df435914610233575f80fd5b3661019857005b5f80fd5b3480156101a7575f80fd5b506101bb6101b6366004612944565b610624565b60405190151581526020015b60405180910390f35b3480156101db575f80fd5b506101bb6101ea366004612973565b6001600160a01b03919091165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be70160209081526040808320938352929052205460ff1690565b34801561023e575f80fd5b506102667f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de81565b6040519081526020016101c7565b34801561027f575f80fd5b5061026661028e36600461299d565b5f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b3480156102cc575f80fd5b506102e06102db3660046129b4565b6106cb565b005b3480156102ed575f80fd5b506102e06102fc3660046129b4565b610714565b34801561030c575f80fd5b506102667f8381bcc05e5203d9456aa7185a19b2be5d4af37909fecf63a6f2016c1bf8413381565b34801561033f575f80fd5b5061026661034e3660046129e2565b610765565b34801561035e575f80fd5b506102e061036d366004612a25565b61077b565b34801561037d575f80fd5b506102e061038c366004612aa9565b610816565b34801561039c575f80fd5b506102e06103ab366004612b01565b610979565b3480156103bb575f80fd5b506102e06103ca366004612b48565b610af3565b3480156103da575f80fd5b506102666103e9366004612be2565b6001600160a01b03165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be700602052604090205490565b34801561042d575f80fd5b506101bb610cbc565b348015610441575f80fd5b5061044a610eb1565b6040516101c79796959493929190612c2b565b348015610468575f80fd5b506101bb6104773660046129b4565b5f9182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3480156104cb575f80fd5b506102e06104da366004612973565b610f0f565b3480156104ea575f80fd5b506102665f81565b3480156104fd575f80fd5b506102667f04c6a47ae7910ef8b295215a97e8495a9eaf57b7b05bfd8bf951edb3fd4a16a381565b348015610530575f80fd5b5061054461053f366004612d1f565b610fc5565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016101c7565b348015610580575f80fd5b506102e061058f366004612be2565b611054565b34801561059f575f80fd5b506102e06105ae3660046129b4565b611283565b3480156105be575f80fd5b506102667ffdf81848136595c31bb5f76217767372bc4bf906663038eb38381131ea27ecba81565b3480156105f1575f80fd5b506102e0610600366004612b01565b6112c6565b348015610610575f80fd5b5061054461061f366004612dd6565b6113ce565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f4e2312e00000000000000000000000000000000000000000000000000000000014806106b657507fffffffff0000000000000000000000000000000000000000000000000000000082167f18bd37da00000000000000000000000000000000000000000000000000000000145b806106c557506106c58261140b565b92915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020526040902060010154610704816114a1565b61070e83836114ae565b50505050565b6001600160a01b0381163314610756576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610760828261157a565b505050565b5f6107728585858561161e565b95945050505050565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de6107a5816114a1565b6107ad611694565b6107c16001600160a01b03851683856116cb565b816001600160a01b0316846001600160a01b03167f4810d2f105dcba10d740b4ac1d8fa8454dd37014b2051bace1edb1d903c440c48560405161080691815260200190565b60405180910390a361070e611719565b7f04c6a47ae7910ef8b295215a97e8495a9eaf57b7b05bfd8bf951edb3fd4a16a3610840816114a1565b610848611743565b610850611694565b835f03610889576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61089e6001600160a01b0386163330876119d5565b6001600160a01b0385165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be70060209081526040808320548151601f8701849004840281018401909252858252929161091791899189919089908990819084018382808284375f92019190915250611a2492505050565b60408051888152602081018590529081018290529091506001600160a01b0388169033907f112766730ce440487945c01048dacfc6d04340403f675871e96c4e28cf622ecc9060600160405180910390a35050610972611719565b5050505050565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de6109a3816114a1565b6109ab611694565b846001600160a01b031663e1e6b8986040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109e7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a0b9190612e3b565b6040517ff242432a0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038481166024830152604482018790526064820186905260a060848301525f60a4830152919091169063f242432a9060c4015f604051808303815f87803b158015610a87575f80fd5b505af1158015610a99573d5f803e3d5ffd5b5050505083826001600160a01b0316866001600160a01b03167fc9e640d2eb1b8469e42f60a66fef6a05cfd27ee3757e48f3f8ba04ecbc8a51b086604051610ae391815260200190565b60405180910390a4610972611719565b7ffdf81848136595c31bb5f76217767372bc4bf906663038eb38381131ea27ecba610b1d816114a1565b610b25611743565b610b2d611694565b845f03610b66576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b7287878787611d57565b6040517fc77b66c20000000000000000000000000000000000000000000000000000000081525f906001600160a01b0389169063c77b66c290610bc1908990309086908a908a90600401612e56565b6020604051808303815f875af1158015610bdd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c019190612ea2565b9050858114610c4b576040517fbe40f1fc00000000000000000000000000000000000000000000000000000000815260048101879052602481018290526044015b60405180910390fd5b610c5f6001600160a01b03891688886116cb565b60408051878152863560208201526001600160a01b03808a1692908b169133917f7c0eac1a8d30fbe7a577affc3b588a0b7d965a6133d12097cfac0760f2f2b617910160405180910390a450610cb3611719565b50505050505050565b5f8073679ab223dab158ea93e1a4f49104de436c58eab8905073d7f91c1c6e6e651ec3f1fd707af7cbb7526206e16001600160a01b0316816001600160a01b0316632f77a1c16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d2f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d539190612e3b565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d8e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610db29190612e3b565b6001600160a01b0316148015610eab5750732df5cfe6d688ef9ff1b7c59a499d254b1527b2866001600160a01b0316816001600160a01b0316632c9b7f406040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e1d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e419190612e3b565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e7c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ea09190612e3b565b6001600160a01b0316145b91505090565b5f6060805f805f6060610ec2611e95565b610eca611f68565b604080515f808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009b939a50919850469750309650945092509050565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de610f39816114a1565b610f41611694565b5f7f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be7006001600160a01b0385165f818152602083815260409182902080549088905582518181529182018890529394507fc6ce8282d3b57b159503fa5566e612aeb9f30c8e20c882398c9cb293c1ba6d68910160405180910390a25050610760611719565b5f805b86811015611025578481108015610ff657505f868683818110610fed57610fed612ee6565b90506020020135115b1561101d5761101d3389898481811061101157611011612ee6565b90506020020135611fb9565b600101610fc8565b507fbc197c81000000000000000000000000000000000000000000000000000000009998505050505050505050565b5f61105d612222565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156110895750825b90505f8267ffffffffffffffff1660011480156110a55750303b155b9050811580156110b3575080155b156110ea576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166001178555831561114b5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6001600160a01b03861661118b576040517f9905827b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611193611743565b61119b61224a565b61120f6040518060400160405280601081526020017f535430784f7263686573747261746f72000000000000000000000000000000008152506040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250612252565b6112195f876114ae565b50831561127b5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680060205260409020600101546112bc816114a1565b61070e838361157a565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de6112f0816114a1565b6112f8611694565b6040517ff242432a0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038381166024830152604482018690526064820185905260a060848301525f60a483015286169063f242432a9060c4015f604051808303815f87803b158015611372575f80fd5b505af1158015611384573d5f803e3d5ffd5b5050505083826001600160a01b0316866001600160a01b03167f78b19b4b6e69e380c3c303d1e889d510ee3ee409219c1c014d97a0a607b6c6a686604051610ae391815260200190565b5f83156113df576113df3386611fb9565b507ff23a6e61000000000000000000000000000000000000000000000000000000009695505050505050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806106c557507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146106c5565b6114ab8133612268565b50565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff16611571575f848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556115273390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506106c5565b5f9150506106c5565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff1615611571575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506106c5565b604080517f8381bcc05e5203d9456aa7185a19b2be5d4af37909fecf63a6f2016c1bf8413360208201526001600160a01b038087169282019290925290841660608201526080810183905260a081018290525f906107729060c001604051602081830303815290604052805190602001206122f4565b61169c61233b565b6116c960017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005b90612394565b565b6116d8838383600161239b565b610760576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610c42565b6116c95f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f006116c3565b5f73679ab223dab158ea93e1a4f49104de436c58eab890505f816001600160a01b0316632f77a1c16040518163ffffffff1660e01b8152600401602060405180830381865afa158015611798573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117bc9190612e3b565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117f7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061181b9190612e3b565b90506001600160a01b03811673d7f91c1c6e6e651ec3f1fd707af7cbb7526206e114611898576040517fdfdb61b700000000000000000000000000000000000000000000000000000000815273d7f91c1c6e6e651ec3f1fd707af7cbb7526206e160048201526001600160a01b0382166024820152604401610c42565b5f826001600160a01b0316632c9b7f406040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118f99190612e3b565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611934573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119589190612e3b565b90506001600160a01b038116732df5cfe6d688ef9ff1b7c59a499d254b1527b28614610760576040517f3e4077b3000000000000000000000000000000000000000000000000000000008152732df5cfe6d688ef9ff1b7c59a499d254b1527b28660048201526001600160a01b0382166024820152604401610c42565b6119e3848484846001612416565b61070e576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610c42565b5f808490505f816001600160a01b031663e1e6b8986040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a66573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a8a9190612e3b565b90507f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be7005f015f876001600160a01b03166001600160a01b031681526020019081526020015f205492505f826001600160a01b031663f5d214f56040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b10573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b349190612ea2565b90505b8515611d125780841115611b89576040517f66a21a2d0000000000000000000000000000000000000000000000000000000081526001600160a01b038816600482015260248101879052604401610c42565b6040517efdd58e000000000000000000000000000000000000000000000000000000008152306004820152602481018590525f906001600160a01b0384169062fdd58e90604401602060405180830381865afa158015611beb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c0f9190612ea2565b9050805f03611c245750600190930192611b37565b5f818810611c325781611c34565b875b90505f856001600160a01b031663921a4c428330308b8d6040518663ffffffff1660e01b8152600401611c6b959493929190612f13565b6020604051808303815f875af1158015611c87573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cab9190612ea2565b9050818114611cf0576040517fbe40f1fc0000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610c42565b611cfa828a612f55565b9850828203611d0a576001909601955b505050611b37565b5050506001600160a01b03939093165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be700602052604090208390555090919050565b6001600160a01b0383165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be70160209081526040808320843584529091529020547f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be7009060ff1615611e08576040517f59c210430000000000000000000000000000000000000000000000000000000081526001600160a01b038516600482015282356024820152604401610c42565b6001600160a01b0384165f90815260018281016020908152604080842086358086529252909220805460ff19169091179055610972908590611e4f9088908390889061161e565b611e5c6020860186612f8d565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061249c92505050565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10280546060917fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10091611ee690612fee565b80601f0160208091040260200160405190810160405280929190818152602001828054611f1290612fee565b8015611f5d5780601f10611f3457610100808354040283529160200191611f5d565b820191905f5260205f20905b815481529060010190602001808311611f4057829003601f168201915b505050505091505090565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10380546060917fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10091611ee690612fee565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f481c6a750000000000000000000000000000000000000000000000000000000017905290515f9182916001600160a01b038616916120299161303f565b5f60405180830381855afa9150503d805f8114612061576040519150601f19603f3d011682016040523d82523d5f602084013e612066565b606091505b509150915081158061207a57508051602014155b156120855750505050565b5f61208f82613055565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe1e6b8980000000000000000000000000000000000000000000000000000000017905290519192506001600160a01b038316916120ff919061303f565b5f60405180830381855afa9150503d805f8114612137576040519150601f19603f3d011682016040523d82523d5f602084013e61213c565b606091505b50909350915082158061215157508151602014155b1561215d575050505050565b6001600160a01b03851661217083613055565b6001600160a01b031614612185575050505050565b6001600160a01b0381165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be700602081905260409091205480861015610cb3576001600160a01b0383165f818152602084815260409182902089905581518481529081018990527f2008c207f65bedc2bb65dc8ac34aee36a37cd43a50152d574107c63ace7e07c6910160405180910390a250505050505050565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006106c5565b6116c96125cb565b61225a6125cb565b6122648282612609565b5050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038516845290915290205460ff16612264576040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015260248101839052604401610c42565b5f6106c561230061266c565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c156116c9576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80825d5050565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f5114831661240a5783831516156123fe573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b6040517f23b872dd000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038781166004528616602452604485905291602083606481808c5af1925060015f5114831661248b57838315161561247f573d5f823e3d81fd5b5f883b113d1516831692505b604052505f60605295945050505050565b8051156124e4576124ae83838361267a565b610760576040517f19ab93cc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f642ddf3a0000000000000000000000000000000000000000000000000000000080825260048201849052906001600160a01b0385169063642ddf3a906024016020604051808303815f875af1158015612543573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125679190613078565b7fffffffff000000000000000000000000000000000000000000000000000000001614610760576040517f22b89c080000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610c42565b6125d36126ed565b6116c9576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6126116125cb565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1007fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10261265d84826130d7565b506003810161070e83826130d7565b5f61267561270b565b905090565b5f836001600160a01b03163b5f036126d8575f80612698858561277e565b5090925090505f8160038111156126b1576126b1613193565b1480156126cf5750856001600160a01b0316826001600160a01b0316145b925050506126e6565b6126e38484846127c7565b90505b9392505050565b5f6126f6612222565b5468010000000000000000900460ff16919050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f612735612831565b61273d612846565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f805f83516041036127b5576020840151604085015160608601515f1a6127a78882858561284f565b9550955095505050506127c0565b505081515f91506002905b9250925092565b8051604080517f1626ba7e000000000000000000000000000000000000000000000000000000008082526004820186905260248201929092525f92906020820185604483015e60205f60648401838a5afa9050825f5114601f3d1116811693505050509392505050565b5f61283a611e95565b80519060200120905090565b5f61283a611f68565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561288857505f9150600390508261290d565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa1580156128d9573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b03811661290457505f92506001915082905061290d565b92505f91508190505b9450945094915050565b7fffffffff00000000000000000000000000000000000000000000000000000000811681146114ab575f80fd5b5f60208284031215612954575f80fd5b81356126e681612917565b6001600160a01b03811681146114ab575f80fd5b5f8060408385031215612984575f80fd5b823561298f8161295f565b946020939093013593505050565b5f602082840312156129ad575f80fd5b5035919050565b5f80604083850312156129c5575f80fd5b8235915060208301356129d78161295f565b809150509250929050565b5f805f80608085870312156129f5575f80fd5b8435612a008161295f565b93506020850135612a108161295f565b93969395505050506040820135916060013590565b5f805f60608486031215612a37575f80fd5b8335612a428161295f565b9250602084013591506040840135612a598161295f565b809150509250925092565b5f8083601f840112612a74575f80fd5b50813567ffffffffffffffff811115612a8b575f80fd5b602083019150836020828501011115612aa2575f80fd5b9250929050565b5f805f8060608587031215612abc575f80fd5b8435612ac78161295f565b935060208501359250604085013567ffffffffffffffff811115612ae9575f80fd5b612af587828801612a64565b95989497509550505050565b5f805f8060808587031215612b14575f80fd5b8435612b1f8161295f565b935060208501359250604085013591506060850135612b3d8161295f565b939692955090935050565b5f805f805f8060a08789031215612b5d575f80fd5b8635612b688161295f565b95506020870135612b788161295f565b945060408701359350606087013567ffffffffffffffff80821115612b9b575f80fd5b908801906040828b031215612bae575f80fd5b90935060808801359080821115612bc3575f80fd5b50612bd089828a01612a64565b979a9699509497509295939492505050565b5f60208284031215612bf2575f80fd5b81356126e68161295f565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b7fff00000000000000000000000000000000000000000000000000000000000000881681525f602060e06020840152612c6760e084018a612bfd565b8381036040850152612c79818a612bfd565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825260208088019350909101905f5b81811015612ccc57835183529284019291840191600101612cb0565b50909c9b505050505050505050505050565b5f8083601f840112612cee575f80fd5b50813567ffffffffffffffff811115612d05575f80fd5b6020830191508360208260051b8501011115612aa2575f80fd5b5f805f805f805f8060a0898b031215612d36575f80fd5b8835612d418161295f565b97506020890135612d518161295f565b9650604089013567ffffffffffffffff80821115612d6d575f80fd5b612d798c838d01612cde565b909850965060608b0135915080821115612d91575f80fd5b612d9d8c838d01612cde565b909650945060808b0135915080821115612db5575f80fd5b50612dc28b828c01612a64565b999c989b5096995094979396929594505050565b5f805f805f8060a08789031215612deb575f80fd5b8635612df68161295f565b95506020870135612e068161295f565b94506040870135935060608701359250608087013567ffffffffffffffff811115612e2f575f80fd5b612bd089828a01612a64565b5f60208284031215612e4b575f80fd5b81516126e68161295f565b8581526001600160a01b038516602082015283604082015260806060820152816080820152818360a08301375f81830160a090810191909152601f909201601f19160101949350505050565b5f60208284031215612eb2575f80fd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b8581525f6001600160a01b03808716602084015280861660408401525083606083015260a06080830152612f4a60a0830184612bfd565b979650505050505050565b818103818111156106c5577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612fc0575f80fd5b83018035915067ffffffffffffffff821115612fda575f80fd5b602001915036819003821315612aa2575f80fd5b600181811c9082168061300257607f821691505b602082108103613039577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b5f82518060208501845e5f920191825250919050565b80516020808301519190811015613039575f1960209190910360031b1b16919050565b5f60208284031215613088575f80fd5b81516126e681612917565b601f82111561076057805f5260205f20601f840160051c810160208510156130b85750805b601f840160051c820191505b81811015610972575f81556001016130c4565b815167ffffffffffffffff8111156130f1576130f1612eb9565b613105816130ff8454612fee565b84613093565b602080601f831160018114613138575f84156131215750858301515b5f19600386901b1c1916600185901b17855561127b565b5f85815260208120601f198616915b8281101561316657888601518255948401946001909101908401613147565b508582101561318357878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd"; diff --git a/src/generated/0_1_4/ST0xOrchestratorBeaconSetDeployer.pointers.sol b/src/generated/0_1_4/ST0xOrchestratorBeaconSetDeployer.pointers.sol deleted file mode 100644 index 53ee4a14..00000000 --- a/src/generated/0_1_4/ST0xOrchestratorBeaconSetDeployer.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x2149474f3f4539b44296101ca3ffafb1ebd7f212b90b5fc9d8d28a4d010ca4eb); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0xBff92564aeffe44C85A9153B9f2dB13e47A22435); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"60a0604052348015600e575f80fd5b507299fcb947cc31e21c631478a2a9e2e591cd4010738e4bdeec7ceb9570d440676345da1dce10329f5b6040516042906082565b6001600160a01b03928316815291166020820152604001604051809103905ff0801580156071573d5f803e3d5ffd5b506001600160a01b0316608052608f565b6104f7806109cf83390190565b6080516109226100ad5f395f81816070015261025201526109225ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c806301ffc9a714610043578063429b15441461006b5780634c96a389146100b7575b5f80fd5b610056610051366004610309565b6100ca565b60405190151581526020015b60405180910390f35b6100927f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610062565b6100926100c536600461034f565b610162565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f4c96a38900000000000000000000000000000000000000000000000000000000148061015c57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82166101b0576040517f9905827b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405173ffffffffffffffffffffffffffffffffffffffff831660248201525f90604401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc4d66de800000000000000000000000000000000000000000000000000000000179052519091505f907f000000000000000000000000000000000000000000000000000000000000000090839061027d906102fc565b610288929190610382565b604051809103905ff0801580156102a1573d5f803e3d5ffd5b5060405173ffffffffffffffffffffffffffffffffffffffff86811682529192509082169033907fa0d99d93cf7a5f89661fa0829369a7e4896e755871efe65440bab2429387d55b9060200160405180910390a39392505050565b61052f806103f383390190565b5f60208284031215610319575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610348575f80fd5b9392505050565b5f6020828403121561035f575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610348575f80fd5b73ffffffffffffffffffffffffffffffffffffffff83168152604060208201525f82518060408401528060208501606085015e5f6060828501015260607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f830116840101915050939250505056fe60a060405260405161052f38038061052f83398101604081905261002291610331565b61002c828261003e565b506001600160a01b031660805261040d565b610047826100fb565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a28051156100ef576100ea826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e491906103ed565b82610209565b505050565b6100f76102aa565b5050565b806001600160a01b03163b5f0361013557604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b815290515f92841691635c60da1b9160048083019260209291908290030181865afa1580156101ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d291906103ed565b9050806001600160a01b03163b5f036100f757604051634c9c8ce360e01b81526001600160a01b038216600482015260240161012c565b60605f61021684846102cb565b905080801561023757505f3d118061023757505f846001600160a01b03163b115b1561024c576102446102de565b9150506102a4565b801561027657604051639996b31560e01b81526001600160a01b038516600482015260240161012c565b3d15610289576102846102f7565b6102a2565b60405163d6bda27560e01b815260040160405180910390fd5b505b92915050565b34156102c95760405163b398979f60e01b815260040160405180910390fd5b565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b6040513d5f823e3d81fd5b80516001600160a01b0381168114610318575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215610342575f80fd5b61034b83610302565b60208401519092506001600160401b0380821115610367575f80fd5b818501915085601f83011261037a575f80fd5b81518181111561038c5761038c61031d565b604051601f8201601f19908116603f011681019083821181831017156103b4576103b461031d565b816040528281528860208487010111156103cc575f80fd5b8260208601602083015e5f6020848301015280955050505050509250929050565b5f602082840312156103fd575f80fd5b61040682610302565b9392505050565b60805161010b6104245f395f6023015261010b5ff3fe608060405261000c61000e565b005b61001e610019610020565b6100b3565b565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561008a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100ae91906100d1565b905090565b365f80375f80365f845af43d5f803e8080156100cd573d5ff35b3d5ffd5b5f602082840312156100e1575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610104575f80fd5b939250505056608060405234801561000f575f80fd5b506040516104f73803806104f783398101604081905261002e9161015f565b806001600160a01b03811661005d57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b61006681610077565b50610070826100c6565b5050610190565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b806001600160a01b03163b5f036100fb5760405163211eb15960e21b81526001600160a01b0382166004820152602401610054565b600180546001600160a01b0319166001600160a01b0383169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b80516001600160a01b038116811461015a575f80fd5b919050565b5f8060408385031215610170575f80fd5b61017983610144565b915061018760208401610144565b90509250929050565b61035a8061019d5f395ff3fe608060405234801561000f575f80fd5b5060043610610064575f3560e01c8063715018a61161004d578063715018a6146100c05780638da5cb5b146100c8578063f2fde38b146100e5575f80fd5b80633659cfe6146100685780635c60da1b1461007d575b5f80fd5b61007b610076366004610320565b6100f8565b005b60015473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61007b61010c565b5f5473ffffffffffffffffffffffffffffffffffffffff16610097565b61007b6100f3366004610320565b61011f565b610100610184565b610109816101d6565b50565b610114610184565b61011d5f6102ac565b565b610127610184565b73ffffffffffffffffffffffffffffffffffffffff811661017b576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f60048201526024015b60405180910390fd5b610109816102ac565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461011d576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610172565b8073ffffffffffffffffffffffffffffffffffffffff163b5f0361023e576040517f847ac56400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602401610172565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f60208284031215610330575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610353575f80fd5b939250505056"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b506004361061003f575f3560e01c806301ffc9a714610043578063429b15441461006b5780634c96a389146100b7575b5f80fd5b610056610051366004610309565b6100ca565b60405190151581526020015b60405180910390f35b6100927f000000000000000000000000ba0d89f6e84a201cd2c720a91911fdadbbb2ad4881565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610062565b6100926100c536600461034f565b610162565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f4c96a38900000000000000000000000000000000000000000000000000000000148061015c57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82166101b0576040517f9905827b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405173ffffffffffffffffffffffffffffffffffffffff831660248201525f90604401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc4d66de800000000000000000000000000000000000000000000000000000000179052519091505f907f000000000000000000000000ba0d89f6e84a201cd2c720a91911fdadbbb2ad4890839061027d906102fc565b610288929190610382565b604051809103905ff0801580156102a1573d5f803e3d5ffd5b5060405173ffffffffffffffffffffffffffffffffffffffff86811682529192509082169033907fa0d99d93cf7a5f89661fa0829369a7e4896e755871efe65440bab2429387d55b9060200160405180910390a39392505050565b61052f806103f383390190565b5f60208284031215610319575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610348575f80fd5b9392505050565b5f6020828403121561035f575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610348575f80fd5b73ffffffffffffffffffffffffffffffffffffffff83168152604060208201525f82518060408401528060208501606085015e5f6060828501015260607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f830116840101915050939250505056fe60a060405260405161052f38038061052f83398101604081905261002291610331565b61002c828261003e565b506001600160a01b031660805261040d565b610047826100fb565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a28051156100ef576100ea826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e491906103ed565b82610209565b505050565b6100f76102aa565b5050565b806001600160a01b03163b5f0361013557604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b815290515f92841691635c60da1b9160048083019260209291908290030181865afa1580156101ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d291906103ed565b9050806001600160a01b03163b5f036100f757604051634c9c8ce360e01b81526001600160a01b038216600482015260240161012c565b60605f61021684846102cb565b905080801561023757505f3d118061023757505f846001600160a01b03163b115b1561024c576102446102de565b9150506102a4565b801561027657604051639996b31560e01b81526001600160a01b038516600482015260240161012c565b3d15610289576102846102f7565b6102a2565b60405163d6bda27560e01b815260040160405180910390fd5b505b92915050565b34156102c95760405163b398979f60e01b815260040160405180910390fd5b565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b6040513d5f823e3d81fd5b80516001600160a01b0381168114610318575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215610342575f80fd5b61034b83610302565b60208401519092506001600160401b0380821115610367575f80fd5b818501915085601f83011261037a575f80fd5b81518181111561038c5761038c61031d565b604051601f8201601f19908116603f011681019083821181831017156103b4576103b461031d565b816040528281528860208487010111156103cc575f80fd5b8260208601602083015e5f6020848301015280955050505050509250929050565b5f602082840312156103fd575f80fd5b61040682610302565b9392505050565b60805161010b6104245f395f6023015261010b5ff3fe608060405261000c61000e565b005b61001e610019610020565b6100b3565b565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561008a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100ae91906100d1565b905090565b365f80375f80365f845af43d5f803e8080156100cd573d5ff35b3d5ffd5b5f602082840312156100e1575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610104575f80fd5b939250505056"; diff --git a/src/generated/0_1_4/StoxCorporateActionsFacet.pointers.sol b/src/generated/0_1_4/StoxCorporateActionsFacet.pointers.sol deleted file mode 100644 index aef0d95d..00000000 --- a/src/generated/0_1_4/StoxCorporateActionsFacet.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0xd91520075de1eb2e8fdf042fde3475ee89feb3942306e5d6d5c710273fefc080); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0xB7e24412126ad6A2Ce19cbd79FD11B68e7F30cf6); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"60a0604052348015600e575f80fd5b503060805260805161268d6100635f395f81816101970152818161031b0152818161038901528181610466015281816104c90152818161053b0152818161070301528181610767015261089e015261268d5ff3fe608060405234801561000f575f80fd5b506004361061009f575f3560e01c806379ba430511610072578063bb7bb45a11610058578063bb7bb45a14610151578063dad601be14610159578063e388df491461016c575f80fd5b806379ba43051461011e578063b21a249414610131575f80fd5b80630d1e0432146100a35780631cb5642f146100be578063358116b9146100f65780634e6c280e1461010b575b5f80fd5b6100ab61017f565b6040519081526020015b60405180910390f35b6100d16100cc366004612126565b610301565b60408051938452602084019290925267ffffffffffffffff16908201526060016100b5565b610109610104366004612150565b610372565b005b6100d1610119366004612126565b61044c565b6100d161012c366004612167565b6104af565b61014461013f366004612150565b610522565b6040516100b591906121c7565b6100ab6106eb565b6100ab6101673660046121d9565b61074f565b6100d161017a366004612167565b610884565b5f73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036101d6576040516309e815f560e01b815260040160405180910390fd5b5f6101df6108e8565b905060015f6101f15f19600384610967565b90505b5f1981146102fa57600283600201828154811061021357610213612261565b905f5260205f2090600502015f0154036102e6576102e3826102de85600201848154811061024357610243612261565b905f5260205f209060050201600401805461025d90612275565b80601f016020809104026020016040519081016040528092919081815260200182805461028990612275565b80156102d45780601f106102ab576101008083540402835291602001916102d4565b820191905f5260205f20905b8154815290600101906020018083116102b757829003601f168201915b5050505050610a6e565b610a89565b91505b6102f38160036001610967565b90506101f4565b5091505090565b5f808073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016300361035a576040516309e815f560e01b815260040160405180910390fd5b6103648585610aeb565b9250925092505b9250925092565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036103c8576040516309e815f560e01b815260040160405180910390fd5b610414337f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e78360405160200161040091815260200190565b604051602081830303815290604052610b19565b61041d81610c13565b604051819033907f94041431cee1a4c20be97117d396e73eb1e601e124b48fbc5dc07397c31d5f8a905f90a350565b5f808073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036104a5576040516309e815f560e01b815260040160405180910390fd5b6103648585610df0565b5f808073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610508576040516309e815f560e01b815260040160405180910390fd5b610513868686610e00565b92509250925093509350939050565b606073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016300361057a576040516309e815f560e01b815260040160405180910390fd5b5f6105836108e8565b600281015490915083106105cb576040517f029c6c35000000000000000000000000000000000000000000000000000000008152600481018490526024015b60405180910390fd5b8060020183815481106105e0576105e0612261565b5f918252602082206001600590920201015467ffffffffffffffff169003610637576040517f029c6c35000000000000000000000000000000000000000000000000000000008152600481018490526024016105c2565b80600201838154811061064c5761064c612261565b905f5260205f209060050201600401805461066690612275565b80601f016020809104026020016040519081016040528092919081815260200182805461069290612275565b80156106dd5780601f106106b4576101008083540402835291602001916106dd565b820191905f5260205f20905b8154815290600101906020018083116106c057829003601f168201915b50505050509150505b919050565b5f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610742576040516309e815f560e01b815260040160405180910390fd5b61074a610e2e565b905090565b5f73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036107a6576040516309e815f560e01b815260040160405180910390fd5b6107e2337ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f898787878760405160200161040094939291906122a7565b5f6107ee868585610e82565b90505f610831828787878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610f2d92505050565b6040805184815267ffffffffffffffff89166020820152919250829133917fa9c7784142e419f4660627c0c145b3873c2a415ce062f5c81bc19e6850f873d8910160405180910390a39695505050505050565b5f808073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036108dd576040516309e815f560e01b815260040160405180910390fd5b610513868686611047565b5f807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0061093660017f2f8f8ecf1b7a1a3ceda8d15a9a2247a2377b3434535a87f1728021c13fec2e71612301565b60405160200161094891815260200190565b60408051601f1981840301815291905280516020909101201692915050565b5f6007831681036109a4576040517fbf3cad0b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6109ad6108e8565b60028101549091505f036109c5575f19915050610a67565b5f5f1986146109f8578160020186815481106109e3576109e3612261565b905f5260205f209060050201600301546109fb565b81545b90506002846002811115610a1157610a11612314565b03610a3357610a2a82610a248484611056565b876110d1565b92505050610a67565b6001846002811115610a4757610a47612314565b03610a5757610a2a828287611129565b610a628282876110d1565b925050505b9392505050565b5f81806020019051810190610a839190612328565b92915050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d8480610ace86868686611196565b915091505f610add83836112b5565b9a9950505050505050505050565b5f805f80610afb5f19878761131b565b90505f80610b0883611410565b939650945091925050509250925092565b5f3073ffffffffffffffffffffffffffffffffffffffff1663d09edf316040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b63573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b87919061233f565b6040517f59f89dda00000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff8216906359f89dda90610be090879087908790600401612372565b5f604051808303815f87803b158015610bf7575f80fd5b505af1158015610c09573d5f803e3d5ffd5b5050505050505050565b5f610c1c6108e8565b60028101549091508210610c5f576040517f029c6c35000000000000000000000000000000000000000000000000000000008152600481018390526024016105c2565b5f816002018381548110610c7557610c75612261565b5f9182526020822060016005909202019081015490925067ffffffffffffffff169003610cd1576040517f029c6c35000000000000000000000000000000000000000000000000000000008152600481018490526024016105c2565b60018101544267ffffffffffffffff90911611610d1d576040517f99fa8c69000000000000000000000000000000000000000000000000000000008152600481018490526024016105c2565b600281015460038201545f198214610d5d5780846002018381548110610d4557610d45612261565b905f5260205f20906005020160030181905550610d61565b8084555b5f198114610d975781846002018281548110610d7f57610d7f612261565b905f5260205f20906005020160020181905550610d9f565b600184018290555b5f196002840181905560038401556001830180547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001690555f808455610de99060048501906120ca565b5050505050565b5f805f80610afb5f198787610967565b5f805f80610e0f878787610967565b90505f80610e1c83611410565b939a9099509297509195505050505050565b5f610e376108e8565b600201545f03610e4657505f90565b60065f80610e575f19846001610967565b90505b5f1981146102fa5781610e6c816123a6565b925050610e7b81846001610967565b9050610e5a565b5f7f4548e57ae2f1604df75a3d17fecaff7dd11ad7a93d9f8a0dc05e7144f46f3f7c8403610ef857610ef0610eeb84848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610a6e92505050565b61146e565b506002610a67565b6040517ff17c1d46000000000000000000000000000000000000000000000000000000008152600481018590526024016105c2565b5f428367ffffffffffffffff1611610f83576040517fc0851c8a00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff841660048201524260248201526044016105c2565b5f610f8c6108e8565b9050610f978161156e565b60028101805460019081018083555f928352610fb39190612301565b90505f826002018281548110610fcb57610fcb612261565b5f91825260209091206005909102018781556001810180547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff8916179055905060048101611023868261241b565b505f1960028201819055600382015561103d838388611617565b5095945050505050565b5f805f80610e0f87878761131b565b5f5b5f19821415801561109a57504283600201838154811061107a5761107a612261565b5f91825260209091206001600590920201015467ffffffffffffffff1611155b156110cb578260020182815481106110b4576110b4612261565b905f5260205f209060050201600301549150611058565b50919050565b5f5b5f19831461111f575f8460020184815481106110f1576110f1612261565b905f5260205f209060050201905082815f0154165f146111145783915050610a67565b6003015492506110d3565b505f199392505050565b5f5b5f19831461111f575f84600201848154811061114957611149612261565b5f918252602090912060059091020160018101549091504267ffffffffffffffff9091161115611179575061111f565b805483161561118b5783915050610a67565b60030154925061112b565b5f80851584151780156111ae575f92505f91506112ab565b6111b884876124d7565b91505f6111c488611761565b90505f6111d087611761565b90505f6111dd83836117c2565b5090505f6f0785ee10d5da46d900f436a000000000821115611212576f0785ee10d5da46d900f436a000000000820491506025015b670de0b6b3a764000082111561123357670de0b6b3a7640000820491506012015b633b9aca0082111561124c57633b9aca00820491506009015b61271082111561126157612710820491506004015b811561127557600a82049150600101611261565b61127f81876124d7565b95506112a18b8a61129b878761129687600a6125f2565b6117de565b896118c3565b9097509550505050505b5094509492505050565b5f805f6112c285856119cf565b91509150801580156112d2575081155b15611313576040517f8eba4d0700000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016105c2565b509392505050565b5f600783168103611358576040517fbf3cad0b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6113616108e8565b60028101549091505f03611379575f19915050610a67565b5f5f1986146113ac5781600201868154811061139757611397612261565b905f5260205f209060050201600201546113b2565b81600101545b905060018460028111156113c8576113c8612314565b036113e157610a2a826113db8484611ad6565b87611b4a565b60028460028111156113f5576113f5612314565b0361140557610a2a828287611b98565b610a62828287611b4a565b5f805f19830361142457505f928392509050565b5f61142d6108e8565b600201848154811061144157611441612261565b5f91825260209091206005909102018054600190910154909567ffffffffffffffff909116945092505050565b611478815f611c04565b156114af576040517f018d151200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6114b930611c54565b90505f6114c7600183611cfe565b90506114d38382611d22565b1561150d576040517f06c32712000000000000000000000000000000000000000000000000000000008152600481018490526024016105c2565b5f61152261151c84600a6125fd565b5f611cfe565b905061152e8482611d71565b15611568576040517fd24a8af1000000000000000000000000000000000000000000000000000000008152600481018590526024016105c2565b50505050565b60028101541561157b5750565b6002810180546001018082555f8281529190829061159b5761159b612261565b5f9182526020909120600160059092020181815590810180547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff161790555f1960028201819055600382015590506115fc611dc0565b5f808052600484016020526040902055505f19600590910155565b5f83600201838154811061162d5761162d612261565b905f5260205f20906005020190505f846001015490505b5f198114610de9578267ffffffffffffffff1685600201828154811061166c5761166c612261565b5f91825260209091206001600590920201015467ffffffffffffffff1611611735575f8560020182815481106116a4576116a4612261565b905f5260205f209060050201600301549050848660020183815481106116cc576116cc612261565b5f918252602090912060036005909202018101919091556002840183905583018190555f198114611725578486600201828154811061170d5761170d612261565b905f5260205f2090600502016002018190555061172d565b600186018590555b505050505050565b84600201818154811061174a5761174a612261565b905f5260205f209060050201600201549050611644565b5f808212156117be577f800000000000000000000000000000000000000000000000000000000000000082036117b857507f8000000000000000000000000000000000000000000000000000000000000000919050565b505f0390565b5090565b5f805f1983850993909202808410938190039390930393915050565b5f805f6117eb86866117c2565b91509150815f0361180f57838181611805576118056124fe565b0492505050610a67565b838210611859576040517f6c59da120000000000000000000000000000000000000000000000000000000081526004810187905260248101869052604481018590526064016105c2565b5f84868809600186198101871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103025f82900382900490920185841190960395909502919093039390930492909217029150509392505050565b5f805f858718121561198d577f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84111561197a576119227f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600161260b565b840361195257507f80000000000000000000000000000000000000000000000000000000000000009050816119c6565b61195d600a8561261e565b6119669061263d565b6119718460016124d7565b915091506119c6565b6119838461263d565b83915091506119c6565b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8411156119c057611966600a8561261e565b50829050815b94509492505050565b5f601b83900b8314838382611a33577d90e40fbeea1d3a4abc8955e946fe31cdcf66f634e1000000000000000000860515611a1357620186a0860595506005850194505b8586601b0b14611a2e57600a86059550846001019450611a13565b611a49565b855f03611a4957505f925060019150611acf9050565b848560030b14611aa5575f851215611a6957505f9250829150611acf9050565b6040517fd556b11100000000000000000000000000000000000000000000000000000000815260048101839052602481018290526044016105c2565b50507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841660e084901b1791505b9250929050565b5f5b5f198214158015611b19575042836002018381548110611afa57611afa612261565b5f91825260209091206001600590920201015467ffffffffffffffff16115b156110cb57826002018281548110611b3357611b33612261565b905f5260205f209060050201600201549150611ad8565b5f5b5f19831461111f575f846002018481548110611b6a57611b6a612261565b905f5260205f209060050201905082815f0154165f14611b8d5783915050610a67565b600201549250611b4c565b5f5b5f19831461111f575f846002018481548110611bb857611bb8612261565b5f918252602090912060059091020160018101549091504267ffffffffffffffff90911611611be7575061111f565b8054831615611bf95783915050610a67565b600201549250611b9a565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d611c4784848484611e43565b1215979650505050505050565b5f611c5d611f17565b6040517f54636d2b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316600482015273200e12d10bb0c5e4a17e7018f0f1161919bb9389906354636d2b906024016020604051808303815f875af1158015611cda573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a83919061266d565b5f805f611d0b8585611fbd565b91509150611d19828261201f565b95945050505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d611d6584848484611e43565b13979650505050505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d611db484848484611e43565b12979650505050505050565b5f807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00611e0e60017fb750591399365444a618527b69a54ce09476c8bde1ecff60f5aa1fe2b52605ff612301565b604051602001611e2091815260200190565b60408051808303601f190181529190528051602090910120166002015492915050565b5f8085158415178187128286121817858414178015611e6857868592509250506119c6565b505f85841315611e7c575092949193919260015b8386035f8112604c8213178015611eaf578215611ea1575f89945094505050506119c6565b885f945094505050506119c6565b600a82900a8981028a828281611ec757611ec76124fe565b0514611ef3578415611ee3575f8b9650965050505050506119c6565b8a5f9650965050505050506119c6565b8415611f085788965094506119c69350505050565b95508794506119c69350505050565b73200e12d10bb0c5e4a17e7018f0f1161919bb93893b1580611f6e575073200e12d10bb0c5e4a17e7018f0f1161919bb93893f7f1de7d717526cba131d684e312dedbf0852adef9cced9e36798ae4937f7145d4114155b15611fbb576040517f73e6d7b300000000000000000000000000000000000000000000000000000000815273200e12d10bb0c5e4a17e7018f0f1161919bb938960048201526024016105c2565b565b5f805f805f611fcc8787612071565b92509250925080612013576040517fc471796600000000000000000000000000000000000000000000000000000000815260048101849052602481018390526044016105c2565b50909590945092505050565b5f805f61202c85856119cf565b9150915080611313576040517f22c9f7bb00000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016105c2565b5f808060ff841681037f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8611156120bc57600a860460018201600a88065f149350935093505061036b565b85935091506001905061036b565b5080546120d690612275565b5f825580601f106120e5575050565b601f0160209004905f5260205f20908101906121019190612104565b50565b5b808211156117be575f8155600101612105565b8035600381106106e6575f80fd5b5f8060408385031215612137575f80fd5b8235915061214760208401612118565b90509250929050565b5f60208284031215612160575f80fd5b5035919050565b5f805f60608486031215612179575f80fd5b833592506020840135915061219060408501612118565b90509250925092565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610a676020830184612199565b5f805f80606085870312156121ec575f80fd5b84359350602085013567ffffffffffffffff808216821461220b575f80fd5b90935060408601359080821115612220575f80fd5b818701915087601f830112612233575f80fd5b813581811115612241575f80fd5b886020828501011115612252575f80fd5b95989497505060200194505050565b634e487b7160e01b5f52603260045260245ffd5b600181811c9082168061228957607f821691505b6020821081036110cb57634e487b7160e01b5f52602260045260245ffd5b84815267ffffffffffffffff8416602082015260606040820152816060820152818360808301375f818301608090810191909152601f909201601f191601019392505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610a8357610a836122ed565b634e487b7160e01b5f52602160045260245ffd5b5f60208284031215612338575f80fd5b5051919050565b5f6020828403121561234f575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610a67575f80fd5b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f611d196060830184612199565b5f5f1982036123b7576123b76122ed565b5060010190565b634e487b7160e01b5f52604160045260245ffd5b601f82111561241657805f5260205f20601f840160051c810160208510156123f75750805b601f840160051c820191505b81811015610de9575f8155600101612403565b505050565b815167ffffffffffffffff811115612435576124356123be565b612449816124438454612275565b846123d2565b602080601f83116001811461247c575f84156124655750858301515b5f19600386901b1c1916600185901b17855561172d565b5f85815260208120601f198616915b828110156124aa5788860151825594840194600190910190840161248b565b50858210156124c757878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b8082018281125f8312801582168215821617156124f6576124f66122ed565b505092915050565b634e487b7160e01b5f52601260045260245ffd5b600181815b8085111561254c57815f1904821115612532576125326122ed565b8085161561253f57918102915b93841c9390800290612517565b509250929050565b5f8261256257506001610a83565b8161256e57505f610a83565b8160018114612584576002811461258e576125aa565b6001915050610a83565b60ff84111561259f5761259f6122ed565b50506001821b610a83565b5060208310610133831016604e8410600b84101617156125cd575081810a610a83565b6125d78383612512565b805f19048211156125ea576125ea6122ed565b029392505050565b5f610a678383612554565b5f610a6760ff841683612554565b80820180821115610a8357610a836122ed565b5f8261263857634e487b7160e01b5f52601260045260245ffd5b500490565b5f7f800000000000000000000000000000000000000000000000000000000000000082036117b8576117b86122ed565b5f6020828403121561267d575f80fd5b815160ff81168114610a67575f80fd"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b506004361061009f575f3560e01c806379ba430511610072578063bb7bb45a11610058578063bb7bb45a14610151578063dad601be14610159578063e388df491461016c575f80fd5b806379ba43051461011e578063b21a249414610131575f80fd5b80630d1e0432146100a35780631cb5642f146100be578063358116b9146100f65780634e6c280e1461010b575b5f80fd5b6100ab61017f565b6040519081526020015b60405180910390f35b6100d16100cc366004612126565b610301565b60408051938452602084019290925267ffffffffffffffff16908201526060016100b5565b610109610104366004612150565b610372565b005b6100d1610119366004612126565b61044c565b6100d161012c366004612167565b6104af565b61014461013f366004612150565b610522565b6040516100b591906121c7565b6100ab6106eb565b6100ab6101673660046121d9565b61074f565b6100d161017a366004612167565b610884565b5f73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf61630036101d6576040516309e815f560e01b815260040160405180910390fd5b5f6101df6108e8565b905060015f6101f15f19600384610967565b90505b5f1981146102fa57600283600201828154811061021357610213612261565b905f5260205f2090600502015f0154036102e6576102e3826102de85600201848154811061024357610243612261565b905f5260205f209060050201600401805461025d90612275565b80601f016020809104026020016040519081016040528092919081815260200182805461028990612275565b80156102d45780601f106102ab576101008083540402835291602001916102d4565b820191905f5260205f20905b8154815290600101906020018083116102b757829003601f168201915b5050505050610a6e565b610a89565b91505b6102f38160036001610967565b90506101f4565b5091505090565b5f808073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf616300361035a576040516309e815f560e01b815260040160405180910390fd5b6103648585610aeb565b9250925092505b9250925092565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf61630036103c8576040516309e815f560e01b815260040160405180910390fd5b610414337f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e78360405160200161040091815260200190565b604051602081830303815290604052610b19565b61041d81610c13565b604051819033907f94041431cee1a4c20be97117d396e73eb1e601e124b48fbc5dc07397c31d5f8a905f90a350565b5f808073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf61630036104a5576040516309e815f560e01b815260040160405180910390fd5b6103648585610df0565b5f808073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf6163003610508576040516309e815f560e01b815260040160405180910390fd5b610513868686610e00565b92509250925093509350939050565b606073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf616300361057a576040516309e815f560e01b815260040160405180910390fd5b5f6105836108e8565b600281015490915083106105cb576040517f029c6c35000000000000000000000000000000000000000000000000000000008152600481018490526024015b60405180910390fd5b8060020183815481106105e0576105e0612261565b5f918252602082206001600590920201015467ffffffffffffffff169003610637576040517f029c6c35000000000000000000000000000000000000000000000000000000008152600481018490526024016105c2565b80600201838154811061064c5761064c612261565b905f5260205f209060050201600401805461066690612275565b80601f016020809104026020016040519081016040528092919081815260200182805461069290612275565b80156106dd5780601f106106b4576101008083540402835291602001916106dd565b820191905f5260205f20905b8154815290600101906020018083116106c057829003601f168201915b50505050509150505b919050565b5f73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf6163003610742576040516309e815f560e01b815260040160405180910390fd5b61074a610e2e565b905090565b5f73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf61630036107a6576040516309e815f560e01b815260040160405180910390fd5b6107e2337ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f898787878760405160200161040094939291906122a7565b5f6107ee868585610e82565b90505f610831828787878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610f2d92505050565b6040805184815267ffffffffffffffff89166020820152919250829133917fa9c7784142e419f4660627c0c145b3873c2a415ce062f5c81bc19e6850f873d8910160405180910390a39695505050505050565b5f808073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf61630036108dd576040516309e815f560e01b815260040160405180910390fd5b610513868686611047565b5f807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0061093660017f2f8f8ecf1b7a1a3ceda8d15a9a2247a2377b3434535a87f1728021c13fec2e71612301565b60405160200161094891815260200190565b60408051601f1981840301815291905280516020909101201692915050565b5f6007831681036109a4576040517fbf3cad0b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6109ad6108e8565b60028101549091505f036109c5575f19915050610a67565b5f5f1986146109f8578160020186815481106109e3576109e3612261565b905f5260205f209060050201600301546109fb565b81545b90506002846002811115610a1157610a11612314565b03610a3357610a2a82610a248484611056565b876110d1565b92505050610a67565b6001846002811115610a4757610a47612314565b03610a5757610a2a828287611129565b610a628282876110d1565b925050505b9392505050565b5f81806020019051810190610a839190612328565b92915050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d8480610ace86868686611196565b915091505f610add83836112b5565b9a9950505050505050505050565b5f805f80610afb5f19878761131b565b90505f80610b0883611410565b939650945091925050509250925092565b5f3073ffffffffffffffffffffffffffffffffffffffff1663d09edf316040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b63573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b87919061233f565b6040517f59f89dda00000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff8216906359f89dda90610be090879087908790600401612372565b5f604051808303815f87803b158015610bf7575f80fd5b505af1158015610c09573d5f803e3d5ffd5b5050505050505050565b5f610c1c6108e8565b60028101549091508210610c5f576040517f029c6c35000000000000000000000000000000000000000000000000000000008152600481018390526024016105c2565b5f816002018381548110610c7557610c75612261565b5f9182526020822060016005909202019081015490925067ffffffffffffffff169003610cd1576040517f029c6c35000000000000000000000000000000000000000000000000000000008152600481018490526024016105c2565b60018101544267ffffffffffffffff90911611610d1d576040517f99fa8c69000000000000000000000000000000000000000000000000000000008152600481018490526024016105c2565b600281015460038201545f198214610d5d5780846002018381548110610d4557610d45612261565b905f5260205f20906005020160030181905550610d61565b8084555b5f198114610d975781846002018281548110610d7f57610d7f612261565b905f5260205f20906005020160020181905550610d9f565b600184018290555b5f196002840181905560038401556001830180547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001690555f808455610de99060048501906120ca565b5050505050565b5f805f80610afb5f198787610967565b5f805f80610e0f878787610967565b90505f80610e1c83611410565b939a9099509297509195505050505050565b5f610e376108e8565b600201545f03610e4657505f90565b60065f80610e575f19846001610967565b90505b5f1981146102fa5781610e6c816123a6565b925050610e7b81846001610967565b9050610e5a565b5f7f4548e57ae2f1604df75a3d17fecaff7dd11ad7a93d9f8a0dc05e7144f46f3f7c8403610ef857610ef0610eeb84848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610a6e92505050565b61146e565b506002610a67565b6040517ff17c1d46000000000000000000000000000000000000000000000000000000008152600481018590526024016105c2565b5f428367ffffffffffffffff1611610f83576040517fc0851c8a00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff841660048201524260248201526044016105c2565b5f610f8c6108e8565b9050610f978161156e565b60028101805460019081018083555f928352610fb39190612301565b90505f826002018281548110610fcb57610fcb612261565b5f91825260209091206005909102018781556001810180547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff8916179055905060048101611023868261241b565b505f1960028201819055600382015561103d838388611617565b5095945050505050565b5f805f80610e0f87878761131b565b5f5b5f19821415801561109a57504283600201838154811061107a5761107a612261565b5f91825260209091206001600590920201015467ffffffffffffffff1611155b156110cb578260020182815481106110b4576110b4612261565b905f5260205f209060050201600301549150611058565b50919050565b5f5b5f19831461111f575f8460020184815481106110f1576110f1612261565b905f5260205f209060050201905082815f0154165f146111145783915050610a67565b6003015492506110d3565b505f199392505050565b5f5b5f19831461111f575f84600201848154811061114957611149612261565b5f918252602090912060059091020160018101549091504267ffffffffffffffff9091161115611179575061111f565b805483161561118b5783915050610a67565b60030154925061112b565b5f80851584151780156111ae575f92505f91506112ab565b6111b884876124d7565b91505f6111c488611761565b90505f6111d087611761565b90505f6111dd83836117c2565b5090505f6f0785ee10d5da46d900f436a000000000821115611212576f0785ee10d5da46d900f436a000000000820491506025015b670de0b6b3a764000082111561123357670de0b6b3a7640000820491506012015b633b9aca0082111561124c57633b9aca00820491506009015b61271082111561126157612710820491506004015b811561127557600a82049150600101611261565b61127f81876124d7565b95506112a18b8a61129b878761129687600a6125f2565b6117de565b896118c3565b9097509550505050505b5094509492505050565b5f805f6112c285856119cf565b91509150801580156112d2575081155b15611313576040517f8eba4d0700000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016105c2565b509392505050565b5f600783168103611358576040517fbf3cad0b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6113616108e8565b60028101549091505f03611379575f19915050610a67565b5f5f1986146113ac5781600201868154811061139757611397612261565b905f5260205f209060050201600201546113b2565b81600101545b905060018460028111156113c8576113c8612314565b036113e157610a2a826113db8484611ad6565b87611b4a565b60028460028111156113f5576113f5612314565b0361140557610a2a828287611b98565b610a62828287611b4a565b5f805f19830361142457505f928392509050565b5f61142d6108e8565b600201848154811061144157611441612261565b5f91825260209091206005909102018054600190910154909567ffffffffffffffff909116945092505050565b611478815f611c04565b156114af576040517f018d151200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6114b930611c54565b90505f6114c7600183611cfe565b90506114d38382611d22565b1561150d576040517f06c32712000000000000000000000000000000000000000000000000000000008152600481018490526024016105c2565b5f61152261151c84600a6125fd565b5f611cfe565b905061152e8482611d71565b15611568576040517fd24a8af1000000000000000000000000000000000000000000000000000000008152600481018590526024016105c2565b50505050565b60028101541561157b5750565b6002810180546001018082555f8281529190829061159b5761159b612261565b5f9182526020909120600160059092020181815590810180547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff161790555f1960028201819055600382015590506115fc611dc0565b5f808052600484016020526040902055505f19600590910155565b5f83600201838154811061162d5761162d612261565b905f5260205f20906005020190505f846001015490505b5f198114610de9578267ffffffffffffffff1685600201828154811061166c5761166c612261565b5f91825260209091206001600590920201015467ffffffffffffffff1611611735575f8560020182815481106116a4576116a4612261565b905f5260205f209060050201600301549050848660020183815481106116cc576116cc612261565b5f918252602090912060036005909202018101919091556002840183905583018190555f198114611725578486600201828154811061170d5761170d612261565b905f5260205f2090600502016002018190555061172d565b600186018590555b505050505050565b84600201818154811061174a5761174a612261565b905f5260205f209060050201600201549050611644565b5f808212156117be577f800000000000000000000000000000000000000000000000000000000000000082036117b857507f8000000000000000000000000000000000000000000000000000000000000000919050565b505f0390565b5090565b5f805f1983850993909202808410938190039390930393915050565b5f805f6117eb86866117c2565b91509150815f0361180f57838181611805576118056124fe565b0492505050610a67565b838210611859576040517f6c59da120000000000000000000000000000000000000000000000000000000081526004810187905260248101869052604481018590526064016105c2565b5f84868809600186198101871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103025f82900382900490920185841190960395909502919093039390930492909217029150509392505050565b5f805f858718121561198d577f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84111561197a576119227f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600161260b565b840361195257507f80000000000000000000000000000000000000000000000000000000000000009050816119c6565b61195d600a8561261e565b6119669061263d565b6119718460016124d7565b915091506119c6565b6119838461263d565b83915091506119c6565b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8411156119c057611966600a8561261e565b50829050815b94509492505050565b5f601b83900b8314838382611a33577d90e40fbeea1d3a4abc8955e946fe31cdcf66f634e1000000000000000000860515611a1357620186a0860595506005850194505b8586601b0b14611a2e57600a86059550846001019450611a13565b611a49565b855f03611a4957505f925060019150611acf9050565b848560030b14611aa5575f851215611a6957505f9250829150611acf9050565b6040517fd556b11100000000000000000000000000000000000000000000000000000000815260048101839052602481018290526044016105c2565b50507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841660e084901b1791505b9250929050565b5f5b5f198214158015611b19575042836002018381548110611afa57611afa612261565b5f91825260209091206001600590920201015467ffffffffffffffff16115b156110cb57826002018281548110611b3357611b33612261565b905f5260205f209060050201600201549150611ad8565b5f5b5f19831461111f575f846002018481548110611b6a57611b6a612261565b905f5260205f209060050201905082815f0154165f14611b8d5783915050610a67565b600201549250611b4c565b5f5b5f19831461111f575f846002018481548110611bb857611bb8612261565b5f918252602090912060059091020160018101549091504267ffffffffffffffff90911611611be7575061111f565b8054831615611bf95783915050610a67565b600201549250611b9a565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d611c4784848484611e43565b1215979650505050505050565b5f611c5d611f17565b6040517f54636d2b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316600482015273200e12d10bb0c5e4a17e7018f0f1161919bb9389906354636d2b906024016020604051808303815f875af1158015611cda573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a83919061266d565b5f805f611d0b8585611fbd565b91509150611d19828261201f565b95945050505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d611d6584848484611e43565b13979650505050505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d611db484848484611e43565b12979650505050505050565b5f807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00611e0e60017fb750591399365444a618527b69a54ce09476c8bde1ecff60f5aa1fe2b52605ff612301565b604051602001611e2091815260200190565b60408051808303601f190181529190528051602090910120166002015492915050565b5f8085158415178187128286121817858414178015611e6857868592509250506119c6565b505f85841315611e7c575092949193919260015b8386035f8112604c8213178015611eaf578215611ea1575f89945094505050506119c6565b885f945094505050506119c6565b600a82900a8981028a828281611ec757611ec76124fe565b0514611ef3578415611ee3575f8b9650965050505050506119c6565b8a5f9650965050505050506119c6565b8415611f085788965094506119c69350505050565b95508794506119c69350505050565b73200e12d10bb0c5e4a17e7018f0f1161919bb93893b1580611f6e575073200e12d10bb0c5e4a17e7018f0f1161919bb93893f7f1de7d717526cba131d684e312dedbf0852adef9cced9e36798ae4937f7145d4114155b15611fbb576040517f73e6d7b300000000000000000000000000000000000000000000000000000000815273200e12d10bb0c5e4a17e7018f0f1161919bb938960048201526024016105c2565b565b5f805f805f611fcc8787612071565b92509250925080612013576040517fc471796600000000000000000000000000000000000000000000000000000000815260048101849052602481018390526044016105c2565b50909590945092505050565b5f805f61202c85856119cf565b9150915080611313576040517f22c9f7bb00000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016105c2565b5f808060ff841681037f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8611156120bc57600a860460018201600a88065f149350935093505061036b565b85935091506001905061036b565b5080546120d690612275565b5f825580601f106120e5575050565b601f0160209004905f5260205f20908101906121019190612104565b50565b5b808211156117be575f8155600101612105565b8035600381106106e6575f80fd5b5f8060408385031215612137575f80fd5b8235915061214760208401612118565b90509250929050565b5f60208284031215612160575f80fd5b5035919050565b5f805f60608486031215612179575f80fd5b833592506020840135915061219060408501612118565b90509250925092565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610a676020830184612199565b5f805f80606085870312156121ec575f80fd5b84359350602085013567ffffffffffffffff808216821461220b575f80fd5b90935060408601359080821115612220575f80fd5b818701915087601f830112612233575f80fd5b813581811115612241575f80fd5b886020828501011115612252575f80fd5b95989497505060200194505050565b634e487b7160e01b5f52603260045260245ffd5b600181811c9082168061228957607f821691505b6020821081036110cb57634e487b7160e01b5f52602260045260245ffd5b84815267ffffffffffffffff8416602082015260606040820152816060820152818360808301375f818301608090810191909152601f909201601f191601019392505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610a8357610a836122ed565b634e487b7160e01b5f52602160045260245ffd5b5f60208284031215612338575f80fd5b5051919050565b5f6020828403121561234f575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610a67575f80fd5b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f611d196060830184612199565b5f5f1982036123b7576123b76122ed565b5060010190565b634e487b7160e01b5f52604160045260245ffd5b601f82111561241657805f5260205f20601f840160051c810160208510156123f75750805b601f840160051c820191505b81811015610de9575f8155600101612403565b505050565b815167ffffffffffffffff811115612435576124356123be565b612449816124438454612275565b846123d2565b602080601f83116001811461247c575f84156124655750858301515b5f19600386901b1c1916600185901b17855561172d565b5f85815260208120601f198616915b828110156124aa5788860151825594840194600190910190840161248b565b50858210156124c757878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b8082018281125f8312801582168215821617156124f6576124f66122ed565b505092915050565b634e487b7160e01b5f52601260045260245ffd5b600181815b8085111561254c57815f1904821115612532576125326122ed565b8085161561253f57918102915b93841c9390800290612517565b509250929050565b5f8261256257506001610a83565b8161256e57505f610a83565b8160018114612584576002811461258e576125aa565b6001915050610a83565b60ff84111561259f5761259f6122ed565b50506001821b610a83565b5060208310610133831016604e8410600b84101617156125cd575081810a610a83565b6125d78383612512565b805f19048211156125ea576125ea6122ed565b029392505050565b5f610a678383612554565b5f610a6760ff841683612554565b80820180821115610a8357610a836122ed565b5f8261263857634e487b7160e01b5f52601260045260245ffd5b500490565b5f7f800000000000000000000000000000000000000000000000000000000000000082036117b8576117b86122ed565b5f6020828403121561267d575f80fd5b815160ff81168114610a67575f80fd"; diff --git a/src/generated/0_1_4/StoxOffchainAssetReceiptVaultAuthorizerV1.pointers.sol b/src/generated/0_1_4/StoxOffchainAssetReceiptVaultAuthorizerV1.pointers.sol deleted file mode 100644 index e161c73a..00000000 --- a/src/generated/0_1_4/StoxOffchainAssetReceiptVaultAuthorizerV1.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0xf8a1d9b2fa068bae3c1a607434db48364a5cdab3020bd7e315ed2662a3b35b5f); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x2EA0d35d0B1F57C42e6130f298930228bCbFDe9b); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"6080604052348015600e575f80fd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b611746806100d65f395ff3fe608060405234801561000f575f80fd5b506004361061009f575f3560e01c8063439fab911161007257806391d148541161005857806391d1485414610168578063a217fddf146101cc578063d547741f146101d3575f80fd5b8063439fab911461014257806359f89dda14610155575f80fd5b806301ffc9a7146100a3578063248a9ca3146100cb5780632f2ff15d1461011a57806336568abe1461012f575b5f80fd5b6100b66100b13660046112aa565b6101e6565b60405190151581526020015b60405180910390f35b61010c6100d93660046112f0565b5f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b6040519081526020016100c2565b61012d610128366004611328565b6102d9565b005b61012d61013d366004611328565b610322565b61010c610150366004611449565b610380565b61012d610163366004611483565b6106a0565b6100b6610176366004611328565b5f9182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b61010c5f81565b61012d6101e1366004611328565b610a49565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f59f89dda00000000000000000000000000000000000000000000000000000000148061027857507fffffffff0000000000000000000000000000000000000000000000000000000082167f439fab9100000000000000000000000000000000000000000000000000000000145b806102c457507fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000145b806102d357506102d382610a8c565b92915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015461031281610b22565b61031c8383610b2f565b50505050565b73ffffffffffffffffffffffffffffffffffffffff81163314610371576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61037b8282610c4d565b505050565b5f8061038a610d29565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156103b65750825b90505f8267ffffffffffffffff1660011480156103d25750303b155b9050811580156103e0575080155b15610417576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156104785784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b5f8780602001905181019061048d91906114d8565b90505f61049982610d51565b90507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc381146104cb5796506106359050565b6105157ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f897fd6075ca92e18a15ce0e8ecaaae57a112072844045d11beeb264aac5f85e0daf26110f9565b61053f7fd6075ca92e18a15ce0e8ecaaae57a112072844045d11beeb264aac5f85e0daf2806110f9565b6105897f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e77fe25ff801c3c463dad5f8999289b7b43090e0f6f5039ae7c220cbb762fe8ff3736110f9565b6105b37fe25ff801c3c463dad5f8999289b7b43090e0f6f5039ae7c220cbb762fe8ff373806110f9565b6105e07fd6075ca92e18a15ce0e8ecaaae57a112072844045d11beeb264aac5f85e0daf2835f0151610b2f565b5061060e7fe25ff801c3c463dad5f8999289b7b43090e0f6f5039ae7c220cbb762fe8ff373835f0151610b2f565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc3975050505b83156106965784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a8214806106ed57507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a4882145b156109b6575f805f7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a850361074d575f848060200190518101906107319190611536565b9050805f01519350806020015192508060600151915050610779565b5f84806020019051810190610762919061162b565b805160208201516080909201519095509093509150505b80156109ae5773ffffffffffffffffffffffffffffffffffffffff83161580156107e6575073ffffffffffffffffffffffffffffffffffffffff82165f9081527f96f78a99f93d631b75bc050854c9b764642c10564e41ed27c197a36ddabb1df9602052604090205460ff165b80610853575073ffffffffffffffffffffffffffffffffffffffff8216158015610853575073ffffffffffffffffffffffffffffffffffffffff83165f9081527f3907f76fa0fb1e5d0f263c5c4fe4316026052cf960c55a1c768106d8b9701c10602052604090205460ff165b1561086057505050505050565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a851480156108d2575073ffffffffffffffffffffffffffffffffffffffff86165f9081527f6ba48721fcbb2613af13d8285fe9ee4a081f7995464037bb5ea27397912881d2602052604090205460ff165b8061094a57507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a488514801561094a575073ffffffffffffffffffffffffffffffffffffffff86165f9081527f29e42896fa6edf5a5d7ff0bcd00acffbece6eb6cc7b44d0807bfd84929cc6e1b602052604090205460ff165b1561095757505050505050565b6040517ffe720f7800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8085166004830152831660248201526044015b60405180910390fd5b505050505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915290205460ff1615610a1157505050565b8282826040517f3ae4063b0000000000000000000000000000000000000000000000000000000081526004016109a5939291906116ed565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020526040902060010154610a8281610b22565b61031c8383610c4d565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806102d357507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146102d3565b610b2c813361119a565b50565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020818152604080842073ffffffffffffffffffffffffffffffffffffffff8616855290915282205460ff16610c44575f8481526020828152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610be03390565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506102d3565b5f9150506102d3565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020818152604080842073ffffffffffffffffffffffffffffffffffffffff8616855290915282205460ff1615610c44575f8481526020828152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506102d3565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006102d3565b5f610d5a611244565b815173ffffffffffffffffffffffffffffffffffffffff16610da8576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610df27f50a07cb25d0d864370863300b20987dfdae089abad71b607faf639d09d0533917f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b6110f9565b610e1c7f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b806110f9565b610e667f3dd35eca0ca8a128757fa464a5dfa4ad6cc4853cad96dce4e90fdbea4f0a52e37f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d6110f9565b610e907f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d806110f9565b610eda7f54f0af3716c79b30b8c228679d31d77a1a5f526c16af3262730e0a8de4363fed7fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c6110f9565b610f047fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c806110f9565b610f4e7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8217f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc026110f9565b610f787f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02806110f9565b610fc27f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e9828697fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d36110f9565b610fec7fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3806110f9565b6110197f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b835f0151610b2f565b506110477f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d835f0151610b2f565b506110757fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c835f0151610b2f565b506110a37f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02835f0151610b2f565b506110d17fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3835f0151610b2f565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc392915050565b7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268005f611152845f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b5f85815260208490526040808220600101869055519192508491839187917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a450505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16611240576040517fe2517d3f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602481018390526044016109a5565b5050565b61124c61124e565b565b61125661128c565b61124c576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f611295610d29565b5468010000000000000000900460ff16919050565b5f602082840312156112ba575f80fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146112e9575f80fd5b9392505050565b5f60208284031215611300575f80fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff81168114610b2c575f80fd5b5f8060408385031215611339575f80fd5b82359150602083013561134b81611307565b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60405160a0810167ffffffffffffffff811182821017156113a6576113a6611356565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156113d5576113d5611356565b604052919050565b5f82601f8301126113ec575f80fd5b813567ffffffffffffffff81111561140657611406611356565b6114196020601f19601f840116016113ac565b81815284602083860101111561142d575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60208284031215611459575f80fd5b813567ffffffffffffffff81111561146f575f80fd5b61147b848285016113dd565b949350505050565b5f805f60608486031215611495575f80fd5b83356114a081611307565b925060208401359150604084013567ffffffffffffffff8111156114c2575f80fd5b6114ce868287016113dd565b9150509250925092565b5f602082840312156114e8575f80fd5b6040516020810181811067ffffffffffffffff8211171561150b5761150b611356565b604052825161151981611307565b81529392505050565b80518015158114611531575f80fd5b919050565b5f60808284031215611546575f80fd5b6040516080810181811067ffffffffffffffff8211171561156957611569611356565b604052825161157781611307565b8152602083015161158781611307565b6020820152604083810151908201526115a260608401611522565b60608201529392505050565b5f82601f8301126115bd575f80fd5b8151602067ffffffffffffffff8211156115d9576115d9611356565b8160051b6115e88282016113ac565b9283528481018201928281019087851115611601575f80fd5b83870192505b8483101561162057825182529183019190830190611607565b979650505050505050565b5f6020828403121561163b575f80fd5b815167ffffffffffffffff80821115611652575f80fd5b9083019060a08286031215611665575f80fd5b61166d611383565b825161167881611307565b8152602083015161168881611307565b602082015260408301518281111561169e575f80fd5b6116aa878286016115ae565b6040830152506060830151828111156116c1575f80fd5b6116cd878286016115ae565b6060830152506116df60808401611522565b608082015295945050505050565b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f82518060608401528060208501608085015e5f608082850101526080601f19601f83011684010191505094935050505056"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b506004361061009f575f3560e01c8063439fab911161007257806391d148541161005857806391d1485414610168578063a217fddf146101cc578063d547741f146101d3575f80fd5b8063439fab911461014257806359f89dda14610155575f80fd5b806301ffc9a7146100a3578063248a9ca3146100cb5780632f2ff15d1461011a57806336568abe1461012f575b5f80fd5b6100b66100b13660046112aa565b6101e6565b60405190151581526020015b60405180910390f35b61010c6100d93660046112f0565b5f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b6040519081526020016100c2565b61012d610128366004611328565b6102d9565b005b61012d61013d366004611328565b610322565b61010c610150366004611449565b610380565b61012d610163366004611483565b6106a0565b6100b6610176366004611328565b5f9182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b61010c5f81565b61012d6101e1366004611328565b610a49565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f59f89dda00000000000000000000000000000000000000000000000000000000148061027857507fffffffff0000000000000000000000000000000000000000000000000000000082167f439fab9100000000000000000000000000000000000000000000000000000000145b806102c457507fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000145b806102d357506102d382610a8c565b92915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015461031281610b22565b61031c8383610b2f565b50505050565b73ffffffffffffffffffffffffffffffffffffffff81163314610371576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61037b8282610c4d565b505050565b5f8061038a610d29565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156103b65750825b90505f8267ffffffffffffffff1660011480156103d25750303b155b9050811580156103e0575080155b15610417576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156104785784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b5f8780602001905181019061048d91906114d8565b90505f61049982610d51565b90507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc381146104cb5796506106359050565b6105157ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f897fd6075ca92e18a15ce0e8ecaaae57a112072844045d11beeb264aac5f85e0daf26110f9565b61053f7fd6075ca92e18a15ce0e8ecaaae57a112072844045d11beeb264aac5f85e0daf2806110f9565b6105897f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e77fe25ff801c3c463dad5f8999289b7b43090e0f6f5039ae7c220cbb762fe8ff3736110f9565b6105b37fe25ff801c3c463dad5f8999289b7b43090e0f6f5039ae7c220cbb762fe8ff373806110f9565b6105e07fd6075ca92e18a15ce0e8ecaaae57a112072844045d11beeb264aac5f85e0daf2835f0151610b2f565b5061060e7fe25ff801c3c463dad5f8999289b7b43090e0f6f5039ae7c220cbb762fe8ff373835f0151610b2f565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc3975050505b83156106965784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a8214806106ed57507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a4882145b156109b6575f805f7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a850361074d575f848060200190518101906107319190611536565b9050805f01519350806020015192508060600151915050610779565b5f84806020019051810190610762919061162b565b805160208201516080909201519095509093509150505b80156109ae5773ffffffffffffffffffffffffffffffffffffffff83161580156107e6575073ffffffffffffffffffffffffffffffffffffffff82165f9081527f96f78a99f93d631b75bc050854c9b764642c10564e41ed27c197a36ddabb1df9602052604090205460ff165b80610853575073ffffffffffffffffffffffffffffffffffffffff8216158015610853575073ffffffffffffffffffffffffffffffffffffffff83165f9081527f3907f76fa0fb1e5d0f263c5c4fe4316026052cf960c55a1c768106d8b9701c10602052604090205460ff165b1561086057505050505050565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a851480156108d2575073ffffffffffffffffffffffffffffffffffffffff86165f9081527f6ba48721fcbb2613af13d8285fe9ee4a081f7995464037bb5ea27397912881d2602052604090205460ff165b8061094a57507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a488514801561094a575073ffffffffffffffffffffffffffffffffffffffff86165f9081527f29e42896fa6edf5a5d7ff0bcd00acffbece6eb6cc7b44d0807bfd84929cc6e1b602052604090205460ff165b1561095757505050505050565b6040517ffe720f7800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8085166004830152831660248201526044015b60405180910390fd5b505050505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915290205460ff1615610a1157505050565b8282826040517f3ae4063b0000000000000000000000000000000000000000000000000000000081526004016109a5939291906116ed565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020526040902060010154610a8281610b22565b61031c8383610c4d565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806102d357507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146102d3565b610b2c813361119a565b50565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020818152604080842073ffffffffffffffffffffffffffffffffffffffff8616855290915282205460ff16610c44575f8481526020828152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610be03390565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506102d3565b5f9150506102d3565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020818152604080842073ffffffffffffffffffffffffffffffffffffffff8616855290915282205460ff1615610c44575f8481526020828152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506102d3565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006102d3565b5f610d5a611244565b815173ffffffffffffffffffffffffffffffffffffffff16610da8576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610df27f50a07cb25d0d864370863300b20987dfdae089abad71b607faf639d09d0533917f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b6110f9565b610e1c7f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b806110f9565b610e667f3dd35eca0ca8a128757fa464a5dfa4ad6cc4853cad96dce4e90fdbea4f0a52e37f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d6110f9565b610e907f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d806110f9565b610eda7f54f0af3716c79b30b8c228679d31d77a1a5f526c16af3262730e0a8de4363fed7fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c6110f9565b610f047fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c806110f9565b610f4e7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8217f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc026110f9565b610f787f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02806110f9565b610fc27f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e9828697fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d36110f9565b610fec7fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3806110f9565b6110197f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b835f0151610b2f565b506110477f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d835f0151610b2f565b506110757fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c835f0151610b2f565b506110a37f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02835f0151610b2f565b506110d17fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3835f0151610b2f565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc392915050565b7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268005f611152845f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b5f85815260208490526040808220600101869055519192508491839187917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a450505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16611240576040517fe2517d3f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602481018390526044016109a5565b5050565b61124c61124e565b565b61125661128c565b61124c576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f611295610d29565b5468010000000000000000900460ff16919050565b5f602082840312156112ba575f80fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146112e9575f80fd5b9392505050565b5f60208284031215611300575f80fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff81168114610b2c575f80fd5b5f8060408385031215611339575f80fd5b82359150602083013561134b81611307565b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60405160a0810167ffffffffffffffff811182821017156113a6576113a6611356565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156113d5576113d5611356565b604052919050565b5f82601f8301126113ec575f80fd5b813567ffffffffffffffff81111561140657611406611356565b6114196020601f19601f840116016113ac565b81815284602083860101111561142d575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60208284031215611459575f80fd5b813567ffffffffffffffff81111561146f575f80fd5b61147b848285016113dd565b949350505050565b5f805f60608486031215611495575f80fd5b83356114a081611307565b925060208401359150604084013567ffffffffffffffff8111156114c2575f80fd5b6114ce868287016113dd565b9150509250925092565b5f602082840312156114e8575f80fd5b6040516020810181811067ffffffffffffffff8211171561150b5761150b611356565b604052825161151981611307565b81529392505050565b80518015158114611531575f80fd5b919050565b5f60808284031215611546575f80fd5b6040516080810181811067ffffffffffffffff8211171561156957611569611356565b604052825161157781611307565b8152602083015161158781611307565b6020820152604083810151908201526115a260608401611522565b60608201529392505050565b5f82601f8301126115bd575f80fd5b8151602067ffffffffffffffff8211156115d9576115d9611356565b8160051b6115e88282016113ac565b9283528481018201928281019087851115611601575f80fd5b83870192505b8483101561162057825182529183019190830190611607565b979650505050505050565b5f6020828403121561163b575f80fd5b815167ffffffffffffffff80821115611652575f80fd5b9083019060a08286031215611665575f80fd5b61166d611383565b825161167881611307565b8152602083015161168881611307565b602082015260408301518281111561169e575f80fd5b6116aa878286016115ae565b6040830152506060830151828111156116c1575f80fd5b6116cd878286016115ae565b6060830152506116df60808401611522565b608082015295945050505050565b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f82518060608401528060208501608085015e5f608082850101526080601f19601f83011684010191505094935050505056"; diff --git a/src/generated/0_1_4/StoxOffchainAssetReceiptVaultBeaconSetDeployer.pointers.sol b/src/generated/0_1_4/StoxOffchainAssetReceiptVaultBeaconSetDeployer.pointers.sol deleted file mode 100644 index 31a0f1ac..00000000 --- a/src/generated/0_1_4/StoxOffchainAssetReceiptVaultBeaconSetDeployer.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x4637b099fe9279a8d4d88d9176ccadf92b20970eaf0b57b51997756d479ef43b); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x679ab223dAb158Ea93e1a4F49104DE436C58eAb8); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"60c060405234801561000f575f80fd5b5060408051606081018252738e4bdeec7ceb9570d440676345da1dce10329f5b808252732df5cfe6d688ef9ff1b7c59a499d254b1527b2866020830181905273d7f91c1c6e6e651ec3f1fd707af7cbb7526206e18385015292519192916100759061010b565b6001600160a01b03928316815291166020820152604001604051809103905ff0801580156100a5573d5f803e3d5ffd5b506001600160a01b0316608052604080820151825191519091906100c89061010b565b6001600160a01b03928316815291166020820152604001604051809103905ff0801580156100f8573d5f803e3d5ffd5b506001600160a01b031660a05250610118565b6104f780610fd783390190565b60805160a051610e926101455f395f818160c701526102d801525f8181607b01526102630152610e925ff3fe608060405234801561000f575f80fd5b506004361061004a575f3560e01c806301ffc9a71461004e5780632c9b7f40146100765780632f77a1c1146100c25780634904fab3146100e9575b5f80fd5b61006161005c3660046105d0565b6100fc565b60405190151581526020015b60405180910390f35b61009d7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161006d565b61009d7f000000000000000000000000000000000000000000000000000000000000000081565b61009d6100f736600461075e565b610194565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f4ae8243200000000000000000000000000000000000000000000000000000000148061018e57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b6020810151606001515f9073ffffffffffffffffffffffffffffffffffffffff1615610212576020820151606001516040517ffc47d97600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116600482015260240160405180910390fd5b815173ffffffffffffffffffffffffffffffffffffffff16610260576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7f000000000000000000000000000000000000000000000000000000000000000060405161028e906105c3565b73ffffffffffffffffffffffffffffffffffffffff90911681526040602082018190525f90820152606001604051809103905ff0801580156102d2573d5f803e3d5ffd5b5090505f7f0000000000000000000000000000000000000000000000000000000000000000604051610303906105c3565b73ffffffffffffffffffffffffffffffffffffffff90911681526040602082018190525f90820152606001604051809103905ff080158015610347573d5f803e3d5ffd5b506040805173ffffffffffffffffffffffffffffffffffffffff80841660208301529293507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc39285169163439fab9191016040516020818303038152906040526040518263ffffffff1660e01b81526004016103c39190610894565b6020604051808303815f875af11580156103df573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061040391906108a6565b1461043a576040517f0219069c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8184602001516060019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc38173ffffffffffffffffffffffffffffffffffffffff1663439fab91866040516020016104c491906108bd565b6040516020818303038152906040526040518263ffffffff1660e01b81526004016104ef9190610894565b6020604051808303815f875af115801561050b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061052f91906108a6565b14610566576040517f09c5931500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805133815273ffffffffffffffffffffffffffffffffffffffff838116602083015284168183015290517fa0d99d93cf7a5f89661fa0829369a7e4896e755871efe65440bab2429387d55b9181900360600190a19392505050565b61052f8061096383390190565b5f602082840312156105e0575f80fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461060f575f80fd5b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff8111828210171561066657610666610616565b60405290565b6040516080810167ffffffffffffffff8111828210171561066657610666610616565b803573ffffffffffffffffffffffffffffffffffffffff811681146106b2575f80fd5b919050565b5f82601f8301126106c6575f80fd5b813567ffffffffffffffff808211156106e1576106e1610616565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561072757610727610616565b8160405283815286602085880101111561073f575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f6020828403121561076e575f80fd5b813567ffffffffffffffff80821115610785575f80fd5b9083019060408286031215610798575f80fd5b6107a0610643565b6107a98361068f565b81526020830135828111156107bc575f80fd5b9290920191608083870312156107d0575f80fd5b6107d861066c565b6107e18461068f565b81526020840135838111156107f4575f80fd5b610800888287016106b7565b602083015250604084013583811115610817575f80fd5b610823888287016106b7565b6040830152506108356060850161068f565b6060820152602082015295945050505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f61060f6020830184610848565b5f602082840312156108b6575f80fd5b5051919050565b602081525f73ffffffffffffffffffffffffffffffffffffffff8084511660208401526020840151604080850152818151166060850152602081015160808086015261090c60e0860182610848565b905060408201517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08683030160a08701526109478282610848565b9150508260608301511660c08601528093505050509291505056fe60a060405260405161052f38038061052f83398101604081905261002291610331565b61002c828261003e565b506001600160a01b031660805261040d565b610047826100fb565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a28051156100ef576100ea826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e491906103ed565b82610209565b505050565b6100f76102aa565b5050565b806001600160a01b03163b5f0361013557604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b815290515f92841691635c60da1b9160048083019260209291908290030181865afa1580156101ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d291906103ed565b9050806001600160a01b03163b5f036100f757604051634c9c8ce360e01b81526001600160a01b038216600482015260240161012c565b60605f61021684846102cb565b905080801561023757505f3d118061023757505f846001600160a01b03163b115b1561024c576102446102de565b9150506102a4565b801561027657604051639996b31560e01b81526001600160a01b038516600482015260240161012c565b3d15610289576102846102f7565b6102a2565b60405163d6bda27560e01b815260040160405180910390fd5b505b92915050565b34156102c95760405163b398979f60e01b815260040160405180910390fd5b565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b6040513d5f823e3d81fd5b80516001600160a01b0381168114610318575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215610342575f80fd5b61034b83610302565b60208401519092506001600160401b0380821115610367575f80fd5b818501915085601f83011261037a575f80fd5b81518181111561038c5761038c61031d565b604051601f8201601f19908116603f011681019083821181831017156103b4576103b461031d565b816040528281528860208487010111156103cc575f80fd5b8260208601602083015e5f6020848301015280955050505050509250929050565b5f602082840312156103fd575f80fd5b61040682610302565b9392505050565b60805161010b6104245f395f6023015261010b5ff3fe608060405261000c61000e565b005b61001e610019610020565b6100b3565b565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561008a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100ae91906100d1565b905090565b365f80375f80365f845af43d5f803e8080156100cd573d5ff35b3d5ffd5b5f602082840312156100e1575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610104575f80fd5b939250505056608060405234801561000f575f80fd5b506040516104f73803806104f783398101604081905261002e9161015f565b806001600160a01b03811661005d57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b61006681610077565b50610070826100c6565b5050610190565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b806001600160a01b03163b5f036100fb5760405163211eb15960e21b81526001600160a01b0382166004820152602401610054565b600180546001600160a01b0319166001600160a01b0383169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b80516001600160a01b038116811461015a575f80fd5b919050565b5f8060408385031215610170575f80fd5b61017983610144565b915061018760208401610144565b90509250929050565b61035a8061019d5f395ff3fe608060405234801561000f575f80fd5b5060043610610064575f3560e01c8063715018a61161004d578063715018a6146100c05780638da5cb5b146100c8578063f2fde38b146100e5575f80fd5b80633659cfe6146100685780635c60da1b1461007d575b5f80fd5b61007b610076366004610320565b6100f8565b005b60015473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61007b61010c565b5f5473ffffffffffffffffffffffffffffffffffffffff16610097565b61007b6100f3366004610320565b61011f565b610100610184565b610109816101d6565b50565b610114610184565b61011d5f6102ac565b565b610127610184565b73ffffffffffffffffffffffffffffffffffffffff811661017b576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f60048201526024015b60405180910390fd5b610109816102ac565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461011d576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610172565b8073ffffffffffffffffffffffffffffffffffffffff163b5f0361023e576040517f847ac56400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602401610172565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f60208284031215610330575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610353575f80fd5b939250505056"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b506004361061004a575f3560e01c806301ffc9a71461004e5780632c9b7f40146100765780632f77a1c1146100c25780634904fab3146100e9575b5f80fd5b61006161005c3660046105d0565b6100fc565b60405190151581526020015b60405180910390f35b61009d7f000000000000000000000000913f9edb29dd88314ee1559c18495b5332464d3b81565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161006d565b61009d7f000000000000000000000000bc924b1c3d3f3e038d5bf85710f695bcb22e715281565b61009d6100f736600461075e565b610194565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f4ae8243200000000000000000000000000000000000000000000000000000000148061018e57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b6020810151606001515f9073ffffffffffffffffffffffffffffffffffffffff1615610212576020820151606001516040517ffc47d97600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116600482015260240160405180910390fd5b815173ffffffffffffffffffffffffffffffffffffffff16610260576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7f000000000000000000000000913f9edb29dd88314ee1559c18495b5332464d3b60405161028e906105c3565b73ffffffffffffffffffffffffffffffffffffffff90911681526040602082018190525f90820152606001604051809103905ff0801580156102d2573d5f803e3d5ffd5b5090505f7f000000000000000000000000bc924b1c3d3f3e038d5bf85710f695bcb22e7152604051610303906105c3565b73ffffffffffffffffffffffffffffffffffffffff90911681526040602082018190525f90820152606001604051809103905ff080158015610347573d5f803e3d5ffd5b506040805173ffffffffffffffffffffffffffffffffffffffff80841660208301529293507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc39285169163439fab9191016040516020818303038152906040526040518263ffffffff1660e01b81526004016103c39190610894565b6020604051808303815f875af11580156103df573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061040391906108a6565b1461043a576040517f0219069c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8184602001516060019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc38173ffffffffffffffffffffffffffffffffffffffff1663439fab91866040516020016104c491906108bd565b6040516020818303038152906040526040518263ffffffff1660e01b81526004016104ef9190610894565b6020604051808303815f875af115801561050b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061052f91906108a6565b14610566576040517f09c5931500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805133815273ffffffffffffffffffffffffffffffffffffffff838116602083015284168183015290517fa0d99d93cf7a5f89661fa0829369a7e4896e755871efe65440bab2429387d55b9181900360600190a19392505050565b61052f8061096383390190565b5f602082840312156105e0575f80fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461060f575f80fd5b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff8111828210171561066657610666610616565b60405290565b6040516080810167ffffffffffffffff8111828210171561066657610666610616565b803573ffffffffffffffffffffffffffffffffffffffff811681146106b2575f80fd5b919050565b5f82601f8301126106c6575f80fd5b813567ffffffffffffffff808211156106e1576106e1610616565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561072757610727610616565b8160405283815286602085880101111561073f575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f6020828403121561076e575f80fd5b813567ffffffffffffffff80821115610785575f80fd5b9083019060408286031215610798575f80fd5b6107a0610643565b6107a98361068f565b81526020830135828111156107bc575f80fd5b9290920191608083870312156107d0575f80fd5b6107d861066c565b6107e18461068f565b81526020840135838111156107f4575f80fd5b610800888287016106b7565b602083015250604084013583811115610817575f80fd5b610823888287016106b7565b6040830152506108356060850161068f565b6060820152602082015295945050505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f61060f6020830184610848565b5f602082840312156108b6575f80fd5b5051919050565b602081525f73ffffffffffffffffffffffffffffffffffffffff8084511660208401526020840151604080850152818151166060850152602081015160808086015261090c60e0860182610848565b905060408201517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08683030160a08701526109478282610848565b9150508260608301511660c08601528093505050509291505056fe60a060405260405161052f38038061052f83398101604081905261002291610331565b61002c828261003e565b506001600160a01b031660805261040d565b610047826100fb565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a28051156100ef576100ea826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e491906103ed565b82610209565b505050565b6100f76102aa565b5050565b806001600160a01b03163b5f0361013557604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b815290515f92841691635c60da1b9160048083019260209291908290030181865afa1580156101ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d291906103ed565b9050806001600160a01b03163b5f036100f757604051634c9c8ce360e01b81526001600160a01b038216600482015260240161012c565b60605f61021684846102cb565b905080801561023757505f3d118061023757505f846001600160a01b03163b115b1561024c576102446102de565b9150506102a4565b801561027657604051639996b31560e01b81526001600160a01b038516600482015260240161012c565b3d15610289576102846102f7565b6102a2565b60405163d6bda27560e01b815260040160405180910390fd5b505b92915050565b34156102c95760405163b398979f60e01b815260040160405180910390fd5b565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b6040513d5f823e3d81fd5b80516001600160a01b0381168114610318575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215610342575f80fd5b61034b83610302565b60208401519092506001600160401b0380821115610367575f80fd5b818501915085601f83011261037a575f80fd5b81518181111561038c5761038c61031d565b604051601f8201601f19908116603f011681019083821181831017156103b4576103b461031d565b816040528281528860208487010111156103cc575f80fd5b8260208601602083015e5f6020848301015280955050505050509250929050565b5f602082840312156103fd575f80fd5b61040682610302565b9392505050565b60805161010b6104245f395f6023015261010b5ff3fe608060405261000c61000e565b005b61001e610019610020565b6100b3565b565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561008a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100ae91906100d1565b905090565b365f80375f80365f845af43d5f803e8080156100cd573d5ff35b3d5ffd5b5f602082840312156100e1575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610104575f80fd5b939250505056"; diff --git a/src/generated/0_1_4/StoxOffchainAssetReceiptVaultPaymentMintAuthorizerV1.pointers.sol b/src/generated/0_1_4/StoxOffchainAssetReceiptVaultPaymentMintAuthorizerV1.pointers.sol deleted file mode 100644 index f343350f..00000000 --- a/src/generated/0_1_4/StoxOffchainAssetReceiptVaultPaymentMintAuthorizerV1.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x4d94318cde48f1bc20f97e00aefad84bfb7c9db15c81b882862e127b05e06e15); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0xeaD68E489Cb19453b294dc46a3A5710b0d46d17F); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"6080604052348015600e575f80fd5b506015601f565b601b601f565b60cf565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615606e5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460cc5780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b612650806100dc5f395ff3fe608060405234801561000f575f80fd5b5060043610610115575f3560e01c806359f89dda116100ad578063a086e1751161007d578063a4c9d30011610063578063a4c9d3001461030a578063d547741f14610312578063f2fde38b14610325575f80fd5b8063a086e175146102fb578063a217fddf14610303575f80fd5b806359f89dda14610281578063715018a6146102945780638da5cb5b1461029c57806391d14854146102a4575f80fd5b80633013ce29116100e85780633013ce29146101c8578063325cd7961461020c57806336568abe1461025b578063439fab911461026e575f80fd5b806301ffc9a71461011957806304a0db2014610141578063248a9ca3146101725780632f2ff15d146101b3575b5f80fd5b61012c610127366004611eec565b610338565b60405190151581526020015b60405180910390f35b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3202545b604051908152602001610138565b610164610180366004611f2b565b5f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b6101c66101c1366004611f56565b61042b565b005b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3201546001600160a01b03165b6040516001600160a01b039091168152602001610138565b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b32015474010000000000000000000000000000000000000000900460ff1660405160ff9091168152602001610138565b6101c6610269366004611f56565b610474565b61016461027c3660046120a7565b6104c5565b6101c661028f3660046120d9565b610a55565b6101c6610e31565b6101f4610e44565b61012c6102b2366004611f56565b5f9182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6101f4610e78565b6101645f81565b6101c6610ea0565b6101c6610320366004611f56565b610f69565b6101c661033336600461212e565b610fac565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f59f89dda0000000000000000000000000000000000000000000000000000000014806103ca57507fffffffff0000000000000000000000000000000000000000000000000000000082167f439fab9100000000000000000000000000000000000000000000000000000000145b8061041657507fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000145b80610425575061042582610fff565b92915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015461046481611095565b61046e838361109f565b50505050565b6001600160a01b03811633146104b6576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104c08282611190565b505050565b5f806104cf611252565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156104fb5750825b90505f8267ffffffffffffffff1660011480156105175750303b155b905081158015610525575080155b1561055c576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156105bd5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b5f878060200190518101906105d29190612149565b80519091506001600160a01b0316610616576040517fa7d26c7300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60208101516001600160a01b031661065a576040517f364467d300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408101516001600160a01b031661069e576040517f3731597600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60608101516001600160a01b03166106e2576040517ff10d418200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80608001515f0361071f576040517f7e0eb2bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80517f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b320080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b039384161782556020808501517f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b32038054841691861691909117905560608501517f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b320180549093169416938417909155604080517f313ce567000000000000000000000000000000000000000000000000000000008152905192935f93909263313ce56792600480820193918290030181865afa158015610830573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061085491906121ba565b6001830180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000060ff8416021790556080840151600284015560408401519091506108b59061127a565b7fbf322f47f534976d35baa3292f4fd04bf379264783a734383401b0e6e51cb16d835f0151846020015185604001518660600151858860800151604051610939969594939291906001600160a01b039687168152948616602086015292851660408501529316606083015260ff92909216608082015260a081019190915260c00190565b60405180910390a1610965604051806020016040528085604001516001600160a01b031681525061128b565b506109947f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc028460400151611190565b506109c37fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d38460400151611190565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc398505050508315610a4b5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b320080546001600160a01b0316338114610ac9578484846040517f3ae4063b000000000000000000000000000000000000000000000000000000008152600401610ac0939291906121da565b60405180910390fd5b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8218403610e1f575f83806020019051810190610b059190612226565b60018481015460808301519293506001600160a01b038116927401000000000000000000000000000000000000000090910460ff16915f91610b48918490611626565b90505f836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b87573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bab91906121ba565b60ff169050828114610bf3576040517fe420d7af0000000000000000000000000000000000000000000000000000000081526004810184905260248101829052604401610ac0565b5f866001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c30573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c549190612312565b90508760020154811115610ca45760028801546040517f86529caa000000000000000000000000000000000000000000000000000000008152600481019190915260248101829052604401610ac0565b825f03610d045785516040517f3ae4063b000000000000000000000000000000000000000000000000000000008152610ac091907f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f821908c906004016121da565b8551610d1c906001600160a01b0387169030866116ad565b600388015486516040517fdb8554fc0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201524260248201525f92919091169063db8554fc90604401602060405180830381865afa158015610d8a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dae9190612312565b905060028114610e115786516040517f3ae4063b000000000000000000000000000000000000000000000000000000008152610ac091907f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f821908d906004016121da565b505050505050505050505050565b610e2a8585856116fc565b5050505050565b610e39611a38565b610e425f611a83565b565b5f807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b5f807f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3200610e68565b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3200610f66610ecc610e44565b60018301546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015610f2d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f519190612312565b60018401546001600160a01b03169190611b0b565b50565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020526040902060010154610fa281611095565b61046e8383611190565b610fb4611a38565b6001600160a01b038116610ff6576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f6004820152602401610ac0565b610f6681611a83565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061042557507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610425565b610f668133611b59565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff16611180575f848152602082815260408083206001600160a01b0387168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556111363390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610425565b5f915050610425565b5092915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff1615611180575f848152602082815260408083206001600160a01b038716808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610425565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610425565b611282611be9565b610f6681611c27565b5f611294611c2f565b81516001600160a01b03166112d5576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61131f7f50a07cb25d0d864370863300b20987dfdae089abad71b607faf639d09d0533917f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b611c37565b6113497f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b80611c37565b6113937f3dd35eca0ca8a128757fa464a5dfa4ad6cc4853cad96dce4e90fdbea4f0a52e37f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d611c37565b6113bd7f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d80611c37565b6114077f54f0af3716c79b30b8c228679d31d77a1a5f526c16af3262730e0a8de4363fed7fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c611c37565b6114317fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c80611c37565b61147b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8217f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02611c37565b6114a57f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc0280611c37565b6114ef7f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e9828697fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3611c37565b6115197fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d380611c37565b6115467f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b835f015161109f565b506115747f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d835f015161109f565b506115a27fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c835f015161109f565b506115d07f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02835f015161109f565b506115fe7fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3835f015161109f565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc392915050565b5f826012111561165a5760128390036001831615611650576116488582611cd8565b9150506116a6565b6116488582611d24565b60128311156116a3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee83016002831615611699576116488582611d4e565b6116488582611d9e565b50825b9392505050565b6116bb848484846001611dcd565b61046e576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610ac0565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a82148061174957507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a4882145b156119b2575f805f7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a85036117a9575f8480602001905181019061178d919061233d565b9050805f015193508060200151925080606001519150506117d5565b5f848060200190518101906117be9190612432565b805160208201516080909201519095509093509150505b80156119aa576001600160a01b03831615801561182857506001600160a01b0382165f9081527f96f78a99f93d631b75bc050854c9b764642c10564e41ed27c197a36ddabb1df9602052604090205460ff165b8061187b57506001600160a01b03821615801561187b57506001600160a01b0383165f9081527f3907f76fa0fb1e5d0f263c5c4fe4316026052cf960c55a1c768106d8b9701c10602052604090205460ff165b1561188857505050505050565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a851480156118ed57506001600160a01b0386165f9081527f6ba48721fcbb2613af13d8285fe9ee4a081f7995464037bb5ea27397912881d2602052604090205460ff165b8061195857507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a488514801561195857506001600160a01b0386165f9081527f29e42896fa6edf5a5d7ff0bcd00acffbece6eb6cc7b44d0807bfd84929cc6e1b602052604090205460ff165b1561196557505050505050565b6040517ffe720f780000000000000000000000000000000000000000000000000000000081526001600160a01b03808516600483015283166024820152604401610ac0565b505050505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038716845290915290205460ff1615611a0057505050565b8282826040517f3ae4063b000000000000000000000000000000000000000000000000000000008152600401610ac0939291906121da565b33611a41610e44565b6001600160a01b031614610e42576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610ac0565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b611b188383836001611e53565b6104c0576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610ac0565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038516845290915290205460ff16611be5576040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015260248101839052604401610ac0565b5050565b611bf1611ece565b610e42576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fb4611be9565b610e42611be9565b7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268005f611c90845f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b5f85815260208490526040808220600101869055519192508491839187917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a450505050565b5f604e8210611cfa578215611cee576001611cf0565b5f5b60ff169050610425565b600a82900a808481611d0e57611d0e6124f4565b0491508082028414611189575060010192915050565b5f604e821015611d465781600a0a8381611d4057611d406124f4565b046116a6565b5f9392505050565b5f604e8210611d6d578215611d64575f19611d66565b5f5b9050610425565b50600a81900a8281029083818381611d8757611d876124f4565b0414611d94575f19611d96565b815b949350505050565b600a81900a611dad818461254e565b9050604e8210610425578215611d4657611dc882600a612645565b6116a6565b6040517f23b872dd000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038781166004528616602452604485905291602083606481808c5af1925060015f51148316611e42578383151615611e36573d5f823e3d81fd5b5f883b113d1516831692505b604052505f60605295945050505050565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f51148316611ec2578383151615611eb6573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b5f611ed7611252565b5468010000000000000000900460ff16919050565b5f60208284031215611efc575f80fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146116a6575f80fd5b5f60208284031215611f3b575f80fd5b5035919050565b6001600160a01b0381168114610f66575f80fd5b5f8060408385031215611f67575f80fd5b823591506020830135611f7981611f42565b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60405160a0810167ffffffffffffffff81118282101715611fd457611fd4611f84565b60405290565b60405160c0810167ffffffffffffffff81118282101715611fd457611fd4611f84565b604051601f8201601f1916810167ffffffffffffffff8111828210171561202657612026611f84565b604052919050565b5f67ffffffffffffffff82111561204757612047611f84565b50601f01601f191660200190565b5f82601f830112612064575f80fd5b81356120776120728261202e565b611ffd565b81815284602083860101111561208b575f80fd5b816020850160208301375f918101602001919091529392505050565b5f602082840312156120b7575f80fd5b813567ffffffffffffffff8111156120cd575f80fd5b611d9684828501612055565b5f805f606084860312156120eb575f80fd5b83356120f681611f42565b925060208401359150604084013567ffffffffffffffff811115612118575f80fd5b61212486828701612055565b9150509250925092565b5f6020828403121561213e575f80fd5b81356116a681611f42565b5f60a08284031215612159575f80fd5b612161611fb1565b825161216c81611f42565b8152602083015161217c81611f42565b6020820152604083015161218f81611f42565b604082015260608301516121a281611f42565b60608201526080928301519281019290925250919050565b5f602082840312156121ca575f80fd5b815160ff811681146116a6575f80fd5b6001600160a01b0384168152826020820152606060408201525f82518060608401528060208501608085015e5f608082850101526080601f19601f830116840101915050949350505050565b5f6020808385031215612237575f80fd5b825167ffffffffffffffff8082111561224e575f80fd5b9084019060c08287031215612261575f80fd5b612269611fda565b825161227481611f42565b81528284015161228381611f42565b80858301525060408301516040820152606083015160608201526080830151608082015260a0830151828111156122b8575f80fd5b80840193505086601f8401126122cc575f80fd5b825191506122dc6120728361202e565b82815287858486010111156122ef575f80fd5b828585018683015e5f8584830101528060a0830152508094505050505092915050565b5f60208284031215612322575f80fd5b5051919050565b80518015158114612338575f80fd5b919050565b5f6080828403121561234d575f80fd5b6040516080810181811067ffffffffffffffff8211171561237057612370611f84565b604052825161237e81611f42565b8152602083015161238e81611f42565b6020820152604083810151908201526123a960608401612329565b60608201529392505050565b5f82601f8301126123c4575f80fd5b8151602067ffffffffffffffff8211156123e0576123e0611f84565b8160051b6123ef828201611ffd565b9283528481018201928281019087851115612408575f80fd5b83870192505b848310156124275782518252918301919083019061240e565b979650505050505050565b5f60208284031215612442575f80fd5b815167ffffffffffffffff80821115612459575f80fd5b9083019060a0828603121561246c575f80fd5b612474611fb1565b825161247f81611f42565b8152602083015161248f81611f42565b60208201526040830151828111156124a5575f80fd5b6124b1878286016123b5565b6040830152506060830151828111156124c8575f80fd5b6124d4878286016123b5565b6060830152506124e660808401612329565b608082015295945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b808202811582820484141761042557610425612521565b600181815b8085111561259f57815f190482111561258557612585612521565b8085161561259257918102915b93841c939080029061256a565b509250929050565b5f826125b557506001610425565b816125c157505f610425565b81600181146125d757600281146125e1576125fd565b6001915050610425565b60ff8411156125f2576125f2612521565b50506001821b610425565b5060208310610133831016604e8410600b8410161715612620575081810a610425565b61262a8383612565565b805f190482111561263d5761263d612521565b029392505050565b5f6116a683836125a756"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b5060043610610115575f3560e01c806359f89dda116100ad578063a086e1751161007d578063a4c9d30011610063578063a4c9d3001461030a578063d547741f14610312578063f2fde38b14610325575f80fd5b8063a086e175146102fb578063a217fddf14610303575f80fd5b806359f89dda14610281578063715018a6146102945780638da5cb5b1461029c57806391d14854146102a4575f80fd5b80633013ce29116100e85780633013ce29146101c8578063325cd7961461020c57806336568abe1461025b578063439fab911461026e575f80fd5b806301ffc9a71461011957806304a0db2014610141578063248a9ca3146101725780632f2ff15d146101b3575b5f80fd5b61012c610127366004611eec565b610338565b60405190151581526020015b60405180910390f35b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3202545b604051908152602001610138565b610164610180366004611f2b565b5f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b6101c66101c1366004611f56565b61042b565b005b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3201546001600160a01b03165b6040516001600160a01b039091168152602001610138565b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b32015474010000000000000000000000000000000000000000900460ff1660405160ff9091168152602001610138565b6101c6610269366004611f56565b610474565b61016461027c3660046120a7565b6104c5565b6101c661028f3660046120d9565b610a55565b6101c6610e31565b6101f4610e44565b61012c6102b2366004611f56565b5f9182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6101f4610e78565b6101645f81565b6101c6610ea0565b6101c6610320366004611f56565b610f69565b6101c661033336600461212e565b610fac565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f59f89dda0000000000000000000000000000000000000000000000000000000014806103ca57507fffffffff0000000000000000000000000000000000000000000000000000000082167f439fab9100000000000000000000000000000000000000000000000000000000145b8061041657507fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000145b80610425575061042582610fff565b92915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015461046481611095565b61046e838361109f565b50505050565b6001600160a01b03811633146104b6576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104c08282611190565b505050565b5f806104cf611252565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156104fb5750825b90505f8267ffffffffffffffff1660011480156105175750303b155b905081158015610525575080155b1561055c576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156105bd5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b5f878060200190518101906105d29190612149565b80519091506001600160a01b0316610616576040517fa7d26c7300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60208101516001600160a01b031661065a576040517f364467d300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408101516001600160a01b031661069e576040517f3731597600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60608101516001600160a01b03166106e2576040517ff10d418200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80608001515f0361071f576040517f7e0eb2bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80517f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b320080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b039384161782556020808501517f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b32038054841691861691909117905560608501517f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b320180549093169416938417909155604080517f313ce567000000000000000000000000000000000000000000000000000000008152905192935f93909263313ce56792600480820193918290030181865afa158015610830573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061085491906121ba565b6001830180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000060ff8416021790556080840151600284015560408401519091506108b59061127a565b7fbf322f47f534976d35baa3292f4fd04bf379264783a734383401b0e6e51cb16d835f0151846020015185604001518660600151858860800151604051610939969594939291906001600160a01b039687168152948616602086015292851660408501529316606083015260ff92909216608082015260a081019190915260c00190565b60405180910390a1610965604051806020016040528085604001516001600160a01b031681525061128b565b506109947f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc028460400151611190565b506109c37fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d38460400151611190565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc398505050508315610a4b5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b320080546001600160a01b0316338114610ac9578484846040517f3ae4063b000000000000000000000000000000000000000000000000000000008152600401610ac0939291906121da565b60405180910390fd5b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8218403610e1f575f83806020019051810190610b059190612226565b60018481015460808301519293506001600160a01b038116927401000000000000000000000000000000000000000090910460ff16915f91610b48918490611626565b90505f836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b87573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bab91906121ba565b60ff169050828114610bf3576040517fe420d7af0000000000000000000000000000000000000000000000000000000081526004810184905260248101829052604401610ac0565b5f866001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c30573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c549190612312565b90508760020154811115610ca45760028801546040517f86529caa000000000000000000000000000000000000000000000000000000008152600481019190915260248101829052604401610ac0565b825f03610d045785516040517f3ae4063b000000000000000000000000000000000000000000000000000000008152610ac091907f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f821908c906004016121da565b8551610d1c906001600160a01b0387169030866116ad565b600388015486516040517fdb8554fc0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201524260248201525f92919091169063db8554fc90604401602060405180830381865afa158015610d8a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dae9190612312565b905060028114610e115786516040517f3ae4063b000000000000000000000000000000000000000000000000000000008152610ac091907f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f821908d906004016121da565b505050505050505050505050565b610e2a8585856116fc565b5050505050565b610e39611a38565b610e425f611a83565b565b5f807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b5f807f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3200610e68565b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3200610f66610ecc610e44565b60018301546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015610f2d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f519190612312565b60018401546001600160a01b03169190611b0b565b50565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020526040902060010154610fa281611095565b61046e8383611190565b610fb4611a38565b6001600160a01b038116610ff6576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f6004820152602401610ac0565b610f6681611a83565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061042557507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610425565b610f668133611b59565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff16611180575f848152602082815260408083206001600160a01b0387168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556111363390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610425565b5f915050610425565b5092915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff1615611180575f848152602082815260408083206001600160a01b038716808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610425565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610425565b611282611be9565b610f6681611c27565b5f611294611c2f565b81516001600160a01b03166112d5576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61131f7f50a07cb25d0d864370863300b20987dfdae089abad71b607faf639d09d0533917f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b611c37565b6113497f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b80611c37565b6113937f3dd35eca0ca8a128757fa464a5dfa4ad6cc4853cad96dce4e90fdbea4f0a52e37f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d611c37565b6113bd7f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d80611c37565b6114077f54f0af3716c79b30b8c228679d31d77a1a5f526c16af3262730e0a8de4363fed7fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c611c37565b6114317fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c80611c37565b61147b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8217f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02611c37565b6114a57f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc0280611c37565b6114ef7f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e9828697fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3611c37565b6115197fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d380611c37565b6115467f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b835f015161109f565b506115747f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d835f015161109f565b506115a27fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c835f015161109f565b506115d07f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02835f015161109f565b506115fe7fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3835f015161109f565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc392915050565b5f826012111561165a5760128390036001831615611650576116488582611cd8565b9150506116a6565b6116488582611d24565b60128311156116a3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee83016002831615611699576116488582611d4e565b6116488582611d9e565b50825b9392505050565b6116bb848484846001611dcd565b61046e576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610ac0565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a82148061174957507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a4882145b156119b2575f805f7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a85036117a9575f8480602001905181019061178d919061233d565b9050805f015193508060200151925080606001519150506117d5565b5f848060200190518101906117be9190612432565b805160208201516080909201519095509093509150505b80156119aa576001600160a01b03831615801561182857506001600160a01b0382165f9081527f96f78a99f93d631b75bc050854c9b764642c10564e41ed27c197a36ddabb1df9602052604090205460ff165b8061187b57506001600160a01b03821615801561187b57506001600160a01b0383165f9081527f3907f76fa0fb1e5d0f263c5c4fe4316026052cf960c55a1c768106d8b9701c10602052604090205460ff165b1561188857505050505050565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a851480156118ed57506001600160a01b0386165f9081527f6ba48721fcbb2613af13d8285fe9ee4a081f7995464037bb5ea27397912881d2602052604090205460ff165b8061195857507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a488514801561195857506001600160a01b0386165f9081527f29e42896fa6edf5a5d7ff0bcd00acffbece6eb6cc7b44d0807bfd84929cc6e1b602052604090205460ff165b1561196557505050505050565b6040517ffe720f780000000000000000000000000000000000000000000000000000000081526001600160a01b03808516600483015283166024820152604401610ac0565b505050505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038716845290915290205460ff1615611a0057505050565b8282826040517f3ae4063b000000000000000000000000000000000000000000000000000000008152600401610ac0939291906121da565b33611a41610e44565b6001600160a01b031614610e42576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610ac0565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b611b188383836001611e53565b6104c0576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610ac0565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038516845290915290205460ff16611be5576040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015260248101839052604401610ac0565b5050565b611bf1611ece565b610e42576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fb4611be9565b610e42611be9565b7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268005f611c90845f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b5f85815260208490526040808220600101869055519192508491839187917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a450505050565b5f604e8210611cfa578215611cee576001611cf0565b5f5b60ff169050610425565b600a82900a808481611d0e57611d0e6124f4565b0491508082028414611189575060010192915050565b5f604e821015611d465781600a0a8381611d4057611d406124f4565b046116a6565b5f9392505050565b5f604e8210611d6d578215611d64575f19611d66565b5f5b9050610425565b50600a81900a8281029083818381611d8757611d876124f4565b0414611d94575f19611d96565b815b949350505050565b600a81900a611dad818461254e565b9050604e8210610425578215611d4657611dc882600a612645565b6116a6565b6040517f23b872dd000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038781166004528616602452604485905291602083606481808c5af1925060015f51148316611e42578383151615611e36573d5f823e3d81fd5b5f883b113d1516831692505b604052505f60605295945050505050565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f51148316611ec2578383151615611eb6573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b5f611ed7611252565b5468010000000000000000900460ff16919050565b5f60208284031215611efc575f80fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146116a6575f80fd5b5f60208284031215611f3b575f80fd5b5035919050565b6001600160a01b0381168114610f66575f80fd5b5f8060408385031215611f67575f80fd5b823591506020830135611f7981611f42565b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60405160a0810167ffffffffffffffff81118282101715611fd457611fd4611f84565b60405290565b60405160c0810167ffffffffffffffff81118282101715611fd457611fd4611f84565b604051601f8201601f1916810167ffffffffffffffff8111828210171561202657612026611f84565b604052919050565b5f67ffffffffffffffff82111561204757612047611f84565b50601f01601f191660200190565b5f82601f830112612064575f80fd5b81356120776120728261202e565b611ffd565b81815284602083860101111561208b575f80fd5b816020850160208301375f918101602001919091529392505050565b5f602082840312156120b7575f80fd5b813567ffffffffffffffff8111156120cd575f80fd5b611d9684828501612055565b5f805f606084860312156120eb575f80fd5b83356120f681611f42565b925060208401359150604084013567ffffffffffffffff811115612118575f80fd5b61212486828701612055565b9150509250925092565b5f6020828403121561213e575f80fd5b81356116a681611f42565b5f60a08284031215612159575f80fd5b612161611fb1565b825161216c81611f42565b8152602083015161217c81611f42565b6020820152604083015161218f81611f42565b604082015260608301516121a281611f42565b60608201526080928301519281019290925250919050565b5f602082840312156121ca575f80fd5b815160ff811681146116a6575f80fd5b6001600160a01b0384168152826020820152606060408201525f82518060608401528060208501608085015e5f608082850101526080601f19601f830116840101915050949350505050565b5f6020808385031215612237575f80fd5b825167ffffffffffffffff8082111561224e575f80fd5b9084019060c08287031215612261575f80fd5b612269611fda565b825161227481611f42565b81528284015161228381611f42565b80858301525060408301516040820152606083015160608201526080830151608082015260a0830151828111156122b8575f80fd5b80840193505086601f8401126122cc575f80fd5b825191506122dc6120728361202e565b82815287858486010111156122ef575f80fd5b828585018683015e5f8584830101528060a0830152508094505050505092915050565b5f60208284031215612322575f80fd5b5051919050565b80518015158114612338575f80fd5b919050565b5f6080828403121561234d575f80fd5b6040516080810181811067ffffffffffffffff8211171561237057612370611f84565b604052825161237e81611f42565b8152602083015161238e81611f42565b6020820152604083810151908201526123a960608401612329565b60608201529392505050565b5f82601f8301126123c4575f80fd5b8151602067ffffffffffffffff8211156123e0576123e0611f84565b8160051b6123ef828201611ffd565b9283528481018201928281019087851115612408575f80fd5b83870192505b848310156124275782518252918301919083019061240e565b979650505050505050565b5f60208284031215612442575f80fd5b815167ffffffffffffffff80821115612459575f80fd5b9083019060a0828603121561246c575f80fd5b612474611fb1565b825161247f81611f42565b8152602083015161248f81611f42565b60208201526040830151828111156124a5575f80fd5b6124b1878286016123b5565b6040830152506060830151828111156124c8575f80fd5b6124d4878286016123b5565b6060830152506124e660808401612329565b608082015295945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b808202811582820484141761042557610425612521565b600181815b8085111561259f57815f190482111561258557612585612521565b8085161561259257918102915b93841c939080029061256a565b509250929050565b5f826125b557506001610425565b816125c157505f610425565b81600181146125d757600281146125e1576125fd565b6001915050610425565b60ff8411156125f2576125f2612521565b50506001821b610425565b5060208310610133831016604e8410600b8410161715612620575081810a610425565b61262a8383612565565b805f190482111561263d5761263d612521565b029392505050565b5f6116a683836125a756"; diff --git a/src/generated/0_1_4/StoxReceipt.pointers.sol b/src/generated/0_1_4/StoxReceipt.pointers.sol deleted file mode 100644 index ff38583a..00000000 --- a/src/generated/0_1_4/StoxReceipt.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x06fffbad12ea80897d55aab5d4f1cd3f34f674237db44a148cc133334a0cca54); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x2dF5cFE6d688EF9fF1B7c59A499D254b1527b286); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"6080604052348015600e575f80fd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6136e3806100d65f395ff3fe608060405234801561000f575f80fd5b50600436106100fa575f3560e01c8063481c6a7511610093578063a22cb46511610063578063a22cb46514610232578063c2530e3914610245578063e985e9c514610258578063f242432a146102b2575f80fd5b8063481c6a75146101bd5780634e1273f4146101f75780636d5b3f781461021757806395d89b411461022a575f80fd5b80630e89341c116100ce5780630e89341c14610171578063177769cb146101845780632eb2c2d614610197578063439fab91146101aa575f80fd5b8062fdd58e146100fe57806301ffc9a714610124578063043fa9871461014757806306fdde031461015c575b5f80fd5b61011161010c366004612a49565b6102c5565b6040519081526020015b60405180910390f35b610137610132366004612aa0565b6102e1565b604051901515815260200161011b565b61015a610155366004612b79565b6103c3565b005b61016461046a565b60405161011b9190612c29565b61016461017f366004612c3b565b6104cf565b61015a610192366004612c52565b610580565b61015a6101a5366004612d20565b61058f565b6101116101b8366004612dc7565b6105ae565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc200546040516001600160a01b03909116815260200161011b565b61020a610205366004612e01565b6107ae565b60405161011b9190612eed565b61015a610225366004612eff565b6108c5565b610164610975565b61015a610240366004612f63565b6109c6565b61015a610253366004612eff565b6109d1565b610137610266366004612f9e565b6001600160a01b039182165f9081527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45016020908152604080832093909416825291909152205460ff1690565b61015a6102c0366004612eff565b610a37565b5f6102d883836102d3610a4d565b610ab3565b90505b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a2600000000000000000000000000000000000000000000000000000000148061037357507fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000145b806102db57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146102db565b6103cb610b07565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038816179055856104208686868686610b6e565b6104617fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19169055565b50505050505050565b6060610474610c25565b6040518060400160405280600881526020017f20526563656970740000000000000000000000000000000000000000000000008152506040516020016104bb929190612fe1565b604051602081830303815290604052905090565b60605f6104e56104dd610cd3565b60ff16610d78565b6104ed610c25565b6104f5610e15565b6104fd61046a565b6040516020016105109493929190612ff5565b60408051601f19818403018152828201909152601d82527f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c0000006020830152915061055882610ef5565b604051602001610569929190612fe1565b604051602081830303815290604052915050919050565b61058b338383610f01565b5050565b61059a335b86610f49565b6105a78585858585610ff9565b5050505050565b5f806105b861108c565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156105e45750825b90505f8267ffffffffffffffff1660011480156106005750303b155b90508115801561060e575080155b15610645576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156106a65784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6106bd60405180602001604052805f8152506110b4565b5f7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc20090505f888060200190518101906106f69190613137565b825473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039190911617909155507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc3955083156107a45784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b606081518351146107fd57815183516040517f5b059991000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044015b60405180910390fd5b5f610806610a4d565b90505f845167ffffffffffffffff81111561082357610823612abb565b60405190808252806020026020018201604052801561084c578160200160208202803683370190505b5090505f5b85518110156108bc5761089786828151811061086f5761086f613152565b602002602001015186838151811061088957610889613152565b602002602001015185610ab3565b8282815181106108a9576108a9613152565b6020908102919091010152600101610851565b50949350505050565b6108cd610b07565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03871617905584610920868584610f01565b61092c858585856110c5565b61096d7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19169055565b505050505050565b606061097f610c25565b6040518060400160405280600581526020017f20524350540000000000000000000000000000000000000000000000000000008152506040516020016104bb929190612fe1565b61058b33838361113a565b6109d9610b07565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03871617905584610a2c868584610f01565b61092c85858561124e565b610a4033610594565b6105a78585858585610b6e565b5f306001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a8a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aae9190613137565b905090565b5f80610abf85856112cf565b90505f610aca6112e4565b6001600160a01b0387165f90815260209182526040808220888352909252908120549150610af9838387611345565b5093505050505b9392505050565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc20080546001600160a01b03163314610b6b576040517fc0b2335a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b6001600160a01b038416610bb0576040517f57f447ce0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b038516610bf2576040517f01a835140000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6040805160018082526020820186905281830190815260608201859052608082019092529061046187878484875f6115ed565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc2008054604080517f95d89b410000000000000000000000000000000000000000000000000000000081529051606093926001600160a01b0316916395d89b41916004808301925f9291908290030181865afa158015610ca6573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610ccd919081019061319c565b91505090565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc2008054604080517f313ce56700000000000000000000000000000000000000000000000000000000815290515f93926001600160a01b03169163313ce5679160048083019260209291908290030181865afa158015610d54573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ccd91906131e1565b60605f610d8483611645565b60010190505f8167ffffffffffffffff811115610da357610da3612abb565b6040519080825280601f01601f191660200182016040528015610dcd576020820181803683370190505b5090508181016020015b5f19017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084610dd757509392505050565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc2008054604080517f38d52e0f0000000000000000000000000000000000000000000000000000000081529051606093926001600160a01b0316916338d52e0f9160048083019260209291908290030181865afa158015610e97573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ebb9190613137565b6001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015610ca6573d5f803e3d5ffd5b60606102db825f611726565b805115610f44577fd66d6a9810a5cef78b704e7e04334961e997c81d337f029f74637f060f3d8d65838383604051610f3b93929190613215565b60405180910390a15b505050565b816001600160a01b0316816001600160a01b031614158015610faf57506001600160a01b038082165f9081527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4501602090815260408083209386168352929052205460ff16155b1561058b576040517fe237d9220000000000000000000000000000000000000000000000000000000081526001600160a01b038084166004830152821660248201526044016107f4565b6001600160a01b03841661103b576040517f57f447ce0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b03851661107d576040517f01a835140000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6105a7858585858560016115ed565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006102db565b6110bc6118a5565b610b6b816118e5565b6001600160a01b038416611107576040517f57f447ce0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6040805160018082526020820186905281830190815260608201859052608082019092529061096d5f87848487846115ed565b7f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45006001600160a01b03841661119d576040517f3e31884e0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b0383166111df576040517fced3e1000000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b038481165f818152600184016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a350505050565b6001600160a01b038316611290576040517f01a835140000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b604080516001808252602082018590528183019081526060820184905260a082019092525f608082018181529192916105a791879185908590836115ed565b5f806112db84846118f6565b54949350505050565b5f8060ff1961131460017fedb99b3af8e1c50d494d6f1b4c75245a0b733cb90baa42bfe0e2f5bc8b000f82613259565b60405160200161132691815260200190565b60408051601f1981840301815291905280516020909101201692915050565b6040517f79ba43050000000000000000000000000000000000000000000000000000000081525f9081908490829081906001600160a01b038716906379ba43059061139a90869060039060019060040161326c565b606060405180830381865afa1580156113b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113d991906132a4565b5091509150875f03611496575b5f198214611488576040517f79ba430500000000000000000000000000000000000000000000000000000000815291925082916001600160a01b038716906379ba43059061143e90859060039060019060040161326c565b606060405180830381865afa158015611459573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061147d91906132a4565b5090925090506113e6565b5f83945094505050506115e5565b875b5f1983146115dd5782935060028203611548576040517fb21a2494000000000000000000000000000000000000000000000000000000008152600481018490525f90611538906001600160a01b038a169063b21a2494906024015f60405180830381865afa15801561150c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611533919081019061319c565b61196a565b9050611544828261197f565b9150505b6040517f79ba43050000000000000000000000000000000000000000000000000000000081526001600160a01b038816906379ba43059061159390869060039060019060040161326c565b606060405180830381865afa1580156115ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115d291906132a4565b509093509150611498565b945091925050505b935093915050565b6115f9868686866119fa565b6001600160a01b0385161561096d573381156116225761161d818888888888611a5f565b610461565b6020858101519085015161163a838a8a85858a611bfc565b505050505050505050565b5f807a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061168d577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef810000000083106116b9576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106116d757662386f26fc10000830492506010015b6305f5e10083106116ef576305f5e100830492506008015b612710831061170357612710830492506004015b60648310611715576064830492506002015b600a83106102db5760010192915050565b606082515f03611744575060408051602081019091525f81526102db565b5f826117745760038451600261175a91906132e6565b61176491906132f9565b61176f906004613318565b611799565b6003845160046117849190613318565b61178f9060026132e6565b61179991906132f9565b905060405191507f4142434445464748494a4b4c4d4e4f505152535455565758595a616263646566601f5261067083027f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f18603f526020820181810185865187016020810180515f82525b82841015611857576003840193508351603f8160121c16518753600187019650603f81600c1c16518753600187019650603f8160061c16518753600187019650603f811651875350600186019550611804565b9052508590506118985760038651066001811461187b576002811461188e57611896565b603d6001840353603d6002840353611896565b603d60018403535b505b9183525060405292915050565b6118ad611d46565b6118e3576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6118ed6118a5565b610b6b81611d64565b5f8060ff1961192660017f3a8e79826d53842322cdcc810d4a989eb01ac46cfabfd48dcc021625ce13c2d7613259565b60405160200161193891815260200190565b60408051808303601f1901815291815281516020928301205f9687529290921681528185209585529490945250502090565b5f818060200190518101906102db919061332f565b5f7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8311156119dd576040517fbf463fe9000000000000000000000000000000000000000000000000000000008152600481018490526024016107f4565b5f6108bc6119f46119ee865f611db0565b85611e0a565b5f611e6c565b5f611a03610a4d565b90505f5b8351811015611a5257611a3486858381518110611a2657611a26613152565b602002602001015184611eae565b611a4a85858381518110611a2657611a26613152565b600101611a07565b506105a785858585611fb0565b6001600160a01b0384163b1561096d576040517fbc197c810000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063bc197c8190611abc9089908990889088908890600401613346565b6020604051808303815f875af1925050508015611af6575060408051601f3d908101601f19168201909252611af3918101906133a3565b60015b611b76573d808015611b23576040519150601f19603f3d011682016040523d82523d5f602084013e611b28565b606091505b5080515f03611b6e576040517f57f447ce0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024016107f4565b805160208201fd5b7fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014610461576040517f57f447ce0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024016107f4565b6001600160a01b0384163b1561096d576040517ff23a6e610000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063f23a6e6190611c5990899089908890889088906004016133be565b6020604051808303815f875af1925050508015611c93575060408051601f3d908101601f19168201909252611c90918101906133a3565b60015b611cc0573d808015611b23576040519150601f19603f3d011682016040523d82523d5f602084013e611b28565b7fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014610461576040517f57f447ce0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024016107f4565b5f611d4f61108c565b5468010000000000000000900460ff16919050565b7f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45007f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4502610f44838261347c565b5f805f611dbd8585612063565b9150915080611e02576040517f22c9f7bb00000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016107f4565b509392505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d8480611e4f86868686612169565b915091505f611e5e8383612288565b9a9950505050505050505050565b5f807bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8416601b0b60e085901d611ea08282876122e6565b9350935050505b9250929050565b6001600160a01b038316611ec157505050565b5f611eca6112e4565b6001600160a01b0385165f90815260208281526040808320878452909152812054919250611ef886866112cf565b90505f80611f07838588611345565b91509150838103611f1c575050505050505050565b6001600160a01b0388165f908152602086815260408083208a84529091529020819055818314611f5157611f518888846124ce565b60408051858152602081018390529081018490526060810183905287906001600160a01b038a16907f956b049289f8dbe8716375414d9fa6bf32cde65ec1b7e102623775cacc66a6999060800160405180910390a35050505050505050565b5f611fb96124e2565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc200546040517fe5be7d900000000000000000000000000000000000000000000000000000000081529192506001600160a01b03169063e5be7d909061202a9084908990899089908990600401613538565b5f604051808303815f87803b158015612041575f80fd5b505af1158015612053573d5f803e3d5ffd5b505050506105a785858585612563565b5f601b83900b83148383826120c7577d90e40fbeea1d3a4abc8955e946fe31cdcf66f634e10000000000000000008605156120a757620186a0860595506005850194505b8586601b0b146120c257600a860595508460010194506120a7565b6120dd565b855f036120dd57505f925060019150611ea79050565b848560030b14612139575f8512156120fd57505f9250829150611ea79050565b6040517fd556b11100000000000000000000000000000000000000000000000000000000815260048101839052602481018290526044016107f4565b50507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841660e084901b1791509250929050565b5f8085158415178015612181575f92505f915061227e565b61218b848761357d565b91505f612197886127c7565b90505f6121a3876127c7565b90505f6121b08383612828565b5090505f6f0785ee10d5da46d900f436a0000000008211156121e5576f0785ee10d5da46d900f436a000000000820491506025015b670de0b6b3a764000082111561220657670de0b6b3a7640000820491506012015b633b9aca0082111561221f57633b9aca00820491506009015b61271082111561223457612710820491506004015b811561224857600a82049150600101612234565b612252818761357d565b95506122748b8a61226e878761226987600a613684565b612844565b89612929565b9097509550505050505b5094509492505050565b5f805f6122958585612063565b91509150801580156122a5575081155b15611e02576040517f8eba4d0700000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016107f4565b5f805f85121561232c576040517f4a7d166b00000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016107f4565b845f0361233e57505f905060016115e5565b8460ff8416850185811215612389576040517fd556b11100000000000000000000000000000000000000000000000000000000815260048101889052602481018790526044016107f4565b5f805f8312156123f3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb38312156123ca575f8095509550505050506115e5565b825f03600a0a91508184816123e1576123e1613201565b04955050840290911491506115e59050565b5f8313156124be57604d831315612449576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff881660448201526064016107f4565b82600a0a9150815f198161245f5761245f613201565b048411156124ac576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff881660448201526064016107f4565b50919091029250600191506115e59050565b83600195509550505050506115e5565b5f6124d984846118f6565b91909155505050565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201545f907fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc200906001600160a01b03168061253e57339250505090565b6001909101805473ffffffffffffffffffffffffffffffffffffffff19169055919050565b805182517f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c450091146125cd57825182516040517f5b059991000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016107f4565b335f5b84518110156126e8576020818102868101820151908601909101516001600160a01b0389161561269a575f828152602086815260408083206001600160a01b038d16845290915290205481811015612674576040517f03dee4c50000000000000000000000000000000000000000000000000000000081526001600160a01b038b1660048201526024810182905260448101839052606481018490526084016107f4565b5f838152602087815260408083206001600160a01b038e16845290915290209082900390555b6001600160a01b038816156126de575f828152602086815260408083206001600160a01b038c168452909152812080548392906126d89084906132e6565b90915550505b50506001016125d0565b5083516001036127685760208401515f906020850151909150866001600160a01b0316886001600160a01b0316846001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051612759929190918252602082015260400190565b60405180910390a4505061096d565b846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516127b792919061368f565b60405180910390a4505050505050565b5f80821215612824577f8000000000000000000000000000000000000000000000000000000000000000820361281e57507f8000000000000000000000000000000000000000000000000000000000000000919050565b505f0390565b5090565b5f805f1983850993909202808410938190039390930393915050565b5f805f6128518686612828565b91509150815f036128755783818161286b5761286b613201565b0492505050610b00565b8382106128bf576040517f6c59da120000000000000000000000000000000000000000000000000000000081526004810187905260248101869052604481018590526064016107f4565b5f84868809600186198101871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103025f82900382900490920185841190960395909502919093039390930492909217029150509392505050565b5f805f85871812156129f3577f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8411156129e0576129887f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60016132e6565b84036129b857507f8000000000000000000000000000000000000000000000000000000000000000905081612a2c565b6129c3600a856132f9565b6129cc906136b3565b6129d784600161357d565b91509150612a2c565b6129e9846136b3565b8391509150612a2c565b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841115612a26576129cc600a856132f9565b50829050815b94509492505050565b6001600160a01b0381168114610b6b575f80fd5b5f8060408385031215612a5a575f80fd5b8235612a6581612a35565b946020939093013593505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114610b6b575f80fd5b5f60208284031215612ab0575f80fd5b8135610b0081612a73565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612af857612af8612abb565b604052919050565b5f67ffffffffffffffff821115612b1957612b19612abb565b50601f01601f191660200190565b5f82601f830112612b36575f80fd5b8135612b49612b4482612b00565b612acf565b818152846020838601011115612b5d575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f8060c08789031215612b8e575f80fd5b8635612b9981612a35565b95506020870135612ba981612a35565b94506040870135612bb981612a35565b9350606087013592506080870135915060a087013567ffffffffffffffff811115612be2575f80fd5b612bee89828a01612b27565b9150509295509295509295565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6102d86020830184612bfb565b5f60208284031215612c4b575f80fd5b5035919050565b5f8060408385031215612c63575f80fd5b82359150602083013567ffffffffffffffff811115612c80575f80fd5b612c8c85828601612b27565b9150509250929050565b5f67ffffffffffffffff821115612caf57612caf612abb565b5060051b60200190565b5f82601f830112612cc8575f80fd5b81356020612cd8612b4483612c96565b8083825260208201915060208460051b870101935086841115612cf9575f80fd5b602086015b84811015612d155780358352918301918301612cfe565b509695505050505050565b5f805f805f60a08688031215612d34575f80fd5b8535612d3f81612a35565b94506020860135612d4f81612a35565b9350604086013567ffffffffffffffff80821115612d6b575f80fd5b612d7789838a01612cb9565b94506060880135915080821115612d8c575f80fd5b612d9889838a01612cb9565b93506080880135915080821115612dad575f80fd5b50612dba88828901612b27565b9150509295509295909350565b5f60208284031215612dd7575f80fd5b813567ffffffffffffffff811115612ded575f80fd5b612df984828501612b27565b949350505050565b5f8060408385031215612e12575f80fd5b823567ffffffffffffffff80821115612e29575f80fd5b818501915085601f830112612e3c575f80fd5b81356020612e4c612b4483612c96565b82815260059290921b84018101918181019089841115612e6a575f80fd5b948201945b83861015612e91578535612e8281612a35565b82529482019490820190612e6f565b96505086013592505080821115612ea6575f80fd5b50612c8c85828601612cb9565b5f815180845260208085019450602084015f5b83811015612ee257815187529582019590820190600101612ec6565b509495945050505050565b602081525f6102d86020830184612eb3565b5f805f805f60a08688031215612f13575f80fd5b8535612f1e81612a35565b94506020860135612f2e81612a35565b93506040860135925060608601359150608086013567ffffffffffffffff811115612f57575f80fd5b612dba88828901612b27565b5f8060408385031215612f74575f80fd5b8235612f7f81612a35565b915060208301358015158114612f93575f80fd5b809150509250929050565b5f8060408385031215612faf575f80fd5b8235612fba81612a35565b91506020830135612f9381612a35565b5f81518060208401855e5f93019283525090919050565b5f612df9612fef8386612fca565b84612fca565b7f7b22646563696d616c73223a000000000000000000000000000000000000000081525f613026600c830187612fca565b7f2c226465736372697074696f6e223a2231206f6620746865736520726563656981527f7074732063616e206265206275726e656420616c6f6e67736964652031200000602082015261307c603e820187612fca565b90507f20746f2072656465656d2000000000000000000000000000000000000000000081526130ae600b820186612fca565b90507f2066726f6d20746865207661756c742e222c000000000000000000000000000081527f226e616d65223a220000000000000000000000000000000000000000000000006012820152613106601a820185612fca565b7f227d0000000000000000000000000000000000000000000000000000000000008152600201979650505050505050565b5f60208284031215613147575f80fd5b8151610b0081612a35565b634e487b7160e01b5f52603260045260245ffd5b5f613173612b4484612b00565b9050828152838383011115613186575f80fd5b8282602083015e5f602084830101529392505050565b5f602082840312156131ac575f80fd5b815167ffffffffffffffff8111156131c2575f80fd5b8201601f810184136131d2575f80fd5b612df984825160208401613166565b5f602082840312156131f1575f80fd5b815160ff81168114610b00575f80fd5b634e487b7160e01b5f52601260045260245ffd5b6001600160a01b0384168152826020820152606060408201525f61323c6060830184612bfb565b95945050505050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156102db576102db613245565b83815260208101839052606081016003831061329657634e487b7160e01b5f52602160045260245ffd5b826040830152949350505050565b5f805f606084860312156132b6575f80fd5b8351925060208401519150604084015167ffffffffffffffff811681146132db575f80fd5b809150509250925092565b808201808211156102db576102db613245565b5f8261331357634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176102db576102db613245565b5f6020828403121561333f575f80fd5b5051919050565b5f6001600160a01b03808816835280871660208401525060a0604083015261337160a0830186612eb3565b82810360608401526133838186612eb3565b905082810360808401526133978185612bfb565b98975050505050505050565b5f602082840312156133b3575f80fd5b8151610b0081612a73565b5f6001600160a01b03808816835280871660208401525084604083015283606083015260a060808301526133f560a0830184612bfb565b979650505050505050565b600181811c9082168061341457607f821691505b60208210810361343257634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115610f4457805f5260205f20601f840160051c8101602085101561345d5750805b601f840160051c820191505b818110156105a7575f8155600101613469565b815167ffffffffffffffff81111561349657613496612abb565b6134aa816134a48454613400565b84613438565b602080601f8311600181146134dd575f84156134c65750858301515b5f19600386901b1c1916600185901b17855561096d565b5f85815260208120601f198616915b8281101561350b578886015182559484019460019091019084016134ec565b508582101561352857878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f6001600160a01b038088168352808716602084015280861660408401525060a0606083015261356b60a0830185612eb3565b82810360808401526133978185612eb3565b8082018281125f83128015821682158216171561359c5761359c613245565b505092915050565b600181815b808511156135de57815f19048211156135c4576135c4613245565b808516156135d157918102915b93841c93908002906135a9565b509250929050565b5f826135f4575060016102db565b8161360057505f6102db565b816001811461361657600281146136205761363c565b60019150506102db565b60ff84111561363157613631613245565b50506001821b6102db565b5060208310610133831016604e8410600b841016171561365f575081810a6102db565b61366983836135a4565b805f190482111561367c5761367c613245565b029392505050565b5f6102d883836135e6565b604081525f6136a16040830185612eb3565b828103602084015261323c8185612eb3565b5f7f8000000000000000000000000000000000000000000000000000000000000000820361281e5761281e61324556"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b50600436106100fa575f3560e01c8063481c6a7511610093578063a22cb46511610063578063a22cb46514610232578063c2530e3914610245578063e985e9c514610258578063f242432a146102b2575f80fd5b8063481c6a75146101bd5780634e1273f4146101f75780636d5b3f781461021757806395d89b411461022a575f80fd5b80630e89341c116100ce5780630e89341c14610171578063177769cb146101845780632eb2c2d614610197578063439fab91146101aa575f80fd5b8062fdd58e146100fe57806301ffc9a714610124578063043fa9871461014757806306fdde031461015c575b5f80fd5b61011161010c366004612a49565b6102c5565b6040519081526020015b60405180910390f35b610137610132366004612aa0565b6102e1565b604051901515815260200161011b565b61015a610155366004612b79565b6103c3565b005b61016461046a565b60405161011b9190612c29565b61016461017f366004612c3b565b6104cf565b61015a610192366004612c52565b610580565b61015a6101a5366004612d20565b61058f565b6101116101b8366004612dc7565b6105ae565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc200546040516001600160a01b03909116815260200161011b565b61020a610205366004612e01565b6107ae565b60405161011b9190612eed565b61015a610225366004612eff565b6108c5565b610164610975565b61015a610240366004612f63565b6109c6565b61015a610253366004612eff565b6109d1565b610137610266366004612f9e565b6001600160a01b039182165f9081527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45016020908152604080832093909416825291909152205460ff1690565b61015a6102c0366004612eff565b610a37565b5f6102d883836102d3610a4d565b610ab3565b90505b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a2600000000000000000000000000000000000000000000000000000000148061037357507fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000145b806102db57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146102db565b6103cb610b07565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038816179055856104208686868686610b6e565b6104617fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19169055565b50505050505050565b6060610474610c25565b6040518060400160405280600881526020017f20526563656970740000000000000000000000000000000000000000000000008152506040516020016104bb929190612fe1565b604051602081830303815290604052905090565b60605f6104e56104dd610cd3565b60ff16610d78565b6104ed610c25565b6104f5610e15565b6104fd61046a565b6040516020016105109493929190612ff5565b60408051601f19818403018152828201909152601d82527f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c0000006020830152915061055882610ef5565b604051602001610569929190612fe1565b604051602081830303815290604052915050919050565b61058b338383610f01565b5050565b61059a335b86610f49565b6105a78585858585610ff9565b5050505050565b5f806105b861108c565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156105e45750825b90505f8267ffffffffffffffff1660011480156106005750303b155b90508115801561060e575080155b15610645576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156106a65784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6106bd60405180602001604052805f8152506110b4565b5f7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc20090505f888060200190518101906106f69190613137565b825473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039190911617909155507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc3955083156107a45784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b606081518351146107fd57815183516040517f5b059991000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044015b60405180910390fd5b5f610806610a4d565b90505f845167ffffffffffffffff81111561082357610823612abb565b60405190808252806020026020018201604052801561084c578160200160208202803683370190505b5090505f5b85518110156108bc5761089786828151811061086f5761086f613152565b602002602001015186838151811061088957610889613152565b602002602001015185610ab3565b8282815181106108a9576108a9613152565b6020908102919091010152600101610851565b50949350505050565b6108cd610b07565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03871617905584610920868584610f01565b61092c858585856110c5565b61096d7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19169055565b505050505050565b606061097f610c25565b6040518060400160405280600581526020017f20524350540000000000000000000000000000000000000000000000000000008152506040516020016104bb929190612fe1565b61058b33838361113a565b6109d9610b07565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03871617905584610a2c868584610f01565b61092c85858561124e565b610a4033610594565b6105a78585858585610b6e565b5f306001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a8a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aae9190613137565b905090565b5f80610abf85856112cf565b90505f610aca6112e4565b6001600160a01b0387165f90815260209182526040808220888352909252908120549150610af9838387611345565b5093505050505b9392505050565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc20080546001600160a01b03163314610b6b576040517fc0b2335a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b6001600160a01b038416610bb0576040517f57f447ce0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b038516610bf2576040517f01a835140000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6040805160018082526020820186905281830190815260608201859052608082019092529061046187878484875f6115ed565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc2008054604080517f95d89b410000000000000000000000000000000000000000000000000000000081529051606093926001600160a01b0316916395d89b41916004808301925f9291908290030181865afa158015610ca6573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610ccd919081019061319c565b91505090565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc2008054604080517f313ce56700000000000000000000000000000000000000000000000000000000815290515f93926001600160a01b03169163313ce5679160048083019260209291908290030181865afa158015610d54573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ccd91906131e1565b60605f610d8483611645565b60010190505f8167ffffffffffffffff811115610da357610da3612abb565b6040519080825280601f01601f191660200182016040528015610dcd576020820181803683370190505b5090508181016020015b5f19017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084610dd757509392505050565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc2008054604080517f38d52e0f0000000000000000000000000000000000000000000000000000000081529051606093926001600160a01b0316916338d52e0f9160048083019260209291908290030181865afa158015610e97573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ebb9190613137565b6001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015610ca6573d5f803e3d5ffd5b60606102db825f611726565b805115610f44577fd66d6a9810a5cef78b704e7e04334961e997c81d337f029f74637f060f3d8d65838383604051610f3b93929190613215565b60405180910390a15b505050565b816001600160a01b0316816001600160a01b031614158015610faf57506001600160a01b038082165f9081527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4501602090815260408083209386168352929052205460ff16155b1561058b576040517fe237d9220000000000000000000000000000000000000000000000000000000081526001600160a01b038084166004830152821660248201526044016107f4565b6001600160a01b03841661103b576040517f57f447ce0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b03851661107d576040517f01a835140000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6105a7858585858560016115ed565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006102db565b6110bc6118a5565b610b6b816118e5565b6001600160a01b038416611107576040517f57f447ce0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6040805160018082526020820186905281830190815260608201859052608082019092529061096d5f87848487846115ed565b7f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45006001600160a01b03841661119d576040517f3e31884e0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b0383166111df576040517fced3e1000000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b038481165f818152600184016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a350505050565b6001600160a01b038316611290576040517f01a835140000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b604080516001808252602082018590528183019081526060820184905260a082019092525f608082018181529192916105a791879185908590836115ed565b5f806112db84846118f6565b54949350505050565b5f8060ff1961131460017fedb99b3af8e1c50d494d6f1b4c75245a0b733cb90baa42bfe0e2f5bc8b000f82613259565b60405160200161132691815260200190565b60408051601f1981840301815291905280516020909101201692915050565b6040517f79ba43050000000000000000000000000000000000000000000000000000000081525f9081908490829081906001600160a01b038716906379ba43059061139a90869060039060019060040161326c565b606060405180830381865afa1580156113b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113d991906132a4565b5091509150875f03611496575b5f198214611488576040517f79ba430500000000000000000000000000000000000000000000000000000000815291925082916001600160a01b038716906379ba43059061143e90859060039060019060040161326c565b606060405180830381865afa158015611459573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061147d91906132a4565b5090925090506113e6565b5f83945094505050506115e5565b875b5f1983146115dd5782935060028203611548576040517fb21a2494000000000000000000000000000000000000000000000000000000008152600481018490525f90611538906001600160a01b038a169063b21a2494906024015f60405180830381865afa15801561150c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611533919081019061319c565b61196a565b9050611544828261197f565b9150505b6040517f79ba43050000000000000000000000000000000000000000000000000000000081526001600160a01b038816906379ba43059061159390869060039060019060040161326c565b606060405180830381865afa1580156115ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115d291906132a4565b509093509150611498565b945091925050505b935093915050565b6115f9868686866119fa565b6001600160a01b0385161561096d573381156116225761161d818888888888611a5f565b610461565b6020858101519085015161163a838a8a85858a611bfc565b505050505050505050565b5f807a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061168d577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef810000000083106116b9576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106116d757662386f26fc10000830492506010015b6305f5e10083106116ef576305f5e100830492506008015b612710831061170357612710830492506004015b60648310611715576064830492506002015b600a83106102db5760010192915050565b606082515f03611744575060408051602081019091525f81526102db565b5f826117745760038451600261175a91906132e6565b61176491906132f9565b61176f906004613318565b611799565b6003845160046117849190613318565b61178f9060026132e6565b61179991906132f9565b905060405191507f4142434445464748494a4b4c4d4e4f505152535455565758595a616263646566601f5261067083027f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f18603f526020820181810185865187016020810180515f82525b82841015611857576003840193508351603f8160121c16518753600187019650603f81600c1c16518753600187019650603f8160061c16518753600187019650603f811651875350600186019550611804565b9052508590506118985760038651066001811461187b576002811461188e57611896565b603d6001840353603d6002840353611896565b603d60018403535b505b9183525060405292915050565b6118ad611d46565b6118e3576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6118ed6118a5565b610b6b81611d64565b5f8060ff1961192660017f3a8e79826d53842322cdcc810d4a989eb01ac46cfabfd48dcc021625ce13c2d7613259565b60405160200161193891815260200190565b60408051808303601f1901815291815281516020928301205f9687529290921681528185209585529490945250502090565b5f818060200190518101906102db919061332f565b5f7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8311156119dd576040517fbf463fe9000000000000000000000000000000000000000000000000000000008152600481018490526024016107f4565b5f6108bc6119f46119ee865f611db0565b85611e0a565b5f611e6c565b5f611a03610a4d565b90505f5b8351811015611a5257611a3486858381518110611a2657611a26613152565b602002602001015184611eae565b611a4a85858381518110611a2657611a26613152565b600101611a07565b506105a785858585611fb0565b6001600160a01b0384163b1561096d576040517fbc197c810000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063bc197c8190611abc9089908990889088908890600401613346565b6020604051808303815f875af1925050508015611af6575060408051601f3d908101601f19168201909252611af3918101906133a3565b60015b611b76573d808015611b23576040519150601f19603f3d011682016040523d82523d5f602084013e611b28565b606091505b5080515f03611b6e576040517f57f447ce0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024016107f4565b805160208201fd5b7fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014610461576040517f57f447ce0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024016107f4565b6001600160a01b0384163b1561096d576040517ff23a6e610000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063f23a6e6190611c5990899089908890889088906004016133be565b6020604051808303815f875af1925050508015611c93575060408051601f3d908101601f19168201909252611c90918101906133a3565b60015b611cc0573d808015611b23576040519150601f19603f3d011682016040523d82523d5f602084013e611b28565b7fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014610461576040517f57f447ce0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024016107f4565b5f611d4f61108c565b5468010000000000000000900460ff16919050565b7f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45007f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4502610f44838261347c565b5f805f611dbd8585612063565b9150915080611e02576040517f22c9f7bb00000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016107f4565b509392505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d8480611e4f86868686612169565b915091505f611e5e8383612288565b9a9950505050505050505050565b5f807bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8416601b0b60e085901d611ea08282876122e6565b9350935050505b9250929050565b6001600160a01b038316611ec157505050565b5f611eca6112e4565b6001600160a01b0385165f90815260208281526040808320878452909152812054919250611ef886866112cf565b90505f80611f07838588611345565b91509150838103611f1c575050505050505050565b6001600160a01b0388165f908152602086815260408083208a84529091529020819055818314611f5157611f518888846124ce565b60408051858152602081018390529081018490526060810183905287906001600160a01b038a16907f956b049289f8dbe8716375414d9fa6bf32cde65ec1b7e102623775cacc66a6999060800160405180910390a35050505050505050565b5f611fb96124e2565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc200546040517fe5be7d900000000000000000000000000000000000000000000000000000000081529192506001600160a01b03169063e5be7d909061202a9084908990899089908990600401613538565b5f604051808303815f87803b158015612041575f80fd5b505af1158015612053573d5f803e3d5ffd5b505050506105a785858585612563565b5f601b83900b83148383826120c7577d90e40fbeea1d3a4abc8955e946fe31cdcf66f634e10000000000000000008605156120a757620186a0860595506005850194505b8586601b0b146120c257600a860595508460010194506120a7565b6120dd565b855f036120dd57505f925060019150611ea79050565b848560030b14612139575f8512156120fd57505f9250829150611ea79050565b6040517fd556b11100000000000000000000000000000000000000000000000000000000815260048101839052602481018290526044016107f4565b50507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841660e084901b1791509250929050565b5f8085158415178015612181575f92505f915061227e565b61218b848761357d565b91505f612197886127c7565b90505f6121a3876127c7565b90505f6121b08383612828565b5090505f6f0785ee10d5da46d900f436a0000000008211156121e5576f0785ee10d5da46d900f436a000000000820491506025015b670de0b6b3a764000082111561220657670de0b6b3a7640000820491506012015b633b9aca0082111561221f57633b9aca00820491506009015b61271082111561223457612710820491506004015b811561224857600a82049150600101612234565b612252818761357d565b95506122748b8a61226e878761226987600a613684565b612844565b89612929565b9097509550505050505b5094509492505050565b5f805f6122958585612063565b91509150801580156122a5575081155b15611e02576040517f8eba4d0700000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016107f4565b5f805f85121561232c576040517f4a7d166b00000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016107f4565b845f0361233e57505f905060016115e5565b8460ff8416850185811215612389576040517fd556b11100000000000000000000000000000000000000000000000000000000815260048101889052602481018790526044016107f4565b5f805f8312156123f3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb38312156123ca575f8095509550505050506115e5565b825f03600a0a91508184816123e1576123e1613201565b04955050840290911491506115e59050565b5f8313156124be57604d831315612449576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff881660448201526064016107f4565b82600a0a9150815f198161245f5761245f613201565b048411156124ac576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff881660448201526064016107f4565b50919091029250600191506115e59050565b83600195509550505050506115e5565b5f6124d984846118f6565b91909155505050565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201545f907fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc200906001600160a01b03168061253e57339250505090565b6001909101805473ffffffffffffffffffffffffffffffffffffffff19169055919050565b805182517f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c450091146125cd57825182516040517f5b059991000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016107f4565b335f5b84518110156126e8576020818102868101820151908601909101516001600160a01b0389161561269a575f828152602086815260408083206001600160a01b038d16845290915290205481811015612674576040517f03dee4c50000000000000000000000000000000000000000000000000000000081526001600160a01b038b1660048201526024810182905260448101839052606481018490526084016107f4565b5f838152602087815260408083206001600160a01b038e16845290915290209082900390555b6001600160a01b038816156126de575f828152602086815260408083206001600160a01b038c168452909152812080548392906126d89084906132e6565b90915550505b50506001016125d0565b5083516001036127685760208401515f906020850151909150866001600160a01b0316886001600160a01b0316846001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051612759929190918252602082015260400190565b60405180910390a4505061096d565b846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516127b792919061368f565b60405180910390a4505050505050565b5f80821215612824577f8000000000000000000000000000000000000000000000000000000000000000820361281e57507f8000000000000000000000000000000000000000000000000000000000000000919050565b505f0390565b5090565b5f805f1983850993909202808410938190039390930393915050565b5f805f6128518686612828565b91509150815f036128755783818161286b5761286b613201565b0492505050610b00565b8382106128bf576040517f6c59da120000000000000000000000000000000000000000000000000000000081526004810187905260248101869052604481018590526064016107f4565b5f84868809600186198101871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103025f82900382900490920185841190960395909502919093039390930492909217029150509392505050565b5f805f85871812156129f3577f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8411156129e0576129887f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60016132e6565b84036129b857507f8000000000000000000000000000000000000000000000000000000000000000905081612a2c565b6129c3600a856132f9565b6129cc906136b3565b6129d784600161357d565b91509150612a2c565b6129e9846136b3565b8391509150612a2c565b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841115612a26576129cc600a856132f9565b50829050815b94509492505050565b6001600160a01b0381168114610b6b575f80fd5b5f8060408385031215612a5a575f80fd5b8235612a6581612a35565b946020939093013593505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114610b6b575f80fd5b5f60208284031215612ab0575f80fd5b8135610b0081612a73565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612af857612af8612abb565b604052919050565b5f67ffffffffffffffff821115612b1957612b19612abb565b50601f01601f191660200190565b5f82601f830112612b36575f80fd5b8135612b49612b4482612b00565b612acf565b818152846020838601011115612b5d575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f8060c08789031215612b8e575f80fd5b8635612b9981612a35565b95506020870135612ba981612a35565b94506040870135612bb981612a35565b9350606087013592506080870135915060a087013567ffffffffffffffff811115612be2575f80fd5b612bee89828a01612b27565b9150509295509295509295565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6102d86020830184612bfb565b5f60208284031215612c4b575f80fd5b5035919050565b5f8060408385031215612c63575f80fd5b82359150602083013567ffffffffffffffff811115612c80575f80fd5b612c8c85828601612b27565b9150509250929050565b5f67ffffffffffffffff821115612caf57612caf612abb565b5060051b60200190565b5f82601f830112612cc8575f80fd5b81356020612cd8612b4483612c96565b8083825260208201915060208460051b870101935086841115612cf9575f80fd5b602086015b84811015612d155780358352918301918301612cfe565b509695505050505050565b5f805f805f60a08688031215612d34575f80fd5b8535612d3f81612a35565b94506020860135612d4f81612a35565b9350604086013567ffffffffffffffff80821115612d6b575f80fd5b612d7789838a01612cb9565b94506060880135915080821115612d8c575f80fd5b612d9889838a01612cb9565b93506080880135915080821115612dad575f80fd5b50612dba88828901612b27565b9150509295509295909350565b5f60208284031215612dd7575f80fd5b813567ffffffffffffffff811115612ded575f80fd5b612df984828501612b27565b949350505050565b5f8060408385031215612e12575f80fd5b823567ffffffffffffffff80821115612e29575f80fd5b818501915085601f830112612e3c575f80fd5b81356020612e4c612b4483612c96565b82815260059290921b84018101918181019089841115612e6a575f80fd5b948201945b83861015612e91578535612e8281612a35565b82529482019490820190612e6f565b96505086013592505080821115612ea6575f80fd5b50612c8c85828601612cb9565b5f815180845260208085019450602084015f5b83811015612ee257815187529582019590820190600101612ec6565b509495945050505050565b602081525f6102d86020830184612eb3565b5f805f805f60a08688031215612f13575f80fd5b8535612f1e81612a35565b94506020860135612f2e81612a35565b93506040860135925060608601359150608086013567ffffffffffffffff811115612f57575f80fd5b612dba88828901612b27565b5f8060408385031215612f74575f80fd5b8235612f7f81612a35565b915060208301358015158114612f93575f80fd5b809150509250929050565b5f8060408385031215612faf575f80fd5b8235612fba81612a35565b91506020830135612f9381612a35565b5f81518060208401855e5f93019283525090919050565b5f612df9612fef8386612fca565b84612fca565b7f7b22646563696d616c73223a000000000000000000000000000000000000000081525f613026600c830187612fca565b7f2c226465736372697074696f6e223a2231206f6620746865736520726563656981527f7074732063616e206265206275726e656420616c6f6e67736964652031200000602082015261307c603e820187612fca565b90507f20746f2072656465656d2000000000000000000000000000000000000000000081526130ae600b820186612fca565b90507f2066726f6d20746865207661756c742e222c000000000000000000000000000081527f226e616d65223a220000000000000000000000000000000000000000000000006012820152613106601a820185612fca565b7f227d0000000000000000000000000000000000000000000000000000000000008152600201979650505050505050565b5f60208284031215613147575f80fd5b8151610b0081612a35565b634e487b7160e01b5f52603260045260245ffd5b5f613173612b4484612b00565b9050828152838383011115613186575f80fd5b8282602083015e5f602084830101529392505050565b5f602082840312156131ac575f80fd5b815167ffffffffffffffff8111156131c2575f80fd5b8201601f810184136131d2575f80fd5b612df984825160208401613166565b5f602082840312156131f1575f80fd5b815160ff81168114610b00575f80fd5b634e487b7160e01b5f52601260045260245ffd5b6001600160a01b0384168152826020820152606060408201525f61323c6060830184612bfb565b95945050505050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156102db576102db613245565b83815260208101839052606081016003831061329657634e487b7160e01b5f52602160045260245ffd5b826040830152949350505050565b5f805f606084860312156132b6575f80fd5b8351925060208401519150604084015167ffffffffffffffff811681146132db575f80fd5b809150509250925092565b808201808211156102db576102db613245565b5f8261331357634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176102db576102db613245565b5f6020828403121561333f575f80fd5b5051919050565b5f6001600160a01b03808816835280871660208401525060a0604083015261337160a0830186612eb3565b82810360608401526133838186612eb3565b905082810360808401526133978185612bfb565b98975050505050505050565b5f602082840312156133b3575f80fd5b8151610b0081612a73565b5f6001600160a01b03808816835280871660208401525084604083015283606083015260a060808301526133f560a0830184612bfb565b979650505050505050565b600181811c9082168061341457607f821691505b60208210810361343257634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115610f4457805f5260205f20601f840160051c8101602085101561345d5750805b601f840160051c820191505b818110156105a7575f8155600101613469565b815167ffffffffffffffff81111561349657613496612abb565b6134aa816134a48454613400565b84613438565b602080601f8311600181146134dd575f84156134c65750858301515b5f19600386901b1c1916600185901b17855561096d565b5f85815260208120601f198616915b8281101561350b578886015182559484019460019091019084016134ec565b508582101561352857878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f6001600160a01b038088168352808716602084015280861660408401525060a0606083015261356b60a0830185612eb3565b82810360808401526133978185612eb3565b8082018281125f83128015821682158216171561359c5761359c613245565b505092915050565b600181815b808511156135de57815f19048211156135c4576135c4613245565b808516156135d157918102915b93841c93908002906135a9565b509250929050565b5f826135f4575060016102db565b8161360057505f6102db565b816001811461361657600281146136205761363c565b60019150506102db565b60ff84111561363157613631613245565b50506001821b6102db565b5060208310610133831016604e8410600b841016171561365f575081810a6102db565b61366983836135a4565b805f190482111561367c5761367c613245565b029392505050565b5f6102d883836135e6565b604081525f6136a16040830185612eb3565b828103602084015261323c8185612eb3565b5f7f8000000000000000000000000000000000000000000000000000000000000000820361281e5761281e61324556"; diff --git a/src/generated/0_1_4/StoxReceiptVault.pointers.sol b/src/generated/0_1_4/StoxReceiptVault.pointers.sol deleted file mode 100644 index 95c52050..00000000 --- a/src/generated/0_1_4/StoxReceiptVault.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x22aa77aa9ffec4d290a8cacbcd8444b85761b6a1fb77c3f1b1a73490a7d9f972); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0xD7f91c1C6e6e651Ec3F1Fd707aF7CbB7526206e1); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"608060405234801561000f575f80fd5b5060017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005561003c610041565b6100f3565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100915760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100f05780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b615ffa806101005f395ff3fe608060405260043610610337575f3560e01c8063715018a6116101af578063bbec4d06116100eb578063dd62ed3e11610094578063e70689f51161006e578063e70689f5146109ab578063f2fde38b146109ca578063f5647943146109e9578063f5d214f514610a1e5761033e565b8063dd62ed3e146108ed578063e1e6b89814610950578063e5be7d901461098c5761033e565b8063c77b66c2116100c5578063c77b66c2146108b3578063d09edf31146108c6578063db2088f4146108da5761033e565b8063bbec4d0614610875578063c54cafee14610894578063c63d75b6146105635761033e565b80638da5cb5b11610158578063a9059cbb11610132578063a9059cbb146107b8578063ac9650d8146107d7578063ae57de0c14610803578063ae98b39f146108225761033e565b80638da5cb5b14610771578063921a4c421461078557806395d89b41146107a45761033e565b80637a7af70d116101895780637a7af70d1461072057806381c3fcb91461073357806385b68756146107525761033e565b8063715018a6146106ce578063770afee1146106e2578063786cd916146107015761033e565b8063276b11401161027e5780634abe413711610227578063633ac71711610201578063633ac7171461061e5780636ba235211461063d5780636c876b941461069057806370a08231146106af5761033e565b80634abe4137146105c157806356db02e8146105e057806359f89dda146105ff5761033e565b8063402d267d11610258578063402d267d14610563578063439fab9114610583578063488bd7b0146105a25761033e565b8063276b1140146104fe578063313ce5671461051157806338d52e0f146105375761033e565b806318160ddd116102e05780631f6759d3116102ba5780631f6759d31461048d57806323b872dd146104c05780632755c6c7146104df5761033e565b806318160ddd1461043b578063181e7b3b1461044f5780631e4344a11461046e5761033e565b806306fdde031161031157806306fdde03146103e8578063095ea7b3146104095780631423feba146104285761033e565b806301e1d1141461037357806301ffc9a71461039a578063058a628f146103c95761033e565b3661033e57005b73b7e24412126ad6a2ce19cbd79fd11b68e7f30cf6365f80375f80365f845af43d5f803e80801561036d573d5ff35b3d5ffd5b005b34801561037e575f80fd5b50610387610a51565b6040519081526020015b60405180910390f35b3480156103a5575f80fd5b506103b96103b4366004614f0e565b610a5f565b6040519015158152602001610391565b3480156103d4575f80fd5b506103716103e3366004614f61565b610aba565b3480156103f3575f80fd5b506103fc610ce3565b6040516103919190614faa565b348015610414575f80fd5b506103b9610423366004614fbc565b610db6565b610387610436366004615109565b610dcd565b348015610446575f80fd5b50610387610e17565b34801561045a575f80fd5b50610387610469366004615168565b610e20565b348015610479575f80fd5b50610371610488366004615188565b610e3f565b348015610498575f80fd5b507f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70054610387565b3480156104cb575f80fd5b506103b96104da36600461519f565b610ecb565b3480156104ea575f80fd5b506103716104f9366004614fbc565b610eee565b61038761050c366004615168565b611028565b34801561051c575f80fd5b50610525611053565b60405160ff9091168152602001610391565b348015610542575f80fd5b5061054b6110f8565b6040516001600160a01b039091168152602001610391565b34801561056e575f80fd5b5061038761057d366004614f61565b505f1990565b34801561058e575f80fd5b5061038761059d3660046151dd565b61112c565b3480156105ad575f80fd5b506103876105bc366004615168565b6113d1565b3480156105cc575f80fd5b506103876105db366004614fbc565b6113e9565b3480156105eb575f80fd5b506103876105fa36600461520f565b6114a3565b34801561060a575f80fd5b50610371610619366004615256565b6117e4565b348015610629575f80fd5b50610371610638366004614f61565b61181c565b348015610648575f80fd5b50610387610657366004614f61565b6001600160a01b03165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be701602052604090205490565b34801561069b575f80fd5b506103716106aa366004614f61565b611949565b3480156106ba575f80fd5b506103876106c9366004614f61565b611a49565b3480156106d9575f80fd5b50610371611a92565b3480156106ed575f80fd5b506103876106fc366004615256565b611aa5565b34801561070c575f80fd5b5061037161071b366004614fbc565b611c5f565b61038761072e366004615168565b611d90565b34801561073e575f80fd5b5061037161074d3660046151dd565b611da5565b34801561075d575f80fd5b5061038761076c366004614fbc565b611de1565b34801561077c575f80fd5b5061054b611ec4565b348015610790575f80fd5b5061038761079f3660046152ab565b611ecd565b3480156107af575f80fd5b506103fc611efa565b3480156107c3575f80fd5b506103b96107d2366004614fbc565b611f4b565b3480156107e2575f80fd5b506107f66107f136600461531c565b611f58565b604051610391919061538b565b34801561080e575f80fd5b5061038761081d3660046152ab565b61203e565b34801561082d575f80fd5b5061038761083c366004614f61565b6001600160a01b03165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be702602052604090205490565b348015610880575f80fd5b5061038761088f366004615168565b612061565b34801561089f575f80fd5b506103876108ae366004615449565b61206f565b6103876108c1366004615109565b612157565b3480156108d1575f80fd5b5061054b612186565b6103876108e8366004615168565b6121ae565b3480156108f8575f80fd5b506103876109073660046154ae565b6001600160a01b039182165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b34801561095b575f80fd5b507f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031661054b565b348015610997575f80fd5b506103716109a6366004615557565b6121c2565b3480156109b6575f80fd5b506103716109c53660046155ed565b6122f9565b3480156109d5575f80fd5b506103716109e4366004614f61565b612462565b3480156109f4575f80fd5b507fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd025442116103b9565b348015610a29575f80fd5b507fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0154610387565b5f610a5a610e17565b905090565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f59f89dda000000000000000000000000000000000000000000000000000000001480610ab45750610ab4826124b8565b92915050565b6040517f248a9ca30000000000000000000000000000000000000000000000000000000081527ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f8960048201525f906001600160a01b0383169063248a9ca390602401602060405180830381865afa158015610b37573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b5b9190615645565b905080610bca576040517f76728ed90000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201527ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f8960248201526044015b60405180910390fd5b6040517f248a9ca30000000000000000000000000000000000000000000000000000000081527f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e760048201525f906001600160a01b0384169063248a9ca390602401602060405180830381865afa158015610c47573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c6b9190615645565b905080610cd5576040517f76728ed90000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201527f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e76024820152604401610bc1565b610cde836125e6565b505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0380546060917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0091610d349061565c565b80601f0160208091040260200160405190810160405280929190818152602001828054610d609061565c565b8015610dab5780601f10610d8257610100808354040283529160200191610dab565b820191905f5260205f20905b815481529060010190602001808311610d8e57829003601f168201915b505050505091505090565b5f33610dc38185856125f7565b5060019392505050565b5f80610dd7612604565b90505f610df187610deb335b89865f61265b565b8761266f565b9050610e008787838588612685565b610e0b335b476128ac565b9150505b949350505050565b5f610a5a612955565b5f610e3883670de0b6b3a7640000612ab4565b612ab4565b9392505050565b610e47612ac0565b7f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be7008054821115610e75578181555b7fff9fd4facd8bd30d905cc7ffbd03e8829a414df4c6554d155d132c3377868a42610e9e611ec4565b8254604080516001600160a01b039093168352602083018690528201526060015b60405180910390a15050565b5f33610ed8858285612b0b565b610ee3858585612bbf565b506001949350505050565b610ef6612ac0565b805f03610f3a576040517f5a6084530000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610bc1565b6001600160a01b0382165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70260205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70090821115610fb7576001600160a01b0383165f90815260028201602052604090208290555b7fa1e5b368dc99c8558f28b1e7e8cb7ab542c989a4b697628ba7bfffe0aeaccffd610fe0611ec4565b6001600160a01b038581165f818152600286016020908152604091829020548251959094168552840191909152820185905260608201526080015b60405180910390a1505050565b5f8061104884611042335b3361103c612604565b5f61265b565b85612c4e565b9050610e3833610e05565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f308970152310243260080545f91906001600160a01b0316803b806110905760126110f0565b816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110f091906156a7565b935050505090565b5f807f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f30897015231024326005b546001600160a01b031692915050565b5f80611136612c65565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156111625750825b90505f8267ffffffffffffffff16600114801561117e5750303b155b90508115801561118c575080155b156111c3576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156112245784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b61122c612c8d565b5f878060200190518101906112419190615714565b90506112508160200151612cc6565b6020810151516001600160a01b031615611296576040517f8951799200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80516001600160a01b03166112d7576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6112e030612e39565b80516112eb90612f99565b7ffa89761502e992c8c755fba778ced00f4562485023f656906eb76f5dd65a9fe53360408051808201825284516001600160a01b0316815260208086015190820152905161133a92919061580b565b60405180910390a17fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc396505083156113c75784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b5f610e38836113e4335b3386600161265b565b613021565b5f61141b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031690565b6040517efdd58e0000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015260248201859052919091169062fdd58e90604401602060405180830381865afa15801561147f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e389190615645565b5f6114ac61302e565b825f036114e5576040517f312497b000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6115a98461151b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031690565b6040517efdd58e0000000000000000000000000000000000000000000000000000000081526001600160a01b038a81166004830152602482018a9052919091169062fdd58e90604401602060405180830381865afa15801561157f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115a39190615645565b9061305c565b905080156116c6577f88e2280ece62e9296d3578b77647db2c11f9fa7e42578e2db5d4262123ffae3e3387878785886040516115ea969594939291906158af565b60405180910390a17f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b03166001600160a01b031663043fa98733883360405160e085901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b03938416600482015291831660248301529091166044820152606481018890526084810184905260c060a48201525f60c482015260e4015f604051808303815f87803b1580156116af575f80fd5b505af11580156116c1573d5f803e3d5ffd5b505050505b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f3dd35eca0ca8a128757fa464a5dfa4ad6cc4853cad96dce4e90fdbea4f0a52e36040518060a001604052808c6001600160a01b031681526020018b81526020018a81526020018781526020018981525060405160200161175d91906158f8565b6040516020818303038152906040526040518463ffffffff1660e01b815260040161178a93929190615943565b5f604051808303815f87803b1580156117a1575f80fd5b505af11580156117b3573d5f803e3d5ffd5b5093945050505050610e0f60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b8282826040517f3ae4063b000000000000000000000000000000000000000000000000000000008152600401610bc193929190615943565b611824612ac0565b6001600160a01b0381165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70260205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be7009042116118d9576001600160a01b0382165f818152600283016020526040908190205490517f81a7897700000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610bc1565b6001600160a01b0382165f9081526002820160205260408120557fa1e5b368dc99c8558f28b1e7e8cb7ab542c989a4b697628ba7bfffe0aeaccffd61191c611ec4565b604080516001600160a01b03928316815291851660208301525f9082018190526060820152608001610ebf565b611951612ac0565b6001600160a01b0381165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70160205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be700904211611a06576001600160a01b0382165f818152600183016020526040908190205490517ff1b01b5400000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610bc1565b6001600160a01b0382165f9081526001820160205260408120557fd08871fffa9d03c01fcba597af5dfbe64cb26f207debdae1af2532695447499161191c611ec4565b5f80611a548361306b565b90505f611a5f61307e565b6001600160a01b0385165f90815260038201602052604081205491925090611a889084906130df565b5095945050505050565b611a9a612ac0565b611aa35f612f99565b565b5f611aae61302e565b825f03611ae7576040517f312497b000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f611af5846115a387611a49565b90508015611b47577f3fc1c49e72362e91416388fe7a107b92db924642476e83e701eeeb6256d7249e3386868487604051611b3495949392919061596a565b60405180910390a1611b47853383612bbf565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f54f0af3716c79b30b8c228679d31d77a1a5f526c16af3262730e0a8de4363fed60405180608001604052808b6001600160a01b031681526020018a815260200187815260200189815250604051602001611bd891906159a1565b6040516020818303038152906040526040518463ffffffff1660e01b8152600401611c0593929190615943565b5f604051808303815f87803b158015611c1c575f80fd5b505af1158015611c2e573d5f803e3d5ffd5b5093945050505050610e3860017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b611c67612ac0565b805f03611cab576040517ffd86061b0000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610bc1565b6001600160a01b0382165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70160205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70090821115611d28576001600160a01b0383165f90815260018201602052604090208290555b7fd08871fffa9d03c01fcba597af5dfbe64cb26f207debdae1af25326954474991611d51611ec4565b6001600160a01b038581165f8181526001860160209081526040918290205482519590941685528401919091528201859052606082015260800161101b565b5f8061104884611d9f33611033565b8561266f565b7fdaffad82f53a38a62340f14cdd6fd3b437c5dcda6b32029dac1e661dbce28b2d3382604051611dd69291906159e2565b60405180910390a150565b5f80611df0848585600161265b565b9050805f03611e02575f915050610ab4565b610e0f611e367f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031690565b6040517efdd58e0000000000000000000000000000000000000000000000000000000081526001600160a01b03878116600483015260248201879052919091169062fdd58e90604401602060405180830381865afa158015611e9a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ebe9190615645565b82612ab4565b5f610a5a61318d565b5f80611ee087610e33878988600161265b565b9050611ef08187878a88886131b5565b9695505050505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0480546060917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0091610d349061565c565b5f33610dc3818585612bbf565b604080515f8152602081019091526060908267ffffffffffffffff811115611f8257611f82614fe6565b604051908082528060200260200182016040528015611fb557816020015b6060815260200190600190039081611fa05790505b5091505f5b838110156120365761201130868684818110611fd857611fd8615a43565b9050602002810190611fea9190615a70565b85604051602001611ffd93929190615ad1565b60405160208183030381529060405261357b565b83828151811061202357612023615a43565b6020908102919091010152600101611fba565b505092915050565b5f80612051876113e4878988600161265b565b9050611ef08787878488886131b5565b5f610e3883610e33336113db565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd01545f907fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd00908511156120f1576040517fe4a4718200000000000000000000000000000000000000000000000000000000815260048101869052602401610bc1565b5f61210888612102338a8a5f61265b565b5f61266f565b905061214c8888838989898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061268592505050565b979650505050505050565b5f80612161612604565b90505f6121778761217133610de3565b87612c4e565b9050610e008187898588612685565b5f807fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0061111c565b5f8061104884670de0b6b3a7640000612102565b6121cf8585858585613616565b6121d98484613679565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080546040805160a0810182526001600160a01b0388811682528781166020830152918101869052606081018590529116906359f89dda9088907f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a4890608081016122837fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0254421190565b151590526040516122979190602001615b2e565b6040516020818303038152906040526040518463ffffffff1660e01b81526004016122c493929190615943565b5f604051808303815f87803b1580156122db575f80fd5b505af11580156122ed573d5f803e3d5ffd5b50505050505050505050565b835f03612332576040517f8672985d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0090505f6040518060a001604052808360020154815260200183600201548152602001878152602001861515815260200185858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152505050915250905084806123cc5750816002015486115b156123e05760028201869055602081018690525b7f7ef5cae78e9bd364afb19bb0f8a881a6d156e35a119e28c0d17524e5079581583387878787604051612417959493929190615ba0565b60405180910390a181546001600160a01b03166359f89dda337f50a07cb25d0d864370863300b20987dfdae089abad71b607faf639d09d053391846040516020016122979190615bee565b61246a612ac0565b6001600160a01b0381166124ac576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6124b581612f99565b50565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fe5be7d9000000000000000000000000000000000000000000000000000000000148061254a57507fffffffff0000000000000000000000000000000000000000000000000000000082167f439fab9100000000000000000000000000000000000000000000000000000000145b8061259657507fffffffff0000000000000000000000000000000000000000000000000000000082167fe1e6b89800000000000000000000000000000000000000000000000000000000145b80610ab457507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610ab4565b6125ee612ac0565b6124b581612e39565b610cde8383836001613739565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd01545f907fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0090612655906001615c32565b91505090565b5f670de0b6b3a76400005b95945050505050565b5f61267a8284613861565b610e0f84845f6138a5565b61268d61302e565b845f036126c6576040517fc7838b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825f036126ff576040517ffc8c806300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03841661273f576040517f6ba9ecd800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f0361277a576040517fe4a471820000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b7f3377bcbed49a0c0005e53931cd8fe7334b5371523e5de784c0d0d3d01089cfea3385878686866040516127b3969594939291906158af565b60405180910390a16127c885858585856138ba565b6127d28484613915565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546040517f6d5b3f780000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690636d5b3f7890612842903390889087908990889060040161596a565b5f604051808303815f87803b158015612859575f80fd5b505af115801561286b573d5f803e3d5ffd5b5050505061287c8585858585613962565b6128a560017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5050505050565b804710156128ef576040517fcf47918100000000000000000000000000000000000000000000000000000000815247600482015260248101829052604401610bc1565b612908828260405180602001604052805f815250613a0e565b15612911575050565b3d156129235761291f613a23565b5050565b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8061295f61307e565b60028101549091505f0361297557612655613a2e565b5f6129845f1960036001613a93565b90505f5b5f198214610e38575f8360020183815481106129a6576129a6615a43565b905f5260205f2090600502015f0154905060028103612a83575f612a738560020185815481106129d8576129d8615a43565b905f5260205f20906005020160040180546129f29061565c565b80601f0160208091040260200160405190810160405280929190818152602001828054612a1e9061565c565b8015612a695780601f10612a4057610100808354040283529160200191612a69565b820191905f5260205f20905b815481529060010190602001808311612a4c57829003601f168201915b5050505050613b8e565b9050612a7f8382613ba3565b9250505b5f838152600485016020526040902054612a9d9083615c32565b9150612aac8360036001613a93565b925050612988565b5f610e38838383613c27565b33612ac9611ec4565b6001600160a01b031614611aa3576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610bc1565b6001600160a01b038381165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160209081526040808320938616835292905220545f19811015612bb95781811015612bab576040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201526024810182905260448101839052606401610bc1565b612bb984848484035f613739565b50505050565b6001600160a01b038316612c01576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6001600160a01b038216612c43576040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b610cde838383613c3c565b5f612c598284613861565b610e0f84846001613c27565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610ab4565b425f03611aa3576040517f789a532d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612cce613c8f565b612ce081602001518260400151613c97565b80517f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f308970152310243260080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b0393841617825560608401517f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601805490921693169283179055604080517f481c6a75000000000000000000000000000000000000000000000000000000008152905191925f92909163481c6a759160048083019260209291908290030181865afa158015612dc0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612de49190615c45565b90506001600160a01b0381163014610cde576040517f7935475e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b0382166024820152604401610bc1565b6040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f59f89dda0000000000000000000000000000000000000000000000000000000060048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa158015612eb4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ed89190615c60565b612f0e576040517ffd12061600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03831690811782556040805133815260208101929092527fa8c713fe8fb360697fc0daab836d85208a605d485fbc265aea0f773fc6cdd71a9101610ebf565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f610e38838360016138a5565b613036613ca9565b60027f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5f828218828410028218610e38565b5f8061307683613d04565b549392505050565b5f8060ff196130ae60017f2f8f8ecf1b7a1a3ceda8d15a9a2247a2377b3434535a87f1728021c13fec2e71615a30565b6040516020016130c091815260200190565b60408051601f1981840301815291905280516020909101201692915050565b5f8082816130eb61307e565b9050855f6130fc8760036001613a93565b90505b5f19811461317e57925082811580159061313c5750600283600201828154811061312b5761312b615a43565b905f5260205f2090600502015f0154145b1561316a575f61315a8460020183815481106129d8576129d8615a43565b90506131668382613ba3565b9250505b6131778160036001613a93565b90506130ff565b509350909150505b9250929050565b5f807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930061111c565b6131bd61302e565b855f036131f6576040517fc7838b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825f0361322f576040517ffc8c806300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03851661326f576040517f6ba9ecd800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0384166132af576040517f9905827b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f036132eb576040517fe4a4718200000000000000000000000000000000000000000000000000000000815260048101839052602401610bc1565b7f2845b9458bcc357e1abfe8de7f6832dfe7220596a053496b33d0deb6577d8d2a338686898787876040516133269796959493929190615c7b565b60405180910390a16001600160a01b038416331461349557613349843385612b0b565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b03166001600160a01b031663e985e9c585336040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa1580156133e5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134099190615c60565b613495576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60448201527f6572206f7220617070726f7665640000000000000000000000000000000000006064820152608401610bc1565b61349f8484613d71565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546040517fc2530e390000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063c2530e399061350f903390889087908990889060040161596a565b5f604051808303815f87803b158015613526575f80fd5b505af1158015613538573d5f803e3d5ffd5b5050505061354a868686868686613dbe565b61357360017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b505050505050565b60605f6135888484613ec7565b90508080156135a957505f3d11806135a957505f846001600160a01b03163b115b156135be576135b6613eda565b915050610ab4565b8015613601576040517f9996b3150000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610bc1565b3d156129235761360f613a23565b5092915050565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031633146128a5576040517f8813aac300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be700805442118015906136c257506001600160a01b0383165f908152600182016020526040902054155b80156136e557506001600160a01b0382165f908152600282016020526040902054155b15610cde5780546040517f79d7155100000000000000000000000000000000000000000000000000000000815260048101919091526001600160a01b03808516602483015283166044820152606401610bc1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b03851661379c576040517fe602df050000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6001600160a01b0384166137de576040517f94280d620000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6001600160a01b038086165f908152600183016020908152604080832093881683529290522083905581156128a557836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258560405161385291815260200190565b60405180910390a35050505050565b8181101561291f576040517fa3e322340000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610bc1565b5f610e0f8484670de0b6b3a764000085613ef3565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd01547fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd00906139089084613f35565b6001909101555050505050565b6001600160a01b038216613957576040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b61291f5f8383613c3c565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8216040518060c001604052806139cb3390565b6001600160a01b031681526020018a6001600160a01b031681526020018881526020018b8152602001898152602001878152506040516020016122979190615d20565b5f805f83516020850186885af1949350505050565b6040513d5f823e3d81fd5b5f8060ff19613a5e60017fb750591399365444a618527b69a54ce09476c8bde1ecff60f5aa1fe2b52605ff615a30565b604051602001613a7091815260200190565b60408051808303601f190181529190528051602090910120166002015492915050565b5f600783168103613ad0576040517fbf3cad0b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f613ad961307e565b60028101549091505f03613af1575f19915050610e38565b5f5f198614613b2457816002018681548110613b0f57613b0f615a43565b905f5260205f20906005020160030154613b27565b81545b90506002846002811115613b3d57613b3d615d32565b03613b5f57613b5682613b508484613f44565b87613fbf565b92505050610e38565b6001846002811115613b7357613b73615d32565b03613b8357613b56828287614017565b611ef0828287613fbf565b5f81806020019051810190610ab49190615645565b5f7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115613c01576040517fbf463fe900000000000000000000000000000000000000000000000000000000815260048101849052602401610bc1565b5f613c1e613c18613c12865f614084565b856140de565b5f614140565b50949350505050565b5f610e0f84670de0b6b3a76400008585613ef3565b613c44614181565b613c4d836141e7565b613c56826141e7565b613c618383836142d4565b6001600160a01b038316613c7857610cde81614434565b6001600160a01b038216610cde57610cde81614477565b611aa36144b1565b613c9f6144b1565b61291f82826144ef565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0054600203611aa3576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8060ff19613d3460017fb750591399365444a618527b69a54ce09476c8bde1ecff60f5aa1fe2b52605ff615a30565b604051602001613d4691815260200190565b60408051601f1981840301815291815281516020928301205f96875292909216905290922092915050565b6001600160a01b038216613db3576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b61291f825f83613c3c565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e9828696040518060c001604052808a6001600160a01b031681526020018b6001600160a01b031681526020018881526020018c815260200189815260200187815250604051602001613e649190615d20565b6040516020818303038152906040526040518463ffffffff1660e01b8152600401613e9193929190615943565b5f604051808303815f87803b158015613ea8575f80fd5b505af1158015613eba573d5f803e3d5ffd5b5050505050505050505050565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b5f613f20613f0083614552565b8015613f1b57505f8480613f1657613f16615d5f565b868809115b151590565b613f2b86868661457e565b6126669190615c32565b5f828218828411028218610e38565b5f5b5f198214158015613f88575042836002018381548110613f6857613f68615a43565b5f91825260209091206001600590920201015467ffffffffffffffff1611155b15613fb957826002018281548110613fa257613fa2615a43565b905f5260205f209060050201600301549150613f46565b50919050565b5f5b5f19831461400d575f846002018481548110613fdf57613fdf615a43565b905f5260205f209060050201905082815f0154165f146140025783915050610e38565b600301549250613fc1565b505f199392505050565b5f5b5f19831461400d575f84600201848154811061403757614037615a43565b5f918252602090912060059091020160018101549091504267ffffffffffffffff9091161115614067575061400d565b80548316156140795783915050610e38565b600301549250614019565b5f805f614091858561462e565b91509150806140d6576040517f22c9f7bb0000000000000000000000000000000000000000000000000000000081526004810186905260248101859052604401610bc1565b509392505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d848061412386868686614734565b915091505f6141328383614853565b9a9950505050505050505050565b5f807bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8416601b0b60e085901d6141748282876148b1565b9350935050509250929050565b5f61418a61307e565b60028101549091505f0361419b5750565b5f6141b0826005015460026001176001613a93565b90505f195b5f1982146141d35750806141cc8160036001613a93565b91506141b5565b5f198114610cde5760058301819055505050565b6001600160a01b0381166141f85750565b5f61420161307e565b6001600160a01b0383165f9081526003820160205260408120549192506142278461306b565b90505f8061423583856130df565b9150915083810361424857505050505050565b6001600160a01b0386165f9081526003860160205260409020819055818314614275576142758683614a9c565b6040805185815260208101839052908101849052606081018390526001600160a01b038716907f36a2eb39b73568d38e98721588b15b309c9380e1b1ab575c2c3d71d5148ccb4a9060800160405180910390a261357384848385614aae565b6142de8383613679565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a6040518060800160405280896001600160a01b03168152602001886001600160a01b0316815260200187815260200161438e7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0254421190565b151590526040805182516001600160a01b03908116602080840191909152840151168183015290820151606080830191909152909101511515608082015260a0016040516020818303038152906040526040518463ffffffff1660e01b81526004016143fc93929190615943565b5f604051808303815f87803b158015614413575f80fd5b505af1158015614425573d5f803e3d5ffd5b50505050612bb9848484614b0b565b5f61443d61307e565b60028101549091501561291f5760058101545f9081526004820160205260408120805484929061446e908490615c32565b90915550505050565b5f61448061307e565b60028101549091501561291f5760058101545f9081526004820160205260408120805484929061446e908490615a30565b6144b9614b16565b611aa3576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6144f76144b1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace007f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace036145438482615dd0565b5060048101612bb98382615dd0565b5f600282600381111561456757614567615d32565b6145719190615e8c565b60ff166001149050919050565b5f805f61458b8686614b34565b91509150815f036145af578381816145a5576145a5615d5f565b0492505050610e38565b8184116145c6576145c66003851502601118614b50565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010185841190960395909502919093039390930492909217029150509392505050565b5f601b83900b8314838382614692577d90e40fbeea1d3a4abc8955e946fe31cdcf66f634e100000000000000000086051561467257620186a0860595506005850194505b8586601b0b1461468d57600a86059550846001019450614672565b6146a8565b855f036146a857505f9250600191506131869050565b848560030b14614704575f8512156146c857505f92508291506131869050565b6040517fd556b1110000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610bc1565b50507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841660e084901b1791509250929050565b5f808515841517801561474c575f92505f9150614849565b6147568487615ead565b91505f61476288614b61565b90505f61476e87614b61565b90505f61477b8383614b34565b5090505f6f0785ee10d5da46d900f436a0000000008211156147b0576f0785ee10d5da46d900f436a000000000820491506025015b670de0b6b3a76400008211156147d157670de0b6b3a7640000820491506012015b633b9aca008211156147ea57633b9aca00820491506009015b6127108211156147ff57612710820491506004015b811561481357600a820491506001016147ff565b61481d8187615ead565b955061483f8b8a614839878761483487600a615fac565b614bc2565b89614c9d565b9097509550505050505b5094509492505050565b5f805f614860858561462e565b9150915080158015614870575081155b156140d6576040517f8eba4d070000000000000000000000000000000000000000000000000000000081526004810186905260248101859052604401610bc1565b5f805f8512156148f7576040517f4a7d166b0000000000000000000000000000000000000000000000000000000081526004810186905260248101859052604401610bc1565b845f0361490957505f90506001614a94565b8460ff8416850185811215614954576040517fd556b1110000000000000000000000000000000000000000000000000000000081526004810188905260248101879052604401610bc1565b5f805f8312156149be577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb3831215614995575f809550955050505050614a94565b825f03600a0a91508184816149ac576149ac615d5f565b0495505084029091149150614a949050565b5f831315614a8957604d831315614a14576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff88166044820152606401610bc1565b82600a0a9150815f1981614a2a57614a2a615d5f565b04841115614a77576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff88166044820152606401610bc1565b5091909102925060019150614a949050565b509193506001925050505b935093915050565b5f614aa683613d04565b919091555050565b5f614ab761307e565b905083816004015f8781526020019081526020015f205f828254614adb9190615a30565b90915550505f83815260048201602052604081208054849290614aff908490615c32565b90915550505050505050565b610cde838383614da9565b5f614b1f612c65565b5468010000000000000000900460ff16919050565b5f805f1983850993909202808410938190039390930393915050565b634e487b715f52806020526024601cfd5b5f80821215614bbe577f80000000000000000000000000000000000000000000000000000000000000008203614bb857507f8000000000000000000000000000000000000000000000000000000000000000919050565b505f0390565b5090565b5f805f614bcf8686614b34565b91509150815f03614be9578381816145a5576145a5615d5f565b838210614c33576040517f6c59da12000000000000000000000000000000000000000000000000000000008152600481018790526024810186905260448101859052606401610bc1565b5f84868809600186198101871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103025f82900382900490920185841190960395909502919093039390930492909217029150509392505050565b5f805f8587181215614d67577f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841115614d5457614cfc7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001615c32565b8403614d2c57507f8000000000000000000000000000000000000000000000000000000000000000905081614da0565b614d37600a85615fb7565b614d4090615fca565b614d4b846001615ead565b91509150614da0565b614d5d84615fca565b8391509150614da0565b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841115614d9a57614d40600a85615fb7565b50829050815b94509492505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b038416614df65781816002015f828254614deb9190615c32565b90915550614e7f9050565b6001600160a01b0384165f9081526020829052604090205482811015614e61576040517fe450d38c0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024810182905260448101849052606401610bc1565b6001600160a01b0385165f9081526020839052604090209083900390555b6001600160a01b038316614e9d576002810180548390039055614ebb565b6001600160a01b0383165f9081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051614f0091815260200190565b60405180910390a350505050565b5f60208284031215614f1e575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610e38575f80fd5b6001600160a01b03811681146124b5575f80fd5b5f60208284031215614f71575f80fd5b8135610e3881614f4d565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610e386020830184614f7c565b5f8060408385031215614fcd575f80fd5b8235614fd881614f4d565b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff8111828210171561503657615036614fe6565b60405290565b6040516080810167ffffffffffffffff8111828210171561503657615036614fe6565b604051601f8201601f1916810167ffffffffffffffff8111828210171561508857615088614fe6565b604052919050565b5f67ffffffffffffffff8211156150a9576150a9614fe6565b50601f01601f191660200190565b5f82601f8301126150c6575f80fd5b81356150d96150d482615090565b61505f565b8181528460208386010111156150ed575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f806080858703121561511c575f80fd5b84359350602085013561512e81614f4d565b925060408501359150606085013567ffffffffffffffff811115615150575f80fd5b61515c878288016150b7565b91505092959194509250565b5f8060408385031215615179575f80fd5b50508035926020909101359150565b5f60208284031215615198575f80fd5b5035919050565b5f805f606084860312156151b1575f80fd5b83356151bc81614f4d565b925060208401356151cc81614f4d565b929592945050506040919091013590565b5f602082840312156151ed575f80fd5b813567ffffffffffffffff811115615203575f80fd5b610e0f848285016150b7565b5f805f8060808587031215615222575f80fd5b843561522d81614f4d565b93506020850135925060408501359150606085013567ffffffffffffffff811115615150575f80fd5b5f805f60608486031215615268575f80fd5b833561527381614f4d565b925060208401359150604084013567ffffffffffffffff811115615295575f80fd5b6152a1868287016150b7565b9150509250925092565b5f805f805f60a086880312156152bf575f80fd5b8535945060208601356152d181614f4d565b935060408601356152e181614f4d565b925060608601359150608086013567ffffffffffffffff811115615303575f80fd5b61530f888289016150b7565b9150509295509295909350565b5f806020838503121561532d575f80fd5b823567ffffffffffffffff80821115615344575f80fd5b818501915085601f830112615357575f80fd5b813581811115615365575f80fd5b8660208260051b8501011115615379575f80fd5b60209290920196919550909350505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b828110156153fe577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08886030184526153ec858351614f7c565b945092850192908501906001016153b2565b5092979650505050505050565b5f8083601f84011261541b575f80fd5b50813567ffffffffffffffff811115615432575f80fd5b602083019150836020828501011115613186575f80fd5b5f805f805f6080868803121561545d575f80fd5b85359450602086013561546f81614f4d565b935060408601359250606086013567ffffffffffffffff811115615491575f80fd5b61549d8882890161540b565b969995985093965092949392505050565b5f80604083850312156154bf575f80fd5b82356154ca81614f4d565b915060208301356154da81614f4d565b809150509250929050565b5f82601f8301126154f4575f80fd5b8135602067ffffffffffffffff82111561551057615510614fe6565b8160051b61551f82820161505f565b9283528481018201928281019087851115615538575f80fd5b83870192505b8483101561214c5782358252918301919083019061553e565b5f805f805f60a0868803121561556b575f80fd5b853561557681614f4d565b9450602086013561558681614f4d565b9350604086013561559681614f4d565b9250606086013567ffffffffffffffff808211156155b2575f80fd5b6155be89838a016154e5565b935060808801359150808211156155d3575f80fd5b5061530f888289016154e5565b80151581146124b5575f80fd5b5f805f8060608587031215615600575f80fd5b843593506020850135615612816155e0565b9250604085013567ffffffffffffffff81111561562d575f80fd5b6156398782880161540b565b95989497509550505050565b5f60208284031215615655575f80fd5b5051919050565b600181811c9082168061567057607f821691505b602082108103613fb9577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f602082840312156156b7575f80fd5b815160ff81168114610e38575f80fd5b5f82601f8301126156d6575f80fd5b81516156e46150d482615090565b8181528460208386010111156156f8575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f60208284031215615724575f80fd5b815167ffffffffffffffff8082111561573b575f80fd5b908301906040828603121561574e575f80fd5b615756615013565b825161576181614f4d565b8152602083015182811115615774575f80fd5b929092019160808387031215615788575f80fd5b61579061503c565b835161579b81614f4d565b81526020840151838111156157ae575f80fd5b6157ba888287016156c7565b6020830152506040840151838111156157d1575f80fd5b6157dd888287016156c7565b604083015250606084015193506157f384614f4d565b60608101939093526020810192909252509392505050565b5f6001600160a01b038085168352604060208401528084511660408401526020840151604060608501528181511660808501526020810151608060a0860152615858610100860182614f7c565b905060408201517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808683030160c08701526158938282614f7c565b9150508260608301511660e08601528093505050509392505050565b5f6001600160a01b03808916835280881660208401525085604083015284606083015283608083015260c060a08301526158ec60c0830184614f7c565b98975050505050505050565b602081526001600160a01b0382511660208201526020820151604082015260408201516060820152606082015160808201525f608083015160a080840152610e0f60c0840182614f7c565b6001600160a01b0384168152826020820152606060408201525f6126666060830184614f7c565b5f6001600160a01b03808816835280871660208401525084604083015283606083015260a0608083015261214c60a0830184614f7c565b602081526001600160a01b03825116602082015260208201516040820152604082015160608201525f6060830151608080840152610e0f60a0840182614f7c565b6001600160a01b0383168152604060208201525f610e0f6040830184614f7c565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b81810381811115610ab457610ab4615a03565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112615aa3575f80fd5b83018035915067ffffffffffffffff821115615abd575f80fd5b602001915036819003821315613186575f80fd5b828482375f8382015f815283518060208601835e5f910190815295945050505050565b5f815180845260208085019450602084015f5b83811015615b2357815187529582019590820190600101615b07565b509495945050505050565b602081525f6001600160a01b0380845116602084015280602085015116604084015250604083015160a06060840152615b6a60c0840182615af4565b90506060840151601f19848303016080850152615b878282615af4565b9150506080840151151560a08401528091505092915050565b6001600160a01b0386168152846020820152831515604082015260806060820152816080820152818360a08301375f81830160a090810191909152601f909201601f19160101949350505050565b602081528151602082015260208201516040820152604082015160608201526060820151151560808201525f608083015160a080840152610e0f60c0840182614f7c565b80820180821115610ab457610ab4615a03565b5f60208284031215615c55575f80fd5b8151610e3881614f4d565b5f60208284031215615c70575f80fd5b8151610e38816155e0565b5f6001600160a01b03808a16835280891660208401528088166040840152508560608301528460808301528360a083015260e060c0830152615cc060e0830184614f7c565b9998505050505050505050565b5f6001600160a01b038083511684528060208401511660208501525060408201516040840152606082015160608401526080820151608084015260a082015160c060a0850152610e0f60c0850182614f7c565b602081525f610e386020830184615ccd565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b601f821115610cde57805f5260205f20601f840160051c81016020851015615db15750805b601f840160051c820191505b818110156128a5575f8155600101615dbd565b815167ffffffffffffffff811115615dea57615dea614fe6565b615dfe81615df8845461565c565b84615d8c565b602080601f831160018114615e31575f8415615e1a5750858301515b5f19600386901b1c1916600185901b178555613573565b5f85815260208120601f198616915b82811015615e5f57888601518255948401946001909101908401615e40565b5085821015615e7c57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f60ff831680615e9e57615e9e615d5f565b8060ff84160691505092915050565b8082018281125f83128015821682158216171561203657612036615a03565b600181815b80851115615f0657815f1904821115615eec57615eec615a03565b80851615615ef957918102915b93841c9390800290615ed1565b509250929050565b5f82615f1c57506001610ab4565b81615f2857505f610ab4565b8160018114615f3e5760028114615f4857615f64565b6001915050610ab4565b60ff841115615f5957615f59615a03565b50506001821b610ab4565b5060208310610133831016604e8410600b8410161715615f87575081810a610ab4565b615f918383615ecc565b805f1904821115615fa457615fa4615a03565b029392505050565b5f610e388383615f0e565b5f82615fc557615fc5615d5f565b500490565b5f7f80000000000000000000000000000000000000000000000000000000000000008203614bb857614bb8615a0356"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405260043610610337575f3560e01c8063715018a6116101af578063bbec4d06116100eb578063dd62ed3e11610094578063e70689f51161006e578063e70689f5146109ab578063f2fde38b146109ca578063f5647943146109e9578063f5d214f514610a1e5761033e565b8063dd62ed3e146108ed578063e1e6b89814610950578063e5be7d901461098c5761033e565b8063c77b66c2116100c5578063c77b66c2146108b3578063d09edf31146108c6578063db2088f4146108da5761033e565b8063bbec4d0614610875578063c54cafee14610894578063c63d75b6146105635761033e565b80638da5cb5b11610158578063a9059cbb11610132578063a9059cbb146107b8578063ac9650d8146107d7578063ae57de0c14610803578063ae98b39f146108225761033e565b80638da5cb5b14610771578063921a4c421461078557806395d89b41146107a45761033e565b80637a7af70d116101895780637a7af70d1461072057806381c3fcb91461073357806385b68756146107525761033e565b8063715018a6146106ce578063770afee1146106e2578063786cd916146107015761033e565b8063276b11401161027e5780634abe413711610227578063633ac71711610201578063633ac7171461061e5780636ba235211461063d5780636c876b941461069057806370a08231146106af5761033e565b80634abe4137146105c157806356db02e8146105e057806359f89dda146105ff5761033e565b8063402d267d11610258578063402d267d14610563578063439fab9114610583578063488bd7b0146105a25761033e565b8063276b1140146104fe578063313ce5671461051157806338d52e0f146105375761033e565b806318160ddd116102e05780631f6759d3116102ba5780631f6759d31461048d57806323b872dd146104c05780632755c6c7146104df5761033e565b806318160ddd1461043b578063181e7b3b1461044f5780631e4344a11461046e5761033e565b806306fdde031161031157806306fdde03146103e8578063095ea7b3146104095780631423feba146104285761033e565b806301e1d1141461037357806301ffc9a71461039a578063058a628f146103c95761033e565b3661033e57005b73b7e24412126ad6a2ce19cbd79fd11b68e7f30cf6365f80375f80365f845af43d5f803e80801561036d573d5ff35b3d5ffd5b005b34801561037e575f80fd5b50610387610a51565b6040519081526020015b60405180910390f35b3480156103a5575f80fd5b506103b96103b4366004614f0e565b610a5f565b6040519015158152602001610391565b3480156103d4575f80fd5b506103716103e3366004614f61565b610aba565b3480156103f3575f80fd5b506103fc610ce3565b6040516103919190614faa565b348015610414575f80fd5b506103b9610423366004614fbc565b610db6565b610387610436366004615109565b610dcd565b348015610446575f80fd5b50610387610e17565b34801561045a575f80fd5b50610387610469366004615168565b610e20565b348015610479575f80fd5b50610371610488366004615188565b610e3f565b348015610498575f80fd5b507f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70054610387565b3480156104cb575f80fd5b506103b96104da36600461519f565b610ecb565b3480156104ea575f80fd5b506103716104f9366004614fbc565b610eee565b61038761050c366004615168565b611028565b34801561051c575f80fd5b50610525611053565b60405160ff9091168152602001610391565b348015610542575f80fd5b5061054b6110f8565b6040516001600160a01b039091168152602001610391565b34801561056e575f80fd5b5061038761057d366004614f61565b505f1990565b34801561058e575f80fd5b5061038761059d3660046151dd565b61112c565b3480156105ad575f80fd5b506103876105bc366004615168565b6113d1565b3480156105cc575f80fd5b506103876105db366004614fbc565b6113e9565b3480156105eb575f80fd5b506103876105fa36600461520f565b6114a3565b34801561060a575f80fd5b50610371610619366004615256565b6117e4565b348015610629575f80fd5b50610371610638366004614f61565b61181c565b348015610648575f80fd5b50610387610657366004614f61565b6001600160a01b03165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be701602052604090205490565b34801561069b575f80fd5b506103716106aa366004614f61565b611949565b3480156106ba575f80fd5b506103876106c9366004614f61565b611a49565b3480156106d9575f80fd5b50610371611a92565b3480156106ed575f80fd5b506103876106fc366004615256565b611aa5565b34801561070c575f80fd5b5061037161071b366004614fbc565b611c5f565b61038761072e366004615168565b611d90565b34801561073e575f80fd5b5061037161074d3660046151dd565b611da5565b34801561075d575f80fd5b5061038761076c366004614fbc565b611de1565b34801561077c575f80fd5b5061054b611ec4565b348015610790575f80fd5b5061038761079f3660046152ab565b611ecd565b3480156107af575f80fd5b506103fc611efa565b3480156107c3575f80fd5b506103b96107d2366004614fbc565b611f4b565b3480156107e2575f80fd5b506107f66107f136600461531c565b611f58565b604051610391919061538b565b34801561080e575f80fd5b5061038761081d3660046152ab565b61203e565b34801561082d575f80fd5b5061038761083c366004614f61565b6001600160a01b03165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be702602052604090205490565b348015610880575f80fd5b5061038761088f366004615168565b612061565b34801561089f575f80fd5b506103876108ae366004615449565b61206f565b6103876108c1366004615109565b612157565b3480156108d1575f80fd5b5061054b612186565b6103876108e8366004615168565b6121ae565b3480156108f8575f80fd5b506103876109073660046154ae565b6001600160a01b039182165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b34801561095b575f80fd5b507f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031661054b565b348015610997575f80fd5b506103716109a6366004615557565b6121c2565b3480156109b6575f80fd5b506103716109c53660046155ed565b6122f9565b3480156109d5575f80fd5b506103716109e4366004614f61565b612462565b3480156109f4575f80fd5b507fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd025442116103b9565b348015610a29575f80fd5b507fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0154610387565b5f610a5a610e17565b905090565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f59f89dda000000000000000000000000000000000000000000000000000000001480610ab45750610ab4826124b8565b92915050565b6040517f248a9ca30000000000000000000000000000000000000000000000000000000081527ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f8960048201525f906001600160a01b0383169063248a9ca390602401602060405180830381865afa158015610b37573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b5b9190615645565b905080610bca576040517f76728ed90000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201527ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f8960248201526044015b60405180910390fd5b6040517f248a9ca30000000000000000000000000000000000000000000000000000000081527f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e760048201525f906001600160a01b0384169063248a9ca390602401602060405180830381865afa158015610c47573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c6b9190615645565b905080610cd5576040517f76728ed90000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201527f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e76024820152604401610bc1565b610cde836125e6565b505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0380546060917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0091610d349061565c565b80601f0160208091040260200160405190810160405280929190818152602001828054610d609061565c565b8015610dab5780601f10610d8257610100808354040283529160200191610dab565b820191905f5260205f20905b815481529060010190602001808311610d8e57829003601f168201915b505050505091505090565b5f33610dc38185856125f7565b5060019392505050565b5f80610dd7612604565b90505f610df187610deb335b89865f61265b565b8761266f565b9050610e008787838588612685565b610e0b335b476128ac565b9150505b949350505050565b5f610a5a612955565b5f610e3883670de0b6b3a7640000612ab4565b612ab4565b9392505050565b610e47612ac0565b7f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be7008054821115610e75578181555b7fff9fd4facd8bd30d905cc7ffbd03e8829a414df4c6554d155d132c3377868a42610e9e611ec4565b8254604080516001600160a01b039093168352602083018690528201526060015b60405180910390a15050565b5f33610ed8858285612b0b565b610ee3858585612bbf565b506001949350505050565b610ef6612ac0565b805f03610f3a576040517f5a6084530000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610bc1565b6001600160a01b0382165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70260205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70090821115610fb7576001600160a01b0383165f90815260028201602052604090208290555b7fa1e5b368dc99c8558f28b1e7e8cb7ab542c989a4b697628ba7bfffe0aeaccffd610fe0611ec4565b6001600160a01b038581165f818152600286016020908152604091829020548251959094168552840191909152820185905260608201526080015b60405180910390a1505050565b5f8061104884611042335b3361103c612604565b5f61265b565b85612c4e565b9050610e3833610e05565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f308970152310243260080545f91906001600160a01b0316803b806110905760126110f0565b816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110f091906156a7565b935050505090565b5f807f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f30897015231024326005b546001600160a01b031692915050565b5f80611136612c65565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156111625750825b90505f8267ffffffffffffffff16600114801561117e5750303b155b90508115801561118c575080155b156111c3576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156112245784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b61122c612c8d565b5f878060200190518101906112419190615714565b90506112508160200151612cc6565b6020810151516001600160a01b031615611296576040517f8951799200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80516001600160a01b03166112d7576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6112e030612e39565b80516112eb90612f99565b7ffa89761502e992c8c755fba778ced00f4562485023f656906eb76f5dd65a9fe53360408051808201825284516001600160a01b0316815260208086015190820152905161133a92919061580b565b60405180910390a17fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc396505083156113c75784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b5f610e38836113e4335b3386600161265b565b613021565b5f61141b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031690565b6040517efdd58e0000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015260248201859052919091169062fdd58e90604401602060405180830381865afa15801561147f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e389190615645565b5f6114ac61302e565b825f036114e5576040517f312497b000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6115a98461151b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031690565b6040517efdd58e0000000000000000000000000000000000000000000000000000000081526001600160a01b038a81166004830152602482018a9052919091169062fdd58e90604401602060405180830381865afa15801561157f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115a39190615645565b9061305c565b905080156116c6577f88e2280ece62e9296d3578b77647db2c11f9fa7e42578e2db5d4262123ffae3e3387878785886040516115ea969594939291906158af565b60405180910390a17f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b03166001600160a01b031663043fa98733883360405160e085901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b03938416600482015291831660248301529091166044820152606481018890526084810184905260c060a48201525f60c482015260e4015f604051808303815f87803b1580156116af575f80fd5b505af11580156116c1573d5f803e3d5ffd5b505050505b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f3dd35eca0ca8a128757fa464a5dfa4ad6cc4853cad96dce4e90fdbea4f0a52e36040518060a001604052808c6001600160a01b031681526020018b81526020018a81526020018781526020018981525060405160200161175d91906158f8565b6040516020818303038152906040526040518463ffffffff1660e01b815260040161178a93929190615943565b5f604051808303815f87803b1580156117a1575f80fd5b505af11580156117b3573d5f803e3d5ffd5b5093945050505050610e0f60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b8282826040517f3ae4063b000000000000000000000000000000000000000000000000000000008152600401610bc193929190615943565b611824612ac0565b6001600160a01b0381165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70260205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be7009042116118d9576001600160a01b0382165f818152600283016020526040908190205490517f81a7897700000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610bc1565b6001600160a01b0382165f9081526002820160205260408120557fa1e5b368dc99c8558f28b1e7e8cb7ab542c989a4b697628ba7bfffe0aeaccffd61191c611ec4565b604080516001600160a01b03928316815291851660208301525f9082018190526060820152608001610ebf565b611951612ac0565b6001600160a01b0381165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70160205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be700904211611a06576001600160a01b0382165f818152600183016020526040908190205490517ff1b01b5400000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610bc1565b6001600160a01b0382165f9081526001820160205260408120557fd08871fffa9d03c01fcba597af5dfbe64cb26f207debdae1af2532695447499161191c611ec4565b5f80611a548361306b565b90505f611a5f61307e565b6001600160a01b0385165f90815260038201602052604081205491925090611a889084906130df565b5095945050505050565b611a9a612ac0565b611aa35f612f99565b565b5f611aae61302e565b825f03611ae7576040517f312497b000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f611af5846115a387611a49565b90508015611b47577f3fc1c49e72362e91416388fe7a107b92db924642476e83e701eeeb6256d7249e3386868487604051611b3495949392919061596a565b60405180910390a1611b47853383612bbf565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f54f0af3716c79b30b8c228679d31d77a1a5f526c16af3262730e0a8de4363fed60405180608001604052808b6001600160a01b031681526020018a815260200187815260200189815250604051602001611bd891906159a1565b6040516020818303038152906040526040518463ffffffff1660e01b8152600401611c0593929190615943565b5f604051808303815f87803b158015611c1c575f80fd5b505af1158015611c2e573d5f803e3d5ffd5b5093945050505050610e3860017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b611c67612ac0565b805f03611cab576040517ffd86061b0000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610bc1565b6001600160a01b0382165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70160205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70090821115611d28576001600160a01b0383165f90815260018201602052604090208290555b7fd08871fffa9d03c01fcba597af5dfbe64cb26f207debdae1af25326954474991611d51611ec4565b6001600160a01b038581165f8181526001860160209081526040918290205482519590941685528401919091528201859052606082015260800161101b565b5f8061104884611d9f33611033565b8561266f565b7fdaffad82f53a38a62340f14cdd6fd3b437c5dcda6b32029dac1e661dbce28b2d3382604051611dd69291906159e2565b60405180910390a150565b5f80611df0848585600161265b565b9050805f03611e02575f915050610ab4565b610e0f611e367f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031690565b6040517efdd58e0000000000000000000000000000000000000000000000000000000081526001600160a01b03878116600483015260248201879052919091169062fdd58e90604401602060405180830381865afa158015611e9a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ebe9190615645565b82612ab4565b5f610a5a61318d565b5f80611ee087610e33878988600161265b565b9050611ef08187878a88886131b5565b9695505050505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0480546060917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0091610d349061565c565b5f33610dc3818585612bbf565b604080515f8152602081019091526060908267ffffffffffffffff811115611f8257611f82614fe6565b604051908082528060200260200182016040528015611fb557816020015b6060815260200190600190039081611fa05790505b5091505f5b838110156120365761201130868684818110611fd857611fd8615a43565b9050602002810190611fea9190615a70565b85604051602001611ffd93929190615ad1565b60405160208183030381529060405261357b565b83828151811061202357612023615a43565b6020908102919091010152600101611fba565b505092915050565b5f80612051876113e4878988600161265b565b9050611ef08787878488886131b5565b5f610e3883610e33336113db565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd01545f907fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd00908511156120f1576040517fe4a4718200000000000000000000000000000000000000000000000000000000815260048101869052602401610bc1565b5f61210888612102338a8a5f61265b565b5f61266f565b905061214c8888838989898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061268592505050565b979650505050505050565b5f80612161612604565b90505f6121778761217133610de3565b87612c4e565b9050610e008187898588612685565b5f807fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0061111c565b5f8061104884670de0b6b3a7640000612102565b6121cf8585858585613616565b6121d98484613679565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080546040805160a0810182526001600160a01b0388811682528781166020830152918101869052606081018590529116906359f89dda9088907f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a4890608081016122837fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0254421190565b151590526040516122979190602001615b2e565b6040516020818303038152906040526040518463ffffffff1660e01b81526004016122c493929190615943565b5f604051808303815f87803b1580156122db575f80fd5b505af11580156122ed573d5f803e3d5ffd5b50505050505050505050565b835f03612332576040517f8672985d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0090505f6040518060a001604052808360020154815260200183600201548152602001878152602001861515815260200185858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152505050915250905084806123cc5750816002015486115b156123e05760028201869055602081018690525b7f7ef5cae78e9bd364afb19bb0f8a881a6d156e35a119e28c0d17524e5079581583387878787604051612417959493929190615ba0565b60405180910390a181546001600160a01b03166359f89dda337f50a07cb25d0d864370863300b20987dfdae089abad71b607faf639d09d053391846040516020016122979190615bee565b61246a612ac0565b6001600160a01b0381166124ac576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6124b581612f99565b50565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fe5be7d9000000000000000000000000000000000000000000000000000000000148061254a57507fffffffff0000000000000000000000000000000000000000000000000000000082167f439fab9100000000000000000000000000000000000000000000000000000000145b8061259657507fffffffff0000000000000000000000000000000000000000000000000000000082167fe1e6b89800000000000000000000000000000000000000000000000000000000145b80610ab457507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610ab4565b6125ee612ac0565b6124b581612e39565b610cde8383836001613739565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd01545f907fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0090612655906001615c32565b91505090565b5f670de0b6b3a76400005b95945050505050565b5f61267a8284613861565b610e0f84845f6138a5565b61268d61302e565b845f036126c6576040517fc7838b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825f036126ff576040517ffc8c806300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03841661273f576040517f6ba9ecd800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f0361277a576040517fe4a471820000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b7f3377bcbed49a0c0005e53931cd8fe7334b5371523e5de784c0d0d3d01089cfea3385878686866040516127b3969594939291906158af565b60405180910390a16127c885858585856138ba565b6127d28484613915565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546040517f6d5b3f780000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690636d5b3f7890612842903390889087908990889060040161596a565b5f604051808303815f87803b158015612859575f80fd5b505af115801561286b573d5f803e3d5ffd5b5050505061287c8585858585613962565b6128a560017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5050505050565b804710156128ef576040517fcf47918100000000000000000000000000000000000000000000000000000000815247600482015260248101829052604401610bc1565b612908828260405180602001604052805f815250613a0e565b15612911575050565b3d156129235761291f613a23565b5050565b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8061295f61307e565b60028101549091505f0361297557612655613a2e565b5f6129845f1960036001613a93565b90505f5b5f198214610e38575f8360020183815481106129a6576129a6615a43565b905f5260205f2090600502015f0154905060028103612a83575f612a738560020185815481106129d8576129d8615a43565b905f5260205f20906005020160040180546129f29061565c565b80601f0160208091040260200160405190810160405280929190818152602001828054612a1e9061565c565b8015612a695780601f10612a4057610100808354040283529160200191612a69565b820191905f5260205f20905b815481529060010190602001808311612a4c57829003601f168201915b5050505050613b8e565b9050612a7f8382613ba3565b9250505b5f838152600485016020526040902054612a9d9083615c32565b9150612aac8360036001613a93565b925050612988565b5f610e38838383613c27565b33612ac9611ec4565b6001600160a01b031614611aa3576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610bc1565b6001600160a01b038381165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160209081526040808320938616835292905220545f19811015612bb95781811015612bab576040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201526024810182905260448101839052606401610bc1565b612bb984848484035f613739565b50505050565b6001600160a01b038316612c01576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6001600160a01b038216612c43576040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b610cde838383613c3c565b5f612c598284613861565b610e0f84846001613c27565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610ab4565b425f03611aa3576040517f789a532d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612cce613c8f565b612ce081602001518260400151613c97565b80517f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f308970152310243260080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b0393841617825560608401517f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601805490921693169283179055604080517f481c6a75000000000000000000000000000000000000000000000000000000008152905191925f92909163481c6a759160048083019260209291908290030181865afa158015612dc0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612de49190615c45565b90506001600160a01b0381163014610cde576040517f7935475e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b0382166024820152604401610bc1565b6040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f59f89dda0000000000000000000000000000000000000000000000000000000060048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa158015612eb4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ed89190615c60565b612f0e576040517ffd12061600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03831690811782556040805133815260208101929092527fa8c713fe8fb360697fc0daab836d85208a605d485fbc265aea0f773fc6cdd71a9101610ebf565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f610e38838360016138a5565b613036613ca9565b60027f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5f828218828410028218610e38565b5f8061307683613d04565b549392505050565b5f8060ff196130ae60017f2f8f8ecf1b7a1a3ceda8d15a9a2247a2377b3434535a87f1728021c13fec2e71615a30565b6040516020016130c091815260200190565b60408051601f1981840301815291905280516020909101201692915050565b5f8082816130eb61307e565b9050855f6130fc8760036001613a93565b90505b5f19811461317e57925082811580159061313c5750600283600201828154811061312b5761312b615a43565b905f5260205f2090600502015f0154145b1561316a575f61315a8460020183815481106129d8576129d8615a43565b90506131668382613ba3565b9250505b6131778160036001613a93565b90506130ff565b509350909150505b9250929050565b5f807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930061111c565b6131bd61302e565b855f036131f6576040517fc7838b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825f0361322f576040517ffc8c806300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03851661326f576040517f6ba9ecd800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0384166132af576040517f9905827b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f036132eb576040517fe4a4718200000000000000000000000000000000000000000000000000000000815260048101839052602401610bc1565b7f2845b9458bcc357e1abfe8de7f6832dfe7220596a053496b33d0deb6577d8d2a338686898787876040516133269796959493929190615c7b565b60405180910390a16001600160a01b038416331461349557613349843385612b0b565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b03166001600160a01b031663e985e9c585336040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa1580156133e5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134099190615c60565b613495576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60448201527f6572206f7220617070726f7665640000000000000000000000000000000000006064820152608401610bc1565b61349f8484613d71565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546040517fc2530e390000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063c2530e399061350f903390889087908990889060040161596a565b5f604051808303815f87803b158015613526575f80fd5b505af1158015613538573d5f803e3d5ffd5b5050505061354a868686868686613dbe565b61357360017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b505050505050565b60605f6135888484613ec7565b90508080156135a957505f3d11806135a957505f846001600160a01b03163b115b156135be576135b6613eda565b915050610ab4565b8015613601576040517f9996b3150000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610bc1565b3d156129235761360f613a23565b5092915050565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031633146128a5576040517f8813aac300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be700805442118015906136c257506001600160a01b0383165f908152600182016020526040902054155b80156136e557506001600160a01b0382165f908152600282016020526040902054155b15610cde5780546040517f79d7155100000000000000000000000000000000000000000000000000000000815260048101919091526001600160a01b03808516602483015283166044820152606401610bc1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b03851661379c576040517fe602df050000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6001600160a01b0384166137de576040517f94280d620000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6001600160a01b038086165f908152600183016020908152604080832093881683529290522083905581156128a557836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258560405161385291815260200190565b60405180910390a35050505050565b8181101561291f576040517fa3e322340000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610bc1565b5f610e0f8484670de0b6b3a764000085613ef3565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd01547fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd00906139089084613f35565b6001909101555050505050565b6001600160a01b038216613957576040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b61291f5f8383613c3c565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8216040518060c001604052806139cb3390565b6001600160a01b031681526020018a6001600160a01b031681526020018881526020018b8152602001898152602001878152506040516020016122979190615d20565b5f805f83516020850186885af1949350505050565b6040513d5f823e3d81fd5b5f8060ff19613a5e60017fb750591399365444a618527b69a54ce09476c8bde1ecff60f5aa1fe2b52605ff615a30565b604051602001613a7091815260200190565b60408051808303601f190181529190528051602090910120166002015492915050565b5f600783168103613ad0576040517fbf3cad0b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f613ad961307e565b60028101549091505f03613af1575f19915050610e38565b5f5f198614613b2457816002018681548110613b0f57613b0f615a43565b905f5260205f20906005020160030154613b27565b81545b90506002846002811115613b3d57613b3d615d32565b03613b5f57613b5682613b508484613f44565b87613fbf565b92505050610e38565b6001846002811115613b7357613b73615d32565b03613b8357613b56828287614017565b611ef0828287613fbf565b5f81806020019051810190610ab49190615645565b5f7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115613c01576040517fbf463fe900000000000000000000000000000000000000000000000000000000815260048101849052602401610bc1565b5f613c1e613c18613c12865f614084565b856140de565b5f614140565b50949350505050565b5f610e0f84670de0b6b3a76400008585613ef3565b613c44614181565b613c4d836141e7565b613c56826141e7565b613c618383836142d4565b6001600160a01b038316613c7857610cde81614434565b6001600160a01b038216610cde57610cde81614477565b611aa36144b1565b613c9f6144b1565b61291f82826144ef565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0054600203611aa3576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8060ff19613d3460017fb750591399365444a618527b69a54ce09476c8bde1ecff60f5aa1fe2b52605ff615a30565b604051602001613d4691815260200190565b60408051601f1981840301815291815281516020928301205f96875292909216905290922092915050565b6001600160a01b038216613db3576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b61291f825f83613c3c565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e9828696040518060c001604052808a6001600160a01b031681526020018b6001600160a01b031681526020018881526020018c815260200189815260200187815250604051602001613e649190615d20565b6040516020818303038152906040526040518463ffffffff1660e01b8152600401613e9193929190615943565b5f604051808303815f87803b158015613ea8575f80fd5b505af1158015613eba573d5f803e3d5ffd5b5050505050505050505050565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b5f613f20613f0083614552565b8015613f1b57505f8480613f1657613f16615d5f565b868809115b151590565b613f2b86868661457e565b6126669190615c32565b5f828218828411028218610e38565b5f5b5f198214158015613f88575042836002018381548110613f6857613f68615a43565b5f91825260209091206001600590920201015467ffffffffffffffff1611155b15613fb957826002018281548110613fa257613fa2615a43565b905f5260205f209060050201600301549150613f46565b50919050565b5f5b5f19831461400d575f846002018481548110613fdf57613fdf615a43565b905f5260205f209060050201905082815f0154165f146140025783915050610e38565b600301549250613fc1565b505f199392505050565b5f5b5f19831461400d575f84600201848154811061403757614037615a43565b5f918252602090912060059091020160018101549091504267ffffffffffffffff9091161115614067575061400d565b80548316156140795783915050610e38565b600301549250614019565b5f805f614091858561462e565b91509150806140d6576040517f22c9f7bb0000000000000000000000000000000000000000000000000000000081526004810186905260248101859052604401610bc1565b509392505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d848061412386868686614734565b915091505f6141328383614853565b9a9950505050505050505050565b5f807bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8416601b0b60e085901d6141748282876148b1565b9350935050509250929050565b5f61418a61307e565b60028101549091505f0361419b5750565b5f6141b0826005015460026001176001613a93565b90505f195b5f1982146141d35750806141cc8160036001613a93565b91506141b5565b5f198114610cde5760058301819055505050565b6001600160a01b0381166141f85750565b5f61420161307e565b6001600160a01b0383165f9081526003820160205260408120549192506142278461306b565b90505f8061423583856130df565b9150915083810361424857505050505050565b6001600160a01b0386165f9081526003860160205260409020819055818314614275576142758683614a9c565b6040805185815260208101839052908101849052606081018390526001600160a01b038716907f36a2eb39b73568d38e98721588b15b309c9380e1b1ab575c2c3d71d5148ccb4a9060800160405180910390a261357384848385614aae565b6142de8383613679565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a6040518060800160405280896001600160a01b03168152602001886001600160a01b0316815260200187815260200161438e7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0254421190565b151590526040805182516001600160a01b03908116602080840191909152840151168183015290820151606080830191909152909101511515608082015260a0016040516020818303038152906040526040518463ffffffff1660e01b81526004016143fc93929190615943565b5f604051808303815f87803b158015614413575f80fd5b505af1158015614425573d5f803e3d5ffd5b50505050612bb9848484614b0b565b5f61443d61307e565b60028101549091501561291f5760058101545f9081526004820160205260408120805484929061446e908490615c32565b90915550505050565b5f61448061307e565b60028101549091501561291f5760058101545f9081526004820160205260408120805484929061446e908490615a30565b6144b9614b16565b611aa3576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6144f76144b1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace007f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace036145438482615dd0565b5060048101612bb98382615dd0565b5f600282600381111561456757614567615d32565b6145719190615e8c565b60ff166001149050919050565b5f805f61458b8686614b34565b91509150815f036145af578381816145a5576145a5615d5f565b0492505050610e38565b8184116145c6576145c66003851502601118614b50565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010185841190960395909502919093039390930492909217029150509392505050565b5f601b83900b8314838382614692577d90e40fbeea1d3a4abc8955e946fe31cdcf66f634e100000000000000000086051561467257620186a0860595506005850194505b8586601b0b1461468d57600a86059550846001019450614672565b6146a8565b855f036146a857505f9250600191506131869050565b848560030b14614704575f8512156146c857505f92508291506131869050565b6040517fd556b1110000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610bc1565b50507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841660e084901b1791509250929050565b5f808515841517801561474c575f92505f9150614849565b6147568487615ead565b91505f61476288614b61565b90505f61476e87614b61565b90505f61477b8383614b34565b5090505f6f0785ee10d5da46d900f436a0000000008211156147b0576f0785ee10d5da46d900f436a000000000820491506025015b670de0b6b3a76400008211156147d157670de0b6b3a7640000820491506012015b633b9aca008211156147ea57633b9aca00820491506009015b6127108211156147ff57612710820491506004015b811561481357600a820491506001016147ff565b61481d8187615ead565b955061483f8b8a614839878761483487600a615fac565b614bc2565b89614c9d565b9097509550505050505b5094509492505050565b5f805f614860858561462e565b9150915080158015614870575081155b156140d6576040517f8eba4d070000000000000000000000000000000000000000000000000000000081526004810186905260248101859052604401610bc1565b5f805f8512156148f7576040517f4a7d166b0000000000000000000000000000000000000000000000000000000081526004810186905260248101859052604401610bc1565b845f0361490957505f90506001614a94565b8460ff8416850185811215614954576040517fd556b1110000000000000000000000000000000000000000000000000000000081526004810188905260248101879052604401610bc1565b5f805f8312156149be577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb3831215614995575f809550955050505050614a94565b825f03600a0a91508184816149ac576149ac615d5f565b0495505084029091149150614a949050565b5f831315614a8957604d831315614a14576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff88166044820152606401610bc1565b82600a0a9150815f1981614a2a57614a2a615d5f565b04841115614a77576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff88166044820152606401610bc1565b5091909102925060019150614a949050565b509193506001925050505b935093915050565b5f614aa683613d04565b919091555050565b5f614ab761307e565b905083816004015f8781526020019081526020015f205f828254614adb9190615a30565b90915550505f83815260048201602052604081208054849290614aff908490615c32565b90915550505050505050565b610cde838383614da9565b5f614b1f612c65565b5468010000000000000000900460ff16919050565b5f805f1983850993909202808410938190039390930393915050565b634e487b715f52806020526024601cfd5b5f80821215614bbe577f80000000000000000000000000000000000000000000000000000000000000008203614bb857507f8000000000000000000000000000000000000000000000000000000000000000919050565b505f0390565b5090565b5f805f614bcf8686614b34565b91509150815f03614be9578381816145a5576145a5615d5f565b838210614c33576040517f6c59da12000000000000000000000000000000000000000000000000000000008152600481018790526024810186905260448101859052606401610bc1565b5f84868809600186198101871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103025f82900382900490920185841190960395909502919093039390930492909217029150509392505050565b5f805f8587181215614d67577f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841115614d5457614cfc7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001615c32565b8403614d2c57507f8000000000000000000000000000000000000000000000000000000000000000905081614da0565b614d37600a85615fb7565b614d4090615fca565b614d4b846001615ead565b91509150614da0565b614d5d84615fca565b8391509150614da0565b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841115614d9a57614d40600a85615fb7565b50829050815b94509492505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b038416614df65781816002015f828254614deb9190615c32565b90915550614e7f9050565b6001600160a01b0384165f9081526020829052604090205482811015614e61576040517fe450d38c0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024810182905260448101849052606401610bc1565b6001600160a01b0385165f9081526020839052604090209083900390555b6001600160a01b038316614e9d576002810180548390039055614ebb565b6001600160a01b0383165f9081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051614f0091815260200190565b60405180910390a350505050565b5f60208284031215614f1e575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610e38575f80fd5b6001600160a01b03811681146124b5575f80fd5b5f60208284031215614f71575f80fd5b8135610e3881614f4d565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610e386020830184614f7c565b5f8060408385031215614fcd575f80fd5b8235614fd881614f4d565b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff8111828210171561503657615036614fe6565b60405290565b6040516080810167ffffffffffffffff8111828210171561503657615036614fe6565b604051601f8201601f1916810167ffffffffffffffff8111828210171561508857615088614fe6565b604052919050565b5f67ffffffffffffffff8211156150a9576150a9614fe6565b50601f01601f191660200190565b5f82601f8301126150c6575f80fd5b81356150d96150d482615090565b61505f565b8181528460208386010111156150ed575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f806080858703121561511c575f80fd5b84359350602085013561512e81614f4d565b925060408501359150606085013567ffffffffffffffff811115615150575f80fd5b61515c878288016150b7565b91505092959194509250565b5f8060408385031215615179575f80fd5b50508035926020909101359150565b5f60208284031215615198575f80fd5b5035919050565b5f805f606084860312156151b1575f80fd5b83356151bc81614f4d565b925060208401356151cc81614f4d565b929592945050506040919091013590565b5f602082840312156151ed575f80fd5b813567ffffffffffffffff811115615203575f80fd5b610e0f848285016150b7565b5f805f8060808587031215615222575f80fd5b843561522d81614f4d565b93506020850135925060408501359150606085013567ffffffffffffffff811115615150575f80fd5b5f805f60608486031215615268575f80fd5b833561527381614f4d565b925060208401359150604084013567ffffffffffffffff811115615295575f80fd5b6152a1868287016150b7565b9150509250925092565b5f805f805f60a086880312156152bf575f80fd5b8535945060208601356152d181614f4d565b935060408601356152e181614f4d565b925060608601359150608086013567ffffffffffffffff811115615303575f80fd5b61530f888289016150b7565b9150509295509295909350565b5f806020838503121561532d575f80fd5b823567ffffffffffffffff80821115615344575f80fd5b818501915085601f830112615357575f80fd5b813581811115615365575f80fd5b8660208260051b8501011115615379575f80fd5b60209290920196919550909350505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b828110156153fe577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08886030184526153ec858351614f7c565b945092850192908501906001016153b2565b5092979650505050505050565b5f8083601f84011261541b575f80fd5b50813567ffffffffffffffff811115615432575f80fd5b602083019150836020828501011115613186575f80fd5b5f805f805f6080868803121561545d575f80fd5b85359450602086013561546f81614f4d565b935060408601359250606086013567ffffffffffffffff811115615491575f80fd5b61549d8882890161540b565b969995985093965092949392505050565b5f80604083850312156154bf575f80fd5b82356154ca81614f4d565b915060208301356154da81614f4d565b809150509250929050565b5f82601f8301126154f4575f80fd5b8135602067ffffffffffffffff82111561551057615510614fe6565b8160051b61551f82820161505f565b9283528481018201928281019087851115615538575f80fd5b83870192505b8483101561214c5782358252918301919083019061553e565b5f805f805f60a0868803121561556b575f80fd5b853561557681614f4d565b9450602086013561558681614f4d565b9350604086013561559681614f4d565b9250606086013567ffffffffffffffff808211156155b2575f80fd5b6155be89838a016154e5565b935060808801359150808211156155d3575f80fd5b5061530f888289016154e5565b80151581146124b5575f80fd5b5f805f8060608587031215615600575f80fd5b843593506020850135615612816155e0565b9250604085013567ffffffffffffffff81111561562d575f80fd5b6156398782880161540b565b95989497509550505050565b5f60208284031215615655575f80fd5b5051919050565b600181811c9082168061567057607f821691505b602082108103613fb9577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f602082840312156156b7575f80fd5b815160ff81168114610e38575f80fd5b5f82601f8301126156d6575f80fd5b81516156e46150d482615090565b8181528460208386010111156156f8575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f60208284031215615724575f80fd5b815167ffffffffffffffff8082111561573b575f80fd5b908301906040828603121561574e575f80fd5b615756615013565b825161576181614f4d565b8152602083015182811115615774575f80fd5b929092019160808387031215615788575f80fd5b61579061503c565b835161579b81614f4d565b81526020840151838111156157ae575f80fd5b6157ba888287016156c7565b6020830152506040840151838111156157d1575f80fd5b6157dd888287016156c7565b604083015250606084015193506157f384614f4d565b60608101939093526020810192909252509392505050565b5f6001600160a01b038085168352604060208401528084511660408401526020840151604060608501528181511660808501526020810151608060a0860152615858610100860182614f7c565b905060408201517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808683030160c08701526158938282614f7c565b9150508260608301511660e08601528093505050509392505050565b5f6001600160a01b03808916835280881660208401525085604083015284606083015283608083015260c060a08301526158ec60c0830184614f7c565b98975050505050505050565b602081526001600160a01b0382511660208201526020820151604082015260408201516060820152606082015160808201525f608083015160a080840152610e0f60c0840182614f7c565b6001600160a01b0384168152826020820152606060408201525f6126666060830184614f7c565b5f6001600160a01b03808816835280871660208401525084604083015283606083015260a0608083015261214c60a0830184614f7c565b602081526001600160a01b03825116602082015260208201516040820152604082015160608201525f6060830151608080840152610e0f60a0840182614f7c565b6001600160a01b0383168152604060208201525f610e0f6040830184614f7c565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b81810381811115610ab457610ab4615a03565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112615aa3575f80fd5b83018035915067ffffffffffffffff821115615abd575f80fd5b602001915036819003821315613186575f80fd5b828482375f8382015f815283518060208601835e5f910190815295945050505050565b5f815180845260208085019450602084015f5b83811015615b2357815187529582019590820190600101615b07565b509495945050505050565b602081525f6001600160a01b0380845116602084015280602085015116604084015250604083015160a06060840152615b6a60c0840182615af4565b90506060840151601f19848303016080850152615b878282615af4565b9150506080840151151560a08401528091505092915050565b6001600160a01b0386168152846020820152831515604082015260806060820152816080820152818360a08301375f81830160a090810191909152601f909201601f19160101949350505050565b602081528151602082015260208201516040820152604082015160608201526060820151151560808201525f608083015160a080840152610e0f60c0840182614f7c565b80820180821115610ab457610ab4615a03565b5f60208284031215615c55575f80fd5b8151610e3881614f4d565b5f60208284031215615c70575f80fd5b8151610e38816155e0565b5f6001600160a01b03808a16835280891660208401528088166040840152508560608301528460808301528360a083015260e060c0830152615cc060e0830184614f7c565b9998505050505050505050565b5f6001600160a01b038083511684528060208401511660208501525060408201516040840152606082015160608401526080820151608084015260a082015160c060a0850152610e0f60c0850182614f7c565b602081525f610e386020830184615ccd565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b601f821115610cde57805f5260205f20601f840160051c81016020851015615db15750805b601f840160051c820191505b818110156128a5575f8155600101615dbd565b815167ffffffffffffffff811115615dea57615dea614fe6565b615dfe81615df8845461565c565b84615d8c565b602080601f831160018114615e31575f8415615e1a5750858301515b5f19600386901b1c1916600185901b178555613573565b5f85815260208120601f198616915b82811015615e5f57888601518255948401946001909101908401615e40565b5085821015615e7c57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f60ff831680615e9e57615e9e615d5f565b8060ff84160691505092915050565b8082018281125f83128015821682158216171561203657612036615a03565b600181815b80851115615f0657815f1904821115615eec57615eec615a03565b80851615615ef957918102915b93841c9390800290615ed1565b509250929050565b5f82615f1c57506001610ab4565b81615f2857505f610ab4565b8160018114615f3e5760028114615f4857615f64565b6001915050610ab4565b60ff841115615f5957615f59615a03565b50506001821b610ab4565b5060208310610133831016604e8410600b8410161715615f87575081810a610ab4565b615f918383615ecc565b805f1904821115615fa457615fa4615a03565b029392505050565b5f610e388383615f0e565b5f82615fc557615fc5615d5f565b500490565b5f7f80000000000000000000000000000000000000000000000000000000000000008203614bb857614bb8615a0356"; diff --git a/src/generated/0_1_4/StoxUnifiedDeployer.pointers.sol b/src/generated/0_1_4/StoxUnifiedDeployer.pointers.sol deleted file mode 100644 index 3819204f..00000000 --- a/src/generated/0_1_4/StoxUnifiedDeployer.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x76b90443c401cb2071b31fbf0596f931e01315c358b9db4e4db998107dc2e62c); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x48E1A9091E89f5500AfC9d42FBB85bE8b4f70203); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"6080604052348015600e575f80fd5b506106308061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c806301ffc9a714610038578063733e1f8d1461005f575b5f80fd5b61004b6100463660046102a3565b610074565b604051901515815260200160405180910390f35b61007261006d36600461042d565b61010c565b005b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f733e1f8d00000000000000000000000000000000000000000000000000000000148061010657507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6040517f4904fab30000000000000000000000000000000000000000000000000000000081525f9073679ab223dab158ea93e1a4f49104de436c58eab890634904fab39061015e908590600401610570565b6020604051808303815f875af115801561017a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061019e9190610615565b6040517fd786858b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201529091505f90736b4232f1046f1f1bb99a1184d886bbaf3cd7e15a9063d786858b906024016020604051808303815f875af1158015610220573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102449190610615565b6040805133815273ffffffffffffffffffffffffffffffffffffffff858116602083015283168183015290519192507fa0d99d93cf7a5f89661fa0829369a7e4896e755871efe65440bab2429387d55b919081900360600190a1505050565b5f602082840312156102b3575f80fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146102e2575f80fd5b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff81118282101715610339576103396102e9565b60405290565b6040516080810167ffffffffffffffff81118282101715610339576103396102e9565b73ffffffffffffffffffffffffffffffffffffffff81168114610383575f80fd5b50565b5f82601f830112610395575f80fd5b813567ffffffffffffffff808211156103b0576103b06102e9565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156103f6576103f66102e9565b8160405283815286602085880101111561040e575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f6020828403121561043d575f80fd5b813567ffffffffffffffff80821115610454575f80fd5b9083019060408286031215610467575f80fd5b61046f610316565b823561047a81610362565b815260208301358281111561048d575f80fd5b9290920191608083870312156104a1575f80fd5b6104a961033f565b83356104b481610362565b81526020840135838111156104c7575f80fd5b6104d388828701610386565b6020830152506040840135838111156104ea575f80fd5b6104f688828701610386565b6040830152506060840135935061050c84610362565b60608101939093526020810192909252509392505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f73ffffffffffffffffffffffffffffffffffffffff808451166020840152602084015160408085015281815116606085015260208101516080808601526105bf60e0860182610524565b905060408201517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08683030160a08701526105fa8282610524565b9150508260608301511660c086015280935050505092915050565b5f60208284031215610625575f80fd5b81516102e28161036256"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b5060043610610034575f3560e01c806301ffc9a714610038578063733e1f8d1461005f575b5f80fd5b61004b6100463660046102a3565b610074565b604051901515815260200160405180910390f35b61007261006d36600461042d565b61010c565b005b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f733e1f8d00000000000000000000000000000000000000000000000000000000148061010657507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6040517f4904fab30000000000000000000000000000000000000000000000000000000081525f9073679ab223dab158ea93e1a4f49104de436c58eab890634904fab39061015e908590600401610570565b6020604051808303815f875af115801561017a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061019e9190610615565b6040517fd786858b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201529091505f90736b4232f1046f1f1bb99a1184d886bbaf3cd7e15a9063d786858b906024016020604051808303815f875af1158015610220573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102449190610615565b6040805133815273ffffffffffffffffffffffffffffffffffffffff858116602083015283168183015290519192507fa0d99d93cf7a5f89661fa0829369a7e4896e755871efe65440bab2429387d55b919081900360600190a1505050565b5f602082840312156102b3575f80fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146102e2575f80fd5b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff81118282101715610339576103396102e9565b60405290565b6040516080810167ffffffffffffffff81118282101715610339576103396102e9565b73ffffffffffffffffffffffffffffffffffffffff81168114610383575f80fd5b50565b5f82601f830112610395575f80fd5b813567ffffffffffffffff808211156103b0576103b06102e9565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156103f6576103f66102e9565b8160405283815286602085880101111561040e575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f6020828403121561043d575f80fd5b813567ffffffffffffffff80821115610454575f80fd5b9083019060408286031215610467575f80fd5b61046f610316565b823561047a81610362565b815260208301358281111561048d575f80fd5b9290920191608083870312156104a1575f80fd5b6104a961033f565b83356104b481610362565b81526020840135838111156104c7575f80fd5b6104d388828701610386565b6020830152506040840135838111156104ea575f80fd5b6104f688828701610386565b6040830152506060840135935061050c84610362565b60608101939093526020810192909252509392505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f73ffffffffffffffffffffffffffffffffffffffff808451166020840152602084015160408085015281815116606085015260208101516080808601526105bf60e0860182610524565b905060408201517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08683030160a08701526105fa8282610524565b9150508260608301511660c086015280935050505092915050565b5f60208284031215610625575f80fd5b81516102e28161036256"; diff --git a/src/generated/0_1_4/StoxWrappedTokenVault.pointers.sol b/src/generated/0_1_4/StoxWrappedTokenVault.pointers.sol deleted file mode 100644 index 18c6e307..00000000 --- a/src/generated/0_1_4/StoxWrappedTokenVault.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x6de4c556c1811293da4ad2e509ee476f3eb635f019845087e1d2777a1b272034); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x0D99e0174DbF885ceD6AE8dEb939b0F890450099); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"6080604052348015600e575f80fd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b611de4806100d65f395ff3fe608060405234801561000f575f80fd5b50600436106101b0575f3560e01c806370a08231116100f3578063c4d66de811610093578063ce96cb771161006e578063ce96cb77146103c9578063d905777e146103dc578063dd62ed3e146103ef578063ef8b30f7146103b6575f80fd5b8063c4d66de8146103a3578063c63d75b6146102bb578063c6e6f592146103b6575f80fd5b8063a9059cbb116100ce578063a9059cbb14610357578063b3d7f6b91461036a578063b460af941461037d578063ba08765214610390575f80fd5b806370a08231146102f557806394bf804d1461033c57806395d89b411461034f575f80fd5b806323b872dd1161015e578063402d267d11610139578063402d267d146102bb578063439fab91146102cf5780634cdad506146101e45780636e553f65146102e2575f80fd5b806323b872dd14610254578063313ce5671461026757806338d52e0f14610281575f80fd5b8063095ea7b31161018e578063095ea7b3146101f75780630a28a4771461021a57806318160ddd1461022d575f80fd5b806301e1d114146101b457806306fdde03146101cf57806307a2d13a146101e4575b5f80fd5b6101bc610446565b6040519081526020015b60405180910390f35b6101d76104fe565b6040516101c69190611758565b6101bc6101f236600461178d565b6105b6565b61020a6102053660046117b8565b6105c7565b60405190151581526020016101c6565b6101bc61022836600461178d565b6105de565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02546101bc565b61020a6102623660046117e2565b6105ea565b61026f61060f565b60405160ff90911681526020016101c6565b7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546040516001600160a01b0390911681526020016101c6565b6101bc6102c9366004611820565b505f1990565b6101bc6102dd36600461183b565b610662565b6101bc6102f03660046118a7565b61089d565b6101bc610303366004611820565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00602052604090205490565b6101bc61034a3660046118a7565b6108ce565b6101d76108e9565b61020a6103653660046117b8565b61098d565b6101bc61037836600461178d565b61099a565b6101bc61038b3660046118d5565b6109a6565b6101bc61039e3660046118d5565b610a28565b6101bc6103b1366004611820565b610aa1565b6101bc6103c436600461178d565b610ad4565b6101bc6103d7366004611820565b610adf565b6101bc6103ea366004611820565b610ae8565b6101bc6103fd366004611914565b6001600160a01b039182165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b5f6104787f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa1580156104d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104f99190611940565b905090565b60606105317f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b6001600160a01b03166306fdde036040518163ffffffff1660e01b81526004015f60405180830381865afa15801561056b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526105929190810190611984565b6040516020016105a29190611a46565b604051602081830303815290604052905090565b5f6105c1825f610b24565b92915050565b5f336105d4818585610b7b565b5060019392505050565b5f6105c1826001610b8d565b5f336105f7858285610bdb565b610602858585610c8f565b60019150505b9392505050565b5f807f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e0090505f815461065c919074010000000000000000000000000000000000000000900460ff16611aa4565b91505090565b5f8061066c610d1e565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156106985750825b90505f8267ffffffffffffffff1660011480156106b45750303b155b9050811580156106c2575080155b156106f9576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166001178555831561075a5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b5f610767888a018a611820565b90506001600160a01b0381166107a9576040517f7cde9b7200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107b281610d46565b6107d860405180602001604052805f81525060405180602001604052805f815250610d5a565b6040516001600160a01b0382169033907fdf5fabff9e49f8c35d69a1f2d0c5e80c933c31cf836cf70de57e3a6e7dc86ebb905f90a37fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc396505083156108925784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505092915050565b5f5f196108ae565b60405180910390fd5b5f6108b885610ad4565b90506108c633858784610d70565b949350505050565b5f5f195f6108db8561099a565b90506108c633858388610d70565b606061091c7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b6001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015610956573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261097d9190810190611984565b6040516020016105a29190611abd565b5f336105d4818585610c8f565b5f6105c1826001610b24565b5f806109b183610adf565b905080851115610a06576040517ffe9cceec0000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101869052604481018290526064016108a5565b5f610a10866105de565b9050610a1f3386868985610de0565b95945050505050565b5f80610a3383610ae8565b905080851115610a88576040517fb94abeec0000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101869052604481018290526064016108a5565b5f610a92866105b6565b9050610a1f338686848a610de0565b5f6040517faf1fbb2100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6105c1825f610b8d565b5f6105c16101f2835b6001600160a01b0381165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0060205260408120546105c1565b5f610608610b30610446565b610b3b906001611aee565b610b465f600a611be1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254610b729190611aee565b85919085610e7f565b610b888383836001610ec1565b505050565b5f610608610b9c82600a611be1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254610bc89190611aee565b610bd0610446565b610b72906001611aee565b6001600160a01b038381165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160209081526040808320938616835292905220545f19811015610c895781811015610c7b576040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101829052604481018390526064016108a5565b610c8984848484035f610ec1565b50505050565b6001600160a01b038316610cd1576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b6001600160a01b038216610d13576040517fec442f050000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b610b88838383610fea565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006105c1565b610d4e611141565b610d5781611181565b50565b610d62611141565b610d6c8282611245565b5050565b610d7a84836112a8565b610d8483826112e4565b826001600160a01b0316846001600160a01b03167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d78484604051610dd2929190918252602082015260400190565b60405180910390a350505050565b826001600160a01b0316856001600160a01b031614610e0457610e04838683610bdb565b610e0e8382611331565b610e18848361137e565b826001600160a01b0316846001600160a01b0316866001600160a01b03167ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db8585604051610e70929190918252602082015260400190565b60405180910390a45050505050565b5f610eac610e8c836113b9565b8015610ea757505f8480610ea257610ea2611bef565b868809115b151590565b610eb78686866113e5565b610a1f9190611aee565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b038516610f24576040517fe602df050000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b6001600160a01b038416610f66576040517f94280d620000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b6001600160a01b038086165f90815260018301602090815260408083209388168352929052208390558115610fe357836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92585604051610fda91815260200190565b60405180910390a35b5050505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b0384166110375781816002015f82825461102c9190611aee565b909155506110c09050565b6001600160a01b0384165f90815260208290526040902054828110156110a2576040517fe450d38c0000000000000000000000000000000000000000000000000000000081526001600160a01b038616600482015260248101829052604481018490526064016108a5565b6001600160a01b0385165f9081526020839052604090209083900390555b6001600160a01b0383166110de5760028101805483900390556110fc565b6001600160a01b0383165f9081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610dd291815260200190565b611149611495565b61117f576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b611189611141565b7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e005f806111b5846114b3565b91509150816111c55760126111c7565b805b83547fffffffffffffffffffffff000000000000000000000000000000000000000000167401000000000000000000000000000000000000000060ff92909216919091027fffffffffffffffffffffffff000000000000000000000000000000000000000016176001600160a01b0394909416939093179091555050565b61124d611141565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace007f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace036112998482611cb1565b5060048101610c898382611cb1565b610d6c6112dc7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b83308461156c565b6001600160a01b038216611326576040517fec442f050000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b610d6c5f8383610fea565b6001600160a01b038216611373576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b610d6c825f83610fea565b610d6c6113b27f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b83836115bb565b5f60028260038111156113ce576113ce611d71565b6113d89190611d9e565b60ff166001149050919050565b5f805f6113f28686611609565b91509150815f036114165783818161140c5761140c611bef565b0492505050610608565b81841161142d5761142d6003851502601118611625565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010185841190960395909502919093039390930492909217029150509392505050565b5f61149e610d1e565b5468010000000000000000900460ff16919050565b5f805f6114bf60405190565b6040805160048152602481019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f313ce567000000000000000000000000000000000000000000000000000000001790529091505f908190611528908790611636565b509150915061153683604052565b818015611544575060203d10155b8015611551575060ff8111155b61155c575f80611560565b6001815b94509450505050915091565b61157a848484846001611657565b610c89576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b03851660048201526024016108a5565b6115c883838360016116dd565b610b88576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201526024016108a5565b5f805f1983850993909202808410938190039390930393915050565b634e487b715f52806020526024601cfd5b5f805f60405f855160208701885afa92505f51915060205190509250925092565b6040517f23b872dd000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038781166004528616602452604485905291602083606481808c5af1925060015f511483166116cc5783831516156116c0573d5f823e3d81fd5b5f883b113d1516831692505b604052505f60605295945050505050565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f5114831661174c578383151615611740573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f6020828403121561179d575f80fd5b5035919050565b6001600160a01b0381168114610d57575f80fd5b5f80604083850312156117c9575f80fd5b82356117d4816117a4565b946020939093013593505050565b5f805f606084860312156117f4575f80fd5b83356117ff816117a4565b9250602084013561180f816117a4565b929592945050506040919091013590565b5f60208284031215611830575f80fd5b8135610608816117a4565b5f806020838503121561184c575f80fd5b823567ffffffffffffffff80821115611863575f80fd5b818501915085601f830112611876575f80fd5b813581811115611884575f80fd5b866020828501011115611895575f80fd5b60209290920196919550909350505050565b5f80604083850312156118b8575f80fd5b8235915060208301356118ca816117a4565b809150509250929050565b5f805f606084860312156118e7575f80fd5b8335925060208401356118f9816117a4565b91506040840135611909816117a4565b809150509250925092565b5f8060408385031215611925575f80fd5b8235611930816117a4565b915060208301356118ca816117a4565b5f60208284031215611950575f80fd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f60208284031215611994575f80fd5b815167ffffffffffffffff808211156119ab575f80fd5b818401915084601f8301126119be575f80fd5b8151818111156119d0576119d0611957565b604051601f8201601f19908116603f011681019083821181831017156119f8576119f8611957565b81604052828152876020848701011115611a10575f80fd5b8260208601602083015e5f928101602001929092525095945050505050565b5f81518060208401855e5f93019283525090919050565b7f577261707065642000000000000000000000000000000000000000000000000081525f6106086008830184611a2f565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60ff81811683821601908111156105c1576105c1611a77565b7f770000000000000000000000000000000000000000000000000000000000000081525f6106086001830184611a2f565b808201808211156105c1576105c1611a77565b600181815b80851115611b3b57815f1904821115611b2157611b21611a77565b80851615611b2e57918102915b93841c9390800290611b06565b509250929050565b5f82611b51575060016105c1565b81611b5d57505f6105c1565b8160018114611b735760028114611b7d57611b99565b60019150506105c1565b60ff841115611b8e57611b8e611a77565b50506001821b6105c1565b5060208310610133831016604e8410600b8410161715611bbc575081810a6105c1565b611bc68383611b01565b805f1904821115611bd957611bd9611a77565b029392505050565b5f61060860ff841683611b43565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b600181811c90821680611c3057607f821691505b602082108103611c67577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b601f821115610b8857805f5260205f20601f840160051c81016020851015611c925750805b601f840160051c820191505b81811015610fe3575f8155600101611c9e565b815167ffffffffffffffff811115611ccb57611ccb611957565b611cdf81611cd98454611c1c565b84611c6d565b602080601f831160018114611d12575f8415611cfb5750858301515b5f19600386901b1c1916600185901b178555611d69565b5f85815260208120601f198616915b82811015611d4057888601518255948401946001909101908401611d21565b5085821015611d5d57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f60ff831680611dd5577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b8060ff8416069150509291505056"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b50600436106101b0575f3560e01c806370a08231116100f3578063c4d66de811610093578063ce96cb771161006e578063ce96cb77146103c9578063d905777e146103dc578063dd62ed3e146103ef578063ef8b30f7146103b6575f80fd5b8063c4d66de8146103a3578063c63d75b6146102bb578063c6e6f592146103b6575f80fd5b8063a9059cbb116100ce578063a9059cbb14610357578063b3d7f6b91461036a578063b460af941461037d578063ba08765214610390575f80fd5b806370a08231146102f557806394bf804d1461033c57806395d89b411461034f575f80fd5b806323b872dd1161015e578063402d267d11610139578063402d267d146102bb578063439fab91146102cf5780634cdad506146101e45780636e553f65146102e2575f80fd5b806323b872dd14610254578063313ce5671461026757806338d52e0f14610281575f80fd5b8063095ea7b31161018e578063095ea7b3146101f75780630a28a4771461021a57806318160ddd1461022d575f80fd5b806301e1d114146101b457806306fdde03146101cf57806307a2d13a146101e4575b5f80fd5b6101bc610446565b6040519081526020015b60405180910390f35b6101d76104fe565b6040516101c69190611758565b6101bc6101f236600461178d565b6105b6565b61020a6102053660046117b8565b6105c7565b60405190151581526020016101c6565b6101bc61022836600461178d565b6105de565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02546101bc565b61020a6102623660046117e2565b6105ea565b61026f61060f565b60405160ff90911681526020016101c6565b7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546040516001600160a01b0390911681526020016101c6565b6101bc6102c9366004611820565b505f1990565b6101bc6102dd36600461183b565b610662565b6101bc6102f03660046118a7565b61089d565b6101bc610303366004611820565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00602052604090205490565b6101bc61034a3660046118a7565b6108ce565b6101d76108e9565b61020a6103653660046117b8565b61098d565b6101bc61037836600461178d565b61099a565b6101bc61038b3660046118d5565b6109a6565b6101bc61039e3660046118d5565b610a28565b6101bc6103b1366004611820565b610aa1565b6101bc6103c436600461178d565b610ad4565b6101bc6103d7366004611820565b610adf565b6101bc6103ea366004611820565b610ae8565b6101bc6103fd366004611914565b6001600160a01b039182165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b5f6104787f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa1580156104d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104f99190611940565b905090565b60606105317f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b6001600160a01b03166306fdde036040518163ffffffff1660e01b81526004015f60405180830381865afa15801561056b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526105929190810190611984565b6040516020016105a29190611a46565b604051602081830303815290604052905090565b5f6105c1825f610b24565b92915050565b5f336105d4818585610b7b565b5060019392505050565b5f6105c1826001610b8d565b5f336105f7858285610bdb565b610602858585610c8f565b60019150505b9392505050565b5f807f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e0090505f815461065c919074010000000000000000000000000000000000000000900460ff16611aa4565b91505090565b5f8061066c610d1e565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156106985750825b90505f8267ffffffffffffffff1660011480156106b45750303b155b9050811580156106c2575080155b156106f9576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166001178555831561075a5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b5f610767888a018a611820565b90506001600160a01b0381166107a9576040517f7cde9b7200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107b281610d46565b6107d860405180602001604052805f81525060405180602001604052805f815250610d5a565b6040516001600160a01b0382169033907fdf5fabff9e49f8c35d69a1f2d0c5e80c933c31cf836cf70de57e3a6e7dc86ebb905f90a37fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc396505083156108925784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505092915050565b5f5f196108ae565b60405180910390fd5b5f6108b885610ad4565b90506108c633858784610d70565b949350505050565b5f5f195f6108db8561099a565b90506108c633858388610d70565b606061091c7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b6001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015610956573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261097d9190810190611984565b6040516020016105a29190611abd565b5f336105d4818585610c8f565b5f6105c1826001610b24565b5f806109b183610adf565b905080851115610a06576040517ffe9cceec0000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101869052604481018290526064016108a5565b5f610a10866105de565b9050610a1f3386868985610de0565b95945050505050565b5f80610a3383610ae8565b905080851115610a88576040517fb94abeec0000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101869052604481018290526064016108a5565b5f610a92866105b6565b9050610a1f338686848a610de0565b5f6040517faf1fbb2100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6105c1825f610b8d565b5f6105c16101f2835b6001600160a01b0381165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0060205260408120546105c1565b5f610608610b30610446565b610b3b906001611aee565b610b465f600a611be1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254610b729190611aee565b85919085610e7f565b610b888383836001610ec1565b505050565b5f610608610b9c82600a611be1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254610bc89190611aee565b610bd0610446565b610b72906001611aee565b6001600160a01b038381165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160209081526040808320938616835292905220545f19811015610c895781811015610c7b576040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101829052604481018390526064016108a5565b610c8984848484035f610ec1565b50505050565b6001600160a01b038316610cd1576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b6001600160a01b038216610d13576040517fec442f050000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b610b88838383610fea565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006105c1565b610d4e611141565b610d5781611181565b50565b610d62611141565b610d6c8282611245565b5050565b610d7a84836112a8565b610d8483826112e4565b826001600160a01b0316846001600160a01b03167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d78484604051610dd2929190918252602082015260400190565b60405180910390a350505050565b826001600160a01b0316856001600160a01b031614610e0457610e04838683610bdb565b610e0e8382611331565b610e18848361137e565b826001600160a01b0316846001600160a01b0316866001600160a01b03167ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db8585604051610e70929190918252602082015260400190565b60405180910390a45050505050565b5f610eac610e8c836113b9565b8015610ea757505f8480610ea257610ea2611bef565b868809115b151590565b610eb78686866113e5565b610a1f9190611aee565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b038516610f24576040517fe602df050000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b6001600160a01b038416610f66576040517f94280d620000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b6001600160a01b038086165f90815260018301602090815260408083209388168352929052208390558115610fe357836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92585604051610fda91815260200190565b60405180910390a35b5050505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b0384166110375781816002015f82825461102c9190611aee565b909155506110c09050565b6001600160a01b0384165f90815260208290526040902054828110156110a2576040517fe450d38c0000000000000000000000000000000000000000000000000000000081526001600160a01b038616600482015260248101829052604481018490526064016108a5565b6001600160a01b0385165f9081526020839052604090209083900390555b6001600160a01b0383166110de5760028101805483900390556110fc565b6001600160a01b0383165f9081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610dd291815260200190565b611149611495565b61117f576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b611189611141565b7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e005f806111b5846114b3565b91509150816111c55760126111c7565b805b83547fffffffffffffffffffffff000000000000000000000000000000000000000000167401000000000000000000000000000000000000000060ff92909216919091027fffffffffffffffffffffffff000000000000000000000000000000000000000016176001600160a01b0394909416939093179091555050565b61124d611141565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace007f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace036112998482611cb1565b5060048101610c898382611cb1565b610d6c6112dc7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b83308461156c565b6001600160a01b038216611326576040517fec442f050000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b610d6c5f8383610fea565b6001600160a01b038216611373576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b610d6c825f83610fea565b610d6c6113b27f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b83836115bb565b5f60028260038111156113ce576113ce611d71565b6113d89190611d9e565b60ff166001149050919050565b5f805f6113f28686611609565b91509150815f036114165783818161140c5761140c611bef565b0492505050610608565b81841161142d5761142d6003851502601118611625565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010185841190960395909502919093039390930492909217029150509392505050565b5f61149e610d1e565b5468010000000000000000900460ff16919050565b5f805f6114bf60405190565b6040805160048152602481019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f313ce567000000000000000000000000000000000000000000000000000000001790529091505f908190611528908790611636565b509150915061153683604052565b818015611544575060203d10155b8015611551575060ff8111155b61155c575f80611560565b6001815b94509450505050915091565b61157a848484846001611657565b610c89576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b03851660048201526024016108a5565b6115c883838360016116dd565b610b88576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201526024016108a5565b5f805f1983850993909202808410938190039390930393915050565b634e487b715f52806020526024601cfd5b5f805f60405f855160208701885afa92505f51915060205190509250925092565b6040517f23b872dd000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038781166004528616602452604485905291602083606481808c5af1925060015f511483166116cc5783831516156116c0573d5f823e3d81fd5b5f883b113d1516831692505b604052505f60605295945050505050565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f5114831661174c578383151615611740573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f6020828403121561179d575f80fd5b5035919050565b6001600160a01b0381168114610d57575f80fd5b5f80604083850312156117c9575f80fd5b82356117d4816117a4565b946020939093013593505050565b5f805f606084860312156117f4575f80fd5b83356117ff816117a4565b9250602084013561180f816117a4565b929592945050506040919091013590565b5f60208284031215611830575f80fd5b8135610608816117a4565b5f806020838503121561184c575f80fd5b823567ffffffffffffffff80821115611863575f80fd5b818501915085601f830112611876575f80fd5b813581811115611884575f80fd5b866020828501011115611895575f80fd5b60209290920196919550909350505050565b5f80604083850312156118b8575f80fd5b8235915060208301356118ca816117a4565b809150509250929050565b5f805f606084860312156118e7575f80fd5b8335925060208401356118f9816117a4565b91506040840135611909816117a4565b809150509250925092565b5f8060408385031215611925575f80fd5b8235611930816117a4565b915060208301356118ca816117a4565b5f60208284031215611950575f80fd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f60208284031215611994575f80fd5b815167ffffffffffffffff808211156119ab575f80fd5b818401915084601f8301126119be575f80fd5b8151818111156119d0576119d0611957565b604051601f8201601f19908116603f011681019083821181831017156119f8576119f8611957565b81604052828152876020848701011115611a10575f80fd5b8260208601602083015e5f928101602001929092525095945050505050565b5f81518060208401855e5f93019283525090919050565b7f577261707065642000000000000000000000000000000000000000000000000081525f6106086008830184611a2f565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60ff81811683821601908111156105c1576105c1611a77565b7f770000000000000000000000000000000000000000000000000000000000000081525f6106086001830184611a2f565b808201808211156105c1576105c1611a77565b600181815b80851115611b3b57815f1904821115611b2157611b21611a77565b80851615611b2e57918102915b93841c9390800290611b06565b509250929050565b5f82611b51575060016105c1565b81611b5d57505f6105c1565b8160018114611b735760028114611b7d57611b99565b60019150506105c1565b60ff841115611b8e57611b8e611a77565b50506001821b6105c1565b5060208310610133831016604e8410600b8410161715611bbc575081810a6105c1565b611bc68383611b01565b805f1904821115611bd957611bd9611a77565b029392505050565b5f61060860ff841683611b43565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b600181811c90821680611c3057607f821691505b602082108103611c67577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b601f821115610b8857805f5260205f20601f840160051c81016020851015611c925750805b601f840160051c820191505b81811015610fe3575f8155600101611c9e565b815167ffffffffffffffff811115611ccb57611ccb611957565b611cdf81611cd98454611c1c565b84611c6d565b602080601f831160018114611d12575f8415611cfb5750858301515b5f19600386901b1c1916600185901b178555611d69565b5f85815260208120601f198616915b82811015611d4057888601518255948401946001909101908401611d21565b5085821015611d5d57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f60ff831680611dd5577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b8060ff8416069150509291505056"; diff --git a/src/generated/0_1_4/StoxWrappedTokenVaultBeacon.pointers.sol b/src/generated/0_1_4/StoxWrappedTokenVaultBeacon.pointers.sol deleted file mode 100644 index 438a674d..00000000 --- a/src/generated/0_1_4/StoxWrappedTokenVaultBeacon.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x8e95867e52db417944afd90f3b6c3c980962831e8a944e7f6958ba8f8cc10630); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x9FD790f65CA3aF2772358c653F097f0a4c7EE7d2); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"608060405234801561000f575f80fd5b50730d99e0174dbf885ced6ae8deb939b0f890450099738e4bdeec7ceb9570d440676345da1dce10329f5b80610049565b60405180910390fd5b61005281610063565b5061005c826100b2565b5050610130565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b806001600160a01b03163b5f036100e75760405163211eb15960e21b81526001600160a01b0382166004820152602401610040565b600180546001600160a01b0319166001600160a01b0383169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b61035a8061013d5f395ff3fe608060405234801561000f575f80fd5b5060043610610064575f3560e01c8063715018a61161004d578063715018a6146100c05780638da5cb5b146100c8578063f2fde38b146100e5575f80fd5b80633659cfe6146100685780635c60da1b1461007d575b5f80fd5b61007b610076366004610320565b6100f8565b005b60015473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61007b61010c565b5f5473ffffffffffffffffffffffffffffffffffffffff16610097565b61007b6100f3366004610320565b61011f565b610100610184565b610109816101d6565b50565b610114610184565b61011d5f6102ac565b565b610127610184565b73ffffffffffffffffffffffffffffffffffffffff811661017b576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f60048201526024015b60405180910390fd5b610109816102ac565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461011d576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610172565b8073ffffffffffffffffffffffffffffffffffffffff163b5f0361023e576040517f847ac56400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602401610172565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f60208284031215610330575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610353575f80fd5b939250505056"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b5060043610610064575f3560e01c8063715018a61161004d578063715018a6146100c05780638da5cb5b146100c8578063f2fde38b146100e5575f80fd5b80633659cfe6146100685780635c60da1b1461007d575b5f80fd5b61007b610076366004610320565b6100f8565b005b60015473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61007b61010c565b5f5473ffffffffffffffffffffffffffffffffffffffff16610097565b61007b6100f3366004610320565b61011f565b610100610184565b610109816101d6565b50565b610114610184565b61011d5f6102ac565b565b610127610184565b73ffffffffffffffffffffffffffffffffffffffff811661017b576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f60048201526024015b60405180910390fd5b610109816102ac565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461011d576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610172565b8073ffffffffffffffffffffffffffffffffffffffff163b5f0361023e576040517f847ac56400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602401610172565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f60208284031215610330575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610353575f80fd5b939250505056"; diff --git a/src/generated/0_1_4/StoxWrappedTokenVaultBeaconSetDeployer.pointers.sol b/src/generated/0_1_4/StoxWrappedTokenVaultBeaconSetDeployer.pointers.sol deleted file mode 100644 index 231752f1..00000000 --- a/src/generated/0_1_4/StoxWrappedTokenVaultBeaconSetDeployer.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x940e3ab4278cf7ae44026596f4f32dc5c7f3facd99ef8070c63b5cfefd49a47c); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x6B4232f1046F1f1bb99a1184D886bBaF3Cd7e15A); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"6080604052348015600e575f80fd5b506109468061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c806301ffc9a714610038578063d786858b14610060575b5f80fd5b61004b610046366004610333565b610098565b60405190151581526020015b60405180910390f35b61007361006e366004610379565b610130565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610057565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fd786858b00000000000000000000000000000000000000000000000000000000148061012a57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff821661017e576040517fe51a7ce200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f739fd790f65ca3af2772358c653f097f0a4c7ee7d26040516101a090610326565b73ffffffffffffffffffffffffffffffffffffffff90911681526040602082018190525f90820152606001604051809103905ff0801580156101e4573d5f803e3d5ffd5b506040805133815273ffffffffffffffffffffffffffffffffffffffff831660208201529192507f82488d8ab594db2178e4a45b7106aaa804836e608f001b5d7fcb6c3514730b3e910160405180910390a16040805173ffffffffffffffffffffffffffffffffffffffff85811660208301527fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc3929084169163439fab9191016040516020818303038152906040526040518263ffffffff1660e01b81526004016102af91906103ac565b6020604051808303815f875af11580156102cb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ef91906103ff565b1461012a576040517f09c5931500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61052f8061041783390190565b5f60208284031215610343575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610372575f80fd5b9392505050565b5f60208284031215610389575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610372575f80fd5b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b5f6020828403121561040f575f80fd5b505191905056fe60a060405260405161052f38038061052f83398101604081905261002291610331565b61002c828261003e565b506001600160a01b031660805261040d565b610047826100fb565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a28051156100ef576100ea826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e491906103ed565b82610209565b505050565b6100f76102aa565b5050565b806001600160a01b03163b5f0361013557604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b815290515f92841691635c60da1b9160048083019260209291908290030181865afa1580156101ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d291906103ed565b9050806001600160a01b03163b5f036100f757604051634c9c8ce360e01b81526001600160a01b038216600482015260240161012c565b60605f61021684846102cb565b905080801561023757505f3d118061023757505f846001600160a01b03163b115b1561024c576102446102de565b9150506102a4565b801561027657604051639996b31560e01b81526001600160a01b038516600482015260240161012c565b3d15610289576102846102f7565b6102a2565b60405163d6bda27560e01b815260040160405180910390fd5b505b92915050565b34156102c95760405163b398979f60e01b815260040160405180910390fd5b565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b6040513d5f823e3d81fd5b80516001600160a01b0381168114610318575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215610342575f80fd5b61034b83610302565b60208401519092506001600160401b0380821115610367575f80fd5b818501915085601f83011261037a575f80fd5b81518181111561038c5761038c61031d565b604051601f8201601f19908116603f011681019083821181831017156103b4576103b461031d565b816040528281528860208487010111156103cc575f80fd5b8260208601602083015e5f6020848301015280955050505050509250929050565b5f602082840312156103fd575f80fd5b61040682610302565b9392505050565b60805161010b6104245f395f6023015261010b5ff3fe608060405261000c61000e565b005b61001e610019610020565b6100b3565b565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561008a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100ae91906100d1565b905090565b365f80375f80365f845af43d5f803e8080156100cd573d5ff35b3d5ffd5b5f602082840312156100e1575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610104575f80fd5b939250505056"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b5060043610610034575f3560e01c806301ffc9a714610038578063d786858b14610060575b5f80fd5b61004b610046366004610333565b610098565b60405190151581526020015b60405180910390f35b61007361006e366004610379565b610130565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610057565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fd786858b00000000000000000000000000000000000000000000000000000000148061012a57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff821661017e576040517fe51a7ce200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f739fd790f65ca3af2772358c653f097f0a4c7ee7d26040516101a090610326565b73ffffffffffffffffffffffffffffffffffffffff90911681526040602082018190525f90820152606001604051809103905ff0801580156101e4573d5f803e3d5ffd5b506040805133815273ffffffffffffffffffffffffffffffffffffffff831660208201529192507f82488d8ab594db2178e4a45b7106aaa804836e608f001b5d7fcb6c3514730b3e910160405180910390a16040805173ffffffffffffffffffffffffffffffffffffffff85811660208301527fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc3929084169163439fab9191016040516020818303038152906040526040518263ffffffff1660e01b81526004016102af91906103ac565b6020604051808303815f875af11580156102cb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ef91906103ff565b1461012a576040517f09c5931500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61052f8061041783390190565b5f60208284031215610343575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610372575f80fd5b9392505050565b5f60208284031215610389575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610372575f80fd5b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b5f6020828403121561040f575f80fd5b505191905056fe60a060405260405161052f38038061052f83398101604081905261002291610331565b61002c828261003e565b506001600160a01b031660805261040d565b610047826100fb565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a28051156100ef576100ea826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e491906103ed565b82610209565b505050565b6100f76102aa565b5050565b806001600160a01b03163b5f0361013557604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b815290515f92841691635c60da1b9160048083019260209291908290030181865afa1580156101ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d291906103ed565b9050806001600160a01b03163b5f036100f757604051634c9c8ce360e01b81526001600160a01b038216600482015260240161012c565b60605f61021684846102cb565b905080801561023757505f3d118061023757505f846001600160a01b03163b115b1561024c576102446102de565b9150506102a4565b801561027657604051639996b31560e01b81526001600160a01b038516600482015260240161012c565b3d15610289576102846102f7565b6102a2565b60405163d6bda27560e01b815260040160405180910390fd5b505b92915050565b34156102c95760405163b398979f60e01b815260040160405180910390fd5b565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b6040513d5f823e3d81fd5b80516001600160a01b0381168114610318575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215610342575f80fd5b61034b83610302565b60208401519092506001600160401b0380821115610367575f80fd5b818501915085601f83011261037a575f80fd5b81518181111561038c5761038c61031d565b604051601f8201601f19908116603f011681019083821181831017156103b4576103b461031d565b816040528281528860208487010111156103cc575f80fd5b8260208601602083015e5f6020848301015280955050505050509250929050565b5f602082840312156103fd575f80fd5b61040682610302565b9392505050565b60805161010b6104245f395f6023015261010b5ff3fe608060405261000c61000e565b005b61001e610019610020565b6100b3565b565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561008a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100ae91906100d1565b905090565b365f80375f80365f845af43d5f803e8080156100cd573d5ff35b3d5ffd5b5f602082840312156100e1575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610104575f80fd5b939250505056"; diff --git a/src/generated/0_1_5/ST0xOrchestrator.pointers.sol b/src/generated/0_1_5/ST0xOrchestrator.pointers.sol deleted file mode 100644 index 9fe30271..00000000 --- a/src/generated/0_1_5/ST0xOrchestrator.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x7537448e8cbb200d25651a941a39e465e2ef7a549fe8245d83774bef485629e6); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x0099FcB947Cc31E21C631478A2a9E2E591cd4010); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"6080604052348015600e575f80fd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6131c0806100d65f395ff3fe608060405260043610610191575f3560e01c8063742fabb3116100dc578063b930908f11610087578063d547741f11610062578063d547741f14610594578063e9a9c850146105b3578063f14893a7146105e6578063f23a6e6114610605575f80fd5b8063b930908f146104f2578063bc197c8114610525578063c4d66de814610575575f80fd5b806391d14854116100b757806391d148541461045d5780639cb887f8146104c0578063a217fddf146104df575f80fd5b8063742fabb3146103cf578063752c9cf51461042257806384b0196e14610436575f80fd5b80633b94a0dd1161013c57806344d171871161011757806344d1718714610372578063584f418e14610391578063671d083f146103b0575f80fd5b80633b94a0dd146103015780633e81e40d146103345780633f6fc76f14610353575f80fd5b8063248a9ca31161016c578063248a9ca3146102745780632f2ff15d146102c157806336568abe146102e2575f80fd5b806301ffc9a71461019c5780630e230f97146101d057806320df435914610233575f80fd5b3661019857005b5f80fd5b3480156101a7575f80fd5b506101bb6101b6366004612944565b610624565b60405190151581526020015b60405180910390f35b3480156101db575f80fd5b506101bb6101ea366004612973565b6001600160a01b03919091165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be70160209081526040808320938352929052205460ff1690565b34801561023e575f80fd5b506102667f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de81565b6040519081526020016101c7565b34801561027f575f80fd5b5061026661028e36600461299d565b5f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b3480156102cc575f80fd5b506102e06102db3660046129b4565b6106cb565b005b3480156102ed575f80fd5b506102e06102fc3660046129b4565b610714565b34801561030c575f80fd5b506102667f8381bcc05e5203d9456aa7185a19b2be5d4af37909fecf63a6f2016c1bf8413381565b34801561033f575f80fd5b5061026661034e3660046129e2565b610765565b34801561035e575f80fd5b506102e061036d366004612a25565b61077b565b34801561037d575f80fd5b506102e061038c366004612aa9565b610816565b34801561039c575f80fd5b506102e06103ab366004612b01565b610979565b3480156103bb575f80fd5b506102e06103ca366004612b48565b610af3565b3480156103da575f80fd5b506102666103e9366004612be2565b6001600160a01b03165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be700602052604090205490565b34801561042d575f80fd5b506101bb610cbc565b348015610441575f80fd5b5061044a610eb1565b6040516101c79796959493929190612c2b565b348015610468575f80fd5b506101bb6104773660046129b4565b5f9182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3480156104cb575f80fd5b506102e06104da366004612973565b610f0f565b3480156104ea575f80fd5b506102665f81565b3480156104fd575f80fd5b506102667f04c6a47ae7910ef8b295215a97e8495a9eaf57b7b05bfd8bf951edb3fd4a16a381565b348015610530575f80fd5b5061054461053f366004612d1f565b610fc5565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016101c7565b348015610580575f80fd5b506102e061058f366004612be2565b611054565b34801561059f575f80fd5b506102e06105ae3660046129b4565b611283565b3480156105be575f80fd5b506102667ffdf81848136595c31bb5f76217767372bc4bf906663038eb38381131ea27ecba81565b3480156105f1575f80fd5b506102e0610600366004612b01565b6112c6565b348015610610575f80fd5b5061054461061f366004612dd6565b6113ce565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f4e2312e00000000000000000000000000000000000000000000000000000000014806106b657507fffffffff0000000000000000000000000000000000000000000000000000000082167f18bd37da00000000000000000000000000000000000000000000000000000000145b806106c557506106c58261140b565b92915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020526040902060010154610704816114a1565b61070e83836114ae565b50505050565b6001600160a01b0381163314610756576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610760828261157a565b505050565b5f6107728585858561161e565b95945050505050565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de6107a5816114a1565b6107ad611694565b6107c16001600160a01b03851683856116cb565b816001600160a01b0316846001600160a01b03167f4810d2f105dcba10d740b4ac1d8fa8454dd37014b2051bace1edb1d903c440c48560405161080691815260200190565b60405180910390a361070e611719565b7f04c6a47ae7910ef8b295215a97e8495a9eaf57b7b05bfd8bf951edb3fd4a16a3610840816114a1565b610848611743565b610850611694565b835f03610889576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61089e6001600160a01b0386163330876119d5565b6001600160a01b0385165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be70060209081526040808320548151601f8701849004840281018401909252858252929161091791899189919089908990819084018382808284375f92019190915250611a2492505050565b60408051888152602081018590529081018290529091506001600160a01b0388169033907f112766730ce440487945c01048dacfc6d04340403f675871e96c4e28cf622ecc9060600160405180910390a35050610972611719565b5050505050565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de6109a3816114a1565b6109ab611694565b846001600160a01b031663e1e6b8986040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109e7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a0b9190612e3b565b6040517ff242432a0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038481166024830152604482018790526064820186905260a060848301525f60a4830152919091169063f242432a9060c4015f604051808303815f87803b158015610a87575f80fd5b505af1158015610a99573d5f803e3d5ffd5b5050505083826001600160a01b0316866001600160a01b03167fc9e640d2eb1b8469e42f60a66fef6a05cfd27ee3757e48f3f8ba04ecbc8a51b086604051610ae391815260200190565b60405180910390a4610972611719565b7ffdf81848136595c31bb5f76217767372bc4bf906663038eb38381131ea27ecba610b1d816114a1565b610b25611743565b610b2d611694565b845f03610b66576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b7287878787611d57565b6040517fc77b66c20000000000000000000000000000000000000000000000000000000081525f906001600160a01b0389169063c77b66c290610bc1908990309086908a908a90600401612e56565b6020604051808303815f875af1158015610bdd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c019190612ea2565b9050858114610c4b576040517fbe40f1fc00000000000000000000000000000000000000000000000000000000815260048101879052602481018290526044015b60405180910390fd5b610c5f6001600160a01b03891688886116cb565b60408051878152863560208201526001600160a01b03808a1692908b169133917f7c0eac1a8d30fbe7a577affc3b588a0b7d965a6133d12097cfac0760f2f2b617910160405180910390a450610cb3611719565b50505050505050565b5f8073679ab223dab158ea93e1a4f49104de436c58eab8905073d7f91c1c6e6e651ec3f1fd707af7cbb7526206e16001600160a01b0316816001600160a01b0316632f77a1c16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d2f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d539190612e3b565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d8e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610db29190612e3b565b6001600160a01b0316148015610eab5750732df5cfe6d688ef9ff1b7c59a499d254b1527b2866001600160a01b0316816001600160a01b0316632c9b7f406040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e1d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e419190612e3b565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e7c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ea09190612e3b565b6001600160a01b0316145b91505090565b5f6060805f805f6060610ec2611e95565b610eca611f68565b604080515f808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009b939a50919850469750309650945092509050565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de610f39816114a1565b610f41611694565b5f7f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be7006001600160a01b0385165f818152602083815260409182902080549088905582518181529182018890529394507fc6ce8282d3b57b159503fa5566e612aeb9f30c8e20c882398c9cb293c1ba6d68910160405180910390a25050610760611719565b5f805b86811015611025578481108015610ff657505f868683818110610fed57610fed612ee6565b90506020020135115b1561101d5761101d3389898481811061101157611011612ee6565b90506020020135611fb9565b600101610fc8565b507fbc197c81000000000000000000000000000000000000000000000000000000009998505050505050505050565b5f61105d612222565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156110895750825b90505f8267ffffffffffffffff1660011480156110a55750303b155b9050811580156110b3575080155b156110ea576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166001178555831561114b5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6001600160a01b03861661118b576040517f9905827b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611193611743565b61119b61224a565b61120f6040518060400160405280601081526020017f535430784f7263686573747261746f72000000000000000000000000000000008152506040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250612252565b6112195f876114ae565b50831561127b5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680060205260409020600101546112bc816114a1565b61070e838361157a565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de6112f0816114a1565b6112f8611694565b6040517ff242432a0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038381166024830152604482018690526064820185905260a060848301525f60a483015286169063f242432a9060c4015f604051808303815f87803b158015611372575f80fd5b505af1158015611384573d5f803e3d5ffd5b5050505083826001600160a01b0316866001600160a01b03167f78b19b4b6e69e380c3c303d1e889d510ee3ee409219c1c014d97a0a607b6c6a686604051610ae391815260200190565b5f83156113df576113df3386611fb9565b507ff23a6e61000000000000000000000000000000000000000000000000000000009695505050505050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806106c557507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146106c5565b6114ab8133612268565b50565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff16611571575f848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556115273390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506106c5565b5f9150506106c5565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff1615611571575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506106c5565b604080517f8381bcc05e5203d9456aa7185a19b2be5d4af37909fecf63a6f2016c1bf8413360208201526001600160a01b038087169282019290925290841660608201526080810183905260a081018290525f906107729060c001604051602081830303815290604052805190602001206122f4565b61169c61233b565b6116c960017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005b90612394565b565b6116d8838383600161239b565b610760576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610c42565b6116c95f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f006116c3565b5f73679ab223dab158ea93e1a4f49104de436c58eab890505f816001600160a01b0316632f77a1c16040518163ffffffff1660e01b8152600401602060405180830381865afa158015611798573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117bc9190612e3b565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117f7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061181b9190612e3b565b90506001600160a01b03811673d7f91c1c6e6e651ec3f1fd707af7cbb7526206e114611898576040517fdfdb61b700000000000000000000000000000000000000000000000000000000815273d7f91c1c6e6e651ec3f1fd707af7cbb7526206e160048201526001600160a01b0382166024820152604401610c42565b5f826001600160a01b0316632c9b7f406040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118f99190612e3b565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611934573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119589190612e3b565b90506001600160a01b038116732df5cfe6d688ef9ff1b7c59a499d254b1527b28614610760576040517f3e4077b3000000000000000000000000000000000000000000000000000000008152732df5cfe6d688ef9ff1b7c59a499d254b1527b28660048201526001600160a01b0382166024820152604401610c42565b6119e3848484846001612416565b61070e576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610c42565b5f808490505f816001600160a01b031663e1e6b8986040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a66573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a8a9190612e3b565b90507f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be7005f015f876001600160a01b03166001600160a01b031681526020019081526020015f205492505f826001600160a01b031663f5d214f56040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b10573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b349190612ea2565b90505b8515611d125780841115611b89576040517f66a21a2d0000000000000000000000000000000000000000000000000000000081526001600160a01b038816600482015260248101879052604401610c42565b6040517efdd58e000000000000000000000000000000000000000000000000000000008152306004820152602481018590525f906001600160a01b0384169062fdd58e90604401602060405180830381865afa158015611beb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c0f9190612ea2565b9050805f03611c245750600190930192611b37565b5f818810611c325781611c34565b875b90505f856001600160a01b031663921a4c428330308b8d6040518663ffffffff1660e01b8152600401611c6b959493929190612f13565b6020604051808303815f875af1158015611c87573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cab9190612ea2565b9050818114611cf0576040517fbe40f1fc0000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610c42565b611cfa828a612f55565b9850828203611d0a576001909601955b505050611b37565b5050506001600160a01b03939093165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be700602052604090208390555090919050565b6001600160a01b0383165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be70160209081526040808320843584529091529020547f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be7009060ff1615611e08576040517f59c210430000000000000000000000000000000000000000000000000000000081526001600160a01b038516600482015282356024820152604401610c42565b6001600160a01b0384165f90815260018281016020908152604080842086358086529252909220805460ff19169091179055610972908590611e4f9088908390889061161e565b611e5c6020860186612f8d565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061249c92505050565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10280546060917fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10091611ee690612fee565b80601f0160208091040260200160405190810160405280929190818152602001828054611f1290612fee565b8015611f5d5780601f10611f3457610100808354040283529160200191611f5d565b820191905f5260205f20905b815481529060010190602001808311611f4057829003601f168201915b505050505091505090565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10380546060917fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10091611ee690612fee565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f481c6a750000000000000000000000000000000000000000000000000000000017905290515f9182916001600160a01b038616916120299161303f565b5f60405180830381855afa9150503d805f8114612061576040519150601f19603f3d011682016040523d82523d5f602084013e612066565b606091505b509150915081158061207a57508051602014155b156120855750505050565b5f61208f82613055565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe1e6b8980000000000000000000000000000000000000000000000000000000017905290519192506001600160a01b038316916120ff919061303f565b5f60405180830381855afa9150503d805f8114612137576040519150601f19603f3d011682016040523d82523d5f602084013e61213c565b606091505b50909350915082158061215157508151602014155b1561215d575050505050565b6001600160a01b03851661217083613055565b6001600160a01b031614612185575050505050565b6001600160a01b0381165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be700602081905260409091205480861015610cb3576001600160a01b0383165f818152602084815260409182902089905581518481529081018990527f2008c207f65bedc2bb65dc8ac34aee36a37cd43a50152d574107c63ace7e07c6910160405180910390a250505050505050565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006106c5565b6116c96125cb565b61225a6125cb565b6122648282612609565b5050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038516845290915290205460ff16612264576040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015260248101839052604401610c42565b5f6106c561230061266c565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c156116c9576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80825d5050565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f5114831661240a5783831516156123fe573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b6040517f23b872dd000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038781166004528616602452604485905291602083606481808c5af1925060015f5114831661248b57838315161561247f573d5f823e3d81fd5b5f883b113d1516831692505b604052505f60605295945050505050565b8051156124e4576124ae83838361267a565b610760576040517f19ab93cc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f642ddf3a0000000000000000000000000000000000000000000000000000000080825260048201849052906001600160a01b0385169063642ddf3a906024016020604051808303815f875af1158015612543573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125679190613078565b7fffffffff000000000000000000000000000000000000000000000000000000001614610760576040517f22b89c080000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610c42565b6125d36126ed565b6116c9576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6126116125cb565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1007fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10261265d84826130d7565b506003810161070e83826130d7565b5f61267561270b565b905090565b5f836001600160a01b03163b5f036126d8575f80612698858561277e565b5090925090505f8160038111156126b1576126b1613193565b1480156126cf5750856001600160a01b0316826001600160a01b0316145b925050506126e6565b6126e38484846127c7565b90505b9392505050565b5f6126f6612222565b5468010000000000000000900460ff16919050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f612735612831565b61273d612846565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f805f83516041036127b5576020840151604085015160608601515f1a6127a78882858561284f565b9550955095505050506127c0565b505081515f91506002905b9250925092565b8051604080517f1626ba7e000000000000000000000000000000000000000000000000000000008082526004820186905260248201929092525f92906020820185604483015e60205f60648401838a5afa9050825f5114601f3d1116811693505050509392505050565b5f61283a611e95565b80519060200120905090565b5f61283a611f68565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561288857505f9150600390508261290d565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa1580156128d9573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b03811661290457505f92506001915082905061290d565b92505f91508190505b9450945094915050565b7fffffffff00000000000000000000000000000000000000000000000000000000811681146114ab575f80fd5b5f60208284031215612954575f80fd5b81356126e681612917565b6001600160a01b03811681146114ab575f80fd5b5f8060408385031215612984575f80fd5b823561298f8161295f565b946020939093013593505050565b5f602082840312156129ad575f80fd5b5035919050565b5f80604083850312156129c5575f80fd5b8235915060208301356129d78161295f565b809150509250929050565b5f805f80608085870312156129f5575f80fd5b8435612a008161295f565b93506020850135612a108161295f565b93969395505050506040820135916060013590565b5f805f60608486031215612a37575f80fd5b8335612a428161295f565b9250602084013591506040840135612a598161295f565b809150509250925092565b5f8083601f840112612a74575f80fd5b50813567ffffffffffffffff811115612a8b575f80fd5b602083019150836020828501011115612aa2575f80fd5b9250929050565b5f805f8060608587031215612abc575f80fd5b8435612ac78161295f565b935060208501359250604085013567ffffffffffffffff811115612ae9575f80fd5b612af587828801612a64565b95989497509550505050565b5f805f8060808587031215612b14575f80fd5b8435612b1f8161295f565b935060208501359250604085013591506060850135612b3d8161295f565b939692955090935050565b5f805f805f8060a08789031215612b5d575f80fd5b8635612b688161295f565b95506020870135612b788161295f565b945060408701359350606087013567ffffffffffffffff80821115612b9b575f80fd5b908801906040828b031215612bae575f80fd5b90935060808801359080821115612bc3575f80fd5b50612bd089828a01612a64565b979a9699509497509295939492505050565b5f60208284031215612bf2575f80fd5b81356126e68161295f565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b7fff00000000000000000000000000000000000000000000000000000000000000881681525f602060e06020840152612c6760e084018a612bfd565b8381036040850152612c79818a612bfd565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825260208088019350909101905f5b81811015612ccc57835183529284019291840191600101612cb0565b50909c9b505050505050505050505050565b5f8083601f840112612cee575f80fd5b50813567ffffffffffffffff811115612d05575f80fd5b6020830191508360208260051b8501011115612aa2575f80fd5b5f805f805f805f8060a0898b031215612d36575f80fd5b8835612d418161295f565b97506020890135612d518161295f565b9650604089013567ffffffffffffffff80821115612d6d575f80fd5b612d798c838d01612cde565b909850965060608b0135915080821115612d91575f80fd5b612d9d8c838d01612cde565b909650945060808b0135915080821115612db5575f80fd5b50612dc28b828c01612a64565b999c989b5096995094979396929594505050565b5f805f805f8060a08789031215612deb575f80fd5b8635612df68161295f565b95506020870135612e068161295f565b94506040870135935060608701359250608087013567ffffffffffffffff811115612e2f575f80fd5b612bd089828a01612a64565b5f60208284031215612e4b575f80fd5b81516126e68161295f565b8581526001600160a01b038516602082015283604082015260806060820152816080820152818360a08301375f81830160a090810191909152601f909201601f19160101949350505050565b5f60208284031215612eb2575f80fd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b8581525f6001600160a01b03808716602084015280861660408401525083606083015260a06080830152612f4a60a0830184612bfd565b979650505050505050565b818103818111156106c5577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612fc0575f80fd5b83018035915067ffffffffffffffff821115612fda575f80fd5b602001915036819003821315612aa2575f80fd5b600181811c9082168061300257607f821691505b602082108103613039577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b5f82518060208501845e5f920191825250919050565b80516020808301519190811015613039575f1960209190910360031b1b16919050565b5f60208284031215613088575f80fd5b81516126e681612917565b601f82111561076057805f5260205f20601f840160051c810160208510156130b85750805b601f840160051c820191505b81811015610972575f81556001016130c4565b815167ffffffffffffffff8111156130f1576130f1612eb9565b613105816130ff8454612fee565b84613093565b602080601f831160018114613138575f84156131215750858301515b5f19600386901b1c1916600185901b17855561127b565b5f85815260208120601f198616915b8281101561316657888601518255948401946001909101908401613147565b508582101561318357878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405260043610610191575f3560e01c8063742fabb3116100dc578063b930908f11610087578063d547741f11610062578063d547741f14610594578063e9a9c850146105b3578063f14893a7146105e6578063f23a6e6114610605575f80fd5b8063b930908f146104f2578063bc197c8114610525578063c4d66de814610575575f80fd5b806391d14854116100b757806391d148541461045d5780639cb887f8146104c0578063a217fddf146104df575f80fd5b8063742fabb3146103cf578063752c9cf51461042257806384b0196e14610436575f80fd5b80633b94a0dd1161013c57806344d171871161011757806344d1718714610372578063584f418e14610391578063671d083f146103b0575f80fd5b80633b94a0dd146103015780633e81e40d146103345780633f6fc76f14610353575f80fd5b8063248a9ca31161016c578063248a9ca3146102745780632f2ff15d146102c157806336568abe146102e2575f80fd5b806301ffc9a71461019c5780630e230f97146101d057806320df435914610233575f80fd5b3661019857005b5f80fd5b3480156101a7575f80fd5b506101bb6101b6366004612944565b610624565b60405190151581526020015b60405180910390f35b3480156101db575f80fd5b506101bb6101ea366004612973565b6001600160a01b03919091165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be70160209081526040808320938352929052205460ff1690565b34801561023e575f80fd5b506102667f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de81565b6040519081526020016101c7565b34801561027f575f80fd5b5061026661028e36600461299d565b5f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b3480156102cc575f80fd5b506102e06102db3660046129b4565b6106cb565b005b3480156102ed575f80fd5b506102e06102fc3660046129b4565b610714565b34801561030c575f80fd5b506102667f8381bcc05e5203d9456aa7185a19b2be5d4af37909fecf63a6f2016c1bf8413381565b34801561033f575f80fd5b5061026661034e3660046129e2565b610765565b34801561035e575f80fd5b506102e061036d366004612a25565b61077b565b34801561037d575f80fd5b506102e061038c366004612aa9565b610816565b34801561039c575f80fd5b506102e06103ab366004612b01565b610979565b3480156103bb575f80fd5b506102e06103ca366004612b48565b610af3565b3480156103da575f80fd5b506102666103e9366004612be2565b6001600160a01b03165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be700602052604090205490565b34801561042d575f80fd5b506101bb610cbc565b348015610441575f80fd5b5061044a610eb1565b6040516101c79796959493929190612c2b565b348015610468575f80fd5b506101bb6104773660046129b4565b5f9182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3480156104cb575f80fd5b506102e06104da366004612973565b610f0f565b3480156104ea575f80fd5b506102665f81565b3480156104fd575f80fd5b506102667f04c6a47ae7910ef8b295215a97e8495a9eaf57b7b05bfd8bf951edb3fd4a16a381565b348015610530575f80fd5b5061054461053f366004612d1f565b610fc5565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016101c7565b348015610580575f80fd5b506102e061058f366004612be2565b611054565b34801561059f575f80fd5b506102e06105ae3660046129b4565b611283565b3480156105be575f80fd5b506102667ffdf81848136595c31bb5f76217767372bc4bf906663038eb38381131ea27ecba81565b3480156105f1575f80fd5b506102e0610600366004612b01565b6112c6565b348015610610575f80fd5b5061054461061f366004612dd6565b6113ce565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f4e2312e00000000000000000000000000000000000000000000000000000000014806106b657507fffffffff0000000000000000000000000000000000000000000000000000000082167f18bd37da00000000000000000000000000000000000000000000000000000000145b806106c557506106c58261140b565b92915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020526040902060010154610704816114a1565b61070e83836114ae565b50505050565b6001600160a01b0381163314610756576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610760828261157a565b505050565b5f6107728585858561161e565b95945050505050565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de6107a5816114a1565b6107ad611694565b6107c16001600160a01b03851683856116cb565b816001600160a01b0316846001600160a01b03167f4810d2f105dcba10d740b4ac1d8fa8454dd37014b2051bace1edb1d903c440c48560405161080691815260200190565b60405180910390a361070e611719565b7f04c6a47ae7910ef8b295215a97e8495a9eaf57b7b05bfd8bf951edb3fd4a16a3610840816114a1565b610848611743565b610850611694565b835f03610889576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61089e6001600160a01b0386163330876119d5565b6001600160a01b0385165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be70060209081526040808320548151601f8701849004840281018401909252858252929161091791899189919089908990819084018382808284375f92019190915250611a2492505050565b60408051888152602081018590529081018290529091506001600160a01b0388169033907f112766730ce440487945c01048dacfc6d04340403f675871e96c4e28cf622ecc9060600160405180910390a35050610972611719565b5050505050565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de6109a3816114a1565b6109ab611694565b846001600160a01b031663e1e6b8986040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109e7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a0b9190612e3b565b6040517ff242432a0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038481166024830152604482018790526064820186905260a060848301525f60a4830152919091169063f242432a9060c4015f604051808303815f87803b158015610a87575f80fd5b505af1158015610a99573d5f803e3d5ffd5b5050505083826001600160a01b0316866001600160a01b03167fc9e640d2eb1b8469e42f60a66fef6a05cfd27ee3757e48f3f8ba04ecbc8a51b086604051610ae391815260200190565b60405180910390a4610972611719565b7ffdf81848136595c31bb5f76217767372bc4bf906663038eb38381131ea27ecba610b1d816114a1565b610b25611743565b610b2d611694565b845f03610b66576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b7287878787611d57565b6040517fc77b66c20000000000000000000000000000000000000000000000000000000081525f906001600160a01b0389169063c77b66c290610bc1908990309086908a908a90600401612e56565b6020604051808303815f875af1158015610bdd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c019190612ea2565b9050858114610c4b576040517fbe40f1fc00000000000000000000000000000000000000000000000000000000815260048101879052602481018290526044015b60405180910390fd5b610c5f6001600160a01b03891688886116cb565b60408051878152863560208201526001600160a01b03808a1692908b169133917f7c0eac1a8d30fbe7a577affc3b588a0b7d965a6133d12097cfac0760f2f2b617910160405180910390a450610cb3611719565b50505050505050565b5f8073679ab223dab158ea93e1a4f49104de436c58eab8905073d7f91c1c6e6e651ec3f1fd707af7cbb7526206e16001600160a01b0316816001600160a01b0316632f77a1c16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d2f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d539190612e3b565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d8e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610db29190612e3b565b6001600160a01b0316148015610eab5750732df5cfe6d688ef9ff1b7c59a499d254b1527b2866001600160a01b0316816001600160a01b0316632c9b7f406040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e1d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e419190612e3b565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e7c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ea09190612e3b565b6001600160a01b0316145b91505090565b5f6060805f805f6060610ec2611e95565b610eca611f68565b604080515f808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009b939a50919850469750309650945092509050565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de610f39816114a1565b610f41611694565b5f7f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be7006001600160a01b0385165f818152602083815260409182902080549088905582518181529182018890529394507fc6ce8282d3b57b159503fa5566e612aeb9f30c8e20c882398c9cb293c1ba6d68910160405180910390a25050610760611719565b5f805b86811015611025578481108015610ff657505f868683818110610fed57610fed612ee6565b90506020020135115b1561101d5761101d3389898481811061101157611011612ee6565b90506020020135611fb9565b600101610fc8565b507fbc197c81000000000000000000000000000000000000000000000000000000009998505050505050505050565b5f61105d612222565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156110895750825b90505f8267ffffffffffffffff1660011480156110a55750303b155b9050811580156110b3575080155b156110ea576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166001178555831561114b5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6001600160a01b03861661118b576040517f9905827b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611193611743565b61119b61224a565b61120f6040518060400160405280601081526020017f535430784f7263686573747261746f72000000000000000000000000000000008152506040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250612252565b6112195f876114ae565b50831561127b5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680060205260409020600101546112bc816114a1565b61070e838361157a565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de6112f0816114a1565b6112f8611694565b6040517ff242432a0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038381166024830152604482018690526064820185905260a060848301525f60a483015286169063f242432a9060c4015f604051808303815f87803b158015611372575f80fd5b505af1158015611384573d5f803e3d5ffd5b5050505083826001600160a01b0316866001600160a01b03167f78b19b4b6e69e380c3c303d1e889d510ee3ee409219c1c014d97a0a607b6c6a686604051610ae391815260200190565b5f83156113df576113df3386611fb9565b507ff23a6e61000000000000000000000000000000000000000000000000000000009695505050505050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806106c557507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146106c5565b6114ab8133612268565b50565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff16611571575f848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556115273390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506106c5565b5f9150506106c5565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff1615611571575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506106c5565b604080517f8381bcc05e5203d9456aa7185a19b2be5d4af37909fecf63a6f2016c1bf8413360208201526001600160a01b038087169282019290925290841660608201526080810183905260a081018290525f906107729060c001604051602081830303815290604052805190602001206122f4565b61169c61233b565b6116c960017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005b90612394565b565b6116d8838383600161239b565b610760576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610c42565b6116c95f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f006116c3565b5f73679ab223dab158ea93e1a4f49104de436c58eab890505f816001600160a01b0316632f77a1c16040518163ffffffff1660e01b8152600401602060405180830381865afa158015611798573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117bc9190612e3b565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117f7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061181b9190612e3b565b90506001600160a01b03811673d7f91c1c6e6e651ec3f1fd707af7cbb7526206e114611898576040517fdfdb61b700000000000000000000000000000000000000000000000000000000815273d7f91c1c6e6e651ec3f1fd707af7cbb7526206e160048201526001600160a01b0382166024820152604401610c42565b5f826001600160a01b0316632c9b7f406040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118f99190612e3b565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611934573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119589190612e3b565b90506001600160a01b038116732df5cfe6d688ef9ff1b7c59a499d254b1527b28614610760576040517f3e4077b3000000000000000000000000000000000000000000000000000000008152732df5cfe6d688ef9ff1b7c59a499d254b1527b28660048201526001600160a01b0382166024820152604401610c42565b6119e3848484846001612416565b61070e576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610c42565b5f808490505f816001600160a01b031663e1e6b8986040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a66573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a8a9190612e3b565b90507f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be7005f015f876001600160a01b03166001600160a01b031681526020019081526020015f205492505f826001600160a01b031663f5d214f56040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b10573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b349190612ea2565b90505b8515611d125780841115611b89576040517f66a21a2d0000000000000000000000000000000000000000000000000000000081526001600160a01b038816600482015260248101879052604401610c42565b6040517efdd58e000000000000000000000000000000000000000000000000000000008152306004820152602481018590525f906001600160a01b0384169062fdd58e90604401602060405180830381865afa158015611beb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c0f9190612ea2565b9050805f03611c245750600190930192611b37565b5f818810611c325781611c34565b875b90505f856001600160a01b031663921a4c428330308b8d6040518663ffffffff1660e01b8152600401611c6b959493929190612f13565b6020604051808303815f875af1158015611c87573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cab9190612ea2565b9050818114611cf0576040517fbe40f1fc0000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610c42565b611cfa828a612f55565b9850828203611d0a576001909601955b505050611b37565b5050506001600160a01b03939093165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be700602052604090208390555090919050565b6001600160a01b0383165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be70160209081526040808320843584529091529020547f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be7009060ff1615611e08576040517f59c210430000000000000000000000000000000000000000000000000000000081526001600160a01b038516600482015282356024820152604401610c42565b6001600160a01b0384165f90815260018281016020908152604080842086358086529252909220805460ff19169091179055610972908590611e4f9088908390889061161e565b611e5c6020860186612f8d565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061249c92505050565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10280546060917fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10091611ee690612fee565b80601f0160208091040260200160405190810160405280929190818152602001828054611f1290612fee565b8015611f5d5780601f10611f3457610100808354040283529160200191611f5d565b820191905f5260205f20905b815481529060010190602001808311611f4057829003601f168201915b505050505091505090565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10380546060917fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10091611ee690612fee565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f481c6a750000000000000000000000000000000000000000000000000000000017905290515f9182916001600160a01b038616916120299161303f565b5f60405180830381855afa9150503d805f8114612061576040519150601f19603f3d011682016040523d82523d5f602084013e612066565b606091505b509150915081158061207a57508051602014155b156120855750505050565b5f61208f82613055565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe1e6b8980000000000000000000000000000000000000000000000000000000017905290519192506001600160a01b038316916120ff919061303f565b5f60405180830381855afa9150503d805f8114612137576040519150601f19603f3d011682016040523d82523d5f602084013e61213c565b606091505b50909350915082158061215157508151602014155b1561215d575050505050565b6001600160a01b03851661217083613055565b6001600160a01b031614612185575050505050565b6001600160a01b0381165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be700602081905260409091205480861015610cb3576001600160a01b0383165f818152602084815260409182902089905581518481529081018990527f2008c207f65bedc2bb65dc8ac34aee36a37cd43a50152d574107c63ace7e07c6910160405180910390a250505050505050565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006106c5565b6116c96125cb565b61225a6125cb565b6122648282612609565b5050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038516845290915290205460ff16612264576040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015260248101839052604401610c42565b5f6106c561230061266c565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c156116c9576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80825d5050565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f5114831661240a5783831516156123fe573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b6040517f23b872dd000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038781166004528616602452604485905291602083606481808c5af1925060015f5114831661248b57838315161561247f573d5f823e3d81fd5b5f883b113d1516831692505b604052505f60605295945050505050565b8051156124e4576124ae83838361267a565b610760576040517f19ab93cc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f642ddf3a0000000000000000000000000000000000000000000000000000000080825260048201849052906001600160a01b0385169063642ddf3a906024016020604051808303815f875af1158015612543573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125679190613078565b7fffffffff000000000000000000000000000000000000000000000000000000001614610760576040517f22b89c080000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610c42565b6125d36126ed565b6116c9576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6126116125cb565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1007fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10261265d84826130d7565b506003810161070e83826130d7565b5f61267561270b565b905090565b5f836001600160a01b03163b5f036126d8575f80612698858561277e565b5090925090505f8160038111156126b1576126b1613193565b1480156126cf5750856001600160a01b0316826001600160a01b0316145b925050506126e6565b6126e38484846127c7565b90505b9392505050565b5f6126f6612222565b5468010000000000000000900460ff16919050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f612735612831565b61273d612846565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f805f83516041036127b5576020840151604085015160608601515f1a6127a78882858561284f565b9550955095505050506127c0565b505081515f91506002905b9250925092565b8051604080517f1626ba7e000000000000000000000000000000000000000000000000000000008082526004820186905260248201929092525f92906020820185604483015e60205f60648401838a5afa9050825f5114601f3d1116811693505050509392505050565b5f61283a611e95565b80519060200120905090565b5f61283a611f68565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561288857505f9150600390508261290d565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa1580156128d9573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b03811661290457505f92506001915082905061290d565b92505f91508190505b9450945094915050565b7fffffffff00000000000000000000000000000000000000000000000000000000811681146114ab575f80fd5b5f60208284031215612954575f80fd5b81356126e681612917565b6001600160a01b03811681146114ab575f80fd5b5f8060408385031215612984575f80fd5b823561298f8161295f565b946020939093013593505050565b5f602082840312156129ad575f80fd5b5035919050565b5f80604083850312156129c5575f80fd5b8235915060208301356129d78161295f565b809150509250929050565b5f805f80608085870312156129f5575f80fd5b8435612a008161295f565b93506020850135612a108161295f565b93969395505050506040820135916060013590565b5f805f60608486031215612a37575f80fd5b8335612a428161295f565b9250602084013591506040840135612a598161295f565b809150509250925092565b5f8083601f840112612a74575f80fd5b50813567ffffffffffffffff811115612a8b575f80fd5b602083019150836020828501011115612aa2575f80fd5b9250929050565b5f805f8060608587031215612abc575f80fd5b8435612ac78161295f565b935060208501359250604085013567ffffffffffffffff811115612ae9575f80fd5b612af587828801612a64565b95989497509550505050565b5f805f8060808587031215612b14575f80fd5b8435612b1f8161295f565b935060208501359250604085013591506060850135612b3d8161295f565b939692955090935050565b5f805f805f8060a08789031215612b5d575f80fd5b8635612b688161295f565b95506020870135612b788161295f565b945060408701359350606087013567ffffffffffffffff80821115612b9b575f80fd5b908801906040828b031215612bae575f80fd5b90935060808801359080821115612bc3575f80fd5b50612bd089828a01612a64565b979a9699509497509295939492505050565b5f60208284031215612bf2575f80fd5b81356126e68161295f565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b7fff00000000000000000000000000000000000000000000000000000000000000881681525f602060e06020840152612c6760e084018a612bfd565b8381036040850152612c79818a612bfd565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825260208088019350909101905f5b81811015612ccc57835183529284019291840191600101612cb0565b50909c9b505050505050505050505050565b5f8083601f840112612cee575f80fd5b50813567ffffffffffffffff811115612d05575f80fd5b6020830191508360208260051b8501011115612aa2575f80fd5b5f805f805f805f8060a0898b031215612d36575f80fd5b8835612d418161295f565b97506020890135612d518161295f565b9650604089013567ffffffffffffffff80821115612d6d575f80fd5b612d798c838d01612cde565b909850965060608b0135915080821115612d91575f80fd5b612d9d8c838d01612cde565b909650945060808b0135915080821115612db5575f80fd5b50612dc28b828c01612a64565b999c989b5096995094979396929594505050565b5f805f805f8060a08789031215612deb575f80fd5b8635612df68161295f565b95506020870135612e068161295f565b94506040870135935060608701359250608087013567ffffffffffffffff811115612e2f575f80fd5b612bd089828a01612a64565b5f60208284031215612e4b575f80fd5b81516126e68161295f565b8581526001600160a01b038516602082015283604082015260806060820152816080820152818360a08301375f81830160a090810191909152601f909201601f19160101949350505050565b5f60208284031215612eb2575f80fd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b8581525f6001600160a01b03808716602084015280861660408401525083606083015260a06080830152612f4a60a0830184612bfd565b979650505050505050565b818103818111156106c5577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612fc0575f80fd5b83018035915067ffffffffffffffff821115612fda575f80fd5b602001915036819003821315612aa2575f80fd5b600181811c9082168061300257607f821691505b602082108103613039577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b5f82518060208501845e5f920191825250919050565b80516020808301519190811015613039575f1960209190910360031b1b16919050565b5f60208284031215613088575f80fd5b81516126e681612917565b601f82111561076057805f5260205f20601f840160051c810160208510156130b85750805b601f840160051c820191505b81811015610972575f81556001016130c4565b815167ffffffffffffffff8111156130f1576130f1612eb9565b613105816130ff8454612fee565b84613093565b602080601f831160018114613138575f84156131215750858301515b5f19600386901b1c1916600185901b17855561127b565b5f85815260208120601f198616915b8281101561316657888601518255948401946001909101908401613147565b508582101561318357878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd"; diff --git a/src/generated/0_1_5/ST0xOrchestratorBeaconSetDeployer.pointers.sol b/src/generated/0_1_5/ST0xOrchestratorBeaconSetDeployer.pointers.sol deleted file mode 100644 index 53ee4a14..00000000 --- a/src/generated/0_1_5/ST0xOrchestratorBeaconSetDeployer.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x2149474f3f4539b44296101ca3ffafb1ebd7f212b90b5fc9d8d28a4d010ca4eb); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0xBff92564aeffe44C85A9153B9f2dB13e47A22435); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"60a0604052348015600e575f80fd5b507299fcb947cc31e21c631478a2a9e2e591cd4010738e4bdeec7ceb9570d440676345da1dce10329f5b6040516042906082565b6001600160a01b03928316815291166020820152604001604051809103905ff0801580156071573d5f803e3d5ffd5b506001600160a01b0316608052608f565b6104f7806109cf83390190565b6080516109226100ad5f395f81816070015261025201526109225ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c806301ffc9a714610043578063429b15441461006b5780634c96a389146100b7575b5f80fd5b610056610051366004610309565b6100ca565b60405190151581526020015b60405180910390f35b6100927f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610062565b6100926100c536600461034f565b610162565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f4c96a38900000000000000000000000000000000000000000000000000000000148061015c57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82166101b0576040517f9905827b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405173ffffffffffffffffffffffffffffffffffffffff831660248201525f90604401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc4d66de800000000000000000000000000000000000000000000000000000000179052519091505f907f000000000000000000000000000000000000000000000000000000000000000090839061027d906102fc565b610288929190610382565b604051809103905ff0801580156102a1573d5f803e3d5ffd5b5060405173ffffffffffffffffffffffffffffffffffffffff86811682529192509082169033907fa0d99d93cf7a5f89661fa0829369a7e4896e755871efe65440bab2429387d55b9060200160405180910390a39392505050565b61052f806103f383390190565b5f60208284031215610319575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610348575f80fd5b9392505050565b5f6020828403121561035f575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610348575f80fd5b73ffffffffffffffffffffffffffffffffffffffff83168152604060208201525f82518060408401528060208501606085015e5f6060828501015260607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f830116840101915050939250505056fe60a060405260405161052f38038061052f83398101604081905261002291610331565b61002c828261003e565b506001600160a01b031660805261040d565b610047826100fb565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a28051156100ef576100ea826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e491906103ed565b82610209565b505050565b6100f76102aa565b5050565b806001600160a01b03163b5f0361013557604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b815290515f92841691635c60da1b9160048083019260209291908290030181865afa1580156101ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d291906103ed565b9050806001600160a01b03163b5f036100f757604051634c9c8ce360e01b81526001600160a01b038216600482015260240161012c565b60605f61021684846102cb565b905080801561023757505f3d118061023757505f846001600160a01b03163b115b1561024c576102446102de565b9150506102a4565b801561027657604051639996b31560e01b81526001600160a01b038516600482015260240161012c565b3d15610289576102846102f7565b6102a2565b60405163d6bda27560e01b815260040160405180910390fd5b505b92915050565b34156102c95760405163b398979f60e01b815260040160405180910390fd5b565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b6040513d5f823e3d81fd5b80516001600160a01b0381168114610318575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215610342575f80fd5b61034b83610302565b60208401519092506001600160401b0380821115610367575f80fd5b818501915085601f83011261037a575f80fd5b81518181111561038c5761038c61031d565b604051601f8201601f19908116603f011681019083821181831017156103b4576103b461031d565b816040528281528860208487010111156103cc575f80fd5b8260208601602083015e5f6020848301015280955050505050509250929050565b5f602082840312156103fd575f80fd5b61040682610302565b9392505050565b60805161010b6104245f395f6023015261010b5ff3fe608060405261000c61000e565b005b61001e610019610020565b6100b3565b565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561008a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100ae91906100d1565b905090565b365f80375f80365f845af43d5f803e8080156100cd573d5ff35b3d5ffd5b5f602082840312156100e1575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610104575f80fd5b939250505056608060405234801561000f575f80fd5b506040516104f73803806104f783398101604081905261002e9161015f565b806001600160a01b03811661005d57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b61006681610077565b50610070826100c6565b5050610190565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b806001600160a01b03163b5f036100fb5760405163211eb15960e21b81526001600160a01b0382166004820152602401610054565b600180546001600160a01b0319166001600160a01b0383169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b80516001600160a01b038116811461015a575f80fd5b919050565b5f8060408385031215610170575f80fd5b61017983610144565b915061018760208401610144565b90509250929050565b61035a8061019d5f395ff3fe608060405234801561000f575f80fd5b5060043610610064575f3560e01c8063715018a61161004d578063715018a6146100c05780638da5cb5b146100c8578063f2fde38b146100e5575f80fd5b80633659cfe6146100685780635c60da1b1461007d575b5f80fd5b61007b610076366004610320565b6100f8565b005b60015473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61007b61010c565b5f5473ffffffffffffffffffffffffffffffffffffffff16610097565b61007b6100f3366004610320565b61011f565b610100610184565b610109816101d6565b50565b610114610184565b61011d5f6102ac565b565b610127610184565b73ffffffffffffffffffffffffffffffffffffffff811661017b576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f60048201526024015b60405180910390fd5b610109816102ac565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461011d576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610172565b8073ffffffffffffffffffffffffffffffffffffffff163b5f0361023e576040517f847ac56400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602401610172565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f60208284031215610330575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610353575f80fd5b939250505056"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b506004361061003f575f3560e01c806301ffc9a714610043578063429b15441461006b5780634c96a389146100b7575b5f80fd5b610056610051366004610309565b6100ca565b60405190151581526020015b60405180910390f35b6100927f000000000000000000000000ba0d89f6e84a201cd2c720a91911fdadbbb2ad4881565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610062565b6100926100c536600461034f565b610162565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f4c96a38900000000000000000000000000000000000000000000000000000000148061015c57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82166101b0576040517f9905827b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405173ffffffffffffffffffffffffffffffffffffffff831660248201525f90604401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc4d66de800000000000000000000000000000000000000000000000000000000179052519091505f907f000000000000000000000000ba0d89f6e84a201cd2c720a91911fdadbbb2ad4890839061027d906102fc565b610288929190610382565b604051809103905ff0801580156102a1573d5f803e3d5ffd5b5060405173ffffffffffffffffffffffffffffffffffffffff86811682529192509082169033907fa0d99d93cf7a5f89661fa0829369a7e4896e755871efe65440bab2429387d55b9060200160405180910390a39392505050565b61052f806103f383390190565b5f60208284031215610319575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610348575f80fd5b9392505050565b5f6020828403121561035f575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610348575f80fd5b73ffffffffffffffffffffffffffffffffffffffff83168152604060208201525f82518060408401528060208501606085015e5f6060828501015260607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f830116840101915050939250505056fe60a060405260405161052f38038061052f83398101604081905261002291610331565b61002c828261003e565b506001600160a01b031660805261040d565b610047826100fb565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a28051156100ef576100ea826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e491906103ed565b82610209565b505050565b6100f76102aa565b5050565b806001600160a01b03163b5f0361013557604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b815290515f92841691635c60da1b9160048083019260209291908290030181865afa1580156101ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d291906103ed565b9050806001600160a01b03163b5f036100f757604051634c9c8ce360e01b81526001600160a01b038216600482015260240161012c565b60605f61021684846102cb565b905080801561023757505f3d118061023757505f846001600160a01b03163b115b1561024c576102446102de565b9150506102a4565b801561027657604051639996b31560e01b81526001600160a01b038516600482015260240161012c565b3d15610289576102846102f7565b6102a2565b60405163d6bda27560e01b815260040160405180910390fd5b505b92915050565b34156102c95760405163b398979f60e01b815260040160405180910390fd5b565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b6040513d5f823e3d81fd5b80516001600160a01b0381168114610318575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215610342575f80fd5b61034b83610302565b60208401519092506001600160401b0380821115610367575f80fd5b818501915085601f83011261037a575f80fd5b81518181111561038c5761038c61031d565b604051601f8201601f19908116603f011681019083821181831017156103b4576103b461031d565b816040528281528860208487010111156103cc575f80fd5b8260208601602083015e5f6020848301015280955050505050509250929050565b5f602082840312156103fd575f80fd5b61040682610302565b9392505050565b60805161010b6104245f395f6023015261010b5ff3fe608060405261000c61000e565b005b61001e610019610020565b6100b3565b565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561008a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100ae91906100d1565b905090565b365f80375f80365f845af43d5f803e8080156100cd573d5ff35b3d5ffd5b5f602082840312156100e1575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610104575f80fd5b939250505056"; diff --git a/src/generated/0_1_5/StoxCorporateActionsFacet.pointers.sol b/src/generated/0_1_5/StoxCorporateActionsFacet.pointers.sol deleted file mode 100644 index aef0d95d..00000000 --- a/src/generated/0_1_5/StoxCorporateActionsFacet.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0xd91520075de1eb2e8fdf042fde3475ee89feb3942306e5d6d5c710273fefc080); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0xB7e24412126ad6A2Ce19cbd79FD11B68e7F30cf6); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"60a0604052348015600e575f80fd5b503060805260805161268d6100635f395f81816101970152818161031b0152818161038901528181610466015281816104c90152818161053b0152818161070301528181610767015261089e015261268d5ff3fe608060405234801561000f575f80fd5b506004361061009f575f3560e01c806379ba430511610072578063bb7bb45a11610058578063bb7bb45a14610151578063dad601be14610159578063e388df491461016c575f80fd5b806379ba43051461011e578063b21a249414610131575f80fd5b80630d1e0432146100a35780631cb5642f146100be578063358116b9146100f65780634e6c280e1461010b575b5f80fd5b6100ab61017f565b6040519081526020015b60405180910390f35b6100d16100cc366004612126565b610301565b60408051938452602084019290925267ffffffffffffffff16908201526060016100b5565b610109610104366004612150565b610372565b005b6100d1610119366004612126565b61044c565b6100d161012c366004612167565b6104af565b61014461013f366004612150565b610522565b6040516100b591906121c7565b6100ab6106eb565b6100ab6101673660046121d9565b61074f565b6100d161017a366004612167565b610884565b5f73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036101d6576040516309e815f560e01b815260040160405180910390fd5b5f6101df6108e8565b905060015f6101f15f19600384610967565b90505b5f1981146102fa57600283600201828154811061021357610213612261565b905f5260205f2090600502015f0154036102e6576102e3826102de85600201848154811061024357610243612261565b905f5260205f209060050201600401805461025d90612275565b80601f016020809104026020016040519081016040528092919081815260200182805461028990612275565b80156102d45780601f106102ab576101008083540402835291602001916102d4565b820191905f5260205f20905b8154815290600101906020018083116102b757829003601f168201915b5050505050610a6e565b610a89565b91505b6102f38160036001610967565b90506101f4565b5091505090565b5f808073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016300361035a576040516309e815f560e01b815260040160405180910390fd5b6103648585610aeb565b9250925092505b9250925092565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036103c8576040516309e815f560e01b815260040160405180910390fd5b610414337f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e78360405160200161040091815260200190565b604051602081830303815290604052610b19565b61041d81610c13565b604051819033907f94041431cee1a4c20be97117d396e73eb1e601e124b48fbc5dc07397c31d5f8a905f90a350565b5f808073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036104a5576040516309e815f560e01b815260040160405180910390fd5b6103648585610df0565b5f808073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610508576040516309e815f560e01b815260040160405180910390fd5b610513868686610e00565b92509250925093509350939050565b606073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016300361057a576040516309e815f560e01b815260040160405180910390fd5b5f6105836108e8565b600281015490915083106105cb576040517f029c6c35000000000000000000000000000000000000000000000000000000008152600481018490526024015b60405180910390fd5b8060020183815481106105e0576105e0612261565b5f918252602082206001600590920201015467ffffffffffffffff169003610637576040517f029c6c35000000000000000000000000000000000000000000000000000000008152600481018490526024016105c2565b80600201838154811061064c5761064c612261565b905f5260205f209060050201600401805461066690612275565b80601f016020809104026020016040519081016040528092919081815260200182805461069290612275565b80156106dd5780601f106106b4576101008083540402835291602001916106dd565b820191905f5260205f20905b8154815290600101906020018083116106c057829003601f168201915b50505050509150505b919050565b5f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610742576040516309e815f560e01b815260040160405180910390fd5b61074a610e2e565b905090565b5f73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036107a6576040516309e815f560e01b815260040160405180910390fd5b6107e2337ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f898787878760405160200161040094939291906122a7565b5f6107ee868585610e82565b90505f610831828787878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610f2d92505050565b6040805184815267ffffffffffffffff89166020820152919250829133917fa9c7784142e419f4660627c0c145b3873c2a415ce062f5c81bc19e6850f873d8910160405180910390a39695505050505050565b5f808073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036108dd576040516309e815f560e01b815260040160405180910390fd5b610513868686611047565b5f807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0061093660017f2f8f8ecf1b7a1a3ceda8d15a9a2247a2377b3434535a87f1728021c13fec2e71612301565b60405160200161094891815260200190565b60408051601f1981840301815291905280516020909101201692915050565b5f6007831681036109a4576040517fbf3cad0b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6109ad6108e8565b60028101549091505f036109c5575f19915050610a67565b5f5f1986146109f8578160020186815481106109e3576109e3612261565b905f5260205f209060050201600301546109fb565b81545b90506002846002811115610a1157610a11612314565b03610a3357610a2a82610a248484611056565b876110d1565b92505050610a67565b6001846002811115610a4757610a47612314565b03610a5757610a2a828287611129565b610a628282876110d1565b925050505b9392505050565b5f81806020019051810190610a839190612328565b92915050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d8480610ace86868686611196565b915091505f610add83836112b5565b9a9950505050505050505050565b5f805f80610afb5f19878761131b565b90505f80610b0883611410565b939650945091925050509250925092565b5f3073ffffffffffffffffffffffffffffffffffffffff1663d09edf316040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b63573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b87919061233f565b6040517f59f89dda00000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff8216906359f89dda90610be090879087908790600401612372565b5f604051808303815f87803b158015610bf7575f80fd5b505af1158015610c09573d5f803e3d5ffd5b5050505050505050565b5f610c1c6108e8565b60028101549091508210610c5f576040517f029c6c35000000000000000000000000000000000000000000000000000000008152600481018390526024016105c2565b5f816002018381548110610c7557610c75612261565b5f9182526020822060016005909202019081015490925067ffffffffffffffff169003610cd1576040517f029c6c35000000000000000000000000000000000000000000000000000000008152600481018490526024016105c2565b60018101544267ffffffffffffffff90911611610d1d576040517f99fa8c69000000000000000000000000000000000000000000000000000000008152600481018490526024016105c2565b600281015460038201545f198214610d5d5780846002018381548110610d4557610d45612261565b905f5260205f20906005020160030181905550610d61565b8084555b5f198114610d975781846002018281548110610d7f57610d7f612261565b905f5260205f20906005020160020181905550610d9f565b600184018290555b5f196002840181905560038401556001830180547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001690555f808455610de99060048501906120ca565b5050505050565b5f805f80610afb5f198787610967565b5f805f80610e0f878787610967565b90505f80610e1c83611410565b939a9099509297509195505050505050565b5f610e376108e8565b600201545f03610e4657505f90565b60065f80610e575f19846001610967565b90505b5f1981146102fa5781610e6c816123a6565b925050610e7b81846001610967565b9050610e5a565b5f7f4548e57ae2f1604df75a3d17fecaff7dd11ad7a93d9f8a0dc05e7144f46f3f7c8403610ef857610ef0610eeb84848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610a6e92505050565b61146e565b506002610a67565b6040517ff17c1d46000000000000000000000000000000000000000000000000000000008152600481018590526024016105c2565b5f428367ffffffffffffffff1611610f83576040517fc0851c8a00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff841660048201524260248201526044016105c2565b5f610f8c6108e8565b9050610f978161156e565b60028101805460019081018083555f928352610fb39190612301565b90505f826002018281548110610fcb57610fcb612261565b5f91825260209091206005909102018781556001810180547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff8916179055905060048101611023868261241b565b505f1960028201819055600382015561103d838388611617565b5095945050505050565b5f805f80610e0f87878761131b565b5f5b5f19821415801561109a57504283600201838154811061107a5761107a612261565b5f91825260209091206001600590920201015467ffffffffffffffff1611155b156110cb578260020182815481106110b4576110b4612261565b905f5260205f209060050201600301549150611058565b50919050565b5f5b5f19831461111f575f8460020184815481106110f1576110f1612261565b905f5260205f209060050201905082815f0154165f146111145783915050610a67565b6003015492506110d3565b505f199392505050565b5f5b5f19831461111f575f84600201848154811061114957611149612261565b5f918252602090912060059091020160018101549091504267ffffffffffffffff9091161115611179575061111f565b805483161561118b5783915050610a67565b60030154925061112b565b5f80851584151780156111ae575f92505f91506112ab565b6111b884876124d7565b91505f6111c488611761565b90505f6111d087611761565b90505f6111dd83836117c2565b5090505f6f0785ee10d5da46d900f436a000000000821115611212576f0785ee10d5da46d900f436a000000000820491506025015b670de0b6b3a764000082111561123357670de0b6b3a7640000820491506012015b633b9aca0082111561124c57633b9aca00820491506009015b61271082111561126157612710820491506004015b811561127557600a82049150600101611261565b61127f81876124d7565b95506112a18b8a61129b878761129687600a6125f2565b6117de565b896118c3565b9097509550505050505b5094509492505050565b5f805f6112c285856119cf565b91509150801580156112d2575081155b15611313576040517f8eba4d0700000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016105c2565b509392505050565b5f600783168103611358576040517fbf3cad0b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6113616108e8565b60028101549091505f03611379575f19915050610a67565b5f5f1986146113ac5781600201868154811061139757611397612261565b905f5260205f209060050201600201546113b2565b81600101545b905060018460028111156113c8576113c8612314565b036113e157610a2a826113db8484611ad6565b87611b4a565b60028460028111156113f5576113f5612314565b0361140557610a2a828287611b98565b610a62828287611b4a565b5f805f19830361142457505f928392509050565b5f61142d6108e8565b600201848154811061144157611441612261565b5f91825260209091206005909102018054600190910154909567ffffffffffffffff909116945092505050565b611478815f611c04565b156114af576040517f018d151200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6114b930611c54565b90505f6114c7600183611cfe565b90506114d38382611d22565b1561150d576040517f06c32712000000000000000000000000000000000000000000000000000000008152600481018490526024016105c2565b5f61152261151c84600a6125fd565b5f611cfe565b905061152e8482611d71565b15611568576040517fd24a8af1000000000000000000000000000000000000000000000000000000008152600481018590526024016105c2565b50505050565b60028101541561157b5750565b6002810180546001018082555f8281529190829061159b5761159b612261565b5f9182526020909120600160059092020181815590810180547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff161790555f1960028201819055600382015590506115fc611dc0565b5f808052600484016020526040902055505f19600590910155565b5f83600201838154811061162d5761162d612261565b905f5260205f20906005020190505f846001015490505b5f198114610de9578267ffffffffffffffff1685600201828154811061166c5761166c612261565b5f91825260209091206001600590920201015467ffffffffffffffff1611611735575f8560020182815481106116a4576116a4612261565b905f5260205f209060050201600301549050848660020183815481106116cc576116cc612261565b5f918252602090912060036005909202018101919091556002840183905583018190555f198114611725578486600201828154811061170d5761170d612261565b905f5260205f2090600502016002018190555061172d565b600186018590555b505050505050565b84600201818154811061174a5761174a612261565b905f5260205f209060050201600201549050611644565b5f808212156117be577f800000000000000000000000000000000000000000000000000000000000000082036117b857507f8000000000000000000000000000000000000000000000000000000000000000919050565b505f0390565b5090565b5f805f1983850993909202808410938190039390930393915050565b5f805f6117eb86866117c2565b91509150815f0361180f57838181611805576118056124fe565b0492505050610a67565b838210611859576040517f6c59da120000000000000000000000000000000000000000000000000000000081526004810187905260248101869052604481018590526064016105c2565b5f84868809600186198101871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103025f82900382900490920185841190960395909502919093039390930492909217029150509392505050565b5f805f858718121561198d577f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84111561197a576119227f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600161260b565b840361195257507f80000000000000000000000000000000000000000000000000000000000000009050816119c6565b61195d600a8561261e565b6119669061263d565b6119718460016124d7565b915091506119c6565b6119838461263d565b83915091506119c6565b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8411156119c057611966600a8561261e565b50829050815b94509492505050565b5f601b83900b8314838382611a33577d90e40fbeea1d3a4abc8955e946fe31cdcf66f634e1000000000000000000860515611a1357620186a0860595506005850194505b8586601b0b14611a2e57600a86059550846001019450611a13565b611a49565b855f03611a4957505f925060019150611acf9050565b848560030b14611aa5575f851215611a6957505f9250829150611acf9050565b6040517fd556b11100000000000000000000000000000000000000000000000000000000815260048101839052602481018290526044016105c2565b50507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841660e084901b1791505b9250929050565b5f5b5f198214158015611b19575042836002018381548110611afa57611afa612261565b5f91825260209091206001600590920201015467ffffffffffffffff16115b156110cb57826002018281548110611b3357611b33612261565b905f5260205f209060050201600201549150611ad8565b5f5b5f19831461111f575f846002018481548110611b6a57611b6a612261565b905f5260205f209060050201905082815f0154165f14611b8d5783915050610a67565b600201549250611b4c565b5f5b5f19831461111f575f846002018481548110611bb857611bb8612261565b5f918252602090912060059091020160018101549091504267ffffffffffffffff90911611611be7575061111f565b8054831615611bf95783915050610a67565b600201549250611b9a565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d611c4784848484611e43565b1215979650505050505050565b5f611c5d611f17565b6040517f54636d2b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316600482015273200e12d10bb0c5e4a17e7018f0f1161919bb9389906354636d2b906024016020604051808303815f875af1158015611cda573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a83919061266d565b5f805f611d0b8585611fbd565b91509150611d19828261201f565b95945050505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d611d6584848484611e43565b13979650505050505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d611db484848484611e43565b12979650505050505050565b5f807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00611e0e60017fb750591399365444a618527b69a54ce09476c8bde1ecff60f5aa1fe2b52605ff612301565b604051602001611e2091815260200190565b60408051808303601f190181529190528051602090910120166002015492915050565b5f8085158415178187128286121817858414178015611e6857868592509250506119c6565b505f85841315611e7c575092949193919260015b8386035f8112604c8213178015611eaf578215611ea1575f89945094505050506119c6565b885f945094505050506119c6565b600a82900a8981028a828281611ec757611ec76124fe565b0514611ef3578415611ee3575f8b9650965050505050506119c6565b8a5f9650965050505050506119c6565b8415611f085788965094506119c69350505050565b95508794506119c69350505050565b73200e12d10bb0c5e4a17e7018f0f1161919bb93893b1580611f6e575073200e12d10bb0c5e4a17e7018f0f1161919bb93893f7f1de7d717526cba131d684e312dedbf0852adef9cced9e36798ae4937f7145d4114155b15611fbb576040517f73e6d7b300000000000000000000000000000000000000000000000000000000815273200e12d10bb0c5e4a17e7018f0f1161919bb938960048201526024016105c2565b565b5f805f805f611fcc8787612071565b92509250925080612013576040517fc471796600000000000000000000000000000000000000000000000000000000815260048101849052602481018390526044016105c2565b50909590945092505050565b5f805f61202c85856119cf565b9150915080611313576040517f22c9f7bb00000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016105c2565b5f808060ff841681037f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8611156120bc57600a860460018201600a88065f149350935093505061036b565b85935091506001905061036b565b5080546120d690612275565b5f825580601f106120e5575050565b601f0160209004905f5260205f20908101906121019190612104565b50565b5b808211156117be575f8155600101612105565b8035600381106106e6575f80fd5b5f8060408385031215612137575f80fd5b8235915061214760208401612118565b90509250929050565b5f60208284031215612160575f80fd5b5035919050565b5f805f60608486031215612179575f80fd5b833592506020840135915061219060408501612118565b90509250925092565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610a676020830184612199565b5f805f80606085870312156121ec575f80fd5b84359350602085013567ffffffffffffffff808216821461220b575f80fd5b90935060408601359080821115612220575f80fd5b818701915087601f830112612233575f80fd5b813581811115612241575f80fd5b886020828501011115612252575f80fd5b95989497505060200194505050565b634e487b7160e01b5f52603260045260245ffd5b600181811c9082168061228957607f821691505b6020821081036110cb57634e487b7160e01b5f52602260045260245ffd5b84815267ffffffffffffffff8416602082015260606040820152816060820152818360808301375f818301608090810191909152601f909201601f191601019392505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610a8357610a836122ed565b634e487b7160e01b5f52602160045260245ffd5b5f60208284031215612338575f80fd5b5051919050565b5f6020828403121561234f575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610a67575f80fd5b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f611d196060830184612199565b5f5f1982036123b7576123b76122ed565b5060010190565b634e487b7160e01b5f52604160045260245ffd5b601f82111561241657805f5260205f20601f840160051c810160208510156123f75750805b601f840160051c820191505b81811015610de9575f8155600101612403565b505050565b815167ffffffffffffffff811115612435576124356123be565b612449816124438454612275565b846123d2565b602080601f83116001811461247c575f84156124655750858301515b5f19600386901b1c1916600185901b17855561172d565b5f85815260208120601f198616915b828110156124aa5788860151825594840194600190910190840161248b565b50858210156124c757878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b8082018281125f8312801582168215821617156124f6576124f66122ed565b505092915050565b634e487b7160e01b5f52601260045260245ffd5b600181815b8085111561254c57815f1904821115612532576125326122ed565b8085161561253f57918102915b93841c9390800290612517565b509250929050565b5f8261256257506001610a83565b8161256e57505f610a83565b8160018114612584576002811461258e576125aa565b6001915050610a83565b60ff84111561259f5761259f6122ed565b50506001821b610a83565b5060208310610133831016604e8410600b84101617156125cd575081810a610a83565b6125d78383612512565b805f19048211156125ea576125ea6122ed565b029392505050565b5f610a678383612554565b5f610a6760ff841683612554565b80820180821115610a8357610a836122ed565b5f8261263857634e487b7160e01b5f52601260045260245ffd5b500490565b5f7f800000000000000000000000000000000000000000000000000000000000000082036117b8576117b86122ed565b5f6020828403121561267d575f80fd5b815160ff81168114610a67575f80fd"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b506004361061009f575f3560e01c806379ba430511610072578063bb7bb45a11610058578063bb7bb45a14610151578063dad601be14610159578063e388df491461016c575f80fd5b806379ba43051461011e578063b21a249414610131575f80fd5b80630d1e0432146100a35780631cb5642f146100be578063358116b9146100f65780634e6c280e1461010b575b5f80fd5b6100ab61017f565b6040519081526020015b60405180910390f35b6100d16100cc366004612126565b610301565b60408051938452602084019290925267ffffffffffffffff16908201526060016100b5565b610109610104366004612150565b610372565b005b6100d1610119366004612126565b61044c565b6100d161012c366004612167565b6104af565b61014461013f366004612150565b610522565b6040516100b591906121c7565b6100ab6106eb565b6100ab6101673660046121d9565b61074f565b6100d161017a366004612167565b610884565b5f73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf61630036101d6576040516309e815f560e01b815260040160405180910390fd5b5f6101df6108e8565b905060015f6101f15f19600384610967565b90505b5f1981146102fa57600283600201828154811061021357610213612261565b905f5260205f2090600502015f0154036102e6576102e3826102de85600201848154811061024357610243612261565b905f5260205f209060050201600401805461025d90612275565b80601f016020809104026020016040519081016040528092919081815260200182805461028990612275565b80156102d45780601f106102ab576101008083540402835291602001916102d4565b820191905f5260205f20905b8154815290600101906020018083116102b757829003601f168201915b5050505050610a6e565b610a89565b91505b6102f38160036001610967565b90506101f4565b5091505090565b5f808073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf616300361035a576040516309e815f560e01b815260040160405180910390fd5b6103648585610aeb565b9250925092505b9250925092565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf61630036103c8576040516309e815f560e01b815260040160405180910390fd5b610414337f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e78360405160200161040091815260200190565b604051602081830303815290604052610b19565b61041d81610c13565b604051819033907f94041431cee1a4c20be97117d396e73eb1e601e124b48fbc5dc07397c31d5f8a905f90a350565b5f808073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf61630036104a5576040516309e815f560e01b815260040160405180910390fd5b6103648585610df0565b5f808073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf6163003610508576040516309e815f560e01b815260040160405180910390fd5b610513868686610e00565b92509250925093509350939050565b606073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf616300361057a576040516309e815f560e01b815260040160405180910390fd5b5f6105836108e8565b600281015490915083106105cb576040517f029c6c35000000000000000000000000000000000000000000000000000000008152600481018490526024015b60405180910390fd5b8060020183815481106105e0576105e0612261565b5f918252602082206001600590920201015467ffffffffffffffff169003610637576040517f029c6c35000000000000000000000000000000000000000000000000000000008152600481018490526024016105c2565b80600201838154811061064c5761064c612261565b905f5260205f209060050201600401805461066690612275565b80601f016020809104026020016040519081016040528092919081815260200182805461069290612275565b80156106dd5780601f106106b4576101008083540402835291602001916106dd565b820191905f5260205f20905b8154815290600101906020018083116106c057829003601f168201915b50505050509150505b919050565b5f73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf6163003610742576040516309e815f560e01b815260040160405180910390fd5b61074a610e2e565b905090565b5f73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf61630036107a6576040516309e815f560e01b815260040160405180910390fd5b6107e2337ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f898787878760405160200161040094939291906122a7565b5f6107ee868585610e82565b90505f610831828787878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610f2d92505050565b6040805184815267ffffffffffffffff89166020820152919250829133917fa9c7784142e419f4660627c0c145b3873c2a415ce062f5c81bc19e6850f873d8910160405180910390a39695505050505050565b5f808073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf61630036108dd576040516309e815f560e01b815260040160405180910390fd5b610513868686611047565b5f807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0061093660017f2f8f8ecf1b7a1a3ceda8d15a9a2247a2377b3434535a87f1728021c13fec2e71612301565b60405160200161094891815260200190565b60408051601f1981840301815291905280516020909101201692915050565b5f6007831681036109a4576040517fbf3cad0b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6109ad6108e8565b60028101549091505f036109c5575f19915050610a67565b5f5f1986146109f8578160020186815481106109e3576109e3612261565b905f5260205f209060050201600301546109fb565b81545b90506002846002811115610a1157610a11612314565b03610a3357610a2a82610a248484611056565b876110d1565b92505050610a67565b6001846002811115610a4757610a47612314565b03610a5757610a2a828287611129565b610a628282876110d1565b925050505b9392505050565b5f81806020019051810190610a839190612328565b92915050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d8480610ace86868686611196565b915091505f610add83836112b5565b9a9950505050505050505050565b5f805f80610afb5f19878761131b565b90505f80610b0883611410565b939650945091925050509250925092565b5f3073ffffffffffffffffffffffffffffffffffffffff1663d09edf316040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b63573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b87919061233f565b6040517f59f89dda00000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff8216906359f89dda90610be090879087908790600401612372565b5f604051808303815f87803b158015610bf7575f80fd5b505af1158015610c09573d5f803e3d5ffd5b5050505050505050565b5f610c1c6108e8565b60028101549091508210610c5f576040517f029c6c35000000000000000000000000000000000000000000000000000000008152600481018390526024016105c2565b5f816002018381548110610c7557610c75612261565b5f9182526020822060016005909202019081015490925067ffffffffffffffff169003610cd1576040517f029c6c35000000000000000000000000000000000000000000000000000000008152600481018490526024016105c2565b60018101544267ffffffffffffffff90911611610d1d576040517f99fa8c69000000000000000000000000000000000000000000000000000000008152600481018490526024016105c2565b600281015460038201545f198214610d5d5780846002018381548110610d4557610d45612261565b905f5260205f20906005020160030181905550610d61565b8084555b5f198114610d975781846002018281548110610d7f57610d7f612261565b905f5260205f20906005020160020181905550610d9f565b600184018290555b5f196002840181905560038401556001830180547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001690555f808455610de99060048501906120ca565b5050505050565b5f805f80610afb5f198787610967565b5f805f80610e0f878787610967565b90505f80610e1c83611410565b939a9099509297509195505050505050565b5f610e376108e8565b600201545f03610e4657505f90565b60065f80610e575f19846001610967565b90505b5f1981146102fa5781610e6c816123a6565b925050610e7b81846001610967565b9050610e5a565b5f7f4548e57ae2f1604df75a3d17fecaff7dd11ad7a93d9f8a0dc05e7144f46f3f7c8403610ef857610ef0610eeb84848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610a6e92505050565b61146e565b506002610a67565b6040517ff17c1d46000000000000000000000000000000000000000000000000000000008152600481018590526024016105c2565b5f428367ffffffffffffffff1611610f83576040517fc0851c8a00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff841660048201524260248201526044016105c2565b5f610f8c6108e8565b9050610f978161156e565b60028101805460019081018083555f928352610fb39190612301565b90505f826002018281548110610fcb57610fcb612261565b5f91825260209091206005909102018781556001810180547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff8916179055905060048101611023868261241b565b505f1960028201819055600382015561103d838388611617565b5095945050505050565b5f805f80610e0f87878761131b565b5f5b5f19821415801561109a57504283600201838154811061107a5761107a612261565b5f91825260209091206001600590920201015467ffffffffffffffff1611155b156110cb578260020182815481106110b4576110b4612261565b905f5260205f209060050201600301549150611058565b50919050565b5f5b5f19831461111f575f8460020184815481106110f1576110f1612261565b905f5260205f209060050201905082815f0154165f146111145783915050610a67565b6003015492506110d3565b505f199392505050565b5f5b5f19831461111f575f84600201848154811061114957611149612261565b5f918252602090912060059091020160018101549091504267ffffffffffffffff9091161115611179575061111f565b805483161561118b5783915050610a67565b60030154925061112b565b5f80851584151780156111ae575f92505f91506112ab565b6111b884876124d7565b91505f6111c488611761565b90505f6111d087611761565b90505f6111dd83836117c2565b5090505f6f0785ee10d5da46d900f436a000000000821115611212576f0785ee10d5da46d900f436a000000000820491506025015b670de0b6b3a764000082111561123357670de0b6b3a7640000820491506012015b633b9aca0082111561124c57633b9aca00820491506009015b61271082111561126157612710820491506004015b811561127557600a82049150600101611261565b61127f81876124d7565b95506112a18b8a61129b878761129687600a6125f2565b6117de565b896118c3565b9097509550505050505b5094509492505050565b5f805f6112c285856119cf565b91509150801580156112d2575081155b15611313576040517f8eba4d0700000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016105c2565b509392505050565b5f600783168103611358576040517fbf3cad0b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6113616108e8565b60028101549091505f03611379575f19915050610a67565b5f5f1986146113ac5781600201868154811061139757611397612261565b905f5260205f209060050201600201546113b2565b81600101545b905060018460028111156113c8576113c8612314565b036113e157610a2a826113db8484611ad6565b87611b4a565b60028460028111156113f5576113f5612314565b0361140557610a2a828287611b98565b610a62828287611b4a565b5f805f19830361142457505f928392509050565b5f61142d6108e8565b600201848154811061144157611441612261565b5f91825260209091206005909102018054600190910154909567ffffffffffffffff909116945092505050565b611478815f611c04565b156114af576040517f018d151200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6114b930611c54565b90505f6114c7600183611cfe565b90506114d38382611d22565b1561150d576040517f06c32712000000000000000000000000000000000000000000000000000000008152600481018490526024016105c2565b5f61152261151c84600a6125fd565b5f611cfe565b905061152e8482611d71565b15611568576040517fd24a8af1000000000000000000000000000000000000000000000000000000008152600481018590526024016105c2565b50505050565b60028101541561157b5750565b6002810180546001018082555f8281529190829061159b5761159b612261565b5f9182526020909120600160059092020181815590810180547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff161790555f1960028201819055600382015590506115fc611dc0565b5f808052600484016020526040902055505f19600590910155565b5f83600201838154811061162d5761162d612261565b905f5260205f20906005020190505f846001015490505b5f198114610de9578267ffffffffffffffff1685600201828154811061166c5761166c612261565b5f91825260209091206001600590920201015467ffffffffffffffff1611611735575f8560020182815481106116a4576116a4612261565b905f5260205f209060050201600301549050848660020183815481106116cc576116cc612261565b5f918252602090912060036005909202018101919091556002840183905583018190555f198114611725578486600201828154811061170d5761170d612261565b905f5260205f2090600502016002018190555061172d565b600186018590555b505050505050565b84600201818154811061174a5761174a612261565b905f5260205f209060050201600201549050611644565b5f808212156117be577f800000000000000000000000000000000000000000000000000000000000000082036117b857507f8000000000000000000000000000000000000000000000000000000000000000919050565b505f0390565b5090565b5f805f1983850993909202808410938190039390930393915050565b5f805f6117eb86866117c2565b91509150815f0361180f57838181611805576118056124fe565b0492505050610a67565b838210611859576040517f6c59da120000000000000000000000000000000000000000000000000000000081526004810187905260248101869052604481018590526064016105c2565b5f84868809600186198101871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103025f82900382900490920185841190960395909502919093039390930492909217029150509392505050565b5f805f858718121561198d577f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84111561197a576119227f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600161260b565b840361195257507f80000000000000000000000000000000000000000000000000000000000000009050816119c6565b61195d600a8561261e565b6119669061263d565b6119718460016124d7565b915091506119c6565b6119838461263d565b83915091506119c6565b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8411156119c057611966600a8561261e565b50829050815b94509492505050565b5f601b83900b8314838382611a33577d90e40fbeea1d3a4abc8955e946fe31cdcf66f634e1000000000000000000860515611a1357620186a0860595506005850194505b8586601b0b14611a2e57600a86059550846001019450611a13565b611a49565b855f03611a4957505f925060019150611acf9050565b848560030b14611aa5575f851215611a6957505f9250829150611acf9050565b6040517fd556b11100000000000000000000000000000000000000000000000000000000815260048101839052602481018290526044016105c2565b50507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841660e084901b1791505b9250929050565b5f5b5f198214158015611b19575042836002018381548110611afa57611afa612261565b5f91825260209091206001600590920201015467ffffffffffffffff16115b156110cb57826002018281548110611b3357611b33612261565b905f5260205f209060050201600201549150611ad8565b5f5b5f19831461111f575f846002018481548110611b6a57611b6a612261565b905f5260205f209060050201905082815f0154165f14611b8d5783915050610a67565b600201549250611b4c565b5f5b5f19831461111f575f846002018481548110611bb857611bb8612261565b5f918252602090912060059091020160018101549091504267ffffffffffffffff90911611611be7575061111f565b8054831615611bf95783915050610a67565b600201549250611b9a565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d611c4784848484611e43565b1215979650505050505050565b5f611c5d611f17565b6040517f54636d2b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316600482015273200e12d10bb0c5e4a17e7018f0f1161919bb9389906354636d2b906024016020604051808303815f875af1158015611cda573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a83919061266d565b5f805f611d0b8585611fbd565b91509150611d19828261201f565b95945050505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d611d6584848484611e43565b13979650505050505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d611db484848484611e43565b12979650505050505050565b5f807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00611e0e60017fb750591399365444a618527b69a54ce09476c8bde1ecff60f5aa1fe2b52605ff612301565b604051602001611e2091815260200190565b60408051808303601f190181529190528051602090910120166002015492915050565b5f8085158415178187128286121817858414178015611e6857868592509250506119c6565b505f85841315611e7c575092949193919260015b8386035f8112604c8213178015611eaf578215611ea1575f89945094505050506119c6565b885f945094505050506119c6565b600a82900a8981028a828281611ec757611ec76124fe565b0514611ef3578415611ee3575f8b9650965050505050506119c6565b8a5f9650965050505050506119c6565b8415611f085788965094506119c69350505050565b95508794506119c69350505050565b73200e12d10bb0c5e4a17e7018f0f1161919bb93893b1580611f6e575073200e12d10bb0c5e4a17e7018f0f1161919bb93893f7f1de7d717526cba131d684e312dedbf0852adef9cced9e36798ae4937f7145d4114155b15611fbb576040517f73e6d7b300000000000000000000000000000000000000000000000000000000815273200e12d10bb0c5e4a17e7018f0f1161919bb938960048201526024016105c2565b565b5f805f805f611fcc8787612071565b92509250925080612013576040517fc471796600000000000000000000000000000000000000000000000000000000815260048101849052602481018390526044016105c2565b50909590945092505050565b5f805f61202c85856119cf565b9150915080611313576040517f22c9f7bb00000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016105c2565b5f808060ff841681037f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8611156120bc57600a860460018201600a88065f149350935093505061036b565b85935091506001905061036b565b5080546120d690612275565b5f825580601f106120e5575050565b601f0160209004905f5260205f20908101906121019190612104565b50565b5b808211156117be575f8155600101612105565b8035600381106106e6575f80fd5b5f8060408385031215612137575f80fd5b8235915061214760208401612118565b90509250929050565b5f60208284031215612160575f80fd5b5035919050565b5f805f60608486031215612179575f80fd5b833592506020840135915061219060408501612118565b90509250925092565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610a676020830184612199565b5f805f80606085870312156121ec575f80fd5b84359350602085013567ffffffffffffffff808216821461220b575f80fd5b90935060408601359080821115612220575f80fd5b818701915087601f830112612233575f80fd5b813581811115612241575f80fd5b886020828501011115612252575f80fd5b95989497505060200194505050565b634e487b7160e01b5f52603260045260245ffd5b600181811c9082168061228957607f821691505b6020821081036110cb57634e487b7160e01b5f52602260045260245ffd5b84815267ffffffffffffffff8416602082015260606040820152816060820152818360808301375f818301608090810191909152601f909201601f191601019392505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610a8357610a836122ed565b634e487b7160e01b5f52602160045260245ffd5b5f60208284031215612338575f80fd5b5051919050565b5f6020828403121561234f575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610a67575f80fd5b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f611d196060830184612199565b5f5f1982036123b7576123b76122ed565b5060010190565b634e487b7160e01b5f52604160045260245ffd5b601f82111561241657805f5260205f20601f840160051c810160208510156123f75750805b601f840160051c820191505b81811015610de9575f8155600101612403565b505050565b815167ffffffffffffffff811115612435576124356123be565b612449816124438454612275565b846123d2565b602080601f83116001811461247c575f84156124655750858301515b5f19600386901b1c1916600185901b17855561172d565b5f85815260208120601f198616915b828110156124aa5788860151825594840194600190910190840161248b565b50858210156124c757878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b8082018281125f8312801582168215821617156124f6576124f66122ed565b505092915050565b634e487b7160e01b5f52601260045260245ffd5b600181815b8085111561254c57815f1904821115612532576125326122ed565b8085161561253f57918102915b93841c9390800290612517565b509250929050565b5f8261256257506001610a83565b8161256e57505f610a83565b8160018114612584576002811461258e576125aa565b6001915050610a83565b60ff84111561259f5761259f6122ed565b50506001821b610a83565b5060208310610133831016604e8410600b84101617156125cd575081810a610a83565b6125d78383612512565b805f19048211156125ea576125ea6122ed565b029392505050565b5f610a678383612554565b5f610a6760ff841683612554565b80820180821115610a8357610a836122ed565b5f8261263857634e487b7160e01b5f52601260045260245ffd5b500490565b5f7f800000000000000000000000000000000000000000000000000000000000000082036117b8576117b86122ed565b5f6020828403121561267d575f80fd5b815160ff81168114610a67575f80fd"; diff --git a/src/generated/0_1_5/StoxOffchainAssetReceiptVaultAuthorizerV1.pointers.sol b/src/generated/0_1_5/StoxOffchainAssetReceiptVaultAuthorizerV1.pointers.sol deleted file mode 100644 index e161c73a..00000000 --- a/src/generated/0_1_5/StoxOffchainAssetReceiptVaultAuthorizerV1.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0xf8a1d9b2fa068bae3c1a607434db48364a5cdab3020bd7e315ed2662a3b35b5f); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x2EA0d35d0B1F57C42e6130f298930228bCbFDe9b); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"6080604052348015600e575f80fd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b611746806100d65f395ff3fe608060405234801561000f575f80fd5b506004361061009f575f3560e01c8063439fab911161007257806391d148541161005857806391d1485414610168578063a217fddf146101cc578063d547741f146101d3575f80fd5b8063439fab911461014257806359f89dda14610155575f80fd5b806301ffc9a7146100a3578063248a9ca3146100cb5780632f2ff15d1461011a57806336568abe1461012f575b5f80fd5b6100b66100b13660046112aa565b6101e6565b60405190151581526020015b60405180910390f35b61010c6100d93660046112f0565b5f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b6040519081526020016100c2565b61012d610128366004611328565b6102d9565b005b61012d61013d366004611328565b610322565b61010c610150366004611449565b610380565b61012d610163366004611483565b6106a0565b6100b6610176366004611328565b5f9182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b61010c5f81565b61012d6101e1366004611328565b610a49565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f59f89dda00000000000000000000000000000000000000000000000000000000148061027857507fffffffff0000000000000000000000000000000000000000000000000000000082167f439fab9100000000000000000000000000000000000000000000000000000000145b806102c457507fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000145b806102d357506102d382610a8c565b92915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015461031281610b22565b61031c8383610b2f565b50505050565b73ffffffffffffffffffffffffffffffffffffffff81163314610371576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61037b8282610c4d565b505050565b5f8061038a610d29565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156103b65750825b90505f8267ffffffffffffffff1660011480156103d25750303b155b9050811580156103e0575080155b15610417576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156104785784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b5f8780602001905181019061048d91906114d8565b90505f61049982610d51565b90507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc381146104cb5796506106359050565b6105157ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f897fd6075ca92e18a15ce0e8ecaaae57a112072844045d11beeb264aac5f85e0daf26110f9565b61053f7fd6075ca92e18a15ce0e8ecaaae57a112072844045d11beeb264aac5f85e0daf2806110f9565b6105897f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e77fe25ff801c3c463dad5f8999289b7b43090e0f6f5039ae7c220cbb762fe8ff3736110f9565b6105b37fe25ff801c3c463dad5f8999289b7b43090e0f6f5039ae7c220cbb762fe8ff373806110f9565b6105e07fd6075ca92e18a15ce0e8ecaaae57a112072844045d11beeb264aac5f85e0daf2835f0151610b2f565b5061060e7fe25ff801c3c463dad5f8999289b7b43090e0f6f5039ae7c220cbb762fe8ff373835f0151610b2f565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc3975050505b83156106965784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a8214806106ed57507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a4882145b156109b6575f805f7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a850361074d575f848060200190518101906107319190611536565b9050805f01519350806020015192508060600151915050610779565b5f84806020019051810190610762919061162b565b805160208201516080909201519095509093509150505b80156109ae5773ffffffffffffffffffffffffffffffffffffffff83161580156107e6575073ffffffffffffffffffffffffffffffffffffffff82165f9081527f96f78a99f93d631b75bc050854c9b764642c10564e41ed27c197a36ddabb1df9602052604090205460ff165b80610853575073ffffffffffffffffffffffffffffffffffffffff8216158015610853575073ffffffffffffffffffffffffffffffffffffffff83165f9081527f3907f76fa0fb1e5d0f263c5c4fe4316026052cf960c55a1c768106d8b9701c10602052604090205460ff165b1561086057505050505050565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a851480156108d2575073ffffffffffffffffffffffffffffffffffffffff86165f9081527f6ba48721fcbb2613af13d8285fe9ee4a081f7995464037bb5ea27397912881d2602052604090205460ff165b8061094a57507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a488514801561094a575073ffffffffffffffffffffffffffffffffffffffff86165f9081527f29e42896fa6edf5a5d7ff0bcd00acffbece6eb6cc7b44d0807bfd84929cc6e1b602052604090205460ff165b1561095757505050505050565b6040517ffe720f7800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8085166004830152831660248201526044015b60405180910390fd5b505050505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915290205460ff1615610a1157505050565b8282826040517f3ae4063b0000000000000000000000000000000000000000000000000000000081526004016109a5939291906116ed565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020526040902060010154610a8281610b22565b61031c8383610c4d565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806102d357507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146102d3565b610b2c813361119a565b50565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020818152604080842073ffffffffffffffffffffffffffffffffffffffff8616855290915282205460ff16610c44575f8481526020828152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610be03390565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506102d3565b5f9150506102d3565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020818152604080842073ffffffffffffffffffffffffffffffffffffffff8616855290915282205460ff1615610c44575f8481526020828152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506102d3565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006102d3565b5f610d5a611244565b815173ffffffffffffffffffffffffffffffffffffffff16610da8576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610df27f50a07cb25d0d864370863300b20987dfdae089abad71b607faf639d09d0533917f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b6110f9565b610e1c7f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b806110f9565b610e667f3dd35eca0ca8a128757fa464a5dfa4ad6cc4853cad96dce4e90fdbea4f0a52e37f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d6110f9565b610e907f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d806110f9565b610eda7f54f0af3716c79b30b8c228679d31d77a1a5f526c16af3262730e0a8de4363fed7fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c6110f9565b610f047fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c806110f9565b610f4e7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8217f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc026110f9565b610f787f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02806110f9565b610fc27f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e9828697fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d36110f9565b610fec7fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3806110f9565b6110197f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b835f0151610b2f565b506110477f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d835f0151610b2f565b506110757fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c835f0151610b2f565b506110a37f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02835f0151610b2f565b506110d17fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3835f0151610b2f565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc392915050565b7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268005f611152845f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b5f85815260208490526040808220600101869055519192508491839187917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a450505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16611240576040517fe2517d3f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602481018390526044016109a5565b5050565b61124c61124e565b565b61125661128c565b61124c576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f611295610d29565b5468010000000000000000900460ff16919050565b5f602082840312156112ba575f80fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146112e9575f80fd5b9392505050565b5f60208284031215611300575f80fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff81168114610b2c575f80fd5b5f8060408385031215611339575f80fd5b82359150602083013561134b81611307565b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60405160a0810167ffffffffffffffff811182821017156113a6576113a6611356565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156113d5576113d5611356565b604052919050565b5f82601f8301126113ec575f80fd5b813567ffffffffffffffff81111561140657611406611356565b6114196020601f19601f840116016113ac565b81815284602083860101111561142d575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60208284031215611459575f80fd5b813567ffffffffffffffff81111561146f575f80fd5b61147b848285016113dd565b949350505050565b5f805f60608486031215611495575f80fd5b83356114a081611307565b925060208401359150604084013567ffffffffffffffff8111156114c2575f80fd5b6114ce868287016113dd565b9150509250925092565b5f602082840312156114e8575f80fd5b6040516020810181811067ffffffffffffffff8211171561150b5761150b611356565b604052825161151981611307565b81529392505050565b80518015158114611531575f80fd5b919050565b5f60808284031215611546575f80fd5b6040516080810181811067ffffffffffffffff8211171561156957611569611356565b604052825161157781611307565b8152602083015161158781611307565b6020820152604083810151908201526115a260608401611522565b60608201529392505050565b5f82601f8301126115bd575f80fd5b8151602067ffffffffffffffff8211156115d9576115d9611356565b8160051b6115e88282016113ac565b9283528481018201928281019087851115611601575f80fd5b83870192505b8483101561162057825182529183019190830190611607565b979650505050505050565b5f6020828403121561163b575f80fd5b815167ffffffffffffffff80821115611652575f80fd5b9083019060a08286031215611665575f80fd5b61166d611383565b825161167881611307565b8152602083015161168881611307565b602082015260408301518281111561169e575f80fd5b6116aa878286016115ae565b6040830152506060830151828111156116c1575f80fd5b6116cd878286016115ae565b6060830152506116df60808401611522565b608082015295945050505050565b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f82518060608401528060208501608085015e5f608082850101526080601f19601f83011684010191505094935050505056"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b506004361061009f575f3560e01c8063439fab911161007257806391d148541161005857806391d1485414610168578063a217fddf146101cc578063d547741f146101d3575f80fd5b8063439fab911461014257806359f89dda14610155575f80fd5b806301ffc9a7146100a3578063248a9ca3146100cb5780632f2ff15d1461011a57806336568abe1461012f575b5f80fd5b6100b66100b13660046112aa565b6101e6565b60405190151581526020015b60405180910390f35b61010c6100d93660046112f0565b5f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b6040519081526020016100c2565b61012d610128366004611328565b6102d9565b005b61012d61013d366004611328565b610322565b61010c610150366004611449565b610380565b61012d610163366004611483565b6106a0565b6100b6610176366004611328565b5f9182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b61010c5f81565b61012d6101e1366004611328565b610a49565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f59f89dda00000000000000000000000000000000000000000000000000000000148061027857507fffffffff0000000000000000000000000000000000000000000000000000000082167f439fab9100000000000000000000000000000000000000000000000000000000145b806102c457507fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000145b806102d357506102d382610a8c565b92915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015461031281610b22565b61031c8383610b2f565b50505050565b73ffffffffffffffffffffffffffffffffffffffff81163314610371576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61037b8282610c4d565b505050565b5f8061038a610d29565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156103b65750825b90505f8267ffffffffffffffff1660011480156103d25750303b155b9050811580156103e0575080155b15610417576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156104785784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b5f8780602001905181019061048d91906114d8565b90505f61049982610d51565b90507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc381146104cb5796506106359050565b6105157ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f897fd6075ca92e18a15ce0e8ecaaae57a112072844045d11beeb264aac5f85e0daf26110f9565b61053f7fd6075ca92e18a15ce0e8ecaaae57a112072844045d11beeb264aac5f85e0daf2806110f9565b6105897f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e77fe25ff801c3c463dad5f8999289b7b43090e0f6f5039ae7c220cbb762fe8ff3736110f9565b6105b37fe25ff801c3c463dad5f8999289b7b43090e0f6f5039ae7c220cbb762fe8ff373806110f9565b6105e07fd6075ca92e18a15ce0e8ecaaae57a112072844045d11beeb264aac5f85e0daf2835f0151610b2f565b5061060e7fe25ff801c3c463dad5f8999289b7b43090e0f6f5039ae7c220cbb762fe8ff373835f0151610b2f565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc3975050505b83156106965784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a8214806106ed57507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a4882145b156109b6575f805f7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a850361074d575f848060200190518101906107319190611536565b9050805f01519350806020015192508060600151915050610779565b5f84806020019051810190610762919061162b565b805160208201516080909201519095509093509150505b80156109ae5773ffffffffffffffffffffffffffffffffffffffff83161580156107e6575073ffffffffffffffffffffffffffffffffffffffff82165f9081527f96f78a99f93d631b75bc050854c9b764642c10564e41ed27c197a36ddabb1df9602052604090205460ff165b80610853575073ffffffffffffffffffffffffffffffffffffffff8216158015610853575073ffffffffffffffffffffffffffffffffffffffff83165f9081527f3907f76fa0fb1e5d0f263c5c4fe4316026052cf960c55a1c768106d8b9701c10602052604090205460ff165b1561086057505050505050565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a851480156108d2575073ffffffffffffffffffffffffffffffffffffffff86165f9081527f6ba48721fcbb2613af13d8285fe9ee4a081f7995464037bb5ea27397912881d2602052604090205460ff165b8061094a57507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a488514801561094a575073ffffffffffffffffffffffffffffffffffffffff86165f9081527f29e42896fa6edf5a5d7ff0bcd00acffbece6eb6cc7b44d0807bfd84929cc6e1b602052604090205460ff165b1561095757505050505050565b6040517ffe720f7800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8085166004830152831660248201526044015b60405180910390fd5b505050505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915290205460ff1615610a1157505050565b8282826040517f3ae4063b0000000000000000000000000000000000000000000000000000000081526004016109a5939291906116ed565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020526040902060010154610a8281610b22565b61031c8383610c4d565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806102d357507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146102d3565b610b2c813361119a565b50565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020818152604080842073ffffffffffffffffffffffffffffffffffffffff8616855290915282205460ff16610c44575f8481526020828152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610be03390565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506102d3565b5f9150506102d3565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020818152604080842073ffffffffffffffffffffffffffffffffffffffff8616855290915282205460ff1615610c44575f8481526020828152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506102d3565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006102d3565b5f610d5a611244565b815173ffffffffffffffffffffffffffffffffffffffff16610da8576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610df27f50a07cb25d0d864370863300b20987dfdae089abad71b607faf639d09d0533917f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b6110f9565b610e1c7f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b806110f9565b610e667f3dd35eca0ca8a128757fa464a5dfa4ad6cc4853cad96dce4e90fdbea4f0a52e37f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d6110f9565b610e907f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d806110f9565b610eda7f54f0af3716c79b30b8c228679d31d77a1a5f526c16af3262730e0a8de4363fed7fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c6110f9565b610f047fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c806110f9565b610f4e7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8217f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc026110f9565b610f787f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02806110f9565b610fc27f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e9828697fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d36110f9565b610fec7fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3806110f9565b6110197f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b835f0151610b2f565b506110477f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d835f0151610b2f565b506110757fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c835f0151610b2f565b506110a37f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02835f0151610b2f565b506110d17fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3835f0151610b2f565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc392915050565b7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268005f611152845f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b5f85815260208490526040808220600101869055519192508491839187917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a450505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16611240576040517fe2517d3f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602481018390526044016109a5565b5050565b61124c61124e565b565b61125661128c565b61124c576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f611295610d29565b5468010000000000000000900460ff16919050565b5f602082840312156112ba575f80fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146112e9575f80fd5b9392505050565b5f60208284031215611300575f80fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff81168114610b2c575f80fd5b5f8060408385031215611339575f80fd5b82359150602083013561134b81611307565b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60405160a0810167ffffffffffffffff811182821017156113a6576113a6611356565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156113d5576113d5611356565b604052919050565b5f82601f8301126113ec575f80fd5b813567ffffffffffffffff81111561140657611406611356565b6114196020601f19601f840116016113ac565b81815284602083860101111561142d575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60208284031215611459575f80fd5b813567ffffffffffffffff81111561146f575f80fd5b61147b848285016113dd565b949350505050565b5f805f60608486031215611495575f80fd5b83356114a081611307565b925060208401359150604084013567ffffffffffffffff8111156114c2575f80fd5b6114ce868287016113dd565b9150509250925092565b5f602082840312156114e8575f80fd5b6040516020810181811067ffffffffffffffff8211171561150b5761150b611356565b604052825161151981611307565b81529392505050565b80518015158114611531575f80fd5b919050565b5f60808284031215611546575f80fd5b6040516080810181811067ffffffffffffffff8211171561156957611569611356565b604052825161157781611307565b8152602083015161158781611307565b6020820152604083810151908201526115a260608401611522565b60608201529392505050565b5f82601f8301126115bd575f80fd5b8151602067ffffffffffffffff8211156115d9576115d9611356565b8160051b6115e88282016113ac565b9283528481018201928281019087851115611601575f80fd5b83870192505b8483101561162057825182529183019190830190611607565b979650505050505050565b5f6020828403121561163b575f80fd5b815167ffffffffffffffff80821115611652575f80fd5b9083019060a08286031215611665575f80fd5b61166d611383565b825161167881611307565b8152602083015161168881611307565b602082015260408301518281111561169e575f80fd5b6116aa878286016115ae565b6040830152506060830151828111156116c1575f80fd5b6116cd878286016115ae565b6060830152506116df60808401611522565b608082015295945050505050565b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f82518060608401528060208501608085015e5f608082850101526080601f19601f83011684010191505094935050505056"; diff --git a/src/generated/0_1_5/StoxOffchainAssetReceiptVaultBeaconSetDeployer.pointers.sol b/src/generated/0_1_5/StoxOffchainAssetReceiptVaultBeaconSetDeployer.pointers.sol deleted file mode 100644 index 31a0f1ac..00000000 --- a/src/generated/0_1_5/StoxOffchainAssetReceiptVaultBeaconSetDeployer.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x4637b099fe9279a8d4d88d9176ccadf92b20970eaf0b57b51997756d479ef43b); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x679ab223dAb158Ea93e1a4F49104DE436C58eAb8); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"60c060405234801561000f575f80fd5b5060408051606081018252738e4bdeec7ceb9570d440676345da1dce10329f5b808252732df5cfe6d688ef9ff1b7c59a499d254b1527b2866020830181905273d7f91c1c6e6e651ec3f1fd707af7cbb7526206e18385015292519192916100759061010b565b6001600160a01b03928316815291166020820152604001604051809103905ff0801580156100a5573d5f803e3d5ffd5b506001600160a01b0316608052604080820151825191519091906100c89061010b565b6001600160a01b03928316815291166020820152604001604051809103905ff0801580156100f8573d5f803e3d5ffd5b506001600160a01b031660a05250610118565b6104f780610fd783390190565b60805160a051610e926101455f395f818160c701526102d801525f8181607b01526102630152610e925ff3fe608060405234801561000f575f80fd5b506004361061004a575f3560e01c806301ffc9a71461004e5780632c9b7f40146100765780632f77a1c1146100c25780634904fab3146100e9575b5f80fd5b61006161005c3660046105d0565b6100fc565b60405190151581526020015b60405180910390f35b61009d7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161006d565b61009d7f000000000000000000000000000000000000000000000000000000000000000081565b61009d6100f736600461075e565b610194565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f4ae8243200000000000000000000000000000000000000000000000000000000148061018e57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b6020810151606001515f9073ffffffffffffffffffffffffffffffffffffffff1615610212576020820151606001516040517ffc47d97600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116600482015260240160405180910390fd5b815173ffffffffffffffffffffffffffffffffffffffff16610260576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7f000000000000000000000000000000000000000000000000000000000000000060405161028e906105c3565b73ffffffffffffffffffffffffffffffffffffffff90911681526040602082018190525f90820152606001604051809103905ff0801580156102d2573d5f803e3d5ffd5b5090505f7f0000000000000000000000000000000000000000000000000000000000000000604051610303906105c3565b73ffffffffffffffffffffffffffffffffffffffff90911681526040602082018190525f90820152606001604051809103905ff080158015610347573d5f803e3d5ffd5b506040805173ffffffffffffffffffffffffffffffffffffffff80841660208301529293507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc39285169163439fab9191016040516020818303038152906040526040518263ffffffff1660e01b81526004016103c39190610894565b6020604051808303815f875af11580156103df573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061040391906108a6565b1461043a576040517f0219069c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8184602001516060019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc38173ffffffffffffffffffffffffffffffffffffffff1663439fab91866040516020016104c491906108bd565b6040516020818303038152906040526040518263ffffffff1660e01b81526004016104ef9190610894565b6020604051808303815f875af115801561050b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061052f91906108a6565b14610566576040517f09c5931500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805133815273ffffffffffffffffffffffffffffffffffffffff838116602083015284168183015290517fa0d99d93cf7a5f89661fa0829369a7e4896e755871efe65440bab2429387d55b9181900360600190a19392505050565b61052f8061096383390190565b5f602082840312156105e0575f80fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461060f575f80fd5b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff8111828210171561066657610666610616565b60405290565b6040516080810167ffffffffffffffff8111828210171561066657610666610616565b803573ffffffffffffffffffffffffffffffffffffffff811681146106b2575f80fd5b919050565b5f82601f8301126106c6575f80fd5b813567ffffffffffffffff808211156106e1576106e1610616565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561072757610727610616565b8160405283815286602085880101111561073f575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f6020828403121561076e575f80fd5b813567ffffffffffffffff80821115610785575f80fd5b9083019060408286031215610798575f80fd5b6107a0610643565b6107a98361068f565b81526020830135828111156107bc575f80fd5b9290920191608083870312156107d0575f80fd5b6107d861066c565b6107e18461068f565b81526020840135838111156107f4575f80fd5b610800888287016106b7565b602083015250604084013583811115610817575f80fd5b610823888287016106b7565b6040830152506108356060850161068f565b6060820152602082015295945050505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f61060f6020830184610848565b5f602082840312156108b6575f80fd5b5051919050565b602081525f73ffffffffffffffffffffffffffffffffffffffff8084511660208401526020840151604080850152818151166060850152602081015160808086015261090c60e0860182610848565b905060408201517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08683030160a08701526109478282610848565b9150508260608301511660c08601528093505050509291505056fe60a060405260405161052f38038061052f83398101604081905261002291610331565b61002c828261003e565b506001600160a01b031660805261040d565b610047826100fb565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a28051156100ef576100ea826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e491906103ed565b82610209565b505050565b6100f76102aa565b5050565b806001600160a01b03163b5f0361013557604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b815290515f92841691635c60da1b9160048083019260209291908290030181865afa1580156101ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d291906103ed565b9050806001600160a01b03163b5f036100f757604051634c9c8ce360e01b81526001600160a01b038216600482015260240161012c565b60605f61021684846102cb565b905080801561023757505f3d118061023757505f846001600160a01b03163b115b1561024c576102446102de565b9150506102a4565b801561027657604051639996b31560e01b81526001600160a01b038516600482015260240161012c565b3d15610289576102846102f7565b6102a2565b60405163d6bda27560e01b815260040160405180910390fd5b505b92915050565b34156102c95760405163b398979f60e01b815260040160405180910390fd5b565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b6040513d5f823e3d81fd5b80516001600160a01b0381168114610318575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215610342575f80fd5b61034b83610302565b60208401519092506001600160401b0380821115610367575f80fd5b818501915085601f83011261037a575f80fd5b81518181111561038c5761038c61031d565b604051601f8201601f19908116603f011681019083821181831017156103b4576103b461031d565b816040528281528860208487010111156103cc575f80fd5b8260208601602083015e5f6020848301015280955050505050509250929050565b5f602082840312156103fd575f80fd5b61040682610302565b9392505050565b60805161010b6104245f395f6023015261010b5ff3fe608060405261000c61000e565b005b61001e610019610020565b6100b3565b565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561008a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100ae91906100d1565b905090565b365f80375f80365f845af43d5f803e8080156100cd573d5ff35b3d5ffd5b5f602082840312156100e1575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610104575f80fd5b939250505056608060405234801561000f575f80fd5b506040516104f73803806104f783398101604081905261002e9161015f565b806001600160a01b03811661005d57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b61006681610077565b50610070826100c6565b5050610190565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b806001600160a01b03163b5f036100fb5760405163211eb15960e21b81526001600160a01b0382166004820152602401610054565b600180546001600160a01b0319166001600160a01b0383169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b80516001600160a01b038116811461015a575f80fd5b919050565b5f8060408385031215610170575f80fd5b61017983610144565b915061018760208401610144565b90509250929050565b61035a8061019d5f395ff3fe608060405234801561000f575f80fd5b5060043610610064575f3560e01c8063715018a61161004d578063715018a6146100c05780638da5cb5b146100c8578063f2fde38b146100e5575f80fd5b80633659cfe6146100685780635c60da1b1461007d575b5f80fd5b61007b610076366004610320565b6100f8565b005b60015473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61007b61010c565b5f5473ffffffffffffffffffffffffffffffffffffffff16610097565b61007b6100f3366004610320565b61011f565b610100610184565b610109816101d6565b50565b610114610184565b61011d5f6102ac565b565b610127610184565b73ffffffffffffffffffffffffffffffffffffffff811661017b576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f60048201526024015b60405180910390fd5b610109816102ac565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461011d576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610172565b8073ffffffffffffffffffffffffffffffffffffffff163b5f0361023e576040517f847ac56400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602401610172565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f60208284031215610330575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610353575f80fd5b939250505056"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b506004361061004a575f3560e01c806301ffc9a71461004e5780632c9b7f40146100765780632f77a1c1146100c25780634904fab3146100e9575b5f80fd5b61006161005c3660046105d0565b6100fc565b60405190151581526020015b60405180910390f35b61009d7f000000000000000000000000913f9edb29dd88314ee1559c18495b5332464d3b81565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161006d565b61009d7f000000000000000000000000bc924b1c3d3f3e038d5bf85710f695bcb22e715281565b61009d6100f736600461075e565b610194565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f4ae8243200000000000000000000000000000000000000000000000000000000148061018e57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b6020810151606001515f9073ffffffffffffffffffffffffffffffffffffffff1615610212576020820151606001516040517ffc47d97600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116600482015260240160405180910390fd5b815173ffffffffffffffffffffffffffffffffffffffff16610260576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7f000000000000000000000000913f9edb29dd88314ee1559c18495b5332464d3b60405161028e906105c3565b73ffffffffffffffffffffffffffffffffffffffff90911681526040602082018190525f90820152606001604051809103905ff0801580156102d2573d5f803e3d5ffd5b5090505f7f000000000000000000000000bc924b1c3d3f3e038d5bf85710f695bcb22e7152604051610303906105c3565b73ffffffffffffffffffffffffffffffffffffffff90911681526040602082018190525f90820152606001604051809103905ff080158015610347573d5f803e3d5ffd5b506040805173ffffffffffffffffffffffffffffffffffffffff80841660208301529293507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc39285169163439fab9191016040516020818303038152906040526040518263ffffffff1660e01b81526004016103c39190610894565b6020604051808303815f875af11580156103df573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061040391906108a6565b1461043a576040517f0219069c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8184602001516060019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc38173ffffffffffffffffffffffffffffffffffffffff1663439fab91866040516020016104c491906108bd565b6040516020818303038152906040526040518263ffffffff1660e01b81526004016104ef9190610894565b6020604051808303815f875af115801561050b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061052f91906108a6565b14610566576040517f09c5931500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805133815273ffffffffffffffffffffffffffffffffffffffff838116602083015284168183015290517fa0d99d93cf7a5f89661fa0829369a7e4896e755871efe65440bab2429387d55b9181900360600190a19392505050565b61052f8061096383390190565b5f602082840312156105e0575f80fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461060f575f80fd5b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff8111828210171561066657610666610616565b60405290565b6040516080810167ffffffffffffffff8111828210171561066657610666610616565b803573ffffffffffffffffffffffffffffffffffffffff811681146106b2575f80fd5b919050565b5f82601f8301126106c6575f80fd5b813567ffffffffffffffff808211156106e1576106e1610616565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561072757610727610616565b8160405283815286602085880101111561073f575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f6020828403121561076e575f80fd5b813567ffffffffffffffff80821115610785575f80fd5b9083019060408286031215610798575f80fd5b6107a0610643565b6107a98361068f565b81526020830135828111156107bc575f80fd5b9290920191608083870312156107d0575f80fd5b6107d861066c565b6107e18461068f565b81526020840135838111156107f4575f80fd5b610800888287016106b7565b602083015250604084013583811115610817575f80fd5b610823888287016106b7565b6040830152506108356060850161068f565b6060820152602082015295945050505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f61060f6020830184610848565b5f602082840312156108b6575f80fd5b5051919050565b602081525f73ffffffffffffffffffffffffffffffffffffffff8084511660208401526020840151604080850152818151166060850152602081015160808086015261090c60e0860182610848565b905060408201517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08683030160a08701526109478282610848565b9150508260608301511660c08601528093505050509291505056fe60a060405260405161052f38038061052f83398101604081905261002291610331565b61002c828261003e565b506001600160a01b031660805261040d565b610047826100fb565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a28051156100ef576100ea826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e491906103ed565b82610209565b505050565b6100f76102aa565b5050565b806001600160a01b03163b5f0361013557604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b815290515f92841691635c60da1b9160048083019260209291908290030181865afa1580156101ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d291906103ed565b9050806001600160a01b03163b5f036100f757604051634c9c8ce360e01b81526001600160a01b038216600482015260240161012c565b60605f61021684846102cb565b905080801561023757505f3d118061023757505f846001600160a01b03163b115b1561024c576102446102de565b9150506102a4565b801561027657604051639996b31560e01b81526001600160a01b038516600482015260240161012c565b3d15610289576102846102f7565b6102a2565b60405163d6bda27560e01b815260040160405180910390fd5b505b92915050565b34156102c95760405163b398979f60e01b815260040160405180910390fd5b565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b6040513d5f823e3d81fd5b80516001600160a01b0381168114610318575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215610342575f80fd5b61034b83610302565b60208401519092506001600160401b0380821115610367575f80fd5b818501915085601f83011261037a575f80fd5b81518181111561038c5761038c61031d565b604051601f8201601f19908116603f011681019083821181831017156103b4576103b461031d565b816040528281528860208487010111156103cc575f80fd5b8260208601602083015e5f6020848301015280955050505050509250929050565b5f602082840312156103fd575f80fd5b61040682610302565b9392505050565b60805161010b6104245f395f6023015261010b5ff3fe608060405261000c61000e565b005b61001e610019610020565b6100b3565b565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561008a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100ae91906100d1565b905090565b365f80375f80365f845af43d5f803e8080156100cd573d5ff35b3d5ffd5b5f602082840312156100e1575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610104575f80fd5b939250505056"; diff --git a/src/generated/0_1_5/StoxOffchainAssetReceiptVaultPaymentMintAuthorizerV1.pointers.sol b/src/generated/0_1_5/StoxOffchainAssetReceiptVaultPaymentMintAuthorizerV1.pointers.sol deleted file mode 100644 index f343350f..00000000 --- a/src/generated/0_1_5/StoxOffchainAssetReceiptVaultPaymentMintAuthorizerV1.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x4d94318cde48f1bc20f97e00aefad84bfb7c9db15c81b882862e127b05e06e15); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0xeaD68E489Cb19453b294dc46a3A5710b0d46d17F); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"6080604052348015600e575f80fd5b506015601f565b601b601f565b60cf565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615606e5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460cc5780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b612650806100dc5f395ff3fe608060405234801561000f575f80fd5b5060043610610115575f3560e01c806359f89dda116100ad578063a086e1751161007d578063a4c9d30011610063578063a4c9d3001461030a578063d547741f14610312578063f2fde38b14610325575f80fd5b8063a086e175146102fb578063a217fddf14610303575f80fd5b806359f89dda14610281578063715018a6146102945780638da5cb5b1461029c57806391d14854146102a4575f80fd5b80633013ce29116100e85780633013ce29146101c8578063325cd7961461020c57806336568abe1461025b578063439fab911461026e575f80fd5b806301ffc9a71461011957806304a0db2014610141578063248a9ca3146101725780632f2ff15d146101b3575b5f80fd5b61012c610127366004611eec565b610338565b60405190151581526020015b60405180910390f35b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3202545b604051908152602001610138565b610164610180366004611f2b565b5f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b6101c66101c1366004611f56565b61042b565b005b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3201546001600160a01b03165b6040516001600160a01b039091168152602001610138565b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b32015474010000000000000000000000000000000000000000900460ff1660405160ff9091168152602001610138565b6101c6610269366004611f56565b610474565b61016461027c3660046120a7565b6104c5565b6101c661028f3660046120d9565b610a55565b6101c6610e31565b6101f4610e44565b61012c6102b2366004611f56565b5f9182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6101f4610e78565b6101645f81565b6101c6610ea0565b6101c6610320366004611f56565b610f69565b6101c661033336600461212e565b610fac565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f59f89dda0000000000000000000000000000000000000000000000000000000014806103ca57507fffffffff0000000000000000000000000000000000000000000000000000000082167f439fab9100000000000000000000000000000000000000000000000000000000145b8061041657507fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000145b80610425575061042582610fff565b92915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015461046481611095565b61046e838361109f565b50505050565b6001600160a01b03811633146104b6576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104c08282611190565b505050565b5f806104cf611252565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156104fb5750825b90505f8267ffffffffffffffff1660011480156105175750303b155b905081158015610525575080155b1561055c576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156105bd5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b5f878060200190518101906105d29190612149565b80519091506001600160a01b0316610616576040517fa7d26c7300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60208101516001600160a01b031661065a576040517f364467d300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408101516001600160a01b031661069e576040517f3731597600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60608101516001600160a01b03166106e2576040517ff10d418200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80608001515f0361071f576040517f7e0eb2bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80517f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b320080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b039384161782556020808501517f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b32038054841691861691909117905560608501517f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b320180549093169416938417909155604080517f313ce567000000000000000000000000000000000000000000000000000000008152905192935f93909263313ce56792600480820193918290030181865afa158015610830573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061085491906121ba565b6001830180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000060ff8416021790556080840151600284015560408401519091506108b59061127a565b7fbf322f47f534976d35baa3292f4fd04bf379264783a734383401b0e6e51cb16d835f0151846020015185604001518660600151858860800151604051610939969594939291906001600160a01b039687168152948616602086015292851660408501529316606083015260ff92909216608082015260a081019190915260c00190565b60405180910390a1610965604051806020016040528085604001516001600160a01b031681525061128b565b506109947f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc028460400151611190565b506109c37fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d38460400151611190565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc398505050508315610a4b5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b320080546001600160a01b0316338114610ac9578484846040517f3ae4063b000000000000000000000000000000000000000000000000000000008152600401610ac0939291906121da565b60405180910390fd5b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8218403610e1f575f83806020019051810190610b059190612226565b60018481015460808301519293506001600160a01b038116927401000000000000000000000000000000000000000090910460ff16915f91610b48918490611626565b90505f836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b87573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bab91906121ba565b60ff169050828114610bf3576040517fe420d7af0000000000000000000000000000000000000000000000000000000081526004810184905260248101829052604401610ac0565b5f866001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c30573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c549190612312565b90508760020154811115610ca45760028801546040517f86529caa000000000000000000000000000000000000000000000000000000008152600481019190915260248101829052604401610ac0565b825f03610d045785516040517f3ae4063b000000000000000000000000000000000000000000000000000000008152610ac091907f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f821908c906004016121da565b8551610d1c906001600160a01b0387169030866116ad565b600388015486516040517fdb8554fc0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201524260248201525f92919091169063db8554fc90604401602060405180830381865afa158015610d8a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dae9190612312565b905060028114610e115786516040517f3ae4063b000000000000000000000000000000000000000000000000000000008152610ac091907f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f821908d906004016121da565b505050505050505050505050565b610e2a8585856116fc565b5050505050565b610e39611a38565b610e425f611a83565b565b5f807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b5f807f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3200610e68565b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3200610f66610ecc610e44565b60018301546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015610f2d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f519190612312565b60018401546001600160a01b03169190611b0b565b50565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020526040902060010154610fa281611095565b61046e8383611190565b610fb4611a38565b6001600160a01b038116610ff6576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f6004820152602401610ac0565b610f6681611a83565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061042557507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610425565b610f668133611b59565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff16611180575f848152602082815260408083206001600160a01b0387168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556111363390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610425565b5f915050610425565b5092915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff1615611180575f848152602082815260408083206001600160a01b038716808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610425565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610425565b611282611be9565b610f6681611c27565b5f611294611c2f565b81516001600160a01b03166112d5576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61131f7f50a07cb25d0d864370863300b20987dfdae089abad71b607faf639d09d0533917f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b611c37565b6113497f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b80611c37565b6113937f3dd35eca0ca8a128757fa464a5dfa4ad6cc4853cad96dce4e90fdbea4f0a52e37f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d611c37565b6113bd7f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d80611c37565b6114077f54f0af3716c79b30b8c228679d31d77a1a5f526c16af3262730e0a8de4363fed7fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c611c37565b6114317fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c80611c37565b61147b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8217f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02611c37565b6114a57f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc0280611c37565b6114ef7f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e9828697fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3611c37565b6115197fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d380611c37565b6115467f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b835f015161109f565b506115747f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d835f015161109f565b506115a27fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c835f015161109f565b506115d07f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02835f015161109f565b506115fe7fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3835f015161109f565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc392915050565b5f826012111561165a5760128390036001831615611650576116488582611cd8565b9150506116a6565b6116488582611d24565b60128311156116a3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee83016002831615611699576116488582611d4e565b6116488582611d9e565b50825b9392505050565b6116bb848484846001611dcd565b61046e576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610ac0565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a82148061174957507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a4882145b156119b2575f805f7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a85036117a9575f8480602001905181019061178d919061233d565b9050805f015193508060200151925080606001519150506117d5565b5f848060200190518101906117be9190612432565b805160208201516080909201519095509093509150505b80156119aa576001600160a01b03831615801561182857506001600160a01b0382165f9081527f96f78a99f93d631b75bc050854c9b764642c10564e41ed27c197a36ddabb1df9602052604090205460ff165b8061187b57506001600160a01b03821615801561187b57506001600160a01b0383165f9081527f3907f76fa0fb1e5d0f263c5c4fe4316026052cf960c55a1c768106d8b9701c10602052604090205460ff165b1561188857505050505050565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a851480156118ed57506001600160a01b0386165f9081527f6ba48721fcbb2613af13d8285fe9ee4a081f7995464037bb5ea27397912881d2602052604090205460ff165b8061195857507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a488514801561195857506001600160a01b0386165f9081527f29e42896fa6edf5a5d7ff0bcd00acffbece6eb6cc7b44d0807bfd84929cc6e1b602052604090205460ff165b1561196557505050505050565b6040517ffe720f780000000000000000000000000000000000000000000000000000000081526001600160a01b03808516600483015283166024820152604401610ac0565b505050505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038716845290915290205460ff1615611a0057505050565b8282826040517f3ae4063b000000000000000000000000000000000000000000000000000000008152600401610ac0939291906121da565b33611a41610e44565b6001600160a01b031614610e42576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610ac0565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b611b188383836001611e53565b6104c0576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610ac0565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038516845290915290205460ff16611be5576040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015260248101839052604401610ac0565b5050565b611bf1611ece565b610e42576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fb4611be9565b610e42611be9565b7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268005f611c90845f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b5f85815260208490526040808220600101869055519192508491839187917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a450505050565b5f604e8210611cfa578215611cee576001611cf0565b5f5b60ff169050610425565b600a82900a808481611d0e57611d0e6124f4565b0491508082028414611189575060010192915050565b5f604e821015611d465781600a0a8381611d4057611d406124f4565b046116a6565b5f9392505050565b5f604e8210611d6d578215611d64575f19611d66565b5f5b9050610425565b50600a81900a8281029083818381611d8757611d876124f4565b0414611d94575f19611d96565b815b949350505050565b600a81900a611dad818461254e565b9050604e8210610425578215611d4657611dc882600a612645565b6116a6565b6040517f23b872dd000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038781166004528616602452604485905291602083606481808c5af1925060015f51148316611e42578383151615611e36573d5f823e3d81fd5b5f883b113d1516831692505b604052505f60605295945050505050565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f51148316611ec2578383151615611eb6573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b5f611ed7611252565b5468010000000000000000900460ff16919050565b5f60208284031215611efc575f80fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146116a6575f80fd5b5f60208284031215611f3b575f80fd5b5035919050565b6001600160a01b0381168114610f66575f80fd5b5f8060408385031215611f67575f80fd5b823591506020830135611f7981611f42565b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60405160a0810167ffffffffffffffff81118282101715611fd457611fd4611f84565b60405290565b60405160c0810167ffffffffffffffff81118282101715611fd457611fd4611f84565b604051601f8201601f1916810167ffffffffffffffff8111828210171561202657612026611f84565b604052919050565b5f67ffffffffffffffff82111561204757612047611f84565b50601f01601f191660200190565b5f82601f830112612064575f80fd5b81356120776120728261202e565b611ffd565b81815284602083860101111561208b575f80fd5b816020850160208301375f918101602001919091529392505050565b5f602082840312156120b7575f80fd5b813567ffffffffffffffff8111156120cd575f80fd5b611d9684828501612055565b5f805f606084860312156120eb575f80fd5b83356120f681611f42565b925060208401359150604084013567ffffffffffffffff811115612118575f80fd5b61212486828701612055565b9150509250925092565b5f6020828403121561213e575f80fd5b81356116a681611f42565b5f60a08284031215612159575f80fd5b612161611fb1565b825161216c81611f42565b8152602083015161217c81611f42565b6020820152604083015161218f81611f42565b604082015260608301516121a281611f42565b60608201526080928301519281019290925250919050565b5f602082840312156121ca575f80fd5b815160ff811681146116a6575f80fd5b6001600160a01b0384168152826020820152606060408201525f82518060608401528060208501608085015e5f608082850101526080601f19601f830116840101915050949350505050565b5f6020808385031215612237575f80fd5b825167ffffffffffffffff8082111561224e575f80fd5b9084019060c08287031215612261575f80fd5b612269611fda565b825161227481611f42565b81528284015161228381611f42565b80858301525060408301516040820152606083015160608201526080830151608082015260a0830151828111156122b8575f80fd5b80840193505086601f8401126122cc575f80fd5b825191506122dc6120728361202e565b82815287858486010111156122ef575f80fd5b828585018683015e5f8584830101528060a0830152508094505050505092915050565b5f60208284031215612322575f80fd5b5051919050565b80518015158114612338575f80fd5b919050565b5f6080828403121561234d575f80fd5b6040516080810181811067ffffffffffffffff8211171561237057612370611f84565b604052825161237e81611f42565b8152602083015161238e81611f42565b6020820152604083810151908201526123a960608401612329565b60608201529392505050565b5f82601f8301126123c4575f80fd5b8151602067ffffffffffffffff8211156123e0576123e0611f84565b8160051b6123ef828201611ffd565b9283528481018201928281019087851115612408575f80fd5b83870192505b848310156124275782518252918301919083019061240e565b979650505050505050565b5f60208284031215612442575f80fd5b815167ffffffffffffffff80821115612459575f80fd5b9083019060a0828603121561246c575f80fd5b612474611fb1565b825161247f81611f42565b8152602083015161248f81611f42565b60208201526040830151828111156124a5575f80fd5b6124b1878286016123b5565b6040830152506060830151828111156124c8575f80fd5b6124d4878286016123b5565b6060830152506124e660808401612329565b608082015295945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b808202811582820484141761042557610425612521565b600181815b8085111561259f57815f190482111561258557612585612521565b8085161561259257918102915b93841c939080029061256a565b509250929050565b5f826125b557506001610425565b816125c157505f610425565b81600181146125d757600281146125e1576125fd565b6001915050610425565b60ff8411156125f2576125f2612521565b50506001821b610425565b5060208310610133831016604e8410600b8410161715612620575081810a610425565b61262a8383612565565b805f190482111561263d5761263d612521565b029392505050565b5f6116a683836125a756"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b5060043610610115575f3560e01c806359f89dda116100ad578063a086e1751161007d578063a4c9d30011610063578063a4c9d3001461030a578063d547741f14610312578063f2fde38b14610325575f80fd5b8063a086e175146102fb578063a217fddf14610303575f80fd5b806359f89dda14610281578063715018a6146102945780638da5cb5b1461029c57806391d14854146102a4575f80fd5b80633013ce29116100e85780633013ce29146101c8578063325cd7961461020c57806336568abe1461025b578063439fab911461026e575f80fd5b806301ffc9a71461011957806304a0db2014610141578063248a9ca3146101725780632f2ff15d146101b3575b5f80fd5b61012c610127366004611eec565b610338565b60405190151581526020015b60405180910390f35b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3202545b604051908152602001610138565b610164610180366004611f2b565b5f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b6101c66101c1366004611f56565b61042b565b005b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3201546001600160a01b03165b6040516001600160a01b039091168152602001610138565b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b32015474010000000000000000000000000000000000000000900460ff1660405160ff9091168152602001610138565b6101c6610269366004611f56565b610474565b61016461027c3660046120a7565b6104c5565b6101c661028f3660046120d9565b610a55565b6101c6610e31565b6101f4610e44565b61012c6102b2366004611f56565b5f9182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6101f4610e78565b6101645f81565b6101c6610ea0565b6101c6610320366004611f56565b610f69565b6101c661033336600461212e565b610fac565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f59f89dda0000000000000000000000000000000000000000000000000000000014806103ca57507fffffffff0000000000000000000000000000000000000000000000000000000082167f439fab9100000000000000000000000000000000000000000000000000000000145b8061041657507fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000145b80610425575061042582610fff565b92915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015461046481611095565b61046e838361109f565b50505050565b6001600160a01b03811633146104b6576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104c08282611190565b505050565b5f806104cf611252565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156104fb5750825b90505f8267ffffffffffffffff1660011480156105175750303b155b905081158015610525575080155b1561055c576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156105bd5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b5f878060200190518101906105d29190612149565b80519091506001600160a01b0316610616576040517fa7d26c7300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60208101516001600160a01b031661065a576040517f364467d300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408101516001600160a01b031661069e576040517f3731597600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60608101516001600160a01b03166106e2576040517ff10d418200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80608001515f0361071f576040517f7e0eb2bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80517f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b320080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b039384161782556020808501517f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b32038054841691861691909117905560608501517f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b320180549093169416938417909155604080517f313ce567000000000000000000000000000000000000000000000000000000008152905192935f93909263313ce56792600480820193918290030181865afa158015610830573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061085491906121ba565b6001830180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000060ff8416021790556080840151600284015560408401519091506108b59061127a565b7fbf322f47f534976d35baa3292f4fd04bf379264783a734383401b0e6e51cb16d835f0151846020015185604001518660600151858860800151604051610939969594939291906001600160a01b039687168152948616602086015292851660408501529316606083015260ff92909216608082015260a081019190915260c00190565b60405180910390a1610965604051806020016040528085604001516001600160a01b031681525061128b565b506109947f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc028460400151611190565b506109c37fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d38460400151611190565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc398505050508315610a4b5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b320080546001600160a01b0316338114610ac9578484846040517f3ae4063b000000000000000000000000000000000000000000000000000000008152600401610ac0939291906121da565b60405180910390fd5b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8218403610e1f575f83806020019051810190610b059190612226565b60018481015460808301519293506001600160a01b038116927401000000000000000000000000000000000000000090910460ff16915f91610b48918490611626565b90505f836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b87573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bab91906121ba565b60ff169050828114610bf3576040517fe420d7af0000000000000000000000000000000000000000000000000000000081526004810184905260248101829052604401610ac0565b5f866001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c30573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c549190612312565b90508760020154811115610ca45760028801546040517f86529caa000000000000000000000000000000000000000000000000000000008152600481019190915260248101829052604401610ac0565b825f03610d045785516040517f3ae4063b000000000000000000000000000000000000000000000000000000008152610ac091907f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f821908c906004016121da565b8551610d1c906001600160a01b0387169030866116ad565b600388015486516040517fdb8554fc0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201524260248201525f92919091169063db8554fc90604401602060405180830381865afa158015610d8a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dae9190612312565b905060028114610e115786516040517f3ae4063b000000000000000000000000000000000000000000000000000000008152610ac091907f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f821908d906004016121da565b505050505050505050505050565b610e2a8585856116fc565b5050505050565b610e39611a38565b610e425f611a83565b565b5f807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b5f807f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3200610e68565b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3200610f66610ecc610e44565b60018301546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015610f2d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f519190612312565b60018401546001600160a01b03169190611b0b565b50565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020526040902060010154610fa281611095565b61046e8383611190565b610fb4611a38565b6001600160a01b038116610ff6576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f6004820152602401610ac0565b610f6681611a83565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061042557507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610425565b610f668133611b59565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff16611180575f848152602082815260408083206001600160a01b0387168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556111363390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610425565b5f915050610425565b5092915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff1615611180575f848152602082815260408083206001600160a01b038716808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610425565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610425565b611282611be9565b610f6681611c27565b5f611294611c2f565b81516001600160a01b03166112d5576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61131f7f50a07cb25d0d864370863300b20987dfdae089abad71b607faf639d09d0533917f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b611c37565b6113497f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b80611c37565b6113937f3dd35eca0ca8a128757fa464a5dfa4ad6cc4853cad96dce4e90fdbea4f0a52e37f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d611c37565b6113bd7f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d80611c37565b6114077f54f0af3716c79b30b8c228679d31d77a1a5f526c16af3262730e0a8de4363fed7fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c611c37565b6114317fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c80611c37565b61147b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8217f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02611c37565b6114a57f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc0280611c37565b6114ef7f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e9828697fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3611c37565b6115197fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d380611c37565b6115467f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b835f015161109f565b506115747f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d835f015161109f565b506115a27fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c835f015161109f565b506115d07f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02835f015161109f565b506115fe7fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3835f015161109f565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc392915050565b5f826012111561165a5760128390036001831615611650576116488582611cd8565b9150506116a6565b6116488582611d24565b60128311156116a3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee83016002831615611699576116488582611d4e565b6116488582611d9e565b50825b9392505050565b6116bb848484846001611dcd565b61046e576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610ac0565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a82148061174957507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a4882145b156119b2575f805f7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a85036117a9575f8480602001905181019061178d919061233d565b9050805f015193508060200151925080606001519150506117d5565b5f848060200190518101906117be9190612432565b805160208201516080909201519095509093509150505b80156119aa576001600160a01b03831615801561182857506001600160a01b0382165f9081527f96f78a99f93d631b75bc050854c9b764642c10564e41ed27c197a36ddabb1df9602052604090205460ff165b8061187b57506001600160a01b03821615801561187b57506001600160a01b0383165f9081527f3907f76fa0fb1e5d0f263c5c4fe4316026052cf960c55a1c768106d8b9701c10602052604090205460ff165b1561188857505050505050565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a851480156118ed57506001600160a01b0386165f9081527f6ba48721fcbb2613af13d8285fe9ee4a081f7995464037bb5ea27397912881d2602052604090205460ff165b8061195857507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a488514801561195857506001600160a01b0386165f9081527f29e42896fa6edf5a5d7ff0bcd00acffbece6eb6cc7b44d0807bfd84929cc6e1b602052604090205460ff165b1561196557505050505050565b6040517ffe720f780000000000000000000000000000000000000000000000000000000081526001600160a01b03808516600483015283166024820152604401610ac0565b505050505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038716845290915290205460ff1615611a0057505050565b8282826040517f3ae4063b000000000000000000000000000000000000000000000000000000008152600401610ac0939291906121da565b33611a41610e44565b6001600160a01b031614610e42576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610ac0565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b611b188383836001611e53565b6104c0576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610ac0565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038516845290915290205460ff16611be5576040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015260248101839052604401610ac0565b5050565b611bf1611ece565b610e42576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fb4611be9565b610e42611be9565b7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268005f611c90845f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b5f85815260208490526040808220600101869055519192508491839187917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a450505050565b5f604e8210611cfa578215611cee576001611cf0565b5f5b60ff169050610425565b600a82900a808481611d0e57611d0e6124f4565b0491508082028414611189575060010192915050565b5f604e821015611d465781600a0a8381611d4057611d406124f4565b046116a6565b5f9392505050565b5f604e8210611d6d578215611d64575f19611d66565b5f5b9050610425565b50600a81900a8281029083818381611d8757611d876124f4565b0414611d94575f19611d96565b815b949350505050565b600a81900a611dad818461254e565b9050604e8210610425578215611d4657611dc882600a612645565b6116a6565b6040517f23b872dd000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038781166004528616602452604485905291602083606481808c5af1925060015f51148316611e42578383151615611e36573d5f823e3d81fd5b5f883b113d1516831692505b604052505f60605295945050505050565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f51148316611ec2578383151615611eb6573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b5f611ed7611252565b5468010000000000000000900460ff16919050565b5f60208284031215611efc575f80fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146116a6575f80fd5b5f60208284031215611f3b575f80fd5b5035919050565b6001600160a01b0381168114610f66575f80fd5b5f8060408385031215611f67575f80fd5b823591506020830135611f7981611f42565b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60405160a0810167ffffffffffffffff81118282101715611fd457611fd4611f84565b60405290565b60405160c0810167ffffffffffffffff81118282101715611fd457611fd4611f84565b604051601f8201601f1916810167ffffffffffffffff8111828210171561202657612026611f84565b604052919050565b5f67ffffffffffffffff82111561204757612047611f84565b50601f01601f191660200190565b5f82601f830112612064575f80fd5b81356120776120728261202e565b611ffd565b81815284602083860101111561208b575f80fd5b816020850160208301375f918101602001919091529392505050565b5f602082840312156120b7575f80fd5b813567ffffffffffffffff8111156120cd575f80fd5b611d9684828501612055565b5f805f606084860312156120eb575f80fd5b83356120f681611f42565b925060208401359150604084013567ffffffffffffffff811115612118575f80fd5b61212486828701612055565b9150509250925092565b5f6020828403121561213e575f80fd5b81356116a681611f42565b5f60a08284031215612159575f80fd5b612161611fb1565b825161216c81611f42565b8152602083015161217c81611f42565b6020820152604083015161218f81611f42565b604082015260608301516121a281611f42565b60608201526080928301519281019290925250919050565b5f602082840312156121ca575f80fd5b815160ff811681146116a6575f80fd5b6001600160a01b0384168152826020820152606060408201525f82518060608401528060208501608085015e5f608082850101526080601f19601f830116840101915050949350505050565b5f6020808385031215612237575f80fd5b825167ffffffffffffffff8082111561224e575f80fd5b9084019060c08287031215612261575f80fd5b612269611fda565b825161227481611f42565b81528284015161228381611f42565b80858301525060408301516040820152606083015160608201526080830151608082015260a0830151828111156122b8575f80fd5b80840193505086601f8401126122cc575f80fd5b825191506122dc6120728361202e565b82815287858486010111156122ef575f80fd5b828585018683015e5f8584830101528060a0830152508094505050505092915050565b5f60208284031215612322575f80fd5b5051919050565b80518015158114612338575f80fd5b919050565b5f6080828403121561234d575f80fd5b6040516080810181811067ffffffffffffffff8211171561237057612370611f84565b604052825161237e81611f42565b8152602083015161238e81611f42565b6020820152604083810151908201526123a960608401612329565b60608201529392505050565b5f82601f8301126123c4575f80fd5b8151602067ffffffffffffffff8211156123e0576123e0611f84565b8160051b6123ef828201611ffd565b9283528481018201928281019087851115612408575f80fd5b83870192505b848310156124275782518252918301919083019061240e565b979650505050505050565b5f60208284031215612442575f80fd5b815167ffffffffffffffff80821115612459575f80fd5b9083019060a0828603121561246c575f80fd5b612474611fb1565b825161247f81611f42565b8152602083015161248f81611f42565b60208201526040830151828111156124a5575f80fd5b6124b1878286016123b5565b6040830152506060830151828111156124c8575f80fd5b6124d4878286016123b5565b6060830152506124e660808401612329565b608082015295945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b808202811582820484141761042557610425612521565b600181815b8085111561259f57815f190482111561258557612585612521565b8085161561259257918102915b93841c939080029061256a565b509250929050565b5f826125b557506001610425565b816125c157505f610425565b81600181146125d757600281146125e1576125fd565b6001915050610425565b60ff8411156125f2576125f2612521565b50506001821b610425565b5060208310610133831016604e8410600b8410161715612620575081810a610425565b61262a8383612565565b805f190482111561263d5761263d612521565b029392505050565b5f6116a683836125a756"; diff --git a/src/generated/0_1_5/StoxReceipt.pointers.sol b/src/generated/0_1_5/StoxReceipt.pointers.sol deleted file mode 100644 index ff38583a..00000000 --- a/src/generated/0_1_5/StoxReceipt.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x06fffbad12ea80897d55aab5d4f1cd3f34f674237db44a148cc133334a0cca54); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x2dF5cFE6d688EF9fF1B7c59A499D254b1527b286); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"6080604052348015600e575f80fd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6136e3806100d65f395ff3fe608060405234801561000f575f80fd5b50600436106100fa575f3560e01c8063481c6a7511610093578063a22cb46511610063578063a22cb46514610232578063c2530e3914610245578063e985e9c514610258578063f242432a146102b2575f80fd5b8063481c6a75146101bd5780634e1273f4146101f75780636d5b3f781461021757806395d89b411461022a575f80fd5b80630e89341c116100ce5780630e89341c14610171578063177769cb146101845780632eb2c2d614610197578063439fab91146101aa575f80fd5b8062fdd58e146100fe57806301ffc9a714610124578063043fa9871461014757806306fdde031461015c575b5f80fd5b61011161010c366004612a49565b6102c5565b6040519081526020015b60405180910390f35b610137610132366004612aa0565b6102e1565b604051901515815260200161011b565b61015a610155366004612b79565b6103c3565b005b61016461046a565b60405161011b9190612c29565b61016461017f366004612c3b565b6104cf565b61015a610192366004612c52565b610580565b61015a6101a5366004612d20565b61058f565b6101116101b8366004612dc7565b6105ae565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc200546040516001600160a01b03909116815260200161011b565b61020a610205366004612e01565b6107ae565b60405161011b9190612eed565b61015a610225366004612eff565b6108c5565b610164610975565b61015a610240366004612f63565b6109c6565b61015a610253366004612eff565b6109d1565b610137610266366004612f9e565b6001600160a01b039182165f9081527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45016020908152604080832093909416825291909152205460ff1690565b61015a6102c0366004612eff565b610a37565b5f6102d883836102d3610a4d565b610ab3565b90505b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a2600000000000000000000000000000000000000000000000000000000148061037357507fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000145b806102db57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146102db565b6103cb610b07565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038816179055856104208686868686610b6e565b6104617fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19169055565b50505050505050565b6060610474610c25565b6040518060400160405280600881526020017f20526563656970740000000000000000000000000000000000000000000000008152506040516020016104bb929190612fe1565b604051602081830303815290604052905090565b60605f6104e56104dd610cd3565b60ff16610d78565b6104ed610c25565b6104f5610e15565b6104fd61046a565b6040516020016105109493929190612ff5565b60408051601f19818403018152828201909152601d82527f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c0000006020830152915061055882610ef5565b604051602001610569929190612fe1565b604051602081830303815290604052915050919050565b61058b338383610f01565b5050565b61059a335b86610f49565b6105a78585858585610ff9565b5050505050565b5f806105b861108c565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156105e45750825b90505f8267ffffffffffffffff1660011480156106005750303b155b90508115801561060e575080155b15610645576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156106a65784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6106bd60405180602001604052805f8152506110b4565b5f7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc20090505f888060200190518101906106f69190613137565b825473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039190911617909155507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc3955083156107a45784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b606081518351146107fd57815183516040517f5b059991000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044015b60405180910390fd5b5f610806610a4d565b90505f845167ffffffffffffffff81111561082357610823612abb565b60405190808252806020026020018201604052801561084c578160200160208202803683370190505b5090505f5b85518110156108bc5761089786828151811061086f5761086f613152565b602002602001015186838151811061088957610889613152565b602002602001015185610ab3565b8282815181106108a9576108a9613152565b6020908102919091010152600101610851565b50949350505050565b6108cd610b07565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03871617905584610920868584610f01565b61092c858585856110c5565b61096d7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19169055565b505050505050565b606061097f610c25565b6040518060400160405280600581526020017f20524350540000000000000000000000000000000000000000000000000000008152506040516020016104bb929190612fe1565b61058b33838361113a565b6109d9610b07565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03871617905584610a2c868584610f01565b61092c85858561124e565b610a4033610594565b6105a78585858585610b6e565b5f306001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a8a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aae9190613137565b905090565b5f80610abf85856112cf565b90505f610aca6112e4565b6001600160a01b0387165f90815260209182526040808220888352909252908120549150610af9838387611345565b5093505050505b9392505050565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc20080546001600160a01b03163314610b6b576040517fc0b2335a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b6001600160a01b038416610bb0576040517f57f447ce0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b038516610bf2576040517f01a835140000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6040805160018082526020820186905281830190815260608201859052608082019092529061046187878484875f6115ed565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc2008054604080517f95d89b410000000000000000000000000000000000000000000000000000000081529051606093926001600160a01b0316916395d89b41916004808301925f9291908290030181865afa158015610ca6573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610ccd919081019061319c565b91505090565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc2008054604080517f313ce56700000000000000000000000000000000000000000000000000000000815290515f93926001600160a01b03169163313ce5679160048083019260209291908290030181865afa158015610d54573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ccd91906131e1565b60605f610d8483611645565b60010190505f8167ffffffffffffffff811115610da357610da3612abb565b6040519080825280601f01601f191660200182016040528015610dcd576020820181803683370190505b5090508181016020015b5f19017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084610dd757509392505050565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc2008054604080517f38d52e0f0000000000000000000000000000000000000000000000000000000081529051606093926001600160a01b0316916338d52e0f9160048083019260209291908290030181865afa158015610e97573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ebb9190613137565b6001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015610ca6573d5f803e3d5ffd5b60606102db825f611726565b805115610f44577fd66d6a9810a5cef78b704e7e04334961e997c81d337f029f74637f060f3d8d65838383604051610f3b93929190613215565b60405180910390a15b505050565b816001600160a01b0316816001600160a01b031614158015610faf57506001600160a01b038082165f9081527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4501602090815260408083209386168352929052205460ff16155b1561058b576040517fe237d9220000000000000000000000000000000000000000000000000000000081526001600160a01b038084166004830152821660248201526044016107f4565b6001600160a01b03841661103b576040517f57f447ce0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b03851661107d576040517f01a835140000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6105a7858585858560016115ed565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006102db565b6110bc6118a5565b610b6b816118e5565b6001600160a01b038416611107576040517f57f447ce0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6040805160018082526020820186905281830190815260608201859052608082019092529061096d5f87848487846115ed565b7f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45006001600160a01b03841661119d576040517f3e31884e0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b0383166111df576040517fced3e1000000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b038481165f818152600184016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a350505050565b6001600160a01b038316611290576040517f01a835140000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b604080516001808252602082018590528183019081526060820184905260a082019092525f608082018181529192916105a791879185908590836115ed565b5f806112db84846118f6565b54949350505050565b5f8060ff1961131460017fedb99b3af8e1c50d494d6f1b4c75245a0b733cb90baa42bfe0e2f5bc8b000f82613259565b60405160200161132691815260200190565b60408051601f1981840301815291905280516020909101201692915050565b6040517f79ba43050000000000000000000000000000000000000000000000000000000081525f9081908490829081906001600160a01b038716906379ba43059061139a90869060039060019060040161326c565b606060405180830381865afa1580156113b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113d991906132a4565b5091509150875f03611496575b5f198214611488576040517f79ba430500000000000000000000000000000000000000000000000000000000815291925082916001600160a01b038716906379ba43059061143e90859060039060019060040161326c565b606060405180830381865afa158015611459573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061147d91906132a4565b5090925090506113e6565b5f83945094505050506115e5565b875b5f1983146115dd5782935060028203611548576040517fb21a2494000000000000000000000000000000000000000000000000000000008152600481018490525f90611538906001600160a01b038a169063b21a2494906024015f60405180830381865afa15801561150c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611533919081019061319c565b61196a565b9050611544828261197f565b9150505b6040517f79ba43050000000000000000000000000000000000000000000000000000000081526001600160a01b038816906379ba43059061159390869060039060019060040161326c565b606060405180830381865afa1580156115ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115d291906132a4565b509093509150611498565b945091925050505b935093915050565b6115f9868686866119fa565b6001600160a01b0385161561096d573381156116225761161d818888888888611a5f565b610461565b6020858101519085015161163a838a8a85858a611bfc565b505050505050505050565b5f807a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061168d577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef810000000083106116b9576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106116d757662386f26fc10000830492506010015b6305f5e10083106116ef576305f5e100830492506008015b612710831061170357612710830492506004015b60648310611715576064830492506002015b600a83106102db5760010192915050565b606082515f03611744575060408051602081019091525f81526102db565b5f826117745760038451600261175a91906132e6565b61176491906132f9565b61176f906004613318565b611799565b6003845160046117849190613318565b61178f9060026132e6565b61179991906132f9565b905060405191507f4142434445464748494a4b4c4d4e4f505152535455565758595a616263646566601f5261067083027f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f18603f526020820181810185865187016020810180515f82525b82841015611857576003840193508351603f8160121c16518753600187019650603f81600c1c16518753600187019650603f8160061c16518753600187019650603f811651875350600186019550611804565b9052508590506118985760038651066001811461187b576002811461188e57611896565b603d6001840353603d6002840353611896565b603d60018403535b505b9183525060405292915050565b6118ad611d46565b6118e3576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6118ed6118a5565b610b6b81611d64565b5f8060ff1961192660017f3a8e79826d53842322cdcc810d4a989eb01ac46cfabfd48dcc021625ce13c2d7613259565b60405160200161193891815260200190565b60408051808303601f1901815291815281516020928301205f9687529290921681528185209585529490945250502090565b5f818060200190518101906102db919061332f565b5f7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8311156119dd576040517fbf463fe9000000000000000000000000000000000000000000000000000000008152600481018490526024016107f4565b5f6108bc6119f46119ee865f611db0565b85611e0a565b5f611e6c565b5f611a03610a4d565b90505f5b8351811015611a5257611a3486858381518110611a2657611a26613152565b602002602001015184611eae565b611a4a85858381518110611a2657611a26613152565b600101611a07565b506105a785858585611fb0565b6001600160a01b0384163b1561096d576040517fbc197c810000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063bc197c8190611abc9089908990889088908890600401613346565b6020604051808303815f875af1925050508015611af6575060408051601f3d908101601f19168201909252611af3918101906133a3565b60015b611b76573d808015611b23576040519150601f19603f3d011682016040523d82523d5f602084013e611b28565b606091505b5080515f03611b6e576040517f57f447ce0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024016107f4565b805160208201fd5b7fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014610461576040517f57f447ce0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024016107f4565b6001600160a01b0384163b1561096d576040517ff23a6e610000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063f23a6e6190611c5990899089908890889088906004016133be565b6020604051808303815f875af1925050508015611c93575060408051601f3d908101601f19168201909252611c90918101906133a3565b60015b611cc0573d808015611b23576040519150601f19603f3d011682016040523d82523d5f602084013e611b28565b7fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014610461576040517f57f447ce0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024016107f4565b5f611d4f61108c565b5468010000000000000000900460ff16919050565b7f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45007f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4502610f44838261347c565b5f805f611dbd8585612063565b9150915080611e02576040517f22c9f7bb00000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016107f4565b509392505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d8480611e4f86868686612169565b915091505f611e5e8383612288565b9a9950505050505050505050565b5f807bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8416601b0b60e085901d611ea08282876122e6565b9350935050505b9250929050565b6001600160a01b038316611ec157505050565b5f611eca6112e4565b6001600160a01b0385165f90815260208281526040808320878452909152812054919250611ef886866112cf565b90505f80611f07838588611345565b91509150838103611f1c575050505050505050565b6001600160a01b0388165f908152602086815260408083208a84529091529020819055818314611f5157611f518888846124ce565b60408051858152602081018390529081018490526060810183905287906001600160a01b038a16907f956b049289f8dbe8716375414d9fa6bf32cde65ec1b7e102623775cacc66a6999060800160405180910390a35050505050505050565b5f611fb96124e2565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc200546040517fe5be7d900000000000000000000000000000000000000000000000000000000081529192506001600160a01b03169063e5be7d909061202a9084908990899089908990600401613538565b5f604051808303815f87803b158015612041575f80fd5b505af1158015612053573d5f803e3d5ffd5b505050506105a785858585612563565b5f601b83900b83148383826120c7577d90e40fbeea1d3a4abc8955e946fe31cdcf66f634e10000000000000000008605156120a757620186a0860595506005850194505b8586601b0b146120c257600a860595508460010194506120a7565b6120dd565b855f036120dd57505f925060019150611ea79050565b848560030b14612139575f8512156120fd57505f9250829150611ea79050565b6040517fd556b11100000000000000000000000000000000000000000000000000000000815260048101839052602481018290526044016107f4565b50507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841660e084901b1791509250929050565b5f8085158415178015612181575f92505f915061227e565b61218b848761357d565b91505f612197886127c7565b90505f6121a3876127c7565b90505f6121b08383612828565b5090505f6f0785ee10d5da46d900f436a0000000008211156121e5576f0785ee10d5da46d900f436a000000000820491506025015b670de0b6b3a764000082111561220657670de0b6b3a7640000820491506012015b633b9aca0082111561221f57633b9aca00820491506009015b61271082111561223457612710820491506004015b811561224857600a82049150600101612234565b612252818761357d565b95506122748b8a61226e878761226987600a613684565b612844565b89612929565b9097509550505050505b5094509492505050565b5f805f6122958585612063565b91509150801580156122a5575081155b15611e02576040517f8eba4d0700000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016107f4565b5f805f85121561232c576040517f4a7d166b00000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016107f4565b845f0361233e57505f905060016115e5565b8460ff8416850185811215612389576040517fd556b11100000000000000000000000000000000000000000000000000000000815260048101889052602481018790526044016107f4565b5f805f8312156123f3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb38312156123ca575f8095509550505050506115e5565b825f03600a0a91508184816123e1576123e1613201565b04955050840290911491506115e59050565b5f8313156124be57604d831315612449576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff881660448201526064016107f4565b82600a0a9150815f198161245f5761245f613201565b048411156124ac576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff881660448201526064016107f4565b50919091029250600191506115e59050565b83600195509550505050506115e5565b5f6124d984846118f6565b91909155505050565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201545f907fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc200906001600160a01b03168061253e57339250505090565b6001909101805473ffffffffffffffffffffffffffffffffffffffff19169055919050565b805182517f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c450091146125cd57825182516040517f5b059991000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016107f4565b335f5b84518110156126e8576020818102868101820151908601909101516001600160a01b0389161561269a575f828152602086815260408083206001600160a01b038d16845290915290205481811015612674576040517f03dee4c50000000000000000000000000000000000000000000000000000000081526001600160a01b038b1660048201526024810182905260448101839052606481018490526084016107f4565b5f838152602087815260408083206001600160a01b038e16845290915290209082900390555b6001600160a01b038816156126de575f828152602086815260408083206001600160a01b038c168452909152812080548392906126d89084906132e6565b90915550505b50506001016125d0565b5083516001036127685760208401515f906020850151909150866001600160a01b0316886001600160a01b0316846001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051612759929190918252602082015260400190565b60405180910390a4505061096d565b846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516127b792919061368f565b60405180910390a4505050505050565b5f80821215612824577f8000000000000000000000000000000000000000000000000000000000000000820361281e57507f8000000000000000000000000000000000000000000000000000000000000000919050565b505f0390565b5090565b5f805f1983850993909202808410938190039390930393915050565b5f805f6128518686612828565b91509150815f036128755783818161286b5761286b613201565b0492505050610b00565b8382106128bf576040517f6c59da120000000000000000000000000000000000000000000000000000000081526004810187905260248101869052604481018590526064016107f4565b5f84868809600186198101871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103025f82900382900490920185841190960395909502919093039390930492909217029150509392505050565b5f805f85871812156129f3577f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8411156129e0576129887f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60016132e6565b84036129b857507f8000000000000000000000000000000000000000000000000000000000000000905081612a2c565b6129c3600a856132f9565b6129cc906136b3565b6129d784600161357d565b91509150612a2c565b6129e9846136b3565b8391509150612a2c565b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841115612a26576129cc600a856132f9565b50829050815b94509492505050565b6001600160a01b0381168114610b6b575f80fd5b5f8060408385031215612a5a575f80fd5b8235612a6581612a35565b946020939093013593505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114610b6b575f80fd5b5f60208284031215612ab0575f80fd5b8135610b0081612a73565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612af857612af8612abb565b604052919050565b5f67ffffffffffffffff821115612b1957612b19612abb565b50601f01601f191660200190565b5f82601f830112612b36575f80fd5b8135612b49612b4482612b00565b612acf565b818152846020838601011115612b5d575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f8060c08789031215612b8e575f80fd5b8635612b9981612a35565b95506020870135612ba981612a35565b94506040870135612bb981612a35565b9350606087013592506080870135915060a087013567ffffffffffffffff811115612be2575f80fd5b612bee89828a01612b27565b9150509295509295509295565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6102d86020830184612bfb565b5f60208284031215612c4b575f80fd5b5035919050565b5f8060408385031215612c63575f80fd5b82359150602083013567ffffffffffffffff811115612c80575f80fd5b612c8c85828601612b27565b9150509250929050565b5f67ffffffffffffffff821115612caf57612caf612abb565b5060051b60200190565b5f82601f830112612cc8575f80fd5b81356020612cd8612b4483612c96565b8083825260208201915060208460051b870101935086841115612cf9575f80fd5b602086015b84811015612d155780358352918301918301612cfe565b509695505050505050565b5f805f805f60a08688031215612d34575f80fd5b8535612d3f81612a35565b94506020860135612d4f81612a35565b9350604086013567ffffffffffffffff80821115612d6b575f80fd5b612d7789838a01612cb9565b94506060880135915080821115612d8c575f80fd5b612d9889838a01612cb9565b93506080880135915080821115612dad575f80fd5b50612dba88828901612b27565b9150509295509295909350565b5f60208284031215612dd7575f80fd5b813567ffffffffffffffff811115612ded575f80fd5b612df984828501612b27565b949350505050565b5f8060408385031215612e12575f80fd5b823567ffffffffffffffff80821115612e29575f80fd5b818501915085601f830112612e3c575f80fd5b81356020612e4c612b4483612c96565b82815260059290921b84018101918181019089841115612e6a575f80fd5b948201945b83861015612e91578535612e8281612a35565b82529482019490820190612e6f565b96505086013592505080821115612ea6575f80fd5b50612c8c85828601612cb9565b5f815180845260208085019450602084015f5b83811015612ee257815187529582019590820190600101612ec6565b509495945050505050565b602081525f6102d86020830184612eb3565b5f805f805f60a08688031215612f13575f80fd5b8535612f1e81612a35565b94506020860135612f2e81612a35565b93506040860135925060608601359150608086013567ffffffffffffffff811115612f57575f80fd5b612dba88828901612b27565b5f8060408385031215612f74575f80fd5b8235612f7f81612a35565b915060208301358015158114612f93575f80fd5b809150509250929050565b5f8060408385031215612faf575f80fd5b8235612fba81612a35565b91506020830135612f9381612a35565b5f81518060208401855e5f93019283525090919050565b5f612df9612fef8386612fca565b84612fca565b7f7b22646563696d616c73223a000000000000000000000000000000000000000081525f613026600c830187612fca565b7f2c226465736372697074696f6e223a2231206f6620746865736520726563656981527f7074732063616e206265206275726e656420616c6f6e67736964652031200000602082015261307c603e820187612fca565b90507f20746f2072656465656d2000000000000000000000000000000000000000000081526130ae600b820186612fca565b90507f2066726f6d20746865207661756c742e222c000000000000000000000000000081527f226e616d65223a220000000000000000000000000000000000000000000000006012820152613106601a820185612fca565b7f227d0000000000000000000000000000000000000000000000000000000000008152600201979650505050505050565b5f60208284031215613147575f80fd5b8151610b0081612a35565b634e487b7160e01b5f52603260045260245ffd5b5f613173612b4484612b00565b9050828152838383011115613186575f80fd5b8282602083015e5f602084830101529392505050565b5f602082840312156131ac575f80fd5b815167ffffffffffffffff8111156131c2575f80fd5b8201601f810184136131d2575f80fd5b612df984825160208401613166565b5f602082840312156131f1575f80fd5b815160ff81168114610b00575f80fd5b634e487b7160e01b5f52601260045260245ffd5b6001600160a01b0384168152826020820152606060408201525f61323c6060830184612bfb565b95945050505050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156102db576102db613245565b83815260208101839052606081016003831061329657634e487b7160e01b5f52602160045260245ffd5b826040830152949350505050565b5f805f606084860312156132b6575f80fd5b8351925060208401519150604084015167ffffffffffffffff811681146132db575f80fd5b809150509250925092565b808201808211156102db576102db613245565b5f8261331357634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176102db576102db613245565b5f6020828403121561333f575f80fd5b5051919050565b5f6001600160a01b03808816835280871660208401525060a0604083015261337160a0830186612eb3565b82810360608401526133838186612eb3565b905082810360808401526133978185612bfb565b98975050505050505050565b5f602082840312156133b3575f80fd5b8151610b0081612a73565b5f6001600160a01b03808816835280871660208401525084604083015283606083015260a060808301526133f560a0830184612bfb565b979650505050505050565b600181811c9082168061341457607f821691505b60208210810361343257634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115610f4457805f5260205f20601f840160051c8101602085101561345d5750805b601f840160051c820191505b818110156105a7575f8155600101613469565b815167ffffffffffffffff81111561349657613496612abb565b6134aa816134a48454613400565b84613438565b602080601f8311600181146134dd575f84156134c65750858301515b5f19600386901b1c1916600185901b17855561096d565b5f85815260208120601f198616915b8281101561350b578886015182559484019460019091019084016134ec565b508582101561352857878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f6001600160a01b038088168352808716602084015280861660408401525060a0606083015261356b60a0830185612eb3565b82810360808401526133978185612eb3565b8082018281125f83128015821682158216171561359c5761359c613245565b505092915050565b600181815b808511156135de57815f19048211156135c4576135c4613245565b808516156135d157918102915b93841c93908002906135a9565b509250929050565b5f826135f4575060016102db565b8161360057505f6102db565b816001811461361657600281146136205761363c565b60019150506102db565b60ff84111561363157613631613245565b50506001821b6102db565b5060208310610133831016604e8410600b841016171561365f575081810a6102db565b61366983836135a4565b805f190482111561367c5761367c613245565b029392505050565b5f6102d883836135e6565b604081525f6136a16040830185612eb3565b828103602084015261323c8185612eb3565b5f7f8000000000000000000000000000000000000000000000000000000000000000820361281e5761281e61324556"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b50600436106100fa575f3560e01c8063481c6a7511610093578063a22cb46511610063578063a22cb46514610232578063c2530e3914610245578063e985e9c514610258578063f242432a146102b2575f80fd5b8063481c6a75146101bd5780634e1273f4146101f75780636d5b3f781461021757806395d89b411461022a575f80fd5b80630e89341c116100ce5780630e89341c14610171578063177769cb146101845780632eb2c2d614610197578063439fab91146101aa575f80fd5b8062fdd58e146100fe57806301ffc9a714610124578063043fa9871461014757806306fdde031461015c575b5f80fd5b61011161010c366004612a49565b6102c5565b6040519081526020015b60405180910390f35b610137610132366004612aa0565b6102e1565b604051901515815260200161011b565b61015a610155366004612b79565b6103c3565b005b61016461046a565b60405161011b9190612c29565b61016461017f366004612c3b565b6104cf565b61015a610192366004612c52565b610580565b61015a6101a5366004612d20565b61058f565b6101116101b8366004612dc7565b6105ae565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc200546040516001600160a01b03909116815260200161011b565b61020a610205366004612e01565b6107ae565b60405161011b9190612eed565b61015a610225366004612eff565b6108c5565b610164610975565b61015a610240366004612f63565b6109c6565b61015a610253366004612eff565b6109d1565b610137610266366004612f9e565b6001600160a01b039182165f9081527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45016020908152604080832093909416825291909152205460ff1690565b61015a6102c0366004612eff565b610a37565b5f6102d883836102d3610a4d565b610ab3565b90505b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a2600000000000000000000000000000000000000000000000000000000148061037357507fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000145b806102db57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146102db565b6103cb610b07565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038816179055856104208686868686610b6e565b6104617fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19169055565b50505050505050565b6060610474610c25565b6040518060400160405280600881526020017f20526563656970740000000000000000000000000000000000000000000000008152506040516020016104bb929190612fe1565b604051602081830303815290604052905090565b60605f6104e56104dd610cd3565b60ff16610d78565b6104ed610c25565b6104f5610e15565b6104fd61046a565b6040516020016105109493929190612ff5565b60408051601f19818403018152828201909152601d82527f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c0000006020830152915061055882610ef5565b604051602001610569929190612fe1565b604051602081830303815290604052915050919050565b61058b338383610f01565b5050565b61059a335b86610f49565b6105a78585858585610ff9565b5050505050565b5f806105b861108c565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156105e45750825b90505f8267ffffffffffffffff1660011480156106005750303b155b90508115801561060e575080155b15610645576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156106a65784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6106bd60405180602001604052805f8152506110b4565b5f7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc20090505f888060200190518101906106f69190613137565b825473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039190911617909155507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc3955083156107a45784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b606081518351146107fd57815183516040517f5b059991000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044015b60405180910390fd5b5f610806610a4d565b90505f845167ffffffffffffffff81111561082357610823612abb565b60405190808252806020026020018201604052801561084c578160200160208202803683370190505b5090505f5b85518110156108bc5761089786828151811061086f5761086f613152565b602002602001015186838151811061088957610889613152565b602002602001015185610ab3565b8282815181106108a9576108a9613152565b6020908102919091010152600101610851565b50949350505050565b6108cd610b07565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03871617905584610920868584610f01565b61092c858585856110c5565b61096d7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19169055565b505050505050565b606061097f610c25565b6040518060400160405280600581526020017f20524350540000000000000000000000000000000000000000000000000000008152506040516020016104bb929190612fe1565b61058b33838361113a565b6109d9610b07565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03871617905584610a2c868584610f01565b61092c85858561124e565b610a4033610594565b6105a78585858585610b6e565b5f306001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a8a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aae9190613137565b905090565b5f80610abf85856112cf565b90505f610aca6112e4565b6001600160a01b0387165f90815260209182526040808220888352909252908120549150610af9838387611345565b5093505050505b9392505050565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc20080546001600160a01b03163314610b6b576040517fc0b2335a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b6001600160a01b038416610bb0576040517f57f447ce0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b038516610bf2576040517f01a835140000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6040805160018082526020820186905281830190815260608201859052608082019092529061046187878484875f6115ed565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc2008054604080517f95d89b410000000000000000000000000000000000000000000000000000000081529051606093926001600160a01b0316916395d89b41916004808301925f9291908290030181865afa158015610ca6573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610ccd919081019061319c565b91505090565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc2008054604080517f313ce56700000000000000000000000000000000000000000000000000000000815290515f93926001600160a01b03169163313ce5679160048083019260209291908290030181865afa158015610d54573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ccd91906131e1565b60605f610d8483611645565b60010190505f8167ffffffffffffffff811115610da357610da3612abb565b6040519080825280601f01601f191660200182016040528015610dcd576020820181803683370190505b5090508181016020015b5f19017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084610dd757509392505050565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc2008054604080517f38d52e0f0000000000000000000000000000000000000000000000000000000081529051606093926001600160a01b0316916338d52e0f9160048083019260209291908290030181865afa158015610e97573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ebb9190613137565b6001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015610ca6573d5f803e3d5ffd5b60606102db825f611726565b805115610f44577fd66d6a9810a5cef78b704e7e04334961e997c81d337f029f74637f060f3d8d65838383604051610f3b93929190613215565b60405180910390a15b505050565b816001600160a01b0316816001600160a01b031614158015610faf57506001600160a01b038082165f9081527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4501602090815260408083209386168352929052205460ff16155b1561058b576040517fe237d9220000000000000000000000000000000000000000000000000000000081526001600160a01b038084166004830152821660248201526044016107f4565b6001600160a01b03841661103b576040517f57f447ce0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b03851661107d576040517f01a835140000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6105a7858585858560016115ed565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006102db565b6110bc6118a5565b610b6b816118e5565b6001600160a01b038416611107576040517f57f447ce0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6040805160018082526020820186905281830190815260608201859052608082019092529061096d5f87848487846115ed565b7f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45006001600160a01b03841661119d576040517f3e31884e0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b0383166111df576040517fced3e1000000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b038481165f818152600184016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a350505050565b6001600160a01b038316611290576040517f01a835140000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b604080516001808252602082018590528183019081526060820184905260a082019092525f608082018181529192916105a791879185908590836115ed565b5f806112db84846118f6565b54949350505050565b5f8060ff1961131460017fedb99b3af8e1c50d494d6f1b4c75245a0b733cb90baa42bfe0e2f5bc8b000f82613259565b60405160200161132691815260200190565b60408051601f1981840301815291905280516020909101201692915050565b6040517f79ba43050000000000000000000000000000000000000000000000000000000081525f9081908490829081906001600160a01b038716906379ba43059061139a90869060039060019060040161326c565b606060405180830381865afa1580156113b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113d991906132a4565b5091509150875f03611496575b5f198214611488576040517f79ba430500000000000000000000000000000000000000000000000000000000815291925082916001600160a01b038716906379ba43059061143e90859060039060019060040161326c565b606060405180830381865afa158015611459573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061147d91906132a4565b5090925090506113e6565b5f83945094505050506115e5565b875b5f1983146115dd5782935060028203611548576040517fb21a2494000000000000000000000000000000000000000000000000000000008152600481018490525f90611538906001600160a01b038a169063b21a2494906024015f60405180830381865afa15801561150c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611533919081019061319c565b61196a565b9050611544828261197f565b9150505b6040517f79ba43050000000000000000000000000000000000000000000000000000000081526001600160a01b038816906379ba43059061159390869060039060019060040161326c565b606060405180830381865afa1580156115ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115d291906132a4565b509093509150611498565b945091925050505b935093915050565b6115f9868686866119fa565b6001600160a01b0385161561096d573381156116225761161d818888888888611a5f565b610461565b6020858101519085015161163a838a8a85858a611bfc565b505050505050505050565b5f807a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061168d577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef810000000083106116b9576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106116d757662386f26fc10000830492506010015b6305f5e10083106116ef576305f5e100830492506008015b612710831061170357612710830492506004015b60648310611715576064830492506002015b600a83106102db5760010192915050565b606082515f03611744575060408051602081019091525f81526102db565b5f826117745760038451600261175a91906132e6565b61176491906132f9565b61176f906004613318565b611799565b6003845160046117849190613318565b61178f9060026132e6565b61179991906132f9565b905060405191507f4142434445464748494a4b4c4d4e4f505152535455565758595a616263646566601f5261067083027f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f18603f526020820181810185865187016020810180515f82525b82841015611857576003840193508351603f8160121c16518753600187019650603f81600c1c16518753600187019650603f8160061c16518753600187019650603f811651875350600186019550611804565b9052508590506118985760038651066001811461187b576002811461188e57611896565b603d6001840353603d6002840353611896565b603d60018403535b505b9183525060405292915050565b6118ad611d46565b6118e3576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6118ed6118a5565b610b6b81611d64565b5f8060ff1961192660017f3a8e79826d53842322cdcc810d4a989eb01ac46cfabfd48dcc021625ce13c2d7613259565b60405160200161193891815260200190565b60408051808303601f1901815291815281516020928301205f9687529290921681528185209585529490945250502090565b5f818060200190518101906102db919061332f565b5f7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8311156119dd576040517fbf463fe9000000000000000000000000000000000000000000000000000000008152600481018490526024016107f4565b5f6108bc6119f46119ee865f611db0565b85611e0a565b5f611e6c565b5f611a03610a4d565b90505f5b8351811015611a5257611a3486858381518110611a2657611a26613152565b602002602001015184611eae565b611a4a85858381518110611a2657611a26613152565b600101611a07565b506105a785858585611fb0565b6001600160a01b0384163b1561096d576040517fbc197c810000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063bc197c8190611abc9089908990889088908890600401613346565b6020604051808303815f875af1925050508015611af6575060408051601f3d908101601f19168201909252611af3918101906133a3565b60015b611b76573d808015611b23576040519150601f19603f3d011682016040523d82523d5f602084013e611b28565b606091505b5080515f03611b6e576040517f57f447ce0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024016107f4565b805160208201fd5b7fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014610461576040517f57f447ce0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024016107f4565b6001600160a01b0384163b1561096d576040517ff23a6e610000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063f23a6e6190611c5990899089908890889088906004016133be565b6020604051808303815f875af1925050508015611c93575060408051601f3d908101601f19168201909252611c90918101906133a3565b60015b611cc0573d808015611b23576040519150601f19603f3d011682016040523d82523d5f602084013e611b28565b7fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014610461576040517f57f447ce0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024016107f4565b5f611d4f61108c565b5468010000000000000000900460ff16919050565b7f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45007f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4502610f44838261347c565b5f805f611dbd8585612063565b9150915080611e02576040517f22c9f7bb00000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016107f4565b509392505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d8480611e4f86868686612169565b915091505f611e5e8383612288565b9a9950505050505050505050565b5f807bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8416601b0b60e085901d611ea08282876122e6565b9350935050505b9250929050565b6001600160a01b038316611ec157505050565b5f611eca6112e4565b6001600160a01b0385165f90815260208281526040808320878452909152812054919250611ef886866112cf565b90505f80611f07838588611345565b91509150838103611f1c575050505050505050565b6001600160a01b0388165f908152602086815260408083208a84529091529020819055818314611f5157611f518888846124ce565b60408051858152602081018390529081018490526060810183905287906001600160a01b038a16907f956b049289f8dbe8716375414d9fa6bf32cde65ec1b7e102623775cacc66a6999060800160405180910390a35050505050505050565b5f611fb96124e2565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc200546040517fe5be7d900000000000000000000000000000000000000000000000000000000081529192506001600160a01b03169063e5be7d909061202a9084908990899089908990600401613538565b5f604051808303815f87803b158015612041575f80fd5b505af1158015612053573d5f803e3d5ffd5b505050506105a785858585612563565b5f601b83900b83148383826120c7577d90e40fbeea1d3a4abc8955e946fe31cdcf66f634e10000000000000000008605156120a757620186a0860595506005850194505b8586601b0b146120c257600a860595508460010194506120a7565b6120dd565b855f036120dd57505f925060019150611ea79050565b848560030b14612139575f8512156120fd57505f9250829150611ea79050565b6040517fd556b11100000000000000000000000000000000000000000000000000000000815260048101839052602481018290526044016107f4565b50507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841660e084901b1791509250929050565b5f8085158415178015612181575f92505f915061227e565b61218b848761357d565b91505f612197886127c7565b90505f6121a3876127c7565b90505f6121b08383612828565b5090505f6f0785ee10d5da46d900f436a0000000008211156121e5576f0785ee10d5da46d900f436a000000000820491506025015b670de0b6b3a764000082111561220657670de0b6b3a7640000820491506012015b633b9aca0082111561221f57633b9aca00820491506009015b61271082111561223457612710820491506004015b811561224857600a82049150600101612234565b612252818761357d565b95506122748b8a61226e878761226987600a613684565b612844565b89612929565b9097509550505050505b5094509492505050565b5f805f6122958585612063565b91509150801580156122a5575081155b15611e02576040517f8eba4d0700000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016107f4565b5f805f85121561232c576040517f4a7d166b00000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016107f4565b845f0361233e57505f905060016115e5565b8460ff8416850185811215612389576040517fd556b11100000000000000000000000000000000000000000000000000000000815260048101889052602481018790526044016107f4565b5f805f8312156123f3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb38312156123ca575f8095509550505050506115e5565b825f03600a0a91508184816123e1576123e1613201565b04955050840290911491506115e59050565b5f8313156124be57604d831315612449576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff881660448201526064016107f4565b82600a0a9150815f198161245f5761245f613201565b048411156124ac576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff881660448201526064016107f4565b50919091029250600191506115e59050565b83600195509550505050506115e5565b5f6124d984846118f6565b91909155505050565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201545f907fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc200906001600160a01b03168061253e57339250505090565b6001909101805473ffffffffffffffffffffffffffffffffffffffff19169055919050565b805182517f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c450091146125cd57825182516040517f5b059991000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016107f4565b335f5b84518110156126e8576020818102868101820151908601909101516001600160a01b0389161561269a575f828152602086815260408083206001600160a01b038d16845290915290205481811015612674576040517f03dee4c50000000000000000000000000000000000000000000000000000000081526001600160a01b038b1660048201526024810182905260448101839052606481018490526084016107f4565b5f838152602087815260408083206001600160a01b038e16845290915290209082900390555b6001600160a01b038816156126de575f828152602086815260408083206001600160a01b038c168452909152812080548392906126d89084906132e6565b90915550505b50506001016125d0565b5083516001036127685760208401515f906020850151909150866001600160a01b0316886001600160a01b0316846001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051612759929190918252602082015260400190565b60405180910390a4505061096d565b846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516127b792919061368f565b60405180910390a4505050505050565b5f80821215612824577f8000000000000000000000000000000000000000000000000000000000000000820361281e57507f8000000000000000000000000000000000000000000000000000000000000000919050565b505f0390565b5090565b5f805f1983850993909202808410938190039390930393915050565b5f805f6128518686612828565b91509150815f036128755783818161286b5761286b613201565b0492505050610b00565b8382106128bf576040517f6c59da120000000000000000000000000000000000000000000000000000000081526004810187905260248101869052604481018590526064016107f4565b5f84868809600186198101871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103025f82900382900490920185841190960395909502919093039390930492909217029150509392505050565b5f805f85871812156129f3577f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8411156129e0576129887f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60016132e6565b84036129b857507f8000000000000000000000000000000000000000000000000000000000000000905081612a2c565b6129c3600a856132f9565b6129cc906136b3565b6129d784600161357d565b91509150612a2c565b6129e9846136b3565b8391509150612a2c565b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841115612a26576129cc600a856132f9565b50829050815b94509492505050565b6001600160a01b0381168114610b6b575f80fd5b5f8060408385031215612a5a575f80fd5b8235612a6581612a35565b946020939093013593505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114610b6b575f80fd5b5f60208284031215612ab0575f80fd5b8135610b0081612a73565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612af857612af8612abb565b604052919050565b5f67ffffffffffffffff821115612b1957612b19612abb565b50601f01601f191660200190565b5f82601f830112612b36575f80fd5b8135612b49612b4482612b00565b612acf565b818152846020838601011115612b5d575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f8060c08789031215612b8e575f80fd5b8635612b9981612a35565b95506020870135612ba981612a35565b94506040870135612bb981612a35565b9350606087013592506080870135915060a087013567ffffffffffffffff811115612be2575f80fd5b612bee89828a01612b27565b9150509295509295509295565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6102d86020830184612bfb565b5f60208284031215612c4b575f80fd5b5035919050565b5f8060408385031215612c63575f80fd5b82359150602083013567ffffffffffffffff811115612c80575f80fd5b612c8c85828601612b27565b9150509250929050565b5f67ffffffffffffffff821115612caf57612caf612abb565b5060051b60200190565b5f82601f830112612cc8575f80fd5b81356020612cd8612b4483612c96565b8083825260208201915060208460051b870101935086841115612cf9575f80fd5b602086015b84811015612d155780358352918301918301612cfe565b509695505050505050565b5f805f805f60a08688031215612d34575f80fd5b8535612d3f81612a35565b94506020860135612d4f81612a35565b9350604086013567ffffffffffffffff80821115612d6b575f80fd5b612d7789838a01612cb9565b94506060880135915080821115612d8c575f80fd5b612d9889838a01612cb9565b93506080880135915080821115612dad575f80fd5b50612dba88828901612b27565b9150509295509295909350565b5f60208284031215612dd7575f80fd5b813567ffffffffffffffff811115612ded575f80fd5b612df984828501612b27565b949350505050565b5f8060408385031215612e12575f80fd5b823567ffffffffffffffff80821115612e29575f80fd5b818501915085601f830112612e3c575f80fd5b81356020612e4c612b4483612c96565b82815260059290921b84018101918181019089841115612e6a575f80fd5b948201945b83861015612e91578535612e8281612a35565b82529482019490820190612e6f565b96505086013592505080821115612ea6575f80fd5b50612c8c85828601612cb9565b5f815180845260208085019450602084015f5b83811015612ee257815187529582019590820190600101612ec6565b509495945050505050565b602081525f6102d86020830184612eb3565b5f805f805f60a08688031215612f13575f80fd5b8535612f1e81612a35565b94506020860135612f2e81612a35565b93506040860135925060608601359150608086013567ffffffffffffffff811115612f57575f80fd5b612dba88828901612b27565b5f8060408385031215612f74575f80fd5b8235612f7f81612a35565b915060208301358015158114612f93575f80fd5b809150509250929050565b5f8060408385031215612faf575f80fd5b8235612fba81612a35565b91506020830135612f9381612a35565b5f81518060208401855e5f93019283525090919050565b5f612df9612fef8386612fca565b84612fca565b7f7b22646563696d616c73223a000000000000000000000000000000000000000081525f613026600c830187612fca565b7f2c226465736372697074696f6e223a2231206f6620746865736520726563656981527f7074732063616e206265206275726e656420616c6f6e67736964652031200000602082015261307c603e820187612fca565b90507f20746f2072656465656d2000000000000000000000000000000000000000000081526130ae600b820186612fca565b90507f2066726f6d20746865207661756c742e222c000000000000000000000000000081527f226e616d65223a220000000000000000000000000000000000000000000000006012820152613106601a820185612fca565b7f227d0000000000000000000000000000000000000000000000000000000000008152600201979650505050505050565b5f60208284031215613147575f80fd5b8151610b0081612a35565b634e487b7160e01b5f52603260045260245ffd5b5f613173612b4484612b00565b9050828152838383011115613186575f80fd5b8282602083015e5f602084830101529392505050565b5f602082840312156131ac575f80fd5b815167ffffffffffffffff8111156131c2575f80fd5b8201601f810184136131d2575f80fd5b612df984825160208401613166565b5f602082840312156131f1575f80fd5b815160ff81168114610b00575f80fd5b634e487b7160e01b5f52601260045260245ffd5b6001600160a01b0384168152826020820152606060408201525f61323c6060830184612bfb565b95945050505050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156102db576102db613245565b83815260208101839052606081016003831061329657634e487b7160e01b5f52602160045260245ffd5b826040830152949350505050565b5f805f606084860312156132b6575f80fd5b8351925060208401519150604084015167ffffffffffffffff811681146132db575f80fd5b809150509250925092565b808201808211156102db576102db613245565b5f8261331357634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176102db576102db613245565b5f6020828403121561333f575f80fd5b5051919050565b5f6001600160a01b03808816835280871660208401525060a0604083015261337160a0830186612eb3565b82810360608401526133838186612eb3565b905082810360808401526133978185612bfb565b98975050505050505050565b5f602082840312156133b3575f80fd5b8151610b0081612a73565b5f6001600160a01b03808816835280871660208401525084604083015283606083015260a060808301526133f560a0830184612bfb565b979650505050505050565b600181811c9082168061341457607f821691505b60208210810361343257634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115610f4457805f5260205f20601f840160051c8101602085101561345d5750805b601f840160051c820191505b818110156105a7575f8155600101613469565b815167ffffffffffffffff81111561349657613496612abb565b6134aa816134a48454613400565b84613438565b602080601f8311600181146134dd575f84156134c65750858301515b5f19600386901b1c1916600185901b17855561096d565b5f85815260208120601f198616915b8281101561350b578886015182559484019460019091019084016134ec565b508582101561352857878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f6001600160a01b038088168352808716602084015280861660408401525060a0606083015261356b60a0830185612eb3565b82810360808401526133978185612eb3565b8082018281125f83128015821682158216171561359c5761359c613245565b505092915050565b600181815b808511156135de57815f19048211156135c4576135c4613245565b808516156135d157918102915b93841c93908002906135a9565b509250929050565b5f826135f4575060016102db565b8161360057505f6102db565b816001811461361657600281146136205761363c565b60019150506102db565b60ff84111561363157613631613245565b50506001821b6102db565b5060208310610133831016604e8410600b841016171561365f575081810a6102db565b61366983836135a4565b805f190482111561367c5761367c613245565b029392505050565b5f6102d883836135e6565b604081525f6136a16040830185612eb3565b828103602084015261323c8185612eb3565b5f7f8000000000000000000000000000000000000000000000000000000000000000820361281e5761281e61324556"; diff --git a/src/generated/0_1_5/StoxReceiptVault.pointers.sol b/src/generated/0_1_5/StoxReceiptVault.pointers.sol deleted file mode 100644 index 95c52050..00000000 --- a/src/generated/0_1_5/StoxReceiptVault.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x22aa77aa9ffec4d290a8cacbcd8444b85761b6a1fb77c3f1b1a73490a7d9f972); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0xD7f91c1C6e6e651Ec3F1Fd707aF7CbB7526206e1); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"608060405234801561000f575f80fd5b5060017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005561003c610041565b6100f3565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100915760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100f05780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b615ffa806101005f395ff3fe608060405260043610610337575f3560e01c8063715018a6116101af578063bbec4d06116100eb578063dd62ed3e11610094578063e70689f51161006e578063e70689f5146109ab578063f2fde38b146109ca578063f5647943146109e9578063f5d214f514610a1e5761033e565b8063dd62ed3e146108ed578063e1e6b89814610950578063e5be7d901461098c5761033e565b8063c77b66c2116100c5578063c77b66c2146108b3578063d09edf31146108c6578063db2088f4146108da5761033e565b8063bbec4d0614610875578063c54cafee14610894578063c63d75b6146105635761033e565b80638da5cb5b11610158578063a9059cbb11610132578063a9059cbb146107b8578063ac9650d8146107d7578063ae57de0c14610803578063ae98b39f146108225761033e565b80638da5cb5b14610771578063921a4c421461078557806395d89b41146107a45761033e565b80637a7af70d116101895780637a7af70d1461072057806381c3fcb91461073357806385b68756146107525761033e565b8063715018a6146106ce578063770afee1146106e2578063786cd916146107015761033e565b8063276b11401161027e5780634abe413711610227578063633ac71711610201578063633ac7171461061e5780636ba235211461063d5780636c876b941461069057806370a08231146106af5761033e565b80634abe4137146105c157806356db02e8146105e057806359f89dda146105ff5761033e565b8063402d267d11610258578063402d267d14610563578063439fab9114610583578063488bd7b0146105a25761033e565b8063276b1140146104fe578063313ce5671461051157806338d52e0f146105375761033e565b806318160ddd116102e05780631f6759d3116102ba5780631f6759d31461048d57806323b872dd146104c05780632755c6c7146104df5761033e565b806318160ddd1461043b578063181e7b3b1461044f5780631e4344a11461046e5761033e565b806306fdde031161031157806306fdde03146103e8578063095ea7b3146104095780631423feba146104285761033e565b806301e1d1141461037357806301ffc9a71461039a578063058a628f146103c95761033e565b3661033e57005b73b7e24412126ad6a2ce19cbd79fd11b68e7f30cf6365f80375f80365f845af43d5f803e80801561036d573d5ff35b3d5ffd5b005b34801561037e575f80fd5b50610387610a51565b6040519081526020015b60405180910390f35b3480156103a5575f80fd5b506103b96103b4366004614f0e565b610a5f565b6040519015158152602001610391565b3480156103d4575f80fd5b506103716103e3366004614f61565b610aba565b3480156103f3575f80fd5b506103fc610ce3565b6040516103919190614faa565b348015610414575f80fd5b506103b9610423366004614fbc565b610db6565b610387610436366004615109565b610dcd565b348015610446575f80fd5b50610387610e17565b34801561045a575f80fd5b50610387610469366004615168565b610e20565b348015610479575f80fd5b50610371610488366004615188565b610e3f565b348015610498575f80fd5b507f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70054610387565b3480156104cb575f80fd5b506103b96104da36600461519f565b610ecb565b3480156104ea575f80fd5b506103716104f9366004614fbc565b610eee565b61038761050c366004615168565b611028565b34801561051c575f80fd5b50610525611053565b60405160ff9091168152602001610391565b348015610542575f80fd5b5061054b6110f8565b6040516001600160a01b039091168152602001610391565b34801561056e575f80fd5b5061038761057d366004614f61565b505f1990565b34801561058e575f80fd5b5061038761059d3660046151dd565b61112c565b3480156105ad575f80fd5b506103876105bc366004615168565b6113d1565b3480156105cc575f80fd5b506103876105db366004614fbc565b6113e9565b3480156105eb575f80fd5b506103876105fa36600461520f565b6114a3565b34801561060a575f80fd5b50610371610619366004615256565b6117e4565b348015610629575f80fd5b50610371610638366004614f61565b61181c565b348015610648575f80fd5b50610387610657366004614f61565b6001600160a01b03165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be701602052604090205490565b34801561069b575f80fd5b506103716106aa366004614f61565b611949565b3480156106ba575f80fd5b506103876106c9366004614f61565b611a49565b3480156106d9575f80fd5b50610371611a92565b3480156106ed575f80fd5b506103876106fc366004615256565b611aa5565b34801561070c575f80fd5b5061037161071b366004614fbc565b611c5f565b61038761072e366004615168565b611d90565b34801561073e575f80fd5b5061037161074d3660046151dd565b611da5565b34801561075d575f80fd5b5061038761076c366004614fbc565b611de1565b34801561077c575f80fd5b5061054b611ec4565b348015610790575f80fd5b5061038761079f3660046152ab565b611ecd565b3480156107af575f80fd5b506103fc611efa565b3480156107c3575f80fd5b506103b96107d2366004614fbc565b611f4b565b3480156107e2575f80fd5b506107f66107f136600461531c565b611f58565b604051610391919061538b565b34801561080e575f80fd5b5061038761081d3660046152ab565b61203e565b34801561082d575f80fd5b5061038761083c366004614f61565b6001600160a01b03165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be702602052604090205490565b348015610880575f80fd5b5061038761088f366004615168565b612061565b34801561089f575f80fd5b506103876108ae366004615449565b61206f565b6103876108c1366004615109565b612157565b3480156108d1575f80fd5b5061054b612186565b6103876108e8366004615168565b6121ae565b3480156108f8575f80fd5b506103876109073660046154ae565b6001600160a01b039182165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b34801561095b575f80fd5b507f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031661054b565b348015610997575f80fd5b506103716109a6366004615557565b6121c2565b3480156109b6575f80fd5b506103716109c53660046155ed565b6122f9565b3480156109d5575f80fd5b506103716109e4366004614f61565b612462565b3480156109f4575f80fd5b507fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd025442116103b9565b348015610a29575f80fd5b507fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0154610387565b5f610a5a610e17565b905090565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f59f89dda000000000000000000000000000000000000000000000000000000001480610ab45750610ab4826124b8565b92915050565b6040517f248a9ca30000000000000000000000000000000000000000000000000000000081527ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f8960048201525f906001600160a01b0383169063248a9ca390602401602060405180830381865afa158015610b37573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b5b9190615645565b905080610bca576040517f76728ed90000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201527ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f8960248201526044015b60405180910390fd5b6040517f248a9ca30000000000000000000000000000000000000000000000000000000081527f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e760048201525f906001600160a01b0384169063248a9ca390602401602060405180830381865afa158015610c47573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c6b9190615645565b905080610cd5576040517f76728ed90000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201527f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e76024820152604401610bc1565b610cde836125e6565b505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0380546060917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0091610d349061565c565b80601f0160208091040260200160405190810160405280929190818152602001828054610d609061565c565b8015610dab5780601f10610d8257610100808354040283529160200191610dab565b820191905f5260205f20905b815481529060010190602001808311610d8e57829003601f168201915b505050505091505090565b5f33610dc38185856125f7565b5060019392505050565b5f80610dd7612604565b90505f610df187610deb335b89865f61265b565b8761266f565b9050610e008787838588612685565b610e0b335b476128ac565b9150505b949350505050565b5f610a5a612955565b5f610e3883670de0b6b3a7640000612ab4565b612ab4565b9392505050565b610e47612ac0565b7f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be7008054821115610e75578181555b7fff9fd4facd8bd30d905cc7ffbd03e8829a414df4c6554d155d132c3377868a42610e9e611ec4565b8254604080516001600160a01b039093168352602083018690528201526060015b60405180910390a15050565b5f33610ed8858285612b0b565b610ee3858585612bbf565b506001949350505050565b610ef6612ac0565b805f03610f3a576040517f5a6084530000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610bc1565b6001600160a01b0382165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70260205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70090821115610fb7576001600160a01b0383165f90815260028201602052604090208290555b7fa1e5b368dc99c8558f28b1e7e8cb7ab542c989a4b697628ba7bfffe0aeaccffd610fe0611ec4565b6001600160a01b038581165f818152600286016020908152604091829020548251959094168552840191909152820185905260608201526080015b60405180910390a1505050565b5f8061104884611042335b3361103c612604565b5f61265b565b85612c4e565b9050610e3833610e05565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f308970152310243260080545f91906001600160a01b0316803b806110905760126110f0565b816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110f091906156a7565b935050505090565b5f807f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f30897015231024326005b546001600160a01b031692915050565b5f80611136612c65565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156111625750825b90505f8267ffffffffffffffff16600114801561117e5750303b155b90508115801561118c575080155b156111c3576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156112245784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b61122c612c8d565b5f878060200190518101906112419190615714565b90506112508160200151612cc6565b6020810151516001600160a01b031615611296576040517f8951799200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80516001600160a01b03166112d7576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6112e030612e39565b80516112eb90612f99565b7ffa89761502e992c8c755fba778ced00f4562485023f656906eb76f5dd65a9fe53360408051808201825284516001600160a01b0316815260208086015190820152905161133a92919061580b565b60405180910390a17fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc396505083156113c75784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b5f610e38836113e4335b3386600161265b565b613021565b5f61141b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031690565b6040517efdd58e0000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015260248201859052919091169062fdd58e90604401602060405180830381865afa15801561147f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e389190615645565b5f6114ac61302e565b825f036114e5576040517f312497b000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6115a98461151b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031690565b6040517efdd58e0000000000000000000000000000000000000000000000000000000081526001600160a01b038a81166004830152602482018a9052919091169062fdd58e90604401602060405180830381865afa15801561157f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115a39190615645565b9061305c565b905080156116c6577f88e2280ece62e9296d3578b77647db2c11f9fa7e42578e2db5d4262123ffae3e3387878785886040516115ea969594939291906158af565b60405180910390a17f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b03166001600160a01b031663043fa98733883360405160e085901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b03938416600482015291831660248301529091166044820152606481018890526084810184905260c060a48201525f60c482015260e4015f604051808303815f87803b1580156116af575f80fd5b505af11580156116c1573d5f803e3d5ffd5b505050505b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f3dd35eca0ca8a128757fa464a5dfa4ad6cc4853cad96dce4e90fdbea4f0a52e36040518060a001604052808c6001600160a01b031681526020018b81526020018a81526020018781526020018981525060405160200161175d91906158f8565b6040516020818303038152906040526040518463ffffffff1660e01b815260040161178a93929190615943565b5f604051808303815f87803b1580156117a1575f80fd5b505af11580156117b3573d5f803e3d5ffd5b5093945050505050610e0f60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b8282826040517f3ae4063b000000000000000000000000000000000000000000000000000000008152600401610bc193929190615943565b611824612ac0565b6001600160a01b0381165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70260205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be7009042116118d9576001600160a01b0382165f818152600283016020526040908190205490517f81a7897700000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610bc1565b6001600160a01b0382165f9081526002820160205260408120557fa1e5b368dc99c8558f28b1e7e8cb7ab542c989a4b697628ba7bfffe0aeaccffd61191c611ec4565b604080516001600160a01b03928316815291851660208301525f9082018190526060820152608001610ebf565b611951612ac0565b6001600160a01b0381165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70160205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be700904211611a06576001600160a01b0382165f818152600183016020526040908190205490517ff1b01b5400000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610bc1565b6001600160a01b0382165f9081526001820160205260408120557fd08871fffa9d03c01fcba597af5dfbe64cb26f207debdae1af2532695447499161191c611ec4565b5f80611a548361306b565b90505f611a5f61307e565b6001600160a01b0385165f90815260038201602052604081205491925090611a889084906130df565b5095945050505050565b611a9a612ac0565b611aa35f612f99565b565b5f611aae61302e565b825f03611ae7576040517f312497b000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f611af5846115a387611a49565b90508015611b47577f3fc1c49e72362e91416388fe7a107b92db924642476e83e701eeeb6256d7249e3386868487604051611b3495949392919061596a565b60405180910390a1611b47853383612bbf565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f54f0af3716c79b30b8c228679d31d77a1a5f526c16af3262730e0a8de4363fed60405180608001604052808b6001600160a01b031681526020018a815260200187815260200189815250604051602001611bd891906159a1565b6040516020818303038152906040526040518463ffffffff1660e01b8152600401611c0593929190615943565b5f604051808303815f87803b158015611c1c575f80fd5b505af1158015611c2e573d5f803e3d5ffd5b5093945050505050610e3860017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b611c67612ac0565b805f03611cab576040517ffd86061b0000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610bc1565b6001600160a01b0382165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70160205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70090821115611d28576001600160a01b0383165f90815260018201602052604090208290555b7fd08871fffa9d03c01fcba597af5dfbe64cb26f207debdae1af25326954474991611d51611ec4565b6001600160a01b038581165f8181526001860160209081526040918290205482519590941685528401919091528201859052606082015260800161101b565b5f8061104884611d9f33611033565b8561266f565b7fdaffad82f53a38a62340f14cdd6fd3b437c5dcda6b32029dac1e661dbce28b2d3382604051611dd69291906159e2565b60405180910390a150565b5f80611df0848585600161265b565b9050805f03611e02575f915050610ab4565b610e0f611e367f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031690565b6040517efdd58e0000000000000000000000000000000000000000000000000000000081526001600160a01b03878116600483015260248201879052919091169062fdd58e90604401602060405180830381865afa158015611e9a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ebe9190615645565b82612ab4565b5f610a5a61318d565b5f80611ee087610e33878988600161265b565b9050611ef08187878a88886131b5565b9695505050505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0480546060917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0091610d349061565c565b5f33610dc3818585612bbf565b604080515f8152602081019091526060908267ffffffffffffffff811115611f8257611f82614fe6565b604051908082528060200260200182016040528015611fb557816020015b6060815260200190600190039081611fa05790505b5091505f5b838110156120365761201130868684818110611fd857611fd8615a43565b9050602002810190611fea9190615a70565b85604051602001611ffd93929190615ad1565b60405160208183030381529060405261357b565b83828151811061202357612023615a43565b6020908102919091010152600101611fba565b505092915050565b5f80612051876113e4878988600161265b565b9050611ef08787878488886131b5565b5f610e3883610e33336113db565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd01545f907fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd00908511156120f1576040517fe4a4718200000000000000000000000000000000000000000000000000000000815260048101869052602401610bc1565b5f61210888612102338a8a5f61265b565b5f61266f565b905061214c8888838989898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061268592505050565b979650505050505050565b5f80612161612604565b90505f6121778761217133610de3565b87612c4e565b9050610e008187898588612685565b5f807fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0061111c565b5f8061104884670de0b6b3a7640000612102565b6121cf8585858585613616565b6121d98484613679565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080546040805160a0810182526001600160a01b0388811682528781166020830152918101869052606081018590529116906359f89dda9088907f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a4890608081016122837fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0254421190565b151590526040516122979190602001615b2e565b6040516020818303038152906040526040518463ffffffff1660e01b81526004016122c493929190615943565b5f604051808303815f87803b1580156122db575f80fd5b505af11580156122ed573d5f803e3d5ffd5b50505050505050505050565b835f03612332576040517f8672985d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0090505f6040518060a001604052808360020154815260200183600201548152602001878152602001861515815260200185858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152505050915250905084806123cc5750816002015486115b156123e05760028201869055602081018690525b7f7ef5cae78e9bd364afb19bb0f8a881a6d156e35a119e28c0d17524e5079581583387878787604051612417959493929190615ba0565b60405180910390a181546001600160a01b03166359f89dda337f50a07cb25d0d864370863300b20987dfdae089abad71b607faf639d09d053391846040516020016122979190615bee565b61246a612ac0565b6001600160a01b0381166124ac576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6124b581612f99565b50565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fe5be7d9000000000000000000000000000000000000000000000000000000000148061254a57507fffffffff0000000000000000000000000000000000000000000000000000000082167f439fab9100000000000000000000000000000000000000000000000000000000145b8061259657507fffffffff0000000000000000000000000000000000000000000000000000000082167fe1e6b89800000000000000000000000000000000000000000000000000000000145b80610ab457507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610ab4565b6125ee612ac0565b6124b581612e39565b610cde8383836001613739565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd01545f907fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0090612655906001615c32565b91505090565b5f670de0b6b3a76400005b95945050505050565b5f61267a8284613861565b610e0f84845f6138a5565b61268d61302e565b845f036126c6576040517fc7838b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825f036126ff576040517ffc8c806300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03841661273f576040517f6ba9ecd800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f0361277a576040517fe4a471820000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b7f3377bcbed49a0c0005e53931cd8fe7334b5371523e5de784c0d0d3d01089cfea3385878686866040516127b3969594939291906158af565b60405180910390a16127c885858585856138ba565b6127d28484613915565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546040517f6d5b3f780000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690636d5b3f7890612842903390889087908990889060040161596a565b5f604051808303815f87803b158015612859575f80fd5b505af115801561286b573d5f803e3d5ffd5b5050505061287c8585858585613962565b6128a560017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5050505050565b804710156128ef576040517fcf47918100000000000000000000000000000000000000000000000000000000815247600482015260248101829052604401610bc1565b612908828260405180602001604052805f815250613a0e565b15612911575050565b3d156129235761291f613a23565b5050565b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8061295f61307e565b60028101549091505f0361297557612655613a2e565b5f6129845f1960036001613a93565b90505f5b5f198214610e38575f8360020183815481106129a6576129a6615a43565b905f5260205f2090600502015f0154905060028103612a83575f612a738560020185815481106129d8576129d8615a43565b905f5260205f20906005020160040180546129f29061565c565b80601f0160208091040260200160405190810160405280929190818152602001828054612a1e9061565c565b8015612a695780601f10612a4057610100808354040283529160200191612a69565b820191905f5260205f20905b815481529060010190602001808311612a4c57829003601f168201915b5050505050613b8e565b9050612a7f8382613ba3565b9250505b5f838152600485016020526040902054612a9d9083615c32565b9150612aac8360036001613a93565b925050612988565b5f610e38838383613c27565b33612ac9611ec4565b6001600160a01b031614611aa3576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610bc1565b6001600160a01b038381165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160209081526040808320938616835292905220545f19811015612bb95781811015612bab576040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201526024810182905260448101839052606401610bc1565b612bb984848484035f613739565b50505050565b6001600160a01b038316612c01576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6001600160a01b038216612c43576040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b610cde838383613c3c565b5f612c598284613861565b610e0f84846001613c27565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610ab4565b425f03611aa3576040517f789a532d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612cce613c8f565b612ce081602001518260400151613c97565b80517f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f308970152310243260080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b0393841617825560608401517f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601805490921693169283179055604080517f481c6a75000000000000000000000000000000000000000000000000000000008152905191925f92909163481c6a759160048083019260209291908290030181865afa158015612dc0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612de49190615c45565b90506001600160a01b0381163014610cde576040517f7935475e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b0382166024820152604401610bc1565b6040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f59f89dda0000000000000000000000000000000000000000000000000000000060048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa158015612eb4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ed89190615c60565b612f0e576040517ffd12061600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03831690811782556040805133815260208101929092527fa8c713fe8fb360697fc0daab836d85208a605d485fbc265aea0f773fc6cdd71a9101610ebf565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f610e38838360016138a5565b613036613ca9565b60027f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5f828218828410028218610e38565b5f8061307683613d04565b549392505050565b5f8060ff196130ae60017f2f8f8ecf1b7a1a3ceda8d15a9a2247a2377b3434535a87f1728021c13fec2e71615a30565b6040516020016130c091815260200190565b60408051601f1981840301815291905280516020909101201692915050565b5f8082816130eb61307e565b9050855f6130fc8760036001613a93565b90505b5f19811461317e57925082811580159061313c5750600283600201828154811061312b5761312b615a43565b905f5260205f2090600502015f0154145b1561316a575f61315a8460020183815481106129d8576129d8615a43565b90506131668382613ba3565b9250505b6131778160036001613a93565b90506130ff565b509350909150505b9250929050565b5f807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930061111c565b6131bd61302e565b855f036131f6576040517fc7838b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825f0361322f576040517ffc8c806300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03851661326f576040517f6ba9ecd800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0384166132af576040517f9905827b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f036132eb576040517fe4a4718200000000000000000000000000000000000000000000000000000000815260048101839052602401610bc1565b7f2845b9458bcc357e1abfe8de7f6832dfe7220596a053496b33d0deb6577d8d2a338686898787876040516133269796959493929190615c7b565b60405180910390a16001600160a01b038416331461349557613349843385612b0b565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b03166001600160a01b031663e985e9c585336040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa1580156133e5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134099190615c60565b613495576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60448201527f6572206f7220617070726f7665640000000000000000000000000000000000006064820152608401610bc1565b61349f8484613d71565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546040517fc2530e390000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063c2530e399061350f903390889087908990889060040161596a565b5f604051808303815f87803b158015613526575f80fd5b505af1158015613538573d5f803e3d5ffd5b5050505061354a868686868686613dbe565b61357360017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b505050505050565b60605f6135888484613ec7565b90508080156135a957505f3d11806135a957505f846001600160a01b03163b115b156135be576135b6613eda565b915050610ab4565b8015613601576040517f9996b3150000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610bc1565b3d156129235761360f613a23565b5092915050565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031633146128a5576040517f8813aac300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be700805442118015906136c257506001600160a01b0383165f908152600182016020526040902054155b80156136e557506001600160a01b0382165f908152600282016020526040902054155b15610cde5780546040517f79d7155100000000000000000000000000000000000000000000000000000000815260048101919091526001600160a01b03808516602483015283166044820152606401610bc1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b03851661379c576040517fe602df050000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6001600160a01b0384166137de576040517f94280d620000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6001600160a01b038086165f908152600183016020908152604080832093881683529290522083905581156128a557836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258560405161385291815260200190565b60405180910390a35050505050565b8181101561291f576040517fa3e322340000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610bc1565b5f610e0f8484670de0b6b3a764000085613ef3565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd01547fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd00906139089084613f35565b6001909101555050505050565b6001600160a01b038216613957576040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b61291f5f8383613c3c565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8216040518060c001604052806139cb3390565b6001600160a01b031681526020018a6001600160a01b031681526020018881526020018b8152602001898152602001878152506040516020016122979190615d20565b5f805f83516020850186885af1949350505050565b6040513d5f823e3d81fd5b5f8060ff19613a5e60017fb750591399365444a618527b69a54ce09476c8bde1ecff60f5aa1fe2b52605ff615a30565b604051602001613a7091815260200190565b60408051808303601f190181529190528051602090910120166002015492915050565b5f600783168103613ad0576040517fbf3cad0b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f613ad961307e565b60028101549091505f03613af1575f19915050610e38565b5f5f198614613b2457816002018681548110613b0f57613b0f615a43565b905f5260205f20906005020160030154613b27565b81545b90506002846002811115613b3d57613b3d615d32565b03613b5f57613b5682613b508484613f44565b87613fbf565b92505050610e38565b6001846002811115613b7357613b73615d32565b03613b8357613b56828287614017565b611ef0828287613fbf565b5f81806020019051810190610ab49190615645565b5f7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115613c01576040517fbf463fe900000000000000000000000000000000000000000000000000000000815260048101849052602401610bc1565b5f613c1e613c18613c12865f614084565b856140de565b5f614140565b50949350505050565b5f610e0f84670de0b6b3a76400008585613ef3565b613c44614181565b613c4d836141e7565b613c56826141e7565b613c618383836142d4565b6001600160a01b038316613c7857610cde81614434565b6001600160a01b038216610cde57610cde81614477565b611aa36144b1565b613c9f6144b1565b61291f82826144ef565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0054600203611aa3576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8060ff19613d3460017fb750591399365444a618527b69a54ce09476c8bde1ecff60f5aa1fe2b52605ff615a30565b604051602001613d4691815260200190565b60408051601f1981840301815291815281516020928301205f96875292909216905290922092915050565b6001600160a01b038216613db3576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b61291f825f83613c3c565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e9828696040518060c001604052808a6001600160a01b031681526020018b6001600160a01b031681526020018881526020018c815260200189815260200187815250604051602001613e649190615d20565b6040516020818303038152906040526040518463ffffffff1660e01b8152600401613e9193929190615943565b5f604051808303815f87803b158015613ea8575f80fd5b505af1158015613eba573d5f803e3d5ffd5b5050505050505050505050565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b5f613f20613f0083614552565b8015613f1b57505f8480613f1657613f16615d5f565b868809115b151590565b613f2b86868661457e565b6126669190615c32565b5f828218828411028218610e38565b5f5b5f198214158015613f88575042836002018381548110613f6857613f68615a43565b5f91825260209091206001600590920201015467ffffffffffffffff1611155b15613fb957826002018281548110613fa257613fa2615a43565b905f5260205f209060050201600301549150613f46565b50919050565b5f5b5f19831461400d575f846002018481548110613fdf57613fdf615a43565b905f5260205f209060050201905082815f0154165f146140025783915050610e38565b600301549250613fc1565b505f199392505050565b5f5b5f19831461400d575f84600201848154811061403757614037615a43565b5f918252602090912060059091020160018101549091504267ffffffffffffffff9091161115614067575061400d565b80548316156140795783915050610e38565b600301549250614019565b5f805f614091858561462e565b91509150806140d6576040517f22c9f7bb0000000000000000000000000000000000000000000000000000000081526004810186905260248101859052604401610bc1565b509392505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d848061412386868686614734565b915091505f6141328383614853565b9a9950505050505050505050565b5f807bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8416601b0b60e085901d6141748282876148b1565b9350935050509250929050565b5f61418a61307e565b60028101549091505f0361419b5750565b5f6141b0826005015460026001176001613a93565b90505f195b5f1982146141d35750806141cc8160036001613a93565b91506141b5565b5f198114610cde5760058301819055505050565b6001600160a01b0381166141f85750565b5f61420161307e565b6001600160a01b0383165f9081526003820160205260408120549192506142278461306b565b90505f8061423583856130df565b9150915083810361424857505050505050565b6001600160a01b0386165f9081526003860160205260409020819055818314614275576142758683614a9c565b6040805185815260208101839052908101849052606081018390526001600160a01b038716907f36a2eb39b73568d38e98721588b15b309c9380e1b1ab575c2c3d71d5148ccb4a9060800160405180910390a261357384848385614aae565b6142de8383613679565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a6040518060800160405280896001600160a01b03168152602001886001600160a01b0316815260200187815260200161438e7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0254421190565b151590526040805182516001600160a01b03908116602080840191909152840151168183015290820151606080830191909152909101511515608082015260a0016040516020818303038152906040526040518463ffffffff1660e01b81526004016143fc93929190615943565b5f604051808303815f87803b158015614413575f80fd5b505af1158015614425573d5f803e3d5ffd5b50505050612bb9848484614b0b565b5f61443d61307e565b60028101549091501561291f5760058101545f9081526004820160205260408120805484929061446e908490615c32565b90915550505050565b5f61448061307e565b60028101549091501561291f5760058101545f9081526004820160205260408120805484929061446e908490615a30565b6144b9614b16565b611aa3576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6144f76144b1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace007f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace036145438482615dd0565b5060048101612bb98382615dd0565b5f600282600381111561456757614567615d32565b6145719190615e8c565b60ff166001149050919050565b5f805f61458b8686614b34565b91509150815f036145af578381816145a5576145a5615d5f565b0492505050610e38565b8184116145c6576145c66003851502601118614b50565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010185841190960395909502919093039390930492909217029150509392505050565b5f601b83900b8314838382614692577d90e40fbeea1d3a4abc8955e946fe31cdcf66f634e100000000000000000086051561467257620186a0860595506005850194505b8586601b0b1461468d57600a86059550846001019450614672565b6146a8565b855f036146a857505f9250600191506131869050565b848560030b14614704575f8512156146c857505f92508291506131869050565b6040517fd556b1110000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610bc1565b50507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841660e084901b1791509250929050565b5f808515841517801561474c575f92505f9150614849565b6147568487615ead565b91505f61476288614b61565b90505f61476e87614b61565b90505f61477b8383614b34565b5090505f6f0785ee10d5da46d900f436a0000000008211156147b0576f0785ee10d5da46d900f436a000000000820491506025015b670de0b6b3a76400008211156147d157670de0b6b3a7640000820491506012015b633b9aca008211156147ea57633b9aca00820491506009015b6127108211156147ff57612710820491506004015b811561481357600a820491506001016147ff565b61481d8187615ead565b955061483f8b8a614839878761483487600a615fac565b614bc2565b89614c9d565b9097509550505050505b5094509492505050565b5f805f614860858561462e565b9150915080158015614870575081155b156140d6576040517f8eba4d070000000000000000000000000000000000000000000000000000000081526004810186905260248101859052604401610bc1565b5f805f8512156148f7576040517f4a7d166b0000000000000000000000000000000000000000000000000000000081526004810186905260248101859052604401610bc1565b845f0361490957505f90506001614a94565b8460ff8416850185811215614954576040517fd556b1110000000000000000000000000000000000000000000000000000000081526004810188905260248101879052604401610bc1565b5f805f8312156149be577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb3831215614995575f809550955050505050614a94565b825f03600a0a91508184816149ac576149ac615d5f565b0495505084029091149150614a949050565b5f831315614a8957604d831315614a14576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff88166044820152606401610bc1565b82600a0a9150815f1981614a2a57614a2a615d5f565b04841115614a77576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff88166044820152606401610bc1565b5091909102925060019150614a949050565b509193506001925050505b935093915050565b5f614aa683613d04565b919091555050565b5f614ab761307e565b905083816004015f8781526020019081526020015f205f828254614adb9190615a30565b90915550505f83815260048201602052604081208054849290614aff908490615c32565b90915550505050505050565b610cde838383614da9565b5f614b1f612c65565b5468010000000000000000900460ff16919050565b5f805f1983850993909202808410938190039390930393915050565b634e487b715f52806020526024601cfd5b5f80821215614bbe577f80000000000000000000000000000000000000000000000000000000000000008203614bb857507f8000000000000000000000000000000000000000000000000000000000000000919050565b505f0390565b5090565b5f805f614bcf8686614b34565b91509150815f03614be9578381816145a5576145a5615d5f565b838210614c33576040517f6c59da12000000000000000000000000000000000000000000000000000000008152600481018790526024810186905260448101859052606401610bc1565b5f84868809600186198101871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103025f82900382900490920185841190960395909502919093039390930492909217029150509392505050565b5f805f8587181215614d67577f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841115614d5457614cfc7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001615c32565b8403614d2c57507f8000000000000000000000000000000000000000000000000000000000000000905081614da0565b614d37600a85615fb7565b614d4090615fca565b614d4b846001615ead565b91509150614da0565b614d5d84615fca565b8391509150614da0565b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841115614d9a57614d40600a85615fb7565b50829050815b94509492505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b038416614df65781816002015f828254614deb9190615c32565b90915550614e7f9050565b6001600160a01b0384165f9081526020829052604090205482811015614e61576040517fe450d38c0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024810182905260448101849052606401610bc1565b6001600160a01b0385165f9081526020839052604090209083900390555b6001600160a01b038316614e9d576002810180548390039055614ebb565b6001600160a01b0383165f9081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051614f0091815260200190565b60405180910390a350505050565b5f60208284031215614f1e575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610e38575f80fd5b6001600160a01b03811681146124b5575f80fd5b5f60208284031215614f71575f80fd5b8135610e3881614f4d565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610e386020830184614f7c565b5f8060408385031215614fcd575f80fd5b8235614fd881614f4d565b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff8111828210171561503657615036614fe6565b60405290565b6040516080810167ffffffffffffffff8111828210171561503657615036614fe6565b604051601f8201601f1916810167ffffffffffffffff8111828210171561508857615088614fe6565b604052919050565b5f67ffffffffffffffff8211156150a9576150a9614fe6565b50601f01601f191660200190565b5f82601f8301126150c6575f80fd5b81356150d96150d482615090565b61505f565b8181528460208386010111156150ed575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f806080858703121561511c575f80fd5b84359350602085013561512e81614f4d565b925060408501359150606085013567ffffffffffffffff811115615150575f80fd5b61515c878288016150b7565b91505092959194509250565b5f8060408385031215615179575f80fd5b50508035926020909101359150565b5f60208284031215615198575f80fd5b5035919050565b5f805f606084860312156151b1575f80fd5b83356151bc81614f4d565b925060208401356151cc81614f4d565b929592945050506040919091013590565b5f602082840312156151ed575f80fd5b813567ffffffffffffffff811115615203575f80fd5b610e0f848285016150b7565b5f805f8060808587031215615222575f80fd5b843561522d81614f4d565b93506020850135925060408501359150606085013567ffffffffffffffff811115615150575f80fd5b5f805f60608486031215615268575f80fd5b833561527381614f4d565b925060208401359150604084013567ffffffffffffffff811115615295575f80fd5b6152a1868287016150b7565b9150509250925092565b5f805f805f60a086880312156152bf575f80fd5b8535945060208601356152d181614f4d565b935060408601356152e181614f4d565b925060608601359150608086013567ffffffffffffffff811115615303575f80fd5b61530f888289016150b7565b9150509295509295909350565b5f806020838503121561532d575f80fd5b823567ffffffffffffffff80821115615344575f80fd5b818501915085601f830112615357575f80fd5b813581811115615365575f80fd5b8660208260051b8501011115615379575f80fd5b60209290920196919550909350505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b828110156153fe577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08886030184526153ec858351614f7c565b945092850192908501906001016153b2565b5092979650505050505050565b5f8083601f84011261541b575f80fd5b50813567ffffffffffffffff811115615432575f80fd5b602083019150836020828501011115613186575f80fd5b5f805f805f6080868803121561545d575f80fd5b85359450602086013561546f81614f4d565b935060408601359250606086013567ffffffffffffffff811115615491575f80fd5b61549d8882890161540b565b969995985093965092949392505050565b5f80604083850312156154bf575f80fd5b82356154ca81614f4d565b915060208301356154da81614f4d565b809150509250929050565b5f82601f8301126154f4575f80fd5b8135602067ffffffffffffffff82111561551057615510614fe6565b8160051b61551f82820161505f565b9283528481018201928281019087851115615538575f80fd5b83870192505b8483101561214c5782358252918301919083019061553e565b5f805f805f60a0868803121561556b575f80fd5b853561557681614f4d565b9450602086013561558681614f4d565b9350604086013561559681614f4d565b9250606086013567ffffffffffffffff808211156155b2575f80fd5b6155be89838a016154e5565b935060808801359150808211156155d3575f80fd5b5061530f888289016154e5565b80151581146124b5575f80fd5b5f805f8060608587031215615600575f80fd5b843593506020850135615612816155e0565b9250604085013567ffffffffffffffff81111561562d575f80fd5b6156398782880161540b565b95989497509550505050565b5f60208284031215615655575f80fd5b5051919050565b600181811c9082168061567057607f821691505b602082108103613fb9577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f602082840312156156b7575f80fd5b815160ff81168114610e38575f80fd5b5f82601f8301126156d6575f80fd5b81516156e46150d482615090565b8181528460208386010111156156f8575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f60208284031215615724575f80fd5b815167ffffffffffffffff8082111561573b575f80fd5b908301906040828603121561574e575f80fd5b615756615013565b825161576181614f4d565b8152602083015182811115615774575f80fd5b929092019160808387031215615788575f80fd5b61579061503c565b835161579b81614f4d565b81526020840151838111156157ae575f80fd5b6157ba888287016156c7565b6020830152506040840151838111156157d1575f80fd5b6157dd888287016156c7565b604083015250606084015193506157f384614f4d565b60608101939093526020810192909252509392505050565b5f6001600160a01b038085168352604060208401528084511660408401526020840151604060608501528181511660808501526020810151608060a0860152615858610100860182614f7c565b905060408201517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808683030160c08701526158938282614f7c565b9150508260608301511660e08601528093505050509392505050565b5f6001600160a01b03808916835280881660208401525085604083015284606083015283608083015260c060a08301526158ec60c0830184614f7c565b98975050505050505050565b602081526001600160a01b0382511660208201526020820151604082015260408201516060820152606082015160808201525f608083015160a080840152610e0f60c0840182614f7c565b6001600160a01b0384168152826020820152606060408201525f6126666060830184614f7c565b5f6001600160a01b03808816835280871660208401525084604083015283606083015260a0608083015261214c60a0830184614f7c565b602081526001600160a01b03825116602082015260208201516040820152604082015160608201525f6060830151608080840152610e0f60a0840182614f7c565b6001600160a01b0383168152604060208201525f610e0f6040830184614f7c565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b81810381811115610ab457610ab4615a03565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112615aa3575f80fd5b83018035915067ffffffffffffffff821115615abd575f80fd5b602001915036819003821315613186575f80fd5b828482375f8382015f815283518060208601835e5f910190815295945050505050565b5f815180845260208085019450602084015f5b83811015615b2357815187529582019590820190600101615b07565b509495945050505050565b602081525f6001600160a01b0380845116602084015280602085015116604084015250604083015160a06060840152615b6a60c0840182615af4565b90506060840151601f19848303016080850152615b878282615af4565b9150506080840151151560a08401528091505092915050565b6001600160a01b0386168152846020820152831515604082015260806060820152816080820152818360a08301375f81830160a090810191909152601f909201601f19160101949350505050565b602081528151602082015260208201516040820152604082015160608201526060820151151560808201525f608083015160a080840152610e0f60c0840182614f7c565b80820180821115610ab457610ab4615a03565b5f60208284031215615c55575f80fd5b8151610e3881614f4d565b5f60208284031215615c70575f80fd5b8151610e38816155e0565b5f6001600160a01b03808a16835280891660208401528088166040840152508560608301528460808301528360a083015260e060c0830152615cc060e0830184614f7c565b9998505050505050505050565b5f6001600160a01b038083511684528060208401511660208501525060408201516040840152606082015160608401526080820151608084015260a082015160c060a0850152610e0f60c0850182614f7c565b602081525f610e386020830184615ccd565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b601f821115610cde57805f5260205f20601f840160051c81016020851015615db15750805b601f840160051c820191505b818110156128a5575f8155600101615dbd565b815167ffffffffffffffff811115615dea57615dea614fe6565b615dfe81615df8845461565c565b84615d8c565b602080601f831160018114615e31575f8415615e1a5750858301515b5f19600386901b1c1916600185901b178555613573565b5f85815260208120601f198616915b82811015615e5f57888601518255948401946001909101908401615e40565b5085821015615e7c57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f60ff831680615e9e57615e9e615d5f565b8060ff84160691505092915050565b8082018281125f83128015821682158216171561203657612036615a03565b600181815b80851115615f0657815f1904821115615eec57615eec615a03565b80851615615ef957918102915b93841c9390800290615ed1565b509250929050565b5f82615f1c57506001610ab4565b81615f2857505f610ab4565b8160018114615f3e5760028114615f4857615f64565b6001915050610ab4565b60ff841115615f5957615f59615a03565b50506001821b610ab4565b5060208310610133831016604e8410600b8410161715615f87575081810a610ab4565b615f918383615ecc565b805f1904821115615fa457615fa4615a03565b029392505050565b5f610e388383615f0e565b5f82615fc557615fc5615d5f565b500490565b5f7f80000000000000000000000000000000000000000000000000000000000000008203614bb857614bb8615a0356"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405260043610610337575f3560e01c8063715018a6116101af578063bbec4d06116100eb578063dd62ed3e11610094578063e70689f51161006e578063e70689f5146109ab578063f2fde38b146109ca578063f5647943146109e9578063f5d214f514610a1e5761033e565b8063dd62ed3e146108ed578063e1e6b89814610950578063e5be7d901461098c5761033e565b8063c77b66c2116100c5578063c77b66c2146108b3578063d09edf31146108c6578063db2088f4146108da5761033e565b8063bbec4d0614610875578063c54cafee14610894578063c63d75b6146105635761033e565b80638da5cb5b11610158578063a9059cbb11610132578063a9059cbb146107b8578063ac9650d8146107d7578063ae57de0c14610803578063ae98b39f146108225761033e565b80638da5cb5b14610771578063921a4c421461078557806395d89b41146107a45761033e565b80637a7af70d116101895780637a7af70d1461072057806381c3fcb91461073357806385b68756146107525761033e565b8063715018a6146106ce578063770afee1146106e2578063786cd916146107015761033e565b8063276b11401161027e5780634abe413711610227578063633ac71711610201578063633ac7171461061e5780636ba235211461063d5780636c876b941461069057806370a08231146106af5761033e565b80634abe4137146105c157806356db02e8146105e057806359f89dda146105ff5761033e565b8063402d267d11610258578063402d267d14610563578063439fab9114610583578063488bd7b0146105a25761033e565b8063276b1140146104fe578063313ce5671461051157806338d52e0f146105375761033e565b806318160ddd116102e05780631f6759d3116102ba5780631f6759d31461048d57806323b872dd146104c05780632755c6c7146104df5761033e565b806318160ddd1461043b578063181e7b3b1461044f5780631e4344a11461046e5761033e565b806306fdde031161031157806306fdde03146103e8578063095ea7b3146104095780631423feba146104285761033e565b806301e1d1141461037357806301ffc9a71461039a578063058a628f146103c95761033e565b3661033e57005b73b7e24412126ad6a2ce19cbd79fd11b68e7f30cf6365f80375f80365f845af43d5f803e80801561036d573d5ff35b3d5ffd5b005b34801561037e575f80fd5b50610387610a51565b6040519081526020015b60405180910390f35b3480156103a5575f80fd5b506103b96103b4366004614f0e565b610a5f565b6040519015158152602001610391565b3480156103d4575f80fd5b506103716103e3366004614f61565b610aba565b3480156103f3575f80fd5b506103fc610ce3565b6040516103919190614faa565b348015610414575f80fd5b506103b9610423366004614fbc565b610db6565b610387610436366004615109565b610dcd565b348015610446575f80fd5b50610387610e17565b34801561045a575f80fd5b50610387610469366004615168565b610e20565b348015610479575f80fd5b50610371610488366004615188565b610e3f565b348015610498575f80fd5b507f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70054610387565b3480156104cb575f80fd5b506103b96104da36600461519f565b610ecb565b3480156104ea575f80fd5b506103716104f9366004614fbc565b610eee565b61038761050c366004615168565b611028565b34801561051c575f80fd5b50610525611053565b60405160ff9091168152602001610391565b348015610542575f80fd5b5061054b6110f8565b6040516001600160a01b039091168152602001610391565b34801561056e575f80fd5b5061038761057d366004614f61565b505f1990565b34801561058e575f80fd5b5061038761059d3660046151dd565b61112c565b3480156105ad575f80fd5b506103876105bc366004615168565b6113d1565b3480156105cc575f80fd5b506103876105db366004614fbc565b6113e9565b3480156105eb575f80fd5b506103876105fa36600461520f565b6114a3565b34801561060a575f80fd5b50610371610619366004615256565b6117e4565b348015610629575f80fd5b50610371610638366004614f61565b61181c565b348015610648575f80fd5b50610387610657366004614f61565b6001600160a01b03165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be701602052604090205490565b34801561069b575f80fd5b506103716106aa366004614f61565b611949565b3480156106ba575f80fd5b506103876106c9366004614f61565b611a49565b3480156106d9575f80fd5b50610371611a92565b3480156106ed575f80fd5b506103876106fc366004615256565b611aa5565b34801561070c575f80fd5b5061037161071b366004614fbc565b611c5f565b61038761072e366004615168565b611d90565b34801561073e575f80fd5b5061037161074d3660046151dd565b611da5565b34801561075d575f80fd5b5061038761076c366004614fbc565b611de1565b34801561077c575f80fd5b5061054b611ec4565b348015610790575f80fd5b5061038761079f3660046152ab565b611ecd565b3480156107af575f80fd5b506103fc611efa565b3480156107c3575f80fd5b506103b96107d2366004614fbc565b611f4b565b3480156107e2575f80fd5b506107f66107f136600461531c565b611f58565b604051610391919061538b565b34801561080e575f80fd5b5061038761081d3660046152ab565b61203e565b34801561082d575f80fd5b5061038761083c366004614f61565b6001600160a01b03165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be702602052604090205490565b348015610880575f80fd5b5061038761088f366004615168565b612061565b34801561089f575f80fd5b506103876108ae366004615449565b61206f565b6103876108c1366004615109565b612157565b3480156108d1575f80fd5b5061054b612186565b6103876108e8366004615168565b6121ae565b3480156108f8575f80fd5b506103876109073660046154ae565b6001600160a01b039182165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b34801561095b575f80fd5b507f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031661054b565b348015610997575f80fd5b506103716109a6366004615557565b6121c2565b3480156109b6575f80fd5b506103716109c53660046155ed565b6122f9565b3480156109d5575f80fd5b506103716109e4366004614f61565b612462565b3480156109f4575f80fd5b507fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd025442116103b9565b348015610a29575f80fd5b507fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0154610387565b5f610a5a610e17565b905090565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f59f89dda000000000000000000000000000000000000000000000000000000001480610ab45750610ab4826124b8565b92915050565b6040517f248a9ca30000000000000000000000000000000000000000000000000000000081527ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f8960048201525f906001600160a01b0383169063248a9ca390602401602060405180830381865afa158015610b37573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b5b9190615645565b905080610bca576040517f76728ed90000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201527ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f8960248201526044015b60405180910390fd5b6040517f248a9ca30000000000000000000000000000000000000000000000000000000081527f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e760048201525f906001600160a01b0384169063248a9ca390602401602060405180830381865afa158015610c47573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c6b9190615645565b905080610cd5576040517f76728ed90000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201527f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e76024820152604401610bc1565b610cde836125e6565b505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0380546060917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0091610d349061565c565b80601f0160208091040260200160405190810160405280929190818152602001828054610d609061565c565b8015610dab5780601f10610d8257610100808354040283529160200191610dab565b820191905f5260205f20905b815481529060010190602001808311610d8e57829003601f168201915b505050505091505090565b5f33610dc38185856125f7565b5060019392505050565b5f80610dd7612604565b90505f610df187610deb335b89865f61265b565b8761266f565b9050610e008787838588612685565b610e0b335b476128ac565b9150505b949350505050565b5f610a5a612955565b5f610e3883670de0b6b3a7640000612ab4565b612ab4565b9392505050565b610e47612ac0565b7f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be7008054821115610e75578181555b7fff9fd4facd8bd30d905cc7ffbd03e8829a414df4c6554d155d132c3377868a42610e9e611ec4565b8254604080516001600160a01b039093168352602083018690528201526060015b60405180910390a15050565b5f33610ed8858285612b0b565b610ee3858585612bbf565b506001949350505050565b610ef6612ac0565b805f03610f3a576040517f5a6084530000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610bc1565b6001600160a01b0382165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70260205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70090821115610fb7576001600160a01b0383165f90815260028201602052604090208290555b7fa1e5b368dc99c8558f28b1e7e8cb7ab542c989a4b697628ba7bfffe0aeaccffd610fe0611ec4565b6001600160a01b038581165f818152600286016020908152604091829020548251959094168552840191909152820185905260608201526080015b60405180910390a1505050565b5f8061104884611042335b3361103c612604565b5f61265b565b85612c4e565b9050610e3833610e05565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f308970152310243260080545f91906001600160a01b0316803b806110905760126110f0565b816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110f091906156a7565b935050505090565b5f807f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f30897015231024326005b546001600160a01b031692915050565b5f80611136612c65565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156111625750825b90505f8267ffffffffffffffff16600114801561117e5750303b155b90508115801561118c575080155b156111c3576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156112245784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b61122c612c8d565b5f878060200190518101906112419190615714565b90506112508160200151612cc6565b6020810151516001600160a01b031615611296576040517f8951799200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80516001600160a01b03166112d7576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6112e030612e39565b80516112eb90612f99565b7ffa89761502e992c8c755fba778ced00f4562485023f656906eb76f5dd65a9fe53360408051808201825284516001600160a01b0316815260208086015190820152905161133a92919061580b565b60405180910390a17fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc396505083156113c75784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b5f610e38836113e4335b3386600161265b565b613021565b5f61141b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031690565b6040517efdd58e0000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015260248201859052919091169062fdd58e90604401602060405180830381865afa15801561147f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e389190615645565b5f6114ac61302e565b825f036114e5576040517f312497b000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6115a98461151b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031690565b6040517efdd58e0000000000000000000000000000000000000000000000000000000081526001600160a01b038a81166004830152602482018a9052919091169062fdd58e90604401602060405180830381865afa15801561157f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115a39190615645565b9061305c565b905080156116c6577f88e2280ece62e9296d3578b77647db2c11f9fa7e42578e2db5d4262123ffae3e3387878785886040516115ea969594939291906158af565b60405180910390a17f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b03166001600160a01b031663043fa98733883360405160e085901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b03938416600482015291831660248301529091166044820152606481018890526084810184905260c060a48201525f60c482015260e4015f604051808303815f87803b1580156116af575f80fd5b505af11580156116c1573d5f803e3d5ffd5b505050505b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f3dd35eca0ca8a128757fa464a5dfa4ad6cc4853cad96dce4e90fdbea4f0a52e36040518060a001604052808c6001600160a01b031681526020018b81526020018a81526020018781526020018981525060405160200161175d91906158f8565b6040516020818303038152906040526040518463ffffffff1660e01b815260040161178a93929190615943565b5f604051808303815f87803b1580156117a1575f80fd5b505af11580156117b3573d5f803e3d5ffd5b5093945050505050610e0f60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b8282826040517f3ae4063b000000000000000000000000000000000000000000000000000000008152600401610bc193929190615943565b611824612ac0565b6001600160a01b0381165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70260205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be7009042116118d9576001600160a01b0382165f818152600283016020526040908190205490517f81a7897700000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610bc1565b6001600160a01b0382165f9081526002820160205260408120557fa1e5b368dc99c8558f28b1e7e8cb7ab542c989a4b697628ba7bfffe0aeaccffd61191c611ec4565b604080516001600160a01b03928316815291851660208301525f9082018190526060820152608001610ebf565b611951612ac0565b6001600160a01b0381165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70160205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be700904211611a06576001600160a01b0382165f818152600183016020526040908190205490517ff1b01b5400000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610bc1565b6001600160a01b0382165f9081526001820160205260408120557fd08871fffa9d03c01fcba597af5dfbe64cb26f207debdae1af2532695447499161191c611ec4565b5f80611a548361306b565b90505f611a5f61307e565b6001600160a01b0385165f90815260038201602052604081205491925090611a889084906130df565b5095945050505050565b611a9a612ac0565b611aa35f612f99565b565b5f611aae61302e565b825f03611ae7576040517f312497b000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f611af5846115a387611a49565b90508015611b47577f3fc1c49e72362e91416388fe7a107b92db924642476e83e701eeeb6256d7249e3386868487604051611b3495949392919061596a565b60405180910390a1611b47853383612bbf565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f54f0af3716c79b30b8c228679d31d77a1a5f526c16af3262730e0a8de4363fed60405180608001604052808b6001600160a01b031681526020018a815260200187815260200189815250604051602001611bd891906159a1565b6040516020818303038152906040526040518463ffffffff1660e01b8152600401611c0593929190615943565b5f604051808303815f87803b158015611c1c575f80fd5b505af1158015611c2e573d5f803e3d5ffd5b5093945050505050610e3860017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b611c67612ac0565b805f03611cab576040517ffd86061b0000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610bc1565b6001600160a01b0382165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70160205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70090821115611d28576001600160a01b0383165f90815260018201602052604090208290555b7fd08871fffa9d03c01fcba597af5dfbe64cb26f207debdae1af25326954474991611d51611ec4565b6001600160a01b038581165f8181526001860160209081526040918290205482519590941685528401919091528201859052606082015260800161101b565b5f8061104884611d9f33611033565b8561266f565b7fdaffad82f53a38a62340f14cdd6fd3b437c5dcda6b32029dac1e661dbce28b2d3382604051611dd69291906159e2565b60405180910390a150565b5f80611df0848585600161265b565b9050805f03611e02575f915050610ab4565b610e0f611e367f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031690565b6040517efdd58e0000000000000000000000000000000000000000000000000000000081526001600160a01b03878116600483015260248201879052919091169062fdd58e90604401602060405180830381865afa158015611e9a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ebe9190615645565b82612ab4565b5f610a5a61318d565b5f80611ee087610e33878988600161265b565b9050611ef08187878a88886131b5565b9695505050505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0480546060917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0091610d349061565c565b5f33610dc3818585612bbf565b604080515f8152602081019091526060908267ffffffffffffffff811115611f8257611f82614fe6565b604051908082528060200260200182016040528015611fb557816020015b6060815260200190600190039081611fa05790505b5091505f5b838110156120365761201130868684818110611fd857611fd8615a43565b9050602002810190611fea9190615a70565b85604051602001611ffd93929190615ad1565b60405160208183030381529060405261357b565b83828151811061202357612023615a43565b6020908102919091010152600101611fba565b505092915050565b5f80612051876113e4878988600161265b565b9050611ef08787878488886131b5565b5f610e3883610e33336113db565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd01545f907fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd00908511156120f1576040517fe4a4718200000000000000000000000000000000000000000000000000000000815260048101869052602401610bc1565b5f61210888612102338a8a5f61265b565b5f61266f565b905061214c8888838989898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061268592505050565b979650505050505050565b5f80612161612604565b90505f6121778761217133610de3565b87612c4e565b9050610e008187898588612685565b5f807fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0061111c565b5f8061104884670de0b6b3a7640000612102565b6121cf8585858585613616565b6121d98484613679565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080546040805160a0810182526001600160a01b0388811682528781166020830152918101869052606081018590529116906359f89dda9088907f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a4890608081016122837fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0254421190565b151590526040516122979190602001615b2e565b6040516020818303038152906040526040518463ffffffff1660e01b81526004016122c493929190615943565b5f604051808303815f87803b1580156122db575f80fd5b505af11580156122ed573d5f803e3d5ffd5b50505050505050505050565b835f03612332576040517f8672985d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0090505f6040518060a001604052808360020154815260200183600201548152602001878152602001861515815260200185858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152505050915250905084806123cc5750816002015486115b156123e05760028201869055602081018690525b7f7ef5cae78e9bd364afb19bb0f8a881a6d156e35a119e28c0d17524e5079581583387878787604051612417959493929190615ba0565b60405180910390a181546001600160a01b03166359f89dda337f50a07cb25d0d864370863300b20987dfdae089abad71b607faf639d09d053391846040516020016122979190615bee565b61246a612ac0565b6001600160a01b0381166124ac576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6124b581612f99565b50565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fe5be7d9000000000000000000000000000000000000000000000000000000000148061254a57507fffffffff0000000000000000000000000000000000000000000000000000000082167f439fab9100000000000000000000000000000000000000000000000000000000145b8061259657507fffffffff0000000000000000000000000000000000000000000000000000000082167fe1e6b89800000000000000000000000000000000000000000000000000000000145b80610ab457507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610ab4565b6125ee612ac0565b6124b581612e39565b610cde8383836001613739565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd01545f907fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0090612655906001615c32565b91505090565b5f670de0b6b3a76400005b95945050505050565b5f61267a8284613861565b610e0f84845f6138a5565b61268d61302e565b845f036126c6576040517fc7838b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825f036126ff576040517ffc8c806300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03841661273f576040517f6ba9ecd800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f0361277a576040517fe4a471820000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b7f3377bcbed49a0c0005e53931cd8fe7334b5371523e5de784c0d0d3d01089cfea3385878686866040516127b3969594939291906158af565b60405180910390a16127c885858585856138ba565b6127d28484613915565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546040517f6d5b3f780000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690636d5b3f7890612842903390889087908990889060040161596a565b5f604051808303815f87803b158015612859575f80fd5b505af115801561286b573d5f803e3d5ffd5b5050505061287c8585858585613962565b6128a560017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5050505050565b804710156128ef576040517fcf47918100000000000000000000000000000000000000000000000000000000815247600482015260248101829052604401610bc1565b612908828260405180602001604052805f815250613a0e565b15612911575050565b3d156129235761291f613a23565b5050565b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8061295f61307e565b60028101549091505f0361297557612655613a2e565b5f6129845f1960036001613a93565b90505f5b5f198214610e38575f8360020183815481106129a6576129a6615a43565b905f5260205f2090600502015f0154905060028103612a83575f612a738560020185815481106129d8576129d8615a43565b905f5260205f20906005020160040180546129f29061565c565b80601f0160208091040260200160405190810160405280929190818152602001828054612a1e9061565c565b8015612a695780601f10612a4057610100808354040283529160200191612a69565b820191905f5260205f20905b815481529060010190602001808311612a4c57829003601f168201915b5050505050613b8e565b9050612a7f8382613ba3565b9250505b5f838152600485016020526040902054612a9d9083615c32565b9150612aac8360036001613a93565b925050612988565b5f610e38838383613c27565b33612ac9611ec4565b6001600160a01b031614611aa3576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610bc1565b6001600160a01b038381165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160209081526040808320938616835292905220545f19811015612bb95781811015612bab576040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201526024810182905260448101839052606401610bc1565b612bb984848484035f613739565b50505050565b6001600160a01b038316612c01576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6001600160a01b038216612c43576040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b610cde838383613c3c565b5f612c598284613861565b610e0f84846001613c27565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610ab4565b425f03611aa3576040517f789a532d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612cce613c8f565b612ce081602001518260400151613c97565b80517f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f308970152310243260080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b0393841617825560608401517f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601805490921693169283179055604080517f481c6a75000000000000000000000000000000000000000000000000000000008152905191925f92909163481c6a759160048083019260209291908290030181865afa158015612dc0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612de49190615c45565b90506001600160a01b0381163014610cde576040517f7935475e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b0382166024820152604401610bc1565b6040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f59f89dda0000000000000000000000000000000000000000000000000000000060048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa158015612eb4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ed89190615c60565b612f0e576040517ffd12061600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03831690811782556040805133815260208101929092527fa8c713fe8fb360697fc0daab836d85208a605d485fbc265aea0f773fc6cdd71a9101610ebf565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f610e38838360016138a5565b613036613ca9565b60027f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5f828218828410028218610e38565b5f8061307683613d04565b549392505050565b5f8060ff196130ae60017f2f8f8ecf1b7a1a3ceda8d15a9a2247a2377b3434535a87f1728021c13fec2e71615a30565b6040516020016130c091815260200190565b60408051601f1981840301815291905280516020909101201692915050565b5f8082816130eb61307e565b9050855f6130fc8760036001613a93565b90505b5f19811461317e57925082811580159061313c5750600283600201828154811061312b5761312b615a43565b905f5260205f2090600502015f0154145b1561316a575f61315a8460020183815481106129d8576129d8615a43565b90506131668382613ba3565b9250505b6131778160036001613a93565b90506130ff565b509350909150505b9250929050565b5f807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930061111c565b6131bd61302e565b855f036131f6576040517fc7838b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825f0361322f576040517ffc8c806300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03851661326f576040517f6ba9ecd800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0384166132af576040517f9905827b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f036132eb576040517fe4a4718200000000000000000000000000000000000000000000000000000000815260048101839052602401610bc1565b7f2845b9458bcc357e1abfe8de7f6832dfe7220596a053496b33d0deb6577d8d2a338686898787876040516133269796959493929190615c7b565b60405180910390a16001600160a01b038416331461349557613349843385612b0b565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b03166001600160a01b031663e985e9c585336040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa1580156133e5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134099190615c60565b613495576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60448201527f6572206f7220617070726f7665640000000000000000000000000000000000006064820152608401610bc1565b61349f8484613d71565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546040517fc2530e390000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063c2530e399061350f903390889087908990889060040161596a565b5f604051808303815f87803b158015613526575f80fd5b505af1158015613538573d5f803e3d5ffd5b5050505061354a868686868686613dbe565b61357360017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b505050505050565b60605f6135888484613ec7565b90508080156135a957505f3d11806135a957505f846001600160a01b03163b115b156135be576135b6613eda565b915050610ab4565b8015613601576040517f9996b3150000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610bc1565b3d156129235761360f613a23565b5092915050565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031633146128a5576040517f8813aac300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be700805442118015906136c257506001600160a01b0383165f908152600182016020526040902054155b80156136e557506001600160a01b0382165f908152600282016020526040902054155b15610cde5780546040517f79d7155100000000000000000000000000000000000000000000000000000000815260048101919091526001600160a01b03808516602483015283166044820152606401610bc1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b03851661379c576040517fe602df050000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6001600160a01b0384166137de576040517f94280d620000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6001600160a01b038086165f908152600183016020908152604080832093881683529290522083905581156128a557836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258560405161385291815260200190565b60405180910390a35050505050565b8181101561291f576040517fa3e322340000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610bc1565b5f610e0f8484670de0b6b3a764000085613ef3565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd01547fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd00906139089084613f35565b6001909101555050505050565b6001600160a01b038216613957576040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b61291f5f8383613c3c565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8216040518060c001604052806139cb3390565b6001600160a01b031681526020018a6001600160a01b031681526020018881526020018b8152602001898152602001878152506040516020016122979190615d20565b5f805f83516020850186885af1949350505050565b6040513d5f823e3d81fd5b5f8060ff19613a5e60017fb750591399365444a618527b69a54ce09476c8bde1ecff60f5aa1fe2b52605ff615a30565b604051602001613a7091815260200190565b60408051808303601f190181529190528051602090910120166002015492915050565b5f600783168103613ad0576040517fbf3cad0b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f613ad961307e565b60028101549091505f03613af1575f19915050610e38565b5f5f198614613b2457816002018681548110613b0f57613b0f615a43565b905f5260205f20906005020160030154613b27565b81545b90506002846002811115613b3d57613b3d615d32565b03613b5f57613b5682613b508484613f44565b87613fbf565b92505050610e38565b6001846002811115613b7357613b73615d32565b03613b8357613b56828287614017565b611ef0828287613fbf565b5f81806020019051810190610ab49190615645565b5f7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115613c01576040517fbf463fe900000000000000000000000000000000000000000000000000000000815260048101849052602401610bc1565b5f613c1e613c18613c12865f614084565b856140de565b5f614140565b50949350505050565b5f610e0f84670de0b6b3a76400008585613ef3565b613c44614181565b613c4d836141e7565b613c56826141e7565b613c618383836142d4565b6001600160a01b038316613c7857610cde81614434565b6001600160a01b038216610cde57610cde81614477565b611aa36144b1565b613c9f6144b1565b61291f82826144ef565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0054600203611aa3576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8060ff19613d3460017fb750591399365444a618527b69a54ce09476c8bde1ecff60f5aa1fe2b52605ff615a30565b604051602001613d4691815260200190565b60408051601f1981840301815291815281516020928301205f96875292909216905290922092915050565b6001600160a01b038216613db3576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b61291f825f83613c3c565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e9828696040518060c001604052808a6001600160a01b031681526020018b6001600160a01b031681526020018881526020018c815260200189815260200187815250604051602001613e649190615d20565b6040516020818303038152906040526040518463ffffffff1660e01b8152600401613e9193929190615943565b5f604051808303815f87803b158015613ea8575f80fd5b505af1158015613eba573d5f803e3d5ffd5b5050505050505050505050565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b5f613f20613f0083614552565b8015613f1b57505f8480613f1657613f16615d5f565b868809115b151590565b613f2b86868661457e565b6126669190615c32565b5f828218828411028218610e38565b5f5b5f198214158015613f88575042836002018381548110613f6857613f68615a43565b5f91825260209091206001600590920201015467ffffffffffffffff1611155b15613fb957826002018281548110613fa257613fa2615a43565b905f5260205f209060050201600301549150613f46565b50919050565b5f5b5f19831461400d575f846002018481548110613fdf57613fdf615a43565b905f5260205f209060050201905082815f0154165f146140025783915050610e38565b600301549250613fc1565b505f199392505050565b5f5b5f19831461400d575f84600201848154811061403757614037615a43565b5f918252602090912060059091020160018101549091504267ffffffffffffffff9091161115614067575061400d565b80548316156140795783915050610e38565b600301549250614019565b5f805f614091858561462e565b91509150806140d6576040517f22c9f7bb0000000000000000000000000000000000000000000000000000000081526004810186905260248101859052604401610bc1565b509392505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d848061412386868686614734565b915091505f6141328383614853565b9a9950505050505050505050565b5f807bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8416601b0b60e085901d6141748282876148b1565b9350935050509250929050565b5f61418a61307e565b60028101549091505f0361419b5750565b5f6141b0826005015460026001176001613a93565b90505f195b5f1982146141d35750806141cc8160036001613a93565b91506141b5565b5f198114610cde5760058301819055505050565b6001600160a01b0381166141f85750565b5f61420161307e565b6001600160a01b0383165f9081526003820160205260408120549192506142278461306b565b90505f8061423583856130df565b9150915083810361424857505050505050565b6001600160a01b0386165f9081526003860160205260409020819055818314614275576142758683614a9c565b6040805185815260208101839052908101849052606081018390526001600160a01b038716907f36a2eb39b73568d38e98721588b15b309c9380e1b1ab575c2c3d71d5148ccb4a9060800160405180910390a261357384848385614aae565b6142de8383613679565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a6040518060800160405280896001600160a01b03168152602001886001600160a01b0316815260200187815260200161438e7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0254421190565b151590526040805182516001600160a01b03908116602080840191909152840151168183015290820151606080830191909152909101511515608082015260a0016040516020818303038152906040526040518463ffffffff1660e01b81526004016143fc93929190615943565b5f604051808303815f87803b158015614413575f80fd5b505af1158015614425573d5f803e3d5ffd5b50505050612bb9848484614b0b565b5f61443d61307e565b60028101549091501561291f5760058101545f9081526004820160205260408120805484929061446e908490615c32565b90915550505050565b5f61448061307e565b60028101549091501561291f5760058101545f9081526004820160205260408120805484929061446e908490615a30565b6144b9614b16565b611aa3576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6144f76144b1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace007f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace036145438482615dd0565b5060048101612bb98382615dd0565b5f600282600381111561456757614567615d32565b6145719190615e8c565b60ff166001149050919050565b5f805f61458b8686614b34565b91509150815f036145af578381816145a5576145a5615d5f565b0492505050610e38565b8184116145c6576145c66003851502601118614b50565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010185841190960395909502919093039390930492909217029150509392505050565b5f601b83900b8314838382614692577d90e40fbeea1d3a4abc8955e946fe31cdcf66f634e100000000000000000086051561467257620186a0860595506005850194505b8586601b0b1461468d57600a86059550846001019450614672565b6146a8565b855f036146a857505f9250600191506131869050565b848560030b14614704575f8512156146c857505f92508291506131869050565b6040517fd556b1110000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610bc1565b50507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841660e084901b1791509250929050565b5f808515841517801561474c575f92505f9150614849565b6147568487615ead565b91505f61476288614b61565b90505f61476e87614b61565b90505f61477b8383614b34565b5090505f6f0785ee10d5da46d900f436a0000000008211156147b0576f0785ee10d5da46d900f436a000000000820491506025015b670de0b6b3a76400008211156147d157670de0b6b3a7640000820491506012015b633b9aca008211156147ea57633b9aca00820491506009015b6127108211156147ff57612710820491506004015b811561481357600a820491506001016147ff565b61481d8187615ead565b955061483f8b8a614839878761483487600a615fac565b614bc2565b89614c9d565b9097509550505050505b5094509492505050565b5f805f614860858561462e565b9150915080158015614870575081155b156140d6576040517f8eba4d070000000000000000000000000000000000000000000000000000000081526004810186905260248101859052604401610bc1565b5f805f8512156148f7576040517f4a7d166b0000000000000000000000000000000000000000000000000000000081526004810186905260248101859052604401610bc1565b845f0361490957505f90506001614a94565b8460ff8416850185811215614954576040517fd556b1110000000000000000000000000000000000000000000000000000000081526004810188905260248101879052604401610bc1565b5f805f8312156149be577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb3831215614995575f809550955050505050614a94565b825f03600a0a91508184816149ac576149ac615d5f565b0495505084029091149150614a949050565b5f831315614a8957604d831315614a14576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff88166044820152606401610bc1565b82600a0a9150815f1981614a2a57614a2a615d5f565b04841115614a77576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff88166044820152606401610bc1565b5091909102925060019150614a949050565b509193506001925050505b935093915050565b5f614aa683613d04565b919091555050565b5f614ab761307e565b905083816004015f8781526020019081526020015f205f828254614adb9190615a30565b90915550505f83815260048201602052604081208054849290614aff908490615c32565b90915550505050505050565b610cde838383614da9565b5f614b1f612c65565b5468010000000000000000900460ff16919050565b5f805f1983850993909202808410938190039390930393915050565b634e487b715f52806020526024601cfd5b5f80821215614bbe577f80000000000000000000000000000000000000000000000000000000000000008203614bb857507f8000000000000000000000000000000000000000000000000000000000000000919050565b505f0390565b5090565b5f805f614bcf8686614b34565b91509150815f03614be9578381816145a5576145a5615d5f565b838210614c33576040517f6c59da12000000000000000000000000000000000000000000000000000000008152600481018790526024810186905260448101859052606401610bc1565b5f84868809600186198101871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103025f82900382900490920185841190960395909502919093039390930492909217029150509392505050565b5f805f8587181215614d67577f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841115614d5457614cfc7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001615c32565b8403614d2c57507f8000000000000000000000000000000000000000000000000000000000000000905081614da0565b614d37600a85615fb7565b614d4090615fca565b614d4b846001615ead565b91509150614da0565b614d5d84615fca565b8391509150614da0565b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841115614d9a57614d40600a85615fb7565b50829050815b94509492505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b038416614df65781816002015f828254614deb9190615c32565b90915550614e7f9050565b6001600160a01b0384165f9081526020829052604090205482811015614e61576040517fe450d38c0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024810182905260448101849052606401610bc1565b6001600160a01b0385165f9081526020839052604090209083900390555b6001600160a01b038316614e9d576002810180548390039055614ebb565b6001600160a01b0383165f9081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051614f0091815260200190565b60405180910390a350505050565b5f60208284031215614f1e575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610e38575f80fd5b6001600160a01b03811681146124b5575f80fd5b5f60208284031215614f71575f80fd5b8135610e3881614f4d565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610e386020830184614f7c565b5f8060408385031215614fcd575f80fd5b8235614fd881614f4d565b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff8111828210171561503657615036614fe6565b60405290565b6040516080810167ffffffffffffffff8111828210171561503657615036614fe6565b604051601f8201601f1916810167ffffffffffffffff8111828210171561508857615088614fe6565b604052919050565b5f67ffffffffffffffff8211156150a9576150a9614fe6565b50601f01601f191660200190565b5f82601f8301126150c6575f80fd5b81356150d96150d482615090565b61505f565b8181528460208386010111156150ed575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f806080858703121561511c575f80fd5b84359350602085013561512e81614f4d565b925060408501359150606085013567ffffffffffffffff811115615150575f80fd5b61515c878288016150b7565b91505092959194509250565b5f8060408385031215615179575f80fd5b50508035926020909101359150565b5f60208284031215615198575f80fd5b5035919050565b5f805f606084860312156151b1575f80fd5b83356151bc81614f4d565b925060208401356151cc81614f4d565b929592945050506040919091013590565b5f602082840312156151ed575f80fd5b813567ffffffffffffffff811115615203575f80fd5b610e0f848285016150b7565b5f805f8060808587031215615222575f80fd5b843561522d81614f4d565b93506020850135925060408501359150606085013567ffffffffffffffff811115615150575f80fd5b5f805f60608486031215615268575f80fd5b833561527381614f4d565b925060208401359150604084013567ffffffffffffffff811115615295575f80fd5b6152a1868287016150b7565b9150509250925092565b5f805f805f60a086880312156152bf575f80fd5b8535945060208601356152d181614f4d565b935060408601356152e181614f4d565b925060608601359150608086013567ffffffffffffffff811115615303575f80fd5b61530f888289016150b7565b9150509295509295909350565b5f806020838503121561532d575f80fd5b823567ffffffffffffffff80821115615344575f80fd5b818501915085601f830112615357575f80fd5b813581811115615365575f80fd5b8660208260051b8501011115615379575f80fd5b60209290920196919550909350505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b828110156153fe577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08886030184526153ec858351614f7c565b945092850192908501906001016153b2565b5092979650505050505050565b5f8083601f84011261541b575f80fd5b50813567ffffffffffffffff811115615432575f80fd5b602083019150836020828501011115613186575f80fd5b5f805f805f6080868803121561545d575f80fd5b85359450602086013561546f81614f4d565b935060408601359250606086013567ffffffffffffffff811115615491575f80fd5b61549d8882890161540b565b969995985093965092949392505050565b5f80604083850312156154bf575f80fd5b82356154ca81614f4d565b915060208301356154da81614f4d565b809150509250929050565b5f82601f8301126154f4575f80fd5b8135602067ffffffffffffffff82111561551057615510614fe6565b8160051b61551f82820161505f565b9283528481018201928281019087851115615538575f80fd5b83870192505b8483101561214c5782358252918301919083019061553e565b5f805f805f60a0868803121561556b575f80fd5b853561557681614f4d565b9450602086013561558681614f4d565b9350604086013561559681614f4d565b9250606086013567ffffffffffffffff808211156155b2575f80fd5b6155be89838a016154e5565b935060808801359150808211156155d3575f80fd5b5061530f888289016154e5565b80151581146124b5575f80fd5b5f805f8060608587031215615600575f80fd5b843593506020850135615612816155e0565b9250604085013567ffffffffffffffff81111561562d575f80fd5b6156398782880161540b565b95989497509550505050565b5f60208284031215615655575f80fd5b5051919050565b600181811c9082168061567057607f821691505b602082108103613fb9577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f602082840312156156b7575f80fd5b815160ff81168114610e38575f80fd5b5f82601f8301126156d6575f80fd5b81516156e46150d482615090565b8181528460208386010111156156f8575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f60208284031215615724575f80fd5b815167ffffffffffffffff8082111561573b575f80fd5b908301906040828603121561574e575f80fd5b615756615013565b825161576181614f4d565b8152602083015182811115615774575f80fd5b929092019160808387031215615788575f80fd5b61579061503c565b835161579b81614f4d565b81526020840151838111156157ae575f80fd5b6157ba888287016156c7565b6020830152506040840151838111156157d1575f80fd5b6157dd888287016156c7565b604083015250606084015193506157f384614f4d565b60608101939093526020810192909252509392505050565b5f6001600160a01b038085168352604060208401528084511660408401526020840151604060608501528181511660808501526020810151608060a0860152615858610100860182614f7c565b905060408201517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808683030160c08701526158938282614f7c565b9150508260608301511660e08601528093505050509392505050565b5f6001600160a01b03808916835280881660208401525085604083015284606083015283608083015260c060a08301526158ec60c0830184614f7c565b98975050505050505050565b602081526001600160a01b0382511660208201526020820151604082015260408201516060820152606082015160808201525f608083015160a080840152610e0f60c0840182614f7c565b6001600160a01b0384168152826020820152606060408201525f6126666060830184614f7c565b5f6001600160a01b03808816835280871660208401525084604083015283606083015260a0608083015261214c60a0830184614f7c565b602081526001600160a01b03825116602082015260208201516040820152604082015160608201525f6060830151608080840152610e0f60a0840182614f7c565b6001600160a01b0383168152604060208201525f610e0f6040830184614f7c565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b81810381811115610ab457610ab4615a03565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112615aa3575f80fd5b83018035915067ffffffffffffffff821115615abd575f80fd5b602001915036819003821315613186575f80fd5b828482375f8382015f815283518060208601835e5f910190815295945050505050565b5f815180845260208085019450602084015f5b83811015615b2357815187529582019590820190600101615b07565b509495945050505050565b602081525f6001600160a01b0380845116602084015280602085015116604084015250604083015160a06060840152615b6a60c0840182615af4565b90506060840151601f19848303016080850152615b878282615af4565b9150506080840151151560a08401528091505092915050565b6001600160a01b0386168152846020820152831515604082015260806060820152816080820152818360a08301375f81830160a090810191909152601f909201601f19160101949350505050565b602081528151602082015260208201516040820152604082015160608201526060820151151560808201525f608083015160a080840152610e0f60c0840182614f7c565b80820180821115610ab457610ab4615a03565b5f60208284031215615c55575f80fd5b8151610e3881614f4d565b5f60208284031215615c70575f80fd5b8151610e38816155e0565b5f6001600160a01b03808a16835280891660208401528088166040840152508560608301528460808301528360a083015260e060c0830152615cc060e0830184614f7c565b9998505050505050505050565b5f6001600160a01b038083511684528060208401511660208501525060408201516040840152606082015160608401526080820151608084015260a082015160c060a0850152610e0f60c0850182614f7c565b602081525f610e386020830184615ccd565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b601f821115610cde57805f5260205f20601f840160051c81016020851015615db15750805b601f840160051c820191505b818110156128a5575f8155600101615dbd565b815167ffffffffffffffff811115615dea57615dea614fe6565b615dfe81615df8845461565c565b84615d8c565b602080601f831160018114615e31575f8415615e1a5750858301515b5f19600386901b1c1916600185901b178555613573565b5f85815260208120601f198616915b82811015615e5f57888601518255948401946001909101908401615e40565b5085821015615e7c57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f60ff831680615e9e57615e9e615d5f565b8060ff84160691505092915050565b8082018281125f83128015821682158216171561203657612036615a03565b600181815b80851115615f0657815f1904821115615eec57615eec615a03565b80851615615ef957918102915b93841c9390800290615ed1565b509250929050565b5f82615f1c57506001610ab4565b81615f2857505f610ab4565b8160018114615f3e5760028114615f4857615f64565b6001915050610ab4565b60ff841115615f5957615f59615a03565b50506001821b610ab4565b5060208310610133831016604e8410600b8410161715615f87575081810a610ab4565b615f918383615ecc565b805f1904821115615fa457615fa4615a03565b029392505050565b5f610e388383615f0e565b5f82615fc557615fc5615d5f565b500490565b5f7f80000000000000000000000000000000000000000000000000000000000000008203614bb857614bb8615a0356"; diff --git a/src/generated/0_1_5/StoxUnifiedDeployer.pointers.sol b/src/generated/0_1_5/StoxUnifiedDeployer.pointers.sol deleted file mode 100644 index 3819204f..00000000 --- a/src/generated/0_1_5/StoxUnifiedDeployer.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x76b90443c401cb2071b31fbf0596f931e01315c358b9db4e4db998107dc2e62c); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x48E1A9091E89f5500AfC9d42FBB85bE8b4f70203); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"6080604052348015600e575f80fd5b506106308061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c806301ffc9a714610038578063733e1f8d1461005f575b5f80fd5b61004b6100463660046102a3565b610074565b604051901515815260200160405180910390f35b61007261006d36600461042d565b61010c565b005b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f733e1f8d00000000000000000000000000000000000000000000000000000000148061010657507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6040517f4904fab30000000000000000000000000000000000000000000000000000000081525f9073679ab223dab158ea93e1a4f49104de436c58eab890634904fab39061015e908590600401610570565b6020604051808303815f875af115801561017a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061019e9190610615565b6040517fd786858b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201529091505f90736b4232f1046f1f1bb99a1184d886bbaf3cd7e15a9063d786858b906024016020604051808303815f875af1158015610220573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102449190610615565b6040805133815273ffffffffffffffffffffffffffffffffffffffff858116602083015283168183015290519192507fa0d99d93cf7a5f89661fa0829369a7e4896e755871efe65440bab2429387d55b919081900360600190a1505050565b5f602082840312156102b3575f80fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146102e2575f80fd5b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff81118282101715610339576103396102e9565b60405290565b6040516080810167ffffffffffffffff81118282101715610339576103396102e9565b73ffffffffffffffffffffffffffffffffffffffff81168114610383575f80fd5b50565b5f82601f830112610395575f80fd5b813567ffffffffffffffff808211156103b0576103b06102e9565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156103f6576103f66102e9565b8160405283815286602085880101111561040e575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f6020828403121561043d575f80fd5b813567ffffffffffffffff80821115610454575f80fd5b9083019060408286031215610467575f80fd5b61046f610316565b823561047a81610362565b815260208301358281111561048d575f80fd5b9290920191608083870312156104a1575f80fd5b6104a961033f565b83356104b481610362565b81526020840135838111156104c7575f80fd5b6104d388828701610386565b6020830152506040840135838111156104ea575f80fd5b6104f688828701610386565b6040830152506060840135935061050c84610362565b60608101939093526020810192909252509392505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f73ffffffffffffffffffffffffffffffffffffffff808451166020840152602084015160408085015281815116606085015260208101516080808601526105bf60e0860182610524565b905060408201517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08683030160a08701526105fa8282610524565b9150508260608301511660c086015280935050505092915050565b5f60208284031215610625575f80fd5b81516102e28161036256"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b5060043610610034575f3560e01c806301ffc9a714610038578063733e1f8d1461005f575b5f80fd5b61004b6100463660046102a3565b610074565b604051901515815260200160405180910390f35b61007261006d36600461042d565b61010c565b005b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f733e1f8d00000000000000000000000000000000000000000000000000000000148061010657507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6040517f4904fab30000000000000000000000000000000000000000000000000000000081525f9073679ab223dab158ea93e1a4f49104de436c58eab890634904fab39061015e908590600401610570565b6020604051808303815f875af115801561017a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061019e9190610615565b6040517fd786858b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201529091505f90736b4232f1046f1f1bb99a1184d886bbaf3cd7e15a9063d786858b906024016020604051808303815f875af1158015610220573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102449190610615565b6040805133815273ffffffffffffffffffffffffffffffffffffffff858116602083015283168183015290519192507fa0d99d93cf7a5f89661fa0829369a7e4896e755871efe65440bab2429387d55b919081900360600190a1505050565b5f602082840312156102b3575f80fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146102e2575f80fd5b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff81118282101715610339576103396102e9565b60405290565b6040516080810167ffffffffffffffff81118282101715610339576103396102e9565b73ffffffffffffffffffffffffffffffffffffffff81168114610383575f80fd5b50565b5f82601f830112610395575f80fd5b813567ffffffffffffffff808211156103b0576103b06102e9565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156103f6576103f66102e9565b8160405283815286602085880101111561040e575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f6020828403121561043d575f80fd5b813567ffffffffffffffff80821115610454575f80fd5b9083019060408286031215610467575f80fd5b61046f610316565b823561047a81610362565b815260208301358281111561048d575f80fd5b9290920191608083870312156104a1575f80fd5b6104a961033f565b83356104b481610362565b81526020840135838111156104c7575f80fd5b6104d388828701610386565b6020830152506040840135838111156104ea575f80fd5b6104f688828701610386565b6040830152506060840135935061050c84610362565b60608101939093526020810192909252509392505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f73ffffffffffffffffffffffffffffffffffffffff808451166020840152602084015160408085015281815116606085015260208101516080808601526105bf60e0860182610524565b905060408201517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08683030160a08701526105fa8282610524565b9150508260608301511660c086015280935050505092915050565b5f60208284031215610625575f80fd5b81516102e28161036256"; diff --git a/src/generated/0_1_5/StoxWrappedTokenVault.pointers.sol b/src/generated/0_1_5/StoxWrappedTokenVault.pointers.sol deleted file mode 100644 index 18c6e307..00000000 --- a/src/generated/0_1_5/StoxWrappedTokenVault.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x6de4c556c1811293da4ad2e509ee476f3eb635f019845087e1d2777a1b272034); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x0D99e0174DbF885ceD6AE8dEb939b0F890450099); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"6080604052348015600e575f80fd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b611de4806100d65f395ff3fe608060405234801561000f575f80fd5b50600436106101b0575f3560e01c806370a08231116100f3578063c4d66de811610093578063ce96cb771161006e578063ce96cb77146103c9578063d905777e146103dc578063dd62ed3e146103ef578063ef8b30f7146103b6575f80fd5b8063c4d66de8146103a3578063c63d75b6146102bb578063c6e6f592146103b6575f80fd5b8063a9059cbb116100ce578063a9059cbb14610357578063b3d7f6b91461036a578063b460af941461037d578063ba08765214610390575f80fd5b806370a08231146102f557806394bf804d1461033c57806395d89b411461034f575f80fd5b806323b872dd1161015e578063402d267d11610139578063402d267d146102bb578063439fab91146102cf5780634cdad506146101e45780636e553f65146102e2575f80fd5b806323b872dd14610254578063313ce5671461026757806338d52e0f14610281575f80fd5b8063095ea7b31161018e578063095ea7b3146101f75780630a28a4771461021a57806318160ddd1461022d575f80fd5b806301e1d114146101b457806306fdde03146101cf57806307a2d13a146101e4575b5f80fd5b6101bc610446565b6040519081526020015b60405180910390f35b6101d76104fe565b6040516101c69190611758565b6101bc6101f236600461178d565b6105b6565b61020a6102053660046117b8565b6105c7565b60405190151581526020016101c6565b6101bc61022836600461178d565b6105de565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02546101bc565b61020a6102623660046117e2565b6105ea565b61026f61060f565b60405160ff90911681526020016101c6565b7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546040516001600160a01b0390911681526020016101c6565b6101bc6102c9366004611820565b505f1990565b6101bc6102dd36600461183b565b610662565b6101bc6102f03660046118a7565b61089d565b6101bc610303366004611820565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00602052604090205490565b6101bc61034a3660046118a7565b6108ce565b6101d76108e9565b61020a6103653660046117b8565b61098d565b6101bc61037836600461178d565b61099a565b6101bc61038b3660046118d5565b6109a6565b6101bc61039e3660046118d5565b610a28565b6101bc6103b1366004611820565b610aa1565b6101bc6103c436600461178d565b610ad4565b6101bc6103d7366004611820565b610adf565b6101bc6103ea366004611820565b610ae8565b6101bc6103fd366004611914565b6001600160a01b039182165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b5f6104787f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa1580156104d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104f99190611940565b905090565b60606105317f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b6001600160a01b03166306fdde036040518163ffffffff1660e01b81526004015f60405180830381865afa15801561056b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526105929190810190611984565b6040516020016105a29190611a46565b604051602081830303815290604052905090565b5f6105c1825f610b24565b92915050565b5f336105d4818585610b7b565b5060019392505050565b5f6105c1826001610b8d565b5f336105f7858285610bdb565b610602858585610c8f565b60019150505b9392505050565b5f807f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e0090505f815461065c919074010000000000000000000000000000000000000000900460ff16611aa4565b91505090565b5f8061066c610d1e565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156106985750825b90505f8267ffffffffffffffff1660011480156106b45750303b155b9050811580156106c2575080155b156106f9576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166001178555831561075a5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b5f610767888a018a611820565b90506001600160a01b0381166107a9576040517f7cde9b7200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107b281610d46565b6107d860405180602001604052805f81525060405180602001604052805f815250610d5a565b6040516001600160a01b0382169033907fdf5fabff9e49f8c35d69a1f2d0c5e80c933c31cf836cf70de57e3a6e7dc86ebb905f90a37fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc396505083156108925784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505092915050565b5f5f196108ae565b60405180910390fd5b5f6108b885610ad4565b90506108c633858784610d70565b949350505050565b5f5f195f6108db8561099a565b90506108c633858388610d70565b606061091c7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b6001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015610956573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261097d9190810190611984565b6040516020016105a29190611abd565b5f336105d4818585610c8f565b5f6105c1826001610b24565b5f806109b183610adf565b905080851115610a06576040517ffe9cceec0000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101869052604481018290526064016108a5565b5f610a10866105de565b9050610a1f3386868985610de0565b95945050505050565b5f80610a3383610ae8565b905080851115610a88576040517fb94abeec0000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101869052604481018290526064016108a5565b5f610a92866105b6565b9050610a1f338686848a610de0565b5f6040517faf1fbb2100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6105c1825f610b8d565b5f6105c16101f2835b6001600160a01b0381165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0060205260408120546105c1565b5f610608610b30610446565b610b3b906001611aee565b610b465f600a611be1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254610b729190611aee565b85919085610e7f565b610b888383836001610ec1565b505050565b5f610608610b9c82600a611be1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254610bc89190611aee565b610bd0610446565b610b72906001611aee565b6001600160a01b038381165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160209081526040808320938616835292905220545f19811015610c895781811015610c7b576040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101829052604481018390526064016108a5565b610c8984848484035f610ec1565b50505050565b6001600160a01b038316610cd1576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b6001600160a01b038216610d13576040517fec442f050000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b610b88838383610fea565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006105c1565b610d4e611141565b610d5781611181565b50565b610d62611141565b610d6c8282611245565b5050565b610d7a84836112a8565b610d8483826112e4565b826001600160a01b0316846001600160a01b03167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d78484604051610dd2929190918252602082015260400190565b60405180910390a350505050565b826001600160a01b0316856001600160a01b031614610e0457610e04838683610bdb565b610e0e8382611331565b610e18848361137e565b826001600160a01b0316846001600160a01b0316866001600160a01b03167ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db8585604051610e70929190918252602082015260400190565b60405180910390a45050505050565b5f610eac610e8c836113b9565b8015610ea757505f8480610ea257610ea2611bef565b868809115b151590565b610eb78686866113e5565b610a1f9190611aee565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b038516610f24576040517fe602df050000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b6001600160a01b038416610f66576040517f94280d620000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b6001600160a01b038086165f90815260018301602090815260408083209388168352929052208390558115610fe357836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92585604051610fda91815260200190565b60405180910390a35b5050505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b0384166110375781816002015f82825461102c9190611aee565b909155506110c09050565b6001600160a01b0384165f90815260208290526040902054828110156110a2576040517fe450d38c0000000000000000000000000000000000000000000000000000000081526001600160a01b038616600482015260248101829052604481018490526064016108a5565b6001600160a01b0385165f9081526020839052604090209083900390555b6001600160a01b0383166110de5760028101805483900390556110fc565b6001600160a01b0383165f9081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610dd291815260200190565b611149611495565b61117f576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b611189611141565b7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e005f806111b5846114b3565b91509150816111c55760126111c7565b805b83547fffffffffffffffffffffff000000000000000000000000000000000000000000167401000000000000000000000000000000000000000060ff92909216919091027fffffffffffffffffffffffff000000000000000000000000000000000000000016176001600160a01b0394909416939093179091555050565b61124d611141565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace007f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace036112998482611cb1565b5060048101610c898382611cb1565b610d6c6112dc7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b83308461156c565b6001600160a01b038216611326576040517fec442f050000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b610d6c5f8383610fea565b6001600160a01b038216611373576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b610d6c825f83610fea565b610d6c6113b27f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b83836115bb565b5f60028260038111156113ce576113ce611d71565b6113d89190611d9e565b60ff166001149050919050565b5f805f6113f28686611609565b91509150815f036114165783818161140c5761140c611bef565b0492505050610608565b81841161142d5761142d6003851502601118611625565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010185841190960395909502919093039390930492909217029150509392505050565b5f61149e610d1e565b5468010000000000000000900460ff16919050565b5f805f6114bf60405190565b6040805160048152602481019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f313ce567000000000000000000000000000000000000000000000000000000001790529091505f908190611528908790611636565b509150915061153683604052565b818015611544575060203d10155b8015611551575060ff8111155b61155c575f80611560565b6001815b94509450505050915091565b61157a848484846001611657565b610c89576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b03851660048201526024016108a5565b6115c883838360016116dd565b610b88576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201526024016108a5565b5f805f1983850993909202808410938190039390930393915050565b634e487b715f52806020526024601cfd5b5f805f60405f855160208701885afa92505f51915060205190509250925092565b6040517f23b872dd000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038781166004528616602452604485905291602083606481808c5af1925060015f511483166116cc5783831516156116c0573d5f823e3d81fd5b5f883b113d1516831692505b604052505f60605295945050505050565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f5114831661174c578383151615611740573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f6020828403121561179d575f80fd5b5035919050565b6001600160a01b0381168114610d57575f80fd5b5f80604083850312156117c9575f80fd5b82356117d4816117a4565b946020939093013593505050565b5f805f606084860312156117f4575f80fd5b83356117ff816117a4565b9250602084013561180f816117a4565b929592945050506040919091013590565b5f60208284031215611830575f80fd5b8135610608816117a4565b5f806020838503121561184c575f80fd5b823567ffffffffffffffff80821115611863575f80fd5b818501915085601f830112611876575f80fd5b813581811115611884575f80fd5b866020828501011115611895575f80fd5b60209290920196919550909350505050565b5f80604083850312156118b8575f80fd5b8235915060208301356118ca816117a4565b809150509250929050565b5f805f606084860312156118e7575f80fd5b8335925060208401356118f9816117a4565b91506040840135611909816117a4565b809150509250925092565b5f8060408385031215611925575f80fd5b8235611930816117a4565b915060208301356118ca816117a4565b5f60208284031215611950575f80fd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f60208284031215611994575f80fd5b815167ffffffffffffffff808211156119ab575f80fd5b818401915084601f8301126119be575f80fd5b8151818111156119d0576119d0611957565b604051601f8201601f19908116603f011681019083821181831017156119f8576119f8611957565b81604052828152876020848701011115611a10575f80fd5b8260208601602083015e5f928101602001929092525095945050505050565b5f81518060208401855e5f93019283525090919050565b7f577261707065642000000000000000000000000000000000000000000000000081525f6106086008830184611a2f565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60ff81811683821601908111156105c1576105c1611a77565b7f770000000000000000000000000000000000000000000000000000000000000081525f6106086001830184611a2f565b808201808211156105c1576105c1611a77565b600181815b80851115611b3b57815f1904821115611b2157611b21611a77565b80851615611b2e57918102915b93841c9390800290611b06565b509250929050565b5f82611b51575060016105c1565b81611b5d57505f6105c1565b8160018114611b735760028114611b7d57611b99565b60019150506105c1565b60ff841115611b8e57611b8e611a77565b50506001821b6105c1565b5060208310610133831016604e8410600b8410161715611bbc575081810a6105c1565b611bc68383611b01565b805f1904821115611bd957611bd9611a77565b029392505050565b5f61060860ff841683611b43565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b600181811c90821680611c3057607f821691505b602082108103611c67577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b601f821115610b8857805f5260205f20601f840160051c81016020851015611c925750805b601f840160051c820191505b81811015610fe3575f8155600101611c9e565b815167ffffffffffffffff811115611ccb57611ccb611957565b611cdf81611cd98454611c1c565b84611c6d565b602080601f831160018114611d12575f8415611cfb5750858301515b5f19600386901b1c1916600185901b178555611d69565b5f85815260208120601f198616915b82811015611d4057888601518255948401946001909101908401611d21565b5085821015611d5d57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f60ff831680611dd5577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b8060ff8416069150509291505056"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b50600436106101b0575f3560e01c806370a08231116100f3578063c4d66de811610093578063ce96cb771161006e578063ce96cb77146103c9578063d905777e146103dc578063dd62ed3e146103ef578063ef8b30f7146103b6575f80fd5b8063c4d66de8146103a3578063c63d75b6146102bb578063c6e6f592146103b6575f80fd5b8063a9059cbb116100ce578063a9059cbb14610357578063b3d7f6b91461036a578063b460af941461037d578063ba08765214610390575f80fd5b806370a08231146102f557806394bf804d1461033c57806395d89b411461034f575f80fd5b806323b872dd1161015e578063402d267d11610139578063402d267d146102bb578063439fab91146102cf5780634cdad506146101e45780636e553f65146102e2575f80fd5b806323b872dd14610254578063313ce5671461026757806338d52e0f14610281575f80fd5b8063095ea7b31161018e578063095ea7b3146101f75780630a28a4771461021a57806318160ddd1461022d575f80fd5b806301e1d114146101b457806306fdde03146101cf57806307a2d13a146101e4575b5f80fd5b6101bc610446565b6040519081526020015b60405180910390f35b6101d76104fe565b6040516101c69190611758565b6101bc6101f236600461178d565b6105b6565b61020a6102053660046117b8565b6105c7565b60405190151581526020016101c6565b6101bc61022836600461178d565b6105de565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02546101bc565b61020a6102623660046117e2565b6105ea565b61026f61060f565b60405160ff90911681526020016101c6565b7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546040516001600160a01b0390911681526020016101c6565b6101bc6102c9366004611820565b505f1990565b6101bc6102dd36600461183b565b610662565b6101bc6102f03660046118a7565b61089d565b6101bc610303366004611820565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00602052604090205490565b6101bc61034a3660046118a7565b6108ce565b6101d76108e9565b61020a6103653660046117b8565b61098d565b6101bc61037836600461178d565b61099a565b6101bc61038b3660046118d5565b6109a6565b6101bc61039e3660046118d5565b610a28565b6101bc6103b1366004611820565b610aa1565b6101bc6103c436600461178d565b610ad4565b6101bc6103d7366004611820565b610adf565b6101bc6103ea366004611820565b610ae8565b6101bc6103fd366004611914565b6001600160a01b039182165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b5f6104787f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa1580156104d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104f99190611940565b905090565b60606105317f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b6001600160a01b03166306fdde036040518163ffffffff1660e01b81526004015f60405180830381865afa15801561056b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526105929190810190611984565b6040516020016105a29190611a46565b604051602081830303815290604052905090565b5f6105c1825f610b24565b92915050565b5f336105d4818585610b7b565b5060019392505050565b5f6105c1826001610b8d565b5f336105f7858285610bdb565b610602858585610c8f565b60019150505b9392505050565b5f807f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e0090505f815461065c919074010000000000000000000000000000000000000000900460ff16611aa4565b91505090565b5f8061066c610d1e565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156106985750825b90505f8267ffffffffffffffff1660011480156106b45750303b155b9050811580156106c2575080155b156106f9576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166001178555831561075a5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b5f610767888a018a611820565b90506001600160a01b0381166107a9576040517f7cde9b7200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107b281610d46565b6107d860405180602001604052805f81525060405180602001604052805f815250610d5a565b6040516001600160a01b0382169033907fdf5fabff9e49f8c35d69a1f2d0c5e80c933c31cf836cf70de57e3a6e7dc86ebb905f90a37fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc396505083156108925784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505092915050565b5f5f196108ae565b60405180910390fd5b5f6108b885610ad4565b90506108c633858784610d70565b949350505050565b5f5f195f6108db8561099a565b90506108c633858388610d70565b606061091c7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b6001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015610956573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261097d9190810190611984565b6040516020016105a29190611abd565b5f336105d4818585610c8f565b5f6105c1826001610b24565b5f806109b183610adf565b905080851115610a06576040517ffe9cceec0000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101869052604481018290526064016108a5565b5f610a10866105de565b9050610a1f3386868985610de0565b95945050505050565b5f80610a3383610ae8565b905080851115610a88576040517fb94abeec0000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101869052604481018290526064016108a5565b5f610a92866105b6565b9050610a1f338686848a610de0565b5f6040517faf1fbb2100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6105c1825f610b8d565b5f6105c16101f2835b6001600160a01b0381165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0060205260408120546105c1565b5f610608610b30610446565b610b3b906001611aee565b610b465f600a611be1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254610b729190611aee565b85919085610e7f565b610b888383836001610ec1565b505050565b5f610608610b9c82600a611be1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254610bc89190611aee565b610bd0610446565b610b72906001611aee565b6001600160a01b038381165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160209081526040808320938616835292905220545f19811015610c895781811015610c7b576040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101829052604481018390526064016108a5565b610c8984848484035f610ec1565b50505050565b6001600160a01b038316610cd1576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b6001600160a01b038216610d13576040517fec442f050000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b610b88838383610fea565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006105c1565b610d4e611141565b610d5781611181565b50565b610d62611141565b610d6c8282611245565b5050565b610d7a84836112a8565b610d8483826112e4565b826001600160a01b0316846001600160a01b03167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d78484604051610dd2929190918252602082015260400190565b60405180910390a350505050565b826001600160a01b0316856001600160a01b031614610e0457610e04838683610bdb565b610e0e8382611331565b610e18848361137e565b826001600160a01b0316846001600160a01b0316866001600160a01b03167ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db8585604051610e70929190918252602082015260400190565b60405180910390a45050505050565b5f610eac610e8c836113b9565b8015610ea757505f8480610ea257610ea2611bef565b868809115b151590565b610eb78686866113e5565b610a1f9190611aee565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b038516610f24576040517fe602df050000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b6001600160a01b038416610f66576040517f94280d620000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b6001600160a01b038086165f90815260018301602090815260408083209388168352929052208390558115610fe357836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92585604051610fda91815260200190565b60405180910390a35b5050505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b0384166110375781816002015f82825461102c9190611aee565b909155506110c09050565b6001600160a01b0384165f90815260208290526040902054828110156110a2576040517fe450d38c0000000000000000000000000000000000000000000000000000000081526001600160a01b038616600482015260248101829052604481018490526064016108a5565b6001600160a01b0385165f9081526020839052604090209083900390555b6001600160a01b0383166110de5760028101805483900390556110fc565b6001600160a01b0383165f9081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610dd291815260200190565b611149611495565b61117f576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b611189611141565b7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e005f806111b5846114b3565b91509150816111c55760126111c7565b805b83547fffffffffffffffffffffff000000000000000000000000000000000000000000167401000000000000000000000000000000000000000060ff92909216919091027fffffffffffffffffffffffff000000000000000000000000000000000000000016176001600160a01b0394909416939093179091555050565b61124d611141565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace007f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace036112998482611cb1565b5060048101610c898382611cb1565b610d6c6112dc7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b83308461156c565b6001600160a01b038216611326576040517fec442f050000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b610d6c5f8383610fea565b6001600160a01b038216611373576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b610d6c825f83610fea565b610d6c6113b27f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b83836115bb565b5f60028260038111156113ce576113ce611d71565b6113d89190611d9e565b60ff166001149050919050565b5f805f6113f28686611609565b91509150815f036114165783818161140c5761140c611bef565b0492505050610608565b81841161142d5761142d6003851502601118611625565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010185841190960395909502919093039390930492909217029150509392505050565b5f61149e610d1e565b5468010000000000000000900460ff16919050565b5f805f6114bf60405190565b6040805160048152602481019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f313ce567000000000000000000000000000000000000000000000000000000001790529091505f908190611528908790611636565b509150915061153683604052565b818015611544575060203d10155b8015611551575060ff8111155b61155c575f80611560565b6001815b94509450505050915091565b61157a848484846001611657565b610c89576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b03851660048201526024016108a5565b6115c883838360016116dd565b610b88576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201526024016108a5565b5f805f1983850993909202808410938190039390930393915050565b634e487b715f52806020526024601cfd5b5f805f60405f855160208701885afa92505f51915060205190509250925092565b6040517f23b872dd000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038781166004528616602452604485905291602083606481808c5af1925060015f511483166116cc5783831516156116c0573d5f823e3d81fd5b5f883b113d1516831692505b604052505f60605295945050505050565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f5114831661174c578383151615611740573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f6020828403121561179d575f80fd5b5035919050565b6001600160a01b0381168114610d57575f80fd5b5f80604083850312156117c9575f80fd5b82356117d4816117a4565b946020939093013593505050565b5f805f606084860312156117f4575f80fd5b83356117ff816117a4565b9250602084013561180f816117a4565b929592945050506040919091013590565b5f60208284031215611830575f80fd5b8135610608816117a4565b5f806020838503121561184c575f80fd5b823567ffffffffffffffff80821115611863575f80fd5b818501915085601f830112611876575f80fd5b813581811115611884575f80fd5b866020828501011115611895575f80fd5b60209290920196919550909350505050565b5f80604083850312156118b8575f80fd5b8235915060208301356118ca816117a4565b809150509250929050565b5f805f606084860312156118e7575f80fd5b8335925060208401356118f9816117a4565b91506040840135611909816117a4565b809150509250925092565b5f8060408385031215611925575f80fd5b8235611930816117a4565b915060208301356118ca816117a4565b5f60208284031215611950575f80fd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f60208284031215611994575f80fd5b815167ffffffffffffffff808211156119ab575f80fd5b818401915084601f8301126119be575f80fd5b8151818111156119d0576119d0611957565b604051601f8201601f19908116603f011681019083821181831017156119f8576119f8611957565b81604052828152876020848701011115611a10575f80fd5b8260208601602083015e5f928101602001929092525095945050505050565b5f81518060208401855e5f93019283525090919050565b7f577261707065642000000000000000000000000000000000000000000000000081525f6106086008830184611a2f565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60ff81811683821601908111156105c1576105c1611a77565b7f770000000000000000000000000000000000000000000000000000000000000081525f6106086001830184611a2f565b808201808211156105c1576105c1611a77565b600181815b80851115611b3b57815f1904821115611b2157611b21611a77565b80851615611b2e57918102915b93841c9390800290611b06565b509250929050565b5f82611b51575060016105c1565b81611b5d57505f6105c1565b8160018114611b735760028114611b7d57611b99565b60019150506105c1565b60ff841115611b8e57611b8e611a77565b50506001821b6105c1565b5060208310610133831016604e8410600b8410161715611bbc575081810a6105c1565b611bc68383611b01565b805f1904821115611bd957611bd9611a77565b029392505050565b5f61060860ff841683611b43565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b600181811c90821680611c3057607f821691505b602082108103611c67577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b601f821115610b8857805f5260205f20601f840160051c81016020851015611c925750805b601f840160051c820191505b81811015610fe3575f8155600101611c9e565b815167ffffffffffffffff811115611ccb57611ccb611957565b611cdf81611cd98454611c1c565b84611c6d565b602080601f831160018114611d12575f8415611cfb5750858301515b5f19600386901b1c1916600185901b178555611d69565b5f85815260208120601f198616915b82811015611d4057888601518255948401946001909101908401611d21565b5085821015611d5d57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f60ff831680611dd5577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b8060ff8416069150509291505056"; diff --git a/src/generated/0_1_5/StoxWrappedTokenVaultBeacon.pointers.sol b/src/generated/0_1_5/StoxWrappedTokenVaultBeacon.pointers.sol deleted file mode 100644 index 438a674d..00000000 --- a/src/generated/0_1_5/StoxWrappedTokenVaultBeacon.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x8e95867e52db417944afd90f3b6c3c980962831e8a944e7f6958ba8f8cc10630); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x9FD790f65CA3aF2772358c653F097f0a4c7EE7d2); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"608060405234801561000f575f80fd5b50730d99e0174dbf885ced6ae8deb939b0f890450099738e4bdeec7ceb9570d440676345da1dce10329f5b80610049565b60405180910390fd5b61005281610063565b5061005c826100b2565b5050610130565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b806001600160a01b03163b5f036100e75760405163211eb15960e21b81526001600160a01b0382166004820152602401610040565b600180546001600160a01b0319166001600160a01b0383169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b61035a8061013d5f395ff3fe608060405234801561000f575f80fd5b5060043610610064575f3560e01c8063715018a61161004d578063715018a6146100c05780638da5cb5b146100c8578063f2fde38b146100e5575f80fd5b80633659cfe6146100685780635c60da1b1461007d575b5f80fd5b61007b610076366004610320565b6100f8565b005b60015473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61007b61010c565b5f5473ffffffffffffffffffffffffffffffffffffffff16610097565b61007b6100f3366004610320565b61011f565b610100610184565b610109816101d6565b50565b610114610184565b61011d5f6102ac565b565b610127610184565b73ffffffffffffffffffffffffffffffffffffffff811661017b576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f60048201526024015b60405180910390fd5b610109816102ac565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461011d576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610172565b8073ffffffffffffffffffffffffffffffffffffffff163b5f0361023e576040517f847ac56400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602401610172565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f60208284031215610330575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610353575f80fd5b939250505056"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b5060043610610064575f3560e01c8063715018a61161004d578063715018a6146100c05780638da5cb5b146100c8578063f2fde38b146100e5575f80fd5b80633659cfe6146100685780635c60da1b1461007d575b5f80fd5b61007b610076366004610320565b6100f8565b005b60015473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61007b61010c565b5f5473ffffffffffffffffffffffffffffffffffffffff16610097565b61007b6100f3366004610320565b61011f565b610100610184565b610109816101d6565b50565b610114610184565b61011d5f6102ac565b565b610127610184565b73ffffffffffffffffffffffffffffffffffffffff811661017b576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f60048201526024015b60405180910390fd5b610109816102ac565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461011d576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610172565b8073ffffffffffffffffffffffffffffffffffffffff163b5f0361023e576040517f847ac56400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602401610172565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f60208284031215610330575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610353575f80fd5b939250505056"; diff --git a/src/generated/0_1_5/StoxWrappedTokenVaultBeaconSetDeployer.pointers.sol b/src/generated/0_1_5/StoxWrappedTokenVaultBeaconSetDeployer.pointers.sol deleted file mode 100644 index 231752f1..00000000 --- a/src/generated/0_1_5/StoxWrappedTokenVaultBeaconSetDeployer.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x940e3ab4278cf7ae44026596f4f32dc5c7f3facd99ef8070c63b5cfefd49a47c); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x6B4232f1046F1f1bb99a1184D886bBaF3Cd7e15A); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"6080604052348015600e575f80fd5b506109468061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c806301ffc9a714610038578063d786858b14610060575b5f80fd5b61004b610046366004610333565b610098565b60405190151581526020015b60405180910390f35b61007361006e366004610379565b610130565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610057565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fd786858b00000000000000000000000000000000000000000000000000000000148061012a57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff821661017e576040517fe51a7ce200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f739fd790f65ca3af2772358c653f097f0a4c7ee7d26040516101a090610326565b73ffffffffffffffffffffffffffffffffffffffff90911681526040602082018190525f90820152606001604051809103905ff0801580156101e4573d5f803e3d5ffd5b506040805133815273ffffffffffffffffffffffffffffffffffffffff831660208201529192507f82488d8ab594db2178e4a45b7106aaa804836e608f001b5d7fcb6c3514730b3e910160405180910390a16040805173ffffffffffffffffffffffffffffffffffffffff85811660208301527fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc3929084169163439fab9191016040516020818303038152906040526040518263ffffffff1660e01b81526004016102af91906103ac565b6020604051808303815f875af11580156102cb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ef91906103ff565b1461012a576040517f09c5931500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61052f8061041783390190565b5f60208284031215610343575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610372575f80fd5b9392505050565b5f60208284031215610389575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610372575f80fd5b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b5f6020828403121561040f575f80fd5b505191905056fe60a060405260405161052f38038061052f83398101604081905261002291610331565b61002c828261003e565b506001600160a01b031660805261040d565b610047826100fb565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a28051156100ef576100ea826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e491906103ed565b82610209565b505050565b6100f76102aa565b5050565b806001600160a01b03163b5f0361013557604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b815290515f92841691635c60da1b9160048083019260209291908290030181865afa1580156101ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d291906103ed565b9050806001600160a01b03163b5f036100f757604051634c9c8ce360e01b81526001600160a01b038216600482015260240161012c565b60605f61021684846102cb565b905080801561023757505f3d118061023757505f846001600160a01b03163b115b1561024c576102446102de565b9150506102a4565b801561027657604051639996b31560e01b81526001600160a01b038516600482015260240161012c565b3d15610289576102846102f7565b6102a2565b60405163d6bda27560e01b815260040160405180910390fd5b505b92915050565b34156102c95760405163b398979f60e01b815260040160405180910390fd5b565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b6040513d5f823e3d81fd5b80516001600160a01b0381168114610318575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215610342575f80fd5b61034b83610302565b60208401519092506001600160401b0380821115610367575f80fd5b818501915085601f83011261037a575f80fd5b81518181111561038c5761038c61031d565b604051601f8201601f19908116603f011681019083821181831017156103b4576103b461031d565b816040528281528860208487010111156103cc575f80fd5b8260208601602083015e5f6020848301015280955050505050509250929050565b5f602082840312156103fd575f80fd5b61040682610302565b9392505050565b60805161010b6104245f395f6023015261010b5ff3fe608060405261000c61000e565b005b61001e610019610020565b6100b3565b565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561008a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100ae91906100d1565b905090565b365f80375f80365f845af43d5f803e8080156100cd573d5ff35b3d5ffd5b5f602082840312156100e1575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610104575f80fd5b939250505056"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b5060043610610034575f3560e01c806301ffc9a714610038578063d786858b14610060575b5f80fd5b61004b610046366004610333565b610098565b60405190151581526020015b60405180910390f35b61007361006e366004610379565b610130565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610057565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fd786858b00000000000000000000000000000000000000000000000000000000148061012a57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff821661017e576040517fe51a7ce200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f739fd790f65ca3af2772358c653f097f0a4c7ee7d26040516101a090610326565b73ffffffffffffffffffffffffffffffffffffffff90911681526040602082018190525f90820152606001604051809103905ff0801580156101e4573d5f803e3d5ffd5b506040805133815273ffffffffffffffffffffffffffffffffffffffff831660208201529192507f82488d8ab594db2178e4a45b7106aaa804836e608f001b5d7fcb6c3514730b3e910160405180910390a16040805173ffffffffffffffffffffffffffffffffffffffff85811660208301527fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc3929084169163439fab9191016040516020818303038152906040526040518263ffffffff1660e01b81526004016102af91906103ac565b6020604051808303815f875af11580156102cb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ef91906103ff565b1461012a576040517f09c5931500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61052f8061041783390190565b5f60208284031215610343575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610372575f80fd5b9392505050565b5f60208284031215610389575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610372575f80fd5b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b5f6020828403121561040f575f80fd5b505191905056fe60a060405260405161052f38038061052f83398101604081905261002291610331565b61002c828261003e565b506001600160a01b031660805261040d565b610047826100fb565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a28051156100ef576100ea826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e491906103ed565b82610209565b505050565b6100f76102aa565b5050565b806001600160a01b03163b5f0361013557604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b815290515f92841691635c60da1b9160048083019260209291908290030181865afa1580156101ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d291906103ed565b9050806001600160a01b03163b5f036100f757604051634c9c8ce360e01b81526001600160a01b038216600482015260240161012c565b60605f61021684846102cb565b905080801561023757505f3d118061023757505f846001600160a01b03163b115b1561024c576102446102de565b9150506102a4565b801561027657604051639996b31560e01b81526001600160a01b038516600482015260240161012c565b3d15610289576102846102f7565b6102a2565b60405163d6bda27560e01b815260040160405180910390fd5b505b92915050565b34156102c95760405163b398979f60e01b815260040160405180910390fd5b565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b6040513d5f823e3d81fd5b80516001600160a01b0381168114610318575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215610342575f80fd5b61034b83610302565b60208401519092506001600160401b0380821115610367575f80fd5b818501915085601f83011261037a575f80fd5b81518181111561038c5761038c61031d565b604051601f8201601f19908116603f011681019083821181831017156103b4576103b461031d565b816040528281528860208487010111156103cc575f80fd5b8260208601602083015e5f6020848301015280955050505050509250929050565b5f602082840312156103fd575f80fd5b61040682610302565b9392505050565b60805161010b6104245f395f6023015261010b5ff3fe608060405261000c61000e565b005b61001e610019610020565b6100b3565b565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561008a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100ae91906100d1565b905090565b365f80375f80365f845af43d5f803e8080156100cd573d5ff35b3d5ffd5b5f602082840312156100e1575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610104575f80fd5b939250505056"; diff --git a/src/generated/0_1_6/ST0xOrchestrator.pointers.sol b/src/generated/0_1_6/ST0xOrchestrator.pointers.sol deleted file mode 100644 index 9fe30271..00000000 --- a/src/generated/0_1_6/ST0xOrchestrator.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x7537448e8cbb200d25651a941a39e465e2ef7a549fe8245d83774bef485629e6); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x0099FcB947Cc31E21C631478A2a9E2E591cd4010); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"6080604052348015600e575f80fd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6131c0806100d65f395ff3fe608060405260043610610191575f3560e01c8063742fabb3116100dc578063b930908f11610087578063d547741f11610062578063d547741f14610594578063e9a9c850146105b3578063f14893a7146105e6578063f23a6e6114610605575f80fd5b8063b930908f146104f2578063bc197c8114610525578063c4d66de814610575575f80fd5b806391d14854116100b757806391d148541461045d5780639cb887f8146104c0578063a217fddf146104df575f80fd5b8063742fabb3146103cf578063752c9cf51461042257806384b0196e14610436575f80fd5b80633b94a0dd1161013c57806344d171871161011757806344d1718714610372578063584f418e14610391578063671d083f146103b0575f80fd5b80633b94a0dd146103015780633e81e40d146103345780633f6fc76f14610353575f80fd5b8063248a9ca31161016c578063248a9ca3146102745780632f2ff15d146102c157806336568abe146102e2575f80fd5b806301ffc9a71461019c5780630e230f97146101d057806320df435914610233575f80fd5b3661019857005b5f80fd5b3480156101a7575f80fd5b506101bb6101b6366004612944565b610624565b60405190151581526020015b60405180910390f35b3480156101db575f80fd5b506101bb6101ea366004612973565b6001600160a01b03919091165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be70160209081526040808320938352929052205460ff1690565b34801561023e575f80fd5b506102667f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de81565b6040519081526020016101c7565b34801561027f575f80fd5b5061026661028e36600461299d565b5f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b3480156102cc575f80fd5b506102e06102db3660046129b4565b6106cb565b005b3480156102ed575f80fd5b506102e06102fc3660046129b4565b610714565b34801561030c575f80fd5b506102667f8381bcc05e5203d9456aa7185a19b2be5d4af37909fecf63a6f2016c1bf8413381565b34801561033f575f80fd5b5061026661034e3660046129e2565b610765565b34801561035e575f80fd5b506102e061036d366004612a25565b61077b565b34801561037d575f80fd5b506102e061038c366004612aa9565b610816565b34801561039c575f80fd5b506102e06103ab366004612b01565b610979565b3480156103bb575f80fd5b506102e06103ca366004612b48565b610af3565b3480156103da575f80fd5b506102666103e9366004612be2565b6001600160a01b03165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be700602052604090205490565b34801561042d575f80fd5b506101bb610cbc565b348015610441575f80fd5b5061044a610eb1565b6040516101c79796959493929190612c2b565b348015610468575f80fd5b506101bb6104773660046129b4565b5f9182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3480156104cb575f80fd5b506102e06104da366004612973565b610f0f565b3480156104ea575f80fd5b506102665f81565b3480156104fd575f80fd5b506102667f04c6a47ae7910ef8b295215a97e8495a9eaf57b7b05bfd8bf951edb3fd4a16a381565b348015610530575f80fd5b5061054461053f366004612d1f565b610fc5565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016101c7565b348015610580575f80fd5b506102e061058f366004612be2565b611054565b34801561059f575f80fd5b506102e06105ae3660046129b4565b611283565b3480156105be575f80fd5b506102667ffdf81848136595c31bb5f76217767372bc4bf906663038eb38381131ea27ecba81565b3480156105f1575f80fd5b506102e0610600366004612b01565b6112c6565b348015610610575f80fd5b5061054461061f366004612dd6565b6113ce565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f4e2312e00000000000000000000000000000000000000000000000000000000014806106b657507fffffffff0000000000000000000000000000000000000000000000000000000082167f18bd37da00000000000000000000000000000000000000000000000000000000145b806106c557506106c58261140b565b92915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020526040902060010154610704816114a1565b61070e83836114ae565b50505050565b6001600160a01b0381163314610756576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610760828261157a565b505050565b5f6107728585858561161e565b95945050505050565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de6107a5816114a1565b6107ad611694565b6107c16001600160a01b03851683856116cb565b816001600160a01b0316846001600160a01b03167f4810d2f105dcba10d740b4ac1d8fa8454dd37014b2051bace1edb1d903c440c48560405161080691815260200190565b60405180910390a361070e611719565b7f04c6a47ae7910ef8b295215a97e8495a9eaf57b7b05bfd8bf951edb3fd4a16a3610840816114a1565b610848611743565b610850611694565b835f03610889576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61089e6001600160a01b0386163330876119d5565b6001600160a01b0385165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be70060209081526040808320548151601f8701849004840281018401909252858252929161091791899189919089908990819084018382808284375f92019190915250611a2492505050565b60408051888152602081018590529081018290529091506001600160a01b0388169033907f112766730ce440487945c01048dacfc6d04340403f675871e96c4e28cf622ecc9060600160405180910390a35050610972611719565b5050505050565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de6109a3816114a1565b6109ab611694565b846001600160a01b031663e1e6b8986040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109e7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a0b9190612e3b565b6040517ff242432a0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038481166024830152604482018790526064820186905260a060848301525f60a4830152919091169063f242432a9060c4015f604051808303815f87803b158015610a87575f80fd5b505af1158015610a99573d5f803e3d5ffd5b5050505083826001600160a01b0316866001600160a01b03167fc9e640d2eb1b8469e42f60a66fef6a05cfd27ee3757e48f3f8ba04ecbc8a51b086604051610ae391815260200190565b60405180910390a4610972611719565b7ffdf81848136595c31bb5f76217767372bc4bf906663038eb38381131ea27ecba610b1d816114a1565b610b25611743565b610b2d611694565b845f03610b66576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b7287878787611d57565b6040517fc77b66c20000000000000000000000000000000000000000000000000000000081525f906001600160a01b0389169063c77b66c290610bc1908990309086908a908a90600401612e56565b6020604051808303815f875af1158015610bdd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c019190612ea2565b9050858114610c4b576040517fbe40f1fc00000000000000000000000000000000000000000000000000000000815260048101879052602481018290526044015b60405180910390fd5b610c5f6001600160a01b03891688886116cb565b60408051878152863560208201526001600160a01b03808a1692908b169133917f7c0eac1a8d30fbe7a577affc3b588a0b7d965a6133d12097cfac0760f2f2b617910160405180910390a450610cb3611719565b50505050505050565b5f8073679ab223dab158ea93e1a4f49104de436c58eab8905073d7f91c1c6e6e651ec3f1fd707af7cbb7526206e16001600160a01b0316816001600160a01b0316632f77a1c16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d2f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d539190612e3b565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d8e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610db29190612e3b565b6001600160a01b0316148015610eab5750732df5cfe6d688ef9ff1b7c59a499d254b1527b2866001600160a01b0316816001600160a01b0316632c9b7f406040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e1d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e419190612e3b565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e7c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ea09190612e3b565b6001600160a01b0316145b91505090565b5f6060805f805f6060610ec2611e95565b610eca611f68565b604080515f808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009b939a50919850469750309650945092509050565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de610f39816114a1565b610f41611694565b5f7f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be7006001600160a01b0385165f818152602083815260409182902080549088905582518181529182018890529394507fc6ce8282d3b57b159503fa5566e612aeb9f30c8e20c882398c9cb293c1ba6d68910160405180910390a25050610760611719565b5f805b86811015611025578481108015610ff657505f868683818110610fed57610fed612ee6565b90506020020135115b1561101d5761101d3389898481811061101157611011612ee6565b90506020020135611fb9565b600101610fc8565b507fbc197c81000000000000000000000000000000000000000000000000000000009998505050505050505050565b5f61105d612222565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156110895750825b90505f8267ffffffffffffffff1660011480156110a55750303b155b9050811580156110b3575080155b156110ea576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166001178555831561114b5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6001600160a01b03861661118b576040517f9905827b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611193611743565b61119b61224a565b61120f6040518060400160405280601081526020017f535430784f7263686573747261746f72000000000000000000000000000000008152506040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250612252565b6112195f876114ae565b50831561127b5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680060205260409020600101546112bc816114a1565b61070e838361157a565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de6112f0816114a1565b6112f8611694565b6040517ff242432a0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038381166024830152604482018690526064820185905260a060848301525f60a483015286169063f242432a9060c4015f604051808303815f87803b158015611372575f80fd5b505af1158015611384573d5f803e3d5ffd5b5050505083826001600160a01b0316866001600160a01b03167f78b19b4b6e69e380c3c303d1e889d510ee3ee409219c1c014d97a0a607b6c6a686604051610ae391815260200190565b5f83156113df576113df3386611fb9565b507ff23a6e61000000000000000000000000000000000000000000000000000000009695505050505050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806106c557507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146106c5565b6114ab8133612268565b50565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff16611571575f848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556115273390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506106c5565b5f9150506106c5565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff1615611571575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506106c5565b604080517f8381bcc05e5203d9456aa7185a19b2be5d4af37909fecf63a6f2016c1bf8413360208201526001600160a01b038087169282019290925290841660608201526080810183905260a081018290525f906107729060c001604051602081830303815290604052805190602001206122f4565b61169c61233b565b6116c960017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005b90612394565b565b6116d8838383600161239b565b610760576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610c42565b6116c95f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f006116c3565b5f73679ab223dab158ea93e1a4f49104de436c58eab890505f816001600160a01b0316632f77a1c16040518163ffffffff1660e01b8152600401602060405180830381865afa158015611798573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117bc9190612e3b565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117f7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061181b9190612e3b565b90506001600160a01b03811673d7f91c1c6e6e651ec3f1fd707af7cbb7526206e114611898576040517fdfdb61b700000000000000000000000000000000000000000000000000000000815273d7f91c1c6e6e651ec3f1fd707af7cbb7526206e160048201526001600160a01b0382166024820152604401610c42565b5f826001600160a01b0316632c9b7f406040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118f99190612e3b565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611934573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119589190612e3b565b90506001600160a01b038116732df5cfe6d688ef9ff1b7c59a499d254b1527b28614610760576040517f3e4077b3000000000000000000000000000000000000000000000000000000008152732df5cfe6d688ef9ff1b7c59a499d254b1527b28660048201526001600160a01b0382166024820152604401610c42565b6119e3848484846001612416565b61070e576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610c42565b5f808490505f816001600160a01b031663e1e6b8986040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a66573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a8a9190612e3b565b90507f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be7005f015f876001600160a01b03166001600160a01b031681526020019081526020015f205492505f826001600160a01b031663f5d214f56040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b10573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b349190612ea2565b90505b8515611d125780841115611b89576040517f66a21a2d0000000000000000000000000000000000000000000000000000000081526001600160a01b038816600482015260248101879052604401610c42565b6040517efdd58e000000000000000000000000000000000000000000000000000000008152306004820152602481018590525f906001600160a01b0384169062fdd58e90604401602060405180830381865afa158015611beb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c0f9190612ea2565b9050805f03611c245750600190930192611b37565b5f818810611c325781611c34565b875b90505f856001600160a01b031663921a4c428330308b8d6040518663ffffffff1660e01b8152600401611c6b959493929190612f13565b6020604051808303815f875af1158015611c87573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cab9190612ea2565b9050818114611cf0576040517fbe40f1fc0000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610c42565b611cfa828a612f55565b9850828203611d0a576001909601955b505050611b37565b5050506001600160a01b03939093165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be700602052604090208390555090919050565b6001600160a01b0383165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be70160209081526040808320843584529091529020547f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be7009060ff1615611e08576040517f59c210430000000000000000000000000000000000000000000000000000000081526001600160a01b038516600482015282356024820152604401610c42565b6001600160a01b0384165f90815260018281016020908152604080842086358086529252909220805460ff19169091179055610972908590611e4f9088908390889061161e565b611e5c6020860186612f8d565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061249c92505050565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10280546060917fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10091611ee690612fee565b80601f0160208091040260200160405190810160405280929190818152602001828054611f1290612fee565b8015611f5d5780601f10611f3457610100808354040283529160200191611f5d565b820191905f5260205f20905b815481529060010190602001808311611f4057829003601f168201915b505050505091505090565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10380546060917fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10091611ee690612fee565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f481c6a750000000000000000000000000000000000000000000000000000000017905290515f9182916001600160a01b038616916120299161303f565b5f60405180830381855afa9150503d805f8114612061576040519150601f19603f3d011682016040523d82523d5f602084013e612066565b606091505b509150915081158061207a57508051602014155b156120855750505050565b5f61208f82613055565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe1e6b8980000000000000000000000000000000000000000000000000000000017905290519192506001600160a01b038316916120ff919061303f565b5f60405180830381855afa9150503d805f8114612137576040519150601f19603f3d011682016040523d82523d5f602084013e61213c565b606091505b50909350915082158061215157508151602014155b1561215d575050505050565b6001600160a01b03851661217083613055565b6001600160a01b031614612185575050505050565b6001600160a01b0381165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be700602081905260409091205480861015610cb3576001600160a01b0383165f818152602084815260409182902089905581518481529081018990527f2008c207f65bedc2bb65dc8ac34aee36a37cd43a50152d574107c63ace7e07c6910160405180910390a250505050505050565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006106c5565b6116c96125cb565b61225a6125cb565b6122648282612609565b5050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038516845290915290205460ff16612264576040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015260248101839052604401610c42565b5f6106c561230061266c565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c156116c9576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80825d5050565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f5114831661240a5783831516156123fe573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b6040517f23b872dd000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038781166004528616602452604485905291602083606481808c5af1925060015f5114831661248b57838315161561247f573d5f823e3d81fd5b5f883b113d1516831692505b604052505f60605295945050505050565b8051156124e4576124ae83838361267a565b610760576040517f19ab93cc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f642ddf3a0000000000000000000000000000000000000000000000000000000080825260048201849052906001600160a01b0385169063642ddf3a906024016020604051808303815f875af1158015612543573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125679190613078565b7fffffffff000000000000000000000000000000000000000000000000000000001614610760576040517f22b89c080000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610c42565b6125d36126ed565b6116c9576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6126116125cb565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1007fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10261265d84826130d7565b506003810161070e83826130d7565b5f61267561270b565b905090565b5f836001600160a01b03163b5f036126d8575f80612698858561277e565b5090925090505f8160038111156126b1576126b1613193565b1480156126cf5750856001600160a01b0316826001600160a01b0316145b925050506126e6565b6126e38484846127c7565b90505b9392505050565b5f6126f6612222565b5468010000000000000000900460ff16919050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f612735612831565b61273d612846565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f805f83516041036127b5576020840151604085015160608601515f1a6127a78882858561284f565b9550955095505050506127c0565b505081515f91506002905b9250925092565b8051604080517f1626ba7e000000000000000000000000000000000000000000000000000000008082526004820186905260248201929092525f92906020820185604483015e60205f60648401838a5afa9050825f5114601f3d1116811693505050509392505050565b5f61283a611e95565b80519060200120905090565b5f61283a611f68565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561288857505f9150600390508261290d565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa1580156128d9573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b03811661290457505f92506001915082905061290d565b92505f91508190505b9450945094915050565b7fffffffff00000000000000000000000000000000000000000000000000000000811681146114ab575f80fd5b5f60208284031215612954575f80fd5b81356126e681612917565b6001600160a01b03811681146114ab575f80fd5b5f8060408385031215612984575f80fd5b823561298f8161295f565b946020939093013593505050565b5f602082840312156129ad575f80fd5b5035919050565b5f80604083850312156129c5575f80fd5b8235915060208301356129d78161295f565b809150509250929050565b5f805f80608085870312156129f5575f80fd5b8435612a008161295f565b93506020850135612a108161295f565b93969395505050506040820135916060013590565b5f805f60608486031215612a37575f80fd5b8335612a428161295f565b9250602084013591506040840135612a598161295f565b809150509250925092565b5f8083601f840112612a74575f80fd5b50813567ffffffffffffffff811115612a8b575f80fd5b602083019150836020828501011115612aa2575f80fd5b9250929050565b5f805f8060608587031215612abc575f80fd5b8435612ac78161295f565b935060208501359250604085013567ffffffffffffffff811115612ae9575f80fd5b612af587828801612a64565b95989497509550505050565b5f805f8060808587031215612b14575f80fd5b8435612b1f8161295f565b935060208501359250604085013591506060850135612b3d8161295f565b939692955090935050565b5f805f805f8060a08789031215612b5d575f80fd5b8635612b688161295f565b95506020870135612b788161295f565b945060408701359350606087013567ffffffffffffffff80821115612b9b575f80fd5b908801906040828b031215612bae575f80fd5b90935060808801359080821115612bc3575f80fd5b50612bd089828a01612a64565b979a9699509497509295939492505050565b5f60208284031215612bf2575f80fd5b81356126e68161295f565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b7fff00000000000000000000000000000000000000000000000000000000000000881681525f602060e06020840152612c6760e084018a612bfd565b8381036040850152612c79818a612bfd565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825260208088019350909101905f5b81811015612ccc57835183529284019291840191600101612cb0565b50909c9b505050505050505050505050565b5f8083601f840112612cee575f80fd5b50813567ffffffffffffffff811115612d05575f80fd5b6020830191508360208260051b8501011115612aa2575f80fd5b5f805f805f805f8060a0898b031215612d36575f80fd5b8835612d418161295f565b97506020890135612d518161295f565b9650604089013567ffffffffffffffff80821115612d6d575f80fd5b612d798c838d01612cde565b909850965060608b0135915080821115612d91575f80fd5b612d9d8c838d01612cde565b909650945060808b0135915080821115612db5575f80fd5b50612dc28b828c01612a64565b999c989b5096995094979396929594505050565b5f805f805f8060a08789031215612deb575f80fd5b8635612df68161295f565b95506020870135612e068161295f565b94506040870135935060608701359250608087013567ffffffffffffffff811115612e2f575f80fd5b612bd089828a01612a64565b5f60208284031215612e4b575f80fd5b81516126e68161295f565b8581526001600160a01b038516602082015283604082015260806060820152816080820152818360a08301375f81830160a090810191909152601f909201601f19160101949350505050565b5f60208284031215612eb2575f80fd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b8581525f6001600160a01b03808716602084015280861660408401525083606083015260a06080830152612f4a60a0830184612bfd565b979650505050505050565b818103818111156106c5577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612fc0575f80fd5b83018035915067ffffffffffffffff821115612fda575f80fd5b602001915036819003821315612aa2575f80fd5b600181811c9082168061300257607f821691505b602082108103613039577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b5f82518060208501845e5f920191825250919050565b80516020808301519190811015613039575f1960209190910360031b1b16919050565b5f60208284031215613088575f80fd5b81516126e681612917565b601f82111561076057805f5260205f20601f840160051c810160208510156130b85750805b601f840160051c820191505b81811015610972575f81556001016130c4565b815167ffffffffffffffff8111156130f1576130f1612eb9565b613105816130ff8454612fee565b84613093565b602080601f831160018114613138575f84156131215750858301515b5f19600386901b1c1916600185901b17855561127b565b5f85815260208120601f198616915b8281101561316657888601518255948401946001909101908401613147565b508582101561318357878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405260043610610191575f3560e01c8063742fabb3116100dc578063b930908f11610087578063d547741f11610062578063d547741f14610594578063e9a9c850146105b3578063f14893a7146105e6578063f23a6e6114610605575f80fd5b8063b930908f146104f2578063bc197c8114610525578063c4d66de814610575575f80fd5b806391d14854116100b757806391d148541461045d5780639cb887f8146104c0578063a217fddf146104df575f80fd5b8063742fabb3146103cf578063752c9cf51461042257806384b0196e14610436575f80fd5b80633b94a0dd1161013c57806344d171871161011757806344d1718714610372578063584f418e14610391578063671d083f146103b0575f80fd5b80633b94a0dd146103015780633e81e40d146103345780633f6fc76f14610353575f80fd5b8063248a9ca31161016c578063248a9ca3146102745780632f2ff15d146102c157806336568abe146102e2575f80fd5b806301ffc9a71461019c5780630e230f97146101d057806320df435914610233575f80fd5b3661019857005b5f80fd5b3480156101a7575f80fd5b506101bb6101b6366004612944565b610624565b60405190151581526020015b60405180910390f35b3480156101db575f80fd5b506101bb6101ea366004612973565b6001600160a01b03919091165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be70160209081526040808320938352929052205460ff1690565b34801561023e575f80fd5b506102667f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de81565b6040519081526020016101c7565b34801561027f575f80fd5b5061026661028e36600461299d565b5f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b3480156102cc575f80fd5b506102e06102db3660046129b4565b6106cb565b005b3480156102ed575f80fd5b506102e06102fc3660046129b4565b610714565b34801561030c575f80fd5b506102667f8381bcc05e5203d9456aa7185a19b2be5d4af37909fecf63a6f2016c1bf8413381565b34801561033f575f80fd5b5061026661034e3660046129e2565b610765565b34801561035e575f80fd5b506102e061036d366004612a25565b61077b565b34801561037d575f80fd5b506102e061038c366004612aa9565b610816565b34801561039c575f80fd5b506102e06103ab366004612b01565b610979565b3480156103bb575f80fd5b506102e06103ca366004612b48565b610af3565b3480156103da575f80fd5b506102666103e9366004612be2565b6001600160a01b03165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be700602052604090205490565b34801561042d575f80fd5b506101bb610cbc565b348015610441575f80fd5b5061044a610eb1565b6040516101c79796959493929190612c2b565b348015610468575f80fd5b506101bb6104773660046129b4565b5f9182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3480156104cb575f80fd5b506102e06104da366004612973565b610f0f565b3480156104ea575f80fd5b506102665f81565b3480156104fd575f80fd5b506102667f04c6a47ae7910ef8b295215a97e8495a9eaf57b7b05bfd8bf951edb3fd4a16a381565b348015610530575f80fd5b5061054461053f366004612d1f565b610fc5565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016101c7565b348015610580575f80fd5b506102e061058f366004612be2565b611054565b34801561059f575f80fd5b506102e06105ae3660046129b4565b611283565b3480156105be575f80fd5b506102667ffdf81848136595c31bb5f76217767372bc4bf906663038eb38381131ea27ecba81565b3480156105f1575f80fd5b506102e0610600366004612b01565b6112c6565b348015610610575f80fd5b5061054461061f366004612dd6565b6113ce565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f4e2312e00000000000000000000000000000000000000000000000000000000014806106b657507fffffffff0000000000000000000000000000000000000000000000000000000082167f18bd37da00000000000000000000000000000000000000000000000000000000145b806106c557506106c58261140b565b92915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020526040902060010154610704816114a1565b61070e83836114ae565b50505050565b6001600160a01b0381163314610756576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610760828261157a565b505050565b5f6107728585858561161e565b95945050505050565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de6107a5816114a1565b6107ad611694565b6107c16001600160a01b03851683856116cb565b816001600160a01b0316846001600160a01b03167f4810d2f105dcba10d740b4ac1d8fa8454dd37014b2051bace1edb1d903c440c48560405161080691815260200190565b60405180910390a361070e611719565b7f04c6a47ae7910ef8b295215a97e8495a9eaf57b7b05bfd8bf951edb3fd4a16a3610840816114a1565b610848611743565b610850611694565b835f03610889576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61089e6001600160a01b0386163330876119d5565b6001600160a01b0385165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be70060209081526040808320548151601f8701849004840281018401909252858252929161091791899189919089908990819084018382808284375f92019190915250611a2492505050565b60408051888152602081018590529081018290529091506001600160a01b0388169033907f112766730ce440487945c01048dacfc6d04340403f675871e96c4e28cf622ecc9060600160405180910390a35050610972611719565b5050505050565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de6109a3816114a1565b6109ab611694565b846001600160a01b031663e1e6b8986040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109e7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a0b9190612e3b565b6040517ff242432a0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038481166024830152604482018790526064820186905260a060848301525f60a4830152919091169063f242432a9060c4015f604051808303815f87803b158015610a87575f80fd5b505af1158015610a99573d5f803e3d5ffd5b5050505083826001600160a01b0316866001600160a01b03167fc9e640d2eb1b8469e42f60a66fef6a05cfd27ee3757e48f3f8ba04ecbc8a51b086604051610ae391815260200190565b60405180910390a4610972611719565b7ffdf81848136595c31bb5f76217767372bc4bf906663038eb38381131ea27ecba610b1d816114a1565b610b25611743565b610b2d611694565b845f03610b66576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b7287878787611d57565b6040517fc77b66c20000000000000000000000000000000000000000000000000000000081525f906001600160a01b0389169063c77b66c290610bc1908990309086908a908a90600401612e56565b6020604051808303815f875af1158015610bdd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c019190612ea2565b9050858114610c4b576040517fbe40f1fc00000000000000000000000000000000000000000000000000000000815260048101879052602481018290526044015b60405180910390fd5b610c5f6001600160a01b03891688886116cb565b60408051878152863560208201526001600160a01b03808a1692908b169133917f7c0eac1a8d30fbe7a577affc3b588a0b7d965a6133d12097cfac0760f2f2b617910160405180910390a450610cb3611719565b50505050505050565b5f8073679ab223dab158ea93e1a4f49104de436c58eab8905073d7f91c1c6e6e651ec3f1fd707af7cbb7526206e16001600160a01b0316816001600160a01b0316632f77a1c16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d2f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d539190612e3b565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d8e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610db29190612e3b565b6001600160a01b0316148015610eab5750732df5cfe6d688ef9ff1b7c59a499d254b1527b2866001600160a01b0316816001600160a01b0316632c9b7f406040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e1d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e419190612e3b565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e7c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ea09190612e3b565b6001600160a01b0316145b91505090565b5f6060805f805f6060610ec2611e95565b610eca611f68565b604080515f808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009b939a50919850469750309650945092509050565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de610f39816114a1565b610f41611694565b5f7f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be7006001600160a01b0385165f818152602083815260409182902080549088905582518181529182018890529394507fc6ce8282d3b57b159503fa5566e612aeb9f30c8e20c882398c9cb293c1ba6d68910160405180910390a25050610760611719565b5f805b86811015611025578481108015610ff657505f868683818110610fed57610fed612ee6565b90506020020135115b1561101d5761101d3389898481811061101157611011612ee6565b90506020020135611fb9565b600101610fc8565b507fbc197c81000000000000000000000000000000000000000000000000000000009998505050505050505050565b5f61105d612222565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156110895750825b90505f8267ffffffffffffffff1660011480156110a55750303b155b9050811580156110b3575080155b156110ea576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166001178555831561114b5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6001600160a01b03861661118b576040517f9905827b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611193611743565b61119b61224a565b61120f6040518060400160405280601081526020017f535430784f7263686573747261746f72000000000000000000000000000000008152506040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250612252565b6112195f876114ae565b50831561127b5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680060205260409020600101546112bc816114a1565b61070e838361157a565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de6112f0816114a1565b6112f8611694565b6040517ff242432a0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038381166024830152604482018690526064820185905260a060848301525f60a483015286169063f242432a9060c4015f604051808303815f87803b158015611372575f80fd5b505af1158015611384573d5f803e3d5ffd5b5050505083826001600160a01b0316866001600160a01b03167f78b19b4b6e69e380c3c303d1e889d510ee3ee409219c1c014d97a0a607b6c6a686604051610ae391815260200190565b5f83156113df576113df3386611fb9565b507ff23a6e61000000000000000000000000000000000000000000000000000000009695505050505050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806106c557507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146106c5565b6114ab8133612268565b50565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff16611571575f848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556115273390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506106c5565b5f9150506106c5565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff1615611571575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506106c5565b604080517f8381bcc05e5203d9456aa7185a19b2be5d4af37909fecf63a6f2016c1bf8413360208201526001600160a01b038087169282019290925290841660608201526080810183905260a081018290525f906107729060c001604051602081830303815290604052805190602001206122f4565b61169c61233b565b6116c960017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005b90612394565b565b6116d8838383600161239b565b610760576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610c42565b6116c95f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f006116c3565b5f73679ab223dab158ea93e1a4f49104de436c58eab890505f816001600160a01b0316632f77a1c16040518163ffffffff1660e01b8152600401602060405180830381865afa158015611798573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117bc9190612e3b565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117f7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061181b9190612e3b565b90506001600160a01b03811673d7f91c1c6e6e651ec3f1fd707af7cbb7526206e114611898576040517fdfdb61b700000000000000000000000000000000000000000000000000000000815273d7f91c1c6e6e651ec3f1fd707af7cbb7526206e160048201526001600160a01b0382166024820152604401610c42565b5f826001600160a01b0316632c9b7f406040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118f99190612e3b565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611934573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119589190612e3b565b90506001600160a01b038116732df5cfe6d688ef9ff1b7c59a499d254b1527b28614610760576040517f3e4077b3000000000000000000000000000000000000000000000000000000008152732df5cfe6d688ef9ff1b7c59a499d254b1527b28660048201526001600160a01b0382166024820152604401610c42565b6119e3848484846001612416565b61070e576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610c42565b5f808490505f816001600160a01b031663e1e6b8986040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a66573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a8a9190612e3b565b90507f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be7005f015f876001600160a01b03166001600160a01b031681526020019081526020015f205492505f826001600160a01b031663f5d214f56040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b10573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b349190612ea2565b90505b8515611d125780841115611b89576040517f66a21a2d0000000000000000000000000000000000000000000000000000000081526001600160a01b038816600482015260248101879052604401610c42565b6040517efdd58e000000000000000000000000000000000000000000000000000000008152306004820152602481018590525f906001600160a01b0384169062fdd58e90604401602060405180830381865afa158015611beb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c0f9190612ea2565b9050805f03611c245750600190930192611b37565b5f818810611c325781611c34565b875b90505f856001600160a01b031663921a4c428330308b8d6040518663ffffffff1660e01b8152600401611c6b959493929190612f13565b6020604051808303815f875af1158015611c87573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cab9190612ea2565b9050818114611cf0576040517fbe40f1fc0000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610c42565b611cfa828a612f55565b9850828203611d0a576001909601955b505050611b37565b5050506001600160a01b03939093165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be700602052604090208390555090919050565b6001600160a01b0383165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be70160209081526040808320843584529091529020547f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be7009060ff1615611e08576040517f59c210430000000000000000000000000000000000000000000000000000000081526001600160a01b038516600482015282356024820152604401610c42565b6001600160a01b0384165f90815260018281016020908152604080842086358086529252909220805460ff19169091179055610972908590611e4f9088908390889061161e565b611e5c6020860186612f8d565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061249c92505050565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10280546060917fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10091611ee690612fee565b80601f0160208091040260200160405190810160405280929190818152602001828054611f1290612fee565b8015611f5d5780601f10611f3457610100808354040283529160200191611f5d565b820191905f5260205f20905b815481529060010190602001808311611f4057829003601f168201915b505050505091505090565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10380546060917fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10091611ee690612fee565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f481c6a750000000000000000000000000000000000000000000000000000000017905290515f9182916001600160a01b038616916120299161303f565b5f60405180830381855afa9150503d805f8114612061576040519150601f19603f3d011682016040523d82523d5f602084013e612066565b606091505b509150915081158061207a57508051602014155b156120855750505050565b5f61208f82613055565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe1e6b8980000000000000000000000000000000000000000000000000000000017905290519192506001600160a01b038316916120ff919061303f565b5f60405180830381855afa9150503d805f8114612137576040519150601f19603f3d011682016040523d82523d5f602084013e61213c565b606091505b50909350915082158061215157508151602014155b1561215d575050505050565b6001600160a01b03851661217083613055565b6001600160a01b031614612185575050505050565b6001600160a01b0381165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be700602081905260409091205480861015610cb3576001600160a01b0383165f818152602084815260409182902089905581518481529081018990527f2008c207f65bedc2bb65dc8ac34aee36a37cd43a50152d574107c63ace7e07c6910160405180910390a250505050505050565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006106c5565b6116c96125cb565b61225a6125cb565b6122648282612609565b5050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038516845290915290205460ff16612264576040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015260248101839052604401610c42565b5f6106c561230061266c565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c156116c9576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80825d5050565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f5114831661240a5783831516156123fe573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b6040517f23b872dd000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038781166004528616602452604485905291602083606481808c5af1925060015f5114831661248b57838315161561247f573d5f823e3d81fd5b5f883b113d1516831692505b604052505f60605295945050505050565b8051156124e4576124ae83838361267a565b610760576040517f19ab93cc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f642ddf3a0000000000000000000000000000000000000000000000000000000080825260048201849052906001600160a01b0385169063642ddf3a906024016020604051808303815f875af1158015612543573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125679190613078565b7fffffffff000000000000000000000000000000000000000000000000000000001614610760576040517f22b89c080000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610c42565b6125d36126ed565b6116c9576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6126116125cb565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1007fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10261265d84826130d7565b506003810161070e83826130d7565b5f61267561270b565b905090565b5f836001600160a01b03163b5f036126d8575f80612698858561277e565b5090925090505f8160038111156126b1576126b1613193565b1480156126cf5750856001600160a01b0316826001600160a01b0316145b925050506126e6565b6126e38484846127c7565b90505b9392505050565b5f6126f6612222565b5468010000000000000000900460ff16919050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f612735612831565b61273d612846565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f805f83516041036127b5576020840151604085015160608601515f1a6127a78882858561284f565b9550955095505050506127c0565b505081515f91506002905b9250925092565b8051604080517f1626ba7e000000000000000000000000000000000000000000000000000000008082526004820186905260248201929092525f92906020820185604483015e60205f60648401838a5afa9050825f5114601f3d1116811693505050509392505050565b5f61283a611e95565b80519060200120905090565b5f61283a611f68565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561288857505f9150600390508261290d565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa1580156128d9573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b03811661290457505f92506001915082905061290d565b92505f91508190505b9450945094915050565b7fffffffff00000000000000000000000000000000000000000000000000000000811681146114ab575f80fd5b5f60208284031215612954575f80fd5b81356126e681612917565b6001600160a01b03811681146114ab575f80fd5b5f8060408385031215612984575f80fd5b823561298f8161295f565b946020939093013593505050565b5f602082840312156129ad575f80fd5b5035919050565b5f80604083850312156129c5575f80fd5b8235915060208301356129d78161295f565b809150509250929050565b5f805f80608085870312156129f5575f80fd5b8435612a008161295f565b93506020850135612a108161295f565b93969395505050506040820135916060013590565b5f805f60608486031215612a37575f80fd5b8335612a428161295f565b9250602084013591506040840135612a598161295f565b809150509250925092565b5f8083601f840112612a74575f80fd5b50813567ffffffffffffffff811115612a8b575f80fd5b602083019150836020828501011115612aa2575f80fd5b9250929050565b5f805f8060608587031215612abc575f80fd5b8435612ac78161295f565b935060208501359250604085013567ffffffffffffffff811115612ae9575f80fd5b612af587828801612a64565b95989497509550505050565b5f805f8060808587031215612b14575f80fd5b8435612b1f8161295f565b935060208501359250604085013591506060850135612b3d8161295f565b939692955090935050565b5f805f805f8060a08789031215612b5d575f80fd5b8635612b688161295f565b95506020870135612b788161295f565b945060408701359350606087013567ffffffffffffffff80821115612b9b575f80fd5b908801906040828b031215612bae575f80fd5b90935060808801359080821115612bc3575f80fd5b50612bd089828a01612a64565b979a9699509497509295939492505050565b5f60208284031215612bf2575f80fd5b81356126e68161295f565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b7fff00000000000000000000000000000000000000000000000000000000000000881681525f602060e06020840152612c6760e084018a612bfd565b8381036040850152612c79818a612bfd565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825260208088019350909101905f5b81811015612ccc57835183529284019291840191600101612cb0565b50909c9b505050505050505050505050565b5f8083601f840112612cee575f80fd5b50813567ffffffffffffffff811115612d05575f80fd5b6020830191508360208260051b8501011115612aa2575f80fd5b5f805f805f805f8060a0898b031215612d36575f80fd5b8835612d418161295f565b97506020890135612d518161295f565b9650604089013567ffffffffffffffff80821115612d6d575f80fd5b612d798c838d01612cde565b909850965060608b0135915080821115612d91575f80fd5b612d9d8c838d01612cde565b909650945060808b0135915080821115612db5575f80fd5b50612dc28b828c01612a64565b999c989b5096995094979396929594505050565b5f805f805f8060a08789031215612deb575f80fd5b8635612df68161295f565b95506020870135612e068161295f565b94506040870135935060608701359250608087013567ffffffffffffffff811115612e2f575f80fd5b612bd089828a01612a64565b5f60208284031215612e4b575f80fd5b81516126e68161295f565b8581526001600160a01b038516602082015283604082015260806060820152816080820152818360a08301375f81830160a090810191909152601f909201601f19160101949350505050565b5f60208284031215612eb2575f80fd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b8581525f6001600160a01b03808716602084015280861660408401525083606083015260a06080830152612f4a60a0830184612bfd565b979650505050505050565b818103818111156106c5577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612fc0575f80fd5b83018035915067ffffffffffffffff821115612fda575f80fd5b602001915036819003821315612aa2575f80fd5b600181811c9082168061300257607f821691505b602082108103613039577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b5f82518060208501845e5f920191825250919050565b80516020808301519190811015613039575f1960209190910360031b1b16919050565b5f60208284031215613088575f80fd5b81516126e681612917565b601f82111561076057805f5260205f20601f840160051c810160208510156130b85750805b601f840160051c820191505b81811015610972575f81556001016130c4565b815167ffffffffffffffff8111156130f1576130f1612eb9565b613105816130ff8454612fee565b84613093565b602080601f831160018114613138575f84156131215750858301515b5f19600386901b1c1916600185901b17855561127b565b5f85815260208120601f198616915b8281101561316657888601518255948401946001909101908401613147565b508582101561318357878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd"; diff --git a/src/generated/0_1_6/ST0xOrchestratorBeaconSetDeployer.pointers.sol b/src/generated/0_1_6/ST0xOrchestratorBeaconSetDeployer.pointers.sol deleted file mode 100644 index 53ee4a14..00000000 --- a/src/generated/0_1_6/ST0xOrchestratorBeaconSetDeployer.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x2149474f3f4539b44296101ca3ffafb1ebd7f212b90b5fc9d8d28a4d010ca4eb); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0xBff92564aeffe44C85A9153B9f2dB13e47A22435); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"60a0604052348015600e575f80fd5b507299fcb947cc31e21c631478a2a9e2e591cd4010738e4bdeec7ceb9570d440676345da1dce10329f5b6040516042906082565b6001600160a01b03928316815291166020820152604001604051809103905ff0801580156071573d5f803e3d5ffd5b506001600160a01b0316608052608f565b6104f7806109cf83390190565b6080516109226100ad5f395f81816070015261025201526109225ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c806301ffc9a714610043578063429b15441461006b5780634c96a389146100b7575b5f80fd5b610056610051366004610309565b6100ca565b60405190151581526020015b60405180910390f35b6100927f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610062565b6100926100c536600461034f565b610162565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f4c96a38900000000000000000000000000000000000000000000000000000000148061015c57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82166101b0576040517f9905827b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405173ffffffffffffffffffffffffffffffffffffffff831660248201525f90604401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc4d66de800000000000000000000000000000000000000000000000000000000179052519091505f907f000000000000000000000000000000000000000000000000000000000000000090839061027d906102fc565b610288929190610382565b604051809103905ff0801580156102a1573d5f803e3d5ffd5b5060405173ffffffffffffffffffffffffffffffffffffffff86811682529192509082169033907fa0d99d93cf7a5f89661fa0829369a7e4896e755871efe65440bab2429387d55b9060200160405180910390a39392505050565b61052f806103f383390190565b5f60208284031215610319575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610348575f80fd5b9392505050565b5f6020828403121561035f575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610348575f80fd5b73ffffffffffffffffffffffffffffffffffffffff83168152604060208201525f82518060408401528060208501606085015e5f6060828501015260607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f830116840101915050939250505056fe60a060405260405161052f38038061052f83398101604081905261002291610331565b61002c828261003e565b506001600160a01b031660805261040d565b610047826100fb565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a28051156100ef576100ea826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e491906103ed565b82610209565b505050565b6100f76102aa565b5050565b806001600160a01b03163b5f0361013557604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b815290515f92841691635c60da1b9160048083019260209291908290030181865afa1580156101ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d291906103ed565b9050806001600160a01b03163b5f036100f757604051634c9c8ce360e01b81526001600160a01b038216600482015260240161012c565b60605f61021684846102cb565b905080801561023757505f3d118061023757505f846001600160a01b03163b115b1561024c576102446102de565b9150506102a4565b801561027657604051639996b31560e01b81526001600160a01b038516600482015260240161012c565b3d15610289576102846102f7565b6102a2565b60405163d6bda27560e01b815260040160405180910390fd5b505b92915050565b34156102c95760405163b398979f60e01b815260040160405180910390fd5b565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b6040513d5f823e3d81fd5b80516001600160a01b0381168114610318575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215610342575f80fd5b61034b83610302565b60208401519092506001600160401b0380821115610367575f80fd5b818501915085601f83011261037a575f80fd5b81518181111561038c5761038c61031d565b604051601f8201601f19908116603f011681019083821181831017156103b4576103b461031d565b816040528281528860208487010111156103cc575f80fd5b8260208601602083015e5f6020848301015280955050505050509250929050565b5f602082840312156103fd575f80fd5b61040682610302565b9392505050565b60805161010b6104245f395f6023015261010b5ff3fe608060405261000c61000e565b005b61001e610019610020565b6100b3565b565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561008a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100ae91906100d1565b905090565b365f80375f80365f845af43d5f803e8080156100cd573d5ff35b3d5ffd5b5f602082840312156100e1575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610104575f80fd5b939250505056608060405234801561000f575f80fd5b506040516104f73803806104f783398101604081905261002e9161015f565b806001600160a01b03811661005d57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b61006681610077565b50610070826100c6565b5050610190565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b806001600160a01b03163b5f036100fb5760405163211eb15960e21b81526001600160a01b0382166004820152602401610054565b600180546001600160a01b0319166001600160a01b0383169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b80516001600160a01b038116811461015a575f80fd5b919050565b5f8060408385031215610170575f80fd5b61017983610144565b915061018760208401610144565b90509250929050565b61035a8061019d5f395ff3fe608060405234801561000f575f80fd5b5060043610610064575f3560e01c8063715018a61161004d578063715018a6146100c05780638da5cb5b146100c8578063f2fde38b146100e5575f80fd5b80633659cfe6146100685780635c60da1b1461007d575b5f80fd5b61007b610076366004610320565b6100f8565b005b60015473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61007b61010c565b5f5473ffffffffffffffffffffffffffffffffffffffff16610097565b61007b6100f3366004610320565b61011f565b610100610184565b610109816101d6565b50565b610114610184565b61011d5f6102ac565b565b610127610184565b73ffffffffffffffffffffffffffffffffffffffff811661017b576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f60048201526024015b60405180910390fd5b610109816102ac565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461011d576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610172565b8073ffffffffffffffffffffffffffffffffffffffff163b5f0361023e576040517f847ac56400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602401610172565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f60208284031215610330575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610353575f80fd5b939250505056"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b506004361061003f575f3560e01c806301ffc9a714610043578063429b15441461006b5780634c96a389146100b7575b5f80fd5b610056610051366004610309565b6100ca565b60405190151581526020015b60405180910390f35b6100927f000000000000000000000000ba0d89f6e84a201cd2c720a91911fdadbbb2ad4881565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610062565b6100926100c536600461034f565b610162565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f4c96a38900000000000000000000000000000000000000000000000000000000148061015c57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82166101b0576040517f9905827b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405173ffffffffffffffffffffffffffffffffffffffff831660248201525f90604401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc4d66de800000000000000000000000000000000000000000000000000000000179052519091505f907f000000000000000000000000ba0d89f6e84a201cd2c720a91911fdadbbb2ad4890839061027d906102fc565b610288929190610382565b604051809103905ff0801580156102a1573d5f803e3d5ffd5b5060405173ffffffffffffffffffffffffffffffffffffffff86811682529192509082169033907fa0d99d93cf7a5f89661fa0829369a7e4896e755871efe65440bab2429387d55b9060200160405180910390a39392505050565b61052f806103f383390190565b5f60208284031215610319575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610348575f80fd5b9392505050565b5f6020828403121561035f575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610348575f80fd5b73ffffffffffffffffffffffffffffffffffffffff83168152604060208201525f82518060408401528060208501606085015e5f6060828501015260607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f830116840101915050939250505056fe60a060405260405161052f38038061052f83398101604081905261002291610331565b61002c828261003e565b506001600160a01b031660805261040d565b610047826100fb565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a28051156100ef576100ea826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e491906103ed565b82610209565b505050565b6100f76102aa565b5050565b806001600160a01b03163b5f0361013557604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b815290515f92841691635c60da1b9160048083019260209291908290030181865afa1580156101ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d291906103ed565b9050806001600160a01b03163b5f036100f757604051634c9c8ce360e01b81526001600160a01b038216600482015260240161012c565b60605f61021684846102cb565b905080801561023757505f3d118061023757505f846001600160a01b03163b115b1561024c576102446102de565b9150506102a4565b801561027657604051639996b31560e01b81526001600160a01b038516600482015260240161012c565b3d15610289576102846102f7565b6102a2565b60405163d6bda27560e01b815260040160405180910390fd5b505b92915050565b34156102c95760405163b398979f60e01b815260040160405180910390fd5b565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b6040513d5f823e3d81fd5b80516001600160a01b0381168114610318575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215610342575f80fd5b61034b83610302565b60208401519092506001600160401b0380821115610367575f80fd5b818501915085601f83011261037a575f80fd5b81518181111561038c5761038c61031d565b604051601f8201601f19908116603f011681019083821181831017156103b4576103b461031d565b816040528281528860208487010111156103cc575f80fd5b8260208601602083015e5f6020848301015280955050505050509250929050565b5f602082840312156103fd575f80fd5b61040682610302565b9392505050565b60805161010b6104245f395f6023015261010b5ff3fe608060405261000c61000e565b005b61001e610019610020565b6100b3565b565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561008a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100ae91906100d1565b905090565b365f80375f80365f845af43d5f803e8080156100cd573d5ff35b3d5ffd5b5f602082840312156100e1575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610104575f80fd5b939250505056"; diff --git a/src/generated/0_1_6/StoxCorporateActionsFacet.pointers.sol b/src/generated/0_1_6/StoxCorporateActionsFacet.pointers.sol deleted file mode 100644 index aef0d95d..00000000 --- a/src/generated/0_1_6/StoxCorporateActionsFacet.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0xd91520075de1eb2e8fdf042fde3475ee89feb3942306e5d6d5c710273fefc080); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0xB7e24412126ad6A2Ce19cbd79FD11B68e7F30cf6); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"60a0604052348015600e575f80fd5b503060805260805161268d6100635f395f81816101970152818161031b0152818161038901528181610466015281816104c90152818161053b0152818161070301528181610767015261089e015261268d5ff3fe608060405234801561000f575f80fd5b506004361061009f575f3560e01c806379ba430511610072578063bb7bb45a11610058578063bb7bb45a14610151578063dad601be14610159578063e388df491461016c575f80fd5b806379ba43051461011e578063b21a249414610131575f80fd5b80630d1e0432146100a35780631cb5642f146100be578063358116b9146100f65780634e6c280e1461010b575b5f80fd5b6100ab61017f565b6040519081526020015b60405180910390f35b6100d16100cc366004612126565b610301565b60408051938452602084019290925267ffffffffffffffff16908201526060016100b5565b610109610104366004612150565b610372565b005b6100d1610119366004612126565b61044c565b6100d161012c366004612167565b6104af565b61014461013f366004612150565b610522565b6040516100b591906121c7565b6100ab6106eb565b6100ab6101673660046121d9565b61074f565b6100d161017a366004612167565b610884565b5f73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036101d6576040516309e815f560e01b815260040160405180910390fd5b5f6101df6108e8565b905060015f6101f15f19600384610967565b90505b5f1981146102fa57600283600201828154811061021357610213612261565b905f5260205f2090600502015f0154036102e6576102e3826102de85600201848154811061024357610243612261565b905f5260205f209060050201600401805461025d90612275565b80601f016020809104026020016040519081016040528092919081815260200182805461028990612275565b80156102d45780601f106102ab576101008083540402835291602001916102d4565b820191905f5260205f20905b8154815290600101906020018083116102b757829003601f168201915b5050505050610a6e565b610a89565b91505b6102f38160036001610967565b90506101f4565b5091505090565b5f808073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016300361035a576040516309e815f560e01b815260040160405180910390fd5b6103648585610aeb565b9250925092505b9250925092565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036103c8576040516309e815f560e01b815260040160405180910390fd5b610414337f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e78360405160200161040091815260200190565b604051602081830303815290604052610b19565b61041d81610c13565b604051819033907f94041431cee1a4c20be97117d396e73eb1e601e124b48fbc5dc07397c31d5f8a905f90a350565b5f808073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036104a5576040516309e815f560e01b815260040160405180910390fd5b6103648585610df0565b5f808073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610508576040516309e815f560e01b815260040160405180910390fd5b610513868686610e00565b92509250925093509350939050565b606073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016300361057a576040516309e815f560e01b815260040160405180910390fd5b5f6105836108e8565b600281015490915083106105cb576040517f029c6c35000000000000000000000000000000000000000000000000000000008152600481018490526024015b60405180910390fd5b8060020183815481106105e0576105e0612261565b5f918252602082206001600590920201015467ffffffffffffffff169003610637576040517f029c6c35000000000000000000000000000000000000000000000000000000008152600481018490526024016105c2565b80600201838154811061064c5761064c612261565b905f5260205f209060050201600401805461066690612275565b80601f016020809104026020016040519081016040528092919081815260200182805461069290612275565b80156106dd5780601f106106b4576101008083540402835291602001916106dd565b820191905f5260205f20905b8154815290600101906020018083116106c057829003601f168201915b50505050509150505b919050565b5f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610742576040516309e815f560e01b815260040160405180910390fd5b61074a610e2e565b905090565b5f73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036107a6576040516309e815f560e01b815260040160405180910390fd5b6107e2337ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f898787878760405160200161040094939291906122a7565b5f6107ee868585610e82565b90505f610831828787878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610f2d92505050565b6040805184815267ffffffffffffffff89166020820152919250829133917fa9c7784142e419f4660627c0c145b3873c2a415ce062f5c81bc19e6850f873d8910160405180910390a39695505050505050565b5f808073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036108dd576040516309e815f560e01b815260040160405180910390fd5b610513868686611047565b5f807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0061093660017f2f8f8ecf1b7a1a3ceda8d15a9a2247a2377b3434535a87f1728021c13fec2e71612301565b60405160200161094891815260200190565b60408051601f1981840301815291905280516020909101201692915050565b5f6007831681036109a4576040517fbf3cad0b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6109ad6108e8565b60028101549091505f036109c5575f19915050610a67565b5f5f1986146109f8578160020186815481106109e3576109e3612261565b905f5260205f209060050201600301546109fb565b81545b90506002846002811115610a1157610a11612314565b03610a3357610a2a82610a248484611056565b876110d1565b92505050610a67565b6001846002811115610a4757610a47612314565b03610a5757610a2a828287611129565b610a628282876110d1565b925050505b9392505050565b5f81806020019051810190610a839190612328565b92915050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d8480610ace86868686611196565b915091505f610add83836112b5565b9a9950505050505050505050565b5f805f80610afb5f19878761131b565b90505f80610b0883611410565b939650945091925050509250925092565b5f3073ffffffffffffffffffffffffffffffffffffffff1663d09edf316040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b63573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b87919061233f565b6040517f59f89dda00000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff8216906359f89dda90610be090879087908790600401612372565b5f604051808303815f87803b158015610bf7575f80fd5b505af1158015610c09573d5f803e3d5ffd5b5050505050505050565b5f610c1c6108e8565b60028101549091508210610c5f576040517f029c6c35000000000000000000000000000000000000000000000000000000008152600481018390526024016105c2565b5f816002018381548110610c7557610c75612261565b5f9182526020822060016005909202019081015490925067ffffffffffffffff169003610cd1576040517f029c6c35000000000000000000000000000000000000000000000000000000008152600481018490526024016105c2565b60018101544267ffffffffffffffff90911611610d1d576040517f99fa8c69000000000000000000000000000000000000000000000000000000008152600481018490526024016105c2565b600281015460038201545f198214610d5d5780846002018381548110610d4557610d45612261565b905f5260205f20906005020160030181905550610d61565b8084555b5f198114610d975781846002018281548110610d7f57610d7f612261565b905f5260205f20906005020160020181905550610d9f565b600184018290555b5f196002840181905560038401556001830180547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001690555f808455610de99060048501906120ca565b5050505050565b5f805f80610afb5f198787610967565b5f805f80610e0f878787610967565b90505f80610e1c83611410565b939a9099509297509195505050505050565b5f610e376108e8565b600201545f03610e4657505f90565b60065f80610e575f19846001610967565b90505b5f1981146102fa5781610e6c816123a6565b925050610e7b81846001610967565b9050610e5a565b5f7f4548e57ae2f1604df75a3d17fecaff7dd11ad7a93d9f8a0dc05e7144f46f3f7c8403610ef857610ef0610eeb84848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610a6e92505050565b61146e565b506002610a67565b6040517ff17c1d46000000000000000000000000000000000000000000000000000000008152600481018590526024016105c2565b5f428367ffffffffffffffff1611610f83576040517fc0851c8a00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff841660048201524260248201526044016105c2565b5f610f8c6108e8565b9050610f978161156e565b60028101805460019081018083555f928352610fb39190612301565b90505f826002018281548110610fcb57610fcb612261565b5f91825260209091206005909102018781556001810180547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff8916179055905060048101611023868261241b565b505f1960028201819055600382015561103d838388611617565b5095945050505050565b5f805f80610e0f87878761131b565b5f5b5f19821415801561109a57504283600201838154811061107a5761107a612261565b5f91825260209091206001600590920201015467ffffffffffffffff1611155b156110cb578260020182815481106110b4576110b4612261565b905f5260205f209060050201600301549150611058565b50919050565b5f5b5f19831461111f575f8460020184815481106110f1576110f1612261565b905f5260205f209060050201905082815f0154165f146111145783915050610a67565b6003015492506110d3565b505f199392505050565b5f5b5f19831461111f575f84600201848154811061114957611149612261565b5f918252602090912060059091020160018101549091504267ffffffffffffffff9091161115611179575061111f565b805483161561118b5783915050610a67565b60030154925061112b565b5f80851584151780156111ae575f92505f91506112ab565b6111b884876124d7565b91505f6111c488611761565b90505f6111d087611761565b90505f6111dd83836117c2565b5090505f6f0785ee10d5da46d900f436a000000000821115611212576f0785ee10d5da46d900f436a000000000820491506025015b670de0b6b3a764000082111561123357670de0b6b3a7640000820491506012015b633b9aca0082111561124c57633b9aca00820491506009015b61271082111561126157612710820491506004015b811561127557600a82049150600101611261565b61127f81876124d7565b95506112a18b8a61129b878761129687600a6125f2565b6117de565b896118c3565b9097509550505050505b5094509492505050565b5f805f6112c285856119cf565b91509150801580156112d2575081155b15611313576040517f8eba4d0700000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016105c2565b509392505050565b5f600783168103611358576040517fbf3cad0b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6113616108e8565b60028101549091505f03611379575f19915050610a67565b5f5f1986146113ac5781600201868154811061139757611397612261565b905f5260205f209060050201600201546113b2565b81600101545b905060018460028111156113c8576113c8612314565b036113e157610a2a826113db8484611ad6565b87611b4a565b60028460028111156113f5576113f5612314565b0361140557610a2a828287611b98565b610a62828287611b4a565b5f805f19830361142457505f928392509050565b5f61142d6108e8565b600201848154811061144157611441612261565b5f91825260209091206005909102018054600190910154909567ffffffffffffffff909116945092505050565b611478815f611c04565b156114af576040517f018d151200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6114b930611c54565b90505f6114c7600183611cfe565b90506114d38382611d22565b1561150d576040517f06c32712000000000000000000000000000000000000000000000000000000008152600481018490526024016105c2565b5f61152261151c84600a6125fd565b5f611cfe565b905061152e8482611d71565b15611568576040517fd24a8af1000000000000000000000000000000000000000000000000000000008152600481018590526024016105c2565b50505050565b60028101541561157b5750565b6002810180546001018082555f8281529190829061159b5761159b612261565b5f9182526020909120600160059092020181815590810180547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff161790555f1960028201819055600382015590506115fc611dc0565b5f808052600484016020526040902055505f19600590910155565b5f83600201838154811061162d5761162d612261565b905f5260205f20906005020190505f846001015490505b5f198114610de9578267ffffffffffffffff1685600201828154811061166c5761166c612261565b5f91825260209091206001600590920201015467ffffffffffffffff1611611735575f8560020182815481106116a4576116a4612261565b905f5260205f209060050201600301549050848660020183815481106116cc576116cc612261565b5f918252602090912060036005909202018101919091556002840183905583018190555f198114611725578486600201828154811061170d5761170d612261565b905f5260205f2090600502016002018190555061172d565b600186018590555b505050505050565b84600201818154811061174a5761174a612261565b905f5260205f209060050201600201549050611644565b5f808212156117be577f800000000000000000000000000000000000000000000000000000000000000082036117b857507f8000000000000000000000000000000000000000000000000000000000000000919050565b505f0390565b5090565b5f805f1983850993909202808410938190039390930393915050565b5f805f6117eb86866117c2565b91509150815f0361180f57838181611805576118056124fe565b0492505050610a67565b838210611859576040517f6c59da120000000000000000000000000000000000000000000000000000000081526004810187905260248101869052604481018590526064016105c2565b5f84868809600186198101871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103025f82900382900490920185841190960395909502919093039390930492909217029150509392505050565b5f805f858718121561198d577f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84111561197a576119227f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600161260b565b840361195257507f80000000000000000000000000000000000000000000000000000000000000009050816119c6565b61195d600a8561261e565b6119669061263d565b6119718460016124d7565b915091506119c6565b6119838461263d565b83915091506119c6565b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8411156119c057611966600a8561261e565b50829050815b94509492505050565b5f601b83900b8314838382611a33577d90e40fbeea1d3a4abc8955e946fe31cdcf66f634e1000000000000000000860515611a1357620186a0860595506005850194505b8586601b0b14611a2e57600a86059550846001019450611a13565b611a49565b855f03611a4957505f925060019150611acf9050565b848560030b14611aa5575f851215611a6957505f9250829150611acf9050565b6040517fd556b11100000000000000000000000000000000000000000000000000000000815260048101839052602481018290526044016105c2565b50507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841660e084901b1791505b9250929050565b5f5b5f198214158015611b19575042836002018381548110611afa57611afa612261565b5f91825260209091206001600590920201015467ffffffffffffffff16115b156110cb57826002018281548110611b3357611b33612261565b905f5260205f209060050201600201549150611ad8565b5f5b5f19831461111f575f846002018481548110611b6a57611b6a612261565b905f5260205f209060050201905082815f0154165f14611b8d5783915050610a67565b600201549250611b4c565b5f5b5f19831461111f575f846002018481548110611bb857611bb8612261565b5f918252602090912060059091020160018101549091504267ffffffffffffffff90911611611be7575061111f565b8054831615611bf95783915050610a67565b600201549250611b9a565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d611c4784848484611e43565b1215979650505050505050565b5f611c5d611f17565b6040517f54636d2b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316600482015273200e12d10bb0c5e4a17e7018f0f1161919bb9389906354636d2b906024016020604051808303815f875af1158015611cda573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a83919061266d565b5f805f611d0b8585611fbd565b91509150611d19828261201f565b95945050505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d611d6584848484611e43565b13979650505050505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d611db484848484611e43565b12979650505050505050565b5f807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00611e0e60017fb750591399365444a618527b69a54ce09476c8bde1ecff60f5aa1fe2b52605ff612301565b604051602001611e2091815260200190565b60408051808303601f190181529190528051602090910120166002015492915050565b5f8085158415178187128286121817858414178015611e6857868592509250506119c6565b505f85841315611e7c575092949193919260015b8386035f8112604c8213178015611eaf578215611ea1575f89945094505050506119c6565b885f945094505050506119c6565b600a82900a8981028a828281611ec757611ec76124fe565b0514611ef3578415611ee3575f8b9650965050505050506119c6565b8a5f9650965050505050506119c6565b8415611f085788965094506119c69350505050565b95508794506119c69350505050565b73200e12d10bb0c5e4a17e7018f0f1161919bb93893b1580611f6e575073200e12d10bb0c5e4a17e7018f0f1161919bb93893f7f1de7d717526cba131d684e312dedbf0852adef9cced9e36798ae4937f7145d4114155b15611fbb576040517f73e6d7b300000000000000000000000000000000000000000000000000000000815273200e12d10bb0c5e4a17e7018f0f1161919bb938960048201526024016105c2565b565b5f805f805f611fcc8787612071565b92509250925080612013576040517fc471796600000000000000000000000000000000000000000000000000000000815260048101849052602481018390526044016105c2565b50909590945092505050565b5f805f61202c85856119cf565b9150915080611313576040517f22c9f7bb00000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016105c2565b5f808060ff841681037f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8611156120bc57600a860460018201600a88065f149350935093505061036b565b85935091506001905061036b565b5080546120d690612275565b5f825580601f106120e5575050565b601f0160209004905f5260205f20908101906121019190612104565b50565b5b808211156117be575f8155600101612105565b8035600381106106e6575f80fd5b5f8060408385031215612137575f80fd5b8235915061214760208401612118565b90509250929050565b5f60208284031215612160575f80fd5b5035919050565b5f805f60608486031215612179575f80fd5b833592506020840135915061219060408501612118565b90509250925092565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610a676020830184612199565b5f805f80606085870312156121ec575f80fd5b84359350602085013567ffffffffffffffff808216821461220b575f80fd5b90935060408601359080821115612220575f80fd5b818701915087601f830112612233575f80fd5b813581811115612241575f80fd5b886020828501011115612252575f80fd5b95989497505060200194505050565b634e487b7160e01b5f52603260045260245ffd5b600181811c9082168061228957607f821691505b6020821081036110cb57634e487b7160e01b5f52602260045260245ffd5b84815267ffffffffffffffff8416602082015260606040820152816060820152818360808301375f818301608090810191909152601f909201601f191601019392505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610a8357610a836122ed565b634e487b7160e01b5f52602160045260245ffd5b5f60208284031215612338575f80fd5b5051919050565b5f6020828403121561234f575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610a67575f80fd5b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f611d196060830184612199565b5f5f1982036123b7576123b76122ed565b5060010190565b634e487b7160e01b5f52604160045260245ffd5b601f82111561241657805f5260205f20601f840160051c810160208510156123f75750805b601f840160051c820191505b81811015610de9575f8155600101612403565b505050565b815167ffffffffffffffff811115612435576124356123be565b612449816124438454612275565b846123d2565b602080601f83116001811461247c575f84156124655750858301515b5f19600386901b1c1916600185901b17855561172d565b5f85815260208120601f198616915b828110156124aa5788860151825594840194600190910190840161248b565b50858210156124c757878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b8082018281125f8312801582168215821617156124f6576124f66122ed565b505092915050565b634e487b7160e01b5f52601260045260245ffd5b600181815b8085111561254c57815f1904821115612532576125326122ed565b8085161561253f57918102915b93841c9390800290612517565b509250929050565b5f8261256257506001610a83565b8161256e57505f610a83565b8160018114612584576002811461258e576125aa565b6001915050610a83565b60ff84111561259f5761259f6122ed565b50506001821b610a83565b5060208310610133831016604e8410600b84101617156125cd575081810a610a83565b6125d78383612512565b805f19048211156125ea576125ea6122ed565b029392505050565b5f610a678383612554565b5f610a6760ff841683612554565b80820180821115610a8357610a836122ed565b5f8261263857634e487b7160e01b5f52601260045260245ffd5b500490565b5f7f800000000000000000000000000000000000000000000000000000000000000082036117b8576117b86122ed565b5f6020828403121561267d575f80fd5b815160ff81168114610a67575f80fd"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b506004361061009f575f3560e01c806379ba430511610072578063bb7bb45a11610058578063bb7bb45a14610151578063dad601be14610159578063e388df491461016c575f80fd5b806379ba43051461011e578063b21a249414610131575f80fd5b80630d1e0432146100a35780631cb5642f146100be578063358116b9146100f65780634e6c280e1461010b575b5f80fd5b6100ab61017f565b6040519081526020015b60405180910390f35b6100d16100cc366004612126565b610301565b60408051938452602084019290925267ffffffffffffffff16908201526060016100b5565b610109610104366004612150565b610372565b005b6100d1610119366004612126565b61044c565b6100d161012c366004612167565b6104af565b61014461013f366004612150565b610522565b6040516100b591906121c7565b6100ab6106eb565b6100ab6101673660046121d9565b61074f565b6100d161017a366004612167565b610884565b5f73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf61630036101d6576040516309e815f560e01b815260040160405180910390fd5b5f6101df6108e8565b905060015f6101f15f19600384610967565b90505b5f1981146102fa57600283600201828154811061021357610213612261565b905f5260205f2090600502015f0154036102e6576102e3826102de85600201848154811061024357610243612261565b905f5260205f209060050201600401805461025d90612275565b80601f016020809104026020016040519081016040528092919081815260200182805461028990612275565b80156102d45780601f106102ab576101008083540402835291602001916102d4565b820191905f5260205f20905b8154815290600101906020018083116102b757829003601f168201915b5050505050610a6e565b610a89565b91505b6102f38160036001610967565b90506101f4565b5091505090565b5f808073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf616300361035a576040516309e815f560e01b815260040160405180910390fd5b6103648585610aeb565b9250925092505b9250925092565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf61630036103c8576040516309e815f560e01b815260040160405180910390fd5b610414337f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e78360405160200161040091815260200190565b604051602081830303815290604052610b19565b61041d81610c13565b604051819033907f94041431cee1a4c20be97117d396e73eb1e601e124b48fbc5dc07397c31d5f8a905f90a350565b5f808073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf61630036104a5576040516309e815f560e01b815260040160405180910390fd5b6103648585610df0565b5f808073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf6163003610508576040516309e815f560e01b815260040160405180910390fd5b610513868686610e00565b92509250925093509350939050565b606073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf616300361057a576040516309e815f560e01b815260040160405180910390fd5b5f6105836108e8565b600281015490915083106105cb576040517f029c6c35000000000000000000000000000000000000000000000000000000008152600481018490526024015b60405180910390fd5b8060020183815481106105e0576105e0612261565b5f918252602082206001600590920201015467ffffffffffffffff169003610637576040517f029c6c35000000000000000000000000000000000000000000000000000000008152600481018490526024016105c2565b80600201838154811061064c5761064c612261565b905f5260205f209060050201600401805461066690612275565b80601f016020809104026020016040519081016040528092919081815260200182805461069290612275565b80156106dd5780601f106106b4576101008083540402835291602001916106dd565b820191905f5260205f20905b8154815290600101906020018083116106c057829003601f168201915b50505050509150505b919050565b5f73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf6163003610742576040516309e815f560e01b815260040160405180910390fd5b61074a610e2e565b905090565b5f73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf61630036107a6576040516309e815f560e01b815260040160405180910390fd5b6107e2337ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f898787878760405160200161040094939291906122a7565b5f6107ee868585610e82565b90505f610831828787878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610f2d92505050565b6040805184815267ffffffffffffffff89166020820152919250829133917fa9c7784142e419f4660627c0c145b3873c2a415ce062f5c81bc19e6850f873d8910160405180910390a39695505050505050565b5f808073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf61630036108dd576040516309e815f560e01b815260040160405180910390fd5b610513868686611047565b5f807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0061093660017f2f8f8ecf1b7a1a3ceda8d15a9a2247a2377b3434535a87f1728021c13fec2e71612301565b60405160200161094891815260200190565b60408051601f1981840301815291905280516020909101201692915050565b5f6007831681036109a4576040517fbf3cad0b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6109ad6108e8565b60028101549091505f036109c5575f19915050610a67565b5f5f1986146109f8578160020186815481106109e3576109e3612261565b905f5260205f209060050201600301546109fb565b81545b90506002846002811115610a1157610a11612314565b03610a3357610a2a82610a248484611056565b876110d1565b92505050610a67565b6001846002811115610a4757610a47612314565b03610a5757610a2a828287611129565b610a628282876110d1565b925050505b9392505050565b5f81806020019051810190610a839190612328565b92915050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d8480610ace86868686611196565b915091505f610add83836112b5565b9a9950505050505050505050565b5f805f80610afb5f19878761131b565b90505f80610b0883611410565b939650945091925050509250925092565b5f3073ffffffffffffffffffffffffffffffffffffffff1663d09edf316040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b63573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b87919061233f565b6040517f59f89dda00000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff8216906359f89dda90610be090879087908790600401612372565b5f604051808303815f87803b158015610bf7575f80fd5b505af1158015610c09573d5f803e3d5ffd5b5050505050505050565b5f610c1c6108e8565b60028101549091508210610c5f576040517f029c6c35000000000000000000000000000000000000000000000000000000008152600481018390526024016105c2565b5f816002018381548110610c7557610c75612261565b5f9182526020822060016005909202019081015490925067ffffffffffffffff169003610cd1576040517f029c6c35000000000000000000000000000000000000000000000000000000008152600481018490526024016105c2565b60018101544267ffffffffffffffff90911611610d1d576040517f99fa8c69000000000000000000000000000000000000000000000000000000008152600481018490526024016105c2565b600281015460038201545f198214610d5d5780846002018381548110610d4557610d45612261565b905f5260205f20906005020160030181905550610d61565b8084555b5f198114610d975781846002018281548110610d7f57610d7f612261565b905f5260205f20906005020160020181905550610d9f565b600184018290555b5f196002840181905560038401556001830180547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001690555f808455610de99060048501906120ca565b5050505050565b5f805f80610afb5f198787610967565b5f805f80610e0f878787610967565b90505f80610e1c83611410565b939a9099509297509195505050505050565b5f610e376108e8565b600201545f03610e4657505f90565b60065f80610e575f19846001610967565b90505b5f1981146102fa5781610e6c816123a6565b925050610e7b81846001610967565b9050610e5a565b5f7f4548e57ae2f1604df75a3d17fecaff7dd11ad7a93d9f8a0dc05e7144f46f3f7c8403610ef857610ef0610eeb84848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610a6e92505050565b61146e565b506002610a67565b6040517ff17c1d46000000000000000000000000000000000000000000000000000000008152600481018590526024016105c2565b5f428367ffffffffffffffff1611610f83576040517fc0851c8a00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff841660048201524260248201526044016105c2565b5f610f8c6108e8565b9050610f978161156e565b60028101805460019081018083555f928352610fb39190612301565b90505f826002018281548110610fcb57610fcb612261565b5f91825260209091206005909102018781556001810180547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff8916179055905060048101611023868261241b565b505f1960028201819055600382015561103d838388611617565b5095945050505050565b5f805f80610e0f87878761131b565b5f5b5f19821415801561109a57504283600201838154811061107a5761107a612261565b5f91825260209091206001600590920201015467ffffffffffffffff1611155b156110cb578260020182815481106110b4576110b4612261565b905f5260205f209060050201600301549150611058565b50919050565b5f5b5f19831461111f575f8460020184815481106110f1576110f1612261565b905f5260205f209060050201905082815f0154165f146111145783915050610a67565b6003015492506110d3565b505f199392505050565b5f5b5f19831461111f575f84600201848154811061114957611149612261565b5f918252602090912060059091020160018101549091504267ffffffffffffffff9091161115611179575061111f565b805483161561118b5783915050610a67565b60030154925061112b565b5f80851584151780156111ae575f92505f91506112ab565b6111b884876124d7565b91505f6111c488611761565b90505f6111d087611761565b90505f6111dd83836117c2565b5090505f6f0785ee10d5da46d900f436a000000000821115611212576f0785ee10d5da46d900f436a000000000820491506025015b670de0b6b3a764000082111561123357670de0b6b3a7640000820491506012015b633b9aca0082111561124c57633b9aca00820491506009015b61271082111561126157612710820491506004015b811561127557600a82049150600101611261565b61127f81876124d7565b95506112a18b8a61129b878761129687600a6125f2565b6117de565b896118c3565b9097509550505050505b5094509492505050565b5f805f6112c285856119cf565b91509150801580156112d2575081155b15611313576040517f8eba4d0700000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016105c2565b509392505050565b5f600783168103611358576040517fbf3cad0b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6113616108e8565b60028101549091505f03611379575f19915050610a67565b5f5f1986146113ac5781600201868154811061139757611397612261565b905f5260205f209060050201600201546113b2565b81600101545b905060018460028111156113c8576113c8612314565b036113e157610a2a826113db8484611ad6565b87611b4a565b60028460028111156113f5576113f5612314565b0361140557610a2a828287611b98565b610a62828287611b4a565b5f805f19830361142457505f928392509050565b5f61142d6108e8565b600201848154811061144157611441612261565b5f91825260209091206005909102018054600190910154909567ffffffffffffffff909116945092505050565b611478815f611c04565b156114af576040517f018d151200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6114b930611c54565b90505f6114c7600183611cfe565b90506114d38382611d22565b1561150d576040517f06c32712000000000000000000000000000000000000000000000000000000008152600481018490526024016105c2565b5f61152261151c84600a6125fd565b5f611cfe565b905061152e8482611d71565b15611568576040517fd24a8af1000000000000000000000000000000000000000000000000000000008152600481018590526024016105c2565b50505050565b60028101541561157b5750565b6002810180546001018082555f8281529190829061159b5761159b612261565b5f9182526020909120600160059092020181815590810180547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff161790555f1960028201819055600382015590506115fc611dc0565b5f808052600484016020526040902055505f19600590910155565b5f83600201838154811061162d5761162d612261565b905f5260205f20906005020190505f846001015490505b5f198114610de9578267ffffffffffffffff1685600201828154811061166c5761166c612261565b5f91825260209091206001600590920201015467ffffffffffffffff1611611735575f8560020182815481106116a4576116a4612261565b905f5260205f209060050201600301549050848660020183815481106116cc576116cc612261565b5f918252602090912060036005909202018101919091556002840183905583018190555f198114611725578486600201828154811061170d5761170d612261565b905f5260205f2090600502016002018190555061172d565b600186018590555b505050505050565b84600201818154811061174a5761174a612261565b905f5260205f209060050201600201549050611644565b5f808212156117be577f800000000000000000000000000000000000000000000000000000000000000082036117b857507f8000000000000000000000000000000000000000000000000000000000000000919050565b505f0390565b5090565b5f805f1983850993909202808410938190039390930393915050565b5f805f6117eb86866117c2565b91509150815f0361180f57838181611805576118056124fe565b0492505050610a67565b838210611859576040517f6c59da120000000000000000000000000000000000000000000000000000000081526004810187905260248101869052604481018590526064016105c2565b5f84868809600186198101871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103025f82900382900490920185841190960395909502919093039390930492909217029150509392505050565b5f805f858718121561198d577f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84111561197a576119227f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600161260b565b840361195257507f80000000000000000000000000000000000000000000000000000000000000009050816119c6565b61195d600a8561261e565b6119669061263d565b6119718460016124d7565b915091506119c6565b6119838461263d565b83915091506119c6565b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8411156119c057611966600a8561261e565b50829050815b94509492505050565b5f601b83900b8314838382611a33577d90e40fbeea1d3a4abc8955e946fe31cdcf66f634e1000000000000000000860515611a1357620186a0860595506005850194505b8586601b0b14611a2e57600a86059550846001019450611a13565b611a49565b855f03611a4957505f925060019150611acf9050565b848560030b14611aa5575f851215611a6957505f9250829150611acf9050565b6040517fd556b11100000000000000000000000000000000000000000000000000000000815260048101839052602481018290526044016105c2565b50507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841660e084901b1791505b9250929050565b5f5b5f198214158015611b19575042836002018381548110611afa57611afa612261565b5f91825260209091206001600590920201015467ffffffffffffffff16115b156110cb57826002018281548110611b3357611b33612261565b905f5260205f209060050201600201549150611ad8565b5f5b5f19831461111f575f846002018481548110611b6a57611b6a612261565b905f5260205f209060050201905082815f0154165f14611b8d5783915050610a67565b600201549250611b4c565b5f5b5f19831461111f575f846002018481548110611bb857611bb8612261565b5f918252602090912060059091020160018101549091504267ffffffffffffffff90911611611be7575061111f565b8054831615611bf95783915050610a67565b600201549250611b9a565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d611c4784848484611e43565b1215979650505050505050565b5f611c5d611f17565b6040517f54636d2b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316600482015273200e12d10bb0c5e4a17e7018f0f1161919bb9389906354636d2b906024016020604051808303815f875af1158015611cda573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a83919061266d565b5f805f611d0b8585611fbd565b91509150611d19828261201f565b95945050505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d611d6584848484611e43565b13979650505050505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d611db484848484611e43565b12979650505050505050565b5f807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00611e0e60017fb750591399365444a618527b69a54ce09476c8bde1ecff60f5aa1fe2b52605ff612301565b604051602001611e2091815260200190565b60408051808303601f190181529190528051602090910120166002015492915050565b5f8085158415178187128286121817858414178015611e6857868592509250506119c6565b505f85841315611e7c575092949193919260015b8386035f8112604c8213178015611eaf578215611ea1575f89945094505050506119c6565b885f945094505050506119c6565b600a82900a8981028a828281611ec757611ec76124fe565b0514611ef3578415611ee3575f8b9650965050505050506119c6565b8a5f9650965050505050506119c6565b8415611f085788965094506119c69350505050565b95508794506119c69350505050565b73200e12d10bb0c5e4a17e7018f0f1161919bb93893b1580611f6e575073200e12d10bb0c5e4a17e7018f0f1161919bb93893f7f1de7d717526cba131d684e312dedbf0852adef9cced9e36798ae4937f7145d4114155b15611fbb576040517f73e6d7b300000000000000000000000000000000000000000000000000000000815273200e12d10bb0c5e4a17e7018f0f1161919bb938960048201526024016105c2565b565b5f805f805f611fcc8787612071565b92509250925080612013576040517fc471796600000000000000000000000000000000000000000000000000000000815260048101849052602481018390526044016105c2565b50909590945092505050565b5f805f61202c85856119cf565b9150915080611313576040517f22c9f7bb00000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016105c2565b5f808060ff841681037f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8611156120bc57600a860460018201600a88065f149350935093505061036b565b85935091506001905061036b565b5080546120d690612275565b5f825580601f106120e5575050565b601f0160209004905f5260205f20908101906121019190612104565b50565b5b808211156117be575f8155600101612105565b8035600381106106e6575f80fd5b5f8060408385031215612137575f80fd5b8235915061214760208401612118565b90509250929050565b5f60208284031215612160575f80fd5b5035919050565b5f805f60608486031215612179575f80fd5b833592506020840135915061219060408501612118565b90509250925092565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610a676020830184612199565b5f805f80606085870312156121ec575f80fd5b84359350602085013567ffffffffffffffff808216821461220b575f80fd5b90935060408601359080821115612220575f80fd5b818701915087601f830112612233575f80fd5b813581811115612241575f80fd5b886020828501011115612252575f80fd5b95989497505060200194505050565b634e487b7160e01b5f52603260045260245ffd5b600181811c9082168061228957607f821691505b6020821081036110cb57634e487b7160e01b5f52602260045260245ffd5b84815267ffffffffffffffff8416602082015260606040820152816060820152818360808301375f818301608090810191909152601f909201601f191601019392505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610a8357610a836122ed565b634e487b7160e01b5f52602160045260245ffd5b5f60208284031215612338575f80fd5b5051919050565b5f6020828403121561234f575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610a67575f80fd5b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f611d196060830184612199565b5f5f1982036123b7576123b76122ed565b5060010190565b634e487b7160e01b5f52604160045260245ffd5b601f82111561241657805f5260205f20601f840160051c810160208510156123f75750805b601f840160051c820191505b81811015610de9575f8155600101612403565b505050565b815167ffffffffffffffff811115612435576124356123be565b612449816124438454612275565b846123d2565b602080601f83116001811461247c575f84156124655750858301515b5f19600386901b1c1916600185901b17855561172d565b5f85815260208120601f198616915b828110156124aa5788860151825594840194600190910190840161248b565b50858210156124c757878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b8082018281125f8312801582168215821617156124f6576124f66122ed565b505092915050565b634e487b7160e01b5f52601260045260245ffd5b600181815b8085111561254c57815f1904821115612532576125326122ed565b8085161561253f57918102915b93841c9390800290612517565b509250929050565b5f8261256257506001610a83565b8161256e57505f610a83565b8160018114612584576002811461258e576125aa565b6001915050610a83565b60ff84111561259f5761259f6122ed565b50506001821b610a83565b5060208310610133831016604e8410600b84101617156125cd575081810a610a83565b6125d78383612512565b805f19048211156125ea576125ea6122ed565b029392505050565b5f610a678383612554565b5f610a6760ff841683612554565b80820180821115610a8357610a836122ed565b5f8261263857634e487b7160e01b5f52601260045260245ffd5b500490565b5f7f800000000000000000000000000000000000000000000000000000000000000082036117b8576117b86122ed565b5f6020828403121561267d575f80fd5b815160ff81168114610a67575f80fd"; diff --git a/src/generated/0_1_6/StoxOffchainAssetReceiptVaultAuthorizerV1.pointers.sol b/src/generated/0_1_6/StoxOffchainAssetReceiptVaultAuthorizerV1.pointers.sol deleted file mode 100644 index e161c73a..00000000 --- a/src/generated/0_1_6/StoxOffchainAssetReceiptVaultAuthorizerV1.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0xf8a1d9b2fa068bae3c1a607434db48364a5cdab3020bd7e315ed2662a3b35b5f); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x2EA0d35d0B1F57C42e6130f298930228bCbFDe9b); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"6080604052348015600e575f80fd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b611746806100d65f395ff3fe608060405234801561000f575f80fd5b506004361061009f575f3560e01c8063439fab911161007257806391d148541161005857806391d1485414610168578063a217fddf146101cc578063d547741f146101d3575f80fd5b8063439fab911461014257806359f89dda14610155575f80fd5b806301ffc9a7146100a3578063248a9ca3146100cb5780632f2ff15d1461011a57806336568abe1461012f575b5f80fd5b6100b66100b13660046112aa565b6101e6565b60405190151581526020015b60405180910390f35b61010c6100d93660046112f0565b5f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b6040519081526020016100c2565b61012d610128366004611328565b6102d9565b005b61012d61013d366004611328565b610322565b61010c610150366004611449565b610380565b61012d610163366004611483565b6106a0565b6100b6610176366004611328565b5f9182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b61010c5f81565b61012d6101e1366004611328565b610a49565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f59f89dda00000000000000000000000000000000000000000000000000000000148061027857507fffffffff0000000000000000000000000000000000000000000000000000000082167f439fab9100000000000000000000000000000000000000000000000000000000145b806102c457507fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000145b806102d357506102d382610a8c565b92915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015461031281610b22565b61031c8383610b2f565b50505050565b73ffffffffffffffffffffffffffffffffffffffff81163314610371576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61037b8282610c4d565b505050565b5f8061038a610d29565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156103b65750825b90505f8267ffffffffffffffff1660011480156103d25750303b155b9050811580156103e0575080155b15610417576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156104785784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b5f8780602001905181019061048d91906114d8565b90505f61049982610d51565b90507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc381146104cb5796506106359050565b6105157ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f897fd6075ca92e18a15ce0e8ecaaae57a112072844045d11beeb264aac5f85e0daf26110f9565b61053f7fd6075ca92e18a15ce0e8ecaaae57a112072844045d11beeb264aac5f85e0daf2806110f9565b6105897f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e77fe25ff801c3c463dad5f8999289b7b43090e0f6f5039ae7c220cbb762fe8ff3736110f9565b6105b37fe25ff801c3c463dad5f8999289b7b43090e0f6f5039ae7c220cbb762fe8ff373806110f9565b6105e07fd6075ca92e18a15ce0e8ecaaae57a112072844045d11beeb264aac5f85e0daf2835f0151610b2f565b5061060e7fe25ff801c3c463dad5f8999289b7b43090e0f6f5039ae7c220cbb762fe8ff373835f0151610b2f565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc3975050505b83156106965784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a8214806106ed57507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a4882145b156109b6575f805f7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a850361074d575f848060200190518101906107319190611536565b9050805f01519350806020015192508060600151915050610779565b5f84806020019051810190610762919061162b565b805160208201516080909201519095509093509150505b80156109ae5773ffffffffffffffffffffffffffffffffffffffff83161580156107e6575073ffffffffffffffffffffffffffffffffffffffff82165f9081527f96f78a99f93d631b75bc050854c9b764642c10564e41ed27c197a36ddabb1df9602052604090205460ff165b80610853575073ffffffffffffffffffffffffffffffffffffffff8216158015610853575073ffffffffffffffffffffffffffffffffffffffff83165f9081527f3907f76fa0fb1e5d0f263c5c4fe4316026052cf960c55a1c768106d8b9701c10602052604090205460ff165b1561086057505050505050565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a851480156108d2575073ffffffffffffffffffffffffffffffffffffffff86165f9081527f6ba48721fcbb2613af13d8285fe9ee4a081f7995464037bb5ea27397912881d2602052604090205460ff165b8061094a57507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a488514801561094a575073ffffffffffffffffffffffffffffffffffffffff86165f9081527f29e42896fa6edf5a5d7ff0bcd00acffbece6eb6cc7b44d0807bfd84929cc6e1b602052604090205460ff165b1561095757505050505050565b6040517ffe720f7800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8085166004830152831660248201526044015b60405180910390fd5b505050505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915290205460ff1615610a1157505050565b8282826040517f3ae4063b0000000000000000000000000000000000000000000000000000000081526004016109a5939291906116ed565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020526040902060010154610a8281610b22565b61031c8383610c4d565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806102d357507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146102d3565b610b2c813361119a565b50565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020818152604080842073ffffffffffffffffffffffffffffffffffffffff8616855290915282205460ff16610c44575f8481526020828152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610be03390565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506102d3565b5f9150506102d3565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020818152604080842073ffffffffffffffffffffffffffffffffffffffff8616855290915282205460ff1615610c44575f8481526020828152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506102d3565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006102d3565b5f610d5a611244565b815173ffffffffffffffffffffffffffffffffffffffff16610da8576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610df27f50a07cb25d0d864370863300b20987dfdae089abad71b607faf639d09d0533917f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b6110f9565b610e1c7f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b806110f9565b610e667f3dd35eca0ca8a128757fa464a5dfa4ad6cc4853cad96dce4e90fdbea4f0a52e37f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d6110f9565b610e907f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d806110f9565b610eda7f54f0af3716c79b30b8c228679d31d77a1a5f526c16af3262730e0a8de4363fed7fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c6110f9565b610f047fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c806110f9565b610f4e7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8217f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc026110f9565b610f787f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02806110f9565b610fc27f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e9828697fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d36110f9565b610fec7fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3806110f9565b6110197f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b835f0151610b2f565b506110477f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d835f0151610b2f565b506110757fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c835f0151610b2f565b506110a37f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02835f0151610b2f565b506110d17fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3835f0151610b2f565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc392915050565b7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268005f611152845f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b5f85815260208490526040808220600101869055519192508491839187917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a450505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16611240576040517fe2517d3f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602481018390526044016109a5565b5050565b61124c61124e565b565b61125661128c565b61124c576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f611295610d29565b5468010000000000000000900460ff16919050565b5f602082840312156112ba575f80fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146112e9575f80fd5b9392505050565b5f60208284031215611300575f80fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff81168114610b2c575f80fd5b5f8060408385031215611339575f80fd5b82359150602083013561134b81611307565b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60405160a0810167ffffffffffffffff811182821017156113a6576113a6611356565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156113d5576113d5611356565b604052919050565b5f82601f8301126113ec575f80fd5b813567ffffffffffffffff81111561140657611406611356565b6114196020601f19601f840116016113ac565b81815284602083860101111561142d575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60208284031215611459575f80fd5b813567ffffffffffffffff81111561146f575f80fd5b61147b848285016113dd565b949350505050565b5f805f60608486031215611495575f80fd5b83356114a081611307565b925060208401359150604084013567ffffffffffffffff8111156114c2575f80fd5b6114ce868287016113dd565b9150509250925092565b5f602082840312156114e8575f80fd5b6040516020810181811067ffffffffffffffff8211171561150b5761150b611356565b604052825161151981611307565b81529392505050565b80518015158114611531575f80fd5b919050565b5f60808284031215611546575f80fd5b6040516080810181811067ffffffffffffffff8211171561156957611569611356565b604052825161157781611307565b8152602083015161158781611307565b6020820152604083810151908201526115a260608401611522565b60608201529392505050565b5f82601f8301126115bd575f80fd5b8151602067ffffffffffffffff8211156115d9576115d9611356565b8160051b6115e88282016113ac565b9283528481018201928281019087851115611601575f80fd5b83870192505b8483101561162057825182529183019190830190611607565b979650505050505050565b5f6020828403121561163b575f80fd5b815167ffffffffffffffff80821115611652575f80fd5b9083019060a08286031215611665575f80fd5b61166d611383565b825161167881611307565b8152602083015161168881611307565b602082015260408301518281111561169e575f80fd5b6116aa878286016115ae565b6040830152506060830151828111156116c1575f80fd5b6116cd878286016115ae565b6060830152506116df60808401611522565b608082015295945050505050565b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f82518060608401528060208501608085015e5f608082850101526080601f19601f83011684010191505094935050505056"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b506004361061009f575f3560e01c8063439fab911161007257806391d148541161005857806391d1485414610168578063a217fddf146101cc578063d547741f146101d3575f80fd5b8063439fab911461014257806359f89dda14610155575f80fd5b806301ffc9a7146100a3578063248a9ca3146100cb5780632f2ff15d1461011a57806336568abe1461012f575b5f80fd5b6100b66100b13660046112aa565b6101e6565b60405190151581526020015b60405180910390f35b61010c6100d93660046112f0565b5f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b6040519081526020016100c2565b61012d610128366004611328565b6102d9565b005b61012d61013d366004611328565b610322565b61010c610150366004611449565b610380565b61012d610163366004611483565b6106a0565b6100b6610176366004611328565b5f9182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b61010c5f81565b61012d6101e1366004611328565b610a49565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f59f89dda00000000000000000000000000000000000000000000000000000000148061027857507fffffffff0000000000000000000000000000000000000000000000000000000082167f439fab9100000000000000000000000000000000000000000000000000000000145b806102c457507fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000145b806102d357506102d382610a8c565b92915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015461031281610b22565b61031c8383610b2f565b50505050565b73ffffffffffffffffffffffffffffffffffffffff81163314610371576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61037b8282610c4d565b505050565b5f8061038a610d29565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156103b65750825b90505f8267ffffffffffffffff1660011480156103d25750303b155b9050811580156103e0575080155b15610417576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156104785784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b5f8780602001905181019061048d91906114d8565b90505f61049982610d51565b90507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc381146104cb5796506106359050565b6105157ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f897fd6075ca92e18a15ce0e8ecaaae57a112072844045d11beeb264aac5f85e0daf26110f9565b61053f7fd6075ca92e18a15ce0e8ecaaae57a112072844045d11beeb264aac5f85e0daf2806110f9565b6105897f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e77fe25ff801c3c463dad5f8999289b7b43090e0f6f5039ae7c220cbb762fe8ff3736110f9565b6105b37fe25ff801c3c463dad5f8999289b7b43090e0f6f5039ae7c220cbb762fe8ff373806110f9565b6105e07fd6075ca92e18a15ce0e8ecaaae57a112072844045d11beeb264aac5f85e0daf2835f0151610b2f565b5061060e7fe25ff801c3c463dad5f8999289b7b43090e0f6f5039ae7c220cbb762fe8ff373835f0151610b2f565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc3975050505b83156106965784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a8214806106ed57507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a4882145b156109b6575f805f7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a850361074d575f848060200190518101906107319190611536565b9050805f01519350806020015192508060600151915050610779565b5f84806020019051810190610762919061162b565b805160208201516080909201519095509093509150505b80156109ae5773ffffffffffffffffffffffffffffffffffffffff83161580156107e6575073ffffffffffffffffffffffffffffffffffffffff82165f9081527f96f78a99f93d631b75bc050854c9b764642c10564e41ed27c197a36ddabb1df9602052604090205460ff165b80610853575073ffffffffffffffffffffffffffffffffffffffff8216158015610853575073ffffffffffffffffffffffffffffffffffffffff83165f9081527f3907f76fa0fb1e5d0f263c5c4fe4316026052cf960c55a1c768106d8b9701c10602052604090205460ff165b1561086057505050505050565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a851480156108d2575073ffffffffffffffffffffffffffffffffffffffff86165f9081527f6ba48721fcbb2613af13d8285fe9ee4a081f7995464037bb5ea27397912881d2602052604090205460ff165b8061094a57507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a488514801561094a575073ffffffffffffffffffffffffffffffffffffffff86165f9081527f29e42896fa6edf5a5d7ff0bcd00acffbece6eb6cc7b44d0807bfd84929cc6e1b602052604090205460ff165b1561095757505050505050565b6040517ffe720f7800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8085166004830152831660248201526044015b60405180910390fd5b505050505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915290205460ff1615610a1157505050565b8282826040517f3ae4063b0000000000000000000000000000000000000000000000000000000081526004016109a5939291906116ed565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020526040902060010154610a8281610b22565b61031c8383610c4d565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806102d357507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146102d3565b610b2c813361119a565b50565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020818152604080842073ffffffffffffffffffffffffffffffffffffffff8616855290915282205460ff16610c44575f8481526020828152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610be03390565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506102d3565b5f9150506102d3565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020818152604080842073ffffffffffffffffffffffffffffffffffffffff8616855290915282205460ff1615610c44575f8481526020828152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506102d3565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006102d3565b5f610d5a611244565b815173ffffffffffffffffffffffffffffffffffffffff16610da8576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610df27f50a07cb25d0d864370863300b20987dfdae089abad71b607faf639d09d0533917f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b6110f9565b610e1c7f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b806110f9565b610e667f3dd35eca0ca8a128757fa464a5dfa4ad6cc4853cad96dce4e90fdbea4f0a52e37f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d6110f9565b610e907f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d806110f9565b610eda7f54f0af3716c79b30b8c228679d31d77a1a5f526c16af3262730e0a8de4363fed7fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c6110f9565b610f047fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c806110f9565b610f4e7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8217f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc026110f9565b610f787f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02806110f9565b610fc27f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e9828697fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d36110f9565b610fec7fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3806110f9565b6110197f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b835f0151610b2f565b506110477f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d835f0151610b2f565b506110757fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c835f0151610b2f565b506110a37f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02835f0151610b2f565b506110d17fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3835f0151610b2f565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc392915050565b7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268005f611152845f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b5f85815260208490526040808220600101869055519192508491839187917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a450505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16611240576040517fe2517d3f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602481018390526044016109a5565b5050565b61124c61124e565b565b61125661128c565b61124c576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f611295610d29565b5468010000000000000000900460ff16919050565b5f602082840312156112ba575f80fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146112e9575f80fd5b9392505050565b5f60208284031215611300575f80fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff81168114610b2c575f80fd5b5f8060408385031215611339575f80fd5b82359150602083013561134b81611307565b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60405160a0810167ffffffffffffffff811182821017156113a6576113a6611356565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156113d5576113d5611356565b604052919050565b5f82601f8301126113ec575f80fd5b813567ffffffffffffffff81111561140657611406611356565b6114196020601f19601f840116016113ac565b81815284602083860101111561142d575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60208284031215611459575f80fd5b813567ffffffffffffffff81111561146f575f80fd5b61147b848285016113dd565b949350505050565b5f805f60608486031215611495575f80fd5b83356114a081611307565b925060208401359150604084013567ffffffffffffffff8111156114c2575f80fd5b6114ce868287016113dd565b9150509250925092565b5f602082840312156114e8575f80fd5b6040516020810181811067ffffffffffffffff8211171561150b5761150b611356565b604052825161151981611307565b81529392505050565b80518015158114611531575f80fd5b919050565b5f60808284031215611546575f80fd5b6040516080810181811067ffffffffffffffff8211171561156957611569611356565b604052825161157781611307565b8152602083015161158781611307565b6020820152604083810151908201526115a260608401611522565b60608201529392505050565b5f82601f8301126115bd575f80fd5b8151602067ffffffffffffffff8211156115d9576115d9611356565b8160051b6115e88282016113ac565b9283528481018201928281019087851115611601575f80fd5b83870192505b8483101561162057825182529183019190830190611607565b979650505050505050565b5f6020828403121561163b575f80fd5b815167ffffffffffffffff80821115611652575f80fd5b9083019060a08286031215611665575f80fd5b61166d611383565b825161167881611307565b8152602083015161168881611307565b602082015260408301518281111561169e575f80fd5b6116aa878286016115ae565b6040830152506060830151828111156116c1575f80fd5b6116cd878286016115ae565b6060830152506116df60808401611522565b608082015295945050505050565b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f82518060608401528060208501608085015e5f608082850101526080601f19601f83011684010191505094935050505056"; diff --git a/src/generated/0_1_6/StoxOffchainAssetReceiptVaultBeaconSetDeployer.pointers.sol b/src/generated/0_1_6/StoxOffchainAssetReceiptVaultBeaconSetDeployer.pointers.sol deleted file mode 100644 index 31a0f1ac..00000000 --- a/src/generated/0_1_6/StoxOffchainAssetReceiptVaultBeaconSetDeployer.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x4637b099fe9279a8d4d88d9176ccadf92b20970eaf0b57b51997756d479ef43b); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x679ab223dAb158Ea93e1a4F49104DE436C58eAb8); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"60c060405234801561000f575f80fd5b5060408051606081018252738e4bdeec7ceb9570d440676345da1dce10329f5b808252732df5cfe6d688ef9ff1b7c59a499d254b1527b2866020830181905273d7f91c1c6e6e651ec3f1fd707af7cbb7526206e18385015292519192916100759061010b565b6001600160a01b03928316815291166020820152604001604051809103905ff0801580156100a5573d5f803e3d5ffd5b506001600160a01b0316608052604080820151825191519091906100c89061010b565b6001600160a01b03928316815291166020820152604001604051809103905ff0801580156100f8573d5f803e3d5ffd5b506001600160a01b031660a05250610118565b6104f780610fd783390190565b60805160a051610e926101455f395f818160c701526102d801525f8181607b01526102630152610e925ff3fe608060405234801561000f575f80fd5b506004361061004a575f3560e01c806301ffc9a71461004e5780632c9b7f40146100765780632f77a1c1146100c25780634904fab3146100e9575b5f80fd5b61006161005c3660046105d0565b6100fc565b60405190151581526020015b60405180910390f35b61009d7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161006d565b61009d7f000000000000000000000000000000000000000000000000000000000000000081565b61009d6100f736600461075e565b610194565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f4ae8243200000000000000000000000000000000000000000000000000000000148061018e57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b6020810151606001515f9073ffffffffffffffffffffffffffffffffffffffff1615610212576020820151606001516040517ffc47d97600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116600482015260240160405180910390fd5b815173ffffffffffffffffffffffffffffffffffffffff16610260576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7f000000000000000000000000000000000000000000000000000000000000000060405161028e906105c3565b73ffffffffffffffffffffffffffffffffffffffff90911681526040602082018190525f90820152606001604051809103905ff0801580156102d2573d5f803e3d5ffd5b5090505f7f0000000000000000000000000000000000000000000000000000000000000000604051610303906105c3565b73ffffffffffffffffffffffffffffffffffffffff90911681526040602082018190525f90820152606001604051809103905ff080158015610347573d5f803e3d5ffd5b506040805173ffffffffffffffffffffffffffffffffffffffff80841660208301529293507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc39285169163439fab9191016040516020818303038152906040526040518263ffffffff1660e01b81526004016103c39190610894565b6020604051808303815f875af11580156103df573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061040391906108a6565b1461043a576040517f0219069c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8184602001516060019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc38173ffffffffffffffffffffffffffffffffffffffff1663439fab91866040516020016104c491906108bd565b6040516020818303038152906040526040518263ffffffff1660e01b81526004016104ef9190610894565b6020604051808303815f875af115801561050b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061052f91906108a6565b14610566576040517f09c5931500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805133815273ffffffffffffffffffffffffffffffffffffffff838116602083015284168183015290517fa0d99d93cf7a5f89661fa0829369a7e4896e755871efe65440bab2429387d55b9181900360600190a19392505050565b61052f8061096383390190565b5f602082840312156105e0575f80fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461060f575f80fd5b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff8111828210171561066657610666610616565b60405290565b6040516080810167ffffffffffffffff8111828210171561066657610666610616565b803573ffffffffffffffffffffffffffffffffffffffff811681146106b2575f80fd5b919050565b5f82601f8301126106c6575f80fd5b813567ffffffffffffffff808211156106e1576106e1610616565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561072757610727610616565b8160405283815286602085880101111561073f575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f6020828403121561076e575f80fd5b813567ffffffffffffffff80821115610785575f80fd5b9083019060408286031215610798575f80fd5b6107a0610643565b6107a98361068f565b81526020830135828111156107bc575f80fd5b9290920191608083870312156107d0575f80fd5b6107d861066c565b6107e18461068f565b81526020840135838111156107f4575f80fd5b610800888287016106b7565b602083015250604084013583811115610817575f80fd5b610823888287016106b7565b6040830152506108356060850161068f565b6060820152602082015295945050505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f61060f6020830184610848565b5f602082840312156108b6575f80fd5b5051919050565b602081525f73ffffffffffffffffffffffffffffffffffffffff8084511660208401526020840151604080850152818151166060850152602081015160808086015261090c60e0860182610848565b905060408201517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08683030160a08701526109478282610848565b9150508260608301511660c08601528093505050509291505056fe60a060405260405161052f38038061052f83398101604081905261002291610331565b61002c828261003e565b506001600160a01b031660805261040d565b610047826100fb565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a28051156100ef576100ea826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e491906103ed565b82610209565b505050565b6100f76102aa565b5050565b806001600160a01b03163b5f0361013557604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b815290515f92841691635c60da1b9160048083019260209291908290030181865afa1580156101ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d291906103ed565b9050806001600160a01b03163b5f036100f757604051634c9c8ce360e01b81526001600160a01b038216600482015260240161012c565b60605f61021684846102cb565b905080801561023757505f3d118061023757505f846001600160a01b03163b115b1561024c576102446102de565b9150506102a4565b801561027657604051639996b31560e01b81526001600160a01b038516600482015260240161012c565b3d15610289576102846102f7565b6102a2565b60405163d6bda27560e01b815260040160405180910390fd5b505b92915050565b34156102c95760405163b398979f60e01b815260040160405180910390fd5b565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b6040513d5f823e3d81fd5b80516001600160a01b0381168114610318575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215610342575f80fd5b61034b83610302565b60208401519092506001600160401b0380821115610367575f80fd5b818501915085601f83011261037a575f80fd5b81518181111561038c5761038c61031d565b604051601f8201601f19908116603f011681019083821181831017156103b4576103b461031d565b816040528281528860208487010111156103cc575f80fd5b8260208601602083015e5f6020848301015280955050505050509250929050565b5f602082840312156103fd575f80fd5b61040682610302565b9392505050565b60805161010b6104245f395f6023015261010b5ff3fe608060405261000c61000e565b005b61001e610019610020565b6100b3565b565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561008a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100ae91906100d1565b905090565b365f80375f80365f845af43d5f803e8080156100cd573d5ff35b3d5ffd5b5f602082840312156100e1575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610104575f80fd5b939250505056608060405234801561000f575f80fd5b506040516104f73803806104f783398101604081905261002e9161015f565b806001600160a01b03811661005d57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b61006681610077565b50610070826100c6565b5050610190565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b806001600160a01b03163b5f036100fb5760405163211eb15960e21b81526001600160a01b0382166004820152602401610054565b600180546001600160a01b0319166001600160a01b0383169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b80516001600160a01b038116811461015a575f80fd5b919050565b5f8060408385031215610170575f80fd5b61017983610144565b915061018760208401610144565b90509250929050565b61035a8061019d5f395ff3fe608060405234801561000f575f80fd5b5060043610610064575f3560e01c8063715018a61161004d578063715018a6146100c05780638da5cb5b146100c8578063f2fde38b146100e5575f80fd5b80633659cfe6146100685780635c60da1b1461007d575b5f80fd5b61007b610076366004610320565b6100f8565b005b60015473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61007b61010c565b5f5473ffffffffffffffffffffffffffffffffffffffff16610097565b61007b6100f3366004610320565b61011f565b610100610184565b610109816101d6565b50565b610114610184565b61011d5f6102ac565b565b610127610184565b73ffffffffffffffffffffffffffffffffffffffff811661017b576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f60048201526024015b60405180910390fd5b610109816102ac565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461011d576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610172565b8073ffffffffffffffffffffffffffffffffffffffff163b5f0361023e576040517f847ac56400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602401610172565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f60208284031215610330575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610353575f80fd5b939250505056"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b506004361061004a575f3560e01c806301ffc9a71461004e5780632c9b7f40146100765780632f77a1c1146100c25780634904fab3146100e9575b5f80fd5b61006161005c3660046105d0565b6100fc565b60405190151581526020015b60405180910390f35b61009d7f000000000000000000000000913f9edb29dd88314ee1559c18495b5332464d3b81565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161006d565b61009d7f000000000000000000000000bc924b1c3d3f3e038d5bf85710f695bcb22e715281565b61009d6100f736600461075e565b610194565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f4ae8243200000000000000000000000000000000000000000000000000000000148061018e57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b6020810151606001515f9073ffffffffffffffffffffffffffffffffffffffff1615610212576020820151606001516040517ffc47d97600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116600482015260240160405180910390fd5b815173ffffffffffffffffffffffffffffffffffffffff16610260576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7f000000000000000000000000913f9edb29dd88314ee1559c18495b5332464d3b60405161028e906105c3565b73ffffffffffffffffffffffffffffffffffffffff90911681526040602082018190525f90820152606001604051809103905ff0801580156102d2573d5f803e3d5ffd5b5090505f7f000000000000000000000000bc924b1c3d3f3e038d5bf85710f695bcb22e7152604051610303906105c3565b73ffffffffffffffffffffffffffffffffffffffff90911681526040602082018190525f90820152606001604051809103905ff080158015610347573d5f803e3d5ffd5b506040805173ffffffffffffffffffffffffffffffffffffffff80841660208301529293507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc39285169163439fab9191016040516020818303038152906040526040518263ffffffff1660e01b81526004016103c39190610894565b6020604051808303815f875af11580156103df573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061040391906108a6565b1461043a576040517f0219069c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8184602001516060019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc38173ffffffffffffffffffffffffffffffffffffffff1663439fab91866040516020016104c491906108bd565b6040516020818303038152906040526040518263ffffffff1660e01b81526004016104ef9190610894565b6020604051808303815f875af115801561050b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061052f91906108a6565b14610566576040517f09c5931500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805133815273ffffffffffffffffffffffffffffffffffffffff838116602083015284168183015290517fa0d99d93cf7a5f89661fa0829369a7e4896e755871efe65440bab2429387d55b9181900360600190a19392505050565b61052f8061096383390190565b5f602082840312156105e0575f80fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461060f575f80fd5b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff8111828210171561066657610666610616565b60405290565b6040516080810167ffffffffffffffff8111828210171561066657610666610616565b803573ffffffffffffffffffffffffffffffffffffffff811681146106b2575f80fd5b919050565b5f82601f8301126106c6575f80fd5b813567ffffffffffffffff808211156106e1576106e1610616565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561072757610727610616565b8160405283815286602085880101111561073f575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f6020828403121561076e575f80fd5b813567ffffffffffffffff80821115610785575f80fd5b9083019060408286031215610798575f80fd5b6107a0610643565b6107a98361068f565b81526020830135828111156107bc575f80fd5b9290920191608083870312156107d0575f80fd5b6107d861066c565b6107e18461068f565b81526020840135838111156107f4575f80fd5b610800888287016106b7565b602083015250604084013583811115610817575f80fd5b610823888287016106b7565b6040830152506108356060850161068f565b6060820152602082015295945050505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f61060f6020830184610848565b5f602082840312156108b6575f80fd5b5051919050565b602081525f73ffffffffffffffffffffffffffffffffffffffff8084511660208401526020840151604080850152818151166060850152602081015160808086015261090c60e0860182610848565b905060408201517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08683030160a08701526109478282610848565b9150508260608301511660c08601528093505050509291505056fe60a060405260405161052f38038061052f83398101604081905261002291610331565b61002c828261003e565b506001600160a01b031660805261040d565b610047826100fb565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a28051156100ef576100ea826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e491906103ed565b82610209565b505050565b6100f76102aa565b5050565b806001600160a01b03163b5f0361013557604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b815290515f92841691635c60da1b9160048083019260209291908290030181865afa1580156101ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d291906103ed565b9050806001600160a01b03163b5f036100f757604051634c9c8ce360e01b81526001600160a01b038216600482015260240161012c565b60605f61021684846102cb565b905080801561023757505f3d118061023757505f846001600160a01b03163b115b1561024c576102446102de565b9150506102a4565b801561027657604051639996b31560e01b81526001600160a01b038516600482015260240161012c565b3d15610289576102846102f7565b6102a2565b60405163d6bda27560e01b815260040160405180910390fd5b505b92915050565b34156102c95760405163b398979f60e01b815260040160405180910390fd5b565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b6040513d5f823e3d81fd5b80516001600160a01b0381168114610318575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215610342575f80fd5b61034b83610302565b60208401519092506001600160401b0380821115610367575f80fd5b818501915085601f83011261037a575f80fd5b81518181111561038c5761038c61031d565b604051601f8201601f19908116603f011681019083821181831017156103b4576103b461031d565b816040528281528860208487010111156103cc575f80fd5b8260208601602083015e5f6020848301015280955050505050509250929050565b5f602082840312156103fd575f80fd5b61040682610302565b9392505050565b60805161010b6104245f395f6023015261010b5ff3fe608060405261000c61000e565b005b61001e610019610020565b6100b3565b565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561008a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100ae91906100d1565b905090565b365f80375f80365f845af43d5f803e8080156100cd573d5ff35b3d5ffd5b5f602082840312156100e1575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610104575f80fd5b939250505056"; diff --git a/src/generated/0_1_6/StoxOffchainAssetReceiptVaultPaymentMintAuthorizerV1.pointers.sol b/src/generated/0_1_6/StoxOffchainAssetReceiptVaultPaymentMintAuthorizerV1.pointers.sol deleted file mode 100644 index f343350f..00000000 --- a/src/generated/0_1_6/StoxOffchainAssetReceiptVaultPaymentMintAuthorizerV1.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x4d94318cde48f1bc20f97e00aefad84bfb7c9db15c81b882862e127b05e06e15); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0xeaD68E489Cb19453b294dc46a3A5710b0d46d17F); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"6080604052348015600e575f80fd5b506015601f565b601b601f565b60cf565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615606e5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460cc5780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b612650806100dc5f395ff3fe608060405234801561000f575f80fd5b5060043610610115575f3560e01c806359f89dda116100ad578063a086e1751161007d578063a4c9d30011610063578063a4c9d3001461030a578063d547741f14610312578063f2fde38b14610325575f80fd5b8063a086e175146102fb578063a217fddf14610303575f80fd5b806359f89dda14610281578063715018a6146102945780638da5cb5b1461029c57806391d14854146102a4575f80fd5b80633013ce29116100e85780633013ce29146101c8578063325cd7961461020c57806336568abe1461025b578063439fab911461026e575f80fd5b806301ffc9a71461011957806304a0db2014610141578063248a9ca3146101725780632f2ff15d146101b3575b5f80fd5b61012c610127366004611eec565b610338565b60405190151581526020015b60405180910390f35b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3202545b604051908152602001610138565b610164610180366004611f2b565b5f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b6101c66101c1366004611f56565b61042b565b005b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3201546001600160a01b03165b6040516001600160a01b039091168152602001610138565b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b32015474010000000000000000000000000000000000000000900460ff1660405160ff9091168152602001610138565b6101c6610269366004611f56565b610474565b61016461027c3660046120a7565b6104c5565b6101c661028f3660046120d9565b610a55565b6101c6610e31565b6101f4610e44565b61012c6102b2366004611f56565b5f9182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6101f4610e78565b6101645f81565b6101c6610ea0565b6101c6610320366004611f56565b610f69565b6101c661033336600461212e565b610fac565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f59f89dda0000000000000000000000000000000000000000000000000000000014806103ca57507fffffffff0000000000000000000000000000000000000000000000000000000082167f439fab9100000000000000000000000000000000000000000000000000000000145b8061041657507fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000145b80610425575061042582610fff565b92915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015461046481611095565b61046e838361109f565b50505050565b6001600160a01b03811633146104b6576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104c08282611190565b505050565b5f806104cf611252565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156104fb5750825b90505f8267ffffffffffffffff1660011480156105175750303b155b905081158015610525575080155b1561055c576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156105bd5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b5f878060200190518101906105d29190612149565b80519091506001600160a01b0316610616576040517fa7d26c7300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60208101516001600160a01b031661065a576040517f364467d300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408101516001600160a01b031661069e576040517f3731597600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60608101516001600160a01b03166106e2576040517ff10d418200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80608001515f0361071f576040517f7e0eb2bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80517f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b320080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b039384161782556020808501517f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b32038054841691861691909117905560608501517f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b320180549093169416938417909155604080517f313ce567000000000000000000000000000000000000000000000000000000008152905192935f93909263313ce56792600480820193918290030181865afa158015610830573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061085491906121ba565b6001830180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000060ff8416021790556080840151600284015560408401519091506108b59061127a565b7fbf322f47f534976d35baa3292f4fd04bf379264783a734383401b0e6e51cb16d835f0151846020015185604001518660600151858860800151604051610939969594939291906001600160a01b039687168152948616602086015292851660408501529316606083015260ff92909216608082015260a081019190915260c00190565b60405180910390a1610965604051806020016040528085604001516001600160a01b031681525061128b565b506109947f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc028460400151611190565b506109c37fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d38460400151611190565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc398505050508315610a4b5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b320080546001600160a01b0316338114610ac9578484846040517f3ae4063b000000000000000000000000000000000000000000000000000000008152600401610ac0939291906121da565b60405180910390fd5b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8218403610e1f575f83806020019051810190610b059190612226565b60018481015460808301519293506001600160a01b038116927401000000000000000000000000000000000000000090910460ff16915f91610b48918490611626565b90505f836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b87573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bab91906121ba565b60ff169050828114610bf3576040517fe420d7af0000000000000000000000000000000000000000000000000000000081526004810184905260248101829052604401610ac0565b5f866001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c30573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c549190612312565b90508760020154811115610ca45760028801546040517f86529caa000000000000000000000000000000000000000000000000000000008152600481019190915260248101829052604401610ac0565b825f03610d045785516040517f3ae4063b000000000000000000000000000000000000000000000000000000008152610ac091907f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f821908c906004016121da565b8551610d1c906001600160a01b0387169030866116ad565b600388015486516040517fdb8554fc0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201524260248201525f92919091169063db8554fc90604401602060405180830381865afa158015610d8a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dae9190612312565b905060028114610e115786516040517f3ae4063b000000000000000000000000000000000000000000000000000000008152610ac091907f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f821908d906004016121da565b505050505050505050505050565b610e2a8585856116fc565b5050505050565b610e39611a38565b610e425f611a83565b565b5f807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b5f807f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3200610e68565b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3200610f66610ecc610e44565b60018301546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015610f2d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f519190612312565b60018401546001600160a01b03169190611b0b565b50565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020526040902060010154610fa281611095565b61046e8383611190565b610fb4611a38565b6001600160a01b038116610ff6576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f6004820152602401610ac0565b610f6681611a83565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061042557507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610425565b610f668133611b59565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff16611180575f848152602082815260408083206001600160a01b0387168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556111363390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610425565b5f915050610425565b5092915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff1615611180575f848152602082815260408083206001600160a01b038716808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610425565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610425565b611282611be9565b610f6681611c27565b5f611294611c2f565b81516001600160a01b03166112d5576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61131f7f50a07cb25d0d864370863300b20987dfdae089abad71b607faf639d09d0533917f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b611c37565b6113497f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b80611c37565b6113937f3dd35eca0ca8a128757fa464a5dfa4ad6cc4853cad96dce4e90fdbea4f0a52e37f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d611c37565b6113bd7f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d80611c37565b6114077f54f0af3716c79b30b8c228679d31d77a1a5f526c16af3262730e0a8de4363fed7fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c611c37565b6114317fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c80611c37565b61147b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8217f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02611c37565b6114a57f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc0280611c37565b6114ef7f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e9828697fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3611c37565b6115197fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d380611c37565b6115467f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b835f015161109f565b506115747f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d835f015161109f565b506115a27fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c835f015161109f565b506115d07f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02835f015161109f565b506115fe7fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3835f015161109f565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc392915050565b5f826012111561165a5760128390036001831615611650576116488582611cd8565b9150506116a6565b6116488582611d24565b60128311156116a3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee83016002831615611699576116488582611d4e565b6116488582611d9e565b50825b9392505050565b6116bb848484846001611dcd565b61046e576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610ac0565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a82148061174957507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a4882145b156119b2575f805f7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a85036117a9575f8480602001905181019061178d919061233d565b9050805f015193508060200151925080606001519150506117d5565b5f848060200190518101906117be9190612432565b805160208201516080909201519095509093509150505b80156119aa576001600160a01b03831615801561182857506001600160a01b0382165f9081527f96f78a99f93d631b75bc050854c9b764642c10564e41ed27c197a36ddabb1df9602052604090205460ff165b8061187b57506001600160a01b03821615801561187b57506001600160a01b0383165f9081527f3907f76fa0fb1e5d0f263c5c4fe4316026052cf960c55a1c768106d8b9701c10602052604090205460ff165b1561188857505050505050565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a851480156118ed57506001600160a01b0386165f9081527f6ba48721fcbb2613af13d8285fe9ee4a081f7995464037bb5ea27397912881d2602052604090205460ff165b8061195857507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a488514801561195857506001600160a01b0386165f9081527f29e42896fa6edf5a5d7ff0bcd00acffbece6eb6cc7b44d0807bfd84929cc6e1b602052604090205460ff165b1561196557505050505050565b6040517ffe720f780000000000000000000000000000000000000000000000000000000081526001600160a01b03808516600483015283166024820152604401610ac0565b505050505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038716845290915290205460ff1615611a0057505050565b8282826040517f3ae4063b000000000000000000000000000000000000000000000000000000008152600401610ac0939291906121da565b33611a41610e44565b6001600160a01b031614610e42576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610ac0565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b611b188383836001611e53565b6104c0576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610ac0565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038516845290915290205460ff16611be5576040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015260248101839052604401610ac0565b5050565b611bf1611ece565b610e42576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fb4611be9565b610e42611be9565b7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268005f611c90845f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b5f85815260208490526040808220600101869055519192508491839187917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a450505050565b5f604e8210611cfa578215611cee576001611cf0565b5f5b60ff169050610425565b600a82900a808481611d0e57611d0e6124f4565b0491508082028414611189575060010192915050565b5f604e821015611d465781600a0a8381611d4057611d406124f4565b046116a6565b5f9392505050565b5f604e8210611d6d578215611d64575f19611d66565b5f5b9050610425565b50600a81900a8281029083818381611d8757611d876124f4565b0414611d94575f19611d96565b815b949350505050565b600a81900a611dad818461254e565b9050604e8210610425578215611d4657611dc882600a612645565b6116a6565b6040517f23b872dd000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038781166004528616602452604485905291602083606481808c5af1925060015f51148316611e42578383151615611e36573d5f823e3d81fd5b5f883b113d1516831692505b604052505f60605295945050505050565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f51148316611ec2578383151615611eb6573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b5f611ed7611252565b5468010000000000000000900460ff16919050565b5f60208284031215611efc575f80fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146116a6575f80fd5b5f60208284031215611f3b575f80fd5b5035919050565b6001600160a01b0381168114610f66575f80fd5b5f8060408385031215611f67575f80fd5b823591506020830135611f7981611f42565b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60405160a0810167ffffffffffffffff81118282101715611fd457611fd4611f84565b60405290565b60405160c0810167ffffffffffffffff81118282101715611fd457611fd4611f84565b604051601f8201601f1916810167ffffffffffffffff8111828210171561202657612026611f84565b604052919050565b5f67ffffffffffffffff82111561204757612047611f84565b50601f01601f191660200190565b5f82601f830112612064575f80fd5b81356120776120728261202e565b611ffd565b81815284602083860101111561208b575f80fd5b816020850160208301375f918101602001919091529392505050565b5f602082840312156120b7575f80fd5b813567ffffffffffffffff8111156120cd575f80fd5b611d9684828501612055565b5f805f606084860312156120eb575f80fd5b83356120f681611f42565b925060208401359150604084013567ffffffffffffffff811115612118575f80fd5b61212486828701612055565b9150509250925092565b5f6020828403121561213e575f80fd5b81356116a681611f42565b5f60a08284031215612159575f80fd5b612161611fb1565b825161216c81611f42565b8152602083015161217c81611f42565b6020820152604083015161218f81611f42565b604082015260608301516121a281611f42565b60608201526080928301519281019290925250919050565b5f602082840312156121ca575f80fd5b815160ff811681146116a6575f80fd5b6001600160a01b0384168152826020820152606060408201525f82518060608401528060208501608085015e5f608082850101526080601f19601f830116840101915050949350505050565b5f6020808385031215612237575f80fd5b825167ffffffffffffffff8082111561224e575f80fd5b9084019060c08287031215612261575f80fd5b612269611fda565b825161227481611f42565b81528284015161228381611f42565b80858301525060408301516040820152606083015160608201526080830151608082015260a0830151828111156122b8575f80fd5b80840193505086601f8401126122cc575f80fd5b825191506122dc6120728361202e565b82815287858486010111156122ef575f80fd5b828585018683015e5f8584830101528060a0830152508094505050505092915050565b5f60208284031215612322575f80fd5b5051919050565b80518015158114612338575f80fd5b919050565b5f6080828403121561234d575f80fd5b6040516080810181811067ffffffffffffffff8211171561237057612370611f84565b604052825161237e81611f42565b8152602083015161238e81611f42565b6020820152604083810151908201526123a960608401612329565b60608201529392505050565b5f82601f8301126123c4575f80fd5b8151602067ffffffffffffffff8211156123e0576123e0611f84565b8160051b6123ef828201611ffd565b9283528481018201928281019087851115612408575f80fd5b83870192505b848310156124275782518252918301919083019061240e565b979650505050505050565b5f60208284031215612442575f80fd5b815167ffffffffffffffff80821115612459575f80fd5b9083019060a0828603121561246c575f80fd5b612474611fb1565b825161247f81611f42565b8152602083015161248f81611f42565b60208201526040830151828111156124a5575f80fd5b6124b1878286016123b5565b6040830152506060830151828111156124c8575f80fd5b6124d4878286016123b5565b6060830152506124e660808401612329565b608082015295945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b808202811582820484141761042557610425612521565b600181815b8085111561259f57815f190482111561258557612585612521565b8085161561259257918102915b93841c939080029061256a565b509250929050565b5f826125b557506001610425565b816125c157505f610425565b81600181146125d757600281146125e1576125fd565b6001915050610425565b60ff8411156125f2576125f2612521565b50506001821b610425565b5060208310610133831016604e8410600b8410161715612620575081810a610425565b61262a8383612565565b805f190482111561263d5761263d612521565b029392505050565b5f6116a683836125a756"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b5060043610610115575f3560e01c806359f89dda116100ad578063a086e1751161007d578063a4c9d30011610063578063a4c9d3001461030a578063d547741f14610312578063f2fde38b14610325575f80fd5b8063a086e175146102fb578063a217fddf14610303575f80fd5b806359f89dda14610281578063715018a6146102945780638da5cb5b1461029c57806391d14854146102a4575f80fd5b80633013ce29116100e85780633013ce29146101c8578063325cd7961461020c57806336568abe1461025b578063439fab911461026e575f80fd5b806301ffc9a71461011957806304a0db2014610141578063248a9ca3146101725780632f2ff15d146101b3575b5f80fd5b61012c610127366004611eec565b610338565b60405190151581526020015b60405180910390f35b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3202545b604051908152602001610138565b610164610180366004611f2b565b5f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b6101c66101c1366004611f56565b61042b565b005b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3201546001600160a01b03165b6040516001600160a01b039091168152602001610138565b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b32015474010000000000000000000000000000000000000000900460ff1660405160ff9091168152602001610138565b6101c6610269366004611f56565b610474565b61016461027c3660046120a7565b6104c5565b6101c661028f3660046120d9565b610a55565b6101c6610e31565b6101f4610e44565b61012c6102b2366004611f56565b5f9182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6101f4610e78565b6101645f81565b6101c6610ea0565b6101c6610320366004611f56565b610f69565b6101c661033336600461212e565b610fac565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f59f89dda0000000000000000000000000000000000000000000000000000000014806103ca57507fffffffff0000000000000000000000000000000000000000000000000000000082167f439fab9100000000000000000000000000000000000000000000000000000000145b8061041657507fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000145b80610425575061042582610fff565b92915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015461046481611095565b61046e838361109f565b50505050565b6001600160a01b03811633146104b6576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104c08282611190565b505050565b5f806104cf611252565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156104fb5750825b90505f8267ffffffffffffffff1660011480156105175750303b155b905081158015610525575080155b1561055c576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156105bd5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b5f878060200190518101906105d29190612149565b80519091506001600160a01b0316610616576040517fa7d26c7300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60208101516001600160a01b031661065a576040517f364467d300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408101516001600160a01b031661069e576040517f3731597600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60608101516001600160a01b03166106e2576040517ff10d418200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80608001515f0361071f576040517f7e0eb2bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80517f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b320080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b039384161782556020808501517f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b32038054841691861691909117905560608501517f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b320180549093169416938417909155604080517f313ce567000000000000000000000000000000000000000000000000000000008152905192935f93909263313ce56792600480820193918290030181865afa158015610830573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061085491906121ba565b6001830180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000060ff8416021790556080840151600284015560408401519091506108b59061127a565b7fbf322f47f534976d35baa3292f4fd04bf379264783a734383401b0e6e51cb16d835f0151846020015185604001518660600151858860800151604051610939969594939291906001600160a01b039687168152948616602086015292851660408501529316606083015260ff92909216608082015260a081019190915260c00190565b60405180910390a1610965604051806020016040528085604001516001600160a01b031681525061128b565b506109947f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc028460400151611190565b506109c37fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d38460400151611190565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc398505050508315610a4b5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b320080546001600160a01b0316338114610ac9578484846040517f3ae4063b000000000000000000000000000000000000000000000000000000008152600401610ac0939291906121da565b60405180910390fd5b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8218403610e1f575f83806020019051810190610b059190612226565b60018481015460808301519293506001600160a01b038116927401000000000000000000000000000000000000000090910460ff16915f91610b48918490611626565b90505f836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b87573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bab91906121ba565b60ff169050828114610bf3576040517fe420d7af0000000000000000000000000000000000000000000000000000000081526004810184905260248101829052604401610ac0565b5f866001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c30573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c549190612312565b90508760020154811115610ca45760028801546040517f86529caa000000000000000000000000000000000000000000000000000000008152600481019190915260248101829052604401610ac0565b825f03610d045785516040517f3ae4063b000000000000000000000000000000000000000000000000000000008152610ac091907f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f821908c906004016121da565b8551610d1c906001600160a01b0387169030866116ad565b600388015486516040517fdb8554fc0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201524260248201525f92919091169063db8554fc90604401602060405180830381865afa158015610d8a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dae9190612312565b905060028114610e115786516040517f3ae4063b000000000000000000000000000000000000000000000000000000008152610ac091907f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f821908d906004016121da565b505050505050505050505050565b610e2a8585856116fc565b5050505050565b610e39611a38565b610e425f611a83565b565b5f807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b5f807f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3200610e68565b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3200610f66610ecc610e44565b60018301546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015610f2d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f519190612312565b60018401546001600160a01b03169190611b0b565b50565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020526040902060010154610fa281611095565b61046e8383611190565b610fb4611a38565b6001600160a01b038116610ff6576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f6004820152602401610ac0565b610f6681611a83565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061042557507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610425565b610f668133611b59565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff16611180575f848152602082815260408083206001600160a01b0387168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556111363390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610425565b5f915050610425565b5092915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff1615611180575f848152602082815260408083206001600160a01b038716808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610425565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610425565b611282611be9565b610f6681611c27565b5f611294611c2f565b81516001600160a01b03166112d5576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61131f7f50a07cb25d0d864370863300b20987dfdae089abad71b607faf639d09d0533917f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b611c37565b6113497f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b80611c37565b6113937f3dd35eca0ca8a128757fa464a5dfa4ad6cc4853cad96dce4e90fdbea4f0a52e37f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d611c37565b6113bd7f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d80611c37565b6114077f54f0af3716c79b30b8c228679d31d77a1a5f526c16af3262730e0a8de4363fed7fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c611c37565b6114317fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c80611c37565b61147b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8217f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02611c37565b6114a57f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc0280611c37565b6114ef7f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e9828697fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3611c37565b6115197fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d380611c37565b6115467f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b835f015161109f565b506115747f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d835f015161109f565b506115a27fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c835f015161109f565b506115d07f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02835f015161109f565b506115fe7fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3835f015161109f565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc392915050565b5f826012111561165a5760128390036001831615611650576116488582611cd8565b9150506116a6565b6116488582611d24565b60128311156116a3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee83016002831615611699576116488582611d4e565b6116488582611d9e565b50825b9392505050565b6116bb848484846001611dcd565b61046e576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610ac0565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a82148061174957507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a4882145b156119b2575f805f7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a85036117a9575f8480602001905181019061178d919061233d565b9050805f015193508060200151925080606001519150506117d5565b5f848060200190518101906117be9190612432565b805160208201516080909201519095509093509150505b80156119aa576001600160a01b03831615801561182857506001600160a01b0382165f9081527f96f78a99f93d631b75bc050854c9b764642c10564e41ed27c197a36ddabb1df9602052604090205460ff165b8061187b57506001600160a01b03821615801561187b57506001600160a01b0383165f9081527f3907f76fa0fb1e5d0f263c5c4fe4316026052cf960c55a1c768106d8b9701c10602052604090205460ff165b1561188857505050505050565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a851480156118ed57506001600160a01b0386165f9081527f6ba48721fcbb2613af13d8285fe9ee4a081f7995464037bb5ea27397912881d2602052604090205460ff165b8061195857507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a488514801561195857506001600160a01b0386165f9081527f29e42896fa6edf5a5d7ff0bcd00acffbece6eb6cc7b44d0807bfd84929cc6e1b602052604090205460ff165b1561196557505050505050565b6040517ffe720f780000000000000000000000000000000000000000000000000000000081526001600160a01b03808516600483015283166024820152604401610ac0565b505050505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038716845290915290205460ff1615611a0057505050565b8282826040517f3ae4063b000000000000000000000000000000000000000000000000000000008152600401610ac0939291906121da565b33611a41610e44565b6001600160a01b031614610e42576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610ac0565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b611b188383836001611e53565b6104c0576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610ac0565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038516845290915290205460ff16611be5576040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015260248101839052604401610ac0565b5050565b611bf1611ece565b610e42576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fb4611be9565b610e42611be9565b7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268005f611c90845f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b5f85815260208490526040808220600101869055519192508491839187917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a450505050565b5f604e8210611cfa578215611cee576001611cf0565b5f5b60ff169050610425565b600a82900a808481611d0e57611d0e6124f4565b0491508082028414611189575060010192915050565b5f604e821015611d465781600a0a8381611d4057611d406124f4565b046116a6565b5f9392505050565b5f604e8210611d6d578215611d64575f19611d66565b5f5b9050610425565b50600a81900a8281029083818381611d8757611d876124f4565b0414611d94575f19611d96565b815b949350505050565b600a81900a611dad818461254e565b9050604e8210610425578215611d4657611dc882600a612645565b6116a6565b6040517f23b872dd000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038781166004528616602452604485905291602083606481808c5af1925060015f51148316611e42578383151615611e36573d5f823e3d81fd5b5f883b113d1516831692505b604052505f60605295945050505050565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f51148316611ec2578383151615611eb6573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b5f611ed7611252565b5468010000000000000000900460ff16919050565b5f60208284031215611efc575f80fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146116a6575f80fd5b5f60208284031215611f3b575f80fd5b5035919050565b6001600160a01b0381168114610f66575f80fd5b5f8060408385031215611f67575f80fd5b823591506020830135611f7981611f42565b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60405160a0810167ffffffffffffffff81118282101715611fd457611fd4611f84565b60405290565b60405160c0810167ffffffffffffffff81118282101715611fd457611fd4611f84565b604051601f8201601f1916810167ffffffffffffffff8111828210171561202657612026611f84565b604052919050565b5f67ffffffffffffffff82111561204757612047611f84565b50601f01601f191660200190565b5f82601f830112612064575f80fd5b81356120776120728261202e565b611ffd565b81815284602083860101111561208b575f80fd5b816020850160208301375f918101602001919091529392505050565b5f602082840312156120b7575f80fd5b813567ffffffffffffffff8111156120cd575f80fd5b611d9684828501612055565b5f805f606084860312156120eb575f80fd5b83356120f681611f42565b925060208401359150604084013567ffffffffffffffff811115612118575f80fd5b61212486828701612055565b9150509250925092565b5f6020828403121561213e575f80fd5b81356116a681611f42565b5f60a08284031215612159575f80fd5b612161611fb1565b825161216c81611f42565b8152602083015161217c81611f42565b6020820152604083015161218f81611f42565b604082015260608301516121a281611f42565b60608201526080928301519281019290925250919050565b5f602082840312156121ca575f80fd5b815160ff811681146116a6575f80fd5b6001600160a01b0384168152826020820152606060408201525f82518060608401528060208501608085015e5f608082850101526080601f19601f830116840101915050949350505050565b5f6020808385031215612237575f80fd5b825167ffffffffffffffff8082111561224e575f80fd5b9084019060c08287031215612261575f80fd5b612269611fda565b825161227481611f42565b81528284015161228381611f42565b80858301525060408301516040820152606083015160608201526080830151608082015260a0830151828111156122b8575f80fd5b80840193505086601f8401126122cc575f80fd5b825191506122dc6120728361202e565b82815287858486010111156122ef575f80fd5b828585018683015e5f8584830101528060a0830152508094505050505092915050565b5f60208284031215612322575f80fd5b5051919050565b80518015158114612338575f80fd5b919050565b5f6080828403121561234d575f80fd5b6040516080810181811067ffffffffffffffff8211171561237057612370611f84565b604052825161237e81611f42565b8152602083015161238e81611f42565b6020820152604083810151908201526123a960608401612329565b60608201529392505050565b5f82601f8301126123c4575f80fd5b8151602067ffffffffffffffff8211156123e0576123e0611f84565b8160051b6123ef828201611ffd565b9283528481018201928281019087851115612408575f80fd5b83870192505b848310156124275782518252918301919083019061240e565b979650505050505050565b5f60208284031215612442575f80fd5b815167ffffffffffffffff80821115612459575f80fd5b9083019060a0828603121561246c575f80fd5b612474611fb1565b825161247f81611f42565b8152602083015161248f81611f42565b60208201526040830151828111156124a5575f80fd5b6124b1878286016123b5565b6040830152506060830151828111156124c8575f80fd5b6124d4878286016123b5565b6060830152506124e660808401612329565b608082015295945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b808202811582820484141761042557610425612521565b600181815b8085111561259f57815f190482111561258557612585612521565b8085161561259257918102915b93841c939080029061256a565b509250929050565b5f826125b557506001610425565b816125c157505f610425565b81600181146125d757600281146125e1576125fd565b6001915050610425565b60ff8411156125f2576125f2612521565b50506001821b610425565b5060208310610133831016604e8410600b8410161715612620575081810a610425565b61262a8383612565565b805f190482111561263d5761263d612521565b029392505050565b5f6116a683836125a756"; diff --git a/src/generated/0_1_6/StoxReceipt.pointers.sol b/src/generated/0_1_6/StoxReceipt.pointers.sol deleted file mode 100644 index ff38583a..00000000 --- a/src/generated/0_1_6/StoxReceipt.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x06fffbad12ea80897d55aab5d4f1cd3f34f674237db44a148cc133334a0cca54); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x2dF5cFE6d688EF9fF1B7c59A499D254b1527b286); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"6080604052348015600e575f80fd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6136e3806100d65f395ff3fe608060405234801561000f575f80fd5b50600436106100fa575f3560e01c8063481c6a7511610093578063a22cb46511610063578063a22cb46514610232578063c2530e3914610245578063e985e9c514610258578063f242432a146102b2575f80fd5b8063481c6a75146101bd5780634e1273f4146101f75780636d5b3f781461021757806395d89b411461022a575f80fd5b80630e89341c116100ce5780630e89341c14610171578063177769cb146101845780632eb2c2d614610197578063439fab91146101aa575f80fd5b8062fdd58e146100fe57806301ffc9a714610124578063043fa9871461014757806306fdde031461015c575b5f80fd5b61011161010c366004612a49565b6102c5565b6040519081526020015b60405180910390f35b610137610132366004612aa0565b6102e1565b604051901515815260200161011b565b61015a610155366004612b79565b6103c3565b005b61016461046a565b60405161011b9190612c29565b61016461017f366004612c3b565b6104cf565b61015a610192366004612c52565b610580565b61015a6101a5366004612d20565b61058f565b6101116101b8366004612dc7565b6105ae565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc200546040516001600160a01b03909116815260200161011b565b61020a610205366004612e01565b6107ae565b60405161011b9190612eed565b61015a610225366004612eff565b6108c5565b610164610975565b61015a610240366004612f63565b6109c6565b61015a610253366004612eff565b6109d1565b610137610266366004612f9e565b6001600160a01b039182165f9081527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45016020908152604080832093909416825291909152205460ff1690565b61015a6102c0366004612eff565b610a37565b5f6102d883836102d3610a4d565b610ab3565b90505b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a2600000000000000000000000000000000000000000000000000000000148061037357507fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000145b806102db57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146102db565b6103cb610b07565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038816179055856104208686868686610b6e565b6104617fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19169055565b50505050505050565b6060610474610c25565b6040518060400160405280600881526020017f20526563656970740000000000000000000000000000000000000000000000008152506040516020016104bb929190612fe1565b604051602081830303815290604052905090565b60605f6104e56104dd610cd3565b60ff16610d78565b6104ed610c25565b6104f5610e15565b6104fd61046a565b6040516020016105109493929190612ff5565b60408051601f19818403018152828201909152601d82527f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c0000006020830152915061055882610ef5565b604051602001610569929190612fe1565b604051602081830303815290604052915050919050565b61058b338383610f01565b5050565b61059a335b86610f49565b6105a78585858585610ff9565b5050505050565b5f806105b861108c565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156105e45750825b90505f8267ffffffffffffffff1660011480156106005750303b155b90508115801561060e575080155b15610645576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156106a65784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6106bd60405180602001604052805f8152506110b4565b5f7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc20090505f888060200190518101906106f69190613137565b825473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039190911617909155507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc3955083156107a45784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b606081518351146107fd57815183516040517f5b059991000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044015b60405180910390fd5b5f610806610a4d565b90505f845167ffffffffffffffff81111561082357610823612abb565b60405190808252806020026020018201604052801561084c578160200160208202803683370190505b5090505f5b85518110156108bc5761089786828151811061086f5761086f613152565b602002602001015186838151811061088957610889613152565b602002602001015185610ab3565b8282815181106108a9576108a9613152565b6020908102919091010152600101610851565b50949350505050565b6108cd610b07565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03871617905584610920868584610f01565b61092c858585856110c5565b61096d7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19169055565b505050505050565b606061097f610c25565b6040518060400160405280600581526020017f20524350540000000000000000000000000000000000000000000000000000008152506040516020016104bb929190612fe1565b61058b33838361113a565b6109d9610b07565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03871617905584610a2c868584610f01565b61092c85858561124e565b610a4033610594565b6105a78585858585610b6e565b5f306001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a8a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aae9190613137565b905090565b5f80610abf85856112cf565b90505f610aca6112e4565b6001600160a01b0387165f90815260209182526040808220888352909252908120549150610af9838387611345565b5093505050505b9392505050565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc20080546001600160a01b03163314610b6b576040517fc0b2335a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b6001600160a01b038416610bb0576040517f57f447ce0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b038516610bf2576040517f01a835140000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6040805160018082526020820186905281830190815260608201859052608082019092529061046187878484875f6115ed565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc2008054604080517f95d89b410000000000000000000000000000000000000000000000000000000081529051606093926001600160a01b0316916395d89b41916004808301925f9291908290030181865afa158015610ca6573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610ccd919081019061319c565b91505090565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc2008054604080517f313ce56700000000000000000000000000000000000000000000000000000000815290515f93926001600160a01b03169163313ce5679160048083019260209291908290030181865afa158015610d54573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ccd91906131e1565b60605f610d8483611645565b60010190505f8167ffffffffffffffff811115610da357610da3612abb565b6040519080825280601f01601f191660200182016040528015610dcd576020820181803683370190505b5090508181016020015b5f19017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084610dd757509392505050565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc2008054604080517f38d52e0f0000000000000000000000000000000000000000000000000000000081529051606093926001600160a01b0316916338d52e0f9160048083019260209291908290030181865afa158015610e97573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ebb9190613137565b6001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015610ca6573d5f803e3d5ffd5b60606102db825f611726565b805115610f44577fd66d6a9810a5cef78b704e7e04334961e997c81d337f029f74637f060f3d8d65838383604051610f3b93929190613215565b60405180910390a15b505050565b816001600160a01b0316816001600160a01b031614158015610faf57506001600160a01b038082165f9081527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4501602090815260408083209386168352929052205460ff16155b1561058b576040517fe237d9220000000000000000000000000000000000000000000000000000000081526001600160a01b038084166004830152821660248201526044016107f4565b6001600160a01b03841661103b576040517f57f447ce0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b03851661107d576040517f01a835140000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6105a7858585858560016115ed565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006102db565b6110bc6118a5565b610b6b816118e5565b6001600160a01b038416611107576040517f57f447ce0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6040805160018082526020820186905281830190815260608201859052608082019092529061096d5f87848487846115ed565b7f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45006001600160a01b03841661119d576040517f3e31884e0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b0383166111df576040517fced3e1000000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b038481165f818152600184016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a350505050565b6001600160a01b038316611290576040517f01a835140000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b604080516001808252602082018590528183019081526060820184905260a082019092525f608082018181529192916105a791879185908590836115ed565b5f806112db84846118f6565b54949350505050565b5f8060ff1961131460017fedb99b3af8e1c50d494d6f1b4c75245a0b733cb90baa42bfe0e2f5bc8b000f82613259565b60405160200161132691815260200190565b60408051601f1981840301815291905280516020909101201692915050565b6040517f79ba43050000000000000000000000000000000000000000000000000000000081525f9081908490829081906001600160a01b038716906379ba43059061139a90869060039060019060040161326c565b606060405180830381865afa1580156113b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113d991906132a4565b5091509150875f03611496575b5f198214611488576040517f79ba430500000000000000000000000000000000000000000000000000000000815291925082916001600160a01b038716906379ba43059061143e90859060039060019060040161326c565b606060405180830381865afa158015611459573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061147d91906132a4565b5090925090506113e6565b5f83945094505050506115e5565b875b5f1983146115dd5782935060028203611548576040517fb21a2494000000000000000000000000000000000000000000000000000000008152600481018490525f90611538906001600160a01b038a169063b21a2494906024015f60405180830381865afa15801561150c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611533919081019061319c565b61196a565b9050611544828261197f565b9150505b6040517f79ba43050000000000000000000000000000000000000000000000000000000081526001600160a01b038816906379ba43059061159390869060039060019060040161326c565b606060405180830381865afa1580156115ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115d291906132a4565b509093509150611498565b945091925050505b935093915050565b6115f9868686866119fa565b6001600160a01b0385161561096d573381156116225761161d818888888888611a5f565b610461565b6020858101519085015161163a838a8a85858a611bfc565b505050505050505050565b5f807a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061168d577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef810000000083106116b9576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106116d757662386f26fc10000830492506010015b6305f5e10083106116ef576305f5e100830492506008015b612710831061170357612710830492506004015b60648310611715576064830492506002015b600a83106102db5760010192915050565b606082515f03611744575060408051602081019091525f81526102db565b5f826117745760038451600261175a91906132e6565b61176491906132f9565b61176f906004613318565b611799565b6003845160046117849190613318565b61178f9060026132e6565b61179991906132f9565b905060405191507f4142434445464748494a4b4c4d4e4f505152535455565758595a616263646566601f5261067083027f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f18603f526020820181810185865187016020810180515f82525b82841015611857576003840193508351603f8160121c16518753600187019650603f81600c1c16518753600187019650603f8160061c16518753600187019650603f811651875350600186019550611804565b9052508590506118985760038651066001811461187b576002811461188e57611896565b603d6001840353603d6002840353611896565b603d60018403535b505b9183525060405292915050565b6118ad611d46565b6118e3576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6118ed6118a5565b610b6b81611d64565b5f8060ff1961192660017f3a8e79826d53842322cdcc810d4a989eb01ac46cfabfd48dcc021625ce13c2d7613259565b60405160200161193891815260200190565b60408051808303601f1901815291815281516020928301205f9687529290921681528185209585529490945250502090565b5f818060200190518101906102db919061332f565b5f7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8311156119dd576040517fbf463fe9000000000000000000000000000000000000000000000000000000008152600481018490526024016107f4565b5f6108bc6119f46119ee865f611db0565b85611e0a565b5f611e6c565b5f611a03610a4d565b90505f5b8351811015611a5257611a3486858381518110611a2657611a26613152565b602002602001015184611eae565b611a4a85858381518110611a2657611a26613152565b600101611a07565b506105a785858585611fb0565b6001600160a01b0384163b1561096d576040517fbc197c810000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063bc197c8190611abc9089908990889088908890600401613346565b6020604051808303815f875af1925050508015611af6575060408051601f3d908101601f19168201909252611af3918101906133a3565b60015b611b76573d808015611b23576040519150601f19603f3d011682016040523d82523d5f602084013e611b28565b606091505b5080515f03611b6e576040517f57f447ce0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024016107f4565b805160208201fd5b7fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014610461576040517f57f447ce0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024016107f4565b6001600160a01b0384163b1561096d576040517ff23a6e610000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063f23a6e6190611c5990899089908890889088906004016133be565b6020604051808303815f875af1925050508015611c93575060408051601f3d908101601f19168201909252611c90918101906133a3565b60015b611cc0573d808015611b23576040519150601f19603f3d011682016040523d82523d5f602084013e611b28565b7fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014610461576040517f57f447ce0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024016107f4565b5f611d4f61108c565b5468010000000000000000900460ff16919050565b7f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45007f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4502610f44838261347c565b5f805f611dbd8585612063565b9150915080611e02576040517f22c9f7bb00000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016107f4565b509392505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d8480611e4f86868686612169565b915091505f611e5e8383612288565b9a9950505050505050505050565b5f807bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8416601b0b60e085901d611ea08282876122e6565b9350935050505b9250929050565b6001600160a01b038316611ec157505050565b5f611eca6112e4565b6001600160a01b0385165f90815260208281526040808320878452909152812054919250611ef886866112cf565b90505f80611f07838588611345565b91509150838103611f1c575050505050505050565b6001600160a01b0388165f908152602086815260408083208a84529091529020819055818314611f5157611f518888846124ce565b60408051858152602081018390529081018490526060810183905287906001600160a01b038a16907f956b049289f8dbe8716375414d9fa6bf32cde65ec1b7e102623775cacc66a6999060800160405180910390a35050505050505050565b5f611fb96124e2565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc200546040517fe5be7d900000000000000000000000000000000000000000000000000000000081529192506001600160a01b03169063e5be7d909061202a9084908990899089908990600401613538565b5f604051808303815f87803b158015612041575f80fd5b505af1158015612053573d5f803e3d5ffd5b505050506105a785858585612563565b5f601b83900b83148383826120c7577d90e40fbeea1d3a4abc8955e946fe31cdcf66f634e10000000000000000008605156120a757620186a0860595506005850194505b8586601b0b146120c257600a860595508460010194506120a7565b6120dd565b855f036120dd57505f925060019150611ea79050565b848560030b14612139575f8512156120fd57505f9250829150611ea79050565b6040517fd556b11100000000000000000000000000000000000000000000000000000000815260048101839052602481018290526044016107f4565b50507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841660e084901b1791509250929050565b5f8085158415178015612181575f92505f915061227e565b61218b848761357d565b91505f612197886127c7565b90505f6121a3876127c7565b90505f6121b08383612828565b5090505f6f0785ee10d5da46d900f436a0000000008211156121e5576f0785ee10d5da46d900f436a000000000820491506025015b670de0b6b3a764000082111561220657670de0b6b3a7640000820491506012015b633b9aca0082111561221f57633b9aca00820491506009015b61271082111561223457612710820491506004015b811561224857600a82049150600101612234565b612252818761357d565b95506122748b8a61226e878761226987600a613684565b612844565b89612929565b9097509550505050505b5094509492505050565b5f805f6122958585612063565b91509150801580156122a5575081155b15611e02576040517f8eba4d0700000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016107f4565b5f805f85121561232c576040517f4a7d166b00000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016107f4565b845f0361233e57505f905060016115e5565b8460ff8416850185811215612389576040517fd556b11100000000000000000000000000000000000000000000000000000000815260048101889052602481018790526044016107f4565b5f805f8312156123f3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb38312156123ca575f8095509550505050506115e5565b825f03600a0a91508184816123e1576123e1613201565b04955050840290911491506115e59050565b5f8313156124be57604d831315612449576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff881660448201526064016107f4565b82600a0a9150815f198161245f5761245f613201565b048411156124ac576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff881660448201526064016107f4565b50919091029250600191506115e59050565b83600195509550505050506115e5565b5f6124d984846118f6565b91909155505050565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201545f907fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc200906001600160a01b03168061253e57339250505090565b6001909101805473ffffffffffffffffffffffffffffffffffffffff19169055919050565b805182517f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c450091146125cd57825182516040517f5b059991000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016107f4565b335f5b84518110156126e8576020818102868101820151908601909101516001600160a01b0389161561269a575f828152602086815260408083206001600160a01b038d16845290915290205481811015612674576040517f03dee4c50000000000000000000000000000000000000000000000000000000081526001600160a01b038b1660048201526024810182905260448101839052606481018490526084016107f4565b5f838152602087815260408083206001600160a01b038e16845290915290209082900390555b6001600160a01b038816156126de575f828152602086815260408083206001600160a01b038c168452909152812080548392906126d89084906132e6565b90915550505b50506001016125d0565b5083516001036127685760208401515f906020850151909150866001600160a01b0316886001600160a01b0316846001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051612759929190918252602082015260400190565b60405180910390a4505061096d565b846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516127b792919061368f565b60405180910390a4505050505050565b5f80821215612824577f8000000000000000000000000000000000000000000000000000000000000000820361281e57507f8000000000000000000000000000000000000000000000000000000000000000919050565b505f0390565b5090565b5f805f1983850993909202808410938190039390930393915050565b5f805f6128518686612828565b91509150815f036128755783818161286b5761286b613201565b0492505050610b00565b8382106128bf576040517f6c59da120000000000000000000000000000000000000000000000000000000081526004810187905260248101869052604481018590526064016107f4565b5f84868809600186198101871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103025f82900382900490920185841190960395909502919093039390930492909217029150509392505050565b5f805f85871812156129f3577f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8411156129e0576129887f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60016132e6565b84036129b857507f8000000000000000000000000000000000000000000000000000000000000000905081612a2c565b6129c3600a856132f9565b6129cc906136b3565b6129d784600161357d565b91509150612a2c565b6129e9846136b3565b8391509150612a2c565b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841115612a26576129cc600a856132f9565b50829050815b94509492505050565b6001600160a01b0381168114610b6b575f80fd5b5f8060408385031215612a5a575f80fd5b8235612a6581612a35565b946020939093013593505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114610b6b575f80fd5b5f60208284031215612ab0575f80fd5b8135610b0081612a73565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612af857612af8612abb565b604052919050565b5f67ffffffffffffffff821115612b1957612b19612abb565b50601f01601f191660200190565b5f82601f830112612b36575f80fd5b8135612b49612b4482612b00565b612acf565b818152846020838601011115612b5d575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f8060c08789031215612b8e575f80fd5b8635612b9981612a35565b95506020870135612ba981612a35565b94506040870135612bb981612a35565b9350606087013592506080870135915060a087013567ffffffffffffffff811115612be2575f80fd5b612bee89828a01612b27565b9150509295509295509295565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6102d86020830184612bfb565b5f60208284031215612c4b575f80fd5b5035919050565b5f8060408385031215612c63575f80fd5b82359150602083013567ffffffffffffffff811115612c80575f80fd5b612c8c85828601612b27565b9150509250929050565b5f67ffffffffffffffff821115612caf57612caf612abb565b5060051b60200190565b5f82601f830112612cc8575f80fd5b81356020612cd8612b4483612c96565b8083825260208201915060208460051b870101935086841115612cf9575f80fd5b602086015b84811015612d155780358352918301918301612cfe565b509695505050505050565b5f805f805f60a08688031215612d34575f80fd5b8535612d3f81612a35565b94506020860135612d4f81612a35565b9350604086013567ffffffffffffffff80821115612d6b575f80fd5b612d7789838a01612cb9565b94506060880135915080821115612d8c575f80fd5b612d9889838a01612cb9565b93506080880135915080821115612dad575f80fd5b50612dba88828901612b27565b9150509295509295909350565b5f60208284031215612dd7575f80fd5b813567ffffffffffffffff811115612ded575f80fd5b612df984828501612b27565b949350505050565b5f8060408385031215612e12575f80fd5b823567ffffffffffffffff80821115612e29575f80fd5b818501915085601f830112612e3c575f80fd5b81356020612e4c612b4483612c96565b82815260059290921b84018101918181019089841115612e6a575f80fd5b948201945b83861015612e91578535612e8281612a35565b82529482019490820190612e6f565b96505086013592505080821115612ea6575f80fd5b50612c8c85828601612cb9565b5f815180845260208085019450602084015f5b83811015612ee257815187529582019590820190600101612ec6565b509495945050505050565b602081525f6102d86020830184612eb3565b5f805f805f60a08688031215612f13575f80fd5b8535612f1e81612a35565b94506020860135612f2e81612a35565b93506040860135925060608601359150608086013567ffffffffffffffff811115612f57575f80fd5b612dba88828901612b27565b5f8060408385031215612f74575f80fd5b8235612f7f81612a35565b915060208301358015158114612f93575f80fd5b809150509250929050565b5f8060408385031215612faf575f80fd5b8235612fba81612a35565b91506020830135612f9381612a35565b5f81518060208401855e5f93019283525090919050565b5f612df9612fef8386612fca565b84612fca565b7f7b22646563696d616c73223a000000000000000000000000000000000000000081525f613026600c830187612fca565b7f2c226465736372697074696f6e223a2231206f6620746865736520726563656981527f7074732063616e206265206275726e656420616c6f6e67736964652031200000602082015261307c603e820187612fca565b90507f20746f2072656465656d2000000000000000000000000000000000000000000081526130ae600b820186612fca565b90507f2066726f6d20746865207661756c742e222c000000000000000000000000000081527f226e616d65223a220000000000000000000000000000000000000000000000006012820152613106601a820185612fca565b7f227d0000000000000000000000000000000000000000000000000000000000008152600201979650505050505050565b5f60208284031215613147575f80fd5b8151610b0081612a35565b634e487b7160e01b5f52603260045260245ffd5b5f613173612b4484612b00565b9050828152838383011115613186575f80fd5b8282602083015e5f602084830101529392505050565b5f602082840312156131ac575f80fd5b815167ffffffffffffffff8111156131c2575f80fd5b8201601f810184136131d2575f80fd5b612df984825160208401613166565b5f602082840312156131f1575f80fd5b815160ff81168114610b00575f80fd5b634e487b7160e01b5f52601260045260245ffd5b6001600160a01b0384168152826020820152606060408201525f61323c6060830184612bfb565b95945050505050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156102db576102db613245565b83815260208101839052606081016003831061329657634e487b7160e01b5f52602160045260245ffd5b826040830152949350505050565b5f805f606084860312156132b6575f80fd5b8351925060208401519150604084015167ffffffffffffffff811681146132db575f80fd5b809150509250925092565b808201808211156102db576102db613245565b5f8261331357634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176102db576102db613245565b5f6020828403121561333f575f80fd5b5051919050565b5f6001600160a01b03808816835280871660208401525060a0604083015261337160a0830186612eb3565b82810360608401526133838186612eb3565b905082810360808401526133978185612bfb565b98975050505050505050565b5f602082840312156133b3575f80fd5b8151610b0081612a73565b5f6001600160a01b03808816835280871660208401525084604083015283606083015260a060808301526133f560a0830184612bfb565b979650505050505050565b600181811c9082168061341457607f821691505b60208210810361343257634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115610f4457805f5260205f20601f840160051c8101602085101561345d5750805b601f840160051c820191505b818110156105a7575f8155600101613469565b815167ffffffffffffffff81111561349657613496612abb565b6134aa816134a48454613400565b84613438565b602080601f8311600181146134dd575f84156134c65750858301515b5f19600386901b1c1916600185901b17855561096d565b5f85815260208120601f198616915b8281101561350b578886015182559484019460019091019084016134ec565b508582101561352857878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f6001600160a01b038088168352808716602084015280861660408401525060a0606083015261356b60a0830185612eb3565b82810360808401526133978185612eb3565b8082018281125f83128015821682158216171561359c5761359c613245565b505092915050565b600181815b808511156135de57815f19048211156135c4576135c4613245565b808516156135d157918102915b93841c93908002906135a9565b509250929050565b5f826135f4575060016102db565b8161360057505f6102db565b816001811461361657600281146136205761363c565b60019150506102db565b60ff84111561363157613631613245565b50506001821b6102db565b5060208310610133831016604e8410600b841016171561365f575081810a6102db565b61366983836135a4565b805f190482111561367c5761367c613245565b029392505050565b5f6102d883836135e6565b604081525f6136a16040830185612eb3565b828103602084015261323c8185612eb3565b5f7f8000000000000000000000000000000000000000000000000000000000000000820361281e5761281e61324556"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b50600436106100fa575f3560e01c8063481c6a7511610093578063a22cb46511610063578063a22cb46514610232578063c2530e3914610245578063e985e9c514610258578063f242432a146102b2575f80fd5b8063481c6a75146101bd5780634e1273f4146101f75780636d5b3f781461021757806395d89b411461022a575f80fd5b80630e89341c116100ce5780630e89341c14610171578063177769cb146101845780632eb2c2d614610197578063439fab91146101aa575f80fd5b8062fdd58e146100fe57806301ffc9a714610124578063043fa9871461014757806306fdde031461015c575b5f80fd5b61011161010c366004612a49565b6102c5565b6040519081526020015b60405180910390f35b610137610132366004612aa0565b6102e1565b604051901515815260200161011b565b61015a610155366004612b79565b6103c3565b005b61016461046a565b60405161011b9190612c29565b61016461017f366004612c3b565b6104cf565b61015a610192366004612c52565b610580565b61015a6101a5366004612d20565b61058f565b6101116101b8366004612dc7565b6105ae565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc200546040516001600160a01b03909116815260200161011b565b61020a610205366004612e01565b6107ae565b60405161011b9190612eed565b61015a610225366004612eff565b6108c5565b610164610975565b61015a610240366004612f63565b6109c6565b61015a610253366004612eff565b6109d1565b610137610266366004612f9e565b6001600160a01b039182165f9081527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45016020908152604080832093909416825291909152205460ff1690565b61015a6102c0366004612eff565b610a37565b5f6102d883836102d3610a4d565b610ab3565b90505b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a2600000000000000000000000000000000000000000000000000000000148061037357507fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000145b806102db57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146102db565b6103cb610b07565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038816179055856104208686868686610b6e565b6104617fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19169055565b50505050505050565b6060610474610c25565b6040518060400160405280600881526020017f20526563656970740000000000000000000000000000000000000000000000008152506040516020016104bb929190612fe1565b604051602081830303815290604052905090565b60605f6104e56104dd610cd3565b60ff16610d78565b6104ed610c25565b6104f5610e15565b6104fd61046a565b6040516020016105109493929190612ff5565b60408051601f19818403018152828201909152601d82527f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c0000006020830152915061055882610ef5565b604051602001610569929190612fe1565b604051602081830303815290604052915050919050565b61058b338383610f01565b5050565b61059a335b86610f49565b6105a78585858585610ff9565b5050505050565b5f806105b861108c565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156105e45750825b90505f8267ffffffffffffffff1660011480156106005750303b155b90508115801561060e575080155b15610645576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156106a65784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6106bd60405180602001604052805f8152506110b4565b5f7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc20090505f888060200190518101906106f69190613137565b825473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039190911617909155507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc3955083156107a45784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b606081518351146107fd57815183516040517f5b059991000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044015b60405180910390fd5b5f610806610a4d565b90505f845167ffffffffffffffff81111561082357610823612abb565b60405190808252806020026020018201604052801561084c578160200160208202803683370190505b5090505f5b85518110156108bc5761089786828151811061086f5761086f613152565b602002602001015186838151811061088957610889613152565b602002602001015185610ab3565b8282815181106108a9576108a9613152565b6020908102919091010152600101610851565b50949350505050565b6108cd610b07565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03871617905584610920868584610f01565b61092c858585856110c5565b61096d7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19169055565b505050505050565b606061097f610c25565b6040518060400160405280600581526020017f20524350540000000000000000000000000000000000000000000000000000008152506040516020016104bb929190612fe1565b61058b33838361113a565b6109d9610b07565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03871617905584610a2c868584610f01565b61092c85858561124e565b610a4033610594565b6105a78585858585610b6e565b5f306001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a8a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aae9190613137565b905090565b5f80610abf85856112cf565b90505f610aca6112e4565b6001600160a01b0387165f90815260209182526040808220888352909252908120549150610af9838387611345565b5093505050505b9392505050565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc20080546001600160a01b03163314610b6b576040517fc0b2335a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b6001600160a01b038416610bb0576040517f57f447ce0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b038516610bf2576040517f01a835140000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6040805160018082526020820186905281830190815260608201859052608082019092529061046187878484875f6115ed565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc2008054604080517f95d89b410000000000000000000000000000000000000000000000000000000081529051606093926001600160a01b0316916395d89b41916004808301925f9291908290030181865afa158015610ca6573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610ccd919081019061319c565b91505090565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc2008054604080517f313ce56700000000000000000000000000000000000000000000000000000000815290515f93926001600160a01b03169163313ce5679160048083019260209291908290030181865afa158015610d54573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ccd91906131e1565b60605f610d8483611645565b60010190505f8167ffffffffffffffff811115610da357610da3612abb565b6040519080825280601f01601f191660200182016040528015610dcd576020820181803683370190505b5090508181016020015b5f19017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084610dd757509392505050565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc2008054604080517f38d52e0f0000000000000000000000000000000000000000000000000000000081529051606093926001600160a01b0316916338d52e0f9160048083019260209291908290030181865afa158015610e97573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ebb9190613137565b6001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015610ca6573d5f803e3d5ffd5b60606102db825f611726565b805115610f44577fd66d6a9810a5cef78b704e7e04334961e997c81d337f029f74637f060f3d8d65838383604051610f3b93929190613215565b60405180910390a15b505050565b816001600160a01b0316816001600160a01b031614158015610faf57506001600160a01b038082165f9081527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4501602090815260408083209386168352929052205460ff16155b1561058b576040517fe237d9220000000000000000000000000000000000000000000000000000000081526001600160a01b038084166004830152821660248201526044016107f4565b6001600160a01b03841661103b576040517f57f447ce0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b03851661107d576040517f01a835140000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6105a7858585858560016115ed565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006102db565b6110bc6118a5565b610b6b816118e5565b6001600160a01b038416611107576040517f57f447ce0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6040805160018082526020820186905281830190815260608201859052608082019092529061096d5f87848487846115ed565b7f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45006001600160a01b03841661119d576040517f3e31884e0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b0383166111df576040517fced3e1000000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b038481165f818152600184016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a350505050565b6001600160a01b038316611290576040517f01a835140000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b604080516001808252602082018590528183019081526060820184905260a082019092525f608082018181529192916105a791879185908590836115ed565b5f806112db84846118f6565b54949350505050565b5f8060ff1961131460017fedb99b3af8e1c50d494d6f1b4c75245a0b733cb90baa42bfe0e2f5bc8b000f82613259565b60405160200161132691815260200190565b60408051601f1981840301815291905280516020909101201692915050565b6040517f79ba43050000000000000000000000000000000000000000000000000000000081525f9081908490829081906001600160a01b038716906379ba43059061139a90869060039060019060040161326c565b606060405180830381865afa1580156113b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113d991906132a4565b5091509150875f03611496575b5f198214611488576040517f79ba430500000000000000000000000000000000000000000000000000000000815291925082916001600160a01b038716906379ba43059061143e90859060039060019060040161326c565b606060405180830381865afa158015611459573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061147d91906132a4565b5090925090506113e6565b5f83945094505050506115e5565b875b5f1983146115dd5782935060028203611548576040517fb21a2494000000000000000000000000000000000000000000000000000000008152600481018490525f90611538906001600160a01b038a169063b21a2494906024015f60405180830381865afa15801561150c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611533919081019061319c565b61196a565b9050611544828261197f565b9150505b6040517f79ba43050000000000000000000000000000000000000000000000000000000081526001600160a01b038816906379ba43059061159390869060039060019060040161326c565b606060405180830381865afa1580156115ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115d291906132a4565b509093509150611498565b945091925050505b935093915050565b6115f9868686866119fa565b6001600160a01b0385161561096d573381156116225761161d818888888888611a5f565b610461565b6020858101519085015161163a838a8a85858a611bfc565b505050505050505050565b5f807a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061168d577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef810000000083106116b9576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106116d757662386f26fc10000830492506010015b6305f5e10083106116ef576305f5e100830492506008015b612710831061170357612710830492506004015b60648310611715576064830492506002015b600a83106102db5760010192915050565b606082515f03611744575060408051602081019091525f81526102db565b5f826117745760038451600261175a91906132e6565b61176491906132f9565b61176f906004613318565b611799565b6003845160046117849190613318565b61178f9060026132e6565b61179991906132f9565b905060405191507f4142434445464748494a4b4c4d4e4f505152535455565758595a616263646566601f5261067083027f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f18603f526020820181810185865187016020810180515f82525b82841015611857576003840193508351603f8160121c16518753600187019650603f81600c1c16518753600187019650603f8160061c16518753600187019650603f811651875350600186019550611804565b9052508590506118985760038651066001811461187b576002811461188e57611896565b603d6001840353603d6002840353611896565b603d60018403535b505b9183525060405292915050565b6118ad611d46565b6118e3576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6118ed6118a5565b610b6b81611d64565b5f8060ff1961192660017f3a8e79826d53842322cdcc810d4a989eb01ac46cfabfd48dcc021625ce13c2d7613259565b60405160200161193891815260200190565b60408051808303601f1901815291815281516020928301205f9687529290921681528185209585529490945250502090565b5f818060200190518101906102db919061332f565b5f7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8311156119dd576040517fbf463fe9000000000000000000000000000000000000000000000000000000008152600481018490526024016107f4565b5f6108bc6119f46119ee865f611db0565b85611e0a565b5f611e6c565b5f611a03610a4d565b90505f5b8351811015611a5257611a3486858381518110611a2657611a26613152565b602002602001015184611eae565b611a4a85858381518110611a2657611a26613152565b600101611a07565b506105a785858585611fb0565b6001600160a01b0384163b1561096d576040517fbc197c810000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063bc197c8190611abc9089908990889088908890600401613346565b6020604051808303815f875af1925050508015611af6575060408051601f3d908101601f19168201909252611af3918101906133a3565b60015b611b76573d808015611b23576040519150601f19603f3d011682016040523d82523d5f602084013e611b28565b606091505b5080515f03611b6e576040517f57f447ce0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024016107f4565b805160208201fd5b7fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014610461576040517f57f447ce0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024016107f4565b6001600160a01b0384163b1561096d576040517ff23a6e610000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063f23a6e6190611c5990899089908890889088906004016133be565b6020604051808303815f875af1925050508015611c93575060408051601f3d908101601f19168201909252611c90918101906133a3565b60015b611cc0573d808015611b23576040519150601f19603f3d011682016040523d82523d5f602084013e611b28565b7fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014610461576040517f57f447ce0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024016107f4565b5f611d4f61108c565b5468010000000000000000900460ff16919050565b7f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45007f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4502610f44838261347c565b5f805f611dbd8585612063565b9150915080611e02576040517f22c9f7bb00000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016107f4565b509392505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d8480611e4f86868686612169565b915091505f611e5e8383612288565b9a9950505050505050505050565b5f807bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8416601b0b60e085901d611ea08282876122e6565b9350935050505b9250929050565b6001600160a01b038316611ec157505050565b5f611eca6112e4565b6001600160a01b0385165f90815260208281526040808320878452909152812054919250611ef886866112cf565b90505f80611f07838588611345565b91509150838103611f1c575050505050505050565b6001600160a01b0388165f908152602086815260408083208a84529091529020819055818314611f5157611f518888846124ce565b60408051858152602081018390529081018490526060810183905287906001600160a01b038a16907f956b049289f8dbe8716375414d9fa6bf32cde65ec1b7e102623775cacc66a6999060800160405180910390a35050505050505050565b5f611fb96124e2565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc200546040517fe5be7d900000000000000000000000000000000000000000000000000000000081529192506001600160a01b03169063e5be7d909061202a9084908990899089908990600401613538565b5f604051808303815f87803b158015612041575f80fd5b505af1158015612053573d5f803e3d5ffd5b505050506105a785858585612563565b5f601b83900b83148383826120c7577d90e40fbeea1d3a4abc8955e946fe31cdcf66f634e10000000000000000008605156120a757620186a0860595506005850194505b8586601b0b146120c257600a860595508460010194506120a7565b6120dd565b855f036120dd57505f925060019150611ea79050565b848560030b14612139575f8512156120fd57505f9250829150611ea79050565b6040517fd556b11100000000000000000000000000000000000000000000000000000000815260048101839052602481018290526044016107f4565b50507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841660e084901b1791509250929050565b5f8085158415178015612181575f92505f915061227e565b61218b848761357d565b91505f612197886127c7565b90505f6121a3876127c7565b90505f6121b08383612828565b5090505f6f0785ee10d5da46d900f436a0000000008211156121e5576f0785ee10d5da46d900f436a000000000820491506025015b670de0b6b3a764000082111561220657670de0b6b3a7640000820491506012015b633b9aca0082111561221f57633b9aca00820491506009015b61271082111561223457612710820491506004015b811561224857600a82049150600101612234565b612252818761357d565b95506122748b8a61226e878761226987600a613684565b612844565b89612929565b9097509550505050505b5094509492505050565b5f805f6122958585612063565b91509150801580156122a5575081155b15611e02576040517f8eba4d0700000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016107f4565b5f805f85121561232c576040517f4a7d166b00000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016107f4565b845f0361233e57505f905060016115e5565b8460ff8416850185811215612389576040517fd556b11100000000000000000000000000000000000000000000000000000000815260048101889052602481018790526044016107f4565b5f805f8312156123f3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb38312156123ca575f8095509550505050506115e5565b825f03600a0a91508184816123e1576123e1613201565b04955050840290911491506115e59050565b5f8313156124be57604d831315612449576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff881660448201526064016107f4565b82600a0a9150815f198161245f5761245f613201565b048411156124ac576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff881660448201526064016107f4565b50919091029250600191506115e59050565b83600195509550505050506115e5565b5f6124d984846118f6565b91909155505050565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201545f907fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc200906001600160a01b03168061253e57339250505090565b6001909101805473ffffffffffffffffffffffffffffffffffffffff19169055919050565b805182517f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c450091146125cd57825182516040517f5b059991000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016107f4565b335f5b84518110156126e8576020818102868101820151908601909101516001600160a01b0389161561269a575f828152602086815260408083206001600160a01b038d16845290915290205481811015612674576040517f03dee4c50000000000000000000000000000000000000000000000000000000081526001600160a01b038b1660048201526024810182905260448101839052606481018490526084016107f4565b5f838152602087815260408083206001600160a01b038e16845290915290209082900390555b6001600160a01b038816156126de575f828152602086815260408083206001600160a01b038c168452909152812080548392906126d89084906132e6565b90915550505b50506001016125d0565b5083516001036127685760208401515f906020850151909150866001600160a01b0316886001600160a01b0316846001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051612759929190918252602082015260400190565b60405180910390a4505061096d565b846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516127b792919061368f565b60405180910390a4505050505050565b5f80821215612824577f8000000000000000000000000000000000000000000000000000000000000000820361281e57507f8000000000000000000000000000000000000000000000000000000000000000919050565b505f0390565b5090565b5f805f1983850993909202808410938190039390930393915050565b5f805f6128518686612828565b91509150815f036128755783818161286b5761286b613201565b0492505050610b00565b8382106128bf576040517f6c59da120000000000000000000000000000000000000000000000000000000081526004810187905260248101869052604481018590526064016107f4565b5f84868809600186198101871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103025f82900382900490920185841190960395909502919093039390930492909217029150509392505050565b5f805f85871812156129f3577f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8411156129e0576129887f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60016132e6565b84036129b857507f8000000000000000000000000000000000000000000000000000000000000000905081612a2c565b6129c3600a856132f9565b6129cc906136b3565b6129d784600161357d565b91509150612a2c565b6129e9846136b3565b8391509150612a2c565b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841115612a26576129cc600a856132f9565b50829050815b94509492505050565b6001600160a01b0381168114610b6b575f80fd5b5f8060408385031215612a5a575f80fd5b8235612a6581612a35565b946020939093013593505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114610b6b575f80fd5b5f60208284031215612ab0575f80fd5b8135610b0081612a73565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612af857612af8612abb565b604052919050565b5f67ffffffffffffffff821115612b1957612b19612abb565b50601f01601f191660200190565b5f82601f830112612b36575f80fd5b8135612b49612b4482612b00565b612acf565b818152846020838601011115612b5d575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f8060c08789031215612b8e575f80fd5b8635612b9981612a35565b95506020870135612ba981612a35565b94506040870135612bb981612a35565b9350606087013592506080870135915060a087013567ffffffffffffffff811115612be2575f80fd5b612bee89828a01612b27565b9150509295509295509295565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6102d86020830184612bfb565b5f60208284031215612c4b575f80fd5b5035919050565b5f8060408385031215612c63575f80fd5b82359150602083013567ffffffffffffffff811115612c80575f80fd5b612c8c85828601612b27565b9150509250929050565b5f67ffffffffffffffff821115612caf57612caf612abb565b5060051b60200190565b5f82601f830112612cc8575f80fd5b81356020612cd8612b4483612c96565b8083825260208201915060208460051b870101935086841115612cf9575f80fd5b602086015b84811015612d155780358352918301918301612cfe565b509695505050505050565b5f805f805f60a08688031215612d34575f80fd5b8535612d3f81612a35565b94506020860135612d4f81612a35565b9350604086013567ffffffffffffffff80821115612d6b575f80fd5b612d7789838a01612cb9565b94506060880135915080821115612d8c575f80fd5b612d9889838a01612cb9565b93506080880135915080821115612dad575f80fd5b50612dba88828901612b27565b9150509295509295909350565b5f60208284031215612dd7575f80fd5b813567ffffffffffffffff811115612ded575f80fd5b612df984828501612b27565b949350505050565b5f8060408385031215612e12575f80fd5b823567ffffffffffffffff80821115612e29575f80fd5b818501915085601f830112612e3c575f80fd5b81356020612e4c612b4483612c96565b82815260059290921b84018101918181019089841115612e6a575f80fd5b948201945b83861015612e91578535612e8281612a35565b82529482019490820190612e6f565b96505086013592505080821115612ea6575f80fd5b50612c8c85828601612cb9565b5f815180845260208085019450602084015f5b83811015612ee257815187529582019590820190600101612ec6565b509495945050505050565b602081525f6102d86020830184612eb3565b5f805f805f60a08688031215612f13575f80fd5b8535612f1e81612a35565b94506020860135612f2e81612a35565b93506040860135925060608601359150608086013567ffffffffffffffff811115612f57575f80fd5b612dba88828901612b27565b5f8060408385031215612f74575f80fd5b8235612f7f81612a35565b915060208301358015158114612f93575f80fd5b809150509250929050565b5f8060408385031215612faf575f80fd5b8235612fba81612a35565b91506020830135612f9381612a35565b5f81518060208401855e5f93019283525090919050565b5f612df9612fef8386612fca565b84612fca565b7f7b22646563696d616c73223a000000000000000000000000000000000000000081525f613026600c830187612fca565b7f2c226465736372697074696f6e223a2231206f6620746865736520726563656981527f7074732063616e206265206275726e656420616c6f6e67736964652031200000602082015261307c603e820187612fca565b90507f20746f2072656465656d2000000000000000000000000000000000000000000081526130ae600b820186612fca565b90507f2066726f6d20746865207661756c742e222c000000000000000000000000000081527f226e616d65223a220000000000000000000000000000000000000000000000006012820152613106601a820185612fca565b7f227d0000000000000000000000000000000000000000000000000000000000008152600201979650505050505050565b5f60208284031215613147575f80fd5b8151610b0081612a35565b634e487b7160e01b5f52603260045260245ffd5b5f613173612b4484612b00565b9050828152838383011115613186575f80fd5b8282602083015e5f602084830101529392505050565b5f602082840312156131ac575f80fd5b815167ffffffffffffffff8111156131c2575f80fd5b8201601f810184136131d2575f80fd5b612df984825160208401613166565b5f602082840312156131f1575f80fd5b815160ff81168114610b00575f80fd5b634e487b7160e01b5f52601260045260245ffd5b6001600160a01b0384168152826020820152606060408201525f61323c6060830184612bfb565b95945050505050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156102db576102db613245565b83815260208101839052606081016003831061329657634e487b7160e01b5f52602160045260245ffd5b826040830152949350505050565b5f805f606084860312156132b6575f80fd5b8351925060208401519150604084015167ffffffffffffffff811681146132db575f80fd5b809150509250925092565b808201808211156102db576102db613245565b5f8261331357634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176102db576102db613245565b5f6020828403121561333f575f80fd5b5051919050565b5f6001600160a01b03808816835280871660208401525060a0604083015261337160a0830186612eb3565b82810360608401526133838186612eb3565b905082810360808401526133978185612bfb565b98975050505050505050565b5f602082840312156133b3575f80fd5b8151610b0081612a73565b5f6001600160a01b03808816835280871660208401525084604083015283606083015260a060808301526133f560a0830184612bfb565b979650505050505050565b600181811c9082168061341457607f821691505b60208210810361343257634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115610f4457805f5260205f20601f840160051c8101602085101561345d5750805b601f840160051c820191505b818110156105a7575f8155600101613469565b815167ffffffffffffffff81111561349657613496612abb565b6134aa816134a48454613400565b84613438565b602080601f8311600181146134dd575f84156134c65750858301515b5f19600386901b1c1916600185901b17855561096d565b5f85815260208120601f198616915b8281101561350b578886015182559484019460019091019084016134ec565b508582101561352857878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f6001600160a01b038088168352808716602084015280861660408401525060a0606083015261356b60a0830185612eb3565b82810360808401526133978185612eb3565b8082018281125f83128015821682158216171561359c5761359c613245565b505092915050565b600181815b808511156135de57815f19048211156135c4576135c4613245565b808516156135d157918102915b93841c93908002906135a9565b509250929050565b5f826135f4575060016102db565b8161360057505f6102db565b816001811461361657600281146136205761363c565b60019150506102db565b60ff84111561363157613631613245565b50506001821b6102db565b5060208310610133831016604e8410600b841016171561365f575081810a6102db565b61366983836135a4565b805f190482111561367c5761367c613245565b029392505050565b5f6102d883836135e6565b604081525f6136a16040830185612eb3565b828103602084015261323c8185612eb3565b5f7f8000000000000000000000000000000000000000000000000000000000000000820361281e5761281e61324556"; diff --git a/src/generated/0_1_6/StoxReceiptVault.pointers.sol b/src/generated/0_1_6/StoxReceiptVault.pointers.sol deleted file mode 100644 index 95c52050..00000000 --- a/src/generated/0_1_6/StoxReceiptVault.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x22aa77aa9ffec4d290a8cacbcd8444b85761b6a1fb77c3f1b1a73490a7d9f972); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0xD7f91c1C6e6e651Ec3F1Fd707aF7CbB7526206e1); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"608060405234801561000f575f80fd5b5060017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005561003c610041565b6100f3565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100915760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100f05780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b615ffa806101005f395ff3fe608060405260043610610337575f3560e01c8063715018a6116101af578063bbec4d06116100eb578063dd62ed3e11610094578063e70689f51161006e578063e70689f5146109ab578063f2fde38b146109ca578063f5647943146109e9578063f5d214f514610a1e5761033e565b8063dd62ed3e146108ed578063e1e6b89814610950578063e5be7d901461098c5761033e565b8063c77b66c2116100c5578063c77b66c2146108b3578063d09edf31146108c6578063db2088f4146108da5761033e565b8063bbec4d0614610875578063c54cafee14610894578063c63d75b6146105635761033e565b80638da5cb5b11610158578063a9059cbb11610132578063a9059cbb146107b8578063ac9650d8146107d7578063ae57de0c14610803578063ae98b39f146108225761033e565b80638da5cb5b14610771578063921a4c421461078557806395d89b41146107a45761033e565b80637a7af70d116101895780637a7af70d1461072057806381c3fcb91461073357806385b68756146107525761033e565b8063715018a6146106ce578063770afee1146106e2578063786cd916146107015761033e565b8063276b11401161027e5780634abe413711610227578063633ac71711610201578063633ac7171461061e5780636ba235211461063d5780636c876b941461069057806370a08231146106af5761033e565b80634abe4137146105c157806356db02e8146105e057806359f89dda146105ff5761033e565b8063402d267d11610258578063402d267d14610563578063439fab9114610583578063488bd7b0146105a25761033e565b8063276b1140146104fe578063313ce5671461051157806338d52e0f146105375761033e565b806318160ddd116102e05780631f6759d3116102ba5780631f6759d31461048d57806323b872dd146104c05780632755c6c7146104df5761033e565b806318160ddd1461043b578063181e7b3b1461044f5780631e4344a11461046e5761033e565b806306fdde031161031157806306fdde03146103e8578063095ea7b3146104095780631423feba146104285761033e565b806301e1d1141461037357806301ffc9a71461039a578063058a628f146103c95761033e565b3661033e57005b73b7e24412126ad6a2ce19cbd79fd11b68e7f30cf6365f80375f80365f845af43d5f803e80801561036d573d5ff35b3d5ffd5b005b34801561037e575f80fd5b50610387610a51565b6040519081526020015b60405180910390f35b3480156103a5575f80fd5b506103b96103b4366004614f0e565b610a5f565b6040519015158152602001610391565b3480156103d4575f80fd5b506103716103e3366004614f61565b610aba565b3480156103f3575f80fd5b506103fc610ce3565b6040516103919190614faa565b348015610414575f80fd5b506103b9610423366004614fbc565b610db6565b610387610436366004615109565b610dcd565b348015610446575f80fd5b50610387610e17565b34801561045a575f80fd5b50610387610469366004615168565b610e20565b348015610479575f80fd5b50610371610488366004615188565b610e3f565b348015610498575f80fd5b507f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70054610387565b3480156104cb575f80fd5b506103b96104da36600461519f565b610ecb565b3480156104ea575f80fd5b506103716104f9366004614fbc565b610eee565b61038761050c366004615168565b611028565b34801561051c575f80fd5b50610525611053565b60405160ff9091168152602001610391565b348015610542575f80fd5b5061054b6110f8565b6040516001600160a01b039091168152602001610391565b34801561056e575f80fd5b5061038761057d366004614f61565b505f1990565b34801561058e575f80fd5b5061038761059d3660046151dd565b61112c565b3480156105ad575f80fd5b506103876105bc366004615168565b6113d1565b3480156105cc575f80fd5b506103876105db366004614fbc565b6113e9565b3480156105eb575f80fd5b506103876105fa36600461520f565b6114a3565b34801561060a575f80fd5b50610371610619366004615256565b6117e4565b348015610629575f80fd5b50610371610638366004614f61565b61181c565b348015610648575f80fd5b50610387610657366004614f61565b6001600160a01b03165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be701602052604090205490565b34801561069b575f80fd5b506103716106aa366004614f61565b611949565b3480156106ba575f80fd5b506103876106c9366004614f61565b611a49565b3480156106d9575f80fd5b50610371611a92565b3480156106ed575f80fd5b506103876106fc366004615256565b611aa5565b34801561070c575f80fd5b5061037161071b366004614fbc565b611c5f565b61038761072e366004615168565b611d90565b34801561073e575f80fd5b5061037161074d3660046151dd565b611da5565b34801561075d575f80fd5b5061038761076c366004614fbc565b611de1565b34801561077c575f80fd5b5061054b611ec4565b348015610790575f80fd5b5061038761079f3660046152ab565b611ecd565b3480156107af575f80fd5b506103fc611efa565b3480156107c3575f80fd5b506103b96107d2366004614fbc565b611f4b565b3480156107e2575f80fd5b506107f66107f136600461531c565b611f58565b604051610391919061538b565b34801561080e575f80fd5b5061038761081d3660046152ab565b61203e565b34801561082d575f80fd5b5061038761083c366004614f61565b6001600160a01b03165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be702602052604090205490565b348015610880575f80fd5b5061038761088f366004615168565b612061565b34801561089f575f80fd5b506103876108ae366004615449565b61206f565b6103876108c1366004615109565b612157565b3480156108d1575f80fd5b5061054b612186565b6103876108e8366004615168565b6121ae565b3480156108f8575f80fd5b506103876109073660046154ae565b6001600160a01b039182165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b34801561095b575f80fd5b507f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031661054b565b348015610997575f80fd5b506103716109a6366004615557565b6121c2565b3480156109b6575f80fd5b506103716109c53660046155ed565b6122f9565b3480156109d5575f80fd5b506103716109e4366004614f61565b612462565b3480156109f4575f80fd5b507fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd025442116103b9565b348015610a29575f80fd5b507fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0154610387565b5f610a5a610e17565b905090565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f59f89dda000000000000000000000000000000000000000000000000000000001480610ab45750610ab4826124b8565b92915050565b6040517f248a9ca30000000000000000000000000000000000000000000000000000000081527ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f8960048201525f906001600160a01b0383169063248a9ca390602401602060405180830381865afa158015610b37573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b5b9190615645565b905080610bca576040517f76728ed90000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201527ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f8960248201526044015b60405180910390fd5b6040517f248a9ca30000000000000000000000000000000000000000000000000000000081527f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e760048201525f906001600160a01b0384169063248a9ca390602401602060405180830381865afa158015610c47573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c6b9190615645565b905080610cd5576040517f76728ed90000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201527f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e76024820152604401610bc1565b610cde836125e6565b505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0380546060917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0091610d349061565c565b80601f0160208091040260200160405190810160405280929190818152602001828054610d609061565c565b8015610dab5780601f10610d8257610100808354040283529160200191610dab565b820191905f5260205f20905b815481529060010190602001808311610d8e57829003601f168201915b505050505091505090565b5f33610dc38185856125f7565b5060019392505050565b5f80610dd7612604565b90505f610df187610deb335b89865f61265b565b8761266f565b9050610e008787838588612685565b610e0b335b476128ac565b9150505b949350505050565b5f610a5a612955565b5f610e3883670de0b6b3a7640000612ab4565b612ab4565b9392505050565b610e47612ac0565b7f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be7008054821115610e75578181555b7fff9fd4facd8bd30d905cc7ffbd03e8829a414df4c6554d155d132c3377868a42610e9e611ec4565b8254604080516001600160a01b039093168352602083018690528201526060015b60405180910390a15050565b5f33610ed8858285612b0b565b610ee3858585612bbf565b506001949350505050565b610ef6612ac0565b805f03610f3a576040517f5a6084530000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610bc1565b6001600160a01b0382165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70260205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70090821115610fb7576001600160a01b0383165f90815260028201602052604090208290555b7fa1e5b368dc99c8558f28b1e7e8cb7ab542c989a4b697628ba7bfffe0aeaccffd610fe0611ec4565b6001600160a01b038581165f818152600286016020908152604091829020548251959094168552840191909152820185905260608201526080015b60405180910390a1505050565b5f8061104884611042335b3361103c612604565b5f61265b565b85612c4e565b9050610e3833610e05565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f308970152310243260080545f91906001600160a01b0316803b806110905760126110f0565b816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110f091906156a7565b935050505090565b5f807f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f30897015231024326005b546001600160a01b031692915050565b5f80611136612c65565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156111625750825b90505f8267ffffffffffffffff16600114801561117e5750303b155b90508115801561118c575080155b156111c3576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156112245784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b61122c612c8d565b5f878060200190518101906112419190615714565b90506112508160200151612cc6565b6020810151516001600160a01b031615611296576040517f8951799200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80516001600160a01b03166112d7576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6112e030612e39565b80516112eb90612f99565b7ffa89761502e992c8c755fba778ced00f4562485023f656906eb76f5dd65a9fe53360408051808201825284516001600160a01b0316815260208086015190820152905161133a92919061580b565b60405180910390a17fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc396505083156113c75784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b5f610e38836113e4335b3386600161265b565b613021565b5f61141b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031690565b6040517efdd58e0000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015260248201859052919091169062fdd58e90604401602060405180830381865afa15801561147f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e389190615645565b5f6114ac61302e565b825f036114e5576040517f312497b000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6115a98461151b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031690565b6040517efdd58e0000000000000000000000000000000000000000000000000000000081526001600160a01b038a81166004830152602482018a9052919091169062fdd58e90604401602060405180830381865afa15801561157f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115a39190615645565b9061305c565b905080156116c6577f88e2280ece62e9296d3578b77647db2c11f9fa7e42578e2db5d4262123ffae3e3387878785886040516115ea969594939291906158af565b60405180910390a17f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b03166001600160a01b031663043fa98733883360405160e085901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b03938416600482015291831660248301529091166044820152606481018890526084810184905260c060a48201525f60c482015260e4015f604051808303815f87803b1580156116af575f80fd5b505af11580156116c1573d5f803e3d5ffd5b505050505b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f3dd35eca0ca8a128757fa464a5dfa4ad6cc4853cad96dce4e90fdbea4f0a52e36040518060a001604052808c6001600160a01b031681526020018b81526020018a81526020018781526020018981525060405160200161175d91906158f8565b6040516020818303038152906040526040518463ffffffff1660e01b815260040161178a93929190615943565b5f604051808303815f87803b1580156117a1575f80fd5b505af11580156117b3573d5f803e3d5ffd5b5093945050505050610e0f60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b8282826040517f3ae4063b000000000000000000000000000000000000000000000000000000008152600401610bc193929190615943565b611824612ac0565b6001600160a01b0381165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70260205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be7009042116118d9576001600160a01b0382165f818152600283016020526040908190205490517f81a7897700000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610bc1565b6001600160a01b0382165f9081526002820160205260408120557fa1e5b368dc99c8558f28b1e7e8cb7ab542c989a4b697628ba7bfffe0aeaccffd61191c611ec4565b604080516001600160a01b03928316815291851660208301525f9082018190526060820152608001610ebf565b611951612ac0565b6001600160a01b0381165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70160205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be700904211611a06576001600160a01b0382165f818152600183016020526040908190205490517ff1b01b5400000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610bc1565b6001600160a01b0382165f9081526001820160205260408120557fd08871fffa9d03c01fcba597af5dfbe64cb26f207debdae1af2532695447499161191c611ec4565b5f80611a548361306b565b90505f611a5f61307e565b6001600160a01b0385165f90815260038201602052604081205491925090611a889084906130df565b5095945050505050565b611a9a612ac0565b611aa35f612f99565b565b5f611aae61302e565b825f03611ae7576040517f312497b000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f611af5846115a387611a49565b90508015611b47577f3fc1c49e72362e91416388fe7a107b92db924642476e83e701eeeb6256d7249e3386868487604051611b3495949392919061596a565b60405180910390a1611b47853383612bbf565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f54f0af3716c79b30b8c228679d31d77a1a5f526c16af3262730e0a8de4363fed60405180608001604052808b6001600160a01b031681526020018a815260200187815260200189815250604051602001611bd891906159a1565b6040516020818303038152906040526040518463ffffffff1660e01b8152600401611c0593929190615943565b5f604051808303815f87803b158015611c1c575f80fd5b505af1158015611c2e573d5f803e3d5ffd5b5093945050505050610e3860017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b611c67612ac0565b805f03611cab576040517ffd86061b0000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610bc1565b6001600160a01b0382165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70160205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70090821115611d28576001600160a01b0383165f90815260018201602052604090208290555b7fd08871fffa9d03c01fcba597af5dfbe64cb26f207debdae1af25326954474991611d51611ec4565b6001600160a01b038581165f8181526001860160209081526040918290205482519590941685528401919091528201859052606082015260800161101b565b5f8061104884611d9f33611033565b8561266f565b7fdaffad82f53a38a62340f14cdd6fd3b437c5dcda6b32029dac1e661dbce28b2d3382604051611dd69291906159e2565b60405180910390a150565b5f80611df0848585600161265b565b9050805f03611e02575f915050610ab4565b610e0f611e367f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031690565b6040517efdd58e0000000000000000000000000000000000000000000000000000000081526001600160a01b03878116600483015260248201879052919091169062fdd58e90604401602060405180830381865afa158015611e9a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ebe9190615645565b82612ab4565b5f610a5a61318d565b5f80611ee087610e33878988600161265b565b9050611ef08187878a88886131b5565b9695505050505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0480546060917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0091610d349061565c565b5f33610dc3818585612bbf565b604080515f8152602081019091526060908267ffffffffffffffff811115611f8257611f82614fe6565b604051908082528060200260200182016040528015611fb557816020015b6060815260200190600190039081611fa05790505b5091505f5b838110156120365761201130868684818110611fd857611fd8615a43565b9050602002810190611fea9190615a70565b85604051602001611ffd93929190615ad1565b60405160208183030381529060405261357b565b83828151811061202357612023615a43565b6020908102919091010152600101611fba565b505092915050565b5f80612051876113e4878988600161265b565b9050611ef08787878488886131b5565b5f610e3883610e33336113db565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd01545f907fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd00908511156120f1576040517fe4a4718200000000000000000000000000000000000000000000000000000000815260048101869052602401610bc1565b5f61210888612102338a8a5f61265b565b5f61266f565b905061214c8888838989898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061268592505050565b979650505050505050565b5f80612161612604565b90505f6121778761217133610de3565b87612c4e565b9050610e008187898588612685565b5f807fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0061111c565b5f8061104884670de0b6b3a7640000612102565b6121cf8585858585613616565b6121d98484613679565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080546040805160a0810182526001600160a01b0388811682528781166020830152918101869052606081018590529116906359f89dda9088907f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a4890608081016122837fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0254421190565b151590526040516122979190602001615b2e565b6040516020818303038152906040526040518463ffffffff1660e01b81526004016122c493929190615943565b5f604051808303815f87803b1580156122db575f80fd5b505af11580156122ed573d5f803e3d5ffd5b50505050505050505050565b835f03612332576040517f8672985d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0090505f6040518060a001604052808360020154815260200183600201548152602001878152602001861515815260200185858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152505050915250905084806123cc5750816002015486115b156123e05760028201869055602081018690525b7f7ef5cae78e9bd364afb19bb0f8a881a6d156e35a119e28c0d17524e5079581583387878787604051612417959493929190615ba0565b60405180910390a181546001600160a01b03166359f89dda337f50a07cb25d0d864370863300b20987dfdae089abad71b607faf639d09d053391846040516020016122979190615bee565b61246a612ac0565b6001600160a01b0381166124ac576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6124b581612f99565b50565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fe5be7d9000000000000000000000000000000000000000000000000000000000148061254a57507fffffffff0000000000000000000000000000000000000000000000000000000082167f439fab9100000000000000000000000000000000000000000000000000000000145b8061259657507fffffffff0000000000000000000000000000000000000000000000000000000082167fe1e6b89800000000000000000000000000000000000000000000000000000000145b80610ab457507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610ab4565b6125ee612ac0565b6124b581612e39565b610cde8383836001613739565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd01545f907fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0090612655906001615c32565b91505090565b5f670de0b6b3a76400005b95945050505050565b5f61267a8284613861565b610e0f84845f6138a5565b61268d61302e565b845f036126c6576040517fc7838b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825f036126ff576040517ffc8c806300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03841661273f576040517f6ba9ecd800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f0361277a576040517fe4a471820000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b7f3377bcbed49a0c0005e53931cd8fe7334b5371523e5de784c0d0d3d01089cfea3385878686866040516127b3969594939291906158af565b60405180910390a16127c885858585856138ba565b6127d28484613915565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546040517f6d5b3f780000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690636d5b3f7890612842903390889087908990889060040161596a565b5f604051808303815f87803b158015612859575f80fd5b505af115801561286b573d5f803e3d5ffd5b5050505061287c8585858585613962565b6128a560017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5050505050565b804710156128ef576040517fcf47918100000000000000000000000000000000000000000000000000000000815247600482015260248101829052604401610bc1565b612908828260405180602001604052805f815250613a0e565b15612911575050565b3d156129235761291f613a23565b5050565b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8061295f61307e565b60028101549091505f0361297557612655613a2e565b5f6129845f1960036001613a93565b90505f5b5f198214610e38575f8360020183815481106129a6576129a6615a43565b905f5260205f2090600502015f0154905060028103612a83575f612a738560020185815481106129d8576129d8615a43565b905f5260205f20906005020160040180546129f29061565c565b80601f0160208091040260200160405190810160405280929190818152602001828054612a1e9061565c565b8015612a695780601f10612a4057610100808354040283529160200191612a69565b820191905f5260205f20905b815481529060010190602001808311612a4c57829003601f168201915b5050505050613b8e565b9050612a7f8382613ba3565b9250505b5f838152600485016020526040902054612a9d9083615c32565b9150612aac8360036001613a93565b925050612988565b5f610e38838383613c27565b33612ac9611ec4565b6001600160a01b031614611aa3576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610bc1565b6001600160a01b038381165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160209081526040808320938616835292905220545f19811015612bb95781811015612bab576040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201526024810182905260448101839052606401610bc1565b612bb984848484035f613739565b50505050565b6001600160a01b038316612c01576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6001600160a01b038216612c43576040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b610cde838383613c3c565b5f612c598284613861565b610e0f84846001613c27565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610ab4565b425f03611aa3576040517f789a532d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612cce613c8f565b612ce081602001518260400151613c97565b80517f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f308970152310243260080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b0393841617825560608401517f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601805490921693169283179055604080517f481c6a75000000000000000000000000000000000000000000000000000000008152905191925f92909163481c6a759160048083019260209291908290030181865afa158015612dc0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612de49190615c45565b90506001600160a01b0381163014610cde576040517f7935475e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b0382166024820152604401610bc1565b6040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f59f89dda0000000000000000000000000000000000000000000000000000000060048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa158015612eb4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ed89190615c60565b612f0e576040517ffd12061600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03831690811782556040805133815260208101929092527fa8c713fe8fb360697fc0daab836d85208a605d485fbc265aea0f773fc6cdd71a9101610ebf565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f610e38838360016138a5565b613036613ca9565b60027f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5f828218828410028218610e38565b5f8061307683613d04565b549392505050565b5f8060ff196130ae60017f2f8f8ecf1b7a1a3ceda8d15a9a2247a2377b3434535a87f1728021c13fec2e71615a30565b6040516020016130c091815260200190565b60408051601f1981840301815291905280516020909101201692915050565b5f8082816130eb61307e565b9050855f6130fc8760036001613a93565b90505b5f19811461317e57925082811580159061313c5750600283600201828154811061312b5761312b615a43565b905f5260205f2090600502015f0154145b1561316a575f61315a8460020183815481106129d8576129d8615a43565b90506131668382613ba3565b9250505b6131778160036001613a93565b90506130ff565b509350909150505b9250929050565b5f807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930061111c565b6131bd61302e565b855f036131f6576040517fc7838b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825f0361322f576040517ffc8c806300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03851661326f576040517f6ba9ecd800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0384166132af576040517f9905827b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f036132eb576040517fe4a4718200000000000000000000000000000000000000000000000000000000815260048101839052602401610bc1565b7f2845b9458bcc357e1abfe8de7f6832dfe7220596a053496b33d0deb6577d8d2a338686898787876040516133269796959493929190615c7b565b60405180910390a16001600160a01b038416331461349557613349843385612b0b565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b03166001600160a01b031663e985e9c585336040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa1580156133e5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134099190615c60565b613495576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60448201527f6572206f7220617070726f7665640000000000000000000000000000000000006064820152608401610bc1565b61349f8484613d71565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546040517fc2530e390000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063c2530e399061350f903390889087908990889060040161596a565b5f604051808303815f87803b158015613526575f80fd5b505af1158015613538573d5f803e3d5ffd5b5050505061354a868686868686613dbe565b61357360017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b505050505050565b60605f6135888484613ec7565b90508080156135a957505f3d11806135a957505f846001600160a01b03163b115b156135be576135b6613eda565b915050610ab4565b8015613601576040517f9996b3150000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610bc1565b3d156129235761360f613a23565b5092915050565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031633146128a5576040517f8813aac300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be700805442118015906136c257506001600160a01b0383165f908152600182016020526040902054155b80156136e557506001600160a01b0382165f908152600282016020526040902054155b15610cde5780546040517f79d7155100000000000000000000000000000000000000000000000000000000815260048101919091526001600160a01b03808516602483015283166044820152606401610bc1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b03851661379c576040517fe602df050000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6001600160a01b0384166137de576040517f94280d620000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6001600160a01b038086165f908152600183016020908152604080832093881683529290522083905581156128a557836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258560405161385291815260200190565b60405180910390a35050505050565b8181101561291f576040517fa3e322340000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610bc1565b5f610e0f8484670de0b6b3a764000085613ef3565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd01547fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd00906139089084613f35565b6001909101555050505050565b6001600160a01b038216613957576040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b61291f5f8383613c3c565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8216040518060c001604052806139cb3390565b6001600160a01b031681526020018a6001600160a01b031681526020018881526020018b8152602001898152602001878152506040516020016122979190615d20565b5f805f83516020850186885af1949350505050565b6040513d5f823e3d81fd5b5f8060ff19613a5e60017fb750591399365444a618527b69a54ce09476c8bde1ecff60f5aa1fe2b52605ff615a30565b604051602001613a7091815260200190565b60408051808303601f190181529190528051602090910120166002015492915050565b5f600783168103613ad0576040517fbf3cad0b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f613ad961307e565b60028101549091505f03613af1575f19915050610e38565b5f5f198614613b2457816002018681548110613b0f57613b0f615a43565b905f5260205f20906005020160030154613b27565b81545b90506002846002811115613b3d57613b3d615d32565b03613b5f57613b5682613b508484613f44565b87613fbf565b92505050610e38565b6001846002811115613b7357613b73615d32565b03613b8357613b56828287614017565b611ef0828287613fbf565b5f81806020019051810190610ab49190615645565b5f7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115613c01576040517fbf463fe900000000000000000000000000000000000000000000000000000000815260048101849052602401610bc1565b5f613c1e613c18613c12865f614084565b856140de565b5f614140565b50949350505050565b5f610e0f84670de0b6b3a76400008585613ef3565b613c44614181565b613c4d836141e7565b613c56826141e7565b613c618383836142d4565b6001600160a01b038316613c7857610cde81614434565b6001600160a01b038216610cde57610cde81614477565b611aa36144b1565b613c9f6144b1565b61291f82826144ef565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0054600203611aa3576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8060ff19613d3460017fb750591399365444a618527b69a54ce09476c8bde1ecff60f5aa1fe2b52605ff615a30565b604051602001613d4691815260200190565b60408051601f1981840301815291815281516020928301205f96875292909216905290922092915050565b6001600160a01b038216613db3576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b61291f825f83613c3c565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e9828696040518060c001604052808a6001600160a01b031681526020018b6001600160a01b031681526020018881526020018c815260200189815260200187815250604051602001613e649190615d20565b6040516020818303038152906040526040518463ffffffff1660e01b8152600401613e9193929190615943565b5f604051808303815f87803b158015613ea8575f80fd5b505af1158015613eba573d5f803e3d5ffd5b5050505050505050505050565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b5f613f20613f0083614552565b8015613f1b57505f8480613f1657613f16615d5f565b868809115b151590565b613f2b86868661457e565b6126669190615c32565b5f828218828411028218610e38565b5f5b5f198214158015613f88575042836002018381548110613f6857613f68615a43565b5f91825260209091206001600590920201015467ffffffffffffffff1611155b15613fb957826002018281548110613fa257613fa2615a43565b905f5260205f209060050201600301549150613f46565b50919050565b5f5b5f19831461400d575f846002018481548110613fdf57613fdf615a43565b905f5260205f209060050201905082815f0154165f146140025783915050610e38565b600301549250613fc1565b505f199392505050565b5f5b5f19831461400d575f84600201848154811061403757614037615a43565b5f918252602090912060059091020160018101549091504267ffffffffffffffff9091161115614067575061400d565b80548316156140795783915050610e38565b600301549250614019565b5f805f614091858561462e565b91509150806140d6576040517f22c9f7bb0000000000000000000000000000000000000000000000000000000081526004810186905260248101859052604401610bc1565b509392505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d848061412386868686614734565b915091505f6141328383614853565b9a9950505050505050505050565b5f807bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8416601b0b60e085901d6141748282876148b1565b9350935050509250929050565b5f61418a61307e565b60028101549091505f0361419b5750565b5f6141b0826005015460026001176001613a93565b90505f195b5f1982146141d35750806141cc8160036001613a93565b91506141b5565b5f198114610cde5760058301819055505050565b6001600160a01b0381166141f85750565b5f61420161307e565b6001600160a01b0383165f9081526003820160205260408120549192506142278461306b565b90505f8061423583856130df565b9150915083810361424857505050505050565b6001600160a01b0386165f9081526003860160205260409020819055818314614275576142758683614a9c565b6040805185815260208101839052908101849052606081018390526001600160a01b038716907f36a2eb39b73568d38e98721588b15b309c9380e1b1ab575c2c3d71d5148ccb4a9060800160405180910390a261357384848385614aae565b6142de8383613679565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a6040518060800160405280896001600160a01b03168152602001886001600160a01b0316815260200187815260200161438e7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0254421190565b151590526040805182516001600160a01b03908116602080840191909152840151168183015290820151606080830191909152909101511515608082015260a0016040516020818303038152906040526040518463ffffffff1660e01b81526004016143fc93929190615943565b5f604051808303815f87803b158015614413575f80fd5b505af1158015614425573d5f803e3d5ffd5b50505050612bb9848484614b0b565b5f61443d61307e565b60028101549091501561291f5760058101545f9081526004820160205260408120805484929061446e908490615c32565b90915550505050565b5f61448061307e565b60028101549091501561291f5760058101545f9081526004820160205260408120805484929061446e908490615a30565b6144b9614b16565b611aa3576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6144f76144b1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace007f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace036145438482615dd0565b5060048101612bb98382615dd0565b5f600282600381111561456757614567615d32565b6145719190615e8c565b60ff166001149050919050565b5f805f61458b8686614b34565b91509150815f036145af578381816145a5576145a5615d5f565b0492505050610e38565b8184116145c6576145c66003851502601118614b50565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010185841190960395909502919093039390930492909217029150509392505050565b5f601b83900b8314838382614692577d90e40fbeea1d3a4abc8955e946fe31cdcf66f634e100000000000000000086051561467257620186a0860595506005850194505b8586601b0b1461468d57600a86059550846001019450614672565b6146a8565b855f036146a857505f9250600191506131869050565b848560030b14614704575f8512156146c857505f92508291506131869050565b6040517fd556b1110000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610bc1565b50507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841660e084901b1791509250929050565b5f808515841517801561474c575f92505f9150614849565b6147568487615ead565b91505f61476288614b61565b90505f61476e87614b61565b90505f61477b8383614b34565b5090505f6f0785ee10d5da46d900f436a0000000008211156147b0576f0785ee10d5da46d900f436a000000000820491506025015b670de0b6b3a76400008211156147d157670de0b6b3a7640000820491506012015b633b9aca008211156147ea57633b9aca00820491506009015b6127108211156147ff57612710820491506004015b811561481357600a820491506001016147ff565b61481d8187615ead565b955061483f8b8a614839878761483487600a615fac565b614bc2565b89614c9d565b9097509550505050505b5094509492505050565b5f805f614860858561462e565b9150915080158015614870575081155b156140d6576040517f8eba4d070000000000000000000000000000000000000000000000000000000081526004810186905260248101859052604401610bc1565b5f805f8512156148f7576040517f4a7d166b0000000000000000000000000000000000000000000000000000000081526004810186905260248101859052604401610bc1565b845f0361490957505f90506001614a94565b8460ff8416850185811215614954576040517fd556b1110000000000000000000000000000000000000000000000000000000081526004810188905260248101879052604401610bc1565b5f805f8312156149be577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb3831215614995575f809550955050505050614a94565b825f03600a0a91508184816149ac576149ac615d5f565b0495505084029091149150614a949050565b5f831315614a8957604d831315614a14576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff88166044820152606401610bc1565b82600a0a9150815f1981614a2a57614a2a615d5f565b04841115614a77576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff88166044820152606401610bc1565b5091909102925060019150614a949050565b509193506001925050505b935093915050565b5f614aa683613d04565b919091555050565b5f614ab761307e565b905083816004015f8781526020019081526020015f205f828254614adb9190615a30565b90915550505f83815260048201602052604081208054849290614aff908490615c32565b90915550505050505050565b610cde838383614da9565b5f614b1f612c65565b5468010000000000000000900460ff16919050565b5f805f1983850993909202808410938190039390930393915050565b634e487b715f52806020526024601cfd5b5f80821215614bbe577f80000000000000000000000000000000000000000000000000000000000000008203614bb857507f8000000000000000000000000000000000000000000000000000000000000000919050565b505f0390565b5090565b5f805f614bcf8686614b34565b91509150815f03614be9578381816145a5576145a5615d5f565b838210614c33576040517f6c59da12000000000000000000000000000000000000000000000000000000008152600481018790526024810186905260448101859052606401610bc1565b5f84868809600186198101871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103025f82900382900490920185841190960395909502919093039390930492909217029150509392505050565b5f805f8587181215614d67577f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841115614d5457614cfc7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001615c32565b8403614d2c57507f8000000000000000000000000000000000000000000000000000000000000000905081614da0565b614d37600a85615fb7565b614d4090615fca565b614d4b846001615ead565b91509150614da0565b614d5d84615fca565b8391509150614da0565b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841115614d9a57614d40600a85615fb7565b50829050815b94509492505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b038416614df65781816002015f828254614deb9190615c32565b90915550614e7f9050565b6001600160a01b0384165f9081526020829052604090205482811015614e61576040517fe450d38c0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024810182905260448101849052606401610bc1565b6001600160a01b0385165f9081526020839052604090209083900390555b6001600160a01b038316614e9d576002810180548390039055614ebb565b6001600160a01b0383165f9081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051614f0091815260200190565b60405180910390a350505050565b5f60208284031215614f1e575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610e38575f80fd5b6001600160a01b03811681146124b5575f80fd5b5f60208284031215614f71575f80fd5b8135610e3881614f4d565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610e386020830184614f7c565b5f8060408385031215614fcd575f80fd5b8235614fd881614f4d565b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff8111828210171561503657615036614fe6565b60405290565b6040516080810167ffffffffffffffff8111828210171561503657615036614fe6565b604051601f8201601f1916810167ffffffffffffffff8111828210171561508857615088614fe6565b604052919050565b5f67ffffffffffffffff8211156150a9576150a9614fe6565b50601f01601f191660200190565b5f82601f8301126150c6575f80fd5b81356150d96150d482615090565b61505f565b8181528460208386010111156150ed575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f806080858703121561511c575f80fd5b84359350602085013561512e81614f4d565b925060408501359150606085013567ffffffffffffffff811115615150575f80fd5b61515c878288016150b7565b91505092959194509250565b5f8060408385031215615179575f80fd5b50508035926020909101359150565b5f60208284031215615198575f80fd5b5035919050565b5f805f606084860312156151b1575f80fd5b83356151bc81614f4d565b925060208401356151cc81614f4d565b929592945050506040919091013590565b5f602082840312156151ed575f80fd5b813567ffffffffffffffff811115615203575f80fd5b610e0f848285016150b7565b5f805f8060808587031215615222575f80fd5b843561522d81614f4d565b93506020850135925060408501359150606085013567ffffffffffffffff811115615150575f80fd5b5f805f60608486031215615268575f80fd5b833561527381614f4d565b925060208401359150604084013567ffffffffffffffff811115615295575f80fd5b6152a1868287016150b7565b9150509250925092565b5f805f805f60a086880312156152bf575f80fd5b8535945060208601356152d181614f4d565b935060408601356152e181614f4d565b925060608601359150608086013567ffffffffffffffff811115615303575f80fd5b61530f888289016150b7565b9150509295509295909350565b5f806020838503121561532d575f80fd5b823567ffffffffffffffff80821115615344575f80fd5b818501915085601f830112615357575f80fd5b813581811115615365575f80fd5b8660208260051b8501011115615379575f80fd5b60209290920196919550909350505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b828110156153fe577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08886030184526153ec858351614f7c565b945092850192908501906001016153b2565b5092979650505050505050565b5f8083601f84011261541b575f80fd5b50813567ffffffffffffffff811115615432575f80fd5b602083019150836020828501011115613186575f80fd5b5f805f805f6080868803121561545d575f80fd5b85359450602086013561546f81614f4d565b935060408601359250606086013567ffffffffffffffff811115615491575f80fd5b61549d8882890161540b565b969995985093965092949392505050565b5f80604083850312156154bf575f80fd5b82356154ca81614f4d565b915060208301356154da81614f4d565b809150509250929050565b5f82601f8301126154f4575f80fd5b8135602067ffffffffffffffff82111561551057615510614fe6565b8160051b61551f82820161505f565b9283528481018201928281019087851115615538575f80fd5b83870192505b8483101561214c5782358252918301919083019061553e565b5f805f805f60a0868803121561556b575f80fd5b853561557681614f4d565b9450602086013561558681614f4d565b9350604086013561559681614f4d565b9250606086013567ffffffffffffffff808211156155b2575f80fd5b6155be89838a016154e5565b935060808801359150808211156155d3575f80fd5b5061530f888289016154e5565b80151581146124b5575f80fd5b5f805f8060608587031215615600575f80fd5b843593506020850135615612816155e0565b9250604085013567ffffffffffffffff81111561562d575f80fd5b6156398782880161540b565b95989497509550505050565b5f60208284031215615655575f80fd5b5051919050565b600181811c9082168061567057607f821691505b602082108103613fb9577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f602082840312156156b7575f80fd5b815160ff81168114610e38575f80fd5b5f82601f8301126156d6575f80fd5b81516156e46150d482615090565b8181528460208386010111156156f8575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f60208284031215615724575f80fd5b815167ffffffffffffffff8082111561573b575f80fd5b908301906040828603121561574e575f80fd5b615756615013565b825161576181614f4d565b8152602083015182811115615774575f80fd5b929092019160808387031215615788575f80fd5b61579061503c565b835161579b81614f4d565b81526020840151838111156157ae575f80fd5b6157ba888287016156c7565b6020830152506040840151838111156157d1575f80fd5b6157dd888287016156c7565b604083015250606084015193506157f384614f4d565b60608101939093526020810192909252509392505050565b5f6001600160a01b038085168352604060208401528084511660408401526020840151604060608501528181511660808501526020810151608060a0860152615858610100860182614f7c565b905060408201517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808683030160c08701526158938282614f7c565b9150508260608301511660e08601528093505050509392505050565b5f6001600160a01b03808916835280881660208401525085604083015284606083015283608083015260c060a08301526158ec60c0830184614f7c565b98975050505050505050565b602081526001600160a01b0382511660208201526020820151604082015260408201516060820152606082015160808201525f608083015160a080840152610e0f60c0840182614f7c565b6001600160a01b0384168152826020820152606060408201525f6126666060830184614f7c565b5f6001600160a01b03808816835280871660208401525084604083015283606083015260a0608083015261214c60a0830184614f7c565b602081526001600160a01b03825116602082015260208201516040820152604082015160608201525f6060830151608080840152610e0f60a0840182614f7c565b6001600160a01b0383168152604060208201525f610e0f6040830184614f7c565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b81810381811115610ab457610ab4615a03565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112615aa3575f80fd5b83018035915067ffffffffffffffff821115615abd575f80fd5b602001915036819003821315613186575f80fd5b828482375f8382015f815283518060208601835e5f910190815295945050505050565b5f815180845260208085019450602084015f5b83811015615b2357815187529582019590820190600101615b07565b509495945050505050565b602081525f6001600160a01b0380845116602084015280602085015116604084015250604083015160a06060840152615b6a60c0840182615af4565b90506060840151601f19848303016080850152615b878282615af4565b9150506080840151151560a08401528091505092915050565b6001600160a01b0386168152846020820152831515604082015260806060820152816080820152818360a08301375f81830160a090810191909152601f909201601f19160101949350505050565b602081528151602082015260208201516040820152604082015160608201526060820151151560808201525f608083015160a080840152610e0f60c0840182614f7c565b80820180821115610ab457610ab4615a03565b5f60208284031215615c55575f80fd5b8151610e3881614f4d565b5f60208284031215615c70575f80fd5b8151610e38816155e0565b5f6001600160a01b03808a16835280891660208401528088166040840152508560608301528460808301528360a083015260e060c0830152615cc060e0830184614f7c565b9998505050505050505050565b5f6001600160a01b038083511684528060208401511660208501525060408201516040840152606082015160608401526080820151608084015260a082015160c060a0850152610e0f60c0850182614f7c565b602081525f610e386020830184615ccd565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b601f821115610cde57805f5260205f20601f840160051c81016020851015615db15750805b601f840160051c820191505b818110156128a5575f8155600101615dbd565b815167ffffffffffffffff811115615dea57615dea614fe6565b615dfe81615df8845461565c565b84615d8c565b602080601f831160018114615e31575f8415615e1a5750858301515b5f19600386901b1c1916600185901b178555613573565b5f85815260208120601f198616915b82811015615e5f57888601518255948401946001909101908401615e40565b5085821015615e7c57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f60ff831680615e9e57615e9e615d5f565b8060ff84160691505092915050565b8082018281125f83128015821682158216171561203657612036615a03565b600181815b80851115615f0657815f1904821115615eec57615eec615a03565b80851615615ef957918102915b93841c9390800290615ed1565b509250929050565b5f82615f1c57506001610ab4565b81615f2857505f610ab4565b8160018114615f3e5760028114615f4857615f64565b6001915050610ab4565b60ff841115615f5957615f59615a03565b50506001821b610ab4565b5060208310610133831016604e8410600b8410161715615f87575081810a610ab4565b615f918383615ecc565b805f1904821115615fa457615fa4615a03565b029392505050565b5f610e388383615f0e565b5f82615fc557615fc5615d5f565b500490565b5f7f80000000000000000000000000000000000000000000000000000000000000008203614bb857614bb8615a0356"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405260043610610337575f3560e01c8063715018a6116101af578063bbec4d06116100eb578063dd62ed3e11610094578063e70689f51161006e578063e70689f5146109ab578063f2fde38b146109ca578063f5647943146109e9578063f5d214f514610a1e5761033e565b8063dd62ed3e146108ed578063e1e6b89814610950578063e5be7d901461098c5761033e565b8063c77b66c2116100c5578063c77b66c2146108b3578063d09edf31146108c6578063db2088f4146108da5761033e565b8063bbec4d0614610875578063c54cafee14610894578063c63d75b6146105635761033e565b80638da5cb5b11610158578063a9059cbb11610132578063a9059cbb146107b8578063ac9650d8146107d7578063ae57de0c14610803578063ae98b39f146108225761033e565b80638da5cb5b14610771578063921a4c421461078557806395d89b41146107a45761033e565b80637a7af70d116101895780637a7af70d1461072057806381c3fcb91461073357806385b68756146107525761033e565b8063715018a6146106ce578063770afee1146106e2578063786cd916146107015761033e565b8063276b11401161027e5780634abe413711610227578063633ac71711610201578063633ac7171461061e5780636ba235211461063d5780636c876b941461069057806370a08231146106af5761033e565b80634abe4137146105c157806356db02e8146105e057806359f89dda146105ff5761033e565b8063402d267d11610258578063402d267d14610563578063439fab9114610583578063488bd7b0146105a25761033e565b8063276b1140146104fe578063313ce5671461051157806338d52e0f146105375761033e565b806318160ddd116102e05780631f6759d3116102ba5780631f6759d31461048d57806323b872dd146104c05780632755c6c7146104df5761033e565b806318160ddd1461043b578063181e7b3b1461044f5780631e4344a11461046e5761033e565b806306fdde031161031157806306fdde03146103e8578063095ea7b3146104095780631423feba146104285761033e565b806301e1d1141461037357806301ffc9a71461039a578063058a628f146103c95761033e565b3661033e57005b73b7e24412126ad6a2ce19cbd79fd11b68e7f30cf6365f80375f80365f845af43d5f803e80801561036d573d5ff35b3d5ffd5b005b34801561037e575f80fd5b50610387610a51565b6040519081526020015b60405180910390f35b3480156103a5575f80fd5b506103b96103b4366004614f0e565b610a5f565b6040519015158152602001610391565b3480156103d4575f80fd5b506103716103e3366004614f61565b610aba565b3480156103f3575f80fd5b506103fc610ce3565b6040516103919190614faa565b348015610414575f80fd5b506103b9610423366004614fbc565b610db6565b610387610436366004615109565b610dcd565b348015610446575f80fd5b50610387610e17565b34801561045a575f80fd5b50610387610469366004615168565b610e20565b348015610479575f80fd5b50610371610488366004615188565b610e3f565b348015610498575f80fd5b507f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70054610387565b3480156104cb575f80fd5b506103b96104da36600461519f565b610ecb565b3480156104ea575f80fd5b506103716104f9366004614fbc565b610eee565b61038761050c366004615168565b611028565b34801561051c575f80fd5b50610525611053565b60405160ff9091168152602001610391565b348015610542575f80fd5b5061054b6110f8565b6040516001600160a01b039091168152602001610391565b34801561056e575f80fd5b5061038761057d366004614f61565b505f1990565b34801561058e575f80fd5b5061038761059d3660046151dd565b61112c565b3480156105ad575f80fd5b506103876105bc366004615168565b6113d1565b3480156105cc575f80fd5b506103876105db366004614fbc565b6113e9565b3480156105eb575f80fd5b506103876105fa36600461520f565b6114a3565b34801561060a575f80fd5b50610371610619366004615256565b6117e4565b348015610629575f80fd5b50610371610638366004614f61565b61181c565b348015610648575f80fd5b50610387610657366004614f61565b6001600160a01b03165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be701602052604090205490565b34801561069b575f80fd5b506103716106aa366004614f61565b611949565b3480156106ba575f80fd5b506103876106c9366004614f61565b611a49565b3480156106d9575f80fd5b50610371611a92565b3480156106ed575f80fd5b506103876106fc366004615256565b611aa5565b34801561070c575f80fd5b5061037161071b366004614fbc565b611c5f565b61038761072e366004615168565b611d90565b34801561073e575f80fd5b5061037161074d3660046151dd565b611da5565b34801561075d575f80fd5b5061038761076c366004614fbc565b611de1565b34801561077c575f80fd5b5061054b611ec4565b348015610790575f80fd5b5061038761079f3660046152ab565b611ecd565b3480156107af575f80fd5b506103fc611efa565b3480156107c3575f80fd5b506103b96107d2366004614fbc565b611f4b565b3480156107e2575f80fd5b506107f66107f136600461531c565b611f58565b604051610391919061538b565b34801561080e575f80fd5b5061038761081d3660046152ab565b61203e565b34801561082d575f80fd5b5061038761083c366004614f61565b6001600160a01b03165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be702602052604090205490565b348015610880575f80fd5b5061038761088f366004615168565b612061565b34801561089f575f80fd5b506103876108ae366004615449565b61206f565b6103876108c1366004615109565b612157565b3480156108d1575f80fd5b5061054b612186565b6103876108e8366004615168565b6121ae565b3480156108f8575f80fd5b506103876109073660046154ae565b6001600160a01b039182165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b34801561095b575f80fd5b507f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031661054b565b348015610997575f80fd5b506103716109a6366004615557565b6121c2565b3480156109b6575f80fd5b506103716109c53660046155ed565b6122f9565b3480156109d5575f80fd5b506103716109e4366004614f61565b612462565b3480156109f4575f80fd5b507fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd025442116103b9565b348015610a29575f80fd5b507fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0154610387565b5f610a5a610e17565b905090565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f59f89dda000000000000000000000000000000000000000000000000000000001480610ab45750610ab4826124b8565b92915050565b6040517f248a9ca30000000000000000000000000000000000000000000000000000000081527ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f8960048201525f906001600160a01b0383169063248a9ca390602401602060405180830381865afa158015610b37573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b5b9190615645565b905080610bca576040517f76728ed90000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201527ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f8960248201526044015b60405180910390fd5b6040517f248a9ca30000000000000000000000000000000000000000000000000000000081527f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e760048201525f906001600160a01b0384169063248a9ca390602401602060405180830381865afa158015610c47573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c6b9190615645565b905080610cd5576040517f76728ed90000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201527f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e76024820152604401610bc1565b610cde836125e6565b505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0380546060917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0091610d349061565c565b80601f0160208091040260200160405190810160405280929190818152602001828054610d609061565c565b8015610dab5780601f10610d8257610100808354040283529160200191610dab565b820191905f5260205f20905b815481529060010190602001808311610d8e57829003601f168201915b505050505091505090565b5f33610dc38185856125f7565b5060019392505050565b5f80610dd7612604565b90505f610df187610deb335b89865f61265b565b8761266f565b9050610e008787838588612685565b610e0b335b476128ac565b9150505b949350505050565b5f610a5a612955565b5f610e3883670de0b6b3a7640000612ab4565b612ab4565b9392505050565b610e47612ac0565b7f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be7008054821115610e75578181555b7fff9fd4facd8bd30d905cc7ffbd03e8829a414df4c6554d155d132c3377868a42610e9e611ec4565b8254604080516001600160a01b039093168352602083018690528201526060015b60405180910390a15050565b5f33610ed8858285612b0b565b610ee3858585612bbf565b506001949350505050565b610ef6612ac0565b805f03610f3a576040517f5a6084530000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610bc1565b6001600160a01b0382165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70260205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70090821115610fb7576001600160a01b0383165f90815260028201602052604090208290555b7fa1e5b368dc99c8558f28b1e7e8cb7ab542c989a4b697628ba7bfffe0aeaccffd610fe0611ec4565b6001600160a01b038581165f818152600286016020908152604091829020548251959094168552840191909152820185905260608201526080015b60405180910390a1505050565b5f8061104884611042335b3361103c612604565b5f61265b565b85612c4e565b9050610e3833610e05565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f308970152310243260080545f91906001600160a01b0316803b806110905760126110f0565b816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110f091906156a7565b935050505090565b5f807f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f30897015231024326005b546001600160a01b031692915050565b5f80611136612c65565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156111625750825b90505f8267ffffffffffffffff16600114801561117e5750303b155b90508115801561118c575080155b156111c3576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156112245784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b61122c612c8d565b5f878060200190518101906112419190615714565b90506112508160200151612cc6565b6020810151516001600160a01b031615611296576040517f8951799200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80516001600160a01b03166112d7576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6112e030612e39565b80516112eb90612f99565b7ffa89761502e992c8c755fba778ced00f4562485023f656906eb76f5dd65a9fe53360408051808201825284516001600160a01b0316815260208086015190820152905161133a92919061580b565b60405180910390a17fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc396505083156113c75784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b5f610e38836113e4335b3386600161265b565b613021565b5f61141b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031690565b6040517efdd58e0000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015260248201859052919091169062fdd58e90604401602060405180830381865afa15801561147f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e389190615645565b5f6114ac61302e565b825f036114e5576040517f312497b000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6115a98461151b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031690565b6040517efdd58e0000000000000000000000000000000000000000000000000000000081526001600160a01b038a81166004830152602482018a9052919091169062fdd58e90604401602060405180830381865afa15801561157f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115a39190615645565b9061305c565b905080156116c6577f88e2280ece62e9296d3578b77647db2c11f9fa7e42578e2db5d4262123ffae3e3387878785886040516115ea969594939291906158af565b60405180910390a17f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b03166001600160a01b031663043fa98733883360405160e085901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b03938416600482015291831660248301529091166044820152606481018890526084810184905260c060a48201525f60c482015260e4015f604051808303815f87803b1580156116af575f80fd5b505af11580156116c1573d5f803e3d5ffd5b505050505b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f3dd35eca0ca8a128757fa464a5dfa4ad6cc4853cad96dce4e90fdbea4f0a52e36040518060a001604052808c6001600160a01b031681526020018b81526020018a81526020018781526020018981525060405160200161175d91906158f8565b6040516020818303038152906040526040518463ffffffff1660e01b815260040161178a93929190615943565b5f604051808303815f87803b1580156117a1575f80fd5b505af11580156117b3573d5f803e3d5ffd5b5093945050505050610e0f60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b8282826040517f3ae4063b000000000000000000000000000000000000000000000000000000008152600401610bc193929190615943565b611824612ac0565b6001600160a01b0381165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70260205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be7009042116118d9576001600160a01b0382165f818152600283016020526040908190205490517f81a7897700000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610bc1565b6001600160a01b0382165f9081526002820160205260408120557fa1e5b368dc99c8558f28b1e7e8cb7ab542c989a4b697628ba7bfffe0aeaccffd61191c611ec4565b604080516001600160a01b03928316815291851660208301525f9082018190526060820152608001610ebf565b611951612ac0565b6001600160a01b0381165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70160205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be700904211611a06576001600160a01b0382165f818152600183016020526040908190205490517ff1b01b5400000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610bc1565b6001600160a01b0382165f9081526001820160205260408120557fd08871fffa9d03c01fcba597af5dfbe64cb26f207debdae1af2532695447499161191c611ec4565b5f80611a548361306b565b90505f611a5f61307e565b6001600160a01b0385165f90815260038201602052604081205491925090611a889084906130df565b5095945050505050565b611a9a612ac0565b611aa35f612f99565b565b5f611aae61302e565b825f03611ae7576040517f312497b000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f611af5846115a387611a49565b90508015611b47577f3fc1c49e72362e91416388fe7a107b92db924642476e83e701eeeb6256d7249e3386868487604051611b3495949392919061596a565b60405180910390a1611b47853383612bbf565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f54f0af3716c79b30b8c228679d31d77a1a5f526c16af3262730e0a8de4363fed60405180608001604052808b6001600160a01b031681526020018a815260200187815260200189815250604051602001611bd891906159a1565b6040516020818303038152906040526040518463ffffffff1660e01b8152600401611c0593929190615943565b5f604051808303815f87803b158015611c1c575f80fd5b505af1158015611c2e573d5f803e3d5ffd5b5093945050505050610e3860017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b611c67612ac0565b805f03611cab576040517ffd86061b0000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610bc1565b6001600160a01b0382165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70160205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70090821115611d28576001600160a01b0383165f90815260018201602052604090208290555b7fd08871fffa9d03c01fcba597af5dfbe64cb26f207debdae1af25326954474991611d51611ec4565b6001600160a01b038581165f8181526001860160209081526040918290205482519590941685528401919091528201859052606082015260800161101b565b5f8061104884611d9f33611033565b8561266f565b7fdaffad82f53a38a62340f14cdd6fd3b437c5dcda6b32029dac1e661dbce28b2d3382604051611dd69291906159e2565b60405180910390a150565b5f80611df0848585600161265b565b9050805f03611e02575f915050610ab4565b610e0f611e367f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031690565b6040517efdd58e0000000000000000000000000000000000000000000000000000000081526001600160a01b03878116600483015260248201879052919091169062fdd58e90604401602060405180830381865afa158015611e9a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ebe9190615645565b82612ab4565b5f610a5a61318d565b5f80611ee087610e33878988600161265b565b9050611ef08187878a88886131b5565b9695505050505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0480546060917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0091610d349061565c565b5f33610dc3818585612bbf565b604080515f8152602081019091526060908267ffffffffffffffff811115611f8257611f82614fe6565b604051908082528060200260200182016040528015611fb557816020015b6060815260200190600190039081611fa05790505b5091505f5b838110156120365761201130868684818110611fd857611fd8615a43565b9050602002810190611fea9190615a70565b85604051602001611ffd93929190615ad1565b60405160208183030381529060405261357b565b83828151811061202357612023615a43565b6020908102919091010152600101611fba565b505092915050565b5f80612051876113e4878988600161265b565b9050611ef08787878488886131b5565b5f610e3883610e33336113db565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd01545f907fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd00908511156120f1576040517fe4a4718200000000000000000000000000000000000000000000000000000000815260048101869052602401610bc1565b5f61210888612102338a8a5f61265b565b5f61266f565b905061214c8888838989898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061268592505050565b979650505050505050565b5f80612161612604565b90505f6121778761217133610de3565b87612c4e565b9050610e008187898588612685565b5f807fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0061111c565b5f8061104884670de0b6b3a7640000612102565b6121cf8585858585613616565b6121d98484613679565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080546040805160a0810182526001600160a01b0388811682528781166020830152918101869052606081018590529116906359f89dda9088907f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a4890608081016122837fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0254421190565b151590526040516122979190602001615b2e565b6040516020818303038152906040526040518463ffffffff1660e01b81526004016122c493929190615943565b5f604051808303815f87803b1580156122db575f80fd5b505af11580156122ed573d5f803e3d5ffd5b50505050505050505050565b835f03612332576040517f8672985d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0090505f6040518060a001604052808360020154815260200183600201548152602001878152602001861515815260200185858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152505050915250905084806123cc5750816002015486115b156123e05760028201869055602081018690525b7f7ef5cae78e9bd364afb19bb0f8a881a6d156e35a119e28c0d17524e5079581583387878787604051612417959493929190615ba0565b60405180910390a181546001600160a01b03166359f89dda337f50a07cb25d0d864370863300b20987dfdae089abad71b607faf639d09d053391846040516020016122979190615bee565b61246a612ac0565b6001600160a01b0381166124ac576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6124b581612f99565b50565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fe5be7d9000000000000000000000000000000000000000000000000000000000148061254a57507fffffffff0000000000000000000000000000000000000000000000000000000082167f439fab9100000000000000000000000000000000000000000000000000000000145b8061259657507fffffffff0000000000000000000000000000000000000000000000000000000082167fe1e6b89800000000000000000000000000000000000000000000000000000000145b80610ab457507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610ab4565b6125ee612ac0565b6124b581612e39565b610cde8383836001613739565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd01545f907fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0090612655906001615c32565b91505090565b5f670de0b6b3a76400005b95945050505050565b5f61267a8284613861565b610e0f84845f6138a5565b61268d61302e565b845f036126c6576040517fc7838b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825f036126ff576040517ffc8c806300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03841661273f576040517f6ba9ecd800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f0361277a576040517fe4a471820000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b7f3377bcbed49a0c0005e53931cd8fe7334b5371523e5de784c0d0d3d01089cfea3385878686866040516127b3969594939291906158af565b60405180910390a16127c885858585856138ba565b6127d28484613915565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546040517f6d5b3f780000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690636d5b3f7890612842903390889087908990889060040161596a565b5f604051808303815f87803b158015612859575f80fd5b505af115801561286b573d5f803e3d5ffd5b5050505061287c8585858585613962565b6128a560017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5050505050565b804710156128ef576040517fcf47918100000000000000000000000000000000000000000000000000000000815247600482015260248101829052604401610bc1565b612908828260405180602001604052805f815250613a0e565b15612911575050565b3d156129235761291f613a23565b5050565b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8061295f61307e565b60028101549091505f0361297557612655613a2e565b5f6129845f1960036001613a93565b90505f5b5f198214610e38575f8360020183815481106129a6576129a6615a43565b905f5260205f2090600502015f0154905060028103612a83575f612a738560020185815481106129d8576129d8615a43565b905f5260205f20906005020160040180546129f29061565c565b80601f0160208091040260200160405190810160405280929190818152602001828054612a1e9061565c565b8015612a695780601f10612a4057610100808354040283529160200191612a69565b820191905f5260205f20905b815481529060010190602001808311612a4c57829003601f168201915b5050505050613b8e565b9050612a7f8382613ba3565b9250505b5f838152600485016020526040902054612a9d9083615c32565b9150612aac8360036001613a93565b925050612988565b5f610e38838383613c27565b33612ac9611ec4565b6001600160a01b031614611aa3576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610bc1565b6001600160a01b038381165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160209081526040808320938616835292905220545f19811015612bb95781811015612bab576040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201526024810182905260448101839052606401610bc1565b612bb984848484035f613739565b50505050565b6001600160a01b038316612c01576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6001600160a01b038216612c43576040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b610cde838383613c3c565b5f612c598284613861565b610e0f84846001613c27565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610ab4565b425f03611aa3576040517f789a532d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612cce613c8f565b612ce081602001518260400151613c97565b80517f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f308970152310243260080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b0393841617825560608401517f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601805490921693169283179055604080517f481c6a75000000000000000000000000000000000000000000000000000000008152905191925f92909163481c6a759160048083019260209291908290030181865afa158015612dc0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612de49190615c45565b90506001600160a01b0381163014610cde576040517f7935475e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b0382166024820152604401610bc1565b6040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f59f89dda0000000000000000000000000000000000000000000000000000000060048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa158015612eb4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ed89190615c60565b612f0e576040517ffd12061600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03831690811782556040805133815260208101929092527fa8c713fe8fb360697fc0daab836d85208a605d485fbc265aea0f773fc6cdd71a9101610ebf565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f610e38838360016138a5565b613036613ca9565b60027f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5f828218828410028218610e38565b5f8061307683613d04565b549392505050565b5f8060ff196130ae60017f2f8f8ecf1b7a1a3ceda8d15a9a2247a2377b3434535a87f1728021c13fec2e71615a30565b6040516020016130c091815260200190565b60408051601f1981840301815291905280516020909101201692915050565b5f8082816130eb61307e565b9050855f6130fc8760036001613a93565b90505b5f19811461317e57925082811580159061313c5750600283600201828154811061312b5761312b615a43565b905f5260205f2090600502015f0154145b1561316a575f61315a8460020183815481106129d8576129d8615a43565b90506131668382613ba3565b9250505b6131778160036001613a93565b90506130ff565b509350909150505b9250929050565b5f807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930061111c565b6131bd61302e565b855f036131f6576040517fc7838b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825f0361322f576040517ffc8c806300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03851661326f576040517f6ba9ecd800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0384166132af576040517f9905827b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f036132eb576040517fe4a4718200000000000000000000000000000000000000000000000000000000815260048101839052602401610bc1565b7f2845b9458bcc357e1abfe8de7f6832dfe7220596a053496b33d0deb6577d8d2a338686898787876040516133269796959493929190615c7b565b60405180910390a16001600160a01b038416331461349557613349843385612b0b565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b03166001600160a01b031663e985e9c585336040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa1580156133e5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134099190615c60565b613495576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60448201527f6572206f7220617070726f7665640000000000000000000000000000000000006064820152608401610bc1565b61349f8484613d71565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546040517fc2530e390000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063c2530e399061350f903390889087908990889060040161596a565b5f604051808303815f87803b158015613526575f80fd5b505af1158015613538573d5f803e3d5ffd5b5050505061354a868686868686613dbe565b61357360017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b505050505050565b60605f6135888484613ec7565b90508080156135a957505f3d11806135a957505f846001600160a01b03163b115b156135be576135b6613eda565b915050610ab4565b8015613601576040517f9996b3150000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610bc1565b3d156129235761360f613a23565b5092915050565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031633146128a5576040517f8813aac300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be700805442118015906136c257506001600160a01b0383165f908152600182016020526040902054155b80156136e557506001600160a01b0382165f908152600282016020526040902054155b15610cde5780546040517f79d7155100000000000000000000000000000000000000000000000000000000815260048101919091526001600160a01b03808516602483015283166044820152606401610bc1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b03851661379c576040517fe602df050000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6001600160a01b0384166137de576040517f94280d620000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6001600160a01b038086165f908152600183016020908152604080832093881683529290522083905581156128a557836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258560405161385291815260200190565b60405180910390a35050505050565b8181101561291f576040517fa3e322340000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610bc1565b5f610e0f8484670de0b6b3a764000085613ef3565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd01547fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd00906139089084613f35565b6001909101555050505050565b6001600160a01b038216613957576040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b61291f5f8383613c3c565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8216040518060c001604052806139cb3390565b6001600160a01b031681526020018a6001600160a01b031681526020018881526020018b8152602001898152602001878152506040516020016122979190615d20565b5f805f83516020850186885af1949350505050565b6040513d5f823e3d81fd5b5f8060ff19613a5e60017fb750591399365444a618527b69a54ce09476c8bde1ecff60f5aa1fe2b52605ff615a30565b604051602001613a7091815260200190565b60408051808303601f190181529190528051602090910120166002015492915050565b5f600783168103613ad0576040517fbf3cad0b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f613ad961307e565b60028101549091505f03613af1575f19915050610e38565b5f5f198614613b2457816002018681548110613b0f57613b0f615a43565b905f5260205f20906005020160030154613b27565b81545b90506002846002811115613b3d57613b3d615d32565b03613b5f57613b5682613b508484613f44565b87613fbf565b92505050610e38565b6001846002811115613b7357613b73615d32565b03613b8357613b56828287614017565b611ef0828287613fbf565b5f81806020019051810190610ab49190615645565b5f7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115613c01576040517fbf463fe900000000000000000000000000000000000000000000000000000000815260048101849052602401610bc1565b5f613c1e613c18613c12865f614084565b856140de565b5f614140565b50949350505050565b5f610e0f84670de0b6b3a76400008585613ef3565b613c44614181565b613c4d836141e7565b613c56826141e7565b613c618383836142d4565b6001600160a01b038316613c7857610cde81614434565b6001600160a01b038216610cde57610cde81614477565b611aa36144b1565b613c9f6144b1565b61291f82826144ef565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0054600203611aa3576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8060ff19613d3460017fb750591399365444a618527b69a54ce09476c8bde1ecff60f5aa1fe2b52605ff615a30565b604051602001613d4691815260200190565b60408051601f1981840301815291815281516020928301205f96875292909216905290922092915050565b6001600160a01b038216613db3576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b61291f825f83613c3c565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e9828696040518060c001604052808a6001600160a01b031681526020018b6001600160a01b031681526020018881526020018c815260200189815260200187815250604051602001613e649190615d20565b6040516020818303038152906040526040518463ffffffff1660e01b8152600401613e9193929190615943565b5f604051808303815f87803b158015613ea8575f80fd5b505af1158015613eba573d5f803e3d5ffd5b5050505050505050505050565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b5f613f20613f0083614552565b8015613f1b57505f8480613f1657613f16615d5f565b868809115b151590565b613f2b86868661457e565b6126669190615c32565b5f828218828411028218610e38565b5f5b5f198214158015613f88575042836002018381548110613f6857613f68615a43565b5f91825260209091206001600590920201015467ffffffffffffffff1611155b15613fb957826002018281548110613fa257613fa2615a43565b905f5260205f209060050201600301549150613f46565b50919050565b5f5b5f19831461400d575f846002018481548110613fdf57613fdf615a43565b905f5260205f209060050201905082815f0154165f146140025783915050610e38565b600301549250613fc1565b505f199392505050565b5f5b5f19831461400d575f84600201848154811061403757614037615a43565b5f918252602090912060059091020160018101549091504267ffffffffffffffff9091161115614067575061400d565b80548316156140795783915050610e38565b600301549250614019565b5f805f614091858561462e565b91509150806140d6576040517f22c9f7bb0000000000000000000000000000000000000000000000000000000081526004810186905260248101859052604401610bc1565b509392505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d848061412386868686614734565b915091505f6141328383614853565b9a9950505050505050505050565b5f807bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8416601b0b60e085901d6141748282876148b1565b9350935050509250929050565b5f61418a61307e565b60028101549091505f0361419b5750565b5f6141b0826005015460026001176001613a93565b90505f195b5f1982146141d35750806141cc8160036001613a93565b91506141b5565b5f198114610cde5760058301819055505050565b6001600160a01b0381166141f85750565b5f61420161307e565b6001600160a01b0383165f9081526003820160205260408120549192506142278461306b565b90505f8061423583856130df565b9150915083810361424857505050505050565b6001600160a01b0386165f9081526003860160205260409020819055818314614275576142758683614a9c565b6040805185815260208101839052908101849052606081018390526001600160a01b038716907f36a2eb39b73568d38e98721588b15b309c9380e1b1ab575c2c3d71d5148ccb4a9060800160405180910390a261357384848385614aae565b6142de8383613679565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a6040518060800160405280896001600160a01b03168152602001886001600160a01b0316815260200187815260200161438e7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0254421190565b151590526040805182516001600160a01b03908116602080840191909152840151168183015290820151606080830191909152909101511515608082015260a0016040516020818303038152906040526040518463ffffffff1660e01b81526004016143fc93929190615943565b5f604051808303815f87803b158015614413575f80fd5b505af1158015614425573d5f803e3d5ffd5b50505050612bb9848484614b0b565b5f61443d61307e565b60028101549091501561291f5760058101545f9081526004820160205260408120805484929061446e908490615c32565b90915550505050565b5f61448061307e565b60028101549091501561291f5760058101545f9081526004820160205260408120805484929061446e908490615a30565b6144b9614b16565b611aa3576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6144f76144b1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace007f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace036145438482615dd0565b5060048101612bb98382615dd0565b5f600282600381111561456757614567615d32565b6145719190615e8c565b60ff166001149050919050565b5f805f61458b8686614b34565b91509150815f036145af578381816145a5576145a5615d5f565b0492505050610e38565b8184116145c6576145c66003851502601118614b50565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010185841190960395909502919093039390930492909217029150509392505050565b5f601b83900b8314838382614692577d90e40fbeea1d3a4abc8955e946fe31cdcf66f634e100000000000000000086051561467257620186a0860595506005850194505b8586601b0b1461468d57600a86059550846001019450614672565b6146a8565b855f036146a857505f9250600191506131869050565b848560030b14614704575f8512156146c857505f92508291506131869050565b6040517fd556b1110000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610bc1565b50507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841660e084901b1791509250929050565b5f808515841517801561474c575f92505f9150614849565b6147568487615ead565b91505f61476288614b61565b90505f61476e87614b61565b90505f61477b8383614b34565b5090505f6f0785ee10d5da46d900f436a0000000008211156147b0576f0785ee10d5da46d900f436a000000000820491506025015b670de0b6b3a76400008211156147d157670de0b6b3a7640000820491506012015b633b9aca008211156147ea57633b9aca00820491506009015b6127108211156147ff57612710820491506004015b811561481357600a820491506001016147ff565b61481d8187615ead565b955061483f8b8a614839878761483487600a615fac565b614bc2565b89614c9d565b9097509550505050505b5094509492505050565b5f805f614860858561462e565b9150915080158015614870575081155b156140d6576040517f8eba4d070000000000000000000000000000000000000000000000000000000081526004810186905260248101859052604401610bc1565b5f805f8512156148f7576040517f4a7d166b0000000000000000000000000000000000000000000000000000000081526004810186905260248101859052604401610bc1565b845f0361490957505f90506001614a94565b8460ff8416850185811215614954576040517fd556b1110000000000000000000000000000000000000000000000000000000081526004810188905260248101879052604401610bc1565b5f805f8312156149be577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb3831215614995575f809550955050505050614a94565b825f03600a0a91508184816149ac576149ac615d5f565b0495505084029091149150614a949050565b5f831315614a8957604d831315614a14576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff88166044820152606401610bc1565b82600a0a9150815f1981614a2a57614a2a615d5f565b04841115614a77576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff88166044820152606401610bc1565b5091909102925060019150614a949050565b509193506001925050505b935093915050565b5f614aa683613d04565b919091555050565b5f614ab761307e565b905083816004015f8781526020019081526020015f205f828254614adb9190615a30565b90915550505f83815260048201602052604081208054849290614aff908490615c32565b90915550505050505050565b610cde838383614da9565b5f614b1f612c65565b5468010000000000000000900460ff16919050565b5f805f1983850993909202808410938190039390930393915050565b634e487b715f52806020526024601cfd5b5f80821215614bbe577f80000000000000000000000000000000000000000000000000000000000000008203614bb857507f8000000000000000000000000000000000000000000000000000000000000000919050565b505f0390565b5090565b5f805f614bcf8686614b34565b91509150815f03614be9578381816145a5576145a5615d5f565b838210614c33576040517f6c59da12000000000000000000000000000000000000000000000000000000008152600481018790526024810186905260448101859052606401610bc1565b5f84868809600186198101871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103025f82900382900490920185841190960395909502919093039390930492909217029150509392505050565b5f805f8587181215614d67577f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841115614d5457614cfc7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001615c32565b8403614d2c57507f8000000000000000000000000000000000000000000000000000000000000000905081614da0565b614d37600a85615fb7565b614d4090615fca565b614d4b846001615ead565b91509150614da0565b614d5d84615fca565b8391509150614da0565b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841115614d9a57614d40600a85615fb7565b50829050815b94509492505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b038416614df65781816002015f828254614deb9190615c32565b90915550614e7f9050565b6001600160a01b0384165f9081526020829052604090205482811015614e61576040517fe450d38c0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024810182905260448101849052606401610bc1565b6001600160a01b0385165f9081526020839052604090209083900390555b6001600160a01b038316614e9d576002810180548390039055614ebb565b6001600160a01b0383165f9081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051614f0091815260200190565b60405180910390a350505050565b5f60208284031215614f1e575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610e38575f80fd5b6001600160a01b03811681146124b5575f80fd5b5f60208284031215614f71575f80fd5b8135610e3881614f4d565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610e386020830184614f7c565b5f8060408385031215614fcd575f80fd5b8235614fd881614f4d565b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff8111828210171561503657615036614fe6565b60405290565b6040516080810167ffffffffffffffff8111828210171561503657615036614fe6565b604051601f8201601f1916810167ffffffffffffffff8111828210171561508857615088614fe6565b604052919050565b5f67ffffffffffffffff8211156150a9576150a9614fe6565b50601f01601f191660200190565b5f82601f8301126150c6575f80fd5b81356150d96150d482615090565b61505f565b8181528460208386010111156150ed575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f806080858703121561511c575f80fd5b84359350602085013561512e81614f4d565b925060408501359150606085013567ffffffffffffffff811115615150575f80fd5b61515c878288016150b7565b91505092959194509250565b5f8060408385031215615179575f80fd5b50508035926020909101359150565b5f60208284031215615198575f80fd5b5035919050565b5f805f606084860312156151b1575f80fd5b83356151bc81614f4d565b925060208401356151cc81614f4d565b929592945050506040919091013590565b5f602082840312156151ed575f80fd5b813567ffffffffffffffff811115615203575f80fd5b610e0f848285016150b7565b5f805f8060808587031215615222575f80fd5b843561522d81614f4d565b93506020850135925060408501359150606085013567ffffffffffffffff811115615150575f80fd5b5f805f60608486031215615268575f80fd5b833561527381614f4d565b925060208401359150604084013567ffffffffffffffff811115615295575f80fd5b6152a1868287016150b7565b9150509250925092565b5f805f805f60a086880312156152bf575f80fd5b8535945060208601356152d181614f4d565b935060408601356152e181614f4d565b925060608601359150608086013567ffffffffffffffff811115615303575f80fd5b61530f888289016150b7565b9150509295509295909350565b5f806020838503121561532d575f80fd5b823567ffffffffffffffff80821115615344575f80fd5b818501915085601f830112615357575f80fd5b813581811115615365575f80fd5b8660208260051b8501011115615379575f80fd5b60209290920196919550909350505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b828110156153fe577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08886030184526153ec858351614f7c565b945092850192908501906001016153b2565b5092979650505050505050565b5f8083601f84011261541b575f80fd5b50813567ffffffffffffffff811115615432575f80fd5b602083019150836020828501011115613186575f80fd5b5f805f805f6080868803121561545d575f80fd5b85359450602086013561546f81614f4d565b935060408601359250606086013567ffffffffffffffff811115615491575f80fd5b61549d8882890161540b565b969995985093965092949392505050565b5f80604083850312156154bf575f80fd5b82356154ca81614f4d565b915060208301356154da81614f4d565b809150509250929050565b5f82601f8301126154f4575f80fd5b8135602067ffffffffffffffff82111561551057615510614fe6565b8160051b61551f82820161505f565b9283528481018201928281019087851115615538575f80fd5b83870192505b8483101561214c5782358252918301919083019061553e565b5f805f805f60a0868803121561556b575f80fd5b853561557681614f4d565b9450602086013561558681614f4d565b9350604086013561559681614f4d565b9250606086013567ffffffffffffffff808211156155b2575f80fd5b6155be89838a016154e5565b935060808801359150808211156155d3575f80fd5b5061530f888289016154e5565b80151581146124b5575f80fd5b5f805f8060608587031215615600575f80fd5b843593506020850135615612816155e0565b9250604085013567ffffffffffffffff81111561562d575f80fd5b6156398782880161540b565b95989497509550505050565b5f60208284031215615655575f80fd5b5051919050565b600181811c9082168061567057607f821691505b602082108103613fb9577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f602082840312156156b7575f80fd5b815160ff81168114610e38575f80fd5b5f82601f8301126156d6575f80fd5b81516156e46150d482615090565b8181528460208386010111156156f8575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f60208284031215615724575f80fd5b815167ffffffffffffffff8082111561573b575f80fd5b908301906040828603121561574e575f80fd5b615756615013565b825161576181614f4d565b8152602083015182811115615774575f80fd5b929092019160808387031215615788575f80fd5b61579061503c565b835161579b81614f4d565b81526020840151838111156157ae575f80fd5b6157ba888287016156c7565b6020830152506040840151838111156157d1575f80fd5b6157dd888287016156c7565b604083015250606084015193506157f384614f4d565b60608101939093526020810192909252509392505050565b5f6001600160a01b038085168352604060208401528084511660408401526020840151604060608501528181511660808501526020810151608060a0860152615858610100860182614f7c565b905060408201517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808683030160c08701526158938282614f7c565b9150508260608301511660e08601528093505050509392505050565b5f6001600160a01b03808916835280881660208401525085604083015284606083015283608083015260c060a08301526158ec60c0830184614f7c565b98975050505050505050565b602081526001600160a01b0382511660208201526020820151604082015260408201516060820152606082015160808201525f608083015160a080840152610e0f60c0840182614f7c565b6001600160a01b0384168152826020820152606060408201525f6126666060830184614f7c565b5f6001600160a01b03808816835280871660208401525084604083015283606083015260a0608083015261214c60a0830184614f7c565b602081526001600160a01b03825116602082015260208201516040820152604082015160608201525f6060830151608080840152610e0f60a0840182614f7c565b6001600160a01b0383168152604060208201525f610e0f6040830184614f7c565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b81810381811115610ab457610ab4615a03565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112615aa3575f80fd5b83018035915067ffffffffffffffff821115615abd575f80fd5b602001915036819003821315613186575f80fd5b828482375f8382015f815283518060208601835e5f910190815295945050505050565b5f815180845260208085019450602084015f5b83811015615b2357815187529582019590820190600101615b07565b509495945050505050565b602081525f6001600160a01b0380845116602084015280602085015116604084015250604083015160a06060840152615b6a60c0840182615af4565b90506060840151601f19848303016080850152615b878282615af4565b9150506080840151151560a08401528091505092915050565b6001600160a01b0386168152846020820152831515604082015260806060820152816080820152818360a08301375f81830160a090810191909152601f909201601f19160101949350505050565b602081528151602082015260208201516040820152604082015160608201526060820151151560808201525f608083015160a080840152610e0f60c0840182614f7c565b80820180821115610ab457610ab4615a03565b5f60208284031215615c55575f80fd5b8151610e3881614f4d565b5f60208284031215615c70575f80fd5b8151610e38816155e0565b5f6001600160a01b03808a16835280891660208401528088166040840152508560608301528460808301528360a083015260e060c0830152615cc060e0830184614f7c565b9998505050505050505050565b5f6001600160a01b038083511684528060208401511660208501525060408201516040840152606082015160608401526080820151608084015260a082015160c060a0850152610e0f60c0850182614f7c565b602081525f610e386020830184615ccd565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b601f821115610cde57805f5260205f20601f840160051c81016020851015615db15750805b601f840160051c820191505b818110156128a5575f8155600101615dbd565b815167ffffffffffffffff811115615dea57615dea614fe6565b615dfe81615df8845461565c565b84615d8c565b602080601f831160018114615e31575f8415615e1a5750858301515b5f19600386901b1c1916600185901b178555613573565b5f85815260208120601f198616915b82811015615e5f57888601518255948401946001909101908401615e40565b5085821015615e7c57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f60ff831680615e9e57615e9e615d5f565b8060ff84160691505092915050565b8082018281125f83128015821682158216171561203657612036615a03565b600181815b80851115615f0657815f1904821115615eec57615eec615a03565b80851615615ef957918102915b93841c9390800290615ed1565b509250929050565b5f82615f1c57506001610ab4565b81615f2857505f610ab4565b8160018114615f3e5760028114615f4857615f64565b6001915050610ab4565b60ff841115615f5957615f59615a03565b50506001821b610ab4565b5060208310610133831016604e8410600b8410161715615f87575081810a610ab4565b615f918383615ecc565b805f1904821115615fa457615fa4615a03565b029392505050565b5f610e388383615f0e565b5f82615fc557615fc5615d5f565b500490565b5f7f80000000000000000000000000000000000000000000000000000000000000008203614bb857614bb8615a0356"; diff --git a/src/generated/0_1_6/StoxUnifiedDeployer.pointers.sol b/src/generated/0_1_6/StoxUnifiedDeployer.pointers.sol deleted file mode 100644 index 3819204f..00000000 --- a/src/generated/0_1_6/StoxUnifiedDeployer.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x76b90443c401cb2071b31fbf0596f931e01315c358b9db4e4db998107dc2e62c); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x48E1A9091E89f5500AfC9d42FBB85bE8b4f70203); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"6080604052348015600e575f80fd5b506106308061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c806301ffc9a714610038578063733e1f8d1461005f575b5f80fd5b61004b6100463660046102a3565b610074565b604051901515815260200160405180910390f35b61007261006d36600461042d565b61010c565b005b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f733e1f8d00000000000000000000000000000000000000000000000000000000148061010657507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6040517f4904fab30000000000000000000000000000000000000000000000000000000081525f9073679ab223dab158ea93e1a4f49104de436c58eab890634904fab39061015e908590600401610570565b6020604051808303815f875af115801561017a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061019e9190610615565b6040517fd786858b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201529091505f90736b4232f1046f1f1bb99a1184d886bbaf3cd7e15a9063d786858b906024016020604051808303815f875af1158015610220573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102449190610615565b6040805133815273ffffffffffffffffffffffffffffffffffffffff858116602083015283168183015290519192507fa0d99d93cf7a5f89661fa0829369a7e4896e755871efe65440bab2429387d55b919081900360600190a1505050565b5f602082840312156102b3575f80fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146102e2575f80fd5b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff81118282101715610339576103396102e9565b60405290565b6040516080810167ffffffffffffffff81118282101715610339576103396102e9565b73ffffffffffffffffffffffffffffffffffffffff81168114610383575f80fd5b50565b5f82601f830112610395575f80fd5b813567ffffffffffffffff808211156103b0576103b06102e9565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156103f6576103f66102e9565b8160405283815286602085880101111561040e575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f6020828403121561043d575f80fd5b813567ffffffffffffffff80821115610454575f80fd5b9083019060408286031215610467575f80fd5b61046f610316565b823561047a81610362565b815260208301358281111561048d575f80fd5b9290920191608083870312156104a1575f80fd5b6104a961033f565b83356104b481610362565b81526020840135838111156104c7575f80fd5b6104d388828701610386565b6020830152506040840135838111156104ea575f80fd5b6104f688828701610386565b6040830152506060840135935061050c84610362565b60608101939093526020810192909252509392505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f73ffffffffffffffffffffffffffffffffffffffff808451166020840152602084015160408085015281815116606085015260208101516080808601526105bf60e0860182610524565b905060408201517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08683030160a08701526105fa8282610524565b9150508260608301511660c086015280935050505092915050565b5f60208284031215610625575f80fd5b81516102e28161036256"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b5060043610610034575f3560e01c806301ffc9a714610038578063733e1f8d1461005f575b5f80fd5b61004b6100463660046102a3565b610074565b604051901515815260200160405180910390f35b61007261006d36600461042d565b61010c565b005b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f733e1f8d00000000000000000000000000000000000000000000000000000000148061010657507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6040517f4904fab30000000000000000000000000000000000000000000000000000000081525f9073679ab223dab158ea93e1a4f49104de436c58eab890634904fab39061015e908590600401610570565b6020604051808303815f875af115801561017a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061019e9190610615565b6040517fd786858b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201529091505f90736b4232f1046f1f1bb99a1184d886bbaf3cd7e15a9063d786858b906024016020604051808303815f875af1158015610220573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102449190610615565b6040805133815273ffffffffffffffffffffffffffffffffffffffff858116602083015283168183015290519192507fa0d99d93cf7a5f89661fa0829369a7e4896e755871efe65440bab2429387d55b919081900360600190a1505050565b5f602082840312156102b3575f80fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146102e2575f80fd5b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff81118282101715610339576103396102e9565b60405290565b6040516080810167ffffffffffffffff81118282101715610339576103396102e9565b73ffffffffffffffffffffffffffffffffffffffff81168114610383575f80fd5b50565b5f82601f830112610395575f80fd5b813567ffffffffffffffff808211156103b0576103b06102e9565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156103f6576103f66102e9565b8160405283815286602085880101111561040e575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f6020828403121561043d575f80fd5b813567ffffffffffffffff80821115610454575f80fd5b9083019060408286031215610467575f80fd5b61046f610316565b823561047a81610362565b815260208301358281111561048d575f80fd5b9290920191608083870312156104a1575f80fd5b6104a961033f565b83356104b481610362565b81526020840135838111156104c7575f80fd5b6104d388828701610386565b6020830152506040840135838111156104ea575f80fd5b6104f688828701610386565b6040830152506060840135935061050c84610362565b60608101939093526020810192909252509392505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f73ffffffffffffffffffffffffffffffffffffffff808451166020840152602084015160408085015281815116606085015260208101516080808601526105bf60e0860182610524565b905060408201517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08683030160a08701526105fa8282610524565b9150508260608301511660c086015280935050505092915050565b5f60208284031215610625575f80fd5b81516102e28161036256"; diff --git a/src/generated/0_1_6/StoxWrappedTokenVault.pointers.sol b/src/generated/0_1_6/StoxWrappedTokenVault.pointers.sol deleted file mode 100644 index 18c6e307..00000000 --- a/src/generated/0_1_6/StoxWrappedTokenVault.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x6de4c556c1811293da4ad2e509ee476f3eb635f019845087e1d2777a1b272034); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x0D99e0174DbF885ceD6AE8dEb939b0F890450099); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"6080604052348015600e575f80fd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b611de4806100d65f395ff3fe608060405234801561000f575f80fd5b50600436106101b0575f3560e01c806370a08231116100f3578063c4d66de811610093578063ce96cb771161006e578063ce96cb77146103c9578063d905777e146103dc578063dd62ed3e146103ef578063ef8b30f7146103b6575f80fd5b8063c4d66de8146103a3578063c63d75b6146102bb578063c6e6f592146103b6575f80fd5b8063a9059cbb116100ce578063a9059cbb14610357578063b3d7f6b91461036a578063b460af941461037d578063ba08765214610390575f80fd5b806370a08231146102f557806394bf804d1461033c57806395d89b411461034f575f80fd5b806323b872dd1161015e578063402d267d11610139578063402d267d146102bb578063439fab91146102cf5780634cdad506146101e45780636e553f65146102e2575f80fd5b806323b872dd14610254578063313ce5671461026757806338d52e0f14610281575f80fd5b8063095ea7b31161018e578063095ea7b3146101f75780630a28a4771461021a57806318160ddd1461022d575f80fd5b806301e1d114146101b457806306fdde03146101cf57806307a2d13a146101e4575b5f80fd5b6101bc610446565b6040519081526020015b60405180910390f35b6101d76104fe565b6040516101c69190611758565b6101bc6101f236600461178d565b6105b6565b61020a6102053660046117b8565b6105c7565b60405190151581526020016101c6565b6101bc61022836600461178d565b6105de565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02546101bc565b61020a6102623660046117e2565b6105ea565b61026f61060f565b60405160ff90911681526020016101c6565b7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546040516001600160a01b0390911681526020016101c6565b6101bc6102c9366004611820565b505f1990565b6101bc6102dd36600461183b565b610662565b6101bc6102f03660046118a7565b61089d565b6101bc610303366004611820565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00602052604090205490565b6101bc61034a3660046118a7565b6108ce565b6101d76108e9565b61020a6103653660046117b8565b61098d565b6101bc61037836600461178d565b61099a565b6101bc61038b3660046118d5565b6109a6565b6101bc61039e3660046118d5565b610a28565b6101bc6103b1366004611820565b610aa1565b6101bc6103c436600461178d565b610ad4565b6101bc6103d7366004611820565b610adf565b6101bc6103ea366004611820565b610ae8565b6101bc6103fd366004611914565b6001600160a01b039182165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b5f6104787f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa1580156104d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104f99190611940565b905090565b60606105317f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b6001600160a01b03166306fdde036040518163ffffffff1660e01b81526004015f60405180830381865afa15801561056b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526105929190810190611984565b6040516020016105a29190611a46565b604051602081830303815290604052905090565b5f6105c1825f610b24565b92915050565b5f336105d4818585610b7b565b5060019392505050565b5f6105c1826001610b8d565b5f336105f7858285610bdb565b610602858585610c8f565b60019150505b9392505050565b5f807f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e0090505f815461065c919074010000000000000000000000000000000000000000900460ff16611aa4565b91505090565b5f8061066c610d1e565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156106985750825b90505f8267ffffffffffffffff1660011480156106b45750303b155b9050811580156106c2575080155b156106f9576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166001178555831561075a5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b5f610767888a018a611820565b90506001600160a01b0381166107a9576040517f7cde9b7200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107b281610d46565b6107d860405180602001604052805f81525060405180602001604052805f815250610d5a565b6040516001600160a01b0382169033907fdf5fabff9e49f8c35d69a1f2d0c5e80c933c31cf836cf70de57e3a6e7dc86ebb905f90a37fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc396505083156108925784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505092915050565b5f5f196108ae565b60405180910390fd5b5f6108b885610ad4565b90506108c633858784610d70565b949350505050565b5f5f195f6108db8561099a565b90506108c633858388610d70565b606061091c7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b6001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015610956573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261097d9190810190611984565b6040516020016105a29190611abd565b5f336105d4818585610c8f565b5f6105c1826001610b24565b5f806109b183610adf565b905080851115610a06576040517ffe9cceec0000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101869052604481018290526064016108a5565b5f610a10866105de565b9050610a1f3386868985610de0565b95945050505050565b5f80610a3383610ae8565b905080851115610a88576040517fb94abeec0000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101869052604481018290526064016108a5565b5f610a92866105b6565b9050610a1f338686848a610de0565b5f6040517faf1fbb2100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6105c1825f610b8d565b5f6105c16101f2835b6001600160a01b0381165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0060205260408120546105c1565b5f610608610b30610446565b610b3b906001611aee565b610b465f600a611be1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254610b729190611aee565b85919085610e7f565b610b888383836001610ec1565b505050565b5f610608610b9c82600a611be1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254610bc89190611aee565b610bd0610446565b610b72906001611aee565b6001600160a01b038381165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160209081526040808320938616835292905220545f19811015610c895781811015610c7b576040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101829052604481018390526064016108a5565b610c8984848484035f610ec1565b50505050565b6001600160a01b038316610cd1576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b6001600160a01b038216610d13576040517fec442f050000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b610b88838383610fea565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006105c1565b610d4e611141565b610d5781611181565b50565b610d62611141565b610d6c8282611245565b5050565b610d7a84836112a8565b610d8483826112e4565b826001600160a01b0316846001600160a01b03167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d78484604051610dd2929190918252602082015260400190565b60405180910390a350505050565b826001600160a01b0316856001600160a01b031614610e0457610e04838683610bdb565b610e0e8382611331565b610e18848361137e565b826001600160a01b0316846001600160a01b0316866001600160a01b03167ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db8585604051610e70929190918252602082015260400190565b60405180910390a45050505050565b5f610eac610e8c836113b9565b8015610ea757505f8480610ea257610ea2611bef565b868809115b151590565b610eb78686866113e5565b610a1f9190611aee565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b038516610f24576040517fe602df050000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b6001600160a01b038416610f66576040517f94280d620000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b6001600160a01b038086165f90815260018301602090815260408083209388168352929052208390558115610fe357836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92585604051610fda91815260200190565b60405180910390a35b5050505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b0384166110375781816002015f82825461102c9190611aee565b909155506110c09050565b6001600160a01b0384165f90815260208290526040902054828110156110a2576040517fe450d38c0000000000000000000000000000000000000000000000000000000081526001600160a01b038616600482015260248101829052604481018490526064016108a5565b6001600160a01b0385165f9081526020839052604090209083900390555b6001600160a01b0383166110de5760028101805483900390556110fc565b6001600160a01b0383165f9081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610dd291815260200190565b611149611495565b61117f576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b611189611141565b7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e005f806111b5846114b3565b91509150816111c55760126111c7565b805b83547fffffffffffffffffffffff000000000000000000000000000000000000000000167401000000000000000000000000000000000000000060ff92909216919091027fffffffffffffffffffffffff000000000000000000000000000000000000000016176001600160a01b0394909416939093179091555050565b61124d611141565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace007f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace036112998482611cb1565b5060048101610c898382611cb1565b610d6c6112dc7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b83308461156c565b6001600160a01b038216611326576040517fec442f050000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b610d6c5f8383610fea565b6001600160a01b038216611373576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b610d6c825f83610fea565b610d6c6113b27f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b83836115bb565b5f60028260038111156113ce576113ce611d71565b6113d89190611d9e565b60ff166001149050919050565b5f805f6113f28686611609565b91509150815f036114165783818161140c5761140c611bef565b0492505050610608565b81841161142d5761142d6003851502601118611625565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010185841190960395909502919093039390930492909217029150509392505050565b5f61149e610d1e565b5468010000000000000000900460ff16919050565b5f805f6114bf60405190565b6040805160048152602481019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f313ce567000000000000000000000000000000000000000000000000000000001790529091505f908190611528908790611636565b509150915061153683604052565b818015611544575060203d10155b8015611551575060ff8111155b61155c575f80611560565b6001815b94509450505050915091565b61157a848484846001611657565b610c89576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b03851660048201526024016108a5565b6115c883838360016116dd565b610b88576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201526024016108a5565b5f805f1983850993909202808410938190039390930393915050565b634e487b715f52806020526024601cfd5b5f805f60405f855160208701885afa92505f51915060205190509250925092565b6040517f23b872dd000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038781166004528616602452604485905291602083606481808c5af1925060015f511483166116cc5783831516156116c0573d5f823e3d81fd5b5f883b113d1516831692505b604052505f60605295945050505050565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f5114831661174c578383151615611740573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f6020828403121561179d575f80fd5b5035919050565b6001600160a01b0381168114610d57575f80fd5b5f80604083850312156117c9575f80fd5b82356117d4816117a4565b946020939093013593505050565b5f805f606084860312156117f4575f80fd5b83356117ff816117a4565b9250602084013561180f816117a4565b929592945050506040919091013590565b5f60208284031215611830575f80fd5b8135610608816117a4565b5f806020838503121561184c575f80fd5b823567ffffffffffffffff80821115611863575f80fd5b818501915085601f830112611876575f80fd5b813581811115611884575f80fd5b866020828501011115611895575f80fd5b60209290920196919550909350505050565b5f80604083850312156118b8575f80fd5b8235915060208301356118ca816117a4565b809150509250929050565b5f805f606084860312156118e7575f80fd5b8335925060208401356118f9816117a4565b91506040840135611909816117a4565b809150509250925092565b5f8060408385031215611925575f80fd5b8235611930816117a4565b915060208301356118ca816117a4565b5f60208284031215611950575f80fd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f60208284031215611994575f80fd5b815167ffffffffffffffff808211156119ab575f80fd5b818401915084601f8301126119be575f80fd5b8151818111156119d0576119d0611957565b604051601f8201601f19908116603f011681019083821181831017156119f8576119f8611957565b81604052828152876020848701011115611a10575f80fd5b8260208601602083015e5f928101602001929092525095945050505050565b5f81518060208401855e5f93019283525090919050565b7f577261707065642000000000000000000000000000000000000000000000000081525f6106086008830184611a2f565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60ff81811683821601908111156105c1576105c1611a77565b7f770000000000000000000000000000000000000000000000000000000000000081525f6106086001830184611a2f565b808201808211156105c1576105c1611a77565b600181815b80851115611b3b57815f1904821115611b2157611b21611a77565b80851615611b2e57918102915b93841c9390800290611b06565b509250929050565b5f82611b51575060016105c1565b81611b5d57505f6105c1565b8160018114611b735760028114611b7d57611b99565b60019150506105c1565b60ff841115611b8e57611b8e611a77565b50506001821b6105c1565b5060208310610133831016604e8410600b8410161715611bbc575081810a6105c1565b611bc68383611b01565b805f1904821115611bd957611bd9611a77565b029392505050565b5f61060860ff841683611b43565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b600181811c90821680611c3057607f821691505b602082108103611c67577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b601f821115610b8857805f5260205f20601f840160051c81016020851015611c925750805b601f840160051c820191505b81811015610fe3575f8155600101611c9e565b815167ffffffffffffffff811115611ccb57611ccb611957565b611cdf81611cd98454611c1c565b84611c6d565b602080601f831160018114611d12575f8415611cfb5750858301515b5f19600386901b1c1916600185901b178555611d69565b5f85815260208120601f198616915b82811015611d4057888601518255948401946001909101908401611d21565b5085821015611d5d57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f60ff831680611dd5577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b8060ff8416069150509291505056"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b50600436106101b0575f3560e01c806370a08231116100f3578063c4d66de811610093578063ce96cb771161006e578063ce96cb77146103c9578063d905777e146103dc578063dd62ed3e146103ef578063ef8b30f7146103b6575f80fd5b8063c4d66de8146103a3578063c63d75b6146102bb578063c6e6f592146103b6575f80fd5b8063a9059cbb116100ce578063a9059cbb14610357578063b3d7f6b91461036a578063b460af941461037d578063ba08765214610390575f80fd5b806370a08231146102f557806394bf804d1461033c57806395d89b411461034f575f80fd5b806323b872dd1161015e578063402d267d11610139578063402d267d146102bb578063439fab91146102cf5780634cdad506146101e45780636e553f65146102e2575f80fd5b806323b872dd14610254578063313ce5671461026757806338d52e0f14610281575f80fd5b8063095ea7b31161018e578063095ea7b3146101f75780630a28a4771461021a57806318160ddd1461022d575f80fd5b806301e1d114146101b457806306fdde03146101cf57806307a2d13a146101e4575b5f80fd5b6101bc610446565b6040519081526020015b60405180910390f35b6101d76104fe565b6040516101c69190611758565b6101bc6101f236600461178d565b6105b6565b61020a6102053660046117b8565b6105c7565b60405190151581526020016101c6565b6101bc61022836600461178d565b6105de565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02546101bc565b61020a6102623660046117e2565b6105ea565b61026f61060f565b60405160ff90911681526020016101c6565b7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546040516001600160a01b0390911681526020016101c6565b6101bc6102c9366004611820565b505f1990565b6101bc6102dd36600461183b565b610662565b6101bc6102f03660046118a7565b61089d565b6101bc610303366004611820565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00602052604090205490565b6101bc61034a3660046118a7565b6108ce565b6101d76108e9565b61020a6103653660046117b8565b61098d565b6101bc61037836600461178d565b61099a565b6101bc61038b3660046118d5565b6109a6565b6101bc61039e3660046118d5565b610a28565b6101bc6103b1366004611820565b610aa1565b6101bc6103c436600461178d565b610ad4565b6101bc6103d7366004611820565b610adf565b6101bc6103ea366004611820565b610ae8565b6101bc6103fd366004611914565b6001600160a01b039182165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b5f6104787f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa1580156104d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104f99190611940565b905090565b60606105317f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b6001600160a01b03166306fdde036040518163ffffffff1660e01b81526004015f60405180830381865afa15801561056b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526105929190810190611984565b6040516020016105a29190611a46565b604051602081830303815290604052905090565b5f6105c1825f610b24565b92915050565b5f336105d4818585610b7b565b5060019392505050565b5f6105c1826001610b8d565b5f336105f7858285610bdb565b610602858585610c8f565b60019150505b9392505050565b5f807f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e0090505f815461065c919074010000000000000000000000000000000000000000900460ff16611aa4565b91505090565b5f8061066c610d1e565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156106985750825b90505f8267ffffffffffffffff1660011480156106b45750303b155b9050811580156106c2575080155b156106f9576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166001178555831561075a5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b5f610767888a018a611820565b90506001600160a01b0381166107a9576040517f7cde9b7200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107b281610d46565b6107d860405180602001604052805f81525060405180602001604052805f815250610d5a565b6040516001600160a01b0382169033907fdf5fabff9e49f8c35d69a1f2d0c5e80c933c31cf836cf70de57e3a6e7dc86ebb905f90a37fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc396505083156108925784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505092915050565b5f5f196108ae565b60405180910390fd5b5f6108b885610ad4565b90506108c633858784610d70565b949350505050565b5f5f195f6108db8561099a565b90506108c633858388610d70565b606061091c7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b6001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015610956573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261097d9190810190611984565b6040516020016105a29190611abd565b5f336105d4818585610c8f565b5f6105c1826001610b24565b5f806109b183610adf565b905080851115610a06576040517ffe9cceec0000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101869052604481018290526064016108a5565b5f610a10866105de565b9050610a1f3386868985610de0565b95945050505050565b5f80610a3383610ae8565b905080851115610a88576040517fb94abeec0000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101869052604481018290526064016108a5565b5f610a92866105b6565b9050610a1f338686848a610de0565b5f6040517faf1fbb2100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6105c1825f610b8d565b5f6105c16101f2835b6001600160a01b0381165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0060205260408120546105c1565b5f610608610b30610446565b610b3b906001611aee565b610b465f600a611be1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254610b729190611aee565b85919085610e7f565b610b888383836001610ec1565b505050565b5f610608610b9c82600a611be1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254610bc89190611aee565b610bd0610446565b610b72906001611aee565b6001600160a01b038381165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160209081526040808320938616835292905220545f19811015610c895781811015610c7b576040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101829052604481018390526064016108a5565b610c8984848484035f610ec1565b50505050565b6001600160a01b038316610cd1576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b6001600160a01b038216610d13576040517fec442f050000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b610b88838383610fea565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006105c1565b610d4e611141565b610d5781611181565b50565b610d62611141565b610d6c8282611245565b5050565b610d7a84836112a8565b610d8483826112e4565b826001600160a01b0316846001600160a01b03167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d78484604051610dd2929190918252602082015260400190565b60405180910390a350505050565b826001600160a01b0316856001600160a01b031614610e0457610e04838683610bdb565b610e0e8382611331565b610e18848361137e565b826001600160a01b0316846001600160a01b0316866001600160a01b03167ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db8585604051610e70929190918252602082015260400190565b60405180910390a45050505050565b5f610eac610e8c836113b9565b8015610ea757505f8480610ea257610ea2611bef565b868809115b151590565b610eb78686866113e5565b610a1f9190611aee565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b038516610f24576040517fe602df050000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b6001600160a01b038416610f66576040517f94280d620000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b6001600160a01b038086165f90815260018301602090815260408083209388168352929052208390558115610fe357836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92585604051610fda91815260200190565b60405180910390a35b5050505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b0384166110375781816002015f82825461102c9190611aee565b909155506110c09050565b6001600160a01b0384165f90815260208290526040902054828110156110a2576040517fe450d38c0000000000000000000000000000000000000000000000000000000081526001600160a01b038616600482015260248101829052604481018490526064016108a5565b6001600160a01b0385165f9081526020839052604090209083900390555b6001600160a01b0383166110de5760028101805483900390556110fc565b6001600160a01b0383165f9081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610dd291815260200190565b611149611495565b61117f576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b611189611141565b7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e005f806111b5846114b3565b91509150816111c55760126111c7565b805b83547fffffffffffffffffffffff000000000000000000000000000000000000000000167401000000000000000000000000000000000000000060ff92909216919091027fffffffffffffffffffffffff000000000000000000000000000000000000000016176001600160a01b0394909416939093179091555050565b61124d611141565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace007f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace036112998482611cb1565b5060048101610c898382611cb1565b610d6c6112dc7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b83308461156c565b6001600160a01b038216611326576040517fec442f050000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b610d6c5f8383610fea565b6001600160a01b038216611373576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b610d6c825f83610fea565b610d6c6113b27f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b83836115bb565b5f60028260038111156113ce576113ce611d71565b6113d89190611d9e565b60ff166001149050919050565b5f805f6113f28686611609565b91509150815f036114165783818161140c5761140c611bef565b0492505050610608565b81841161142d5761142d6003851502601118611625565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010185841190960395909502919093039390930492909217029150509392505050565b5f61149e610d1e565b5468010000000000000000900460ff16919050565b5f805f6114bf60405190565b6040805160048152602481019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f313ce567000000000000000000000000000000000000000000000000000000001790529091505f908190611528908790611636565b509150915061153683604052565b818015611544575060203d10155b8015611551575060ff8111155b61155c575f80611560565b6001815b94509450505050915091565b61157a848484846001611657565b610c89576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b03851660048201526024016108a5565b6115c883838360016116dd565b610b88576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201526024016108a5565b5f805f1983850993909202808410938190039390930393915050565b634e487b715f52806020526024601cfd5b5f805f60405f855160208701885afa92505f51915060205190509250925092565b6040517f23b872dd000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038781166004528616602452604485905291602083606481808c5af1925060015f511483166116cc5783831516156116c0573d5f823e3d81fd5b5f883b113d1516831692505b604052505f60605295945050505050565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f5114831661174c578383151615611740573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f6020828403121561179d575f80fd5b5035919050565b6001600160a01b0381168114610d57575f80fd5b5f80604083850312156117c9575f80fd5b82356117d4816117a4565b946020939093013593505050565b5f805f606084860312156117f4575f80fd5b83356117ff816117a4565b9250602084013561180f816117a4565b929592945050506040919091013590565b5f60208284031215611830575f80fd5b8135610608816117a4565b5f806020838503121561184c575f80fd5b823567ffffffffffffffff80821115611863575f80fd5b818501915085601f830112611876575f80fd5b813581811115611884575f80fd5b866020828501011115611895575f80fd5b60209290920196919550909350505050565b5f80604083850312156118b8575f80fd5b8235915060208301356118ca816117a4565b809150509250929050565b5f805f606084860312156118e7575f80fd5b8335925060208401356118f9816117a4565b91506040840135611909816117a4565b809150509250925092565b5f8060408385031215611925575f80fd5b8235611930816117a4565b915060208301356118ca816117a4565b5f60208284031215611950575f80fd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f60208284031215611994575f80fd5b815167ffffffffffffffff808211156119ab575f80fd5b818401915084601f8301126119be575f80fd5b8151818111156119d0576119d0611957565b604051601f8201601f19908116603f011681019083821181831017156119f8576119f8611957565b81604052828152876020848701011115611a10575f80fd5b8260208601602083015e5f928101602001929092525095945050505050565b5f81518060208401855e5f93019283525090919050565b7f577261707065642000000000000000000000000000000000000000000000000081525f6106086008830184611a2f565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60ff81811683821601908111156105c1576105c1611a77565b7f770000000000000000000000000000000000000000000000000000000000000081525f6106086001830184611a2f565b808201808211156105c1576105c1611a77565b600181815b80851115611b3b57815f1904821115611b2157611b21611a77565b80851615611b2e57918102915b93841c9390800290611b06565b509250929050565b5f82611b51575060016105c1565b81611b5d57505f6105c1565b8160018114611b735760028114611b7d57611b99565b60019150506105c1565b60ff841115611b8e57611b8e611a77565b50506001821b6105c1565b5060208310610133831016604e8410600b8410161715611bbc575081810a6105c1565b611bc68383611b01565b805f1904821115611bd957611bd9611a77565b029392505050565b5f61060860ff841683611b43565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b600181811c90821680611c3057607f821691505b602082108103611c67577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b601f821115610b8857805f5260205f20601f840160051c81016020851015611c925750805b601f840160051c820191505b81811015610fe3575f8155600101611c9e565b815167ffffffffffffffff811115611ccb57611ccb611957565b611cdf81611cd98454611c1c565b84611c6d565b602080601f831160018114611d12575f8415611cfb5750858301515b5f19600386901b1c1916600185901b178555611d69565b5f85815260208120601f198616915b82811015611d4057888601518255948401946001909101908401611d21565b5085821015611d5d57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f60ff831680611dd5577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b8060ff8416069150509291505056"; diff --git a/src/generated/0_1_6/StoxWrappedTokenVaultBeacon.pointers.sol b/src/generated/0_1_6/StoxWrappedTokenVaultBeacon.pointers.sol deleted file mode 100644 index 438a674d..00000000 --- a/src/generated/0_1_6/StoxWrappedTokenVaultBeacon.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x8e95867e52db417944afd90f3b6c3c980962831e8a944e7f6958ba8f8cc10630); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x9FD790f65CA3aF2772358c653F097f0a4c7EE7d2); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"608060405234801561000f575f80fd5b50730d99e0174dbf885ced6ae8deb939b0f890450099738e4bdeec7ceb9570d440676345da1dce10329f5b80610049565b60405180910390fd5b61005281610063565b5061005c826100b2565b5050610130565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b806001600160a01b03163b5f036100e75760405163211eb15960e21b81526001600160a01b0382166004820152602401610040565b600180546001600160a01b0319166001600160a01b0383169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b61035a8061013d5f395ff3fe608060405234801561000f575f80fd5b5060043610610064575f3560e01c8063715018a61161004d578063715018a6146100c05780638da5cb5b146100c8578063f2fde38b146100e5575f80fd5b80633659cfe6146100685780635c60da1b1461007d575b5f80fd5b61007b610076366004610320565b6100f8565b005b60015473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61007b61010c565b5f5473ffffffffffffffffffffffffffffffffffffffff16610097565b61007b6100f3366004610320565b61011f565b610100610184565b610109816101d6565b50565b610114610184565b61011d5f6102ac565b565b610127610184565b73ffffffffffffffffffffffffffffffffffffffff811661017b576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f60048201526024015b60405180910390fd5b610109816102ac565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461011d576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610172565b8073ffffffffffffffffffffffffffffffffffffffff163b5f0361023e576040517f847ac56400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602401610172565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f60208284031215610330575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610353575f80fd5b939250505056"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b5060043610610064575f3560e01c8063715018a61161004d578063715018a6146100c05780638da5cb5b146100c8578063f2fde38b146100e5575f80fd5b80633659cfe6146100685780635c60da1b1461007d575b5f80fd5b61007b610076366004610320565b6100f8565b005b60015473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61007b61010c565b5f5473ffffffffffffffffffffffffffffffffffffffff16610097565b61007b6100f3366004610320565b61011f565b610100610184565b610109816101d6565b50565b610114610184565b61011d5f6102ac565b565b610127610184565b73ffffffffffffffffffffffffffffffffffffffff811661017b576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f60048201526024015b60405180910390fd5b610109816102ac565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461011d576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610172565b8073ffffffffffffffffffffffffffffffffffffffff163b5f0361023e576040517f847ac56400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602401610172565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f60208284031215610330575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610353575f80fd5b939250505056"; diff --git a/src/generated/0_1_6/StoxWrappedTokenVaultBeaconSetDeployer.pointers.sol b/src/generated/0_1_6/StoxWrappedTokenVaultBeaconSetDeployer.pointers.sol deleted file mode 100644 index 231752f1..00000000 --- a/src/generated/0_1_6/StoxWrappedTokenVaultBeaconSetDeployer.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x940e3ab4278cf7ae44026596f4f32dc5c7f3facd99ef8070c63b5cfefd49a47c); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x6B4232f1046F1f1bb99a1184D886bBaF3Cd7e15A); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"6080604052348015600e575f80fd5b506109468061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c806301ffc9a714610038578063d786858b14610060575b5f80fd5b61004b610046366004610333565b610098565b60405190151581526020015b60405180910390f35b61007361006e366004610379565b610130565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610057565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fd786858b00000000000000000000000000000000000000000000000000000000148061012a57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff821661017e576040517fe51a7ce200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f739fd790f65ca3af2772358c653f097f0a4c7ee7d26040516101a090610326565b73ffffffffffffffffffffffffffffffffffffffff90911681526040602082018190525f90820152606001604051809103905ff0801580156101e4573d5f803e3d5ffd5b506040805133815273ffffffffffffffffffffffffffffffffffffffff831660208201529192507f82488d8ab594db2178e4a45b7106aaa804836e608f001b5d7fcb6c3514730b3e910160405180910390a16040805173ffffffffffffffffffffffffffffffffffffffff85811660208301527fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc3929084169163439fab9191016040516020818303038152906040526040518263ffffffff1660e01b81526004016102af91906103ac565b6020604051808303815f875af11580156102cb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ef91906103ff565b1461012a576040517f09c5931500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61052f8061041783390190565b5f60208284031215610343575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610372575f80fd5b9392505050565b5f60208284031215610389575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610372575f80fd5b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b5f6020828403121561040f575f80fd5b505191905056fe60a060405260405161052f38038061052f83398101604081905261002291610331565b61002c828261003e565b506001600160a01b031660805261040d565b610047826100fb565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a28051156100ef576100ea826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e491906103ed565b82610209565b505050565b6100f76102aa565b5050565b806001600160a01b03163b5f0361013557604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b815290515f92841691635c60da1b9160048083019260209291908290030181865afa1580156101ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d291906103ed565b9050806001600160a01b03163b5f036100f757604051634c9c8ce360e01b81526001600160a01b038216600482015260240161012c565b60605f61021684846102cb565b905080801561023757505f3d118061023757505f846001600160a01b03163b115b1561024c576102446102de565b9150506102a4565b801561027657604051639996b31560e01b81526001600160a01b038516600482015260240161012c565b3d15610289576102846102f7565b6102a2565b60405163d6bda27560e01b815260040160405180910390fd5b505b92915050565b34156102c95760405163b398979f60e01b815260040160405180910390fd5b565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b6040513d5f823e3d81fd5b80516001600160a01b0381168114610318575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215610342575f80fd5b61034b83610302565b60208401519092506001600160401b0380821115610367575f80fd5b818501915085601f83011261037a575f80fd5b81518181111561038c5761038c61031d565b604051601f8201601f19908116603f011681019083821181831017156103b4576103b461031d565b816040528281528860208487010111156103cc575f80fd5b8260208601602083015e5f6020848301015280955050505050509250929050565b5f602082840312156103fd575f80fd5b61040682610302565b9392505050565b60805161010b6104245f395f6023015261010b5ff3fe608060405261000c61000e565b005b61001e610019610020565b6100b3565b565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561008a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100ae91906100d1565b905090565b365f80375f80365f845af43d5f803e8080156100cd573d5ff35b3d5ffd5b5f602082840312156100e1575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610104575f80fd5b939250505056"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b5060043610610034575f3560e01c806301ffc9a714610038578063d786858b14610060575b5f80fd5b61004b610046366004610333565b610098565b60405190151581526020015b60405180910390f35b61007361006e366004610379565b610130565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610057565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fd786858b00000000000000000000000000000000000000000000000000000000148061012a57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff821661017e576040517fe51a7ce200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f739fd790f65ca3af2772358c653f097f0a4c7ee7d26040516101a090610326565b73ffffffffffffffffffffffffffffffffffffffff90911681526040602082018190525f90820152606001604051809103905ff0801580156101e4573d5f803e3d5ffd5b506040805133815273ffffffffffffffffffffffffffffffffffffffff831660208201529192507f82488d8ab594db2178e4a45b7106aaa804836e608f001b5d7fcb6c3514730b3e910160405180910390a16040805173ffffffffffffffffffffffffffffffffffffffff85811660208301527fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc3929084169163439fab9191016040516020818303038152906040526040518263ffffffff1660e01b81526004016102af91906103ac565b6020604051808303815f875af11580156102cb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ef91906103ff565b1461012a576040517f09c5931500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61052f8061041783390190565b5f60208284031215610343575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610372575f80fd5b9392505050565b5f60208284031215610389575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610372575f80fd5b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b5f6020828403121561040f575f80fd5b505191905056fe60a060405260405161052f38038061052f83398101604081905261002291610331565b61002c828261003e565b506001600160a01b031660805261040d565b610047826100fb565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a28051156100ef576100ea826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e491906103ed565b82610209565b505050565b6100f76102aa565b5050565b806001600160a01b03163b5f0361013557604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b815290515f92841691635c60da1b9160048083019260209291908290030181865afa1580156101ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d291906103ed565b9050806001600160a01b03163b5f036100f757604051634c9c8ce360e01b81526001600160a01b038216600482015260240161012c565b60605f61021684846102cb565b905080801561023757505f3d118061023757505f846001600160a01b03163b115b1561024c576102446102de565b9150506102a4565b801561027657604051639996b31560e01b81526001600160a01b038516600482015260240161012c565b3d15610289576102846102f7565b6102a2565b60405163d6bda27560e01b815260040160405180910390fd5b505b92915050565b34156102c95760405163b398979f60e01b815260040160405180910390fd5b565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b6040513d5f823e3d81fd5b80516001600160a01b0381168114610318575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215610342575f80fd5b61034b83610302565b60208401519092506001600160401b0380821115610367575f80fd5b818501915085601f83011261037a575f80fd5b81518181111561038c5761038c61031d565b604051601f8201601f19908116603f011681019083821181831017156103b4576103b461031d565b816040528281528860208487010111156103cc575f80fd5b8260208601602083015e5f6020848301015280955050505050509250929050565b5f602082840312156103fd575f80fd5b61040682610302565b9392505050565b60805161010b6104245f395f6023015261010b5ff3fe608060405261000c61000e565b005b61001e610019610020565b6100b3565b565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561008a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100ae91906100d1565b905090565b365f80375f80365f845af43d5f803e8080156100cd573d5ff35b3d5ffd5b5f602082840312156100e1575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610104575f80fd5b939250505056"; diff --git a/src/generated/0_1_7/ST0xOrchestrator.pointers.sol b/src/generated/0_1_7/ST0xOrchestrator.pointers.sol deleted file mode 100644 index 9fe30271..00000000 --- a/src/generated/0_1_7/ST0xOrchestrator.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x7537448e8cbb200d25651a941a39e465e2ef7a549fe8245d83774bef485629e6); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x0099FcB947Cc31E21C631478A2a9E2E591cd4010); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"6080604052348015600e575f80fd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6131c0806100d65f395ff3fe608060405260043610610191575f3560e01c8063742fabb3116100dc578063b930908f11610087578063d547741f11610062578063d547741f14610594578063e9a9c850146105b3578063f14893a7146105e6578063f23a6e6114610605575f80fd5b8063b930908f146104f2578063bc197c8114610525578063c4d66de814610575575f80fd5b806391d14854116100b757806391d148541461045d5780639cb887f8146104c0578063a217fddf146104df575f80fd5b8063742fabb3146103cf578063752c9cf51461042257806384b0196e14610436575f80fd5b80633b94a0dd1161013c57806344d171871161011757806344d1718714610372578063584f418e14610391578063671d083f146103b0575f80fd5b80633b94a0dd146103015780633e81e40d146103345780633f6fc76f14610353575f80fd5b8063248a9ca31161016c578063248a9ca3146102745780632f2ff15d146102c157806336568abe146102e2575f80fd5b806301ffc9a71461019c5780630e230f97146101d057806320df435914610233575f80fd5b3661019857005b5f80fd5b3480156101a7575f80fd5b506101bb6101b6366004612944565b610624565b60405190151581526020015b60405180910390f35b3480156101db575f80fd5b506101bb6101ea366004612973565b6001600160a01b03919091165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be70160209081526040808320938352929052205460ff1690565b34801561023e575f80fd5b506102667f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de81565b6040519081526020016101c7565b34801561027f575f80fd5b5061026661028e36600461299d565b5f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b3480156102cc575f80fd5b506102e06102db3660046129b4565b6106cb565b005b3480156102ed575f80fd5b506102e06102fc3660046129b4565b610714565b34801561030c575f80fd5b506102667f8381bcc05e5203d9456aa7185a19b2be5d4af37909fecf63a6f2016c1bf8413381565b34801561033f575f80fd5b5061026661034e3660046129e2565b610765565b34801561035e575f80fd5b506102e061036d366004612a25565b61077b565b34801561037d575f80fd5b506102e061038c366004612aa9565b610816565b34801561039c575f80fd5b506102e06103ab366004612b01565b610979565b3480156103bb575f80fd5b506102e06103ca366004612b48565b610af3565b3480156103da575f80fd5b506102666103e9366004612be2565b6001600160a01b03165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be700602052604090205490565b34801561042d575f80fd5b506101bb610cbc565b348015610441575f80fd5b5061044a610eb1565b6040516101c79796959493929190612c2b565b348015610468575f80fd5b506101bb6104773660046129b4565b5f9182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3480156104cb575f80fd5b506102e06104da366004612973565b610f0f565b3480156104ea575f80fd5b506102665f81565b3480156104fd575f80fd5b506102667f04c6a47ae7910ef8b295215a97e8495a9eaf57b7b05bfd8bf951edb3fd4a16a381565b348015610530575f80fd5b5061054461053f366004612d1f565b610fc5565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016101c7565b348015610580575f80fd5b506102e061058f366004612be2565b611054565b34801561059f575f80fd5b506102e06105ae3660046129b4565b611283565b3480156105be575f80fd5b506102667ffdf81848136595c31bb5f76217767372bc4bf906663038eb38381131ea27ecba81565b3480156105f1575f80fd5b506102e0610600366004612b01565b6112c6565b348015610610575f80fd5b5061054461061f366004612dd6565b6113ce565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f4e2312e00000000000000000000000000000000000000000000000000000000014806106b657507fffffffff0000000000000000000000000000000000000000000000000000000082167f18bd37da00000000000000000000000000000000000000000000000000000000145b806106c557506106c58261140b565b92915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020526040902060010154610704816114a1565b61070e83836114ae565b50505050565b6001600160a01b0381163314610756576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610760828261157a565b505050565b5f6107728585858561161e565b95945050505050565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de6107a5816114a1565b6107ad611694565b6107c16001600160a01b03851683856116cb565b816001600160a01b0316846001600160a01b03167f4810d2f105dcba10d740b4ac1d8fa8454dd37014b2051bace1edb1d903c440c48560405161080691815260200190565b60405180910390a361070e611719565b7f04c6a47ae7910ef8b295215a97e8495a9eaf57b7b05bfd8bf951edb3fd4a16a3610840816114a1565b610848611743565b610850611694565b835f03610889576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61089e6001600160a01b0386163330876119d5565b6001600160a01b0385165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be70060209081526040808320548151601f8701849004840281018401909252858252929161091791899189919089908990819084018382808284375f92019190915250611a2492505050565b60408051888152602081018590529081018290529091506001600160a01b0388169033907f112766730ce440487945c01048dacfc6d04340403f675871e96c4e28cf622ecc9060600160405180910390a35050610972611719565b5050505050565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de6109a3816114a1565b6109ab611694565b846001600160a01b031663e1e6b8986040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109e7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a0b9190612e3b565b6040517ff242432a0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038481166024830152604482018790526064820186905260a060848301525f60a4830152919091169063f242432a9060c4015f604051808303815f87803b158015610a87575f80fd5b505af1158015610a99573d5f803e3d5ffd5b5050505083826001600160a01b0316866001600160a01b03167fc9e640d2eb1b8469e42f60a66fef6a05cfd27ee3757e48f3f8ba04ecbc8a51b086604051610ae391815260200190565b60405180910390a4610972611719565b7ffdf81848136595c31bb5f76217767372bc4bf906663038eb38381131ea27ecba610b1d816114a1565b610b25611743565b610b2d611694565b845f03610b66576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b7287878787611d57565b6040517fc77b66c20000000000000000000000000000000000000000000000000000000081525f906001600160a01b0389169063c77b66c290610bc1908990309086908a908a90600401612e56565b6020604051808303815f875af1158015610bdd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c019190612ea2565b9050858114610c4b576040517fbe40f1fc00000000000000000000000000000000000000000000000000000000815260048101879052602481018290526044015b60405180910390fd5b610c5f6001600160a01b03891688886116cb565b60408051878152863560208201526001600160a01b03808a1692908b169133917f7c0eac1a8d30fbe7a577affc3b588a0b7d965a6133d12097cfac0760f2f2b617910160405180910390a450610cb3611719565b50505050505050565b5f8073679ab223dab158ea93e1a4f49104de436c58eab8905073d7f91c1c6e6e651ec3f1fd707af7cbb7526206e16001600160a01b0316816001600160a01b0316632f77a1c16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d2f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d539190612e3b565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d8e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610db29190612e3b565b6001600160a01b0316148015610eab5750732df5cfe6d688ef9ff1b7c59a499d254b1527b2866001600160a01b0316816001600160a01b0316632c9b7f406040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e1d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e419190612e3b565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e7c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ea09190612e3b565b6001600160a01b0316145b91505090565b5f6060805f805f6060610ec2611e95565b610eca611f68565b604080515f808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009b939a50919850469750309650945092509050565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de610f39816114a1565b610f41611694565b5f7f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be7006001600160a01b0385165f818152602083815260409182902080549088905582518181529182018890529394507fc6ce8282d3b57b159503fa5566e612aeb9f30c8e20c882398c9cb293c1ba6d68910160405180910390a25050610760611719565b5f805b86811015611025578481108015610ff657505f868683818110610fed57610fed612ee6565b90506020020135115b1561101d5761101d3389898481811061101157611011612ee6565b90506020020135611fb9565b600101610fc8565b507fbc197c81000000000000000000000000000000000000000000000000000000009998505050505050505050565b5f61105d612222565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156110895750825b90505f8267ffffffffffffffff1660011480156110a55750303b155b9050811580156110b3575080155b156110ea576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166001178555831561114b5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6001600160a01b03861661118b576040517f9905827b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611193611743565b61119b61224a565b61120f6040518060400160405280601081526020017f535430784f7263686573747261746f72000000000000000000000000000000008152506040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250612252565b6112195f876114ae565b50831561127b5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680060205260409020600101546112bc816114a1565b61070e838361157a565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de6112f0816114a1565b6112f8611694565b6040517ff242432a0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038381166024830152604482018690526064820185905260a060848301525f60a483015286169063f242432a9060c4015f604051808303815f87803b158015611372575f80fd5b505af1158015611384573d5f803e3d5ffd5b5050505083826001600160a01b0316866001600160a01b03167f78b19b4b6e69e380c3c303d1e889d510ee3ee409219c1c014d97a0a607b6c6a686604051610ae391815260200190565b5f83156113df576113df3386611fb9565b507ff23a6e61000000000000000000000000000000000000000000000000000000009695505050505050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806106c557507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146106c5565b6114ab8133612268565b50565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff16611571575f848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556115273390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506106c5565b5f9150506106c5565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff1615611571575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506106c5565b604080517f8381bcc05e5203d9456aa7185a19b2be5d4af37909fecf63a6f2016c1bf8413360208201526001600160a01b038087169282019290925290841660608201526080810183905260a081018290525f906107729060c001604051602081830303815290604052805190602001206122f4565b61169c61233b565b6116c960017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005b90612394565b565b6116d8838383600161239b565b610760576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610c42565b6116c95f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f006116c3565b5f73679ab223dab158ea93e1a4f49104de436c58eab890505f816001600160a01b0316632f77a1c16040518163ffffffff1660e01b8152600401602060405180830381865afa158015611798573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117bc9190612e3b565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117f7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061181b9190612e3b565b90506001600160a01b03811673d7f91c1c6e6e651ec3f1fd707af7cbb7526206e114611898576040517fdfdb61b700000000000000000000000000000000000000000000000000000000815273d7f91c1c6e6e651ec3f1fd707af7cbb7526206e160048201526001600160a01b0382166024820152604401610c42565b5f826001600160a01b0316632c9b7f406040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118f99190612e3b565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611934573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119589190612e3b565b90506001600160a01b038116732df5cfe6d688ef9ff1b7c59a499d254b1527b28614610760576040517f3e4077b3000000000000000000000000000000000000000000000000000000008152732df5cfe6d688ef9ff1b7c59a499d254b1527b28660048201526001600160a01b0382166024820152604401610c42565b6119e3848484846001612416565b61070e576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610c42565b5f808490505f816001600160a01b031663e1e6b8986040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a66573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a8a9190612e3b565b90507f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be7005f015f876001600160a01b03166001600160a01b031681526020019081526020015f205492505f826001600160a01b031663f5d214f56040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b10573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b349190612ea2565b90505b8515611d125780841115611b89576040517f66a21a2d0000000000000000000000000000000000000000000000000000000081526001600160a01b038816600482015260248101879052604401610c42565b6040517efdd58e000000000000000000000000000000000000000000000000000000008152306004820152602481018590525f906001600160a01b0384169062fdd58e90604401602060405180830381865afa158015611beb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c0f9190612ea2565b9050805f03611c245750600190930192611b37565b5f818810611c325781611c34565b875b90505f856001600160a01b031663921a4c428330308b8d6040518663ffffffff1660e01b8152600401611c6b959493929190612f13565b6020604051808303815f875af1158015611c87573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cab9190612ea2565b9050818114611cf0576040517fbe40f1fc0000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610c42565b611cfa828a612f55565b9850828203611d0a576001909601955b505050611b37565b5050506001600160a01b03939093165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be700602052604090208390555090919050565b6001600160a01b0383165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be70160209081526040808320843584529091529020547f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be7009060ff1615611e08576040517f59c210430000000000000000000000000000000000000000000000000000000081526001600160a01b038516600482015282356024820152604401610c42565b6001600160a01b0384165f90815260018281016020908152604080842086358086529252909220805460ff19169091179055610972908590611e4f9088908390889061161e565b611e5c6020860186612f8d565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061249c92505050565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10280546060917fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10091611ee690612fee565b80601f0160208091040260200160405190810160405280929190818152602001828054611f1290612fee565b8015611f5d5780601f10611f3457610100808354040283529160200191611f5d565b820191905f5260205f20905b815481529060010190602001808311611f4057829003601f168201915b505050505091505090565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10380546060917fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10091611ee690612fee565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f481c6a750000000000000000000000000000000000000000000000000000000017905290515f9182916001600160a01b038616916120299161303f565b5f60405180830381855afa9150503d805f8114612061576040519150601f19603f3d011682016040523d82523d5f602084013e612066565b606091505b509150915081158061207a57508051602014155b156120855750505050565b5f61208f82613055565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe1e6b8980000000000000000000000000000000000000000000000000000000017905290519192506001600160a01b038316916120ff919061303f565b5f60405180830381855afa9150503d805f8114612137576040519150601f19603f3d011682016040523d82523d5f602084013e61213c565b606091505b50909350915082158061215157508151602014155b1561215d575050505050565b6001600160a01b03851661217083613055565b6001600160a01b031614612185575050505050565b6001600160a01b0381165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be700602081905260409091205480861015610cb3576001600160a01b0383165f818152602084815260409182902089905581518481529081018990527f2008c207f65bedc2bb65dc8ac34aee36a37cd43a50152d574107c63ace7e07c6910160405180910390a250505050505050565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006106c5565b6116c96125cb565b61225a6125cb565b6122648282612609565b5050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038516845290915290205460ff16612264576040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015260248101839052604401610c42565b5f6106c561230061266c565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c156116c9576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80825d5050565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f5114831661240a5783831516156123fe573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b6040517f23b872dd000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038781166004528616602452604485905291602083606481808c5af1925060015f5114831661248b57838315161561247f573d5f823e3d81fd5b5f883b113d1516831692505b604052505f60605295945050505050565b8051156124e4576124ae83838361267a565b610760576040517f19ab93cc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f642ddf3a0000000000000000000000000000000000000000000000000000000080825260048201849052906001600160a01b0385169063642ddf3a906024016020604051808303815f875af1158015612543573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125679190613078565b7fffffffff000000000000000000000000000000000000000000000000000000001614610760576040517f22b89c080000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610c42565b6125d36126ed565b6116c9576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6126116125cb565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1007fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10261265d84826130d7565b506003810161070e83826130d7565b5f61267561270b565b905090565b5f836001600160a01b03163b5f036126d8575f80612698858561277e565b5090925090505f8160038111156126b1576126b1613193565b1480156126cf5750856001600160a01b0316826001600160a01b0316145b925050506126e6565b6126e38484846127c7565b90505b9392505050565b5f6126f6612222565b5468010000000000000000900460ff16919050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f612735612831565b61273d612846565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f805f83516041036127b5576020840151604085015160608601515f1a6127a78882858561284f565b9550955095505050506127c0565b505081515f91506002905b9250925092565b8051604080517f1626ba7e000000000000000000000000000000000000000000000000000000008082526004820186905260248201929092525f92906020820185604483015e60205f60648401838a5afa9050825f5114601f3d1116811693505050509392505050565b5f61283a611e95565b80519060200120905090565b5f61283a611f68565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561288857505f9150600390508261290d565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa1580156128d9573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b03811661290457505f92506001915082905061290d565b92505f91508190505b9450945094915050565b7fffffffff00000000000000000000000000000000000000000000000000000000811681146114ab575f80fd5b5f60208284031215612954575f80fd5b81356126e681612917565b6001600160a01b03811681146114ab575f80fd5b5f8060408385031215612984575f80fd5b823561298f8161295f565b946020939093013593505050565b5f602082840312156129ad575f80fd5b5035919050565b5f80604083850312156129c5575f80fd5b8235915060208301356129d78161295f565b809150509250929050565b5f805f80608085870312156129f5575f80fd5b8435612a008161295f565b93506020850135612a108161295f565b93969395505050506040820135916060013590565b5f805f60608486031215612a37575f80fd5b8335612a428161295f565b9250602084013591506040840135612a598161295f565b809150509250925092565b5f8083601f840112612a74575f80fd5b50813567ffffffffffffffff811115612a8b575f80fd5b602083019150836020828501011115612aa2575f80fd5b9250929050565b5f805f8060608587031215612abc575f80fd5b8435612ac78161295f565b935060208501359250604085013567ffffffffffffffff811115612ae9575f80fd5b612af587828801612a64565b95989497509550505050565b5f805f8060808587031215612b14575f80fd5b8435612b1f8161295f565b935060208501359250604085013591506060850135612b3d8161295f565b939692955090935050565b5f805f805f8060a08789031215612b5d575f80fd5b8635612b688161295f565b95506020870135612b788161295f565b945060408701359350606087013567ffffffffffffffff80821115612b9b575f80fd5b908801906040828b031215612bae575f80fd5b90935060808801359080821115612bc3575f80fd5b50612bd089828a01612a64565b979a9699509497509295939492505050565b5f60208284031215612bf2575f80fd5b81356126e68161295f565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b7fff00000000000000000000000000000000000000000000000000000000000000881681525f602060e06020840152612c6760e084018a612bfd565b8381036040850152612c79818a612bfd565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825260208088019350909101905f5b81811015612ccc57835183529284019291840191600101612cb0565b50909c9b505050505050505050505050565b5f8083601f840112612cee575f80fd5b50813567ffffffffffffffff811115612d05575f80fd5b6020830191508360208260051b8501011115612aa2575f80fd5b5f805f805f805f8060a0898b031215612d36575f80fd5b8835612d418161295f565b97506020890135612d518161295f565b9650604089013567ffffffffffffffff80821115612d6d575f80fd5b612d798c838d01612cde565b909850965060608b0135915080821115612d91575f80fd5b612d9d8c838d01612cde565b909650945060808b0135915080821115612db5575f80fd5b50612dc28b828c01612a64565b999c989b5096995094979396929594505050565b5f805f805f8060a08789031215612deb575f80fd5b8635612df68161295f565b95506020870135612e068161295f565b94506040870135935060608701359250608087013567ffffffffffffffff811115612e2f575f80fd5b612bd089828a01612a64565b5f60208284031215612e4b575f80fd5b81516126e68161295f565b8581526001600160a01b038516602082015283604082015260806060820152816080820152818360a08301375f81830160a090810191909152601f909201601f19160101949350505050565b5f60208284031215612eb2575f80fd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b8581525f6001600160a01b03808716602084015280861660408401525083606083015260a06080830152612f4a60a0830184612bfd565b979650505050505050565b818103818111156106c5577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612fc0575f80fd5b83018035915067ffffffffffffffff821115612fda575f80fd5b602001915036819003821315612aa2575f80fd5b600181811c9082168061300257607f821691505b602082108103613039577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b5f82518060208501845e5f920191825250919050565b80516020808301519190811015613039575f1960209190910360031b1b16919050565b5f60208284031215613088575f80fd5b81516126e681612917565b601f82111561076057805f5260205f20601f840160051c810160208510156130b85750805b601f840160051c820191505b81811015610972575f81556001016130c4565b815167ffffffffffffffff8111156130f1576130f1612eb9565b613105816130ff8454612fee565b84613093565b602080601f831160018114613138575f84156131215750858301515b5f19600386901b1c1916600185901b17855561127b565b5f85815260208120601f198616915b8281101561316657888601518255948401946001909101908401613147565b508582101561318357878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405260043610610191575f3560e01c8063742fabb3116100dc578063b930908f11610087578063d547741f11610062578063d547741f14610594578063e9a9c850146105b3578063f14893a7146105e6578063f23a6e6114610605575f80fd5b8063b930908f146104f2578063bc197c8114610525578063c4d66de814610575575f80fd5b806391d14854116100b757806391d148541461045d5780639cb887f8146104c0578063a217fddf146104df575f80fd5b8063742fabb3146103cf578063752c9cf51461042257806384b0196e14610436575f80fd5b80633b94a0dd1161013c57806344d171871161011757806344d1718714610372578063584f418e14610391578063671d083f146103b0575f80fd5b80633b94a0dd146103015780633e81e40d146103345780633f6fc76f14610353575f80fd5b8063248a9ca31161016c578063248a9ca3146102745780632f2ff15d146102c157806336568abe146102e2575f80fd5b806301ffc9a71461019c5780630e230f97146101d057806320df435914610233575f80fd5b3661019857005b5f80fd5b3480156101a7575f80fd5b506101bb6101b6366004612944565b610624565b60405190151581526020015b60405180910390f35b3480156101db575f80fd5b506101bb6101ea366004612973565b6001600160a01b03919091165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be70160209081526040808320938352929052205460ff1690565b34801561023e575f80fd5b506102667f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de81565b6040519081526020016101c7565b34801561027f575f80fd5b5061026661028e36600461299d565b5f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b3480156102cc575f80fd5b506102e06102db3660046129b4565b6106cb565b005b3480156102ed575f80fd5b506102e06102fc3660046129b4565b610714565b34801561030c575f80fd5b506102667f8381bcc05e5203d9456aa7185a19b2be5d4af37909fecf63a6f2016c1bf8413381565b34801561033f575f80fd5b5061026661034e3660046129e2565b610765565b34801561035e575f80fd5b506102e061036d366004612a25565b61077b565b34801561037d575f80fd5b506102e061038c366004612aa9565b610816565b34801561039c575f80fd5b506102e06103ab366004612b01565b610979565b3480156103bb575f80fd5b506102e06103ca366004612b48565b610af3565b3480156103da575f80fd5b506102666103e9366004612be2565b6001600160a01b03165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be700602052604090205490565b34801561042d575f80fd5b506101bb610cbc565b348015610441575f80fd5b5061044a610eb1565b6040516101c79796959493929190612c2b565b348015610468575f80fd5b506101bb6104773660046129b4565b5f9182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3480156104cb575f80fd5b506102e06104da366004612973565b610f0f565b3480156104ea575f80fd5b506102665f81565b3480156104fd575f80fd5b506102667f04c6a47ae7910ef8b295215a97e8495a9eaf57b7b05bfd8bf951edb3fd4a16a381565b348015610530575f80fd5b5061054461053f366004612d1f565b610fc5565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016101c7565b348015610580575f80fd5b506102e061058f366004612be2565b611054565b34801561059f575f80fd5b506102e06105ae3660046129b4565b611283565b3480156105be575f80fd5b506102667ffdf81848136595c31bb5f76217767372bc4bf906663038eb38381131ea27ecba81565b3480156105f1575f80fd5b506102e0610600366004612b01565b6112c6565b348015610610575f80fd5b5061054461061f366004612dd6565b6113ce565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f4e2312e00000000000000000000000000000000000000000000000000000000014806106b657507fffffffff0000000000000000000000000000000000000000000000000000000082167f18bd37da00000000000000000000000000000000000000000000000000000000145b806106c557506106c58261140b565b92915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020526040902060010154610704816114a1565b61070e83836114ae565b50505050565b6001600160a01b0381163314610756576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610760828261157a565b505050565b5f6107728585858561161e565b95945050505050565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de6107a5816114a1565b6107ad611694565b6107c16001600160a01b03851683856116cb565b816001600160a01b0316846001600160a01b03167f4810d2f105dcba10d740b4ac1d8fa8454dd37014b2051bace1edb1d903c440c48560405161080691815260200190565b60405180910390a361070e611719565b7f04c6a47ae7910ef8b295215a97e8495a9eaf57b7b05bfd8bf951edb3fd4a16a3610840816114a1565b610848611743565b610850611694565b835f03610889576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61089e6001600160a01b0386163330876119d5565b6001600160a01b0385165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be70060209081526040808320548151601f8701849004840281018401909252858252929161091791899189919089908990819084018382808284375f92019190915250611a2492505050565b60408051888152602081018590529081018290529091506001600160a01b0388169033907f112766730ce440487945c01048dacfc6d04340403f675871e96c4e28cf622ecc9060600160405180910390a35050610972611719565b5050505050565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de6109a3816114a1565b6109ab611694565b846001600160a01b031663e1e6b8986040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109e7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a0b9190612e3b565b6040517ff242432a0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038481166024830152604482018790526064820186905260a060848301525f60a4830152919091169063f242432a9060c4015f604051808303815f87803b158015610a87575f80fd5b505af1158015610a99573d5f803e3d5ffd5b5050505083826001600160a01b0316866001600160a01b03167fc9e640d2eb1b8469e42f60a66fef6a05cfd27ee3757e48f3f8ba04ecbc8a51b086604051610ae391815260200190565b60405180910390a4610972611719565b7ffdf81848136595c31bb5f76217767372bc4bf906663038eb38381131ea27ecba610b1d816114a1565b610b25611743565b610b2d611694565b845f03610b66576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b7287878787611d57565b6040517fc77b66c20000000000000000000000000000000000000000000000000000000081525f906001600160a01b0389169063c77b66c290610bc1908990309086908a908a90600401612e56565b6020604051808303815f875af1158015610bdd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c019190612ea2565b9050858114610c4b576040517fbe40f1fc00000000000000000000000000000000000000000000000000000000815260048101879052602481018290526044015b60405180910390fd5b610c5f6001600160a01b03891688886116cb565b60408051878152863560208201526001600160a01b03808a1692908b169133917f7c0eac1a8d30fbe7a577affc3b588a0b7d965a6133d12097cfac0760f2f2b617910160405180910390a450610cb3611719565b50505050505050565b5f8073679ab223dab158ea93e1a4f49104de436c58eab8905073d7f91c1c6e6e651ec3f1fd707af7cbb7526206e16001600160a01b0316816001600160a01b0316632f77a1c16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d2f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d539190612e3b565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d8e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610db29190612e3b565b6001600160a01b0316148015610eab5750732df5cfe6d688ef9ff1b7c59a499d254b1527b2866001600160a01b0316816001600160a01b0316632c9b7f406040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e1d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e419190612e3b565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e7c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ea09190612e3b565b6001600160a01b0316145b91505090565b5f6060805f805f6060610ec2611e95565b610eca611f68565b604080515f808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009b939a50919850469750309650945092509050565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de610f39816114a1565b610f41611694565b5f7f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be7006001600160a01b0385165f818152602083815260409182902080549088905582518181529182018890529394507fc6ce8282d3b57b159503fa5566e612aeb9f30c8e20c882398c9cb293c1ba6d68910160405180910390a25050610760611719565b5f805b86811015611025578481108015610ff657505f868683818110610fed57610fed612ee6565b90506020020135115b1561101d5761101d3389898481811061101157611011612ee6565b90506020020135611fb9565b600101610fc8565b507fbc197c81000000000000000000000000000000000000000000000000000000009998505050505050505050565b5f61105d612222565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156110895750825b90505f8267ffffffffffffffff1660011480156110a55750303b155b9050811580156110b3575080155b156110ea576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166001178555831561114b5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6001600160a01b03861661118b576040517f9905827b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611193611743565b61119b61224a565b61120f6040518060400160405280601081526020017f535430784f7263686573747261746f72000000000000000000000000000000008152506040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250612252565b6112195f876114ae565b50831561127b5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680060205260409020600101546112bc816114a1565b61070e838361157a565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de6112f0816114a1565b6112f8611694565b6040517ff242432a0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038381166024830152604482018690526064820185905260a060848301525f60a483015286169063f242432a9060c4015f604051808303815f87803b158015611372575f80fd5b505af1158015611384573d5f803e3d5ffd5b5050505083826001600160a01b0316866001600160a01b03167f78b19b4b6e69e380c3c303d1e889d510ee3ee409219c1c014d97a0a607b6c6a686604051610ae391815260200190565b5f83156113df576113df3386611fb9565b507ff23a6e61000000000000000000000000000000000000000000000000000000009695505050505050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806106c557507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146106c5565b6114ab8133612268565b50565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff16611571575f848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556115273390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506106c5565b5f9150506106c5565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff1615611571575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506106c5565b604080517f8381bcc05e5203d9456aa7185a19b2be5d4af37909fecf63a6f2016c1bf8413360208201526001600160a01b038087169282019290925290841660608201526080810183905260a081018290525f906107729060c001604051602081830303815290604052805190602001206122f4565b61169c61233b565b6116c960017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005b90612394565b565b6116d8838383600161239b565b610760576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610c42565b6116c95f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f006116c3565b5f73679ab223dab158ea93e1a4f49104de436c58eab890505f816001600160a01b0316632f77a1c16040518163ffffffff1660e01b8152600401602060405180830381865afa158015611798573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117bc9190612e3b565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117f7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061181b9190612e3b565b90506001600160a01b03811673d7f91c1c6e6e651ec3f1fd707af7cbb7526206e114611898576040517fdfdb61b700000000000000000000000000000000000000000000000000000000815273d7f91c1c6e6e651ec3f1fd707af7cbb7526206e160048201526001600160a01b0382166024820152604401610c42565b5f826001600160a01b0316632c9b7f406040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118f99190612e3b565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611934573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119589190612e3b565b90506001600160a01b038116732df5cfe6d688ef9ff1b7c59a499d254b1527b28614610760576040517f3e4077b3000000000000000000000000000000000000000000000000000000008152732df5cfe6d688ef9ff1b7c59a499d254b1527b28660048201526001600160a01b0382166024820152604401610c42565b6119e3848484846001612416565b61070e576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610c42565b5f808490505f816001600160a01b031663e1e6b8986040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a66573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a8a9190612e3b565b90507f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be7005f015f876001600160a01b03166001600160a01b031681526020019081526020015f205492505f826001600160a01b031663f5d214f56040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b10573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b349190612ea2565b90505b8515611d125780841115611b89576040517f66a21a2d0000000000000000000000000000000000000000000000000000000081526001600160a01b038816600482015260248101879052604401610c42565b6040517efdd58e000000000000000000000000000000000000000000000000000000008152306004820152602481018590525f906001600160a01b0384169062fdd58e90604401602060405180830381865afa158015611beb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c0f9190612ea2565b9050805f03611c245750600190930192611b37565b5f818810611c325781611c34565b875b90505f856001600160a01b031663921a4c428330308b8d6040518663ffffffff1660e01b8152600401611c6b959493929190612f13565b6020604051808303815f875af1158015611c87573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cab9190612ea2565b9050818114611cf0576040517fbe40f1fc0000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610c42565b611cfa828a612f55565b9850828203611d0a576001909601955b505050611b37565b5050506001600160a01b03939093165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be700602052604090208390555090919050565b6001600160a01b0383165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be70160209081526040808320843584529091529020547f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be7009060ff1615611e08576040517f59c210430000000000000000000000000000000000000000000000000000000081526001600160a01b038516600482015282356024820152604401610c42565b6001600160a01b0384165f90815260018281016020908152604080842086358086529252909220805460ff19169091179055610972908590611e4f9088908390889061161e565b611e5c6020860186612f8d565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061249c92505050565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10280546060917fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10091611ee690612fee565b80601f0160208091040260200160405190810160405280929190818152602001828054611f1290612fee565b8015611f5d5780601f10611f3457610100808354040283529160200191611f5d565b820191905f5260205f20905b815481529060010190602001808311611f4057829003601f168201915b505050505091505090565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10380546060917fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10091611ee690612fee565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f481c6a750000000000000000000000000000000000000000000000000000000017905290515f9182916001600160a01b038616916120299161303f565b5f60405180830381855afa9150503d805f8114612061576040519150601f19603f3d011682016040523d82523d5f602084013e612066565b606091505b509150915081158061207a57508051602014155b156120855750505050565b5f61208f82613055565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe1e6b8980000000000000000000000000000000000000000000000000000000017905290519192506001600160a01b038316916120ff919061303f565b5f60405180830381855afa9150503d805f8114612137576040519150601f19603f3d011682016040523d82523d5f602084013e61213c565b606091505b50909350915082158061215157508151602014155b1561215d575050505050565b6001600160a01b03851661217083613055565b6001600160a01b031614612185575050505050565b6001600160a01b0381165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be700602081905260409091205480861015610cb3576001600160a01b0383165f818152602084815260409182902089905581518481529081018990527f2008c207f65bedc2bb65dc8ac34aee36a37cd43a50152d574107c63ace7e07c6910160405180910390a250505050505050565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006106c5565b6116c96125cb565b61225a6125cb565b6122648282612609565b5050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038516845290915290205460ff16612264576040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015260248101839052604401610c42565b5f6106c561230061266c565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c156116c9576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80825d5050565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f5114831661240a5783831516156123fe573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b6040517f23b872dd000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038781166004528616602452604485905291602083606481808c5af1925060015f5114831661248b57838315161561247f573d5f823e3d81fd5b5f883b113d1516831692505b604052505f60605295945050505050565b8051156124e4576124ae83838361267a565b610760576040517f19ab93cc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f642ddf3a0000000000000000000000000000000000000000000000000000000080825260048201849052906001600160a01b0385169063642ddf3a906024016020604051808303815f875af1158015612543573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125679190613078565b7fffffffff000000000000000000000000000000000000000000000000000000001614610760576040517f22b89c080000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610c42565b6125d36126ed565b6116c9576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6126116125cb565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1007fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10261265d84826130d7565b506003810161070e83826130d7565b5f61267561270b565b905090565b5f836001600160a01b03163b5f036126d8575f80612698858561277e565b5090925090505f8160038111156126b1576126b1613193565b1480156126cf5750856001600160a01b0316826001600160a01b0316145b925050506126e6565b6126e38484846127c7565b90505b9392505050565b5f6126f6612222565b5468010000000000000000900460ff16919050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f612735612831565b61273d612846565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f805f83516041036127b5576020840151604085015160608601515f1a6127a78882858561284f565b9550955095505050506127c0565b505081515f91506002905b9250925092565b8051604080517f1626ba7e000000000000000000000000000000000000000000000000000000008082526004820186905260248201929092525f92906020820185604483015e60205f60648401838a5afa9050825f5114601f3d1116811693505050509392505050565b5f61283a611e95565b80519060200120905090565b5f61283a611f68565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561288857505f9150600390508261290d565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa1580156128d9573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b03811661290457505f92506001915082905061290d565b92505f91508190505b9450945094915050565b7fffffffff00000000000000000000000000000000000000000000000000000000811681146114ab575f80fd5b5f60208284031215612954575f80fd5b81356126e681612917565b6001600160a01b03811681146114ab575f80fd5b5f8060408385031215612984575f80fd5b823561298f8161295f565b946020939093013593505050565b5f602082840312156129ad575f80fd5b5035919050565b5f80604083850312156129c5575f80fd5b8235915060208301356129d78161295f565b809150509250929050565b5f805f80608085870312156129f5575f80fd5b8435612a008161295f565b93506020850135612a108161295f565b93969395505050506040820135916060013590565b5f805f60608486031215612a37575f80fd5b8335612a428161295f565b9250602084013591506040840135612a598161295f565b809150509250925092565b5f8083601f840112612a74575f80fd5b50813567ffffffffffffffff811115612a8b575f80fd5b602083019150836020828501011115612aa2575f80fd5b9250929050565b5f805f8060608587031215612abc575f80fd5b8435612ac78161295f565b935060208501359250604085013567ffffffffffffffff811115612ae9575f80fd5b612af587828801612a64565b95989497509550505050565b5f805f8060808587031215612b14575f80fd5b8435612b1f8161295f565b935060208501359250604085013591506060850135612b3d8161295f565b939692955090935050565b5f805f805f8060a08789031215612b5d575f80fd5b8635612b688161295f565b95506020870135612b788161295f565b945060408701359350606087013567ffffffffffffffff80821115612b9b575f80fd5b908801906040828b031215612bae575f80fd5b90935060808801359080821115612bc3575f80fd5b50612bd089828a01612a64565b979a9699509497509295939492505050565b5f60208284031215612bf2575f80fd5b81356126e68161295f565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b7fff00000000000000000000000000000000000000000000000000000000000000881681525f602060e06020840152612c6760e084018a612bfd565b8381036040850152612c79818a612bfd565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825260208088019350909101905f5b81811015612ccc57835183529284019291840191600101612cb0565b50909c9b505050505050505050505050565b5f8083601f840112612cee575f80fd5b50813567ffffffffffffffff811115612d05575f80fd5b6020830191508360208260051b8501011115612aa2575f80fd5b5f805f805f805f8060a0898b031215612d36575f80fd5b8835612d418161295f565b97506020890135612d518161295f565b9650604089013567ffffffffffffffff80821115612d6d575f80fd5b612d798c838d01612cde565b909850965060608b0135915080821115612d91575f80fd5b612d9d8c838d01612cde565b909650945060808b0135915080821115612db5575f80fd5b50612dc28b828c01612a64565b999c989b5096995094979396929594505050565b5f805f805f8060a08789031215612deb575f80fd5b8635612df68161295f565b95506020870135612e068161295f565b94506040870135935060608701359250608087013567ffffffffffffffff811115612e2f575f80fd5b612bd089828a01612a64565b5f60208284031215612e4b575f80fd5b81516126e68161295f565b8581526001600160a01b038516602082015283604082015260806060820152816080820152818360a08301375f81830160a090810191909152601f909201601f19160101949350505050565b5f60208284031215612eb2575f80fd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b8581525f6001600160a01b03808716602084015280861660408401525083606083015260a06080830152612f4a60a0830184612bfd565b979650505050505050565b818103818111156106c5577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612fc0575f80fd5b83018035915067ffffffffffffffff821115612fda575f80fd5b602001915036819003821315612aa2575f80fd5b600181811c9082168061300257607f821691505b602082108103613039577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b5f82518060208501845e5f920191825250919050565b80516020808301519190811015613039575f1960209190910360031b1b16919050565b5f60208284031215613088575f80fd5b81516126e681612917565b601f82111561076057805f5260205f20601f840160051c810160208510156130b85750805b601f840160051c820191505b81811015610972575f81556001016130c4565b815167ffffffffffffffff8111156130f1576130f1612eb9565b613105816130ff8454612fee565b84613093565b602080601f831160018114613138575f84156131215750858301515b5f19600386901b1c1916600185901b17855561127b565b5f85815260208120601f198616915b8281101561316657888601518255948401946001909101908401613147565b508582101561318357878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd"; diff --git a/src/generated/0_1_7/ST0xOrchestratorBeaconSetDeployer.pointers.sol b/src/generated/0_1_7/ST0xOrchestratorBeaconSetDeployer.pointers.sol deleted file mode 100644 index 53ee4a14..00000000 --- a/src/generated/0_1_7/ST0xOrchestratorBeaconSetDeployer.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x2149474f3f4539b44296101ca3ffafb1ebd7f212b90b5fc9d8d28a4d010ca4eb); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0xBff92564aeffe44C85A9153B9f2dB13e47A22435); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"60a0604052348015600e575f80fd5b507299fcb947cc31e21c631478a2a9e2e591cd4010738e4bdeec7ceb9570d440676345da1dce10329f5b6040516042906082565b6001600160a01b03928316815291166020820152604001604051809103905ff0801580156071573d5f803e3d5ffd5b506001600160a01b0316608052608f565b6104f7806109cf83390190565b6080516109226100ad5f395f81816070015261025201526109225ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c806301ffc9a714610043578063429b15441461006b5780634c96a389146100b7575b5f80fd5b610056610051366004610309565b6100ca565b60405190151581526020015b60405180910390f35b6100927f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610062565b6100926100c536600461034f565b610162565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f4c96a38900000000000000000000000000000000000000000000000000000000148061015c57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82166101b0576040517f9905827b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405173ffffffffffffffffffffffffffffffffffffffff831660248201525f90604401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc4d66de800000000000000000000000000000000000000000000000000000000179052519091505f907f000000000000000000000000000000000000000000000000000000000000000090839061027d906102fc565b610288929190610382565b604051809103905ff0801580156102a1573d5f803e3d5ffd5b5060405173ffffffffffffffffffffffffffffffffffffffff86811682529192509082169033907fa0d99d93cf7a5f89661fa0829369a7e4896e755871efe65440bab2429387d55b9060200160405180910390a39392505050565b61052f806103f383390190565b5f60208284031215610319575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610348575f80fd5b9392505050565b5f6020828403121561035f575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610348575f80fd5b73ffffffffffffffffffffffffffffffffffffffff83168152604060208201525f82518060408401528060208501606085015e5f6060828501015260607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f830116840101915050939250505056fe60a060405260405161052f38038061052f83398101604081905261002291610331565b61002c828261003e565b506001600160a01b031660805261040d565b610047826100fb565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a28051156100ef576100ea826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e491906103ed565b82610209565b505050565b6100f76102aa565b5050565b806001600160a01b03163b5f0361013557604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b815290515f92841691635c60da1b9160048083019260209291908290030181865afa1580156101ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d291906103ed565b9050806001600160a01b03163b5f036100f757604051634c9c8ce360e01b81526001600160a01b038216600482015260240161012c565b60605f61021684846102cb565b905080801561023757505f3d118061023757505f846001600160a01b03163b115b1561024c576102446102de565b9150506102a4565b801561027657604051639996b31560e01b81526001600160a01b038516600482015260240161012c565b3d15610289576102846102f7565b6102a2565b60405163d6bda27560e01b815260040160405180910390fd5b505b92915050565b34156102c95760405163b398979f60e01b815260040160405180910390fd5b565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b6040513d5f823e3d81fd5b80516001600160a01b0381168114610318575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215610342575f80fd5b61034b83610302565b60208401519092506001600160401b0380821115610367575f80fd5b818501915085601f83011261037a575f80fd5b81518181111561038c5761038c61031d565b604051601f8201601f19908116603f011681019083821181831017156103b4576103b461031d565b816040528281528860208487010111156103cc575f80fd5b8260208601602083015e5f6020848301015280955050505050509250929050565b5f602082840312156103fd575f80fd5b61040682610302565b9392505050565b60805161010b6104245f395f6023015261010b5ff3fe608060405261000c61000e565b005b61001e610019610020565b6100b3565b565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561008a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100ae91906100d1565b905090565b365f80375f80365f845af43d5f803e8080156100cd573d5ff35b3d5ffd5b5f602082840312156100e1575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610104575f80fd5b939250505056608060405234801561000f575f80fd5b506040516104f73803806104f783398101604081905261002e9161015f565b806001600160a01b03811661005d57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b61006681610077565b50610070826100c6565b5050610190565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b806001600160a01b03163b5f036100fb5760405163211eb15960e21b81526001600160a01b0382166004820152602401610054565b600180546001600160a01b0319166001600160a01b0383169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b80516001600160a01b038116811461015a575f80fd5b919050565b5f8060408385031215610170575f80fd5b61017983610144565b915061018760208401610144565b90509250929050565b61035a8061019d5f395ff3fe608060405234801561000f575f80fd5b5060043610610064575f3560e01c8063715018a61161004d578063715018a6146100c05780638da5cb5b146100c8578063f2fde38b146100e5575f80fd5b80633659cfe6146100685780635c60da1b1461007d575b5f80fd5b61007b610076366004610320565b6100f8565b005b60015473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61007b61010c565b5f5473ffffffffffffffffffffffffffffffffffffffff16610097565b61007b6100f3366004610320565b61011f565b610100610184565b610109816101d6565b50565b610114610184565b61011d5f6102ac565b565b610127610184565b73ffffffffffffffffffffffffffffffffffffffff811661017b576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f60048201526024015b60405180910390fd5b610109816102ac565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461011d576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610172565b8073ffffffffffffffffffffffffffffffffffffffff163b5f0361023e576040517f847ac56400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602401610172565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f60208284031215610330575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610353575f80fd5b939250505056"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b506004361061003f575f3560e01c806301ffc9a714610043578063429b15441461006b5780634c96a389146100b7575b5f80fd5b610056610051366004610309565b6100ca565b60405190151581526020015b60405180910390f35b6100927f000000000000000000000000ba0d89f6e84a201cd2c720a91911fdadbbb2ad4881565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610062565b6100926100c536600461034f565b610162565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f4c96a38900000000000000000000000000000000000000000000000000000000148061015c57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82166101b0576040517f9905827b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405173ffffffffffffffffffffffffffffffffffffffff831660248201525f90604401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc4d66de800000000000000000000000000000000000000000000000000000000179052519091505f907f000000000000000000000000ba0d89f6e84a201cd2c720a91911fdadbbb2ad4890839061027d906102fc565b610288929190610382565b604051809103905ff0801580156102a1573d5f803e3d5ffd5b5060405173ffffffffffffffffffffffffffffffffffffffff86811682529192509082169033907fa0d99d93cf7a5f89661fa0829369a7e4896e755871efe65440bab2429387d55b9060200160405180910390a39392505050565b61052f806103f383390190565b5f60208284031215610319575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610348575f80fd5b9392505050565b5f6020828403121561035f575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610348575f80fd5b73ffffffffffffffffffffffffffffffffffffffff83168152604060208201525f82518060408401528060208501606085015e5f6060828501015260607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f830116840101915050939250505056fe60a060405260405161052f38038061052f83398101604081905261002291610331565b61002c828261003e565b506001600160a01b031660805261040d565b610047826100fb565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a28051156100ef576100ea826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e491906103ed565b82610209565b505050565b6100f76102aa565b5050565b806001600160a01b03163b5f0361013557604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b815290515f92841691635c60da1b9160048083019260209291908290030181865afa1580156101ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d291906103ed565b9050806001600160a01b03163b5f036100f757604051634c9c8ce360e01b81526001600160a01b038216600482015260240161012c565b60605f61021684846102cb565b905080801561023757505f3d118061023757505f846001600160a01b03163b115b1561024c576102446102de565b9150506102a4565b801561027657604051639996b31560e01b81526001600160a01b038516600482015260240161012c565b3d15610289576102846102f7565b6102a2565b60405163d6bda27560e01b815260040160405180910390fd5b505b92915050565b34156102c95760405163b398979f60e01b815260040160405180910390fd5b565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b6040513d5f823e3d81fd5b80516001600160a01b0381168114610318575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215610342575f80fd5b61034b83610302565b60208401519092506001600160401b0380821115610367575f80fd5b818501915085601f83011261037a575f80fd5b81518181111561038c5761038c61031d565b604051601f8201601f19908116603f011681019083821181831017156103b4576103b461031d565b816040528281528860208487010111156103cc575f80fd5b8260208601602083015e5f6020848301015280955050505050509250929050565b5f602082840312156103fd575f80fd5b61040682610302565b9392505050565b60805161010b6104245f395f6023015261010b5ff3fe608060405261000c61000e565b005b61001e610019610020565b6100b3565b565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561008a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100ae91906100d1565b905090565b365f80375f80365f845af43d5f803e8080156100cd573d5ff35b3d5ffd5b5f602082840312156100e1575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610104575f80fd5b939250505056"; diff --git a/src/generated/0_1_7/StoxCorporateActionsFacet.pointers.sol b/src/generated/0_1_7/StoxCorporateActionsFacet.pointers.sol deleted file mode 100644 index aef0d95d..00000000 --- a/src/generated/0_1_7/StoxCorporateActionsFacet.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0xd91520075de1eb2e8fdf042fde3475ee89feb3942306e5d6d5c710273fefc080); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0xB7e24412126ad6A2Ce19cbd79FD11B68e7F30cf6); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"60a0604052348015600e575f80fd5b503060805260805161268d6100635f395f81816101970152818161031b0152818161038901528181610466015281816104c90152818161053b0152818161070301528181610767015261089e015261268d5ff3fe608060405234801561000f575f80fd5b506004361061009f575f3560e01c806379ba430511610072578063bb7bb45a11610058578063bb7bb45a14610151578063dad601be14610159578063e388df491461016c575f80fd5b806379ba43051461011e578063b21a249414610131575f80fd5b80630d1e0432146100a35780631cb5642f146100be578063358116b9146100f65780634e6c280e1461010b575b5f80fd5b6100ab61017f565b6040519081526020015b60405180910390f35b6100d16100cc366004612126565b610301565b60408051938452602084019290925267ffffffffffffffff16908201526060016100b5565b610109610104366004612150565b610372565b005b6100d1610119366004612126565b61044c565b6100d161012c366004612167565b6104af565b61014461013f366004612150565b610522565b6040516100b591906121c7565b6100ab6106eb565b6100ab6101673660046121d9565b61074f565b6100d161017a366004612167565b610884565b5f73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036101d6576040516309e815f560e01b815260040160405180910390fd5b5f6101df6108e8565b905060015f6101f15f19600384610967565b90505b5f1981146102fa57600283600201828154811061021357610213612261565b905f5260205f2090600502015f0154036102e6576102e3826102de85600201848154811061024357610243612261565b905f5260205f209060050201600401805461025d90612275565b80601f016020809104026020016040519081016040528092919081815260200182805461028990612275565b80156102d45780601f106102ab576101008083540402835291602001916102d4565b820191905f5260205f20905b8154815290600101906020018083116102b757829003601f168201915b5050505050610a6e565b610a89565b91505b6102f38160036001610967565b90506101f4565b5091505090565b5f808073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016300361035a576040516309e815f560e01b815260040160405180910390fd5b6103648585610aeb565b9250925092505b9250925092565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036103c8576040516309e815f560e01b815260040160405180910390fd5b610414337f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e78360405160200161040091815260200190565b604051602081830303815290604052610b19565b61041d81610c13565b604051819033907f94041431cee1a4c20be97117d396e73eb1e601e124b48fbc5dc07397c31d5f8a905f90a350565b5f808073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036104a5576040516309e815f560e01b815260040160405180910390fd5b6103648585610df0565b5f808073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610508576040516309e815f560e01b815260040160405180910390fd5b610513868686610e00565b92509250925093509350939050565b606073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016300361057a576040516309e815f560e01b815260040160405180910390fd5b5f6105836108e8565b600281015490915083106105cb576040517f029c6c35000000000000000000000000000000000000000000000000000000008152600481018490526024015b60405180910390fd5b8060020183815481106105e0576105e0612261565b5f918252602082206001600590920201015467ffffffffffffffff169003610637576040517f029c6c35000000000000000000000000000000000000000000000000000000008152600481018490526024016105c2565b80600201838154811061064c5761064c612261565b905f5260205f209060050201600401805461066690612275565b80601f016020809104026020016040519081016040528092919081815260200182805461069290612275565b80156106dd5780601f106106b4576101008083540402835291602001916106dd565b820191905f5260205f20905b8154815290600101906020018083116106c057829003601f168201915b50505050509150505b919050565b5f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610742576040516309e815f560e01b815260040160405180910390fd5b61074a610e2e565b905090565b5f73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036107a6576040516309e815f560e01b815260040160405180910390fd5b6107e2337ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f898787878760405160200161040094939291906122a7565b5f6107ee868585610e82565b90505f610831828787878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610f2d92505050565b6040805184815267ffffffffffffffff89166020820152919250829133917fa9c7784142e419f4660627c0c145b3873c2a415ce062f5c81bc19e6850f873d8910160405180910390a39695505050505050565b5f808073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036108dd576040516309e815f560e01b815260040160405180910390fd5b610513868686611047565b5f807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0061093660017f2f8f8ecf1b7a1a3ceda8d15a9a2247a2377b3434535a87f1728021c13fec2e71612301565b60405160200161094891815260200190565b60408051601f1981840301815291905280516020909101201692915050565b5f6007831681036109a4576040517fbf3cad0b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6109ad6108e8565b60028101549091505f036109c5575f19915050610a67565b5f5f1986146109f8578160020186815481106109e3576109e3612261565b905f5260205f209060050201600301546109fb565b81545b90506002846002811115610a1157610a11612314565b03610a3357610a2a82610a248484611056565b876110d1565b92505050610a67565b6001846002811115610a4757610a47612314565b03610a5757610a2a828287611129565b610a628282876110d1565b925050505b9392505050565b5f81806020019051810190610a839190612328565b92915050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d8480610ace86868686611196565b915091505f610add83836112b5565b9a9950505050505050505050565b5f805f80610afb5f19878761131b565b90505f80610b0883611410565b939650945091925050509250925092565b5f3073ffffffffffffffffffffffffffffffffffffffff1663d09edf316040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b63573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b87919061233f565b6040517f59f89dda00000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff8216906359f89dda90610be090879087908790600401612372565b5f604051808303815f87803b158015610bf7575f80fd5b505af1158015610c09573d5f803e3d5ffd5b5050505050505050565b5f610c1c6108e8565b60028101549091508210610c5f576040517f029c6c35000000000000000000000000000000000000000000000000000000008152600481018390526024016105c2565b5f816002018381548110610c7557610c75612261565b5f9182526020822060016005909202019081015490925067ffffffffffffffff169003610cd1576040517f029c6c35000000000000000000000000000000000000000000000000000000008152600481018490526024016105c2565b60018101544267ffffffffffffffff90911611610d1d576040517f99fa8c69000000000000000000000000000000000000000000000000000000008152600481018490526024016105c2565b600281015460038201545f198214610d5d5780846002018381548110610d4557610d45612261565b905f5260205f20906005020160030181905550610d61565b8084555b5f198114610d975781846002018281548110610d7f57610d7f612261565b905f5260205f20906005020160020181905550610d9f565b600184018290555b5f196002840181905560038401556001830180547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001690555f808455610de99060048501906120ca565b5050505050565b5f805f80610afb5f198787610967565b5f805f80610e0f878787610967565b90505f80610e1c83611410565b939a9099509297509195505050505050565b5f610e376108e8565b600201545f03610e4657505f90565b60065f80610e575f19846001610967565b90505b5f1981146102fa5781610e6c816123a6565b925050610e7b81846001610967565b9050610e5a565b5f7f4548e57ae2f1604df75a3d17fecaff7dd11ad7a93d9f8a0dc05e7144f46f3f7c8403610ef857610ef0610eeb84848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610a6e92505050565b61146e565b506002610a67565b6040517ff17c1d46000000000000000000000000000000000000000000000000000000008152600481018590526024016105c2565b5f428367ffffffffffffffff1611610f83576040517fc0851c8a00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff841660048201524260248201526044016105c2565b5f610f8c6108e8565b9050610f978161156e565b60028101805460019081018083555f928352610fb39190612301565b90505f826002018281548110610fcb57610fcb612261565b5f91825260209091206005909102018781556001810180547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff8916179055905060048101611023868261241b565b505f1960028201819055600382015561103d838388611617565b5095945050505050565b5f805f80610e0f87878761131b565b5f5b5f19821415801561109a57504283600201838154811061107a5761107a612261565b5f91825260209091206001600590920201015467ffffffffffffffff1611155b156110cb578260020182815481106110b4576110b4612261565b905f5260205f209060050201600301549150611058565b50919050565b5f5b5f19831461111f575f8460020184815481106110f1576110f1612261565b905f5260205f209060050201905082815f0154165f146111145783915050610a67565b6003015492506110d3565b505f199392505050565b5f5b5f19831461111f575f84600201848154811061114957611149612261565b5f918252602090912060059091020160018101549091504267ffffffffffffffff9091161115611179575061111f565b805483161561118b5783915050610a67565b60030154925061112b565b5f80851584151780156111ae575f92505f91506112ab565b6111b884876124d7565b91505f6111c488611761565b90505f6111d087611761565b90505f6111dd83836117c2565b5090505f6f0785ee10d5da46d900f436a000000000821115611212576f0785ee10d5da46d900f436a000000000820491506025015b670de0b6b3a764000082111561123357670de0b6b3a7640000820491506012015b633b9aca0082111561124c57633b9aca00820491506009015b61271082111561126157612710820491506004015b811561127557600a82049150600101611261565b61127f81876124d7565b95506112a18b8a61129b878761129687600a6125f2565b6117de565b896118c3565b9097509550505050505b5094509492505050565b5f805f6112c285856119cf565b91509150801580156112d2575081155b15611313576040517f8eba4d0700000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016105c2565b509392505050565b5f600783168103611358576040517fbf3cad0b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6113616108e8565b60028101549091505f03611379575f19915050610a67565b5f5f1986146113ac5781600201868154811061139757611397612261565b905f5260205f209060050201600201546113b2565b81600101545b905060018460028111156113c8576113c8612314565b036113e157610a2a826113db8484611ad6565b87611b4a565b60028460028111156113f5576113f5612314565b0361140557610a2a828287611b98565b610a62828287611b4a565b5f805f19830361142457505f928392509050565b5f61142d6108e8565b600201848154811061144157611441612261565b5f91825260209091206005909102018054600190910154909567ffffffffffffffff909116945092505050565b611478815f611c04565b156114af576040517f018d151200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6114b930611c54565b90505f6114c7600183611cfe565b90506114d38382611d22565b1561150d576040517f06c32712000000000000000000000000000000000000000000000000000000008152600481018490526024016105c2565b5f61152261151c84600a6125fd565b5f611cfe565b905061152e8482611d71565b15611568576040517fd24a8af1000000000000000000000000000000000000000000000000000000008152600481018590526024016105c2565b50505050565b60028101541561157b5750565b6002810180546001018082555f8281529190829061159b5761159b612261565b5f9182526020909120600160059092020181815590810180547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff161790555f1960028201819055600382015590506115fc611dc0565b5f808052600484016020526040902055505f19600590910155565b5f83600201838154811061162d5761162d612261565b905f5260205f20906005020190505f846001015490505b5f198114610de9578267ffffffffffffffff1685600201828154811061166c5761166c612261565b5f91825260209091206001600590920201015467ffffffffffffffff1611611735575f8560020182815481106116a4576116a4612261565b905f5260205f209060050201600301549050848660020183815481106116cc576116cc612261565b5f918252602090912060036005909202018101919091556002840183905583018190555f198114611725578486600201828154811061170d5761170d612261565b905f5260205f2090600502016002018190555061172d565b600186018590555b505050505050565b84600201818154811061174a5761174a612261565b905f5260205f209060050201600201549050611644565b5f808212156117be577f800000000000000000000000000000000000000000000000000000000000000082036117b857507f8000000000000000000000000000000000000000000000000000000000000000919050565b505f0390565b5090565b5f805f1983850993909202808410938190039390930393915050565b5f805f6117eb86866117c2565b91509150815f0361180f57838181611805576118056124fe565b0492505050610a67565b838210611859576040517f6c59da120000000000000000000000000000000000000000000000000000000081526004810187905260248101869052604481018590526064016105c2565b5f84868809600186198101871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103025f82900382900490920185841190960395909502919093039390930492909217029150509392505050565b5f805f858718121561198d577f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84111561197a576119227f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600161260b565b840361195257507f80000000000000000000000000000000000000000000000000000000000000009050816119c6565b61195d600a8561261e565b6119669061263d565b6119718460016124d7565b915091506119c6565b6119838461263d565b83915091506119c6565b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8411156119c057611966600a8561261e565b50829050815b94509492505050565b5f601b83900b8314838382611a33577d90e40fbeea1d3a4abc8955e946fe31cdcf66f634e1000000000000000000860515611a1357620186a0860595506005850194505b8586601b0b14611a2e57600a86059550846001019450611a13565b611a49565b855f03611a4957505f925060019150611acf9050565b848560030b14611aa5575f851215611a6957505f9250829150611acf9050565b6040517fd556b11100000000000000000000000000000000000000000000000000000000815260048101839052602481018290526044016105c2565b50507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841660e084901b1791505b9250929050565b5f5b5f198214158015611b19575042836002018381548110611afa57611afa612261565b5f91825260209091206001600590920201015467ffffffffffffffff16115b156110cb57826002018281548110611b3357611b33612261565b905f5260205f209060050201600201549150611ad8565b5f5b5f19831461111f575f846002018481548110611b6a57611b6a612261565b905f5260205f209060050201905082815f0154165f14611b8d5783915050610a67565b600201549250611b4c565b5f5b5f19831461111f575f846002018481548110611bb857611bb8612261565b5f918252602090912060059091020160018101549091504267ffffffffffffffff90911611611be7575061111f565b8054831615611bf95783915050610a67565b600201549250611b9a565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d611c4784848484611e43565b1215979650505050505050565b5f611c5d611f17565b6040517f54636d2b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316600482015273200e12d10bb0c5e4a17e7018f0f1161919bb9389906354636d2b906024016020604051808303815f875af1158015611cda573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a83919061266d565b5f805f611d0b8585611fbd565b91509150611d19828261201f565b95945050505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d611d6584848484611e43565b13979650505050505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d611db484848484611e43565b12979650505050505050565b5f807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00611e0e60017fb750591399365444a618527b69a54ce09476c8bde1ecff60f5aa1fe2b52605ff612301565b604051602001611e2091815260200190565b60408051808303601f190181529190528051602090910120166002015492915050565b5f8085158415178187128286121817858414178015611e6857868592509250506119c6565b505f85841315611e7c575092949193919260015b8386035f8112604c8213178015611eaf578215611ea1575f89945094505050506119c6565b885f945094505050506119c6565b600a82900a8981028a828281611ec757611ec76124fe565b0514611ef3578415611ee3575f8b9650965050505050506119c6565b8a5f9650965050505050506119c6565b8415611f085788965094506119c69350505050565b95508794506119c69350505050565b73200e12d10bb0c5e4a17e7018f0f1161919bb93893b1580611f6e575073200e12d10bb0c5e4a17e7018f0f1161919bb93893f7f1de7d717526cba131d684e312dedbf0852adef9cced9e36798ae4937f7145d4114155b15611fbb576040517f73e6d7b300000000000000000000000000000000000000000000000000000000815273200e12d10bb0c5e4a17e7018f0f1161919bb938960048201526024016105c2565b565b5f805f805f611fcc8787612071565b92509250925080612013576040517fc471796600000000000000000000000000000000000000000000000000000000815260048101849052602481018390526044016105c2565b50909590945092505050565b5f805f61202c85856119cf565b9150915080611313576040517f22c9f7bb00000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016105c2565b5f808060ff841681037f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8611156120bc57600a860460018201600a88065f149350935093505061036b565b85935091506001905061036b565b5080546120d690612275565b5f825580601f106120e5575050565b601f0160209004905f5260205f20908101906121019190612104565b50565b5b808211156117be575f8155600101612105565b8035600381106106e6575f80fd5b5f8060408385031215612137575f80fd5b8235915061214760208401612118565b90509250929050565b5f60208284031215612160575f80fd5b5035919050565b5f805f60608486031215612179575f80fd5b833592506020840135915061219060408501612118565b90509250925092565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610a676020830184612199565b5f805f80606085870312156121ec575f80fd5b84359350602085013567ffffffffffffffff808216821461220b575f80fd5b90935060408601359080821115612220575f80fd5b818701915087601f830112612233575f80fd5b813581811115612241575f80fd5b886020828501011115612252575f80fd5b95989497505060200194505050565b634e487b7160e01b5f52603260045260245ffd5b600181811c9082168061228957607f821691505b6020821081036110cb57634e487b7160e01b5f52602260045260245ffd5b84815267ffffffffffffffff8416602082015260606040820152816060820152818360808301375f818301608090810191909152601f909201601f191601019392505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610a8357610a836122ed565b634e487b7160e01b5f52602160045260245ffd5b5f60208284031215612338575f80fd5b5051919050565b5f6020828403121561234f575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610a67575f80fd5b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f611d196060830184612199565b5f5f1982036123b7576123b76122ed565b5060010190565b634e487b7160e01b5f52604160045260245ffd5b601f82111561241657805f5260205f20601f840160051c810160208510156123f75750805b601f840160051c820191505b81811015610de9575f8155600101612403565b505050565b815167ffffffffffffffff811115612435576124356123be565b612449816124438454612275565b846123d2565b602080601f83116001811461247c575f84156124655750858301515b5f19600386901b1c1916600185901b17855561172d565b5f85815260208120601f198616915b828110156124aa5788860151825594840194600190910190840161248b565b50858210156124c757878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b8082018281125f8312801582168215821617156124f6576124f66122ed565b505092915050565b634e487b7160e01b5f52601260045260245ffd5b600181815b8085111561254c57815f1904821115612532576125326122ed565b8085161561253f57918102915b93841c9390800290612517565b509250929050565b5f8261256257506001610a83565b8161256e57505f610a83565b8160018114612584576002811461258e576125aa565b6001915050610a83565b60ff84111561259f5761259f6122ed565b50506001821b610a83565b5060208310610133831016604e8410600b84101617156125cd575081810a610a83565b6125d78383612512565b805f19048211156125ea576125ea6122ed565b029392505050565b5f610a678383612554565b5f610a6760ff841683612554565b80820180821115610a8357610a836122ed565b5f8261263857634e487b7160e01b5f52601260045260245ffd5b500490565b5f7f800000000000000000000000000000000000000000000000000000000000000082036117b8576117b86122ed565b5f6020828403121561267d575f80fd5b815160ff81168114610a67575f80fd"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b506004361061009f575f3560e01c806379ba430511610072578063bb7bb45a11610058578063bb7bb45a14610151578063dad601be14610159578063e388df491461016c575f80fd5b806379ba43051461011e578063b21a249414610131575f80fd5b80630d1e0432146100a35780631cb5642f146100be578063358116b9146100f65780634e6c280e1461010b575b5f80fd5b6100ab61017f565b6040519081526020015b60405180910390f35b6100d16100cc366004612126565b610301565b60408051938452602084019290925267ffffffffffffffff16908201526060016100b5565b610109610104366004612150565b610372565b005b6100d1610119366004612126565b61044c565b6100d161012c366004612167565b6104af565b61014461013f366004612150565b610522565b6040516100b591906121c7565b6100ab6106eb565b6100ab6101673660046121d9565b61074f565b6100d161017a366004612167565b610884565b5f73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf61630036101d6576040516309e815f560e01b815260040160405180910390fd5b5f6101df6108e8565b905060015f6101f15f19600384610967565b90505b5f1981146102fa57600283600201828154811061021357610213612261565b905f5260205f2090600502015f0154036102e6576102e3826102de85600201848154811061024357610243612261565b905f5260205f209060050201600401805461025d90612275565b80601f016020809104026020016040519081016040528092919081815260200182805461028990612275565b80156102d45780601f106102ab576101008083540402835291602001916102d4565b820191905f5260205f20905b8154815290600101906020018083116102b757829003601f168201915b5050505050610a6e565b610a89565b91505b6102f38160036001610967565b90506101f4565b5091505090565b5f808073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf616300361035a576040516309e815f560e01b815260040160405180910390fd5b6103648585610aeb565b9250925092505b9250925092565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf61630036103c8576040516309e815f560e01b815260040160405180910390fd5b610414337f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e78360405160200161040091815260200190565b604051602081830303815290604052610b19565b61041d81610c13565b604051819033907f94041431cee1a4c20be97117d396e73eb1e601e124b48fbc5dc07397c31d5f8a905f90a350565b5f808073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf61630036104a5576040516309e815f560e01b815260040160405180910390fd5b6103648585610df0565b5f808073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf6163003610508576040516309e815f560e01b815260040160405180910390fd5b610513868686610e00565b92509250925093509350939050565b606073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf616300361057a576040516309e815f560e01b815260040160405180910390fd5b5f6105836108e8565b600281015490915083106105cb576040517f029c6c35000000000000000000000000000000000000000000000000000000008152600481018490526024015b60405180910390fd5b8060020183815481106105e0576105e0612261565b5f918252602082206001600590920201015467ffffffffffffffff169003610637576040517f029c6c35000000000000000000000000000000000000000000000000000000008152600481018490526024016105c2565b80600201838154811061064c5761064c612261565b905f5260205f209060050201600401805461066690612275565b80601f016020809104026020016040519081016040528092919081815260200182805461069290612275565b80156106dd5780601f106106b4576101008083540402835291602001916106dd565b820191905f5260205f20905b8154815290600101906020018083116106c057829003601f168201915b50505050509150505b919050565b5f73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf6163003610742576040516309e815f560e01b815260040160405180910390fd5b61074a610e2e565b905090565b5f73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf61630036107a6576040516309e815f560e01b815260040160405180910390fd5b6107e2337ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f898787878760405160200161040094939291906122a7565b5f6107ee868585610e82565b90505f610831828787878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610f2d92505050565b6040805184815267ffffffffffffffff89166020820152919250829133917fa9c7784142e419f4660627c0c145b3873c2a415ce062f5c81bc19e6850f873d8910160405180910390a39695505050505050565b5f808073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf61630036108dd576040516309e815f560e01b815260040160405180910390fd5b610513868686611047565b5f807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0061093660017f2f8f8ecf1b7a1a3ceda8d15a9a2247a2377b3434535a87f1728021c13fec2e71612301565b60405160200161094891815260200190565b60408051601f1981840301815291905280516020909101201692915050565b5f6007831681036109a4576040517fbf3cad0b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6109ad6108e8565b60028101549091505f036109c5575f19915050610a67565b5f5f1986146109f8578160020186815481106109e3576109e3612261565b905f5260205f209060050201600301546109fb565b81545b90506002846002811115610a1157610a11612314565b03610a3357610a2a82610a248484611056565b876110d1565b92505050610a67565b6001846002811115610a4757610a47612314565b03610a5757610a2a828287611129565b610a628282876110d1565b925050505b9392505050565b5f81806020019051810190610a839190612328565b92915050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d8480610ace86868686611196565b915091505f610add83836112b5565b9a9950505050505050505050565b5f805f80610afb5f19878761131b565b90505f80610b0883611410565b939650945091925050509250925092565b5f3073ffffffffffffffffffffffffffffffffffffffff1663d09edf316040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b63573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b87919061233f565b6040517f59f89dda00000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff8216906359f89dda90610be090879087908790600401612372565b5f604051808303815f87803b158015610bf7575f80fd5b505af1158015610c09573d5f803e3d5ffd5b5050505050505050565b5f610c1c6108e8565b60028101549091508210610c5f576040517f029c6c35000000000000000000000000000000000000000000000000000000008152600481018390526024016105c2565b5f816002018381548110610c7557610c75612261565b5f9182526020822060016005909202019081015490925067ffffffffffffffff169003610cd1576040517f029c6c35000000000000000000000000000000000000000000000000000000008152600481018490526024016105c2565b60018101544267ffffffffffffffff90911611610d1d576040517f99fa8c69000000000000000000000000000000000000000000000000000000008152600481018490526024016105c2565b600281015460038201545f198214610d5d5780846002018381548110610d4557610d45612261565b905f5260205f20906005020160030181905550610d61565b8084555b5f198114610d975781846002018281548110610d7f57610d7f612261565b905f5260205f20906005020160020181905550610d9f565b600184018290555b5f196002840181905560038401556001830180547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001690555f808455610de99060048501906120ca565b5050505050565b5f805f80610afb5f198787610967565b5f805f80610e0f878787610967565b90505f80610e1c83611410565b939a9099509297509195505050505050565b5f610e376108e8565b600201545f03610e4657505f90565b60065f80610e575f19846001610967565b90505b5f1981146102fa5781610e6c816123a6565b925050610e7b81846001610967565b9050610e5a565b5f7f4548e57ae2f1604df75a3d17fecaff7dd11ad7a93d9f8a0dc05e7144f46f3f7c8403610ef857610ef0610eeb84848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610a6e92505050565b61146e565b506002610a67565b6040517ff17c1d46000000000000000000000000000000000000000000000000000000008152600481018590526024016105c2565b5f428367ffffffffffffffff1611610f83576040517fc0851c8a00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff841660048201524260248201526044016105c2565b5f610f8c6108e8565b9050610f978161156e565b60028101805460019081018083555f928352610fb39190612301565b90505f826002018281548110610fcb57610fcb612261565b5f91825260209091206005909102018781556001810180547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff8916179055905060048101611023868261241b565b505f1960028201819055600382015561103d838388611617565b5095945050505050565b5f805f80610e0f87878761131b565b5f5b5f19821415801561109a57504283600201838154811061107a5761107a612261565b5f91825260209091206001600590920201015467ffffffffffffffff1611155b156110cb578260020182815481106110b4576110b4612261565b905f5260205f209060050201600301549150611058565b50919050565b5f5b5f19831461111f575f8460020184815481106110f1576110f1612261565b905f5260205f209060050201905082815f0154165f146111145783915050610a67565b6003015492506110d3565b505f199392505050565b5f5b5f19831461111f575f84600201848154811061114957611149612261565b5f918252602090912060059091020160018101549091504267ffffffffffffffff9091161115611179575061111f565b805483161561118b5783915050610a67565b60030154925061112b565b5f80851584151780156111ae575f92505f91506112ab565b6111b884876124d7565b91505f6111c488611761565b90505f6111d087611761565b90505f6111dd83836117c2565b5090505f6f0785ee10d5da46d900f436a000000000821115611212576f0785ee10d5da46d900f436a000000000820491506025015b670de0b6b3a764000082111561123357670de0b6b3a7640000820491506012015b633b9aca0082111561124c57633b9aca00820491506009015b61271082111561126157612710820491506004015b811561127557600a82049150600101611261565b61127f81876124d7565b95506112a18b8a61129b878761129687600a6125f2565b6117de565b896118c3565b9097509550505050505b5094509492505050565b5f805f6112c285856119cf565b91509150801580156112d2575081155b15611313576040517f8eba4d0700000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016105c2565b509392505050565b5f600783168103611358576040517fbf3cad0b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6113616108e8565b60028101549091505f03611379575f19915050610a67565b5f5f1986146113ac5781600201868154811061139757611397612261565b905f5260205f209060050201600201546113b2565b81600101545b905060018460028111156113c8576113c8612314565b036113e157610a2a826113db8484611ad6565b87611b4a565b60028460028111156113f5576113f5612314565b0361140557610a2a828287611b98565b610a62828287611b4a565b5f805f19830361142457505f928392509050565b5f61142d6108e8565b600201848154811061144157611441612261565b5f91825260209091206005909102018054600190910154909567ffffffffffffffff909116945092505050565b611478815f611c04565b156114af576040517f018d151200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6114b930611c54565b90505f6114c7600183611cfe565b90506114d38382611d22565b1561150d576040517f06c32712000000000000000000000000000000000000000000000000000000008152600481018490526024016105c2565b5f61152261151c84600a6125fd565b5f611cfe565b905061152e8482611d71565b15611568576040517fd24a8af1000000000000000000000000000000000000000000000000000000008152600481018590526024016105c2565b50505050565b60028101541561157b5750565b6002810180546001018082555f8281529190829061159b5761159b612261565b5f9182526020909120600160059092020181815590810180547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff161790555f1960028201819055600382015590506115fc611dc0565b5f808052600484016020526040902055505f19600590910155565b5f83600201838154811061162d5761162d612261565b905f5260205f20906005020190505f846001015490505b5f198114610de9578267ffffffffffffffff1685600201828154811061166c5761166c612261565b5f91825260209091206001600590920201015467ffffffffffffffff1611611735575f8560020182815481106116a4576116a4612261565b905f5260205f209060050201600301549050848660020183815481106116cc576116cc612261565b5f918252602090912060036005909202018101919091556002840183905583018190555f198114611725578486600201828154811061170d5761170d612261565b905f5260205f2090600502016002018190555061172d565b600186018590555b505050505050565b84600201818154811061174a5761174a612261565b905f5260205f209060050201600201549050611644565b5f808212156117be577f800000000000000000000000000000000000000000000000000000000000000082036117b857507f8000000000000000000000000000000000000000000000000000000000000000919050565b505f0390565b5090565b5f805f1983850993909202808410938190039390930393915050565b5f805f6117eb86866117c2565b91509150815f0361180f57838181611805576118056124fe565b0492505050610a67565b838210611859576040517f6c59da120000000000000000000000000000000000000000000000000000000081526004810187905260248101869052604481018590526064016105c2565b5f84868809600186198101871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103025f82900382900490920185841190960395909502919093039390930492909217029150509392505050565b5f805f858718121561198d577f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84111561197a576119227f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600161260b565b840361195257507f80000000000000000000000000000000000000000000000000000000000000009050816119c6565b61195d600a8561261e565b6119669061263d565b6119718460016124d7565b915091506119c6565b6119838461263d565b83915091506119c6565b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8411156119c057611966600a8561261e565b50829050815b94509492505050565b5f601b83900b8314838382611a33577d90e40fbeea1d3a4abc8955e946fe31cdcf66f634e1000000000000000000860515611a1357620186a0860595506005850194505b8586601b0b14611a2e57600a86059550846001019450611a13565b611a49565b855f03611a4957505f925060019150611acf9050565b848560030b14611aa5575f851215611a6957505f9250829150611acf9050565b6040517fd556b11100000000000000000000000000000000000000000000000000000000815260048101839052602481018290526044016105c2565b50507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841660e084901b1791505b9250929050565b5f5b5f198214158015611b19575042836002018381548110611afa57611afa612261565b5f91825260209091206001600590920201015467ffffffffffffffff16115b156110cb57826002018281548110611b3357611b33612261565b905f5260205f209060050201600201549150611ad8565b5f5b5f19831461111f575f846002018481548110611b6a57611b6a612261565b905f5260205f209060050201905082815f0154165f14611b8d5783915050610a67565b600201549250611b4c565b5f5b5f19831461111f575f846002018481548110611bb857611bb8612261565b5f918252602090912060059091020160018101549091504267ffffffffffffffff90911611611be7575061111f565b8054831615611bf95783915050610a67565b600201549250611b9a565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d611c4784848484611e43565b1215979650505050505050565b5f611c5d611f17565b6040517f54636d2b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316600482015273200e12d10bb0c5e4a17e7018f0f1161919bb9389906354636d2b906024016020604051808303815f875af1158015611cda573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a83919061266d565b5f805f611d0b8585611fbd565b91509150611d19828261201f565b95945050505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d611d6584848484611e43565b13979650505050505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d611db484848484611e43565b12979650505050505050565b5f807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00611e0e60017fb750591399365444a618527b69a54ce09476c8bde1ecff60f5aa1fe2b52605ff612301565b604051602001611e2091815260200190565b60408051808303601f190181529190528051602090910120166002015492915050565b5f8085158415178187128286121817858414178015611e6857868592509250506119c6565b505f85841315611e7c575092949193919260015b8386035f8112604c8213178015611eaf578215611ea1575f89945094505050506119c6565b885f945094505050506119c6565b600a82900a8981028a828281611ec757611ec76124fe565b0514611ef3578415611ee3575f8b9650965050505050506119c6565b8a5f9650965050505050506119c6565b8415611f085788965094506119c69350505050565b95508794506119c69350505050565b73200e12d10bb0c5e4a17e7018f0f1161919bb93893b1580611f6e575073200e12d10bb0c5e4a17e7018f0f1161919bb93893f7f1de7d717526cba131d684e312dedbf0852adef9cced9e36798ae4937f7145d4114155b15611fbb576040517f73e6d7b300000000000000000000000000000000000000000000000000000000815273200e12d10bb0c5e4a17e7018f0f1161919bb938960048201526024016105c2565b565b5f805f805f611fcc8787612071565b92509250925080612013576040517fc471796600000000000000000000000000000000000000000000000000000000815260048101849052602481018390526044016105c2565b50909590945092505050565b5f805f61202c85856119cf565b9150915080611313576040517f22c9f7bb00000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016105c2565b5f808060ff841681037f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8611156120bc57600a860460018201600a88065f149350935093505061036b565b85935091506001905061036b565b5080546120d690612275565b5f825580601f106120e5575050565b601f0160209004905f5260205f20908101906121019190612104565b50565b5b808211156117be575f8155600101612105565b8035600381106106e6575f80fd5b5f8060408385031215612137575f80fd5b8235915061214760208401612118565b90509250929050565b5f60208284031215612160575f80fd5b5035919050565b5f805f60608486031215612179575f80fd5b833592506020840135915061219060408501612118565b90509250925092565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610a676020830184612199565b5f805f80606085870312156121ec575f80fd5b84359350602085013567ffffffffffffffff808216821461220b575f80fd5b90935060408601359080821115612220575f80fd5b818701915087601f830112612233575f80fd5b813581811115612241575f80fd5b886020828501011115612252575f80fd5b95989497505060200194505050565b634e487b7160e01b5f52603260045260245ffd5b600181811c9082168061228957607f821691505b6020821081036110cb57634e487b7160e01b5f52602260045260245ffd5b84815267ffffffffffffffff8416602082015260606040820152816060820152818360808301375f818301608090810191909152601f909201601f191601019392505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610a8357610a836122ed565b634e487b7160e01b5f52602160045260245ffd5b5f60208284031215612338575f80fd5b5051919050565b5f6020828403121561234f575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610a67575f80fd5b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f611d196060830184612199565b5f5f1982036123b7576123b76122ed565b5060010190565b634e487b7160e01b5f52604160045260245ffd5b601f82111561241657805f5260205f20601f840160051c810160208510156123f75750805b601f840160051c820191505b81811015610de9575f8155600101612403565b505050565b815167ffffffffffffffff811115612435576124356123be565b612449816124438454612275565b846123d2565b602080601f83116001811461247c575f84156124655750858301515b5f19600386901b1c1916600185901b17855561172d565b5f85815260208120601f198616915b828110156124aa5788860151825594840194600190910190840161248b565b50858210156124c757878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b8082018281125f8312801582168215821617156124f6576124f66122ed565b505092915050565b634e487b7160e01b5f52601260045260245ffd5b600181815b8085111561254c57815f1904821115612532576125326122ed565b8085161561253f57918102915b93841c9390800290612517565b509250929050565b5f8261256257506001610a83565b8161256e57505f610a83565b8160018114612584576002811461258e576125aa565b6001915050610a83565b60ff84111561259f5761259f6122ed565b50506001821b610a83565b5060208310610133831016604e8410600b84101617156125cd575081810a610a83565b6125d78383612512565b805f19048211156125ea576125ea6122ed565b029392505050565b5f610a678383612554565b5f610a6760ff841683612554565b80820180821115610a8357610a836122ed565b5f8261263857634e487b7160e01b5f52601260045260245ffd5b500490565b5f7f800000000000000000000000000000000000000000000000000000000000000082036117b8576117b86122ed565b5f6020828403121561267d575f80fd5b815160ff81168114610a67575f80fd"; diff --git a/src/generated/0_1_7/StoxOffchainAssetReceiptVaultAuthorizerV1.pointers.sol b/src/generated/0_1_7/StoxOffchainAssetReceiptVaultAuthorizerV1.pointers.sol deleted file mode 100644 index e161c73a..00000000 --- a/src/generated/0_1_7/StoxOffchainAssetReceiptVaultAuthorizerV1.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0xf8a1d9b2fa068bae3c1a607434db48364a5cdab3020bd7e315ed2662a3b35b5f); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x2EA0d35d0B1F57C42e6130f298930228bCbFDe9b); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"6080604052348015600e575f80fd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b611746806100d65f395ff3fe608060405234801561000f575f80fd5b506004361061009f575f3560e01c8063439fab911161007257806391d148541161005857806391d1485414610168578063a217fddf146101cc578063d547741f146101d3575f80fd5b8063439fab911461014257806359f89dda14610155575f80fd5b806301ffc9a7146100a3578063248a9ca3146100cb5780632f2ff15d1461011a57806336568abe1461012f575b5f80fd5b6100b66100b13660046112aa565b6101e6565b60405190151581526020015b60405180910390f35b61010c6100d93660046112f0565b5f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b6040519081526020016100c2565b61012d610128366004611328565b6102d9565b005b61012d61013d366004611328565b610322565b61010c610150366004611449565b610380565b61012d610163366004611483565b6106a0565b6100b6610176366004611328565b5f9182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b61010c5f81565b61012d6101e1366004611328565b610a49565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f59f89dda00000000000000000000000000000000000000000000000000000000148061027857507fffffffff0000000000000000000000000000000000000000000000000000000082167f439fab9100000000000000000000000000000000000000000000000000000000145b806102c457507fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000145b806102d357506102d382610a8c565b92915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015461031281610b22565b61031c8383610b2f565b50505050565b73ffffffffffffffffffffffffffffffffffffffff81163314610371576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61037b8282610c4d565b505050565b5f8061038a610d29565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156103b65750825b90505f8267ffffffffffffffff1660011480156103d25750303b155b9050811580156103e0575080155b15610417576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156104785784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b5f8780602001905181019061048d91906114d8565b90505f61049982610d51565b90507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc381146104cb5796506106359050565b6105157ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f897fd6075ca92e18a15ce0e8ecaaae57a112072844045d11beeb264aac5f85e0daf26110f9565b61053f7fd6075ca92e18a15ce0e8ecaaae57a112072844045d11beeb264aac5f85e0daf2806110f9565b6105897f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e77fe25ff801c3c463dad5f8999289b7b43090e0f6f5039ae7c220cbb762fe8ff3736110f9565b6105b37fe25ff801c3c463dad5f8999289b7b43090e0f6f5039ae7c220cbb762fe8ff373806110f9565b6105e07fd6075ca92e18a15ce0e8ecaaae57a112072844045d11beeb264aac5f85e0daf2835f0151610b2f565b5061060e7fe25ff801c3c463dad5f8999289b7b43090e0f6f5039ae7c220cbb762fe8ff373835f0151610b2f565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc3975050505b83156106965784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a8214806106ed57507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a4882145b156109b6575f805f7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a850361074d575f848060200190518101906107319190611536565b9050805f01519350806020015192508060600151915050610779565b5f84806020019051810190610762919061162b565b805160208201516080909201519095509093509150505b80156109ae5773ffffffffffffffffffffffffffffffffffffffff83161580156107e6575073ffffffffffffffffffffffffffffffffffffffff82165f9081527f96f78a99f93d631b75bc050854c9b764642c10564e41ed27c197a36ddabb1df9602052604090205460ff165b80610853575073ffffffffffffffffffffffffffffffffffffffff8216158015610853575073ffffffffffffffffffffffffffffffffffffffff83165f9081527f3907f76fa0fb1e5d0f263c5c4fe4316026052cf960c55a1c768106d8b9701c10602052604090205460ff165b1561086057505050505050565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a851480156108d2575073ffffffffffffffffffffffffffffffffffffffff86165f9081527f6ba48721fcbb2613af13d8285fe9ee4a081f7995464037bb5ea27397912881d2602052604090205460ff165b8061094a57507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a488514801561094a575073ffffffffffffffffffffffffffffffffffffffff86165f9081527f29e42896fa6edf5a5d7ff0bcd00acffbece6eb6cc7b44d0807bfd84929cc6e1b602052604090205460ff165b1561095757505050505050565b6040517ffe720f7800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8085166004830152831660248201526044015b60405180910390fd5b505050505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915290205460ff1615610a1157505050565b8282826040517f3ae4063b0000000000000000000000000000000000000000000000000000000081526004016109a5939291906116ed565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020526040902060010154610a8281610b22565b61031c8383610c4d565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806102d357507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146102d3565b610b2c813361119a565b50565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020818152604080842073ffffffffffffffffffffffffffffffffffffffff8616855290915282205460ff16610c44575f8481526020828152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610be03390565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506102d3565b5f9150506102d3565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020818152604080842073ffffffffffffffffffffffffffffffffffffffff8616855290915282205460ff1615610c44575f8481526020828152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506102d3565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006102d3565b5f610d5a611244565b815173ffffffffffffffffffffffffffffffffffffffff16610da8576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610df27f50a07cb25d0d864370863300b20987dfdae089abad71b607faf639d09d0533917f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b6110f9565b610e1c7f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b806110f9565b610e667f3dd35eca0ca8a128757fa464a5dfa4ad6cc4853cad96dce4e90fdbea4f0a52e37f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d6110f9565b610e907f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d806110f9565b610eda7f54f0af3716c79b30b8c228679d31d77a1a5f526c16af3262730e0a8de4363fed7fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c6110f9565b610f047fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c806110f9565b610f4e7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8217f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc026110f9565b610f787f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02806110f9565b610fc27f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e9828697fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d36110f9565b610fec7fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3806110f9565b6110197f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b835f0151610b2f565b506110477f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d835f0151610b2f565b506110757fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c835f0151610b2f565b506110a37f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02835f0151610b2f565b506110d17fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3835f0151610b2f565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc392915050565b7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268005f611152845f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b5f85815260208490526040808220600101869055519192508491839187917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a450505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16611240576040517fe2517d3f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602481018390526044016109a5565b5050565b61124c61124e565b565b61125661128c565b61124c576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f611295610d29565b5468010000000000000000900460ff16919050565b5f602082840312156112ba575f80fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146112e9575f80fd5b9392505050565b5f60208284031215611300575f80fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff81168114610b2c575f80fd5b5f8060408385031215611339575f80fd5b82359150602083013561134b81611307565b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60405160a0810167ffffffffffffffff811182821017156113a6576113a6611356565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156113d5576113d5611356565b604052919050565b5f82601f8301126113ec575f80fd5b813567ffffffffffffffff81111561140657611406611356565b6114196020601f19601f840116016113ac565b81815284602083860101111561142d575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60208284031215611459575f80fd5b813567ffffffffffffffff81111561146f575f80fd5b61147b848285016113dd565b949350505050565b5f805f60608486031215611495575f80fd5b83356114a081611307565b925060208401359150604084013567ffffffffffffffff8111156114c2575f80fd5b6114ce868287016113dd565b9150509250925092565b5f602082840312156114e8575f80fd5b6040516020810181811067ffffffffffffffff8211171561150b5761150b611356565b604052825161151981611307565b81529392505050565b80518015158114611531575f80fd5b919050565b5f60808284031215611546575f80fd5b6040516080810181811067ffffffffffffffff8211171561156957611569611356565b604052825161157781611307565b8152602083015161158781611307565b6020820152604083810151908201526115a260608401611522565b60608201529392505050565b5f82601f8301126115bd575f80fd5b8151602067ffffffffffffffff8211156115d9576115d9611356565b8160051b6115e88282016113ac565b9283528481018201928281019087851115611601575f80fd5b83870192505b8483101561162057825182529183019190830190611607565b979650505050505050565b5f6020828403121561163b575f80fd5b815167ffffffffffffffff80821115611652575f80fd5b9083019060a08286031215611665575f80fd5b61166d611383565b825161167881611307565b8152602083015161168881611307565b602082015260408301518281111561169e575f80fd5b6116aa878286016115ae565b6040830152506060830151828111156116c1575f80fd5b6116cd878286016115ae565b6060830152506116df60808401611522565b608082015295945050505050565b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f82518060608401528060208501608085015e5f608082850101526080601f19601f83011684010191505094935050505056"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b506004361061009f575f3560e01c8063439fab911161007257806391d148541161005857806391d1485414610168578063a217fddf146101cc578063d547741f146101d3575f80fd5b8063439fab911461014257806359f89dda14610155575f80fd5b806301ffc9a7146100a3578063248a9ca3146100cb5780632f2ff15d1461011a57806336568abe1461012f575b5f80fd5b6100b66100b13660046112aa565b6101e6565b60405190151581526020015b60405180910390f35b61010c6100d93660046112f0565b5f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b6040519081526020016100c2565b61012d610128366004611328565b6102d9565b005b61012d61013d366004611328565b610322565b61010c610150366004611449565b610380565b61012d610163366004611483565b6106a0565b6100b6610176366004611328565b5f9182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b61010c5f81565b61012d6101e1366004611328565b610a49565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f59f89dda00000000000000000000000000000000000000000000000000000000148061027857507fffffffff0000000000000000000000000000000000000000000000000000000082167f439fab9100000000000000000000000000000000000000000000000000000000145b806102c457507fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000145b806102d357506102d382610a8c565b92915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015461031281610b22565b61031c8383610b2f565b50505050565b73ffffffffffffffffffffffffffffffffffffffff81163314610371576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61037b8282610c4d565b505050565b5f8061038a610d29565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156103b65750825b90505f8267ffffffffffffffff1660011480156103d25750303b155b9050811580156103e0575080155b15610417576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156104785784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b5f8780602001905181019061048d91906114d8565b90505f61049982610d51565b90507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc381146104cb5796506106359050565b6105157ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f897fd6075ca92e18a15ce0e8ecaaae57a112072844045d11beeb264aac5f85e0daf26110f9565b61053f7fd6075ca92e18a15ce0e8ecaaae57a112072844045d11beeb264aac5f85e0daf2806110f9565b6105897f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e77fe25ff801c3c463dad5f8999289b7b43090e0f6f5039ae7c220cbb762fe8ff3736110f9565b6105b37fe25ff801c3c463dad5f8999289b7b43090e0f6f5039ae7c220cbb762fe8ff373806110f9565b6105e07fd6075ca92e18a15ce0e8ecaaae57a112072844045d11beeb264aac5f85e0daf2835f0151610b2f565b5061060e7fe25ff801c3c463dad5f8999289b7b43090e0f6f5039ae7c220cbb762fe8ff373835f0151610b2f565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc3975050505b83156106965784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a8214806106ed57507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a4882145b156109b6575f805f7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a850361074d575f848060200190518101906107319190611536565b9050805f01519350806020015192508060600151915050610779565b5f84806020019051810190610762919061162b565b805160208201516080909201519095509093509150505b80156109ae5773ffffffffffffffffffffffffffffffffffffffff83161580156107e6575073ffffffffffffffffffffffffffffffffffffffff82165f9081527f96f78a99f93d631b75bc050854c9b764642c10564e41ed27c197a36ddabb1df9602052604090205460ff165b80610853575073ffffffffffffffffffffffffffffffffffffffff8216158015610853575073ffffffffffffffffffffffffffffffffffffffff83165f9081527f3907f76fa0fb1e5d0f263c5c4fe4316026052cf960c55a1c768106d8b9701c10602052604090205460ff165b1561086057505050505050565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a851480156108d2575073ffffffffffffffffffffffffffffffffffffffff86165f9081527f6ba48721fcbb2613af13d8285fe9ee4a081f7995464037bb5ea27397912881d2602052604090205460ff165b8061094a57507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a488514801561094a575073ffffffffffffffffffffffffffffffffffffffff86165f9081527f29e42896fa6edf5a5d7ff0bcd00acffbece6eb6cc7b44d0807bfd84929cc6e1b602052604090205460ff165b1561095757505050505050565b6040517ffe720f7800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8085166004830152831660248201526044015b60405180910390fd5b505050505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915290205460ff1615610a1157505050565b8282826040517f3ae4063b0000000000000000000000000000000000000000000000000000000081526004016109a5939291906116ed565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020526040902060010154610a8281610b22565b61031c8383610c4d565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806102d357507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146102d3565b610b2c813361119a565b50565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020818152604080842073ffffffffffffffffffffffffffffffffffffffff8616855290915282205460ff16610c44575f8481526020828152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610be03390565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506102d3565b5f9150506102d3565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020818152604080842073ffffffffffffffffffffffffffffffffffffffff8616855290915282205460ff1615610c44575f8481526020828152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506102d3565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006102d3565b5f610d5a611244565b815173ffffffffffffffffffffffffffffffffffffffff16610da8576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610df27f50a07cb25d0d864370863300b20987dfdae089abad71b607faf639d09d0533917f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b6110f9565b610e1c7f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b806110f9565b610e667f3dd35eca0ca8a128757fa464a5dfa4ad6cc4853cad96dce4e90fdbea4f0a52e37f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d6110f9565b610e907f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d806110f9565b610eda7f54f0af3716c79b30b8c228679d31d77a1a5f526c16af3262730e0a8de4363fed7fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c6110f9565b610f047fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c806110f9565b610f4e7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8217f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc026110f9565b610f787f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02806110f9565b610fc27f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e9828697fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d36110f9565b610fec7fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3806110f9565b6110197f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b835f0151610b2f565b506110477f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d835f0151610b2f565b506110757fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c835f0151610b2f565b506110a37f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02835f0151610b2f565b506110d17fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3835f0151610b2f565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc392915050565b7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268005f611152845f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b5f85815260208490526040808220600101869055519192508491839187917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a450505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16611240576040517fe2517d3f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602481018390526044016109a5565b5050565b61124c61124e565b565b61125661128c565b61124c576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f611295610d29565b5468010000000000000000900460ff16919050565b5f602082840312156112ba575f80fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146112e9575f80fd5b9392505050565b5f60208284031215611300575f80fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff81168114610b2c575f80fd5b5f8060408385031215611339575f80fd5b82359150602083013561134b81611307565b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60405160a0810167ffffffffffffffff811182821017156113a6576113a6611356565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156113d5576113d5611356565b604052919050565b5f82601f8301126113ec575f80fd5b813567ffffffffffffffff81111561140657611406611356565b6114196020601f19601f840116016113ac565b81815284602083860101111561142d575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60208284031215611459575f80fd5b813567ffffffffffffffff81111561146f575f80fd5b61147b848285016113dd565b949350505050565b5f805f60608486031215611495575f80fd5b83356114a081611307565b925060208401359150604084013567ffffffffffffffff8111156114c2575f80fd5b6114ce868287016113dd565b9150509250925092565b5f602082840312156114e8575f80fd5b6040516020810181811067ffffffffffffffff8211171561150b5761150b611356565b604052825161151981611307565b81529392505050565b80518015158114611531575f80fd5b919050565b5f60808284031215611546575f80fd5b6040516080810181811067ffffffffffffffff8211171561156957611569611356565b604052825161157781611307565b8152602083015161158781611307565b6020820152604083810151908201526115a260608401611522565b60608201529392505050565b5f82601f8301126115bd575f80fd5b8151602067ffffffffffffffff8211156115d9576115d9611356565b8160051b6115e88282016113ac565b9283528481018201928281019087851115611601575f80fd5b83870192505b8483101561162057825182529183019190830190611607565b979650505050505050565b5f6020828403121561163b575f80fd5b815167ffffffffffffffff80821115611652575f80fd5b9083019060a08286031215611665575f80fd5b61166d611383565b825161167881611307565b8152602083015161168881611307565b602082015260408301518281111561169e575f80fd5b6116aa878286016115ae565b6040830152506060830151828111156116c1575f80fd5b6116cd878286016115ae565b6060830152506116df60808401611522565b608082015295945050505050565b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f82518060608401528060208501608085015e5f608082850101526080601f19601f83011684010191505094935050505056"; diff --git a/src/generated/0_1_7/StoxOffchainAssetReceiptVaultBeaconSetDeployer.pointers.sol b/src/generated/0_1_7/StoxOffchainAssetReceiptVaultBeaconSetDeployer.pointers.sol deleted file mode 100644 index 31a0f1ac..00000000 --- a/src/generated/0_1_7/StoxOffchainAssetReceiptVaultBeaconSetDeployer.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x4637b099fe9279a8d4d88d9176ccadf92b20970eaf0b57b51997756d479ef43b); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x679ab223dAb158Ea93e1a4F49104DE436C58eAb8); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"60c060405234801561000f575f80fd5b5060408051606081018252738e4bdeec7ceb9570d440676345da1dce10329f5b808252732df5cfe6d688ef9ff1b7c59a499d254b1527b2866020830181905273d7f91c1c6e6e651ec3f1fd707af7cbb7526206e18385015292519192916100759061010b565b6001600160a01b03928316815291166020820152604001604051809103905ff0801580156100a5573d5f803e3d5ffd5b506001600160a01b0316608052604080820151825191519091906100c89061010b565b6001600160a01b03928316815291166020820152604001604051809103905ff0801580156100f8573d5f803e3d5ffd5b506001600160a01b031660a05250610118565b6104f780610fd783390190565b60805160a051610e926101455f395f818160c701526102d801525f8181607b01526102630152610e925ff3fe608060405234801561000f575f80fd5b506004361061004a575f3560e01c806301ffc9a71461004e5780632c9b7f40146100765780632f77a1c1146100c25780634904fab3146100e9575b5f80fd5b61006161005c3660046105d0565b6100fc565b60405190151581526020015b60405180910390f35b61009d7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161006d565b61009d7f000000000000000000000000000000000000000000000000000000000000000081565b61009d6100f736600461075e565b610194565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f4ae8243200000000000000000000000000000000000000000000000000000000148061018e57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b6020810151606001515f9073ffffffffffffffffffffffffffffffffffffffff1615610212576020820151606001516040517ffc47d97600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116600482015260240160405180910390fd5b815173ffffffffffffffffffffffffffffffffffffffff16610260576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7f000000000000000000000000000000000000000000000000000000000000000060405161028e906105c3565b73ffffffffffffffffffffffffffffffffffffffff90911681526040602082018190525f90820152606001604051809103905ff0801580156102d2573d5f803e3d5ffd5b5090505f7f0000000000000000000000000000000000000000000000000000000000000000604051610303906105c3565b73ffffffffffffffffffffffffffffffffffffffff90911681526040602082018190525f90820152606001604051809103905ff080158015610347573d5f803e3d5ffd5b506040805173ffffffffffffffffffffffffffffffffffffffff80841660208301529293507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc39285169163439fab9191016040516020818303038152906040526040518263ffffffff1660e01b81526004016103c39190610894565b6020604051808303815f875af11580156103df573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061040391906108a6565b1461043a576040517f0219069c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8184602001516060019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc38173ffffffffffffffffffffffffffffffffffffffff1663439fab91866040516020016104c491906108bd565b6040516020818303038152906040526040518263ffffffff1660e01b81526004016104ef9190610894565b6020604051808303815f875af115801561050b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061052f91906108a6565b14610566576040517f09c5931500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805133815273ffffffffffffffffffffffffffffffffffffffff838116602083015284168183015290517fa0d99d93cf7a5f89661fa0829369a7e4896e755871efe65440bab2429387d55b9181900360600190a19392505050565b61052f8061096383390190565b5f602082840312156105e0575f80fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461060f575f80fd5b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff8111828210171561066657610666610616565b60405290565b6040516080810167ffffffffffffffff8111828210171561066657610666610616565b803573ffffffffffffffffffffffffffffffffffffffff811681146106b2575f80fd5b919050565b5f82601f8301126106c6575f80fd5b813567ffffffffffffffff808211156106e1576106e1610616565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561072757610727610616565b8160405283815286602085880101111561073f575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f6020828403121561076e575f80fd5b813567ffffffffffffffff80821115610785575f80fd5b9083019060408286031215610798575f80fd5b6107a0610643565b6107a98361068f565b81526020830135828111156107bc575f80fd5b9290920191608083870312156107d0575f80fd5b6107d861066c565b6107e18461068f565b81526020840135838111156107f4575f80fd5b610800888287016106b7565b602083015250604084013583811115610817575f80fd5b610823888287016106b7565b6040830152506108356060850161068f565b6060820152602082015295945050505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f61060f6020830184610848565b5f602082840312156108b6575f80fd5b5051919050565b602081525f73ffffffffffffffffffffffffffffffffffffffff8084511660208401526020840151604080850152818151166060850152602081015160808086015261090c60e0860182610848565b905060408201517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08683030160a08701526109478282610848565b9150508260608301511660c08601528093505050509291505056fe60a060405260405161052f38038061052f83398101604081905261002291610331565b61002c828261003e565b506001600160a01b031660805261040d565b610047826100fb565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a28051156100ef576100ea826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e491906103ed565b82610209565b505050565b6100f76102aa565b5050565b806001600160a01b03163b5f0361013557604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b815290515f92841691635c60da1b9160048083019260209291908290030181865afa1580156101ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d291906103ed565b9050806001600160a01b03163b5f036100f757604051634c9c8ce360e01b81526001600160a01b038216600482015260240161012c565b60605f61021684846102cb565b905080801561023757505f3d118061023757505f846001600160a01b03163b115b1561024c576102446102de565b9150506102a4565b801561027657604051639996b31560e01b81526001600160a01b038516600482015260240161012c565b3d15610289576102846102f7565b6102a2565b60405163d6bda27560e01b815260040160405180910390fd5b505b92915050565b34156102c95760405163b398979f60e01b815260040160405180910390fd5b565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b6040513d5f823e3d81fd5b80516001600160a01b0381168114610318575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215610342575f80fd5b61034b83610302565b60208401519092506001600160401b0380821115610367575f80fd5b818501915085601f83011261037a575f80fd5b81518181111561038c5761038c61031d565b604051601f8201601f19908116603f011681019083821181831017156103b4576103b461031d565b816040528281528860208487010111156103cc575f80fd5b8260208601602083015e5f6020848301015280955050505050509250929050565b5f602082840312156103fd575f80fd5b61040682610302565b9392505050565b60805161010b6104245f395f6023015261010b5ff3fe608060405261000c61000e565b005b61001e610019610020565b6100b3565b565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561008a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100ae91906100d1565b905090565b365f80375f80365f845af43d5f803e8080156100cd573d5ff35b3d5ffd5b5f602082840312156100e1575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610104575f80fd5b939250505056608060405234801561000f575f80fd5b506040516104f73803806104f783398101604081905261002e9161015f565b806001600160a01b03811661005d57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b61006681610077565b50610070826100c6565b5050610190565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b806001600160a01b03163b5f036100fb5760405163211eb15960e21b81526001600160a01b0382166004820152602401610054565b600180546001600160a01b0319166001600160a01b0383169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b80516001600160a01b038116811461015a575f80fd5b919050565b5f8060408385031215610170575f80fd5b61017983610144565b915061018760208401610144565b90509250929050565b61035a8061019d5f395ff3fe608060405234801561000f575f80fd5b5060043610610064575f3560e01c8063715018a61161004d578063715018a6146100c05780638da5cb5b146100c8578063f2fde38b146100e5575f80fd5b80633659cfe6146100685780635c60da1b1461007d575b5f80fd5b61007b610076366004610320565b6100f8565b005b60015473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61007b61010c565b5f5473ffffffffffffffffffffffffffffffffffffffff16610097565b61007b6100f3366004610320565b61011f565b610100610184565b610109816101d6565b50565b610114610184565b61011d5f6102ac565b565b610127610184565b73ffffffffffffffffffffffffffffffffffffffff811661017b576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f60048201526024015b60405180910390fd5b610109816102ac565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461011d576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610172565b8073ffffffffffffffffffffffffffffffffffffffff163b5f0361023e576040517f847ac56400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602401610172565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f60208284031215610330575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610353575f80fd5b939250505056"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b506004361061004a575f3560e01c806301ffc9a71461004e5780632c9b7f40146100765780632f77a1c1146100c25780634904fab3146100e9575b5f80fd5b61006161005c3660046105d0565b6100fc565b60405190151581526020015b60405180910390f35b61009d7f000000000000000000000000913f9edb29dd88314ee1559c18495b5332464d3b81565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161006d565b61009d7f000000000000000000000000bc924b1c3d3f3e038d5bf85710f695bcb22e715281565b61009d6100f736600461075e565b610194565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f4ae8243200000000000000000000000000000000000000000000000000000000148061018e57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b6020810151606001515f9073ffffffffffffffffffffffffffffffffffffffff1615610212576020820151606001516040517ffc47d97600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116600482015260240160405180910390fd5b815173ffffffffffffffffffffffffffffffffffffffff16610260576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7f000000000000000000000000913f9edb29dd88314ee1559c18495b5332464d3b60405161028e906105c3565b73ffffffffffffffffffffffffffffffffffffffff90911681526040602082018190525f90820152606001604051809103905ff0801580156102d2573d5f803e3d5ffd5b5090505f7f000000000000000000000000bc924b1c3d3f3e038d5bf85710f695bcb22e7152604051610303906105c3565b73ffffffffffffffffffffffffffffffffffffffff90911681526040602082018190525f90820152606001604051809103905ff080158015610347573d5f803e3d5ffd5b506040805173ffffffffffffffffffffffffffffffffffffffff80841660208301529293507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc39285169163439fab9191016040516020818303038152906040526040518263ffffffff1660e01b81526004016103c39190610894565b6020604051808303815f875af11580156103df573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061040391906108a6565b1461043a576040517f0219069c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8184602001516060019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc38173ffffffffffffffffffffffffffffffffffffffff1663439fab91866040516020016104c491906108bd565b6040516020818303038152906040526040518263ffffffff1660e01b81526004016104ef9190610894565b6020604051808303815f875af115801561050b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061052f91906108a6565b14610566576040517f09c5931500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805133815273ffffffffffffffffffffffffffffffffffffffff838116602083015284168183015290517fa0d99d93cf7a5f89661fa0829369a7e4896e755871efe65440bab2429387d55b9181900360600190a19392505050565b61052f8061096383390190565b5f602082840312156105e0575f80fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461060f575f80fd5b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff8111828210171561066657610666610616565b60405290565b6040516080810167ffffffffffffffff8111828210171561066657610666610616565b803573ffffffffffffffffffffffffffffffffffffffff811681146106b2575f80fd5b919050565b5f82601f8301126106c6575f80fd5b813567ffffffffffffffff808211156106e1576106e1610616565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561072757610727610616565b8160405283815286602085880101111561073f575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f6020828403121561076e575f80fd5b813567ffffffffffffffff80821115610785575f80fd5b9083019060408286031215610798575f80fd5b6107a0610643565b6107a98361068f565b81526020830135828111156107bc575f80fd5b9290920191608083870312156107d0575f80fd5b6107d861066c565b6107e18461068f565b81526020840135838111156107f4575f80fd5b610800888287016106b7565b602083015250604084013583811115610817575f80fd5b610823888287016106b7565b6040830152506108356060850161068f565b6060820152602082015295945050505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f61060f6020830184610848565b5f602082840312156108b6575f80fd5b5051919050565b602081525f73ffffffffffffffffffffffffffffffffffffffff8084511660208401526020840151604080850152818151166060850152602081015160808086015261090c60e0860182610848565b905060408201517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08683030160a08701526109478282610848565b9150508260608301511660c08601528093505050509291505056fe60a060405260405161052f38038061052f83398101604081905261002291610331565b61002c828261003e565b506001600160a01b031660805261040d565b610047826100fb565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a28051156100ef576100ea826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e491906103ed565b82610209565b505050565b6100f76102aa565b5050565b806001600160a01b03163b5f0361013557604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b815290515f92841691635c60da1b9160048083019260209291908290030181865afa1580156101ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d291906103ed565b9050806001600160a01b03163b5f036100f757604051634c9c8ce360e01b81526001600160a01b038216600482015260240161012c565b60605f61021684846102cb565b905080801561023757505f3d118061023757505f846001600160a01b03163b115b1561024c576102446102de565b9150506102a4565b801561027657604051639996b31560e01b81526001600160a01b038516600482015260240161012c565b3d15610289576102846102f7565b6102a2565b60405163d6bda27560e01b815260040160405180910390fd5b505b92915050565b34156102c95760405163b398979f60e01b815260040160405180910390fd5b565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b6040513d5f823e3d81fd5b80516001600160a01b0381168114610318575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215610342575f80fd5b61034b83610302565b60208401519092506001600160401b0380821115610367575f80fd5b818501915085601f83011261037a575f80fd5b81518181111561038c5761038c61031d565b604051601f8201601f19908116603f011681019083821181831017156103b4576103b461031d565b816040528281528860208487010111156103cc575f80fd5b8260208601602083015e5f6020848301015280955050505050509250929050565b5f602082840312156103fd575f80fd5b61040682610302565b9392505050565b60805161010b6104245f395f6023015261010b5ff3fe608060405261000c61000e565b005b61001e610019610020565b6100b3565b565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561008a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100ae91906100d1565b905090565b365f80375f80365f845af43d5f803e8080156100cd573d5ff35b3d5ffd5b5f602082840312156100e1575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610104575f80fd5b939250505056"; diff --git a/src/generated/0_1_7/StoxOffchainAssetReceiptVaultPaymentMintAuthorizerV1.pointers.sol b/src/generated/0_1_7/StoxOffchainAssetReceiptVaultPaymentMintAuthorizerV1.pointers.sol deleted file mode 100644 index f343350f..00000000 --- a/src/generated/0_1_7/StoxOffchainAssetReceiptVaultPaymentMintAuthorizerV1.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x4d94318cde48f1bc20f97e00aefad84bfb7c9db15c81b882862e127b05e06e15); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0xeaD68E489Cb19453b294dc46a3A5710b0d46d17F); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"6080604052348015600e575f80fd5b506015601f565b601b601f565b60cf565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615606e5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460cc5780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b612650806100dc5f395ff3fe608060405234801561000f575f80fd5b5060043610610115575f3560e01c806359f89dda116100ad578063a086e1751161007d578063a4c9d30011610063578063a4c9d3001461030a578063d547741f14610312578063f2fde38b14610325575f80fd5b8063a086e175146102fb578063a217fddf14610303575f80fd5b806359f89dda14610281578063715018a6146102945780638da5cb5b1461029c57806391d14854146102a4575f80fd5b80633013ce29116100e85780633013ce29146101c8578063325cd7961461020c57806336568abe1461025b578063439fab911461026e575f80fd5b806301ffc9a71461011957806304a0db2014610141578063248a9ca3146101725780632f2ff15d146101b3575b5f80fd5b61012c610127366004611eec565b610338565b60405190151581526020015b60405180910390f35b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3202545b604051908152602001610138565b610164610180366004611f2b565b5f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b6101c66101c1366004611f56565b61042b565b005b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3201546001600160a01b03165b6040516001600160a01b039091168152602001610138565b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b32015474010000000000000000000000000000000000000000900460ff1660405160ff9091168152602001610138565b6101c6610269366004611f56565b610474565b61016461027c3660046120a7565b6104c5565b6101c661028f3660046120d9565b610a55565b6101c6610e31565b6101f4610e44565b61012c6102b2366004611f56565b5f9182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6101f4610e78565b6101645f81565b6101c6610ea0565b6101c6610320366004611f56565b610f69565b6101c661033336600461212e565b610fac565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f59f89dda0000000000000000000000000000000000000000000000000000000014806103ca57507fffffffff0000000000000000000000000000000000000000000000000000000082167f439fab9100000000000000000000000000000000000000000000000000000000145b8061041657507fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000145b80610425575061042582610fff565b92915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015461046481611095565b61046e838361109f565b50505050565b6001600160a01b03811633146104b6576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104c08282611190565b505050565b5f806104cf611252565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156104fb5750825b90505f8267ffffffffffffffff1660011480156105175750303b155b905081158015610525575080155b1561055c576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156105bd5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b5f878060200190518101906105d29190612149565b80519091506001600160a01b0316610616576040517fa7d26c7300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60208101516001600160a01b031661065a576040517f364467d300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408101516001600160a01b031661069e576040517f3731597600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60608101516001600160a01b03166106e2576040517ff10d418200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80608001515f0361071f576040517f7e0eb2bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80517f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b320080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b039384161782556020808501517f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b32038054841691861691909117905560608501517f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b320180549093169416938417909155604080517f313ce567000000000000000000000000000000000000000000000000000000008152905192935f93909263313ce56792600480820193918290030181865afa158015610830573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061085491906121ba565b6001830180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000060ff8416021790556080840151600284015560408401519091506108b59061127a565b7fbf322f47f534976d35baa3292f4fd04bf379264783a734383401b0e6e51cb16d835f0151846020015185604001518660600151858860800151604051610939969594939291906001600160a01b039687168152948616602086015292851660408501529316606083015260ff92909216608082015260a081019190915260c00190565b60405180910390a1610965604051806020016040528085604001516001600160a01b031681525061128b565b506109947f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc028460400151611190565b506109c37fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d38460400151611190565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc398505050508315610a4b5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b320080546001600160a01b0316338114610ac9578484846040517f3ae4063b000000000000000000000000000000000000000000000000000000008152600401610ac0939291906121da565b60405180910390fd5b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8218403610e1f575f83806020019051810190610b059190612226565b60018481015460808301519293506001600160a01b038116927401000000000000000000000000000000000000000090910460ff16915f91610b48918490611626565b90505f836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b87573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bab91906121ba565b60ff169050828114610bf3576040517fe420d7af0000000000000000000000000000000000000000000000000000000081526004810184905260248101829052604401610ac0565b5f866001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c30573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c549190612312565b90508760020154811115610ca45760028801546040517f86529caa000000000000000000000000000000000000000000000000000000008152600481019190915260248101829052604401610ac0565b825f03610d045785516040517f3ae4063b000000000000000000000000000000000000000000000000000000008152610ac091907f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f821908c906004016121da565b8551610d1c906001600160a01b0387169030866116ad565b600388015486516040517fdb8554fc0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201524260248201525f92919091169063db8554fc90604401602060405180830381865afa158015610d8a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dae9190612312565b905060028114610e115786516040517f3ae4063b000000000000000000000000000000000000000000000000000000008152610ac091907f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f821908d906004016121da565b505050505050505050505050565b610e2a8585856116fc565b5050505050565b610e39611a38565b610e425f611a83565b565b5f807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b5f807f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3200610e68565b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3200610f66610ecc610e44565b60018301546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015610f2d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f519190612312565b60018401546001600160a01b03169190611b0b565b50565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020526040902060010154610fa281611095565b61046e8383611190565b610fb4611a38565b6001600160a01b038116610ff6576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f6004820152602401610ac0565b610f6681611a83565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061042557507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610425565b610f668133611b59565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff16611180575f848152602082815260408083206001600160a01b0387168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556111363390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610425565b5f915050610425565b5092915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff1615611180575f848152602082815260408083206001600160a01b038716808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610425565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610425565b611282611be9565b610f6681611c27565b5f611294611c2f565b81516001600160a01b03166112d5576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61131f7f50a07cb25d0d864370863300b20987dfdae089abad71b607faf639d09d0533917f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b611c37565b6113497f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b80611c37565b6113937f3dd35eca0ca8a128757fa464a5dfa4ad6cc4853cad96dce4e90fdbea4f0a52e37f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d611c37565b6113bd7f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d80611c37565b6114077f54f0af3716c79b30b8c228679d31d77a1a5f526c16af3262730e0a8de4363fed7fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c611c37565b6114317fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c80611c37565b61147b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8217f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02611c37565b6114a57f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc0280611c37565b6114ef7f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e9828697fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3611c37565b6115197fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d380611c37565b6115467f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b835f015161109f565b506115747f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d835f015161109f565b506115a27fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c835f015161109f565b506115d07f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02835f015161109f565b506115fe7fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3835f015161109f565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc392915050565b5f826012111561165a5760128390036001831615611650576116488582611cd8565b9150506116a6565b6116488582611d24565b60128311156116a3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee83016002831615611699576116488582611d4e565b6116488582611d9e565b50825b9392505050565b6116bb848484846001611dcd565b61046e576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610ac0565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a82148061174957507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a4882145b156119b2575f805f7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a85036117a9575f8480602001905181019061178d919061233d565b9050805f015193508060200151925080606001519150506117d5565b5f848060200190518101906117be9190612432565b805160208201516080909201519095509093509150505b80156119aa576001600160a01b03831615801561182857506001600160a01b0382165f9081527f96f78a99f93d631b75bc050854c9b764642c10564e41ed27c197a36ddabb1df9602052604090205460ff165b8061187b57506001600160a01b03821615801561187b57506001600160a01b0383165f9081527f3907f76fa0fb1e5d0f263c5c4fe4316026052cf960c55a1c768106d8b9701c10602052604090205460ff165b1561188857505050505050565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a851480156118ed57506001600160a01b0386165f9081527f6ba48721fcbb2613af13d8285fe9ee4a081f7995464037bb5ea27397912881d2602052604090205460ff165b8061195857507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a488514801561195857506001600160a01b0386165f9081527f29e42896fa6edf5a5d7ff0bcd00acffbece6eb6cc7b44d0807bfd84929cc6e1b602052604090205460ff165b1561196557505050505050565b6040517ffe720f780000000000000000000000000000000000000000000000000000000081526001600160a01b03808516600483015283166024820152604401610ac0565b505050505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038716845290915290205460ff1615611a0057505050565b8282826040517f3ae4063b000000000000000000000000000000000000000000000000000000008152600401610ac0939291906121da565b33611a41610e44565b6001600160a01b031614610e42576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610ac0565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b611b188383836001611e53565b6104c0576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610ac0565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038516845290915290205460ff16611be5576040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015260248101839052604401610ac0565b5050565b611bf1611ece565b610e42576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fb4611be9565b610e42611be9565b7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268005f611c90845f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b5f85815260208490526040808220600101869055519192508491839187917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a450505050565b5f604e8210611cfa578215611cee576001611cf0565b5f5b60ff169050610425565b600a82900a808481611d0e57611d0e6124f4565b0491508082028414611189575060010192915050565b5f604e821015611d465781600a0a8381611d4057611d406124f4565b046116a6565b5f9392505050565b5f604e8210611d6d578215611d64575f19611d66565b5f5b9050610425565b50600a81900a8281029083818381611d8757611d876124f4565b0414611d94575f19611d96565b815b949350505050565b600a81900a611dad818461254e565b9050604e8210610425578215611d4657611dc882600a612645565b6116a6565b6040517f23b872dd000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038781166004528616602452604485905291602083606481808c5af1925060015f51148316611e42578383151615611e36573d5f823e3d81fd5b5f883b113d1516831692505b604052505f60605295945050505050565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f51148316611ec2578383151615611eb6573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b5f611ed7611252565b5468010000000000000000900460ff16919050565b5f60208284031215611efc575f80fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146116a6575f80fd5b5f60208284031215611f3b575f80fd5b5035919050565b6001600160a01b0381168114610f66575f80fd5b5f8060408385031215611f67575f80fd5b823591506020830135611f7981611f42565b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60405160a0810167ffffffffffffffff81118282101715611fd457611fd4611f84565b60405290565b60405160c0810167ffffffffffffffff81118282101715611fd457611fd4611f84565b604051601f8201601f1916810167ffffffffffffffff8111828210171561202657612026611f84565b604052919050565b5f67ffffffffffffffff82111561204757612047611f84565b50601f01601f191660200190565b5f82601f830112612064575f80fd5b81356120776120728261202e565b611ffd565b81815284602083860101111561208b575f80fd5b816020850160208301375f918101602001919091529392505050565b5f602082840312156120b7575f80fd5b813567ffffffffffffffff8111156120cd575f80fd5b611d9684828501612055565b5f805f606084860312156120eb575f80fd5b83356120f681611f42565b925060208401359150604084013567ffffffffffffffff811115612118575f80fd5b61212486828701612055565b9150509250925092565b5f6020828403121561213e575f80fd5b81356116a681611f42565b5f60a08284031215612159575f80fd5b612161611fb1565b825161216c81611f42565b8152602083015161217c81611f42565b6020820152604083015161218f81611f42565b604082015260608301516121a281611f42565b60608201526080928301519281019290925250919050565b5f602082840312156121ca575f80fd5b815160ff811681146116a6575f80fd5b6001600160a01b0384168152826020820152606060408201525f82518060608401528060208501608085015e5f608082850101526080601f19601f830116840101915050949350505050565b5f6020808385031215612237575f80fd5b825167ffffffffffffffff8082111561224e575f80fd5b9084019060c08287031215612261575f80fd5b612269611fda565b825161227481611f42565b81528284015161228381611f42565b80858301525060408301516040820152606083015160608201526080830151608082015260a0830151828111156122b8575f80fd5b80840193505086601f8401126122cc575f80fd5b825191506122dc6120728361202e565b82815287858486010111156122ef575f80fd5b828585018683015e5f8584830101528060a0830152508094505050505092915050565b5f60208284031215612322575f80fd5b5051919050565b80518015158114612338575f80fd5b919050565b5f6080828403121561234d575f80fd5b6040516080810181811067ffffffffffffffff8211171561237057612370611f84565b604052825161237e81611f42565b8152602083015161238e81611f42565b6020820152604083810151908201526123a960608401612329565b60608201529392505050565b5f82601f8301126123c4575f80fd5b8151602067ffffffffffffffff8211156123e0576123e0611f84565b8160051b6123ef828201611ffd565b9283528481018201928281019087851115612408575f80fd5b83870192505b848310156124275782518252918301919083019061240e565b979650505050505050565b5f60208284031215612442575f80fd5b815167ffffffffffffffff80821115612459575f80fd5b9083019060a0828603121561246c575f80fd5b612474611fb1565b825161247f81611f42565b8152602083015161248f81611f42565b60208201526040830151828111156124a5575f80fd5b6124b1878286016123b5565b6040830152506060830151828111156124c8575f80fd5b6124d4878286016123b5565b6060830152506124e660808401612329565b608082015295945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b808202811582820484141761042557610425612521565b600181815b8085111561259f57815f190482111561258557612585612521565b8085161561259257918102915b93841c939080029061256a565b509250929050565b5f826125b557506001610425565b816125c157505f610425565b81600181146125d757600281146125e1576125fd565b6001915050610425565b60ff8411156125f2576125f2612521565b50506001821b610425565b5060208310610133831016604e8410600b8410161715612620575081810a610425565b61262a8383612565565b805f190482111561263d5761263d612521565b029392505050565b5f6116a683836125a756"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b5060043610610115575f3560e01c806359f89dda116100ad578063a086e1751161007d578063a4c9d30011610063578063a4c9d3001461030a578063d547741f14610312578063f2fde38b14610325575f80fd5b8063a086e175146102fb578063a217fddf14610303575f80fd5b806359f89dda14610281578063715018a6146102945780638da5cb5b1461029c57806391d14854146102a4575f80fd5b80633013ce29116100e85780633013ce29146101c8578063325cd7961461020c57806336568abe1461025b578063439fab911461026e575f80fd5b806301ffc9a71461011957806304a0db2014610141578063248a9ca3146101725780632f2ff15d146101b3575b5f80fd5b61012c610127366004611eec565b610338565b60405190151581526020015b60405180910390f35b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3202545b604051908152602001610138565b610164610180366004611f2b565b5f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b6101c66101c1366004611f56565b61042b565b005b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3201546001600160a01b03165b6040516001600160a01b039091168152602001610138565b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b32015474010000000000000000000000000000000000000000900460ff1660405160ff9091168152602001610138565b6101c6610269366004611f56565b610474565b61016461027c3660046120a7565b6104c5565b6101c661028f3660046120d9565b610a55565b6101c6610e31565b6101f4610e44565b61012c6102b2366004611f56565b5f9182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6101f4610e78565b6101645f81565b6101c6610ea0565b6101c6610320366004611f56565b610f69565b6101c661033336600461212e565b610fac565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f59f89dda0000000000000000000000000000000000000000000000000000000014806103ca57507fffffffff0000000000000000000000000000000000000000000000000000000082167f439fab9100000000000000000000000000000000000000000000000000000000145b8061041657507fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000145b80610425575061042582610fff565b92915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015461046481611095565b61046e838361109f565b50505050565b6001600160a01b03811633146104b6576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104c08282611190565b505050565b5f806104cf611252565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156104fb5750825b90505f8267ffffffffffffffff1660011480156105175750303b155b905081158015610525575080155b1561055c576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156105bd5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b5f878060200190518101906105d29190612149565b80519091506001600160a01b0316610616576040517fa7d26c7300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60208101516001600160a01b031661065a576040517f364467d300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408101516001600160a01b031661069e576040517f3731597600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60608101516001600160a01b03166106e2576040517ff10d418200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80608001515f0361071f576040517f7e0eb2bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80517f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b320080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b039384161782556020808501517f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b32038054841691861691909117905560608501517f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b320180549093169416938417909155604080517f313ce567000000000000000000000000000000000000000000000000000000008152905192935f93909263313ce56792600480820193918290030181865afa158015610830573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061085491906121ba565b6001830180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000060ff8416021790556080840151600284015560408401519091506108b59061127a565b7fbf322f47f534976d35baa3292f4fd04bf379264783a734383401b0e6e51cb16d835f0151846020015185604001518660600151858860800151604051610939969594939291906001600160a01b039687168152948616602086015292851660408501529316606083015260ff92909216608082015260a081019190915260c00190565b60405180910390a1610965604051806020016040528085604001516001600160a01b031681525061128b565b506109947f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc028460400151611190565b506109c37fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d38460400151611190565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc398505050508315610a4b5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b320080546001600160a01b0316338114610ac9578484846040517f3ae4063b000000000000000000000000000000000000000000000000000000008152600401610ac0939291906121da565b60405180910390fd5b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8218403610e1f575f83806020019051810190610b059190612226565b60018481015460808301519293506001600160a01b038116927401000000000000000000000000000000000000000090910460ff16915f91610b48918490611626565b90505f836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b87573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bab91906121ba565b60ff169050828114610bf3576040517fe420d7af0000000000000000000000000000000000000000000000000000000081526004810184905260248101829052604401610ac0565b5f866001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c30573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c549190612312565b90508760020154811115610ca45760028801546040517f86529caa000000000000000000000000000000000000000000000000000000008152600481019190915260248101829052604401610ac0565b825f03610d045785516040517f3ae4063b000000000000000000000000000000000000000000000000000000008152610ac091907f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f821908c906004016121da565b8551610d1c906001600160a01b0387169030866116ad565b600388015486516040517fdb8554fc0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201524260248201525f92919091169063db8554fc90604401602060405180830381865afa158015610d8a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dae9190612312565b905060028114610e115786516040517f3ae4063b000000000000000000000000000000000000000000000000000000008152610ac091907f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f821908d906004016121da565b505050505050505050505050565b610e2a8585856116fc565b5050505050565b610e39611a38565b610e425f611a83565b565b5f807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b5f807f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3200610e68565b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3200610f66610ecc610e44565b60018301546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015610f2d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f519190612312565b60018401546001600160a01b03169190611b0b565b50565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020526040902060010154610fa281611095565b61046e8383611190565b610fb4611a38565b6001600160a01b038116610ff6576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f6004820152602401610ac0565b610f6681611a83565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061042557507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610425565b610f668133611b59565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff16611180575f848152602082815260408083206001600160a01b0387168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556111363390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610425565b5f915050610425565b5092915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff1615611180575f848152602082815260408083206001600160a01b038716808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610425565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610425565b611282611be9565b610f6681611c27565b5f611294611c2f565b81516001600160a01b03166112d5576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61131f7f50a07cb25d0d864370863300b20987dfdae089abad71b607faf639d09d0533917f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b611c37565b6113497f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b80611c37565b6113937f3dd35eca0ca8a128757fa464a5dfa4ad6cc4853cad96dce4e90fdbea4f0a52e37f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d611c37565b6113bd7f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d80611c37565b6114077f54f0af3716c79b30b8c228679d31d77a1a5f526c16af3262730e0a8de4363fed7fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c611c37565b6114317fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c80611c37565b61147b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8217f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02611c37565b6114a57f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc0280611c37565b6114ef7f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e9828697fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3611c37565b6115197fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d380611c37565b6115467f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b835f015161109f565b506115747f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d835f015161109f565b506115a27fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c835f015161109f565b506115d07f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02835f015161109f565b506115fe7fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3835f015161109f565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc392915050565b5f826012111561165a5760128390036001831615611650576116488582611cd8565b9150506116a6565b6116488582611d24565b60128311156116a3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee83016002831615611699576116488582611d4e565b6116488582611d9e565b50825b9392505050565b6116bb848484846001611dcd565b61046e576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610ac0565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a82148061174957507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a4882145b156119b2575f805f7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a85036117a9575f8480602001905181019061178d919061233d565b9050805f015193508060200151925080606001519150506117d5565b5f848060200190518101906117be9190612432565b805160208201516080909201519095509093509150505b80156119aa576001600160a01b03831615801561182857506001600160a01b0382165f9081527f96f78a99f93d631b75bc050854c9b764642c10564e41ed27c197a36ddabb1df9602052604090205460ff165b8061187b57506001600160a01b03821615801561187b57506001600160a01b0383165f9081527f3907f76fa0fb1e5d0f263c5c4fe4316026052cf960c55a1c768106d8b9701c10602052604090205460ff165b1561188857505050505050565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a851480156118ed57506001600160a01b0386165f9081527f6ba48721fcbb2613af13d8285fe9ee4a081f7995464037bb5ea27397912881d2602052604090205460ff165b8061195857507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a488514801561195857506001600160a01b0386165f9081527f29e42896fa6edf5a5d7ff0bcd00acffbece6eb6cc7b44d0807bfd84929cc6e1b602052604090205460ff165b1561196557505050505050565b6040517ffe720f780000000000000000000000000000000000000000000000000000000081526001600160a01b03808516600483015283166024820152604401610ac0565b505050505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038716845290915290205460ff1615611a0057505050565b8282826040517f3ae4063b000000000000000000000000000000000000000000000000000000008152600401610ac0939291906121da565b33611a41610e44565b6001600160a01b031614610e42576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610ac0565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b611b188383836001611e53565b6104c0576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610ac0565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038516845290915290205460ff16611be5576040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015260248101839052604401610ac0565b5050565b611bf1611ece565b610e42576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fb4611be9565b610e42611be9565b7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268005f611c90845f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b5f85815260208490526040808220600101869055519192508491839187917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a450505050565b5f604e8210611cfa578215611cee576001611cf0565b5f5b60ff169050610425565b600a82900a808481611d0e57611d0e6124f4565b0491508082028414611189575060010192915050565b5f604e821015611d465781600a0a8381611d4057611d406124f4565b046116a6565b5f9392505050565b5f604e8210611d6d578215611d64575f19611d66565b5f5b9050610425565b50600a81900a8281029083818381611d8757611d876124f4565b0414611d94575f19611d96565b815b949350505050565b600a81900a611dad818461254e565b9050604e8210610425578215611d4657611dc882600a612645565b6116a6565b6040517f23b872dd000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038781166004528616602452604485905291602083606481808c5af1925060015f51148316611e42578383151615611e36573d5f823e3d81fd5b5f883b113d1516831692505b604052505f60605295945050505050565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f51148316611ec2578383151615611eb6573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b5f611ed7611252565b5468010000000000000000900460ff16919050565b5f60208284031215611efc575f80fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146116a6575f80fd5b5f60208284031215611f3b575f80fd5b5035919050565b6001600160a01b0381168114610f66575f80fd5b5f8060408385031215611f67575f80fd5b823591506020830135611f7981611f42565b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60405160a0810167ffffffffffffffff81118282101715611fd457611fd4611f84565b60405290565b60405160c0810167ffffffffffffffff81118282101715611fd457611fd4611f84565b604051601f8201601f1916810167ffffffffffffffff8111828210171561202657612026611f84565b604052919050565b5f67ffffffffffffffff82111561204757612047611f84565b50601f01601f191660200190565b5f82601f830112612064575f80fd5b81356120776120728261202e565b611ffd565b81815284602083860101111561208b575f80fd5b816020850160208301375f918101602001919091529392505050565b5f602082840312156120b7575f80fd5b813567ffffffffffffffff8111156120cd575f80fd5b611d9684828501612055565b5f805f606084860312156120eb575f80fd5b83356120f681611f42565b925060208401359150604084013567ffffffffffffffff811115612118575f80fd5b61212486828701612055565b9150509250925092565b5f6020828403121561213e575f80fd5b81356116a681611f42565b5f60a08284031215612159575f80fd5b612161611fb1565b825161216c81611f42565b8152602083015161217c81611f42565b6020820152604083015161218f81611f42565b604082015260608301516121a281611f42565b60608201526080928301519281019290925250919050565b5f602082840312156121ca575f80fd5b815160ff811681146116a6575f80fd5b6001600160a01b0384168152826020820152606060408201525f82518060608401528060208501608085015e5f608082850101526080601f19601f830116840101915050949350505050565b5f6020808385031215612237575f80fd5b825167ffffffffffffffff8082111561224e575f80fd5b9084019060c08287031215612261575f80fd5b612269611fda565b825161227481611f42565b81528284015161228381611f42565b80858301525060408301516040820152606083015160608201526080830151608082015260a0830151828111156122b8575f80fd5b80840193505086601f8401126122cc575f80fd5b825191506122dc6120728361202e565b82815287858486010111156122ef575f80fd5b828585018683015e5f8584830101528060a0830152508094505050505092915050565b5f60208284031215612322575f80fd5b5051919050565b80518015158114612338575f80fd5b919050565b5f6080828403121561234d575f80fd5b6040516080810181811067ffffffffffffffff8211171561237057612370611f84565b604052825161237e81611f42565b8152602083015161238e81611f42565b6020820152604083810151908201526123a960608401612329565b60608201529392505050565b5f82601f8301126123c4575f80fd5b8151602067ffffffffffffffff8211156123e0576123e0611f84565b8160051b6123ef828201611ffd565b9283528481018201928281019087851115612408575f80fd5b83870192505b848310156124275782518252918301919083019061240e565b979650505050505050565b5f60208284031215612442575f80fd5b815167ffffffffffffffff80821115612459575f80fd5b9083019060a0828603121561246c575f80fd5b612474611fb1565b825161247f81611f42565b8152602083015161248f81611f42565b60208201526040830151828111156124a5575f80fd5b6124b1878286016123b5565b6040830152506060830151828111156124c8575f80fd5b6124d4878286016123b5565b6060830152506124e660808401612329565b608082015295945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b808202811582820484141761042557610425612521565b600181815b8085111561259f57815f190482111561258557612585612521565b8085161561259257918102915b93841c939080029061256a565b509250929050565b5f826125b557506001610425565b816125c157505f610425565b81600181146125d757600281146125e1576125fd565b6001915050610425565b60ff8411156125f2576125f2612521565b50506001821b610425565b5060208310610133831016604e8410600b8410161715612620575081810a610425565b61262a8383612565565b805f190482111561263d5761263d612521565b029392505050565b5f6116a683836125a756"; diff --git a/src/generated/0_1_7/StoxReceipt.pointers.sol b/src/generated/0_1_7/StoxReceipt.pointers.sol deleted file mode 100644 index ff38583a..00000000 --- a/src/generated/0_1_7/StoxReceipt.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x06fffbad12ea80897d55aab5d4f1cd3f34f674237db44a148cc133334a0cca54); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x2dF5cFE6d688EF9fF1B7c59A499D254b1527b286); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"6080604052348015600e575f80fd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6136e3806100d65f395ff3fe608060405234801561000f575f80fd5b50600436106100fa575f3560e01c8063481c6a7511610093578063a22cb46511610063578063a22cb46514610232578063c2530e3914610245578063e985e9c514610258578063f242432a146102b2575f80fd5b8063481c6a75146101bd5780634e1273f4146101f75780636d5b3f781461021757806395d89b411461022a575f80fd5b80630e89341c116100ce5780630e89341c14610171578063177769cb146101845780632eb2c2d614610197578063439fab91146101aa575f80fd5b8062fdd58e146100fe57806301ffc9a714610124578063043fa9871461014757806306fdde031461015c575b5f80fd5b61011161010c366004612a49565b6102c5565b6040519081526020015b60405180910390f35b610137610132366004612aa0565b6102e1565b604051901515815260200161011b565b61015a610155366004612b79565b6103c3565b005b61016461046a565b60405161011b9190612c29565b61016461017f366004612c3b565b6104cf565b61015a610192366004612c52565b610580565b61015a6101a5366004612d20565b61058f565b6101116101b8366004612dc7565b6105ae565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc200546040516001600160a01b03909116815260200161011b565b61020a610205366004612e01565b6107ae565b60405161011b9190612eed565b61015a610225366004612eff565b6108c5565b610164610975565b61015a610240366004612f63565b6109c6565b61015a610253366004612eff565b6109d1565b610137610266366004612f9e565b6001600160a01b039182165f9081527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45016020908152604080832093909416825291909152205460ff1690565b61015a6102c0366004612eff565b610a37565b5f6102d883836102d3610a4d565b610ab3565b90505b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a2600000000000000000000000000000000000000000000000000000000148061037357507fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000145b806102db57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146102db565b6103cb610b07565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038816179055856104208686868686610b6e565b6104617fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19169055565b50505050505050565b6060610474610c25565b6040518060400160405280600881526020017f20526563656970740000000000000000000000000000000000000000000000008152506040516020016104bb929190612fe1565b604051602081830303815290604052905090565b60605f6104e56104dd610cd3565b60ff16610d78565b6104ed610c25565b6104f5610e15565b6104fd61046a565b6040516020016105109493929190612ff5565b60408051601f19818403018152828201909152601d82527f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c0000006020830152915061055882610ef5565b604051602001610569929190612fe1565b604051602081830303815290604052915050919050565b61058b338383610f01565b5050565b61059a335b86610f49565b6105a78585858585610ff9565b5050505050565b5f806105b861108c565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156105e45750825b90505f8267ffffffffffffffff1660011480156106005750303b155b90508115801561060e575080155b15610645576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156106a65784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6106bd60405180602001604052805f8152506110b4565b5f7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc20090505f888060200190518101906106f69190613137565b825473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039190911617909155507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc3955083156107a45784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b606081518351146107fd57815183516040517f5b059991000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044015b60405180910390fd5b5f610806610a4d565b90505f845167ffffffffffffffff81111561082357610823612abb565b60405190808252806020026020018201604052801561084c578160200160208202803683370190505b5090505f5b85518110156108bc5761089786828151811061086f5761086f613152565b602002602001015186838151811061088957610889613152565b602002602001015185610ab3565b8282815181106108a9576108a9613152565b6020908102919091010152600101610851565b50949350505050565b6108cd610b07565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03871617905584610920868584610f01565b61092c858585856110c5565b61096d7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19169055565b505050505050565b606061097f610c25565b6040518060400160405280600581526020017f20524350540000000000000000000000000000000000000000000000000000008152506040516020016104bb929190612fe1565b61058b33838361113a565b6109d9610b07565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03871617905584610a2c868584610f01565b61092c85858561124e565b610a4033610594565b6105a78585858585610b6e565b5f306001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a8a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aae9190613137565b905090565b5f80610abf85856112cf565b90505f610aca6112e4565b6001600160a01b0387165f90815260209182526040808220888352909252908120549150610af9838387611345565b5093505050505b9392505050565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc20080546001600160a01b03163314610b6b576040517fc0b2335a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b6001600160a01b038416610bb0576040517f57f447ce0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b038516610bf2576040517f01a835140000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6040805160018082526020820186905281830190815260608201859052608082019092529061046187878484875f6115ed565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc2008054604080517f95d89b410000000000000000000000000000000000000000000000000000000081529051606093926001600160a01b0316916395d89b41916004808301925f9291908290030181865afa158015610ca6573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610ccd919081019061319c565b91505090565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc2008054604080517f313ce56700000000000000000000000000000000000000000000000000000000815290515f93926001600160a01b03169163313ce5679160048083019260209291908290030181865afa158015610d54573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ccd91906131e1565b60605f610d8483611645565b60010190505f8167ffffffffffffffff811115610da357610da3612abb565b6040519080825280601f01601f191660200182016040528015610dcd576020820181803683370190505b5090508181016020015b5f19017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084610dd757509392505050565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc2008054604080517f38d52e0f0000000000000000000000000000000000000000000000000000000081529051606093926001600160a01b0316916338d52e0f9160048083019260209291908290030181865afa158015610e97573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ebb9190613137565b6001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015610ca6573d5f803e3d5ffd5b60606102db825f611726565b805115610f44577fd66d6a9810a5cef78b704e7e04334961e997c81d337f029f74637f060f3d8d65838383604051610f3b93929190613215565b60405180910390a15b505050565b816001600160a01b0316816001600160a01b031614158015610faf57506001600160a01b038082165f9081527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4501602090815260408083209386168352929052205460ff16155b1561058b576040517fe237d9220000000000000000000000000000000000000000000000000000000081526001600160a01b038084166004830152821660248201526044016107f4565b6001600160a01b03841661103b576040517f57f447ce0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b03851661107d576040517f01a835140000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6105a7858585858560016115ed565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006102db565b6110bc6118a5565b610b6b816118e5565b6001600160a01b038416611107576040517f57f447ce0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6040805160018082526020820186905281830190815260608201859052608082019092529061096d5f87848487846115ed565b7f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45006001600160a01b03841661119d576040517f3e31884e0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b0383166111df576040517fced3e1000000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b038481165f818152600184016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a350505050565b6001600160a01b038316611290576040517f01a835140000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b604080516001808252602082018590528183019081526060820184905260a082019092525f608082018181529192916105a791879185908590836115ed565b5f806112db84846118f6565b54949350505050565b5f8060ff1961131460017fedb99b3af8e1c50d494d6f1b4c75245a0b733cb90baa42bfe0e2f5bc8b000f82613259565b60405160200161132691815260200190565b60408051601f1981840301815291905280516020909101201692915050565b6040517f79ba43050000000000000000000000000000000000000000000000000000000081525f9081908490829081906001600160a01b038716906379ba43059061139a90869060039060019060040161326c565b606060405180830381865afa1580156113b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113d991906132a4565b5091509150875f03611496575b5f198214611488576040517f79ba430500000000000000000000000000000000000000000000000000000000815291925082916001600160a01b038716906379ba43059061143e90859060039060019060040161326c565b606060405180830381865afa158015611459573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061147d91906132a4565b5090925090506113e6565b5f83945094505050506115e5565b875b5f1983146115dd5782935060028203611548576040517fb21a2494000000000000000000000000000000000000000000000000000000008152600481018490525f90611538906001600160a01b038a169063b21a2494906024015f60405180830381865afa15801561150c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611533919081019061319c565b61196a565b9050611544828261197f565b9150505b6040517f79ba43050000000000000000000000000000000000000000000000000000000081526001600160a01b038816906379ba43059061159390869060039060019060040161326c565b606060405180830381865afa1580156115ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115d291906132a4565b509093509150611498565b945091925050505b935093915050565b6115f9868686866119fa565b6001600160a01b0385161561096d573381156116225761161d818888888888611a5f565b610461565b6020858101519085015161163a838a8a85858a611bfc565b505050505050505050565b5f807a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061168d577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef810000000083106116b9576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106116d757662386f26fc10000830492506010015b6305f5e10083106116ef576305f5e100830492506008015b612710831061170357612710830492506004015b60648310611715576064830492506002015b600a83106102db5760010192915050565b606082515f03611744575060408051602081019091525f81526102db565b5f826117745760038451600261175a91906132e6565b61176491906132f9565b61176f906004613318565b611799565b6003845160046117849190613318565b61178f9060026132e6565b61179991906132f9565b905060405191507f4142434445464748494a4b4c4d4e4f505152535455565758595a616263646566601f5261067083027f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f18603f526020820181810185865187016020810180515f82525b82841015611857576003840193508351603f8160121c16518753600187019650603f81600c1c16518753600187019650603f8160061c16518753600187019650603f811651875350600186019550611804565b9052508590506118985760038651066001811461187b576002811461188e57611896565b603d6001840353603d6002840353611896565b603d60018403535b505b9183525060405292915050565b6118ad611d46565b6118e3576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6118ed6118a5565b610b6b81611d64565b5f8060ff1961192660017f3a8e79826d53842322cdcc810d4a989eb01ac46cfabfd48dcc021625ce13c2d7613259565b60405160200161193891815260200190565b60408051808303601f1901815291815281516020928301205f9687529290921681528185209585529490945250502090565b5f818060200190518101906102db919061332f565b5f7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8311156119dd576040517fbf463fe9000000000000000000000000000000000000000000000000000000008152600481018490526024016107f4565b5f6108bc6119f46119ee865f611db0565b85611e0a565b5f611e6c565b5f611a03610a4d565b90505f5b8351811015611a5257611a3486858381518110611a2657611a26613152565b602002602001015184611eae565b611a4a85858381518110611a2657611a26613152565b600101611a07565b506105a785858585611fb0565b6001600160a01b0384163b1561096d576040517fbc197c810000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063bc197c8190611abc9089908990889088908890600401613346565b6020604051808303815f875af1925050508015611af6575060408051601f3d908101601f19168201909252611af3918101906133a3565b60015b611b76573d808015611b23576040519150601f19603f3d011682016040523d82523d5f602084013e611b28565b606091505b5080515f03611b6e576040517f57f447ce0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024016107f4565b805160208201fd5b7fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014610461576040517f57f447ce0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024016107f4565b6001600160a01b0384163b1561096d576040517ff23a6e610000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063f23a6e6190611c5990899089908890889088906004016133be565b6020604051808303815f875af1925050508015611c93575060408051601f3d908101601f19168201909252611c90918101906133a3565b60015b611cc0573d808015611b23576040519150601f19603f3d011682016040523d82523d5f602084013e611b28565b7fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014610461576040517f57f447ce0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024016107f4565b5f611d4f61108c565b5468010000000000000000900460ff16919050565b7f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45007f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4502610f44838261347c565b5f805f611dbd8585612063565b9150915080611e02576040517f22c9f7bb00000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016107f4565b509392505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d8480611e4f86868686612169565b915091505f611e5e8383612288565b9a9950505050505050505050565b5f807bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8416601b0b60e085901d611ea08282876122e6565b9350935050505b9250929050565b6001600160a01b038316611ec157505050565b5f611eca6112e4565b6001600160a01b0385165f90815260208281526040808320878452909152812054919250611ef886866112cf565b90505f80611f07838588611345565b91509150838103611f1c575050505050505050565b6001600160a01b0388165f908152602086815260408083208a84529091529020819055818314611f5157611f518888846124ce565b60408051858152602081018390529081018490526060810183905287906001600160a01b038a16907f956b049289f8dbe8716375414d9fa6bf32cde65ec1b7e102623775cacc66a6999060800160405180910390a35050505050505050565b5f611fb96124e2565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc200546040517fe5be7d900000000000000000000000000000000000000000000000000000000081529192506001600160a01b03169063e5be7d909061202a9084908990899089908990600401613538565b5f604051808303815f87803b158015612041575f80fd5b505af1158015612053573d5f803e3d5ffd5b505050506105a785858585612563565b5f601b83900b83148383826120c7577d90e40fbeea1d3a4abc8955e946fe31cdcf66f634e10000000000000000008605156120a757620186a0860595506005850194505b8586601b0b146120c257600a860595508460010194506120a7565b6120dd565b855f036120dd57505f925060019150611ea79050565b848560030b14612139575f8512156120fd57505f9250829150611ea79050565b6040517fd556b11100000000000000000000000000000000000000000000000000000000815260048101839052602481018290526044016107f4565b50507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841660e084901b1791509250929050565b5f8085158415178015612181575f92505f915061227e565b61218b848761357d565b91505f612197886127c7565b90505f6121a3876127c7565b90505f6121b08383612828565b5090505f6f0785ee10d5da46d900f436a0000000008211156121e5576f0785ee10d5da46d900f436a000000000820491506025015b670de0b6b3a764000082111561220657670de0b6b3a7640000820491506012015b633b9aca0082111561221f57633b9aca00820491506009015b61271082111561223457612710820491506004015b811561224857600a82049150600101612234565b612252818761357d565b95506122748b8a61226e878761226987600a613684565b612844565b89612929565b9097509550505050505b5094509492505050565b5f805f6122958585612063565b91509150801580156122a5575081155b15611e02576040517f8eba4d0700000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016107f4565b5f805f85121561232c576040517f4a7d166b00000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016107f4565b845f0361233e57505f905060016115e5565b8460ff8416850185811215612389576040517fd556b11100000000000000000000000000000000000000000000000000000000815260048101889052602481018790526044016107f4565b5f805f8312156123f3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb38312156123ca575f8095509550505050506115e5565b825f03600a0a91508184816123e1576123e1613201565b04955050840290911491506115e59050565b5f8313156124be57604d831315612449576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff881660448201526064016107f4565b82600a0a9150815f198161245f5761245f613201565b048411156124ac576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff881660448201526064016107f4565b50919091029250600191506115e59050565b83600195509550505050506115e5565b5f6124d984846118f6565b91909155505050565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201545f907fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc200906001600160a01b03168061253e57339250505090565b6001909101805473ffffffffffffffffffffffffffffffffffffffff19169055919050565b805182517f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c450091146125cd57825182516040517f5b059991000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016107f4565b335f5b84518110156126e8576020818102868101820151908601909101516001600160a01b0389161561269a575f828152602086815260408083206001600160a01b038d16845290915290205481811015612674576040517f03dee4c50000000000000000000000000000000000000000000000000000000081526001600160a01b038b1660048201526024810182905260448101839052606481018490526084016107f4565b5f838152602087815260408083206001600160a01b038e16845290915290209082900390555b6001600160a01b038816156126de575f828152602086815260408083206001600160a01b038c168452909152812080548392906126d89084906132e6565b90915550505b50506001016125d0565b5083516001036127685760208401515f906020850151909150866001600160a01b0316886001600160a01b0316846001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051612759929190918252602082015260400190565b60405180910390a4505061096d565b846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516127b792919061368f565b60405180910390a4505050505050565b5f80821215612824577f8000000000000000000000000000000000000000000000000000000000000000820361281e57507f8000000000000000000000000000000000000000000000000000000000000000919050565b505f0390565b5090565b5f805f1983850993909202808410938190039390930393915050565b5f805f6128518686612828565b91509150815f036128755783818161286b5761286b613201565b0492505050610b00565b8382106128bf576040517f6c59da120000000000000000000000000000000000000000000000000000000081526004810187905260248101869052604481018590526064016107f4565b5f84868809600186198101871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103025f82900382900490920185841190960395909502919093039390930492909217029150509392505050565b5f805f85871812156129f3577f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8411156129e0576129887f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60016132e6565b84036129b857507f8000000000000000000000000000000000000000000000000000000000000000905081612a2c565b6129c3600a856132f9565b6129cc906136b3565b6129d784600161357d565b91509150612a2c565b6129e9846136b3565b8391509150612a2c565b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841115612a26576129cc600a856132f9565b50829050815b94509492505050565b6001600160a01b0381168114610b6b575f80fd5b5f8060408385031215612a5a575f80fd5b8235612a6581612a35565b946020939093013593505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114610b6b575f80fd5b5f60208284031215612ab0575f80fd5b8135610b0081612a73565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612af857612af8612abb565b604052919050565b5f67ffffffffffffffff821115612b1957612b19612abb565b50601f01601f191660200190565b5f82601f830112612b36575f80fd5b8135612b49612b4482612b00565b612acf565b818152846020838601011115612b5d575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f8060c08789031215612b8e575f80fd5b8635612b9981612a35565b95506020870135612ba981612a35565b94506040870135612bb981612a35565b9350606087013592506080870135915060a087013567ffffffffffffffff811115612be2575f80fd5b612bee89828a01612b27565b9150509295509295509295565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6102d86020830184612bfb565b5f60208284031215612c4b575f80fd5b5035919050565b5f8060408385031215612c63575f80fd5b82359150602083013567ffffffffffffffff811115612c80575f80fd5b612c8c85828601612b27565b9150509250929050565b5f67ffffffffffffffff821115612caf57612caf612abb565b5060051b60200190565b5f82601f830112612cc8575f80fd5b81356020612cd8612b4483612c96565b8083825260208201915060208460051b870101935086841115612cf9575f80fd5b602086015b84811015612d155780358352918301918301612cfe565b509695505050505050565b5f805f805f60a08688031215612d34575f80fd5b8535612d3f81612a35565b94506020860135612d4f81612a35565b9350604086013567ffffffffffffffff80821115612d6b575f80fd5b612d7789838a01612cb9565b94506060880135915080821115612d8c575f80fd5b612d9889838a01612cb9565b93506080880135915080821115612dad575f80fd5b50612dba88828901612b27565b9150509295509295909350565b5f60208284031215612dd7575f80fd5b813567ffffffffffffffff811115612ded575f80fd5b612df984828501612b27565b949350505050565b5f8060408385031215612e12575f80fd5b823567ffffffffffffffff80821115612e29575f80fd5b818501915085601f830112612e3c575f80fd5b81356020612e4c612b4483612c96565b82815260059290921b84018101918181019089841115612e6a575f80fd5b948201945b83861015612e91578535612e8281612a35565b82529482019490820190612e6f565b96505086013592505080821115612ea6575f80fd5b50612c8c85828601612cb9565b5f815180845260208085019450602084015f5b83811015612ee257815187529582019590820190600101612ec6565b509495945050505050565b602081525f6102d86020830184612eb3565b5f805f805f60a08688031215612f13575f80fd5b8535612f1e81612a35565b94506020860135612f2e81612a35565b93506040860135925060608601359150608086013567ffffffffffffffff811115612f57575f80fd5b612dba88828901612b27565b5f8060408385031215612f74575f80fd5b8235612f7f81612a35565b915060208301358015158114612f93575f80fd5b809150509250929050565b5f8060408385031215612faf575f80fd5b8235612fba81612a35565b91506020830135612f9381612a35565b5f81518060208401855e5f93019283525090919050565b5f612df9612fef8386612fca565b84612fca565b7f7b22646563696d616c73223a000000000000000000000000000000000000000081525f613026600c830187612fca565b7f2c226465736372697074696f6e223a2231206f6620746865736520726563656981527f7074732063616e206265206275726e656420616c6f6e67736964652031200000602082015261307c603e820187612fca565b90507f20746f2072656465656d2000000000000000000000000000000000000000000081526130ae600b820186612fca565b90507f2066726f6d20746865207661756c742e222c000000000000000000000000000081527f226e616d65223a220000000000000000000000000000000000000000000000006012820152613106601a820185612fca565b7f227d0000000000000000000000000000000000000000000000000000000000008152600201979650505050505050565b5f60208284031215613147575f80fd5b8151610b0081612a35565b634e487b7160e01b5f52603260045260245ffd5b5f613173612b4484612b00565b9050828152838383011115613186575f80fd5b8282602083015e5f602084830101529392505050565b5f602082840312156131ac575f80fd5b815167ffffffffffffffff8111156131c2575f80fd5b8201601f810184136131d2575f80fd5b612df984825160208401613166565b5f602082840312156131f1575f80fd5b815160ff81168114610b00575f80fd5b634e487b7160e01b5f52601260045260245ffd5b6001600160a01b0384168152826020820152606060408201525f61323c6060830184612bfb565b95945050505050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156102db576102db613245565b83815260208101839052606081016003831061329657634e487b7160e01b5f52602160045260245ffd5b826040830152949350505050565b5f805f606084860312156132b6575f80fd5b8351925060208401519150604084015167ffffffffffffffff811681146132db575f80fd5b809150509250925092565b808201808211156102db576102db613245565b5f8261331357634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176102db576102db613245565b5f6020828403121561333f575f80fd5b5051919050565b5f6001600160a01b03808816835280871660208401525060a0604083015261337160a0830186612eb3565b82810360608401526133838186612eb3565b905082810360808401526133978185612bfb565b98975050505050505050565b5f602082840312156133b3575f80fd5b8151610b0081612a73565b5f6001600160a01b03808816835280871660208401525084604083015283606083015260a060808301526133f560a0830184612bfb565b979650505050505050565b600181811c9082168061341457607f821691505b60208210810361343257634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115610f4457805f5260205f20601f840160051c8101602085101561345d5750805b601f840160051c820191505b818110156105a7575f8155600101613469565b815167ffffffffffffffff81111561349657613496612abb565b6134aa816134a48454613400565b84613438565b602080601f8311600181146134dd575f84156134c65750858301515b5f19600386901b1c1916600185901b17855561096d565b5f85815260208120601f198616915b8281101561350b578886015182559484019460019091019084016134ec565b508582101561352857878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f6001600160a01b038088168352808716602084015280861660408401525060a0606083015261356b60a0830185612eb3565b82810360808401526133978185612eb3565b8082018281125f83128015821682158216171561359c5761359c613245565b505092915050565b600181815b808511156135de57815f19048211156135c4576135c4613245565b808516156135d157918102915b93841c93908002906135a9565b509250929050565b5f826135f4575060016102db565b8161360057505f6102db565b816001811461361657600281146136205761363c565b60019150506102db565b60ff84111561363157613631613245565b50506001821b6102db565b5060208310610133831016604e8410600b841016171561365f575081810a6102db565b61366983836135a4565b805f190482111561367c5761367c613245565b029392505050565b5f6102d883836135e6565b604081525f6136a16040830185612eb3565b828103602084015261323c8185612eb3565b5f7f8000000000000000000000000000000000000000000000000000000000000000820361281e5761281e61324556"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b50600436106100fa575f3560e01c8063481c6a7511610093578063a22cb46511610063578063a22cb46514610232578063c2530e3914610245578063e985e9c514610258578063f242432a146102b2575f80fd5b8063481c6a75146101bd5780634e1273f4146101f75780636d5b3f781461021757806395d89b411461022a575f80fd5b80630e89341c116100ce5780630e89341c14610171578063177769cb146101845780632eb2c2d614610197578063439fab91146101aa575f80fd5b8062fdd58e146100fe57806301ffc9a714610124578063043fa9871461014757806306fdde031461015c575b5f80fd5b61011161010c366004612a49565b6102c5565b6040519081526020015b60405180910390f35b610137610132366004612aa0565b6102e1565b604051901515815260200161011b565b61015a610155366004612b79565b6103c3565b005b61016461046a565b60405161011b9190612c29565b61016461017f366004612c3b565b6104cf565b61015a610192366004612c52565b610580565b61015a6101a5366004612d20565b61058f565b6101116101b8366004612dc7565b6105ae565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc200546040516001600160a01b03909116815260200161011b565b61020a610205366004612e01565b6107ae565b60405161011b9190612eed565b61015a610225366004612eff565b6108c5565b610164610975565b61015a610240366004612f63565b6109c6565b61015a610253366004612eff565b6109d1565b610137610266366004612f9e565b6001600160a01b039182165f9081527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45016020908152604080832093909416825291909152205460ff1690565b61015a6102c0366004612eff565b610a37565b5f6102d883836102d3610a4d565b610ab3565b90505b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a2600000000000000000000000000000000000000000000000000000000148061037357507fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000145b806102db57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146102db565b6103cb610b07565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038816179055856104208686868686610b6e565b6104617fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19169055565b50505050505050565b6060610474610c25565b6040518060400160405280600881526020017f20526563656970740000000000000000000000000000000000000000000000008152506040516020016104bb929190612fe1565b604051602081830303815290604052905090565b60605f6104e56104dd610cd3565b60ff16610d78565b6104ed610c25565b6104f5610e15565b6104fd61046a565b6040516020016105109493929190612ff5565b60408051601f19818403018152828201909152601d82527f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c0000006020830152915061055882610ef5565b604051602001610569929190612fe1565b604051602081830303815290604052915050919050565b61058b338383610f01565b5050565b61059a335b86610f49565b6105a78585858585610ff9565b5050505050565b5f806105b861108c565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156105e45750825b90505f8267ffffffffffffffff1660011480156106005750303b155b90508115801561060e575080155b15610645576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156106a65784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6106bd60405180602001604052805f8152506110b4565b5f7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc20090505f888060200190518101906106f69190613137565b825473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039190911617909155507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc3955083156107a45784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b606081518351146107fd57815183516040517f5b059991000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044015b60405180910390fd5b5f610806610a4d565b90505f845167ffffffffffffffff81111561082357610823612abb565b60405190808252806020026020018201604052801561084c578160200160208202803683370190505b5090505f5b85518110156108bc5761089786828151811061086f5761086f613152565b602002602001015186838151811061088957610889613152565b602002602001015185610ab3565b8282815181106108a9576108a9613152565b6020908102919091010152600101610851565b50949350505050565b6108cd610b07565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03871617905584610920868584610f01565b61092c858585856110c5565b61096d7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19169055565b505050505050565b606061097f610c25565b6040518060400160405280600581526020017f20524350540000000000000000000000000000000000000000000000000000008152506040516020016104bb929190612fe1565b61058b33838361113a565b6109d9610b07565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03871617905584610a2c868584610f01565b61092c85858561124e565b610a4033610594565b6105a78585858585610b6e565b5f306001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a8a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aae9190613137565b905090565b5f80610abf85856112cf565b90505f610aca6112e4565b6001600160a01b0387165f90815260209182526040808220888352909252908120549150610af9838387611345565b5093505050505b9392505050565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc20080546001600160a01b03163314610b6b576040517fc0b2335a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b6001600160a01b038416610bb0576040517f57f447ce0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b038516610bf2576040517f01a835140000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6040805160018082526020820186905281830190815260608201859052608082019092529061046187878484875f6115ed565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc2008054604080517f95d89b410000000000000000000000000000000000000000000000000000000081529051606093926001600160a01b0316916395d89b41916004808301925f9291908290030181865afa158015610ca6573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610ccd919081019061319c565b91505090565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc2008054604080517f313ce56700000000000000000000000000000000000000000000000000000000815290515f93926001600160a01b03169163313ce5679160048083019260209291908290030181865afa158015610d54573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ccd91906131e1565b60605f610d8483611645565b60010190505f8167ffffffffffffffff811115610da357610da3612abb565b6040519080825280601f01601f191660200182016040528015610dcd576020820181803683370190505b5090508181016020015b5f19017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084610dd757509392505050565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc2008054604080517f38d52e0f0000000000000000000000000000000000000000000000000000000081529051606093926001600160a01b0316916338d52e0f9160048083019260209291908290030181865afa158015610e97573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ebb9190613137565b6001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015610ca6573d5f803e3d5ffd5b60606102db825f611726565b805115610f44577fd66d6a9810a5cef78b704e7e04334961e997c81d337f029f74637f060f3d8d65838383604051610f3b93929190613215565b60405180910390a15b505050565b816001600160a01b0316816001600160a01b031614158015610faf57506001600160a01b038082165f9081527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4501602090815260408083209386168352929052205460ff16155b1561058b576040517fe237d9220000000000000000000000000000000000000000000000000000000081526001600160a01b038084166004830152821660248201526044016107f4565b6001600160a01b03841661103b576040517f57f447ce0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b03851661107d576040517f01a835140000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6105a7858585858560016115ed565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006102db565b6110bc6118a5565b610b6b816118e5565b6001600160a01b038416611107576040517f57f447ce0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6040805160018082526020820186905281830190815260608201859052608082019092529061096d5f87848487846115ed565b7f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45006001600160a01b03841661119d576040517f3e31884e0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b0383166111df576040517fced3e1000000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b038481165f818152600184016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a350505050565b6001600160a01b038316611290576040517f01a835140000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b604080516001808252602082018590528183019081526060820184905260a082019092525f608082018181529192916105a791879185908590836115ed565b5f806112db84846118f6565b54949350505050565b5f8060ff1961131460017fedb99b3af8e1c50d494d6f1b4c75245a0b733cb90baa42bfe0e2f5bc8b000f82613259565b60405160200161132691815260200190565b60408051601f1981840301815291905280516020909101201692915050565b6040517f79ba43050000000000000000000000000000000000000000000000000000000081525f9081908490829081906001600160a01b038716906379ba43059061139a90869060039060019060040161326c565b606060405180830381865afa1580156113b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113d991906132a4565b5091509150875f03611496575b5f198214611488576040517f79ba430500000000000000000000000000000000000000000000000000000000815291925082916001600160a01b038716906379ba43059061143e90859060039060019060040161326c565b606060405180830381865afa158015611459573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061147d91906132a4565b5090925090506113e6565b5f83945094505050506115e5565b875b5f1983146115dd5782935060028203611548576040517fb21a2494000000000000000000000000000000000000000000000000000000008152600481018490525f90611538906001600160a01b038a169063b21a2494906024015f60405180830381865afa15801561150c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611533919081019061319c565b61196a565b9050611544828261197f565b9150505b6040517f79ba43050000000000000000000000000000000000000000000000000000000081526001600160a01b038816906379ba43059061159390869060039060019060040161326c565b606060405180830381865afa1580156115ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115d291906132a4565b509093509150611498565b945091925050505b935093915050565b6115f9868686866119fa565b6001600160a01b0385161561096d573381156116225761161d818888888888611a5f565b610461565b6020858101519085015161163a838a8a85858a611bfc565b505050505050505050565b5f807a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061168d577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef810000000083106116b9576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106116d757662386f26fc10000830492506010015b6305f5e10083106116ef576305f5e100830492506008015b612710831061170357612710830492506004015b60648310611715576064830492506002015b600a83106102db5760010192915050565b606082515f03611744575060408051602081019091525f81526102db565b5f826117745760038451600261175a91906132e6565b61176491906132f9565b61176f906004613318565b611799565b6003845160046117849190613318565b61178f9060026132e6565b61179991906132f9565b905060405191507f4142434445464748494a4b4c4d4e4f505152535455565758595a616263646566601f5261067083027f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f18603f526020820181810185865187016020810180515f82525b82841015611857576003840193508351603f8160121c16518753600187019650603f81600c1c16518753600187019650603f8160061c16518753600187019650603f811651875350600186019550611804565b9052508590506118985760038651066001811461187b576002811461188e57611896565b603d6001840353603d6002840353611896565b603d60018403535b505b9183525060405292915050565b6118ad611d46565b6118e3576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6118ed6118a5565b610b6b81611d64565b5f8060ff1961192660017f3a8e79826d53842322cdcc810d4a989eb01ac46cfabfd48dcc021625ce13c2d7613259565b60405160200161193891815260200190565b60408051808303601f1901815291815281516020928301205f9687529290921681528185209585529490945250502090565b5f818060200190518101906102db919061332f565b5f7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8311156119dd576040517fbf463fe9000000000000000000000000000000000000000000000000000000008152600481018490526024016107f4565b5f6108bc6119f46119ee865f611db0565b85611e0a565b5f611e6c565b5f611a03610a4d565b90505f5b8351811015611a5257611a3486858381518110611a2657611a26613152565b602002602001015184611eae565b611a4a85858381518110611a2657611a26613152565b600101611a07565b506105a785858585611fb0565b6001600160a01b0384163b1561096d576040517fbc197c810000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063bc197c8190611abc9089908990889088908890600401613346565b6020604051808303815f875af1925050508015611af6575060408051601f3d908101601f19168201909252611af3918101906133a3565b60015b611b76573d808015611b23576040519150601f19603f3d011682016040523d82523d5f602084013e611b28565b606091505b5080515f03611b6e576040517f57f447ce0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024016107f4565b805160208201fd5b7fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014610461576040517f57f447ce0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024016107f4565b6001600160a01b0384163b1561096d576040517ff23a6e610000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063f23a6e6190611c5990899089908890889088906004016133be565b6020604051808303815f875af1925050508015611c93575060408051601f3d908101601f19168201909252611c90918101906133a3565b60015b611cc0573d808015611b23576040519150601f19603f3d011682016040523d82523d5f602084013e611b28565b7fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014610461576040517f57f447ce0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024016107f4565b5f611d4f61108c565b5468010000000000000000900460ff16919050565b7f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45007f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4502610f44838261347c565b5f805f611dbd8585612063565b9150915080611e02576040517f22c9f7bb00000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016107f4565b509392505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d8480611e4f86868686612169565b915091505f611e5e8383612288565b9a9950505050505050505050565b5f807bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8416601b0b60e085901d611ea08282876122e6565b9350935050505b9250929050565b6001600160a01b038316611ec157505050565b5f611eca6112e4565b6001600160a01b0385165f90815260208281526040808320878452909152812054919250611ef886866112cf565b90505f80611f07838588611345565b91509150838103611f1c575050505050505050565b6001600160a01b0388165f908152602086815260408083208a84529091529020819055818314611f5157611f518888846124ce565b60408051858152602081018390529081018490526060810183905287906001600160a01b038a16907f956b049289f8dbe8716375414d9fa6bf32cde65ec1b7e102623775cacc66a6999060800160405180910390a35050505050505050565b5f611fb96124e2565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc200546040517fe5be7d900000000000000000000000000000000000000000000000000000000081529192506001600160a01b03169063e5be7d909061202a9084908990899089908990600401613538565b5f604051808303815f87803b158015612041575f80fd5b505af1158015612053573d5f803e3d5ffd5b505050506105a785858585612563565b5f601b83900b83148383826120c7577d90e40fbeea1d3a4abc8955e946fe31cdcf66f634e10000000000000000008605156120a757620186a0860595506005850194505b8586601b0b146120c257600a860595508460010194506120a7565b6120dd565b855f036120dd57505f925060019150611ea79050565b848560030b14612139575f8512156120fd57505f9250829150611ea79050565b6040517fd556b11100000000000000000000000000000000000000000000000000000000815260048101839052602481018290526044016107f4565b50507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841660e084901b1791509250929050565b5f8085158415178015612181575f92505f915061227e565b61218b848761357d565b91505f612197886127c7565b90505f6121a3876127c7565b90505f6121b08383612828565b5090505f6f0785ee10d5da46d900f436a0000000008211156121e5576f0785ee10d5da46d900f436a000000000820491506025015b670de0b6b3a764000082111561220657670de0b6b3a7640000820491506012015b633b9aca0082111561221f57633b9aca00820491506009015b61271082111561223457612710820491506004015b811561224857600a82049150600101612234565b612252818761357d565b95506122748b8a61226e878761226987600a613684565b612844565b89612929565b9097509550505050505b5094509492505050565b5f805f6122958585612063565b91509150801580156122a5575081155b15611e02576040517f8eba4d0700000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016107f4565b5f805f85121561232c576040517f4a7d166b00000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016107f4565b845f0361233e57505f905060016115e5565b8460ff8416850185811215612389576040517fd556b11100000000000000000000000000000000000000000000000000000000815260048101889052602481018790526044016107f4565b5f805f8312156123f3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb38312156123ca575f8095509550505050506115e5565b825f03600a0a91508184816123e1576123e1613201565b04955050840290911491506115e59050565b5f8313156124be57604d831315612449576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff881660448201526064016107f4565b82600a0a9150815f198161245f5761245f613201565b048411156124ac576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff881660448201526064016107f4565b50919091029250600191506115e59050565b83600195509550505050506115e5565b5f6124d984846118f6565b91909155505050565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201545f907fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc200906001600160a01b03168061253e57339250505090565b6001909101805473ffffffffffffffffffffffffffffffffffffffff19169055919050565b805182517f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c450091146125cd57825182516040517f5b059991000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016107f4565b335f5b84518110156126e8576020818102868101820151908601909101516001600160a01b0389161561269a575f828152602086815260408083206001600160a01b038d16845290915290205481811015612674576040517f03dee4c50000000000000000000000000000000000000000000000000000000081526001600160a01b038b1660048201526024810182905260448101839052606481018490526084016107f4565b5f838152602087815260408083206001600160a01b038e16845290915290209082900390555b6001600160a01b038816156126de575f828152602086815260408083206001600160a01b038c168452909152812080548392906126d89084906132e6565b90915550505b50506001016125d0565b5083516001036127685760208401515f906020850151909150866001600160a01b0316886001600160a01b0316846001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051612759929190918252602082015260400190565b60405180910390a4505061096d565b846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516127b792919061368f565b60405180910390a4505050505050565b5f80821215612824577f8000000000000000000000000000000000000000000000000000000000000000820361281e57507f8000000000000000000000000000000000000000000000000000000000000000919050565b505f0390565b5090565b5f805f1983850993909202808410938190039390930393915050565b5f805f6128518686612828565b91509150815f036128755783818161286b5761286b613201565b0492505050610b00565b8382106128bf576040517f6c59da120000000000000000000000000000000000000000000000000000000081526004810187905260248101869052604481018590526064016107f4565b5f84868809600186198101871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103025f82900382900490920185841190960395909502919093039390930492909217029150509392505050565b5f805f85871812156129f3577f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8411156129e0576129887f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60016132e6565b84036129b857507f8000000000000000000000000000000000000000000000000000000000000000905081612a2c565b6129c3600a856132f9565b6129cc906136b3565b6129d784600161357d565b91509150612a2c565b6129e9846136b3565b8391509150612a2c565b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841115612a26576129cc600a856132f9565b50829050815b94509492505050565b6001600160a01b0381168114610b6b575f80fd5b5f8060408385031215612a5a575f80fd5b8235612a6581612a35565b946020939093013593505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114610b6b575f80fd5b5f60208284031215612ab0575f80fd5b8135610b0081612a73565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612af857612af8612abb565b604052919050565b5f67ffffffffffffffff821115612b1957612b19612abb565b50601f01601f191660200190565b5f82601f830112612b36575f80fd5b8135612b49612b4482612b00565b612acf565b818152846020838601011115612b5d575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f8060c08789031215612b8e575f80fd5b8635612b9981612a35565b95506020870135612ba981612a35565b94506040870135612bb981612a35565b9350606087013592506080870135915060a087013567ffffffffffffffff811115612be2575f80fd5b612bee89828a01612b27565b9150509295509295509295565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6102d86020830184612bfb565b5f60208284031215612c4b575f80fd5b5035919050565b5f8060408385031215612c63575f80fd5b82359150602083013567ffffffffffffffff811115612c80575f80fd5b612c8c85828601612b27565b9150509250929050565b5f67ffffffffffffffff821115612caf57612caf612abb565b5060051b60200190565b5f82601f830112612cc8575f80fd5b81356020612cd8612b4483612c96565b8083825260208201915060208460051b870101935086841115612cf9575f80fd5b602086015b84811015612d155780358352918301918301612cfe565b509695505050505050565b5f805f805f60a08688031215612d34575f80fd5b8535612d3f81612a35565b94506020860135612d4f81612a35565b9350604086013567ffffffffffffffff80821115612d6b575f80fd5b612d7789838a01612cb9565b94506060880135915080821115612d8c575f80fd5b612d9889838a01612cb9565b93506080880135915080821115612dad575f80fd5b50612dba88828901612b27565b9150509295509295909350565b5f60208284031215612dd7575f80fd5b813567ffffffffffffffff811115612ded575f80fd5b612df984828501612b27565b949350505050565b5f8060408385031215612e12575f80fd5b823567ffffffffffffffff80821115612e29575f80fd5b818501915085601f830112612e3c575f80fd5b81356020612e4c612b4483612c96565b82815260059290921b84018101918181019089841115612e6a575f80fd5b948201945b83861015612e91578535612e8281612a35565b82529482019490820190612e6f565b96505086013592505080821115612ea6575f80fd5b50612c8c85828601612cb9565b5f815180845260208085019450602084015f5b83811015612ee257815187529582019590820190600101612ec6565b509495945050505050565b602081525f6102d86020830184612eb3565b5f805f805f60a08688031215612f13575f80fd5b8535612f1e81612a35565b94506020860135612f2e81612a35565b93506040860135925060608601359150608086013567ffffffffffffffff811115612f57575f80fd5b612dba88828901612b27565b5f8060408385031215612f74575f80fd5b8235612f7f81612a35565b915060208301358015158114612f93575f80fd5b809150509250929050565b5f8060408385031215612faf575f80fd5b8235612fba81612a35565b91506020830135612f9381612a35565b5f81518060208401855e5f93019283525090919050565b5f612df9612fef8386612fca565b84612fca565b7f7b22646563696d616c73223a000000000000000000000000000000000000000081525f613026600c830187612fca565b7f2c226465736372697074696f6e223a2231206f6620746865736520726563656981527f7074732063616e206265206275726e656420616c6f6e67736964652031200000602082015261307c603e820187612fca565b90507f20746f2072656465656d2000000000000000000000000000000000000000000081526130ae600b820186612fca565b90507f2066726f6d20746865207661756c742e222c000000000000000000000000000081527f226e616d65223a220000000000000000000000000000000000000000000000006012820152613106601a820185612fca565b7f227d0000000000000000000000000000000000000000000000000000000000008152600201979650505050505050565b5f60208284031215613147575f80fd5b8151610b0081612a35565b634e487b7160e01b5f52603260045260245ffd5b5f613173612b4484612b00565b9050828152838383011115613186575f80fd5b8282602083015e5f602084830101529392505050565b5f602082840312156131ac575f80fd5b815167ffffffffffffffff8111156131c2575f80fd5b8201601f810184136131d2575f80fd5b612df984825160208401613166565b5f602082840312156131f1575f80fd5b815160ff81168114610b00575f80fd5b634e487b7160e01b5f52601260045260245ffd5b6001600160a01b0384168152826020820152606060408201525f61323c6060830184612bfb565b95945050505050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156102db576102db613245565b83815260208101839052606081016003831061329657634e487b7160e01b5f52602160045260245ffd5b826040830152949350505050565b5f805f606084860312156132b6575f80fd5b8351925060208401519150604084015167ffffffffffffffff811681146132db575f80fd5b809150509250925092565b808201808211156102db576102db613245565b5f8261331357634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176102db576102db613245565b5f6020828403121561333f575f80fd5b5051919050565b5f6001600160a01b03808816835280871660208401525060a0604083015261337160a0830186612eb3565b82810360608401526133838186612eb3565b905082810360808401526133978185612bfb565b98975050505050505050565b5f602082840312156133b3575f80fd5b8151610b0081612a73565b5f6001600160a01b03808816835280871660208401525084604083015283606083015260a060808301526133f560a0830184612bfb565b979650505050505050565b600181811c9082168061341457607f821691505b60208210810361343257634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115610f4457805f5260205f20601f840160051c8101602085101561345d5750805b601f840160051c820191505b818110156105a7575f8155600101613469565b815167ffffffffffffffff81111561349657613496612abb565b6134aa816134a48454613400565b84613438565b602080601f8311600181146134dd575f84156134c65750858301515b5f19600386901b1c1916600185901b17855561096d565b5f85815260208120601f198616915b8281101561350b578886015182559484019460019091019084016134ec565b508582101561352857878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f6001600160a01b038088168352808716602084015280861660408401525060a0606083015261356b60a0830185612eb3565b82810360808401526133978185612eb3565b8082018281125f83128015821682158216171561359c5761359c613245565b505092915050565b600181815b808511156135de57815f19048211156135c4576135c4613245565b808516156135d157918102915b93841c93908002906135a9565b509250929050565b5f826135f4575060016102db565b8161360057505f6102db565b816001811461361657600281146136205761363c565b60019150506102db565b60ff84111561363157613631613245565b50506001821b6102db565b5060208310610133831016604e8410600b841016171561365f575081810a6102db565b61366983836135a4565b805f190482111561367c5761367c613245565b029392505050565b5f6102d883836135e6565b604081525f6136a16040830185612eb3565b828103602084015261323c8185612eb3565b5f7f8000000000000000000000000000000000000000000000000000000000000000820361281e5761281e61324556"; diff --git a/src/generated/0_1_7/StoxReceiptVault.pointers.sol b/src/generated/0_1_7/StoxReceiptVault.pointers.sol deleted file mode 100644 index 95c52050..00000000 --- a/src/generated/0_1_7/StoxReceiptVault.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x22aa77aa9ffec4d290a8cacbcd8444b85761b6a1fb77c3f1b1a73490a7d9f972); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0xD7f91c1C6e6e651Ec3F1Fd707aF7CbB7526206e1); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"608060405234801561000f575f80fd5b5060017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005561003c610041565b6100f3565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100915760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100f05780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b615ffa806101005f395ff3fe608060405260043610610337575f3560e01c8063715018a6116101af578063bbec4d06116100eb578063dd62ed3e11610094578063e70689f51161006e578063e70689f5146109ab578063f2fde38b146109ca578063f5647943146109e9578063f5d214f514610a1e5761033e565b8063dd62ed3e146108ed578063e1e6b89814610950578063e5be7d901461098c5761033e565b8063c77b66c2116100c5578063c77b66c2146108b3578063d09edf31146108c6578063db2088f4146108da5761033e565b8063bbec4d0614610875578063c54cafee14610894578063c63d75b6146105635761033e565b80638da5cb5b11610158578063a9059cbb11610132578063a9059cbb146107b8578063ac9650d8146107d7578063ae57de0c14610803578063ae98b39f146108225761033e565b80638da5cb5b14610771578063921a4c421461078557806395d89b41146107a45761033e565b80637a7af70d116101895780637a7af70d1461072057806381c3fcb91461073357806385b68756146107525761033e565b8063715018a6146106ce578063770afee1146106e2578063786cd916146107015761033e565b8063276b11401161027e5780634abe413711610227578063633ac71711610201578063633ac7171461061e5780636ba235211461063d5780636c876b941461069057806370a08231146106af5761033e565b80634abe4137146105c157806356db02e8146105e057806359f89dda146105ff5761033e565b8063402d267d11610258578063402d267d14610563578063439fab9114610583578063488bd7b0146105a25761033e565b8063276b1140146104fe578063313ce5671461051157806338d52e0f146105375761033e565b806318160ddd116102e05780631f6759d3116102ba5780631f6759d31461048d57806323b872dd146104c05780632755c6c7146104df5761033e565b806318160ddd1461043b578063181e7b3b1461044f5780631e4344a11461046e5761033e565b806306fdde031161031157806306fdde03146103e8578063095ea7b3146104095780631423feba146104285761033e565b806301e1d1141461037357806301ffc9a71461039a578063058a628f146103c95761033e565b3661033e57005b73b7e24412126ad6a2ce19cbd79fd11b68e7f30cf6365f80375f80365f845af43d5f803e80801561036d573d5ff35b3d5ffd5b005b34801561037e575f80fd5b50610387610a51565b6040519081526020015b60405180910390f35b3480156103a5575f80fd5b506103b96103b4366004614f0e565b610a5f565b6040519015158152602001610391565b3480156103d4575f80fd5b506103716103e3366004614f61565b610aba565b3480156103f3575f80fd5b506103fc610ce3565b6040516103919190614faa565b348015610414575f80fd5b506103b9610423366004614fbc565b610db6565b610387610436366004615109565b610dcd565b348015610446575f80fd5b50610387610e17565b34801561045a575f80fd5b50610387610469366004615168565b610e20565b348015610479575f80fd5b50610371610488366004615188565b610e3f565b348015610498575f80fd5b507f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70054610387565b3480156104cb575f80fd5b506103b96104da36600461519f565b610ecb565b3480156104ea575f80fd5b506103716104f9366004614fbc565b610eee565b61038761050c366004615168565b611028565b34801561051c575f80fd5b50610525611053565b60405160ff9091168152602001610391565b348015610542575f80fd5b5061054b6110f8565b6040516001600160a01b039091168152602001610391565b34801561056e575f80fd5b5061038761057d366004614f61565b505f1990565b34801561058e575f80fd5b5061038761059d3660046151dd565b61112c565b3480156105ad575f80fd5b506103876105bc366004615168565b6113d1565b3480156105cc575f80fd5b506103876105db366004614fbc565b6113e9565b3480156105eb575f80fd5b506103876105fa36600461520f565b6114a3565b34801561060a575f80fd5b50610371610619366004615256565b6117e4565b348015610629575f80fd5b50610371610638366004614f61565b61181c565b348015610648575f80fd5b50610387610657366004614f61565b6001600160a01b03165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be701602052604090205490565b34801561069b575f80fd5b506103716106aa366004614f61565b611949565b3480156106ba575f80fd5b506103876106c9366004614f61565b611a49565b3480156106d9575f80fd5b50610371611a92565b3480156106ed575f80fd5b506103876106fc366004615256565b611aa5565b34801561070c575f80fd5b5061037161071b366004614fbc565b611c5f565b61038761072e366004615168565b611d90565b34801561073e575f80fd5b5061037161074d3660046151dd565b611da5565b34801561075d575f80fd5b5061038761076c366004614fbc565b611de1565b34801561077c575f80fd5b5061054b611ec4565b348015610790575f80fd5b5061038761079f3660046152ab565b611ecd565b3480156107af575f80fd5b506103fc611efa565b3480156107c3575f80fd5b506103b96107d2366004614fbc565b611f4b565b3480156107e2575f80fd5b506107f66107f136600461531c565b611f58565b604051610391919061538b565b34801561080e575f80fd5b5061038761081d3660046152ab565b61203e565b34801561082d575f80fd5b5061038761083c366004614f61565b6001600160a01b03165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be702602052604090205490565b348015610880575f80fd5b5061038761088f366004615168565b612061565b34801561089f575f80fd5b506103876108ae366004615449565b61206f565b6103876108c1366004615109565b612157565b3480156108d1575f80fd5b5061054b612186565b6103876108e8366004615168565b6121ae565b3480156108f8575f80fd5b506103876109073660046154ae565b6001600160a01b039182165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b34801561095b575f80fd5b507f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031661054b565b348015610997575f80fd5b506103716109a6366004615557565b6121c2565b3480156109b6575f80fd5b506103716109c53660046155ed565b6122f9565b3480156109d5575f80fd5b506103716109e4366004614f61565b612462565b3480156109f4575f80fd5b507fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd025442116103b9565b348015610a29575f80fd5b507fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0154610387565b5f610a5a610e17565b905090565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f59f89dda000000000000000000000000000000000000000000000000000000001480610ab45750610ab4826124b8565b92915050565b6040517f248a9ca30000000000000000000000000000000000000000000000000000000081527ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f8960048201525f906001600160a01b0383169063248a9ca390602401602060405180830381865afa158015610b37573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b5b9190615645565b905080610bca576040517f76728ed90000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201527ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f8960248201526044015b60405180910390fd5b6040517f248a9ca30000000000000000000000000000000000000000000000000000000081527f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e760048201525f906001600160a01b0384169063248a9ca390602401602060405180830381865afa158015610c47573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c6b9190615645565b905080610cd5576040517f76728ed90000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201527f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e76024820152604401610bc1565b610cde836125e6565b505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0380546060917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0091610d349061565c565b80601f0160208091040260200160405190810160405280929190818152602001828054610d609061565c565b8015610dab5780601f10610d8257610100808354040283529160200191610dab565b820191905f5260205f20905b815481529060010190602001808311610d8e57829003601f168201915b505050505091505090565b5f33610dc38185856125f7565b5060019392505050565b5f80610dd7612604565b90505f610df187610deb335b89865f61265b565b8761266f565b9050610e008787838588612685565b610e0b335b476128ac565b9150505b949350505050565b5f610a5a612955565b5f610e3883670de0b6b3a7640000612ab4565b612ab4565b9392505050565b610e47612ac0565b7f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be7008054821115610e75578181555b7fff9fd4facd8bd30d905cc7ffbd03e8829a414df4c6554d155d132c3377868a42610e9e611ec4565b8254604080516001600160a01b039093168352602083018690528201526060015b60405180910390a15050565b5f33610ed8858285612b0b565b610ee3858585612bbf565b506001949350505050565b610ef6612ac0565b805f03610f3a576040517f5a6084530000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610bc1565b6001600160a01b0382165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70260205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70090821115610fb7576001600160a01b0383165f90815260028201602052604090208290555b7fa1e5b368dc99c8558f28b1e7e8cb7ab542c989a4b697628ba7bfffe0aeaccffd610fe0611ec4565b6001600160a01b038581165f818152600286016020908152604091829020548251959094168552840191909152820185905260608201526080015b60405180910390a1505050565b5f8061104884611042335b3361103c612604565b5f61265b565b85612c4e565b9050610e3833610e05565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f308970152310243260080545f91906001600160a01b0316803b806110905760126110f0565b816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110f091906156a7565b935050505090565b5f807f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f30897015231024326005b546001600160a01b031692915050565b5f80611136612c65565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156111625750825b90505f8267ffffffffffffffff16600114801561117e5750303b155b90508115801561118c575080155b156111c3576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156112245784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b61122c612c8d565b5f878060200190518101906112419190615714565b90506112508160200151612cc6565b6020810151516001600160a01b031615611296576040517f8951799200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80516001600160a01b03166112d7576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6112e030612e39565b80516112eb90612f99565b7ffa89761502e992c8c755fba778ced00f4562485023f656906eb76f5dd65a9fe53360408051808201825284516001600160a01b0316815260208086015190820152905161133a92919061580b565b60405180910390a17fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc396505083156113c75784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b5f610e38836113e4335b3386600161265b565b613021565b5f61141b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031690565b6040517efdd58e0000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015260248201859052919091169062fdd58e90604401602060405180830381865afa15801561147f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e389190615645565b5f6114ac61302e565b825f036114e5576040517f312497b000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6115a98461151b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031690565b6040517efdd58e0000000000000000000000000000000000000000000000000000000081526001600160a01b038a81166004830152602482018a9052919091169062fdd58e90604401602060405180830381865afa15801561157f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115a39190615645565b9061305c565b905080156116c6577f88e2280ece62e9296d3578b77647db2c11f9fa7e42578e2db5d4262123ffae3e3387878785886040516115ea969594939291906158af565b60405180910390a17f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b03166001600160a01b031663043fa98733883360405160e085901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b03938416600482015291831660248301529091166044820152606481018890526084810184905260c060a48201525f60c482015260e4015f604051808303815f87803b1580156116af575f80fd5b505af11580156116c1573d5f803e3d5ffd5b505050505b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f3dd35eca0ca8a128757fa464a5dfa4ad6cc4853cad96dce4e90fdbea4f0a52e36040518060a001604052808c6001600160a01b031681526020018b81526020018a81526020018781526020018981525060405160200161175d91906158f8565b6040516020818303038152906040526040518463ffffffff1660e01b815260040161178a93929190615943565b5f604051808303815f87803b1580156117a1575f80fd5b505af11580156117b3573d5f803e3d5ffd5b5093945050505050610e0f60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b8282826040517f3ae4063b000000000000000000000000000000000000000000000000000000008152600401610bc193929190615943565b611824612ac0565b6001600160a01b0381165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70260205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be7009042116118d9576001600160a01b0382165f818152600283016020526040908190205490517f81a7897700000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610bc1565b6001600160a01b0382165f9081526002820160205260408120557fa1e5b368dc99c8558f28b1e7e8cb7ab542c989a4b697628ba7bfffe0aeaccffd61191c611ec4565b604080516001600160a01b03928316815291851660208301525f9082018190526060820152608001610ebf565b611951612ac0565b6001600160a01b0381165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70160205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be700904211611a06576001600160a01b0382165f818152600183016020526040908190205490517ff1b01b5400000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610bc1565b6001600160a01b0382165f9081526001820160205260408120557fd08871fffa9d03c01fcba597af5dfbe64cb26f207debdae1af2532695447499161191c611ec4565b5f80611a548361306b565b90505f611a5f61307e565b6001600160a01b0385165f90815260038201602052604081205491925090611a889084906130df565b5095945050505050565b611a9a612ac0565b611aa35f612f99565b565b5f611aae61302e565b825f03611ae7576040517f312497b000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f611af5846115a387611a49565b90508015611b47577f3fc1c49e72362e91416388fe7a107b92db924642476e83e701eeeb6256d7249e3386868487604051611b3495949392919061596a565b60405180910390a1611b47853383612bbf565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f54f0af3716c79b30b8c228679d31d77a1a5f526c16af3262730e0a8de4363fed60405180608001604052808b6001600160a01b031681526020018a815260200187815260200189815250604051602001611bd891906159a1565b6040516020818303038152906040526040518463ffffffff1660e01b8152600401611c0593929190615943565b5f604051808303815f87803b158015611c1c575f80fd5b505af1158015611c2e573d5f803e3d5ffd5b5093945050505050610e3860017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b611c67612ac0565b805f03611cab576040517ffd86061b0000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610bc1565b6001600160a01b0382165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70160205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70090821115611d28576001600160a01b0383165f90815260018201602052604090208290555b7fd08871fffa9d03c01fcba597af5dfbe64cb26f207debdae1af25326954474991611d51611ec4565b6001600160a01b038581165f8181526001860160209081526040918290205482519590941685528401919091528201859052606082015260800161101b565b5f8061104884611d9f33611033565b8561266f565b7fdaffad82f53a38a62340f14cdd6fd3b437c5dcda6b32029dac1e661dbce28b2d3382604051611dd69291906159e2565b60405180910390a150565b5f80611df0848585600161265b565b9050805f03611e02575f915050610ab4565b610e0f611e367f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031690565b6040517efdd58e0000000000000000000000000000000000000000000000000000000081526001600160a01b03878116600483015260248201879052919091169062fdd58e90604401602060405180830381865afa158015611e9a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ebe9190615645565b82612ab4565b5f610a5a61318d565b5f80611ee087610e33878988600161265b565b9050611ef08187878a88886131b5565b9695505050505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0480546060917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0091610d349061565c565b5f33610dc3818585612bbf565b604080515f8152602081019091526060908267ffffffffffffffff811115611f8257611f82614fe6565b604051908082528060200260200182016040528015611fb557816020015b6060815260200190600190039081611fa05790505b5091505f5b838110156120365761201130868684818110611fd857611fd8615a43565b9050602002810190611fea9190615a70565b85604051602001611ffd93929190615ad1565b60405160208183030381529060405261357b565b83828151811061202357612023615a43565b6020908102919091010152600101611fba565b505092915050565b5f80612051876113e4878988600161265b565b9050611ef08787878488886131b5565b5f610e3883610e33336113db565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd01545f907fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd00908511156120f1576040517fe4a4718200000000000000000000000000000000000000000000000000000000815260048101869052602401610bc1565b5f61210888612102338a8a5f61265b565b5f61266f565b905061214c8888838989898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061268592505050565b979650505050505050565b5f80612161612604565b90505f6121778761217133610de3565b87612c4e565b9050610e008187898588612685565b5f807fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0061111c565b5f8061104884670de0b6b3a7640000612102565b6121cf8585858585613616565b6121d98484613679565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080546040805160a0810182526001600160a01b0388811682528781166020830152918101869052606081018590529116906359f89dda9088907f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a4890608081016122837fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0254421190565b151590526040516122979190602001615b2e565b6040516020818303038152906040526040518463ffffffff1660e01b81526004016122c493929190615943565b5f604051808303815f87803b1580156122db575f80fd5b505af11580156122ed573d5f803e3d5ffd5b50505050505050505050565b835f03612332576040517f8672985d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0090505f6040518060a001604052808360020154815260200183600201548152602001878152602001861515815260200185858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152505050915250905084806123cc5750816002015486115b156123e05760028201869055602081018690525b7f7ef5cae78e9bd364afb19bb0f8a881a6d156e35a119e28c0d17524e5079581583387878787604051612417959493929190615ba0565b60405180910390a181546001600160a01b03166359f89dda337f50a07cb25d0d864370863300b20987dfdae089abad71b607faf639d09d053391846040516020016122979190615bee565b61246a612ac0565b6001600160a01b0381166124ac576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6124b581612f99565b50565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fe5be7d9000000000000000000000000000000000000000000000000000000000148061254a57507fffffffff0000000000000000000000000000000000000000000000000000000082167f439fab9100000000000000000000000000000000000000000000000000000000145b8061259657507fffffffff0000000000000000000000000000000000000000000000000000000082167fe1e6b89800000000000000000000000000000000000000000000000000000000145b80610ab457507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610ab4565b6125ee612ac0565b6124b581612e39565b610cde8383836001613739565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd01545f907fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0090612655906001615c32565b91505090565b5f670de0b6b3a76400005b95945050505050565b5f61267a8284613861565b610e0f84845f6138a5565b61268d61302e565b845f036126c6576040517fc7838b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825f036126ff576040517ffc8c806300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03841661273f576040517f6ba9ecd800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f0361277a576040517fe4a471820000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b7f3377bcbed49a0c0005e53931cd8fe7334b5371523e5de784c0d0d3d01089cfea3385878686866040516127b3969594939291906158af565b60405180910390a16127c885858585856138ba565b6127d28484613915565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546040517f6d5b3f780000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690636d5b3f7890612842903390889087908990889060040161596a565b5f604051808303815f87803b158015612859575f80fd5b505af115801561286b573d5f803e3d5ffd5b5050505061287c8585858585613962565b6128a560017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5050505050565b804710156128ef576040517fcf47918100000000000000000000000000000000000000000000000000000000815247600482015260248101829052604401610bc1565b612908828260405180602001604052805f815250613a0e565b15612911575050565b3d156129235761291f613a23565b5050565b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8061295f61307e565b60028101549091505f0361297557612655613a2e565b5f6129845f1960036001613a93565b90505f5b5f198214610e38575f8360020183815481106129a6576129a6615a43565b905f5260205f2090600502015f0154905060028103612a83575f612a738560020185815481106129d8576129d8615a43565b905f5260205f20906005020160040180546129f29061565c565b80601f0160208091040260200160405190810160405280929190818152602001828054612a1e9061565c565b8015612a695780601f10612a4057610100808354040283529160200191612a69565b820191905f5260205f20905b815481529060010190602001808311612a4c57829003601f168201915b5050505050613b8e565b9050612a7f8382613ba3565b9250505b5f838152600485016020526040902054612a9d9083615c32565b9150612aac8360036001613a93565b925050612988565b5f610e38838383613c27565b33612ac9611ec4565b6001600160a01b031614611aa3576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610bc1565b6001600160a01b038381165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160209081526040808320938616835292905220545f19811015612bb95781811015612bab576040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201526024810182905260448101839052606401610bc1565b612bb984848484035f613739565b50505050565b6001600160a01b038316612c01576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6001600160a01b038216612c43576040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b610cde838383613c3c565b5f612c598284613861565b610e0f84846001613c27565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610ab4565b425f03611aa3576040517f789a532d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612cce613c8f565b612ce081602001518260400151613c97565b80517f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f308970152310243260080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b0393841617825560608401517f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601805490921693169283179055604080517f481c6a75000000000000000000000000000000000000000000000000000000008152905191925f92909163481c6a759160048083019260209291908290030181865afa158015612dc0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612de49190615c45565b90506001600160a01b0381163014610cde576040517f7935475e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b0382166024820152604401610bc1565b6040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f59f89dda0000000000000000000000000000000000000000000000000000000060048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa158015612eb4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ed89190615c60565b612f0e576040517ffd12061600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03831690811782556040805133815260208101929092527fa8c713fe8fb360697fc0daab836d85208a605d485fbc265aea0f773fc6cdd71a9101610ebf565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f610e38838360016138a5565b613036613ca9565b60027f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5f828218828410028218610e38565b5f8061307683613d04565b549392505050565b5f8060ff196130ae60017f2f8f8ecf1b7a1a3ceda8d15a9a2247a2377b3434535a87f1728021c13fec2e71615a30565b6040516020016130c091815260200190565b60408051601f1981840301815291905280516020909101201692915050565b5f8082816130eb61307e565b9050855f6130fc8760036001613a93565b90505b5f19811461317e57925082811580159061313c5750600283600201828154811061312b5761312b615a43565b905f5260205f2090600502015f0154145b1561316a575f61315a8460020183815481106129d8576129d8615a43565b90506131668382613ba3565b9250505b6131778160036001613a93565b90506130ff565b509350909150505b9250929050565b5f807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930061111c565b6131bd61302e565b855f036131f6576040517fc7838b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825f0361322f576040517ffc8c806300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03851661326f576040517f6ba9ecd800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0384166132af576040517f9905827b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f036132eb576040517fe4a4718200000000000000000000000000000000000000000000000000000000815260048101839052602401610bc1565b7f2845b9458bcc357e1abfe8de7f6832dfe7220596a053496b33d0deb6577d8d2a338686898787876040516133269796959493929190615c7b565b60405180910390a16001600160a01b038416331461349557613349843385612b0b565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b03166001600160a01b031663e985e9c585336040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa1580156133e5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134099190615c60565b613495576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60448201527f6572206f7220617070726f7665640000000000000000000000000000000000006064820152608401610bc1565b61349f8484613d71565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546040517fc2530e390000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063c2530e399061350f903390889087908990889060040161596a565b5f604051808303815f87803b158015613526575f80fd5b505af1158015613538573d5f803e3d5ffd5b5050505061354a868686868686613dbe565b61357360017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b505050505050565b60605f6135888484613ec7565b90508080156135a957505f3d11806135a957505f846001600160a01b03163b115b156135be576135b6613eda565b915050610ab4565b8015613601576040517f9996b3150000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610bc1565b3d156129235761360f613a23565b5092915050565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031633146128a5576040517f8813aac300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be700805442118015906136c257506001600160a01b0383165f908152600182016020526040902054155b80156136e557506001600160a01b0382165f908152600282016020526040902054155b15610cde5780546040517f79d7155100000000000000000000000000000000000000000000000000000000815260048101919091526001600160a01b03808516602483015283166044820152606401610bc1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b03851661379c576040517fe602df050000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6001600160a01b0384166137de576040517f94280d620000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6001600160a01b038086165f908152600183016020908152604080832093881683529290522083905581156128a557836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258560405161385291815260200190565b60405180910390a35050505050565b8181101561291f576040517fa3e322340000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610bc1565b5f610e0f8484670de0b6b3a764000085613ef3565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd01547fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd00906139089084613f35565b6001909101555050505050565b6001600160a01b038216613957576040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b61291f5f8383613c3c565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8216040518060c001604052806139cb3390565b6001600160a01b031681526020018a6001600160a01b031681526020018881526020018b8152602001898152602001878152506040516020016122979190615d20565b5f805f83516020850186885af1949350505050565b6040513d5f823e3d81fd5b5f8060ff19613a5e60017fb750591399365444a618527b69a54ce09476c8bde1ecff60f5aa1fe2b52605ff615a30565b604051602001613a7091815260200190565b60408051808303601f190181529190528051602090910120166002015492915050565b5f600783168103613ad0576040517fbf3cad0b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f613ad961307e565b60028101549091505f03613af1575f19915050610e38565b5f5f198614613b2457816002018681548110613b0f57613b0f615a43565b905f5260205f20906005020160030154613b27565b81545b90506002846002811115613b3d57613b3d615d32565b03613b5f57613b5682613b508484613f44565b87613fbf565b92505050610e38565b6001846002811115613b7357613b73615d32565b03613b8357613b56828287614017565b611ef0828287613fbf565b5f81806020019051810190610ab49190615645565b5f7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115613c01576040517fbf463fe900000000000000000000000000000000000000000000000000000000815260048101849052602401610bc1565b5f613c1e613c18613c12865f614084565b856140de565b5f614140565b50949350505050565b5f610e0f84670de0b6b3a76400008585613ef3565b613c44614181565b613c4d836141e7565b613c56826141e7565b613c618383836142d4565b6001600160a01b038316613c7857610cde81614434565b6001600160a01b038216610cde57610cde81614477565b611aa36144b1565b613c9f6144b1565b61291f82826144ef565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0054600203611aa3576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8060ff19613d3460017fb750591399365444a618527b69a54ce09476c8bde1ecff60f5aa1fe2b52605ff615a30565b604051602001613d4691815260200190565b60408051601f1981840301815291815281516020928301205f96875292909216905290922092915050565b6001600160a01b038216613db3576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b61291f825f83613c3c565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e9828696040518060c001604052808a6001600160a01b031681526020018b6001600160a01b031681526020018881526020018c815260200189815260200187815250604051602001613e649190615d20565b6040516020818303038152906040526040518463ffffffff1660e01b8152600401613e9193929190615943565b5f604051808303815f87803b158015613ea8575f80fd5b505af1158015613eba573d5f803e3d5ffd5b5050505050505050505050565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b5f613f20613f0083614552565b8015613f1b57505f8480613f1657613f16615d5f565b868809115b151590565b613f2b86868661457e565b6126669190615c32565b5f828218828411028218610e38565b5f5b5f198214158015613f88575042836002018381548110613f6857613f68615a43565b5f91825260209091206001600590920201015467ffffffffffffffff1611155b15613fb957826002018281548110613fa257613fa2615a43565b905f5260205f209060050201600301549150613f46565b50919050565b5f5b5f19831461400d575f846002018481548110613fdf57613fdf615a43565b905f5260205f209060050201905082815f0154165f146140025783915050610e38565b600301549250613fc1565b505f199392505050565b5f5b5f19831461400d575f84600201848154811061403757614037615a43565b5f918252602090912060059091020160018101549091504267ffffffffffffffff9091161115614067575061400d565b80548316156140795783915050610e38565b600301549250614019565b5f805f614091858561462e565b91509150806140d6576040517f22c9f7bb0000000000000000000000000000000000000000000000000000000081526004810186905260248101859052604401610bc1565b509392505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d848061412386868686614734565b915091505f6141328383614853565b9a9950505050505050505050565b5f807bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8416601b0b60e085901d6141748282876148b1565b9350935050509250929050565b5f61418a61307e565b60028101549091505f0361419b5750565b5f6141b0826005015460026001176001613a93565b90505f195b5f1982146141d35750806141cc8160036001613a93565b91506141b5565b5f198114610cde5760058301819055505050565b6001600160a01b0381166141f85750565b5f61420161307e565b6001600160a01b0383165f9081526003820160205260408120549192506142278461306b565b90505f8061423583856130df565b9150915083810361424857505050505050565b6001600160a01b0386165f9081526003860160205260409020819055818314614275576142758683614a9c565b6040805185815260208101839052908101849052606081018390526001600160a01b038716907f36a2eb39b73568d38e98721588b15b309c9380e1b1ab575c2c3d71d5148ccb4a9060800160405180910390a261357384848385614aae565b6142de8383613679565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a6040518060800160405280896001600160a01b03168152602001886001600160a01b0316815260200187815260200161438e7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0254421190565b151590526040805182516001600160a01b03908116602080840191909152840151168183015290820151606080830191909152909101511515608082015260a0016040516020818303038152906040526040518463ffffffff1660e01b81526004016143fc93929190615943565b5f604051808303815f87803b158015614413575f80fd5b505af1158015614425573d5f803e3d5ffd5b50505050612bb9848484614b0b565b5f61443d61307e565b60028101549091501561291f5760058101545f9081526004820160205260408120805484929061446e908490615c32565b90915550505050565b5f61448061307e565b60028101549091501561291f5760058101545f9081526004820160205260408120805484929061446e908490615a30565b6144b9614b16565b611aa3576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6144f76144b1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace007f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace036145438482615dd0565b5060048101612bb98382615dd0565b5f600282600381111561456757614567615d32565b6145719190615e8c565b60ff166001149050919050565b5f805f61458b8686614b34565b91509150815f036145af578381816145a5576145a5615d5f565b0492505050610e38565b8184116145c6576145c66003851502601118614b50565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010185841190960395909502919093039390930492909217029150509392505050565b5f601b83900b8314838382614692577d90e40fbeea1d3a4abc8955e946fe31cdcf66f634e100000000000000000086051561467257620186a0860595506005850194505b8586601b0b1461468d57600a86059550846001019450614672565b6146a8565b855f036146a857505f9250600191506131869050565b848560030b14614704575f8512156146c857505f92508291506131869050565b6040517fd556b1110000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610bc1565b50507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841660e084901b1791509250929050565b5f808515841517801561474c575f92505f9150614849565b6147568487615ead565b91505f61476288614b61565b90505f61476e87614b61565b90505f61477b8383614b34565b5090505f6f0785ee10d5da46d900f436a0000000008211156147b0576f0785ee10d5da46d900f436a000000000820491506025015b670de0b6b3a76400008211156147d157670de0b6b3a7640000820491506012015b633b9aca008211156147ea57633b9aca00820491506009015b6127108211156147ff57612710820491506004015b811561481357600a820491506001016147ff565b61481d8187615ead565b955061483f8b8a614839878761483487600a615fac565b614bc2565b89614c9d565b9097509550505050505b5094509492505050565b5f805f614860858561462e565b9150915080158015614870575081155b156140d6576040517f8eba4d070000000000000000000000000000000000000000000000000000000081526004810186905260248101859052604401610bc1565b5f805f8512156148f7576040517f4a7d166b0000000000000000000000000000000000000000000000000000000081526004810186905260248101859052604401610bc1565b845f0361490957505f90506001614a94565b8460ff8416850185811215614954576040517fd556b1110000000000000000000000000000000000000000000000000000000081526004810188905260248101879052604401610bc1565b5f805f8312156149be577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb3831215614995575f809550955050505050614a94565b825f03600a0a91508184816149ac576149ac615d5f565b0495505084029091149150614a949050565b5f831315614a8957604d831315614a14576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff88166044820152606401610bc1565b82600a0a9150815f1981614a2a57614a2a615d5f565b04841115614a77576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff88166044820152606401610bc1565b5091909102925060019150614a949050565b509193506001925050505b935093915050565b5f614aa683613d04565b919091555050565b5f614ab761307e565b905083816004015f8781526020019081526020015f205f828254614adb9190615a30565b90915550505f83815260048201602052604081208054849290614aff908490615c32565b90915550505050505050565b610cde838383614da9565b5f614b1f612c65565b5468010000000000000000900460ff16919050565b5f805f1983850993909202808410938190039390930393915050565b634e487b715f52806020526024601cfd5b5f80821215614bbe577f80000000000000000000000000000000000000000000000000000000000000008203614bb857507f8000000000000000000000000000000000000000000000000000000000000000919050565b505f0390565b5090565b5f805f614bcf8686614b34565b91509150815f03614be9578381816145a5576145a5615d5f565b838210614c33576040517f6c59da12000000000000000000000000000000000000000000000000000000008152600481018790526024810186905260448101859052606401610bc1565b5f84868809600186198101871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103025f82900382900490920185841190960395909502919093039390930492909217029150509392505050565b5f805f8587181215614d67577f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841115614d5457614cfc7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001615c32565b8403614d2c57507f8000000000000000000000000000000000000000000000000000000000000000905081614da0565b614d37600a85615fb7565b614d4090615fca565b614d4b846001615ead565b91509150614da0565b614d5d84615fca565b8391509150614da0565b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841115614d9a57614d40600a85615fb7565b50829050815b94509492505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b038416614df65781816002015f828254614deb9190615c32565b90915550614e7f9050565b6001600160a01b0384165f9081526020829052604090205482811015614e61576040517fe450d38c0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024810182905260448101849052606401610bc1565b6001600160a01b0385165f9081526020839052604090209083900390555b6001600160a01b038316614e9d576002810180548390039055614ebb565b6001600160a01b0383165f9081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051614f0091815260200190565b60405180910390a350505050565b5f60208284031215614f1e575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610e38575f80fd5b6001600160a01b03811681146124b5575f80fd5b5f60208284031215614f71575f80fd5b8135610e3881614f4d565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610e386020830184614f7c565b5f8060408385031215614fcd575f80fd5b8235614fd881614f4d565b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff8111828210171561503657615036614fe6565b60405290565b6040516080810167ffffffffffffffff8111828210171561503657615036614fe6565b604051601f8201601f1916810167ffffffffffffffff8111828210171561508857615088614fe6565b604052919050565b5f67ffffffffffffffff8211156150a9576150a9614fe6565b50601f01601f191660200190565b5f82601f8301126150c6575f80fd5b81356150d96150d482615090565b61505f565b8181528460208386010111156150ed575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f806080858703121561511c575f80fd5b84359350602085013561512e81614f4d565b925060408501359150606085013567ffffffffffffffff811115615150575f80fd5b61515c878288016150b7565b91505092959194509250565b5f8060408385031215615179575f80fd5b50508035926020909101359150565b5f60208284031215615198575f80fd5b5035919050565b5f805f606084860312156151b1575f80fd5b83356151bc81614f4d565b925060208401356151cc81614f4d565b929592945050506040919091013590565b5f602082840312156151ed575f80fd5b813567ffffffffffffffff811115615203575f80fd5b610e0f848285016150b7565b5f805f8060808587031215615222575f80fd5b843561522d81614f4d565b93506020850135925060408501359150606085013567ffffffffffffffff811115615150575f80fd5b5f805f60608486031215615268575f80fd5b833561527381614f4d565b925060208401359150604084013567ffffffffffffffff811115615295575f80fd5b6152a1868287016150b7565b9150509250925092565b5f805f805f60a086880312156152bf575f80fd5b8535945060208601356152d181614f4d565b935060408601356152e181614f4d565b925060608601359150608086013567ffffffffffffffff811115615303575f80fd5b61530f888289016150b7565b9150509295509295909350565b5f806020838503121561532d575f80fd5b823567ffffffffffffffff80821115615344575f80fd5b818501915085601f830112615357575f80fd5b813581811115615365575f80fd5b8660208260051b8501011115615379575f80fd5b60209290920196919550909350505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b828110156153fe577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08886030184526153ec858351614f7c565b945092850192908501906001016153b2565b5092979650505050505050565b5f8083601f84011261541b575f80fd5b50813567ffffffffffffffff811115615432575f80fd5b602083019150836020828501011115613186575f80fd5b5f805f805f6080868803121561545d575f80fd5b85359450602086013561546f81614f4d565b935060408601359250606086013567ffffffffffffffff811115615491575f80fd5b61549d8882890161540b565b969995985093965092949392505050565b5f80604083850312156154bf575f80fd5b82356154ca81614f4d565b915060208301356154da81614f4d565b809150509250929050565b5f82601f8301126154f4575f80fd5b8135602067ffffffffffffffff82111561551057615510614fe6565b8160051b61551f82820161505f565b9283528481018201928281019087851115615538575f80fd5b83870192505b8483101561214c5782358252918301919083019061553e565b5f805f805f60a0868803121561556b575f80fd5b853561557681614f4d565b9450602086013561558681614f4d565b9350604086013561559681614f4d565b9250606086013567ffffffffffffffff808211156155b2575f80fd5b6155be89838a016154e5565b935060808801359150808211156155d3575f80fd5b5061530f888289016154e5565b80151581146124b5575f80fd5b5f805f8060608587031215615600575f80fd5b843593506020850135615612816155e0565b9250604085013567ffffffffffffffff81111561562d575f80fd5b6156398782880161540b565b95989497509550505050565b5f60208284031215615655575f80fd5b5051919050565b600181811c9082168061567057607f821691505b602082108103613fb9577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f602082840312156156b7575f80fd5b815160ff81168114610e38575f80fd5b5f82601f8301126156d6575f80fd5b81516156e46150d482615090565b8181528460208386010111156156f8575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f60208284031215615724575f80fd5b815167ffffffffffffffff8082111561573b575f80fd5b908301906040828603121561574e575f80fd5b615756615013565b825161576181614f4d565b8152602083015182811115615774575f80fd5b929092019160808387031215615788575f80fd5b61579061503c565b835161579b81614f4d565b81526020840151838111156157ae575f80fd5b6157ba888287016156c7565b6020830152506040840151838111156157d1575f80fd5b6157dd888287016156c7565b604083015250606084015193506157f384614f4d565b60608101939093526020810192909252509392505050565b5f6001600160a01b038085168352604060208401528084511660408401526020840151604060608501528181511660808501526020810151608060a0860152615858610100860182614f7c565b905060408201517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808683030160c08701526158938282614f7c565b9150508260608301511660e08601528093505050509392505050565b5f6001600160a01b03808916835280881660208401525085604083015284606083015283608083015260c060a08301526158ec60c0830184614f7c565b98975050505050505050565b602081526001600160a01b0382511660208201526020820151604082015260408201516060820152606082015160808201525f608083015160a080840152610e0f60c0840182614f7c565b6001600160a01b0384168152826020820152606060408201525f6126666060830184614f7c565b5f6001600160a01b03808816835280871660208401525084604083015283606083015260a0608083015261214c60a0830184614f7c565b602081526001600160a01b03825116602082015260208201516040820152604082015160608201525f6060830151608080840152610e0f60a0840182614f7c565b6001600160a01b0383168152604060208201525f610e0f6040830184614f7c565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b81810381811115610ab457610ab4615a03565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112615aa3575f80fd5b83018035915067ffffffffffffffff821115615abd575f80fd5b602001915036819003821315613186575f80fd5b828482375f8382015f815283518060208601835e5f910190815295945050505050565b5f815180845260208085019450602084015f5b83811015615b2357815187529582019590820190600101615b07565b509495945050505050565b602081525f6001600160a01b0380845116602084015280602085015116604084015250604083015160a06060840152615b6a60c0840182615af4565b90506060840151601f19848303016080850152615b878282615af4565b9150506080840151151560a08401528091505092915050565b6001600160a01b0386168152846020820152831515604082015260806060820152816080820152818360a08301375f81830160a090810191909152601f909201601f19160101949350505050565b602081528151602082015260208201516040820152604082015160608201526060820151151560808201525f608083015160a080840152610e0f60c0840182614f7c565b80820180821115610ab457610ab4615a03565b5f60208284031215615c55575f80fd5b8151610e3881614f4d565b5f60208284031215615c70575f80fd5b8151610e38816155e0565b5f6001600160a01b03808a16835280891660208401528088166040840152508560608301528460808301528360a083015260e060c0830152615cc060e0830184614f7c565b9998505050505050505050565b5f6001600160a01b038083511684528060208401511660208501525060408201516040840152606082015160608401526080820151608084015260a082015160c060a0850152610e0f60c0850182614f7c565b602081525f610e386020830184615ccd565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b601f821115610cde57805f5260205f20601f840160051c81016020851015615db15750805b601f840160051c820191505b818110156128a5575f8155600101615dbd565b815167ffffffffffffffff811115615dea57615dea614fe6565b615dfe81615df8845461565c565b84615d8c565b602080601f831160018114615e31575f8415615e1a5750858301515b5f19600386901b1c1916600185901b178555613573565b5f85815260208120601f198616915b82811015615e5f57888601518255948401946001909101908401615e40565b5085821015615e7c57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f60ff831680615e9e57615e9e615d5f565b8060ff84160691505092915050565b8082018281125f83128015821682158216171561203657612036615a03565b600181815b80851115615f0657815f1904821115615eec57615eec615a03565b80851615615ef957918102915b93841c9390800290615ed1565b509250929050565b5f82615f1c57506001610ab4565b81615f2857505f610ab4565b8160018114615f3e5760028114615f4857615f64565b6001915050610ab4565b60ff841115615f5957615f59615a03565b50506001821b610ab4565b5060208310610133831016604e8410600b8410161715615f87575081810a610ab4565b615f918383615ecc565b805f1904821115615fa457615fa4615a03565b029392505050565b5f610e388383615f0e565b5f82615fc557615fc5615d5f565b500490565b5f7f80000000000000000000000000000000000000000000000000000000000000008203614bb857614bb8615a0356"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405260043610610337575f3560e01c8063715018a6116101af578063bbec4d06116100eb578063dd62ed3e11610094578063e70689f51161006e578063e70689f5146109ab578063f2fde38b146109ca578063f5647943146109e9578063f5d214f514610a1e5761033e565b8063dd62ed3e146108ed578063e1e6b89814610950578063e5be7d901461098c5761033e565b8063c77b66c2116100c5578063c77b66c2146108b3578063d09edf31146108c6578063db2088f4146108da5761033e565b8063bbec4d0614610875578063c54cafee14610894578063c63d75b6146105635761033e565b80638da5cb5b11610158578063a9059cbb11610132578063a9059cbb146107b8578063ac9650d8146107d7578063ae57de0c14610803578063ae98b39f146108225761033e565b80638da5cb5b14610771578063921a4c421461078557806395d89b41146107a45761033e565b80637a7af70d116101895780637a7af70d1461072057806381c3fcb91461073357806385b68756146107525761033e565b8063715018a6146106ce578063770afee1146106e2578063786cd916146107015761033e565b8063276b11401161027e5780634abe413711610227578063633ac71711610201578063633ac7171461061e5780636ba235211461063d5780636c876b941461069057806370a08231146106af5761033e565b80634abe4137146105c157806356db02e8146105e057806359f89dda146105ff5761033e565b8063402d267d11610258578063402d267d14610563578063439fab9114610583578063488bd7b0146105a25761033e565b8063276b1140146104fe578063313ce5671461051157806338d52e0f146105375761033e565b806318160ddd116102e05780631f6759d3116102ba5780631f6759d31461048d57806323b872dd146104c05780632755c6c7146104df5761033e565b806318160ddd1461043b578063181e7b3b1461044f5780631e4344a11461046e5761033e565b806306fdde031161031157806306fdde03146103e8578063095ea7b3146104095780631423feba146104285761033e565b806301e1d1141461037357806301ffc9a71461039a578063058a628f146103c95761033e565b3661033e57005b73b7e24412126ad6a2ce19cbd79fd11b68e7f30cf6365f80375f80365f845af43d5f803e80801561036d573d5ff35b3d5ffd5b005b34801561037e575f80fd5b50610387610a51565b6040519081526020015b60405180910390f35b3480156103a5575f80fd5b506103b96103b4366004614f0e565b610a5f565b6040519015158152602001610391565b3480156103d4575f80fd5b506103716103e3366004614f61565b610aba565b3480156103f3575f80fd5b506103fc610ce3565b6040516103919190614faa565b348015610414575f80fd5b506103b9610423366004614fbc565b610db6565b610387610436366004615109565b610dcd565b348015610446575f80fd5b50610387610e17565b34801561045a575f80fd5b50610387610469366004615168565b610e20565b348015610479575f80fd5b50610371610488366004615188565b610e3f565b348015610498575f80fd5b507f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70054610387565b3480156104cb575f80fd5b506103b96104da36600461519f565b610ecb565b3480156104ea575f80fd5b506103716104f9366004614fbc565b610eee565b61038761050c366004615168565b611028565b34801561051c575f80fd5b50610525611053565b60405160ff9091168152602001610391565b348015610542575f80fd5b5061054b6110f8565b6040516001600160a01b039091168152602001610391565b34801561056e575f80fd5b5061038761057d366004614f61565b505f1990565b34801561058e575f80fd5b5061038761059d3660046151dd565b61112c565b3480156105ad575f80fd5b506103876105bc366004615168565b6113d1565b3480156105cc575f80fd5b506103876105db366004614fbc565b6113e9565b3480156105eb575f80fd5b506103876105fa36600461520f565b6114a3565b34801561060a575f80fd5b50610371610619366004615256565b6117e4565b348015610629575f80fd5b50610371610638366004614f61565b61181c565b348015610648575f80fd5b50610387610657366004614f61565b6001600160a01b03165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be701602052604090205490565b34801561069b575f80fd5b506103716106aa366004614f61565b611949565b3480156106ba575f80fd5b506103876106c9366004614f61565b611a49565b3480156106d9575f80fd5b50610371611a92565b3480156106ed575f80fd5b506103876106fc366004615256565b611aa5565b34801561070c575f80fd5b5061037161071b366004614fbc565b611c5f565b61038761072e366004615168565b611d90565b34801561073e575f80fd5b5061037161074d3660046151dd565b611da5565b34801561075d575f80fd5b5061038761076c366004614fbc565b611de1565b34801561077c575f80fd5b5061054b611ec4565b348015610790575f80fd5b5061038761079f3660046152ab565b611ecd565b3480156107af575f80fd5b506103fc611efa565b3480156107c3575f80fd5b506103b96107d2366004614fbc565b611f4b565b3480156107e2575f80fd5b506107f66107f136600461531c565b611f58565b604051610391919061538b565b34801561080e575f80fd5b5061038761081d3660046152ab565b61203e565b34801561082d575f80fd5b5061038761083c366004614f61565b6001600160a01b03165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be702602052604090205490565b348015610880575f80fd5b5061038761088f366004615168565b612061565b34801561089f575f80fd5b506103876108ae366004615449565b61206f565b6103876108c1366004615109565b612157565b3480156108d1575f80fd5b5061054b612186565b6103876108e8366004615168565b6121ae565b3480156108f8575f80fd5b506103876109073660046154ae565b6001600160a01b039182165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b34801561095b575f80fd5b507f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031661054b565b348015610997575f80fd5b506103716109a6366004615557565b6121c2565b3480156109b6575f80fd5b506103716109c53660046155ed565b6122f9565b3480156109d5575f80fd5b506103716109e4366004614f61565b612462565b3480156109f4575f80fd5b507fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd025442116103b9565b348015610a29575f80fd5b507fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0154610387565b5f610a5a610e17565b905090565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f59f89dda000000000000000000000000000000000000000000000000000000001480610ab45750610ab4826124b8565b92915050565b6040517f248a9ca30000000000000000000000000000000000000000000000000000000081527ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f8960048201525f906001600160a01b0383169063248a9ca390602401602060405180830381865afa158015610b37573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b5b9190615645565b905080610bca576040517f76728ed90000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201527ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f8960248201526044015b60405180910390fd5b6040517f248a9ca30000000000000000000000000000000000000000000000000000000081527f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e760048201525f906001600160a01b0384169063248a9ca390602401602060405180830381865afa158015610c47573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c6b9190615645565b905080610cd5576040517f76728ed90000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201527f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e76024820152604401610bc1565b610cde836125e6565b505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0380546060917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0091610d349061565c565b80601f0160208091040260200160405190810160405280929190818152602001828054610d609061565c565b8015610dab5780601f10610d8257610100808354040283529160200191610dab565b820191905f5260205f20905b815481529060010190602001808311610d8e57829003601f168201915b505050505091505090565b5f33610dc38185856125f7565b5060019392505050565b5f80610dd7612604565b90505f610df187610deb335b89865f61265b565b8761266f565b9050610e008787838588612685565b610e0b335b476128ac565b9150505b949350505050565b5f610a5a612955565b5f610e3883670de0b6b3a7640000612ab4565b612ab4565b9392505050565b610e47612ac0565b7f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be7008054821115610e75578181555b7fff9fd4facd8bd30d905cc7ffbd03e8829a414df4c6554d155d132c3377868a42610e9e611ec4565b8254604080516001600160a01b039093168352602083018690528201526060015b60405180910390a15050565b5f33610ed8858285612b0b565b610ee3858585612bbf565b506001949350505050565b610ef6612ac0565b805f03610f3a576040517f5a6084530000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610bc1565b6001600160a01b0382165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70260205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70090821115610fb7576001600160a01b0383165f90815260028201602052604090208290555b7fa1e5b368dc99c8558f28b1e7e8cb7ab542c989a4b697628ba7bfffe0aeaccffd610fe0611ec4565b6001600160a01b038581165f818152600286016020908152604091829020548251959094168552840191909152820185905260608201526080015b60405180910390a1505050565b5f8061104884611042335b3361103c612604565b5f61265b565b85612c4e565b9050610e3833610e05565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f308970152310243260080545f91906001600160a01b0316803b806110905760126110f0565b816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110f091906156a7565b935050505090565b5f807f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f30897015231024326005b546001600160a01b031692915050565b5f80611136612c65565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156111625750825b90505f8267ffffffffffffffff16600114801561117e5750303b155b90508115801561118c575080155b156111c3576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156112245784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b61122c612c8d565b5f878060200190518101906112419190615714565b90506112508160200151612cc6565b6020810151516001600160a01b031615611296576040517f8951799200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80516001600160a01b03166112d7576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6112e030612e39565b80516112eb90612f99565b7ffa89761502e992c8c755fba778ced00f4562485023f656906eb76f5dd65a9fe53360408051808201825284516001600160a01b0316815260208086015190820152905161133a92919061580b565b60405180910390a17fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc396505083156113c75784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b5f610e38836113e4335b3386600161265b565b613021565b5f61141b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031690565b6040517efdd58e0000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015260248201859052919091169062fdd58e90604401602060405180830381865afa15801561147f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e389190615645565b5f6114ac61302e565b825f036114e5576040517f312497b000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6115a98461151b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031690565b6040517efdd58e0000000000000000000000000000000000000000000000000000000081526001600160a01b038a81166004830152602482018a9052919091169062fdd58e90604401602060405180830381865afa15801561157f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115a39190615645565b9061305c565b905080156116c6577f88e2280ece62e9296d3578b77647db2c11f9fa7e42578e2db5d4262123ffae3e3387878785886040516115ea969594939291906158af565b60405180910390a17f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b03166001600160a01b031663043fa98733883360405160e085901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b03938416600482015291831660248301529091166044820152606481018890526084810184905260c060a48201525f60c482015260e4015f604051808303815f87803b1580156116af575f80fd5b505af11580156116c1573d5f803e3d5ffd5b505050505b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f3dd35eca0ca8a128757fa464a5dfa4ad6cc4853cad96dce4e90fdbea4f0a52e36040518060a001604052808c6001600160a01b031681526020018b81526020018a81526020018781526020018981525060405160200161175d91906158f8565b6040516020818303038152906040526040518463ffffffff1660e01b815260040161178a93929190615943565b5f604051808303815f87803b1580156117a1575f80fd5b505af11580156117b3573d5f803e3d5ffd5b5093945050505050610e0f60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b8282826040517f3ae4063b000000000000000000000000000000000000000000000000000000008152600401610bc193929190615943565b611824612ac0565b6001600160a01b0381165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70260205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be7009042116118d9576001600160a01b0382165f818152600283016020526040908190205490517f81a7897700000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610bc1565b6001600160a01b0382165f9081526002820160205260408120557fa1e5b368dc99c8558f28b1e7e8cb7ab542c989a4b697628ba7bfffe0aeaccffd61191c611ec4565b604080516001600160a01b03928316815291851660208301525f9082018190526060820152608001610ebf565b611951612ac0565b6001600160a01b0381165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70160205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be700904211611a06576001600160a01b0382165f818152600183016020526040908190205490517ff1b01b5400000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610bc1565b6001600160a01b0382165f9081526001820160205260408120557fd08871fffa9d03c01fcba597af5dfbe64cb26f207debdae1af2532695447499161191c611ec4565b5f80611a548361306b565b90505f611a5f61307e565b6001600160a01b0385165f90815260038201602052604081205491925090611a889084906130df565b5095945050505050565b611a9a612ac0565b611aa35f612f99565b565b5f611aae61302e565b825f03611ae7576040517f312497b000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f611af5846115a387611a49565b90508015611b47577f3fc1c49e72362e91416388fe7a107b92db924642476e83e701eeeb6256d7249e3386868487604051611b3495949392919061596a565b60405180910390a1611b47853383612bbf565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f54f0af3716c79b30b8c228679d31d77a1a5f526c16af3262730e0a8de4363fed60405180608001604052808b6001600160a01b031681526020018a815260200187815260200189815250604051602001611bd891906159a1565b6040516020818303038152906040526040518463ffffffff1660e01b8152600401611c0593929190615943565b5f604051808303815f87803b158015611c1c575f80fd5b505af1158015611c2e573d5f803e3d5ffd5b5093945050505050610e3860017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b611c67612ac0565b805f03611cab576040517ffd86061b0000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610bc1565b6001600160a01b0382165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70160205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70090821115611d28576001600160a01b0383165f90815260018201602052604090208290555b7fd08871fffa9d03c01fcba597af5dfbe64cb26f207debdae1af25326954474991611d51611ec4565b6001600160a01b038581165f8181526001860160209081526040918290205482519590941685528401919091528201859052606082015260800161101b565b5f8061104884611d9f33611033565b8561266f565b7fdaffad82f53a38a62340f14cdd6fd3b437c5dcda6b32029dac1e661dbce28b2d3382604051611dd69291906159e2565b60405180910390a150565b5f80611df0848585600161265b565b9050805f03611e02575f915050610ab4565b610e0f611e367f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031690565b6040517efdd58e0000000000000000000000000000000000000000000000000000000081526001600160a01b03878116600483015260248201879052919091169062fdd58e90604401602060405180830381865afa158015611e9a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ebe9190615645565b82612ab4565b5f610a5a61318d565b5f80611ee087610e33878988600161265b565b9050611ef08187878a88886131b5565b9695505050505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0480546060917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0091610d349061565c565b5f33610dc3818585612bbf565b604080515f8152602081019091526060908267ffffffffffffffff811115611f8257611f82614fe6565b604051908082528060200260200182016040528015611fb557816020015b6060815260200190600190039081611fa05790505b5091505f5b838110156120365761201130868684818110611fd857611fd8615a43565b9050602002810190611fea9190615a70565b85604051602001611ffd93929190615ad1565b60405160208183030381529060405261357b565b83828151811061202357612023615a43565b6020908102919091010152600101611fba565b505092915050565b5f80612051876113e4878988600161265b565b9050611ef08787878488886131b5565b5f610e3883610e33336113db565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd01545f907fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd00908511156120f1576040517fe4a4718200000000000000000000000000000000000000000000000000000000815260048101869052602401610bc1565b5f61210888612102338a8a5f61265b565b5f61266f565b905061214c8888838989898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061268592505050565b979650505050505050565b5f80612161612604565b90505f6121778761217133610de3565b87612c4e565b9050610e008187898588612685565b5f807fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0061111c565b5f8061104884670de0b6b3a7640000612102565b6121cf8585858585613616565b6121d98484613679565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080546040805160a0810182526001600160a01b0388811682528781166020830152918101869052606081018590529116906359f89dda9088907f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a4890608081016122837fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0254421190565b151590526040516122979190602001615b2e565b6040516020818303038152906040526040518463ffffffff1660e01b81526004016122c493929190615943565b5f604051808303815f87803b1580156122db575f80fd5b505af11580156122ed573d5f803e3d5ffd5b50505050505050505050565b835f03612332576040517f8672985d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0090505f6040518060a001604052808360020154815260200183600201548152602001878152602001861515815260200185858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152505050915250905084806123cc5750816002015486115b156123e05760028201869055602081018690525b7f7ef5cae78e9bd364afb19bb0f8a881a6d156e35a119e28c0d17524e5079581583387878787604051612417959493929190615ba0565b60405180910390a181546001600160a01b03166359f89dda337f50a07cb25d0d864370863300b20987dfdae089abad71b607faf639d09d053391846040516020016122979190615bee565b61246a612ac0565b6001600160a01b0381166124ac576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6124b581612f99565b50565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fe5be7d9000000000000000000000000000000000000000000000000000000000148061254a57507fffffffff0000000000000000000000000000000000000000000000000000000082167f439fab9100000000000000000000000000000000000000000000000000000000145b8061259657507fffffffff0000000000000000000000000000000000000000000000000000000082167fe1e6b89800000000000000000000000000000000000000000000000000000000145b80610ab457507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610ab4565b6125ee612ac0565b6124b581612e39565b610cde8383836001613739565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd01545f907fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0090612655906001615c32565b91505090565b5f670de0b6b3a76400005b95945050505050565b5f61267a8284613861565b610e0f84845f6138a5565b61268d61302e565b845f036126c6576040517fc7838b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825f036126ff576040517ffc8c806300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03841661273f576040517f6ba9ecd800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f0361277a576040517fe4a471820000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b7f3377bcbed49a0c0005e53931cd8fe7334b5371523e5de784c0d0d3d01089cfea3385878686866040516127b3969594939291906158af565b60405180910390a16127c885858585856138ba565b6127d28484613915565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546040517f6d5b3f780000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690636d5b3f7890612842903390889087908990889060040161596a565b5f604051808303815f87803b158015612859575f80fd5b505af115801561286b573d5f803e3d5ffd5b5050505061287c8585858585613962565b6128a560017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5050505050565b804710156128ef576040517fcf47918100000000000000000000000000000000000000000000000000000000815247600482015260248101829052604401610bc1565b612908828260405180602001604052805f815250613a0e565b15612911575050565b3d156129235761291f613a23565b5050565b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8061295f61307e565b60028101549091505f0361297557612655613a2e565b5f6129845f1960036001613a93565b90505f5b5f198214610e38575f8360020183815481106129a6576129a6615a43565b905f5260205f2090600502015f0154905060028103612a83575f612a738560020185815481106129d8576129d8615a43565b905f5260205f20906005020160040180546129f29061565c565b80601f0160208091040260200160405190810160405280929190818152602001828054612a1e9061565c565b8015612a695780601f10612a4057610100808354040283529160200191612a69565b820191905f5260205f20905b815481529060010190602001808311612a4c57829003601f168201915b5050505050613b8e565b9050612a7f8382613ba3565b9250505b5f838152600485016020526040902054612a9d9083615c32565b9150612aac8360036001613a93565b925050612988565b5f610e38838383613c27565b33612ac9611ec4565b6001600160a01b031614611aa3576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610bc1565b6001600160a01b038381165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160209081526040808320938616835292905220545f19811015612bb95781811015612bab576040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201526024810182905260448101839052606401610bc1565b612bb984848484035f613739565b50505050565b6001600160a01b038316612c01576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6001600160a01b038216612c43576040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b610cde838383613c3c565b5f612c598284613861565b610e0f84846001613c27565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610ab4565b425f03611aa3576040517f789a532d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612cce613c8f565b612ce081602001518260400151613c97565b80517f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f308970152310243260080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b0393841617825560608401517f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601805490921693169283179055604080517f481c6a75000000000000000000000000000000000000000000000000000000008152905191925f92909163481c6a759160048083019260209291908290030181865afa158015612dc0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612de49190615c45565b90506001600160a01b0381163014610cde576040517f7935475e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b0382166024820152604401610bc1565b6040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f59f89dda0000000000000000000000000000000000000000000000000000000060048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa158015612eb4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ed89190615c60565b612f0e576040517ffd12061600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03831690811782556040805133815260208101929092527fa8c713fe8fb360697fc0daab836d85208a605d485fbc265aea0f773fc6cdd71a9101610ebf565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f610e38838360016138a5565b613036613ca9565b60027f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5f828218828410028218610e38565b5f8061307683613d04565b549392505050565b5f8060ff196130ae60017f2f8f8ecf1b7a1a3ceda8d15a9a2247a2377b3434535a87f1728021c13fec2e71615a30565b6040516020016130c091815260200190565b60408051601f1981840301815291905280516020909101201692915050565b5f8082816130eb61307e565b9050855f6130fc8760036001613a93565b90505b5f19811461317e57925082811580159061313c5750600283600201828154811061312b5761312b615a43565b905f5260205f2090600502015f0154145b1561316a575f61315a8460020183815481106129d8576129d8615a43565b90506131668382613ba3565b9250505b6131778160036001613a93565b90506130ff565b509350909150505b9250929050565b5f807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930061111c565b6131bd61302e565b855f036131f6576040517fc7838b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825f0361322f576040517ffc8c806300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03851661326f576040517f6ba9ecd800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0384166132af576040517f9905827b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f036132eb576040517fe4a4718200000000000000000000000000000000000000000000000000000000815260048101839052602401610bc1565b7f2845b9458bcc357e1abfe8de7f6832dfe7220596a053496b33d0deb6577d8d2a338686898787876040516133269796959493929190615c7b565b60405180910390a16001600160a01b038416331461349557613349843385612b0b565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b03166001600160a01b031663e985e9c585336040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa1580156133e5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134099190615c60565b613495576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60448201527f6572206f7220617070726f7665640000000000000000000000000000000000006064820152608401610bc1565b61349f8484613d71565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546040517fc2530e390000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063c2530e399061350f903390889087908990889060040161596a565b5f604051808303815f87803b158015613526575f80fd5b505af1158015613538573d5f803e3d5ffd5b5050505061354a868686868686613dbe565b61357360017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b505050505050565b60605f6135888484613ec7565b90508080156135a957505f3d11806135a957505f846001600160a01b03163b115b156135be576135b6613eda565b915050610ab4565b8015613601576040517f9996b3150000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610bc1565b3d156129235761360f613a23565b5092915050565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031633146128a5576040517f8813aac300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be700805442118015906136c257506001600160a01b0383165f908152600182016020526040902054155b80156136e557506001600160a01b0382165f908152600282016020526040902054155b15610cde5780546040517f79d7155100000000000000000000000000000000000000000000000000000000815260048101919091526001600160a01b03808516602483015283166044820152606401610bc1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b03851661379c576040517fe602df050000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6001600160a01b0384166137de576040517f94280d620000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6001600160a01b038086165f908152600183016020908152604080832093881683529290522083905581156128a557836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258560405161385291815260200190565b60405180910390a35050505050565b8181101561291f576040517fa3e322340000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610bc1565b5f610e0f8484670de0b6b3a764000085613ef3565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd01547fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd00906139089084613f35565b6001909101555050505050565b6001600160a01b038216613957576040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b61291f5f8383613c3c565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8216040518060c001604052806139cb3390565b6001600160a01b031681526020018a6001600160a01b031681526020018881526020018b8152602001898152602001878152506040516020016122979190615d20565b5f805f83516020850186885af1949350505050565b6040513d5f823e3d81fd5b5f8060ff19613a5e60017fb750591399365444a618527b69a54ce09476c8bde1ecff60f5aa1fe2b52605ff615a30565b604051602001613a7091815260200190565b60408051808303601f190181529190528051602090910120166002015492915050565b5f600783168103613ad0576040517fbf3cad0b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f613ad961307e565b60028101549091505f03613af1575f19915050610e38565b5f5f198614613b2457816002018681548110613b0f57613b0f615a43565b905f5260205f20906005020160030154613b27565b81545b90506002846002811115613b3d57613b3d615d32565b03613b5f57613b5682613b508484613f44565b87613fbf565b92505050610e38565b6001846002811115613b7357613b73615d32565b03613b8357613b56828287614017565b611ef0828287613fbf565b5f81806020019051810190610ab49190615645565b5f7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115613c01576040517fbf463fe900000000000000000000000000000000000000000000000000000000815260048101849052602401610bc1565b5f613c1e613c18613c12865f614084565b856140de565b5f614140565b50949350505050565b5f610e0f84670de0b6b3a76400008585613ef3565b613c44614181565b613c4d836141e7565b613c56826141e7565b613c618383836142d4565b6001600160a01b038316613c7857610cde81614434565b6001600160a01b038216610cde57610cde81614477565b611aa36144b1565b613c9f6144b1565b61291f82826144ef565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0054600203611aa3576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8060ff19613d3460017fb750591399365444a618527b69a54ce09476c8bde1ecff60f5aa1fe2b52605ff615a30565b604051602001613d4691815260200190565b60408051601f1981840301815291815281516020928301205f96875292909216905290922092915050565b6001600160a01b038216613db3576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b61291f825f83613c3c565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e9828696040518060c001604052808a6001600160a01b031681526020018b6001600160a01b031681526020018881526020018c815260200189815260200187815250604051602001613e649190615d20565b6040516020818303038152906040526040518463ffffffff1660e01b8152600401613e9193929190615943565b5f604051808303815f87803b158015613ea8575f80fd5b505af1158015613eba573d5f803e3d5ffd5b5050505050505050505050565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b5f613f20613f0083614552565b8015613f1b57505f8480613f1657613f16615d5f565b868809115b151590565b613f2b86868661457e565b6126669190615c32565b5f828218828411028218610e38565b5f5b5f198214158015613f88575042836002018381548110613f6857613f68615a43565b5f91825260209091206001600590920201015467ffffffffffffffff1611155b15613fb957826002018281548110613fa257613fa2615a43565b905f5260205f209060050201600301549150613f46565b50919050565b5f5b5f19831461400d575f846002018481548110613fdf57613fdf615a43565b905f5260205f209060050201905082815f0154165f146140025783915050610e38565b600301549250613fc1565b505f199392505050565b5f5b5f19831461400d575f84600201848154811061403757614037615a43565b5f918252602090912060059091020160018101549091504267ffffffffffffffff9091161115614067575061400d565b80548316156140795783915050610e38565b600301549250614019565b5f805f614091858561462e565b91509150806140d6576040517f22c9f7bb0000000000000000000000000000000000000000000000000000000081526004810186905260248101859052604401610bc1565b509392505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d848061412386868686614734565b915091505f6141328383614853565b9a9950505050505050505050565b5f807bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8416601b0b60e085901d6141748282876148b1565b9350935050509250929050565b5f61418a61307e565b60028101549091505f0361419b5750565b5f6141b0826005015460026001176001613a93565b90505f195b5f1982146141d35750806141cc8160036001613a93565b91506141b5565b5f198114610cde5760058301819055505050565b6001600160a01b0381166141f85750565b5f61420161307e565b6001600160a01b0383165f9081526003820160205260408120549192506142278461306b565b90505f8061423583856130df565b9150915083810361424857505050505050565b6001600160a01b0386165f9081526003860160205260409020819055818314614275576142758683614a9c565b6040805185815260208101839052908101849052606081018390526001600160a01b038716907f36a2eb39b73568d38e98721588b15b309c9380e1b1ab575c2c3d71d5148ccb4a9060800160405180910390a261357384848385614aae565b6142de8383613679565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a6040518060800160405280896001600160a01b03168152602001886001600160a01b0316815260200187815260200161438e7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0254421190565b151590526040805182516001600160a01b03908116602080840191909152840151168183015290820151606080830191909152909101511515608082015260a0016040516020818303038152906040526040518463ffffffff1660e01b81526004016143fc93929190615943565b5f604051808303815f87803b158015614413575f80fd5b505af1158015614425573d5f803e3d5ffd5b50505050612bb9848484614b0b565b5f61443d61307e565b60028101549091501561291f5760058101545f9081526004820160205260408120805484929061446e908490615c32565b90915550505050565b5f61448061307e565b60028101549091501561291f5760058101545f9081526004820160205260408120805484929061446e908490615a30565b6144b9614b16565b611aa3576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6144f76144b1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace007f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace036145438482615dd0565b5060048101612bb98382615dd0565b5f600282600381111561456757614567615d32565b6145719190615e8c565b60ff166001149050919050565b5f805f61458b8686614b34565b91509150815f036145af578381816145a5576145a5615d5f565b0492505050610e38565b8184116145c6576145c66003851502601118614b50565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010185841190960395909502919093039390930492909217029150509392505050565b5f601b83900b8314838382614692577d90e40fbeea1d3a4abc8955e946fe31cdcf66f634e100000000000000000086051561467257620186a0860595506005850194505b8586601b0b1461468d57600a86059550846001019450614672565b6146a8565b855f036146a857505f9250600191506131869050565b848560030b14614704575f8512156146c857505f92508291506131869050565b6040517fd556b1110000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610bc1565b50507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841660e084901b1791509250929050565b5f808515841517801561474c575f92505f9150614849565b6147568487615ead565b91505f61476288614b61565b90505f61476e87614b61565b90505f61477b8383614b34565b5090505f6f0785ee10d5da46d900f436a0000000008211156147b0576f0785ee10d5da46d900f436a000000000820491506025015b670de0b6b3a76400008211156147d157670de0b6b3a7640000820491506012015b633b9aca008211156147ea57633b9aca00820491506009015b6127108211156147ff57612710820491506004015b811561481357600a820491506001016147ff565b61481d8187615ead565b955061483f8b8a614839878761483487600a615fac565b614bc2565b89614c9d565b9097509550505050505b5094509492505050565b5f805f614860858561462e565b9150915080158015614870575081155b156140d6576040517f8eba4d070000000000000000000000000000000000000000000000000000000081526004810186905260248101859052604401610bc1565b5f805f8512156148f7576040517f4a7d166b0000000000000000000000000000000000000000000000000000000081526004810186905260248101859052604401610bc1565b845f0361490957505f90506001614a94565b8460ff8416850185811215614954576040517fd556b1110000000000000000000000000000000000000000000000000000000081526004810188905260248101879052604401610bc1565b5f805f8312156149be577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb3831215614995575f809550955050505050614a94565b825f03600a0a91508184816149ac576149ac615d5f565b0495505084029091149150614a949050565b5f831315614a8957604d831315614a14576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff88166044820152606401610bc1565b82600a0a9150815f1981614a2a57614a2a615d5f565b04841115614a77576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff88166044820152606401610bc1565b5091909102925060019150614a949050565b509193506001925050505b935093915050565b5f614aa683613d04565b919091555050565b5f614ab761307e565b905083816004015f8781526020019081526020015f205f828254614adb9190615a30565b90915550505f83815260048201602052604081208054849290614aff908490615c32565b90915550505050505050565b610cde838383614da9565b5f614b1f612c65565b5468010000000000000000900460ff16919050565b5f805f1983850993909202808410938190039390930393915050565b634e487b715f52806020526024601cfd5b5f80821215614bbe577f80000000000000000000000000000000000000000000000000000000000000008203614bb857507f8000000000000000000000000000000000000000000000000000000000000000919050565b505f0390565b5090565b5f805f614bcf8686614b34565b91509150815f03614be9578381816145a5576145a5615d5f565b838210614c33576040517f6c59da12000000000000000000000000000000000000000000000000000000008152600481018790526024810186905260448101859052606401610bc1565b5f84868809600186198101871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103025f82900382900490920185841190960395909502919093039390930492909217029150509392505050565b5f805f8587181215614d67577f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841115614d5457614cfc7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001615c32565b8403614d2c57507f8000000000000000000000000000000000000000000000000000000000000000905081614da0565b614d37600a85615fb7565b614d4090615fca565b614d4b846001615ead565b91509150614da0565b614d5d84615fca565b8391509150614da0565b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841115614d9a57614d40600a85615fb7565b50829050815b94509492505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b038416614df65781816002015f828254614deb9190615c32565b90915550614e7f9050565b6001600160a01b0384165f9081526020829052604090205482811015614e61576040517fe450d38c0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024810182905260448101849052606401610bc1565b6001600160a01b0385165f9081526020839052604090209083900390555b6001600160a01b038316614e9d576002810180548390039055614ebb565b6001600160a01b0383165f9081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051614f0091815260200190565b60405180910390a350505050565b5f60208284031215614f1e575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610e38575f80fd5b6001600160a01b03811681146124b5575f80fd5b5f60208284031215614f71575f80fd5b8135610e3881614f4d565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610e386020830184614f7c565b5f8060408385031215614fcd575f80fd5b8235614fd881614f4d565b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff8111828210171561503657615036614fe6565b60405290565b6040516080810167ffffffffffffffff8111828210171561503657615036614fe6565b604051601f8201601f1916810167ffffffffffffffff8111828210171561508857615088614fe6565b604052919050565b5f67ffffffffffffffff8211156150a9576150a9614fe6565b50601f01601f191660200190565b5f82601f8301126150c6575f80fd5b81356150d96150d482615090565b61505f565b8181528460208386010111156150ed575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f806080858703121561511c575f80fd5b84359350602085013561512e81614f4d565b925060408501359150606085013567ffffffffffffffff811115615150575f80fd5b61515c878288016150b7565b91505092959194509250565b5f8060408385031215615179575f80fd5b50508035926020909101359150565b5f60208284031215615198575f80fd5b5035919050565b5f805f606084860312156151b1575f80fd5b83356151bc81614f4d565b925060208401356151cc81614f4d565b929592945050506040919091013590565b5f602082840312156151ed575f80fd5b813567ffffffffffffffff811115615203575f80fd5b610e0f848285016150b7565b5f805f8060808587031215615222575f80fd5b843561522d81614f4d565b93506020850135925060408501359150606085013567ffffffffffffffff811115615150575f80fd5b5f805f60608486031215615268575f80fd5b833561527381614f4d565b925060208401359150604084013567ffffffffffffffff811115615295575f80fd5b6152a1868287016150b7565b9150509250925092565b5f805f805f60a086880312156152bf575f80fd5b8535945060208601356152d181614f4d565b935060408601356152e181614f4d565b925060608601359150608086013567ffffffffffffffff811115615303575f80fd5b61530f888289016150b7565b9150509295509295909350565b5f806020838503121561532d575f80fd5b823567ffffffffffffffff80821115615344575f80fd5b818501915085601f830112615357575f80fd5b813581811115615365575f80fd5b8660208260051b8501011115615379575f80fd5b60209290920196919550909350505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b828110156153fe577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08886030184526153ec858351614f7c565b945092850192908501906001016153b2565b5092979650505050505050565b5f8083601f84011261541b575f80fd5b50813567ffffffffffffffff811115615432575f80fd5b602083019150836020828501011115613186575f80fd5b5f805f805f6080868803121561545d575f80fd5b85359450602086013561546f81614f4d565b935060408601359250606086013567ffffffffffffffff811115615491575f80fd5b61549d8882890161540b565b969995985093965092949392505050565b5f80604083850312156154bf575f80fd5b82356154ca81614f4d565b915060208301356154da81614f4d565b809150509250929050565b5f82601f8301126154f4575f80fd5b8135602067ffffffffffffffff82111561551057615510614fe6565b8160051b61551f82820161505f565b9283528481018201928281019087851115615538575f80fd5b83870192505b8483101561214c5782358252918301919083019061553e565b5f805f805f60a0868803121561556b575f80fd5b853561557681614f4d565b9450602086013561558681614f4d565b9350604086013561559681614f4d565b9250606086013567ffffffffffffffff808211156155b2575f80fd5b6155be89838a016154e5565b935060808801359150808211156155d3575f80fd5b5061530f888289016154e5565b80151581146124b5575f80fd5b5f805f8060608587031215615600575f80fd5b843593506020850135615612816155e0565b9250604085013567ffffffffffffffff81111561562d575f80fd5b6156398782880161540b565b95989497509550505050565b5f60208284031215615655575f80fd5b5051919050565b600181811c9082168061567057607f821691505b602082108103613fb9577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f602082840312156156b7575f80fd5b815160ff81168114610e38575f80fd5b5f82601f8301126156d6575f80fd5b81516156e46150d482615090565b8181528460208386010111156156f8575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f60208284031215615724575f80fd5b815167ffffffffffffffff8082111561573b575f80fd5b908301906040828603121561574e575f80fd5b615756615013565b825161576181614f4d565b8152602083015182811115615774575f80fd5b929092019160808387031215615788575f80fd5b61579061503c565b835161579b81614f4d565b81526020840151838111156157ae575f80fd5b6157ba888287016156c7565b6020830152506040840151838111156157d1575f80fd5b6157dd888287016156c7565b604083015250606084015193506157f384614f4d565b60608101939093526020810192909252509392505050565b5f6001600160a01b038085168352604060208401528084511660408401526020840151604060608501528181511660808501526020810151608060a0860152615858610100860182614f7c565b905060408201517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808683030160c08701526158938282614f7c565b9150508260608301511660e08601528093505050509392505050565b5f6001600160a01b03808916835280881660208401525085604083015284606083015283608083015260c060a08301526158ec60c0830184614f7c565b98975050505050505050565b602081526001600160a01b0382511660208201526020820151604082015260408201516060820152606082015160808201525f608083015160a080840152610e0f60c0840182614f7c565b6001600160a01b0384168152826020820152606060408201525f6126666060830184614f7c565b5f6001600160a01b03808816835280871660208401525084604083015283606083015260a0608083015261214c60a0830184614f7c565b602081526001600160a01b03825116602082015260208201516040820152604082015160608201525f6060830151608080840152610e0f60a0840182614f7c565b6001600160a01b0383168152604060208201525f610e0f6040830184614f7c565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b81810381811115610ab457610ab4615a03565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112615aa3575f80fd5b83018035915067ffffffffffffffff821115615abd575f80fd5b602001915036819003821315613186575f80fd5b828482375f8382015f815283518060208601835e5f910190815295945050505050565b5f815180845260208085019450602084015f5b83811015615b2357815187529582019590820190600101615b07565b509495945050505050565b602081525f6001600160a01b0380845116602084015280602085015116604084015250604083015160a06060840152615b6a60c0840182615af4565b90506060840151601f19848303016080850152615b878282615af4565b9150506080840151151560a08401528091505092915050565b6001600160a01b0386168152846020820152831515604082015260806060820152816080820152818360a08301375f81830160a090810191909152601f909201601f19160101949350505050565b602081528151602082015260208201516040820152604082015160608201526060820151151560808201525f608083015160a080840152610e0f60c0840182614f7c565b80820180821115610ab457610ab4615a03565b5f60208284031215615c55575f80fd5b8151610e3881614f4d565b5f60208284031215615c70575f80fd5b8151610e38816155e0565b5f6001600160a01b03808a16835280891660208401528088166040840152508560608301528460808301528360a083015260e060c0830152615cc060e0830184614f7c565b9998505050505050505050565b5f6001600160a01b038083511684528060208401511660208501525060408201516040840152606082015160608401526080820151608084015260a082015160c060a0850152610e0f60c0850182614f7c565b602081525f610e386020830184615ccd565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b601f821115610cde57805f5260205f20601f840160051c81016020851015615db15750805b601f840160051c820191505b818110156128a5575f8155600101615dbd565b815167ffffffffffffffff811115615dea57615dea614fe6565b615dfe81615df8845461565c565b84615d8c565b602080601f831160018114615e31575f8415615e1a5750858301515b5f19600386901b1c1916600185901b178555613573565b5f85815260208120601f198616915b82811015615e5f57888601518255948401946001909101908401615e40565b5085821015615e7c57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f60ff831680615e9e57615e9e615d5f565b8060ff84160691505092915050565b8082018281125f83128015821682158216171561203657612036615a03565b600181815b80851115615f0657815f1904821115615eec57615eec615a03565b80851615615ef957918102915b93841c9390800290615ed1565b509250929050565b5f82615f1c57506001610ab4565b81615f2857505f610ab4565b8160018114615f3e5760028114615f4857615f64565b6001915050610ab4565b60ff841115615f5957615f59615a03565b50506001821b610ab4565b5060208310610133831016604e8410600b8410161715615f87575081810a610ab4565b615f918383615ecc565b805f1904821115615fa457615fa4615a03565b029392505050565b5f610e388383615f0e565b5f82615fc557615fc5615d5f565b500490565b5f7f80000000000000000000000000000000000000000000000000000000000000008203614bb857614bb8615a0356"; diff --git a/src/generated/0_1_7/StoxUnifiedDeployer.pointers.sol b/src/generated/0_1_7/StoxUnifiedDeployer.pointers.sol deleted file mode 100644 index 3819204f..00000000 --- a/src/generated/0_1_7/StoxUnifiedDeployer.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x76b90443c401cb2071b31fbf0596f931e01315c358b9db4e4db998107dc2e62c); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x48E1A9091E89f5500AfC9d42FBB85bE8b4f70203); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"6080604052348015600e575f80fd5b506106308061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c806301ffc9a714610038578063733e1f8d1461005f575b5f80fd5b61004b6100463660046102a3565b610074565b604051901515815260200160405180910390f35b61007261006d36600461042d565b61010c565b005b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f733e1f8d00000000000000000000000000000000000000000000000000000000148061010657507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6040517f4904fab30000000000000000000000000000000000000000000000000000000081525f9073679ab223dab158ea93e1a4f49104de436c58eab890634904fab39061015e908590600401610570565b6020604051808303815f875af115801561017a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061019e9190610615565b6040517fd786858b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201529091505f90736b4232f1046f1f1bb99a1184d886bbaf3cd7e15a9063d786858b906024016020604051808303815f875af1158015610220573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102449190610615565b6040805133815273ffffffffffffffffffffffffffffffffffffffff858116602083015283168183015290519192507fa0d99d93cf7a5f89661fa0829369a7e4896e755871efe65440bab2429387d55b919081900360600190a1505050565b5f602082840312156102b3575f80fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146102e2575f80fd5b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff81118282101715610339576103396102e9565b60405290565b6040516080810167ffffffffffffffff81118282101715610339576103396102e9565b73ffffffffffffffffffffffffffffffffffffffff81168114610383575f80fd5b50565b5f82601f830112610395575f80fd5b813567ffffffffffffffff808211156103b0576103b06102e9565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156103f6576103f66102e9565b8160405283815286602085880101111561040e575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f6020828403121561043d575f80fd5b813567ffffffffffffffff80821115610454575f80fd5b9083019060408286031215610467575f80fd5b61046f610316565b823561047a81610362565b815260208301358281111561048d575f80fd5b9290920191608083870312156104a1575f80fd5b6104a961033f565b83356104b481610362565b81526020840135838111156104c7575f80fd5b6104d388828701610386565b6020830152506040840135838111156104ea575f80fd5b6104f688828701610386565b6040830152506060840135935061050c84610362565b60608101939093526020810192909252509392505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f73ffffffffffffffffffffffffffffffffffffffff808451166020840152602084015160408085015281815116606085015260208101516080808601526105bf60e0860182610524565b905060408201517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08683030160a08701526105fa8282610524565b9150508260608301511660c086015280935050505092915050565b5f60208284031215610625575f80fd5b81516102e28161036256"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b5060043610610034575f3560e01c806301ffc9a714610038578063733e1f8d1461005f575b5f80fd5b61004b6100463660046102a3565b610074565b604051901515815260200160405180910390f35b61007261006d36600461042d565b61010c565b005b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f733e1f8d00000000000000000000000000000000000000000000000000000000148061010657507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6040517f4904fab30000000000000000000000000000000000000000000000000000000081525f9073679ab223dab158ea93e1a4f49104de436c58eab890634904fab39061015e908590600401610570565b6020604051808303815f875af115801561017a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061019e9190610615565b6040517fd786858b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201529091505f90736b4232f1046f1f1bb99a1184d886bbaf3cd7e15a9063d786858b906024016020604051808303815f875af1158015610220573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102449190610615565b6040805133815273ffffffffffffffffffffffffffffffffffffffff858116602083015283168183015290519192507fa0d99d93cf7a5f89661fa0829369a7e4896e755871efe65440bab2429387d55b919081900360600190a1505050565b5f602082840312156102b3575f80fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146102e2575f80fd5b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff81118282101715610339576103396102e9565b60405290565b6040516080810167ffffffffffffffff81118282101715610339576103396102e9565b73ffffffffffffffffffffffffffffffffffffffff81168114610383575f80fd5b50565b5f82601f830112610395575f80fd5b813567ffffffffffffffff808211156103b0576103b06102e9565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156103f6576103f66102e9565b8160405283815286602085880101111561040e575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f6020828403121561043d575f80fd5b813567ffffffffffffffff80821115610454575f80fd5b9083019060408286031215610467575f80fd5b61046f610316565b823561047a81610362565b815260208301358281111561048d575f80fd5b9290920191608083870312156104a1575f80fd5b6104a961033f565b83356104b481610362565b81526020840135838111156104c7575f80fd5b6104d388828701610386565b6020830152506040840135838111156104ea575f80fd5b6104f688828701610386565b6040830152506060840135935061050c84610362565b60608101939093526020810192909252509392505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f73ffffffffffffffffffffffffffffffffffffffff808451166020840152602084015160408085015281815116606085015260208101516080808601526105bf60e0860182610524565b905060408201517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08683030160a08701526105fa8282610524565b9150508260608301511660c086015280935050505092915050565b5f60208284031215610625575f80fd5b81516102e28161036256"; diff --git a/src/generated/0_1_7/StoxWrappedTokenVault.pointers.sol b/src/generated/0_1_7/StoxWrappedTokenVault.pointers.sol deleted file mode 100644 index 18c6e307..00000000 --- a/src/generated/0_1_7/StoxWrappedTokenVault.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x6de4c556c1811293da4ad2e509ee476f3eb635f019845087e1d2777a1b272034); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x0D99e0174DbF885ceD6AE8dEb939b0F890450099); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"6080604052348015600e575f80fd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b611de4806100d65f395ff3fe608060405234801561000f575f80fd5b50600436106101b0575f3560e01c806370a08231116100f3578063c4d66de811610093578063ce96cb771161006e578063ce96cb77146103c9578063d905777e146103dc578063dd62ed3e146103ef578063ef8b30f7146103b6575f80fd5b8063c4d66de8146103a3578063c63d75b6146102bb578063c6e6f592146103b6575f80fd5b8063a9059cbb116100ce578063a9059cbb14610357578063b3d7f6b91461036a578063b460af941461037d578063ba08765214610390575f80fd5b806370a08231146102f557806394bf804d1461033c57806395d89b411461034f575f80fd5b806323b872dd1161015e578063402d267d11610139578063402d267d146102bb578063439fab91146102cf5780634cdad506146101e45780636e553f65146102e2575f80fd5b806323b872dd14610254578063313ce5671461026757806338d52e0f14610281575f80fd5b8063095ea7b31161018e578063095ea7b3146101f75780630a28a4771461021a57806318160ddd1461022d575f80fd5b806301e1d114146101b457806306fdde03146101cf57806307a2d13a146101e4575b5f80fd5b6101bc610446565b6040519081526020015b60405180910390f35b6101d76104fe565b6040516101c69190611758565b6101bc6101f236600461178d565b6105b6565b61020a6102053660046117b8565b6105c7565b60405190151581526020016101c6565b6101bc61022836600461178d565b6105de565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02546101bc565b61020a6102623660046117e2565b6105ea565b61026f61060f565b60405160ff90911681526020016101c6565b7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546040516001600160a01b0390911681526020016101c6565b6101bc6102c9366004611820565b505f1990565b6101bc6102dd36600461183b565b610662565b6101bc6102f03660046118a7565b61089d565b6101bc610303366004611820565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00602052604090205490565b6101bc61034a3660046118a7565b6108ce565b6101d76108e9565b61020a6103653660046117b8565b61098d565b6101bc61037836600461178d565b61099a565b6101bc61038b3660046118d5565b6109a6565b6101bc61039e3660046118d5565b610a28565b6101bc6103b1366004611820565b610aa1565b6101bc6103c436600461178d565b610ad4565b6101bc6103d7366004611820565b610adf565b6101bc6103ea366004611820565b610ae8565b6101bc6103fd366004611914565b6001600160a01b039182165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b5f6104787f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa1580156104d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104f99190611940565b905090565b60606105317f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b6001600160a01b03166306fdde036040518163ffffffff1660e01b81526004015f60405180830381865afa15801561056b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526105929190810190611984565b6040516020016105a29190611a46565b604051602081830303815290604052905090565b5f6105c1825f610b24565b92915050565b5f336105d4818585610b7b565b5060019392505050565b5f6105c1826001610b8d565b5f336105f7858285610bdb565b610602858585610c8f565b60019150505b9392505050565b5f807f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e0090505f815461065c919074010000000000000000000000000000000000000000900460ff16611aa4565b91505090565b5f8061066c610d1e565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156106985750825b90505f8267ffffffffffffffff1660011480156106b45750303b155b9050811580156106c2575080155b156106f9576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166001178555831561075a5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b5f610767888a018a611820565b90506001600160a01b0381166107a9576040517f7cde9b7200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107b281610d46565b6107d860405180602001604052805f81525060405180602001604052805f815250610d5a565b6040516001600160a01b0382169033907fdf5fabff9e49f8c35d69a1f2d0c5e80c933c31cf836cf70de57e3a6e7dc86ebb905f90a37fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc396505083156108925784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505092915050565b5f5f196108ae565b60405180910390fd5b5f6108b885610ad4565b90506108c633858784610d70565b949350505050565b5f5f195f6108db8561099a565b90506108c633858388610d70565b606061091c7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b6001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015610956573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261097d9190810190611984565b6040516020016105a29190611abd565b5f336105d4818585610c8f565b5f6105c1826001610b24565b5f806109b183610adf565b905080851115610a06576040517ffe9cceec0000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101869052604481018290526064016108a5565b5f610a10866105de565b9050610a1f3386868985610de0565b95945050505050565b5f80610a3383610ae8565b905080851115610a88576040517fb94abeec0000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101869052604481018290526064016108a5565b5f610a92866105b6565b9050610a1f338686848a610de0565b5f6040517faf1fbb2100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6105c1825f610b8d565b5f6105c16101f2835b6001600160a01b0381165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0060205260408120546105c1565b5f610608610b30610446565b610b3b906001611aee565b610b465f600a611be1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254610b729190611aee565b85919085610e7f565b610b888383836001610ec1565b505050565b5f610608610b9c82600a611be1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254610bc89190611aee565b610bd0610446565b610b72906001611aee565b6001600160a01b038381165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160209081526040808320938616835292905220545f19811015610c895781811015610c7b576040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101829052604481018390526064016108a5565b610c8984848484035f610ec1565b50505050565b6001600160a01b038316610cd1576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b6001600160a01b038216610d13576040517fec442f050000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b610b88838383610fea565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006105c1565b610d4e611141565b610d5781611181565b50565b610d62611141565b610d6c8282611245565b5050565b610d7a84836112a8565b610d8483826112e4565b826001600160a01b0316846001600160a01b03167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d78484604051610dd2929190918252602082015260400190565b60405180910390a350505050565b826001600160a01b0316856001600160a01b031614610e0457610e04838683610bdb565b610e0e8382611331565b610e18848361137e565b826001600160a01b0316846001600160a01b0316866001600160a01b03167ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db8585604051610e70929190918252602082015260400190565b60405180910390a45050505050565b5f610eac610e8c836113b9565b8015610ea757505f8480610ea257610ea2611bef565b868809115b151590565b610eb78686866113e5565b610a1f9190611aee565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b038516610f24576040517fe602df050000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b6001600160a01b038416610f66576040517f94280d620000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b6001600160a01b038086165f90815260018301602090815260408083209388168352929052208390558115610fe357836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92585604051610fda91815260200190565b60405180910390a35b5050505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b0384166110375781816002015f82825461102c9190611aee565b909155506110c09050565b6001600160a01b0384165f90815260208290526040902054828110156110a2576040517fe450d38c0000000000000000000000000000000000000000000000000000000081526001600160a01b038616600482015260248101829052604481018490526064016108a5565b6001600160a01b0385165f9081526020839052604090209083900390555b6001600160a01b0383166110de5760028101805483900390556110fc565b6001600160a01b0383165f9081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610dd291815260200190565b611149611495565b61117f576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b611189611141565b7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e005f806111b5846114b3565b91509150816111c55760126111c7565b805b83547fffffffffffffffffffffff000000000000000000000000000000000000000000167401000000000000000000000000000000000000000060ff92909216919091027fffffffffffffffffffffffff000000000000000000000000000000000000000016176001600160a01b0394909416939093179091555050565b61124d611141565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace007f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace036112998482611cb1565b5060048101610c898382611cb1565b610d6c6112dc7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b83308461156c565b6001600160a01b038216611326576040517fec442f050000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b610d6c5f8383610fea565b6001600160a01b038216611373576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b610d6c825f83610fea565b610d6c6113b27f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b83836115bb565b5f60028260038111156113ce576113ce611d71565b6113d89190611d9e565b60ff166001149050919050565b5f805f6113f28686611609565b91509150815f036114165783818161140c5761140c611bef565b0492505050610608565b81841161142d5761142d6003851502601118611625565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010185841190960395909502919093039390930492909217029150509392505050565b5f61149e610d1e565b5468010000000000000000900460ff16919050565b5f805f6114bf60405190565b6040805160048152602481019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f313ce567000000000000000000000000000000000000000000000000000000001790529091505f908190611528908790611636565b509150915061153683604052565b818015611544575060203d10155b8015611551575060ff8111155b61155c575f80611560565b6001815b94509450505050915091565b61157a848484846001611657565b610c89576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b03851660048201526024016108a5565b6115c883838360016116dd565b610b88576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201526024016108a5565b5f805f1983850993909202808410938190039390930393915050565b634e487b715f52806020526024601cfd5b5f805f60405f855160208701885afa92505f51915060205190509250925092565b6040517f23b872dd000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038781166004528616602452604485905291602083606481808c5af1925060015f511483166116cc5783831516156116c0573d5f823e3d81fd5b5f883b113d1516831692505b604052505f60605295945050505050565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f5114831661174c578383151615611740573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f6020828403121561179d575f80fd5b5035919050565b6001600160a01b0381168114610d57575f80fd5b5f80604083850312156117c9575f80fd5b82356117d4816117a4565b946020939093013593505050565b5f805f606084860312156117f4575f80fd5b83356117ff816117a4565b9250602084013561180f816117a4565b929592945050506040919091013590565b5f60208284031215611830575f80fd5b8135610608816117a4565b5f806020838503121561184c575f80fd5b823567ffffffffffffffff80821115611863575f80fd5b818501915085601f830112611876575f80fd5b813581811115611884575f80fd5b866020828501011115611895575f80fd5b60209290920196919550909350505050565b5f80604083850312156118b8575f80fd5b8235915060208301356118ca816117a4565b809150509250929050565b5f805f606084860312156118e7575f80fd5b8335925060208401356118f9816117a4565b91506040840135611909816117a4565b809150509250925092565b5f8060408385031215611925575f80fd5b8235611930816117a4565b915060208301356118ca816117a4565b5f60208284031215611950575f80fd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f60208284031215611994575f80fd5b815167ffffffffffffffff808211156119ab575f80fd5b818401915084601f8301126119be575f80fd5b8151818111156119d0576119d0611957565b604051601f8201601f19908116603f011681019083821181831017156119f8576119f8611957565b81604052828152876020848701011115611a10575f80fd5b8260208601602083015e5f928101602001929092525095945050505050565b5f81518060208401855e5f93019283525090919050565b7f577261707065642000000000000000000000000000000000000000000000000081525f6106086008830184611a2f565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60ff81811683821601908111156105c1576105c1611a77565b7f770000000000000000000000000000000000000000000000000000000000000081525f6106086001830184611a2f565b808201808211156105c1576105c1611a77565b600181815b80851115611b3b57815f1904821115611b2157611b21611a77565b80851615611b2e57918102915b93841c9390800290611b06565b509250929050565b5f82611b51575060016105c1565b81611b5d57505f6105c1565b8160018114611b735760028114611b7d57611b99565b60019150506105c1565b60ff841115611b8e57611b8e611a77565b50506001821b6105c1565b5060208310610133831016604e8410600b8410161715611bbc575081810a6105c1565b611bc68383611b01565b805f1904821115611bd957611bd9611a77565b029392505050565b5f61060860ff841683611b43565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b600181811c90821680611c3057607f821691505b602082108103611c67577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b601f821115610b8857805f5260205f20601f840160051c81016020851015611c925750805b601f840160051c820191505b81811015610fe3575f8155600101611c9e565b815167ffffffffffffffff811115611ccb57611ccb611957565b611cdf81611cd98454611c1c565b84611c6d565b602080601f831160018114611d12575f8415611cfb5750858301515b5f19600386901b1c1916600185901b178555611d69565b5f85815260208120601f198616915b82811015611d4057888601518255948401946001909101908401611d21565b5085821015611d5d57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f60ff831680611dd5577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b8060ff8416069150509291505056"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b50600436106101b0575f3560e01c806370a08231116100f3578063c4d66de811610093578063ce96cb771161006e578063ce96cb77146103c9578063d905777e146103dc578063dd62ed3e146103ef578063ef8b30f7146103b6575f80fd5b8063c4d66de8146103a3578063c63d75b6146102bb578063c6e6f592146103b6575f80fd5b8063a9059cbb116100ce578063a9059cbb14610357578063b3d7f6b91461036a578063b460af941461037d578063ba08765214610390575f80fd5b806370a08231146102f557806394bf804d1461033c57806395d89b411461034f575f80fd5b806323b872dd1161015e578063402d267d11610139578063402d267d146102bb578063439fab91146102cf5780634cdad506146101e45780636e553f65146102e2575f80fd5b806323b872dd14610254578063313ce5671461026757806338d52e0f14610281575f80fd5b8063095ea7b31161018e578063095ea7b3146101f75780630a28a4771461021a57806318160ddd1461022d575f80fd5b806301e1d114146101b457806306fdde03146101cf57806307a2d13a146101e4575b5f80fd5b6101bc610446565b6040519081526020015b60405180910390f35b6101d76104fe565b6040516101c69190611758565b6101bc6101f236600461178d565b6105b6565b61020a6102053660046117b8565b6105c7565b60405190151581526020016101c6565b6101bc61022836600461178d565b6105de565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02546101bc565b61020a6102623660046117e2565b6105ea565b61026f61060f565b60405160ff90911681526020016101c6565b7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546040516001600160a01b0390911681526020016101c6565b6101bc6102c9366004611820565b505f1990565b6101bc6102dd36600461183b565b610662565b6101bc6102f03660046118a7565b61089d565b6101bc610303366004611820565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00602052604090205490565b6101bc61034a3660046118a7565b6108ce565b6101d76108e9565b61020a6103653660046117b8565b61098d565b6101bc61037836600461178d565b61099a565b6101bc61038b3660046118d5565b6109a6565b6101bc61039e3660046118d5565b610a28565b6101bc6103b1366004611820565b610aa1565b6101bc6103c436600461178d565b610ad4565b6101bc6103d7366004611820565b610adf565b6101bc6103ea366004611820565b610ae8565b6101bc6103fd366004611914565b6001600160a01b039182165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b5f6104787f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa1580156104d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104f99190611940565b905090565b60606105317f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b6001600160a01b03166306fdde036040518163ffffffff1660e01b81526004015f60405180830381865afa15801561056b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526105929190810190611984565b6040516020016105a29190611a46565b604051602081830303815290604052905090565b5f6105c1825f610b24565b92915050565b5f336105d4818585610b7b565b5060019392505050565b5f6105c1826001610b8d565b5f336105f7858285610bdb565b610602858585610c8f565b60019150505b9392505050565b5f807f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e0090505f815461065c919074010000000000000000000000000000000000000000900460ff16611aa4565b91505090565b5f8061066c610d1e565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156106985750825b90505f8267ffffffffffffffff1660011480156106b45750303b155b9050811580156106c2575080155b156106f9576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166001178555831561075a5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b5f610767888a018a611820565b90506001600160a01b0381166107a9576040517f7cde9b7200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107b281610d46565b6107d860405180602001604052805f81525060405180602001604052805f815250610d5a565b6040516001600160a01b0382169033907fdf5fabff9e49f8c35d69a1f2d0c5e80c933c31cf836cf70de57e3a6e7dc86ebb905f90a37fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc396505083156108925784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505092915050565b5f5f196108ae565b60405180910390fd5b5f6108b885610ad4565b90506108c633858784610d70565b949350505050565b5f5f195f6108db8561099a565b90506108c633858388610d70565b606061091c7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b6001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015610956573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261097d9190810190611984565b6040516020016105a29190611abd565b5f336105d4818585610c8f565b5f6105c1826001610b24565b5f806109b183610adf565b905080851115610a06576040517ffe9cceec0000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101869052604481018290526064016108a5565b5f610a10866105de565b9050610a1f3386868985610de0565b95945050505050565b5f80610a3383610ae8565b905080851115610a88576040517fb94abeec0000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101869052604481018290526064016108a5565b5f610a92866105b6565b9050610a1f338686848a610de0565b5f6040517faf1fbb2100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6105c1825f610b8d565b5f6105c16101f2835b6001600160a01b0381165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0060205260408120546105c1565b5f610608610b30610446565b610b3b906001611aee565b610b465f600a611be1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254610b729190611aee565b85919085610e7f565b610b888383836001610ec1565b505050565b5f610608610b9c82600a611be1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254610bc89190611aee565b610bd0610446565b610b72906001611aee565b6001600160a01b038381165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160209081526040808320938616835292905220545f19811015610c895781811015610c7b576040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101829052604481018390526064016108a5565b610c8984848484035f610ec1565b50505050565b6001600160a01b038316610cd1576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b6001600160a01b038216610d13576040517fec442f050000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b610b88838383610fea565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006105c1565b610d4e611141565b610d5781611181565b50565b610d62611141565b610d6c8282611245565b5050565b610d7a84836112a8565b610d8483826112e4565b826001600160a01b0316846001600160a01b03167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d78484604051610dd2929190918252602082015260400190565b60405180910390a350505050565b826001600160a01b0316856001600160a01b031614610e0457610e04838683610bdb565b610e0e8382611331565b610e18848361137e565b826001600160a01b0316846001600160a01b0316866001600160a01b03167ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db8585604051610e70929190918252602082015260400190565b60405180910390a45050505050565b5f610eac610e8c836113b9565b8015610ea757505f8480610ea257610ea2611bef565b868809115b151590565b610eb78686866113e5565b610a1f9190611aee565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b038516610f24576040517fe602df050000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b6001600160a01b038416610f66576040517f94280d620000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b6001600160a01b038086165f90815260018301602090815260408083209388168352929052208390558115610fe357836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92585604051610fda91815260200190565b60405180910390a35b5050505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b0384166110375781816002015f82825461102c9190611aee565b909155506110c09050565b6001600160a01b0384165f90815260208290526040902054828110156110a2576040517fe450d38c0000000000000000000000000000000000000000000000000000000081526001600160a01b038616600482015260248101829052604481018490526064016108a5565b6001600160a01b0385165f9081526020839052604090209083900390555b6001600160a01b0383166110de5760028101805483900390556110fc565b6001600160a01b0383165f9081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610dd291815260200190565b611149611495565b61117f576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b611189611141565b7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e005f806111b5846114b3565b91509150816111c55760126111c7565b805b83547fffffffffffffffffffffff000000000000000000000000000000000000000000167401000000000000000000000000000000000000000060ff92909216919091027fffffffffffffffffffffffff000000000000000000000000000000000000000016176001600160a01b0394909416939093179091555050565b61124d611141565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace007f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace036112998482611cb1565b5060048101610c898382611cb1565b610d6c6112dc7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b83308461156c565b6001600160a01b038216611326576040517fec442f050000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b610d6c5f8383610fea565b6001600160a01b038216611373576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b610d6c825f83610fea565b610d6c6113b27f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b83836115bb565b5f60028260038111156113ce576113ce611d71565b6113d89190611d9e565b60ff166001149050919050565b5f805f6113f28686611609565b91509150815f036114165783818161140c5761140c611bef565b0492505050610608565b81841161142d5761142d6003851502601118611625565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010185841190960395909502919093039390930492909217029150509392505050565b5f61149e610d1e565b5468010000000000000000900460ff16919050565b5f805f6114bf60405190565b6040805160048152602481019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f313ce567000000000000000000000000000000000000000000000000000000001790529091505f908190611528908790611636565b509150915061153683604052565b818015611544575060203d10155b8015611551575060ff8111155b61155c575f80611560565b6001815b94509450505050915091565b61157a848484846001611657565b610c89576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b03851660048201526024016108a5565b6115c883838360016116dd565b610b88576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201526024016108a5565b5f805f1983850993909202808410938190039390930393915050565b634e487b715f52806020526024601cfd5b5f805f60405f855160208701885afa92505f51915060205190509250925092565b6040517f23b872dd000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038781166004528616602452604485905291602083606481808c5af1925060015f511483166116cc5783831516156116c0573d5f823e3d81fd5b5f883b113d1516831692505b604052505f60605295945050505050565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f5114831661174c578383151615611740573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f6020828403121561179d575f80fd5b5035919050565b6001600160a01b0381168114610d57575f80fd5b5f80604083850312156117c9575f80fd5b82356117d4816117a4565b946020939093013593505050565b5f805f606084860312156117f4575f80fd5b83356117ff816117a4565b9250602084013561180f816117a4565b929592945050506040919091013590565b5f60208284031215611830575f80fd5b8135610608816117a4565b5f806020838503121561184c575f80fd5b823567ffffffffffffffff80821115611863575f80fd5b818501915085601f830112611876575f80fd5b813581811115611884575f80fd5b866020828501011115611895575f80fd5b60209290920196919550909350505050565b5f80604083850312156118b8575f80fd5b8235915060208301356118ca816117a4565b809150509250929050565b5f805f606084860312156118e7575f80fd5b8335925060208401356118f9816117a4565b91506040840135611909816117a4565b809150509250925092565b5f8060408385031215611925575f80fd5b8235611930816117a4565b915060208301356118ca816117a4565b5f60208284031215611950575f80fd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f60208284031215611994575f80fd5b815167ffffffffffffffff808211156119ab575f80fd5b818401915084601f8301126119be575f80fd5b8151818111156119d0576119d0611957565b604051601f8201601f19908116603f011681019083821181831017156119f8576119f8611957565b81604052828152876020848701011115611a10575f80fd5b8260208601602083015e5f928101602001929092525095945050505050565b5f81518060208401855e5f93019283525090919050565b7f577261707065642000000000000000000000000000000000000000000000000081525f6106086008830184611a2f565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60ff81811683821601908111156105c1576105c1611a77565b7f770000000000000000000000000000000000000000000000000000000000000081525f6106086001830184611a2f565b808201808211156105c1576105c1611a77565b600181815b80851115611b3b57815f1904821115611b2157611b21611a77565b80851615611b2e57918102915b93841c9390800290611b06565b509250929050565b5f82611b51575060016105c1565b81611b5d57505f6105c1565b8160018114611b735760028114611b7d57611b99565b60019150506105c1565b60ff841115611b8e57611b8e611a77565b50506001821b6105c1565b5060208310610133831016604e8410600b8410161715611bbc575081810a6105c1565b611bc68383611b01565b805f1904821115611bd957611bd9611a77565b029392505050565b5f61060860ff841683611b43565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b600181811c90821680611c3057607f821691505b602082108103611c67577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b601f821115610b8857805f5260205f20601f840160051c81016020851015611c925750805b601f840160051c820191505b81811015610fe3575f8155600101611c9e565b815167ffffffffffffffff811115611ccb57611ccb611957565b611cdf81611cd98454611c1c565b84611c6d565b602080601f831160018114611d12575f8415611cfb5750858301515b5f19600386901b1c1916600185901b178555611d69565b5f85815260208120601f198616915b82811015611d4057888601518255948401946001909101908401611d21565b5085821015611d5d57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f60ff831680611dd5577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b8060ff8416069150509291505056"; diff --git a/src/generated/0_1_7/StoxWrappedTokenVaultBeacon.pointers.sol b/src/generated/0_1_7/StoxWrappedTokenVaultBeacon.pointers.sol deleted file mode 100644 index 438a674d..00000000 --- a/src/generated/0_1_7/StoxWrappedTokenVaultBeacon.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x8e95867e52db417944afd90f3b6c3c980962831e8a944e7f6958ba8f8cc10630); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x9FD790f65CA3aF2772358c653F097f0a4c7EE7d2); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"608060405234801561000f575f80fd5b50730d99e0174dbf885ced6ae8deb939b0f890450099738e4bdeec7ceb9570d440676345da1dce10329f5b80610049565b60405180910390fd5b61005281610063565b5061005c826100b2565b5050610130565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b806001600160a01b03163b5f036100e75760405163211eb15960e21b81526001600160a01b0382166004820152602401610040565b600180546001600160a01b0319166001600160a01b0383169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b61035a8061013d5f395ff3fe608060405234801561000f575f80fd5b5060043610610064575f3560e01c8063715018a61161004d578063715018a6146100c05780638da5cb5b146100c8578063f2fde38b146100e5575f80fd5b80633659cfe6146100685780635c60da1b1461007d575b5f80fd5b61007b610076366004610320565b6100f8565b005b60015473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61007b61010c565b5f5473ffffffffffffffffffffffffffffffffffffffff16610097565b61007b6100f3366004610320565b61011f565b610100610184565b610109816101d6565b50565b610114610184565b61011d5f6102ac565b565b610127610184565b73ffffffffffffffffffffffffffffffffffffffff811661017b576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f60048201526024015b60405180910390fd5b610109816102ac565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461011d576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610172565b8073ffffffffffffffffffffffffffffffffffffffff163b5f0361023e576040517f847ac56400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602401610172565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f60208284031215610330575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610353575f80fd5b939250505056"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b5060043610610064575f3560e01c8063715018a61161004d578063715018a6146100c05780638da5cb5b146100c8578063f2fde38b146100e5575f80fd5b80633659cfe6146100685780635c60da1b1461007d575b5f80fd5b61007b610076366004610320565b6100f8565b005b60015473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61007b61010c565b5f5473ffffffffffffffffffffffffffffffffffffffff16610097565b61007b6100f3366004610320565b61011f565b610100610184565b610109816101d6565b50565b610114610184565b61011d5f6102ac565b565b610127610184565b73ffffffffffffffffffffffffffffffffffffffff811661017b576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f60048201526024015b60405180910390fd5b610109816102ac565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461011d576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610172565b8073ffffffffffffffffffffffffffffffffffffffff163b5f0361023e576040517f847ac56400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602401610172565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f60208284031215610330575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610353575f80fd5b939250505056"; diff --git a/src/generated/0_1_7/StoxWrappedTokenVaultBeaconSetDeployer.pointers.sol b/src/generated/0_1_7/StoxWrappedTokenVaultBeaconSetDeployer.pointers.sol deleted file mode 100644 index 231752f1..00000000 --- a/src/generated/0_1_7/StoxWrappedTokenVaultBeaconSetDeployer.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x940e3ab4278cf7ae44026596f4f32dc5c7f3facd99ef8070c63b5cfefd49a47c); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x6B4232f1046F1f1bb99a1184D886bBaF3Cd7e15A); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"6080604052348015600e575f80fd5b506109468061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c806301ffc9a714610038578063d786858b14610060575b5f80fd5b61004b610046366004610333565b610098565b60405190151581526020015b60405180910390f35b61007361006e366004610379565b610130565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610057565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fd786858b00000000000000000000000000000000000000000000000000000000148061012a57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff821661017e576040517fe51a7ce200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f739fd790f65ca3af2772358c653f097f0a4c7ee7d26040516101a090610326565b73ffffffffffffffffffffffffffffffffffffffff90911681526040602082018190525f90820152606001604051809103905ff0801580156101e4573d5f803e3d5ffd5b506040805133815273ffffffffffffffffffffffffffffffffffffffff831660208201529192507f82488d8ab594db2178e4a45b7106aaa804836e608f001b5d7fcb6c3514730b3e910160405180910390a16040805173ffffffffffffffffffffffffffffffffffffffff85811660208301527fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc3929084169163439fab9191016040516020818303038152906040526040518263ffffffff1660e01b81526004016102af91906103ac565b6020604051808303815f875af11580156102cb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ef91906103ff565b1461012a576040517f09c5931500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61052f8061041783390190565b5f60208284031215610343575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610372575f80fd5b9392505050565b5f60208284031215610389575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610372575f80fd5b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b5f6020828403121561040f575f80fd5b505191905056fe60a060405260405161052f38038061052f83398101604081905261002291610331565b61002c828261003e565b506001600160a01b031660805261040d565b610047826100fb565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a28051156100ef576100ea826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e491906103ed565b82610209565b505050565b6100f76102aa565b5050565b806001600160a01b03163b5f0361013557604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b815290515f92841691635c60da1b9160048083019260209291908290030181865afa1580156101ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d291906103ed565b9050806001600160a01b03163b5f036100f757604051634c9c8ce360e01b81526001600160a01b038216600482015260240161012c565b60605f61021684846102cb565b905080801561023757505f3d118061023757505f846001600160a01b03163b115b1561024c576102446102de565b9150506102a4565b801561027657604051639996b31560e01b81526001600160a01b038516600482015260240161012c565b3d15610289576102846102f7565b6102a2565b60405163d6bda27560e01b815260040160405180910390fd5b505b92915050565b34156102c95760405163b398979f60e01b815260040160405180910390fd5b565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b6040513d5f823e3d81fd5b80516001600160a01b0381168114610318575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215610342575f80fd5b61034b83610302565b60208401519092506001600160401b0380821115610367575f80fd5b818501915085601f83011261037a575f80fd5b81518181111561038c5761038c61031d565b604051601f8201601f19908116603f011681019083821181831017156103b4576103b461031d565b816040528281528860208487010111156103cc575f80fd5b8260208601602083015e5f6020848301015280955050505050509250929050565b5f602082840312156103fd575f80fd5b61040682610302565b9392505050565b60805161010b6104245f395f6023015261010b5ff3fe608060405261000c61000e565b005b61001e610019610020565b6100b3565b565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561008a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100ae91906100d1565b905090565b365f80375f80365f845af43d5f803e8080156100cd573d5ff35b3d5ffd5b5f602082840312156100e1575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610104575f80fd5b939250505056"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b5060043610610034575f3560e01c806301ffc9a714610038578063d786858b14610060575b5f80fd5b61004b610046366004610333565b610098565b60405190151581526020015b60405180910390f35b61007361006e366004610379565b610130565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610057565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fd786858b00000000000000000000000000000000000000000000000000000000148061012a57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff821661017e576040517fe51a7ce200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f739fd790f65ca3af2772358c653f097f0a4c7ee7d26040516101a090610326565b73ffffffffffffffffffffffffffffffffffffffff90911681526040602082018190525f90820152606001604051809103905ff0801580156101e4573d5f803e3d5ffd5b506040805133815273ffffffffffffffffffffffffffffffffffffffff831660208201529192507f82488d8ab594db2178e4a45b7106aaa804836e608f001b5d7fcb6c3514730b3e910160405180910390a16040805173ffffffffffffffffffffffffffffffffffffffff85811660208301527fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc3929084169163439fab9191016040516020818303038152906040526040518263ffffffff1660e01b81526004016102af91906103ac565b6020604051808303815f875af11580156102cb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ef91906103ff565b1461012a576040517f09c5931500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61052f8061041783390190565b5f60208284031215610343575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610372575f80fd5b9392505050565b5f60208284031215610389575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610372575f80fd5b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b5f6020828403121561040f575f80fd5b505191905056fe60a060405260405161052f38038061052f83398101604081905261002291610331565b61002c828261003e565b506001600160a01b031660805261040d565b610047826100fb565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a28051156100ef576100ea826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e491906103ed565b82610209565b505050565b6100f76102aa565b5050565b806001600160a01b03163b5f0361013557604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b815290515f92841691635c60da1b9160048083019260209291908290030181865afa1580156101ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d291906103ed565b9050806001600160a01b03163b5f036100f757604051634c9c8ce360e01b81526001600160a01b038216600482015260240161012c565b60605f61021684846102cb565b905080801561023757505f3d118061023757505f846001600160a01b03163b115b1561024c576102446102de565b9150506102a4565b801561027657604051639996b31560e01b81526001600160a01b038516600482015260240161012c565b3d15610289576102846102f7565b6102a2565b60405163d6bda27560e01b815260040160405180910390fd5b505b92915050565b34156102c95760405163b398979f60e01b815260040160405180910390fd5b565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b6040513d5f823e3d81fd5b80516001600160a01b0381168114610318575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215610342575f80fd5b61034b83610302565b60208401519092506001600160401b0380821115610367575f80fd5b818501915085601f83011261037a575f80fd5b81518181111561038c5761038c61031d565b604051601f8201601f19908116603f011681019083821181831017156103b4576103b461031d565b816040528281528860208487010111156103cc575f80fd5b8260208601602083015e5f6020848301015280955050505050509250929050565b5f602082840312156103fd575f80fd5b61040682610302565b9392505050565b60805161010b6104245f395f6023015261010b5ff3fe608060405261000c61000e565b005b61001e610019610020565b6100b3565b565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561008a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100ae91906100d1565b905090565b365f80375f80365f845af43d5f803e8080156100cd573d5ff35b3d5ffd5b5f602082840312156100e1575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610104575f80fd5b939250505056"; diff --git a/src/generated/0_1_8/ST0xOrchestrator.pointers.sol b/src/generated/0_1_8/ST0xOrchestrator.pointers.sol deleted file mode 100644 index 9fe30271..00000000 --- a/src/generated/0_1_8/ST0xOrchestrator.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x7537448e8cbb200d25651a941a39e465e2ef7a549fe8245d83774bef485629e6); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x0099FcB947Cc31E21C631478A2a9E2E591cd4010); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"6080604052348015600e575f80fd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6131c0806100d65f395ff3fe608060405260043610610191575f3560e01c8063742fabb3116100dc578063b930908f11610087578063d547741f11610062578063d547741f14610594578063e9a9c850146105b3578063f14893a7146105e6578063f23a6e6114610605575f80fd5b8063b930908f146104f2578063bc197c8114610525578063c4d66de814610575575f80fd5b806391d14854116100b757806391d148541461045d5780639cb887f8146104c0578063a217fddf146104df575f80fd5b8063742fabb3146103cf578063752c9cf51461042257806384b0196e14610436575f80fd5b80633b94a0dd1161013c57806344d171871161011757806344d1718714610372578063584f418e14610391578063671d083f146103b0575f80fd5b80633b94a0dd146103015780633e81e40d146103345780633f6fc76f14610353575f80fd5b8063248a9ca31161016c578063248a9ca3146102745780632f2ff15d146102c157806336568abe146102e2575f80fd5b806301ffc9a71461019c5780630e230f97146101d057806320df435914610233575f80fd5b3661019857005b5f80fd5b3480156101a7575f80fd5b506101bb6101b6366004612944565b610624565b60405190151581526020015b60405180910390f35b3480156101db575f80fd5b506101bb6101ea366004612973565b6001600160a01b03919091165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be70160209081526040808320938352929052205460ff1690565b34801561023e575f80fd5b506102667f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de81565b6040519081526020016101c7565b34801561027f575f80fd5b5061026661028e36600461299d565b5f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b3480156102cc575f80fd5b506102e06102db3660046129b4565b6106cb565b005b3480156102ed575f80fd5b506102e06102fc3660046129b4565b610714565b34801561030c575f80fd5b506102667f8381bcc05e5203d9456aa7185a19b2be5d4af37909fecf63a6f2016c1bf8413381565b34801561033f575f80fd5b5061026661034e3660046129e2565b610765565b34801561035e575f80fd5b506102e061036d366004612a25565b61077b565b34801561037d575f80fd5b506102e061038c366004612aa9565b610816565b34801561039c575f80fd5b506102e06103ab366004612b01565b610979565b3480156103bb575f80fd5b506102e06103ca366004612b48565b610af3565b3480156103da575f80fd5b506102666103e9366004612be2565b6001600160a01b03165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be700602052604090205490565b34801561042d575f80fd5b506101bb610cbc565b348015610441575f80fd5b5061044a610eb1565b6040516101c79796959493929190612c2b565b348015610468575f80fd5b506101bb6104773660046129b4565b5f9182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3480156104cb575f80fd5b506102e06104da366004612973565b610f0f565b3480156104ea575f80fd5b506102665f81565b3480156104fd575f80fd5b506102667f04c6a47ae7910ef8b295215a97e8495a9eaf57b7b05bfd8bf951edb3fd4a16a381565b348015610530575f80fd5b5061054461053f366004612d1f565b610fc5565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016101c7565b348015610580575f80fd5b506102e061058f366004612be2565b611054565b34801561059f575f80fd5b506102e06105ae3660046129b4565b611283565b3480156105be575f80fd5b506102667ffdf81848136595c31bb5f76217767372bc4bf906663038eb38381131ea27ecba81565b3480156105f1575f80fd5b506102e0610600366004612b01565b6112c6565b348015610610575f80fd5b5061054461061f366004612dd6565b6113ce565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f4e2312e00000000000000000000000000000000000000000000000000000000014806106b657507fffffffff0000000000000000000000000000000000000000000000000000000082167f18bd37da00000000000000000000000000000000000000000000000000000000145b806106c557506106c58261140b565b92915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020526040902060010154610704816114a1565b61070e83836114ae565b50505050565b6001600160a01b0381163314610756576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610760828261157a565b505050565b5f6107728585858561161e565b95945050505050565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de6107a5816114a1565b6107ad611694565b6107c16001600160a01b03851683856116cb565b816001600160a01b0316846001600160a01b03167f4810d2f105dcba10d740b4ac1d8fa8454dd37014b2051bace1edb1d903c440c48560405161080691815260200190565b60405180910390a361070e611719565b7f04c6a47ae7910ef8b295215a97e8495a9eaf57b7b05bfd8bf951edb3fd4a16a3610840816114a1565b610848611743565b610850611694565b835f03610889576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61089e6001600160a01b0386163330876119d5565b6001600160a01b0385165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be70060209081526040808320548151601f8701849004840281018401909252858252929161091791899189919089908990819084018382808284375f92019190915250611a2492505050565b60408051888152602081018590529081018290529091506001600160a01b0388169033907f112766730ce440487945c01048dacfc6d04340403f675871e96c4e28cf622ecc9060600160405180910390a35050610972611719565b5050505050565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de6109a3816114a1565b6109ab611694565b846001600160a01b031663e1e6b8986040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109e7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a0b9190612e3b565b6040517ff242432a0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038481166024830152604482018790526064820186905260a060848301525f60a4830152919091169063f242432a9060c4015f604051808303815f87803b158015610a87575f80fd5b505af1158015610a99573d5f803e3d5ffd5b5050505083826001600160a01b0316866001600160a01b03167fc9e640d2eb1b8469e42f60a66fef6a05cfd27ee3757e48f3f8ba04ecbc8a51b086604051610ae391815260200190565b60405180910390a4610972611719565b7ffdf81848136595c31bb5f76217767372bc4bf906663038eb38381131ea27ecba610b1d816114a1565b610b25611743565b610b2d611694565b845f03610b66576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b7287878787611d57565b6040517fc77b66c20000000000000000000000000000000000000000000000000000000081525f906001600160a01b0389169063c77b66c290610bc1908990309086908a908a90600401612e56565b6020604051808303815f875af1158015610bdd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c019190612ea2565b9050858114610c4b576040517fbe40f1fc00000000000000000000000000000000000000000000000000000000815260048101879052602481018290526044015b60405180910390fd5b610c5f6001600160a01b03891688886116cb565b60408051878152863560208201526001600160a01b03808a1692908b169133917f7c0eac1a8d30fbe7a577affc3b588a0b7d965a6133d12097cfac0760f2f2b617910160405180910390a450610cb3611719565b50505050505050565b5f8073679ab223dab158ea93e1a4f49104de436c58eab8905073d7f91c1c6e6e651ec3f1fd707af7cbb7526206e16001600160a01b0316816001600160a01b0316632f77a1c16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d2f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d539190612e3b565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d8e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610db29190612e3b565b6001600160a01b0316148015610eab5750732df5cfe6d688ef9ff1b7c59a499d254b1527b2866001600160a01b0316816001600160a01b0316632c9b7f406040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e1d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e419190612e3b565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e7c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ea09190612e3b565b6001600160a01b0316145b91505090565b5f6060805f805f6060610ec2611e95565b610eca611f68565b604080515f808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009b939a50919850469750309650945092509050565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de610f39816114a1565b610f41611694565b5f7f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be7006001600160a01b0385165f818152602083815260409182902080549088905582518181529182018890529394507fc6ce8282d3b57b159503fa5566e612aeb9f30c8e20c882398c9cb293c1ba6d68910160405180910390a25050610760611719565b5f805b86811015611025578481108015610ff657505f868683818110610fed57610fed612ee6565b90506020020135115b1561101d5761101d3389898481811061101157611011612ee6565b90506020020135611fb9565b600101610fc8565b507fbc197c81000000000000000000000000000000000000000000000000000000009998505050505050505050565b5f61105d612222565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156110895750825b90505f8267ffffffffffffffff1660011480156110a55750303b155b9050811580156110b3575080155b156110ea576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166001178555831561114b5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6001600160a01b03861661118b576040517f9905827b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611193611743565b61119b61224a565b61120f6040518060400160405280601081526020017f535430784f7263686573747261746f72000000000000000000000000000000008152506040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250612252565b6112195f876114ae565b50831561127b5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680060205260409020600101546112bc816114a1565b61070e838361157a565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de6112f0816114a1565b6112f8611694565b6040517ff242432a0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038381166024830152604482018690526064820185905260a060848301525f60a483015286169063f242432a9060c4015f604051808303815f87803b158015611372575f80fd5b505af1158015611384573d5f803e3d5ffd5b5050505083826001600160a01b0316866001600160a01b03167f78b19b4b6e69e380c3c303d1e889d510ee3ee409219c1c014d97a0a607b6c6a686604051610ae391815260200190565b5f83156113df576113df3386611fb9565b507ff23a6e61000000000000000000000000000000000000000000000000000000009695505050505050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806106c557507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146106c5565b6114ab8133612268565b50565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff16611571575f848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556115273390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506106c5565b5f9150506106c5565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff1615611571575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506106c5565b604080517f8381bcc05e5203d9456aa7185a19b2be5d4af37909fecf63a6f2016c1bf8413360208201526001600160a01b038087169282019290925290841660608201526080810183905260a081018290525f906107729060c001604051602081830303815290604052805190602001206122f4565b61169c61233b565b6116c960017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005b90612394565b565b6116d8838383600161239b565b610760576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610c42565b6116c95f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f006116c3565b5f73679ab223dab158ea93e1a4f49104de436c58eab890505f816001600160a01b0316632f77a1c16040518163ffffffff1660e01b8152600401602060405180830381865afa158015611798573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117bc9190612e3b565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117f7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061181b9190612e3b565b90506001600160a01b03811673d7f91c1c6e6e651ec3f1fd707af7cbb7526206e114611898576040517fdfdb61b700000000000000000000000000000000000000000000000000000000815273d7f91c1c6e6e651ec3f1fd707af7cbb7526206e160048201526001600160a01b0382166024820152604401610c42565b5f826001600160a01b0316632c9b7f406040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118f99190612e3b565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611934573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119589190612e3b565b90506001600160a01b038116732df5cfe6d688ef9ff1b7c59a499d254b1527b28614610760576040517f3e4077b3000000000000000000000000000000000000000000000000000000008152732df5cfe6d688ef9ff1b7c59a499d254b1527b28660048201526001600160a01b0382166024820152604401610c42565b6119e3848484846001612416565b61070e576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610c42565b5f808490505f816001600160a01b031663e1e6b8986040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a66573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a8a9190612e3b565b90507f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be7005f015f876001600160a01b03166001600160a01b031681526020019081526020015f205492505f826001600160a01b031663f5d214f56040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b10573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b349190612ea2565b90505b8515611d125780841115611b89576040517f66a21a2d0000000000000000000000000000000000000000000000000000000081526001600160a01b038816600482015260248101879052604401610c42565b6040517efdd58e000000000000000000000000000000000000000000000000000000008152306004820152602481018590525f906001600160a01b0384169062fdd58e90604401602060405180830381865afa158015611beb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c0f9190612ea2565b9050805f03611c245750600190930192611b37565b5f818810611c325781611c34565b875b90505f856001600160a01b031663921a4c428330308b8d6040518663ffffffff1660e01b8152600401611c6b959493929190612f13565b6020604051808303815f875af1158015611c87573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cab9190612ea2565b9050818114611cf0576040517fbe40f1fc0000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610c42565b611cfa828a612f55565b9850828203611d0a576001909601955b505050611b37565b5050506001600160a01b03939093165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be700602052604090208390555090919050565b6001600160a01b0383165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be70160209081526040808320843584529091529020547f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be7009060ff1615611e08576040517f59c210430000000000000000000000000000000000000000000000000000000081526001600160a01b038516600482015282356024820152604401610c42565b6001600160a01b0384165f90815260018281016020908152604080842086358086529252909220805460ff19169091179055610972908590611e4f9088908390889061161e565b611e5c6020860186612f8d565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061249c92505050565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10280546060917fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10091611ee690612fee565b80601f0160208091040260200160405190810160405280929190818152602001828054611f1290612fee565b8015611f5d5780601f10611f3457610100808354040283529160200191611f5d565b820191905f5260205f20905b815481529060010190602001808311611f4057829003601f168201915b505050505091505090565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10380546060917fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10091611ee690612fee565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f481c6a750000000000000000000000000000000000000000000000000000000017905290515f9182916001600160a01b038616916120299161303f565b5f60405180830381855afa9150503d805f8114612061576040519150601f19603f3d011682016040523d82523d5f602084013e612066565b606091505b509150915081158061207a57508051602014155b156120855750505050565b5f61208f82613055565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe1e6b8980000000000000000000000000000000000000000000000000000000017905290519192506001600160a01b038316916120ff919061303f565b5f60405180830381855afa9150503d805f8114612137576040519150601f19603f3d011682016040523d82523d5f602084013e61213c565b606091505b50909350915082158061215157508151602014155b1561215d575050505050565b6001600160a01b03851661217083613055565b6001600160a01b031614612185575050505050565b6001600160a01b0381165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be700602081905260409091205480861015610cb3576001600160a01b0383165f818152602084815260409182902089905581518481529081018990527f2008c207f65bedc2bb65dc8ac34aee36a37cd43a50152d574107c63ace7e07c6910160405180910390a250505050505050565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006106c5565b6116c96125cb565b61225a6125cb565b6122648282612609565b5050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038516845290915290205460ff16612264576040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015260248101839052604401610c42565b5f6106c561230061266c565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c156116c9576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80825d5050565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f5114831661240a5783831516156123fe573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b6040517f23b872dd000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038781166004528616602452604485905291602083606481808c5af1925060015f5114831661248b57838315161561247f573d5f823e3d81fd5b5f883b113d1516831692505b604052505f60605295945050505050565b8051156124e4576124ae83838361267a565b610760576040517f19ab93cc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f642ddf3a0000000000000000000000000000000000000000000000000000000080825260048201849052906001600160a01b0385169063642ddf3a906024016020604051808303815f875af1158015612543573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125679190613078565b7fffffffff000000000000000000000000000000000000000000000000000000001614610760576040517f22b89c080000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610c42565b6125d36126ed565b6116c9576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6126116125cb565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1007fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10261265d84826130d7565b506003810161070e83826130d7565b5f61267561270b565b905090565b5f836001600160a01b03163b5f036126d8575f80612698858561277e565b5090925090505f8160038111156126b1576126b1613193565b1480156126cf5750856001600160a01b0316826001600160a01b0316145b925050506126e6565b6126e38484846127c7565b90505b9392505050565b5f6126f6612222565b5468010000000000000000900460ff16919050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f612735612831565b61273d612846565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f805f83516041036127b5576020840151604085015160608601515f1a6127a78882858561284f565b9550955095505050506127c0565b505081515f91506002905b9250925092565b8051604080517f1626ba7e000000000000000000000000000000000000000000000000000000008082526004820186905260248201929092525f92906020820185604483015e60205f60648401838a5afa9050825f5114601f3d1116811693505050509392505050565b5f61283a611e95565b80519060200120905090565b5f61283a611f68565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561288857505f9150600390508261290d565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa1580156128d9573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b03811661290457505f92506001915082905061290d565b92505f91508190505b9450945094915050565b7fffffffff00000000000000000000000000000000000000000000000000000000811681146114ab575f80fd5b5f60208284031215612954575f80fd5b81356126e681612917565b6001600160a01b03811681146114ab575f80fd5b5f8060408385031215612984575f80fd5b823561298f8161295f565b946020939093013593505050565b5f602082840312156129ad575f80fd5b5035919050565b5f80604083850312156129c5575f80fd5b8235915060208301356129d78161295f565b809150509250929050565b5f805f80608085870312156129f5575f80fd5b8435612a008161295f565b93506020850135612a108161295f565b93969395505050506040820135916060013590565b5f805f60608486031215612a37575f80fd5b8335612a428161295f565b9250602084013591506040840135612a598161295f565b809150509250925092565b5f8083601f840112612a74575f80fd5b50813567ffffffffffffffff811115612a8b575f80fd5b602083019150836020828501011115612aa2575f80fd5b9250929050565b5f805f8060608587031215612abc575f80fd5b8435612ac78161295f565b935060208501359250604085013567ffffffffffffffff811115612ae9575f80fd5b612af587828801612a64565b95989497509550505050565b5f805f8060808587031215612b14575f80fd5b8435612b1f8161295f565b935060208501359250604085013591506060850135612b3d8161295f565b939692955090935050565b5f805f805f8060a08789031215612b5d575f80fd5b8635612b688161295f565b95506020870135612b788161295f565b945060408701359350606087013567ffffffffffffffff80821115612b9b575f80fd5b908801906040828b031215612bae575f80fd5b90935060808801359080821115612bc3575f80fd5b50612bd089828a01612a64565b979a9699509497509295939492505050565b5f60208284031215612bf2575f80fd5b81356126e68161295f565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b7fff00000000000000000000000000000000000000000000000000000000000000881681525f602060e06020840152612c6760e084018a612bfd565b8381036040850152612c79818a612bfd565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825260208088019350909101905f5b81811015612ccc57835183529284019291840191600101612cb0565b50909c9b505050505050505050505050565b5f8083601f840112612cee575f80fd5b50813567ffffffffffffffff811115612d05575f80fd5b6020830191508360208260051b8501011115612aa2575f80fd5b5f805f805f805f8060a0898b031215612d36575f80fd5b8835612d418161295f565b97506020890135612d518161295f565b9650604089013567ffffffffffffffff80821115612d6d575f80fd5b612d798c838d01612cde565b909850965060608b0135915080821115612d91575f80fd5b612d9d8c838d01612cde565b909650945060808b0135915080821115612db5575f80fd5b50612dc28b828c01612a64565b999c989b5096995094979396929594505050565b5f805f805f8060a08789031215612deb575f80fd5b8635612df68161295f565b95506020870135612e068161295f565b94506040870135935060608701359250608087013567ffffffffffffffff811115612e2f575f80fd5b612bd089828a01612a64565b5f60208284031215612e4b575f80fd5b81516126e68161295f565b8581526001600160a01b038516602082015283604082015260806060820152816080820152818360a08301375f81830160a090810191909152601f909201601f19160101949350505050565b5f60208284031215612eb2575f80fd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b8581525f6001600160a01b03808716602084015280861660408401525083606083015260a06080830152612f4a60a0830184612bfd565b979650505050505050565b818103818111156106c5577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612fc0575f80fd5b83018035915067ffffffffffffffff821115612fda575f80fd5b602001915036819003821315612aa2575f80fd5b600181811c9082168061300257607f821691505b602082108103613039577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b5f82518060208501845e5f920191825250919050565b80516020808301519190811015613039575f1960209190910360031b1b16919050565b5f60208284031215613088575f80fd5b81516126e681612917565b601f82111561076057805f5260205f20601f840160051c810160208510156130b85750805b601f840160051c820191505b81811015610972575f81556001016130c4565b815167ffffffffffffffff8111156130f1576130f1612eb9565b613105816130ff8454612fee565b84613093565b602080601f831160018114613138575f84156131215750858301515b5f19600386901b1c1916600185901b17855561127b565b5f85815260208120601f198616915b8281101561316657888601518255948401946001909101908401613147565b508582101561318357878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405260043610610191575f3560e01c8063742fabb3116100dc578063b930908f11610087578063d547741f11610062578063d547741f14610594578063e9a9c850146105b3578063f14893a7146105e6578063f23a6e6114610605575f80fd5b8063b930908f146104f2578063bc197c8114610525578063c4d66de814610575575f80fd5b806391d14854116100b757806391d148541461045d5780639cb887f8146104c0578063a217fddf146104df575f80fd5b8063742fabb3146103cf578063752c9cf51461042257806384b0196e14610436575f80fd5b80633b94a0dd1161013c57806344d171871161011757806344d1718714610372578063584f418e14610391578063671d083f146103b0575f80fd5b80633b94a0dd146103015780633e81e40d146103345780633f6fc76f14610353575f80fd5b8063248a9ca31161016c578063248a9ca3146102745780632f2ff15d146102c157806336568abe146102e2575f80fd5b806301ffc9a71461019c5780630e230f97146101d057806320df435914610233575f80fd5b3661019857005b5f80fd5b3480156101a7575f80fd5b506101bb6101b6366004612944565b610624565b60405190151581526020015b60405180910390f35b3480156101db575f80fd5b506101bb6101ea366004612973565b6001600160a01b03919091165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be70160209081526040808320938352929052205460ff1690565b34801561023e575f80fd5b506102667f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de81565b6040519081526020016101c7565b34801561027f575f80fd5b5061026661028e36600461299d565b5f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b3480156102cc575f80fd5b506102e06102db3660046129b4565b6106cb565b005b3480156102ed575f80fd5b506102e06102fc3660046129b4565b610714565b34801561030c575f80fd5b506102667f8381bcc05e5203d9456aa7185a19b2be5d4af37909fecf63a6f2016c1bf8413381565b34801561033f575f80fd5b5061026661034e3660046129e2565b610765565b34801561035e575f80fd5b506102e061036d366004612a25565b61077b565b34801561037d575f80fd5b506102e061038c366004612aa9565b610816565b34801561039c575f80fd5b506102e06103ab366004612b01565b610979565b3480156103bb575f80fd5b506102e06103ca366004612b48565b610af3565b3480156103da575f80fd5b506102666103e9366004612be2565b6001600160a01b03165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be700602052604090205490565b34801561042d575f80fd5b506101bb610cbc565b348015610441575f80fd5b5061044a610eb1565b6040516101c79796959493929190612c2b565b348015610468575f80fd5b506101bb6104773660046129b4565b5f9182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3480156104cb575f80fd5b506102e06104da366004612973565b610f0f565b3480156104ea575f80fd5b506102665f81565b3480156104fd575f80fd5b506102667f04c6a47ae7910ef8b295215a97e8495a9eaf57b7b05bfd8bf951edb3fd4a16a381565b348015610530575f80fd5b5061054461053f366004612d1f565b610fc5565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016101c7565b348015610580575f80fd5b506102e061058f366004612be2565b611054565b34801561059f575f80fd5b506102e06105ae3660046129b4565b611283565b3480156105be575f80fd5b506102667ffdf81848136595c31bb5f76217767372bc4bf906663038eb38381131ea27ecba81565b3480156105f1575f80fd5b506102e0610600366004612b01565b6112c6565b348015610610575f80fd5b5061054461061f366004612dd6565b6113ce565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f4e2312e00000000000000000000000000000000000000000000000000000000014806106b657507fffffffff0000000000000000000000000000000000000000000000000000000082167f18bd37da00000000000000000000000000000000000000000000000000000000145b806106c557506106c58261140b565b92915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020526040902060010154610704816114a1565b61070e83836114ae565b50505050565b6001600160a01b0381163314610756576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610760828261157a565b505050565b5f6107728585858561161e565b95945050505050565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de6107a5816114a1565b6107ad611694565b6107c16001600160a01b03851683856116cb565b816001600160a01b0316846001600160a01b03167f4810d2f105dcba10d740b4ac1d8fa8454dd37014b2051bace1edb1d903c440c48560405161080691815260200190565b60405180910390a361070e611719565b7f04c6a47ae7910ef8b295215a97e8495a9eaf57b7b05bfd8bf951edb3fd4a16a3610840816114a1565b610848611743565b610850611694565b835f03610889576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61089e6001600160a01b0386163330876119d5565b6001600160a01b0385165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be70060209081526040808320548151601f8701849004840281018401909252858252929161091791899189919089908990819084018382808284375f92019190915250611a2492505050565b60408051888152602081018590529081018290529091506001600160a01b0388169033907f112766730ce440487945c01048dacfc6d04340403f675871e96c4e28cf622ecc9060600160405180910390a35050610972611719565b5050505050565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de6109a3816114a1565b6109ab611694565b846001600160a01b031663e1e6b8986040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109e7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a0b9190612e3b565b6040517ff242432a0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038481166024830152604482018790526064820186905260a060848301525f60a4830152919091169063f242432a9060c4015f604051808303815f87803b158015610a87575f80fd5b505af1158015610a99573d5f803e3d5ffd5b5050505083826001600160a01b0316866001600160a01b03167fc9e640d2eb1b8469e42f60a66fef6a05cfd27ee3757e48f3f8ba04ecbc8a51b086604051610ae391815260200190565b60405180910390a4610972611719565b7ffdf81848136595c31bb5f76217767372bc4bf906663038eb38381131ea27ecba610b1d816114a1565b610b25611743565b610b2d611694565b845f03610b66576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b7287878787611d57565b6040517fc77b66c20000000000000000000000000000000000000000000000000000000081525f906001600160a01b0389169063c77b66c290610bc1908990309086908a908a90600401612e56565b6020604051808303815f875af1158015610bdd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c019190612ea2565b9050858114610c4b576040517fbe40f1fc00000000000000000000000000000000000000000000000000000000815260048101879052602481018290526044015b60405180910390fd5b610c5f6001600160a01b03891688886116cb565b60408051878152863560208201526001600160a01b03808a1692908b169133917f7c0eac1a8d30fbe7a577affc3b588a0b7d965a6133d12097cfac0760f2f2b617910160405180910390a450610cb3611719565b50505050505050565b5f8073679ab223dab158ea93e1a4f49104de436c58eab8905073d7f91c1c6e6e651ec3f1fd707af7cbb7526206e16001600160a01b0316816001600160a01b0316632f77a1c16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d2f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d539190612e3b565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d8e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610db29190612e3b565b6001600160a01b0316148015610eab5750732df5cfe6d688ef9ff1b7c59a499d254b1527b2866001600160a01b0316816001600160a01b0316632c9b7f406040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e1d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e419190612e3b565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e7c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ea09190612e3b565b6001600160a01b0316145b91505090565b5f6060805f805f6060610ec2611e95565b610eca611f68565b604080515f808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009b939a50919850469750309650945092509050565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de610f39816114a1565b610f41611694565b5f7f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be7006001600160a01b0385165f818152602083815260409182902080549088905582518181529182018890529394507fc6ce8282d3b57b159503fa5566e612aeb9f30c8e20c882398c9cb293c1ba6d68910160405180910390a25050610760611719565b5f805b86811015611025578481108015610ff657505f868683818110610fed57610fed612ee6565b90506020020135115b1561101d5761101d3389898481811061101157611011612ee6565b90506020020135611fb9565b600101610fc8565b507fbc197c81000000000000000000000000000000000000000000000000000000009998505050505050505050565b5f61105d612222565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156110895750825b90505f8267ffffffffffffffff1660011480156110a55750303b155b9050811580156110b3575080155b156110ea576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166001178555831561114b5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6001600160a01b03861661118b576040517f9905827b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611193611743565b61119b61224a565b61120f6040518060400160405280601081526020017f535430784f7263686573747261746f72000000000000000000000000000000008152506040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250612252565b6112195f876114ae565b50831561127b5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680060205260409020600101546112bc816114a1565b61070e838361157a565b7f76b1a12ac8d9ed64de3c0f66c2a19b21c0a3f9a1afec3f75bcd45f7b0794a1de6112f0816114a1565b6112f8611694565b6040517ff242432a0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038381166024830152604482018690526064820185905260a060848301525f60a483015286169063f242432a9060c4015f604051808303815f87803b158015611372575f80fd5b505af1158015611384573d5f803e3d5ffd5b5050505083826001600160a01b0316866001600160a01b03167f78b19b4b6e69e380c3c303d1e889d510ee3ee409219c1c014d97a0a607b6c6a686604051610ae391815260200190565b5f83156113df576113df3386611fb9565b507ff23a6e61000000000000000000000000000000000000000000000000000000009695505050505050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806106c557507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146106c5565b6114ab8133612268565b50565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff16611571575f848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556115273390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506106c5565b5f9150506106c5565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff1615611571575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506106c5565b604080517f8381bcc05e5203d9456aa7185a19b2be5d4af37909fecf63a6f2016c1bf8413360208201526001600160a01b038087169282019290925290841660608201526080810183905260a081018290525f906107729060c001604051602081830303815290604052805190602001206122f4565b61169c61233b565b6116c960017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005b90612394565b565b6116d8838383600161239b565b610760576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610c42565b6116c95f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f006116c3565b5f73679ab223dab158ea93e1a4f49104de436c58eab890505f816001600160a01b0316632f77a1c16040518163ffffffff1660e01b8152600401602060405180830381865afa158015611798573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117bc9190612e3b565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117f7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061181b9190612e3b565b90506001600160a01b03811673d7f91c1c6e6e651ec3f1fd707af7cbb7526206e114611898576040517fdfdb61b700000000000000000000000000000000000000000000000000000000815273d7f91c1c6e6e651ec3f1fd707af7cbb7526206e160048201526001600160a01b0382166024820152604401610c42565b5f826001600160a01b0316632c9b7f406040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118f99190612e3b565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611934573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119589190612e3b565b90506001600160a01b038116732df5cfe6d688ef9ff1b7c59a499d254b1527b28614610760576040517f3e4077b3000000000000000000000000000000000000000000000000000000008152732df5cfe6d688ef9ff1b7c59a499d254b1527b28660048201526001600160a01b0382166024820152604401610c42565b6119e3848484846001612416565b61070e576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610c42565b5f808490505f816001600160a01b031663e1e6b8986040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a66573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a8a9190612e3b565b90507f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be7005f015f876001600160a01b03166001600160a01b031681526020019081526020015f205492505f826001600160a01b031663f5d214f56040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b10573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b349190612ea2565b90505b8515611d125780841115611b89576040517f66a21a2d0000000000000000000000000000000000000000000000000000000081526001600160a01b038816600482015260248101879052604401610c42565b6040517efdd58e000000000000000000000000000000000000000000000000000000008152306004820152602481018590525f906001600160a01b0384169062fdd58e90604401602060405180830381865afa158015611beb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c0f9190612ea2565b9050805f03611c245750600190930192611b37565b5f818810611c325781611c34565b875b90505f856001600160a01b031663921a4c428330308b8d6040518663ffffffff1660e01b8152600401611c6b959493929190612f13565b6020604051808303815f875af1158015611c87573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cab9190612ea2565b9050818114611cf0576040517fbe40f1fc0000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610c42565b611cfa828a612f55565b9850828203611d0a576001909601955b505050611b37565b5050506001600160a01b03939093165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be700602052604090208390555090919050565b6001600160a01b0383165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be70160209081526040808320843584529091529020547f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be7009060ff1615611e08576040517f59c210430000000000000000000000000000000000000000000000000000000081526001600160a01b038516600482015282356024820152604401610c42565b6001600160a01b0384165f90815260018281016020908152604080842086358086529252909220805460ff19169091179055610972908590611e4f9088908390889061161e565b611e5c6020860186612f8d565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061249c92505050565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10280546060917fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10091611ee690612fee565b80601f0160208091040260200160405190810160405280929190818152602001828054611f1290612fee565b8015611f5d5780601f10611f3457610100808354040283529160200191611f5d565b820191905f5260205f20905b815481529060010190602001808311611f4057829003601f168201915b505050505091505090565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10380546060917fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10091611ee690612fee565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f481c6a750000000000000000000000000000000000000000000000000000000017905290515f9182916001600160a01b038616916120299161303f565b5f60405180830381855afa9150503d805f8114612061576040519150601f19603f3d011682016040523d82523d5f602084013e612066565b606091505b509150915081158061207a57508051602014155b156120855750505050565b5f61208f82613055565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe1e6b8980000000000000000000000000000000000000000000000000000000017905290519192506001600160a01b038316916120ff919061303f565b5f60405180830381855afa9150503d805f8114612137576040519150601f19603f3d011682016040523d82523d5f602084013e61213c565b606091505b50909350915082158061215157508151602014155b1561215d575050505050565b6001600160a01b03851661217083613055565b6001600160a01b031614612185575050505050565b6001600160a01b0381165f9081527f4bb94ceb743cdbfc320393e9b6fac11d883b2f90ac89bce731e459177c5be700602081905260409091205480861015610cb3576001600160a01b0383165f818152602084815260409182902089905581518481529081018990527f2008c207f65bedc2bb65dc8ac34aee36a37cd43a50152d574107c63ace7e07c6910160405180910390a250505050505050565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006106c5565b6116c96125cb565b61225a6125cb565b6122648282612609565b5050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038516845290915290205460ff16612264576040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015260248101839052604401610c42565b5f6106c561230061266c565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c156116c9576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80825d5050565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f5114831661240a5783831516156123fe573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b6040517f23b872dd000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038781166004528616602452604485905291602083606481808c5af1925060015f5114831661248b57838315161561247f573d5f823e3d81fd5b5f883b113d1516831692505b604052505f60605295945050505050565b8051156124e4576124ae83838361267a565b610760576040517f19ab93cc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f642ddf3a0000000000000000000000000000000000000000000000000000000080825260048201849052906001600160a01b0385169063642ddf3a906024016020604051808303815f875af1158015612543573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125679190613078565b7fffffffff000000000000000000000000000000000000000000000000000000001614610760576040517f22b89c080000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610c42565b6125d36126ed565b6116c9576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6126116125cb565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1007fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10261265d84826130d7565b506003810161070e83826130d7565b5f61267561270b565b905090565b5f836001600160a01b03163b5f036126d8575f80612698858561277e565b5090925090505f8160038111156126b1576126b1613193565b1480156126cf5750856001600160a01b0316826001600160a01b0316145b925050506126e6565b6126e38484846127c7565b90505b9392505050565b5f6126f6612222565b5468010000000000000000900460ff16919050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f612735612831565b61273d612846565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f805f83516041036127b5576020840151604085015160608601515f1a6127a78882858561284f565b9550955095505050506127c0565b505081515f91506002905b9250925092565b8051604080517f1626ba7e000000000000000000000000000000000000000000000000000000008082526004820186905260248201929092525f92906020820185604483015e60205f60648401838a5afa9050825f5114601f3d1116811693505050509392505050565b5f61283a611e95565b80519060200120905090565b5f61283a611f68565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561288857505f9150600390508261290d565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa1580156128d9573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b03811661290457505f92506001915082905061290d565b92505f91508190505b9450945094915050565b7fffffffff00000000000000000000000000000000000000000000000000000000811681146114ab575f80fd5b5f60208284031215612954575f80fd5b81356126e681612917565b6001600160a01b03811681146114ab575f80fd5b5f8060408385031215612984575f80fd5b823561298f8161295f565b946020939093013593505050565b5f602082840312156129ad575f80fd5b5035919050565b5f80604083850312156129c5575f80fd5b8235915060208301356129d78161295f565b809150509250929050565b5f805f80608085870312156129f5575f80fd5b8435612a008161295f565b93506020850135612a108161295f565b93969395505050506040820135916060013590565b5f805f60608486031215612a37575f80fd5b8335612a428161295f565b9250602084013591506040840135612a598161295f565b809150509250925092565b5f8083601f840112612a74575f80fd5b50813567ffffffffffffffff811115612a8b575f80fd5b602083019150836020828501011115612aa2575f80fd5b9250929050565b5f805f8060608587031215612abc575f80fd5b8435612ac78161295f565b935060208501359250604085013567ffffffffffffffff811115612ae9575f80fd5b612af587828801612a64565b95989497509550505050565b5f805f8060808587031215612b14575f80fd5b8435612b1f8161295f565b935060208501359250604085013591506060850135612b3d8161295f565b939692955090935050565b5f805f805f8060a08789031215612b5d575f80fd5b8635612b688161295f565b95506020870135612b788161295f565b945060408701359350606087013567ffffffffffffffff80821115612b9b575f80fd5b908801906040828b031215612bae575f80fd5b90935060808801359080821115612bc3575f80fd5b50612bd089828a01612a64565b979a9699509497509295939492505050565b5f60208284031215612bf2575f80fd5b81356126e68161295f565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b7fff00000000000000000000000000000000000000000000000000000000000000881681525f602060e06020840152612c6760e084018a612bfd565b8381036040850152612c79818a612bfd565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825260208088019350909101905f5b81811015612ccc57835183529284019291840191600101612cb0565b50909c9b505050505050505050505050565b5f8083601f840112612cee575f80fd5b50813567ffffffffffffffff811115612d05575f80fd5b6020830191508360208260051b8501011115612aa2575f80fd5b5f805f805f805f8060a0898b031215612d36575f80fd5b8835612d418161295f565b97506020890135612d518161295f565b9650604089013567ffffffffffffffff80821115612d6d575f80fd5b612d798c838d01612cde565b909850965060608b0135915080821115612d91575f80fd5b612d9d8c838d01612cde565b909650945060808b0135915080821115612db5575f80fd5b50612dc28b828c01612a64565b999c989b5096995094979396929594505050565b5f805f805f8060a08789031215612deb575f80fd5b8635612df68161295f565b95506020870135612e068161295f565b94506040870135935060608701359250608087013567ffffffffffffffff811115612e2f575f80fd5b612bd089828a01612a64565b5f60208284031215612e4b575f80fd5b81516126e68161295f565b8581526001600160a01b038516602082015283604082015260806060820152816080820152818360a08301375f81830160a090810191909152601f909201601f19160101949350505050565b5f60208284031215612eb2575f80fd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b8581525f6001600160a01b03808716602084015280861660408401525083606083015260a06080830152612f4a60a0830184612bfd565b979650505050505050565b818103818111156106c5577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612fc0575f80fd5b83018035915067ffffffffffffffff821115612fda575f80fd5b602001915036819003821315612aa2575f80fd5b600181811c9082168061300257607f821691505b602082108103613039577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b5f82518060208501845e5f920191825250919050565b80516020808301519190811015613039575f1960209190910360031b1b16919050565b5f60208284031215613088575f80fd5b81516126e681612917565b601f82111561076057805f5260205f20601f840160051c810160208510156130b85750805b601f840160051c820191505b81811015610972575f81556001016130c4565b815167ffffffffffffffff8111156130f1576130f1612eb9565b613105816130ff8454612fee565b84613093565b602080601f831160018114613138575f84156131215750858301515b5f19600386901b1c1916600185901b17855561127b565b5f85815260208120601f198616915b8281101561316657888601518255948401946001909101908401613147565b508582101561318357878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd"; diff --git a/src/generated/0_1_8/ST0xOrchestratorBeaconSetDeployer.pointers.sol b/src/generated/0_1_8/ST0xOrchestratorBeaconSetDeployer.pointers.sol deleted file mode 100644 index 53ee4a14..00000000 --- a/src/generated/0_1_8/ST0xOrchestratorBeaconSetDeployer.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x2149474f3f4539b44296101ca3ffafb1ebd7f212b90b5fc9d8d28a4d010ca4eb); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0xBff92564aeffe44C85A9153B9f2dB13e47A22435); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"60a0604052348015600e575f80fd5b507299fcb947cc31e21c631478a2a9e2e591cd4010738e4bdeec7ceb9570d440676345da1dce10329f5b6040516042906082565b6001600160a01b03928316815291166020820152604001604051809103905ff0801580156071573d5f803e3d5ffd5b506001600160a01b0316608052608f565b6104f7806109cf83390190565b6080516109226100ad5f395f81816070015261025201526109225ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c806301ffc9a714610043578063429b15441461006b5780634c96a389146100b7575b5f80fd5b610056610051366004610309565b6100ca565b60405190151581526020015b60405180910390f35b6100927f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610062565b6100926100c536600461034f565b610162565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f4c96a38900000000000000000000000000000000000000000000000000000000148061015c57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82166101b0576040517f9905827b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405173ffffffffffffffffffffffffffffffffffffffff831660248201525f90604401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc4d66de800000000000000000000000000000000000000000000000000000000179052519091505f907f000000000000000000000000000000000000000000000000000000000000000090839061027d906102fc565b610288929190610382565b604051809103905ff0801580156102a1573d5f803e3d5ffd5b5060405173ffffffffffffffffffffffffffffffffffffffff86811682529192509082169033907fa0d99d93cf7a5f89661fa0829369a7e4896e755871efe65440bab2429387d55b9060200160405180910390a39392505050565b61052f806103f383390190565b5f60208284031215610319575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610348575f80fd5b9392505050565b5f6020828403121561035f575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610348575f80fd5b73ffffffffffffffffffffffffffffffffffffffff83168152604060208201525f82518060408401528060208501606085015e5f6060828501015260607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f830116840101915050939250505056fe60a060405260405161052f38038061052f83398101604081905261002291610331565b61002c828261003e565b506001600160a01b031660805261040d565b610047826100fb565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a28051156100ef576100ea826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e491906103ed565b82610209565b505050565b6100f76102aa565b5050565b806001600160a01b03163b5f0361013557604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b815290515f92841691635c60da1b9160048083019260209291908290030181865afa1580156101ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d291906103ed565b9050806001600160a01b03163b5f036100f757604051634c9c8ce360e01b81526001600160a01b038216600482015260240161012c565b60605f61021684846102cb565b905080801561023757505f3d118061023757505f846001600160a01b03163b115b1561024c576102446102de565b9150506102a4565b801561027657604051639996b31560e01b81526001600160a01b038516600482015260240161012c565b3d15610289576102846102f7565b6102a2565b60405163d6bda27560e01b815260040160405180910390fd5b505b92915050565b34156102c95760405163b398979f60e01b815260040160405180910390fd5b565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b6040513d5f823e3d81fd5b80516001600160a01b0381168114610318575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215610342575f80fd5b61034b83610302565b60208401519092506001600160401b0380821115610367575f80fd5b818501915085601f83011261037a575f80fd5b81518181111561038c5761038c61031d565b604051601f8201601f19908116603f011681019083821181831017156103b4576103b461031d565b816040528281528860208487010111156103cc575f80fd5b8260208601602083015e5f6020848301015280955050505050509250929050565b5f602082840312156103fd575f80fd5b61040682610302565b9392505050565b60805161010b6104245f395f6023015261010b5ff3fe608060405261000c61000e565b005b61001e610019610020565b6100b3565b565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561008a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100ae91906100d1565b905090565b365f80375f80365f845af43d5f803e8080156100cd573d5ff35b3d5ffd5b5f602082840312156100e1575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610104575f80fd5b939250505056608060405234801561000f575f80fd5b506040516104f73803806104f783398101604081905261002e9161015f565b806001600160a01b03811661005d57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b61006681610077565b50610070826100c6565b5050610190565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b806001600160a01b03163b5f036100fb5760405163211eb15960e21b81526001600160a01b0382166004820152602401610054565b600180546001600160a01b0319166001600160a01b0383169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b80516001600160a01b038116811461015a575f80fd5b919050565b5f8060408385031215610170575f80fd5b61017983610144565b915061018760208401610144565b90509250929050565b61035a8061019d5f395ff3fe608060405234801561000f575f80fd5b5060043610610064575f3560e01c8063715018a61161004d578063715018a6146100c05780638da5cb5b146100c8578063f2fde38b146100e5575f80fd5b80633659cfe6146100685780635c60da1b1461007d575b5f80fd5b61007b610076366004610320565b6100f8565b005b60015473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61007b61010c565b5f5473ffffffffffffffffffffffffffffffffffffffff16610097565b61007b6100f3366004610320565b61011f565b610100610184565b610109816101d6565b50565b610114610184565b61011d5f6102ac565b565b610127610184565b73ffffffffffffffffffffffffffffffffffffffff811661017b576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f60048201526024015b60405180910390fd5b610109816102ac565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461011d576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610172565b8073ffffffffffffffffffffffffffffffffffffffff163b5f0361023e576040517f847ac56400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602401610172565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f60208284031215610330575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610353575f80fd5b939250505056"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b506004361061003f575f3560e01c806301ffc9a714610043578063429b15441461006b5780634c96a389146100b7575b5f80fd5b610056610051366004610309565b6100ca565b60405190151581526020015b60405180910390f35b6100927f000000000000000000000000ba0d89f6e84a201cd2c720a91911fdadbbb2ad4881565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610062565b6100926100c536600461034f565b610162565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f4c96a38900000000000000000000000000000000000000000000000000000000148061015c57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82166101b0576040517f9905827b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405173ffffffffffffffffffffffffffffffffffffffff831660248201525f90604401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc4d66de800000000000000000000000000000000000000000000000000000000179052519091505f907f000000000000000000000000ba0d89f6e84a201cd2c720a91911fdadbbb2ad4890839061027d906102fc565b610288929190610382565b604051809103905ff0801580156102a1573d5f803e3d5ffd5b5060405173ffffffffffffffffffffffffffffffffffffffff86811682529192509082169033907fa0d99d93cf7a5f89661fa0829369a7e4896e755871efe65440bab2429387d55b9060200160405180910390a39392505050565b61052f806103f383390190565b5f60208284031215610319575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610348575f80fd5b9392505050565b5f6020828403121561035f575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610348575f80fd5b73ffffffffffffffffffffffffffffffffffffffff83168152604060208201525f82518060408401528060208501606085015e5f6060828501015260607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f830116840101915050939250505056fe60a060405260405161052f38038061052f83398101604081905261002291610331565b61002c828261003e565b506001600160a01b031660805261040d565b610047826100fb565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a28051156100ef576100ea826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e491906103ed565b82610209565b505050565b6100f76102aa565b5050565b806001600160a01b03163b5f0361013557604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b815290515f92841691635c60da1b9160048083019260209291908290030181865afa1580156101ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d291906103ed565b9050806001600160a01b03163b5f036100f757604051634c9c8ce360e01b81526001600160a01b038216600482015260240161012c565b60605f61021684846102cb565b905080801561023757505f3d118061023757505f846001600160a01b03163b115b1561024c576102446102de565b9150506102a4565b801561027657604051639996b31560e01b81526001600160a01b038516600482015260240161012c565b3d15610289576102846102f7565b6102a2565b60405163d6bda27560e01b815260040160405180910390fd5b505b92915050565b34156102c95760405163b398979f60e01b815260040160405180910390fd5b565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b6040513d5f823e3d81fd5b80516001600160a01b0381168114610318575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215610342575f80fd5b61034b83610302565b60208401519092506001600160401b0380821115610367575f80fd5b818501915085601f83011261037a575f80fd5b81518181111561038c5761038c61031d565b604051601f8201601f19908116603f011681019083821181831017156103b4576103b461031d565b816040528281528860208487010111156103cc575f80fd5b8260208601602083015e5f6020848301015280955050505050509250929050565b5f602082840312156103fd575f80fd5b61040682610302565b9392505050565b60805161010b6104245f395f6023015261010b5ff3fe608060405261000c61000e565b005b61001e610019610020565b6100b3565b565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561008a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100ae91906100d1565b905090565b365f80375f80365f845af43d5f803e8080156100cd573d5ff35b3d5ffd5b5f602082840312156100e1575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610104575f80fd5b939250505056"; diff --git a/src/generated/0_1_8/StoxCorporateActionsFacet.pointers.sol b/src/generated/0_1_8/StoxCorporateActionsFacet.pointers.sol deleted file mode 100644 index aef0d95d..00000000 --- a/src/generated/0_1_8/StoxCorporateActionsFacet.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0xd91520075de1eb2e8fdf042fde3475ee89feb3942306e5d6d5c710273fefc080); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0xB7e24412126ad6A2Ce19cbd79FD11B68e7F30cf6); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"60a0604052348015600e575f80fd5b503060805260805161268d6100635f395f81816101970152818161031b0152818161038901528181610466015281816104c90152818161053b0152818161070301528181610767015261089e015261268d5ff3fe608060405234801561000f575f80fd5b506004361061009f575f3560e01c806379ba430511610072578063bb7bb45a11610058578063bb7bb45a14610151578063dad601be14610159578063e388df491461016c575f80fd5b806379ba43051461011e578063b21a249414610131575f80fd5b80630d1e0432146100a35780631cb5642f146100be578063358116b9146100f65780634e6c280e1461010b575b5f80fd5b6100ab61017f565b6040519081526020015b60405180910390f35b6100d16100cc366004612126565b610301565b60408051938452602084019290925267ffffffffffffffff16908201526060016100b5565b610109610104366004612150565b610372565b005b6100d1610119366004612126565b61044c565b6100d161012c366004612167565b6104af565b61014461013f366004612150565b610522565b6040516100b591906121c7565b6100ab6106eb565b6100ab6101673660046121d9565b61074f565b6100d161017a366004612167565b610884565b5f73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036101d6576040516309e815f560e01b815260040160405180910390fd5b5f6101df6108e8565b905060015f6101f15f19600384610967565b90505b5f1981146102fa57600283600201828154811061021357610213612261565b905f5260205f2090600502015f0154036102e6576102e3826102de85600201848154811061024357610243612261565b905f5260205f209060050201600401805461025d90612275565b80601f016020809104026020016040519081016040528092919081815260200182805461028990612275565b80156102d45780601f106102ab576101008083540402835291602001916102d4565b820191905f5260205f20905b8154815290600101906020018083116102b757829003601f168201915b5050505050610a6e565b610a89565b91505b6102f38160036001610967565b90506101f4565b5091505090565b5f808073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016300361035a576040516309e815f560e01b815260040160405180910390fd5b6103648585610aeb565b9250925092505b9250925092565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036103c8576040516309e815f560e01b815260040160405180910390fd5b610414337f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e78360405160200161040091815260200190565b604051602081830303815290604052610b19565b61041d81610c13565b604051819033907f94041431cee1a4c20be97117d396e73eb1e601e124b48fbc5dc07397c31d5f8a905f90a350565b5f808073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036104a5576040516309e815f560e01b815260040160405180910390fd5b6103648585610df0565b5f808073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610508576040516309e815f560e01b815260040160405180910390fd5b610513868686610e00565b92509250925093509350939050565b606073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016300361057a576040516309e815f560e01b815260040160405180910390fd5b5f6105836108e8565b600281015490915083106105cb576040517f029c6c35000000000000000000000000000000000000000000000000000000008152600481018490526024015b60405180910390fd5b8060020183815481106105e0576105e0612261565b5f918252602082206001600590920201015467ffffffffffffffff169003610637576040517f029c6c35000000000000000000000000000000000000000000000000000000008152600481018490526024016105c2565b80600201838154811061064c5761064c612261565b905f5260205f209060050201600401805461066690612275565b80601f016020809104026020016040519081016040528092919081815260200182805461069290612275565b80156106dd5780601f106106b4576101008083540402835291602001916106dd565b820191905f5260205f20905b8154815290600101906020018083116106c057829003601f168201915b50505050509150505b919050565b5f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610742576040516309e815f560e01b815260040160405180910390fd5b61074a610e2e565b905090565b5f73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036107a6576040516309e815f560e01b815260040160405180910390fd5b6107e2337ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f898787878760405160200161040094939291906122a7565b5f6107ee868585610e82565b90505f610831828787878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610f2d92505050565b6040805184815267ffffffffffffffff89166020820152919250829133917fa9c7784142e419f4660627c0c145b3873c2a415ce062f5c81bc19e6850f873d8910160405180910390a39695505050505050565b5f808073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036108dd576040516309e815f560e01b815260040160405180910390fd5b610513868686611047565b5f807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0061093660017f2f8f8ecf1b7a1a3ceda8d15a9a2247a2377b3434535a87f1728021c13fec2e71612301565b60405160200161094891815260200190565b60408051601f1981840301815291905280516020909101201692915050565b5f6007831681036109a4576040517fbf3cad0b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6109ad6108e8565b60028101549091505f036109c5575f19915050610a67565b5f5f1986146109f8578160020186815481106109e3576109e3612261565b905f5260205f209060050201600301546109fb565b81545b90506002846002811115610a1157610a11612314565b03610a3357610a2a82610a248484611056565b876110d1565b92505050610a67565b6001846002811115610a4757610a47612314565b03610a5757610a2a828287611129565b610a628282876110d1565b925050505b9392505050565b5f81806020019051810190610a839190612328565b92915050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d8480610ace86868686611196565b915091505f610add83836112b5565b9a9950505050505050505050565b5f805f80610afb5f19878761131b565b90505f80610b0883611410565b939650945091925050509250925092565b5f3073ffffffffffffffffffffffffffffffffffffffff1663d09edf316040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b63573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b87919061233f565b6040517f59f89dda00000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff8216906359f89dda90610be090879087908790600401612372565b5f604051808303815f87803b158015610bf7575f80fd5b505af1158015610c09573d5f803e3d5ffd5b5050505050505050565b5f610c1c6108e8565b60028101549091508210610c5f576040517f029c6c35000000000000000000000000000000000000000000000000000000008152600481018390526024016105c2565b5f816002018381548110610c7557610c75612261565b5f9182526020822060016005909202019081015490925067ffffffffffffffff169003610cd1576040517f029c6c35000000000000000000000000000000000000000000000000000000008152600481018490526024016105c2565b60018101544267ffffffffffffffff90911611610d1d576040517f99fa8c69000000000000000000000000000000000000000000000000000000008152600481018490526024016105c2565b600281015460038201545f198214610d5d5780846002018381548110610d4557610d45612261565b905f5260205f20906005020160030181905550610d61565b8084555b5f198114610d975781846002018281548110610d7f57610d7f612261565b905f5260205f20906005020160020181905550610d9f565b600184018290555b5f196002840181905560038401556001830180547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001690555f808455610de99060048501906120ca565b5050505050565b5f805f80610afb5f198787610967565b5f805f80610e0f878787610967565b90505f80610e1c83611410565b939a9099509297509195505050505050565b5f610e376108e8565b600201545f03610e4657505f90565b60065f80610e575f19846001610967565b90505b5f1981146102fa5781610e6c816123a6565b925050610e7b81846001610967565b9050610e5a565b5f7f4548e57ae2f1604df75a3d17fecaff7dd11ad7a93d9f8a0dc05e7144f46f3f7c8403610ef857610ef0610eeb84848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610a6e92505050565b61146e565b506002610a67565b6040517ff17c1d46000000000000000000000000000000000000000000000000000000008152600481018590526024016105c2565b5f428367ffffffffffffffff1611610f83576040517fc0851c8a00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff841660048201524260248201526044016105c2565b5f610f8c6108e8565b9050610f978161156e565b60028101805460019081018083555f928352610fb39190612301565b90505f826002018281548110610fcb57610fcb612261565b5f91825260209091206005909102018781556001810180547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff8916179055905060048101611023868261241b565b505f1960028201819055600382015561103d838388611617565b5095945050505050565b5f805f80610e0f87878761131b565b5f5b5f19821415801561109a57504283600201838154811061107a5761107a612261565b5f91825260209091206001600590920201015467ffffffffffffffff1611155b156110cb578260020182815481106110b4576110b4612261565b905f5260205f209060050201600301549150611058565b50919050565b5f5b5f19831461111f575f8460020184815481106110f1576110f1612261565b905f5260205f209060050201905082815f0154165f146111145783915050610a67565b6003015492506110d3565b505f199392505050565b5f5b5f19831461111f575f84600201848154811061114957611149612261565b5f918252602090912060059091020160018101549091504267ffffffffffffffff9091161115611179575061111f565b805483161561118b5783915050610a67565b60030154925061112b565b5f80851584151780156111ae575f92505f91506112ab565b6111b884876124d7565b91505f6111c488611761565b90505f6111d087611761565b90505f6111dd83836117c2565b5090505f6f0785ee10d5da46d900f436a000000000821115611212576f0785ee10d5da46d900f436a000000000820491506025015b670de0b6b3a764000082111561123357670de0b6b3a7640000820491506012015b633b9aca0082111561124c57633b9aca00820491506009015b61271082111561126157612710820491506004015b811561127557600a82049150600101611261565b61127f81876124d7565b95506112a18b8a61129b878761129687600a6125f2565b6117de565b896118c3565b9097509550505050505b5094509492505050565b5f805f6112c285856119cf565b91509150801580156112d2575081155b15611313576040517f8eba4d0700000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016105c2565b509392505050565b5f600783168103611358576040517fbf3cad0b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6113616108e8565b60028101549091505f03611379575f19915050610a67565b5f5f1986146113ac5781600201868154811061139757611397612261565b905f5260205f209060050201600201546113b2565b81600101545b905060018460028111156113c8576113c8612314565b036113e157610a2a826113db8484611ad6565b87611b4a565b60028460028111156113f5576113f5612314565b0361140557610a2a828287611b98565b610a62828287611b4a565b5f805f19830361142457505f928392509050565b5f61142d6108e8565b600201848154811061144157611441612261565b5f91825260209091206005909102018054600190910154909567ffffffffffffffff909116945092505050565b611478815f611c04565b156114af576040517f018d151200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6114b930611c54565b90505f6114c7600183611cfe565b90506114d38382611d22565b1561150d576040517f06c32712000000000000000000000000000000000000000000000000000000008152600481018490526024016105c2565b5f61152261151c84600a6125fd565b5f611cfe565b905061152e8482611d71565b15611568576040517fd24a8af1000000000000000000000000000000000000000000000000000000008152600481018590526024016105c2565b50505050565b60028101541561157b5750565b6002810180546001018082555f8281529190829061159b5761159b612261565b5f9182526020909120600160059092020181815590810180547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff161790555f1960028201819055600382015590506115fc611dc0565b5f808052600484016020526040902055505f19600590910155565b5f83600201838154811061162d5761162d612261565b905f5260205f20906005020190505f846001015490505b5f198114610de9578267ffffffffffffffff1685600201828154811061166c5761166c612261565b5f91825260209091206001600590920201015467ffffffffffffffff1611611735575f8560020182815481106116a4576116a4612261565b905f5260205f209060050201600301549050848660020183815481106116cc576116cc612261565b5f918252602090912060036005909202018101919091556002840183905583018190555f198114611725578486600201828154811061170d5761170d612261565b905f5260205f2090600502016002018190555061172d565b600186018590555b505050505050565b84600201818154811061174a5761174a612261565b905f5260205f209060050201600201549050611644565b5f808212156117be577f800000000000000000000000000000000000000000000000000000000000000082036117b857507f8000000000000000000000000000000000000000000000000000000000000000919050565b505f0390565b5090565b5f805f1983850993909202808410938190039390930393915050565b5f805f6117eb86866117c2565b91509150815f0361180f57838181611805576118056124fe565b0492505050610a67565b838210611859576040517f6c59da120000000000000000000000000000000000000000000000000000000081526004810187905260248101869052604481018590526064016105c2565b5f84868809600186198101871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103025f82900382900490920185841190960395909502919093039390930492909217029150509392505050565b5f805f858718121561198d577f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84111561197a576119227f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600161260b565b840361195257507f80000000000000000000000000000000000000000000000000000000000000009050816119c6565b61195d600a8561261e565b6119669061263d565b6119718460016124d7565b915091506119c6565b6119838461263d565b83915091506119c6565b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8411156119c057611966600a8561261e565b50829050815b94509492505050565b5f601b83900b8314838382611a33577d90e40fbeea1d3a4abc8955e946fe31cdcf66f634e1000000000000000000860515611a1357620186a0860595506005850194505b8586601b0b14611a2e57600a86059550846001019450611a13565b611a49565b855f03611a4957505f925060019150611acf9050565b848560030b14611aa5575f851215611a6957505f9250829150611acf9050565b6040517fd556b11100000000000000000000000000000000000000000000000000000000815260048101839052602481018290526044016105c2565b50507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841660e084901b1791505b9250929050565b5f5b5f198214158015611b19575042836002018381548110611afa57611afa612261565b5f91825260209091206001600590920201015467ffffffffffffffff16115b156110cb57826002018281548110611b3357611b33612261565b905f5260205f209060050201600201549150611ad8565b5f5b5f19831461111f575f846002018481548110611b6a57611b6a612261565b905f5260205f209060050201905082815f0154165f14611b8d5783915050610a67565b600201549250611b4c565b5f5b5f19831461111f575f846002018481548110611bb857611bb8612261565b5f918252602090912060059091020160018101549091504267ffffffffffffffff90911611611be7575061111f565b8054831615611bf95783915050610a67565b600201549250611b9a565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d611c4784848484611e43565b1215979650505050505050565b5f611c5d611f17565b6040517f54636d2b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316600482015273200e12d10bb0c5e4a17e7018f0f1161919bb9389906354636d2b906024016020604051808303815f875af1158015611cda573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a83919061266d565b5f805f611d0b8585611fbd565b91509150611d19828261201f565b95945050505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d611d6584848484611e43565b13979650505050505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d611db484848484611e43565b12979650505050505050565b5f807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00611e0e60017fb750591399365444a618527b69a54ce09476c8bde1ecff60f5aa1fe2b52605ff612301565b604051602001611e2091815260200190565b60408051808303601f190181529190528051602090910120166002015492915050565b5f8085158415178187128286121817858414178015611e6857868592509250506119c6565b505f85841315611e7c575092949193919260015b8386035f8112604c8213178015611eaf578215611ea1575f89945094505050506119c6565b885f945094505050506119c6565b600a82900a8981028a828281611ec757611ec76124fe565b0514611ef3578415611ee3575f8b9650965050505050506119c6565b8a5f9650965050505050506119c6565b8415611f085788965094506119c69350505050565b95508794506119c69350505050565b73200e12d10bb0c5e4a17e7018f0f1161919bb93893b1580611f6e575073200e12d10bb0c5e4a17e7018f0f1161919bb93893f7f1de7d717526cba131d684e312dedbf0852adef9cced9e36798ae4937f7145d4114155b15611fbb576040517f73e6d7b300000000000000000000000000000000000000000000000000000000815273200e12d10bb0c5e4a17e7018f0f1161919bb938960048201526024016105c2565b565b5f805f805f611fcc8787612071565b92509250925080612013576040517fc471796600000000000000000000000000000000000000000000000000000000815260048101849052602481018390526044016105c2565b50909590945092505050565b5f805f61202c85856119cf565b9150915080611313576040517f22c9f7bb00000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016105c2565b5f808060ff841681037f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8611156120bc57600a860460018201600a88065f149350935093505061036b565b85935091506001905061036b565b5080546120d690612275565b5f825580601f106120e5575050565b601f0160209004905f5260205f20908101906121019190612104565b50565b5b808211156117be575f8155600101612105565b8035600381106106e6575f80fd5b5f8060408385031215612137575f80fd5b8235915061214760208401612118565b90509250929050565b5f60208284031215612160575f80fd5b5035919050565b5f805f60608486031215612179575f80fd5b833592506020840135915061219060408501612118565b90509250925092565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610a676020830184612199565b5f805f80606085870312156121ec575f80fd5b84359350602085013567ffffffffffffffff808216821461220b575f80fd5b90935060408601359080821115612220575f80fd5b818701915087601f830112612233575f80fd5b813581811115612241575f80fd5b886020828501011115612252575f80fd5b95989497505060200194505050565b634e487b7160e01b5f52603260045260245ffd5b600181811c9082168061228957607f821691505b6020821081036110cb57634e487b7160e01b5f52602260045260245ffd5b84815267ffffffffffffffff8416602082015260606040820152816060820152818360808301375f818301608090810191909152601f909201601f191601019392505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610a8357610a836122ed565b634e487b7160e01b5f52602160045260245ffd5b5f60208284031215612338575f80fd5b5051919050565b5f6020828403121561234f575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610a67575f80fd5b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f611d196060830184612199565b5f5f1982036123b7576123b76122ed565b5060010190565b634e487b7160e01b5f52604160045260245ffd5b601f82111561241657805f5260205f20601f840160051c810160208510156123f75750805b601f840160051c820191505b81811015610de9575f8155600101612403565b505050565b815167ffffffffffffffff811115612435576124356123be565b612449816124438454612275565b846123d2565b602080601f83116001811461247c575f84156124655750858301515b5f19600386901b1c1916600185901b17855561172d565b5f85815260208120601f198616915b828110156124aa5788860151825594840194600190910190840161248b565b50858210156124c757878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b8082018281125f8312801582168215821617156124f6576124f66122ed565b505092915050565b634e487b7160e01b5f52601260045260245ffd5b600181815b8085111561254c57815f1904821115612532576125326122ed565b8085161561253f57918102915b93841c9390800290612517565b509250929050565b5f8261256257506001610a83565b8161256e57505f610a83565b8160018114612584576002811461258e576125aa565b6001915050610a83565b60ff84111561259f5761259f6122ed565b50506001821b610a83565b5060208310610133831016604e8410600b84101617156125cd575081810a610a83565b6125d78383612512565b805f19048211156125ea576125ea6122ed565b029392505050565b5f610a678383612554565b5f610a6760ff841683612554565b80820180821115610a8357610a836122ed565b5f8261263857634e487b7160e01b5f52601260045260245ffd5b500490565b5f7f800000000000000000000000000000000000000000000000000000000000000082036117b8576117b86122ed565b5f6020828403121561267d575f80fd5b815160ff81168114610a67575f80fd"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b506004361061009f575f3560e01c806379ba430511610072578063bb7bb45a11610058578063bb7bb45a14610151578063dad601be14610159578063e388df491461016c575f80fd5b806379ba43051461011e578063b21a249414610131575f80fd5b80630d1e0432146100a35780631cb5642f146100be578063358116b9146100f65780634e6c280e1461010b575b5f80fd5b6100ab61017f565b6040519081526020015b60405180910390f35b6100d16100cc366004612126565b610301565b60408051938452602084019290925267ffffffffffffffff16908201526060016100b5565b610109610104366004612150565b610372565b005b6100d1610119366004612126565b61044c565b6100d161012c366004612167565b6104af565b61014461013f366004612150565b610522565b6040516100b591906121c7565b6100ab6106eb565b6100ab6101673660046121d9565b61074f565b6100d161017a366004612167565b610884565b5f73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf61630036101d6576040516309e815f560e01b815260040160405180910390fd5b5f6101df6108e8565b905060015f6101f15f19600384610967565b90505b5f1981146102fa57600283600201828154811061021357610213612261565b905f5260205f2090600502015f0154036102e6576102e3826102de85600201848154811061024357610243612261565b905f5260205f209060050201600401805461025d90612275565b80601f016020809104026020016040519081016040528092919081815260200182805461028990612275565b80156102d45780601f106102ab576101008083540402835291602001916102d4565b820191905f5260205f20905b8154815290600101906020018083116102b757829003601f168201915b5050505050610a6e565b610a89565b91505b6102f38160036001610967565b90506101f4565b5091505090565b5f808073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf616300361035a576040516309e815f560e01b815260040160405180910390fd5b6103648585610aeb565b9250925092505b9250925092565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf61630036103c8576040516309e815f560e01b815260040160405180910390fd5b610414337f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e78360405160200161040091815260200190565b604051602081830303815290604052610b19565b61041d81610c13565b604051819033907f94041431cee1a4c20be97117d396e73eb1e601e124b48fbc5dc07397c31d5f8a905f90a350565b5f808073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf61630036104a5576040516309e815f560e01b815260040160405180910390fd5b6103648585610df0565b5f808073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf6163003610508576040516309e815f560e01b815260040160405180910390fd5b610513868686610e00565b92509250925093509350939050565b606073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf616300361057a576040516309e815f560e01b815260040160405180910390fd5b5f6105836108e8565b600281015490915083106105cb576040517f029c6c35000000000000000000000000000000000000000000000000000000008152600481018490526024015b60405180910390fd5b8060020183815481106105e0576105e0612261565b5f918252602082206001600590920201015467ffffffffffffffff169003610637576040517f029c6c35000000000000000000000000000000000000000000000000000000008152600481018490526024016105c2565b80600201838154811061064c5761064c612261565b905f5260205f209060050201600401805461066690612275565b80601f016020809104026020016040519081016040528092919081815260200182805461069290612275565b80156106dd5780601f106106b4576101008083540402835291602001916106dd565b820191905f5260205f20905b8154815290600101906020018083116106c057829003601f168201915b50505050509150505b919050565b5f73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf6163003610742576040516309e815f560e01b815260040160405180910390fd5b61074a610e2e565b905090565b5f73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf61630036107a6576040516309e815f560e01b815260040160405180910390fd5b6107e2337ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f898787878760405160200161040094939291906122a7565b5f6107ee868585610e82565b90505f610831828787878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610f2d92505050565b6040805184815267ffffffffffffffff89166020820152919250829133917fa9c7784142e419f4660627c0c145b3873c2a415ce062f5c81bc19e6850f873d8910160405180910390a39695505050505050565b5f808073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b7e24412126ad6a2ce19cbd79fd11b68e7f30cf61630036108dd576040516309e815f560e01b815260040160405180910390fd5b610513868686611047565b5f807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0061093660017f2f8f8ecf1b7a1a3ceda8d15a9a2247a2377b3434535a87f1728021c13fec2e71612301565b60405160200161094891815260200190565b60408051601f1981840301815291905280516020909101201692915050565b5f6007831681036109a4576040517fbf3cad0b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6109ad6108e8565b60028101549091505f036109c5575f19915050610a67565b5f5f1986146109f8578160020186815481106109e3576109e3612261565b905f5260205f209060050201600301546109fb565b81545b90506002846002811115610a1157610a11612314565b03610a3357610a2a82610a248484611056565b876110d1565b92505050610a67565b6001846002811115610a4757610a47612314565b03610a5757610a2a828287611129565b610a628282876110d1565b925050505b9392505050565b5f81806020019051810190610a839190612328565b92915050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d8480610ace86868686611196565b915091505f610add83836112b5565b9a9950505050505050505050565b5f805f80610afb5f19878761131b565b90505f80610b0883611410565b939650945091925050509250925092565b5f3073ffffffffffffffffffffffffffffffffffffffff1663d09edf316040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b63573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b87919061233f565b6040517f59f89dda00000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff8216906359f89dda90610be090879087908790600401612372565b5f604051808303815f87803b158015610bf7575f80fd5b505af1158015610c09573d5f803e3d5ffd5b5050505050505050565b5f610c1c6108e8565b60028101549091508210610c5f576040517f029c6c35000000000000000000000000000000000000000000000000000000008152600481018390526024016105c2565b5f816002018381548110610c7557610c75612261565b5f9182526020822060016005909202019081015490925067ffffffffffffffff169003610cd1576040517f029c6c35000000000000000000000000000000000000000000000000000000008152600481018490526024016105c2565b60018101544267ffffffffffffffff90911611610d1d576040517f99fa8c69000000000000000000000000000000000000000000000000000000008152600481018490526024016105c2565b600281015460038201545f198214610d5d5780846002018381548110610d4557610d45612261565b905f5260205f20906005020160030181905550610d61565b8084555b5f198114610d975781846002018281548110610d7f57610d7f612261565b905f5260205f20906005020160020181905550610d9f565b600184018290555b5f196002840181905560038401556001830180547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001690555f808455610de99060048501906120ca565b5050505050565b5f805f80610afb5f198787610967565b5f805f80610e0f878787610967565b90505f80610e1c83611410565b939a9099509297509195505050505050565b5f610e376108e8565b600201545f03610e4657505f90565b60065f80610e575f19846001610967565b90505b5f1981146102fa5781610e6c816123a6565b925050610e7b81846001610967565b9050610e5a565b5f7f4548e57ae2f1604df75a3d17fecaff7dd11ad7a93d9f8a0dc05e7144f46f3f7c8403610ef857610ef0610eeb84848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610a6e92505050565b61146e565b506002610a67565b6040517ff17c1d46000000000000000000000000000000000000000000000000000000008152600481018590526024016105c2565b5f428367ffffffffffffffff1611610f83576040517fc0851c8a00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff841660048201524260248201526044016105c2565b5f610f8c6108e8565b9050610f978161156e565b60028101805460019081018083555f928352610fb39190612301565b90505f826002018281548110610fcb57610fcb612261565b5f91825260209091206005909102018781556001810180547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff8916179055905060048101611023868261241b565b505f1960028201819055600382015561103d838388611617565b5095945050505050565b5f805f80610e0f87878761131b565b5f5b5f19821415801561109a57504283600201838154811061107a5761107a612261565b5f91825260209091206001600590920201015467ffffffffffffffff1611155b156110cb578260020182815481106110b4576110b4612261565b905f5260205f209060050201600301549150611058565b50919050565b5f5b5f19831461111f575f8460020184815481106110f1576110f1612261565b905f5260205f209060050201905082815f0154165f146111145783915050610a67565b6003015492506110d3565b505f199392505050565b5f5b5f19831461111f575f84600201848154811061114957611149612261565b5f918252602090912060059091020160018101549091504267ffffffffffffffff9091161115611179575061111f565b805483161561118b5783915050610a67565b60030154925061112b565b5f80851584151780156111ae575f92505f91506112ab565b6111b884876124d7565b91505f6111c488611761565b90505f6111d087611761565b90505f6111dd83836117c2565b5090505f6f0785ee10d5da46d900f436a000000000821115611212576f0785ee10d5da46d900f436a000000000820491506025015b670de0b6b3a764000082111561123357670de0b6b3a7640000820491506012015b633b9aca0082111561124c57633b9aca00820491506009015b61271082111561126157612710820491506004015b811561127557600a82049150600101611261565b61127f81876124d7565b95506112a18b8a61129b878761129687600a6125f2565b6117de565b896118c3565b9097509550505050505b5094509492505050565b5f805f6112c285856119cf565b91509150801580156112d2575081155b15611313576040517f8eba4d0700000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016105c2565b509392505050565b5f600783168103611358576040517fbf3cad0b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6113616108e8565b60028101549091505f03611379575f19915050610a67565b5f5f1986146113ac5781600201868154811061139757611397612261565b905f5260205f209060050201600201546113b2565b81600101545b905060018460028111156113c8576113c8612314565b036113e157610a2a826113db8484611ad6565b87611b4a565b60028460028111156113f5576113f5612314565b0361140557610a2a828287611b98565b610a62828287611b4a565b5f805f19830361142457505f928392509050565b5f61142d6108e8565b600201848154811061144157611441612261565b5f91825260209091206005909102018054600190910154909567ffffffffffffffff909116945092505050565b611478815f611c04565b156114af576040517f018d151200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6114b930611c54565b90505f6114c7600183611cfe565b90506114d38382611d22565b1561150d576040517f06c32712000000000000000000000000000000000000000000000000000000008152600481018490526024016105c2565b5f61152261151c84600a6125fd565b5f611cfe565b905061152e8482611d71565b15611568576040517fd24a8af1000000000000000000000000000000000000000000000000000000008152600481018590526024016105c2565b50505050565b60028101541561157b5750565b6002810180546001018082555f8281529190829061159b5761159b612261565b5f9182526020909120600160059092020181815590810180547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff161790555f1960028201819055600382015590506115fc611dc0565b5f808052600484016020526040902055505f19600590910155565b5f83600201838154811061162d5761162d612261565b905f5260205f20906005020190505f846001015490505b5f198114610de9578267ffffffffffffffff1685600201828154811061166c5761166c612261565b5f91825260209091206001600590920201015467ffffffffffffffff1611611735575f8560020182815481106116a4576116a4612261565b905f5260205f209060050201600301549050848660020183815481106116cc576116cc612261565b5f918252602090912060036005909202018101919091556002840183905583018190555f198114611725578486600201828154811061170d5761170d612261565b905f5260205f2090600502016002018190555061172d565b600186018590555b505050505050565b84600201818154811061174a5761174a612261565b905f5260205f209060050201600201549050611644565b5f808212156117be577f800000000000000000000000000000000000000000000000000000000000000082036117b857507f8000000000000000000000000000000000000000000000000000000000000000919050565b505f0390565b5090565b5f805f1983850993909202808410938190039390930393915050565b5f805f6117eb86866117c2565b91509150815f0361180f57838181611805576118056124fe565b0492505050610a67565b838210611859576040517f6c59da120000000000000000000000000000000000000000000000000000000081526004810187905260248101869052604481018590526064016105c2565b5f84868809600186198101871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103025f82900382900490920185841190960395909502919093039390930492909217029150509392505050565b5f805f858718121561198d577f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84111561197a576119227f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600161260b565b840361195257507f80000000000000000000000000000000000000000000000000000000000000009050816119c6565b61195d600a8561261e565b6119669061263d565b6119718460016124d7565b915091506119c6565b6119838461263d565b83915091506119c6565b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8411156119c057611966600a8561261e565b50829050815b94509492505050565b5f601b83900b8314838382611a33577d90e40fbeea1d3a4abc8955e946fe31cdcf66f634e1000000000000000000860515611a1357620186a0860595506005850194505b8586601b0b14611a2e57600a86059550846001019450611a13565b611a49565b855f03611a4957505f925060019150611acf9050565b848560030b14611aa5575f851215611a6957505f9250829150611acf9050565b6040517fd556b11100000000000000000000000000000000000000000000000000000000815260048101839052602481018290526044016105c2565b50507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841660e084901b1791505b9250929050565b5f5b5f198214158015611b19575042836002018381548110611afa57611afa612261565b5f91825260209091206001600590920201015467ffffffffffffffff16115b156110cb57826002018281548110611b3357611b33612261565b905f5260205f209060050201600201549150611ad8565b5f5b5f19831461111f575f846002018481548110611b6a57611b6a612261565b905f5260205f209060050201905082815f0154165f14611b8d5783915050610a67565b600201549250611b4c565b5f5b5f19831461111f575f846002018481548110611bb857611bb8612261565b5f918252602090912060059091020160018101549091504267ffffffffffffffff90911611611be7575061111f565b8054831615611bf95783915050610a67565b600201549250611b9a565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d611c4784848484611e43565b1215979650505050505050565b5f611c5d611f17565b6040517f54636d2b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316600482015273200e12d10bb0c5e4a17e7018f0f1161919bb9389906354636d2b906024016020604051808303815f875af1158015611cda573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a83919061266d565b5f805f611d0b8585611fbd565b91509150611d19828261201f565b95945050505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d611d6584848484611e43565b13979650505050505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d611db484848484611e43565b12979650505050505050565b5f807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00611e0e60017fb750591399365444a618527b69a54ce09476c8bde1ecff60f5aa1fe2b52605ff612301565b604051602001611e2091815260200190565b60408051808303601f190181529190528051602090910120166002015492915050565b5f8085158415178187128286121817858414178015611e6857868592509250506119c6565b505f85841315611e7c575092949193919260015b8386035f8112604c8213178015611eaf578215611ea1575f89945094505050506119c6565b885f945094505050506119c6565b600a82900a8981028a828281611ec757611ec76124fe565b0514611ef3578415611ee3575f8b9650965050505050506119c6565b8a5f9650965050505050506119c6565b8415611f085788965094506119c69350505050565b95508794506119c69350505050565b73200e12d10bb0c5e4a17e7018f0f1161919bb93893b1580611f6e575073200e12d10bb0c5e4a17e7018f0f1161919bb93893f7f1de7d717526cba131d684e312dedbf0852adef9cced9e36798ae4937f7145d4114155b15611fbb576040517f73e6d7b300000000000000000000000000000000000000000000000000000000815273200e12d10bb0c5e4a17e7018f0f1161919bb938960048201526024016105c2565b565b5f805f805f611fcc8787612071565b92509250925080612013576040517fc471796600000000000000000000000000000000000000000000000000000000815260048101849052602481018390526044016105c2565b50909590945092505050565b5f805f61202c85856119cf565b9150915080611313576040517f22c9f7bb00000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016105c2565b5f808060ff841681037f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8611156120bc57600a860460018201600a88065f149350935093505061036b565b85935091506001905061036b565b5080546120d690612275565b5f825580601f106120e5575050565b601f0160209004905f5260205f20908101906121019190612104565b50565b5b808211156117be575f8155600101612105565b8035600381106106e6575f80fd5b5f8060408385031215612137575f80fd5b8235915061214760208401612118565b90509250929050565b5f60208284031215612160575f80fd5b5035919050565b5f805f60608486031215612179575f80fd5b833592506020840135915061219060408501612118565b90509250925092565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610a676020830184612199565b5f805f80606085870312156121ec575f80fd5b84359350602085013567ffffffffffffffff808216821461220b575f80fd5b90935060408601359080821115612220575f80fd5b818701915087601f830112612233575f80fd5b813581811115612241575f80fd5b886020828501011115612252575f80fd5b95989497505060200194505050565b634e487b7160e01b5f52603260045260245ffd5b600181811c9082168061228957607f821691505b6020821081036110cb57634e487b7160e01b5f52602260045260245ffd5b84815267ffffffffffffffff8416602082015260606040820152816060820152818360808301375f818301608090810191909152601f909201601f191601019392505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610a8357610a836122ed565b634e487b7160e01b5f52602160045260245ffd5b5f60208284031215612338575f80fd5b5051919050565b5f6020828403121561234f575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610a67575f80fd5b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f611d196060830184612199565b5f5f1982036123b7576123b76122ed565b5060010190565b634e487b7160e01b5f52604160045260245ffd5b601f82111561241657805f5260205f20601f840160051c810160208510156123f75750805b601f840160051c820191505b81811015610de9575f8155600101612403565b505050565b815167ffffffffffffffff811115612435576124356123be565b612449816124438454612275565b846123d2565b602080601f83116001811461247c575f84156124655750858301515b5f19600386901b1c1916600185901b17855561172d565b5f85815260208120601f198616915b828110156124aa5788860151825594840194600190910190840161248b565b50858210156124c757878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b8082018281125f8312801582168215821617156124f6576124f66122ed565b505092915050565b634e487b7160e01b5f52601260045260245ffd5b600181815b8085111561254c57815f1904821115612532576125326122ed565b8085161561253f57918102915b93841c9390800290612517565b509250929050565b5f8261256257506001610a83565b8161256e57505f610a83565b8160018114612584576002811461258e576125aa565b6001915050610a83565b60ff84111561259f5761259f6122ed565b50506001821b610a83565b5060208310610133831016604e8410600b84101617156125cd575081810a610a83565b6125d78383612512565b805f19048211156125ea576125ea6122ed565b029392505050565b5f610a678383612554565b5f610a6760ff841683612554565b80820180821115610a8357610a836122ed565b5f8261263857634e487b7160e01b5f52601260045260245ffd5b500490565b5f7f800000000000000000000000000000000000000000000000000000000000000082036117b8576117b86122ed565b5f6020828403121561267d575f80fd5b815160ff81168114610a67575f80fd"; diff --git a/src/generated/0_1_8/StoxOffchainAssetReceiptVaultAuthorizerV1.pointers.sol b/src/generated/0_1_8/StoxOffchainAssetReceiptVaultAuthorizerV1.pointers.sol deleted file mode 100644 index e161c73a..00000000 --- a/src/generated/0_1_8/StoxOffchainAssetReceiptVaultAuthorizerV1.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0xf8a1d9b2fa068bae3c1a607434db48364a5cdab3020bd7e315ed2662a3b35b5f); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x2EA0d35d0B1F57C42e6130f298930228bCbFDe9b); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"6080604052348015600e575f80fd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b611746806100d65f395ff3fe608060405234801561000f575f80fd5b506004361061009f575f3560e01c8063439fab911161007257806391d148541161005857806391d1485414610168578063a217fddf146101cc578063d547741f146101d3575f80fd5b8063439fab911461014257806359f89dda14610155575f80fd5b806301ffc9a7146100a3578063248a9ca3146100cb5780632f2ff15d1461011a57806336568abe1461012f575b5f80fd5b6100b66100b13660046112aa565b6101e6565b60405190151581526020015b60405180910390f35b61010c6100d93660046112f0565b5f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b6040519081526020016100c2565b61012d610128366004611328565b6102d9565b005b61012d61013d366004611328565b610322565b61010c610150366004611449565b610380565b61012d610163366004611483565b6106a0565b6100b6610176366004611328565b5f9182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b61010c5f81565b61012d6101e1366004611328565b610a49565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f59f89dda00000000000000000000000000000000000000000000000000000000148061027857507fffffffff0000000000000000000000000000000000000000000000000000000082167f439fab9100000000000000000000000000000000000000000000000000000000145b806102c457507fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000145b806102d357506102d382610a8c565b92915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015461031281610b22565b61031c8383610b2f565b50505050565b73ffffffffffffffffffffffffffffffffffffffff81163314610371576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61037b8282610c4d565b505050565b5f8061038a610d29565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156103b65750825b90505f8267ffffffffffffffff1660011480156103d25750303b155b9050811580156103e0575080155b15610417576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156104785784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b5f8780602001905181019061048d91906114d8565b90505f61049982610d51565b90507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc381146104cb5796506106359050565b6105157ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f897fd6075ca92e18a15ce0e8ecaaae57a112072844045d11beeb264aac5f85e0daf26110f9565b61053f7fd6075ca92e18a15ce0e8ecaaae57a112072844045d11beeb264aac5f85e0daf2806110f9565b6105897f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e77fe25ff801c3c463dad5f8999289b7b43090e0f6f5039ae7c220cbb762fe8ff3736110f9565b6105b37fe25ff801c3c463dad5f8999289b7b43090e0f6f5039ae7c220cbb762fe8ff373806110f9565b6105e07fd6075ca92e18a15ce0e8ecaaae57a112072844045d11beeb264aac5f85e0daf2835f0151610b2f565b5061060e7fe25ff801c3c463dad5f8999289b7b43090e0f6f5039ae7c220cbb762fe8ff373835f0151610b2f565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc3975050505b83156106965784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a8214806106ed57507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a4882145b156109b6575f805f7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a850361074d575f848060200190518101906107319190611536565b9050805f01519350806020015192508060600151915050610779565b5f84806020019051810190610762919061162b565b805160208201516080909201519095509093509150505b80156109ae5773ffffffffffffffffffffffffffffffffffffffff83161580156107e6575073ffffffffffffffffffffffffffffffffffffffff82165f9081527f96f78a99f93d631b75bc050854c9b764642c10564e41ed27c197a36ddabb1df9602052604090205460ff165b80610853575073ffffffffffffffffffffffffffffffffffffffff8216158015610853575073ffffffffffffffffffffffffffffffffffffffff83165f9081527f3907f76fa0fb1e5d0f263c5c4fe4316026052cf960c55a1c768106d8b9701c10602052604090205460ff165b1561086057505050505050565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a851480156108d2575073ffffffffffffffffffffffffffffffffffffffff86165f9081527f6ba48721fcbb2613af13d8285fe9ee4a081f7995464037bb5ea27397912881d2602052604090205460ff165b8061094a57507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a488514801561094a575073ffffffffffffffffffffffffffffffffffffffff86165f9081527f29e42896fa6edf5a5d7ff0bcd00acffbece6eb6cc7b44d0807bfd84929cc6e1b602052604090205460ff165b1561095757505050505050565b6040517ffe720f7800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8085166004830152831660248201526044015b60405180910390fd5b505050505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915290205460ff1615610a1157505050565b8282826040517f3ae4063b0000000000000000000000000000000000000000000000000000000081526004016109a5939291906116ed565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020526040902060010154610a8281610b22565b61031c8383610c4d565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806102d357507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146102d3565b610b2c813361119a565b50565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020818152604080842073ffffffffffffffffffffffffffffffffffffffff8616855290915282205460ff16610c44575f8481526020828152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610be03390565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506102d3565b5f9150506102d3565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020818152604080842073ffffffffffffffffffffffffffffffffffffffff8616855290915282205460ff1615610c44575f8481526020828152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506102d3565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006102d3565b5f610d5a611244565b815173ffffffffffffffffffffffffffffffffffffffff16610da8576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610df27f50a07cb25d0d864370863300b20987dfdae089abad71b607faf639d09d0533917f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b6110f9565b610e1c7f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b806110f9565b610e667f3dd35eca0ca8a128757fa464a5dfa4ad6cc4853cad96dce4e90fdbea4f0a52e37f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d6110f9565b610e907f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d806110f9565b610eda7f54f0af3716c79b30b8c228679d31d77a1a5f526c16af3262730e0a8de4363fed7fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c6110f9565b610f047fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c806110f9565b610f4e7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8217f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc026110f9565b610f787f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02806110f9565b610fc27f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e9828697fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d36110f9565b610fec7fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3806110f9565b6110197f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b835f0151610b2f565b506110477f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d835f0151610b2f565b506110757fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c835f0151610b2f565b506110a37f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02835f0151610b2f565b506110d17fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3835f0151610b2f565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc392915050565b7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268005f611152845f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b5f85815260208490526040808220600101869055519192508491839187917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a450505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16611240576040517fe2517d3f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602481018390526044016109a5565b5050565b61124c61124e565b565b61125661128c565b61124c576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f611295610d29565b5468010000000000000000900460ff16919050565b5f602082840312156112ba575f80fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146112e9575f80fd5b9392505050565b5f60208284031215611300575f80fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff81168114610b2c575f80fd5b5f8060408385031215611339575f80fd5b82359150602083013561134b81611307565b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60405160a0810167ffffffffffffffff811182821017156113a6576113a6611356565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156113d5576113d5611356565b604052919050565b5f82601f8301126113ec575f80fd5b813567ffffffffffffffff81111561140657611406611356565b6114196020601f19601f840116016113ac565b81815284602083860101111561142d575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60208284031215611459575f80fd5b813567ffffffffffffffff81111561146f575f80fd5b61147b848285016113dd565b949350505050565b5f805f60608486031215611495575f80fd5b83356114a081611307565b925060208401359150604084013567ffffffffffffffff8111156114c2575f80fd5b6114ce868287016113dd565b9150509250925092565b5f602082840312156114e8575f80fd5b6040516020810181811067ffffffffffffffff8211171561150b5761150b611356565b604052825161151981611307565b81529392505050565b80518015158114611531575f80fd5b919050565b5f60808284031215611546575f80fd5b6040516080810181811067ffffffffffffffff8211171561156957611569611356565b604052825161157781611307565b8152602083015161158781611307565b6020820152604083810151908201526115a260608401611522565b60608201529392505050565b5f82601f8301126115bd575f80fd5b8151602067ffffffffffffffff8211156115d9576115d9611356565b8160051b6115e88282016113ac565b9283528481018201928281019087851115611601575f80fd5b83870192505b8483101561162057825182529183019190830190611607565b979650505050505050565b5f6020828403121561163b575f80fd5b815167ffffffffffffffff80821115611652575f80fd5b9083019060a08286031215611665575f80fd5b61166d611383565b825161167881611307565b8152602083015161168881611307565b602082015260408301518281111561169e575f80fd5b6116aa878286016115ae565b6040830152506060830151828111156116c1575f80fd5b6116cd878286016115ae565b6060830152506116df60808401611522565b608082015295945050505050565b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f82518060608401528060208501608085015e5f608082850101526080601f19601f83011684010191505094935050505056"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b506004361061009f575f3560e01c8063439fab911161007257806391d148541161005857806391d1485414610168578063a217fddf146101cc578063d547741f146101d3575f80fd5b8063439fab911461014257806359f89dda14610155575f80fd5b806301ffc9a7146100a3578063248a9ca3146100cb5780632f2ff15d1461011a57806336568abe1461012f575b5f80fd5b6100b66100b13660046112aa565b6101e6565b60405190151581526020015b60405180910390f35b61010c6100d93660046112f0565b5f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b6040519081526020016100c2565b61012d610128366004611328565b6102d9565b005b61012d61013d366004611328565b610322565b61010c610150366004611449565b610380565b61012d610163366004611483565b6106a0565b6100b6610176366004611328565b5f9182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b61010c5f81565b61012d6101e1366004611328565b610a49565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f59f89dda00000000000000000000000000000000000000000000000000000000148061027857507fffffffff0000000000000000000000000000000000000000000000000000000082167f439fab9100000000000000000000000000000000000000000000000000000000145b806102c457507fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000145b806102d357506102d382610a8c565b92915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015461031281610b22565b61031c8383610b2f565b50505050565b73ffffffffffffffffffffffffffffffffffffffff81163314610371576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61037b8282610c4d565b505050565b5f8061038a610d29565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156103b65750825b90505f8267ffffffffffffffff1660011480156103d25750303b155b9050811580156103e0575080155b15610417576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156104785784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b5f8780602001905181019061048d91906114d8565b90505f61049982610d51565b90507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc381146104cb5796506106359050565b6105157ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f897fd6075ca92e18a15ce0e8ecaaae57a112072844045d11beeb264aac5f85e0daf26110f9565b61053f7fd6075ca92e18a15ce0e8ecaaae57a112072844045d11beeb264aac5f85e0daf2806110f9565b6105897f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e77fe25ff801c3c463dad5f8999289b7b43090e0f6f5039ae7c220cbb762fe8ff3736110f9565b6105b37fe25ff801c3c463dad5f8999289b7b43090e0f6f5039ae7c220cbb762fe8ff373806110f9565b6105e07fd6075ca92e18a15ce0e8ecaaae57a112072844045d11beeb264aac5f85e0daf2835f0151610b2f565b5061060e7fe25ff801c3c463dad5f8999289b7b43090e0f6f5039ae7c220cbb762fe8ff373835f0151610b2f565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc3975050505b83156106965784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a8214806106ed57507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a4882145b156109b6575f805f7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a850361074d575f848060200190518101906107319190611536565b9050805f01519350806020015192508060600151915050610779565b5f84806020019051810190610762919061162b565b805160208201516080909201519095509093509150505b80156109ae5773ffffffffffffffffffffffffffffffffffffffff83161580156107e6575073ffffffffffffffffffffffffffffffffffffffff82165f9081527f96f78a99f93d631b75bc050854c9b764642c10564e41ed27c197a36ddabb1df9602052604090205460ff165b80610853575073ffffffffffffffffffffffffffffffffffffffff8216158015610853575073ffffffffffffffffffffffffffffffffffffffff83165f9081527f3907f76fa0fb1e5d0f263c5c4fe4316026052cf960c55a1c768106d8b9701c10602052604090205460ff165b1561086057505050505050565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a851480156108d2575073ffffffffffffffffffffffffffffffffffffffff86165f9081527f6ba48721fcbb2613af13d8285fe9ee4a081f7995464037bb5ea27397912881d2602052604090205460ff165b8061094a57507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a488514801561094a575073ffffffffffffffffffffffffffffffffffffffff86165f9081527f29e42896fa6edf5a5d7ff0bcd00acffbece6eb6cc7b44d0807bfd84929cc6e1b602052604090205460ff165b1561095757505050505050565b6040517ffe720f7800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8085166004830152831660248201526044015b60405180910390fd5b505050505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915290205460ff1615610a1157505050565b8282826040517f3ae4063b0000000000000000000000000000000000000000000000000000000081526004016109a5939291906116ed565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020526040902060010154610a8281610b22565b61031c8383610c4d565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806102d357507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146102d3565b610b2c813361119a565b50565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020818152604080842073ffffffffffffffffffffffffffffffffffffffff8616855290915282205460ff16610c44575f8481526020828152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610be03390565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506102d3565b5f9150506102d3565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020818152604080842073ffffffffffffffffffffffffffffffffffffffff8616855290915282205460ff1615610c44575f8481526020828152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506102d3565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006102d3565b5f610d5a611244565b815173ffffffffffffffffffffffffffffffffffffffff16610da8576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610df27f50a07cb25d0d864370863300b20987dfdae089abad71b607faf639d09d0533917f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b6110f9565b610e1c7f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b806110f9565b610e667f3dd35eca0ca8a128757fa464a5dfa4ad6cc4853cad96dce4e90fdbea4f0a52e37f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d6110f9565b610e907f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d806110f9565b610eda7f54f0af3716c79b30b8c228679d31d77a1a5f526c16af3262730e0a8de4363fed7fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c6110f9565b610f047fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c806110f9565b610f4e7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8217f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc026110f9565b610f787f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02806110f9565b610fc27f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e9828697fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d36110f9565b610fec7fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3806110f9565b6110197f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b835f0151610b2f565b506110477f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d835f0151610b2f565b506110757fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c835f0151610b2f565b506110a37f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02835f0151610b2f565b506110d17fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3835f0151610b2f565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc392915050565b7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268005f611152845f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b5f85815260208490526040808220600101869055519192508491839187917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a450505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16611240576040517fe2517d3f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602481018390526044016109a5565b5050565b61124c61124e565b565b61125661128c565b61124c576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f611295610d29565b5468010000000000000000900460ff16919050565b5f602082840312156112ba575f80fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146112e9575f80fd5b9392505050565b5f60208284031215611300575f80fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff81168114610b2c575f80fd5b5f8060408385031215611339575f80fd5b82359150602083013561134b81611307565b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60405160a0810167ffffffffffffffff811182821017156113a6576113a6611356565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156113d5576113d5611356565b604052919050565b5f82601f8301126113ec575f80fd5b813567ffffffffffffffff81111561140657611406611356565b6114196020601f19601f840116016113ac565b81815284602083860101111561142d575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60208284031215611459575f80fd5b813567ffffffffffffffff81111561146f575f80fd5b61147b848285016113dd565b949350505050565b5f805f60608486031215611495575f80fd5b83356114a081611307565b925060208401359150604084013567ffffffffffffffff8111156114c2575f80fd5b6114ce868287016113dd565b9150509250925092565b5f602082840312156114e8575f80fd5b6040516020810181811067ffffffffffffffff8211171561150b5761150b611356565b604052825161151981611307565b81529392505050565b80518015158114611531575f80fd5b919050565b5f60808284031215611546575f80fd5b6040516080810181811067ffffffffffffffff8211171561156957611569611356565b604052825161157781611307565b8152602083015161158781611307565b6020820152604083810151908201526115a260608401611522565b60608201529392505050565b5f82601f8301126115bd575f80fd5b8151602067ffffffffffffffff8211156115d9576115d9611356565b8160051b6115e88282016113ac565b9283528481018201928281019087851115611601575f80fd5b83870192505b8483101561162057825182529183019190830190611607565b979650505050505050565b5f6020828403121561163b575f80fd5b815167ffffffffffffffff80821115611652575f80fd5b9083019060a08286031215611665575f80fd5b61166d611383565b825161167881611307565b8152602083015161168881611307565b602082015260408301518281111561169e575f80fd5b6116aa878286016115ae565b6040830152506060830151828111156116c1575f80fd5b6116cd878286016115ae565b6060830152506116df60808401611522565b608082015295945050505050565b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f82518060608401528060208501608085015e5f608082850101526080601f19601f83011684010191505094935050505056"; diff --git a/src/generated/0_1_8/StoxOffchainAssetReceiptVaultBeaconSetDeployer.pointers.sol b/src/generated/0_1_8/StoxOffchainAssetReceiptVaultBeaconSetDeployer.pointers.sol deleted file mode 100644 index 31a0f1ac..00000000 --- a/src/generated/0_1_8/StoxOffchainAssetReceiptVaultBeaconSetDeployer.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x4637b099fe9279a8d4d88d9176ccadf92b20970eaf0b57b51997756d479ef43b); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x679ab223dAb158Ea93e1a4F49104DE436C58eAb8); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"60c060405234801561000f575f80fd5b5060408051606081018252738e4bdeec7ceb9570d440676345da1dce10329f5b808252732df5cfe6d688ef9ff1b7c59a499d254b1527b2866020830181905273d7f91c1c6e6e651ec3f1fd707af7cbb7526206e18385015292519192916100759061010b565b6001600160a01b03928316815291166020820152604001604051809103905ff0801580156100a5573d5f803e3d5ffd5b506001600160a01b0316608052604080820151825191519091906100c89061010b565b6001600160a01b03928316815291166020820152604001604051809103905ff0801580156100f8573d5f803e3d5ffd5b506001600160a01b031660a05250610118565b6104f780610fd783390190565b60805160a051610e926101455f395f818160c701526102d801525f8181607b01526102630152610e925ff3fe608060405234801561000f575f80fd5b506004361061004a575f3560e01c806301ffc9a71461004e5780632c9b7f40146100765780632f77a1c1146100c25780634904fab3146100e9575b5f80fd5b61006161005c3660046105d0565b6100fc565b60405190151581526020015b60405180910390f35b61009d7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161006d565b61009d7f000000000000000000000000000000000000000000000000000000000000000081565b61009d6100f736600461075e565b610194565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f4ae8243200000000000000000000000000000000000000000000000000000000148061018e57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b6020810151606001515f9073ffffffffffffffffffffffffffffffffffffffff1615610212576020820151606001516040517ffc47d97600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116600482015260240160405180910390fd5b815173ffffffffffffffffffffffffffffffffffffffff16610260576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7f000000000000000000000000000000000000000000000000000000000000000060405161028e906105c3565b73ffffffffffffffffffffffffffffffffffffffff90911681526040602082018190525f90820152606001604051809103905ff0801580156102d2573d5f803e3d5ffd5b5090505f7f0000000000000000000000000000000000000000000000000000000000000000604051610303906105c3565b73ffffffffffffffffffffffffffffffffffffffff90911681526040602082018190525f90820152606001604051809103905ff080158015610347573d5f803e3d5ffd5b506040805173ffffffffffffffffffffffffffffffffffffffff80841660208301529293507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc39285169163439fab9191016040516020818303038152906040526040518263ffffffff1660e01b81526004016103c39190610894565b6020604051808303815f875af11580156103df573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061040391906108a6565b1461043a576040517f0219069c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8184602001516060019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc38173ffffffffffffffffffffffffffffffffffffffff1663439fab91866040516020016104c491906108bd565b6040516020818303038152906040526040518263ffffffff1660e01b81526004016104ef9190610894565b6020604051808303815f875af115801561050b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061052f91906108a6565b14610566576040517f09c5931500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805133815273ffffffffffffffffffffffffffffffffffffffff838116602083015284168183015290517fa0d99d93cf7a5f89661fa0829369a7e4896e755871efe65440bab2429387d55b9181900360600190a19392505050565b61052f8061096383390190565b5f602082840312156105e0575f80fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461060f575f80fd5b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff8111828210171561066657610666610616565b60405290565b6040516080810167ffffffffffffffff8111828210171561066657610666610616565b803573ffffffffffffffffffffffffffffffffffffffff811681146106b2575f80fd5b919050565b5f82601f8301126106c6575f80fd5b813567ffffffffffffffff808211156106e1576106e1610616565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561072757610727610616565b8160405283815286602085880101111561073f575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f6020828403121561076e575f80fd5b813567ffffffffffffffff80821115610785575f80fd5b9083019060408286031215610798575f80fd5b6107a0610643565b6107a98361068f565b81526020830135828111156107bc575f80fd5b9290920191608083870312156107d0575f80fd5b6107d861066c565b6107e18461068f565b81526020840135838111156107f4575f80fd5b610800888287016106b7565b602083015250604084013583811115610817575f80fd5b610823888287016106b7565b6040830152506108356060850161068f565b6060820152602082015295945050505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f61060f6020830184610848565b5f602082840312156108b6575f80fd5b5051919050565b602081525f73ffffffffffffffffffffffffffffffffffffffff8084511660208401526020840151604080850152818151166060850152602081015160808086015261090c60e0860182610848565b905060408201517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08683030160a08701526109478282610848565b9150508260608301511660c08601528093505050509291505056fe60a060405260405161052f38038061052f83398101604081905261002291610331565b61002c828261003e565b506001600160a01b031660805261040d565b610047826100fb565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a28051156100ef576100ea826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e491906103ed565b82610209565b505050565b6100f76102aa565b5050565b806001600160a01b03163b5f0361013557604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b815290515f92841691635c60da1b9160048083019260209291908290030181865afa1580156101ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d291906103ed565b9050806001600160a01b03163b5f036100f757604051634c9c8ce360e01b81526001600160a01b038216600482015260240161012c565b60605f61021684846102cb565b905080801561023757505f3d118061023757505f846001600160a01b03163b115b1561024c576102446102de565b9150506102a4565b801561027657604051639996b31560e01b81526001600160a01b038516600482015260240161012c565b3d15610289576102846102f7565b6102a2565b60405163d6bda27560e01b815260040160405180910390fd5b505b92915050565b34156102c95760405163b398979f60e01b815260040160405180910390fd5b565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b6040513d5f823e3d81fd5b80516001600160a01b0381168114610318575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215610342575f80fd5b61034b83610302565b60208401519092506001600160401b0380821115610367575f80fd5b818501915085601f83011261037a575f80fd5b81518181111561038c5761038c61031d565b604051601f8201601f19908116603f011681019083821181831017156103b4576103b461031d565b816040528281528860208487010111156103cc575f80fd5b8260208601602083015e5f6020848301015280955050505050509250929050565b5f602082840312156103fd575f80fd5b61040682610302565b9392505050565b60805161010b6104245f395f6023015261010b5ff3fe608060405261000c61000e565b005b61001e610019610020565b6100b3565b565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561008a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100ae91906100d1565b905090565b365f80375f80365f845af43d5f803e8080156100cd573d5ff35b3d5ffd5b5f602082840312156100e1575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610104575f80fd5b939250505056608060405234801561000f575f80fd5b506040516104f73803806104f783398101604081905261002e9161015f565b806001600160a01b03811661005d57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b61006681610077565b50610070826100c6565b5050610190565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b806001600160a01b03163b5f036100fb5760405163211eb15960e21b81526001600160a01b0382166004820152602401610054565b600180546001600160a01b0319166001600160a01b0383169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b80516001600160a01b038116811461015a575f80fd5b919050565b5f8060408385031215610170575f80fd5b61017983610144565b915061018760208401610144565b90509250929050565b61035a8061019d5f395ff3fe608060405234801561000f575f80fd5b5060043610610064575f3560e01c8063715018a61161004d578063715018a6146100c05780638da5cb5b146100c8578063f2fde38b146100e5575f80fd5b80633659cfe6146100685780635c60da1b1461007d575b5f80fd5b61007b610076366004610320565b6100f8565b005b60015473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61007b61010c565b5f5473ffffffffffffffffffffffffffffffffffffffff16610097565b61007b6100f3366004610320565b61011f565b610100610184565b610109816101d6565b50565b610114610184565b61011d5f6102ac565b565b610127610184565b73ffffffffffffffffffffffffffffffffffffffff811661017b576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f60048201526024015b60405180910390fd5b610109816102ac565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461011d576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610172565b8073ffffffffffffffffffffffffffffffffffffffff163b5f0361023e576040517f847ac56400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602401610172565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f60208284031215610330575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610353575f80fd5b939250505056"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b506004361061004a575f3560e01c806301ffc9a71461004e5780632c9b7f40146100765780632f77a1c1146100c25780634904fab3146100e9575b5f80fd5b61006161005c3660046105d0565b6100fc565b60405190151581526020015b60405180910390f35b61009d7f000000000000000000000000913f9edb29dd88314ee1559c18495b5332464d3b81565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161006d565b61009d7f000000000000000000000000bc924b1c3d3f3e038d5bf85710f695bcb22e715281565b61009d6100f736600461075e565b610194565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f4ae8243200000000000000000000000000000000000000000000000000000000148061018e57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b6020810151606001515f9073ffffffffffffffffffffffffffffffffffffffff1615610212576020820151606001516040517ffc47d97600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116600482015260240160405180910390fd5b815173ffffffffffffffffffffffffffffffffffffffff16610260576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7f000000000000000000000000913f9edb29dd88314ee1559c18495b5332464d3b60405161028e906105c3565b73ffffffffffffffffffffffffffffffffffffffff90911681526040602082018190525f90820152606001604051809103905ff0801580156102d2573d5f803e3d5ffd5b5090505f7f000000000000000000000000bc924b1c3d3f3e038d5bf85710f695bcb22e7152604051610303906105c3565b73ffffffffffffffffffffffffffffffffffffffff90911681526040602082018190525f90820152606001604051809103905ff080158015610347573d5f803e3d5ffd5b506040805173ffffffffffffffffffffffffffffffffffffffff80841660208301529293507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc39285169163439fab9191016040516020818303038152906040526040518263ffffffff1660e01b81526004016103c39190610894565b6020604051808303815f875af11580156103df573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061040391906108a6565b1461043a576040517f0219069c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8184602001516060019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc38173ffffffffffffffffffffffffffffffffffffffff1663439fab91866040516020016104c491906108bd565b6040516020818303038152906040526040518263ffffffff1660e01b81526004016104ef9190610894565b6020604051808303815f875af115801561050b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061052f91906108a6565b14610566576040517f09c5931500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805133815273ffffffffffffffffffffffffffffffffffffffff838116602083015284168183015290517fa0d99d93cf7a5f89661fa0829369a7e4896e755871efe65440bab2429387d55b9181900360600190a19392505050565b61052f8061096383390190565b5f602082840312156105e0575f80fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461060f575f80fd5b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff8111828210171561066657610666610616565b60405290565b6040516080810167ffffffffffffffff8111828210171561066657610666610616565b803573ffffffffffffffffffffffffffffffffffffffff811681146106b2575f80fd5b919050565b5f82601f8301126106c6575f80fd5b813567ffffffffffffffff808211156106e1576106e1610616565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561072757610727610616565b8160405283815286602085880101111561073f575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f6020828403121561076e575f80fd5b813567ffffffffffffffff80821115610785575f80fd5b9083019060408286031215610798575f80fd5b6107a0610643565b6107a98361068f565b81526020830135828111156107bc575f80fd5b9290920191608083870312156107d0575f80fd5b6107d861066c565b6107e18461068f565b81526020840135838111156107f4575f80fd5b610800888287016106b7565b602083015250604084013583811115610817575f80fd5b610823888287016106b7565b6040830152506108356060850161068f565b6060820152602082015295945050505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f61060f6020830184610848565b5f602082840312156108b6575f80fd5b5051919050565b602081525f73ffffffffffffffffffffffffffffffffffffffff8084511660208401526020840151604080850152818151166060850152602081015160808086015261090c60e0860182610848565b905060408201517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08683030160a08701526109478282610848565b9150508260608301511660c08601528093505050509291505056fe60a060405260405161052f38038061052f83398101604081905261002291610331565b61002c828261003e565b506001600160a01b031660805261040d565b610047826100fb565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a28051156100ef576100ea826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e491906103ed565b82610209565b505050565b6100f76102aa565b5050565b806001600160a01b03163b5f0361013557604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b815290515f92841691635c60da1b9160048083019260209291908290030181865afa1580156101ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d291906103ed565b9050806001600160a01b03163b5f036100f757604051634c9c8ce360e01b81526001600160a01b038216600482015260240161012c565b60605f61021684846102cb565b905080801561023757505f3d118061023757505f846001600160a01b03163b115b1561024c576102446102de565b9150506102a4565b801561027657604051639996b31560e01b81526001600160a01b038516600482015260240161012c565b3d15610289576102846102f7565b6102a2565b60405163d6bda27560e01b815260040160405180910390fd5b505b92915050565b34156102c95760405163b398979f60e01b815260040160405180910390fd5b565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b6040513d5f823e3d81fd5b80516001600160a01b0381168114610318575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215610342575f80fd5b61034b83610302565b60208401519092506001600160401b0380821115610367575f80fd5b818501915085601f83011261037a575f80fd5b81518181111561038c5761038c61031d565b604051601f8201601f19908116603f011681019083821181831017156103b4576103b461031d565b816040528281528860208487010111156103cc575f80fd5b8260208601602083015e5f6020848301015280955050505050509250929050565b5f602082840312156103fd575f80fd5b61040682610302565b9392505050565b60805161010b6104245f395f6023015261010b5ff3fe608060405261000c61000e565b005b61001e610019610020565b6100b3565b565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561008a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100ae91906100d1565b905090565b365f80375f80365f845af43d5f803e8080156100cd573d5ff35b3d5ffd5b5f602082840312156100e1575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610104575f80fd5b939250505056"; diff --git a/src/generated/0_1_8/StoxOffchainAssetReceiptVaultPaymentMintAuthorizerV1.pointers.sol b/src/generated/0_1_8/StoxOffchainAssetReceiptVaultPaymentMintAuthorizerV1.pointers.sol deleted file mode 100644 index f343350f..00000000 --- a/src/generated/0_1_8/StoxOffchainAssetReceiptVaultPaymentMintAuthorizerV1.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x4d94318cde48f1bc20f97e00aefad84bfb7c9db15c81b882862e127b05e06e15); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0xeaD68E489Cb19453b294dc46a3A5710b0d46d17F); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"6080604052348015600e575f80fd5b506015601f565b601b601f565b60cf565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615606e5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460cc5780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b612650806100dc5f395ff3fe608060405234801561000f575f80fd5b5060043610610115575f3560e01c806359f89dda116100ad578063a086e1751161007d578063a4c9d30011610063578063a4c9d3001461030a578063d547741f14610312578063f2fde38b14610325575f80fd5b8063a086e175146102fb578063a217fddf14610303575f80fd5b806359f89dda14610281578063715018a6146102945780638da5cb5b1461029c57806391d14854146102a4575f80fd5b80633013ce29116100e85780633013ce29146101c8578063325cd7961461020c57806336568abe1461025b578063439fab911461026e575f80fd5b806301ffc9a71461011957806304a0db2014610141578063248a9ca3146101725780632f2ff15d146101b3575b5f80fd5b61012c610127366004611eec565b610338565b60405190151581526020015b60405180910390f35b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3202545b604051908152602001610138565b610164610180366004611f2b565b5f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b6101c66101c1366004611f56565b61042b565b005b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3201546001600160a01b03165b6040516001600160a01b039091168152602001610138565b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b32015474010000000000000000000000000000000000000000900460ff1660405160ff9091168152602001610138565b6101c6610269366004611f56565b610474565b61016461027c3660046120a7565b6104c5565b6101c661028f3660046120d9565b610a55565b6101c6610e31565b6101f4610e44565b61012c6102b2366004611f56565b5f9182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6101f4610e78565b6101645f81565b6101c6610ea0565b6101c6610320366004611f56565b610f69565b6101c661033336600461212e565b610fac565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f59f89dda0000000000000000000000000000000000000000000000000000000014806103ca57507fffffffff0000000000000000000000000000000000000000000000000000000082167f439fab9100000000000000000000000000000000000000000000000000000000145b8061041657507fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000145b80610425575061042582610fff565b92915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015461046481611095565b61046e838361109f565b50505050565b6001600160a01b03811633146104b6576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104c08282611190565b505050565b5f806104cf611252565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156104fb5750825b90505f8267ffffffffffffffff1660011480156105175750303b155b905081158015610525575080155b1561055c576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156105bd5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b5f878060200190518101906105d29190612149565b80519091506001600160a01b0316610616576040517fa7d26c7300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60208101516001600160a01b031661065a576040517f364467d300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408101516001600160a01b031661069e576040517f3731597600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60608101516001600160a01b03166106e2576040517ff10d418200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80608001515f0361071f576040517f7e0eb2bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80517f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b320080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b039384161782556020808501517f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b32038054841691861691909117905560608501517f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b320180549093169416938417909155604080517f313ce567000000000000000000000000000000000000000000000000000000008152905192935f93909263313ce56792600480820193918290030181865afa158015610830573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061085491906121ba565b6001830180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000060ff8416021790556080840151600284015560408401519091506108b59061127a565b7fbf322f47f534976d35baa3292f4fd04bf379264783a734383401b0e6e51cb16d835f0151846020015185604001518660600151858860800151604051610939969594939291906001600160a01b039687168152948616602086015292851660408501529316606083015260ff92909216608082015260a081019190915260c00190565b60405180910390a1610965604051806020016040528085604001516001600160a01b031681525061128b565b506109947f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc028460400151611190565b506109c37fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d38460400151611190565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc398505050508315610a4b5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b320080546001600160a01b0316338114610ac9578484846040517f3ae4063b000000000000000000000000000000000000000000000000000000008152600401610ac0939291906121da565b60405180910390fd5b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8218403610e1f575f83806020019051810190610b059190612226565b60018481015460808301519293506001600160a01b038116927401000000000000000000000000000000000000000090910460ff16915f91610b48918490611626565b90505f836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b87573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bab91906121ba565b60ff169050828114610bf3576040517fe420d7af0000000000000000000000000000000000000000000000000000000081526004810184905260248101829052604401610ac0565b5f866001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c30573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c549190612312565b90508760020154811115610ca45760028801546040517f86529caa000000000000000000000000000000000000000000000000000000008152600481019190915260248101829052604401610ac0565b825f03610d045785516040517f3ae4063b000000000000000000000000000000000000000000000000000000008152610ac091907f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f821908c906004016121da565b8551610d1c906001600160a01b0387169030866116ad565b600388015486516040517fdb8554fc0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201524260248201525f92919091169063db8554fc90604401602060405180830381865afa158015610d8a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dae9190612312565b905060028114610e115786516040517f3ae4063b000000000000000000000000000000000000000000000000000000008152610ac091907f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f821908d906004016121da565b505050505050505050505050565b610e2a8585856116fc565b5050505050565b610e39611a38565b610e425f611a83565b565b5f807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b5f807f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3200610e68565b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3200610f66610ecc610e44565b60018301546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015610f2d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f519190612312565b60018401546001600160a01b03169190611b0b565b50565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020526040902060010154610fa281611095565b61046e8383611190565b610fb4611a38565b6001600160a01b038116610ff6576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f6004820152602401610ac0565b610f6681611a83565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061042557507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610425565b610f668133611b59565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff16611180575f848152602082815260408083206001600160a01b0387168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556111363390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610425565b5f915050610425565b5092915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff1615611180575f848152602082815260408083206001600160a01b038716808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610425565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610425565b611282611be9565b610f6681611c27565b5f611294611c2f565b81516001600160a01b03166112d5576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61131f7f50a07cb25d0d864370863300b20987dfdae089abad71b607faf639d09d0533917f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b611c37565b6113497f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b80611c37565b6113937f3dd35eca0ca8a128757fa464a5dfa4ad6cc4853cad96dce4e90fdbea4f0a52e37f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d611c37565b6113bd7f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d80611c37565b6114077f54f0af3716c79b30b8c228679d31d77a1a5f526c16af3262730e0a8de4363fed7fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c611c37565b6114317fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c80611c37565b61147b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8217f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02611c37565b6114a57f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc0280611c37565b6114ef7f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e9828697fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3611c37565b6115197fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d380611c37565b6115467f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b835f015161109f565b506115747f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d835f015161109f565b506115a27fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c835f015161109f565b506115d07f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02835f015161109f565b506115fe7fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3835f015161109f565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc392915050565b5f826012111561165a5760128390036001831615611650576116488582611cd8565b9150506116a6565b6116488582611d24565b60128311156116a3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee83016002831615611699576116488582611d4e565b6116488582611d9e565b50825b9392505050565b6116bb848484846001611dcd565b61046e576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610ac0565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a82148061174957507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a4882145b156119b2575f805f7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a85036117a9575f8480602001905181019061178d919061233d565b9050805f015193508060200151925080606001519150506117d5565b5f848060200190518101906117be9190612432565b805160208201516080909201519095509093509150505b80156119aa576001600160a01b03831615801561182857506001600160a01b0382165f9081527f96f78a99f93d631b75bc050854c9b764642c10564e41ed27c197a36ddabb1df9602052604090205460ff165b8061187b57506001600160a01b03821615801561187b57506001600160a01b0383165f9081527f3907f76fa0fb1e5d0f263c5c4fe4316026052cf960c55a1c768106d8b9701c10602052604090205460ff165b1561188857505050505050565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a851480156118ed57506001600160a01b0386165f9081527f6ba48721fcbb2613af13d8285fe9ee4a081f7995464037bb5ea27397912881d2602052604090205460ff165b8061195857507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a488514801561195857506001600160a01b0386165f9081527f29e42896fa6edf5a5d7ff0bcd00acffbece6eb6cc7b44d0807bfd84929cc6e1b602052604090205460ff165b1561196557505050505050565b6040517ffe720f780000000000000000000000000000000000000000000000000000000081526001600160a01b03808516600483015283166024820152604401610ac0565b505050505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038716845290915290205460ff1615611a0057505050565b8282826040517f3ae4063b000000000000000000000000000000000000000000000000000000008152600401610ac0939291906121da565b33611a41610e44565b6001600160a01b031614610e42576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610ac0565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b611b188383836001611e53565b6104c0576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610ac0565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038516845290915290205460ff16611be5576040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015260248101839052604401610ac0565b5050565b611bf1611ece565b610e42576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fb4611be9565b610e42611be9565b7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268005f611c90845f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b5f85815260208490526040808220600101869055519192508491839187917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a450505050565b5f604e8210611cfa578215611cee576001611cf0565b5f5b60ff169050610425565b600a82900a808481611d0e57611d0e6124f4565b0491508082028414611189575060010192915050565b5f604e821015611d465781600a0a8381611d4057611d406124f4565b046116a6565b5f9392505050565b5f604e8210611d6d578215611d64575f19611d66565b5f5b9050610425565b50600a81900a8281029083818381611d8757611d876124f4565b0414611d94575f19611d96565b815b949350505050565b600a81900a611dad818461254e565b9050604e8210610425578215611d4657611dc882600a612645565b6116a6565b6040517f23b872dd000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038781166004528616602452604485905291602083606481808c5af1925060015f51148316611e42578383151615611e36573d5f823e3d81fd5b5f883b113d1516831692505b604052505f60605295945050505050565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f51148316611ec2578383151615611eb6573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b5f611ed7611252565b5468010000000000000000900460ff16919050565b5f60208284031215611efc575f80fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146116a6575f80fd5b5f60208284031215611f3b575f80fd5b5035919050565b6001600160a01b0381168114610f66575f80fd5b5f8060408385031215611f67575f80fd5b823591506020830135611f7981611f42565b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60405160a0810167ffffffffffffffff81118282101715611fd457611fd4611f84565b60405290565b60405160c0810167ffffffffffffffff81118282101715611fd457611fd4611f84565b604051601f8201601f1916810167ffffffffffffffff8111828210171561202657612026611f84565b604052919050565b5f67ffffffffffffffff82111561204757612047611f84565b50601f01601f191660200190565b5f82601f830112612064575f80fd5b81356120776120728261202e565b611ffd565b81815284602083860101111561208b575f80fd5b816020850160208301375f918101602001919091529392505050565b5f602082840312156120b7575f80fd5b813567ffffffffffffffff8111156120cd575f80fd5b611d9684828501612055565b5f805f606084860312156120eb575f80fd5b83356120f681611f42565b925060208401359150604084013567ffffffffffffffff811115612118575f80fd5b61212486828701612055565b9150509250925092565b5f6020828403121561213e575f80fd5b81356116a681611f42565b5f60a08284031215612159575f80fd5b612161611fb1565b825161216c81611f42565b8152602083015161217c81611f42565b6020820152604083015161218f81611f42565b604082015260608301516121a281611f42565b60608201526080928301519281019290925250919050565b5f602082840312156121ca575f80fd5b815160ff811681146116a6575f80fd5b6001600160a01b0384168152826020820152606060408201525f82518060608401528060208501608085015e5f608082850101526080601f19601f830116840101915050949350505050565b5f6020808385031215612237575f80fd5b825167ffffffffffffffff8082111561224e575f80fd5b9084019060c08287031215612261575f80fd5b612269611fda565b825161227481611f42565b81528284015161228381611f42565b80858301525060408301516040820152606083015160608201526080830151608082015260a0830151828111156122b8575f80fd5b80840193505086601f8401126122cc575f80fd5b825191506122dc6120728361202e565b82815287858486010111156122ef575f80fd5b828585018683015e5f8584830101528060a0830152508094505050505092915050565b5f60208284031215612322575f80fd5b5051919050565b80518015158114612338575f80fd5b919050565b5f6080828403121561234d575f80fd5b6040516080810181811067ffffffffffffffff8211171561237057612370611f84565b604052825161237e81611f42565b8152602083015161238e81611f42565b6020820152604083810151908201526123a960608401612329565b60608201529392505050565b5f82601f8301126123c4575f80fd5b8151602067ffffffffffffffff8211156123e0576123e0611f84565b8160051b6123ef828201611ffd565b9283528481018201928281019087851115612408575f80fd5b83870192505b848310156124275782518252918301919083019061240e565b979650505050505050565b5f60208284031215612442575f80fd5b815167ffffffffffffffff80821115612459575f80fd5b9083019060a0828603121561246c575f80fd5b612474611fb1565b825161247f81611f42565b8152602083015161248f81611f42565b60208201526040830151828111156124a5575f80fd5b6124b1878286016123b5565b6040830152506060830151828111156124c8575f80fd5b6124d4878286016123b5565b6060830152506124e660808401612329565b608082015295945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b808202811582820484141761042557610425612521565b600181815b8085111561259f57815f190482111561258557612585612521565b8085161561259257918102915b93841c939080029061256a565b509250929050565b5f826125b557506001610425565b816125c157505f610425565b81600181146125d757600281146125e1576125fd565b6001915050610425565b60ff8411156125f2576125f2612521565b50506001821b610425565b5060208310610133831016604e8410600b8410161715612620575081810a610425565b61262a8383612565565b805f190482111561263d5761263d612521565b029392505050565b5f6116a683836125a756"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b5060043610610115575f3560e01c806359f89dda116100ad578063a086e1751161007d578063a4c9d30011610063578063a4c9d3001461030a578063d547741f14610312578063f2fde38b14610325575f80fd5b8063a086e175146102fb578063a217fddf14610303575f80fd5b806359f89dda14610281578063715018a6146102945780638da5cb5b1461029c57806391d14854146102a4575f80fd5b80633013ce29116100e85780633013ce29146101c8578063325cd7961461020c57806336568abe1461025b578063439fab911461026e575f80fd5b806301ffc9a71461011957806304a0db2014610141578063248a9ca3146101725780632f2ff15d146101b3575b5f80fd5b61012c610127366004611eec565b610338565b60405190151581526020015b60405180910390f35b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3202545b604051908152602001610138565b610164610180366004611f2b565b5f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b6101c66101c1366004611f56565b61042b565b005b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3201546001600160a01b03165b6040516001600160a01b039091168152602001610138565b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b32015474010000000000000000000000000000000000000000900460ff1660405160ff9091168152602001610138565b6101c6610269366004611f56565b610474565b61016461027c3660046120a7565b6104c5565b6101c661028f3660046120d9565b610a55565b6101c6610e31565b6101f4610e44565b61012c6102b2366004611f56565b5f9182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6101f4610e78565b6101645f81565b6101c6610ea0565b6101c6610320366004611f56565b610f69565b6101c661033336600461212e565b610fac565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f59f89dda0000000000000000000000000000000000000000000000000000000014806103ca57507fffffffff0000000000000000000000000000000000000000000000000000000082167f439fab9100000000000000000000000000000000000000000000000000000000145b8061041657507fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000145b80610425575061042582610fff565b92915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015461046481611095565b61046e838361109f565b50505050565b6001600160a01b03811633146104b6576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104c08282611190565b505050565b5f806104cf611252565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156104fb5750825b90505f8267ffffffffffffffff1660011480156105175750303b155b905081158015610525575080155b1561055c576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156105bd5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b5f878060200190518101906105d29190612149565b80519091506001600160a01b0316610616576040517fa7d26c7300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60208101516001600160a01b031661065a576040517f364467d300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408101516001600160a01b031661069e576040517f3731597600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60608101516001600160a01b03166106e2576040517ff10d418200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80608001515f0361071f576040517f7e0eb2bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80517f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b320080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b039384161782556020808501517f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b32038054841691861691909117905560608501517f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b320180549093169416938417909155604080517f313ce567000000000000000000000000000000000000000000000000000000008152905192935f93909263313ce56792600480820193918290030181865afa158015610830573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061085491906121ba565b6001830180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000060ff8416021790556080840151600284015560408401519091506108b59061127a565b7fbf322f47f534976d35baa3292f4fd04bf379264783a734383401b0e6e51cb16d835f0151846020015185604001518660600151858860800151604051610939969594939291906001600160a01b039687168152948616602086015292851660408501529316606083015260ff92909216608082015260a081019190915260c00190565b60405180910390a1610965604051806020016040528085604001516001600160a01b031681525061128b565b506109947f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc028460400151611190565b506109c37fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d38460400151611190565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc398505050508315610a4b5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b320080546001600160a01b0316338114610ac9578484846040517f3ae4063b000000000000000000000000000000000000000000000000000000008152600401610ac0939291906121da565b60405180910390fd5b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8218403610e1f575f83806020019051810190610b059190612226565b60018481015460808301519293506001600160a01b038116927401000000000000000000000000000000000000000090910460ff16915f91610b48918490611626565b90505f836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b87573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bab91906121ba565b60ff169050828114610bf3576040517fe420d7af0000000000000000000000000000000000000000000000000000000081526004810184905260248101829052604401610ac0565b5f866001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c30573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c549190612312565b90508760020154811115610ca45760028801546040517f86529caa000000000000000000000000000000000000000000000000000000008152600481019190915260248101829052604401610ac0565b825f03610d045785516040517f3ae4063b000000000000000000000000000000000000000000000000000000008152610ac091907f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f821908c906004016121da565b8551610d1c906001600160a01b0387169030866116ad565b600388015486516040517fdb8554fc0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201524260248201525f92919091169063db8554fc90604401602060405180830381865afa158015610d8a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dae9190612312565b905060028114610e115786516040517f3ae4063b000000000000000000000000000000000000000000000000000000008152610ac091907f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f821908d906004016121da565b505050505050505050505050565b610e2a8585856116fc565b5050505050565b610e39611a38565b610e425f611a83565b565b5f807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b5f807f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3200610e68565b7f8fe11d932915502a5df2182ac99faeb149787a3fda1afc79ff772fdaf26b3200610f66610ecc610e44565b60018301546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015610f2d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f519190612312565b60018401546001600160a01b03169190611b0b565b50565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020526040902060010154610fa281611095565b61046e8383611190565b610fb4611a38565b6001600160a01b038116610ff6576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f6004820152602401610ac0565b610f6681611a83565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061042557507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610425565b610f668133611b59565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff16611180575f848152602082815260408083206001600160a01b0387168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556111363390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610425565b5f915050610425565b5092915050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff1615611180575f848152602082815260408083206001600160a01b038716808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610425565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610425565b611282611be9565b610f6681611c27565b5f611294611c2f565b81516001600160a01b03166112d5576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61131f7f50a07cb25d0d864370863300b20987dfdae089abad71b607faf639d09d0533917f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b611c37565b6113497f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b80611c37565b6113937f3dd35eca0ca8a128757fa464a5dfa4ad6cc4853cad96dce4e90fdbea4f0a52e37f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d611c37565b6113bd7f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d80611c37565b6114077f54f0af3716c79b30b8c228679d31d77a1a5f526c16af3262730e0a8de4363fed7fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c611c37565b6114317fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c80611c37565b61147b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8217f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02611c37565b6114a57f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc0280611c37565b6114ef7f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e9828697fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3611c37565b6115197fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d380611c37565b6115467f48ece560b6811ee496fa3dedc7d5be3dfce8c5eb8f1cc18626507e158a23169b835f015161109f565b506115747f4fa4167c411e3d3edd62f8bf767cb8c66f94f891502ddab57e7c55ca1d7d891d835f015161109f565b506115a27fe5c740c26fb65f0a8de546defe3fe0011d5f2292abe6c4e6c3833916f4d8f76c835f015161109f565b506115d07f1ae915b310cb86de75afe5db1721d474dd0a8617151f7524866025476454bc02835f015161109f565b506115fe7fa0f4a7675effb97b81a0c9d5b53b44a73019f25c5ec8fda76d7c1ad3920851d3835f015161109f565b507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc392915050565b5f826012111561165a5760128390036001831615611650576116488582611cd8565b9150506116a6565b6116488582611d24565b60128311156116a3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee83016002831615611699576116488582611d4e565b6116488582611d9e565b50825b9392505050565b6116bb848484846001611dcd565b61046e576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610ac0565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a82148061174957507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a4882145b156119b2575f805f7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a85036117a9575f8480602001905181019061178d919061233d565b9050805f015193508060200151925080606001519150506117d5565b5f848060200190518101906117be9190612432565b805160208201516080909201519095509093509150505b80156119aa576001600160a01b03831615801561182857506001600160a01b0382165f9081527f96f78a99f93d631b75bc050854c9b764642c10564e41ed27c197a36ddabb1df9602052604090205460ff165b8061187b57506001600160a01b03821615801561187b57506001600160a01b0383165f9081527f3907f76fa0fb1e5d0f263c5c4fe4316026052cf960c55a1c768106d8b9701c10602052604090205460ff165b1561188857505050505050565b7f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a851480156118ed57506001600160a01b0386165f9081527f6ba48721fcbb2613af13d8285fe9ee4a081f7995464037bb5ea27397912881d2602052604090205460ff165b8061195857507f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a488514801561195857506001600160a01b0386165f9081527f29e42896fa6edf5a5d7ff0bcd00acffbece6eb6cc7b44d0807bfd84929cc6e1b602052604090205460ff165b1561196557505050505050565b6040517ffe720f780000000000000000000000000000000000000000000000000000000081526001600160a01b03808516600483015283166024820152604401610ac0565b505050505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038716845290915290205460ff1615611a0057505050565b8282826040517f3ae4063b000000000000000000000000000000000000000000000000000000008152600401610ac0939291906121da565b33611a41610e44565b6001600160a01b031614610e42576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610ac0565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b611b188383836001611e53565b6104c0576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610ac0565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038516845290915290205460ff16611be5576040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015260248101839052604401610ac0565b5050565b611bf1611ece565b610e42576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fb4611be9565b610e42611be9565b7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268005f611c90845f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b5f85815260208490526040808220600101869055519192508491839187917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a450505050565b5f604e8210611cfa578215611cee576001611cf0565b5f5b60ff169050610425565b600a82900a808481611d0e57611d0e6124f4565b0491508082028414611189575060010192915050565b5f604e821015611d465781600a0a8381611d4057611d406124f4565b046116a6565b5f9392505050565b5f604e8210611d6d578215611d64575f19611d66565b5f5b9050610425565b50600a81900a8281029083818381611d8757611d876124f4565b0414611d94575f19611d96565b815b949350505050565b600a81900a611dad818461254e565b9050604e8210610425578215611d4657611dc882600a612645565b6116a6565b6040517f23b872dd000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038781166004528616602452604485905291602083606481808c5af1925060015f51148316611e42578383151615611e36573d5f823e3d81fd5b5f883b113d1516831692505b604052505f60605295945050505050565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f51148316611ec2578383151615611eb6573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b5f611ed7611252565b5468010000000000000000900460ff16919050565b5f60208284031215611efc575f80fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146116a6575f80fd5b5f60208284031215611f3b575f80fd5b5035919050565b6001600160a01b0381168114610f66575f80fd5b5f8060408385031215611f67575f80fd5b823591506020830135611f7981611f42565b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60405160a0810167ffffffffffffffff81118282101715611fd457611fd4611f84565b60405290565b60405160c0810167ffffffffffffffff81118282101715611fd457611fd4611f84565b604051601f8201601f1916810167ffffffffffffffff8111828210171561202657612026611f84565b604052919050565b5f67ffffffffffffffff82111561204757612047611f84565b50601f01601f191660200190565b5f82601f830112612064575f80fd5b81356120776120728261202e565b611ffd565b81815284602083860101111561208b575f80fd5b816020850160208301375f918101602001919091529392505050565b5f602082840312156120b7575f80fd5b813567ffffffffffffffff8111156120cd575f80fd5b611d9684828501612055565b5f805f606084860312156120eb575f80fd5b83356120f681611f42565b925060208401359150604084013567ffffffffffffffff811115612118575f80fd5b61212486828701612055565b9150509250925092565b5f6020828403121561213e575f80fd5b81356116a681611f42565b5f60a08284031215612159575f80fd5b612161611fb1565b825161216c81611f42565b8152602083015161217c81611f42565b6020820152604083015161218f81611f42565b604082015260608301516121a281611f42565b60608201526080928301519281019290925250919050565b5f602082840312156121ca575f80fd5b815160ff811681146116a6575f80fd5b6001600160a01b0384168152826020820152606060408201525f82518060608401528060208501608085015e5f608082850101526080601f19601f830116840101915050949350505050565b5f6020808385031215612237575f80fd5b825167ffffffffffffffff8082111561224e575f80fd5b9084019060c08287031215612261575f80fd5b612269611fda565b825161227481611f42565b81528284015161228381611f42565b80858301525060408301516040820152606083015160608201526080830151608082015260a0830151828111156122b8575f80fd5b80840193505086601f8401126122cc575f80fd5b825191506122dc6120728361202e565b82815287858486010111156122ef575f80fd5b828585018683015e5f8584830101528060a0830152508094505050505092915050565b5f60208284031215612322575f80fd5b5051919050565b80518015158114612338575f80fd5b919050565b5f6080828403121561234d575f80fd5b6040516080810181811067ffffffffffffffff8211171561237057612370611f84565b604052825161237e81611f42565b8152602083015161238e81611f42565b6020820152604083810151908201526123a960608401612329565b60608201529392505050565b5f82601f8301126123c4575f80fd5b8151602067ffffffffffffffff8211156123e0576123e0611f84565b8160051b6123ef828201611ffd565b9283528481018201928281019087851115612408575f80fd5b83870192505b848310156124275782518252918301919083019061240e565b979650505050505050565b5f60208284031215612442575f80fd5b815167ffffffffffffffff80821115612459575f80fd5b9083019060a0828603121561246c575f80fd5b612474611fb1565b825161247f81611f42565b8152602083015161248f81611f42565b60208201526040830151828111156124a5575f80fd5b6124b1878286016123b5565b6040830152506060830151828111156124c8575f80fd5b6124d4878286016123b5565b6060830152506124e660808401612329565b608082015295945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b808202811582820484141761042557610425612521565b600181815b8085111561259f57815f190482111561258557612585612521565b8085161561259257918102915b93841c939080029061256a565b509250929050565b5f826125b557506001610425565b816125c157505f610425565b81600181146125d757600281146125e1576125fd565b6001915050610425565b60ff8411156125f2576125f2612521565b50506001821b610425565b5060208310610133831016604e8410600b8410161715612620575081810a610425565b61262a8383612565565b805f190482111561263d5761263d612521565b029392505050565b5f6116a683836125a756"; diff --git a/src/generated/0_1_8/StoxReceipt.pointers.sol b/src/generated/0_1_8/StoxReceipt.pointers.sol deleted file mode 100644 index ff38583a..00000000 --- a/src/generated/0_1_8/StoxReceipt.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x06fffbad12ea80897d55aab5d4f1cd3f34f674237db44a148cc133334a0cca54); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x2dF5cFE6d688EF9fF1B7c59A499D254b1527b286); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"6080604052348015600e575f80fd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6136e3806100d65f395ff3fe608060405234801561000f575f80fd5b50600436106100fa575f3560e01c8063481c6a7511610093578063a22cb46511610063578063a22cb46514610232578063c2530e3914610245578063e985e9c514610258578063f242432a146102b2575f80fd5b8063481c6a75146101bd5780634e1273f4146101f75780636d5b3f781461021757806395d89b411461022a575f80fd5b80630e89341c116100ce5780630e89341c14610171578063177769cb146101845780632eb2c2d614610197578063439fab91146101aa575f80fd5b8062fdd58e146100fe57806301ffc9a714610124578063043fa9871461014757806306fdde031461015c575b5f80fd5b61011161010c366004612a49565b6102c5565b6040519081526020015b60405180910390f35b610137610132366004612aa0565b6102e1565b604051901515815260200161011b565b61015a610155366004612b79565b6103c3565b005b61016461046a565b60405161011b9190612c29565b61016461017f366004612c3b565b6104cf565b61015a610192366004612c52565b610580565b61015a6101a5366004612d20565b61058f565b6101116101b8366004612dc7565b6105ae565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc200546040516001600160a01b03909116815260200161011b565b61020a610205366004612e01565b6107ae565b60405161011b9190612eed565b61015a610225366004612eff565b6108c5565b610164610975565b61015a610240366004612f63565b6109c6565b61015a610253366004612eff565b6109d1565b610137610266366004612f9e565b6001600160a01b039182165f9081527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45016020908152604080832093909416825291909152205460ff1690565b61015a6102c0366004612eff565b610a37565b5f6102d883836102d3610a4d565b610ab3565b90505b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a2600000000000000000000000000000000000000000000000000000000148061037357507fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000145b806102db57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146102db565b6103cb610b07565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038816179055856104208686868686610b6e565b6104617fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19169055565b50505050505050565b6060610474610c25565b6040518060400160405280600881526020017f20526563656970740000000000000000000000000000000000000000000000008152506040516020016104bb929190612fe1565b604051602081830303815290604052905090565b60605f6104e56104dd610cd3565b60ff16610d78565b6104ed610c25565b6104f5610e15565b6104fd61046a565b6040516020016105109493929190612ff5565b60408051601f19818403018152828201909152601d82527f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c0000006020830152915061055882610ef5565b604051602001610569929190612fe1565b604051602081830303815290604052915050919050565b61058b338383610f01565b5050565b61059a335b86610f49565b6105a78585858585610ff9565b5050505050565b5f806105b861108c565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156105e45750825b90505f8267ffffffffffffffff1660011480156106005750303b155b90508115801561060e575080155b15610645576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156106a65784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6106bd60405180602001604052805f8152506110b4565b5f7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc20090505f888060200190518101906106f69190613137565b825473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039190911617909155507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc3955083156107a45784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b606081518351146107fd57815183516040517f5b059991000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044015b60405180910390fd5b5f610806610a4d565b90505f845167ffffffffffffffff81111561082357610823612abb565b60405190808252806020026020018201604052801561084c578160200160208202803683370190505b5090505f5b85518110156108bc5761089786828151811061086f5761086f613152565b602002602001015186838151811061088957610889613152565b602002602001015185610ab3565b8282815181106108a9576108a9613152565b6020908102919091010152600101610851565b50949350505050565b6108cd610b07565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03871617905584610920868584610f01565b61092c858585856110c5565b61096d7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19169055565b505050505050565b606061097f610c25565b6040518060400160405280600581526020017f20524350540000000000000000000000000000000000000000000000000000008152506040516020016104bb929190612fe1565b61058b33838361113a565b6109d9610b07565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03871617905584610a2c868584610f01565b61092c85858561124e565b610a4033610594565b6105a78585858585610b6e565b5f306001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a8a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aae9190613137565b905090565b5f80610abf85856112cf565b90505f610aca6112e4565b6001600160a01b0387165f90815260209182526040808220888352909252908120549150610af9838387611345565b5093505050505b9392505050565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc20080546001600160a01b03163314610b6b576040517fc0b2335a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b6001600160a01b038416610bb0576040517f57f447ce0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b038516610bf2576040517f01a835140000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6040805160018082526020820186905281830190815260608201859052608082019092529061046187878484875f6115ed565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc2008054604080517f95d89b410000000000000000000000000000000000000000000000000000000081529051606093926001600160a01b0316916395d89b41916004808301925f9291908290030181865afa158015610ca6573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610ccd919081019061319c565b91505090565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc2008054604080517f313ce56700000000000000000000000000000000000000000000000000000000815290515f93926001600160a01b03169163313ce5679160048083019260209291908290030181865afa158015610d54573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ccd91906131e1565b60605f610d8483611645565b60010190505f8167ffffffffffffffff811115610da357610da3612abb565b6040519080825280601f01601f191660200182016040528015610dcd576020820181803683370190505b5090508181016020015b5f19017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084610dd757509392505050565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc2008054604080517f38d52e0f0000000000000000000000000000000000000000000000000000000081529051606093926001600160a01b0316916338d52e0f9160048083019260209291908290030181865afa158015610e97573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ebb9190613137565b6001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015610ca6573d5f803e3d5ffd5b60606102db825f611726565b805115610f44577fd66d6a9810a5cef78b704e7e04334961e997c81d337f029f74637f060f3d8d65838383604051610f3b93929190613215565b60405180910390a15b505050565b816001600160a01b0316816001600160a01b031614158015610faf57506001600160a01b038082165f9081527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4501602090815260408083209386168352929052205460ff16155b1561058b576040517fe237d9220000000000000000000000000000000000000000000000000000000081526001600160a01b038084166004830152821660248201526044016107f4565b6001600160a01b03841661103b576040517f57f447ce0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b03851661107d576040517f01a835140000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6105a7858585858560016115ed565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006102db565b6110bc6118a5565b610b6b816118e5565b6001600160a01b038416611107576040517f57f447ce0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6040805160018082526020820186905281830190815260608201859052608082019092529061096d5f87848487846115ed565b7f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45006001600160a01b03841661119d576040517f3e31884e0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b0383166111df576040517fced3e1000000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b038481165f818152600184016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a350505050565b6001600160a01b038316611290576040517f01a835140000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b604080516001808252602082018590528183019081526060820184905260a082019092525f608082018181529192916105a791879185908590836115ed565b5f806112db84846118f6565b54949350505050565b5f8060ff1961131460017fedb99b3af8e1c50d494d6f1b4c75245a0b733cb90baa42bfe0e2f5bc8b000f82613259565b60405160200161132691815260200190565b60408051601f1981840301815291905280516020909101201692915050565b6040517f79ba43050000000000000000000000000000000000000000000000000000000081525f9081908490829081906001600160a01b038716906379ba43059061139a90869060039060019060040161326c565b606060405180830381865afa1580156113b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113d991906132a4565b5091509150875f03611496575b5f198214611488576040517f79ba430500000000000000000000000000000000000000000000000000000000815291925082916001600160a01b038716906379ba43059061143e90859060039060019060040161326c565b606060405180830381865afa158015611459573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061147d91906132a4565b5090925090506113e6565b5f83945094505050506115e5565b875b5f1983146115dd5782935060028203611548576040517fb21a2494000000000000000000000000000000000000000000000000000000008152600481018490525f90611538906001600160a01b038a169063b21a2494906024015f60405180830381865afa15801561150c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611533919081019061319c565b61196a565b9050611544828261197f565b9150505b6040517f79ba43050000000000000000000000000000000000000000000000000000000081526001600160a01b038816906379ba43059061159390869060039060019060040161326c565b606060405180830381865afa1580156115ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115d291906132a4565b509093509150611498565b945091925050505b935093915050565b6115f9868686866119fa565b6001600160a01b0385161561096d573381156116225761161d818888888888611a5f565b610461565b6020858101519085015161163a838a8a85858a611bfc565b505050505050505050565b5f807a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061168d577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef810000000083106116b9576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106116d757662386f26fc10000830492506010015b6305f5e10083106116ef576305f5e100830492506008015b612710831061170357612710830492506004015b60648310611715576064830492506002015b600a83106102db5760010192915050565b606082515f03611744575060408051602081019091525f81526102db565b5f826117745760038451600261175a91906132e6565b61176491906132f9565b61176f906004613318565b611799565b6003845160046117849190613318565b61178f9060026132e6565b61179991906132f9565b905060405191507f4142434445464748494a4b4c4d4e4f505152535455565758595a616263646566601f5261067083027f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f18603f526020820181810185865187016020810180515f82525b82841015611857576003840193508351603f8160121c16518753600187019650603f81600c1c16518753600187019650603f8160061c16518753600187019650603f811651875350600186019550611804565b9052508590506118985760038651066001811461187b576002811461188e57611896565b603d6001840353603d6002840353611896565b603d60018403535b505b9183525060405292915050565b6118ad611d46565b6118e3576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6118ed6118a5565b610b6b81611d64565b5f8060ff1961192660017f3a8e79826d53842322cdcc810d4a989eb01ac46cfabfd48dcc021625ce13c2d7613259565b60405160200161193891815260200190565b60408051808303601f1901815291815281516020928301205f9687529290921681528185209585529490945250502090565b5f818060200190518101906102db919061332f565b5f7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8311156119dd576040517fbf463fe9000000000000000000000000000000000000000000000000000000008152600481018490526024016107f4565b5f6108bc6119f46119ee865f611db0565b85611e0a565b5f611e6c565b5f611a03610a4d565b90505f5b8351811015611a5257611a3486858381518110611a2657611a26613152565b602002602001015184611eae565b611a4a85858381518110611a2657611a26613152565b600101611a07565b506105a785858585611fb0565b6001600160a01b0384163b1561096d576040517fbc197c810000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063bc197c8190611abc9089908990889088908890600401613346565b6020604051808303815f875af1925050508015611af6575060408051601f3d908101601f19168201909252611af3918101906133a3565b60015b611b76573d808015611b23576040519150601f19603f3d011682016040523d82523d5f602084013e611b28565b606091505b5080515f03611b6e576040517f57f447ce0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024016107f4565b805160208201fd5b7fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014610461576040517f57f447ce0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024016107f4565b6001600160a01b0384163b1561096d576040517ff23a6e610000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063f23a6e6190611c5990899089908890889088906004016133be565b6020604051808303815f875af1925050508015611c93575060408051601f3d908101601f19168201909252611c90918101906133a3565b60015b611cc0573d808015611b23576040519150601f19603f3d011682016040523d82523d5f602084013e611b28565b7fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014610461576040517f57f447ce0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024016107f4565b5f611d4f61108c565b5468010000000000000000900460ff16919050565b7f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45007f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4502610f44838261347c565b5f805f611dbd8585612063565b9150915080611e02576040517f22c9f7bb00000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016107f4565b509392505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d8480611e4f86868686612169565b915091505f611e5e8383612288565b9a9950505050505050505050565b5f807bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8416601b0b60e085901d611ea08282876122e6565b9350935050505b9250929050565b6001600160a01b038316611ec157505050565b5f611eca6112e4565b6001600160a01b0385165f90815260208281526040808320878452909152812054919250611ef886866112cf565b90505f80611f07838588611345565b91509150838103611f1c575050505050505050565b6001600160a01b0388165f908152602086815260408083208a84529091529020819055818314611f5157611f518888846124ce565b60408051858152602081018390529081018490526060810183905287906001600160a01b038a16907f956b049289f8dbe8716375414d9fa6bf32cde65ec1b7e102623775cacc66a6999060800160405180910390a35050505050505050565b5f611fb96124e2565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc200546040517fe5be7d900000000000000000000000000000000000000000000000000000000081529192506001600160a01b03169063e5be7d909061202a9084908990899089908990600401613538565b5f604051808303815f87803b158015612041575f80fd5b505af1158015612053573d5f803e3d5ffd5b505050506105a785858585612563565b5f601b83900b83148383826120c7577d90e40fbeea1d3a4abc8955e946fe31cdcf66f634e10000000000000000008605156120a757620186a0860595506005850194505b8586601b0b146120c257600a860595508460010194506120a7565b6120dd565b855f036120dd57505f925060019150611ea79050565b848560030b14612139575f8512156120fd57505f9250829150611ea79050565b6040517fd556b11100000000000000000000000000000000000000000000000000000000815260048101839052602481018290526044016107f4565b50507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841660e084901b1791509250929050565b5f8085158415178015612181575f92505f915061227e565b61218b848761357d565b91505f612197886127c7565b90505f6121a3876127c7565b90505f6121b08383612828565b5090505f6f0785ee10d5da46d900f436a0000000008211156121e5576f0785ee10d5da46d900f436a000000000820491506025015b670de0b6b3a764000082111561220657670de0b6b3a7640000820491506012015b633b9aca0082111561221f57633b9aca00820491506009015b61271082111561223457612710820491506004015b811561224857600a82049150600101612234565b612252818761357d565b95506122748b8a61226e878761226987600a613684565b612844565b89612929565b9097509550505050505b5094509492505050565b5f805f6122958585612063565b91509150801580156122a5575081155b15611e02576040517f8eba4d0700000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016107f4565b5f805f85121561232c576040517f4a7d166b00000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016107f4565b845f0361233e57505f905060016115e5565b8460ff8416850185811215612389576040517fd556b11100000000000000000000000000000000000000000000000000000000815260048101889052602481018790526044016107f4565b5f805f8312156123f3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb38312156123ca575f8095509550505050506115e5565b825f03600a0a91508184816123e1576123e1613201565b04955050840290911491506115e59050565b5f8313156124be57604d831315612449576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff881660448201526064016107f4565b82600a0a9150815f198161245f5761245f613201565b048411156124ac576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff881660448201526064016107f4565b50919091029250600191506115e59050565b83600195509550505050506115e5565b5f6124d984846118f6565b91909155505050565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201545f907fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc200906001600160a01b03168061253e57339250505090565b6001909101805473ffffffffffffffffffffffffffffffffffffffff19169055919050565b805182517f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c450091146125cd57825182516040517f5b059991000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016107f4565b335f5b84518110156126e8576020818102868101820151908601909101516001600160a01b0389161561269a575f828152602086815260408083206001600160a01b038d16845290915290205481811015612674576040517f03dee4c50000000000000000000000000000000000000000000000000000000081526001600160a01b038b1660048201526024810182905260448101839052606481018490526084016107f4565b5f838152602087815260408083206001600160a01b038e16845290915290209082900390555b6001600160a01b038816156126de575f828152602086815260408083206001600160a01b038c168452909152812080548392906126d89084906132e6565b90915550505b50506001016125d0565b5083516001036127685760208401515f906020850151909150866001600160a01b0316886001600160a01b0316846001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051612759929190918252602082015260400190565b60405180910390a4505061096d565b846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516127b792919061368f565b60405180910390a4505050505050565b5f80821215612824577f8000000000000000000000000000000000000000000000000000000000000000820361281e57507f8000000000000000000000000000000000000000000000000000000000000000919050565b505f0390565b5090565b5f805f1983850993909202808410938190039390930393915050565b5f805f6128518686612828565b91509150815f036128755783818161286b5761286b613201565b0492505050610b00565b8382106128bf576040517f6c59da120000000000000000000000000000000000000000000000000000000081526004810187905260248101869052604481018590526064016107f4565b5f84868809600186198101871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103025f82900382900490920185841190960395909502919093039390930492909217029150509392505050565b5f805f85871812156129f3577f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8411156129e0576129887f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60016132e6565b84036129b857507f8000000000000000000000000000000000000000000000000000000000000000905081612a2c565b6129c3600a856132f9565b6129cc906136b3565b6129d784600161357d565b91509150612a2c565b6129e9846136b3565b8391509150612a2c565b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841115612a26576129cc600a856132f9565b50829050815b94509492505050565b6001600160a01b0381168114610b6b575f80fd5b5f8060408385031215612a5a575f80fd5b8235612a6581612a35565b946020939093013593505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114610b6b575f80fd5b5f60208284031215612ab0575f80fd5b8135610b0081612a73565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612af857612af8612abb565b604052919050565b5f67ffffffffffffffff821115612b1957612b19612abb565b50601f01601f191660200190565b5f82601f830112612b36575f80fd5b8135612b49612b4482612b00565b612acf565b818152846020838601011115612b5d575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f8060c08789031215612b8e575f80fd5b8635612b9981612a35565b95506020870135612ba981612a35565b94506040870135612bb981612a35565b9350606087013592506080870135915060a087013567ffffffffffffffff811115612be2575f80fd5b612bee89828a01612b27565b9150509295509295509295565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6102d86020830184612bfb565b5f60208284031215612c4b575f80fd5b5035919050565b5f8060408385031215612c63575f80fd5b82359150602083013567ffffffffffffffff811115612c80575f80fd5b612c8c85828601612b27565b9150509250929050565b5f67ffffffffffffffff821115612caf57612caf612abb565b5060051b60200190565b5f82601f830112612cc8575f80fd5b81356020612cd8612b4483612c96565b8083825260208201915060208460051b870101935086841115612cf9575f80fd5b602086015b84811015612d155780358352918301918301612cfe565b509695505050505050565b5f805f805f60a08688031215612d34575f80fd5b8535612d3f81612a35565b94506020860135612d4f81612a35565b9350604086013567ffffffffffffffff80821115612d6b575f80fd5b612d7789838a01612cb9565b94506060880135915080821115612d8c575f80fd5b612d9889838a01612cb9565b93506080880135915080821115612dad575f80fd5b50612dba88828901612b27565b9150509295509295909350565b5f60208284031215612dd7575f80fd5b813567ffffffffffffffff811115612ded575f80fd5b612df984828501612b27565b949350505050565b5f8060408385031215612e12575f80fd5b823567ffffffffffffffff80821115612e29575f80fd5b818501915085601f830112612e3c575f80fd5b81356020612e4c612b4483612c96565b82815260059290921b84018101918181019089841115612e6a575f80fd5b948201945b83861015612e91578535612e8281612a35565b82529482019490820190612e6f565b96505086013592505080821115612ea6575f80fd5b50612c8c85828601612cb9565b5f815180845260208085019450602084015f5b83811015612ee257815187529582019590820190600101612ec6565b509495945050505050565b602081525f6102d86020830184612eb3565b5f805f805f60a08688031215612f13575f80fd5b8535612f1e81612a35565b94506020860135612f2e81612a35565b93506040860135925060608601359150608086013567ffffffffffffffff811115612f57575f80fd5b612dba88828901612b27565b5f8060408385031215612f74575f80fd5b8235612f7f81612a35565b915060208301358015158114612f93575f80fd5b809150509250929050565b5f8060408385031215612faf575f80fd5b8235612fba81612a35565b91506020830135612f9381612a35565b5f81518060208401855e5f93019283525090919050565b5f612df9612fef8386612fca565b84612fca565b7f7b22646563696d616c73223a000000000000000000000000000000000000000081525f613026600c830187612fca565b7f2c226465736372697074696f6e223a2231206f6620746865736520726563656981527f7074732063616e206265206275726e656420616c6f6e67736964652031200000602082015261307c603e820187612fca565b90507f20746f2072656465656d2000000000000000000000000000000000000000000081526130ae600b820186612fca565b90507f2066726f6d20746865207661756c742e222c000000000000000000000000000081527f226e616d65223a220000000000000000000000000000000000000000000000006012820152613106601a820185612fca565b7f227d0000000000000000000000000000000000000000000000000000000000008152600201979650505050505050565b5f60208284031215613147575f80fd5b8151610b0081612a35565b634e487b7160e01b5f52603260045260245ffd5b5f613173612b4484612b00565b9050828152838383011115613186575f80fd5b8282602083015e5f602084830101529392505050565b5f602082840312156131ac575f80fd5b815167ffffffffffffffff8111156131c2575f80fd5b8201601f810184136131d2575f80fd5b612df984825160208401613166565b5f602082840312156131f1575f80fd5b815160ff81168114610b00575f80fd5b634e487b7160e01b5f52601260045260245ffd5b6001600160a01b0384168152826020820152606060408201525f61323c6060830184612bfb565b95945050505050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156102db576102db613245565b83815260208101839052606081016003831061329657634e487b7160e01b5f52602160045260245ffd5b826040830152949350505050565b5f805f606084860312156132b6575f80fd5b8351925060208401519150604084015167ffffffffffffffff811681146132db575f80fd5b809150509250925092565b808201808211156102db576102db613245565b5f8261331357634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176102db576102db613245565b5f6020828403121561333f575f80fd5b5051919050565b5f6001600160a01b03808816835280871660208401525060a0604083015261337160a0830186612eb3565b82810360608401526133838186612eb3565b905082810360808401526133978185612bfb565b98975050505050505050565b5f602082840312156133b3575f80fd5b8151610b0081612a73565b5f6001600160a01b03808816835280871660208401525084604083015283606083015260a060808301526133f560a0830184612bfb565b979650505050505050565b600181811c9082168061341457607f821691505b60208210810361343257634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115610f4457805f5260205f20601f840160051c8101602085101561345d5750805b601f840160051c820191505b818110156105a7575f8155600101613469565b815167ffffffffffffffff81111561349657613496612abb565b6134aa816134a48454613400565b84613438565b602080601f8311600181146134dd575f84156134c65750858301515b5f19600386901b1c1916600185901b17855561096d565b5f85815260208120601f198616915b8281101561350b578886015182559484019460019091019084016134ec565b508582101561352857878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f6001600160a01b038088168352808716602084015280861660408401525060a0606083015261356b60a0830185612eb3565b82810360808401526133978185612eb3565b8082018281125f83128015821682158216171561359c5761359c613245565b505092915050565b600181815b808511156135de57815f19048211156135c4576135c4613245565b808516156135d157918102915b93841c93908002906135a9565b509250929050565b5f826135f4575060016102db565b8161360057505f6102db565b816001811461361657600281146136205761363c565b60019150506102db565b60ff84111561363157613631613245565b50506001821b6102db565b5060208310610133831016604e8410600b841016171561365f575081810a6102db565b61366983836135a4565b805f190482111561367c5761367c613245565b029392505050565b5f6102d883836135e6565b604081525f6136a16040830185612eb3565b828103602084015261323c8185612eb3565b5f7f8000000000000000000000000000000000000000000000000000000000000000820361281e5761281e61324556"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b50600436106100fa575f3560e01c8063481c6a7511610093578063a22cb46511610063578063a22cb46514610232578063c2530e3914610245578063e985e9c514610258578063f242432a146102b2575f80fd5b8063481c6a75146101bd5780634e1273f4146101f75780636d5b3f781461021757806395d89b411461022a575f80fd5b80630e89341c116100ce5780630e89341c14610171578063177769cb146101845780632eb2c2d614610197578063439fab91146101aa575f80fd5b8062fdd58e146100fe57806301ffc9a714610124578063043fa9871461014757806306fdde031461015c575b5f80fd5b61011161010c366004612a49565b6102c5565b6040519081526020015b60405180910390f35b610137610132366004612aa0565b6102e1565b604051901515815260200161011b565b61015a610155366004612b79565b6103c3565b005b61016461046a565b60405161011b9190612c29565b61016461017f366004612c3b565b6104cf565b61015a610192366004612c52565b610580565b61015a6101a5366004612d20565b61058f565b6101116101b8366004612dc7565b6105ae565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc200546040516001600160a01b03909116815260200161011b565b61020a610205366004612e01565b6107ae565b60405161011b9190612eed565b61015a610225366004612eff565b6108c5565b610164610975565b61015a610240366004612f63565b6109c6565b61015a610253366004612eff565b6109d1565b610137610266366004612f9e565b6001600160a01b039182165f9081527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45016020908152604080832093909416825291909152205460ff1690565b61015a6102c0366004612eff565b610a37565b5f6102d883836102d3610a4d565b610ab3565b90505b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a2600000000000000000000000000000000000000000000000000000000148061037357507fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000145b806102db57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146102db565b6103cb610b07565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038816179055856104208686868686610b6e565b6104617fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19169055565b50505050505050565b6060610474610c25565b6040518060400160405280600881526020017f20526563656970740000000000000000000000000000000000000000000000008152506040516020016104bb929190612fe1565b604051602081830303815290604052905090565b60605f6104e56104dd610cd3565b60ff16610d78565b6104ed610c25565b6104f5610e15565b6104fd61046a565b6040516020016105109493929190612ff5565b60408051601f19818403018152828201909152601d82527f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c0000006020830152915061055882610ef5565b604051602001610569929190612fe1565b604051602081830303815290604052915050919050565b61058b338383610f01565b5050565b61059a335b86610f49565b6105a78585858585610ff9565b5050505050565b5f806105b861108c565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156105e45750825b90505f8267ffffffffffffffff1660011480156106005750303b155b90508115801561060e575080155b15610645576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156106a65784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6106bd60405180602001604052805f8152506110b4565b5f7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc20090505f888060200190518101906106f69190613137565b825473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039190911617909155507fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc3955083156107a45784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b606081518351146107fd57815183516040517f5b059991000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044015b60405180910390fd5b5f610806610a4d565b90505f845167ffffffffffffffff81111561082357610823612abb565b60405190808252806020026020018201604052801561084c578160200160208202803683370190505b5090505f5b85518110156108bc5761089786828151811061086f5761086f613152565b602002602001015186838151811061088957610889613152565b602002602001015185610ab3565b8282815181106108a9576108a9613152565b6020908102919091010152600101610851565b50949350505050565b6108cd610b07565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03871617905584610920868584610f01565b61092c858585856110c5565b61096d7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19169055565b505050505050565b606061097f610c25565b6040518060400160405280600581526020017f20524350540000000000000000000000000000000000000000000000000000008152506040516020016104bb929190612fe1565b61058b33838361113a565b6109d9610b07565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03871617905584610a2c868584610f01565b61092c85858561124e565b610a4033610594565b6105a78585858585610b6e565b5f306001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a8a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aae9190613137565b905090565b5f80610abf85856112cf565b90505f610aca6112e4565b6001600160a01b0387165f90815260209182526040808220888352909252908120549150610af9838387611345565b5093505050505b9392505050565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc20080546001600160a01b03163314610b6b576040517fc0b2335a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b6001600160a01b038416610bb0576040517f57f447ce0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b038516610bf2576040517f01a835140000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6040805160018082526020820186905281830190815260608201859052608082019092529061046187878484875f6115ed565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc2008054604080517f95d89b410000000000000000000000000000000000000000000000000000000081529051606093926001600160a01b0316916395d89b41916004808301925f9291908290030181865afa158015610ca6573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610ccd919081019061319c565b91505090565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc2008054604080517f313ce56700000000000000000000000000000000000000000000000000000000815290515f93926001600160a01b03169163313ce5679160048083019260209291908290030181865afa158015610d54573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ccd91906131e1565b60605f610d8483611645565b60010190505f8167ffffffffffffffff811115610da357610da3612abb565b6040519080825280601f01601f191660200182016040528015610dcd576020820181803683370190505b5090508181016020015b5f19017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084610dd757509392505050565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc2008054604080517f38d52e0f0000000000000000000000000000000000000000000000000000000081529051606093926001600160a01b0316916338d52e0f9160048083019260209291908290030181865afa158015610e97573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ebb9190613137565b6001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015610ca6573d5f803e3d5ffd5b60606102db825f611726565b805115610f44577fd66d6a9810a5cef78b704e7e04334961e997c81d337f029f74637f060f3d8d65838383604051610f3b93929190613215565b60405180910390a15b505050565b816001600160a01b0316816001600160a01b031614158015610faf57506001600160a01b038082165f9081527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4501602090815260408083209386168352929052205460ff16155b1561058b576040517fe237d9220000000000000000000000000000000000000000000000000000000081526001600160a01b038084166004830152821660248201526044016107f4565b6001600160a01b03841661103b576040517f57f447ce0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b03851661107d576040517f01a835140000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6105a7858585858560016115ed565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006102db565b6110bc6118a5565b610b6b816118e5565b6001600160a01b038416611107576040517f57f447ce0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6040805160018082526020820186905281830190815260608201859052608082019092529061096d5f87848487846115ed565b7f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45006001600160a01b03841661119d576040517f3e31884e0000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b0383166111df576040517fced3e1000000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b6001600160a01b038481165f818152600184016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a350505050565b6001600160a01b038316611290576040517f01a835140000000000000000000000000000000000000000000000000000000081525f60048201526024016107f4565b604080516001808252602082018590528183019081526060820184905260a082019092525f608082018181529192916105a791879185908590836115ed565b5f806112db84846118f6565b54949350505050565b5f8060ff1961131460017fedb99b3af8e1c50d494d6f1b4c75245a0b733cb90baa42bfe0e2f5bc8b000f82613259565b60405160200161132691815260200190565b60408051601f1981840301815291905280516020909101201692915050565b6040517f79ba43050000000000000000000000000000000000000000000000000000000081525f9081908490829081906001600160a01b038716906379ba43059061139a90869060039060019060040161326c565b606060405180830381865afa1580156113b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113d991906132a4565b5091509150875f03611496575b5f198214611488576040517f79ba430500000000000000000000000000000000000000000000000000000000815291925082916001600160a01b038716906379ba43059061143e90859060039060019060040161326c565b606060405180830381865afa158015611459573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061147d91906132a4565b5090925090506113e6565b5f83945094505050506115e5565b875b5f1983146115dd5782935060028203611548576040517fb21a2494000000000000000000000000000000000000000000000000000000008152600481018490525f90611538906001600160a01b038a169063b21a2494906024015f60405180830381865afa15801561150c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611533919081019061319c565b61196a565b9050611544828261197f565b9150505b6040517f79ba43050000000000000000000000000000000000000000000000000000000081526001600160a01b038816906379ba43059061159390869060039060019060040161326c565b606060405180830381865afa1580156115ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115d291906132a4565b509093509150611498565b945091925050505b935093915050565b6115f9868686866119fa565b6001600160a01b0385161561096d573381156116225761161d818888888888611a5f565b610461565b6020858101519085015161163a838a8a85858a611bfc565b505050505050505050565b5f807a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061168d577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef810000000083106116b9576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106116d757662386f26fc10000830492506010015b6305f5e10083106116ef576305f5e100830492506008015b612710831061170357612710830492506004015b60648310611715576064830492506002015b600a83106102db5760010192915050565b606082515f03611744575060408051602081019091525f81526102db565b5f826117745760038451600261175a91906132e6565b61176491906132f9565b61176f906004613318565b611799565b6003845160046117849190613318565b61178f9060026132e6565b61179991906132f9565b905060405191507f4142434445464748494a4b4c4d4e4f505152535455565758595a616263646566601f5261067083027f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f18603f526020820181810185865187016020810180515f82525b82841015611857576003840193508351603f8160121c16518753600187019650603f81600c1c16518753600187019650603f8160061c16518753600187019650603f811651875350600186019550611804565b9052508590506118985760038651066001811461187b576002811461188e57611896565b603d6001840353603d6002840353611896565b603d60018403535b505b9183525060405292915050565b6118ad611d46565b6118e3576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6118ed6118a5565b610b6b81611d64565b5f8060ff1961192660017f3a8e79826d53842322cdcc810d4a989eb01ac46cfabfd48dcc021625ce13c2d7613259565b60405160200161193891815260200190565b60408051808303601f1901815291815281516020928301205f9687529290921681528185209585529490945250502090565b5f818060200190518101906102db919061332f565b5f7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8311156119dd576040517fbf463fe9000000000000000000000000000000000000000000000000000000008152600481018490526024016107f4565b5f6108bc6119f46119ee865f611db0565b85611e0a565b5f611e6c565b5f611a03610a4d565b90505f5b8351811015611a5257611a3486858381518110611a2657611a26613152565b602002602001015184611eae565b611a4a85858381518110611a2657611a26613152565b600101611a07565b506105a785858585611fb0565b6001600160a01b0384163b1561096d576040517fbc197c810000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063bc197c8190611abc9089908990889088908890600401613346565b6020604051808303815f875af1925050508015611af6575060408051601f3d908101601f19168201909252611af3918101906133a3565b60015b611b76573d808015611b23576040519150601f19603f3d011682016040523d82523d5f602084013e611b28565b606091505b5080515f03611b6e576040517f57f447ce0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024016107f4565b805160208201fd5b7fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014610461576040517f57f447ce0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024016107f4565b6001600160a01b0384163b1561096d576040517ff23a6e610000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063f23a6e6190611c5990899089908890889088906004016133be565b6020604051808303815f875af1925050508015611c93575060408051601f3d908101601f19168201909252611c90918101906133a3565b60015b611cc0573d808015611b23576040519150601f19603f3d011682016040523d82523d5f602084013e611b28565b7fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014610461576040517f57f447ce0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024016107f4565b5f611d4f61108c565b5468010000000000000000900460ff16919050565b7f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45007f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4502610f44838261347c565b5f805f611dbd8585612063565b9150915080611e02576040517f22c9f7bb00000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016107f4565b509392505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d8480611e4f86868686612169565b915091505f611e5e8383612288565b9a9950505050505050505050565b5f807bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8416601b0b60e085901d611ea08282876122e6565b9350935050505b9250929050565b6001600160a01b038316611ec157505050565b5f611eca6112e4565b6001600160a01b0385165f90815260208281526040808320878452909152812054919250611ef886866112cf565b90505f80611f07838588611345565b91509150838103611f1c575050505050505050565b6001600160a01b0388165f908152602086815260408083208a84529091529020819055818314611f5157611f518888846124ce565b60408051858152602081018390529081018490526060810183905287906001600160a01b038a16907f956b049289f8dbe8716375414d9fa6bf32cde65ec1b7e102623775cacc66a6999060800160405180910390a35050505050505050565b5f611fb96124e2565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc200546040517fe5be7d900000000000000000000000000000000000000000000000000000000081529192506001600160a01b03169063e5be7d909061202a9084908990899089908990600401613538565b5f604051808303815f87803b158015612041575f80fd5b505af1158015612053573d5f803e3d5ffd5b505050506105a785858585612563565b5f601b83900b83148383826120c7577d90e40fbeea1d3a4abc8955e946fe31cdcf66f634e10000000000000000008605156120a757620186a0860595506005850194505b8586601b0b146120c257600a860595508460010194506120a7565b6120dd565b855f036120dd57505f925060019150611ea79050565b848560030b14612139575f8512156120fd57505f9250829150611ea79050565b6040517fd556b11100000000000000000000000000000000000000000000000000000000815260048101839052602481018290526044016107f4565b50507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841660e084901b1791509250929050565b5f8085158415178015612181575f92505f915061227e565b61218b848761357d565b91505f612197886127c7565b90505f6121a3876127c7565b90505f6121b08383612828565b5090505f6f0785ee10d5da46d900f436a0000000008211156121e5576f0785ee10d5da46d900f436a000000000820491506025015b670de0b6b3a764000082111561220657670de0b6b3a7640000820491506012015b633b9aca0082111561221f57633b9aca00820491506009015b61271082111561223457612710820491506004015b811561224857600a82049150600101612234565b612252818761357d565b95506122748b8a61226e878761226987600a613684565b612844565b89612929565b9097509550505050505b5094509492505050565b5f805f6122958585612063565b91509150801580156122a5575081155b15611e02576040517f8eba4d0700000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016107f4565b5f805f85121561232c576040517f4a7d166b00000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016107f4565b845f0361233e57505f905060016115e5565b8460ff8416850185811215612389576040517fd556b11100000000000000000000000000000000000000000000000000000000815260048101889052602481018790526044016107f4565b5f805f8312156123f3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb38312156123ca575f8095509550505050506115e5565b825f03600a0a91508184816123e1576123e1613201565b04955050840290911491506115e59050565b5f8313156124be57604d831315612449576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff881660448201526064016107f4565b82600a0a9150815f198161245f5761245f613201565b048411156124ac576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff881660448201526064016107f4565b50919091029250600191506115e59050565b83600195509550505050506115e5565b5f6124d984846118f6565b91909155505050565b7fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc201545f907fe5444a702a2f437387f4eb075af275e349f1dba9a68923d27352f035d01dc200906001600160a01b03168061253e57339250505090565b6001909101805473ffffffffffffffffffffffffffffffffffffffff19169055919050565b805182517f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c450091146125cd57825182516040517f5b059991000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016107f4565b335f5b84518110156126e8576020818102868101820151908601909101516001600160a01b0389161561269a575f828152602086815260408083206001600160a01b038d16845290915290205481811015612674576040517f03dee4c50000000000000000000000000000000000000000000000000000000081526001600160a01b038b1660048201526024810182905260448101839052606481018490526084016107f4565b5f838152602087815260408083206001600160a01b038e16845290915290209082900390555b6001600160a01b038816156126de575f828152602086815260408083206001600160a01b038c168452909152812080548392906126d89084906132e6565b90915550505b50506001016125d0565b5083516001036127685760208401515f906020850151909150866001600160a01b0316886001600160a01b0316846001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051612759929190918252602082015260400190565b60405180910390a4505061096d565b846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516127b792919061368f565b60405180910390a4505050505050565b5f80821215612824577f8000000000000000000000000000000000000000000000000000000000000000820361281e57507f8000000000000000000000000000000000000000000000000000000000000000919050565b505f0390565b5090565b5f805f1983850993909202808410938190039390930393915050565b5f805f6128518686612828565b91509150815f036128755783818161286b5761286b613201565b0492505050610b00565b8382106128bf576040517f6c59da120000000000000000000000000000000000000000000000000000000081526004810187905260248101869052604481018590526064016107f4565b5f84868809600186198101871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103025f82900382900490920185841190960395909502919093039390930492909217029150509392505050565b5f805f85871812156129f3577f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8411156129e0576129887f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60016132e6565b84036129b857507f8000000000000000000000000000000000000000000000000000000000000000905081612a2c565b6129c3600a856132f9565b6129cc906136b3565b6129d784600161357d565b91509150612a2c565b6129e9846136b3565b8391509150612a2c565b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841115612a26576129cc600a856132f9565b50829050815b94509492505050565b6001600160a01b0381168114610b6b575f80fd5b5f8060408385031215612a5a575f80fd5b8235612a6581612a35565b946020939093013593505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114610b6b575f80fd5b5f60208284031215612ab0575f80fd5b8135610b0081612a73565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612af857612af8612abb565b604052919050565b5f67ffffffffffffffff821115612b1957612b19612abb565b50601f01601f191660200190565b5f82601f830112612b36575f80fd5b8135612b49612b4482612b00565b612acf565b818152846020838601011115612b5d575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f8060c08789031215612b8e575f80fd5b8635612b9981612a35565b95506020870135612ba981612a35565b94506040870135612bb981612a35565b9350606087013592506080870135915060a087013567ffffffffffffffff811115612be2575f80fd5b612bee89828a01612b27565b9150509295509295509295565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6102d86020830184612bfb565b5f60208284031215612c4b575f80fd5b5035919050565b5f8060408385031215612c63575f80fd5b82359150602083013567ffffffffffffffff811115612c80575f80fd5b612c8c85828601612b27565b9150509250929050565b5f67ffffffffffffffff821115612caf57612caf612abb565b5060051b60200190565b5f82601f830112612cc8575f80fd5b81356020612cd8612b4483612c96565b8083825260208201915060208460051b870101935086841115612cf9575f80fd5b602086015b84811015612d155780358352918301918301612cfe565b509695505050505050565b5f805f805f60a08688031215612d34575f80fd5b8535612d3f81612a35565b94506020860135612d4f81612a35565b9350604086013567ffffffffffffffff80821115612d6b575f80fd5b612d7789838a01612cb9565b94506060880135915080821115612d8c575f80fd5b612d9889838a01612cb9565b93506080880135915080821115612dad575f80fd5b50612dba88828901612b27565b9150509295509295909350565b5f60208284031215612dd7575f80fd5b813567ffffffffffffffff811115612ded575f80fd5b612df984828501612b27565b949350505050565b5f8060408385031215612e12575f80fd5b823567ffffffffffffffff80821115612e29575f80fd5b818501915085601f830112612e3c575f80fd5b81356020612e4c612b4483612c96565b82815260059290921b84018101918181019089841115612e6a575f80fd5b948201945b83861015612e91578535612e8281612a35565b82529482019490820190612e6f565b96505086013592505080821115612ea6575f80fd5b50612c8c85828601612cb9565b5f815180845260208085019450602084015f5b83811015612ee257815187529582019590820190600101612ec6565b509495945050505050565b602081525f6102d86020830184612eb3565b5f805f805f60a08688031215612f13575f80fd5b8535612f1e81612a35565b94506020860135612f2e81612a35565b93506040860135925060608601359150608086013567ffffffffffffffff811115612f57575f80fd5b612dba88828901612b27565b5f8060408385031215612f74575f80fd5b8235612f7f81612a35565b915060208301358015158114612f93575f80fd5b809150509250929050565b5f8060408385031215612faf575f80fd5b8235612fba81612a35565b91506020830135612f9381612a35565b5f81518060208401855e5f93019283525090919050565b5f612df9612fef8386612fca565b84612fca565b7f7b22646563696d616c73223a000000000000000000000000000000000000000081525f613026600c830187612fca565b7f2c226465736372697074696f6e223a2231206f6620746865736520726563656981527f7074732063616e206265206275726e656420616c6f6e67736964652031200000602082015261307c603e820187612fca565b90507f20746f2072656465656d2000000000000000000000000000000000000000000081526130ae600b820186612fca565b90507f2066726f6d20746865207661756c742e222c000000000000000000000000000081527f226e616d65223a220000000000000000000000000000000000000000000000006012820152613106601a820185612fca565b7f227d0000000000000000000000000000000000000000000000000000000000008152600201979650505050505050565b5f60208284031215613147575f80fd5b8151610b0081612a35565b634e487b7160e01b5f52603260045260245ffd5b5f613173612b4484612b00565b9050828152838383011115613186575f80fd5b8282602083015e5f602084830101529392505050565b5f602082840312156131ac575f80fd5b815167ffffffffffffffff8111156131c2575f80fd5b8201601f810184136131d2575f80fd5b612df984825160208401613166565b5f602082840312156131f1575f80fd5b815160ff81168114610b00575f80fd5b634e487b7160e01b5f52601260045260245ffd5b6001600160a01b0384168152826020820152606060408201525f61323c6060830184612bfb565b95945050505050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156102db576102db613245565b83815260208101839052606081016003831061329657634e487b7160e01b5f52602160045260245ffd5b826040830152949350505050565b5f805f606084860312156132b6575f80fd5b8351925060208401519150604084015167ffffffffffffffff811681146132db575f80fd5b809150509250925092565b808201808211156102db576102db613245565b5f8261331357634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176102db576102db613245565b5f6020828403121561333f575f80fd5b5051919050565b5f6001600160a01b03808816835280871660208401525060a0604083015261337160a0830186612eb3565b82810360608401526133838186612eb3565b905082810360808401526133978185612bfb565b98975050505050505050565b5f602082840312156133b3575f80fd5b8151610b0081612a73565b5f6001600160a01b03808816835280871660208401525084604083015283606083015260a060808301526133f560a0830184612bfb565b979650505050505050565b600181811c9082168061341457607f821691505b60208210810361343257634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115610f4457805f5260205f20601f840160051c8101602085101561345d5750805b601f840160051c820191505b818110156105a7575f8155600101613469565b815167ffffffffffffffff81111561349657613496612abb565b6134aa816134a48454613400565b84613438565b602080601f8311600181146134dd575f84156134c65750858301515b5f19600386901b1c1916600185901b17855561096d565b5f85815260208120601f198616915b8281101561350b578886015182559484019460019091019084016134ec565b508582101561352857878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f6001600160a01b038088168352808716602084015280861660408401525060a0606083015261356b60a0830185612eb3565b82810360808401526133978185612eb3565b8082018281125f83128015821682158216171561359c5761359c613245565b505092915050565b600181815b808511156135de57815f19048211156135c4576135c4613245565b808516156135d157918102915b93841c93908002906135a9565b509250929050565b5f826135f4575060016102db565b8161360057505f6102db565b816001811461361657600281146136205761363c565b60019150506102db565b60ff84111561363157613631613245565b50506001821b6102db565b5060208310610133831016604e8410600b841016171561365f575081810a6102db565b61366983836135a4565b805f190482111561367c5761367c613245565b029392505050565b5f6102d883836135e6565b604081525f6136a16040830185612eb3565b828103602084015261323c8185612eb3565b5f7f8000000000000000000000000000000000000000000000000000000000000000820361281e5761281e61324556"; diff --git a/src/generated/0_1_8/StoxReceiptVault.pointers.sol b/src/generated/0_1_8/StoxReceiptVault.pointers.sol deleted file mode 100644 index 95c52050..00000000 --- a/src/generated/0_1_8/StoxReceiptVault.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x22aa77aa9ffec4d290a8cacbcd8444b85761b6a1fb77c3f1b1a73490a7d9f972); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0xD7f91c1C6e6e651Ec3F1Fd707aF7CbB7526206e1); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"608060405234801561000f575f80fd5b5060017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005561003c610041565b6100f3565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100915760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100f05780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b615ffa806101005f395ff3fe608060405260043610610337575f3560e01c8063715018a6116101af578063bbec4d06116100eb578063dd62ed3e11610094578063e70689f51161006e578063e70689f5146109ab578063f2fde38b146109ca578063f5647943146109e9578063f5d214f514610a1e5761033e565b8063dd62ed3e146108ed578063e1e6b89814610950578063e5be7d901461098c5761033e565b8063c77b66c2116100c5578063c77b66c2146108b3578063d09edf31146108c6578063db2088f4146108da5761033e565b8063bbec4d0614610875578063c54cafee14610894578063c63d75b6146105635761033e565b80638da5cb5b11610158578063a9059cbb11610132578063a9059cbb146107b8578063ac9650d8146107d7578063ae57de0c14610803578063ae98b39f146108225761033e565b80638da5cb5b14610771578063921a4c421461078557806395d89b41146107a45761033e565b80637a7af70d116101895780637a7af70d1461072057806381c3fcb91461073357806385b68756146107525761033e565b8063715018a6146106ce578063770afee1146106e2578063786cd916146107015761033e565b8063276b11401161027e5780634abe413711610227578063633ac71711610201578063633ac7171461061e5780636ba235211461063d5780636c876b941461069057806370a08231146106af5761033e565b80634abe4137146105c157806356db02e8146105e057806359f89dda146105ff5761033e565b8063402d267d11610258578063402d267d14610563578063439fab9114610583578063488bd7b0146105a25761033e565b8063276b1140146104fe578063313ce5671461051157806338d52e0f146105375761033e565b806318160ddd116102e05780631f6759d3116102ba5780631f6759d31461048d57806323b872dd146104c05780632755c6c7146104df5761033e565b806318160ddd1461043b578063181e7b3b1461044f5780631e4344a11461046e5761033e565b806306fdde031161031157806306fdde03146103e8578063095ea7b3146104095780631423feba146104285761033e565b806301e1d1141461037357806301ffc9a71461039a578063058a628f146103c95761033e565b3661033e57005b73b7e24412126ad6a2ce19cbd79fd11b68e7f30cf6365f80375f80365f845af43d5f803e80801561036d573d5ff35b3d5ffd5b005b34801561037e575f80fd5b50610387610a51565b6040519081526020015b60405180910390f35b3480156103a5575f80fd5b506103b96103b4366004614f0e565b610a5f565b6040519015158152602001610391565b3480156103d4575f80fd5b506103716103e3366004614f61565b610aba565b3480156103f3575f80fd5b506103fc610ce3565b6040516103919190614faa565b348015610414575f80fd5b506103b9610423366004614fbc565b610db6565b610387610436366004615109565b610dcd565b348015610446575f80fd5b50610387610e17565b34801561045a575f80fd5b50610387610469366004615168565b610e20565b348015610479575f80fd5b50610371610488366004615188565b610e3f565b348015610498575f80fd5b507f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70054610387565b3480156104cb575f80fd5b506103b96104da36600461519f565b610ecb565b3480156104ea575f80fd5b506103716104f9366004614fbc565b610eee565b61038761050c366004615168565b611028565b34801561051c575f80fd5b50610525611053565b60405160ff9091168152602001610391565b348015610542575f80fd5b5061054b6110f8565b6040516001600160a01b039091168152602001610391565b34801561056e575f80fd5b5061038761057d366004614f61565b505f1990565b34801561058e575f80fd5b5061038761059d3660046151dd565b61112c565b3480156105ad575f80fd5b506103876105bc366004615168565b6113d1565b3480156105cc575f80fd5b506103876105db366004614fbc565b6113e9565b3480156105eb575f80fd5b506103876105fa36600461520f565b6114a3565b34801561060a575f80fd5b50610371610619366004615256565b6117e4565b348015610629575f80fd5b50610371610638366004614f61565b61181c565b348015610648575f80fd5b50610387610657366004614f61565b6001600160a01b03165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be701602052604090205490565b34801561069b575f80fd5b506103716106aa366004614f61565b611949565b3480156106ba575f80fd5b506103876106c9366004614f61565b611a49565b3480156106d9575f80fd5b50610371611a92565b3480156106ed575f80fd5b506103876106fc366004615256565b611aa5565b34801561070c575f80fd5b5061037161071b366004614fbc565b611c5f565b61038761072e366004615168565b611d90565b34801561073e575f80fd5b5061037161074d3660046151dd565b611da5565b34801561075d575f80fd5b5061038761076c366004614fbc565b611de1565b34801561077c575f80fd5b5061054b611ec4565b348015610790575f80fd5b5061038761079f3660046152ab565b611ecd565b3480156107af575f80fd5b506103fc611efa565b3480156107c3575f80fd5b506103b96107d2366004614fbc565b611f4b565b3480156107e2575f80fd5b506107f66107f136600461531c565b611f58565b604051610391919061538b565b34801561080e575f80fd5b5061038761081d3660046152ab565b61203e565b34801561082d575f80fd5b5061038761083c366004614f61565b6001600160a01b03165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be702602052604090205490565b348015610880575f80fd5b5061038761088f366004615168565b612061565b34801561089f575f80fd5b506103876108ae366004615449565b61206f565b6103876108c1366004615109565b612157565b3480156108d1575f80fd5b5061054b612186565b6103876108e8366004615168565b6121ae565b3480156108f8575f80fd5b506103876109073660046154ae565b6001600160a01b039182165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b34801561095b575f80fd5b507f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031661054b565b348015610997575f80fd5b506103716109a6366004615557565b6121c2565b3480156109b6575f80fd5b506103716109c53660046155ed565b6122f9565b3480156109d5575f80fd5b506103716109e4366004614f61565b612462565b3480156109f4575f80fd5b507fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd025442116103b9565b348015610a29575f80fd5b507fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0154610387565b5f610a5a610e17565b905090565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f59f89dda000000000000000000000000000000000000000000000000000000001480610ab45750610ab4826124b8565b92915050565b6040517f248a9ca30000000000000000000000000000000000000000000000000000000081527ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f8960048201525f906001600160a01b0383169063248a9ca390602401602060405180830381865afa158015610b37573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b5b9190615645565b905080610bca576040517f76728ed90000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201527ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f8960248201526044015b60405180910390fd5b6040517f248a9ca30000000000000000000000000000000000000000000000000000000081527f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e760048201525f906001600160a01b0384169063248a9ca390602401602060405180830381865afa158015610c47573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c6b9190615645565b905080610cd5576040517f76728ed90000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201527f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e76024820152604401610bc1565b610cde836125e6565b505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0380546060917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0091610d349061565c565b80601f0160208091040260200160405190810160405280929190818152602001828054610d609061565c565b8015610dab5780601f10610d8257610100808354040283529160200191610dab565b820191905f5260205f20905b815481529060010190602001808311610d8e57829003601f168201915b505050505091505090565b5f33610dc38185856125f7565b5060019392505050565b5f80610dd7612604565b90505f610df187610deb335b89865f61265b565b8761266f565b9050610e008787838588612685565b610e0b335b476128ac565b9150505b949350505050565b5f610a5a612955565b5f610e3883670de0b6b3a7640000612ab4565b612ab4565b9392505050565b610e47612ac0565b7f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be7008054821115610e75578181555b7fff9fd4facd8bd30d905cc7ffbd03e8829a414df4c6554d155d132c3377868a42610e9e611ec4565b8254604080516001600160a01b039093168352602083018690528201526060015b60405180910390a15050565b5f33610ed8858285612b0b565b610ee3858585612bbf565b506001949350505050565b610ef6612ac0565b805f03610f3a576040517f5a6084530000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610bc1565b6001600160a01b0382165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70260205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70090821115610fb7576001600160a01b0383165f90815260028201602052604090208290555b7fa1e5b368dc99c8558f28b1e7e8cb7ab542c989a4b697628ba7bfffe0aeaccffd610fe0611ec4565b6001600160a01b038581165f818152600286016020908152604091829020548251959094168552840191909152820185905260608201526080015b60405180910390a1505050565b5f8061104884611042335b3361103c612604565b5f61265b565b85612c4e565b9050610e3833610e05565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f308970152310243260080545f91906001600160a01b0316803b806110905760126110f0565b816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110f091906156a7565b935050505090565b5f807f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f30897015231024326005b546001600160a01b031692915050565b5f80611136612c65565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156111625750825b90505f8267ffffffffffffffff16600114801561117e5750303b155b90508115801561118c575080155b156111c3576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156112245784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b61122c612c8d565b5f878060200190518101906112419190615714565b90506112508160200151612cc6565b6020810151516001600160a01b031615611296576040517f8951799200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80516001600160a01b03166112d7576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6112e030612e39565b80516112eb90612f99565b7ffa89761502e992c8c755fba778ced00f4562485023f656906eb76f5dd65a9fe53360408051808201825284516001600160a01b0316815260208086015190820152905161133a92919061580b565b60405180910390a17fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc396505083156113c75784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b5f610e38836113e4335b3386600161265b565b613021565b5f61141b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031690565b6040517efdd58e0000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015260248201859052919091169062fdd58e90604401602060405180830381865afa15801561147f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e389190615645565b5f6114ac61302e565b825f036114e5576040517f312497b000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6115a98461151b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031690565b6040517efdd58e0000000000000000000000000000000000000000000000000000000081526001600160a01b038a81166004830152602482018a9052919091169062fdd58e90604401602060405180830381865afa15801561157f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115a39190615645565b9061305c565b905080156116c6577f88e2280ece62e9296d3578b77647db2c11f9fa7e42578e2db5d4262123ffae3e3387878785886040516115ea969594939291906158af565b60405180910390a17f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b03166001600160a01b031663043fa98733883360405160e085901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b03938416600482015291831660248301529091166044820152606481018890526084810184905260c060a48201525f60c482015260e4015f604051808303815f87803b1580156116af575f80fd5b505af11580156116c1573d5f803e3d5ffd5b505050505b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f3dd35eca0ca8a128757fa464a5dfa4ad6cc4853cad96dce4e90fdbea4f0a52e36040518060a001604052808c6001600160a01b031681526020018b81526020018a81526020018781526020018981525060405160200161175d91906158f8565b6040516020818303038152906040526040518463ffffffff1660e01b815260040161178a93929190615943565b5f604051808303815f87803b1580156117a1575f80fd5b505af11580156117b3573d5f803e3d5ffd5b5093945050505050610e0f60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b8282826040517f3ae4063b000000000000000000000000000000000000000000000000000000008152600401610bc193929190615943565b611824612ac0565b6001600160a01b0381165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70260205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be7009042116118d9576001600160a01b0382165f818152600283016020526040908190205490517f81a7897700000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610bc1565b6001600160a01b0382165f9081526002820160205260408120557fa1e5b368dc99c8558f28b1e7e8cb7ab542c989a4b697628ba7bfffe0aeaccffd61191c611ec4565b604080516001600160a01b03928316815291851660208301525f9082018190526060820152608001610ebf565b611951612ac0565b6001600160a01b0381165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70160205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be700904211611a06576001600160a01b0382165f818152600183016020526040908190205490517ff1b01b5400000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610bc1565b6001600160a01b0382165f9081526001820160205260408120557fd08871fffa9d03c01fcba597af5dfbe64cb26f207debdae1af2532695447499161191c611ec4565b5f80611a548361306b565b90505f611a5f61307e565b6001600160a01b0385165f90815260038201602052604081205491925090611a889084906130df565b5095945050505050565b611a9a612ac0565b611aa35f612f99565b565b5f611aae61302e565b825f03611ae7576040517f312497b000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f611af5846115a387611a49565b90508015611b47577f3fc1c49e72362e91416388fe7a107b92db924642476e83e701eeeb6256d7249e3386868487604051611b3495949392919061596a565b60405180910390a1611b47853383612bbf565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f54f0af3716c79b30b8c228679d31d77a1a5f526c16af3262730e0a8de4363fed60405180608001604052808b6001600160a01b031681526020018a815260200187815260200189815250604051602001611bd891906159a1565b6040516020818303038152906040526040518463ffffffff1660e01b8152600401611c0593929190615943565b5f604051808303815f87803b158015611c1c575f80fd5b505af1158015611c2e573d5f803e3d5ffd5b5093945050505050610e3860017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b611c67612ac0565b805f03611cab576040517ffd86061b0000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610bc1565b6001600160a01b0382165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70160205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70090821115611d28576001600160a01b0383165f90815260018201602052604090208290555b7fd08871fffa9d03c01fcba597af5dfbe64cb26f207debdae1af25326954474991611d51611ec4565b6001600160a01b038581165f8181526001860160209081526040918290205482519590941685528401919091528201859052606082015260800161101b565b5f8061104884611d9f33611033565b8561266f565b7fdaffad82f53a38a62340f14cdd6fd3b437c5dcda6b32029dac1e661dbce28b2d3382604051611dd69291906159e2565b60405180910390a150565b5f80611df0848585600161265b565b9050805f03611e02575f915050610ab4565b610e0f611e367f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031690565b6040517efdd58e0000000000000000000000000000000000000000000000000000000081526001600160a01b03878116600483015260248201879052919091169062fdd58e90604401602060405180830381865afa158015611e9a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ebe9190615645565b82612ab4565b5f610a5a61318d565b5f80611ee087610e33878988600161265b565b9050611ef08187878a88886131b5565b9695505050505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0480546060917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0091610d349061565c565b5f33610dc3818585612bbf565b604080515f8152602081019091526060908267ffffffffffffffff811115611f8257611f82614fe6565b604051908082528060200260200182016040528015611fb557816020015b6060815260200190600190039081611fa05790505b5091505f5b838110156120365761201130868684818110611fd857611fd8615a43565b9050602002810190611fea9190615a70565b85604051602001611ffd93929190615ad1565b60405160208183030381529060405261357b565b83828151811061202357612023615a43565b6020908102919091010152600101611fba565b505092915050565b5f80612051876113e4878988600161265b565b9050611ef08787878488886131b5565b5f610e3883610e33336113db565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd01545f907fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd00908511156120f1576040517fe4a4718200000000000000000000000000000000000000000000000000000000815260048101869052602401610bc1565b5f61210888612102338a8a5f61265b565b5f61266f565b905061214c8888838989898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061268592505050565b979650505050505050565b5f80612161612604565b90505f6121778761217133610de3565b87612c4e565b9050610e008187898588612685565b5f807fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0061111c565b5f8061104884670de0b6b3a7640000612102565b6121cf8585858585613616565b6121d98484613679565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080546040805160a0810182526001600160a01b0388811682528781166020830152918101869052606081018590529116906359f89dda9088907f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a4890608081016122837fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0254421190565b151590526040516122979190602001615b2e565b6040516020818303038152906040526040518463ffffffff1660e01b81526004016122c493929190615943565b5f604051808303815f87803b1580156122db575f80fd5b505af11580156122ed573d5f803e3d5ffd5b50505050505050505050565b835f03612332576040517f8672985d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0090505f6040518060a001604052808360020154815260200183600201548152602001878152602001861515815260200185858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152505050915250905084806123cc5750816002015486115b156123e05760028201869055602081018690525b7f7ef5cae78e9bd364afb19bb0f8a881a6d156e35a119e28c0d17524e5079581583387878787604051612417959493929190615ba0565b60405180910390a181546001600160a01b03166359f89dda337f50a07cb25d0d864370863300b20987dfdae089abad71b607faf639d09d053391846040516020016122979190615bee565b61246a612ac0565b6001600160a01b0381166124ac576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6124b581612f99565b50565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fe5be7d9000000000000000000000000000000000000000000000000000000000148061254a57507fffffffff0000000000000000000000000000000000000000000000000000000082167f439fab9100000000000000000000000000000000000000000000000000000000145b8061259657507fffffffff0000000000000000000000000000000000000000000000000000000082167fe1e6b89800000000000000000000000000000000000000000000000000000000145b80610ab457507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610ab4565b6125ee612ac0565b6124b581612e39565b610cde8383836001613739565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd01545f907fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0090612655906001615c32565b91505090565b5f670de0b6b3a76400005b95945050505050565b5f61267a8284613861565b610e0f84845f6138a5565b61268d61302e565b845f036126c6576040517fc7838b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825f036126ff576040517ffc8c806300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03841661273f576040517f6ba9ecd800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f0361277a576040517fe4a471820000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b7f3377bcbed49a0c0005e53931cd8fe7334b5371523e5de784c0d0d3d01089cfea3385878686866040516127b3969594939291906158af565b60405180910390a16127c885858585856138ba565b6127d28484613915565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546040517f6d5b3f780000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690636d5b3f7890612842903390889087908990889060040161596a565b5f604051808303815f87803b158015612859575f80fd5b505af115801561286b573d5f803e3d5ffd5b5050505061287c8585858585613962565b6128a560017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5050505050565b804710156128ef576040517fcf47918100000000000000000000000000000000000000000000000000000000815247600482015260248101829052604401610bc1565b612908828260405180602001604052805f815250613a0e565b15612911575050565b3d156129235761291f613a23565b5050565b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8061295f61307e565b60028101549091505f0361297557612655613a2e565b5f6129845f1960036001613a93565b90505f5b5f198214610e38575f8360020183815481106129a6576129a6615a43565b905f5260205f2090600502015f0154905060028103612a83575f612a738560020185815481106129d8576129d8615a43565b905f5260205f20906005020160040180546129f29061565c565b80601f0160208091040260200160405190810160405280929190818152602001828054612a1e9061565c565b8015612a695780601f10612a4057610100808354040283529160200191612a69565b820191905f5260205f20905b815481529060010190602001808311612a4c57829003601f168201915b5050505050613b8e565b9050612a7f8382613ba3565b9250505b5f838152600485016020526040902054612a9d9083615c32565b9150612aac8360036001613a93565b925050612988565b5f610e38838383613c27565b33612ac9611ec4565b6001600160a01b031614611aa3576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610bc1565b6001600160a01b038381165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160209081526040808320938616835292905220545f19811015612bb95781811015612bab576040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201526024810182905260448101839052606401610bc1565b612bb984848484035f613739565b50505050565b6001600160a01b038316612c01576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6001600160a01b038216612c43576040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b610cde838383613c3c565b5f612c598284613861565b610e0f84846001613c27565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610ab4565b425f03611aa3576040517f789a532d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612cce613c8f565b612ce081602001518260400151613c97565b80517f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f308970152310243260080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b0393841617825560608401517f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601805490921693169283179055604080517f481c6a75000000000000000000000000000000000000000000000000000000008152905191925f92909163481c6a759160048083019260209291908290030181865afa158015612dc0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612de49190615c45565b90506001600160a01b0381163014610cde576040517f7935475e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b0382166024820152604401610bc1565b6040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f59f89dda0000000000000000000000000000000000000000000000000000000060048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa158015612eb4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ed89190615c60565b612f0e576040517ffd12061600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03831690811782556040805133815260208101929092527fa8c713fe8fb360697fc0daab836d85208a605d485fbc265aea0f773fc6cdd71a9101610ebf565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f610e38838360016138a5565b613036613ca9565b60027f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5f828218828410028218610e38565b5f8061307683613d04565b549392505050565b5f8060ff196130ae60017f2f8f8ecf1b7a1a3ceda8d15a9a2247a2377b3434535a87f1728021c13fec2e71615a30565b6040516020016130c091815260200190565b60408051601f1981840301815291905280516020909101201692915050565b5f8082816130eb61307e565b9050855f6130fc8760036001613a93565b90505b5f19811461317e57925082811580159061313c5750600283600201828154811061312b5761312b615a43565b905f5260205f2090600502015f0154145b1561316a575f61315a8460020183815481106129d8576129d8615a43565b90506131668382613ba3565b9250505b6131778160036001613a93565b90506130ff565b509350909150505b9250929050565b5f807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930061111c565b6131bd61302e565b855f036131f6576040517fc7838b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825f0361322f576040517ffc8c806300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03851661326f576040517f6ba9ecd800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0384166132af576040517f9905827b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f036132eb576040517fe4a4718200000000000000000000000000000000000000000000000000000000815260048101839052602401610bc1565b7f2845b9458bcc357e1abfe8de7f6832dfe7220596a053496b33d0deb6577d8d2a338686898787876040516133269796959493929190615c7b565b60405180910390a16001600160a01b038416331461349557613349843385612b0b565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b03166001600160a01b031663e985e9c585336040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa1580156133e5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134099190615c60565b613495576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60448201527f6572206f7220617070726f7665640000000000000000000000000000000000006064820152608401610bc1565b61349f8484613d71565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546040517fc2530e390000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063c2530e399061350f903390889087908990889060040161596a565b5f604051808303815f87803b158015613526575f80fd5b505af1158015613538573d5f803e3d5ffd5b5050505061354a868686868686613dbe565b61357360017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b505050505050565b60605f6135888484613ec7565b90508080156135a957505f3d11806135a957505f846001600160a01b03163b115b156135be576135b6613eda565b915050610ab4565b8015613601576040517f9996b3150000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610bc1565b3d156129235761360f613a23565b5092915050565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031633146128a5576040517f8813aac300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be700805442118015906136c257506001600160a01b0383165f908152600182016020526040902054155b80156136e557506001600160a01b0382165f908152600282016020526040902054155b15610cde5780546040517f79d7155100000000000000000000000000000000000000000000000000000000815260048101919091526001600160a01b03808516602483015283166044820152606401610bc1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b03851661379c576040517fe602df050000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6001600160a01b0384166137de576040517f94280d620000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6001600160a01b038086165f908152600183016020908152604080832093881683529290522083905581156128a557836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258560405161385291815260200190565b60405180910390a35050505050565b8181101561291f576040517fa3e322340000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610bc1565b5f610e0f8484670de0b6b3a764000085613ef3565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd01547fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd00906139089084613f35565b6001909101555050505050565b6001600160a01b038216613957576040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b61291f5f8383613c3c565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8216040518060c001604052806139cb3390565b6001600160a01b031681526020018a6001600160a01b031681526020018881526020018b8152602001898152602001878152506040516020016122979190615d20565b5f805f83516020850186885af1949350505050565b6040513d5f823e3d81fd5b5f8060ff19613a5e60017fb750591399365444a618527b69a54ce09476c8bde1ecff60f5aa1fe2b52605ff615a30565b604051602001613a7091815260200190565b60408051808303601f190181529190528051602090910120166002015492915050565b5f600783168103613ad0576040517fbf3cad0b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f613ad961307e565b60028101549091505f03613af1575f19915050610e38565b5f5f198614613b2457816002018681548110613b0f57613b0f615a43565b905f5260205f20906005020160030154613b27565b81545b90506002846002811115613b3d57613b3d615d32565b03613b5f57613b5682613b508484613f44565b87613fbf565b92505050610e38565b6001846002811115613b7357613b73615d32565b03613b8357613b56828287614017565b611ef0828287613fbf565b5f81806020019051810190610ab49190615645565b5f7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115613c01576040517fbf463fe900000000000000000000000000000000000000000000000000000000815260048101849052602401610bc1565b5f613c1e613c18613c12865f614084565b856140de565b5f614140565b50949350505050565b5f610e0f84670de0b6b3a76400008585613ef3565b613c44614181565b613c4d836141e7565b613c56826141e7565b613c618383836142d4565b6001600160a01b038316613c7857610cde81614434565b6001600160a01b038216610cde57610cde81614477565b611aa36144b1565b613c9f6144b1565b61291f82826144ef565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0054600203611aa3576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8060ff19613d3460017fb750591399365444a618527b69a54ce09476c8bde1ecff60f5aa1fe2b52605ff615a30565b604051602001613d4691815260200190565b60408051601f1981840301815291815281516020928301205f96875292909216905290922092915050565b6001600160a01b038216613db3576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b61291f825f83613c3c565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e9828696040518060c001604052808a6001600160a01b031681526020018b6001600160a01b031681526020018881526020018c815260200189815260200187815250604051602001613e649190615d20565b6040516020818303038152906040526040518463ffffffff1660e01b8152600401613e9193929190615943565b5f604051808303815f87803b158015613ea8575f80fd5b505af1158015613eba573d5f803e3d5ffd5b5050505050505050505050565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b5f613f20613f0083614552565b8015613f1b57505f8480613f1657613f16615d5f565b868809115b151590565b613f2b86868661457e565b6126669190615c32565b5f828218828411028218610e38565b5f5b5f198214158015613f88575042836002018381548110613f6857613f68615a43565b5f91825260209091206001600590920201015467ffffffffffffffff1611155b15613fb957826002018281548110613fa257613fa2615a43565b905f5260205f209060050201600301549150613f46565b50919050565b5f5b5f19831461400d575f846002018481548110613fdf57613fdf615a43565b905f5260205f209060050201905082815f0154165f146140025783915050610e38565b600301549250613fc1565b505f199392505050565b5f5b5f19831461400d575f84600201848154811061403757614037615a43565b5f918252602090912060059091020160018101549091504267ffffffffffffffff9091161115614067575061400d565b80548316156140795783915050610e38565b600301549250614019565b5f805f614091858561462e565b91509150806140d6576040517f22c9f7bb0000000000000000000000000000000000000000000000000000000081526004810186905260248101859052604401610bc1565b509392505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d848061412386868686614734565b915091505f6141328383614853565b9a9950505050505050505050565b5f807bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8416601b0b60e085901d6141748282876148b1565b9350935050509250929050565b5f61418a61307e565b60028101549091505f0361419b5750565b5f6141b0826005015460026001176001613a93565b90505f195b5f1982146141d35750806141cc8160036001613a93565b91506141b5565b5f198114610cde5760058301819055505050565b6001600160a01b0381166141f85750565b5f61420161307e565b6001600160a01b0383165f9081526003820160205260408120549192506142278461306b565b90505f8061423583856130df565b9150915083810361424857505050505050565b6001600160a01b0386165f9081526003860160205260409020819055818314614275576142758683614a9c565b6040805185815260208101839052908101849052606081018390526001600160a01b038716907f36a2eb39b73568d38e98721588b15b309c9380e1b1ab575c2c3d71d5148ccb4a9060800160405180910390a261357384848385614aae565b6142de8383613679565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a6040518060800160405280896001600160a01b03168152602001886001600160a01b0316815260200187815260200161438e7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0254421190565b151590526040805182516001600160a01b03908116602080840191909152840151168183015290820151606080830191909152909101511515608082015260a0016040516020818303038152906040526040518463ffffffff1660e01b81526004016143fc93929190615943565b5f604051808303815f87803b158015614413575f80fd5b505af1158015614425573d5f803e3d5ffd5b50505050612bb9848484614b0b565b5f61443d61307e565b60028101549091501561291f5760058101545f9081526004820160205260408120805484929061446e908490615c32565b90915550505050565b5f61448061307e565b60028101549091501561291f5760058101545f9081526004820160205260408120805484929061446e908490615a30565b6144b9614b16565b611aa3576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6144f76144b1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace007f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace036145438482615dd0565b5060048101612bb98382615dd0565b5f600282600381111561456757614567615d32565b6145719190615e8c565b60ff166001149050919050565b5f805f61458b8686614b34565b91509150815f036145af578381816145a5576145a5615d5f565b0492505050610e38565b8184116145c6576145c66003851502601118614b50565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010185841190960395909502919093039390930492909217029150509392505050565b5f601b83900b8314838382614692577d90e40fbeea1d3a4abc8955e946fe31cdcf66f634e100000000000000000086051561467257620186a0860595506005850194505b8586601b0b1461468d57600a86059550846001019450614672565b6146a8565b855f036146a857505f9250600191506131869050565b848560030b14614704575f8512156146c857505f92508291506131869050565b6040517fd556b1110000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610bc1565b50507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841660e084901b1791509250929050565b5f808515841517801561474c575f92505f9150614849565b6147568487615ead565b91505f61476288614b61565b90505f61476e87614b61565b90505f61477b8383614b34565b5090505f6f0785ee10d5da46d900f436a0000000008211156147b0576f0785ee10d5da46d900f436a000000000820491506025015b670de0b6b3a76400008211156147d157670de0b6b3a7640000820491506012015b633b9aca008211156147ea57633b9aca00820491506009015b6127108211156147ff57612710820491506004015b811561481357600a820491506001016147ff565b61481d8187615ead565b955061483f8b8a614839878761483487600a615fac565b614bc2565b89614c9d565b9097509550505050505b5094509492505050565b5f805f614860858561462e565b9150915080158015614870575081155b156140d6576040517f8eba4d070000000000000000000000000000000000000000000000000000000081526004810186905260248101859052604401610bc1565b5f805f8512156148f7576040517f4a7d166b0000000000000000000000000000000000000000000000000000000081526004810186905260248101859052604401610bc1565b845f0361490957505f90506001614a94565b8460ff8416850185811215614954576040517fd556b1110000000000000000000000000000000000000000000000000000000081526004810188905260248101879052604401610bc1565b5f805f8312156149be577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb3831215614995575f809550955050505050614a94565b825f03600a0a91508184816149ac576149ac615d5f565b0495505084029091149150614a949050565b5f831315614a8957604d831315614a14576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff88166044820152606401610bc1565b82600a0a9150815f1981614a2a57614a2a615d5f565b04841115614a77576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff88166044820152606401610bc1565b5091909102925060019150614a949050565b509193506001925050505b935093915050565b5f614aa683613d04565b919091555050565b5f614ab761307e565b905083816004015f8781526020019081526020015f205f828254614adb9190615a30565b90915550505f83815260048201602052604081208054849290614aff908490615c32565b90915550505050505050565b610cde838383614da9565b5f614b1f612c65565b5468010000000000000000900460ff16919050565b5f805f1983850993909202808410938190039390930393915050565b634e487b715f52806020526024601cfd5b5f80821215614bbe577f80000000000000000000000000000000000000000000000000000000000000008203614bb857507f8000000000000000000000000000000000000000000000000000000000000000919050565b505f0390565b5090565b5f805f614bcf8686614b34565b91509150815f03614be9578381816145a5576145a5615d5f565b838210614c33576040517f6c59da12000000000000000000000000000000000000000000000000000000008152600481018790526024810186905260448101859052606401610bc1565b5f84868809600186198101871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103025f82900382900490920185841190960395909502919093039390930492909217029150509392505050565b5f805f8587181215614d67577f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841115614d5457614cfc7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001615c32565b8403614d2c57507f8000000000000000000000000000000000000000000000000000000000000000905081614da0565b614d37600a85615fb7565b614d4090615fca565b614d4b846001615ead565b91509150614da0565b614d5d84615fca565b8391509150614da0565b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841115614d9a57614d40600a85615fb7565b50829050815b94509492505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b038416614df65781816002015f828254614deb9190615c32565b90915550614e7f9050565b6001600160a01b0384165f9081526020829052604090205482811015614e61576040517fe450d38c0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024810182905260448101849052606401610bc1565b6001600160a01b0385165f9081526020839052604090209083900390555b6001600160a01b038316614e9d576002810180548390039055614ebb565b6001600160a01b0383165f9081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051614f0091815260200190565b60405180910390a350505050565b5f60208284031215614f1e575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610e38575f80fd5b6001600160a01b03811681146124b5575f80fd5b5f60208284031215614f71575f80fd5b8135610e3881614f4d565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610e386020830184614f7c565b5f8060408385031215614fcd575f80fd5b8235614fd881614f4d565b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff8111828210171561503657615036614fe6565b60405290565b6040516080810167ffffffffffffffff8111828210171561503657615036614fe6565b604051601f8201601f1916810167ffffffffffffffff8111828210171561508857615088614fe6565b604052919050565b5f67ffffffffffffffff8211156150a9576150a9614fe6565b50601f01601f191660200190565b5f82601f8301126150c6575f80fd5b81356150d96150d482615090565b61505f565b8181528460208386010111156150ed575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f806080858703121561511c575f80fd5b84359350602085013561512e81614f4d565b925060408501359150606085013567ffffffffffffffff811115615150575f80fd5b61515c878288016150b7565b91505092959194509250565b5f8060408385031215615179575f80fd5b50508035926020909101359150565b5f60208284031215615198575f80fd5b5035919050565b5f805f606084860312156151b1575f80fd5b83356151bc81614f4d565b925060208401356151cc81614f4d565b929592945050506040919091013590565b5f602082840312156151ed575f80fd5b813567ffffffffffffffff811115615203575f80fd5b610e0f848285016150b7565b5f805f8060808587031215615222575f80fd5b843561522d81614f4d565b93506020850135925060408501359150606085013567ffffffffffffffff811115615150575f80fd5b5f805f60608486031215615268575f80fd5b833561527381614f4d565b925060208401359150604084013567ffffffffffffffff811115615295575f80fd5b6152a1868287016150b7565b9150509250925092565b5f805f805f60a086880312156152bf575f80fd5b8535945060208601356152d181614f4d565b935060408601356152e181614f4d565b925060608601359150608086013567ffffffffffffffff811115615303575f80fd5b61530f888289016150b7565b9150509295509295909350565b5f806020838503121561532d575f80fd5b823567ffffffffffffffff80821115615344575f80fd5b818501915085601f830112615357575f80fd5b813581811115615365575f80fd5b8660208260051b8501011115615379575f80fd5b60209290920196919550909350505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b828110156153fe577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08886030184526153ec858351614f7c565b945092850192908501906001016153b2565b5092979650505050505050565b5f8083601f84011261541b575f80fd5b50813567ffffffffffffffff811115615432575f80fd5b602083019150836020828501011115613186575f80fd5b5f805f805f6080868803121561545d575f80fd5b85359450602086013561546f81614f4d565b935060408601359250606086013567ffffffffffffffff811115615491575f80fd5b61549d8882890161540b565b969995985093965092949392505050565b5f80604083850312156154bf575f80fd5b82356154ca81614f4d565b915060208301356154da81614f4d565b809150509250929050565b5f82601f8301126154f4575f80fd5b8135602067ffffffffffffffff82111561551057615510614fe6565b8160051b61551f82820161505f565b9283528481018201928281019087851115615538575f80fd5b83870192505b8483101561214c5782358252918301919083019061553e565b5f805f805f60a0868803121561556b575f80fd5b853561557681614f4d565b9450602086013561558681614f4d565b9350604086013561559681614f4d565b9250606086013567ffffffffffffffff808211156155b2575f80fd5b6155be89838a016154e5565b935060808801359150808211156155d3575f80fd5b5061530f888289016154e5565b80151581146124b5575f80fd5b5f805f8060608587031215615600575f80fd5b843593506020850135615612816155e0565b9250604085013567ffffffffffffffff81111561562d575f80fd5b6156398782880161540b565b95989497509550505050565b5f60208284031215615655575f80fd5b5051919050565b600181811c9082168061567057607f821691505b602082108103613fb9577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f602082840312156156b7575f80fd5b815160ff81168114610e38575f80fd5b5f82601f8301126156d6575f80fd5b81516156e46150d482615090565b8181528460208386010111156156f8575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f60208284031215615724575f80fd5b815167ffffffffffffffff8082111561573b575f80fd5b908301906040828603121561574e575f80fd5b615756615013565b825161576181614f4d565b8152602083015182811115615774575f80fd5b929092019160808387031215615788575f80fd5b61579061503c565b835161579b81614f4d565b81526020840151838111156157ae575f80fd5b6157ba888287016156c7565b6020830152506040840151838111156157d1575f80fd5b6157dd888287016156c7565b604083015250606084015193506157f384614f4d565b60608101939093526020810192909252509392505050565b5f6001600160a01b038085168352604060208401528084511660408401526020840151604060608501528181511660808501526020810151608060a0860152615858610100860182614f7c565b905060408201517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808683030160c08701526158938282614f7c565b9150508260608301511660e08601528093505050509392505050565b5f6001600160a01b03808916835280881660208401525085604083015284606083015283608083015260c060a08301526158ec60c0830184614f7c565b98975050505050505050565b602081526001600160a01b0382511660208201526020820151604082015260408201516060820152606082015160808201525f608083015160a080840152610e0f60c0840182614f7c565b6001600160a01b0384168152826020820152606060408201525f6126666060830184614f7c565b5f6001600160a01b03808816835280871660208401525084604083015283606083015260a0608083015261214c60a0830184614f7c565b602081526001600160a01b03825116602082015260208201516040820152604082015160608201525f6060830151608080840152610e0f60a0840182614f7c565b6001600160a01b0383168152604060208201525f610e0f6040830184614f7c565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b81810381811115610ab457610ab4615a03565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112615aa3575f80fd5b83018035915067ffffffffffffffff821115615abd575f80fd5b602001915036819003821315613186575f80fd5b828482375f8382015f815283518060208601835e5f910190815295945050505050565b5f815180845260208085019450602084015f5b83811015615b2357815187529582019590820190600101615b07565b509495945050505050565b602081525f6001600160a01b0380845116602084015280602085015116604084015250604083015160a06060840152615b6a60c0840182615af4565b90506060840151601f19848303016080850152615b878282615af4565b9150506080840151151560a08401528091505092915050565b6001600160a01b0386168152846020820152831515604082015260806060820152816080820152818360a08301375f81830160a090810191909152601f909201601f19160101949350505050565b602081528151602082015260208201516040820152604082015160608201526060820151151560808201525f608083015160a080840152610e0f60c0840182614f7c565b80820180821115610ab457610ab4615a03565b5f60208284031215615c55575f80fd5b8151610e3881614f4d565b5f60208284031215615c70575f80fd5b8151610e38816155e0565b5f6001600160a01b03808a16835280891660208401528088166040840152508560608301528460808301528360a083015260e060c0830152615cc060e0830184614f7c565b9998505050505050505050565b5f6001600160a01b038083511684528060208401511660208501525060408201516040840152606082015160608401526080820151608084015260a082015160c060a0850152610e0f60c0850182614f7c565b602081525f610e386020830184615ccd565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b601f821115610cde57805f5260205f20601f840160051c81016020851015615db15750805b601f840160051c820191505b818110156128a5575f8155600101615dbd565b815167ffffffffffffffff811115615dea57615dea614fe6565b615dfe81615df8845461565c565b84615d8c565b602080601f831160018114615e31575f8415615e1a5750858301515b5f19600386901b1c1916600185901b178555613573565b5f85815260208120601f198616915b82811015615e5f57888601518255948401946001909101908401615e40565b5085821015615e7c57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f60ff831680615e9e57615e9e615d5f565b8060ff84160691505092915050565b8082018281125f83128015821682158216171561203657612036615a03565b600181815b80851115615f0657815f1904821115615eec57615eec615a03565b80851615615ef957918102915b93841c9390800290615ed1565b509250929050565b5f82615f1c57506001610ab4565b81615f2857505f610ab4565b8160018114615f3e5760028114615f4857615f64565b6001915050610ab4565b60ff841115615f5957615f59615a03565b50506001821b610ab4565b5060208310610133831016604e8410600b8410161715615f87575081810a610ab4565b615f918383615ecc565b805f1904821115615fa457615fa4615a03565b029392505050565b5f610e388383615f0e565b5f82615fc557615fc5615d5f565b500490565b5f7f80000000000000000000000000000000000000000000000000000000000000008203614bb857614bb8615a0356"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405260043610610337575f3560e01c8063715018a6116101af578063bbec4d06116100eb578063dd62ed3e11610094578063e70689f51161006e578063e70689f5146109ab578063f2fde38b146109ca578063f5647943146109e9578063f5d214f514610a1e5761033e565b8063dd62ed3e146108ed578063e1e6b89814610950578063e5be7d901461098c5761033e565b8063c77b66c2116100c5578063c77b66c2146108b3578063d09edf31146108c6578063db2088f4146108da5761033e565b8063bbec4d0614610875578063c54cafee14610894578063c63d75b6146105635761033e565b80638da5cb5b11610158578063a9059cbb11610132578063a9059cbb146107b8578063ac9650d8146107d7578063ae57de0c14610803578063ae98b39f146108225761033e565b80638da5cb5b14610771578063921a4c421461078557806395d89b41146107a45761033e565b80637a7af70d116101895780637a7af70d1461072057806381c3fcb91461073357806385b68756146107525761033e565b8063715018a6146106ce578063770afee1146106e2578063786cd916146107015761033e565b8063276b11401161027e5780634abe413711610227578063633ac71711610201578063633ac7171461061e5780636ba235211461063d5780636c876b941461069057806370a08231146106af5761033e565b80634abe4137146105c157806356db02e8146105e057806359f89dda146105ff5761033e565b8063402d267d11610258578063402d267d14610563578063439fab9114610583578063488bd7b0146105a25761033e565b8063276b1140146104fe578063313ce5671461051157806338d52e0f146105375761033e565b806318160ddd116102e05780631f6759d3116102ba5780631f6759d31461048d57806323b872dd146104c05780632755c6c7146104df5761033e565b806318160ddd1461043b578063181e7b3b1461044f5780631e4344a11461046e5761033e565b806306fdde031161031157806306fdde03146103e8578063095ea7b3146104095780631423feba146104285761033e565b806301e1d1141461037357806301ffc9a71461039a578063058a628f146103c95761033e565b3661033e57005b73b7e24412126ad6a2ce19cbd79fd11b68e7f30cf6365f80375f80365f845af43d5f803e80801561036d573d5ff35b3d5ffd5b005b34801561037e575f80fd5b50610387610a51565b6040519081526020015b60405180910390f35b3480156103a5575f80fd5b506103b96103b4366004614f0e565b610a5f565b6040519015158152602001610391565b3480156103d4575f80fd5b506103716103e3366004614f61565b610aba565b3480156103f3575f80fd5b506103fc610ce3565b6040516103919190614faa565b348015610414575f80fd5b506103b9610423366004614fbc565b610db6565b610387610436366004615109565b610dcd565b348015610446575f80fd5b50610387610e17565b34801561045a575f80fd5b50610387610469366004615168565b610e20565b348015610479575f80fd5b50610371610488366004615188565b610e3f565b348015610498575f80fd5b507f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70054610387565b3480156104cb575f80fd5b506103b96104da36600461519f565b610ecb565b3480156104ea575f80fd5b506103716104f9366004614fbc565b610eee565b61038761050c366004615168565b611028565b34801561051c575f80fd5b50610525611053565b60405160ff9091168152602001610391565b348015610542575f80fd5b5061054b6110f8565b6040516001600160a01b039091168152602001610391565b34801561056e575f80fd5b5061038761057d366004614f61565b505f1990565b34801561058e575f80fd5b5061038761059d3660046151dd565b61112c565b3480156105ad575f80fd5b506103876105bc366004615168565b6113d1565b3480156105cc575f80fd5b506103876105db366004614fbc565b6113e9565b3480156105eb575f80fd5b506103876105fa36600461520f565b6114a3565b34801561060a575f80fd5b50610371610619366004615256565b6117e4565b348015610629575f80fd5b50610371610638366004614f61565b61181c565b348015610648575f80fd5b50610387610657366004614f61565b6001600160a01b03165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be701602052604090205490565b34801561069b575f80fd5b506103716106aa366004614f61565b611949565b3480156106ba575f80fd5b506103876106c9366004614f61565b611a49565b3480156106d9575f80fd5b50610371611a92565b3480156106ed575f80fd5b506103876106fc366004615256565b611aa5565b34801561070c575f80fd5b5061037161071b366004614fbc565b611c5f565b61038761072e366004615168565b611d90565b34801561073e575f80fd5b5061037161074d3660046151dd565b611da5565b34801561075d575f80fd5b5061038761076c366004614fbc565b611de1565b34801561077c575f80fd5b5061054b611ec4565b348015610790575f80fd5b5061038761079f3660046152ab565b611ecd565b3480156107af575f80fd5b506103fc611efa565b3480156107c3575f80fd5b506103b96107d2366004614fbc565b611f4b565b3480156107e2575f80fd5b506107f66107f136600461531c565b611f58565b604051610391919061538b565b34801561080e575f80fd5b5061038761081d3660046152ab565b61203e565b34801561082d575f80fd5b5061038761083c366004614f61565b6001600160a01b03165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be702602052604090205490565b348015610880575f80fd5b5061038761088f366004615168565b612061565b34801561089f575f80fd5b506103876108ae366004615449565b61206f565b6103876108c1366004615109565b612157565b3480156108d1575f80fd5b5061054b612186565b6103876108e8366004615168565b6121ae565b3480156108f8575f80fd5b506103876109073660046154ae565b6001600160a01b039182165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b34801561095b575f80fd5b507f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031661054b565b348015610997575f80fd5b506103716109a6366004615557565b6121c2565b3480156109b6575f80fd5b506103716109c53660046155ed565b6122f9565b3480156109d5575f80fd5b506103716109e4366004614f61565b612462565b3480156109f4575f80fd5b507fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd025442116103b9565b348015610a29575f80fd5b507fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0154610387565b5f610a5a610e17565b905090565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f59f89dda000000000000000000000000000000000000000000000000000000001480610ab45750610ab4826124b8565b92915050565b6040517f248a9ca30000000000000000000000000000000000000000000000000000000081527ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f8960048201525f906001600160a01b0383169063248a9ca390602401602060405180830381865afa158015610b37573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b5b9190615645565b905080610bca576040517f76728ed90000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201527ffc0b9a47b723baf66339577301d13949cab2da29c3baeaa9cfc1f36c513e8f8960248201526044015b60405180910390fd5b6040517f248a9ca30000000000000000000000000000000000000000000000000000000081527f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e760048201525f906001600160a01b0384169063248a9ca390602401602060405180830381865afa158015610c47573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c6b9190615645565b905080610cd5576040517f76728ed90000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201527f921a3c774c4abecc1bddc4f7beb397fdb2cde7806021d9571086abb74cd023e76024820152604401610bc1565b610cde836125e6565b505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0380546060917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0091610d349061565c565b80601f0160208091040260200160405190810160405280929190818152602001828054610d609061565c565b8015610dab5780601f10610d8257610100808354040283529160200191610dab565b820191905f5260205f20905b815481529060010190602001808311610d8e57829003601f168201915b505050505091505090565b5f33610dc38185856125f7565b5060019392505050565b5f80610dd7612604565b90505f610df187610deb335b89865f61265b565b8761266f565b9050610e008787838588612685565b610e0b335b476128ac565b9150505b949350505050565b5f610a5a612955565b5f610e3883670de0b6b3a7640000612ab4565b612ab4565b9392505050565b610e47612ac0565b7f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be7008054821115610e75578181555b7fff9fd4facd8bd30d905cc7ffbd03e8829a414df4c6554d155d132c3377868a42610e9e611ec4565b8254604080516001600160a01b039093168352602083018690528201526060015b60405180910390a15050565b5f33610ed8858285612b0b565b610ee3858585612bbf565b506001949350505050565b610ef6612ac0565b805f03610f3a576040517f5a6084530000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610bc1565b6001600160a01b0382165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70260205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70090821115610fb7576001600160a01b0383165f90815260028201602052604090208290555b7fa1e5b368dc99c8558f28b1e7e8cb7ab542c989a4b697628ba7bfffe0aeaccffd610fe0611ec4565b6001600160a01b038581165f818152600286016020908152604091829020548251959094168552840191909152820185905260608201526080015b60405180910390a1505050565b5f8061104884611042335b3361103c612604565b5f61265b565b85612c4e565b9050610e3833610e05565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f308970152310243260080545f91906001600160a01b0316803b806110905760126110f0565b816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110f091906156a7565b935050505090565b5f807f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f30897015231024326005b546001600160a01b031692915050565b5f80611136612c65565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156111625750825b90505f8267ffffffffffffffff16600114801561117e5750303b155b90508115801561118c575080155b156111c3576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156112245784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b61122c612c8d565b5f878060200190518101906112419190615714565b90506112508160200151612cc6565b6020810151516001600160a01b031615611296576040517f8951799200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80516001600160a01b03166112d7576040517fd264eed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6112e030612e39565b80516112eb90612f99565b7ffa89761502e992c8c755fba778ced00f4562485023f656906eb76f5dd65a9fe53360408051808201825284516001600160a01b0316815260208086015190820152905161133a92919061580b565b60405180910390a17fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc396505083156113c75784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050919050565b5f610e38836113e4335b3386600161265b565b613021565b5f61141b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031690565b6040517efdd58e0000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015260248201859052919091169062fdd58e90604401602060405180830381865afa15801561147f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e389190615645565b5f6114ac61302e565b825f036114e5576040517f312497b000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6115a98461151b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031690565b6040517efdd58e0000000000000000000000000000000000000000000000000000000081526001600160a01b038a81166004830152602482018a9052919091169062fdd58e90604401602060405180830381865afa15801561157f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115a39190615645565b9061305c565b905080156116c6577f88e2280ece62e9296d3578b77647db2c11f9fa7e42578e2db5d4262123ffae3e3387878785886040516115ea969594939291906158af565b60405180910390a17f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b03166001600160a01b031663043fa98733883360405160e085901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b03938416600482015291831660248301529091166044820152606481018890526084810184905260c060a48201525f60c482015260e4015f604051808303815f87803b1580156116af575f80fd5b505af11580156116c1573d5f803e3d5ffd5b505050505b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f3dd35eca0ca8a128757fa464a5dfa4ad6cc4853cad96dce4e90fdbea4f0a52e36040518060a001604052808c6001600160a01b031681526020018b81526020018a81526020018781526020018981525060405160200161175d91906158f8565b6040516020818303038152906040526040518463ffffffff1660e01b815260040161178a93929190615943565b5f604051808303815f87803b1580156117a1575f80fd5b505af11580156117b3573d5f803e3d5ffd5b5093945050505050610e0f60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b8282826040517f3ae4063b000000000000000000000000000000000000000000000000000000008152600401610bc193929190615943565b611824612ac0565b6001600160a01b0381165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70260205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be7009042116118d9576001600160a01b0382165f818152600283016020526040908190205490517f81a7897700000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610bc1565b6001600160a01b0382165f9081526002820160205260408120557fa1e5b368dc99c8558f28b1e7e8cb7ab542c989a4b697628ba7bfffe0aeaccffd61191c611ec4565b604080516001600160a01b03928316815291851660208301525f9082018190526060820152608001610ebf565b611951612ac0565b6001600160a01b0381165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70160205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be700904211611a06576001600160a01b0382165f818152600183016020526040908190205490517ff1b01b5400000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610bc1565b6001600160a01b0382165f9081526001820160205260408120557fd08871fffa9d03c01fcba597af5dfbe64cb26f207debdae1af2532695447499161191c611ec4565b5f80611a548361306b565b90505f611a5f61307e565b6001600160a01b0385165f90815260038201602052604081205491925090611a889084906130df565b5095945050505050565b611a9a612ac0565b611aa35f612f99565b565b5f611aae61302e565b825f03611ae7576040517f312497b000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f611af5846115a387611a49565b90508015611b47577f3fc1c49e72362e91416388fe7a107b92db924642476e83e701eeeb6256d7249e3386868487604051611b3495949392919061596a565b60405180910390a1611b47853383612bbf565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f54f0af3716c79b30b8c228679d31d77a1a5f526c16af3262730e0a8de4363fed60405180608001604052808b6001600160a01b031681526020018a815260200187815260200189815250604051602001611bd891906159a1565b6040516020818303038152906040526040518463ffffffff1660e01b8152600401611c0593929190615943565b5f604051808303815f87803b158015611c1c575f80fd5b505af1158015611c2e573d5f803e3d5ffd5b5093945050505050610e3860017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b611c67612ac0565b805f03611cab576040517ffd86061b0000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610bc1565b6001600160a01b0382165f9081527f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70160205260409020547f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be70090821115611d28576001600160a01b0383165f90815260018201602052604090208290555b7fd08871fffa9d03c01fcba597af5dfbe64cb26f207debdae1af25326954474991611d51611ec4565b6001600160a01b038581165f8181526001860160209081526040918290205482519590941685528401919091528201859052606082015260800161101b565b5f8061104884611d9f33611033565b8561266f565b7fdaffad82f53a38a62340f14cdd6fd3b437c5dcda6b32029dac1e661dbce28b2d3382604051611dd69291906159e2565b60405180910390a150565b5f80611df0848585600161265b565b9050805f03611e02575f915050610ab4565b610e0f611e367f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031690565b6040517efdd58e0000000000000000000000000000000000000000000000000000000081526001600160a01b03878116600483015260248201879052919091169062fdd58e90604401602060405180830381865afa158015611e9a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ebe9190615645565b82612ab4565b5f610a5a61318d565b5f80611ee087610e33878988600161265b565b9050611ef08187878a88886131b5565b9695505050505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0480546060917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0091610d349061565c565b5f33610dc3818585612bbf565b604080515f8152602081019091526060908267ffffffffffffffff811115611f8257611f82614fe6565b604051908082528060200260200182016040528015611fb557816020015b6060815260200190600190039081611fa05790505b5091505f5b838110156120365761201130868684818110611fd857611fd8615a43565b9050602002810190611fea9190615a70565b85604051602001611ffd93929190615ad1565b60405160208183030381529060405261357b565b83828151811061202357612023615a43565b6020908102919091010152600101611fba565b505092915050565b5f80612051876113e4878988600161265b565b9050611ef08787878488886131b5565b5f610e3883610e33336113db565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd01545f907fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd00908511156120f1576040517fe4a4718200000000000000000000000000000000000000000000000000000000815260048101869052602401610bc1565b5f61210888612102338a8a5f61265b565b5f61266f565b905061214c8888838989898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061268592505050565b979650505050505050565b5f80612161612604565b90505f6121778761217133610de3565b87612c4e565b9050610e008187898588612685565b5f807fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0061111c565b5f8061104884670de0b6b3a7640000612102565b6121cf8585858585613616565b6121d98484613679565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080546040805160a0810182526001600160a01b0388811682528781166020830152918101869052606081018590529116906359f89dda9088907f0e5bce7997400ea2056cf00fe99ca5d6be40bdb9d8b4e41217fe8670c2639a4890608081016122837fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0254421190565b151590526040516122979190602001615b2e565b6040516020818303038152906040526040518463ffffffff1660e01b81526004016122c493929190615943565b5f604051808303815f87803b1580156122db575f80fd5b505af11580156122ed573d5f803e3d5ffd5b50505050505050505050565b835f03612332576040517f8672985d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0090505f6040518060a001604052808360020154815260200183600201548152602001878152602001861515815260200185858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152505050915250905084806123cc5750816002015486115b156123e05760028201869055602081018690525b7f7ef5cae78e9bd364afb19bb0f8a881a6d156e35a119e28c0d17524e5079581583387878787604051612417959493929190615ba0565b60405180910390a181546001600160a01b03166359f89dda337f50a07cb25d0d864370863300b20987dfdae089abad71b607faf639d09d053391846040516020016122979190615bee565b61246a612ac0565b6001600160a01b0381166124ac576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6124b581612f99565b50565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fe5be7d9000000000000000000000000000000000000000000000000000000000148061254a57507fffffffff0000000000000000000000000000000000000000000000000000000082167f439fab9100000000000000000000000000000000000000000000000000000000145b8061259657507fffffffff0000000000000000000000000000000000000000000000000000000082167fe1e6b89800000000000000000000000000000000000000000000000000000000145b80610ab457507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610ab4565b6125ee612ac0565b6124b581612e39565b610cde8383836001613739565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd01545f907fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0090612655906001615c32565b91505090565b5f670de0b6b3a76400005b95945050505050565b5f61267a8284613861565b610e0f84845f6138a5565b61268d61302e565b845f036126c6576040517fc7838b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825f036126ff576040517ffc8c806300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03841661273f576040517f6ba9ecd800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f0361277a576040517fe4a471820000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b7f3377bcbed49a0c0005e53931cd8fe7334b5371523e5de784c0d0d3d01089cfea3385878686866040516127b3969594939291906158af565b60405180910390a16127c885858585856138ba565b6127d28484613915565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546040517f6d5b3f780000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690636d5b3f7890612842903390889087908990889060040161596a565b5f604051808303815f87803b158015612859575f80fd5b505af115801561286b573d5f803e3d5ffd5b5050505061287c8585858585613962565b6128a560017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5050505050565b804710156128ef576040517fcf47918100000000000000000000000000000000000000000000000000000000815247600482015260248101829052604401610bc1565b612908828260405180602001604052805f815250613a0e565b15612911575050565b3d156129235761291f613a23565b5050565b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8061295f61307e565b60028101549091505f0361297557612655613a2e565b5f6129845f1960036001613a93565b90505f5b5f198214610e38575f8360020183815481106129a6576129a6615a43565b905f5260205f2090600502015f0154905060028103612a83575f612a738560020185815481106129d8576129d8615a43565b905f5260205f20906005020160040180546129f29061565c565b80601f0160208091040260200160405190810160405280929190818152602001828054612a1e9061565c565b8015612a695780601f10612a4057610100808354040283529160200191612a69565b820191905f5260205f20905b815481529060010190602001808311612a4c57829003601f168201915b5050505050613b8e565b9050612a7f8382613ba3565b9250505b5f838152600485016020526040902054612a9d9083615c32565b9150612aac8360036001613a93565b925050612988565b5f610e38838383613c27565b33612ac9611ec4565b6001600160a01b031614611aa3576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610bc1565b6001600160a01b038381165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160209081526040808320938616835292905220545f19811015612bb95781811015612bab576040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201526024810182905260448101839052606401610bc1565b612bb984848484035f613739565b50505050565b6001600160a01b038316612c01576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6001600160a01b038216612c43576040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b610cde838383613c3c565b5f612c598284613861565b610e0f84846001613c27565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610ab4565b425f03611aa3576040517f789a532d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612cce613c8f565b612ce081602001518260400151613c97565b80517f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f308970152310243260080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b0393841617825560608401517f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601805490921693169283179055604080517f481c6a75000000000000000000000000000000000000000000000000000000008152905191925f92909163481c6a759160048083019260209291908290030181865afa158015612dc0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612de49190615c45565b90506001600160a01b0381163014610cde576040517f7935475e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b0382166024820152604401610bc1565b6040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f59f89dda0000000000000000000000000000000000000000000000000000000060048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa158015612eb4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ed89190615c60565b612f0e576040517ffd12061600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03831690811782556040805133815260208101929092527fa8c713fe8fb360697fc0daab836d85208a605d485fbc265aea0f773fc6cdd71a9101610ebf565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f610e38838360016138a5565b613036613ca9565b60027f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5f828218828410028218610e38565b5f8061307683613d04565b549392505050565b5f8060ff196130ae60017f2f8f8ecf1b7a1a3ceda8d15a9a2247a2377b3434535a87f1728021c13fec2e71615a30565b6040516020016130c091815260200190565b60408051601f1981840301815291905280516020909101201692915050565b5f8082816130eb61307e565b9050855f6130fc8760036001613a93565b90505b5f19811461317e57925082811580159061313c5750600283600201828154811061312b5761312b615a43565b905f5260205f2090600502015f0154145b1561316a575f61315a8460020183815481106129d8576129d8615a43565b90506131668382613ba3565b9250505b6131778160036001613a93565b90506130ff565b509350909150505b9250929050565b5f807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930061111c565b6131bd61302e565b855f036131f6576040517fc7838b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825f0361322f576040517ffc8c806300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03851661326f576040517f6ba9ecd800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0384166132af576040517f9905827b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f036132eb576040517fe4a4718200000000000000000000000000000000000000000000000000000000815260048101839052602401610bc1565b7f2845b9458bcc357e1abfe8de7f6832dfe7220596a053496b33d0deb6577d8d2a338686898787876040516133269796959493929190615c7b565b60405180910390a16001600160a01b038416331461349557613349843385612b0b565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b03166001600160a01b031663e985e9c585336040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa1580156133e5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134099190615c60565b613495576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60448201527f6572206f7220617070726f7665640000000000000000000000000000000000006064820152608401610bc1565b61349f8484613d71565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546040517fc2530e390000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063c2530e399061350f903390889087908990889060040161596a565b5f604051808303815f87803b158015613526575f80fd5b505af1158015613538573d5f803e3d5ffd5b5050505061354a868686868686613dbe565b61357360017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b505050505050565b60605f6135888484613ec7565b90508080156135a957505f3d11806135a957505f846001600160a01b03163b115b156135be576135b6613eda565b915050610ab4565b8015613601576040517f9996b3150000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610bc1565b3d156129235761360f613a23565b5092915050565b7f8d198d032a58038629cc32dfaad5ea74a8e78fabf390f3089701523102432601546001600160a01b031633146128a5576040517f8813aac300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f04485615b1da6633eec3daf54aadca2a89ef8b155744e223a046f4a6e38be700805442118015906136c257506001600160a01b0383165f908152600182016020526040902054155b80156136e557506001600160a01b0382165f908152600282016020526040902054155b15610cde5780546040517f79d7155100000000000000000000000000000000000000000000000000000000815260048101919091526001600160a01b03808516602483015283166044820152606401610bc1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b03851661379c576040517fe602df050000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6001600160a01b0384166137de576040517f94280d620000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b6001600160a01b038086165f908152600183016020908152604080832093881683529290522083905581156128a557836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258560405161385291815260200190565b60405180910390a35050505050565b8181101561291f576040517fa3e322340000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610bc1565b5f610e0f8484670de0b6b3a764000085613ef3565b7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd01547fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd00906139089084613f35565b6001909101555050505050565b6001600160a01b038216613957576040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b61291f5f8383613c3c565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8216040518060c001604052806139cb3390565b6001600160a01b031681526020018a6001600160a01b031681526020018881526020018b8152602001898152602001878152506040516020016122979190615d20565b5f805f83516020850186885af1949350505050565b6040513d5f823e3d81fd5b5f8060ff19613a5e60017fb750591399365444a618527b69a54ce09476c8bde1ecff60f5aa1fe2b52605ff615a30565b604051602001613a7091815260200190565b60408051808303601f190181529190528051602090910120166002015492915050565b5f600783168103613ad0576040517fbf3cad0b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f613ad961307e565b60028101549091505f03613af1575f19915050610e38565b5f5f198614613b2457816002018681548110613b0f57613b0f615a43565b905f5260205f20906005020160030154613b27565b81545b90506002846002811115613b3d57613b3d615d32565b03613b5f57613b5682613b508484613f44565b87613fbf565b92505050610e38565b6001846002811115613b7357613b73615d32565b03613b8357613b56828287614017565b611ef0828287613fbf565b5f81806020019051810190610ab49190615645565b5f7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115613c01576040517fbf463fe900000000000000000000000000000000000000000000000000000000815260048101849052602401610bc1565b5f613c1e613c18613c12865f614084565b856140de565b5f614140565b50949350505050565b5f610e0f84670de0b6b3a76400008585613ef3565b613c44614181565b613c4d836141e7565b613c56826141e7565b613c618383836142d4565b6001600160a01b038316613c7857610cde81614434565b6001600160a01b038216610cde57610cde81614477565b611aa36144b1565b613c9f6144b1565b61291f82826144ef565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0054600203611aa3576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8060ff19613d3460017fb750591399365444a618527b69a54ce09476c8bde1ecff60f5aa1fe2b52605ff615a30565b604051602001613d4691815260200190565b60408051601f1981840301815291815281516020928301205f96875292909216905290922092915050565b6001600160a01b038216613db3576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152602401610bc1565b61291f825f83613c3c565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e9828696040518060c001604052808a6001600160a01b031681526020018b6001600160a01b031681526020018881526020018c815260200189815260200187815250604051602001613e649190615d20565b6040516020818303038152906040526040518463ffffffff1660e01b8152600401613e9193929190615943565b5f604051808303815f87803b158015613ea8575f80fd5b505af1158015613eba573d5f803e3d5ffd5b5050505050505050505050565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b5f613f20613f0083614552565b8015613f1b57505f8480613f1657613f16615d5f565b868809115b151590565b613f2b86868661457e565b6126669190615c32565b5f828218828411028218610e38565b5f5b5f198214158015613f88575042836002018381548110613f6857613f68615a43565b5f91825260209091206001600590920201015467ffffffffffffffff1611155b15613fb957826002018281548110613fa257613fa2615a43565b905f5260205f209060050201600301549150613f46565b50919050565b5f5b5f19831461400d575f846002018481548110613fdf57613fdf615a43565b905f5260205f209060050201905082815f0154165f146140025783915050610e38565b600301549250613fc1565b505f199392505050565b5f5b5f19831461400d575f84600201848154811061403757614037615a43565b5f918252602090912060059091020160018101549091504267ffffffffffffffff9091161115614067575061400d565b80548316156140795783915050610e38565b600301549250614019565b5f805f614091858561462e565b91509150806140d6576040517f22c9f7bb0000000000000000000000000000000000000000000000000000000081526004810186905260248101859052604401610bc1565b509392505050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838116601b90810b9160e086811d9291861690910b9085901d848061412386868686614734565b915091505f6141328383614853565b9a9950505050505050505050565b5f807bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8416601b0b60e085901d6141748282876148b1565b9350935050509250929050565b5f61418a61307e565b60028101549091505f0361419b5750565b5f6141b0826005015460026001176001613a93565b90505f195b5f1982146141d35750806141cc8160036001613a93565b91506141b5565b5f198114610cde5760058301819055505050565b6001600160a01b0381166141f85750565b5f61420161307e565b6001600160a01b0383165f9081526003820160205260408120549192506142278461306b565b90505f8061423583856130df565b9150915083810361424857505050505050565b6001600160a01b0386165f9081526003860160205260409020819055818314614275576142758683614a9c565b6040805185815260208101839052908101849052606081018390526001600160a01b038716907f36a2eb39b73568d38e98721588b15b309c9380e1b1ab575c2c3d71d5148ccb4a9060800160405180910390a261357384848385614aae565b6142de8383613679565b5f7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0080549091506001600160a01b03166359f89dda337f55387ad71a8e46cc1293406722dd825c028eaf5ff0c2a3e4f176184d62e9d30a6040518060800160405280896001600160a01b03168152602001886001600160a01b0316815260200187815260200161438e7fba9f160a0257aef2aa878e698d5363429ea67cc3c427f23f7cb9c3069b67bd0254421190565b151590526040805182516001600160a01b03908116602080840191909152840151168183015290820151606080830191909152909101511515608082015260a0016040516020818303038152906040526040518463ffffffff1660e01b81526004016143fc93929190615943565b5f604051808303815f87803b158015614413575f80fd5b505af1158015614425573d5f803e3d5ffd5b50505050612bb9848484614b0b565b5f61443d61307e565b60028101549091501561291f5760058101545f9081526004820160205260408120805484929061446e908490615c32565b90915550505050565b5f61448061307e565b60028101549091501561291f5760058101545f9081526004820160205260408120805484929061446e908490615a30565b6144b9614b16565b611aa3576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6144f76144b1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace007f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace036145438482615dd0565b5060048101612bb98382615dd0565b5f600282600381111561456757614567615d32565b6145719190615e8c565b60ff166001149050919050565b5f805f61458b8686614b34565b91509150815f036145af578381816145a5576145a5615d5f565b0492505050610e38565b8184116145c6576145c66003851502601118614b50565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010185841190960395909502919093039390930492909217029150509392505050565b5f601b83900b8314838382614692577d90e40fbeea1d3a4abc8955e946fe31cdcf66f634e100000000000000000086051561467257620186a0860595506005850194505b8586601b0b1461468d57600a86059550846001019450614672565b6146a8565b855f036146a857505f9250600191506131869050565b848560030b14614704575f8512156146c857505f92508291506131869050565b6040517fd556b1110000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610bc1565b50507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841660e084901b1791509250929050565b5f808515841517801561474c575f92505f9150614849565b6147568487615ead565b91505f61476288614b61565b90505f61476e87614b61565b90505f61477b8383614b34565b5090505f6f0785ee10d5da46d900f436a0000000008211156147b0576f0785ee10d5da46d900f436a000000000820491506025015b670de0b6b3a76400008211156147d157670de0b6b3a7640000820491506012015b633b9aca008211156147ea57633b9aca00820491506009015b6127108211156147ff57612710820491506004015b811561481357600a820491506001016147ff565b61481d8187615ead565b955061483f8b8a614839878761483487600a615fac565b614bc2565b89614c9d565b9097509550505050505b5094509492505050565b5f805f614860858561462e565b9150915080158015614870575081155b156140d6576040517f8eba4d070000000000000000000000000000000000000000000000000000000081526004810186905260248101859052604401610bc1565b5f805f8512156148f7576040517f4a7d166b0000000000000000000000000000000000000000000000000000000081526004810186905260248101859052604401610bc1565b845f0361490957505f90506001614a94565b8460ff8416850185811215614954576040517fd556b1110000000000000000000000000000000000000000000000000000000081526004810188905260248101879052604401610bc1565b5f805f8312156149be577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb3831215614995575f809550955050505050614a94565b825f03600a0a91508184816149ac576149ac615d5f565b0495505084029091149150614a949050565b5f831315614a8957604d831315614a14576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff88166044820152606401610bc1565b82600a0a9150815f1981614a2a57614a2a615d5f565b04841115614a77576040517fc849483b000000000000000000000000000000000000000000000000000000008152600481018a90526024810189905260ff88166044820152606401610bc1565b5091909102925060019150614a949050565b509193506001925050505b935093915050565b5f614aa683613d04565b919091555050565b5f614ab761307e565b905083816004015f8781526020019081526020015f205f828254614adb9190615a30565b90915550505f83815260048201602052604081208054849290614aff908490615c32565b90915550505050505050565b610cde838383614da9565b5f614b1f612c65565b5468010000000000000000900460ff16919050565b5f805f1983850993909202808410938190039390930393915050565b634e487b715f52806020526024601cfd5b5f80821215614bbe577f80000000000000000000000000000000000000000000000000000000000000008203614bb857507f8000000000000000000000000000000000000000000000000000000000000000919050565b505f0390565b5090565b5f805f614bcf8686614b34565b91509150815f03614be9578381816145a5576145a5615d5f565b838210614c33576040517f6c59da12000000000000000000000000000000000000000000000000000000008152600481018790526024810186905260448101859052606401610bc1565b5f84868809600186198101871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103025f82900382900490920185841190960395909502919093039390930492909217029150509392505050565b5f805f8587181215614d67577f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841115614d5457614cfc7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001615c32565b8403614d2c57507f8000000000000000000000000000000000000000000000000000000000000000905081614da0565b614d37600a85615fb7565b614d4090615fca565b614d4b846001615ead565b91509150614da0565b614d5d84615fca565b8391509150614da0565b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841115614d9a57614d40600a85615fb7565b50829050815b94509492505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b038416614df65781816002015f828254614deb9190615c32565b90915550614e7f9050565b6001600160a01b0384165f9081526020829052604090205482811015614e61576040517fe450d38c0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024810182905260448101849052606401610bc1565b6001600160a01b0385165f9081526020839052604090209083900390555b6001600160a01b038316614e9d576002810180548390039055614ebb565b6001600160a01b0383165f9081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051614f0091815260200190565b60405180910390a350505050565b5f60208284031215614f1e575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610e38575f80fd5b6001600160a01b03811681146124b5575f80fd5b5f60208284031215614f71575f80fd5b8135610e3881614f4d565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610e386020830184614f7c565b5f8060408385031215614fcd575f80fd5b8235614fd881614f4d565b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff8111828210171561503657615036614fe6565b60405290565b6040516080810167ffffffffffffffff8111828210171561503657615036614fe6565b604051601f8201601f1916810167ffffffffffffffff8111828210171561508857615088614fe6565b604052919050565b5f67ffffffffffffffff8211156150a9576150a9614fe6565b50601f01601f191660200190565b5f82601f8301126150c6575f80fd5b81356150d96150d482615090565b61505f565b8181528460208386010111156150ed575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f806080858703121561511c575f80fd5b84359350602085013561512e81614f4d565b925060408501359150606085013567ffffffffffffffff811115615150575f80fd5b61515c878288016150b7565b91505092959194509250565b5f8060408385031215615179575f80fd5b50508035926020909101359150565b5f60208284031215615198575f80fd5b5035919050565b5f805f606084860312156151b1575f80fd5b83356151bc81614f4d565b925060208401356151cc81614f4d565b929592945050506040919091013590565b5f602082840312156151ed575f80fd5b813567ffffffffffffffff811115615203575f80fd5b610e0f848285016150b7565b5f805f8060808587031215615222575f80fd5b843561522d81614f4d565b93506020850135925060408501359150606085013567ffffffffffffffff811115615150575f80fd5b5f805f60608486031215615268575f80fd5b833561527381614f4d565b925060208401359150604084013567ffffffffffffffff811115615295575f80fd5b6152a1868287016150b7565b9150509250925092565b5f805f805f60a086880312156152bf575f80fd5b8535945060208601356152d181614f4d565b935060408601356152e181614f4d565b925060608601359150608086013567ffffffffffffffff811115615303575f80fd5b61530f888289016150b7565b9150509295509295909350565b5f806020838503121561532d575f80fd5b823567ffffffffffffffff80821115615344575f80fd5b818501915085601f830112615357575f80fd5b813581811115615365575f80fd5b8660208260051b8501011115615379575f80fd5b60209290920196919550909350505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b828110156153fe577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08886030184526153ec858351614f7c565b945092850192908501906001016153b2565b5092979650505050505050565b5f8083601f84011261541b575f80fd5b50813567ffffffffffffffff811115615432575f80fd5b602083019150836020828501011115613186575f80fd5b5f805f805f6080868803121561545d575f80fd5b85359450602086013561546f81614f4d565b935060408601359250606086013567ffffffffffffffff811115615491575f80fd5b61549d8882890161540b565b969995985093965092949392505050565b5f80604083850312156154bf575f80fd5b82356154ca81614f4d565b915060208301356154da81614f4d565b809150509250929050565b5f82601f8301126154f4575f80fd5b8135602067ffffffffffffffff82111561551057615510614fe6565b8160051b61551f82820161505f565b9283528481018201928281019087851115615538575f80fd5b83870192505b8483101561214c5782358252918301919083019061553e565b5f805f805f60a0868803121561556b575f80fd5b853561557681614f4d565b9450602086013561558681614f4d565b9350604086013561559681614f4d565b9250606086013567ffffffffffffffff808211156155b2575f80fd5b6155be89838a016154e5565b935060808801359150808211156155d3575f80fd5b5061530f888289016154e5565b80151581146124b5575f80fd5b5f805f8060608587031215615600575f80fd5b843593506020850135615612816155e0565b9250604085013567ffffffffffffffff81111561562d575f80fd5b6156398782880161540b565b95989497509550505050565b5f60208284031215615655575f80fd5b5051919050565b600181811c9082168061567057607f821691505b602082108103613fb9577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f602082840312156156b7575f80fd5b815160ff81168114610e38575f80fd5b5f82601f8301126156d6575f80fd5b81516156e46150d482615090565b8181528460208386010111156156f8575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f60208284031215615724575f80fd5b815167ffffffffffffffff8082111561573b575f80fd5b908301906040828603121561574e575f80fd5b615756615013565b825161576181614f4d565b8152602083015182811115615774575f80fd5b929092019160808387031215615788575f80fd5b61579061503c565b835161579b81614f4d565b81526020840151838111156157ae575f80fd5b6157ba888287016156c7565b6020830152506040840151838111156157d1575f80fd5b6157dd888287016156c7565b604083015250606084015193506157f384614f4d565b60608101939093526020810192909252509392505050565b5f6001600160a01b038085168352604060208401528084511660408401526020840151604060608501528181511660808501526020810151608060a0860152615858610100860182614f7c565b905060408201517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808683030160c08701526158938282614f7c565b9150508260608301511660e08601528093505050509392505050565b5f6001600160a01b03808916835280881660208401525085604083015284606083015283608083015260c060a08301526158ec60c0830184614f7c565b98975050505050505050565b602081526001600160a01b0382511660208201526020820151604082015260408201516060820152606082015160808201525f608083015160a080840152610e0f60c0840182614f7c565b6001600160a01b0384168152826020820152606060408201525f6126666060830184614f7c565b5f6001600160a01b03808816835280871660208401525084604083015283606083015260a0608083015261214c60a0830184614f7c565b602081526001600160a01b03825116602082015260208201516040820152604082015160608201525f6060830151608080840152610e0f60a0840182614f7c565b6001600160a01b0383168152604060208201525f610e0f6040830184614f7c565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b81810381811115610ab457610ab4615a03565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112615aa3575f80fd5b83018035915067ffffffffffffffff821115615abd575f80fd5b602001915036819003821315613186575f80fd5b828482375f8382015f815283518060208601835e5f910190815295945050505050565b5f815180845260208085019450602084015f5b83811015615b2357815187529582019590820190600101615b07565b509495945050505050565b602081525f6001600160a01b0380845116602084015280602085015116604084015250604083015160a06060840152615b6a60c0840182615af4565b90506060840151601f19848303016080850152615b878282615af4565b9150506080840151151560a08401528091505092915050565b6001600160a01b0386168152846020820152831515604082015260806060820152816080820152818360a08301375f81830160a090810191909152601f909201601f19160101949350505050565b602081528151602082015260208201516040820152604082015160608201526060820151151560808201525f608083015160a080840152610e0f60c0840182614f7c565b80820180821115610ab457610ab4615a03565b5f60208284031215615c55575f80fd5b8151610e3881614f4d565b5f60208284031215615c70575f80fd5b8151610e38816155e0565b5f6001600160a01b03808a16835280891660208401528088166040840152508560608301528460808301528360a083015260e060c0830152615cc060e0830184614f7c565b9998505050505050505050565b5f6001600160a01b038083511684528060208401511660208501525060408201516040840152606082015160608401526080820151608084015260a082015160c060a0850152610e0f60c0850182614f7c565b602081525f610e386020830184615ccd565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b601f821115610cde57805f5260205f20601f840160051c81016020851015615db15750805b601f840160051c820191505b818110156128a5575f8155600101615dbd565b815167ffffffffffffffff811115615dea57615dea614fe6565b615dfe81615df8845461565c565b84615d8c565b602080601f831160018114615e31575f8415615e1a5750858301515b5f19600386901b1c1916600185901b178555613573565b5f85815260208120601f198616915b82811015615e5f57888601518255948401946001909101908401615e40565b5085821015615e7c57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f60ff831680615e9e57615e9e615d5f565b8060ff84160691505092915050565b8082018281125f83128015821682158216171561203657612036615a03565b600181815b80851115615f0657815f1904821115615eec57615eec615a03565b80851615615ef957918102915b93841c9390800290615ed1565b509250929050565b5f82615f1c57506001610ab4565b81615f2857505f610ab4565b8160018114615f3e5760028114615f4857615f64565b6001915050610ab4565b60ff841115615f5957615f59615a03565b50506001821b610ab4565b5060208310610133831016604e8410600b8410161715615f87575081810a610ab4565b615f918383615ecc565b805f1904821115615fa457615fa4615a03565b029392505050565b5f610e388383615f0e565b5f82615fc557615fc5615d5f565b500490565b5f7f80000000000000000000000000000000000000000000000000000000000000008203614bb857614bb8615a0356"; diff --git a/src/generated/0_1_8/StoxUnifiedDeployer.pointers.sol b/src/generated/0_1_8/StoxUnifiedDeployer.pointers.sol deleted file mode 100644 index 3819204f..00000000 --- a/src/generated/0_1_8/StoxUnifiedDeployer.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x76b90443c401cb2071b31fbf0596f931e01315c358b9db4e4db998107dc2e62c); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x48E1A9091E89f5500AfC9d42FBB85bE8b4f70203); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"6080604052348015600e575f80fd5b506106308061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c806301ffc9a714610038578063733e1f8d1461005f575b5f80fd5b61004b6100463660046102a3565b610074565b604051901515815260200160405180910390f35b61007261006d36600461042d565b61010c565b005b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f733e1f8d00000000000000000000000000000000000000000000000000000000148061010657507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6040517f4904fab30000000000000000000000000000000000000000000000000000000081525f9073679ab223dab158ea93e1a4f49104de436c58eab890634904fab39061015e908590600401610570565b6020604051808303815f875af115801561017a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061019e9190610615565b6040517fd786858b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201529091505f90736b4232f1046f1f1bb99a1184d886bbaf3cd7e15a9063d786858b906024016020604051808303815f875af1158015610220573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102449190610615565b6040805133815273ffffffffffffffffffffffffffffffffffffffff858116602083015283168183015290519192507fa0d99d93cf7a5f89661fa0829369a7e4896e755871efe65440bab2429387d55b919081900360600190a1505050565b5f602082840312156102b3575f80fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146102e2575f80fd5b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff81118282101715610339576103396102e9565b60405290565b6040516080810167ffffffffffffffff81118282101715610339576103396102e9565b73ffffffffffffffffffffffffffffffffffffffff81168114610383575f80fd5b50565b5f82601f830112610395575f80fd5b813567ffffffffffffffff808211156103b0576103b06102e9565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156103f6576103f66102e9565b8160405283815286602085880101111561040e575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f6020828403121561043d575f80fd5b813567ffffffffffffffff80821115610454575f80fd5b9083019060408286031215610467575f80fd5b61046f610316565b823561047a81610362565b815260208301358281111561048d575f80fd5b9290920191608083870312156104a1575f80fd5b6104a961033f565b83356104b481610362565b81526020840135838111156104c7575f80fd5b6104d388828701610386565b6020830152506040840135838111156104ea575f80fd5b6104f688828701610386565b6040830152506060840135935061050c84610362565b60608101939093526020810192909252509392505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f73ffffffffffffffffffffffffffffffffffffffff808451166020840152602084015160408085015281815116606085015260208101516080808601526105bf60e0860182610524565b905060408201517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08683030160a08701526105fa8282610524565b9150508260608301511660c086015280935050505092915050565b5f60208284031215610625575f80fd5b81516102e28161036256"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b5060043610610034575f3560e01c806301ffc9a714610038578063733e1f8d1461005f575b5f80fd5b61004b6100463660046102a3565b610074565b604051901515815260200160405180910390f35b61007261006d36600461042d565b61010c565b005b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f733e1f8d00000000000000000000000000000000000000000000000000000000148061010657507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6040517f4904fab30000000000000000000000000000000000000000000000000000000081525f9073679ab223dab158ea93e1a4f49104de436c58eab890634904fab39061015e908590600401610570565b6020604051808303815f875af115801561017a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061019e9190610615565b6040517fd786858b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201529091505f90736b4232f1046f1f1bb99a1184d886bbaf3cd7e15a9063d786858b906024016020604051808303815f875af1158015610220573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102449190610615565b6040805133815273ffffffffffffffffffffffffffffffffffffffff858116602083015283168183015290519192507fa0d99d93cf7a5f89661fa0829369a7e4896e755871efe65440bab2429387d55b919081900360600190a1505050565b5f602082840312156102b3575f80fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146102e2575f80fd5b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff81118282101715610339576103396102e9565b60405290565b6040516080810167ffffffffffffffff81118282101715610339576103396102e9565b73ffffffffffffffffffffffffffffffffffffffff81168114610383575f80fd5b50565b5f82601f830112610395575f80fd5b813567ffffffffffffffff808211156103b0576103b06102e9565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156103f6576103f66102e9565b8160405283815286602085880101111561040e575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f6020828403121561043d575f80fd5b813567ffffffffffffffff80821115610454575f80fd5b9083019060408286031215610467575f80fd5b61046f610316565b823561047a81610362565b815260208301358281111561048d575f80fd5b9290920191608083870312156104a1575f80fd5b6104a961033f565b83356104b481610362565b81526020840135838111156104c7575f80fd5b6104d388828701610386565b6020830152506040840135838111156104ea575f80fd5b6104f688828701610386565b6040830152506060840135935061050c84610362565b60608101939093526020810192909252509392505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f73ffffffffffffffffffffffffffffffffffffffff808451166020840152602084015160408085015281815116606085015260208101516080808601526105bf60e0860182610524565b905060408201517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08683030160a08701526105fa8282610524565b9150508260608301511660c086015280935050505092915050565b5f60208284031215610625575f80fd5b81516102e28161036256"; diff --git a/src/generated/0_1_8/StoxWrappedTokenVault.pointers.sol b/src/generated/0_1_8/StoxWrappedTokenVault.pointers.sol deleted file mode 100644 index 18c6e307..00000000 --- a/src/generated/0_1_8/StoxWrappedTokenVault.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x6de4c556c1811293da4ad2e509ee476f3eb635f019845087e1d2777a1b272034); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x0D99e0174DbF885ceD6AE8dEb939b0F890450099); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"6080604052348015600e575f80fd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b611de4806100d65f395ff3fe608060405234801561000f575f80fd5b50600436106101b0575f3560e01c806370a08231116100f3578063c4d66de811610093578063ce96cb771161006e578063ce96cb77146103c9578063d905777e146103dc578063dd62ed3e146103ef578063ef8b30f7146103b6575f80fd5b8063c4d66de8146103a3578063c63d75b6146102bb578063c6e6f592146103b6575f80fd5b8063a9059cbb116100ce578063a9059cbb14610357578063b3d7f6b91461036a578063b460af941461037d578063ba08765214610390575f80fd5b806370a08231146102f557806394bf804d1461033c57806395d89b411461034f575f80fd5b806323b872dd1161015e578063402d267d11610139578063402d267d146102bb578063439fab91146102cf5780634cdad506146101e45780636e553f65146102e2575f80fd5b806323b872dd14610254578063313ce5671461026757806338d52e0f14610281575f80fd5b8063095ea7b31161018e578063095ea7b3146101f75780630a28a4771461021a57806318160ddd1461022d575f80fd5b806301e1d114146101b457806306fdde03146101cf57806307a2d13a146101e4575b5f80fd5b6101bc610446565b6040519081526020015b60405180910390f35b6101d76104fe565b6040516101c69190611758565b6101bc6101f236600461178d565b6105b6565b61020a6102053660046117b8565b6105c7565b60405190151581526020016101c6565b6101bc61022836600461178d565b6105de565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02546101bc565b61020a6102623660046117e2565b6105ea565b61026f61060f565b60405160ff90911681526020016101c6565b7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546040516001600160a01b0390911681526020016101c6565b6101bc6102c9366004611820565b505f1990565b6101bc6102dd36600461183b565b610662565b6101bc6102f03660046118a7565b61089d565b6101bc610303366004611820565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00602052604090205490565b6101bc61034a3660046118a7565b6108ce565b6101d76108e9565b61020a6103653660046117b8565b61098d565b6101bc61037836600461178d565b61099a565b6101bc61038b3660046118d5565b6109a6565b6101bc61039e3660046118d5565b610a28565b6101bc6103b1366004611820565b610aa1565b6101bc6103c436600461178d565b610ad4565b6101bc6103d7366004611820565b610adf565b6101bc6103ea366004611820565b610ae8565b6101bc6103fd366004611914565b6001600160a01b039182165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b5f6104787f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa1580156104d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104f99190611940565b905090565b60606105317f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b6001600160a01b03166306fdde036040518163ffffffff1660e01b81526004015f60405180830381865afa15801561056b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526105929190810190611984565b6040516020016105a29190611a46565b604051602081830303815290604052905090565b5f6105c1825f610b24565b92915050565b5f336105d4818585610b7b565b5060019392505050565b5f6105c1826001610b8d565b5f336105f7858285610bdb565b610602858585610c8f565b60019150505b9392505050565b5f807f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e0090505f815461065c919074010000000000000000000000000000000000000000900460ff16611aa4565b91505090565b5f8061066c610d1e565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156106985750825b90505f8267ffffffffffffffff1660011480156106b45750303b155b9050811580156106c2575080155b156106f9576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166001178555831561075a5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b5f610767888a018a611820565b90506001600160a01b0381166107a9576040517f7cde9b7200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107b281610d46565b6107d860405180602001604052805f81525060405180602001604052805f815250610d5a565b6040516001600160a01b0382169033907fdf5fabff9e49f8c35d69a1f2d0c5e80c933c31cf836cf70de57e3a6e7dc86ebb905f90a37fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc396505083156108925784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505092915050565b5f5f196108ae565b60405180910390fd5b5f6108b885610ad4565b90506108c633858784610d70565b949350505050565b5f5f195f6108db8561099a565b90506108c633858388610d70565b606061091c7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b6001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015610956573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261097d9190810190611984565b6040516020016105a29190611abd565b5f336105d4818585610c8f565b5f6105c1826001610b24565b5f806109b183610adf565b905080851115610a06576040517ffe9cceec0000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101869052604481018290526064016108a5565b5f610a10866105de565b9050610a1f3386868985610de0565b95945050505050565b5f80610a3383610ae8565b905080851115610a88576040517fb94abeec0000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101869052604481018290526064016108a5565b5f610a92866105b6565b9050610a1f338686848a610de0565b5f6040517faf1fbb2100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6105c1825f610b8d565b5f6105c16101f2835b6001600160a01b0381165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0060205260408120546105c1565b5f610608610b30610446565b610b3b906001611aee565b610b465f600a611be1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254610b729190611aee565b85919085610e7f565b610b888383836001610ec1565b505050565b5f610608610b9c82600a611be1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254610bc89190611aee565b610bd0610446565b610b72906001611aee565b6001600160a01b038381165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160209081526040808320938616835292905220545f19811015610c895781811015610c7b576040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101829052604481018390526064016108a5565b610c8984848484035f610ec1565b50505050565b6001600160a01b038316610cd1576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b6001600160a01b038216610d13576040517fec442f050000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b610b88838383610fea565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006105c1565b610d4e611141565b610d5781611181565b50565b610d62611141565b610d6c8282611245565b5050565b610d7a84836112a8565b610d8483826112e4565b826001600160a01b0316846001600160a01b03167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d78484604051610dd2929190918252602082015260400190565b60405180910390a350505050565b826001600160a01b0316856001600160a01b031614610e0457610e04838683610bdb565b610e0e8382611331565b610e18848361137e565b826001600160a01b0316846001600160a01b0316866001600160a01b03167ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db8585604051610e70929190918252602082015260400190565b60405180910390a45050505050565b5f610eac610e8c836113b9565b8015610ea757505f8480610ea257610ea2611bef565b868809115b151590565b610eb78686866113e5565b610a1f9190611aee565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b038516610f24576040517fe602df050000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b6001600160a01b038416610f66576040517f94280d620000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b6001600160a01b038086165f90815260018301602090815260408083209388168352929052208390558115610fe357836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92585604051610fda91815260200190565b60405180910390a35b5050505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b0384166110375781816002015f82825461102c9190611aee565b909155506110c09050565b6001600160a01b0384165f90815260208290526040902054828110156110a2576040517fe450d38c0000000000000000000000000000000000000000000000000000000081526001600160a01b038616600482015260248101829052604481018490526064016108a5565b6001600160a01b0385165f9081526020839052604090209083900390555b6001600160a01b0383166110de5760028101805483900390556110fc565b6001600160a01b0383165f9081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610dd291815260200190565b611149611495565b61117f576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b611189611141565b7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e005f806111b5846114b3565b91509150816111c55760126111c7565b805b83547fffffffffffffffffffffff000000000000000000000000000000000000000000167401000000000000000000000000000000000000000060ff92909216919091027fffffffffffffffffffffffff000000000000000000000000000000000000000016176001600160a01b0394909416939093179091555050565b61124d611141565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace007f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace036112998482611cb1565b5060048101610c898382611cb1565b610d6c6112dc7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b83308461156c565b6001600160a01b038216611326576040517fec442f050000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b610d6c5f8383610fea565b6001600160a01b038216611373576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b610d6c825f83610fea565b610d6c6113b27f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b83836115bb565b5f60028260038111156113ce576113ce611d71565b6113d89190611d9e565b60ff166001149050919050565b5f805f6113f28686611609565b91509150815f036114165783818161140c5761140c611bef565b0492505050610608565b81841161142d5761142d6003851502601118611625565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010185841190960395909502919093039390930492909217029150509392505050565b5f61149e610d1e565b5468010000000000000000900460ff16919050565b5f805f6114bf60405190565b6040805160048152602481019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f313ce567000000000000000000000000000000000000000000000000000000001790529091505f908190611528908790611636565b509150915061153683604052565b818015611544575060203d10155b8015611551575060ff8111155b61155c575f80611560565b6001815b94509450505050915091565b61157a848484846001611657565b610c89576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b03851660048201526024016108a5565b6115c883838360016116dd565b610b88576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201526024016108a5565b5f805f1983850993909202808410938190039390930393915050565b634e487b715f52806020526024601cfd5b5f805f60405f855160208701885afa92505f51915060205190509250925092565b6040517f23b872dd000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038781166004528616602452604485905291602083606481808c5af1925060015f511483166116cc5783831516156116c0573d5f823e3d81fd5b5f883b113d1516831692505b604052505f60605295945050505050565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f5114831661174c578383151615611740573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f6020828403121561179d575f80fd5b5035919050565b6001600160a01b0381168114610d57575f80fd5b5f80604083850312156117c9575f80fd5b82356117d4816117a4565b946020939093013593505050565b5f805f606084860312156117f4575f80fd5b83356117ff816117a4565b9250602084013561180f816117a4565b929592945050506040919091013590565b5f60208284031215611830575f80fd5b8135610608816117a4565b5f806020838503121561184c575f80fd5b823567ffffffffffffffff80821115611863575f80fd5b818501915085601f830112611876575f80fd5b813581811115611884575f80fd5b866020828501011115611895575f80fd5b60209290920196919550909350505050565b5f80604083850312156118b8575f80fd5b8235915060208301356118ca816117a4565b809150509250929050565b5f805f606084860312156118e7575f80fd5b8335925060208401356118f9816117a4565b91506040840135611909816117a4565b809150509250925092565b5f8060408385031215611925575f80fd5b8235611930816117a4565b915060208301356118ca816117a4565b5f60208284031215611950575f80fd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f60208284031215611994575f80fd5b815167ffffffffffffffff808211156119ab575f80fd5b818401915084601f8301126119be575f80fd5b8151818111156119d0576119d0611957565b604051601f8201601f19908116603f011681019083821181831017156119f8576119f8611957565b81604052828152876020848701011115611a10575f80fd5b8260208601602083015e5f928101602001929092525095945050505050565b5f81518060208401855e5f93019283525090919050565b7f577261707065642000000000000000000000000000000000000000000000000081525f6106086008830184611a2f565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60ff81811683821601908111156105c1576105c1611a77565b7f770000000000000000000000000000000000000000000000000000000000000081525f6106086001830184611a2f565b808201808211156105c1576105c1611a77565b600181815b80851115611b3b57815f1904821115611b2157611b21611a77565b80851615611b2e57918102915b93841c9390800290611b06565b509250929050565b5f82611b51575060016105c1565b81611b5d57505f6105c1565b8160018114611b735760028114611b7d57611b99565b60019150506105c1565b60ff841115611b8e57611b8e611a77565b50506001821b6105c1565b5060208310610133831016604e8410600b8410161715611bbc575081810a6105c1565b611bc68383611b01565b805f1904821115611bd957611bd9611a77565b029392505050565b5f61060860ff841683611b43565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b600181811c90821680611c3057607f821691505b602082108103611c67577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b601f821115610b8857805f5260205f20601f840160051c81016020851015611c925750805b601f840160051c820191505b81811015610fe3575f8155600101611c9e565b815167ffffffffffffffff811115611ccb57611ccb611957565b611cdf81611cd98454611c1c565b84611c6d565b602080601f831160018114611d12575f8415611cfb5750858301515b5f19600386901b1c1916600185901b178555611d69565b5f85815260208120601f198616915b82811015611d4057888601518255948401946001909101908401611d21565b5085821015611d5d57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f60ff831680611dd5577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b8060ff8416069150509291505056"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b50600436106101b0575f3560e01c806370a08231116100f3578063c4d66de811610093578063ce96cb771161006e578063ce96cb77146103c9578063d905777e146103dc578063dd62ed3e146103ef578063ef8b30f7146103b6575f80fd5b8063c4d66de8146103a3578063c63d75b6146102bb578063c6e6f592146103b6575f80fd5b8063a9059cbb116100ce578063a9059cbb14610357578063b3d7f6b91461036a578063b460af941461037d578063ba08765214610390575f80fd5b806370a08231146102f557806394bf804d1461033c57806395d89b411461034f575f80fd5b806323b872dd1161015e578063402d267d11610139578063402d267d146102bb578063439fab91146102cf5780634cdad506146101e45780636e553f65146102e2575f80fd5b806323b872dd14610254578063313ce5671461026757806338d52e0f14610281575f80fd5b8063095ea7b31161018e578063095ea7b3146101f75780630a28a4771461021a57806318160ddd1461022d575f80fd5b806301e1d114146101b457806306fdde03146101cf57806307a2d13a146101e4575b5f80fd5b6101bc610446565b6040519081526020015b60405180910390f35b6101d76104fe565b6040516101c69190611758565b6101bc6101f236600461178d565b6105b6565b61020a6102053660046117b8565b6105c7565b60405190151581526020016101c6565b6101bc61022836600461178d565b6105de565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02546101bc565b61020a6102623660046117e2565b6105ea565b61026f61060f565b60405160ff90911681526020016101c6565b7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546040516001600160a01b0390911681526020016101c6565b6101bc6102c9366004611820565b505f1990565b6101bc6102dd36600461183b565b610662565b6101bc6102f03660046118a7565b61089d565b6101bc610303366004611820565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00602052604090205490565b6101bc61034a3660046118a7565b6108ce565b6101d76108e9565b61020a6103653660046117b8565b61098d565b6101bc61037836600461178d565b61099a565b6101bc61038b3660046118d5565b6109a6565b6101bc61039e3660046118d5565b610a28565b6101bc6103b1366004611820565b610aa1565b6101bc6103c436600461178d565b610ad4565b6101bc6103d7366004611820565b610adf565b6101bc6103ea366004611820565b610ae8565b6101bc6103fd366004611914565b6001600160a01b039182165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b5f6104787f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa1580156104d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104f99190611940565b905090565b60606105317f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b6001600160a01b03166306fdde036040518163ffffffff1660e01b81526004015f60405180830381865afa15801561056b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526105929190810190611984565b6040516020016105a29190611a46565b604051602081830303815290604052905090565b5f6105c1825f610b24565b92915050565b5f336105d4818585610b7b565b5060019392505050565b5f6105c1826001610b8d565b5f336105f7858285610bdb565b610602858585610c8f565b60019150505b9392505050565b5f807f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e0090505f815461065c919074010000000000000000000000000000000000000000900460ff16611aa4565b91505090565b5f8061066c610d1e565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156106985750825b90505f8267ffffffffffffffff1660011480156106b45750303b155b9050811580156106c2575080155b156106f9576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166001178555831561075a5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b5f610767888a018a611820565b90506001600160a01b0381166107a9576040517f7cde9b7200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107b281610d46565b6107d860405180602001604052805f81525060405180602001604052805f815250610d5a565b6040516001600160a01b0382169033907fdf5fabff9e49f8c35d69a1f2d0c5e80c933c31cf836cf70de57e3a6e7dc86ebb905f90a37fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc396505083156108925784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505092915050565b5f5f196108ae565b60405180910390fd5b5f6108b885610ad4565b90506108c633858784610d70565b949350505050565b5f5f195f6108db8561099a565b90506108c633858388610d70565b606061091c7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b6001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015610956573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261097d9190810190611984565b6040516020016105a29190611abd565b5f336105d4818585610c8f565b5f6105c1826001610b24565b5f806109b183610adf565b905080851115610a06576040517ffe9cceec0000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101869052604481018290526064016108a5565b5f610a10866105de565b9050610a1f3386868985610de0565b95945050505050565b5f80610a3383610ae8565b905080851115610a88576040517fb94abeec0000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101869052604481018290526064016108a5565b5f610a92866105b6565b9050610a1f338686848a610de0565b5f6040517faf1fbb2100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6105c1825f610b8d565b5f6105c16101f2835b6001600160a01b0381165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0060205260408120546105c1565b5f610608610b30610446565b610b3b906001611aee565b610b465f600a611be1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254610b729190611aee565b85919085610e7f565b610b888383836001610ec1565b505050565b5f610608610b9c82600a611be1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254610bc89190611aee565b610bd0610446565b610b72906001611aee565b6001600160a01b038381165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160209081526040808320938616835292905220545f19811015610c895781811015610c7b576040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101829052604481018390526064016108a5565b610c8984848484035f610ec1565b50505050565b6001600160a01b038316610cd1576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b6001600160a01b038216610d13576040517fec442f050000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b610b88838383610fea565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006105c1565b610d4e611141565b610d5781611181565b50565b610d62611141565b610d6c8282611245565b5050565b610d7a84836112a8565b610d8483826112e4565b826001600160a01b0316846001600160a01b03167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d78484604051610dd2929190918252602082015260400190565b60405180910390a350505050565b826001600160a01b0316856001600160a01b031614610e0457610e04838683610bdb565b610e0e8382611331565b610e18848361137e565b826001600160a01b0316846001600160a01b0316866001600160a01b03167ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db8585604051610e70929190918252602082015260400190565b60405180910390a45050505050565b5f610eac610e8c836113b9565b8015610ea757505f8480610ea257610ea2611bef565b868809115b151590565b610eb78686866113e5565b610a1f9190611aee565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b038516610f24576040517fe602df050000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b6001600160a01b038416610f66576040517f94280d620000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b6001600160a01b038086165f90815260018301602090815260408083209388168352929052208390558115610fe357836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92585604051610fda91815260200190565b60405180910390a35b5050505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b0384166110375781816002015f82825461102c9190611aee565b909155506110c09050565b6001600160a01b0384165f90815260208290526040902054828110156110a2576040517fe450d38c0000000000000000000000000000000000000000000000000000000081526001600160a01b038616600482015260248101829052604481018490526064016108a5565b6001600160a01b0385165f9081526020839052604090209083900390555b6001600160a01b0383166110de5760028101805483900390556110fc565b6001600160a01b0383165f9081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610dd291815260200190565b611149611495565b61117f576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b611189611141565b7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e005f806111b5846114b3565b91509150816111c55760126111c7565b805b83547fffffffffffffffffffffff000000000000000000000000000000000000000000167401000000000000000000000000000000000000000060ff92909216919091027fffffffffffffffffffffffff000000000000000000000000000000000000000016176001600160a01b0394909416939093179091555050565b61124d611141565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace007f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace036112998482611cb1565b5060048101610c898382611cb1565b610d6c6112dc7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b83308461156c565b6001600160a01b038216611326576040517fec442f050000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b610d6c5f8383610fea565b6001600160a01b038216611373576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f60048201526024016108a5565b610d6c825f83610fea565b610d6c6113b27f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546001600160a01b031690565b83836115bb565b5f60028260038111156113ce576113ce611d71565b6113d89190611d9e565b60ff166001149050919050565b5f805f6113f28686611609565b91509150815f036114165783818161140c5761140c611bef565b0492505050610608565b81841161142d5761142d6003851502601118611625565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010185841190960395909502919093039390930492909217029150509392505050565b5f61149e610d1e565b5468010000000000000000900460ff16919050565b5f805f6114bf60405190565b6040805160048152602481019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f313ce567000000000000000000000000000000000000000000000000000000001790529091505f908190611528908790611636565b509150915061153683604052565b818015611544575060203d10155b8015611551575060ff8111155b61155c575f80611560565b6001815b94509450505050915091565b61157a848484846001611657565b610c89576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b03851660048201526024016108a5565b6115c883838360016116dd565b610b88576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201526024016108a5565b5f805f1983850993909202808410938190039390930393915050565b634e487b715f52806020526024601cfd5b5f805f60405f855160208701885afa92505f51915060205190509250925092565b6040517f23b872dd000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038781166004528616602452604485905291602083606481808c5af1925060015f511483166116cc5783831516156116c0573d5f823e3d81fd5b5f883b113d1516831692505b604052505f60605295945050505050565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000005f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f5114831661174c578383151615611740573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f6020828403121561179d575f80fd5b5035919050565b6001600160a01b0381168114610d57575f80fd5b5f80604083850312156117c9575f80fd5b82356117d4816117a4565b946020939093013593505050565b5f805f606084860312156117f4575f80fd5b83356117ff816117a4565b9250602084013561180f816117a4565b929592945050506040919091013590565b5f60208284031215611830575f80fd5b8135610608816117a4565b5f806020838503121561184c575f80fd5b823567ffffffffffffffff80821115611863575f80fd5b818501915085601f830112611876575f80fd5b813581811115611884575f80fd5b866020828501011115611895575f80fd5b60209290920196919550909350505050565b5f80604083850312156118b8575f80fd5b8235915060208301356118ca816117a4565b809150509250929050565b5f805f606084860312156118e7575f80fd5b8335925060208401356118f9816117a4565b91506040840135611909816117a4565b809150509250925092565b5f8060408385031215611925575f80fd5b8235611930816117a4565b915060208301356118ca816117a4565b5f60208284031215611950575f80fd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f60208284031215611994575f80fd5b815167ffffffffffffffff808211156119ab575f80fd5b818401915084601f8301126119be575f80fd5b8151818111156119d0576119d0611957565b604051601f8201601f19908116603f011681019083821181831017156119f8576119f8611957565b81604052828152876020848701011115611a10575f80fd5b8260208601602083015e5f928101602001929092525095945050505050565b5f81518060208401855e5f93019283525090919050565b7f577261707065642000000000000000000000000000000000000000000000000081525f6106086008830184611a2f565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60ff81811683821601908111156105c1576105c1611a77565b7f770000000000000000000000000000000000000000000000000000000000000081525f6106086001830184611a2f565b808201808211156105c1576105c1611a77565b600181815b80851115611b3b57815f1904821115611b2157611b21611a77565b80851615611b2e57918102915b93841c9390800290611b06565b509250929050565b5f82611b51575060016105c1565b81611b5d57505f6105c1565b8160018114611b735760028114611b7d57611b99565b60019150506105c1565b60ff841115611b8e57611b8e611a77565b50506001821b6105c1565b5060208310610133831016604e8410600b8410161715611bbc575081810a6105c1565b611bc68383611b01565b805f1904821115611bd957611bd9611a77565b029392505050565b5f61060860ff841683611b43565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b600181811c90821680611c3057607f821691505b602082108103611c67577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b601f821115610b8857805f5260205f20601f840160051c81016020851015611c925750805b601f840160051c820191505b81811015610fe3575f8155600101611c9e565b815167ffffffffffffffff811115611ccb57611ccb611957565b611cdf81611cd98454611c1c565b84611c6d565b602080601f831160018114611d12575f8415611cfb5750858301515b5f19600386901b1c1916600185901b178555611d69565b5f85815260208120601f198616915b82811015611d4057888601518255948401946001909101908401611d21565b5085821015611d5d57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f60ff831680611dd5577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b8060ff8416069150509291505056"; diff --git a/src/generated/0_1_8/StoxWrappedTokenVaultBeacon.pointers.sol b/src/generated/0_1_8/StoxWrappedTokenVaultBeacon.pointers.sol deleted file mode 100644 index 438a674d..00000000 --- a/src/generated/0_1_8/StoxWrappedTokenVaultBeacon.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x8e95867e52db417944afd90f3b6c3c980962831e8a944e7f6958ba8f8cc10630); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x9FD790f65CA3aF2772358c653F097f0a4c7EE7d2); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"608060405234801561000f575f80fd5b50730d99e0174dbf885ced6ae8deb939b0f890450099738e4bdeec7ceb9570d440676345da1dce10329f5b80610049565b60405180910390fd5b61005281610063565b5061005c826100b2565b5050610130565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b806001600160a01b03163b5f036100e75760405163211eb15960e21b81526001600160a01b0382166004820152602401610040565b600180546001600160a01b0319166001600160a01b0383169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b61035a8061013d5f395ff3fe608060405234801561000f575f80fd5b5060043610610064575f3560e01c8063715018a61161004d578063715018a6146100c05780638da5cb5b146100c8578063f2fde38b146100e5575f80fd5b80633659cfe6146100685780635c60da1b1461007d575b5f80fd5b61007b610076366004610320565b6100f8565b005b60015473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61007b61010c565b5f5473ffffffffffffffffffffffffffffffffffffffff16610097565b61007b6100f3366004610320565b61011f565b610100610184565b610109816101d6565b50565b610114610184565b61011d5f6102ac565b565b610127610184565b73ffffffffffffffffffffffffffffffffffffffff811661017b576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f60048201526024015b60405180910390fd5b610109816102ac565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461011d576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610172565b8073ffffffffffffffffffffffffffffffffffffffff163b5f0361023e576040517f847ac56400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602401610172565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f60208284031215610330575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610353575f80fd5b939250505056"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b5060043610610064575f3560e01c8063715018a61161004d578063715018a6146100c05780638da5cb5b146100c8578063f2fde38b146100e5575f80fd5b80633659cfe6146100685780635c60da1b1461007d575b5f80fd5b61007b610076366004610320565b6100f8565b005b60015473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61007b61010c565b5f5473ffffffffffffffffffffffffffffffffffffffff16610097565b61007b6100f3366004610320565b61011f565b610100610184565b610109816101d6565b50565b610114610184565b61011d5f6102ac565b565b610127610184565b73ffffffffffffffffffffffffffffffffffffffff811661017b576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f60048201526024015b60405180910390fd5b610109816102ac565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461011d576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610172565b8073ffffffffffffffffffffffffffffffffffffffff163b5f0361023e576040517f847ac56400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602401610172565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f60208284031215610330575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610353575f80fd5b939250505056"; diff --git a/src/generated/0_1_8/StoxWrappedTokenVaultBeaconSetDeployer.pointers.sol b/src/generated/0_1_8/StoxWrappedTokenVaultBeaconSetDeployer.pointers.sol deleted file mode 100644 index 231752f1..00000000 --- a/src/generated/0_1_8/StoxWrappedTokenVaultBeaconSetDeployer.pointers.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity ^0.8.25; - -// THIS FILE IS AUTOGENERATED BY ./script/BuildPointers.sol - -// This file is committed to the repository because there is a circular -// dependency between the contract and its pointers file. The contract -// needs the pointers file to exist so that it can compile, and the pointers -// file needs the contract to exist so that it can be compiled. - -/// @dev Hash of the known bytecode. -bytes32 constant BYTECODE_HASH = bytes32(0x940e3ab4278cf7ae44026596f4f32dc5c7f3facd99ef8070c63b5cfefd49a47c); - -/// @dev The deterministic deploy address of the contract when deployed via -/// the Zoltu factory. -address constant DEPLOYED_ADDRESS = address(0x6B4232f1046F1f1bb99a1184D886bBaF3Cd7e15A); - -/// @dev The creation bytecode of the contract. -bytes constant CREATION_CODE = - hex"6080604052348015600e575f80fd5b506109468061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c806301ffc9a714610038578063d786858b14610060575b5f80fd5b61004b610046366004610333565b610098565b60405190151581526020015b60405180910390f35b61007361006e366004610379565b610130565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610057565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fd786858b00000000000000000000000000000000000000000000000000000000148061012a57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff821661017e576040517fe51a7ce200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f739fd790f65ca3af2772358c653f097f0a4c7ee7d26040516101a090610326565b73ffffffffffffffffffffffffffffffffffffffff90911681526040602082018190525f90820152606001604051809103905ff0801580156101e4573d5f803e3d5ffd5b506040805133815273ffffffffffffffffffffffffffffffffffffffff831660208201529192507f82488d8ab594db2178e4a45b7106aaa804836e608f001b5d7fcb6c3514730b3e910160405180910390a16040805173ffffffffffffffffffffffffffffffffffffffff85811660208301527fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc3929084169163439fab9191016040516020818303038152906040526040518263ffffffff1660e01b81526004016102af91906103ac565b6020604051808303815f875af11580156102cb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ef91906103ff565b1461012a576040517f09c5931500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61052f8061041783390190565b5f60208284031215610343575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610372575f80fd5b9392505050565b5f60208284031215610389575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610372575f80fd5b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b5f6020828403121561040f575f80fd5b505191905056fe60a060405260405161052f38038061052f83398101604081905261002291610331565b61002c828261003e565b506001600160a01b031660805261040d565b610047826100fb565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a28051156100ef576100ea826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e491906103ed565b82610209565b505050565b6100f76102aa565b5050565b806001600160a01b03163b5f0361013557604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b815290515f92841691635c60da1b9160048083019260209291908290030181865afa1580156101ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d291906103ed565b9050806001600160a01b03163b5f036100f757604051634c9c8ce360e01b81526001600160a01b038216600482015260240161012c565b60605f61021684846102cb565b905080801561023757505f3d118061023757505f846001600160a01b03163b115b1561024c576102446102de565b9150506102a4565b801561027657604051639996b31560e01b81526001600160a01b038516600482015260240161012c565b3d15610289576102846102f7565b6102a2565b60405163d6bda27560e01b815260040160405180910390fd5b505b92915050565b34156102c95760405163b398979f60e01b815260040160405180910390fd5b565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b6040513d5f823e3d81fd5b80516001600160a01b0381168114610318575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215610342575f80fd5b61034b83610302565b60208401519092506001600160401b0380821115610367575f80fd5b818501915085601f83011261037a575f80fd5b81518181111561038c5761038c61031d565b604051601f8201601f19908116603f011681019083821181831017156103b4576103b461031d565b816040528281528860208487010111156103cc575f80fd5b8260208601602083015e5f6020848301015280955050505050509250929050565b5f602082840312156103fd575f80fd5b61040682610302565b9392505050565b60805161010b6104245f395f6023015261010b5ff3fe608060405261000c61000e565b005b61001e610019610020565b6100b3565b565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561008a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100ae91906100d1565b905090565b365f80375f80365f845af43d5f803e8080156100cd573d5ff35b3d5ffd5b5f602082840312156100e1575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610104575f80fd5b939250505056"; - -/// @dev The runtime bytecode of the contract. -bytes constant RUNTIME_CODE = - hex"608060405234801561000f575f80fd5b5060043610610034575f3560e01c806301ffc9a714610038578063d786858b14610060575b5f80fd5b61004b610046366004610333565b610098565b60405190151581526020015b60405180910390f35b61007361006e366004610379565b610130565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610057565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fd786858b00000000000000000000000000000000000000000000000000000000148061012a57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff821661017e576040517fe51a7ce200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f739fd790f65ca3af2772358c653f097f0a4c7ee7d26040516101a090610326565b73ffffffffffffffffffffffffffffffffffffffff90911681526040602082018190525f90820152606001604051809103905ff0801580156101e4573d5f803e3d5ffd5b506040805133815273ffffffffffffffffffffffffffffffffffffffff831660208201529192507f82488d8ab594db2178e4a45b7106aaa804836e608f001b5d7fcb6c3514730b3e910160405180910390a16040805173ffffffffffffffffffffffffffffffffffffffff85811660208301527fe0e57eda3f08f2a93bbe980d3df7f9c315eac41181f58b865a13d917fe769fc3929084169163439fab9191016040516020818303038152906040526040518263ffffffff1660e01b81526004016102af91906103ac565b6020604051808303815f875af11580156102cb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ef91906103ff565b1461012a576040517f09c5931500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61052f8061041783390190565b5f60208284031215610343575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610372575f80fd5b9392505050565b5f60208284031215610389575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610372575f80fd5b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b5f6020828403121561040f575f80fd5b505191905056fe60a060405260405161052f38038061052f83398101604081905261002291610331565b61002c828261003e565b506001600160a01b031660805261040d565b610047826100fb565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a28051156100ef576100ea826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e491906103ed565b82610209565b505050565b6100f76102aa565b5050565b806001600160a01b03163b5f0361013557604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b815290515f92841691635c60da1b9160048083019260209291908290030181865afa1580156101ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d291906103ed565b9050806001600160a01b03163b5f036100f757604051634c9c8ce360e01b81526001600160a01b038216600482015260240161012c565b60605f61021684846102cb565b905080801561023757505f3d118061023757505f846001600160a01b03163b115b1561024c576102446102de565b9150506102a4565b801561027657604051639996b31560e01b81526001600160a01b038516600482015260240161012c565b3d15610289576102846102f7565b6102a2565b60405163d6bda27560e01b815260040160405180910390fd5b505b92915050565b34156102c95760405163b398979f60e01b815260040160405180910390fd5b565b5f805f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b6040513d5f823e3d81fd5b80516001600160a01b0381168114610318575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215610342575f80fd5b61034b83610302565b60208401519092506001600160401b0380821115610367575f80fd5b818501915085601f83011261037a575f80fd5b81518181111561038c5761038c61031d565b604051601f8201601f19908116603f011681019083821181831017156103b4576103b461031d565b816040528281528860208487010111156103cc575f80fd5b8260208601602083015e5f6020848301015280955050505050509250929050565b5f602082840312156103fd575f80fd5b61040682610302565b9392505050565b60805161010b6104245f395f6023015261010b5ff3fe608060405261000c61000e565b005b61001e610019610020565b6100b3565b565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561008a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100ae91906100d1565b905090565b365f80375f80365f845af43d5f803e8080156100cd573d5ff35b3d5ffd5b5f602082840312156100e1575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610104575f80fd5b939250505056"; diff --git a/src/generated/LibProdDeployCurrent.sol b/src/generated/LibProdDeployCurrent.sol index 7ed6785e..d8e8ecfe 100644 --- a/src/generated/LibProdDeployCurrent.sol +++ b/src/generated/LibProdDeployCurrent.sol @@ -6,44 +6,44 @@ pragma solidity ^0.8.25; import {LibProdDeployV4} from "./LibProdDeployV4.sol"; library LibProdDeployCurrent { - string constant DEPLOY_TAG = "0_1_8"; + string constant DEPLOY_TAG = "candidate"; address constant BEACON_INITIAL_OWNER = LibProdDeployV4.BEACON_INITIAL_OWNER; address constant STOX_PROD_AUTHORISER_V4_CLONE = LibProdDeployV4.STOX_PROD_AUTHORISER_V4_CLONE; bytes32 constant STOX_PROD_AUTHORISER_V4_CLONE_CODEHASH = LibProdDeployV4.STOX_PROD_AUTHORISER_V4_CLONE_CODEHASH; - address constant STOX_RECEIPT = LibProdDeployV4.STOX_RECEIPT_0_1_8; - bytes32 constant STOX_RECEIPT_CODEHASH = LibProdDeployV4.STOX_RECEIPT_CODEHASH_0_1_8; - address constant STOX_RECEIPT_VAULT = LibProdDeployV4.STOX_RECEIPT_VAULT_0_1_8; - bytes32 constant STOX_RECEIPT_VAULT_CODEHASH = LibProdDeployV4.STOX_RECEIPT_VAULT_CODEHASH_0_1_8; - address constant STOX_WRAPPED_TOKEN_VAULT = LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_0_1_8; - bytes32 constant STOX_WRAPPED_TOKEN_VAULT_CODEHASH = LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_CODEHASH_0_1_8; - address constant STOX_UNIFIED_DEPLOYER = LibProdDeployV4.STOX_UNIFIED_DEPLOYER_0_1_8; - bytes32 constant STOX_UNIFIED_DEPLOYER_CODEHASH = LibProdDeployV4.STOX_UNIFIED_DEPLOYER_CODEHASH_0_1_8; - address constant STOX_WRAPPED_TOKEN_VAULT_BEACON = LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_0_1_8; + address constant STOX_RECEIPT = LibProdDeployV4.STOX_RECEIPT_CANDIDATE; + bytes32 constant STOX_RECEIPT_CODEHASH = LibProdDeployV4.STOX_RECEIPT_CODEHASH_CANDIDATE; + address constant STOX_RECEIPT_VAULT = LibProdDeployV4.STOX_RECEIPT_VAULT_CANDIDATE; + bytes32 constant STOX_RECEIPT_VAULT_CODEHASH = LibProdDeployV4.STOX_RECEIPT_VAULT_CODEHASH_CANDIDATE; + address constant STOX_WRAPPED_TOKEN_VAULT = LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_CANDIDATE; + bytes32 constant STOX_WRAPPED_TOKEN_VAULT_CODEHASH = LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_CODEHASH_CANDIDATE; + address constant STOX_UNIFIED_DEPLOYER = LibProdDeployV4.STOX_UNIFIED_DEPLOYER_CANDIDATE; + bytes32 constant STOX_UNIFIED_DEPLOYER_CODEHASH = LibProdDeployV4.STOX_UNIFIED_DEPLOYER_CODEHASH_CANDIDATE; + address constant STOX_WRAPPED_TOKEN_VAULT_BEACON = LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_CANDIDATE; bytes32 constant STOX_WRAPPED_TOKEN_VAULT_BEACON_CODEHASH = - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_CODEHASH_0_1_8; + LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_CODEHASH_CANDIDATE; address constant STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER = - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_0_1_8; + LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CANDIDATE; bytes32 constant STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CODEHASH = - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_8; + LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CODEHASH_CANDIDATE; address constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER = - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_0_1_8; + LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CANDIDATE; bytes32 constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CODEHASH = - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_8; + LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CODEHASH_CANDIDATE; address constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1 = - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_0_1_8; + LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CANDIDATE; bytes32 constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CODEHASH = - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CODEHASH_0_1_8; + LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CODEHASH_CANDIDATE; address constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1 = - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_0_1_8; + LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CANDIDATE; bytes32 constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CODEHASH = - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CODEHASH_0_1_8; - address constant STOX_CORPORATE_ACTIONS_FACET = LibProdDeployV4.STOX_CORPORATE_ACTIONS_FACET_0_1_8; + LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CODEHASH_CANDIDATE; + address constant STOX_CORPORATE_ACTIONS_FACET = LibProdDeployV4.STOX_CORPORATE_ACTIONS_FACET_CANDIDATE; bytes32 constant STOX_CORPORATE_ACTIONS_FACET_CODEHASH = - LibProdDeployV4.STOX_CORPORATE_ACTIONS_FACET_CODEHASH_0_1_8; - address constant ST0X_ORCHESTRATOR = LibProdDeployV4.ST0X_ORCHESTRATOR_0_1_8; - bytes32 constant ST0X_ORCHESTRATOR_CODEHASH = LibProdDeployV4.ST0X_ORCHESTRATOR_CODEHASH_0_1_8; + LibProdDeployV4.STOX_CORPORATE_ACTIONS_FACET_CODEHASH_CANDIDATE; + address constant ST0X_ORCHESTRATOR = LibProdDeployV4.ST0X_ORCHESTRATOR_CANDIDATE; + bytes32 constant ST0X_ORCHESTRATOR_CODEHASH = LibProdDeployV4.ST0X_ORCHESTRATOR_CODEHASH_CANDIDATE; address constant ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER = - LibProdDeployV4.ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_0_1_8; + LibProdDeployV4.ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CANDIDATE; bytes32 constant ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CODEHASH = - LibProdDeployV4.ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CODEHASH_0_1_8; + LibProdDeployV4.ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CODEHASH_CANDIDATE; } diff --git a/src/generated/LibProdDeployV4.sol b/src/generated/LibProdDeployV4.sol index bfb931e2..ed09ecf4 100644 --- a/src/generated/LibProdDeployV4.sol +++ b/src/generated/LibProdDeployV4.sol @@ -64,509 +64,77 @@ import { RUNTIME_CODE as STOX_CORPORATE_ACTIONS_FACET_RUNTIME_0_1_1_GEN } from "./0_1_1/StoxCorporateActionsFacet.pointers.sol"; import { - DEPLOYED_ADDRESS as STOX_RECEIPT_ADDRESS_0_1_2_GEN, - BYTECODE_HASH as STOX_RECEIPT_CODEHASH_0_1_2_GEN, - CREATION_CODE as STOX_RECEIPT_CREATION_0_1_2_GEN, - RUNTIME_CODE as STOX_RECEIPT_RUNTIME_0_1_2_GEN -} from "./0_1_2/StoxReceipt.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_RECEIPT_VAULT_ADDRESS_0_1_2_GEN, - BYTECODE_HASH as STOX_RECEIPT_VAULT_CODEHASH_0_1_2_GEN, - CREATION_CODE as STOX_RECEIPT_VAULT_CREATION_0_1_2_GEN, - RUNTIME_CODE as STOX_RECEIPT_VAULT_RUNTIME_0_1_2_GEN -} from "./0_1_2/StoxReceiptVault.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_WRAPPED_TOKEN_VAULT_ADDRESS_0_1_2_GEN, - BYTECODE_HASH as STOX_WRAPPED_TOKEN_VAULT_CODEHASH_0_1_2_GEN, - CREATION_CODE as STOX_WRAPPED_TOKEN_VAULT_CREATION_0_1_2_GEN, - RUNTIME_CODE as STOX_WRAPPED_TOKEN_VAULT_RUNTIME_0_1_2_GEN -} from "./0_1_2/StoxWrappedTokenVault.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_UNIFIED_DEPLOYER_ADDRESS_0_1_2_GEN, - BYTECODE_HASH as STOX_UNIFIED_DEPLOYER_CODEHASH_0_1_2_GEN, - CREATION_CODE as STOX_UNIFIED_DEPLOYER_CREATION_0_1_2_GEN, - RUNTIME_CODE as STOX_UNIFIED_DEPLOYER_RUNTIME_0_1_2_GEN -} from "./0_1_2/StoxUnifiedDeployer.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_WRAPPED_TOKEN_VAULT_BEACON_ADDRESS_0_1_2_GEN, - BYTECODE_HASH as STOX_WRAPPED_TOKEN_VAULT_BEACON_CODEHASH_0_1_2_GEN, - CREATION_CODE as STOX_WRAPPED_TOKEN_VAULT_BEACON_CREATION_0_1_2_GEN, - RUNTIME_CODE as STOX_WRAPPED_TOKEN_VAULT_BEACON_RUNTIME_0_1_2_GEN -} from "./0_1_2/StoxWrappedTokenVaultBeacon.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_ADDRESS_0_1_2_GEN, - BYTECODE_HASH as STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_2_GEN, - CREATION_CODE as STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CREATION_0_1_2_GEN, - RUNTIME_CODE as STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_RUNTIME_0_1_2_GEN -} from "./0_1_2/StoxWrappedTokenVaultBeaconSetDeployer.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_ADDRESS_0_1_2_GEN, - BYTECODE_HASH as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_2_GEN, - CREATION_CODE as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CREATION_0_1_2_GEN, - RUNTIME_CODE as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_RUNTIME_0_1_2_GEN -} from "./0_1_2/StoxOffchainAssetReceiptVaultBeaconSetDeployer.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_ADDRESS_0_1_2_GEN, - BYTECODE_HASH as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CODEHASH_0_1_2_GEN, - CREATION_CODE as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CREATION_0_1_2_GEN, - RUNTIME_CODE as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_RUNTIME_0_1_2_GEN -} from "./0_1_2/StoxOffchainAssetReceiptVaultAuthorizerV1.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_ADDRESS_0_1_2_GEN, - BYTECODE_HASH as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CODEHASH_0_1_2_GEN, - CREATION_CODE as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CREATION_0_1_2_GEN, - RUNTIME_CODE as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_RUNTIME_0_1_2_GEN -} from "./0_1_2/StoxOffchainAssetReceiptVaultPaymentMintAuthorizerV1.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_CORPORATE_ACTIONS_FACET_ADDRESS_0_1_2_GEN, - BYTECODE_HASH as STOX_CORPORATE_ACTIONS_FACET_CODEHASH_0_1_2_GEN, - CREATION_CODE as STOX_CORPORATE_ACTIONS_FACET_CREATION_0_1_2_GEN, - RUNTIME_CODE as STOX_CORPORATE_ACTIONS_FACET_RUNTIME_0_1_2_GEN -} from "./0_1_2/StoxCorporateActionsFacet.pointers.sol"; -import { - DEPLOYED_ADDRESS as ST0X_ORCHESTRATOR_ADDRESS_0_1_2_GEN, - BYTECODE_HASH as ST0X_ORCHESTRATOR_CODEHASH_0_1_2_GEN, - CREATION_CODE as ST0X_ORCHESTRATOR_CREATION_0_1_2_GEN, - RUNTIME_CODE as ST0X_ORCHESTRATOR_RUNTIME_0_1_2_GEN -} from "./0_1_2/ST0xOrchestrator.pointers.sol"; -import { - DEPLOYED_ADDRESS as ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_ADDRESS_0_1_2_GEN, - BYTECODE_HASH as ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CODEHASH_0_1_2_GEN, - CREATION_CODE as ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CREATION_0_1_2_GEN, - RUNTIME_CODE as ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_RUNTIME_0_1_2_GEN -} from "./0_1_2/ST0xOrchestratorBeaconSetDeployer.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_RECEIPT_ADDRESS_0_1_3_GEN, - BYTECODE_HASH as STOX_RECEIPT_CODEHASH_0_1_3_GEN, - CREATION_CODE as STOX_RECEIPT_CREATION_0_1_3_GEN, - RUNTIME_CODE as STOX_RECEIPT_RUNTIME_0_1_3_GEN -} from "./0_1_3/StoxReceipt.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_RECEIPT_VAULT_ADDRESS_0_1_3_GEN, - BYTECODE_HASH as STOX_RECEIPT_VAULT_CODEHASH_0_1_3_GEN, - CREATION_CODE as STOX_RECEIPT_VAULT_CREATION_0_1_3_GEN, - RUNTIME_CODE as STOX_RECEIPT_VAULT_RUNTIME_0_1_3_GEN -} from "./0_1_3/StoxReceiptVault.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_WRAPPED_TOKEN_VAULT_ADDRESS_0_1_3_GEN, - BYTECODE_HASH as STOX_WRAPPED_TOKEN_VAULT_CODEHASH_0_1_3_GEN, - CREATION_CODE as STOX_WRAPPED_TOKEN_VAULT_CREATION_0_1_3_GEN, - RUNTIME_CODE as STOX_WRAPPED_TOKEN_VAULT_RUNTIME_0_1_3_GEN -} from "./0_1_3/StoxWrappedTokenVault.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_UNIFIED_DEPLOYER_ADDRESS_0_1_3_GEN, - BYTECODE_HASH as STOX_UNIFIED_DEPLOYER_CODEHASH_0_1_3_GEN, - CREATION_CODE as STOX_UNIFIED_DEPLOYER_CREATION_0_1_3_GEN, - RUNTIME_CODE as STOX_UNIFIED_DEPLOYER_RUNTIME_0_1_3_GEN -} from "./0_1_3/StoxUnifiedDeployer.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_WRAPPED_TOKEN_VAULT_BEACON_ADDRESS_0_1_3_GEN, - BYTECODE_HASH as STOX_WRAPPED_TOKEN_VAULT_BEACON_CODEHASH_0_1_3_GEN, - CREATION_CODE as STOX_WRAPPED_TOKEN_VAULT_BEACON_CREATION_0_1_3_GEN, - RUNTIME_CODE as STOX_WRAPPED_TOKEN_VAULT_BEACON_RUNTIME_0_1_3_GEN -} from "./0_1_3/StoxWrappedTokenVaultBeacon.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_ADDRESS_0_1_3_GEN, - BYTECODE_HASH as STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_3_GEN, - CREATION_CODE as STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CREATION_0_1_3_GEN, - RUNTIME_CODE as STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_RUNTIME_0_1_3_GEN -} from "./0_1_3/StoxWrappedTokenVaultBeaconSetDeployer.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_ADDRESS_0_1_3_GEN, - BYTECODE_HASH as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_3_GEN, - CREATION_CODE as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CREATION_0_1_3_GEN, - RUNTIME_CODE as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_RUNTIME_0_1_3_GEN -} from "./0_1_3/StoxOffchainAssetReceiptVaultBeaconSetDeployer.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_ADDRESS_0_1_3_GEN, - BYTECODE_HASH as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CODEHASH_0_1_3_GEN, - CREATION_CODE as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CREATION_0_1_3_GEN, - RUNTIME_CODE as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_RUNTIME_0_1_3_GEN -} from "./0_1_3/StoxOffchainAssetReceiptVaultAuthorizerV1.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_ADDRESS_0_1_3_GEN, - BYTECODE_HASH as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CODEHASH_0_1_3_GEN, - CREATION_CODE as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CREATION_0_1_3_GEN, - RUNTIME_CODE as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_RUNTIME_0_1_3_GEN -} from "./0_1_3/StoxOffchainAssetReceiptVaultPaymentMintAuthorizerV1.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_CORPORATE_ACTIONS_FACET_ADDRESS_0_1_3_GEN, - BYTECODE_HASH as STOX_CORPORATE_ACTIONS_FACET_CODEHASH_0_1_3_GEN, - CREATION_CODE as STOX_CORPORATE_ACTIONS_FACET_CREATION_0_1_3_GEN, - RUNTIME_CODE as STOX_CORPORATE_ACTIONS_FACET_RUNTIME_0_1_3_GEN -} from "./0_1_3/StoxCorporateActionsFacet.pointers.sol"; -import { - DEPLOYED_ADDRESS as ST0X_ORCHESTRATOR_ADDRESS_0_1_3_GEN, - BYTECODE_HASH as ST0X_ORCHESTRATOR_CODEHASH_0_1_3_GEN, - CREATION_CODE as ST0X_ORCHESTRATOR_CREATION_0_1_3_GEN, - RUNTIME_CODE as ST0X_ORCHESTRATOR_RUNTIME_0_1_3_GEN -} from "./0_1_3/ST0xOrchestrator.pointers.sol"; -import { - DEPLOYED_ADDRESS as ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_ADDRESS_0_1_3_GEN, - BYTECODE_HASH as ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CODEHASH_0_1_3_GEN, - CREATION_CODE as ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CREATION_0_1_3_GEN, - RUNTIME_CODE as ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_RUNTIME_0_1_3_GEN -} from "./0_1_3/ST0xOrchestratorBeaconSetDeployer.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_RECEIPT_ADDRESS_0_1_4_GEN, - BYTECODE_HASH as STOX_RECEIPT_CODEHASH_0_1_4_GEN, - CREATION_CODE as STOX_RECEIPT_CREATION_0_1_4_GEN, - RUNTIME_CODE as STOX_RECEIPT_RUNTIME_0_1_4_GEN -} from "./0_1_4/StoxReceipt.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_RECEIPT_VAULT_ADDRESS_0_1_4_GEN, - BYTECODE_HASH as STOX_RECEIPT_VAULT_CODEHASH_0_1_4_GEN, - CREATION_CODE as STOX_RECEIPT_VAULT_CREATION_0_1_4_GEN, - RUNTIME_CODE as STOX_RECEIPT_VAULT_RUNTIME_0_1_4_GEN -} from "./0_1_4/StoxReceiptVault.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_WRAPPED_TOKEN_VAULT_ADDRESS_0_1_4_GEN, - BYTECODE_HASH as STOX_WRAPPED_TOKEN_VAULT_CODEHASH_0_1_4_GEN, - CREATION_CODE as STOX_WRAPPED_TOKEN_VAULT_CREATION_0_1_4_GEN, - RUNTIME_CODE as STOX_WRAPPED_TOKEN_VAULT_RUNTIME_0_1_4_GEN -} from "./0_1_4/StoxWrappedTokenVault.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_UNIFIED_DEPLOYER_ADDRESS_0_1_4_GEN, - BYTECODE_HASH as STOX_UNIFIED_DEPLOYER_CODEHASH_0_1_4_GEN, - CREATION_CODE as STOX_UNIFIED_DEPLOYER_CREATION_0_1_4_GEN, - RUNTIME_CODE as STOX_UNIFIED_DEPLOYER_RUNTIME_0_1_4_GEN -} from "./0_1_4/StoxUnifiedDeployer.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_WRAPPED_TOKEN_VAULT_BEACON_ADDRESS_0_1_4_GEN, - BYTECODE_HASH as STOX_WRAPPED_TOKEN_VAULT_BEACON_CODEHASH_0_1_4_GEN, - CREATION_CODE as STOX_WRAPPED_TOKEN_VAULT_BEACON_CREATION_0_1_4_GEN, - RUNTIME_CODE as STOX_WRAPPED_TOKEN_VAULT_BEACON_RUNTIME_0_1_4_GEN -} from "./0_1_4/StoxWrappedTokenVaultBeacon.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_ADDRESS_0_1_4_GEN, - BYTECODE_HASH as STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_4_GEN, - CREATION_CODE as STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CREATION_0_1_4_GEN, - RUNTIME_CODE as STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_RUNTIME_0_1_4_GEN -} from "./0_1_4/StoxWrappedTokenVaultBeaconSetDeployer.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_ADDRESS_0_1_4_GEN, - BYTECODE_HASH as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_4_GEN, - CREATION_CODE as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CREATION_0_1_4_GEN, - RUNTIME_CODE as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_RUNTIME_0_1_4_GEN -} from "./0_1_4/StoxOffchainAssetReceiptVaultBeaconSetDeployer.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_ADDRESS_0_1_4_GEN, - BYTECODE_HASH as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CODEHASH_0_1_4_GEN, - CREATION_CODE as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CREATION_0_1_4_GEN, - RUNTIME_CODE as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_RUNTIME_0_1_4_GEN -} from "./0_1_4/StoxOffchainAssetReceiptVaultAuthorizerV1.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_ADDRESS_0_1_4_GEN, - BYTECODE_HASH as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CODEHASH_0_1_4_GEN, - CREATION_CODE as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CREATION_0_1_4_GEN, - RUNTIME_CODE as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_RUNTIME_0_1_4_GEN -} from "./0_1_4/StoxOffchainAssetReceiptVaultPaymentMintAuthorizerV1.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_CORPORATE_ACTIONS_FACET_ADDRESS_0_1_4_GEN, - BYTECODE_HASH as STOX_CORPORATE_ACTIONS_FACET_CODEHASH_0_1_4_GEN, - CREATION_CODE as STOX_CORPORATE_ACTIONS_FACET_CREATION_0_1_4_GEN, - RUNTIME_CODE as STOX_CORPORATE_ACTIONS_FACET_RUNTIME_0_1_4_GEN -} from "./0_1_4/StoxCorporateActionsFacet.pointers.sol"; -import { - DEPLOYED_ADDRESS as ST0X_ORCHESTRATOR_ADDRESS_0_1_4_GEN, - BYTECODE_HASH as ST0X_ORCHESTRATOR_CODEHASH_0_1_4_GEN, - CREATION_CODE as ST0X_ORCHESTRATOR_CREATION_0_1_4_GEN, - RUNTIME_CODE as ST0X_ORCHESTRATOR_RUNTIME_0_1_4_GEN -} from "./0_1_4/ST0xOrchestrator.pointers.sol"; -import { - DEPLOYED_ADDRESS as ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_ADDRESS_0_1_4_GEN, - BYTECODE_HASH as ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CODEHASH_0_1_4_GEN, - CREATION_CODE as ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CREATION_0_1_4_GEN, - RUNTIME_CODE as ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_RUNTIME_0_1_4_GEN -} from "./0_1_4/ST0xOrchestratorBeaconSetDeployer.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_RECEIPT_ADDRESS_0_1_5_GEN, - BYTECODE_HASH as STOX_RECEIPT_CODEHASH_0_1_5_GEN, - CREATION_CODE as STOX_RECEIPT_CREATION_0_1_5_GEN, - RUNTIME_CODE as STOX_RECEIPT_RUNTIME_0_1_5_GEN -} from "./0_1_5/StoxReceipt.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_RECEIPT_VAULT_ADDRESS_0_1_5_GEN, - BYTECODE_HASH as STOX_RECEIPT_VAULT_CODEHASH_0_1_5_GEN, - CREATION_CODE as STOX_RECEIPT_VAULT_CREATION_0_1_5_GEN, - RUNTIME_CODE as STOX_RECEIPT_VAULT_RUNTIME_0_1_5_GEN -} from "./0_1_5/StoxReceiptVault.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_WRAPPED_TOKEN_VAULT_ADDRESS_0_1_5_GEN, - BYTECODE_HASH as STOX_WRAPPED_TOKEN_VAULT_CODEHASH_0_1_5_GEN, - CREATION_CODE as STOX_WRAPPED_TOKEN_VAULT_CREATION_0_1_5_GEN, - RUNTIME_CODE as STOX_WRAPPED_TOKEN_VAULT_RUNTIME_0_1_5_GEN -} from "./0_1_5/StoxWrappedTokenVault.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_UNIFIED_DEPLOYER_ADDRESS_0_1_5_GEN, - BYTECODE_HASH as STOX_UNIFIED_DEPLOYER_CODEHASH_0_1_5_GEN, - CREATION_CODE as STOX_UNIFIED_DEPLOYER_CREATION_0_1_5_GEN, - RUNTIME_CODE as STOX_UNIFIED_DEPLOYER_RUNTIME_0_1_5_GEN -} from "./0_1_5/StoxUnifiedDeployer.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_WRAPPED_TOKEN_VAULT_BEACON_ADDRESS_0_1_5_GEN, - BYTECODE_HASH as STOX_WRAPPED_TOKEN_VAULT_BEACON_CODEHASH_0_1_5_GEN, - CREATION_CODE as STOX_WRAPPED_TOKEN_VAULT_BEACON_CREATION_0_1_5_GEN, - RUNTIME_CODE as STOX_WRAPPED_TOKEN_VAULT_BEACON_RUNTIME_0_1_5_GEN -} from "./0_1_5/StoxWrappedTokenVaultBeacon.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_ADDRESS_0_1_5_GEN, - BYTECODE_HASH as STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_5_GEN, - CREATION_CODE as STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CREATION_0_1_5_GEN, - RUNTIME_CODE as STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_RUNTIME_0_1_5_GEN -} from "./0_1_5/StoxWrappedTokenVaultBeaconSetDeployer.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_ADDRESS_0_1_5_GEN, - BYTECODE_HASH as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_5_GEN, - CREATION_CODE as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CREATION_0_1_5_GEN, - RUNTIME_CODE as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_RUNTIME_0_1_5_GEN -} from "./0_1_5/StoxOffchainAssetReceiptVaultBeaconSetDeployer.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_ADDRESS_0_1_5_GEN, - BYTECODE_HASH as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CODEHASH_0_1_5_GEN, - CREATION_CODE as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CREATION_0_1_5_GEN, - RUNTIME_CODE as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_RUNTIME_0_1_5_GEN -} from "./0_1_5/StoxOffchainAssetReceiptVaultAuthorizerV1.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_ADDRESS_0_1_5_GEN, - BYTECODE_HASH as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CODEHASH_0_1_5_GEN, - CREATION_CODE as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CREATION_0_1_5_GEN, - RUNTIME_CODE as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_RUNTIME_0_1_5_GEN -} from "./0_1_5/StoxOffchainAssetReceiptVaultPaymentMintAuthorizerV1.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_CORPORATE_ACTIONS_FACET_ADDRESS_0_1_5_GEN, - BYTECODE_HASH as STOX_CORPORATE_ACTIONS_FACET_CODEHASH_0_1_5_GEN, - CREATION_CODE as STOX_CORPORATE_ACTIONS_FACET_CREATION_0_1_5_GEN, - RUNTIME_CODE as STOX_CORPORATE_ACTIONS_FACET_RUNTIME_0_1_5_GEN -} from "./0_1_5/StoxCorporateActionsFacet.pointers.sol"; -import { - DEPLOYED_ADDRESS as ST0X_ORCHESTRATOR_ADDRESS_0_1_5_GEN, - BYTECODE_HASH as ST0X_ORCHESTRATOR_CODEHASH_0_1_5_GEN, - CREATION_CODE as ST0X_ORCHESTRATOR_CREATION_0_1_5_GEN, - RUNTIME_CODE as ST0X_ORCHESTRATOR_RUNTIME_0_1_5_GEN -} from "./0_1_5/ST0xOrchestrator.pointers.sol"; -import { - DEPLOYED_ADDRESS as ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_ADDRESS_0_1_5_GEN, - BYTECODE_HASH as ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CODEHASH_0_1_5_GEN, - CREATION_CODE as ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CREATION_0_1_5_GEN, - RUNTIME_CODE as ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_RUNTIME_0_1_5_GEN -} from "./0_1_5/ST0xOrchestratorBeaconSetDeployer.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_RECEIPT_ADDRESS_0_1_6_GEN, - BYTECODE_HASH as STOX_RECEIPT_CODEHASH_0_1_6_GEN, - CREATION_CODE as STOX_RECEIPT_CREATION_0_1_6_GEN, - RUNTIME_CODE as STOX_RECEIPT_RUNTIME_0_1_6_GEN -} from "./0_1_6/StoxReceipt.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_RECEIPT_VAULT_ADDRESS_0_1_6_GEN, - BYTECODE_HASH as STOX_RECEIPT_VAULT_CODEHASH_0_1_6_GEN, - CREATION_CODE as STOX_RECEIPT_VAULT_CREATION_0_1_6_GEN, - RUNTIME_CODE as STOX_RECEIPT_VAULT_RUNTIME_0_1_6_GEN -} from "./0_1_6/StoxReceiptVault.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_WRAPPED_TOKEN_VAULT_ADDRESS_0_1_6_GEN, - BYTECODE_HASH as STOX_WRAPPED_TOKEN_VAULT_CODEHASH_0_1_6_GEN, - CREATION_CODE as STOX_WRAPPED_TOKEN_VAULT_CREATION_0_1_6_GEN, - RUNTIME_CODE as STOX_WRAPPED_TOKEN_VAULT_RUNTIME_0_1_6_GEN -} from "./0_1_6/StoxWrappedTokenVault.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_UNIFIED_DEPLOYER_ADDRESS_0_1_6_GEN, - BYTECODE_HASH as STOX_UNIFIED_DEPLOYER_CODEHASH_0_1_6_GEN, - CREATION_CODE as STOX_UNIFIED_DEPLOYER_CREATION_0_1_6_GEN, - RUNTIME_CODE as STOX_UNIFIED_DEPLOYER_RUNTIME_0_1_6_GEN -} from "./0_1_6/StoxUnifiedDeployer.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_WRAPPED_TOKEN_VAULT_BEACON_ADDRESS_0_1_6_GEN, - BYTECODE_HASH as STOX_WRAPPED_TOKEN_VAULT_BEACON_CODEHASH_0_1_6_GEN, - CREATION_CODE as STOX_WRAPPED_TOKEN_VAULT_BEACON_CREATION_0_1_6_GEN, - RUNTIME_CODE as STOX_WRAPPED_TOKEN_VAULT_BEACON_RUNTIME_0_1_6_GEN -} from "./0_1_6/StoxWrappedTokenVaultBeacon.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_ADDRESS_0_1_6_GEN, - BYTECODE_HASH as STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_6_GEN, - CREATION_CODE as STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CREATION_0_1_6_GEN, - RUNTIME_CODE as STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_RUNTIME_0_1_6_GEN -} from "./0_1_6/StoxWrappedTokenVaultBeaconSetDeployer.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_ADDRESS_0_1_6_GEN, - BYTECODE_HASH as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_6_GEN, - CREATION_CODE as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CREATION_0_1_6_GEN, - RUNTIME_CODE as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_RUNTIME_0_1_6_GEN -} from "./0_1_6/StoxOffchainAssetReceiptVaultBeaconSetDeployer.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_ADDRESS_0_1_6_GEN, - BYTECODE_HASH as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CODEHASH_0_1_6_GEN, - CREATION_CODE as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CREATION_0_1_6_GEN, - RUNTIME_CODE as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_RUNTIME_0_1_6_GEN -} from "./0_1_6/StoxOffchainAssetReceiptVaultAuthorizerV1.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_ADDRESS_0_1_6_GEN, - BYTECODE_HASH as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CODEHASH_0_1_6_GEN, - CREATION_CODE as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CREATION_0_1_6_GEN, - RUNTIME_CODE as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_RUNTIME_0_1_6_GEN -} from "./0_1_6/StoxOffchainAssetReceiptVaultPaymentMintAuthorizerV1.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_CORPORATE_ACTIONS_FACET_ADDRESS_0_1_6_GEN, - BYTECODE_HASH as STOX_CORPORATE_ACTIONS_FACET_CODEHASH_0_1_6_GEN, - CREATION_CODE as STOX_CORPORATE_ACTIONS_FACET_CREATION_0_1_6_GEN, - RUNTIME_CODE as STOX_CORPORATE_ACTIONS_FACET_RUNTIME_0_1_6_GEN -} from "./0_1_6/StoxCorporateActionsFacet.pointers.sol"; -import { - DEPLOYED_ADDRESS as ST0X_ORCHESTRATOR_ADDRESS_0_1_6_GEN, - BYTECODE_HASH as ST0X_ORCHESTRATOR_CODEHASH_0_1_6_GEN, - CREATION_CODE as ST0X_ORCHESTRATOR_CREATION_0_1_6_GEN, - RUNTIME_CODE as ST0X_ORCHESTRATOR_RUNTIME_0_1_6_GEN -} from "./0_1_6/ST0xOrchestrator.pointers.sol"; -import { - DEPLOYED_ADDRESS as ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_ADDRESS_0_1_6_GEN, - BYTECODE_HASH as ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CODEHASH_0_1_6_GEN, - CREATION_CODE as ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CREATION_0_1_6_GEN, - RUNTIME_CODE as ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_RUNTIME_0_1_6_GEN -} from "./0_1_6/ST0xOrchestratorBeaconSetDeployer.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_RECEIPT_ADDRESS_0_1_7_GEN, - BYTECODE_HASH as STOX_RECEIPT_CODEHASH_0_1_7_GEN, - CREATION_CODE as STOX_RECEIPT_CREATION_0_1_7_GEN, - RUNTIME_CODE as STOX_RECEIPT_RUNTIME_0_1_7_GEN -} from "./0_1_7/StoxReceipt.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_RECEIPT_VAULT_ADDRESS_0_1_7_GEN, - BYTECODE_HASH as STOX_RECEIPT_VAULT_CODEHASH_0_1_7_GEN, - CREATION_CODE as STOX_RECEIPT_VAULT_CREATION_0_1_7_GEN, - RUNTIME_CODE as STOX_RECEIPT_VAULT_RUNTIME_0_1_7_GEN -} from "./0_1_7/StoxReceiptVault.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_WRAPPED_TOKEN_VAULT_ADDRESS_0_1_7_GEN, - BYTECODE_HASH as STOX_WRAPPED_TOKEN_VAULT_CODEHASH_0_1_7_GEN, - CREATION_CODE as STOX_WRAPPED_TOKEN_VAULT_CREATION_0_1_7_GEN, - RUNTIME_CODE as STOX_WRAPPED_TOKEN_VAULT_RUNTIME_0_1_7_GEN -} from "./0_1_7/StoxWrappedTokenVault.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_UNIFIED_DEPLOYER_ADDRESS_0_1_7_GEN, - BYTECODE_HASH as STOX_UNIFIED_DEPLOYER_CODEHASH_0_1_7_GEN, - CREATION_CODE as STOX_UNIFIED_DEPLOYER_CREATION_0_1_7_GEN, - RUNTIME_CODE as STOX_UNIFIED_DEPLOYER_RUNTIME_0_1_7_GEN -} from "./0_1_7/StoxUnifiedDeployer.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_WRAPPED_TOKEN_VAULT_BEACON_ADDRESS_0_1_7_GEN, - BYTECODE_HASH as STOX_WRAPPED_TOKEN_VAULT_BEACON_CODEHASH_0_1_7_GEN, - CREATION_CODE as STOX_WRAPPED_TOKEN_VAULT_BEACON_CREATION_0_1_7_GEN, - RUNTIME_CODE as STOX_WRAPPED_TOKEN_VAULT_BEACON_RUNTIME_0_1_7_GEN -} from "./0_1_7/StoxWrappedTokenVaultBeacon.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_ADDRESS_0_1_7_GEN, - BYTECODE_HASH as STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_7_GEN, - CREATION_CODE as STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CREATION_0_1_7_GEN, - RUNTIME_CODE as STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_RUNTIME_0_1_7_GEN -} from "./0_1_7/StoxWrappedTokenVaultBeaconSetDeployer.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_ADDRESS_0_1_7_GEN, - BYTECODE_HASH as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_7_GEN, - CREATION_CODE as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CREATION_0_1_7_GEN, - RUNTIME_CODE as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_RUNTIME_0_1_7_GEN -} from "./0_1_7/StoxOffchainAssetReceiptVaultBeaconSetDeployer.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_ADDRESS_0_1_7_GEN, - BYTECODE_HASH as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CODEHASH_0_1_7_GEN, - CREATION_CODE as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CREATION_0_1_7_GEN, - RUNTIME_CODE as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_RUNTIME_0_1_7_GEN -} from "./0_1_7/StoxOffchainAssetReceiptVaultAuthorizerV1.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_ADDRESS_0_1_7_GEN, - BYTECODE_HASH as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CODEHASH_0_1_7_GEN, - CREATION_CODE as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CREATION_0_1_7_GEN, - RUNTIME_CODE as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_RUNTIME_0_1_7_GEN -} from "./0_1_7/StoxOffchainAssetReceiptVaultPaymentMintAuthorizerV1.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_CORPORATE_ACTIONS_FACET_ADDRESS_0_1_7_GEN, - BYTECODE_HASH as STOX_CORPORATE_ACTIONS_FACET_CODEHASH_0_1_7_GEN, - CREATION_CODE as STOX_CORPORATE_ACTIONS_FACET_CREATION_0_1_7_GEN, - RUNTIME_CODE as STOX_CORPORATE_ACTIONS_FACET_RUNTIME_0_1_7_GEN -} from "./0_1_7/StoxCorporateActionsFacet.pointers.sol"; -import { - DEPLOYED_ADDRESS as ST0X_ORCHESTRATOR_ADDRESS_0_1_7_GEN, - BYTECODE_HASH as ST0X_ORCHESTRATOR_CODEHASH_0_1_7_GEN, - CREATION_CODE as ST0X_ORCHESTRATOR_CREATION_0_1_7_GEN, - RUNTIME_CODE as ST0X_ORCHESTRATOR_RUNTIME_0_1_7_GEN -} from "./0_1_7/ST0xOrchestrator.pointers.sol"; -import { - DEPLOYED_ADDRESS as ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_ADDRESS_0_1_7_GEN, - BYTECODE_HASH as ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CODEHASH_0_1_7_GEN, - CREATION_CODE as ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CREATION_0_1_7_GEN, - RUNTIME_CODE as ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_RUNTIME_0_1_7_GEN -} from "./0_1_7/ST0xOrchestratorBeaconSetDeployer.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_RECEIPT_ADDRESS_0_1_8_GEN, - BYTECODE_HASH as STOX_RECEIPT_CODEHASH_0_1_8_GEN, - CREATION_CODE as STOX_RECEIPT_CREATION_0_1_8_GEN, - RUNTIME_CODE as STOX_RECEIPT_RUNTIME_0_1_8_GEN -} from "./0_1_8/StoxReceipt.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_RECEIPT_VAULT_ADDRESS_0_1_8_GEN, - BYTECODE_HASH as STOX_RECEIPT_VAULT_CODEHASH_0_1_8_GEN, - CREATION_CODE as STOX_RECEIPT_VAULT_CREATION_0_1_8_GEN, - RUNTIME_CODE as STOX_RECEIPT_VAULT_RUNTIME_0_1_8_GEN -} from "./0_1_8/StoxReceiptVault.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_WRAPPED_TOKEN_VAULT_ADDRESS_0_1_8_GEN, - BYTECODE_HASH as STOX_WRAPPED_TOKEN_VAULT_CODEHASH_0_1_8_GEN, - CREATION_CODE as STOX_WRAPPED_TOKEN_VAULT_CREATION_0_1_8_GEN, - RUNTIME_CODE as STOX_WRAPPED_TOKEN_VAULT_RUNTIME_0_1_8_GEN -} from "./0_1_8/StoxWrappedTokenVault.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_UNIFIED_DEPLOYER_ADDRESS_0_1_8_GEN, - BYTECODE_HASH as STOX_UNIFIED_DEPLOYER_CODEHASH_0_1_8_GEN, - CREATION_CODE as STOX_UNIFIED_DEPLOYER_CREATION_0_1_8_GEN, - RUNTIME_CODE as STOX_UNIFIED_DEPLOYER_RUNTIME_0_1_8_GEN -} from "./0_1_8/StoxUnifiedDeployer.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_WRAPPED_TOKEN_VAULT_BEACON_ADDRESS_0_1_8_GEN, - BYTECODE_HASH as STOX_WRAPPED_TOKEN_VAULT_BEACON_CODEHASH_0_1_8_GEN, - CREATION_CODE as STOX_WRAPPED_TOKEN_VAULT_BEACON_CREATION_0_1_8_GEN, - RUNTIME_CODE as STOX_WRAPPED_TOKEN_VAULT_BEACON_RUNTIME_0_1_8_GEN -} from "./0_1_8/StoxWrappedTokenVaultBeacon.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_ADDRESS_0_1_8_GEN, - BYTECODE_HASH as STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_8_GEN, - CREATION_CODE as STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CREATION_0_1_8_GEN, - RUNTIME_CODE as STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_RUNTIME_0_1_8_GEN -} from "./0_1_8/StoxWrappedTokenVaultBeaconSetDeployer.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_ADDRESS_0_1_8_GEN, - BYTECODE_HASH as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_8_GEN, - CREATION_CODE as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CREATION_0_1_8_GEN, - RUNTIME_CODE as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_RUNTIME_0_1_8_GEN -} from "./0_1_8/StoxOffchainAssetReceiptVaultBeaconSetDeployer.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_ADDRESS_0_1_8_GEN, - BYTECODE_HASH as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CODEHASH_0_1_8_GEN, - CREATION_CODE as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CREATION_0_1_8_GEN, - RUNTIME_CODE as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_RUNTIME_0_1_8_GEN -} from "./0_1_8/StoxOffchainAssetReceiptVaultAuthorizerV1.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_ADDRESS_0_1_8_GEN, - BYTECODE_HASH as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CODEHASH_0_1_8_GEN, - CREATION_CODE as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CREATION_0_1_8_GEN, - RUNTIME_CODE as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_RUNTIME_0_1_8_GEN -} from "./0_1_8/StoxOffchainAssetReceiptVaultPaymentMintAuthorizerV1.pointers.sol"; -import { - DEPLOYED_ADDRESS as STOX_CORPORATE_ACTIONS_FACET_ADDRESS_0_1_8_GEN, - BYTECODE_HASH as STOX_CORPORATE_ACTIONS_FACET_CODEHASH_0_1_8_GEN, - CREATION_CODE as STOX_CORPORATE_ACTIONS_FACET_CREATION_0_1_8_GEN, - RUNTIME_CODE as STOX_CORPORATE_ACTIONS_FACET_RUNTIME_0_1_8_GEN -} from "./0_1_8/StoxCorporateActionsFacet.pointers.sol"; -import { - DEPLOYED_ADDRESS as ST0X_ORCHESTRATOR_ADDRESS_0_1_8_GEN, - BYTECODE_HASH as ST0X_ORCHESTRATOR_CODEHASH_0_1_8_GEN, - CREATION_CODE as ST0X_ORCHESTRATOR_CREATION_0_1_8_GEN, - RUNTIME_CODE as ST0X_ORCHESTRATOR_RUNTIME_0_1_8_GEN -} from "./0_1_8/ST0xOrchestrator.pointers.sol"; -import { - DEPLOYED_ADDRESS as ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_ADDRESS_0_1_8_GEN, - BYTECODE_HASH as ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CODEHASH_0_1_8_GEN, - CREATION_CODE as ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CREATION_0_1_8_GEN, - RUNTIME_CODE as ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_RUNTIME_0_1_8_GEN -} from "./0_1_8/ST0xOrchestratorBeaconSetDeployer.pointers.sol"; + DEPLOYED_ADDRESS as STOX_RECEIPT_ADDRESS_CANDIDATE_GEN, + BYTECODE_HASH as STOX_RECEIPT_CODEHASH_CANDIDATE_GEN, + CREATION_CODE as STOX_RECEIPT_CREATION_CANDIDATE_GEN, + RUNTIME_CODE as STOX_RECEIPT_RUNTIME_CANDIDATE_GEN +} from "./candidate/StoxReceipt.pointers.sol"; +import { + DEPLOYED_ADDRESS as STOX_RECEIPT_VAULT_ADDRESS_CANDIDATE_GEN, + BYTECODE_HASH as STOX_RECEIPT_VAULT_CODEHASH_CANDIDATE_GEN, + CREATION_CODE as STOX_RECEIPT_VAULT_CREATION_CANDIDATE_GEN, + RUNTIME_CODE as STOX_RECEIPT_VAULT_RUNTIME_CANDIDATE_GEN +} from "./candidate/StoxReceiptVault.pointers.sol"; +import { + DEPLOYED_ADDRESS as STOX_WRAPPED_TOKEN_VAULT_ADDRESS_CANDIDATE_GEN, + BYTECODE_HASH as STOX_WRAPPED_TOKEN_VAULT_CODEHASH_CANDIDATE_GEN, + CREATION_CODE as STOX_WRAPPED_TOKEN_VAULT_CREATION_CANDIDATE_GEN, + RUNTIME_CODE as STOX_WRAPPED_TOKEN_VAULT_RUNTIME_CANDIDATE_GEN +} from "./candidate/StoxWrappedTokenVault.pointers.sol"; +import { + DEPLOYED_ADDRESS as STOX_UNIFIED_DEPLOYER_ADDRESS_CANDIDATE_GEN, + BYTECODE_HASH as STOX_UNIFIED_DEPLOYER_CODEHASH_CANDIDATE_GEN, + CREATION_CODE as STOX_UNIFIED_DEPLOYER_CREATION_CANDIDATE_GEN, + RUNTIME_CODE as STOX_UNIFIED_DEPLOYER_RUNTIME_CANDIDATE_GEN +} from "./candidate/StoxUnifiedDeployer.pointers.sol"; +import { + DEPLOYED_ADDRESS as STOX_WRAPPED_TOKEN_VAULT_BEACON_ADDRESS_CANDIDATE_GEN, + BYTECODE_HASH as STOX_WRAPPED_TOKEN_VAULT_BEACON_CODEHASH_CANDIDATE_GEN, + CREATION_CODE as STOX_WRAPPED_TOKEN_VAULT_BEACON_CREATION_CANDIDATE_GEN, + RUNTIME_CODE as STOX_WRAPPED_TOKEN_VAULT_BEACON_RUNTIME_CANDIDATE_GEN +} from "./candidate/StoxWrappedTokenVaultBeacon.pointers.sol"; +import { + DEPLOYED_ADDRESS as STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_ADDRESS_CANDIDATE_GEN, + BYTECODE_HASH as STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CODEHASH_CANDIDATE_GEN, + CREATION_CODE as STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CREATION_CANDIDATE_GEN, + RUNTIME_CODE as STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_RUNTIME_CANDIDATE_GEN +} from "./candidate/StoxWrappedTokenVaultBeaconSetDeployer.pointers.sol"; +import { + DEPLOYED_ADDRESS as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_ADDRESS_CANDIDATE_GEN, + BYTECODE_HASH as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CODEHASH_CANDIDATE_GEN, + CREATION_CODE as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CREATION_CANDIDATE_GEN, + RUNTIME_CODE as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_RUNTIME_CANDIDATE_GEN +} from "./candidate/StoxOffchainAssetReceiptVaultBeaconSetDeployer.pointers.sol"; +import { + DEPLOYED_ADDRESS as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_ADDRESS_CANDIDATE_GEN, + BYTECODE_HASH as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CODEHASH_CANDIDATE_GEN, + CREATION_CODE as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CREATION_CANDIDATE_GEN, + RUNTIME_CODE as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_RUNTIME_CANDIDATE_GEN +} from "./candidate/StoxOffchainAssetReceiptVaultAuthorizerV1.pointers.sol"; +import { + DEPLOYED_ADDRESS as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_ADDRESS_CANDIDATE_GEN, + BYTECODE_HASH as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CODEHASH_CANDIDATE_GEN, + CREATION_CODE as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CREATION_CANDIDATE_GEN, + RUNTIME_CODE as STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_RUNTIME_CANDIDATE_GEN +} from "./candidate/StoxOffchainAssetReceiptVaultPaymentMintAuthorizerV1.pointers.sol"; +import { + DEPLOYED_ADDRESS as STOX_CORPORATE_ACTIONS_FACET_ADDRESS_CANDIDATE_GEN, + BYTECODE_HASH as STOX_CORPORATE_ACTIONS_FACET_CODEHASH_CANDIDATE_GEN, + CREATION_CODE as STOX_CORPORATE_ACTIONS_FACET_CREATION_CANDIDATE_GEN, + RUNTIME_CODE as STOX_CORPORATE_ACTIONS_FACET_RUNTIME_CANDIDATE_GEN +} from "./candidate/StoxCorporateActionsFacet.pointers.sol"; +import { + DEPLOYED_ADDRESS as ST0X_ORCHESTRATOR_ADDRESS_CANDIDATE_GEN, + BYTECODE_HASH as ST0X_ORCHESTRATOR_CODEHASH_CANDIDATE_GEN, + CREATION_CODE as ST0X_ORCHESTRATOR_CREATION_CANDIDATE_GEN, + RUNTIME_CODE as ST0X_ORCHESTRATOR_RUNTIME_CANDIDATE_GEN +} from "./candidate/ST0xOrchestrator.pointers.sol"; +import { + DEPLOYED_ADDRESS as ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_ADDRESS_CANDIDATE_GEN, + BYTECODE_HASH as ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CODEHASH_CANDIDATE_GEN, + CREATION_CODE as ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CREATION_CANDIDATE_GEN, + RUNTIME_CODE as ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_RUNTIME_CANDIDATE_GEN +} from "./candidate/ST0xOrchestratorBeaconSetDeployer.pointers.sol"; library LibProdDeployV4 { address constant BEACON_INITIAL_OWNER = address(0x8E4bdeec7CEB9570D440676345dA1dCe10329f5b); @@ -634,501 +202,78 @@ library LibProdDeployV4 { bytes32 constant STOX_CORPORATE_ACTIONS_FACET_CODEHASH_0_1_1 = STOX_CORPORATE_ACTIONS_FACET_CODEHASH_0_1_1_GEN; bytes constant STOX_CORPORATE_ACTIONS_FACET_CREATION_CODE_0_1_1 = STOX_CORPORATE_ACTIONS_FACET_CREATION_0_1_1_GEN; bytes constant STOX_CORPORATE_ACTIONS_FACET_RUNTIME_CODE_0_1_1 = STOX_CORPORATE_ACTIONS_FACET_RUNTIME_0_1_1_GEN; - address constant STOX_RECEIPT_0_1_2 = STOX_RECEIPT_ADDRESS_0_1_2_GEN; - bytes32 constant STOX_RECEIPT_CODEHASH_0_1_2 = STOX_RECEIPT_CODEHASH_0_1_2_GEN; - bytes constant STOX_RECEIPT_CREATION_CODE_0_1_2 = STOX_RECEIPT_CREATION_0_1_2_GEN; - bytes constant STOX_RECEIPT_RUNTIME_CODE_0_1_2 = STOX_RECEIPT_RUNTIME_0_1_2_GEN; - address constant STOX_RECEIPT_VAULT_0_1_2 = STOX_RECEIPT_VAULT_ADDRESS_0_1_2_GEN; - bytes32 constant STOX_RECEIPT_VAULT_CODEHASH_0_1_2 = STOX_RECEIPT_VAULT_CODEHASH_0_1_2_GEN; - bytes constant STOX_RECEIPT_VAULT_CREATION_CODE_0_1_2 = STOX_RECEIPT_VAULT_CREATION_0_1_2_GEN; - bytes constant STOX_RECEIPT_VAULT_RUNTIME_CODE_0_1_2 = STOX_RECEIPT_VAULT_RUNTIME_0_1_2_GEN; - address constant STOX_WRAPPED_TOKEN_VAULT_0_1_2 = STOX_WRAPPED_TOKEN_VAULT_ADDRESS_0_1_2_GEN; - bytes32 constant STOX_WRAPPED_TOKEN_VAULT_CODEHASH_0_1_2 = STOX_WRAPPED_TOKEN_VAULT_CODEHASH_0_1_2_GEN; - bytes constant STOX_WRAPPED_TOKEN_VAULT_CREATION_CODE_0_1_2 = STOX_WRAPPED_TOKEN_VAULT_CREATION_0_1_2_GEN; - bytes constant STOX_WRAPPED_TOKEN_VAULT_RUNTIME_CODE_0_1_2 = STOX_WRAPPED_TOKEN_VAULT_RUNTIME_0_1_2_GEN; - address constant STOX_UNIFIED_DEPLOYER_0_1_2 = STOX_UNIFIED_DEPLOYER_ADDRESS_0_1_2_GEN; - bytes32 constant STOX_UNIFIED_DEPLOYER_CODEHASH_0_1_2 = STOX_UNIFIED_DEPLOYER_CODEHASH_0_1_2_GEN; - bytes constant STOX_UNIFIED_DEPLOYER_CREATION_CODE_0_1_2 = STOX_UNIFIED_DEPLOYER_CREATION_0_1_2_GEN; - bytes constant STOX_UNIFIED_DEPLOYER_RUNTIME_CODE_0_1_2 = STOX_UNIFIED_DEPLOYER_RUNTIME_0_1_2_GEN; - address constant STOX_WRAPPED_TOKEN_VAULT_BEACON_0_1_2 = STOX_WRAPPED_TOKEN_VAULT_BEACON_ADDRESS_0_1_2_GEN; - bytes32 constant STOX_WRAPPED_TOKEN_VAULT_BEACON_CODEHASH_0_1_2 = - STOX_WRAPPED_TOKEN_VAULT_BEACON_CODEHASH_0_1_2_GEN; - bytes constant STOX_WRAPPED_TOKEN_VAULT_BEACON_CREATION_CODE_0_1_2 = - STOX_WRAPPED_TOKEN_VAULT_BEACON_CREATION_0_1_2_GEN; - bytes constant STOX_WRAPPED_TOKEN_VAULT_BEACON_RUNTIME_CODE_0_1_2 = - STOX_WRAPPED_TOKEN_VAULT_BEACON_RUNTIME_0_1_2_GEN; - address constant STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_0_1_2 = - STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_ADDRESS_0_1_2_GEN; - bytes32 constant STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_2 = - STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_2_GEN; - bytes constant STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CREATION_CODE_0_1_2 = - STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CREATION_0_1_2_GEN; - bytes constant STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_RUNTIME_CODE_0_1_2 = - STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_RUNTIME_0_1_2_GEN; - address constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_0_1_2 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_ADDRESS_0_1_2_GEN; - bytes32 constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_2 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_2_GEN; - bytes constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CREATION_CODE_0_1_2 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CREATION_0_1_2_GEN; - bytes constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_RUNTIME_CODE_0_1_2 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_RUNTIME_0_1_2_GEN; - address constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_0_1_2 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_ADDRESS_0_1_2_GEN; - bytes32 constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CODEHASH_0_1_2 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CODEHASH_0_1_2_GEN; - bytes constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CREATION_CODE_0_1_2 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CREATION_0_1_2_GEN; - bytes constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_RUNTIME_CODE_0_1_2 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_RUNTIME_0_1_2_GEN; - address constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_0_1_2 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_ADDRESS_0_1_2_GEN; - bytes32 constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CODEHASH_0_1_2 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CODEHASH_0_1_2_GEN; - bytes constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CREATION_CODE_0_1_2 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CREATION_0_1_2_GEN; - bytes constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_RUNTIME_CODE_0_1_2 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_RUNTIME_0_1_2_GEN; - address constant STOX_CORPORATE_ACTIONS_FACET_0_1_2 = STOX_CORPORATE_ACTIONS_FACET_ADDRESS_0_1_2_GEN; - bytes32 constant STOX_CORPORATE_ACTIONS_FACET_CODEHASH_0_1_2 = STOX_CORPORATE_ACTIONS_FACET_CODEHASH_0_1_2_GEN; - bytes constant STOX_CORPORATE_ACTIONS_FACET_CREATION_CODE_0_1_2 = STOX_CORPORATE_ACTIONS_FACET_CREATION_0_1_2_GEN; - bytes constant STOX_CORPORATE_ACTIONS_FACET_RUNTIME_CODE_0_1_2 = STOX_CORPORATE_ACTIONS_FACET_RUNTIME_0_1_2_GEN; - address constant ST0X_ORCHESTRATOR_0_1_2 = ST0X_ORCHESTRATOR_ADDRESS_0_1_2_GEN; - bytes32 constant ST0X_ORCHESTRATOR_CODEHASH_0_1_2 = ST0X_ORCHESTRATOR_CODEHASH_0_1_2_GEN; - bytes constant ST0X_ORCHESTRATOR_CREATION_CODE_0_1_2 = ST0X_ORCHESTRATOR_CREATION_0_1_2_GEN; - bytes constant ST0X_ORCHESTRATOR_RUNTIME_CODE_0_1_2 = ST0X_ORCHESTRATOR_RUNTIME_0_1_2_GEN; - address constant ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_0_1_2 = - ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_ADDRESS_0_1_2_GEN; - bytes32 constant ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CODEHASH_0_1_2 = - ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CODEHASH_0_1_2_GEN; - bytes constant ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CREATION_CODE_0_1_2 = - ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CREATION_0_1_2_GEN; - bytes constant ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_RUNTIME_CODE_0_1_2 = - ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_RUNTIME_0_1_2_GEN; - address constant STOX_RECEIPT_0_1_3 = STOX_RECEIPT_ADDRESS_0_1_3_GEN; - bytes32 constant STOX_RECEIPT_CODEHASH_0_1_3 = STOX_RECEIPT_CODEHASH_0_1_3_GEN; - bytes constant STOX_RECEIPT_CREATION_CODE_0_1_3 = STOX_RECEIPT_CREATION_0_1_3_GEN; - bytes constant STOX_RECEIPT_RUNTIME_CODE_0_1_3 = STOX_RECEIPT_RUNTIME_0_1_3_GEN; - address constant STOX_RECEIPT_VAULT_0_1_3 = STOX_RECEIPT_VAULT_ADDRESS_0_1_3_GEN; - bytes32 constant STOX_RECEIPT_VAULT_CODEHASH_0_1_3 = STOX_RECEIPT_VAULT_CODEHASH_0_1_3_GEN; - bytes constant STOX_RECEIPT_VAULT_CREATION_CODE_0_1_3 = STOX_RECEIPT_VAULT_CREATION_0_1_3_GEN; - bytes constant STOX_RECEIPT_VAULT_RUNTIME_CODE_0_1_3 = STOX_RECEIPT_VAULT_RUNTIME_0_1_3_GEN; - address constant STOX_WRAPPED_TOKEN_VAULT_0_1_3 = STOX_WRAPPED_TOKEN_VAULT_ADDRESS_0_1_3_GEN; - bytes32 constant STOX_WRAPPED_TOKEN_VAULT_CODEHASH_0_1_3 = STOX_WRAPPED_TOKEN_VAULT_CODEHASH_0_1_3_GEN; - bytes constant STOX_WRAPPED_TOKEN_VAULT_CREATION_CODE_0_1_3 = STOX_WRAPPED_TOKEN_VAULT_CREATION_0_1_3_GEN; - bytes constant STOX_WRAPPED_TOKEN_VAULT_RUNTIME_CODE_0_1_3 = STOX_WRAPPED_TOKEN_VAULT_RUNTIME_0_1_3_GEN; - address constant STOX_UNIFIED_DEPLOYER_0_1_3 = STOX_UNIFIED_DEPLOYER_ADDRESS_0_1_3_GEN; - bytes32 constant STOX_UNIFIED_DEPLOYER_CODEHASH_0_1_3 = STOX_UNIFIED_DEPLOYER_CODEHASH_0_1_3_GEN; - bytes constant STOX_UNIFIED_DEPLOYER_CREATION_CODE_0_1_3 = STOX_UNIFIED_DEPLOYER_CREATION_0_1_3_GEN; - bytes constant STOX_UNIFIED_DEPLOYER_RUNTIME_CODE_0_1_3 = STOX_UNIFIED_DEPLOYER_RUNTIME_0_1_3_GEN; - address constant STOX_WRAPPED_TOKEN_VAULT_BEACON_0_1_3 = STOX_WRAPPED_TOKEN_VAULT_BEACON_ADDRESS_0_1_3_GEN; - bytes32 constant STOX_WRAPPED_TOKEN_VAULT_BEACON_CODEHASH_0_1_3 = - STOX_WRAPPED_TOKEN_VAULT_BEACON_CODEHASH_0_1_3_GEN; - bytes constant STOX_WRAPPED_TOKEN_VAULT_BEACON_CREATION_CODE_0_1_3 = - STOX_WRAPPED_TOKEN_VAULT_BEACON_CREATION_0_1_3_GEN; - bytes constant STOX_WRAPPED_TOKEN_VAULT_BEACON_RUNTIME_CODE_0_1_3 = - STOX_WRAPPED_TOKEN_VAULT_BEACON_RUNTIME_0_1_3_GEN; - address constant STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_0_1_3 = - STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_ADDRESS_0_1_3_GEN; - bytes32 constant STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_3 = - STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_3_GEN; - bytes constant STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CREATION_CODE_0_1_3 = - STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CREATION_0_1_3_GEN; - bytes constant STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_RUNTIME_CODE_0_1_3 = - STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_RUNTIME_0_1_3_GEN; - address constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_0_1_3 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_ADDRESS_0_1_3_GEN; - bytes32 constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_3 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_3_GEN; - bytes constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CREATION_CODE_0_1_3 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CREATION_0_1_3_GEN; - bytes constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_RUNTIME_CODE_0_1_3 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_RUNTIME_0_1_3_GEN; - address constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_0_1_3 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_ADDRESS_0_1_3_GEN; - bytes32 constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CODEHASH_0_1_3 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CODEHASH_0_1_3_GEN; - bytes constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CREATION_CODE_0_1_3 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CREATION_0_1_3_GEN; - bytes constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_RUNTIME_CODE_0_1_3 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_RUNTIME_0_1_3_GEN; - address constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_0_1_3 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_ADDRESS_0_1_3_GEN; - bytes32 constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CODEHASH_0_1_3 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CODEHASH_0_1_3_GEN; - bytes constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CREATION_CODE_0_1_3 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CREATION_0_1_3_GEN; - bytes constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_RUNTIME_CODE_0_1_3 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_RUNTIME_0_1_3_GEN; - address constant STOX_CORPORATE_ACTIONS_FACET_0_1_3 = STOX_CORPORATE_ACTIONS_FACET_ADDRESS_0_1_3_GEN; - bytes32 constant STOX_CORPORATE_ACTIONS_FACET_CODEHASH_0_1_3 = STOX_CORPORATE_ACTIONS_FACET_CODEHASH_0_1_3_GEN; - bytes constant STOX_CORPORATE_ACTIONS_FACET_CREATION_CODE_0_1_3 = STOX_CORPORATE_ACTIONS_FACET_CREATION_0_1_3_GEN; - bytes constant STOX_CORPORATE_ACTIONS_FACET_RUNTIME_CODE_0_1_3 = STOX_CORPORATE_ACTIONS_FACET_RUNTIME_0_1_3_GEN; - address constant ST0X_ORCHESTRATOR_0_1_3 = ST0X_ORCHESTRATOR_ADDRESS_0_1_3_GEN; - bytes32 constant ST0X_ORCHESTRATOR_CODEHASH_0_1_3 = ST0X_ORCHESTRATOR_CODEHASH_0_1_3_GEN; - bytes constant ST0X_ORCHESTRATOR_CREATION_CODE_0_1_3 = ST0X_ORCHESTRATOR_CREATION_0_1_3_GEN; - bytes constant ST0X_ORCHESTRATOR_RUNTIME_CODE_0_1_3 = ST0X_ORCHESTRATOR_RUNTIME_0_1_3_GEN; - address constant ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_0_1_3 = - ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_ADDRESS_0_1_3_GEN; - bytes32 constant ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CODEHASH_0_1_3 = - ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CODEHASH_0_1_3_GEN; - bytes constant ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CREATION_CODE_0_1_3 = - ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CREATION_0_1_3_GEN; - bytes constant ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_RUNTIME_CODE_0_1_3 = - ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_RUNTIME_0_1_3_GEN; - address constant STOX_RECEIPT_0_1_4 = STOX_RECEIPT_ADDRESS_0_1_4_GEN; - bytes32 constant STOX_RECEIPT_CODEHASH_0_1_4 = STOX_RECEIPT_CODEHASH_0_1_4_GEN; - bytes constant STOX_RECEIPT_CREATION_CODE_0_1_4 = STOX_RECEIPT_CREATION_0_1_4_GEN; - bytes constant STOX_RECEIPT_RUNTIME_CODE_0_1_4 = STOX_RECEIPT_RUNTIME_0_1_4_GEN; - address constant STOX_RECEIPT_VAULT_0_1_4 = STOX_RECEIPT_VAULT_ADDRESS_0_1_4_GEN; - bytes32 constant STOX_RECEIPT_VAULT_CODEHASH_0_1_4 = STOX_RECEIPT_VAULT_CODEHASH_0_1_4_GEN; - bytes constant STOX_RECEIPT_VAULT_CREATION_CODE_0_1_4 = STOX_RECEIPT_VAULT_CREATION_0_1_4_GEN; - bytes constant STOX_RECEIPT_VAULT_RUNTIME_CODE_0_1_4 = STOX_RECEIPT_VAULT_RUNTIME_0_1_4_GEN; - address constant STOX_WRAPPED_TOKEN_VAULT_0_1_4 = STOX_WRAPPED_TOKEN_VAULT_ADDRESS_0_1_4_GEN; - bytes32 constant STOX_WRAPPED_TOKEN_VAULT_CODEHASH_0_1_4 = STOX_WRAPPED_TOKEN_VAULT_CODEHASH_0_1_4_GEN; - bytes constant STOX_WRAPPED_TOKEN_VAULT_CREATION_CODE_0_1_4 = STOX_WRAPPED_TOKEN_VAULT_CREATION_0_1_4_GEN; - bytes constant STOX_WRAPPED_TOKEN_VAULT_RUNTIME_CODE_0_1_4 = STOX_WRAPPED_TOKEN_VAULT_RUNTIME_0_1_4_GEN; - address constant STOX_UNIFIED_DEPLOYER_0_1_4 = STOX_UNIFIED_DEPLOYER_ADDRESS_0_1_4_GEN; - bytes32 constant STOX_UNIFIED_DEPLOYER_CODEHASH_0_1_4 = STOX_UNIFIED_DEPLOYER_CODEHASH_0_1_4_GEN; - bytes constant STOX_UNIFIED_DEPLOYER_CREATION_CODE_0_1_4 = STOX_UNIFIED_DEPLOYER_CREATION_0_1_4_GEN; - bytes constant STOX_UNIFIED_DEPLOYER_RUNTIME_CODE_0_1_4 = STOX_UNIFIED_DEPLOYER_RUNTIME_0_1_4_GEN; - address constant STOX_WRAPPED_TOKEN_VAULT_BEACON_0_1_4 = STOX_WRAPPED_TOKEN_VAULT_BEACON_ADDRESS_0_1_4_GEN; - bytes32 constant STOX_WRAPPED_TOKEN_VAULT_BEACON_CODEHASH_0_1_4 = - STOX_WRAPPED_TOKEN_VAULT_BEACON_CODEHASH_0_1_4_GEN; - bytes constant STOX_WRAPPED_TOKEN_VAULT_BEACON_CREATION_CODE_0_1_4 = - STOX_WRAPPED_TOKEN_VAULT_BEACON_CREATION_0_1_4_GEN; - bytes constant STOX_WRAPPED_TOKEN_VAULT_BEACON_RUNTIME_CODE_0_1_4 = - STOX_WRAPPED_TOKEN_VAULT_BEACON_RUNTIME_0_1_4_GEN; - address constant STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_0_1_4 = - STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_ADDRESS_0_1_4_GEN; - bytes32 constant STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_4 = - STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_4_GEN; - bytes constant STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CREATION_CODE_0_1_4 = - STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CREATION_0_1_4_GEN; - bytes constant STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_RUNTIME_CODE_0_1_4 = - STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_RUNTIME_0_1_4_GEN; - address constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_0_1_4 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_ADDRESS_0_1_4_GEN; - bytes32 constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_4 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_4_GEN; - bytes constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CREATION_CODE_0_1_4 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CREATION_0_1_4_GEN; - bytes constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_RUNTIME_CODE_0_1_4 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_RUNTIME_0_1_4_GEN; - address constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_0_1_4 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_ADDRESS_0_1_4_GEN; - bytes32 constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CODEHASH_0_1_4 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CODEHASH_0_1_4_GEN; - bytes constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CREATION_CODE_0_1_4 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CREATION_0_1_4_GEN; - bytes constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_RUNTIME_CODE_0_1_4 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_RUNTIME_0_1_4_GEN; - address constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_0_1_4 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_ADDRESS_0_1_4_GEN; - bytes32 constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CODEHASH_0_1_4 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CODEHASH_0_1_4_GEN; - bytes constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CREATION_CODE_0_1_4 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CREATION_0_1_4_GEN; - bytes constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_RUNTIME_CODE_0_1_4 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_RUNTIME_0_1_4_GEN; - address constant STOX_CORPORATE_ACTIONS_FACET_0_1_4 = STOX_CORPORATE_ACTIONS_FACET_ADDRESS_0_1_4_GEN; - bytes32 constant STOX_CORPORATE_ACTIONS_FACET_CODEHASH_0_1_4 = STOX_CORPORATE_ACTIONS_FACET_CODEHASH_0_1_4_GEN; - bytes constant STOX_CORPORATE_ACTIONS_FACET_CREATION_CODE_0_1_4 = STOX_CORPORATE_ACTIONS_FACET_CREATION_0_1_4_GEN; - bytes constant STOX_CORPORATE_ACTIONS_FACET_RUNTIME_CODE_0_1_4 = STOX_CORPORATE_ACTIONS_FACET_RUNTIME_0_1_4_GEN; - address constant ST0X_ORCHESTRATOR_0_1_4 = ST0X_ORCHESTRATOR_ADDRESS_0_1_4_GEN; - bytes32 constant ST0X_ORCHESTRATOR_CODEHASH_0_1_4 = ST0X_ORCHESTRATOR_CODEHASH_0_1_4_GEN; - bytes constant ST0X_ORCHESTRATOR_CREATION_CODE_0_1_4 = ST0X_ORCHESTRATOR_CREATION_0_1_4_GEN; - bytes constant ST0X_ORCHESTRATOR_RUNTIME_CODE_0_1_4 = ST0X_ORCHESTRATOR_RUNTIME_0_1_4_GEN; - address constant ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_0_1_4 = - ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_ADDRESS_0_1_4_GEN; - bytes32 constant ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CODEHASH_0_1_4 = - ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CODEHASH_0_1_4_GEN; - bytes constant ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CREATION_CODE_0_1_4 = - ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CREATION_0_1_4_GEN; - bytes constant ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_RUNTIME_CODE_0_1_4 = - ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_RUNTIME_0_1_4_GEN; - address constant STOX_RECEIPT_0_1_5 = STOX_RECEIPT_ADDRESS_0_1_5_GEN; - bytes32 constant STOX_RECEIPT_CODEHASH_0_1_5 = STOX_RECEIPT_CODEHASH_0_1_5_GEN; - bytes constant STOX_RECEIPT_CREATION_CODE_0_1_5 = STOX_RECEIPT_CREATION_0_1_5_GEN; - bytes constant STOX_RECEIPT_RUNTIME_CODE_0_1_5 = STOX_RECEIPT_RUNTIME_0_1_5_GEN; - address constant STOX_RECEIPT_VAULT_0_1_5 = STOX_RECEIPT_VAULT_ADDRESS_0_1_5_GEN; - bytes32 constant STOX_RECEIPT_VAULT_CODEHASH_0_1_5 = STOX_RECEIPT_VAULT_CODEHASH_0_1_5_GEN; - bytes constant STOX_RECEIPT_VAULT_CREATION_CODE_0_1_5 = STOX_RECEIPT_VAULT_CREATION_0_1_5_GEN; - bytes constant STOX_RECEIPT_VAULT_RUNTIME_CODE_0_1_5 = STOX_RECEIPT_VAULT_RUNTIME_0_1_5_GEN; - address constant STOX_WRAPPED_TOKEN_VAULT_0_1_5 = STOX_WRAPPED_TOKEN_VAULT_ADDRESS_0_1_5_GEN; - bytes32 constant STOX_WRAPPED_TOKEN_VAULT_CODEHASH_0_1_5 = STOX_WRAPPED_TOKEN_VAULT_CODEHASH_0_1_5_GEN; - bytes constant STOX_WRAPPED_TOKEN_VAULT_CREATION_CODE_0_1_5 = STOX_WRAPPED_TOKEN_VAULT_CREATION_0_1_5_GEN; - bytes constant STOX_WRAPPED_TOKEN_VAULT_RUNTIME_CODE_0_1_5 = STOX_WRAPPED_TOKEN_VAULT_RUNTIME_0_1_5_GEN; - address constant STOX_UNIFIED_DEPLOYER_0_1_5 = STOX_UNIFIED_DEPLOYER_ADDRESS_0_1_5_GEN; - bytes32 constant STOX_UNIFIED_DEPLOYER_CODEHASH_0_1_5 = STOX_UNIFIED_DEPLOYER_CODEHASH_0_1_5_GEN; - bytes constant STOX_UNIFIED_DEPLOYER_CREATION_CODE_0_1_5 = STOX_UNIFIED_DEPLOYER_CREATION_0_1_5_GEN; - bytes constant STOX_UNIFIED_DEPLOYER_RUNTIME_CODE_0_1_5 = STOX_UNIFIED_DEPLOYER_RUNTIME_0_1_5_GEN; - address constant STOX_WRAPPED_TOKEN_VAULT_BEACON_0_1_5 = STOX_WRAPPED_TOKEN_VAULT_BEACON_ADDRESS_0_1_5_GEN; - bytes32 constant STOX_WRAPPED_TOKEN_VAULT_BEACON_CODEHASH_0_1_5 = - STOX_WRAPPED_TOKEN_VAULT_BEACON_CODEHASH_0_1_5_GEN; - bytes constant STOX_WRAPPED_TOKEN_VAULT_BEACON_CREATION_CODE_0_1_5 = - STOX_WRAPPED_TOKEN_VAULT_BEACON_CREATION_0_1_5_GEN; - bytes constant STOX_WRAPPED_TOKEN_VAULT_BEACON_RUNTIME_CODE_0_1_5 = - STOX_WRAPPED_TOKEN_VAULT_BEACON_RUNTIME_0_1_5_GEN; - address constant STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_0_1_5 = - STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_ADDRESS_0_1_5_GEN; - bytes32 constant STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_5 = - STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_5_GEN; - bytes constant STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CREATION_CODE_0_1_5 = - STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CREATION_0_1_5_GEN; - bytes constant STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_RUNTIME_CODE_0_1_5 = - STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_RUNTIME_0_1_5_GEN; - address constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_0_1_5 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_ADDRESS_0_1_5_GEN; - bytes32 constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_5 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_5_GEN; - bytes constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CREATION_CODE_0_1_5 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CREATION_0_1_5_GEN; - bytes constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_RUNTIME_CODE_0_1_5 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_RUNTIME_0_1_5_GEN; - address constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_0_1_5 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_ADDRESS_0_1_5_GEN; - bytes32 constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CODEHASH_0_1_5 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CODEHASH_0_1_5_GEN; - bytes constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CREATION_CODE_0_1_5 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CREATION_0_1_5_GEN; - bytes constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_RUNTIME_CODE_0_1_5 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_RUNTIME_0_1_5_GEN; - address constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_0_1_5 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_ADDRESS_0_1_5_GEN; - bytes32 constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CODEHASH_0_1_5 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CODEHASH_0_1_5_GEN; - bytes constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CREATION_CODE_0_1_5 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CREATION_0_1_5_GEN; - bytes constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_RUNTIME_CODE_0_1_5 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_RUNTIME_0_1_5_GEN; - address constant STOX_CORPORATE_ACTIONS_FACET_0_1_5 = STOX_CORPORATE_ACTIONS_FACET_ADDRESS_0_1_5_GEN; - bytes32 constant STOX_CORPORATE_ACTIONS_FACET_CODEHASH_0_1_5 = STOX_CORPORATE_ACTIONS_FACET_CODEHASH_0_1_5_GEN; - bytes constant STOX_CORPORATE_ACTIONS_FACET_CREATION_CODE_0_1_5 = STOX_CORPORATE_ACTIONS_FACET_CREATION_0_1_5_GEN; - bytes constant STOX_CORPORATE_ACTIONS_FACET_RUNTIME_CODE_0_1_5 = STOX_CORPORATE_ACTIONS_FACET_RUNTIME_0_1_5_GEN; - address constant ST0X_ORCHESTRATOR_0_1_5 = ST0X_ORCHESTRATOR_ADDRESS_0_1_5_GEN; - bytes32 constant ST0X_ORCHESTRATOR_CODEHASH_0_1_5 = ST0X_ORCHESTRATOR_CODEHASH_0_1_5_GEN; - bytes constant ST0X_ORCHESTRATOR_CREATION_CODE_0_1_5 = ST0X_ORCHESTRATOR_CREATION_0_1_5_GEN; - bytes constant ST0X_ORCHESTRATOR_RUNTIME_CODE_0_1_5 = ST0X_ORCHESTRATOR_RUNTIME_0_1_5_GEN; - address constant ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_0_1_5 = - ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_ADDRESS_0_1_5_GEN; - bytes32 constant ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CODEHASH_0_1_5 = - ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CODEHASH_0_1_5_GEN; - bytes constant ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CREATION_CODE_0_1_5 = - ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CREATION_0_1_5_GEN; - bytes constant ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_RUNTIME_CODE_0_1_5 = - ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_RUNTIME_0_1_5_GEN; - address constant STOX_RECEIPT_0_1_6 = STOX_RECEIPT_ADDRESS_0_1_6_GEN; - bytes32 constant STOX_RECEIPT_CODEHASH_0_1_6 = STOX_RECEIPT_CODEHASH_0_1_6_GEN; - bytes constant STOX_RECEIPT_CREATION_CODE_0_1_6 = STOX_RECEIPT_CREATION_0_1_6_GEN; - bytes constant STOX_RECEIPT_RUNTIME_CODE_0_1_6 = STOX_RECEIPT_RUNTIME_0_1_6_GEN; - address constant STOX_RECEIPT_VAULT_0_1_6 = STOX_RECEIPT_VAULT_ADDRESS_0_1_6_GEN; - bytes32 constant STOX_RECEIPT_VAULT_CODEHASH_0_1_6 = STOX_RECEIPT_VAULT_CODEHASH_0_1_6_GEN; - bytes constant STOX_RECEIPT_VAULT_CREATION_CODE_0_1_6 = STOX_RECEIPT_VAULT_CREATION_0_1_6_GEN; - bytes constant STOX_RECEIPT_VAULT_RUNTIME_CODE_0_1_6 = STOX_RECEIPT_VAULT_RUNTIME_0_1_6_GEN; - address constant STOX_WRAPPED_TOKEN_VAULT_0_1_6 = STOX_WRAPPED_TOKEN_VAULT_ADDRESS_0_1_6_GEN; - bytes32 constant STOX_WRAPPED_TOKEN_VAULT_CODEHASH_0_1_6 = STOX_WRAPPED_TOKEN_VAULT_CODEHASH_0_1_6_GEN; - bytes constant STOX_WRAPPED_TOKEN_VAULT_CREATION_CODE_0_1_6 = STOX_WRAPPED_TOKEN_VAULT_CREATION_0_1_6_GEN; - bytes constant STOX_WRAPPED_TOKEN_VAULT_RUNTIME_CODE_0_1_6 = STOX_WRAPPED_TOKEN_VAULT_RUNTIME_0_1_6_GEN; - address constant STOX_UNIFIED_DEPLOYER_0_1_6 = STOX_UNIFIED_DEPLOYER_ADDRESS_0_1_6_GEN; - bytes32 constant STOX_UNIFIED_DEPLOYER_CODEHASH_0_1_6 = STOX_UNIFIED_DEPLOYER_CODEHASH_0_1_6_GEN; - bytes constant STOX_UNIFIED_DEPLOYER_CREATION_CODE_0_1_6 = STOX_UNIFIED_DEPLOYER_CREATION_0_1_6_GEN; - bytes constant STOX_UNIFIED_DEPLOYER_RUNTIME_CODE_0_1_6 = STOX_UNIFIED_DEPLOYER_RUNTIME_0_1_6_GEN; - address constant STOX_WRAPPED_TOKEN_VAULT_BEACON_0_1_6 = STOX_WRAPPED_TOKEN_VAULT_BEACON_ADDRESS_0_1_6_GEN; - bytes32 constant STOX_WRAPPED_TOKEN_VAULT_BEACON_CODEHASH_0_1_6 = - STOX_WRAPPED_TOKEN_VAULT_BEACON_CODEHASH_0_1_6_GEN; - bytes constant STOX_WRAPPED_TOKEN_VAULT_BEACON_CREATION_CODE_0_1_6 = - STOX_WRAPPED_TOKEN_VAULT_BEACON_CREATION_0_1_6_GEN; - bytes constant STOX_WRAPPED_TOKEN_VAULT_BEACON_RUNTIME_CODE_0_1_6 = - STOX_WRAPPED_TOKEN_VAULT_BEACON_RUNTIME_0_1_6_GEN; - address constant STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_0_1_6 = - STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_ADDRESS_0_1_6_GEN; - bytes32 constant STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_6 = - STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_6_GEN; - bytes constant STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CREATION_CODE_0_1_6 = - STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CREATION_0_1_6_GEN; - bytes constant STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_RUNTIME_CODE_0_1_6 = - STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_RUNTIME_0_1_6_GEN; - address constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_0_1_6 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_ADDRESS_0_1_6_GEN; - bytes32 constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_6 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_6_GEN; - bytes constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CREATION_CODE_0_1_6 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CREATION_0_1_6_GEN; - bytes constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_RUNTIME_CODE_0_1_6 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_RUNTIME_0_1_6_GEN; - address constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_0_1_6 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_ADDRESS_0_1_6_GEN; - bytes32 constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CODEHASH_0_1_6 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CODEHASH_0_1_6_GEN; - bytes constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CREATION_CODE_0_1_6 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CREATION_0_1_6_GEN; - bytes constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_RUNTIME_CODE_0_1_6 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_RUNTIME_0_1_6_GEN; - address constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_0_1_6 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_ADDRESS_0_1_6_GEN; - bytes32 constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CODEHASH_0_1_6 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CODEHASH_0_1_6_GEN; - bytes constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CREATION_CODE_0_1_6 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CREATION_0_1_6_GEN; - bytes constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_RUNTIME_CODE_0_1_6 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_RUNTIME_0_1_6_GEN; - address constant STOX_CORPORATE_ACTIONS_FACET_0_1_6 = STOX_CORPORATE_ACTIONS_FACET_ADDRESS_0_1_6_GEN; - bytes32 constant STOX_CORPORATE_ACTIONS_FACET_CODEHASH_0_1_6 = STOX_CORPORATE_ACTIONS_FACET_CODEHASH_0_1_6_GEN; - bytes constant STOX_CORPORATE_ACTIONS_FACET_CREATION_CODE_0_1_6 = STOX_CORPORATE_ACTIONS_FACET_CREATION_0_1_6_GEN; - bytes constant STOX_CORPORATE_ACTIONS_FACET_RUNTIME_CODE_0_1_6 = STOX_CORPORATE_ACTIONS_FACET_RUNTIME_0_1_6_GEN; - address constant ST0X_ORCHESTRATOR_0_1_6 = ST0X_ORCHESTRATOR_ADDRESS_0_1_6_GEN; - bytes32 constant ST0X_ORCHESTRATOR_CODEHASH_0_1_6 = ST0X_ORCHESTRATOR_CODEHASH_0_1_6_GEN; - bytes constant ST0X_ORCHESTRATOR_CREATION_CODE_0_1_6 = ST0X_ORCHESTRATOR_CREATION_0_1_6_GEN; - bytes constant ST0X_ORCHESTRATOR_RUNTIME_CODE_0_1_6 = ST0X_ORCHESTRATOR_RUNTIME_0_1_6_GEN; - address constant ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_0_1_6 = - ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_ADDRESS_0_1_6_GEN; - bytes32 constant ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CODEHASH_0_1_6 = - ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CODEHASH_0_1_6_GEN; - bytes constant ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CREATION_CODE_0_1_6 = - ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CREATION_0_1_6_GEN; - bytes constant ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_RUNTIME_CODE_0_1_6 = - ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_RUNTIME_0_1_6_GEN; - address constant STOX_RECEIPT_0_1_7 = STOX_RECEIPT_ADDRESS_0_1_7_GEN; - bytes32 constant STOX_RECEIPT_CODEHASH_0_1_7 = STOX_RECEIPT_CODEHASH_0_1_7_GEN; - bytes constant STOX_RECEIPT_CREATION_CODE_0_1_7 = STOX_RECEIPT_CREATION_0_1_7_GEN; - bytes constant STOX_RECEIPT_RUNTIME_CODE_0_1_7 = STOX_RECEIPT_RUNTIME_0_1_7_GEN; - address constant STOX_RECEIPT_VAULT_0_1_7 = STOX_RECEIPT_VAULT_ADDRESS_0_1_7_GEN; - bytes32 constant STOX_RECEIPT_VAULT_CODEHASH_0_1_7 = STOX_RECEIPT_VAULT_CODEHASH_0_1_7_GEN; - bytes constant STOX_RECEIPT_VAULT_CREATION_CODE_0_1_7 = STOX_RECEIPT_VAULT_CREATION_0_1_7_GEN; - bytes constant STOX_RECEIPT_VAULT_RUNTIME_CODE_0_1_7 = STOX_RECEIPT_VAULT_RUNTIME_0_1_7_GEN; - address constant STOX_WRAPPED_TOKEN_VAULT_0_1_7 = STOX_WRAPPED_TOKEN_VAULT_ADDRESS_0_1_7_GEN; - bytes32 constant STOX_WRAPPED_TOKEN_VAULT_CODEHASH_0_1_7 = STOX_WRAPPED_TOKEN_VAULT_CODEHASH_0_1_7_GEN; - bytes constant STOX_WRAPPED_TOKEN_VAULT_CREATION_CODE_0_1_7 = STOX_WRAPPED_TOKEN_VAULT_CREATION_0_1_7_GEN; - bytes constant STOX_WRAPPED_TOKEN_VAULT_RUNTIME_CODE_0_1_7 = STOX_WRAPPED_TOKEN_VAULT_RUNTIME_0_1_7_GEN; - address constant STOX_UNIFIED_DEPLOYER_0_1_7 = STOX_UNIFIED_DEPLOYER_ADDRESS_0_1_7_GEN; - bytes32 constant STOX_UNIFIED_DEPLOYER_CODEHASH_0_1_7 = STOX_UNIFIED_DEPLOYER_CODEHASH_0_1_7_GEN; - bytes constant STOX_UNIFIED_DEPLOYER_CREATION_CODE_0_1_7 = STOX_UNIFIED_DEPLOYER_CREATION_0_1_7_GEN; - bytes constant STOX_UNIFIED_DEPLOYER_RUNTIME_CODE_0_1_7 = STOX_UNIFIED_DEPLOYER_RUNTIME_0_1_7_GEN; - address constant STOX_WRAPPED_TOKEN_VAULT_BEACON_0_1_7 = STOX_WRAPPED_TOKEN_VAULT_BEACON_ADDRESS_0_1_7_GEN; - bytes32 constant STOX_WRAPPED_TOKEN_VAULT_BEACON_CODEHASH_0_1_7 = - STOX_WRAPPED_TOKEN_VAULT_BEACON_CODEHASH_0_1_7_GEN; - bytes constant STOX_WRAPPED_TOKEN_VAULT_BEACON_CREATION_CODE_0_1_7 = - STOX_WRAPPED_TOKEN_VAULT_BEACON_CREATION_0_1_7_GEN; - bytes constant STOX_WRAPPED_TOKEN_VAULT_BEACON_RUNTIME_CODE_0_1_7 = - STOX_WRAPPED_TOKEN_VAULT_BEACON_RUNTIME_0_1_7_GEN; - address constant STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_0_1_7 = - STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_ADDRESS_0_1_7_GEN; - bytes32 constant STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_7 = - STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_7_GEN; - bytes constant STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CREATION_CODE_0_1_7 = - STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CREATION_0_1_7_GEN; - bytes constant STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_RUNTIME_CODE_0_1_7 = - STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_RUNTIME_0_1_7_GEN; - address constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_0_1_7 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_ADDRESS_0_1_7_GEN; - bytes32 constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_7 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_7_GEN; - bytes constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CREATION_CODE_0_1_7 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CREATION_0_1_7_GEN; - bytes constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_RUNTIME_CODE_0_1_7 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_RUNTIME_0_1_7_GEN; - address constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_0_1_7 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_ADDRESS_0_1_7_GEN; - bytes32 constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CODEHASH_0_1_7 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CODEHASH_0_1_7_GEN; - bytes constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CREATION_CODE_0_1_7 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CREATION_0_1_7_GEN; - bytes constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_RUNTIME_CODE_0_1_7 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_RUNTIME_0_1_7_GEN; - address constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_0_1_7 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_ADDRESS_0_1_7_GEN; - bytes32 constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CODEHASH_0_1_7 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CODEHASH_0_1_7_GEN; - bytes constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CREATION_CODE_0_1_7 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CREATION_0_1_7_GEN; - bytes constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_RUNTIME_CODE_0_1_7 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_RUNTIME_0_1_7_GEN; - address constant STOX_CORPORATE_ACTIONS_FACET_0_1_7 = STOX_CORPORATE_ACTIONS_FACET_ADDRESS_0_1_7_GEN; - bytes32 constant STOX_CORPORATE_ACTIONS_FACET_CODEHASH_0_1_7 = STOX_CORPORATE_ACTIONS_FACET_CODEHASH_0_1_7_GEN; - bytes constant STOX_CORPORATE_ACTIONS_FACET_CREATION_CODE_0_1_7 = STOX_CORPORATE_ACTIONS_FACET_CREATION_0_1_7_GEN; - bytes constant STOX_CORPORATE_ACTIONS_FACET_RUNTIME_CODE_0_1_7 = STOX_CORPORATE_ACTIONS_FACET_RUNTIME_0_1_7_GEN; - address constant ST0X_ORCHESTRATOR_0_1_7 = ST0X_ORCHESTRATOR_ADDRESS_0_1_7_GEN; - bytes32 constant ST0X_ORCHESTRATOR_CODEHASH_0_1_7 = ST0X_ORCHESTRATOR_CODEHASH_0_1_7_GEN; - bytes constant ST0X_ORCHESTRATOR_CREATION_CODE_0_1_7 = ST0X_ORCHESTRATOR_CREATION_0_1_7_GEN; - bytes constant ST0X_ORCHESTRATOR_RUNTIME_CODE_0_1_7 = ST0X_ORCHESTRATOR_RUNTIME_0_1_7_GEN; - address constant ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_0_1_7 = - ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_ADDRESS_0_1_7_GEN; - bytes32 constant ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CODEHASH_0_1_7 = - ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CODEHASH_0_1_7_GEN; - bytes constant ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CREATION_CODE_0_1_7 = - ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CREATION_0_1_7_GEN; - bytes constant ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_RUNTIME_CODE_0_1_7 = - ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_RUNTIME_0_1_7_GEN; - address constant STOX_RECEIPT_0_1_8 = STOX_RECEIPT_ADDRESS_0_1_8_GEN; - bytes32 constant STOX_RECEIPT_CODEHASH_0_1_8 = STOX_RECEIPT_CODEHASH_0_1_8_GEN; - bytes constant STOX_RECEIPT_CREATION_CODE_0_1_8 = STOX_RECEIPT_CREATION_0_1_8_GEN; - bytes constant STOX_RECEIPT_RUNTIME_CODE_0_1_8 = STOX_RECEIPT_RUNTIME_0_1_8_GEN; - address constant STOX_RECEIPT_VAULT_0_1_8 = STOX_RECEIPT_VAULT_ADDRESS_0_1_8_GEN; - bytes32 constant STOX_RECEIPT_VAULT_CODEHASH_0_1_8 = STOX_RECEIPT_VAULT_CODEHASH_0_1_8_GEN; - bytes constant STOX_RECEIPT_VAULT_CREATION_CODE_0_1_8 = STOX_RECEIPT_VAULT_CREATION_0_1_8_GEN; - bytes constant STOX_RECEIPT_VAULT_RUNTIME_CODE_0_1_8 = STOX_RECEIPT_VAULT_RUNTIME_0_1_8_GEN; - address constant STOX_WRAPPED_TOKEN_VAULT_0_1_8 = STOX_WRAPPED_TOKEN_VAULT_ADDRESS_0_1_8_GEN; - bytes32 constant STOX_WRAPPED_TOKEN_VAULT_CODEHASH_0_1_8 = STOX_WRAPPED_TOKEN_VAULT_CODEHASH_0_1_8_GEN; - bytes constant STOX_WRAPPED_TOKEN_VAULT_CREATION_CODE_0_1_8 = STOX_WRAPPED_TOKEN_VAULT_CREATION_0_1_8_GEN; - bytes constant STOX_WRAPPED_TOKEN_VAULT_RUNTIME_CODE_0_1_8 = STOX_WRAPPED_TOKEN_VAULT_RUNTIME_0_1_8_GEN; - address constant STOX_UNIFIED_DEPLOYER_0_1_8 = STOX_UNIFIED_DEPLOYER_ADDRESS_0_1_8_GEN; - bytes32 constant STOX_UNIFIED_DEPLOYER_CODEHASH_0_1_8 = STOX_UNIFIED_DEPLOYER_CODEHASH_0_1_8_GEN; - bytes constant STOX_UNIFIED_DEPLOYER_CREATION_CODE_0_1_8 = STOX_UNIFIED_DEPLOYER_CREATION_0_1_8_GEN; - bytes constant STOX_UNIFIED_DEPLOYER_RUNTIME_CODE_0_1_8 = STOX_UNIFIED_DEPLOYER_RUNTIME_0_1_8_GEN; - address constant STOX_WRAPPED_TOKEN_VAULT_BEACON_0_1_8 = STOX_WRAPPED_TOKEN_VAULT_BEACON_ADDRESS_0_1_8_GEN; - bytes32 constant STOX_WRAPPED_TOKEN_VAULT_BEACON_CODEHASH_0_1_8 = - STOX_WRAPPED_TOKEN_VAULT_BEACON_CODEHASH_0_1_8_GEN; - bytes constant STOX_WRAPPED_TOKEN_VAULT_BEACON_CREATION_CODE_0_1_8 = - STOX_WRAPPED_TOKEN_VAULT_BEACON_CREATION_0_1_8_GEN; - bytes constant STOX_WRAPPED_TOKEN_VAULT_BEACON_RUNTIME_CODE_0_1_8 = - STOX_WRAPPED_TOKEN_VAULT_BEACON_RUNTIME_0_1_8_GEN; - address constant STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_0_1_8 = - STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_ADDRESS_0_1_8_GEN; - bytes32 constant STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_8 = - STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_8_GEN; - bytes constant STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CREATION_CODE_0_1_8 = - STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CREATION_0_1_8_GEN; - bytes constant STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_RUNTIME_CODE_0_1_8 = - STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_RUNTIME_0_1_8_GEN; - address constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_0_1_8 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_ADDRESS_0_1_8_GEN; - bytes32 constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_8 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_8_GEN; - bytes constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CREATION_CODE_0_1_8 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CREATION_0_1_8_GEN; - bytes constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_RUNTIME_CODE_0_1_8 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_RUNTIME_0_1_8_GEN; - address constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_0_1_8 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_ADDRESS_0_1_8_GEN; - bytes32 constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CODEHASH_0_1_8 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CODEHASH_0_1_8_GEN; - bytes constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CREATION_CODE_0_1_8 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CREATION_0_1_8_GEN; - bytes constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_RUNTIME_CODE_0_1_8 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_RUNTIME_0_1_8_GEN; - address constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_0_1_8 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_ADDRESS_0_1_8_GEN; - bytes32 constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CODEHASH_0_1_8 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CODEHASH_0_1_8_GEN; - bytes constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CREATION_CODE_0_1_8 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CREATION_0_1_8_GEN; - bytes constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_RUNTIME_CODE_0_1_8 = - STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_RUNTIME_0_1_8_GEN; - address constant STOX_CORPORATE_ACTIONS_FACET_0_1_8 = STOX_CORPORATE_ACTIONS_FACET_ADDRESS_0_1_8_GEN; - bytes32 constant STOX_CORPORATE_ACTIONS_FACET_CODEHASH_0_1_8 = STOX_CORPORATE_ACTIONS_FACET_CODEHASH_0_1_8_GEN; - bytes constant STOX_CORPORATE_ACTIONS_FACET_CREATION_CODE_0_1_8 = STOX_CORPORATE_ACTIONS_FACET_CREATION_0_1_8_GEN; - bytes constant STOX_CORPORATE_ACTIONS_FACET_RUNTIME_CODE_0_1_8 = STOX_CORPORATE_ACTIONS_FACET_RUNTIME_0_1_8_GEN; - address constant ST0X_ORCHESTRATOR_0_1_8 = ST0X_ORCHESTRATOR_ADDRESS_0_1_8_GEN; - bytes32 constant ST0X_ORCHESTRATOR_CODEHASH_0_1_8 = ST0X_ORCHESTRATOR_CODEHASH_0_1_8_GEN; - bytes constant ST0X_ORCHESTRATOR_CREATION_CODE_0_1_8 = ST0X_ORCHESTRATOR_CREATION_0_1_8_GEN; - bytes constant ST0X_ORCHESTRATOR_RUNTIME_CODE_0_1_8 = ST0X_ORCHESTRATOR_RUNTIME_0_1_8_GEN; - address constant ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_0_1_8 = - ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_ADDRESS_0_1_8_GEN; - bytes32 constant ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CODEHASH_0_1_8 = - ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CODEHASH_0_1_8_GEN; - bytes constant ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CREATION_CODE_0_1_8 = - ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CREATION_0_1_8_GEN; - bytes constant ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_RUNTIME_CODE_0_1_8 = - ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_RUNTIME_0_1_8_GEN; + address constant STOX_RECEIPT_CANDIDATE = STOX_RECEIPT_ADDRESS_CANDIDATE_GEN; + bytes32 constant STOX_RECEIPT_CODEHASH_CANDIDATE = STOX_RECEIPT_CODEHASH_CANDIDATE_GEN; + bytes constant STOX_RECEIPT_CREATION_CODE_CANDIDATE = STOX_RECEIPT_CREATION_CANDIDATE_GEN; + bytes constant STOX_RECEIPT_RUNTIME_CODE_CANDIDATE = STOX_RECEIPT_RUNTIME_CANDIDATE_GEN; + address constant STOX_RECEIPT_VAULT_CANDIDATE = STOX_RECEIPT_VAULT_ADDRESS_CANDIDATE_GEN; + bytes32 constant STOX_RECEIPT_VAULT_CODEHASH_CANDIDATE = STOX_RECEIPT_VAULT_CODEHASH_CANDIDATE_GEN; + bytes constant STOX_RECEIPT_VAULT_CREATION_CODE_CANDIDATE = STOX_RECEIPT_VAULT_CREATION_CANDIDATE_GEN; + bytes constant STOX_RECEIPT_VAULT_RUNTIME_CODE_CANDIDATE = STOX_RECEIPT_VAULT_RUNTIME_CANDIDATE_GEN; + address constant STOX_WRAPPED_TOKEN_VAULT_CANDIDATE = STOX_WRAPPED_TOKEN_VAULT_ADDRESS_CANDIDATE_GEN; + bytes32 constant STOX_WRAPPED_TOKEN_VAULT_CODEHASH_CANDIDATE = STOX_WRAPPED_TOKEN_VAULT_CODEHASH_CANDIDATE_GEN; + bytes constant STOX_WRAPPED_TOKEN_VAULT_CREATION_CODE_CANDIDATE = STOX_WRAPPED_TOKEN_VAULT_CREATION_CANDIDATE_GEN; + bytes constant STOX_WRAPPED_TOKEN_VAULT_RUNTIME_CODE_CANDIDATE = STOX_WRAPPED_TOKEN_VAULT_RUNTIME_CANDIDATE_GEN; + address constant STOX_UNIFIED_DEPLOYER_CANDIDATE = STOX_UNIFIED_DEPLOYER_ADDRESS_CANDIDATE_GEN; + bytes32 constant STOX_UNIFIED_DEPLOYER_CODEHASH_CANDIDATE = STOX_UNIFIED_DEPLOYER_CODEHASH_CANDIDATE_GEN; + bytes constant STOX_UNIFIED_DEPLOYER_CREATION_CODE_CANDIDATE = STOX_UNIFIED_DEPLOYER_CREATION_CANDIDATE_GEN; + bytes constant STOX_UNIFIED_DEPLOYER_RUNTIME_CODE_CANDIDATE = STOX_UNIFIED_DEPLOYER_RUNTIME_CANDIDATE_GEN; + address constant STOX_WRAPPED_TOKEN_VAULT_BEACON_CANDIDATE = STOX_WRAPPED_TOKEN_VAULT_BEACON_ADDRESS_CANDIDATE_GEN; + bytes32 constant STOX_WRAPPED_TOKEN_VAULT_BEACON_CODEHASH_CANDIDATE = + STOX_WRAPPED_TOKEN_VAULT_BEACON_CODEHASH_CANDIDATE_GEN; + bytes constant STOX_WRAPPED_TOKEN_VAULT_BEACON_CREATION_CODE_CANDIDATE = + STOX_WRAPPED_TOKEN_VAULT_BEACON_CREATION_CANDIDATE_GEN; + bytes constant STOX_WRAPPED_TOKEN_VAULT_BEACON_RUNTIME_CODE_CANDIDATE = + STOX_WRAPPED_TOKEN_VAULT_BEACON_RUNTIME_CANDIDATE_GEN; + address constant STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CANDIDATE = + STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_ADDRESS_CANDIDATE_GEN; + bytes32 constant STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CODEHASH_CANDIDATE = + STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CODEHASH_CANDIDATE_GEN; + bytes constant STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CREATION_CODE_CANDIDATE = + STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CREATION_CANDIDATE_GEN; + bytes constant STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_RUNTIME_CODE_CANDIDATE = + STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_RUNTIME_CANDIDATE_GEN; + address constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CANDIDATE = + STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_ADDRESS_CANDIDATE_GEN; + bytes32 constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CODEHASH_CANDIDATE = + STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CODEHASH_CANDIDATE_GEN; + bytes constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CREATION_CODE_CANDIDATE = + STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CREATION_CANDIDATE_GEN; + bytes constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_RUNTIME_CODE_CANDIDATE = + STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_RUNTIME_CANDIDATE_GEN; + address constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CANDIDATE = + STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_ADDRESS_CANDIDATE_GEN; + bytes32 constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CODEHASH_CANDIDATE = + STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CODEHASH_CANDIDATE_GEN; + bytes constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CREATION_CODE_CANDIDATE = + STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CREATION_CANDIDATE_GEN; + bytes constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_RUNTIME_CODE_CANDIDATE = + STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_RUNTIME_CANDIDATE_GEN; + address constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CANDIDATE = + STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_ADDRESS_CANDIDATE_GEN; + bytes32 constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CODEHASH_CANDIDATE = + STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CODEHASH_CANDIDATE_GEN; + bytes constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CREATION_CODE_CANDIDATE = + STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CREATION_CANDIDATE_GEN; + bytes constant STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_RUNTIME_CODE_CANDIDATE = + STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_RUNTIME_CANDIDATE_GEN; + address constant STOX_CORPORATE_ACTIONS_FACET_CANDIDATE = STOX_CORPORATE_ACTIONS_FACET_ADDRESS_CANDIDATE_GEN; + bytes32 constant STOX_CORPORATE_ACTIONS_FACET_CODEHASH_CANDIDATE = + STOX_CORPORATE_ACTIONS_FACET_CODEHASH_CANDIDATE_GEN; + bytes constant STOX_CORPORATE_ACTIONS_FACET_CREATION_CODE_CANDIDATE = + STOX_CORPORATE_ACTIONS_FACET_CREATION_CANDIDATE_GEN; + bytes constant STOX_CORPORATE_ACTIONS_FACET_RUNTIME_CODE_CANDIDATE = + STOX_CORPORATE_ACTIONS_FACET_RUNTIME_CANDIDATE_GEN; + address constant ST0X_ORCHESTRATOR_CANDIDATE = ST0X_ORCHESTRATOR_ADDRESS_CANDIDATE_GEN; + bytes32 constant ST0X_ORCHESTRATOR_CODEHASH_CANDIDATE = ST0X_ORCHESTRATOR_CODEHASH_CANDIDATE_GEN; + bytes constant ST0X_ORCHESTRATOR_CREATION_CODE_CANDIDATE = ST0X_ORCHESTRATOR_CREATION_CANDIDATE_GEN; + bytes constant ST0X_ORCHESTRATOR_RUNTIME_CODE_CANDIDATE = ST0X_ORCHESTRATOR_RUNTIME_CANDIDATE_GEN; + address constant ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CANDIDATE = + ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_ADDRESS_CANDIDATE_GEN; + bytes32 constant ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CODEHASH_CANDIDATE = + ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CODEHASH_CANDIDATE_GEN; + bytes constant ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CREATION_CODE_CANDIDATE = + ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CREATION_CANDIDATE_GEN; + bytes constant ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_RUNTIME_CODE_CANDIDATE = + ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_RUNTIME_CANDIDATE_GEN; } diff --git a/src/generated/0_1_11/ST0xOrchestrator.pointers.sol b/src/generated/candidate/ST0xOrchestrator.pointers.sol similarity index 100% rename from src/generated/0_1_11/ST0xOrchestrator.pointers.sol rename to src/generated/candidate/ST0xOrchestrator.pointers.sol diff --git a/src/generated/0_1_11/ST0xOrchestratorBeaconSetDeployer.pointers.sol b/src/generated/candidate/ST0xOrchestratorBeaconSetDeployer.pointers.sol similarity index 100% rename from src/generated/0_1_11/ST0xOrchestratorBeaconSetDeployer.pointers.sol rename to src/generated/candidate/ST0xOrchestratorBeaconSetDeployer.pointers.sol diff --git a/src/generated/0_1_11/StoxCorporateActionsFacet.pointers.sol b/src/generated/candidate/StoxCorporateActionsFacet.pointers.sol similarity index 100% rename from src/generated/0_1_11/StoxCorporateActionsFacet.pointers.sol rename to src/generated/candidate/StoxCorporateActionsFacet.pointers.sol diff --git a/src/generated/0_1_11/StoxOffchainAssetReceiptVaultAuthorizerV1.pointers.sol b/src/generated/candidate/StoxOffchainAssetReceiptVaultAuthorizerV1.pointers.sol similarity index 100% rename from src/generated/0_1_11/StoxOffchainAssetReceiptVaultAuthorizerV1.pointers.sol rename to src/generated/candidate/StoxOffchainAssetReceiptVaultAuthorizerV1.pointers.sol diff --git a/src/generated/0_1_11/StoxOffchainAssetReceiptVaultBeaconSetDeployer.pointers.sol b/src/generated/candidate/StoxOffchainAssetReceiptVaultBeaconSetDeployer.pointers.sol similarity index 100% rename from src/generated/0_1_11/StoxOffchainAssetReceiptVaultBeaconSetDeployer.pointers.sol rename to src/generated/candidate/StoxOffchainAssetReceiptVaultBeaconSetDeployer.pointers.sol diff --git a/src/generated/0_1_11/StoxOffchainAssetReceiptVaultPaymentMintAuthorizerV1.pointers.sol b/src/generated/candidate/StoxOffchainAssetReceiptVaultPaymentMintAuthorizerV1.pointers.sol similarity index 100% rename from src/generated/0_1_11/StoxOffchainAssetReceiptVaultPaymentMintAuthorizerV1.pointers.sol rename to src/generated/candidate/StoxOffchainAssetReceiptVaultPaymentMintAuthorizerV1.pointers.sol diff --git a/src/generated/0_1_11/StoxReceipt.pointers.sol b/src/generated/candidate/StoxReceipt.pointers.sol similarity index 100% rename from src/generated/0_1_11/StoxReceipt.pointers.sol rename to src/generated/candidate/StoxReceipt.pointers.sol diff --git a/src/generated/0_1_11/StoxReceiptVault.pointers.sol b/src/generated/candidate/StoxReceiptVault.pointers.sol similarity index 100% rename from src/generated/0_1_11/StoxReceiptVault.pointers.sol rename to src/generated/candidate/StoxReceiptVault.pointers.sol diff --git a/src/generated/0_1_11/StoxUnifiedDeployer.pointers.sol b/src/generated/candidate/StoxUnifiedDeployer.pointers.sol similarity index 100% rename from src/generated/0_1_11/StoxUnifiedDeployer.pointers.sol rename to src/generated/candidate/StoxUnifiedDeployer.pointers.sol diff --git a/src/generated/0_1_11/StoxWrappedTokenVault.pointers.sol b/src/generated/candidate/StoxWrappedTokenVault.pointers.sol similarity index 100% rename from src/generated/0_1_11/StoxWrappedTokenVault.pointers.sol rename to src/generated/candidate/StoxWrappedTokenVault.pointers.sol diff --git a/src/generated/0_1_11/StoxWrappedTokenVaultBeacon.pointers.sol b/src/generated/candidate/StoxWrappedTokenVaultBeacon.pointers.sol similarity index 100% rename from src/generated/0_1_11/StoxWrappedTokenVaultBeacon.pointers.sol rename to src/generated/candidate/StoxWrappedTokenVaultBeacon.pointers.sol diff --git a/src/generated/0_1_11/StoxWrappedTokenVaultBeaconSetDeployer.pointers.sol b/src/generated/candidate/StoxWrappedTokenVaultBeaconSetDeployer.pointers.sol similarity index 100% rename from src/generated/0_1_11/StoxWrappedTokenVaultBeaconSetDeployer.pointers.sol rename to src/generated/candidate/StoxWrappedTokenVaultBeaconSetDeployer.pointers.sol diff --git a/src/lib/LibStoxDeployNetworks.sol b/src/lib/LibStoxDeployNetworks.sol index b99438a8..d4dadb16 100644 --- a/src/lib/LibStoxDeployNetworks.sol +++ b/src/lib/LibStoxDeployNetworks.sol @@ -2,22 +2,15 @@ // SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd pragma solidity ^0.8.25; -import {LibRainDeploy} from "rain-deploy-0.1.4/src/lib/LibRainDeploy.sol"; - /// @title LibStoxDeployNetworks -/// @notice Single source of truth for the networks the ST0x production deploy -/// broadcasts to. `script/Deploy.sol` reads this instead of hardcoding the list -/// inline, so the supported-network set lives in one place. ST0x deploys to -/// Base and Ethereum mainnet. -/// -/// `LibRainDeploy.deployToNetworks` is idempotent per network — an -/// already-deployed contract is skipped and its codehash re-verified — so a -/// single suite run keeps every network in this list bytecode-identical by -/// construction. +/// @notice The ST0x-specific deploy network-name constants that +/// `rain-deploy`'s `LibRainDeploy` does not provide. Each matches its +/// `[rpc_endpoints]` alias in `foundry.toml`, the same convention as every +/// `LibRainDeploy` network constant. Consumed by the audited deploy script +/// `script/DeployProdV4_0_1_1.sol` and the cross-chain fork tests. library LibStoxDeployNetworks { /// @notice Ethereum mainnet network name, matching the `[rpc_endpoints]` - /// alias in `foundry.toml` (resolved from `ETHEREUM_RPC_URL`), the same - /// pattern as every `LibRainDeploy` network constant. + /// alias in `foundry.toml` (resolved from `ETHEREUM_RPC_URL`). /// @dev Declared here because `rain-deploy-0.1.4`'s `LibRainDeploy` has no /// `ETHEREUM` constant. The Zoltu factory is deployed on Ethereum mainnet at /// the canonical `LibRainDeploy.ZOLTU_FACTORY` address, so deterministic @@ -28,15 +21,6 @@ library LibStoxDeployNetworks { /// alias in `foundry.toml` (resolved from `HYPEREVM_RPC_URL`). /// @dev The Zoltu factory is deployed on HyperEVM at the canonical /// `LibRainDeploy.ZOLTU_FACTORY` address, so deterministic deploys work - /// unchanged. Not in `supportedNetworks()`: HyperEVM carries the audited - /// 0.1.1 set, not the current source `script/Deploy.sol` ships. + /// unchanged. string internal constant HYPEREVM = "hyperevm"; - - /// @notice The networks each suite in `script/Deploy.sol` is broadcast to. - /// @return networks The list of network names (Base + Ethereum mainnet). - function supportedNetworks() internal pure returns (string[] memory networks) { - networks = new string[](2); - networks[0] = LibRainDeploy.BASE; - networks[1] = ETHEREUM; - } } diff --git a/test/lib/LibTestDeploy.sol b/test/lib/LibTestDeploy.sol index 37fc5c66..eaa62926 100644 --- a/test/lib/LibTestDeploy.sol +++ b/test/lib/LibTestDeploy.sol @@ -26,17 +26,17 @@ library LibTestDeploy { LibRainDeploy.etchZoltuFactory(vm); address vault = LibRainDeploy.deployZoltu(type(StoxWrappedTokenVault).creationCode); - require(vault == LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_0_1_3, "StoxWrappedTokenVault address mismatch"); + require(vault == LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_CANDIDATE, "StoxWrappedTokenVault address mismatch"); address beacon = LibRainDeploy.deployZoltu(type(StoxWrappedTokenVaultBeacon).creationCode); require( - beacon == LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_0_1_3, + beacon == LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_CANDIDATE, "StoxWrappedTokenVaultBeacon address mismatch" ); address deployer = LibRainDeploy.deployZoltu(type(StoxWrappedTokenVaultBeaconSetDeployer).creationCode); require( - deployer == LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_0_1_3, + deployer == LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CANDIDATE, "StoxWrappedTokenVaultBeaconSetDeployer address mismatch" ); } @@ -45,14 +45,14 @@ library LibTestDeploy { LibRainDeploy.etchZoltuFactory(vm); address receipt = LibRainDeploy.deployZoltu(type(StoxReceipt).creationCode); - require(receipt == LibProdDeployV4.STOX_RECEIPT_0_1_3, "StoxReceipt address mismatch"); + require(receipt == LibProdDeployV4.STOX_RECEIPT_CANDIDATE, "StoxReceipt address mismatch"); address receiptVault = LibRainDeploy.deployZoltu(type(StoxReceiptVault).creationCode); - require(receiptVault == LibProdDeployV4.STOX_RECEIPT_VAULT_0_1_3, "StoxReceiptVault address mismatch"); + require(receiptVault == LibProdDeployV4.STOX_RECEIPT_VAULT_CANDIDATE, "StoxReceiptVault address mismatch"); address deployer = LibRainDeploy.deployZoltu(type(StoxOffchainAssetReceiptVaultBeaconSetDeployer).creationCode); require( - deployer == LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_0_1_3, + deployer == LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CANDIDATE, "StoxOffchainAssetReceiptVaultBeaconSetDeployer address mismatch" ); } @@ -62,6 +62,6 @@ library LibTestDeploy { deployOffchainAssetReceiptVaultBeaconSet(vm); address unified = LibRainDeploy.deployZoltu(type(StoxUnifiedDeployer).creationCode); - require(unified == LibProdDeployV4.STOX_UNIFIED_DEPLOYER_0_1_3, "StoxUnifiedDeployer address mismatch"); + require(unified == LibProdDeployV4.STOX_UNIFIED_DEPLOYER_CANDIDATE, "StoxUnifiedDeployer address mismatch"); } } diff --git a/test/script/Deploy.t.sol b/test/script/Deploy.t.sol deleted file mode 100644 index 16de3952..00000000 --- a/test/script/Deploy.t.sol +++ /dev/null @@ -1,62 +0,0 @@ -// SPDX-License-Identifier: LicenseRef-DCL-1.0 -// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd -pragma solidity =0.8.25; - -import {Test} from "forge-std-1.16.1/src/Test.sol"; -import { - Deploy, - DEPLOYMENT_SUITE_STOX_RECEIPT, - DEPLOYMENT_SUITE_STOX_RECEIPT_VAULT, - DEPLOYMENT_SUITE_STOX_WRAPPED_TOKEN_VAULT, - DEPLOYMENT_SUITE_STOX_WRAPPED_TOKEN_VAULT_BEACON, - DEPLOYMENT_SUITE_STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER, - DEPLOYMENT_SUITE_STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER, - DEPLOYMENT_SUITE_STOX_UNIFIED_DEPLOYER, - DEPLOYMENT_SUITE_STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1, - DEPLOYMENT_SUITE_STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1, - DEPLOYMENT_SUITE_STOX_CORPORATE_ACTIONS_FACET, - DEPLOYMENT_SUITE_ST0X_ORCHESTRATOR, - DEPLOYMENT_SUITE_ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER, - UnknownDeploymentSuite -} from "../../script/Deploy.sol"; - -contract DeployTest is Test { - /// Deployment suite constants must match their keccak256 strings. - function testDeploymentSuiteConstants() external pure { - assertEq(DEPLOYMENT_SUITE_STOX_RECEIPT, keccak256("stox-receipt")); - assertEq(DEPLOYMENT_SUITE_STOX_RECEIPT_VAULT, keccak256("stox-receipt-vault")); - assertEq(DEPLOYMENT_SUITE_STOX_WRAPPED_TOKEN_VAULT, keccak256("stox-wrapped-token-vault")); - assertEq(DEPLOYMENT_SUITE_STOX_WRAPPED_TOKEN_VAULT_BEACON, keccak256("stox-wrapped-token-vault-beacon")); - assertEq( - DEPLOYMENT_SUITE_STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER, - keccak256("stox-wrapped-token-vault-beacon-set-deployer") - ); - assertEq( - DEPLOYMENT_SUITE_STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER, - keccak256("stox-offchain-asset-receipt-vault-beacon-set-deployer") - ); - assertEq(DEPLOYMENT_SUITE_STOX_UNIFIED_DEPLOYER, keccak256("stox-unified-deployer")); - assertEq( - DEPLOYMENT_SUITE_STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1, - keccak256("stox-offchain-asset-receipt-vault-authorizer-v1") - ); - assertEq( - DEPLOYMENT_SUITE_STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1, - keccak256("stox-offchain-asset-receipt-vault-payment-mint-authorizer-v1") - ); - assertEq(DEPLOYMENT_SUITE_STOX_CORPORATE_ACTIONS_FACET, keccak256("stox-corporate-actions-facet")); - assertEq(DEPLOYMENT_SUITE_ST0X_ORCHESTRATOR, keccak256("st0x-orchestrator")); - assertEq( - DEPLOYMENT_SUITE_ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER, keccak256("st0x-orchestrator-beacon-set-deployer") - ); - } - - /// Unknown deployment suite must revert with UnknownDeploymentSuite. - function testUnknownDeploymentSuiteReverts() external { - Deploy deploy = new Deploy(); - vm.setEnv("DEPLOYMENT_KEY", vm.toString(uint256(1))); - vm.setEnv("DEPLOYMENT_SUITE", "unknown-suite"); - vm.expectRevert(abi.encodeWithSelector(UnknownDeploymentSuite.selector, keccak256("unknown-suite"))); - deploy.run(); - } -} diff --git a/test/src/concrete/ST0xOrchestrator.t.sol b/test/src/concrete/ST0xOrchestrator.t.sol index 88e36bb2..73159d66 100644 --- a/test/src/concrete/ST0xOrchestrator.t.sol +++ b/test/src/concrete/ST0xOrchestrator.t.sol @@ -62,13 +62,14 @@ contract ST0xOrchestratorTest is Test { address internal constant OWNER = address(0x0FFCE); /// The vault-version guard reads these fixed production addresses. The - /// orchestrator's `_checkVaultLogic` reads the current-release (0.1.3) pins, - /// so the mocks target the 0.1.3 deployer and impls. - address internal constant DEPLOYER = LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_0_1_3; + /// orchestrator's `_checkVaultLogic` reads the current-release (candidate) pins, + /// so the mocks target the candidate deployer and impls. + address internal constant DEPLOYER = + LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CANDIDATE; address internal constant VAULT_BEACON = address(0xBEAC04); address internal constant RECEIPT_BEACON = address(0xBEAC12); - address internal constant EXPECTED_VAULT_IMPL = LibProdDeployV4.STOX_RECEIPT_VAULT_0_1_3; - address internal constant EXPECTED_RECEIPT_IMPL = LibProdDeployV4.STOX_RECEIPT_0_1_3; + address internal constant EXPECTED_VAULT_IMPL = LibProdDeployV4.STOX_RECEIPT_VAULT_CANDIDATE; + address internal constant EXPECTED_RECEIPT_IMPL = LibProdDeployV4.STOX_RECEIPT_CANDIDATE; /// Storage-slot pre-image constant kept for cross-checking against source. bytes32 internal constant EXPECTED_MAIN_STORAGE_LOCATION = diff --git a/test/src/concrete/StoxReceiptVaultFallbackRouting.t.sol b/test/src/concrete/StoxReceiptVaultFallbackRouting.t.sol index 34b3a925..d64ac635 100644 --- a/test/src/concrete/StoxReceiptVaultFallbackRouting.t.sol +++ b/test/src/concrete/StoxReceiptVaultFallbackRouting.t.sol @@ -27,7 +27,7 @@ bytes32 constant OFFCHAIN_ASSET_RECEIPT_VAULT_STORAGE_LOCATION = /// Fallback routing tests for `StoxReceiptVault`. The vault's `fallback()` /// override delegatecalls into `StoxCorporateActionsFacet` at the deterministic -/// `LibProdDeployV4.STOX_CORPORATE_ACTIONS_FACET_0_1_3` address. +/// `LibProdDeployV4.STOX_CORPORATE_ACTIONS_FACET_CANDIDATE` address. /// /// The facet's `onlyDelegatecalled` modifier relies on an immutable `_SELF` /// captured in the constructor. `vm.etch` would leave `_SELF` pointing at the @@ -50,7 +50,7 @@ contract StoxReceiptVaultFallbackRoutingTest is Test { // constructor there so `_SELF` resolves to `STOX_CORPORATE_ACTIONS_FACET`. deployCodeTo( "src/concrete/StoxCorporateActionsFacet.sol:StoxCorporateActionsFacet", - LibProdDeployV4.STOX_CORPORATE_ACTIONS_FACET_0_1_3 + LibProdDeployV4.STOX_CORPORATE_ACTIONS_FACET_CANDIDATE ); vault = new StoxReceiptVault(); @@ -141,7 +141,7 @@ contract StoxReceiptVaultFallbackRoutingTest is Test { /// facet's `_SELF` immutable is the `LibProdDeployV4` constant and /// `address(this) == _SELF` on a direct call, firing the guard. function testDirectCallToFacetRevertsWithFacetMustBeDelegatecalled() external { - ICorporateActionsV1 facetDirect = ICorporateActionsV1(LibProdDeployV4.STOX_CORPORATE_ACTIONS_FACET_0_1_3); + ICorporateActionsV1 facetDirect = ICorporateActionsV1(LibProdDeployV4.STOX_CORPORATE_ACTIONS_FACET_CANDIDATE); vm.expectRevert(StoxCorporateActionsFacet.FacetMustBeDelegatecalled.selector); facetDirect.completedActionCount(); } diff --git a/test/src/concrete/StoxWrappedTokenVault.t.sol b/test/src/concrete/StoxWrappedTokenVault.t.sol index 9d0b7935..2b0b893f 100644 --- a/test/src/concrete/StoxWrappedTokenVault.t.sol +++ b/test/src/concrete/StoxWrappedTokenVault.t.sol @@ -37,7 +37,7 @@ contract StoxWrappedTokenVaultTest is Test { function testInitializeZeroAssetViaDeployer() external { LibTestDeploy.deployWrappedTokenVaultBeaconSet(vm); vm.expectRevert(abi.encodeWithSelector(ZeroVaultAsset.selector)); - StoxWrappedTokenVaultBeaconSetDeployer(LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_0_1_3) + StoxWrappedTokenVaultBeaconSetDeployer(LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CANDIDATE) .newStoxWrappedTokenVault(address(0)); } @@ -45,8 +45,9 @@ contract StoxWrappedTokenVaultTest is Test { /// directly on a proxy (bypassing the deployer). function testInitializeZeroAssetDirect() external { LibTestDeploy.deployWrappedTokenVaultBeaconSet(vm); - StoxWrappedTokenVault vault = - StoxWrappedTokenVault(address(new BeaconProxy(LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_0_1_3, ""))); + StoxWrappedTokenVault vault = StoxWrappedTokenVault( + address(new BeaconProxy(LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_CANDIDATE, "")) + ); vm.expectRevert(abi.encodeWithSelector(ZeroAsset.selector)); vault.initialize(abi.encode(address(0))); } @@ -56,7 +57,7 @@ contract StoxWrappedTokenVaultTest is Test { LibTestDeploy.deployWrappedTokenVaultBeaconSet(vm); MockERC20 asset = new MockERC20(); StoxWrappedTokenVault vault = StoxWrappedTokenVaultBeaconSetDeployer( - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_0_1_3 + LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CANDIDATE ).newStoxWrappedTokenVault(address(asset)); assertEq(vault.asset(), address(asset)); } @@ -65,8 +66,9 @@ contract StoxWrappedTokenVaultTest is Test { function testInitializeReturnsCloneableV2Success() external { LibTestDeploy.deployWrappedTokenVaultBeaconSet(vm); MockERC20 asset = new MockERC20(); - StoxWrappedTokenVault vault = - StoxWrappedTokenVault(address(new BeaconProxy(LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_0_1_3, ""))); + StoxWrappedTokenVault vault = StoxWrappedTokenVault( + address(new BeaconProxy(LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_CANDIDATE, "")) + ); bytes32 result = vault.initialize(abi.encode(address(asset))); assertEq(result, ICLONEABLE_V2_SUCCESS); } @@ -75,8 +77,9 @@ contract StoxWrappedTokenVaultTest is Test { function testInitializeEmitsEvent() external { LibTestDeploy.deployWrappedTokenVaultBeaconSet(vm); MockERC20 asset = new MockERC20(); - StoxWrappedTokenVault vault = - StoxWrappedTokenVault(address(new BeaconProxy(LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_0_1_3, ""))); + StoxWrappedTokenVault vault = StoxWrappedTokenVault( + address(new BeaconProxy(LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_CANDIDATE, "")) + ); vm.expectEmit(true, true, false, false, address(vault)); emit StoxWrappedTokenVault.StoxWrappedTokenVaultInitialized(address(this), address(asset)); vault.initialize(abi.encode(address(asset))); @@ -86,8 +89,9 @@ contract StoxWrappedTokenVaultTest is Test { function testDoubleInitializeReverts() external { LibTestDeploy.deployWrappedTokenVaultBeaconSet(vm); MockERC20 asset = new MockERC20(); - StoxWrappedTokenVault vault = - StoxWrappedTokenVault(address(new BeaconProxy(LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_0_1_3, ""))); + StoxWrappedTokenVault vault = StoxWrappedTokenVault( + address(new BeaconProxy(LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_CANDIDATE, "")) + ); vault.initialize(abi.encode(address(asset))); vm.expectRevert(Initializable.InvalidInitialization.selector); vault.initialize(abi.encode(address(asset))); @@ -98,7 +102,7 @@ contract StoxWrappedTokenVaultTest is Test { LibTestDeploy.deployWrappedTokenVaultBeaconSet(vm); MockERC20 asset = new MockERC20(); StoxWrappedTokenVault vault = StoxWrappedTokenVaultBeaconSetDeployer( - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_0_1_3 + LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CANDIDATE ).newStoxWrappedTokenVault(address(asset)); assertEq(vault.name(), "Wrapped Test Token"); } @@ -108,7 +112,7 @@ contract StoxWrappedTokenVaultTest is Test { LibTestDeploy.deployWrappedTokenVaultBeaconSet(vm); MockERC20 asset = new MockERC20(); StoxWrappedTokenVault vault = StoxWrappedTokenVaultBeaconSetDeployer( - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_0_1_3 + LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CANDIDATE ).newStoxWrappedTokenVault(address(asset)); assertEq(vault.symbol(), "wTT"); } @@ -118,7 +122,7 @@ contract StoxWrappedTokenVaultTest is Test { LibTestDeploy.deployWrappedTokenVaultBeaconSet(vm); MockERC20 asset = new MockERC20(); StoxWrappedTokenVault vault = StoxWrappedTokenVaultBeaconSetDeployer( - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_0_1_3 + LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CANDIDATE ).newStoxWrappedTokenVault(address(asset)); assertEq(vault.totalAssets(), 0); } @@ -129,7 +133,7 @@ contract StoxWrappedTokenVaultTest is Test { LibTestDeploy.deployWrappedTokenVaultBeaconSet(vm); MockERC20 asset = new MockERC20(); StoxWrappedTokenVault vault = StoxWrappedTokenVaultBeaconSetDeployer( - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_0_1_3 + LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CANDIDATE ).newStoxWrappedTokenVault(address(asset)); address alice = address(0xA11CE); @@ -151,7 +155,7 @@ contract StoxWrappedTokenVaultTest is Test { LibTestDeploy.deployWrappedTokenVaultBeaconSet(vm); MockERC20 asset = new MockERC20(); StoxWrappedTokenVault vault = StoxWrappedTokenVaultBeaconSetDeployer( - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_0_1_3 + LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CANDIDATE ).newStoxWrappedTokenVault(address(asset)); address alice = address(0xA11CE); @@ -176,7 +180,7 @@ contract StoxWrappedTokenVaultTest is Test { LibTestDeploy.deployWrappedTokenVaultBeaconSet(vm); MockERC20 asset = new MockERC20(); StoxWrappedTokenVault vault = StoxWrappedTokenVaultBeaconSetDeployer( - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_0_1_3 + LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CANDIDATE ).newStoxWrappedTokenVault(address(asset)); uint256 shares = vault.convertToShares(amount); @@ -190,7 +194,7 @@ contract StoxWrappedTokenVaultTest is Test { LibTestDeploy.deployWrappedTokenVaultBeaconSet(vm); MockERC20 asset = new MockERC20(); StoxWrappedTokenVault vault = StoxWrappedTokenVaultBeaconSetDeployer( - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_0_1_3 + LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CANDIDATE ).newStoxWrappedTokenVault(address(asset)); uint256 expectedShares = vault.previewDeposit(amount); @@ -212,7 +216,7 @@ contract StoxWrappedTokenVaultTest is Test { LibTestDeploy.deployWrappedTokenVaultBeaconSet(vm); MockERC20 asset = new MockERC20(); StoxWrappedTokenVault vault = StoxWrappedTokenVaultBeaconSetDeployer( - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_0_1_3 + LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CANDIDATE ).newStoxWrappedTokenVault(address(asset)); address alice = address(0xA11CE); @@ -236,7 +240,7 @@ contract StoxWrappedTokenVaultTest is Test { LibTestDeploy.deployWrappedTokenVaultBeaconSet(vm); MockERC20 asset = new MockERC20(); StoxWrappedTokenVault vault = StoxWrappedTokenVaultBeaconSetDeployer( - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_0_1_3 + LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CANDIDATE ).newStoxWrappedTokenVault(address(asset)); assertEq(vault.maxDeposit(receiver), type(uint256).max); } @@ -246,7 +250,7 @@ contract StoxWrappedTokenVaultTest is Test { LibTestDeploy.deployWrappedTokenVaultBeaconSet(vm); MockERC20 asset = new MockERC20(); StoxWrappedTokenVault vault = StoxWrappedTokenVaultBeaconSetDeployer( - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_0_1_3 + LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CANDIDATE ).newStoxWrappedTokenVault(address(asset)); assertEq(vault.maxMint(receiver), type(uint256).max); } @@ -257,7 +261,7 @@ contract StoxWrappedTokenVaultTest is Test { LibTestDeploy.deployWrappedTokenVaultBeaconSet(vm); MockERC20 asset = new MockERC20(); StoxWrappedTokenVault vault = StoxWrappedTokenVaultBeaconSetDeployer( - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_0_1_3 + LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CANDIDATE ).newStoxWrappedTokenVault(address(asset)); address alice = address(0xA11CE); @@ -278,7 +282,7 @@ contract StoxWrappedTokenVaultTest is Test { LibTestDeploy.deployWrappedTokenVaultBeaconSet(vm); MockERC20 asset = new MockERC20(); StoxWrappedTokenVault vault = StoxWrappedTokenVaultBeaconSetDeployer( - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_0_1_3 + LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CANDIDATE ).newStoxWrappedTokenVault(address(asset)); address alice = address(0xA11CE); @@ -299,7 +303,7 @@ contract StoxWrappedTokenVaultTest is Test { LibTestDeploy.deployWrappedTokenVaultBeaconSet(vm); MockERC20 asset = new MockERC20(); StoxWrappedTokenVault vault = StoxWrappedTokenVaultBeaconSetDeployer( - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_0_1_3 + LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CANDIDATE ).newStoxWrappedTokenVault(address(asset)); address alice = address(0xA11CE); @@ -321,7 +325,7 @@ contract StoxWrappedTokenVaultTest is Test { LibTestDeploy.deployWrappedTokenVaultBeaconSet(vm); MockERC20 asset = new MockERC20(); StoxWrappedTokenVault vault = StoxWrappedTokenVaultBeaconSetDeployer( - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_0_1_3 + LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CANDIDATE ).newStoxWrappedTokenVault(address(asset)); address alice = address(0xA11CE); @@ -346,7 +350,7 @@ contract StoxWrappedTokenVaultTest is Test { LibTestDeploy.deployWrappedTokenVaultBeaconSet(vm); MockERC20 asset = new MockERC20(); StoxWrappedTokenVault vault = StoxWrappedTokenVaultBeaconSetDeployer( - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_0_1_3 + LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CANDIDATE ).newStoxWrappedTokenVault(address(asset)); address alice = address(0xA11CE); @@ -376,7 +380,7 @@ contract StoxWrappedTokenVaultTest is Test { LibTestDeploy.deployWrappedTokenVaultBeaconSet(vm); MockERC20 asset = new MockERC20(); StoxWrappedTokenVault vault = StoxWrappedTokenVaultBeaconSetDeployer( - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_0_1_3 + LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CANDIDATE ).newStoxWrappedTokenVault(address(asset)); address alice = address(0xA11CE); diff --git a/test/src/concrete/StoxWrappedTokenVaultBeacon.t.sol b/test/src/concrete/StoxWrappedTokenVaultBeacon.t.sol index db649eb9..23ce40ea 100644 --- a/test/src/concrete/StoxWrappedTokenVaultBeacon.t.sol +++ b/test/src/concrete/StoxWrappedTokenVaultBeacon.t.sol @@ -22,8 +22,10 @@ contract StoxWrappedTokenVaultBeaconTest is Test { function testBeaconConstructsWithExpectedConstants() external { address beacon = deployBeacon(); - assertEq(beacon, LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_0_1_3); - assertEq(StoxWrappedTokenVaultBeacon(beacon).implementation(), LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_0_1_3); + assertEq(beacon, LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_CANDIDATE); + assertEq( + StoxWrappedTokenVaultBeacon(beacon).implementation(), LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_CANDIDATE + ); assertEq(Ownable(beacon).owner(), LibProdDeployV4.BEACON_INITIAL_OWNER); } diff --git a/test/src/concrete/StoxWrappedTokenVaultV2.t.sol b/test/src/concrete/StoxWrappedTokenVaultV2.t.sol index 3291ff0f..09fd92a2 100644 --- a/test/src/concrete/StoxWrappedTokenVaultV2.t.sol +++ b/test/src/concrete/StoxWrappedTokenVaultV2.t.sol @@ -20,7 +20,7 @@ contract StoxWrappedTokenVaultV2Test is Test { function testV2ZeroAssetReverts() external { LibTestDeploy.deployWrappedTokenVaultBeaconSet(vm); vm.expectRevert(abi.encodeWithSelector(ZeroVaultAsset.selector)); - StoxWrappedTokenVaultBeaconSetDeployer(LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_0_1_3) + StoxWrappedTokenVaultBeaconSetDeployer(LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CANDIDATE) .newStoxWrappedTokenVault(address(0)); } @@ -31,7 +31,7 @@ contract StoxWrappedTokenVaultV2Test is Test { MockERC20 asset = new MockERC20(); vm.recordLogs(); - StoxWrappedTokenVaultBeaconSetDeployer(LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_0_1_3) + StoxWrappedTokenVaultBeaconSetDeployer(LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CANDIDATE) .newStoxWrappedTokenVault(address(asset)); Vm.Log[] memory logs = vm.getRecordedLogs(); @@ -64,7 +64,7 @@ contract StoxWrappedTokenVaultV2Test is Test { LibTestDeploy.deployWrappedTokenVaultBeaconSet(vm); MockERC20 asset = new MockERC20(); StoxWrappedTokenVault vault = StoxWrappedTokenVaultBeaconSetDeployer( - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_0_1_3 + LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CANDIDATE ).newStoxWrappedTokenVault(address(asset)); assertEq(vault.asset(), address(asset)); diff --git a/test/src/concrete/deploy/ST0xOrchestratorBeaconSetDeployer.t.sol b/test/src/concrete/deploy/ST0xOrchestratorBeaconSetDeployer.t.sol index d034d778..caa0665f 100644 --- a/test/src/concrete/deploy/ST0xOrchestratorBeaconSetDeployer.t.sol +++ b/test/src/concrete/deploy/ST0xOrchestratorBeaconSetDeployer.t.sol @@ -25,7 +25,7 @@ contract ST0xOrchestratorBeaconSetDeployerTest is Test { /// The orchestrator's vault-logic version guard (run by `initialize`, /// i.e. inside `deploy`) reads these fixed production addresses. address internal constant GUARD_DEPLOYER = - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_0_1_3; + LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CANDIDATE; address internal constant VAULT_BEACON = address(0xBEAC04); address internal constant RECEIPT_BEACON = address(0xBEAC12); @@ -34,10 +34,10 @@ contract ST0xOrchestratorBeaconSetDeployerTest is Test { function setUp() public { impl = new ST0xOrchestrator(); // The Zoltu deployer hardcodes the beacon implementation to the fixed - // production impl address (`ST0X_ORCHESTRATOR_0_1_3`), so etch + // production impl address (`ST0X_ORCHESTRATOR_CANDIDATE`), so etch // the freshly-built orchestrator runtime there — the beacon requires // code at that address, and `deploy` delegatecalls it via the proxy. - vm.etch(LibProdDeployV4.ST0X_ORCHESTRATOR_0_1_3, address(impl).code); + vm.etch(LibProdDeployV4.ST0X_ORCHESTRATOR_CANDIDATE, address(impl).code); // `deploy` initialises the proxy, which runs the orchestrator's // vault-logic version guard — install passing mocks up front. _makeGuardPass(); @@ -60,12 +60,12 @@ contract ST0xOrchestratorBeaconSetDeployerTest is Test { vm.mockCall( VAULT_BEACON, abi.encodeWithSelector(IBeacon.implementation.selector), - abi.encode(LibProdDeployV4.STOX_RECEIPT_VAULT_0_1_3) + abi.encode(LibProdDeployV4.STOX_RECEIPT_VAULT_CANDIDATE) ); vm.mockCall( RECEIPT_BEACON, abi.encodeWithSelector(IBeacon.implementation.selector), - abi.encode(LibProdDeployV4.STOX_RECEIPT_0_1_3) + abi.encode(LibProdDeployV4.STOX_RECEIPT_CANDIDATE) ); } @@ -78,7 +78,7 @@ contract ST0xOrchestratorBeaconSetDeployerTest is Test { function testConstructorSuccess() external { ST0xOrchestratorBeaconSetDeployer d = _deployer(); IBeacon beacon = d.iOrchestratorBeacon(); - assertEq(beacon.implementation(), LibProdDeployV4.ST0X_ORCHESTRATOR_0_1_3, "beacon impl"); + assertEq(beacon.implementation(), LibProdDeployV4.ST0X_ORCHESTRATOR_CANDIDATE, "beacon impl"); assertEq(Ownable(address(beacon)).owner(), LibProdDeployV4.BEACON_INITIAL_OWNER, "beacon owner"); } diff --git a/test/src/concrete/deploy/StoxProdV4.t.sol b/test/src/concrete/deploy/StoxProdV4.t.sol index a470aba8..f3a1fc4d 100644 --- a/test/src/concrete/deploy/StoxProdV4.t.sol +++ b/test/src/concrete/deploy/StoxProdV4.t.sol @@ -8,8 +8,6 @@ import {LibRainDeploy} from "rain-deploy-0.1.4/src/lib/LibRainDeploy.sol"; import {LibStoxDeployNetworks} from "../../../../src/lib/LibStoxDeployNetworks.sol"; import {LibBeaconInvariants} from "../../../../src/lib/LibBeaconInvariants.sol"; import {IBeacon} from "@openzeppelin-contracts-5.6.1/proxy/beacon/IBeacon.sol"; -import {Ownable} from "@openzeppelin-contracts-5.6.1/access/Ownable.sol"; -import {ST0xOrchestratorBeaconSetDeployer} from "../../../../src/concrete/deploy/ST0xOrchestratorBeaconSetDeployer.sol"; import { IOffchainAssetReceiptVaultBeaconSetDeployerV2 } from "rain-vats-0.1.6/src/interface/IOffchainAssetReceiptVaultBeaconSetDeployerV2.sol"; @@ -19,12 +17,12 @@ import { /// pinned address with the expected runtime codehash. /// /// The two production networks carry different sets: -/// - Base carries the full accumulated V4 set — the audited 0.1.1 contracts plus -/// the 0.1.2 orchestrator and the 0.1.3 rebuilds — deployed incrementally over -/// those releases by `script/Deploy.sol` (current source). +/// - Base carries the full accumulated set — the audited 0.1.1 contracts plus +/// the later orchestrator and rebuilds that the rolling `candidate` snapshot +/// tracks — deployed incrementally over those releases. /// - Ethereum mainnet carries only the audited 0.1.1 production set, shipped by /// `script/DeployProdV4_0_1_1.sol` from the stored 0.1.1 creation code. The -/// orchestrator (0.1.2) and the 0.1.3 rebuilds are Base-only. +/// orchestrator and the later rebuilds are Base-only. /// /// The codehash pins are the same literals `LibProdDeployV4Test` checks against /// the generated pointer files and against a fresh Zoltu redeploy. This test @@ -189,187 +187,20 @@ contract StoxProdV4Test is Test { ); } - /// Asserts the full accumulated V4 set carried by Base: the audited 0.1.1 set - /// (via `checkProd_0_1_1OnChain`) plus the 0.1.2 orchestrator and the 0.1.3 - /// rebuilds, including their beacon wiring. - function checkAllV4OnChain() internal view { - checkProd_0_1_1OnChain(); - - // st0x-deploy 0.1.3 rebuilds seven contracts at new Zoltu addresses: the - // corporate-actions facet (the cumulative-multiplier change) plus the - // receipt vault, OARV beacon-set deployer, unified deployer, orchestrator, - // and orchestrator beacon-set deployer that cascade from it, and the - // wrapped-token-vault beacon-set deployer moved by the ERC-165 - // `supportsInterface` fix. The other five 0.1.3 contracts are - // byte-identical 0.1.2 twins already checked above at the same addresses, - // so only the seven movers are checked on-chain here. - assertTrue( - LibProdDeployV4.STOX_CORPORATE_ACTIONS_FACET_0_1_3.code.length > 0, - "0.1.3 StoxCorporateActionsFacet not deployed" - ); - assertEq( - LibProdDeployV4.STOX_CORPORATE_ACTIONS_FACET_0_1_3.codehash, - LibProdDeployV4.STOX_CORPORATE_ACTIONS_FACET_CODEHASH_0_1_3 - ); - assertEq( - LibProdDeployV4.STOX_CORPORATE_ACTIONS_FACET_0_1_3.code, - LibProdDeployV4.STOX_CORPORATE_ACTIONS_FACET_RUNTIME_CODE_0_1_3 - ); - - assertTrue(LibProdDeployV4.STOX_RECEIPT_VAULT_0_1_3.code.length > 0, "0.1.3 StoxReceiptVault not deployed"); - assertEq(LibProdDeployV4.STOX_RECEIPT_VAULT_0_1_3.codehash, LibProdDeployV4.STOX_RECEIPT_VAULT_CODEHASH_0_1_3); - assertEq(LibProdDeployV4.STOX_RECEIPT_VAULT_0_1_3.code, LibProdDeployV4.STOX_RECEIPT_VAULT_RUNTIME_CODE_0_1_3); - - assertTrue( - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_0_1_3.code.length > 0, - "0.1.3 StoxOffchainAssetReceiptVaultBeaconSetDeployer not deployed" - ); - assertEq( - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_0_1_3.codehash, - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_3 - ); - assertEq( - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_0_1_3.code, - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_RUNTIME_CODE_0_1_3 - ); - - assertTrue( - LibProdDeployV4.STOX_UNIFIED_DEPLOYER_0_1_3.code.length > 0, "0.1.3 StoxUnifiedDeployer not deployed" - ); - assertEq( - LibProdDeployV4.STOX_UNIFIED_DEPLOYER_0_1_3.codehash, LibProdDeployV4.STOX_UNIFIED_DEPLOYER_CODEHASH_0_1_3 - ); - assertEq( - LibProdDeployV4.STOX_UNIFIED_DEPLOYER_0_1_3.code, LibProdDeployV4.STOX_UNIFIED_DEPLOYER_RUNTIME_CODE_0_1_3 - ); - - assertTrue(LibProdDeployV4.ST0X_ORCHESTRATOR_0_1_3.code.length > 0, "0.1.3 ST0xOrchestrator not deployed"); - assertEq(LibProdDeployV4.ST0X_ORCHESTRATOR_0_1_3.codehash, LibProdDeployV4.ST0X_ORCHESTRATOR_CODEHASH_0_1_3); - assertEq(LibProdDeployV4.ST0X_ORCHESTRATOR_0_1_3.code, LibProdDeployV4.ST0X_ORCHESTRATOR_RUNTIME_CODE_0_1_3); - - assertTrue( - LibProdDeployV4.ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_0_1_3.code.length > 0, - "0.1.3 ST0xOrchestratorBeaconSetDeployer not deployed" - ); - assertEq( - LibProdDeployV4.ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_0_1_3.codehash, - LibProdDeployV4.ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CODEHASH_0_1_3 - ); - assertEq( - LibProdDeployV4.ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_0_1_3.code, - LibProdDeployV4.ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_RUNTIME_CODE_0_1_3 - ); - - assertTrue( - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_0_1_3.code.length > 0, - "0.1.3 StoxWrappedTokenVaultBeaconSetDeployer not deployed" - ); - assertEq( - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_0_1_3.codehash, - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_3 - ); - assertEq( - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_0_1_3.code, - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_RUNTIME_CODE_0_1_3 - ); - - // ST0x orchestrator release 0.1.2 — the singleton orchestrator impl and - // its Zoltu beacon-set deployer, deployed on Base after the 0.1.1 set. - assertTrue(LibProdDeployV4.ST0X_ORCHESTRATOR_0_1_2.code.length > 0, "V4 ST0xOrchestrator not deployed"); - assertEq(LibProdDeployV4.ST0X_ORCHESTRATOR_0_1_2.codehash, LibProdDeployV4.ST0X_ORCHESTRATOR_CODEHASH_0_1_2); - assertEq(LibProdDeployV4.ST0X_ORCHESTRATOR_0_1_2.code, LibProdDeployV4.ST0X_ORCHESTRATOR_RUNTIME_CODE_0_1_2); - - assertTrue( - LibProdDeployV4.ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_0_1_2.code.length > 0, - "V4 ST0xOrchestratorBeaconSetDeployer not deployed" - ); - assertEq( - LibProdDeployV4.ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_0_1_2.codehash, - LibProdDeployV4.ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CODEHASH_0_1_2 - ); - assertEq( - LibProdDeployV4.ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_0_1_2.code, - LibProdDeployV4.ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_RUNTIME_CODE_0_1_2 - ); - - // The ST0x orchestrator beacon-set deployer creates one beacon in its - // constructor: the orchestrator beacon points at the 0.1.2 orchestrator - // implementation, held by the beacon initial owner. - IBeacon orchestratorBeacon = ST0xOrchestratorBeaconSetDeployer( - LibProdDeployV4.ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_0_1_2 - ).iOrchestratorBeacon(); - assertEq( - orchestratorBeacon.implementation(), - LibProdDeployV4.ST0X_ORCHESTRATOR_0_1_2, - "V4 orchestrator beacon implementation mismatch" - ); - assertEq( - Ownable(address(orchestratorBeacon)).owner(), - LibProdDeployV4.BEACON_INITIAL_OWNER, - "V4 orchestrator beacon owner mismatch" - ); - - // The 0.1.3 offchain-asset-receipt-vault beacon-set deployer creates two - // beacons: the receipt beacon points at the (twin) 0.1.3 receipt impl - // and the offchain-asset-receipt-vault beacon points at the rebuilt - // 0.1.3 receipt vault impl, both held by the beacon initial owner. - IOffchainAssetReceiptVaultBeaconSetDeployerV2 oarvDeployer013 = IOffchainAssetReceiptVaultBeaconSetDeployerV2( - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_0_1_3 - ); - - IBeacon receiptBeacon013 = oarvDeployer013.iReceiptBeacon(); - assertEq( - receiptBeacon013.implementation(), - LibProdDeployV4.STOX_RECEIPT_0_1_3, - "0.1.3 OARV receipt beacon implementation mismatch" - ); - assertEq( - Ownable(address(receiptBeacon013)).owner(), - LibProdDeployV4.BEACON_INITIAL_OWNER, - "0.1.3 OARV receipt beacon owner mismatch" - ); - - IBeacon vaultBeacon013 = oarvDeployer013.iOffchainAssetReceiptVaultBeacon(); - assertEq( - vaultBeacon013.implementation(), - LibProdDeployV4.STOX_RECEIPT_VAULT_0_1_3, - "0.1.3 OARV vault beacon implementation mismatch" - ); - assertEq( - Ownable(address(vaultBeacon013)).owner(), - LibProdDeployV4.BEACON_INITIAL_OWNER, - "0.1.3 OARV vault beacon owner mismatch" - ); - - // The 0.1.3 ST0x orchestrator beacon-set deployer's beacon points at the - // rebuilt 0.1.3 orchestrator impl, held by the beacon initial owner. - IBeacon orchestratorBeacon013 = ST0xOrchestratorBeaconSetDeployer( - LibProdDeployV4.ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_0_1_3 - ).iOrchestratorBeacon(); - assertEq( - orchestratorBeacon013.implementation(), - LibProdDeployV4.ST0X_ORCHESTRATOR_0_1_3, - "0.1.3 orchestrator beacon implementation mismatch" - ); - assertEq( - Ownable(address(orchestratorBeacon013)).owner(), - LibProdDeployV4.BEACON_INITIAL_OWNER, - "0.1.3 orchestrator beacon owner mismatch" - ); - } - - /// The full accumulated V4 set MUST be deployed on Base with the expected - /// codehashes, and Base's IN-USE production beacons (the V1-generation - /// addresses — NOT the unadopted 0.1.1-address deploy) MUST be owned by - /// Base's token-owner Safe. + /// The Base fork verifies only the frozen audited 0.1.1 set — that is what + /// the in-use Base production beacons (the V1-generation addresses) actually + /// adopt on-chain. The rolling `candidate` snapshot regenerates from source + /// and is NEVER a deploy target, so its addresses are not checked on any fork; + /// `testCandidateSelfConsistent` verifies candidate == current source locally + /// instead. The in-use beacons MUST be owned by Base's token-owner Safe. function testProdDeployBaseV4() external { vm.createSelectFork(LibRainDeploy.BASE); - checkAllV4OnChain(); + checkProd_0_1_1OnChain(); LibBeaconInvariants.assertProdBeaconsOwnedByChainSafe(block.chainid); } /// Only the audited 0.1.1 production set is shipped to Ethereum mainnet (the - /// orchestrator and 0.1.3 rebuilds are Base-only), so the Ethereum fork is + /// orchestrator and candidate rebuilds are Base-only), so the Ethereum fork is /// checked against the 0.1.1 set alone. On Ethereum the 0.1.1 beacons ARE /// the in-use production beacons, and the beacon-ownership migration /// (`20260716-migrate-beacon-owners-ethereum`) has transferred them to diff --git a/test/src/concrete/deploy/StoxUnifiedDeployer.newTokenAndWrapperVault.t.sol b/test/src/concrete/deploy/StoxUnifiedDeployer.newTokenAndWrapperVault.t.sol index cc78c4ed..ec7fcad8 100644 --- a/test/src/concrete/deploy/StoxUnifiedDeployer.newTokenAndWrapperVault.t.sol +++ b/test/src/concrete/deploy/StoxUnifiedDeployer.newTokenAndWrapperVault.t.sol @@ -19,7 +19,7 @@ contract StoxUnifiedDeployerIntegrationTest is Test { /// Deploy full V2 stack via Zoltu and call newTokenAndWrapperVault. function testNewTokenAndWrapperVaultV2Integration() external { LibTestDeploy.deployAll(vm); - StoxUnifiedDeployer unifiedDeployer = StoxUnifiedDeployer(LibProdDeployV4.STOX_UNIFIED_DEPLOYER_0_1_3); + StoxUnifiedDeployer unifiedDeployer = StoxUnifiedDeployer(LibProdDeployV4.STOX_UNIFIED_DEPLOYER_CANDIDATE); OffchainAssetReceiptVaultConfigV2 memory config = OffchainAssetReceiptVaultConfigV2({ initialAdmin: address(this), diff --git a/test/src/concrete/deploy/StoxUnifiedDeployer.t.sol b/test/src/concrete/deploy/StoxUnifiedDeployer.t.sol index 7c821d3d..5ca83067 100644 --- a/test/src/concrete/deploy/StoxUnifiedDeployer.t.sol +++ b/test/src/concrete/deploy/StoxUnifiedDeployer.t.sol @@ -27,13 +27,13 @@ contract StoxUnifiedDeployerTest is Test { StoxUnifiedDeployer unifiedDeployer = new StoxUnifiedDeployer(); vm.etch( - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_0_1_3, + LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CANDIDATE, vm.getCode( "StoxOffchainAssetReceiptVaultBeaconSetDeployer.sol:StoxOffchainAssetReceiptVaultBeaconSetDeployer" ) ); vm.mockCall( - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_0_1_3, + LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CANDIDATE, abi.encodeWithSelector( OffchainAssetReceiptVaultBeaconSetDeployer.newOffchainAssetReceiptVault.selector, config ), @@ -41,11 +41,11 @@ contract StoxUnifiedDeployerTest is Test { ); vm.etch( - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_0_1_3, + LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CANDIDATE, vm.getCode("StoxWrappedTokenVaultBeaconSetDeployer.sol:StoxWrappedTokenVaultBeaconSetDeployer") ); vm.mockCall( - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_0_1_3, + LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CANDIDATE, abi.encodeWithSelector(StoxWrappedTokenVaultBeaconSetDeployer.newStoxWrappedTokenVault.selector, asset), abi.encode(address(vault)) ); @@ -60,13 +60,13 @@ contract StoxUnifiedDeployerTest is Test { StoxUnifiedDeployer unifiedDeployer = new StoxUnifiedDeployer(); vm.etch( - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_0_1_3, + LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CANDIDATE, vm.getCode( "StoxOffchainAssetReceiptVaultBeaconSetDeployer.sol:StoxOffchainAssetReceiptVaultBeaconSetDeployer" ) ); vm.mockCallRevert( - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_0_1_3, + LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CANDIDATE, abi.encodeWithSelector( OffchainAssetReceiptVaultBeaconSetDeployer.newOffchainAssetReceiptVault.selector, config ), @@ -86,13 +86,13 @@ contract StoxUnifiedDeployerTest is Test { StoxUnifiedDeployer unifiedDeployer = new StoxUnifiedDeployer(); vm.etch( - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_0_1_3, + LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CANDIDATE, vm.getCode( "StoxOffchainAssetReceiptVaultBeaconSetDeployer.sol:StoxOffchainAssetReceiptVaultBeaconSetDeployer" ) ); vm.mockCall( - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_0_1_3, + LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CANDIDATE, abi.encodeWithSelector( OffchainAssetReceiptVaultBeaconSetDeployer.newOffchainAssetReceiptVault.selector, config ), @@ -100,11 +100,11 @@ contract StoxUnifiedDeployerTest is Test { ); vm.etch( - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_0_1_3, + LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CANDIDATE, vm.getCode("StoxWrappedTokenVaultBeaconSetDeployer.sol:StoxWrappedTokenVaultBeaconSetDeployer") ); vm.mockCallRevert( - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_0_1_3, + LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CANDIDATE, abi.encodeWithSelector(StoxWrappedTokenVaultBeaconSetDeployer.newStoxWrappedTokenVault.selector, asset), abi.encodeWithSignature("ZeroVaultAsset()") ); diff --git a/test/src/concrete/deploy/StoxWrappedTokenVaultBeaconSetDeployer.t.sol b/test/src/concrete/deploy/StoxWrappedTokenVaultBeaconSetDeployer.t.sol index ca67ca56..3319060d 100644 --- a/test/src/concrete/deploy/StoxWrappedTokenVaultBeaconSetDeployer.t.sol +++ b/test/src/concrete/deploy/StoxWrappedTokenVaultBeaconSetDeployer.t.sol @@ -23,7 +23,7 @@ contract StoxWrappedTokenVaultBeaconSetDeployerTest is Test { function testNewVaultZeroAsset() external { LibTestDeploy.deployWrappedTokenVaultBeaconSet(vm); vm.expectRevert(abi.encodeWithSelector(ZeroVaultAsset.selector)); - StoxWrappedTokenVaultBeaconSetDeployer(LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_0_1_3) + StoxWrappedTokenVaultBeaconSetDeployer(LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CANDIDATE) .newStoxWrappedTokenVault(address(0)); } @@ -32,8 +32,9 @@ contract StoxWrappedTokenVaultBeaconSetDeployerTest is Test { function testNewVaultSuccess() external { LibTestDeploy.deployWrappedTokenVaultBeaconSet(vm); MockERC20 asset = new MockERC20(); - StoxWrappedTokenVaultBeaconSetDeployer deployer = - StoxWrappedTokenVaultBeaconSetDeployer(LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_0_1_3); + StoxWrappedTokenVaultBeaconSetDeployer deployer = StoxWrappedTokenVaultBeaconSetDeployer( + LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CANDIDATE + ); vm.recordLogs(); StoxWrappedTokenVault vault = deployer.newStoxWrappedTokenVault(address(asset)); @@ -60,10 +61,10 @@ contract StoxWrappedTokenVaultBeaconSetDeployerTest is Test { LibTestDeploy.deployWrappedTokenVaultBeaconSet(vm); BadInitializeVault badImpl = new BadInitializeVault(); vm.prank(LibProdDeployV4.BEACON_INITIAL_OWNER); - UpgradeableBeacon(LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_0_1_3).upgradeTo(address(badImpl)); + UpgradeableBeacon(LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_CANDIDATE).upgradeTo(address(badImpl)); vm.expectRevert(abi.encodeWithSelector(InitializeVaultFailed.selector)); - StoxWrappedTokenVaultBeaconSetDeployer(LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_0_1_3) + StoxWrappedTokenVaultBeaconSetDeployer(LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CANDIDATE) .newStoxWrappedTokenVault(address(1)); } } diff --git a/test/src/concrete/integration/GuardHaltsAfterVaultBeaconUpgrade.t.sol b/test/src/concrete/integration/GuardHaltsAfterVaultBeaconUpgrade.t.sol index ffc73de0..c35bbff9 100644 --- a/test/src/concrete/integration/GuardHaltsAfterVaultBeaconUpgrade.t.sol +++ b/test/src/concrete/integration/GuardHaltsAfterVaultBeaconUpgrade.t.sol @@ -21,7 +21,7 @@ contract GuardHaltsAfterVaultBeaconUpgradeTest is OrchestratorIntegrationTest { assertTrue(orchestrator.vaultLogicIsExpected(), "guard passes before the upgrade"); IBeacon vaultBeacon = IST0xVaultBeaconSet( - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_0_1_3 + LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CANDIDATE ).iOffchainAssetReceiptVaultBeacon(); // A fresh, valid impl address (any contract with code works as an @@ -37,7 +37,7 @@ contract GuardHaltsAfterVaultBeaconUpgradeTest is OrchestratorIntegrationTest { vm.prank(MM); vm.expectRevert( abi.encodeWithSelector( - IST0xOrchestratorV1.VaultLogicMismatch.selector, LibProdDeployV4.STOX_RECEIPT_VAULT_0_1_3, newImpl + IST0xOrchestratorV1.VaultLogicMismatch.selector, LibProdDeployV4.STOX_RECEIPT_VAULT_CANDIDATE, newImpl ) ); orchestrator.mint(address(vault), eoa, 1e18, auth, ""); @@ -45,7 +45,7 @@ contract GuardHaltsAfterVaultBeaconUpgradeTest is OrchestratorIntegrationTest { vm.prank(MM); vm.expectRevert( abi.encodeWithSelector( - IST0xOrchestratorV1.VaultLogicMismatch.selector, LibProdDeployV4.STOX_RECEIPT_VAULT_0_1_3, newImpl + IST0xOrchestratorV1.VaultLogicMismatch.selector, LibProdDeployV4.STOX_RECEIPT_VAULT_CANDIDATE, newImpl ) ); orchestrator.burn(address(vault), 1e18, ""); diff --git a/test/src/concrete/integration/GuardPassesAgainstRealV4Beacons.t.sol b/test/src/concrete/integration/GuardPassesAgainstRealV4Beacons.t.sol index 78874f41..a1409bae 100644 --- a/test/src/concrete/integration/GuardPassesAgainstRealV4Beacons.t.sol +++ b/test/src/concrete/integration/GuardPassesAgainstRealV4Beacons.t.sol @@ -19,15 +19,15 @@ contract GuardPassesAgainstRealV4BeaconsTest is OrchestratorIntegrationTest { // Cross-check the beacons the guard reads really are the V4 impls. IST0xVaultBeaconSet beaconSet = - IST0xVaultBeaconSet(LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_0_1_3); + IST0xVaultBeaconSet(LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CANDIDATE); assertEq( beaconSet.iOffchainAssetReceiptVaultBeacon().implementation(), - LibProdDeployV4.STOX_RECEIPT_VAULT_0_1_3, + LibProdDeployV4.STOX_RECEIPT_VAULT_CANDIDATE, "vault beacon points at V4 vault impl" ); assertEq( beaconSet.iReceiptBeacon().implementation(), - LibProdDeployV4.STOX_RECEIPT_0_1_3, + LibProdDeployV4.STOX_RECEIPT_CANDIDATE, "receipt beacon points at V4 receipt impl" ); diff --git a/test/src/concrete/integration/OrchestratorIntegrationTest.sol b/test/src/concrete/integration/OrchestratorIntegrationTest.sol index c797578c..d7e3faae 100644 --- a/test/src/concrete/integration/OrchestratorIntegrationTest.sol +++ b/test/src/concrete/integration/OrchestratorIntegrationTest.sol @@ -83,7 +83,7 @@ abstract contract OrchestratorIntegrationTest is Test { // Real corporate-actions facet at the deterministic address the // vault's fallback delegatecalls into. address facet = LibRainDeploy.deployZoltu(type(StoxCorporateActionsFacet).creationCode); - require(facet == LibProdDeployV4.STOX_CORPORATE_ACTIONS_FACET_0_1_3, "facet address mismatch"); + require(facet == LibProdDeployV4.STOX_CORPORATE_ACTIONS_FACET_CANDIDATE, "facet address mismatch"); // A real vault + receipt beacon-proxy pair via the deterministic // deployer the guard version-locks against. @@ -130,7 +130,7 @@ abstract contract OrchestratorIntegrationTest is Test { return StoxReceiptVault( payable(address( StoxOffchainAssetReceiptVaultBeaconSetDeployer( - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_0_1_3 + LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CANDIDATE ) .newOffchainAssetReceiptVault( OffchainAssetReceiptVaultConfigV2({ diff --git a/test/src/lib/LibProdDeployV4.t.sol b/test/src/lib/LibProdDeployV4.t.sol index 7b3c6165..454f54dc 100644 --- a/test/src/lib/LibProdDeployV4.t.sol +++ b/test/src/lib/LibProdDeployV4.t.sol @@ -63,15 +63,15 @@ contract LibProdDeployV4Test is Test { assertEq(deployed.codehash, LibProdDeployV4.STOX_RECEIPT_CODEHASH_0_1_1); } - // --- StoxReceiptVault (0.1.3 — rebuilt: its `fallback()` hardcodes the - // rebuilt 0.1.3 corporate-actions facet, so the current source compiles to the 0.1.3 vault). --- + // --- StoxReceiptVault (candidate — rebuilt: its `fallback()` hardcodes the + // rebuilt candidate corporate-actions facet, so the current source compiles to the candidate vault). --- function testDeployAddressStoxReceiptVault() external { LibRainDeploy.etchZoltuFactory(vm); address deployed = LibRainDeploy.deployZoltu(type(StoxReceiptVault).creationCode); - assertEq(deployed, LibProdDeployV4.STOX_RECEIPT_VAULT_0_1_3); + assertEq(deployed, LibProdDeployV4.STOX_RECEIPT_VAULT_CANDIDATE); assertTrue(deployed.code.length > 0); - assertEq(deployed.codehash, LibProdDeployV4.STOX_RECEIPT_VAULT_CODEHASH_0_1_3); + assertEq(deployed.codehash, LibProdDeployV4.STOX_RECEIPT_VAULT_CODEHASH_CANDIDATE); } // --- StoxWrappedTokenVault --- @@ -84,15 +84,15 @@ contract LibProdDeployV4Test is Test { assertEq(deployed.codehash, LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_CODEHASH_0_1_1); } - // --- StoxUnifiedDeployer (0.1.3 — rebuilt: it embeds the rebuilt 0.1.3 - // OARV beacon-set deployer address, so the current source compiles to the 0.1.3 unified deployer). --- + // --- StoxUnifiedDeployer (candidate — rebuilt: it embeds the rebuilt candidate + // OARV beacon-set deployer address, so the current source compiles to the candidate unified deployer). --- function testDeployAddressStoxUnifiedDeployer() external { LibRainDeploy.etchZoltuFactory(vm); address deployed = LibRainDeploy.deployZoltu(type(StoxUnifiedDeployer).creationCode); - assertEq(deployed, LibProdDeployV4.STOX_UNIFIED_DEPLOYER_0_1_3); + assertEq(deployed, LibProdDeployV4.STOX_UNIFIED_DEPLOYER_CANDIDATE); assertTrue(deployed.code.length > 0); - assertEq(deployed.codehash, LibProdDeployV4.STOX_UNIFIED_DEPLOYER_CODEHASH_0_1_3); + assertEq(deployed.codehash, LibProdDeployV4.STOX_UNIFIED_DEPLOYER_CODEHASH_CANDIDATE); } // --- StoxWrappedTokenVaultBeacon (needs the wrapped token vault deployed first) --- @@ -106,10 +106,10 @@ contract LibProdDeployV4Test is Test { assertEq(deployed.codehash, LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_CODEHASH_0_1_1); } - // --- StoxWrappedTokenVaultBeaconSetDeployer (0.1.3 — a mover: its + // --- StoxWrappedTokenVaultBeaconSetDeployer (candidate — a mover: its // `supportsInterface` inherits OpenZeppelin `ERC165` and chains `super`, so - // its bytecode differs from the byte-identical 0.1.2 twin and the current - // source compiles to the 0.1.3 deployer. + // its bytecode differs from the audited 0.1.1 deployer and the current + // source compiles to the candidate deployer. // Needs vault + beacon first). --- function testDeployAddressStoxWrappedTokenVaultBeaconSetDeployer() external { @@ -117,15 +117,15 @@ contract LibProdDeployV4Test is Test { LibRainDeploy.deployZoltu(type(StoxWrappedTokenVault).creationCode); LibRainDeploy.deployZoltu(type(StoxWrappedTokenVaultBeacon).creationCode); address deployed = LibRainDeploy.deployZoltu(type(StoxWrappedTokenVaultBeaconSetDeployer).creationCode); - assertEq(deployed, LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_0_1_3); + assertEq(deployed, LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CANDIDATE); assertTrue(deployed.code.length > 0); - assertEq(deployed.codehash, LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_3); + assertEq(deployed.codehash, LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CODEHASH_CANDIDATE); } - // --- StoxOffchainAssetReceiptVaultBeaconSetDeployer (0.1.3 — rebuilt: its - // constructor bakes a beacon over the rebuilt 0.1.3 receipt-vault impl, so + // --- StoxOffchainAssetReceiptVaultBeaconSetDeployer (candidate — rebuilt: its + // constructor bakes a beacon over the rebuilt candidate receipt-vault impl, so // the current source compiles to the - // 0.1.3 deployer. Needs receipt + the 0.1.3 receipt vault deployed first so + // candidate deployer. Needs receipt + the candidate receipt vault deployed first so // the beacon's impl-has-code check passes). --- function testDeployAddressStoxOffchainAssetReceiptVaultBeaconSetDeployer() external { @@ -133,10 +133,10 @@ contract LibProdDeployV4Test is Test { LibRainDeploy.deployZoltu(type(StoxReceipt).creationCode); LibRainDeploy.deployZoltu(type(StoxReceiptVault).creationCode); address deployed = LibRainDeploy.deployZoltu(type(StoxOffchainAssetReceiptVaultBeaconSetDeployer).creationCode); - assertEq(deployed, LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_0_1_3); + assertEq(deployed, LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CANDIDATE); assertTrue(deployed.code.length > 0); assertEq( - deployed.codehash, LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_3 + deployed.codehash, LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CODEHASH_CANDIDATE ); } @@ -164,43 +164,43 @@ contract LibProdDeployV4Test is Test { ); } - // --- StoxCorporateActionsFacet (0.1.3 — rebuilt for the - // cumulative-multiplier change; the current source now compile to the 0.1.3 facet, so these current-source - // trios pin the `_0_1_3` facet). --- + // --- StoxCorporateActionsFacet (candidate — rebuilt for the + // cumulative-multiplier change; the current source now compile to the candidate facet, so these current-source + // trios pin the `_CANDIDATE` facet). --- function testDeployAddressStoxCorporateActionsFacet() external { LibRainDeploy.etchZoltuFactory(vm); address deployed = LibRainDeploy.deployZoltu(type(StoxCorporateActionsFacet).creationCode); - assertEq(deployed, LibProdDeployV4.STOX_CORPORATE_ACTIONS_FACET_0_1_3); + assertEq(deployed, LibProdDeployV4.STOX_CORPORATE_ACTIONS_FACET_CANDIDATE); assertTrue(deployed.code.length > 0); - assertEq(deployed.codehash, LibProdDeployV4.STOX_CORPORATE_ACTIONS_FACET_CODEHASH_0_1_3); + assertEq(deployed.codehash, LibProdDeployV4.STOX_CORPORATE_ACTIONS_FACET_CODEHASH_CANDIDATE); } - // --- ST0xOrchestrator (0.1.3 — rebuilt: it embeds the rebuilt 0.1.3 OARV + // --- ST0xOrchestrator (candidate — rebuilt: it embeds the rebuilt candidate OARV // beacon-set deployer and receipt-vault addresses, so the current source - // compiles to the 0.1.3 orchestrator). --- + // compiles to the candidate orchestrator). --- function testDeployAddressST0xOrchestrator() external { LibRainDeploy.etchZoltuFactory(vm); address deployed = LibRainDeploy.deployZoltu(type(ST0xOrchestrator).creationCode); - assertEq(deployed, LibProdDeployV4.ST0X_ORCHESTRATOR_0_1_3); + assertEq(deployed, LibProdDeployV4.ST0X_ORCHESTRATOR_CANDIDATE); assertTrue(deployed.code.length > 0); - assertEq(deployed.codehash, LibProdDeployV4.ST0X_ORCHESTRATOR_CODEHASH_0_1_3); + assertEq(deployed.codehash, LibProdDeployV4.ST0X_ORCHESTRATOR_CODEHASH_CANDIDATE); } - // --- ST0xOrchestratorBeaconSetDeployer (0.1.3 — rebuilt: its constructor - // bakes a beacon over the rebuilt 0.1.3 orchestrator impl, so the current - // source compiles to the 0.1.3 deployer. - // Needs the 0.1.3 orchestrator impl deployed first so the beacon's + // --- ST0xOrchestratorBeaconSetDeployer (candidate — rebuilt: its constructor + // bakes a beacon over the rebuilt candidate orchestrator impl, so the current + // source compiles to the candidate deployer. + // Needs the candidate orchestrator impl deployed first so the beacon's // impl-has-code check passes). --- function testDeployAddressST0xOrchestratorBeaconSetDeployer() external { LibRainDeploy.etchZoltuFactory(vm); LibRainDeploy.deployZoltu(type(ST0xOrchestrator).creationCode); address deployed = LibRainDeploy.deployZoltu(type(ST0xOrchestratorBeaconSetDeployer).creationCode); - assertEq(deployed, LibProdDeployV4.ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_0_1_3); + assertEq(deployed, LibProdDeployV4.ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CANDIDATE); assertTrue(deployed.code.length > 0); - assertEq(deployed.codehash, LibProdDeployV4.ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CODEHASH_0_1_3); + assertEq(deployed.codehash, LibProdDeployV4.ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CODEHASH_CANDIDATE); } // --- Non-deployed-contract constants --- @@ -210,18 +210,46 @@ contract LibProdDeployV4Test is Test { assertEq(LibProdDeployV4.BEACON_INITIAL_OWNER, address(0x8E4bdeec7CEB9570D440676345dA1dCe10329f5b)); } - /// The deploy tag string is encoded into every current-release - /// deployed-contract constant name, so it must match the canonical - /// `foundry.toml` version (read dynamically below, not hardcoded). - function testDeployTag() external { - // The generated tag must equal the canonical `foundry.toml` version - // (the next-version slot), with dots as underscores. Read it rather than - // hardcode, so this passes across releases without hand-editing. - bytes memory v = bytes(vm.parseTomlString(vm.readFile("foundry.toml"), ".package.version")); - for (uint256 i = 0; i < v.length; i++) { - if (v[i] == ".") v[i] = "_"; - } - assertEq(LibProdDeployCurrent.DEPLOY_TAG, string(v)); + /// The committed `candidate` snapshot MUST match the current source: the + /// stored per-contract CREATION_CODE constant equals `type(C).creationCode`. + /// Fails if the source changes without regenerating `candidate` via + /// `forge script ./script/BuildPointers.sol`. Pure-forge; no git/shell. + function testCandidateSelfConsistent() external { + assertEq(LibProdDeployV4.STOX_RECEIPT_CREATION_CODE_CANDIDATE, type(StoxReceipt).creationCode); + assertEq(LibProdDeployV4.STOX_RECEIPT_VAULT_CREATION_CODE_CANDIDATE, type(StoxReceiptVault).creationCode); + assertEq( + LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_CREATION_CODE_CANDIDATE, type(StoxWrappedTokenVault).creationCode + ); + assertEq(LibProdDeployV4.STOX_UNIFIED_DEPLOYER_CREATION_CODE_CANDIDATE, type(StoxUnifiedDeployer).creationCode); + assertEq( + LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_CREATION_CODE_CANDIDATE, + type(StoxWrappedTokenVaultBeacon).creationCode + ); + assertEq( + LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CREATION_CODE_CANDIDATE, + type(StoxWrappedTokenVaultBeaconSetDeployer).creationCode + ); + assertEq( + LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CREATION_CODE_CANDIDATE, + type(StoxOffchainAssetReceiptVaultBeaconSetDeployer).creationCode + ); + assertEq( + LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CREATION_CODE_CANDIDATE, + type(StoxOffchainAssetReceiptVaultAuthorizerV1).creationCode + ); + assertEq( + LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CREATION_CODE_CANDIDATE, + type(StoxOffchainAssetReceiptVaultPaymentMintAuthorizerV1).creationCode + ); + assertEq( + LibProdDeployV4.STOX_CORPORATE_ACTIONS_FACET_CREATION_CODE_CANDIDATE, + type(StoxCorporateActionsFacet).creationCode + ); + assertEq(LibProdDeployV4.ST0X_ORCHESTRATOR_CREATION_CODE_CANDIDATE, type(ST0xOrchestrator).creationCode); + assertEq( + LibProdDeployV4.ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CREATION_CODE_CANDIDATE, + type(ST0xOrchestratorBeaconSetDeployer).creationCode + ); } /// The V4 authoriser clone pin. The address was hydrated from the @@ -254,168 +282,6 @@ contract LibProdDeployV4Test is Test { ); } - /// st0x-deploy 0.1.2 re-pins the ten 0.1.1 contracts at IDENTICAL values - /// (only the orchestrator + its deployer are new to 0.1.2), so every 0.1.2 - /// twin must equal its 0.1.1 counterpart. The 0.1.1 trios above already - /// prove each 0.1.1 value against its generated pointer, so proving the - /// twins equal 0.1.1 carries that pointer-consistency over to 0.1.2 — and - /// fails the moment a twin is edited to drift. - function testRelease012TwinsEqualRelease011() external pure { - assertEq(LibProdDeployV4.STOX_RECEIPT_0_1_2, LibProdDeployV4.STOX_RECEIPT_0_1_1); - assertEq(LibProdDeployV4.STOX_RECEIPT_CODEHASH_0_1_2, LibProdDeployV4.STOX_RECEIPT_CODEHASH_0_1_1); - assertEq(LibProdDeployV4.STOX_RECEIPT_VAULT_0_1_2, LibProdDeployV4.STOX_RECEIPT_VAULT_0_1_1); - assertEq(LibProdDeployV4.STOX_RECEIPT_VAULT_CODEHASH_0_1_2, LibProdDeployV4.STOX_RECEIPT_VAULT_CODEHASH_0_1_1); - assertEq(LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_0_1_2, LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_0_1_1); - assertEq( - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_CODEHASH_0_1_2, - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_CODEHASH_0_1_1 - ); - assertEq(LibProdDeployV4.STOX_UNIFIED_DEPLOYER_0_1_2, LibProdDeployV4.STOX_UNIFIED_DEPLOYER_0_1_1); - assertEq( - LibProdDeployV4.STOX_UNIFIED_DEPLOYER_CODEHASH_0_1_2, LibProdDeployV4.STOX_UNIFIED_DEPLOYER_CODEHASH_0_1_1 - ); - assertEq( - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_0_1_2, LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_0_1_1 - ); - assertEq( - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_CODEHASH_0_1_2, - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_CODEHASH_0_1_1 - ); - assertEq( - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_0_1_2, - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_0_1_1 - ); - assertEq( - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_2, - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_1 - ); - assertEq( - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_0_1_2, - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_0_1_1 - ); - assertEq( - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_2, - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_1 - ); - assertEq( - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_0_1_2, - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_0_1_1 - ); - assertEq( - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CODEHASH_0_1_2, - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CODEHASH_0_1_1 - ); - assertEq( - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_0_1_2, - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_0_1_1 - ); - assertEq( - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CODEHASH_0_1_2, - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CODEHASH_0_1_1 - ); - assertEq(LibProdDeployV4.STOX_CORPORATE_ACTIONS_FACET_0_1_2, LibProdDeployV4.STOX_CORPORATE_ACTIONS_FACET_0_1_1); - assertEq( - LibProdDeployV4.STOX_CORPORATE_ACTIONS_FACET_CODEHASH_0_1_2, - LibProdDeployV4.STOX_CORPORATE_ACTIONS_FACET_CODEHASH_0_1_1 - ); - } - - /// st0x-deploy 0.1.3 re-pins FIVE of the twelve 0.1.2 contracts at IDENTICAL - /// values and rebuilds the other SEVEN. Two source changes drive the - /// rebuilds. `StoxCorporateActionsFacet` changed at the source (the - /// cumulative-multiplier change); the receipt vault hardcodes that facet in - /// its `fallback()` and each downstream deployer/orchestrator embeds a - /// rebuilt address, so the change cascades — the receipt vault, the OARV - /// beacon-set deployer, the unified deployer, the orchestrator, and the - /// orchestrator beacon-set deployer each get a new Zoltu address + codehash. - /// An ERC-165 fix changed the `supportsInterface` bytecode of the unified - /// deployer, the wrapped-token-vault beacon-set deployer, and the - /// orchestrator directly — moving the wrapped-token-vault beacon-set deployer - /// too (the other two already move with the facet cascade). - /// Every 0.1.3 twin below must equal its 0.1.2 counterpart, and every 0.1.3 - /// mover must NOT equal it. The 0.1.2 trios/twins above already prove each - /// 0.1.2 value against its generated pointer / 0.1.1 twin, so proving the - /// 0.1.3 twins equal 0.1.2 carries that consistency over to 0.1.3 — and the - /// mover not-equal assertions fail the moment a mover is reverted to a twin - /// (or a twin drifts). - function testRelease013TwinsEqualRelease012() external pure { - // --- The five byte-identical 0.1.2 twins. --- - assertEq(LibProdDeployV4.STOX_RECEIPT_0_1_3, LibProdDeployV4.STOX_RECEIPT_0_1_2); - assertEq(LibProdDeployV4.STOX_RECEIPT_CODEHASH_0_1_3, LibProdDeployV4.STOX_RECEIPT_CODEHASH_0_1_2); - assertEq(LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_0_1_3, LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_0_1_2); - assertEq( - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_CODEHASH_0_1_3, - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_CODEHASH_0_1_2 - ); - assertEq( - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_0_1_3, LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_0_1_2 - ); - assertEq( - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_CODEHASH_0_1_3, - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_CODEHASH_0_1_2 - ); - assertEq( - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_0_1_3, - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_0_1_2 - ); - assertEq( - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CODEHASH_0_1_3, - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CODEHASH_0_1_2 - ); - assertEq( - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_0_1_3, - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_0_1_2 - ); - assertEq( - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CODEHASH_0_1_3, - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CODEHASH_0_1_2 - ); - - // --- The seven 0.1.3 movers: each MUST differ from its 0.1.2 pin. A - // mover reverted to its 0.1.2 twin (or a rebuild dropped) trips this. --- - assertTrue( - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_0_1_3 - != LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_0_1_2 - ); - assertTrue( - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_3 - != LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_2 - ); - assertTrue( - LibProdDeployV4.STOX_CORPORATE_ACTIONS_FACET_0_1_3 != LibProdDeployV4.STOX_CORPORATE_ACTIONS_FACET_0_1_2 - ); - assertTrue( - LibProdDeployV4.STOX_CORPORATE_ACTIONS_FACET_CODEHASH_0_1_3 - != LibProdDeployV4.STOX_CORPORATE_ACTIONS_FACET_CODEHASH_0_1_2 - ); - assertTrue(LibProdDeployV4.STOX_RECEIPT_VAULT_0_1_3 != LibProdDeployV4.STOX_RECEIPT_VAULT_0_1_2); - assertTrue( - LibProdDeployV4.STOX_RECEIPT_VAULT_CODEHASH_0_1_3 != LibProdDeployV4.STOX_RECEIPT_VAULT_CODEHASH_0_1_2 - ); - assertTrue( - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_0_1_3 - != LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_0_1_2 - ); - assertTrue( - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_3 - != LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_2 - ); - assertTrue(LibProdDeployV4.STOX_UNIFIED_DEPLOYER_0_1_3 != LibProdDeployV4.STOX_UNIFIED_DEPLOYER_0_1_2); - assertTrue( - LibProdDeployV4.STOX_UNIFIED_DEPLOYER_CODEHASH_0_1_3 != LibProdDeployV4.STOX_UNIFIED_DEPLOYER_CODEHASH_0_1_2 - ); - assertTrue(LibProdDeployV4.ST0X_ORCHESTRATOR_0_1_3 != LibProdDeployV4.ST0X_ORCHESTRATOR_0_1_2); - assertTrue(LibProdDeployV4.ST0X_ORCHESTRATOR_CODEHASH_0_1_3 != LibProdDeployV4.ST0X_ORCHESTRATOR_CODEHASH_0_1_2); - assertTrue( - LibProdDeployV4.ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_0_1_3 - != LibProdDeployV4.ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_0_1_2 - ); - assertTrue( - LibProdDeployV4.ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CODEHASH_0_1_3 - != LibProdDeployV4.ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CODEHASH_0_1_2 - ); - } - /// Each release's frozen runtime bytecode hashes to that release's codehash /// pin — proving the per-tag bytecode record is self-consistent (and, for /// 0.1.1, that the frozen snapshot matches the codehash independent of the @@ -461,98 +327,54 @@ contract LibProdDeployV4Test is Test { LibProdDeployV4.STOX_CORPORATE_ACTIONS_FACET_CODEHASH_0_1_1 ); assertEq( - keccak256(LibProdDeployV4.STOX_RECEIPT_RUNTIME_CODE_0_1_2), LibProdDeployV4.STOX_RECEIPT_CODEHASH_0_1_2 - ); - assertEq( - keccak256(LibProdDeployV4.STOX_RECEIPT_VAULT_RUNTIME_CODE_0_1_2), - LibProdDeployV4.STOX_RECEIPT_VAULT_CODEHASH_0_1_2 - ); - assertEq( - keccak256(LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_RUNTIME_CODE_0_1_2), - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_CODEHASH_0_1_2 - ); - assertEq( - keccak256(LibProdDeployV4.STOX_UNIFIED_DEPLOYER_RUNTIME_CODE_0_1_2), - LibProdDeployV4.STOX_UNIFIED_DEPLOYER_CODEHASH_0_1_2 - ); - assertEq( - keccak256(LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_RUNTIME_CODE_0_1_2), - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_CODEHASH_0_1_2 - ); - assertEq( - keccak256(LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_RUNTIME_CODE_0_1_2), - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_2 - ); - assertEq( - keccak256(LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_RUNTIME_CODE_0_1_2), - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_2 - ); - assertEq( - keccak256(LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_RUNTIME_CODE_0_1_2), - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CODEHASH_0_1_2 - ); - assertEq( - keccak256(LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_RUNTIME_CODE_0_1_2), - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CODEHASH_0_1_2 - ); - assertEq( - keccak256(LibProdDeployV4.STOX_CORPORATE_ACTIONS_FACET_RUNTIME_CODE_0_1_2), - LibProdDeployV4.STOX_CORPORATE_ACTIONS_FACET_CODEHASH_0_1_2 - ); - assertEq( - keccak256(LibProdDeployV4.ST0X_ORCHESTRATOR_RUNTIME_CODE_0_1_2), - LibProdDeployV4.ST0X_ORCHESTRATOR_CODEHASH_0_1_2 - ); - assertEq( - keccak256(LibProdDeployV4.ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_RUNTIME_CODE_0_1_2), - LibProdDeployV4.ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CODEHASH_0_1_2 - ); - assertEq( - keccak256(LibProdDeployV4.STOX_RECEIPT_RUNTIME_CODE_0_1_3), LibProdDeployV4.STOX_RECEIPT_CODEHASH_0_1_3 + keccak256(LibProdDeployV4.STOX_RECEIPT_RUNTIME_CODE_CANDIDATE), + LibProdDeployV4.STOX_RECEIPT_CODEHASH_CANDIDATE ); assertEq( - keccak256(LibProdDeployV4.STOX_RECEIPT_VAULT_RUNTIME_CODE_0_1_3), - LibProdDeployV4.STOX_RECEIPT_VAULT_CODEHASH_0_1_3 + keccak256(LibProdDeployV4.STOX_RECEIPT_VAULT_RUNTIME_CODE_CANDIDATE), + LibProdDeployV4.STOX_RECEIPT_VAULT_CODEHASH_CANDIDATE ); assertEq( - keccak256(LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_RUNTIME_CODE_0_1_3), - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_CODEHASH_0_1_3 + keccak256(LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_RUNTIME_CODE_CANDIDATE), + LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_CODEHASH_CANDIDATE ); assertEq( - keccak256(LibProdDeployV4.STOX_UNIFIED_DEPLOYER_RUNTIME_CODE_0_1_3), - LibProdDeployV4.STOX_UNIFIED_DEPLOYER_CODEHASH_0_1_3 + keccak256(LibProdDeployV4.STOX_UNIFIED_DEPLOYER_RUNTIME_CODE_CANDIDATE), + LibProdDeployV4.STOX_UNIFIED_DEPLOYER_CODEHASH_CANDIDATE ); assertEq( - keccak256(LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_RUNTIME_CODE_0_1_3), - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_CODEHASH_0_1_3 + keccak256(LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_RUNTIME_CODE_CANDIDATE), + LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_CODEHASH_CANDIDATE ); assertEq( - keccak256(LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_RUNTIME_CODE_0_1_3), - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_3 + keccak256(LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_RUNTIME_CODE_CANDIDATE), + LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CODEHASH_CANDIDATE ); assertEq( - keccak256(LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_RUNTIME_CODE_0_1_3), - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_3 + keccak256(LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_RUNTIME_CODE_CANDIDATE), + LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CODEHASH_CANDIDATE ); assertEq( - keccak256(LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_RUNTIME_CODE_0_1_3), - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CODEHASH_0_1_3 + keccak256(LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_RUNTIME_CODE_CANDIDATE), + LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_AUTHORIZER_V1_CODEHASH_CANDIDATE ); assertEq( - keccak256(LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_RUNTIME_CODE_0_1_3), - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CODEHASH_0_1_3 + keccak256( + LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_RUNTIME_CODE_CANDIDATE + ), + LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_PAYMENT_MINT_AUTHORIZER_V1_CODEHASH_CANDIDATE ); assertEq( - keccak256(LibProdDeployV4.STOX_CORPORATE_ACTIONS_FACET_RUNTIME_CODE_0_1_3), - LibProdDeployV4.STOX_CORPORATE_ACTIONS_FACET_CODEHASH_0_1_3 + keccak256(LibProdDeployV4.STOX_CORPORATE_ACTIONS_FACET_RUNTIME_CODE_CANDIDATE), + LibProdDeployV4.STOX_CORPORATE_ACTIONS_FACET_CODEHASH_CANDIDATE ); assertEq( - keccak256(LibProdDeployV4.ST0X_ORCHESTRATOR_RUNTIME_CODE_0_1_3), - LibProdDeployV4.ST0X_ORCHESTRATOR_CODEHASH_0_1_3 + keccak256(LibProdDeployV4.ST0X_ORCHESTRATOR_RUNTIME_CODE_CANDIDATE), + LibProdDeployV4.ST0X_ORCHESTRATOR_CODEHASH_CANDIDATE ); assertEq( - keccak256(LibProdDeployV4.ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_RUNTIME_CODE_0_1_3), - LibProdDeployV4.ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CODEHASH_0_1_3 + keccak256(LibProdDeployV4.ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_RUNTIME_CODE_CANDIDATE), + LibProdDeployV4.ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CODEHASH_CANDIDATE ); } @@ -570,12 +392,12 @@ contract LibProdDeployV4Test is Test { // deploy the CURRENT source and are what break when the source drifts; these // pin the frozen bytecode itself. // - // Only DISTINCT (creation code, address) pairs are covered: the ten 0.1.1 - // contracts plus the two 0.1.2-only contracts (the orchestrator and its - // deployer). The 0.1.2 twins of the ten are byte-identical creation code, so - // they Zoltu-derive the SAME address (already proven equal by - // `testRelease012TwinsEqualRelease011`) and redeploying them would collide - // on the already-occupied address. + // Only DISTINCT (creation code, address) pairs are covered: the ten audited + // 0.1.1 contracts plus the candidate-only contracts (the orchestrator and + // its deployer, which 0.1.1 predates). The candidate contracts byte-identical + // to their 0.1.1 counterparts share the same creation code, so they + // Zoltu-derive the SAME address and redeploying them would collide on the + // already-occupied address. // // Deployer dependency ordering mirrors the `testDeployAddress*` tests // exactly: a deployer/beacon whose constructor bakes an impl address needs @@ -712,120 +534,96 @@ contract LibProdDeployV4Test is Test { ); } - // --- 0.1.2-only frozen redeploys (new to the 0.1.2 release) --- - - function testFrozenRedeployST0xOrchestrator() external { - LibRainDeploy.etchZoltuFactory(vm); - _assertFrozenRedeploy( - LibProdDeployV4.ST0X_ORCHESTRATOR_CREATION_CODE_0_1_2, - LibProdDeployV4.ST0X_ORCHESTRATOR_0_1_2, - LibProdDeployV4.ST0X_ORCHESTRATOR_RUNTIME_CODE_0_1_2, - LibProdDeployV4.ST0X_ORCHESTRATOR_CODEHASH_0_1_2 - ); - } - - /// Its constructor builds an `UpgradeableBeacon` over the orchestrator impl, - /// so the impl is deployed (frozen) first, matching - /// `testDeployAddressST0xOrchestratorBeaconSetDeployer`. - function testFrozenRedeployST0xOrchestratorBeaconSetDeployer() external { - LibRainDeploy.etchZoltuFactory(vm); - LibRainDeploy.deployZoltu(LibProdDeployV4.ST0X_ORCHESTRATOR_CREATION_CODE_0_1_2); - _assertFrozenRedeploy( - LibProdDeployV4.ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CREATION_CODE_0_1_2, - LibProdDeployV4.ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_0_1_2, - LibProdDeployV4.ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_RUNTIME_CODE_0_1_2, - LibProdDeployV4.ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CODEHASH_0_1_2 - ); - } - - // --- 0.1.3 movers' frozen redeploys (seven contracts are rebuilt in 0.1.3: - // the corporate-actions facet plus the receipt vault, OARV beacon-set - // deployer, unified deployer, orchestrator, and orchestrator beacon-set - // deployer that cascade from it, and the wrapped-token-vault beacon-set - // deployer moved by the ERC-165 `supportsInterface` fix; the other five are - // byte-identical 0.1.2 twins that Zoltu-derive the already-occupied 0.1.2 + // --- candidate movers' frozen redeploys (seven candidate contracts differ + // from the audited 0.1.1 set: the corporate-actions facet plus the receipt + // vault, OARV beacon-set deployer, unified deployer, orchestrator, and + // orchestrator beacon-set deployer that cascade from it, and the + // wrapped-token-vault beacon-set deployer moved by the ERC-165 + // `supportsInterface` fix; the other candidate contracts are byte-identical + // to their 0.1.1 counterparts and Zoltu-derive the same already-occupied // addresses, so only these seven have a distinct (creation code, address) // pair to redeploy). Deployer/beacon dependency ordering mirrors the // `testDeployAddress*` tests exactly: an impl a constructor bakes is deployed - // (frozen, at its 0.1.3 address) first. --- + // (frozen, at its candidate address) first. --- - /// Standalone (its constructor is empty — the beacon is referenced only at - /// call time), so no impl predeploy is needed. It moves in 0.1.3 for the - /// ERC-165 `supportsInterface` change, not the facet cascade. - function testFrozenRedeployStoxWrappedTokenVaultBeaconSetDeployer_0_1_3() external { + /// Standalone: no beacon bytecode is baked into the deployer artifact, so no + /// impl predeploy is needed to redeploy it — the deployed proxy checks the + /// beacon at proxy construction time. It differs from 0.1.1 for the ERC-165 + /// `supportsInterface` change, not the facet cascade. + function testFrozenRedeployStoxWrappedTokenVaultBeaconSetDeployer_CANDIDATE() external { LibRainDeploy.etchZoltuFactory(vm); _assertFrozenRedeploy( - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CREATION_CODE_0_1_3, - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_0_1_3, - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_RUNTIME_CODE_0_1_3, - LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_3 + LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CREATION_CODE_CANDIDATE, + LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CANDIDATE, + LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_RUNTIME_CODE_CANDIDATE, + LibProdDeployV4.STOX_WRAPPED_TOKEN_VAULT_BEACON_SET_DEPLOYER_CODEHASH_CANDIDATE ); } - function testFrozenRedeployStoxCorporateActionsFacet_0_1_3() external { + function testFrozenRedeployStoxCorporateActionsFacet_CANDIDATE() external { LibRainDeploy.etchZoltuFactory(vm); _assertFrozenRedeploy( - LibProdDeployV4.STOX_CORPORATE_ACTIONS_FACET_CREATION_CODE_0_1_3, - LibProdDeployV4.STOX_CORPORATE_ACTIONS_FACET_0_1_3, - LibProdDeployV4.STOX_CORPORATE_ACTIONS_FACET_RUNTIME_CODE_0_1_3, - LibProdDeployV4.STOX_CORPORATE_ACTIONS_FACET_CODEHASH_0_1_3 + LibProdDeployV4.STOX_CORPORATE_ACTIONS_FACET_CREATION_CODE_CANDIDATE, + LibProdDeployV4.STOX_CORPORATE_ACTIONS_FACET_CANDIDATE, + LibProdDeployV4.STOX_CORPORATE_ACTIONS_FACET_RUNTIME_CODE_CANDIDATE, + LibProdDeployV4.STOX_CORPORATE_ACTIONS_FACET_CODEHASH_CANDIDATE ); } - function testFrozenRedeployStoxReceiptVault_0_1_3() external { + function testFrozenRedeployStoxReceiptVault_CANDIDATE() external { LibRainDeploy.etchZoltuFactory(vm); _assertFrozenRedeploy( - LibProdDeployV4.STOX_RECEIPT_VAULT_CREATION_CODE_0_1_3, - LibProdDeployV4.STOX_RECEIPT_VAULT_0_1_3, - LibProdDeployV4.STOX_RECEIPT_VAULT_RUNTIME_CODE_0_1_3, - LibProdDeployV4.STOX_RECEIPT_VAULT_CODEHASH_0_1_3 + LibProdDeployV4.STOX_RECEIPT_VAULT_CREATION_CODE_CANDIDATE, + LibProdDeployV4.STOX_RECEIPT_VAULT_CANDIDATE, + LibProdDeployV4.STOX_RECEIPT_VAULT_RUNTIME_CODE_CANDIDATE, + LibProdDeployV4.STOX_RECEIPT_VAULT_CODEHASH_CANDIDATE ); } /// Its constructor builds two beacons over the receipt and receipt-vault - /// impls, so both are deployed (frozen, at their 0.1.3 addresses) first. - function testFrozenRedeployStoxOffchainAssetReceiptVaultBeaconSetDeployer_0_1_3() external { + /// impls, so both are deployed (frozen, at their candidate addresses) first. + function testFrozenRedeployStoxOffchainAssetReceiptVaultBeaconSetDeployer_CANDIDATE() external { LibRainDeploy.etchZoltuFactory(vm); - LibRainDeploy.deployZoltu(LibProdDeployV4.STOX_RECEIPT_CREATION_CODE_0_1_3); - LibRainDeploy.deployZoltu(LibProdDeployV4.STOX_RECEIPT_VAULT_CREATION_CODE_0_1_3); + LibRainDeploy.deployZoltu(LibProdDeployV4.STOX_RECEIPT_CREATION_CODE_CANDIDATE); + LibRainDeploy.deployZoltu(LibProdDeployV4.STOX_RECEIPT_VAULT_CREATION_CODE_CANDIDATE); _assertFrozenRedeploy( - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CREATION_CODE_0_1_3, - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_0_1_3, - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_RUNTIME_CODE_0_1_3, - LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CODEHASH_0_1_3 + LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CREATION_CODE_CANDIDATE, + LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CANDIDATE, + LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_RUNTIME_CODE_CANDIDATE, + LibProdDeployV4.STOX_OFFCHAIN_ASSET_RECEIPT_VAULT_BEACON_SET_DEPLOYER_CODEHASH_CANDIDATE ); } - function testFrozenRedeployStoxUnifiedDeployer_0_1_3() external { + function testFrozenRedeployStoxUnifiedDeployer_CANDIDATE() external { LibRainDeploy.etchZoltuFactory(vm); _assertFrozenRedeploy( - LibProdDeployV4.STOX_UNIFIED_DEPLOYER_CREATION_CODE_0_1_3, - LibProdDeployV4.STOX_UNIFIED_DEPLOYER_0_1_3, - LibProdDeployV4.STOX_UNIFIED_DEPLOYER_RUNTIME_CODE_0_1_3, - LibProdDeployV4.STOX_UNIFIED_DEPLOYER_CODEHASH_0_1_3 + LibProdDeployV4.STOX_UNIFIED_DEPLOYER_CREATION_CODE_CANDIDATE, + LibProdDeployV4.STOX_UNIFIED_DEPLOYER_CANDIDATE, + LibProdDeployV4.STOX_UNIFIED_DEPLOYER_RUNTIME_CODE_CANDIDATE, + LibProdDeployV4.STOX_UNIFIED_DEPLOYER_CODEHASH_CANDIDATE ); } - function testFrozenRedeployST0xOrchestrator_0_1_3() external { + function testFrozenRedeployST0xOrchestrator_CANDIDATE() external { LibRainDeploy.etchZoltuFactory(vm); _assertFrozenRedeploy( - LibProdDeployV4.ST0X_ORCHESTRATOR_CREATION_CODE_0_1_3, - LibProdDeployV4.ST0X_ORCHESTRATOR_0_1_3, - LibProdDeployV4.ST0X_ORCHESTRATOR_RUNTIME_CODE_0_1_3, - LibProdDeployV4.ST0X_ORCHESTRATOR_CODEHASH_0_1_3 + LibProdDeployV4.ST0X_ORCHESTRATOR_CREATION_CODE_CANDIDATE, + LibProdDeployV4.ST0X_ORCHESTRATOR_CANDIDATE, + LibProdDeployV4.ST0X_ORCHESTRATOR_RUNTIME_CODE_CANDIDATE, + LibProdDeployV4.ST0X_ORCHESTRATOR_CODEHASH_CANDIDATE ); } /// Its constructor builds an `UpgradeableBeacon` over the orchestrator impl, - /// so the impl is deployed (frozen, at its 0.1.3 address) first. - function testFrozenRedeployST0xOrchestratorBeaconSetDeployer_0_1_3() external { + /// so the impl is deployed (frozen, at its candidate address) first. + function testFrozenRedeployST0xOrchestratorBeaconSetDeployer_CANDIDATE() external { LibRainDeploy.etchZoltuFactory(vm); - LibRainDeploy.deployZoltu(LibProdDeployV4.ST0X_ORCHESTRATOR_CREATION_CODE_0_1_3); + LibRainDeploy.deployZoltu(LibProdDeployV4.ST0X_ORCHESTRATOR_CREATION_CODE_CANDIDATE); _assertFrozenRedeploy( - LibProdDeployV4.ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CREATION_CODE_0_1_3, - LibProdDeployV4.ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_0_1_3, - LibProdDeployV4.ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_RUNTIME_CODE_0_1_3, - LibProdDeployV4.ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CODEHASH_0_1_3 + LibProdDeployV4.ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CREATION_CODE_CANDIDATE, + LibProdDeployV4.ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CANDIDATE, + LibProdDeployV4.ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_RUNTIME_CODE_CANDIDATE, + LibProdDeployV4.ST0X_ORCHESTRATOR_BEACON_SET_DEPLOYER_CODEHASH_CANDIDATE ); } } diff --git a/test/src/lib/LibStoxDeployNetworks.t.sol b/test/src/lib/LibStoxDeployNetworks.t.sol index 80172bd6..3d52fd27 100644 --- a/test/src/lib/LibStoxDeployNetworks.t.sol +++ b/test/src/lib/LibStoxDeployNetworks.t.sol @@ -4,24 +4,20 @@ pragma solidity =0.8.25; import {Test} from "forge-std-1.16.1/src/Test.sol"; import {LibStoxDeployNetworks} from "../../../src/lib/LibStoxDeployNetworks.sol"; -import {LibRainDeploy} from "rain-deploy-0.1.4/src/lib/LibRainDeploy.sol"; /// @title LibStoxDeployNetworksTest -/// @notice Pins the ST0x deploy network set so any change to the supported -/// networks fails a test. +/// @notice Pins the ST0x-specific deploy network-name constants so a rename +/// fails a test. contract LibStoxDeployNetworksTest is Test { - /// ST0x deploys to Base + Ethereum mainnet, in that order (Base first as - /// the reference network carrying the live production state). - function testSupportedNetworksIsBaseAndEthereum() external pure { - string[] memory networks = LibStoxDeployNetworks.supportedNetworks(); - assertEq(networks.length, 2, "expected exactly two deploy networks"); - assertEq(networks[0], LibRainDeploy.BASE, "expected Base first"); - assertEq(networks[1], LibStoxDeployNetworks.ETHEREUM, "expected Ethereum second"); - } - - /// The locally-declared Ethereum network name matches the foundry.toml - /// rpc alias convention used by every LibRainDeploy constant. + /// The locally-declared Ethereum network name matches the foundry.toml rpc + /// alias convention used by every LibRainDeploy constant. function testEthereumNetworkName() external pure { assertEq(LibStoxDeployNetworks.ETHEREUM, "ethereum", "expected ethereum rpc alias"); } + + /// The locally-declared HyperEVM network name matches the foundry.toml rpc + /// alias convention. + function testHyperevmNetworkName() external pure { + assertEq(LibStoxDeployNetworks.HYPEREVM, "hyperevm", "expected hyperevm rpc alias"); + } }