0 txs
0 calls
constructor
No constructor.
functions
across
viewfunction across() view returns (address)
acrossAdmin
viewfunction acrossAdmin() view returns (address)
chainId
viewfunction chainId() view returns (uint256)
exchangeConnector
viewfunction exchangeConnector(uint256) view returns (address)
internalIds
viewfunction internalIds(address) view returns (uint256)
isUnwrapRequestProcessed
viewfunction isUnwrapRequestProcessed(uint256 _reqIdx) view returns (bool)
isWrapRequestProcessed
viewfunction isWrapRequestProcessed(bytes32 _txId) view returns (bool)
locker
viewfunction locker() view returns (address)
lockerLockingScript
viewfunction lockerLockingScript() view returns (bytes)
lockerPercentageFee
viewfunction lockerPercentageFee() view returns (uint256)
lockerScriptType
viewfunction lockerScriptType() view returns (uint8)
owner
viewfunction owner() view returns (address)
protocolPercentageFee
viewfunction protocolPercentageFee() view returns (uint256)
relay
viewfunction relay() view returns (address)
rewardDistributor
viewfunction rewardDistributor() view returns (address)
runeIds
viewfunction runeIds(address) view returns (string)
runeUnwrapCounter
viewfunction runeUnwrapCounter() view returns (uint256)
runeUnwrapRequests
viewfunction runeUnwrapRequests(uint256) view returns (bool isProcessed, uint256 amount, uint256 burntAmount, uint256 appId, address sender, bytes userScript, uint8 scriptType)
runeWrapRequests
viewfunction runeWrapRequests(bytes32) view returns (bool isUsed, uint256 chainId, uint256 appId, uint256 tokenId, uint256 inputAmount, address inputToken, address recipientAddress, uint256 thirdPartyId, uint256 fee, uint256 outputAmount, address outputToken, uint256 bridgeFee, bool speed, bool isRequestCompleted)
startingBlockNumber
viewfunction startingBlockNumber() view returns (uint256)
supportedRunes
viewfunction supportedRunes(uint256) view returns (address)
teleporter
viewfunction teleporter() view returns (address)
thirdParties
viewfunction thirdParties(uint256) view returns (address thirdPartyAddress, uint256 thirdPartyFee)
totalRuneUnwrapRequests
viewfunction totalRuneUnwrapRequests() view returns (uint256)
treasury
viewfunction treasury() view returns (address)
unwrapFee
viewfunction unwrapFee() view returns (uint256)
virtualLocker
viewfunction virtualLocker(address) view returns (address)
wrappedNativeToken
viewfunction wrappedNativeToken() view returns (address)
addRune
nonpayablefunction addRune(string _name, string _symbol, string _runeId, uint8 _decimal, uint256 _internalId)
initialize
nonpayablefunction initialize(uint256 _startingBlockNumber, uint256 _protocolPercentageFee, uint256 _lockerPercentageFee, uint256 _chainId, address _relay, address _locker, bytes _lockerLockingScript, uint8 _lockerScriptType, address _teleporter, address _treasury, address _wrappedNativeToken)
refundByOwnerOrAdmin
nonpayablefunction refundByOwnerOrAdmin(bytes32 _txId, uint8 _scriptType, bytes _userScript)
removeRune
nonpayablefunction removeRune(uint256 _internalId)
renounceOwnership
nonpayablefunction renounceOwnership()
setAcross
nonpayablefunction setAcross(address _across)
setAcrossAdmin
nonpayablefunction setAcrossAdmin(address _acrossAdmin)
setChainId
nonpayablefunction setChainId(uint256 _chainId)
setExchangeConnector
nonpayablefunction setExchangeConnector(uint256 _appId, address _exchangeConnector)
setLocker
nonpayablefunction setLocker(address _locker)
setLockerLockingScript
nonpayablefunction setLockerLockingScript(bytes _lockerLockingScript, uint8 _lockerScriptType)
setLockerPercentageFee
nonpayablefunction setLockerPercentageFee(uint256 _lockerPercentageFee)
setProtocolPercentageFee
nonpayablefunction setProtocolPercentageFee(uint256 _protocolPercentageFee)
setRelay
nonpayablefunction setRelay(address _relay)
setRewardDistributor
nonpayablefunction setRewardDistributor(address _rewardDistributor)
setStartingBlockNumber
nonpayablefunction setStartingBlockNumber(uint256 _startingBlockNumber)
setTeleporter
nonpayablefunction setTeleporter(address _teleporter)
setThirdParty
nonpayablefunction setThirdParty(uint256 _thirdPartyId, address _thirdPartyAddress, uint256 _thirdPartyFee)
setTreasury
nonpayablefunction setTreasury(address _treasury)
setVirtualLocker
nonpayablefunction setVirtualLocker(address _wrappedRune, address _virtualLocker)
setWrappedNativeToken
nonpayablefunction setWrappedNativeToken(address _wrappedNativeToken)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unwrapProofRune
payablefunction unwrapProofRune(bytes4 _version, bytes _vin, bytes _vout, bytes4 _locktime, uint256 _blockNumber, bytes _intermediateNodes, uint256 _index, uint256[] _reqIndexes) payable
unwrapRune
payablefunction unwrapRune(uint256 _thirdPartyId, uint256 _internalId, uint256 _amount, bytes _userScript, uint8 _scriptType, uint256 _appId, uint256 _inputAmount, address[] _path) payable returns (uint256 _remainingAmount)
wrapRune
payablefunction wrapRune(bytes4 _version, bytes _vin, bytes _vout, bytes4 _locktime, uint256 _blockNumber, bytes _intermediateNodes, uint256 _index, address[] _path) payable
events
FailedRuneWrapAndSwap
event FailedRuneWrapAndSwap(address user, uint256 remainingAmount, address inputToken, uint256 outputAmount, address outputToken, (uint256 protocolFee, uint256 lockerFee, uint256 thirdPartyFee) fee, uint256 thirdPartyId, bytes32 txId, bool speed, uint256 chainId)
Initialized
event Initialized(uint8 version)
NewLocker
event NewLocker(address oldLocker, address newLocker)
NewLockerPercentageFee
event NewLockerPercentageFee(uint256 oldLockerPercentageFee, uint256 newLockerPercentageFee)
NewProtocolPercentageFee
event NewProtocolPercentageFee(uint256 oldProtocolPercentageFee, uint256 newProtocolPercentageFee)
NewRune
event NewRune(string name, string symbol, string runeId, uint256 decimal, uint256 internalId, address wRuneProxy, address wRuneLogic)
NewRuneSwapAndUnwrap
event NewRuneSwapAndUnwrap(address user, bytes userScript, uint8 scriptType, uint256 inputAmount, address inputToken, uint256 outputAmount, uint256 remainingAmount, address outputToken, (uint256 protocolFee, uint256 lockerFee, uint256 thirdPartyFee) fee, uint256 unwrapFee, address thirdPartyAddress, uint256 reqIdx)
NewRuneUnwrap
event NewRuneUnwrap(address user, bytes userScript, uint8 scriptType, address inputToken, uint256 inputAmount, uint256 remainingAmount, (uint256 protocolFee, uint256 lockerFee, uint256 thirdPartyFee) fee, uint256 unwrapFee, address thirdPartyAddress, uint256 reqIdx)
NewRuneWrap
event NewRuneWrap(address user, uint256 remainingAmount, address inputToken, (uint256 protocolFee, uint256 lockerFee, uint256 thirdPartyFee) fee, address thirdPartyAddress, bytes32 txId)
NewRuneWrapAndSwapV2
event NewRuneWrapAndSwapV2(address user, uint256 remainingAmount, address inputToken, uint256 outputAmount, address outputToken, (uint256 protocolFee, uint256 lockerFee, uint256 thirdPartyFee) fee, uint256 thirdPartyId, bytes32 txId, bool speed, uint256 chainId, uint256 bridgeFee)
NewTeleporter
event NewTeleporter(address oldTeleporter, address newTeleporter)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
RefundProcessed
event RefundProcessed(bytes32 indexed txId, address indexed refundedBy, uint256 failedRequestAmount, uint256 refundAmount, bytes userScript, uint8 scriptType, uint256 reqIdx)
RuneRemoved
event RuneRemoved(uint256 tokenId, address wRuneProxy)
ThirdPartyInfoUpdated
event ThirdPartyInfoUpdated(uint256 thirdPartyId, address oldAddress, uint256 oldFee, address newAddress, uint256 newFee)
UnwrapRuneProcessed
event UnwrapRuneProcessed(address user, uint256 remainingAmount, bytes userScript, uint8 scriptType, uint256 reqIdx, bytes32 txId)
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b50615cbd806100206000396000f3fe608060405260043610620002945760003560e01c8063023e25b414620002a1578063068bf87414620002f3578063088302a6146200031a5780630e72e41e1462000341578063171060ec146200037757806317fcb39b146200039c5780631812adb614620003be5780631e7107c714620003e5578063292c1d92146200040a5780633669391e146200042c578063402e01f8146200044457806349c544e1146200046957806361be10f2146200048057806361d027b314620004a55780636390802014620004c75780636600203d14620004df5780636afaf1ea14620005045780636b2857ef14620005295780636e8adf61146200054e57806370872aa51462000588578063715018a614620005a057806375122f6214620005b85780637ed5574814620005dd578063839ae1d71462000602578063878269b5146200061957806387c554f8146200063e5780638be727e114620006605780638da5cb5b14620006855780638e320097146200069d57806390665eca14620006c25780639a8a059214620006d95780639aed427914620006f15780639cbea0ec14620007095780639eca44531462000743578063a1809b951462000797578063a3696a0914620007bc578063a44c2b9a14620007e1578063acc2166a1462000806578063ae2a74ee1462000828578063b3ff9f491462000859578063b4e183f41462000880578063b59589d114620008a5578063c805f68b14620008c7578063d4603f4c14620008ec578063d7b96d4e1462000926578063d8484ef51462000948578063da058ae31462000973578063e76507881462000998578063e91ffefd1462000a56578063ef0e2ff41462000a6d578063f0f442601462000a92578063f2fde38b1462000ab7578063f80d19481462000adc57600080fd5b366200029c57005b600080fd5b348015620002ae57600080fd5b50620002db620002c036600462003bab565b609f602052600090815260409020546001600160a01b031681565b604051620002ea919062004276565b60405180910390f35b3480156200030057600080fd5b50620003186200031236600462003e70565b62000b01565b005b3480156200032757600080fd5b506200033262000e08565b604051620002ea919062004869565b3480156200034e57600080fd5b50620003666200036036600462003bab565b62000e9e565b6040519015158152602001620002ea565b3480156200038457600080fd5b50620003186200039636600462003a61565b62000eec565b348015620003a957600080fd5b5060a954620002db906001600160a01b031681565b348015620003cb57600080fd5b50620003d660995481565b604051908152602001620002ea565b348015620003f257600080fd5b50620003186200040436600462003bab565b62000f61565b3480156200041757600080fd5b5060ac54620002db906001600160a01b031681565b3480156200043957600080fd5b50620003d6609b5481565b3480156200045157600080fd5b50620003326200046336600462003a61565b62000fb8565b620003186200047a36600462003c37565b62000fd3565b3480156200048d57600080fd5b50620003186200049f36600462003a61565b62001478565b348015620004b257600080fd5b50609d54620002db906001600160a01b031681565b348015620004d457600080fd5b50620003d6609a5481565b348015620004ec57600080fd5b5062000318620004fe36600462003bab565b620014a4565b3480156200051157600080fd5b50620003186200052336600462003bdd565b62001514565b3480156200053657600080fd5b50620003186200054836600462003f5d565b62001799565b3480156200055b57600080fd5b50620002db6200056d36600462003bab565b60a3602052600090815260409020546001600160a01b031681565b3480156200059557600080fd5b50620003d660975481565b348015620005ad57600080fd5b5062000318620017d1565b348015620005c557600080fd5b5062000318620005d736600462003f84565b620017dd565b348015620005ea57600080fd5b5062000318620005fc36600462003bab565b6200189e565b620003186200061336600462003d32565b6200190e565b3480156200062657600080fd5b50620003186200063836600462003a61565b62001d6d565b3480156200064b57600080fd5b5060ad54620002db906001600160a01b031681565b3480156200066d57600080fd5b50620003186200067f36600462003bab565b62001d99565b3480156200069257600080fd5b50620002db62001e96565b348015620006aa57600080fd5b5062000318620006bc36600462003a9f565b62001ea5565b348015620006cf57600080fd5b5060a454620003d6565b348015620006e657600080fd5b50620003d660985481565b348015620006fe57600080fd5b50620003d660a85481565b3480156200071657600080fd5b50620002db6200072836600462003a61565b60ab602052600090815260409020546001600160a01b031681565b3480156200075057600080fd5b50620007876200076236600462003bab565b60a760205260009081526040902080546001909101546001600160a01b039091169082565b604051620002ea929190620044b0565b348015620007a457600080fd5b5062000318620007b636600462003a61565b62001edd565b348015620007c957600080fd5b5062000318620007db36600462003a61565b62001f09565b348015620007ee57600080fd5b50620003666200080036600462003bab565b62001f8b565b3480156200081357600080fd5b5060aa54620002db906001600160a01b031681565b3480156200083557600080fd5b50620003d66200084736600462003a61565b60a16020526000908152604090205481565b3480156200086657600080fd5b5060a654620002db9061010090046001600160a01b031681565b3480156200088d57600080fd5b50620003186200089f36600462003e1f565b62001faa565b348015620008b257600080fd5b50609c54620002db906001600160a01b031681565b348015620008d457600080fd5b5062000318620008e636600462003a61565b62002001565b348015620008f957600080fd5b50620009116200090b36600462003bab565b6200202d565b604051620002ea979695949392919062004738565b3480156200093357600080fd5b50609e54620002db906001600160a01b031681565b3480156200095557600080fd5b5060a654620009649060ff1681565b604051620002ea91906200487e565b3480156200098057600080fd5b50620003186200099236600462003a61565b62002121565b348015620009a557600080fd5b5062000a3a620009b736600462003bab565b60a260205260009081526040902080546001820154600283015460038401546004850154600586015460068701546007880154600889015460098a0154600a8b0154600b8c0154600c909c015460ff9b8c169c9a9b999a989997986001600160a01b0397881698968816979596949593949390921692808216916101009004168e565b604051620002ea9e9d9c9b9a9998979695949392919062004786565b620003d662000a6736600462004017565b6200214d565b34801562000a7a57600080fd5b506200031862000a8c36600462003bab565b6200265b565b34801562000a9f57600080fd5b506200031862000ab136600462003a61565b6200266a565b34801562000ac457600080fd5b506200031862000ad636600462003a61565b62002696565b34801562000ae957600080fd5b506200031862000afb366004620040b1565b62002715565b62000b0b620028ad565b6000818152609f60205260409020546001600160a01b03161562000b685760405162461bcd60e51b815260206004820152600f60248201526e149bdd5d195c8e881d5cd959081a59608a1b60448201526064015b60405180910390fd5b60007349186a46025310e5bb788f65272711666a62fc636374c6d02c6040518163ffffffff1660e01b815260040160206040518083038186803b15801562000baf57600080fd5b505af415801562000bc4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000bea919062003a80565b9050606060008262000bfb62001e96565b8360405162000c0a90620036f1565b62000c18939291906200433f565b604051809103906000f08015801562000c35573d6000803e3d6000fd5b50604051630b127b6360e11b815290915081906001600160a01b03821690631624f6c69062000c6d908c908c908b9060040162004900565b600060405180830381600087803b15801562000c8857600080fd5b505af115801562000c9d573d6000803e3d6000fd5b5050604051634c1d96ab60e11b81526001600160a01b038416925063983b2d56915062000ccf90309060040162004276565b600060405180830381600087803b15801562000cea57600080fd5b505af115801562000cff573d6000803e3d6000fd5b5050604051637a231bdd60e11b81526001600160a01b038416925063f44637ba915062000d3190309060040162004276565b600060405180830381600087803b15801562000d4c57600080fd5b505af115801562000d61573d6000803e3d6000fd5b5050506000868152609f6020908152604080832080546001600160a01b0319166001600160a01b038716908117909155835260a1825280832089905560a08252909120895162000db7935090918a0190620036ff565b507f175ec5a73d18c14429b1199d5fac7097c1c021f98a45d4bcfdeddedfbcc04f3c8989898989868a60405162000df597969594939291906200488e565b60405180910390a1505050505050505050565b60a5805462000e179062004cbe565b80601f016020809104026020016040519081016040528092919081815260200182805462000e459062004cbe565b801562000e965780601f1062000e6a5761010080835404028352916020019162000e96565b820191906000526020600020905b81548152906001019060200180831162000e7857829003601f168201915b505050505081565b600060a4828154811062000ec257634e487b7160e01b600052603260045260246000fd5b600091825260209091206007909102015460ff1662000ee357600062000ee6565b60015b92915050565b62000ef6620028ad565b609e546040517f69253c7023f628e3a302b63087a3bfc1dfdb256780182f81b9f0df9eff9542b09162000f37916001600160a01b039091169084906200428a565b60405180910390a1609e80546001600160a01b0319166001600160a01b0392909216919091179055565b62000f6b620028ad565b609754811162000fb35760405162461bcd60e51b81526020600482015260126024820152712937baba32b91d103637bb90373ab6b132b960711b604482015260640162000b5f565b609755565b60a0602052600090815260409020805462000e179062004cbe565b62000fdd62002910565b60a65461010090046001600160a01b0316336001600160a01b031614620010405760405162461bcd60e51b81526020600482015260166024820152752937baba32b91d103737ba103a32b632b837b93a32b960511b604482015260640162000b5f565b60007349186a46025310e5bb788f65272711666a62fc6363e291283d609754609c60009054906101000a90046001600160a01b03168e8e8e8e8e8e8e8e8e6040518c63ffffffff1660e01b8152600401620010a69b9a99989796959493929190620049e2565b60206040518083038186803b158015620010bf57600080fd5b505af4158015620010d4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620010fa919062003bc4565b90506000806000807349186a46025310e5bb788f65272711666a62fc63631d8dbb228e8e8860a2609f60a7609954609a546040518963ffffffff1660e01b81526004016200115098979695949392919062004821565b60c06040518083038186803b1580156200116957600080fd5b505af41580156200117e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620011a4919062003fbe565b600089815260a2602090815260409182902082516101c081018452815460ff90811615158252600183015493820193909352600282015481850152600382015460608201526004808301546080830181905260058401546001600160a01b0390811660a08501526006850154811660c0850152600785015460e08501526008850154610100808601919091526009860154610120860152600a8601548216610140860152600b860154610160860152600c9095015480871615156101808601529490940490941615156101a083015293516340c10f1960e01b8152979b509599509397509195509293918516926340c10f1992620012a7923092909101620044b0565b602060405180830381600087803b158015620012c257600080fd5b505af1158015620012d7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620012fd919062003adc565b5060408101516200140c57620013158483856200296c565b600086815260a2602052604090819020600c01805461ff00191661010017905560c0820151905163a9059cbb60e01b81526001600160a01b0384169163a9059cbb916200136891908990600401620044b0565b602060405180830381600087803b1580156200138357600080fd5b505af115801562001398573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620013be919062003adc565b507f43c9c64e3d0a7d664252e89fe26c8958a77098900ebf13f7aa95030a371bc4328160c00151868487878b604051620013fe96959493929190620044c9565b60405180910390a16200145b565b6200145b6040518060e00160405280838152602001888152602001878152602001846001600160a01b03168152602001868152602001856001600160a01b031681526020018981525062002aa9565b5050505050506200146c6001606555565b50505050505050505050565b62001482620028ad565b60ac80546001600160a01b0319166001600160a01b0392909216919091179055565b620014ae620028ad565b806127101015620014d35760405162461bcd60e51b815260040162000b5f90620049b4565b609a5460408051918252602082018390527f44c6802691f6adea249930369a511db979a5e9a3603bdb37ceee1036da80e980910160405180910390a1609a55565b6200151e62002910565b60ad546001600160a01b03163314806200155257506200153d62001e96565b6001600160a01b0316336001600160a01b0316145b620015a05760405162461bcd60e51b815260206004820152601e60248201527f45786368616e6765526f757465723a206e6f7420617574686f72697a65640000604482015260640162000b5f565b600083815260a260205260409020600c0154610100900460ff1615620016145760405162461bcd60e51b815260206004820152602260248201527f52756e65526f757465724c6f6769633a20616c72656164792070726f63657373604482015261195960f21b606482015260840162000b5f565b600083815260a2602052604090819020600480820154600590920154925163095ea7b360e01b815291926001600160a01b03169163095ea7b3916200165e913091869101620044b0565b602060405180830381600087803b1580156200167957600080fd5b505af11580156200168e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620016b4919062003adc565b50600084815260a2602090815260408083206005908101546001600160a01b0316845260a190925282205462001726918391908590879060ff8a16908111156200170e57634e487b7160e01b600052602160045260246000fd5b6040805160008082526020820190925281906200214d565b9050336001600160a01b0316857f7e39e588b8a60c12b9a3163be07947f2d10f6edc2dd36e1f8415d1fccca2366284848789600160a4805490506200176c919062004c75565b6040516200177f95949392919062004b86565b60405180910390a35050620017946001606555565b505050565b620017a3620028ad565b600091825260a3602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b620017db620028ad565b565b620017e7620028ad565b600083815260a76020908152604091829020805460019091015483518781526001600160a01b039283169381019390935282840152841660608201526080810183905290517f23385740814648db624aa52a0c990fc42def14e1b04e7fe5b2bf87b85e1294529181900360a00190a16040805180820182526001600160a01b0393841681526020808201938452600095865260a790529320925183546001600160a01b031916921691909117825551600190910155565b620018a8620028ad565b806127101015620018cd5760405162461bcd60e51b815260040162000b5f90620049b4565b60995460408051918252602082018390527f7d205f60891f60851c61cd244ba387d72b6589e7c0ac41b9d909ab0ce2c2a53b910160405180910390a1609955565b6200191862002910565b609e546001600160a01b0316336001600160a01b031614620019725760405162461bcd60e51b81526020600482015260126024820152712937baba32b91d103737ba103637b1b5b2b960711b604482015260640162000b5f565b609754609c5460405163e291283d60e01b81526000927349186a46025310e5bb788f65272711666a62fc639263e291283d92620019cb92916001600160a01b0316908e908e908e908e908e908e908e9060040162004a77565b60206040518083038186803b158015620019e457600080fd5b505af4158015620019f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001a1f919062003bc4565b905060005b825181101562001d565760a483828151811062001a5157634e487b7160e01b600052603260045260246000fd5b60200260200101518154811062001a7857634e487b7160e01b600052603260045260246000fd5b600091825260209091206007909102015460ff161562001ad75760405162461bcd60e51b8152602060048201526019602482015278149bdd5d195c8e88185b1c9958591e481c1c9bd8d95cdcd959603a1b604482015260640162000b5f565b600160a484838151811062001afc57634e487b7160e01b600052603260045260246000fd5b60200260200101518154811062001b2357634e487b7160e01b600052603260045260246000fd5b906000526020600020906007020160000160006101000a81548160ff0219169083151502179055507f3922cf2b1e70997609e6dbe5a0af9360f827a7ef03e3f6cf8728e23afa52ba8260a484838151811062001b8f57634e487b7160e01b600052603260045260246000fd5b60200260200101518154811062001bb657634e487b7160e01b600052603260045260246000fd5b906000526020600020906007020160040160009054906101000a90046001600160a01b031660a485848151811062001bfe57634e487b7160e01b600052603260045260246000fd5b60200260200101518154811062001c2557634e487b7160e01b600052603260045260246000fd5b90600052602060002090600702016002015460a486858151811062001c5a57634e487b7160e01b600052603260045260246000fd5b60200260200101518154811062001c8157634e487b7160e01b600052603260045260246000fd5b906000526020600020906007020160050160a487868151811062001cb557634e487b7160e01b600052603260045260246000fd5b60200260200101518154811062001cdc57634e487b7160e01b600052603260045260246000fd5b906000526020600020906007020160060160009054906101000a900460ff1687868151811062001d1c57634e487b7160e01b600052603260045260246000fd5b60200260200101518760405162001d3996959493929190620045e9565b60405180910390a18062001d4d8162004cfb565b91505062001a24565b505062001d636001606555565b5050505050505050565b62001d77620028ad565b60ad80546001600160a01b0319166001600160a01b0392909216919091179055565b62001da3620028ad565b6000818152609f60205260409020546001600160a01b03168062001dfd5760405162461bcd60e51b815260206004820152601060248201526f2937baba32b91d103737903a37b5b2b760811b604482015260640162000b5f565b604080518381526001600160a01b03831660208201527ff61991393940604b8433d5f9a855624b8452e131d66e476a45c7139651df9699910160405180910390a16001600160a01b038116600090815260a06020526040812062001e61916200378e565b6001600160a01b0316600090815260a160209081526040808320839055928252609f90522080546001600160a01b0319169055565b6033546001600160a01b031690565b62001eaf620028ad565b6001600160a01b03918216600090815260ab6020526040902080546001600160a01b03191691909216179055565b62001ee7620028ad565b60aa80546001600160a01b0319166001600160a01b0392909216919091179055565b62001f13620028ad565b7f150b77d21bd499fd0dccea9fe32513c7b65aa34ccde41e7dafac74ace8e19c9460a660019054906101000a90046001600160a01b03168260405162001f5b9291906200428a565b60405180910390a160a680546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600081815260a2602052604081205460ff1662000ee357600062000ee6565b62001fb4620028ad565b815162001fc99060a5906020850190620036ff565b5060a6805482919060ff1916600183600581111562001ff857634e487b7160e01b600052602160045260246000fd5b02179055505050565b6200200b620028ad565b609c80546001600160a01b0319166001600160a01b0392909216919091179055565b60a481815481106200203e57600080fd5b600091825260209091206007909102018054600182015460028301546003840154600485015460058601805460ff90961697509395929491936001600160a01b0390911692916200208f9062004cbe565b80601f0160208091040260200160405190810160405280929190818152602001828054620020bd9062004cbe565b80156200210e5780601f10620020e2576101008083540402835291602001916200210e565b820191906000526020600020905b815481529060010190602001808311620020f057829003601f168201915b5050506006909301549192505060ff1687565b6200212b620028ad565b60a980546001600160a01b0319166001600160a01b0392909216919091179055565b60006200215962002910565b6000888152609f60205260409020546001600160a01b031680620021b85760405162461bcd60e51b8152602060048201526015602482015274149bdd5d195c8e881b9bdd081cdd5c1c1bdc9d1959605a1b604482015260640162000b5f565b8251156200245557806001600160a01b03168360018551620021db919062004c75565b81518110620021fa57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316146200222b5760405162461bcd60e51b815260040162000b5f906200493d565b34156200233a5783341480156200227c5750826000815181106200225f57634e487b7160e01b600052603260045260246000fd5b602090810291909101015160a9546001600160a01b039081169116145b620022c95760405162461bcd60e51b815260206004820152601c60248201527b2937baba32b91d103bb937b733903b30b63ab29037b9103a37b5b2b760211b604482015260640162000b5f565b60a960009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b1580156200231a57600080fd5b505af11580156200232f573d6000803e3d6000fd5b5050505050620023f4565b826000815181106200235c57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166323b872dd6200237a3390565b30876040518463ffffffff1660e01b81526004016200239c9392919062004376565b602060405180830381600087803b158015620023b757600080fd5b505af1158015620023cc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620023f2919062003adc565b505b6000620024058630878c8862002d83565b99509050806200244e5760405162461bcd60e51b8152602060048201526013602482015272149bdd5d195c8e881cddd85c0819985a5b1959606a1b604482015260640162000b5f565b5062002525565b6040516323b872dd60e01b81526001600160a01b038216906323b872dd906200248790339030908d9060040162004376565b602060405180830381600087803b158015620024a257600080fd5b505af1158015620024b7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620024dd919062003adc565b620025255760405162461bcd60e51b8152602060048201526017602482015276149bdd5d195c8e881d1c985b9cd9995c8819985a5b1959604a1b604482015260640162000b5f565b6200252f620037cd565b6000620025408c848c8c8c62002f96565b87519096509193509150620025b4577f7ded23d6204f0918dc93f275df51659538e59e8aaf5698ce1f49180c22857b53338a8a868e8988600089600160a4805490506200258e919062004c75565b604051620025a69a999897969594939291906200439a565b60405180910390a162002641565b7fe17d30e84f141d5effc904ed29262988eb565f53a8c01270148776b88451bb71338a8a8989600081518110620025fb57634e487b7160e01b600052603260045260246000fd5b60200260200101518f8a8a8a60008b600160a4805490506200261e919062004c75565b604051620026389c9b9a999897969594939291906200441e565b60405180910390a15b5050506200264f6001606555565b98975050505050505050565b62002665620028ad565b609855565b62002674620028ad565b609d80546001600160a01b0319166001600160a01b0392909216919091179055565b620026a0620028ad565b6001600160a01b038116620027075760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840162000b5f565b6200271281620030fb565b50565b600054610100900460ff1615808015620027365750600054600160ff909116105b80620027525750303b15801562002752575060005460ff166001145b620027b75760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840162000b5f565b6000805460ff191660011790558015620027db576000805461ff0019166101001790555b620027e56200314d565b620027ef62003181565b6098899055620027ff8c62000f61565b6200280a8b6200189e565b620028158a620014a4565b620028208862002001565b6200282b8762000eec565b62002837868662001faa565b620028428462001f09565b6200284d836200266a565b620028588262002121565b80156200289f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050505050565b33620028b862001e96565b6001600160a01b031614620017db5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000b5f565b60026065541415620029655760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640162000b5f565b6002606555565b609d54835160405163a9059cbb60e01b81526001600160a01b038581169363a9059cbb93620029a3939290911691600401620044b0565b602060405180830381600087803b158015620029be57600080fd5b505af1158015620029d3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620029f9919062003adc565b5062002a0a836020015183620031b5565b6001600160a01b038116156200179457604080840151905163a9059cbb60e01b81526001600160a01b0384169163a9059cbb9162002a4d918591600401620044b0565b602060405180830381600087803b15801562002a6857600080fd5b505af115801562002a7d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002aa3919062003adc565b50505050565b806000015160a001516001600160a01b03168160c0015160008151811062002ae157634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031614801562002b5557508051610140015160c082015180516001600160a01b039092169162002b239060019062004c75565b8151811062002b4257634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316145b62002b745760405162461bcd60e51b815260040162000b5f906200493d565b60008062002b9f836000015160400151308560400151866000015161012001518760c0015162002d83565b91509150811562002cdc5760208084018051600090815260a283526040808220600c01805461ff001916610100179055865160c08101518289015160608a01516101409093015160808b015187518752958590206007015496518b51610180810151998101516101609091015196517ffee10ce50eac0c7017f39dedcebc9e8e4980fdac0b4d56e217c8fa72b6ac07a49a62002c489a969995988d979596959493919262004579565b60405180910390a162002c69836080015184606001518560a001516200296c565b609854835160200151141562002cb657825161014081015160c09091015160405163a9059cbb60e01b81526001600160a01b039092169163a9059cbb9162002a4d918590600401620044b0565b8251602081015161014082015160c0830151610160909301516200179493859162003355565b825160c081015160808201516060808701516101208501516101409095015160408051938401815260008085526020808601829052858301829052808c018051835260a28252918390206007015491518c5161018081015192015193517fc198fc7db623e83906bae5e8bc765442c8906a44451c5591bc4c314d62d82f219a62002d6f9a9998909695909493916200450f565b60405180910390a1505050565b6001606555565b600085815260a3602052604081205481906001600160a01b03168062002de45760405162461bcd60e51b8152602060048201526015602482015274149bdd5d195c8e881a5b9d985b1a5908185c1c1259605a1b604482015260640162000b5f565b8360008151811062002e0657634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031663095ea7b382886040518363ffffffff1660e01b815260040162002e3d929190620044b0565b602060405180830381600087803b15801562002e5857600080fd5b505af115801562002e6d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002e93919062003adc565b5060606001600160a01b03821663b0bbcd8888606462002eb58a605a62004c53565b62002ec1919062004c32565b888c4260016040518763ffffffff1660e01b815260040162002ee99695949392919062004b08565b600060405180830381600087803b15801562002f0457600080fd5b505af115801562002f19573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262002f43919081019062003af9565b9094509050831562002f8a57806001825162002f60919062004c75565b8151811062002f7f57634e487b7160e01b600052603260045260246000fd5b602002602001015192505b50509550959350505050565b62002fa0620037cd565b6000807349186a46025310e5bb788f65272711666a62fc636394d8bc6a33609954609a5460a460a78e8d8d8d6040518a63ffffffff1660e01b815260040162002ff299989796959493929190620046cf565b60a06040518083038186803b1580156200300b57600080fd5b505af415801562003020573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003046919062003f18565b609b8054939650919450925060006200305f8362004cfb565b9190505550620030718388846200296c565b604051630852cd8d60e31b8152600481018290526001600160a01b038816906342966c6890602401602060405180830381600087803b158015620030b457600080fd5b505af1158015620030c9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620030ef919062003adc565b50955095509592505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16620031775760405162461bcd60e51b815260040162000b5f9062004969565b620017db620034be565b600054610100900460ff16620031ab5760405162461bcd60e51b815260040162000b5f9062004969565b620017db620034f3565b8115620033515760aa546001600160a01b03166200325957609e5460405163a9059cbb60e01b81526001600160a01b038381169263a9059cbb926200320392909116908690600401620044b0565b602060405180830381600087803b1580156200321e57600080fd5b505af115801562003233573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001794919062003adc565b60aa5460405163095ea7b360e01b81526001600160a01b038381169263095ea7b3926200328f92909116908690600401620044b0565b602060405180830381600087803b158015620032aa57600080fd5b505af1158015620032bf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620032e5919062003adc565b5060aa546001600160a01b03828116600090815260ab6020526040908190205490516200179493831692620033219216908690602401620044b0565b60408051601f198184030181529190526020810180516001600160e01b0316637db4e28f60e01b1790526200351d565b5050565b60ac5460405163095ea7b360e01b81526001600160a01b038681169263095ea7b3926200338b92909116908790600401620044b0565b602060405180830381600087803b158015620033a657600080fd5b505af1158015620033bb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620033e1919062003adc565b5060ad546000906001600160a01b031683868387670de0b6b3a76400006200340a888262004c75565b62003416908b62004c53565b62003422919062004c32565b8b600042620034348161384062004c17565b6000604051602401620034529b9a99989796959493929190620042a4565b60408051601f19818403018152918152602080830180516001600160e01b0316633dc9c91960e11b179052905191925060009162003493918491016200424b565b60408051601f1981840301815291905260ac5490915062001d63906001600160a01b0316826200351d565b600054610100900460ff16620034e85760405162461bcd60e51b815260040162000b5f9062004969565b620017db33620030fb565b600054610100900460ff1662002d7c5760405162461bcd60e51b815260040162000b5f9062004969565b60606200356183836040518060400160405280601e81526020017f416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564000081525062003568565b9392505050565b606062003579848460008562003581565b949350505050565b606082471015620035e45760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840162000b5f565b843b620036345760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640162000b5f565b600080866001600160a01b031685876040516200365291906200422d565b60006040518083038185875af1925050503d806000811462003691576040519150601f19603f3d011682016040523d82523d6000602084013e62003696565b606091505b5091509150620036a8828286620036b3565b979650505050505050565b60608315620036c457508162003561565b825115620036d55782518084602001fd5b8160405162461bcd60e51b815260040162000b5f919062004869565b610f2c8062004d5c83390190565b8280546200370d9062004cbe565b90600052602060002090601f0160209004810192826200373157600085556200377c565b82601f106200374c57805160ff19168380011785556200377c565b828001600101855582156200377c579182015b828111156200377c5782518255916020019190600101906200375f565b506200378a929150620037ee565b5090565b5080546200379c9062004cbe565b6000825580601f10620037ad575050565b601f016020900490600052602060002090810190620027129190620037ee565b60405180606001604052806000815260200160008152602001600081525090565b5b808211156200378a5760008155600101620037ef565b8035620038128162004d45565b919050565b600082601f83011262003828578081fd5b81356020620038416200383b8362004bf1565b62004bbe565b80838252828201915082860187848660051b890101111562003861578586fd5b855b858110156200388c578135620038798162004d45565b8452928401929084019060010162003863565b5090979650505050505050565b600082601f830112620038aa578081fd5b81356020620038bd6200383b8362004bf1565b80838252828201915082860187848660051b8901011115620038dd578586fd5b855b858110156200388c57813584529284019290840190600101620038df565b805180151581146200381257600080fd5b80356001600160e01b0319811681146200381257600080fd5b60008083601f84011262003939578182fd5b5081356001600160401b0381111562003950578182fd5b6020830191508360208285010111156200396957600080fd5b9250929050565b600082601f83011262003981578081fd5b81356001600160401b038111156200399d576200399d62004d2f565b620039b2601f8201601f191660200162004bbe565b818152846020838601011115620039c7578283fd5b816020850160208301379081016020019190915292915050565b8035600681106200381257600080fd5b60006060828403121562003a03578081fd5b604051606081016001600160401b038111828210171562003a285762003a2862004d2f565b80604052508091508251815260208301516020820152604083015160408201525092915050565b803560ff811681146200381257600080fd5b60006020828403121562003a73578081fd5b8135620035618162004d45565b60006020828403121562003a92578081fd5b8151620035618162004d45565b6000806040838503121562003ab2578081fd5b823562003abf8162004d45565b9150602083013562003ad18162004d45565b809150509250929050565b60006020828403121562003aee578081fd5b6200356182620038fd565b6000806040838503121562003b0c578182fd5b62003b1783620038fd565b602084810151919350906001600160401b0381111562003b35578283fd5b8401601f8101861362003b46578283fd5b805162003b576200383b8262004bf1565b80828252848201915084840189868560051b870101111562003b77578687fd5b8694505b8385101562003b9b57805183526001949094019391850191850162003b7b565b5080955050505050509250929050565b60006020828403121562003bbd578081fd5b5035919050565b60006020828403121562003bd6578081fd5b5051919050565b60008060006060848603121562003bf2578081fd5b8335925062003c046020850162003a4f565b915060408401356001600160401b0381111562003c1f578182fd5b62003c2d8682870162003970565b9150509250925092565b6000806000806000806000806000806101008b8d03121562003c57578788fd5b62003c628b6200390e565b995060208b01356001600160401b038082111562003c7e57898afd5b62003c8c8e838f0162003970565b9a5060408d013591508082111562003ca257898afd5b62003cb08e838f0162003927565b909a50985088915062003cc660608e016200390e565b975060808d0135965060a08d013591508082111562003ce3578586fd5b62003cf18e838f0162003927565b909650945060c08d0135935060e08d013591508082111562003d11578283fd5b5062003d208d828e0162003817565b9150509295989b9194979a5092959850565b600080600080600080600080610100898b03121562003d4f578182fd5b62003d5a896200390e565b975060208901356001600160401b038082111562003d76578384fd5b62003d848c838d0162003970565b985060408b013591508082111562003d9a578384fd5b62003da88c838d0162003970565b975062003db860608c016200390e565b965060808b0135955060a08b013591508082111562003dd5578384fd5b62003de38c838d0162003970565b945060c08b0135935060e08b013591508082111562003e00578283fd5b5062003e0f8b828c0162003899565b9150509295985092959890939650565b6000806040838503121562003e32578182fd5b82356001600160401b0381111562003e48578283fd5b62003e568582860162003970565b92505062003e6760208401620039e1565b90509250929050565b600080600080600060a0868803121562003e88578283fd5b85356001600160401b038082111562003e9f578485fd5b62003ead89838a0162003970565b9650602088013591508082111562003ec3578485fd5b62003ed189838a0162003970565b9550604088013591508082111562003ee7578485fd5b5062003ef68882890162003970565b93505062003f076060870162003a4f565b949793965091946080013592915050565b600080600060a0848603121562003f2d578081fd5b62003f398585620039f1565b9250606084015162003f4b8162004d45565b80925050608084015190509250925092565b6000806040838503121562003f70578182fd5b82359150602083013562003ad18162004d45565b60008060006060848603121562003f99578081fd5b83359250602084013562003fad8162004d45565b929592945050506040919091013590565b60008060008060c0858703121562003fd4578182fd5b8451935062003fe78660208701620039f1565b9250608085015162003ff98162004d45565b60a08601519092506200400c8162004d45565b939692955090935050565b600080600080600080600080610100898b03121562004034578182fd5b88359750602089013596506040890135955060608901356001600160401b038082111562004060578384fd5b6200406e8c838d0162003970565b96506200407e60808c01620039e1565b955060a08b0135945060c08b0135935060e08b0135915080821115620040a2578283fd5b5062003e0f8b828c0162003817565b60008060008060008060008060008060006101608c8e031215620040d3578485fd5b8b359a5060208c0135995060408c0135985060608c0135975060808c0135620040fc8162004d45565b965060a08c01356200410e8162004d45565b955060c08c01356001600160401b0381111562004129578586fd5b620041378e828f0162003970565b9550506200414860e08d01620039e1565b9350620041596101008d0162003805565b92506200416a6101208d0162003805565b91506200417b6101408d0162003805565b90509295989b509295989b9093969950565b6001600160a01b03169052565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008151808452620041dd81602086016020860162004c8f565b601f01601f19169290920160200192915050565b600681106200421057634e487b7160e01b600052602160045260246000fd5b9052565b8051825260208082015190830152604090810151910152565b600082516200424181846020870162004c8f565b9190910192915050565b600082516200425f81846020870162004c8f565b641dc0de008360d81b920191825250600501919050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b038c811682528b811660208301528a8116604083015289811660608301526080820189905260a0820188905260c08201879052851660e082015263ffffffff848116610100830152831661012082015260ff82166101408201526000610180806101608401526200432d8184016002815261060f60f31b602082015260400190565b9e9d5050505050505050505050505050565b6001600160a01b038481168252831660208201526060604082018190526000906200436d90830184620041c3565b95945050505050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b038b8116825261018060208301819052600091620043c28483018e620041c3565b9250620043d3604085018d620041f1565b808b1660608501528960808501528860a0850152620043f660c085018962004214565b866101208501528086166101408501525050826101608301529b9a5050505050505050505050565b600060018060a01b03808f1683526101c06020840152620044446101c084018f620041c3565b915062004455604084018e620041f1565b8b6060840152808b1660808401528960a08401528860c084015280881660e08401526200448761010084018862004214565b8561016084015280851661018084015250826101a08301529d9c50505050505050505050505050565b6001600160a01b03929092168252602082015260400190565b6001600160a01b038781168252602082018790528581166040830152610100820190620044fa606084018762004214565b9390931660c082015260e00152949350505050565b6001600160a01b038b81168252602082018b90528981166040830152606082018990528716608082015261018081016200454d60a083018862004214565b610100820195909552610120810193909352901515610140830152610160909101529695505050505050565b6001600160a01b038c81168252602082018c90528a81166040830152606082018a9052881660808201526101a08101620045b760a083018962004214565b610100820196909652610120810194909452911515610140840152610160830152610180909101529695505050505050565b6001600160a01b0387168152602080820187905260c060408301528554600091908290600181811c90828116806200462257607f831692505b8583108114156200464157634e487b7160e01b87526022600452602487fd5b60c0880183905260e088018180156200466357600181146200467557620046a1565b60ff19861682528782019650620046a1565b60008e815260209020895b868110156200469b5781548482015290850190890162004680565b83019750505b5050505050508092505050620046bb6060830186620041f1565b608082019390935260a00152949350505050565b600061012060018060a01b038c1683528a60208401528960408401528860608401528760808401528660a08401528560c08401528060e08401526200471781840186620041c3565b9150506200472a610100830184620041f1565b9a9950505050505050505050565b871515815286602082015285604082015284606082015260018060a01b038416608082015260e060a082015260006200477560e0830185620041c3565b90506200264f60c0830184620041f1565b8e15158152602081018e9052604081018d9052606081018c9052608081018b90526001600160a01b038a1660a08201526101c08101620047ca60c083018b6200418d565b8860e08301528761010083015286610120830152620047ee6101408301876200418d565b846101608301526200480561018083018515159052565b8215156101a08301529f9e505050505050505050505050505050565b60e0815260006200483760e083018a8c6200419a565b60208301989098525060408101959095526060850193909352608084019190915260a083015260c09091015292915050565b602081526000620035616020830184620041c3565b6020810162000ee68284620041f1565b60e081526000620048a360e083018a620041c3565b8281036020840152620048b7818a620041c3565b90508281036040840152620048cd8189620041c3565b60ff979097166060840152505060808101939093526001600160a01b0391821660a08401521660c0909101529392505050565b606081526000620049156060830186620041c3565b8281036020840152620049298186620041c3565b91505060ff83166040830152949350505050565b6020808252601290820152710a4deeae8cae47440eee4dedcce40e0c2e8d60731b604082015260600190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b602080825260149082015273526f757465723a206f7574206f662072616e676560601b604082015260600190565b8b81526001600160a01b038b1660208201526001600160e01b03198a811660408301526101206060830181905260009162004a208483018d620041c3565b9150838203608085015262004a37828b8d6200419a565b915080891660a0850152508660c084015282810360e084015262004a5d8186886200419a565b915050826101008301529c9b505050505050505050505050565b8981526001600160a01b03891660208201526001600160e01b031988811660408301526101206060830181905260009162004ab58483018b620041c3565b9150838203608085015262004acb828a620041c3565b915080881660a0850152508560c084015282810360e084015262004af08186620041c3565b915050826101008301529a9950505050505050505050565b600060c082018883526020888185015260c0604085015281885180845260e086019150828a019350845b8181101562004b595784516001600160a01b03168352938301939183019160010162004b32565b50506001600160a01b039790971660608501525050506080810192909252151560a0909101529392505050565b85815284602082015260a06040820152600062004ba760a0830186620041c3565b60ff94909416606083015250608001529392505050565b604051601f8201601f191681016001600160401b038111828210171562004be95762004be962004d2f565b604052919050565b60006001600160401b0382111562004c0d5762004c0d62004d2f565b5060051b60200190565b6000821982111562004c2d5762004c2d62004d19565b500190565b60008262004c4e57634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161562004c705762004c7062004d19565b500290565b60008282101562004c8a5762004c8a62004d19565b500390565b60005b8381101562004cac57818101518382015260200162004c92565b8381111562002aa35750506000910152565b600181811c9082168062004cd357607f821691505b6020821081141562004cf557634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141562004d125762004d1262004d19565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146200271257600080fdfe608060405260405162000f2c38038062000f2c8339810160408190526200002691620004e0565b82828282816200005860017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd6200060f565b60008051602062000ee5833981519152146200008457634e487b7160e01b600052600160045260246000fd5b620000928282600062000105565b50620000c2905060017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61046200060f565b60008051602062000ec583398151915214620000ee57634e487b7160e01b600052600160045260246000fd5b620000f98262000142565b50505050505062000678565b62000110836200019d565b6000825111806200011e5750805b156200013d576200013b8383620001df60201b620002601760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200016d6200020e565b604080516001600160a01b03928316815291841660208301520160405180910390a16200019a8162000247565b50565b620001a881620002fc565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606062000207838360405180606001604052806027815260200162000f05602791396200039f565b9392505050565b60006200023860008051602062000ec583398151915260001b6200047c60201b620002081760201c565b546001600160a01b0316919050565b6001600160a01b038116620002b25760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80620002db60008051602062000ec583398151915260001b6200047c60201b620002081760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b62000312816200047f60201b6200028c1760201c565b620003765760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620002a9565b80620002db60008051602062000ee583398151915260001b6200047c60201b620002081760201c565b6060833b620004005760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620002a9565b600080856001600160a01b0316856040516200041d9190620005bc565b600060405180830381855af49150503d80600081146200045a576040519150601f19603f3d011682016040523d82523d6000602084013e6200045f565b606091505b5090925090506200047282828662000485565b9695505050505050565b90565b3b151590565b606083156200049657508162000207565b825115620004a75782518084602001fd5b8160405162461bcd60e51b8152600401620002a99190620005da565b80516001600160a01b0381168114620004db57600080fd5b919050565b600080600060608486031215620004f5578283fd5b6200050084620004c3565b92506200051060208501620004c3565b60408501519092506001600160401b03808211156200052d578283fd5b818601915086601f83011262000541578283fd5b81518181111562000556576200055662000662565b604051601f8201601f19908116603f0116810190838211818310171562000581576200058162000662565b816040528281528960208487010111156200059a578586fd5b620005ad83602083016020880162000633565b80955050505050509250925092565b60008251620005d081846020870162000633565b9190910192915050565b6020815260008251806020840152620005fb81604085016020870162000633565b601f01601f19169190910160400192915050565b6000828210156200062e57634e487b7160e01b81526011600452602481fd5b500390565b60005b838110156200065057818101518382015260200162000636565b838111156200013b5750506000910152565b634e487b7160e01b600052604160045260246000fd5b61083d80620006886000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b61008036600461068e565b610118565b61005b6100933660046106a8565b61015f565b3480156100a457600080fd5b506100ad6101d0565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e436600461068e565b61020b565b3480156100f557600080fd5b506100ad610235565b610106610292565b610116610111610331565b61033b565b565b61012061035f565b6001600160a01b0316336001600160a01b031614156101575761015481604051806020016040528060008152506000610380565b50565b6101546100fe565b61016761035f565b6001600160a01b0316336001600160a01b031614156101c8576101c38383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610380915050565b505050565b6101c36100fe565b60006101da61035f565b6001600160a01b0316336001600160a01b03161415610200576101fb610331565b905090565b6102086100fe565b90565b61021361035f565b6001600160a01b0316336001600160a01b0316141561015757610154816103ab565b600061023f61035f565b6001600160a01b0316336001600160a01b03161415610200576101fb61035f565b606061028583836040518060600160405280602781526020016107e1602791396103ff565b9392505050565b3b151590565b61029a61035f565b6001600160a01b0316336001600160a01b031614156101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101fb6104d3565b3660008037600080366000845af43d6000803e80801561035a573d6000f35b3d6000fd5b60006000805160206107a18339815191525b546001600160a01b0316919050565b610389836104e9565b6000825111806103965750805b156101c3576103a58383610260565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103d461035f565b604080516001600160a01b03928316815291841660208301520160405180910390a161015481610529565b6060833b61045e5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610328565b600080856001600160a01b0316856040516104799190610725565b600060405180830381855af49150503d80600081146104b4576040519150601f19603f3d011682016040523d82523d6000602084013e6104b9565b606091505b50915091506104c98282866105c0565b9695505050505050565b60006000805160206107c1833981519152610371565b6104f2816105f9565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b03811661058e5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b6064820152608401610328565b806000805160206107a18339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b606083156105cf575081610285565b8251156105df5782518084602001fd5b8160405162461bcd60e51b81526004016103289190610741565b803b61065d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610328565b806000805160206107c183398151915261059f565b80356001600160a01b038116811461068957600080fd5b919050565b60006020828403121561069f578081fd5b61028582610672565b6000806000604084860312156106bc578182fd5b6106c584610672565b925060208401356001600160401b03808211156106e0578384fd5b818601915086601f8301126106f3578384fd5b813581811115610701578485fd5b876020828501011115610712578485fd5b6020830194508093505050509250925092565b60008251610737818460208701610774565b9190910192915050565b6020815260008251806020840152610760816040850160208701610774565b601f01601f19169190910160400192915050565b60005b8381101561078f578181015183820152602001610777565b838111156103a5575050600091015256feb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122064b11b2157d61600a09abbd0eaeb0a67e43f14e3005703114add6fac6fd353ec64736f6c63430008040033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212208cb60cccbb0175e072b7a7e4f58834eba94e63da509568fe904a5d719b61509864736f6c63430008040033