[ { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" }, { "internalType": "address", "name": "_owner", "type": "address" }, { "internalType": "address", "name": "_asset", "type": "address" }, { "internalType": "bool", "name": "_isUSDB", "type": "bool" }, { "internalType": "address", "name": "_gameConfigurationManager", "type": "address" }, { "internalType": "address", "name": "_liquidityPoolRouter", "type": "address" }, { "internalType": "address", "name": "_blast", "type": "address" }, { "internalType": "address", "name": "_blastPoints", "type": "address" }, { "internalType": "address", "name": "_blastPointsOperator", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" } ], "name": "AddressEmptyCode", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "AddressInsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "allowance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientAllowance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC20InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC20InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC20InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" } ], "name": "ERC20InvalidSpender", "type": "error" }, { "inputs": [], "name": "ERC20TransferFail", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "uint256", "name": "assets", "type": "uint256" }, { "internalType": "uint256", "name": "max", "type": "uint256" } ], "name": "ERC4626ExceededMaxDeposit", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "uint256", "name": "shares", "type": "uint256" }, { "internalType": "uint256", "name": "max", "type": "uint256" } ], "name": "ERC4626ExceededMaxMint", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "shares", "type": "uint256" }, { "internalType": "uint256", "name": "max", "type": "uint256" } ], "name": "ERC4626ExceededMaxRedeem", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "assets", "type": "uint256" }, { "internalType": "uint256", "name": "max", "type": "uint256" } ], "name": "ERC4626ExceededMaxWithdraw", "type": "error" }, { "inputs": [], "name": "FailedInnerCall", "type": "error" }, { "inputs": [], "name": "IsPaused", "type": "error" }, { "inputs": [], "name": "LiquidityPool__NotAuthorized", "type": "error" }, { "inputs": [], "name": "LiquidityPool__UnsupportedOperation", "type": "error" }, { "inputs": [], "name": "MathOverflowedMulDiv", "type": "error" }, { "inputs": [], "name": "NoOngoingTransferInProgress", "type": "error" }, { "inputs": [], "name": "NotAContract", "type": "error" }, { "inputs": [], "name": "NotOwner", "type": "error" }, { "inputs": [], "name": "NotPaused", "type": "error" }, { "inputs": [], "name": "ReentrancyFail", "type": "error" }, { "inputs": [], "name": "RenouncementNotInProgress", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "SafeERC20FailedOperation", "type": "error" }, { "inputs": [], "name": "TransferAlreadyInProgress", "type": "error" }, { "inputs": [], "name": "TransferNotInProgress", "type": "error" }, { "inputs": [], "name": "WrongPotentialOwner", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [], "name": "CancelOwnershipTransfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "assets", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "shares", "type": "uint256" } ], "name": "Deposit", "type": "event" }, { "anonymous": false, "inputs": [], "name": "InitiateOwnershipRenouncement", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": false, "internalType": "address", "name": "potentialOwner", "type": "address" } ], "name": "InitiateOwnershipTransfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "game", "type": "address" }, { "indexed": false, "internalType": "address", "name": "receiver", "type": "address" }, { "indexed": false, "internalType": "address", "name": "currency", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "shortfall", "type": "uint256" } ], "name": "InsufficientFundsForPayout", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "NewOwner", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "game", "type": "address" }, { "indexed": false, "internalType": "address", "name": "receiver", "type": "address" }, { "indexed": false, "internalType": "address", "name": "currency", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "PayoutTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "game", "type": "address" }, { "indexed": false, "internalType": "address", "name": "protocolFeeRecipient", "type": "address" }, { "indexed": false, "internalType": "address", "name": "currency", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "ProtocolFeeTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": true, "internalType": "address", "name": "receiver", "type": "address" }, { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "assets", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "shares", "type": "uint256" } ], "name": "Withdraw", "type": "event" }, { "inputs": [], "name": "GAME_CONFIGURATION_MANAGER", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "LIQUIDITY_POOL_ROUTER", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "asset", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "cancelOwnershipTransfer", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "claimYield", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "confirmOwnershipRenouncement", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "confirmOwnershipTransfer", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "shares", "type": "uint256" } ], "name": "convertToAssets", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "assets", "type": "uint256" } ], "name": "convertToShares", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "assets", "type": "uint256" }, { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "deposit", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "initiateOwnershipRenouncement", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newPotentialOwner", "type": "address" } ], "name": "initiateOwnershipTransfer", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "maxDeposit", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "maxMint", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "maxRedeem", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "maxWithdraw", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "mint", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ownershipStatus", "outputs": [ { "internalType": "enum IOwnableTwoSteps.Status", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "potentialOwner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "assets", "type": "uint256" } ], "name": "previewDeposit", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "shares", "type": "uint256" } ], "name": "previewMint", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "shares", "type": "uint256" } ], "name": "previewRedeem", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "assets", "type": "uint256" } ], "name": "previewWithdraw", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "shares", "type": "uint256" }, { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "redeem", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "togglePaused", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "totalAssets", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "game", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "transferPayoutToPlayer", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "game", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "address", "name": "protocolFeeRecipient", "type": "address" } ], "name": "transferProtocolFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "withdraw", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "pure", "type": "function" } ]
6101008060405234620003c0576000906200319d8038038091620000248285620006c8565b8339810161014082820312620003f15781516001600160401b0381116200069a57816200005391840162000708565b602083015190916001600160401b03821162000696576200007691840162000708565b90620000856040840162000773565b92620000946060820162000773565b9360808201519384151585036200069257620000b360a0840162000773565b91620000c260c0850162000773565b90620000d160e0860162000773565b92620000f0610120620000e8610100890162000773565b970162000773565b875190976001600160401b0382116200067e57600354600181811c9116801562000673575b60208210146200065f579081601f849311620005ed575b50602090601f831160011462000560578d9262000554575b50508160011b916000199060031b1c1916176003555b8051906001600160401b0382116200054057600454600181811c9116801562000535575b602082101462000521579081601f8d98979695949311620004c6575b50602090601f83116001146200043857879190836200042c575b50508160011b916000199060031b1c1916176004555b620001de6001600160a01b038a1662000788565b901562000423575b60a0526001600160a01b03898116608052600580546001600160a01b0319169290911691821790556040518181529093907f3edd90e7770f06fafde38004653b33870066c33bfc923ff6102acd601f85dfbc90602090a1600160075560c05260e0526001600160a01b0316803b15620003f15760648392604051948593849263c8992e6160e01b8452600260048501526001602485015260448401525af18015620004185762000400575b5084916001600160a01b0390911690813b15620003f1576040516336b91f2b60e01b81526001600160a01b0390911660048201529082908290602490829084905af18015620003f557620003d9575b505062000354575b60405161295290816200084b82396080518181816105990152818161088d01528181610c400152818161116401528181611424015281816116ef01526120cc015260a05181611868015260c05181818161107e01526124bf015260e05181818161168101526126960152f35b604051631a33757d60e01b81526002600482015291906020908390602490829085906001600160a01b03165af1908115620003cd575062000397575b80620002e8565b602090813d8311620003c5575b620003b08183620006c8565b81010312620003c0573862000390565b600080fd5b503d620003a4565b604051903d90823e3d90fd5b620003e4906200069e565b620003f1578238620002e0565b8280fd5b6040513d84823e3d90fd5b6200040f90959192956200069e565b93903862000291565b6040513d88823e3d90fd5b506012620001e6565b015190503880620001b4565b600488527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b9190885b601f1985168110620004aa575090839291600194601f1981161062000490575b505050811b01600455620001ca565b015160001960f88460031b161c1916905538808062000481565b8183015184558e99506001909301926020928301920162000461565b909192939495966004905260208c20601f840160051c81016020851062000519575b908d98979695949392915b601f830160051c820181106200050b5750506200019a565b9889558d98600101620004f3565b5080620004e8565b634e487b7160e01b8c52602260045260248cfd5b90607f16906200017e565b634e487b7160e01b8b52604160045260248bfd5b01519050388062000144565b60038e528d93507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b91905b601f1984168510620005d1576001945083601f19811610620005b7575b505050811b016003556200015a565b015160001960f88460031b161c19169055388080620005a8565b818101518355602094850194600190930192909101906200058b565b60038e529091507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f840160051c81016020851062000657575b84939291908f5b601f840160051c8301821062000648575050506200012c565b81558594506001018f6200062f565b508062000628565b634e487b7160e01b8d52602260045260248dfd5b90607f169062000115565b634e487b7160e01b8c52604160045260248cfd5b8680fd5b8480fd5b8380fd5b6001600160401b038111620006b257604052565b634e487b7160e01b600052604160045260246000fd5b601f909101601f19168101906001600160401b03821190821017620006b257604052565b6001600160401b038111620006b257601f01601f191660200190565b9080601f83011215620003c0578151906200072382620006ec565b92620007336040519485620006c8565b82845260209160208483010111620003c05760005b8381106200075f5750505060206000918301015290565b818101830151858201840152820162000748565b51906001600160a01b0382168203620003c057565b6040805163313ce56760e01b60208201908152600482529293929181016001600160401b03811182821017620006b2576040525160009384928392916001600160a01b03165afa3d1562000841573d90620007e382620006ec565b91620007f36040519384620006c8565b82523d84602084013e5b8062000834575b6200080f575b508190565b602081805181010312620003f1576020015160ff81116200080a576001925060ff1690565b5060208151101562000804565b606090620007fd56fe6040608081526004908136101561001557600080fd5b600090813560e01c92836301e1d11414611d8757836306fdde0314611c3d57836307a2d13a146113e0578363095ea7b314611b3a5783630a28a47714611ad757836318160ddd14611a9b57836323452b9c1461199e57836323b872dd146119445783632bb5a9e6146118cb578363313ce5671461183357836336566f061461171357836338d52e0f146116a55783633e041d0f146116375783633e56753914611544578363402d267d146103235783634376d26c146113e55783634cdad506146113e05783635b6ac011146112db5783635c975abb1461129a5783636e553f65146110a25783636f64c4c41461103457836370a0823114610ff65783637200b82914610e995783637762df2514610e475783637d1d27f214610be95783638da5cb5b14610b9757836394bf804d14610b3857836395d89b41146109de578363999927df14610832578363a9059cbb146107e4578363b3d7f6b914610729578363b460af94146106ed578363ba08765214610460578363c0b6f5611461032857508263c63d75b614610323578263c6e6f592146101dd578263ce96cb77146102c3578263d905777e14610258578263dd62ed3e146101e257505063ef8b30f7146101dd57600080fd5b611fd7565b3461025457807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610254578060209261021c611e70565b610224611e93565b73ffffffffffffffffffffffffffffffffffffffff91821683526001865283832091168252845220549051908152f35b5080fd5b346102545760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610254576020906102bc610295611e70565b73ffffffffffffffffffffffffffffffffffffffff16600052600060205260406000205490565b9051908152f35b346102545760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610254576102bc8160209373ffffffffffffffffffffffffffffffffffffffff610316611e70565b168152808552205461213b565b611eb6565b3461045c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261045c5761035f611e70565b6103676121c7565b6006549160ff8360a01c166003811015610430576104095750740100000000000000000000000000000000000000007fb86c75c9bffca616b2d314cc914f7c3f1d174255b16b941c3f3ededee276d5ef939273ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffff00000000000000000000000000000000000000000093169283911617176006558151903382526020820152a180f35b83517f74ed79ae000000000000000000000000000000000000000000000000000000008152fd5b6024866021847f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b8280fd5b9250346102545761047036611f77565b93919061047b61267f565b73ffffffffffffffffffffffffffffffffffffffff90818616938481526020978189528682205480861161069257506104b38561213b565b97863303610682575b861561065357868352828a5287832054918683106105f45750508490868352828a5203868220558360025403600255847fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef898851878152a384517fa9059cbb000000000000000000000000000000000000000000000000000000008882015273ffffffffffffffffffffffffffffffffffffffff82166024820152604481018790526105bd9061059781606481015b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282612013565b7f00000000000000000000000000000000000000000000000000000000000000006127e3565b8451928684528784015216907ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db843392a451908152f35b61064f87848b519485947fe450d38c000000000000000000000000000000000000000000000000000000008652850160409194939273ffffffffffffffffffffffffffffffffffffffff606083019616825260208201520152565b0390fd5b506024918751917f96c6fd1e000000000000000000000000000000000000000000000000000000008352820152fd5b61068d863383612212565b6104bc565b87517fb94abeec00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a169281019283526020830187905260408301919091529081906060010390fd5b913461072657506106fd36611f77565b505050517ffacc2376000000000000000000000000000000000000000000000000000000008152fd5b80fd5b91346107265760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261072657610761612083565b600181018091116107b85760025491620f4240830180931161078c5750906102bc91602094356126be565b806011867f4e487b71000000000000000000000000000000000000000000000000000000006024945252fd5b6024826011867f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b503461025457807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102545760209061082b610821611e70565b6024359033612367565b5160018152f35b9082903461025457602092837ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261045c5761086e611e70565b6108766121c7565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168351917fe12f3a6100000000000000000000000000000000000000000000000000000000835230848401528683602481855afa9283156109d45786936109a1575b50826108f8578580f35b6109549587948651978895869485937faad3ec9600000000000000000000000000000000000000000000000000000000855284016020909392919373ffffffffffffffffffffffffffffffffffffffff60408201951681520152565b03925af1908115610998575061096f575b8080808086948580f35b813d8311610991575b6109828183612013565b81010312610726578180610965565b503d610978565b513d85823e3d90fd5b9092508681813d83116109cd575b6109b98183612013565b810103126109c9575191886108ee565b8580fd5b503d6109af565b85513d88823e3d90fd5b92503461025457817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102545780519180938054916001908360011c9260018516948515610b2e575b6020958686108114610b0257858952908115610ac05750600114610a68575b610a648787610a5a828c0383612013565b5191829182611dc1565b0390f35b81529295507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b828410610aad5750505082610a6494610a5a92820101943880610a49565b8054868501880152928601928101610a8f565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168887015250505050151560051b8301019250610a5a82610a643880610a49565b6024846022857f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b93607f1693610a2a565b913461072657817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126107265750610b70611e93565b50517ffacc2376000000000000000000000000000000000000000000000000000000008152fd5b503461025457817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102545760209073ffffffffffffffffffffffffffffffffffffffff600554169051908152f35b82903461025457610bf936611f18565b9290600260075414610e1f5760026007558091610c146124a8565b86517f70a0823100000000000000000000000000000000000000000000000000000000815230828201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1692602082602481875afa918215610e15578892610ddd575b50808210610d13575b50505090817fc69765d394a369eebb97df20af29181da47538cf51cdc4e0823c7d189cbd7c059596610ccc8387610d0896612587565b5173ffffffffffffffffffffffffffffffffffffffff948516815294841660208601529092166040840152606083019190915281906080820190565b0390a1600160075580f35b9080929894508103908111610db157835173ffffffffffffffffffffffffffffffffffffffff868116825287811660208301528416604082015260608101919091529596507fc69765d394a369eebb97df20af29181da47538cf51cdc4e0823c7d189cbd7c0595610d08939291907f7a69ec69b9f80d7ff60df9f6bd4a822bf3b0d184899c683f04717cc2131d378990608090a19281929796610c96565b60248760118a7f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b9091506020813d602011610e0d575b81610df960209383612013565b81010312610e0957519089610c8d565b8780fd5b3d9150610dec565b89513d8a823e3d90fd5b5084517f1bbee726000000000000000000000000000000000000000000000000000000008152fd5b503461025457817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102545760209073ffffffffffffffffffffffffffffffffffffffff600654169051908152f35b3461045c57827ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261045c576006549060ff8260a01c166003811015610fca57600103610fa35773ffffffffffffffffffffffffffffffffffffffff82163303610f7c57507f3edd90e7770f06fafde38004653b33870066c33bfc923ff6102acd601f85dfbc917fffffffffffffffffffffff000000000000000000000000000000000000000000602092337fffffffffffffffffffffffff000000000000000000000000000000000000000060055416176005551660065551338152a180f35b82517fafdcfb92000000000000000000000000000000000000000000000000000000008152fd5b82517f5e4f2826000000000000000000000000000000000000000000000000000000008152fd5b6024856021847f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b50346102545760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610254576020906102bc610295611e70565b503461025457817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610254576020905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b92503461025457807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610254578235916110dd611e93565b926110e661267f565b6110ef8161219a565b9383517f23b872dd0000000000000000000000000000000000000000000000000000000060208201523360248201523060448201528260648201526064815260a0810181811067ffffffffffffffff82111761126e5773ffffffffffffffffffffffffffffffffffffffff92916111889187527f00000000000000000000000000000000000000000000000000000000000000006127e3565b1691821561123f5760025485810180911161121357602096509083916002558181528087528481208681540190557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef878651888152a3825190815283858201527fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7833392a351908152f35b6024826011897f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b856024918551917fec442f05000000000000000000000000000000000000000000000000000000008352820152fd5b60248560418a7f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b503461025457817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102545760209060ff6008541690519015158152f35b3461045c57827ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261045c576113116121c7565b6006549160ff8360a01c1660038110156113b45761138e5783740200000000000000000000000000000000000000007fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff8516176006557f3ff05a45e46337fa1cbf20996d2eeb927280bce099f37252bcca1040609604ec8180a180f35b517f74ed79ae000000000000000000000000000000000000000000000000000000008152fd5b6024856021857f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b611e27565b903461045c576113f436611f18565b929060026007541461151c57600260075561140d6124a8565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016948251907f70a082310000000000000000000000000000000000000000000000000000000082523090820152602081602481895afa9081156115125790829188916114d9575b50101561149b575b85600160075580f35b846114cc92610ccc83877ff8fc30d85ebfc230c2dfde535651c7e8dc50da2c47247cfd3852d2ff96854dc899612587565b0390a18180808080611492565b9150506020813d60201161150a575b816114f560209383612013565b81010312611506578190518861148a565b8680fd5b3d91506114e8565b83513d89823e3d90fd5b8482517f1bbee726000000000000000000000000000000000000000000000000000000008152fd5b3461045c57827ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261045c5761157a6121c7565b6006549060ff8260a01c166003811015610fca5760020361161057507f3edd90e7770f06fafde38004653b33870066c33bfc923ff6102acd601f85dfbc917fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff6020927fffffffffffffffffffffffff0000000000000000000000000000000000000000600554166005551660065551838152a180f35b82517f045c5122000000000000000000000000000000000000000000000000000000008152fd5b503461025457817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610254576020905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b503461025457817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610254576020905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461045c57827ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261045c576117496121c7565b60085460ff8116156117dd57506008549060ff8216156117b657507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff006020921660085551338152a180f35b82517f6cd60201000000000000000000000000000000000000000000000000000000008152fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011760085550513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25890602090a180f35b823461072657807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261072657600660ff7f000000000000000000000000000000000000000000000000000000000000000016019160ff831161189f5760208360ff865191168152f35b9060116024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b92503461025457817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102545760ff60065460a01c16905191600382101561191857602083838152f35b806021857f4e487b71000000000000000000000000000000000000000000000000000000006024945252fd5b50346102545760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102545760209061082b611982611e70565b61198a611e93565b60443591611999833383612212565b612367565b903461045c57827ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261045c576119d56121c7565b6006549160ff8360a01c16916003831015610fca578215611a75575050600114611a4a575b507fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff600654166006557f8eca980489e87f7dba4f26917aa4bfc906eb3f2b4f7b4b9fd0ff2b8bb3e21ae38180a180f35b7fffffffffffffffffffffffff000000000000000000000000000000000000000016600655816119fa565b517fccf69db7000000000000000000000000000000000000000000000000000000008152fd5b503461025457817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610254576020906002549051908152f35b91346107265760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261072657600254620f424081018091116107b857611b1f612083565b916001830180931161078c5750906102bc91602094356126be565b3461045c57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261045c57611b70611e70565b602435903315611c0e5773ffffffffffffffffffffffffffffffffffffffff16918215611bdf57508083602095338152600187528181208582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b602490858551917f94280d62000000000000000000000000000000000000000000000000000000008352820152fd5b602483868651917fe602df05000000000000000000000000000000000000000000000000000000008352820152fd5b903461045c57827ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261045c5780519183600354906001908260011c92600181168015611d7d575b6020958686108214611d515750848852908115611d115750600114611cb8575b610a648686610a5a828b0383612013565b929550600383527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b828410611cfe5750505082610a6494610a5a928201019486611ca7565b8054868501880152928601928101611ce1565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001687860152505050151560051b8301019250610a5a82610a6486611ca7565b8360226024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b93607f1693611c87565b503461025457817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610254576020906102bc612083565b60208082528251818301819052939260005b858110611e13575050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006040809697860101520116010190565b818101830151848201604001528201611dd3565b34611e6b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112611e6b576020611e6360043561213b565b604051908152f35b600080fd5b6004359073ffffffffffffffffffffffffffffffffffffffff82168203611e6b57565b6024359073ffffffffffffffffffffffffffffffffffffffff82168203611e6b57565b34611e6b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112611e6b57611eed611e70565b5060206040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8152f35b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc6060910112611e6b5773ffffffffffffffffffffffffffffffffffffffff6004358181168103611e6b5791602435916044359081168103611e6b5790565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc6060910112611e6b576004359073ffffffffffffffffffffffffffffffffffffffff906024358281168103611e6b57916044359081168103611e6b5790565b34611e6b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112611e6b576020611e6360043561219a565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761205457604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa90811561212f57600091612100575090565b90506020813d602011612127575b8161211b60209383612013565b81010312611e6b575190565b3d915061210e565b6040513d6000823e3d90fd5b612143612083565b6001810180911161216b5760025490620f4240820180921161216b5761216892612717565b90565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600254620f4240810180911161216b576121b2612083565b906001820180921161216b5761216892612717565b73ffffffffffffffffffffffffffffffffffffffff6005541633036121e857565b60046040517f30cd7471000000000000000000000000000000000000000000000000000000008152fd5b9173ffffffffffffffffffffffffffffffffffffffff8093169160009383855260016020526040938486209183169182875260205284862054927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff840361227d575b50505050505050565b848410612311575080156122e15781156122b157855260016020528385209085526020520391205538808080808080612274565b6024868651907f94280d620000000000000000000000000000000000000000000000000000000082526004820152fd5b6024868651907fe602df050000000000000000000000000000000000000000000000000000000082526004820152fd5b85517ffb8f41b200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9190911660048201526024810184905260448101859052606490fd5b9173ffffffffffffffffffffffffffffffffffffffff808416928315612477571692831561244657600090838252816020526040822054908382106123ee575091604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815220818154019055604051908152a3565b6040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff919091166004820152602481019190915260448101839052606490fd5b60246040517fec442f0500000000000000000000000000000000000000000000000000000000815260006004820152fd5b60246040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260006004820152fd5b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633036124e757565b60046040517fb85310d1000000000000000000000000000000000000000000000000000000008152fd5b3d1561256a573d9067ffffffffffffffff8211612054576040519161255e60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160184612013565b82523d6000602084013e565b606090565b90816020910312611e6b57518015158103611e6b5790565b919091803b15612655576040517fa9059cbb000000000000000000000000000000000000000000000000000000006020820190815273ffffffffffffffffffffffffffffffffffffffff90941660248201526044810192909252600092839283906125f5816064810161056b565b51925af1612601612511565b901561262b5780519081612613575050565b60208061262493830101910161256f565b1561262b57565b60046040517ff1568f95000000000000000000000000000000000000000000000000000000008152fd5b60046040517f09ee12d5000000000000000000000000000000000000000000000000000000008152fd5b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633036124e757565b91906126cb828285612717565b9282156126e857096126da5790565b6001810180911161216b5790565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b9091828202917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848209938380861095039480860395146127d557848311156127ab5782910981600003821680920460028082600302188083028203028083028203028083028203028083028203028083028203028092029003029360018380600003040190848311900302920304170290565b60046040517f227bc153000000000000000000000000000000000000000000000000000000008152fd5b5050809250156126e8570490565b60008073ffffffffffffffffffffffffffffffffffffffff61281a93169360208151910182865af1612813612511565b908361287c565b8051908115159182612861575b50506128305750565b602490604051907f5274afe70000000000000000000000000000000000000000000000000000000082526004820152fd5b612874925060208091830101910161256f565b153880612827565b906128bb575080511561289157805190602001fd5b60046040517f1425ea42000000000000000000000000000000000000000000000000000000008152fd5b81511580612913575b6128cc575090565b60249073ffffffffffffffffffffffffffffffffffffffff604051917f9996b315000000000000000000000000000000000000000000000000000000008352166004820152fd5b50803b156128c456fea2646970667358221220ca4f08e815ee4c444d71fcf9115e722c606ad25e9e8abf039299c2993a3ffb4564736f6c63430008180033000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001800000000000000000000000002c64e6ee1dd9fc2a0db6a6b1aa2c3f163c7a2c78000000000000000000000000f77dd21c5ce38ac08786be35ef1d1dec1a6a15f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000572a1fa9e45c2ec681aba11b9fdb829a5ba9e50d0000000000000000000000004d90cc30b9e75679d3cf89b011053946dfe8763b00000000000000000000000043000000000000000000000000000000000000020000000000000000000000002536fe9ab3f511540f2f9e2ec2a805005c3dd8000000000000000000000000004066b9bd584b5fa88897194dabe3a37883ac35f7000000000000000000000000000000000000000000000000000000000000000f594f4c4f2047616d657320594f4c4f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000579594f4c4f000000000000000000000000000000000000000000000000000000