ocean-subgraph/abis/ERC20TemplateEnterprise.json

1693 lines
114 KiB
JSON

{
"_format": "hh-sol-artifact-1",
"contractName": "ERC20TemplateEnterprise",
"sourceName": "contracts/templates/ERC20TemplateEnterprise.sol",
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "signer",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "timestamp",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "blockNumber",
"type": "uint256"
}
],
"name": "AddedMinter",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "signer",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "timestamp",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "blockNumber",
"type": "uint256"
}
],
"name": "AddedPaymentManager",
"type": "event"
},
{
"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": [
{
"indexed": false,
"internalType": "address",
"name": "buyer",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "baseTokenAmount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "marketFeeAmount",
"type": "uint256"
}
],
"name": "BuyAndOrder",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "signer",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "timestamp",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "blockNumber",
"type": "uint256"
}
],
"name": "CleanedPermissions",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "currentMinter",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "newMinter",
"type": "address"
}
],
"name": "MinterApproved",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "currentMinter",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "newMinter",
"type": "address"
}
],
"name": "MinterProposed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "dispenserContract",
"type": "address"
}
],
"name": "NewDispenser",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bytes32",
"name": "exchangeId",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "exchangeContract",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "baseToken",
"type": "address"
}
],
"name": "NewFixedRate",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "caller",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "_newPaymentCollector",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "timestamp",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "blockNumber",
"type": "uint256"
}
],
"name": "NewPaymentCollector",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bytes32",
"name": "orderTxId",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "address",
"name": "caller",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "timestamp",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "number",
"type": "uint256"
}
],
"name": "OrderReused",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "consumer",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "payer",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "serviceIndex",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "timestamp",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "publishMarketAddress",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "blockNumber",
"type": "uint256"
}
],
"name": "OrderStarted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "providerFeeAddress",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "providerFeeToken",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "providerFeeAmount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "bytes",
"name": "providerData",
"type": "bytes"
},
{
"indexed": false,
"internalType": "uint8",
"name": "v",
"type": "uint8"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "uint256",
"name": "validUntil",
"type": "uint256"
}
],
"name": "ProviderFees",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "PublishMarketFeeAddress",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "PublishMarketFeeToken",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "PublishMarketFeeAmount",
"type": "uint256"
}
],
"name": "PublishMarketFees",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "caller",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "PublishMarketFeeAddress",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "PublishMarketFeeToken",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "PublishMarketFeeAmount",
"type": "uint256"
}
],
"name": "PublishMarketFeesChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "signer",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "timestamp",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "blockNumber",
"type": "uint256"
}
],
"name": "RemovedMinter",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "signer",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "timestamp",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "blockNumber",
"type": "uint256"
}
],
"name": "RemovedPaymentManager",
"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"
},
{
"stateMutability": "payable",
"type": "fallback"
},
{
"inputs": [],
"name": "BASE",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "DOMAIN_SEPARATOR",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "PERMIT_TYPEHASH",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_minter",
"type": "address"
}
],
"name": "addMinter",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_paymentManager",
"type": "address"
}
],
"name": "addPaymentManager",
"outputs": [],
"stateMutability": "nonpayable",
"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": "amount",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "authERC20",
"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": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "burn",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "burnFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "address",
"name": "consumer",
"type": "address"
},
{
"internalType": "uint256",
"name": "serviceIndex",
"type": "uint256"
},
{
"components": [
{
"internalType": "address",
"name": "providerFeeAddress",
"type": "address"
},
{
"internalType": "address",
"name": "providerFeeToken",
"type": "address"
},
{
"internalType": "uint256",
"name": "providerFeeAmount",
"type": "uint256"
},
{
"internalType": "uint8",
"name": "v",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "validUntil",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "providerData",
"type": "bytes"
}
],
"internalType": "struct ERC20TemplateEnterprise.providerFees",
"name": "_providerFees",
"type": "tuple"
}
],
"internalType": "struct ERC20TemplateEnterprise.OrderParams",
"name": "_orderParams",
"type": "tuple"
},
{
"internalType": "address",
"name": "dispenserContract",
"type": "address"
}
],
"name": "buyFromDispenserAndOrder",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "address",
"name": "consumer",
"type": "address"
},
{
"internalType": "uint256",
"name": "serviceIndex",
"type": "uint256"
},
{
"components": [
{
"internalType": "address",
"name": "providerFeeAddress",
"type": "address"
},
{
"internalType": "address",
"name": "providerFeeToken",
"type": "address"
},
{
"internalType": "uint256",
"name": "providerFeeAmount",
"type": "uint256"
},
{
"internalType": "uint8",
"name": "v",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "validUntil",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "providerData",
"type": "bytes"
}
],
"internalType": "struct ERC20TemplateEnterprise.providerFees",
"name": "_providerFees",
"type": "tuple"
}
],
"internalType": "struct ERC20TemplateEnterprise.OrderParams",
"name": "_orderParams",
"type": "tuple"
},
{
"components": [
{
"internalType": "address",
"name": "exchangeContract",
"type": "address"
},
{
"internalType": "bytes32",
"name": "exchangeId",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "maxBaseTokenAmount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "swapMarketFee",
"type": "uint256"
},
{
"internalType": "address",
"name": "marketFeeAddress",
"type": "address"
}
],
"internalType": "struct ERC20TemplateEnterprise.FreParams",
"name": "_freParams",
"type": "tuple"
}
],
"name": "buyFromFreAndOrder",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "cap",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "cleanFrom721",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "cleanPermissions",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_dispenser",
"type": "address"
},
{
"internalType": "uint256",
"name": "maxTokens",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "maxBalance",
"type": "uint256"
},
{
"internalType": "bool",
"name": "withMint",
"type": "bool"
},
{
"internalType": "address",
"name": "allowedSwapper",
"type": "address"
}
],
"name": "createDispenser",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "fixedPriceAddress",
"type": "address"
},
{
"internalType": "address[]",
"name": "addresses",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "uints",
"type": "uint256[]"
}
],
"name": "createFixedRate",
"outputs": [
{
"internalType": "bytes32",
"name": "exchangeId",
"type": "bytes32"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "decimals",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "subtractedValue",
"type": "uint256"
}
],
"name": "decreaseAllowance",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "getDispensers",
"outputs": [
{
"internalType": "address[]",
"name": "",
"type": "address[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getERC721Address",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getFixedRates",
"outputs": [
{
"components": [
{
"internalType": "address",
"name": "contractAddress",
"type": "address"
},
{
"internalType": "bytes32",
"name": "id",
"type": "bytes32"
}
],
"internalType": "struct ERC20TemplateEnterprise.fixedRate[]",
"name": "",
"type": "tuple[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getId",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "getPaymentCollector",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "getPermissions",
"outputs": [
{
"components": [
{
"internalType": "bool",
"name": "minter",
"type": "bool"
},
{
"internalType": "bool",
"name": "paymentManager",
"type": "bool"
}
],
"internalType": "struct ERC20Roles.RolesERC20",
"name": "",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getPublishingMarketFee",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "addedValue",
"type": "uint256"
}
],
"name": "increaseAllowance",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string[]",
"name": "strings_",
"type": "string[]"
},
{
"internalType": "address[]",
"name": "addresses_",
"type": "address[]"
},
{
"internalType": "address[]",
"name": "factoryAddresses_",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "uints_",
"type": "uint256[]"
},
{
"internalType": "bytes[]",
"name": "bytes_",
"type": "bytes[]"
}
],
"name": "initialize",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "isERC20Deployer",
"outputs": [
{
"internalType": "bool",
"name": "deployer",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "isInitialized",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "isMinter",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "mint",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "nonces",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "permissions",
"outputs": [
{
"internalType": "bool",
"name": "minter",
"type": "bool"
},
{
"internalType": "bool",
"name": "paymentManager",
"type": "bool"
}
],
"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": [
{
"internalType": "address",
"name": "_minter",
"type": "address"
}
],
"name": "removeMinter",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_paymentManager",
"type": "address"
}
],
"name": "removePaymentManager",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "orderTxId",
"type": "bytes32"
},
{
"components": [
{
"internalType": "address",
"name": "providerFeeAddress",
"type": "address"
},
{
"internalType": "address",
"name": "providerFeeToken",
"type": "address"
},
{
"internalType": "uint256",
"name": "providerFeeAmount",
"type": "uint256"
},
{
"internalType": "uint8",
"name": "v",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "validUntil",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "providerData",
"type": "bytes"
}
],
"internalType": "struct ERC20TemplateEnterprise.providerFees",
"name": "_providerFees",
"type": "tuple"
}
],
"name": "reuseOrder",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "router",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "_value",
"type": "bytes"
}
],
"name": "setData",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_newPaymentCollector",
"type": "address"
}
],
"name": "setPaymentCollector",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_publishMarketFeeAddress",
"type": "address"
},
{
"internalType": "address",
"name": "_publishMarketFeeToken",
"type": "address"
},
{
"internalType": "uint256",
"name": "_publishMarketFeeAmount",
"type": "uint256"
}
],
"name": "setPublishingMarketFee",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "consumer",
"type": "address"
},
{
"internalType": "uint256",
"name": "serviceIndex",
"type": "uint256"
},
{
"components": [
{
"internalType": "address",
"name": "providerFeeAddress",
"type": "address"
},
{
"internalType": "address",
"name": "providerFeeToken",
"type": "address"
},
{
"internalType": "uint256",
"name": "providerFeeAmount",
"type": "uint256"
},
{
"internalType": "uint8",
"name": "v",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "validUntil",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "providerData",
"type": "bytes"
}
],
"internalType": "struct ERC20TemplateEnterprise.providerFees",
"name": "_providerFees",
"type": "tuple"
}
],
"name": "startOrder",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "symbol",
"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": "recipient",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "withdrawETH",
"outputs": [],
"stateMutability": "payable",
"type": "function"
}
],
"bytecode": "0x6080604052600b805460ff60a01b191690553480156200001e57600080fd5b5060408051808201825260048152631d195cdd60e21b60208083019182528351808501909452600a8452691d195cdd14de5b589bdb60b21b9084015281519192916200006d9160039162000091565b5080516200008390600490602084019062000091565b505060016007555062000174565b8280546200009f9062000137565b90600052602060002090601f016020900481019282620000c357600085556200010e565b82601f10620000de57805160ff19168380011785556200010e565b828001600101855582156200010e579182015b828111156200010e578251825591602001919060010190620000f1565b506200011c92915062000120565b5090565b5b808211156200011c576000815560010162000121565b600181811c908216806200014c57607f821691505b602082108114156200016e57634e487b7160e01b600052602260045260246000fd5b50919050565b614c2e80620001846000396000f3fe6080604052600436106102ad5760003560e01c806357ad5ff611610166578063a9059cbb116100d3578063dd62ed3e1161008f578063e89b86651161006c578063e89b866514610965578063ec342ad014610985578063ef867ff4146109a1578063f887ea40146109c157005b8063dd62ed3e14610902578063e086e5ec14610948578063e487c2e81461095057005b8063a9059cbb14610829578063aa271e1a14610849578063aa492ef914610882578063ab62f0e1146108a2578063b3998be0146108c2578063d505accf146108e257005b806382c03da51161012257806382c03da51461077f5780638b96412b1461079457806395d89b41146107b457806396fb3eaf146107c9578063983b2d56146107e9578063a457c2d71461080957005b806357ad5ff6146106a65780635d1ca631146106c657806370a08231146106da57806379cc6790146107105780637dda231e146107305780637ecebe001461075257005b8063313ce5671161021c57806339509351116101d857806342966c68116101b557806342966c681461062f57806347ac7d551461064f5780634f189cb21461067157806357a3a31b1461068657005b806339509351146105b3578063397b3743146105d357806340c10f191461060f57005b8063313ce56714610507578063355274ea14610529578063361fef491461053e578063363bdb461461055e5780633644e5151461057e578063392e53cd1461059457005b806318160ddd1161026b57806318160ddd14610434578063191c918a1461045357806323b872dd1461047357806325b00243146104935780633092afd5146104b357806330adf81f146104d357005b80627ffb78146102af57806301e88208146102e65780630269ae111461033657806306fdde0314610356578063095ea7b314610378578063160a7925146103a8575b005b3480156102bb57600080fd5b50600c546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b3480156102f257600080fd5b5061031f610301366004613d6b565b60056020526000908152604090205460ff8082169161010090041682565b6040805192151583529015156020830152016102dd565b34801561034257600080fd5b506102ad610351366004613da0565b6109e1565b34801561036257600080fd5b5061036b610e05565b6040516102dd9190613e25565b34801561038457600080fd5b50610398610393366004613e58565b610e97565b60405190151581526020016102dd565b3480156103b457600080fd5b506104156103c3366004613d6b565b6040805180820190915260008082526020820152506001600160a01b031660009081526005602090815260409182902082518084019093525460ff808216151584526101009091041615159082015290565b60408051825115158152602092830151151592810192909252016102dd565b34801561044057600080fd5b506002545b6040519081526020016102dd565b34801561045f57600080fd5b506102ad61046e366004613e92565b610ead565b34801561047f57600080fd5b5061039861048e366004613ef1565b61107f565b34801561049f57600080fd5b506102ad6104ae366004613d6b565b61112b565b3480156104bf57600080fd5b506102ad6104ce366004613d6b565b6111c5565b3480156104df57600080fd5b506104457f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b34801561051357600080fd5b5060125b60405160ff90911681526020016102dd565b34801561053557600080fd5b50600a54610445565b34801561054a57600080fd5b506102ad610559366004613f45565b61125c565b34801561056a57600080fd5b506102ad610579366004613f8b565b6112ad565b34801561058a57600080fd5b5061044560115481565b3480156105a057600080fd5b50600b54600160a01b900460ff16610398565b3480156105bf57600080fd5b506103986105ce366004613e58565b611587565b3480156105df57600080fd5b50600e54600f54601054604080516001600160a01b039485168152939092166020840152908201526060016102dd565b34801561061b57600080fd5b506102ad61062a366004613e58565b6115c3565b34801561063b57600080fd5b506102ad61064a366004613fe3565b611690565b34801561065b57600080fd5b5061066461169a565b6040516102dd9190614040565b34801561067d57600080fd5b506102ad6116fb565b34801561069257600080fd5b506102ad6106a1366004613d6b565b6117e2565b3480156106b257600080fd5b506102ad6106c1366004613ef1565b611924565b3480156106d257600080fd5b506002610517565b3480156106e657600080fd5b506104456106f5366004613d6b565b6001600160a01b031660009081526020819052604090205490565b34801561071c57600080fd5b506102ad61072b366004613e58565b611a78565b34801561073c57600080fd5b50610745611afe565b6040516102dd9190614053565b34801561075e57600080fd5b5061044561076d366004613d6b565b60126020526000908152604090205481565b34801561078b57600080fd5b506102ad611b73565b3480156107a057600080fd5b506104456107af36600461417f565b611bcd565b3480156107c057600080fd5b5061036b611e81565b3480156107d557600080fd5b506103986107e4366004613d6b565b611e90565b3480156107f557600080fd5b506102ad610804366004613d6b565b611f0b565b34801561081557600080fd5b50610398610824366004613e58565b611fa2565b34801561083557600080fd5b50610398610844366004613e58565b61203b565b34801561085557600080fd5b50610398610864366004613d6b565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561088e57600080fd5b506102ad61089d366004613d6b565b612048565b3480156108ae57600080fd5b506102ad6108bd36600461424a565b6120df565b3480156108ce57600080fd5b506103986108dd366004614306565b612210565b3480156108ee57600080fd5b506102ad6108fd36600461440c565b61234a565b34801561090e57600080fd5b5061044561091d36600461447a565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6102ad61255c565b34801561095c57600080fd5b506102c961259c565b34801561097157600080fd5b506102ad6109803660046144b3565b612631565b34801561099157600080fd5b50610445670de0b6b3a764000081565b3480156109ad57600080fd5b506102c96109bc366004613fe3565b612756565b3480156109cd57600080fd5b506013546102c9906001600160a01b031681565b60026007541415610a0d5760405162461bcd60e51b8152600401610a04906144f9565b60405180910390fd5b6002600755600080610a226020840184613d6b565b604051634c87087d60e01b8152602085013560048201526001600160a01b039190911690634c87087d9060240161018060405180830381865afa158015610a6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a919190614530565b5050505050505050935050925050306001600160a01b0316826001600160a01b031614610b105760405162461bcd60e51b815260206004820152602760248201527f5468697320466978656452617465206973206e6f742070726f766964696e67206044820152661d1a1a5cc8111560ca1b6064820152608401610a04565b600080610b206020860186613d6b565b60405163c99733a760e01b815260208701356004820152670de0b6b3a764000060248201526001600160a01b03919091169063c99733a790604401608060405180830381865afa158015610b78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9c91906145ed565b5050915091508460400135821115610c065760405162461bcd60e51b815260206004820152602760248201527f46697865645261746545786368616e67653a20546f6f206d616e79206261736560448201526620746f6b656e7360c81b6064820152608401610a04565b6000670de0b6b3a7640000610c1f606088013584614639565b610c299190614658565b9050610c35818461467a565b9250610c4c6001600160a01b038516333086612780565b610c6d610c5c6020880188613d6b565b6001600160a01b03861690856127f1565b610c7a6020870187613d6b565b60405163412dae6b60e11b815260208801356004820152670de0b6b3a76400006024820152604481018590526001600160a01b03919091169063825b5cd690606401600060405180830381600087803b158015610cd657600080fd5b505af1158015610cea573d6000803e3d6000fd5b505030600090815260208190526040902054670de0b6b3a7640000925090501015610d575760405162461bcd60e51b815260206004820152601f60248201527f556e61626c6520746f206275792044542066726f6d20466978656452617465006044820152606401610a04565b610d6a3033670de0b6b3a76400006128a3565b610d8c610d7a6020890189613d6b565b602089013561057960408b018b614692565b8015610db657610db6610da560a0880160808901613d6b565b6001600160a01b0386169083612a71565b60408051338152602081018590529081018290527fe89458a7527f4bf466ab18794ab8b1ca208b478483a1a87bcf0d976d421b4aff9060600160405180910390a1505060016007555050505050565b606060088054610e14906146b2565b80601f0160208091040260200160405190810160405280929190818152602001828054610e40906146b2565b8015610e8d5780601f10610e6257610100808354040283529160200191610e8d565b820191906000526020600020905b815481529060010190602001808311610e7057829003601f168201915b5050505050905090565b6000610ea4338484612aa1565b50600192915050565b600c5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af1158015610ef7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1b91906146e7565b60200151610f3b5760405162461bcd60e51b8152600401610a049061476b565b60026007541415610f5e5760405162461bcd60e51b8152600401610a04906144f9565b6002600755601354604051636b14d00560e11b81526001600160a01b0387811660048301523060248301819052604483018890526064830187905233608484015260a48301529091169063d629a00a9060c401600060405180830381600087803b158015610fcb57600080fd5b505af1158015610fdf573d6000803e3d6000fd5b505050508115610ff257610ff285612bc5565b601580546001810182556000919091527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec4750180546001600160a01b0319166001600160a01b0387169081179091556040519081527fa31ffd41531537eb31bfd827a3f5372b5f62bf4dd8579e5354b280dc58490e709060200160405180910390a150506001600755505050565b600061108c8484846128a3565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156111115760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610a04565b61111e8533858403612aa1565b60019150505b9392505050565b600c5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af1158015611175573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119991906146e7565b602001516111b95760405162461bcd60e51b8152600401610a049061476b565b6111c281612cc7565b50565b600c5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af115801561120f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123391906146e7565b602001516112535760405162461bcd60e51b8152600401610a049061476b565b6111c281612d28565b60408051838152336020820152428183015243606082015290517f526e31449ea46e2aecf9b480c8d7dfa191348ef74ffdf75b445a6ab726daa6ff9181900360800190a16112a981612d88565b5050565b33600090815260208190526040812054670de0b6b3a764000091908211156113235760405162461bcd60e51b8152602060048201526024808201527f4e6f7420656e6f7567682064617461746f6b656e7320746f207374617274204f604482015263393232b960e11b6064820152608401610a04565b600e5460408051338152602081018590529081018690524260608201524360808201526001600160a01b03918216918716907fe1c4fa794edfa8f619b8257a077398950357b9c6398528f94480307352f9afcc9060a00160405180910390a3600060105411801561139e5750600f546001600160a01b031615155b80156113b45750600e546001600160a01b031615155b1561156e57601054600f546113d8916001600160a01b039091169033903090612780565b60135460408051637d28354d60e01b815290516000926001600160a01b031691637d28354d9160048083019260209291908290030181865afa158015611422573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061144691906147a0565b9050801561147857611475670de0b6b3a764000061146f8360105461311a90919063ffffffff16565b90613126565b91505b600e546010546114a9916001600160a01b0316906114969085613132565b600f546001600160a01b03169190612a71565b600f54600e546010546001600160a01b0392831692909116907ff666b31c81334b6085802ba4149907fa724689d43bc31df6de1a51291ddc55b4906114ee9086613132565b60405190815260200160405180910390a3811561156c57600b54600f54611522916001600160a01b03918216911684612a71565b600f54600b546040518481526001600160a01b0392831692909116907ff666b31c81334b6085802ba4149907fa724689d43bc31df6de1a51291ddc55b49060200160405180910390a35b505b61157783612d88565b61158082611690565b5050505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610ea49185906115be90869061467a565b612aa1565b3360009081526005602052604090205460ff166116225760405162461bcd60e51b815260206004820152601960248201527f455243323054656d706c6174653a204e4f54204d494e544552000000000000006044820152606401610a04565b600a546116388261163260025490565b9061313e565b11156116865760405162461bcd60e51b815260206004820152601f60248201527f44617461746f6b656e54656d706c6174653a20636170206578636565646564006044820152606401610a04565b6112a9828261314a565b6111c23382613229565b60606015805480602002602001604051908101604052809291908181526020018280548015610e8d57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116116d4575050505050905090565b600c546040516331a9108f60e11b8152600160048201526001600160a01b0390911690636352211e90602401602060405180830381865afa158015611744573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061176891906147b9565b6001600160a01b0316336001600160a01b0316146117c85760405162461bcd60e51b815260206004820152601b60248201527f455243323054656d706c6174653a206e6f74204e46544f776e657200000000006044820152606401610a04565b6117d0613377565b600d80546001600160a01b0319169055565b33600090815260056020526040902054610100900460ff16806118735750600c5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af115801561184a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186e91906146e7565b602001515b6118d35760405162461bcd60e51b815260206004820152602b60248201527f455243323054656d706c6174653a204e4f54205041594d454e54204d414e414760448201526a22a91037b91027aba722a960a91b6064820152608401610a04565b6118dc81613426565b604080514281524360208201526001600160a01b0383169133917f4d7694d695c57cc54947177c8e8a0e61aae664e9223492a798c32fadfc6419cc910160405180910390a350565b600e546001600160a01b031633146119915760405162461bcd60e51b815260206004820152602a60248201527f455243323054656d706c6174653a206e6f74207075626c6973684d61726b65746044820152694665654164647265737360b01b6064820152608401610a04565b6001600160a01b0383166119f85760405162461bcd60e51b815260206004820152602860248201527f496e76616c6964205f7075626c6973684d61726b657446656541646472657373604482015267206164647265737360c01b6064820152608401610a04565b600e80546001600160a01b038581166001600160a01b03199283168117909355600f80549186169190921681179091556010839055604080513381526020810193909352820152606081018290527fe0b85b6f04fa914cf57f6401c5672a83a32b1c388d194c3d78e17f2897d46f439060800160405180910390a1505050565b6000611a84833361091d565b905081811015611ae25760405162461bcd60e51b8152602060048201526024808201527f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f77604482015263616e636560e01b6064820152608401610a04565b611aef8333848403612aa1565b611af98383613229565b505050565b60606014805480602002602001604051908101604052809291908181526020016000905b82821015611b6a576000848152602090819020604080518082019091526002850290910180546001600160a01b03168252600190810154828401529083529092019101611b22565b50505050905090565b600c546001600160a01b031633146117c85760405162461bcd60e51b815260206004820152601f60248201527f455243323054656d706c6174653a204e4f542037323120436f6e7472616374006044820152606401610a04565b600c5460405163160a792560e01b81523360048201526000916001600160a01b03169063160a7925906024016080604051808303816000875af1158015611c18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3c91906146e7565b60200151611c5c5760405162461bcd60e51b8152600401610a049061476b565b60026007541415611c7f5760405162461bcd60e51b8152600401610a04906144f9565b60026007819055503083600381518110611c9b57611c9b6147d6565b6001600160a01b039283166020918202929092010152601354604051638244937560e01b8152911690638244937590611cdc908790879087906004016147ec565b6020604051808303816000875af1158015611cfb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d1f91906147a0565b9050600082600481518110611d3657611d366147d6565b60200260200101511115611d4d57611d4d84612bc5565b82600081518110611d6057611d606147d6565b60200260200101516001600160a01b031683600181518110611d8457611d846147d6565b60200260200101516001600160a01b03167fb3fac3ae95956dbac74e63ba8dac94081832395c8788e3049c900a7732f348058387604051611dd89291909182526001600160a01b0316602082015260400190565b60405180910390a3604080518082019091526001600160a01b03948516815260208101828152601480546001808201835560009290925292517fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec600290940293840180546001600160a01b0319169190981617909655517fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ed909101556007939093555090919050565b606060098054610e14906146b2565b600c5460405163160a792560e01b81526001600160a01b038381166004830152600092169063160a7925906024016080604051808303816000875af1158015611edd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f0191906146e7565b6020015192915050565b600c5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af1158015611f55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f7991906146e7565b60200151611f995760405162461bcd60e51b8152600401610a049061476b565b6111c281612bc5565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156120245760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a04565b6120313385858403612aa1565b5060019392505050565b6000610ea43384846128a3565b600c5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af1158015612092573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b691906146e7565b602001516120d65760405162461bcd60e51b8152600401610a049061476b565b6111c281613448565b600c5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af1158015612129573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061214d91906146e7565b6020015161216d5760405162461bcd60e51b8152600401610a049061476b565b6040516bffffffffffffffffffffffff193060601b16602082015260009060340160408051601f19818403018152908290528051602090910120600c546301caf8fd60e31b83529092506001600160a01b031690630e57c7e8906121d99084908790879060040161487b565b600060405180830381600087803b1580156121f357600080fd5b505af1158015612207573d6000803e3d6000fd5b50505050505050565b600b54600090600160a01b900460ff16156122875760405162461bcd60e51b815260206004820152603160248201527f455243323054656d706c6174653a20746f6b656e20696e7374616e636520616c6044820152701c9958591e481a5b9a5d1a585b1a5e9959607a1b6064820152608401610a04565b61233b6122948b8d6148f5565b8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c91829185019084908082843760009201919091525050604080516020808d0282810182019093528c82529093508c92508b91829185019084908082843760009201919091525061233692508991508a905061497c565b613556565b9b9a5050505050505050505050565b4384101561238d5760405162461bcd60e51b815260206004820152601060248201526f115490cc8c11150e881156141254915160821b6044820152606401610a04565b6011546001600160a01b038816600090815260126020526040812080549192917f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918b918b918b9190876123e0836149f7565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810187905260e0016040516020818303038152906040528051906020012060405160200161245992919061190160f01b81526002810192909252602282015260420190565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa1580156124c4573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906124fa5750886001600160a01b0316816001600160a01b0316145b6125465760405162461bcd60e51b815260206004820152601a60248201527f455243323044543a20494e56414c49445f5349474e41545552450000000000006044820152606401610a04565b612551898989612aa1565b505050505050505050565b61256461259c565b6001600160a01b03166108fc479081150290604051600060405180830381858888f193505050501580156111c2573d6000803e3d6000fd5b600d546000906001600160a01b031661262157600c546040516331a9108f60e11b8152600160048201526001600160a01b0390911690636352211e90602401602060405180830381865afa1580156125f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061261c91906147b9565b905090565b50600d546001600160a01b031690565b600260075414156126545760405162461bcd60e51b8152600401610a04906144f9565b6002600755604051631d746d8360e01b8152306004820152670de0b6b3a764000060248201819052336044830152906001600160a01b03831690631d746d8390606401600060405180830381600087803b1580156126b157600080fd5b505af11580156126c5573d6000803e3d6000fd5b5050336000908152602081905260409020548392509050101561272a5760405162461bcd60e51b815260206004820152601f60248201527f556e61626c6520746f206765742044542066726f6d2044697370656e736572006044820152606401610a04565b61274c61273a6020850185613d6b565b60208501356105796040870187614692565b5050600160075550565b6006818154811061276657600080fd5b6000918252602090912001546001600160a01b0316905081565b6040516001600160a01b03808516602483015283166044820152606481018290526127eb9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613a55565b50505050565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e90604401602060405180830381865afa158015612842573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061286691906147a0565b612870919061467a565b6040516001600160a01b0385166024820152604481018290529091506127eb90859063095ea7b360e01b906064016127b4565b6001600160a01b0383166129075760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a04565b6001600160a01b0382166129695760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a04565b6001600160a01b038316600090815260208190526040902054818110156129e15760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a04565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290612a1890849061467a565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612a6491815260200190565b60405180910390a36127eb565b6040516001600160a01b038316602482015260448101829052611af990849063a9059cbb60e01b906064016127b4565b6001600160a01b038316612b035760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a04565b6001600160a01b038216612b645760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a04565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0381166000908152600560205260409020805460ff1615612c2f5760405162461bcd60e51b815260206004820152601d60248201527f4552433230526f6c65733a2020414c52454144592041204d494e5445520000006044820152606401610a04565b8054600160ff19909116811782556006805491820181556000527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b038416908117909155604080514281524360208201523392917f4f7e100eb1ee13e903798bd0d6aa854152e07eb05544f392b9409c12935c809591015b60405180910390a35050565b6001600160a01b03811660008181526005602052604090819020805461ff00191681559051909133917faee911eec8b2df8f3ae0464841541b1e5f339519bd5cf51889fe8b07fecff65890612cbb9042904390918252602082015260400190565b6001600160a01b03811660008181526005602052604090819020805460ff191681559051909133917fefa2735987005aaa89c050c0ff8cc9ae7d9079d19382081c429130f98c52d48090612cbb9042904390918252602082015260400190565b60408051808201909152601c81527f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152600081612dcc60e0850185614a12565b612dd96020870187613d6b565b612de96040880160208901613d6b565b87604001358860c00135604051602001612e0896959493929190614a58565b60405160208183030381529060405280519060200120604051602001612e2f929190614a96565b60408051601f19818403018152919052805160209091012090506000600182612e5e6080870160608801614ab8565b6040805160008152602081018083529390935260ff90911690820152608080870135606083015260a08088013591830191909152016020604051602081039080840390855afa158015612eb5573d6000803e3d6000fd5b5050604051601f1901519150612ed090506020850185613d6b565b6001600160a01b0316816001600160a01b031614612f275760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642070726f76696465722066656560601b6044820152606401610a04565b612f376040850160208601613d6b565b6001600160a01b0316612f4d6020860186613d6b565b6001600160a01b03167f22bdc88918efde2160206f0b5314bae23de0ae7fd1e9e7853d53178e32355a876040870135612f8960e0890189614a12565b612f9960808b0160608c01614ab8565b8a608001358b60a001358c60c00135604051612fbb9796959493929190614ad3565b60405180910390a360008460400135118015612ff057506000612fe46040860160208701613d6b565b6001600160a01b031614155b8015613012575060006130066020860186613d6b565b6001600160a01b031614155b156127eb5760135460408051636c45e88160e01b815290516000926001600160a01b031691636c45e8819160048083019260209291908290030181865afa158015613061573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061308591906147a0565b9050600081156130ac576130a9670de0b6b3a764000061146f60408901358561311a565b90505b60006130bc604088013583613132565b90506130f1336130cf60208a018a613d6b565b836130e060408c0160208d01613d6b565b6001600160a01b0316929190612780565b811561220757600b546122079033906001600160a01b0316846130e060408c0160208d01613d6b565b60006111248284614639565b60006111248284614658565b60006111248284614b16565b6000611124828461467a565b6001600160a01b0382166131a05760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610a04565b80600260008282546131b2919061467a565b90915550506001600160a01b038216600090815260208190526040812080548392906131df90849061467a565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b0382166132895760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610a04565b6001600160a01b038216600090815260208190526040902054818110156132fd5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610a04565b6001600160a01b038316600090815260208190526040812083830390556002805484929061332c908490614b16565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b60005b6006548110156133dd576000600560006006848154811061339d5761339d6147d6565b60009182526020808320909101546001600160a01b031683528201929092526040019020805461ffff1916905550806133d5816149f7565b91505061337a565b506133ea60066000613c9f565b6040805142815243602082015233917f712bc71db81927a76b8bf1ea346247bb0ad58f18e4e5c1bd4aa0ec6573e02a2b910160405180910390a2565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811660009081526005602052604090208054610100900460ff16156134c25760405162461bcd60e51b815260206004820152602260248201527f4552433230526f6c65733a2020414c5245414459204120464545204d414e414760448201526122a960f11b6064820152608401610a04565b805461ff001916610100178155600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0384166001600160a01b03199091168117909155604080514281524360208201523392917fb17da2e9910b4ba5754e8872385ba315a238bafb5ae221fc85093c33432c40a79101612cbb565b6000808460008151811061356c5761356c6147d6565b6020026020010151905060008560018151811061358b5761358b6147d6565b6020026020010151905060006001600160a01b0316826001600160a01b0316141561360d5760405162461bcd60e51b815260206004820152602c60248201527f455243323054656d706c6174653a20496e76616c6964206d696e7465722c202060448201526b7a65726f206164647265737360a01b6064820152608401610a04565b6001600160a01b0381166136895760405162461bcd60e51b815260206004820152603c60248201527f455243323054656d706c6174653a20496e76616c696420636f6d6d756e69747960448201527f2066656520636f6c6c6563746f722c207a65726f2061646472657373000000006064820152608401610a04565b8460008151811061369c5761369c6147d6565b6020026020010151600014156137005760405162461bcd60e51b8152602060048201526024808201527f44617461746f6b656e54656d706c6174653a20496e76616c6964206361702076604482015263616c756560e01b6064820152608401610a04565b84600081518110613713576137136147d6565b6020026020010151600a8190555087600081518110613734576137346147d6565b602002602001015160089080519060200190613751929190613cbd565b5087600181518110613765576137656147d6565b602002602001015160099080519060200190613782929190613cbd565b50600c80546001600160a01b0319166001600160a01b0384161790558551869060029081106137b3576137b36147d6565b6020908102919091010151601380546001600160a01b039283166001600160a01b0319909116179055600b80546001600160a81b03191691831691909117600160a01b179055865161381d908890600090613810576138106147d6565b6020026020010151612bc5565b60006001600160a01b03168760018151811061383b5761383b6147d6565b60200260200101516001600160a01b0316146138e55761387487600181518110613867576138676147d6565b6020026020010151613426565b86600181518110613887576138876147d6565b60200260200101516001600160a01b0316336001600160a01b03167f4d7694d695c57cc54947177c8e8a0e61aae664e9223492a798c32fadfc6419cc42436040516138dc929190918252602082015260400190565b60405180910390a35b866002815181106138f8576138f86147d6565b6020026020010151600e60006101000a8154816001600160a01b0302191690836001600160a01b0316021790555086600381518110613939576139396147d6565b6020026020010151600f60006101000a8154816001600160a01b0302191690836001600160a01b031602179055508460018151811061397a5761397a6147d6565b602002602001015160108190555060004690507f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60086040516139bd9190614b2d565b60408051918290038220828201825260018352603160f81b6020938401528151928301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66060820152608081018290523060a082015260c00160408051808303601f1901815291905280516020909101206011555050600b54600160a01b900460ff16979650505050505050565b6000613aaa826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316613b279092919063ffffffff16565b805190915015611af95780806020019051810190613ac89190614bc9565b611af95760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610a04565b6060613b368484600085613b3e565b949350505050565b606082471015613b9f5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610a04565b843b613bed5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610a04565b600080866001600160a01b03168587604051613c099190614be6565b60006040518083038185875af1925050503d8060008114613c46576040519150601f19603f3d011682016040523d82523d6000602084013e613c4b565b606091505b5091509150613c5b828286613c66565b979650505050505050565b60608315613c75575081611124565b825115613c855782518084602001fd5b8160405162461bcd60e51b8152600401610a049190613e25565b50805460008255906000526020600020908101906111c29190613d41565b828054613cc9906146b2565b90600052602060002090601f016020900481019282613ceb5760008555613d31565b82601f10613d0457805160ff1916838001178555613d31565b82800160010185558215613d31579182015b82811115613d31578251825591602001919060010190613d16565b50613d3d929150613d41565b5090565b5b80821115613d3d5760008155600101613d42565b6001600160a01b03811681146111c257600080fd5b600060208284031215613d7d57600080fd5b813561112481613d56565b600060608284031215613d9a57600080fd5b50919050565b60008082840360c0811215613db457600080fd5b83356001600160401b03811115613dca57600080fd5b613dd686828701613d88565b93505060a0601f1982011215613deb57600080fd5b506020830190509250929050565b60005b83811015613e14578181015183820152602001613dfc565b838111156127eb5750506000910152565b6020815260008251806020840152613e44816040850160208701613df9565b601f01601f19169190910160400192915050565b60008060408385031215613e6b57600080fd5b8235613e7681613d56565b946020939093013593505050565b80151581146111c257600080fd5b600080600080600060a08688031215613eaa57600080fd5b8535613eb581613d56565b945060208601359350604086013592506060860135613ed381613e84565b91506080860135613ee381613d56565b809150509295509295909350565b600080600060608486031215613f0657600080fd5b8335613f1181613d56565b92506020840135613f2181613d56565b929592945050506040919091013590565b60006101008284031215613d9a57600080fd5b60008060408385031215613f5857600080fd5b8235915060208301356001600160401b03811115613f7557600080fd5b613f8185828601613f32565b9150509250929050565b600080600060608486031215613fa057600080fd5b8335613fab81613d56565b92506020840135915060408401356001600160401b03811115613fcd57600080fd5b613fd986828701613f32565b9150509250925092565b600060208284031215613ff557600080fd5b5035919050565b600081518084526020808501945080840160005b838110156140355781516001600160a01b031687529582019590820190600101614010565b509495945050505050565b6020815260006111246020830184613ffc565b602080825282518282018190526000919060409081850190868401855b8281101561409e57815180516001600160a01b03168552860151868501529284019290850190600101614070565b5091979650505050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156140e9576140e96140ab565b604052919050565b60006001600160401b0382111561410a5761410a6140ab565b5060051b60200190565b600082601f83011261412557600080fd5b8135602061413a614135836140f1565b6140c1565b82815260059290921b8401810191818101908684111561415957600080fd5b8286015b84811015614174578035835291830191830161415d565b509695505050505050565b60008060006060848603121561419457600080fd5b833561419f81613d56565b92506020848101356001600160401b03808211156141bc57600080fd5b818701915087601f8301126141d057600080fd5b81356141de614135826140f1565b81815260059190911b8301840190848101908a8311156141fd57600080fd5b938501935b8285101561422457843561421581613d56565b82529385019390850190614202565b96505050604087013592508083111561423c57600080fd5b5050613fd986828701614114565b6000806020838503121561425d57600080fd5b82356001600160401b038082111561427457600080fd5b818501915085601f83011261428857600080fd5b81358181111561429757600080fd5b8660208285010111156142a957600080fd5b60209290920196919550909350505050565b60008083601f8401126142cd57600080fd5b5081356001600160401b038111156142e457600080fd5b6020830191508360208260051b85010111156142ff57600080fd5b9250929050565b60008060008060008060008060008060a08b8d03121561432557600080fd5b8a356001600160401b038082111561433c57600080fd5b6143488e838f016142bb565b909c509a5060208d013591508082111561436157600080fd5b61436d8e838f016142bb565b909a50985060408d013591508082111561438657600080fd5b6143928e838f016142bb565b909850965060608d01359150808211156143ab57600080fd5b6143b78e838f016142bb565b909650945060808d01359150808211156143d057600080fd5b506143dd8d828e016142bb565b915080935050809150509295989b9194979a5092959850565b803560ff8116811461440757600080fd5b919050565b600080600080600080600060e0888a03121561442757600080fd5b873561443281613d56565b9650602088013561444281613d56565b9550604088013594506060880135935061445e608089016143f6565b925060a0880135915060c0880135905092959891949750929550565b6000806040838503121561448d57600080fd5b823561449881613d56565b915060208301356144a881613d56565b809150509250929050565b600080604083850312156144c657600080fd5b82356001600160401b038111156144dc57600080fd5b6144e885828601613d88565b92505060208301356144a881613d56565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b6000806000806000806000806000806000806101808d8f03121561455357600080fd5b8c5161455e81613d56565b60208e0151909c5061456f81613d56565b60408e015160608f0151919c509a5061458781613d56565b8099505060808d0151975060a08d0151965060c08d01516145a781613e84565b8096505060e08d015194506101008d015193506101208d015192506101408d015191506101608d01516145d981613e84565b809150509295989b509295989b509295989b565b6000806000806080858703121561460357600080fd5b505082516020840151604085015160609095015191969095509092509050565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561465357614653614623565b500290565b60008261467557634e487b7160e01b600052601260045260246000fd5b500490565b6000821982111561468d5761468d614623565b500190565b6000823560fe198336030181126146a857600080fd5b9190910192915050565b600181811c908216806146c657607f821691505b60208210811415613d9a57634e487b7160e01b600052602260045260246000fd5b6000608082840312156146f957600080fd5b604051608081018181106001600160401b038211171561471b5761471b6140ab565b604052825161472981613e84565b8152602083015161473981613e84565b6020820152604083015161474c81613e84565b6040820152606083015161475f81613e84565b60608201529392505050565b6020808252818101527f455243323054656d706c6174653a204e4f54204445504c4f59455220524f4c45604082015260600190565b6000602082840312156147b257600080fd5b5051919050565b6000602082840312156147cb57600080fd5b815161112481613d56565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03841681526060602080830182905260009161481190840186613ffc565b838103604085015284518082528286019183019060005b8181101561484457835183529284019291840191600101614828565b509098975050505050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b838152604060208201526000614895604083018486614852565b95945050505050565b60006001600160401b038311156148b7576148b76140ab565b6148ca601f8401601f19166020016140c1565b90508281528383830111156148de57600080fd5b828260208301376000602084830101529392505050565b6000614903614135846140f1565b80848252602080830192508560051b85013681111561492157600080fd5b855b818110156149705780356001600160401b038111156149425760008081fd5b870136601f8201126149545760008081fd5b61496236823586840161489e565b865250938201938201614923565b50919695505050505050565b600061498a614135846140f1565b80848252602080830192508560051b8501368111156149a857600080fd5b855b818110156149705780356001600160401b038111156149c95760008081fd5b870136601f8201126149db5760008081fd5b6149e936823586840161489e565b8652509382019382016149aa565b6000600019821415614a0b57614a0b614623565b5060010190565b6000808335601e19843603018112614a2957600080fd5b8301803591506001600160401b03821115614a4357600080fd5b6020019150368190038213156142ff57600080fd5b858782376bffffffffffffffffffffffff19606095861b8116969091019586529290931b909116601484015260288301526048820152606801919050565b60008351614aa8818460208801613df9565b9190910191825250602001919050565b600060208284031215614aca57600080fd5b611124826143f6565b87815260c060208201526000614aed60c08301888a614852565b905060ff861660408301528460608301528360808301528260a083015298975050505050505050565b600082821015614b2857614b28614623565b500390565b600080835481600182811c915080831680614b4957607f831692505b6020808410821415614b6957634e487b7160e01b86526022600452602486fd5b818015614b7d5760018114614b8e57614bbb565b60ff19861689528489019650614bbb565b60008a81526020902060005b86811015614bb35781548b820152908501908301614b9a565b505084890196505b509498975050505050505050565b600060208284031215614bdb57600080fd5b815161112481613e84565b600082516146a8818460208701613df956fea2646970667358221220c6c541b55b7434428a1f5fec71f18215c72396f839989bbe881a60df2e21c0ce64736f6c634300080a0033",
"deployedBytecode": "0x6080604052600436106102ad5760003560e01c806357ad5ff611610166578063a9059cbb116100d3578063dd62ed3e1161008f578063e89b86651161006c578063e89b866514610965578063ec342ad014610985578063ef867ff4146109a1578063f887ea40146109c157005b8063dd62ed3e14610902578063e086e5ec14610948578063e487c2e81461095057005b8063a9059cbb14610829578063aa271e1a14610849578063aa492ef914610882578063ab62f0e1146108a2578063b3998be0146108c2578063d505accf146108e257005b806382c03da51161012257806382c03da51461077f5780638b96412b1461079457806395d89b41146107b457806396fb3eaf146107c9578063983b2d56146107e9578063a457c2d71461080957005b806357ad5ff6146106a65780635d1ca631146106c657806370a08231146106da57806379cc6790146107105780637dda231e146107305780637ecebe001461075257005b8063313ce5671161021c57806339509351116101d857806342966c68116101b557806342966c681461062f57806347ac7d551461064f5780634f189cb21461067157806357a3a31b1461068657005b806339509351146105b3578063397b3743146105d357806340c10f191461060f57005b8063313ce56714610507578063355274ea14610529578063361fef491461053e578063363bdb461461055e5780633644e5151461057e578063392e53cd1461059457005b806318160ddd1161026b57806318160ddd14610434578063191c918a1461045357806323b872dd1461047357806325b00243146104935780633092afd5146104b357806330adf81f146104d357005b80627ffb78146102af57806301e88208146102e65780630269ae111461033657806306fdde0314610356578063095ea7b314610378578063160a7925146103a8575b005b3480156102bb57600080fd5b50600c546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b3480156102f257600080fd5b5061031f610301366004613d6b565b60056020526000908152604090205460ff8082169161010090041682565b6040805192151583529015156020830152016102dd565b34801561034257600080fd5b506102ad610351366004613da0565b6109e1565b34801561036257600080fd5b5061036b610e05565b6040516102dd9190613e25565b34801561038457600080fd5b50610398610393366004613e58565b610e97565b60405190151581526020016102dd565b3480156103b457600080fd5b506104156103c3366004613d6b565b6040805180820190915260008082526020820152506001600160a01b031660009081526005602090815260409182902082518084019093525460ff808216151584526101009091041615159082015290565b60408051825115158152602092830151151592810192909252016102dd565b34801561044057600080fd5b506002545b6040519081526020016102dd565b34801561045f57600080fd5b506102ad61046e366004613e92565b610ead565b34801561047f57600080fd5b5061039861048e366004613ef1565b61107f565b34801561049f57600080fd5b506102ad6104ae366004613d6b565b61112b565b3480156104bf57600080fd5b506102ad6104ce366004613d6b565b6111c5565b3480156104df57600080fd5b506104457f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b34801561051357600080fd5b5060125b60405160ff90911681526020016102dd565b34801561053557600080fd5b50600a54610445565b34801561054a57600080fd5b506102ad610559366004613f45565b61125c565b34801561056a57600080fd5b506102ad610579366004613f8b565b6112ad565b34801561058a57600080fd5b5061044560115481565b3480156105a057600080fd5b50600b54600160a01b900460ff16610398565b3480156105bf57600080fd5b506103986105ce366004613e58565b611587565b3480156105df57600080fd5b50600e54600f54601054604080516001600160a01b039485168152939092166020840152908201526060016102dd565b34801561061b57600080fd5b506102ad61062a366004613e58565b6115c3565b34801561063b57600080fd5b506102ad61064a366004613fe3565b611690565b34801561065b57600080fd5b5061066461169a565b6040516102dd9190614040565b34801561067d57600080fd5b506102ad6116fb565b34801561069257600080fd5b506102ad6106a1366004613d6b565b6117e2565b3480156106b257600080fd5b506102ad6106c1366004613ef1565b611924565b3480156106d257600080fd5b506002610517565b3480156106e657600080fd5b506104456106f5366004613d6b565b6001600160a01b031660009081526020819052604090205490565b34801561071c57600080fd5b506102ad61072b366004613e58565b611a78565b34801561073c57600080fd5b50610745611afe565b6040516102dd9190614053565b34801561075e57600080fd5b5061044561076d366004613d6b565b60126020526000908152604090205481565b34801561078b57600080fd5b506102ad611b73565b3480156107a057600080fd5b506104456107af36600461417f565b611bcd565b3480156107c057600080fd5b5061036b611e81565b3480156107d557600080fd5b506103986107e4366004613d6b565b611e90565b3480156107f557600080fd5b506102ad610804366004613d6b565b611f0b565b34801561081557600080fd5b50610398610824366004613e58565b611fa2565b34801561083557600080fd5b50610398610844366004613e58565b61203b565b34801561085557600080fd5b50610398610864366004613d6b565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561088e57600080fd5b506102ad61089d366004613d6b565b612048565b3480156108ae57600080fd5b506102ad6108bd36600461424a565b6120df565b3480156108ce57600080fd5b506103986108dd366004614306565b612210565b3480156108ee57600080fd5b506102ad6108fd36600461440c565b61234a565b34801561090e57600080fd5b5061044561091d36600461447a565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6102ad61255c565b34801561095c57600080fd5b506102c961259c565b34801561097157600080fd5b506102ad6109803660046144b3565b612631565b34801561099157600080fd5b50610445670de0b6b3a764000081565b3480156109ad57600080fd5b506102c96109bc366004613fe3565b612756565b3480156109cd57600080fd5b506013546102c9906001600160a01b031681565b60026007541415610a0d5760405162461bcd60e51b8152600401610a04906144f9565b60405180910390fd5b6002600755600080610a226020840184613d6b565b604051634c87087d60e01b8152602085013560048201526001600160a01b039190911690634c87087d9060240161018060405180830381865afa158015610a6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a919190614530565b5050505050505050935050925050306001600160a01b0316826001600160a01b031614610b105760405162461bcd60e51b815260206004820152602760248201527f5468697320466978656452617465206973206e6f742070726f766964696e67206044820152661d1a1a5cc8111560ca1b6064820152608401610a04565b600080610b206020860186613d6b565b60405163c99733a760e01b815260208701356004820152670de0b6b3a764000060248201526001600160a01b03919091169063c99733a790604401608060405180830381865afa158015610b78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9c91906145ed565b5050915091508460400135821115610c065760405162461bcd60e51b815260206004820152602760248201527f46697865645261746545786368616e67653a20546f6f206d616e79206261736560448201526620746f6b656e7360c81b6064820152608401610a04565b6000670de0b6b3a7640000610c1f606088013584614639565b610c299190614658565b9050610c35818461467a565b9250610c4c6001600160a01b038516333086612780565b610c6d610c5c6020880188613d6b565b6001600160a01b03861690856127f1565b610c7a6020870187613d6b565b60405163412dae6b60e11b815260208801356004820152670de0b6b3a76400006024820152604481018590526001600160a01b03919091169063825b5cd690606401600060405180830381600087803b158015610cd657600080fd5b505af1158015610cea573d6000803e3d6000fd5b505030600090815260208190526040902054670de0b6b3a7640000925090501015610d575760405162461bcd60e51b815260206004820152601f60248201527f556e61626c6520746f206275792044542066726f6d20466978656452617465006044820152606401610a04565b610d6a3033670de0b6b3a76400006128a3565b610d8c610d7a6020890189613d6b565b602089013561057960408b018b614692565b8015610db657610db6610da560a0880160808901613d6b565b6001600160a01b0386169083612a71565b60408051338152602081018590529081018290527fe89458a7527f4bf466ab18794ab8b1ca208b478483a1a87bcf0d976d421b4aff9060600160405180910390a1505060016007555050505050565b606060088054610e14906146b2565b80601f0160208091040260200160405190810160405280929190818152602001828054610e40906146b2565b8015610e8d5780601f10610e6257610100808354040283529160200191610e8d565b820191906000526020600020905b815481529060010190602001808311610e7057829003601f168201915b5050505050905090565b6000610ea4338484612aa1565b50600192915050565b600c5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af1158015610ef7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1b91906146e7565b60200151610f3b5760405162461bcd60e51b8152600401610a049061476b565b60026007541415610f5e5760405162461bcd60e51b8152600401610a04906144f9565b6002600755601354604051636b14d00560e11b81526001600160a01b0387811660048301523060248301819052604483018890526064830187905233608484015260a48301529091169063d629a00a9060c401600060405180830381600087803b158015610fcb57600080fd5b505af1158015610fdf573d6000803e3d6000fd5b505050508115610ff257610ff285612bc5565b601580546001810182556000919091527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec4750180546001600160a01b0319166001600160a01b0387169081179091556040519081527fa31ffd41531537eb31bfd827a3f5372b5f62bf4dd8579e5354b280dc58490e709060200160405180910390a150506001600755505050565b600061108c8484846128a3565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156111115760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610a04565b61111e8533858403612aa1565b60019150505b9392505050565b600c5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af1158015611175573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119991906146e7565b602001516111b95760405162461bcd60e51b8152600401610a049061476b565b6111c281612cc7565b50565b600c5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af115801561120f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123391906146e7565b602001516112535760405162461bcd60e51b8152600401610a049061476b565b6111c281612d28565b60408051838152336020820152428183015243606082015290517f526e31449ea46e2aecf9b480c8d7dfa191348ef74ffdf75b445a6ab726daa6ff9181900360800190a16112a981612d88565b5050565b33600090815260208190526040812054670de0b6b3a764000091908211156113235760405162461bcd60e51b8152602060048201526024808201527f4e6f7420656e6f7567682064617461746f6b656e7320746f207374617274204f604482015263393232b960e11b6064820152608401610a04565b600e5460408051338152602081018590529081018690524260608201524360808201526001600160a01b03918216918716907fe1c4fa794edfa8f619b8257a077398950357b9c6398528f94480307352f9afcc9060a00160405180910390a3600060105411801561139e5750600f546001600160a01b031615155b80156113b45750600e546001600160a01b031615155b1561156e57601054600f546113d8916001600160a01b039091169033903090612780565b60135460408051637d28354d60e01b815290516000926001600160a01b031691637d28354d9160048083019260209291908290030181865afa158015611422573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061144691906147a0565b9050801561147857611475670de0b6b3a764000061146f8360105461311a90919063ffffffff16565b90613126565b91505b600e546010546114a9916001600160a01b0316906114969085613132565b600f546001600160a01b03169190612a71565b600f54600e546010546001600160a01b0392831692909116907ff666b31c81334b6085802ba4149907fa724689d43bc31df6de1a51291ddc55b4906114ee9086613132565b60405190815260200160405180910390a3811561156c57600b54600f54611522916001600160a01b03918216911684612a71565b600f54600b546040518481526001600160a01b0392831692909116907ff666b31c81334b6085802ba4149907fa724689d43bc31df6de1a51291ddc55b49060200160405180910390a35b505b61157783612d88565b61158082611690565b5050505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610ea49185906115be90869061467a565b612aa1565b3360009081526005602052604090205460ff166116225760405162461bcd60e51b815260206004820152601960248201527f455243323054656d706c6174653a204e4f54204d494e544552000000000000006044820152606401610a04565b600a546116388261163260025490565b9061313e565b11156116865760405162461bcd60e51b815260206004820152601f60248201527f44617461746f6b656e54656d706c6174653a20636170206578636565646564006044820152606401610a04565b6112a9828261314a565b6111c23382613229565b60606015805480602002602001604051908101604052809291908181526020018280548015610e8d57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116116d4575050505050905090565b600c546040516331a9108f60e11b8152600160048201526001600160a01b0390911690636352211e90602401602060405180830381865afa158015611744573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061176891906147b9565b6001600160a01b0316336001600160a01b0316146117c85760405162461bcd60e51b815260206004820152601b60248201527f455243323054656d706c6174653a206e6f74204e46544f776e657200000000006044820152606401610a04565b6117d0613377565b600d80546001600160a01b0319169055565b33600090815260056020526040902054610100900460ff16806118735750600c5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af115801561184a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186e91906146e7565b602001515b6118d35760405162461bcd60e51b815260206004820152602b60248201527f455243323054656d706c6174653a204e4f54205041594d454e54204d414e414760448201526a22a91037b91027aba722a960a91b6064820152608401610a04565b6118dc81613426565b604080514281524360208201526001600160a01b0383169133917f4d7694d695c57cc54947177c8e8a0e61aae664e9223492a798c32fadfc6419cc910160405180910390a350565b600e546001600160a01b031633146119915760405162461bcd60e51b815260206004820152602a60248201527f455243323054656d706c6174653a206e6f74207075626c6973684d61726b65746044820152694665654164647265737360b01b6064820152608401610a04565b6001600160a01b0383166119f85760405162461bcd60e51b815260206004820152602860248201527f496e76616c6964205f7075626c6973684d61726b657446656541646472657373604482015267206164647265737360c01b6064820152608401610a04565b600e80546001600160a01b038581166001600160a01b03199283168117909355600f80549186169190921681179091556010839055604080513381526020810193909352820152606081018290527fe0b85b6f04fa914cf57f6401c5672a83a32b1c388d194c3d78e17f2897d46f439060800160405180910390a1505050565b6000611a84833361091d565b905081811015611ae25760405162461bcd60e51b8152602060048201526024808201527f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f77604482015263616e636560e01b6064820152608401610a04565b611aef8333848403612aa1565b611af98383613229565b505050565b60606014805480602002602001604051908101604052809291908181526020016000905b82821015611b6a576000848152602090819020604080518082019091526002850290910180546001600160a01b03168252600190810154828401529083529092019101611b22565b50505050905090565b600c546001600160a01b031633146117c85760405162461bcd60e51b815260206004820152601f60248201527f455243323054656d706c6174653a204e4f542037323120436f6e7472616374006044820152606401610a04565b600c5460405163160a792560e01b81523360048201526000916001600160a01b03169063160a7925906024016080604051808303816000875af1158015611c18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3c91906146e7565b60200151611c5c5760405162461bcd60e51b8152600401610a049061476b565b60026007541415611c7f5760405162461bcd60e51b8152600401610a04906144f9565b60026007819055503083600381518110611c9b57611c9b6147d6565b6001600160a01b039283166020918202929092010152601354604051638244937560e01b8152911690638244937590611cdc908790879087906004016147ec565b6020604051808303816000875af1158015611cfb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d1f91906147a0565b9050600082600481518110611d3657611d366147d6565b60200260200101511115611d4d57611d4d84612bc5565b82600081518110611d6057611d606147d6565b60200260200101516001600160a01b031683600181518110611d8457611d846147d6565b60200260200101516001600160a01b03167fb3fac3ae95956dbac74e63ba8dac94081832395c8788e3049c900a7732f348058387604051611dd89291909182526001600160a01b0316602082015260400190565b60405180910390a3604080518082019091526001600160a01b03948516815260208101828152601480546001808201835560009290925292517fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec600290940293840180546001600160a01b0319169190981617909655517fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ed909101556007939093555090919050565b606060098054610e14906146b2565b600c5460405163160a792560e01b81526001600160a01b038381166004830152600092169063160a7925906024016080604051808303816000875af1158015611edd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f0191906146e7565b6020015192915050565b600c5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af1158015611f55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f7991906146e7565b60200151611f995760405162461bcd60e51b8152600401610a049061476b565b6111c281612bc5565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156120245760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a04565b6120313385858403612aa1565b5060019392505050565b6000610ea43384846128a3565b600c5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af1158015612092573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b691906146e7565b602001516120d65760405162461bcd60e51b8152600401610a049061476b565b6111c281613448565b600c5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af1158015612129573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061214d91906146e7565b6020015161216d5760405162461bcd60e51b8152600401610a049061476b565b6040516bffffffffffffffffffffffff193060601b16602082015260009060340160408051601f19818403018152908290528051602090910120600c546301caf8fd60e31b83529092506001600160a01b031690630e57c7e8906121d99084908790879060040161487b565b600060405180830381600087803b1580156121f357600080fd5b505af1158015612207573d6000803e3d6000fd5b50505050505050565b600b54600090600160a01b900460ff16156122875760405162461bcd60e51b815260206004820152603160248201527f455243323054656d706c6174653a20746f6b656e20696e7374616e636520616c6044820152701c9958591e481a5b9a5d1a585b1a5e9959607a1b6064820152608401610a04565b61233b6122948b8d6148f5565b8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c91829185019084908082843760009201919091525050604080516020808d0282810182019093528c82529093508c92508b91829185019084908082843760009201919091525061233692508991508a905061497c565b613556565b9b9a5050505050505050505050565b4384101561238d5760405162461bcd60e51b815260206004820152601060248201526f115490cc8c11150e881156141254915160821b6044820152606401610a04565b6011546001600160a01b038816600090815260126020526040812080549192917f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918b918b918b9190876123e0836149f7565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810187905260e0016040516020818303038152906040528051906020012060405160200161245992919061190160f01b81526002810192909252602282015260420190565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa1580156124c4573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906124fa5750886001600160a01b0316816001600160a01b0316145b6125465760405162461bcd60e51b815260206004820152601a60248201527f455243323044543a20494e56414c49445f5349474e41545552450000000000006044820152606401610a04565b612551898989612aa1565b505050505050505050565b61256461259c565b6001600160a01b03166108fc479081150290604051600060405180830381858888f193505050501580156111c2573d6000803e3d6000fd5b600d546000906001600160a01b031661262157600c546040516331a9108f60e11b8152600160048201526001600160a01b0390911690636352211e90602401602060405180830381865afa1580156125f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061261c91906147b9565b905090565b50600d546001600160a01b031690565b600260075414156126545760405162461bcd60e51b8152600401610a04906144f9565b6002600755604051631d746d8360e01b8152306004820152670de0b6b3a764000060248201819052336044830152906001600160a01b03831690631d746d8390606401600060405180830381600087803b1580156126b157600080fd5b505af11580156126c5573d6000803e3d6000fd5b5050336000908152602081905260409020548392509050101561272a5760405162461bcd60e51b815260206004820152601f60248201527f556e61626c6520746f206765742044542066726f6d2044697370656e736572006044820152606401610a04565b61274c61273a6020850185613d6b565b60208501356105796040870187614692565b5050600160075550565b6006818154811061276657600080fd5b6000918252602090912001546001600160a01b0316905081565b6040516001600160a01b03808516602483015283166044820152606481018290526127eb9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613a55565b50505050565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e90604401602060405180830381865afa158015612842573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061286691906147a0565b612870919061467a565b6040516001600160a01b0385166024820152604481018290529091506127eb90859063095ea7b360e01b906064016127b4565b6001600160a01b0383166129075760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a04565b6001600160a01b0382166129695760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a04565b6001600160a01b038316600090815260208190526040902054818110156129e15760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a04565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290612a1890849061467a565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612a6491815260200190565b60405180910390a36127eb565b6040516001600160a01b038316602482015260448101829052611af990849063a9059cbb60e01b906064016127b4565b6001600160a01b038316612b035760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a04565b6001600160a01b038216612b645760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a04565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0381166000908152600560205260409020805460ff1615612c2f5760405162461bcd60e51b815260206004820152601d60248201527f4552433230526f6c65733a2020414c52454144592041204d494e5445520000006044820152606401610a04565b8054600160ff19909116811782556006805491820181556000527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b038416908117909155604080514281524360208201523392917f4f7e100eb1ee13e903798bd0d6aa854152e07eb05544f392b9409c12935c809591015b60405180910390a35050565b6001600160a01b03811660008181526005602052604090819020805461ff00191681559051909133917faee911eec8b2df8f3ae0464841541b1e5f339519bd5cf51889fe8b07fecff65890612cbb9042904390918252602082015260400190565b6001600160a01b03811660008181526005602052604090819020805460ff191681559051909133917fefa2735987005aaa89c050c0ff8cc9ae7d9079d19382081c429130f98c52d48090612cbb9042904390918252602082015260400190565b60408051808201909152601c81527f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152600081612dcc60e0850185614a12565b612dd96020870187613d6b565b612de96040880160208901613d6b565b87604001358860c00135604051602001612e0896959493929190614a58565b60405160208183030381529060405280519060200120604051602001612e2f929190614a96565b60408051601f19818403018152919052805160209091012090506000600182612e5e6080870160608801614ab8565b6040805160008152602081018083529390935260ff90911690820152608080870135606083015260a08088013591830191909152016020604051602081039080840390855afa158015612eb5573d6000803e3d6000fd5b5050604051601f1901519150612ed090506020850185613d6b565b6001600160a01b0316816001600160a01b031614612f275760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642070726f76696465722066656560601b6044820152606401610a04565b612f376040850160208601613d6b565b6001600160a01b0316612f4d6020860186613d6b565b6001600160a01b03167f22bdc88918efde2160206f0b5314bae23de0ae7fd1e9e7853d53178e32355a876040870135612f8960e0890189614a12565b612f9960808b0160608c01614ab8565b8a608001358b60a001358c60c00135604051612fbb9796959493929190614ad3565b60405180910390a360008460400135118015612ff057506000612fe46040860160208701613d6b565b6001600160a01b031614155b8015613012575060006130066020860186613d6b565b6001600160a01b031614155b156127eb5760135460408051636c45e88160e01b815290516000926001600160a01b031691636c45e8819160048083019260209291908290030181865afa158015613061573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061308591906147a0565b9050600081156130ac576130a9670de0b6b3a764000061146f60408901358561311a565b90505b60006130bc604088013583613132565b90506130f1336130cf60208a018a613d6b565b836130e060408c0160208d01613d6b565b6001600160a01b0316929190612780565b811561220757600b546122079033906001600160a01b0316846130e060408c0160208d01613d6b565b60006111248284614639565b60006111248284614658565b60006111248284614b16565b6000611124828461467a565b6001600160a01b0382166131a05760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610a04565b80600260008282546131b2919061467a565b90915550506001600160a01b038216600090815260208190526040812080548392906131df90849061467a565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b0382166132895760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610a04565b6001600160a01b038216600090815260208190526040902054818110156132fd5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610a04565b6001600160a01b038316600090815260208190526040812083830390556002805484929061332c908490614b16565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b60005b6006548110156133dd576000600560006006848154811061339d5761339d6147d6565b60009182526020808320909101546001600160a01b031683528201929092526040019020805461ffff1916905550806133d5816149f7565b91505061337a565b506133ea60066000613c9f565b6040805142815243602082015233917f712bc71db81927a76b8bf1ea346247bb0ad58f18e4e5c1bd4aa0ec6573e02a2b910160405180910390a2565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811660009081526005602052604090208054610100900460ff16156134c25760405162461bcd60e51b815260206004820152602260248201527f4552433230526f6c65733a2020414c5245414459204120464545204d414e414760448201526122a960f11b6064820152608401610a04565b805461ff001916610100178155600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0384166001600160a01b03199091168117909155604080514281524360208201523392917fb17da2e9910b4ba5754e8872385ba315a238bafb5ae221fc85093c33432c40a79101612cbb565b6000808460008151811061356c5761356c6147d6565b6020026020010151905060008560018151811061358b5761358b6147d6565b6020026020010151905060006001600160a01b0316826001600160a01b0316141561360d5760405162461bcd60e51b815260206004820152602c60248201527f455243323054656d706c6174653a20496e76616c6964206d696e7465722c202060448201526b7a65726f206164647265737360a01b6064820152608401610a04565b6001600160a01b0381166136895760405162461bcd60e51b815260206004820152603c60248201527f455243323054656d706c6174653a20496e76616c696420636f6d6d756e69747960448201527f2066656520636f6c6c6563746f722c207a65726f2061646472657373000000006064820152608401610a04565b8460008151811061369c5761369c6147d6565b6020026020010151600014156137005760405162461bcd60e51b8152602060048201526024808201527f44617461746f6b656e54656d706c6174653a20496e76616c6964206361702076604482015263616c756560e01b6064820152608401610a04565b84600081518110613713576137136147d6565b6020026020010151600a8190555087600081518110613734576137346147d6565b602002602001015160089080519060200190613751929190613cbd565b5087600181518110613765576137656147d6565b602002602001015160099080519060200190613782929190613cbd565b50600c80546001600160a01b0319166001600160a01b0384161790558551869060029081106137b3576137b36147d6565b6020908102919091010151601380546001600160a01b039283166001600160a01b0319909116179055600b80546001600160a81b03191691831691909117600160a01b179055865161381d908890600090613810576138106147d6565b6020026020010151612bc5565b60006001600160a01b03168760018151811061383b5761383b6147d6565b60200260200101516001600160a01b0316146138e55761387487600181518110613867576138676147d6565b6020026020010151613426565b86600181518110613887576138876147d6565b60200260200101516001600160a01b0316336001600160a01b03167f4d7694d695c57cc54947177c8e8a0e61aae664e9223492a798c32fadfc6419cc42436040516138dc929190918252602082015260400190565b60405180910390a35b866002815181106138f8576138f86147d6565b6020026020010151600e60006101000a8154816001600160a01b0302191690836001600160a01b0316021790555086600381518110613939576139396147d6565b6020026020010151600f60006101000a8154816001600160a01b0302191690836001600160a01b031602179055508460018151811061397a5761397a6147d6565b602002602001015160108190555060004690507f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60086040516139bd9190614b2d565b60408051918290038220828201825260018352603160f81b6020938401528151928301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66060820152608081018290523060a082015260c00160408051808303601f1901815291905280516020909101206011555050600b54600160a01b900460ff16979650505050505050565b6000613aaa826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316613b279092919063ffffffff16565b805190915015611af95780806020019051810190613ac89190614bc9565b611af95760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610a04565b6060613b368484600085613b3e565b949350505050565b606082471015613b9f5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610a04565b843b613bed5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610a04565b600080866001600160a01b03168587604051613c099190614be6565b60006040518083038185875af1925050503d8060008114613c46576040519150601f19603f3d011682016040523d82523d6000602084013e613c4b565b606091505b5091509150613c5b828286613c66565b979650505050505050565b60608315613c75575081611124565b825115613c855782518084602001fd5b8160405162461bcd60e51b8152600401610a049190613e25565b50805460008255906000526020600020908101906111c29190613d41565b828054613cc9906146b2565b90600052602060002090601f016020900481019282613ceb5760008555613d31565b82601f10613d0457805160ff1916838001178555613d31565b82800160010185558215613d31579182015b82811115613d31578251825591602001919060010190613d16565b50613d3d929150613d41565b5090565b5b80821115613d3d5760008155600101613d42565b6001600160a01b03811681146111c257600080fd5b600060208284031215613d7d57600080fd5b813561112481613d56565b600060608284031215613d9a57600080fd5b50919050565b60008082840360c0811215613db457600080fd5b83356001600160401b03811115613dca57600080fd5b613dd686828701613d88565b93505060a0601f1982011215613deb57600080fd5b506020830190509250929050565b60005b83811015613e14578181015183820152602001613dfc565b838111156127eb5750506000910152565b6020815260008251806020840152613e44816040850160208701613df9565b601f01601f19169190910160400192915050565b60008060408385031215613e6b57600080fd5b8235613e7681613d56565b946020939093013593505050565b80151581146111c257600080fd5b600080600080600060a08688031215613eaa57600080fd5b8535613eb581613d56565b945060208601359350604086013592506060860135613ed381613e84565b91506080860135613ee381613d56565b809150509295509295909350565b600080600060608486031215613f0657600080fd5b8335613f1181613d56565b92506020840135613f2181613d56565b929592945050506040919091013590565b60006101008284031215613d9a57600080fd5b60008060408385031215613f5857600080fd5b8235915060208301356001600160401b03811115613f7557600080fd5b613f8185828601613f32565b9150509250929050565b600080600060608486031215613fa057600080fd5b8335613fab81613d56565b92506020840135915060408401356001600160401b03811115613fcd57600080fd5b613fd986828701613f32565b9150509250925092565b600060208284031215613ff557600080fd5b5035919050565b600081518084526020808501945080840160005b838110156140355781516001600160a01b031687529582019590820190600101614010565b509495945050505050565b6020815260006111246020830184613ffc565b602080825282518282018190526000919060409081850190868401855b8281101561409e57815180516001600160a01b03168552860151868501529284019290850190600101614070565b5091979650505050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156140e9576140e96140ab565b604052919050565b60006001600160401b0382111561410a5761410a6140ab565b5060051b60200190565b600082601f83011261412557600080fd5b8135602061413a614135836140f1565b6140c1565b82815260059290921b8401810191818101908684111561415957600080fd5b8286015b84811015614174578035835291830191830161415d565b509695505050505050565b60008060006060848603121561419457600080fd5b833561419f81613d56565b92506020848101356001600160401b03808211156141bc57600080fd5b818701915087601f8301126141d057600080fd5b81356141de614135826140f1565b81815260059190911b8301840190848101908a8311156141fd57600080fd5b938501935b8285101561422457843561421581613d56565b82529385019390850190614202565b96505050604087013592508083111561423c57600080fd5b5050613fd986828701614114565b6000806020838503121561425d57600080fd5b82356001600160401b038082111561427457600080fd5b818501915085601f83011261428857600080fd5b81358181111561429757600080fd5b8660208285010111156142a957600080fd5b60209290920196919550909350505050565b60008083601f8401126142cd57600080fd5b5081356001600160401b038111156142e457600080fd5b6020830191508360208260051b85010111156142ff57600080fd5b9250929050565b60008060008060008060008060008060a08b8d03121561432557600080fd5b8a356001600160401b038082111561433c57600080fd5b6143488e838f016142bb565b909c509a5060208d013591508082111561436157600080fd5b61436d8e838f016142bb565b909a50985060408d013591508082111561438657600080fd5b6143928e838f016142bb565b909850965060608d01359150808211156143ab57600080fd5b6143b78e838f016142bb565b909650945060808d01359150808211156143d057600080fd5b506143dd8d828e016142bb565b915080935050809150509295989b9194979a5092959850565b803560ff8116811461440757600080fd5b919050565b600080600080600080600060e0888a03121561442757600080fd5b873561443281613d56565b9650602088013561444281613d56565b9550604088013594506060880135935061445e608089016143f6565b925060a0880135915060c0880135905092959891949750929550565b6000806040838503121561448d57600080fd5b823561449881613d56565b915060208301356144a881613d56565b809150509250929050565b600080604083850312156144c657600080fd5b82356001600160401b038111156144dc57600080fd5b6144e885828601613d88565b92505060208301356144a881613d56565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b6000806000806000806000806000806000806101808d8f03121561455357600080fd5b8c5161455e81613d56565b60208e0151909c5061456f81613d56565b60408e015160608f0151919c509a5061458781613d56565b8099505060808d0151975060a08d0151965060c08d01516145a781613e84565b8096505060e08d015194506101008d015193506101208d015192506101408d015191506101608d01516145d981613e84565b809150509295989b509295989b509295989b565b6000806000806080858703121561460357600080fd5b505082516020840151604085015160609095015191969095509092509050565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561465357614653614623565b500290565b60008261467557634e487b7160e01b600052601260045260246000fd5b500490565b6000821982111561468d5761468d614623565b500190565b6000823560fe198336030181126146a857600080fd5b9190910192915050565b600181811c908216806146c657607f821691505b60208210811415613d9a57634e487b7160e01b600052602260045260246000fd5b6000608082840312156146f957600080fd5b604051608081018181106001600160401b038211171561471b5761471b6140ab565b604052825161472981613e84565b8152602083015161473981613e84565b6020820152604083015161474c81613e84565b6040820152606083015161475f81613e84565b60608201529392505050565b6020808252818101527f455243323054656d706c6174653a204e4f54204445504c4f59455220524f4c45604082015260600190565b6000602082840312156147b257600080fd5b5051919050565b6000602082840312156147cb57600080fd5b815161112481613d56565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03841681526060602080830182905260009161481190840186613ffc565b838103604085015284518082528286019183019060005b8181101561484457835183529284019291840191600101614828565b509098975050505050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b838152604060208201526000614895604083018486614852565b95945050505050565b60006001600160401b038311156148b7576148b76140ab565b6148ca601f8401601f19166020016140c1565b90508281528383830111156148de57600080fd5b828260208301376000602084830101529392505050565b6000614903614135846140f1565b80848252602080830192508560051b85013681111561492157600080fd5b855b818110156149705780356001600160401b038111156149425760008081fd5b870136601f8201126149545760008081fd5b61496236823586840161489e565b865250938201938201614923565b50919695505050505050565b600061498a614135846140f1565b80848252602080830192508560051b8501368111156149a857600080fd5b855b818110156149705780356001600160401b038111156149c95760008081fd5b870136601f8201126149db5760008081fd5b6149e936823586840161489e565b8652509382019382016149aa565b6000600019821415614a0b57614a0b614623565b5060010190565b6000808335601e19843603018112614a2957600080fd5b8301803591506001600160401b03821115614a4357600080fd5b6020019150368190038213156142ff57600080fd5b858782376bffffffffffffffffffffffff19606095861b8116969091019586529290931b909116601484015260288301526048820152606801919050565b60008351614aa8818460208801613df9565b9190910191825250602001919050565b600060208284031215614aca57600080fd5b611124826143f6565b87815260c060208201526000614aed60c08301888a614852565b905060ff861660408301528460608301528360808301528260a083015298975050505050505050565b600082821015614b2857614b28614623565b500390565b600080835481600182811c915080831680614b4957607f831692505b6020808410821415614b6957634e487b7160e01b86526022600452602486fd5b818015614b7d5760018114614b8e57614bbb565b60ff19861689528489019650614bbb565b60008a81526020902060005b86811015614bb35781548b820152908501908301614b9a565b505084890196505b509498975050505050505050565b600060208284031215614bdb57600080fd5b815161112481613e84565b600082516146a8818460208701613df956fea2646970667358221220c6c541b55b7434428a1f5fec71f18215c72396f839989bbe881a60df2e21c0ce64736f6c634300080a0033",
"linkReferences": {},
"deployedLinkReferences": {}
}