0 txs
0 calls
constructor
constructor(address _swapRouter, address _stargateComposer, address _weth, bool _nativeIsETH, address _sgeth)
functions
nativeIsETH
viewfunction nativeIsETH() view returns (bool)
owner
viewfunction owner() view returns (address)
reserveGas
viewfunction reserveGas() view returns (uint256)
sgeth
viewfunction sgeth() view returns (address)
stargateComposer
viewfunction stargateComposer() view returns (address)
swapRouter
viewfunction swapRouter() view returns (address)
weth
viewfunction weth() view returns (address)
collectAllToken
nonpayablefunction collectAllToken(address token)
crossSwap
payablefunction crossSwap(tuple params) payable
renounceOwnership
nonpayablefunction renounceOwnership()
setNativeIsETH
nonpayablefunction setNativeIsETH(bool _nativeIsETH)
setReserveGas
nonpayablefunction setReserveGas(uint256 _reserveGas)
setSgeth
nonpayablefunction setSgeth(address _sgeth)
setStargateComposer
nonpayablefunction setStargateComposer(address _stargateComposer)
setSwapRouter
nonpayablefunction setSwapRouter(address _swapRouter)
sgReceive
nonpayablefunction sgReceive(uint16, bytes, uint256, address _token, uint256 amountLD, bytes payload)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
CompleteNoSwap
event CompleteNoSwap(address token, uint256 amount)
CrossSwap
event CrossSwap(address indexed user, address srcToken, uint256 amount)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Refund
event Refund(address token, uint256 amount)
SwapErrorLog
event SwapErrorLog(string message)
SwapErrorLogBytes
event SwapErrorLogBytes(bytes data)
SwapErrorLogCode
event SwapErrorLogCode(uint256 code)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
AddressInsufficientBalance
error AddressInsufficientBalance(address account)
FailedInnerCall
error FailedInnerCall()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
creation bytecode
0x60806040523480156200001157600080fd5b50604051620037ad380380620037ad83398181016040528101906200003791906200035d565b33600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000ad5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620000a49190620003f6565b60405180910390fd5b620000be81620001f260201b60201c565b5084600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600460146101000a81548160ff02191690831515021790555080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620249f0600581905550505050505062000413565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620002e882620002bb565b9050919050565b620002fa81620002db565b81146200030657600080fd5b50565b6000815190506200031a81620002ef565b92915050565b60008115159050919050565b620003378162000320565b81146200034357600080fd5b50565b60008151905062000357816200032c565b92915050565b600080600080600060a086880312156200037c576200037b620002b6565b5b60006200038c8882890162000309565b95505060206200039f8882890162000309565b9450506040620003b28882890162000309565b9350506060620003c58882890162000346565b9250506080620003d88882890162000309565b9150509295509295909350565b620003f081620002db565b82525050565b60006020820190506200040d6000830184620003e5565b92915050565b61338a80620004236000396000f3fe6080604052600436106101025760003560e01c80638da5cb5b11610095578063d3c7e18c11610064578063d3c7e18c146102f4578063e0c641061461031d578063eae895f114610346578063f2fde38b14610371578063fee451af1461039a57610109565b80638da5cb5b1461024a578063a761f5f014610275578063ab8236f3146102a0578063c31c9c07146102c957610109565b806348d677e8116100d157806348d677e8146101b65780636512a9a6146101df578063715018a6146102085780638c63dc081461021f57610109565b80630be9b2fc1461010e5780633352b608146101375780633fc8cef314610162578063412736571461018d57610109565b3661010957005b600080fd5b34801561011a57600080fd5b50610135600480360381019061013091906122aa565b6103b6565b005b34801561014357600080fd5b5061014c610402565b60405161015991906122e6565b60405180910390f35b34801561016e57600080fd5b50610177610428565b60405161018491906122e6565b60405180910390f35b34801561019957600080fd5b506101b460048036038101906101af91906122aa565b61044e565b005b3480156101c257600080fd5b506101dd60048036038101906101d89190612337565b61049a565b005b3480156101eb57600080fd5b50610206600480360381019061020191906122aa565b6104ac565b005b34801561021457600080fd5b5061021d6104f8565b005b34801561022b57600080fd5b5061023461050c565b604051610241919061237f565b60405180910390f35b34801561025657600080fd5b5061025f61051f565b60405161026c91906122e6565b60405180910390f35b34801561028157600080fd5b5061028a610548565b60405161029791906122e6565b60405180910390f35b3480156102ac57600080fd5b506102c760048036038101906102c2919061251a565b61056e565b005b3480156102d557600080fd5b506102de610944565b6040516102eb91906122e6565b60405180910390f35b34801561030057600080fd5b5061031b600480360381019061031691906122aa565b61096a565b005b34801561032957600080fd5b50610344600480360381019061033f919061260b565b610ad0565b005b34801561035257600080fd5b5061035b610af5565b6040516103689190612647565b60405180910390f35b34801561037d57600080fd5b50610398600480360381019061039391906122aa565b610afb565b005b6103b460048036038101906103af9190612687565b610b81565b005b6103be611132565b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610456611132565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6104a2611132565b8060058190555050565b6104b4611132565b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610500611132565b61050a60006111b9565b565b600460149054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f59061272d565b60405180910390fd5b600080600083806020019051810190610617919061283a565b9250925092506000825103610673576106328686858461127d565b7fca0d1d6037a2b0e6f9c88118ce504c4237209d2ea6b06f11c9b665fa7905040c86866040516106639291906128a9565b60405180910390a150505061093c565b60005a905060055481116106d05761068e878786600161127d565b7fbb28353e4598c3b9199101a66e0989549b659a59a54d2c27fbb183f1932c8e6d87876040516106bf9291906128a9565b60405180910390a15050505061093c565b6000838060200190518101906106e6919061295d565b90506106f288886113ef565b60006005548361070291906129d5565b9050600060019050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166396d7a51483858c8b8a6040518663ffffffff1660e01b815260040161076c9493929190612ad5565b60606040518083038160008887f1935050505080156107a957506040513d601f19601f820116820180604052508101906107a69190612b36565b60015b6108e7576107b5612b96565b806308c379a00361081557506107c9612bb8565b806107d45750610873565b7fdc95fc3e1e5c34d0c2979367fc4bd599aacc87463dc03c8fb2c7bc454e9df844816040516108039190612c8c565b60405180910390a160009150506108e2565b634e487b710361087357610827612cae565b906108325750610873565b7fc5324509a79782a35876264de0405e3dd93f4919fb61f34e709be65a5021d55f816040516108619190612647565b60405180910390a160009150506108e2565b3d806000811461089f576040519150601f19603f3d011682016040523d82523d6000602084013e6108a4565b606091505b507f3d14c7a0d29ccf1f95dc9173dbe0352897906e171360b8754439014d16734395816040516108d49190612d19565b60405180910390a160009150505b6108eb565b5050505b6108f58a88611526565b80610934577fbb28353e4598c3b9199101a66e0989549b659a59a54d2c27fbb183f1932c8e6d8a8a60405161092b9291906128a9565b60405180910390a15b505050505050505b505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610972611132565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036109ce5760004790506109c833826116a1565b50610acd565b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a0991906122e6565b602060405180830381865afa158015610a26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4a9190612d3b565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610a879291906128a9565b6020604051808303816000875af1158015610aa6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aca9190612d68565b50505b50565b610ad8611132565b80600460146101000a81548160ff02191690831515021790555050565b60055481565b610b03611132565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b755760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610b6c91906122e6565b60405180910390fd5b610b7e816111b9565b50565b6000479050610b8e612208565b610c01836000016020810190610ba491906122aa565b8460200135858060400190610bb99190612da4565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506117a1565b82600001836020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152508281525050506000479050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826020015173ffffffffffffffffffffffffffffffffffffffff1614610d4757816020015173ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600001516040518363ffffffff1660e01b8152600401610d029291906128a9565b6020604051808303816000875af1158015610d21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d459190612d68565b505b60003385806101200190610d5b9190612da4565b87610140016020810190610d6f919061260b565b604051602001610d829493929190612e34565b6040516020818303038152906040529050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639fbf10fc858434610dde9190612e74565b610de891906129d5565b876060016020810190610dfb9190612ea8565b88608001358960a001353389600001518c60c0013560405180606001604052808f60e0013581526020018f610100013581526020018f610160016020810190610e4491906122aa565b604051602001610e549190612f1d565b6040516020818303038152906040528152508e610160016020810190610e7a91906122aa565b604051602001610e8a9190612f1d565b6040516020818303038152906040528b6040518b63ffffffff1660e01b8152600401610ebe99989796959493929190612fa6565b6000604051808303818588803b158015610ed757600080fd5b505af1158015610eeb573d6000803e3d6000fd5b5050505050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836020015173ffffffffffffffffffffffffffffffffffffffff1614610ff057826020015173ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660006040518363ffffffff1660e01b8152600401610fab92919061308d565b6020604051808303816000875af1158015610fca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fee9190612d68565b505b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff1685600001602081019061102e91906122aa565b73ffffffffffffffffffffffffffffffffffffffff16036110c4573373ffffffffffffffffffffffffffffffffffffffff167ff3dcf17a31d60700d598f90e65d1daa8da1bd6566ce564fdca699359f4b16aab600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1687602001356040516110b79291906128a9565b60405180910390a261112b565b3373ffffffffffffffffffffffffffffffffffffffff167ff3dcf17a31d60700d598f90e65d1daa8da1bd6566ce564fdca699359f4b16aab86600001602081019061110f91906122aa565b87602001356040516111229291906128a9565b60405180910390a25b5050505050565b61113a611ddb565b73ffffffffffffffffffffffffffffffffffffffff1661115861051f565b73ffffffffffffffffffffffffffffffffffffffff16146111b75761117b611ddb565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016111ae91906122e6565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611302576112fd82848673ffffffffffffffffffffffffffffffffffffffff16611de39092919063ffffffff16565b6113e9565b80156113175761131282846116a1565b6113e8565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b15801561138157600080fd5b505af1158015611395573d6000803e3d6000fd5b50505050506113e78284600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611de39092919063ffffffff16565b5b5b50505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114d457600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160405161148a906130e7565b60006040518083038185875af1925050503d80600081146114c7576040519150601f19603f3d011682016040523d82523d6000602084013e6114cc565b606091505b505050611522565b611521600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff16611de39092919063ffffffff16565b5b5050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361160d57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631cf6e5b4826040518263ffffffff1660e01b81526004016115d691906122e6565b600060405180830381600087803b1580156115f057600080fd5b505af1158015611604573d6000803e3d6000fd5b5050505061169d565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166322fd64a083836040518363ffffffff1660e01b815260040161166a9291906130fc565b600060405180830381600087803b15801561168457600080fd5b505af1158015611698573d6000803e3d6000fd5b505050505b5050565b60008273ffffffffffffffffffffffffffffffffffffffff1682600067ffffffffffffffff8111156116d6576116d56123ef565b5b6040519080825280601f01601f1916602001820160405280156117085781602001600182028036833780820191505090505b506040516117169190613156565b60006040518083038185875af1925050503d8060008114611753576040519150601f19603f3d011682016040523d82523d6000602084013e611758565b606091505b505090508061179c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611793906131b9565b60405180910390fd5b505050565b600080600080845111905073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff160361194857844711611835576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182c90613225565b60405180910390fd5b80156118cb57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1685604051611881906130e7565b60006040518083038185875af1925050503d80600081146118be576040519150601f19603f3d011682016040523d82523d6000602084013e6118c3565b606091505b505050611943565b600460149054906101000a900460ff1661191a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191190613291565b60405180910390fd5b849250600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b611acf565b80156119815761197c8633600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1688611e62565b611ace565b61198d86333088611e62565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603611ac657600460149054906101000a900460ff16611a31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2890613291565b60405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d866040518263ffffffff1660e01b8152600401611a6a9190612647565b600060405180830381600087803b158015611a8457600080fd5b505af1158015611a98573d6000803e3d6000fd5b50505050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150611aca565b8591505b8492505b5b8015611dd257600084806020019051810190611aeb919061295d565b9050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166396d7a51482883060016040518563ffffffff1660e01b8152600401611b4f9493929190612ad5565b6060604051808303816000875af1158015611b6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b929190612b36565b9091508094508195505050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c6757600460149054906101000a900460ff16611c41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3890613291565b60405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1692505b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1603611d4057600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631cf6e5b4336040518263ffffffff1660e01b8152600401611d0991906122e6565b600060405180830381600087803b158015611d2357600080fd5b505af1158015611d37573d6000803e3d6000fd5b50505050611dd0565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166322fd64a088336040518363ffffffff1660e01b8152600401611d9d9291906130fc565b600060405180830381600087803b158015611db757600080fd5b505af1158015611dcb573d6000803e3d6000fd5b505050505b505b50935093915050565b600033905090565b611e5d838473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8585604051602401611e169291906128a9565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611fba565b505050565b6000808573ffffffffffffffffffffffffffffffffffffffff166323b872dd60e01b868686604051602401611e99939291906132b1565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611f039190613156565b6000604051808303816000865af19150503d8060008114611f40576040519150601f19603f3d011682016040523d82523d6000602084013e611f45565b606091505b5091509150818015611f735750600081511480611f72575080806020019051810190611f719190612d68565b5b5b611fb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa990613334565b60405180910390fd5b505050505050565b6000611fe5828473ffffffffffffffffffffffffffffffffffffffff1661205190919063ffffffff16565b9050600081511415801561200a5750808060200190518101906120089190612d68565b155b1561204c57826040517f5274afe700000000000000000000000000000000000000000000000000000000815260040161204391906122e6565b60405180910390fd5b505050565b606061205f83836000612067565b905092915050565b6060814710156120ae57306040517fcd7860590000000000000000000000000000000000000000000000000000000081526004016120a591906122e6565b60405180910390fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1684866040516120d79190613156565b60006040518083038185875af1925050503d8060008114612114576040519150601f19603f3d011682016040523d82523d6000602084013e612119565b606091505b5091509150612129868383612134565b925050509392505050565b60608261214957612144826121c3565b6121bb565b60008251148015612171575060008473ffffffffffffffffffffffffffffffffffffffff163b145b156121b357836040517f9996b3150000000000000000000000000000000000000000000000000000000081526004016121aa91906122e6565b60405180910390fd5b8190506121bc565b5b9392505050565b6000815111156121d65780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604051806040016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006122778261224c565b9050919050565b6122878161226c565b811461229257600080fd5b50565b6000813590506122a48161227e565b92915050565b6000602082840312156122c0576122bf612242565b5b60006122ce84828501612295565b91505092915050565b6122e08161226c565b82525050565b60006020820190506122fb60008301846122d7565b92915050565b6000819050919050565b61231481612301565b811461231f57600080fd5b50565b6000813590506123318161230b565b92915050565b60006020828403121561234d5761234c612242565b5b600061235b84828501612322565b91505092915050565b60008115159050919050565b61237981612364565b82525050565b60006020820190506123946000830184612370565b92915050565b600061ffff82169050919050565b6123b18161239a565b81146123bc57600080fd5b50565b6000813590506123ce816123a8565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612427826123de565b810181811067ffffffffffffffff82111715612446576124456123ef565b5b80604052505050565b6000612459612238565b9050612465828261241e565b919050565b600067ffffffffffffffff821115612485576124846123ef565b5b61248e826123de565b9050602081019050919050565b82818337600083830152505050565b60006124bd6124b88461246a565b61244f565b9050828152602081018484840111156124d9576124d86123d9565b5b6124e484828561249b565b509392505050565b600082601f830112612501576125006123d4565b5b81356125118482602086016124aa565b91505092915050565b60008060008060008060c0878903121561253757612536612242565b5b600061254589828a016123bf565b965050602087013567ffffffffffffffff81111561256657612565612247565b5b61257289828a016124ec565b955050604061258389828a01612322565b945050606061259489828a01612295565b93505060806125a589828a01612322565b92505060a087013567ffffffffffffffff8111156125c6576125c5612247565b5b6125d289828a016124ec565b9150509295509295509295565b6125e881612364565b81146125f357600080fd5b50565b600081359050612605816125df565b92915050565b60006020828403121561262157612620612242565b5b600061262f848285016125f6565b91505092915050565b61264181612301565b82525050565b600060208201905061265c6000830184612638565b92915050565b600080fd5b6000610180828403121561267e5761267d612662565b5b81905092915050565b60006020828403121561269d5761269c612242565b5b600082013567ffffffffffffffff8111156126bb576126ba612247565b5b6126c784828501612667565b91505092915050565b600082825260208201905092915050565b7f4e6f7420737461726761746520636f6d706f7365722100000000000000000000600082015250565b60006127176016836126d0565b9150612722826126e1565b602082019050919050565b600060208201905081810360008301526127468161270a565b9050919050565b60006127588261224c565b9050919050565b6127688161274d565b811461277357600080fd5b50565b6000815190506127858161275f565b92915050565b60005b838110156127a957808201518184015260208101905061278e565b60008484015250505050565b60006127c86127c38461246a565b61244f565b9050828152602081018484840111156127e4576127e36123d9565b5b6127ef84828561278b565b509392505050565b600082601f83011261280c5761280b6123d4565b5b815161281c8482602086016127b5565b91505092915050565b600081519050612834816125df565b92915050565b60008060006060848603121561285357612852612242565b5b600061286186828701612776565b935050602084015167ffffffffffffffff81111561288257612881612247565b5b61288e868287016127f7565b925050604061289f86828701612825565b9150509250925092565b60006040820190506128be60008301856122d7565b6128cb6020830184612638565b9392505050565b600080fd5b600080fd5b6000815190506128eb8161230b565b92915050565b600060408284031215612907576129066128d2565b5b612911604061244f565b9050600082015167ffffffffffffffff811115612931576129306128d7565b5b61293d848285016127f7565b6000830152506020612951848285016128dc565b60208301525092915050565b60006020828403121561297357612972612242565b5b600082015167ffffffffffffffff81111561299157612990612247565b5b61299d848285016128f1565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006129e082612301565b91506129eb83612301565b9250828203905081811115612a0357612a026129a6565b5b92915050565b600081519050919050565b600082825260208201905092915050565b6000612a3082612a09565b612a3a8185612a14565b9350612a4a81856020860161278b565b612a53816123de565b840191505092915050565b612a6781612301565b82525050565b60006040830160008301518482036000860152612a8a8282612a25565b9150506020830151612a9f6020860182612a5e565b508091505092915050565b60006fffffffffffffffffffffffffffffffff82169050919050565b612acf81612aaa565b82525050565b60006080820190508181036000830152612aef8187612a6d565b9050612afe6020830186612ac6565b612b0b60408301856122d7565b612b186060830184612370565b95945050505050565b600081519050612b308161227e565b92915050565b600080600060608486031215612b4f57612b4e612242565b5b6000612b5d868287016128dc565b9350506020612b6e868287016128dc565b9250506040612b7f86828701612b21565b9150509250925092565b60008160e01c9050919050565b600060033d1115612bb55760046000803e612bb2600051612b89565b90505b90565b600060443d10612c4557612bca612238565b60043d036004823e80513d602482011167ffffffffffffffff82111715612bf2575050612c45565b808201805167ffffffffffffffff811115612c105750505050612c45565b80602083010160043d038501811115612c2d575050505050612c45565b612c3c8260200185018661241e565b82955050505050505b90565b600081519050919050565b6000612c5e82612c48565b612c6881856126d0565b9350612c7881856020860161278b565b612c81816123de565b840191505092915050565b60006020820190508181036000830152612ca68184612c53565b905092915050565b60008060233d1115612ccb576020600460003e6001915060005190505b9091565b600082825260208201905092915050565b6000612ceb82612a09565b612cf58185612ccf565b9350612d0581856020860161278b565b612d0e816123de565b840191505092915050565b60006020820190508181036000830152612d338184612ce0565b905092915050565b600060208284031215612d5157612d50612242565b5b6000612d5f848285016128dc565b91505092915050565b600060208284031215612d7e57612d7d612242565b5b6000612d8c84828501612825565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083356001602003843603038112612dc157612dc0612d95565b5b80840192508235915067ffffffffffffffff821115612de357612de2612d9a565b5b602083019250600182023603831315612dff57612dfe612d9f565b5b509250929050565b6000612e138385612ccf565b9350612e2083858461249b565b612e29836123de565b840190509392505050565b6000606082019050612e4960008301876122d7565b8181036020830152612e5c818587612e07565b9050612e6b6040830184612370565b95945050505050565b6000612e7f82612301565b9150612e8a83612301565b9250828201905080821115612ea257612ea16129a6565b5b92915050565b600060208284031215612ebe57612ebd612242565b5b6000612ecc848285016123bf565b91505092915050565b60008160601b9050919050565b6000612eed82612ed5565b9050919050565b6000612eff82612ee2565b9050919050565b612f17612f128261226c565b612ef4565b82525050565b6000612f298284612f06565b60148201915081905092915050565b612f418161239a565b82525050565b612f508161274d565b82525050565b6000606083016000830151612f6e6000860182612a5e565b506020830151612f816020860182612a5e565b5060408301518482036040860152612f998282612a25565b9150508091505092915050565b600061012082019050612fbc600083018c612f38565b612fc9602083018b612638565b612fd6604083018a612638565b612fe36060830189612f47565b612ff06080830188612638565b612ffd60a0830187612638565b81810360c083015261300f8186612f56565b905081810360e08301526130238185612ce0565b90508181036101008301526130388184612ce0565b90509a9950505050505050505050565b6000819050919050565b6000819050919050565b600061307761307261306d84613048565b613052565b612301565b9050919050565b6130878161305c565b82525050565b60006040820190506130a260008301856122d7565b6130af602083018461307e565b9392505050565b600081905092915050565b50565b60006130d16000836130b6565b91506130dc826130c1565b600082019050919050565b60006130f2826130c4565b9150819050919050565b600060408201905061311160008301856122d7565b61311e60208301846122d7565b9392505050565b600061313082612a09565b61313a81856130b6565b935061314a81856020860161278b565b80840191505092915050565b60006131628284613125565b915081905092915050565b7f5354450000000000000000000000000000000000000000000000000000000000600082015250565b60006131a36003836126d0565b91506131ae8261316d565b602082019050919050565b600060208201905081810360008301526131d281613196565b9050919050565b7f6d73672e76616c7565206e6f7420656e6f756768000000000000000000000000600082015250565b600061320f6014836126d0565b915061321a826131d9565b602082019050919050565b6000602082019050818103600083015261323e81613202565b9050919050565b7f6e6174697665206973206e6f7420455448210000000000000000000000000000600082015250565b600061327b6012836126d0565b915061328682613245565b602082019050919050565b600060208201905081810360008301526132aa8161326e565b9050919050565b60006060820190506132c660008301866122d7565b6132d360208301856122d7565b6132e06040830184612638565b949350505050565b7f5354460000000000000000000000000000000000000000000000000000000000600082015250565b600061331e6003836126d0565b9150613329826132e8565b602082019050919050565b6000602082019050818103600083015261334d81613311565b905091905056fea2646970667358221220da9ea95385b3e5fc5bf9344dd669bce503b8a576be82d19649d536d11ab844d764736f6c6343000814003300000000000000000000000088867bf3bb3321d8c7da71a8eab70680037068e4000000000000000000000000ecc19e177d24551aa7ed6bc6fe566eca726cc8a900000000000000000000000042000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000001000000000000000000000000d22363e3762ca7339569f3d33eade20127d5f98c