0 txs
17 calls
constructor
No constructor.
functions
addressCoefficient
viewfunction addressCoefficient(address owner) view returns (uint256)
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
decimals
viewfunction decimals() view returns (uint8)
defaultCoefficient
purefunction defaultCoefficient() pure returns (uint256)
FRACTION_TOKEN
purefunction FRACTION_TOKEN() pure returns (address)
getParticipants
viewfunction getParticipants() view returns (address[])
HATS_TIME_FRAME_MODULE
purefunction HATS_TIME_FRAME_MODULE() pure returns (address)
HATS
purefunction HATS() pure returns (address)
mintableAmount
viewfunction mintableAmount(address owner, tuple[] relatedRoles) view returns (uint256)
mintedAmount
viewfunction mintedAmount(address owner) view returns (uint256)
name
purefunction name() pure returns (string)
NAME
purefunction NAME() pure returns (string)
symbol
purefunction symbol() pure returns (string)
SYMBOL
purefunction SYMBOL() pure returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
WORKSPACE_OWNER
purefunction WORKSPACE_OWNER() pure returns (address)
approve
nonpayablefunction approve(address spender, uint256 value) returns (bool)
mint
nonpayablefunction mint(address to, uint256 amount, tuple[] relatedRoles) returns (bool)
setAddressCoefficient
nonpayablefunction setAddressCoefficient(address userAddress, uint256 coefficient)
setAddressCoefficients
nonpayablefunction setAddressCoefficients(address[] userAddresses, uint256[] coefficients)
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)
TokenMinted
event TokenMinted(address indexed from, address indexed to, uint256 amount)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
errors
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)
creation bytecode
0x6080604052346200002d5762000014620000fe565b6200001e62000033565b6126ac620003f082396126ac90f35b62000039565b60405190565b600080fd5b601f801991011690565b634e487b7160e01b600052604160045260246000fd5b906200006a906200003e565b810190811060018060401b038211176200008357604052565b62000048565b90620000a06200009862000033565b92836200005e565b565b60018060401b038111620000c157620000bd6020916200003e565b0190565b62000048565b90620000dd620000d783620000a2565b62000089565b918252565b620000ee6000620000c7565b90565b620000fb620000e2565b90565b6200011d6200010c620000f1565b62000116620000f1565b906200011f565b565b906200012b91620003d3565b565b5190565b634e487b7160e01b600052602260045260246000fd5b90600160028304921680156200016a575b60208310146200016457565b62000131565b91607f169162000158565b600052602060002090565b601f602091010490565b1b90565b91906008620001ae910291620001a7600019846200018a565b926200018a565b9181191691161790565b90565b90565b620001d7620001d1620001dd92620001b8565b620001bb565b620001b8565b90565b90565b9190620001fe620001f86200020793620001be565b620001e0565b9083546200018e565b9055565b600090565b62000226916200021f6200020b565b91620001e3565b565b5b81811062000235575050565b8062000245600060019362000210565b0162000229565b9190601f81116200025d575b505050565b6200026c620002979362000175565b9060206200027a8462000180565b83019310620002a0575b6200028f9062000180565b019062000228565b38808062000258565b91506200028f8192905062000284565b1c90565b90620002c79060001990600802620002b0565b191690565b81620002d891620002b4565b906002021790565b90620002ec816200012d565b9060018060401b038211620003bf5762000313826200030c855462000147565b856200024c565b602090601f83116001146200034d579180916200033b9360009262000340575b5050620002cc565b90555b565b9091500151388062000333565b601f198316916200035e8562000175565b9260005b818110620003a65750916002939185600196941062000389575b505050020190556200033e565b6200039b910151601f841690620002b4565b90553880806200037c565b9193602060018192878701518155019501920162000362565b62000048565b90620003d191620002e0565b565b90620003e5620003ed926003620003c5565b6004620003c5565b56fe60806040526004361015610013575b610d74565b61001e60003561018d565b806306fdde0314610188578063095ea7b314610183578063108001e31461017e5780631749f20e1461017957806318160ddd146101745780631b9212da1461016f57806323b872dd1461016a578063313ce567146101655780635aa68ac0146101605780635bef4c5d1461015b57806370a08231146101565780637150ef881461015157806377f26e731461014c5780637e7a9ac41461014757806395d89b4114610142578063a3f4df7e1461013d578063a9059cbb14610138578063c497c5a314610133578063dd62ed3e1461012e578063f70c24f214610129578063f76f8d7814610124578063fbbf8cc31461011f5763fe6df2d50361000e57610d3e565b610cb7565b610c82565b610c4e565b610c18565b610bb5565b610b50565b610b1b565b610ae6565b610ab1565b610a4d565b6109f5565b610966565b610932565b61076b565b610695565b610636565b6105c5565b61040d565b6103d8565b6103a3565b61032b565b610239565b60e01c90565b60405190565b600080fd5b600080fd5b60009103126101ae57565b61019e565b5190565b60209181520190565b60005b8381106101d4575050906000910152565b8060209183015181850152016101c3565b601f801991011690565b61020e61021760209361021c93610205816101b3565b938480936101b7565b958691016101c0565b6101e5565b0190565b61023691602082019160008184039101526101ef565b90565b34610269576102493660046101a3565b610265610254610d7e565b61025c610193565b91829182610220565b0390f35b610199565b600080fd5b60018060a01b031690565b61028790610273565b90565b6102938161027e565b0361029a57565b600080fd5b905035906102ac8261028a565b565b90565b6102ba816102ae565b036102c157565b600080fd5b905035906102d3826102b1565b565b91906040838203126102fe57806102f26102fb926000860161029f565b936020016102c6565b90565b61019e565b151590565b61031190610303565b9052565b919061032990600060208501940190610308565b565b3461035c576103586103476103413660046102d5565b90610d97565b61034f610193565b91829182610315565b0390f35b610199565b9060208282031261037b576103789160000161029f565b90565b61019e565b610389906102ae565b9052565b91906103a190600060208501940190610380565b565b346103d3576103cf6103be6103b9366004610361565b610e0c565b6103c6610193565b9182918261038d565b0390f35b610199565b34610408576103e83660046101a3565b6104046103f3610e5e565b6103fb610193565b9182918261038d565b0390f35b610199565b3461043d5761041d3660046101a3565b610439610428610e72565b610430610193565b9182918261038d565b0390f35b610199565b600080fd5b634e487b7160e01b600052604160045260246000fd5b90610467906101e5565b810190811067ffffffffffffffff82111761048157604052565b610447565b90610499610492610193565b928361045d565b565b67ffffffffffffffff81116104b35760208091020190565b610447565b600080fd5b600080fd5b91906040838203126104fe576104f7906104dc6040610486565b936104ea82600083016102c6565b600086015260200161029f565b6020830152565b6104bd565b909291926105186105138261049b565b610486565b93818552604060208601920283019281841161055757915b83831061053d5750505050565b602060409161054c84866104c2565b815201920191610530565b6104b8565b9080601f8301121561057a5781602061057793359101610503565b90565b610442565b9190916040818403126105c057610599836000830161029f565b92602082013567ffffffffffffffff81116105bb576105b8920161055c565b90565b61026e565b61019e565b346105f6576105f26105e16105db36600461057f565b906110b1565b6105e9610193565b9182918261038d565b0390f35b610199565b90916060828403126106315761062e610617846000850161029f565b93610625816020860161029f565b936040016102c6565b90565b61019e565b346106675761066361065261064c3660046105fb565b9161147a565b61065a610193565b91829182610315565b0390f35b610199565b60ff1690565b61067b9061066c565b9052565b919061069390600060208501940190610672565b565b346106c5576106a53660046101a3565b6106c16106b06114cd565b6106b8610193565b9182918261067f565b0390f35b610199565b5190565b60209181520190565b60200190565b6106e69061027e565b9052565b906106f7816020936106dd565b0190565b60200190565b9061071e610718610711846106ca565b80936106ce565b926106d7565b9060005b81811061072f5750505090565b90919261074861074260019286516106ea565b946106fb565b9101919091610722565b6107689160208201916000818403910152610701565b90565b3461079b5761077b3660046101a3565b6107976107866115c5565b61078e610193565b91829182610752565b0390f35b610199565b67ffffffffffffffff81116107b85760208091020190565b610447565b909291926107d26107cd826107a0565b610486565b938185526020808601920283019281841161080f57915b8383106107f65750505050565b60208091610804848661029f565b8152019201916107e9565b6104b8565b9080601f830112156108325781602061082f933591016107bd565b90565b610442565b67ffffffffffffffff811161084f5760208091020190565b610447565b9092919261086961086482610837565b610486565b93818552602080860192028301928184116108a657915b83831061088d5750505050565b6020809161089b84866102c6565b815201920191610880565b6104b8565b9080601f830112156108c9578160206108c693359101610854565b90565b610442565b91909160408184031261092757600081013567ffffffffffffffff811161092257836108fb918301610814565b92602082013567ffffffffffffffff811161091d5761091a92016108ab565b90565b61026e565b61026e565b61019e565b60000190565b346109615761094b6109453660046108ce565b90611858565b610953610193565b8061095d8161092c565b0390f35b610199565b346109965761099261098161097c366004610361565b611864565b610989610193565b9182918261038d565b0390f35b610199565b90565b6109b26109ad6109b792610273565b61099b565b610273565b90565b6109c39061099e565b90565b6109cf906109ba565b90565b6109db906109c6565b9052565b91906109f3906000602085019401906109d2565b565b34610a2557610a053660046101a3565b610a21610a106118bf565b610a18610193565b918291826109df565b0390f35b610199565b610a339061027e565b9052565b9190610a4b90600060208501940190610a2a565b565b34610a7d57610a5d3660046101a3565b610a79610a68611909565b610a70610193565b91829182610a37565b0390f35b610199565b610a8b906109ba565b90565b610a9790610a82565b9052565b9190610aaf90600060208501940190610a8e565b565b34610ae157610ac13660046101a3565b610add610acc611963565b610ad4610193565b91829182610a9b565b0390f35b610199565b34610b1657610af63660046101a3565b610b12610b01611989565b610b09610193565b91829182610220565b0390f35b610199565b34610b4b57610b2b3660046101a3565b610b47610b3661199d565b610b3e610193565b91829182610220565b0390f35b610199565b34610b8157610b7d610b6c610b663660046102d5565b906119bb565b610b74610193565b91829182610315565b0390f35b610199565b610b8f906109ba565b90565b610b9b90610b86565b9052565b9190610bb390600060208501940190610b92565b565b34610be557610bc53660046101a3565b610be1610bd0611a19565b610bd8610193565b91829182610b9f565b0390f35b610199565b9190604083820312610c135780610c07610c10926000860161029f565b9360200161029f565b90565b61019e565b34610c4957610c45610c34610c2e366004610bea565b90611a57565b610c3c610193565b9182918261038d565b0390f35b610199565b34610c7d57610c67610c613660046102d5565b90611ac4565b610c6f610193565b80610c798161092c565b0390f35b610199565b34610cb257610c923660046101a3565b610cae610c9d611aef565b610ca5610193565b91829182610220565b0390f35b610199565b34610ce757610ce3610cd2610ccd366004610361565b611b0d565b610cda610193565b9182918261038d565b0390f35b610199565b91606083830312610d3957610d04826000850161029f565b92610d1283602083016102c6565b92604082013567ffffffffffffffff8111610d3457610d31920161055c565b90565b61026e565b61019e565b34610d6f57610d6b610d5a610d54366004610cec565b91611dff565b610d62610193565b91829182610315565b0390f35b610199565b600080fd5b606090565b610d86610d79565b50610d8f61199d565b90565b600090565b610db491610da3610d92565b50610dac611f93565b919091611fa0565b600190565b600090565b610dc7906109ba565b90565b90610dd490610dbe565b600052602052604060002090565b60001c90565b90565b610df7610dfc91610de2565b610de8565b90565b610e099054610deb565b90565b610e23610e2891610e1b610db9565b506006610dca565b610dff565b90565b90565b610e42610e3d610e4792610e2b565b61099b565b6102ae565b90565b610e5b670de0b6b3a7640000610e2e565b90565b610e66610db9565b50610e6f610e4a565b90565b610e7a610db9565b50610e856002610dff565b90565b90565b610e9f610e9a610ea492610e88565b61099b565b6102ae565b90565b6001610eb391016102ae565b90565b5190565b634e487b7160e01b600052603260045260246000fd5b90610eda82610eb6565b811015610eeb576020809102010190565b610eba565b610efa905161027e565b90565b610f0790516102ae565b90565b60e01b90565b90505190610f1d826102b1565b565b90602082820312610f3957610f3691600001610f10565b90565b61019e565b604090610f68610f6f9496959396610f5e60608401986000850190610a2a565b6020830190610a2a565b0190610380565b565b610f79610193565b3d6000823e3d90fd5b916020610fa4929493610f9d60408201966000830190610a2a565b0190610380565b565b90565b610fbd610fb8610fc292610fa6565b61099b565b6102ae565b90565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b610ffd611003916102ae565b916102ae565b90811561100e570490565b610fc5565b611022611028919392936102ae565b926102ae565b916110348382026102ae565b92818404149015171561104357565b610fdb565b61105761105d919392936102ae565b926102ae565b820180921161106857565b610fdb565b90565b61108461107f6110899261106d565b61099b565b6102ae565b90565b61109b6110a1919392936102ae565b926102ae565b82039182116110ac57565b610fdb565b91906110bb610db9565b506110c66000610e8b565b906110d16000610e8b565b915b826110ee6110e86110e385610eb6565b6102ae565b916102ae565b1015611364576110ff828490610ed0565b519061111161110c611963565b610a82565b602063e93119d991889061114d611129848801610ef0565b9461115861113960008a01610efd565b611141610193565b97889687958695610f0a565b855260048501610f3e565b03915afa90811561135f57600091611331575b509061117d611178611963565b610a82565b602063346e6c0e91611190828701610ef0565b906111b86111a060008901610efd565b946111c36111ac610193565b96879586948594610f0a565b845260048401610f82565b03915afa90811561132c576000916112fe575b5092826111ec6111e66000610e8b565b916102ae565b1480156112e3575b6112d557602061120a611205611a19565b610b86565b9163819c4b0d9261124361122b6000611224868601610ef0565b9401610efd565b9461124e611237610193565b96879586948594610f0a565b845260048401610f82565b03915afa9384156112d05761128a6112959461128561129c9761128f956000916112a2575b5061127f610258610fa9565b90610ff1565b611013565b610ff1565b90611048565b925b610ea7565b916110d3565b6112c3915060203d81116112c9575b6112bb818361045d565b810190610f1f565b38611273565b503d6112b1565b610f71565b5093905061129c9150611297565b50836112f86112f26000610e8b565b916102ae565b146111f4565b61131f915060203d8111611325575b611317818361045d565b810190610f1f565b386111d6565b503d61130d565b610f71565b611352915060203d8111611358575b61134a818361045d565b810190610f1f565b3861116b565b503d611340565b610f71565b61141292506113fb915061139a6113e49195949561139461138487611864565b61138e600a611070565b90610ff1565b90611048565b6113ae6113a960068790610dca565b610dff565b6113c16113bb6000610e8b565b916102ae565b1160001461146d576113dd6113d860068790610dca565b610dff565b5b90611013565b6113f5670de0b6b3a7640000610e2e565b90610ff1565b61140c670de0b6b3a7640000610e2e565b90611013565b908161143961143361142e61142960058690610dca565b610dff565b6102ae565b916102ae565b1161144d57505061144a6000610e8b565b90565b61146461145f61146a93926005610dca565b610dff565b9061108c565b90565b611475610e4a565b6113de565b916114a492611487610d92565b5061149c611493611f93565b82908491611ff1565b9190916120ae565b600190565b600090565b90565b6114c56114c06114ca926114ae565b61099b565b61066c565b90565b6114d56114a9565b506114e060126114b1565b90565b606090565b5490565b60209181520190565b600052602060002090565b60018060a01b031690565b61151761151c91610de2565b611500565b90565b611529905461150b565b90565b60010190565b9061154f611549611542846114e8565b80936114ec565b926114f5565b9060005b8181106115605750505090565b90919261158061157a6001926115758761151f565b6106ea565b9461152c565b9101919091611553565b9061159491611532565b90565b906115b76115b0926115a7610193565b9384809261158a565b038361045d565b565b6115c290611597565b90565b6115cd6114e3565b506115d860076115b9565b90565b60007f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572910152565b61160f602080926101b7565b611618816115db565b0190565b6116329060208101906000818303910152611603565b90565b1561163c57565b611644610193565b62461bcd60e51b81528061165a6004820161161c565b0390fd5b9061168b916116863361168061167a611675611909565b61027e565b9161027e565b14611635565b6117b1565b565b5190565b60007f417272617973206c656e677468206d69736d6174636800000000000000000000910152565b6116c660166020926101b7565b6116cf81611691565b0190565b6116e990602081019060008183039101526116b9565b90565b156116f357565b6116fb610193565b62461bcd60e51b815280611711600482016116d3565b0390fd5b9061171f8261168d565b811015611730576020809102010190565b610eba565b9061173f826106ca565b811015611750576020809102010190565b610eba565b60001b90565b9061176860001991611755565b9181191691161790565b61178661178161178b926102ae565b61099b565b6102ae565b90565b90565b906117a66117a16117ad92611772565b61178e565b825461175b565b9055565b91906117df6117bf846106ca565b6117d96117d36117ce8561168d565b6102ae565b916102ae565b146116ec565b6117e96000610e8b565b5b806118056117ff6117fa876106ca565b6102ae565b916102ae565b10156118525761184d90611848611825611820858490611715565b610efd565b611843600661183d6118388a8790611735565b610ef0565b90610dca565b611791565b610ea7565b6117ea565b50509050565b906118629161165e565b565b61187b61188091611873610db9565b506000610dca565b610dff565b90565b600090565b90565b61189f61189a6118a492611888565b61099b565b6102ae565b90565b6118b09061099e565b90565b6118bc906118a7565b90565b6118c7611883565b506118e26118dd6118d8606c61188b565b61215d565b6118b3565b90565b600090565b90565b6119016118fc611906926118ea565b61099b565b6102ae565b90565b6119116118e5565b5061192461191f600c6118ed565b61215d565b90565b600090565b90565b61194361193e6119489261192c565b61099b565b6102ae565b90565b6119549061099e565b90565b6119609061194b565b90565b61196b611927565b5061198661198161197c608c61192f565b61215d565b611957565b90565b611991610d79565b5061199a611aef565b90565b6119a5610d79565b506119b86119b36000610e8b565b61224e565b90565b6119d8916119c7610d92565b506119d0611f93565b9190916120ae565b600190565b600090565b90565b6119f96119f46119fe926119e2565b61099b565b6102ae565b90565b611a0a9061099e565b90565b611a1690611a01565b90565b611a216119dd565b50611a3c611a37611a3260ac6119e5565b61215d565b611a0d565b90565b90611a4990610dbe565b600052602052604060002090565b611a7c91611a72611a7792611a6a610db9565b506001611a3f565b610dca565b610dff565b90565b90611aac91611aa733611aa1611a9b611a96611909565b61027e565b9161027e565b14611635565b611aae565b565b611abd611ac292916006610dca565b611791565b565b90611ace91611a7f565b565b90565b611ae7611ae2611aec92611ad0565b61099b565b6102ae565b90565b611af7610d79565b50611b0a611b056001611ad3565b61224e565b90565b611b24611b2991611b1c610db9565b506005610dca565b610dff565b90565b60007f43616e6e6f74206d696e7420746f20796f757273656c66000000000000000000910152565b611b6160176020926101b7565b611b6a81611b2c565b0190565b611b849060208101906000818303910152611b54565b90565b15611b8e57565b611b96610193565b62461bcd60e51b815280611bac60048201611b6e565b0390fd5b60007f416d6f756e74206d7573742062652067726561746572207468616e2030000000910152565b611be5601d6020926101b7565b611bee81611bb0565b0190565b611c089060208101906000818303910152611bd8565b90565b15611c1257565b611c1a610193565b62461bcd60e51b815280611c3060048201611bf2565b0390fd5b60007f416d6f756e742065786365656473206d696e7461626c6520616d6f756e740000910152565b611c69601e6020926101b7565b611c7281611c34565b0190565b611c8c9060208101906000818303910152611c5c565b90565b15611c9657565b611c9e610193565b62461bcd60e51b815280611cb460048201611c76565b0390fd5b90611cc290610dbe565b600052602052604060002090565b60ff1690565b611ce2611ce791610de2565b611cd0565b90565b611cf49054611cd6565b90565b90565b600052602060002090565b5490565b611d1281611d05565b821015611d2d57611d24600191611cfa565b91020190600090565b610eba565b1b90565b91906008611d56910291611d5060018060a01b0384611d32565b92611d32565b9181191691161790565b90565b9190611d79611d74611d8193610dbe565b611d60565b908354611d36565b9055565b9081549168010000000000000000831015611db55782611dad916001611db395018155611d09565b90611d63565b565b610447565b90611dc660ff91611755565b9181191691161790565b611dd990610303565b90565b90565b90611df4611def611dfb92611dd0565b611ddc565b8254611dba565b9055565b91611e50611e6a91611e0f610d92565b50611e2d85611e26611e203361027e565b9161027e565b1415611b87565b611e4a84611e44611e3e6000610e8b565b916102ae565b11611c0b565b336110b1565b611e63611e5d84926102ae565b916102ae565b1115611c8f565b611e9281611e8c611e7d60053390610dca565b91611e8783610dff565b611048565b90611791565b611e9d82829061231d565b611eba611eb4611eaf60083390611cb8565b611cea565b15610303565b611f64575b611edc611ed6611ed160088590611cb8565b611cea565b15610303565b611f35575b33919091611f2d611f1b611f157fdf1b2b09e9800d31c599375056be9f9e4eb37f078102643600c4e149714efaad93610dbe565b93610dbe565b93611f24610193565b9182918261038d565b0390a3600190565b611f49611f426007611cf7565b8390611d85565b611f5f6001611f5a60088590611cb8565b611ddf565b611ee1565b611f78611f716007611cf7565b3390611d85565b611f8e6001611f8960083390611cb8565b611ddf565b611ebf565b611f9b6118e5565b503390565b91611fae9291600192612385565b565b604090611fda611fe19496959396611fd060608401986000850190610a2a565b6020830190610380565b0190610380565b565b90611fee91036102ae565b90565b929192611fff818390611a57565b908161201561200f6000196102ae565b916102ae565b10612022575b5050509050565b8161203561202f876102ae565b916102ae565b1061205c57612053939461204a919392611fe3565b90600092612385565b8038808061201b565b506120828492919261206c610193565b938493637dc7a0d960e11b855260048501611fb0565b0390fd5b61209a61209561209f92610e88565b61099b565b610273565b90565b6120ab90612086565b90565b91826120cb6120c56120c060006120a2565b61027e565b9161027e565b1461212e57816120ec6120e66120e160006120a2565b61027e565b9161027e565b146120ff576120fd929190916124b4565b565b61212a61210c60006120a2565b612114610193565b91829163ec442f0560e01b835260048301610a37565b0390fd5b61215961213b60006120a2565b612143610193565b918291634b637e8f60e11b835260048301610a37565b0390fd5b6121656118e5565b5061216e612631565b013560601c90565b90565b61218d61218861219292612176565b61099b565b6102ae565b90565b67ffffffffffffffff81116121b3576121af6020916101e5565b0190565b610447565b906121ca6121c583612195565b610486565b918252565b369037565b906121f96121e1836121b8565b926020806121ef8693612195565b92019103906121cf565b565b60ff60f81b1690565b60f81b90565b61221e6122196122239261066c565b612204565b6121fb565b90565b5190565b9061223482612226565b81101561224657600160209102010190565b610eba565b90565b6122826122879161225d610d79565b5061227d6122776020926122716020612179565b90611013565b91612179565b611048565b612647565b9061229182612647565b9061229b826121d4565b906122a66000610e8b565b5b806122ba6122b4866102ae565b916102ae565b101561230d57612308906122f26122ed6122e86122e1896122db6020612179565b90611048565b8490611048565b61265d565b61220a565b6123028591839060001a9261222a565b53610ea7565b6122a7565b50925061231a915061224b565b90565b8061233961233361232e60006120a2565b61027e565b9161027e565b14612356576123549161234c60006120a2565b9190916124b4565b565b61238161236360006120a2565b61236b610193565b91829163ec442f0560e01b835260048301610a37565b0390fd5b9092816123a361239d61239860006120a2565b61027e565b9161027e565b1461247757836123c46123be6123b960006120a2565b61027e565b9161027e565b14612448576123e8836123e36123dc60018690611a3f565b8790610dca565b611791565b6123f2575b505050565b91909161243d61242b6124257f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92593610dbe565b93610dbe565b93612434610193565b9182918261038d565b0390a33880806123ed565b61247361245560006120a2565b61245d610193565b918291634a1406b160e11b835260048301610a37565b0390fd5b6124a261248460006120a2565b61248c610193565b91829163e602df0560e01b835260048301610a37565b0390fd5b906124b191016102ae565b90565b919091806124d36124cd6124c860006120a2565b61027e565b9161027e565b146000146125b8576124f86124f1836124ec6002610dff565b611048565b6002611791565b5b8261251561250f61250a60006120a2565b61027e565b9161027e565b1460001461258b5761253a6125338361252e6002610dff565b611fe3565b6002611791565b5b91909161258661257461256e7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef93610dbe565b93610dbe565b9361257d610193565b9182918261038d565b0390a3565b6125b3826125ad61259e60008790610dca565b916125a883610dff565b6124a6565b90611791565b61253b565b6125cc6125c760008390610dca565b610dff565b806125df6125d9856102ae565b916102ae565b10612608576125f2612603918490611fe3565b6125fe60008490610dca565b611791565b6124f9565b9061262d909192612617610193565b93849363391434e360e21b855260048501611fb0565b0390fd5b612639610db9565b50600236033560f01c360390565b61264f610db9565b50612658612631565b013590565b6126656114a9565b5061266e612631565b013560f81c9056fea26469706673582212201cbc5fc7eca055e70298b9006c80a38b02936158f39b2111eeba1333263b206c64736f6c63430008180033