0 txs
26.8k calls
constructor
constructor()
functions
ADMIN_ROLE
viewfunction ADMIN_ROLE() view returns (bytes32)
allPairsLength
viewfunction allPairsLength() view returns (uint256)
buyTax
viewfunction buyTax() view returns (uint256)
CREATOR_ROLE
viewfunction CREATOR_ROLE() view returns (bytes32)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
getPair
viewfunction getPair(address tokenA, address tokenB) view returns (address)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
pairs
viewfunction pairs(uint256) view returns (address)
router
viewfunction router() view returns (address)
sellTax
viewfunction sellTax() view returns (uint256)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
taxVault
viewfunction taxVault() view returns (address)
createPair
nonpayablefunction createPair(address tokenA, address tokenB) returns (address)
createToken
nonpayablefunction createToken(address tokenAdmin, address uniswapRouter, address assetToken, string name, string ticker, bytes tokenSupplyParams, bytes tokenTaxParams, bytes32 salt) returns (address)
graduate
nonpayablefunction graduate(address tokenAddress)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
initialize
nonpayablefunction initialize(address taxVault_, uint256 buyTax_, uint256 sellTax_)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address callerConfirmation)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setRouter
nonpayablefunction setRouter(address router_)
setTaxParams
nonpayablefunction setTaxParams(address taxVault_, uint256 buyTax_, uint256 sellTax_)
events
Initialized
event Initialized(uint64 version)
PairCreated
event PairCreated(address indexed tokenA, address indexed tokenB, address pair, uint256)
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
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
InvalidInitialization
error InvalidInitialization()
NotInitializing
error NotInitializing()
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
creation bytecode
0x6080806040523460d2577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c1660c1576002600160401b03196001600160401b03821601605c575b60405161533090816100d88239f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a13880604d565b63f92ee8a960e01b60005260046000fd5b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a714610b0757508063248a9ca314610ae05780632f2ff15d14610aae57806336568abe14610a695780634f7041a514610a4b578063574f2ba314610a2d57806375b238fc146109f25780637a1ac61e1461086a5780637acf63371461082e5780638aeda25a146107f357806391d148541461079d578063a217fddf14610781578063b91ac7881461073d578063c0d78655146106fd578063c9c653961461050a578063cc1776d3146104ec578063d547741f146104b1578063e2ad37b014610488578063e6a439051461043a578063f887ea4014610411578063f91522ce146101915763ff6d8d051461011357600080fd5b3461018e57602036600319011261018e578061012d610b7b565b610135610d4d565b6001600160a01b0316803b1561018b57818091602460405180958193631672aef960e21b83528160048401525af1801561017e576101705780f35b61017991610bec565b388180f35b50604051903d90823e3d90fd5b50fd5b80fd5b503461018e5761010036600319011261018e576101ac610b7b565b906101b5610b60565b6044356001600160a01b038116939084900361040d5760643567ffffffffffffffff8111610409576101eb903690600401610c24565b9360843567ffffffffffffffff81116104055761020c903690600401610c24565b60a43567ffffffffffffffff81116104015761022c903690600401610c24565b9060c43567ffffffffffffffff81116103fd5761024d903690600401610c24565b92610256610d4d565b61025e611004565b60405160208101903360601b825242603482015260e435605482015260548152610289607482610bec565b51902095604051956060870187811067ffffffffffffffff8211176103e957926103019261030f95926102ef9a9b9c9560405260018060a01b0316895260018060a01b031660208901526040880152604051978893604060208601526060850190610c9a565b838103601f1901604085015290610c9a565b03601f198101865285610bec565b604051936136cc938486019486861067ffffffffffffffff8711176103d557908694929593916110bb863988845b600382106103b25750505061037390610365610381959660c0606087015260c0860190610c9a565b908482036080860152610c9a565b9160a0818403910152610c9a565b039083f5801561017e5760016000805160206152bb833981519152556040516001600160a01b039091168152602090f35b82516001600160a01b03168152889650602092830192600192909201910161033d565b634e487b7160e01b89526041600452602489fd5b634e487b7160e01b8a52604160045260248afd5b8680fd5b8580fd5b8480fd5b8380fd5b8280fd5b503461018e578060031936011261018e576002546040516001600160a01b039091168152602090f35b503461018e57604036600319011261018e576040602091610459610b7b565b610461610b60565b6001600160a01b039182168352828552838320908216835284529190205460405191168152f35b503461018e578060031936011261018e576005546040516001600160a01b039091168152602090f35b503461018e57604036600319011261018e576104e86004356104d1610b60565b906104e36104de82610c79565b610dbf565b610f64565b5080f35b503461018e578060031936011261018e576020600454604051908152f35b503461018e57604036600319011261018e57610524610b7b565b61052c610b60565b90610535610d4d565b61053d611004565b6001600160a01b031690610552821515611040565b6001600160a01b0316610566811515611040565b6002546001600160a01b031680156106cc5760405190610b14908183019183831067ffffffffffffffff8411176106b8579183916060936147878439815285602082015284604082015203019084f080156106ad5782845260208481526040808620848752825280862080546001600160a01b03199081166001600160a01b039590951694851790915584875286835281872086885290925285208054909116821790556001549390929068010000000000000000851015610699575061063584600160209601600155610bbb565b81549060031b9085821b9160018060a01b03901b19161790557f0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e9604060015481519086825287820152a360016000805160206152bb83398151915255604051908152f35b634e487b7160e01b81526041600452602490fd5b6040513d85823e3d90fd5b634e487b7160e01b87526041600452602487fd5b60405162461bcd60e51b81526020600482015260096024820152682737903937baba32b960b91b6044820152606490fd5b503461018e57602036600319011261018e57610717610b7b565b61071f610cdb565b60018060a01b03166001600160601b0360a01b600254161760025580f35b503461018e57602036600319011261018e576004359060015482101561018e57602061076883610bbb565b905460405160039290921b1c6001600160a01b03168152f35b503461018e578060031936011261018e57602090604051908152f35b503461018e57604036600319011261018e5760ff60406020926107be610b60565b600435825260008051602061529b83398151915285528282206001600160a01b03909116825284522054604051911615158152f35b503461018e578060031936011261018e5760206040517f828634d95e775031b9ff576b159a8509d3053581a8c9c4d7d86899e0afcd882f8152f35b503461018e5761083d36610b91565b90610846610cdb565b60035560045560018060a01b03166001600160601b0360a01b600554161760055580f35b503461018e5761087936610b91565b906000805160206152db833981519152549260ff8460401c16159367ffffffffffffffff8116801590816109ea575b60011490816109e0575b1590816109d7575b506109c85767ffffffffffffffff1981166001176000805160206152db833981519152558461099b575b506108ed61108c565b6108f561108c565b6108fd61108c565b60016000805160206152bb8339815191525561091833610e09565b5060018060a01b03166001600160601b0360a01b60055416176005556003556004556109415780f35b68ff0000000000000000196000805160206152db83398151915254166000805160206152db833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b68ffffffffffffffffff191668010000000000000001176000805160206152db83398151915255386108e4565b63f92ee8a960e01b8652600486fd5b905015386108ba565b303b1591506108b2565b8691506108a8565b503461018e578060031936011261018e5760206040517fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217758152f35b503461018e578060031936011261018e576020600154604051908152f35b503461018e578060031936011261018e576020600354604051908152f35b503461018e57604036600319011261018e57610a83610b60565b336001600160a01b03821603610a9f576104e890600435610f64565b63334bd91960e11b8252600482fd5b503461018e57604036600319011261018e576104e8600435610ace610b60565b90610adb6104de82610c79565b610ebb565b503461018e57602036600319011261018e576020610aff600435610c79565b604051908152f35b905034610b5c576020366003190112610b5c5760043563ffffffff60e01b811680910361040d5760209250637965db0b60e01b8114908115610b4b575b5015158152f35b6301ffc9a760e01b14905038610b44565b5080fd5b602435906001600160a01b0382168203610b7657565b600080fd5b600435906001600160a01b0382168203610b7657565b6060906003190112610b76576004356001600160a01b0381168103610b7657906024359060443590565b600154811015610bd657600160005260206000200190600090565b634e487b7160e01b600052603260045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610c0e57604052565b634e487b7160e01b600052604160045260246000fd5b81601f82011215610b765760208135910167ffffffffffffffff8211610c0e5760405192610c5c601f8401601f191660200185610bec565b82845282820111610b765781600092602092838601378301015290565b60005260008051602061529b83398151915260205260016040600020015490565b919082519283825260005b848110610cc6575050826000602080949584010152601f8019910116010190565b80602080928401015182828601015201610ca5565b3360009081527fb16e88c42fd4e48df2dd6a2eabd6bc9aec654ec170056b470819f8892cc6431c602052604090205460ff1615610d1457565b63e2517d3f60e01b600052336004527fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177560245260446000fd5b3360009081527f7a5b68ff0f13768bc86eb4902144e89f1547a35d6d4bf0e23c2f18b32c5a92f1602052604090205460ff1615610d8657565b63e2517d3f60e01b600052336004527f828634d95e775031b9ff576b159a8509d3053581a8c9c4d7d86899e0afcd882f60245260446000fd5b600081815260008051602061529b8339815191526020908152604080832033845290915290205460ff1615610df15750565b63e2517d3f60e01b6000523360045260245260446000fd5b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16610eb5576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff191660011790553391907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50600090565b600081815260008051602061529b833981519152602090815260408083206001600160a01b038616845290915290205460ff16610f5d57600081815260008051602061529b833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b5050600090565b600081815260008051602061529b833981519152602090815260408083206001600160a01b038616845290915290205460ff1615610f5d57600081815260008051602061529b833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b60026000805160206152bb833981519152541461102f5760026000805160206152bb83398151915255565b633ee5aeb560e01b60005260046000fd5b1561104757565b60405162461bcd60e51b815260206004820152601f60248201527f5a65726f2061646472657373657320617265206e6f7420616c6c6f7765642e006044820152606490fd5b60ff6000805160206152db8339815191525460401c16156110a957565b631afcd79f60e31b60005260046000fdfe6080806040523461073c576136cc803803809161001c8285610969565b8339810160c08282031261073c5780601f8301121561073c5760405190606082016001600160401b0381118382101761083857604052606083018282821161073c5784905b828210610951575050516001600160401b03811161073c57816100859185016109a0565b60808401519093906001600160401b03811161073c57826100a79183016109a0565b60a08201519092906001600160401b03811161073c576100c792016109a0565b82519092906001600160a01b0316801561093b57600080546001600160a01b03198116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a383518401936040816020870196031261073c5760208101516001600160401b03811161073c57856020610151928401016109a0565b6040820151909590916001600160401b03831161073c5761017592016020016109a0565b8051906001600160401b0382116108385760095490600182811c92168015610931575b60208310146108185781601f8493116108c1575b50602090601f83116001146108595760009261084e575b50508160011b916000199060031b1c1916176009555b83516001600160401b03811161083857600854600181811c9116801561082e575b602082101461081857601f81116107b3575b50602094601f821160011461074c57948192939495600092610741575b50508160011b916000199060031b1c1916176008555b602081015160038054610100600160a81b03191660089290921b610100600160a81b031691909117905560400151600480546001600160a01b0319166001600160a01b0392909216919091179055805160a09082018290031261073c576040516000929060a081016001600160401b03811182821017610728576040526020830151815260408301519160208201928352606084015192604083019384526102f560a0608087015196606086019788520161098c565b90608084019182526080838051810103126107245760405191608083016001600160401b038111848210176107105760405260208401518352604084015160208401526103506080606086015195604086019687520161098c565b946060840195865280516103678851855190610a36565b0361070157516001600160801b03106106f25751600780546001600160a01b0319166001600160a01b0392909216919091179055516103cb91906103c190670de0b6b3a7640000906103ba908290610a0d565b9651610a0d565b9551600255610a43565b15159060ff6003549161ffff60e81b905160e81b1692169061010062ff000160e81b0316171760035560018060a01b0390511660018060a01b03196005541617600555806106e2575b50806106c6575b50601180546001600160a01b0319163317905560035460405163c45a015560e01b815260089190911c6001600160a01b03169190602081600481865afa9081156106bb578291610681575b506004805460405163e6a4390560e01b815230928101929092526001600160a01b03908116602483018190529260209183916044918391165afa908115610629578391610643575b506001600160a01b0316610634576004602083946040519283809263c45a015560e01b82525afa9081156106295783916105e3575b506040516364e329cb60e11b81523060048201526001600160a01b03909216602483015290926020918491829081604481015b03926001600160a01b03165af19182156105d6578192610595575b6040516001600160a01b038416808252907f969ffc8569f9af3993220e04ac05164e5db4e3d9f8b1a47f64e7de9a04b8ea2f90602090a161057181610b4d565b50600180546001600160a01b031916919091179055604051612aeb9081610be18239f35b9091506020813d6020116105ce575b816105b160209383610969565b810103126105ca576105c3915061098c565b3880610531565b5080fd5b3d91506105a4565b50604051903d90823e3d90fd5b90506020813d602011610621575b816105fe60209383610969565b8101031261061d576020916106156105169261098c565b9150916104e3565b5050fd5b3d91506105f1565b6040513d85823e3d90fd5b6353fa7c3360e11b8252600482fd5b90506020813d602011610679575b8161065e60209383610969565b810103126106755761066f9061098c565b386104ae565b8280fd5b3d9150610651565b90506020813d6020116106b3575b8161069c60209383610969565b810103126105ca576106ad9061098c565b38610466565b3d915061068f565b6040513d84823e3d90fd5b6007546106dc91906001600160a01b0316610a9a565b3861041b565b6106ec9030610a9a565b38610414565b637f47720f60e11b8852600488fd5b6361cf53d560e01b8952600489fd5b634e487b7160e01b89526041600452602489fd5b8680fd5b634e487b7160e01b85526041600452602485fd5b600080fd5b015190503880610229565b601f198216956008600052806000209160005b88811061079b57508360019596979810610782575b505050811b0160085561023f565b015160001960f88460031b161c19169055388080610774565b9192602060018192868501518155019401920161075f565b60086000527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3601f830160051c8101916020841061080e575b601f0160051c01905b818110610802575061020c565b600081556001016107f5565b90915081906107ec565b634e487b7160e01b600052602260045260246000fd5b90607f16906101fa565b634e487b7160e01b600052604160045260246000fd5b0151905038806101c3565b600960009081528281209350601f198516905b8181106108a95750908460019594939210610890575b505050811b016009556101d9565b015160001960f88460031b161c19169055388080610882565b9293602060018192878601518155019501930161086c565b60096000529091507f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af601f840160051c81019160208510610927575b90601f859493920160051c01905b81811061091857506101ac565b6000815584935060010161090b565b90915081906108fd565b91607f1691610198565b631e4fbdf760e01b600052600060045260246000fd5b6020809161095e8461098c565b815201910190610061565b601f909101601f19168101906001600160401b0382119082101761083857604052565b51906001600160a01b038216820361073c57565b81601f8201121561073c578051906020016001600160401b03821161083857604051926109d7601f8401601f191660200185610969565b8284528282011161073c5760005b8281106109fa57505060206000918301015290565b80602091830151828287010152016109e5565b81810292918115918404141715610a2057565b634e487b7160e01b600052601160045260246000fd5b91908201809211610a2057565b805190811580610a8e575b15610a5a575050600090565b60035490602061ffff60d81b91015160d81b169161ffff60c81b9060c81b169063ffffffff60c81b19161717600355600190565b50602081015115610a4e565b6001600160a01b0316908115610b3d576001546001600160a01b0316821480610b2a575b610b19577fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020600092610afc60018060801b038216600a54610a36565b600a55848452600b825260408420818154019055604051908152a3565b63d43b2e0560e01b60005260046000fd5b5063ffffffff60035460a81c1615610abe565b622e076360e81b60005260046000fd5b80600052601060205260406000205415600014610bda57600f5468010000000000000000811015610838576001810180600f55811015610bc4577f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80201819055600f5460009182526010602052604090912055600190565b634e487b7160e01b600052603260045260246000fd5b5060009056fe608080604052600436101561001357600080fd5b600090813560e01c908163038272b614611b165750806306fdde0314611afa578063095ea7b314611ad357806310b828c914611aac57806318160ddd14611a8e57806323b872dd14611a3a578063313ce56714611a1e578063326b3b8b1461198457806339509351146119335780633de35b791461190a57806342966c68146118ec57806349bd5a5e146118c35780634bed5ad21461189e57806359cabbe414610d1c57806363a9c1f214610cfe57806370a0823114610cc5578063715018a614610c6b57806379cc679014610c375780638589287a14610bc95780638da5cb5b14610ba2578063936b293414610a7357806395d89b41146109985780639808751d14610904578063a1db97821461080a578063a457c2d7146107a9578063a45cae0214610318578063a9059cbb14610755578063ae22107f146106d7578063b0d75097146106b0578063b2c5c9eb1461068b578063b498d39f146105d5578063bfe3098f146105a7578063d6efd7c31461051a578063dd62ed3e146104c5578063e37d9e9514610457578063e85455d714610429578063ea8b242414610400578063ee6a934c1461033d578063eeae0f9714610318578063f14210a6146102a0578063f2fde38b1461021a5763fbfa77cf146101ef57600080fd5b346102175780600319360112610217576007546040516001600160a01b039091168152602090f35b80fd5b503461021757602036600319011261021757610234611b86565b61023c612741565b6001600160a01b0316801561028c5781546001600160a01b03198116821783556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b631e4fbdf760e01b82526004829052602482fd5b50346102175760203660031901126102175780546001600160a01b031633141580610303575b6102f45780808080600435335af16102dc611e54565b50156102e55780f35b6312171d8360e31b8152600490fd5b63faa39fbf60e01b8152600490fd5b506011546001600160a01b03163314156102c6565b5034610217578060031936011261021757602061ffff60035460c81c16604051908152f35b503461021757602036600319011261021757610357611b86565b81546001600160a01b0316331415806103eb575b6103dc576001600160a01b0381169081156103cd573b156103be576020816103b37fb893f883ef734b712208a877459424ee509832c57e0461fb1ac99ed4d42f2d89936129c2565b50604051908152a180f35b630f9da0c760e41b8252600482fd5b63b47cdee560e01b8352600483fd5b63faa39fbf60e01b8252600482fd5b506011546001600160a01b031633141561036b565b50346102175780600319360112610217576005546040516001600160a01b039091168152602090f35b503461021757602036600319011261021757602061044d610448611b86565b611e22565b6040519015158152f35b50346102175760203660031901126102175760043560018060a01b03825416331415806104b0575b6103dc576020816103b37ff7d7abaf8b0e82705f2ef671054dd11a306d870da0bbb8be1ff24bd0096de7ba93612967565b506011546001600160a01b031633141561047f565b50346102175760403660031901126102175760406104e1611b86565b916104ea611b9c565b9260018060a01b03168152600c602052209060018060a01b03166000526020526020604060002054604051908152f35b503461021757806003193601126102175760405180916020600f54928381520191600f82527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac802915b8181106105915761058d8561057981870382611c00565b604051918291602083526020830190611bc3565b0390f35b8254845260209093019260019283019201610562565b503461021757602036600319011261021757604081602092506004358152600e835220541515604051908152f35b5034610217578060031936011261021757604051806020600d5491828152018091600d85527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb590855b8181106106755750505082610634910383611c00565b604051928392602084019060208552518091526040840192915b81811061065c575050500390f35b825184528594506020938401939092019160010161064e565b825484526020909301926001928301920161061e565b5034610217578060031936011261021757602061ffff60035460d81c16604051908152f35b503461021757806003193601126102175760206001600160801b0360065416604051908152f35b5034610217576020366003190112610217576106f1611b86565b81546001600160a01b031633141580610740575b6103dc577f59c3fbcae88f30e9b0e35c132a7f68c53231dffa4722f197c7ecb0ee013eee60906020906001600160a01b03166103b3816128b3565b506011546001600160a01b0316331415610705565b50346102175760403660031901126102175761078d610772611b86565b61077b33611e22565b908115610798575b6024359033611f8f565b602060405160018152f35b90506107a381611e22565b90610783565b5034610217576040366003190112610217576107c3611b86565b602435338352600c6020526040832060018060a01b0383166000526020526040600020548181106107fb5761078d9350039033611e94565b637b5591b560e11b8452600484fd5b503461021757604036600319011261021757610824611b86565b81546001600160a01b0316331415806108ef575b6103dc576001600160a01b03163081146108e05760405163a9059cbb60e01b602082019081523360248084019190915235604480840191909152825261089c9184918291610887606482611c00565b519082865af1610895611e54565b9083612a34565b80519081151591826108c5575b50506108b3575080f35b635274afe760e01b8252600452602490fd5b6108d8925060208091830101910161270a565b1538806108a9565b63992501b360e01b8252600482fd5b506011546001600160a01b0316331415610838565b50346102175760203660031901126102175761091e611b86565b81546001600160a01b031633141580610983575b6103dc57600580546001600160a01b0319166001600160a01b0390921691821790556040519081527fa4eea51cd2f21eac6612ba054a363ae2fd59698fc258ab414313cd73f69f2b8590602090a180f35b506011546001600160a01b0316331415610932565b50346102175780600319360112610217576040519080600954906109bb82611c38565b8085529160018116908115610a4c57506001146109ef575b61058d846109e381860382611c00565b60405191829182611b3d565b600981527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af939250905b808210610a32575090915081016020016109e3826109d3565b919260018160209254838588010152019101909291610a19565b60ff191660208087019190915292151560051b850190920192506109e391508390506109d3565b503461021757604036600319011261021757610a8d611bb2565b60243561ffff811690818103610b9e5783546001600160a01b031633141580610b89575b610b7a576003549061ffff60c81b8460c81b169061ffff60d81b9060d81b16808263ffffffff60c81b198516171761ffff808260d81c169160c81c160161ffff8111610b665760ff63ffffffff60c81b011984169092171761ffff918216151560ff16176003556040805160c884901c83168152948216602086015260d89290921c169083015260608201527f8da1f77a22734510b762a9625e69e737d7c0cc48984e810e5802fb341eb80a3e90608090a180f35b634e487b7160e01b87526011600452602487fd5b63faa39fbf60e01b8452600484fd5b506011546001600160a01b0316331415610ab1565b8380fd5b5034610217578060031936011261021757546040516001600160a01b039091168152602090f35b50346102175760203660031901126102175760043560018060a01b0382541633141580610c22575b6103dc576020816103b37fdd5aeaec2032ed464aed048b9014721d48de827cef3d77f78f0a76f1f0136dd4936127cb565b506011546001600160a01b0316331415610bf1565b503461021757604036600319011261021757610c68610c54611b86565b60243590610c63823383611f1d565b61264a565b80f35b5034610217578060031936011261021757610c84612741565b80546001600160a01b03198116825581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5034610217576020366003190112610217576020906040906001600160a01b03610ced611b86565b168152600b83522054604051908152f35b50346102175780600319360112610217576020600254604051908152f35b503461021757602036600319011261021757610d36611b86565b9060018060a01b0381541633141580611889575b6102f4576004805460ff60a01b1916600160a01b17905560035460a881901c63ffffffff1661187a5763ffffffff60a81b19164260a81b63ffffffff60a81b16176003819055308252600b60205260408220541561186b5760081c6001600160a01b031691301561185c57821561184d578192308352600c6020526040832060018060a01b038216845260205260408320600019905560405160001981527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203092a3602060018060a01b0360045416604460018060a01b0360035460081c16604051968793849263095ea7b360e01b8452600484015260001960248401525af192831561112d57600493611830575b5060035460405163c45a015560e01b815293602091859190829060081c6001600160a01b03165afa90811561112d57604493839261180f575b50602060018060a01b0360045416926040519586809263e6a4390560e01b825230600483015286602483015260018060a01b03165afa9384156118045783946117d3575b50308352600b60205260246020604085205493604051928380926370a0823160e01b82523060048301525afa9081156116495784916117a1575b506001546001600160a01b0386811691168114808061178e575b61177f5780611778575b80611765575b61175657801561174757308552600b6020526040852054958487106117385760035460ff81166112e2575b50906020836110189383899a8a999a508a8b60035460ff8116806112db575b806112cb575b6111b9575b50610f9c9192611f82565b308b52600b865260408b2055818a52600b855260408a20610fbe828254611dff565b9055604051908152600080516020612a96833981519152853092a36004805460405163a9059cbb60e01b81526001600160a01b03938416928101929092526024820193909352948592909116908290899082906044820190565b03925af19182156111935760209261119e575b506024604051809681936335313c2160e11b83523060048401525af1928315611193578593611138575b50907fbf59dda00152e02f20e18cab7307c8afe0714e7f69cf24a1377cbbddcb40f9bb60606110de956020959460405191825286820152846040820152a16004805460ff60a01b1916815560015460405163a9059cbb60e01b81526001600160a01b03938416928101929092526024820193909352938492909116908290869082906044820190565b03925af1801561112d576110fe575b506004805460ff60a01b1916905580f35b61111f9060203d602011611126575b6111178183611c00565b81019061270a565b50386110ed565b503d61110d565b6040513d84823e3d90fd5b9250906020833d60201161118b575b8161115460209383611c00565b8101031261118657915191907fbf59dda00152e02f20e18cab7307c8afe0714e7f69cf24a1377cbbddcb40f9bb611055565b600080fd5b3d9150611147565b6040513d87823e3d90fd5b6111b490833d8511611126576111178183611c00565b61102b565b8c906111c487611e22565b806112bb575b15611253575061ffff60035460d81c1680611221575b505b8015610f9157610f9c9250308d52600b885260408d208181540190556040518181523090600080516020612a968339815191528a3092a3810391610f91565b620f424090830204906006546001600160801b038084168183160116906001600160801b0319161760065501386111e0565b61125c30611e22565b806112ab575b61126d575b506111e2565b60c81c61ffff16801561126757620f424091508202046006546001600160801b038083168183160116906001600160801b0319161760065538611267565b5061ffff8160c81c161515611262565b5061ffff8160d81c1615156111ca565b5060ff60045460a01c1615610f8c565b508c610f86565b96308752600b602052604087205480620f4240611309600a5461ffff8d60e81c169061276a565b048082101580611728575b80611718575b80611701575b806116ea575b806116e3575b61133a575b50505096610f67565b6004805460ff60a01b198116600160a01b1790915590601480820291801590830490911417156116cf578083116116c7575b506040519061137c606083611c00565b6002825260403660208401373061139283612a17565b526001600160a01b031690816113a782612a24565b5260018060a01b03600554169b60208d6024604051809681936370a0823160e01b835260048301525afa9283156116bc578c93611683575b5060081c6001600160a01b03169b4261025881011061166f578c8c9d3b1561166b578c926040519e8f80948193635c11d79560e01b83528960048401528360248401526044830160a0905260a4830161143791611bc3565b9060648301524261025801608483015203925af180611654575b8a9b50999899156000146114b257505050838392611018946020937f60dc41faad9fe4f70f304dcef26d96d71e98ec8e21e4a340921d94dfe46307dc8560405160058152a15b60ff60a01b1960045416600455935094819450989798611331565b60018060a09a939495969798999a1b0360045416906024602060018060a01b036005541693604051928380926370a0823160e01b82528760048301525afa908115611649578491611610575b509061150991611f82565b90816115b3575b50508282101561158d57506001600160801b0361153c60065493611537838616948561276a565b61277d565b1690036001600160801b038111611579579461101893858296946020946001600160801b038d9b9a16906001600160801b03191617600655611497565b634e487b7160e01b89526011600452602489fd5b96959492602092508591509383611018956001600160801b031960065416600655611497565b803b1561160c57604051639348a3a160e01b8152306004820152602481019290925282908290604490829084905af1801561112d576115f3575b80611510565b816115fd91611c00565b6116085788386115ed565b8880fd5b8280fd5b919350506020813d602011611641575b8161162d60209383611c00565b8101031261118657518b92906115096114fe565b3d9150611620565b6040513d86823e3d90fd5b9899909a8161166291611c00565b98978a90611451565b8c80fd5b634e487b7160e01b8c52601160045260248cfd5b9092508b8160203d6020116116b5575b6020926116a08284611c00565b50810103126116b1575191386113df565b8b80fd5b503d611693565b6040513d8e823e3d90fd5b91503861136c565b634e487b7160e01b8b52601160045260248bfd5b508961132c565b5060088b901c6001600160a01b0316861415611326565b503060088c901c6001600160a01b03161415611320565b5061172230611e22565b1561131a565b5060ff60045460a01c1615611314565b635dd58b8b60e01b8652600486fd5b633a954ecd60e21b8552600485fd5b630d970b4560e21b8552600485fd5b5063ffffffff60035460a81c1615610f3c565b5084610f36565b63d43b2e0560e01b8652600486fd5b5063ffffffff60035460a81c1615610f2c565b90506020813d6020116117cb575b816117bc60209383611c00565b81010312610b9e575138610f12565b3d91506117af565b6117f691945060203d6020116117fd575b6117ee8183611c00565b810190612722565b9238610ed8565b503d6117e4565b6040513d85823e3d90fd5b61182991925060203d6020116117fd576117ee8183611c00565b9038610e94565b6118489060203d602011611126576111178183611c00565b610e5b565b63b2fa1ef360e01b8252600482fd5b6356fdae6560e11b8252600482fd5b6330d86fb160e11b8252600482fd5b63b1f3376760e01b8252600482fd5b506011546001600160a01b0316331415610d4a565b5034610217578060031936011261021757602061ffff60035460e81c16604051908152f35b50346102175780600319360112610217576001546040516001600160a01b039091168152602090f35b503461021757602036600319011261021757610c686004353361264a565b50346102175780600319360112610217576004546040516001600160a01b039091168152602090f35b50346102175760403660031901126102175761078d9061197d6040611956611b86565b338452600c60209081528285206001600160a01b0383168652905292205460243590611dff565b9033611e94565b50346102175760203660031901126102175761199e611bb2565b81546001600160a01b031633141580611a09575b6103dc5760407fe4351c45b53ffb7ebad0b66cc0f1a3dfe2963c099421eeaded141104df39206a9161ffff600354918160e81b8160e81b168260e81b198416176003558184519360e81c168352166020820152a180f35b506011546001600160a01b03163314156119b2565b5034610217578060031936011261021757602060405160128152f35b50346102175760603660031901126102175761078d611a57611b86565b611a5f611b9c565b60443590611a6e823385611f1d565b611a7783611e22565b9283611f8f579250611a8881611e22565b92611f8f565b50346102175780600319360112610217576020600a54604051908152f35b5034610217578060031936011261021757602063ffffffff60035460a81c16604051908152f35b50346102175760403660031901126102175761078d611af0611b86565b6024359033611e94565b503461021757806003193601126102175761058d6109e3611c72565b905034611b395781600319360112611b395760209061ffff60035460d81c168152f35b5080fd5b91909160208152825180602083015260005b818110611b70575060409293506000838284010152601f8019910116010190565b8060208092870101516040828601015201611b4f565b600435906001600160a01b038216820361118657565b602435906001600160a01b038216820361118657565b6004359061ffff8216820361118657565b906020808351928381520192019060005b818110611be15750505090565b82516001600160a01b0316845260209384019390920191600101611bd4565b90601f8019910116810190811067ffffffffffffffff821117611c2257604052565b634e487b7160e01b600052604160045260246000fd5b90600182811c92168015611c68575b6020831014611c5257565b634e487b7160e01b600052602260045260246000fd5b91607f1691611c47565b63ffffffff60035460a81c1615611d3b57604051600854816000611c9583611c38565b8083529260018116908115611d1c5750600114611cbc575b611cb992500382611c00565b90565b506008600090815290917ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee35b818310611d00575050906020611cb992820101611cad565b6020919350806001915483858801015201910190918392611ce8565b60209250611cb994915060ff191682840152151560051b820101611cad565b604051630333ab7160e51b6020820152600854816000611d5a83611c38565b9260018116908115611de15750600114611d82575b611cb9925003601f198101835282611c00565b50506008600052817ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee36000905b838210611dc65750506024611cb992820101611d6f565b60209192508060019154602485880101520191018391611daf565b60249250611cb994915060ff19168284015280151502820101611d6f565b91908201809211611e0c57565b634e487b7160e01b600052601160045260246000fd5b6001546001600160a01b0391821691168114908115611e3f575090565b90506000526010602052604060002054151590565b3d15611e8f573d9067ffffffffffffffff8211611c225760405191611e83601f8201601f191660200184611c00565b82523d6000602084013e565b606090565b6001600160a01b0316908115611f0c576001600160a01b0316918215611efb5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259183600052600c8252604060002085600052825280604060002055604051908152a3565b63b2fa1ef360e01b60005260046000fd5b6356fdae6560e11b60005260046000fd5b6001600160a01b038082166000908152600c60209081526040808320938616835292905220549290919060018401611f56575b50505050565b808410611f7157611f68930391611e94565b38808080611f50565b6313be252b60e01b60005260046000fd5b91908203918211611e0c57565b6001546001600160a01b0380841695939460009290911686148080612637575b6126285780612615575b80612602575b6125f3576001600160a01b0383169485156125e45786156125d557858352600b6020526040832054948286106125c65760035460ff8116612191575b5091839160209593600080516020612a9683398151915297955082946003549160ff83169081612189575b5080612179575b61206b575b5050506120429060409394611f82565b868252600b855282822055868152600b845220612060828254611dff565b9055604051908152a3565b6120758593611e22565b80612169575b1561210157505061ffff60035460d81c16806120cf575b505b806120a1575b8080612032565b604093509061204291308452600b875284842081815401905584518181528989893093a3810393509061209a565b620f424090830204906006546001600160801b038084168183160116906001600160801b031916176006550138612092565b61210a90611e22565b80612159575b61211b575b50612094565b60c81c61ffff16801561211557620f424091508202046006546001600160801b038083168183160116906001600160801b0319161760065538612115565b5061ffff8160c81c161515612110565b5061ffff8260d81c16151561207b565b5060ff60045460a01c161561202d565b905038612026565b308552600b60205260408520549081620f42406121b8600a5461ffff8560e81c169061276a565b049182821015806125b6575b806125a6575b8061258f575b80612578575b8061256e575b6121e9575b505050611ffb565b6004805460ff60a01b198116600160a01b17909155926014808202918015908304909114171561157957808311612565575b50602491926040519061222f606083611c00565b6002825260403660208401373061224583612a17565b526001600160a01b0316918261225a83612a24565b52602060018060a01b036005541693604051958680926370a0823160e01b82528760048301525afa93841561255a578a94612522575b5060018060a01b039060081c166102584201918242116116cf57813b1561251e57906122ea8b80949360405196879586948593635c11d79560e01b85528c600486015285602486015260a0604486015260a4850190611bc3565b916064840152608483015203925af1908161250a575b506123645750505091600080516020612a96833981519152959391602095937f60dc41faad9fe4f70f304dcef26d96d71e98ec8e21e4a340921d94dfe46307dc8760405160058152a15b60ff60a01b196004541660045591939581939597386121e1565b600480546005546040516370a0823160e01b81526001600160a01b0391821693810184905292939160209184916024918391165afa80156124ff5789906124cb575b6123b09250611f82565b80612465575b505081811015612437576001600160801b036123dc60065493611537838616948561276a565b1690036001600160801b0381116124235791600080516020612a96833981519152979593916001600160801b03602098969416906001600160801b0319161760065561234a565b634e487b7160e01b86526011600452602486fd5b505091600080516020612a96833981519152959391602095936001600160801b03196006541660065561234a565b813b156124c757604051639348a3a160e01b815230600482015260248101919091529087908290604490829084905af180156124bc57908791156123b657816124ad91611c00565b6124b85785386123b6565b8580fd5b6040513d89823e3d90fd5b8780fd5b506020823d6020116124f7575b816124e560209383611c00565b81010312611186576123b091516123a6565b3d91506124d8565b6040513d8b823e3d90fd5b8861251791999299611c00565b9638612300565b8a80fd5b9093506020813d602011612552575b8161253e60209383611c00565b8101031261254e57519238612290565b8980fd5b3d9150612531565b6040513d8c823e3d90fd5b9150602461221b565b50308b14156121dc565b50600881901c6001600160a01b03168c14156121d6565b50600881901c6001600160a01b03168b14156121d0565b506125b089611e22565b156121ca565b5060ff60045460a01c16156121c4565b635dd58b8b60e01b8452600484fd5b633a954ecd60e21b8352600483fd5b630b07e54560e11b8352600483fd5b630d970b4560e21b8252600482fd5b5063ffffffff60035460a81c1615611fbf565b506001600160a01b038316301415611fb9565b63d43b2e0560e01b8352600483fd5b5063ffffffff60035460a81c1615611faf565b6001600160a01b031680156126f9576001546001600160a01b031615806126e6575b6126d55780600052600b602052604060002054918083106126c457602081600080516020612a9683398151915292600095858752600b84520360408620556001600160801b038116600a5403600a55604051908152a3565b63588569f760e01b60005260046000fd5b63d43b2e0560e01b60005260046000fd5b5063ffffffff60035460a81c161561266c565b6304fca6bd60e41b60005260046000fd5b90816020910312611186575180151581036111865790565b9081602091031261118657516001600160a01b03811681036111865790565b6000546001600160a01b0316330361275557565b63118cdaa760e01b6000523360045260246000fd5b81810292918115918404141715611e0c57565b8115612787570490565b634e487b7160e01b600052601260045260246000fd5b80548210156127b55760005260206000200190600090565b634e487b7160e01b600052603260045260246000fd5b6000818152600e602052604090205480156128ac576000198101818111611e0c57600d54600019810191908211611e0c5781810361285b575b505050600d548015612845576000190161281f81600d61279d565b8154906000199060031b1b19169055600d55600052600e60205260006040812055600190565b634e487b7160e01b600052603160045260246000fd5b61289461286c61287d93600d61279d565b90549060031b1c928392600d61279d565b819391549060031b91821b91600019901b19161790565b9055600052600e602052604060002055388080612804565b5050600090565b60008181526010602052604090205480156128ac576000198101818111611e0c57600f54600019810191908211611e0c5781810361292d575b505050600f548015612845576000190161290781600f61279d565b8154906000199060031b1b19169055600f55600052601060205260006040812055600190565b61294f61293e61287d93600f61279d565b90549060031b1c928392600f61279d565b905560005260106020526040600020553880806128ec565b80600052600e602052604060002054156000146129bc57600d54600160401b811015611c22576129a361287d826001859401600d55600d61279d565b9055600d5490600052600e602052604060002055600190565b50600090565b806000526010602052604060002054156000146129bc57600f54600160401b811015611c22576129fe61287d826001859401600f55600f61279d565b9055600f54906000526010602052604060002055600190565b8051156127b55760200190565b8051600110156127b55760400190565b90612a5a5750805115612a4957805190602001fd5b630a12f52160e11b60005260046000fd5b81511580612a8c575b612a6b575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b15612a6356feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220fa20bf5a33d3d84cd93791cbd1e5cfab6be942383f95e3787d45f057d521bf5b64736f6c634300081a00336080346100e457601f610b1438819003918201601f19168301916001600160401b038311848410176100e9578084926060946040528339810103126100e457610047816100ff565b61005f6040610058602085016100ff565b93016100ff565b60016000556001600160a01b039091169161007b831515610113565b6001600160a01b031690610090821515610113565b6001600160a01b0316916100a5831515610113565b60018060a01b0319600154161760015560018060a01b0319600254161760025560018060a01b031960035416176003556040516109b490816101608239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036100e457565b1561011a57565b60405162461bcd60e51b815260206004820152601f60248201527f5a65726f2061646472657373657320617265206e6f7420616c6c6f7765642e006044820152606490fdfe608080604052600436101561001357600080fd5b60003560e01c9081630902f1ac14610670575080630e06dfc9146106445780630fc63d101461061b5780631b2ef1ca146105215780632ccb1b30146104c65780635673b02d146103f85780635c52a5f2146102a95780635c921eb91461024c5780635c9d6938146102185780635f64b55b146101ef5780637464fc3d146101d1578063b69ef8a81461017c578063c66f2455146100e75763f887ea40146100b957600080fd5b346100e25760003660031901126100e2576001546040516001600160a01b039091168152602090f35b600080fd5b346100e25760003660031901126100e2576003546040516370a0823160e01b815230600482015290602090829060249082906001600160a01b03165afa80156101705760009061013d575b602090604051908152f35b506020813d602011610168575b8161015760209383610791565b810103126100e25760209051610132565b3d915061014a565b6040513d6000823e3d90fd5b346100e25760003660031901126100e2576002546040516370a0823160e01b815230600482015290602090829060249082906001600160a01b03165afa80156101705760009061013d57602090604051908152f35b346100e25760003660031901126100e2576020600654604051908152f35b346100e25760003660031901126100e2576003546040516001600160a01b039091168152602090f35b346100e25760003660031901126100e257602061024460045461023c8115156106aa565b6005546106e8565b604051908152f35b346100e25760403660031901126100e2576102a7610268610694565b61027d60018060a01b03600154163314610708565b6102916001600160a01b03821615156107b3565b60035460243591906001600160a01b0316610819565b005b346100e25760603660031901126100e2576102c2610694565b6024356001600160a01b03811691908290036100e2576102ed60018060a01b03600154163314610708565b6001600160a01b038116916103038315156107b3565b61030e8115156107b3565b60405163095ea7b360e01b602082019081526001600160a01b039390931660248201526044803581830152815291600090819061034c606486610791565b84519082855af161035b6108dd565b816103c9575b50806103bf575b15610379575b602060405160018152f35b6103b26103b7936040519063095ea7b360e01b6020830152602482015260006044820152604481526103ac606482610791565b8261086f565b61086f565b80808061036e565b50803b1515610368565b80518015925082156103de575b505084610361565b6103f19250602080918301019101610857565b84806103d6565b346100e25760803660031901126100e2577f298c349c742327269dc8de6ad66687767310c948ea309df826f5bd103e19d20760806004356024356044356064359161044e60018060a01b03600154163314610708565b6104638161045e866004546107ff565b61080c565b6104738461045e856005546107ff565b600654916040516104838161075f565b81815282602082015283604082015260604291015260045560055560065542600755604051938452602084015260408301526060820152a1602060405160018152f35b346100e25760403660031901126100e2576102a76104e2610694565b6104f760018060a01b03600154163314610708565b61050b6001600160a01b03821615156107b3565b60025460243591906001600160a01b0316610819565b346100e25760403660031901126100e2576004356024359061054e60018060a01b03600154163314610708565b6007546105e557818102908082048314811517156105cf577fcc9c58b575eabd3f6a1ee653e91fcea3ff546867ffc3782a3bbca1f9b6dbb8df9260409283516105968161075f565b838152826020820152818582015260604291015282600455816005556006554260075582519182526020820152a1602060405160018152f35b634e487b7160e01b600052601160045260246000fd5b60405162461bcd60e51b815260206004820152600e60248201526d105b1c9958591e481b5a5b9d195960921b6044820152606490fd5b346100e25760003660031901126100e2576002546040516001600160a01b039091168152602090f35b346100e25760003660031901126100e25760206102446005546106688115156106aa565b6004546106e8565b346100e25760003660031901126100e2576040906004546005549082526020820152f35b600435906001600160a01b03821682036100e257565b156106b157565b60405162461bcd60e51b815260206004820152600f60248201526e52657365727665206973207a65726f60881b6044820152606490fd5b81156106f2570490565b634e487b7160e01b600052601260045260246000fd5b1561070f57565b60405162461bcd60e51b815260206004820152602260248201527f4f6e6c7920726f757465722063616e2063616c6c20746869732066756e63746960448201526137b760f11b6064820152608490fd5b6080810190811067ffffffffffffffff82111761077b57604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff82111761077b57604052565b156107ba57565b60405162461bcd60e51b815260206004820152601f60248201527f5a65726f2061646472657373657320617265206e6f7420616c6c6f7765642e006044820152606490fd5b919082018092116105cf57565b919082039182116105cf57565b60405163a9059cbb60e01b60208201526001600160a01b03929092166024830152604480830193909352918152610855916103b2606483610791565b565b908160209103126100e2575180151581036100e25790565b6000806108989260018060a01b03169360208151910182865af16108916108dd565b908361091d565b80519081151591826108c2575b50506108ae5750565b635274afe760e01b60005260045260246000fd5b6108d59250602080918301019101610857565b1538806108a5565b3d15610918573d9067ffffffffffffffff821161077b576040519161090c601f8201601f191660200184610791565b82523d6000602084013e565b606090565b90610943575080511561093257805190602001fd5b630a12f52160e11b60005260046000fd5b81511580610975575b610954575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b1561094c56fea2646970667358221220565100d3c4a211a608ca726868849540d5f13ccd58422d3468db9df784f561c164736f6c634300081a003302dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212209482410e93331248449fa31c2e52fa5419263f22a1218bad7c8661df64cd57bf64736f6c634300081a0033