1 tx
1 call
constructor
constructor(address randomItemAddr_, address bonusItemAddr_)
functions
bonusItemAddress
viewfunction bonusItemAddress() view returns (address)
claimedQuantityOfItemByUsers
viewfunction claimedQuantityOfItemByUsers(address, uint256) view returns (uint256)
claimedQuantityOfItems
viewfunction claimedQuantityOfItems(uint256) view returns (uint256)
currencyAddresses
viewfunction currencyAddresses(uint256) view returns (address)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
getClaimedQuantityOfItemByUser
viewfunction getClaimedQuantityOfItemByUser(address userAddress_, uint256[] tokenIds_) view returns (uint256[])
getClaimedQuantityOfItems
viewfunction getClaimedQuantityOfItems(uint256[] tokenIds_) view returns (uint256[])
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getUnboxTimesOfUserInRound
viewfunction getUnboxTimesOfUserInRound(uint256 roundIndex_, uint256[] setIndexs_, address userAddress_) view returns (uint256[])
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
listRounds
viewfunction listRounds(uint256) view returns (string roundId, address roundCreator, uint8 status, uint8 bonusItemType, uint256 bonusItemId, uint256 startTime, uint256 endTime)
mintedBonusItemQuantity
viewfunction mintedBonusItemQuantity(address, uint256) view returns (uint256)
OPERATOR
viewfunction OPERATOR() view returns (bytes32)
randomItemContract
viewfunction randomItemContract() view returns (address)
roundIndex
viewfunction roundIndex() view returns (uint256)
RUNNING
viewfunction RUNNING() view returns (uint8)
setConfigByRounds
viewfunction setConfigByRounds(uint256, uint256) view returns (uint8 requiredRank, uint112 totalBox, uint112 openedBox)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
unboxTimesOfUserBySetInRounds
viewfunction unboxTimesOfUserBySetInRounds(uint256, uint256, address) view returns (uint256)
addCurrencyAddress
nonpayablefunction addCurrencyAddress(address addr_)
addOperator
nonpayablefunction addOperator(address operator)
claimAll
nonpayablefunction claimAll(uint256[] tokenIds_, uint256[] quantities_, uint256 timestamp_, string orderId_, bytes signature_)
createRound
nonpayablefunction createRound(string roundId_, uint256 startTime_, uint256 endTime_, uint8 bonusItemType_, uint256 bonusItemId_, tuple[] setConfigs_)
endRound
nonpayablefunction endRound()
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
removeOperator
nonpayablefunction removeOperator(address operator)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
resetCurrencyAddresses
nonpayablefunction resetCurrencyAddresses()
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setBonusItemAddress
nonpayablefunction setBonusItemAddress(address addr_)
setContainerAddress
nonpayablefunction setContainerAddress(address container_)
setExpireTime
nonpayablefunction setExpireTime(uint256 time_)
setRandomItemAddress
nonpayablefunction setRandomItemAddress(address addr_)
setReceiverAddress
nonpayablefunction setReceiverAddress(address receiver_)
setRoundIndex
nonpayablefunction setRoundIndex(uint256 roundIndex_)
setVerifierAddress
nonpayablefunction setVerifierAddress(address verifier_)
unbox
nonpayablefunction unbox(uint256 setIndex_, uint8 userRank_, tuple priceInfo_, string orderId_, bytes signature_)
events
ERC1155BoxClaimed
event ERC1155BoxClaimed(address indexed userAddress, uint256[] tokenIds, uint256[] quantities, uint256 timestamp)
ERC1155BoxOpened
event ERC1155BoxOpened(string roundId, uint256 indexed roundIndex, uint256 indexed setIndex, address indexed userAddress, uint256 price, uint8 currencyType, uint256 timestamp)
ERC1155RoundCreated
event ERC1155RoundCreated(string roundId, uint256 roundIndex, uint256 timestamp)
ERC1155RoundEnded
event ERC1155RoundEnded(uint256 roundIndex, uint256 timestamp)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
errors
No errors.
creation bytecode
0x60806040523480156200001157600080fd5b506040516200399638038062003996833981016040819052620000349162000242565b6001805562000043826200009a565b6200004e816200009a565b600380546001600160a01b038085166001600160a01b03199283161790925560048054928416929091169190911790556200009260006200008c3390565b62000166565b50506200027a565b6001600160a01b038116620000f65760405162461bcd60e51b815260206004820152601f60248201527f416464726573732063616e206e6f74206265207a65726f20616464726573730060448201526064015b60405180910390fd5b62000115816001600160a01b03166200017660201b62001f881760201c565b620001635760405162461bcd60e51b815260206004820152601a60248201527f41646472657373206d757374206265206120636f6e74726163740000000000006044820152606401620000ed565b50565b62000172828262000185565b5050565b6001600160a01b03163b151590565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1662000172576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620001e13390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b80516001600160a01b03811681146200023d57600080fd5b919050565b600080604083850312156200025657600080fd5b620002618362000225565b9150620002716020840162000225565b90509250929050565b61370c806200028a6000396000f3fe608060405234801561001057600080fd5b50600436106102275760003560e01c80637f30688511610130578063ac8a584a116100b8578063d0aaf7b31161007c578063d0aaf7b31461051a578063d547741f14610556578063ef34723d14610569578063f8d7b0a61461057c578063feb708d81461058f57600080fd5b8063ac8a584a14610490578063b222e2f0146104a3578063b683137b146104c3578063c1cf4e47146104d6578063c97e34b4146104e957600080fd5b80639805d939116100ff5780639805d9391461043a578063983d27371461044d5780639870d7fe146104625780639f2a8acb14610475578063a217fddf1461048857600080fd5b80637f306885146103ee5780638279c7db1461040157806387981cf31461041457806391d148541461042757600080fd5b806325c8fad4116101b35780635a24b906116101825780635a24b90614610391578063648036ae146103a4578063749aa2d9146103ad5780637b0aae0b146103b55780637cbcbef2146103c857600080fd5b806325c8fad4146103495780632f2ff15d1461035157806336568abe146103645780634af355a21461037757600080fd5b80630cc45d59116101fa5780630cc45d59146102b5578063159e12ea146102e057806317e9552614610300578063196bd2a014610313578063248a9ca31461032657600080fd5b806301ffc9a71461022c578063020f66d114610254578063029072021461026957806307e3edcf1461027c575b600080fd5b61023f61023a366004612ab4565b6105ba565b60405190151581526020015b60405180910390f35b610267610262366004612c0b565b6105f1565b005b610267610277366004612d4d565b61095c565b6102a761028a366004612d68565b600960209081526000928352604080842090915290825290205481565b60405190815260200161024b565b6102c86102c3366004612d92565b6109ea565b6040516001600160a01b03909116815260200161024b565b6102a76102ee366004612d92565b600a6020526000908152604090205481565b61026761030e366004612d4d565b610a14565b610267610321366004612d4d565b610a99565b6102a7610334366004612d92565b60009081526020819052604090206001015490565b610267610b27565b61026761035f366004612dab565b610b98565b610267610372366004612dab565b610bc2565b61037f600181565b60405160ff909116815260200161024b565b61026761039f366004612d92565b610c40565b6102a760025481565b610267610c6c565b6102676103c3366004612dd7565b610d9e565b6103db6103d6366004612d92565b6115da565b60405161024b9796959493929190612ee7565b6102676103fc366004612d92565b6116b0565b61026761040f366004612d4d565b61175f565b6003546102c8906001600160a01b031681565b61023f610435366004612dab565b6117e4565b610267610448366004612d4d565b61180d565b6102a76000805160206136b783398151915281565b610267610470366004612d4d565b611892565b6004546102c8906001600160a01b031681565b6102a7600081565b61026761049e366004612d4d565b6118d4565b6104b66104b1366004612f9b565b611913565b60405161024b9190613023565b6102676104d1366004613036565b6119e5565b6104b66104e43660046130d2565b611cbd565b6102a76104f736600461310e565b600860209081526000938452604080852082529284528284209052825290205481565b61052d610528366004613143565b611d75565b6040805160ff90941684526001600160701b03928316602085015291169082015260600161024b565b610267610564366004612dab565b611dc0565b610267610577366004612d4d565b611de5565b6104b661058a366004613165565b611e9a565b6102a761059d366004612d68565b600b60209081526000928352604080842090915290825290205481565b60006001600160e01b03198216637965db0b60e01b14806105eb57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6106096000805160206136b7833981519152336117e4565b61065a5760405162461bcd60e51b815260206004820152601a60248201527f43616c6c6572206973206e6f7420746865206f70657261746f7200000000000060448201526064015b60405180910390fd5b600254600090815260066020526040902060010154600160a01b900460ff16156106965760405162461bcd60e51b8152600401610651906131b2565b8385106106dc5760405162461bcd60e51b8152602060048201526014602482015273151a5b59481cd95d1d1a5b99c81a5b9d985b1a5960621b6044820152606401610651565b42841161071e5760405162461bcd60e51b815260206004820152601060248201526f115b99081d1a5b59481a5b9d985b1a5960821b6044820152606401610651565b600081511161076f5760405162461bcd60e51b815260206004820152601a60248201527f4d7573742068617665206174206c65617374206f6e65207365740000000000006044820152606401610651565b60016002600082825461078291906131ff565b90915550506040805160e0810182528781523360208083019190915260018284015260ff861660608301526080820185905260a0820188905260c082018790526002546000908152600690915291909120815181906107e19082613292565b506020820151600182018054604085015160608601516001600160a01b039094166001600160a81b031990921691909117600160a01b60ff928316021760ff60a81b1916600160a81b91909316029190911790556080820151600282015560a0820151600382015560c09091015160049091015560005b8151811015610916576002546000908152600760205260409020825183908390811061088657610886613351565b602090810291909101810151825460018181018555600094855293839020825191018054938301516040909301516001600160701b03908116600160781b026dffffffffffffffffffffffffffff60781b1991909416610100026effffffffffffffffffffffffffffff1990951660ff90931692909217939093171617905561090f90826131ff565b9050610858565b507f642426d5318468140430fe04388ed461731eeabc7b3ca947ff37c32ce6d9b1e9866002544260405161094c93929190613367565b60405180910390a1505050505050565b6109676000336117e4565b6109835760405162461bcd60e51b81526004016106519061338c565b600254600090815260066020526040902060010154600160a01b900460ff16156109bf5760405162461bcd60e51b8152600401610651906131b2565b6109c881611f97565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b600581815481106109fa57600080fd5b6000918252602090912001546001600160a01b0316905081565b610a1f6000336117e4565b610a3b5760405162461bcd60e51b81526004016106519061338c565b600254600090815260066020526040902060010154600160a01b900460ff1615610a775760405162461bcd60e51b8152600401610651906131b2565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b610aa46000336117e4565b610ac05760405162461bcd60e51b81526004016106519061338c565b600254600090815260066020526040902060010154600160a01b900460ff1615610afc5760405162461bcd60e51b8152600401610651906131b2565b610b0581611f97565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b610b326000336117e4565b610b4e5760405162461bcd60e51b81526004016106519061338c565b600254600090815260066020526040902060010154600160a01b900460ff1615610b8a5760405162461bcd60e51b8152600401610651906131b2565b610b9660056000612a82565b565b600082815260208190526040902060010154610bb381612044565b610bbd838361204e565b505050565b6001600160a01b0381163314610c325760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610651565b610c3c82826120d2565b5050565b610c4b6000336117e4565b610c675760405162461bcd60e51b81526004016106519061338c565b600c55565b610c846000805160206136b7833981519152336117e4565b610cd05760405162461bcd60e51b815260206004820152601a60248201527f43616c6c6572206973206e6f7420746865206f70657261746f720000000000006044820152606401610651565b6002546000908152600660205260409020600190810154600160a01b900460ff1614610d385760405162461bcd60e51b8152602060048201526017602482015276149bdd5b99081a185cc8185b1c9958591e48195b991959604a1b6044820152606401610651565b6002805460009081526006602052604090819020600101805460ff60a01b19169055905490517fc495ff9de3c49d72ae3c9920205b6c7e6f762eab395a81c96eb1ab0ba59ec5eb91610d94914290918252602082015260400190565b60405180910390a1565b610da6612137565b6002546000908152600660205260409020600190810154600160a01b900460ff1614610e0e5760405162461bcd60e51b8152602060048201526017602482015276149bdd5b99081a185cc8185b1c9958591e48195b991959604a1b6044820152606401610651565b600254600090815260066020526040808220815160e08101909252805482908290610e3890613212565b80601f0160208091040260200160405190810160405280929190818152602001828054610e6490613212565b8015610eb15780601f10610e8657610100808354040283529160200191610eb1565b820191906000526020600020905b815481529060010190602001808311610e9457829003601f168201915b505050918352505060018201546001600160a01b038116602083015260ff600160a01b820481166040840152600160a81b90910416606082015260028201546080820152600382015460a082015260049091015460c09091015290506000610f163390565b9050428260a001511115610f6c5760405162461bcd60e51b815260206004820152601960248201527f526f756e6420686173206e6f74207374617274656420796574000000000000006044820152606401610651565b428260c001511015610fb25760405162461bcd60e51b815260206004820152600f60248201526e149bdd5b99081a185cc8195b991959608a1b6044820152606401610651565b806001600160a01b031682602001516001600160a01b0316036110175760405162461bcd60e51b815260206004820152601d60248201527f556e626f782062792063726561746f72206e6f742061636365707465640000006044820152606401610651565b600f546001600160a01b03908116908216036110755760405162461bcd60e51b815260206004820152601f60248201527f556e626f7820627920636f6e7461696e6572206e6f74206163636570746564006044820152606401610651565b60108460405161108591906133c3565b9081526040519081900360200190205460ff16156110e05760405162461bcd60e51b815260206004820152601860248201527713dc99195c9259081a185cc8185b1c9958591e481d5cd95960421b6044820152606401610651565b42600c5486602001516110f391906131ff565b10156111355760405162461bcd60e51b815260206004820152601160248201527014da59db985d1d5c9948195e1c1a5c9959607a1b6044820152606401610651565b6111438484838a8a8a612190565b6111835760405162461bcd60e51b8152602060048201526011602482015270496e76616c6964207369676e617475726560781b6044820152606401610651565b60025460009081526007602052604081208054899081106111a6576111a6613351565b600091825260209091200180549091506001600160701b0361010082048116600160781b90920416106112065760405162461bcd60e51b815260206004820152600860248201526714dbdb19081bdd5d60c21b6044820152606401610651565b805460ff90811690881610156112555760405162461bcd60e51b81526020600482015260146024820152730aae6cae440e4c2dcd640dcdee840cadcdeeaced60631b6044820152606401610651565b600554604087015160ff16106112a05760405162461bcd60e51b815260206004820152601060248201526f496e76616c69642063757272656e637960801b6044820152606401610651565b85516112ee5760405162461bcd60e51b815260206004820152601c60248201527f5072696365206d7573742062652067726561746572207468616e2030000000006044820152606401610651565b600160108660405161130091906133c3565b9081526040805160209281900383019020805460ff1916931515939093179092556002546000908152600882528281208b825282528281206001600160a01b038616825290915290812080546001929061135b9084906131ff565b909155505080546001908290600f90611385908490600160781b90046001600160701b03166133df565b92506101000a8154816001600160701b0302191690836001600160701b031602179055506113e96005876040015160ff16815481106113c6576113c6613351565b60009182526020909120015487516001600160a01b039091169084903090612259565b61142c6005876040015160ff168154811061140657611406613351565b600091825260209091200154600e5488516001600160a01b039283169286921690612391565b608083015115611574576004546001600160a01b03166000908152600b602090815260408083206080870151845290915281208054600192906114709084906131ff565b9091555050606083015160ff166000036114fe5760048054608085015160405163b8b31cc360e01b815292830152600160248301526001600160a01b03848116604484015260006064840152169063b8b31cc390608401600060405180830381600087803b1580156114e157600080fd5b505af11580156114f5573d6000803e3d6000fd5b50505050611574565b600480546080850151604051631a5a942d60e21b81526001600160a01b038681169482019490945260248101919091526001604482015291169063696a50b490606401600060405180830381600087803b15801561155b57600080fd5b505af115801561156f573d6000803e3d6000fd5b505050505b600254835187516040808a015190516001600160a01b038716948d9490937f4e0fe0928470127af4e15c8b3b3c9346af0a3aa33d1fc751dda3af7d17df379e936115bf9342906133ff565b60405180910390a45050506115d360018055565b5050505050565b6006602052600090815260409020805481906115f590613212565b80601f016020809104026020016040519081016040528092919081815260200182805461162190613212565b801561166e5780601f106116435761010080835404028352916020019161166e565b820191906000526020600020905b81548152906001019060200180831161165157829003601f168201915b5050505060018301546002840154600385015460049095015493946001600160a01b0383169460ff600160a01b850481169550600160a81b9094049093169287565b6116bb6000336117e4565b6116d75760405162461bcd60e51b81526004016106519061338c565b600254600090815260066020526040902060010154600160a01b900460ff16156117135760405162461bcd60e51b8152600401610651906131b2565b600254811161175a5760405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840e4deeadcc840d2dcc8caf606b1b6044820152606401610651565b600255565b61176a6000336117e4565b6117865760405162461bcd60e51b81526004016106519061338c565b600254600090815260066020526040902060010154600160a01b900460ff16156117c25760405162461bcd60e51b8152600401610651906131b2565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6118186000336117e4565b6118345760405162461bcd60e51b81526004016106519061338c565b600254600090815260066020526040902060010154600160a01b900460ff16156118705760405162461bcd60e51b8152600401610651906131b2565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b61189d6000336117e4565b6118b95760405162461bcd60e51b81526004016106519061338c565b6118d16000805160206136b7833981519152826124c5565b50565b6118df6000336117e4565b6118fb5760405162461bcd60e51b81526004016106519061338c565b6118d16000805160206136b783398151915282611dc0565b6060600082516001600160401b0381111561193057611930612ade565b604051908082528060200260200182016040528015611959578160200160208202803683370190505b50905060005b83518110156119dd576001600160a01b0385166000908152600960205260408120855190919086908490811061199757611997613351565b60200260200101518152602001908152602001600020548282815181106119c0576119c0613351565b60209081029190910101526119d66001826131ff565b905061195f565b509392505050565b6119ed612137565b6010826040516119fd91906133c3565b9081526040519081900360200190205460ff1615611a585760405162461bcd60e51b815260206004820152601860248201527713dc99195c9259081a185cc8185b1c9958591e481d5cd95960421b6044820152606401610651565b42600c5484611a6791906131ff565b1015611aa95760405162461bcd60e51b815260206004820152601160248201527014da59db985d1d5c9948195e1c1a5c9959607a1b6044820152606401610651565b611ab78282338888886124cf565b611af75760405162461bcd60e51b8152602060048201526011602482015270496e76616c6964207369676e617475726560781b6044820152606401610651565b6001601083604051611b0991906133c3565b908152604051908190036020019020805491151560ff1990921691909117905560005b8551811015611bfc576000868281518110611b4957611b49613351565b602002602001015190506000868381518110611b6757611b67613351565b602002602001015190508060096000611b7d3390565b6001600160a01b03166001600160a01b0316815260200190815260200160002060008481526020019081526020016000206000828254611bbd91906131ff565b90915550506000828152600a602052604081208054839290611be09084906131ff565b90915550611bf59250600191508390506131ff565b9050611b2c565b50600354600f54604051631759616b60e11b81526001600160a01b0392831692632eb2c2d692611c379291169033908a908a90600401613431565b600060405180830381600087803b158015611c5157600080fd5b505af1158015611c65573d6000803e3d6000fd5b50505050611c703390565b6001600160a01b03167f1341e6674d0e9dc00be0f842ea1f49fc7d03de08e69c0236dc6efc3f6d69cf42868642604051611cac9392919061348c565b60405180910390a26115d360018055565b6060600082516001600160401b03811115611cda57611cda612ade565b604051908082528060200260200182016040528015611d03578160200160208202803683370190505b50905060005b8351811015611d6e57600a6000858381518110611d2857611d28613351565b6020026020010151815260200190815260200160002054828281518110611d5157611d51613351565b6020908102919091010152611d676001826131ff565b9050611d09565b5092915050565b60076020528160005260406000208181548110611d9157600080fd5b60009182526020909120015460ff811692506001600160701b03610100820481169250600160781b9091041683565b600082815260208190526040902060010154611ddb81612044565b610bbd83836120d2565b611df06000336117e4565b611e0c5760405162461bcd60e51b81526004016106519061338c565b600254600090815260066020526040902060010154600160a01b900460ff1615611e485760405162461bcd60e51b8152600401610651906131b2565b600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b0319166001600160a01b0392909216919091179055565b6060600083516001600160401b03811115611eb757611eb7612ade565b604051908082528060200260200182016040528015611ee0578160200160208202803683370190505b50905060005b8451811015611f7f57600860008781526020019081526020016000206000868381518110611f1657611f16613351565b602002602001015181526020019081526020016000206000856001600160a01b03166001600160a01b0316815260200190815260200160002054828281518110611f6257611f62613351565b6020908102919091010152611f786001826131ff565b9050611ee6565b50949350505050565b6001600160a01b03163b151590565b6001600160a01b038116611fed5760405162461bcd60e51b815260206004820152601f60248201527f416464726573732063616e206e6f74206265207a65726f2061646472657373006044820152606401610651565b6001600160a01b0381163b6118d15760405162461bcd60e51b815260206004820152601a60248201527f41646472657373206d757374206265206120636f6e74726163740000000000006044820152606401610651565b6118d181336124eb565b61205882826117e4565b610c3c576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561208e3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6120dc82826117e4565b15610c3c576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6002600154036121895760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610651565b6002600155565b600080878660025487878760000151886040015189602001516040516020016121c09897969594939291906134c2565b604051602081830303815290604052805190602001209050600061223b88612235846040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b90612544565b600d546001600160a01b039081169116149998505050505050505050565b6040516001600160a01b0384811660248301528381166044830152600091829187169060640160408051601f198184030181529181526020820180516001600160e01b0316636eb1769f60e11b179052516122b491906133c3565b6000604051808303816000865af19150503d80600081146122f1576040519150601f19603f3d011682016040523d82523d6000602084013e6122f6565b606091505b509150915081801561231b575082818060200190518101906123189190613535565b10155b61237e5760405162461bcd60e51b815260206004820152602e60248201527f45786368616e67652063757272656e637920616c6c6f77616e6365206f66207560448201526d73657220697320746f6f206c6f7760901b6064820152608401610651565b612389868685612560565b505050505050565b6040516001600160a01b038481166024830152838116604483015260648201839052600091829187169060840160408051601f198184030181529181526020820180516001600160e01b03166323b872dd60e01b179052516123f391906133c3565b6000604051808303816000865af19150503d8060008114612430576040519150601f19603f3d011682016040523d82523d6000602084013e612435565b606091505b509150915081801561245f57508051158061245f57508080602001905181019061245f919061354e565b6123895760405162461bcd60e51b815260206004820152603160248201527f5472616e7366657248656c7065723a3a7472616e7366657246726f6d3a207472604482015270185b9cd9995c919c9bdb4819985a5b1959607a1b6064820152608401610651565b610c3c828261204e565b60008087868686866040516020016121c0959493929190613595565b6124f582826117e4565b610c3c576125028161267b565b61250d83602061268d565b60405160200161251e9291906135ea565b60408051601f198184030181529082905262461bcd60e51b82526106519160040161365f565b6000806000612553858561282f565b915091506119dd81612874565b6040516001600160a01b038381166024830152600091829186169060440160408051601f198184030181529181526020820180516001600160e01b03166370a0823160e01b179052516125b391906133c3565b6000604051808303816000865af19150503d80600081146125f0576040519150601f19603f3d011682016040523d82523d6000602084013e6125f5565b606091505b509150915081801561261a575082818060200190518101906126179190613535565b10155b6115d35760405162461bcd60e51b815260206004820152602c60248201527f45786368616e67652063757272656e63792062616c616e6365206f662075736560448201526b7220697320746f6f206c6f7760a01b6064820152608401610651565b60606105eb6001600160a01b03831660145b6060600061269c836002613672565b6126a79060026131ff565b6001600160401b038111156126be576126be612ade565b6040519080825280601f01601f1916602001820160405280156126e8576020820181803683370190505b509050600360fc1b8160008151811061270357612703613351565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061273257612732613351565b60200101906001600160f81b031916908160001a9053506000612756846002613672565b6127619060016131ff565b90505b60018111156127d9576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061279557612795613351565b1a60f81b8282815181106127ab576127ab613351565b60200101906001600160f81b031916908160001a90535060049490941c936127d281613689565b9050612764565b5083156128285760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610651565b9392505050565b60008082516041036128655760208301516040840151606085015160001a612859878285856129be565b9450945050505061286d565b506000905060025b9250929050565b6000816004811115612888576128886136a0565b036128905750565b60018160048111156128a4576128a46136a0565b036128f15760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610651565b6002816004811115612905576129056136a0565b036129525760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610651565b6003816004811115612966576129666136a0565b036118d15760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610651565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156129f55750600090506003612a79565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612a49573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612a7257600060019250925050612a79565b9150600090505b94509492505050565b50805460008255906000526020600020908101906118d191905b80821115612ab05760008155600101612a9c565b5090565b600060208284031215612ac657600080fd5b81356001600160e01b03198116811461282857600080fd5b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b0381118282101715612b1657612b16612ade565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612b4457612b44612ade565b604052919050565b600082601f830112612b5d57600080fd5b81356001600160401b03811115612b7657612b76612ade565b612b89601f8201601f1916602001612b1c565b818152846020838601011115612b9e57600080fd5b816020850160208301376000918101602001919091529392505050565b803560ff81168114612bcc57600080fd5b919050565b60006001600160401b03821115612bea57612bea612ade565b5060051b60200190565b80356001600160701b0381168114612bcc57600080fd5b60008060008060008060c08789031215612c2457600080fd5b86356001600160401b0380821115612c3b57600080fd5b612c478a838b01612b4c565b975060209150818901359650604089013595506060612c67818b01612bbb565b955060808a0135945060a08a013582811115612c8257600080fd5b8a019150601f82018b13612c9557600080fd5b8135612ca8612ca382612bd1565b612b1c565b8181529082028301840190848101908d831115612cc457600080fd5b938501935b82851015612d235783858f031215612ce15760008081fd5b612ce9612af4565b612cf286612bbb565b8152612cff878701612bf4565b87820152612d0f60408701612bf4565b604082015282529383019390850190612cc9565b8096505050505050509295509295509295565b80356001600160a01b0381168114612bcc57600080fd5b600060208284031215612d5f57600080fd5b61282882612d36565b60008060408385031215612d7b57600080fd5b612d8483612d36565b946020939093013593505050565b600060208284031215612da457600080fd5b5035919050565b60008060408385031215612dbe57600080fd5b82359150612dce60208401612d36565b90509250929050565b600080600080600085870360e0811215612df057600080fd5b86359550612e0060208801612bbb565b94506060603f1982011215612e1457600080fd5b50612e1d612af4565b6040870135815260608701356020820152612e3a60808801612bbb565b6040820152925060a08601356001600160401b0380821115612e5b57600080fd5b612e6789838a01612b4c565b935060c0880135915080821115612e7d57600080fd5b50612e8a88828901612b4c565b9150509295509295909350565b60005b83811015612eb2578181015183820152602001612e9a565b50506000910152565b60008151808452612ed3816020860160208601612e97565b601f01601f19169290920160200192915050565b60e081526000612efa60e083018a612ebb565b6001600160a01b039890981660208301525060ff9586166040820152939094166060840152608083019190915260a082015260c00152919050565b600082601f830112612f4657600080fd5b81356020612f56612ca383612bd1565b82815260059290921b84018101918181019086841115612f7557600080fd5b8286015b84811015612f905780358352918301918301612f79565b509695505050505050565b60008060408385031215612fae57600080fd5b612fb783612d36565b915060208301356001600160401b03811115612fd257600080fd5b612fde85828601612f35565b9150509250929050565b600081518084526020808501945080840160005b8381101561301857815187529582019590820190600101612ffc565b509495945050505050565b6020815260006128286020830184612fe8565b600080600080600060a0868803121561304e57600080fd5b85356001600160401b038082111561306557600080fd5b61307189838a01612f35565b9650602088013591508082111561308757600080fd5b61309389838a01612f35565b95506040880135945060608801359150808211156130b057600080fd5b6130bc89838a01612b4c565b93506080880135915080821115612e7d57600080fd5b6000602082840312156130e457600080fd5b81356001600160401b038111156130fa57600080fd5b61310684828501612f35565b949350505050565b60008060006060848603121561312357600080fd5b833592506020840135915061313a60408501612d36565b90509250925092565b6000806040838503121561315657600080fd5b50508035926020909101359150565b60008060006060848603121561317a57600080fd5b8335925060208401356001600160401b0381111561319757600080fd5b6131a386828701612f35565b92505061313a60408501612d36565b6020808252601a908201527f526f756e6420697320696e2072756e6e696e6720737461747573000000000000604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808201808211156105eb576105eb6131e9565b600181811c9082168061322657607f821691505b60208210810361324657634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610bbd57600081815260208120601f850160051c810160208610156132735750805b601f850160051c820191505b818110156123895782815560010161327f565b81516001600160401b038111156132ab576132ab612ade565b6132bf816132b98454613212565b8461324c565b602080601f8311600181146132f457600084156132dc5750858301515b600019600386901b1c1916600185901b178555612389565b600085815260208120601f198616915b8281101561332357888601518255948401946001909101908401613304565b50858210156133415787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b60608152600061337a6060830186612ebb565b60208301949094525060400152919050565b60208082526017908201527f43616c6c6572206973206e6f74207468652061646d696e000000000000000000604082015260600190565b600082516133d5818460208701612e97565b9190910192915050565b6001600160701b03818116838216019080821115611d6e57611d6e6131e9565b6080815260006134126080830187612ebb565b60208301959095525060ff929092166040830152606090910152919050565b6001600160a01b0385811682528416602082015260a06040820181905260009061345d90830185612fe8565b828103606084015261346f8185612fe8565b838103608090940193909352505060008152602001949350505050565b60608152600061349f6060830186612fe8565b82810360208401526134b18186612fe8565b915050826040830152949350505050565b600089516134d4818460208e01612e97565b60609990991b6bffffffffffffffffffffffff1916919098019081526014810196909652603486019490945260f892831b6001600160f81b03199081166054870152605586019290925290911b166075830152607682015260960192915050565b60006020828403121561354757600080fd5b5051919050565b60006020828403121561356057600080fd5b8151801515811461282857600080fd5b8051600090602080840183831561301857815187529582019590820190600101612ffc565b600086516135a7818460208b01612e97565b606087901b6bffffffffffffffffffffffff19169083019081526135d76135d16014830188613570565b86613570565b9384525050602090910195945050505050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351613622816017850160208801612e97565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351613653816028840160208801612e97565b01602801949350505050565b6020815260006128286020830184612ebb565b80820281158282048414176105eb576105eb6131e9565b600081613698576136986131e9565b506000190190565b634e487b7160e01b600052602160045260246000fdfe523a704056dcd17bcf83bed8b68c59416dac1119be77755efe3bde0a64e46e0ca264697066735822122098923ec1488fbbd7e66e984803c1f6ef17a2aa0b867f96d41486f3ee830e812e64736f6c63430008110033000000000000000000000000bd749767a067751f42bfc547ad3809845108fa19000000000000000000000000a72815200ba44a2472b24ebe22e453e49904ec33