0 txs
223 calls
constructor
constructor()
functions
getClaimableBondAmountForMarket
viewfunction getClaimableBondAmountForMarket(address _market) view returns (uint256)
getClaimedBondAmountForMarket
viewfunction getClaimedBondAmountForMarket(address _market) view returns (uint256)
getDisputorBondForMarket
viewfunction getDisputorBondForMarket(address _market, address _disputorAddress) view returns (uint256)
getEscalatedDisputorBondForMarket
viewfunction getEscalatedDisputorBondForMarket(address _market) view returns (uint256)
getResolverBondForMarket
viewfunction getResolverBondForMarket(address _market) view returns (uint256)
getTotalDepositedBondAmountForMarket
viewfunction getTotalDepositedBondAmountForMarket(address _market) view returns (uint256)
marketBond
viewfunction marketBond(address) view returns (uint256 totalDepositedMarketBond, uint256 totalMarketBond, uint256 resolverBond, uint256 disputorsTotalBond, uint256 disputorsCount, uint256 escalatedDisputorBond)
marketManager
viewfunction marketManager() view returns (address)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
initialize
nonpayablefunction initialize()
issueBondsBackToDisputor
nonpayablefunction issueBondsBackToDisputor(address _market, address _disputorAddress)
issueBondsBackToEscalatedDisputor
nonpayablefunction issueBondsBackToEscalatedDisputor(address _market)
issueBondsBackToResolver
nonpayablefunction issueBondsBackToResolver(address _market)
renounceOwnership
nonpayablefunction renounceOwnership()
sendBondFromMarketToSafeBox
nonpayablefunction sendBondFromMarketToSafeBox(address _market, uint256 _bondToReduce, address _disputorAddress)
sendDisputorBondToMarket
nonpayablefunction sendDisputorBondToMarket(address _market, address _disputorAddress, uint256 _amount)
sendEscalatedDisputorBondToMarket
nonpayablefunction sendEscalatedDisputorBondToMarket(address _market, address _escalatedDisputorAddress, uint256 _amount)
sendOpenDisputeBondFromMarketToDisputor
nonpayablefunction sendOpenDisputeBondFromMarketToDisputor(address _market, address _disputorAddress)
sendResolverBondToMarket
nonpayablefunction sendResolverBondToMarket(address _market, address _resolverAddress, uint256 _amount)
setManagerAddress
nonpayablefunction setManagerAddress(address _managerAddress)
setPaused
nonpayablefunction setPaused(bool _setPausing)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
upgradeTo
nonpayablefunction upgradeTo(address newImplementation)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
AdminChanged
event AdminChanged(address previousAdmin, address newAdmin)
BeaconUpgraded
event BeaconUpgraded(address indexed beacon)
BondTransferredFromMarketBondToSafeBox
event BondTransferredFromMarketBondToSafeBox(address market, uint256 amount, uint256 bondReduced, address reduceAddress)
BondTransferredFromMarketBondToUser
event BondTransferredFromMarketBondToUser(address market, address account, uint256 amount)
DisputorBondSent
event DisputorBondSent(address market, address disputor, uint256 amount)
EscalatedDisputorBondSent
event EscalatedDisputorBondSent(address market, address escalatedDisputor, uint256 amount)
Initialized
event Initialized(uint8 version)
NewManagerAddress
event NewManagerAddress(address managerAddress)
NewOracleCouncilAddress
event NewOracleCouncilAddress(address oracleCouncil)
NewStakingThalesAddress
event NewStakingThalesAddress(address stakingThales)
OpenDisputeBondTransferredFromMarketToDisputor
event OpenDisputeBondTransferredFromMarketToDisputor(address market, address disputor, uint256 amount)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
ResolverBondSent
event ResolverBondSent(address market, address resolver, uint256 amount)
Unpaused
event Unpaused(address account)
Upgraded
event Upgraded(address indexed implementation)
errors
InsufficientMarketBond
error InsufficientMarketBond()
InvalidAddress
error InvalidAddress()
InvalidBondAmount
error InvalidBondAmount()
InvalidBondType
error InvalidBondType(uint256 _bondType)
InvalidMarket
error InvalidMarket(address _market)
InvalidMarketManager
error InvalidMarketManager()
InvalidOracleCouncilAddress
error InvalidOracleCouncilAddress()
NotAuthorizedMarketAction
error NotAuthorizedMarketAction()
NotOracleCouncilAddressAndManagerAndOwner
error NotOracleCouncilAddressAndManagerAndOwner()
creation bytecode
0x60a0806040523460d657306080525f549060ff8260081c166084575060ff80821603604b575b60405161389190816100db82396080518181816123fd0152818161252401526128390152f35b60ff90811916175f557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a15f6025565b62461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b5f80fdfe604060808152600480361015610013575f80fd5b5f3560e01c806316c38b3c146130995780631836e5401461305e5780631f52cb1d14612a305780633009101f146129f85780633659cfe61461280f578063414319081461278e57806341ed2c12146127655780634f1ef286146124a957806352d1902d146123ea5780635a090b68146121365780635c975abb14612113578063714b359714611baf578063715018a614611b545780637190e815146117fa57806374fc020d146111f157806380af208b146111a45780638129fc1c146110355780638da5cb5b1461100d5780639cd0d4a414610fc6578063aac0167f14610b3d578063b584159b14610ad0578063bc134bfd146105c7578063c0f166fb1461058c578063e8c77ba114610206578063f29e0d0f146101cb5763f2fde38b14610139575f80fd5b346101c75760203660031901126101c75761015261317f565b9161015b6133a5565b6001600160a01b038316156101755761017383613453565b005b906020608492519162461bcd60e51b8352820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152fd5b5f80fd5b82346101c75760203660031901126101c7576020906001600160a01b036101f061317f565b165f5261012e82526002815f2001549051908152f35b5090346101c75761021636613219565b909260018060a01b0361012d9581875416968351976301f3c06360e21b808a526020998a818681865afa908115610582579086915f9161054a575b501633141580610540575b80610532575b6105225781156105125789908487518094819382525afa908115610508579084915f916104d0575b5016156104c1576102996133fd565b828154168451633761c52760e11b81528981602481888c169586898301525afa9081156104b7575f91610482575b501561046d57805f5261012e808a52610305876102f08160018a5f208260058201550154613398565b845f52838d52885f2090600182015554613398565b915f528952845f20556103166134fb565b8287161561045e578288915416845192838092633013ce2960e01b82525afa908115610454575f916103ec575b5082516323b872dd60e01b978101979097526001600160a01b0386166024880152306044880152606487018490527fa8074d360c33c56691f6bd2f7b9857e86d847777b8f13d749c7fc45d8993ea9e966103e29493926103ba926103b483608481015b03601f1981018552846131db565b16613620565b516001600160a01b039384168152939092166020840152604083019190915281906060820190565b0390a1600160fb55005b9050868181959493953d831161044d575b61040781836131db565b810103126101c7577fa8074d360c33c56691f6bd2f7b9857e86d847777b8f13d749c7fc45d8993ea9e966103e2946104416103ba9361324e565b92509293945096610343565b503d6103fd565b83513d5f823e3d90fd5b50825163e6c4247b60e01b8152fd5b82602491865191623aae9360e61b8352820152fd5b90508981813d83116104b0575b61049981836131db565b810103126101c7576104aa90613262565b5f6102c7565b503d61048f565b86513d5f823e3d90fd5b508251636210626960e01b8152fd5b8092508a8092503d8311610501575b6104e981836131db565b810103126101c7576104fb849161324e565b5f61028a565b503d6104df565b85513d5f823e3d90fd5b855163746015df60e11b81528490fd5b855163fe756b5d60e01b81528490fd5b508460975416331415610262565b508133141561025c565b8092508c8092503d831161057b575b61056381836131db565b810103126101c757610575869161324e565b5f610251565b503d610559565b87513d5f823e3d90fd5b82346101c75760203660031901126101c7576020906001600160a01b036105b161317f565b165f5261012e82526001815f2001549051908152f35b5090346101c757806003193601126101c7576105e161317f565b6105e9613195565b9160018060a01b039061012d82815416958251966301f3c06360e21b80895260209889818581865afa9081156104b7579087915f91610a98575b501633141580610a8e575b80610a80575b610a70578115610a605788908386518094819382525afa9081156108c4579085915f91610a28575b501615610a1a5761066b6133fd565b83825416918351633761c52760e11b81528881602481898b169788888301525afa908115610508575f916109e5575b50156109d057825f5261012e948589526006855f20019381891694855f528a52855f205496815f52808b52876001885f200154106109c05760066107078960038e856106f28460018f8b5f528486525f2001546132b5565b91885f52528b5f2090600182015501546132b5565b835f52828d52885f20906003820155875f52018b525f87812055815f52808b5284875f2001549182610990575b50505061073f6134fb565b831561098057828982845416875192838092633013ce2960e01b82525afa9081156104b7579082915f91610948575b501691855163fe575a8760e01b815285858201528a81602481875afa5f9181610911575b5061090c57505f5b156108ce5754855163543f171560e01b8152938a9285928391165afa9182156108c4575f92610845575b507f66f65019262e7286ca9e55c2d3f1e3137c487cd2e6d2f82b0acb81a5e2ffceb8978594936108086103e2975f8051602061383c8339815191529560809561353f565b858551923384528301525f858301526060820152a1516001600160a01b039384168152939092166020840152604083019190915281906060820190565b909150878181969594963d83116108bd575b61086181836131db565b810103126101c7577f66f65019262e7286ca9e55c2d3f1e3137c487cd2e6d2f82b0acb81a5e2ffceb8976103e295610808865f8051602061383c833981519152956108ad60809661324e565b96509450505093949550976107c4565b503d610857565b84513d5f823e3d90fd5b50507f66f65019262e7286ca9e55c2d3f1e3137c487cd2e6d2f82b0acb81a5e2ffceb8975084939250610907915093866103e29561353f565b6103ba565b61079a565b9091508b81813d8311610941575b61092981836131db565b810103126101c75761093a90613262565b905f610792565b503d61091f565b8092508b8092503d8311610979575b61096181836131db565b810103126101c757610973829161324e565b5f61076e565b503d610957565b845163e6c4247b60e01b81528390fd5b5f1983019283116109ad575f528a5283865f2001555f8080610734565b601186634e487b7160e01b5f525260245ffd5b865163395eb0fb60e21b81528590fd5b509151623aae9360e61b815291820152602490fd5b90508881813d8311610a13575b6109fc81836131db565b810103126101c757610a0d90613262565b5f61069a565b503d6109f2565b8251636210626960e01b8152fd5b809250898092503d8311610a59575b610a4181836131db565b810103126101c757610a53859161324e565b5f61065c565b503d610a37565b845163746015df60e11b81528390fd5b845163fe756b5d60e01b81528390fd5b508560975416331415610634565b508133141561062e565b8092508b8092503d8311610ac9575b610ab181836131db565b810103126101c757610ac3879161324e565b5f610623565b503d610aa7565b50346101c75760203660031901126101c75760c0916001600160a01b03610af561317f565b165f5261012e602052805f20805492600182015492600283015490600560038501549385015494015494815196875260208701528501526060840152608083015260a0820152f35b5090346101c757806003193601126101c757610b5761317f565b610b5f613195565b9160018060a01b039061012d82815416958251966301f3c06360e21b80895260209889818581865afa9081156104b7579087915f91610f8e575b501633148015610f85575b8015610f78575b8015610eff575b15610eef578115610a605788908386518094819382525afa9081156108c4579085915f91610eb7575b501615610a1a57610bea6133fd565b83825416918351633761c52760e11b81528881602481898b169788888301525afa908115610508575f91610e82575b50156109d057825f5261012e948589526006855f20019381891694855f528a52855f205496815f52808b52876001885f200154106109c0576006610c718960038e856106f28460018f8b5f528486525f2001546132b5565b835f52828d52885f20906003820155875f52018b525f87812055815f52808b5284875f2001549182610e65575b505050610ca96134fb565b831561098057828982845416875192838092633013ce2960e01b82525afa9081156104b7579082915f91610e2d575b501691855163fe575a8760e01b815285858201528a81602481875afa5f9181610df6575b50610df157505f5b15610dcb5754855163543f171560e01b8152938a9285928391165afa9182156108c4575f92610d5f575b505f8051602061381c833981519152978594936108086103e2975f8051602061383c8339815191529560809561353f565b909150878181969594963d8311610dc4575b610d7b81836131db565b810103126101c7575f8051602061381c833981519152976103e295610808865f8051602061383c83398151915295610db460809661324e565b9650945050509394955097610d2e565b503d610d71565b50505f8051602061381c833981519152975084939250610907915093866103e29561353f565b610d04565b9091508b81813d8311610e26575b610e0e81836131db565b810103126101c757610e1f90613262565b905f610cfc565b503d610e04565b8092508b8092503d8311610e5e575b610e4681836131db565b810103126101c757610e58829161324e565b5f610cd8565b503d610e3c565b5f1983019283116109ad575f528a5283865f2001555f8080610c9e565b90508881813d8311610eb0575b610e9981836131db565b810103126101c757610eaa90613262565b5f610c19565b503d610e8f565b809250898092503d8311610ee8575b610ed081836131db565b810103126101c757610ee2859161324e565b5f610bdb565b503d610ec6565b84516363d7349d60e01b81528390fd5b508587168033149081610f13575b50610bb2565b9050855190633761c52760e11b8252848201528981602481865afa9081156104b7575f91610f43575b505f610f0d565b90508981813d8311610f71575b610f5a81836131db565b810103126101c757610f6b90613262565b5f610f3c565b503d610f50565b5085609754163314610bab565b50813314610ba4565b8092508b8092503d8311610fbf575b610fa781836131db565b810103126101c757610fb9879161324e565b5f610b99565b503d610f9d565b82346101c75760203660031901126101c7576020906001600160a01b03610feb61317f565b165f5261012e8252611006815f2060018154910154906132b5565b9051908152f35b82346101c7575f3660031901126101c75760975490516001600160a01b039091168152602090f35b50346101c7575f3660031901126101c7575f549060ff8260081c161590818092611197575b8015611180575b15611126575060ff198281166001175f559181611114575b5061109360ff5f5460081c1661108e8161349b565b61349b565b61109c33613453565b6110d55f549260ff8460081c16906110b38261349b565b6110bc8261349b565b6110c58261349b565b60c9541660c95561108e8161349b565b600160fb556110e057005b61ff0019165f5551600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b61ffff1916610101175f908155611079565b608490602085519162461bcd60e51b8352820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152fd5b50303b1580156110615750600160ff841614611061565b50600160ff84161061105a565b82346101c757806003193601126101c7576020906111c061317f565b6111c8613195565b9060018060a01b038091165f5261012e84526006835f200191165f528252805f20549051908152f35b5090346101c75760603660031901126101c75761120c61317f565b916024918235916044359360018060a01b038086168096036101c75761012d9281845416928551936301f3c06360e21b80865260209586818681865afa9081156117a2579086915f916117c2575b5016331480156117b9575b80156117ac575b801561172a575b1561171a57811561170a5785908489518094819382525afa908115610582579084915f916116d2575b5016156116c3576112ab6133fd565b8284818754169a83895180948193633761c52760e11b8352169d8e888301525afa908115610582575f9161168e575b501561167a57606587108015611670575b61165b575f606588036115975750885f5261012e84526002865f2001945f865496555b895f5261012e8086526113278760018a5f2001546132b5565b908b5f5286526001885f200155838154169387519163543f171560e01b92838152878187818a5afa90811561158d575f91611558575b506113666134fb565b828116968715611548578887918c5192838092633013ce2960e01b82525afa90811561153e579084915f91611506575b501694888b51809263fe575a8760e01b82528a8a83015281895afa5f91816114cf575b506114ca57505f5b1561149c57509086929154169388518095819382525afa9182156104b7575f9261143a575b506080859361140b5f8051602061383c8339815191529b9997839b9997958d9561353f565b85519033825285858301525f878301526060820152a15b82519586528501528301526060820152a1600160fb55005b9896949297959380925089813d8311611495575b61145881836131db565b810103126101c7576080809861140b855f8051602061383c8339815191529c946114828e9661324e565b96989a9c509450505093959799506113e6565b503d61144e565b915050869450608099979593505f8051602061383c8339815191529a989691506114c59261353f565b611422565b6113c1565b9091508981813d83116114ff575b6114e781836131db565b810103126101c7576114f890613262565b905f6113b9565b503d6114dd565b8092508a8092503d8311611537575b61151f81836131db565b810103126101c757611531849161324e565b5f611396565b503d611515565b8b513d5f823e3d90fd5b8a5163e6c4247b60e01b81528790fd5b90508781813d8311611586575b61156f81836131db565b810103126101c7576115809061324e565b5f61135d565b503d611565565b8a513d5f823e3d90fd5b606688036116375750885f5261012e948585526006875f2001895f528552865f2054958a5f528086526006885f20018a5f5286525f888120558a5f52808652836115e78860038b5f2001546132b5565b8c5f52828852895f2090600382015588611604575b50505061130e565b01545f19810191908211611625578b5f52865283885f2001555f83816115fc565b83601186634e487b7160e01b5f52525ffd5b946067880361130e579450885f5261012e84526005865f2001945f8654965561130e565b855163501fe10160e01b815291820187905290fd5b50606787116112eb565b8551623aae9360e61b815291820189905290fd5b90508481813d83116116bc575b6116a581836131db565b810103126101c7576116b690613262565b5f6112da565b503d61169b565b508451636210626960e01b8152fd5b809250868092503d8311611703575b6116eb81836131db565b810103126101c7576116fd849161324e565b5f61129c565b503d6116e1565b875163746015df60e11b81528490fd5b87516363d7349d60e01b81528490fd5b50848b16803314908161173e575b50611273565b9050885190633761c52760e11b82528582015286818581865afa9081156117a2575f9161176d575b505f611738565b90508681813d831161179b575b61178481836131db565b810103126101c75761179590613262565b5f611766565b503d61177a565b89513d5f823e3d90fd5b508460975416331461126c565b50813314611265565b809250888092503d83116117f3575b6117db81836131db565b810103126101c7576117ed869161324e565b5f61125a565b503d6117d1565b5090346101c75761180a36613219565b909260018060a01b0361012d9581875416968351976301f3c06360e21b808a526020998a818681865afa908115610582579086915f91611b1c575b501633141580611b12575b80611b04575b6105225781156105125789908487518094819382525afa908115610508579084915f91611acc575b5016156104c15761188d6133fd565b828154168451633761c52760e11b81528981602481888c169586898301525afa9081156104b7575f91611a97575b501561046d57805f5261012e90818a526006865f200191858a1692835f528b52865f205415611a6f575b815f52808b526006875f2001835f528b5261190388885f2054613398565b825f52818c526006885f2001845f528c52875f2055815f52808b52611965888c836119518360018d61193b836003835f200154613398565b908a5f528587525f209060038201550154613398565b91865f5252895f2090600182015554613398565b915f528a52855f20556119766134fb565b1561045e578288915416845192838092633013ce2960e01b82525afa908115610454575f91611a07575b5082516323b872dd60e01b978101979097526001600160a01b0386166024880152306044880152606487018490527f7ebc12537ecdb10642293d25ea451b4ad812314aa64e90b1f439ef169860be2e966103e29493926103ba926103b483608481016103a6565b9050868181959493953d8311611a68575b611a2281836131db565b810103126101c7577f7ebc12537ecdb10642293d25ea451b4ad812314aa64e90b1f439ef169860be2e966103e294611a5c6103ba9361324e565b925092939450966119a0565b503d611a18565b815f52808b5284875f200154600181018091116109ad57825f52818c5285885f2001556118e5565b90508981813d8311611ac5575b611aae81836131db565b810103126101c757611abf90613262565b5f6118bb565b503d611aa4565b8092508a8092503d8311611afd575b611ae581836131db565b810103126101c757611af7849161324e565b5f61187e565b503d611adb565b508460975416331415611856565b5081331415611850565b8092508c8092503d8311611b4d575b611b3581836131db565b810103126101c757611b47869161324e565b5f611845565b503d611b2b565b346101c7575f3660031901126101c757611b6c6133a5565b609780546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b5090346101c757602090816003193601126101c757611bcc61317f565b61012d805483516301f3c06360e21b8082526001600160a01b03979495949288169187818581865afa9081156104b7579089915f916120db575b5016331480156120d2575b80156120c5575b801561204c575b15610eef578115610a605786908386518094819382525afa9081156108c4579087915f91612014575b501615610a1a57611c576133fd565b85825416918351633761c52760e11b815286816024818b8a169788888301525afa908115610508575f91611fdf575b50156109d057825f5261012e808752845f2090600260018301549201549182811015611cb4575b600160fb55005b600292611cc0916132b5565b90855f528852855f20906001820155019687549788611ce0575b80611cad565b5f905581548551630187eab160e71b80825285820187905293918316908981602481855afa908115611fd5575f91611fa0575b50611d1c6134fb565b838116918215611f90578a87918a5192838092633013ce2960e01b82525afa9081156117a257858c928e925f91611f56575b5016928a5163fe575a8760e01b8152858a8201528381602481885afa5f9181611f1b575b50611f1657505f5b15611eff575050908691858554168a519384809263543f171560e01b82525afa9182156117a257918c979593918c9795935f92611ea3575b50975f8051602061383c83398151915292611dd48260809460249a9b9c61353f565b8b51913383528a8301525f8c8301526060820152a15b54168651958694859384528301525afa938415611e99575f94611e4d575b5050516001600160a01b0391821681529116602082015260408101919091525f8051602061381c8339815191529080606081015b0390a15f8080808080808080611cda565b9080929450813d8311611e92575b611e6581836131db565b810103126101c7575f8051602061381c83398151915293611e88611e3c9261324e565b9391819550611e08565b503d611e5b565b82513d5f823e3d90fd5b9697879199508092503d8311611ef8575b611ebe81836131db565b810103126101c75760808c5f8051602061383c83398151915292611dd4828f9b611ee960249b61324e565b955093509a9998505092611db2565b503d611eb4565b6024969450611f11929897959361353f565b611dea565b611d7a565b935093905082813d8311611f4f575b611f3481836131db565b810103126101c7578c92611f488f93613262565b905f611d72565b503d611f2a565b939250505081813d8311611f89575b611f6f81836131db565b810103126101c7578b85611f838d9361324e565b5f611d4e565b503d611f65565b885163e6c4247b60e01b81528790fd5b90508981813d8311611fce575b611fb781836131db565b810103126101c757611fc89061324e565b5f611d13565b503d611fad565b88513d5f823e3d90fd5b90508681813d831161200d575b611ff681836131db565b810103126101c75761200790613262565b5f611c86565b503d611fec565b809250878092503d8311612045575b61202d81836131db565b810103126101c75761203f879161324e565b5f611c48565b503d612023565b508786168033149081612060575b50611c1f565b9050855190633761c52760e11b8252848201528781602481865afa9081156104b7575f91612090575b505f61205a565b90508781813d83116120be575b6120a781836131db565b810103126101c7576120b890613262565b5f612089565b503d61209d565b5087609754163314611c18565b50813314611c11565b809250898092503d831161210c575b6120f481836131db565b810103126101c757612106899161324e565b5f611c06565b503d6120ea565b82346101c7575f3660031901126101c75760209060ff60c9541690519015158152f35b5090346101c75761214636613219565b909260018060a01b0361012d9581875416968351976301f3c06360e21b808a526020998a818681865afa908115610582579086915f916123b2575b5016331415806123a8575b8061239a575b6105225781156105125789908487518094819382525afa908115610508579084915f91612362575b5016156104c1576121c96133fd565b828154168451633761c52760e11b81528981602481888c169586898301525afa9081156104b7575f9161232d575b501561046d57805f5261012e808a52612220876102f08160018a5f208260028201550154613398565b915f528952845f20556122316134fb565b8287161561045e578288915416845192838092633013ce2960e01b82525afa908115610454575f916122c5575b5082516323b872dd60e01b978101979097526001600160a01b0386166024880152306044880152606487018490527fa1563e4764b03f0c6fb0ee9834943e1235597748f321123fe47fd43e46086f5c966103e29493926103ba926103b483608481016103a6565b9050868181959493953d8311612326575b6122e081836131db565b810103126101c7577fa1563e4764b03f0c6fb0ee9834943e1235597748f321123fe47fd43e46086f5c966103e29461231a6103ba9361324e565b9250929394509661225e565b503d6122d6565b90508981813d831161235b575b61234481836131db565b810103126101c75761235590613262565b5f6121f7565b503d61233a565b8092508a8092503d8311612393575b61237b81836131db565b810103126101c75761238d849161324e565b5f6121ba565b503d612371565b508460975416331415612192565b508133141561218c565b8092508c8092503d83116123e3575b6123cb81836131db565b810103126101c7576123dd869161324e565b5f612181565b503d6123c1565b50346101c7575f3660031901126101c7577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316300361244157602082515f805160206137fc8339815191528152f35b6020608492519162461bcd60e51b8352820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152fd5b50816003193601126101c7576124bd61317f565b906024359267ffffffffffffffff84116101c757366023850112156101c75783820135906124ea826131fd565b6124f6825191826131db565b8281526020928382019636602483830101116101c757815f9260248793018a37830101526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811690612552308314156132d6565b61256e5f805160206137fc833981519152928284541614613337565b6125766133a5565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156125b0575050505050506101739150613591565b8693949596169084516352d1902d60e01b815286818981865afa5f9181612736575b5061263157855162461bcd60e51b8152808901889052602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608490fd5b96919294939596036126e1575061264784613591565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a28151158015906126d9575b61267c57005b610173945f92660819985a5b195960ca1b837f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c869551986126bc8a6131ab565b60278a528901528701525190845af46126d3613718565b91613747565b506001612676565b825162461bcd60e51b8152908101869052602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608490fd5b9091508781813d831161275e575b61274e81836131db565b810103126101c75751905f6125d2565b503d612744565b82346101c7575f3660031901126101c75761012d5490516001600160a01b039091168152602090f35b5090346101c75760203660031901126101c7576127a961317f565b6127b16133a5565b6001600160a01b03169182156128015761012d80546001600160a01b0319168417905581518381527f154e089317c4af354b1797cbc6b5e25eec4bdd82fd25292b9b8ede870b7d056e90602090a1005b905163746015df60e11b8152fd5b50346101c757602090816003193601126101c75761282b61317f565b6001600160a01b03939092907f00000000000000000000000000000000000000000000000000000000000000008516612866308214156132d6565b6128825f805160206137fc833981519152918783541614613337565b61288a6133a5565b8151908382019682881067ffffffffffffffff8911176129e5578784525f83527f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156128e4575050505050506101739150613591565b8693949596169084516352d1902d60e01b815286818981865afa5f91816129b6575b5061296557855162461bcd60e51b8152808901889052602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608490fd5b96919294939596036126e1575061297b84613591565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a28151158015906129af5761267c57005b505f612676565b9091508781813d83116129de575b6129ce81836131db565b810103126101c75751905f612906565b503d6129c4565b604186634e487b7160e01b5f525260245ffd5b82346101c75760203660031901126101c7576020906001600160a01b03612a1d61317f565b165f5261012e8252805f20549051908152f35b50346101c757602091826003193601126101c757612a4c61317f565b61012d805483516301f3c06360e21b8082526001600160a01b039793969495949288169184818581865afa9081156104b7579089915f91613026575b50163314801561301d575b8015613010575b8015612f97575b15610eef578115610a605783908386518094819382525afa9081156108c4579087915f91612f5f575b501615610a1a57612ad96133fd565b8585541694835196633761c52760e11b885280861697888482015284816024818b5afa9081156104b7575f91612f2a575b5015612f1457876001985f5261012e97888652865f2060058101549a8b910154106109c0578585918851928380926344d9e87160e01b82525afa908115610582579083915f91612edb575b505f906024895180948193631cd50edb60e31b8352878b840152165afa908115610582579083915f91612dae575b50916005915f93511699818452808852612ba38c60018b872001546132b5565b91845287528783209060018201550155612bbb6134fb565b861561098057828482845416875192838092633013ce2960e01b82525afa9081156104b7579082915f91612d76575b501691855163fe575a8760e01b815288858201528581602481875afa5f9181612d3f575b50612d3a57505f5b15612d165754855163543f171560e01b815293859285928391165afa9182156108c4575f92612cae575b5060808793612c705f8051602061381c833981519152996103e297955f8051602061383c8339815191529561353f565b848451913383528201525f84820152876060820152a1516001600160a01b039384168152939092166020840152604083019190915281906060820190565b96928094925087813d8311612d0f575b612cc881836131db565b810103126101c75760806103e294612c70855f8051602061383c83398151915294612d005f8051602061381c8339815191529c61324e565b96985094505050939750612c40565b503d612cbe565b5050865f8051602061381c8339815191529793506103e2949250866109079261353f565b612c16565b9091508681813d8311612d6f575b612d5781836131db565b810103126101c757612d6890613262565b905f612c0e565b503d612d4d565b809250868092503d8311612da7575b612d8f81836131db565b810103126101c757612da1829161324e565b5f612bea565b503d612d85565b9150503d805f833e612dc081836131db565b81019186828403126101c757815167ffffffffffffffff928382116101c75701916101609384848203126101c757895194850185811083821117612ec8578a52612e098461324e565b8552888401518281116101c75781612e2291860161326f565b89860152898401519182116101c757612e3c91840161326f565b888401526060820151868110156101c75760608401526080820151868110156101c75783600593869260805f97015260a081015160a083015260c081015160c083015260e081015160e0830152610100612e97818301613262565b90830152610120612ea9818301613262565b90830152612ebb610140809201613262565b9082015291935091612b83565b604189634e487b7160e01b5f525260245ffd5b809250878092503d8311612f0d575b612ef481836131db565b810103126101c7575f612f07849261324e565b90612b55565b503d612eea565b8451623aae9360e61b8152808401899052602490fd5b90508481813d8311612f58575b612f4181836131db565b810103126101c757612f5290613262565b5f612b0a565b503d612f37565b809250848092503d8311612f90575b612f7881836131db565b810103126101c757612f8a879161324e565b5f612aca565b503d612f6e565b508786168033149081612fab575b50612aa1565b9050855190633761c52760e11b8252848201528481602481865afa9081156104b7575f91612fdb575b505f612fa5565b90508481813d8311613009575b612ff281836131db565b810103126101c75761300390613262565b5f612fd4565b503d612fe8565b5087609754163314612a9a565b50813314612a93565b809250868092503d8311613057575b61303f81836131db565b810103126101c757613051899161324e565b5f612a88565b503d613035565b82346101c75760203660031901126101c7576020906001600160a01b0361308361317f565b165f5261012e82526005815f2001549051908152f35b50346101c75760203660031901126101c757803580151581036101c7576130be6133a5565b15613104575060207f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258916130f06134fb565b600160ff1960c954161760c95551338152a1005b60c9549060ff821615613145575060ff191660c955513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa90602090a1005b606490602084519162461bcd60e51b8352820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152fd5b600435906001600160a01b03821682036101c757565b602435906001600160a01b03821682036101c757565b6060810190811067ffffffffffffffff8211176131c757604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff8211176131c757604052565b67ffffffffffffffff81116131c757601f01601f191660200190565b60609060031901126101c7576001600160a01b039060043582811681036101c7579160243590811681036101c7579060443590565b51906001600160a01b03821682036101c757565b519081151582036101c757565b81601f820112156101c757805190613286826131fd565b9261329460405194856131db565b828452602083830101116101c757815f9260208093018386015e8301015290565b919082039182116132c257565b634e487b7160e01b5f52601160045260245ffd5b156132dd57565b60405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b6064820152608490fd5b1561333e57565b60405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b6064820152608490fd5b919082018092116132c257565b6097546001600160a01b031633036133b957565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b600260fb541461340e57600260fb55565b60405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606490fd5b609780546001600160a01b039283166001600160a01b0319821681179092559091167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b156134a257565b60405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608490fd5b60ff60c9541661350757565b60405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606490fd5b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604480830193909352918152608081019167ffffffffffffffff8311828410176131c75761358f92604052613620565b565b803b156135c5575f805160206137fc83398151915280546001600160a01b0319166001600160a01b03909216919091179055565b60405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b60408051908101916001600160a01b031667ffffffffffffffff8311828410176131c757613689926040525f806020958685527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656487860152868151910182855af16126d3613718565b80518281159182156136f9575b50509050156136a25750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152fd5b83809293500103126101c757816137109101613262565b80825f613696565b3d15613742573d90613729826131fd565b9161373760405193846131db565b82523d5f602084013e565b606090565b919290156137a9575081511561375b575090565b3b156137645790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b8251909150156137bc5750805190602001fd5b604460209160405192839162461bcd60e51b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fdfe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60e37aa44e6b2c1aba5879edbe0d4326eff064606eb49d2d8f5d38fe8537e7d0c24f51a8bcbeed7add604126de5165cc05c04d9966c9e82bf4f3895c469a013da26469706673582212206a4124ff8f126204472e8846507e4045b1a5c1224a1de585540a4e3005cf026f64736f6c63430008190033