0 txs
1 call
constructor
No constructor.
functions
activeOpenIntentIdsOf
viewfunction activeOpenIntentIdsOf(address partyA, uint256 start, uint256 size) view returns (uint256[])
activeOpenIntentsCount
viewfunction activeOpenIntentsCount(address user) view returns (uint256)
activeOpenIntentsLength
viewfunction activeOpenIntentsLength(address user) view returns (uint256)
activePartyATradeIdsOf
viewfunction activePartyATradeIdsOf(address partyA, uint256 start, uint256 size) view returns (uint256[])
activePartyATradesLength
viewfunction activePartyATradesLength(address partyA) view returns (uint256)
activePartyBTradeIdsOf
viewfunction activePartyBTradeIdsOf(address partyB, address collateral, uint256 start, uint256 size) view returns (uint256[])
activePartyBTradesLength
viewfunction activePartyBTradesLength(address partyB, address collateral) view returns (uint256)
affiliateFeeCollector
viewfunction affiliateFeeCollector(address affiliate) view returns (address)
affiliateFees
viewfunction affiliateFees(address affiliate, uint256 symbolId) view returns (uint256)
affiliateStatus
viewfunction affiliateStatus(address affiliate) view returns (bool)
balanceLimitPerUser
viewfunction balanceLimitPerUser() view returns (uint256)
balanceOf
viewfunction balanceOf(address user, address collateral) view returns (uint256)
bridgePaused
viewfunction bridgePaused() view returns (bool)
bridgeWithdrawPaused
viewfunction bridgeWithdrawPaused() view returns (bool)
closeIntentIdsOf
viewfunction closeIntentIdsOf(uint256 tradeId, uint256 start, uint256 size) view returns (uint256[])
defaultFeeCollector
viewfunction defaultFeeCollector() view returns (address)
depositingPaused
viewfunction depositingPaused() view returns (bool)
emergencyMode
viewfunction emergencyMode() view returns (bool)
forceCancelCloseIntentTimeout
viewfunction forceCancelCloseIntentTimeout() view returns (uint256)
forceCancelOpenIntentTimeout
viewfunction forceCancelOpenIntentTimeout() view returns (uint256)
getActiveOpenIntentsOf
viewfunction getActiveOpenIntentsOf(address partyA, uint256 start, uint256 size) view returns (tuple[])
getActivePartyATradesOf
viewfunction getActivePartyATradesOf(address partyA, uint256 start, uint256 size) view returns (tuple[])
getActivePartyBTradesOf
viewfunction getActivePartyBTradesOf(address partyB, address collateral, uint256 start, uint256 size) view returns (tuple[])
getBoundPartyB
viewfunction getBoundPartyB(address user) view returns (address)
getBridges
viewfunction getBridges(address bridge) view returns (bool)
getBridgeTransaction
viewfunction getBridgeTransaction(uint256 bridgeId) view returns (tuple)
getBridgeTransactionIds
viewfunction getBridgeTransactionIds(address bridge) view returns (uint256[])
getCloseIntent
viewfunction getCloseIntent(uint256 closeIntentId) view returns (tuple)
getCloseIntentsOf
viewfunction getCloseIntentsOf(uint256 tradeId, uint256 start, uint256 size) view returns (tuple[])
getDeactiveInstantActionModeCooldown
viewfunction getDeactiveInstantActionModeCooldown() view returns (uint256)
getInstantActionsModeDeactivateTime
viewfunction getInstantActionsModeDeactivateTime(address user) view returns (uint256)
getInstantActionsModeStatus
viewfunction getInstantActionsModeStatus(address user) view returns (bool)
getInvalidBridgedAmountsPool
viewfunction getInvalidBridgedAmountsPool() view returns (address)
getLastBridgeId
viewfunction getLastBridgeId() view returns (uint256)
getLastCloseIntentId
viewfunction getLastCloseIntentId() view returns (uint256)
getLastOpenIntentId
viewfunction getLastOpenIntentId() view returns (uint256)
getLastOracleId
viewfunction getLastOracleId() view returns (uint256)
getLastSymbolId
viewfunction getLastSymbolId() view returns (uint256)
getLastTradeId
viewfunction getLastTradeId() view returns (uint256)
getLastTransferIntentId
viewfunction getLastTransferIntentId() view returns (uint256)
getLastWithdrawId
viewfunction getLastWithdrawId() view returns (uint256)
getMaxConnectedPartyBs
viewfunction getMaxConnectedPartyBs() view returns (uint256)
getOpenIntent
viewfunction getOpenIntent(uint256 openIntentId) view returns (tuple)
getOpenIntentsByParent
viewfunction getOpenIntentsByParent(uint256 openIntentId, uint256 size) view returns (tuple[])
getOpenIntentsOf
viewfunction getOpenIntentsOf(address partyA, uint256 start, uint256 size) view returns (tuple[])
getOpenIntentsWithBitmap
viewfunction getOpenIntentsWithBitmap(tuple bitmap, uint256 gasNeededForReturn) view returns (tuple[] openIntents)
getOracle
viewfunction getOracle(uint256 oracleId) view returns (tuple)
getPartyBReleaseIntervals
viewfunction getPartyBReleaseIntervals(address partyB) view returns (uint256)
getRoleHash
purefunction getRoleHash(string str) pure returns (bytes32)
getRoleMember
viewfunction getRoleMember(bytes32 role, uint256 index) view returns (address)
getRoleMemberCount
viewfunction getRoleMemberCount(bytes32 role) view returns (uint256)
getRoleMembers
viewfunction getRoleMembers(bytes32 role) view returns (address[])
getSymbol
viewfunction getSymbol(uint256 symbolId) view returns (tuple)
getSymbols
viewfunction getSymbols(uint256 start, uint256 size) view returns (tuple[])
getTrade
viewfunction getTrade(uint256 tradeId) view returns (tuple)
getTradesOf
viewfunction getTradesOf(address user, uint256 start, uint256 size) view returns (tuple[])
getTransferIntent
viewfunction getTransferIntent(uint256 intentId) view returns (tuple)
getUnbindingCooldown
viewfunction getUnbindingCooldown() view returns (uint256)
getUnbindingRequestTime
viewfunction getUnbindingRequestTime(address user) view returns (uint256)
getWithdraw
viewfunction getWithdraw(uint256 id) view returns (tuple)
globalPaused
viewfunction globalPaused() view returns (bool)
hasRole
viewfunction hasRole(address user, bytes32 role) view returns (bool)
internalTransferPaused
viewfunction internalTransferPaused() view returns (bool)
involvedPartyAsCountInLiquidation
viewfunction involvedPartyAsCountInLiquidation(address partyB, address collateral) view returns (uint256)
isSigUsed
viewfunction isSigUsed(bytes32 intentHash) view returns (bool)
isSuspended
viewfunction isSuspended(address user) view returns (bool)
isSuspendedWithdrawal
viewfunction isSuspendedWithdrawal(uint256 withdrawId) view returns (bool)
liquidatingPaused
viewfunction liquidatingPaused() view returns (bool)
liquidationDebtsToPartyAs
viewfunction liquidationDebtsToPartyAs(address partyB, address collateral, address partyA) view returns (uint256)
liquidationDetail
viewfunction liquidationDetail(uint256 liquidationId) view returns (tuple)
liquidationSigValidTime
viewfunction liquidationSigValidTime() view returns (uint256)
liquidationStates
viewfunction liquidationStates(address partyBAddress, address collateral) view returns (tuple)
maxCloseOrdersLength
viewfunction maxCloseOrdersLength() view returns (uint256)
maxTradePerPartyA
viewfunction maxTradePerPartyA() view returns (uint256)
openIntentIdsOf
viewfunction openIntentIdsOf(address partyA, uint256 start, uint256 size) view returns (uint256[])
openIntentsLength
viewfunction openIntentsLength(address user) view returns (uint256)
ownerExclusiveWindow
viewfunction ownerExclusiveWindow() view returns (uint256)
partyAActionsPaused
viewfunction partyAActionsPaused() view returns (bool)
partyADeallocateCooldown
viewfunction partyADeallocateCooldown() view returns (uint256)
partyAStats
viewfunction partyAStats(address partyA, address collateral) view returns (bool, uint256, uint256[], uint256[])
partyATradesIndex
viewfunction partyATradesIndex(uint256 index) view returns (uint256)
partyBActionsPaused
viewfunction partyBActionsPaused() view returns (bool)
partyBConfigs
viewfunction partyBConfigs(address partyB) view returns (tuple)
partyBDeallocateCooldown
viewfunction partyBDeallocateCooldown() view returns (uint256)
partyBEmergencyStatus
viewfunction partyBEmergencyStatus(address partyB) view returns (bool)
partyBList
viewfunction partyBList() view returns (address[])
partyBTradesIndex
viewfunction partyBTradesIndex(uint256 index) view returns (uint256)
priceOracleAddress
viewfunction priceOracleAddress() view returns (address)
settlementPriceSigValidTime
viewfunction settlementPriceSigValidTime() view returns (uint256)
signatureVerifier
viewfunction signatureVerifier() view returns (address)
symbolNameById
viewfunction symbolNameById(uint256[] symbolIds) view returns (string[])
symbolNameByTradeId
viewfunction symbolNameByTradeId(uint256[] tradeIds) view returns (string[])
symbolsByOpenIntentId
viewfunction symbolsByOpenIntentId(uint256[] openIntentIds) view returns (tuple[])
thirdPartyActionsPaused
viewfunction thirdPartyActionsPaused() view returns (bool)
tradeIdsOf
viewfunction tradeIdsOf(address user, uint256 start, uint256 size) view returns (uint256[])
tradeNftAddress
viewfunction tradeNftAddress() view returns (address)
tradesOfLength
viewfunction tradesOfLength(address user) view returns (uint256)
version
viewfunction version() view returns (uint16)
whiteListedCollateral
viewfunction whiteListedCollateral(address collateral) view returns (bool)
withdrawingPaused
viewfunction withdrawingPaused() view returns (bool)
events
No events.
errors
No errors.
creation bytecode
0x6080806040523461001657614225908161001c8239f35b600080fdfe608060408181526004918236101561001657600080fd5b60009260e08435811c928363041fbeff14612eab575082630511449014612e625782630558c70d14612e23578263085ec95c14612d775782630905f56014612d4257826309ad320714612ce157826309d3381414612ca25782630fcaddea14612c2e57826310a9de6014612b7057826311e02d8714612a4357826312cc19fd14612a04578263186fe632146129c557826318eaae05146128a95782631ecc73a61461284b578263232e0e9a146127e3578263240c538114612782578263242bd7011461274d57826325cac92a1461270e5782632bc51c6d146126d75782632cb661fa146126795782632d359d801461263a5782632db25e05146125e65782633341bb111461257457826336aee6aa146124bf578263373e44501461248f57826337c65188146123dd57826337f5d2a91461236f5782633a9b1cb3146122fb5782633ed17904146122ae5782633f7aa40e1461226f578263430c3f7b1461218e5782634691bc3c1461208757826347d24bc614611ef9578263493c19f214611ec45782634cd0465314611e9d57826354fd4d5014611e5a5782635999b3f514611e0d5782635b09c5b314611cd157826361a552dc14611c9c57826361fccf4714611c445782636418413c14611bf057826365008ebc14611b7e57826367b430d814611ad95782636af6d10614611a115782636ccf20d5146119de578263703a8ff71461199f57826371e948b91461196a578263721be91414611935578263722edecd146118d757826372cb16cc1461187f5782637527ac471461184057826375926137146117f75782637782e2161461179c578263790c564e146117545782637ceef5f11461171f5782637df59f56146116e05782638117bd5c146116ab578263822d4e4a14611684578263849c3670146115a65782639010d07c1461154557826390bb1441146115065782639295bfbb146114c757826395975cf6146114925782639fb4cd8514611392578263a3246ad3146112fc578263a905d25c1461128a578263ac4ab3fb14611223578263b3b449d5146111cb578263b61fcf7614611196578263b71a736614611157578263b891118114611118578263bb02fa4214610fd9578263bf7c69db14610f57578263c103e07c14610e0457508163c460aa3414610dc6578163c8ff47cc14610d69578163c9a9d8e014610d2b578163ca15c87314610ce4578163ca1bb9ed14610c8a578163cab7026e14610c43578163ce9bd0b414610bc4578163d184fcc414610b3d578163d5efaffc14610ae6578163d814643314610aa8578163d81a8781146109ee578163d8d16f90146109b0578163e634a0fc14610972578163e8523ad61461092a578163e897c7c314610891578163ebfbfa731461083e578163f041ac7214610818578163f275f1af1461075b57508063f2c595331461072e578063f3b533e814610675578063f3fa7db81461060e578063f4d52658146105d1578063f7888aec14610556578063f9406caa14610519578063f994ea12146104bd5763fde919f61461047357600080fd5b346104b957816003193601126104b9577f789f235d4a18fa93b2c978498e44ac1aabf0a4c57ab0a0fdc991d7fbc4a949395490516001600160a01b039091168152602090f35b5080fd5b50346104b95760203660031901126104b95760209160ff9082906001600160a01b036104e7612f6c565b1681527ffce96d8b9b34f73081d511b432ae5a90a254efc831e060fda6888a0e03c548ab855220541690519015158152f35b50346104b957816003193601126104b9576020907ffce96d8b9b34f73081d511b432ae5a90a254efc831e060fda6888a0e03c548a8549051908152f35b50346104b957806003193601126104b95780602092610573612f6c565b6105b961057e612f87565b6001600160a01b0390921660009081527fdd1d6d04e1f24037b02215b0852708bab55d9f1305ee6cb777ad46ae2573bb186020526040902090565b6001600160a01b039091168252845220549051908152f35b50346104b957816003193601126104b9576020907ffce96d8b9b34f73081d511b432ae5a90a254efc831e060fda6888a0e03c548a7549051908152f35b50346104b957806003193601126104b9578060209261062b612f6c565b610633612f87565b6001600160a01b0391821683527ffce96d8b9b34f73081d511b432ae5a90a254efc831e060fda6888a0e03c548bf865283832091168252845220549051908152f35b50903461072b5761068536613468565b92909161069184613e69565b9281526000805160206141f983398151915260208181526106b3848420613d71565b806106bd87613b22565b526106c786613b22565b506001905b8782106106e5575b8551806106e18982613227565b0390f35b61010001518015610726578452828252610720610703868620613d71565b918261070f828a613b45565b5261071a8189613b45565b50613b13565b906106cc565b6106d4565b80fd5b50346104b95760203660031901126104b95760209061075361074e612f6c565b6137bd565b549051908152f35b82843461072b57602092836003193601126104b9578035916001600160401b03918284116104b957366023850112156104b9578381013592831161080557508351916107b0601f8201601f191687018461366c565b80835285830193366024838301011161080157908060248893018637830101526107f784845180936107ea838301968792519283916130e7565b810103808452018261366c565b5190209051908152f35b8280fd5b634e487b7160e01b825260419052602490fd5b5050346104b95760203660031901126104b957602090610753610839612f6c565b6137f6565b90503461080157602036600319011261080157816106e19361087e92610862613bf6565b503581526000805160206141f983398151915260205220613d71565b905191829160208352602083019061312f565b82843461072b576108a1366136a4565b906108ac8251613b59565b90805b835181101561091d57806108c66109189286613b45565b51835261090360206000805160206141d983398151915281526000805160206141b9833981519152600291828a8820015487525287852001613938565b61090d8286613b45565b5261071a8185613b45565b6108af565b8451806106e18582613722565b5050346104b957816003193601126104b9577fdd1d6d04e1f24037b02215b0852708bab55d9f1305ee6cb777ad46ae2573bb295490516001600160a01b039091168152602090f35b5050346104b957816003193601126104b9576020907ffce96d8b9b34f73081d511b432ae5a90a254efc831e060fda6888a0e03c548ba549051908152f35b5050346104b957816003193601126104b9576020907ffce96d8b9b34f73081d511b432ae5a90a254efc831e060fda6888a0e03c548b0549051908152f35b82843461072b57506109ff36612feb565b9182610a15610a0d83613868565b549184613a93565b11610a8d575b610a2483613eb9565b93825b610a318585613a93565b811015610a7857610a7181610a51610a3193610a4c87613868565b613eeb565b90549060031b1c610a6b610a658884613ab6565b8a613b45565b52613b13565b9050610a27565b8151602080825281906106e190820189612fb7565b9150610aa281610a9c84613868565b54613ab6565b91610a1b565b5050346104b957816003193601126104b9576020907ffce96d8b9b34f73081d511b432ae5a90a254efc831e060fda6888a0e03c548af549051908152f35b5050346104b95760203660031901126104b95760209181906001600160a01b03610b0e612f6c565b1681527fdd1d6d04e1f24037b02215b0852708bab55d9f1305ee6cb777ad46ae2573bb23845220549051908152f35b5050346104b95760603660031901126104b957610b58612f6c565b610b60612f87565b6001600160a01b036044358181169390849003610bc0579181859492602097941684527ffce96d8b9b34f73081d511b432ae5a90a254efc831e060fda6888a0e03c548be8752848420911683528552828220908252845220549051908152f35b8580fd5b5050346104b957610bd4366136a4565b90610bdf8251613b59565b92805b8351811015610c365780610bf9610c319286613b45565b5183526000805160206141b9833981519152602052610c1c600285852001613938565b610c268288613b45565b5261071a8187613b45565b610be2565b8251806106e18782613722565b9050346108015760203660031901126108015760209282913581527f789f235d4a18fa93b2c978498e44ac1aabf0a4c57ab0a0fdc991d7fbc4a94933845220549051908152f35b5050346104b95760203660031901126104b9576020916001600160a01b0390829082610cb4612f6c565b1681527fdd1d6d04e1f24037b02215b0852708bab55d9f1305ee6cb777ad46ae2573bb1b85522054169051908152f35b9050346108015760203660031901126108015760209282913581527ffce96d8b9b34f73081d511b432ae5a90a254efc831e060fda6888a0e03c548b5845220549051908152f35b5050346104b957816003193601126104b9576020907fdd1d6d04e1f24037b02215b0852708bab55d9f1305ee6cb777ad46ae2573bb21549051908152f35b5050346104b95760203660031901126104b95760209160ff9082906001600160a01b03610d94612f6c565b1681527fdd1d6d04e1f24037b02215b0852708bab55d9f1305ee6cb777ad46ae2573bb22855220541690519015158152f35b5050346104b957816003193601126104b9576020907f316cd9f80e16af2a12ce33cac96aeb1f3125dc040f5be132549ff7c414a113d5549051908152f35b84848334610801576020928360031936011261072b57808391868351610e2981613618565b82815282888201528285820152826060820152606060808201528260a08201528260c08201520152823581527f789f235d4a18fa93b2c978498e44ac1aabf0a4c57ab0a0fdc991d7fbc4a9493a85522091805194610e8686613618565b8354865285600185015492868201938452600286015481830190815260018060a01b03958691610ec58360038b01541692606087019384528a01613d0d565b936080860194855260ff60078560058d0154169b60a089019c8d5260c06006820154990198895201541697878d0198610efd816132f1565b89528b82519d8e9d8e5251908d015251908b01525160608a0152511660808801525193610f38610100958660a08a015261012089019061309d565b95511660c087015251908501525190610f50826132f1565b8301520390f35b505050346104b957610f68366136a4565b90610f738251613ac3565b92805b8351811015610fcc5780610f8d610fc79286613b45565b5183526000805160206141b983398151915260206000805160206141f9833981519152815260028686200154855252610c1c848420613a07565b610f76565b8251806106e187826134fb565b8491843461111457602090816003193601126111105780856101209686835161100181613618565b60608152828782015282858201528260608201528260808201528260a08201528260c08201520152843581527ffce96d8b9b34f73081d511b432ae5a90a254efc831e060fda6888a0e03c548bd8452209381519461105e86613618565b61106781613938565b86526001810154948487019586526002820154848801908152600383015491606089019283528301546080890190815260018060a01b0392836005860154169260a08b01938452600760068701549660c08d01978852015497878c019889526110e38151809e819e8d83525191610100809e820152019061310a565b9a51908c01525160608b01525160808a01525160a0890152511660c0870152519085015251908301520390f35b8480fd5b8380fd5b505050346104b957816003193601126104b9576020907ffce96d8b9b34f73081d511b432ae5a90a254efc831e060fda6888a0e03c548ad549051908152f35b505050346104b957816003193601126104b9576020907ffce96d8b9b34f73081d511b432ae5a90a254efc831e060fda6888a0e03c548b9549051908152f35b505050346104b957816003193601126104b95760209060ff6000805160206141998339815191525460e81c1690519015158152f35b505050346104b95760203660031901126104b95760209181906001600160a01b036111f4612f6c565b1681527f789f235d4a18fa93b2c978498e44ac1aabf0a4c57ab0a0fdc991d7fbc4a9492a845220549051908152f35b505050346104b957806003193601126104b95760209160ff9082906001600160a01b0361124e612f6c565b1681527ffce96d8b9b34f73081d511b432ae5a90a254efc831e060fda6888a0e03c548b485528181206024358252855220541690519015158152f35b83853461072b575061129b36612feb565b91826112a9610a0d836137f6565b116112e7575b6112b883613eb9565b93825b6112c58585613a93565b811015610a78576112e081610a516112c593610a4c876137f6565b90506112bb565b91506112f681610a9c846137f6565b916112af565b848285346108015760209182600319360112611114573583527ffce96d8b9b34f73081d511b432ae5a90a254efc831e060fda6888a0e03c548b58252808320815190819485928583549182815201928252858220915b8682821061137b5785906106e18861136c8489038561366c565b5192828493845283019061309d565b835485528895509093019260019283019201611352565b83853461072b576113a23661355d565b93909291846113b08461382f565b6001600160a01b0390921680845260209283528784205490916113d39087613a93565b1161146f575b6113e286614094565b93855b6113ef8888613a93565b8110156114625761145b6113ef916114068461382f565b8588528652611417818c8920613eeb565b90549060031b1c87526000805160206141d9833981519152865261071a8b882061144a6114448c85613ab6565b91613fc0565b611454828c613b45565b5289613b45565b90506113e5565b8851806106e18882613406565b945061147a8361382f565b858352815261148c8487842054613ab6565b946113d9565b505050346104b957816003193601126104b95760209060ff6000805160206141998339815191525460a81c1690519015158152f35b505050346104b957816003193601126104b9576020907ffce96d8b9b34f73081d511b432ae5a90a254efc831e060fda6888a0e03c548a9549051908152f35b505050346104b957816003193601126104b9576020907ffce96d8b9b34f73081d511b432ae5a90a254efc831e060fda6888a0e03c548ae549051908152f35b50905034610801578160031936011261080157602092611590913581527ffce96d8b9b34f73081d511b432ae5a90a254efc831e060fda6888a0e03c548b58452826024359120613eeb565b905491519160018060a01b039160031b1c168152f35b83853461072b576115b63661355d565b80959294919395946115c78761382f565b6001600160a01b0390911680845260209182528484205490926115ea9087613a93565b11611661575b6115f986613eb9565b96855b6116068888613a93565b81101561164f576116486116069161161d8461382f565b868852855261162e81898920613eeb565b90549060031b1c610a6b6116428b84613ab6565b8d613b45565b90506115fc565b8551838152806106e18186018c612fb7565b945061166c8661382f565b818352855261167e8484842054613ab6565b946115f0565b505050346104b95760203660031901126104b9576020906107536116a6612f6c565b613868565b505050346104b957816003193601126104b95760209060ff6000805160206141998339815191525460c01c1690519015158152f35b505050346104b957816003193601126104b9576020907fdd1d6d04e1f24037b02215b0852708bab55d9f1305ee6cb777ad46ae2573bb1a549051908152f35b505050346104b957816003193601126104b95760209060ff6000805160206141998339815191525460b81c1690519015158152f35b509050346108015760203660031901126108015760209282913581527f789f235d4a18fa93b2c978498e44ac1aabf0a4c57ab0a0fdc991d7fbc4a94932845220549051908152f35b505050346104b95760203660031901126104b9576020916001600160a01b03908290826117c7612f6c565b1681527ffce96d8b9b34f73081d511b432ae5a90a254efc831e060fda6888a0e03c548b385522054169051908152f35b505050346104b957816003193601126104b9577ffce96d8b9b34f73081d511b432ae5a90a254efc831e060fda6888a0e03c548b15490516001600160a01b039091168152602090f35b505050346104b957816003193601126104b9576020907f316cd9f80e16af2a12ce33cac96aeb1f3125dc040f5be132549ff7c414a113d3549051908152f35b505050346104b95760203660031901126104b95760209181906001600160a01b036118a8612f6c565b1681527fdd1d6d04e1f24037b02215b0852708bab55d9f1305ee6cb777ad46ae2573bb19845220549051908152f35b505050346104b95760203660031901126104b95760209160ff9082906001600160a01b03611903612f6c565b1681527ffce96d8b9b34f73081d511b432ae5a90a254efc831e060fda6888a0e03c548b2855220541690519015158152f35b505050346104b957816003193601126104b95760209060ff6000805160206141998339815191525460b01c1690519015158152f35b505050346104b957816003193601126104b95760209060ff6000805160206141998339815191525460d81c1690519015158152f35b505050346104b957816003193601126104b9576020907f789f235d4a18fa93b2c978498e44ac1aabf0a4c57ab0a0fdc991d7fbc4a94934549051908152f35b83853461072b578060031936011261072b5750600080516020614199833981519152549051911c60ff1615158152602090f35b83853461072b57611a2136612feb565b9290919083611a3a611a32846137bd565b549185613a93565b11611ac4575b611a4984614094565b91835b611a568686613a93565b811015611ab757611ab081611a71611a5693610a4c866137bd565b90549060031b1c85526000805160206141d983398151915260205261071a898620611a9f6114448a85613ab6565b611aa9828a613b45565b5287613b45565b9050611a4c565b8651806106e18682613406565b9250611ad382610a9c836137bd565b92611a40565b505050346104b957816003193601126104b9578051908180937ffce96d8b9b34f73081d511b432ae5a90a254efc831e060fda6888a0e03c548b790815480865260208096019282527f117c57a4831d34947e035ad077c41beae0ee8d9a9582d3bc98c89841d04cb16a915b86828210611b5e5785906106e18861136c8489038561366c565b83546001600160a01b031685528895509093019260019283019201611b44565b83853461072b5750611b8f36612feb565b9182611b9d610a0d83613784565b11611bdb575b611bac83613eb9565b93825b611bb98585613a93565b811015610a7857611bd481610a51611bb993610a4c87613784565b9050611baf565b9150611bea81610a9c84613784565b91611ba3565b5090503461080157602036600319011261080157816106e193611c3192611c156138f2565b503581526000805160206141b983398151915260205220613a07565b905191829160208352602083019061347e565b505050346104b95760203660031901126104b95760209181906001600160a01b03611c6d612f6c565b1681527fdd1d6d04e1f24037b02215b0852708bab55d9f1305ee6cb777ad46ae2573bb1c845220549051908152f35b505050346104b957816003193601126104b95760209060ff6000805160206141998339815191525460a01c1690519015158152f35b9150913461111457602036600319011261111457808461010095848351611cf781613618565b82815282602082015282858201528260608201528260808201528260a08201528260c08201520152843581527fdd1d6d04e1f24037b02215b0852708bab55d9f1305ee6cb777ad46ae2573bb26602052208151918291611d5683613618565b805483526001810154956020840196875260018060a01b039283809281600286015416928088019384528280806003890154169360608b01948552880154169460808a0195865260ff60078360058b0154169960a08d019a8b5260c060068201549d019c8d520154169a8c81019b611dcd81613289565b8c528351905181529c5160208e01525116908b01525116606089015251166080870152511660a08501525160c08401525190611e0882613289565b820152f35b50905034610801576020366003190112610801578160209360ff923581527fdd1d6d04e1f24037b02215b0852708bab55d9f1305ee6cb777ad46ae2573bb1f855220541690519015158152f35b505050346104b957816003193601126104b95760209061ffff7ffce96d8b9b34f73081d511b432ae5a90a254efc831e060fda6888a0e03c548bb54169051908152f35b505050346104b95760203660031901126104b957602090610753611ebf612f6c565b613784565b505050346104b957816003193601126104b95760209060ff6000805160206141998339815191525460c81c1690519015158152f35b505050346104b957611f0a36612f9d565b92909193838582527f789f235d4a18fa93b2c978498e44ac1aabf0a4c57ab0a0fdc991d7fbc4a94936602091818352611f47858520549187613a93565b1161206c575b611f568661368d565b96611f638551988961366c565b868852601f19611f728861368d565b0183855b82811061205657505050855b611f8c8888613a93565b81101561200c57612005611f8c91838752848652611fac81898920613eeb565b90549060031b1c87527f789f235d4a18fa93b2c978498e44ac1aabf0a4c57ab0a0fdc991d7fbc4a94935865261071a611ff88c611ffe8c611ff08d8d209187613ab6565b938491614129565b92613b45565b528c613b45565b9050611f82565b855184815289518186018190528a860191908189019087895b8281106120325784840385f35b90919282610120826120476001948a51613293565b01960191019492919094612025565b61205e6140e4565b82828d010152018490611f76565b94508582528481526120818484842054613ab6565b94611f4d565b83853461072b578160031936011261072b576106e16120a4612f6c565b92612180816120b1612f87565b9460ff6120ef8860018060a01b03166000527fdd1d6d04e1f24037b02215b0852708bab55d9f1305ee6cb777ad46ae2573bb1e602052604060002090565b546001600160a01b03891660009081527fdd1d6d04e1f24037b02215b0852708bab55d9f1305ee6cb777ad46ae2573bb1860205260409020911696906001600160a01b039091168252602052205494608061216461215e612158612152856137f6565b94613868565b936138a1565b926138a1565b9380519788971515885260208801528601526080850190612fb7565b908382036060850152612fb7565b508383346104b95761219f36613468565b929091836121cf7f316cd9f80e16af2a12ce33cac96aeb1f3125dc040f5be132549ff7c414a113d5549185613a93565b811061225b575b506121e084613ac3565b91835b6121ed8686613a93565b81101561224e576001810180821161223b576121ed916122349184526000805160206141b983398151915260205261071a858520611a9f61222e8a85613ab6565b91613a07565b90506121e3565b634e487b7160e01b835260118852602483fd5b8251806106e186826134fb565b6122689194508390613ab6565b92856121d6565b505050346104b957816003193601126104b9576020907fdd1d6d04e1f24037b02215b0852708bab55d9f1305ee6cb777ad46ae2573bb1d549051908152f35b50905034610801576020366003190112610801578160209360ff923581527f789f235d4a18fa93b2c978498e44ac1aabf0a4c57ab0a0fdc991d7fbc4a94938855220541690519015158152f35b83853461072b5761230b36612feb565b929091908361231c611a3284613868565b1161235a575b61232b84614094565b91835b6123388686613a93565b811015611ab75761235381611a7161233893610a4c86613868565b905061232e565b925061236982610a9c83613868565b92612322565b505050346104b95760203660031901126104b9576106e1916123ca9082906001600160a01b0361239d612f6c565b1681527fdd1d6d04e1f24037b02215b0852708bab55d9f1305ee6cb777ad46ae2573bb27602052206138a1565b9051918291602083526020830190612fb7565b505050346104b957806003193601126104b95780916123fa612f6c565b612402612f87565b908260208551612411816135fd565b828152015260018060a01b0380911683527ffce96d8b9b34f73081d511b432ae5a90a254efc831e060fda6888a0e03c548bc602052838320911682526020522060ff6001835192612461846135fd565b80548452015416602082019061247681613289565b81528251915182525161248881613289565b6020820152f35b505050346104b957806003193601126104b957806020926124ae612f6c565b6105b96124b9612f87565b9161382f565b83853461072b576124cf36612feb565b92909190836124e0611a32846137f6565b1161255f575b6124ef84613e69565b91835b6124fc8686613a93565b8110156125525761254b816125176124fc93610a4c866137f6565b90549060031b1c85526000805160206141f983398151915260205261071a898620611a9f6125458a85613ab6565b91613d71565b90506124f2565b8651806106e18682613227565b925061256e82610a9c836137f6565b926124e6565b83853461072b575061258536612feb565b9182612593610a0d836137bd565b116125d1575b6125a283613eb9565b93825b6125af8585613a93565b811015610a78576125ca81610a516125af93610a4c876137bd565b90506125a5565b91506125e081610a9c846137bd565b91612599565b5090503461080157602036600319011261080157816106e1936126279261260b613f48565b503581526000805160206141d983398151915260205220613fc0565b90519182916020835260208301906132fb565b505050346104b957816003193601126104b9576020907f789f235d4a18fa93b2c978498e44ac1aabf0a4c57ab0a0fdc991d7fbc4a94937549051908152f35b505050346104b95760203660031901126104b95760209160ff9082906001600160a01b036126a5612f6c565b1681527ffce96d8b9b34f73081d511b432ae5a90a254efc831e060fda6888a0e03c548a6855220541690519015158152f35b505050346104b957816003193601126104b9576000805160206141998339815191525490516001600160a01b039091168152602090f35b505050346104b957816003193601126104b9576020907fdd1d6d04e1f24037b02215b0852708bab55d9f1305ee6cb777ad46ae2573bb28549051908152f35b505050346104b957816003193601126104b95760209060ff6000805160206141998339815191525460d01c1690519015158152f35b50905034610801576020366003190112610801576127d882610120946127e1936127aa6140e4565b503581527f789f235d4a18fa93b2c978498e44ac1aabf0a4c57ab0a0fdc991d7fbc4a9493560205220614129565b91518092613293565bf35b505050346104b95760203660031901126104b95760209060ff612840612807612f6c565b6001600160a01b031660009081527fdd1d6d04e1f24037b02215b0852708bab55d9f1305ee6cb777ad46ae2573bb1e6020526040902090565b541690519015158152f35b505050346104b95760203660031901126104b95760209160ff9082906001600160a01b03612877612f6c565b1681527fdd1d6d04e1f24037b02215b0852708bab55d9f1305ee6cb777ad46ae2573bb25855220541690519015158152f35b9083853461072b57602036600319011261072b5780829160c083516128cd816135e2565b82815282602082015282858201528260608201528260808201528260a08201520152833581527fdd1d6d04e1f24037b02215b0852708bab55d9f1305ee6cb777ad46ae2573bb2060205220815192612924846135e2565b815484526001820154926020850193845260018060a01b03809281600286015416928088019384528280806003890154169360608b01948552880154169460808a0195865260ff600660058a01549960a08d019a8b520154169860c08b019961298c81613289565b8a5283519a518b525160208b015251169088015251166060860152511660808401525160a0830152516129be81613289565b60c0820152f35b505050346104b957816003193601126104b9576020907fdd1d6d04e1f24037b02215b0852708bab55d9f1305ee6cb777ad46ae2573bb24549051908152f35b505050346104b957816003193601126104b9576020907f789f235d4a18fa93b2c978498e44ac1aabf0a4c57ab0a0fdc991d7fbc4a9493b549051908152f35b508383346104b95760031991818336011261072b578335936001600160401b0385116104b9578483910193853603011261072b5760243592612a858135613e69565b9282906024849701935b612a998585613f03565b9050881015612b6357612aae85859695613f03565b9490612abe8a6020978893613f38565b013595612ad58a612acf8484613f03565b90613f38565b35965b80151580612b5a575b15612b4057600197888216612b01575b612afa90613b13565b971c612ad8565b95612b38612afa918887526000805160206141f98339815191528a528b612b2d82611ff88b8b20613d71565b5261071a818d613b45565b969050612af1565b50979550935096612b5090613b13565b9695929395612a8f565b50895a11612ae1565b8151806106e18882613227565b5082843461072b57602092836003193601126104b95790829181838051612b96816135c7565b82815260608882015201523581527f316cd9f80e16af2a12ce33cac96aeb1f3125dc040f5be132549ff7c414a113d28452206002612c22835193612bd9856135c7565b835485526060612beb60018601613938565b9487870195865260018060a01b0394859101541694828701958652825197889781895251908801525191860152608085019061310a565b91511660608301520390f35b83853461072b57612c3e36612feb565b9290919083612c4f611a3284613784565b11612c8d575b612c5e84613e69565b91835b612c6b8686613a93565b81101561255257612c8681612517612c6b93610a4c86613784565b9050612c61565b9250612c9c82610a9c83613784565b92612c55565b505050346104b957816003193601126104b9576020907ffce96d8b9b34f73081d511b432ae5a90a254efc831e060fda6888a0e03c548ac549051908152f35b505050346104b957806003193601126104b95760209181906001600160a01b03612d09612f6c565b1681527ffce96d8b9b34f73081d511b432ae5a90a254efc831e060fda6888a0e03c548c184528181206024358252845220549051908152f35b505050346104b957816003193601126104b95760209060ff6000805160206141998339815191525460f01c1690519015158152f35b505050346104b957612d8836612f9d565b8285527f789f235d4a18fa93b2c978498e44ac1aabf0a4c57ab0a0fdc991d7fbc4a94936602081815285872054949692959394612dc58787613a93565b11612e08575b612dd486613eb9565b96855b612de18888613a93565b81101561164f57612e01612de19183875285855261162e81898920613eeb565b9050612dd7565b9450858252808552612e1d8484842054613ab6565b94612dcb565b505050346104b957816003193601126104b9576020907f789f235d4a18fa93b2c978498e44ac1aabf0a4c57ab0a0fdc991d7fbc4a9492d549051908152f35b505050346104b957816003193601126104b9577ffce96d8b9b34f73081d511b432ae5a90a254efc831e060fda6888a0e03c548b85490516001600160a01b039091168152602090f35b9250505034610801576020366003190112610801578282916080946060612ed0612f6c565b92612eda81613596565b8281528260208201528286820152015260018060a01b031681527ffce96d8b9b34f73081d511b432ae5a90a254efc831e060fda6888a0e03c548b66020522090805190612f2682613596565b60ff835416151592838352600181015460208401908152606060036002840154938587019485520154940193845282519485525160208501525190830152516060820152f35b600435906001600160a01b0382168203612f8257565b600080fd5b602435906001600160a01b0382168203612f8257565b6060906003190112612f8257600435906024359060443590565b90815180825260208080930193019160005b828110612fd7575050505090565b835185529381019392810192600101612fc9565b6060906003190112612f82576004356001600160a01b0381168103612f8257906024359060443590565b6002111561301f57565b634e487b7160e01b600052602160045260246000fd5b602060e06101009280518552828101518386015260408101516040860152606081015160608601526080810151608086015260a081015161307581613015565b60a086015260c081015161308881613015565b60c08601520151805160e08501520151910152565b90815180825260208080930193019160005b8281106130bd575050505090565b83516001600160a01b0316855293810193928101926001016130af565b90600682101561301f5752565b60005b8381106130fa5750506000910152565b81810151838201526020016130ea565b90602091613123815180928185528580860191016130e7565b601f01601f1916010190565b61322491815181526020820151602082015261315360408301516040830190613035565b606082015191610160928383015260018060a01b0390816080820151169161018092838501528060a0830151166101a09081860152604060c0840151946131a8610320966101c09780898b015289019061309d565b976131bc60e08701516101e08a01906130da565b6101008601516102008901526101208601516102208901526101408601516102408901528501516102608801528401518381511661028088015260208101516102a088015201516102c0860152820151166102e084015201519061030081840391015261310a565b90565b602080820190808352835180925260408301928160408460051b8301019501936000915b84831061325b5750505050505090565b9091929394958480613279600193603f198682030187528a5161312f565b980193019301919493929061324b565b6003111561301f57565b80518252602081015160208301526040810151604083015260608101516060830152608081015160808301526132d160a082015160a08401906130da565b60c081015160c083015260e081015160e083015261010080910151910152565b6005111561301f57565b91906102e09081810184518252602094858101518684015261332560408201516040850190613035565b60018060a01b03938460608301511694610160958686015260808301511696610180978886015260a0830151936101a09283870152845180915281610300870195019160005b8281106133f257505050506102c09394959661339660c0840151946101c095888203878a015261309d565b9660e08401516101e08801526101008401516102008801526101208401516102208801526101408401516102408801528301516102608701528201516133db816132f1565b6102808601528101516102a0850152015191015290565b83518752958101959281019260010161336b565b602080820190808352835180925260408301928160408460051b8301019501936000915b84831061343a5750505050505090565b9091929394958480613458600193603f198682030187528a516132fb565b980193019301919493929061342a565b6040906003190112612f82576004359060243590565b90815181526020820151151560208201526134a8604083015161012080604085015283019061310a565b9160608101516134b781613015565b60608301526080810151608083015260018060a01b0360a08201511660a083015260c0810151151560c083015260e081015160e08301526101008091015191015290565b602080820190808352835180925260408301928160408460051b8301019501936000915b84831061352f5750505050505090565b909192939495848061354d600193603f198682030187528a5161347e565b980193019301919493929061351f565b6080906003190112612f82576001600160a01b03906004358281168103612f8257916024359081168103612f8257906044359060643590565b608081019081106001600160401b038211176135b157604052565b634e487b7160e01b600052604160045260246000fd5b606081019081106001600160401b038211176135b157604052565b60e081019081106001600160401b038211176135b157604052565b604081019081106001600160401b038211176135b157604052565b61010081019081106001600160401b038211176135b157604052565b61012081019081106001600160401b038211176135b157604052565b6101e081019081106001600160401b038211176135b157604052565b90601f801991011681019081106001600160401b038211176135b157604052565b6001600160401b0381116135b15760051b60200190565b602080600319830112612f8257600435916001600160401b038311612f825780602384011215612f825782600401356136dc8161368d565b936136ea604051958661366c565b81855260248486019260051b820101928311612f8257602401905b828210613713575050505090565b81358152908301908301613705565b602080820190808352835180925260408301928160408460051b8301019501936000915b8483106137565750505050505090565b9091929394958480613774600193603f198682030187528a5161310a565b9801930193019194939290613746565b6001600160a01b031660009081527f789f235d4a18fa93b2c978498e44ac1aabf0a4c57ab0a0fdc991d7fbc4a949296020526040902090565b6001600160a01b031660009081527f789f235d4a18fa93b2c978498e44ac1aabf0a4c57ab0a0fdc991d7fbc4a949306020526040902090565b6001600160a01b031660009081527f789f235d4a18fa93b2c978498e44ac1aabf0a4c57ab0a0fdc991d7fbc4a949286020526040902090565b6001600160a01b031660009081527f789f235d4a18fa93b2c978498e44ac1aabf0a4c57ab0a0fdc991d7fbc4a949316020526040902090565b6001600160a01b031660009081527f789f235d4a18fa93b2c978498e44ac1aabf0a4c57ab0a0fdc991d7fbc4a9492f6020526040902090565b9060405191828154918282526020928383019160005283600020936000905b8282106138d8575050506138d69250038361366c565b565b8554845260019586019588955093810193909101906138c0565b604051906138ff82613634565b81610100600091828152826020820152606060408201528260608201528260808201528260a08201528260c08201528260e08201520152565b90604051906000835490600182811c908084169687156139fd575b60209485841089146139e957879884899798995290816000146139c75750600114613988575b5050506138d69250038361366c565b600090815285812095935091905b8183106139af5750506138d69350820101388080613979565b85548884018501529485019487945091830191613996565b925050506138d694925060ff191682840152151560051b820101388080613979565b634e487b7160e01b85526022600452602485fd5b91607f1691613953565b90604051613a1481613634565b610100600782948054845260ff60018201541615156020850152613a3a60028201613938565b604085015260ff600382015416613a5081613015565b60608501526004810154608085015260058101546001600160a01b03811660a0808701919091521c60ff16151560c0850152600681015460e08501520154910152565b91908201809211613aa057565b634e487b7160e01b600052601160045260246000fd5b91908203918211613aa057565b90613acd8261368d565b613ada604051918261366c565b8281528092613aeb601f199161368d565b019060005b828110613afc57505050565b602090613b076138f2565b82828501015201613af0565b6000198114613aa05760010190565b805115613b2f5760200190565b634e487b7160e01b600052603260045260246000fd5b8051821015613b2f5760209160051b010190565b90613b638261368d565b613b70604051918261366c565b8281528092613b81601f199161368d565b019060005b828110613b9257505050565b806060602080938501015201613b86565b60405190613bb082613618565b8160e06000918281528260208201528260408201528260608201528260808201528260a08201528260c082015260405192613bea846135fd565b80845260208401520152565b60405190613c0382613650565b60606101c0836000808252806020830152613c1c613ba3565b604083015280848301528060808301528060a08301528360c08301528060e083015280610100830152806101208301528061014083015280610160830152604051613c66816135c7565b8181528160208201528160408201526101808301526101a08201520152565b9060405191613c9383613618565b60e083825481526001830154602082015260028301546040820152600383015460608201526004830154608082015260ff6005840154818116613cd581613015565b60a084015260081c16613ce781613015565b60c0820152600760405193613cfb856135fd565b60068101548552015460208401520152565b9060405191828154918282526020928383019160005283600020936000905b828210613d42575050506138d69250038361366c565b85546001600160a01b031684526001958601958895509381019390910190613d2c565b600682101561301f5752565b90604051613d7e81613650565b6101c0613e64601783958054855260018101546020860152613da260028201613c85565b6040860152600a8101546060860152600b8101546001600160a01b039081166080870152600c820154811660a0870152613dde600d8301613d0d565b60c0870152613df760ff600e8401541660e08801613d65565b600f820154610100870152601082015461012087015260118201546101408701526012820154610160870152604051613e2f816135c7565b81601384015416815260148301546020820152601583015460408201526101808701526016820154166101a086015201613938565b910152565b90613e738261368d565b613e80604051918261366c565b8281528092613e91601f199161368d565b019060005b828110613ea257505050565b602090613ead613bf6565b82828501015201613e96565b90613ec38261368d565b613ed0604051918261366c565b8281528092613ee1601f199161368d565b0190602036910137565b8054821015613b2f5760005260206000200190600090565b903590601e1981360301821215612f8257018035906001600160401b038211612f8257602001918160061b36038313612f8257565b9190811015613b2f5760061b0190565b60405190613f5582613650565b816101c0600091828152826020820152613f6d613ba3565b6040820152826060820152826080820152606060a0820152606060c08201528260e08201528261010082015282610120820152826101408201528261016082015282610180820152826101a08201520152565b90604051613fcd81613650565b6101c0601582948054845260018101546020850152613fee60028201613c85565b6040850152600a8101546001600160a01b039081166060860152600b82015416608085015261401f600c82016138a1565b60a0850152614030600d8201613d0d565b60c0850152600e81015460e0850152600f81015461010085015260108101546101208501526011810154610140850152601281015461016085015260ff60138201541661407c816132f1565b61018085015260148101546101a08501520154910152565b9061409e8261368d565b6140ab604051918261366c565b82815280926140bc601f199161368d565b019060005b8281106140cd57505050565b6020906140d8613f48565b828285010152016140c1565b604051906140f182613634565b816101006000918281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201520152565b9060405161413681613634565b61010060088294805484526001810154602085015260028101546040850152600381015460608501526004810154608085015261417d60ff60058301541660a08601613d65565b600681015460c0850152600781015460e0850152015491015256fefce96d8b9b34f73081d511b432ae5a90a254efc831e060fda6888a0e03c548aa316cd9f80e16af2a12ce33cac96aeb1f3125dc040f5be132549ff7c414a113d4789f235d4a18fa93b2c978498e44ac1aabf0a4c57ab0a0fdc991d7fbc4a9492e789f235d4a18fa93b2c978498e44ac1aabf0a4c57ab0a0fdc991d7fbc4a94927a164736f6c6343000813000a