201 txs
203 calls
constructor
constructor(address _normies, address owner)
functions
canCraft
viewfunction canCraft(address user, uint16 recipeId) view returns (bool)
getRecipe
viewfunction getRecipe(uint16 recipeId) view returns (tuple)
normies
viewfunction normies() view returns (address)
owner
viewfunction owner() view returns (address)
recipes
viewfunction recipes(uint16) view returns (uint16 requiredModifier, uint16 resultCardId, uint8 resultRarity, bool active)
VERSION
viewfunction VERSION() view returns (string)
craftCards
nonpayablefunction craftCards(uint16 recipeId)
renounceOwnership
nonpayablefunction renounceOwnership()
rescueERC20
nonpayablefunction rescueERC20(address token)
rescueERC721
nonpayablefunction rescueERC721(address token, uint256 tokenId)
rescueETH
nonpayablefunction rescueETH()
setRecipe
nonpayablefunction setRecipe(uint16 recipeId, uint16[] requiredCards, uint8[] requiredQuantities, uint16 requiredModifier, uint16 resultCardId, uint8 resultRarity, bool active)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
CardsCrafted
event CardsCrafted(address indexed crafter, uint16 recipeId, uint256 resultTokenId)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
RecipeUpdated
event RecipeUpdated(uint16 indexed recipeId, bool active)
errors
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
creation bytecode
0x60a0346100ef57601f612ec138819003918201601f19168301916001600160401b038311848410176100f35780849260409485528339810103126100ef5761004681610107565b906001600160a01b039061005c90602001610107565b169081156100dc575f80546001600160a01b031981168417825560405193916001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a360018055608052612da5908161011c82396080518181816113cf015281816117c701528181612b4e0152612cfa0152f35b631e4fbdf760e01b5f525f60045260245ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036100ef5756fe60806040526004361015610011575f80fd5b5f5f3560e01c806320800a0014612045578063221f0fd3146113fe57806335facc85146113ba5780636521059114610ea5578063715018a614610e4e5780638da5cb5b14610e27578063ccec371614610d01578063d798183414610c4b578063e18bf59f14610beb578063e478cf05146101cc578063f2fde38b14610146578063f8dd145b146101075763ffa1ad74146100a9575f80fd5b34610104578060031936011261010457604080516100c78282612185565b6005815260208101640312e302e360dc1b81528251938492602084525180928160208601528585015e828201840152601f01601f19168101030190f35b80fd5b503461010457604036600319011261010457610121612154565b6024359161ffff8316830361010457602061013c84846121d3565b6040519015158152f35b503461010457602036600319011261010457610160612154565b6101686129b8565b6001600160a01b031680156101b85781546001600160a01b03198116821783556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b631e4fbdf760e01b82526004829052602482fd5b50346101045760203660031901126101045761ffff6101e9612113565b8260a06040516101f88161216a565b60608152606060208201528260408201528260608201528260808201520152168152600260205260408120604051916102308361216a565b6040518081602085549283815201858552602085209285905b80600f830110610b03576102df945491818110610aee575b818110610ad6575b818110610abf575b818110610aa7575b818110610a8f575b818110610a77575b818110610a5f575b818110610a47575b818110610a2f575b818110610a17575b8181106109ff575b8181106109e7575b8181106109cf575b8181106109b7575b81811061099f575b10610991575b500382612185565b8352600182019160405180938491602082549182815201918552602085209085915b81601f8401106107e957916104219391600296959354918181106107d5575b8181106107be575b8181106107a7575b818110610790575b81811061077a575b818110610763575b81811061074c575b818110610735575b81811061071e575b818110610707575b8181106106f0575b8181106106d9575b8181106106c2575b8181106106ab575b818110610694575b81811061067d575b818110610666575b81811061064f575b818110610638575b818110610621575b81811061060a575b8181106105f3575b8181106105dc575b8181106105c5575b8181106105ae575b818110610597575b818110610580575b818110610569575b818110610552575b81811061053b575b818110610524575b10610516575b509694960385612185565b6020830193845201546040820161ffff82168152606083019061ffff8360101c168252608084019560ff8460201c16875260ff60a086019460281c1615158452604051956020875260e0870195519560c06020890152865180915260206101008901970190835b8181106104fc575050505194601f19878203016040880152602080875192838152019601915b8181106104e3575050509461ffff60ff928187985116606088015251166080860152511660a084015251151560c08301520390f35b825160ff168752602096870196909201916001016104ae565b825161ffff16895260209889019890920191600101610488565b60f81c81526020015f610416565b92602060019160ff8560f01c168152019301610410565b92602060019160ff8560e81c168152019301610408565b92602060019160ff8560e01c168152019301610400565b92602060019160ff8560d81c1681520193016103f8565b92602060019160ff8560d01c1681520193016103f0565b92602060019160ff8560c81c1681520193016103e8565b92602060019160ff8560c01c1681520193016103e0565b92602060019160ff8560b81c1681520193016103d8565b92602060019160ff8560b01c1681520193016103d0565b92602060019160ff8560a81c1681520193016103c8565b92602060019160ff8560a01c1681520193016103c0565b92602060019160ff8560981c1681520193016103b8565b92602060019160ff8560901c1681520193016103b0565b92602060019160ff8560881c1681520193016103a8565b92602060019160ff8560801c1681520193016103a0565b92602060019160ff8560781c168152019301610398565b92602060019160ff8560701c168152019301610390565b92602060019160ff8560681c168152019301610388565b92602060019160ff8560601c168152019301610380565b92602060019160ff8560581c168152019301610378565b92602060019160ff8560501c168152019301610370565b92602060019160ff8560481c168152019301610368565b92602060019160ff8560401c168152019301610360565b92602060019160ff8560381c168152019301610358565b92602060019160ff8560301c168152019301610350565b92602060019160ff8560281c168152019301610348565b92602060019160ff85831c168152019301610340565b92602060019160ff8560181c168152019301610338565b92602060019160ff8560101c168152019301610330565b92602060019160ff8560081c168152019301610328565b92602060019160ff85168152019301610320565b935090916001610400602092865460ff8116825260ff8160081c168583015260ff8160101c16604083015260ff8160181c16606083015260ff81861c16608083015260ff8160281c1660a083015260ff8160301c1660c083015260ff8160381c1660e083015260ff8160401c1661010083015260ff8160481c1661012083015260ff8160501c1661014083015260ff8160581c1661016083015260ff8160601c1661018083015260ff8160681c166101a083015260ff8160701c166101c083015260ff8160781c166101e083015260ff8160801c1661020083015260ff8160881c1661022083015260ff8160901c1661024083015260ff8160981c1661026083015260ff8160a01c1661028083015260ff8160a81c166102a083015260ff8160b01c166102c083015260ff8160b81c166102e083015260ff8160c01c1661030083015260ff8160c81c1661032083015260ff8160d01c1661034083015260ff8160d81c1661036083015260ff8160e01c1661038083015260ff8160e81c166103a083015260ff8160f01c166103c083015260f81c6103e0820152019401920190869392610301565b60f01c81526020015f6102d7565b92602060019161ffff8560e01c1681520193016102d1565b92602060019161ffff8560d01c1681520193016102c9565b92602060019161ffff8560c01c1681520193016102c1565b92602060019161ffff8560b01c1681520193016102b9565b92602060019161ffff8560a01c1681520193016102b1565b92602060019161ffff8560901c1681520193016102a9565b92602060019161ffff8560801c1681520193016102a1565b92602060019161ffff8560701c168152019301610299565b92602060019161ffff8560601c168152019301610291565b92602060019161ffff8560501c168152019301610289565b92602060019161ffff8560401c168152019301610281565b92602060019161ffff8560301c168152019301610279565b92602060019161ffff85831c168152019301610271565b92602060019161ffff8560101c168152019301610269565b92602060019161ffff85168152019301610261565b916010919350610200600191865461ffff8116825261ffff81861c16602083015261ffff8160201c16604083015261ffff8160301c16606083015261ffff8160401c16608083015261ffff8160501c1660a083015261ffff8160601c1660c083015261ffff8160701c1660e083015261ffff8160801c1661010083015261ffff8160901c1661012083015261ffff8160a01c1661014083015261ffff8160b01c1661016083015261ffff8160c01c1661018083015261ffff8160d01c166101a083015261ffff8160e01c166101c083015260f01c6101e0820152019401920184929391610249565b5034610104576020366003190112610104576002604060809261ffff610c0f612113565b1681528260205220015460ff6040519161ffff8116835261ffff8160101c166020840152818160201c16604084015260281c1615156060820152f35b5034610cfd576040366003190112610cfd576004356001600160a01b03811690819003610cfd57610c7a6129b8565b610c826129de565b5f546001600160a01b0316610c988115156129fe565b813b15610cfd575f916064839260405194859384926323b872dd60e01b8452306004850152602484015260243560448401525af18015610cf257610cdf575b506001805580f35b610ceb91505f90612185565b5f5f610cd7565b6040513d5f823e3d90fd5b5f80fd5b34610cfd576020366003190112610cfd576004356001600160a01b03811690818103610cfd57610d2f6129b8565b610d376129de565b5f546001600160a01b031690610d4e8215156129fe565b6040516370a0823160e01b815230600482015290602082602481875afa918215610cf2575f92610df3575b5081610d86575b60018055005b6020925f8093604051908682019363a9059cbb60e01b85526024830152604482015260448152610db7606482612185565b51925af115610cf2575f513d610dea5750803b155b610dd857808080610d80565b635274afe760e01b5f5260045260245ffd5b60011415610dcc565b9091506020813d602011610e1f575b81610e0f60209383612185565b81010312610cfd57519084610d79565b3d9150610e02565b34610cfd575f366003190112610cfd575f546040516001600160a01b039091168152602090f35b34610cfd575f366003190112610cfd57610e666129b8565b5f80546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610cfd5760e0366003190112610cfd57610ebe612113565b6024356001600160401b038111610cfd57610edd903690600401612124565b906044356001600160401b038111610cfd57610efd903690600401612124565b5f949194506064359161ffff8316809303610cfd576084359161ffff8316809303610cfd5760a4359060ff8216809203610cfd5760c43595861515809703610cfd57610f476129b8565b818803611381576005831161134b5760405197610f638961216a565b610f6c816121a6565b91610f7a6040519384612185565b818352602083019160051b810190368211610cfd57915b818310611330575050508752610fa6816121a6565b97610fb4604051998a612185565b818952602089019160051b810190368211610cfd57915b818310611316575050506020860196875260408601938452606086019283526080860190815261ffff60a08701928684521695865f52600260205260405f2090518051906001600160401b03821161122057600160401b82116112205760209083548385558084106112c1575b500190825f5260205f208160041c915f5b8381106112815750600f198116900380611234575b505050506001810197518051906001600160401b03821161122057600160401b8211611220576020908a54838c558084106111cf575b5001985f5260205f208160051c915f5b8381106111885750601f198116900380611132575b897f816409a87b778a9fdc8fa20c47c6a8ff58bf7f0b73481f5bac9e4d1727eaa4e960208b8b8b8b8b61ffff60028d019451169260ff60281b64ff0000000063ffff00008754935160101b169351891b169351151560281b169360ff60281b199164ffffffffff191617161717179055604051908152a2005b995f9a5f5b818110611157575050500197909755949586959061ffff600260206110b9565b90919b602061117e6001928f60ff86915116919060ff809160031b9316831b921b19161790565b9d01929101611137565b5f5f5b602081106111a05750838201556001016110a4565b9c9060206111c68f9260019360ff865116919060ff809160031b9316831b921b19161790565b92019d0161118b565b6111f9908c5f52835f20601f80870160051c820192818816806111ff575b500160051c01906121bd565b8b611094565b61121a905f198601908154905f199060200360031b1c169055565b5f6111ed565b634e487b7160e01b5f52604160045260245ffd5b925f935f5b81811061124e5750505001558880808061105e565b909194602061127760019261ffff8951169085851b61ffff809160031b9316831b921b19161790565b9601929101611239565b5f5f5b60108110611299575083820155600101611049565b865190969160019160209161ffff60048b901b81811b199092169216901b1792019601611284565b6112ef90855f52835f20600f80870160041c820192601e8860011b16806112f5575b500160041c01906121bd565b8b611038565b611310905f198601908154905f199060200360031b1c169055565b5f6112e3565b823560ff81168103610cfd57815260209283019201610fcb565b823561ffff81168103610cfd57815260209283019201610f91565b60405162461bcd60e51b815260206004820152600e60248201526d496e76616c69642072617269747960901b6044820152606490fd5b60405162461bcd60e51b81526020600482015260116024820152704d69736d6174636865642061727261797360781b6044820152606490fd5b34610cfd575f366003190112610cfd576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610cfd576020366003190112610cfd5761ffff61141a612113565b6114226129de565b16805f52600260205260405f209060405161143c8161216a565b6040518081602086549283815201865f5260205f20925f905b80600f830110611f5d576114ea945491818110611f48575b818110611f30575b818110611f19575b818110611f01575b818110611ee9575b818110611ed1575b818110611eb9575b818110611ea1575b818110611e89575b818110611e71575b818110611e59575b818110611e41575b818110611e29575b818110611e11575b818110611df9575b10611deb57500382612185565b8152600183019260405180948591602082549182815201915f5260205f20905f915b81601f840110611c435791611629939160029695935491818110611c2f575b818110611c18575b818110611c01575b818110611bea575b818110611bd4575b818110611bbd575b818110611ba6575b818110611b8f575b818110611b78575b818110611b61575b818110611b4a575b818110611b33575b818110611b1c575b818110611b05575b818110611aee575b818110611ad7575b818110611ac0575b818110611aa9575b818110611a92575b818110611a7b575b818110611a64575b818110611a4d575b818110611a36575b818110611a1f575b818110611a08575b8181106119f1575b8181106119da575b8181106119c3575b8181106119ac575b818110611995575b81811061197e575b10611970575b500386612185565b60208301948552015492604082019161ffff85168352606081019161ffff8660101c16835260ff6080830196818160201c16885260281c1615801560a0840152611937578151518151510361190157611686915190519033612b11565b9290156118c75761ffff61169c91511633612cc7565b949015611882575f9460015b84518710156116e5576116bb8786612a3e565b515181018091116116d1576001909601956116a8565b634e487b7160e01b5f52601160045260245ffd5b6116f58691959495939293612adf565b925f915f935b865185101561175b575f935b6117118689612a3e565b515185101561174e5761172e85611728888b612a3e565b51612a3e565b516117398289612a3e565b525f1981146116d15760019485019401611707565b60019095019493506116fb565b859060ff61ffff8a8661176e8987612a3e565b525116915116906040519283916325c7f2dd60e21b835260848301608060048501528251809152602060a485019301905f5b8181106118695750503360248501525060448301526064820192909252602091819003815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1908115610cf2575f91611837575b5060405191825260208201527f8d3f5176d8e50ce1dfe0f0323c44722952120cd8d3b5731989c77a6c91a377d160403392a260018055005b90506020813d602011611861575b8161185260209383612185565b81010312610cfd5751826117ff565b3d9150611845565b82518552879550602094850194909201916001016117a0565b60405162461bcd60e51b815260206004820152601a60248201527f496e73756666696369656e74206d6f64696669657220636172640000000000006044820152606490fd5b60405162461bcd60e51b8152602060048201526012602482015271496e73756666696369656e7420636172647360701b6044820152606490fd5b60405162461bcd60e51b815260206004820152600e60248201526d496e76616c69642072656369706560901b6044820152606490fd5b60405162461bcd60e51b8152602060048201526011602482015270526563697065206e6f742061637469766560781b6044820152606490fd5b60f81c815260200188611621565b92602060019160ff8560f01c16815201930161161b565b92602060019160ff8560e81c168152019301611613565b92602060019160ff8560e01c16815201930161160b565b92602060019160ff8560d81c168152019301611603565b92602060019160ff8560d01c1681520193016115fb565b92602060019160ff8560c81c1681520193016115f3565b92602060019160ff8560c01c1681520193016115eb565b92602060019160ff8560b81c1681520193016115e3565b92602060019160ff8560b01c1681520193016115db565b92602060019160ff8560a81c1681520193016115d3565b92602060019160ff8560a01c1681520193016115cb565b92602060019160ff8560981c1681520193016115c3565b92602060019160ff8560901c1681520193016115bb565b92602060019160ff8560881c1681520193016115b3565b92602060019160ff8560801c1681520193016115ab565b92602060019160ff8560781c1681520193016115a3565b92602060019160ff8560701c16815201930161159b565b92602060019160ff8560681c168152019301611593565b92602060019160ff8560601c16815201930161158b565b92602060019160ff8560581c168152019301611583565b92602060019160ff8560501c16815201930161157b565b92602060019160ff8560481c168152019301611573565b92602060019160ff8560401c16815201930161156b565b92602060019160ff8560381c168152019301611563565b92602060019160ff8560301c16815201930161155b565b92602060019160ff8560281c168152019301611553565b92602060019160ff85831c16815201930161154b565b92602060019160ff8560181c168152019301611543565b92602060019160ff8560101c16815201930161153b565b92602060019160ff8560081c168152019301611533565b92602060019160ff8516815201930161152b565b935090916001610400602092865460ff8116825260ff8160081c168583015260ff8160101c16604083015260ff8160181c16606083015260ff81861c16608083015260ff8160281c1660a083015260ff8160301c1660c083015260ff8160381c1660e083015260ff8160401c1661010083015260ff8160481c1661012083015260ff8160501c1661014083015260ff8160581c1661016083015260ff8160601c1661018083015260ff8160681c166101a083015260ff8160701c166101c083015260ff8160781c166101e083015260ff8160801c1661020083015260ff8160881c1661022083015260ff8160901c1661024083015260ff8160981c1661026083015260ff8160a01c1661028083015260ff8160a81c166102a083015260ff8160b01c166102c083015260ff8160b81c166102e083015260ff8160c01c1661030083015260ff8160c81c1661032083015260ff8160d01c1661034083015260ff8160d81c1661036083015260ff8160e01c1661038083015260ff8160e81c166103a083015260ff8160f01c166103c083015260f81c6103e082015201940192019087939261150c565b60f01c8152602001876102d7565b92602060019161ffff8560e01c1681520193016114dd565b92602060019161ffff8560d01c1681520193016114d5565b92602060019161ffff8560c01c1681520193016114cd565b92602060019161ffff8560b01c1681520193016114c5565b92602060019161ffff8560a01c1681520193016114bd565b92602060019161ffff8560901c1681520193016114b5565b92602060019161ffff8560801c1681520193016114ad565b92602060019161ffff8560701c1681520193016114a5565b92602060019161ffff8560601c16815201930161149d565b92602060019161ffff8560501c168152019301611495565b92602060019161ffff8560401c16815201930161148d565b92602060019161ffff8560301c168152019301611485565b92602060019161ffff85831c16815201930161147d565b92602060019161ffff8560101c168152019301611475565b92602060019161ffff8516815201930161146d565b916010919350610200600191865461ffff8116825261ffff81861c16602083015261ffff8160201c16604083015261ffff8160301c16606083015261ffff8160401c16608083015261ffff8160501c1660a083015261ffff8160601c1660c083015261ffff8160701c1660e083015261ffff8160801c1661010083015261ffff8160901c1661012083015261ffff8160a01c1661014083015261ffff8160b01c1661016083015261ffff8160c01c1661018083015261ffff8160d01c166101a083015261ffff8160e01c166101c083015260f01c6101e0820152019401920184929391611455565b34610cfd575f366003190112610cfd5761205d6129b8565b6120656129de565b5f546001600160a01b031661207b8115156129fe565b4790816120885760018055005b5f80809381935af13d1561210e573d6001600160401b03811161122057604051906120bd601f8201601f191660200183612185565b81525f60203d92013e5b156120d3578080610d80565b60405162461bcd60e51b8152602060048201526013602482015272115512081d1c985b9cd9995c8819985a5b1959606a1b6044820152606490fd5b6120c7565b6004359061ffff82168203610cfd57565b9181601f84011215610cfd578235916001600160401b038311610cfd576020808501948460051b010111610cfd57565b600435906001600160a01b0382168203610cfd57565b60c081019081106001600160401b0382111761122057604052565b90601f801991011681019081106001600160401b0382111761122057604052565b6001600160401b0381116112205760051b60200190565b8181106121c8575050565b5f81556001016121bd565b9061ffff165f52600260205260405f2090604051916121f18361216a565b6040518081602084549283815201845f5260205f20925f905b80600f8301106128d057612290945491818110610aee57818110610ad657818110610abf57818110610aa757818110610a8f57818110610a7757818110610a5f57818110610a4757818110610a2f57818110610a17578181106109ff578181106109e7578181106109cf578181106109b75781811061099f571061099157500382612185565b8352600181019060405180928391602082549182815201915f5260205f20905f915b81601f84011061272857916123cf939160029695935491818110612714575b8181106126fd575b8181106126e6575b8181106126cf575b8181106126b9575b8181106126a2575b81811061268b575b818110612674575b81811061265d575b818110612646575b81811061262f575b818110612618575b818110612601575b8181106125ea575b8181106125d3575b8181106125bc575b8181106125a5575b81811061258e575b818110612577575b818110612560575b818110612549575b818110612532575b81811061251b575b818110612504575b8181106124ed575b8181106124d6575b8181106124bf575b8181106124a8575b818110612491575b81811061247a575b818110612463575b10612455575b500384612185565b82602086015201549260ff604082019461ffff8116865261ffff8160101c166060840152818160201c16608084015260281c1615801560a083015261244d575190815181510361244d576124239183612b11565b50156124475761ffff61243892511690612cc7565b501561244357600190565b5f90565b50505f90565b505050505f90565b60f81c81526020015f6123c7565b92602060019160ff8560f01c1681520193016123c1565b92602060019160ff8560e81c1681520193016123b9565b92602060019160ff8560e01c1681520193016123b1565b92602060019160ff8560d81c1681520193016123a9565b92602060019160ff8560d01c1681520193016123a1565b92602060019160ff8560c81c168152019301612399565b92602060019160ff8560c01c168152019301612391565b92602060019160ff8560b81c168152019301612389565b92602060019160ff8560b01c168152019301612381565b92602060019160ff8560a81c168152019301612379565b92602060019160ff8560a01c168152019301612371565b92602060019160ff8560981c168152019301612369565b92602060019160ff8560901c168152019301612361565b92602060019160ff8560881c168152019301612359565b92602060019160ff8560801c168152019301612351565b92602060019160ff8560781c168152019301612349565b92602060019160ff8560701c168152019301612341565b92602060019160ff8560681c168152019301612339565b92602060019160ff8560601c168152019301612331565b92602060019160ff8560581c168152019301612329565b92602060019160ff8560501c168152019301612321565b92602060019160ff8560481c168152019301612319565b92602060019160ff8560401c168152019301612311565b92602060019160ff8560381c168152019301612309565b92602060019160ff8560301c168152019301612301565b92602060019160ff8560281c1681520193016122f9565b92602060019160ff85831c1681520193016122f1565b92602060019160ff8560181c1681520193016122e9565b92602060019160ff8560101c1681520193016122e1565b92602060019160ff8560081c1681520193016122d9565b92602060019160ff851681520193016122d1565b935090916001610400602092865460ff8116825260ff8160081c168583015260ff8160101c16604083015260ff8160181c16606083015260ff81861c16608083015260ff8160281c1660a083015260ff8160301c1660c083015260ff8160381c1660e083015260ff8160401c1661010083015260ff8160481c1661012083015260ff8160501c1661014083015260ff8160581c1661016083015260ff8160601c1661018083015260ff8160681c166101a083015260ff8160701c166101c083015260ff8160781c166101e083015260ff8160801c1661020083015260ff8160881c1661022083015260ff8160901c1661024083015260ff8160981c1661026083015260ff8160a01c1661028083015260ff8160a81c166102a083015260ff8160b01c166102c083015260ff8160b81c166102e083015260ff8160c01c1661030083015260ff8160c81c1661032083015260ff8160d01c1661034083015260ff8160d81c1661036083015260ff8160e01c1661038083015260ff8160e81c166103a083015260ff8160f01c166103c083015260f81c6103e08201520194019201908593926122b2565b916010919350610200600191865461ffff8116825261ffff81861c16602083015261ffff8160201c16604083015261ffff8160301c16606083015261ffff8160401c16608083015261ffff8160501c1660a083015261ffff8160601c1660c083015261ffff8160701c1660e083015261ffff8160801c1661010083015261ffff8160901c1661012083015261ffff8160a01c1661014083015261ffff8160b01c1661016083015261ffff8160c01c1661018083015261ffff8160d01c166101a083015261ffff8160e01c166101c083015260f01c6101e082015201940192018492939161220a565b5f546001600160a01b031633036129cb57565b63118cdaa760e01b5f523360045260245ffd5b6002600154146129ef576002600155565b633ee5aeb560e01b5f5260045ffd5b15612a0557565b60405162461bcd60e51b8152602060048201526011602482015270125b9d985b1a59081c9958da5c1a595b9d607a1b6044820152606490fd5b8051821015612a525760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b602081830312610cfd578051906001600160401b038211610cfd57019080601f83011215610cfd578151612a99816121a6565b92612aa76040519485612185565b81845260208085019260051b820101928311610cfd57602001905b828210612acf5750505090565b8151815260209182019101612ac2565b90612ae9826121a6565b612af66040519182612185565b8281528092612b07601f19916121a6565b0190602036910137565b9091606090835191612b22836121a6565b92612b306040519485612185565b808452612b3f601f19916121a6565b01905f5b828110612cb75750507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690505f5b8551811015612caa5761ffff612b908288612a3e565b5116612bd85f60ff612ba28588612a3e565b516040516359334bb160e01b81526001600160a01b038b16600482015261ffff9095166024860152169291829081906044820190565b0381875afa908115610cf2575f91612c88575b50818151105f14612c3257505050505050505060405190612c0d602083612185565b5f82525f805b818110612c215750505f9190565b806060602080938701015201612c13565b612c3b82612adf565b612c458488612a3e565b52612c508387612a3e565b505f5b828110612c6557505050600101612b7a565b80612c7260019284612a3e565b51612c8182611728888c612a3e565b5201612c53565b612ca491503d805f833e612c9c8183612185565b810190612a66565b5f612beb565b5050509291505060019190565b8082602080938801015201612b43565b6040516359334bb160e01b81526001600160a01b03909116600482015261ffff90911660248201525f81806044810103817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610cf2575f91612d55575b5060018151105f14612d4557505f905f90565b805115612a525760200151600191565b612d6991503d805f833e612c9c8183612185565b5f612d3256fea264697066735822122094a8e8df7236109768a1a8429f098f68f360c60b572dd540f016c15aef56836e64736f6c634300081e0033000000000000000000000000b5ab2c4528c9a8da3208956fa4c0fd14533e300a000000000000000000000000b72392b77ba872ac8b80ceedb3a4054349730f3b