Source Code
Overview
ETH Balance
0 ETH
More Info
ContractCreator
Multichain Info
N/A
Loading...
Loading
Heuristics suggest this may be a proxy contract. Verify using the Proxy Contract Checker
Contract Source Code (Solidity Standard Json-Input format)
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ApprovalCallerNotOwnerNorApproved","type":"error"},{"inputs":[],"name":"ApprovalQueryForNonexistentToken","type":"error"},{"inputs":[],"name":"BalanceQueryForZeroAddress","type":"error"},{"inputs":[],"name":"InvalidQueryRange","type":"error"},{"inputs":[{"internalType":"uint256","name":"querySize","type":"uint256"},{"internalType":"uint256","name":"maxQuerySize","type":"uint256"}],"name":"MaxQuerySizeExceeded","type":"error"},{"inputs":[],"name":"MintERC2309QuantityExceedsLimit","type":"error"},{"inputs":[],"name":"MintToZeroAddress","type":"error"},{"inputs":[],"name":"MintZeroQuantity","type":"error"},{"inputs":[],"name":"OwnerQueryForNonexistentToken","type":"error"},{"inputs":[],"name":"OwnershipNotInitializedForExtraData","type":"error"},{"inputs":[],"name":"TransferCallerNotOwnerNorApproved","type":"error"},{"inputs":[],"name":"TransferFromIncorrectOwner","type":"error"},{"inputs":[],"name":"TransferToNonERC721ReceiverImplementer","type":"error"},{"inputs":[],"name":"TransferToZeroAddress","type":"error"},{"inputs":[],"name":"URIQueryForNonexistentToken","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"fromTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"toTokenId","type":"uint256"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"ConsecutiveTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"tableId","type":"uint256"},{"indexed":false,"internalType":"string","name":"statement","type":"string"}],"name":"CreateTable","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"bool","name":"isOwner","type":"bool"},{"indexed":false,"internalType":"uint256","name":"tableId","type":"uint256"},{"indexed":false,"internalType":"string","name":"statement","type":"string"},{"components":[{"internalType":"bool","name":"allowInsert","type":"bool"},{"internalType":"bool","name":"allowUpdate","type":"bool"},{"internalType":"bool","name":"allowDelete","type":"bool"},{"internalType":"string","name":"whereClause","type":"string"},{"internalType":"string","name":"withCheck","type":"string"},{"internalType":"string[]","name":"updatableColumns","type":"string[]"}],"indexed":false,"internalType":"struct TablelandPolicy","name":"policy","type":"tuple"}],"name":"RunSQL","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tableId","type":"uint256"},{"indexed":false,"internalType":"address","name":"controller","type":"address"}],"name":"SetController","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"tableId","type":"uint256"}],"name":"TransferTable","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"string[]","name":"statements","type":"string[]"}],"name":"create","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"string","name":"statement","type":"string"}],"name":"create","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"string","name":"statement","type":"string"}],"name":"createTable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"explicitOwnershipOf","outputs":[{"components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint64","name":"startTimestamp","type":"uint64"},{"internalType":"bool","name":"burned","type":"bool"},{"internalType":"uint24","name":"extraData","type":"uint24"}],"internalType":"struct IERC721AUpgradeable.TokenOwnership","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"explicitOwnershipsOf","outputs":[{"components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint64","name":"startTimestamp","type":"uint64"},{"internalType":"bool","name":"burned","type":"bool"},{"internalType":"uint24","name":"extraData","type":"uint24"}],"internalType":"struct IERC721AUpgradeable.TokenOwnership[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tableId","type":"uint256"}],"name":"getController","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"baseURI","type":"string"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"uint256","name":"tableId","type":"uint256"}],"name":"lockController","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"uint256","name":"tableId","type":"uint256"},{"internalType":"string","name":"statement","type":"string"}],"name":"mutate","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"components":[{"internalType":"uint256","name":"tableId","type":"uint256"},{"internalType":"string","name":"statement","type":"string"}],"internalType":"struct ITablelandTables.Statement[]","name":"statements","type":"tuple[]"}],"name":"mutate","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"uint256","name":"tableId","type":"uint256"},{"internalType":"string","name":"statement","type":"string"}],"name":"runSQL","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"baseURI","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"uint256","name":"tableId","type":"uint256"},{"internalType":"address","name":"controller","type":"address"}],"name":"setController","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"tokensOfOwner","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"stop","type":"uint256"}],"name":"tokensOfOwnerIn","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"}]Contract Creation Code
60a0604052306080523480156200001557600080fd5b506200002062000026565b620000e7565b600054610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000e5576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6080516150946200011f60003960008181610e7701528181610f2c015281816110fe015281816111ae01526112f301526150946000f3fe6080604052600436106102855760003560e01c80636352211e11610153578063a15ab08d116100cb578063c87b56dd1161007f578063eaf5d04e11610064578063eaf5d04e14610411578063f2fde38b14610762578063f62d18881461078257600080fd5b8063c87b56dd146106cd578063e985e9c5146106ed57600080fd5b8063abf69aa3116100b0578063abf69aa31461067a578063b88d4fde1461068d578063c23dc68f146106a057600080fd5b8063a15ab08d14610424578063a22cb4651461065a57600080fd5b80638462151c116101225780638da5cb5b116101075780638da5cb5b146105fa57806395d89b411461062557806399a2557a1461063a57600080fd5b80638462151c146105ba5780638bb0ab97146105da57600080fd5b80636352211e1461055057806370a0823114610570578063715018a6146105905780638456cb59146105a557600080fd5b80633a9151b01161020157806355f804b3116101b55780635bbb21771161019a5780635bbb2177146104eb5780635c975abb1461051857806361a23d0f1461053057600080fd5b806355f804b31461048757806358edaa9c146104a757600080fd5b806342842e0e116101e657806342842e0e1461044c5780634f1ef2861461045f57806352d1902d1461047257600080fd5b80633a9151b0146104245780633f4ba83a1461043757600080fd5b8063095ea7b31161025857806323b872dd1161023d57806323b872dd146103de5780633659cfe6146103f1578063377af0da1461041157600080fd5b8063095ea7b31461034857806318160ddd1461035b57600080fd5b806301ffc9a71461028a57806305295681146102bf57806306fdde03146102e1578063081812fc14610303575b600080fd5b34801561029657600080fd5b506102aa6102a5366004614170565b6107a2565b60405190151581526020015b60405180910390f35b3480156102cb57600080fd5b506102df6102da3660046141b1565b610887565b005b3480156102ed57600080fd5b506102f6610974565b6040516102b69190614249565b34801561030f57600080fd5b5061032361031e36600461425c565b610a28565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102b6565b6102df6103563660046141b1565b610ab1565b34801561036757600080fd5b507f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c41547f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c4054037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b6040519081526020016102b6565b6102df6103ec366004614275565b610ac1565b3480156103fd57600080fd5b506102df61040c3660046142b1565b610e60565b6102df61041f366004614315565b61106a565b6103d061043236600461436f565b611096565b34801561044357600080fd5b506102df6110b5565b6102df61045a366004614275565b6110c7565b6102df61046d366004614511565b6110e7565b34801561047e57600080fd5b506103d06112d9565b34801561049357600080fd5b506102df6104a236600461455f565b6113c6565b3480156104b357600080fd5b506103236104c236600461425c565b600090815261012e602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b3480156104f757600080fd5b5061050b6105063660046145ed565b6113db565b6040516102b6919061462f565b34801561052457600080fd5b5060655460ff166102aa565b61054361053e3660046146b9565b6114c5565b6040516102b691906146ff565b34801561055c57600080fd5b5061032361056b36600461425c565b6115b9565b34801561057c57600080fd5b506103d061058b3660046142b1565b6115c4565b34801561059c57600080fd5b506102df611665565b3480156105b157600080fd5b506102df611677565b3480156105c657600080fd5b506105436105d53660046142b1565b611687565b3480156105e657600080fd5b506102df6105f5366004614737565b6117b2565b34801561060657600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff16610323565b34801561063157600080fd5b506102f66118f1565b34801561064657600080fd5b50610543610655366004614773565b611922565b34801561066657600080fd5b506102df6106753660046147b4565b611b07565b6102df6106883660046146b9565b611bbd565b6102df61069b3660046147eb565b611c4d565b3480156106ac57600080fd5b506106c06106bb36600461425c565b611cb7565b6040516102b69190614853565b3480156106d957600080fd5b506102f66106e836600461425c565b611d5e565b3480156106f957600080fd5b506102aa6107083660046148a5565b73ffffffffffffffffffffffffffffffffffffffff91821660009081527f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c476020908152604080832093909416825291909152205460ff1690565b34801561076e57600080fd5b506102df61077d3660046142b1565b611dfa565b34801561078e57600080fd5b506102df61079d36600461455f565b611eae565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316148061083557507f80ac58cd000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b8061088157507f5b5e139f000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b61088f612297565b610898816115b9565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415806108e8575073ffffffffffffffffffffffffffffffffffffffff82163314155b806109025750600081815261012f602052604090205460ff165b15610939576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600090815261012f6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905550565b60607f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c4060020180546109a5906148d8565b80601f01602080910402602001604051908101604052809291908181526020018280546109d1906148d8565b8015610a1e5780601f106109f357610100808354040283529160200191610a1e565b820191906000526020600020905b815481529060010190602001808311610a0157829003601f168201915b5050505050905090565b6000610a3382612304565b610a69576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060009081527f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c46602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b610abd82826001612390565b5050565b6000610acc826124ea565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610b33576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008281527f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c466020526040902080543380821473ffffffffffffffffffffffffffffffffffffffff881690911417610c0e5773ffffffffffffffffffffffffffffffffffffffff861660009081527f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c476020908152604080832033845290915290205460ff16610c0e576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516610c5b576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8015610c6657600082555b73ffffffffffffffffffffffffffffffffffffffff86811660009081527f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c45602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019055918716808252919020805460010190554260a01b177c02000000000000000000000000000000000000000000000000000000001760008581527f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c4460205260408120919091557c020000000000000000000000000000000000000000000000000000000084169003610df0576001840160008181527f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c4460205260408120549003610dee577f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c40548114610dee5760008181527f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c44602052604090208490555b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4610e58868686600161263b565b505050505050565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610f2a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c000000000000000000000000000000000000000060648201526084015b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610f9f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614611042576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f787900000000000000000000000000000000000000006064820152608401610f21565b61104b816126b5565b60408051600080825260208201909252611067918391906126bd565b50565b611072612297565b61107a6128bc565b6110868484848461292f565b6110906001609755565b50505050565b60006110a0612297565b6110ab848484612a66565b90505b9392505050565b6110bd612ae1565b6110c5612b62565b565b6110e283838360405180602001604052806000815250611c4d565b505050565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036111ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152608401610f21565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166112217f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff16146112c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f787900000000000000000000000000000000000000006064820152608401610f21565b6112cd826126b5565b610abd828260016126bd565b60003073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146113a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610f21565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b90565b6113ce612ae1565b61012d610abd8282614971565b60608160008167ffffffffffffffff8111156113f9576113f96143c2565b60405190808252806020026020018201604052801561146957816020015b6040805160808101825260008082526020808301829052928201819052606082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816114175790505b50905060005b8281146114bc5761149786868381811061148b5761148b614a8b565b90506020020135611cb7565b8282815181106114a9576114a9614a8b565b602090810291909101015260010161146f565b50949350505050565b60606114cf612297565b81600181101561150b576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008167ffffffffffffffff811115611526576115266143c2565b60405190808252806020026020018201604052801561154f578160200160208202803683370190505b50905060005b828110156115af5761158a8787878481811061157357611573614a8b565b90506020028101906115859190614aba565b612a66565b82828151811061159c5761159c614a8b565b6020908102919091010152600101611555565b5095945050505050565b6000610881826124ea565b600073ffffffffffffffffffffffffffffffffffffffff8216611613576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5073ffffffffffffffffffffffffffffffffffffffff1660009081527f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c45602052604090205467ffffffffffffffff1690565b61166d612ae1565b6110c56000612bdf565b61167f612ae1565b6110c5612c56565b60606000806000611697856115c4565b905060008167ffffffffffffffff8111156116b4576116b46143c2565b6040519080825280602002602001820160405280156116dd578160200160208202803683370190505b5060408051608081018252600080825260208201819052918101829052606081019190915290915060015b8386146117a65761171881612cb1565b9150816040015161179e57815173ffffffffffffffffffffffffffffffffffffffff161561174557815194505b8773ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361179e578083878060010198508151811061179157611791614a8b565b6020026020010181815250505b600101611708565b50909695505050505050565b6117ba612297565b6117c3826115b9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580611813575073ffffffffffffffffffffffffffffffffffffffff83163314155b8061182d5750600082815261012f602052604090205460ff165b15611864576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082815261012e602090815260409182902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff85169081179091558251858152918201527f64d442926514e7c17643406b529155919979582e13eee1dfe07cbd088ef2033e910160405180910390a1505050565b60607f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c4060030180546109a5906148d8565b606081831061195d576040517f32c1995a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806119887f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c405490565b9050600185101561199857600194505b808411156119a4578093505b60006119af876115c4565b9050848610156119ce57858503818110156119c8578091505b506119d2565b5060005b60008167ffffffffffffffff8111156119ed576119ed6143c2565b604051908082528060200260200182016040528015611a16578160200160208202803683370190505b50905081600003611a2c5793506110ae92505050565b6000611a3788611cb7565b905060008160400151611a48575080515b885b888114158015611a5a5750848714155b15611af657611a6881612cb1565b92508260400151611aee57825173ffffffffffffffffffffffffffffffffffffffff1615611a9557825191505b8a73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611aee5780848880600101995081518110611ae157611ae1614a8b565b6020026020010181815250505b600101611a4a565b505050928352509095945050505050565b3360008181527f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c476020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b611bc5612297565b611bcd6128bc565b8060005b81811015611c4157611c3985858584818110611bef57611bef614a8b565b9050602002810190611c019190614b1f565b35868685818110611c1457611c14614a8b565b9050602002810190611c269190614b1f565b611c34906020810190614aba565b61292f565b600101611bd1565b50506110e26001609755565b611c58848484610ac1565b73ffffffffffffffffffffffffffffffffffffffff83163b1561109057611c8184848484612d7a565b611090576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160808101825260008082526020820181905291810182905260608101919091526040805160808101825260008082526020820181905291810182905260608101919091526001831080611d2f57507f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c40548310155b15611d3a5792915050565b611d4383612cb1565b9050806040015115611d555792915050565b6110ae83612ef4565b6060611d6982612304565b611d9f576040517fa14c4b5000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611da9612f92565b90508051600003611dc957604051806020016040528060008152506110ae565b80611dd384612fa2565b604051602001611de4929190614b5d565b6040516020818303038152906040529392505050565b611e02612ae1565b73ffffffffffffffffffffffffffffffffffffffff8116611ea5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610f21565b61106781612bdf565b7fee151c8401928dc223602bb187aff91b9a56c7cae5476ef1b3287b085a16c85f54610100900460ff16611f07577fee151c8401928dc223602bb187aff91b9a56c7cae5476ef1b3287b085a16c85f5460ff1615611f0b565b303b155b611f97576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f455243373231415f5f496e697469616c697a61626c653a20636f6e747261637460448201527f20697320616c726561647920696e697469616c697a65640000000000000000006064820152608401610f21565b7fee151c8401928dc223602bb187aff91b9a56c7cae5476ef1b3287b085a16c85f54610100900460ff16158015612014577fee151c8401928dc223602bb187aff91b9a56c7cae5476ef1b3287b085a16c85f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000166101011790555b600054610100900460ff16158080156120345750600054600160ff909116105b8061204e5750303b15801561204e575060005460ff166001145b6120da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610f21565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561213857600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6121ac6040518060400160405280601081526020017f5461626c656c616e64205461626c6573000000000000000000000000000000008152506040518060400160405280600581526020017f5441424c45000000000000000000000000000000000000000000000000000000815250613004565b6121b46130c4565b6121bc613182565b6121c4613221565b6121cc6132c0565b6121d461335f565b61012d6121e18482614971565b50801561224557600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b508015610abd5750507fee151c8401928dc223602bb187aff91b9a56c7cae5476ef1b3287b085a16c85f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055565b60655460ff16156110c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610f21565b60008160011115801561233757507f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c405482105b801561088157505060009081527f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c4460205260409020547c0100000000000000000000000000000000000000000000000000000000161590565b600061239b836115b9565b90508115612449573373ffffffffffffffffffffffffffffffffffffffff8216146124495773ffffffffffffffffffffffffffffffffffffffff811660009081527f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c476020908152604080832033845290915290205460ff16612449576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008381527f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c46602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff88811691821790925591518693918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a450505050565b600081600111612609575060008181527f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c446020526040812054907c0100000000000000000000000000000000000000000000000000000000821690036126095780600003612604577f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c405482106125ac576040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0160008181527f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c44602052604090205480156125ac575b919050565b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff841615611090576040805173ffffffffffffffffffffffffffffffffffffffff8087168252851660208201529081018390527f16d5b5d582da969cea3131e89ffbd67ee6b1ebbe2576c7a97e9b852fce946a7f9060600160405180910390a150505050565b611067612ae1565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156126f0576110e2836133f6565b8273ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612775575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261277291810190614b8c565b60015b612801576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f7420555550530000000000000000000000000000000000006064820152608401610f21565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81146128b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c655555494400000000000000000000000000000000000000000000006064820152608401610f21565b506110e2838383613500565b600260975403612928576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610f21565b6002609755565b61293883612304565b158061295a575073ffffffffffffffffffffffffffffffffffffffff84163314155b15612991576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806188b981106129d8576040517f287d9057000000000000000000000000000000000000000000000000000000008152600481018290526188b96024820152604401610f21565b7f6de956d2cb2e161f8c91c6ae7b286358c7458d5ad5e26ea2d55330fbe282839c858673ffffffffffffffffffffffffffffffffffffffff16612a1a876115b9565b73ffffffffffffffffffffffffffffffffffffffff1614868686612a3e8b8b613525565b604051612a5096959493929190614bee565b60405180910390a15050505050565b6001609755565b6000612a907f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c405490565b9050612a9d8460016138a3565b7ffe0c067afc4fe17adcf4cfa139aabad6dc30dd86dfe39fb2b858961637156cdd84828585604051612ad29493929190614d0e565b60405180910390a19392505050565b60335473ffffffffffffffffffffffffffffffffffffffff1633146110c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610f21565b612b6a6138bd565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b612c5e612297565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612bb53390565b6040805160808101825260008082526020820181905291810182905260608101919091526108817f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c40600084815260049190910160205260409020546040805160808101825273ffffffffffffffffffffffffffffffffffffffff8316815260a083901c67ffffffffffffffff1660208201527c0100000000000000000000000000000000000000000000000000000000831615159181019190915260e89190911c606082015290565b6040517f150b7a0200000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff85169063150b7a0290612dd5903390899088908890600401614d44565b6020604051808303816000875af1925050508015612e2e575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252612e2b91810190614d83565b60015b612ea5573d808015612e5c576040519150601f19603f3d011682016040523d82523d6000602084013e612e61565b606091505b508051600003612e9d576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a02000000000000000000000000000000000000000000000000000000001490505b949350505050565b604080516080810182526000808252602082018190529181018290526060810191909152610881612f24836124ea565b6040805160808101825273ffffffffffffffffffffffffffffffffffffffff8316815260a083901c67ffffffffffffffff1660208201527c0100000000000000000000000000000000000000000000000000000000831615159181019190915260e89190911c606082015290565b606061012d80546109a5906148d8565b606060a06040510180604052602081039150506000815280825b600183039250600a81066030018353600a900480612fbc57508190037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909101908152919050565b7fee151c8401928dc223602bb187aff91b9a56c7cae5476ef1b3287b085a16c85f54610100900460ff166130ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f455243373231415f5f496e697469616c697a61626c653a20636f6e747261637460448201527f206973206e6f7420696e697469616c697a696e670000000000000000000000006064820152608401610f21565b610abd8282613929565b7fee151c8401928dc223602bb187aff91b9a56c7cae5476ef1b3287b085a16c85f54610100900460ff1661317a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f455243373231415f5f496e697469616c697a61626c653a20636f6e747261637460448201527f206973206e6f7420696e697469616c697a696e670000000000000000000000006064820152608401610f21565b6110c5613a5f565b600054610100900460ff16613219576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610f21565b6110c5613b15565b600054610100900460ff166132b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610f21565b6110c5613bb5565b600054610100900460ff16613357576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610f21565b6110c5613c76565b600054610100900460ff166110c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610f21565b73ffffffffffffffffffffffffffffffffffffffff81163b61349a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152608401610f21565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b61350983613d0d565b6000825111806135165750805b156110e2576110908383613d5a565b6040805160c0810182526000808252602082018190529181019190915260608082018190526080820181905260a0820152600082815261012e602052604090205473ffffffffffffffffffffffffffffffffffffffff16803b156137a6576040517f66df322e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152602482018590528216906366df322e90349060440160006040518083038185885af19350505050801561363957506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526136369190810190614ea3565b60015b6136df57613645614f8b565b806308c379a0036136985750613659614fa6565b80613664575061369a565b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f219190614249565b505b3d8080156136c4576040519150601f19603f3d011682016040523d82523d6000602084013e6136c9565b606091505b508051156136d957805181602001fd5b506136e8565b91506108819050565b6040517f3791dc6a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152821690633791dc6a90349060240160006040518083038185885af1158015613757573d6000803e3d6000fd5b50505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261379e9190810190614ea3565b915050610881565b73ffffffffffffffffffffffffffffffffffffffff811615806137f457508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b61382a576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160c081018252600180825260208083018290528284019190915282518082018452600080825260608401919091528351808301855281815260808401528351818152918201909352909160a083019190613898565b60608152602001906001900390816138835790505b509052949350505050565b610abd828260405180602001604052806000815250613d7f565b60655460ff166110c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610f21565b7fee151c8401928dc223602bb187aff91b9a56c7cae5476ef1b3287b085a16c85f54610100900460ff166139df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f455243373231415f5f496e697469616c697a61626c653a20636f6e747261637460448201527f206973206e6f7420696e697469616c697a696e670000000000000000000000006064820152608401610f21565b7f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c42613a0a8382614971565b507f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c43613a368282614971565b5060017f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c40555050565b7fee151c8401928dc223602bb187aff91b9a56c7cae5476ef1b3287b085a16c85f54610100900460ff166110c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f455243373231415f5f496e697469616c697a61626c653a20636f6e747261637460448201527f206973206e6f7420696e697469616c697a696e670000000000000000000000006064820152608401610f21565b600054610100900460ff16613bac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610f21565b6110c533612bdf565b600054610100900460ff16613c4c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610f21565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b600054610100900460ff16612a5f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610f21565b613d16816133f6565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606110ae838360405180606001604052806027815260200161506160279139613e50565b613d898383613ed5565b73ffffffffffffffffffffffffffffffffffffffff83163b156110e2577f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c40548281035b613ddf6000868380600101945086612d7a565b613e15576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b818110613dcc57817f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c405414613e4957600080fd5b5050505050565b60606000808573ffffffffffffffffffffffffffffffffffffffff1685604051613e7a919061504e565b600060405180830381855af49150503d8060008114613eb5576040519150601f19603f3d011682016040523d82523d6000602084013e613eba565b606091505b5091509150613ecb86838387614097565b9695505050505050565b7f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c40546000829003613f32576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff831660008181527f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c456020908152604080832080546801000000000000000188020190558483527f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c4490915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b81811461402c57808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600101613ff4565b5081600003614067576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c4055506110e2600084838561263b565b6060831561412d5782516000036141265773ffffffffffffffffffffffffffffffffffffffff85163b614126576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610f21565b5081612eec565b612eec83838151156136645781518083602001fd5b7fffffffff000000000000000000000000000000000000000000000000000000008116811461106757600080fd5b60006020828403121561418257600080fd5b81356110ae81614142565b803573ffffffffffffffffffffffffffffffffffffffff8116811461260457600080fd5b600080604083850312156141c457600080fd5b6141cd8361418d565b946020939093013593505050565b60005b838110156141f65781810151838201526020016141de565b50506000910152565b600081518084526142178160208601602086016141db565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006110ae60208301846141ff565b60006020828403121561426e57600080fd5b5035919050565b60008060006060848603121561428a57600080fd5b6142938461418d565b92506142a16020850161418d565b9150604084013590509250925092565b6000602082840312156142c357600080fd5b6110ae8261418d565b60008083601f8401126142de57600080fd5b50813567ffffffffffffffff8111156142f657600080fd5b60208301915083602082850101111561430e57600080fd5b9250929050565b6000806000806060858703121561432b57600080fd5b6143348561418d565b935060208501359250604085013567ffffffffffffffff81111561435757600080fd5b614363878288016142cc565b95989497509550505050565b60008060006040848603121561438457600080fd5b61438d8461418d565b9250602084013567ffffffffffffffff8111156143a957600080fd5b6143b5868287016142cc565b9497909650939450505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f830116810181811067ffffffffffffffff82111715614435576144356143c2565b6040525050565b60405160c0810167ffffffffffffffff8111828210171561445f5761445f6143c2565b60405290565b600067ffffffffffffffff82111561447f5761447f6143c2565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60006144b683614465565b6040516144c382826143f1565b8092508481528585850111156144d857600080fd5b8484602083013760006020868301015250509392505050565b600082601f83011261450257600080fd5b6110ae838335602085016144ab565b6000806040838503121561452457600080fd5b61452d8361418d565b9150602083013567ffffffffffffffff81111561454957600080fd5b614555858286016144f1565b9150509250929050565b60006020828403121561457157600080fd5b813567ffffffffffffffff81111561458857600080fd5b8201601f8101841361459957600080fd5b612eec848235602084016144ab565b60008083601f8401126145ba57600080fd5b50813567ffffffffffffffff8111156145d257600080fd5b6020830191508360208260051b850101111561430e57600080fd5b6000806020838503121561460057600080fd5b823567ffffffffffffffff81111561461757600080fd5b614623858286016145a8565b90969095509350505050565b6020808252825182820181905260009190848201906040850190845b818110156117a6576146a683855173ffffffffffffffffffffffffffffffffffffffff815116825267ffffffffffffffff602082015116602083015260408101511515604083015262ffffff60608201511660608301525050565b928401926080929092019160010161464b565b6000806000604084860312156146ce57600080fd5b6146d78461418d565b9250602084013567ffffffffffffffff8111156146f357600080fd5b6143b5868287016145a8565b6020808252825182820181905260009190848201906040850190845b818110156117a65783518352928401929184019160010161471b565b60008060006060848603121561474c57600080fd5b6147558461418d565b92506020840135915061476a6040850161418d565b90509250925092565b60008060006060848603121561478857600080fd5b6147918461418d565b95602085013595506040909401359392505050565b801515811461106757600080fd5b600080604083850312156147c757600080fd5b6147d08361418d565b915060208301356147e0816147a6565b809150509250929050565b6000806000806080858703121561480157600080fd5b61480a8561418d565b93506148186020860161418d565b925060408501359150606085013567ffffffffffffffff81111561483b57600080fd5b614847878288016144f1565b91505092959194509250565b815173ffffffffffffffffffffffffffffffffffffffff16815260208083015167ffffffffffffffff169082015260408083015115159082015260608083015162ffffff169082015260808101610881565b600080604083850312156148b857600080fd5b6148c18361418d565b91506148cf6020840161418d565b90509250929050565b600181811c908216806148ec57607f821691505b602082108103614925577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f8211156110e257600081815260208120601f850160051c810160208610156149525750805b601f850160051c820191505b81811015610e585782815560010161495e565b815167ffffffffffffffff81111561498b5761498b6143c2565b61499f8161499984546148d8565b8461492b565b602080601f8311600181146149f257600084156149bc5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555610e58565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015614a3f57888601518255948401946001909101908401614a20565b5085821015614a7b57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614aef57600080fd5b83018035915067ffffffffffffffff821115614b0a57600080fd5b60200191503681900382131561430e57600080fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112614b5357600080fd5b9190910192915050565b60008351614b6f8184602088016141db565b835190830190614b838183602088016141db565b01949350505050565b600060208284031215614b9e57600080fd5b5051919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff87168152600060208715158184015286604084015260a06060840152614c2d60a084018688614ba5565b838103608085015284511515815281850151151582820152604085015115156040820152606085015160c06060830152614c6a60c08301826141ff565b905060808601518282036080840152614c8382826141ff565b91505060a086015182820360a084015281925080518083528483019350848160051b840101858301925060005b82811015614cfc577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0858303018652614cea8285516141ff565b95870195938701939150600101614cb0565b509d9c50505050505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff85168152836020820152606060408201526000613ecb606083018486614ba5565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525083604083015260806060830152613ecb60808301846141ff565b600060208284031215614d9557600080fd5b81516110ae81614142565b8051612604816147a6565b600082601f830112614dbc57600080fd5b8151614dc781614465565b604051614dd482826143f1565b828152856020848701011115614de957600080fd5b614dfa8360208301602088016141db565b95945050505050565b600082601f830112614e1457600080fd5b8151602067ffffffffffffffff80831115614e3157614e316143c2565b8260051b604051614e44848301826143f1565b93845285810183019383810188861115614e5d57600080fd5b84880192505b85831015614e9757825184811115614e7b5760008081fd5b614e898a87838c0101614dab565b825250918401918401614e63565b50979650505050505050565b600060208284031215614eb557600080fd5b815167ffffffffffffffff80821115614ecd57600080fd5b9083019060c08286031215614ee157600080fd5b614ee961443c565b614ef283614da0565b8152614f0060208401614da0565b6020820152614f1160408401614da0565b6040820152606083015182811115614f2857600080fd5b614f3487828601614dab565b606083015250608083015182811115614f4c57600080fd5b614f5887828601614dab565b60808301525060a083015182811115614f7057600080fd5b614f7c87828601614e03565b60a08301525095945050505050565b600060033d11156113c35760046000803e5060005160e01c90565b600060443d1015614fb45790565b6040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc803d016004833e81513d67ffffffffffffffff816024840111818411171561500257505050505090565b828501915081518181111561501a5750505050505090565b843d87010160208285010111156150345750505050505090565b615043602082860101876143f1565b509095945050505050565b60008251614b538184602087016141db56fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000813000a
Deployed Bytecode
0x6080604052600436106102855760003560e01c80636352211e11610153578063a15ab08d116100cb578063c87b56dd1161007f578063eaf5d04e11610064578063eaf5d04e14610411578063f2fde38b14610762578063f62d18881461078257600080fd5b8063c87b56dd146106cd578063e985e9c5146106ed57600080fd5b8063abf69aa3116100b0578063abf69aa31461067a578063b88d4fde1461068d578063c23dc68f146106a057600080fd5b8063a15ab08d14610424578063a22cb4651461065a57600080fd5b80638462151c116101225780638da5cb5b116101075780638da5cb5b146105fa57806395d89b411461062557806399a2557a1461063a57600080fd5b80638462151c146105ba5780638bb0ab97146105da57600080fd5b80636352211e1461055057806370a0823114610570578063715018a6146105905780638456cb59146105a557600080fd5b80633a9151b01161020157806355f804b3116101b55780635bbb21771161019a5780635bbb2177146104eb5780635c975abb1461051857806361a23d0f1461053057600080fd5b806355f804b31461048757806358edaa9c146104a757600080fd5b806342842e0e116101e657806342842e0e1461044c5780634f1ef2861461045f57806352d1902d1461047257600080fd5b80633a9151b0146104245780633f4ba83a1461043757600080fd5b8063095ea7b31161025857806323b872dd1161023d57806323b872dd146103de5780633659cfe6146103f1578063377af0da1461041157600080fd5b8063095ea7b31461034857806318160ddd1461035b57600080fd5b806301ffc9a71461028a57806305295681146102bf57806306fdde03146102e1578063081812fc14610303575b600080fd5b34801561029657600080fd5b506102aa6102a5366004614170565b6107a2565b60405190151581526020015b60405180910390f35b3480156102cb57600080fd5b506102df6102da3660046141b1565b610887565b005b3480156102ed57600080fd5b506102f6610974565b6040516102b69190614249565b34801561030f57600080fd5b5061032361031e36600461425c565b610a28565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102b6565b6102df6103563660046141b1565b610ab1565b34801561036757600080fd5b507f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c41547f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c4054037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b6040519081526020016102b6565b6102df6103ec366004614275565b610ac1565b3480156103fd57600080fd5b506102df61040c3660046142b1565b610e60565b6102df61041f366004614315565b61106a565b6103d061043236600461436f565b611096565b34801561044357600080fd5b506102df6110b5565b6102df61045a366004614275565b6110c7565b6102df61046d366004614511565b6110e7565b34801561047e57600080fd5b506103d06112d9565b34801561049357600080fd5b506102df6104a236600461455f565b6113c6565b3480156104b357600080fd5b506103236104c236600461425c565b600090815261012e602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b3480156104f757600080fd5b5061050b6105063660046145ed565b6113db565b6040516102b6919061462f565b34801561052457600080fd5b5060655460ff166102aa565b61054361053e3660046146b9565b6114c5565b6040516102b691906146ff565b34801561055c57600080fd5b5061032361056b36600461425c565b6115b9565b34801561057c57600080fd5b506103d061058b3660046142b1565b6115c4565b34801561059c57600080fd5b506102df611665565b3480156105b157600080fd5b506102df611677565b3480156105c657600080fd5b506105436105d53660046142b1565b611687565b3480156105e657600080fd5b506102df6105f5366004614737565b6117b2565b34801561060657600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff16610323565b34801561063157600080fd5b506102f66118f1565b34801561064657600080fd5b50610543610655366004614773565b611922565b34801561066657600080fd5b506102df6106753660046147b4565b611b07565b6102df6106883660046146b9565b611bbd565b6102df61069b3660046147eb565b611c4d565b3480156106ac57600080fd5b506106c06106bb36600461425c565b611cb7565b6040516102b69190614853565b3480156106d957600080fd5b506102f66106e836600461425c565b611d5e565b3480156106f957600080fd5b506102aa6107083660046148a5565b73ffffffffffffffffffffffffffffffffffffffff91821660009081527f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c476020908152604080832093909416825291909152205460ff1690565b34801561076e57600080fd5b506102df61077d3660046142b1565b611dfa565b34801561078e57600080fd5b506102df61079d36600461455f565b611eae565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316148061083557507f80ac58cd000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b8061088157507f5b5e139f000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b61088f612297565b610898816115b9565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415806108e8575073ffffffffffffffffffffffffffffffffffffffff82163314155b806109025750600081815261012f602052604090205460ff165b15610939576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600090815261012f6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905550565b60607f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c4060020180546109a5906148d8565b80601f01602080910402602001604051908101604052809291908181526020018280546109d1906148d8565b8015610a1e5780601f106109f357610100808354040283529160200191610a1e565b820191906000526020600020905b815481529060010190602001808311610a0157829003601f168201915b5050505050905090565b6000610a3382612304565b610a69576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060009081527f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c46602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b610abd82826001612390565b5050565b6000610acc826124ea565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610b33576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008281527f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c466020526040902080543380821473ffffffffffffffffffffffffffffffffffffffff881690911417610c0e5773ffffffffffffffffffffffffffffffffffffffff861660009081527f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c476020908152604080832033845290915290205460ff16610c0e576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516610c5b576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8015610c6657600082555b73ffffffffffffffffffffffffffffffffffffffff86811660009081527f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c45602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019055918716808252919020805460010190554260a01b177c02000000000000000000000000000000000000000000000000000000001760008581527f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c4460205260408120919091557c020000000000000000000000000000000000000000000000000000000084169003610df0576001840160008181527f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c4460205260408120549003610dee577f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c40548114610dee5760008181527f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c44602052604090208490555b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4610e58868686600161263b565b505050505050565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000f3a896bf78ce6a4ef15f9a5b326f657b4221af07163003610f2a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c000000000000000000000000000000000000000060648201526084015b60405180910390fd5b7f000000000000000000000000f3a896bf78ce6a4ef15f9a5b326f657b4221af0773ffffffffffffffffffffffffffffffffffffffff16610f9f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614611042576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f787900000000000000000000000000000000000000006064820152608401610f21565b61104b816126b5565b60408051600080825260208201909252611067918391906126bd565b50565b611072612297565b61107a6128bc565b6110868484848461292f565b6110906001609755565b50505050565b60006110a0612297565b6110ab848484612a66565b90505b9392505050565b6110bd612ae1565b6110c5612b62565b565b6110e283838360405180602001604052806000815250611c4d565b505050565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000f3a896bf78ce6a4ef15f9a5b326f657b4221af071630036111ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152608401610f21565b7f000000000000000000000000f3a896bf78ce6a4ef15f9a5b326f657b4221af0773ffffffffffffffffffffffffffffffffffffffff166112217f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff16146112c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f787900000000000000000000000000000000000000006064820152608401610f21565b6112cd826126b5565b610abd828260016126bd565b60003073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000f3a896bf78ce6a4ef15f9a5b326f657b4221af0716146113a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610f21565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b90565b6113ce612ae1565b61012d610abd8282614971565b60608160008167ffffffffffffffff8111156113f9576113f96143c2565b60405190808252806020026020018201604052801561146957816020015b6040805160808101825260008082526020808301829052928201819052606082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816114175790505b50905060005b8281146114bc5761149786868381811061148b5761148b614a8b565b90506020020135611cb7565b8282815181106114a9576114a9614a8b565b602090810291909101015260010161146f565b50949350505050565b60606114cf612297565b81600181101561150b576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008167ffffffffffffffff811115611526576115266143c2565b60405190808252806020026020018201604052801561154f578160200160208202803683370190505b50905060005b828110156115af5761158a8787878481811061157357611573614a8b565b90506020028101906115859190614aba565b612a66565b82828151811061159c5761159c614a8b565b6020908102919091010152600101611555565b5095945050505050565b6000610881826124ea565b600073ffffffffffffffffffffffffffffffffffffffff8216611613576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5073ffffffffffffffffffffffffffffffffffffffff1660009081527f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c45602052604090205467ffffffffffffffff1690565b61166d612ae1565b6110c56000612bdf565b61167f612ae1565b6110c5612c56565b60606000806000611697856115c4565b905060008167ffffffffffffffff8111156116b4576116b46143c2565b6040519080825280602002602001820160405280156116dd578160200160208202803683370190505b5060408051608081018252600080825260208201819052918101829052606081019190915290915060015b8386146117a65761171881612cb1565b9150816040015161179e57815173ffffffffffffffffffffffffffffffffffffffff161561174557815194505b8773ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361179e578083878060010198508151811061179157611791614a8b565b6020026020010181815250505b600101611708565b50909695505050505050565b6117ba612297565b6117c3826115b9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580611813575073ffffffffffffffffffffffffffffffffffffffff83163314155b8061182d5750600082815261012f602052604090205460ff165b15611864576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082815261012e602090815260409182902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff85169081179091558251858152918201527f64d442926514e7c17643406b529155919979582e13eee1dfe07cbd088ef2033e910160405180910390a1505050565b60607f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c4060030180546109a5906148d8565b606081831061195d576040517f32c1995a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806119887f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c405490565b9050600185101561199857600194505b808411156119a4578093505b60006119af876115c4565b9050848610156119ce57858503818110156119c8578091505b506119d2565b5060005b60008167ffffffffffffffff8111156119ed576119ed6143c2565b604051908082528060200260200182016040528015611a16578160200160208202803683370190505b50905081600003611a2c5793506110ae92505050565b6000611a3788611cb7565b905060008160400151611a48575080515b885b888114158015611a5a5750848714155b15611af657611a6881612cb1565b92508260400151611aee57825173ffffffffffffffffffffffffffffffffffffffff1615611a9557825191505b8a73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611aee5780848880600101995081518110611ae157611ae1614a8b565b6020026020010181815250505b600101611a4a565b505050928352509095945050505050565b3360008181527f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c476020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b611bc5612297565b611bcd6128bc565b8060005b81811015611c4157611c3985858584818110611bef57611bef614a8b565b9050602002810190611c019190614b1f565b35868685818110611c1457611c14614a8b565b9050602002810190611c269190614b1f565b611c34906020810190614aba565b61292f565b600101611bd1565b50506110e26001609755565b611c58848484610ac1565b73ffffffffffffffffffffffffffffffffffffffff83163b1561109057611c8184848484612d7a565b611090576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160808101825260008082526020820181905291810182905260608101919091526040805160808101825260008082526020820181905291810182905260608101919091526001831080611d2f57507f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c40548310155b15611d3a5792915050565b611d4383612cb1565b9050806040015115611d555792915050565b6110ae83612ef4565b6060611d6982612304565b611d9f576040517fa14c4b5000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611da9612f92565b90508051600003611dc957604051806020016040528060008152506110ae565b80611dd384612fa2565b604051602001611de4929190614b5d565b6040516020818303038152906040529392505050565b611e02612ae1565b73ffffffffffffffffffffffffffffffffffffffff8116611ea5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610f21565b61106781612bdf565b7fee151c8401928dc223602bb187aff91b9a56c7cae5476ef1b3287b085a16c85f54610100900460ff16611f07577fee151c8401928dc223602bb187aff91b9a56c7cae5476ef1b3287b085a16c85f5460ff1615611f0b565b303b155b611f97576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f455243373231415f5f496e697469616c697a61626c653a20636f6e747261637460448201527f20697320616c726561647920696e697469616c697a65640000000000000000006064820152608401610f21565b7fee151c8401928dc223602bb187aff91b9a56c7cae5476ef1b3287b085a16c85f54610100900460ff16158015612014577fee151c8401928dc223602bb187aff91b9a56c7cae5476ef1b3287b085a16c85f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000166101011790555b600054610100900460ff16158080156120345750600054600160ff909116105b8061204e5750303b15801561204e575060005460ff166001145b6120da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610f21565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561213857600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6121ac6040518060400160405280601081526020017f5461626c656c616e64205461626c6573000000000000000000000000000000008152506040518060400160405280600581526020017f5441424c45000000000000000000000000000000000000000000000000000000815250613004565b6121b46130c4565b6121bc613182565b6121c4613221565b6121cc6132c0565b6121d461335f565b61012d6121e18482614971565b50801561224557600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b508015610abd5750507fee151c8401928dc223602bb187aff91b9a56c7cae5476ef1b3287b085a16c85f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055565b60655460ff16156110c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610f21565b60008160011115801561233757507f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c405482105b801561088157505060009081527f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c4460205260409020547c0100000000000000000000000000000000000000000000000000000000161590565b600061239b836115b9565b90508115612449573373ffffffffffffffffffffffffffffffffffffffff8216146124495773ffffffffffffffffffffffffffffffffffffffff811660009081527f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c476020908152604080832033845290915290205460ff16612449576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008381527f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c46602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff88811691821790925591518693918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a450505050565b600081600111612609575060008181527f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c446020526040812054907c0100000000000000000000000000000000000000000000000000000000821690036126095780600003612604577f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c405482106125ac576040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0160008181527f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c44602052604090205480156125ac575b919050565b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff841615611090576040805173ffffffffffffffffffffffffffffffffffffffff8087168252851660208201529081018390527f16d5b5d582da969cea3131e89ffbd67ee6b1ebbe2576c7a97e9b852fce946a7f9060600160405180910390a150505050565b611067612ae1565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156126f0576110e2836133f6565b8273ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612775575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261277291810190614b8c565b60015b612801576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f7420555550530000000000000000000000000000000000006064820152608401610f21565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81146128b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c655555494400000000000000000000000000000000000000000000006064820152608401610f21565b506110e2838383613500565b600260975403612928576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610f21565b6002609755565b61293883612304565b158061295a575073ffffffffffffffffffffffffffffffffffffffff84163314155b15612991576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806188b981106129d8576040517f287d9057000000000000000000000000000000000000000000000000000000008152600481018290526188b96024820152604401610f21565b7f6de956d2cb2e161f8c91c6ae7b286358c7458d5ad5e26ea2d55330fbe282839c858673ffffffffffffffffffffffffffffffffffffffff16612a1a876115b9565b73ffffffffffffffffffffffffffffffffffffffff1614868686612a3e8b8b613525565b604051612a5096959493929190614bee565b60405180910390a15050505050565b6001609755565b6000612a907f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c405490565b9050612a9d8460016138a3565b7ffe0c067afc4fe17adcf4cfa139aabad6dc30dd86dfe39fb2b858961637156cdd84828585604051612ad29493929190614d0e565b60405180910390a19392505050565b60335473ffffffffffffffffffffffffffffffffffffffff1633146110c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610f21565b612b6a6138bd565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b612c5e612297565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612bb53390565b6040805160808101825260008082526020820181905291810182905260608101919091526108817f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c40600084815260049190910160205260409020546040805160808101825273ffffffffffffffffffffffffffffffffffffffff8316815260a083901c67ffffffffffffffff1660208201527c0100000000000000000000000000000000000000000000000000000000831615159181019190915260e89190911c606082015290565b6040517f150b7a0200000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff85169063150b7a0290612dd5903390899088908890600401614d44565b6020604051808303816000875af1925050508015612e2e575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252612e2b91810190614d83565b60015b612ea5573d808015612e5c576040519150601f19603f3d011682016040523d82523d6000602084013e612e61565b606091505b508051600003612e9d576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a02000000000000000000000000000000000000000000000000000000001490505b949350505050565b604080516080810182526000808252602082018190529181018290526060810191909152610881612f24836124ea565b6040805160808101825273ffffffffffffffffffffffffffffffffffffffff8316815260a083901c67ffffffffffffffff1660208201527c0100000000000000000000000000000000000000000000000000000000831615159181019190915260e89190911c606082015290565b606061012d80546109a5906148d8565b606060a06040510180604052602081039150506000815280825b600183039250600a81066030018353600a900480612fbc57508190037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909101908152919050565b7fee151c8401928dc223602bb187aff91b9a56c7cae5476ef1b3287b085a16c85f54610100900460ff166130ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f455243373231415f5f496e697469616c697a61626c653a20636f6e747261637460448201527f206973206e6f7420696e697469616c697a696e670000000000000000000000006064820152608401610f21565b610abd8282613929565b7fee151c8401928dc223602bb187aff91b9a56c7cae5476ef1b3287b085a16c85f54610100900460ff1661317a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f455243373231415f5f496e697469616c697a61626c653a20636f6e747261637460448201527f206973206e6f7420696e697469616c697a696e670000000000000000000000006064820152608401610f21565b6110c5613a5f565b600054610100900460ff16613219576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610f21565b6110c5613b15565b600054610100900460ff166132b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610f21565b6110c5613bb5565b600054610100900460ff16613357576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610f21565b6110c5613c76565b600054610100900460ff166110c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610f21565b73ffffffffffffffffffffffffffffffffffffffff81163b61349a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152608401610f21565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b61350983613d0d565b6000825111806135165750805b156110e2576110908383613d5a565b6040805160c0810182526000808252602082018190529181019190915260608082018190526080820181905260a0820152600082815261012e602052604090205473ffffffffffffffffffffffffffffffffffffffff16803b156137a6576040517f66df322e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152602482018590528216906366df322e90349060440160006040518083038185885af19350505050801561363957506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526136369190810190614ea3565b60015b6136df57613645614f8b565b806308c379a0036136985750613659614fa6565b80613664575061369a565b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f219190614249565b505b3d8080156136c4576040519150601f19603f3d011682016040523d82523d6000602084013e6136c9565b606091505b508051156136d957805181602001fd5b506136e8565b91506108819050565b6040517f3791dc6a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152821690633791dc6a90349060240160006040518083038185885af1158015613757573d6000803e3d6000fd5b50505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261379e9190810190614ea3565b915050610881565b73ffffffffffffffffffffffffffffffffffffffff811615806137f457508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b61382a576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160c081018252600180825260208083018290528284019190915282518082018452600080825260608401919091528351808301855281815260808401528351818152918201909352909160a083019190613898565b60608152602001906001900390816138835790505b509052949350505050565b610abd828260405180602001604052806000815250613d7f565b60655460ff166110c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610f21565b7fee151c8401928dc223602bb187aff91b9a56c7cae5476ef1b3287b085a16c85f54610100900460ff166139df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f455243373231415f5f496e697469616c697a61626c653a20636f6e747261637460448201527f206973206e6f7420696e697469616c697a696e670000000000000000000000006064820152608401610f21565b7f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c42613a0a8382614971565b507f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c43613a368282614971565b5060017f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c40555050565b7fee151c8401928dc223602bb187aff91b9a56c7cae5476ef1b3287b085a16c85f54610100900460ff166110c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f455243373231415f5f496e697469616c697a61626c653a20636f6e747261637460448201527f206973206e6f7420696e697469616c697a696e670000000000000000000000006064820152608401610f21565b600054610100900460ff16613bac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610f21565b6110c533612bdf565b600054610100900460ff16613c4c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610f21565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b600054610100900460ff16612a5f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610f21565b613d16816133f6565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606110ae838360405180606001604052806027815260200161506160279139613e50565b613d898383613ed5565b73ffffffffffffffffffffffffffffffffffffffff83163b156110e2577f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c40548281035b613ddf6000868380600101945086612d7a565b613e15576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b818110613dcc57817f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c405414613e4957600080fd5b5050505050565b60606000808573ffffffffffffffffffffffffffffffffffffffff1685604051613e7a919061504e565b600060405180830381855af49150503d8060008114613eb5576040519150601f19603f3d011682016040523d82523d6000602084013e613eba565b606091505b5091509150613ecb86838387614097565b9695505050505050565b7f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c40546000829003613f32576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff831660008181527f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c456020908152604080832080546801000000000000000188020190558483527f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c4490915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b81811461402c57808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600101613ff4565b5081600003614067576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c4055506110e2600084838561263b565b6060831561412d5782516000036141265773ffffffffffffffffffffffffffffffffffffffff85163b614126576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610f21565b5081612eec565b612eec83838151156136645781518083602001fd5b7fffffffff000000000000000000000000000000000000000000000000000000008116811461106757600080fd5b60006020828403121561418257600080fd5b81356110ae81614142565b803573ffffffffffffffffffffffffffffffffffffffff8116811461260457600080fd5b600080604083850312156141c457600080fd5b6141cd8361418d565b946020939093013593505050565b60005b838110156141f65781810151838201526020016141de565b50506000910152565b600081518084526142178160208601602086016141db565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006110ae60208301846141ff565b60006020828403121561426e57600080fd5b5035919050565b60008060006060848603121561428a57600080fd5b6142938461418d565b92506142a16020850161418d565b9150604084013590509250925092565b6000602082840312156142c357600080fd5b6110ae8261418d565b60008083601f8401126142de57600080fd5b50813567ffffffffffffffff8111156142f657600080fd5b60208301915083602082850101111561430e57600080fd5b9250929050565b6000806000806060858703121561432b57600080fd5b6143348561418d565b935060208501359250604085013567ffffffffffffffff81111561435757600080fd5b614363878288016142cc565b95989497509550505050565b60008060006040848603121561438457600080fd5b61438d8461418d565b9250602084013567ffffffffffffffff8111156143a957600080fd5b6143b5868287016142cc565b9497909650939450505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f830116810181811067ffffffffffffffff82111715614435576144356143c2565b6040525050565b60405160c0810167ffffffffffffffff8111828210171561445f5761445f6143c2565b60405290565b600067ffffffffffffffff82111561447f5761447f6143c2565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60006144b683614465565b6040516144c382826143f1565b8092508481528585850111156144d857600080fd5b8484602083013760006020868301015250509392505050565b600082601f83011261450257600080fd5b6110ae838335602085016144ab565b6000806040838503121561452457600080fd5b61452d8361418d565b9150602083013567ffffffffffffffff81111561454957600080fd5b614555858286016144f1565b9150509250929050565b60006020828403121561457157600080fd5b813567ffffffffffffffff81111561458857600080fd5b8201601f8101841361459957600080fd5b612eec848235602084016144ab565b60008083601f8401126145ba57600080fd5b50813567ffffffffffffffff8111156145d257600080fd5b6020830191508360208260051b850101111561430e57600080fd5b6000806020838503121561460057600080fd5b823567ffffffffffffffff81111561461757600080fd5b614623858286016145a8565b90969095509350505050565b6020808252825182820181905260009190848201906040850190845b818110156117a6576146a683855173ffffffffffffffffffffffffffffffffffffffff815116825267ffffffffffffffff602082015116602083015260408101511515604083015262ffffff60608201511660608301525050565b928401926080929092019160010161464b565b6000806000604084860312156146ce57600080fd5b6146d78461418d565b9250602084013567ffffffffffffffff8111156146f357600080fd5b6143b5868287016145a8565b6020808252825182820181905260009190848201906040850190845b818110156117a65783518352928401929184019160010161471b565b60008060006060848603121561474c57600080fd5b6147558461418d565b92506020840135915061476a6040850161418d565b90509250925092565b60008060006060848603121561478857600080fd5b6147918461418d565b95602085013595506040909401359392505050565b801515811461106757600080fd5b600080604083850312156147c757600080fd5b6147d08361418d565b915060208301356147e0816147a6565b809150509250929050565b6000806000806080858703121561480157600080fd5b61480a8561418d565b93506148186020860161418d565b925060408501359150606085013567ffffffffffffffff81111561483b57600080fd5b614847878288016144f1565b91505092959194509250565b815173ffffffffffffffffffffffffffffffffffffffff16815260208083015167ffffffffffffffff169082015260408083015115159082015260608083015162ffffff169082015260808101610881565b600080604083850312156148b857600080fd5b6148c18361418d565b91506148cf6020840161418d565b90509250929050565b600181811c908216806148ec57607f821691505b602082108103614925577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f8211156110e257600081815260208120601f850160051c810160208610156149525750805b601f850160051c820191505b81811015610e585782815560010161495e565b815167ffffffffffffffff81111561498b5761498b6143c2565b61499f8161499984546148d8565b8461492b565b602080601f8311600181146149f257600084156149bc5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555610e58565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015614a3f57888601518255948401946001909101908401614a20565b5085821015614a7b57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614aef57600080fd5b83018035915067ffffffffffffffff821115614b0a57600080fd5b60200191503681900382131561430e57600080fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112614b5357600080fd5b9190910192915050565b60008351614b6f8184602088016141db565b835190830190614b838183602088016141db565b01949350505050565b600060208284031215614b9e57600080fd5b5051919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff87168152600060208715158184015286604084015260a06060840152614c2d60a084018688614ba5565b838103608085015284511515815281850151151582820152604085015115156040820152606085015160c06060830152614c6a60c08301826141ff565b905060808601518282036080840152614c8382826141ff565b91505060a086015182820360a084015281925080518083528483019350848160051b840101858301925060005b82811015614cfc577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0858303018652614cea8285516141ff565b95870195938701939150600101614cb0565b509d9c50505050505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff85168152836020820152606060408201526000613ecb606083018486614ba5565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525083604083015260806060830152613ecb60808301846141ff565b600060208284031215614d9557600080fd5b81516110ae81614142565b8051612604816147a6565b600082601f830112614dbc57600080fd5b8151614dc781614465565b604051614dd482826143f1565b828152856020848701011115614de957600080fd5b614dfa8360208301602088016141db565b95945050505050565b600082601f830112614e1457600080fd5b8151602067ffffffffffffffff80831115614e3157614e316143c2565b8260051b604051614e44848301826143f1565b93845285810183019383810188861115614e5d57600080fd5b84880192505b85831015614e9757825184811115614e7b5760008081fd5b614e898a87838c0101614dab565b825250918401918401614e63565b50979650505050505050565b600060208284031215614eb557600080fd5b815167ffffffffffffffff80821115614ecd57600080fd5b9083019060c08286031215614ee157600080fd5b614ee961443c565b614ef283614da0565b8152614f0060208401614da0565b6020820152614f1160408401614da0565b6040820152606083015182811115614f2857600080fd5b614f3487828601614dab565b606083015250608083015182811115614f4c57600080fd5b614f5887828601614dab565b60808301525060a083015182811115614f7057600080fd5b614f7c87828601614e03565b60a08301525095945050505050565b600060033d11156113c35760046000803e5060005160e01c90565b600060443d1015614fb45790565b6040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc803d016004833e81513d67ffffffffffffffff816024840111818411171561500257505050505090565b828501915081518181111561501a5750505050505090565b843d87010160208285010111156150345750505050505090565b615043602082860101876143f1565b509095945050505050565b60008251614b538184602087016141db56fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000813000a
Loading...
Loading
Loading...
Loading
Loading...
Loading
Loading...
Loading
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.

