23 txs
12.5k calls
constructor
constructor(address _feed, bool _invert, uint256 _initialValue, address _admin, address _updater, address _gyroConfigManager, address _governanceRoleManager)
functions
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
defaultAdmin
viewfunction defaultAdmin() view returns (address)
defaultAdminDelay
viewfunction defaultAdminDelay() view returns (uint48)
defaultAdminDelayIncreaseWait
viewfunction defaultAdminDelayIncreaseWait() view returns (uint48)
feed
viewfunction feed() view returns (address)
getRate
viewfunction getRate() view returns (uint256)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
governanceRoleManager
viewfunction governanceRoleManager() view returns (address)
gyroConfigManager
viewfunction gyroConfigManager() view returns (address)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
invert
viewfunction invert() view returns (bool)
ourTokenIx
viewfunction ourTokenIx() view returns (uint8)
owner
viewfunction owner() view returns (address)
pendingDefaultAdmin
viewfunction pendingDefaultAdmin() view returns (address newAdmin, uint48 schedule)
pendingDefaultAdminDelay
viewfunction pendingDefaultAdminDelay() view returns (uint48 newDelay, uint48 schedule)
pool
viewfunction pool() view returns (address)
poolType
viewfunction poolType() view returns (uint8)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
UPDATER_ROLE
viewfunction UPDATER_ROLE() view returns (bytes32)
value
viewfunction value() view returns (uint256)
acceptDefaultAdminTransfer
nonpayablefunction acceptDefaultAdminTransfer()
beginDefaultAdminTransfer
nonpayablefunction beginDefaultAdminTransfer(address newAdmin)
cancelDefaultAdminTransfer
nonpayablefunction cancelDefaultAdminTransfer()
changeDefaultAdminDelay
nonpayablefunction changeDefaultAdminDelay(uint48 newDelay)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
rollbackDefaultAdminDelay
nonpayablefunction rollbackDefaultAdminDelay()
setPool
nonpayablefunction setPool(address _pool, uint8 _poolType)
updateToEdge
nonpayablefunction updateToEdge()
events
DefaultAdminDelayChangeCanceled
event DefaultAdminDelayChangeCanceled()
DefaultAdminDelayChangeScheduled
event DefaultAdminDelayChangeScheduled(uint48 newDelay, uint48 effectSchedule)
DefaultAdminTransferCanceled
event DefaultAdminTransferCanceled()
DefaultAdminTransferScheduled
event DefaultAdminTransferScheduled(address indexed newAdmin, uint48 acceptSchedule)
PoolSet
event PoolSet(address indexed pool, uint8 poolType, uint8 ourTokenIx)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
ValueUpdated
event ValueUpdated(uint256 value, uint8 indexed why)
errors
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlEnforcedDefaultAdminDelay
error AccessControlEnforcedDefaultAdminDelay(uint48 schedule)
AccessControlEnforcedDefaultAdminRules
error AccessControlEnforcedDefaultAdminRules()
AccessControlInvalidDefaultAdmin
error AccessControlInvalidDefaultAdmin(address defaultAdmin)
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
SafeCastOverflowedUintDowncast
error SafeCastOverflowedUintDowncast(uint8 bits, uint256 value)
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
creation bytecode
0x61010060405234801562000011575f80fd5b50604051620054d9380380620054d983398181016040528101906200003791906200064f565b868686868662015180825f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000b4575f6040517fc22c8022000000000000000000000000000000000000000000000000000000008152600401620000ab91906200070e565b60405180910390fd5b816001601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550620000ed5f801b826200023e60201b60201c565b5050505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146200015857620001567f555044415445525f524f4c450000000000000000000000000000000000000000826200023e60201b60201c565b505b8473ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505083151560a0811515815250505f8314620001ad5782600481905550620001c4565b620001bd6200031960201b60201c565b6004819055505b50505050508173ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1660e08173ffffffffffffffffffffffffffffffffffffffff16815250505050505050505062000834565b5f805f1b8303620002ff575f73ffffffffffffffffffffffffffffffffffffffff1662000270620003ba60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620002be576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8160025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b620003118383620003e260201b60201c565b905092915050565b5f60805173ffffffffffffffffffffffffffffffffffffffff1663679aefce6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000366573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200038c919062000729565b905060a05115620003b757620003b481670de0b6b3a7640000620004dd60201b90919060201c565b90505b90565b5f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f620003f583836200050e60201b60201c565b620004d35760015f808581526020019081526020015f205f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506200046f6200057160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050620004d7565b5f90505b92915050565b5f80670de0b6b3a764000084620004f5919062000786565b90508281620005059190620007fd565b91505092915050565b5f805f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f33905090565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620005a7826200057c565b9050919050565b620005b9816200059b565b8114620005c4575f80fd5b50565b5f81519050620005d781620005ae565b92915050565b5f8115159050919050565b620005f381620005dd565b8114620005fe575f80fd5b50565b5f815190506200061181620005e8565b92915050565b5f819050919050565b6200062b8162000617565b811462000636575f80fd5b50565b5f81519050620006498162000620565b92915050565b5f805f805f805f60e0888a0312156200066d576200066c62000578565b5b5f6200067c8a828b01620005c7565b97505060206200068f8a828b0162000601565b9650506040620006a28a828b0162000639565b9550506060620006b58a828b01620005c7565b9450506080620006c88a828b01620005c7565b93505060a0620006db8a828b01620005c7565b92505060c0620006ee8a828b01620005c7565b91505092959891949750929550565b62000708816200059b565b82525050565b5f602082019050620007235f830184620006fd565b92915050565b5f6020828403121562000741576200074062000578565b5b5f620007508482850162000639565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f620007928262000617565b91506200079f8362000617565b9250828202620007af8162000617565b91508282048414831517620007c957620007c862000759565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620008098262000617565b9150620008168362000617565b925082620008295762000828620007d0565b5b828204905092915050565b60805160a05160c05160e051614c40620008995f395f818161089f0152611cdc01525f81816105d80152818161179301528181611a7a01528181611b180152611bff01525f81816106210152612c6801525f81816107ee0152612bd90152614c405ff3fe608060405234801561000f575f80fd5b50600436106101d8575f3560e01c8063679aefce11610102578063b1dd61b6116100a0578063cefc14291161006f578063cefc1429146104ed578063cf6eefb7146104f7578063d547741f14610516578063d602b9fd14610532576101d8565b8063b1dd61b614610489578063b71061d1146104a7578063c724120f146104c5578063cc8463c8146104cf576101d8565b80638da5cb5b116100dc5780638da5cb5b146103fe57806391d148541461041c578063a1eda53c1461044c578063a217fddf1461046b576101d8565b8063679aefce146103a457806384ef8ffc146103c25780638754260c146103e0576101d8565b80632c9dbd351161017a5780633fa4f245116101495780633fa4f2451461033057806347e633801461034e578063634e93da1461036c578063649a5ec714610388576101d8565b80632c9dbd35146102be5780632f2ff15d146102da57806336568abe146102f657806337a7b7d814610312576101d8565b80630f6b1fe1116101b65780630f6b1fe11461023457806316f0115b146102525780631855dc4414610270578063248a9ca31461028e576101d8565b806301ffc9a7146101dc578063022d63fb1461020c5780630aa6220b1461022a575b5f80fd5b6101f660048036038101906101f19190613490565b61053c565b60405161020391906134d5565b60405180910390f35b6102146105b5565b604051610221919061350e565b60405180910390f35b6102326105bf565b005b61023c6105d6565b60405161024991906135a1565b60405180910390f35b61025a6105fa565b60405161026791906135da565b60405180910390f35b61027861061f565b60405161028591906134d5565b60405180910390f35b6102a860048036038101906102a39190613626565b610643565b6040516102b59190613660565b60405180910390f35b6102d860048036038101906102d391906136c6565b61065f565b005b6102f460048036038101906102ef9190613704565b610691565b005b610310600480360381019061030b9190613704565b6106da565b005b61031a6107ec565b6040516103279190613762565b60405180910390f35b610338610810565b6040516103459190613793565b60405180910390f35b610356610816565b6040516103639190613660565b60405180910390f35b610386600480360381019061038191906137ac565b61083a565b005b6103a2600480360381019061039d9190613801565b610853565b005b6103ac61086c565b6040516103b99190613793565b60405180910390f35b6103ca610875565b6040516103d791906135da565b60405180910390f35b6103e861089d565b6040516103f5919061384c565b60405180910390f35b6104066108c1565b60405161041391906135da565b60405180910390f35b61043660048036038101906104319190613704565b6108cf565b60405161044391906134d5565b60405180910390f35b610454610932565b604051610462929190613865565b60405180910390f35b610473610990565b6040516104809190613660565b60405180910390f35b610491610996565b60405161049e91906138ff565b60405180910390f35b6104af6109a9565b6040516104bc9190613933565b60405180910390f35b6104cd6109bc565b005b6104d7610b54565b6040516104e4919061350e565b60405180910390f35b6104f5610bc1565b005b6104ff610c56565b60405161050d92919061394c565b60405180910390f35b610530600480360381019061052b9190613704565b610c97565b005b61053a610ce0565b005b5f7f31498786000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806105ae57506105ad82610cf7565b5b9050919050565b5f62069780905090565b5f801b6105cb81610d70565b6105d3610d84565b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f805f8381526020019081526020015f20600101549050919050565b5f801b61066b81610d70565b5f6106768484610d90565b905061068b848461068684611194565b611251565b50505050565b5f801b82036106cc576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106d682826113ba565b5050565b5f801b8214801561071d57506106ee610875565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156107de575f8061072c610c56565b915091505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580610771575061076f816113dc565b155b806107825750610780816113f0565b155b156107c457806040517f19ca5ebb0000000000000000000000000000000000000000000000000000000081526004016107bb919061350e565b60405180910390fd5b600160146101000a81549065ffffffffffff021916905550505b6107e88282611403565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60045481565b7f555044415445525f524f4c45000000000000000000000000000000000000000081565b5f801b61084681610d70565b61084f8261147e565b5050565b5f801b61085f81610d70565b610868826114f8565b5050565b5f600454905090565b5f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f6108ca610875565b905090565b5f805f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f806002601a9054906101000a900465ffffffffffff169050610954816113dc565b80156109665750610964816113f0565b155b610971575f80610988565b600260149054906101000a900465ffffffffffff16815b915091509091565b5f801b81565b600360149054906101000a900460ff1681565b600360159054906101000a900460ff1681565b7f555044415445525f524f4c4500000000000000000000000000000000000000006109e681610d70565b5f73ffffffffffffffffffffffffffffffffffffffff1660035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610a75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6c906139cd565b60405180910390fd5b5f610ab060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360149054906101000a900460ff1661155e565b90505f610abf825f0151611788565b9050805f01518015610ad457505f8160200151145b610b0657610ae182611977565b610b05825f015160405180604001604052806001151581526020015f815250611a20565b5b5f80610b1184611d65565b91509150610b1f8282611f67565b825f01518015610b3257505f8360200151145b610b4d57610b3f846120d6565b610b4c845f015184611a20565b5b5050505050565b5f806002601a9054906101000a900465ffffffffffff169050610b76816113dc565b8015610b875750610b86816113f0565b5b610ba5576001601a9054906101000a900465ffffffffffff16610bbb565b600260149054906101000a900465ffffffffffff165b91505090565b5f610bca610c56565b5090508073ffffffffffffffffffffffffffffffffffffffff16610bec61215d565b73ffffffffffffffffffffffffffffffffffffffff1614610c4b57610c0f61215d565b6040517fc22c8022000000000000000000000000000000000000000000000000000000008152600401610c4291906135da565b60405180910390fd5b610c53612164565b50565b5f8060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160149054906101000a900465ffffffffffff16915091509091565b5f801b8203610cd2576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610cdc828261222f565b5050565b5f801b610cec81610d70565b610cf4612251565b50565b5f7f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610d695750610d688261225d565b5b9050919050565b610d8181610d7c61215d565b6122c6565b50565b610d8e5f80612317565b565b60605f6001811115610da557610da461388c565b5b826001811115610db857610db761388c565b5b03610f88575f839050600267ffffffffffffffff811115610ddc57610ddb6139eb565b5b604051908082528060200260200182016040528015610e0a5781602001602082028036833780820191505090505b5091508073ffffffffffffffffffffffffffffffffffffffff1663828a7c346040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e56573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e7a9190613a2c565b825f81518110610e8d57610e8c613a57565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff166362ced0926040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f10573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f349190613a2c565b82600181518110610f4857610f47613a57565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505061118e565b600180811115610f9b57610f9a61388c565b5b826001811115610fae57610fad61388c565b5b0361117e575f839050600267ffffffffffffffff811115610fd257610fd16139eb565b5b6040519080825280602002602001820160405280156110005781602001602082028036833780820191505090505b5091508073ffffffffffffffffffffffffffffffffffffffff1663828a7c346040518163ffffffff1660e01b8152600401602060405180830381865afa15801561104c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110709190613a2c565b825f8151811061108357611082613a57565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff166362ced0926040518163ffffffff1660e01b8152600401602060405180830381865afa158015611106573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061112a9190613a2c565b8260018151811061113e5761113d613a57565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505061118d565b5f61118c5761118b613a84565b5b5b5b92915050565b5f805f90505b82518160ff161015611210573073ffffffffffffffffffffffffffffffffffffffff16838260ff16815181106111d3576111d2613a57565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16036111ff578091505061124c565b8061120990613ade565b905061119a565b506040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124390613b76565b60405180910390fd5b919050565b5f73ffffffffffffffffffffffffffffffffffffffff1660035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d790613bde565b60405180910390fd5b8260035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600360146101000a81548160ff021916908360018111156113455761134461388c565b5b021790555080600360156101000a81548160ff021916908360ff1602179055508273ffffffffffffffffffffffffffffffffffffffff167fccd74cd713b8e75de035e0197901d2475669bcc87f55e343e3cbfb77cf224b4783836040516113ad929190613bfc565b60405180910390a2505050565b6113c382610643565b6113cc81610d70565b6113d68383612406565b50505050565b5f808265ffffffffffff1614159050919050565b5f428265ffffffffffff16109050919050565b61140b61215d565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461146f576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61147982826124cf565b505050565b5f611487610b54565b6114904261254f565b61149a9190613c23565b90506114a682826125a8565b8173ffffffffffffffffffffffffffffffffffffffff167f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed6826040516114ec919061350e565b60405180910390a25050565b5f61150282612659565b61150b4261254f565b6115159190613c23565b90506115218282612317565b7ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b8282604051611552929190613865565b60405180910390a15050565b611566613368565b5f8390505f8173ffffffffffffffffffffffffffffffffffffffff16638d928af86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115d89190613a2c565b90505f8273ffffffffffffffffffffffffffffffffffffffff166338fff2d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611624573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116489190613c70565b905082845f019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505084846020019060018111156116995761169861388c565b5b908160018111156116ad576116ac61388c565b5b8152505081846040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050808460600181815250508173ffffffffffffffffffffffffffffffffffffffff1663f94d4668826040518263ffffffff1660e01b815260040161172c9190613660565b5f60405180830381865afa158015611746573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061176e9190613ee3565b50856080018660a001829052829052505050505092915050565b6117906133db565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166379502c556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117fa573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061181e9190613fa6565b90505f61184b847f50524f544f434f4c5f535741505f4645455f50455243000000000000000000006126b7565b90508173ffffffffffffffffffffffffffffffffffffffff1663696eb375826040518263ffffffff1660e01b81526004016118869190613660565b602060405180830381865afa1580156118a1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118c59190613ffb565b15611960576001835f0190151590811515815250508173ffffffffffffffffffffffffffffffffffffffff1663bd02d0f5826040518263ffffffff1660e01b81526004016119139190613660565b602060405180830381865afa15801561192e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119529190614026565b836020018181525050611970565b5f835f0190151590811515815250505b5050919050565b5f61198582608001516126e9565b90505f611a06828460a00151855f015173ffffffffffffffffffffffffffffffffffffffff1663876f303b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119dd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a019190614026565b612809565b9050611a118361291a565b611a1b8184612a2f565b505050565b5f600167ffffffffffffffff811115611a3c57611a3b6139eb565b5b604051908082528060200260200182016040528015611a7557816020015b611a626133f5565b815260200190600190039081611a5a5790505b5090507f0000000000000000000000000000000000000000000000000000000000000000815f81518110611aac57611aab613a57565b5b60200260200101515f019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f815f81518110611afd57611afc613a57565b5b60200260200101516040018181525050815f015115611bfd577f0000000000000000000000000000000000000000000000000000000000000000506360b2cf7160e01b837f50524f544f434f4c5f535741505f4645455f50455243000000000000000000008460200151604051602401611b7993929190614051565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050815f81518110611be957611be8613a57565b5b602002602001015160200181905250611cda565b7f00000000000000000000000000000000000000000000000000000000000000005063ec1bf87560e01b837f50524f544f434f4c5f535741505f4645455f5045524300000000000000000000604051602401611c5a929190614086565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050815f81518110611cca57611cc9613a57565b5b6020026020010151602001819052505b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663b4662f14826040518263ffffffff1660e01b8152600401611d33919061424d565b5f604051808303815f87803b158015611d4a575f80fd5b505af1158015611d5c573d5f803e3d5ffd5b50505050505050565b5f805f6001811115611d7a57611d7961388c565b5b83602001516001811115611d9157611d9061388c565b5b03611e1e575f835f015173ffffffffffffffffffffffffffffffffffffffff16637be219a26040518163ffffffff1660e01b81526004016101c060405180830381865afa158015611de4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e08919061442d565b509050805f015181602001519250925050611f62565b600180811115611e3157611e3061388c565b5b83602001516001811115611e4857611e4761388c565b5b03611f4d575f835f015173ffffffffffffffffffffffffffffffffffffffff1663707dcd1e6040518163ffffffff1660e01b81526004016040805180830381865afa158015611e99573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ebd919061451a565b9050611f00815f60028110611ed557611ed4613a57565b5b6020020151825f60028110611eed57611eec613a57565b5b6020020151612ba990919063ffffffff16565b611f4382600160028110611f1757611f16613a57565b5b602002015183600160028110611f3057611f2f613a57565b5b6020020151612ba990919063ffffffff16565b9250925050611f62565b5f611f5b57611f5a613a84565b5b5f80915091505b915091565b5f611f70612bd6565b90505f6001600360159054906101000a900460ff1660ff1614905080612032575f611fa48584612cad90919063ffffffff16565b90505f611fba8585612cad90919063ffffffff16565b9050816004541115611fd557611fd0825f612cda565b61202b565b806004541015611fef57611fea816001612cda565b61202a565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120219061458f565b60405180910390fd5b5b50506120d0565b5f6120468584612ba990919063ffffffff16565b90505f61205c8585612ba990919063ffffffff16565b905081600454101561207757612072825f612cda565b6120cd565b8060045411156120915761208c816001612cda565b6120cc565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c39061458f565b60405180910390fd5b5b50505b50505050565b61215a815f015173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161211591906135da565b602060405180830381865afa158015612130573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121549190614026565b82612d2f565b50565b5f33905090565b5f8061216e610c56565b9150915061217b816113dc565b158061218d575061218b816113f0565b155b156121cf57806040517f19ca5ebb0000000000000000000000000000000000000000000000000000000081526004016121c6919061350e565b60405180910390fd5b6121e25f801b6121dd610875565b6124cf565b506121ef5f801b83612406565b5060015f6101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600160146101000a81549065ffffffffffff02191690555050565b61223882610643565b61224181610d70565b61224b83836124cf565b50505050565b61225b5f806125a8565b565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6122d082826108cf565b6123135780826040517fe2517d3f00000000000000000000000000000000000000000000000000000000815260040161230a929190614086565b60405180910390fd5b5050565b5f6002601a9054906101000a900465ffffffffffff169050612338816113dc565b156123b757612346816113f0565b1561238957600260149054906101000a900465ffffffffffff166001601a6101000a81548165ffffffffffff021916908365ffffffffffff1602179055506123b6565b7f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec560405160405180910390a15b5b82600260146101000a81548165ffffffffffff021916908365ffffffffffff160217905550816002601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550505050565b5f805f1b83036124bd575f73ffffffffffffffffffffffffffffffffffffffff1661242f610875565b73ffffffffffffffffffffffffffffffffffffffff161461247c576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8160025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b6124c78383612e89565b905092915050565b5f805f1b8314801561251357506124e4610875565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561253d5760025f6101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b6125478383612f72565b905092915050565b5f65ffffffffffff80168211156125a0576030826040517f6dfcc6500000000000000000000000000000000000000000000000000000000081526004016125979291906145e6565b60405180910390fd5b819050919050565b5f6125b1610c56565b9150508260015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160146101000a81548165ffffffffffff021916908365ffffffffffff160217905550612622816113dc565b15612654577f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a960510960405160405180910390a15b505050565b5f80612663610b54565b90508065ffffffffffff168365ffffffffffff161161268d578281612688919061460d565b6126af565b6126ae8365ffffffffffff166126a16105b5565b65ffffffffffff1661305b565b5b915050919050565b5f81836040516020016126cb929190614646565b60405160208183030381529060405280519060200120905092915050565b6060815167ffffffffffffffff811115612706576127056139eb565b5b6040519080825280602002602001820160405280156127345781602001602082028036833780820191505090505b5090505f5b8251811015612803575f83828151811061275657612755613a57565b5b602002602001015190508073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161279991906135da565b602060405180830381865afa1580156127b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127d89190614026565b8383815181106127eb576127ea613a57565b5b60200260200101818152505050806001019050612739565b50919050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90505f5b84518110156128c1575f84828151811061284c5761284b613a57565b5b602002602001015111156128b6575f84828151811061286e5761286d613a57565b5b602002602001015186838151811061288957612888613a57565b5b60200260200101518561289c919061466d565b6128a691906146db565b9050828110156128b4578092505b505b80600101905061282f565b506002816128cf91906146db565b90505f8103612913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161290a90614755565b60405180910390fd5b9392505050565b5f5b816080015151811015612a2b575f8260800151828151811061294157612940613a57565b5b602002602001015190505f8173ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e3086604001516040518363ffffffff1660e01b815260040161298b929190614773565b602060405180830381865afa1580156129a6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129ca9190614026565b03612a1f57612a1e83604001517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8373ffffffffffffffffffffffffffffffffffffffff166130719092919063ffffffff16565b5b5080600101905061291c565b5050565b5f81608001515167ffffffffffffffff811115612a4f57612a4e6139eb565b5b604051908082528060200260200182016040528015612a7d5781602001602082028036833780820191505090505b5090505f5b826080015151811015612ada577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff828281518110612ac357612ac2613a57565b5b602002602001018181525050806001019050612a82565b505f600384604051602001612af09291906147e0565b6040516020818303038152906040529050826040015173ffffffffffffffffffffffffffffffffffffffff1663b95cac28846060015130306040518060800160405280612b408a6080015161317e565b81526020018881526020018781526020015f15158152506040518563ffffffff1660e01b8152600401612b7694939291906149f4565b5f604051808303815f87803b158015612b8d575f80fd5b505af1158015612b9f573d5f803e3d5ffd5b5050505050505050565b5f808284612bb7919061466d565b9050670de0b6b3a764000081612bcd91906146db565b91505092915050565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663679aefce6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c40573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c649190614026565b90507f000000000000000000000000000000000000000000000000000000000000000015612caa57612ca781670de0b6b3a7640000612cad90919063ffffffff16565b90505b90565b5f80670de0b6b3a764000084612cc3919061466d565b90508281612cd191906146db565b91505092915050565b81600481905550806001811115612cf457612cf361388c565b5b7f40ce3c3e059a5994a81170ca3a882c3fb0dd4815695f91d7ccaca797ab97962983604051612d239190613793565b60405180910390a25050565b5f81608001515167ffffffffffffffff811115612d4f57612d4e6139eb565b5b604051908082528060200260200182016040528015612d7d5781602001602082028036833780820191505090505b5090505f5b826080015151811015612dba575f828281518110612da357612da2613a57565b5b602002602001018181525050806001019050612d82565b505f600184604051602001612dd0929190614a84565b6040516020818303038152906040529050826040015173ffffffffffffffffffffffffffffffffffffffff16638bdb3913846060015130306040518060800160405280612e208a6080015161317e565b81526020018881526020018781526020015f15158152506040518563ffffffff1660e01b8152600401612e569493929190614b39565b5f604051808303815f87803b158015612e6d575f80fd5b505af1158015612e7f573d5f803e3d5ffd5b5050505050505050565b5f612e9483836108cf565b612f685760015f808581526020019081526020015f205f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550612f0561215d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050612f6c565b5f90505b92915050565b5f612f7d83836108cf565b15613051575f805f8581526020019081526020015f205f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550612fee61215d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050613055565b5f90505b92915050565b5f6130698284108484613250565b905092915050565b5f8373ffffffffffffffffffffffffffffffffffffffff1663095ea7b384846040516024016130a1929190614b83565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506130ef8482613269565b6131785761316d848573ffffffffffffffffffffffffffffffffffffffff1663095ea7b3865f604051602401613126929190614be3565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506132c2565b61317784826132c2565b5b50505050565b6060815167ffffffffffffffff81111561319b5761319a6139eb565b5b6040519080825280602002602001820160405280156131c95781602001602082028036833780820191505090505b5090505f5b825181101561324a578281815181106131ea576131e9613a57565b5b602002602001015182828151811061320557613204613a57565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508060010190506131ce565b50919050565b5f61325a8461335d565b82841802821890509392505050565b5f805f8060205f8651602088015f8a5af192503d91505f5190508280156132b757505f821461329b57600181146132b6565b5f8673ffffffffffffffffffffffffffffffffffffffff163b115b5b935050505092915050565b5f8060205f8451602086015f885af1806132e1576040513d5f823e3d81fd5b3d92505f519150505f82146132fa576001811415613315565b5f8473ffffffffffffffffffffffffffffffffffffffff163b145b1561335757836040517f5274afe700000000000000000000000000000000000000000000000000000000815260040161334e91906135da565b60405180910390fd5b50505050565b5f8115159050919050565b6040518060c001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f60018111156133a2576133a161388c565b5b81526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f801916815260200160608152602001606081525090565b60405180604001604052805f151581526020015f81525090565b60405180606001604052805f73ffffffffffffffffffffffffffffffffffffffff168152602001606081526020015f81525090565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61346f8161343b565b8114613479575f80fd5b50565b5f8135905061348a81613466565b92915050565b5f602082840312156134a5576134a4613433565b5b5f6134b28482850161347c565b91505092915050565b5f8115159050919050565b6134cf816134bb565b82525050565b5f6020820190506134e85f8301846134c6565b92915050565b5f65ffffffffffff82169050919050565b613508816134ee565b82525050565b5f6020820190506135215f8301846134ff565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f61356961356461355f84613527565b613546565b613527565b9050919050565b5f61357a8261354f565b9050919050565b5f61358b82613570565b9050919050565b61359b81613581565b82525050565b5f6020820190506135b45f830184613592565b92915050565b5f6135c482613527565b9050919050565b6135d4816135ba565b82525050565b5f6020820190506135ed5f8301846135cb565b92915050565b5f819050919050565b613605816135f3565b811461360f575f80fd5b50565b5f81359050613620816135fc565b92915050565b5f6020828403121561363b5761363a613433565b5b5f61364884828501613612565b91505092915050565b61365a816135f3565b82525050565b5f6020820190506136735f830184613651565b92915050565b613682816135ba565b811461368c575f80fd5b50565b5f8135905061369d81613679565b92915050565b600281106136af575f80fd5b50565b5f813590506136c0816136a3565b92915050565b5f80604083850312156136dc576136db613433565b5b5f6136e98582860161368f565b92505060206136fa858286016136b2565b9150509250929050565b5f806040838503121561371a57613719613433565b5b5f61372785828601613612565b92505060206137388582860161368f565b9150509250929050565b5f61374c82613570565b9050919050565b61375c81613742565b82525050565b5f6020820190506137755f830184613753565b92915050565b5f819050919050565b61378d8161377b565b82525050565b5f6020820190506137a65f830184613784565b92915050565b5f602082840312156137c1576137c0613433565b5b5f6137ce8482850161368f565b91505092915050565b6137e0816134ee565b81146137ea575f80fd5b50565b5f813590506137fb816137d7565b92915050565b5f6020828403121561381657613815613433565b5b5f613823848285016137ed565b91505092915050565b5f61383682613570565b9050919050565b6138468161382c565b82525050565b5f60208201905061385f5f83018461383d565b92915050565b5f6040820190506138785f8301856134ff565b61388560208301846134ff565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b600281106138ca576138c961388c565b5b50565b5f8190506138da826138b9565b919050565b5f6138e9826138cd565b9050919050565b6138f9816138df565b82525050565b5f6020820190506139125f8301846138f0565b92915050565b5f60ff82169050919050565b61392d81613918565b82525050565b5f6020820190506139465f830184613924565b92915050565b5f60408201905061395f5f8301856135cb565b61396c60208301846134ff565b9392505050565b5f82825260208201905092915050565b7f506f6f6c206e6f742073657400000000000000000000000000000000000000005f82015250565b5f6139b7600c83613973565b91506139c282613983565b602082019050919050565b5f6020820190508181035f8301526139e4816139ab565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f81519050613a2681613679565b92915050565b5f60208284031215613a4157613a40613433565b5b5f613a4e84828501613a18565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613ae882613918565b915060ff8203613afb57613afa613ab1565b5b600182019050919050565b7f5261746570726f7669646572206e6f7420636f6e6669677572656420696e20705f8201527f6f6f6c2e00000000000000000000000000000000000000000000000000000000602082015250565b5f613b60602483613973565b9150613b6b82613b06565b604082019050919050565b5f6020820190508181035f830152613b8d81613b54565b9050919050565b7f506f6f6c20616c726561647920736574000000000000000000000000000000005f82015250565b5f613bc8601083613973565b9150613bd382613b94565b602082019050919050565b5f6020820190508181035f830152613bf581613bbc565b9050919050565b5f604082019050613c0f5f8301856138f0565b613c1c6020830184613924565b9392505050565b5f613c2d826134ee565b9150613c38836134ee565b9250828201905065ffffffffffff811115613c5657613c55613ab1565b5b92915050565b5f81519050613c6a816135fc565b92915050565b5f60208284031215613c8557613c84613433565b5b5f613c9284828501613c5c565b91505092915050565b5f80fd5b5f601f19601f8301169050919050565b613cb882613c9f565b810181811067ffffffffffffffff82111715613cd757613cd66139eb565b5b80604052505050565b5f613ce961342a565b9050613cf58282613caf565b919050565b5f67ffffffffffffffff821115613d1457613d136139eb565b5b602082029050602081019050919050565b5f80fd5b5f613d33826135ba565b9050919050565b613d4381613d29565b8114613d4d575f80fd5b50565b5f81519050613d5e81613d3a565b92915050565b5f613d76613d7184613cfa565b613ce0565b90508083825260208201905060208402830185811115613d9957613d98613d25565b5b835b81811015613dc25780613dae8882613d50565b845260208401935050602081019050613d9b565b5050509392505050565b5f82601f830112613de057613ddf613c9b565b5b8151613df0848260208601613d64565b91505092915050565b5f67ffffffffffffffff821115613e1357613e126139eb565b5b602082029050602081019050919050565b613e2d8161377b565b8114613e37575f80fd5b50565b5f81519050613e4881613e24565b92915050565b5f613e60613e5b84613df9565b613ce0565b90508083825260208201905060208402830185811115613e8357613e82613d25565b5b835b81811015613eac5780613e988882613e3a565b845260208401935050602081019050613e85565b5050509392505050565b5f82601f830112613eca57613ec9613c9b565b5b8151613eda848260208601613e4e565b91505092915050565b5f805f60608486031215613efa57613ef9613433565b5b5f84015167ffffffffffffffff811115613f1757613f16613437565b5b613f2386828701613dcc565b935050602084015167ffffffffffffffff811115613f4457613f43613437565b5b613f5086828701613eb6565b9250506040613f6186828701613e3a565b9150509250925092565b5f613f75826135ba565b9050919050565b613f8581613f6b565b8114613f8f575f80fd5b50565b5f81519050613fa081613f7c565b92915050565b5f60208284031215613fbb57613fba613433565b5b5f613fc884828501613f92565b91505092915050565b613fda816134bb565b8114613fe4575f80fd5b50565b5f81519050613ff581613fd1565b92915050565b5f602082840312156140105761400f613433565b5b5f61401d84828501613fe7565b91505092915050565b5f6020828403121561403b5761403a613433565b5b5f61404884828501613e3a565b91505092915050565b5f6060820190506140645f8301866135cb565b6140716020830185613651565b61407e6040830184613784565b949350505050565b5f6040820190506140995f8301856135cb565b6140a66020830184613651565b9392505050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6140df816135ba565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561411c578082015181840152602081019050614101565b5f8484015250505050565b5f614131826140e5565b61413b81856140ef565b935061414b8185602086016140ff565b61415481613c9f565b840191505092915050565b6141688161377b565b82525050565b5f606083015f8301516141835f8601826140d6565b506020830151848203602086015261419b8282614127565b91505060408301516141b0604086018261415f565b508091505092915050565b5f6141c6838361416e565b905092915050565b5f602082019050919050565b5f6141e4826140ad565b6141ee81856140b7565b935083602082028501614200856140c7565b805f5b8581101561423b578484038952815161421c85826141bb565b9450614227836141ce565b925060208a01995050600181019050614203565b50829750879550505050505092915050565b5f6020820190508181035f83015261426581846141da565b905092915050565b5f80fd5b5f819050919050565b61428381614271565b811461428d575f80fd5b50565b5f8151905061429e8161427a565b92915050565b5f60a082840312156142b9576142b861426d565b5b6142c360a0613ce0565b90505f6142d284828501614290565b5f8301525060206142e584828501614290565b60208301525060406142f984828501614290565b604083015250606061430d84828501614290565b606083015250608061432184828501614290565b60808301525092915050565b5f604082840312156143425761434161426d565b5b61434c6040613ce0565b90505f61435b84828501614290565b5f83015250602061436e84828501614290565b60208301525092915050565b5f61012082840312156143905761438f61426d565b5b61439a60e0613ce0565b90505f6143a98482850161432d565b5f8301525060406143bc8482850161432d565b60208301525060806143d084828501614290565b60408301525060a06143e484828501614290565b60608301525060c06143f884828501614290565b60808301525060e061440c84828501614290565b60a08301525061010061442184828501614290565b60c08301525092915050565b5f806101c0838503121561444457614443613433565b5b5f614451858286016142a4565b92505060a06144628582860161437a565b9150509250929050565b5f67ffffffffffffffff821115614486576144856139eb565b5b602082029050919050565b5f6144a361449e8461446c565b613ce0565b905080602084028301858111156144bd576144bc613d25565b5b835b818110156144e657806144d28882613e3a565b8452602084019350506020810190506144bf565b5050509392505050565b5f82601f83011261450457614503613c9b565b5b6002614511848285614491565b91505092915050565b5f6040828403121561452f5761452e613433565b5b5f61453c848285016144f0565b91505092915050565b7f506f6f6c206e6f74206f7574206f662072616e676500000000000000000000005f82015250565b5f614579601583613973565b915061458482614545565b602082019050919050565b5f6020820190508181035f8301526145a68161456d565b9050919050565b5f819050919050565b5f6145d06145cb6145c6846145ad565b613546565b613918565b9050919050565b6145e0816145b6565b82525050565b5f6040820190506145f95f8301856145d7565b6146066020830184613784565b9392505050565b5f614617826134ee565b9150614622836134ee565b9250828203905065ffffffffffff8111156146405761463f613ab1565b5b92915050565b5f6040820190506146595f830185613651565b61466660208301846135cb565b9392505050565b5f6146778261377b565b91506146828361377b565b92508282026146908161377b565b915082820484148315176146a7576146a6613ab1565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6146e58261377b565b91506146f08361377b565b925082614700576146ff6146ae565b5b828204905092915050565b7f4e6f7420656e6f756768206173736574732e00000000000000000000000000005f82015250565b5f61473f601283613973565b915061474a8261470b565b602082019050919050565b5f6020820190508181035f83015261476c81614733565b9050919050565b5f6040820190506147865f8301856135cb565b61479360208301846135cb565b9392505050565b600481106147ab576147aa61388c565b5b50565b5f8190506147bb8261479a565b919050565b5f6147ca826147ae565b9050919050565b6147da816147c0565b82525050565b5f6040820190506147f35f8301856147d1565b6148006020830184613784565b9392505050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f61483a82613570565b9050919050565b61484a81614830565b82525050565b5f61485b8383614841565b60208301905092915050565b5f602082019050919050565b5f61487d82614807565b6148878185614811565b935061489283614821565b805f5b838110156148c25781516148a98882614850565b97506148b483614867565b925050600181019050614895565b5085935050505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f614903838361415f565b60208301905092915050565b5f602082019050919050565b5f614925826148cf565b61492f81856148d9565b935061493a836148e9565b805f5b8381101561496a57815161495188826148f8565b975061495c8361490f565b92505060018101905061493d565b5085935050505092915050565b614980816134bb565b82525050565b5f608083015f8301518482035f8601526149a08282614873565b915050602083015184820360208601526149ba828261491b565b915050604083015184820360408601526149d48282614127565b91505060608301516149e96060860182614977565b508091505092915050565b5f608082019050614a075f830187613651565b614a1460208301866135cb565b614a2160408301856135cb565b8181036060830152614a338184614986565b905095945050505050565b60038110614a4f57614a4e61388c565b5b50565b5f819050614a5f82614a3e565b919050565b5f614a6e82614a52565b9050919050565b614a7e81614a64565b82525050565b5f604082019050614a975f830185614a75565b614aa46020830184613784565b9392505050565b5f614ab582613527565b9050919050565b614ac581614aab565b82525050565b5f608083015f8301518482035f860152614ae58282614873565b91505060208301518482036020860152614aff828261491b565b91505060408301518482036040860152614b198282614127565b9150506060830151614b2e6060860182614977565b508091505092915050565b5f608082019050614b4c5f830187613651565b614b5960208301866135cb565b614b666040830185614abc565b8181036060830152614b788184614acb565b905095945050505050565b5f604082019050614b965f8301856135cb565b614ba36020830184613784565b9392505050565b5f819050919050565b5f614bcd614bc8614bc384614baa565b613546565b61377b565b9050919050565b614bdd81614bb3565b82525050565b5f604082019050614bf65f8301856135cb565b614c036020830184614bd4565b939250505056fea264697066735822122059347a4f442a2fed8c658c22ee669b6d5983d98313905b9637f09a63b4caf46b64736f6c6343000818003300000000000000000000000063e3ceb3aa1bdbd74e8971249da041964322e150000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a2b93a5e0281557428cbd7ed75aa76dadd6c6ab0000000000000000000000008bc920001949589258557412a32f8d297a74f244000000000000000000000000cb5830e6dbad1430d6902a846f1b37d4cfe49b310000000000000000000000000b39c433f591f4faba2a3e5b2d55ba05dbdea392