From 0e733c7476c1c45b35ce29fc8e8bb3cff7f12bdb Mon Sep 17 00:00:00 2001 From: marcuspang Date: Fri, 6 Oct 2023 01:34:41 +0200 Subject: [PATCH] fix: deploy dev script --- .openzeppelin/optimism-goerli.json | 366 ++ .../src/Beliefs/Beliefs.sol/Beliefs.dbg.json | 2 +- .../src/Beliefs/Beliefs.sol/Beliefs.json | 26 +- .../LibBeliefs.sol/LibBeliefs.dbg.json | 2 +- .../Beliefs/LibBeliefs.sol/LibBeliefs.json | 4 +- .../Editions/Editions.sol/Editions.dbg.json | 2 +- .../src/Editions/Editions.sol/Editions.json | 23 +- .../RadarEditions.sol/RadarEditions.dbg.json | 2 +- .../src/RadarEditions.sol/RadarEditions.json | 26 +- cache_hardhat/solidity-files-cache.json | 14 +- cache_hardhat/validations.json | 5288 +++++++++++++++++ script/upgradeDev.ts | 12 +- src/Beliefs/Beliefs.sol | 4 +- 13 files changed, 5682 insertions(+), 89 deletions(-) diff --git a/.openzeppelin/optimism-goerli.json b/.openzeppelin/optimism-goerli.json index 5b77cee..200b1ee 100644 --- a/.openzeppelin/optimism-goerli.json +++ b/.openzeppelin/optimism-goerli.json @@ -10206,6 +10206,372 @@ } } } + }, + "2c27507075b584c3b7be8011c82f4181fe00c6ae897be80d9d08114e24fd2c5f": { + "address": "0xF531C48a210befF1273E4bd97b6D0A74f4a78a5f", + "txHash": "0xe24a7b04ee77430c5a3e07723b50fe82d6d026e61470d1215bce97cf32c7dc71", + "layout": { + "solcVersion": "0.8.19", + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:36" + }, + { + "label": "__gap", + "offset": 0, + "slot": "51", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC165Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol:41" + }, + { + "label": "_balances", + "offset": 0, + "slot": "101", + "type": "t_mapping(t_uint256,t_mapping(t_address,t_uint256))", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:25" + }, + { + "label": "_operatorApprovals", + "offset": 0, + "slot": "102", + "type": "t_mapping(t_address,t_mapping(t_address,t_bool))", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:28" + }, + { + "label": "_uri", + "offset": 0, + "slot": "103", + "type": "t_string_storage", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:31" + }, + { + "label": "__gap", + "offset": 0, + "slot": "104", + "type": "t_array(t_uint256)47_storage", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:508" + }, + { + "label": "_roles", + "offset": 0, + "slot": "151", + "type": "t_mapping(t_bytes32,t_struct(RoleData)34_storage)", + "contract": "AccessControlUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol:62" + }, + { + "label": "__gap", + "offset": 0, + "slot": "152", + "type": "t_array(t_uint256)49_storage", + "contract": "AccessControlUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol:260" + }, + { + "label": "_paused", + "offset": 0, + "slot": "201", + "type": "t_bool", + "contract": "PausableUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/security/PausableUpgradeable.sol:29" + }, + { + "label": "__gap", + "offset": 0, + "slot": "202", + "type": "t_array(t_uint256)49_storage", + "contract": "PausableUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/security/PausableUpgradeable.sol:116" + }, + { + "label": "__gap", + "offset": 0, + "slot": "251", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC1155BurnableUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155BurnableUpgradeable.sol:44" + }, + { + "label": "_totalSupply", + "offset": 0, + "slot": "301", + "type": "t_mapping(t_uint256,t_uint256)", + "contract": "ERC1155SupplyUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155SupplyUpgradeable.sol:23" + }, + { + "label": "__gap", + "offset": 0, + "slot": "302", + "type": "t_array(t_uint256)49_storage", + "contract": "ERC1155SupplyUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155SupplyUpgradeable.sol:76" + }, + { + "label": "__gap", + "offset": 0, + "slot": "351", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC1967UpgradeUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol:169" + }, + { + "label": "__gap", + "offset": 0, + "slot": "401", + "type": "t_array(t_uint256)50_storage", + "contract": "UUPSUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol:111" + }, + { + "label": "protocolFee", + "offset": 0, + "slot": "451", + "type": "t_uint256", + "contract": "Editions", + "src": "src/Editions/Editions.sol:31" + }, + { + "label": "editions", + "offset": 0, + "slot": "452", + "type": "t_mapping(t_uint256,t_struct(Edition)7150_storage)", + "contract": "Editions", + "src": "src/Editions/Editions.sol:33" + }, + { + "label": "editionCounter", + "offset": 0, + "slot": "453", + "type": "t_uint256", + "contract": "Editions", + "src": "src/Editions/Editions.sol:35" + }, + { + "label": "maximumEditionFee", + "offset": 0, + "slot": "454", + "type": "t_uint256", + "contract": "Editions", + "src": "src/Editions/Editions.sol:37" + }, + { + "label": "_beliefs", + "offset": 0, + "slot": "455", + "type": "t_mapping(t_address,t_struct(BitMap)5840_storage)", + "contract": "Beliefs", + "src": "src/Beliefs/Beliefs.sol:14" + }, + { + "label": "_believers", + "offset": 0, + "slot": "456", + "type": "t_array(t_address)dyn_storage", + "contract": "Beliefs", + "src": "src/Beliefs/Beliefs.sol:16" + }, + { + "label": "balances", + "offset": 0, + "slot": "457", + "type": "t_mapping(t_address,t_uint256)", + "contract": "Beliefs", + "src": "src/Beliefs/Beliefs.sol:18" + }, + { + "label": "futureFundFee", + "offset": 0, + "slot": "458", + "type": "t_uint256", + "contract": "Beliefs", + "src": "src/Beliefs/Beliefs.sol:20" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_address)dyn_storage": { + "label": "address[]", + "numberOfBytes": "32" + }, + "t_array(t_uint256)47_storage": { + "label": "uint256[47]", + "numberOfBytes": "1504" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_enum(EditionStatus)7136": { + "label": "enum EditionsStructs.EditionStatus", + "members": [ + "NotCreated", + "Created", + "Launched", + "Stopped" + ], + "numberOfBytes": "1" + }, + "t_mapping(t_address,t_bool)": { + "label": "mapping(address => bool)", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_mapping(t_address,t_bool))": { + "label": "mapping(address => mapping(address => bool))", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_struct(BitMap)5840_storage)": { + "label": "mapping(address => struct BitMaps.BitMap)", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_uint256)": { + "label": "mapping(address => uint256)", + "numberOfBytes": "32" + }, + "t_mapping(t_bytes32,t_struct(RoleData)34_storage)": { + "label": "mapping(bytes32 => struct AccessControlUpgradeable.RoleData)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_mapping(t_address,t_uint256))": { + "label": "mapping(uint256 => mapping(address => uint256))", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_struct(Edition)7150_storage)": { + "label": "mapping(uint256 => struct EditionsStructs.Edition)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_uint256)": { + "label": "mapping(uint256 => uint256)", + "numberOfBytes": "32" + }, + "t_string_storage": { + "label": "string", + "numberOfBytes": "32" + }, + "t_struct(BitMap)5840_storage": { + "label": "struct BitMaps.BitMap", + "members": [ + { + "label": "_data", + "type": "t_mapping(t_uint256,t_uint256)", + "offset": 0, + "slot": "0" + } + ], + "numberOfBytes": "32" + }, + "t_struct(Edition)7150_storage": { + "label": "struct EditionsStructs.Edition", + "members": [ + { + "label": "status", + "type": "t_enum(EditionStatus)7136", + "offset": 0, + "slot": "0" + }, + { + "label": "fee", + "type": "t_uint256", + "offset": 0, + "slot": "1" + }, + { + "label": "balance", + "type": "t_uint256", + "offset": 0, + "slot": "2" + }, + { + "label": "owner", + "type": "t_address", + "offset": 0, + "slot": "3" + }, + { + "label": "id", + "type": "t_string_storage", + "offset": 0, + "slot": "4" + }, + { + "label": "briefId", + "type": "t_string_storage", + "offset": 0, + "slot": "5" + } + ], + "numberOfBytes": "192" + }, + "t_struct(RoleData)34_storage": { + "label": "struct AccessControlUpgradeable.RoleData", + "members": [ + { + "label": "members", + "type": "t_mapping(t_address,t_bool)", + "offset": 0, + "slot": "0" + }, + { + "label": "adminRole", + "type": "t_bytes32", + "offset": 0, + "slot": "1" + } + ], + "numberOfBytes": "64" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + } + } } } } diff --git a/artifacts/src/Beliefs/Beliefs.sol/Beliefs.dbg.json b/artifacts/src/Beliefs/Beliefs.sol/Beliefs.dbg.json index eb80803..faf8806 100644 --- a/artifacts/src/Beliefs/Beliefs.sol/Beliefs.dbg.json +++ b/artifacts/src/Beliefs/Beliefs.sol/Beliefs.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/2ed725b1f2c7d633afb5e330c951db15.json" + "buildInfo": "../../../build-info/171ad7c7ebd2434e305e5be3a45f38c2.json" } diff --git a/artifacts/src/Beliefs/Beliefs.sol/Beliefs.json b/artifacts/src/Beliefs/Beliefs.sol/Beliefs.json index 909a9f4..5c35347 100644 --- a/artifacts/src/Beliefs/Beliefs.sol/Beliefs.json +++ b/artifacts/src/Beliefs/Beliefs.sol/Beliefs.json @@ -1326,26 +1326,8 @@ "type": "receive" } ], - "bytecode": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000e7565b600054610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000e5576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6080516145f76200011f60003960008181610d4601528181610d8601528181610f8001528181610fc0015261104f01526145f76000f3fe6080604052600436106102475760003560e01c8063790bafc611610138578063c6fbb712116100b0578063e43990fe11610077578063e43990fe14610700578063e985e9c514610720578063f242432a14610769578063f5298aca14610789578063f8c1b2fd146107a9578063fc74efa2146107c957005b8063c6fbb7121461065a578063c84aae1714610671578063d547741f1461069e578063d667c9ce146106be578063df6efc6c146106de57005b8063a217fddf116100ff578063a217fddf146105a9578063a22cb465146105be578063b0e21e8a146105de578063b3a44bd6146105f5578063b94967a414610615578063bd85b0391461062c57005b8063790bafc6146105395780638129fc1c1461054c5780638456cb591461056157806391d1485414610576578063940123da1461059657005b806336568abe116101cb5780634f558e79116101925780634f558e791461048557806352d1902d146104b55780635c975abb146104ca5780636b20c454146104e25780636b5cb789146105025780637357628c1461051957005b806336568abe146103f05780633659cfe6146104105780633f4ba83a146104305780634e1273f4146104455780634f1ef2861461047257005b8063248a9ca31161020f578063248a9ca314610320578063279c806e1461035057806327e235e3146103825780632eb2c2d6146103b05780632f2ff15d146103d057005b8062fdd58e1461025057806301ffc9a7146102835780630a579eca146102b35780630e89341c146102d3578063155dd5ee1461030057005b3661024e57005b005b34801561025c57600080fd5b5061027061026b366004613551565b6107e9565b6040519081526020015b60405180910390f35b34801561028f57600080fd5b506102a361029e366004613591565b610884565b604051901515815260200161027a565b3480156102bf57600080fd5b5061024e6102ce3660046135ae565b61088f565b3480156102df57600080fd5b506102f36102ee3660046135ae565b610971565b60405161027a9190613617565b34801561030c57600080fd5b5061024e61031b3660046135ae565b610a05565b34801561032c57600080fd5b5061027061033b3660046135ae565b60009081526097602052604090206001015490565b34801561035c57600080fd5b5061037061036b3660046135ae565b610b02565b60405161027a96959493929190613662565b34801561038e57600080fd5b5061027061039d3660046136bb565b6101c76020526000908152604090205481565b3480156103bc57600080fd5b5061024e6103cb36600461381f565b610c58565b3480156103dc57600080fd5b5061024e6103eb3660046138c8565b610ca4565b3480156103fc57600080fd5b5061024e61040b3660046138c8565b610cbe565b34801561041c57600080fd5b5061024e61042b3660046136bb565b610d3c565b34801561043c57600080fd5b5061024e610e1b565b34801561045157600080fd5b506104656104603660046138f4565b610e4d565b60405161027a91906139f9565b61024e610480366004613a0c565b610f76565b34801561049157600080fd5b506102a36104a03660046135ae565b600090815261012d6020526040902054151590565b3480156104c157600080fd5b50610270611042565b3480156104d657600080fd5b5060c95460ff166102a3565b3480156104ee57600080fd5b5061024e6104fd366004613a4f565b6110f6565b34801561050e57600080fd5b506102706101c65481565b34801561052557600080fd5b5061024e6105343660046135ae565b611139565b61024e610547366004613ac2565b6111da565b34801561055857600080fd5b5061024e611417565b34801561056d57600080fd5b5061024e6115e2565b34801561058257600080fd5b506102a36105913660046138c8565b611614565b61024e6105a4366004613af2565b61163f565b3480156105b557600080fd5b50610270600081565b3480156105ca57600080fd5b5061024e6105d9366004613b52565b61172c565b3480156105ea57600080fd5b506102706101c35481565b34801561060157600080fd5b50610270610610366004613b8e565b611737565b34801561062157600080fd5b506102706101c85481565b34801561063857600080fd5b506102706106473660046135ae565b600090815261012d602052604090205490565b34801561066657600080fd5b506102706101c55481565b34801561067d57600080fd5b5061069161068c3660046136bb565b611891565b60405161027a9190613bec565b3480156106aa57600080fd5b5061024e6106b93660046138c8565b6119fb565b3480156106ca57600080fd5b5061024e6106d9366004613c62565b611a20565b3480156106ea57600080fd5b506106f3611b62565b60405161027a9190613c84565b34801561070c57600080fd5b5061024e61071b366004613d38565b611dd1565b34801561072c57600080fd5b506102a361073b366004613d9a565b6001600160a01b03918216600090815260666020908152604080832093909416825291909152205460ff1690565b34801561077557600080fd5b5061024e610784366004613dc4565b611e57565b34801561079557600080fd5b5061024e6107a4366004613e28565b611e9c565b3480156107b557600080fd5b5061024e6107c43660046135ae565b611edf565b3480156107d557600080fd5b5061024e6107e43660046135ae565b611f74565b60006001600160a01b0383166108595760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b60648201526084015b60405180910390fd5b5060008181526065602090815260408083206001600160a01b03861684529091529020545b92915050565b600061087e8261204f565b60008181526101c460205260409020600301546001600160a01b03163314806108be57506108be600033611614565b6108db5760405163388f811f60e01b815260040160405180910390fd5b600260008281526101c4602052604090205460ff1660038111156109015761090161362a565b1461091f57604051631f0fb6fd60e11b815260040160405180910390fd5b60008181526101c46020908152604091829020805460ff1916600317905590518281527f591913f977ab242c5871f116f36be231ff67df5e8e0bac1efd91fa8a723aca2b91015b60405180910390a150565b60606067805461098090613e5b565b80601f01602080910402602001604051908101604052809291908181526020018280546109ac90613e5b565b80156109f95780601f106109ce576101008083540402835291602001916109f9565b820191906000526020600020905b8154815290600101906020018083116109dc57829003601f168201915b50505050509050919050565b6000610a1081612074565b47821115610a3157604051631036b5ad60e31b815260040160405180910390fd5b4760005b6101c554811015610a925760008181526101c46020526040902060020154610a5d9083613ea5565b915083821015610a805760405163156bbc5b60e01b815260040160405180910390fd5b80610a8a81613eb8565b915050610a35565b50604051600090339085908381818185875af1925050503d8060008114610ad5576040519150601f19603f3d011682016040523d82523d6000602084013e610ada565b606091505b5050905080610afc576040516317f2c34560e31b815260040160405180910390fd5b50505050565b6101c4602052600090815260409020805460018201546002830154600384015460048501805460ff90951695939492936001600160a01b0390921692610b4790613e5b565b80601f0160208091040260200160405190810160405280929190818152602001828054610b7390613e5b565b8015610bc05780601f10610b9557610100808354040283529160200191610bc0565b820191906000526020600020905b815481529060010190602001808311610ba357829003601f168201915b505050505090806005018054610bd590613e5b565b80601f0160208091040260200160405190810160405280929190818152602001828054610c0190613e5b565b8015610c4e5780601f10610c2357610100808354040283529160200191610c4e565b820191906000526020600020905b815481529060010190602001808311610c3157829003601f168201915b5050505050905086565b6001600160a01b038516331480610c745750610c74853361073b565b610c905760405162461bcd60e51b815260040161085090613ed1565b610c9d858585858561207e565b5050505050565b6000610caf81612074565b610cb9838361222b565b505050565b6001600160a01b0381163314610d2e5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610850565b610d3882826122b1565b5050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610d845760405162461bcd60e51b815260040161085090613f1f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610dcd60008051602061457b833981519152546001600160a01b031690565b6001600160a01b031614610df35760405162461bcd60e51b815260040161085090613f6b565b610dfc81612318565b60408051600080825260208201909252610e1891839190612342565b50565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610e4581612074565b610e186124ad565b60608151835114610eb25760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b6064820152608401610850565b600083516001600160401b03811115610ecd57610ecd6136d6565b604051908082528060200260200182016040528015610ef6578160200160208202803683370190505b50905060005b8451811015610f6e57610f41858281518110610f1a57610f1a613fb7565b6020026020010151858381518110610f3457610f34613fb7565b60200260200101516107e9565b828281518110610f5357610f53613fb7565b6020908102919091010152610f6781613eb8565b9050610efc565b509392505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610fbe5760405162461bcd60e51b815260040161085090613f1f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661100760008051602061457b833981519152546001600160a01b031690565b6001600160a01b03161461102d5760405162461bcd60e51b815260040161085090613f6b565b61103682612318565b610d3882826001612342565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146110e25760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610850565b5060008051602061457b8339815191525b90565b6001600160a01b0383163314806111125750611112833361073b565b61112e5760405162461bcd60e51b815260040161085090613ed1565b610cb98383836124ff565b600061114481612074565b600160008381526101c4602052604090205460ff16600381111561116a5761116a61362a565b146111885760405163137c9c1f60e31b815260040160405180910390fd5b60008281526101c46020908152604091829020805460ff1916600217905590518381527f8f4352ac8b4aefdd2333162306bbe09dd4f4ff6661e89ccc4e4dcced8794e8f7910160405180910390a15050565b6101c8543410156111fe57604051631036b5ad60e31b815260040160405180910390fd5b600260008381526101c4602052604090205460ff1660038111156112245761122461362a565b1461124257604051631f0fb6fd60e11b815260040160405180910390fd5b6101c5546040516308fe3d0760e01b81523460048201526024810184905260448101919091526101c460648201526101c7608482015273__$49e18fe781110033976e5d9a79c457096c$__906308fe3d079060a40160006040518083038186803b1580156112af57600080fd5b505af41580156112c3573d6000803e3d6000fd5b505050506000805b6101ca5481101561135b57336001600160a01b03166101ca82815481106112f4576112f4613fb7565b6000918252602090912001546001600160a01b03160361134957336001600160a01b03166101ca828154811061132c5761132c613fb7565b6000918252602090912001546001600160a01b031614915061135b565b8061135381613eb8565b9150506112cb565b50806113a5576101ca80546001810182556000919091527f0faeda9012b7f59bd2a84ac2a33ead5fc9f720c38d8bbf90db1ac3c1518386eb0180546001600160a01b031916331790555b3360009081526101c960209081526040808320600887901c845290915290208054600160ff86161b179055336001600160a01b0316837f710e220a47c8d9e50587c80fe509f5e762149ef672440eff70798204dd70f5eb8460405161140a9190613617565b60405180910390a3505050565b600054610100900460ff16158080156114375750600054600160ff909116105b806114515750303b158015611451575060005460ff166001145b6114b45760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610850565b6000805460ff1916600117905580156114d7576000805461ff0019166101001790555b6114ef6040518060200160405280600081525061269e565b6114f76126ce565b6114ff6126f7565b6115076126ce565b61150f6126ce565b6115176126ce565b61152260003361222b565b61154c7f7804d923f43a17d325d77e781528e0793b2edd9890ab45fc64efd7b4b427744c3361222b565b6115767f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a3361222b565b6115a07f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e33361222b565b8015610e18576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610966565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61160c81612074565b610e18612726565b60009182526097602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600061164a81612074565b600260008681526101c4602052604090205460ff1660038111156116705761167061362a565b1461168e57604051631f0fb6fd60e11b815260040160405180910390fd5b6101c35460008681526101c4602052604090206001015485916116b091613fcd565b6116ba9190613fe0565b3410156116da57604051631036b5ad60e31b815260040160405180910390fd5b6116e683868685612763565b6101c3546116f49085613fe0565b6116fe9034613ea5565b60008681526101c4602052604081206002018054909190611720908490613fcd565b90915550505050505050565b610d38338383612888565b60006101c65486111561175d57604051630f0c4c5f60e41b815260040160405180910390fd5b506101c5546040805160c0810190915280600181526020808201899052600060408084018290526001600160a01b038a1660608501526080840188905260a09093018690528481526101c49091522081518154829060ff191660018360038111156117ca576117ca61362a565b0217905550602082015160018201556040820151600282015560608201516003820180546001600160a01b0319166001600160a01b039092169190911790556080820151600482019061181d908261403d565b5060a08201516005820190611832908261403d565b50506101c580549150600061184683613eb8565b91905055507f3deb71b5a6774038a220621d78241405004043d5a928de9c7956bcc5270416db8183888860405161188094939291906140fc565b60405180910390a195945050505050565b606060006101c5546001600160401b038111156118b0576118b06136d6565b6040519080825280602002602001820160405280156118f657816020015b6040805180820190915260608152600060208201528152602001906001900390816118ce5790505b50905060005b6101c5548110156119f45760405180604001604052806101c46000848152602001908152602001600020600401805461193490613e5b565b80601f016020809104026020016040519081016040528092919081815260200182805461196090613e5b565b80156119ad5780601f10611982576101008083540402835291602001916119ad565b820191906000526020600020905b81548152906001019060200180831161199057829003601f168201915b505050505081526020016119c186846107e9565b8152508282815181106119d6576119d6613fb7565b602002602001018190525080806119ec90613eb8565b9150506118fc565b5092915050565b600082815260976020526040902060010154611a1681612074565b610cb983836122b1565b60008281526101c460205260409020600301546001600160a01b03163314611a5b5760405163388f811f60e01b815260040160405180910390fd5b60008281526101c46020526040902060020154811115611a8e57604051637eafab7d60e01b815260040160405180910390fd5b604051600090339083908381818185875af1925050503d8060008114611ad0576040519150601f19603f3d011682016040523d82523d6000602084013e611ad5565b606091505b5050905080611af7576040516317f2c34560e31b815260040160405180910390fd5b60008381526101c4602052604081206002018054849290611b19908490613ea5565b90915550506040805184815260208101849052338183015290517ff1090e9d5138cd4909542e10e1da576730b07eb291a71a151e63160dde345b949181900360600190a1505050565b606060006101c5546001600160401b03811115611b8157611b816136d6565b604051908082528060200260200182016040528015611bf557816020015b611be26040805160c081019091528060008152602001600081526020016000815260200160006001600160a01b0316815260200160608152602001606081525090565b815260200190600190039081611b9f5790505b50905060005b6101c554811015611dcb5760008181526101c4602052604090819020815160c081019092528054829060ff166003811115611c3857611c3861362a565b6003811115611c4957611c4961362a565b8152600182015460208201526002820154604082015260038201546001600160a01b03166060820152600482018054608090920191611c8790613e5b565b80601f0160208091040260200160405190810160405280929190818152602001828054611cb390613e5b565b8015611d005780601f10611cd557610100808354040283529160200191611d00565b820191906000526020600020905b815481529060010190602001808311611ce357829003601f168201915b50505050508152602001600582018054611d1990613e5b565b80601f0160208091040260200160405190810160405280929190818152602001828054611d4590613e5b565b8015611d925780601f10611d6757610100808354040283529160200191611d92565b820191906000526020600020905b815481529060010190602001808311611d7557829003601f168201915b505050505081525050828281518110611dad57611dad613fb7565b60200260200101819052508080611dc390613eb8565b915050611bfb565b50919050565b6000611ddc81612074565b60008481526101c4602052604081205460ff166003811115611e0057611e0061362a565b03611e1e5760405163137c9c1f60e31b815260040160405180910390fd5b60008481526101c460205260409020600401611e3a848261403d565b5060008481526101c460205260409020600501610c9d838261403d565b6001600160a01b038516331480611e735750611e73853361073b565b611e8f5760405162461bcd60e51b815260040161085090613ed1565b610c9d8585858585612960565b6001600160a01b038316331480611eb85750611eb8833361073b565b611ed45760405162461bcd60e51b815260040161085090613ed1565b610cb9838383612a9c565b3360009081526101c960209081526040808320600885901c84529182905290912054600160ff84161b16611f265760405163423f327760e11b815260040160405180910390fd5b600882901c6000908152602082905260408082208054600160ff87161b1916905551339184917fc6c1c3224e50c3c958e39197695bdfe8457ce7c0014d8d51a4d3aa12c5ac18489190a35050565b60008181526101c460205260409020600301546001600160a01b0316331480611fa35750611fa3600033611614565b611fc05760405163388f811f60e01b815260040160405180910390fd5b600360008281526101c4602052604090205460ff166003811115611fe657611fe661362a565b146120045760405163968807a560e01b815260040160405180910390fd5b60008181526101c46020908152604091829020805460ff1916600217905590518281527f63bb17c9645a29322601b4fe88d8f3fa84f32229368294f903084be8f5d813ba9101610966565b60006001600160e01b03198216637965db0b60e01b148061087e575061087e82612bb8565b610e188133612c08565b815183511461209f5760405162461bcd60e51b815260040161085090614136565b6001600160a01b0384166120c55760405162461bcd60e51b81526004016108509061417e565b336120d4818787878787612c61565b60005b84518110156121bd5760008582815181106120f4576120f4613fb7565b60200260200101519050600085838151811061211257612112613fb7565b60209081029190910181015160008481526065835260408082206001600160a01b038e1683529093529190912054909150818110156121635760405162461bcd60e51b8152600401610850906141c3565b60008381526065602090815260408083206001600160a01b038e8116855292528083208585039055908b168252812080548492906121a2908490613fcd565b92505081905550505050806121b690613eb8565b90506120d7565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb878760405161220d92919061420d565b60405180910390a4612223818787878787612c77565b505050505050565b6122358282611614565b610d385760008281526097602090815260408083206001600160a01b03851684529091529020805460ff1916600117905561226d3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6122bb8282611614565b15610d385760008281526097602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3610d3881612074565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561237557610cb983612dd2565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156123cf575060408051601f3d908101601f191682019092526123cc9181019061423b565b60015b6124325760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610850565b60008051602061457b83398151915281146124a15760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610850565b50610cb9838383612e6e565b6124b5612e93565b60c9805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b0383166125255760405162461bcd60e51b815260040161085090614254565b80518251146125465760405162461bcd60e51b815260040161085090614136565b600033905061256981856000868660405180602001604052806000815250612c61565b60005b835181101561263157600084828151811061258957612589613fb7565b6020026020010151905060008483815181106125a7576125a7613fb7565b60209081029190910181015160008481526065835260408082206001600160a01b038c1683529093529190912054909150818110156125f85760405162461bcd60e51b815260040161085090614297565b60009283526065602090815260408085206001600160a01b038b168652909152909220910390558061262981613eb8565b91505061256c565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb868660405161268292919061420d565b60405180910390a4604080516020810190915260009052610afc565b600054610100900460ff166126c55760405162461bcd60e51b8152600401610850906142db565b610e1881612edc565b600054610100900460ff166126f55760405162461bcd60e51b8152600401610850906142db565b565b600054610100900460ff1661271e5760405162461bcd60e51b8152600401610850906142db565b6126f5612f0c565b61272e612f3f565b60c9805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586124e23390565b6001600160a01b0384166127c35760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b6064820152608401610850565b3360006127cf85612f85565b905060006127dc85612f85565b90506127ed83600089858589612c61565b60008681526065602090815260408083206001600160a01b038b1684529091528120805487929061281f908490613fcd565b909155505060408051878152602081018790526001600160a01b03808a1692600092918716917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a461287f83600089898989612fd0565b50505050505050565b816001600160a01b0316836001600160a01b0316036128fb5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b6064820152608401610850565b6001600160a01b03838116600081815260666020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910161140a565b6001600160a01b0384166129865760405162461bcd60e51b81526004016108509061417e565b33600061299285612f85565b9050600061299f85612f85565b90506129af838989858589612c61565b60008681526065602090815260408083206001600160a01b038c168452909152902054858110156129f25760405162461bcd60e51b8152600401610850906141c3565b60008781526065602090815260408083206001600160a01b038d8116855292528083208985039055908a16825281208054889290612a31908490613fcd565b909155505060408051888152602081018890526001600160a01b03808b16928c821692918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4612a91848a8a8a8a8a612fd0565b505050505050505050565b6001600160a01b038316612ac25760405162461bcd60e51b815260040161085090614254565b336000612ace84612f85565b90506000612adb84612f85565b9050612afb83876000858560405180602001604052806000815250612c61565b60008581526065602090815260408083206001600160a01b038a16845290915290205484811015612b3e5760405162461bcd60e51b815260040161085090614297565b60008681526065602090815260408083206001600160a01b038b81168086529184528285208a8703905582518b81529384018a90529092908816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a460408051602081019091526000905261287f565b60006001600160e01b03198216636cdb3d1360e11b1480612be957506001600160e01b031982166303a24d0760e21b145b8061087e57506301ffc9a760e01b6001600160e01b031983161461087e565b612c128282611614565b610d3857612c1f8161308b565b612c2a83602061309d565b604051602001612c3b929190614326565b60408051601f198184030181529082905262461bcd60e51b825261085091600401613617565b612c69612f3f565b61222386868686868661323f565b6001600160a01b0384163b156122235760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190612cbb908990899088908890889060040161439b565b6020604051808303816000875af1925050508015612cf6575060408051601f3d908101601f19168201909252612cf3918101906143f9565b60015b612da257612d02614416565b806308c379a003612d3b5750612d16614431565b80612d215750612d3d565b8060405162461bcd60e51b81526004016108509190613617565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b6064820152608401610850565b6001600160e01b0319811663bc197c8160e01b1461287f5760405162461bcd60e51b8152600401610850906144ba565b6001600160a01b0381163b612e3f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610850565b60008051602061457b83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b612e77836133bb565b600082511180612e845750805b15610cb957610afc83836133fb565b60c95460ff166126f55760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610850565b600054610100900460ff16612f035760405162461bcd60e51b8152600401610850906142db565b610e1881613420565b600054610100900460ff16612f335760405162461bcd60e51b8152600401610850906142db565b60c9805460ff19169055565b60c95460ff16156126f55760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610850565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612fbf57612fbf613fb7565b602090810291909101015292915050565b6001600160a01b0384163b156122235760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e61906130149089908990889088908890600401614502565b6020604051808303816000875af192505050801561304f575060408051601f3d908101601f1916820190925261304c918101906143f9565b60015b61305b57612d02614416565b6001600160e01b0319811663f23a6e6160e01b1461287f5760405162461bcd60e51b8152600401610850906144ba565b606061087e6001600160a01b03831660145b606060006130ac836002613fe0565b6130b7906002613fcd565b6001600160401b038111156130ce576130ce6136d6565b6040519080825280601f01601f1916602001820160405280156130f8576020820181803683370190505b509050600360fc1b8160008151811061311357613113613fb7565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061314257613142613fb7565b60200101906001600160f81b031916908160001a9053506000613166846002613fe0565b613171906001613fcd565b90505b60018111156131e9576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106131a5576131a5613fb7565b1a60f81b8282815181106131bb576131bb613fb7565b60200101906001600160f81b031916908160001a90535060049490941c936131e281614547565b9050613174565b5083156132385760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610850565b9392505050565b6001600160a01b0385166132c75760005b83518110156132c55782818151811061326b5761326b613fb7565b602002602001015161012d600086848151811061328a5761328a613fb7565b6020026020010151815260200190815260200160002060008282546132af9190613fcd565b909155506132be905081613eb8565b9050613250565b505b6001600160a01b0384166122235760005b835181101561287f5760008482815181106132f5576132f5613fb7565b60200260200101519050600084838151811061331357613313613fb7565b60200260200101519050600061012d6000848152602001908152602001600020549050818110156133975760405162461bcd60e51b815260206004820152602860248201527f455243313135353a206275726e20616d6f756e74206578636565647320746f74604482015267616c537570706c7960c01b6064820152608401610850565b600092835261012d6020526040909220910390556133b481613eb8565b90506132d8565b6133c481612dd2565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060613238838360405180606001604052806027815260200161459b6027913961342c565b6067610d38828261403d565b6060600080856001600160a01b031685604051613449919061455e565b600060405180830381855af49150503d8060008114613484576040519150601f19603f3d011682016040523d82523d6000602084013e613489565b606091505b509150915061349a868383876134a4565b9695505050505050565b6060831561351357825160000361350c576001600160a01b0385163b61350c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610850565b508161351d565b61351d8383613525565b949350505050565b815115612d215781518083602001fd5b80356001600160a01b038116811461354c57600080fd5b919050565b6000806040838503121561356457600080fd5b61356d83613535565b946020939093013593505050565b6001600160e01b031981168114610e1857600080fd5b6000602082840312156135a357600080fd5b81356132388161357b565b6000602082840312156135c057600080fd5b5035919050565b60005b838110156135e25781810151838201526020016135ca565b50506000910152565b600081518084526136038160208601602086016135c7565b601f01601f19169290920160200192915050565b60208152600061323860208301846135eb565b634e487b7160e01b600052602160045260246000fd5b6004811061365e57634e487b7160e01b600052602160045260246000fd5b9052565b61366c8188613640565b85602082015284604082015260018060a01b038416606082015260c06080820152600061369c60c08301856135eb565b82810360a08401526136ae81856135eb565b9998505050505050505050565b6000602082840312156136cd57600080fd5b61323882613535565b634e487b7160e01b600052604160045260246000fd5b601f8201601f191681016001600160401b0381118282101715613711576137116136d6565b6040525050565b60006001600160401b03821115613731576137316136d6565b5060051b60200190565b600082601f83011261374c57600080fd5b8135602061375982613718565b60405161376682826136ec565b83815260059390931b850182019282810191508684111561378657600080fd5b8286015b848110156137a1578035835291830191830161378a565b509695505050505050565b600082601f8301126137bd57600080fd5b81356001600160401b038111156137d6576137d66136d6565b6040516137ed601f8301601f1916602001826136ec565b81815284602083860101111561380257600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a0868803121561383757600080fd5b61384086613535565b945061384e60208701613535565b935060408601356001600160401b038082111561386a57600080fd5b61387689838a0161373b565b9450606088013591508082111561388c57600080fd5b61389889838a0161373b565b935060808801359150808211156138ae57600080fd5b506138bb888289016137ac565b9150509295509295909350565b600080604083850312156138db57600080fd5b823591506138eb60208401613535565b90509250929050565b6000806040838503121561390757600080fd5b82356001600160401b038082111561391e57600080fd5b818501915085601f83011261393257600080fd5b8135602061393f82613718565b60405161394c82826136ec565b83815260059390931b850182019282810191508984111561396c57600080fd5b948201945b838610156139915761398286613535565b82529482019490820190613971565b965050860135925050808211156139a757600080fd5b506139b48582860161373b565b9150509250929050565b600081518084526020808501945080840160005b838110156139ee578151875295820195908201906001016139d2565b509495945050505050565b60208152600061323860208301846139be565b60008060408385031215613a1f57600080fd5b613a2883613535565b915060208301356001600160401b03811115613a4357600080fd5b6139b4858286016137ac565b600080600060608486031215613a6457600080fd5b613a6d84613535565b925060208401356001600160401b0380821115613a8957600080fd5b613a958783880161373b565b93506040860135915080821115613aab57600080fd5b50613ab88682870161373b565b9150509250925092565b60008060408385031215613ad557600080fd5b8235915060208301356001600160401b03811115613a4357600080fd5b60008060008060808587031215613b0857600080fd5b8435935060208501359250613b1f60408601613535565b915060608501356001600160401b03811115613b3a57600080fd5b613b46878288016137ac565b91505092959194509250565b60008060408385031215613b6557600080fd5b613b6e83613535565b915060208301358015158114613b8357600080fd5b809150509250929050565b600080600080600060a08688031215613ba657600080fd5b85359450613bb660208701613535565b9350613bc460408701613535565b925060608601356001600160401b0380821115613be057600080fd5b61389889838a016137ac565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b83811015613c5457888303603f1901855281518051878552613c37888601826135eb565b918901519489019490945294870194925090860190600101613c13565b509098975050505050505050565b60008060408385031215613c7557600080fd5b50508035926020909101359150565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b83811015613c5457603f19898403018552815160c0613ccb858351613640565b81890151858a015287820151888601526060808301516001600160a01b031690860152608080830151818701839052613d06838801826135eb565b9250505060a08083015192508582038187015250613d2481836135eb565b968901969450505090860190600101613cab565b600080600060608486031215613d4d57600080fd5b8335925060208401356001600160401b0380821115613d6b57600080fd5b613d77878388016137ac565b93506040860135915080821115613d8d57600080fd5b50613ab8868287016137ac565b60008060408385031215613dad57600080fd5b613db683613535565b91506138eb60208401613535565b600080600080600060a08688031215613ddc57600080fd5b613de586613535565b9450613df360208701613535565b9350604086013592506060860135915060808601356001600160401b03811115613e1c57600080fd5b6138bb888289016137ac565b600080600060608486031215613e3d57600080fd5b613e4684613535565b95602085013595506040909401359392505050565b600181811c90821680613e6f57607f821691505b602082108103611dcb57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8181038181111561087e5761087e613e8f565b600060018201613eca57613eca613e8f565b5060010190565b6020808252602e908201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60408201526d195c881bdc88185c1c1c9bdd995960921b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b8082018082111561087e5761087e613e8f565b808202811582820484141761087e5761087e613e8f565b601f821115610cb957600081815260208120601f850160051c8101602086101561401e5750805b601f850160051c820191505b818110156122235782815560010161402a565b81516001600160401b03811115614056576140566136d6565b61406a816140648454613e5b565b84613ff7565b602080601f83116001811461409f57600084156140875750858301515b600019600386901b1c1916600185901b178555612223565b600085815260208120601f198616915b828110156140ce578886015182559484019460019091019084016140af565b50858210156140ec5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b84815260806020820152600061411560808301866135eb565b6040830194909452506001600160a01b039190911660609091015292915050565b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b60408152600061422060408301856139be565b828103602084015261423281856139be565b95945050505050565b60006020828403121561424d57600080fd5b5051919050565b60208082526023908201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526024908201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604082015263616e636560e01b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161435e8160178501602088016135c7565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161438f8160288401602088016135c7565b01602801949350505050565b6001600160a01b0386811682528516602082015260a0604082018190526000906143c7908301866139be565b82810360608401526143d981866139be565b905082810360808401526143ed81856135eb565b98975050505050505050565b60006020828403121561440b57600080fd5b81516132388161357b565b600060033d11156110f35760046000803e5060005160e01c90565b600060443d101561443f5790565b6040516003193d81016004833e81513d6001600160401b03816024840111818411171561446e57505050505090565b82850191508151818111156144865750505050505090565b843d87010160208285010111156144a05750505050505090565b6144af602082860101876136ec565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009061453c908301846135eb565b979650505050505050565b60008161455657614556613e8f565b506000190190565b600082516145708184602087016135c7565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212209c4e426e0735e46a0effde0cc2d8dd3845fe2d43227361a7083528f4e6090dcb64736f6c63430008130033", - "deployedBytecode": "0x6080604052600436106102475760003560e01c8063790bafc611610138578063c6fbb712116100b0578063e43990fe11610077578063e43990fe14610700578063e985e9c514610720578063f242432a14610769578063f5298aca14610789578063f8c1b2fd146107a9578063fc74efa2146107c957005b8063c6fbb7121461065a578063c84aae1714610671578063d547741f1461069e578063d667c9ce146106be578063df6efc6c146106de57005b8063a217fddf116100ff578063a217fddf146105a9578063a22cb465146105be578063b0e21e8a146105de578063b3a44bd6146105f5578063b94967a414610615578063bd85b0391461062c57005b8063790bafc6146105395780638129fc1c1461054c5780638456cb591461056157806391d1485414610576578063940123da1461059657005b806336568abe116101cb5780634f558e79116101925780634f558e791461048557806352d1902d146104b55780635c975abb146104ca5780636b20c454146104e25780636b5cb789146105025780637357628c1461051957005b806336568abe146103f05780633659cfe6146104105780633f4ba83a146104305780634e1273f4146104455780634f1ef2861461047257005b8063248a9ca31161020f578063248a9ca314610320578063279c806e1461035057806327e235e3146103825780632eb2c2d6146103b05780632f2ff15d146103d057005b8062fdd58e1461025057806301ffc9a7146102835780630a579eca146102b35780630e89341c146102d3578063155dd5ee1461030057005b3661024e57005b005b34801561025c57600080fd5b5061027061026b366004613551565b6107e9565b6040519081526020015b60405180910390f35b34801561028f57600080fd5b506102a361029e366004613591565b610884565b604051901515815260200161027a565b3480156102bf57600080fd5b5061024e6102ce3660046135ae565b61088f565b3480156102df57600080fd5b506102f36102ee3660046135ae565b610971565b60405161027a9190613617565b34801561030c57600080fd5b5061024e61031b3660046135ae565b610a05565b34801561032c57600080fd5b5061027061033b3660046135ae565b60009081526097602052604090206001015490565b34801561035c57600080fd5b5061037061036b3660046135ae565b610b02565b60405161027a96959493929190613662565b34801561038e57600080fd5b5061027061039d3660046136bb565b6101c76020526000908152604090205481565b3480156103bc57600080fd5b5061024e6103cb36600461381f565b610c58565b3480156103dc57600080fd5b5061024e6103eb3660046138c8565b610ca4565b3480156103fc57600080fd5b5061024e61040b3660046138c8565b610cbe565b34801561041c57600080fd5b5061024e61042b3660046136bb565b610d3c565b34801561043c57600080fd5b5061024e610e1b565b34801561045157600080fd5b506104656104603660046138f4565b610e4d565b60405161027a91906139f9565b61024e610480366004613a0c565b610f76565b34801561049157600080fd5b506102a36104a03660046135ae565b600090815261012d6020526040902054151590565b3480156104c157600080fd5b50610270611042565b3480156104d657600080fd5b5060c95460ff166102a3565b3480156104ee57600080fd5b5061024e6104fd366004613a4f565b6110f6565b34801561050e57600080fd5b506102706101c65481565b34801561052557600080fd5b5061024e6105343660046135ae565b611139565b61024e610547366004613ac2565b6111da565b34801561055857600080fd5b5061024e611417565b34801561056d57600080fd5b5061024e6115e2565b34801561058257600080fd5b506102a36105913660046138c8565b611614565b61024e6105a4366004613af2565b61163f565b3480156105b557600080fd5b50610270600081565b3480156105ca57600080fd5b5061024e6105d9366004613b52565b61172c565b3480156105ea57600080fd5b506102706101c35481565b34801561060157600080fd5b50610270610610366004613b8e565b611737565b34801561062157600080fd5b506102706101c85481565b34801561063857600080fd5b506102706106473660046135ae565b600090815261012d602052604090205490565b34801561066657600080fd5b506102706101c55481565b34801561067d57600080fd5b5061069161068c3660046136bb565b611891565b60405161027a9190613bec565b3480156106aa57600080fd5b5061024e6106b93660046138c8565b6119fb565b3480156106ca57600080fd5b5061024e6106d9366004613c62565b611a20565b3480156106ea57600080fd5b506106f3611b62565b60405161027a9190613c84565b34801561070c57600080fd5b5061024e61071b366004613d38565b611dd1565b34801561072c57600080fd5b506102a361073b366004613d9a565b6001600160a01b03918216600090815260666020908152604080832093909416825291909152205460ff1690565b34801561077557600080fd5b5061024e610784366004613dc4565b611e57565b34801561079557600080fd5b5061024e6107a4366004613e28565b611e9c565b3480156107b557600080fd5b5061024e6107c43660046135ae565b611edf565b3480156107d557600080fd5b5061024e6107e43660046135ae565b611f74565b60006001600160a01b0383166108595760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b60648201526084015b60405180910390fd5b5060008181526065602090815260408083206001600160a01b03861684529091529020545b92915050565b600061087e8261204f565b60008181526101c460205260409020600301546001600160a01b03163314806108be57506108be600033611614565b6108db5760405163388f811f60e01b815260040160405180910390fd5b600260008281526101c4602052604090205460ff1660038111156109015761090161362a565b1461091f57604051631f0fb6fd60e11b815260040160405180910390fd5b60008181526101c46020908152604091829020805460ff1916600317905590518281527f591913f977ab242c5871f116f36be231ff67df5e8e0bac1efd91fa8a723aca2b91015b60405180910390a150565b60606067805461098090613e5b565b80601f01602080910402602001604051908101604052809291908181526020018280546109ac90613e5b565b80156109f95780601f106109ce576101008083540402835291602001916109f9565b820191906000526020600020905b8154815290600101906020018083116109dc57829003601f168201915b50505050509050919050565b6000610a1081612074565b47821115610a3157604051631036b5ad60e31b815260040160405180910390fd5b4760005b6101c554811015610a925760008181526101c46020526040902060020154610a5d9083613ea5565b915083821015610a805760405163156bbc5b60e01b815260040160405180910390fd5b80610a8a81613eb8565b915050610a35565b50604051600090339085908381818185875af1925050503d8060008114610ad5576040519150601f19603f3d011682016040523d82523d6000602084013e610ada565b606091505b5050905080610afc576040516317f2c34560e31b815260040160405180910390fd5b50505050565b6101c4602052600090815260409020805460018201546002830154600384015460048501805460ff90951695939492936001600160a01b0390921692610b4790613e5b565b80601f0160208091040260200160405190810160405280929190818152602001828054610b7390613e5b565b8015610bc05780601f10610b9557610100808354040283529160200191610bc0565b820191906000526020600020905b815481529060010190602001808311610ba357829003601f168201915b505050505090806005018054610bd590613e5b565b80601f0160208091040260200160405190810160405280929190818152602001828054610c0190613e5b565b8015610c4e5780601f10610c2357610100808354040283529160200191610c4e565b820191906000526020600020905b815481529060010190602001808311610c3157829003601f168201915b5050505050905086565b6001600160a01b038516331480610c745750610c74853361073b565b610c905760405162461bcd60e51b815260040161085090613ed1565b610c9d858585858561207e565b5050505050565b6000610caf81612074565b610cb9838361222b565b505050565b6001600160a01b0381163314610d2e5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610850565b610d3882826122b1565b5050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610d845760405162461bcd60e51b815260040161085090613f1f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610dcd60008051602061457b833981519152546001600160a01b031690565b6001600160a01b031614610df35760405162461bcd60e51b815260040161085090613f6b565b610dfc81612318565b60408051600080825260208201909252610e1891839190612342565b50565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610e4581612074565b610e186124ad565b60608151835114610eb25760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b6064820152608401610850565b600083516001600160401b03811115610ecd57610ecd6136d6565b604051908082528060200260200182016040528015610ef6578160200160208202803683370190505b50905060005b8451811015610f6e57610f41858281518110610f1a57610f1a613fb7565b6020026020010151858381518110610f3457610f34613fb7565b60200260200101516107e9565b828281518110610f5357610f53613fb7565b6020908102919091010152610f6781613eb8565b9050610efc565b509392505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610fbe5760405162461bcd60e51b815260040161085090613f1f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661100760008051602061457b833981519152546001600160a01b031690565b6001600160a01b03161461102d5760405162461bcd60e51b815260040161085090613f6b565b61103682612318565b610d3882826001612342565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146110e25760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610850565b5060008051602061457b8339815191525b90565b6001600160a01b0383163314806111125750611112833361073b565b61112e5760405162461bcd60e51b815260040161085090613ed1565b610cb98383836124ff565b600061114481612074565b600160008381526101c4602052604090205460ff16600381111561116a5761116a61362a565b146111885760405163137c9c1f60e31b815260040160405180910390fd5b60008281526101c46020908152604091829020805460ff1916600217905590518381527f8f4352ac8b4aefdd2333162306bbe09dd4f4ff6661e89ccc4e4dcced8794e8f7910160405180910390a15050565b6101c8543410156111fe57604051631036b5ad60e31b815260040160405180910390fd5b600260008381526101c4602052604090205460ff1660038111156112245761122461362a565b1461124257604051631f0fb6fd60e11b815260040160405180910390fd5b6101c5546040516308fe3d0760e01b81523460048201526024810184905260448101919091526101c460648201526101c7608482015273__$49e18fe781110033976e5d9a79c457096c$__906308fe3d079060a40160006040518083038186803b1580156112af57600080fd5b505af41580156112c3573d6000803e3d6000fd5b505050506000805b6101ca5481101561135b57336001600160a01b03166101ca82815481106112f4576112f4613fb7565b6000918252602090912001546001600160a01b03160361134957336001600160a01b03166101ca828154811061132c5761132c613fb7565b6000918252602090912001546001600160a01b031614915061135b565b8061135381613eb8565b9150506112cb565b50806113a5576101ca80546001810182556000919091527f0faeda9012b7f59bd2a84ac2a33ead5fc9f720c38d8bbf90db1ac3c1518386eb0180546001600160a01b031916331790555b3360009081526101c960209081526040808320600887901c845290915290208054600160ff86161b179055336001600160a01b0316837f710e220a47c8d9e50587c80fe509f5e762149ef672440eff70798204dd70f5eb8460405161140a9190613617565b60405180910390a3505050565b600054610100900460ff16158080156114375750600054600160ff909116105b806114515750303b158015611451575060005460ff166001145b6114b45760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610850565b6000805460ff1916600117905580156114d7576000805461ff0019166101001790555b6114ef6040518060200160405280600081525061269e565b6114f76126ce565b6114ff6126f7565b6115076126ce565b61150f6126ce565b6115176126ce565b61152260003361222b565b61154c7f7804d923f43a17d325d77e781528e0793b2edd9890ab45fc64efd7b4b427744c3361222b565b6115767f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a3361222b565b6115a07f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e33361222b565b8015610e18576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610966565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61160c81612074565b610e18612726565b60009182526097602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600061164a81612074565b600260008681526101c4602052604090205460ff1660038111156116705761167061362a565b1461168e57604051631f0fb6fd60e11b815260040160405180910390fd5b6101c35460008681526101c4602052604090206001015485916116b091613fcd565b6116ba9190613fe0565b3410156116da57604051631036b5ad60e31b815260040160405180910390fd5b6116e683868685612763565b6101c3546116f49085613fe0565b6116fe9034613ea5565b60008681526101c4602052604081206002018054909190611720908490613fcd565b90915550505050505050565b610d38338383612888565b60006101c65486111561175d57604051630f0c4c5f60e41b815260040160405180910390fd5b506101c5546040805160c0810190915280600181526020808201899052600060408084018290526001600160a01b038a1660608501526080840188905260a09093018690528481526101c49091522081518154829060ff191660018360038111156117ca576117ca61362a565b0217905550602082015160018201556040820151600282015560608201516003820180546001600160a01b0319166001600160a01b039092169190911790556080820151600482019061181d908261403d565b5060a08201516005820190611832908261403d565b50506101c580549150600061184683613eb8565b91905055507f3deb71b5a6774038a220621d78241405004043d5a928de9c7956bcc5270416db8183888860405161188094939291906140fc565b60405180910390a195945050505050565b606060006101c5546001600160401b038111156118b0576118b06136d6565b6040519080825280602002602001820160405280156118f657816020015b6040805180820190915260608152600060208201528152602001906001900390816118ce5790505b50905060005b6101c5548110156119f45760405180604001604052806101c46000848152602001908152602001600020600401805461193490613e5b565b80601f016020809104026020016040519081016040528092919081815260200182805461196090613e5b565b80156119ad5780601f10611982576101008083540402835291602001916119ad565b820191906000526020600020905b81548152906001019060200180831161199057829003601f168201915b505050505081526020016119c186846107e9565b8152508282815181106119d6576119d6613fb7565b602002602001018190525080806119ec90613eb8565b9150506118fc565b5092915050565b600082815260976020526040902060010154611a1681612074565b610cb983836122b1565b60008281526101c460205260409020600301546001600160a01b03163314611a5b5760405163388f811f60e01b815260040160405180910390fd5b60008281526101c46020526040902060020154811115611a8e57604051637eafab7d60e01b815260040160405180910390fd5b604051600090339083908381818185875af1925050503d8060008114611ad0576040519150601f19603f3d011682016040523d82523d6000602084013e611ad5565b606091505b5050905080611af7576040516317f2c34560e31b815260040160405180910390fd5b60008381526101c4602052604081206002018054849290611b19908490613ea5565b90915550506040805184815260208101849052338183015290517ff1090e9d5138cd4909542e10e1da576730b07eb291a71a151e63160dde345b949181900360600190a1505050565b606060006101c5546001600160401b03811115611b8157611b816136d6565b604051908082528060200260200182016040528015611bf557816020015b611be26040805160c081019091528060008152602001600081526020016000815260200160006001600160a01b0316815260200160608152602001606081525090565b815260200190600190039081611b9f5790505b50905060005b6101c554811015611dcb5760008181526101c4602052604090819020815160c081019092528054829060ff166003811115611c3857611c3861362a565b6003811115611c4957611c4961362a565b8152600182015460208201526002820154604082015260038201546001600160a01b03166060820152600482018054608090920191611c8790613e5b565b80601f0160208091040260200160405190810160405280929190818152602001828054611cb390613e5b565b8015611d005780601f10611cd557610100808354040283529160200191611d00565b820191906000526020600020905b815481529060010190602001808311611ce357829003601f168201915b50505050508152602001600582018054611d1990613e5b565b80601f0160208091040260200160405190810160405280929190818152602001828054611d4590613e5b565b8015611d925780601f10611d6757610100808354040283529160200191611d92565b820191906000526020600020905b815481529060010190602001808311611d7557829003601f168201915b505050505081525050828281518110611dad57611dad613fb7565b60200260200101819052508080611dc390613eb8565b915050611bfb565b50919050565b6000611ddc81612074565b60008481526101c4602052604081205460ff166003811115611e0057611e0061362a565b03611e1e5760405163137c9c1f60e31b815260040160405180910390fd5b60008481526101c460205260409020600401611e3a848261403d565b5060008481526101c460205260409020600501610c9d838261403d565b6001600160a01b038516331480611e735750611e73853361073b565b611e8f5760405162461bcd60e51b815260040161085090613ed1565b610c9d8585858585612960565b6001600160a01b038316331480611eb85750611eb8833361073b565b611ed45760405162461bcd60e51b815260040161085090613ed1565b610cb9838383612a9c565b3360009081526101c960209081526040808320600885901c84529182905290912054600160ff84161b16611f265760405163423f327760e11b815260040160405180910390fd5b600882901c6000908152602082905260408082208054600160ff87161b1916905551339184917fc6c1c3224e50c3c958e39197695bdfe8457ce7c0014d8d51a4d3aa12c5ac18489190a35050565b60008181526101c460205260409020600301546001600160a01b0316331480611fa35750611fa3600033611614565b611fc05760405163388f811f60e01b815260040160405180910390fd5b600360008281526101c4602052604090205460ff166003811115611fe657611fe661362a565b146120045760405163968807a560e01b815260040160405180910390fd5b60008181526101c46020908152604091829020805460ff1916600217905590518281527f63bb17c9645a29322601b4fe88d8f3fa84f32229368294f903084be8f5d813ba9101610966565b60006001600160e01b03198216637965db0b60e01b148061087e575061087e82612bb8565b610e188133612c08565b815183511461209f5760405162461bcd60e51b815260040161085090614136565b6001600160a01b0384166120c55760405162461bcd60e51b81526004016108509061417e565b336120d4818787878787612c61565b60005b84518110156121bd5760008582815181106120f4576120f4613fb7565b60200260200101519050600085838151811061211257612112613fb7565b60209081029190910181015160008481526065835260408082206001600160a01b038e1683529093529190912054909150818110156121635760405162461bcd60e51b8152600401610850906141c3565b60008381526065602090815260408083206001600160a01b038e8116855292528083208585039055908b168252812080548492906121a2908490613fcd565b92505081905550505050806121b690613eb8565b90506120d7565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb878760405161220d92919061420d565b60405180910390a4612223818787878787612c77565b505050505050565b6122358282611614565b610d385760008281526097602090815260408083206001600160a01b03851684529091529020805460ff1916600117905561226d3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6122bb8282611614565b15610d385760008281526097602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3610d3881612074565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561237557610cb983612dd2565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156123cf575060408051601f3d908101601f191682019092526123cc9181019061423b565b60015b6124325760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610850565b60008051602061457b83398151915281146124a15760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610850565b50610cb9838383612e6e565b6124b5612e93565b60c9805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b0383166125255760405162461bcd60e51b815260040161085090614254565b80518251146125465760405162461bcd60e51b815260040161085090614136565b600033905061256981856000868660405180602001604052806000815250612c61565b60005b835181101561263157600084828151811061258957612589613fb7565b6020026020010151905060008483815181106125a7576125a7613fb7565b60209081029190910181015160008481526065835260408082206001600160a01b038c1683529093529190912054909150818110156125f85760405162461bcd60e51b815260040161085090614297565b60009283526065602090815260408085206001600160a01b038b168652909152909220910390558061262981613eb8565b91505061256c565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb868660405161268292919061420d565b60405180910390a4604080516020810190915260009052610afc565b600054610100900460ff166126c55760405162461bcd60e51b8152600401610850906142db565b610e1881612edc565b600054610100900460ff166126f55760405162461bcd60e51b8152600401610850906142db565b565b600054610100900460ff1661271e5760405162461bcd60e51b8152600401610850906142db565b6126f5612f0c565b61272e612f3f565b60c9805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586124e23390565b6001600160a01b0384166127c35760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b6064820152608401610850565b3360006127cf85612f85565b905060006127dc85612f85565b90506127ed83600089858589612c61565b60008681526065602090815260408083206001600160a01b038b1684529091528120805487929061281f908490613fcd565b909155505060408051878152602081018790526001600160a01b03808a1692600092918716917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a461287f83600089898989612fd0565b50505050505050565b816001600160a01b0316836001600160a01b0316036128fb5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b6064820152608401610850565b6001600160a01b03838116600081815260666020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910161140a565b6001600160a01b0384166129865760405162461bcd60e51b81526004016108509061417e565b33600061299285612f85565b9050600061299f85612f85565b90506129af838989858589612c61565b60008681526065602090815260408083206001600160a01b038c168452909152902054858110156129f25760405162461bcd60e51b8152600401610850906141c3565b60008781526065602090815260408083206001600160a01b038d8116855292528083208985039055908a16825281208054889290612a31908490613fcd565b909155505060408051888152602081018890526001600160a01b03808b16928c821692918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4612a91848a8a8a8a8a612fd0565b505050505050505050565b6001600160a01b038316612ac25760405162461bcd60e51b815260040161085090614254565b336000612ace84612f85565b90506000612adb84612f85565b9050612afb83876000858560405180602001604052806000815250612c61565b60008581526065602090815260408083206001600160a01b038a16845290915290205484811015612b3e5760405162461bcd60e51b815260040161085090614297565b60008681526065602090815260408083206001600160a01b038b81168086529184528285208a8703905582518b81529384018a90529092908816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a460408051602081019091526000905261287f565b60006001600160e01b03198216636cdb3d1360e11b1480612be957506001600160e01b031982166303a24d0760e21b145b8061087e57506301ffc9a760e01b6001600160e01b031983161461087e565b612c128282611614565b610d3857612c1f8161308b565b612c2a83602061309d565b604051602001612c3b929190614326565b60408051601f198184030181529082905262461bcd60e51b825261085091600401613617565b612c69612f3f565b61222386868686868661323f565b6001600160a01b0384163b156122235760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190612cbb908990899088908890889060040161439b565b6020604051808303816000875af1925050508015612cf6575060408051601f3d908101601f19168201909252612cf3918101906143f9565b60015b612da257612d02614416565b806308c379a003612d3b5750612d16614431565b80612d215750612d3d565b8060405162461bcd60e51b81526004016108509190613617565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b6064820152608401610850565b6001600160e01b0319811663bc197c8160e01b1461287f5760405162461bcd60e51b8152600401610850906144ba565b6001600160a01b0381163b612e3f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610850565b60008051602061457b83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b612e77836133bb565b600082511180612e845750805b15610cb957610afc83836133fb565b60c95460ff166126f55760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610850565b600054610100900460ff16612f035760405162461bcd60e51b8152600401610850906142db565b610e1881613420565b600054610100900460ff16612f335760405162461bcd60e51b8152600401610850906142db565b60c9805460ff19169055565b60c95460ff16156126f55760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610850565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612fbf57612fbf613fb7565b602090810291909101015292915050565b6001600160a01b0384163b156122235760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e61906130149089908990889088908890600401614502565b6020604051808303816000875af192505050801561304f575060408051601f3d908101601f1916820190925261304c918101906143f9565b60015b61305b57612d02614416565b6001600160e01b0319811663f23a6e6160e01b1461287f5760405162461bcd60e51b8152600401610850906144ba565b606061087e6001600160a01b03831660145b606060006130ac836002613fe0565b6130b7906002613fcd565b6001600160401b038111156130ce576130ce6136d6565b6040519080825280601f01601f1916602001820160405280156130f8576020820181803683370190505b509050600360fc1b8160008151811061311357613113613fb7565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061314257613142613fb7565b60200101906001600160f81b031916908160001a9053506000613166846002613fe0565b613171906001613fcd565b90505b60018111156131e9576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106131a5576131a5613fb7565b1a60f81b8282815181106131bb576131bb613fb7565b60200101906001600160f81b031916908160001a90535060049490941c936131e281614547565b9050613174565b5083156132385760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610850565b9392505050565b6001600160a01b0385166132c75760005b83518110156132c55782818151811061326b5761326b613fb7565b602002602001015161012d600086848151811061328a5761328a613fb7565b6020026020010151815260200190815260200160002060008282546132af9190613fcd565b909155506132be905081613eb8565b9050613250565b505b6001600160a01b0384166122235760005b835181101561287f5760008482815181106132f5576132f5613fb7565b60200260200101519050600084838151811061331357613313613fb7565b60200260200101519050600061012d6000848152602001908152602001600020549050818110156133975760405162461bcd60e51b815260206004820152602860248201527f455243313135353a206275726e20616d6f756e74206578636565647320746f74604482015267616c537570706c7960c01b6064820152608401610850565b600092835261012d6020526040909220910390556133b481613eb8565b90506132d8565b6133c481612dd2565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060613238838360405180606001604052806027815260200161459b6027913961342c565b6067610d38828261403d565b6060600080856001600160a01b031685604051613449919061455e565b600060405180830381855af49150503d8060008114613484576040519150601f19603f3d011682016040523d82523d6000602084013e613489565b606091505b509150915061349a868383876134a4565b9695505050505050565b6060831561351357825160000361350c576001600160a01b0385163b61350c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610850565b508161351d565b61351d8383613525565b949350505050565b815115612d215781518083602001fd5b80356001600160a01b038116811461354c57600080fd5b919050565b6000806040838503121561356457600080fd5b61356d83613535565b946020939093013593505050565b6001600160e01b031981168114610e1857600080fd5b6000602082840312156135a357600080fd5b81356132388161357b565b6000602082840312156135c057600080fd5b5035919050565b60005b838110156135e25781810151838201526020016135ca565b50506000910152565b600081518084526136038160208601602086016135c7565b601f01601f19169290920160200192915050565b60208152600061323860208301846135eb565b634e487b7160e01b600052602160045260246000fd5b6004811061365e57634e487b7160e01b600052602160045260246000fd5b9052565b61366c8188613640565b85602082015284604082015260018060a01b038416606082015260c06080820152600061369c60c08301856135eb565b82810360a08401526136ae81856135eb565b9998505050505050505050565b6000602082840312156136cd57600080fd5b61323882613535565b634e487b7160e01b600052604160045260246000fd5b601f8201601f191681016001600160401b0381118282101715613711576137116136d6565b6040525050565b60006001600160401b03821115613731576137316136d6565b5060051b60200190565b600082601f83011261374c57600080fd5b8135602061375982613718565b60405161376682826136ec565b83815260059390931b850182019282810191508684111561378657600080fd5b8286015b848110156137a1578035835291830191830161378a565b509695505050505050565b600082601f8301126137bd57600080fd5b81356001600160401b038111156137d6576137d66136d6565b6040516137ed601f8301601f1916602001826136ec565b81815284602083860101111561380257600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a0868803121561383757600080fd5b61384086613535565b945061384e60208701613535565b935060408601356001600160401b038082111561386a57600080fd5b61387689838a0161373b565b9450606088013591508082111561388c57600080fd5b61389889838a0161373b565b935060808801359150808211156138ae57600080fd5b506138bb888289016137ac565b9150509295509295909350565b600080604083850312156138db57600080fd5b823591506138eb60208401613535565b90509250929050565b6000806040838503121561390757600080fd5b82356001600160401b038082111561391e57600080fd5b818501915085601f83011261393257600080fd5b8135602061393f82613718565b60405161394c82826136ec565b83815260059390931b850182019282810191508984111561396c57600080fd5b948201945b838610156139915761398286613535565b82529482019490820190613971565b965050860135925050808211156139a757600080fd5b506139b48582860161373b565b9150509250929050565b600081518084526020808501945080840160005b838110156139ee578151875295820195908201906001016139d2565b509495945050505050565b60208152600061323860208301846139be565b60008060408385031215613a1f57600080fd5b613a2883613535565b915060208301356001600160401b03811115613a4357600080fd5b6139b4858286016137ac565b600080600060608486031215613a6457600080fd5b613a6d84613535565b925060208401356001600160401b0380821115613a8957600080fd5b613a958783880161373b565b93506040860135915080821115613aab57600080fd5b50613ab88682870161373b565b9150509250925092565b60008060408385031215613ad557600080fd5b8235915060208301356001600160401b03811115613a4357600080fd5b60008060008060808587031215613b0857600080fd5b8435935060208501359250613b1f60408601613535565b915060608501356001600160401b03811115613b3a57600080fd5b613b46878288016137ac565b91505092959194509250565b60008060408385031215613b6557600080fd5b613b6e83613535565b915060208301358015158114613b8357600080fd5b809150509250929050565b600080600080600060a08688031215613ba657600080fd5b85359450613bb660208701613535565b9350613bc460408701613535565b925060608601356001600160401b0380821115613be057600080fd5b61389889838a016137ac565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b83811015613c5457888303603f1901855281518051878552613c37888601826135eb565b918901519489019490945294870194925090860190600101613c13565b509098975050505050505050565b60008060408385031215613c7557600080fd5b50508035926020909101359150565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b83811015613c5457603f19898403018552815160c0613ccb858351613640565b81890151858a015287820151888601526060808301516001600160a01b031690860152608080830151818701839052613d06838801826135eb565b9250505060a08083015192508582038187015250613d2481836135eb565b968901969450505090860190600101613cab565b600080600060608486031215613d4d57600080fd5b8335925060208401356001600160401b0380821115613d6b57600080fd5b613d77878388016137ac565b93506040860135915080821115613d8d57600080fd5b50613ab8868287016137ac565b60008060408385031215613dad57600080fd5b613db683613535565b91506138eb60208401613535565b600080600080600060a08688031215613ddc57600080fd5b613de586613535565b9450613df360208701613535565b9350604086013592506060860135915060808601356001600160401b03811115613e1c57600080fd5b6138bb888289016137ac565b600080600060608486031215613e3d57600080fd5b613e4684613535565b95602085013595506040909401359392505050565b600181811c90821680613e6f57607f821691505b602082108103611dcb57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8181038181111561087e5761087e613e8f565b600060018201613eca57613eca613e8f565b5060010190565b6020808252602e908201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60408201526d195c881bdc88185c1c1c9bdd995960921b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b8082018082111561087e5761087e613e8f565b808202811582820484141761087e5761087e613e8f565b601f821115610cb957600081815260208120601f850160051c8101602086101561401e5750805b601f850160051c820191505b818110156122235782815560010161402a565b81516001600160401b03811115614056576140566136d6565b61406a816140648454613e5b565b84613ff7565b602080601f83116001811461409f57600084156140875750858301515b600019600386901b1c1916600185901b178555612223565b600085815260208120601f198616915b828110156140ce578886015182559484019460019091019084016140af565b50858210156140ec5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b84815260806020820152600061411560808301866135eb565b6040830194909452506001600160a01b039190911660609091015292915050565b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b60408152600061422060408301856139be565b828103602084015261423281856139be565b95945050505050565b60006020828403121561424d57600080fd5b5051919050565b60208082526023908201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526024908201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604082015263616e636560e01b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161435e8160178501602088016135c7565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161438f8160288401602088016135c7565b01602801949350505050565b6001600160a01b0386811682528516602082015260a0604082018190526000906143c7908301866139be565b82810360608401526143d981866139be565b905082810360808401526143ed81856135eb565b98975050505050505050565b60006020828403121561440b57600080fd5b81516132388161357b565b600060033d11156110f35760046000803e5060005160e01c90565b600060443d101561443f5790565b6040516003193d81016004833e81513d6001600160401b03816024840111818411171561446e57505050505090565b82850191508151818111156144865750505050505090565b843d87010160208285010111156144a05750505050505090565b6144af602082860101876136ec565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009061453c908301846135eb565b979650505050505050565b60008161455657614556613e8f565b506000190190565b600082516145708184602087016135c7565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212209c4e426e0735e46a0effde0cc2d8dd3845fe2d43227361a7083528f4e6090dcb64736f6c63430008130033", - "linkReferences": { - "src/Beliefs/LibBeliefs.sol": { - "LibBeliefs": [ - { - "length": 20, - "start": 5017 - } - ] - } - }, - "deployedLinkReferences": { - "src/Beliefs/LibBeliefs.sol": { - "LibBeliefs": [ - { - "length": 20, - "start": 4730 - } - ] - } - } + "bytecode": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000e7565b600054610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000e5576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6080516149896200011f60003960008181610d4601528181610d8601528181610f8001528181610fc0015261104f01526149896000f3fe6080604052600436106102475760003560e01c8063790bafc611610138578063c6fbb712116100b0578063e43990fe11610077578063e43990fe14610700578063e985e9c514610720578063f242432a14610769578063f5298aca14610789578063f8c1b2fd146107a9578063fc74efa2146107c957005b8063c6fbb7121461065a578063c84aae1714610671578063d547741f1461069e578063d667c9ce146106be578063df6efc6c146106de57005b8063a217fddf116100ff578063a217fddf146105a9578063a22cb465146105be578063b0e21e8a146105de578063b3a44bd6146105f5578063b94967a414610615578063bd85b0391461062c57005b8063790bafc6146105395780638129fc1c1461054c5780638456cb591461056157806391d1485414610576578063940123da1461059657005b806336568abe116101cb5780634f558e79116101925780634f558e791461048557806352d1902d146104b55780635c975abb146104ca5780636b20c454146104e25780636b5cb789146105025780637357628c1461051957005b806336568abe146103f05780633659cfe6146104105780633f4ba83a146104305780634e1273f4146104455780634f1ef2861461047257005b8063248a9ca31161020f578063248a9ca314610320578063279c806e1461035057806327e235e3146103825780632eb2c2d6146103b05780632f2ff15d146103d057005b8062fdd58e1461025057806301ffc9a7146102835780630a579eca146102b35780630e89341c146102d3578063155dd5ee1461030057005b3661024e57005b005b34801561025c57600080fd5b5061027061026b3660046138c1565b6107e9565b6040519081526020015b60405180910390f35b34801561028f57600080fd5b506102a361029e366004613901565b610884565b604051901515815260200161027a565b3480156102bf57600080fd5b5061024e6102ce36600461391e565b61088f565b3480156102df57600080fd5b506102f36102ee36600461391e565b610971565b60405161027a9190613987565b34801561030c57600080fd5b5061024e61031b36600461391e565b610a05565b34801561032c57600080fd5b5061027061033b36600461391e565b60009081526097602052604090206001015490565b34801561035c57600080fd5b5061037061036b36600461391e565b610b02565b60405161027a969594939291906139d2565b34801561038e57600080fd5b5061027061039d366004613a2b565b6101c96020526000908152604090205481565b3480156103bc57600080fd5b5061024e6103cb366004613b8f565b610c58565b3480156103dc57600080fd5b5061024e6103eb366004613c38565b610ca4565b3480156103fc57600080fd5b5061024e61040b366004613c38565b610cbe565b34801561041c57600080fd5b5061024e61042b366004613a2b565b610d3c565b34801561043c57600080fd5b5061024e610e1b565b34801561045157600080fd5b50610465610460366004613c64565b610e4d565b60405161027a9190613d69565b61024e610480366004613d7c565b610f76565b34801561049157600080fd5b506102a36104a036600461391e565b600090815261012d6020526040902054151590565b3480156104c157600080fd5b50610270611042565b3480156104d657600080fd5b5060c95460ff166102a3565b3480156104ee57600080fd5b5061024e6104fd366004613dbf565b6110f6565b34801561050e57600080fd5b506102706101c65481565b34801561052557600080fd5b5061024e61053436600461391e565b611139565b61024e610547366004613e32565b6111da565b34801561055857600080fd5b5061024e6113a6565b34801561056d57600080fd5b5061024e611571565b34801561058257600080fd5b506102a3610591366004613c38565b6115a3565b61024e6105a4366004613e62565b6115ce565b3480156105b557600080fd5b50610270600081565b3480156105ca57600080fd5b5061024e6105d9366004613ec2565b6116bb565b3480156105ea57600080fd5b506102706101c35481565b34801561060157600080fd5b50610270610610366004613efe565b6116c6565b34801561062157600080fd5b506102706101ca5481565b34801561063857600080fd5b5061027061064736600461391e565b600090815261012d602052604090205490565b34801561066657600080fd5b506102706101c55481565b34801561067d57600080fd5b5061069161068c366004613a2b565b611820565b60405161027a9190613f5c565b3480156106aa57600080fd5b5061024e6106b9366004613c38565b61198a565b3480156106ca57600080fd5b5061024e6106d9366004613fd2565b6119af565b3480156106ea57600080fd5b506106f3611af1565b60405161027a9190613ff4565b34801561070c57600080fd5b5061024e61071b3660046140a8565b611d60565b34801561072c57600080fd5b506102a361073b36600461410a565b6001600160a01b03918216600090815260666020908152604080832093909416825291909152205460ff1690565b34801561077557600080fd5b5061024e610784366004614134565b611de6565b34801561079557600080fd5b5061024e6107a4366004614198565b611e2b565b3480156107b557600080fd5b5061024e6107c436600461391e565b611e6e565b3480156107d557600080fd5b5061024e6107e436600461391e565b611f03565b60006001600160a01b0383166108595760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b60648201526084015b60405180910390fd5b5060008181526065602090815260408083206001600160a01b03861684529091529020545b92915050565b600061087e82611fde565b60008181526101c460205260409020600301546001600160a01b03163314806108be57506108be6000336115a3565b6108db5760405163388f811f60e01b815260040160405180910390fd5b600260008281526101c4602052604090205460ff1660038111156109015761090161399a565b1461091f57604051631f0fb6fd60e11b815260040160405180910390fd5b60008181526101c46020908152604091829020805460ff1916600317905590518281527f591913f977ab242c5871f116f36be231ff67df5e8e0bac1efd91fa8a723aca2b91015b60405180910390a150565b606060678054610980906141cb565b80601f01602080910402602001604051908101604052809291908181526020018280546109ac906141cb565b80156109f95780601f106109ce576101008083540402835291602001916109f9565b820191906000526020600020905b8154815290600101906020018083116109dc57829003601f168201915b50505050509050919050565b6000610a1081612003565b47821115610a3157604051631036b5ad60e31b815260040160405180910390fd5b4760005b6101c554811015610a925760008181526101c46020526040902060020154610a5d9083614215565b915083821015610a805760405163156bbc5b60e01b815260040160405180910390fd5b80610a8a81614228565b915050610a35565b50604051600090339085908381818185875af1925050503d8060008114610ad5576040519150601f19603f3d011682016040523d82523d6000602084013e610ada565b606091505b5050905080610afc576040516317f2c34560e31b815260040160405180910390fd5b50505050565b6101c4602052600090815260409020805460018201546002830154600384015460048501805460ff90951695939492936001600160a01b0390921692610b47906141cb565b80601f0160208091040260200160405190810160405280929190818152602001828054610b73906141cb565b8015610bc05780601f10610b9557610100808354040283529160200191610bc0565b820191906000526020600020905b815481529060010190602001808311610ba357829003601f168201915b505050505090806005018054610bd5906141cb565b80601f0160208091040260200160405190810160405280929190818152602001828054610c01906141cb565b8015610c4e5780601f10610c2357610100808354040283529160200191610c4e565b820191906000526020600020905b815481529060010190602001808311610c3157829003601f168201915b5050505050905086565b6001600160a01b038516331480610c745750610c74853361073b565b610c905760405162461bcd60e51b815260040161085090614241565b610c9d858585858561200d565b5050505050565b6000610caf81612003565b610cb983836121ba565b505050565b6001600160a01b0381163314610d2e5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610850565b610d388282612240565b5050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610d845760405162461bcd60e51b81526004016108509061428f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610dcd60008051602061490d833981519152546001600160a01b031690565b6001600160a01b031614610df35760405162461bcd60e51b8152600401610850906142db565b610dfc816122a7565b60408051600080825260208201909252610e18918391906122d1565b50565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610e4581612003565b610e1861243c565b60608151835114610eb25760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b6064820152608401610850565b600083516001600160401b03811115610ecd57610ecd613a46565b604051908082528060200260200182016040528015610ef6578160200160208202803683370190505b50905060005b8451811015610f6e57610f41858281518110610f1a57610f1a614327565b6020026020010151858381518110610f3457610f34614327565b60200260200101516107e9565b828281518110610f5357610f53614327565b6020908102919091010152610f6781614228565b9050610efc565b509392505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610fbe5760405162461bcd60e51b81526004016108509061428f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661100760008051602061490d833981519152546001600160a01b031690565b6001600160a01b03161461102d5760405162461bcd60e51b8152600401610850906142db565b611036826122a7565b610d38828260016122d1565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146110e25760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610850565b5060008051602061490d8339815191525b90565b6001600160a01b0383163314806111125750611112833361073b565b61112e5760405162461bcd60e51b815260040161085090614241565b610cb983838361248e565b600061114481612003565b600160008381526101c4602052604090205460ff16600381111561116a5761116a61399a565b146111885760405163137c9c1f60e31b815260040160405180910390fd5b60008281526101c46020908152604091829020805460ff1916600217905590518381527f8f4352ac8b4aefdd2333162306bbe09dd4f4ff6661e89ccc4e4dcced8794e8f7910160405180910390a15050565b6101ca543410156111fe57604051631036b5ad60e31b815260040160405180910390fd5b600260008381526101c4602052604090205460ff1660038111156112245761122461399a565b1461124257604051631f0fb6fd60e11b815260040160405180910390fd5b61125634836101c5546101c46101c961262d565b6000805b6101c8548110156112ea57336001600160a01b03166101c8828154811061128357611283614327565b6000918252602090912001546001600160a01b0316036112d857336001600160a01b03166101c882815481106112bb576112bb614327565b6000918252602090912001546001600160a01b03161491506112ea565b806112e281614228565b91505061125a565b5080611334576101c880546001810182556000919091527f8cdee82cb3ac6d59f1f417405a3eecf497b31f3d06d4c506f96deb67789f61e90180546001600160a01b031916331790555b3360009081526101c760209081526040808320600887901c845290915290208054600160ff86161b179055336001600160a01b0316837f710e220a47c8d9e50587c80fe509f5e762149ef672440eff70798204dd70f5eb846040516113999190613987565b60405180910390a3505050565b600054610100900460ff16158080156113c65750600054600160ff909116105b806113e05750303b1580156113e0575060005460ff166001145b6114435760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610850565b6000805460ff191660011790558015611466576000805461ff0019166101001790555b61147e60405180602001604052806000815250612a0e565b611486612a3e565b61148e612a67565b611496612a3e565b61149e612a3e565b6114a6612a3e565b6114b16000336121ba565b6114db7f7804d923f43a17d325d77e781528e0793b2edd9890ab45fc64efd7b4b427744c336121ba565b6115057f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a336121ba565b61152f7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3336121ba565b8015610e18576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610966565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61159b81612003565b610e18612a96565b60009182526097602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60006115d981612003565b600260008681526101c4602052604090205460ff1660038111156115ff576115ff61399a565b1461161d57604051631f0fb6fd60e11b815260040160405180910390fd5b6101c35460008681526101c46020526040902060010154859161163f9161433d565b6116499190614350565b34101561166957604051631036b5ad60e31b815260040160405180910390fd5b61167583868685612ad3565b6101c3546116839085614350565b61168d9034614215565b60008681526101c46020526040812060020180549091906116af90849061433d565b90915550505050505050565b610d38338383612bf8565b60006101c6548611156116ec57604051630f0c4c5f60e41b815260040160405180910390fd5b506101c5546040805160c0810190915280600181526020808201899052600060408084018290526001600160a01b038a1660608501526080840188905260a09093018690528481526101c49091522081518154829060ff191660018360038111156117595761175961399a565b0217905550602082015160018201556040820151600282015560608201516003820180546001600160a01b0319166001600160a01b03909216919091179055608082015160048201906117ac90826143ad565b5060a082015160058201906117c190826143ad565b50506101c58054915060006117d583614228565b91905055507f3deb71b5a6774038a220621d78241405004043d5a928de9c7956bcc5270416db8183888860405161180f949392919061446c565b60405180910390a195945050505050565b606060006101c5546001600160401b0381111561183f5761183f613a46565b60405190808252806020026020018201604052801561188557816020015b60408051808201909152606081526000602082015281526020019060019003908161185d5790505b50905060005b6101c5548110156119835760405180604001604052806101c4600084815260200190815260200160002060040180546118c3906141cb565b80601f01602080910402602001604051908101604052809291908181526020018280546118ef906141cb565b801561193c5780601f106119115761010080835404028352916020019161193c565b820191906000526020600020905b81548152906001019060200180831161191f57829003601f168201915b5050505050815260200161195086846107e9565b81525082828151811061196557611965614327565b6020026020010181905250808061197b90614228565b91505061188b565b5092915050565b6000828152609760205260409020600101546119a581612003565b610cb98383612240565b60008281526101c460205260409020600301546001600160a01b031633146119ea5760405163388f811f60e01b815260040160405180910390fd5b60008281526101c46020526040902060020154811115611a1d57604051637eafab7d60e01b815260040160405180910390fd5b604051600090339083908381818185875af1925050503d8060008114611a5f576040519150601f19603f3d011682016040523d82523d6000602084013e611a64565b606091505b5050905080611a86576040516317f2c34560e31b815260040160405180910390fd5b60008381526101c4602052604081206002018054849290611aa8908490614215565b90915550506040805184815260208101849052338183015290517ff1090e9d5138cd4909542e10e1da576730b07eb291a71a151e63160dde345b949181900360600190a1505050565b606060006101c5546001600160401b03811115611b1057611b10613a46565b604051908082528060200260200182016040528015611b8457816020015b611b716040805160c081019091528060008152602001600081526020016000815260200160006001600160a01b0316815260200160608152602001606081525090565b815260200190600190039081611b2e5790505b50905060005b6101c554811015611d5a5760008181526101c4602052604090819020815160c081019092528054829060ff166003811115611bc757611bc761399a565b6003811115611bd857611bd861399a565b8152600182015460208201526002820154604082015260038201546001600160a01b03166060820152600482018054608090920191611c16906141cb565b80601f0160208091040260200160405190810160405280929190818152602001828054611c42906141cb565b8015611c8f5780601f10611c6457610100808354040283529160200191611c8f565b820191906000526020600020905b815481529060010190602001808311611c7257829003601f168201915b50505050508152602001600582018054611ca8906141cb565b80601f0160208091040260200160405190810160405280929190818152602001828054611cd4906141cb565b8015611d215780601f10611cf657610100808354040283529160200191611d21565b820191906000526020600020905b815481529060010190602001808311611d0457829003601f168201915b505050505081525050828281518110611d3c57611d3c614327565b60200260200101819052508080611d5290614228565b915050611b8a565b50919050565b6000611d6b81612003565b60008481526101c4602052604081205460ff166003811115611d8f57611d8f61399a565b03611dad5760405163137c9c1f60e31b815260040160405180910390fd5b60008481526101c460205260409020600401611dc984826143ad565b5060008481526101c460205260409020600501610c9d83826143ad565b6001600160a01b038516331480611e025750611e02853361073b565b611e1e5760405162461bcd60e51b815260040161085090614241565b610c9d8585858585612cd0565b6001600160a01b038316331480611e475750611e47833361073b565b611e635760405162461bcd60e51b815260040161085090614241565b610cb9838383612e0c565b3360009081526101c760209081526040808320600885901c84529182905290912054600160ff84161b16611eb55760405163423f327760e11b815260040160405180910390fd5b600882901c6000908152602082905260408082208054600160ff87161b1916905551339184917fc6c1c3224e50c3c958e39197695bdfe8457ce7c0014d8d51a4d3aa12c5ac18489190a35050565b60008181526101c460205260409020600301546001600160a01b0316331480611f325750611f326000336115a3565b611f4f5760405163388f811f60e01b815260040160405180910390fd5b600360008281526101c4602052604090205460ff166003811115611f7557611f7561399a565b14611f935760405163968807a560e01b815260040160405180910390fd5b60008181526101c46020908152604091829020805460ff1916600217905590518281527f63bb17c9645a29322601b4fe88d8f3fa84f32229368294f903084be8f5d813ba9101610966565b60006001600160e01b03198216637965db0b60e01b148061087e575061087e82612f28565b610e188133612f78565b815183511461202e5760405162461bcd60e51b8152600401610850906144a6565b6001600160a01b0384166120545760405162461bcd60e51b8152600401610850906144ee565b33612063818787878787612fd1565b60005b845181101561214c57600085828151811061208357612083614327565b6020026020010151905060008583815181106120a1576120a1614327565b60209081029190910181015160008481526065835260408082206001600160a01b038e1683529093529190912054909150818110156120f25760405162461bcd60e51b815260040161085090614533565b60008381526065602090815260408083206001600160a01b038e8116855292528083208585039055908b1682528120805484929061213190849061433d565b925050819055505050508061214590614228565b9050612066565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb878760405161219c92919061457d565b60405180910390a46121b2818787878787612fe7565b505050505050565b6121c482826115a3565b610d385760008281526097602090815260408083206001600160a01b03851684529091529020805460ff191660011790556121fc3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b61224a82826115a3565b15610d385760008281526097602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3610d3881612003565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561230457610cb983613142565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561235e575060408051601f3d908101601f1916820190925261235b918101906145ab565b60015b6123c15760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610850565b60008051602061490d83398151915281146124305760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610850565b50610cb98383836131de565b612444613203565b60c9805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b0383166124b45760405162461bcd60e51b8152600401610850906145c4565b80518251146124d55760405162461bcd60e51b8152600401610850906144a6565b60003390506124f881856000868660405180602001604052806000815250612fd1565b60005b83518110156125c057600084828151811061251857612518614327565b60200260200101519050600084838151811061253657612536614327565b60209081029190910181015160008481526065835260408082206001600160a01b038c1683529093529190912054909150818110156125875760405162461bcd60e51b815260040161085090614607565b60009283526065602090815260408085206001600160a01b038b16865290915290922091039055806125b881614228565b9150506124fb565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb868660405161261192919061457d565b60405180910390a4604080516020810190915260009052610afc565b600061263a60028761464b565b9050600061264960058861464b565b9050818460008881526020019081526020016000206002016000828254612670919061433d565b909155505060008681526020859052604081206005018054612691906141cb565b80601f01602080910402602001604051908101604052809291908181526020018280546126bd906141cb565b801561270a5780601f106126df5761010080835404028352916020019161270a565b820191906000526020600020905b8154815290600101906020018083116126ed57829003601f168201915b505050505090506000866001600160401b0381111561272b5761272b613a46565b604051908082528060200260200182016040528015612754578160200160208202803683370190505b5090506000805b888110801561276a5750898114155b1561297857600081815260208990526040808220815160c081019092528054829060ff16600381111561279f5761279f61399a565b60038111156127b0576127b061399a565b8152600182015460208201526002820154604082015260038201546001600160a01b031660608201526004820180546080909201916127ee906141cb565b80601f016020809104026020016040519081016040528092919081815260200182805461281a906141cb565b80156128675780601f1061283c57610100808354040283529160200191612867565b820191906000526020600020905b81548152906001019060200180831161284a57829003601f168201915b50505050508152602001600582018054612880906141cb565b80601f01602080910402602001604051908101604052809291908181526020018280546128ac906141cb565b80156128f95780601f106128ce576101008083540402835291602001916128f9565b820191906000526020600020905b8154815290600101906020018083116128dc57829003601f168201915b50505050508152505090506129238160a00151868051602091820120825192909101919091201490565b1561296557806060015184848151811061293f5761293f614327565b6001600160a01b039092166020928302919091019091015261296260018461433d565b92505b508061297081614228565b91505061275b565b825115612a0157600061298b838761464b565b9050600091505b828210156129ff57808860008685815181106129b0576129b0614327565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008282546129e7919061433d565b909155508290506129f781614228565b925050612992565b505b5050505050505050505050565b600054610100900460ff16612a355760405162461bcd60e51b81526004016108509061466d565b610e188161324c565b600054610100900460ff16612a655760405162461bcd60e51b81526004016108509061466d565b565b600054610100900460ff16612a8e5760405162461bcd60e51b81526004016108509061466d565b612a6561327c565b612a9e6132af565b60c9805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586124713390565b6001600160a01b038416612b335760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b6064820152608401610850565b336000612b3f856132f5565b90506000612b4c856132f5565b9050612b5d83600089858589612fd1565b60008681526065602090815260408083206001600160a01b038b16845290915281208054879290612b8f90849061433d565b909155505060408051878152602081018790526001600160a01b03808a1692600092918716917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4612bef83600089898989613340565b50505050505050565b816001600160a01b0316836001600160a01b031603612c6b5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b6064820152608401610850565b6001600160a01b03838116600081815260666020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319101611399565b6001600160a01b038416612cf65760405162461bcd60e51b8152600401610850906144ee565b336000612d02856132f5565b90506000612d0f856132f5565b9050612d1f838989858589612fd1565b60008681526065602090815260408083206001600160a01b038c16845290915290205485811015612d625760405162461bcd60e51b815260040161085090614533565b60008781526065602090815260408083206001600160a01b038d8116855292528083208985039055908a16825281208054889290612da190849061433d565b909155505060408051888152602081018890526001600160a01b03808b16928c821692918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4612e01848a8a8a8a8a613340565b505050505050505050565b6001600160a01b038316612e325760405162461bcd60e51b8152600401610850906145c4565b336000612e3e846132f5565b90506000612e4b846132f5565b9050612e6b83876000858560405180602001604052806000815250612fd1565b60008581526065602090815260408083206001600160a01b038a16845290915290205484811015612eae5760405162461bcd60e51b815260040161085090614607565b60008681526065602090815260408083206001600160a01b038b81168086529184528285208a8703905582518b81529384018a90529092908816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4604080516020810190915260009052612bef565b60006001600160e01b03198216636cdb3d1360e11b1480612f5957506001600160e01b031982166303a24d0760e21b145b8061087e57506301ffc9a760e01b6001600160e01b031983161461087e565b612f8282826115a3565b610d3857612f8f816133fb565b612f9a83602061340d565b604051602001612fab9291906146b8565b60408051601f198184030181529082905262461bcd60e51b825261085091600401613987565b612fd96132af565b6121b28686868686866135af565b6001600160a01b0384163b156121b25760405163bc197c8160e01b81526001600160a01b0385169063bc197c819061302b908990899088908890889060040161472d565b6020604051808303816000875af1925050508015613066575060408051601f3d908101601f191682019092526130639181019061478b565b60015b613112576130726147a8565b806308c379a0036130ab57506130866147c3565b8061309157506130ad565b8060405162461bcd60e51b81526004016108509190613987565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b6064820152608401610850565b6001600160e01b0319811663bc197c8160e01b14612bef5760405162461bcd60e51b81526004016108509061484c565b6001600160a01b0381163b6131af5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610850565b60008051602061490d83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6131e78361372b565b6000825111806131f45750805b15610cb957610afc838361376b565b60c95460ff16612a655760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610850565b600054610100900460ff166132735760405162461bcd60e51b81526004016108509061466d565b610e1881613790565b600054610100900460ff166132a35760405162461bcd60e51b81526004016108509061466d565b60c9805460ff19169055565b60c95460ff1615612a655760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610850565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061332f5761332f614327565b602090810291909101015292915050565b6001600160a01b0384163b156121b25760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e61906133849089908990889088908890600401614894565b6020604051808303816000875af19250505080156133bf575060408051601f3d908101601f191682019092526133bc9181019061478b565b60015b6133cb576130726147a8565b6001600160e01b0319811663f23a6e6160e01b14612bef5760405162461bcd60e51b81526004016108509061484c565b606061087e6001600160a01b03831660145b6060600061341c836002614350565b61342790600261433d565b6001600160401b0381111561343e5761343e613a46565b6040519080825280601f01601f191660200182016040528015613468576020820181803683370190505b509050600360fc1b8160008151811061348357613483614327565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106134b2576134b2614327565b60200101906001600160f81b031916908160001a90535060006134d6846002614350565b6134e190600161433d565b90505b6001811115613559576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061351557613515614327565b1a60f81b82828151811061352b5761352b614327565b60200101906001600160f81b031916908160001a90535060049490941c93613552816148d9565b90506134e4565b5083156135a85760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610850565b9392505050565b6001600160a01b0385166136375760005b8351811015613635578281815181106135db576135db614327565b602002602001015161012d60008684815181106135fa576135fa614327565b60200260200101518152602001908152602001600020600082825461361f919061433d565b9091555061362e905081614228565b90506135c0565b505b6001600160a01b0384166121b25760005b8351811015612bef57600084828151811061366557613665614327565b60200260200101519050600084838151811061368357613683614327565b60200260200101519050600061012d6000848152602001908152602001600020549050818110156137075760405162461bcd60e51b815260206004820152602860248201527f455243313135353a206275726e20616d6f756e74206578636565647320746f74604482015267616c537570706c7960c01b6064820152608401610850565b600092835261012d60205260409092209103905561372481614228565b9050613648565b61373481613142565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606135a8838360405180606001604052806027815260200161492d6027913961379c565b6067610d3882826143ad565b6060600080856001600160a01b0316856040516137b991906148f0565b600060405180830381855af49150503d80600081146137f4576040519150601f19603f3d011682016040523d82523d6000602084013e6137f9565b606091505b509150915061380a86838387613814565b9695505050505050565b6060831561388357825160000361387c576001600160a01b0385163b61387c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610850565b508161388d565b61388d8383613895565b949350505050565b8151156130915781518083602001fd5b80356001600160a01b03811681146138bc57600080fd5b919050565b600080604083850312156138d457600080fd5b6138dd836138a5565b946020939093013593505050565b6001600160e01b031981168114610e1857600080fd5b60006020828403121561391357600080fd5b81356135a8816138eb565b60006020828403121561393057600080fd5b5035919050565b60005b8381101561395257818101518382015260200161393a565b50506000910152565b60008151808452613973816020860160208601613937565b601f01601f19169290920160200192915050565b6020815260006135a8602083018461395b565b634e487b7160e01b600052602160045260246000fd5b600481106139ce57634e487b7160e01b600052602160045260246000fd5b9052565b6139dc81886139b0565b85602082015284604082015260018060a01b038416606082015260c060808201526000613a0c60c083018561395b565b82810360a0840152613a1e818561395b565b9998505050505050505050565b600060208284031215613a3d57600080fd5b6135a8826138a5565b634e487b7160e01b600052604160045260246000fd5b601f8201601f191681016001600160401b0381118282101715613a8157613a81613a46565b6040525050565b60006001600160401b03821115613aa157613aa1613a46565b5060051b60200190565b600082601f830112613abc57600080fd5b81356020613ac982613a88565b604051613ad68282613a5c565b83815260059390931b8501820192828101915086841115613af657600080fd5b8286015b84811015613b115780358352918301918301613afa565b509695505050505050565b600082601f830112613b2d57600080fd5b81356001600160401b03811115613b4657613b46613a46565b604051613b5d601f8301601f191660200182613a5c565b818152846020838601011115613b7257600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a08688031215613ba757600080fd5b613bb0866138a5565b9450613bbe602087016138a5565b935060408601356001600160401b0380821115613bda57600080fd5b613be689838a01613aab565b94506060880135915080821115613bfc57600080fd5b613c0889838a01613aab565b93506080880135915080821115613c1e57600080fd5b50613c2b88828901613b1c565b9150509295509295909350565b60008060408385031215613c4b57600080fd5b82359150613c5b602084016138a5565b90509250929050565b60008060408385031215613c7757600080fd5b82356001600160401b0380821115613c8e57600080fd5b818501915085601f830112613ca257600080fd5b81356020613caf82613a88565b604051613cbc8282613a5c565b83815260059390931b8501820192828101915089841115613cdc57600080fd5b948201945b83861015613d0157613cf2866138a5565b82529482019490820190613ce1565b96505086013592505080821115613d1757600080fd5b50613d2485828601613aab565b9150509250929050565b600081518084526020808501945080840160005b83811015613d5e57815187529582019590820190600101613d42565b509495945050505050565b6020815260006135a86020830184613d2e565b60008060408385031215613d8f57600080fd5b613d98836138a5565b915060208301356001600160401b03811115613db357600080fd5b613d2485828601613b1c565b600080600060608486031215613dd457600080fd5b613ddd846138a5565b925060208401356001600160401b0380821115613df957600080fd5b613e0587838801613aab565b93506040860135915080821115613e1b57600080fd5b50613e2886828701613aab565b9150509250925092565b60008060408385031215613e4557600080fd5b8235915060208301356001600160401b03811115613db357600080fd5b60008060008060808587031215613e7857600080fd5b8435935060208501359250613e8f604086016138a5565b915060608501356001600160401b03811115613eaa57600080fd5b613eb687828801613b1c565b91505092959194509250565b60008060408385031215613ed557600080fd5b613ede836138a5565b915060208301358015158114613ef357600080fd5b809150509250929050565b600080600080600060a08688031215613f1657600080fd5b85359450613f26602087016138a5565b9350613f34604087016138a5565b925060608601356001600160401b0380821115613f5057600080fd5b613c0889838a01613b1c565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b83811015613fc457888303603f1901855281518051878552613fa78886018261395b565b918901519489019490945294870194925090860190600101613f83565b509098975050505050505050565b60008060408385031215613fe557600080fd5b50508035926020909101359150565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b83811015613fc457603f19898403018552815160c061403b8583516139b0565b81890151858a015287820151888601526060808301516001600160a01b0316908601526080808301518187018390526140768388018261395b565b9250505060a08083015192508582038187015250614094818361395b565b96890196945050509086019060010161401b565b6000806000606084860312156140bd57600080fd5b8335925060208401356001600160401b03808211156140db57600080fd5b6140e787838801613b1c565b935060408601359150808211156140fd57600080fd5b50613e2886828701613b1c565b6000806040838503121561411d57600080fd5b614126836138a5565b9150613c5b602084016138a5565b600080600080600060a0868803121561414c57600080fd5b614155866138a5565b9450614163602087016138a5565b9350604086013592506060860135915060808601356001600160401b0381111561418c57600080fd5b613c2b88828901613b1c565b6000806000606084860312156141ad57600080fd5b6141b6846138a5565b95602085013595506040909401359392505050565b600181811c908216806141df57607f821691505b602082108103611d5a57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8181038181111561087e5761087e6141ff565b60006001820161423a5761423a6141ff565b5060010190565b6020808252602e908201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60408201526d195c881bdc88185c1c1c9bdd995960921b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b8082018082111561087e5761087e6141ff565b808202811582820484141761087e5761087e6141ff565b601f821115610cb957600081815260208120601f850160051c8101602086101561438e5750805b601f850160051c820191505b818110156121b25782815560010161439a565b81516001600160401b038111156143c6576143c6613a46565b6143da816143d484546141cb565b84614367565b602080601f83116001811461440f57600084156143f75750858301515b600019600386901b1c1916600185901b1785556121b2565b600085815260208120601f198616915b8281101561443e5788860151825594840194600190910190840161441f565b508582101561445c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b848152608060208201526000614485608083018661395b565b6040830194909452506001600160a01b039190911660609091015292915050565b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b6040815260006145906040830185613d2e565b82810360208401526145a28185613d2e565b95945050505050565b6000602082840312156145bd57600080fd5b5051919050565b60208082526023908201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526024908201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604082015263616e636560e01b606082015260800190565b60008261466857634e487b7160e01b600052601260045260246000fd5b500490565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516146f0816017850160208801613937565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351614721816028840160208801613937565b01602801949350505050565b6001600160a01b0386811682528516602082015260a06040820181905260009061475990830186613d2e565b828103606084015261476b8186613d2e565b9050828103608084015261477f818561395b565b98975050505050505050565b60006020828403121561479d57600080fd5b81516135a8816138eb565b600060033d11156110f35760046000803e5060005160e01c90565b600060443d10156147d15790565b6040516003193d81016004833e81513d6001600160401b03816024840111818411171561480057505050505090565b82850191508151818111156148185750505050505090565b843d87010160208285010111156148325750505050505090565b61484160208286010187613a5c565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190526000906148ce9083018461395b565b979650505050505050565b6000816148e8576148e86141ff565b506000190190565b60008251614902818460208701613937565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212205775fe935d629c90d0ed99f19f617fa289154eb0c95b819e3cc5fadd98fc443564736f6c63430008130033", + "deployedBytecode": "0x6080604052600436106102475760003560e01c8063790bafc611610138578063c6fbb712116100b0578063e43990fe11610077578063e43990fe14610700578063e985e9c514610720578063f242432a14610769578063f5298aca14610789578063f8c1b2fd146107a9578063fc74efa2146107c957005b8063c6fbb7121461065a578063c84aae1714610671578063d547741f1461069e578063d667c9ce146106be578063df6efc6c146106de57005b8063a217fddf116100ff578063a217fddf146105a9578063a22cb465146105be578063b0e21e8a146105de578063b3a44bd6146105f5578063b94967a414610615578063bd85b0391461062c57005b8063790bafc6146105395780638129fc1c1461054c5780638456cb591461056157806391d1485414610576578063940123da1461059657005b806336568abe116101cb5780634f558e79116101925780634f558e791461048557806352d1902d146104b55780635c975abb146104ca5780636b20c454146104e25780636b5cb789146105025780637357628c1461051957005b806336568abe146103f05780633659cfe6146104105780633f4ba83a146104305780634e1273f4146104455780634f1ef2861461047257005b8063248a9ca31161020f578063248a9ca314610320578063279c806e1461035057806327e235e3146103825780632eb2c2d6146103b05780632f2ff15d146103d057005b8062fdd58e1461025057806301ffc9a7146102835780630a579eca146102b35780630e89341c146102d3578063155dd5ee1461030057005b3661024e57005b005b34801561025c57600080fd5b5061027061026b3660046138c1565b6107e9565b6040519081526020015b60405180910390f35b34801561028f57600080fd5b506102a361029e366004613901565b610884565b604051901515815260200161027a565b3480156102bf57600080fd5b5061024e6102ce36600461391e565b61088f565b3480156102df57600080fd5b506102f36102ee36600461391e565b610971565b60405161027a9190613987565b34801561030c57600080fd5b5061024e61031b36600461391e565b610a05565b34801561032c57600080fd5b5061027061033b36600461391e565b60009081526097602052604090206001015490565b34801561035c57600080fd5b5061037061036b36600461391e565b610b02565b60405161027a969594939291906139d2565b34801561038e57600080fd5b5061027061039d366004613a2b565b6101c96020526000908152604090205481565b3480156103bc57600080fd5b5061024e6103cb366004613b8f565b610c58565b3480156103dc57600080fd5b5061024e6103eb366004613c38565b610ca4565b3480156103fc57600080fd5b5061024e61040b366004613c38565b610cbe565b34801561041c57600080fd5b5061024e61042b366004613a2b565b610d3c565b34801561043c57600080fd5b5061024e610e1b565b34801561045157600080fd5b50610465610460366004613c64565b610e4d565b60405161027a9190613d69565b61024e610480366004613d7c565b610f76565b34801561049157600080fd5b506102a36104a036600461391e565b600090815261012d6020526040902054151590565b3480156104c157600080fd5b50610270611042565b3480156104d657600080fd5b5060c95460ff166102a3565b3480156104ee57600080fd5b5061024e6104fd366004613dbf565b6110f6565b34801561050e57600080fd5b506102706101c65481565b34801561052557600080fd5b5061024e61053436600461391e565b611139565b61024e610547366004613e32565b6111da565b34801561055857600080fd5b5061024e6113a6565b34801561056d57600080fd5b5061024e611571565b34801561058257600080fd5b506102a3610591366004613c38565b6115a3565b61024e6105a4366004613e62565b6115ce565b3480156105b557600080fd5b50610270600081565b3480156105ca57600080fd5b5061024e6105d9366004613ec2565b6116bb565b3480156105ea57600080fd5b506102706101c35481565b34801561060157600080fd5b50610270610610366004613efe565b6116c6565b34801561062157600080fd5b506102706101ca5481565b34801561063857600080fd5b5061027061064736600461391e565b600090815261012d602052604090205490565b34801561066657600080fd5b506102706101c55481565b34801561067d57600080fd5b5061069161068c366004613a2b565b611820565b60405161027a9190613f5c565b3480156106aa57600080fd5b5061024e6106b9366004613c38565b61198a565b3480156106ca57600080fd5b5061024e6106d9366004613fd2565b6119af565b3480156106ea57600080fd5b506106f3611af1565b60405161027a9190613ff4565b34801561070c57600080fd5b5061024e61071b3660046140a8565b611d60565b34801561072c57600080fd5b506102a361073b36600461410a565b6001600160a01b03918216600090815260666020908152604080832093909416825291909152205460ff1690565b34801561077557600080fd5b5061024e610784366004614134565b611de6565b34801561079557600080fd5b5061024e6107a4366004614198565b611e2b565b3480156107b557600080fd5b5061024e6107c436600461391e565b611e6e565b3480156107d557600080fd5b5061024e6107e436600461391e565b611f03565b60006001600160a01b0383166108595760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b60648201526084015b60405180910390fd5b5060008181526065602090815260408083206001600160a01b03861684529091529020545b92915050565b600061087e82611fde565b60008181526101c460205260409020600301546001600160a01b03163314806108be57506108be6000336115a3565b6108db5760405163388f811f60e01b815260040160405180910390fd5b600260008281526101c4602052604090205460ff1660038111156109015761090161399a565b1461091f57604051631f0fb6fd60e11b815260040160405180910390fd5b60008181526101c46020908152604091829020805460ff1916600317905590518281527f591913f977ab242c5871f116f36be231ff67df5e8e0bac1efd91fa8a723aca2b91015b60405180910390a150565b606060678054610980906141cb565b80601f01602080910402602001604051908101604052809291908181526020018280546109ac906141cb565b80156109f95780601f106109ce576101008083540402835291602001916109f9565b820191906000526020600020905b8154815290600101906020018083116109dc57829003601f168201915b50505050509050919050565b6000610a1081612003565b47821115610a3157604051631036b5ad60e31b815260040160405180910390fd5b4760005b6101c554811015610a925760008181526101c46020526040902060020154610a5d9083614215565b915083821015610a805760405163156bbc5b60e01b815260040160405180910390fd5b80610a8a81614228565b915050610a35565b50604051600090339085908381818185875af1925050503d8060008114610ad5576040519150601f19603f3d011682016040523d82523d6000602084013e610ada565b606091505b5050905080610afc576040516317f2c34560e31b815260040160405180910390fd5b50505050565b6101c4602052600090815260409020805460018201546002830154600384015460048501805460ff90951695939492936001600160a01b0390921692610b47906141cb565b80601f0160208091040260200160405190810160405280929190818152602001828054610b73906141cb565b8015610bc05780601f10610b9557610100808354040283529160200191610bc0565b820191906000526020600020905b815481529060010190602001808311610ba357829003601f168201915b505050505090806005018054610bd5906141cb565b80601f0160208091040260200160405190810160405280929190818152602001828054610c01906141cb565b8015610c4e5780601f10610c2357610100808354040283529160200191610c4e565b820191906000526020600020905b815481529060010190602001808311610c3157829003601f168201915b5050505050905086565b6001600160a01b038516331480610c745750610c74853361073b565b610c905760405162461bcd60e51b815260040161085090614241565b610c9d858585858561200d565b5050505050565b6000610caf81612003565b610cb983836121ba565b505050565b6001600160a01b0381163314610d2e5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610850565b610d388282612240565b5050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610d845760405162461bcd60e51b81526004016108509061428f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610dcd60008051602061490d833981519152546001600160a01b031690565b6001600160a01b031614610df35760405162461bcd60e51b8152600401610850906142db565b610dfc816122a7565b60408051600080825260208201909252610e18918391906122d1565b50565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610e4581612003565b610e1861243c565b60608151835114610eb25760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b6064820152608401610850565b600083516001600160401b03811115610ecd57610ecd613a46565b604051908082528060200260200182016040528015610ef6578160200160208202803683370190505b50905060005b8451811015610f6e57610f41858281518110610f1a57610f1a614327565b6020026020010151858381518110610f3457610f34614327565b60200260200101516107e9565b828281518110610f5357610f53614327565b6020908102919091010152610f6781614228565b9050610efc565b509392505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610fbe5760405162461bcd60e51b81526004016108509061428f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661100760008051602061490d833981519152546001600160a01b031690565b6001600160a01b03161461102d5760405162461bcd60e51b8152600401610850906142db565b611036826122a7565b610d38828260016122d1565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146110e25760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610850565b5060008051602061490d8339815191525b90565b6001600160a01b0383163314806111125750611112833361073b565b61112e5760405162461bcd60e51b815260040161085090614241565b610cb983838361248e565b600061114481612003565b600160008381526101c4602052604090205460ff16600381111561116a5761116a61399a565b146111885760405163137c9c1f60e31b815260040160405180910390fd5b60008281526101c46020908152604091829020805460ff1916600217905590518381527f8f4352ac8b4aefdd2333162306bbe09dd4f4ff6661e89ccc4e4dcced8794e8f7910160405180910390a15050565b6101ca543410156111fe57604051631036b5ad60e31b815260040160405180910390fd5b600260008381526101c4602052604090205460ff1660038111156112245761122461399a565b1461124257604051631f0fb6fd60e11b815260040160405180910390fd5b61125634836101c5546101c46101c961262d565b6000805b6101c8548110156112ea57336001600160a01b03166101c8828154811061128357611283614327565b6000918252602090912001546001600160a01b0316036112d857336001600160a01b03166101c882815481106112bb576112bb614327565b6000918252602090912001546001600160a01b03161491506112ea565b806112e281614228565b91505061125a565b5080611334576101c880546001810182556000919091527f8cdee82cb3ac6d59f1f417405a3eecf497b31f3d06d4c506f96deb67789f61e90180546001600160a01b031916331790555b3360009081526101c760209081526040808320600887901c845290915290208054600160ff86161b179055336001600160a01b0316837f710e220a47c8d9e50587c80fe509f5e762149ef672440eff70798204dd70f5eb846040516113999190613987565b60405180910390a3505050565b600054610100900460ff16158080156113c65750600054600160ff909116105b806113e05750303b1580156113e0575060005460ff166001145b6114435760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610850565b6000805460ff191660011790558015611466576000805461ff0019166101001790555b61147e60405180602001604052806000815250612a0e565b611486612a3e565b61148e612a67565b611496612a3e565b61149e612a3e565b6114a6612a3e565b6114b16000336121ba565b6114db7f7804d923f43a17d325d77e781528e0793b2edd9890ab45fc64efd7b4b427744c336121ba565b6115057f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a336121ba565b61152f7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3336121ba565b8015610e18576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610966565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61159b81612003565b610e18612a96565b60009182526097602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60006115d981612003565b600260008681526101c4602052604090205460ff1660038111156115ff576115ff61399a565b1461161d57604051631f0fb6fd60e11b815260040160405180910390fd5b6101c35460008681526101c46020526040902060010154859161163f9161433d565b6116499190614350565b34101561166957604051631036b5ad60e31b815260040160405180910390fd5b61167583868685612ad3565b6101c3546116839085614350565b61168d9034614215565b60008681526101c46020526040812060020180549091906116af90849061433d565b90915550505050505050565b610d38338383612bf8565b60006101c6548611156116ec57604051630f0c4c5f60e41b815260040160405180910390fd5b506101c5546040805160c0810190915280600181526020808201899052600060408084018290526001600160a01b038a1660608501526080840188905260a09093018690528481526101c49091522081518154829060ff191660018360038111156117595761175961399a565b0217905550602082015160018201556040820151600282015560608201516003820180546001600160a01b0319166001600160a01b03909216919091179055608082015160048201906117ac90826143ad565b5060a082015160058201906117c190826143ad565b50506101c58054915060006117d583614228565b91905055507f3deb71b5a6774038a220621d78241405004043d5a928de9c7956bcc5270416db8183888860405161180f949392919061446c565b60405180910390a195945050505050565b606060006101c5546001600160401b0381111561183f5761183f613a46565b60405190808252806020026020018201604052801561188557816020015b60408051808201909152606081526000602082015281526020019060019003908161185d5790505b50905060005b6101c5548110156119835760405180604001604052806101c4600084815260200190815260200160002060040180546118c3906141cb565b80601f01602080910402602001604051908101604052809291908181526020018280546118ef906141cb565b801561193c5780601f106119115761010080835404028352916020019161193c565b820191906000526020600020905b81548152906001019060200180831161191f57829003601f168201915b5050505050815260200161195086846107e9565b81525082828151811061196557611965614327565b6020026020010181905250808061197b90614228565b91505061188b565b5092915050565b6000828152609760205260409020600101546119a581612003565b610cb98383612240565b60008281526101c460205260409020600301546001600160a01b031633146119ea5760405163388f811f60e01b815260040160405180910390fd5b60008281526101c46020526040902060020154811115611a1d57604051637eafab7d60e01b815260040160405180910390fd5b604051600090339083908381818185875af1925050503d8060008114611a5f576040519150601f19603f3d011682016040523d82523d6000602084013e611a64565b606091505b5050905080611a86576040516317f2c34560e31b815260040160405180910390fd5b60008381526101c4602052604081206002018054849290611aa8908490614215565b90915550506040805184815260208101849052338183015290517ff1090e9d5138cd4909542e10e1da576730b07eb291a71a151e63160dde345b949181900360600190a1505050565b606060006101c5546001600160401b03811115611b1057611b10613a46565b604051908082528060200260200182016040528015611b8457816020015b611b716040805160c081019091528060008152602001600081526020016000815260200160006001600160a01b0316815260200160608152602001606081525090565b815260200190600190039081611b2e5790505b50905060005b6101c554811015611d5a5760008181526101c4602052604090819020815160c081019092528054829060ff166003811115611bc757611bc761399a565b6003811115611bd857611bd861399a565b8152600182015460208201526002820154604082015260038201546001600160a01b03166060820152600482018054608090920191611c16906141cb565b80601f0160208091040260200160405190810160405280929190818152602001828054611c42906141cb565b8015611c8f5780601f10611c6457610100808354040283529160200191611c8f565b820191906000526020600020905b815481529060010190602001808311611c7257829003601f168201915b50505050508152602001600582018054611ca8906141cb565b80601f0160208091040260200160405190810160405280929190818152602001828054611cd4906141cb565b8015611d215780601f10611cf657610100808354040283529160200191611d21565b820191906000526020600020905b815481529060010190602001808311611d0457829003601f168201915b505050505081525050828281518110611d3c57611d3c614327565b60200260200101819052508080611d5290614228565b915050611b8a565b50919050565b6000611d6b81612003565b60008481526101c4602052604081205460ff166003811115611d8f57611d8f61399a565b03611dad5760405163137c9c1f60e31b815260040160405180910390fd5b60008481526101c460205260409020600401611dc984826143ad565b5060008481526101c460205260409020600501610c9d83826143ad565b6001600160a01b038516331480611e025750611e02853361073b565b611e1e5760405162461bcd60e51b815260040161085090614241565b610c9d8585858585612cd0565b6001600160a01b038316331480611e475750611e47833361073b565b611e635760405162461bcd60e51b815260040161085090614241565b610cb9838383612e0c565b3360009081526101c760209081526040808320600885901c84529182905290912054600160ff84161b16611eb55760405163423f327760e11b815260040160405180910390fd5b600882901c6000908152602082905260408082208054600160ff87161b1916905551339184917fc6c1c3224e50c3c958e39197695bdfe8457ce7c0014d8d51a4d3aa12c5ac18489190a35050565b60008181526101c460205260409020600301546001600160a01b0316331480611f325750611f326000336115a3565b611f4f5760405163388f811f60e01b815260040160405180910390fd5b600360008281526101c4602052604090205460ff166003811115611f7557611f7561399a565b14611f935760405163968807a560e01b815260040160405180910390fd5b60008181526101c46020908152604091829020805460ff1916600217905590518281527f63bb17c9645a29322601b4fe88d8f3fa84f32229368294f903084be8f5d813ba9101610966565b60006001600160e01b03198216637965db0b60e01b148061087e575061087e82612f28565b610e188133612f78565b815183511461202e5760405162461bcd60e51b8152600401610850906144a6565b6001600160a01b0384166120545760405162461bcd60e51b8152600401610850906144ee565b33612063818787878787612fd1565b60005b845181101561214c57600085828151811061208357612083614327565b6020026020010151905060008583815181106120a1576120a1614327565b60209081029190910181015160008481526065835260408082206001600160a01b038e1683529093529190912054909150818110156120f25760405162461bcd60e51b815260040161085090614533565b60008381526065602090815260408083206001600160a01b038e8116855292528083208585039055908b1682528120805484929061213190849061433d565b925050819055505050508061214590614228565b9050612066565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb878760405161219c92919061457d565b60405180910390a46121b2818787878787612fe7565b505050505050565b6121c482826115a3565b610d385760008281526097602090815260408083206001600160a01b03851684529091529020805460ff191660011790556121fc3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b61224a82826115a3565b15610d385760008281526097602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3610d3881612003565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561230457610cb983613142565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561235e575060408051601f3d908101601f1916820190925261235b918101906145ab565b60015b6123c15760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610850565b60008051602061490d83398151915281146124305760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610850565b50610cb98383836131de565b612444613203565b60c9805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b0383166124b45760405162461bcd60e51b8152600401610850906145c4565b80518251146124d55760405162461bcd60e51b8152600401610850906144a6565b60003390506124f881856000868660405180602001604052806000815250612fd1565b60005b83518110156125c057600084828151811061251857612518614327565b60200260200101519050600084838151811061253657612536614327565b60209081029190910181015160008481526065835260408082206001600160a01b038c1683529093529190912054909150818110156125875760405162461bcd60e51b815260040161085090614607565b60009283526065602090815260408085206001600160a01b038b16865290915290922091039055806125b881614228565b9150506124fb565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb868660405161261192919061457d565b60405180910390a4604080516020810190915260009052610afc565b600061263a60028761464b565b9050600061264960058861464b565b9050818460008881526020019081526020016000206002016000828254612670919061433d565b909155505060008681526020859052604081206005018054612691906141cb565b80601f01602080910402602001604051908101604052809291908181526020018280546126bd906141cb565b801561270a5780601f106126df5761010080835404028352916020019161270a565b820191906000526020600020905b8154815290600101906020018083116126ed57829003601f168201915b505050505090506000866001600160401b0381111561272b5761272b613a46565b604051908082528060200260200182016040528015612754578160200160208202803683370190505b5090506000805b888110801561276a5750898114155b1561297857600081815260208990526040808220815160c081019092528054829060ff16600381111561279f5761279f61399a565b60038111156127b0576127b061399a565b8152600182015460208201526002820154604082015260038201546001600160a01b031660608201526004820180546080909201916127ee906141cb565b80601f016020809104026020016040519081016040528092919081815260200182805461281a906141cb565b80156128675780601f1061283c57610100808354040283529160200191612867565b820191906000526020600020905b81548152906001019060200180831161284a57829003601f168201915b50505050508152602001600582018054612880906141cb565b80601f01602080910402602001604051908101604052809291908181526020018280546128ac906141cb565b80156128f95780601f106128ce576101008083540402835291602001916128f9565b820191906000526020600020905b8154815290600101906020018083116128dc57829003601f168201915b50505050508152505090506129238160a00151868051602091820120825192909101919091201490565b1561296557806060015184848151811061293f5761293f614327565b6001600160a01b039092166020928302919091019091015261296260018461433d565b92505b508061297081614228565b91505061275b565b825115612a0157600061298b838761464b565b9050600091505b828210156129ff57808860008685815181106129b0576129b0614327565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008282546129e7919061433d565b909155508290506129f781614228565b925050612992565b505b5050505050505050505050565b600054610100900460ff16612a355760405162461bcd60e51b81526004016108509061466d565b610e188161324c565b600054610100900460ff16612a655760405162461bcd60e51b81526004016108509061466d565b565b600054610100900460ff16612a8e5760405162461bcd60e51b81526004016108509061466d565b612a6561327c565b612a9e6132af565b60c9805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586124713390565b6001600160a01b038416612b335760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b6064820152608401610850565b336000612b3f856132f5565b90506000612b4c856132f5565b9050612b5d83600089858589612fd1565b60008681526065602090815260408083206001600160a01b038b16845290915281208054879290612b8f90849061433d565b909155505060408051878152602081018790526001600160a01b03808a1692600092918716917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4612bef83600089898989613340565b50505050505050565b816001600160a01b0316836001600160a01b031603612c6b5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b6064820152608401610850565b6001600160a01b03838116600081815260666020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319101611399565b6001600160a01b038416612cf65760405162461bcd60e51b8152600401610850906144ee565b336000612d02856132f5565b90506000612d0f856132f5565b9050612d1f838989858589612fd1565b60008681526065602090815260408083206001600160a01b038c16845290915290205485811015612d625760405162461bcd60e51b815260040161085090614533565b60008781526065602090815260408083206001600160a01b038d8116855292528083208985039055908a16825281208054889290612da190849061433d565b909155505060408051888152602081018890526001600160a01b03808b16928c821692918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4612e01848a8a8a8a8a613340565b505050505050505050565b6001600160a01b038316612e325760405162461bcd60e51b8152600401610850906145c4565b336000612e3e846132f5565b90506000612e4b846132f5565b9050612e6b83876000858560405180602001604052806000815250612fd1565b60008581526065602090815260408083206001600160a01b038a16845290915290205484811015612eae5760405162461bcd60e51b815260040161085090614607565b60008681526065602090815260408083206001600160a01b038b81168086529184528285208a8703905582518b81529384018a90529092908816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4604080516020810190915260009052612bef565b60006001600160e01b03198216636cdb3d1360e11b1480612f5957506001600160e01b031982166303a24d0760e21b145b8061087e57506301ffc9a760e01b6001600160e01b031983161461087e565b612f8282826115a3565b610d3857612f8f816133fb565b612f9a83602061340d565b604051602001612fab9291906146b8565b60408051601f198184030181529082905262461bcd60e51b825261085091600401613987565b612fd96132af565b6121b28686868686866135af565b6001600160a01b0384163b156121b25760405163bc197c8160e01b81526001600160a01b0385169063bc197c819061302b908990899088908890889060040161472d565b6020604051808303816000875af1925050508015613066575060408051601f3d908101601f191682019092526130639181019061478b565b60015b613112576130726147a8565b806308c379a0036130ab57506130866147c3565b8061309157506130ad565b8060405162461bcd60e51b81526004016108509190613987565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b6064820152608401610850565b6001600160e01b0319811663bc197c8160e01b14612bef5760405162461bcd60e51b81526004016108509061484c565b6001600160a01b0381163b6131af5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610850565b60008051602061490d83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6131e78361372b565b6000825111806131f45750805b15610cb957610afc838361376b565b60c95460ff16612a655760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610850565b600054610100900460ff166132735760405162461bcd60e51b81526004016108509061466d565b610e1881613790565b600054610100900460ff166132a35760405162461bcd60e51b81526004016108509061466d565b60c9805460ff19169055565b60c95460ff1615612a655760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610850565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061332f5761332f614327565b602090810291909101015292915050565b6001600160a01b0384163b156121b25760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e61906133849089908990889088908890600401614894565b6020604051808303816000875af19250505080156133bf575060408051601f3d908101601f191682019092526133bc9181019061478b565b60015b6133cb576130726147a8565b6001600160e01b0319811663f23a6e6160e01b14612bef5760405162461bcd60e51b81526004016108509061484c565b606061087e6001600160a01b03831660145b6060600061341c836002614350565b61342790600261433d565b6001600160401b0381111561343e5761343e613a46565b6040519080825280601f01601f191660200182016040528015613468576020820181803683370190505b509050600360fc1b8160008151811061348357613483614327565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106134b2576134b2614327565b60200101906001600160f81b031916908160001a90535060006134d6846002614350565b6134e190600161433d565b90505b6001811115613559576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061351557613515614327565b1a60f81b82828151811061352b5761352b614327565b60200101906001600160f81b031916908160001a90535060049490941c93613552816148d9565b90506134e4565b5083156135a85760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610850565b9392505050565b6001600160a01b0385166136375760005b8351811015613635578281815181106135db576135db614327565b602002602001015161012d60008684815181106135fa576135fa614327565b60200260200101518152602001908152602001600020600082825461361f919061433d565b9091555061362e905081614228565b90506135c0565b505b6001600160a01b0384166121b25760005b8351811015612bef57600084828151811061366557613665614327565b60200260200101519050600084838151811061368357613683614327565b60200260200101519050600061012d6000848152602001908152602001600020549050818110156137075760405162461bcd60e51b815260206004820152602860248201527f455243313135353a206275726e20616d6f756e74206578636565647320746f74604482015267616c537570706c7960c01b6064820152608401610850565b600092835261012d60205260409092209103905561372481614228565b9050613648565b61373481613142565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606135a8838360405180606001604052806027815260200161492d6027913961379c565b6067610d3882826143ad565b6060600080856001600160a01b0316856040516137b991906148f0565b600060405180830381855af49150503d80600081146137f4576040519150601f19603f3d011682016040523d82523d6000602084013e6137f9565b606091505b509150915061380a86838387613814565b9695505050505050565b6060831561388357825160000361387c576001600160a01b0385163b61387c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610850565b508161388d565b61388d8383613895565b949350505050565b8151156130915781518083602001fd5b80356001600160a01b03811681146138bc57600080fd5b919050565b600080604083850312156138d457600080fd5b6138dd836138a5565b946020939093013593505050565b6001600160e01b031981168114610e1857600080fd5b60006020828403121561391357600080fd5b81356135a8816138eb565b60006020828403121561393057600080fd5b5035919050565b60005b8381101561395257818101518382015260200161393a565b50506000910152565b60008151808452613973816020860160208601613937565b601f01601f19169290920160200192915050565b6020815260006135a8602083018461395b565b634e487b7160e01b600052602160045260246000fd5b600481106139ce57634e487b7160e01b600052602160045260246000fd5b9052565b6139dc81886139b0565b85602082015284604082015260018060a01b038416606082015260c060808201526000613a0c60c083018561395b565b82810360a0840152613a1e818561395b565b9998505050505050505050565b600060208284031215613a3d57600080fd5b6135a8826138a5565b634e487b7160e01b600052604160045260246000fd5b601f8201601f191681016001600160401b0381118282101715613a8157613a81613a46565b6040525050565b60006001600160401b03821115613aa157613aa1613a46565b5060051b60200190565b600082601f830112613abc57600080fd5b81356020613ac982613a88565b604051613ad68282613a5c565b83815260059390931b8501820192828101915086841115613af657600080fd5b8286015b84811015613b115780358352918301918301613afa565b509695505050505050565b600082601f830112613b2d57600080fd5b81356001600160401b03811115613b4657613b46613a46565b604051613b5d601f8301601f191660200182613a5c565b818152846020838601011115613b7257600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a08688031215613ba757600080fd5b613bb0866138a5565b9450613bbe602087016138a5565b935060408601356001600160401b0380821115613bda57600080fd5b613be689838a01613aab565b94506060880135915080821115613bfc57600080fd5b613c0889838a01613aab565b93506080880135915080821115613c1e57600080fd5b50613c2b88828901613b1c565b9150509295509295909350565b60008060408385031215613c4b57600080fd5b82359150613c5b602084016138a5565b90509250929050565b60008060408385031215613c7757600080fd5b82356001600160401b0380821115613c8e57600080fd5b818501915085601f830112613ca257600080fd5b81356020613caf82613a88565b604051613cbc8282613a5c565b83815260059390931b8501820192828101915089841115613cdc57600080fd5b948201945b83861015613d0157613cf2866138a5565b82529482019490820190613ce1565b96505086013592505080821115613d1757600080fd5b50613d2485828601613aab565b9150509250929050565b600081518084526020808501945080840160005b83811015613d5e57815187529582019590820190600101613d42565b509495945050505050565b6020815260006135a86020830184613d2e565b60008060408385031215613d8f57600080fd5b613d98836138a5565b915060208301356001600160401b03811115613db357600080fd5b613d2485828601613b1c565b600080600060608486031215613dd457600080fd5b613ddd846138a5565b925060208401356001600160401b0380821115613df957600080fd5b613e0587838801613aab565b93506040860135915080821115613e1b57600080fd5b50613e2886828701613aab565b9150509250925092565b60008060408385031215613e4557600080fd5b8235915060208301356001600160401b03811115613db357600080fd5b60008060008060808587031215613e7857600080fd5b8435935060208501359250613e8f604086016138a5565b915060608501356001600160401b03811115613eaa57600080fd5b613eb687828801613b1c565b91505092959194509250565b60008060408385031215613ed557600080fd5b613ede836138a5565b915060208301358015158114613ef357600080fd5b809150509250929050565b600080600080600060a08688031215613f1657600080fd5b85359450613f26602087016138a5565b9350613f34604087016138a5565b925060608601356001600160401b0380821115613f5057600080fd5b613c0889838a01613b1c565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b83811015613fc457888303603f1901855281518051878552613fa78886018261395b565b918901519489019490945294870194925090860190600101613f83565b509098975050505050505050565b60008060408385031215613fe557600080fd5b50508035926020909101359150565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b83811015613fc457603f19898403018552815160c061403b8583516139b0565b81890151858a015287820151888601526060808301516001600160a01b0316908601526080808301518187018390526140768388018261395b565b9250505060a08083015192508582038187015250614094818361395b565b96890196945050509086019060010161401b565b6000806000606084860312156140bd57600080fd5b8335925060208401356001600160401b03808211156140db57600080fd5b6140e787838801613b1c565b935060408601359150808211156140fd57600080fd5b50613e2886828701613b1c565b6000806040838503121561411d57600080fd5b614126836138a5565b9150613c5b602084016138a5565b600080600080600060a0868803121561414c57600080fd5b614155866138a5565b9450614163602087016138a5565b9350604086013592506060860135915060808601356001600160401b0381111561418c57600080fd5b613c2b88828901613b1c565b6000806000606084860312156141ad57600080fd5b6141b6846138a5565b95602085013595506040909401359392505050565b600181811c908216806141df57607f821691505b602082108103611d5a57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8181038181111561087e5761087e6141ff565b60006001820161423a5761423a6141ff565b5060010190565b6020808252602e908201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60408201526d195c881bdc88185c1c1c9bdd995960921b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b8082018082111561087e5761087e6141ff565b808202811582820484141761087e5761087e6141ff565b601f821115610cb957600081815260208120601f850160051c8101602086101561438e5750805b601f850160051c820191505b818110156121b25782815560010161439a565b81516001600160401b038111156143c6576143c6613a46565b6143da816143d484546141cb565b84614367565b602080601f83116001811461440f57600084156143f75750858301515b600019600386901b1c1916600185901b1785556121b2565b600085815260208120601f198616915b8281101561443e5788860151825594840194600190910190840161441f565b508582101561445c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b848152608060208201526000614485608083018661395b565b6040830194909452506001600160a01b039190911660609091015292915050565b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b6040815260006145906040830185613d2e565b82810360208401526145a28185613d2e565b95945050505050565b6000602082840312156145bd57600080fd5b5051919050565b60208082526023908201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526024908201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604082015263616e636560e01b606082015260800190565b60008261466857634e487b7160e01b600052601260045260246000fd5b500490565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516146f0816017850160208801613937565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351614721816028840160208801613937565b01602801949350505050565b6001600160a01b0386811682528516602082015260a06040820181905260009061475990830186613d2e565b828103606084015261476b8186613d2e565b9050828103608084015261477f818561395b565b98975050505050505050565b60006020828403121561479d57600080fd5b81516135a8816138eb565b600060033d11156110f35760046000803e5060005160e01c90565b600060443d10156147d15790565b6040516003193d81016004833e81513d6001600160401b03816024840111818411171561480057505050505090565b82850191508151818111156148185750505050505090565b843d87010160208285010111156148325750505050505090565b61484160208286010187613a5c565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190526000906148ce9083018461395b565b979650505050505050565b6000816148e8576148e86141ff565b506000190190565b60008251614902818460208701613937565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212205775fe935d629c90d0ed99f19f617fa289154eb0c95b819e3cc5fadd98fc443564736f6c63430008130033", + "linkReferences": {}, + "deployedLinkReferences": {} } diff --git a/artifacts/src/Beliefs/LibBeliefs.sol/LibBeliefs.dbg.json b/artifacts/src/Beliefs/LibBeliefs.sol/LibBeliefs.dbg.json index eb80803..40febc9 100644 --- a/artifacts/src/Beliefs/LibBeliefs.sol/LibBeliefs.dbg.json +++ b/artifacts/src/Beliefs/LibBeliefs.sol/LibBeliefs.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/2ed725b1f2c7d633afb5e330c951db15.json" + "buildInfo": "../../../build-info/2bfcbf6f668e3ade71dc33a1b81bc2d2.json" } diff --git a/artifacts/src/Beliefs/LibBeliefs.sol/LibBeliefs.json b/artifacts/src/Beliefs/LibBeliefs.sol/LibBeliefs.json index 71f221d..0dec95c 100644 --- a/artifacts/src/Beliefs/LibBeliefs.sol/LibBeliefs.json +++ b/artifacts/src/Beliefs/LibBeliefs.sol/LibBeliefs.json @@ -3,8 +3,8 @@ "contractName": "LibBeliefs", "sourceName": "src/Beliefs/LibBeliefs.sol", "abi": [], - "bytecode": "0x61059a61003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c806308fe3d071461003a575b600080fd5b81801561004657600080fd5b5061005a610055366004610449565b61005c565b005b600061006960028761049a565b9050600061007860058861049a565b905081846000888152602001908152602001600020600201600082825461009f91906104bc565b9091555050600086815260208590526040812060050180546100c0906104cf565b80601f01602080910402602001604051908101604052809291908181526020018280546100ec906104cf565b80156101395780601f1061010e57610100808354040283529160200191610139565b820191906000526020600020905b81548152906001019060200180831161011c57829003601f168201915b5050505050905060008667ffffffffffffffff81111561015b5761015b610509565b604051908082528060200260200182016040528015610184578160200160208202803683370190505b5090506000805b888110801561019a5750898114155b1561039757600081815260208990526040808220815160c081019092528054829060ff1660038111156101cf576101cf61051f565b60038111156101e0576101e061051f565b8152600182015460208201526002820154604082015260038201546001600160a01b0316606082015260048201805460809092019161021e906104cf565b80601f016020809104026020016040519081016040528092919081815260200182805461024a906104cf565b80156102975780601f1061026c57610100808354040283529160200191610297565b820191906000526020600020905b81548152906001019060200180831161027a57829003601f168201915b505050505081526020016005820180546102b0906104cf565b80601f01602080910402602001604051908101604052809291908181526020018280546102dc906104cf565b80156103295780601f106102fe57610100808354040283529160200191610329565b820191906000526020600020905b81548152906001019060200180831161030c57829003601f168201915b50505050508152505090506103428160a001518661042d565b1561038457806060015184848151811061035e5761035e610535565b6001600160a01b03909216602092830291909101909101526103816001846104bc565b92505b508061038f8161054b565b91505061018b565b8251156104205760006103aa838761049a565b9050600091505b8282101561041e57808860008685815181106103cf576103cf610535565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600082825461040691906104bc565b909155508290506104168161054b565b9250506103b1565b505b5050505050505050505050565b6000818051906020012083805190602001201490505b92915050565b600080600080600060a0868803121561046157600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b634e487b7160e01b600052601160045260246000fd5b6000826104b757634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561044357610443610484565b600181811c908216806104e357607f821691505b60208210810361050357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006001820161055d5761055d610484565b506001019056fea2646970667358221220576eb6251c7fe40d4a02028e14b4423ebf2f73af5c26f3a55dd1c146aa6eafa964736f6c63430008130033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c806308fe3d071461003a575b600080fd5b81801561004657600080fd5b5061005a610055366004610449565b61005c565b005b600061006960028761049a565b9050600061007860058861049a565b905081846000888152602001908152602001600020600201600082825461009f91906104bc565b9091555050600086815260208590526040812060050180546100c0906104cf565b80601f01602080910402602001604051908101604052809291908181526020018280546100ec906104cf565b80156101395780601f1061010e57610100808354040283529160200191610139565b820191906000526020600020905b81548152906001019060200180831161011c57829003601f168201915b5050505050905060008667ffffffffffffffff81111561015b5761015b610509565b604051908082528060200260200182016040528015610184578160200160208202803683370190505b5090506000805b888110801561019a5750898114155b1561039757600081815260208990526040808220815160c081019092528054829060ff1660038111156101cf576101cf61051f565b60038111156101e0576101e061051f565b8152600182015460208201526002820154604082015260038201546001600160a01b0316606082015260048201805460809092019161021e906104cf565b80601f016020809104026020016040519081016040528092919081815260200182805461024a906104cf565b80156102975780601f1061026c57610100808354040283529160200191610297565b820191906000526020600020905b81548152906001019060200180831161027a57829003601f168201915b505050505081526020016005820180546102b0906104cf565b80601f01602080910402602001604051908101604052809291908181526020018280546102dc906104cf565b80156103295780601f106102fe57610100808354040283529160200191610329565b820191906000526020600020905b81548152906001019060200180831161030c57829003601f168201915b50505050508152505090506103428160a001518661042d565b1561038457806060015184848151811061035e5761035e610535565b6001600160a01b03909216602092830291909101909101526103816001846104bc565b92505b508061038f8161054b565b91505061018b565b8251156104205760006103aa838761049a565b9050600091505b8282101561041e57808860008685815181106103cf576103cf610535565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600082825461040691906104bc565b909155508290506104168161054b565b9250506103b1565b505b5050505050505050505050565b6000818051906020012083805190602001201490505b92915050565b600080600080600060a0868803121561046157600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b634e487b7160e01b600052601160045260246000fd5b6000826104b757634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561044357610443610484565b600181811c908216806104e357607f821691505b60208210810361050357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006001820161055d5761055d610484565b506001019056fea2646970667358221220576eb6251c7fe40d4a02028e14b4423ebf2f73af5c26f3a55dd1c146aa6eafa964736f6c63430008130033", + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e4c83928725e6e2836bd3922ea8d891fec813fa42108397f055587a63a1f495364736f6c63430008130033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e4c83928725e6e2836bd3922ea8d891fec813fa42108397f055587a63a1f495364736f6c63430008130033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/artifacts/src/Editions/Editions.sol/Editions.dbg.json b/artifacts/src/Editions/Editions.sol/Editions.dbg.json index eb80803..40febc9 100644 --- a/artifacts/src/Editions/Editions.sol/Editions.dbg.json +++ b/artifacts/src/Editions/Editions.sol/Editions.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/2ed725b1f2c7d633afb5e330c951db15.json" + "buildInfo": "../../../build-info/2bfcbf6f668e3ade71dc33a1b81bc2d2.json" } diff --git a/artifacts/src/Editions/Editions.sol/Editions.json b/artifacts/src/Editions/Editions.sol/Editions.json index 13819e7..f711901 100644 --- a/artifacts/src/Editions/Editions.sol/Editions.json +++ b/artifacts/src/Editions/Editions.sol/Editions.json @@ -503,25 +503,6 @@ "stateMutability": "view", "type": "function" }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "balances", - "outputs": [ - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, { "inputs": [ { @@ -1238,8 +1219,8 @@ "type": "receive" } ], - "bytecode": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000e7565b600054610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000e5576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6080516142926200011f60003960008181610cdb01528181610d1b01528181610f1501528181610f550152610fe401526142926000f3fe6080604052600436106102265760003560e01c80637357628c11610122578063c6fbb712116100a5578063e43990fe1161006c578063e43990fe146106b5578063e985e9c5146106d5578063f242432a1461071e578063f5298aca1461073e578063fc74efa21461075e57005b8063c6fbb7121461060f578063c84aae1714610626578063d547741f14610653578063d667c9ce14610673578063df6efc6c1461069357005b8063a217fddf116100e9578063a217fddf14610575578063a22cb4651461058a578063b0e21e8a146105aa578063b3a44bd6146105c1578063bd85b039146105e157005b80637357628c146104f85780638129fc1c146105185780638456cb591461052d57806391d1485414610542578063940123da1461056257005b806336568abe116101aa5780634f558e79116101715780634f558e791461046457806352d1902d146104945780635c975abb146104a95780636b20c454146104c15780636b5cb789146104e157005b806336568abe146103cf5780633659cfe6146103ef5780633f4ba83a1461040f5780634e1273f4146104245780634f1ef2861461045157005b8063248a9ca3116101ee578063248a9ca3146102ff578063279c806e1461032f57806327e235e3146103615780632eb2c2d61461038f5780632f2ff15d146103af57005b8062fdd58e1461022f57806301ffc9a7146102625780630a579eca146102925780630e89341c146102b2578063155dd5ee146102df57005b3661022d57005b005b34801561023b57600080fd5b5061024f61024a36600461321c565b61077e565b6040519081526020015b60405180910390f35b34801561026e57600080fd5b5061028261027d36600461325c565b610819565b6040519015158152602001610259565b34801561029e57600080fd5b5061022d6102ad366004613279565b610824565b3480156102be57600080fd5b506102d26102cd366004613279565b610906565b60405161025991906132e2565b3480156102eb57600080fd5b5061022d6102fa366004613279565b61099a565b34801561030b57600080fd5b5061024f61031a366004613279565b60009081526097602052604090206001015490565b34801561033b57600080fd5b5061034f61034a366004613279565b610a97565b6040516102599695949392919061332d565b34801561036d57600080fd5b5061024f61037c366004613386565b6101c76020526000908152604090205481565b34801561039b57600080fd5b5061022d6103aa3660046134ea565b610bed565b3480156103bb57600080fd5b5061022d6103ca366004613593565b610c39565b3480156103db57600080fd5b5061022d6103ea366004613593565b610c53565b3480156103fb57600080fd5b5061022d61040a366004613386565b610cd1565b34801561041b57600080fd5b5061022d610db0565b34801561043057600080fd5b5061044461043f3660046135bf565b610de2565b60405161025991906136c4565b61022d61045f3660046136d7565b610f0b565b34801561047057600080fd5b5061028261047f366004613279565b600090815261012d6020526040902054151590565b3480156104a057600080fd5b5061024f610fd7565b3480156104b557600080fd5b5060c95460ff16610282565b3480156104cd57600080fd5b5061022d6104dc36600461371a565b61108b565b3480156104ed57600080fd5b5061024f6101c65481565b34801561050457600080fd5b5061022d610513366004613279565b6110ce565b34801561052457600080fd5b5061022d61116f565b34801561053957600080fd5b5061022d61133a565b34801561054e57600080fd5b5061028261055d366004613593565b61136c565b61022d61057036600461378d565b611397565b34801561058157600080fd5b5061024f600081565b34801561059657600080fd5b5061022d6105a53660046137ed565b611484565b3480156105b657600080fd5b5061024f6101c35481565b3480156105cd57600080fd5b5061024f6105dc366004613829565b61148f565b3480156105ed57600080fd5b5061024f6105fc366004613279565b600090815261012d602052604090205490565b34801561061b57600080fd5b5061024f6101c55481565b34801561063257600080fd5b50610646610641366004613386565b6115e9565b6040516102599190613887565b34801561065f57600080fd5b5061022d61066e366004613593565b611753565b34801561067f57600080fd5b5061022d61068e3660046138fd565b611778565b34801561069f57600080fd5b506106a86118ba565b604051610259919061391f565b3480156106c157600080fd5b5061022d6106d03660046139d3565b611b29565b3480156106e157600080fd5b506102826106f0366004613a35565b6001600160a01b03918216600090815260666020908152604080832093909416825291909152205460ff1690565b34801561072a57600080fd5b5061022d610739366004613a5f565b611baf565b34801561074a57600080fd5b5061022d610759366004613ac3565b611bf4565b34801561076a57600080fd5b5061022d610779366004613279565b611c37565b60006001600160a01b0383166107ee5760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b60648201526084015b60405180910390fd5b5060008181526065602090815260408083206001600160a01b03861684529091529020545b92915050565b600061081382611d12565b60008181526101c460205260409020600301546001600160a01b0316331480610853575061085360003361136c565b6108705760405163388f811f60e01b815260040160405180910390fd5b600260008281526101c4602052604090205460ff166003811115610896576108966132f5565b146108b457604051631f0fb6fd60e11b815260040160405180910390fd5b60008181526101c46020908152604091829020805460ff1916600317905590518281527f591913f977ab242c5871f116f36be231ff67df5e8e0bac1efd91fa8a723aca2b91015b60405180910390a150565b60606067805461091590613af6565b80601f016020809104026020016040519081016040528092919081815260200182805461094190613af6565b801561098e5780601f106109635761010080835404028352916020019161098e565b820191906000526020600020905b81548152906001019060200180831161097157829003601f168201915b50505050509050919050565b60006109a581611d37565b478211156109c657604051631036b5ad60e31b815260040160405180910390fd5b4760005b6101c554811015610a275760008181526101c460205260409020600201546109f29083613b40565b915083821015610a155760405163156bbc5b60e01b815260040160405180910390fd5b80610a1f81613b53565b9150506109ca565b50604051600090339085908381818185875af1925050503d8060008114610a6a576040519150601f19603f3d011682016040523d82523d6000602084013e610a6f565b606091505b5050905080610a91576040516317f2c34560e31b815260040160405180910390fd5b50505050565b6101c4602052600090815260409020805460018201546002830154600384015460048501805460ff90951695939492936001600160a01b0390921692610adc90613af6565b80601f0160208091040260200160405190810160405280929190818152602001828054610b0890613af6565b8015610b555780601f10610b2a57610100808354040283529160200191610b55565b820191906000526020600020905b815481529060010190602001808311610b3857829003601f168201915b505050505090806005018054610b6a90613af6565b80601f0160208091040260200160405190810160405280929190818152602001828054610b9690613af6565b8015610be35780601f10610bb857610100808354040283529160200191610be3565b820191906000526020600020905b815481529060010190602001808311610bc657829003601f168201915b5050505050905086565b6001600160a01b038516331480610c095750610c0985336106f0565b610c255760405162461bcd60e51b81526004016107e590613b6c565b610c328585858585611d41565b5050505050565b6000610c4481611d37565b610c4e8383611eee565b505050565b6001600160a01b0381163314610cc35760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016107e5565b610ccd8282611f74565b5050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610d195760405162461bcd60e51b81526004016107e590613bba565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610d62600080516020614216833981519152546001600160a01b031690565b6001600160a01b031614610d885760405162461bcd60e51b81526004016107e590613c06565b610d9181611fdb565b60408051600080825260208201909252610dad91839190612005565b50565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610dda81611d37565b610dad612170565b60608151835114610e475760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b60648201526084016107e5565b600083516001600160401b03811115610e6257610e626133a1565b604051908082528060200260200182016040528015610e8b578160200160208202803683370190505b50905060005b8451811015610f0357610ed6858281518110610eaf57610eaf613c52565b6020026020010151858381518110610ec957610ec9613c52565b602002602001015161077e565b828281518110610ee857610ee8613c52565b6020908102919091010152610efc81613b53565b9050610e91565b509392505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610f535760405162461bcd60e51b81526004016107e590613bba565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610f9c600080516020614216833981519152546001600160a01b031690565b6001600160a01b031614610fc25760405162461bcd60e51b81526004016107e590613c06565b610fcb82611fdb565b610ccd82826001612005565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146110775760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016107e5565b506000805160206142168339815191525b90565b6001600160a01b0383163314806110a757506110a783336106f0565b6110c35760405162461bcd60e51b81526004016107e590613b6c565b610c4e8383836121c2565b60006110d981611d37565b600160008381526101c4602052604090205460ff1660038111156110ff576110ff6132f5565b1461111d5760405163137c9c1f60e31b815260040160405180910390fd5b60008281526101c46020908152604091829020805460ff1916600217905590518381527f8f4352ac8b4aefdd2333162306bbe09dd4f4ff6661e89ccc4e4dcced8794e8f7910160405180910390a15050565b600054610100900460ff161580801561118f5750600054600160ff909116105b806111a95750303b1580156111a9575060005460ff166001145b61120c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016107e5565b6000805460ff19166001179055801561122f576000805461ff0019166101001790555b61124760405180602001604052806000815250612361565b61124f612391565b6112576123ba565b61125f612391565b611267612391565b61126f612391565b61127a600033611eee565b6112a47f7804d923f43a17d325d77e781528e0793b2edd9890ab45fc64efd7b4b427744c33611eee565b6112ce7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33611eee565b6112f87f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e333611eee565b8015610dad576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020016108fb565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61136481611d37565b610dad6123e9565b60009182526097602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60006113a281611d37565b600260008681526101c4602052604090205460ff1660038111156113c8576113c86132f5565b146113e657604051631f0fb6fd60e11b815260040160405180910390fd5b6101c35460008681526101c46020526040902060010154859161140891613c68565b6114129190613c7b565b34101561143257604051631036b5ad60e31b815260040160405180910390fd5b61143e83868685612426565b6101c35461144c9085613c7b565b6114569034613b40565b60008681526101c4602052604081206002018054909190611478908490613c68565b90915550505050505050565b610ccd33838361254b565b60006101c6548611156114b557604051630f0c4c5f60e41b815260040160405180910390fd5b506101c5546040805160c0810190915280600181526020808201899052600060408084018290526001600160a01b038a1660608501526080840188905260a09093018690528481526101c49091522081518154829060ff19166001836003811115611522576115226132f5565b0217905550602082015160018201556040820151600282015560608201516003820180546001600160a01b0319166001600160a01b03909216919091179055608082015160048201906115759082613cd8565b5060a0820151600582019061158a9082613cd8565b50506101c580549150600061159e83613b53565b91905055507f3deb71b5a6774038a220621d78241405004043d5a928de9c7956bcc5270416db818388886040516115d89493929190613d97565b60405180910390a195945050505050565b606060006101c5546001600160401b03811115611608576116086133a1565b60405190808252806020026020018201604052801561164e57816020015b6040805180820190915260608152600060208201528152602001906001900390816116265790505b50905060005b6101c55481101561174c5760405180604001604052806101c46000848152602001908152602001600020600401805461168c90613af6565b80601f01602080910402602001604051908101604052809291908181526020018280546116b890613af6565b80156117055780601f106116da57610100808354040283529160200191611705565b820191906000526020600020905b8154815290600101906020018083116116e857829003601f168201915b50505050508152602001611719868461077e565b81525082828151811061172e5761172e613c52565b6020026020010181905250808061174490613b53565b915050611654565b5092915050565b60008281526097602052604090206001015461176e81611d37565b610c4e8383611f74565b60008281526101c460205260409020600301546001600160a01b031633146117b35760405163388f811f60e01b815260040160405180910390fd5b60008281526101c460205260409020600201548111156117e657604051637eafab7d60e01b815260040160405180910390fd5b604051600090339083908381818185875af1925050503d8060008114611828576040519150601f19603f3d011682016040523d82523d6000602084013e61182d565b606091505b505090508061184f576040516317f2c34560e31b815260040160405180910390fd5b60008381526101c4602052604081206002018054849290611871908490613b40565b90915550506040805184815260208101849052338183015290517ff1090e9d5138cd4909542e10e1da576730b07eb291a71a151e63160dde345b949181900360600190a1505050565b606060006101c5546001600160401b038111156118d9576118d96133a1565b60405190808252806020026020018201604052801561194d57816020015b61193a6040805160c081019091528060008152602001600081526020016000815260200160006001600160a01b0316815260200160608152602001606081525090565b8152602001906001900390816118f75790505b50905060005b6101c554811015611b235760008181526101c4602052604090819020815160c081019092528054829060ff166003811115611990576119906132f5565b60038111156119a1576119a16132f5565b8152600182015460208201526002820154604082015260038201546001600160a01b031660608201526004820180546080909201916119df90613af6565b80601f0160208091040260200160405190810160405280929190818152602001828054611a0b90613af6565b8015611a585780601f10611a2d57610100808354040283529160200191611a58565b820191906000526020600020905b815481529060010190602001808311611a3b57829003601f168201915b50505050508152602001600582018054611a7190613af6565b80601f0160208091040260200160405190810160405280929190818152602001828054611a9d90613af6565b8015611aea5780601f10611abf57610100808354040283529160200191611aea565b820191906000526020600020905b815481529060010190602001808311611acd57829003601f168201915b505050505081525050828281518110611b0557611b05613c52565b60200260200101819052508080611b1b90613b53565b915050611953565b50919050565b6000611b3481611d37565b60008481526101c4602052604081205460ff166003811115611b5857611b586132f5565b03611b765760405163137c9c1f60e31b815260040160405180910390fd5b60008481526101c460205260409020600401611b928482613cd8565b5060008481526101c460205260409020600501610c328382613cd8565b6001600160a01b038516331480611bcb5750611bcb85336106f0565b611be75760405162461bcd60e51b81526004016107e590613b6c565b610c32858585858561262b565b6001600160a01b038316331480611c105750611c1083336106f0565b611c2c5760405162461bcd60e51b81526004016107e590613b6c565b610c4e838383612767565b60008181526101c460205260409020600301546001600160a01b0316331480611c665750611c6660003361136c565b611c835760405163388f811f60e01b815260040160405180910390fd5b600360008281526101c4602052604090205460ff166003811115611ca957611ca96132f5565b14611cc75760405163968807a560e01b815260040160405180910390fd5b60008181526101c46020908152604091829020805460ff1916600217905590518281527f63bb17c9645a29322601b4fe88d8f3fa84f32229368294f903084be8f5d813ba91016108fb565b60006001600160e01b03198216637965db0b60e01b1480610813575061081382612883565b610dad81336128d3565b8151835114611d625760405162461bcd60e51b81526004016107e590613dd1565b6001600160a01b038416611d885760405162461bcd60e51b81526004016107e590613e19565b33611d9781878787878761292c565b60005b8451811015611e80576000858281518110611db757611db7613c52565b602002602001015190506000858381518110611dd557611dd5613c52565b60209081029190910181015160008481526065835260408082206001600160a01b038e168352909352919091205490915081811015611e265760405162461bcd60e51b81526004016107e590613e5e565b60008381526065602090815260408083206001600160a01b038e8116855292528083208585039055908b16825281208054849290611e65908490613c68565b9250508190555050505080611e7990613b53565b9050611d9a565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611ed0929190613ea8565b60405180910390a4611ee6818787878787612942565b505050505050565b611ef8828261136c565b610ccd5760008281526097602090815260408083206001600160a01b03851684529091529020805460ff19166001179055611f303390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b611f7e828261136c565b15610ccd5760008281526097602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3610ccd81611d37565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561203857610c4e83612a9d565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612092575060408051601f3d908101601f1916820190925261208f91810190613ed6565b60015b6120f55760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016107e5565b60008051602061421683398151915281146121645760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016107e5565b50610c4e838383612b39565b612178612b5e565b60c9805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b0383166121e85760405162461bcd60e51b81526004016107e590613eef565b80518251146122095760405162461bcd60e51b81526004016107e590613dd1565b600033905061222c8185600086866040518060200160405280600081525061292c565b60005b83518110156122f457600084828151811061224c5761224c613c52565b60200260200101519050600084838151811061226a5761226a613c52565b60209081029190910181015160008481526065835260408082206001600160a01b038c1683529093529190912054909150818110156122bb5760405162461bcd60e51b81526004016107e590613f32565b60009283526065602090815260408085206001600160a01b038b16865290915290922091039055806122ec81613b53565b91505061222f565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051612345929190613ea8565b60405180910390a4604080516020810190915260009052610a91565b600054610100900460ff166123885760405162461bcd60e51b81526004016107e590613f76565b610dad81612ba7565b600054610100900460ff166123b85760405162461bcd60e51b81526004016107e590613f76565b565b600054610100900460ff166123e15760405162461bcd60e51b81526004016107e590613f76565b6123b8612bd7565b6123f1612c0a565b60c9805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586121a53390565b6001600160a01b0384166124865760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b60648201526084016107e5565b33600061249285612c50565b9050600061249f85612c50565b90506124b08360008985858961292c565b60008681526065602090815260408083206001600160a01b038b168452909152812080548792906124e2908490613c68565b909155505060408051878152602081018790526001600160a01b03808a1692600092918716917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a461254283600089898989612c9b565b50505050505050565b816001600160a01b0316836001600160a01b0316036125be5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b60648201526084016107e5565b6001600160a01b03838116600081815260666020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0384166126515760405162461bcd60e51b81526004016107e590613e19565b33600061265d85612c50565b9050600061266a85612c50565b905061267a83898985858961292c565b60008681526065602090815260408083206001600160a01b038c168452909152902054858110156126bd5760405162461bcd60e51b81526004016107e590613e5e565b60008781526065602090815260408083206001600160a01b038d8116855292528083208985039055908a168252812080548892906126fc908490613c68565b909155505060408051888152602081018890526001600160a01b03808b16928c821692918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a461275c848a8a8a8a8a612c9b565b505050505050505050565b6001600160a01b03831661278d5760405162461bcd60e51b81526004016107e590613eef565b33600061279984612c50565b905060006127a684612c50565b90506127c68387600085856040518060200160405280600081525061292c565b60008581526065602090815260408083206001600160a01b038a168452909152902054848110156128095760405162461bcd60e51b81526004016107e590613f32565b60008681526065602090815260408083206001600160a01b038b81168086529184528285208a8703905582518b81529384018a90529092908816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4604080516020810190915260009052612542565b60006001600160e01b03198216636cdb3d1360e11b14806128b457506001600160e01b031982166303a24d0760e21b145b8061081357506301ffc9a760e01b6001600160e01b0319831614610813565b6128dd828261136c565b610ccd576128ea81612d56565b6128f5836020612d68565b604051602001612906929190613fc1565b60408051601f198184030181529082905262461bcd60e51b82526107e5916004016132e2565b612934612c0a565b611ee6868686868686612f0a565b6001600160a01b0384163b15611ee65760405163bc197c8160e01b81526001600160a01b0385169063bc197c81906129869089908990889088908890600401614036565b6020604051808303816000875af19250505080156129c1575060408051601f3d908101601f191682019092526129be91810190614094565b60015b612a6d576129cd6140b1565b806308c379a003612a0657506129e16140cc565b806129ec5750612a08565b8060405162461bcd60e51b81526004016107e591906132e2565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b60648201526084016107e5565b6001600160e01b0319811663bc197c8160e01b146125425760405162461bcd60e51b81526004016107e590614155565b6001600160a01b0381163b612b0a5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016107e5565b60008051602061421683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b612b4283613086565b600082511180612b4f5750805b15610c4e57610a9183836130c6565b60c95460ff166123b85760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016107e5565b600054610100900460ff16612bce5760405162461bcd60e51b81526004016107e590613f76565b610dad816130eb565b600054610100900460ff16612bfe5760405162461bcd60e51b81526004016107e590613f76565b60c9805460ff19169055565b60c95460ff16156123b85760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016107e5565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612c8a57612c8a613c52565b602090810291909101015292915050565b6001600160a01b0384163b15611ee65760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190612cdf908990899088908890889060040161419d565b6020604051808303816000875af1925050508015612d1a575060408051601f3d908101601f19168201909252612d1791810190614094565b60015b612d26576129cd6140b1565b6001600160e01b0319811663f23a6e6160e01b146125425760405162461bcd60e51b81526004016107e590614155565b60606108136001600160a01b03831660145b60606000612d77836002613c7b565b612d82906002613c68565b6001600160401b03811115612d9957612d996133a1565b6040519080825280601f01601f191660200182016040528015612dc3576020820181803683370190505b509050600360fc1b81600081518110612dde57612dde613c52565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110612e0d57612e0d613c52565b60200101906001600160f81b031916908160001a9053506000612e31846002613c7b565b612e3c906001613c68565b90505b6001811115612eb4576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110612e7057612e70613c52565b1a60f81b828281518110612e8657612e86613c52565b60200101906001600160f81b031916908160001a90535060049490941c93612ead816141e2565b9050612e3f565b508315612f035760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016107e5565b9392505050565b6001600160a01b038516612f925760005b8351811015612f9057828181518110612f3657612f36613c52565b602002602001015161012d6000868481518110612f5557612f55613c52565b602002602001015181526020019081526020016000206000828254612f7a9190613c68565b90915550612f89905081613b53565b9050612f1b565b505b6001600160a01b038416611ee65760005b8351811015612542576000848281518110612fc057612fc0613c52565b602002602001015190506000848381518110612fde57612fde613c52565b60200260200101519050600061012d6000848152602001908152602001600020549050818110156130625760405162461bcd60e51b815260206004820152602860248201527f455243313135353a206275726e20616d6f756e74206578636565647320746f74604482015267616c537570706c7960c01b60648201526084016107e5565b600092835261012d60205260409092209103905561307f81613b53565b9050612fa3565b61308f81612a9d565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060612f038383604051806060016040528060278152602001614236602791396130f7565b6067610ccd8282613cd8565b6060600080856001600160a01b03168560405161311491906141f9565b600060405180830381855af49150503d806000811461314f576040519150601f19603f3d011682016040523d82523d6000602084013e613154565b606091505b50915091506131658683838761316f565b9695505050505050565b606083156131de5782516000036131d7576001600160a01b0385163b6131d75760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016107e5565b50816131e8565b6131e883836131f0565b949350505050565b8151156129ec5781518083602001fd5b80356001600160a01b038116811461321757600080fd5b919050565b6000806040838503121561322f57600080fd5b61323883613200565b946020939093013593505050565b6001600160e01b031981168114610dad57600080fd5b60006020828403121561326e57600080fd5b8135612f0381613246565b60006020828403121561328b57600080fd5b5035919050565b60005b838110156132ad578181015183820152602001613295565b50506000910152565b600081518084526132ce816020860160208601613292565b601f01601f19169290920160200192915050565b602081526000612f0360208301846132b6565b634e487b7160e01b600052602160045260246000fd5b6004811061332957634e487b7160e01b600052602160045260246000fd5b9052565b613337818861330b565b85602082015284604082015260018060a01b038416606082015260c06080820152600061336760c08301856132b6565b82810360a084015261337981856132b6565b9998505050505050505050565b60006020828403121561339857600080fd5b612f0382613200565b634e487b7160e01b600052604160045260246000fd5b601f8201601f191681016001600160401b03811182821017156133dc576133dc6133a1565b6040525050565b60006001600160401b038211156133fc576133fc6133a1565b5060051b60200190565b600082601f83011261341757600080fd5b81356020613424826133e3565b60405161343182826133b7565b83815260059390931b850182019282810191508684111561345157600080fd5b8286015b8481101561346c5780358352918301918301613455565b509695505050505050565b600082601f83011261348857600080fd5b81356001600160401b038111156134a1576134a16133a1565b6040516134b8601f8301601f1916602001826133b7565b8181528460208386010111156134cd57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a0868803121561350257600080fd5b61350b86613200565b945061351960208701613200565b935060408601356001600160401b038082111561353557600080fd5b61354189838a01613406565b9450606088013591508082111561355757600080fd5b61356389838a01613406565b9350608088013591508082111561357957600080fd5b5061358688828901613477565b9150509295509295909350565b600080604083850312156135a657600080fd5b823591506135b660208401613200565b90509250929050565b600080604083850312156135d257600080fd5b82356001600160401b03808211156135e957600080fd5b818501915085601f8301126135fd57600080fd5b8135602061360a826133e3565b60405161361782826133b7565b83815260059390931b850182019282810191508984111561363757600080fd5b948201945b8386101561365c5761364d86613200565b8252948201949082019061363c565b9650508601359250508082111561367257600080fd5b5061367f85828601613406565b9150509250929050565b600081518084526020808501945080840160005b838110156136b95781518752958201959082019060010161369d565b509495945050505050565b602081526000612f036020830184613689565b600080604083850312156136ea57600080fd5b6136f383613200565b915060208301356001600160401b0381111561370e57600080fd5b61367f85828601613477565b60008060006060848603121561372f57600080fd5b61373884613200565b925060208401356001600160401b038082111561375457600080fd5b61376087838801613406565b9350604086013591508082111561377657600080fd5b5061378386828701613406565b9150509250925092565b600080600080608085870312156137a357600080fd5b84359350602085013592506137ba60408601613200565b915060608501356001600160401b038111156137d557600080fd5b6137e187828801613477565b91505092959194509250565b6000806040838503121561380057600080fd5b61380983613200565b91506020830135801515811461381e57600080fd5b809150509250929050565b600080600080600060a0868803121561384157600080fd5b8535945061385160208701613200565b935061385f60408701613200565b925060608601356001600160401b038082111561387b57600080fd5b61356389838a01613477565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b838110156138ef57888303603f19018552815180518785526138d2888601826132b6565b9189015194890194909452948701949250908601906001016138ae565b509098975050505050505050565b6000806040838503121561391057600080fd5b50508035926020909101359150565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b838110156138ef57603f19898403018552815160c061396685835161330b565b81890151858a015287820151888601526060808301516001600160a01b0316908601526080808301518187018390526139a1838801826132b6565b9250505060a080830151925085820381870152506139bf81836132b6565b968901969450505090860190600101613946565b6000806000606084860312156139e857600080fd5b8335925060208401356001600160401b0380821115613a0657600080fd5b613a1287838801613477565b93506040860135915080821115613a2857600080fd5b5061378386828701613477565b60008060408385031215613a4857600080fd5b613a5183613200565b91506135b660208401613200565b600080600080600060a08688031215613a7757600080fd5b613a8086613200565b9450613a8e60208701613200565b9350604086013592506060860135915060808601356001600160401b03811115613ab757600080fd5b61358688828901613477565b600080600060608486031215613ad857600080fd5b613ae184613200565b95602085013595506040909401359392505050565b600181811c90821680613b0a57607f821691505b602082108103611b2357634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8181038181111561081357610813613b2a565b600060018201613b6557613b65613b2a565b5060010190565b6020808252602e908201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60408201526d195c881bdc88185c1c1c9bdd995960921b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b8082018082111561081357610813613b2a565b808202811582820484141761081357610813613b2a565b601f821115610c4e57600081815260208120601f850160051c81016020861015613cb95750805b601f850160051c820191505b81811015611ee657828155600101613cc5565b81516001600160401b03811115613cf157613cf16133a1565b613d0581613cff8454613af6565b84613c92565b602080601f831160018114613d3a5760008415613d225750858301515b600019600386901b1c1916600185901b178555611ee6565b600085815260208120601f198616915b82811015613d6957888601518255948401946001909101908401613d4a565b5085821015613d875787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b848152608060208201526000613db060808301866132b6565b6040830194909452506001600160a01b039190911660609091015292915050565b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b604081526000613ebb6040830185613689565b8281036020840152613ecd8185613689565b95945050505050565b600060208284031215613ee857600080fd5b5051919050565b60208082526023908201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526024908201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604082015263616e636560e01b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351613ff9816017850160208801613292565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161402a816028840160208801613292565b01602801949350505050565b6001600160a01b0386811682528516602082015260a06040820181905260009061406290830186613689565b82810360608401526140748186613689565b9050828103608084015261408881856132b6565b98975050505050505050565b6000602082840312156140a657600080fd5b8151612f0381613246565b600060033d11156110885760046000803e5060005160e01c90565b600060443d10156140da5790565b6040516003193d81016004833e81513d6001600160401b03816024840111818411171561410957505050505090565b82850191508151818111156141215750505050505090565b843d870101602082850101111561413b5750505050505090565b61414a602082860101876133b7565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190526000906141d7908301846132b6565b979650505050505050565b6000816141f1576141f1613b2a565b506000190190565b6000825161420b818460208701613292565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122063b2a25178ea9376d114d2517b5625041c9d174c5f4e2fe15d860928d1a6afae64736f6c63430008130033", - "deployedBytecode": "0x6080604052600436106102265760003560e01c80637357628c11610122578063c6fbb712116100a5578063e43990fe1161006c578063e43990fe146106b5578063e985e9c5146106d5578063f242432a1461071e578063f5298aca1461073e578063fc74efa21461075e57005b8063c6fbb7121461060f578063c84aae1714610626578063d547741f14610653578063d667c9ce14610673578063df6efc6c1461069357005b8063a217fddf116100e9578063a217fddf14610575578063a22cb4651461058a578063b0e21e8a146105aa578063b3a44bd6146105c1578063bd85b039146105e157005b80637357628c146104f85780638129fc1c146105185780638456cb591461052d57806391d1485414610542578063940123da1461056257005b806336568abe116101aa5780634f558e79116101715780634f558e791461046457806352d1902d146104945780635c975abb146104a95780636b20c454146104c15780636b5cb789146104e157005b806336568abe146103cf5780633659cfe6146103ef5780633f4ba83a1461040f5780634e1273f4146104245780634f1ef2861461045157005b8063248a9ca3116101ee578063248a9ca3146102ff578063279c806e1461032f57806327e235e3146103615780632eb2c2d61461038f5780632f2ff15d146103af57005b8062fdd58e1461022f57806301ffc9a7146102625780630a579eca146102925780630e89341c146102b2578063155dd5ee146102df57005b3661022d57005b005b34801561023b57600080fd5b5061024f61024a36600461321c565b61077e565b6040519081526020015b60405180910390f35b34801561026e57600080fd5b5061028261027d36600461325c565b610819565b6040519015158152602001610259565b34801561029e57600080fd5b5061022d6102ad366004613279565b610824565b3480156102be57600080fd5b506102d26102cd366004613279565b610906565b60405161025991906132e2565b3480156102eb57600080fd5b5061022d6102fa366004613279565b61099a565b34801561030b57600080fd5b5061024f61031a366004613279565b60009081526097602052604090206001015490565b34801561033b57600080fd5b5061034f61034a366004613279565b610a97565b6040516102599695949392919061332d565b34801561036d57600080fd5b5061024f61037c366004613386565b6101c76020526000908152604090205481565b34801561039b57600080fd5b5061022d6103aa3660046134ea565b610bed565b3480156103bb57600080fd5b5061022d6103ca366004613593565b610c39565b3480156103db57600080fd5b5061022d6103ea366004613593565b610c53565b3480156103fb57600080fd5b5061022d61040a366004613386565b610cd1565b34801561041b57600080fd5b5061022d610db0565b34801561043057600080fd5b5061044461043f3660046135bf565b610de2565b60405161025991906136c4565b61022d61045f3660046136d7565b610f0b565b34801561047057600080fd5b5061028261047f366004613279565b600090815261012d6020526040902054151590565b3480156104a057600080fd5b5061024f610fd7565b3480156104b557600080fd5b5060c95460ff16610282565b3480156104cd57600080fd5b5061022d6104dc36600461371a565b61108b565b3480156104ed57600080fd5b5061024f6101c65481565b34801561050457600080fd5b5061022d610513366004613279565b6110ce565b34801561052457600080fd5b5061022d61116f565b34801561053957600080fd5b5061022d61133a565b34801561054e57600080fd5b5061028261055d366004613593565b61136c565b61022d61057036600461378d565b611397565b34801561058157600080fd5b5061024f600081565b34801561059657600080fd5b5061022d6105a53660046137ed565b611484565b3480156105b657600080fd5b5061024f6101c35481565b3480156105cd57600080fd5b5061024f6105dc366004613829565b61148f565b3480156105ed57600080fd5b5061024f6105fc366004613279565b600090815261012d602052604090205490565b34801561061b57600080fd5b5061024f6101c55481565b34801561063257600080fd5b50610646610641366004613386565b6115e9565b6040516102599190613887565b34801561065f57600080fd5b5061022d61066e366004613593565b611753565b34801561067f57600080fd5b5061022d61068e3660046138fd565b611778565b34801561069f57600080fd5b506106a86118ba565b604051610259919061391f565b3480156106c157600080fd5b5061022d6106d03660046139d3565b611b29565b3480156106e157600080fd5b506102826106f0366004613a35565b6001600160a01b03918216600090815260666020908152604080832093909416825291909152205460ff1690565b34801561072a57600080fd5b5061022d610739366004613a5f565b611baf565b34801561074a57600080fd5b5061022d610759366004613ac3565b611bf4565b34801561076a57600080fd5b5061022d610779366004613279565b611c37565b60006001600160a01b0383166107ee5760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b60648201526084015b60405180910390fd5b5060008181526065602090815260408083206001600160a01b03861684529091529020545b92915050565b600061081382611d12565b60008181526101c460205260409020600301546001600160a01b0316331480610853575061085360003361136c565b6108705760405163388f811f60e01b815260040160405180910390fd5b600260008281526101c4602052604090205460ff166003811115610896576108966132f5565b146108b457604051631f0fb6fd60e11b815260040160405180910390fd5b60008181526101c46020908152604091829020805460ff1916600317905590518281527f591913f977ab242c5871f116f36be231ff67df5e8e0bac1efd91fa8a723aca2b91015b60405180910390a150565b60606067805461091590613af6565b80601f016020809104026020016040519081016040528092919081815260200182805461094190613af6565b801561098e5780601f106109635761010080835404028352916020019161098e565b820191906000526020600020905b81548152906001019060200180831161097157829003601f168201915b50505050509050919050565b60006109a581611d37565b478211156109c657604051631036b5ad60e31b815260040160405180910390fd5b4760005b6101c554811015610a275760008181526101c460205260409020600201546109f29083613b40565b915083821015610a155760405163156bbc5b60e01b815260040160405180910390fd5b80610a1f81613b53565b9150506109ca565b50604051600090339085908381818185875af1925050503d8060008114610a6a576040519150601f19603f3d011682016040523d82523d6000602084013e610a6f565b606091505b5050905080610a91576040516317f2c34560e31b815260040160405180910390fd5b50505050565b6101c4602052600090815260409020805460018201546002830154600384015460048501805460ff90951695939492936001600160a01b0390921692610adc90613af6565b80601f0160208091040260200160405190810160405280929190818152602001828054610b0890613af6565b8015610b555780601f10610b2a57610100808354040283529160200191610b55565b820191906000526020600020905b815481529060010190602001808311610b3857829003601f168201915b505050505090806005018054610b6a90613af6565b80601f0160208091040260200160405190810160405280929190818152602001828054610b9690613af6565b8015610be35780601f10610bb857610100808354040283529160200191610be3565b820191906000526020600020905b815481529060010190602001808311610bc657829003601f168201915b5050505050905086565b6001600160a01b038516331480610c095750610c0985336106f0565b610c255760405162461bcd60e51b81526004016107e590613b6c565b610c328585858585611d41565b5050505050565b6000610c4481611d37565b610c4e8383611eee565b505050565b6001600160a01b0381163314610cc35760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016107e5565b610ccd8282611f74565b5050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610d195760405162461bcd60e51b81526004016107e590613bba565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610d62600080516020614216833981519152546001600160a01b031690565b6001600160a01b031614610d885760405162461bcd60e51b81526004016107e590613c06565b610d9181611fdb565b60408051600080825260208201909252610dad91839190612005565b50565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610dda81611d37565b610dad612170565b60608151835114610e475760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b60648201526084016107e5565b600083516001600160401b03811115610e6257610e626133a1565b604051908082528060200260200182016040528015610e8b578160200160208202803683370190505b50905060005b8451811015610f0357610ed6858281518110610eaf57610eaf613c52565b6020026020010151858381518110610ec957610ec9613c52565b602002602001015161077e565b828281518110610ee857610ee8613c52565b6020908102919091010152610efc81613b53565b9050610e91565b509392505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610f535760405162461bcd60e51b81526004016107e590613bba565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610f9c600080516020614216833981519152546001600160a01b031690565b6001600160a01b031614610fc25760405162461bcd60e51b81526004016107e590613c06565b610fcb82611fdb565b610ccd82826001612005565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146110775760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016107e5565b506000805160206142168339815191525b90565b6001600160a01b0383163314806110a757506110a783336106f0565b6110c35760405162461bcd60e51b81526004016107e590613b6c565b610c4e8383836121c2565b60006110d981611d37565b600160008381526101c4602052604090205460ff1660038111156110ff576110ff6132f5565b1461111d5760405163137c9c1f60e31b815260040160405180910390fd5b60008281526101c46020908152604091829020805460ff1916600217905590518381527f8f4352ac8b4aefdd2333162306bbe09dd4f4ff6661e89ccc4e4dcced8794e8f7910160405180910390a15050565b600054610100900460ff161580801561118f5750600054600160ff909116105b806111a95750303b1580156111a9575060005460ff166001145b61120c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016107e5565b6000805460ff19166001179055801561122f576000805461ff0019166101001790555b61124760405180602001604052806000815250612361565b61124f612391565b6112576123ba565b61125f612391565b611267612391565b61126f612391565b61127a600033611eee565b6112a47f7804d923f43a17d325d77e781528e0793b2edd9890ab45fc64efd7b4b427744c33611eee565b6112ce7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33611eee565b6112f87f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e333611eee565b8015610dad576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020016108fb565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61136481611d37565b610dad6123e9565b60009182526097602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60006113a281611d37565b600260008681526101c4602052604090205460ff1660038111156113c8576113c86132f5565b146113e657604051631f0fb6fd60e11b815260040160405180910390fd5b6101c35460008681526101c46020526040902060010154859161140891613c68565b6114129190613c7b565b34101561143257604051631036b5ad60e31b815260040160405180910390fd5b61143e83868685612426565b6101c35461144c9085613c7b565b6114569034613b40565b60008681526101c4602052604081206002018054909190611478908490613c68565b90915550505050505050565b610ccd33838361254b565b60006101c6548611156114b557604051630f0c4c5f60e41b815260040160405180910390fd5b506101c5546040805160c0810190915280600181526020808201899052600060408084018290526001600160a01b038a1660608501526080840188905260a09093018690528481526101c49091522081518154829060ff19166001836003811115611522576115226132f5565b0217905550602082015160018201556040820151600282015560608201516003820180546001600160a01b0319166001600160a01b03909216919091179055608082015160048201906115759082613cd8565b5060a0820151600582019061158a9082613cd8565b50506101c580549150600061159e83613b53565b91905055507f3deb71b5a6774038a220621d78241405004043d5a928de9c7956bcc5270416db818388886040516115d89493929190613d97565b60405180910390a195945050505050565b606060006101c5546001600160401b03811115611608576116086133a1565b60405190808252806020026020018201604052801561164e57816020015b6040805180820190915260608152600060208201528152602001906001900390816116265790505b50905060005b6101c55481101561174c5760405180604001604052806101c46000848152602001908152602001600020600401805461168c90613af6565b80601f01602080910402602001604051908101604052809291908181526020018280546116b890613af6565b80156117055780601f106116da57610100808354040283529160200191611705565b820191906000526020600020905b8154815290600101906020018083116116e857829003601f168201915b50505050508152602001611719868461077e565b81525082828151811061172e5761172e613c52565b6020026020010181905250808061174490613b53565b915050611654565b5092915050565b60008281526097602052604090206001015461176e81611d37565b610c4e8383611f74565b60008281526101c460205260409020600301546001600160a01b031633146117b35760405163388f811f60e01b815260040160405180910390fd5b60008281526101c460205260409020600201548111156117e657604051637eafab7d60e01b815260040160405180910390fd5b604051600090339083908381818185875af1925050503d8060008114611828576040519150601f19603f3d011682016040523d82523d6000602084013e61182d565b606091505b505090508061184f576040516317f2c34560e31b815260040160405180910390fd5b60008381526101c4602052604081206002018054849290611871908490613b40565b90915550506040805184815260208101849052338183015290517ff1090e9d5138cd4909542e10e1da576730b07eb291a71a151e63160dde345b949181900360600190a1505050565b606060006101c5546001600160401b038111156118d9576118d96133a1565b60405190808252806020026020018201604052801561194d57816020015b61193a6040805160c081019091528060008152602001600081526020016000815260200160006001600160a01b0316815260200160608152602001606081525090565b8152602001906001900390816118f75790505b50905060005b6101c554811015611b235760008181526101c4602052604090819020815160c081019092528054829060ff166003811115611990576119906132f5565b60038111156119a1576119a16132f5565b8152600182015460208201526002820154604082015260038201546001600160a01b031660608201526004820180546080909201916119df90613af6565b80601f0160208091040260200160405190810160405280929190818152602001828054611a0b90613af6565b8015611a585780601f10611a2d57610100808354040283529160200191611a58565b820191906000526020600020905b815481529060010190602001808311611a3b57829003601f168201915b50505050508152602001600582018054611a7190613af6565b80601f0160208091040260200160405190810160405280929190818152602001828054611a9d90613af6565b8015611aea5780601f10611abf57610100808354040283529160200191611aea565b820191906000526020600020905b815481529060010190602001808311611acd57829003601f168201915b505050505081525050828281518110611b0557611b05613c52565b60200260200101819052508080611b1b90613b53565b915050611953565b50919050565b6000611b3481611d37565b60008481526101c4602052604081205460ff166003811115611b5857611b586132f5565b03611b765760405163137c9c1f60e31b815260040160405180910390fd5b60008481526101c460205260409020600401611b928482613cd8565b5060008481526101c460205260409020600501610c328382613cd8565b6001600160a01b038516331480611bcb5750611bcb85336106f0565b611be75760405162461bcd60e51b81526004016107e590613b6c565b610c32858585858561262b565b6001600160a01b038316331480611c105750611c1083336106f0565b611c2c5760405162461bcd60e51b81526004016107e590613b6c565b610c4e838383612767565b60008181526101c460205260409020600301546001600160a01b0316331480611c665750611c6660003361136c565b611c835760405163388f811f60e01b815260040160405180910390fd5b600360008281526101c4602052604090205460ff166003811115611ca957611ca96132f5565b14611cc75760405163968807a560e01b815260040160405180910390fd5b60008181526101c46020908152604091829020805460ff1916600217905590518281527f63bb17c9645a29322601b4fe88d8f3fa84f32229368294f903084be8f5d813ba91016108fb565b60006001600160e01b03198216637965db0b60e01b1480610813575061081382612883565b610dad81336128d3565b8151835114611d625760405162461bcd60e51b81526004016107e590613dd1565b6001600160a01b038416611d885760405162461bcd60e51b81526004016107e590613e19565b33611d9781878787878761292c565b60005b8451811015611e80576000858281518110611db757611db7613c52565b602002602001015190506000858381518110611dd557611dd5613c52565b60209081029190910181015160008481526065835260408082206001600160a01b038e168352909352919091205490915081811015611e265760405162461bcd60e51b81526004016107e590613e5e565b60008381526065602090815260408083206001600160a01b038e8116855292528083208585039055908b16825281208054849290611e65908490613c68565b9250508190555050505080611e7990613b53565b9050611d9a565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611ed0929190613ea8565b60405180910390a4611ee6818787878787612942565b505050505050565b611ef8828261136c565b610ccd5760008281526097602090815260408083206001600160a01b03851684529091529020805460ff19166001179055611f303390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b611f7e828261136c565b15610ccd5760008281526097602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3610ccd81611d37565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561203857610c4e83612a9d565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612092575060408051601f3d908101601f1916820190925261208f91810190613ed6565b60015b6120f55760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016107e5565b60008051602061421683398151915281146121645760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016107e5565b50610c4e838383612b39565b612178612b5e565b60c9805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b0383166121e85760405162461bcd60e51b81526004016107e590613eef565b80518251146122095760405162461bcd60e51b81526004016107e590613dd1565b600033905061222c8185600086866040518060200160405280600081525061292c565b60005b83518110156122f457600084828151811061224c5761224c613c52565b60200260200101519050600084838151811061226a5761226a613c52565b60209081029190910181015160008481526065835260408082206001600160a01b038c1683529093529190912054909150818110156122bb5760405162461bcd60e51b81526004016107e590613f32565b60009283526065602090815260408085206001600160a01b038b16865290915290922091039055806122ec81613b53565b91505061222f565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051612345929190613ea8565b60405180910390a4604080516020810190915260009052610a91565b600054610100900460ff166123885760405162461bcd60e51b81526004016107e590613f76565b610dad81612ba7565b600054610100900460ff166123b85760405162461bcd60e51b81526004016107e590613f76565b565b600054610100900460ff166123e15760405162461bcd60e51b81526004016107e590613f76565b6123b8612bd7565b6123f1612c0a565b60c9805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586121a53390565b6001600160a01b0384166124865760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b60648201526084016107e5565b33600061249285612c50565b9050600061249f85612c50565b90506124b08360008985858961292c565b60008681526065602090815260408083206001600160a01b038b168452909152812080548792906124e2908490613c68565b909155505060408051878152602081018790526001600160a01b03808a1692600092918716917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a461254283600089898989612c9b565b50505050505050565b816001600160a01b0316836001600160a01b0316036125be5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b60648201526084016107e5565b6001600160a01b03838116600081815260666020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0384166126515760405162461bcd60e51b81526004016107e590613e19565b33600061265d85612c50565b9050600061266a85612c50565b905061267a83898985858961292c565b60008681526065602090815260408083206001600160a01b038c168452909152902054858110156126bd5760405162461bcd60e51b81526004016107e590613e5e565b60008781526065602090815260408083206001600160a01b038d8116855292528083208985039055908a168252812080548892906126fc908490613c68565b909155505060408051888152602081018890526001600160a01b03808b16928c821692918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a461275c848a8a8a8a8a612c9b565b505050505050505050565b6001600160a01b03831661278d5760405162461bcd60e51b81526004016107e590613eef565b33600061279984612c50565b905060006127a684612c50565b90506127c68387600085856040518060200160405280600081525061292c565b60008581526065602090815260408083206001600160a01b038a168452909152902054848110156128095760405162461bcd60e51b81526004016107e590613f32565b60008681526065602090815260408083206001600160a01b038b81168086529184528285208a8703905582518b81529384018a90529092908816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4604080516020810190915260009052612542565b60006001600160e01b03198216636cdb3d1360e11b14806128b457506001600160e01b031982166303a24d0760e21b145b8061081357506301ffc9a760e01b6001600160e01b0319831614610813565b6128dd828261136c565b610ccd576128ea81612d56565b6128f5836020612d68565b604051602001612906929190613fc1565b60408051601f198184030181529082905262461bcd60e51b82526107e5916004016132e2565b612934612c0a565b611ee6868686868686612f0a565b6001600160a01b0384163b15611ee65760405163bc197c8160e01b81526001600160a01b0385169063bc197c81906129869089908990889088908890600401614036565b6020604051808303816000875af19250505080156129c1575060408051601f3d908101601f191682019092526129be91810190614094565b60015b612a6d576129cd6140b1565b806308c379a003612a0657506129e16140cc565b806129ec5750612a08565b8060405162461bcd60e51b81526004016107e591906132e2565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b60648201526084016107e5565b6001600160e01b0319811663bc197c8160e01b146125425760405162461bcd60e51b81526004016107e590614155565b6001600160a01b0381163b612b0a5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016107e5565b60008051602061421683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b612b4283613086565b600082511180612b4f5750805b15610c4e57610a9183836130c6565b60c95460ff166123b85760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016107e5565b600054610100900460ff16612bce5760405162461bcd60e51b81526004016107e590613f76565b610dad816130eb565b600054610100900460ff16612bfe5760405162461bcd60e51b81526004016107e590613f76565b60c9805460ff19169055565b60c95460ff16156123b85760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016107e5565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612c8a57612c8a613c52565b602090810291909101015292915050565b6001600160a01b0384163b15611ee65760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190612cdf908990899088908890889060040161419d565b6020604051808303816000875af1925050508015612d1a575060408051601f3d908101601f19168201909252612d1791810190614094565b60015b612d26576129cd6140b1565b6001600160e01b0319811663f23a6e6160e01b146125425760405162461bcd60e51b81526004016107e590614155565b60606108136001600160a01b03831660145b60606000612d77836002613c7b565b612d82906002613c68565b6001600160401b03811115612d9957612d996133a1565b6040519080825280601f01601f191660200182016040528015612dc3576020820181803683370190505b509050600360fc1b81600081518110612dde57612dde613c52565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110612e0d57612e0d613c52565b60200101906001600160f81b031916908160001a9053506000612e31846002613c7b565b612e3c906001613c68565b90505b6001811115612eb4576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110612e7057612e70613c52565b1a60f81b828281518110612e8657612e86613c52565b60200101906001600160f81b031916908160001a90535060049490941c93612ead816141e2565b9050612e3f565b508315612f035760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016107e5565b9392505050565b6001600160a01b038516612f925760005b8351811015612f9057828181518110612f3657612f36613c52565b602002602001015161012d6000868481518110612f5557612f55613c52565b602002602001015181526020019081526020016000206000828254612f7a9190613c68565b90915550612f89905081613b53565b9050612f1b565b505b6001600160a01b038416611ee65760005b8351811015612542576000848281518110612fc057612fc0613c52565b602002602001015190506000848381518110612fde57612fde613c52565b60200260200101519050600061012d6000848152602001908152602001600020549050818110156130625760405162461bcd60e51b815260206004820152602860248201527f455243313135353a206275726e20616d6f756e74206578636565647320746f74604482015267616c537570706c7960c01b60648201526084016107e5565b600092835261012d60205260409092209103905561307f81613b53565b9050612fa3565b61308f81612a9d565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060612f038383604051806060016040528060278152602001614236602791396130f7565b6067610ccd8282613cd8565b6060600080856001600160a01b03168560405161311491906141f9565b600060405180830381855af49150503d806000811461314f576040519150601f19603f3d011682016040523d82523d6000602084013e613154565b606091505b50915091506131658683838761316f565b9695505050505050565b606083156131de5782516000036131d7576001600160a01b0385163b6131d75760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016107e5565b50816131e8565b6131e883836131f0565b949350505050565b8151156129ec5781518083602001fd5b80356001600160a01b038116811461321757600080fd5b919050565b6000806040838503121561322f57600080fd5b61323883613200565b946020939093013593505050565b6001600160e01b031981168114610dad57600080fd5b60006020828403121561326e57600080fd5b8135612f0381613246565b60006020828403121561328b57600080fd5b5035919050565b60005b838110156132ad578181015183820152602001613295565b50506000910152565b600081518084526132ce816020860160208601613292565b601f01601f19169290920160200192915050565b602081526000612f0360208301846132b6565b634e487b7160e01b600052602160045260246000fd5b6004811061332957634e487b7160e01b600052602160045260246000fd5b9052565b613337818861330b565b85602082015284604082015260018060a01b038416606082015260c06080820152600061336760c08301856132b6565b82810360a084015261337981856132b6565b9998505050505050505050565b60006020828403121561339857600080fd5b612f0382613200565b634e487b7160e01b600052604160045260246000fd5b601f8201601f191681016001600160401b03811182821017156133dc576133dc6133a1565b6040525050565b60006001600160401b038211156133fc576133fc6133a1565b5060051b60200190565b600082601f83011261341757600080fd5b81356020613424826133e3565b60405161343182826133b7565b83815260059390931b850182019282810191508684111561345157600080fd5b8286015b8481101561346c5780358352918301918301613455565b509695505050505050565b600082601f83011261348857600080fd5b81356001600160401b038111156134a1576134a16133a1565b6040516134b8601f8301601f1916602001826133b7565b8181528460208386010111156134cd57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a0868803121561350257600080fd5b61350b86613200565b945061351960208701613200565b935060408601356001600160401b038082111561353557600080fd5b61354189838a01613406565b9450606088013591508082111561355757600080fd5b61356389838a01613406565b9350608088013591508082111561357957600080fd5b5061358688828901613477565b9150509295509295909350565b600080604083850312156135a657600080fd5b823591506135b660208401613200565b90509250929050565b600080604083850312156135d257600080fd5b82356001600160401b03808211156135e957600080fd5b818501915085601f8301126135fd57600080fd5b8135602061360a826133e3565b60405161361782826133b7565b83815260059390931b850182019282810191508984111561363757600080fd5b948201945b8386101561365c5761364d86613200565b8252948201949082019061363c565b9650508601359250508082111561367257600080fd5b5061367f85828601613406565b9150509250929050565b600081518084526020808501945080840160005b838110156136b95781518752958201959082019060010161369d565b509495945050505050565b602081526000612f036020830184613689565b600080604083850312156136ea57600080fd5b6136f383613200565b915060208301356001600160401b0381111561370e57600080fd5b61367f85828601613477565b60008060006060848603121561372f57600080fd5b61373884613200565b925060208401356001600160401b038082111561375457600080fd5b61376087838801613406565b9350604086013591508082111561377657600080fd5b5061378386828701613406565b9150509250925092565b600080600080608085870312156137a357600080fd5b84359350602085013592506137ba60408601613200565b915060608501356001600160401b038111156137d557600080fd5b6137e187828801613477565b91505092959194509250565b6000806040838503121561380057600080fd5b61380983613200565b91506020830135801515811461381e57600080fd5b809150509250929050565b600080600080600060a0868803121561384157600080fd5b8535945061385160208701613200565b935061385f60408701613200565b925060608601356001600160401b038082111561387b57600080fd5b61356389838a01613477565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b838110156138ef57888303603f19018552815180518785526138d2888601826132b6565b9189015194890194909452948701949250908601906001016138ae565b509098975050505050505050565b6000806040838503121561391057600080fd5b50508035926020909101359150565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b838110156138ef57603f19898403018552815160c061396685835161330b565b81890151858a015287820151888601526060808301516001600160a01b0316908601526080808301518187018390526139a1838801826132b6565b9250505060a080830151925085820381870152506139bf81836132b6565b968901969450505090860190600101613946565b6000806000606084860312156139e857600080fd5b8335925060208401356001600160401b0380821115613a0657600080fd5b613a1287838801613477565b93506040860135915080821115613a2857600080fd5b5061378386828701613477565b60008060408385031215613a4857600080fd5b613a5183613200565b91506135b660208401613200565b600080600080600060a08688031215613a7757600080fd5b613a8086613200565b9450613a8e60208701613200565b9350604086013592506060860135915060808601356001600160401b03811115613ab757600080fd5b61358688828901613477565b600080600060608486031215613ad857600080fd5b613ae184613200565b95602085013595506040909401359392505050565b600181811c90821680613b0a57607f821691505b602082108103611b2357634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8181038181111561081357610813613b2a565b600060018201613b6557613b65613b2a565b5060010190565b6020808252602e908201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60408201526d195c881bdc88185c1c1c9bdd995960921b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b8082018082111561081357610813613b2a565b808202811582820484141761081357610813613b2a565b601f821115610c4e57600081815260208120601f850160051c81016020861015613cb95750805b601f850160051c820191505b81811015611ee657828155600101613cc5565b81516001600160401b03811115613cf157613cf16133a1565b613d0581613cff8454613af6565b84613c92565b602080601f831160018114613d3a5760008415613d225750858301515b600019600386901b1c1916600185901b178555611ee6565b600085815260208120601f198616915b82811015613d6957888601518255948401946001909101908401613d4a565b5085821015613d875787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b848152608060208201526000613db060808301866132b6565b6040830194909452506001600160a01b039190911660609091015292915050565b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b604081526000613ebb6040830185613689565b8281036020840152613ecd8185613689565b95945050505050565b600060208284031215613ee857600080fd5b5051919050565b60208082526023908201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526024908201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604082015263616e636560e01b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351613ff9816017850160208801613292565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161402a816028840160208801613292565b01602801949350505050565b6001600160a01b0386811682528516602082015260a06040820181905260009061406290830186613689565b82810360608401526140748186613689565b9050828103608084015261408881856132b6565b98975050505050505050565b6000602082840312156140a657600080fd5b8151612f0381613246565b600060033d11156110885760046000803e5060005160e01c90565b600060443d10156140da5790565b6040516003193d81016004833e81513d6001600160401b03816024840111818411171561410957505050505090565b82850191508151818111156141215750505050505090565b843d870101602082850101111561413b5750505050505090565b61414a602082860101876133b7565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190526000906141d7908301846132b6565b979650505050505050565b6000816141f1576141f1613b2a565b506000190190565b6000825161420b818460208701613292565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122063b2a25178ea9376d114d2517b5625041c9d174c5f4e2fe15d860928d1a6afae64736f6c63430008130033", + "bytecode": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000e7565b600054610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000e5576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6080516142596200011f60003960008181610ca201528181610ce201528181610edc01528181610f1c0152610fab01526142596000f3fe60806040526004361061021b5760003560e01c80637357628c11610122578063c6fbb712116100a5578063e43990fe1161006c578063e43990fe1461067c578063e985e9c51461069c578063f242432a146106e5578063f5298aca14610705578063fc74efa21461072557005b8063c6fbb712146105d6578063c84aae17146105ed578063d547741f1461061a578063d667c9ce1461063a578063df6efc6c1461065a57005b8063a217fddf116100e9578063a217fddf1461053c578063a22cb46514610551578063b0e21e8a14610571578063b3a44bd614610588578063bd85b039146105a857005b80637357628c146104bf5780638129fc1c146104df5780638456cb59146104f457806391d1485414610509578063940123da1461052957005b806336568abe116101aa5780634f558e79116101715780634f558e791461042b57806352d1902d1461045b5780635c975abb146104705780636b20c454146104885780636b5cb789146104a857005b806336568abe146103965780633659cfe6146103b65780633f4ba83a146103d65780634e1273f4146103eb5780634f1ef2861461041857005b8063155dd5ee116101ee578063155dd5ee146102d4578063248a9ca3146102f4578063279c806e146103245780632eb2c2d6146103565780632f2ff15d1461037657005b8062fdd58e1461022457806301ffc9a7146102575780630a579eca146102875780630e89341c146102a757005b3661022257005b005b34801561023057600080fd5b5061024461023f3660046131e3565b610745565b6040519081526020015b60405180910390f35b34801561026357600080fd5b50610277610272366004613223565b6107e0565b604051901515815260200161024e565b34801561029357600080fd5b506102226102a2366004613240565b6107eb565b3480156102b357600080fd5b506102c76102c2366004613240565b6108cd565b60405161024e91906132a9565b3480156102e057600080fd5b506102226102ef366004613240565b610961565b34801561030057600080fd5b5061024461030f366004613240565b60009081526097602052604090206001015490565b34801561033057600080fd5b5061034461033f366004613240565b610a5e565b60405161024e969594939291906132f4565b34801561036257600080fd5b50610222610371366004613496565b610bb4565b34801561038257600080fd5b5061022261039136600461353f565b610c00565b3480156103a257600080fd5b506102226103b136600461353f565b610c1a565b3480156103c257600080fd5b506102226103d136600461356b565b610c98565b3480156103e257600080fd5b50610222610d77565b3480156103f757600080fd5b5061040b610406366004613586565b610da9565b60405161024e919061368b565b61022261042636600461369e565b610ed2565b34801561043757600080fd5b50610277610446366004613240565b600090815261012d6020526040902054151590565b34801561046757600080fd5b50610244610f9e565b34801561047c57600080fd5b5060c95460ff16610277565b34801561049457600080fd5b506102226104a33660046136e1565b611052565b3480156104b457600080fd5b506102446101c65481565b3480156104cb57600080fd5b506102226104da366004613240565b611095565b3480156104eb57600080fd5b50610222611136565b34801561050057600080fd5b50610222611301565b34801561051557600080fd5b5061027761052436600461353f565b611333565b610222610537366004613754565b61135e565b34801561054857600080fd5b50610244600081565b34801561055d57600080fd5b5061022261056c3660046137b4565b61144b565b34801561057d57600080fd5b506102446101c35481565b34801561059457600080fd5b506102446105a33660046137f0565b611456565b3480156105b457600080fd5b506102446105c3366004613240565b600090815261012d602052604090205490565b3480156105e257600080fd5b506102446101c55481565b3480156105f957600080fd5b5061060d61060836600461356b565b6115b0565b60405161024e919061384e565b34801561062657600080fd5b5061022261063536600461353f565b61171a565b34801561064657600080fd5b506102226106553660046138c4565b61173f565b34801561066657600080fd5b5061066f611881565b60405161024e91906138e6565b34801561068857600080fd5b5061022261069736600461399a565b611af0565b3480156106a857600080fd5b506102776106b73660046139fc565b6001600160a01b03918216600090815260666020908152604080832093909416825291909152205460ff1690565b3480156106f157600080fd5b50610222610700366004613a26565b611b76565b34801561071157600080fd5b50610222610720366004613a8a565b611bbb565b34801561073157600080fd5b50610222610740366004613240565b611bfe565b60006001600160a01b0383166107b55760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b60648201526084015b60405180910390fd5b5060008181526065602090815260408083206001600160a01b03861684529091529020545b92915050565b60006107da82611cd9565b60008181526101c460205260409020600301546001600160a01b031633148061081a575061081a600033611333565b6108375760405163388f811f60e01b815260040160405180910390fd5b600260008281526101c4602052604090205460ff16600381111561085d5761085d6132bc565b1461087b57604051631f0fb6fd60e11b815260040160405180910390fd5b60008181526101c46020908152604091829020805460ff1916600317905590518281527f591913f977ab242c5871f116f36be231ff67df5e8e0bac1efd91fa8a723aca2b91015b60405180910390a150565b6060606780546108dc90613abd565b80601f016020809104026020016040519081016040528092919081815260200182805461090890613abd565b80156109555780601f1061092a57610100808354040283529160200191610955565b820191906000526020600020905b81548152906001019060200180831161093857829003601f168201915b50505050509050919050565b600061096c81611cfe565b4782111561098d57604051631036b5ad60e31b815260040160405180910390fd5b4760005b6101c5548110156109ee5760008181526101c460205260409020600201546109b99083613b07565b9150838210156109dc5760405163156bbc5b60e01b815260040160405180910390fd5b806109e681613b1a565b915050610991565b50604051600090339085908381818185875af1925050503d8060008114610a31576040519150601f19603f3d011682016040523d82523d6000602084013e610a36565b606091505b5050905080610a58576040516317f2c34560e31b815260040160405180910390fd5b50505050565b6101c4602052600090815260409020805460018201546002830154600384015460048501805460ff90951695939492936001600160a01b0390921692610aa390613abd565b80601f0160208091040260200160405190810160405280929190818152602001828054610acf90613abd565b8015610b1c5780601f10610af157610100808354040283529160200191610b1c565b820191906000526020600020905b815481529060010190602001808311610aff57829003601f168201915b505050505090806005018054610b3190613abd565b80601f0160208091040260200160405190810160405280929190818152602001828054610b5d90613abd565b8015610baa5780601f10610b7f57610100808354040283529160200191610baa565b820191906000526020600020905b815481529060010190602001808311610b8d57829003601f168201915b5050505050905086565b6001600160a01b038516331480610bd05750610bd085336106b7565b610bec5760405162461bcd60e51b81526004016107ac90613b33565b610bf98585858585611d08565b5050505050565b6000610c0b81611cfe565b610c158383611eb5565b505050565b6001600160a01b0381163314610c8a5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016107ac565b610c948282611f3b565b5050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610ce05760405162461bcd60e51b81526004016107ac90613b81565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610d296000805160206141dd833981519152546001600160a01b031690565b6001600160a01b031614610d4f5760405162461bcd60e51b81526004016107ac90613bcd565b610d5881611fa2565b60408051600080825260208201909252610d7491839190611fcc565b50565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610da181611cfe565b610d74612137565b60608151835114610e0e5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b60648201526084016107ac565b600083516001600160401b03811115610e2957610e2961334d565b604051908082528060200260200182016040528015610e52578160200160208202803683370190505b50905060005b8451811015610eca57610e9d858281518110610e7657610e76613c19565b6020026020010151858381518110610e9057610e90613c19565b6020026020010151610745565b828281518110610eaf57610eaf613c19565b6020908102919091010152610ec381613b1a565b9050610e58565b509392505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610f1a5760405162461bcd60e51b81526004016107ac90613b81565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610f636000805160206141dd833981519152546001600160a01b031690565b6001600160a01b031614610f895760405162461bcd60e51b81526004016107ac90613bcd565b610f9282611fa2565b610c9482826001611fcc565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461103e5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016107ac565b506000805160206141dd8339815191525b90565b6001600160a01b03831633148061106e575061106e83336106b7565b61108a5760405162461bcd60e51b81526004016107ac90613b33565b610c15838383612189565b60006110a081611cfe565b600160008381526101c4602052604090205460ff1660038111156110c6576110c66132bc565b146110e45760405163137c9c1f60e31b815260040160405180910390fd5b60008281526101c46020908152604091829020805460ff1916600217905590518381527f8f4352ac8b4aefdd2333162306bbe09dd4f4ff6661e89ccc4e4dcced8794e8f7910160405180910390a15050565b600054610100900460ff16158080156111565750600054600160ff909116105b806111705750303b158015611170575060005460ff166001145b6111d35760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016107ac565b6000805460ff1916600117905580156111f6576000805461ff0019166101001790555b61120e60405180602001604052806000815250612328565b611216612358565b61121e612381565b611226612358565b61122e612358565b611236612358565b611241600033611eb5565b61126b7f7804d923f43a17d325d77e781528e0793b2edd9890ab45fc64efd7b4b427744c33611eb5565b6112957f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33611eb5565b6112bf7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e333611eb5565b8015610d74576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020016108c2565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61132b81611cfe565b610d746123b0565b60009182526097602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600061136981611cfe565b600260008681526101c4602052604090205460ff16600381111561138f5761138f6132bc565b146113ad57604051631f0fb6fd60e11b815260040160405180910390fd5b6101c35460008681526101c4602052604090206001015485916113cf91613c2f565b6113d99190613c42565b3410156113f957604051631036b5ad60e31b815260040160405180910390fd5b611405838686856123ed565b6101c3546114139085613c42565b61141d9034613b07565b60008681526101c460205260408120600201805490919061143f908490613c2f565b90915550505050505050565b610c94338383612512565b60006101c65486111561147c57604051630f0c4c5f60e41b815260040160405180910390fd5b506101c5546040805160c0810190915280600181526020808201899052600060408084018290526001600160a01b038a1660608501526080840188905260a09093018690528481526101c49091522081518154829060ff191660018360038111156114e9576114e96132bc565b0217905550602082015160018201556040820151600282015560608201516003820180546001600160a01b0319166001600160a01b039092169190911790556080820151600482019061153c9082613c9f565b5060a082015160058201906115519082613c9f565b50506101c580549150600061156583613b1a565b91905055507f3deb71b5a6774038a220621d78241405004043d5a928de9c7956bcc5270416db8183888860405161159f9493929190613d5e565b60405180910390a195945050505050565b606060006101c5546001600160401b038111156115cf576115cf61334d565b60405190808252806020026020018201604052801561161557816020015b6040805180820190915260608152600060208201528152602001906001900390816115ed5790505b50905060005b6101c5548110156117135760405180604001604052806101c46000848152602001908152602001600020600401805461165390613abd565b80601f016020809104026020016040519081016040528092919081815260200182805461167f90613abd565b80156116cc5780601f106116a1576101008083540402835291602001916116cc565b820191906000526020600020905b8154815290600101906020018083116116af57829003601f168201915b505050505081526020016116e08684610745565b8152508282815181106116f5576116f5613c19565b6020026020010181905250808061170b90613b1a565b91505061161b565b5092915050565b60008281526097602052604090206001015461173581611cfe565b610c158383611f3b565b60008281526101c460205260409020600301546001600160a01b0316331461177a5760405163388f811f60e01b815260040160405180910390fd5b60008281526101c460205260409020600201548111156117ad57604051637eafab7d60e01b815260040160405180910390fd5b604051600090339083908381818185875af1925050503d80600081146117ef576040519150601f19603f3d011682016040523d82523d6000602084013e6117f4565b606091505b5050905080611816576040516317f2c34560e31b815260040160405180910390fd5b60008381526101c4602052604081206002018054849290611838908490613b07565b90915550506040805184815260208101849052338183015290517ff1090e9d5138cd4909542e10e1da576730b07eb291a71a151e63160dde345b949181900360600190a1505050565b606060006101c5546001600160401b038111156118a0576118a061334d565b60405190808252806020026020018201604052801561191457816020015b6119016040805160c081019091528060008152602001600081526020016000815260200160006001600160a01b0316815260200160608152602001606081525090565b8152602001906001900390816118be5790505b50905060005b6101c554811015611aea5760008181526101c4602052604090819020815160c081019092528054829060ff166003811115611957576119576132bc565b6003811115611968576119686132bc565b8152600182015460208201526002820154604082015260038201546001600160a01b031660608201526004820180546080909201916119a690613abd565b80601f01602080910402602001604051908101604052809291908181526020018280546119d290613abd565b8015611a1f5780601f106119f457610100808354040283529160200191611a1f565b820191906000526020600020905b815481529060010190602001808311611a0257829003601f168201915b50505050508152602001600582018054611a3890613abd565b80601f0160208091040260200160405190810160405280929190818152602001828054611a6490613abd565b8015611ab15780601f10611a8657610100808354040283529160200191611ab1565b820191906000526020600020905b815481529060010190602001808311611a9457829003601f168201915b505050505081525050828281518110611acc57611acc613c19565b60200260200101819052508080611ae290613b1a565b91505061191a565b50919050565b6000611afb81611cfe565b60008481526101c4602052604081205460ff166003811115611b1f57611b1f6132bc565b03611b3d5760405163137c9c1f60e31b815260040160405180910390fd5b60008481526101c460205260409020600401611b598482613c9f565b5060008481526101c460205260409020600501610bf98382613c9f565b6001600160a01b038516331480611b925750611b9285336106b7565b611bae5760405162461bcd60e51b81526004016107ac90613b33565b610bf985858585856125f2565b6001600160a01b038316331480611bd75750611bd783336106b7565b611bf35760405162461bcd60e51b81526004016107ac90613b33565b610c1583838361272e565b60008181526101c460205260409020600301546001600160a01b0316331480611c2d5750611c2d600033611333565b611c4a5760405163388f811f60e01b815260040160405180910390fd5b600360008281526101c4602052604090205460ff166003811115611c7057611c706132bc565b14611c8e5760405163968807a560e01b815260040160405180910390fd5b60008181526101c46020908152604091829020805460ff1916600217905590518281527f63bb17c9645a29322601b4fe88d8f3fa84f32229368294f903084be8f5d813ba91016108c2565b60006001600160e01b03198216637965db0b60e01b14806107da57506107da8261284a565b610d74813361289a565b8151835114611d295760405162461bcd60e51b81526004016107ac90613d98565b6001600160a01b038416611d4f5760405162461bcd60e51b81526004016107ac90613de0565b33611d5e8187878787876128f3565b60005b8451811015611e47576000858281518110611d7e57611d7e613c19565b602002602001015190506000858381518110611d9c57611d9c613c19565b60209081029190910181015160008481526065835260408082206001600160a01b038e168352909352919091205490915081811015611ded5760405162461bcd60e51b81526004016107ac90613e25565b60008381526065602090815260408083206001600160a01b038e8116855292528083208585039055908b16825281208054849290611e2c908490613c2f565b9250508190555050505080611e4090613b1a565b9050611d61565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611e97929190613e6f565b60405180910390a4611ead818787878787612909565b505050505050565b611ebf8282611333565b610c945760008281526097602090815260408083206001600160a01b03851684529091529020805460ff19166001179055611ef73390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b611f458282611333565b15610c945760008281526097602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3610c9481611cfe565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611fff57610c1583612a64565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612059575060408051601f3d908101601f1916820190925261205691810190613e9d565b60015b6120bc5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016107ac565b6000805160206141dd833981519152811461212b5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016107ac565b50610c15838383612b00565b61213f612b25565b60c9805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b0383166121af5760405162461bcd60e51b81526004016107ac90613eb6565b80518251146121d05760405162461bcd60e51b81526004016107ac90613d98565b60003390506121f3818560008686604051806020016040528060008152506128f3565b60005b83518110156122bb57600084828151811061221357612213613c19565b60200260200101519050600084838151811061223157612231613c19565b60209081029190910181015160008481526065835260408082206001600160a01b038c1683529093529190912054909150818110156122825760405162461bcd60e51b81526004016107ac90613ef9565b60009283526065602090815260408085206001600160a01b038b16865290915290922091039055806122b381613b1a565b9150506121f6565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb868660405161230c929190613e6f565b60405180910390a4604080516020810190915260009052610a58565b600054610100900460ff1661234f5760405162461bcd60e51b81526004016107ac90613f3d565b610d7481612b6e565b600054610100900460ff1661237f5760405162461bcd60e51b81526004016107ac90613f3d565b565b600054610100900460ff166123a85760405162461bcd60e51b81526004016107ac90613f3d565b61237f612b9e565b6123b8612bd1565b60c9805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861216c3390565b6001600160a01b03841661244d5760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b60648201526084016107ac565b33600061245985612c17565b9050600061246685612c17565b9050612477836000898585896128f3565b60008681526065602090815260408083206001600160a01b038b168452909152812080548792906124a9908490613c2f565b909155505060408051878152602081018790526001600160a01b03808a1692600092918716917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a461250983600089898989612c62565b50505050505050565b816001600160a01b0316836001600160a01b0316036125855760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b60648201526084016107ac565b6001600160a01b03838116600081815260666020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0384166126185760405162461bcd60e51b81526004016107ac90613de0565b33600061262485612c17565b9050600061263185612c17565b90506126418389898585896128f3565b60008681526065602090815260408083206001600160a01b038c168452909152902054858110156126845760405162461bcd60e51b81526004016107ac90613e25565b60008781526065602090815260408083206001600160a01b038d8116855292528083208985039055908a168252812080548892906126c3908490613c2f565b909155505060408051888152602081018890526001600160a01b03808b16928c821692918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4612723848a8a8a8a8a612c62565b505050505050505050565b6001600160a01b0383166127545760405162461bcd60e51b81526004016107ac90613eb6565b33600061276084612c17565b9050600061276d84612c17565b905061278d838760008585604051806020016040528060008152506128f3565b60008581526065602090815260408083206001600160a01b038a168452909152902054848110156127d05760405162461bcd60e51b81526004016107ac90613ef9565b60008681526065602090815260408083206001600160a01b038b81168086529184528285208a8703905582518b81529384018a90529092908816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4604080516020810190915260009052612509565b60006001600160e01b03198216636cdb3d1360e11b148061287b57506001600160e01b031982166303a24d0760e21b145b806107da57506301ffc9a760e01b6001600160e01b03198316146107da565b6128a48282611333565b610c94576128b181612d1d565b6128bc836020612d2f565b6040516020016128cd929190613f88565b60408051601f198184030181529082905262461bcd60e51b82526107ac916004016132a9565b6128fb612bd1565b611ead868686868686612ed1565b6001600160a01b0384163b15611ead5760405163bc197c8160e01b81526001600160a01b0385169063bc197c819061294d9089908990889088908890600401613ffd565b6020604051808303816000875af1925050508015612988575060408051601f3d908101601f191682019092526129859181019061405b565b60015b612a3457612994614078565b806308c379a0036129cd57506129a8614093565b806129b357506129cf565b8060405162461bcd60e51b81526004016107ac91906132a9565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b60648201526084016107ac565b6001600160e01b0319811663bc197c8160e01b146125095760405162461bcd60e51b81526004016107ac9061411c565b6001600160a01b0381163b612ad15760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016107ac565b6000805160206141dd83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b612b098361304d565b600082511180612b165750805b15610c1557610a58838361308d565b60c95460ff1661237f5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016107ac565b600054610100900460ff16612b955760405162461bcd60e51b81526004016107ac90613f3d565b610d74816130b2565b600054610100900460ff16612bc55760405162461bcd60e51b81526004016107ac90613f3d565b60c9805460ff19169055565b60c95460ff161561237f5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016107ac565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612c5157612c51613c19565b602090810291909101015292915050565b6001600160a01b0384163b15611ead5760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190612ca69089908990889088908890600401614164565b6020604051808303816000875af1925050508015612ce1575060408051601f3d908101601f19168201909252612cde9181019061405b565b60015b612ced57612994614078565b6001600160e01b0319811663f23a6e6160e01b146125095760405162461bcd60e51b81526004016107ac9061411c565b60606107da6001600160a01b03831660145b60606000612d3e836002613c42565b612d49906002613c2f565b6001600160401b03811115612d6057612d6061334d565b6040519080825280601f01601f191660200182016040528015612d8a576020820181803683370190505b509050600360fc1b81600081518110612da557612da5613c19565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110612dd457612dd4613c19565b60200101906001600160f81b031916908160001a9053506000612df8846002613c42565b612e03906001613c2f565b90505b6001811115612e7b576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110612e3757612e37613c19565b1a60f81b828281518110612e4d57612e4d613c19565b60200101906001600160f81b031916908160001a90535060049490941c93612e74816141a9565b9050612e06565b508315612eca5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016107ac565b9392505050565b6001600160a01b038516612f595760005b8351811015612f5757828181518110612efd57612efd613c19565b602002602001015161012d6000868481518110612f1c57612f1c613c19565b602002602001015181526020019081526020016000206000828254612f419190613c2f565b90915550612f50905081613b1a565b9050612ee2565b505b6001600160a01b038416611ead5760005b8351811015612509576000848281518110612f8757612f87613c19565b602002602001015190506000848381518110612fa557612fa5613c19565b60200260200101519050600061012d6000848152602001908152602001600020549050818110156130295760405162461bcd60e51b815260206004820152602860248201527f455243313135353a206275726e20616d6f756e74206578636565647320746f74604482015267616c537570706c7960c01b60648201526084016107ac565b600092835261012d60205260409092209103905561304681613b1a565b9050612f6a565b61305681612a64565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060612eca83836040518060600160405280602781526020016141fd602791396130be565b6067610c948282613c9f565b6060600080856001600160a01b0316856040516130db91906141c0565b600060405180830381855af49150503d8060008114613116576040519150601f19603f3d011682016040523d82523d6000602084013e61311b565b606091505b509150915061312c86838387613136565b9695505050505050565b606083156131a557825160000361319e576001600160a01b0385163b61319e5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016107ac565b50816131af565b6131af83836131b7565b949350505050565b8151156129b35781518083602001fd5b80356001600160a01b03811681146131de57600080fd5b919050565b600080604083850312156131f657600080fd5b6131ff836131c7565b946020939093013593505050565b6001600160e01b031981168114610d7457600080fd5b60006020828403121561323557600080fd5b8135612eca8161320d565b60006020828403121561325257600080fd5b5035919050565b60005b8381101561327457818101518382015260200161325c565b50506000910152565b60008151808452613295816020860160208601613259565b601f01601f19169290920160200192915050565b602081526000612eca602083018461327d565b634e487b7160e01b600052602160045260246000fd5b600481106132f057634e487b7160e01b600052602160045260246000fd5b9052565b6132fe81886132d2565b85602082015284604082015260018060a01b038416606082015260c06080820152600061332e60c083018561327d565b82810360a0840152613340818561327d565b9998505050505050505050565b634e487b7160e01b600052604160045260246000fd5b601f8201601f191681016001600160401b03811182821017156133885761338861334d565b6040525050565b60006001600160401b038211156133a8576133a861334d565b5060051b60200190565b600082601f8301126133c357600080fd5b813560206133d08261338f565b6040516133dd8282613363565b83815260059390931b85018201928281019150868411156133fd57600080fd5b8286015b848110156134185780358352918301918301613401565b509695505050505050565b600082601f83011261343457600080fd5b81356001600160401b0381111561344d5761344d61334d565b604051613464601f8301601f191660200182613363565b81815284602083860101111561347957600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a086880312156134ae57600080fd5b6134b7866131c7565b94506134c5602087016131c7565b935060408601356001600160401b03808211156134e157600080fd5b6134ed89838a016133b2565b9450606088013591508082111561350357600080fd5b61350f89838a016133b2565b9350608088013591508082111561352557600080fd5b5061353288828901613423565b9150509295509295909350565b6000806040838503121561355257600080fd5b82359150613562602084016131c7565b90509250929050565b60006020828403121561357d57600080fd5b612eca826131c7565b6000806040838503121561359957600080fd5b82356001600160401b03808211156135b057600080fd5b818501915085601f8301126135c457600080fd5b813560206135d18261338f565b6040516135de8282613363565b83815260059390931b85018201928281019150898411156135fe57600080fd5b948201945b8386101561362357613614866131c7565b82529482019490820190613603565b9650508601359250508082111561363957600080fd5b50613646858286016133b2565b9150509250929050565b600081518084526020808501945080840160005b8381101561368057815187529582019590820190600101613664565b509495945050505050565b602081526000612eca6020830184613650565b600080604083850312156136b157600080fd5b6136ba836131c7565b915060208301356001600160401b038111156136d557600080fd5b61364685828601613423565b6000806000606084860312156136f657600080fd5b6136ff846131c7565b925060208401356001600160401b038082111561371b57600080fd5b613727878388016133b2565b9350604086013591508082111561373d57600080fd5b5061374a868287016133b2565b9150509250925092565b6000806000806080858703121561376a57600080fd5b8435935060208501359250613781604086016131c7565b915060608501356001600160401b0381111561379c57600080fd5b6137a887828801613423565b91505092959194509250565b600080604083850312156137c757600080fd5b6137d0836131c7565b9150602083013580151581146137e557600080fd5b809150509250929050565b600080600080600060a0868803121561380857600080fd5b85359450613818602087016131c7565b9350613826604087016131c7565b925060608601356001600160401b038082111561384257600080fd5b61350f89838a01613423565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b838110156138b657888303603f19018552815180518785526138998886018261327d565b918901519489019490945294870194925090860190600101613875565b509098975050505050505050565b600080604083850312156138d757600080fd5b50508035926020909101359150565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b838110156138b657603f19898403018552815160c061392d8583516132d2565b81890151858a015287820151888601526060808301516001600160a01b0316908601526080808301518187018390526139688388018261327d565b9250505060a08083015192508582038187015250613986818361327d565b96890196945050509086019060010161390d565b6000806000606084860312156139af57600080fd5b8335925060208401356001600160401b03808211156139cd57600080fd5b6139d987838801613423565b935060408601359150808211156139ef57600080fd5b5061374a86828701613423565b60008060408385031215613a0f57600080fd5b613a18836131c7565b9150613562602084016131c7565b600080600080600060a08688031215613a3e57600080fd5b613a47866131c7565b9450613a55602087016131c7565b9350604086013592506060860135915060808601356001600160401b03811115613a7e57600080fd5b61353288828901613423565b600080600060608486031215613a9f57600080fd5b613aa8846131c7565b95602085013595506040909401359392505050565b600181811c90821680613ad157607f821691505b602082108103611aea57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b818103818111156107da576107da613af1565b600060018201613b2c57613b2c613af1565b5060010190565b6020808252602e908201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60408201526d195c881bdc88185c1c1c9bdd995960921b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b808201808211156107da576107da613af1565b80820281158282048414176107da576107da613af1565b601f821115610c1557600081815260208120601f850160051c81016020861015613c805750805b601f850160051c820191505b81811015611ead57828155600101613c8c565b81516001600160401b03811115613cb857613cb861334d565b613ccc81613cc68454613abd565b84613c59565b602080601f831160018114613d015760008415613ce95750858301515b600019600386901b1c1916600185901b178555611ead565b600085815260208120601f198616915b82811015613d3057888601518255948401946001909101908401613d11565b5085821015613d4e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b848152608060208201526000613d77608083018661327d565b6040830194909452506001600160a01b039190911660609091015292915050565b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b604081526000613e826040830185613650565b8281036020840152613e948185613650565b95945050505050565b600060208284031215613eaf57600080fd5b5051919050565b60208082526023908201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526024908201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604082015263616e636560e01b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351613fc0816017850160208801613259565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351613ff1816028840160208801613259565b01602801949350505050565b6001600160a01b0386811682528516602082015260a06040820181905260009061402990830186613650565b828103606084015261403b8186613650565b9050828103608084015261404f818561327d565b98975050505050505050565b60006020828403121561406d57600080fd5b8151612eca8161320d565b600060033d111561104f5760046000803e5060005160e01c90565b600060443d10156140a15790565b6040516003193d81016004833e81513d6001600160401b0381602484011181841117156140d057505050505090565b82850191508151818111156140e85750505050505090565b843d87010160208285010111156141025750505050505090565b61411160208286010187613363565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009061419e9083018461327d565b979650505050505050565b6000816141b8576141b8613af1565b506000190190565b600082516141d2818460208701613259565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220749b0545c67a95a37cd13c435df55c9c3e568da0b5e1612da4f2949999371ea164736f6c63430008130033", + "deployedBytecode": "0x60806040526004361061021b5760003560e01c80637357628c11610122578063c6fbb712116100a5578063e43990fe1161006c578063e43990fe1461067c578063e985e9c51461069c578063f242432a146106e5578063f5298aca14610705578063fc74efa21461072557005b8063c6fbb712146105d6578063c84aae17146105ed578063d547741f1461061a578063d667c9ce1461063a578063df6efc6c1461065a57005b8063a217fddf116100e9578063a217fddf1461053c578063a22cb46514610551578063b0e21e8a14610571578063b3a44bd614610588578063bd85b039146105a857005b80637357628c146104bf5780638129fc1c146104df5780638456cb59146104f457806391d1485414610509578063940123da1461052957005b806336568abe116101aa5780634f558e79116101715780634f558e791461042b57806352d1902d1461045b5780635c975abb146104705780636b20c454146104885780636b5cb789146104a857005b806336568abe146103965780633659cfe6146103b65780633f4ba83a146103d65780634e1273f4146103eb5780634f1ef2861461041857005b8063155dd5ee116101ee578063155dd5ee146102d4578063248a9ca3146102f4578063279c806e146103245780632eb2c2d6146103565780632f2ff15d1461037657005b8062fdd58e1461022457806301ffc9a7146102575780630a579eca146102875780630e89341c146102a757005b3661022257005b005b34801561023057600080fd5b5061024461023f3660046131e3565b610745565b6040519081526020015b60405180910390f35b34801561026357600080fd5b50610277610272366004613223565b6107e0565b604051901515815260200161024e565b34801561029357600080fd5b506102226102a2366004613240565b6107eb565b3480156102b357600080fd5b506102c76102c2366004613240565b6108cd565b60405161024e91906132a9565b3480156102e057600080fd5b506102226102ef366004613240565b610961565b34801561030057600080fd5b5061024461030f366004613240565b60009081526097602052604090206001015490565b34801561033057600080fd5b5061034461033f366004613240565b610a5e565b60405161024e969594939291906132f4565b34801561036257600080fd5b50610222610371366004613496565b610bb4565b34801561038257600080fd5b5061022261039136600461353f565b610c00565b3480156103a257600080fd5b506102226103b136600461353f565b610c1a565b3480156103c257600080fd5b506102226103d136600461356b565b610c98565b3480156103e257600080fd5b50610222610d77565b3480156103f757600080fd5b5061040b610406366004613586565b610da9565b60405161024e919061368b565b61022261042636600461369e565b610ed2565b34801561043757600080fd5b50610277610446366004613240565b600090815261012d6020526040902054151590565b34801561046757600080fd5b50610244610f9e565b34801561047c57600080fd5b5060c95460ff16610277565b34801561049457600080fd5b506102226104a33660046136e1565b611052565b3480156104b457600080fd5b506102446101c65481565b3480156104cb57600080fd5b506102226104da366004613240565b611095565b3480156104eb57600080fd5b50610222611136565b34801561050057600080fd5b50610222611301565b34801561051557600080fd5b5061027761052436600461353f565b611333565b610222610537366004613754565b61135e565b34801561054857600080fd5b50610244600081565b34801561055d57600080fd5b5061022261056c3660046137b4565b61144b565b34801561057d57600080fd5b506102446101c35481565b34801561059457600080fd5b506102446105a33660046137f0565b611456565b3480156105b457600080fd5b506102446105c3366004613240565b600090815261012d602052604090205490565b3480156105e257600080fd5b506102446101c55481565b3480156105f957600080fd5b5061060d61060836600461356b565b6115b0565b60405161024e919061384e565b34801561062657600080fd5b5061022261063536600461353f565b61171a565b34801561064657600080fd5b506102226106553660046138c4565b61173f565b34801561066657600080fd5b5061066f611881565b60405161024e91906138e6565b34801561068857600080fd5b5061022261069736600461399a565b611af0565b3480156106a857600080fd5b506102776106b73660046139fc565b6001600160a01b03918216600090815260666020908152604080832093909416825291909152205460ff1690565b3480156106f157600080fd5b50610222610700366004613a26565b611b76565b34801561071157600080fd5b50610222610720366004613a8a565b611bbb565b34801561073157600080fd5b50610222610740366004613240565b611bfe565b60006001600160a01b0383166107b55760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b60648201526084015b60405180910390fd5b5060008181526065602090815260408083206001600160a01b03861684529091529020545b92915050565b60006107da82611cd9565b60008181526101c460205260409020600301546001600160a01b031633148061081a575061081a600033611333565b6108375760405163388f811f60e01b815260040160405180910390fd5b600260008281526101c4602052604090205460ff16600381111561085d5761085d6132bc565b1461087b57604051631f0fb6fd60e11b815260040160405180910390fd5b60008181526101c46020908152604091829020805460ff1916600317905590518281527f591913f977ab242c5871f116f36be231ff67df5e8e0bac1efd91fa8a723aca2b91015b60405180910390a150565b6060606780546108dc90613abd565b80601f016020809104026020016040519081016040528092919081815260200182805461090890613abd565b80156109555780601f1061092a57610100808354040283529160200191610955565b820191906000526020600020905b81548152906001019060200180831161093857829003601f168201915b50505050509050919050565b600061096c81611cfe565b4782111561098d57604051631036b5ad60e31b815260040160405180910390fd5b4760005b6101c5548110156109ee5760008181526101c460205260409020600201546109b99083613b07565b9150838210156109dc5760405163156bbc5b60e01b815260040160405180910390fd5b806109e681613b1a565b915050610991565b50604051600090339085908381818185875af1925050503d8060008114610a31576040519150601f19603f3d011682016040523d82523d6000602084013e610a36565b606091505b5050905080610a58576040516317f2c34560e31b815260040160405180910390fd5b50505050565b6101c4602052600090815260409020805460018201546002830154600384015460048501805460ff90951695939492936001600160a01b0390921692610aa390613abd565b80601f0160208091040260200160405190810160405280929190818152602001828054610acf90613abd565b8015610b1c5780601f10610af157610100808354040283529160200191610b1c565b820191906000526020600020905b815481529060010190602001808311610aff57829003601f168201915b505050505090806005018054610b3190613abd565b80601f0160208091040260200160405190810160405280929190818152602001828054610b5d90613abd565b8015610baa5780601f10610b7f57610100808354040283529160200191610baa565b820191906000526020600020905b815481529060010190602001808311610b8d57829003601f168201915b5050505050905086565b6001600160a01b038516331480610bd05750610bd085336106b7565b610bec5760405162461bcd60e51b81526004016107ac90613b33565b610bf98585858585611d08565b5050505050565b6000610c0b81611cfe565b610c158383611eb5565b505050565b6001600160a01b0381163314610c8a5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016107ac565b610c948282611f3b565b5050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610ce05760405162461bcd60e51b81526004016107ac90613b81565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610d296000805160206141dd833981519152546001600160a01b031690565b6001600160a01b031614610d4f5760405162461bcd60e51b81526004016107ac90613bcd565b610d5881611fa2565b60408051600080825260208201909252610d7491839190611fcc565b50565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610da181611cfe565b610d74612137565b60608151835114610e0e5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b60648201526084016107ac565b600083516001600160401b03811115610e2957610e2961334d565b604051908082528060200260200182016040528015610e52578160200160208202803683370190505b50905060005b8451811015610eca57610e9d858281518110610e7657610e76613c19565b6020026020010151858381518110610e9057610e90613c19565b6020026020010151610745565b828281518110610eaf57610eaf613c19565b6020908102919091010152610ec381613b1a565b9050610e58565b509392505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610f1a5760405162461bcd60e51b81526004016107ac90613b81565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610f636000805160206141dd833981519152546001600160a01b031690565b6001600160a01b031614610f895760405162461bcd60e51b81526004016107ac90613bcd565b610f9282611fa2565b610c9482826001611fcc565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461103e5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016107ac565b506000805160206141dd8339815191525b90565b6001600160a01b03831633148061106e575061106e83336106b7565b61108a5760405162461bcd60e51b81526004016107ac90613b33565b610c15838383612189565b60006110a081611cfe565b600160008381526101c4602052604090205460ff1660038111156110c6576110c66132bc565b146110e45760405163137c9c1f60e31b815260040160405180910390fd5b60008281526101c46020908152604091829020805460ff1916600217905590518381527f8f4352ac8b4aefdd2333162306bbe09dd4f4ff6661e89ccc4e4dcced8794e8f7910160405180910390a15050565b600054610100900460ff16158080156111565750600054600160ff909116105b806111705750303b158015611170575060005460ff166001145b6111d35760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016107ac565b6000805460ff1916600117905580156111f6576000805461ff0019166101001790555b61120e60405180602001604052806000815250612328565b611216612358565b61121e612381565b611226612358565b61122e612358565b611236612358565b611241600033611eb5565b61126b7f7804d923f43a17d325d77e781528e0793b2edd9890ab45fc64efd7b4b427744c33611eb5565b6112957f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33611eb5565b6112bf7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e333611eb5565b8015610d74576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020016108c2565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61132b81611cfe565b610d746123b0565b60009182526097602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600061136981611cfe565b600260008681526101c4602052604090205460ff16600381111561138f5761138f6132bc565b146113ad57604051631f0fb6fd60e11b815260040160405180910390fd5b6101c35460008681526101c4602052604090206001015485916113cf91613c2f565b6113d99190613c42565b3410156113f957604051631036b5ad60e31b815260040160405180910390fd5b611405838686856123ed565b6101c3546114139085613c42565b61141d9034613b07565b60008681526101c460205260408120600201805490919061143f908490613c2f565b90915550505050505050565b610c94338383612512565b60006101c65486111561147c57604051630f0c4c5f60e41b815260040160405180910390fd5b506101c5546040805160c0810190915280600181526020808201899052600060408084018290526001600160a01b038a1660608501526080840188905260a09093018690528481526101c49091522081518154829060ff191660018360038111156114e9576114e96132bc565b0217905550602082015160018201556040820151600282015560608201516003820180546001600160a01b0319166001600160a01b039092169190911790556080820151600482019061153c9082613c9f565b5060a082015160058201906115519082613c9f565b50506101c580549150600061156583613b1a565b91905055507f3deb71b5a6774038a220621d78241405004043d5a928de9c7956bcc5270416db8183888860405161159f9493929190613d5e565b60405180910390a195945050505050565b606060006101c5546001600160401b038111156115cf576115cf61334d565b60405190808252806020026020018201604052801561161557816020015b6040805180820190915260608152600060208201528152602001906001900390816115ed5790505b50905060005b6101c5548110156117135760405180604001604052806101c46000848152602001908152602001600020600401805461165390613abd565b80601f016020809104026020016040519081016040528092919081815260200182805461167f90613abd565b80156116cc5780601f106116a1576101008083540402835291602001916116cc565b820191906000526020600020905b8154815290600101906020018083116116af57829003601f168201915b505050505081526020016116e08684610745565b8152508282815181106116f5576116f5613c19565b6020026020010181905250808061170b90613b1a565b91505061161b565b5092915050565b60008281526097602052604090206001015461173581611cfe565b610c158383611f3b565b60008281526101c460205260409020600301546001600160a01b0316331461177a5760405163388f811f60e01b815260040160405180910390fd5b60008281526101c460205260409020600201548111156117ad57604051637eafab7d60e01b815260040160405180910390fd5b604051600090339083908381818185875af1925050503d80600081146117ef576040519150601f19603f3d011682016040523d82523d6000602084013e6117f4565b606091505b5050905080611816576040516317f2c34560e31b815260040160405180910390fd5b60008381526101c4602052604081206002018054849290611838908490613b07565b90915550506040805184815260208101849052338183015290517ff1090e9d5138cd4909542e10e1da576730b07eb291a71a151e63160dde345b949181900360600190a1505050565b606060006101c5546001600160401b038111156118a0576118a061334d565b60405190808252806020026020018201604052801561191457816020015b6119016040805160c081019091528060008152602001600081526020016000815260200160006001600160a01b0316815260200160608152602001606081525090565b8152602001906001900390816118be5790505b50905060005b6101c554811015611aea5760008181526101c4602052604090819020815160c081019092528054829060ff166003811115611957576119576132bc565b6003811115611968576119686132bc565b8152600182015460208201526002820154604082015260038201546001600160a01b031660608201526004820180546080909201916119a690613abd565b80601f01602080910402602001604051908101604052809291908181526020018280546119d290613abd565b8015611a1f5780601f106119f457610100808354040283529160200191611a1f565b820191906000526020600020905b815481529060010190602001808311611a0257829003601f168201915b50505050508152602001600582018054611a3890613abd565b80601f0160208091040260200160405190810160405280929190818152602001828054611a6490613abd565b8015611ab15780601f10611a8657610100808354040283529160200191611ab1565b820191906000526020600020905b815481529060010190602001808311611a9457829003601f168201915b505050505081525050828281518110611acc57611acc613c19565b60200260200101819052508080611ae290613b1a565b91505061191a565b50919050565b6000611afb81611cfe565b60008481526101c4602052604081205460ff166003811115611b1f57611b1f6132bc565b03611b3d5760405163137c9c1f60e31b815260040160405180910390fd5b60008481526101c460205260409020600401611b598482613c9f565b5060008481526101c460205260409020600501610bf98382613c9f565b6001600160a01b038516331480611b925750611b9285336106b7565b611bae5760405162461bcd60e51b81526004016107ac90613b33565b610bf985858585856125f2565b6001600160a01b038316331480611bd75750611bd783336106b7565b611bf35760405162461bcd60e51b81526004016107ac90613b33565b610c1583838361272e565b60008181526101c460205260409020600301546001600160a01b0316331480611c2d5750611c2d600033611333565b611c4a5760405163388f811f60e01b815260040160405180910390fd5b600360008281526101c4602052604090205460ff166003811115611c7057611c706132bc565b14611c8e5760405163968807a560e01b815260040160405180910390fd5b60008181526101c46020908152604091829020805460ff1916600217905590518281527f63bb17c9645a29322601b4fe88d8f3fa84f32229368294f903084be8f5d813ba91016108c2565b60006001600160e01b03198216637965db0b60e01b14806107da57506107da8261284a565b610d74813361289a565b8151835114611d295760405162461bcd60e51b81526004016107ac90613d98565b6001600160a01b038416611d4f5760405162461bcd60e51b81526004016107ac90613de0565b33611d5e8187878787876128f3565b60005b8451811015611e47576000858281518110611d7e57611d7e613c19565b602002602001015190506000858381518110611d9c57611d9c613c19565b60209081029190910181015160008481526065835260408082206001600160a01b038e168352909352919091205490915081811015611ded5760405162461bcd60e51b81526004016107ac90613e25565b60008381526065602090815260408083206001600160a01b038e8116855292528083208585039055908b16825281208054849290611e2c908490613c2f565b9250508190555050505080611e4090613b1a565b9050611d61565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611e97929190613e6f565b60405180910390a4611ead818787878787612909565b505050505050565b611ebf8282611333565b610c945760008281526097602090815260408083206001600160a01b03851684529091529020805460ff19166001179055611ef73390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b611f458282611333565b15610c945760008281526097602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3610c9481611cfe565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611fff57610c1583612a64565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612059575060408051601f3d908101601f1916820190925261205691810190613e9d565b60015b6120bc5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016107ac565b6000805160206141dd833981519152811461212b5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016107ac565b50610c15838383612b00565b61213f612b25565b60c9805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b0383166121af5760405162461bcd60e51b81526004016107ac90613eb6565b80518251146121d05760405162461bcd60e51b81526004016107ac90613d98565b60003390506121f3818560008686604051806020016040528060008152506128f3565b60005b83518110156122bb57600084828151811061221357612213613c19565b60200260200101519050600084838151811061223157612231613c19565b60209081029190910181015160008481526065835260408082206001600160a01b038c1683529093529190912054909150818110156122825760405162461bcd60e51b81526004016107ac90613ef9565b60009283526065602090815260408085206001600160a01b038b16865290915290922091039055806122b381613b1a565b9150506121f6565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb868660405161230c929190613e6f565b60405180910390a4604080516020810190915260009052610a58565b600054610100900460ff1661234f5760405162461bcd60e51b81526004016107ac90613f3d565b610d7481612b6e565b600054610100900460ff1661237f5760405162461bcd60e51b81526004016107ac90613f3d565b565b600054610100900460ff166123a85760405162461bcd60e51b81526004016107ac90613f3d565b61237f612b9e565b6123b8612bd1565b60c9805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861216c3390565b6001600160a01b03841661244d5760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b60648201526084016107ac565b33600061245985612c17565b9050600061246685612c17565b9050612477836000898585896128f3565b60008681526065602090815260408083206001600160a01b038b168452909152812080548792906124a9908490613c2f565b909155505060408051878152602081018790526001600160a01b03808a1692600092918716917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a461250983600089898989612c62565b50505050505050565b816001600160a01b0316836001600160a01b0316036125855760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b60648201526084016107ac565b6001600160a01b03838116600081815260666020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0384166126185760405162461bcd60e51b81526004016107ac90613de0565b33600061262485612c17565b9050600061263185612c17565b90506126418389898585896128f3565b60008681526065602090815260408083206001600160a01b038c168452909152902054858110156126845760405162461bcd60e51b81526004016107ac90613e25565b60008781526065602090815260408083206001600160a01b038d8116855292528083208985039055908a168252812080548892906126c3908490613c2f565b909155505060408051888152602081018890526001600160a01b03808b16928c821692918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4612723848a8a8a8a8a612c62565b505050505050505050565b6001600160a01b0383166127545760405162461bcd60e51b81526004016107ac90613eb6565b33600061276084612c17565b9050600061276d84612c17565b905061278d838760008585604051806020016040528060008152506128f3565b60008581526065602090815260408083206001600160a01b038a168452909152902054848110156127d05760405162461bcd60e51b81526004016107ac90613ef9565b60008681526065602090815260408083206001600160a01b038b81168086529184528285208a8703905582518b81529384018a90529092908816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4604080516020810190915260009052612509565b60006001600160e01b03198216636cdb3d1360e11b148061287b57506001600160e01b031982166303a24d0760e21b145b806107da57506301ffc9a760e01b6001600160e01b03198316146107da565b6128a48282611333565b610c94576128b181612d1d565b6128bc836020612d2f565b6040516020016128cd929190613f88565b60408051601f198184030181529082905262461bcd60e51b82526107ac916004016132a9565b6128fb612bd1565b611ead868686868686612ed1565b6001600160a01b0384163b15611ead5760405163bc197c8160e01b81526001600160a01b0385169063bc197c819061294d9089908990889088908890600401613ffd565b6020604051808303816000875af1925050508015612988575060408051601f3d908101601f191682019092526129859181019061405b565b60015b612a3457612994614078565b806308c379a0036129cd57506129a8614093565b806129b357506129cf565b8060405162461bcd60e51b81526004016107ac91906132a9565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b60648201526084016107ac565b6001600160e01b0319811663bc197c8160e01b146125095760405162461bcd60e51b81526004016107ac9061411c565b6001600160a01b0381163b612ad15760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016107ac565b6000805160206141dd83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b612b098361304d565b600082511180612b165750805b15610c1557610a58838361308d565b60c95460ff1661237f5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016107ac565b600054610100900460ff16612b955760405162461bcd60e51b81526004016107ac90613f3d565b610d74816130b2565b600054610100900460ff16612bc55760405162461bcd60e51b81526004016107ac90613f3d565b60c9805460ff19169055565b60c95460ff161561237f5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016107ac565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612c5157612c51613c19565b602090810291909101015292915050565b6001600160a01b0384163b15611ead5760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190612ca69089908990889088908890600401614164565b6020604051808303816000875af1925050508015612ce1575060408051601f3d908101601f19168201909252612cde9181019061405b565b60015b612ced57612994614078565b6001600160e01b0319811663f23a6e6160e01b146125095760405162461bcd60e51b81526004016107ac9061411c565b60606107da6001600160a01b03831660145b60606000612d3e836002613c42565b612d49906002613c2f565b6001600160401b03811115612d6057612d6061334d565b6040519080825280601f01601f191660200182016040528015612d8a576020820181803683370190505b509050600360fc1b81600081518110612da557612da5613c19565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110612dd457612dd4613c19565b60200101906001600160f81b031916908160001a9053506000612df8846002613c42565b612e03906001613c2f565b90505b6001811115612e7b576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110612e3757612e37613c19565b1a60f81b828281518110612e4d57612e4d613c19565b60200101906001600160f81b031916908160001a90535060049490941c93612e74816141a9565b9050612e06565b508315612eca5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016107ac565b9392505050565b6001600160a01b038516612f595760005b8351811015612f5757828181518110612efd57612efd613c19565b602002602001015161012d6000868481518110612f1c57612f1c613c19565b602002602001015181526020019081526020016000206000828254612f419190613c2f565b90915550612f50905081613b1a565b9050612ee2565b505b6001600160a01b038416611ead5760005b8351811015612509576000848281518110612f8757612f87613c19565b602002602001015190506000848381518110612fa557612fa5613c19565b60200260200101519050600061012d6000848152602001908152602001600020549050818110156130295760405162461bcd60e51b815260206004820152602860248201527f455243313135353a206275726e20616d6f756e74206578636565647320746f74604482015267616c537570706c7960c01b60648201526084016107ac565b600092835261012d60205260409092209103905561304681613b1a565b9050612f6a565b61305681612a64565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060612eca83836040518060600160405280602781526020016141fd602791396130be565b6067610c948282613c9f565b6060600080856001600160a01b0316856040516130db91906141c0565b600060405180830381855af49150503d8060008114613116576040519150601f19603f3d011682016040523d82523d6000602084013e61311b565b606091505b509150915061312c86838387613136565b9695505050505050565b606083156131a557825160000361319e576001600160a01b0385163b61319e5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016107ac565b50816131af565b6131af83836131b7565b949350505050565b8151156129b35781518083602001fd5b80356001600160a01b03811681146131de57600080fd5b919050565b600080604083850312156131f657600080fd5b6131ff836131c7565b946020939093013593505050565b6001600160e01b031981168114610d7457600080fd5b60006020828403121561323557600080fd5b8135612eca8161320d565b60006020828403121561325257600080fd5b5035919050565b60005b8381101561327457818101518382015260200161325c565b50506000910152565b60008151808452613295816020860160208601613259565b601f01601f19169290920160200192915050565b602081526000612eca602083018461327d565b634e487b7160e01b600052602160045260246000fd5b600481106132f057634e487b7160e01b600052602160045260246000fd5b9052565b6132fe81886132d2565b85602082015284604082015260018060a01b038416606082015260c06080820152600061332e60c083018561327d565b82810360a0840152613340818561327d565b9998505050505050505050565b634e487b7160e01b600052604160045260246000fd5b601f8201601f191681016001600160401b03811182821017156133885761338861334d565b6040525050565b60006001600160401b038211156133a8576133a861334d565b5060051b60200190565b600082601f8301126133c357600080fd5b813560206133d08261338f565b6040516133dd8282613363565b83815260059390931b85018201928281019150868411156133fd57600080fd5b8286015b848110156134185780358352918301918301613401565b509695505050505050565b600082601f83011261343457600080fd5b81356001600160401b0381111561344d5761344d61334d565b604051613464601f8301601f191660200182613363565b81815284602083860101111561347957600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a086880312156134ae57600080fd5b6134b7866131c7565b94506134c5602087016131c7565b935060408601356001600160401b03808211156134e157600080fd5b6134ed89838a016133b2565b9450606088013591508082111561350357600080fd5b61350f89838a016133b2565b9350608088013591508082111561352557600080fd5b5061353288828901613423565b9150509295509295909350565b6000806040838503121561355257600080fd5b82359150613562602084016131c7565b90509250929050565b60006020828403121561357d57600080fd5b612eca826131c7565b6000806040838503121561359957600080fd5b82356001600160401b03808211156135b057600080fd5b818501915085601f8301126135c457600080fd5b813560206135d18261338f565b6040516135de8282613363565b83815260059390931b85018201928281019150898411156135fe57600080fd5b948201945b8386101561362357613614866131c7565b82529482019490820190613603565b9650508601359250508082111561363957600080fd5b50613646858286016133b2565b9150509250929050565b600081518084526020808501945080840160005b8381101561368057815187529582019590820190600101613664565b509495945050505050565b602081526000612eca6020830184613650565b600080604083850312156136b157600080fd5b6136ba836131c7565b915060208301356001600160401b038111156136d557600080fd5b61364685828601613423565b6000806000606084860312156136f657600080fd5b6136ff846131c7565b925060208401356001600160401b038082111561371b57600080fd5b613727878388016133b2565b9350604086013591508082111561373d57600080fd5b5061374a868287016133b2565b9150509250925092565b6000806000806080858703121561376a57600080fd5b8435935060208501359250613781604086016131c7565b915060608501356001600160401b0381111561379c57600080fd5b6137a887828801613423565b91505092959194509250565b600080604083850312156137c757600080fd5b6137d0836131c7565b9150602083013580151581146137e557600080fd5b809150509250929050565b600080600080600060a0868803121561380857600080fd5b85359450613818602087016131c7565b9350613826604087016131c7565b925060608601356001600160401b038082111561384257600080fd5b61350f89838a01613423565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b838110156138b657888303603f19018552815180518785526138998886018261327d565b918901519489019490945294870194925090860190600101613875565b509098975050505050505050565b600080604083850312156138d757600080fd5b50508035926020909101359150565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b838110156138b657603f19898403018552815160c061392d8583516132d2565b81890151858a015287820151888601526060808301516001600160a01b0316908601526080808301518187018390526139688388018261327d565b9250505060a08083015192508582038187015250613986818361327d565b96890196945050509086019060010161390d565b6000806000606084860312156139af57600080fd5b8335925060208401356001600160401b03808211156139cd57600080fd5b6139d987838801613423565b935060408601359150808211156139ef57600080fd5b5061374a86828701613423565b60008060408385031215613a0f57600080fd5b613a18836131c7565b9150613562602084016131c7565b600080600080600060a08688031215613a3e57600080fd5b613a47866131c7565b9450613a55602087016131c7565b9350604086013592506060860135915060808601356001600160401b03811115613a7e57600080fd5b61353288828901613423565b600080600060608486031215613a9f57600080fd5b613aa8846131c7565b95602085013595506040909401359392505050565b600181811c90821680613ad157607f821691505b602082108103611aea57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b818103818111156107da576107da613af1565b600060018201613b2c57613b2c613af1565b5060010190565b6020808252602e908201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60408201526d195c881bdc88185c1c1c9bdd995960921b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b808201808211156107da576107da613af1565b80820281158282048414176107da576107da613af1565b601f821115610c1557600081815260208120601f850160051c81016020861015613c805750805b601f850160051c820191505b81811015611ead57828155600101613c8c565b81516001600160401b03811115613cb857613cb861334d565b613ccc81613cc68454613abd565b84613c59565b602080601f831160018114613d015760008415613ce95750858301515b600019600386901b1c1916600185901b178555611ead565b600085815260208120601f198616915b82811015613d3057888601518255948401946001909101908401613d11565b5085821015613d4e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b848152608060208201526000613d77608083018661327d565b6040830194909452506001600160a01b039190911660609091015292915050565b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b604081526000613e826040830185613650565b8281036020840152613e948185613650565b95945050505050565b600060208284031215613eaf57600080fd5b5051919050565b60208082526023908201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526024908201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604082015263616e636560e01b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351613fc0816017850160208801613259565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351613ff1816028840160208801613259565b01602801949350505050565b6001600160a01b0386811682528516602082015260a06040820181905260009061402990830186613650565b828103606084015261403b8186613650565b9050828103608084015261404f818561327d565b98975050505050505050565b60006020828403121561406d57600080fd5b8151612eca8161320d565b600060033d111561104f5760046000803e5060005160e01c90565b600060443d10156140a15790565b6040516003193d81016004833e81513d6001600160401b0381602484011181841117156140d057505050505090565b82850191508151818111156140e85750505050505090565b843d87010160208285010111156141025750505050505090565b61411160208286010187613363565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009061419e9083018461327d565b979650505050505050565b6000816141b8576141b8613af1565b506000190190565b600082516141d2818460208701613259565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220749b0545c67a95a37cd13c435df55c9c3e568da0b5e1612da4f2949999371ea164736f6c63430008130033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/artifacts/src/RadarEditions.sol/RadarEditions.dbg.json b/artifacts/src/RadarEditions.sol/RadarEditions.dbg.json index ca0ec41..6ad83c4 100644 --- a/artifacts/src/RadarEditions.sol/RadarEditions.dbg.json +++ b/artifacts/src/RadarEditions.sol/RadarEditions.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/2ed725b1f2c7d633afb5e330c951db15.json" + "buildInfo": "../../build-info/171ad7c7ebd2434e305e5be3a45f38c2.json" } diff --git a/artifacts/src/RadarEditions.sol/RadarEditions.json b/artifacts/src/RadarEditions.sol/RadarEditions.json index e95b49b..00a5217 100644 --- a/artifacts/src/RadarEditions.sol/RadarEditions.json +++ b/artifacts/src/RadarEditions.sol/RadarEditions.json @@ -1391,26 +1391,8 @@ "type": "receive" } ], - "bytecode": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000e7565b600054610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000e5576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6080516149736200011f60003960008181610dec01528181610e2c015281816110260152818161106601526110f501526149736000f3fe60806040526004361061027e5760003560e01c80637cc749411161014e578063c6fbb712116100bb578063e8a3d48511610077578063e8a3d485146107d7578063e985e9c5146107ec578063f242432a14610835578063f5298aca14610855578063f8c1b2fd14610875578063fc74efa21461089557005b8063c6fbb71214610711578063c84aae1714610728578063d547741f14610755578063d667c9ce14610775578063df6efc6c14610795578063e43990fe146107b757005b8063a217fddf1161010a578063a217fddf14610660578063a22cb46514610675578063b0e21e8a14610695578063b3a44bd6146106ac578063b94967a4146106cc578063bd85b039146106e357005b80637cc74941146105c35780638129fc1c146105e35780638456cb59146105f857806391d148541461060d578063940123da1461062d5780639e751ffc1461064057005b80633659cfe6116101ec5780635c975abb116101a85780635c975abb146105215780636b20c454146105395780636b5cb789146105595780637357628c14610570578063787dce3d14610590578063790bafc6146105b057005b80633659cfe6146104675780633f4ba83a146104875780634e1273f41461049c5780634f1ef286146104c95780634f558e79146104dc57806352d1902d1461050c57005b8063248a9ca31161023b578063248a9ca314610377578063279c806e146103a757806327e235e3146103d95780632eb2c2d6146104075780632f2ff15d1461042757806336568abe1461044757005b8062fdd58e1461028757806301ffc9a7146102ba57806302fe5305146102ea5780630a579eca1461030a5780630e89341c1461032a578063155dd5ee1461035757005b3661028557005b005b34801561029357600080fd5b506102a76102a2366004613846565b6108b5565b6040519081526020015b60405180910390f35b3480156102c657600080fd5b506102da6102d5366004613886565b610950565b60405190151581526020016102b1565b3480156102f657600080fd5b50610285610305366004613958565b61095b565b34801561031657600080fd5b5061028561032536600461398c565b610992565b34801561033657600080fd5b5061034a61034536600461398c565b610a74565b6040516102b191906139f5565b34801561036357600080fd5b5061028561037236600461398c565b610aaf565b34801561038357600080fd5b506102a761039236600461398c565b60009081526097602052604090206001015490565b3480156103b357600080fd5b506103c76103c236600461398c565b610bac565b6040516102b196959493929190613a40565b3480156103e557600080fd5b506102a76103f4366004613a99565b6101c76020526000908152604090205481565b34801561041357600080fd5b50610285610422366004613b48565b610d02565b34801561043357600080fd5b50610285610442366004613bf1565b610d4e565b34801561045357600080fd5b50610285610462366004613bf1565b610d68565b34801561047357600080fd5b50610285610482366004613a99565b610de2565b34801561049357600080fd5b50610285610ec1565b3480156104a857600080fd5b506104bc6104b7366004613c1d565b610ef3565b6040516102b19190613d22565b6102856104d7366004613d35565b61101c565b3480156104e857600080fd5b506102da6104f736600461398c565b600090815261012d6020526040902054151590565b34801561051857600080fd5b506102a76110e8565b34801561052d57600080fd5b5060c95460ff166102da565b34801561054557600080fd5b50610285610554366004613d78565b61119c565b34801561056557600080fd5b506102a76101c65481565b34801561057c57600080fd5b5061028561058b36600461398c565b6111df565b34801561059c57600080fd5b506102856105ab36600461398c565b611280565b6102856105be366004613deb565b611292565b3480156105cf57600080fd5b506102856105de36600461398c565b6114cf565b3480156105ef57600080fd5b506102856114e1565b34801561060457600080fd5b506102856116ac565b34801561061957600080fd5b506102da610628366004613bf1565b6116de565b61028561063b366004613e1b565b611709565b34801561064c57600080fd5b5061028561065b36600461398c565b6117f6565b34801561066c57600080fd5b506102a7600081565b34801561068157600080fd5b50610285610690366004613e7b565b611808565b3480156106a157600080fd5b506102a76101c35481565b3480156106b857600080fd5b506102a76106c7366004613eb7565b611813565b3480156106d857600080fd5b506102a76101c85481565b3480156106ef57600080fd5b506102a76106fe36600461398c565b600090815261012d602052604090205490565b34801561071d57600080fd5b506102a76101c55481565b34801561073457600080fd5b50610748610743366004613a99565b61196d565b6040516102b19190613f15565b34801561076157600080fd5b50610285610770366004613bf1565b611ad7565b34801561078157600080fd5b50610285610790366004613f8b565b611afc565b3480156107a157600080fd5b506107aa611c3e565b6040516102b19190613fad565b3480156107c357600080fd5b506102856107d2366004614061565b611ead565b3480156107e357600080fd5b5061034a611f33565b3480156107f857600080fd5b506102da6108073660046140c3565b6001600160a01b03918216600090815260666020908152604080832093909416825291909152205460ff1690565b34801561084157600080fd5b506102856108503660046140ed565b611f53565b34801561086157600080fd5b50610285610870366004614151565b611f98565b34801561088157600080fd5b5061028561089036600461398c565b611fdb565b3480156108a157600080fd5b506102856108b036600461398c565b612070565b60006001600160a01b0383166109255760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b60648201526084015b60405180910390fd5b5060008181526065602090815260408083206001600160a01b03861684529091529020545b92915050565b600061094a8261214b565b7f7804d923f43a17d325d77e781528e0793b2edd9890ab45fc64efd7b4b427744c61098581612170565b61098e8261217a565b5050565b60008181526101c460205260409020600301546001600160a01b03163314806109c157506109c16000336116de565b6109de5760405163388f811f60e01b815260040160405180910390fd5b600260008281526101c4602052604090205460ff166003811115610a0457610a04613a08565b14610a2257604051631f0fb6fd60e11b815260040160405180910390fd5b60008181526101c46020908152604091829020805460ff1916600317905590518281527f591913f977ab242c5871f116f36be231ff67df5e8e0bac1efd91fa8a723aca2b91015b60405180910390a150565b6060610a7f82612186565b610a888361221a565b604051602001610a99929190614184565b6040516020818303038152906040529050919050565b6000610aba81612170565b47821115610adb57604051631036b5ad60e31b815260040160405180910390fd5b4760005b6101c554811015610b3c5760008181526101c46020526040902060020154610b0790836141c9565b915083821015610b2a5760405163156bbc5b60e01b815260040160405180910390fd5b80610b34816141dc565b915050610adf565b50604051600090339085908381818185875af1925050503d8060008114610b7f576040519150601f19603f3d011682016040523d82523d6000602084013e610b84565b606091505b5050905080610ba6576040516317f2c34560e31b815260040160405180910390fd5b50505050565b6101c4602052600090815260409020805460018201546002830154600384015460048501805460ff90951695939492936001600160a01b0390921692610bf1906141f5565b80601f0160208091040260200160405190810160405280929190818152602001828054610c1d906141f5565b8015610c6a5780601f10610c3f57610100808354040283529160200191610c6a565b820191906000526020600020905b815481529060010190602001808311610c4d57829003601f168201915b505050505090806005018054610c7f906141f5565b80601f0160208091040260200160405190810160405280929190818152602001828054610cab906141f5565b8015610cf85780601f10610ccd57610100808354040283529160200191610cf8565b820191906000526020600020905b815481529060010190602001808311610cdb57829003601f168201915b5050505050905086565b6001600160a01b038516331480610d1e5750610d1e8533610807565b610d3a5760405162461bcd60e51b815260040161091c90614229565b610d4785858585856122ac565b5050505050565b6000610d5981612170565b610d638383612459565b505050565b6001600160a01b0381163314610dd85760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b606482015260840161091c565b61098e82826124df565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610e2a5760405162461bcd60e51b815260040161091c90614277565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610e736000805160206148d3833981519152546001600160a01b031690565b6001600160a01b031614610e995760405162461bcd60e51b815260040161091c906142c3565b610ea281612546565b60408051600080825260208201909252610ebe91839190612570565b50565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610eeb81612170565b610ebe6126db565b60608151835114610f585760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b606482015260840161091c565b600083516001600160401b03811115610f7357610f736138a3565b604051908082528060200260200182016040528015610f9c578160200160208202803683370190505b50905060005b845181101561101457610fe7858281518110610fc057610fc061430f565b6020026020010151858381518110610fda57610fda61430f565b60200260200101516108b5565b828281518110610ff957610ff961430f565b602090810291909101015261100d816141dc565b9050610fa2565b509392505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036110645760405162461bcd60e51b815260040161091c90614277565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166110ad6000805160206148d3833981519152546001600160a01b031690565b6001600160a01b0316146110d35760405162461bcd60e51b815260040161091c906142c3565b6110dc82612546565b61098e82826001612570565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146111885760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840161091c565b506000805160206148d38339815191525b90565b6001600160a01b0383163314806111b857506111b88333610807565b6111d45760405162461bcd60e51b815260040161091c90614229565b610d6383838361272d565b60006111ea81612170565b600160008381526101c4602052604090205460ff16600381111561121057611210613a08565b1461122e5760405163137c9c1f60e31b815260040160405180910390fd5b60008281526101c46020908152604091829020805460ff1916600217905590518381527f8f4352ac8b4aefdd2333162306bbe09dd4f4ff6661e89ccc4e4dcced8794e8f7910160405180910390a15050565b600061128b81612170565b506101c355565b6101c8543410156112b657604051631036b5ad60e31b815260040160405180910390fd5b600260008381526101c4602052604090205460ff1660038111156112dc576112dc613a08565b146112fa57604051631f0fb6fd60e11b815260040160405180910390fd5b6101c5546040516308fe3d0760e01b81523460048201526024810184905260448101919091526101c460648201526101c7608482015273__$49e18fe781110033976e5d9a79c457096c$__906308fe3d079060a40160006040518083038186803b15801561136757600080fd5b505af415801561137b573d6000803e3d6000fd5b505050506000805b6101ca5481101561141357336001600160a01b03166101ca82815481106113ac576113ac61430f565b6000918252602090912001546001600160a01b03160361140157336001600160a01b03166101ca82815481106113e4576113e461430f565b6000918252602090912001546001600160a01b0316149150611413565b8061140b816141dc565b915050611383565b508061145d576101ca80546001810182556000919091527f0faeda9012b7f59bd2a84ac2a33ead5fc9f720c38d8bbf90db1ac3c1518386eb0180546001600160a01b031916331790555b3360009081526101c960209081526040808320600887901c845290915290208054600160ff86161b179055336001600160a01b0316837f710e220a47c8d9e50587c80fe509f5e762149ef672440eff70798204dd70f5eb846040516114c291906139f5565b60405180910390a3505050565b60006114da81612170565b506101c655565b600054610100900460ff16158080156115015750600054600160ff909116105b8061151b5750303b15801561151b575060005460ff166001145b61157e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161091c565b6000805460ff1916600117905580156115a1576000805461ff0019166101001790555b6115b9604051806020016040528060008152506128cc565b6115c16128fc565b6115c9612925565b6115d16128fc565b6115d96128fc565b6115e16128fc565b6115ec600033612459565b6116167f7804d923f43a17d325d77e781528e0793b2edd9890ab45fc64efd7b4b427744c33612459565b6116407f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33612459565b61166a7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e333612459565b8015610ebe576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610a69565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6116d681612170565b610ebe612954565b60009182526097602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600061171481612170565b600260008681526101c4602052604090205460ff16600381111561173a5761173a613a08565b1461175857604051631f0fb6fd60e11b815260040160405180910390fd5b6101c35460008681526101c46020526040902060010154859161177a91614325565b6117849190614338565b3410156117a457604051631036b5ad60e31b815260040160405180910390fd5b6117b083868685612991565b6101c3546117be9085614338565b6117c890346141c9565b60008681526101c46020526040812060020180549091906117ea908490614325565b90915550505050505050565b600061180181612170565b506101c855565b61098e338383612ab6565b60006101c65486111561183957604051630f0c4c5f60e41b815260040160405180910390fd5b506101c5546040805160c0810190915280600181526020808201899052600060408084018290526001600160a01b038a1660608501526080840188905260a09093018690528481526101c49091522081518154829060ff191660018360038111156118a6576118a6613a08565b0217905550602082015160018201556040820151600282015560608201516003820180546001600160a01b0319166001600160a01b03909216919091179055608082015160048201906118f99082614395565b5060a0820151600582019061190e9082614395565b50506101c5805491506000611922836141dc565b91905055507f3deb71b5a6774038a220621d78241405004043d5a928de9c7956bcc5270416db8183888860405161195c9493929190614454565b60405180910390a195945050505050565b606060006101c5546001600160401b0381111561198c5761198c6138a3565b6040519080825280602002602001820160405280156119d257816020015b6040805180820190915260608152600060208201528152602001906001900390816119aa5790505b50905060005b6101c554811015611ad05760405180604001604052806101c460008481526020019081526020016000206004018054611a10906141f5565b80601f0160208091040260200160405190810160405280929190818152602001828054611a3c906141f5565b8015611a895780601f10611a5e57610100808354040283529160200191611a89565b820191906000526020600020905b815481529060010190602001808311611a6c57829003601f168201915b50505050508152602001611a9d86846108b5565b815250828281518110611ab257611ab261430f565b60200260200101819052508080611ac8906141dc565b9150506119d8565b5092915050565b600082815260976020526040902060010154611af281612170565b610d6383836124df565b60008281526101c460205260409020600301546001600160a01b03163314611b375760405163388f811f60e01b815260040160405180910390fd5b60008281526101c46020526040902060020154811115611b6a57604051637eafab7d60e01b815260040160405180910390fd5b604051600090339083908381818185875af1925050503d8060008114611bac576040519150601f19603f3d011682016040523d82523d6000602084013e611bb1565b606091505b5050905080611bd3576040516317f2c34560e31b815260040160405180910390fd5b60008381526101c4602052604081206002018054849290611bf59084906141c9565b90915550506040805184815260208101849052338183015290517ff1090e9d5138cd4909542e10e1da576730b07eb291a71a151e63160dde345b949181900360600190a1505050565b606060006101c5546001600160401b03811115611c5d57611c5d6138a3565b604051908082528060200260200182016040528015611cd157816020015b611cbe6040805160c081019091528060008152602001600081526020016000815260200160006001600160a01b0316815260200160608152602001606081525090565b815260200190600190039081611c7b5790505b50905060005b6101c554811015611ea75760008181526101c4602052604090819020815160c081019092528054829060ff166003811115611d1457611d14613a08565b6003811115611d2557611d25613a08565b8152600182015460208201526002820154604082015260038201546001600160a01b03166060820152600482018054608090920191611d63906141f5565b80601f0160208091040260200160405190810160405280929190818152602001828054611d8f906141f5565b8015611ddc5780601f10611db157610100808354040283529160200191611ddc565b820191906000526020600020905b815481529060010190602001808311611dbf57829003601f168201915b50505050508152602001600582018054611df5906141f5565b80601f0160208091040260200160405190810160405280929190818152602001828054611e21906141f5565b8015611e6e5780601f10611e4357610100808354040283529160200191611e6e565b820191906000526020600020905b815481529060010190602001808311611e5157829003601f168201915b505050505081525050828281518110611e8957611e8961430f565b60200260200101819052508080611e9f906141dc565b915050611cd7565b50919050565b6000611eb881612170565b60008481526101c4602052604081205460ff166003811115611edc57611edc613a08565b03611efa5760405163137c9c1f60e31b815260040160405180910390fd5b60008481526101c460205260409020600401611f168482614395565b5060008481526101c460205260409020600501610d478382614395565b606060405180606001604052806024815260200161491a60249139905090565b6001600160a01b038516331480611f6f5750611f6f8533610807565b611f8b5760405162461bcd60e51b815260040161091c90614229565b610d478585858585612b8e565b6001600160a01b038316331480611fb45750611fb48333610807565b611fd05760405162461bcd60e51b815260040161091c90614229565b610d63838383612cca565b3360009081526101c960209081526040808320600885901c84529182905290912054600160ff84161b166120225760405163423f327760e11b815260040160405180910390fd5b600882901c6000908152602082905260408082208054600160ff87161b1916905551339184917fc6c1c3224e50c3c958e39197695bdfe8457ce7c0014d8d51a4d3aa12c5ac18489190a35050565b60008181526101c460205260409020600301546001600160a01b031633148061209f575061209f6000336116de565b6120bc5760405163388f811f60e01b815260040160405180910390fd5b600360008281526101c4602052604090205460ff1660038111156120e2576120e2613a08565b146121005760405163968807a560e01b815260040160405180910390fd5b60008181526101c46020908152604091829020805460ff1916600217905590518281527f63bb17c9645a29322601b4fe88d8f3fa84f32229368294f903084be8f5d813ba9101610a69565b60006001600160e01b03198216637965db0b60e01b148061094a575061094a82612de6565b610ebe8133612e36565b606761098e8282614395565b606060678054612195906141f5565b80601f01602080910402602001604051908101604052809291908181526020018280546121c1906141f5565b801561220e5780601f106121e35761010080835404028352916020019161220e565b820191906000526020600020905b8154815290600101906020018083116121f157829003601f168201915b50505050509050919050565b6060600061222783612e8f565b60010190506000816001600160401b03811115612246576122466138a3565b6040519080825280601f01601f191660200182016040528015612270576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461227a57509392505050565b81518351146122cd5760405162461bcd60e51b815260040161091c9061448e565b6001600160a01b0384166122f35760405162461bcd60e51b815260040161091c906144d6565b33612302818787878787612f67565b60005b84518110156123eb5760008582815181106123225761232261430f565b6020026020010151905060008583815181106123405761234061430f565b60209081029190910181015160008481526065835260408082206001600160a01b038e1683529093529190912054909150818110156123915760405162461bcd60e51b815260040161091c9061451b565b60008381526065602090815260408083206001600160a01b038e8116855292528083208585039055908b168252812080548492906123d0908490614325565b92505081905550505050806123e4906141dc565b9050612305565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb878760405161243b929190614565565b60405180910390a4612451818787878787612f7d565b505050505050565b61246382826116de565b61098e5760008281526097602090815260408083206001600160a01b03851684529091529020805460ff1916600117905561249b3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6124e982826116de565b1561098e5760008281526097602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e361098e81612170565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156125a357610d63836130d8565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156125fd575060408051601f3d908101601f191682019092526125fa91810190614593565b60015b6126605760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840161091c565b6000805160206148d383398151915281146126cf5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840161091c565b50610d63838383613174565b6126e3613199565b60c9805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b0383166127535760405162461bcd60e51b815260040161091c906145ac565b80518251146127745760405162461bcd60e51b815260040161091c9061448e565b600033905061279781856000868660405180602001604052806000815250612f67565b60005b835181101561285f5760008482815181106127b7576127b761430f565b6020026020010151905060008483815181106127d5576127d561430f565b60209081029190910181015160008481526065835260408082206001600160a01b038c1683529093529190912054909150818110156128265760405162461bcd60e51b815260040161091c906145ef565b60009283526065602090815260408085206001600160a01b038b1686529091529092209103905580612857816141dc565b91505061279a565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb86866040516128b0929190614565565b60405180910390a4604080516020810190915260009052610ba6565b600054610100900460ff166128f35760405162461bcd60e51b815260040161091c90614633565b610ebe816131e2565b600054610100900460ff166129235760405162461bcd60e51b815260040161091c90614633565b565b600054610100900460ff1661294c5760405162461bcd60e51b815260040161091c90614633565b612923613212565b61295c613245565b60c9805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586127103390565b6001600160a01b0384166129f15760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b606482015260840161091c565b3360006129fd8561328b565b90506000612a0a8561328b565b9050612a1b83600089858589612f67565b60008681526065602090815260408083206001600160a01b038b16845290915281208054879290612a4d908490614325565b909155505060408051878152602081018790526001600160a01b03808a1692600092918716917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4612aad836000898989896132d6565b50505050505050565b816001600160a01b0316836001600160a01b031603612b295760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b606482015260840161091c565b6001600160a01b03838116600081815260666020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3191016114c2565b6001600160a01b038416612bb45760405162461bcd60e51b815260040161091c906144d6565b336000612bc08561328b565b90506000612bcd8561328b565b9050612bdd838989858589612f67565b60008681526065602090815260408083206001600160a01b038c16845290915290205485811015612c205760405162461bcd60e51b815260040161091c9061451b565b60008781526065602090815260408083206001600160a01b038d8116855292528083208985039055908a16825281208054889290612c5f908490614325565b909155505060408051888152602081018890526001600160a01b03808b16928c821692918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4612cbf848a8a8a8a8a6132d6565b505050505050505050565b6001600160a01b038316612cf05760405162461bcd60e51b815260040161091c906145ac565b336000612cfc8461328b565b90506000612d098461328b565b9050612d2983876000858560405180602001604052806000815250612f67565b60008581526065602090815260408083206001600160a01b038a16845290915290205484811015612d6c5760405162461bcd60e51b815260040161091c906145ef565b60008681526065602090815260408083206001600160a01b038b81168086529184528285208a8703905582518b81529384018a90529092908816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4604080516020810190915260009052612aad565b60006001600160e01b03198216636cdb3d1360e11b1480612e1757506001600160e01b031982166303a24d0760e21b145b8061094a57506301ffc9a760e01b6001600160e01b031983161461094a565b612e4082826116de565b61098e57612e4d81613391565b612e588360206133a3565b604051602001612e6992919061467e565b60408051601f198184030181529082905262461bcd60e51b825261091c916004016139f5565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310612ece5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310612efa576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310612f1857662386f26fc10000830492506010015b6305f5e1008310612f30576305f5e100830492506008015b6127108310612f4457612710830492506004015b60648310612f56576064830492506002015b600a831061094a5760010192915050565b612f6f613245565b612451868686868686613545565b6001600160a01b0384163b156124515760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190612fc190899089908890889088906004016146f3565b6020604051808303816000875af1925050508015612ffc575060408051601f3d908101601f19168201909252612ff991810190614751565b60015b6130a85761300861476e565b806308c379a003613041575061301c614789565b806130275750613043565b8060405162461bcd60e51b815260040161091c91906139f5565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b606482015260840161091c565b6001600160e01b0319811663bc197c8160e01b14612aad5760405162461bcd60e51b815260040161091c90614812565b6001600160a01b0381163b6131455760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161091c565b6000805160206148d383398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61317d836136c1565b60008251118061318a5750805b15610d6357610ba68383613701565b60c95460ff166129235760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015260640161091c565b600054610100900460ff166132095760405162461bcd60e51b815260040161091c90614633565b610ebe8161217a565b600054610100900460ff166132395760405162461bcd60e51b815260040161091c90614633565b60c9805460ff19169055565b60c95460ff16156129235760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015260640161091c565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106132c5576132c561430f565b602090810291909101015292915050565b6001600160a01b0384163b156124515760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e619061331a908990899088908890889060040161485a565b6020604051808303816000875af1925050508015613355575060408051601f3d908101601f1916820190925261335291810190614751565b60015b6133615761300861476e565b6001600160e01b0319811663f23a6e6160e01b14612aad5760405162461bcd60e51b815260040161091c90614812565b606061094a6001600160a01b03831660145b606060006133b2836002614338565b6133bd906002614325565b6001600160401b038111156133d4576133d46138a3565b6040519080825280601f01601f1916602001820160405280156133fe576020820181803683370190505b509050600360fc1b816000815181106134195761341961430f565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106134485761344861430f565b60200101906001600160f81b031916908160001a905350600061346c846002614338565b613477906001614325565b90505b60018111156134ef576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106134ab576134ab61430f565b1a60f81b8282815181106134c1576134c161430f565b60200101906001600160f81b031916908160001a90535060049490941c936134e88161489f565b905061347a565b50831561353e5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161091c565b9392505050565b6001600160a01b0385166135cd5760005b83518110156135cb578281815181106135715761357161430f565b602002602001015161012d60008684815181106135905761359061430f565b6020026020010151815260200190815260200160002060008282546135b59190614325565b909155506135c49050816141dc565b9050613556565b505b6001600160a01b0384166124515760005b8351811015612aad5760008482815181106135fb576135fb61430f565b6020026020010151905060008483815181106136195761361961430f565b60200260200101519050600061012d60008481526020019081526020016000205490508181101561369d5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a206275726e20616d6f756e74206578636565647320746f74604482015267616c537570706c7960c01b606482015260840161091c565b600092835261012d6020526040909220910390556136ba816141dc565b90506135de565b6136ca816130d8565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061353e83836040518060600160405280602781526020016148f3602791396060600080856001600160a01b03168560405161373e91906148b6565b600060405180830381855af49150503d8060008114613779576040519150601f19603f3d011682016040523d82523d6000602084013e61377e565b606091505b509150915061378f86838387613799565b9695505050505050565b60608315613808578251600003613801576001600160a01b0385163b6138015760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161091c565b5081613812565b613812838361381a565b949350505050565b8151156130275781518083602001fd5b80356001600160a01b038116811461384157600080fd5b919050565b6000806040838503121561385957600080fd5b6138628361382a565b946020939093013593505050565b6001600160e01b031981168114610ebe57600080fd5b60006020828403121561389857600080fd5b813561353e81613870565b634e487b7160e01b600052604160045260246000fd5b601f8201601f191681016001600160401b03811182821017156138de576138de6138a3565b6040525050565b600082601f8301126138f657600080fd5b81356001600160401b0381111561390f5761390f6138a3565b604051613926601f8301601f1916602001826138b9565b81815284602083860101111561393b57600080fd5b816020850160208301376000918101602001919091529392505050565b60006020828403121561396a57600080fd5b81356001600160401b0381111561398057600080fd5b613812848285016138e5565b60006020828403121561399e57600080fd5b5035919050565b60005b838110156139c05781810151838201526020016139a8565b50506000910152565b600081518084526139e18160208601602086016139a5565b601f01601f19169290920160200192915050565b60208152600061353e60208301846139c9565b634e487b7160e01b600052602160045260246000fd5b60048110613a3c57634e487b7160e01b600052602160045260246000fd5b9052565b613a4a8188613a1e565b85602082015284604082015260018060a01b038416606082015260c060808201526000613a7a60c08301856139c9565b82810360a0840152613a8c81856139c9565b9998505050505050505050565b600060208284031215613aab57600080fd5b61353e8261382a565b60006001600160401b03821115613acd57613acd6138a3565b5060051b60200190565b600082601f830112613ae857600080fd5b81356020613af582613ab4565b604051613b0282826138b9565b83815260059390931b8501820192828101915086841115613b2257600080fd5b8286015b84811015613b3d5780358352918301918301613b26565b509695505050505050565b600080600080600060a08688031215613b6057600080fd5b613b698661382a565b9450613b776020870161382a565b935060408601356001600160401b0380821115613b9357600080fd5b613b9f89838a01613ad7565b94506060880135915080821115613bb557600080fd5b613bc189838a01613ad7565b93506080880135915080821115613bd757600080fd5b50613be4888289016138e5565b9150509295509295909350565b60008060408385031215613c0457600080fd5b82359150613c146020840161382a565b90509250929050565b60008060408385031215613c3057600080fd5b82356001600160401b0380821115613c4757600080fd5b818501915085601f830112613c5b57600080fd5b81356020613c6882613ab4565b604051613c7582826138b9565b83815260059390931b8501820192828101915089841115613c9557600080fd5b948201945b83861015613cba57613cab8661382a565b82529482019490820190613c9a565b96505086013592505080821115613cd057600080fd5b50613cdd85828601613ad7565b9150509250929050565b600081518084526020808501945080840160005b83811015613d1757815187529582019590820190600101613cfb565b509495945050505050565b60208152600061353e6020830184613ce7565b60008060408385031215613d4857600080fd5b613d518361382a565b915060208301356001600160401b03811115613d6c57600080fd5b613cdd858286016138e5565b600080600060608486031215613d8d57600080fd5b613d968461382a565b925060208401356001600160401b0380821115613db257600080fd5b613dbe87838801613ad7565b93506040860135915080821115613dd457600080fd5b50613de186828701613ad7565b9150509250925092565b60008060408385031215613dfe57600080fd5b8235915060208301356001600160401b03811115613d6c57600080fd5b60008060008060808587031215613e3157600080fd5b8435935060208501359250613e486040860161382a565b915060608501356001600160401b03811115613e6357600080fd5b613e6f878288016138e5565b91505092959194509250565b60008060408385031215613e8e57600080fd5b613e978361382a565b915060208301358015158114613eac57600080fd5b809150509250929050565b600080600080600060a08688031215613ecf57600080fd5b85359450613edf6020870161382a565b9350613eed6040870161382a565b925060608601356001600160401b0380821115613f0957600080fd5b613bc189838a016138e5565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b83811015613f7d57888303603f1901855281518051878552613f60888601826139c9565b918901519489019490945294870194925090860190600101613f3c565b509098975050505050505050565b60008060408385031215613f9e57600080fd5b50508035926020909101359150565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b83811015613f7d57603f19898403018552815160c0613ff4858351613a1e565b81890151858a015287820151888601526060808301516001600160a01b03169086015260808083015181870183905261402f838801826139c9565b9250505060a0808301519250858203818701525061404d81836139c9565b968901969450505090860190600101613fd4565b60008060006060848603121561407657600080fd5b8335925060208401356001600160401b038082111561409457600080fd5b6140a0878388016138e5565b935060408601359150808211156140b657600080fd5b50613de1868287016138e5565b600080604083850312156140d657600080fd5b6140df8361382a565b9150613c146020840161382a565b600080600080600060a0868803121561410557600080fd5b61410e8661382a565b945061411c6020870161382a565b9350604086013592506060860135915060808601356001600160401b0381111561414557600080fd5b613be4888289016138e5565b60008060006060848603121561416657600080fd5b61416f8461382a565b95602085013595506040909401359392505050565b600083516141968184602088016139a5565b8351908301906141aa8183602088016139a5565b01949350505050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561094a5761094a6141b3565b6000600182016141ee576141ee6141b3565b5060010190565b600181811c9082168061420957607f821691505b602082108103611ea757634e487b7160e01b600052602260045260246000fd5b6020808252602e908201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60408201526d195c881bdc88185c1c1c9bdd995960921b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b8082018082111561094a5761094a6141b3565b808202811582820484141761094a5761094a6141b3565b601f821115610d6357600081815260208120601f850160051c810160208610156143765750805b601f850160051c820191505b8181101561245157828155600101614382565b81516001600160401b038111156143ae576143ae6138a3565b6143c2816143bc84546141f5565b8461434f565b602080601f8311600181146143f757600084156143df5750858301515b600019600386901b1c1916600185901b178555612451565b600085815260208120601f198616915b8281101561442657888601518255948401946001909101908401614407565b50858210156144445787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b84815260806020820152600061446d60808301866139c9565b6040830194909452506001600160a01b039190911660609091015292915050565b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b6040815260006145786040830185613ce7565b828103602084015261458a8185613ce7565b95945050505050565b6000602082840312156145a557600080fd5b5051919050565b60208082526023908201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526024908201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604082015263616e636560e01b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516146b68160178501602088016139a5565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516146e78160288401602088016139a5565b01602801949350505050565b6001600160a01b0386811682528516602082015260a06040820181905260009061471f90830186613ce7565b82810360608401526147318186613ce7565b9050828103608084015261474581856139c9565b98975050505050505050565b60006020828403121561476357600080fd5b815161353e81613870565b600060033d11156111995760046000803e5060005160e01c90565b600060443d10156147975790565b6040516003193d81016004833e81513d6001600160401b0381602484011181841117156147c657505050505090565b82850191508151818111156147de5750505050505090565b843d87010160208285010111156147f85750505050505090565b614807602082860101876138b9565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090614894908301846139c9565b979650505050505050565b6000816148ae576148ae6141b3565b506000190190565b600082516148c88184602087016139a5565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656468747470733a2f2f72616461726c61756e63682e6170702f6170692f6d65746164617461a264697066735822122052c361c9b80283a3959c1c8f97860b517f85015b3e40c2ef7c58e272e011f9e364736f6c63430008130033", - "deployedBytecode": "0x60806040526004361061027e5760003560e01c80637cc749411161014e578063c6fbb712116100bb578063e8a3d48511610077578063e8a3d485146107d7578063e985e9c5146107ec578063f242432a14610835578063f5298aca14610855578063f8c1b2fd14610875578063fc74efa21461089557005b8063c6fbb71214610711578063c84aae1714610728578063d547741f14610755578063d667c9ce14610775578063df6efc6c14610795578063e43990fe146107b757005b8063a217fddf1161010a578063a217fddf14610660578063a22cb46514610675578063b0e21e8a14610695578063b3a44bd6146106ac578063b94967a4146106cc578063bd85b039146106e357005b80637cc74941146105c35780638129fc1c146105e35780638456cb59146105f857806391d148541461060d578063940123da1461062d5780639e751ffc1461064057005b80633659cfe6116101ec5780635c975abb116101a85780635c975abb146105215780636b20c454146105395780636b5cb789146105595780637357628c14610570578063787dce3d14610590578063790bafc6146105b057005b80633659cfe6146104675780633f4ba83a146104875780634e1273f41461049c5780634f1ef286146104c95780634f558e79146104dc57806352d1902d1461050c57005b8063248a9ca31161023b578063248a9ca314610377578063279c806e146103a757806327e235e3146103d95780632eb2c2d6146104075780632f2ff15d1461042757806336568abe1461044757005b8062fdd58e1461028757806301ffc9a7146102ba57806302fe5305146102ea5780630a579eca1461030a5780630e89341c1461032a578063155dd5ee1461035757005b3661028557005b005b34801561029357600080fd5b506102a76102a2366004613846565b6108b5565b6040519081526020015b60405180910390f35b3480156102c657600080fd5b506102da6102d5366004613886565b610950565b60405190151581526020016102b1565b3480156102f657600080fd5b50610285610305366004613958565b61095b565b34801561031657600080fd5b5061028561032536600461398c565b610992565b34801561033657600080fd5b5061034a61034536600461398c565b610a74565b6040516102b191906139f5565b34801561036357600080fd5b5061028561037236600461398c565b610aaf565b34801561038357600080fd5b506102a761039236600461398c565b60009081526097602052604090206001015490565b3480156103b357600080fd5b506103c76103c236600461398c565b610bac565b6040516102b196959493929190613a40565b3480156103e557600080fd5b506102a76103f4366004613a99565b6101c76020526000908152604090205481565b34801561041357600080fd5b50610285610422366004613b48565b610d02565b34801561043357600080fd5b50610285610442366004613bf1565b610d4e565b34801561045357600080fd5b50610285610462366004613bf1565b610d68565b34801561047357600080fd5b50610285610482366004613a99565b610de2565b34801561049357600080fd5b50610285610ec1565b3480156104a857600080fd5b506104bc6104b7366004613c1d565b610ef3565b6040516102b19190613d22565b6102856104d7366004613d35565b61101c565b3480156104e857600080fd5b506102da6104f736600461398c565b600090815261012d6020526040902054151590565b34801561051857600080fd5b506102a76110e8565b34801561052d57600080fd5b5060c95460ff166102da565b34801561054557600080fd5b50610285610554366004613d78565b61119c565b34801561056557600080fd5b506102a76101c65481565b34801561057c57600080fd5b5061028561058b36600461398c565b6111df565b34801561059c57600080fd5b506102856105ab36600461398c565b611280565b6102856105be366004613deb565b611292565b3480156105cf57600080fd5b506102856105de36600461398c565b6114cf565b3480156105ef57600080fd5b506102856114e1565b34801561060457600080fd5b506102856116ac565b34801561061957600080fd5b506102da610628366004613bf1565b6116de565b61028561063b366004613e1b565b611709565b34801561064c57600080fd5b5061028561065b36600461398c565b6117f6565b34801561066c57600080fd5b506102a7600081565b34801561068157600080fd5b50610285610690366004613e7b565b611808565b3480156106a157600080fd5b506102a76101c35481565b3480156106b857600080fd5b506102a76106c7366004613eb7565b611813565b3480156106d857600080fd5b506102a76101c85481565b3480156106ef57600080fd5b506102a76106fe36600461398c565b600090815261012d602052604090205490565b34801561071d57600080fd5b506102a76101c55481565b34801561073457600080fd5b50610748610743366004613a99565b61196d565b6040516102b19190613f15565b34801561076157600080fd5b50610285610770366004613bf1565b611ad7565b34801561078157600080fd5b50610285610790366004613f8b565b611afc565b3480156107a157600080fd5b506107aa611c3e565b6040516102b19190613fad565b3480156107c357600080fd5b506102856107d2366004614061565b611ead565b3480156107e357600080fd5b5061034a611f33565b3480156107f857600080fd5b506102da6108073660046140c3565b6001600160a01b03918216600090815260666020908152604080832093909416825291909152205460ff1690565b34801561084157600080fd5b506102856108503660046140ed565b611f53565b34801561086157600080fd5b50610285610870366004614151565b611f98565b34801561088157600080fd5b5061028561089036600461398c565b611fdb565b3480156108a157600080fd5b506102856108b036600461398c565b612070565b60006001600160a01b0383166109255760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b60648201526084015b60405180910390fd5b5060008181526065602090815260408083206001600160a01b03861684529091529020545b92915050565b600061094a8261214b565b7f7804d923f43a17d325d77e781528e0793b2edd9890ab45fc64efd7b4b427744c61098581612170565b61098e8261217a565b5050565b60008181526101c460205260409020600301546001600160a01b03163314806109c157506109c16000336116de565b6109de5760405163388f811f60e01b815260040160405180910390fd5b600260008281526101c4602052604090205460ff166003811115610a0457610a04613a08565b14610a2257604051631f0fb6fd60e11b815260040160405180910390fd5b60008181526101c46020908152604091829020805460ff1916600317905590518281527f591913f977ab242c5871f116f36be231ff67df5e8e0bac1efd91fa8a723aca2b91015b60405180910390a150565b6060610a7f82612186565b610a888361221a565b604051602001610a99929190614184565b6040516020818303038152906040529050919050565b6000610aba81612170565b47821115610adb57604051631036b5ad60e31b815260040160405180910390fd5b4760005b6101c554811015610b3c5760008181526101c46020526040902060020154610b0790836141c9565b915083821015610b2a5760405163156bbc5b60e01b815260040160405180910390fd5b80610b34816141dc565b915050610adf565b50604051600090339085908381818185875af1925050503d8060008114610b7f576040519150601f19603f3d011682016040523d82523d6000602084013e610b84565b606091505b5050905080610ba6576040516317f2c34560e31b815260040160405180910390fd5b50505050565b6101c4602052600090815260409020805460018201546002830154600384015460048501805460ff90951695939492936001600160a01b0390921692610bf1906141f5565b80601f0160208091040260200160405190810160405280929190818152602001828054610c1d906141f5565b8015610c6a5780601f10610c3f57610100808354040283529160200191610c6a565b820191906000526020600020905b815481529060010190602001808311610c4d57829003601f168201915b505050505090806005018054610c7f906141f5565b80601f0160208091040260200160405190810160405280929190818152602001828054610cab906141f5565b8015610cf85780601f10610ccd57610100808354040283529160200191610cf8565b820191906000526020600020905b815481529060010190602001808311610cdb57829003601f168201915b5050505050905086565b6001600160a01b038516331480610d1e5750610d1e8533610807565b610d3a5760405162461bcd60e51b815260040161091c90614229565b610d4785858585856122ac565b5050505050565b6000610d5981612170565b610d638383612459565b505050565b6001600160a01b0381163314610dd85760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b606482015260840161091c565b61098e82826124df565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610e2a5760405162461bcd60e51b815260040161091c90614277565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610e736000805160206148d3833981519152546001600160a01b031690565b6001600160a01b031614610e995760405162461bcd60e51b815260040161091c906142c3565b610ea281612546565b60408051600080825260208201909252610ebe91839190612570565b50565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610eeb81612170565b610ebe6126db565b60608151835114610f585760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b606482015260840161091c565b600083516001600160401b03811115610f7357610f736138a3565b604051908082528060200260200182016040528015610f9c578160200160208202803683370190505b50905060005b845181101561101457610fe7858281518110610fc057610fc061430f565b6020026020010151858381518110610fda57610fda61430f565b60200260200101516108b5565b828281518110610ff957610ff961430f565b602090810291909101015261100d816141dc565b9050610fa2565b509392505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036110645760405162461bcd60e51b815260040161091c90614277565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166110ad6000805160206148d3833981519152546001600160a01b031690565b6001600160a01b0316146110d35760405162461bcd60e51b815260040161091c906142c3565b6110dc82612546565b61098e82826001612570565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146111885760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840161091c565b506000805160206148d38339815191525b90565b6001600160a01b0383163314806111b857506111b88333610807565b6111d45760405162461bcd60e51b815260040161091c90614229565b610d6383838361272d565b60006111ea81612170565b600160008381526101c4602052604090205460ff16600381111561121057611210613a08565b1461122e5760405163137c9c1f60e31b815260040160405180910390fd5b60008281526101c46020908152604091829020805460ff1916600217905590518381527f8f4352ac8b4aefdd2333162306bbe09dd4f4ff6661e89ccc4e4dcced8794e8f7910160405180910390a15050565b600061128b81612170565b506101c355565b6101c8543410156112b657604051631036b5ad60e31b815260040160405180910390fd5b600260008381526101c4602052604090205460ff1660038111156112dc576112dc613a08565b146112fa57604051631f0fb6fd60e11b815260040160405180910390fd5b6101c5546040516308fe3d0760e01b81523460048201526024810184905260448101919091526101c460648201526101c7608482015273__$49e18fe781110033976e5d9a79c457096c$__906308fe3d079060a40160006040518083038186803b15801561136757600080fd5b505af415801561137b573d6000803e3d6000fd5b505050506000805b6101ca5481101561141357336001600160a01b03166101ca82815481106113ac576113ac61430f565b6000918252602090912001546001600160a01b03160361140157336001600160a01b03166101ca82815481106113e4576113e461430f565b6000918252602090912001546001600160a01b0316149150611413565b8061140b816141dc565b915050611383565b508061145d576101ca80546001810182556000919091527f0faeda9012b7f59bd2a84ac2a33ead5fc9f720c38d8bbf90db1ac3c1518386eb0180546001600160a01b031916331790555b3360009081526101c960209081526040808320600887901c845290915290208054600160ff86161b179055336001600160a01b0316837f710e220a47c8d9e50587c80fe509f5e762149ef672440eff70798204dd70f5eb846040516114c291906139f5565b60405180910390a3505050565b60006114da81612170565b506101c655565b600054610100900460ff16158080156115015750600054600160ff909116105b8061151b5750303b15801561151b575060005460ff166001145b61157e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161091c565b6000805460ff1916600117905580156115a1576000805461ff0019166101001790555b6115b9604051806020016040528060008152506128cc565b6115c16128fc565b6115c9612925565b6115d16128fc565b6115d96128fc565b6115e16128fc565b6115ec600033612459565b6116167f7804d923f43a17d325d77e781528e0793b2edd9890ab45fc64efd7b4b427744c33612459565b6116407f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33612459565b61166a7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e333612459565b8015610ebe576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610a69565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6116d681612170565b610ebe612954565b60009182526097602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600061171481612170565b600260008681526101c4602052604090205460ff16600381111561173a5761173a613a08565b1461175857604051631f0fb6fd60e11b815260040160405180910390fd5b6101c35460008681526101c46020526040902060010154859161177a91614325565b6117849190614338565b3410156117a457604051631036b5ad60e31b815260040160405180910390fd5b6117b083868685612991565b6101c3546117be9085614338565b6117c890346141c9565b60008681526101c46020526040812060020180549091906117ea908490614325565b90915550505050505050565b600061180181612170565b506101c855565b61098e338383612ab6565b60006101c65486111561183957604051630f0c4c5f60e41b815260040160405180910390fd5b506101c5546040805160c0810190915280600181526020808201899052600060408084018290526001600160a01b038a1660608501526080840188905260a09093018690528481526101c49091522081518154829060ff191660018360038111156118a6576118a6613a08565b0217905550602082015160018201556040820151600282015560608201516003820180546001600160a01b0319166001600160a01b03909216919091179055608082015160048201906118f99082614395565b5060a0820151600582019061190e9082614395565b50506101c5805491506000611922836141dc565b91905055507f3deb71b5a6774038a220621d78241405004043d5a928de9c7956bcc5270416db8183888860405161195c9493929190614454565b60405180910390a195945050505050565b606060006101c5546001600160401b0381111561198c5761198c6138a3565b6040519080825280602002602001820160405280156119d257816020015b6040805180820190915260608152600060208201528152602001906001900390816119aa5790505b50905060005b6101c554811015611ad05760405180604001604052806101c460008481526020019081526020016000206004018054611a10906141f5565b80601f0160208091040260200160405190810160405280929190818152602001828054611a3c906141f5565b8015611a895780601f10611a5e57610100808354040283529160200191611a89565b820191906000526020600020905b815481529060010190602001808311611a6c57829003601f168201915b50505050508152602001611a9d86846108b5565b815250828281518110611ab257611ab261430f565b60200260200101819052508080611ac8906141dc565b9150506119d8565b5092915050565b600082815260976020526040902060010154611af281612170565b610d6383836124df565b60008281526101c460205260409020600301546001600160a01b03163314611b375760405163388f811f60e01b815260040160405180910390fd5b60008281526101c46020526040902060020154811115611b6a57604051637eafab7d60e01b815260040160405180910390fd5b604051600090339083908381818185875af1925050503d8060008114611bac576040519150601f19603f3d011682016040523d82523d6000602084013e611bb1565b606091505b5050905080611bd3576040516317f2c34560e31b815260040160405180910390fd5b60008381526101c4602052604081206002018054849290611bf59084906141c9565b90915550506040805184815260208101849052338183015290517ff1090e9d5138cd4909542e10e1da576730b07eb291a71a151e63160dde345b949181900360600190a1505050565b606060006101c5546001600160401b03811115611c5d57611c5d6138a3565b604051908082528060200260200182016040528015611cd157816020015b611cbe6040805160c081019091528060008152602001600081526020016000815260200160006001600160a01b0316815260200160608152602001606081525090565b815260200190600190039081611c7b5790505b50905060005b6101c554811015611ea75760008181526101c4602052604090819020815160c081019092528054829060ff166003811115611d1457611d14613a08565b6003811115611d2557611d25613a08565b8152600182015460208201526002820154604082015260038201546001600160a01b03166060820152600482018054608090920191611d63906141f5565b80601f0160208091040260200160405190810160405280929190818152602001828054611d8f906141f5565b8015611ddc5780601f10611db157610100808354040283529160200191611ddc565b820191906000526020600020905b815481529060010190602001808311611dbf57829003601f168201915b50505050508152602001600582018054611df5906141f5565b80601f0160208091040260200160405190810160405280929190818152602001828054611e21906141f5565b8015611e6e5780601f10611e4357610100808354040283529160200191611e6e565b820191906000526020600020905b815481529060010190602001808311611e5157829003601f168201915b505050505081525050828281518110611e8957611e8961430f565b60200260200101819052508080611e9f906141dc565b915050611cd7565b50919050565b6000611eb881612170565b60008481526101c4602052604081205460ff166003811115611edc57611edc613a08565b03611efa5760405163137c9c1f60e31b815260040160405180910390fd5b60008481526101c460205260409020600401611f168482614395565b5060008481526101c460205260409020600501610d478382614395565b606060405180606001604052806024815260200161491a60249139905090565b6001600160a01b038516331480611f6f5750611f6f8533610807565b611f8b5760405162461bcd60e51b815260040161091c90614229565b610d478585858585612b8e565b6001600160a01b038316331480611fb45750611fb48333610807565b611fd05760405162461bcd60e51b815260040161091c90614229565b610d63838383612cca565b3360009081526101c960209081526040808320600885901c84529182905290912054600160ff84161b166120225760405163423f327760e11b815260040160405180910390fd5b600882901c6000908152602082905260408082208054600160ff87161b1916905551339184917fc6c1c3224e50c3c958e39197695bdfe8457ce7c0014d8d51a4d3aa12c5ac18489190a35050565b60008181526101c460205260409020600301546001600160a01b031633148061209f575061209f6000336116de565b6120bc5760405163388f811f60e01b815260040160405180910390fd5b600360008281526101c4602052604090205460ff1660038111156120e2576120e2613a08565b146121005760405163968807a560e01b815260040160405180910390fd5b60008181526101c46020908152604091829020805460ff1916600217905590518281527f63bb17c9645a29322601b4fe88d8f3fa84f32229368294f903084be8f5d813ba9101610a69565b60006001600160e01b03198216637965db0b60e01b148061094a575061094a82612de6565b610ebe8133612e36565b606761098e8282614395565b606060678054612195906141f5565b80601f01602080910402602001604051908101604052809291908181526020018280546121c1906141f5565b801561220e5780601f106121e35761010080835404028352916020019161220e565b820191906000526020600020905b8154815290600101906020018083116121f157829003601f168201915b50505050509050919050565b6060600061222783612e8f565b60010190506000816001600160401b03811115612246576122466138a3565b6040519080825280601f01601f191660200182016040528015612270576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461227a57509392505050565b81518351146122cd5760405162461bcd60e51b815260040161091c9061448e565b6001600160a01b0384166122f35760405162461bcd60e51b815260040161091c906144d6565b33612302818787878787612f67565b60005b84518110156123eb5760008582815181106123225761232261430f565b6020026020010151905060008583815181106123405761234061430f565b60209081029190910181015160008481526065835260408082206001600160a01b038e1683529093529190912054909150818110156123915760405162461bcd60e51b815260040161091c9061451b565b60008381526065602090815260408083206001600160a01b038e8116855292528083208585039055908b168252812080548492906123d0908490614325565b92505081905550505050806123e4906141dc565b9050612305565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb878760405161243b929190614565565b60405180910390a4612451818787878787612f7d565b505050505050565b61246382826116de565b61098e5760008281526097602090815260408083206001600160a01b03851684529091529020805460ff1916600117905561249b3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6124e982826116de565b1561098e5760008281526097602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e361098e81612170565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156125a357610d63836130d8565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156125fd575060408051601f3d908101601f191682019092526125fa91810190614593565b60015b6126605760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840161091c565b6000805160206148d383398151915281146126cf5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840161091c565b50610d63838383613174565b6126e3613199565b60c9805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b0383166127535760405162461bcd60e51b815260040161091c906145ac565b80518251146127745760405162461bcd60e51b815260040161091c9061448e565b600033905061279781856000868660405180602001604052806000815250612f67565b60005b835181101561285f5760008482815181106127b7576127b761430f565b6020026020010151905060008483815181106127d5576127d561430f565b60209081029190910181015160008481526065835260408082206001600160a01b038c1683529093529190912054909150818110156128265760405162461bcd60e51b815260040161091c906145ef565b60009283526065602090815260408085206001600160a01b038b1686529091529092209103905580612857816141dc565b91505061279a565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb86866040516128b0929190614565565b60405180910390a4604080516020810190915260009052610ba6565b600054610100900460ff166128f35760405162461bcd60e51b815260040161091c90614633565b610ebe816131e2565b600054610100900460ff166129235760405162461bcd60e51b815260040161091c90614633565b565b600054610100900460ff1661294c5760405162461bcd60e51b815260040161091c90614633565b612923613212565b61295c613245565b60c9805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586127103390565b6001600160a01b0384166129f15760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b606482015260840161091c565b3360006129fd8561328b565b90506000612a0a8561328b565b9050612a1b83600089858589612f67565b60008681526065602090815260408083206001600160a01b038b16845290915281208054879290612a4d908490614325565b909155505060408051878152602081018790526001600160a01b03808a1692600092918716917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4612aad836000898989896132d6565b50505050505050565b816001600160a01b0316836001600160a01b031603612b295760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b606482015260840161091c565b6001600160a01b03838116600081815260666020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3191016114c2565b6001600160a01b038416612bb45760405162461bcd60e51b815260040161091c906144d6565b336000612bc08561328b565b90506000612bcd8561328b565b9050612bdd838989858589612f67565b60008681526065602090815260408083206001600160a01b038c16845290915290205485811015612c205760405162461bcd60e51b815260040161091c9061451b565b60008781526065602090815260408083206001600160a01b038d8116855292528083208985039055908a16825281208054889290612c5f908490614325565b909155505060408051888152602081018890526001600160a01b03808b16928c821692918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4612cbf848a8a8a8a8a6132d6565b505050505050505050565b6001600160a01b038316612cf05760405162461bcd60e51b815260040161091c906145ac565b336000612cfc8461328b565b90506000612d098461328b565b9050612d2983876000858560405180602001604052806000815250612f67565b60008581526065602090815260408083206001600160a01b038a16845290915290205484811015612d6c5760405162461bcd60e51b815260040161091c906145ef565b60008681526065602090815260408083206001600160a01b038b81168086529184528285208a8703905582518b81529384018a90529092908816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4604080516020810190915260009052612aad565b60006001600160e01b03198216636cdb3d1360e11b1480612e1757506001600160e01b031982166303a24d0760e21b145b8061094a57506301ffc9a760e01b6001600160e01b031983161461094a565b612e4082826116de565b61098e57612e4d81613391565b612e588360206133a3565b604051602001612e6992919061467e565b60408051601f198184030181529082905262461bcd60e51b825261091c916004016139f5565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310612ece5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310612efa576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310612f1857662386f26fc10000830492506010015b6305f5e1008310612f30576305f5e100830492506008015b6127108310612f4457612710830492506004015b60648310612f56576064830492506002015b600a831061094a5760010192915050565b612f6f613245565b612451868686868686613545565b6001600160a01b0384163b156124515760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190612fc190899089908890889088906004016146f3565b6020604051808303816000875af1925050508015612ffc575060408051601f3d908101601f19168201909252612ff991810190614751565b60015b6130a85761300861476e565b806308c379a003613041575061301c614789565b806130275750613043565b8060405162461bcd60e51b815260040161091c91906139f5565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b606482015260840161091c565b6001600160e01b0319811663bc197c8160e01b14612aad5760405162461bcd60e51b815260040161091c90614812565b6001600160a01b0381163b6131455760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161091c565b6000805160206148d383398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61317d836136c1565b60008251118061318a5750805b15610d6357610ba68383613701565b60c95460ff166129235760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015260640161091c565b600054610100900460ff166132095760405162461bcd60e51b815260040161091c90614633565b610ebe8161217a565b600054610100900460ff166132395760405162461bcd60e51b815260040161091c90614633565b60c9805460ff19169055565b60c95460ff16156129235760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015260640161091c565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106132c5576132c561430f565b602090810291909101015292915050565b6001600160a01b0384163b156124515760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e619061331a908990899088908890889060040161485a565b6020604051808303816000875af1925050508015613355575060408051601f3d908101601f1916820190925261335291810190614751565b60015b6133615761300861476e565b6001600160e01b0319811663f23a6e6160e01b14612aad5760405162461bcd60e51b815260040161091c90614812565b606061094a6001600160a01b03831660145b606060006133b2836002614338565b6133bd906002614325565b6001600160401b038111156133d4576133d46138a3565b6040519080825280601f01601f1916602001820160405280156133fe576020820181803683370190505b509050600360fc1b816000815181106134195761341961430f565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106134485761344861430f565b60200101906001600160f81b031916908160001a905350600061346c846002614338565b613477906001614325565b90505b60018111156134ef576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106134ab576134ab61430f565b1a60f81b8282815181106134c1576134c161430f565b60200101906001600160f81b031916908160001a90535060049490941c936134e88161489f565b905061347a565b50831561353e5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161091c565b9392505050565b6001600160a01b0385166135cd5760005b83518110156135cb578281815181106135715761357161430f565b602002602001015161012d60008684815181106135905761359061430f565b6020026020010151815260200190815260200160002060008282546135b59190614325565b909155506135c49050816141dc565b9050613556565b505b6001600160a01b0384166124515760005b8351811015612aad5760008482815181106135fb576135fb61430f565b6020026020010151905060008483815181106136195761361961430f565b60200260200101519050600061012d60008481526020019081526020016000205490508181101561369d5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a206275726e20616d6f756e74206578636565647320746f74604482015267616c537570706c7960c01b606482015260840161091c565b600092835261012d6020526040909220910390556136ba816141dc565b90506135de565b6136ca816130d8565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061353e83836040518060600160405280602781526020016148f3602791396060600080856001600160a01b03168560405161373e91906148b6565b600060405180830381855af49150503d8060008114613779576040519150601f19603f3d011682016040523d82523d6000602084013e61377e565b606091505b509150915061378f86838387613799565b9695505050505050565b60608315613808578251600003613801576001600160a01b0385163b6138015760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161091c565b5081613812565b613812838361381a565b949350505050565b8151156130275781518083602001fd5b80356001600160a01b038116811461384157600080fd5b919050565b6000806040838503121561385957600080fd5b6138628361382a565b946020939093013593505050565b6001600160e01b031981168114610ebe57600080fd5b60006020828403121561389857600080fd5b813561353e81613870565b634e487b7160e01b600052604160045260246000fd5b601f8201601f191681016001600160401b03811182821017156138de576138de6138a3565b6040525050565b600082601f8301126138f657600080fd5b81356001600160401b0381111561390f5761390f6138a3565b604051613926601f8301601f1916602001826138b9565b81815284602083860101111561393b57600080fd5b816020850160208301376000918101602001919091529392505050565b60006020828403121561396a57600080fd5b81356001600160401b0381111561398057600080fd5b613812848285016138e5565b60006020828403121561399e57600080fd5b5035919050565b60005b838110156139c05781810151838201526020016139a8565b50506000910152565b600081518084526139e18160208601602086016139a5565b601f01601f19169290920160200192915050565b60208152600061353e60208301846139c9565b634e487b7160e01b600052602160045260246000fd5b60048110613a3c57634e487b7160e01b600052602160045260246000fd5b9052565b613a4a8188613a1e565b85602082015284604082015260018060a01b038416606082015260c060808201526000613a7a60c08301856139c9565b82810360a0840152613a8c81856139c9565b9998505050505050505050565b600060208284031215613aab57600080fd5b61353e8261382a565b60006001600160401b03821115613acd57613acd6138a3565b5060051b60200190565b600082601f830112613ae857600080fd5b81356020613af582613ab4565b604051613b0282826138b9565b83815260059390931b8501820192828101915086841115613b2257600080fd5b8286015b84811015613b3d5780358352918301918301613b26565b509695505050505050565b600080600080600060a08688031215613b6057600080fd5b613b698661382a565b9450613b776020870161382a565b935060408601356001600160401b0380821115613b9357600080fd5b613b9f89838a01613ad7565b94506060880135915080821115613bb557600080fd5b613bc189838a01613ad7565b93506080880135915080821115613bd757600080fd5b50613be4888289016138e5565b9150509295509295909350565b60008060408385031215613c0457600080fd5b82359150613c146020840161382a565b90509250929050565b60008060408385031215613c3057600080fd5b82356001600160401b0380821115613c4757600080fd5b818501915085601f830112613c5b57600080fd5b81356020613c6882613ab4565b604051613c7582826138b9565b83815260059390931b8501820192828101915089841115613c9557600080fd5b948201945b83861015613cba57613cab8661382a565b82529482019490820190613c9a565b96505086013592505080821115613cd057600080fd5b50613cdd85828601613ad7565b9150509250929050565b600081518084526020808501945080840160005b83811015613d1757815187529582019590820190600101613cfb565b509495945050505050565b60208152600061353e6020830184613ce7565b60008060408385031215613d4857600080fd5b613d518361382a565b915060208301356001600160401b03811115613d6c57600080fd5b613cdd858286016138e5565b600080600060608486031215613d8d57600080fd5b613d968461382a565b925060208401356001600160401b0380821115613db257600080fd5b613dbe87838801613ad7565b93506040860135915080821115613dd457600080fd5b50613de186828701613ad7565b9150509250925092565b60008060408385031215613dfe57600080fd5b8235915060208301356001600160401b03811115613d6c57600080fd5b60008060008060808587031215613e3157600080fd5b8435935060208501359250613e486040860161382a565b915060608501356001600160401b03811115613e6357600080fd5b613e6f878288016138e5565b91505092959194509250565b60008060408385031215613e8e57600080fd5b613e978361382a565b915060208301358015158114613eac57600080fd5b809150509250929050565b600080600080600060a08688031215613ecf57600080fd5b85359450613edf6020870161382a565b9350613eed6040870161382a565b925060608601356001600160401b0380821115613f0957600080fd5b613bc189838a016138e5565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b83811015613f7d57888303603f1901855281518051878552613f60888601826139c9565b918901519489019490945294870194925090860190600101613f3c565b509098975050505050505050565b60008060408385031215613f9e57600080fd5b50508035926020909101359150565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b83811015613f7d57603f19898403018552815160c0613ff4858351613a1e565b81890151858a015287820151888601526060808301516001600160a01b03169086015260808083015181870183905261402f838801826139c9565b9250505060a0808301519250858203818701525061404d81836139c9565b968901969450505090860190600101613fd4565b60008060006060848603121561407657600080fd5b8335925060208401356001600160401b038082111561409457600080fd5b6140a0878388016138e5565b935060408601359150808211156140b657600080fd5b50613de1868287016138e5565b600080604083850312156140d657600080fd5b6140df8361382a565b9150613c146020840161382a565b600080600080600060a0868803121561410557600080fd5b61410e8661382a565b945061411c6020870161382a565b9350604086013592506060860135915060808601356001600160401b0381111561414557600080fd5b613be4888289016138e5565b60008060006060848603121561416657600080fd5b61416f8461382a565b95602085013595506040909401359392505050565b600083516141968184602088016139a5565b8351908301906141aa8183602088016139a5565b01949350505050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561094a5761094a6141b3565b6000600182016141ee576141ee6141b3565b5060010190565b600181811c9082168061420957607f821691505b602082108103611ea757634e487b7160e01b600052602260045260246000fd5b6020808252602e908201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60408201526d195c881bdc88185c1c1c9bdd995960921b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b8082018082111561094a5761094a6141b3565b808202811582820484141761094a5761094a6141b3565b601f821115610d6357600081815260208120601f850160051c810160208610156143765750805b601f850160051c820191505b8181101561245157828155600101614382565b81516001600160401b038111156143ae576143ae6138a3565b6143c2816143bc84546141f5565b8461434f565b602080601f8311600181146143f757600084156143df5750858301515b600019600386901b1c1916600185901b178555612451565b600085815260208120601f198616915b8281101561442657888601518255948401946001909101908401614407565b50858210156144445787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b84815260806020820152600061446d60808301866139c9565b6040830194909452506001600160a01b039190911660609091015292915050565b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b6040815260006145786040830185613ce7565b828103602084015261458a8185613ce7565b95945050505050565b6000602082840312156145a557600080fd5b5051919050565b60208082526023908201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526024908201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604082015263616e636560e01b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516146b68160178501602088016139a5565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516146e78160288401602088016139a5565b01602801949350505050565b6001600160a01b0386811682528516602082015260a06040820181905260009061471f90830186613ce7565b82810360608401526147318186613ce7565b9050828103608084015261474581856139c9565b98975050505050505050565b60006020828403121561476357600080fd5b815161353e81613870565b600060033d11156111995760046000803e5060005160e01c90565b600060443d10156147975790565b6040516003193d81016004833e81513d6001600160401b0381602484011181841117156147c657505050505090565b82850191508151818111156147de5750505050505090565b843d87010160208285010111156147f85750505050505090565b614807602082860101876138b9565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090614894908301846139c9565b979650505050505050565b6000816148ae576148ae6141b3565b506000190190565b600082516148c88184602087016139a5565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656468747470733a2f2f72616461726c61756e63682e6170702f6170692f6d65746164617461a264697066735822122052c361c9b80283a3959c1c8f97860b517f85015b3e40c2ef7c58e272e011f9e364736f6c63430008130033", - "linkReferences": { - "src/Beliefs/LibBeliefs.sol": { - "LibBeliefs": [ - { - "length": 20, - "start": 5201 - } - ] - } - }, - "deployedLinkReferences": { - "src/Beliefs/LibBeliefs.sol": { - "LibBeliefs": [ - { - "length": 20, - "start": 4914 - } - ] - } - } + "bytecode": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000e7565b600054610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000e5576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b608051614d056200011f60003960008181610dec01528181610e2c015281816110260152818161106601526110f50152614d056000f3fe60806040526004361061027e5760003560e01c80637cc749411161014e578063c6fbb712116100bb578063e8a3d48511610077578063e8a3d485146107d7578063e985e9c5146107ec578063f242432a14610835578063f5298aca14610855578063f8c1b2fd14610875578063fc74efa21461089557005b8063c6fbb71214610711578063c84aae1714610728578063d547741f14610755578063d667c9ce14610775578063df6efc6c14610795578063e43990fe146107b757005b8063a217fddf1161010a578063a217fddf14610660578063a22cb46514610675578063b0e21e8a14610695578063b3a44bd6146106ac578063b94967a4146106cc578063bd85b039146106e357005b80637cc74941146105c35780638129fc1c146105e35780638456cb59146105f857806391d148541461060d578063940123da1461062d5780639e751ffc1461064057005b80633659cfe6116101ec5780635c975abb116101a85780635c975abb146105215780636b20c454146105395780636b5cb789146105595780637357628c14610570578063787dce3d14610590578063790bafc6146105b057005b80633659cfe6146104675780633f4ba83a146104875780634e1273f41461049c5780634f1ef286146104c95780634f558e79146104dc57806352d1902d1461050c57005b8063248a9ca31161023b578063248a9ca314610377578063279c806e146103a757806327e235e3146103d95780632eb2c2d6146104075780632f2ff15d1461042757806336568abe1461044757005b8062fdd58e1461028757806301ffc9a7146102ba57806302fe5305146102ea5780630a579eca1461030a5780630e89341c1461032a578063155dd5ee1461035757005b3661028557005b005b34801561029357600080fd5b506102a76102a2366004613bb6565b6108b5565b6040519081526020015b60405180910390f35b3480156102c657600080fd5b506102da6102d5366004613bf6565b610950565b60405190151581526020016102b1565b3480156102f657600080fd5b50610285610305366004613cc8565b61095b565b34801561031657600080fd5b50610285610325366004613cfc565b610992565b34801561033657600080fd5b5061034a610345366004613cfc565b610a74565b6040516102b19190613d65565b34801561036357600080fd5b50610285610372366004613cfc565b610aaf565b34801561038357600080fd5b506102a7610392366004613cfc565b60009081526097602052604090206001015490565b3480156103b357600080fd5b506103c76103c2366004613cfc565b610bac565b6040516102b196959493929190613db0565b3480156103e557600080fd5b506102a76103f4366004613e09565b6101c96020526000908152604090205481565b34801561041357600080fd5b50610285610422366004613eb8565b610d02565b34801561043357600080fd5b50610285610442366004613f61565b610d4e565b34801561045357600080fd5b50610285610462366004613f61565b610d68565b34801561047357600080fd5b50610285610482366004613e09565b610de2565b34801561049357600080fd5b50610285610ec1565b3480156104a857600080fd5b506104bc6104b7366004613f8d565b610ef3565b6040516102b19190614092565b6102856104d73660046140a5565b61101c565b3480156104e857600080fd5b506102da6104f7366004613cfc565b600090815261012d6020526040902054151590565b34801561051857600080fd5b506102a76110e8565b34801561052d57600080fd5b5060c95460ff166102da565b34801561054557600080fd5b506102856105543660046140e8565b61119c565b34801561056557600080fd5b506102a76101c65481565b34801561057c57600080fd5b5061028561058b366004613cfc565b6111df565b34801561059c57600080fd5b506102856105ab366004613cfc565b611280565b6102856105be36600461415b565b611292565b3480156105cf57600080fd5b506102856105de366004613cfc565b61145e565b3480156105ef57600080fd5b50610285611470565b34801561060457600080fd5b5061028561163b565b34801561061957600080fd5b506102da610628366004613f61565b61166d565b61028561063b36600461418b565b611698565b34801561064c57600080fd5b5061028561065b366004613cfc565b611785565b34801561066c57600080fd5b506102a7600081565b34801561068157600080fd5b506102856106903660046141eb565b611797565b3480156106a157600080fd5b506102a76101c35481565b3480156106b857600080fd5b506102a76106c7366004614227565b6117a2565b3480156106d857600080fd5b506102a76101ca5481565b3480156106ef57600080fd5b506102a76106fe366004613cfc565b600090815261012d602052604090205490565b34801561071d57600080fd5b506102a76101c55481565b34801561073457600080fd5b50610748610743366004613e09565b6118fc565b6040516102b19190614285565b34801561076157600080fd5b50610285610770366004613f61565b611a66565b34801561078157600080fd5b506102856107903660046142fb565b611a8b565b3480156107a157600080fd5b506107aa611bcd565b6040516102b1919061431d565b3480156107c357600080fd5b506102856107d23660046143d1565b611e3c565b3480156107e357600080fd5b5061034a611ec2565b3480156107f857600080fd5b506102da610807366004614433565b6001600160a01b03918216600090815260666020908152604080832093909416825291909152205460ff1690565b34801561084157600080fd5b5061028561085036600461445d565b611ee2565b34801561086157600080fd5b506102856108703660046144c1565b611f27565b34801561088157600080fd5b50610285610890366004613cfc565b611f6a565b3480156108a157600080fd5b506102856108b0366004613cfc565b611fff565b60006001600160a01b0383166109255760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b60648201526084015b60405180910390fd5b5060008181526065602090815260408083206001600160a01b03861684529091529020545b92915050565b600061094a826120da565b7f7804d923f43a17d325d77e781528e0793b2edd9890ab45fc64efd7b4b427744c610985816120ff565b61098e82612109565b5050565b60008181526101c460205260409020600301546001600160a01b03163314806109c157506109c160003361166d565b6109de5760405163388f811f60e01b815260040160405180910390fd5b600260008281526101c4602052604090205460ff166003811115610a0457610a04613d78565b14610a2257604051631f0fb6fd60e11b815260040160405180910390fd5b60008181526101c46020908152604091829020805460ff1916600317905590518281527f591913f977ab242c5871f116f36be231ff67df5e8e0bac1efd91fa8a723aca2b91015b60405180910390a150565b6060610a7f82612115565b610a88836121a9565b604051602001610a999291906144f4565b6040516020818303038152906040529050919050565b6000610aba816120ff565b47821115610adb57604051631036b5ad60e31b815260040160405180910390fd5b4760005b6101c554811015610b3c5760008181526101c46020526040902060020154610b079083614539565b915083821015610b2a5760405163156bbc5b60e01b815260040160405180910390fd5b80610b348161454c565b915050610adf565b50604051600090339085908381818185875af1925050503d8060008114610b7f576040519150601f19603f3d011682016040523d82523d6000602084013e610b84565b606091505b5050905080610ba6576040516317f2c34560e31b815260040160405180910390fd5b50505050565b6101c4602052600090815260409020805460018201546002830154600384015460048501805460ff90951695939492936001600160a01b0390921692610bf190614565565b80601f0160208091040260200160405190810160405280929190818152602001828054610c1d90614565565b8015610c6a5780601f10610c3f57610100808354040283529160200191610c6a565b820191906000526020600020905b815481529060010190602001808311610c4d57829003601f168201915b505050505090806005018054610c7f90614565565b80601f0160208091040260200160405190810160405280929190818152602001828054610cab90614565565b8015610cf85780601f10610ccd57610100808354040283529160200191610cf8565b820191906000526020600020905b815481529060010190602001808311610cdb57829003601f168201915b5050505050905086565b6001600160a01b038516331480610d1e5750610d1e8533610807565b610d3a5760405162461bcd60e51b815260040161091c90614599565b610d47858585858561223b565b5050505050565b6000610d59816120ff565b610d6383836123e8565b505050565b6001600160a01b0381163314610dd85760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b606482015260840161091c565b61098e828261246e565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610e2a5760405162461bcd60e51b815260040161091c906145e7565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610e73600080516020614c65833981519152546001600160a01b031690565b6001600160a01b031614610e995760405162461bcd60e51b815260040161091c90614633565b610ea2816124d5565b60408051600080825260208201909252610ebe918391906124ff565b50565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610eeb816120ff565b610ebe61266a565b60608151835114610f585760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b606482015260840161091c565b600083516001600160401b03811115610f7357610f73613c13565b604051908082528060200260200182016040528015610f9c578160200160208202803683370190505b50905060005b845181101561101457610fe7858281518110610fc057610fc061467f565b6020026020010151858381518110610fda57610fda61467f565b60200260200101516108b5565b828281518110610ff957610ff961467f565b602090810291909101015261100d8161454c565b9050610fa2565b509392505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036110645760405162461bcd60e51b815260040161091c906145e7565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166110ad600080516020614c65833981519152546001600160a01b031690565b6001600160a01b0316146110d35760405162461bcd60e51b815260040161091c90614633565b6110dc826124d5565b61098e828260016124ff565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146111885760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840161091c565b50600080516020614c658339815191525b90565b6001600160a01b0383163314806111b857506111b88333610807565b6111d45760405162461bcd60e51b815260040161091c90614599565b610d638383836126bc565b60006111ea816120ff565b600160008381526101c4602052604090205460ff16600381111561121057611210613d78565b1461122e5760405163137c9c1f60e31b815260040160405180910390fd5b60008281526101c46020908152604091829020805460ff1916600217905590518381527f8f4352ac8b4aefdd2333162306bbe09dd4f4ff6661e89ccc4e4dcced8794e8f7910160405180910390a15050565b600061128b816120ff565b506101c355565b6101ca543410156112b657604051631036b5ad60e31b815260040160405180910390fd5b600260008381526101c4602052604090205460ff1660038111156112dc576112dc613d78565b146112fa57604051631f0fb6fd60e11b815260040160405180910390fd5b61130e34836101c5546101c46101c961285b565b6000805b6101c8548110156113a257336001600160a01b03166101c8828154811061133b5761133b61467f565b6000918252602090912001546001600160a01b03160361139057336001600160a01b03166101c882815481106113735761137361467f565b6000918252602090912001546001600160a01b03161491506113a2565b8061139a8161454c565b915050611312565b50806113ec576101c880546001810182556000919091527f8cdee82cb3ac6d59f1f417405a3eecf497b31f3d06d4c506f96deb67789f61e90180546001600160a01b031916331790555b3360009081526101c760209081526040808320600887901c845290915290208054600160ff86161b179055336001600160a01b0316837f710e220a47c8d9e50587c80fe509f5e762149ef672440eff70798204dd70f5eb846040516114519190613d65565b60405180910390a3505050565b6000611469816120ff565b506101c655565b600054610100900460ff16158080156114905750600054600160ff909116105b806114aa5750303b1580156114aa575060005460ff166001145b61150d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161091c565b6000805460ff191660011790558015611530576000805461ff0019166101001790555b61154860405180602001604052806000815250612c3c565b611550612c6c565b611558612c95565b611560612c6c565b611568612c6c565b611570612c6c565b61157b6000336123e8565b6115a57f7804d923f43a17d325d77e781528e0793b2edd9890ab45fc64efd7b4b427744c336123e8565b6115cf7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a336123e8565b6115f97f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3336123e8565b8015610ebe576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610a69565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a611665816120ff565b610ebe612cc4565b60009182526097602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60006116a3816120ff565b600260008681526101c4602052604090205460ff1660038111156116c9576116c9613d78565b146116e757604051631f0fb6fd60e11b815260040160405180910390fd5b6101c35460008681526101c46020526040902060010154859161170991614695565b61171391906146a8565b34101561173357604051631036b5ad60e31b815260040160405180910390fd5b61173f83868685612d01565b6101c35461174d90856146a8565b6117579034614539565b60008681526101c4602052604081206002018054909190611779908490614695565b90915550505050505050565b6000611790816120ff565b506101ca55565b61098e338383612e26565b60006101c6548611156117c857604051630f0c4c5f60e41b815260040160405180910390fd5b506101c5546040805160c0810190915280600181526020808201899052600060408084018290526001600160a01b038a1660608501526080840188905260a09093018690528481526101c49091522081518154829060ff1916600183600381111561183557611835613d78565b0217905550602082015160018201556040820151600282015560608201516003820180546001600160a01b0319166001600160a01b03909216919091179055608082015160048201906118889082614705565b5060a0820151600582019061189d9082614705565b50506101c58054915060006118b18361454c565b91905055507f3deb71b5a6774038a220621d78241405004043d5a928de9c7956bcc5270416db818388886040516118eb94939291906147c4565b60405180910390a195945050505050565b606060006101c5546001600160401b0381111561191b5761191b613c13565b60405190808252806020026020018201604052801561196157816020015b6040805180820190915260608152600060208201528152602001906001900390816119395790505b50905060005b6101c554811015611a5f5760405180604001604052806101c46000848152602001908152602001600020600401805461199f90614565565b80601f01602080910402602001604051908101604052809291908181526020018280546119cb90614565565b8015611a185780601f106119ed57610100808354040283529160200191611a18565b820191906000526020600020905b8154815290600101906020018083116119fb57829003601f168201915b50505050508152602001611a2c86846108b5565b815250828281518110611a4157611a4161467f565b60200260200101819052508080611a579061454c565b915050611967565b5092915050565b600082815260976020526040902060010154611a81816120ff565b610d63838361246e565b60008281526101c460205260409020600301546001600160a01b03163314611ac65760405163388f811f60e01b815260040160405180910390fd5b60008281526101c46020526040902060020154811115611af957604051637eafab7d60e01b815260040160405180910390fd5b604051600090339083908381818185875af1925050503d8060008114611b3b576040519150601f19603f3d011682016040523d82523d6000602084013e611b40565b606091505b5050905080611b62576040516317f2c34560e31b815260040160405180910390fd5b60008381526101c4602052604081206002018054849290611b84908490614539565b90915550506040805184815260208101849052338183015290517ff1090e9d5138cd4909542e10e1da576730b07eb291a71a151e63160dde345b949181900360600190a1505050565b606060006101c5546001600160401b03811115611bec57611bec613c13565b604051908082528060200260200182016040528015611c6057816020015b611c4d6040805160c081019091528060008152602001600081526020016000815260200160006001600160a01b0316815260200160608152602001606081525090565b815260200190600190039081611c0a5790505b50905060005b6101c554811015611e365760008181526101c4602052604090819020815160c081019092528054829060ff166003811115611ca357611ca3613d78565b6003811115611cb457611cb4613d78565b8152600182015460208201526002820154604082015260038201546001600160a01b03166060820152600482018054608090920191611cf290614565565b80601f0160208091040260200160405190810160405280929190818152602001828054611d1e90614565565b8015611d6b5780601f10611d4057610100808354040283529160200191611d6b565b820191906000526020600020905b815481529060010190602001808311611d4e57829003601f168201915b50505050508152602001600582018054611d8490614565565b80601f0160208091040260200160405190810160405280929190818152602001828054611db090614565565b8015611dfd5780601f10611dd257610100808354040283529160200191611dfd565b820191906000526020600020905b815481529060010190602001808311611de057829003601f168201915b505050505081525050828281518110611e1857611e1861467f565b60200260200101819052508080611e2e9061454c565b915050611c66565b50919050565b6000611e47816120ff565b60008481526101c4602052604081205460ff166003811115611e6b57611e6b613d78565b03611e895760405163137c9c1f60e31b815260040160405180910390fd5b60008481526101c460205260409020600401611ea58482614705565b5060008481526101c460205260409020600501610d478382614705565b6060604051806060016040528060248152602001614cac60249139905090565b6001600160a01b038516331480611efe5750611efe8533610807565b611f1a5760405162461bcd60e51b815260040161091c90614599565b610d478585858585612efe565b6001600160a01b038316331480611f435750611f438333610807565b611f5f5760405162461bcd60e51b815260040161091c90614599565b610d6383838361303a565b3360009081526101c760209081526040808320600885901c84529182905290912054600160ff84161b16611fb15760405163423f327760e11b815260040160405180910390fd5b600882901c6000908152602082905260408082208054600160ff87161b1916905551339184917fc6c1c3224e50c3c958e39197695bdfe8457ce7c0014d8d51a4d3aa12c5ac18489190a35050565b60008181526101c460205260409020600301546001600160a01b031633148061202e575061202e60003361166d565b61204b5760405163388f811f60e01b815260040160405180910390fd5b600360008281526101c4602052604090205460ff16600381111561207157612071613d78565b1461208f5760405163968807a560e01b815260040160405180910390fd5b60008181526101c46020908152604091829020805460ff1916600217905590518281527f63bb17c9645a29322601b4fe88d8f3fa84f32229368294f903084be8f5d813ba9101610a69565b60006001600160e01b03198216637965db0b60e01b148061094a575061094a82613156565b610ebe81336131a6565b606761098e8282614705565b60606067805461212490614565565b80601f016020809104026020016040519081016040528092919081815260200182805461215090614565565b801561219d5780601f106121725761010080835404028352916020019161219d565b820191906000526020600020905b81548152906001019060200180831161218057829003601f168201915b50505050509050919050565b606060006121b6836131ff565b60010190506000816001600160401b038111156121d5576121d5613c13565b6040519080825280601f01601f1916602001820160405280156121ff576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461220957509392505050565b815183511461225c5760405162461bcd60e51b815260040161091c906147fe565b6001600160a01b0384166122825760405162461bcd60e51b815260040161091c90614846565b336122918187878787876132d7565b60005b845181101561237a5760008582815181106122b1576122b161467f565b6020026020010151905060008583815181106122cf576122cf61467f565b60209081029190910181015160008481526065835260408082206001600160a01b038e1683529093529190912054909150818110156123205760405162461bcd60e51b815260040161091c9061488b565b60008381526065602090815260408083206001600160a01b038e8116855292528083208585039055908b1682528120805484929061235f908490614695565b92505081905550505050806123739061454c565b9050612294565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516123ca9291906148d5565b60405180910390a46123e08187878787876132ed565b505050505050565b6123f2828261166d565b61098e5760008281526097602090815260408083206001600160a01b03851684529091529020805460ff1916600117905561242a3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b612478828261166d565b1561098e5760008281526097602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e361098e816120ff565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561253257610d6383613448565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561258c575060408051601f3d908101601f1916820190925261258991810190614903565b60015b6125ef5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840161091c565b600080516020614c65833981519152811461265e5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840161091c565b50610d638383836134e4565b612672613509565b60c9805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b0383166126e25760405162461bcd60e51b815260040161091c9061491c565b80518251146127035760405162461bcd60e51b815260040161091c906147fe565b6000339050612726818560008686604051806020016040528060008152506132d7565b60005b83518110156127ee5760008482815181106127465761274661467f565b6020026020010151905060008483815181106127645761276461467f565b60209081029190910181015160008481526065835260408082206001600160a01b038c1683529093529190912054909150818110156127b55760405162461bcd60e51b815260040161091c9061495f565b60009283526065602090815260408085206001600160a01b038b16865290915290922091039055806127e68161454c565b915050612729565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb868660405161283f9291906148d5565b60405180910390a4604080516020810190915260009052610ba6565b60006128686002876149a3565b905060006128776005886149a3565b905081846000888152602001908152602001600020600201600082825461289e9190614695565b9091555050600086815260208590526040812060050180546128bf90614565565b80601f01602080910402602001604051908101604052809291908181526020018280546128eb90614565565b80156129385780601f1061290d57610100808354040283529160200191612938565b820191906000526020600020905b81548152906001019060200180831161291b57829003601f168201915b505050505090506000866001600160401b0381111561295957612959613c13565b604051908082528060200260200182016040528015612982578160200160208202803683370190505b5090506000805b88811080156129985750898114155b15612ba657600081815260208990526040808220815160c081019092528054829060ff1660038111156129cd576129cd613d78565b60038111156129de576129de613d78565b8152600182015460208201526002820154604082015260038201546001600160a01b03166060820152600482018054608090920191612a1c90614565565b80601f0160208091040260200160405190810160405280929190818152602001828054612a4890614565565b8015612a955780601f10612a6a57610100808354040283529160200191612a95565b820191906000526020600020905b815481529060010190602001808311612a7857829003601f168201915b50505050508152602001600582018054612aae90614565565b80601f0160208091040260200160405190810160405280929190818152602001828054612ada90614565565b8015612b275780601f10612afc57610100808354040283529160200191612b27565b820191906000526020600020905b815481529060010190602001808311612b0a57829003601f168201915b5050505050815250509050612b518160a00151868051602091820120825192909101919091201490565b15612b93578060600151848481518110612b6d57612b6d61467f565b6001600160a01b0390921660209283029190910190910152612b90600184614695565b92505b5080612b9e8161454c565b915050612989565b825115612c2f576000612bb983876149a3565b9050600091505b82821015612c2d5780886000868581518110612bde57612bde61467f565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000828254612c159190614695565b90915550829050612c258161454c565b925050612bc0565b505b5050505050505050505050565b600054610100900460ff16612c635760405162461bcd60e51b815260040161091c906149c5565b610ebe81613552565b600054610100900460ff16612c935760405162461bcd60e51b815260040161091c906149c5565b565b600054610100900460ff16612cbc5760405162461bcd60e51b815260040161091c906149c5565b612c93613582565b612ccc6135b5565b60c9805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861269f3390565b6001600160a01b038416612d615760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b606482015260840161091c565b336000612d6d856135fb565b90506000612d7a856135fb565b9050612d8b836000898585896132d7565b60008681526065602090815260408083206001600160a01b038b16845290915281208054879290612dbd908490614695565b909155505060408051878152602081018790526001600160a01b03808a1692600092918716917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4612e1d83600089898989613646565b50505050505050565b816001600160a01b0316836001600160a01b031603612e995760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b606482015260840161091c565b6001600160a01b03838116600081815260666020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319101611451565b6001600160a01b038416612f245760405162461bcd60e51b815260040161091c90614846565b336000612f30856135fb565b90506000612f3d856135fb565b9050612f4d8389898585896132d7565b60008681526065602090815260408083206001600160a01b038c16845290915290205485811015612f905760405162461bcd60e51b815260040161091c9061488b565b60008781526065602090815260408083206001600160a01b038d8116855292528083208985039055908a16825281208054889290612fcf908490614695565b909155505060408051888152602081018890526001600160a01b03808b16928c821692918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a461302f848a8a8a8a8a613646565b505050505050505050565b6001600160a01b0383166130605760405162461bcd60e51b815260040161091c9061491c565b33600061306c846135fb565b90506000613079846135fb565b9050613099838760008585604051806020016040528060008152506132d7565b60008581526065602090815260408083206001600160a01b038a168452909152902054848110156130dc5760405162461bcd60e51b815260040161091c9061495f565b60008681526065602090815260408083206001600160a01b038b81168086529184528285208a8703905582518b81529384018a90529092908816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4604080516020810190915260009052612e1d565b60006001600160e01b03198216636cdb3d1360e11b148061318757506001600160e01b031982166303a24d0760e21b145b8061094a57506301ffc9a760e01b6001600160e01b031983161461094a565b6131b0828261166d565b61098e576131bd81613701565b6131c8836020613713565b6040516020016131d9929190614a10565b60408051601f198184030181529082905262461bcd60e51b825261091c91600401613d65565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b831061323e5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef8100000000831061326a576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061328857662386f26fc10000830492506010015b6305f5e10083106132a0576305f5e100830492506008015b61271083106132b457612710830492506004015b606483106132c6576064830492506002015b600a831061094a5760010192915050565b6132df6135b5565b6123e08686868686866138b5565b6001600160a01b0384163b156123e05760405163bc197c8160e01b81526001600160a01b0385169063bc197c81906133319089908990889088908890600401614a85565b6020604051808303816000875af192505050801561336c575060408051601f3d908101601f1916820190925261336991810190614ae3565b60015b61341857613378614b00565b806308c379a0036133b1575061338c614b1b565b8061339757506133b3565b8060405162461bcd60e51b815260040161091c9190613d65565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b606482015260840161091c565b6001600160e01b0319811663bc197c8160e01b14612e1d5760405162461bcd60e51b815260040161091c90614ba4565b6001600160a01b0381163b6134b55760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161091c565b600080516020614c6583398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6134ed83613a31565b6000825111806134fa5750805b15610d6357610ba68383613a71565b60c95460ff16612c935760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015260640161091c565b600054610100900460ff166135795760405162461bcd60e51b815260040161091c906149c5565b610ebe81612109565b600054610100900460ff166135a95760405162461bcd60e51b815260040161091c906149c5565b60c9805460ff19169055565b60c95460ff1615612c935760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015260640161091c565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106136355761363561467f565b602090810291909101015292915050565b6001600160a01b0384163b156123e05760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e619061368a9089908990889088908890600401614bec565b6020604051808303816000875af19250505080156136c5575060408051601f3d908101601f191682019092526136c291810190614ae3565b60015b6136d157613378614b00565b6001600160e01b0319811663f23a6e6160e01b14612e1d5760405162461bcd60e51b815260040161091c90614ba4565b606061094a6001600160a01b03831660145b606060006137228360026146a8565b61372d906002614695565b6001600160401b0381111561374457613744613c13565b6040519080825280601f01601f19166020018201604052801561376e576020820181803683370190505b509050600360fc1b816000815181106137895761378961467f565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106137b8576137b861467f565b60200101906001600160f81b031916908160001a90535060006137dc8460026146a8565b6137e7906001614695565b90505b600181111561385f576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061381b5761381b61467f565b1a60f81b8282815181106138315761383161467f565b60200101906001600160f81b031916908160001a90535060049490941c9361385881614c31565b90506137ea565b5083156138ae5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161091c565b9392505050565b6001600160a01b03851661393d5760005b835181101561393b578281815181106138e1576138e161467f565b602002602001015161012d60008684815181106139005761390061467f565b6020026020010151815260200190815260200160002060008282546139259190614695565b9091555061393490508161454c565b90506138c6565b505b6001600160a01b0384166123e05760005b8351811015612e1d57600084828151811061396b5761396b61467f565b6020026020010151905060008483815181106139895761398961467f565b60200260200101519050600061012d600084815260200190815260200160002054905081811015613a0d5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a206275726e20616d6f756e74206578636565647320746f74604482015267616c537570706c7960c01b606482015260840161091c565b600092835261012d602052604090922091039055613a2a8161454c565b905061394e565b613a3a81613448565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606138ae8383604051806060016040528060278152602001614c85602791396060600080856001600160a01b031685604051613aae9190614c48565b600060405180830381855af49150503d8060008114613ae9576040519150601f19603f3d011682016040523d82523d6000602084013e613aee565b606091505b5091509150613aff86838387613b09565b9695505050505050565b60608315613b78578251600003613b71576001600160a01b0385163b613b715760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161091c565b5081613b82565b613b828383613b8a565b949350505050565b8151156133975781518083602001fd5b80356001600160a01b0381168114613bb157600080fd5b919050565b60008060408385031215613bc957600080fd5b613bd283613b9a565b946020939093013593505050565b6001600160e01b031981168114610ebe57600080fd5b600060208284031215613c0857600080fd5b81356138ae81613be0565b634e487b7160e01b600052604160045260246000fd5b601f8201601f191681016001600160401b0381118282101715613c4e57613c4e613c13565b6040525050565b600082601f830112613c6657600080fd5b81356001600160401b03811115613c7f57613c7f613c13565b604051613c96601f8301601f191660200182613c29565b818152846020838601011115613cab57600080fd5b816020850160208301376000918101602001919091529392505050565b600060208284031215613cda57600080fd5b81356001600160401b03811115613cf057600080fd5b613b8284828501613c55565b600060208284031215613d0e57600080fd5b5035919050565b60005b83811015613d30578181015183820152602001613d18565b50506000910152565b60008151808452613d51816020860160208601613d15565b601f01601f19169290920160200192915050565b6020815260006138ae6020830184613d39565b634e487b7160e01b600052602160045260246000fd5b60048110613dac57634e487b7160e01b600052602160045260246000fd5b9052565b613dba8188613d8e565b85602082015284604082015260018060a01b038416606082015260c060808201526000613dea60c0830185613d39565b82810360a0840152613dfc8185613d39565b9998505050505050505050565b600060208284031215613e1b57600080fd5b6138ae82613b9a565b60006001600160401b03821115613e3d57613e3d613c13565b5060051b60200190565b600082601f830112613e5857600080fd5b81356020613e6582613e24565b604051613e728282613c29565b83815260059390931b8501820192828101915086841115613e9257600080fd5b8286015b84811015613ead5780358352918301918301613e96565b509695505050505050565b600080600080600060a08688031215613ed057600080fd5b613ed986613b9a565b9450613ee760208701613b9a565b935060408601356001600160401b0380821115613f0357600080fd5b613f0f89838a01613e47565b94506060880135915080821115613f2557600080fd5b613f3189838a01613e47565b93506080880135915080821115613f4757600080fd5b50613f5488828901613c55565b9150509295509295909350565b60008060408385031215613f7457600080fd5b82359150613f8460208401613b9a565b90509250929050565b60008060408385031215613fa057600080fd5b82356001600160401b0380821115613fb757600080fd5b818501915085601f830112613fcb57600080fd5b81356020613fd882613e24565b604051613fe58282613c29565b83815260059390931b850182019282810191508984111561400557600080fd5b948201945b8386101561402a5761401b86613b9a565b8252948201949082019061400a565b9650508601359250508082111561404057600080fd5b5061404d85828601613e47565b9150509250929050565b600081518084526020808501945080840160005b838110156140875781518752958201959082019060010161406b565b509495945050505050565b6020815260006138ae6020830184614057565b600080604083850312156140b857600080fd5b6140c183613b9a565b915060208301356001600160401b038111156140dc57600080fd5b61404d85828601613c55565b6000806000606084860312156140fd57600080fd5b61410684613b9a565b925060208401356001600160401b038082111561412257600080fd5b61412e87838801613e47565b9350604086013591508082111561414457600080fd5b5061415186828701613e47565b9150509250925092565b6000806040838503121561416e57600080fd5b8235915060208301356001600160401b038111156140dc57600080fd5b600080600080608085870312156141a157600080fd5b84359350602085013592506141b860408601613b9a565b915060608501356001600160401b038111156141d357600080fd5b6141df87828801613c55565b91505092959194509250565b600080604083850312156141fe57600080fd5b61420783613b9a565b91506020830135801515811461421c57600080fd5b809150509250929050565b600080600080600060a0868803121561423f57600080fd5b8535945061424f60208701613b9a565b935061425d60408701613b9a565b925060608601356001600160401b038082111561427957600080fd5b613f3189838a01613c55565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b838110156142ed57888303603f19018552815180518785526142d088860182613d39565b9189015194890194909452948701949250908601906001016142ac565b509098975050505050505050565b6000806040838503121561430e57600080fd5b50508035926020909101359150565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b838110156142ed57603f19898403018552815160c0614364858351613d8e565b81890151858a015287820151888601526060808301516001600160a01b03169086015260808083015181870183905261439f83880182613d39565b9250505060a080830151925085820381870152506143bd8183613d39565b968901969450505090860190600101614344565b6000806000606084860312156143e657600080fd5b8335925060208401356001600160401b038082111561440457600080fd5b61441087838801613c55565b9350604086013591508082111561442657600080fd5b5061415186828701613c55565b6000806040838503121561444657600080fd5b61444f83613b9a565b9150613f8460208401613b9a565b600080600080600060a0868803121561447557600080fd5b61447e86613b9a565b945061448c60208701613b9a565b9350604086013592506060860135915060808601356001600160401b038111156144b557600080fd5b613f5488828901613c55565b6000806000606084860312156144d657600080fd5b6144df84613b9a565b95602085013595506040909401359392505050565b60008351614506818460208801613d15565b83519083019061451a818360208801613d15565b01949350505050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561094a5761094a614523565b60006001820161455e5761455e614523565b5060010190565b600181811c9082168061457957607f821691505b602082108103611e3657634e487b7160e01b600052602260045260246000fd5b6020808252602e908201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60408201526d195c881bdc88185c1c1c9bdd995960921b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b8082018082111561094a5761094a614523565b808202811582820484141761094a5761094a614523565b601f821115610d6357600081815260208120601f850160051c810160208610156146e65750805b601f850160051c820191505b818110156123e0578281556001016146f2565b81516001600160401b0381111561471e5761471e613c13565b6147328161472c8454614565565b846146bf565b602080601f831160018114614767576000841561474f5750858301515b600019600386901b1c1916600185901b1785556123e0565b600085815260208120601f198616915b8281101561479657888601518255948401946001909101908401614777565b50858210156147b45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8481526080602082015260006147dd6080830186613d39565b6040830194909452506001600160a01b039190911660609091015292915050565b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b6040815260006148e86040830185614057565b82810360208401526148fa8185614057565b95945050505050565b60006020828403121561491557600080fd5b5051919050565b60208082526023908201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526024908201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604082015263616e636560e01b606082015260800190565b6000826149c057634e487b7160e01b600052601260045260246000fd5b500490565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351614a48816017850160208801613d15565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351614a79816028840160208801613d15565b01602801949350505050565b6001600160a01b0386811682528516602082015260a060408201819052600090614ab190830186614057565b8281036060840152614ac38186614057565b90508281036080840152614ad78185613d39565b98975050505050505050565b600060208284031215614af557600080fd5b81516138ae81613be0565b600060033d11156111995760046000803e5060005160e01c90565b600060443d1015614b295790565b6040516003193d81016004833e81513d6001600160401b038160248401118184111715614b5857505050505090565b8285019150815181811115614b705750505050505090565b843d8701016020828501011115614b8a5750505050505090565b614b9960208286010187613c29565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090614c2690830184613d39565b979650505050505050565b600081614c4057614c40614523565b506000190190565b60008251614c5a818460208701613d15565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656468747470733a2f2f72616461726c61756e63682e6170702f6170692f6d65746164617461a264697066735822122041d688ea45ff0dd16f27705948d7b0a613be01912caf7ee2e3a657e7b63199bf64736f6c63430008130033", + "deployedBytecode": "0x60806040526004361061027e5760003560e01c80637cc749411161014e578063c6fbb712116100bb578063e8a3d48511610077578063e8a3d485146107d7578063e985e9c5146107ec578063f242432a14610835578063f5298aca14610855578063f8c1b2fd14610875578063fc74efa21461089557005b8063c6fbb71214610711578063c84aae1714610728578063d547741f14610755578063d667c9ce14610775578063df6efc6c14610795578063e43990fe146107b757005b8063a217fddf1161010a578063a217fddf14610660578063a22cb46514610675578063b0e21e8a14610695578063b3a44bd6146106ac578063b94967a4146106cc578063bd85b039146106e357005b80637cc74941146105c35780638129fc1c146105e35780638456cb59146105f857806391d148541461060d578063940123da1461062d5780639e751ffc1461064057005b80633659cfe6116101ec5780635c975abb116101a85780635c975abb146105215780636b20c454146105395780636b5cb789146105595780637357628c14610570578063787dce3d14610590578063790bafc6146105b057005b80633659cfe6146104675780633f4ba83a146104875780634e1273f41461049c5780634f1ef286146104c95780634f558e79146104dc57806352d1902d1461050c57005b8063248a9ca31161023b578063248a9ca314610377578063279c806e146103a757806327e235e3146103d95780632eb2c2d6146104075780632f2ff15d1461042757806336568abe1461044757005b8062fdd58e1461028757806301ffc9a7146102ba57806302fe5305146102ea5780630a579eca1461030a5780630e89341c1461032a578063155dd5ee1461035757005b3661028557005b005b34801561029357600080fd5b506102a76102a2366004613bb6565b6108b5565b6040519081526020015b60405180910390f35b3480156102c657600080fd5b506102da6102d5366004613bf6565b610950565b60405190151581526020016102b1565b3480156102f657600080fd5b50610285610305366004613cc8565b61095b565b34801561031657600080fd5b50610285610325366004613cfc565b610992565b34801561033657600080fd5b5061034a610345366004613cfc565b610a74565b6040516102b19190613d65565b34801561036357600080fd5b50610285610372366004613cfc565b610aaf565b34801561038357600080fd5b506102a7610392366004613cfc565b60009081526097602052604090206001015490565b3480156103b357600080fd5b506103c76103c2366004613cfc565b610bac565b6040516102b196959493929190613db0565b3480156103e557600080fd5b506102a76103f4366004613e09565b6101c96020526000908152604090205481565b34801561041357600080fd5b50610285610422366004613eb8565b610d02565b34801561043357600080fd5b50610285610442366004613f61565b610d4e565b34801561045357600080fd5b50610285610462366004613f61565b610d68565b34801561047357600080fd5b50610285610482366004613e09565b610de2565b34801561049357600080fd5b50610285610ec1565b3480156104a857600080fd5b506104bc6104b7366004613f8d565b610ef3565b6040516102b19190614092565b6102856104d73660046140a5565b61101c565b3480156104e857600080fd5b506102da6104f7366004613cfc565b600090815261012d6020526040902054151590565b34801561051857600080fd5b506102a76110e8565b34801561052d57600080fd5b5060c95460ff166102da565b34801561054557600080fd5b506102856105543660046140e8565b61119c565b34801561056557600080fd5b506102a76101c65481565b34801561057c57600080fd5b5061028561058b366004613cfc565b6111df565b34801561059c57600080fd5b506102856105ab366004613cfc565b611280565b6102856105be36600461415b565b611292565b3480156105cf57600080fd5b506102856105de366004613cfc565b61145e565b3480156105ef57600080fd5b50610285611470565b34801561060457600080fd5b5061028561163b565b34801561061957600080fd5b506102da610628366004613f61565b61166d565b61028561063b36600461418b565b611698565b34801561064c57600080fd5b5061028561065b366004613cfc565b611785565b34801561066c57600080fd5b506102a7600081565b34801561068157600080fd5b506102856106903660046141eb565b611797565b3480156106a157600080fd5b506102a76101c35481565b3480156106b857600080fd5b506102a76106c7366004614227565b6117a2565b3480156106d857600080fd5b506102a76101ca5481565b3480156106ef57600080fd5b506102a76106fe366004613cfc565b600090815261012d602052604090205490565b34801561071d57600080fd5b506102a76101c55481565b34801561073457600080fd5b50610748610743366004613e09565b6118fc565b6040516102b19190614285565b34801561076157600080fd5b50610285610770366004613f61565b611a66565b34801561078157600080fd5b506102856107903660046142fb565b611a8b565b3480156107a157600080fd5b506107aa611bcd565b6040516102b1919061431d565b3480156107c357600080fd5b506102856107d23660046143d1565b611e3c565b3480156107e357600080fd5b5061034a611ec2565b3480156107f857600080fd5b506102da610807366004614433565b6001600160a01b03918216600090815260666020908152604080832093909416825291909152205460ff1690565b34801561084157600080fd5b5061028561085036600461445d565b611ee2565b34801561086157600080fd5b506102856108703660046144c1565b611f27565b34801561088157600080fd5b50610285610890366004613cfc565b611f6a565b3480156108a157600080fd5b506102856108b0366004613cfc565b611fff565b60006001600160a01b0383166109255760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b60648201526084015b60405180910390fd5b5060008181526065602090815260408083206001600160a01b03861684529091529020545b92915050565b600061094a826120da565b7f7804d923f43a17d325d77e781528e0793b2edd9890ab45fc64efd7b4b427744c610985816120ff565b61098e82612109565b5050565b60008181526101c460205260409020600301546001600160a01b03163314806109c157506109c160003361166d565b6109de5760405163388f811f60e01b815260040160405180910390fd5b600260008281526101c4602052604090205460ff166003811115610a0457610a04613d78565b14610a2257604051631f0fb6fd60e11b815260040160405180910390fd5b60008181526101c46020908152604091829020805460ff1916600317905590518281527f591913f977ab242c5871f116f36be231ff67df5e8e0bac1efd91fa8a723aca2b91015b60405180910390a150565b6060610a7f82612115565b610a88836121a9565b604051602001610a999291906144f4565b6040516020818303038152906040529050919050565b6000610aba816120ff565b47821115610adb57604051631036b5ad60e31b815260040160405180910390fd5b4760005b6101c554811015610b3c5760008181526101c46020526040902060020154610b079083614539565b915083821015610b2a5760405163156bbc5b60e01b815260040160405180910390fd5b80610b348161454c565b915050610adf565b50604051600090339085908381818185875af1925050503d8060008114610b7f576040519150601f19603f3d011682016040523d82523d6000602084013e610b84565b606091505b5050905080610ba6576040516317f2c34560e31b815260040160405180910390fd5b50505050565b6101c4602052600090815260409020805460018201546002830154600384015460048501805460ff90951695939492936001600160a01b0390921692610bf190614565565b80601f0160208091040260200160405190810160405280929190818152602001828054610c1d90614565565b8015610c6a5780601f10610c3f57610100808354040283529160200191610c6a565b820191906000526020600020905b815481529060010190602001808311610c4d57829003601f168201915b505050505090806005018054610c7f90614565565b80601f0160208091040260200160405190810160405280929190818152602001828054610cab90614565565b8015610cf85780601f10610ccd57610100808354040283529160200191610cf8565b820191906000526020600020905b815481529060010190602001808311610cdb57829003601f168201915b5050505050905086565b6001600160a01b038516331480610d1e5750610d1e8533610807565b610d3a5760405162461bcd60e51b815260040161091c90614599565b610d47858585858561223b565b5050505050565b6000610d59816120ff565b610d6383836123e8565b505050565b6001600160a01b0381163314610dd85760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b606482015260840161091c565b61098e828261246e565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610e2a5760405162461bcd60e51b815260040161091c906145e7565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610e73600080516020614c65833981519152546001600160a01b031690565b6001600160a01b031614610e995760405162461bcd60e51b815260040161091c90614633565b610ea2816124d5565b60408051600080825260208201909252610ebe918391906124ff565b50565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610eeb816120ff565b610ebe61266a565b60608151835114610f585760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b606482015260840161091c565b600083516001600160401b03811115610f7357610f73613c13565b604051908082528060200260200182016040528015610f9c578160200160208202803683370190505b50905060005b845181101561101457610fe7858281518110610fc057610fc061467f565b6020026020010151858381518110610fda57610fda61467f565b60200260200101516108b5565b828281518110610ff957610ff961467f565b602090810291909101015261100d8161454c565b9050610fa2565b509392505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036110645760405162461bcd60e51b815260040161091c906145e7565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166110ad600080516020614c65833981519152546001600160a01b031690565b6001600160a01b0316146110d35760405162461bcd60e51b815260040161091c90614633565b6110dc826124d5565b61098e828260016124ff565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146111885760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840161091c565b50600080516020614c658339815191525b90565b6001600160a01b0383163314806111b857506111b88333610807565b6111d45760405162461bcd60e51b815260040161091c90614599565b610d638383836126bc565b60006111ea816120ff565b600160008381526101c4602052604090205460ff16600381111561121057611210613d78565b1461122e5760405163137c9c1f60e31b815260040160405180910390fd5b60008281526101c46020908152604091829020805460ff1916600217905590518381527f8f4352ac8b4aefdd2333162306bbe09dd4f4ff6661e89ccc4e4dcced8794e8f7910160405180910390a15050565b600061128b816120ff565b506101c355565b6101ca543410156112b657604051631036b5ad60e31b815260040160405180910390fd5b600260008381526101c4602052604090205460ff1660038111156112dc576112dc613d78565b146112fa57604051631f0fb6fd60e11b815260040160405180910390fd5b61130e34836101c5546101c46101c961285b565b6000805b6101c8548110156113a257336001600160a01b03166101c8828154811061133b5761133b61467f565b6000918252602090912001546001600160a01b03160361139057336001600160a01b03166101c882815481106113735761137361467f565b6000918252602090912001546001600160a01b03161491506113a2565b8061139a8161454c565b915050611312565b50806113ec576101c880546001810182556000919091527f8cdee82cb3ac6d59f1f417405a3eecf497b31f3d06d4c506f96deb67789f61e90180546001600160a01b031916331790555b3360009081526101c760209081526040808320600887901c845290915290208054600160ff86161b179055336001600160a01b0316837f710e220a47c8d9e50587c80fe509f5e762149ef672440eff70798204dd70f5eb846040516114519190613d65565b60405180910390a3505050565b6000611469816120ff565b506101c655565b600054610100900460ff16158080156114905750600054600160ff909116105b806114aa5750303b1580156114aa575060005460ff166001145b61150d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161091c565b6000805460ff191660011790558015611530576000805461ff0019166101001790555b61154860405180602001604052806000815250612c3c565b611550612c6c565b611558612c95565b611560612c6c565b611568612c6c565b611570612c6c565b61157b6000336123e8565b6115a57f7804d923f43a17d325d77e781528e0793b2edd9890ab45fc64efd7b4b427744c336123e8565b6115cf7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a336123e8565b6115f97f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3336123e8565b8015610ebe576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610a69565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a611665816120ff565b610ebe612cc4565b60009182526097602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60006116a3816120ff565b600260008681526101c4602052604090205460ff1660038111156116c9576116c9613d78565b146116e757604051631f0fb6fd60e11b815260040160405180910390fd5b6101c35460008681526101c46020526040902060010154859161170991614695565b61171391906146a8565b34101561173357604051631036b5ad60e31b815260040160405180910390fd5b61173f83868685612d01565b6101c35461174d90856146a8565b6117579034614539565b60008681526101c4602052604081206002018054909190611779908490614695565b90915550505050505050565b6000611790816120ff565b506101ca55565b61098e338383612e26565b60006101c6548611156117c857604051630f0c4c5f60e41b815260040160405180910390fd5b506101c5546040805160c0810190915280600181526020808201899052600060408084018290526001600160a01b038a1660608501526080840188905260a09093018690528481526101c49091522081518154829060ff1916600183600381111561183557611835613d78565b0217905550602082015160018201556040820151600282015560608201516003820180546001600160a01b0319166001600160a01b03909216919091179055608082015160048201906118889082614705565b5060a0820151600582019061189d9082614705565b50506101c58054915060006118b18361454c565b91905055507f3deb71b5a6774038a220621d78241405004043d5a928de9c7956bcc5270416db818388886040516118eb94939291906147c4565b60405180910390a195945050505050565b606060006101c5546001600160401b0381111561191b5761191b613c13565b60405190808252806020026020018201604052801561196157816020015b6040805180820190915260608152600060208201528152602001906001900390816119395790505b50905060005b6101c554811015611a5f5760405180604001604052806101c46000848152602001908152602001600020600401805461199f90614565565b80601f01602080910402602001604051908101604052809291908181526020018280546119cb90614565565b8015611a185780601f106119ed57610100808354040283529160200191611a18565b820191906000526020600020905b8154815290600101906020018083116119fb57829003601f168201915b50505050508152602001611a2c86846108b5565b815250828281518110611a4157611a4161467f565b60200260200101819052508080611a579061454c565b915050611967565b5092915050565b600082815260976020526040902060010154611a81816120ff565b610d63838361246e565b60008281526101c460205260409020600301546001600160a01b03163314611ac65760405163388f811f60e01b815260040160405180910390fd5b60008281526101c46020526040902060020154811115611af957604051637eafab7d60e01b815260040160405180910390fd5b604051600090339083908381818185875af1925050503d8060008114611b3b576040519150601f19603f3d011682016040523d82523d6000602084013e611b40565b606091505b5050905080611b62576040516317f2c34560e31b815260040160405180910390fd5b60008381526101c4602052604081206002018054849290611b84908490614539565b90915550506040805184815260208101849052338183015290517ff1090e9d5138cd4909542e10e1da576730b07eb291a71a151e63160dde345b949181900360600190a1505050565b606060006101c5546001600160401b03811115611bec57611bec613c13565b604051908082528060200260200182016040528015611c6057816020015b611c4d6040805160c081019091528060008152602001600081526020016000815260200160006001600160a01b0316815260200160608152602001606081525090565b815260200190600190039081611c0a5790505b50905060005b6101c554811015611e365760008181526101c4602052604090819020815160c081019092528054829060ff166003811115611ca357611ca3613d78565b6003811115611cb457611cb4613d78565b8152600182015460208201526002820154604082015260038201546001600160a01b03166060820152600482018054608090920191611cf290614565565b80601f0160208091040260200160405190810160405280929190818152602001828054611d1e90614565565b8015611d6b5780601f10611d4057610100808354040283529160200191611d6b565b820191906000526020600020905b815481529060010190602001808311611d4e57829003601f168201915b50505050508152602001600582018054611d8490614565565b80601f0160208091040260200160405190810160405280929190818152602001828054611db090614565565b8015611dfd5780601f10611dd257610100808354040283529160200191611dfd565b820191906000526020600020905b815481529060010190602001808311611de057829003601f168201915b505050505081525050828281518110611e1857611e1861467f565b60200260200101819052508080611e2e9061454c565b915050611c66565b50919050565b6000611e47816120ff565b60008481526101c4602052604081205460ff166003811115611e6b57611e6b613d78565b03611e895760405163137c9c1f60e31b815260040160405180910390fd5b60008481526101c460205260409020600401611ea58482614705565b5060008481526101c460205260409020600501610d478382614705565b6060604051806060016040528060248152602001614cac60249139905090565b6001600160a01b038516331480611efe5750611efe8533610807565b611f1a5760405162461bcd60e51b815260040161091c90614599565b610d478585858585612efe565b6001600160a01b038316331480611f435750611f438333610807565b611f5f5760405162461bcd60e51b815260040161091c90614599565b610d6383838361303a565b3360009081526101c760209081526040808320600885901c84529182905290912054600160ff84161b16611fb15760405163423f327760e11b815260040160405180910390fd5b600882901c6000908152602082905260408082208054600160ff87161b1916905551339184917fc6c1c3224e50c3c958e39197695bdfe8457ce7c0014d8d51a4d3aa12c5ac18489190a35050565b60008181526101c460205260409020600301546001600160a01b031633148061202e575061202e60003361166d565b61204b5760405163388f811f60e01b815260040160405180910390fd5b600360008281526101c4602052604090205460ff16600381111561207157612071613d78565b1461208f5760405163968807a560e01b815260040160405180910390fd5b60008181526101c46020908152604091829020805460ff1916600217905590518281527f63bb17c9645a29322601b4fe88d8f3fa84f32229368294f903084be8f5d813ba9101610a69565b60006001600160e01b03198216637965db0b60e01b148061094a575061094a82613156565b610ebe81336131a6565b606761098e8282614705565b60606067805461212490614565565b80601f016020809104026020016040519081016040528092919081815260200182805461215090614565565b801561219d5780601f106121725761010080835404028352916020019161219d565b820191906000526020600020905b81548152906001019060200180831161218057829003601f168201915b50505050509050919050565b606060006121b6836131ff565b60010190506000816001600160401b038111156121d5576121d5613c13565b6040519080825280601f01601f1916602001820160405280156121ff576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461220957509392505050565b815183511461225c5760405162461bcd60e51b815260040161091c906147fe565b6001600160a01b0384166122825760405162461bcd60e51b815260040161091c90614846565b336122918187878787876132d7565b60005b845181101561237a5760008582815181106122b1576122b161467f565b6020026020010151905060008583815181106122cf576122cf61467f565b60209081029190910181015160008481526065835260408082206001600160a01b038e1683529093529190912054909150818110156123205760405162461bcd60e51b815260040161091c9061488b565b60008381526065602090815260408083206001600160a01b038e8116855292528083208585039055908b1682528120805484929061235f908490614695565b92505081905550505050806123739061454c565b9050612294565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516123ca9291906148d5565b60405180910390a46123e08187878787876132ed565b505050505050565b6123f2828261166d565b61098e5760008281526097602090815260408083206001600160a01b03851684529091529020805460ff1916600117905561242a3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b612478828261166d565b1561098e5760008281526097602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e361098e816120ff565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561253257610d6383613448565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561258c575060408051601f3d908101601f1916820190925261258991810190614903565b60015b6125ef5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840161091c565b600080516020614c65833981519152811461265e5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840161091c565b50610d638383836134e4565b612672613509565b60c9805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b0383166126e25760405162461bcd60e51b815260040161091c9061491c565b80518251146127035760405162461bcd60e51b815260040161091c906147fe565b6000339050612726818560008686604051806020016040528060008152506132d7565b60005b83518110156127ee5760008482815181106127465761274661467f565b6020026020010151905060008483815181106127645761276461467f565b60209081029190910181015160008481526065835260408082206001600160a01b038c1683529093529190912054909150818110156127b55760405162461bcd60e51b815260040161091c9061495f565b60009283526065602090815260408085206001600160a01b038b16865290915290922091039055806127e68161454c565b915050612729565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb868660405161283f9291906148d5565b60405180910390a4604080516020810190915260009052610ba6565b60006128686002876149a3565b905060006128776005886149a3565b905081846000888152602001908152602001600020600201600082825461289e9190614695565b9091555050600086815260208590526040812060050180546128bf90614565565b80601f01602080910402602001604051908101604052809291908181526020018280546128eb90614565565b80156129385780601f1061290d57610100808354040283529160200191612938565b820191906000526020600020905b81548152906001019060200180831161291b57829003601f168201915b505050505090506000866001600160401b0381111561295957612959613c13565b604051908082528060200260200182016040528015612982578160200160208202803683370190505b5090506000805b88811080156129985750898114155b15612ba657600081815260208990526040808220815160c081019092528054829060ff1660038111156129cd576129cd613d78565b60038111156129de576129de613d78565b8152600182015460208201526002820154604082015260038201546001600160a01b03166060820152600482018054608090920191612a1c90614565565b80601f0160208091040260200160405190810160405280929190818152602001828054612a4890614565565b8015612a955780601f10612a6a57610100808354040283529160200191612a95565b820191906000526020600020905b815481529060010190602001808311612a7857829003601f168201915b50505050508152602001600582018054612aae90614565565b80601f0160208091040260200160405190810160405280929190818152602001828054612ada90614565565b8015612b275780601f10612afc57610100808354040283529160200191612b27565b820191906000526020600020905b815481529060010190602001808311612b0a57829003601f168201915b5050505050815250509050612b518160a00151868051602091820120825192909101919091201490565b15612b93578060600151848481518110612b6d57612b6d61467f565b6001600160a01b0390921660209283029190910190910152612b90600184614695565b92505b5080612b9e8161454c565b915050612989565b825115612c2f576000612bb983876149a3565b9050600091505b82821015612c2d5780886000868581518110612bde57612bde61467f565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000828254612c159190614695565b90915550829050612c258161454c565b925050612bc0565b505b5050505050505050505050565b600054610100900460ff16612c635760405162461bcd60e51b815260040161091c906149c5565b610ebe81613552565b600054610100900460ff16612c935760405162461bcd60e51b815260040161091c906149c5565b565b600054610100900460ff16612cbc5760405162461bcd60e51b815260040161091c906149c5565b612c93613582565b612ccc6135b5565b60c9805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861269f3390565b6001600160a01b038416612d615760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b606482015260840161091c565b336000612d6d856135fb565b90506000612d7a856135fb565b9050612d8b836000898585896132d7565b60008681526065602090815260408083206001600160a01b038b16845290915281208054879290612dbd908490614695565b909155505060408051878152602081018790526001600160a01b03808a1692600092918716917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4612e1d83600089898989613646565b50505050505050565b816001600160a01b0316836001600160a01b031603612e995760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b606482015260840161091c565b6001600160a01b03838116600081815260666020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319101611451565b6001600160a01b038416612f245760405162461bcd60e51b815260040161091c90614846565b336000612f30856135fb565b90506000612f3d856135fb565b9050612f4d8389898585896132d7565b60008681526065602090815260408083206001600160a01b038c16845290915290205485811015612f905760405162461bcd60e51b815260040161091c9061488b565b60008781526065602090815260408083206001600160a01b038d8116855292528083208985039055908a16825281208054889290612fcf908490614695565b909155505060408051888152602081018890526001600160a01b03808b16928c821692918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a461302f848a8a8a8a8a613646565b505050505050505050565b6001600160a01b0383166130605760405162461bcd60e51b815260040161091c9061491c565b33600061306c846135fb565b90506000613079846135fb565b9050613099838760008585604051806020016040528060008152506132d7565b60008581526065602090815260408083206001600160a01b038a168452909152902054848110156130dc5760405162461bcd60e51b815260040161091c9061495f565b60008681526065602090815260408083206001600160a01b038b81168086529184528285208a8703905582518b81529384018a90529092908816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4604080516020810190915260009052612e1d565b60006001600160e01b03198216636cdb3d1360e11b148061318757506001600160e01b031982166303a24d0760e21b145b8061094a57506301ffc9a760e01b6001600160e01b031983161461094a565b6131b0828261166d565b61098e576131bd81613701565b6131c8836020613713565b6040516020016131d9929190614a10565b60408051601f198184030181529082905262461bcd60e51b825261091c91600401613d65565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b831061323e5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef8100000000831061326a576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061328857662386f26fc10000830492506010015b6305f5e10083106132a0576305f5e100830492506008015b61271083106132b457612710830492506004015b606483106132c6576064830492506002015b600a831061094a5760010192915050565b6132df6135b5565b6123e08686868686866138b5565b6001600160a01b0384163b156123e05760405163bc197c8160e01b81526001600160a01b0385169063bc197c81906133319089908990889088908890600401614a85565b6020604051808303816000875af192505050801561336c575060408051601f3d908101601f1916820190925261336991810190614ae3565b60015b61341857613378614b00565b806308c379a0036133b1575061338c614b1b565b8061339757506133b3565b8060405162461bcd60e51b815260040161091c9190613d65565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b606482015260840161091c565b6001600160e01b0319811663bc197c8160e01b14612e1d5760405162461bcd60e51b815260040161091c90614ba4565b6001600160a01b0381163b6134b55760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161091c565b600080516020614c6583398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6134ed83613a31565b6000825111806134fa5750805b15610d6357610ba68383613a71565b60c95460ff16612c935760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015260640161091c565b600054610100900460ff166135795760405162461bcd60e51b815260040161091c906149c5565b610ebe81612109565b600054610100900460ff166135a95760405162461bcd60e51b815260040161091c906149c5565b60c9805460ff19169055565b60c95460ff1615612c935760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015260640161091c565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106136355761363561467f565b602090810291909101015292915050565b6001600160a01b0384163b156123e05760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e619061368a9089908990889088908890600401614bec565b6020604051808303816000875af19250505080156136c5575060408051601f3d908101601f191682019092526136c291810190614ae3565b60015b6136d157613378614b00565b6001600160e01b0319811663f23a6e6160e01b14612e1d5760405162461bcd60e51b815260040161091c90614ba4565b606061094a6001600160a01b03831660145b606060006137228360026146a8565b61372d906002614695565b6001600160401b0381111561374457613744613c13565b6040519080825280601f01601f19166020018201604052801561376e576020820181803683370190505b509050600360fc1b816000815181106137895761378961467f565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106137b8576137b861467f565b60200101906001600160f81b031916908160001a90535060006137dc8460026146a8565b6137e7906001614695565b90505b600181111561385f576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061381b5761381b61467f565b1a60f81b8282815181106138315761383161467f565b60200101906001600160f81b031916908160001a90535060049490941c9361385881614c31565b90506137ea565b5083156138ae5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161091c565b9392505050565b6001600160a01b03851661393d5760005b835181101561393b578281815181106138e1576138e161467f565b602002602001015161012d60008684815181106139005761390061467f565b6020026020010151815260200190815260200160002060008282546139259190614695565b9091555061393490508161454c565b90506138c6565b505b6001600160a01b0384166123e05760005b8351811015612e1d57600084828151811061396b5761396b61467f565b6020026020010151905060008483815181106139895761398961467f565b60200260200101519050600061012d600084815260200190815260200160002054905081811015613a0d5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a206275726e20616d6f756e74206578636565647320746f74604482015267616c537570706c7960c01b606482015260840161091c565b600092835261012d602052604090922091039055613a2a8161454c565b905061394e565b613a3a81613448565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606138ae8383604051806060016040528060278152602001614c85602791396060600080856001600160a01b031685604051613aae9190614c48565b600060405180830381855af49150503d8060008114613ae9576040519150601f19603f3d011682016040523d82523d6000602084013e613aee565b606091505b5091509150613aff86838387613b09565b9695505050505050565b60608315613b78578251600003613b71576001600160a01b0385163b613b715760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161091c565b5081613b82565b613b828383613b8a565b949350505050565b8151156133975781518083602001fd5b80356001600160a01b0381168114613bb157600080fd5b919050565b60008060408385031215613bc957600080fd5b613bd283613b9a565b946020939093013593505050565b6001600160e01b031981168114610ebe57600080fd5b600060208284031215613c0857600080fd5b81356138ae81613be0565b634e487b7160e01b600052604160045260246000fd5b601f8201601f191681016001600160401b0381118282101715613c4e57613c4e613c13565b6040525050565b600082601f830112613c6657600080fd5b81356001600160401b03811115613c7f57613c7f613c13565b604051613c96601f8301601f191660200182613c29565b818152846020838601011115613cab57600080fd5b816020850160208301376000918101602001919091529392505050565b600060208284031215613cda57600080fd5b81356001600160401b03811115613cf057600080fd5b613b8284828501613c55565b600060208284031215613d0e57600080fd5b5035919050565b60005b83811015613d30578181015183820152602001613d18565b50506000910152565b60008151808452613d51816020860160208601613d15565b601f01601f19169290920160200192915050565b6020815260006138ae6020830184613d39565b634e487b7160e01b600052602160045260246000fd5b60048110613dac57634e487b7160e01b600052602160045260246000fd5b9052565b613dba8188613d8e565b85602082015284604082015260018060a01b038416606082015260c060808201526000613dea60c0830185613d39565b82810360a0840152613dfc8185613d39565b9998505050505050505050565b600060208284031215613e1b57600080fd5b6138ae82613b9a565b60006001600160401b03821115613e3d57613e3d613c13565b5060051b60200190565b600082601f830112613e5857600080fd5b81356020613e6582613e24565b604051613e728282613c29565b83815260059390931b8501820192828101915086841115613e9257600080fd5b8286015b84811015613ead5780358352918301918301613e96565b509695505050505050565b600080600080600060a08688031215613ed057600080fd5b613ed986613b9a565b9450613ee760208701613b9a565b935060408601356001600160401b0380821115613f0357600080fd5b613f0f89838a01613e47565b94506060880135915080821115613f2557600080fd5b613f3189838a01613e47565b93506080880135915080821115613f4757600080fd5b50613f5488828901613c55565b9150509295509295909350565b60008060408385031215613f7457600080fd5b82359150613f8460208401613b9a565b90509250929050565b60008060408385031215613fa057600080fd5b82356001600160401b0380821115613fb757600080fd5b818501915085601f830112613fcb57600080fd5b81356020613fd882613e24565b604051613fe58282613c29565b83815260059390931b850182019282810191508984111561400557600080fd5b948201945b8386101561402a5761401b86613b9a565b8252948201949082019061400a565b9650508601359250508082111561404057600080fd5b5061404d85828601613e47565b9150509250929050565b600081518084526020808501945080840160005b838110156140875781518752958201959082019060010161406b565b509495945050505050565b6020815260006138ae6020830184614057565b600080604083850312156140b857600080fd5b6140c183613b9a565b915060208301356001600160401b038111156140dc57600080fd5b61404d85828601613c55565b6000806000606084860312156140fd57600080fd5b61410684613b9a565b925060208401356001600160401b038082111561412257600080fd5b61412e87838801613e47565b9350604086013591508082111561414457600080fd5b5061415186828701613e47565b9150509250925092565b6000806040838503121561416e57600080fd5b8235915060208301356001600160401b038111156140dc57600080fd5b600080600080608085870312156141a157600080fd5b84359350602085013592506141b860408601613b9a565b915060608501356001600160401b038111156141d357600080fd5b6141df87828801613c55565b91505092959194509250565b600080604083850312156141fe57600080fd5b61420783613b9a565b91506020830135801515811461421c57600080fd5b809150509250929050565b600080600080600060a0868803121561423f57600080fd5b8535945061424f60208701613b9a565b935061425d60408701613b9a565b925060608601356001600160401b038082111561427957600080fd5b613f3189838a01613c55565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b838110156142ed57888303603f19018552815180518785526142d088860182613d39565b9189015194890194909452948701949250908601906001016142ac565b509098975050505050505050565b6000806040838503121561430e57600080fd5b50508035926020909101359150565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b838110156142ed57603f19898403018552815160c0614364858351613d8e565b81890151858a015287820151888601526060808301516001600160a01b03169086015260808083015181870183905261439f83880182613d39565b9250505060a080830151925085820381870152506143bd8183613d39565b968901969450505090860190600101614344565b6000806000606084860312156143e657600080fd5b8335925060208401356001600160401b038082111561440457600080fd5b61441087838801613c55565b9350604086013591508082111561442657600080fd5b5061415186828701613c55565b6000806040838503121561444657600080fd5b61444f83613b9a565b9150613f8460208401613b9a565b600080600080600060a0868803121561447557600080fd5b61447e86613b9a565b945061448c60208701613b9a565b9350604086013592506060860135915060808601356001600160401b038111156144b557600080fd5b613f5488828901613c55565b6000806000606084860312156144d657600080fd5b6144df84613b9a565b95602085013595506040909401359392505050565b60008351614506818460208801613d15565b83519083019061451a818360208801613d15565b01949350505050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561094a5761094a614523565b60006001820161455e5761455e614523565b5060010190565b600181811c9082168061457957607f821691505b602082108103611e3657634e487b7160e01b600052602260045260246000fd5b6020808252602e908201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60408201526d195c881bdc88185c1c1c9bdd995960921b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b8082018082111561094a5761094a614523565b808202811582820484141761094a5761094a614523565b601f821115610d6357600081815260208120601f850160051c810160208610156146e65750805b601f850160051c820191505b818110156123e0578281556001016146f2565b81516001600160401b0381111561471e5761471e613c13565b6147328161472c8454614565565b846146bf565b602080601f831160018114614767576000841561474f5750858301515b600019600386901b1c1916600185901b1785556123e0565b600085815260208120601f198616915b8281101561479657888601518255948401946001909101908401614777565b50858210156147b45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8481526080602082015260006147dd6080830186613d39565b6040830194909452506001600160a01b039190911660609091015292915050565b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b6040815260006148e86040830185614057565b82810360208401526148fa8185614057565b95945050505050565b60006020828403121561491557600080fd5b5051919050565b60208082526023908201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526024908201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604082015263616e636560e01b606082015260800190565b6000826149c057634e487b7160e01b600052601260045260246000fd5b500490565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351614a48816017850160208801613d15565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351614a79816028840160208801613d15565b01602801949350505050565b6001600160a01b0386811682528516602082015260a060408201819052600090614ab190830186614057565b8281036060840152614ac38186614057565b90508281036080840152614ad78185613d39565b98975050505050505050565b600060208284031215614af557600080fd5b81516138ae81613be0565b600060033d11156111995760046000803e5060005160e01c90565b600060443d1015614b295790565b6040516003193d81016004833e81513d6001600160401b038160248401118184111715614b5857505050505090565b8285019150815181811115614b705750505050505090565b843d8701016020828501011115614b8a5750505050505090565b614b9960208286010187613c29565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090614c2690830184613d39565b979650505050505050565b600081614c4057614c40614523565b506000190190565b60008251614c5a818460208701613d15565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656468747470733a2f2f72616461726c61756e63682e6170702f6170692f6d65746164617461a264697066735822122041d688ea45ff0dd16f27705948d7b0a613be01912caf7ee2e3a657e7b63199bf64736f6c63430008130033", + "linkReferences": {}, + "deployedLinkReferences": {} } diff --git a/cache_hardhat/solidity-files-cache.json b/cache_hardhat/solidity-files-cache.json index 34fa55e..5e41d51 100644 --- a/cache_hardhat/solidity-files-cache.json +++ b/cache_hardhat/solidity-files-cache.json @@ -2,7 +2,7 @@ "_format": "hh-sol-cache-2", "files": { "/Users/marcuspang/Desktop/Personal/radar-contracts/src/RadarEditions.sol": { - "lastModificationDate": 1696546803512, + "lastModificationDate": 1696548850214, "contentHash": "e94707aa4b40aae6aa974599a7a35dad", "sourceName": "src/RadarEditions.sol", "solcConfig": { @@ -2262,8 +2262,8 @@ ] }, "/Users/marcuspang/Desktop/Personal/radar-contracts/src/Editions/Editions.sol": { - "lastModificationDate": 1696546803514, - "contentHash": "c69ecbd9f085b0c580e8cdbc1dc9ee75", + "lastModificationDate": 1696548770807, + "contentHash": "fa0cab628ecb94e8c71eb2b68fe323d2", "sourceName": "src/Editions/Editions.sol", "solcConfig": { "version": "0.8.19", @@ -2513,8 +2513,8 @@ ] }, "/Users/marcuspang/Desktop/Personal/radar-contracts/src/Beliefs/Beliefs.sol": { - "lastModificationDate": 1696546803512, - "contentHash": "22252117fbd9c6208a2896c1f42c4fc5", + "lastModificationDate": 1696548850215, + "contentHash": "35dfc8bf702ddf8daf20c000f002bde4", "sourceName": "src/Beliefs/Beliefs.sol", "solcConfig": { "version": "0.8.19", @@ -2567,8 +2567,8 @@ ] }, "/Users/marcuspang/Desktop/Personal/radar-contracts/src/Beliefs/LibBeliefs.sol": { - "lastModificationDate": 1696546803512, - "contentHash": "6b3666bffd086c1a84c1db9644a45d3a", + "lastModificationDate": 1696548770807, + "contentHash": "384a64f8a0aea9c6fdbec0c797f85b9d", "sourceName": "src/Beliefs/LibBeliefs.sol", "solcConfig": { "version": "0.8.19", diff --git a/cache_hardhat/validations.json b/cache_hardhat/validations.json index 435a470..3f928e5 100644 --- a/cache_hardhat/validations.json +++ b/cache_hardhat/validations.json @@ -1340,6 +1340,5294 @@ }, "solcVersion": "0.8.19" }, + "src/Beliefs/Beliefs.sol:Beliefs": { + "src": "src/Beliefs/Beliefs.sol:12", + "version": { + "withMetadata": "f3ffce51b6905f501f445d59484de7ad04547de5c1142c22f8a1d9f33cd37f91", + "withoutMetadata": "3c5b13f2f2c0c9b7ab3d3e20231273fd6559f6ffa800d6748957d897cfc1dd24", + "linkedWithoutMetadata": "3c5b13f2f2c0c9b7ab3d3e20231273fd6559f6ffa800d6748957d897cfc1dd24" + }, + "inherit": [ + "src/Editions/Editions.sol:Editions", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol:UUPSUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol:ERC1967UpgradeUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol:IERC1967Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol:IERC1822ProxiableUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155SupplyUpgradeable.sol:ERC1155SupplyUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155BurnableUpgradeable.sol:ERC1155BurnableUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/security/PausableUpgradeable.sol:PausableUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol:AccessControlUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:ERC1155Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/IERC1155MetadataURIUpgradeable.sol:IERC1155MetadataURIUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/IERC1155Upgradeable.sol:IERC1155Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol:ERC165Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol:IERC165Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol:IAccessControlUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:ContextUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:Initializable", + "src/Editions/IEditions.sol:IEditions", + "src/Beliefs/IBeliefs.sol:IBeliefs" + ], + "libraries": [ + "src/Editions/EditionsStructs.sol:EditionsStructs", + "src/Beliefs/LibBeliefs.sol:LibBeliefs", + "lib/openzeppelin-contracts/contracts/utils/structs/BitMaps.sol:BitMaps" + ], + "methods": [ + "believeProject(uint256,string)", + "removeBelief(uint256)" + ], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:36" + }, + { + "label": "__gap", + "offset": 0, + "slot": "51", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC165Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol:41" + }, + { + "label": "_balances", + "offset": 0, + "slot": "101", + "type": "t_mapping(t_uint256,t_mapping(t_address,t_uint256))", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:25" + }, + { + "label": "_operatorApprovals", + "offset": 0, + "slot": "102", + "type": "t_mapping(t_address,t_mapping(t_address,t_bool))", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:28" + }, + { + "label": "_uri", + "offset": 0, + "slot": "103", + "type": "t_string_storage", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:31" + }, + { + "label": "__gap", + "offset": 0, + "slot": "104", + "type": "t_array(t_uint256)47_storage", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:508" + }, + { + "label": "_roles", + "offset": 0, + "slot": "151", + "type": "t_mapping(t_bytes32,t_struct(RoleData)34_storage)", + "contract": "AccessControlUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol:62" + }, + { + "label": "__gap", + "offset": 0, + "slot": "152", + "type": "t_array(t_uint256)49_storage", + "contract": "AccessControlUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol:260" + }, + { + "label": "_paused", + "offset": 0, + "slot": "201", + "type": "t_bool", + "contract": "PausableUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/security/PausableUpgradeable.sol:29" + }, + { + "label": "__gap", + "offset": 0, + "slot": "202", + "type": "t_array(t_uint256)49_storage", + "contract": "PausableUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/security/PausableUpgradeable.sol:116" + }, + { + "label": "__gap", + "offset": 0, + "slot": "251", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC1155BurnableUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155BurnableUpgradeable.sol:44" + }, + { + "label": "_totalSupply", + "offset": 0, + "slot": "301", + "type": "t_mapping(t_uint256,t_uint256)", + "contract": "ERC1155SupplyUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155SupplyUpgradeable.sol:23" + }, + { + "label": "__gap", + "offset": 0, + "slot": "302", + "type": "t_array(t_uint256)49_storage", + "contract": "ERC1155SupplyUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155SupplyUpgradeable.sol:76" + }, + { + "label": "__gap", + "offset": 0, + "slot": "351", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC1967UpgradeUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol:169" + }, + { + "label": "__gap", + "offset": 0, + "slot": "401", + "type": "t_array(t_uint256)50_storage", + "contract": "UUPSUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol:111" + }, + { + "label": "protocolFee", + "offset": 0, + "slot": "451", + "type": "t_uint256", + "contract": "Editions", + "src": "src/Editions/Editions.sol:31" + }, + { + "label": "editions", + "offset": 0, + "slot": "452", + "type": "t_mapping(t_uint256,t_struct(Edition)7150_storage)", + "contract": "Editions", + "src": "src/Editions/Editions.sol:33" + }, + { + "label": "editionCounter", + "offset": 0, + "slot": "453", + "type": "t_uint256", + "contract": "Editions", + "src": "src/Editions/Editions.sol:35" + }, + { + "label": "maximumEditionFee", + "offset": 0, + "slot": "454", + "type": "t_uint256", + "contract": "Editions", + "src": "src/Editions/Editions.sol:37" + }, + { + "label": "_beliefs", + "offset": 0, + "slot": "455", + "type": "t_mapping(t_address,t_struct(BitMap)5840_storage)", + "contract": "Beliefs", + "src": "src/Beliefs/Beliefs.sol:14" + }, + { + "label": "_believers", + "offset": 0, + "slot": "456", + "type": "t_array(t_address)dyn_storage", + "contract": "Beliefs", + "src": "src/Beliefs/Beliefs.sol:16" + }, + { + "label": "balances", + "offset": 0, + "slot": "457", + "type": "t_mapping(t_address,t_uint256)", + "contract": "Beliefs", + "src": "src/Beliefs/Beliefs.sol:18" + }, + { + "label": "futureFundFee", + "offset": 0, + "slot": "458", + "type": "t_uint256", + "contract": "Beliefs", + "src": "src/Beliefs/Beliefs.sol:20" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_address)dyn_storage": { + "label": "address[]", + "numberOfBytes": "32" + }, + "t_array(t_uint256)47_storage": { + "label": "uint256[47]", + "numberOfBytes": "1504" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_enum(EditionStatus)7136": { + "label": "enum EditionsStructs.EditionStatus", + "members": [ + "NotCreated", + "Created", + "Launched", + "Stopped" + ], + "numberOfBytes": "1" + }, + "t_mapping(t_address,t_bool)": { + "label": "mapping(address => bool)", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_mapping(t_address,t_bool))": { + "label": "mapping(address => mapping(address => bool))", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_struct(BitMap)5840_storage)": { + "label": "mapping(address => struct BitMaps.BitMap)", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_uint256)": { + "label": "mapping(address => uint256)", + "numberOfBytes": "32" + }, + "t_mapping(t_bytes32,t_struct(RoleData)34_storage)": { + "label": "mapping(bytes32 => struct AccessControlUpgradeable.RoleData)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_mapping(t_address,t_uint256))": { + "label": "mapping(uint256 => mapping(address => uint256))", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_struct(Edition)7150_storage)": { + "label": "mapping(uint256 => struct EditionsStructs.Edition)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_uint256)": { + "label": "mapping(uint256 => uint256)", + "numberOfBytes": "32" + }, + "t_string_storage": { + "label": "string", + "numberOfBytes": "32" + }, + "t_struct(BitMap)5840_storage": { + "label": "struct BitMaps.BitMap", + "members": [ + { + "label": "_data", + "type": "t_mapping(t_uint256,t_uint256)", + "offset": 0, + "slot": "0" + } + ], + "numberOfBytes": "32" + }, + "t_struct(Edition)7150_storage": { + "label": "struct EditionsStructs.Edition", + "members": [ + { + "label": "status", + "type": "t_enum(EditionStatus)7136", + "offset": 0, + "slot": "0" + }, + { + "label": "fee", + "type": "t_uint256", + "offset": 0, + "slot": "1" + }, + { + "label": "balance", + "type": "t_uint256", + "offset": 0, + "slot": "2" + }, + { + "label": "owner", + "type": "t_address", + "offset": 0, + "slot": "3" + }, + { + "label": "id", + "type": "t_string_storage", + "offset": 0, + "slot": "4" + }, + { + "label": "briefId", + "type": "t_string_storage", + "offset": 0, + "slot": "5" + } + ], + "numberOfBytes": "192" + }, + "t_struct(RoleData)34_storage": { + "label": "struct AccessControlUpgradeable.RoleData", + "members": [ + { + "label": "members", + "type": "t_mapping(t_address,t_bool)", + "offset": 0, + "slot": "0" + }, + { + "label": "adminRole", + "type": "t_bytes32", + "offset": 0, + "slot": "1" + } + ], + "numberOfBytes": "64" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + }, + "layoutVersion": "1.2", + "flat": true + }, + "solcVersion": "0.8.19" + }, + "src/Beliefs/IBeliefs.sol:IBeliefs": { + "src": "src/Beliefs/IBeliefs.sol:8", + "inherit": [], + "libraries": [], + "methods": [ + "believeProject(uint256,string)", + "removeBelief(uint256)" + ], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [], + "types": {}, + "layoutVersion": "1.2", + "flat": false + }, + "solcVersion": "0.8.19" + }, + "src/Beliefs/LibBeliefs.sol:LibBeliefs": { + "src": "src/Beliefs/LibBeliefs.sol:10", + "version": { + "withMetadata": "843639894817b706f995835824619c9af3d022afffe779dc16fc7c5d61f0a30c", + "withoutMetadata": "a64c6cf9c6ba9368f5132c93a0196b3204a7963dbb4dd05dfddb4ab23126b8db", + "linkedWithoutMetadata": "a64c6cf9c6ba9368f5132c93a0196b3204a7963dbb4dd05dfddb4ab23126b8db" + }, + "inherit": [], + "libraries": [ + "lib/openzeppelin-contracts/contracts/utils/Strings.sol:Strings" + ], + "methods": [], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [], + "types": {}, + "layoutVersion": "1.2", + "flat": false + }, + "solcVersion": "0.8.19" + }, + "src/Editions/Editions.sol:Editions": { + "src": "src/Editions/Editions.sol:21", + "version": { + "withMetadata": "e1d4244c692afba9a2af5dc842f6004e1f3c9fa85e28d9e1aba8007e44c27d47", + "withoutMetadata": "89c7431634ef7a27eb602659f997187af240a526a71ab08f12eb3494d91dbc94", + "linkedWithoutMetadata": "89c7431634ef7a27eb602659f997187af240a526a71ab08f12eb3494d91dbc94" + }, + "inherit": [ + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol:UUPSUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol:ERC1967UpgradeUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol:IERC1967Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol:IERC1822ProxiableUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155SupplyUpgradeable.sol:ERC1155SupplyUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155BurnableUpgradeable.sol:ERC1155BurnableUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/security/PausableUpgradeable.sol:PausableUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol:AccessControlUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:ERC1155Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/IERC1155MetadataURIUpgradeable.sol:IERC1155MetadataURIUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/IERC1155Upgradeable.sol:IERC1155Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol:ERC165Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol:IERC165Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol:IAccessControlUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:ContextUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:Initializable", + "src/Editions/IEditions.sol:IEditions" + ], + "libraries": [ + "src/Editions/EditionsRoles.sol:EditionsRoles", + "src/Editions/EditionsStructs.sol:EditionsStructs" + ], + "methods": [ + "()", + "()", + "()", + "initialize()", + "pause()", + "unpause()", + "getEditions()", + "getBalances(address)", + "grantRole(bytes32,address)", + "approveEdition(uint256)", + "withdrawFunds(uint256)", + "updateEdition(uint256,string,string)", + "mintEdition(uint256,uint256,address,bytes)", + "createEdition(uint256,address,address,string,string)", + "withdrawEditionBalance(uint256,uint256)", + "stopEdition(uint256)", + "resumeEdition(uint256)", + "supportsInterface(bytes4)" + ], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:36" + }, + { + "label": "__gap", + "offset": 0, + "slot": "51", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC165Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol:41" + }, + { + "label": "_balances", + "offset": 0, + "slot": "101", + "type": "t_mapping(t_uint256,t_mapping(t_address,t_uint256))", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:25" + }, + { + "label": "_operatorApprovals", + "offset": 0, + "slot": "102", + "type": "t_mapping(t_address,t_mapping(t_address,t_bool))", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:28" + }, + { + "label": "_uri", + "offset": 0, + "slot": "103", + "type": "t_string_storage", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:31" + }, + { + "label": "__gap", + "offset": 0, + "slot": "104", + "type": "t_array(t_uint256)47_storage", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:508" + }, + { + "label": "_roles", + "offset": 0, + "slot": "151", + "type": "t_mapping(t_bytes32,t_struct(RoleData)34_storage)", + "contract": "AccessControlUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol:62" + }, + { + "label": "__gap", + "offset": 0, + "slot": "152", + "type": "t_array(t_uint256)49_storage", + "contract": "AccessControlUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol:260" + }, + { + "label": "_paused", + "offset": 0, + "slot": "201", + "type": "t_bool", + "contract": "PausableUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/security/PausableUpgradeable.sol:29" + }, + { + "label": "__gap", + "offset": 0, + "slot": "202", + "type": "t_array(t_uint256)49_storage", + "contract": "PausableUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/security/PausableUpgradeable.sol:116" + }, + { + "label": "__gap", + "offset": 0, + "slot": "251", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC1155BurnableUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155BurnableUpgradeable.sol:44" + }, + { + "label": "_totalSupply", + "offset": 0, + "slot": "301", + "type": "t_mapping(t_uint256,t_uint256)", + "contract": "ERC1155SupplyUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155SupplyUpgradeable.sol:23" + }, + { + "label": "__gap", + "offset": 0, + "slot": "302", + "type": "t_array(t_uint256)49_storage", + "contract": "ERC1155SupplyUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155SupplyUpgradeable.sol:76" + }, + { + "label": "__gap", + "offset": 0, + "slot": "351", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC1967UpgradeUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol:169" + }, + { + "label": "__gap", + "offset": 0, + "slot": "401", + "type": "t_array(t_uint256)50_storage", + "contract": "UUPSUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol:111" + }, + { + "label": "protocolFee", + "offset": 0, + "slot": "451", + "type": "t_uint256", + "contract": "Editions", + "src": "src/Editions/Editions.sol:31" + }, + { + "label": "editions", + "offset": 0, + "slot": "452", + "type": "t_mapping(t_uint256,t_struct(Edition)7150_storage)", + "contract": "Editions", + "src": "src/Editions/Editions.sol:33" + }, + { + "label": "editionCounter", + "offset": 0, + "slot": "453", + "type": "t_uint256", + "contract": "Editions", + "src": "src/Editions/Editions.sol:35" + }, + { + "label": "maximumEditionFee", + "offset": 0, + "slot": "454", + "type": "t_uint256", + "contract": "Editions", + "src": "src/Editions/Editions.sol:37" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)47_storage": { + "label": "uint256[47]", + "numberOfBytes": "1504" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_enum(EditionStatus)7136": { + "label": "enum EditionsStructs.EditionStatus", + "members": [ + "NotCreated", + "Created", + "Launched", + "Stopped" + ], + "numberOfBytes": "1" + }, + "t_mapping(t_address,t_bool)": { + "label": "mapping(address => bool)", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_mapping(t_address,t_bool))": { + "label": "mapping(address => mapping(address => bool))", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_uint256)": { + "label": "mapping(address => uint256)", + "numberOfBytes": "32" + }, + "t_mapping(t_bytes32,t_struct(RoleData)34_storage)": { + "label": "mapping(bytes32 => struct AccessControlUpgradeable.RoleData)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_mapping(t_address,t_uint256))": { + "label": "mapping(uint256 => mapping(address => uint256))", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_struct(Edition)7150_storage)": { + "label": "mapping(uint256 => struct EditionsStructs.Edition)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_uint256)": { + "label": "mapping(uint256 => uint256)", + "numberOfBytes": "32" + }, + "t_string_storage": { + "label": "string", + "numberOfBytes": "32" + }, + "t_struct(Edition)7150_storage": { + "label": "struct EditionsStructs.Edition", + "members": [ + { + "label": "status", + "type": "t_enum(EditionStatus)7136", + "offset": 0, + "slot": "0" + }, + { + "label": "fee", + "type": "t_uint256", + "offset": 0, + "slot": "1" + }, + { + "label": "balance", + "type": "t_uint256", + "offset": 0, + "slot": "2" + }, + { + "label": "owner", + "type": "t_address", + "offset": 0, + "slot": "3" + }, + { + "label": "id", + "type": "t_string_storage", + "offset": 0, + "slot": "4" + }, + { + "label": "briefId", + "type": "t_string_storage", + "offset": 0, + "slot": "5" + } + ], + "numberOfBytes": "192" + }, + "t_struct(RoleData)34_storage": { + "label": "struct AccessControlUpgradeable.RoleData", + "members": [ + { + "label": "members", + "type": "t_mapping(t_address,t_bool)", + "offset": 0, + "slot": "0" + }, + { + "label": "adminRole", + "type": "t_bytes32", + "offset": 0, + "slot": "1" + } + ], + "numberOfBytes": "64" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + }, + "layoutVersion": "1.2", + "flat": true + }, + "solcVersion": "0.8.19" + }, + "src/Editions/EditionsRoles.sol:EditionsRoles": { + "src": "src/Editions/EditionsRoles.sol:4", + "version": { + "withMetadata": "003f83d928b71da5d46b4b6c8eeb0e59585bb0eba3ccca7fc37399fa03dedcf8", + "withoutMetadata": "9b1e3f717c60303bcfb97dbda55ced75265794726ef5635f998788385ce65799", + "linkedWithoutMetadata": "9b1e3f717c60303bcfb97dbda55ced75265794726ef5635f998788385ce65799" + }, + "inherit": [], + "libraries": [], + "methods": [], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [], + "types": {}, + "layoutVersion": "1.2", + "flat": false + }, + "solcVersion": "0.8.19" + }, + "src/Editions/EditionsStructs.sol:EditionsStructs": { + "src": "src/Editions/EditionsStructs.sol:15", + "version": { + "withMetadata": "deec5aedb692a4a22e41531d1d96043c93b8b681bbae7110d4e842651ef28f84", + "withoutMetadata": "a64c6cf9c6ba9368f5132c93a0196b3204a7963dbb4dd05dfddb4ab23126b8db", + "linkedWithoutMetadata": "a64c6cf9c6ba9368f5132c93a0196b3204a7963dbb4dd05dfddb4ab23126b8db" + }, + "inherit": [], + "libraries": [], + "methods": [], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [], + "types": {}, + "layoutVersion": "1.2", + "flat": false + }, + "solcVersion": "0.8.19" + }, + "src/Editions/IEditions.sol:IEditions": { + "src": "src/Editions/IEditions.sol:7", + "inherit": [], + "libraries": [], + "methods": [ + "getEditions()", + "getBalances(address)", + "approveEdition(uint256)", + "withdrawFunds(uint256)", + "updateEdition(uint256,string,string)", + "createEdition(uint256,address,address,string,string)", + "withdrawEditionBalance(uint256,uint256)", + "stopEdition(uint256)", + "resumeEdition(uint256)", + "mintEdition(uint256,uint256,address,bytes)" + ], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [], + "types": {}, + "layoutVersion": "1.2", + "flat": false + }, + "solcVersion": "0.8.19" + }, + "src/IRadarEditions.sol:IRadarEditions": { + "src": "src/IRadarEditions.sol:9", + "inherit": [], + "libraries": [], + "methods": [ + "setURI(string)", + "setProtocolFee(uint256)", + "setMaximumEditionFee(uint256)", + "setFutureFundFee(uint256)" + ], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [], + "types": {}, + "layoutVersion": "1.2", + "flat": false + }, + "solcVersion": "0.8.19" + }, + "src/RadarEditions.sol:RadarEditions": { + "src": "src/RadarEditions.sol:10", + "version": { + "withMetadata": "76f2edd4073098fe738354beef872b1d016c82db018848c6c813b3ffddda1cd8", + "withoutMetadata": "2c27507075b584c3b7be8011c82f4181fe00c6ae897be80d9d08114e24fd2c5f", + "linkedWithoutMetadata": "2c27507075b584c3b7be8011c82f4181fe00c6ae897be80d9d08114e24fd2c5f" + }, + "inherit": [ + "src/Beliefs/Beliefs.sol:Beliefs", + "src/Editions/Editions.sol:Editions", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol:UUPSUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol:ERC1967UpgradeUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol:IERC1967Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol:IERC1822ProxiableUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155SupplyUpgradeable.sol:ERC1155SupplyUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155BurnableUpgradeable.sol:ERC1155BurnableUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/security/PausableUpgradeable.sol:PausableUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol:AccessControlUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:ERC1155Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/IERC1155MetadataURIUpgradeable.sol:IERC1155MetadataURIUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/IERC1155Upgradeable.sol:IERC1155Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol:ERC165Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol:IERC165Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol:IAccessControlUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:ContextUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:Initializable", + "src/Editions/IEditions.sol:IEditions", + "src/Beliefs/IBeliefs.sol:IBeliefs", + "src/IRadarEditions.sol:IRadarEditions" + ], + "libraries": [ + "lib/openzeppelin-contracts/contracts/utils/Strings.sol:Strings", + "src/Editions/EditionsRoles.sol:EditionsRoles" + ], + "methods": [ + "contractURI()", + "uri(uint256)", + "setURI(string)", + "setProtocolFee(uint256)", + "setMaximumEditionFee(uint256)", + "setFutureFundFee(uint256)" + ], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:36" + }, + { + "label": "__gap", + "offset": 0, + "slot": "51", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC165Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol:41" + }, + { + "label": "_balances", + "offset": 0, + "slot": "101", + "type": "t_mapping(t_uint256,t_mapping(t_address,t_uint256))", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:25" + }, + { + "label": "_operatorApprovals", + "offset": 0, + "slot": "102", + "type": "t_mapping(t_address,t_mapping(t_address,t_bool))", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:28" + }, + { + "label": "_uri", + "offset": 0, + "slot": "103", + "type": "t_string_storage", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:31" + }, + { + "label": "__gap", + "offset": 0, + "slot": "104", + "type": "t_array(t_uint256)47_storage", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:508" + }, + { + "label": "_roles", + "offset": 0, + "slot": "151", + "type": "t_mapping(t_bytes32,t_struct(RoleData)34_storage)", + "contract": "AccessControlUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol:62" + }, + { + "label": "__gap", + "offset": 0, + "slot": "152", + "type": "t_array(t_uint256)49_storage", + "contract": "AccessControlUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol:260" + }, + { + "label": "_paused", + "offset": 0, + "slot": "201", + "type": "t_bool", + "contract": "PausableUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/security/PausableUpgradeable.sol:29" + }, + { + "label": "__gap", + "offset": 0, + "slot": "202", + "type": "t_array(t_uint256)49_storage", + "contract": "PausableUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/security/PausableUpgradeable.sol:116" + }, + { + "label": "__gap", + "offset": 0, + "slot": "251", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC1155BurnableUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155BurnableUpgradeable.sol:44" + }, + { + "label": "_totalSupply", + "offset": 0, + "slot": "301", + "type": "t_mapping(t_uint256,t_uint256)", + "contract": "ERC1155SupplyUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155SupplyUpgradeable.sol:23" + }, + { + "label": "__gap", + "offset": 0, + "slot": "302", + "type": "t_array(t_uint256)49_storage", + "contract": "ERC1155SupplyUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155SupplyUpgradeable.sol:76" + }, + { + "label": "__gap", + "offset": 0, + "slot": "351", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC1967UpgradeUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol:169" + }, + { + "label": "__gap", + "offset": 0, + "slot": "401", + "type": "t_array(t_uint256)50_storage", + "contract": "UUPSUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol:111" + }, + { + "label": "protocolFee", + "offset": 0, + "slot": "451", + "type": "t_uint256", + "contract": "Editions", + "src": "src/Editions/Editions.sol:31" + }, + { + "label": "editions", + "offset": 0, + "slot": "452", + "type": "t_mapping(t_uint256,t_struct(Edition)7150_storage)", + "contract": "Editions", + "src": "src/Editions/Editions.sol:33" + }, + { + "label": "editionCounter", + "offset": 0, + "slot": "453", + "type": "t_uint256", + "contract": "Editions", + "src": "src/Editions/Editions.sol:35" + }, + { + "label": "maximumEditionFee", + "offset": 0, + "slot": "454", + "type": "t_uint256", + "contract": "Editions", + "src": "src/Editions/Editions.sol:37" + }, + { + "label": "_beliefs", + "offset": 0, + "slot": "455", + "type": "t_mapping(t_address,t_struct(BitMap)5840_storage)", + "contract": "Beliefs", + "src": "src/Beliefs/Beliefs.sol:14" + }, + { + "label": "_believers", + "offset": 0, + "slot": "456", + "type": "t_array(t_address)dyn_storage", + "contract": "Beliefs", + "src": "src/Beliefs/Beliefs.sol:16" + }, + { + "label": "balances", + "offset": 0, + "slot": "457", + "type": "t_mapping(t_address,t_uint256)", + "contract": "Beliefs", + "src": "src/Beliefs/Beliefs.sol:18" + }, + { + "label": "futureFundFee", + "offset": 0, + "slot": "458", + "type": "t_uint256", + "contract": "Beliefs", + "src": "src/Beliefs/Beliefs.sol:20" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_address)dyn_storage": { + "label": "address[]", + "numberOfBytes": "32" + }, + "t_array(t_uint256)47_storage": { + "label": "uint256[47]", + "numberOfBytes": "1504" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_enum(EditionStatus)7136": { + "label": "enum EditionsStructs.EditionStatus", + "members": [ + "NotCreated", + "Created", + "Launched", + "Stopped" + ], + "numberOfBytes": "1" + }, + "t_mapping(t_address,t_bool)": { + "label": "mapping(address => bool)", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_mapping(t_address,t_bool))": { + "label": "mapping(address => mapping(address => bool))", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_struct(BitMap)5840_storage)": { + "label": "mapping(address => struct BitMaps.BitMap)", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_uint256)": { + "label": "mapping(address => uint256)", + "numberOfBytes": "32" + }, + "t_mapping(t_bytes32,t_struct(RoleData)34_storage)": { + "label": "mapping(bytes32 => struct AccessControlUpgradeable.RoleData)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_mapping(t_address,t_uint256))": { + "label": "mapping(uint256 => mapping(address => uint256))", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_struct(Edition)7150_storage)": { + "label": "mapping(uint256 => struct EditionsStructs.Edition)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_uint256)": { + "label": "mapping(uint256 => uint256)", + "numberOfBytes": "32" + }, + "t_string_storage": { + "label": "string", + "numberOfBytes": "32" + }, + "t_struct(BitMap)5840_storage": { + "label": "struct BitMaps.BitMap", + "members": [ + { + "label": "_data", + "type": "t_mapping(t_uint256,t_uint256)", + "offset": 0, + "slot": "0" + } + ], + "numberOfBytes": "32" + }, + "t_struct(Edition)7150_storage": { + "label": "struct EditionsStructs.Edition", + "members": [ + { + "label": "status", + "type": "t_enum(EditionStatus)7136", + "offset": 0, + "slot": "0" + }, + { + "label": "fee", + "type": "t_uint256", + "offset": 0, + "slot": "1" + }, + { + "label": "balance", + "type": "t_uint256", + "offset": 0, + "slot": "2" + }, + { + "label": "owner", + "type": "t_address", + "offset": 0, + "slot": "3" + }, + { + "label": "id", + "type": "t_string_storage", + "offset": 0, + "slot": "4" + }, + { + "label": "briefId", + "type": "t_string_storage", + "offset": 0, + "slot": "5" + } + ], + "numberOfBytes": "192" + }, + "t_struct(RoleData)34_storage": { + "label": "struct AccessControlUpgradeable.RoleData", + "members": [ + { + "label": "members", + "type": "t_mapping(t_address,t_bool)", + "offset": 0, + "slot": "0" + }, + { + "label": "adminRole", + "type": "t_bytes32", + "offset": 0, + "slot": "1" + } + ], + "numberOfBytes": "64" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + }, + "layoutVersion": "1.2", + "flat": true + }, + "solcVersion": "0.8.19" + } + }, + { + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol:AccessControlUpgradeable": { + "src": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol:51", + "inherit": [ + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol:ERC165Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol:IERC165Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol:IAccessControlUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:ContextUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:Initializable" + ], + "libraries": [ + "lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol:StringsUpgradeable" + ], + "methods": [ + "supportsInterface(bytes4)", + "hasRole(bytes32,address)", + "getRoleAdmin(bytes32)", + "grantRole(bytes32,address)", + "revokeRole(bytes32,address)", + "renounceRole(bytes32,address)" + ], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:36" + }, + { + "label": "__gap", + "offset": 0, + "slot": "51", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC165Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol:41" + }, + { + "label": "_roles", + "offset": 0, + "slot": "101", + "type": "t_mapping(t_bytes32,t_struct(RoleData)34_storage)", + "contract": "AccessControlUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol:62" + }, + { + "label": "__gap", + "offset": 0, + "slot": "102", + "type": "t_array(t_uint256)49_storage", + "contract": "AccessControlUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol:260" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_bool)": { + "label": "mapping(address => bool)", + "numberOfBytes": "32" + }, + "t_mapping(t_bytes32,t_struct(RoleData)34_storage)": { + "label": "mapping(bytes32 => struct AccessControlUpgradeable.RoleData)", + "numberOfBytes": "32" + }, + "t_struct(RoleData)34_storage": { + "label": "struct AccessControlUpgradeable.RoleData", + "members": [ + { + "label": "members", + "type": "t_mapping(t_address,t_bool)", + "offset": 0, + "slot": "0" + }, + { + "label": "adminRole", + "type": "t_bytes32", + "offset": 0, + "slot": "1" + } + ], + "numberOfBytes": "64" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + }, + "layoutVersion": "1.2", + "flat": true + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol:IAccessControlUpgradeable": { + "src": "lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol:9", + "inherit": [], + "libraries": [], + "methods": [ + "hasRole(bytes32,address)", + "getRoleAdmin(bytes32)", + "grantRole(bytes32,address)", + "revokeRole(bytes32,address)", + "renounceRole(bytes32,address)" + ], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [], + "types": {}, + "layoutVersion": "1.2", + "flat": false + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol:IERC1967Upgradeable": { + "src": "lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol:11", + "inherit": [], + "libraries": [], + "methods": [], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [], + "types": {}, + "layoutVersion": "1.2", + "flat": false + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol:IERC1822ProxiableUpgradeable": { + "src": "lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol:10", + "inherit": [], + "libraries": [], + "methods": [ + "proxiableUUID()" + ], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [], + "types": {}, + "layoutVersion": "1.2", + "flat": false + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol:ERC1967UpgradeUpgradeable": { + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol:19", + "inherit": [ + "lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol:IERC1967Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:Initializable" + ], + "libraries": [ + "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol:StorageSlotUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol:AddressUpgradeable" + ], + "methods": [], + "linkReferences": [], + "errors": [ + { + "kind": "delegatecall", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol:185" + }, + { + "kind": "delegatecall", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol:185" + }, + { + "kind": "delegatecall", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol:185" + } + ], + "layout": { + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC1967UpgradeUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol:169" + } + ], + "types": { + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + }, + "layoutVersion": "1.2", + "flat": true + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol:IBeaconUpgradeable": { + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol:9", + "inherit": [], + "libraries": [], + "methods": [ + "implementation()" + ], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [], + "types": {}, + "layoutVersion": "1.2", + "flat": false + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:Initializable": { + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:58", + "inherit": [], + "libraries": [ + "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol:AddressUpgradeable" + ], + "methods": [], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:68" + } + ], + "types": { + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + }, + "layoutVersion": "1.2", + "flat": true + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol:UUPSUpgradeable": { + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol:22", + "inherit": [ + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol:ERC1967UpgradeUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol:IERC1967Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol:IERC1822ProxiableUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:Initializable" + ], + "libraries": [], + "methods": [ + "proxiableUUID()", + "upgradeTo(address)", + "upgradeToAndCall(address,bytes)" + ], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC1967UpgradeUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol:169" + }, + { + "label": "__gap", + "offset": 0, + "slot": "51", + "type": "t_array(t_uint256)50_storage", + "contract": "UUPSUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol:111" + } + ], + "types": { + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + }, + "layoutVersion": "1.2", + "flat": true + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts-upgradeable/contracts/security/PausableUpgradeable.sol:PausableUpgradeable": { + "src": "lib/openzeppelin-contracts-upgradeable/contracts/security/PausableUpgradeable.sol:18", + "inherit": [ + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:ContextUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:Initializable" + ], + "libraries": [], + "methods": [ + "paused()" + ], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:36" + }, + { + "label": "_paused", + "offset": 0, + "slot": "51", + "type": "t_bool", + "contract": "PausableUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/security/PausableUpgradeable.sol:29" + }, + { + "label": "__gap", + "offset": 0, + "slot": "52", + "type": "t_array(t_uint256)49_storage", + "contract": "PausableUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/security/PausableUpgradeable.sol:116" + } + ], + "types": { + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + }, + "layoutVersion": "1.2", + "flat": true + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:ERC1155Upgradeable": { + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:21", + "version": { + "withMetadata": "edcb753dd57442a00102926fc63ae83a9b97bcb6ce645e13e2a1ca05ea67d986", + "withoutMetadata": "52f5fba6fb0bed0f97581f696b77a6aa7a382a7ec20adf954f89c5bd390b00e5", + "linkedWithoutMetadata": "52f5fba6fb0bed0f97581f696b77a6aa7a382a7ec20adf954f89c5bd390b00e5" + }, + "inherit": [ + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/IERC1155MetadataURIUpgradeable.sol:IERC1155MetadataURIUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/IERC1155Upgradeable.sol:IERC1155Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol:ERC165Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol:IERC165Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:ContextUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:Initializable" + ], + "libraries": [ + "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol:AddressUpgradeable" + ], + "methods": [ + "supportsInterface(bytes4)", + "uri(uint256)", + "balanceOf(address,uint256)", + "balanceOfBatch(address[],uint256[])", + "setApprovalForAll(address,bool)", + "isApprovedForAll(address,address)", + "safeTransferFrom(address,address,uint256,uint256,bytes)", + "safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)" + ], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:36" + }, + { + "label": "__gap", + "offset": 0, + "slot": "51", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC165Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol:41" + }, + { + "label": "_balances", + "offset": 0, + "slot": "101", + "type": "t_mapping(t_uint256,t_mapping(t_address,t_uint256))", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:25" + }, + { + "label": "_operatorApprovals", + "offset": 0, + "slot": "102", + "type": "t_mapping(t_address,t_mapping(t_address,t_bool))", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:28" + }, + { + "label": "_uri", + "offset": 0, + "slot": "103", + "type": "t_string_storage", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:31" + }, + { + "label": "__gap", + "offset": 0, + "slot": "104", + "type": "t_array(t_uint256)47_storage", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:508" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)47_storage": { + "label": "uint256[47]", + "numberOfBytes": "1504" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_mapping(t_address,t_bool)": { + "label": "mapping(address => bool)", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_mapping(t_address,t_bool))": { + "label": "mapping(address => mapping(address => bool))", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_uint256)": { + "label": "mapping(address => uint256)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_mapping(t_address,t_uint256))": { + "label": "mapping(uint256 => mapping(address => uint256))", + "numberOfBytes": "32" + }, + "t_string_storage": { + "label": "string", + "numberOfBytes": "32" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + }, + "layoutVersion": "1.2", + "flat": true + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/IERC1155ReceiverUpgradeable.sol:IERC1155ReceiverUpgradeable": { + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/IERC1155ReceiverUpgradeable.sol:11", + "inherit": [ + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol:IERC165Upgradeable" + ], + "libraries": [], + "methods": [ + "onERC1155Received(address,address,uint256,uint256,bytes)", + "onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)" + ], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [], + "types": {}, + "layoutVersion": "1.2", + "flat": false + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/IERC1155Upgradeable.sol:IERC1155Upgradeable": { + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/IERC1155Upgradeable.sol:14", + "inherit": [ + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol:IERC165Upgradeable" + ], + "libraries": [], + "methods": [ + "balanceOf(address,uint256)", + "balanceOfBatch(address[],uint256[])", + "setApprovalForAll(address,bool)", + "isApprovedForAll(address,address)", + "safeTransferFrom(address,address,uint256,uint256,bytes)", + "safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)" + ], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [], + "types": {}, + "layoutVersion": "1.2", + "flat": false + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155BurnableUpgradeable.sol:ERC1155BurnableUpgradeable": { + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155BurnableUpgradeable.sol:15", + "inherit": [ + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:ERC1155Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/IERC1155MetadataURIUpgradeable.sol:IERC1155MetadataURIUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/IERC1155Upgradeable.sol:IERC1155Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol:ERC165Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol:IERC165Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:ContextUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:Initializable" + ], + "libraries": [], + "methods": [ + "burn(address,uint256,uint256)", + "burnBatch(address,uint256[],uint256[])" + ], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:36" + }, + { + "label": "__gap", + "offset": 0, + "slot": "51", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC165Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol:41" + }, + { + "label": "_balances", + "offset": 0, + "slot": "101", + "type": "t_mapping(t_uint256,t_mapping(t_address,t_uint256))", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:25" + }, + { + "label": "_operatorApprovals", + "offset": 0, + "slot": "102", + "type": "t_mapping(t_address,t_mapping(t_address,t_bool))", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:28" + }, + { + "label": "_uri", + "offset": 0, + "slot": "103", + "type": "t_string_storage", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:31" + }, + { + "label": "__gap", + "offset": 0, + "slot": "104", + "type": "t_array(t_uint256)47_storage", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:508" + }, + { + "label": "__gap", + "offset": 0, + "slot": "151", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC1155BurnableUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155BurnableUpgradeable.sol:44" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)47_storage": { + "label": "uint256[47]", + "numberOfBytes": "1504" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_mapping(t_address,t_bool)": { + "label": "mapping(address => bool)", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_mapping(t_address,t_bool))": { + "label": "mapping(address => mapping(address => bool))", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_uint256)": { + "label": "mapping(address => uint256)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_mapping(t_address,t_uint256))": { + "label": "mapping(uint256 => mapping(address => uint256))", + "numberOfBytes": "32" + }, + "t_string_storage": { + "label": "string", + "numberOfBytes": "32" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + }, + "layoutVersion": "1.2", + "flat": true + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155SupplyUpgradeable.sol:ERC1155SupplyUpgradeable": { + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155SupplyUpgradeable.sol:17", + "inherit": [ + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:ERC1155Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/IERC1155MetadataURIUpgradeable.sol:IERC1155MetadataURIUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/IERC1155Upgradeable.sol:IERC1155Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol:ERC165Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol:IERC165Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:ContextUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:Initializable" + ], + "libraries": [], + "methods": [ + "totalSupply(uint256)", + "exists(uint256)" + ], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:36" + }, + { + "label": "__gap", + "offset": 0, + "slot": "51", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC165Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol:41" + }, + { + "label": "_balances", + "offset": 0, + "slot": "101", + "type": "t_mapping(t_uint256,t_mapping(t_address,t_uint256))", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:25" + }, + { + "label": "_operatorApprovals", + "offset": 0, + "slot": "102", + "type": "t_mapping(t_address,t_mapping(t_address,t_bool))", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:28" + }, + { + "label": "_uri", + "offset": 0, + "slot": "103", + "type": "t_string_storage", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:31" + }, + { + "label": "__gap", + "offset": 0, + "slot": "104", + "type": "t_array(t_uint256)47_storage", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:508" + }, + { + "label": "_totalSupply", + "offset": 0, + "slot": "151", + "type": "t_mapping(t_uint256,t_uint256)", + "contract": "ERC1155SupplyUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155SupplyUpgradeable.sol:23" + }, + { + "label": "__gap", + "offset": 0, + "slot": "152", + "type": "t_array(t_uint256)49_storage", + "contract": "ERC1155SupplyUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155SupplyUpgradeable.sol:76" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)47_storage": { + "label": "uint256[47]", + "numberOfBytes": "1504" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_mapping(t_address,t_bool)": { + "label": "mapping(address => bool)", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_mapping(t_address,t_bool))": { + "label": "mapping(address => mapping(address => bool))", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_uint256)": { + "label": "mapping(address => uint256)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_mapping(t_address,t_uint256))": { + "label": "mapping(uint256 => mapping(address => uint256))", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_uint256)": { + "label": "mapping(uint256 => uint256)", + "numberOfBytes": "32" + }, + "t_string_storage": { + "label": "string", + "numberOfBytes": "32" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + }, + "layoutVersion": "1.2", + "flat": true + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/IERC1155MetadataURIUpgradeable.sol:IERC1155MetadataURIUpgradeable": { + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/IERC1155MetadataURIUpgradeable.sol:14", + "inherit": [ + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/IERC1155Upgradeable.sol:IERC1155Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol:IERC165Upgradeable" + ], + "libraries": [], + "methods": [ + "uri(uint256)" + ], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [], + "types": {}, + "layoutVersion": "1.2", + "flat": false + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol:AddressUpgradeable": { + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol:9", + "version": { + "withMetadata": "15ad4eca408248ad9037eada47f4740bc0339230a12a639cc7f657338bda8df5", + "withoutMetadata": "a64c6cf9c6ba9368f5132c93a0196b3204a7963dbb4dd05dfddb4ab23126b8db", + "linkedWithoutMetadata": "a64c6cf9c6ba9368f5132c93a0196b3204a7963dbb4dd05dfddb4ab23126b8db" + }, + "inherit": [], + "libraries": [], + "methods": [], + "linkReferences": [], + "errors": [ + { + "kind": "delegatecall", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol:185" + }, + { + "kind": "delegatecall", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol:185" + } + ], + "layout": { + "storage": [], + "types": {}, + "layoutVersion": "1.2", + "flat": false + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:ContextUpgradeable": { + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:17", + "inherit": [ + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:Initializable" + ], + "libraries": [], + "methods": [], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:36" + } + ], + "types": { + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + }, + "layoutVersion": "1.2", + "flat": true + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol:StorageSlotUpgradeable": { + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol:34", + "version": { + "withMetadata": "814c232ccd1886959fdc61f1151d090d6eb5f47c849aa4d654eccb58f80733a4", + "withoutMetadata": "a64c6cf9c6ba9368f5132c93a0196b3204a7963dbb4dd05dfddb4ab23126b8db", + "linkedWithoutMetadata": "a64c6cf9c6ba9368f5132c93a0196b3204a7963dbb4dd05dfddb4ab23126b8db" + }, + "inherit": [], + "libraries": [], + "methods": [], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [], + "types": {}, + "layoutVersion": "1.2", + "flat": false + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol:StringsUpgradeable": { + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol:12", + "version": { + "withMetadata": "57c525b677abc35ef0a29d17a276edb550036c9ab9eaf87d76b2cc6bc8ebfee0", + "withoutMetadata": "a64c6cf9c6ba9368f5132c93a0196b3204a7963dbb4dd05dfddb4ab23126b8db", + "linkedWithoutMetadata": "a64c6cf9c6ba9368f5132c93a0196b3204a7963dbb4dd05dfddb4ab23126b8db" + }, + "inherit": [], + "libraries": [ + "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol:MathUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol:SignedMathUpgradeable" + ], + "methods": [], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [], + "types": {}, + "layoutVersion": "1.2", + "flat": false + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol:ERC165Upgradeable": { + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol:23", + "inherit": [ + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol:IERC165Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:Initializable" + ], + "libraries": [], + "methods": [ + "supportsInterface(bytes4)" + ], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC165Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol:41" + } + ], + "types": { + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + }, + "layoutVersion": "1.2", + "flat": true + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol:IERC165Upgradeable": { + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol:15", + "inherit": [], + "libraries": [], + "methods": [ + "supportsInterface(bytes4)" + ], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [], + "types": {}, + "layoutVersion": "1.2", + "flat": false + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol:MathUpgradeable": { + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol:9", + "version": { + "withMetadata": "3b20a636fdd145f3824263a01d7916cc4b4db4adf482514d43f1051b3a09b434", + "withoutMetadata": "a64c6cf9c6ba9368f5132c93a0196b3204a7963dbb4dd05dfddb4ab23126b8db", + "linkedWithoutMetadata": "a64c6cf9c6ba9368f5132c93a0196b3204a7963dbb4dd05dfddb4ab23126b8db" + }, + "inherit": [], + "libraries": [], + "methods": [], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [], + "types": {}, + "layoutVersion": "1.2", + "flat": false + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol:SignedMathUpgradeable": { + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol:9", + "version": { + "withMetadata": "1fce107b699edd489c9811ee46ce6f047b2d7be8def5d1655bed0168faa06b27", + "withoutMetadata": "a64c6cf9c6ba9368f5132c93a0196b3204a7963dbb4dd05dfddb4ab23126b8db", + "linkedWithoutMetadata": "a64c6cf9c6ba9368f5132c93a0196b3204a7963dbb4dd05dfddb4ab23126b8db" + }, + "inherit": [], + "libraries": [], + "methods": [], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [], + "types": {}, + "layoutVersion": "1.2", + "flat": false + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts/contracts/utils/Strings.sol:Strings": { + "src": "lib/openzeppelin-contracts/contracts/utils/Strings.sol:12", + "version": { + "withMetadata": "898b2ef030f9983e69c4d4758a49a73f4bb4aa4a25fd398d372a9fe1f50ef642", + "withoutMetadata": "a64c6cf9c6ba9368f5132c93a0196b3204a7963dbb4dd05dfddb4ab23126b8db", + "linkedWithoutMetadata": "a64c6cf9c6ba9368f5132c93a0196b3204a7963dbb4dd05dfddb4ab23126b8db" + }, + "inherit": [], + "libraries": [ + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol:Math", + "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol:SignedMath" + ], + "methods": [], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [], + "types": {}, + "layoutVersion": "1.2", + "flat": false + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol:Math": { + "src": "lib/openzeppelin-contracts/contracts/utils/math/Math.sol:9", + "version": { + "withMetadata": "a89fe7c1d1ca335dc6e267f514c3765f89c55a0917e566ff379d906fdd9b990f", + "withoutMetadata": "a64c6cf9c6ba9368f5132c93a0196b3204a7963dbb4dd05dfddb4ab23126b8db", + "linkedWithoutMetadata": "a64c6cf9c6ba9368f5132c93a0196b3204a7963dbb4dd05dfddb4ab23126b8db" + }, + "inherit": [], + "libraries": [], + "methods": [], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [], + "types": {}, + "layoutVersion": "1.2", + "flat": false + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol:SignedMath": { + "src": "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol:9", + "version": { + "withMetadata": "4d486057055063ce9fc564e30e1fe5273234ba324944b5f686fb39dc337d0faf", + "withoutMetadata": "a64c6cf9c6ba9368f5132c93a0196b3204a7963dbb4dd05dfddb4ab23126b8db", + "linkedWithoutMetadata": "a64c6cf9c6ba9368f5132c93a0196b3204a7963dbb4dd05dfddb4ab23126b8db" + }, + "inherit": [], + "libraries": [], + "methods": [], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [], + "types": {}, + "layoutVersion": "1.2", + "flat": false + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts/contracts/utils/structs/BitMaps.sol:BitMaps": { + "src": "lib/openzeppelin-contracts/contracts/utils/structs/BitMaps.sol:9", + "version": { + "withMetadata": "13e2d37e24fde5239bc9c5228f8feb3bde7dbdd0210134f9c6840abe44b5b0fd", + "withoutMetadata": "a64c6cf9c6ba9368f5132c93a0196b3204a7963dbb4dd05dfddb4ab23126b8db", + "linkedWithoutMetadata": "a64c6cf9c6ba9368f5132c93a0196b3204a7963dbb4dd05dfddb4ab23126b8db" + }, + "inherit": [], + "libraries": [], + "methods": [], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [], + "types": {}, + "layoutVersion": "1.2", + "flat": false + }, + "solcVersion": "0.8.19" + }, + "src/Beliefs/Beliefs.sol:Beliefs": { + "src": "src/Beliefs/Beliefs.sol:12", + "version": { + "withMetadata": "e103b56cd8b617a3bee335dcf5c58e22ff98f8f5d8cf72100e4cd7406e07b810", + "withoutMetadata": "920e7890bfbd63ba5debc5684ef5ccf58ebcc6b9b2c76e5e026a4ff0deecd076", + "linkedWithoutMetadata": "920e7890bfbd63ba5debc5684ef5ccf58ebcc6b9b2c76e5e026a4ff0deecd076" + }, + "inherit": [ + "src/Editions/Editions.sol:Editions", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol:UUPSUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol:ERC1967UpgradeUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol:IERC1967Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol:IERC1822ProxiableUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155SupplyUpgradeable.sol:ERC1155SupplyUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155BurnableUpgradeable.sol:ERC1155BurnableUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/security/PausableUpgradeable.sol:PausableUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol:AccessControlUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:ERC1155Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/IERC1155MetadataURIUpgradeable.sol:IERC1155MetadataURIUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/IERC1155Upgradeable.sol:IERC1155Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol:ERC165Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol:IERC165Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol:IAccessControlUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:ContextUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:Initializable", + "src/Editions/IEditions.sol:IEditions", + "src/Beliefs/IBeliefs.sol:IBeliefs" + ], + "libraries": [ + "src/Editions/EditionsStructs.sol:EditionsStructs", + "src/Beliefs/LibBeliefs.sol:LibBeliefs", + "lib/openzeppelin-contracts/contracts/utils/structs/BitMaps.sol:BitMaps" + ], + "methods": [ + "believeProject(uint256,string)", + "removeBelief(uint256)" + ], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:36" + }, + { + "label": "__gap", + "offset": 0, + "slot": "51", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC165Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol:41" + }, + { + "label": "_balances", + "offset": 0, + "slot": "101", + "type": "t_mapping(t_uint256,t_mapping(t_address,t_uint256))", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:25" + }, + { + "label": "_operatorApprovals", + "offset": 0, + "slot": "102", + "type": "t_mapping(t_address,t_mapping(t_address,t_bool))", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:28" + }, + { + "label": "_uri", + "offset": 0, + "slot": "103", + "type": "t_string_storage", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:31" + }, + { + "label": "__gap", + "offset": 0, + "slot": "104", + "type": "t_array(t_uint256)47_storage", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:508" + }, + { + "label": "_roles", + "offset": 0, + "slot": "151", + "type": "t_mapping(t_bytes32,t_struct(RoleData)34_storage)", + "contract": "AccessControlUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol:62" + }, + { + "label": "__gap", + "offset": 0, + "slot": "152", + "type": "t_array(t_uint256)49_storage", + "contract": "AccessControlUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol:260" + }, + { + "label": "_paused", + "offset": 0, + "slot": "201", + "type": "t_bool", + "contract": "PausableUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/security/PausableUpgradeable.sol:29" + }, + { + "label": "__gap", + "offset": 0, + "slot": "202", + "type": "t_array(t_uint256)49_storage", + "contract": "PausableUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/security/PausableUpgradeable.sol:116" + }, + { + "label": "__gap", + "offset": 0, + "slot": "251", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC1155BurnableUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155BurnableUpgradeable.sol:44" + }, + { + "label": "_totalSupply", + "offset": 0, + "slot": "301", + "type": "t_mapping(t_uint256,t_uint256)", + "contract": "ERC1155SupplyUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155SupplyUpgradeable.sol:23" + }, + { + "label": "__gap", + "offset": 0, + "slot": "302", + "type": "t_array(t_uint256)49_storage", + "contract": "ERC1155SupplyUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155SupplyUpgradeable.sol:76" + }, + { + "label": "__gap", + "offset": 0, + "slot": "351", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC1967UpgradeUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol:169" + }, + { + "label": "__gap", + "offset": 0, + "slot": "401", + "type": "t_array(t_uint256)50_storage", + "contract": "UUPSUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol:111" + }, + { + "label": "protocolFee", + "offset": 0, + "slot": "451", + "type": "t_uint256", + "contract": "Editions", + "src": "src/Editions/Editions.sol:31" + }, + { + "label": "editions", + "offset": 0, + "slot": "452", + "type": "t_mapping(t_uint256,t_struct(Edition)7150_storage)", + "contract": "Editions", + "src": "src/Editions/Editions.sol:33" + }, + { + "label": "editionCounter", + "offset": 0, + "slot": "453", + "type": "t_uint256", + "contract": "Editions", + "src": "src/Editions/Editions.sol:35" + }, + { + "label": "maximumEditionFee", + "offset": 0, + "slot": "454", + "type": "t_uint256", + "contract": "Editions", + "src": "src/Editions/Editions.sol:37" + }, + { + "label": "futureFundFee", + "offset": 0, + "slot": "455", + "type": "t_uint256", + "contract": "Beliefs", + "src": "src/Beliefs/Beliefs.sol:14" + }, + { + "label": "_beliefs", + "offset": 0, + "slot": "456", + "type": "t_mapping(t_address,t_struct(BitMap)5840_storage)", + "contract": "Beliefs", + "src": "src/Beliefs/Beliefs.sol:16" + }, + { + "label": "_believers", + "offset": 0, + "slot": "457", + "type": "t_array(t_address)dyn_storage", + "contract": "Beliefs", + "src": "src/Beliefs/Beliefs.sol:18" + }, + { + "label": "balances", + "offset": 0, + "slot": "458", + "type": "t_mapping(t_address,t_uint256)", + "contract": "Beliefs", + "src": "src/Beliefs/Beliefs.sol:20" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_address)dyn_storage": { + "label": "address[]", + "numberOfBytes": "32" + }, + "t_array(t_uint256)47_storage": { + "label": "uint256[47]", + "numberOfBytes": "1504" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_enum(EditionStatus)7136": { + "label": "enum EditionsStructs.EditionStatus", + "members": [ + "NotCreated", + "Created", + "Launched", + "Stopped" + ], + "numberOfBytes": "1" + }, + "t_mapping(t_address,t_bool)": { + "label": "mapping(address => bool)", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_mapping(t_address,t_bool))": { + "label": "mapping(address => mapping(address => bool))", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_struct(BitMap)5840_storage)": { + "label": "mapping(address => struct BitMaps.BitMap)", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_uint256)": { + "label": "mapping(address => uint256)", + "numberOfBytes": "32" + }, + "t_mapping(t_bytes32,t_struct(RoleData)34_storage)": { + "label": "mapping(bytes32 => struct AccessControlUpgradeable.RoleData)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_mapping(t_address,t_uint256))": { + "label": "mapping(uint256 => mapping(address => uint256))", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_struct(Edition)7150_storage)": { + "label": "mapping(uint256 => struct EditionsStructs.Edition)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_uint256)": { + "label": "mapping(uint256 => uint256)", + "numberOfBytes": "32" + }, + "t_string_storage": { + "label": "string", + "numberOfBytes": "32" + }, + "t_struct(BitMap)5840_storage": { + "label": "struct BitMaps.BitMap", + "members": [ + { + "label": "_data", + "type": "t_mapping(t_uint256,t_uint256)", + "offset": 0, + "slot": "0" + } + ], + "numberOfBytes": "32" + }, + "t_struct(Edition)7150_storage": { + "label": "struct EditionsStructs.Edition", + "members": [ + { + "label": "status", + "type": "t_enum(EditionStatus)7136", + "offset": 0, + "slot": "0" + }, + { + "label": "fee", + "type": "t_uint256", + "offset": 0, + "slot": "1" + }, + { + "label": "balance", + "type": "t_uint256", + "offset": 0, + "slot": "2" + }, + { + "label": "owner", + "type": "t_address", + "offset": 0, + "slot": "3" + }, + { + "label": "id", + "type": "t_string_storage", + "offset": 0, + "slot": "4" + }, + { + "label": "briefId", + "type": "t_string_storage", + "offset": 0, + "slot": "5" + } + ], + "numberOfBytes": "192" + }, + "t_struct(RoleData)34_storage": { + "label": "struct AccessControlUpgradeable.RoleData", + "members": [ + { + "label": "members", + "type": "t_mapping(t_address,t_bool)", + "offset": 0, + "slot": "0" + }, + { + "label": "adminRole", + "type": "t_bytes32", + "offset": 0, + "slot": "1" + } + ], + "numberOfBytes": "64" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + }, + "layoutVersion": "1.2", + "flat": true + }, + "solcVersion": "0.8.19" + }, + "src/Beliefs/IBeliefs.sol:IBeliefs": { + "src": "src/Beliefs/IBeliefs.sol:8", + "inherit": [], + "libraries": [], + "methods": [ + "believeProject(uint256,string)", + "removeBelief(uint256)" + ], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [], + "types": {}, + "layoutVersion": "1.2", + "flat": false + }, + "solcVersion": "0.8.19" + }, + "src/Beliefs/LibBeliefs.sol:LibBeliefs": { + "src": "src/Beliefs/LibBeliefs.sol:10", + "version": { + "withMetadata": "843639894817b706f995835824619c9af3d022afffe779dc16fc7c5d61f0a30c", + "withoutMetadata": "a64c6cf9c6ba9368f5132c93a0196b3204a7963dbb4dd05dfddb4ab23126b8db", + "linkedWithoutMetadata": "a64c6cf9c6ba9368f5132c93a0196b3204a7963dbb4dd05dfddb4ab23126b8db" + }, + "inherit": [], + "libraries": [ + "lib/openzeppelin-contracts/contracts/utils/Strings.sol:Strings" + ], + "methods": [], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [], + "types": {}, + "layoutVersion": "1.2", + "flat": false + }, + "solcVersion": "0.8.19" + }, + "src/Editions/Editions.sol:Editions": { + "src": "src/Editions/Editions.sol:21", + "version": { + "withMetadata": "e1d4244c692afba9a2af5dc842f6004e1f3c9fa85e28d9e1aba8007e44c27d47", + "withoutMetadata": "89c7431634ef7a27eb602659f997187af240a526a71ab08f12eb3494d91dbc94", + "linkedWithoutMetadata": "89c7431634ef7a27eb602659f997187af240a526a71ab08f12eb3494d91dbc94" + }, + "inherit": [ + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol:UUPSUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol:ERC1967UpgradeUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol:IERC1967Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol:IERC1822ProxiableUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155SupplyUpgradeable.sol:ERC1155SupplyUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155BurnableUpgradeable.sol:ERC1155BurnableUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/security/PausableUpgradeable.sol:PausableUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol:AccessControlUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:ERC1155Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/IERC1155MetadataURIUpgradeable.sol:IERC1155MetadataURIUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/IERC1155Upgradeable.sol:IERC1155Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol:ERC165Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol:IERC165Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol:IAccessControlUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:ContextUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:Initializable", + "src/Editions/IEditions.sol:IEditions" + ], + "libraries": [ + "src/Editions/EditionsRoles.sol:EditionsRoles", + "src/Editions/EditionsStructs.sol:EditionsStructs" + ], + "methods": [ + "()", + "()", + "()", + "initialize()", + "pause()", + "unpause()", + "getEditions()", + "getBalances(address)", + "grantRole(bytes32,address)", + "approveEdition(uint256)", + "withdrawFunds(uint256)", + "updateEdition(uint256,string,string)", + "mintEdition(uint256,uint256,address,bytes)", + "createEdition(uint256,address,address,string,string)", + "withdrawEditionBalance(uint256,uint256)", + "stopEdition(uint256)", + "resumeEdition(uint256)", + "supportsInterface(bytes4)" + ], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:36" + }, + { + "label": "__gap", + "offset": 0, + "slot": "51", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC165Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol:41" + }, + { + "label": "_balances", + "offset": 0, + "slot": "101", + "type": "t_mapping(t_uint256,t_mapping(t_address,t_uint256))", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:25" + }, + { + "label": "_operatorApprovals", + "offset": 0, + "slot": "102", + "type": "t_mapping(t_address,t_mapping(t_address,t_bool))", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:28" + }, + { + "label": "_uri", + "offset": 0, + "slot": "103", + "type": "t_string_storage", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:31" + }, + { + "label": "__gap", + "offset": 0, + "slot": "104", + "type": "t_array(t_uint256)47_storage", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:508" + }, + { + "label": "_roles", + "offset": 0, + "slot": "151", + "type": "t_mapping(t_bytes32,t_struct(RoleData)34_storage)", + "contract": "AccessControlUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol:62" + }, + { + "label": "__gap", + "offset": 0, + "slot": "152", + "type": "t_array(t_uint256)49_storage", + "contract": "AccessControlUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol:260" + }, + { + "label": "_paused", + "offset": 0, + "slot": "201", + "type": "t_bool", + "contract": "PausableUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/security/PausableUpgradeable.sol:29" + }, + { + "label": "__gap", + "offset": 0, + "slot": "202", + "type": "t_array(t_uint256)49_storage", + "contract": "PausableUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/security/PausableUpgradeable.sol:116" + }, + { + "label": "__gap", + "offset": 0, + "slot": "251", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC1155BurnableUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155BurnableUpgradeable.sol:44" + }, + { + "label": "_totalSupply", + "offset": 0, + "slot": "301", + "type": "t_mapping(t_uint256,t_uint256)", + "contract": "ERC1155SupplyUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155SupplyUpgradeable.sol:23" + }, + { + "label": "__gap", + "offset": 0, + "slot": "302", + "type": "t_array(t_uint256)49_storage", + "contract": "ERC1155SupplyUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155SupplyUpgradeable.sol:76" + }, + { + "label": "__gap", + "offset": 0, + "slot": "351", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC1967UpgradeUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol:169" + }, + { + "label": "__gap", + "offset": 0, + "slot": "401", + "type": "t_array(t_uint256)50_storage", + "contract": "UUPSUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol:111" + }, + { + "label": "protocolFee", + "offset": 0, + "slot": "451", + "type": "t_uint256", + "contract": "Editions", + "src": "src/Editions/Editions.sol:31" + }, + { + "label": "editions", + "offset": 0, + "slot": "452", + "type": "t_mapping(t_uint256,t_struct(Edition)7150_storage)", + "contract": "Editions", + "src": "src/Editions/Editions.sol:33" + }, + { + "label": "editionCounter", + "offset": 0, + "slot": "453", + "type": "t_uint256", + "contract": "Editions", + "src": "src/Editions/Editions.sol:35" + }, + { + "label": "maximumEditionFee", + "offset": 0, + "slot": "454", + "type": "t_uint256", + "contract": "Editions", + "src": "src/Editions/Editions.sol:37" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)47_storage": { + "label": "uint256[47]", + "numberOfBytes": "1504" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_enum(EditionStatus)7136": { + "label": "enum EditionsStructs.EditionStatus", + "members": [ + "NotCreated", + "Created", + "Launched", + "Stopped" + ], + "numberOfBytes": "1" + }, + "t_mapping(t_address,t_bool)": { + "label": "mapping(address => bool)", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_mapping(t_address,t_bool))": { + "label": "mapping(address => mapping(address => bool))", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_uint256)": { + "label": "mapping(address => uint256)", + "numberOfBytes": "32" + }, + "t_mapping(t_bytes32,t_struct(RoleData)34_storage)": { + "label": "mapping(bytes32 => struct AccessControlUpgradeable.RoleData)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_mapping(t_address,t_uint256))": { + "label": "mapping(uint256 => mapping(address => uint256))", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_struct(Edition)7150_storage)": { + "label": "mapping(uint256 => struct EditionsStructs.Edition)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_uint256)": { + "label": "mapping(uint256 => uint256)", + "numberOfBytes": "32" + }, + "t_string_storage": { + "label": "string", + "numberOfBytes": "32" + }, + "t_struct(Edition)7150_storage": { + "label": "struct EditionsStructs.Edition", + "members": [ + { + "label": "status", + "type": "t_enum(EditionStatus)7136", + "offset": 0, + "slot": "0" + }, + { + "label": "fee", + "type": "t_uint256", + "offset": 0, + "slot": "1" + }, + { + "label": "balance", + "type": "t_uint256", + "offset": 0, + "slot": "2" + }, + { + "label": "owner", + "type": "t_address", + "offset": 0, + "slot": "3" + }, + { + "label": "id", + "type": "t_string_storage", + "offset": 0, + "slot": "4" + }, + { + "label": "briefId", + "type": "t_string_storage", + "offset": 0, + "slot": "5" + } + ], + "numberOfBytes": "192" + }, + "t_struct(RoleData)34_storage": { + "label": "struct AccessControlUpgradeable.RoleData", + "members": [ + { + "label": "members", + "type": "t_mapping(t_address,t_bool)", + "offset": 0, + "slot": "0" + }, + { + "label": "adminRole", + "type": "t_bytes32", + "offset": 0, + "slot": "1" + } + ], + "numberOfBytes": "64" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + }, + "layoutVersion": "1.2", + "flat": true + }, + "solcVersion": "0.8.19" + }, + "src/Editions/EditionsRoles.sol:EditionsRoles": { + "src": "src/Editions/EditionsRoles.sol:4", + "version": { + "withMetadata": "003f83d928b71da5d46b4b6c8eeb0e59585bb0eba3ccca7fc37399fa03dedcf8", + "withoutMetadata": "9b1e3f717c60303bcfb97dbda55ced75265794726ef5635f998788385ce65799", + "linkedWithoutMetadata": "9b1e3f717c60303bcfb97dbda55ced75265794726ef5635f998788385ce65799" + }, + "inherit": [], + "libraries": [], + "methods": [], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [], + "types": {}, + "layoutVersion": "1.2", + "flat": false + }, + "solcVersion": "0.8.19" + }, + "src/Editions/EditionsStructs.sol:EditionsStructs": { + "src": "src/Editions/EditionsStructs.sol:15", + "version": { + "withMetadata": "deec5aedb692a4a22e41531d1d96043c93b8b681bbae7110d4e842651ef28f84", + "withoutMetadata": "a64c6cf9c6ba9368f5132c93a0196b3204a7963dbb4dd05dfddb4ab23126b8db", + "linkedWithoutMetadata": "a64c6cf9c6ba9368f5132c93a0196b3204a7963dbb4dd05dfddb4ab23126b8db" + }, + "inherit": [], + "libraries": [], + "methods": [], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [], + "types": {}, + "layoutVersion": "1.2", + "flat": false + }, + "solcVersion": "0.8.19" + }, + "src/Editions/IEditions.sol:IEditions": { + "src": "src/Editions/IEditions.sol:7", + "inherit": [], + "libraries": [], + "methods": [ + "getEditions()", + "getBalances(address)", + "approveEdition(uint256)", + "withdrawFunds(uint256)", + "updateEdition(uint256,string,string)", + "createEdition(uint256,address,address,string,string)", + "withdrawEditionBalance(uint256,uint256)", + "stopEdition(uint256)", + "resumeEdition(uint256)", + "mintEdition(uint256,uint256,address,bytes)" + ], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [], + "types": {}, + "layoutVersion": "1.2", + "flat": false + }, + "solcVersion": "0.8.19" + }, + "src/IRadarEditions.sol:IRadarEditions": { + "src": "src/IRadarEditions.sol:9", + "inherit": [], + "libraries": [], + "methods": [ + "setURI(string)", + "setProtocolFee(uint256)", + "setMaximumEditionFee(uint256)", + "setFutureFundFee(uint256)" + ], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [], + "types": {}, + "layoutVersion": "1.2", + "flat": false + }, + "solcVersion": "0.8.19" + }, + "src/RadarEditions.sol:RadarEditions": { + "src": "src/RadarEditions.sol:10", + "version": { + "withMetadata": "665030d13f5fca3f770a491fdbea4b62121dffb68427c6ddc48273196706eb07", + "withoutMetadata": "a0456ae5f85458db93d85e3510503614c679211a73ac276ea9119719cff59c43", + "linkedWithoutMetadata": "a0456ae5f85458db93d85e3510503614c679211a73ac276ea9119719cff59c43" + }, + "inherit": [ + "src/Beliefs/Beliefs.sol:Beliefs", + "src/Editions/Editions.sol:Editions", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol:UUPSUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol:ERC1967UpgradeUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol:IERC1967Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol:IERC1822ProxiableUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155SupplyUpgradeable.sol:ERC1155SupplyUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155BurnableUpgradeable.sol:ERC1155BurnableUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/security/PausableUpgradeable.sol:PausableUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol:AccessControlUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:ERC1155Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/IERC1155MetadataURIUpgradeable.sol:IERC1155MetadataURIUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/IERC1155Upgradeable.sol:IERC1155Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol:ERC165Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol:IERC165Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol:IAccessControlUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:ContextUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:Initializable", + "src/Editions/IEditions.sol:IEditions", + "src/Beliefs/IBeliefs.sol:IBeliefs", + "src/IRadarEditions.sol:IRadarEditions" + ], + "libraries": [ + "lib/openzeppelin-contracts/contracts/utils/Strings.sol:Strings", + "src/Editions/EditionsRoles.sol:EditionsRoles" + ], + "methods": [ + "contractURI()", + "uri(uint256)", + "setURI(string)", + "setProtocolFee(uint256)", + "setMaximumEditionFee(uint256)", + "setFutureFundFee(uint256)" + ], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:36" + }, + { + "label": "__gap", + "offset": 0, + "slot": "51", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC165Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol:41" + }, + { + "label": "_balances", + "offset": 0, + "slot": "101", + "type": "t_mapping(t_uint256,t_mapping(t_address,t_uint256))", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:25" + }, + { + "label": "_operatorApprovals", + "offset": 0, + "slot": "102", + "type": "t_mapping(t_address,t_mapping(t_address,t_bool))", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:28" + }, + { + "label": "_uri", + "offset": 0, + "slot": "103", + "type": "t_string_storage", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:31" + }, + { + "label": "__gap", + "offset": 0, + "slot": "104", + "type": "t_array(t_uint256)47_storage", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:508" + }, + { + "label": "_roles", + "offset": 0, + "slot": "151", + "type": "t_mapping(t_bytes32,t_struct(RoleData)34_storage)", + "contract": "AccessControlUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol:62" + }, + { + "label": "__gap", + "offset": 0, + "slot": "152", + "type": "t_array(t_uint256)49_storage", + "contract": "AccessControlUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol:260" + }, + { + "label": "_paused", + "offset": 0, + "slot": "201", + "type": "t_bool", + "contract": "PausableUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/security/PausableUpgradeable.sol:29" + }, + { + "label": "__gap", + "offset": 0, + "slot": "202", + "type": "t_array(t_uint256)49_storage", + "contract": "PausableUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/security/PausableUpgradeable.sol:116" + }, + { + "label": "__gap", + "offset": 0, + "slot": "251", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC1155BurnableUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155BurnableUpgradeable.sol:44" + }, + { + "label": "_totalSupply", + "offset": 0, + "slot": "301", + "type": "t_mapping(t_uint256,t_uint256)", + "contract": "ERC1155SupplyUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155SupplyUpgradeable.sol:23" + }, + { + "label": "__gap", + "offset": 0, + "slot": "302", + "type": "t_array(t_uint256)49_storage", + "contract": "ERC1155SupplyUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155SupplyUpgradeable.sol:76" + }, + { + "label": "__gap", + "offset": 0, + "slot": "351", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC1967UpgradeUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol:169" + }, + { + "label": "__gap", + "offset": 0, + "slot": "401", + "type": "t_array(t_uint256)50_storage", + "contract": "UUPSUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol:111" + }, + { + "label": "protocolFee", + "offset": 0, + "slot": "451", + "type": "t_uint256", + "contract": "Editions", + "src": "src/Editions/Editions.sol:31" + }, + { + "label": "editions", + "offset": 0, + "slot": "452", + "type": "t_mapping(t_uint256,t_struct(Edition)7150_storage)", + "contract": "Editions", + "src": "src/Editions/Editions.sol:33" + }, + { + "label": "editionCounter", + "offset": 0, + "slot": "453", + "type": "t_uint256", + "contract": "Editions", + "src": "src/Editions/Editions.sol:35" + }, + { + "label": "maximumEditionFee", + "offset": 0, + "slot": "454", + "type": "t_uint256", + "contract": "Editions", + "src": "src/Editions/Editions.sol:37" + }, + { + "label": "futureFundFee", + "offset": 0, + "slot": "455", + "type": "t_uint256", + "contract": "Beliefs", + "src": "src/Beliefs/Beliefs.sol:14" + }, + { + "label": "_beliefs", + "offset": 0, + "slot": "456", + "type": "t_mapping(t_address,t_struct(BitMap)5840_storage)", + "contract": "Beliefs", + "src": "src/Beliefs/Beliefs.sol:16" + }, + { + "label": "_believers", + "offset": 0, + "slot": "457", + "type": "t_array(t_address)dyn_storage", + "contract": "Beliefs", + "src": "src/Beliefs/Beliefs.sol:18" + }, + { + "label": "balances", + "offset": 0, + "slot": "458", + "type": "t_mapping(t_address,t_uint256)", + "contract": "Beliefs", + "src": "src/Beliefs/Beliefs.sol:20" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_address)dyn_storage": { + "label": "address[]", + "numberOfBytes": "32" + }, + "t_array(t_uint256)47_storage": { + "label": "uint256[47]", + "numberOfBytes": "1504" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_enum(EditionStatus)7136": { + "label": "enum EditionsStructs.EditionStatus", + "members": [ + "NotCreated", + "Created", + "Launched", + "Stopped" + ], + "numberOfBytes": "1" + }, + "t_mapping(t_address,t_bool)": { + "label": "mapping(address => bool)", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_mapping(t_address,t_bool))": { + "label": "mapping(address => mapping(address => bool))", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_struct(BitMap)5840_storage)": { + "label": "mapping(address => struct BitMaps.BitMap)", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_uint256)": { + "label": "mapping(address => uint256)", + "numberOfBytes": "32" + }, + "t_mapping(t_bytes32,t_struct(RoleData)34_storage)": { + "label": "mapping(bytes32 => struct AccessControlUpgradeable.RoleData)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_mapping(t_address,t_uint256))": { + "label": "mapping(uint256 => mapping(address => uint256))", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_struct(Edition)7150_storage)": { + "label": "mapping(uint256 => struct EditionsStructs.Edition)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_uint256)": { + "label": "mapping(uint256 => uint256)", + "numberOfBytes": "32" + }, + "t_string_storage": { + "label": "string", + "numberOfBytes": "32" + }, + "t_struct(BitMap)5840_storage": { + "label": "struct BitMaps.BitMap", + "members": [ + { + "label": "_data", + "type": "t_mapping(t_uint256,t_uint256)", + "offset": 0, + "slot": "0" + } + ], + "numberOfBytes": "32" + }, + "t_struct(Edition)7150_storage": { + "label": "struct EditionsStructs.Edition", + "members": [ + { + "label": "status", + "type": "t_enum(EditionStatus)7136", + "offset": 0, + "slot": "0" + }, + { + "label": "fee", + "type": "t_uint256", + "offset": 0, + "slot": "1" + }, + { + "label": "balance", + "type": "t_uint256", + "offset": 0, + "slot": "2" + }, + { + "label": "owner", + "type": "t_address", + "offset": 0, + "slot": "3" + }, + { + "label": "id", + "type": "t_string_storage", + "offset": 0, + "slot": "4" + }, + { + "label": "briefId", + "type": "t_string_storage", + "offset": 0, + "slot": "5" + } + ], + "numberOfBytes": "192" + }, + "t_struct(RoleData)34_storage": { + "label": "struct AccessControlUpgradeable.RoleData", + "members": [ + { + "label": "members", + "type": "t_mapping(t_address,t_bool)", + "offset": 0, + "slot": "0" + }, + { + "label": "adminRole", + "type": "t_bytes32", + "offset": 0, + "slot": "1" + } + ], + "numberOfBytes": "64" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + }, + "layoutVersion": "1.2", + "flat": true + }, + "solcVersion": "0.8.19" + } + }, + { + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol:AccessControlUpgradeable": { + "src": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol:51", + "inherit": [ + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol:ERC165Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol:IERC165Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol:IAccessControlUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:ContextUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:Initializable" + ], + "libraries": [ + "lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol:StringsUpgradeable" + ], + "methods": [ + "supportsInterface(bytes4)", + "hasRole(bytes32,address)", + "getRoleAdmin(bytes32)", + "grantRole(bytes32,address)", + "revokeRole(bytes32,address)", + "renounceRole(bytes32,address)" + ], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:36" + }, + { + "label": "__gap", + "offset": 0, + "slot": "51", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC165Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol:41" + }, + { + "label": "_roles", + "offset": 0, + "slot": "101", + "type": "t_mapping(t_bytes32,t_struct(RoleData)34_storage)", + "contract": "AccessControlUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol:62" + }, + { + "label": "__gap", + "offset": 0, + "slot": "102", + "type": "t_array(t_uint256)49_storage", + "contract": "AccessControlUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol:260" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_bool)": { + "label": "mapping(address => bool)", + "numberOfBytes": "32" + }, + "t_mapping(t_bytes32,t_struct(RoleData)34_storage)": { + "label": "mapping(bytes32 => struct AccessControlUpgradeable.RoleData)", + "numberOfBytes": "32" + }, + "t_struct(RoleData)34_storage": { + "label": "struct AccessControlUpgradeable.RoleData", + "members": [ + { + "label": "members", + "type": "t_mapping(t_address,t_bool)", + "offset": 0, + "slot": "0" + }, + { + "label": "adminRole", + "type": "t_bytes32", + "offset": 0, + "slot": "1" + } + ], + "numberOfBytes": "64" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + }, + "layoutVersion": "1.2", + "flat": true + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol:IAccessControlUpgradeable": { + "src": "lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol:9", + "inherit": [], + "libraries": [], + "methods": [ + "hasRole(bytes32,address)", + "getRoleAdmin(bytes32)", + "grantRole(bytes32,address)", + "revokeRole(bytes32,address)", + "renounceRole(bytes32,address)" + ], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [], + "types": {}, + "layoutVersion": "1.2", + "flat": false + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol:IERC1967Upgradeable": { + "src": "lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol:11", + "inherit": [], + "libraries": [], + "methods": [], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [], + "types": {}, + "layoutVersion": "1.2", + "flat": false + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol:IERC1822ProxiableUpgradeable": { + "src": "lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol:10", + "inherit": [], + "libraries": [], + "methods": [ + "proxiableUUID()" + ], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [], + "types": {}, + "layoutVersion": "1.2", + "flat": false + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol:ERC1967UpgradeUpgradeable": { + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol:19", + "inherit": [ + "lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol:IERC1967Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:Initializable" + ], + "libraries": [ + "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol:StorageSlotUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol:AddressUpgradeable" + ], + "methods": [], + "linkReferences": [], + "errors": [ + { + "kind": "delegatecall", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol:185" + }, + { + "kind": "delegatecall", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol:185" + }, + { + "kind": "delegatecall", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol:185" + } + ], + "layout": { + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC1967UpgradeUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol:169" + } + ], + "types": { + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + }, + "layoutVersion": "1.2", + "flat": true + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol:IBeaconUpgradeable": { + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol:9", + "inherit": [], + "libraries": [], + "methods": [ + "implementation()" + ], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [], + "types": {}, + "layoutVersion": "1.2", + "flat": false + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:Initializable": { + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:58", + "inherit": [], + "libraries": [ + "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol:AddressUpgradeable" + ], + "methods": [], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:68" + } + ], + "types": { + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + }, + "layoutVersion": "1.2", + "flat": true + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol:UUPSUpgradeable": { + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol:22", + "inherit": [ + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol:ERC1967UpgradeUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol:IERC1967Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol:IERC1822ProxiableUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:Initializable" + ], + "libraries": [], + "methods": [ + "proxiableUUID()", + "upgradeTo(address)", + "upgradeToAndCall(address,bytes)" + ], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC1967UpgradeUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol:169" + }, + { + "label": "__gap", + "offset": 0, + "slot": "51", + "type": "t_array(t_uint256)50_storage", + "contract": "UUPSUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol:111" + } + ], + "types": { + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + }, + "layoutVersion": "1.2", + "flat": true + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts-upgradeable/contracts/security/PausableUpgradeable.sol:PausableUpgradeable": { + "src": "lib/openzeppelin-contracts-upgradeable/contracts/security/PausableUpgradeable.sol:18", + "inherit": [ + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:ContextUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:Initializable" + ], + "libraries": [], + "methods": [ + "paused()" + ], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:36" + }, + { + "label": "_paused", + "offset": 0, + "slot": "51", + "type": "t_bool", + "contract": "PausableUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/security/PausableUpgradeable.sol:29" + }, + { + "label": "__gap", + "offset": 0, + "slot": "52", + "type": "t_array(t_uint256)49_storage", + "contract": "PausableUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/security/PausableUpgradeable.sol:116" + } + ], + "types": { + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + }, + "layoutVersion": "1.2", + "flat": true + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:ERC1155Upgradeable": { + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:21", + "version": { + "withMetadata": "edcb753dd57442a00102926fc63ae83a9b97bcb6ce645e13e2a1ca05ea67d986", + "withoutMetadata": "52f5fba6fb0bed0f97581f696b77a6aa7a382a7ec20adf954f89c5bd390b00e5", + "linkedWithoutMetadata": "52f5fba6fb0bed0f97581f696b77a6aa7a382a7ec20adf954f89c5bd390b00e5" + }, + "inherit": [ + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/IERC1155MetadataURIUpgradeable.sol:IERC1155MetadataURIUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/IERC1155Upgradeable.sol:IERC1155Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol:ERC165Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol:IERC165Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:ContextUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:Initializable" + ], + "libraries": [ + "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol:AddressUpgradeable" + ], + "methods": [ + "supportsInterface(bytes4)", + "uri(uint256)", + "balanceOf(address,uint256)", + "balanceOfBatch(address[],uint256[])", + "setApprovalForAll(address,bool)", + "isApprovedForAll(address,address)", + "safeTransferFrom(address,address,uint256,uint256,bytes)", + "safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)" + ], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:36" + }, + { + "label": "__gap", + "offset": 0, + "slot": "51", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC165Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol:41" + }, + { + "label": "_balances", + "offset": 0, + "slot": "101", + "type": "t_mapping(t_uint256,t_mapping(t_address,t_uint256))", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:25" + }, + { + "label": "_operatorApprovals", + "offset": 0, + "slot": "102", + "type": "t_mapping(t_address,t_mapping(t_address,t_bool))", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:28" + }, + { + "label": "_uri", + "offset": 0, + "slot": "103", + "type": "t_string_storage", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:31" + }, + { + "label": "__gap", + "offset": 0, + "slot": "104", + "type": "t_array(t_uint256)47_storage", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:508" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)47_storage": { + "label": "uint256[47]", + "numberOfBytes": "1504" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_mapping(t_address,t_bool)": { + "label": "mapping(address => bool)", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_mapping(t_address,t_bool))": { + "label": "mapping(address => mapping(address => bool))", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_uint256)": { + "label": "mapping(address => uint256)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_mapping(t_address,t_uint256))": { + "label": "mapping(uint256 => mapping(address => uint256))", + "numberOfBytes": "32" + }, + "t_string_storage": { + "label": "string", + "numberOfBytes": "32" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + }, + "layoutVersion": "1.2", + "flat": true + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/IERC1155ReceiverUpgradeable.sol:IERC1155ReceiverUpgradeable": { + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/IERC1155ReceiverUpgradeable.sol:11", + "inherit": [ + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol:IERC165Upgradeable" + ], + "libraries": [], + "methods": [ + "onERC1155Received(address,address,uint256,uint256,bytes)", + "onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)" + ], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [], + "types": {}, + "layoutVersion": "1.2", + "flat": false + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/IERC1155Upgradeable.sol:IERC1155Upgradeable": { + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/IERC1155Upgradeable.sol:14", + "inherit": [ + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol:IERC165Upgradeable" + ], + "libraries": [], + "methods": [ + "balanceOf(address,uint256)", + "balanceOfBatch(address[],uint256[])", + "setApprovalForAll(address,bool)", + "isApprovedForAll(address,address)", + "safeTransferFrom(address,address,uint256,uint256,bytes)", + "safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)" + ], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [], + "types": {}, + "layoutVersion": "1.2", + "flat": false + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155BurnableUpgradeable.sol:ERC1155BurnableUpgradeable": { + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155BurnableUpgradeable.sol:15", + "inherit": [ + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:ERC1155Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/IERC1155MetadataURIUpgradeable.sol:IERC1155MetadataURIUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/IERC1155Upgradeable.sol:IERC1155Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol:ERC165Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol:IERC165Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:ContextUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:Initializable" + ], + "libraries": [], + "methods": [ + "burn(address,uint256,uint256)", + "burnBatch(address,uint256[],uint256[])" + ], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:36" + }, + { + "label": "__gap", + "offset": 0, + "slot": "51", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC165Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol:41" + }, + { + "label": "_balances", + "offset": 0, + "slot": "101", + "type": "t_mapping(t_uint256,t_mapping(t_address,t_uint256))", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:25" + }, + { + "label": "_operatorApprovals", + "offset": 0, + "slot": "102", + "type": "t_mapping(t_address,t_mapping(t_address,t_bool))", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:28" + }, + { + "label": "_uri", + "offset": 0, + "slot": "103", + "type": "t_string_storage", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:31" + }, + { + "label": "__gap", + "offset": 0, + "slot": "104", + "type": "t_array(t_uint256)47_storage", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:508" + }, + { + "label": "__gap", + "offset": 0, + "slot": "151", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC1155BurnableUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155BurnableUpgradeable.sol:44" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)47_storage": { + "label": "uint256[47]", + "numberOfBytes": "1504" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_mapping(t_address,t_bool)": { + "label": "mapping(address => bool)", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_mapping(t_address,t_bool))": { + "label": "mapping(address => mapping(address => bool))", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_uint256)": { + "label": "mapping(address => uint256)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_mapping(t_address,t_uint256))": { + "label": "mapping(uint256 => mapping(address => uint256))", + "numberOfBytes": "32" + }, + "t_string_storage": { + "label": "string", + "numberOfBytes": "32" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + }, + "layoutVersion": "1.2", + "flat": true + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155SupplyUpgradeable.sol:ERC1155SupplyUpgradeable": { + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155SupplyUpgradeable.sol:17", + "inherit": [ + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:ERC1155Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/IERC1155MetadataURIUpgradeable.sol:IERC1155MetadataURIUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/IERC1155Upgradeable.sol:IERC1155Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol:ERC165Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol:IERC165Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:ContextUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:Initializable" + ], + "libraries": [], + "methods": [ + "totalSupply(uint256)", + "exists(uint256)" + ], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:36" + }, + { + "label": "__gap", + "offset": 0, + "slot": "51", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC165Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol:41" + }, + { + "label": "_balances", + "offset": 0, + "slot": "101", + "type": "t_mapping(t_uint256,t_mapping(t_address,t_uint256))", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:25" + }, + { + "label": "_operatorApprovals", + "offset": 0, + "slot": "102", + "type": "t_mapping(t_address,t_mapping(t_address,t_bool))", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:28" + }, + { + "label": "_uri", + "offset": 0, + "slot": "103", + "type": "t_string_storage", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:31" + }, + { + "label": "__gap", + "offset": 0, + "slot": "104", + "type": "t_array(t_uint256)47_storage", + "contract": "ERC1155Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol:508" + }, + { + "label": "_totalSupply", + "offset": 0, + "slot": "151", + "type": "t_mapping(t_uint256,t_uint256)", + "contract": "ERC1155SupplyUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155SupplyUpgradeable.sol:23" + }, + { + "label": "__gap", + "offset": 0, + "slot": "152", + "type": "t_array(t_uint256)49_storage", + "contract": "ERC1155SupplyUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155SupplyUpgradeable.sol:76" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)47_storage": { + "label": "uint256[47]", + "numberOfBytes": "1504" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_mapping(t_address,t_bool)": { + "label": "mapping(address => bool)", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_mapping(t_address,t_bool))": { + "label": "mapping(address => mapping(address => bool))", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_uint256)": { + "label": "mapping(address => uint256)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_mapping(t_address,t_uint256))": { + "label": "mapping(uint256 => mapping(address => uint256))", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_uint256)": { + "label": "mapping(uint256 => uint256)", + "numberOfBytes": "32" + }, + "t_string_storage": { + "label": "string", + "numberOfBytes": "32" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + }, + "layoutVersion": "1.2", + "flat": true + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/IERC1155MetadataURIUpgradeable.sol:IERC1155MetadataURIUpgradeable": { + "src": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/IERC1155MetadataURIUpgradeable.sol:14", + "inherit": [ + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/IERC1155Upgradeable.sol:IERC1155Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol:IERC165Upgradeable" + ], + "libraries": [], + "methods": [ + "uri(uint256)" + ], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [], + "types": {}, + "layoutVersion": "1.2", + "flat": false + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol:AddressUpgradeable": { + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol:9", + "version": { + "withMetadata": "15ad4eca408248ad9037eada47f4740bc0339230a12a639cc7f657338bda8df5", + "withoutMetadata": "a64c6cf9c6ba9368f5132c93a0196b3204a7963dbb4dd05dfddb4ab23126b8db", + "linkedWithoutMetadata": "a64c6cf9c6ba9368f5132c93a0196b3204a7963dbb4dd05dfddb4ab23126b8db" + }, + "inherit": [], + "libraries": [], + "methods": [], + "linkReferences": [], + "errors": [ + { + "kind": "delegatecall", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol:185" + }, + { + "kind": "delegatecall", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol:185" + } + ], + "layout": { + "storage": [], + "types": {}, + "layoutVersion": "1.2", + "flat": false + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:ContextUpgradeable": { + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:17", + "inherit": [ + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:Initializable" + ], + "libraries": [], + "methods": [], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:36" + } + ], + "types": { + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + }, + "layoutVersion": "1.2", + "flat": true + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol:StorageSlotUpgradeable": { + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol:34", + "version": { + "withMetadata": "814c232ccd1886959fdc61f1151d090d6eb5f47c849aa4d654eccb58f80733a4", + "withoutMetadata": "a64c6cf9c6ba9368f5132c93a0196b3204a7963dbb4dd05dfddb4ab23126b8db", + "linkedWithoutMetadata": "a64c6cf9c6ba9368f5132c93a0196b3204a7963dbb4dd05dfddb4ab23126b8db" + }, + "inherit": [], + "libraries": [], + "methods": [], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [], + "types": {}, + "layoutVersion": "1.2", + "flat": false + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol:StringsUpgradeable": { + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol:12", + "version": { + "withMetadata": "57c525b677abc35ef0a29d17a276edb550036c9ab9eaf87d76b2cc6bc8ebfee0", + "withoutMetadata": "a64c6cf9c6ba9368f5132c93a0196b3204a7963dbb4dd05dfddb4ab23126b8db", + "linkedWithoutMetadata": "a64c6cf9c6ba9368f5132c93a0196b3204a7963dbb4dd05dfddb4ab23126b8db" + }, + "inherit": [], + "libraries": [ + "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol:MathUpgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol:SignedMathUpgradeable" + ], + "methods": [], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [], + "types": {}, + "layoutVersion": "1.2", + "flat": false + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol:ERC165Upgradeable": { + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol:23", + "inherit": [ + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol:IERC165Upgradeable", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:Initializable" + ], + "libraries": [], + "methods": [ + "supportsInterface(bytes4)" + ], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC165Upgradeable", + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol:41" + } + ], + "types": { + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + }, + "layoutVersion": "1.2", + "flat": true + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol:IERC165Upgradeable": { + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol:15", + "inherit": [], + "libraries": [], + "methods": [ + "supportsInterface(bytes4)" + ], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [], + "types": {}, + "layoutVersion": "1.2", + "flat": false + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol:MathUpgradeable": { + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol:9", + "version": { + "withMetadata": "3b20a636fdd145f3824263a01d7916cc4b4db4adf482514d43f1051b3a09b434", + "withoutMetadata": "a64c6cf9c6ba9368f5132c93a0196b3204a7963dbb4dd05dfddb4ab23126b8db", + "linkedWithoutMetadata": "a64c6cf9c6ba9368f5132c93a0196b3204a7963dbb4dd05dfddb4ab23126b8db" + }, + "inherit": [], + "libraries": [], + "methods": [], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [], + "types": {}, + "layoutVersion": "1.2", + "flat": false + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol:SignedMathUpgradeable": { + "src": "lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol:9", + "version": { + "withMetadata": "1fce107b699edd489c9811ee46ce6f047b2d7be8def5d1655bed0168faa06b27", + "withoutMetadata": "a64c6cf9c6ba9368f5132c93a0196b3204a7963dbb4dd05dfddb4ab23126b8db", + "linkedWithoutMetadata": "a64c6cf9c6ba9368f5132c93a0196b3204a7963dbb4dd05dfddb4ab23126b8db" + }, + "inherit": [], + "libraries": [], + "methods": [], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [], + "types": {}, + "layoutVersion": "1.2", + "flat": false + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts/contracts/utils/Strings.sol:Strings": { + "src": "lib/openzeppelin-contracts/contracts/utils/Strings.sol:12", + "version": { + "withMetadata": "898b2ef030f9983e69c4d4758a49a73f4bb4aa4a25fd398d372a9fe1f50ef642", + "withoutMetadata": "a64c6cf9c6ba9368f5132c93a0196b3204a7963dbb4dd05dfddb4ab23126b8db", + "linkedWithoutMetadata": "a64c6cf9c6ba9368f5132c93a0196b3204a7963dbb4dd05dfddb4ab23126b8db" + }, + "inherit": [], + "libraries": [ + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol:Math", + "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol:SignedMath" + ], + "methods": [], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [], + "types": {}, + "layoutVersion": "1.2", + "flat": false + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol:Math": { + "src": "lib/openzeppelin-contracts/contracts/utils/math/Math.sol:9", + "version": { + "withMetadata": "a89fe7c1d1ca335dc6e267f514c3765f89c55a0917e566ff379d906fdd9b990f", + "withoutMetadata": "a64c6cf9c6ba9368f5132c93a0196b3204a7963dbb4dd05dfddb4ab23126b8db", + "linkedWithoutMetadata": "a64c6cf9c6ba9368f5132c93a0196b3204a7963dbb4dd05dfddb4ab23126b8db" + }, + "inherit": [], + "libraries": [], + "methods": [], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [], + "types": {}, + "layoutVersion": "1.2", + "flat": false + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol:SignedMath": { + "src": "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol:9", + "version": { + "withMetadata": "4d486057055063ce9fc564e30e1fe5273234ba324944b5f686fb39dc337d0faf", + "withoutMetadata": "a64c6cf9c6ba9368f5132c93a0196b3204a7963dbb4dd05dfddb4ab23126b8db", + "linkedWithoutMetadata": "a64c6cf9c6ba9368f5132c93a0196b3204a7963dbb4dd05dfddb4ab23126b8db" + }, + "inherit": [], + "libraries": [], + "methods": [], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [], + "types": {}, + "layoutVersion": "1.2", + "flat": false + }, + "solcVersion": "0.8.19" + }, + "lib/openzeppelin-contracts/contracts/utils/structs/BitMaps.sol:BitMaps": { + "src": "lib/openzeppelin-contracts/contracts/utils/structs/BitMaps.sol:9", + "version": { + "withMetadata": "13e2d37e24fde5239bc9c5228f8feb3bde7dbdd0210134f9c6840abe44b5b0fd", + "withoutMetadata": "a64c6cf9c6ba9368f5132c93a0196b3204a7963dbb4dd05dfddb4ab23126b8db", + "linkedWithoutMetadata": "a64c6cf9c6ba9368f5132c93a0196b3204a7963dbb4dd05dfddb4ab23126b8db" + }, + "inherit": [], + "libraries": [], + "methods": [], + "linkReferences": [], + "errors": [], + "layout": { + "storage": [], + "types": {}, + "layoutVersion": "1.2", + "flat": false + }, + "solcVersion": "0.8.19" + }, "src/Beliefs/Beliefs.sol:Beliefs": { "src": "src/Beliefs/Beliefs.sol:12", "version": { diff --git a/script/upgradeDev.ts b/script/upgradeDev.ts index 9ab3604..2ced320 100644 --- a/script/upgradeDev.ts +++ b/script/upgradeDev.ts @@ -3,16 +3,10 @@ import { ethers, upgrades } from "hardhat"; async function main() { // Upgrading const RADAR_EDITIONS_ADDRESS = "0xEd4295091C232A000B6fF2A546b78Fd90Ae8Db4E"; - const LIB_BELIEFS_ADDRESS = "0xE72Fa1F9AA428009a09c8FA832445F066F0311e9"; + // const LIB_BELIEFS_ADDRESS = "0xE72Fa1F9AA428009a09c8FA832445F066F0311e9"; - const RadarEditions = await ethers.getContractFactory("RadarEditions", { - libraries: { - LibBeliefs: LIB_BELIEFS_ADDRESS, - }, - }); - await upgrades.upgradeProxy(RADAR_EDITIONS_ADDRESS, RadarEditions, { - unsafeAllowLinkedLibraries: true, - }); + const RadarEditions = await ethers.getContractFactory("RadarEditions"); + await upgrades.upgradeProxy(RADAR_EDITIONS_ADDRESS, RadarEditions); } main().catch(console.error); diff --git a/src/Beliefs/Beliefs.sol b/src/Beliefs/Beliefs.sol index ca9240b..92c426d 100644 --- a/src/Beliefs/Beliefs.sol +++ b/src/Beliefs/Beliefs.sol @@ -10,14 +10,14 @@ import "../Editions/EditionsStructs.sol"; import "./IBeliefs.sol"; contract Beliefs is IBeliefs, Editions { - /// fee used for beliefs - uint256 public futureFundFee; // mapping of users to projects they believe in mapping(address user => BitMaps.BitMap beliefs) internal _beliefs; // array of users who have believed in some project address[] internal _believers; // mapping of users and their current balance mapping(address user => uint256 balance) public balances; + /// fee used for beliefs + uint256 public futureFundFee; function believeProject(uint256 editionId, string memory tags) external payable override { if (msg.value < futureFundFee) {