1 tx
3 calls
constructor
constructor(bytes32 _fraxtalHop, uint256 _numDVNs, address _EXECUTOR, address _DVN, address _TREASURY, uint32 _EID, address _frxUsdOft, address _sfrxUsdOft)
functions
DVN
viewfunction DVN() view returns (address)
EID
viewfunction EID() view returns (uint32)
EXECUTOR
viewfunction EXECUTOR() view returns (address)
fraxtalHop
viewfunction fraxtalHop() view returns (bytes32)
frxUsdOft
viewfunction frxUsdOft() view returns (address)
hopFee
viewfunction hopFee() view returns (uint256)
numDVNs
viewfunction numDVNs() view returns (uint256)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
pendingOwner
viewfunction pendingOwner() view returns (address)
quote
viewfunction quote(address _oft, bytes32 _to, uint256 _amountLD) view returns (tuple fee)
quoteHop
viewfunction quoteHop() view returns (uint256 finalFee)
sfrxUsdOft
viewfunction sfrxUsdOft() view returns (address)
TREASURY
viewfunction TREASURY() view returns (address)
acceptOwnership
nonpayablefunction acceptOwnership()
mintRedeem
payablefunction mintRedeem(address _oft, uint256 _amountLD) payable
pause
nonpayablefunction pause(bool _paused)
recoverERC20
nonpayablefunction recoverERC20(address tokenAddress, address recipient, uint256 tokenAmount)
recoverETH
nonpayablefunction recoverETH(address recipient, uint256 tokenAmount)
renounceOwnership
nonpayablefunction renounceOwnership()
setFraxtalHop
nonpayablefunction setFraxtalHop(address _fraxtalHop)
setFraxtalHop
nonpayablefunction setFraxtalHop(bytes32 _fraxtalHop)
setFrxUsdOft
nonpayablefunction setFrxUsdOft(address _frxUsdOft)
setHopFee
nonpayablefunction setHopFee(uint256 _hopFee)
setNumDVNs
nonpayablefunction setNumDVNs(uint256 _numDVNs)
setSfrxUsdOft
nonpayablefunction setSfrxUsdOft(address _sfrxUsdOft)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
MintRedeem
event MintRedeem(address oft, address indexed sender, uint256 amountLD)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnershipTransferStarted
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
AddressInsufficientBalance
error AddressInsufficientBalance(address account)
FailedInnerCall
error FailedInnerCall()
HopPaused
error HopPaused()
InsufficientFee
error InsufficientFee()
InvalidOFT
error InvalidOFT()
InvalidOptionType
error InvalidOptionType(uint16 optionType)
NotEndpoint
error NotEndpoint()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
RefundFailed
error RefundFailed()
SafeCastOverflowedUintDowncast
error SafeCastOverflowedUintDowncast(uint8 bits, uint256 value)
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
ZeroAmountSend
error ZeroAmountSend()
creation bytecode
0x6101006040525f600160146101000a81548160ff0219169083151502179055506002600355600160045534801562000035575f80fd5b506040516200328f3803806200328f83398181016040528101906200005b919062000439565b335f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000cf575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620000c691906200050e565b60405180910390fd5b620000e0816200022d60201b60201c565b5087600281905550866003819055508573ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508473ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250508373ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff16815250508263ffffffff1660e08163ffffffff16815250508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050505062000529565b60015f6101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905562000262816200026560201b60201c565b50565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f80fd5b5f819050919050565b6200033e816200032a565b811462000349575f80fd5b50565b5f815190506200035c8162000333565b92915050565b5f819050919050565b620003768162000362565b811462000381575f80fd5b50565b5f8151905062000394816200036b565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620003c5826200039a565b9050919050565b620003d781620003b9565b8114620003e2575f80fd5b50565b5f81519050620003f581620003cc565b92915050565b5f63ffffffff82169050919050565b6200041581620003fb565b811462000420575f80fd5b50565b5f8151905062000433816200040a565b92915050565b5f805f805f805f80610100898b03121562000459576200045862000326565b5b5f620004688b828c016200034c565b98505060206200047b8b828c0162000384565b97505060406200048e8b828c01620003e5565b9650506060620004a18b828c01620003e5565b9550506080620004b48b828c01620003e5565b94505060a0620004c78b828c0162000423565b93505060c0620004da8b828c01620003e5565b92505060e0620004ed8b828c01620003e5565b9150509295985092959890939650565b6200050881620003b9565b82525050565b5f602082019050620005235f830184620004fd565b92915050565b60805160a05160c05160e051612d016200058e5f395f8181610a8001528181610b7901528181610c5801528181611062015261155201525f81816107050152610c1b01525f81816106070152610a4401525f8181610b3d0152610d770152612d015ff3fe60806040526004361061019f575f3560e01c8063630dc7cb116100eb578063a79524b011610089578063e30c397811610063578063e30c39781461053c578063ec1278d614610566578063f2fde38b1461058e578063fab35d70146105b6576101a6565b8063a79524b0146104ac578063b218b198146104e8578063d393f07214610512576101a6565b8063715018a6116100c5578063715018a61461042e57806377958f871461044457806379ba50971461046c5780638da5cb5b14610482576101a6565b8063630dc7cb146103b257806367fb4738146103dc5780636d07981314610404576101a6565b8063317f39dd1161015857806348be726e1161013257806348be726e1461030c5780635b461c83146103365780635c975abb1461035e5780636257cdb414610388576101a6565b8063317f39dd146102a05780633de9dc5c146102bc5780633e0c0629146102e4576101a6565b806302329a29146101aa578063104db380146101d25780631171bda9146101fc578063225325d91461022457806324df604b1461024c5780632d2c556514610276576101a6565b366101a657005b5f80fd5b3480156101b5575f80fd5b506101d060048036038101906101cb9190611db5565b6105e0565b005b3480156101dd575f80fd5b506101e6610605565b6040516101f39190611e1f565b60405180910390f35b348015610207575f80fd5b50610222600480360381019061021d9190611e95565b610629565b005b34801561022f575f80fd5b5061024a60048036038101906102459190611ee5565b6106b2565b005b348015610257575f80fd5b506102606106fd565b60405161026d9190611f1f565b60405180910390f35b348015610281575f80fd5b5061028a610703565b6040516102979190611e1f565b60405180910390f35b6102ba60048036038101906102b59190611f38565b610727565b005b3480156102c7575f80fd5b506102e260048036038101906102dd9190611ee5565b610983565b005b3480156102ef575f80fd5b5061030a60048036038101906103059190611f38565b6109ce565b005b348015610317575f80fd5b50610320610a40565b60405161032d9190611f1f565b60405180910390f35b348015610341575f80fd5b5061035c60048036038101906103579190611ee5565b610d19565b005b348015610369575f80fd5b50610372610d3d565b60405161037f9190611f85565b60405180910390f35b348015610393575f80fd5b5061039c610d50565b6040516103a99190611e1f565b60405180910390f35b3480156103bd575f80fd5b506103c6610d75565b6040516103d39190611e1f565b60405180910390f35b3480156103e7575f80fd5b5061040260048036038101906103fd9190611f9e565b610d99565b005b34801561040f575f80fd5b50610418610dab565b6040516104259190611e1f565b60405180910390f35b348015610439575f80fd5b50610442610dd0565b005b34801561044f575f80fd5b5061046a60048036038101906104659190611ffc565b610de3565b005b348015610477575f80fd5b50610480610df5565b005b34801561048d575f80fd5b50610496610e83565b6040516104a39190611e1f565b60405180910390f35b3480156104b7575f80fd5b506104d260048036038101906104cd9190612027565b610eaa565b6040516104df91906120b3565b60405180910390f35b3480156104f3575f80fd5b506104fc610f6e565b6040516105099190611f1f565b60405180910390f35b34801561051d575f80fd5b50610526610f74565b60405161053391906120db565b60405180910390f35b348015610547575f80fd5b50610550610f7a565b60405161055d9190611e1f565b60405180910390f35b348015610571575f80fd5b5061058c60048036038101906105879190611f9e565b610fa2565b005b348015610599575f80fd5b506105b460048036038101906105af9190611ee5565b610fb4565b005b3480156105c1575f80fd5b506105ca611060565b6040516105d79190612112565b60405180910390f35b6105e8611084565b80600160146101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b610631611084565b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b815260040161066c92919061212b565b6020604051808303815f875af1158015610688573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106ac9190612166565b50505050565b6106ba611084565b8060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60045481565b7f000000000000000000000000000000000000000000000000000000000000000081565b600160149054906101000a900460ff161561076e576040517f819f993900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015610818575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561084f576040517f7413e48600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610859828261110b565b90505f8103610894576040517f4fdf5da600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61090c8273ffffffffffffffffffffffffffffffffffffffff1663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108e0573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061090491906121a5565b33308461119c565b61092f823373ffffffffffffffffffffffffffffffffffffffff165f1b8361121e565b3373ffffffffffffffffffffffffffffffffffffffff167f1db4d91863180048f3f772b26973178921e53f81519ac7ec9b7ad1b9db52d662838360405161097792919061212b565b60405180910390a25050565b61098b611084565b8060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6109d6611084565b8173ffffffffffffffffffffffffffffffffffffffff16816040516109fa906121fd565b5f6040518083038185875af1925050503d805f8114610a34576040519150601f19603f3d011682016040523d82523d5f602084013e610a39565b606091505b5050505050565b5f807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166330bb3aac7f00000000000000000000000000000000000000000000000000000000000000006005306040518463ffffffff1660e01b8152600401610ac093929190612296565b602060405180830381865afa158015610adb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aff91906122f2565b90505f6040518060400160405280601481526020017f01001101000000000000000000000000000493e000000000000000000000000081525090505f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663709eb6647f0000000000000000000000000000000000000000000000000000000000000000306024866040518563ffffffff1660e01b8152600401610bbb94939291906123d0565b602060405180830381865afa158015610bd6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bfa91906122f2565b90505f8160035485610c0c9190612447565b610c169190612488565b90505f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d4244221307f0000000000000000000000000000000000000000000000000000000000000000855f6040518563ffffffff1660e01b8152600401610c9894939291906124bb565b602060405180830381865afa158015610cb3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cd791906122f2565b90508082610ce59190612488565b9550612710600454612710610cfa9190612488565b87610d059190612447565b610d0f919061252b565b9550505050505090565b610d3a8173ffffffffffffffffffffffffffffffffffffffff165f1b610de3565b50565b600160149054906101000a900460ff1681565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b610da1611084565b8060048190555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610dd8611084565b610de15f6114b2565b565b610deb611084565b8060028190555050565b5f610dfe6114e2565b90508073ffffffffffffffffffffffffffffffffffffffff16610e1f610f7a565b73ffffffffffffffffffffffffffffffffffffffff1614610e7757806040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610e6e9190611e1f565b60405180910390fd5b610e80816114b2565b50565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610eb2611d19565b610ebc848361110b565b91505f610eca8484856114e9565b90508473ffffffffffffffffffffffffffffffffffffffff16633b6f743b825f6040518363ffffffff1660e01b8152600401610f07929190612668565b6040805180830381865afa158015610f21573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f45919061275f565b9150610f4f610a40565b825f01818151610f5f9190612488565b91508181525050509392505050565b60035481565b60025481565b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610faa611084565b8060038190555050565b610fbc611084565b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1661101b610e83565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b7f000000000000000000000000000000000000000000000000000000000000000081565b61108c6114e2565b73ffffffffffffffffffffffffffffffffffffffff166110aa610e83565b73ffffffffffffffffffffffffffffffffffffffff1614611109576110cd6114e2565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016111009190611e1f565b60405180910390fd5b565b5f808373ffffffffffffffffffffffffffffffffffffffff1663963efcaa6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611156573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061117a91906122f2565b9050808184611189919061252b565b6111939190612447565b91505092915050565b611218848573ffffffffffffffffffffffffffffffffffffffff166323b872dd8686866040516024016111d19392919061278a565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506115a1565b50505050565b5f61122a8383846114e9565b90505f8473ffffffffffffffffffffffffffffffffffffffff16633b6f743b835f6040518363ffffffff1660e01b8152600401611268929190612668565b6040805180830381865afa158015611282573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112a6919061275f565b90505f6112b1610a40565b825f01516112bf9190612488565b9050348111156112fb576040517f025dbdd400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113728673ffffffffffffffffffffffffffffffffffffffff1663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611347573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061136b91906121a5565b8786611636565b8573ffffffffffffffffffffffffffffffffffffffff1663c7c7f5b3835f01518585306040518563ffffffff1660e01b81526004016113b3939291906127bf565b60c06040518083038185885af11580156113cf573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906113f491906128e7565b5050803411156114aa575f3373ffffffffffffffffffffffffffffffffffffffff1682346114229190612925565b60405161142e906121fd565b5f6040518083038185875af1925050503d805f8114611468576040519150601f19603f3d011682016040523d82523d5f602084013e61146d565b606091505b50509050806114a8576040517ff0c49d4400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b505050505050565b60015f6101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556114df81611743565b50565b5f33905090565b6114f1611d31565b5f6114fa611804565b905061150b815f620f42405f61182c565b905061762f825f019063ffffffff16908163ffffffff16815250506002548260200181815250508382604001818152505082826060018181525050808260800181905250847f0000000000000000000000000000000000000000000000000000000000000000604051602001611582929190612958565b6040516020818303038152906040528260a00181905250509392505050565b5f6115cb828473ffffffffffffffffffffffffffffffffffffffff166118c690919063ffffffff16565b90505f8151141580156115ef5750808060200190518101906115ed9190612166565b155b1561163157826040517f5274afe70000000000000000000000000000000000000000000000000000000081526004016116289190611e1f565b60405180910390fd5b505050565b5f8373ffffffffffffffffffffffffffffffffffffffff1663095ea7b3848460405160240161166692919061212b565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506116b484826118db565b61173d57611732848573ffffffffffffffffffffffffffffffffffffffff1663095ea7b3865f6040516024016116eb9291906129b8565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506115a1565b61173c84826115a1565b5b50505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b606060036040516020016118189190612a20565b604051602081830303815290604052905090565b606084600361ffff166118485f8361199a90919063ffffffff16565b61ffff16146118a0576118645f8261199a90919063ffffffff16565b6040517f3a51740d0000000000000000000000000000000000000000000000000000000081526004016118979190612a49565b60405180910390fd5b5f6118ac8686866119ff565b90506118ba87600383611a6f565b92505050949350505050565b60606118d383835f611b2a565b905092915050565b5f805f8473ffffffffffffffffffffffffffffffffffffffff16846040516119039190612a92565b5f604051808303815f865af19150503d805f811461193c576040519150601f19603f3d011682016040523d82523d5f602084013e611941565b606091505b509150915081801561196e57505f8151148061196d57508080602001905181019061196c9190612166565b5b5b801561199057505f8573ffffffffffffffffffffffffffffffffffffffff163b115b9250505092915050565b5f6002826119a89190612488565b835110156119eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e290612b02565b60405180910390fd5b5f8260028501015190508091505092915050565b60605f826fffffffffffffffffffffffffffffffff1614611a4357838383604051602001611a2f93929190612b6f565b604051602081830303815290604052611a66565b8383604051602001611a56929190612bab565b6040516020818303038152906040525b90509392505050565b606083600361ffff16611a8b5f8361199a90919063ffffffff16565b61ffff1614611ae357611aa75f8261199a90919063ffffffff16565b6040517f3a51740d000000000000000000000000000000000000000000000000000000008152600401611ada9190612a49565b60405180910390fd5b84600180611af18651611bf3565b611afb9190612bd6565b8686604051602001611b11959493929190612c4b565b6040516020818303038152906040529150509392505050565b606081471015611b7157306040517fcd786059000000000000000000000000000000000000000000000000000000008152600401611b689190611e1f565b60405180910390fd5b5f808573ffffffffffffffffffffffffffffffffffffffff168486604051611b999190612a92565b5f6040518083038185875af1925050503d805f8114611bd3576040519150601f19603f3d011682016040523d82523d5f602084013e611bd8565b606091505b5091509150611be8868383611c48565b925050509392505050565b5f61ffff8016821115611c40576010826040517f6dfcc650000000000000000000000000000000000000000000000000000000008152600401611c37929190612cda565b60405180910390fd5b819050919050565b606082611c5d57611c5882611cd5565b611ccd565b5f8251148015611c8357505f8473ffffffffffffffffffffffffffffffffffffffff163b145b15611cc557836040517f9996b315000000000000000000000000000000000000000000000000000000008152600401611cbc9190611e1f565b60405180910390fd5b819050611cce565b5b9392505050565b5f81511115611ce75780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405180604001604052805f81526020015f81525090565b6040518060e001604052805f63ffffffff1681526020015f80191681526020015f81526020015f81526020016060815260200160608152602001606081525090565b5f604051905090565b5f80fd5b5f8115159050919050565b611d9481611d80565b8114611d9e575f80fd5b50565b5f81359050611daf81611d8b565b92915050565b5f60208284031215611dca57611dc9611d7c565b5b5f611dd784828501611da1565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611e0982611de0565b9050919050565b611e1981611dff565b82525050565b5f602082019050611e325f830184611e10565b92915050565b611e4181611dff565b8114611e4b575f80fd5b50565b5f81359050611e5c81611e38565b92915050565b5f819050919050565b611e7481611e62565b8114611e7e575f80fd5b50565b5f81359050611e8f81611e6b565b92915050565b5f805f60608486031215611eac57611eab611d7c565b5b5f611eb986828701611e4e565b9350506020611eca86828701611e4e565b9250506040611edb86828701611e81565b9150509250925092565b5f60208284031215611efa57611ef9611d7c565b5b5f611f0784828501611e4e565b91505092915050565b611f1981611e62565b82525050565b5f602082019050611f325f830184611f10565b92915050565b5f8060408385031215611f4e57611f4d611d7c565b5b5f611f5b85828601611e4e565b9250506020611f6c85828601611e81565b9150509250929050565b611f7f81611d80565b82525050565b5f602082019050611f985f830184611f76565b92915050565b5f60208284031215611fb357611fb2611d7c565b5b5f611fc084828501611e81565b91505092915050565b5f819050919050565b611fdb81611fc9565b8114611fe5575f80fd5b50565b5f81359050611ff681611fd2565b92915050565b5f6020828403121561201157612010611d7c565b5b5f61201e84828501611fe8565b91505092915050565b5f805f6060848603121561203e5761203d611d7c565b5b5f61204b86828701611e4e565b935050602061205c86828701611fe8565b925050604061206d86828701611e81565b9150509250925092565b61208081611e62565b82525050565b604082015f82015161209a5f850182612077565b5060208201516120ad6020850182612077565b50505050565b5f6040820190506120c65f830184612086565b92915050565b6120d581611fc9565b82525050565b5f6020820190506120ee5f8301846120cc565b92915050565b5f63ffffffff82169050919050565b61210c816120f4565b82525050565b5f6020820190506121255f830184612103565b92915050565b5f60408201905061213e5f830185611e10565b61214b6020830184611f10565b9392505050565b5f8151905061216081611d8b565b92915050565b5f6020828403121561217b5761217a611d7c565b5b5f61218884828501612152565b91505092915050565b5f8151905061219f81611e38565b92915050565b5f602082840312156121ba576121b9611d7c565b5b5f6121c784828501612191565b91505092915050565b5f81905092915050565b50565b5f6121e85f836121d0565b91506121f3826121da565b5f82019050919050565b5f612207826121dd565b9150819050919050565b5f819050919050565b5f67ffffffffffffffff82169050919050565b5f819050919050565b5f61225061224b61224684612211565b61222d565b61221a565b9050919050565b61226081612236565b82525050565b5f82825260208201905092915050565b5f6122815f83612266565b915061228c826121da565b5f82019050919050565b5f6080820190506122a95f830186612103565b6122b66020830185612257565b6122c36040830184611e10565b81810360608301526122d481612276565b9050949350505050565b5f815190506122ec81611e6b565b92915050565b5f6020828403121561230757612306611d7c565b5b5f612314848285016122de565b91505092915050565b5f819050919050565b5f61234061233b6123368461231d565b61222d565b611e62565b9050919050565b61235081612326565b82525050565b5f81519050919050565b5f5b8381101561237d578082015181840152602081019050612362565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6123a282612356565b6123ac8185612266565b93506123bc818560208601612360565b6123c581612388565b840191505092915050565b5f6080820190506123e35f830187612103565b6123f06020830186611e10565b6123fd6040830185612347565b818103606083015261240f8184612398565b905095945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61245182611e62565b915061245c83611e62565b925082820261246a81611e62565b915082820484148315176124815761248061241a565b5b5092915050565b5f61249282611e62565b915061249d83611e62565b92508282019050808211156124b5576124b461241a565b5b92915050565b5f6080820190506124ce5f830187611e10565b6124db6020830186612103565b6124e86040830185611f10565b6124f56060830184611f76565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61253582611e62565b915061254083611e62565b9250826125505761254f6124fe565b5b828204905092915050565b612564816120f4565b82525050565b61257381611fc9565b82525050565b5f82825260208201905092915050565b5f61259382612356565b61259d8185612579565b93506125ad818560208601612360565b6125b681612388565b840191505092915050565b5f60e083015f8301516125d65f86018261255b565b5060208301516125e9602086018261256a565b5060408301516125fc6040860182612077565b50606083015161260f6060860182612077565b50608083015184820360808601526126278282612589565b91505060a083015184820360a08601526126418282612589565b91505060c083015184820360c086015261265b8282612589565b9150508091505092915050565b5f6040820190508181035f83015261268081856125c1565b905061268f6020830184611f76565b9392505050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6126d082612388565b810181811067ffffffffffffffff821117156126ef576126ee61269a565b5b80604052505050565b5f612701611d73565b905061270d82826126c7565b919050565b5f6040828403121561272757612726612696565b5b61273160406126f8565b90505f612740848285016122de565b5f830152506020612753848285016122de565b60208301525092915050565b5f6040828403121561277457612773611d7c565b5b5f61278184828501612712565b91505092915050565b5f60608201905061279d5f830186611e10565b6127aa6020830185611e10565b6127b76040830184611f10565b949350505050565b5f6080820190508181035f8301526127d781866125c1565b90506127e66020830185612086565b6127f36060830184611e10565b949350505050565b5f8151905061280981611fd2565b92915050565b6128188161221a565b8114612822575f80fd5b50565b5f815190506128338161280f565b92915050565b5f6080828403121561284e5761284d612696565b5b61285860606126f8565b90505f612867848285016127fb565b5f83015250602061287a84828501612825565b602083015250604061288e84828501612712565b60408301525092915050565b5f604082840312156128af576128ae612696565b5b6128b960406126f8565b90505f6128c8848285016122de565b5f8301525060206128db848285016122de565b60208301525092915050565b5f8060c083850312156128fd576128fc611d7c565b5b5f61290a85828601612839565b925050608061291b8582860161289a565b9150509250929050565b5f61292f82611e62565b915061293a83611e62565b92508282039050818111156129525761295161241a565b5b92915050565b5f60408201905061296b5f8301856120cc565b6129786020830184612103565b9392505050565b5f819050919050565b5f6129a261299d6129988461297f565b61222d565b611e62565b9050919050565b6129b281612988565b82525050565b5f6040820190506129cb5f830185611e10565b6129d860208301846129a9565b9392505050565b5f61ffff82169050919050565b5f8160f01b9050919050565b5f612a02826129ec565b9050919050565b612a1a612a15826129df565b6129f8565b82525050565b5f612a2b8284612a09565b60028201915081905092915050565b612a43816129df565b82525050565b5f602082019050612a5c5f830184612a3a565b92915050565b5f612a6c82612356565b612a7681856121d0565b9350612a86818560208601612360565b80840191505092915050565b5f612a9d8284612a62565b915081905092915050565b5f82825260208201905092915050565b7f746f55696e7431365f6f75744f66426f756e64730000000000000000000000005f82015250565b5f612aec601483612aa8565b9150612af782612ab8565b602082019050919050565b5f6020820190508181035f830152612b1981612ae0565b9050919050565b5f6fffffffffffffffffffffffffffffffff82169050919050565b5f8160801b9050919050565b5f612b5182612b3b565b9050919050565b612b69612b6482612b20565b612b47565b82525050565b5f612b7a8286612a09565b600282019150612b8a8285612b58565b601082019150612b9a8284612b58565b601082019150819050949350505050565b5f612bb68285612a09565b600282019150612bc68284612b58565b6010820191508190509392505050565b5f612be0826129df565b9150612beb836129df565b9250828201905061ffff811115612c0557612c0461241a565b5b92915050565b5f60ff82169050919050565b5f8160f81b9050919050565b5f612c2d82612c17565b9050919050565b612c45612c4082612c0b565b612c23565b82525050565b5f612c568288612a62565b9150612c628287612c34565b600182019150612c728286612a09565b600282019150612c828285612c34565b600182019150612c928284612a62565b91508190509695505050505050565b5f819050919050565b5f612cc4612cbf612cba84612ca1565b61222d565b612c0b565b9050919050565b612cd481612caa565b82525050565b5f604082019050612ced5f830185612ccb565b612cfa6020830184611f10565b9392505050560000000000000000000000003e6a2cbafd864e09e6dab9cf035a0abea32bc0bc0000000000000000000000000000000000000000000000000000000000000003000000000000000000000000581b26f362ad383f7b51ef8a165efa13dde398a4000000000000000000000000be0d08a85eebfcc6eda0a843521f7cbb1180d2e20000000000000000000000003d861d36745dcaac7e2ec345317a19003246abc90000000000000000000000000000000000000000000000000000000000007606000000000000000000000000397f939c3b91a74c321ea7129396492ba9cdce82000000000000000000000000c6b2be25d65760b826d0c852fd35f364250619c2