0 txs
21 calls
constructor
constructor()
functions
ADMIN_DELEGATE_ROLE
viewfunction ADMIN_DELEGATE_ROLE() view returns (bytes32)
ADMIN_ROLE
viewfunction ADMIN_ROLE() view returns (bytes32)
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
configurator
viewfunction configurator() view returns (address)
decimals
viewfunction decimals() view returns (uint8)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getRoleMember
viewfunction getRoleMember(bytes32 role, uint256 index) view returns (address)
getRoleMemberCount
viewfunction getRoleMemberCount(bytes32 role) view returns (uint256)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
isAdmin
viewfunction isAdmin(address sender) view returns (bool)
isOperator
viewfunction isOperator(address sender) view returns (bool)
name
viewfunction name() view returns (string)
OPERATOR
viewfunction OPERATOR() view returns (bytes32)
requireAdmin
viewfunction requireAdmin(address sender) view
requireAtLeastOperator
viewfunction requireAtLeastOperator(address sender) view
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
symbol
viewfunction symbol() view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
approve
nonpayablefunction approve(address spender, uint256 value) returns (bool)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
initialize
nonpayablefunction initialize(string name_, string symbol_, address admin_)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address callerConfirmation)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
transfer
nonpayablefunction transfer(address to, uint256 value) returns (bool)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 value) returns (bool)
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
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)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
errors
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
AddressZero
error AddressZero()
ERC20InsufficientAllowance
error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed)
ERC20InsufficientBalance
error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed)
ERC20InvalidApprover
error ERC20InvalidApprover(address approver)
ERC20InvalidReceiver
error ERC20InvalidReceiver(address receiver)
ERC20InvalidSender
error ERC20InvalidSender(address sender)
ERC20InvalidSpender
error ERC20InvalidSpender(address spender)
Forbidden
error Forbidden()
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
creation bytecode
0x608060405234801561001057600080fd5b50306040518060400160405280600b81526020016a24b734ba34b0b634bd32b960a91b815250604051806040016040528060048152602001631a5b9a5d60e21b81525081600390816100629190610387565b50600461006f8282610387565b5050506001600160a01b03811661009957604051639fabe1c160e01b815260040160405180910390fd5b6100b1600080516020614e9d8339815191528261015e565b506100ca600080516020614e7d8339815191528261015e565b506100e3600080516020614e7d83398151915280610196565b61011b7fc171260023d22a25a00a2789664c9334017843b831138c8ef03cc8897e5873d7600080516020614e7d833981519152610196565b610153600080516020614e9d8339815191527fc171260023d22a25a00a2789664c9334017843b831138c8ef03cc8897e5873d7610196565b506001600755610446565b60008061016b84846101e1565b9050801561018d57600084815260066020526040902061018b908461028f565b505b90505b92915050565b600082815260056020526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b60008281526005602090815260408083206001600160a01b038516845290915281205460ff166102875760008381526005602090815260408083206001600160a01b03861684529091529020805460ff1916600117905561023f3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610190565b506000610190565b600061018d836001600160a01b038416600081815260018301602052604081205461028757508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610190565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061031057607f821691505b60208210810361033057634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610382576000816000526020600020601f850160051c8101602086101561035f5750805b601f850160051c820191505b8181101561037e5782815560010161036b565b5050505b505050565b81516001600160401b038111156103a0576103a06102e6565b6103b4816103ae84546102fc565b84610336565b602080601f8311600181146103e957600084156103d15750858301515b600019600386901b1c1916600185901b17855561037e565b600085815260208120601f198616915b82811015610418578886015182559484019460019091019084016103f9565b50858210156104365787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b614a28806104556000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c806336568abe116100f957806395d89b4111610097578063a9059cbb11610071578063a9059cbb146103a9578063ca15c873146103bc578063d547741f146103cf578063dd62ed3e146103e257600080fd5b806395d89b4114610384578063983d27371461038c578063a217fddf146103a157600080fd5b806370a08231116100d357806370a082311461032057806375b238fc146103495780639010d07c1461035e57806391d148541461037157600080fd5b806336568abe146102e75780635577210a146102fa5780636d70f7ae1461030d57600080fd5b806318160ddd1161016657806324d7806c1161014057806324d7806c146102875780632b507df81461029a5780632f2ff15d146102c5578063313ce567146102d857600080fd5b806318160ddd1461024957806323b872dd14610251578063248a9ca31461026457600080fd5b806301ffc9a7146101ae57806306fdde03146101d6578063077f224a146101eb5780630952ff5414610200578063095ea7b3146102235780630a2a8aea14610236575b600080fd5b6101c16101bc366004610f59565b61041b565b60405190151581526020015b60405180910390f35b6101de610446565b6040516101cd9190610f83565b6101fe6101f9366004611091565b6104d8565b005b61021560008051602061499383398151915281565b6040519081526020016101cd565b6101c1610231366004611105565b610692565b6101fe61024436600461112f565b6106aa565b600254610215565b6101c161025f36600461114a565b6106b6565b610215610272366004611186565b60009081526005602052604090206001015490565b6101c161029536600461112f565b6106da565b6008546102ad906001600160a01b031681565b6040516001600160a01b0390911681526020016101cd565b6101fe6102d336600461119f565b610712565b604051601281526020016101cd565b6101fe6102f536600461119f565b61073d565b6101fe61030836600461112f565b610775565b6101c161031b36600461112f565b61077e565b61021561032e36600461112f565b6001600160a01b031660009081526020819052604090205490565b6102156000805160206149b383398151915281565b6102ad61036c3660046111cb565b610798565b6101c161037f36600461119f565b6107b7565b6101de6107e2565b6102156000805160206149d383398151915281565b610215600081565b6101c16103b7366004611105565b6107f1565b6102156103ca366004611186565b6107ff565b6101fe6103dd36600461119f565b610816565b6102156103f03660046111ed565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60006001600160e01b03198216635a05180f60e01b148061044057506104408261083b565b92915050565b60606003805461045590611217565b80601f016020809104026020016040519081016040528092919081815260200182805461048190611217565b80156104ce5780601f106104a3576101008083540402835291602001916104ce565b820191906000526020600020905b8154815290600101906020018083116104b157829003601f168201915b5050505050905090565b6008546001600160a01b0316156104ee57600080fd5b6040516104fa90610f4c565b604051809103906000f080158015610516573d6000803e3d6000fd5b50600880546001600160a01b0319166001600160a01b03928316179055811661055257604051639fabe1c160e01b815260040160405180910390fd5b61056a6000805160206149d383398151915282610870565b506105836000805160206149b383398151915282610870565b5061059c6000805160206149b3833981519152806108a5565b6105c26000805160206149938339815191526000805160206149b38339815191526108a5565b6105e86000805160206149d38339815191526000805160206149938339815191526108a5565b602083511061062e5760405162461bcd60e51b815260206004820152600d60248201526c546f6f206c6f6e67206e616d6560981b60448201526064015b60405180910390fd5b60208251106106715760405162461bcd60e51b815260206004820152600f60248201526e151bdbc81b1bdb99c81cde5b589bdb608a1b6044820152606401610625565b825160011b602084015117600355815160011b602083015117600455505050565b6000336106a08185856108f0565b5060019392505050565b6106b3816108fd565b50565b6000336106c4858285610937565b6106cf8585856109af565b506001949350505050565b60006106f46000805160206149b3833981519152836107b7565b806104405750610440600080516020614993833981519152836107b7565b60008281526005602052604090206001015461072d81610a0e565b6107378383610870565b50505050565b6001600160a01b03811633146107665760405163334bd91960e11b815260040160405180910390fd5b6107708282610a18565b505050565b6106b381610a45565b60006104406000805160206149d3833981519152836107b7565b60008281526006602052604081206107b09083610a6b565b9392505050565b60009182526005602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60606004805461045590611217565b6000336106a08185856109af565b600081815260066020526040812061044090610a77565b60008281526005602052604090206001015461083181610a0e565b6107378383610a18565b60006001600160e01b03198216637965db0b60e01b148061044057506301ffc9a760e01b6001600160e01b0319831614610440565b60008061087d8484610a81565b905080156107b057600084815260066020526040902061089d9084610b15565b509392505050565b600082815260056020526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6107708383836001610b2a565b610906816106da565b15801561091957506109178161077e565b155b156106b357604051631dd2188d60e31b815260040160405180910390fd5b6001600160a01b03838116600090815260016020908152604080832093861683529290522054600019811461073757818110156109a057604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401610625565b61073784848484036000610b2a565b6001600160a01b0383166109d957604051634b637e8f60e11b815260006004820152602401610625565b6001600160a01b038216610a035760405163ec442f0560e01b815260006004820152602401610625565b610770838383610bff565b6106b38133610d29565b600080610a258484610d66565b905080156107b057600084815260066020526040902061089d9084610dd3565b610a4e816106da565b6106b357604051631dd2188d60e31b815260040160405180910390fd5b60006107b08383610de8565b6000610440825490565b6000610a8d83836107b7565b610b0d5760008381526005602090815260408083206001600160a01b03861684529091529020805460ff19166001179055610ac53390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610440565b506000610440565b60006107b0836001600160a01b038416610e12565b6001600160a01b038416610b545760405163e602df0560e01b815260006004820152602401610625565b6001600160a01b038316610b7e57604051634a1406b160e11b815260006004820152602401610625565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561073757826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610bf191815260200190565b60405180910390a350505050565b6001600160a01b038316610c2a578060026000828254610c1f9190611267565b90915550610c9c9050565b6001600160a01b03831660009081526020819052604090205481811015610c7d5760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610625565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b038216610cb857600280548290039055610cd7565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610d1c91815260200190565b60405180910390a3505050565b610d3382826107b7565b610d625760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610625565b5050565b6000610d7283836107b7565b15610b0d5760008381526005602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610440565b60006107b0836001600160a01b038416610e59565b6000826000018281548110610dff57610dff61127a565b9060005260206000200154905092915050565b6000818152600183016020526040812054610b0d57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610440565b60008181526001830160205260408120548015610f42576000610e7d600183611290565b8554909150600090610e9190600190611290565b9050808214610ef6576000866000018281548110610eb157610eb161127a565b9060005260206000200154905080876000018481548110610ed457610ed461127a565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080610f0757610f076112a3565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610440565b6000915050610440565b6136d9806112ba83390190565b600060208284031215610f6b57600080fd5b81356001600160e01b0319811681146107b057600080fd5b60006020808352835180602085015260005b81811015610fb157858101830151858201604001528201610f95565b506000604082860101526040601f19601f8301168501019250505092915050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610ff957600080fd5b813567ffffffffffffffff8082111561101457611014610fd2565b604051601f8301601f19908116603f0116810190828211818310171561103c5761103c610fd2565b8160405283815286602085880101111561105557600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160a01b038116811461108c57600080fd5b919050565b6000806000606084860312156110a657600080fd5b833567ffffffffffffffff808211156110be57600080fd5b6110ca87838801610fe8565b945060208601359150808211156110e057600080fd5b506110ed86828701610fe8565b9250506110fc60408501611075565b90509250925092565b6000806040838503121561111857600080fd5b61112183611075565b946020939093013593505050565b60006020828403121561114157600080fd5b6107b082611075565b60008060006060848603121561115f57600080fd5b61116884611075565b925061117660208501611075565b9150604084013590509250925092565b60006020828403121561119857600080fd5b5035919050565b600080604083850312156111b257600080fd5b823591506111c260208401611075565b90509250929050565b600080604083850312156111de57600080fd5b50508035926020909101359150565b6000806040838503121561120057600080fd5b61120983611075565b91506111c260208401611075565b600181811c9082168061122b57607f821691505b60208210810361124b57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561044057610440611251565b634e487b7160e01b600052603260045260246000fd5b8181038181111561044057610440611251565b634e487b7160e01b600052603160045260246000fdfe60a0604052348015600f57600080fd5b506001600055336080526080516134c26102176000396000818161094f0152818161099601528181610a2b01528181610ab401528181610b3f01528181610bca01528181610c6f01528181610cf801528181610d8101528181610e4501528181610ed001528181610f59015281816110080152818161109101528181611131015281816111bc01528181611247015281816112d20152818161135b015281816113e601528181611471015281816115040152818161158d01528181611617015281816116c601528181611751015281816117dc01528181611877015281816118e3015281816119a301528181611a2e01528181611abc01528181611b7601528181611c0101528181611c8c01528181611d3b01528181611dc401528181611e4f01528181611eda01528181611f89015281816120120152818161209b01528181612126015281816121b10152818161226b0152818161231a015281816123c901528181612452015281816124db015281816125a40152818161262f015281816126de01528181612771015281816127fc015281816128ab01528181612934015281816129e301528181612a9201528181612b1b01528181612ba401528181612c5301528181612cdc01528181612d7e01528181612e2d01528181612eb801528181612f6701528181612ff00152818161307901528181613102015261318d01526134c26000f3fe608060405234801561001057600080fd5b506004361061050f5760003560e01c80637ccf2bcc116102a4578063b6fd27ad11610172578063e46b3466116100d9578063f3abe0ec11610092578063f3abe0ec14610932578063f4b69c501461093a578063f7544f1b14610942578063fbfa77cf1461094a578063fc76ef1514610971578063fd9c76f21461097957600080fd5b8063e46b3466146108f4578063e521826f146108fc578063eb6ed33014610904578063f014e48a1461090f578063f0381aba14610917578063f1c5d2b31461092a57600080fd5b8063cb5217761161012b578063cb521776146108a3578063d0f4f2a3146108b6578063d7a797f3146108be578063da6bec61146108c6578063da8ca9b1146108d9578063e410e066146108ec57600080fd5b8063b6fd27ad1461083a578063b9cb972714610865578063bd5f1e261461086d578063bfd72bd914610880578063c037655514610893578063c75cd5711461089b57600080fd5b8063aa3c0eaf11610216578063b1a19a2f116101cf578063b1a19a2f146107e9578063b1a433b5146107fc578063b2a2b08f1461080f578063b3348fdb14610817578063b4f740311461081f578063b62bdb251461082757600080fd5b8063aa3c0eaf146107ae578063aa88c7d9146107b6578063ac44cc34146107be578063ad6c30c8146107c6578063b015a17a146107ce578063b018f93a146107e157600080fd5b8063a04a4b4f11610268578063a04a4b4f1461075d578063a198658a14610765578063a4dfd5641461076d578063a4e41d1014610775578063a7dcec5014610788578063a7eea91c1461079b57600080fd5b80637ccf2bcc1461072a578063812b2eb81461073257806381498d0f1461073a57806385efc0a71461074d5780638f0b06c11461075557600080fd5b80633d879a49116103e157806355d2fbd11161035357806375200eaa1161030c57806375200eaa146106e45780637637d88b146106f7578063776638fa146106ff5780637778b29214610707578063795698ca1461070f5780637c370a371461072257600080fd5b806355d2fbd11461069e5780635d8a94eb146106a65780636cb16065146106b95780636e88a12e146106c157806373873ea0146106d4578063745e1436146106dc57600080fd5b806349ea96db116103a557806349ea96db146106635780634a3855001461066b5780634bc1399c146106735780634bfd981b1461067b57806354a752671461068e57806354fae3ea1461069657600080fd5b80633d879a491461062d5780634125ff9014610635578063421c331d1461064057806342a256f3146106485780634355aef51461065057600080fd5b80632700723b11610485578063322da8391161043e578063322da839146105fb57806332d5b3c314610603578063340a2ace1461060b57806336da7ec11461061557806337b510531461061d5780633a5381b51461062557600080fd5b80632700723b146105b557806328eb16b6146105bd5780632ac3ca01146105c55780632bf76d14146105cd5780632d21933a146105e05780632de63bf8146105e857600080fd5b80630d77c5d2116104d75780630d77c5d21461055b578063181de81e146105635780632264d41e146105765780632476742c1461057e57806325e2042a146105865780632630c12f1461059957600080fd5b8063010ab3ab1461051457806302296df51461052f57806306a55f0f14610539578063087f9ad3146105415780630c037fc614610553575b600080fd5b60345415155b60405190151581526020015b60405180910390f35b610537610981565b005b610537610a16565b6004545b604051908152602001610526565b610537610a9f565b610537610b2a565b6105376105713660046133e1565b610bb5565b610537610c5a565b610537610ce3565b6105376105943660046133e1565b610d6c565b603a545b6040516001600160a01b039091168152602001610526565b610537610e30565b610537610ebb565b600d54610545565b6105376105db366004613411565b610f44565b610537610ff3565b6105376105f63660046133e1565b61107c565b61053761111c565b6105376111a7565b603154151561051a565b610537611232565b6105376112bd565b603d5461059d565b610537611346565b6105456301e1338081565b601f54610545565b6105376113d1565b61053761065e3660046133e1565b61145c565b601654610545565b6105376114ef565b610537611578565b610537610689366004613411565b611602565b6105376116b1565b601354610545565b61053761173c565b6105376106b436600461342a565b6117c7565b600754610545565b6105376106cf366004613411565b611862565b61053761198e565b610537611a19565b6105376106f23660046133e1565b611aa7565b610537611b61565b600154610545565b610537611bec565b61053761071d366004613411565b611c77565b610537611d26565b610537611daf565b610537611e3a565b610537610748366004613411565b611ec5565b610537611f74565b602e54610545565b610537611ffd565b610537612086565b610537612111565b6105376107833660046133e1565b61219c565b610537610796366004613411565b612256565b6105376107a9366004613411565b612305565b602b54610545565b6105376123b4565b60285461059d565b61053761243d565b6105376107dc3660046133e1565b6124c6565b61053761258f565b6105376107f7366004613411565b61261a565b61053761080a3660046133e1565b6126c9565b601954610545565b61053761275c565b602254610545565b610537610835366004613411565b6127e7565b61051a6108483660046133e1565b6001600160a01b0316600090815260406020819052902054151590565b610537612896565b61053761087b366004613411565b61291f565b61053761088e366004613411565b6129ce565b610537612a7d565b610537612b06565b6105376108b1366004613411565b612b8f565b600a54610545565b610537612c3e565b6105376108d43660046133e1565b612cc7565b6105376108e7366004613411565b612d69565b601c54610545565b610537612e18565b60255461059d565b6105456302faf08081565b601054610545565b610537610925366004613411565b612ea3565b610537612f52565b60375461059d565b610537612fdb565b610537613064565b61059d7f000000000000000000000000000000000000000000000000000000000000000081565b6105376130ed565b610537613178565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b1580156109e057600080fd5b505afa1580156109f4573d6000803e3d6000fd5b50505050610a00613201565b610a0a602261322b565b610a146001600055565b565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b158015610a7557600080fd5b505afa158015610a89573d6000803e3d6000fd5b50505050610a95613201565b610a0a603d61322b565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b158015610afe57600080fd5b505afa158015610b12573d6000803e3d6000fd5b50505050610b1e613201565b610a0a602260016132a2565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b158015610b8957600080fd5b505afa158015610b9d573d6000803e3d6000fd5b50505050610ba9613201565b610a0a601960016132a2565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b158015610c1457600080fd5b505afa158015610c28573d6000803e3d6000fd5b50505050610c34613201565b6001600160a01b038116600090815260406020819052812055610c576001600055565b50565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b158015610cb957600080fd5b505afa158015610ccd573d6000803e3d6000fd5b50505050610cd9613201565b610a0a602561322b565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b158015610d4257600080fd5b505afa158015610d56573d6000803e3d6000fd5b50505050610d62613201565b610a0a602861322b565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b158015610dcb57600080fd5b505afa158015610ddf573d6000803e3d6000fd5b50505050610deb613201565b6001600160a01b038116610e1257604051639fabe1c160e01b815260040160405180910390fd5b610e26603d826001600160a01b0316613371565b610c576001600055565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b158015610e8f57600080fd5b505afa158015610ea3573d6000803e3d6000fd5b50505050610eaf613201565b610a0a603a601c6132a2565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b158015610f1a57600080fd5b505afa158015610f2e573d6000803e3d6000fd5b50505050610f3a613201565b610a0a600161322b565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b158015610fa357600080fd5b505afa158015610fb7573d6000803e3d6000fd5b50505050610fc3613201565b6301e13380811115610fe8576040516327df2edd60e11b815260040160405180910390fd5b610e26601682613371565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b15801561105257600080fd5b505afa158015611066573d6000803e3d6000fd5b50505050611072613201565b610a0a601f61322b565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b1580156110db57600080fd5b505afa1580156110ef573d6000803e3d6000fd5b505050506110fb613201565b6001600160a01b0381166000908152604060208190529020610e269061322b565b604051630515457560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690630a2a8aea9060240160006040518083038186803b15801561117b57600080fd5b505afa15801561118f573d6000803e3d6000fd5b5050505061119b613201565b610a0a60316001613371565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b15801561120657600080fd5b505afa15801561121a573d6000803e3d6000fd5b50505050611226613201565b610a0a600760016132a2565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b15801561129157600080fd5b505afa1580156112a5573d6000803e3d6000fd5b505050506112b1613201565b610a0a601f60016132a2565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b15801561131c57600080fd5b505afa158015611330573d6000803e3d6000fd5b5050505061133c613201565b610a0a600d61322b565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b1580156113a557600080fd5b505afa1580156113b9573d6000803e3d6000fd5b505050506113c5613201565b610a0a601060016132a2565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b15801561143057600080fd5b505afa158015611444573d6000803e3d6000fd5b50505050611450613201565b610a0a602e600d6132a2565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b1580156114bb57600080fd5b505afa1580156114cf573d6000803e3d6000fd5b505050506114db613201565b610e266028826001600160a01b0316613371565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b15801561154e57600080fd5b505afa158015611562573d6000803e3d6000fd5b5050505061156e613201565b610a0a601661322b565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b1580156115d757600080fd5b505afa1580156115eb573d6000803e3d6000fd5b505050506115f7613201565b610a0a6001806132a2565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b15801561166157600080fd5b505afa158015611675573d6000803e3d6000fd5b50505050611681613201565b6301e133808111156116a6576040516327df2edd60e11b815260040160405180910390fd5b610e26600a82613371565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b15801561171057600080fd5b505afa158015611724573d6000803e3d6000fd5b50505050611730613201565b610a0a601360016132a2565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b15801561179b57600080fd5b505afa1580156117af573d6000803e3d6000fd5b505050506117bb613201565b610a0a602860076132a2565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b15801561182657600080fd5b505afa15801561183a573d6000803e3d6000fd5b50505050611846613201565b610e2660348261185757600061185a565b60015b60ff16613371565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b1580156118c157600080fd5b505afa1580156118d5573d6000803e3d6000fd5b505050506118e1613201565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561193f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611963919061344c565b811015611983576040516334bbd58560e01b815260040160405180910390fd5b610e26602e82613371565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b1580156119ed57600080fd5b505afa158015611a01573d6000803e3d6000fd5b50505050611a0d613201565b610a0a603760196132a2565b604051630515457560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690630a2a8aea9060240160006040518083038186803b158015611a7857600080fd5b505afa158015611a8c573d6000803e3d6000fd5b50505050611a98613201565b6000603155610a146001600055565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b158015611b0657600080fd5b505afa158015611b1a573d6000803e3d6000fd5b50505050611b26613201565b6001600160a01b038116611b4d57604051639fabe1c160e01b815260040160405180910390fd5b610e266037826001600160a01b0316613371565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b158015611bc057600080fd5b505afa158015611bd4573d6000803e3d6000fd5b50505050611be0613201565b610a0a602b600a6132a2565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b158015611c4b57600080fd5b505afa158015611c5f573d6000803e3d6000fd5b50505050611c6b613201565b610a0a600d60016132a2565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b158015611cd657600080fd5b505afa158015611cea573d6000803e3d6000fd5b50505050611cf6613201565b6301e13380811115611d1b576040516327df2edd60e11b815260040160405180910390fd5b610e26600182613371565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b158015611d8557600080fd5b505afa158015611d99573d6000803e3d6000fd5b50505050611da5613201565b610a0a602e61322b565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b158015611e0e57600080fd5b505afa158015611e22573d6000803e3d6000fd5b50505050611e2e613201565b610a0a601660016132a2565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b158015611e9957600080fd5b505afa158015611ead573d6000803e3d6000fd5b50505050611eb9613201565b610a0a602560046132a2565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b158015611f2457600080fd5b505afa158015611f38573d6000803e3d6000fd5b50505050611f44613201565b6301e13380811115611f69576040516327df2edd60e11b815260040160405180910390fd5b610e26601382613371565b604051630515457560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690630a2a8aea9060240160006040518083038186803b158015611fd357600080fd5b505afa158015611fe7573d6000803e3d6000fd5b50505050611ff3613201565b610a0a603161322b565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b15801561205c57600080fd5b505afa158015612070573d6000803e3d6000fd5b5050505061207c613201565b610a0a603761322b565b604051630515457560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690630a2a8aea9060240160006040518083038186803b1580156120e557600080fd5b505afa1580156120f9573d6000803e3d6000fd5b50505050612105613201565b610a0a603160106132a2565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b15801561217057600080fd5b505afa158015612184573d6000803e3d6000fd5b50505050612190613201565b610a0a601c60016132a2565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b1580156121fb57600080fd5b505afa15801561220f573d6000803e3d6000fd5b5050505061221b613201565b6001600160a01b03811661224257604051639fabe1c160e01b815260040160405180910390fd5b610e26603a826001600160a01b0316613371565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b1580156122b557600080fd5b505afa1580156122c9573d6000803e3d6000fd5b505050506122d5613201565b6301e133808111156122fa576040516327df2edd60e11b815260040160405180910390fd5b610e26600d82613371565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b15801561236457600080fd5b505afa158015612378573d6000803e3d6000fd5b50505050612384613201565b6301e133808111156123a9576040516327df2edd60e11b815260040160405180910390fd5b610e26601f82613371565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b15801561241357600080fd5b505afa158015612427573d6000803e3d6000fd5b50505050612433613201565b610a0a602b61322b565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b15801561249c57600080fd5b505afa1580156124b0573d6000803e3d6000fd5b505050506124bc613201565b610a0a603a61322b565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b15801561252557600080fd5b505afa158015612539573d6000803e3d6000fd5b50505050612545613201565b6001600160a01b03811661256c57604051639fabe1c160e01b815260040160405180910390fd5b6001600160a01b0381166000908152604060208190529020610e26906001613371565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b1580156125ee57600080fd5b505afa158015612602573d6000803e3d6000fd5b5050505061260e613201565b610a0a603460136132a2565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b15801561267957600080fd5b505afa15801561268d573d6000803e3d6000fd5b50505050612699613201565b6302faf0808111156126be57604051636be2692760e11b815260040160405180910390fd5b610e26602b82613371565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b15801561272857600080fd5b505afa15801561273c573d6000803e3d6000fd5b50505050612748613201565b610e266025826001600160a01b0316613371565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b1580156127bb57600080fd5b505afa1580156127cf573d6000803e3d6000fd5b505050506127db613201565b610a0a600460016132a2565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b15801561284657600080fd5b505afa15801561285a573d6000803e3d6000fd5b50505050612866613201565b6301e1338081111561288b576040516327df2edd60e11b815260040160405180910390fd5b610e26602282613371565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b1580156128f557600080fd5b505afa158015612909573d6000803e3d6000fd5b50505050612915613201565b610a0a601c61322b565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b15801561297e57600080fd5b505afa158015612992573d6000803e3d6000fd5b5050505061299e613201565b6301e133808111156129c3576040516327df2edd60e11b815260040160405180910390fd5b610e26600482613371565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b158015612a2d57600080fd5b505afa158015612a41573d6000803e3d6000fd5b50505050612a4d613201565b6301e13380811115612a72576040516327df2edd60e11b815260040160405180910390fd5b610e26601982613371565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b158015612adc57600080fd5b505afa158015612af0573d6000803e3d6000fd5b50505050612afc613201565b610a0a600a61322b565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b158015612b6557600080fd5b505afa158015612b79573d6000803e3d6000fd5b50505050612b85613201565b610a0a601061322b565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b158015612bee57600080fd5b505afa158015612c02573d6000803e3d6000fd5b50505050612c0e613201565b6301e13380811115612c33576040516327df2edd60e11b815260040160405180910390fd5b610e26601c82613371565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b158015612c9d57600080fd5b505afa158015612cb1573d6000803e3d6000fd5b50505050612cbd613201565b610a0a601361322b565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b158015612d2657600080fd5b505afa158015612d3a573d6000803e3d6000fd5b50505050612d46613201565b6001600160a01b0381166000908152604060208190529020610e269060166132a2565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b158015612dc857600080fd5b505afa158015612ddc573d6000803e3d6000fd5b50505050612de8613201565b6301e13380811115612e0d576040516327df2edd60e11b815260040160405180910390fd5b610e26601082613371565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b158015612e7757600080fd5b505afa158015612e8b573d6000803e3d6000fd5b50505050612e97613201565b610a0a603d601f6132a2565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b158015612f0257600080fd5b505afa158015612f16573d6000803e3d6000fd5b50505050612f22613201565b6301e13380811115612f47576040516327df2edd60e11b815260040160405180910390fd5b610e26600782613371565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b158015612fb157600080fd5b505afa158015612fc5573d6000803e3d6000fd5b50505050612fd1613201565b610a0a600461322b565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b15801561303a57600080fd5b505afa15801561304e573d6000803e3d6000fd5b5050505061305a613201565b610a0a603461322b565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b1580156130c357600080fd5b505afa1580156130d7573d6000803e3d6000fd5b505050506130e3613201565b610a0a601961322b565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b15801561314c57600080fd5b505afa158015613160573d6000803e3d6000fd5b5050505061316c613201565b610a0a600a60016132a2565b604051632abb908560e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635577210a9060240160006040518083038186803b1580156131d757600080fd5b505afa1580156131eb573d6000803e3d6000fd5b505050506131f7613201565b610a0a600761322b565b60026000540361322457604051633ee5aeb560e01b815260040160405180910390fd5b6002600055565b60408051825481526001830154602082015260028301549181019190915281906060016040518091039020817fc08e2e448f7fd547d5c8f7d8697748d06c36e2f91df196b8f66a32dbc07680544260405161328891815260200190565b60405180910390a350600060028201819055600190910155565b600282015460008190036132c95760405163b7d0949760e01b815260040160405180910390fd5b81546132d58242613465565b10156132f45760405163b7d0949760e01b815260040160405180910390fd5b60408051845481526001850154602082015260028501549181019190915283906060016040518091039020817f76cc3973e9b688b8959356a52556099c7791a9d4a3b18ad4980f16a09c7b986b4260405161335191815260200190565b60405180910390a350505060018101805482556000600290920182905555565b426002830181905560018301829055604080518454815260208101849052908101919091528290606001604080519182900382208483524260208401529183917fba4fb6817d665ae34b679da3350527ff62bc6d7557cbb5db3a0ed5ae310c6493910160405180910390a3505050565b6000602082840312156133f357600080fd5b81356001600160a01b038116811461340a57600080fd5b9392505050565b60006020828403121561342357600080fd5b5035919050565b60006020828403121561343c57600080fd5b8135801515811461340a57600080fd5b60006020828403121561345e57600080fd5b5051919050565b8181038181111561348657634e487b7160e01b600052601160045260246000fd5b9291505056fea2646970667358221220d7617a04447d4f7bbbb106462a0b88e77a679807cf1ff81eb2e152a4edbbefc364736f6c63430008190033c171260023d22a25a00a2789664c9334017843b831138c8ef03cc8897e5873d7f23ec0bb4210edd5cba85afd05127efcd2fc6a781bfed49188da1081670b22d846a52cf33029de9f84853745a87af28464c80bf0346df1b32e205fc73319f622a26469706673582212207beeccbc1ab560b3ccc2ba8512d10c8b7a534b14a54d8965ff7835db5d843c9964736f6c63430008190033f23ec0bb4210edd5cba85afd05127efcd2fc6a781bfed49188da1081670b22d846a52cf33029de9f84853745a87af28464c80bf0346df1b32e205fc73319f622