@elizaos/autonomous 2.0.0-alpha.21 → 2.0.0-alpha.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +14 -6
- package/test/agent-export.e2e.test.ts +376 -0
- package/test/agent-orchestration.e2e.test.ts +1568 -0
- package/test/agent-restart-recovery.e2e.test.ts +149 -0
- package/test/agent-runtime.e2e.test.ts +1515 -0
- package/test/anvil-contracts.e2e.test.ts +533 -0
- package/test/anvil-helper.ts +285 -0
- package/test/api-auth-live.e2e.test.ts +519 -0
- package/test/api-auth.e2e.test.ts +1039 -0
- package/test/api-server.e2e.test.ts +4582 -0
- package/test/apps-e2e.e2e.test.ts +1108 -0
- package/test/auth-modules.e2e.test.ts +71 -0
- package/test/cloud-auth-state.e2e.test.ts +145 -0
- package/test/cloud-persistence.e2e.test.ts +260 -0
- package/test/cloud-providers.e2e.test.ts +781 -0
- package/test/config-hot-reload.e2e.test.ts +131 -0
- package/test/contract-deployer.ts +151 -0
- package/test/contracts/MockMiladyAgentRegistry.sol +216 -0
- package/test/contracts/MockMiladyCollection.sol +195 -0
- package/test/contracts/cache/solidity-files-cache.json +1 -0
- package/test/contracts/foundry.toml +14 -0
- package/test/contracts/lib/openzeppelin-contracts/.changeset/config.json +12 -0
- package/test/contracts/lib/openzeppelin-contracts/.codecov.yml +12 -0
- package/test/contracts/lib/openzeppelin-contracts/.editorconfig +21 -0
- package/test/contracts/lib/openzeppelin-contracts/.eslintrc +20 -0
- package/test/contracts/lib/openzeppelin-contracts/.github/ISSUE_TEMPLATE/bug_report.md +21 -0
- package/test/contracts/lib/openzeppelin-contracts/.github/ISSUE_TEMPLATE/config.yml +4 -0
- package/test/contracts/lib/openzeppelin-contracts/.github/ISSUE_TEMPLATE/feature_request.md +14 -0
- package/test/contracts/lib/openzeppelin-contracts/.github/PULL_REQUEST_TEMPLATE.md +20 -0
- package/test/contracts/lib/openzeppelin-contracts/.github/actions/gas-compare/action.yml +49 -0
- package/test/contracts/lib/openzeppelin-contracts/.github/actions/setup/action.yml +19 -0
- package/test/contracts/lib/openzeppelin-contracts/.github/actions/storage-layout/action.yml +55 -0
- package/test/contracts/lib/openzeppelin-contracts/.github/workflows/actionlint.yml +18 -0
- package/test/contracts/lib/openzeppelin-contracts/.github/workflows/changeset.yml +28 -0
- package/test/contracts/lib/openzeppelin-contracts/.github/workflows/checks.yml +111 -0
- package/test/contracts/lib/openzeppelin-contracts/.github/workflows/docs.yml +19 -0
- package/test/contracts/lib/openzeppelin-contracts/.github/workflows/formal-verification.yml +68 -0
- package/test/contracts/lib/openzeppelin-contracts/.github/workflows/release-cycle.yml +218 -0
- package/test/contracts/lib/openzeppelin-contracts/.github/workflows/upgradeable.yml +30 -0
- package/test/contracts/lib/openzeppelin-contracts/.gitmodules +7 -0
- package/test/contracts/lib/openzeppelin-contracts/.mocharc.js +4 -0
- package/test/contracts/lib/openzeppelin-contracts/.prettierrc +14 -0
- package/test/contracts/lib/openzeppelin-contracts/.solcover.js +13 -0
- package/test/contracts/lib/openzeppelin-contracts/.solhint.json +14 -0
- package/test/contracts/lib/openzeppelin-contracts/CHANGELOG.md +743 -0
- package/test/contracts/lib/openzeppelin-contracts/CODE_OF_CONDUCT.md +73 -0
- package/test/contracts/lib/openzeppelin-contracts/CONTRIBUTING.md +36 -0
- package/test/contracts/lib/openzeppelin-contracts/GUIDELINES.md +117 -0
- package/test/contracts/lib/openzeppelin-contracts/LICENSE +22 -0
- package/test/contracts/lib/openzeppelin-contracts/README.md +90 -0
- package/test/contracts/lib/openzeppelin-contracts/RELEASING.md +47 -0
- package/test/contracts/lib/openzeppelin-contracts/SECURITY.md +42 -0
- package/test/contracts/lib/openzeppelin-contracts/audits/2017-03.md +292 -0
- package/test/contracts/lib/openzeppelin-contracts/audits/2018-10.pdf +0 -0
- package/test/contracts/lib/openzeppelin-contracts/audits/2022-10-Checkpoints.pdf +0 -0
- package/test/contracts/lib/openzeppelin-contracts/audits/2022-10-ERC4626.pdf +0 -0
- package/test/contracts/lib/openzeppelin-contracts/audits/2023-05-v4.9.pdf +0 -0
- package/test/contracts/lib/openzeppelin-contracts/audits/README.md +16 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/Makefile +54 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/README.md +60 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/diff/token_ERC721_ERC721.sol.patch +14 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/AccessControlDefaultAdminRulesHarness.sol +47 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/AccessControlHarness.sol +7 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/DoubleEndedQueueHarness.sol +59 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/ERC20FlashMintHarness.sol +36 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/ERC20PermitHarness.sol +17 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/ERC20WrapperHarness.sol +25 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/ERC3156FlashBorrowerHarness.sol +13 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/ERC721Harness.sol +37 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/ERC721ReceiverHarness.sol +11 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/EnumerableMapHarness.sol +55 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/EnumerableSetHarness.sol +35 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/InitializableHarness.sol +23 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/Ownable2StepHarness.sol +9 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/OwnableHarness.sol +9 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/PausableHarness.sol +19 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/TimelockControllerHarness.sol +12 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/reports/2021-10.pdf +0 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/reports/2022-03.pdf +0 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/reports/2022-05.pdf +0 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/run.js +146 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/specs/AccessControl.spec +126 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/specs/AccessControlDefaultAdminRules.spec +500 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/specs/DoubleEndedQueue.spec +366 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/specs/ERC20.spec +414 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/specs/ERC20FlashMint.spec +48 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/specs/ERC20Wrapper.spec +198 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/specs/ERC721.spec +589 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/specs/EnumerableMap.spec +334 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/specs/EnumerableSet.spec +247 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/specs/Initializable.spec +165 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/specs/Ownable.spec +78 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/specs/Ownable2Step.spec +108 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/specs/Pausable.spec +96 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/specs/TimelockController.spec +275 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/specs/helpers/helpers.spec +1 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/specs/methods/IAccessControl.spec +7 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/specs/methods/IAccessControlDefaultAdminRules.spec +36 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/specs/methods/IERC20.spec +11 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/specs/methods/IERC2612.spec +5 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/specs/methods/IERC3156.spec +5 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/specs/methods/IERC5313.spec +3 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/specs/methods/IERC721.spec +20 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/specs/methods/IOwnable.spec +5 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/specs/methods/IOwnable2Step.spec +7 -0
- package/test/contracts/lib/openzeppelin-contracts/certora/specs.json +86 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/access/AccessControl.sol +248 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/access/AccessControlCrossChain.sol +45 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/access/AccessControlDefaultAdminRules.sol +383 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/access/AccessControlEnumerable.sol +64 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol +88 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/access/IAccessControlDefaultAdminRules.sol +172 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/access/IAccessControlEnumerable.sol +31 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/access/Ownable.sol +83 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol +57 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/access/README.adoc +27 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/CrossChainEnabled.sol +54 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/README.adoc +34 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/amb/CrossChainEnabledAMB.sol +49 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/amb/LibAMB.sol +35 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/arbitrum/CrossChainEnabledArbitrumL1.sol +44 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/arbitrum/CrossChainEnabledArbitrumL2.sol +40 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/arbitrum/LibArbitrumL1.sol +42 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/arbitrum/LibArbitrumL2.sol +45 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/errors.sol +7 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/optimism/CrossChainEnabledOptimism.sol +41 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/optimism/LibOptimism.sol +36 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/polygon/CrossChainEnabledPolygonChild.sol +72 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/finance/PaymentSplitter.sol +214 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/finance/README.adoc +20 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/finance/VestingWallet.sol +145 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/governance/Governor.sol +723 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/governance/IGovernor.sol +313 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/governance/README.adoc +176 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/governance/TimelockController.sol +422 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/governance/compatibility/GovernorCompatibilityBravo.sol +333 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/governance/compatibility/IGovernorCompatibilityBravo.sol +118 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorCountingSimple.sol +100 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorPreventLateQuorum.sol +105 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorProposalThreshold.sol +23 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorSettings.sol +110 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorTimelockCompound.sol +190 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorTimelockControl.sol +166 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorVotes.sol +55 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorVotesComp.sol +55 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorVotesQuorumFraction.sol +121 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/IGovernorTimelock.sol +26 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/governance/utils/IVotes.sol +56 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/governance/utils/Votes.sol +244 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1155.sol +6 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1155MetadataURI.sol +6 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1155Receiver.sol +6 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol +19 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol +80 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1363Receiver.sol +35 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1363Spender.sol +29 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol +6 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1820Implementer.sol +6 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1820Registry.sol +6 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol +26 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol +6 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC20Metadata.sol +6 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC2309.sol +21 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC2612.sol +8 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC2981.sol +25 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC3156.sol +7 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC3156FlashBorrower.sol +29 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC3156FlashLender.sol +43 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol +232 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC4906.sol +20 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol +28 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC5313.sol +18 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC5805.sol +9 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC6372.sol +17 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC721.sol +6 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC721Enumerable.sol +6 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC721Metadata.sol +6 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC721Receiver.sol +6 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC777.sol +6 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC777Recipient.sol +6 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC777Sender.sol +6 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/README.adoc +73 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol +20 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC2612.sol +8 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/metatx/ERC2771Context.sol +54 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/metatx/MinimalForwarder.sol +72 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/metatx/README.adoc +12 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/AccessControlCrossChainMock.sol +8 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ArraysMock.sol +51 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/Base64Dirty.sol +19 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/CallReceiverMock.sol +61 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ConditionalEscrowMock.sol +18 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ContextMock.sol +35 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/DummyImplementation.sol +57 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/EIP712Verifier.sol +16 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC1271WalletMock.sol +26 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165MaliciousData.sol +12 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165MissingData.sol +7 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165NotSupported.sol +5 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165ReturnBomb.sol +18 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC20Mock.sol +16 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC20Reentrant.sol +43 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC2771ContextMock.sol +27 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC3156FlashBorrowerMock.sol +53 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC4626Mock.sol +16 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/EtherReceiverMock.sol +17 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/InitializableMock.sol +130 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/MulticallTest.sol +23 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/MultipleInheritanceInitializableMocks.sol +131 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/PausableMock.sol +31 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/PullPaymentMock.sol +15 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ReentrancyAttack.sol +12 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ReentrancyMock.sol +51 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/RegressionImplementation.sol +61 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/SafeMathMemoryCheck.sol +72 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/SingleInheritanceInitializableMocks.sol +49 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/StorageSlotMock.sol +77 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/TimelockReentrant.sol +26 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/TimersBlockNumberImpl.sol +39 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/TimersTimestampImpl.sol +39 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/VotesMock.sol +45 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/compound/CompTimelock.sol +174 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/crosschain/bridges.sol +94 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/crosschain/receivers.sol +54 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/docs/ERC4626Fees.sol +100 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/docs/governance/MyGovernor.sol +88 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/docs/governance/MyToken.sol +24 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/docs/governance/MyTokenTimestampBased.sol +35 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/docs/governance/MyTokenWrapped.sol +31 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorCompMock.sol +20 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorCompatibilityBravoMock.sol +100 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorMock.sol +28 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorPreventLateQuorumMock.sol +45 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorTimelockCompoundMock.sol +60 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorTimelockControlMock.sol +60 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorVoteMock.sol +20 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorWithParamsMock.sol +50 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/proxy/BadBeacon.sol +11 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/proxy/ClashingImplementation.sol +17 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/proxy/UUPSLegacy.sol +54 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/proxy/UUPSUpgradeableMock.sol +33 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC1155ReceiverMock.sol +47 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20DecimalsMock.sol +17 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20ExcessDecimalsMock.sol +9 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20FlashMintMock.sol +26 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20ForceApproveMock.sol +13 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20MulticallMock.sol +8 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20NoReturnMock.sol +28 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20PermitNoRevertMock.sol +36 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20ReturnFalseMock.sol +19 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20VotesLegacyMock.sol +262 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC4626OffsetMock.sol +17 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC4646FeesMock.sol +40 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC721ConsecutiveEnumerableMock.sol +51 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC721ConsecutiveMock.sol +61 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC721ReceiverMock.sol +42 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC721URIStorageMock.sol +17 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC777Mock.sol +13 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC777SenderRecipientMock.sol +152 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/VotesTimestamp.sol +40 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/wizard/MyGovernor1.sol +79 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/wizard/MyGovernor2.sol +85 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/wizard/MyGovernor3.sol +94 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/package.json +32 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/Clones.sol +88 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol +32 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol +157 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/Proxy.sol +86 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/README.adoc +87 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/beacon/BeaconProxy.sol +61 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol +16 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/beacon/UpgradeableBeacon.sol +65 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/transparent/ProxyAdmin.sol +81 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/transparent/TransparentUpgradeableProxy.sol +191 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol +166 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol +99 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/security/Pausable.sol +105 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/security/PullPayment.sol +74 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/security/README.adoc +20 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol +77 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/ERC1155.sol +497 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol +119 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol +58 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/README.adoc +49 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/ERC1155Burnable.sol +32 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/ERC1155Pausable.sol +44 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/ERC1155Supply.sol +64 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/ERC1155URIStorage.sol +63 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol +22 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/presets/ERC1155PresetMinterPauser.sol +114 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/presets/README.md +1 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Holder.sol +36 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Receiver.sol +19 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol +365 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol +78 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/README.adoc +80 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol +39 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Capped.sol +37 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20FlashMint.sol +109 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Pausable.sol +35 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Permit.sol +95 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Snapshot.sol +191 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Votes.sol +290 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20VotesComp.sol +46 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Wrapper.sol +73 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC4626.sol +256 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol +28 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol +90 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-ERC20Permit.sol +8 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol +8 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/presets/ERC20PresetFixedSupply.sol +30 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/presets/ERC20PresetMinterPauser.sol +94 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/presets/README.md +1 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol +143 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/utils/TokenTimelock.sol +72 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol +466 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol +132 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol +27 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/README.adoc +73 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Burnable.sol +26 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Consecutive.sol +148 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Enumerable.sol +159 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Pausable.sol +40 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Royalty.sol +38 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721URIStorage.sol +74 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Votes.sol +43 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Wrapper.sol +97 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol +29 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol +27 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/draft-ERC721Votes.sol +9 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/presets/ERC721PresetMinterPauserAutoId.sol +132 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/presets/README.md +1 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol +23 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC777/ERC777.sol +514 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC777/IERC777.sol +200 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC777/IERC777Recipient.sol +35 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC777/IERC777Sender.sol +35 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC777/README.adoc +32 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC777/presets/ERC777PresetFixedSupply.sol +30 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/common/ERC2981.sol +107 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/token/common/README.adoc +10 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/Address.sol +244 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/Arrays.sol +105 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/Base64.sol +101 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/Checkpoints.sol +560 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/Context.sol +28 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/Counters.sol +43 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/Create2.sol +75 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/Multicall.sol +39 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/README.adoc +113 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol +122 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol +138 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/Strings.sol +85 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/Timers.sol +75 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol +217 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol +142 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol +227 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol +50 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol +8 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/escrow/ConditionalEscrow.sol +25 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/escrow/Escrow.sol +67 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/escrow/RefundEscrow.sol +100 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol +29 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol +126 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Storage.sol +42 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/introspection/ERC1820Implementer.sol +43 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol +25 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/introspection/IERC1820Implementer.sol +20 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/introspection/IERC1820Registry.sol +112 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/math/Math.sol +339 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol +1136 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/math/SafeMath.sol +215 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol +43 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/math/SignedSafeMath.sol +68 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/structs/BitMaps.sol +51 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/structs/DoubleEndedQueue.sol +170 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol +598 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol +378 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/amb/IAMB.sol +41 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/arbitrum/IArbSys.sol +134 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/arbitrum/IBridge.sol +102 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/arbitrum/IDelayedMessageProvider.sol +16 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/arbitrum/IInbox.sol +152 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/arbitrum/IOutbox.sol +117 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/compound/ICompoundTimelock.sol +86 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/compound/LICENSE +11 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/optimism/ICrossDomainMessenger.sol +34 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/optimism/LICENSE +22 -0
- package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/polygon/IFxMessageProcessor.sol +7 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/README.md +16 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/antora.yml +6 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/config.js +21 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-3a.png +0 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-3b.png +0 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-6.png +0 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack.png +0 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-deposit.png +0 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-mint.png +0 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-linear.png +0 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-loglog.png +0 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-loglogext.png +0 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/tally-exec.png +0 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/tally-vote.png +0 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/nav.adoc +23 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/access-control.adoc +219 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/crosschain.adoc +210 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/crowdsales.adoc +11 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/drafts.adoc +19 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc1155.adoc +153 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc20-supply.adoc +113 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc20.adoc +85 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc4626.adoc +214 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc721.adoc +90 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc777.adoc +75 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/extending-contracts.adoc +131 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/governance.adoc +237 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/index.adoc +65 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/releases-stability.adoc +85 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/tokens.adoc +32 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/upgradeable.adoc +73 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/utilities.adoc +190 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/templates/contract.hbs +85 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/templates/helpers.js +46 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/templates/page.hbs +4 -0
- package/test/contracts/lib/openzeppelin-contracts/docs/templates/properties.js +45 -0
- package/test/contracts/lib/openzeppelin-contracts/foundry.toml +3 -0
- package/test/contracts/lib/openzeppelin-contracts/hardhat/env-artifacts.js +24 -0
- package/test/contracts/lib/openzeppelin-contracts/hardhat/env-contract.js +10 -0
- package/test/contracts/lib/openzeppelin-contracts/hardhat/ignore-unreachable-warnings.js +45 -0
- package/test/contracts/lib/openzeppelin-contracts/hardhat/skip-foundry-tests.js +6 -0
- package/test/contracts/lib/openzeppelin-contracts/hardhat/task-test-get-files.js +25 -0
- package/test/contracts/lib/openzeppelin-contracts/hardhat.config.js +118 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/erc4626-tests/ERC4626.prop.sol +404 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/erc4626-tests/ERC4626.test.sol +349 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/erc4626-tests/LICENSE +661 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/erc4626-tests/README.md +116 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/.github/workflows/ci.yml +92 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/.gitmodules +3 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/LICENSE-APACHE +203 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/LICENSE-MIT +25 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/README.md +250 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/foundry.toml +21 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/.github/workflows/build.yml +41 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/LICENSE +674 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/Makefile +14 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/default.nix +4 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/demo/demo.sol +222 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/package.json +15 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/test.sol +469 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/test.t.sol +313 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/package.json +16 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/Base.sol +33 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/Script.sol +26 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdAssertions.sol +376 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdChains.sol +233 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdCheats.sol +624 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdError.sol +15 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdInvariant.sol +92 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdJson.sol +179 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdMath.sol +43 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol +327 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdStyle.sol +333 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdUtils.sol +189 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/Test.sol +32 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol +409 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/console.sol +1533 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/console2.sol +1546 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IERC1155.sol +105 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IERC165.sol +12 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IERC20.sol +43 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IERC4626.sol +190 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IERC721.sol +164 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IMulticall3.sol +73 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/StdAssertions.t.sol +954 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/StdChains.t.sol +160 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/StdCheats.t.sol +401 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/StdError.t.sol +118 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/StdMath.t.sol +197 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/StdStorage.t.sol +283 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/StdStyle.t.sol +110 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/StdUtils.t.sol +297 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/compilation/CompilationScript.sol +10 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/compilation/CompilationScriptBase.sol +10 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/compilation/CompilationTest.sol +10 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/compilation/CompilationTestBase.sol +10 -0
- package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/fixtures/broadcast.log.json +187 -0
- package/test/contracts/lib/openzeppelin-contracts/logo.svg +15 -0
- package/test/contracts/lib/openzeppelin-contracts/netlify.toml +3 -0
- package/test/contracts/lib/openzeppelin-contracts/package-lock.json +28833 -0
- package/test/contracts/lib/openzeppelin-contracts/package.json +96 -0
- package/test/contracts/lib/openzeppelin-contracts/remappings.txt +1 -0
- package/test/contracts/lib/openzeppelin-contracts/renovate.json +4 -0
- package/test/contracts/lib/openzeppelin-contracts/requirements.txt +1 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/checks/compare-layout.js +19 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/checks/compareGasReports.js +243 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/checks/extract-layout.js +40 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/checks/generation.sh +6 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/checks/inheritance-ordering.js +54 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/gen-nav.js +41 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/generate/format-lines.js +16 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/generate/run.js +49 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/generate/templates/Checkpoints.js +304 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/generate/templates/Checkpoints.opts.js +22 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/generate/templates/Checkpoints.t.js +256 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/generate/templates/EnumerableMap.js +310 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/generate/templates/EnumerableSet.js +250 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/generate/templates/SafeCast.js +163 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/generate/templates/StorageSlot.js +87 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/generate/templates/conversion.js +30 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/git-user-config.sh +6 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/helpers.js +37 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/migrate-imports.js +180 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/prepack.sh +12 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/prepare-contracts-package.sh +15 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/prepare-docs.sh +26 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/prepare.sh +10 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/release/format-changelog.js +33 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/release/synchronize-versions.js +15 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/release/update-comment.js +34 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/release/version.sh +11 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/release/workflow/exit-prerelease.sh +8 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/release/workflow/github-release.js +47 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/release/workflow/integrity-check.sh +20 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/release/workflow/pack.sh +26 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/release/workflow/publish.sh +26 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/release/workflow/rerun.js +7 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/release/workflow/set-changesets-pr-title.js +17 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/release/workflow/start.sh +35 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/release/workflow/state.js +112 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/remove-ignored-artifacts.js +45 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/update-docs-branch.js +63 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/upgradeable/README.md +21 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/upgradeable/patch-apply.sh +19 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/upgradeable/patch-save.sh +18 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/upgradeable/transpile-onto.sh +44 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/upgradeable/transpile.sh +35 -0
- package/test/contracts/lib/openzeppelin-contracts/scripts/upgradeable/upgradeable.patch +481 -0
- package/test/contracts/lib/openzeppelin-contracts/slither.config.json +5 -0
- package/test/contracts/lib/openzeppelin-contracts/test/TESTING.md +3 -0
- package/test/contracts/lib/openzeppelin-contracts/test/access/AccessControl.behavior.js +867 -0
- package/test/contracts/lib/openzeppelin-contracts/test/access/AccessControl.test.js +12 -0
- package/test/contracts/lib/openzeppelin-contracts/test/access/AccessControlCrossChain.test.js +49 -0
- package/test/contracts/lib/openzeppelin-contracts/test/access/AccessControlDefaultAdminRules.test.js +25 -0
- package/test/contracts/lib/openzeppelin-contracts/test/access/AccessControlEnumerable.test.js +17 -0
- package/test/contracts/lib/openzeppelin-contracts/test/access/Ownable.test.js +59 -0
- package/test/contracts/lib/openzeppelin-contracts/test/access/Ownable2Step.test.js +67 -0
- package/test/contracts/lib/openzeppelin-contracts/test/crosschain/CrossChainEnabled.test.js +78 -0
- package/test/contracts/lib/openzeppelin-contracts/test/finance/PaymentSplitter.test.js +217 -0
- package/test/contracts/lib/openzeppelin-contracts/test/finance/VestingWallet.behavior.js +59 -0
- package/test/contracts/lib/openzeppelin-contracts/test/finance/VestingWallet.test.js +67 -0
- package/test/contracts/lib/openzeppelin-contracts/test/governance/Governor.t.sol +55 -0
- package/test/contracts/lib/openzeppelin-contracts/test/governance/Governor.test.js +782 -0
- package/test/contracts/lib/openzeppelin-contracts/test/governance/TimelockController.test.js +1254 -0
- package/test/contracts/lib/openzeppelin-contracts/test/governance/compatibility/GovernorCompatibilityBravo.test.js +283 -0
- package/test/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorComp.test.js +88 -0
- package/test/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorERC721.test.js +115 -0
- package/test/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorPreventLateQuorum.test.js +189 -0
- package/test/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorTimelockCompound.test.js +352 -0
- package/test/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorTimelockControl.test.js +445 -0
- package/test/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorVotesQuorumFraction.test.js +154 -0
- package/test/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorWithParams.test.js +173 -0
- package/test/contracts/lib/openzeppelin-contracts/test/governance/utils/EIP6372.behavior.js +23 -0
- package/test/contracts/lib/openzeppelin-contracts/test/governance/utils/Votes.behavior.js +361 -0
- package/test/contracts/lib/openzeppelin-contracts/test/governance/utils/Votes.test.js +71 -0
- package/test/contracts/lib/openzeppelin-contracts/test/helpers/chainid.js +10 -0
- package/test/contracts/lib/openzeppelin-contracts/test/helpers/create2.js +11 -0
- package/test/contracts/lib/openzeppelin-contracts/test/helpers/crosschain.js +61 -0
- package/test/contracts/lib/openzeppelin-contracts/test/helpers/customError.js +24 -0
- package/test/contracts/lib/openzeppelin-contracts/test/helpers/eip712.js +67 -0
- package/test/contracts/lib/openzeppelin-contracts/test/helpers/enums.js +12 -0
- package/test/contracts/lib/openzeppelin-contracts/test/helpers/erc1967.js +24 -0
- package/test/contracts/lib/openzeppelin-contracts/test/helpers/governance.js +201 -0
- package/test/contracts/lib/openzeppelin-contracts/test/helpers/map-values.js +7 -0
- package/test/contracts/lib/openzeppelin-contracts/test/helpers/sign.js +63 -0
- package/test/contracts/lib/openzeppelin-contracts/test/helpers/time.js +17 -0
- package/test/contracts/lib/openzeppelin-contracts/test/helpers/txpool.js +38 -0
- package/test/contracts/lib/openzeppelin-contracts/test/metatx/ERC2771Context.test.js +175 -0
- package/test/contracts/lib/openzeppelin-contracts/test/metatx/MinimalForwarder.test.js +169 -0
- package/test/contracts/lib/openzeppelin-contracts/test/migrate-imports.test.js +33 -0
- package/test/contracts/lib/openzeppelin-contracts/test/proxy/Clones.behaviour.js +136 -0
- package/test/contracts/lib/openzeppelin-contracts/test/proxy/Clones.test.js +61 -0
- package/test/contracts/lib/openzeppelin-contracts/test/proxy/ERC1967/ERC1967Proxy.test.js +13 -0
- package/test/contracts/lib/openzeppelin-contracts/test/proxy/Proxy.behaviour.js +225 -0
- package/test/contracts/lib/openzeppelin-contracts/test/proxy/beacon/BeaconProxy.test.js +139 -0
- package/test/contracts/lib/openzeppelin-contracts/test/proxy/beacon/UpgradeableBeacon.test.js +44 -0
- package/test/contracts/lib/openzeppelin-contracts/test/proxy/transparent/ProxyAdmin.test.js +127 -0
- package/test/contracts/lib/openzeppelin-contracts/test/proxy/transparent/TransparentUpgradeableProxy.behaviour.js +433 -0
- package/test/contracts/lib/openzeppelin-contracts/test/proxy/transparent/TransparentUpgradeableProxy.test.js +17 -0
- package/test/contracts/lib/openzeppelin-contracts/test/proxy/utils/Initializable.test.js +218 -0
- package/test/contracts/lib/openzeppelin-contracts/test/proxy/utils/UUPSUpgradeable.test.js +85 -0
- package/test/contracts/lib/openzeppelin-contracts/test/security/Pausable.test.js +85 -0
- package/test/contracts/lib/openzeppelin-contracts/test/security/PullPayment.test.js +51 -0
- package/test/contracts/lib/openzeppelin-contracts/test/security/ReentrancyGuard.test.js +43 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC1155/ERC1155.behavior.js +767 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC1155/ERC1155.test.js +235 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC1155/extensions/ERC1155Burnable.test.js +67 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC1155/extensions/ERC1155Pausable.test.js +108 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC1155/extensions/ERC1155Supply.test.js +107 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC1155/extensions/ERC1155URIStorage.test.js +66 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC1155/presets/ERC1155PresetMinterPauser.test.js +156 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC1155/utils/ERC1155Holder.test.js +64 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/ERC20.behavior.js +322 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/ERC20.test.js +305 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Burnable.behavior.js +106 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Burnable.test.js +20 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Capped.behavior.js +32 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Capped.test.js +23 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20FlashMint.test.js +204 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Pausable.test.js +133 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Snapshot.test.js +207 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Votes.test.js +578 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20VotesComp.test.js +543 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Wrapper.test.js +190 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC4626.t.sol +42 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC4626.test.js +1031 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/draft-ERC20Permit.test.js +103 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/presets/ERC20PresetFixedSupply.test.js +42 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/presets/ERC20PresetMinterPauser.test.js +110 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/utils/SafeERC20.test.js +350 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/utils/TokenTimelock.test.js +71 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/ERC721.behavior.js +893 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/ERC721.test.js +15 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/ERC721Enumerable.test.js +20 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Burnable.test.js +70 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Consecutive.t.sol +122 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Consecutive.test.js +206 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Pausable.test.js +92 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Royalty.test.js +41 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721URIStorage.test.js +100 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Votes.test.js +184 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Wrapper.test.js +283 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/presets/ERC721PresetMinterPauserAutoId.test.js +122 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/utils/ERC721Holder.test.js +22 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC777/ERC777.behavior.js +597 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC777/ERC777.test.js +556 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/ERC777/presets/ERC777PresetFixedSupply.test.js +49 -0
- package/test/contracts/lib/openzeppelin-contracts/test/token/common/ERC2981.behavior.js +157 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/Address.test.js +361 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/Arrays.test.js +123 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/Base64.test.js +43 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/Checkpoints.t.sol +347 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/Checkpoints.test.js +255 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/Context.behavior.js +42 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/Context.test.js +17 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/Counters.test.js +84 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/Create2.test.js +89 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/Multicall.test.js +68 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/ShortStrings.t.sol +55 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/ShortStrings.test.js +55 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/StorageSlot.test.js +210 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/Strings.test.js +150 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/TimersBlockNumberImpl.test.js +55 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/TimersTimestamp.test.js +55 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/cryptography/ECDSA.test.js +260 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/cryptography/EIP712.test.js +103 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/cryptography/MerkleProof.test.js +200 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/cryptography/SignatureChecker.test.js +87 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/escrow/ConditionalEscrow.test.js +37 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/escrow/Escrow.behavior.js +90 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/escrow/Escrow.test.js +14 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/escrow/RefundEscrow.test.js +143 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/introspection/ERC165.test.js +11 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/introspection/ERC165Checker.test.js +302 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/introspection/ERC165Storage.test.js +23 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/introspection/ERC1820Implementer.test.js +71 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/introspection/SupportsInterface.behavior.js +146 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/math/Math.t.sol +217 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/math/Math.test.js +289 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/math/SafeCast.test.js +152 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/math/SafeMath.test.js +433 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/math/SignedMath.test.js +95 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/math/SignedSafeMath.test.js +152 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/structs/BitMap.test.js +145 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/structs/DoubleEndedQueue.test.js +99 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/structs/EnumerableMap.behavior.js +185 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/structs/EnumerableMap.test.js +154 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/structs/EnumerableSet.behavior.js +129 -0
- package/test/contracts/lib/openzeppelin-contracts/test/utils/structs/EnumerableSet.test.js +79 -0
- package/test/contracts/out/AccessControl.sol/AccessControl.json +1 -0
- package/test/contracts/out/AccessControlCrossChain.sol/AccessControlCrossChain.json +1 -0
- package/test/contracts/out/AccessControlCrossChainMock.sol/AccessControlCrossChainMock.json +1 -0
- package/test/contracts/out/AccessControlDefaultAdminRules.sol/AccessControlDefaultAdminRules.json +1 -0
- package/test/contracts/out/AccessControlEnumerable.sol/AccessControlEnumerable.json +1 -0
- package/test/contracts/out/Address.sol/Address.json +1 -0
- package/test/contracts/out/Arrays.sol/Arrays.json +1 -0
- package/test/contracts/out/ArraysMock.sol/AddressArraysMock.json +1 -0
- package/test/contracts/out/ArraysMock.sol/Bytes32ArraysMock.json +1 -0
- package/test/contracts/out/ArraysMock.sol/Uint256ArraysMock.json +1 -0
- package/test/contracts/out/BadBeacon.sol/BadBeaconNoImpl.json +1 -0
- package/test/contracts/out/BadBeacon.sol/BadBeaconNotContract.json +1 -0
- package/test/contracts/out/Base.sol/CommonBase.json +1 -0
- package/test/contracts/out/Base.sol/ScriptBase.json +1 -0
- package/test/contracts/out/Base.sol/TestBase.json +1 -0
- package/test/contracts/out/Base64.sol/Base64.json +1 -0
- package/test/contracts/out/Base64Dirty.sol/Base64Dirty.json +1 -0
- package/test/contracts/out/BeaconProxy.sol/BeaconProxy.json +1 -0
- package/test/contracts/out/BitMaps.sol/BitMaps.json +1 -0
- package/test/contracts/out/CallReceiverMock.sol/CallReceiverMock.json +1 -0
- package/test/contracts/out/Checkpoints.sol/Checkpoints.json +1 -0
- package/test/contracts/out/Checkpoints.t.sol/CheckpointsHistoryTest.json +1 -0
- package/test/contracts/out/Checkpoints.t.sol/CheckpointsTrace160Test.json +1 -0
- package/test/contracts/out/Checkpoints.t.sol/CheckpointsTrace224Test.json +1 -0
- package/test/contracts/out/ClashingImplementation.sol/ClashingImplementation.json +1 -0
- package/test/contracts/out/Clones.sol/Clones.json +1 -0
- package/test/contracts/out/CompTimelock.sol/CompTimelock.json +1 -0
- package/test/contracts/out/CompilationScript.sol/CompilationScript.json +1 -0
- package/test/contracts/out/CompilationScriptBase.sol/CompilationScriptBase.json +1 -0
- package/test/contracts/out/CompilationTest.sol/CompilationTest.json +1 -0
- package/test/contracts/out/CompilationTestBase.sol/CompilationTestBase.json +1 -0
- package/test/contracts/out/ConditionalEscrow.sol/ConditionalEscrow.json +1 -0
- package/test/contracts/out/ConditionalEscrowMock.sol/ConditionalEscrowMock.json +1 -0
- package/test/contracts/out/Context.sol/Context.json +1 -0
- package/test/contracts/out/ContextMock.sol/ContextMock.json +1 -0
- package/test/contracts/out/ContextMock.sol/ContextMockCaller.json +1 -0
- package/test/contracts/out/Counters.sol/Counters.json +1 -0
- package/test/contracts/out/Create2.sol/Create2.json +1 -0
- package/test/contracts/out/CrossChainEnabled.sol/CrossChainEnabled.json +1 -0
- package/test/contracts/out/CrossChainEnabledAMB.sol/CrossChainEnabledAMB.json +1 -0
- package/test/contracts/out/CrossChainEnabledArbitrumL1.sol/CrossChainEnabledArbitrumL1.json +1 -0
- package/test/contracts/out/CrossChainEnabledArbitrumL2.sol/CrossChainEnabledArbitrumL2.json +1 -0
- package/test/contracts/out/CrossChainEnabledOptimism.sol/CrossChainEnabledOptimism.json +1 -0
- package/test/contracts/out/CrossChainEnabledPolygonChild.sol/CrossChainEnabledPolygonChild.json +1 -0
- package/test/contracts/out/DoubleEndedQueue.sol/DoubleEndedQueue.json +1 -0
- package/test/contracts/out/DummyImplementation.sol/DummyImplementation.json +1 -0
- package/test/contracts/out/DummyImplementation.sol/DummyImplementationV2.json +1 -0
- package/test/contracts/out/DummyImplementation.sol/Impl.json +1 -0
- package/test/contracts/out/ECDSA.sol/ECDSA.json +1 -0
- package/test/contracts/out/EIP712.sol/EIP712.json +1 -0
- package/test/contracts/out/EIP712Verifier.sol/EIP712Verifier.json +1 -0
- package/test/contracts/out/ERC1155.sol/ERC1155.json +1 -0
- package/test/contracts/out/ERC1155Burnable.sol/ERC1155Burnable.json +1 -0
- package/test/contracts/out/ERC1155Holder.sol/ERC1155Holder.json +1 -0
- package/test/contracts/out/ERC1155Pausable.sol/ERC1155Pausable.json +1 -0
- package/test/contracts/out/ERC1155PresetMinterPauser.sol/ERC1155PresetMinterPauser.json +1 -0
- package/test/contracts/out/ERC1155Receiver.sol/ERC1155Receiver.json +1 -0
- package/test/contracts/out/ERC1155ReceiverMock.sol/ERC1155ReceiverMock.json +1 -0
- package/test/contracts/out/ERC1155Supply.sol/ERC1155Supply.json +1 -0
- package/test/contracts/out/ERC1155URIStorage.sol/ERC1155URIStorage.json +1 -0
- package/test/contracts/out/ERC1271WalletMock.sol/ERC1271MaliciousMock.json +1 -0
- package/test/contracts/out/ERC1271WalletMock.sol/ERC1271WalletMock.json +1 -0
- package/test/contracts/out/ERC165.sol/ERC165.json +1 -0
- package/test/contracts/out/ERC165Checker.sol/ERC165Checker.json +1 -0
- package/test/contracts/out/ERC165MaliciousData.sol/ERC165MaliciousData.json +1 -0
- package/test/contracts/out/ERC165MissingData.sol/ERC165MissingData.json +1 -0
- package/test/contracts/out/ERC165NotSupported.sol/ERC165NotSupported.json +1 -0
- package/test/contracts/out/ERC165ReturnBomb.sol/ERC165ReturnBombMock.json +1 -0
- package/test/contracts/out/ERC165Storage.sol/ERC165Storage.json +1 -0
- package/test/contracts/out/ERC1820Implementer.sol/ERC1820Implementer.json +1 -0
- package/test/contracts/out/ERC1967Proxy.sol/ERC1967Proxy.json +1 -0
- package/test/contracts/out/ERC1967Upgrade.sol/ERC1967Upgrade.json +1 -0
- package/test/contracts/out/ERC20.sol/ERC20.json +1 -0
- package/test/contracts/out/ERC20Burnable.sol/ERC20Burnable.json +1 -0
- package/test/contracts/out/ERC20Capped.sol/ERC20Capped.json +1 -0
- package/test/contracts/out/ERC20DecimalsMock.sol/ERC20DecimalsMock.json +1 -0
- package/test/contracts/out/ERC20ExcessDecimalsMock.sol/ERC20ExcessDecimalsMock.json +1 -0
- package/test/contracts/out/ERC20FlashMint.sol/ERC20FlashMint.json +1 -0
- package/test/contracts/out/ERC20FlashMintMock.sol/ERC20FlashMintMock.json +1 -0
- package/test/contracts/out/ERC20ForceApproveMock.sol/ERC20ForceApproveMock.json +1 -0
- package/test/contracts/out/ERC20Mock.sol/ERC20Mock.json +1 -0
- package/test/contracts/out/ERC20MulticallMock.sol/ERC20MulticallMock.json +1 -0
- package/test/contracts/out/ERC20NoReturnMock.sol/ERC20NoReturnMock.json +1 -0
- package/test/contracts/out/ERC20Pausable.sol/ERC20Pausable.json +1 -0
- package/test/contracts/out/ERC20Permit.sol/ERC20Permit.json +1 -0
- package/test/contracts/out/ERC20PermitNoRevertMock.sol/ERC20PermitNoRevertMock.json +1 -0
- package/test/contracts/out/ERC20PresetFixedSupply.sol/ERC20PresetFixedSupply.json +1 -0
- package/test/contracts/out/ERC20PresetMinterPauser.sol/ERC20PresetMinterPauser.json +1 -0
- package/test/contracts/out/ERC20Reentrant.sol/ERC20Reentrant.json +1 -0
- package/test/contracts/out/ERC20ReturnFalseMock.sol/ERC20ReturnFalseMock.json +1 -0
- package/test/contracts/out/ERC20Snapshot.sol/ERC20Snapshot.json +1 -0
- package/test/contracts/out/ERC20Votes.sol/ERC20Votes.json +1 -0
- package/test/contracts/out/ERC20VotesComp.sol/ERC20VotesComp.json +1 -0
- package/test/contracts/out/ERC20VotesLegacyMock.sol/ERC20VotesLegacyMock.json +1 -0
- package/test/contracts/out/ERC20Wrapper.sol/ERC20Wrapper.json +1 -0
- package/test/contracts/out/ERC2771Context.sol/ERC2771Context.json +1 -0
- package/test/contracts/out/ERC2771ContextMock.sol/ERC2771ContextMock.json +1 -0
- package/test/contracts/out/ERC2981.sol/ERC2981.json +1 -0
- package/test/contracts/out/ERC3156FlashBorrowerMock.sol/ERC3156FlashBorrowerMock.json +1 -0
- package/test/contracts/out/ERC4626.prop.sol/ERC4626Prop.json +1 -0
- package/test/contracts/out/ERC4626.prop.sol/IERC20.json +1 -0
- package/test/contracts/out/ERC4626.prop.sol/IERC4626.json +1 -0
- package/test/contracts/out/ERC4626.sol/ERC4626.json +1 -0
- package/test/contracts/out/ERC4626.t.sol/ERC4626StdTest.json +1 -0
- package/test/contracts/out/ERC4626.t.sol/ERC4626VaultOffsetMock.json +1 -0
- package/test/contracts/out/ERC4626.test.sol/ERC4626Test.json +1 -0
- package/test/contracts/out/ERC4626.test.sol/IMockERC20.json +1 -0
- package/test/contracts/out/ERC4626Fees.sol/ERC4626Fees.json +1 -0
- package/test/contracts/out/ERC4626Mock.sol/ERC4626Mock.json +1 -0
- package/test/contracts/out/ERC4626OffsetMock.sol/ERC4626OffsetMock.json +1 -0
- package/test/contracts/out/ERC4646FeesMock.sol/ERC4626FeesMock.json +1 -0
- package/test/contracts/out/ERC721.sol/ERC721.json +1 -0
- package/test/contracts/out/ERC721Burnable.sol/ERC721Burnable.json +1 -0
- package/test/contracts/out/ERC721Consecutive.sol/ERC721Consecutive.json +1 -0
- package/test/contracts/out/ERC721Consecutive.t.sol/ERC721ConsecutiveTarget.json +1 -0
- package/test/contracts/out/ERC721Consecutive.t.sol/ERC721ConsecutiveTest.json +1 -0
- package/test/contracts/out/ERC721ConsecutiveEnumerableMock.sol/ERC721ConsecutiveEnumerableMock.json +1 -0
- package/test/contracts/out/ERC721ConsecutiveMock.sol/ERC721ConsecutiveMock.json +1 -0
- package/test/contracts/out/ERC721ConsecutiveMock.sol/ERC721ConsecutiveNoConstructorMintMock.json +1 -0
- package/test/contracts/out/ERC721Enumerable.sol/ERC721Enumerable.json +1 -0
- package/test/contracts/out/ERC721Holder.sol/ERC721Holder.json +1 -0
- package/test/contracts/out/ERC721Pausable.sol/ERC721Pausable.json +1 -0
- package/test/contracts/out/ERC721PresetMinterPauserAutoId.sol/ERC721PresetMinterPauserAutoId.json +1 -0
- package/test/contracts/out/ERC721ReceiverMock.sol/ERC721ReceiverMock.json +1 -0
- package/test/contracts/out/ERC721Royalty.sol/ERC721Royalty.json +1 -0
- package/test/contracts/out/ERC721URIStorage.sol/ERC721URIStorage.json +1 -0
- package/test/contracts/out/ERC721URIStorageMock.sol/ERC721URIStorageMock.json +1 -0
- package/test/contracts/out/ERC721Votes.sol/ERC721Votes.json +1 -0
- package/test/contracts/out/ERC721Wrapper.sol/ERC721Wrapper.json +1 -0
- package/test/contracts/out/ERC777.sol/ERC777.json +1 -0
- package/test/contracts/out/ERC777Mock.sol/ERC777Mock.json +1 -0
- package/test/contracts/out/ERC777PresetFixedSupply.sol/ERC777PresetFixedSupply.json +1 -0
- package/test/contracts/out/ERC777SenderRecipientMock.sol/ERC777SenderRecipientMock.json +1 -0
- package/test/contracts/out/EnumerableMap.sol/EnumerableMap.json +1 -0
- package/test/contracts/out/EnumerableSet.sol/EnumerableSet.json +1 -0
- package/test/contracts/out/Escrow.sol/Escrow.json +1 -0
- package/test/contracts/out/EtherReceiverMock.sol/EtherReceiverMock.json +1 -0
- package/test/contracts/out/Governor.sol/Governor.json +1 -0
- package/test/contracts/out/Governor.t.sol/GovernorInternalTest.json +1 -0
- package/test/contracts/out/GovernorCompMock.sol/GovernorCompMock.json +1 -0
- package/test/contracts/out/GovernorCompatibilityBravo.sol/GovernorCompatibilityBravo.json +1 -0
- package/test/contracts/out/GovernorCompatibilityBravoMock.sol/GovernorCompatibilityBravoMock.json +1 -0
- package/test/contracts/out/GovernorCountingSimple.sol/GovernorCountingSimple.json +1 -0
- package/test/contracts/out/GovernorMock.sol/GovernorMock.json +1 -0
- package/test/contracts/out/GovernorPreventLateQuorum.sol/GovernorPreventLateQuorum.json +1 -0
- package/test/contracts/out/GovernorPreventLateQuorumMock.sol/GovernorPreventLateQuorumMock.json +1 -0
- package/test/contracts/out/GovernorProposalThreshold.sol/GovernorProposalThreshold.json +1 -0
- package/test/contracts/out/GovernorSettings.sol/GovernorSettings.json +1 -0
- package/test/contracts/out/GovernorTimelockCompound.sol/GovernorTimelockCompound.json +1 -0
- package/test/contracts/out/GovernorTimelockCompoundMock.sol/GovernorTimelockCompoundMock.json +1 -0
- package/test/contracts/out/GovernorTimelockControl.sol/GovernorTimelockControl.json +1 -0
- package/test/contracts/out/GovernorTimelockControlMock.sol/GovernorTimelockControlMock.json +1 -0
- package/test/contracts/out/GovernorVoteMock.sol/GovernorVoteMocks.json +1 -0
- package/test/contracts/out/GovernorVotes.sol/GovernorVotes.json +1 -0
- package/test/contracts/out/GovernorVotesComp.sol/GovernorVotesComp.json +1 -0
- package/test/contracts/out/GovernorVotesQuorumFraction.sol/GovernorVotesQuorumFraction.json +1 -0
- package/test/contracts/out/GovernorWithParamsMock.sol/GovernorWithParamsMock.json +1 -0
- package/test/contracts/out/IAMB.sol/IAMB.json +1 -0
- package/test/contracts/out/IAccessControl.sol/IAccessControl.json +1 -0
- package/test/contracts/out/IAccessControlDefaultAdminRules.sol/IAccessControlDefaultAdminRules.json +1 -0
- package/test/contracts/out/IAccessControlEnumerable.sol/IAccessControlEnumerable.json +1 -0
- package/test/contracts/out/IArbSys.sol/IArbSys.json +1 -0
- package/test/contracts/out/IBeacon.sol/IBeacon.json +1 -0
- package/test/contracts/out/IBridge.sol/IBridge.json +1 -0
- package/test/contracts/out/ICompoundTimelock.sol/ICompoundTimelock.json +1 -0
- package/test/contracts/out/ICrossDomainMessenger.sol/ICrossDomainMessenger.json +1 -0
- package/test/contracts/out/IDelayedMessageProvider.sol/IDelayedMessageProvider.json +1 -0
- package/test/contracts/out/IERC1155.sol/IERC1155.json +1 -0
- package/test/contracts/out/IERC1155MetadataURI.sol/IERC1155MetadataURI.json +1 -0
- package/test/contracts/out/IERC1155Receiver.sol/IERC1155Receiver.json +1 -0
- package/test/contracts/out/IERC1271.sol/IERC1271.json +1 -0
- package/test/contracts/out/IERC1363.sol/IERC1363.json +1 -0
- package/test/contracts/out/IERC1363Receiver.sol/IERC1363Receiver.json +1 -0
- package/test/contracts/out/IERC1363Spender.sol/IERC1363Spender.json +1 -0
- package/test/contracts/out/IERC165.sol/IERC165.json +1 -0
- package/test/contracts/out/IERC1820Implementer.sol/IERC1820Implementer.json +1 -0
- package/test/contracts/out/IERC1820Registry.sol/IERC1820Registry.json +1 -0
- package/test/contracts/out/IERC1967.sol/IERC1967.json +1 -0
- package/test/contracts/out/IERC20.sol/IERC20.json +1 -0
- package/test/contracts/out/IERC20Metadata.sol/IERC20Metadata.json +1 -0
- package/test/contracts/out/IERC20Permit.sol/IERC20Permit.json +1 -0
- package/test/contracts/out/IERC2309.sol/IERC2309.json +1 -0
- package/test/contracts/out/IERC2612.sol/IERC2612.json +1 -0
- package/test/contracts/out/IERC2981.sol/IERC2981.json +1 -0
- package/test/contracts/out/IERC3156FlashBorrower.sol/IERC3156FlashBorrower.json +1 -0
- package/test/contracts/out/IERC3156FlashLender.sol/IERC3156FlashLender.json +1 -0
- package/test/contracts/out/IERC4626.sol/IERC4626.json +1 -0
- package/test/contracts/out/IERC4906.sol/IERC4906.json +1 -0
- package/test/contracts/out/IERC5267.sol/IERC5267.json +1 -0
- package/test/contracts/out/IERC5313.sol/IERC5313.json +1 -0
- package/test/contracts/out/IERC5805.sol/IERC5805.json +1 -0
- package/test/contracts/out/IERC6372.sol/IERC6372.json +1 -0
- package/test/contracts/out/IERC721.sol/IERC721.json +1 -0
- package/test/contracts/out/IERC721.sol/IERC721Enumerable.json +1 -0
- package/test/contracts/out/IERC721.sol/IERC721Metadata.json +1 -0
- package/test/contracts/out/IERC721.sol/IERC721TokenReceiver.json +1 -0
- package/test/contracts/out/IERC721Enumerable.sol/IERC721Enumerable.json +1 -0
- package/test/contracts/out/IERC721Metadata.sol/IERC721Metadata.json +1 -0
- package/test/contracts/out/IERC721Receiver.sol/IERC721Receiver.json +1 -0
- package/test/contracts/out/IERC777.sol/IERC777.json +1 -0
- package/test/contracts/out/IERC777Recipient.sol/IERC777Recipient.json +1 -0
- package/test/contracts/out/IERC777Sender.sol/IERC777Sender.json +1 -0
- package/test/contracts/out/IFxMessageProcessor.sol/IFxMessageProcessor.json +1 -0
- package/test/contracts/out/IGovernor.sol/IGovernor.json +1 -0
- package/test/contracts/out/IGovernorCompatibilityBravo.sol/IGovernorCompatibilityBravo.json +1 -0
- package/test/contracts/out/IGovernorTimelock.sol/IGovernorTimelock.json +1 -0
- package/test/contracts/out/IInbox.sol/IInbox.json +1 -0
- package/test/contracts/out/IMulticall3.sol/IMulticall3.json +1 -0
- package/test/contracts/out/IOutbox.sol/IOutbox.json +1 -0
- package/test/contracts/out/IVotes.sol/IVotes.json +1 -0
- package/test/contracts/out/Initializable.sol/Initializable.json +1 -0
- package/test/contracts/out/InitializableMock.sol/ChildConstructorInitializableMock.json +1 -0
- package/test/contracts/out/InitializableMock.sol/ConstructorInitializableMock.json +1 -0
- package/test/contracts/out/InitializableMock.sol/DisableBad1.json +1 -0
- package/test/contracts/out/InitializableMock.sol/DisableBad2.json +1 -0
- package/test/contracts/out/InitializableMock.sol/DisableNew.json +1 -0
- package/test/contracts/out/InitializableMock.sol/DisableOk.json +1 -0
- package/test/contracts/out/InitializableMock.sol/DisableOld.json +1 -0
- package/test/contracts/out/InitializableMock.sol/InitializableMock.json +1 -0
- package/test/contracts/out/InitializableMock.sol/ReinitializerMock.json +1 -0
- package/test/contracts/out/LibAMB.sol/LibAMB.json +1 -0
- package/test/contracts/out/LibArbitrumL1.sol/LibArbitrumL1.json +1 -0
- package/test/contracts/out/LibArbitrumL2.sol/LibArbitrumL2.json +1 -0
- package/test/contracts/out/LibOptimism.sol/LibOptimism.json +1 -0
- package/test/contracts/out/Math.sol/Math.json +1 -0
- package/test/contracts/out/Math.t.sol/MathTest.json +1 -0
- package/test/contracts/out/MerkleProof.sol/MerkleProof.json +1 -0
- package/test/contracts/out/MinimalForwarder.sol/MinimalForwarder.json +1 -0
- package/test/contracts/out/MockMiladyAgentRegistry.sol/MockMiladyAgentRegistry.json +1 -0
- package/test/contracts/out/MockMiladyCollection.sol/MockMiladyCollection.json +1 -0
- package/test/contracts/out/Multicall.sol/Multicall.json +1 -0
- package/test/contracts/out/MulticallTest.sol/MulticallTest.json +1 -0
- package/test/contracts/out/MultipleInheritanceInitializableMocks.sol/SampleChild.json +1 -0
- package/test/contracts/out/MultipleInheritanceInitializableMocks.sol/SampleFather.json +1 -0
- package/test/contracts/out/MultipleInheritanceInitializableMocks.sol/SampleGramps.json +1 -0
- package/test/contracts/out/MultipleInheritanceInitializableMocks.sol/SampleHuman.json +1 -0
- package/test/contracts/out/MultipleInheritanceInitializableMocks.sol/SampleMother.json +1 -0
- package/test/contracts/out/MyGovernor.sol/MyGovernor.json +1 -0
- package/test/contracts/out/MyGovernor1.sol/MyGovernor1.json +1 -0
- package/test/contracts/out/MyGovernor2.sol/MyGovernor2.json +1 -0
- package/test/contracts/out/MyGovernor3.sol/MyGovernor3.json +1 -0
- package/test/contracts/out/MyToken.sol/MyToken.json +1 -0
- package/test/contracts/out/MyTokenTimestampBased.sol/MyTokenTimestampBased.json +1 -0
- package/test/contracts/out/MyTokenWrapped.sol/MyTokenWrapped.json +1 -0
- package/test/contracts/out/Ownable.sol/Ownable.json +1 -0
- package/test/contracts/out/Ownable2Step.sol/Ownable2Step.json +1 -0
- package/test/contracts/out/Pausable.sol/Pausable.json +1 -0
- package/test/contracts/out/PausableMock.sol/PausableMock.json +1 -0
- package/test/contracts/out/PaymentSplitter.sol/PaymentSplitter.json +1 -0
- package/test/contracts/out/Proxy.sol/Proxy.json +1 -0
- package/test/contracts/out/ProxyAdmin.sol/ProxyAdmin.json +1 -0
- package/test/contracts/out/PullPayment.sol/PullPayment.json +1 -0
- package/test/contracts/out/PullPaymentMock.sol/PullPaymentMock.json +1 -0
- package/test/contracts/out/ReentrancyAttack.sol/ReentrancyAttack.json +1 -0
- package/test/contracts/out/ReentrancyGuard.sol/ReentrancyGuard.json +1 -0
- package/test/contracts/out/ReentrancyMock.sol/ReentrancyMock.json +1 -0
- package/test/contracts/out/RefundEscrow.sol/RefundEscrow.json +1 -0
- package/test/contracts/out/RegressionImplementation.sol/Implementation1.json +1 -0
- package/test/contracts/out/RegressionImplementation.sol/Implementation2.json +1 -0
- package/test/contracts/out/RegressionImplementation.sol/Implementation3.json +1 -0
- package/test/contracts/out/RegressionImplementation.sol/Implementation4.json +1 -0
- package/test/contracts/out/SafeCast.sol/SafeCast.json +1 -0
- package/test/contracts/out/SafeERC20.sol/SafeERC20.json +1 -0
- package/test/contracts/out/SafeMath.sol/SafeMath.json +1 -0
- package/test/contracts/out/SafeMathMemoryCheck.sol/SafeMathMemoryCheck.json +1 -0
- package/test/contracts/out/Script.sol/Script.json +1 -0
- package/test/contracts/out/ShortStrings.sol/ShortStrings.json +1 -0
- package/test/contracts/out/ShortStrings.t.sol/ShortStringsTest.json +1 -0
- package/test/contracts/out/SignatureChecker.sol/SignatureChecker.json +1 -0
- package/test/contracts/out/SignedMath.sol/SignedMath.json +1 -0
- package/test/contracts/out/SignedSafeMath.sol/SignedSafeMath.json +1 -0
- package/test/contracts/out/SingleInheritanceInitializableMocks.sol/MigratableMockV1.json +1 -0
- package/test/contracts/out/SingleInheritanceInitializableMocks.sol/MigratableMockV2.json +1 -0
- package/test/contracts/out/SingleInheritanceInitializableMocks.sol/MigratableMockV3.json +1 -0
- package/test/contracts/out/StdAssertions.sol/StdAssertions.json +1 -0
- package/test/contracts/out/StdAssertions.t.sol/StdAssertionsTest.json +1 -0
- package/test/contracts/out/StdAssertions.t.sol/TestMockCall.json +1 -0
- package/test/contracts/out/StdAssertions.t.sol/TestTest.json +1 -0
- package/test/contracts/out/StdChains.sol/StdChains.json +1 -0
- package/test/contracts/out/StdChains.t.sol/StdChainsTest.json +1 -0
- package/test/contracts/out/StdCheats.sol/StdCheats.json +1 -0
- package/test/contracts/out/StdCheats.sol/StdCheatsSafe.json +1 -0
- package/test/contracts/out/StdCheats.t.sol/Bar.json +1 -0
- package/test/contracts/out/StdCheats.t.sol/BarERC1155.json +1 -0
- package/test/contracts/out/StdCheats.t.sol/BarERC721.json +1 -0
- package/test/contracts/out/StdCheats.t.sol/RevertingContract.json +1 -0
- package/test/contracts/out/StdCheats.t.sol/StdCheatsTest.json +1 -0
- package/test/contracts/out/StdError.sol/stdError.json +1 -0
- package/test/contracts/out/StdError.t.sol/ErrorsTest.json +1 -0
- package/test/contracts/out/StdError.t.sol/StdErrorsTest.json +1 -0
- package/test/contracts/out/StdInvariant.sol/StdInvariant.json +1 -0
- package/test/contracts/out/StdJson.sol/stdJson.json +1 -0
- package/test/contracts/out/StdMath.sol/stdMath.json +1 -0
- package/test/contracts/out/StdMath.t.sol/StdMathTest.json +1 -0
- package/test/contracts/out/StdStorage.sol/stdStorage.json +1 -0
- package/test/contracts/out/StdStorage.sol/stdStorageSafe.json +1 -0
- package/test/contracts/out/StdStorage.t.sol/StdStorageTest.json +1 -0
- package/test/contracts/out/StdStorage.t.sol/StorageTest.json +1 -0
- package/test/contracts/out/StdStyle.sol/StdStyle.json +1 -0
- package/test/contracts/out/StdStyle.t.sol/StdStyleTest.json +1 -0
- package/test/contracts/out/StdUtils.sol/StdUtils.json +1 -0
- package/test/contracts/out/StdUtils.t.sol/StdUtilsForkTest.json +1 -0
- package/test/contracts/out/StdUtils.t.sol/StdUtilsMock.json +1 -0
- package/test/contracts/out/StdUtils.t.sol/StdUtilsTest.json +1 -0
- package/test/contracts/out/StorageSlot.sol/StorageSlot.json +1 -0
- package/test/contracts/out/StorageSlotMock.sol/StorageSlotMock.json +1 -0
- package/test/contracts/out/Strings.sol/Strings.json +1 -0
- package/test/contracts/out/TimelockController.sol/TimelockController.json +1 -0
- package/test/contracts/out/TimelockReentrant.sol/TimelockReentrant.json +1 -0
- package/test/contracts/out/Timers.sol/Timers.json +1 -0
- package/test/contracts/out/TimersBlockNumberImpl.sol/TimersBlockNumberImpl.json +1 -0
- package/test/contracts/out/TimersTimestampImpl.sol/TimersTimestampImpl.json +1 -0
- package/test/contracts/out/TokenTimelock.sol/TokenTimelock.json +1 -0
- package/test/contracts/out/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.json +1 -0
- package/test/contracts/out/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +1 -0
- package/test/contracts/out/UUPSLegacy.sol/UUPSUpgradeableLegacyMock.json +1 -0
- package/test/contracts/out/UUPSUpgradeable.sol/UUPSUpgradeable.json +1 -0
- package/test/contracts/out/UUPSUpgradeableMock.sol/NonUpgradeableMock.json +1 -0
- package/test/contracts/out/UUPSUpgradeableMock.sol/UUPSUpgradeableMock.json +1 -0
- package/test/contracts/out/UUPSUpgradeableMock.sol/UUPSUpgradeableUnsafeMock.json +1 -0
- package/test/contracts/out/UpgradeableBeacon.sol/UpgradeableBeacon.json +1 -0
- package/test/contracts/out/VestingWallet.sol/VestingWallet.json +1 -0
- package/test/contracts/out/Vm.sol/Vm.json +1 -0
- package/test/contracts/out/Vm.sol/VmSafe.json +1 -0
- package/test/contracts/out/Votes.sol/Votes.json +1 -0
- package/test/contracts/out/VotesMock.sol/VotesMock.json +1 -0
- package/test/contracts/out/VotesMock.sol/VotesTimestampMock.json +1 -0
- package/test/contracts/out/VotesTimestamp.sol/ERC20VotesCompTimestampMock.json +1 -0
- package/test/contracts/out/VotesTimestamp.sol/ERC20VotesTimestampMock.json +1 -0
- package/test/contracts/out/VotesTimestamp.sol/ERC721VotesTimestampMock.json +1 -0
- package/test/contracts/out/bridges.sol/BaseRelayMock.json +1 -0
- package/test/contracts/out/bridges.sol/BridgeAMBMock.json +1 -0
- package/test/contracts/out/bridges.sol/BridgeArbitrumL1Inbox.json +1 -0
- package/test/contracts/out/bridges.sol/BridgeArbitrumL1Mock.json +1 -0
- package/test/contracts/out/bridges.sol/BridgeArbitrumL1Outbox.json +1 -0
- package/test/contracts/out/bridges.sol/BridgeArbitrumL2Mock.json +1 -0
- package/test/contracts/out/bridges.sol/BridgeOptimismMock.json +1 -0
- package/test/contracts/out/bridges.sol/BridgePolygonChildMock.json +1 -0
- package/test/contracts/out/build-info/2be03bb8eb1ccda1.json +1 -0
- package/test/contracts/out/console.sol/console.json +1 -0
- package/test/contracts/out/console2.sol/console2.json +1 -0
- package/test/contracts/out/demo.sol/DemoTest.json +1 -0
- package/test/contracts/out/demo.sol/DemoTestWithSetUp.json +1 -0
- package/test/contracts/out/draft-IERC1822.sol/IERC1822Proxiable.json +1 -0
- package/test/contracts/out/interfaces/IERC1155.sol/IERC1155.json +1 -0
- package/test/contracts/out/interfaces/IERC165.sol/IERC165.json +1 -0
- package/test/contracts/out/interfaces/IERC20.sol/IERC20.json +1 -0
- package/test/contracts/out/interfaces/IERC4626.sol/IERC4626.json +1 -0
- package/test/contracts/out/interfaces/IERC721.sol/IERC721.json +1 -0
- package/test/contracts/out/receivers.sol/CrossChainEnabledAMBMock.json +1 -0
- package/test/contracts/out/receivers.sol/CrossChainEnabledArbitrumL1Mock.json +1 -0
- package/test/contracts/out/receivers.sol/CrossChainEnabledArbitrumL2Mock.json +1 -0
- package/test/contracts/out/receivers.sol/CrossChainEnabledOptimismMock.json +1 -0
- package/test/contracts/out/receivers.sol/CrossChainEnabledPolygonChildMock.json +1 -0
- package/test/contracts/out/receivers.sol/Receiver.json +1 -0
- package/test/contracts/out/test.sol/DSTest.json +1 -0
- package/test/contracts/out/test.sol/Test.json +1 -0
- package/test/contracts/out/test.t.sol/DemoTest.json +1 -0
- package/test/database-api.e2e.test.ts +666 -0
- package/test/debug-anvil.ts +44 -0
- package/test/deferred-restart.e2e.test.ts +368 -0
- package/test/discord-connector.e2e.test.ts +463 -0
- package/test/e2e-global-setup.ts +29 -0
- package/test/e2e-validation.e2e.test.ts +1588 -0
- package/test/health-endpoint.e2e.test.ts +95 -0
- package/test/knowledge-e2e-flow.e2e.test.ts +134 -0
- package/test/knowledge-live.e2e.test.ts +405 -0
- package/test/mcp-config.e2e.test.ts +630 -0
- package/test/native-modules.e2e.test.ts +470 -0
- package/test/permissions-api.e2e.test.ts +637 -0
- package/test/plugin-install.e2e.test.ts +645 -0
- package/test/plugin-lifecycle.e2e.test.ts +617 -0
- package/test/plugin-management.e2e.test.ts +308 -0
- package/test/provider-switch.e2e.test.ts +322 -0
- package/test/scripts/test-force.ts +139 -0
- package/test/scripts/test-parallel.mjs +192 -0
- package/test/scripts/validate-all-features.sh +557 -0
- package/test/setup.ts +122 -0
- package/test/signal-connector.e2e.test.ts +229 -0
- package/test/skills-marketplace-api.e2e.test.ts +585 -0
- package/test/skills-marketplace-services.e2e.test.ts +518 -0
- package/test/skills-marketplace.e2e.test.ts +268 -0
- package/test/stubs/coding-agent-module.ts +18 -0
- package/test/stubs/electron-module.ts +17 -0
- package/test/stubs/empty-module.mjs +4 -0
- package/test/stubs/pi-ai-module.ts +12 -0
- package/test/subscription-auth.e2e.test.ts +747 -0
- package/test/terminal-execution.e2e.test.ts +134 -0
- package/test/terminal-run-limits.e2e.test.ts +132 -0
- package/test/test-env.ts +156 -0
- package/test/trajectory-collection.e2e.test.ts +800 -0
- package/test/trajectory-database.e2e.test.ts +209 -0
- package/test/trajectory-embedding-filter.e2e.test.ts +317 -0
- package/test/trajectory-restart-carryover.e2e.test.ts +306 -0
- package/test/trigger-execution-flow.e2e.test.ts +132 -0
- package/test/trigger-runtime.e2e.test.ts +247 -0
- package/test/wallet-api.e2e.test.ts +1295 -0
- package/test/wallet-live.e2e.test.ts +428 -0
- package/vitest.e2e.config.ts +71 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"test_balance","inputs":[{"name":"receiver","type":"address","internalType":"address"},{"name":"batches","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_burn","inputs":[{"name":"receiver","type":"address","internalType":"address"},{"name":"batches","type":"uint256[]","internalType":"uint256[]"},{"name":"unboundedTokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_ownership","inputs":[{"name":"receiver","type":"address","internalType":"address"},{"name":"batches","type":"uint256[]","internalType":"uint256[]"},{"name":"unboundedTokenId","type":"uint256[2]","internalType":"uint256[2]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_transfer","inputs":[{"name":"accounts","type":"address[2]","internalType":"address[2]"},{"name":"unboundedBatches","type":"uint256[2]","internalType":"uint256[2]"},{"name":"unboundedTokenId","type":"uint256[2]","internalType":"uint256[2]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x60806040525f8054600160ff19918216811790925560048054909116909117905534801561002b575f80fd5b50614bb1806100395f395ff3fe608060405234801562000010575f80fd5b5060043610620000f8575f3560e01c806385226c811162000093578063ba414fa6116200006b578063ba414fa614620001bf578063d4b38efc14620001da578063e20c9f7114620001f1578063fa7626d414620001fb575f80fd5b806385226c811462000192578063916a17c614620001ab578063b5508aa914620001b5575f80fd5b80633f7286f411620000d35780633f7286f4146200014157806366d9a9a0146200014b57806370ba76e314620001645780637632cc59146200017b575f80fd5b80631ed7831c14620000fc578063267d01ba146200011e5780633e5e3c231462000137575b5f80fd5b6200010662000208565b60405162000115919062002196565b60405180910390f35b620001356200012f3660046200220d565b6200026a565b005b62000106620005b8565b6200010662000618565b6200015562000678565b6040516200011591906200226b565b620001356200017536600462002320565b62000766565b620001356200018c3660046200238e565b620008ec565b6200019c62000c5b565b6040516200011591906200244b565b6200015562000d30565b6200019c62000e15565b620001c962000eea565b604051901515815260200162000115565b62000135620001eb366004620024af565b6200100b565b6200010662001aba565b5f54620001c99060ff1681565b6060600d8054806020026020016040519081016040528092919081815260200182805480156200026057602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000241575b5050505050905090565b604051632631f2b160e11b81526001600160a01b038516151560048201525f8051602062004b5c83398151915290634c63e562906024015f6040518083038186803b158015620002b8575f80fd5b505afa158015620002cb573d5f803e3d5ffd5b505050505f620002db8562001b1a565b8484604051620002eb9062002144565b620002f993929190620024f9565b604051809103905ff08015801562000313573d5f803e3d5ffd5b5090505f816001600160a01b031663a2309ff86040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000354573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200037a919062002544565b604051632631f2b160e11b815281151560048201529091505f8051602062004b5c83398151915290634c63e562906024015f6040518083038186803b158015620003c2575f80fd5b505afa158015620003d5573d5f803e3d5ffd5b505050505f620003f5845f600185620003ef919062002570565b62001b73565b604051630852cd8d60e31b8152600481018290529091506001600160a01b038416906342966c68906024015f604051808303815f87803b15801562000438575f80fd5b505af11580156200044b573d5f803e3d5ffd5b50506040516370a0823160e01b81526001600160a01b038a81166004830152620004d29350861691506370a0823190602401602060405180830381865afa15801562000499573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004bf919062002544565b620004cc60018562002570565b62001bba565b7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663f48448146040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200052d575f80fd5b505af115801562000540573d5f803e3d5ffd5b50506040516331a9108f60e11b8152600481018490526001600160a01b0386169250636352211e9150602401602060405180830381865afa15801562000588573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620005ae919062002586565b5050505050505050565b6060600f8054806020026020016040519081016040528092919081815260200182805480156200026057602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000241575050505050905090565b6060600e8054806020026020016040519081016040528092919081815260200182805480156200026057602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000241575050505050905090565b60606012805480602002602001604051908101604052809291908181526020015f905b828210156200075d575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200074457602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b03191681526020019060040190602082600301049283019260010382029150808411620007055790505b505050505081525050815260200190600101906200069b565b50505050905090565b604051632631f2b160e11b81526001600160a01b038416151560048201525f8051602062004b5c83398151915290634c63e562906024015f6040518083038186803b158015620007b4575f80fd5b505afa158015620007c7573d5f803e3d5ffd5b505050505f620007d78462001b1a565b8383604051620007e79062002144565b620007f593929190620024f9565b604051809103905ff0801580156200080f573d5f803e3d5ffd5b506040516370a0823160e01b81526001600160a01b038681166004830152919250620008e6918316906370a0823190602401602060405180830381865afa1580156200085d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000883919062002544565b826001600160a01b031663a2309ff86040518163ffffffff1660e01b8152600401602060405180830381865afa158015620008c0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004cc919062002544565b50505050565b604051632631f2b160e11b81526001600160a01b038516151560048201525f8051602062004b5c83398151915290634c63e562906024015f6040518083038186803b1580156200093a575f80fd5b505afa1580156200094d573d5f803e3d5ffd5b505050505f6200095d8562001b1a565b84846040516200096d9062002144565b6200097b93929190620024f9565b604051809103905ff08015801562000995573d5f803e3d5ffd5b5090505f816001600160a01b031663a2309ff86040518163ffffffff1660e01b8152600401602060405180830381865afa158015620009d6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620009fc919062002544565b111562000afc575f62000a81838260200201355f6001856001600160a01b031663a2309ff86040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000a4f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000a75919062002544565b620003ef919062002570565b6040516331a9108f60e11b81526004810182905290915062000afa906001600160a01b03841690636352211e90602401602060405180830381865afa15801562000acd573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000af3919062002586565b8762001cb5565b505b5f62000b748360016020020135836001600160a01b031663a2309ff86040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000b46573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000b6c919062002544565b5f1962001b73565b90507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663f48448146040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562000bd1575f80fd5b505af115801562000be4573d5f803e3d5ffd5b50506040516331a9108f60e11b8152600481018490526001600160a01b0385169250636352211e9150602401602060405180830381865afa15801562000c2c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000c52919062002586565b50505050505050565b60606011805480602002602001604051908101604052809291908181526020015f905b828210156200075d578382905f5260205f2001805462000c9e90620025b8565b80601f016020809104026020016040519081016040528092919081815260200182805462000ccc90620025b8565b801562000d1b5780601f1062000cf15761010080835404028352916020019162000d1b565b820191905f5260205f20905b81548152906001019060200180831162000cfd57829003601f168201915b50505050508152602001906001019062000c7e565b60606013805480602002602001604051908101604052809291908181526020015f905b828210156200075d575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000dfc57602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b0319168152602001906004019060208260030104928301926001038202915080841162000dbd5790505b5050505050815250508152602001906001019062000d53565b60606010805480602002602001604051908101604052809291908181526020015f905b828210156200075d578382905f5260205f2001805462000e5890620025b8565b80601f016020809104026020016040519081016040528092919081815260200182805462000e8690620025b8565b801562000ed55780601f1062000eab5761010080835404028352916020019162000ed5565b820191905f5260205f20905b81548152906001019060200180831162000eb757829003601f168201915b50505050508152602001906001019062000e38565b5f8054610100900460ff161562000f0957505f54610100900460ff1690565b5f5f8051602062004b5c8339815191523b156200100657604080515f8051602062004b5c833981519152602082018190526519985a5b195960d21b82840152825180830384018152606083019093525f92909162000f8c917f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc491608001620025f2565b60408051601f198184030181529082905262000fa89162002624565b5f604051808303815f865af19150503d805f811462000fe3576040519150601f19603f3d011682016040523d82523d5f602084013e62000fe8565b606091505b509150508080602001905181019062001002919062002641565b9150505b919050565b5f8051602062004b5c833981519152634c63e5625f6200102f602087018762002662565b6001600160a01b031614156040518263ffffffff1660e01b81526004016200105b911515815260200190565b5f6040518083038186803b15801562001072575f80fd5b505afa15801562001085573d5f803e3d5ffd5b505f8051602062004b5c8339815191529250634c63e56291505f9050620010b3604087016020880162002662565b6001600160a01b031614156040518263ffffffff1660e01b8152600401620010df911515815260200190565b5f6040518083038186803b158015620010f6575f80fd5b505afa15801562001109573d5f803e3d5ffd5b505f8051602062004b5c8339815191529250634c63e5629150620011369050604086016020870162002662565b6001600160a01b03166200114e602087018762002662565b6001600160a01b031614156040518263ffffffff1660e01b81526004016200117a911515815260200190565b5f6040518083038186803b15801562001191575f80fd5b505afa158015620011a4573d5f803e3d5ffd5b505f925060029150620011b49050565b604051908082528060200260200182016040528015620011de578160200160208202803683370190505b509050620011f0602085018562002662565b815f81518110620012055762001205620025a4565b6001600160a01b03929092166020928302919091018201526200122f906040860190860162002662565b81600181518110620012455762001245620025a4565b6001600160a01b03929092166020928302919091018201526040805160028082526060820183525f93919290918301908036833701905050905062001296845f5b6020020135600161138862001b73565b815f81518110620012ab57620012ab620025a4565b6020908102919091010152620012c384600162001286565b81600181518110620012d957620012d9620025a4565b6020026020010181815250505f8282604051620012f69062002144565b6200130392919062002680565b604051809103905ff0801580156200131d573d5f803e3d5ffd5b5090505f62001358858260200201355f6001865f81518110620013445762001344620025a4565b6020026020010151620003ef919062002570565b90505f835f81518110620013705762001370620025a4565b6020026020010151620013b087600160028110620013925762001392620025a4565b60200201355f600188600181518110620013445762001344620025a4565b620013bc9190620026d9565b6040516331a9108f60e11b8152600481018490529091506200144d906001600160a01b03851690636352211e906024015b602060405180830381865afa15801562001409573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200142f919062002586565b895f5b60200201602081019062001447919062002662565b62001cb5565b6040516331a9108f60e11b815260048101829052620014c6906001600160a01b03851690636352211e906024015b602060405180830381865afa15801562001497573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620014bd919062002586565b89600162001432565b6200157d6001600160a01b0384166370a082318a5f5b602002016020810190620014f1919062002662565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa15801562001534573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200155a919062002544565b855f815181106200156f576200156f620025a4565b602002602001015162001bba565b620016286001600160a01b0384166370a082318a60015b602002016020810190620015a9919062002662565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015620015ec573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001612919062002544565b856001815181106200156f576200156f620025a4565b5f8051602062004b5c83398151915263ca669fa76200164b60208b018b62002662565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201526024015f604051808303815f87803b1580156200168a575f80fd5b505af11580156200169d573d5f803e3d5ffd5b5050506001600160a01b03841690506323b872dd620016c060208b018b62002662565b620016d260408c0160208d0162002662565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604481018590526064015f604051808303815f87803b1580156200171f575f80fd5b505af115801562001732573d5f803e3d5ffd5b50506040516331a9108f60e11b8152600481018590526200176992506001600160a01b0386169150636352211e906024016200147b565b6040516331a9108f60e11b8152600481018290526200179c906001600160a01b03851690636352211e906024016200147b565b620018526001600160a01b0384166370a08231620017be60208c018c62002662565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa15801562001801573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001827919062002544565b6001865f815181106200183e576200183e620025a4565b6020026020010151620004cc919062002570565b6200190c6001600160a01b0384166370a082316200187760408c0160208d0162002662565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015620018ba573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620018e0919062002544565b85600181518110620018f657620018f6620025a4565b60200260200101516001620004cc9190620026d9565b5f8051602062004b5c83398151915263ca669fa76200193260408b0160208c0162002662565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201526024015f604051808303815f87803b15801562001971575f80fd5b505af115801562001984573d5f803e3d5ffd5b5050506001600160a01b03841690506323b872dd620019aa60408b0160208c0162002662565b620019b960208c018c62002662565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604481018490526064015f604051808303815f87803b15801562001a06575f80fd5b505af115801562001a19573d5f803e3d5ffd5b50506040516331a9108f60e11b81526004810185905262001a5092506001600160a01b0386169150636352211e906024016200147b565b6040516331a9108f60e11b81526004810182905262001a83906001600160a01b03851690636352211e90602401620013ed565b62001a9e6001600160a01b0384166370a082318a5f620014dc565b620005ae6001600160a01b0384166370a082318a600162001594565b6060600c8054806020026020016040519081016040528092919081815260200182805480156200026057602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000241575050505050905090565b6040805160018082528183019092526060915f91906020808301908036833701905050905082815f8151811062001b555762001b55620025a4565b6001600160a01b039092166020928302919091019091015292915050565b5f62001b8184848462001daf565b905062001bb36040518060400160405280600c81526020016b109bdd5b990814995cdd5b1d60a21b8152508262001f9a565b9392505050565b80821462001cb1577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f5060405162001c2d9060208082526022908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e604082015261745d60f01b606082015260800190565b60405180910390a17fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a88260405162001c669190620026ef565b60405180910390a17fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a88160405162001c9f919062002727565b60405180910390a162001cb162002043565b5050565b806001600160a01b0316826001600160a01b03161462001cb1577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f5060405162001d3d9060208082526025908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b616464604082015264726573735d60d81b606082015260800190565b60405180910390a17f9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f8260405162001d76919062002751565b60405180910390a17f9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f8160405162001c9f919062002795565b5f8183111562001e2b5760405162461bcd60e51b815260206004820152603e60248201527f5374645574696c7320626f756e642875696e743235362c75696e743235362c7560448201527f696e74323536293a204d6178206973206c657373207468616e206d696e2e0000606482015260840160405180910390fd5b82841015801562001e3c5750818411155b1562001e4a57508262001bb3565b5f62001e57848462002570565b62001e64906001620026d9565b90506003851115801562001e7757508481115b1562001e925762001e898585620026d9565b91505062001bb3565b62001ea060035f1962002570565b851015801562001ebb575062001eb8855f1962002570565b81115b1562001eda5762001ece855f1962002570565b62001e89908462002570565b8285111562001f39575f62001ef0848762002570565b90505f62001eff8383620027bf565b9050805f0362001f155784935050505062001bb3565b600162001f238288620026d9565b62001f2f919062002570565b9350505062001f92565b8385101562001f92575f62001f4f868662002570565b90505f62001f5e8383620027bf565b9050805f0362001f745785935050505062001bb3565b62001f80818662002570565b62001f8d906001620026d9565b935050505b509392505050565b5f6a636f6e736f6c652e6c6f676001600160a01b0316838360405160240162001fc5929190620027df565b60408051601f198184030181529181526020820180516001600160e01b0316632d839cb360e21b1790525162001ffc919062002624565b5f60405180830381855afa9150503d805f811462002036576040519150601f19603f3d011682016040523d82523d5f602084013e6200203b565b606091505b505050505050565b5f8051602062004b5c8339815191523b156200213457604080515f8051602062004b5c833981519152602082018190526519985a5b195960d21b92820192909252600160608201525f91907f70ca10bbd0dbfd9020a9f4b13402c16cb120705e0d1c0aeab10fa353ae586fc49060800160408051601f1981840301815290829052620020d39291602001620025f2565b60408051601f1981840301815290829052620020ef9162002624565b5f604051808303815f865af19150503d805f81146200212a576040519150601f19603f3d011682016040523d82523d5f602084013e6200212f565b606091505b505050505b5f805461ff001916610100179055565b612359806200280383390190565b5f8151808452602080850194508084015f5b838110156200218b5781516001600160a01b03168752958201959082019060010162002164565b509495945050505050565b602081525f62001bb3602083018462002152565b6001600160a01b0381168114620021bf575f80fd5b50565b5f8083601f840112620021d3575f80fd5b50813567ffffffffffffffff811115620021eb575f80fd5b6020830191508360208260051b850101111562002206575f80fd5b9250929050565b5f805f806060858703121562002221575f80fd5b84356200222e81620021aa565b9350602085013567ffffffffffffffff8111156200224a575f80fd5b6200225887828801620021c2565b9598909750949560400135949350505050565b5f6020808301818452808551808352604092508286019150828160051b8701018488015f805b848110156200231157898403603f19018652825180516001600160a01b03168552880151888501889052805188860181905290890190839060608701905b80831015620022fb5783516001600160e01b0319168252928b019260019290920191908b0190620022cf565b50978a0197955050509187019160010162002291565b50919998505050505050505050565b5f805f6040848603121562002333575f80fd5b83356200234081620021aa565b9250602084013567ffffffffffffffff8111156200235c575f80fd5b6200236a86828701620021c2565b9497909650939450505050565b806040810183101562002388575f80fd5b92915050565b5f805f8060808587031215620023a2575f80fd5b8435620023af81620021aa565b9350602085013567ffffffffffffffff811115620023cb575f80fd5b620023d987828801620021c2565b9094509250620023ef9050866040870162002377565b905092959194509250565b5f5b8381101562002416578181015183820152602001620023fc565b50505f910152565b5f815180845262002437816020860160208601620023fa565b601f01601f19169290920160200192915050565b5f602080830181845280855180835260408601915060408160051b87010192508387015f5b82811015620024a257603f198886030184526200248f8583516200241e565b9450928501929085019060010162002470565b5092979650505050505050565b5f805f60c08486031215620024c2575f80fd5b620024ce858562002377565b9250620024df856040860162002377565b9150620024f0856080860162002377565b90509250925092565b604081525f6200250d604083018662002152565b82810360208401528381526001600160fb1b038411156200252c575f80fd5b8360051b808660208401370160200195945050505050565b5f6020828403121562002555575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156200238857620023886200255c565b5f6020828403121562002597575f80fd5b815162001bb381620021aa565b634e487b7160e01b5f52603260045260245ffd5b600181811c90821680620025cd57607f821691505b602082108103620025ec57634e487b7160e01b5f52602260045260245ffd5b50919050565b6001600160e01b03198316815281515f9062002616816004850160208701620023fa565b919091016004019392505050565b5f825162002637818460208701620023fa565b9190910192915050565b5f6020828403121562002652575f80fd5b8151801515811462001bb3575f80fd5b5f6020828403121562002673575f80fd5b813562001bb381620021aa565b604081525f62002694604083018562002152565b8281036020848101919091528451808352858201928201905f5b81811015620026cc57845183529383019391830191600101620026ae565b5090979650505050505050565b808201808211156200238857620023886200255c565b604081525f6200271960408301600a8152690808080808081319599d60b21b602082015260400190565b905082602083015292915050565b604081525f6200271960408301600a8152690808080808149a59da1d60b21b602082015260400190565b604081525f6200277b60408301600a8152690808080808081319599d60b21b602082015260400190565b6001600160a01b0393909316602092909201919091525090565b604081525f6200277b60408301600a8152690808080808149a59da1d60b21b602082015260400190565b5f82620027da57634e487b7160e01b5f52601260045260245ffd5b500690565b604081525f620027f360408301856200241e565b9050826020830152939250505056fe60806040525f60085534801562000014575f80fd5b506040516200235938038062002359833981016040819052620000379162000b06565b60408051602080820183525f808352835191820190935282815290916200005f838262000c65565b5060016200006e828262000c65565b5050505f5b815181101562000137575f838451836200008e919062000d2d565b81518110620000a157620000a162000d4d565b602002602001015190505f620000ed848481518110620000c557620000c562000d4d565b60200260200101515f620000de6200014060201b60201c565b6001600160601b031662000146565b9050620000fb828262000193565b50806001600160601b031660085f82825462000118919062000d75565b92505081905550505080806200012e9062000d8b565b91505062000073565b50505062000e86565b61138890565b5f62000154848484620003b5565b90506200018c6040518060400160405280600c81526020016b109bdd5b990814995cdd5b1d60a21b815250826200059d60201b60201c565b9392505050565b5f806200019f62000646565b90506001600160601b03831615620003ac57303b156200022c5760405162461bcd60e51b815260206004820152603a60248201527f455243373231436f6e73656375746976653a206261746368206d696e74696e6760448201527f207265737472696374656420746f20636f6e7374727563746f7200000000000060648201526084015b60405180910390fd5b6001600160a01b038416620002985760405162461bcd60e51b815260206004820152602b60248201527f455243373231436f6e73656375746976653a206d696e7420746f20746865207a60448201526a65726f206164647265737360a81b606482015260840162000223565b6113886001600160601b0384161115620003005760405162461bcd60e51b815260206004820152602260248201527f455243373231436f6e73656375746976653a20626174636820746f6f206c6172604482015261676560f01b606482015260840162000223565b5f60016200030f858462000da6565b6200031b919062000dd0565b90506200032b6006828762000681565b50620003439050856001600160601b0386166200069d565b6040516001600160601b0382811682526001600160a01b038716915f918516907fdeaa91b6123d068f5821d0fb0678463d1a8a6079fe8af5de3ce5e896dcf9133d9060200160405180910390a4620003aa5f866001600160601b03808616908816620006cf565b505b90505b92915050565b5f818311156200042e5760405162461bcd60e51b815260206004820152603e60248201527f5374645574696c7320626f756e642875696e743235362c75696e743235362c7560448201527f696e74323536293a204d6178206973206c657373207468616e206d696e2e0000606482015260840162000223565b8284101580156200043f5750818411155b156200044d5750826200018c565b5f6200045a848462000df3565b6200046790600162000d75565b9050600385111580156200047a57508481115b1562000495576200048c858562000d75565b9150506200018c565b620004a360035f1962000df3565b8510158015620004be5750620004bb855f1962000df3565b81115b15620004dd57620004d1855f1962000df3565b6200048c908462000df3565b828511156200053c575f620004f3848762000df3565b90505f62000502838362000d2d565b9050805f0362000518578493505050506200018c565b600162000526828862000d75565b62000532919062000df3565b9350505062000595565b8385101562000595575f62000552868662000df3565b90505f62000561838362000d2d565b9050805f0362000577578593505050506200018c565b62000583818662000df3565b6200059090600162000d75565b935050505b509392505050565b5f6a636f6e736f6c652e6c6f676001600160a01b03168383604051602401620005c892919062000e2d565b60408051601f198184030181529181526020820180516001600160e01b0316632d839cb360e21b17905251620005ff919062000e69565b5f60405180830381855afa9150503d805f811462000639576040519150601f19603f3d011682016040523d82523d5f602084013e6200063e565b606091505b505050505050565b5f8080620006556006620007bc565b50915091508162000667575f62000674565b6200067481600162000da6565b9250505090565b50505050565b5f80620006908585856200084f565b915091505b935093915050565b6001600160a01b0382165f9081526003602052604081208054839290620006c690849062000d75565b90915550505050565b6001600160a01b038316158015620006f85750620006ec62000646565b6001600160601b031682105b80156200071d5750600882901c5f90815260076020526040902054600160ff84161b16155b15620007a85780600114620007895760405162461bcd60e51b815260206004820152602b60248201527f455243373231436f6e73656375746976653a206261746368206275726e206e6f60448201526a1d081cdd5c1c1bdc9d195960aa1b606482015260840162000223565b600882901c5f9081526007602052604090208054600160ff85161b1790555b6200067b848484846001600160e01b038516565b80545f9081908190808203620007dc575f805f9350935093505062000848565b5f620007fc86620007ef60018562000df3565b5f91825260209091200190565b6040805180820190915290546001600160601b0381168083526c010000000000000000000000009091046001600160a01b03166020909201829052600196509450925062000848915050565b9193909250565b82545f9081908015620009c5575f6200086f87620007ef60018562000df3565b6040805180820190915290546001600160601b038082168084526c010000000000000000000000009092046001600160a01b031660208401529192509087161015620008fe5760405162461bcd60e51b815260206004820152601b60248201527f436865636b706f696e743a2064656372656173696e67206b6579730000000000604482015260640162000223565b80516001600160601b038088169116036200095a57846200092688620007ef60018662000df3565b80546001600160a01b03929092166c01000000000000000000000000026001600160601b03909216919091179055620009b4565b604080518082019091526001600160601b0380881682526001600160a01b0380881660208085019182528b54600181018d555f8d815291909120945191519092166c01000000000000000000000000029216919091179101555b602001519250839150620006959050565b5050604080518082019091526001600160601b0380851682526001600160a01b0380851660208085019182528854600181018a555f8a8152918220955192519093166c0100000000000000000000000002919093161792019190915590508162000695565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b038111828210171562000a695762000a6962000a2a565b604052919050565b5f6001600160401b0382111562000a8c5762000a8c62000a2a565b5060051b60200190565b5f82601f83011262000aa6575f80fd5b8151602062000abf62000ab98362000a71565b62000a3e565b82815260059290921b8401810191818101908684111562000ade575f80fd5b8286015b8481101562000afb578051835291830191830162000ae2565b509695505050505050565b5f806040838503121562000b18575f80fd5b82516001600160401b038082111562000b2f575f80fd5b818501915085601f83011262000b43575f80fd5b8151602062000b5662000ab98362000a71565b82815260059290921b8401810191818101908984111562000b75575f80fd5b948201945b8386101562000bab5785516001600160a01b038116811462000b9b575f8081fd5b8252948201949082019062000b7a565b9188015191965090935050508082111562000bc4575f80fd5b5062000bd38582860162000a96565b9150509250929050565b600181811c9082168062000bf257607f821691505b60208210810362000c1157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000c60575f81815260208120601f850160051c8101602086101562000c3f5750805b601f850160051c820191505b818110156200063e5782815560010162000c4b565b505050565b81516001600160401b0381111562000c815762000c8162000a2a565b62000c998162000c92845462000bdd565b8462000c17565b602080601f83116001811462000ccf575f841562000cb75750858301515b5f19600386901b1c1916600185901b1785556200063e565b5f85815260208120601f198616915b8281101562000cff5788860151825594840194600190910190840162000cde565b508582101562000d1d57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f8262000d4857634e487b7160e01b5f52601260045260245ffd5b500690565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b80820180821115620003af57620003af62000d61565b5f6001820162000d9f5762000d9f62000d61565b5060010190565b6001600160601b0381811683821601908082111562000dc95762000dc962000d61565b5092915050565b6001600160601b0382811682821603908082111562000dc95762000dc962000d61565b81810381811115620003af57620003af62000d61565b5f5b8381101562000e2557818101518382015260200162000e0b565b50505f910152565b604081525f835180604084015262000e4d81606085016020880162000e09565b602083019390935250601f91909101601f191601606001919050565b5f825162000e7c81846020870162000e09565b9190910192915050565b6114c58062000e945f395ff3fe608060405234801561000f575f80fd5b50600436106100f0575f3560e01c80636352211e11610093578063a2309ff811610063578063a2309ff8146101f9578063b88d4fde14610202578063c87b56dd14610215578063e985e9c514610228575f80fd5b80636352211e146101aa57806370a08231146101bd57806395d89b41146101de578063a22cb465146101e6575f80fd5b8063095ea7b3116100ce578063095ea7b31461015c57806323b872dd1461017157806342842e0e1461018457806342966c6814610197575f80fd5b806301ffc9a7146100f457806306fdde031461011c578063081812fc14610131575b5f80fd5b610107610102366004610ff5565b61023b565b60405190151581526020015b60405180910390f35b61012461028c565b604051610113919061105d565b61014461013f36600461106f565b61031b565b6040516001600160a01b039091168152602001610113565b61016f61016a3660046110a1565b610340565b005b61016f61017f3660046110c9565b610459565b61016f6101923660046110c9565b61048a565b61016f6101a536600461106f565b6104a4565b6101446101b836600461106f565b6104b0565b6101d06101cb366004611102565b61050e565b604051908152602001610113565b610124610592565b61016f6101f436600461111b565b6105a1565b6101d060085481565b61016f610210366004611168565b6105b0565b61012461022336600461106f565b6105e8565b61010761023636600461123d565b610658565b5f6001600160e01b031982166380ac58cd60e01b148061026b57506001600160e01b03198216635b5e139f60e01b145b8061028657506301ffc9a760e01b6001600160e01b03198316145b92915050565b60605f805461029a9061126e565b80601f01602080910402602001604051908101604052809291908181526020018280546102c69061126e565b80156103115780601f106102e857610100808354040283529160200191610311565b820191905f5260205f20905b8154815290600101906020018083116102f457829003601f168201915b5050505050905090565b5f61032582610685565b505f908152600460205260409020546001600160a01b031690565b5f61034a826104b0565b9050806001600160a01b0316836001600160a01b0316036103bc5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806103d857506103d88133610658565b61044a5760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c00000060648201526084016103b3565b61045483836106d5565b505050565b6104633382610742565b61047f5760405162461bcd60e51b81526004016103b3906112a6565b6104548383836107a0565b61045483838360405180602001604052805f8152506105b0565b6104ad8161090a565b50565b5f806104bb836109a5565b90506001600160a01b0381166102865760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016103b3565b5f6001600160a01b0382166105775760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016103b3565b506001600160a01b03165f9081526003602052604090205490565b60606001805461029a9061126e565b6105ac338383610a12565b5050565b6105ba3383610742565b6105d65760405162461bcd60e51b81526004016103b3906112a6565b6105e284848484610adf565b50505050565b60606105f382610685565b5f61060860408051602081019091525f815290565b90505f8151116106265760405180602001604052805f815250610651565b8061063084610b12565b6040516020016106419291906112f3565b6040516020818303038152906040525b9392505050565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205460ff1690565b61068e81610ba2565b6104ad5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016103b3565b5f81815260046020526040902080546001600160a01b0319166001600160a01b0384169081179091558190610709826104b0565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b5f8061074d836104b0565b9050806001600160a01b0316846001600160a01b0316148061077457506107748185610658565b806107985750836001600160a01b031661078d8461031b565b6001600160a01b0316145b949350505050565b826001600160a01b03166107b3826104b0565b6001600160a01b0316146107d95760405162461bcd60e51b81526004016103b390611321565b6001600160a01b03821661083b5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016103b3565b826001600160a01b031661084e826104b0565b6001600160a01b0316146108745760405162461bcd60e51b81526004016103b390611321565b5f81815260046020908152604080832080546001600160a01b03199081169091556001600160a01b038781168086526003855283862080545f1901905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a46104548383836001610bbe565b5f610914826104b0565b905061091f826104b0565b5f83815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0385168085526003845282852080545f190190558785526002909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a46105ac815f846001610bbe565b5f818152600260205260408120546001600160a01b0316801515806109d057506001600160601b0383115b156109db5792915050565b600883901c5f90815260076020526040902054600160ff85161b16610a0a57610a05600684610c99565b610651565b5f9392505050565b816001600160a01b0316836001600160a01b031603610a735760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016103b3565b6001600160a01b038381165f81815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b610aea8484846107a0565b610af684848484610cde565b6105e25760405162461bcd60e51b81526004016103b390611366565b60605f610b1e83610ddb565b60010190505f8167ffffffffffffffff811115610b3d57610b3d611154565b6040519080825280601f01601f191660200182016040528015610b67576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610b7157509392505050565b5f80610bad836109a5565b6001600160a01b0316141592915050565b6001600160a01b038316158015610be45750610bd8610eb2565b6001600160601b031682105b8015610c085750600882901c5f90815260076020526040902054600160ff84161b16155b15610c945780600114610c715760405162461bcd60e51b815260206004820152602b60248201527f455243373231436f6e73656375746976653a206261746368206275726e206e6f60448201526a1d081cdd5c1c1bdc9d195960aa1b60648201526084016103b3565b600882901c5f9081526007602052604090208054600160ff85161b1790556105e2565b6105e2565b81545f9081610caa85858385610ee1565b9050818114610cd3575f85815260209020810154600160601b90046001600160a01b0316610cd5565b5f5b95945050505050565b5f6001600160a01b0384163b15610dd057604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610d219033908990889088906004016113b8565b6020604051808303815f875af1925050508015610d5b575060408051601f3d908101601f19168201909252610d58918101906113f4565b60015b610db6573d808015610d88576040519150601f19603f3d011682016040523d82523d5f602084013e610d8d565b606091505b5080515f03610dae5760405162461bcd60e51b81526004016103b390611366565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610798565b506001949350505050565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610e195772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610e45576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610e6357662386f26fc10000830492506010015b6305f5e1008310610e7b576305f5e100830492506008015b6127108310610e8f57612710830492506004015b60648310610ea1576064830492506002015b600a83106102865760010192915050565b5f805f610ebf6006610f42565b509150915081610ecf575f610eda565b610eda816001611423565b9250505090565b5f5b81831015610f3a575f610ef68484610fc6565b5f878152602090209091506001600160601b038616908201546001600160601b03161015610f3057610f2981600161144a565b9350610f34565b8092505b50610ee3565b509392505050565b80545f9081908190808203610f60575f805f93509350935050610fbf565b5f610f7d86610f7060018561145d565b5f91825260209091200190565b6040805180820190915290546001600160601b038116808352600160601b9091046001600160a01b031660209092018290526001965094509250610fbf915050565b9193909250565b5f610fd46002848418611470565b6106519084841661144a565b6001600160e01b0319811681146104ad575f80fd5b5f60208284031215611005575f80fd5b813561065181610fe0565b5f5b8381101561102a578181015183820152602001611012565b50505f910152565b5f8151808452611049816020860160208601611010565b601f01601f19169290920160200192915050565b602081525f6106516020830184611032565b5f6020828403121561107f575f80fd5b5035919050565b80356001600160a01b038116811461109c575f80fd5b919050565b5f80604083850312156110b2575f80fd5b6110bb83611086565b946020939093013593505050565b5f805f606084860312156110db575f80fd5b6110e484611086565b92506110f260208501611086565b9150604084013590509250925092565b5f60208284031215611112575f80fd5b61065182611086565b5f806040838503121561112c575f80fd5b61113583611086565b915060208301358015158114611149575f80fd5b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b5f805f806080858703121561117b575f80fd5b61118485611086565b935061119260208601611086565b925060408501359150606085013567ffffffffffffffff808211156111b5575f80fd5b818701915087601f8301126111c8575f80fd5b8135818111156111da576111da611154565b604051601f8201601f19908116603f0116810190838211818310171561120257611202611154565b816040528281528a602084870101111561121a575f80fd5b826020860160208301375f60208483010152809550505050505092959194509250565b5f806040838503121561124e575f80fd5b61125783611086565b915061126560208401611086565b90509250929050565b600181811c9082168061128257607f821691505b6020821081036112a057634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b5f8351611304818460208801611010565b835190830190611318818360208801611010565b01949350505050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f906113ea90830184611032565b9695505050505050565b5f60208284031215611404575f80fd5b815161065181610fe0565b634e487b7160e01b5f52601160045260245ffd5b6001600160601b038181168382160190808211156114435761144361140f565b5092915050565b808201808211156102865761028661140f565b818103818111156102865761028661140f565b5f8261148a57634e487b7160e01b5f52601260045260245ffd5b50049056fea26469706673582212202bf18064affea2f9f40b2e614f117e894ca4efbde3c209eda4dd8111ad0ebb0864736f6c634300081400330000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12da2646970667358221220524054e1e7371760e88688e1ff8a16266c7dd8d2a4948340343f6adbbee2b35364736f6c63430008140033","sourceMap":"949:3555:306:-:0;;;1572:26:268;;;1594:4;-1:-1:-1;;1572:26:268;;;;;;;;3288:44:273;;;;;;;;;;;949:3555:306;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801562000010575f80fd5b5060043610620000f8575f3560e01c806385226c811162000093578063ba414fa6116200006b578063ba414fa614620001bf578063d4b38efc14620001da578063e20c9f7114620001f1578063fa7626d414620001fb575f80fd5b806385226c811462000192578063916a17c614620001ab578063b5508aa914620001b5575f80fd5b80633f7286f411620000d35780633f7286f4146200014157806366d9a9a0146200014b57806370ba76e314620001645780637632cc59146200017b575f80fd5b80631ed7831c14620000fc578063267d01ba146200011e5780633e5e3c231462000137575b5f80fd5b6200010662000208565b60405162000115919062002196565b60405180910390f35b620001356200012f3660046200220d565b6200026a565b005b62000106620005b8565b6200010662000618565b6200015562000678565b6040516200011591906200226b565b620001356200017536600462002320565b62000766565b620001356200018c3660046200238e565b620008ec565b6200019c62000c5b565b6040516200011591906200244b565b6200015562000d30565b6200019c62000e15565b620001c962000eea565b604051901515815260200162000115565b62000135620001eb366004620024af565b6200100b565b6200010662001aba565b5f54620001c99060ff1681565b6060600d8054806020026020016040519081016040528092919081815260200182805480156200026057602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000241575b5050505050905090565b604051632631f2b160e11b81526001600160a01b038516151560048201525f8051602062004b5c83398151915290634c63e562906024015f6040518083038186803b158015620002b8575f80fd5b505afa158015620002cb573d5f803e3d5ffd5b505050505f620002db8562001b1a565b8484604051620002eb9062002144565b620002f993929190620024f9565b604051809103905ff08015801562000313573d5f803e3d5ffd5b5090505f816001600160a01b031663a2309ff86040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000354573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200037a919062002544565b604051632631f2b160e11b815281151560048201529091505f8051602062004b5c83398151915290634c63e562906024015f6040518083038186803b158015620003c2575f80fd5b505afa158015620003d5573d5f803e3d5ffd5b505050505f620003f5845f600185620003ef919062002570565b62001b73565b604051630852cd8d60e31b8152600481018290529091506001600160a01b038416906342966c68906024015f604051808303815f87803b15801562000438575f80fd5b505af11580156200044b573d5f803e3d5ffd5b50506040516370a0823160e01b81526001600160a01b038a81166004830152620004d29350861691506370a0823190602401602060405180830381865afa15801562000499573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004bf919062002544565b620004cc60018562002570565b62001bba565b7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663f48448146040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200052d575f80fd5b505af115801562000540573d5f803e3d5ffd5b50506040516331a9108f60e11b8152600481018490526001600160a01b0386169250636352211e9150602401602060405180830381865afa15801562000588573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620005ae919062002586565b5050505050505050565b6060600f8054806020026020016040519081016040528092919081815260200182805480156200026057602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000241575050505050905090565b6060600e8054806020026020016040519081016040528092919081815260200182805480156200026057602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000241575050505050905090565b60606012805480602002602001604051908101604052809291908181526020015f905b828210156200075d575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200074457602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b03191681526020019060040190602082600301049283019260010382029150808411620007055790505b505050505081525050815260200190600101906200069b565b50505050905090565b604051632631f2b160e11b81526001600160a01b038416151560048201525f8051602062004b5c83398151915290634c63e562906024015f6040518083038186803b158015620007b4575f80fd5b505afa158015620007c7573d5f803e3d5ffd5b505050505f620007d78462001b1a565b8383604051620007e79062002144565b620007f593929190620024f9565b604051809103905ff0801580156200080f573d5f803e3d5ffd5b506040516370a0823160e01b81526001600160a01b038681166004830152919250620008e6918316906370a0823190602401602060405180830381865afa1580156200085d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000883919062002544565b826001600160a01b031663a2309ff86040518163ffffffff1660e01b8152600401602060405180830381865afa158015620008c0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004cc919062002544565b50505050565b604051632631f2b160e11b81526001600160a01b038516151560048201525f8051602062004b5c83398151915290634c63e562906024015f6040518083038186803b1580156200093a575f80fd5b505afa1580156200094d573d5f803e3d5ffd5b505050505f6200095d8562001b1a565b84846040516200096d9062002144565b6200097b93929190620024f9565b604051809103905ff08015801562000995573d5f803e3d5ffd5b5090505f816001600160a01b031663a2309ff86040518163ffffffff1660e01b8152600401602060405180830381865afa158015620009d6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620009fc919062002544565b111562000afc575f62000a81838260200201355f6001856001600160a01b031663a2309ff86040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000a4f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000a75919062002544565b620003ef919062002570565b6040516331a9108f60e11b81526004810182905290915062000afa906001600160a01b03841690636352211e90602401602060405180830381865afa15801562000acd573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000af3919062002586565b8762001cb5565b505b5f62000b748360016020020135836001600160a01b031663a2309ff86040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000b46573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000b6c919062002544565b5f1962001b73565b90507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663f48448146040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562000bd1575f80fd5b505af115801562000be4573d5f803e3d5ffd5b50506040516331a9108f60e11b8152600481018490526001600160a01b0385169250636352211e9150602401602060405180830381865afa15801562000c2c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000c52919062002586565b50505050505050565b60606011805480602002602001604051908101604052809291908181526020015f905b828210156200075d578382905f5260205f2001805462000c9e90620025b8565b80601f016020809104026020016040519081016040528092919081815260200182805462000ccc90620025b8565b801562000d1b5780601f1062000cf15761010080835404028352916020019162000d1b565b820191905f5260205f20905b81548152906001019060200180831162000cfd57829003601f168201915b50505050508152602001906001019062000c7e565b60606013805480602002602001604051908101604052809291908181526020015f905b828210156200075d575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000dfc57602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b0319168152602001906004019060208260030104928301926001038202915080841162000dbd5790505b5050505050815250508152602001906001019062000d53565b60606010805480602002602001604051908101604052809291908181526020015f905b828210156200075d578382905f5260205f2001805462000e5890620025b8565b80601f016020809104026020016040519081016040528092919081815260200182805462000e8690620025b8565b801562000ed55780601f1062000eab5761010080835404028352916020019162000ed5565b820191905f5260205f20905b81548152906001019060200180831162000eb757829003601f168201915b50505050508152602001906001019062000e38565b5f8054610100900460ff161562000f0957505f54610100900460ff1690565b5f5f8051602062004b5c8339815191523b156200100657604080515f8051602062004b5c833981519152602082018190526519985a5b195960d21b82840152825180830384018152606083019093525f92909162000f8c917f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc491608001620025f2565b60408051601f198184030181529082905262000fa89162002624565b5f604051808303815f865af19150503d805f811462000fe3576040519150601f19603f3d011682016040523d82523d5f602084013e62000fe8565b606091505b509150508080602001905181019062001002919062002641565b9150505b919050565b5f8051602062004b5c833981519152634c63e5625f6200102f602087018762002662565b6001600160a01b031614156040518263ffffffff1660e01b81526004016200105b911515815260200190565b5f6040518083038186803b15801562001072575f80fd5b505afa15801562001085573d5f803e3d5ffd5b505f8051602062004b5c8339815191529250634c63e56291505f9050620010b3604087016020880162002662565b6001600160a01b031614156040518263ffffffff1660e01b8152600401620010df911515815260200190565b5f6040518083038186803b158015620010f6575f80fd5b505afa15801562001109573d5f803e3d5ffd5b505f8051602062004b5c8339815191529250634c63e5629150620011369050604086016020870162002662565b6001600160a01b03166200114e602087018762002662565b6001600160a01b031614156040518263ffffffff1660e01b81526004016200117a911515815260200190565b5f6040518083038186803b15801562001191575f80fd5b505afa158015620011a4573d5f803e3d5ffd5b505f925060029150620011b49050565b604051908082528060200260200182016040528015620011de578160200160208202803683370190505b509050620011f0602085018562002662565b815f81518110620012055762001205620025a4565b6001600160a01b03929092166020928302919091018201526200122f906040860190860162002662565b81600181518110620012455762001245620025a4565b6001600160a01b03929092166020928302919091018201526040805160028082526060820183525f93919290918301908036833701905050905062001296845f5b6020020135600161138862001b73565b815f81518110620012ab57620012ab620025a4565b6020908102919091010152620012c384600162001286565b81600181518110620012d957620012d9620025a4565b6020026020010181815250505f8282604051620012f69062002144565b6200130392919062002680565b604051809103905ff0801580156200131d573d5f803e3d5ffd5b5090505f62001358858260200201355f6001865f81518110620013445762001344620025a4565b6020026020010151620003ef919062002570565b90505f835f81518110620013705762001370620025a4565b6020026020010151620013b087600160028110620013925762001392620025a4565b60200201355f600188600181518110620013445762001344620025a4565b620013bc9190620026d9565b6040516331a9108f60e11b8152600481018490529091506200144d906001600160a01b03851690636352211e906024015b602060405180830381865afa15801562001409573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200142f919062002586565b895f5b60200201602081019062001447919062002662565b62001cb5565b6040516331a9108f60e11b815260048101829052620014c6906001600160a01b03851690636352211e906024015b602060405180830381865afa15801562001497573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620014bd919062002586565b89600162001432565b6200157d6001600160a01b0384166370a082318a5f5b602002016020810190620014f1919062002662565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa15801562001534573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200155a919062002544565b855f815181106200156f576200156f620025a4565b602002602001015162001bba565b620016286001600160a01b0384166370a082318a60015b602002016020810190620015a9919062002662565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015620015ec573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001612919062002544565b856001815181106200156f576200156f620025a4565b5f8051602062004b5c83398151915263ca669fa76200164b60208b018b62002662565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201526024015f604051808303815f87803b1580156200168a575f80fd5b505af11580156200169d573d5f803e3d5ffd5b5050506001600160a01b03841690506323b872dd620016c060208b018b62002662565b620016d260408c0160208d0162002662565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604481018590526064015f604051808303815f87803b1580156200171f575f80fd5b505af115801562001732573d5f803e3d5ffd5b50506040516331a9108f60e11b8152600481018590526200176992506001600160a01b0386169150636352211e906024016200147b565b6040516331a9108f60e11b8152600481018290526200179c906001600160a01b03851690636352211e906024016200147b565b620018526001600160a01b0384166370a08231620017be60208c018c62002662565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa15801562001801573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001827919062002544565b6001865f815181106200183e576200183e620025a4565b6020026020010151620004cc919062002570565b6200190c6001600160a01b0384166370a082316200187760408c0160208d0162002662565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015620018ba573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620018e0919062002544565b85600181518110620018f657620018f6620025a4565b60200260200101516001620004cc9190620026d9565b5f8051602062004b5c83398151915263ca669fa76200193260408b0160208c0162002662565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201526024015f604051808303815f87803b15801562001971575f80fd5b505af115801562001984573d5f803e3d5ffd5b5050506001600160a01b03841690506323b872dd620019aa60408b0160208c0162002662565b620019b960208c018c62002662565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604481018490526064015f604051808303815f87803b15801562001a06575f80fd5b505af115801562001a19573d5f803e3d5ffd5b50506040516331a9108f60e11b81526004810185905262001a5092506001600160a01b0386169150636352211e906024016200147b565b6040516331a9108f60e11b81526004810182905262001a83906001600160a01b03851690636352211e90602401620013ed565b62001a9e6001600160a01b0384166370a082318a5f620014dc565b620005ae6001600160a01b0384166370a082318a600162001594565b6060600c8054806020026020016040519081016040528092919081815260200182805480156200026057602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000241575050505050905090565b6040805160018082528183019092526060915f91906020808301908036833701905050905082815f8151811062001b555762001b55620025a4565b6001600160a01b039092166020928302919091019091015292915050565b5f62001b8184848462001daf565b905062001bb36040518060400160405280600c81526020016b109bdd5b990814995cdd5b1d60a21b8152508262001f9a565b9392505050565b80821462001cb1577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f5060405162001c2d9060208082526022908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e604082015261745d60f01b606082015260800190565b60405180910390a17fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a88260405162001c669190620026ef565b60405180910390a17fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a88160405162001c9f919062002727565b60405180910390a162001cb162002043565b5050565b806001600160a01b0316826001600160a01b03161462001cb1577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f5060405162001d3d9060208082526025908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b616464604082015264726573735d60d81b606082015260800190565b60405180910390a17f9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f8260405162001d76919062002751565b60405180910390a17f9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f8160405162001c9f919062002795565b5f8183111562001e2b5760405162461bcd60e51b815260206004820152603e60248201527f5374645574696c7320626f756e642875696e743235362c75696e743235362c7560448201527f696e74323536293a204d6178206973206c657373207468616e206d696e2e0000606482015260840160405180910390fd5b82841015801562001e3c5750818411155b1562001e4a57508262001bb3565b5f62001e57848462002570565b62001e64906001620026d9565b90506003851115801562001e7757508481115b1562001e925762001e898585620026d9565b91505062001bb3565b62001ea060035f1962002570565b851015801562001ebb575062001eb8855f1962002570565b81115b1562001eda5762001ece855f1962002570565b62001e89908462002570565b8285111562001f39575f62001ef0848762002570565b90505f62001eff8383620027bf565b9050805f0362001f155784935050505062001bb3565b600162001f238288620026d9565b62001f2f919062002570565b9350505062001f92565b8385101562001f92575f62001f4f868662002570565b90505f62001f5e8383620027bf565b9050805f0362001f745785935050505062001bb3565b62001f80818662002570565b62001f8d906001620026d9565b935050505b509392505050565b5f6a636f6e736f6c652e6c6f676001600160a01b0316838360405160240162001fc5929190620027df565b60408051601f198184030181529181526020820180516001600160e01b0316632d839cb360e21b1790525162001ffc919062002624565b5f60405180830381855afa9150503d805f811462002036576040519150601f19603f3d011682016040523d82523d5f602084013e6200203b565b606091505b505050505050565b5f8051602062004b5c8339815191523b156200213457604080515f8051602062004b5c833981519152602082018190526519985a5b195960d21b92820192909252600160608201525f91907f70ca10bbd0dbfd9020a9f4b13402c16cb120705e0d1c0aeab10fa353ae586fc49060800160408051601f1981840301815290829052620020d39291602001620025f2565b60408051601f1981840301815290829052620020ef9162002624565b5f604051808303815f865af19150503d805f81146200212a576040519150601f19603f3d011682016040523d82523d5f602084013e6200212f565b606091505b505050505b5f805461ff001916610100179055565b612359806200280383390190565b5f8151808452602080850194508084015f5b838110156200218b5781516001600160a01b03168752958201959082019060010162002164565b509495945050505050565b602081525f62001bb3602083018462002152565b6001600160a01b0381168114620021bf575f80fd5b50565b5f8083601f840112620021d3575f80fd5b50813567ffffffffffffffff811115620021eb575f80fd5b6020830191508360208260051b850101111562002206575f80fd5b9250929050565b5f805f806060858703121562002221575f80fd5b84356200222e81620021aa565b9350602085013567ffffffffffffffff8111156200224a575f80fd5b6200225887828801620021c2565b9598909750949560400135949350505050565b5f6020808301818452808551808352604092508286019150828160051b8701018488015f805b848110156200231157898403603f19018652825180516001600160a01b03168552880151888501889052805188860181905290890190839060608701905b80831015620022fb5783516001600160e01b0319168252928b019260019290920191908b0190620022cf565b50978a0197955050509187019160010162002291565b50919998505050505050505050565b5f805f6040848603121562002333575f80fd5b83356200234081620021aa565b9250602084013567ffffffffffffffff8111156200235c575f80fd5b6200236a86828701620021c2565b9497909650939450505050565b806040810183101562002388575f80fd5b92915050565b5f805f8060808587031215620023a2575f80fd5b8435620023af81620021aa565b9350602085013567ffffffffffffffff811115620023cb575f80fd5b620023d987828801620021c2565b9094509250620023ef9050866040870162002377565b905092959194509250565b5f5b8381101562002416578181015183820152602001620023fc565b50505f910152565b5f815180845262002437816020860160208601620023fa565b601f01601f19169290920160200192915050565b5f602080830181845280855180835260408601915060408160051b87010192508387015f5b82811015620024a257603f198886030184526200248f8583516200241e565b9450928501929085019060010162002470565b5092979650505050505050565b5f805f60c08486031215620024c2575f80fd5b620024ce858562002377565b9250620024df856040860162002377565b9150620024f0856080860162002377565b90509250925092565b604081525f6200250d604083018662002152565b82810360208401528381526001600160fb1b038411156200252c575f80fd5b8360051b808660208401370160200195945050505050565b5f6020828403121562002555575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156200238857620023886200255c565b5f6020828403121562002597575f80fd5b815162001bb381620021aa565b634e487b7160e01b5f52603260045260245ffd5b600181811c90821680620025cd57607f821691505b602082108103620025ec57634e487b7160e01b5f52602260045260245ffd5b50919050565b6001600160e01b03198316815281515f9062002616816004850160208701620023fa565b919091016004019392505050565b5f825162002637818460208701620023fa565b9190910192915050565b5f6020828403121562002652575f80fd5b8151801515811462001bb3575f80fd5b5f6020828403121562002673575f80fd5b813562001bb381620021aa565b604081525f62002694604083018562002152565b8281036020848101919091528451808352858201928201905f5b81811015620026cc57845183529383019391830191600101620026ae565b5090979650505050505050565b808201808211156200238857620023886200255c565b604081525f6200271960408301600a8152690808080808081319599d60b21b602082015260400190565b905082602083015292915050565b604081525f6200271960408301600a8152690808080808149a59da1d60b21b602082015260400190565b604081525f6200277b60408301600a8152690808080808081319599d60b21b602082015260400190565b6001600160a01b0393909316602092909201919091525090565b604081525f6200277b60408301600a8152690808080808149a59da1d60b21b602082015260400190565b5f82620027da57634e487b7160e01b5f52601260045260245ffd5b500690565b604081525f620027f360408301856200241e565b9050826020830152939250505056fe60806040525f60085534801562000014575f80fd5b506040516200235938038062002359833981016040819052620000379162000b06565b60408051602080820183525f808352835191820190935282815290916200005f838262000c65565b5060016200006e828262000c65565b5050505f5b815181101562000137575f838451836200008e919062000d2d565b81518110620000a157620000a162000d4d565b602002602001015190505f620000ed848481518110620000c557620000c562000d4d565b60200260200101515f620000de6200014060201b60201c565b6001600160601b031662000146565b9050620000fb828262000193565b50806001600160601b031660085f82825462000118919062000d75565b92505081905550505080806200012e9062000d8b565b91505062000073565b50505062000e86565b61138890565b5f62000154848484620003b5565b90506200018c6040518060400160405280600c81526020016b109bdd5b990814995cdd5b1d60a21b815250826200059d60201b60201c565b9392505050565b5f806200019f62000646565b90506001600160601b03831615620003ac57303b156200022c5760405162461bcd60e51b815260206004820152603a60248201527f455243373231436f6e73656375746976653a206261746368206d696e74696e6760448201527f207265737472696374656420746f20636f6e7374727563746f7200000000000060648201526084015b60405180910390fd5b6001600160a01b038416620002985760405162461bcd60e51b815260206004820152602b60248201527f455243373231436f6e73656375746976653a206d696e7420746f20746865207a60448201526a65726f206164647265737360a81b606482015260840162000223565b6113886001600160601b0384161115620003005760405162461bcd60e51b815260206004820152602260248201527f455243373231436f6e73656375746976653a20626174636820746f6f206c6172604482015261676560f01b606482015260840162000223565b5f60016200030f858462000da6565b6200031b919062000dd0565b90506200032b6006828762000681565b50620003439050856001600160601b0386166200069d565b6040516001600160601b0382811682526001600160a01b038716915f918516907fdeaa91b6123d068f5821d0fb0678463d1a8a6079fe8af5de3ce5e896dcf9133d9060200160405180910390a4620003aa5f866001600160601b03808616908816620006cf565b505b90505b92915050565b5f818311156200042e5760405162461bcd60e51b815260206004820152603e60248201527f5374645574696c7320626f756e642875696e743235362c75696e743235362c7560448201527f696e74323536293a204d6178206973206c657373207468616e206d696e2e0000606482015260840162000223565b8284101580156200043f5750818411155b156200044d5750826200018c565b5f6200045a848462000df3565b6200046790600162000d75565b9050600385111580156200047a57508481115b1562000495576200048c858562000d75565b9150506200018c565b620004a360035f1962000df3565b8510158015620004be5750620004bb855f1962000df3565b81115b15620004dd57620004d1855f1962000df3565b6200048c908462000df3565b828511156200053c575f620004f3848762000df3565b90505f62000502838362000d2d565b9050805f0362000518578493505050506200018c565b600162000526828862000d75565b62000532919062000df3565b9350505062000595565b8385101562000595575f62000552868662000df3565b90505f62000561838362000d2d565b9050805f0362000577578593505050506200018c565b62000583818662000df3565b6200059090600162000d75565b935050505b509392505050565b5f6a636f6e736f6c652e6c6f676001600160a01b03168383604051602401620005c892919062000e2d565b60408051601f198184030181529181526020820180516001600160e01b0316632d839cb360e21b17905251620005ff919062000e69565b5f60405180830381855afa9150503d805f811462000639576040519150601f19603f3d011682016040523d82523d5f602084013e6200063e565b606091505b505050505050565b5f8080620006556006620007bc565b50915091508162000667575f62000674565b6200067481600162000da6565b9250505090565b50505050565b5f80620006908585856200084f565b915091505b935093915050565b6001600160a01b0382165f9081526003602052604081208054839290620006c690849062000d75565b90915550505050565b6001600160a01b038316158015620006f85750620006ec62000646565b6001600160601b031682105b80156200071d5750600882901c5f90815260076020526040902054600160ff84161b16155b15620007a85780600114620007895760405162461bcd60e51b815260206004820152602b60248201527f455243373231436f6e73656375746976653a206261746368206275726e206e6f60448201526a1d081cdd5c1c1bdc9d195960aa1b606482015260840162000223565b600882901c5f9081526007602052604090208054600160ff85161b1790555b6200067b848484846001600160e01b038516565b80545f9081908190808203620007dc575f805f9350935093505062000848565b5f620007fc86620007ef60018562000df3565b5f91825260209091200190565b6040805180820190915290546001600160601b0381168083526c010000000000000000000000009091046001600160a01b03166020909201829052600196509450925062000848915050565b9193909250565b82545f9081908015620009c5575f6200086f87620007ef60018562000df3565b6040805180820190915290546001600160601b038082168084526c010000000000000000000000009092046001600160a01b031660208401529192509087161015620008fe5760405162461bcd60e51b815260206004820152601b60248201527f436865636b706f696e743a2064656372656173696e67206b6579730000000000604482015260640162000223565b80516001600160601b038088169116036200095a57846200092688620007ef60018662000df3565b80546001600160a01b03929092166c01000000000000000000000000026001600160601b03909216919091179055620009b4565b604080518082019091526001600160601b0380881682526001600160a01b0380881660208085019182528b54600181018d555f8d815291909120945191519092166c01000000000000000000000000029216919091179101555b602001519250839150620006959050565b5050604080518082019091526001600160601b0380851682526001600160a01b0380851660208085019182528854600181018a555f8a8152918220955192519093166c0100000000000000000000000002919093161792019190915590508162000695565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b038111828210171562000a695762000a6962000a2a565b604052919050565b5f6001600160401b0382111562000a8c5762000a8c62000a2a565b5060051b60200190565b5f82601f83011262000aa6575f80fd5b8151602062000abf62000ab98362000a71565b62000a3e565b82815260059290921b8401810191818101908684111562000ade575f80fd5b8286015b8481101562000afb578051835291830191830162000ae2565b509695505050505050565b5f806040838503121562000b18575f80fd5b82516001600160401b038082111562000b2f575f80fd5b818501915085601f83011262000b43575f80fd5b8151602062000b5662000ab98362000a71565b82815260059290921b8401810191818101908984111562000b75575f80fd5b948201945b8386101562000bab5785516001600160a01b038116811462000b9b575f8081fd5b8252948201949082019062000b7a565b9188015191965090935050508082111562000bc4575f80fd5b5062000bd38582860162000a96565b9150509250929050565b600181811c9082168062000bf257607f821691505b60208210810362000c1157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000c60575f81815260208120601f850160051c8101602086101562000c3f5750805b601f850160051c820191505b818110156200063e5782815560010162000c4b565b505050565b81516001600160401b0381111562000c815762000c8162000a2a565b62000c998162000c92845462000bdd565b8462000c17565b602080601f83116001811462000ccf575f841562000cb75750858301515b5f19600386901b1c1916600185901b1785556200063e565b5f85815260208120601f198616915b8281101562000cff5788860151825594840194600190910190840162000cde565b508582101562000d1d57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f8262000d4857634e487b7160e01b5f52601260045260245ffd5b500690565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b80820180821115620003af57620003af62000d61565b5f6001820162000d9f5762000d9f62000d61565b5060010190565b6001600160601b0381811683821601908082111562000dc95762000dc962000d61565b5092915050565b6001600160601b0382811682821603908082111562000dc95762000dc962000d61565b81810381811115620003af57620003af62000d61565b5f5b8381101562000e2557818101518382015260200162000e0b565b50505f910152565b604081525f835180604084015262000e4d81606085016020880162000e09565b602083019390935250601f91909101601f191601606001919050565b5f825162000e7c81846020870162000e09565b9190910192915050565b6114c58062000e945f395ff3fe608060405234801561000f575f80fd5b50600436106100f0575f3560e01c80636352211e11610093578063a2309ff811610063578063a2309ff8146101f9578063b88d4fde14610202578063c87b56dd14610215578063e985e9c514610228575f80fd5b80636352211e146101aa57806370a08231146101bd57806395d89b41146101de578063a22cb465146101e6575f80fd5b8063095ea7b3116100ce578063095ea7b31461015c57806323b872dd1461017157806342842e0e1461018457806342966c6814610197575f80fd5b806301ffc9a7146100f457806306fdde031461011c578063081812fc14610131575b5f80fd5b610107610102366004610ff5565b61023b565b60405190151581526020015b60405180910390f35b61012461028c565b604051610113919061105d565b61014461013f36600461106f565b61031b565b6040516001600160a01b039091168152602001610113565b61016f61016a3660046110a1565b610340565b005b61016f61017f3660046110c9565b610459565b61016f6101923660046110c9565b61048a565b61016f6101a536600461106f565b6104a4565b6101446101b836600461106f565b6104b0565b6101d06101cb366004611102565b61050e565b604051908152602001610113565b610124610592565b61016f6101f436600461111b565b6105a1565b6101d060085481565b61016f610210366004611168565b6105b0565b61012461022336600461106f565b6105e8565b61010761023636600461123d565b610658565b5f6001600160e01b031982166380ac58cd60e01b148061026b57506001600160e01b03198216635b5e139f60e01b145b8061028657506301ffc9a760e01b6001600160e01b03198316145b92915050565b60605f805461029a9061126e565b80601f01602080910402602001604051908101604052809291908181526020018280546102c69061126e565b80156103115780601f106102e857610100808354040283529160200191610311565b820191905f5260205f20905b8154815290600101906020018083116102f457829003601f168201915b5050505050905090565b5f61032582610685565b505f908152600460205260409020546001600160a01b031690565b5f61034a826104b0565b9050806001600160a01b0316836001600160a01b0316036103bc5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806103d857506103d88133610658565b61044a5760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c00000060648201526084016103b3565b61045483836106d5565b505050565b6104633382610742565b61047f5760405162461bcd60e51b81526004016103b3906112a6565b6104548383836107a0565b61045483838360405180602001604052805f8152506105b0565b6104ad8161090a565b50565b5f806104bb836109a5565b90506001600160a01b0381166102865760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016103b3565b5f6001600160a01b0382166105775760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016103b3565b506001600160a01b03165f9081526003602052604090205490565b60606001805461029a9061126e565b6105ac338383610a12565b5050565b6105ba3383610742565b6105d65760405162461bcd60e51b81526004016103b3906112a6565b6105e284848484610adf565b50505050565b60606105f382610685565b5f61060860408051602081019091525f815290565b90505f8151116106265760405180602001604052805f815250610651565b8061063084610b12565b6040516020016106419291906112f3565b6040516020818303038152906040525b9392505050565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205460ff1690565b61068e81610ba2565b6104ad5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016103b3565b5f81815260046020526040902080546001600160a01b0319166001600160a01b0384169081179091558190610709826104b0565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b5f8061074d836104b0565b9050806001600160a01b0316846001600160a01b0316148061077457506107748185610658565b806107985750836001600160a01b031661078d8461031b565b6001600160a01b0316145b949350505050565b826001600160a01b03166107b3826104b0565b6001600160a01b0316146107d95760405162461bcd60e51b81526004016103b390611321565b6001600160a01b03821661083b5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016103b3565b826001600160a01b031661084e826104b0565b6001600160a01b0316146108745760405162461bcd60e51b81526004016103b390611321565b5f81815260046020908152604080832080546001600160a01b03199081169091556001600160a01b038781168086526003855283862080545f1901905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a46104548383836001610bbe565b5f610914826104b0565b905061091f826104b0565b5f83815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0385168085526003845282852080545f190190558785526002909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a46105ac815f846001610bbe565b5f818152600260205260408120546001600160a01b0316801515806109d057506001600160601b0383115b156109db5792915050565b600883901c5f90815260076020526040902054600160ff85161b16610a0a57610a05600684610c99565b610651565b5f9392505050565b816001600160a01b0316836001600160a01b031603610a735760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016103b3565b6001600160a01b038381165f81815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b610aea8484846107a0565b610af684848484610cde565b6105e25760405162461bcd60e51b81526004016103b390611366565b60605f610b1e83610ddb565b60010190505f8167ffffffffffffffff811115610b3d57610b3d611154565b6040519080825280601f01601f191660200182016040528015610b67576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610b7157509392505050565b5f80610bad836109a5565b6001600160a01b0316141592915050565b6001600160a01b038316158015610be45750610bd8610eb2565b6001600160601b031682105b8015610c085750600882901c5f90815260076020526040902054600160ff84161b16155b15610c945780600114610c715760405162461bcd60e51b815260206004820152602b60248201527f455243373231436f6e73656375746976653a206261746368206275726e206e6f60448201526a1d081cdd5c1c1bdc9d195960aa1b60648201526084016103b3565b600882901c5f9081526007602052604090208054600160ff85161b1790556105e2565b6105e2565b81545f9081610caa85858385610ee1565b9050818114610cd3575f85815260209020810154600160601b90046001600160a01b0316610cd5565b5f5b95945050505050565b5f6001600160a01b0384163b15610dd057604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610d219033908990889088906004016113b8565b6020604051808303815f875af1925050508015610d5b575060408051601f3d908101601f19168201909252610d58918101906113f4565b60015b610db6573d808015610d88576040519150601f19603f3d011682016040523d82523d5f602084013e610d8d565b606091505b5080515f03610dae5760405162461bcd60e51b81526004016103b390611366565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610798565b506001949350505050565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610e195772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610e45576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610e6357662386f26fc10000830492506010015b6305f5e1008310610e7b576305f5e100830492506008015b6127108310610e8f57612710830492506004015b60648310610ea1576064830492506002015b600a83106102865760010192915050565b5f805f610ebf6006610f42565b509150915081610ecf575f610eda565b610eda816001611423565b9250505090565b5f5b81831015610f3a575f610ef68484610fc6565b5f878152602090209091506001600160601b038616908201546001600160601b03161015610f3057610f2981600161144a565b9350610f34565b8092505b50610ee3565b509392505050565b80545f9081908190808203610f60575f805f93509350935050610fbf565b5f610f7d86610f7060018561145d565b5f91825260209091200190565b6040805180820190915290546001600160601b038116808352600160601b9091046001600160a01b031660209092018290526001965094509250610fbf915050565b9193909250565b5f610fd46002848418611470565b6106519084841661144a565b6001600160e01b0319811681146104ad575f80fd5b5f60208284031215611005575f80fd5b813561065181610fe0565b5f5b8381101561102a578181015183820152602001611012565b50505f910152565b5f8151808452611049816020860160208601611010565b601f01601f19169290920160200192915050565b602081525f6106516020830184611032565b5f6020828403121561107f575f80fd5b5035919050565b80356001600160a01b038116811461109c575f80fd5b919050565b5f80604083850312156110b2575f80fd5b6110bb83611086565b946020939093013593505050565b5f805f606084860312156110db575f80fd5b6110e484611086565b92506110f260208501611086565b9150604084013590509250925092565b5f60208284031215611112575f80fd5b61065182611086565b5f806040838503121561112c575f80fd5b61113583611086565b915060208301358015158114611149575f80fd5b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b5f805f806080858703121561117b575f80fd5b61118485611086565b935061119260208601611086565b925060408501359150606085013567ffffffffffffffff808211156111b5575f80fd5b818701915087601f8301126111c8575f80fd5b8135818111156111da576111da611154565b604051601f8201601f19908116603f0116810190838211818310171561120257611202611154565b816040528281528a602084870101111561121a575f80fd5b826020860160208301375f60208483010152809550505050505092959194509250565b5f806040838503121561124e575f80fd5b61125783611086565b915061126560208401611086565b90509250929050565b600181811c9082168061128257607f821691505b6020821081036112a057634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b5f8351611304818460208801611010565b835190830190611318818360208801611010565b01949350505050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f906113ea90830184611032565b9695505050505050565b5f60208284031215611404575f80fd5b815161065181610fe0565b634e487b7160e01b5f52601160045260245ffd5b6001600160601b038181168382160190808211156114435761144361140f565b5092915050565b808201808211156102865761028661140f565b818103818111156102865761028661140f565b5f8261148a57634e487b7160e01b5f52601260045260245ffd5b50049056fea26469706673582212202bf18064affea2f9f40b2e614f117e894ca4efbde3c209eda4dd8111ad0ebb0864736f6c634300081400330000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12da2646970667358221220524054e1e7371760e88688e1ff8a16266c7dd8d2a4948340343f6adbbee2b35364736f6c63430008140033","sourceMap":"949:3555:306:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2161:134:276;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1937:708:306;;;;;;:::i;:::-;;:::i;:::-;;2930:133:276;;;:::i;2631:141::-;;;:::i;2447:178::-;;;:::i;:::-;;;;;;;:::i;994:294:306:-;;;;;;:::i;:::-;;:::i;1294:637::-;;;;;;:::i;:::-;;:::i;2301:140:276:-;;;:::i;:::-;;;;;;;:::i;2778:146::-;;;:::i;1866:141::-;;;:::i;1819:584:268:-;;;:::i;:::-;;;6419:14:310;;6412:22;6394:41;;6382:2;6367:18;1819:584:268;6254:187:310;2651:1851:306;;;;;;:::i;:::-;;:::i;2013:142:276:-;;;:::i;1572:26:268:-;;;;;;;;;2161:134:276;2208:33;2272:16;2253:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2253:35:276;;;;;;;;;;;;;;;;;;;;;;;2161:134;:::o;1937:708:306:-;2045:33;;-1:-1:-1;;;2045:33:306;;-1:-1:-1;;;;;2055:22:306;;;;2045:33;;;6394:41:310;-1:-1:-1;;;;;;;;;;;2045:9:306;;;6367:18:310;;2045:33:306;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2089:29;2149:21;2161:8;2149:11;:21::i;:::-;2172:7;;2121:59;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2089:91;;2244:14;2261:5;-1:-1:-1;;;;;2261:17:306;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2290:21;;-1:-1:-1;;;2290:21:306;;2300:10;;;2290:21;;;6394:41:310;2244:36:306;;-1:-1:-1;;;;;;;;;;;;2290:9:306;;;6367:18:310;;2290:21:306;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2361:15;2379:38;2385:16;2403:1;2415;2406:6;:10;;;;:::i;:::-;2379:5;:38::i;:::-;2427:19;;-1:-1:-1;;;2427:19:306;;;;;8180:25:310;;;2361:56:306;;-1:-1:-1;;;;;;2427:10:306;;;;;8153:18:310;;2427:19:306;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2507:25:306;;-1:-1:-1;;;2507:25:306;;-1:-1:-1;;;;;8380:32:310;;;2507:25:306;;;8362:51:310;2498:47:306;;-1:-1:-1;2507:15:306;;;-1:-1:-1;2507:15:306;;8335:18:310;;2507:25:306;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2534:10;2543:1;2534:6;:10;:::i;:::-;2498:8;:47::i;:::-;317:28:270;309:37;;-1:-1:-1;;;;;2589:15:306;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2616:22:306;;-1:-1:-1;;;2616:22:306;;;;;8180:25:310;;;-1:-1:-1;;;;;2616:13:306;;;-1:-1:-1;2616:13:306;;-1:-1:-1;8153:18:310;;2616:22:306;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2035:610;;;1937:708;;;;:::o;2930:133:276:-;2976:33;3040:16;3021:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3021:35:276;;;;;;;;;;;;;;;;;;;;;;2930:133;:::o;2631:141::-;2679:35;2747:18;2726:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2726:39:276;;;;;;;;;;;;;;;;;;;;;;2631:141;:::o;2447:178::-;2503:48;2592:26;2563:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2563:55:276;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2563:55:276;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2447:178;:::o;994:294:306:-;1079:33;;-1:-1:-1;;;1079:33:306;;-1:-1:-1;;;;;1089:22:306;;;;1079:33;;;6394:41:310;-1:-1:-1;;;;;;;;;;;1079:9:306;;;6367:18:310;;1079:33:306;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1123:29;1183:21;1195:8;1183:11;:21::i;:::-;1206:7;;1155:59;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1234:25:306;;-1:-1:-1;;;1234:25:306;;-1:-1:-1;;;;;8380:32:310;;;1234:25:306;;;8362:51:310;1123:91:306;;-1:-1:-1;1225:56:306;;1234:15;;;;;8335:18:310;;1234:25:306;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1261:5;-1:-1:-1;;;;;1261:17:306;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1225:56::-;1069:219;994:294;;;:::o;1294:637::-;1419:33;;-1:-1:-1;;;1419:33:306;;-1:-1:-1;;;;;1429:22:306;;;;1419:33;;;6394:41:310;-1:-1:-1;;;;;;;;;;;1419:9:306;;;6367:18:310;;1419:33:306;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1463:29;1523:21;1535:8;1523:11;:21::i;:::-;1546:7;;1495:59;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;1463:91;;1591:1;1569:5;-1:-1:-1;;;;;1569:17:306;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:23;1565:192;;;1608:20;1631:54;1637:16;1608:20;1637:19;;;;1658:1;1683;1661:5;-1:-1:-1;;;;;1661:17:306;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:23;;;;:::i;1631:54::-;1708:27;;-1:-1:-1;;;1708:27:306;;;;;8180:25:310;;;1608:77:306;;-1:-1:-1;1699:47:306;;-1:-1:-1;;;;;1708:13:306;;;;;8153:18:310;;1708:27:306;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1737:8;1699;:47::i;:::-;1594:163;1565:192;1767:22;1792:66;1798:16;1815:1;1798:19;;;;1819:5;-1:-1:-1;;;;;1819:17:306;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;1792:5:306;:66::i;:::-;1767:91;;317:28:270;309:37;;-1:-1:-1;;;;;1868:15:306;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1895:29:306;;-1:-1:-1;;;1895:29:306;;;;;8180:25:310;;;-1:-1:-1;;;;;1895:13:306;;;-1:-1:-1;1895:13:306;;-1:-1:-1;8153:18:310;;1895:29:306;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1409:522;;1294:637;;;;:::o;2301:140:276:-;2349:34;2416:18;2395:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2778:146;2826:40;2899:18;2878:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2878:39:276;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2878:39:276;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1866:141;1915:34;1982:18;1961:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1819:584:268;1853:4;1873:7;;;;;;;1869:528;;;-1:-1:-1;1903:7:268;;;;;;;;1819:584::o;1869:528::-;1941:17;-1:-1:-1;;;;;;;;;;;2985:55:268;3066:16;1980:374;;2196:43;;;-1:-1:-1;;;;;;;;;;;2196:43:268;;;9371:51:310;;;-1:-1:-1;;;9438:18:310;;;9431:34;2196:43:268;;;;;;;;;9344:18:310;;;2196:43:268;;;-1:-1:-1;;1671:64:268;;2086:175;;2135:34;;2086:175;;;:::i;:::-;;;;-1:-1:-1;;2086:175:268;;;;;;;;;;2047:232;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2020:259;;;2323:7;2312:27;;;;;;;;;;;;:::i;:::-;2297:42;;2002:352;1980:374;2374:12;1819:584;-1:-1:-1;1819:584:268:o;2651:1851:306:-;-1:-1:-1;;;;;;;;;;;2827:9:306;309:37:270;2837:11:306;;;;:8;:11;:::i;:::-;-1:-1:-1;;;;;2837:25:306;;;2827:36;;;;;;;;;;;;;6419:14:310;6412:22;6394:41;;6382:2;6367:18;;6254:187;2827:36:306;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;2873:9:306;-1:-1:-1;2873:9:306;;-1:-1:-1;309:37:270;;-1:-1:-1;2883:11:306;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2883:25:306;;;2873:36;;;;;;;;;;;;;6419:14:310;6412:22;6394:41;;6382:2;6367:18;;6254:187;2873:36:306;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;2919:9:306;-1:-1:-1;2919:9:306;;-1:-1:-1;2944:11:306;;-1:-1:-1;2944:11:306;;;;;;;:::i;:::-;-1:-1:-1;;;;;2929:26:306;:11;;;;:8;:11;:::i;:::-;-1:-1:-1;;;;;2929:26:306;;;2919:37;;;;;;;;;;;;;6419:14:310;6412:22;6394:41;;6382:2;6367:18;;6254:187;2919:37:306;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2967:26:306;;-1:-1:-1;3010:1:306;;-1:-1:-1;2996:16:306;;-1:-1:-1;2996:16:306;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2996:16:306;-1:-1:-1;2967:45:306;-1:-1:-1;3037:11:306;;;;:8;:11;:::i;:::-;3022:9;3032:1;3022:12;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3022:26:306;;;;:12;;;;;;;;;;:26;3073:11;;;;;;;;;:::i;:::-;3058:9;3068:1;3058:12;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3058:26:306;;;;:12;;;;;;;;;;:26;3212:16;;;3226:1;3212:16;;;;;;;;3185:24;;3212:16;;3226:1;;3212:16;;;;;;;;;-1:-1:-1;;3185:43:306;-1:-1:-1;3251:35:306;3257:16;3274:1;3257:19;;;;;3278:1;3281:4;3251:5;:35::i;:::-;3238:7;3246:1;3238:10;;;;;;;;:::i;:::-;;;;;;;;;;:48;3309:35;3315:16;3332:1;3315:19;;3309:35;3296:7;3304:1;3296:10;;;;;;;;:::i;:::-;;;;;;:48;;;;;3355:29;3415:9;3426:7;3387:47;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3355:79:306;-1:-1:-1;3445:16:306;3464:45;3470:16;3445;3470:19;;;;3491:1;3507;3494:7;3502:1;3494:10;;;;;;;;:::i;:::-;;;;;;;:14;;;;:::i;3464:45::-;3445:64;;3519:16;3586:7;3594:1;3586:10;;;;;;;;:::i;:::-;;;;;;;3538:45;3544:16;3561:1;3544:19;;;;;;;:::i;:::-;;;;;3565:1;3581;3568:7;3576:1;3568:10;;;;;;;;:::i;3538:45::-;:58;;;;:::i;:::-;3616:23;;-1:-1:-1;;;3616:23:306;;;;;8180:25:310;;;3519:77:306;;-1:-1:-1;3607:46:306;;-1:-1:-1;;;;;3616:13:306;;;;;8153:18:310;;3616:23:306;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3641:8;3650:1;3641:11;;;;;;;;;;;;:::i;:::-;3607:8;:46::i;:::-;3672:23;;-1:-1:-1;;;3672:23:306;;;;;8180:25:310;;;3663:46:306;;-1:-1:-1;;;;;3672:13:306;;;;;8153:18:310;;3672:23:306;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3697:8;3706:1;3697:11;;3663:46;3719:50;-1:-1:-1;;;;;3728:15:306;;;3744:8;3753:1;3744:11;;;;;;;;;;;;:::i;:::-;3728:28;;-1:-1:-1;;;;;;3728:28:306;;;;;;;-1:-1:-1;;;;;8380:32:310;;;3728:28:306;;;8362:51:310;8335:18;;3728:28:306;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3758:7;3766:1;3758:10;;;;;;;;:::i;:::-;;;;;;;3719:8;:50::i;:::-;3779;-1:-1:-1;;;;;3788:15:306;;;3804:8;3813:1;3804:11;;;;;;;;;;;;:::i;:::-;3788:28;;-1:-1:-1;;;;;;3788:28:306;;;;;;;-1:-1:-1;;;;;8380:32:310;;;3788:28:306;;;8362:51:310;8335:18;;3788:28:306;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3818:7;3826:1;3818:10;;;;;;;;:::i;3779:50::-;-1:-1:-1;;;;;;;;;;;3840:8:306;3849:11;;;;:8;:11;:::i;:::-;3840:21;;-1:-1:-1;;;;;;3840:21:306;;;;;;;-1:-1:-1;;;;;8380:32:310;;;3840:21:306;;;8362:51:310;8335:18;;3840:21:306;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;3871:18:306;;;-1:-1:-1;3871:18:306;3890:11;;;;:8;:11;:::i;:::-;3903;;;;;;;;:::i;:::-;3871:54;;-1:-1:-1;;;;;;3871:54:306;;;;;;;-1:-1:-1;;;;;12020:15:310;;;3871:54:306;;;12002:34:310;12072:15;;12052:18;;;12045:43;12104:18;;;12097:34;;;11937:18;;3871:54:306;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3945:23:306;;-1:-1:-1;;;3945:23:306;;;;;8180:25:310;;;3936:46:306;;-1:-1:-1;;;;;;3945:13:306;;;-1:-1:-1;3945:13:306;;8153:18:310;;3945:23:306;8034:177:310;3936:46:306;4001:23;;-1:-1:-1;;;4001:23:306;;;;;8180:25:310;;;3992:46:306;;-1:-1:-1;;;;;4001:13:306;;;;;8153:18:310;;4001:23:306;8034:177:310;3992:46:306;4048:54;-1:-1:-1;;;;;4057:15:306;;;4073:11;;;;:8;:11;:::i;:::-;4057:28;;-1:-1:-1;;;;;;4057:28:306;;;;;;;-1:-1:-1;;;;;8380:32:310;;;4057:28:306;;;8362:51:310;8335:18;;4057:28:306;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4100:1;4087:7;4095:1;4087:10;;;;;;;;:::i;:::-;;;;;;;:14;;;;:::i;4048:54::-;4112;-1:-1:-1;;;;;4121:15:306;;;4137:11;;;;;;;;:::i;:::-;4121:28;;-1:-1:-1;;;;;;4121:28:306;;;;;;;-1:-1:-1;;;;;8380:32:310;;;4121:28:306;;;8362:51:310;8335:18;;4121:28:306;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4151:7;4159:1;4151:10;;;;;;;;:::i;:::-;;;;;;;4164:1;4151:14;;;;:::i;4112:54::-;-1:-1:-1;;;;;;;;;;;4177:8:306;4186:11;;;;;;;;:::i;:::-;4177:21;;-1:-1:-1;;;;;;4177:21:306;;;;;;;-1:-1:-1;;;;;8380:32:310;;;4177:21:306;;;8362:51:310;8335:18;;4177:21:306;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;4208:18:306;;;-1:-1:-1;4208:18:306;4227:11;;;;;;;;:::i;:::-;4240;;;;:8;:11;:::i;:::-;4208:54;;-1:-1:-1;;;;;;4208:54:306;;;;;;;-1:-1:-1;;;;;12020:15:310;;;4208:54:306;;;12002:34:310;12072:15;;12052:18;;;12045:43;12104:18;;;12097:34;;;11937:18;;4208:54:306;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4282:23:306;;-1:-1:-1;;;4282:23:306;;;;;8180:25:310;;;4273:46:306;;-1:-1:-1;;;;;;4282:13:306;;;-1:-1:-1;4282:13:306;;8153:18:310;;4282:23:306;8034:177:310;4273:46:306;4338:23;;-1:-1:-1;;;4338:23:306;;;;;8180:25:310;;;4329:46:306;;-1:-1:-1;;;;;4338:13:306;;;;;8153:18:310;;4338:23:306;8034:177:310;4329:46:306;4385:50;-1:-1:-1;;;;;4394:15:306;;;4410:8;4419:1;4410:11;;4385:50;4445;-1:-1:-1;;;;;4454:15:306;;;4470:8;4479:1;4470:11;;2013:142:276;2062:35;2130:18;2109:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2109:39:276;;;;;;;;;;;;;;;;;;;;;;2013:142;:::o;206:171:306:-;310:16;;;324:1;310:16;;;;;;;;;258;;282:25;;310:16;;;;;;;;;;;;-1:-1:-1;310:16:306;282:44;;346:7;332:8;341:1;332:11;;;;;;;;:::i;:::-;-1:-1:-1;;;;;332:21:306;;;:11;;;;;;;;;;;:21;366:8;206:171;-1:-1:-1;;206:171:306:o;2703:190:281:-;2786:14;2821:19;2828:1;2831:3;2836;2821:6;:19::i;:::-;2812:28;;2850:36;;;;;;;;;;;;;;-1:-1:-1;;;2850:36:281;;;2879:6;2850:12;:36::i;:::-;2703:190;;;;;:::o;5209:262:268:-;5271:1;5266;:6;5262:203;;5293:41;;;;;12344:2:310;12326:21;;;12383:2;12363:18;;;12356:30;12422:34;12417:2;12402:18;;12395:62;-1:-1:-1;;;12488:2:310;12473:18;;12466:32;12530:3;12515:19;;12142:398;5293:41:268;;;;;;;;5353:31;5382:1;5353:31;;;;;;:::i;:::-;;;;;;;;5403;5432:1;5403:31;;;;;;:::i;:::-;;;;;;;;5448:6;:4;:6::i;:::-;5209:262;;:::o;3622:277::-;3690:1;-1:-1:-1;;;;;3685:6:268;:1;-1:-1:-1;;;;;3685:6:268;;3681:212;;3712:44;;;;;13781:2:310;13763:21;;;13820:2;13800:18;;;13793:30;13859:34;13854:2;13839:18;;13832:62;-1:-1:-1;;;13925:2:310;13910:18;;13903:35;13970:3;13955:19;;13579:401;3712:44:268;;;;;;;;3775:34;3807:1;3775:34;;;;;;:::i;:::-;;;;;;;;3828;3860:1;3828:34;;;;;;:::i;1434:1263:281:-;1518:14;1559:3;1552;:10;;1544:85;;;;-1:-1:-1;;;1544:85:281;;14945:2:310;1544:85:281;;;14927:21:310;14984:2;14964:18;;;14957:30;15023:34;15003:18;;;14996:62;15094:32;15074:18;;;15067:60;15144:19;;1544:85:281;;;;;;;;1863:3;1858:1;:8;;:20;;;;;1875:3;1870:1;:8;;1858:20;1854:34;;;-1:-1:-1;1887:1:281;1880:8;;1854:34;1899:12;1914:9;1920:3;1914;:9;:::i;:::-;:13;;1926:1;1914:13;:::i;:::-;1899:28;;2122:1;2117;:6;;:18;;;;;2134:1;2127:4;:8;2117:18;2113:38;;;2144:7;2150:1;2144:3;:7;:::i;:::-;2137:14;;;;;2113:38;2170:15;2184:1;-1:-1:-1;;2170:15:281;:::i;:::-;2165:1;:20;;:46;;;;-1:-1:-1;2196:15:281;2210:1;-1:-1:-1;;2196:15:281;:::i;:::-;2189:4;:22;2165:46;2161:82;;;2227:15;2241:1;-1:-1:-1;;2227:15:281;:::i;:::-;2220:23;;:3;:23;:::i;2161:82::-;2347:3;2343:1;:7;2339:352;;;2366:12;2381:7;2385:3;2381:1;:7;:::i;:::-;2366:22;-1:-1:-1;2402:11:281;2416;2423:4;2366:22;2416:11;:::i;:::-;2402:25;;2445:3;2452:1;2445:8;2441:24;;2462:3;2455:10;;;;;;;2441:24;2500:1;2488:9;2494:3;2488;:9;:::i;:::-;:13;;;;:::i;:::-;2479:22;;2352:160;;2339:352;;;2526:3;2522:1;:7;2518:173;;;2545:12;2560:7;2566:1;2560:3;:7;:::i;:::-;2545:22;-1:-1:-1;2581:11:281;2595;2602:4;2545:22;2595:11;:::i;:::-;2581:25;;2624:3;2631:1;2624:8;2620:24;;2641:3;2634:10;;;;;;;2620:24;2667:9;2673:3;2667;:9;:::i;:::-;:13;;2679:1;2667:13;:::i;:::-;2658:22;;2531:160;;2518:173;1534:1163;1434:1263;;;;;:::o;9671:207::-;9747:11;702:42;-1:-1:-1;;;;;9763:36:281;9847:2;9851;9800:54;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;9800:54:281;;;;;;;;;;;;;;-1:-1:-1;;;;;9800:54:281;-1:-1:-1;;;9800:54:281;;;9763:92;;;9800:54;9763:92;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9671:207:281:o;2409:432:268:-;-1:-1:-1;;;;;;;;;;;2985:55:268;3066:16;2452:359;;2652:67;;;-1:-1:-1;;;;;;;;;;;2652:67:268;;;15886:51:310;;;-1:-1:-1;;;15953:18:310;;;15946:34;;;;2712:4:268;15996:18:310;;;15989:34;2489:11:268;;1671:64;2586:43;;15859:18:310;;2652:67:268;;;-1:-1:-1;;2652:67:268;;;;;;;;;;2541:196;;;2652:67;2541:196;;:::i;:::-;;;;-1:-1:-1;;2541:196:268;;;;;;;;;;2506:245;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;2452:359:268;2820:7;:14;;-1:-1:-1;;2820:14:268;;;;;2409:432::o;-1:-1:-1:-;;;;;;;;:::o;14:461:310:-;67:3;105:5;99:12;132:6;127:3;120:19;158:4;187:2;182:3;178:12;171:19;;224:2;217:5;213:14;245:1;255:195;269:6;266:1;263:13;255:195;;;334:13;;-1:-1:-1;;;;;330:39:310;318:52;;390:12;;;;425:15;;;;366:1;284:9;255:195;;;-1:-1:-1;466:3:310;;14:461;-1:-1:-1;;;;;14:461:310:o;480:261::-;659:2;648:9;641:21;622:4;679:56;731:2;720:9;716:18;708:6;679:56;:::i;746:131::-;-1:-1:-1;;;;;821:31:310;;811:42;;801:70;;867:1;864;857:12;801:70;746:131;:::o;882:367::-;945:8;955:6;1009:3;1002:4;994:6;990:17;986:27;976:55;;1027:1;1024;1017:12;976:55;-1:-1:-1;1050:20:310;;1093:18;1082:30;;1079:50;;;1125:1;1122;1115:12;1079:50;1162:4;1154:6;1150:17;1138:29;;1222:3;1215:4;1205:6;1202:1;1198:14;1190:6;1186:27;1182:38;1179:47;1176:67;;;1239:1;1236;1229:12;1176:67;882:367;;;;;:::o;1254:640::-;1358:6;1366;1374;1382;1435:2;1423:9;1414:7;1410:23;1406:32;1403:52;;;1451:1;1448;1441:12;1403:52;1490:9;1477:23;1509:31;1534:5;1509:31;:::i;:::-;1559:5;-1:-1:-1;1615:2:310;1600:18;;1587:32;1642:18;1631:30;;1628:50;;;1674:1;1671;1664:12;1628:50;1713:70;1775:7;1766:6;1755:9;1751:22;1713:70;:::i;:::-;1254:640;;1802:8;;-1:-1:-1;1687:96:310;;1884:2;1869:18;1856:32;;1254:640;-1:-1:-1;;;;1254:640:310:o;1899:1569::-;2103:4;2132:2;2172;2161:9;2157:18;2202:2;2191:9;2184:21;2225:6;2260;2254:13;2291:6;2283;2276:22;2317:2;2307:12;;2350:2;2339:9;2335:18;2328:25;;2412:2;2402:6;2399:1;2395:14;2384:9;2380:30;2376:39;2450:2;2442:6;2438:15;2471:1;2492;2502:937;2518:6;2513:3;2510:15;2502:937;;;2587:22;;;-1:-1:-1;;2583:36:310;2571:49;;2643:13;;2730:9;;-1:-1:-1;;;;;2726:35:310;2711:51;;2801:11;;2795:18;2833:15;;;2826:27;;;2914:19;;2683:15;;;2946:24;;;3036:21;;;;3081:1;;3004:2;2992:15;;;3095:236;3111:8;3106:3;3103:17;3095:236;;;3192:15;;-1:-1:-1;;;;;;3188:42:310;3174:57;;3300:17;;;;3139:1;3130:11;;;;;3257:14;;;;3095:236;;;-1:-1:-1;3417:12:310;;;;3354:5;-1:-1:-1;;;3382:15:310;;;;2544:1;2535:11;2502:937;;;-1:-1:-1;3456:6:310;;1899:1569;-1:-1:-1;;;;;;;;;1899:1569:310:o;3473:572::-;3568:6;3576;3584;3637:2;3625:9;3616:7;3612:23;3608:32;3605:52;;;3653:1;3650;3643:12;3605:52;3692:9;3679:23;3711:31;3736:5;3711:31;:::i;:::-;3761:5;-1:-1:-1;3817:2:310;3802:18;;3789:32;3844:18;3833:30;;3830:50;;;3876:1;3873;3866:12;3830:50;3915:70;3977:7;3968:6;3957:9;3953:22;3915:70;:::i;:::-;3473:572;;4004:8;;-1:-1:-1;3889:96:310;;-1:-1:-1;;;;3473:572:310:o;4050:159::-;4144:6;4177:2;4165:15;;4162:24;-1:-1:-1;4159:44:310;;;4199:1;4196;4189:12;4159:44;4050:159;;;;:::o;4214:696::-;4343:6;4351;4359;4367;4420:3;4408:9;4399:7;4395:23;4391:33;4388:53;;;4437:1;4434;4427:12;4388:53;4476:9;4463:23;4495:31;4520:5;4495:31;:::i;:::-;4545:5;-1:-1:-1;4601:2:310;4586:18;;4573:32;4628:18;4617:30;;4614:50;;;4660:1;4657;4650:12;4614:50;4699:70;4761:7;4752:6;4741:9;4737:22;4699:70;:::i;:::-;4788:8;;-1:-1:-1;4673:96:310;-1:-1:-1;4842:62:310;;-1:-1:-1;4896:7:310;4891:2;4876:18;;4842:62;:::i;:::-;4832:72;;4214:696;;;;;;;:::o;4915:250::-;5000:1;5010:113;5024:6;5021:1;5018:13;5010:113;;;5100:11;;;5094:18;5081:11;;;5074:39;5046:2;5039:10;5010:113;;;-1:-1:-1;;5157:1:310;5139:16;;5132:27;4915:250::o;5170:271::-;5212:3;5250:5;5244:12;5277:6;5272:3;5265:19;5293:76;5362:6;5355:4;5350:3;5346:14;5339:4;5332:5;5328:16;5293:76;:::i;:::-;5423:2;5402:15;-1:-1:-1;;5398:29:310;5389:39;;;;5430:4;5385:50;;5170:271;-1:-1:-1;;5170:271:310:o;5446:803::-;5608:4;5637:2;5677;5666:9;5662:18;5707:2;5696:9;5689:21;5730:6;5765;5759:13;5796:6;5788;5781:22;5834:2;5823:9;5819:18;5812:25;;5896:2;5886:6;5883:1;5879:14;5868:9;5864:30;5860:39;5846:53;;5934:2;5926:6;5922:15;5955:1;5965:255;5979:6;5976:1;5973:13;5965:255;;;6072:2;6068:7;6056:9;6048:6;6044:22;6040:36;6035:3;6028:49;6100:40;6133:6;6124;6118:13;6100:40;:::i;:::-;6090:50;-1:-1:-1;6198:12:310;;;;6163:15;;;;6001:1;5994:9;5965:255;;;-1:-1:-1;6237:6:310;;5446:803;-1:-1:-1;;;;;;;5446:803:310:o;6446:483::-;6598:6;6606;6614;6667:3;6655:9;6646:7;6642:23;6638:33;6635:53;;;6684:1;6681;6674:12;6635:53;6707;6752:7;6741:9;6707:53;:::i;:::-;6697:63;;6779:62;6833:7;6828:2;6817:9;6813:18;6779:62;:::i;:::-;6769:72;;6860:63;6915:7;6909:3;6898:9;6894:19;6860:63;:::i;:::-;6850:73;;6446:483;;;;;:::o;6934:641::-;7201:2;7190:9;7183:21;7164:4;7227:56;7279:2;7268:9;7264:18;7256:6;7227:56;:::i;:::-;7319:22;;;7314:2;7299:18;;7292:50;7351:22;;;-1:-1:-1;;;;;7385:31:310;;7382:51;;;7429:1;7426;7419:12;7382:51;7463:6;7460:1;7456:14;7517:6;7509;7504:2;7496:6;7492:15;7479:45;7545:19;7566:2;7541:28;;6934:641;-1:-1:-1;;;;;6934:641:310:o;7580:184::-;7650:6;7703:2;7691:9;7682:7;7678:23;7674:32;7671:52;;;7719:1;7716;7709:12;7671:52;-1:-1:-1;7742:16:310;;7580:184;-1:-1:-1;7580:184:310:o;7769:127::-;7830:10;7825:3;7821:20;7818:1;7811:31;7861:4;7858:1;7851:15;7885:4;7882:1;7875:15;7901:128;7968:9;;;7989:11;;;7986:37;;;8003:18;;:::i;8424:251::-;8494:6;8547:2;8535:9;8526:7;8522:23;8518:32;8515:52;;;8563:1;8560;8553:12;8515:52;8595:9;8589:16;8614:31;8639:5;8614:31;:::i;8680:127::-;8741:10;8736:3;8732:20;8729:1;8722:31;8772:4;8769:1;8762:15;8796:4;8793:1;8786:15;8812:380;8891:1;8887:12;;;;8934;;;8955:61;;9009:4;9001:6;8997:17;8987:27;;8955:61;9062:2;9054:6;9051:14;9031:18;9028:38;9025:161;;9108:10;9103:3;9099:20;9096:1;9089:31;9143:4;9140:1;9133:15;9171:4;9168:1;9161:15;9025:161;;8812:380;;;:::o;9476:384::-;-1:-1:-1;;;;;;9661:33:310;;9649:46;;9718:13;;9631:3;;9740:74;9718:13;9803:1;9794:11;;9787:4;9775:17;;9740:74;:::i;:::-;9834:16;;;;9852:1;9830:24;;9476:384;-1:-1:-1;;;9476:384:310:o;9865:287::-;9994:3;10032:6;10026:13;10048:66;10107:6;10102:3;10095:4;10087:6;10083:17;10048:66;:::i;:::-;10130:16;;;;;9865:287;-1:-1:-1;;9865:287:310:o;10157:277::-;10224:6;10277:2;10265:9;10256:7;10252:23;10248:32;10245:52;;;10293:1;10290;10283:12;10245:52;10325:9;10319:16;10378:5;10371:13;10364:21;10357:5;10354:32;10344:60;;10400:1;10397;10390:12;10439:247;10498:6;10551:2;10539:9;10530:7;10526:23;10522:32;10519:52;;;10567:1;10564;10557:12;10519:52;10606:9;10593:23;10625:31;10650:5;10625:31;:::i;10823:804::-;11080:2;11069:9;11062:21;11043:4;11106:56;11158:2;11147:9;11143:18;11135:6;11106:56;:::i;:::-;11219:22;;;11181:2;11199:18;;;11192:50;;;;11291:13;;11313:22;;;11389:15;;;;11351;;;11422:1;11432:169;11446:6;11443:1;11440:13;11432:169;;;11507:13;;11495:26;;11576:15;;;;11541:12;;;;11468:1;11461:9;11432:169;;;-1:-1:-1;11618:3:310;;10823:804;-1:-1:-1;;;;;;;10823:804:310:o;11632:125::-;11697:9;;;11718:10;;;11715:36;;;11731:18;;:::i;12709:348::-;12939:2;12928:9;12921:21;12902:4;12959:49;13004:2;12993:9;12989:18;12622:2;12610:15;;-1:-1:-1;;;12650:4:310;12641:14;;12634:36;12695:2;12686:12;;12545:159;12959:49;12951:57;;13044:6;13039:2;13028:9;13024:18;13017:34;12709:348;;;;:::o;13226:::-;13456:2;13445:9;13438:21;13419:4;13476:49;13521:2;13510:9;13506:18;13139:2;13127:15;;-1:-1:-1;;;13167:4:310;13158:14;;13151:36;13212:2;13203:12;;13062:159;13985:374;14215:2;14204:9;14197:21;14178:4;14235:49;14280:2;14269:9;14265:18;12622:2;12610:15;;-1:-1:-1;;;12650:4:310;12641:14;;12634:36;12695:2;12686:12;;12545:159;14235:49;-1:-1:-1;;;;;14320:32:310;;;;14315:2;14300:18;;;;14293:60;;;;-1:-1:-1;14227:57:310;13985:374::o;14364:::-;14594:2;14583:9;14576:21;14557:4;14614:49;14659:2;14648:9;14644:18;13139:2;13127:15;;-1:-1:-1;;;13167:4:310;13158:14;;13151:36;13212:2;13203:12;;13062:159;15174:209;15206:1;15232;15222:132;;15276:10;15271:3;15267:20;15264:1;15257:31;15311:4;15308:1;15301:15;15339:4;15336:1;15329:15;15222:132;-1:-1:-1;15368:9:310;;15174:209::o;15388:291::-;15565:2;15554:9;15547:21;15528:4;15585:45;15626:2;15615:9;15611:18;15603:6;15585:45;:::i;:::-;15577:53;;15666:6;15661:2;15650:9;15646:18;15639:34;15388:291;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","test_balance(address,uint256[])":"70ba76e3","test_burn(address,uint256[],uint256)":"267d01ba","test_ownership(address,uint256[],uint256[2])":"7632cc59","test_transfer(address[2],uint256[2],uint256[2])":"d4b38efc"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"batches\",\"type\":\"uint256[]\"}],\"name\":\"test_balance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"batches\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"unboundedTokenId\",\"type\":\"uint256\"}],\"name\":\"test_burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"batches\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[2]\",\"name\":\"unboundedTokenId\",\"type\":\"uint256[2]\"}],\"name\":\"test_ownership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[2]\",\"name\":\"accounts\",\"type\":\"address[2]\"},{\"internalType\":\"uint256[2]\",\"name\":\"unboundedBatches\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[2]\",\"name\":\"unboundedTokenId\",\"type\":\"uint256[2]\"}],\"name\":\"test_transfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Consecutive.t.sol\":\"ERC721ConsecutiveTest\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC2309.sol\":{\"keccak256\":\"0x769b8c97e7ceca35514f85dcf77ea7e9da1c9a3b3b9c119dda811cd8394aa601\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://113df79cc1cae24c055be91b41febfa2dbb28089c969547f7ca3ca5d23d308f6\",\"dweb:/ipfs/QmTwrtF69W9G3t9VbUjF6P1m6jNW4dh6y3kE5vQqUdsSnr\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x2c309e7df9e05e6ce15bedfe74f3c61b467fc37e0fae9eab496acf5ea0bbd7ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7063b5c98711a98018ba4635ac74cee1c1cfa2ea01099498e062699ed9530005\",\"dweb:/ipfs/QmeJ8rGXkcv7RrqLdAW8PCXPAykxVsddfYY6g5NaTwmRFE\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5bce51e11f7d194b79ea59fe00c9e8de9fa2c5530124960f29a24d4c740a3266\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e66dfde185df46104c11bc89d08fa0760737aa59a2b8546a656473d810a8ea4\",\"dweb:/ipfs/QmXvyqtXPaPss2PD7eqPoSao5Szm2n6UMoiG8TZZDjmChR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Consecutive.sol\":{\"keccak256\":\"0xf0a85be34cb519afb99f153c45c905fbae17fa93c798d5d7ea08a0e98f20ac1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a83c25f8c1d4f727d993157e034c01e8ca68451033e0e75d8d3545f87fea678\",\"dweb:/ipfs/QmbegJMFm6kva4BaHGUv1E4URTo57S1yf7ZimNeDqCntaF\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"lib/openzeppelin-contracts/contracts/utils/Checkpoints.sol\":{\"keccak256\":\"0x3f12d280f57c96b4449de1a4e07f5ca737cac310489b7f269ce37e8f1b24fd79\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8990f3cc807ac6be85fdd6935b16135b315b5ab5b8951b1f5a188596f7efd2e7\",\"dweb:/ipfs/QmdQmbWKpaAWpvLBTQfFWGKjm8xjncwEcNyRQ5M61sFaLE\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c\",\"dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x52a8cfb0f5239d11b457dcdd1b326992ef672714ca8da71a157255bddd13f3ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://495145362c7ff1c9ca88c58bbbbcb412e3c2004406647412394486552ff6c278\",\"dweb:/ipfs/QmNNCeng6d5eRPDn6tkWSQhjE39XWfQEfjA63rRwHmr1iH\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/BitMaps.sol\":{\"keccak256\":\"0xac946730f979a447732a5bed58aa30c995ae666c3e1663b312ab5fd11dbe3eb6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4f6d9467f83ad116296f5d3f16734fa997cf333a6bc57b494b9d4771e7618fa6\",\"dweb:/ipfs/QmS5T3j2ijQQXv9QtQGMngekqdSRJSad4VEyeszRwDurMS\"]},\"lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0x4c1915908e867ed8ed9fe731dff0e1d4980f5a11a1fd1894f2800b2ae2070154\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://c9d7f9295364406115e820a14be670e54603f00fc9474093613409743db53749\",\"dweb:/ipfs/QmNjUUo9DK6xnfLjXYPc3qUznJv2PmSbaEXZCyyGRf5v5V\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363\",\"dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0xdb05fd11858f232b8b5c6c9175229bdd061c277c34f13b0bdc64d333bcbd2617\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08ae865564d9c1fa1012b61db77a2da2844ac1ae0a216b16c9fe9ab65ddf80af\",\"dweb:/ipfs/QmfFfmkjb2Qfc5dPJvwQgjTMbeQ12dTPFeAQ8Gb944U44g\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x097b75f7171af89f433407e040d11b22fc26e2fe03793c2cfe18cad390d7af8b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19d1dca7b398e517499ffa65ad44df69cdd016f37dc57e2d07d50279d3ddee17\",\"dweb:/ipfs/QmfMFR25367GB5PoBi1KZxWs1hZcJtC3eANiioG3dKj8ah\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xa9a389ae870e108986d72d760a792d011516a7091ab48da20a5982f8ae2e2575\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6de722b90ec6b39fe65e121db1735234c8a123fd7bee0ed5daa646b0e6e14a5\",\"dweb:/ipfs/QmQfrW7sP3snKdoxtEVWh5CAxApwhBs6uLvDhiJLTza1Lp\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477\",\"dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c\",\"dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5\",\"dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985\",\"dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x6584855fecbe5b6a9f8ebdb26b37c58532c5bc5cc6e1737dfa7c8a045087be55\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40a35a4d292b4fed02e11d5f25fb474f10a7c4eb99f75b5383dc23fcb6e55d3c\",\"dweb:/ipfs/QmYZ2nz1EmNh4xLWf4YybZoa1Da1z3Wq3w4pneMhkouMi4\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf\",\"dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x4ba6040f75ea4425c4cf5f77a8ea99f3a7a0fcb5bf13d0186d0952cf505b8203\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://363bd98c4de695b34709e318213b2955d8a493d0249857701c05966c81341b10\",\"dweb:/ipfs/QmdtS71RFemQhq8WYT3WP5UQ4FAsCnaw2JbiPJ3vTUYYRu\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Consecutive.t.sol\":{\"keccak256\":\"0xfb0cd89397fbd6740c3e3d07fa229994c516f79df3695c404ed8c07db50476cd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eabd9eebaa76a0b9556e92bb15dba1d941de3a0da6a223ea587342771b3257d5\",\"dweb:/ipfs/QmeJoLrsaiVQ5TEQrwqxwicvV8AanygaUWMKwknWDVGnf6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]},{"inputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256[]","name":"batches","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"test_balance"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256[]","name":"batches","type":"uint256[]"},{"internalType":"uint256","name":"unboundedTokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"test_burn"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256[]","name":"batches","type":"uint256[]"},{"internalType":"uint256[2]","name":"unboundedTokenId","type":"uint256[2]"}],"stateMutability":"nonpayable","type":"function","name":"test_ownership"},{"inputs":[{"internalType":"address[2]","name":"accounts","type":"address[2]"},{"internalType":"uint256[2]","name":"unboundedBatches","type":"uint256[2]"},{"internalType":"uint256[2]","name":"unboundedTokenId","type":"uint256[2]"}],"stateMutability":"nonpayable","type":"function","name":"test_transfer"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Consecutive.t.sol":"ERC721ConsecutiveTest"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC2309.sol":{"keccak256":"0x769b8c97e7ceca35514f85dcf77ea7e9da1c9a3b3b9c119dda811cd8394aa601","urls":["bzz-raw://113df79cc1cae24c055be91b41febfa2dbb28089c969547f7ca3ca5d23d308f6","dweb:/ipfs/QmTwrtF69W9G3t9VbUjF6P1m6jNW4dh6y3kE5vQqUdsSnr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol":{"keccak256":"0x2c309e7df9e05e6ce15bedfe74f3c61b467fc37e0fae9eab496acf5ea0bbd7ff","urls":["bzz-raw://7063b5c98711a98018ba4635ac74cee1c1cfa2ea01099498e062699ed9530005","dweb:/ipfs/QmeJ8rGXkcv7RrqLdAW8PCXPAykxVsddfYY6g5NaTwmRFE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5bce51e11f7d194b79ea59fe00c9e8de9fa2c5530124960f29a24d4c740a3266","urls":["bzz-raw://7e66dfde185df46104c11bc89d08fa0760737aa59a2b8546a656473d810a8ea4","dweb:/ipfs/QmXvyqtXPaPss2PD7eqPoSao5Szm2n6UMoiG8TZZDjmChR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da","urls":["bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708","dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Consecutive.sol":{"keccak256":"0xf0a85be34cb519afb99f153c45c905fbae17fa93c798d5d7ea08a0e98f20ac1c","urls":["bzz-raw://4a83c25f8c1d4f727d993157e034c01e8ca68451033e0e75d8d3545f87fea678","dweb:/ipfs/QmbegJMFm6kva4BaHGUv1E4URTo57S1yf7ZimNeDqCntaF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9","urls":["bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146","dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Checkpoints.sol":{"keccak256":"0x3f12d280f57c96b4449de1a4e07f5ca737cac310489b7f269ce37e8f1b24fd79","urls":["bzz-raw://8990f3cc807ac6be85fdd6935b16135b315b5ab5b8951b1f5a188596f7efd2e7","dweb:/ipfs/QmdQmbWKpaAWpvLBTQfFWGKjm8xjncwEcNyRQ5M61sFaLE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439","urls":["bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c","dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0","urls":["bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f","dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3","urls":["bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c","dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x52a8cfb0f5239d11b457dcdd1b326992ef672714ca8da71a157255bddd13f3ad","urls":["bzz-raw://495145362c7ff1c9ca88c58bbbbcb412e3c2004406647412394486552ff6c278","dweb:/ipfs/QmNNCeng6d5eRPDn6tkWSQhjE39XWfQEfjA63rRwHmr1iH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc","urls":["bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7","dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/BitMaps.sol":{"keccak256":"0xac946730f979a447732a5bed58aa30c995ae666c3e1663b312ab5fd11dbe3eb6","urls":["bzz-raw://4f6d9467f83ad116296f5d3f16734fa997cf333a6bc57b494b9d4771e7618fa6","dweb:/ipfs/QmS5T3j2ijQQXv9QtQGMngekqdSRJSad4VEyeszRwDurMS"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0x4c1915908e867ed8ed9fe731dff0e1d4980f5a11a1fd1894f2800b2ae2070154","urls":["bzz-raw://c9d7f9295364406115e820a14be670e54603f00fc9474093613409743db53749","dweb:/ipfs/QmNjUUo9DK6xnfLjXYPc3qUznJv2PmSbaEXZCyyGRf5v5V"],"license":"GPL-3.0-or-later"},"lib/openzeppelin-contracts/lib/forge-std/src/Base.sol":{"keccak256":"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27","urls":["bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363","dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdAssertions.sol":{"keccak256":"0xdb05fd11858f232b8b5c6c9175229bdd061c277c34f13b0bdc64d333bcbd2617","urls":["bzz-raw://08ae865564d9c1fa1012b61db77a2da2844ac1ae0a216b16c9fe9ab65ddf80af","dweb:/ipfs/QmfFfmkjb2Qfc5dPJvwQgjTMbeQ12dTPFeAQ8Gb944U44g"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdChains.sol":{"keccak256":"0x097b75f7171af89f433407e040d11b22fc26e2fe03793c2cfe18cad390d7af8b","urls":["bzz-raw://19d1dca7b398e517499ffa65ad44df69cdd016f37dc57e2d07d50279d3ddee17","dweb:/ipfs/QmfMFR25367GB5PoBi1KZxWs1hZcJtC3eANiioG3dKj8ah"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdCheats.sol":{"keccak256":"0xa9a389ae870e108986d72d760a792d011516a7091ab48da20a5982f8ae2e2575","urls":["bzz-raw://d6de722b90ec6b39fe65e121db1735234c8a123fd7bee0ed5daa646b0e6e14a5","dweb:/ipfs/QmQfrW7sP3snKdoxtEVWh5CAxApwhBs6uLvDhiJLTza1Lp"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdInvariant.sol":{"keccak256":"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c","urls":["bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477","dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdJson.sol":{"keccak256":"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b","urls":["bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c","dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673","urls":["bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5","dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdStyle.sol":{"keccak256":"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337","urls":["bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985","dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdUtils.sol":{"keccak256":"0x6584855fecbe5b6a9f8ebdb26b37c58532c5bc5cc6e1737dfa7c8a045087be55","urls":["bzz-raw://40a35a4d292b4fed02e11d5f25fb474f10a7c4eb99f75b5383dc23fcb6e55d3c","dweb:/ipfs/QmYZ2nz1EmNh4xLWf4YybZoa1Da1z3Wq3w4pneMhkouMi4"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/Test.sol":{"keccak256":"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945","urls":["bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf","dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol":{"keccak256":"0x4ba6040f75ea4425c4cf5f77a8ea99f3a7a0fcb5bf13d0186d0952cf505b8203","urls":["bzz-raw://363bd98c4de695b34709e318213b2955d8a493d0249857701c05966c81341b10","dweb:/ipfs/QmdtS71RFemQhq8WYT3WP5UQ4FAsCnaw2JbiPJ3vTUYYRu"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Consecutive.t.sol":{"keccak256":"0xfb0cd89397fbd6740c3e3d07fa229994c516f79df3695c404ed8c07db50476cd","urls":["bzz-raw://eabd9eebaa76a0b9556e92bb15dba1d941de3a0da6a223ea587342771b3257d5","dweb:/ipfs/QmeJoLrsaiVQ5TEQrwqxwicvV8AanygaUWMKwknWDVGnf6"],"license":"MIT"}},"version":1},"id":306}
|