[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "ECDSAInvalidSignature", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "length", "type": "uint256" } ], "name": "ECDSAInvalidSignatureLength", "type": "error" }, { "inputs": [ { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "ECDSAInvalidSignatureS", "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": [ { "internalType": "uint256", "name": "deadline", "type": "uint256" } ], "name": "ERC2612ExpiredSignature", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "signer", "type": "address" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC2612InvalidSigner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "currentNonce", "type": "uint256" } ], "name": "InvalidAccountNonce", "type": "error" }, { "inputs": [], "name": "InvalidInitialization", "type": "error" }, { "inputs": [], "name": "LaunchpadToken__TransferForbidden", "type": "error" }, { "inputs": [], "name": "LaunchpadToken__ZeroAddress", "type": "error" }, { "inputs": [], "name": "NotInitializing", "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": "EIP712DomainChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint64", "name": "version", "type": "uint64" } ], "name": "Initialized", "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" }, { "inputs": [], "name": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "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": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "description", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "eip712Domain", "outputs": [ { "internalType": "bytes1", "name": "fields", "type": "bytes1" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "version", "type": "string" }, { "internalType": "uint256", "name": "chainId", "type": "uint256" }, { "internalType": "address", "name": "verifyingContract", "type": "address" }, { "internalType": "bytes32", "name": "salt", "type": "bytes32" }, { "internalType": "uint256[]", "name": "extensions", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "gauge", "outputs": [ { "internalType": "contract BlastGauge", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getAllMetadata", "outputs": [ { "components": [ { "internalType": "string", "name": "ipfsHash", "type": "string" }, { "internalType": "string", "name": "website", "type": "string" }, { "internalType": "string", "name": "twitter", "type": "string" }, { "internalType": "string", "name": "telegram", "type": "string" }, { "internalType": "string", "name": "description", "type": "string" }, { "internalType": "string", "name": "metadata", "type": "string" } ], "internalType": "struct BlastLaunchpadToken.TokenMetadataConfig", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" }, { "internalType": "uint256", "name": "initialSupply", "type": "uint256" } ], "internalType": "struct BlastLaunchpadToken.TokenConfig", "name": "_tokenConfig", "type": "tuple" }, { "components": [ { "internalType": "string", "name": "ipfsHash", "type": "string" }, { "internalType": "string", "name": "website", "type": "string" }, { "internalType": "string", "name": "twitter", "type": "string" }, { "internalType": "string", "name": "telegram", "type": "string" }, { "internalType": "string", "name": "description", "type": "string" }, { "internalType": "string", "name": "metadata", "type": "string" } ], "internalType": "struct BlastLaunchpadToken.TokenMetadataConfig", "name": "_metadataConfig", "type": "tuple" }, { "internalType": "address", "name": "_gauge", "type": "address" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "ipfsHash", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "metadata", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "permit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "router", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "telegram", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "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": [], "name": "twitter", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "website", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" } ]
60806040523480156200001157600080fd5b506200001c62000022565b620000d6565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000735760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d35780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b61255f80620000e66000396000f3fe608060405234801561001057600080fd5b506004361061018d5760003560e01c806384b0196e116100e3578063beb0a4161161008c578063d9a1963511610066578063d9a1963514610327578063dd62ed3e1461033c578063f887ea40146103a157600080fd5b8063beb0a41614610304578063c623674f1461030c578063d505accf1461031457600080fd5b8063a9059cbb116100bd578063a9059cbb146102d4578063abfaeee0146102e7578063b632858e146102ef57600080fd5b806384b0196e1461026c57806395d89b4114610287578063a6f19c841461028f57600080fd5b80633644e5151161014557806370a082311161011f57806370a082311461023e5780637284e416146102515780637ecebe001461025957600080fd5b80633644e51514610226578063392f37e91461022e57806347ecb6651461023657600080fd5b806318160ddd1161017657806318160ddd146101d357806323b872dd14610204578063313ce5671461021757600080fd5b806306fdde0314610192578063095ea7b3146101b0575b600080fd5b61019a6103c1565b6040516101a79190611d34565b60405180910390f35b6101c36101be366004611d77565b61047c565b60405190151581526020016101a7565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02545b6040519081526020016101a7565b6101c3610212366004611da1565b610496565b604051601281526020016101a7565b6101f66104ba565b61019a6104c9565b61019a610557565b6101f661024c366004611ddd565b610564565b61019a6105b6565b6101f6610267366004611ddd565b6105c3565b6102746105ce565b6040516101a79796959493929190611df8565b61019a6106cf565b6000546102af9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a7565b6101c36102e2366004611d77565b610720565b61019a61072e565b6103026102fd3660046120e0565b61073b565b005b61019a6109f1565b61019a6109fe565b6103026103223660046121b2565b610a0b565b61032f610bd7565b6040516101a79190612225565b6101f661034a3660046122fb565b73ffffffffffffffffffffffffffffffffffffffff91821660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b6001546102af9073ffffffffffffffffffffffffffffffffffffffff1681565b606060007f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace005b90508060030180546103f89061232e565b80601f01602080910402602001604051908101604052809291908181526020018280546104249061232e565b80156104715780601f1061044657610100808354040283529160200191610471565b820191906000526020600020905b81548152906001019060200180831161045457829003601f168201915b505050505091505090565b60003361048a818585610f7e565b60019150505b92915050565b6000336104a4858285610f90565b6104af85858561107e565b506001949350505050565b60006104c4611129565b905090565b600780546104d69061232e565b80601f01602080910402602001604051908101604052809291908181526020018280546105029061232e565b801561054f5780601f106105245761010080835404028352916020019161054f565b820191906000526020600020905b81548152906001019060200180831161053257829003601f168201915b505050505081565b600580546104d69061232e565b6000807f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace005b73ffffffffffffffffffffffffffffffffffffffff90931660009081526020939093525050604090205490565b600680546104d69061232e565b600061049082611133565b600060608082808083817fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100805490915015801561060d57506001810154155b610678576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4549503731323a20556e696e697469616c697a6564000000000000000000000060448201526064015b60405180910390fd5b61068061115c565b6106886111ad565b604080516000808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009c939b5091995046985030975095509350915050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0480546060917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00916103f89061232e565b60003361048a81858561107e565b600480546104d69061232e565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156107865750825b905060008267ffffffffffffffff1660011480156107a35750303b155b9050811580156107b1575080155b156107e8576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156108495784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b61085b886000015189602001516111d7565b8751610866906111ed565b73ffffffffffffffffffffffffffffffffffffffff86166108b3576040517f9f4df33200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805473ffffffffffffffffffffffffffffffffffffffff88167fffffffffffffffffffffffff0000000000000000000000000000000000000000918216179091556001805490911633179055865160029061091090826123cf565b50602087015160039061092390826123cf565b50604087015160049061093690826123cf565b50606087015160059061094990826123cf565b50608087015160069061095c90826123cf565b5060a087015160079061096f90826123cf565b50610978611237565b61098633896040015161143d565b83156109e75784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b600380546104d69061232e565b600280546104d69061232e565b83421115610a48576040517f627913020000000000000000000000000000000000000000000000000000000081526004810185905260240161066f565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610ac18c73ffffffffffffffffffffffffffffffffffffffff1660009081527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb006020526040902080546001810190915590565b60408051602081019690965273ffffffffffffffffffffffffffffffffffffffff94851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090506000610b2982611499565b90506000610b39828787876114e1565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610bc0576040517f4b800e4600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff80831660048301528b16602482015260440161066f565b610bcb8a8a8a610f7e565b50505050505050505050565b610c106040518060c001604052806060815260200160608152602001606081526020016060815260200160608152602001606081525090565b6040518060c0016040528060028054610c289061232e565b80601f0160208091040260200160405190810160405280929190818152602001828054610c549061232e565b8015610ca15780601f10610c7657610100808354040283529160200191610ca1565b820191906000526020600020905b815481529060010190602001808311610c8457829003601f168201915b5050505050815260200160038054610cb89061232e565b80601f0160208091040260200160405190810160405280929190818152602001828054610ce49061232e565b8015610d315780601f10610d0657610100808354040283529160200191610d31565b820191906000526020600020905b815481529060010190602001808311610d1457829003601f168201915b5050505050815260200160048054610d489061232e565b80601f0160208091040260200160405190810160405280929190818152602001828054610d749061232e565b8015610dc15780601f10610d9657610100808354040283529160200191610dc1565b820191906000526020600020905b815481529060010190602001808311610da457829003601f168201915b5050505050815260200160058054610dd89061232e565b80601f0160208091040260200160405190810160405280929190818152602001828054610e049061232e565b8015610e515780601f10610e2657610100808354040283529160200191610e51565b820191906000526020600020905b815481529060010190602001808311610e3457829003601f168201915b5050505050815260200160068054610e689061232e565b80601f0160208091040260200160405190810160405280929190818152602001828054610e949061232e565b8015610ee15780601f10610eb657610100808354040283529160200191610ee1565b820191906000526020600020905b815481529060010190602001808311610ec457829003601f168201915b5050505050815260200160078054610ef89061232e565b80601f0160208091040260200160405190810160405280929190818152602001828054610f249061232e565b8015610f715780601f10610f4657610100808354040283529160200191610f71565b820191906000526020600020905b815481529060010190602001808311610f5457829003601f168201915b5050505050815250905090565b610f8b838383600161150f565b505050565b73ffffffffffffffffffffffffffffffffffffffff83811660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146110785781811015611069576040517ffb8f41b200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152602481018290526044810183905260640161066f565b6110788484848403600061150f565b50505050565b73ffffffffffffffffffffffffffffffffffffffff83166110ce576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526000600482015260240161066f565b73ffffffffffffffffffffffffffffffffffffffff821661111e576040517fec442f050000000000000000000000000000000000000000000000000000000081526000600482015260240161066f565b610f8b83838361167c565b60006104c461184d565b6000807f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00610589565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10280546060917fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100916103f89061232e565b606060007fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1006103e7565b6111df6118c1565b6111e9828261192a565b5050565b6111f56118c1565b611234816040518060400160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525061198d565b50565b73430000000000000000000000000000000000000273ffffffffffffffffffffffffffffffffffffffff1663f098767a6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561129357600080fd5b505af11580156112a7573d6000803e3d6000fd5b50506040517f36b91f2b00000000000000000000000000000000000000000000000000000000815273f93a4928fdaf4950d4669c3e7c786f73fdcc32396004820152732536fe9ab3f511540f2f9e2ec2a805005c3dd80092506336b91f2b9150602401600060405180830381600087803b15801561132457600080fd5b505af1158015611338573d6000803e3d6000fd5b5050505073430000000000000000000000000000000000000273ffffffffffffffffffffffffffffffffffffffff16634e606c476040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561139857600080fd5b505af11580156113ac573d6000803e3d6000fd5b50506040517feb86469800000000000000000000000000000000000000000000000000000000815273f93a4928fdaf4950d4669c3e7c786f73fdcc32396004820152734300000000000000000000000000000000000002925063eb8646989150602401600060405180830381600087803b15801561142957600080fd5b505af1158015611078573d6000803e3d6000fd5b73ffffffffffffffffffffffffffffffffffffffff821661148d576040517fec442f050000000000000000000000000000000000000000000000000000000081526000600482015260240161066f565b6111e96000838361167c565b60006104906114a6611129565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b6000806000806114f388888888611a00565b9250925092506115038282611afa565b50909695505050505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0073ffffffffffffffffffffffffffffffffffffffff8516611580576040517fe602df050000000000000000000000000000000000000000000000000000000081526000600482015260240161066f565b73ffffffffffffffffffffffffffffffffffffffff84166115d0576040517f94280d620000000000000000000000000000000000000000000000000000000081526000600482015260240161066f565b73ffffffffffffffffffffffffffffffffffffffff808616600090815260018301602090815260408083209388168352929052208390558115611675578373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258560405161166c91815260200190565b60405180910390a35b5050505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0073ffffffffffffffffffffffffffffffffffffffff84166116d757818160020160008282546116cc91906124e9565b909155506117899050565b73ffffffffffffffffffffffffffffffffffffffff84166000908152602082905260409020548281101561175d576040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86166004820152602481018290526044810184905260640161066f565b73ffffffffffffffffffffffffffffffffffffffff851660009081526020839052604090209083900390555b73ffffffffffffffffffffffffffffffffffffffff83166117b45760028101805483900390556117e0565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020829052604090208054830190555b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161183f91815260200190565b60405180910390a350505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f611878611bfe565b611880611c7a565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff16611928576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6119326118c1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace007f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0361197e84826123cf565b506004810161107883826123cf565b6119956118c1565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1007fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1026119e184826123cf565b50600381016119f083826123cf565b5060008082556001909101555050565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115611a3b5750600091506003905082611af0565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015611a8f573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116611ae657506000925060019150829050611af0565b9250600091508190505b9450945094915050565b6000826003811115611b0e57611b0e612523565b03611b17575050565b6001826003811115611b2b57611b2b612523565b03611b62576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002826003811115611b7657611b76612523565b03611bb0576040517ffce698f70000000000000000000000000000000000000000000000000000000081526004810182905260240161066f565b6003826003811115611bc457611bc4612523565b036111e9576040517fd78bce0c0000000000000000000000000000000000000000000000000000000081526004810182905260240161066f565b60007fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10081611c2a61115c565b805190915015611c4257805160209091012092915050565b81548015611c51579392505050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470935050505090565b60007fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10081611ca66111ad565b805190915015611cbe57805160209091012092915050565b60018201548015611c51579392505050565b6000815180845260005b81811015611cf657602081850181015186830182015201611cda565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081526000611d476020830184611cd0565b9392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611d7257600080fd5b919050565b60008060408385031215611d8a57600080fd5b611d9383611d4e565b946020939093013593505050565b600080600060608486031215611db657600080fd5b611dbf84611d4e565b9250611dcd60208501611d4e565b9150604084013590509250925092565b600060208284031215611def57600080fd5b611d4782611d4e565b7fff00000000000000000000000000000000000000000000000000000000000000881681526000602060e081840152611e3460e084018a611cd0565b8381036040850152611e46818a611cd0565b6060850189905273ffffffffffffffffffffffffffffffffffffffff8816608086015260a0850187905284810360c0860152855180825283870192509083019060005b81811015611ea557835183529284019291840191600101611e89565b50909c9b505050505050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160c0810167ffffffffffffffff81118282101715611f0957611f09611eb7565b60405290565b6040516060810167ffffffffffffffff81118282101715611f0957611f09611eb7565b600082601f830112611f4357600080fd5b813567ffffffffffffffff80821115611f5e57611f5e611eb7565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715611fa457611fa4611eb7565b81604052838152866020858801011115611fbd57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600060c08284031215611fef57600080fd5b611ff7611ee6565b9050813567ffffffffffffffff8082111561201157600080fd5b61201d85838601611f32565b8352602084013591508082111561203357600080fd5b61203f85838601611f32565b6020840152604084013591508082111561205857600080fd5b61206485838601611f32565b6040840152606084013591508082111561207d57600080fd5b61208985838601611f32565b606084015260808401359150808211156120a257600080fd5b6120ae85838601611f32565b608084015260a08401359150808211156120c757600080fd5b506120d484828501611f32565b60a08301525092915050565b6000806000606084860312156120f557600080fd5b833567ffffffffffffffff8082111561210d57600080fd5b908501906060828803121561212157600080fd5b612129611f0f565b82358281111561213857600080fd5b61214489828601611f32565b82525060208301358281111561215957600080fd5b61216589828601611f32565b6020830152506040830135604082015280955050602086013591508082111561218d57600080fd5b5061219a86828701611fdd565b9250506121a960408501611d4e565b90509250925092565b600080600080600080600060e0888a0312156121cd57600080fd5b6121d688611d4e565b96506121e460208901611d4e565b95506040880135945060608801359350608088013560ff8116811461220857600080fd5b9699959850939692959460a0840135945060c09093013592915050565b602081526000825160c0602084015261224160e0840182611cd0565b905060208401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08085840301604086015261227d8383611cd0565b9250604086015191508085840301606086015261229a8383611cd0565b925060608601519150808584030160808601526122b78383611cd0565b925060808601519150808584030160a08601526122d48383611cd0565b925060a08601519150808584030160c0860152506122f28282611cd0565b95945050505050565b6000806040838503121561230e57600080fd5b61231783611d4e565b915061232560208401611d4e565b90509250929050565b600181811c9082168061234257607f821691505b60208210810361237b577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f821115610f8b57600081815260208120601f850160051c810160208610156123a85750805b601f850160051c820191505b818110156123c7578281556001016123b4565b505050505050565b815167ffffffffffffffff8111156123e9576123e9611eb7565b6123fd816123f7845461232e565b84612381565b602080601f831160018114612450576000841561241a5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556123c7565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561249d5788860151825594840194600190910190840161247e565b50858210156124d957878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b80820180821115610490577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fdfea164736f6c6343000814000a